ZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9BbmRyb2lkLmJwIGIvYXVkaW8vMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE5M2M4ZgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMTA3IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklEZXZpY2UuaGFsIiwKKyAgICAgICAgIklEZXZpY2VzRmFjdG9yeS5oYWwiLAorICAgICAgICAiSVByaW1hcnlEZXZpY2UuaGFsIiwKKyAgICAgICAgIklTdHJlYW0uaGFsIiwKKyAgICAgICAgIklTdHJlYW1Jbi5oYWwiLAorICAgICAgICAiSVN0cmVhbU91dC5oYWwiLAorICAgICAgICAiSVN0cmVhbU91dENhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvRGV2aWNlQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9EZXZpY2VzRmFjdG9yeUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvUHJpbWFyeURldmljZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvU3RyZWFtQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9TdHJlYW1JbkFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvU3RyZWFtT3V0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9TdHJlYW1PdXRDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3RGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id0RldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JwSHdEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc0RldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lEZXZpY2VzRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lId0RldmljZXNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id0RldmljZXNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId0RldmljZXNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnNEZXZpY2VzRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3UHJpbWFyeURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JuSHdQcmltYXJ5RGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId1ByaW1hcnlEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc1ByaW1hcnlEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JU3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3U3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id1N0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JwSHdTdHJlYW0uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc1N0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lTdHJlYW1Jbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lId1N0cmVhbUluLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id1N0cmVhbUluLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId1N0cmVhbUluLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnNTdHJlYW1Jbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JSHdTdHJlYW1PdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cbkh3U3RyZWFtT3V0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId1N0cmVhbU91dC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JzU3RyZWFtT3V0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSVN0cmVhbU91dENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3U3RyZWFtT3V0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cbkh3U3RyZWFtT3V0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9CcEh3U3RyZWFtT3V0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc1N0cmVhbU91dENhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0FuZHJvaWQubWsgYi9hdWRpby8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWU4NDBmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSw0NiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdWRpby1WMi4wLWphdmEtY29uc3RhbnRzCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL1YyXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lEZXZpY2UuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSURldmljZXNGYWN0b3J5LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lQcmltYXJ5RGV2aWNlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lTdHJlYW0uaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVN0cmVhbUluLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lTdHJlYW1PdXQuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVN0cmVhbU91dENhbGxiYWNrLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0lEZXZpY2UuaGFsIGIvYXVkaW8vMi4wL0lEZXZpY2UuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyYzIwODEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSURldmljZS5oYWwKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElTdHJlYW1JbjsKK2ltcG9ydCBJU3RyZWFtT3V0OworCitpbnRlcmZhY2UgSURldmljZSB7CisgICAgdHlwZWRlZiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6UmVzdWx0IFJlc3VsdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgYXVkaW8gaGFyZHdhcmUgaW50ZXJmYWNlIGhhcyBiZWVuIGluaXRpYWxpemVkLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgT0sgb24gc3VjY2VzcywgTk9UX0lOSVRJQUxJWkVEIG9uIGZhaWx1cmUuCisgICAgICovCisgICAgaW5pdENoZWNrKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGF1ZGlvIHZvbHVtZSBmb3IgYWxsIGF1ZGlvIGFjdGl2aXRpZXMgb3RoZXIgdGhhbiB2b2ljZSBjYWxsLiBJZgorICAgICAqIE5PVF9TVVBQT1JURUQgaXMgcmV0dXJuZWQsIHRoZSBzb2Z0d2FyZSBtaXhlciB3aWxsIGVtdWxhdGUgdGhpcworICAgICAqIGNhcGFiaWxpdHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdm9sdW1lIDEuMGYgbWVhbnMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0TWFzdGVyVm9sdW1lKGZsb2F0IHZvbHVtZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCBtYXN0ZXIgdm9sdW1lIHZhbHVlIGZvciB0aGUgSEFMLCBpZiB0aGUgSEFMIHN1cHBvcnRzCisgICAgICogbWFzdGVyIHZvbHVtZSBjb250cm9sLiBGb3IgZXhhbXBsZSwgQXVkaW9GbGluZ2VyIHdpbGwgcXVlcnkgdGhpcyB2YWx1ZQorICAgICAqIGZyb20gdGhlIHByaW1hcnkgYXVkaW8gSEFMIHdoZW4gdGhlIHNlcnZpY2Ugc3RhcnRzIGFuZCB1c2UgdGhlIHZhbHVlIGZvcgorICAgICAqIHNldHRpbmcgdGhlIGluaXRpYWwgbWFzdGVyIHZvbHVtZSBhY3Jvc3MgYWxsIEhBTHMuIEhBTHMgd2hpY2ggZG8gbm90CisgICAgICogc3VwcG9ydCB0aGlzIG1ldGhvZCBtdXN0IHJldHVybiBOT1RfU1VQUE9SVEVEIGluICdyZXR2YWwnLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gdm9sdW1lIDEuMGYgbWVhbnMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKi8KKyAgICBnZXRNYXN0ZXJWb2x1bWUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGZsb2F0IHZvbHVtZSk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIG1pY3JvcGhvbmUgbXV0aW5nIHN0YXRlLgorICAgICAqCisgICAgICogQHBhcmFtIG11dGUgd2hldGhlciBtaWNyb3Bob25lIGlzIG11dGVkLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRNaWNNdXRlKGJvb2wgbXV0ZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgd2hldGhlciBtaWNyb3Bob25lIGlzIG11dGVkLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gbXV0ZSB3aGV0aGVyIG1pY3JvcGhvbmUgaXMgbXV0ZWQuCisgICAgICovCisgICAgZ2V0TWljTXV0ZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgYm9vbCBtdXRlKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgYXVkaW8gbXV0ZSBzdGF0dXMgZm9yIGFsbCBhdWRpbyBhY3Rpdml0aWVzLiBJZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogaXMgTk9UX1NVUFBPUlRFRCwgdGhlIHNvZnR3YXJlIG1peGVyIHdpbGwgZW11bGF0ZSB0aGlzIGNhcGFiaWxpdHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXV0ZSB3aGV0aGVyIGF1ZGlvIGlzIG11dGVkLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRNYXN0ZXJNdXRlKGJvb2wgbXV0ZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCBtYXN0ZXIgbXV0ZSBzdGF0dXMgZm9yIHRoZSBIQUwsIGlmIHRoZSBIQUwgc3VwcG9ydHMKKyAgICAgKiBtYXN0ZXIgbXV0ZSBjb250cm9sLiBBdWRpb0ZsaW5nZXIgd2lsbCBxdWVyeSB0aGlzIHZhbHVlIGZyb20gdGhlIHByaW1hcnkKKyAgICAgKiBhdWRpbyBIQUwgd2hlbiB0aGUgc2VydmljZSBzdGFydHMgYW5kIHVzZSB0aGUgdmFsdWUgZm9yIHNldHRpbmcgdGhlCisgICAgICogaW5pdGlhbCBtYXN0ZXIgbXV0ZSBhY3Jvc3MgYWxsIEhBTHMuIEhBTCBtdXN0IGluZGljYXRlIHRoYXQgdGhlIGZlYXR1cmUKKyAgICAgKiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHJldHVybmluZyBOT1RfU1VQUE9SVEVEIHN0YXR1cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIG11dGUgd2hldGhlciBhdWRpbyBpcyBtdXRlZC4KKyAgICAgKi8KKyAgICBnZXRNYXN0ZXJNdXRlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIG11dGUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhdWRpbyBpbnB1dCBidWZmZXIgc2l6ZSBhY2NvcmRpbmcgdG8gcGFyYW1ldGVycyBwYXNzZWQgb3IKKyAgICAgKiBJTlZBTElEX0FSR1VNRU5UUyBpZiBvbmUgb2YgdGhlIHBhcmFtZXRlcnMgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb25maWcgYXVkaW8gY29uZmlndXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBidWZmZXJTaXplIGlucHV0IGJ1ZmZlciBzaXplIGluIGJ5dGVzLgorICAgICAqLworICAgIGdldElucHV0QnVmZmVyU2l6ZShBdWRpb0NvbmZpZyBjb25maWcpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQ2NF90IGJ1ZmZlclNpemUpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgY3JlYXRlcyBhbmQgb3BlbnMgdGhlIGF1ZGlvIGhhcmR3YXJlIG91dHB1dCBzdHJlYW0uCisgICAgICogSWYgdGhlIHN0cmVhbSBjYW4gbm90IGJlIG9wZW5lZCB3aXRoIHRoZSBwcm9wb3NlZCBhdWRpbyBjb25maWcsCisgICAgICogSEFMIG11c3QgcHJvdmlkZSBzdWdnZXN0ZWQgdmFsdWVzIGZvciB0aGUgYXVkaW8gY29uZmlnLgorICAgICAqCisgICAgICogQHBhcmFtIGlvSGFuZGxlIGhhbmRsZSBhc3NpZ25lZCBieSBBdWRpb0ZsaW5nZXIuCisgICAgICogQHBhcmFtIGRldmljZSBkZXZpY2UgdHlwZSBhbmQgKGlmIG5lZWRlZCkgYWRkcmVzcy4KKyAgICAgKiBAcGFyYW0gY29uZmlnIHN0cmVhbSBjb25maWd1cmF0aW9uLgorICAgICAqIEBwYXJhbSBmbGFncyBhZGRpdGlvbmFsIGZsYWdzLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIG91dFN0cmVhbSBjcmVhdGVkIG91dHB1dCBzdHJlYW0uCisgICAgICogQHJldHVybiBzdWdnZXN0ZWRDb25maWcgaW4gY2FzZSBvZiBpbnZhbGlkIHBhcmFtZXRlcnMsIHN1Z2dlc3RlZCBjb25maWcuCisgICAgICovCisgICAgb3Blbk91dHB1dFN0cmVhbSgKKyAgICAgICAgICAgIEF1ZGlvSW9IYW5kbGUgaW9IYW5kbGUsCisgICAgICAgICAgICBEZXZpY2VBZGRyZXNzIGRldmljZSwKKyAgICAgICAgICAgIEF1ZGlvQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncykgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgICAgICAgICAgUmVzdWx0IHJldHZhbCwKKyAgICAgICAgICAgICAgICAgICAgSVN0cmVhbU91dCBvdXRTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgIEF1ZGlvQ29uZmlnIHN1Z2dlc3RlZENvbmZpZyk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGFuZCBvcGVucyB0aGUgYXVkaW8gaGFyZHdhcmUgaW5wdXQgc3RyZWFtLgorICAgICAqIElmIHRoZSBzdHJlYW0gY2FuIG5vdCBiZSBvcGVuZWQgd2l0aCB0aGUgcHJvcG9zZWQgYXVkaW8gY29uZmlnLAorICAgICAqIEhBTCBtdXN0IHByb3ZpZGUgc3VnZ2VzdGVkIHZhbHVlcyBmb3IgdGhlIGF1ZGlvIGNvbmZpZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpb0hhbmRsZSBoYW5kbGUgYXNzaWduZWQgYnkgQXVkaW9GbGluZ2VyLgorICAgICAqIEBwYXJhbSBkZXZpY2UgZGV2aWNlIHR5cGUgYW5kIChpZiBuZWVkZWQpIGFkZHJlc3MuCisgICAgICogQHBhcmFtIGNvbmZpZyBzdHJlYW0gY29uZmlndXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gZmxhZ3MgYWRkaXRpb25hbCBmbGFncy4KKyAgICAgKiBAcGFyYW0gc291cmNlIHNvdXJjZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGluU3RyZWFtIGluIGNhc2Ugb2Ygc3VjY2VzcywgY3JlYXRlZCBpbnB1dCBzdHJlYW0uCisgICAgICogQHJldHVybiBzdWdnZXN0ZWRDb25maWcgaW4gY2FzZSBvZiBpbnZhbGlkIHBhcmFtZXRlcnMsIHN1Z2dlc3RlZCBjb25maWcuCisgICAgICovCisgICAgb3BlbklucHV0U3RyZWFtKAorICAgICAgICAgICAgQXVkaW9Jb0hhbmRsZSBpb0hhbmRsZSwKKyAgICAgICAgICAgIERldmljZUFkZHJlc3MgZGV2aWNlLAorICAgICAgICAgICAgQXVkaW9Db25maWcgY29uZmlnLAorICAgICAgICAgICAgQXVkaW9JbnB1dEZsYWcgZmxhZ3MsCisgICAgICAgICAgICBBdWRpb1NvdXJjZSBzb3VyY2UpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICAgICAgICAgIFJlc3VsdCByZXR2YWwsCisgICAgICAgICAgICAgICAgICAgIElTdHJlYW1JbiBpblN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgQXVkaW9Db25maWcgc3VnZ2VzdGVkQ29uZmlnKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciBIQUwgc3VwcG9ydHMgYXVkaW8gcGF0Y2hlcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHMgdHJ1ZSBpZiBhdWRpbyBwYXRjaGVzIGFyZSBzdXBwb3J0ZWQuCisgICAgICovCisgICAgc3VwcG9ydHNBdWRpb1BhdGNoZXMoKSBnZW5lcmF0ZXMgKGJvb2wgc3VwcG9ydHMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhbiBhdWRpbyBwYXRjaCBiZXR3ZWVuIHNldmVyYWwgc291cmNlIGFuZCBzaW5rIHBvcnRzLiAgVGhlIGhhbmRsZQorICAgICAqIGlzIGFsbG9jYXRlZCBieSB0aGUgSEFMIGFuZCBtdXN0IGJlIHVuaXF1ZSBmb3IgdGhpcyBhdWRpbyBIQUwgbW9kdWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZXMgcGF0Y2ggc291cmNlcy4KKyAgICAgKiBAcGFyYW0gc2lua3MgcGF0Y2ggc2lua3MuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcGF0Y2ggY3JlYXRlZCBwYXRjaCBoYW5kbGUuCisgICAgICovCisgICAgY3JlYXRlQXVkaW9QYXRjaCh2ZWM8QXVkaW9Qb3J0Q29uZmlnPiBzb3VyY2VzLCB2ZWM8QXVkaW9Qb3J0Q29uZmlnPiBzaW5rcykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgQXVkaW9QYXRjaEhhbmRsZSBwYXRjaCk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGFuIGF1ZGlvIHBhdGNoLgorICAgICAqCisgICAgICogQHBhcmFtIHBhdGNoIHBhdGNoIGhhbmRsZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgcmVsZWFzZUF1ZGlvUGF0Y2goQXVkaW9QYXRjaEhhbmRsZSBwYXRjaCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGF0dHJpYnV0ZXMgZm9yIGEgZ2l2ZW4gYXVkaW8gcG9ydC4KKyAgICAgKgorICAgICAqIEFzIGlucHV0LCAncG9ydCcgY29udGFpbnMgdGhlIGluZm9ybWF0aW9uICh0eXBlLCByb2xlLCBhZGRyZXNzIGV0Yy4uLikKKyAgICAgKiBuZWVkZWQgYnkgdGhlIEhBTCB0byBpZGVudGlmeSB0aGUgcG9ydC4KKyAgICAgKgorICAgICAqIEFzIG91dHB1dCwgJ3Jlc3VsdFBvcnQnIGNvbnRhaW5zIHBvc3NpYmxlIGF0dHJpYnV0ZXMgKHNhbXBsaW5nIHJhdGVzLAorICAgICAqIGZvcm1hdHMsIGNoYW5uZWwgbWFza3MsIGdhaW4gY29udHJvbGxlcnMuLi4pIGZvciB0aGlzIHBvcnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydCBwb3J0IGlkZW50aWZpZXIuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcmVzdWx0UG9ydCBwb3J0IGRlc2NyaXB0b3Igd2l0aCBhbGwgcGFyYW1ldGVycyBmaWxsZWQgdXAuCisgICAgICovCisgICAgZ2V0QXVkaW9Qb3J0KEF1ZGlvUG9ydCBwb3J0KQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBBdWRpb1BvcnQgcmVzdWx0UG9ydCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYXVkaW8gcG9ydCBjb25maWd1cmF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGNvbmZpZyBhdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24uCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEF1ZGlvUG9ydENvbmZpZyhBdWRpb1BvcnRDb25maWcgY29uZmlnKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgSFcgc3luY2hyb25pemF0aW9uIHNvdXJjZSBvZiB0aGUgZGV2aWNlLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzCisgICAgICogZXF1aXZhbGVudCB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9IV19BVl9TWU5DIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHJldHVybiBod0F2U3luYyBIVyBzeW5jaHJvbml6YXRpb24gc291cmNlCisgICAgICovCisgICAgZ2V0SHdBdlN5bmMoKSBnZW5lcmF0ZXMgKEF1ZGlvSHdTeW5jIGh3QXZTeW5jKTsKKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciB0aGUgc2NyZWVuIGlzIG9uLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9LRVlfU0NSRUVOX1NUQVRFIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIHR1cm5lZE9uIHdoZXRoZXIgdGhlIHNjcmVlbiBpcyB0dXJuZWQgb24uCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFNjcmVlblN0YXRlKGJvb2wgdHVybmVkT24pIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmljIG1ldGhvZCBmb3IgcmV0cmlldmluZyB2ZW5kb3Itc3BlY2lmaWMgcGFyYW1ldGVyIHZhbHVlcy4KKyAgICAgKiBUaGUgZnJhbWV3b3JrIGRvZXMgbm90IGludGVycHJldCB0aGUgcGFyYW1ldGVycywgdGhleSBhcmUgcGFzc2VkCisgICAgICogaW4gYW4gb3BhcXVlIG1hbm5lciBiZXR3ZWVuIGEgdmVuZG9yIGFwcGxpY2F0aW9uIGFuZCBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5cyBwYXJhbWV0ZXIga2V5cy4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBwYXJhbWV0ZXJzIHBhcmFtZXRlciBrZXkgdmFsdWUgcGFpcnMuCisgICAgICovCisgICAgZ2V0UGFyYW1ldGVycyh2ZWM8c3RyaW5nPiBrZXlzKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8UGFyYW1ldGVyVmFsdWU+IHBhcmFtZXRlcnMpOworCisgICAgLyoqCisgICAgICogR2VuZXJpYyBtZXRob2QgZm9yIHNldHRpbmcgdmVuZG9yLXNwZWNpZmljIHBhcmFtZXRlciB2YWx1ZXMuCisgICAgICogVGhlIGZyYW1ld29yayBkb2VzIG5vdCBpbnRlcnByZXQgdGhlIHBhcmFtZXRlcnMsIHRoZXkgYXJlIHBhc3NlZAorICAgICAqIGluIGFuIG9wYXF1ZSBtYW5uZXIgYmV0d2VlbiBhIHZlbmRvciBhcHBsaWNhdGlvbiBhbmQgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIHBhcmFtZXRlcnMgcGFyYW1ldGVyIGtleSB2YWx1ZSBwYWlycy4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0UGFyYW1ldGVycyh2ZWM8UGFyYW1ldGVyVmFsdWU+IHBhcmFtZXRlcnMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBEdW1wcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RyZWFtIGludG8gdGhlIHByb3ZpZGVkIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgKiBUaGlzIGlzIHVzZWQgZm9yIHRoZSBkdW1wc3lzIGZhY2lsaXR5LgorICAgICAqCisgICAgICogQHBhcmFtIGZkIGR1bXAgZmlsZSBkZXNjcmlwdG9yLgorICAgICAqLworICAgIGRlYnVnRHVtcChoYW5kbGUgZmQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9JRGV2aWNlc0ZhY3RvcnkuaGFsIGIvYXVkaW8vMi4wL0lEZXZpY2VzRmFjdG9yeS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJiZTdhMQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9JRGV2aWNlc0ZhY3RvcnkuaGFsCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElEZXZpY2U7CisKK2ludGVyZmFjZSBJRGV2aWNlc0ZhY3RvcnkgeworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICBlbnVtIERldmljZSA6IGludDMyX3QgeworICAgICAgICBQUklNQVJZLAorICAgICAgICBBMkRQLAorICAgICAgICBVU0IsCisgICAgICAgIFJfU1VCTUlYLAorICAgICAgICBTVFVCCisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIGFuIGF1ZGlvIGRldmljZS4gVG8gY2xvc2UgdGhlIGRldmljZSwgaXQgaXMgbmVjZXNzYXJ5IHRvIHJlbGVhc2UKKyAgICAgKiByZWZlcmVuY2VzIHRvIHRoZSByZXR1cm5lZCBkZXZpY2Ugb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIGRldmljZSBkZXZpY2UgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuIFJldHVybnMgSU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgICAgICAgIGlmIHRoZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgaGFyZHdhcmUgbW9kdWxlIGZvdW5kLAorICAgICAqICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFuIGVycm9yIG9jY3VyZWQgd2hpbGUgb3BlbmluZyB0aGUgaGFyZHdhcmUKKyAgICAgKiAgICAgICAgIG1vZHVsZS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCB0aGUgaW50ZXJmYWNlIGZvciB0aGUgY3JlYXRlZCBkZXZpY2UuCisgICAgICovCisgICAgb3BlbkRldmljZShEZXZpY2UgZGV2aWNlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIElEZXZpY2UgcmVzdWx0KTsKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvSVByaW1hcnlEZXZpY2UuaGFsIGIvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGViMzY2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmhhbApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSURldmljZTsKKworaW50ZXJmYWNlIElQcmltYXJ5RGV2aWNlIGV4dGVuZHMgSURldmljZSB7CisgICAgdHlwZWRlZiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6UmVzdWx0IFJlc3VsdDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGF1ZGlvIHZvbHVtZSBvZiBhIHZvaWNlIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdm9sdW1lIDEuMGYgbWVhbnMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0Vm9pY2VWb2x1bWUoZmxvYXQgdm9sdW1lKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBub3RpZnkgdGhlIEhBTCBhYm91dCBhdWRpbyBtb2RlIGNoYW5nZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9kZSBuZXcgbW9kZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0TW9kZShBdWRpb01vZGUgbW9kZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgd2hldGhlciBCVCBTQ08gTm9pc2UgUmVkdWN0aW9uIGFuZCBFY2hvIENhbmNlbGxhdGlvbiBhcmUgZW5hYmxlZC4KKyAgICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gZ2V0dGluZyBBVURJT19QQVJBTUVURVJfS0VZX0JUX05SRUMKKyAgICAgKiBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGVuYWJsZWQgd2hldGhlciBCVCBTQ08gTlIgKyBFQyBhcmUgZW5hYmxlZC4KKyAgICAgKi8KKyAgICBnZXRCdFNjb05yZWNFbmFibGVkKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGVuYWJsZWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIEJUIFNDTyBOb2lzZSBSZWR1Y3Rpb24gYW5kIEVjaG8gQ2FuY2VsbGF0aW9uIGFyZSBlbmFibGVkLgorICAgICAqIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0byBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9LRVlfQlRfTlJFQworICAgICAqIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIGVuYWJsZWQgd2hldGhlciBCVCBTQ08gTlIgKyBFQyBhcmUgZW5hYmxlZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0QnRTY29OcmVjRW5hYmxlZChib29sIGVuYWJsZWQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoZXRoZXIgQlQgU0NPIFdpZGViYW5kIG1vZGUgaXMgZW5hYmxlZC4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gZ2V0dGluZyBBVURJT19QQVJBTUVURVJfS0VZX0JUX1NDT19XQiBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGVuYWJsZWQgd2hldGhlciBCVCBXaWRlYmFuZCBpcyBlbmFibGVkLgorICAgICAqLworICAgIGdldEJ0U2NvV2lkZWJhbmRFbmFibGVkKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGVuYWJsZWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIEJUIFNDTyBXaWRlYmFuZCBtb2RlIGlzIGVuYWJsZWQuIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX0tFWV9CVF9TQ09fV0Igb24gdGhlIGxlZ2FjeSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZW5hYmxlZCB3aGV0aGVyIEJUIFdpZGViYW5kIGlzIGVuYWJsZWQuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEJ0U2NvV2lkZWJhbmRFbmFibGVkKGJvb2wgZW5hYmxlZCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIGVudW0gVHR5TW9kZSA6IGludDMyX3QgeworICAgICAgICBPRkYsCisgICAgICAgIFZDTywKKyAgICAgICAgSENPLAorICAgICAgICBGVUxMCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEdldHMgY3VycmVudCBUVFkgbW9kZSBzZWxlY3Rpb24uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIGdldHRpbmcgQVVESU9fUEFSQU1FVEVSX0tFWV9UVFlfTU9ERSBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIG1vZGUgVFRZIG1vZGUuCisgICAgICovCisgICAgZ2V0VHR5TW9kZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgVHR5TW9kZSBtb2RlKTsKKworICAgIC8qKgorICAgICAqIFNldHMgY3VycmVudCBUVFkgbW9kZS4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcKKyAgICAgKiBBVURJT19QQVJBTUVURVJfS0VZX1RUWV9NT0RFIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgVFRZIG1vZGUuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFR0eU1vZGUoVHR5TW9kZSBtb2RlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB3aGV0aGVyIEhlYXJpbmcgQWlkIENvbXBhdGliaWxpdHkgLSBUZWxlY29pbCAoSEFDLVQpIG1vZGUgaXMKKyAgICAgKiBlbmFibGVkLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gZ2V0dGluZworICAgICAqIEFVRElPX1BBUkFNRVRFUl9LRVlfSEFDIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gZW5hYmxlZCB3aGV0aGVyIEhBQyBtb2RlIGlzIGVuYWJsZWQuCisgICAgICovCisgICAgZ2V0SGFjRW5hYmxlZCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgYm9vbCBlbmFibGVkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciBIZWFyaW5nIEFpZCBDb21wYXRpYmlsaXR5IC0gVGVsZWNvaWwgKEhBQy1UKSBtb2RlIGlzCisgICAgICogZW5hYmxlZC4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcKKyAgICAgKiBBVURJT19QQVJBTUVURVJfS0VZX0hBQyBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlbmFibGVkIHdoZXRoZXIgSEFDIG1vZGUgaXMgZW5hYmxlZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0SGFjRW5hYmxlZChib29sIGVuYWJsZWQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0lTdHJlYW0uaGFsIGIvYXVkaW8vMi4wL0lTdHJlYW0uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiOWNjMDYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSVN0cmVhbS5oYWwKQEAgLTAsMCArMSwyOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SUVmZmVjdDsKKworaW50ZXJmYWNlIElTdHJlYW0geworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZyYW1lIHNpemUgKG51bWJlciBvZiBieXRlcyBwZXIgc2FtcGxlKS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZnJhbWVTaXplIGZyYW1lIHNpemUgaW4gYnl0ZXMuCisgICAgICovCisgICAgZ2V0RnJhbWVTaXplKCkgZ2VuZXJhdGVzICh1aW50NjRfdCBmcmFtZVNpemUpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmcmFtZSBjb3VudCBvZiB0aGUgYnVmZmVyLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fRlJBTUVfQ09VTlQgb24gdGhlIGxlZ2FjeSBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGNvdW50IGZyYW1lIGNvdW50LgorICAgICAqLworICAgIGdldEZyYW1lQ291bnQoKSBnZW5lcmF0ZXMgKHVpbnQ2NF90IGNvdW50KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2l6ZSBvZiBpbnB1dC9vdXRwdXQgYnVmZmVyIGluIGJ5dGVzIGZvciB0aGlzIHN0cmVhbS4KKyAgICAgKiBJdCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIGZyYW1lIHNpemUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBidWZmZXIgc2l6ZSBpbiBieXRlcy4KKyAgICAgKi8KKyAgICBnZXRCdWZmZXJTaXplKCkgZ2VuZXJhdGVzICh1aW50NjRfdCBidWZmZXJTaXplKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2FtcGxpbmcgcmF0ZSBpbiBIei4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc2FtcGxlUmF0ZUh6IHNhbXBsZSByYXRlIGluIEh6LgorICAgICAqLworICAgIGdldFNhbXBsZVJhdGUoKSBnZW5lcmF0ZXMgKHVpbnQzMl90IHNhbXBsZVJhdGVIeik7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gc3VwcG9ydGVkIHNhbXBsaW5nIHJhdGVzIG9mIHRoZSBzdHJlYW0uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIGdldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9TVVBfU0FNUExJTkdfUkFURVMgb24gdGhlCisgICAgICogbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc2FtcGxlUmF0ZUh6IHN1cHBvcnRlZCBzYW1wbGUgcmF0ZXMuCisgICAgICovCisgICAgZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoKSBnZW5lcmF0ZXMgKHZlYzx1aW50MzJfdD4gc2FtcGxlUmF0ZXMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgc2FtcGxpbmcgcmF0ZSBvZiB0aGUgc3RyZWFtLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fU0FNUExJTkdfUkFURSBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzYW1wbGVSYXRlSHogc2FtcGxlIHJhdGUgaW4gSHouCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZUh6KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFubmVsIG1hc2sgb2YgdGhlIHN0cmVhbS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gbWFzayBjaGFubmVsIG1hc2suCisgICAgICovCisgICAgZ2V0Q2hhbm5lbE1hc2soKSBnZW5lcmF0ZXMgKEF1ZGlvQ2hhbm5lbE1hc2sgbWFzayk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gc3VwcG9ydGVkIGNoYW5uZWwgbWFza3Mgb2YgdGhlIHN0cmVhbS4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gZ2V0dGluZyBBVURJT19QQVJBTUVURVJfU1RSRUFNX1NVUF9DSEFOTkVMUyBvbiB0aGUgbGVnYWN5CisgICAgICogSEFMLgorICAgICAqCisgICAgICogQHJldHVybiBtYXNrcyBzdXBwb3J0ZWQgYXVkaW8gbWFza3MuCisgICAgICovCisgICAgZ2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKCkgZ2VuZXJhdGVzICh2ZWM8QXVkaW9DaGFubmVsTWFzaz4gbWFza3MpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY2hhbm5lbCBtYXNrIG9mIHRoZSBzdHJlYW0uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9DSEFOTkVMUyBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmb3JtYXQgYXVkaW8gZm9ybWF0LgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGF1ZGlvIGZvcm1hdCBvZiB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICogQHJldHVybiBmb3JtYXQgYXVkaW8gZm9ybWF0LgorICAgICAqLworICAgIGdldEZvcm1hdCgpIGdlbmVyYXRlcyAoQXVkaW9Gb3JtYXQgZm9ybWF0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBzdXBwb3J0ZWQgYXVkaW8gZm9ybWF0cyBvZiB0aGUgc3RyZWFtLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzCisgICAgICogZXF1aXZhbGVudCB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fU1VQX0ZPUk1BVFMgb24gdGhlIGxlZ2FjeQorICAgICAqIEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZm9ybWF0cyBzdXBwb3J0ZWQgYXVkaW8gZm9ybWF0cy4KKyAgICAgKi8KKyAgICBnZXRTdXBwb3J0ZWRGb3JtYXRzKCkgZ2VuZXJhdGVzICh2ZWM8QXVkaW9Gb3JtYXQ+IGZvcm1hdHMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYXVkaW8gZm9ybWF0IG9mIHRoZSBzdHJlYW0uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVQgb24gdGhlIGxlZ2FjeSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZm9ybWF0IGF1ZGlvIGZvcm1hdC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0Rm9ybWF0KEF1ZGlvRm9ybWF0IGZvcm1hdCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgcmV0cmlldmluZyBzZXZlcmFsIHN0cmVhbSBwYXJhbWV0ZXJzIGluCisgICAgICogb25lIHRyYW5zYWN0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBzYW1wbGVSYXRlSHogc2FtcGxlIHJhdGUgaW4gSHouCisgICAgICogQHJldHVybiBtYXNrIGNoYW5uZWwgbWFzay4KKyAgICAgKiBAcmV0dXJuIGZvcm1hdCBhdWRpbyBmb3JtYXQuCisgICAgICovCisgICAgZ2V0QXVkaW9Qcm9wZXJ0aWVzKCkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIHVpbnQzMl90IHNhbXBsZVJhdGVIeiwgQXVkaW9DaGFubmVsTWFzayBtYXNrLCBBdWRpb0Zvcm1hdCBmb3JtYXQpOworCisgICAgLyoqCisgICAgICogQXBwbGllcyBhdWRpbyBlZmZlY3QgdG8gdGhlIHN0cmVhbS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlZmZlY3RJZCBlZmZlY3QgSUQgKG9idGFpbmVkIGZyb20gSUVmZmVjdHNGYWN0b3J5LmNyZWF0ZUVmZmVjdCkgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgdGhlIGVmZmVjdCB0byBhcHBseS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgYWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU3RvcHMgYXBwbGljYXRpb24gb2YgdGhlIGVmZmVjdCB0byB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICogQHBhcmFtIGVmZmVjdElkIGVmZmVjdCBJRCAob2J0YWluZWQgZnJvbSBJRWZmZWN0c0ZhY3RvcnkuY3JlYXRlRWZmZWN0KSBvZgorICAgICAqICAgICAgICAgICAgICAgICB0aGUgZWZmZWN0IHRvIHJlbW92ZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgcmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUHV0IHRoZSBhdWRpbyBoYXJkd2FyZSBpbnB1dC9vdXRwdXQgaW50byBzdGFuZGJ5IG1vZGUuCisgICAgICogRHJpdmVyIG11c3QgZXhpdCBmcm9tIHN0YW5kYnkgbW9kZSBhdCB0aGUgbmV4dCBJL08gb3BlcmF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHN0YW5kYnkoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZXQgb2YgZGV2aWNlKHMpIHdoaWNoIHRoaXMgc3RyZWFtIGlzIGNvbm5lY3RlZCB0by4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZGV2aWNlIHNldCBvZiBkZXZpY2Uocykgd2hpY2ggdGhpcyBzdHJlYW0gaXMgY29ubmVjdGVkIHRvLgorICAgICAqLworICAgIGdldERldmljZSgpIGdlbmVyYXRlcyAoQXVkaW9EZXZpY2UgZGV2aWNlKTsKKworICAgIC8qKgorICAgICAqIENvbm5lY3RzIHRoZSBzdHJlYW0gdG8gdGhlIGRldmljZS4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIG11c3Qgb25seSBiZSB1c2VkIGZvciBIQUxzIHRoYXQgZG8gbm90IHN1cHBvcnQKKyAgICAgKiAnSURldmljZS5jcmVhdGVBdWRpb1BhdGNoJyBtZXRob2QuIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9ST1VUSU5HIGluIHRoZSBsZWdhY3kgSEFMCisgICAgICogaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGFkZHJlc3MgZGV2aWNlIHRvIGNvbm5lY3QgdGhlIHN0cmVhbSB0by4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0RGV2aWNlKERldmljZUFkZHJlc3MgYWRkcmVzcykgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBzdHJlYW0gYWJvdXQgZGV2aWNlIGNvbm5lY3Rpb24gc3RhdGUuIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX0RFVklDRV9bRElTXUNPTk5FQ1Qgb24gdGhlIGxlZ2FjeQorICAgICAqIEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhZGRyZXNzIGF1ZGlvIGRldmljZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEBwYXJhbSBjb25uZWN0ZWQgd2hldGhlciB0aGUgZGV2aWNlIGlzIGNvbm5lY3RlZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0Q29ubmVjdGVkU3RhdGUoRGV2aWNlQWRkcmVzcyBhZGRyZXNzLCBib29sIGNvbm5lY3RlZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBIVyBzeW5jaHJvbml6YXRpb24gc291cmNlLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fSFdfQVZfU1lOQyBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBod0F2U3luYyBIVyBzeW5jaHJvbml6YXRpb24gc291cmNlCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEh3QXZTeW5jKEF1ZGlvSHdTeW5jIGh3QXZTeW5jKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2VuZXJpYyBtZXRob2QgZm9yIHJldHJpZXZpbmcgdmVuZG9yLXNwZWNpZmljIHBhcmFtZXRlciB2YWx1ZXMuCisgICAgICogVGhlIGZyYW1ld29yayBkb2VzIG5vdCBpbnRlcnByZXQgdGhlIHBhcmFtZXRlcnMsIHRoZXkgYXJlIHBhc3NlZAorICAgICAqIGluIGFuIG9wYXF1ZSBtYW5uZXIgYmV0d2VlbiBhIHZlbmRvciBhcHBsaWNhdGlvbiBhbmQgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIGtleXMgcGFyYW1ldGVyIGtleXMuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcGFyYW1ldGVycyBwYXJhbWV0ZXIga2V5IHZhbHVlIHBhaXJzLgorICAgICAqLworICAgIGdldFBhcmFtZXRlcnModmVjPHN0cmluZz4ga2V5cykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdmVjPFBhcmFtZXRlclZhbHVlPiBwYXJhbWV0ZXJzKTsKKworICAgIC8qKgorICAgICAqIEdlbmVyaWMgbWV0aG9kIGZvciBzZXR0aW5nIHZlbmRvci1zcGVjaWZpYyBwYXJhbWV0ZXIgdmFsdWVzLgorICAgICAqIFRoZSBmcmFtZXdvcmsgZG9lcyBub3QgaW50ZXJwcmV0IHRoZSBwYXJhbWV0ZXJzLCB0aGV5IGFyZSBwYXNzZWQKKyAgICAgKiBpbiBhbiBvcGFxdWUgbWFubmVyIGJldHdlZW4gYSB2ZW5kb3IgYXBwbGljYXRpb24gYW5kIEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIHBhcmFtZXRlciBrZXkgdmFsdWUgcGFpcnMuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFBhcmFtZXRlcnModmVjPFBhcmFtZXRlclZhbHVlPiBwYXJhbWV0ZXJzKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogRHVtcHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN0cmVhbSBpbnRvIHRoZSBwcm92aWRlZCBmaWxlIGRlc2NyaXB0b3IuCisgICAgICogVGhpcyBpcyB1c2VkIGZvciB0aGUgZHVtcHN5cyBmYWNpbGl0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmZCBkdW1wIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBkZWJ1Z0R1bXAoaGFuZGxlIGZkKTsKKworICAgIC8qKgorICAgICAqIENhbGxlZCBieSB0aGUgZnJhbWV3b3JrIHRvIHN0YXJ0IGEgc3RyZWFtIG9wZXJhdGluZyBpbiBtbWFwIG1vZGUuCisgICAgICogY3JlYXRlTW1hcEJ1ZmZlcigpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjYWxsaW5nIHN0YXJ0KCkuCisgICAgICogRnVuY3Rpb24gb25seSBpbXBsZW1lbnRlZCBieSBzdHJlYW1zIG9wZXJhdGluZyBpbiBtbWFwIG1vZGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpbiBjYXNlIHRoZSBzdWNjZXNzLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgb24gbm9uIG1tYXAgbW9kZSBzdHJlYW1zCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICovCisgICAgc3RhcnQoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gc3RvcCBhIHN0cmVhbSBvcGVyYXRpbmcgaW4gbW1hcCBtb2RlLgorICAgICAqIEZ1bmN0aW9uIG9ubHkgaW1wbGVtZW50ZWQgYnkgc3RyZWFtcyBvcGVyYXRpbmcgaW4gbW1hcCBtb2RlLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgT0sgaW4gY2FzZSB0aGUgc3VjY2VzLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgb24gbm9uIG1tYXAgbW9kZSBzdHJlYW1zCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICovCisgICAgc3RvcCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCkgOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gcmV0cmlldmUgaW5mb3JtYXRpb24gb24gdGhlIG1tYXAgYnVmZmVyIHVzZWQgZm9yIGF1ZGlvCisgICAgICogc2FtcGxlcyB0cmFuc2Zlci4KKyAgICAgKiBGdW5jdGlvbiBvbmx5IGltcGxlbWVudGVkIGJ5IHN0cmVhbXMgb3BlcmF0aW5nIGluIG1tYXAgbW9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaW5TaXplRnJhbWVzIG1pbmltdW0gYnVmZmVyIHNpemUgcmVxdWVzdGVkLiBUaGUgYWN0dWFsIGJ1ZmZlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2l6ZSByZXR1cm5lZCBpbiBzdHJ1Y3QgTW1hcEJ1ZmZlckluZm8gY2FuIGJlIGxhcmdlci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpbiBjYXNlIHRoZSBzdWNjZXNzLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgb24gbm9uIG1tYXAgbW9kZSBzdHJlYW1zCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGluIGNhc2Ugb2YgbWVtb3J5IGFsbG9jYXRpb24gZXJyb3IKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiB0aGUgcmVxdWVzdGVkIGJ1ZmZlciBzaXplIGlzIHRvbyBsYXJnZQorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgY2FsbGVkIG91dCBvZiBzZXF1ZW5jZQorICAgICAqIEByZXR1cm4gaW5mbyAgICBhIE1tYXBCdWZmZXJJbmZvIHN0cnVjdCBjb250YWluaW5nIGluZm9ybWF0aW9uIG9uIHRoZSBNTU1BUCBidWZmZXIgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgTW1hcEJ1ZmZlckluZm8gaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYnkgdGhlIGZyYW1ld29yayB0byByZWFkIGN1cnJlbnQgcmVhZC93cml0ZSBwb3NpdGlvbiBpbiB0aGUgbW1hcCBidWZmZXIKKyAgICAgKiB3aXRoIGFzc29jaWF0ZWQgdGltZSBzdGFtcC4KKyAgICAgKiBGdW5jdGlvbiBvbmx5IGltcGxlbWVudGVkIGJ5IHN0cmVhbXMgb3BlcmF0aW5nIGluIG1tYXAgbW9kZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9LIGluIGNhc2UgdGhlIHN1Y2Nlc3MuCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NVUFBPUlRFRCBvbiBub24gbW1hcCBtb2RlIHN0cmVhbXMKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCBvdXQgb2Ygc2VxdWVuY2UKKyAgICAgKiBAcmV0dXJuIHBvc2l0aW9uIGEgTW1hcFBvc2l0aW9uIHN0cnVjdCBjb250YWluaW5nIGN1cnJlbnQgSFcgcmVhZC93cml0ZSBwb3NpdGlvbiBpbiBmcmFtZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgIHdpdGggYXNzb2NpYXRlZCB0aW1lIHN0YW1wLgorICAgICAqLworICAgIGdldE1tYXBQb3NpdGlvbigpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIE1tYXBQb3NpdGlvbiBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYnkgdGhlIGZyYW1ld29yayB0byBkZWluaXRpYWxpemUgdGhlIHN0cmVhbSBhbmQgZnJlZSB1cAorICAgICAqIGFsbCB0aGUgY3VycmVudGx5IGFsbG9jYXRlZCByZXNvdXJjZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNsb3NlCisgICAgICogdGhlIHN0cmVhbSBvbiB0aGUgY2xpZW50IHNpZGUgYXMgc29vbiBhcyBpdCBpcyBiZWNvbWVzIHVudXNlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9LIGluIGNhc2UgdGhlIHN1Y2Nlc3MuCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NVUFBPUlRFRCBpZiBjYWxsZWQgb24gSVN0cmVhbSBpbnN0ZWFkIG9mIGlucHV0IG9yCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgc3RyZWFtIGludGVyZmFjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIHRoZSBzdHJlYW0gd2FzIGFscmVhZHkgY2xvc2VkLgorICAgICAqLworICAgIGNsb3NlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvSVN0cmVhbUluLmhhbCBiL2F1ZGlvLzIuMC9JU3RyZWFtSW4uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNzlmNDgKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSVN0cmVhbUluLmhhbApAQCAtMCwwICsxLDE1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSVN0cmVhbTsKKworaW50ZXJmYWNlIElTdHJlYW1JbiBleHRlbmRzIElTdHJlYW0geworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzb3VyY2UgZGVzY3JpcHRvciBvZiB0aGUgaW5wdXQgc3RyZWFtLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzCisgICAgICogZXF1aXZhbGVudCB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fSU5QVVRfU09VUkNFIG9uIHRoZSBsZWdhY3kKKyAgICAgKiBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBzb3VyY2UgYXVkaW8gc291cmNlLgorICAgICAqLworICAgIGdldEF1ZGlvU291cmNlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBBdWRpb1NvdXJjZSBzb3VyY2UpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnB1dCBnYWluIGZvciB0aGUgYXVkaW8gZHJpdmVyLgorICAgICAqCisgICAgICogQHBhcmFtIGdhaW4gMS4wZiBpcyB1bml0eSwgMC4wZiBpcyB6ZXJvLgorICAgICAqIEByZXN1bHQgcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRHYWluKGZsb2F0IGdhaW4pIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBDb21tYW5kcyB0aGF0IGNhbiBiZSBleGVjdXRlZCBvbiB0aGUgZHJpdmVyIHJlYWRlciB0aHJlYWQuCisgICAgICovCisgICAgZW51bSBSZWFkQ29tbWFuZCA6IGludDMyX3QgeworICAgICAgICBSRUFELAorICAgICAgICBHRVRfQ0FQVFVSRV9QT1NJVElPTgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBEYXRhIHN0cnVjdHVyZSBwYXNzZWQgdG8gdGhlIGRyaXZlciBmb3IgZXhlY3V0aW5nIGNvbW1hbmRzCisgICAgICogb24gdGhlIGRyaXZlciByZWFkZXIgdGhyZWFkLgorICAgICAqLworICAgIHN0cnVjdCBSZWFkUGFyYW1ldGVycyB7CisgICAgICAgIFJlYWRDb21tYW5kIGNvbW1hbmQ7ICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFBhcmFtcyB7CisgICAgICAgICAgICB1aW50NjRfdCByZWFkOyAgICAvLyBSRUFEIGNvbW1hbmQsIGFtb3VudCBvZiBieXRlcyB0byByZWFkLCA+PSAwLgorICAgICAgICAgICAgLy8gTm8gcGFyYW1ldGVycyBmb3IgR0VUX0NBUFRVUkVfUE9TSVRJT04uCisgICAgICAgIH0gcGFyYW1zOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBEYXRhIHN0cnVjdHVyZSBwYXNzZWQgYmFjayB0byB0aGUgY2xpZW50IHZpYSBzdGF0dXMgbWVzc2FnZSBxdWV1ZQorICAgICAqIG9mICdyZWFkJyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBQb3NzaWJsZSB2YWx1ZXMgb2YgJ3JldHZhbCcgZmllbGQ6CisgICAgICogIC0gT0ssIHJlYWQgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsOworICAgICAqICAtIElOVkFMSURfQVJHVU1FTlRTLCBzdHJlYW0gd2FzIG5vdCBjb25maWd1cmVkIHByb3Blcmx5OworICAgICAqICAtIElOVkFMSURfU1RBVEUsIHN0cmVhbSBpcyBpbiBhIHN0YXRlIHRoYXQgZG9lc24ndCBhbGxvdyByZWFkcy4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgUmVhZFN0YXR1cyB7CisgICAgICAgIFJlc3VsdCByZXR2YWw7CisgICAgICAgIFJlYWRDb21tYW5kIHJlcGx5VG87ICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFJlcGx5IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IHJlYWQ7ICAgIC8vIFJFQUQgY29tbWFuZCwgYW1vdW50IG9mIGJ5dGVzIHJlYWQsID49IDAuCisgICAgICAgICAgICBzdHJ1Y3QgQ2FwdHVyZVBvc2l0aW9uIHsgLy8gc2FtZSBhcyBnZW5lcmF0ZWQgYnkgZ2V0Q2FwdHVyZVBvc2l0aW9uLgorICAgICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lczsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCB0aW1lOworICAgICAgICAgICAgfSBjYXB0dXJlUG9zaXRpb247CisgICAgICAgIH0gcmVwbHk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldCB1cCByZXF1aXJlZCB0cmFuc3BvcnRzIGZvciByZWNlaXZpbmcgYXVkaW8gYnVmZmVycyBmcm9tIHRoZSBkcml2ZXIuCisgICAgICoKKyAgICAgKiBUaGUgdHJhbnNwb3J0IGNvbnNpc3RzIG9mIHRocmVlIG1lc3NhZ2UgcXVldWVzOgorICAgICAqICAtLSBjb21tYW5kIHF1ZXVlIGlzIHVzZWQgdG8gaW5zdHJ1Y3QgdGhlIHJlYWRlciB0aHJlYWQgd2hhdCBvcGVyYXRpb24KKyAgICAgKiAgICAgdG8gcGVyZm9ybTsKKyAgICAgKiAgLS0gZGF0YSBxdWV1ZSBpcyB1c2VkIGZvciBwYXNzaW5nIGF1ZGlvIGRhdGEgZnJvbSB0aGUgZHJpdmVyCisgICAgICogICAgIHRvIHRoZSBjbGllbnQ7CisgICAgICogIC0tIHN0YXR1cyBxdWV1ZSBpcyB1c2VkIGZvciByZXBvcnRpbmcgb3BlcmF0aW9uIHN0YXR1cworICAgICAqICAgICAoZS5nLiBhbW91bnQgb2YgYnl0ZXMgYWN0dWFsbHkgcmVhZCBvciBlcnJvciBjb2RlKS4KKyAgICAgKgorICAgICAqIFRoZSBkcml2ZXIgb3BlcmF0ZXMgb24gYSBkZWRpY2F0ZWQgdGhyZWFkLiBUaGUgY2xpZW50IG11c3QgZW5zdXJlIHRoYXQKKyAgICAgKiB0aGUgdGhyZWFkIGlzIGdpdmVuIGFuIGFwcHJvcHJpYXRlIHByaW9yaXR5IGFuZCBhc3NpZ25lZCB0byBjb3JyZWN0CisgICAgICogc2NoZWR1bGVyIGFuZCBjZ3JvdXAuIEZvciB0aGlzIHB1cnBvc2UsIHRoZSBtZXRob2QgcmV0dXJucyBpZGVudGlmaWVycworICAgICAqIG9mIHRoZSBkcml2ZXIgdGhyZWFkLgorICAgICAqCisgICAgICogQHBhcmFtIGZyYW1lU2l6ZSB0aGUgc2l6ZSBvZiBhIHNpbmdsZSBmcmFtZSwgaW4gYnl0ZXMuCisgICAgICogQHBhcmFtIGZyYW1lc0NvdW50IHRoZSBudW1iZXIgb2YgZnJhbWVzIGluIGEgYnVmZmVyLgorICAgICAqIEBwYXJhbSB0aHJlYWRQcmlvcml0eSBwcmlvcml0eSBvZiB0aGUgZHJpdmVyIHRocmVhZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpZiBib3RoIG1lc3NhZ2UgcXVldWVzIHdlcmUgY3JlYXRlZCBzdWNjZXNzZnVsbHkuCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiB0aGUgbWV0aG9kIHdhcyBhbHJlYWR5IGNhbGxlZC4KKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiB0aGVyZSB3YXMgYSBwcm9ibGVtIHNldHRpbmcgdXAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcXVldWVzLgorICAgICAqIEByZXR1cm4gY29tbWFuZE1RIGEgbWVzc2FnZSBxdWV1ZSB1c2VkIGZvciBwYXNzaW5nIGNvbW1hbmRzLgorICAgICAqIEByZXR1cm4gZGF0YU1RIGEgbWVzc2FnZSBxdWV1ZSB1c2VkIGZvciBwYXNzaW5nIGF1ZGlvIGRhdGEgaW4gdGhlIGZvcm1hdAorICAgICAqICAgICAgICAgICAgICAgIHNwZWNpZmllZCBhdCB0aGUgc3RyZWFtIG9wZW5pbmcuCisgICAgICogQHJldHVybiBzdGF0dXNNUSBhIG1lc3NhZ2UgcXVldWUgdXNlZCBmb3IgcGFzc2luZyBzdGF0dXMgZnJvbSB0aGUgZHJpdmVyCisgICAgICogICAgICAgICAgICAgICAgICB1c2luZyBSZWFkU3RhdHVzIHN0cnVjdHVyZXMuCisgICAgICogQHJldHVybiB0aHJlYWRJbmZvIGlkZW50aWZpZXJzIG9mIHRoZSBkcml2ZXIncyBkZWRpY2F0ZWQgdGhyZWFkLgorICAgICAqLworICAgIHByZXBhcmVGb3JSZWFkaW5nKHVpbnQzMl90IGZyYW1lU2l6ZSwgdWludDMyX3QgZnJhbWVzQ291bnQpCisgICAgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFJlc3VsdCByZXR2YWwsCisgICAgICAgICAgICBmbXFfc3luYzxSZWFkUGFyYW1ldGVycz4gY29tbWFuZE1RLAorICAgICAgICAgICAgZm1xX3N5bmM8dWludDhfdD4gZGF0YU1RLAorICAgICAgICAgICAgZm1xX3N5bmM8UmVhZFN0YXR1cz4gc3RhdHVzTVEsCisgICAgICAgICAgICBUaHJlYWRJbmZvIHRocmVhZEluZm8pOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBhbW91bnQgb2YgaW5wdXQgZnJhbWVzIGxvc3QgaW4gdGhlIGF1ZGlvIGRyaXZlciBzaW5jZSB0aGUgbGFzdAorICAgICAqIGNhbGwgb2YgdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIEF1ZGlvIGRyaXZlciBpcyBleHBlY3RlZCB0byByZXNldCB0aGUgdmFsdWUgdG8gMCBhbmQgcmVzdGFydCBjb3VudGluZworICAgICAqIHVwb24gcmV0dXJuaW5nIHRoZSBjdXJyZW50IHZhbHVlIGJ5IHRoaXMgZnVuY3Rpb24gY2FsbC4gU3VjaCBsb3NzCisgICAgICogdHlwaWNhbGx5IG9jY3VycyB3aGVuIHRoZSB1c2VyIHNwYWNlIHByb2Nlc3MgaXMgYmxvY2tlZCBsb25nZXIgdGhhbiB0aGUKKyAgICAgKiBjYXBhY2l0eSBvZiBhdWRpbyBkcml2ZXIgYnVmZmVycy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZnJhbWVzTG9zdCB0aGUgbnVtYmVyIG9mIGlucHV0IGF1ZGlvIGZyYW1lcyBsb3N0LgorICAgICAqLworICAgIGdldElucHV0RnJhbWVzTG9zdCgpIGdlbmVyYXRlcyAodWludDMyX3QgZnJhbWVzTG9zdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSByZWNlbnQgY291bnQgb2YgdGhlIG51bWJlciBvZiBhdWRpbyBmcmFtZXMgcmVjZWl2ZWQgYW5kIHRoZQorICAgICAqIGNsb2NrIHRpbWUgYXNzb2NpYXRlZCB3aXRoIHRoYXQgZnJhbWUgY291bnQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBJTlZBTElEX1NUQVRFIGlmIHRoZSBkZXZpY2UgaXMgbm90IHJlYWR5L2F2YWlsYWJsZSwKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfU1VQUE9SVEVEIGlmIHRoZSBjb21tYW5kIGlzIG5vdCBzdXBwb3J0ZWQsCisgICAgICogICAgICAgICAgICAgICAgT0sgb3RoZXJ3aXNlLgorICAgICAqIEByZXR1cm4gZnJhbWVzIHRoZSB0b3RhbCBmcmFtZSBjb3VudCByZWNlaXZlZC4gVGhpcyBtdXN0IGJlIGFzIGVhcmx5IGluCisgICAgICogICAgICAgICAgICAgICAgdGhlIGNhcHR1cmUgcGlwZWxpbmUgYXMgcG9zc2libGUuIEluIGdlbmVyYWwsIGZyYW1lcworICAgICAqICAgICAgICAgICAgICAgIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGFuZCBtdXN0IG5vdCBnbyAiYmFja3dhcmRzIi4KKyAgICAgKiBAcmV0dXJuIHRpbWUgaXMgdGhlIGNsb2NrIG1vbm90b25pYyB0aW1lIHdoZW4gZnJhbWVzIHdhcyBtZWFzdXJlZC4gSW4KKyAgICAgKiAgICAgICAgICAgICAgZ2VuZXJhbCwgdGltZSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHkgYW5kIG11c3Qgbm90CisgICAgICogICAgICAgICAgICAgIGdvICJiYWNrd2FyZHMiLgorICAgICAqLworICAgIGdldENhcHR1cmVQb3NpdGlvbigpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQ2NF90IGZyYW1lcywgdWludDY0X3QgdGltZSk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaGFsIGIvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0Yjc0NDcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSVN0cmVhbU91dC5oYWwKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElTdHJlYW07CitpbXBvcnQgSVN0cmVhbU91dENhbGxiYWNrOworCitpbnRlcmZhY2UgSVN0cmVhbU91dCBleHRlbmRzIElTdHJlYW0geworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGF1ZGlvIGhhcmR3YXJlIGRyaXZlciBlc3RpbWF0ZWQgbGF0ZW5jeSBpbiBtaWxsaXNlY29uZHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGxhdGVuY3lNcyBsYXRlbmN5IGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKi8KKyAgICBnZXRMYXRlbmN5KCkgZ2VuZXJhdGVzICh1aW50MzJfdCBsYXRlbmN5TXMpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBpbiBzaXR1YXRpb25zIHdoZXJlIGF1ZGlvIG1peGluZyBpcyBkb25lIGluIHRoZQorICAgICAqIGhhcmR3YXJlLiBUaGlzIG1ldGhvZCBzZXJ2ZXMgYXMgYSBkaXJlY3QgaW50ZXJmYWNlIHdpdGggaGFyZHdhcmUsCisgICAgICogYWxsb3dpbmcgdG8gZGlyZWN0bHkgc2V0IHRoZSB2b2x1bWUgYXMgYXBwb3NlZCB0byB2aWEgdGhlIGZyYW1ld29yay4KKyAgICAgKiBUaGlzIG1ldGhvZCBtaWdodCBwcm9kdWNlIG11bHRpcGxlIFBDTSBvdXRwdXRzIG9yIGhhcmR3YXJlIGFjY2VsZXJhdGVkCisgICAgICogY29kZWNzLCBzdWNoIGFzIE1QMyBvciBBQUMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGVmdCBsZWZ0IGNoYW5uZWwgYXR0ZW51YXRpb24sIDEuMGYgaXMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKiBAcGFyYW0gcmlnaHQgcmlnaHQgY2hhbm5lbCBhdHRlbnVhdGlvbiwgMS4wZiBpcyB1bml0eSwgMC4wZiBpcyB6ZXJvLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRWb2x1bWUoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBDb21tYW5kcyB0aGF0IGNhbiBiZSBleGVjdXRlZCBvbiB0aGUgZHJpdmVyIHdyaXRlciB0aHJlYWQuCisgICAgICovCisgICAgZW51bSBXcml0ZUNvbW1hbmQgOiBpbnQzMl90IHsKKyAgICAgICAgV1JJVEUsCisgICAgICAgIEdFVF9QUkVTRU5UQVRJT05fUE9TSVRJT04sCisgICAgICAgIEdFVF9MQVRFTkNZCisgICAgfTsKKworICAgIC8qKgorICAgICAqIERhdGEgc3RydWN0dXJlIHBhc3NlZCBiYWNrIHRvIHRoZSBjbGllbnQgdmlhIHN0YXR1cyBtZXNzYWdlIHF1ZXVlCisgICAgICogb2YgJ3dyaXRlJyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBQb3NzaWJsZSB2YWx1ZXMgb2YgJ3JldHZhbCcgZmllbGQ6CisgICAgICogIC0gT0ssIHdyaXRlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bDsKKyAgICAgKiAgLSBJTlZBTElEX0FSR1VNRU5UUywgc3RyZWFtIHdhcyBub3QgY29uZmlndXJlZCBwcm9wZXJseTsKKyAgICAgKiAgLSBJTlZBTElEX1NUQVRFLCBzdHJlYW0gaXMgaW4gYSBzdGF0ZSB0aGF0IGRvZXNuJ3QgYWxsb3cgd3JpdGVzOworICAgICAqICAtIElOVkFMSURfT1BFUkFUSU9OLCByZXRyaWV2aW5nIHByZXNlbnRhdGlvbiBwb3NpdGlvbiBpc24ndCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgc3RydWN0IFdyaXRlU3RhdHVzIHsKKyAgICAgICAgUmVzdWx0IHJldHZhbDsKKyAgICAgICAgV3JpdGVDb21tYW5kIHJlcGx5VG87ICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFJlcGx5IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IHdyaXR0ZW47ICAvLyBXUklURSBjb21tYW5kLCBhbW91bnQgb2YgYnl0ZXMgd3JpdHRlbiwgPj0gMC4KKyAgICAgICAgICAgIHN0cnVjdCBQcmVzZW50YXRpb25Qb3NpdGlvbiB7ICAvLyBzYW1lIGFzIGdlbmVyYXRlZCBieQorICAgICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lczsgICAgICAgICAgIC8vIGdldFByZXNlbnRhdGlvblBvc2l0aW9uLgorICAgICAgICAgICAgICAgIFRpbWVTcGVjIHRpbWVTdGFtcDsKKyAgICAgICAgICAgIH0gcHJlc2VudGF0aW9uUG9zaXRpb247CisgICAgICAgICAgICB1aW50MzJfdCBsYXRlbmN5TXM7IC8vIFNhbWUgYXMgZ2VuZXJhdGVkIGJ5IGdldExhdGVuY3kuCisgICAgICAgIH0gcmVwbHk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldCB1cCByZXF1aXJlZCB0cmFuc3BvcnRzIGZvciBwYXNzaW5nIGF1ZGlvIGJ1ZmZlcnMgdG8gdGhlIGRyaXZlci4KKyAgICAgKgorICAgICAqIFRoZSB0cmFuc3BvcnQgY29uc2lzdHMgb2YgdGhyZWUgbWVzc2FnZSBxdWV1ZXM6CisgICAgICogIC0tIGNvbW1hbmQgcXVldWUgaXMgdXNlZCB0byBpbnN0cnVjdCB0aGUgd3JpdGVyIHRocmVhZCB3aGF0IG9wZXJhdGlvbgorICAgICAqICAgICB0byBwZXJmb3JtOworICAgICAqICAtLSBkYXRhIHF1ZXVlIGlzIHVzZWQgZm9yIHBhc3NpbmcgYXVkaW8gZGF0YSBmcm9tIHRoZSBjbGllbnQKKyAgICAgKiAgICAgdG8gdGhlIGRyaXZlcjsKKyAgICAgKiAgLS0gc3RhdHVzIHF1ZXVlIGlzIHVzZWQgZm9yIHJlcG9ydGluZyBvcGVyYXRpb24gc3RhdHVzCisgICAgICogICAgIChlLmcuIGFtb3VudCBvZiBieXRlcyBhY3R1YWxseSB3cml0dGVuIG9yIGVycm9yIGNvZGUpLgorICAgICAqCisgICAgICogVGhlIGRyaXZlciBvcGVyYXRlcyBvbiBhIGRlZGljYXRlZCB0aHJlYWQuIFRoZSBjbGllbnQgbXVzdCBlbnN1cmUgdGhhdAorICAgICAqIHRoZSB0aHJlYWQgaXMgZ2l2ZW4gYW4gYXBwcm9wcmlhdGUgcHJpb3JpdHkgYW5kIGFzc2lnbmVkIHRvIGNvcnJlY3QKKyAgICAgKiBzY2hlZHVsZXIgYW5kIGNncm91cC4gRm9yIHRoaXMgcHVycG9zZSwgdGhlIG1ldGhvZCByZXR1cm5zIGlkZW50aWZpZXJzCisgICAgICogb2YgdGhlIGRyaXZlciB0aHJlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZnJhbWVTaXplIHRoZSBzaXplIG9mIGEgc2luZ2xlIGZyYW1lLCBpbiBieXRlcy4KKyAgICAgKiBAcGFyYW0gZnJhbWVzQ291bnQgdGhlIG51bWJlciBvZiBmcmFtZXMgaW4gYSBidWZmZXIuCisgICAgICogQHJldHVybiByZXR2YWwgT0sgaWYgYm90aCBtZXNzYWdlIHF1ZXVlcyB3ZXJlIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgdGhlIG1ldGhvZCB3YXMgYWxyZWFkeSBjYWxsZWQuCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9BUkdVTUVOVFMgaWYgdGhlcmUgd2FzIGEgcHJvYmxlbSBzZXR0aW5nIHVwCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHF1ZXVlcy4KKyAgICAgKiBAcmV0dXJuIGNvbW1hbmRNUSBhIG1lc3NhZ2UgcXVldWUgdXNlZCBmb3IgcGFzc2luZyBjb21tYW5kcy4KKyAgICAgKiBAcmV0dXJuIGRhdGFNUSBhIG1lc3NhZ2UgcXVldWUgdXNlZCBmb3IgcGFzc2luZyBhdWRpbyBkYXRhIGluIHRoZSBmb3JtYXQKKyAgICAgKiAgICAgICAgICAgICAgICBzcGVjaWZpZWQgYXQgdGhlIHN0cmVhbSBvcGVuaW5nLgorICAgICAqIEByZXR1cm4gc3RhdHVzTVEgYSBtZXNzYWdlIHF1ZXVlIHVzZWQgZm9yIHBhc3Npbmcgc3RhdHVzIGZyb20gdGhlIGRyaXZlcgorICAgICAqICAgICAgICAgICAgICAgICAgdXNpbmcgV3JpdGVTdGF0dXMgc3RydWN0dXJlcy4KKyAgICAgKiBAcmV0dXJuIHRocmVhZEluZm8gaWRlbnRpZmllcnMgb2YgdGhlIGRyaXZlcidzIGRlZGljYXRlZCB0aHJlYWQuCisgICAgICovCisgICAgcHJlcGFyZUZvcldyaXRpbmcodWludDMyX3QgZnJhbWVTaXplLCB1aW50MzJfdCBmcmFtZXNDb3VudCkKKyAgICBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgUmVzdWx0IHJldHZhbCwKKyAgICAgICAgICAgIGZtcV9zeW5jPFdyaXRlQ29tbWFuZD4gY29tbWFuZE1RLAorICAgICAgICAgICAgZm1xX3N5bmM8dWludDhfdD4gZGF0YU1RLAorICAgICAgICAgICAgZm1xX3N5bmM8V3JpdGVTdGF0dXM+IHN0YXR1c01RLAorICAgICAgICAgICAgVGhyZWFkSW5mbyB0aHJlYWRJbmZvKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGF1ZGlvIGZyYW1lcyB3cml0dGVuIGJ5IHRoZSBhdWRpbyBEU1AgdG8gREFDIHNpbmNlCisgICAgICogdGhlIG91dHB1dCBoYXMgZXhpdGVkIHN0YW5kYnkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBkc3BGcmFtZXMgbnVtYmVyIG9mIGF1ZGlvIGZyYW1lcyB3cml0dGVuLgorICAgICAqLworICAgIGdldFJlbmRlclBvc2l0aW9uKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB1aW50MzJfdCBkc3BGcmFtZXMpOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBsb2NhbCB0aW1lIGF0IHdoaWNoIHRoZSBuZXh0IHdyaXRlIHRvIHRoZSBhdWRpbyBkcml2ZXIgd2lsbCBiZQorICAgICAqIHByZXNlbnRlZC4gVGhlIHVuaXRzIGFyZSBtaWNyb3NlY29uZHMsIHdoZXJlIHRoZSBlcG9jaCBpcyBkZWNpZGVkIGJ5IHRoZQorICAgICAqIGxvY2FsIGF1ZGlvIEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHRpbWVzdGFtcFVzIHRpbWUgb2YgdGhlIG5leHQgd3JpdGUuCisgICAgICovCisgICAgZ2V0TmV4dFdyaXRlVGltZXN0YW1wKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQ2NF90IHRpbWVzdGFtcFVzKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2FsbGJhY2sgaW50ZXJmYWNlIGZvciBub3RpZnlpbmcgY29tcGxldGlvbiBvZiBub24tYmxvY2tpbmcKKyAgICAgKiB3cml0ZSBhbmQgZHJhaW4uCisgICAgICoKKyAgICAgKiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gaW1wbGllcyB0aGF0IGFsbCBmdXR1cmUgJ3dyaXRlJyBhbmQgJ2RyYWluJworICAgICAqIG11c3QgYmUgbm9uLWJsb2NraW5nIGFuZCB1c2UgdGhlIGNhbGxiYWNrIHRvIHNpZ25hbCBjb21wbGV0aW9uLgorICAgICAqCisgICAgICogJ2NsZWFyQ2FsbGJhY2snIG1ldGhvZCBuZWVkcyB0byBiZSBjYWxsZWQgaW4gb3JkZXIgdG8gcmVsZWFzZSB0aGUgbG9jYWwKKyAgICAgKiBjYWxsYmFjayBwcm94eSBvbiB0aGUgc2VydmVyIHNpZGUgYW5kIHRodXMgZGVyZWZlcmVuY2UgdGhlIGNhbGxiYWNrCisgICAgICogaW1wbGVtZW50YXRpb24gb24gdGhlIGNsaWVudCBzaWRlLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElTdHJlYW1PdXRDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIENsZWFycyB0aGUgY2FsbGJhY2sgcHJldmlvdXNseSBzZXQgdmlhICdzZXRDYWxsYmFjaycgbWV0aG9kLgorICAgICAqCisgICAgICogV2FybmluZzogZmFpbHVyZSB0byBjYWxsIHRoaXMgbWV0aG9kIHJlc3VsdHMgaW4gY2FsbGJhY2sgaW1wbGVtZW50YXRpb24KKyAgICAgKiBvbiB0aGUgY2xpZW50IHNpZGUgYmVpbmcgaGVsZCB1bnRpbCB0aGUgSEFMIHNlcnZlciB0ZXJtaW5hdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogT0sgb3IgTk9UX1NVUFBPUlRFRC4KKyAgICAgKi8KKyAgICBjbGVhckNhbGxiYWNrKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciBIQUwgc3VwcG9ydHMgcGF1c2luZyBhbmQgcmVzdW1pbmcgb2Ygc3RyZWFtcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNQYXVzZSB0cnVlIGlmIHBhdXNpbmcgaXMgc3VwcG9ydGVkLgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNSZXN1bWUgdHJ1ZSBpZiByZXN1bWUgaXMgc3VwcG9ydGVkLgorICAgICAqLworICAgIHN1cHBvcnRzUGF1c2VBbmRSZXN1bWUoKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1cHBvcnRzUGF1c2UsIGJvb2wgc3VwcG9ydHNSZXN1bWUpOworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdG8gdGhlIGF1ZGlvIGRyaXZlciB0byBzdG9wIHBsYXliYWNrIGhvd2V2ZXIgdGhlIHF1ZXVlZCBidWZmZXJzCisgICAgICogYXJlIHJldGFpbmVkIGJ5IHRoZSBoYXJkd2FyZS4gVXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgcGF1c2UvcmVzdW1lLiBFbXB0eQorICAgICAqIGltcGxlbWVudGF0aW9uIGlmIG5vdCBzdXBwb3J0ZWQgaG93ZXZlciBtdXN0IGJlIGltcGxlbWVudGVkIGZvciBoYXJkd2FyZQorICAgICAqIHdpdGggbm9uLXRyaXZpYWwgbGF0ZW5jeS4gSW4gdGhlIHBhdXNlIHN0YXRlLCBzb21lIGF1ZGlvIGhhcmR3YXJlIG1heQorICAgICAqIHN0aWxsIGJlIHVzaW5nIHBvd2VyLiBDbGllbnQgY29kZSBtYXkgY29uc2lkZXIgY2FsbGluZyAnc3VzcGVuZCcgYWZ0ZXIgYQorICAgICAqIHRpbWVvdXQgdG8gcHJldmVudCB0aGF0IGV4Y2VzcyBwb3dlciB1c2FnZS4KKyAgICAgKgorICAgICAqIEltcGxlbWVudGF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gaXMgbWFuZGF0b3J5IGZvciBvZmZsb2FkZWQgcGxheWJhY2suCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgcGF1c2UoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdG8gdGhlIGF1ZGlvIGRyaXZlciB0byByZXN1bWUgcGxheWJhY2sgZm9sbG93aW5nIGEgcGF1c2UuCisgICAgICogUmV0dXJucyBlcnJvciBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCB3aXRob3V0IG1hdGNoaW5nIHBhdXNlLgorICAgICAqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBpcyBtYW5kYXRvcnkgZm9yIG9mZmxvYWRlZCBwbGF5YmFjay4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICByZXN1bWUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIEhBTCBzdXBwb3J0cyBkcmFpbmluZyBvZiBzdHJlYW1zLgorICAgICAqCisgICAgICogQHJldHVybiBzdXBwb3J0cyB0cnVlIGlmIGRyYWluaW5nIGlzIHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBzdXBwb3J0c0RyYWluKCkgZ2VuZXJhdGVzIChib29sIHN1cHBvcnRzKTsKKworICAgIC8qKgorICAgICAqIFJlcXVlc3RzIG5vdGlmaWNhdGlvbiB3aGVuIGRhdGEgYnVmZmVyZWQgYnkgdGhlIGRyaXZlci9oYXJkd2FyZSBoYXMgYmVlbgorICAgICAqIHBsYXllZC4gSWYgJ3NldENhbGxiYWNrJyBoYXMgcHJldmlvdXNseSBiZWVuIGNhbGxlZCB0byBlbmFibGUKKyAgICAgKiBub24tYmxvY2tpbmcgbW9kZSwgdGhlbiAnZHJhaW4nIG11c3Qgbm90IGJsb2NrLCBpbnN0ZWFkIGl0IG11c3QgcmV0dXJuCisgICAgICogcXVpY2tseSBhbmQgY29tcGxldGlvbiBvZiB0aGUgZHJhaW4gaXMgbm90aWZpZWQgdGhyb3VnaCB0aGUgY2FsbGJhY2suIElmCisgICAgICogJ3NldENhbGxiYWNrJyBoYXMgbm90IGJlZW4gY2FsbGVkLCB0aGVuICdkcmFpbicgbXVzdCBibG9jayB1bnRpbAorICAgICAqIGNvbXBsZXRpb24uCisgICAgICoKKyAgICAgKiBJZiAndHlwZScgaXMgJ0FMTCcsIHRoZSBkcmFpbiBjb21wbGV0ZXMgd2hlbiBhbGwgcHJldmlvdXNseSB3cml0dGVuIGRhdGEKKyAgICAgKiBoYXMgYmVlbiBwbGF5ZWQuCisgICAgICoKKyAgICAgKiBJZiAndHlwZScgaXMgJ0VBUkxZX05PVElGWScsIHRoZSBkcmFpbiBjb21wbGV0ZXMgc2hvcnRseSBiZWZvcmUgYWxsIGRhdGEKKyAgICAgKiBmb3IgdGhlIGN1cnJlbnQgdHJhY2sgaGFzIHBsYXllZCB0byBhbGxvdyB0aW1lIGZvciB0aGUgZnJhbWV3b3JrIHRvCisgICAgICogcGVyZm9ybSBhIGdhcGxlc3MgdHJhY2sgc3dpdGNoLgorICAgICAqCisgICAgICogRHJhaW4gbXVzdCByZXR1cm4gaW1tZWRpYXRlbHkgb24gJ3N0b3AnIGFuZCAnZmx1c2gnIGNhbGxzLgorICAgICAqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBpcyBtYW5kYXRvcnkgZm9yIG9mZmxvYWRlZCBwbGF5YmFjay4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgZHJhaW4uCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIGRyYWluKEF1ZGlvRHJhaW4gdHlwZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRvIHRoZSBhdWRpbyBkcml2ZXIgdG8gZmx1c2ggdGhlIHF1ZXVlZCBkYXRhLiBTdHJlYW0gbXVzdAorICAgICAqIGFscmVhZHkgYmUgcGF1c2VkIGJlZm9yZSBjYWxsaW5nICdmbHVzaCcuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIGlzIG1hbmRhdG9yeSBmb3Igb2ZmbG9hZGVkIHBsYXliYWNrLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIGZsdXNoKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHJlY2VudCBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIGF1ZGlvIGZyYW1lcyBwcmVzZW50ZWQgdG8gYW4KKyAgICAgKiBleHRlcm5hbCBvYnNlcnZlci4gVGhpcyBleGNsdWRlcyBmcmFtZXMgd2hpY2ggaGF2ZSBiZWVuIHdyaXR0ZW4gYnV0IGFyZQorICAgICAqIHN0aWxsIGluIHRoZSBwaXBlbGluZS4gVGhlIGNvdW50IGlzIG5vdCByZXNldCB0byB6ZXJvIHdoZW4gb3V0cHV0IGVudGVycworICAgICAqIHN0YW5kYnkuIEFsc28gcmV0dXJucyB0aGUgdmFsdWUgb2YgQ0xPQ0tfTU9OT1RPTklDIGFzIG9mIHRoaXMKKyAgICAgKiBwcmVzZW50YXRpb24gY291bnQuIFRoZSByZXR1cm5lZCBjb3VudCBpcyBleHBlY3RlZCB0byBiZSAncmVjZW50JywgYnV0CisgICAgICogZG9lcyBub3QgbmVlZCB0byBiZSB0aGUgbW9zdCByZWNlbnQgcG9zc2libGUgdmFsdWUuIEhvd2V2ZXIsIHRoZQorICAgICAqIGFzc29jaWF0ZWQgdGltZSBtdXN0IGNvcnJlc3BvbmQgdG8gd2hhdGV2ZXIgY291bnQgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBFeGFtcGxlOiBhc3N1bWUgdGhhdCBOK00gZnJhbWVzIGhhdmUgYmVlbiBwcmVzZW50ZWQsIHdoZXJlIE0gaXMgYSAnc21hbGwnCisgICAgICogbnVtYmVyLiBUaGVuIGl0IGlzIHBlcm1pc3NpYmxlIHRvIHJldHVybiBOIGluc3RlYWQgb2YgTitNLCBhbmQgdGhlCisgICAgICogdGltZXN0YW1wIG11c3QgY29ycmVzcG9uZCB0byBOIHJhdGhlciB0aGFuIE4rTS4gVGhlIHRlcm1zICdyZWNlbnQnIGFuZAorICAgICAqICdzbWFsbCcgYXJlIG5vdCBkZWZpbmVkLiBUaGV5IHJlZmxlY3QgdGhlIHF1YWxpdHkgb2YgdGhlIGltcGxlbWVudGF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gZnJhbWVzIGNvdW50IG9mIHByZXNlbnRlZCBhdWRpbyBmcmFtZXMuCisgICAgICogQHJldHVybiB0aW1lU3RhbXAgYXNzb2NpYXRlZCBjbG9jayB0aW1lLgorICAgICAqLworICAgIGdldFByZXNlbnRhdGlvblBvc2l0aW9uKCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDY0X3QgZnJhbWVzLCBUaW1lU3BlYyB0aW1lU3RhbXApOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9JU3RyZWFtT3V0Q2FsbGJhY2suaGFsIGIvYXVkaW8vMi4wL0lTdHJlYW1PdXRDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFlMTIzYwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9JU3RyZWFtT3V0Q2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCisvKioKKyAqIEFzeW5jaHJvbm91cyB3cml0ZSBjYWxsYmFjayBpbnRlcmZhY2UuCisgKi8KK2ludGVyZmFjZSBJU3RyZWFtT3V0Q2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIE5vbiBibG9ja2luZyB3cml0ZSBjb21wbGV0ZWQuCisgICAgICovCisgICAgb25ld2F5IG9uV3JpdGVSZWFkeSgpOworCisgICAgLyoqCisgICAgICogRHJhaW4gY29tcGxldGVkLgorICAgICAqLworICAgIG9uZXdheSBvbkRyYWluUmVhZHkoKTsKKworICAgIC8qKgorICAgICAqIFN0cmVhbSBoaXQgYW4gZXJyb3IuCisgICAgICovCisgICAgb25ld2F5IG9uRXJyb3IoKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvYXVkaW8vMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjE4NTNjCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDkxIEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAtaW1wbAorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIENvbnZlcnNpb25zLmNwcCBcCisgICAgRGV2aWNlLmNwcCBcCisgICAgRGV2aWNlc0ZhY3RvcnkuY3BwIFwKKyAgICBQYXJhbWV0ZXJzVXRpbC5jcHAgXAorICAgIFByaW1hcnlEZXZpY2UuY3BwIFwKKyAgICBTdHJlYW0uY3BwIFwKKyAgICBTdHJlYW1Jbi5jcHAgXAorICAgIFN0cmVhbU91dC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmZtcSBcCisgICAgbGliaGFyZHdhcmUgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAtdXRpbCBcCisKK0xPQ0FMX0hFQURFUl9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmF1ZGlvY2xpZW50X2hlYWRlcnMgXAorICAgIGxpYmF1ZGlvX3N5c3RlbV9oZWFkZXJzIFwKKyAgICBsaWJoYXJkd2FyZV9oZWFkZXJzIFwKKyAgICBsaWJtZWRpYV9oZWFkZXJzIFwKKworTE9DQUxfV0hPTEVfU1RBVElDX0xJQlJBUklFUyA6PSBsaWJtZWRpYV9oZWxwZXIKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCisjCisjIFNlcnZpY2UKKyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlLnJjCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjAgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xCisKK2lmZXEgKCQoc3RyaXAgJChBVURJT1NFUlZFUl9NVUxUSUxJQikpLCkKK0xPQ0FMX01VTFRJTElCIDo9IDMyCitlbHNlCitMT0NBTF9NVUxUSUxJQiA6PSAkKEFVRElPU0VSVkVSX01VTFRJTElCKQorZW5kaWYKKworaWZlcSAoJChUQVJHRVRfVVNFU19CQ1JBRElPX0ZVVFVSRV9GRUFUVVJFUyksdHJ1ZSkKK0xPQ0FMX0NGTEFHUyArPSAtRFRBUkdFVF9VU0VTX0JDUkFESU9fRlVUVVJFX0ZFQVRVUkVTCitlbmRpZgorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmNwcCBiL2F1ZGlvLzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjY5MTg1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RkOjpzdHJpbmcgZGV2aWNlQWRkcmVzc1RvSGFsKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpIHsKKyAgICAvLyBIQUwgYXNzdW1lcyB0aGF0IHRoZSBhZGRyZXNzIGlzIE5VTC10ZXJtaW5hdGVkLgorICAgIGNoYXIgaGFsQWRkcmVzc1tBVURJT19ERVZJQ0VfTUFYX0FERFJFU1NfTEVOXTsKKyAgICBtZW1zZXQoaGFsQWRkcmVzcywgMCwgc2l6ZW9mKGhhbEFkZHJlc3MpKTsKKyAgICB1aW50MzJfdCBoYWxEZXZpY2UgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYWRkcmVzcy5kZXZpY2UpOworICAgIGNvbnN0IGJvb2wgaXNJbnB1dCA9IChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfQklUX0lOKSAhPSAwOworICAgIGlmIChpc0lucHV0KSBoYWxEZXZpY2UgJj0gfkFVRElPX0RFVklDRV9CSVRfSU47CisgICAgaWYgKCghaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX09VVF9BTExfQTJEUCkgIT0gMCkKKyAgICAgICAgICAgIHx8IChpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfSU5fQkxVRVRPT1RIX0EyRFApICE9IDApKSB7CisgICAgICAgIHNucHJpbnRmKGhhbEFkZHJlc3MsIHNpemVvZihoYWxBZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAiJTAyWDolMDJYOiUwMlg6JTAyWDolMDJYOiUwMlgiLAorICAgICAgICAgICAgICAgIGFkZHJlc3MuYWRkcmVzcy5tYWNbMF0sIGFkZHJlc3MuYWRkcmVzcy5tYWNbMV0sIGFkZHJlc3MuYWRkcmVzcy5tYWNbMl0sCisgICAgICAgICAgICAgICAgYWRkcmVzcy5hZGRyZXNzLm1hY1szXSwgYWRkcmVzcy5hZGRyZXNzLm1hY1s0XSwgYWRkcmVzcy5hZGRyZXNzLm1hY1s1XSk7CisgICAgfSBlbHNlIGlmICgoIWlzSW5wdXQgJiYgKGhhbERldmljZSAmIEFVRElPX0RFVklDRV9PVVRfSVApICE9IDApCisgICAgICAgICAgICB8fCAoaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX0lOX0lQKSAhPSAwKSkgeworICAgICAgICBzbnByaW50ZihoYWxBZGRyZXNzLCBzaXplb2YoaGFsQWRkcmVzcyksCisgICAgICAgICAgICAgICAgIiVkLiVkLiVkLiVkIiwKKyAgICAgICAgICAgICAgICBhZGRyZXNzLmFkZHJlc3MuaXB2NFswXSwgYWRkcmVzcy5hZGRyZXNzLmlwdjRbMV0sCisgICAgICAgICAgICAgICAgYWRkcmVzcy5hZGRyZXNzLmlwdjRbMl0sIGFkZHJlc3MuYWRkcmVzcy5pcHY0WzNdKTsKKyAgICB9IGVsc2UgaWYgKCghaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX09VVF9BTExfVVNCKSAhPSAwKQorICAgICAgICAgICAgfHwgKGlzSW5wdXQgJiYgKGhhbERldmljZSAmIEFVRElPX0RFVklDRV9JTl9BTExfVVNCKSAhPSAwKSkgeworICAgICAgICBzbnByaW50ZihoYWxBZGRyZXNzLCBzaXplb2YoaGFsQWRkcmVzcyksCisgICAgICAgICAgICAgICAgImNhcmQ9JWQ7ZGV2aWNlPSVkIiwKKyAgICAgICAgICAgICAgICBhZGRyZXNzLmFkZHJlc3MuYWxzYS5jYXJkLCBhZGRyZXNzLmFkZHJlc3MuYWxzYS5kZXZpY2UpOworICAgIH0gZWxzZSBpZiAoKCFpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfT1VUX0JVUykgIT0gMCkKKyAgICAgICAgICAgIHx8IChpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfSU5fQlVTKSAhPSAwKSkgeworICAgICAgICBzbnByaW50ZihoYWxBZGRyZXNzLCBzaXplb2YoaGFsQWRkcmVzcyksCisgICAgICAgICAgICAgICAgIiVzIiwgYWRkcmVzcy5idXNBZGRyZXNzLmNfc3RyKCkpOworICAgIH0gZWxzZSBpZiAoKCFpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfT1VUX1JFTU9URV9TVUJNSVgpKSAhPSAwCisgICAgICAgICAgICB8fCAoaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX0lOX1JFTU9URV9TVUJNSVgpICE9IDApKSB7CisgICAgICAgIHNucHJpbnRmKGhhbEFkZHJlc3MsIHNpemVvZihoYWxBZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAiJXMiLCBhZGRyZXNzLnJTdWJtaXhBZGRyZXNzLmNfc3RyKCkpOworICAgIH0KKyAgICByZXR1cm4gaGFsQWRkcmVzczsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9Db252ZXJzaW9ucy5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmRhNWM1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfQ29udmVyc2lvbnNfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdWRpb19WMl8wX0NvbnZlcnNpb25zX0hfCisKKyNpbmNsdWRlIDxzdHJpbmc+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpby5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpEZXZpY2VBZGRyZXNzOworCitzdGQ6OnN0cmluZyBkZXZpY2VBZGRyZXNzVG9IYWwoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcyk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9Db252ZXJzaW9uc19IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlLmNwcCBiL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjgwZDMyMAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZS5jcHAKQEAgLTAsMCArMSwzNzIgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqCisqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKgorKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKgorKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKworI2RlZmluZSBMT0dfVEFHICJEZXZpY2VIQUwiCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDxtZW1vcnkuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisjaW5jbHVkZSAiRGV2aWNlLmgiCisjaW5jbHVkZSAiSGlkbFV0aWxzLmgiCisjaW5jbHVkZSAiU3RyZWFtSW4uaCIKKyNpbmNsdWRlICJTdHJlYW1PdXQuaCIKKyNpbmNsdWRlICJVdGlsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgRGlhZ25vc3RpY3MgeworICAgcHVibGljOgorICAgIHN0YXRpYyBEaWFnbm9zdGljcyYgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBfKG1Mb2NrKTsKKyAgICAgICAgaWYgKG1JbnN0YW5jZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBtSW5zdGFuY2UgPSBuZXcgRGlhZ25vc3RpY3M7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICptSW5zdGFuY2U7CisgICAgfQorCisgICAgdm9pZCByZWdpc3RlckRldmljZShEZXZpY2UqIGRldikgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gXyhtTG9jayk7CisgICAgICAgIG1EZXZpY2VzLnB1c2hfYmFjayh3cDxEZXZpY2U+KGRldikpOworICAgIH0KKworICAgIHZvaWQgY2hlY2tGb3JFcmFzZWRIYWxDYmxrKGNvbnN0IERldmljZSogZGV2KSB7CisgICAgICAgIGlmIChkZXYtPnZlcnNpb24oKSAhPSAwKSByZXR1cm47ICAvLyBhbGwgT0sKKworICAgICAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gc3M7CisgICAgICAgIHNzIDw8ICJaZXJvIEhBTCBDQiBmb3IgIiA8PCBkZXYtPnR5cGUoKSA8PCAiOiIgPDwgc3RkOjpoZXgKKyAgICAgICAgICAgPDwgZGV2LT5kZXZpY2UoKSA8PCAiOyBPdGhlcnM6ICI7CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBfKG1Mb2NrKTsKKyAgICAgICAgICAgIGZvciAoYXV0byB3cCA6IG1EZXZpY2VzKSB7CisgICAgICAgICAgICAgICAgc3A8RGV2aWNlPiBvdGhlcnt3cC5wcm9tb3RlKCl9OworICAgICAgICAgICAgICAgIGlmIChvdGhlci5nZXQoKSA9PSBudWxscHRyIHx8IG90aGVyLmdldCgpID09IGRldikgY29udGludWU7CisgICAgICAgICAgICAgICAgc3MgPDwgb3RoZXItPnR5cGUoKSA8PCAiOiIgPDwgb3RoZXItPnZlcnNpb24oKSA8PCAiOiIKKyAgICAgICAgICAgICAgICAgICA8PCBzdGQ6OmhleCA8PCBvdGhlci0+ZGV2aWNlKCkgPDwgIjsgIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBBTE9HRSgiJXMiLCBzcy5zdHIoKS5jX3N0cigpKTsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgRGlhZ25vc3RpY3MoKSB7fQorCisgICAgc3RhdGljIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgc3RhdGljIERpYWdub3N0aWNzKiBtSW5zdGFuY2U7CisgICAgc3RkOjp2ZWN0b3I8d3A8RGV2aWNlPj4gbURldmljZXM7Cit9OworCitzdGQ6Om11dGV4IERpYWdub3N0aWNzOjptTG9jazsKK0RpYWdub3N0aWNzKiBEaWFnbm9zdGljczo6bUluc3RhbmNle251bGxwdHJ9OworCit9ICAvLyBuYW1lc3BhY2UKKworRGV2aWNlOjpEZXZpY2UoYXVkaW9faHdfZGV2aWNlX3QqIGRldmljZSwgY29uc3QgY2hhciogdHlwZSkKKyAgICA6IG1EZXZpY2V7ZGV2aWNlfSwgbVR5cGV7dHlwZX0geworICAgIERpYWdub3N0aWNzOjpnZXRJbnN0YW5jZSgpLnJlZ2lzdGVyRGV2aWNlKHRoaXMpOworfQorCitEZXZpY2U6On5EZXZpY2UoKSB7CisgICAgaW50IHN0YXR1cyA9IGF1ZGlvX2h3X2RldmljZV9jbG9zZShtRGV2aWNlKTsKKyAgICBBTE9HV19JRihzdGF0dXMsICJFcnJvciBjbG9zaW5nIGF1ZGlvIGh3IGRldmljZSAlcDogJXMiLCBtRGV2aWNlLAorICAgICAgICAgICAgIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICBtRGV2aWNlID0gbnVsbHB0cjsKK30KKworUmVzdWx0IERldmljZTo6YW5hbHl6ZVN0YXR1cyhjb25zdCBjaGFyKiBmdW5jTmFtZSwgaW50IHN0YXR1cykgeworICAgIGlmIChzdGF0dXMgIT0gMCkgeworICAgICAgICBBTE9HVygiRGV2aWNlICVwICVzOiAlcyIsIG1EZXZpY2UsIGZ1bmNOYW1lLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgfQorICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgY2FzZSAtRU5PREFUQToKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfU1RBVEU7CisgICAgICAgIGNhc2UgLUVOT0RFVjoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgY2FzZSAtRU5PU1lTOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfU1RBVEU7CisgICAgfQorfQorCit2b2lkIERldmljZTo6Y2xvc2VJbnB1dFN0cmVhbShhdWRpb19zdHJlYW1faW5fdCogc3RyZWFtKSB7CisgICAgbURldmljZS0+Y2xvc2VfaW5wdXRfc3RyZWFtKG1EZXZpY2UsIHN0cmVhbSk7Cit9CisKK3ZvaWQgRGV2aWNlOjpjbG9zZU91dHB1dFN0cmVhbShhdWRpb19zdHJlYW1fb3V0X3QqIHN0cmVhbSkgeworICAgIG1EZXZpY2UtPmNsb3NlX291dHB1dF9zdHJlYW0obURldmljZSwgc3RyZWFtKTsKK30KKworY2hhciogRGV2aWNlOjpoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpIHsKKyAgICBEaWFnbm9zdGljczo6Z2V0SW5zdGFuY2UoKS5jaGVja0ZvckVyYXNlZEhhbENibGsodGhpcyk7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldF9wYXJhbWV0ZXJzKG1EZXZpY2UsIGtleXMpOworfQorCitpbnQgRGV2aWNlOjpoYWxTZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXNBbmRWYWx1ZXMpIHsKKyAgICBEaWFnbm9zdGljczo6Z2V0SW5zdGFuY2UoKS5jaGVja0ZvckVyYXNlZEhhbENibGsodGhpcyk7CisgICAgcmV0dXJuIG1EZXZpY2UtPnNldF9wYXJhbWV0ZXJzKG1EZXZpY2UsIGtleXNBbmRWYWx1ZXMpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2UgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gRGV2aWNlOjppbml0Q2hlY2soKSB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoImluaXRfY2hlY2siLCBtRGV2aWNlLT5pbml0X2NoZWNrKG1EZXZpY2UpKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRGV2aWNlOjpzZXRNYXN0ZXJWb2x1bWUoZmxvYXQgdm9sdW1lKSB7CisgICAgaWYgKG1EZXZpY2UtPnNldF9tYXN0ZXJfdm9sdW1lID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKCFpc0dhaW5Ob3JtYWxpemVkKHZvbHVtZSkpIHsKKyAgICAgICAgQUxPR1coIkNhbiBub3Qgc2V0IGEgbWFzdGVyIHZvbHVtZSAoJWYpIG91dHNpZGUgWzAsMV0iLCB2b2x1bWUpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoInNldF9tYXN0ZXJfdm9sdW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5zZXRfbWFzdGVyX3ZvbHVtZShtRGV2aWNlLCB2b2x1bWUpKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0TWFzdGVyVm9sdW1lKGdldE1hc3RlclZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBmbG9hdCB2b2x1bWUgPSAwOworICAgIGlmIChtRGV2aWNlLT5nZXRfbWFzdGVyX3ZvbHVtZSAhPSBOVUxMKSB7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVTdGF0dXMoImdldF9tYXN0ZXJfdm9sdW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5nZXRfbWFzdGVyX3ZvbHVtZShtRGV2aWNlLCAmdm9sdW1lKSk7CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgdm9sdW1lKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEZXZpY2U6OnNldE1pY011dGUoYm9vbCBtdXRlKSB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoInNldF9taWNfbXV0ZSIsIG1EZXZpY2UtPnNldF9taWNfbXV0ZShtRGV2aWNlLCBtdXRlKSk7Cit9CisKK1JldHVybjx2b2lkPiBEZXZpY2U6OmdldE1pY011dGUoZ2V0TWljTXV0ZV9jYiBfaGlkbF9jYikgeworICAgIGJvb2wgbXV0ZSA9IGZhbHNlOworICAgIFJlc3VsdCByZXR2YWwgPQorICAgICAgICBhbmFseXplU3RhdHVzKCJnZXRfbWljX211dGUiLCBtRGV2aWNlLT5nZXRfbWljX211dGUobURldmljZSwgJm11dGUpKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIG11dGUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IERldmljZTo6c2V0TWFzdGVyTXV0ZShib29sIG11dGUpIHsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgaWYgKG1EZXZpY2UtPnNldF9tYXN0ZXJfbXV0ZSAhPSBOVUxMKSB7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVTdGF0dXMoInNldF9tYXN0ZXJfbXV0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURldmljZS0+c2V0X21hc3Rlcl9tdXRlKG1EZXZpY2UsIG11dGUpKTsKKyAgICB9CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0TWFzdGVyTXV0ZShnZXRNYXN0ZXJNdXRlX2NiIF9oaWRsX2NiKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIGJvb2wgbXV0ZSA9IGZhbHNlOworICAgIGlmIChtRGV2aWNlLT5nZXRfbWFzdGVyX211dGUgIT0gTlVMTCkgeworICAgICAgICByZXR2YWwgPSBhbmFseXplU3RhdHVzKCJnZXRfbWFzdGVyX211dGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EZXZpY2UtPmdldF9tYXN0ZXJfbXV0ZShtRGV2aWNlLCAmbXV0ZSkpOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIG11dGUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBEZXZpY2U6OmdldElucHV0QnVmZmVyU2l6ZShjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldElucHV0QnVmZmVyU2l6ZV9jYiBfaGlkbF9jYikgeworICAgIGF1ZGlvX2NvbmZpZ190IGhhbENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnVG9IYWwoY29uZmlnLCAmaGFsQ29uZmlnKTsKKyAgICBzaXplX3QgaGFsQnVmZmVyU2l6ZSA9IG1EZXZpY2UtPmdldF9pbnB1dF9idWZmZXJfc2l6ZShtRGV2aWNlLCAmaGFsQ29uZmlnKTsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgIHVpbnQ2NF90IGJ1ZmZlclNpemUgPSAwOworICAgIGlmIChoYWxCdWZmZXJTaXplICE9IDApIHsKKyAgICAgICAgcmV0dmFsID0gUmVzdWx0OjpPSzsKKyAgICAgICAgYnVmZmVyU2l6ZSA9IGhhbEJ1ZmZlclNpemU7CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgYnVmZmVyU2l6ZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6b3Blbk91dHB1dFN0cmVhbShpbnQzMl90IGlvSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBEZXZpY2VBZGRyZXNzJiBkZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbk91dHB1dFN0cmVhbV9jYiBfaGlkbF9jYikgeworICAgIGF1ZGlvX2NvbmZpZ190IGhhbENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnVG9IYWwoY29uZmlnLCAmaGFsQ29uZmlnKTsKKyAgICBhdWRpb19zdHJlYW1fb3V0X3QqIGhhbFN0cmVhbTsKKyAgICBBTE9HVigKKyAgICAgICAgIm9wZW5fb3V0cHV0X3N0cmVhbSBoYW5kbGU6ICVkIGRldmljZXM6ICV4IGZsYWdzOiAlI3ggIgorICAgICAgICAic3JhdGU6ICVkIGZvcm1hdCAlI3ggY2hhbm5lbHMgJXggYWRkcmVzcyAlcyIsCisgICAgICAgIGlvSGFuZGxlLCBzdGF0aWNfY2FzdDxhdWRpb19kZXZpY2VzX3Q+KGRldmljZS5kZXZpY2UpLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19vdXRwdXRfZmxhZ3NfdD4oZmxhZ3MpLCBoYWxDb25maWcuc2FtcGxlX3JhdGUsCisgICAgICAgIGhhbENvbmZpZy5mb3JtYXQsIGhhbENvbmZpZy5jaGFubmVsX21hc2ssCisgICAgICAgIGRldmljZUFkZHJlc3NUb0hhbChkZXZpY2UpLmNfc3RyKCkpOworICAgIGludCBzdGF0dXMgPSBtRGV2aWNlLT5vcGVuX291dHB1dF9zdHJlYW0oCisgICAgICAgIG1EZXZpY2UsIGlvSGFuZGxlLCBzdGF0aWNfY2FzdDxhdWRpb19kZXZpY2VzX3Q+KGRldmljZS5kZXZpY2UpLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19vdXRwdXRfZmxhZ3NfdD4oZmxhZ3MpLCAmaGFsQ29uZmlnLCAmaGFsU3RyZWFtLAorICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoZGV2aWNlKS5jX3N0cigpKTsKKyAgICBBTE9HVigib3Blbl9vdXRwdXRfc3RyZWFtIHN0YXR1cyAlZCBzdHJlYW0gJXAiLCBzdGF0dXMsIGhhbFN0cmVhbSk7CisgICAgc3A8SVN0cmVhbU91dD4gc3RyZWFtT3V0OworICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgc3RyZWFtT3V0ID0gbmV3IFN0cmVhbU91dCh0aGlzLCBoYWxTdHJlYW0pOworICAgIH0KKyAgICBBdWRpb0NvbmZpZyBzdWdnZXN0ZWRDb25maWc7CisgICAgSGlkbFV0aWxzOjphdWRpb0NvbmZpZ0Zyb21IYWwoaGFsQ29uZmlnLCAmc3VnZ2VzdGVkQ29uZmlnKTsKKyAgICBfaGlkbF9jYihhbmFseXplU3RhdHVzKCJvcGVuX291dHB1dF9zdHJlYW0iLCBzdGF0dXMpLCBzdHJlYW1PdXQsCisgICAgICAgICAgICAgc3VnZ2VzdGVkQ29uZmlnKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRGV2aWNlOjpvcGVuSW5wdXRTdHJlYW0oaW50MzJfdCBpb0hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBEZXZpY2VBZGRyZXNzJiBkZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb0lucHV0RmxhZyBmbGFncywgQXVkaW9Tb3VyY2Ugc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5JbnB1dFN0cmVhbV9jYiBfaGlkbF9jYikgeworICAgIGF1ZGlvX2NvbmZpZ190IGhhbENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnVG9IYWwoY29uZmlnLCAmaGFsQ29uZmlnKTsKKyAgICBhdWRpb19zdHJlYW1faW5fdCogaGFsU3RyZWFtOworICAgIEFMT0dWKAorICAgICAgICAib3Blbl9pbnB1dF9zdHJlYW0gaGFuZGxlOiAlZCBkZXZpY2VzOiAleCBmbGFnczogJSN4ICIKKyAgICAgICAgInNyYXRlOiAlZCBmb3JtYXQgJSN4IGNoYW5uZWxzICV4IGFkZHJlc3MgJXMgc291cmNlICVkIiwKKyAgICAgICAgaW9IYW5kbGUsIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oZGV2aWNlLmRldmljZSksCisgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2lucHV0X2ZsYWdzX3Q+KGZsYWdzKSwgaGFsQ29uZmlnLnNhbXBsZV9yYXRlLAorICAgICAgICBoYWxDb25maWcuZm9ybWF0LCBoYWxDb25maWcuY2hhbm5lbF9tYXNrLAorICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoZGV2aWNlKS5jX3N0cigpLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19zb3VyY2VfdD4oc291cmNlKSk7CisgICAgaW50IHN0YXR1cyA9IG1EZXZpY2UtPm9wZW5faW5wdXRfc3RyZWFtKAorICAgICAgICBtRGV2aWNlLCBpb0hhbmRsZSwgc3RhdGljX2Nhc3Q8YXVkaW9fZGV2aWNlc190PihkZXZpY2UuZGV2aWNlKSwKKyAgICAgICAgJmhhbENvbmZpZywgJmhhbFN0cmVhbSwgc3RhdGljX2Nhc3Q8YXVkaW9faW5wdXRfZmxhZ3NfdD4oZmxhZ3MpLAorICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoZGV2aWNlKS5jX3N0cigpLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19zb3VyY2VfdD4oc291cmNlKSk7CisgICAgQUxPR1YoIm9wZW5faW5wdXRfc3RyZWFtIHN0YXR1cyAlZCBzdHJlYW0gJXAiLCBzdGF0dXMsIGhhbFN0cmVhbSk7CisgICAgc3A8SVN0cmVhbUluPiBzdHJlYW1JbjsKKyAgICBpZiAoc3RhdHVzID09IE9LKSB7CisgICAgICAgIHN0cmVhbUluID0gbmV3IFN0cmVhbUluKHRoaXMsIGhhbFN0cmVhbSk7CisgICAgfQorICAgIEF1ZGlvQ29uZmlnIHN1Z2dlc3RlZENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnRnJvbUhhbChoYWxDb25maWcsICZzdWdnZXN0ZWRDb25maWcpOworICAgIF9oaWRsX2NiKGFuYWx5emVTdGF0dXMoIm9wZW5faW5wdXRfc3RyZWFtIiwgc3RhdHVzKSwgc3RyZWFtSW4sCisgICAgICAgICAgICAgc3VnZ2VzdGVkQ29uZmlnKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gRGV2aWNlOjpzdXBwb3J0c0F1ZGlvUGF0Y2hlcygpIHsKKyAgICByZXR1cm4gdmVyc2lvbigpID49IEFVRElPX0RFVklDRV9BUElfVkVSU0lPTl8zXzA7Cit9CisKK1JldHVybjx2b2lkPiBEZXZpY2U6OmNyZWF0ZUF1ZGlvUGF0Y2goY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc291cmNlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc2lua3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUF1ZGlvUGF0Y2hfY2IgX2hpZGxfY2IpIHsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgQXVkaW9QYXRjaEhhbmRsZSBwYXRjaCA9IDA7CisgICAgaWYgKHZlcnNpb24oKSA+PSBBVURJT19ERVZJQ0VfQVBJX1ZFUlNJT05fM18wKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxhdWRpb19wb3J0X2NvbmZpZ1tdPiBoYWxTb3VyY2VzKAorICAgICAgICAgICAgSGlkbFV0aWxzOjphdWRpb1BvcnRDb25maWdzVG9IYWwoc291cmNlcykpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8YXVkaW9fcG9ydF9jb25maWdbXT4gaGFsU2lua3MoCisgICAgICAgICAgICBIaWRsVXRpbHM6OmF1ZGlvUG9ydENvbmZpZ3NUb0hhbChzaW5rcykpOworICAgICAgICBhdWRpb19wYXRjaF9oYW5kbGVfdCBoYWxQYXRjaCA9IEFVRElPX1BBVENIX0hBTkRMRV9OT05FOworICAgICAgICByZXR2YWwgPSBhbmFseXplU3RhdHVzKAorICAgICAgICAgICAgImNyZWF0ZV9hdWRpb19wYXRjaCIsCisgICAgICAgICAgICBtRGV2aWNlLT5jcmVhdGVfYXVkaW9fcGF0Y2gobURldmljZSwgc291cmNlcy5zaXplKCksICZoYWxTb3VyY2VzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmtzLnNpemUoKSwgJmhhbFNpbmtzWzBdLCAmaGFsUGF0Y2gpKTsKKyAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICBwYXRjaCA9IHN0YXRpY19jYXN0PEF1ZGlvUGF0Y2hIYW5kbGU+KGhhbFBhdGNoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIHBhdGNoKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEZXZpY2U6OnJlbGVhc2VBdWRpb1BhdGNoKGludDMyX3QgcGF0Y2gpIHsKKyAgICBpZiAodmVyc2lvbigpID49IEFVRElPX0RFVklDRV9BUElfVkVSU0lPTl8zXzApIHsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAicmVsZWFzZV9hdWRpb19wYXRjaCIsCisgICAgICAgICAgICBtRGV2aWNlLT5yZWxlYXNlX2F1ZGlvX3BhdGNoKAorICAgICAgICAgICAgICAgIG1EZXZpY2UsIHN0YXRpY19jYXN0PGF1ZGlvX3BhdGNoX2hhbmRsZV90PihwYXRjaCkpKTsKKyAgICB9CisgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0QXVkaW9Qb3J0KGNvbnN0IEF1ZGlvUG9ydCYgcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRBdWRpb1BvcnRfY2IgX2hpZGxfY2IpIHsKKyAgICBhdWRpb19wb3J0IGhhbFBvcnQ7CisgICAgSGlkbFV0aWxzOjphdWRpb1BvcnRUb0hhbChwb3J0LCAmaGFsUG9ydCk7CisgICAgUmVzdWx0IHJldHZhbCA9IGFuYWx5emVTdGF0dXMoImdldF9hdWRpb19wb3J0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5nZXRfYXVkaW9fcG9ydChtRGV2aWNlLCAmaGFsUG9ydCkpOworICAgIEF1ZGlvUG9ydCByZXN1bHRQb3J0ID0gcG9ydDsKKyAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgSGlkbFV0aWxzOjphdWRpb1BvcnRGcm9tSGFsKGhhbFBvcnQsICZyZXN1bHRQb3J0KTsKKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCByZXN1bHRQb3J0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEZXZpY2U6OnNldEF1ZGlvUG9ydENvbmZpZyhjb25zdCBBdWRpb1BvcnRDb25maWcmIGNvbmZpZykgeworICAgIGlmICh2ZXJzaW9uKCkgPj0gQVVESU9fREVWSUNFX0FQSV9WRVJTSU9OXzNfMCkgeworICAgICAgICBzdHJ1Y3QgYXVkaW9fcG9ydF9jb25maWcgaGFsUG9ydENvbmZpZzsKKyAgICAgICAgSGlkbFV0aWxzOjphdWRpb1BvcnRDb25maWdUb0hhbChjb25maWcsICZoYWxQb3J0Q29uZmlnKTsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAic2V0X2F1ZGlvX3BvcnRfY29uZmlnIiwKKyAgICAgICAgICAgIG1EZXZpY2UtPnNldF9hdWRpb19wb3J0X2NvbmZpZyhtRGV2aWNlLCAmaGFsUG9ydENvbmZpZykpOworICAgIH0KKyAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCitSZXR1cm48QXVkaW9Id1N5bmM+IERldmljZTo6Z2V0SHdBdlN5bmMoKSB7CisgICAgaW50IGhhbEh3QXZTeW5jOworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5SHdBdlN5bmMsICZoYWxId0F2U3luYyk7CisgICAgcmV0dXJuIHJldHZhbCA9PSBSZXN1bHQ6Ok9LID8gaGFsSHdBdlN5bmMgOiBBVURJT19IV19TWU5DX0lOVkFMSUQ7Cit9CisKK1JldHVybjxSZXN1bHQ+IERldmljZTo6c2V0U2NyZWVuU3RhdGUoYm9vbCB0dXJuZWRPbikgeworICAgIHJldHVybiBzZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5U2NyZWVuU3RhdGUsIHR1cm5lZE9uKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFBhcmFtZXRlcnNfY2IgX2hpZGxfY2IpIHsKKyAgICBnZXRQYXJhbWV0ZXJzSW1wbChrZXlzLCBfaGlkbF9jYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRGV2aWNlOjpzZXRQYXJhbWV0ZXJzKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIHJldHVybiBzZXRQYXJhbWV0ZXJzSW1wbChwYXJhbWV0ZXJzKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgeworICAgIGlmIChmZC5nZXROYXRpdmVIYW5kbGUoKSAhPSBudWxscHRyICYmIGZkLT5udW1GZHMgPT0gMSkgeworICAgICAgICBhbmFseXplU3RhdHVzKCJkdW1wIiwgbURldmljZS0+ZHVtcChtRGV2aWNlLCBmZC0+ZGF0YVswXSkpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZS5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTViZDBhYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZS5oCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfREVWSUNFX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX0RFVklDRV9ICisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlIDxtZWRpYS9BdWRpb1BhcmFtZXRlci5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2F1ZGlvLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJQYXJhbWV0ZXJzVXRpbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Id1N5bmM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0lucHV0RmxhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvT3V0cHV0RmxhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvUGF0Y2hIYW5kbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1BvcnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1BvcnRDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpEZXZpY2VBZGRyZXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbUluOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UGFyYW1ldGVyVmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgRGV2aWNlIDogcHVibGljIElEZXZpY2UsIHB1YmxpYyBQYXJhbWV0ZXJzVXRpbCB7CisgICAgRGV2aWNlKGF1ZGlvX2h3X2RldmljZV90KiBkZXZpY2UsIGNvbnN0IGNoYXIqIHR5cGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlIGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBpbml0Q2hlY2soKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0TWFzdGVyVm9sdW1lKGZsb2F0IHZvbHVtZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNYXN0ZXJWb2x1bWUoZ2V0TWFzdGVyVm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0TWljTXV0ZShib29sIG11dGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TWljTXV0ZShnZXRNaWNNdXRlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0TWFzdGVyTXV0ZShib29sIG11dGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TWFzdGVyTXV0ZShnZXRNYXN0ZXJNdXRlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldElucHV0QnVmZmVyU2l6ZSgKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsIGdldElucHV0QnVmZmVyU2l6ZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBvcGVuT3V0cHV0U3RyZWFtKAorICAgICAgICAgICAgaW50MzJfdCBpb0hhbmRsZSwKKyAgICAgICAgICAgIGNvbnN0IERldmljZUFkZHJlc3MmIGRldmljZSwKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBBdWRpb091dHB1dEZsYWcgZmxhZ3MsCisgICAgICAgICAgICBvcGVuT3V0cHV0U3RyZWFtX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IG9wZW5JbnB1dFN0cmVhbSgKKyAgICAgICAgICAgIGludDMyX3QgaW9IYW5kbGUsCisgICAgICAgICAgICBjb25zdCBEZXZpY2VBZGRyZXNzJiBkZXZpY2UsCisgICAgICAgICAgICBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgQXVkaW9JbnB1dEZsYWcgZmxhZ3MsCisgICAgICAgICAgICBBdWRpb1NvdXJjZSBzb3VyY2UsCisgICAgICAgICAgICBvcGVuSW5wdXRTdHJlYW1fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc3VwcG9ydHNBdWRpb1BhdGNoZXMoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZUF1ZGlvUGF0Y2goCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxBdWRpb1BvcnRDb25maWc+JiBzb3VyY2VzLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc2lua3MsCisgICAgICAgICAgICBjcmVhdGVBdWRpb1BhdGNoX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVsZWFzZUF1ZGlvUGF0Y2goaW50MzJfdCBwYXRjaCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdWRpb1BvcnQoY29uc3QgQXVkaW9Qb3J0JiBwb3J0LCBnZXRBdWRpb1BvcnRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1BvcnRDb25maWcoY29uc3QgQXVkaW9Qb3J0Q29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9Id1N5bmM+IGdldEh3QXZTeW5jKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFNjcmVlblN0YXRlKGJvb2wgdHVybmVkT24pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVycygKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlYnVnRHVtcChjb25zdCBoaWRsX2hhbmRsZSYgZmQpICBvdmVycmlkZTsKKworICAgIC8vIFV0aWxpdHkgbWV0aG9kcyBmb3IgZXh0ZW5kaW5nIGludGVyZmFjZXMuCisgICAgUmVzdWx0IGFuYWx5emVTdGF0dXMoY29uc3QgY2hhciogZnVuY05hbWUsIGludCBzdGF0dXMpOworICAgIHZvaWQgY2xvc2VJbnB1dFN0cmVhbShhdWRpb19zdHJlYW1faW5fdCogc3RyZWFtKTsKKyAgICB2b2lkIGNsb3NlT3V0cHV0U3RyZWFtKGF1ZGlvX3N0cmVhbV9vdXRfdCogc3RyZWFtKTsKKyAgICBhdWRpb19od19kZXZpY2VfdCogZGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbURldmljZTsgfQorICAgIGNvbnN0IGNoYXIqIHR5cGUoKSBjb25zdCB7IHJldHVybiBtVHlwZTsgfQorICAgIHVpbnQzMl90IHZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtRGV2aWNlLT5jb21tb24udmVyc2lvbjsgfQorCisgICBwcml2YXRlOgorICAgIGF1ZGlvX2h3X2RldmljZV90ICptRGV2aWNlOworICAgIGNvbnN0IGNoYXIqIG1UeXBlOworCisgICAgdmlydHVhbCB+RGV2aWNlKCk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gUGFyYW1ldGVyc1V0aWwuCisgICAgY2hhciogaGFsR2V0UGFyYW1ldGVycyhjb25zdCBjaGFyKiBrZXlzKSBvdmVycmlkZTsKKyAgICBpbnQgaGFsU2V0UGFyYW1ldGVycyhjb25zdCBjaGFyKiBrZXlzQW5kVmFsdWVzKSBvdmVycmlkZTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VfSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlc0ZhY3RvcnkuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlc0ZhY3RvcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNDQ5NjgKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2VzRmFjdG9yeS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkRldmljZXNGYWN0b3J5SEFMIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSAiRGV2aWNlLmgiCisjaW5jbHVkZSAiRGV2aWNlc0ZhY3RvcnkuaCIKKyNpbmNsdWRlICJQcmltYXJ5RGV2aWNlLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gc3RhdGljCitjb25zdCBjaGFyKiBEZXZpY2VzRmFjdG9yeTo6ZGV2aWNlVG9TdHJpbmcoSURldmljZXNGYWN0b3J5OjpEZXZpY2UgZGV2aWNlKSB7CisgICAgc3dpdGNoIChkZXZpY2UpIHsKKyAgICAgICAgY2FzZSBJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZTo6UFJJTUFSWTogcmV0dXJuIEFVRElPX0hBUkRXQVJFX01PRFVMRV9JRF9QUklNQVJZOworICAgICAgICBjYXNlIElEZXZpY2VzRmFjdG9yeTo6RGV2aWNlOjpBMkRQOiByZXR1cm4gQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lEX0EyRFA7CisgICAgICAgIGNhc2UgSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlVTQjogcmV0dXJuIEFVRElPX0hBUkRXQVJFX01PRFVMRV9JRF9VU0I7CisgICAgICAgIGNhc2UgSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlJfU1VCTUlYOiByZXR1cm4gQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lEX1JFTU9URV9TVUJNSVg7CisgICAgICAgIGNhc2UgSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlNUVUI6IHJldHVybiBBVURJT19IQVJEV0FSRV9NT0RVTEVfSURfU1RVQjsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKy8vIHN0YXRpYworaW50IERldmljZXNGYWN0b3J5Ojpsb2FkQXVkaW9JbnRlcmZhY2UoY29uc3QgY2hhciAqaWZfbmFtZSwgYXVkaW9faHdfZGV2aWNlX3QgKipkZXYpCit7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKm1vZDsKKyAgICBpbnQgcmM7CisKKyAgICByYyA9IGh3X2dldF9tb2R1bGVfYnlfY2xhc3MoQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lELCBpZl9uYW1lLCAmbW9kKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNvdWxkbid0IGxvYWQgYXVkaW8gaHcgbW9kdWxlICVzLiVzICglcykiLCBfX2Z1bmNfXywKKyAgICAgICAgICAgICAgICBBVURJT19IQVJEV0FSRV9NT0RVTEVfSUQsIGlmX25hbWUsIHN0cmVycm9yKC1yYykpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisgICAgcmMgPSBhdWRpb19od19kZXZpY2Vfb3Blbihtb2QsIGRldik7CisgICAgaWYgKHJjKSB7CisgICAgICAgIEFMT0dFKCIlcyBjb3VsZG4ndCBvcGVuIGF1ZGlvIGh3IGRldmljZSBpbiAlcy4lcyAoJXMpIiwgX19mdW5jX18sCisgICAgICAgICAgICAgICAgQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lELCBpZl9uYW1lLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorICAgIGlmICgoKmRldiktPmNvbW1vbi52ZXJzaW9uIDwgQVVESU9fREVWSUNFX0FQSV9WRVJTSU9OX01JTikgeworICAgICAgICBBTE9HRSgiJXMgd3JvbmcgYXVkaW8gaHcgZGV2aWNlIHZlcnNpb24gJTA0eCIsIF9fZnVuY19fLCAoKmRldiktPmNvbW1vbi52ZXJzaW9uKTsKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBhdWRpb19od19kZXZpY2VfY2xvc2UoKmRldik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICByZXR1cm4gT0s7CisKK291dDoKKyAgICAqZGV2ID0gTlVMTDsKKyAgICByZXR1cm4gcmM7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZXNGYWN0b3J5IGZvbGxvdy4KK1JldHVybjx2b2lkPiBEZXZpY2VzRmFjdG9yeTo6b3BlbkRldmljZShJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZSBkZXZpY2UsIG9wZW5EZXZpY2VfY2IgX2hpZGxfY2IpICB7CisgICAgYXVkaW9faHdfZGV2aWNlX3QgKmhhbERldmljZTsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgIHNwPElEZXZpY2U+IHJlc3VsdDsKKyAgICBjb25zdCBjaGFyKiBtb2R1bGVOYW1lID0gZGV2aWNlVG9TdHJpbmcoZGV2aWNlKTsKKyAgICBpZiAobW9kdWxlTmFtZSAhPSBudWxscHRyKSB7CisgICAgICAgIGludCBoYWxTdGF0dXMgPSBsb2FkQXVkaW9JbnRlcmZhY2UobW9kdWxlTmFtZSwgJmhhbERldmljZSk7CisgICAgICAgIGlmIChoYWxTdGF0dXMgPT0gT0spIHsKKyAgICAgICAgICAgIGlmIChkZXZpY2UgPT0gSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlBSSU1BUlkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgUHJpbWFyeURldmljZShoYWxEZXZpY2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OmltcGxlbWVudGF0aW9uOjoKKyAgICAgICAgICAgICAgICAgICAgRGV2aWNlKGhhbERldmljZSwgbW9kdWxlTmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok9LOworICAgICAgICB9IGVsc2UgaWYgKGhhbFN0YXR1cyA9PSAtRUlOVkFMKSB7CisgICAgICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSURldmljZXNGYWN0b3J5KiBISURMX0ZFVENIX0lEZXZpY2VzRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBEZXZpY2VzRmFjdG9yeSgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZXNGYWN0b3J5LmggYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2VzRmFjdG9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNDZmOWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2VzRmFjdG9yeS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VTRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VTRkFDVE9SWV9ICisKKyNpbmNsdWRlIDxoYXJkd2FyZS9hdWRpby5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSURldmljZXNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2VzRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBEZXZpY2VzRmFjdG9yeSA6IHB1YmxpYyBJRGV2aWNlc0ZhY3RvcnkgeworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZXNGYWN0b3J5IGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gb3BlbkRldmljZShJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZSBkZXZpY2UsIG9wZW5EZXZpY2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkZXZpY2VUb1N0cmluZyhJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZSBkZXZpY2UpOworICAgIHN0YXRpYyBpbnQgbG9hZEF1ZGlvSW50ZXJmYWNlKGNvbnN0IGNoYXIgKmlmX25hbWUsIGF1ZGlvX2h3X2RldmljZV90ICoqZGV2KTsKKworfTsKKworZXh0ZXJuICJDIiBJRGV2aWNlc0ZhY3RvcnkqIEhJRExfRkVUQ0hfSURldmljZXNGYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfREVWSUNFU0ZBQ1RPUllfSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNDA4ODUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9QYXJhbWV0ZXJzVXRpbC5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiUGFyYW1ldGVyc1V0aWwuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBTdGF0aWMgbWV0aG9kIGFuZCBub3QgcHJpdmF0ZSBtZXRob2QgdG8gYXZvaWQgbGVha2luZyBzdGF0dXNfdCBkZXBlbmRlbmN5CitzdGF0aWMgUmVzdWx0IGdldEhhbFN0YXR1c1RvUmVzdWx0KHN0YXR1c190IHN0YXR1cykgeworICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgT0s6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICAgICAgY2FzZSBCQURfVkFMVUU6ICAvLyBOb3RoaW5nIHdhcyByZXR1cm5lZCwgcHJvYmFibHkgYmVjYXVzZSB0aGUgSEFMIGRvZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgaGFuZGxlIGl0CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIElOVkFMSURfT1BFUkFUSU9OOiAgLy8gQ29udmVyc2lvbiBmcm9tIHN0cmluZyB0byB0aGUgcmVxdWVzdGVkIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZhaWxlZAorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgICAgIGRlZmF1bHQ6ICAvLyBTaG91bGQgbm90IGhhcHBlbgorICAgICAgICAgICAgQUxPR1coIlVuZXhwZWN0ZWQgc3RhdHVzIHJldHVybmVkIGJ5IGdldFBhcmFtOiAldSIsIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6Z2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgYm9vbCogdmFsdWUpIHsKKyAgICBTdHJpbmc4IGhhbFZhbHVlOworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRQYXJhbShuYW1lLCAmaGFsVmFsdWUpOworICAgICp2YWx1ZSA9IGZhbHNlOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBpZiAoaGFsVmFsdWUuZW1wdHkoKSkgeworICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgfQorICAgICAgICAqdmFsdWUgPSAhKGhhbFZhbHVlID09IEF1ZGlvUGFyYW1ldGVyOjp2YWx1ZU9mZik7CisgICAgfQorICAgIHJldHVybiByZXR2YWw7Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6Z2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgaW50KiB2YWx1ZSkgeworICAgIGNvbnN0IFN0cmluZzggaGFsTmFtZShuYW1lKTsKKyAgICBBdWRpb1BhcmFtZXRlciBrZXlzOworICAgIGtleXMuYWRkS2V5KGhhbE5hbWUpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1BhcmFtZXRlcj4gcGFyYW1zID0gZ2V0UGFyYW1zKGtleXMpOworICAgIHJldHVybiBnZXRIYWxTdGF0dXNUb1Jlc3VsdChwYXJhbXMtPmdldEludChoYWxOYW1lLCAqdmFsdWUpKTsKK30KKworUmVzdWx0IFBhcmFtZXRlcnNVdGlsOjpnZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBTdHJpbmc4KiB2YWx1ZSkgeworICAgIGNvbnN0IFN0cmluZzggaGFsTmFtZShuYW1lKTsKKyAgICBBdWRpb1BhcmFtZXRlciBrZXlzOworICAgIGtleXMuYWRkS2V5KGhhbE5hbWUpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1BhcmFtZXRlcj4gcGFyYW1zID0gZ2V0UGFyYW1zKGtleXMpOworICAgIHJldHVybiBnZXRIYWxTdGF0dXNUb1Jlc3VsdChwYXJhbXMtPmdldChoYWxOYW1lLCAqdmFsdWUpKTsKK30KKwordm9pZCBQYXJhbWV0ZXJzVXRpbDo6Z2V0UGFyYW1ldGVyc0ltcGwoCisgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLAorICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpPgorICAgICAgICBjYikgeworICAgIEF1ZGlvUGFyYW1ldGVyIGhhbEtleXM7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGhhbEtleXMuYWRkS2V5KFN0cmluZzgoa2V5c1tpXS5jX3N0cigpKSk7CisgICAgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1BhcmFtZXRlcj4gaGFsVmFsdWVzID0gZ2V0UGFyYW1zKGhhbEtleXMpOworICAgIFJlc3VsdCByZXR2YWwgPSAoa2V5cy5zaXplKCkgPT0gMCB8fCBoYWxWYWx1ZXMtPnNpemUoKSAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgPyBSZXN1bHQ6Ok9LCisgICAgICAgICAgICAgICAgICAgICAgICA6IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4gcmVzdWx0OworICAgIHJlc3VsdC5yZXNpemUoaGFsVmFsdWVzLT5zaXplKCkpOworICAgIFN0cmluZzggaGFsS2V5LCBoYWxWYWx1ZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFZhbHVlcy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gaGFsVmFsdWVzLT5nZXRBdChpLCBoYWxLZXksIGhhbFZhbHVlKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICAgICAgcmVzdWx0LnJlc2l6ZSgwKTsKKyAgICAgICAgICAgIHJldHZhbCA9IGdldEhhbFN0YXR1c1RvUmVzdWx0KHN0YXR1cyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRbaV0ua2V5ID0gaGFsS2V5LnN0cmluZygpOworICAgICAgICByZXN1bHRbaV0udmFsdWUgPSBoYWxWYWx1ZS5zdHJpbmcoKTsKKyAgICB9CisgICAgY2IocmV0dmFsLCByZXN1bHQpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9QYXJhbWV0ZXI+IFBhcmFtZXRlcnNVdGlsOjpnZXRQYXJhbXMoCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXImIGtleXMpIHsKKyAgICBTdHJpbmc4IHBhcmFtc0FuZFZhbHVlczsKKyAgICBjaGFyKiBoYWxWYWx1ZXMgPSBoYWxHZXRQYXJhbWV0ZXJzKGtleXMua2V5c1RvU3RyaW5nKCkuc3RyaW5nKCkpOworICAgIGlmIChoYWxWYWx1ZXMgIT0gTlVMTCkgeworICAgICAgICBwYXJhbXNBbmRWYWx1ZXMuc2V0VG8oaGFsVmFsdWVzKTsKKyAgICAgICAgZnJlZShoYWxWYWx1ZXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHBhcmFtc0FuZFZhbHVlcy5jbGVhcigpOworICAgIH0KKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvUGFyYW1ldGVyPihuZXcgQXVkaW9QYXJhbWV0ZXIocGFyYW1zQW5kVmFsdWVzKSk7Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6c2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgYm9vbCB2YWx1ZSkgeworICAgIEF1ZGlvUGFyYW1ldGVyIHBhcmFtOworICAgIHBhcmFtLmFkZChTdHJpbmc4KG5hbWUpLCBTdHJpbmc4KHZhbHVlID8gQXVkaW9QYXJhbWV0ZXI6OnZhbHVlT24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEF1ZGlvUGFyYW1ldGVyOjp2YWx1ZU9mZikpOworICAgIHJldHVybiBzZXRQYXJhbXMocGFyYW0pOworfQorCitSZXN1bHQgUGFyYW1ldGVyc1V0aWw6OnNldFBhcmFtKGNvbnN0IGNoYXIqIG5hbWUsIGludCB2YWx1ZSkgeworICAgIEF1ZGlvUGFyYW1ldGVyIHBhcmFtOworICAgIHBhcmFtLmFkZEludChTdHJpbmc4KG5hbWUpLCB2YWx1ZSk7CisgICAgcmV0dXJuIHNldFBhcmFtcyhwYXJhbSk7Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6c2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmFsdWUpIHsKKyAgICBBdWRpb1BhcmFtZXRlciBwYXJhbTsKKyAgICBwYXJhbS5hZGQoU3RyaW5nOChuYW1lKSwgU3RyaW5nOCh2YWx1ZSkpOworICAgIHJldHVybiBzZXRQYXJhbXMocGFyYW0pOworfQorCitSZXN1bHQgUGFyYW1ldGVyc1V0aWw6OnNldFBhcmFtZXRlcnNJbXBsKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIEF1ZGlvUGFyYW1ldGVyIHBhcmFtczsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhcmFtZXRlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgcGFyYW1zLmFkZChTdHJpbmc4KHBhcmFtZXRlcnNbaV0ua2V5LmNfc3RyKCkpLAorICAgICAgICAgICAgICAgICAgIFN0cmluZzgocGFyYW1ldGVyc1tpXS52YWx1ZS5jX3N0cigpKSk7CisgICAgfQorICAgIHJldHVybiBzZXRQYXJhbXMocGFyYW1zKTsKK30KKworUmVzdWx0IFBhcmFtZXRlcnNVdGlsOjpzZXRQYXJhbXMoY29uc3QgQXVkaW9QYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgaW50IGhhbFN0YXR1cyA9IGhhbFNldFBhcmFtZXRlcnMocGFyYW0udG9TdHJpbmcoKS5zdHJpbmcoKSk7CisgICAgaWYgKGhhbFN0YXR1cyA9PSBPSykKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgZWxzZSBpZiAoaGFsU3RhdHVzID09IC1FTk9TWVMpCisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfU1RBVEU7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9QYXJhbWV0ZXJzVXRpbC5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTAzNmRjCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfUGFyYW1ldGVyc1V0aWxfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdWRpb19WMl8wX1BhcmFtZXRlcnNVdGlsX0hfCisKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL3R5cGVzLmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsU3VwcG9ydC5oPgorI2luY2x1ZGUgPG1lZGlhL0F1ZGlvUGFyYW1ldGVyLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7CisKK2NsYXNzIFBhcmFtZXRlcnNVdGlsIHsKKyAgcHVibGljOgorICAgIFJlc3VsdCBnZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBib29sKiB2YWx1ZSk7CisgICAgUmVzdWx0IGdldFBhcmFtKGNvbnN0IGNoYXIqIG5hbWUsIGludCogdmFsdWUpOworICAgIFJlc3VsdCBnZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBTdHJpbmc4KiB2YWx1ZSk7CisgICAgdm9pZCBnZXRQYXJhbWV0ZXJzSW1wbCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywKKyAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLCBjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpPiBjYik7CisgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvUGFyYW1ldGVyPiBnZXRQYXJhbXMoY29uc3QgQXVkaW9QYXJhbWV0ZXImIGtleXMpOworICAgIFJlc3VsdCBzZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBib29sIHZhbHVlKTsKKyAgICBSZXN1bHQgc2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgaW50IHZhbHVlKTsKKyAgICBSZXN1bHQgc2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmFsdWUpOworICAgIFJlc3VsdCBzZXRQYXJhbWV0ZXJzSW1wbChjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpOworICAgIFJlc3VsdCBzZXRQYXJhbXMoY29uc3QgQXVkaW9QYXJhbWV0ZXImIHBhcmFtKTsKKworICBwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+UGFyYW1ldGVyc1V0aWwoKSB7fQorCisgICAgdmlydHVhbCBjaGFyKiBoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpID0gMDsKKyAgICB2aXJ0dWFsIGludCBoYWxTZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXNBbmRWYWx1ZXMpID0gMDsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9QYXJhbWV0ZXJzVXRpbF9IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5jcHAgYi9hdWRpby8yLjAvZGVmYXVsdC9QcmltYXJ5RGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDZkODczCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5jcHAKQEAgLTAsMCArMSwyMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlByaW1hcnlEZXZpY2VIQUwiCisKKyNpbmNsdWRlICJQcmltYXJ5RGV2aWNlLmgiCisjaW5jbHVkZSAiVXRpbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK1ByaW1hcnlEZXZpY2U6OlByaW1hcnlEZXZpY2UoYXVkaW9faHdfZGV2aWNlX3QqIGRldmljZSkKKyAgICA6IG1EZXZpY2V7bmV3IERldmljZShkZXZpY2UsIEFVRElPX0hBUkRXQVJFX01PRFVMRV9JRF9QUklNQVJZKX0ge30KKworUHJpbWFyeURldmljZTo6flByaW1hcnlEZXZpY2UoKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2UgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6aW5pdENoZWNrKCkgeworICAgIHJldHVybiBtRGV2aWNlLT5pbml0Q2hlY2soKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0TWFzdGVyVm9sdW1lKGZsb2F0IHZvbHVtZSkgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRNYXN0ZXJWb2x1bWUodm9sdW1lKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldE1hc3RlclZvbHVtZShnZXRNYXN0ZXJWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+Z2V0TWFzdGVyVm9sdW1lKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0TWljTXV0ZShib29sIG11dGUpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0TWljTXV0ZShtdXRlKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldE1pY011dGUoZ2V0TWljTXV0ZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5nZXRNaWNNdXRlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0TWFzdGVyTXV0ZShib29sIG11dGUpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0TWFzdGVyTXV0ZShtdXRlKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldE1hc3Rlck11dGUoZ2V0TWFzdGVyTXV0ZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5nZXRNYXN0ZXJNdXRlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldElucHV0QnVmZmVyU2l6ZShjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJbnB1dEJ1ZmZlclNpemVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+Z2V0SW5wdXRCdWZmZXJTaXplKGNvbmZpZywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6b3Blbk91dHB1dFN0cmVhbShpbnQzMl90IGlvSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRGV2aWNlQWRkcmVzcyYgZGV2aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5PdXRwdXRTdHJlYW1fY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+b3Blbk91dHB1dFN0cmVhbShpb0hhbmRsZSwgZGV2aWNlLCBjb25maWcsIGZsYWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBQcmltYXJ5RGV2aWNlOjpvcGVuSW5wdXRTdHJlYW0oCisgICAgaW50MzJfdCBpb0hhbmRsZSwgY29uc3QgRGV2aWNlQWRkcmVzcyYgZGV2aWNlLCBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgIEF1ZGlvSW5wdXRGbGFnIGZsYWdzLCBBdWRpb1NvdXJjZSBzb3VyY2UsIG9wZW5JbnB1dFN0cmVhbV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5vcGVuSW5wdXRTdHJlYW0oaW9IYW5kbGUsIGRldmljZSwgY29uZmlnLCBmbGFncywgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2hpZGxfY2IpOworfQorCitSZXR1cm48Ym9vbD4gUHJpbWFyeURldmljZTo6c3VwcG9ydHNBdWRpb1BhdGNoZXMoKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnN1cHBvcnRzQXVkaW9QYXRjaGVzKCk7Cit9CisKK1JldHVybjx2b2lkPiBQcmltYXJ5RGV2aWNlOjpjcmVhdGVBdWRpb1BhdGNoKAorICAgIGNvbnN0IGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4mIHNvdXJjZXMsCisgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc2lua3MsIGNyZWF0ZUF1ZGlvUGF0Y2hfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+Y3JlYXRlQXVkaW9QYXRjaChzb3VyY2VzLCBzaW5rcywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpyZWxlYXNlQXVkaW9QYXRjaChpbnQzMl90IHBhdGNoKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnJlbGVhc2VBdWRpb1BhdGNoKHBhdGNoKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldEF1ZGlvUG9ydChjb25zdCBBdWRpb1BvcnQmIHBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEF1ZGlvUG9ydF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5nZXRBdWRpb1BvcnQocG9ydCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRBdWRpb1BvcnRDb25maWcoCisgICAgY29uc3QgQXVkaW9Qb3J0Q29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0QXVkaW9Qb3J0Q29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxBdWRpb0h3U3luYz4gUHJpbWFyeURldmljZTo6Z2V0SHdBdlN5bmMoKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldEh3QXZTeW5jKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByaW1hcnlEZXZpY2U6OnNldFNjcmVlblN0YXRlKGJvb2wgdHVybmVkT24pIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0U2NyZWVuU3RhdGUodHVybmVkT24pOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldFBhcmFtZXRlcnMoa2V5cywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRQYXJhbWV0ZXJzKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgeworICAgIHJldHVybiBtRGV2aWNlLT5kZWJ1Z0R1bXAoZmQpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklQcmltYXJ5RGV2aWNlIGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IFByaW1hcnlEZXZpY2U6OnNldFZvaWNlVm9sdW1lKGZsb2F0IHZvbHVtZSkgeworICAgIGlmICghaXNHYWluTm9ybWFsaXplZCh2b2x1bWUpKSB7CisgICAgICAgIEFMT0dXKCJDYW4gbm90IHNldCBhIHZvaWNlIHZvbHVtZSAoJWYpIG91dHNpZGUgWzAsMV0iLCB2b2x1bWUpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9CisgICAgcmV0dXJuIG1EZXZpY2UtPmFuYWx5emVTdGF0dXMoCisgICAgICAgICJzZXRfdm9pY2Vfdm9sdW1lIiwKKyAgICAgICAgbURldmljZS0+ZGV2aWNlKCktPnNldF92b2ljZV92b2x1bWUobURldmljZS0+ZGV2aWNlKCksIHZvbHVtZSkpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRNb2RlKEF1ZGlvTW9kZSBtb2RlKSB7CisgICAgLy8gSU5WQUxJRCwgQ1VSUkVOVCwgQ05ULCBNQVggYXJlIHJlc2VydmVkIGZvciBpbnRlcm5hbCB1c2UuCisgICAgLy8gVE9ETzogcmVtb3ZlIHRoZSB2YWx1ZXMgZnJvbSB0aGUgSElETCBpbnRlcmZhY2UKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgY2FzZSBBdWRpb01vZGU6Ok5PUk1BTDoKKyAgICAgICAgY2FzZSBBdWRpb01vZGU6OlJJTkdUT05FOgorICAgICAgICBjYXNlIEF1ZGlvTW9kZTo6SU5fQ0FMTDoKKyAgICAgICAgY2FzZSBBdWRpb01vZGU6OklOX0NPTU1VTklDQVRJT046CisgICAgICAgICAgICBicmVhazsgIC8vIFZhbGlkIHZhbHVlcworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgfTsKKworICAgIHJldHVybiBtRGV2aWNlLT5hbmFseXplU3RhdHVzKAorICAgICAgICAic2V0X21vZGUiLCBtRGV2aWNlLT5kZXZpY2UoKS0+c2V0X21vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5kZXZpY2UoKSwgc3RhdGljX2Nhc3Q8YXVkaW9fbW9kZV90Pihtb2RlKSkpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0QnRTY29OcmVjRW5hYmxlZCgKKyAgICBnZXRCdFNjb05yZWNFbmFibGVkX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCBlbmFibGVkOworICAgIFJlc3VsdCByZXR2YWwgPSBtRGV2aWNlLT5nZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5QnROcmVjLCAmZW5hYmxlZCk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBlbmFibGVkKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRCdFNjb05yZWNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5QnROcmVjLCBlbmFibGVkKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldEJ0U2NvV2lkZWJhbmRFbmFibGVkKAorICAgIGdldEJ0U2NvV2lkZWJhbmRFbmFibGVkX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCBlbmFibGVkOworICAgIFJlc3VsdCByZXR2YWwgPSBtRGV2aWNlLT5nZXRQYXJhbShBVURJT19QQVJBTUVURVJfS0VZX0JUX1NDT19XQiwgJmVuYWJsZWQpOworICAgIF9oaWRsX2NiKHJldHZhbCwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0QnRTY29XaWRlYmFuZEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnNldFBhcmFtKEFVRElPX1BBUkFNRVRFUl9LRVlfQlRfU0NPX1dCLCBlbmFibGVkKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldFR0eU1vZGUoZ2V0VHR5TW9kZV9jYiBfaGlkbF9jYikgeworICAgIGludCBoYWxNb2RlOworICAgIFJlc3VsdCByZXR2YWwgPSBtRGV2aWNlLT5nZXRQYXJhbShBVURJT19QQVJBTUVURVJfS0VZX1RUWV9NT0RFLCAmaGFsTW9kZSk7CisgICAgVHR5TW9kZSBtb2RlID0gcmV0dmFsID09IFJlc3VsdDo6T0sgPyBUdHlNb2RlKGhhbE1vZGUpIDogVHR5TW9kZTo6T0ZGOworICAgIF9oaWRsX2NiKHJldHZhbCwgbW9kZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0VHR5TW9kZShJUHJpbWFyeURldmljZTo6VHR5TW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnNldFBhcmFtKEFVRElPX1BBUkFNRVRFUl9LRVlfVFRZX01PREUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obW9kZSkpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0SGFjRW5hYmxlZChnZXRIYWNFbmFibGVkX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCBlbmFibGVkOworICAgIFJlc3VsdCByZXR2YWwgPSBtRGV2aWNlLT5nZXRQYXJhbShBVURJT19QQVJBTUVURVJfS0VZX0hBQywgJmVuYWJsZWQpOworICAgIF9oaWRsX2NiKHJldHZhbCwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0SGFjRW5hYmxlZChib29sIGVuYWJsZWQpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0UGFyYW0oQVVESU9fUEFSQU1FVEVSX0tFWV9IQUMsIGVuYWJsZWQpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1ByaW1hcnlEZXZpY2UuaCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1ByaW1hcnlEZXZpY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTU1MTFiCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5oCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfUFJJTUFSWURFVklDRV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9QUklNQVJZREVWSUNFX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJEZXZpY2UuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvSW5wdXRGbGFnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Nb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9PdXRwdXRGbGFnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0Q29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklQcmltYXJ5RGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1JbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtT3V0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFByaW1hcnlEZXZpY2UgOiBwdWJsaWMgSVByaW1hcnlEZXZpY2UgeworICAgIGV4cGxpY2l0IFByaW1hcnlEZXZpY2UoYXVkaW9faHdfZGV2aWNlX3QqIGRldmljZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2UgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXRDaGVjaygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNYXN0ZXJWb2x1bWUoZmxvYXQgdm9sdW1lKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1hc3RlclZvbHVtZShnZXRNYXN0ZXJWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNaWNNdXRlKGJvb2wgbXV0ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNaWNNdXRlKGdldE1pY011dGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNYXN0ZXJNdXRlKGJvb2wgbXV0ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNYXN0ZXJNdXRlKGdldE1hc3Rlck11dGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0SW5wdXRCdWZmZXJTaXplKAorICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywgZ2V0SW5wdXRCdWZmZXJTaXplX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IG9wZW5PdXRwdXRTdHJlYW0oCisgICAgICAgICAgICBpbnQzMl90IGlvSGFuZGxlLAorICAgICAgICAgICAgY29uc3QgRGV2aWNlQWRkcmVzcyYgZGV2aWNlLAorICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgIG9wZW5PdXRwdXRTdHJlYW1fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gb3BlbklucHV0U3RyZWFtKAorICAgICAgICAgICAgaW50MzJfdCBpb0hhbmRsZSwKKyAgICAgICAgICAgIGNvbnN0IERldmljZUFkZHJlc3MmIGRldmljZSwKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBBdWRpb0lucHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgIEF1ZGlvU291cmNlIHNvdXJjZSwKKyAgICAgICAgICAgIG9wZW5JbnB1dFN0cmVhbV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzdXBwb3J0c0F1ZGlvUGF0Y2hlcygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlQXVkaW9QYXRjaCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4mIHNvdXJjZXMsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxBdWRpb1BvcnRDb25maWc+JiBzaW5rcywKKyAgICAgICAgICAgIGNyZWF0ZUF1ZGlvUGF0Y2hfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZWxlYXNlQXVkaW9QYXRjaChpbnQzMl90IHBhdGNoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1ZGlvUG9ydChjb25zdCBBdWRpb1BvcnQmIHBvcnQsIGdldEF1ZGlvUG9ydF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvUG9ydENvbmZpZyhjb25zdCBBdWRpb1BvcnRDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0h3U3luYz4gZ2V0SHdBdlN5bmMoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0U2NyZWVuU3RhdGUoYm9vbCB0dXJuZWRPbikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXJzKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLCBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJUHJpbWFyeURldmljZSBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Vm9pY2VWb2x1bWUoZmxvYXQgdm9sdW1lKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0TW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRCdFNjb05yZWNFbmFibGVkKGdldEJ0U2NvTnJlY0VuYWJsZWRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRCdFNjb05yZWNFbmFibGVkKGJvb2wgZW5hYmxlZCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRCdFNjb1dpZGViYW5kRW5hYmxlZChnZXRCdFNjb1dpZGViYW5kRW5hYmxlZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEJ0U2NvV2lkZWJhbmRFbmFibGVkKGJvb2wgZW5hYmxlZCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRUdHlNb2RlKGdldFR0eU1vZGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRUdHlNb2RlKElQcmltYXJ5RGV2aWNlOjpUdHlNb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0SGFjRW5hYmxlZChnZXRIYWNFbmFibGVkX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SGFjRW5hYmxlZChib29sIGVuYWJsZWQpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPERldmljZT4gbURldmljZTsKKworICAgIHZpcnR1YWwgflByaW1hcnlEZXZpY2UoKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9QUklNQVJZREVWSUNFX0gKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5jcHAgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3MWYxNzEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW0uY3BwCkBAIC0wLDAgKzEsMjY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisKKyNkZWZpbmUgTE9HX1RBRyAiU3RyZWFtSEFMIgorCisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW8uaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9hdWRpb19lZmZlY3QuaD4KKyNpbmNsdWRlIDxtZWRpYS9UeXBlQ29udmVydGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9Tb3J0ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KKworI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisjaW5jbHVkZSAiRWZmZWN0TWFwLmgiCisjaW5jbHVkZSAiU3RyZWFtLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworU3RyZWFtOjpTdHJlYW0oYXVkaW9fc3RyZWFtX3QqIHN0cmVhbSkKKyAgICAgICAgOiBtU3RyZWFtKHN0cmVhbSkgeworfQorCitTdHJlYW06On5TdHJlYW0oKSB7CisgICAgbVN0cmVhbSA9IG51bGxwdHI7Cit9CisKKy8vIHN0YXRpYworUmVzdWx0IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cyhjb25zdCBjaGFyKiBmdW5jTmFtZSwgaW50IHN0YXR1cywgaW50IGlnbm9yZUVycm9yLCBpbnQgaWdub3JlRXJyb3IyKSB7CisgICAgaWYgKHN0YXR1cyAhPSAwICYmIHN0YXR1cyAhPSAtaWdub3JlRXJyb3IgJiYgc3RhdHVzICE9IC1pZ25vcmVFcnJvcjIpIHsKKyAgICAgICAgQUxPR1coIkVycm9yIGZyb20gSEFMIHN0cmVhbSBpbiBmdW5jdGlvbiAlczogJXMiLCBmdW5jTmFtZSwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIDA6IHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICBjYXNlIC1FTk9EQVRBOiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgY2FzZSAtRU5PU1lTOiByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICBkZWZhdWx0OiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIH0KK30KKworY2hhciogU3RyZWFtOjpoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+Z2V0X3BhcmFtZXRlcnMobVN0cmVhbSwga2V5cyk7Cit9CisKK2ludCBTdHJlYW06OmhhbFNldFBhcmFtZXRlcnMoY29uc3QgY2hhcioga2V5c0FuZFZhbHVlcykgeworICAgIHJldHVybiBtU3RyZWFtLT5zZXRfcGFyYW1ldGVycyhtU3RyZWFtLCBrZXlzQW5kVmFsdWVzKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KK1JldHVybjx1aW50NjRfdD4gU3RyZWFtOjpnZXRGcmFtZVNpemUoKSAgeworICAgIC8vIE5lZWRzIHRvIGJlIGltcGxlbWVudGVkIGJ5IGludGVyZmFjZSBzdWJjbGFzc2VzLiBCdXQgY2FuJ3QgYmUgZGVjbGFyZWQgYXMgcHVyZSB2aXJ0dWFsLAorICAgIC8vIHNpbmNlIGludGVyZmFjZSBzdWJjbGFzc2VzIGltcGxlbWVudGF0aW9uIGRvIG5vdCBpbmhlcml0IGZyb20gdGhpcyBjbGFzcy4KKyAgICBMT0dfQUxXQVlTX0ZBVEFMKCJTdHJlYW06OmdldEZyYW1lU2l6ZSBpcyBwdXJlIGFic3RyYWN0Iik7CisgICAgcmV0dXJuIHVpbnQ2NF90IHt9OworfQorCitSZXR1cm48dWludDY0X3Q+IFN0cmVhbTo6Z2V0RnJhbWVDb3VudCgpICB7CisgICAgaW50IGhhbEZyYW1lQ291bnQ7CisgICAgUmVzdWx0IHJldHZhbCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlGcmFtZUNvdW50LCAmaGFsRnJhbWVDb3VudCk7CisgICAgcmV0dXJuIHJldHZhbCA9PSBSZXN1bHQ6Ok9LID8gaGFsRnJhbWVDb3VudCA6IDA7Cit9CisKK1JldHVybjx1aW50NjRfdD4gU3RyZWFtOjpnZXRCdWZmZXJTaXplKCkgIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+Z2V0X2J1ZmZlcl9zaXplKG1TdHJlYW0pOworfQorCitSZXR1cm48dWludDMyX3Q+IFN0cmVhbTo6Z2V0U2FtcGxlUmF0ZSgpICB7CisgICAgcmV0dXJuIG1TdHJlYW0tPmdldF9zYW1wbGVfcmF0ZShtU3RyZWFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbTo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpICB7CisgICAgU3RyaW5nOCBoYWxMaXN0VmFsdWU7CisgICAgUmVzdWx0IHJlc3VsdCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlTdHJlYW1TdXBwb3J0ZWRTYW1wbGluZ1JhdGVzLCAmaGFsTGlzdFZhbHVlKTsKKyAgICBoaWRsX3ZlYzx1aW50MzJfdD4gc2FtcGxlUmF0ZXM7CisgICAgU29ydGVkVmVjdG9yPHVpbnQzMl90PiBoYWxTYW1wbGVSYXRlczsKKyAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgaGFsU2FtcGxlUmF0ZXMgPSBzYW1wbGluZ1JhdGVzRnJvbVN0cmluZygKKyAgICAgICAgICAgICAgICBoYWxMaXN0VmFsdWUuc3RyaW5nKCksIEF1ZGlvUGFyYW1ldGVyOjp2YWx1ZUxpc3RTZXBhcmF0b3IpOworICAgICAgICBzYW1wbGVSYXRlcy5zZXRUb0V4dGVybmFsKGhhbFNhbXBsZVJhdGVzLmVkaXRBcnJheSgpLCBoYWxTYW1wbGVSYXRlcy5zaXplKCkpOworICAgIH0KKyAgICBfaGlkbF9jYihzYW1wbGVSYXRlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRTYW1wbGVSYXRlKHVpbnQzMl90IHNhbXBsZVJhdGVIeikgIHsKKyAgICByZXR1cm4gc2V0UGFyYW0oQXVkaW9QYXJhbWV0ZXI6OmtleVNhbXBsaW5nUmF0ZSwgc3RhdGljX2Nhc3Q8aW50PihzYW1wbGVSYXRlSHopKTsKK30KKworUmV0dXJuPEF1ZGlvQ2hhbm5lbE1hc2s+IFN0cmVhbTo6Z2V0Q2hhbm5lbE1hc2soKSAgeworICAgIHJldHVybiBBdWRpb0NoYW5uZWxNYXNrKG1TdHJlYW0tPmdldF9jaGFubmVscyhtU3RyZWFtKSk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW06OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcyhnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpICB7CisgICAgU3RyaW5nOCBoYWxMaXN0VmFsdWU7CisgICAgUmVzdWx0IHJlc3VsdCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlTdHJlYW1TdXBwb3J0ZWRDaGFubmVscywgJmhhbExpc3RWYWx1ZSk7CisgICAgaGlkbF92ZWM8QXVkaW9DaGFubmVsTWFzaz4gY2hhbm5lbE1hc2tzOworICAgIFNvcnRlZFZlY3RvcjxhdWRpb19jaGFubmVsX21hc2tfdD4gaGFsQ2hhbm5lbE1hc2tzOworICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBoYWxDaGFubmVsTWFza3MgPSBjaGFubmVsTWFza3NGcm9tU3RyaW5nKAorICAgICAgICAgICAgICAgIGhhbExpc3RWYWx1ZS5zdHJpbmcoKSwgQXVkaW9QYXJhbWV0ZXI6OnZhbHVlTGlzdFNlcGFyYXRvcik7CisgICAgICAgIGNoYW5uZWxNYXNrcy5yZXNpemUoaGFsQ2hhbm5lbE1hc2tzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsQ2hhbm5lbE1hc2tzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFubmVsTWFza3NbaV0gPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENoYW5uZWxNYXNrc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgIF9oaWRsX2NiKGNoYW5uZWxNYXNrcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spICB7CisgICAgcmV0dXJuIHNldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlDaGFubmVscywgc3RhdGljX2Nhc3Q8aW50PihtYXNrKSk7Cit9CisKK1JldHVybjxBdWRpb0Zvcm1hdD4gU3RyZWFtOjpnZXRGb3JtYXQoKSAgeworICAgIHJldHVybiBBdWRpb0Zvcm1hdChtU3RyZWFtLT5nZXRfZm9ybWF0KG1TdHJlYW0pKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbTo6Z2V0U3VwcG9ydGVkRm9ybWF0cyhnZXRTdXBwb3J0ZWRGb3JtYXRzX2NiIF9oaWRsX2NiKSAgeworICAgIFN0cmluZzggaGFsTGlzdFZhbHVlOworICAgIFJlc3VsdCByZXN1bHQgPSBnZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5U3RyZWFtU3VwcG9ydGVkRm9ybWF0cywgJmhhbExpc3RWYWx1ZSk7CisgICAgaGlkbF92ZWM8QXVkaW9Gb3JtYXQ+IGZvcm1hdHM7CisgICAgVmVjdG9yPGF1ZGlvX2Zvcm1hdF90PiBoYWxGb3JtYXRzOworICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBoYWxGb3JtYXRzID0gZm9ybWF0c0Zyb21TdHJpbmcoaGFsTGlzdFZhbHVlLnN0cmluZygpLCBBdWRpb1BhcmFtZXRlcjo6dmFsdWVMaXN0U2VwYXJhdG9yKTsKKyAgICAgICAgZm9ybWF0cy5yZXNpemUoaGFsRm9ybWF0cy5zaXplKCkpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbEZvcm1hdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGZvcm1hdHNbaV0gPSBBdWRpb0Zvcm1hdChoYWxGb3JtYXRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgX2hpZGxfY2IoZm9ybWF0cyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRGb3JtYXQoQXVkaW9Gb3JtYXQgZm9ybWF0KSAgeworICAgIHJldHVybiBzZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5Rm9ybWF0LCBzdGF0aWNfY2FzdDxpbnQ+KGZvcm1hdCkpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtOjpnZXRBdWRpb1Byb3BlcnRpZXMoZ2V0QXVkaW9Qcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQzMl90IGhhbFNhbXBsZVJhdGUgPSBtU3RyZWFtLT5nZXRfc2FtcGxlX3JhdGUobVN0cmVhbSk7CisgICAgYXVkaW9fY2hhbm5lbF9tYXNrX3QgaGFsTWFzayA9IG1TdHJlYW0tPmdldF9jaGFubmVscyhtU3RyZWFtKTsKKyAgICBhdWRpb19mb3JtYXRfdCBoYWxGb3JtYXQgPSBtU3RyZWFtLT5nZXRfZm9ybWF0KG1TdHJlYW0pOworICAgIF9oaWRsX2NiKGhhbFNhbXBsZVJhdGUsIEF1ZGlvQ2hhbm5lbE1hc2soaGFsTWFzayksIEF1ZGlvRm9ybWF0KGhhbEZvcm1hdCkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6YWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgeworICAgIGVmZmVjdF9oYW5kbGVfdCBoYWxFZmZlY3QgPSBFZmZlY3RNYXA6OmdldEluc3RhbmNlKCkuZ2V0KGVmZmVjdElkKTsKKyAgICBpZiAoaGFsRWZmZWN0ICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoImFkZF9hdWRpb19lZmZlY3QiLCBtU3RyZWFtLT5hZGRfYXVkaW9fZWZmZWN0KG1TdHJlYW0sIGhhbEVmZmVjdCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dXKCJJbnZhbGlkIGVmZmVjdCBJRCBwYXNzZWQgZnJvbSBjbGllbnQ6ICUiIFBSSXU2NCwgZWZmZWN0SWQpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6cmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgeworICAgIGVmZmVjdF9oYW5kbGVfdCBoYWxFZmZlY3QgPSBFZmZlY3RNYXA6OmdldEluc3RhbmNlKCkuZ2V0KGVmZmVjdElkKTsKKyAgICBpZiAoaGFsRWZmZWN0ICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAgICAgInJlbW92ZV9hdWRpb19lZmZlY3QiLCBtU3RyZWFtLT5yZW1vdmVfYXVkaW9fZWZmZWN0KG1TdHJlYW0sIGhhbEVmZmVjdCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dXKCJJbnZhbGlkIGVmZmVjdCBJRCBwYXNzZWQgZnJvbSBjbGllbnQ6ICUiIFBSSXU2NCwgZWZmZWN0SWQpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6c3RhbmRieSgpICB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoInN0YW5kYnkiLCBtU3RyZWFtLT5zdGFuZGJ5KG1TdHJlYW0pKTsKK30KKworUmV0dXJuPEF1ZGlvRGV2aWNlPiBTdHJlYW06OmdldERldmljZSgpICB7CisgICAgaW50IGRldmljZTsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0UGFyYW0oQXVkaW9QYXJhbWV0ZXI6OmtleVJvdXRpbmcsICZkZXZpY2UpOworICAgIHJldHVybiByZXR2YWwgPT0gUmVzdWx0OjpPSyA/IHN0YXRpY19jYXN0PEF1ZGlvRGV2aWNlPihkZXZpY2UpIDogQXVkaW9EZXZpY2U6Ok5PTkU7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6c2V0RGV2aWNlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpICB7CisgICAgY2hhciogaGFsRGV2aWNlQWRkcmVzcyA9CisgICAgICAgICAgICBhdWRpb19kZXZpY2VfYWRkcmVzc190b19wYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oYWRkcmVzcy5kZXZpY2UpLAorICAgICAgICAgICAgICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoYWRkcmVzcykuY19zdHIoKSk7CisgICAgQXVkaW9QYXJhbWV0ZXIgcGFyYW1zKChTdHJpbmc4KGhhbERldmljZUFkZHJlc3MpKSk7CisgICAgZnJlZShoYWxEZXZpY2VBZGRyZXNzKTsKKyAgICBwYXJhbXMuYWRkSW50KAorICAgICAgICAgICAgU3RyaW5nOChBdWRpb1BhcmFtZXRlcjo6a2V5Um91dGluZyksIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oYWRkcmVzcy5kZXZpY2UpKTsKKyAgICByZXR1cm4gc2V0UGFyYW1zKHBhcmFtcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6c2V0Q29ubmVjdGVkU3RhdGUoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcywgYm9vbCBjb25uZWN0ZWQpICB7CisgICAgcmV0dXJuIHNldFBhcmFtKAorICAgICAgICAgICAgY29ubmVjdGVkID8gQXVkaW9QYXJhbWV0ZXI6OmtleVN0cmVhbUNvbm5lY3QgOiBBdWRpb1BhcmFtZXRlcjo6a2V5U3RyZWFtRGlzY29ubmVjdCwKKyAgICAgICAgICAgIGRldmljZUFkZHJlc3NUb0hhbChhZGRyZXNzKS5jX3N0cigpKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRId0F2U3luYyh1aW50MzJfdCBod0F2U3luYykgIHsKKyAgICByZXR1cm4gc2V0UGFyYW0oQXVkaW9QYXJhbWV0ZXI6OmtleVN0cmVhbUh3QXZTeW5jLCBzdGF0aWNfY2FzdDxpbnQ+KGh3QXZTeW5jKSk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW06OmdldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLCBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSAgeworICAgIGdldFBhcmFtZXRlcnNJbXBsKGtleXMsIF9oaWRsX2NiKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW06OnNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSAgeworICAgIHJldHVybiBzZXRQYXJhbWV0ZXJzSW1wbChwYXJhbWV0ZXJzKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbTo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIHsKKyAgICBpZiAoZmQuZ2V0TmF0aXZlSGFuZGxlKCkgIT0gbnVsbHB0ciAmJiBmZC0+bnVtRmRzID09IDEpIHsKKyAgICAgICAgYW5hbHl6ZVN0YXR1cygiZHVtcCIsIG1TdHJlYW0tPmR1bXAobVN0cmVhbSwgZmQtPmRhdGFbMF0pKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gIFN0cmVhbTo6c3RhcnQoKSB7CisgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworUmV0dXJuPFJlc3VsdD4gIFN0cmVhbTo6c3RvcCgpIHsKKyAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCitSZXR1cm48dm9pZD4gIFN0cmVhbTo6Y3JlYXRlTW1hcEJ1ZmZlcihpbnQzMl90IG1pblNpemVGcmFtZXMgX191bnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVNbWFwQnVmZmVyX2NiIF9oaWRsX2NiKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIE1tYXBCdWZmZXJJbmZvIGluZm87CisgICAgX2hpZGxfY2IocmV0dmFsLCBpbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gIFN0cmVhbTo6Z2V0TW1hcFBvc2l0aW9uKGdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBNbWFwUG9zaXRpb24gcG9zaXRpb247CisgICAgX2hpZGxfY2IocmV0dmFsLCBwb3NpdGlvbik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpjbG9zZSgpICB7CisgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ5ZTY1OAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5oCkBAIC0wLDAgKzEsMTc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfU1RSRUFNX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTV9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JU3RyZWFtLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW8uaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIlBhcmFtZXRlcnNVdGlsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9DaGFubmVsTWFzazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Gb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFN0cmVhbSA6IHB1YmxpYyBJU3RyZWFtLCBwdWJsaWMgUGFyYW1ldGVyc1V0aWwgeworICAgIGV4cGxpY2l0IFN0cmVhbShhdWRpb19zdHJlYW1fdCogc3RyZWFtKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbSBmb2xsb3cuCisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRGcmFtZVNpemUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRGcmFtZUNvdW50KCkgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50NjRfdD4gZ2V0QnVmZmVyU2l6ZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDMyX3Q+IGdldFNhbXBsZVJhdGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZFNhbXBsZVJhdGVzKGdldFN1cHBvcnRlZFNhbXBsZVJhdGVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0U2FtcGxlUmF0ZSh1aW50MzJfdCBzYW1wbGVSYXRlSHopICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9DaGFubmVsTWFzaz4gZ2V0Q2hhbm5lbE1hc2soKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENoYW5uZWxNYXNrcyhnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9Gb3JtYXQ+IGdldEZvcm1hdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkRm9ybWF0cyhnZXRTdXBwb3J0ZWRGb3JtYXRzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Rm9ybWF0KEF1ZGlvRm9ybWF0IGZvcm1hdCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdWRpb1Byb3BlcnRpZXMoZ2V0QXVkaW9Qcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gYWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RhbmRieSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9EZXZpY2U+IGdldERldmljZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbm5lY3RlZFN0YXRlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MsIGJvb2wgY29ubmVjdGVkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SHdBdlN5bmModWludDMyX3QgaHdBdlN5bmMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVycygKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlYnVnRHVtcChjb25zdCBoaWRsX2hhbmRsZSYgZmQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdGFydCgpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0b3AoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlTW1hcEJ1ZmZlcihpbnQzMl90IG1pblNpemVGcmFtZXMsIGNyZWF0ZU1tYXBCdWZmZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNbWFwUG9zaXRpb24oZ2V0TW1hcFBvc2l0aW9uX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIFV0aWxpdHkgbWV0aG9kcyBmb3IgZXh0ZW5kaW5nIGludGVyZmFjZXMuCisgICAgc3RhdGljIFJlc3VsdCBhbmFseXplU3RhdHVzKAorICAgICAgICAgICAgY29uc3QgY2hhciogZnVuY05hbWUsIGludCBzdGF0dXMsIGludCBpZ25vcmVFcnJvciA9IE9LLCBpbnQgaWdub3JlRXJyb3IyID0gT0spOworCisgIHByaXZhdGU6CisgICAgYXVkaW9fc3RyZWFtX3QgKm1TdHJlYW07CisKKyAgICB2aXJ0dWFsIH5TdHJlYW0oKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSBQYXJhbWV0ZXJzVXRpbC4KKyAgICBjaGFyKiBoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpIG92ZXJyaWRlOworICAgIGludCBoYWxTZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXNBbmRWYWx1ZXMpIG92ZXJyaWRlOworfTsKKworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBTdHJlYW1NbWFwIDogcHVibGljIFJlZkJhc2UgeworICAgIGV4cGxpY2l0IFN0cmVhbU1tYXAoVCogc3RyZWFtKSA6IG1TdHJlYW0oc3RyZWFtKSB7fQorCisgICAgUmV0dXJuPFJlc3VsdD4gc3RhcnQoKTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdG9wKCk7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZU1tYXBCdWZmZXIoCisgICAgICAgICAgICBpbnQzMl90IG1pblNpemVGcmFtZXMsIHNpemVfdCBmcmFtZVNpemUsIElTdHJlYW06OmNyZWF0ZU1tYXBCdWZmZXJfY2IgX2hpZGxfY2IpOworICAgIFJldHVybjx2b2lkPiBnZXRNbWFwUG9zaXRpb24oSVN0cmVhbTo6Z2V0TW1hcFBvc2l0aW9uX2NiIF9oaWRsX2NiKTsKKworIHByaXZhdGU6CisgICBTdHJlYW1NbWFwKCkge30KKworICAgVCAqbVN0cmVhbTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorUmV0dXJuPFJlc3VsdD4gU3RyZWFtTW1hcDxUPjo6c3RhcnQoKSB7CisgICAgaWYgKG1TdHJlYW0tPnN0YXJ0ID09IE5VTEwpIHJldHVybiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7CisgICAgaW50IHJlc3VsdCA9IG1TdHJlYW0tPnN0YXJ0KG1TdHJlYW0pOworICAgIHJldHVybiBTdHJlYW06OmFuYWx5emVTdGF0dXMoInN0YXJ0IiwgcmVzdWx0KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitSZXR1cm48UmVzdWx0PiBTdHJlYW1NbWFwPFQ+OjpzdG9wKCkgeworICAgIGlmIChtU3RyZWFtLT5zdG9wID09IE5VTEwpIHJldHVybiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7CisgICAgaW50IHJlc3VsdCA9IG1TdHJlYW0tPnN0b3AobVN0cmVhbSk7CisgICAgcmV0dXJuIFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygic3RvcCIsIHJlc3VsdCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorUmV0dXJuPHZvaWQ+IFN0cmVhbU1tYXA8VD46OmNyZWF0ZU1tYXBCdWZmZXIoaW50MzJfdCBtaW5TaXplRnJhbWVzLCBzaXplX3QgZnJhbWVTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVN0cmVhbTo6Y3JlYXRlTW1hcEJ1ZmZlcl9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBNbWFwQnVmZmVySW5mbyBpbmZvOworICAgIG5hdGl2ZV9oYW5kbGVfdCogaGlkbEhhbmRsZSA9IG51bGxwdHI7CisKKyAgICBpZiAobVN0cmVhbS0+Y3JlYXRlX21tYXBfYnVmZmVyICE9IE5VTEwpIHsKKyAgICAgICAgc3RydWN0IGF1ZGlvX21tYXBfYnVmZmVyX2luZm8gaGFsSW5mbzsKKyAgICAgICAgcmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKAorICAgICAgICAgICAgICAgICJjcmVhdGVfbW1hcF9idWZmZXIiLAorICAgICAgICAgICAgICAgIG1TdHJlYW0tPmNyZWF0ZV9tbWFwX2J1ZmZlcihtU3RyZWFtLCBtaW5TaXplRnJhbWVzLCAmaGFsSW5mbykpOworICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgIGhpZGxIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICAgICAgICAgIGhpZGxIYW5kbGUtPmRhdGFbMF0gPSBoYWxJbmZvLnNoYXJlZF9tZW1vcnlfZmQ7CisgICAgICAgICAgICBpbmZvLnNoYXJlZE1lbW9yeSA9IGhpZGxfbWVtb3J5KCJhdWRpb19idWZmZXIiLCBoaWRsSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZVNpemUgKmhhbEluZm8uYnVmZmVyX3NpemVfZnJhbWVzKTsKKyAgICAgICAgICAgIGluZm8uYnVmZmVyU2l6ZUZyYW1lcyA9IGhhbEluZm8uYnVmZmVyX3NpemVfZnJhbWVzOworICAgICAgICAgICAgaW5mby5idXJzdFNpemVGcmFtZXMgPSBoYWxJbmZvLmJ1cnN0X3NpemVfZnJhbWVzOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgaW5mbyk7CisgICAgaWYgKGhpZGxIYW5kbGUgIT0gbnVsbHB0cikgeworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShoaWRsSGFuZGxlKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitSZXR1cm48dm9pZD4gU3RyZWFtTW1hcDxUPjo6Z2V0TW1hcFBvc2l0aW9uKElTdHJlYW06OmdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBNbWFwUG9zaXRpb24gcG9zaXRpb247CisKKyAgICBpZiAobVN0cmVhbS0+Z2V0X21tYXBfcG9zaXRpb24gIT0gTlVMTCkgeworICAgICAgICBzdHJ1Y3QgYXVkaW9fbW1hcF9wb3NpdGlvbiBoYWxQb3NpdGlvbjsKKyAgICAgICAgcmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKAorICAgICAgICAgICAgICAgICJnZXRfbW1hcF9wb3NpdGlvbiIsCisgICAgICAgICAgICAgICAgbVN0cmVhbS0+Z2V0X21tYXBfcG9zaXRpb24obVN0cmVhbSwgJmhhbFBvc2l0aW9uKSk7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgcG9zaXRpb24udGltZU5hbm9zZWNvbmRzID0gaGFsUG9zaXRpb24udGltZV9uYW5vc2Vjb25kczsKKyAgICAgICAgICAgIHBvc2l0aW9uLnBvc2l0aW9uRnJhbWVzID0gaGFsUG9zaXRpb24ucG9zaXRpb25fZnJhbWVzOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgcG9zaXRpb24pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1fSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZDA0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1Jbi5jcHAKQEAgLTAsMCArMSw0NDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlN0cmVhbUluSEFMIgorLy8jZGVmaW5lIExPR19OREVCVUcgMAorI2RlZmluZSBBVFJBQ0VfVEFHIEFUUkFDRV9UQUdfQVVESU8KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW8uaD4KKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgIlN0cmVhbUluLmgiCisjaW5jbHVkZSAiVXRpbC5oIgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6TWVzc2FnZVF1ZXVlRmxhZ0JpdHM7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VGhyZWFkSW5mbzsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgUmVhZFRocmVhZCA6IHB1YmxpYyBUaHJlYWQgeworICAgcHVibGljOgorICAgIC8vIFJlYWRUaHJlYWQncyBsaWZlc3BhbiBuZXZlciBleGNlZWRzIFN0cmVhbUluJ3MgbGlmZXNwYW4uCisgICAgUmVhZFRocmVhZChzdGQ6OmF0b21pYzxib29sPiogc3RvcCwgYXVkaW9fc3RyZWFtX2luX3QqIHN0cmVhbSwKKyAgICAgICAgICAgICAgIFN0cmVhbUluOjpDb21tYW5kTVEqIGNvbW1hbmRNUSwgU3RyZWFtSW46OkRhdGFNUSogZGF0YU1RLAorICAgICAgICAgICAgICAgU3RyZWFtSW46OlN0YXR1c01RKiBzdGF0dXNNUSwgRXZlbnRGbGFnKiBlZkdyb3VwKQorICAgICAgICA6IFRocmVhZChmYWxzZSAvKmNhbkNhbGxKYXZhKi8pLAorICAgICAgICAgIG1TdG9wKHN0b3ApLAorICAgICAgICAgIG1TdHJlYW0oc3RyZWFtKSwKKyAgICAgICAgICBtQ29tbWFuZE1RKGNvbW1hbmRNUSksCisgICAgICAgICAgbURhdGFNUShkYXRhTVEpLAorICAgICAgICAgIG1TdGF0dXNNUShzdGF0dXNNUSksCisgICAgICAgICAgbUVmR3JvdXAoZWZHcm91cCksCisgICAgICAgICAgbUJ1ZmZlcihudWxscHRyKSB7fQorICAgIGJvb2wgaW5pdCgpIHsKKyAgICAgICAgbUJ1ZmZlci5yZXNldChuZXcgKHN0ZDo6bm90aHJvdykgdWludDhfdFttRGF0YU1RLT5nZXRRdWFudHVtQ291bnQoKV0pOworICAgICAgICByZXR1cm4gbUJ1ZmZlciAhPSBudWxscHRyOworICAgIH0KKyAgICB2aXJ0dWFsIH5SZWFkVGhyZWFkKCkge30KKworICAgcHJpdmF0ZToKKyAgICBzdGQ6OmF0b21pYzxib29sPiogbVN0b3A7CisgICAgYXVkaW9fc3RyZWFtX2luX3QqIG1TdHJlYW07CisgICAgU3RyZWFtSW46OkNvbW1hbmRNUSogbUNvbW1hbmRNUTsKKyAgICBTdHJlYW1Jbjo6RGF0YU1RKiBtRGF0YU1ROworICAgIFN0cmVhbUluOjpTdGF0dXNNUSogbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gbUJ1ZmZlcjsKKyAgICBJU3RyZWFtSW46OlJlYWRQYXJhbWV0ZXJzIG1QYXJhbWV0ZXJzOworICAgIElTdHJlYW1Jbjo6UmVhZFN0YXR1cyBtU3RhdHVzOworCisgICAgYm9vbCB0aHJlYWRMb29wKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRvR2V0Q2FwdHVyZVBvc2l0aW9uKCk7CisgICAgdm9pZCBkb1JlYWQoKTsKK307CisKK3ZvaWQgUmVhZFRocmVhZDo6ZG9SZWFkKCkgeworICAgIHNpemVfdCBhdmFpbGFibGVUb1dyaXRlID0gbURhdGFNUS0+YXZhaWxhYmxlVG9Xcml0ZSgpOworICAgIHNpemVfdCByZXF1ZXN0ZWRUb1JlYWQgPSBtUGFyYW1ldGVycy5wYXJhbXMucmVhZDsKKyAgICBpZiAocmVxdWVzdGVkVG9SZWFkID4gYXZhaWxhYmxlVG9Xcml0ZSkgeworICAgICAgICBBTE9HVygKKyAgICAgICAgICAgICJ0cnVuY2F0aW5nIHJlYWQgZGF0YSBmcm9tICVkIHRvICVkIGR1ZSB0byBpbnN1ZmZpY2llbnQgZGF0YSBxdWV1ZSAiCisgICAgICAgICAgICAic3BhY2UiLAorICAgICAgICAgICAgKGludDMyX3QpcmVxdWVzdGVkVG9SZWFkLCAoaW50MzJfdClhdmFpbGFibGVUb1dyaXRlKTsKKyAgICAgICAgcmVxdWVzdGVkVG9SZWFkID0gYXZhaWxhYmxlVG9Xcml0ZTsKKyAgICB9CisgICAgc3NpemVfdCByZWFkUmVzdWx0ID0gbVN0cmVhbS0+cmVhZChtU3RyZWFtLCAmbUJ1ZmZlclswXSwgcmVxdWVzdGVkVG9SZWFkKTsKKyAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6T0s7CisgICAgdWludDY0X3QgcmVhZCA9IDA7CisgICAgaWYgKHJlYWRSZXN1bHQgPj0gMCkgeworICAgICAgICBtU3RhdHVzLnJlcGx5LnJlYWQgPSByZWFkUmVzdWx0OworICAgICAgICBpZiAoIW1EYXRhTVEtPndyaXRlKCZtQnVmZmVyWzBdLCByZWFkUmVzdWx0KSkgeworICAgICAgICAgICAgQUxPR1coImRhdGEgbWVzc2FnZSBxdWV1ZSB3cml0ZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIG1TdGF0dXMucmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKCJyZWFkIiwgcmVhZFJlc3VsdCk7CisgICAgfQorfQorCit2b2lkIFJlYWRUaHJlYWQ6OmRvR2V0Q2FwdHVyZVBvc2l0aW9uKCkgeworICAgIG1TdGF0dXMucmV0dmFsID0gU3RyZWFtSW46OmdldENhcHR1cmVQb3NpdGlvbkltcGwoCisgICAgICAgIG1TdHJlYW0sICZtU3RhdHVzLnJlcGx5LmNhcHR1cmVQb3NpdGlvbi5mcmFtZXMsCisgICAgICAgICZtU3RhdHVzLnJlcGx5LmNhcHR1cmVQb3NpdGlvbi50aW1lKTsKK30KKworYm9vbCBSZWFkVGhyZWFkOjp0aHJlYWRMb29wKCkgeworICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXR1cm4gY29udHJvbCBiYWNrIHRvIHRoZSBUaHJlYWQgdW50aWwgaXQKKyAgICAvLyBkZWNpZGVzIHRvIHN0b3AsCisgICAgLy8gYXMgdGhlIFRocmVhZCB1c2VzIG11dGV4ZXMsIGFuZCB0aGlzIGNhbiBsZWFkIHRvIHByaW9yaXR5IGludmVyc2lvbi4KKyAgICB3aGlsZSAoIXN0ZDo6YXRvbWljX2xvYWRfZXhwbGljaXQobVN0b3AsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpKSB7CisgICAgICAgIHVpbnQzMl90IGVmU3RhdGUgPSAwOworICAgICAgICBtRWZHcm91cC0+d2FpdChzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6Ok5PVF9GVUxMKSwKKyAgICAgICAgICAgICAgICAgICAgICAgJmVmU3RhdGUpOworICAgICAgICBpZiAoIShlZlN0YXRlICYKKyAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRlVMTCkpKSB7CisgICAgICAgICAgICBjb250aW51ZTsgIC8vIE5vdGhpbmcgdG8gZG8uCisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtQ29tbWFuZE1RLT5yZWFkKCZtUGFyYW1ldGVycykpIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOyAgLy8gTm90aGluZyB0byBkby4KKyAgICAgICAgfQorICAgICAgICBtU3RhdHVzLnJlcGx5VG8gPSBtUGFyYW1ldGVycy5jb21tYW5kOworICAgICAgICBzd2l0Y2ggKG1QYXJhbWV0ZXJzLmNvbW1hbmQpIHsKKyAgICAgICAgICAgIGNhc2UgSVN0cmVhbUluOjpSZWFkQ29tbWFuZDo6UkVBRDoKKyAgICAgICAgICAgICAgICBkb1JlYWQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSVN0cmVhbUluOjpSZWFkQ29tbWFuZDo6R0VUX0NBUFRVUkVfUE9TSVRJT046CisgICAgICAgICAgICAgICAgZG9HZXRDYXB0dXJlUG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgQUxPR0UoIlVua25vd24gcmVhZCB0aHJlYWQgY29tbWFuZCBjb2RlICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICBtUGFyYW1ldGVycy5jb21tYW5kKTsKKyAgICAgICAgICAgICAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW1TdGF0dXNNUS0+d3JpdGUoJm1TdGF0dXMpKSB7CisgICAgICAgICAgICBBTE9HVygic3RhdHVzIG1lc3NhZ2UgcXVldWUgd3JpdGUgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgbUVmR3JvdXAtPndha2Uoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRU1QVFkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gIC8vIG5hbWVzcGFjZQorCitTdHJlYW1Jbjo6U3RyZWFtSW4oY29uc3Qgc3A8RGV2aWNlPiYgZGV2aWNlLCBhdWRpb19zdHJlYW1faW5fdCogc3RyZWFtKQorICAgIDogbUlzQ2xvc2VkKGZhbHNlKSwKKyAgICAgIG1EZXZpY2UoZGV2aWNlKSwKKyAgICAgIG1TdHJlYW0oc3RyZWFtKSwKKyAgICAgIG1TdHJlYW1Db21tb24obmV3IFN0cmVhbSgmc3RyZWFtLT5jb21tb24pKSwKKyAgICAgIG1TdHJlYW1NbWFwKG5ldyBTdHJlYW1NbWFwPGF1ZGlvX3N0cmVhbV9pbl90PihzdHJlYW0pKSwKKyAgICAgIG1FZkdyb3VwKG51bGxwdHIpLAorICAgICAgbVN0b3BSZWFkVGhyZWFkKGZhbHNlKSB7fQorCitTdHJlYW1Jbjo6flN0cmVhbUluKCkgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgY2xvc2UoKTsKKyAgICBpZiAobVJlYWRUaHJlYWQuZ2V0KCkpIHsKKyAgICAgICAgQVRSQUNFX05BTUUoIm1SZWFkVGhyZWFkLT5qb2luIik7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1SZWFkVGhyZWFkLT5qb2luKCk7CisgICAgICAgIEFMT0dFX0lGKHN0YXR1cywgInJlYWQgdGhyZWFkIGV4aXQgZXJyb3I6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBpZiAobUVmR3JvdXApIHsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gRXZlbnRGbGFnOjpkZWxldGVFdmVudEZsYWcoJm1FZkdyb3VwKTsKKyAgICAgICAgQUxPR0VfSUYoc3RhdHVzLCAicmVhZCBNUSBldmVudCBmbGFnIGRlbGV0aW9uIGVycm9yOiAlcyIsCisgICAgICAgICAgICAgICAgIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICB9CisgICAgbURldmljZS0+Y2xvc2VJbnB1dFN0cmVhbShtU3RyZWFtKTsKKyAgICBtU3RyZWFtID0gbnVsbHB0cjsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KK1JldHVybjx1aW50NjRfdD4gU3RyZWFtSW46OmdldEZyYW1lU2l6ZSgpIHsKKyAgICByZXR1cm4gYXVkaW9fc3RyZWFtX2luX2ZyYW1lX3NpemUobVN0cmVhbSk7Cit9CisKK1JldHVybjx1aW50NjRfdD4gU3RyZWFtSW46OmdldEZyYW1lQ291bnQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEZyYW1lQ291bnQoKTsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBTdHJlYW1Jbjo6Z2V0QnVmZmVyU2l6ZSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0QnVmZmVyU2l6ZSgpOworfQorCitSZXR1cm48dWludDMyX3Q+IFN0cmVhbUluOjpnZXRTYW1wbGVSYXRlKCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRTYW1wbGVSYXRlKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoCisgICAgZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6c2V0U2FtcGxlUmF0ZSh1aW50MzJfdCBzYW1wbGVSYXRlSHopIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRlSHopOworfQorCitSZXR1cm48QXVkaW9DaGFubmVsTWFzaz4gU3RyZWFtSW46OmdldENoYW5uZWxNYXNrKCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRDaGFubmVsTWFzaygpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtSW46OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcygKKyAgICBnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtSW46OnNldENoYW5uZWxNYXNrKEF1ZGlvQ2hhbm5lbE1hc2sgbWFzaykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRDaGFubmVsTWFzayhtYXNrKTsKK30KKworUmV0dXJuPEF1ZGlvRm9ybWF0PiBTdHJlYW1Jbjo6Z2V0Rm9ybWF0KCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRGb3JtYXQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbUluOjpnZXRTdXBwb3J0ZWRGb3JtYXRzKGdldFN1cHBvcnRlZEZvcm1hdHNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkRm9ybWF0cyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzZXRGb3JtYXQoQXVkaW9Gb3JtYXQgZm9ybWF0KSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldEZvcm1hdChmb3JtYXQpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtSW46OmdldEF1ZGlvUHJvcGVydGllcyhnZXRBdWRpb1Byb3BlcnRpZXNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0QXVkaW9Qcm9wZXJ0aWVzKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtSW46OmFkZEVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5hZGRFZmZlY3QoZWZmZWN0SWQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6cmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnJlbW92ZUVmZmVjdChlZmZlY3RJZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzdGFuZGJ5KCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zdGFuZGJ5KCk7Cit9CisKK1JldHVybjxBdWRpb0RldmljZT4gU3RyZWFtSW46OmdldERldmljZSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0RGV2aWNlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzZXREZXZpY2UoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXREZXZpY2UoYWRkcmVzcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzZXRDb25uZWN0ZWRTdGF0ZShjb25zdCBEZXZpY2VBZGRyZXNzJiBhZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY29ubmVjdGVkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldENvbm5lY3RlZFN0YXRlKGFkZHJlc3MsIGNvbm5lY3RlZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzZXRId0F2U3luYyh1aW50MzJfdCBod0F2U3luYykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRId0F2U3luYyhod0F2U3luYyk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6Z2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRQYXJhbWV0ZXJzKGtleXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtSW46OnNldFBhcmFtZXRlcnMoCisgICAgY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldFBhcmFtZXRlcnMocGFyYW1ldGVycyk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5kZWJ1Z0R1bXAoZmQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6c3RhcnQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5zdGFydCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6c3RvcCgpIHsKKyAgICByZXR1cm4gbVN0cmVhbU1tYXAtPnN0b3AoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbUluOjpjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVNbWFwQnVmZmVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5jcmVhdGVNbWFwQnVmZmVyKAorICAgICAgICBtaW5TaXplRnJhbWVzLCBhdWRpb19zdHJlYW1faW5fZnJhbWVfc2l6ZShtU3RyZWFtKSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtSW46OmdldE1tYXBQb3NpdGlvbihnZXRNbWFwUG9zaXRpb25fY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbU1tYXAtPmdldE1tYXBQb3NpdGlvbihfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpjbG9zZSgpIHsKKyAgICBpZiAobUlzQ2xvc2VkKSByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIG1Jc0Nsb3NlZCA9IHRydWU7CisgICAgaWYgKG1SZWFkVGhyZWFkLmdldCgpKSB7CisgICAgICAgIG1TdG9wUmVhZFRocmVhZC5zdG9yZSh0cnVlLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKKyAgICB9CisgICAgaWYgKG1FZkdyb3VwKSB7CisgICAgICAgIG1FZkdyb3VwLT53YWtlKHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6Tk9UX0ZVTEwpKTsKKyAgICB9CisgICAgcmV0dXJuIFJlc3VsdDo6T0s7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbUluIGZvbGxvdy4KK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6Z2V0QXVkaW9Tb3VyY2UoZ2V0QXVkaW9Tb3VyY2VfY2IgX2hpZGxfY2IpIHsKKyAgICBpbnQgaGFsU291cmNlOworICAgIFJlc3VsdCByZXR2YWwgPQorICAgICAgICBtU3RyZWFtQ29tbW9uLT5nZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5SW5wdXRTb3VyY2UsICZoYWxTb3VyY2UpOworICAgIEF1ZGlvU291cmNlIHNvdXJjZShBdWRpb1NvdXJjZTo6REVGQVVMVCk7CisgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIHNvdXJjZSA9IEF1ZGlvU291cmNlKGhhbFNvdXJjZSk7CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgc291cmNlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6c2V0R2FpbihmbG9hdCBnYWluKSB7CisgICAgaWYgKCFpc0dhaW5Ob3JtYWxpemVkKGdhaW4pKSB7CisgICAgICAgIEFMT0dXKCJDYW4gbm90IHNldCBhIHN0cmVhbSBpbnB1dCBnYWluICglZikgb3V0c2lkZSBbMCwxXSIsIGdhaW4pOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9CisgICAgcmV0dXJuIFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygic2V0X2dhaW4iLCBtU3RyZWFtLT5zZXRfZ2FpbihtU3RyZWFtLCBnYWluKSk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6cHJlcGFyZUZvclJlYWRpbmcodWludDMyX3QgZnJhbWVTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmcmFtZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlcGFyZUZvclJlYWRpbmdfY2IgX2hpZGxfY2IpIHsKKyAgICBzdGF0dXNfdCBzdGF0dXM7CisgICAgVGhyZWFkSW5mbyB0aHJlYWRJbmZvID0gezAsIDB9OworCisgICAgLy8gV3JhcCB0aGUgX2hpZGxfY2IgdG8gcmV0dXJuIGFuIGVycm9yCisgICAgYXV0byBzZW5kRXJyb3IgPSBbdGhpcywgJnRocmVhZEluZm8sICZfaGlkbF9jYl0oUmVzdWx0IHJlc3VsdCkgeworICAgICAgICBfaGlkbF9jYihyZXN1bHQsIENvbW1hbmRNUTo6RGVzY3JpcHRvcigpLCBEYXRhTVE6OkRlc2NyaXB0b3IoKSwKKyAgICAgICAgICAgICAgICAgU3RhdHVzTVE6OkRlc2NyaXB0b3IoKSwgdGhyZWFkSW5mbyk7CisKKyAgICB9OworCisgICAgLy8gQ3JlYXRlIG1lc3NhZ2UgcXVldWVzLgorICAgIGlmIChtRGF0YU1RKSB7CisgICAgICAgIEFMT0dFKCJ0aGUgY2xpZW50IGF0dGVtcHRzIHRvIGNhbGwgcHJlcGFyZUZvclJlYWRpbmcgdHdpY2UiKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9TVEFURSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kTVE+IHRlbXBDb21tYW5kTVEobmV3IENvbW1hbmRNUSgxKSk7CisKKyAgICAvLyBDaGVjayBmcmFtZVNpemUgYW5kIGZyYW1lc0NvdW50CisgICAgaWYgKGZyYW1lU2l6ZSA9PSAwIHx8IGZyYW1lc0NvdW50ID09IDApIHsKKyAgICAgICAgQUxPR0UoIk51bGwgZnJhbWVTaXplICgldSkgb3IgZnJhbWVzQ291bnQgKCV1KSIsIGZyYW1lU2l6ZSwKKyAgICAgICAgICAgICAgZnJhbWVzQ291bnQpOworICAgICAgICBzZW5kRXJyb3IoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIC8vIEEgbWVzc2FnZSBxdWV1ZSBhc3NlcnRzIGlmIGl0IGNhbiBub3QgaGFuZGxlIHRoZSByZXF1ZXN0ZWQgYnVmZmVyLAorICAgIC8vIHRodXMgdGhlIGNsaWVudCBoYXMgdG8gZ3Vlc3MgdGhlIG1heGltdW0gc2l6ZSBpdCBjYW4gaGFuZGxlCisgICAgLy8gQ2hvb3NlIGFuIGFyYml0cmFyeSBtYXJnaW4gZm9yIHRoZSBvdmVyaGVhZCBvZiBhIG1lc3NhZ2UgcXVldWUKKyAgICBzaXplX3QgbWV0YWRhdGFPdmVyaGVhZCA9IDEwMDAwMDsKKyAgICBpZiAoZnJhbWVTaXplID4KKyAgICAgICAgKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkgLSBtZXRhZGF0YU92ZXJoZWFkKSAvIGZyYW1lc0NvdW50KSB7CisgICAgICAgIEFMT0dFKCJCdWZmZXIgdG9vIGJpZzogJXUqJXUgYnl0ZXMgY2FuIG5vdCBmaXQgaW4gYSBtZXNzYWdlIHF1ZXVlIiwKKyAgICAgICAgICAgICAgZnJhbWVTaXplLCBmcmFtZXNDb3VudCk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFNUT4gdGVtcERhdGFNUSgKKyAgICAgICAgbmV3IERhdGFNUShmcmFtZVNpemUgKiBmcmFtZXNDb3VudCwgdHJ1ZSAvKiBFdmVudEZsYWcgKi8pKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gdGVtcFN0YXR1c01RKG5ldyBTdGF0dXNNUSgxKSk7CisgICAgaWYgKCF0ZW1wQ29tbWFuZE1RLT5pc1ZhbGlkKCkgfHwgIXRlbXBEYXRhTVEtPmlzVmFsaWQoKSB8fAorICAgICAgICAhdGVtcFN0YXR1c01RLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgQUxPR0VfSUYoIXRlbXBDb21tYW5kTVEtPmlzVmFsaWQoKSwgImNvbW1hbmQgTVEgaXMgaW52YWxpZCIpOworICAgICAgICBBTE9HRV9JRighdGVtcERhdGFNUS0+aXNWYWxpZCgpLCAiZGF0YSBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIEFMT0dFX0lGKCF0ZW1wU3RhdHVzTVEtPmlzVmFsaWQoKSwgInN0YXR1cyBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgRXZlbnRGbGFnKiB0ZW1wUmF3RWZHcm91cHt9OworICAgIHN0YXR1cyA9IEV2ZW50RmxhZzo6Y3JlYXRlRXZlbnRGbGFnKHRlbXBEYXRhTVEtPmdldEV2ZW50RmxhZ1dvcmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGVtcFJhd0VmR3JvdXApOworICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudEZsYWcsIHZvaWQgKCopKEV2ZW50RmxhZyopPiB0ZW1wRWxmR3JvdXAoCisgICAgICAgIHRlbXBSYXdFZkdyb3VwLCBbXShhdXRvKiBlZikgeyBFdmVudEZsYWc6OmRlbGV0ZUV2ZW50RmxhZygmZWYpOyB9KTsKKyAgICBpZiAoc3RhdHVzICE9IE9LIHx8ICF0ZW1wRWxmR3JvdXApIHsKKyAgICAgICAgQUxPR0UoImZhaWxlZCBjcmVhdGluZyBldmVudCBmbGFnIGZvciBkYXRhIE1ROiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIC8vIENyZWF0ZSBhbmQgbGF1bmNoIHRoZSB0aHJlYWQuCisgICAgYXV0byB0ZW1wUmVhZFRocmVhZCA9IHN0ZDo6bWFrZV91bmlxdWU8UmVhZFRocmVhZD4oCisgICAgICAgICZtU3RvcFJlYWRUaHJlYWQsIG1TdHJlYW0sIHRlbXBDb21tYW5kTVEuZ2V0KCksIHRlbXBEYXRhTVEuZ2V0KCksCisgICAgICAgIHRlbXBTdGF0dXNNUS5nZXQoKSwgdGVtcEVsZkdyb3VwLmdldCgpKTsKKyAgICBpZiAoIXRlbXBSZWFkVGhyZWFkLT5pbml0KCkpIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBzdGFydCByZWFkZXIgdGhyZWFkOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzdGF0dXMgPSB0ZW1wUmVhZFRocmVhZC0+cnVuKCJyZWFkZXIiLCBQUklPUklUWV9VUkdFTlRfQVVESU8pOworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBzdGFydCByZWFkZXIgdGhyZWFkOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIG1Db21tYW5kTVEgPSBzdGQ6Om1vdmUodGVtcENvbW1hbmRNUSk7CisgICAgbURhdGFNUSA9IHN0ZDo6bW92ZSh0ZW1wRGF0YU1RKTsKKyAgICBtU3RhdHVzTVEgPSBzdGQ6Om1vdmUodGVtcFN0YXR1c01RKTsKKyAgICBtUmVhZFRocmVhZCA9IHRlbXBSZWFkVGhyZWFkLnJlbGVhc2UoKTsKKyAgICBtRWZHcm91cCA9IHRlbXBFbGZHcm91cC5yZWxlYXNlKCk7CisgICAgdGhyZWFkSW5mby5waWQgPSBnZXRwaWQoKTsKKyAgICB0aHJlYWRJbmZvLnRpZCA9IG1SZWFkVGhyZWFkLT5nZXRUaWQoKTsKKyAgICBfaGlkbF9jYihSZXN1bHQ6Ok9LLCAqbUNvbW1hbmRNUS0+Z2V0RGVzYygpLCAqbURhdGFNUS0+Z2V0RGVzYygpLAorICAgICAgICAgICAgICptU3RhdHVzTVEtPmdldERlc2MoKSwgdGhyZWFkSW5mbyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBTdHJlYW1Jbjo6Z2V0SW5wdXRGcmFtZXNMb3N0KCkgeworICAgIHJldHVybiBtU3RyZWFtLT5nZXRfaW5wdXRfZnJhbWVzX2xvc3QobVN0cmVhbSk7Cit9CisKKy8vIHN0YXRpYworUmVzdWx0IFN0cmVhbUluOjpnZXRDYXB0dXJlUG9zaXRpb25JbXBsKGF1ZGlvX3N0cmVhbV9pbl90KiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QqIGZyYW1lcywgdWludDY0X3QqIHRpbWUpIHsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgaWYgKHN0cmVhbS0+Z2V0X2NhcHR1cmVfcG9zaXRpb24gIT0gTlVMTCkgcmV0dXJuIHJldHZhbDsKKyAgICBpbnQ2NF90IGhhbEZyYW1lcywgaGFsVGltZTsKKyAgICByZXR2YWwgPSBTdHJlYW06OmFuYWx5emVTdGF0dXMoCisgICAgICAgICJnZXRfY2FwdHVyZV9wb3NpdGlvbiIsCisgICAgICAgIHN0cmVhbS0+Z2V0X2NhcHR1cmVfcG9zaXRpb24oc3RyZWFtLCAmaGFsRnJhbWVzLCAmaGFsVGltZSksCisgICAgICAgIC8vIEhBTCBtYXkgaGF2ZSBhIHN0dWIgZnVuY3Rpb24sIGFsd2F5cyByZXR1cm5pbmcgRU5PU1lTLCBkb24ndAorICAgICAgICAvLyBzcGFtIHRoZSBsb2cgaW4gdGhpcyBjYXNlLgorICAgICAgICBFTk9TWVMpOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAqZnJhbWVzID0gaGFsRnJhbWVzOworICAgICAgICAqdGltZSA9IGhhbFRpbWU7CisgICAgfQorICAgIHJldHVybiByZXR2YWw7Cit9OworCitSZXR1cm48dm9pZD4gU3RyZWFtSW46OmdldENhcHR1cmVQb3NpdGlvbihnZXRDYXB0dXJlUG9zaXRpb25fY2IgX2hpZGxfY2IpIHsKKyAgICB1aW50NjRfdCBmcmFtZXMgPSAwLCB0aW1lID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0Q2FwdHVyZVBvc2l0aW9uSW1wbChtU3RyZWFtLCAmZnJhbWVzLCAmdGltZSk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBmcmFtZXMsIHRpbWUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uaCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbUluLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUwZDY4ZgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbUluLmgKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1JTl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1JTl9ICisKKyNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8bWVtb3J5PgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSVN0cmVhbUluLmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxmbXEvRXZlbnRGbGFnLmg+CisjaW5jbHVkZSA8Zm1xL01lc3NhZ2VRdWV1ZS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8dXRpbHMvVGhyZWFkLmg+CisKKyNpbmNsdWRlICJEZXZpY2UuaCIKKyNpbmNsdWRlICJTdHJlYW0uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NoYW5uZWxNYXNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0Zvcm1hdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OkRldmljZUFkZHJlc3M7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtSW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UGFyYW1ldGVyVmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgU3RyZWFtSW4gOiBwdWJsaWMgSVN0cmVhbUluIHsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTxSZWFkUGFyYW1ldGVycywga1N5bmNocm9uaXplZFJlYWRXcml0ZT4gQ29tbWFuZE1ROworICAgIHR5cGVkZWYgTWVzc2FnZVF1ZXVlPHVpbnQ4X3QsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+IERhdGFNUTsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTxSZWFkU3RhdHVzLCBrU3luY2hyb25pemVkUmVhZFdyaXRlPiBTdGF0dXNNUTsKKworICAgIFN0cmVhbUluKGNvbnN0IHNwPERldmljZT4mIGRldmljZSwgYXVkaW9fc3RyZWFtX2luX3QqIHN0cmVhbSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW0gZm9sbG93LgorICAgIFJldHVybjx1aW50NjRfdD4gZ2V0RnJhbWVTaXplKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50NjRfdD4gZ2V0RnJhbWVDb3VudCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDY0X3Q+IGdldEJ1ZmZlclNpemUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQzMl90PiBnZXRTYW1wbGVSYXRlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlcyhnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZUh6KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvQ2hhbm5lbE1hc2s+IGdldENoYW5uZWxNYXNrKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3MoZ2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q2hhbm5lbE1hc2soQXVkaW9DaGFubmVsTWFzayBtYXNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvRm9ybWF0PiBnZXRGb3JtYXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEZvcm1hdHMoZ2V0U3VwcG9ydGVkRm9ybWF0c19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEZvcm1hdChBdWRpb0Zvcm1hdCBmb3JtYXQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXVkaW9Qcm9wZXJ0aWVzKGdldEF1ZGlvUHJvcGVydGllc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGFkZEVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlbW92ZUVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0YW5kYnkoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvRGV2aWNlPiBnZXREZXZpY2UoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25uZWN0ZWRTdGF0ZShjb25zdCBEZXZpY2VBZGRyZXNzJiBhZGRyZXNzLCBib29sIGNvbm5lY3RlZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEh3QXZTeW5jKHVpbnQzMl90IGh3QXZTeW5jKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcnMoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsIGdldFBhcmFtZXRlcnNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXJzKGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1JbiBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldEF1ZGlvU291cmNlKGdldEF1ZGlvU291cmNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0R2FpbihmbG9hdCBnYWluKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JSZWFkaW5nKAorICAgICAgICAgICAgdWludDMyX3QgZnJhbWVTaXplLCB1aW50MzJfdCBmcmFtZXNDb3VudCwgcHJlcGFyZUZvclJlYWRpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDMyX3Q+IGdldElucHV0RnJhbWVzTG9zdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FwdHVyZVBvc2l0aW9uKGdldENhcHR1cmVQb3NpdGlvbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RvcCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcywgY3JlYXRlTW1hcEJ1ZmZlcl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1tYXBQb3NpdGlvbihnZXRNbWFwUG9zaXRpb25fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgc3RhdGljIFJlc3VsdCBnZXRDYXB0dXJlUG9zaXRpb25JbXBsKAorICAgICAgICAgICAgYXVkaW9fc3RyZWFtX2luX3QgKnN0cmVhbSwgdWludDY0X3QgKmZyYW1lcywgdWludDY0X3QgKnRpbWUpOworCisgIHByaXZhdGU6CisgICAgYm9vbCBtSXNDbG9zZWQ7CisgICAgY29uc3Qgc3A8RGV2aWNlPiBtRGV2aWNlOworICAgIGF1ZGlvX3N0cmVhbV9pbl90ICptU3RyZWFtOworICAgIGNvbnN0IHNwPFN0cmVhbT4gbVN0cmVhbUNvbW1vbjsKKyAgICBjb25zdCBzcDxTdHJlYW1NbWFwPGF1ZGlvX3N0cmVhbV9pbl90Pj4gbVN0cmVhbU1tYXA7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRNUT4gbUNvbW1hbmRNUTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YU1RPiBtRGF0YU1ROworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjphdG9taWM8Ym9vbD4gbVN0b3BSZWFkVGhyZWFkOworICAgIHNwPFRocmVhZD4gbVJlYWRUaHJlYWQ7CisKKyAgICB2aXJ0dWFsIH5TdHJlYW1JbigpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTUlOX0gKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbU91dC5jcHAgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1PdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0ODQ5N2YKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1PdXQuY3BwCkBAIC0wLDAgKzEsNTM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJTdHJlYW1PdXRIQUwiCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisjZGVmaW5lIEFUUkFDRV9UQUcgQVRSQUNFX1RBR19BVURJTworCisjaW5jbHVkZSA8bWVtb3J5PgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9hdWRpby5oPgorI2luY2x1ZGUgPHV0aWxzL1RyYWNlLmg+CisKKyNpbmNsdWRlICJTdHJlYW1PdXQuaCIKKyNpbmNsdWRlICJVdGlsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VGhyZWFkSW5mbzsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgV3JpdGVUaHJlYWQgOiBwdWJsaWMgVGhyZWFkIHsKKyAgIHB1YmxpYzoKKyAgICAvLyBXcml0ZVRocmVhZCdzIGxpZmVzcGFuIG5ldmVyIGV4Y2VlZHMgU3RyZWFtT3V0J3MgbGlmZXNwYW4uCisgICAgV3JpdGVUaHJlYWQoc3RkOjphdG9taWM8Ym9vbD4qIHN0b3AsIGF1ZGlvX3N0cmVhbV9vdXRfdCogc3RyZWFtLAorICAgICAgICAgICAgICAgIFN0cmVhbU91dDo6Q29tbWFuZE1RKiBjb21tYW5kTVEsIFN0cmVhbU91dDo6RGF0YU1RKiBkYXRhTVEsCisgICAgICAgICAgICAgICAgU3RyZWFtT3V0OjpTdGF0dXNNUSogc3RhdHVzTVEsIEV2ZW50RmxhZyogZWZHcm91cCkKKyAgICAgICAgOiBUaHJlYWQoZmFsc2UgLypjYW5DYWxsSmF2YSovKSwKKyAgICAgICAgICBtU3RvcChzdG9wKSwKKyAgICAgICAgICBtU3RyZWFtKHN0cmVhbSksCisgICAgICAgICAgbUNvbW1hbmRNUShjb21tYW5kTVEpLAorICAgICAgICAgIG1EYXRhTVEoZGF0YU1RKSwKKyAgICAgICAgICBtU3RhdHVzTVEoc3RhdHVzTVEpLAorICAgICAgICAgIG1FZkdyb3VwKGVmR3JvdXApLAorICAgICAgICAgIG1CdWZmZXIobnVsbHB0cikge30KKyAgICBib29sIGluaXQoKSB7CisgICAgICAgIG1CdWZmZXIucmVzZXQobmV3IChzdGQ6Om5vdGhyb3cpIHVpbnQ4X3RbbURhdGFNUS0+Z2V0UXVhbnR1bUNvdW50KCldKTsKKyAgICAgICAgcmV0dXJuIG1CdWZmZXIgIT0gbnVsbHB0cjsKKyAgICB9CisgICAgdmlydHVhbCB+V3JpdGVUaHJlYWQoKSB7fQorCisgICBwcml2YXRlOgorICAgIHN0ZDo6YXRvbWljPGJvb2w+KiBtU3RvcDsKKyAgICBhdWRpb19zdHJlYW1fb3V0X3QqIG1TdHJlYW07CisgICAgU3RyZWFtT3V0OjpDb21tYW5kTVEqIG1Db21tYW5kTVE7CisgICAgU3RyZWFtT3V0OjpEYXRhTVEqIG1EYXRhTVE7CisgICAgU3RyZWFtT3V0OjpTdGF0dXNNUSogbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gbUJ1ZmZlcjsKKyAgICBJU3RyZWFtT3V0OjpXcml0ZVN0YXR1cyBtU3RhdHVzOworCisgICAgYm9vbCB0aHJlYWRMb29wKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRvR2V0TGF0ZW5jeSgpOworICAgIHZvaWQgZG9HZXRQcmVzZW50YXRpb25Qb3NpdGlvbigpOworICAgIHZvaWQgZG9Xcml0ZSgpOworfTsKKwordm9pZCBXcml0ZVRocmVhZDo6ZG9Xcml0ZSgpIHsKKyAgICBjb25zdCBzaXplX3QgYXZhaWxUb1JlYWQgPSBtRGF0YU1RLT5hdmFpbGFibGVUb1JlYWQoKTsKKyAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6T0s7CisgICAgbVN0YXR1cy5yZXBseS53cml0dGVuID0gMDsKKyAgICBpZiAobURhdGFNUS0+cmVhZCgmbUJ1ZmZlclswXSwgYXZhaWxUb1JlYWQpKSB7CisgICAgICAgIHNzaXplX3Qgd3JpdGVSZXN1bHQgPSBtU3RyZWFtLT53cml0ZShtU3RyZWFtLCAmbUJ1ZmZlclswXSwgYXZhaWxUb1JlYWQpOworICAgICAgICBpZiAod3JpdGVSZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgbVN0YXR1cy5yZXBseS53cml0dGVuID0gd3JpdGVSZXN1bHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtU3RhdHVzLnJldHZhbCA9IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygid3JpdGUiLCB3cml0ZVJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgV3JpdGVUaHJlYWQ6OmRvR2V0UHJlc2VudGF0aW9uUG9zaXRpb24oKSB7CisgICAgbVN0YXR1cy5yZXR2YWwgPSBTdHJlYW1PdXQ6OmdldFByZXNlbnRhdGlvblBvc2l0aW9uSW1wbCgKKyAgICAgICAgbVN0cmVhbSwgJm1TdGF0dXMucmVwbHkucHJlc2VudGF0aW9uUG9zaXRpb24uZnJhbWVzLAorICAgICAgICAmbVN0YXR1cy5yZXBseS5wcmVzZW50YXRpb25Qb3NpdGlvbi50aW1lU3RhbXApOworfQorCit2b2lkIFdyaXRlVGhyZWFkOjpkb0dldExhdGVuY3koKSB7CisgICAgbVN0YXR1cy5yZXR2YWwgPSBSZXN1bHQ6Ok9LOworICAgIG1TdGF0dXMucmVwbHkubGF0ZW5jeU1zID0gbVN0cmVhbS0+Z2V0X2xhdGVuY3kobVN0cmVhbSk7Cit9CisKK2Jvb2wgV3JpdGVUaHJlYWQ6OnRocmVhZExvb3AoKSB7CisgICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJldHVybiBjb250cm9sIGJhY2sgdG8gdGhlIFRocmVhZCB1bnRpbCBpdAorICAgIC8vIGRlY2lkZXMgdG8gc3RvcCwKKyAgICAvLyBhcyB0aGUgVGhyZWFkIHVzZXMgbXV0ZXhlcywgYW5kIHRoaXMgY2FuIGxlYWQgdG8gcHJpb3JpdHkgaW52ZXJzaW9uLgorICAgIHdoaWxlICghc3RkOjphdG9taWNfbG9hZF9leHBsaWNpdChtU3RvcCwgc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSkpIHsKKyAgICAgICAgdWludDMyX3QgZWZTdGF0ZSA9IDA7CisgICAgICAgIG1FZkdyb3VwLT53YWl0KHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6Tk9UX0VNUFRZKSwKKyAgICAgICAgICAgICAgICAgICAgICAgJmVmU3RhdGUpOworICAgICAgICBpZiAoIShlZlN0YXRlICYKKyAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRU1QVFkpKSkgeworICAgICAgICAgICAgY29udGludWU7ICAvLyBOb3RoaW5nIHRvIGRvLgorICAgICAgICB9CisgICAgICAgIGlmICghbUNvbW1hbmRNUS0+cmVhZCgmbVN0YXR1cy5yZXBseVRvKSkgeworICAgICAgICAgICAgY29udGludWU7ICAvLyBOb3RoaW5nIHRvIGRvLgorICAgICAgICB9CisgICAgICAgIHN3aXRjaCAobVN0YXR1cy5yZXBseVRvKSB7CisgICAgICAgICAgICBjYXNlIElTdHJlYW1PdXQ6OldyaXRlQ29tbWFuZDo6V1JJVEU6CisgICAgICAgICAgICAgICAgZG9Xcml0ZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJU3RyZWFtT3V0OjpXcml0ZUNvbW1hbmQ6OkdFVF9QUkVTRU5UQVRJT05fUE9TSVRJT046CisgICAgICAgICAgICAgICAgZG9HZXRQcmVzZW50YXRpb25Qb3NpdGlvbigpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJU3RyZWFtT3V0OjpXcml0ZUNvbW1hbmQ6OkdFVF9MQVRFTkNZOgorICAgICAgICAgICAgICAgIGRvR2V0TGF0ZW5jeSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBBTE9HRSgiVW5rbm93biB3cml0ZSB0aHJlYWQgY29tbWFuZCBjb2RlICVkIiwgbVN0YXR1cy5yZXBseVRvKTsKKyAgICAgICAgICAgICAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW1TdGF0dXNNUS0+d3JpdGUoJm1TdGF0dXMpKSB7CisgICAgICAgICAgICBBTE9HRSgic3RhdHVzIG1lc3NhZ2UgcXVldWUgd3JpdGUgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgbUVmR3JvdXAtPndha2Uoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRlVMTCkpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAgLy8gbmFtZXNwYWNlCisKK1N0cmVhbU91dDo6U3RyZWFtT3V0KGNvbnN0IHNwPERldmljZT4mIGRldmljZSwgYXVkaW9fc3RyZWFtX291dF90KiBzdHJlYW0pCisgICAgOiBtSXNDbG9zZWQoZmFsc2UpLAorICAgICAgbURldmljZShkZXZpY2UpLAorICAgICAgbVN0cmVhbShzdHJlYW0pLAorICAgICAgbVN0cmVhbUNvbW1vbihuZXcgU3RyZWFtKCZzdHJlYW0tPmNvbW1vbikpLAorICAgICAgbVN0cmVhbU1tYXAobmV3IFN0cmVhbU1tYXA8YXVkaW9fc3RyZWFtX291dF90PihzdHJlYW0pKSwKKyAgICAgIG1FZkdyb3VwKG51bGxwdHIpLAorICAgICAgbVN0b3BXcml0ZVRocmVhZChmYWxzZSkge30KKworU3RyZWFtT3V0Ojp+U3RyZWFtT3V0KCkgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgY2xvc2UoKTsKKyAgICBpZiAobVdyaXRlVGhyZWFkLmdldCgpKSB7CisgICAgICAgIEFUUkFDRV9OQU1FKCJtV3JpdGVUaHJlYWQtPmpvaW4iKTsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gbVdyaXRlVGhyZWFkLT5qb2luKCk7CisgICAgICAgIEFMT0dFX0lGKHN0YXR1cywgIndyaXRlIHRocmVhZCBleGl0IGVycm9yOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICB9CisgICAgaWYgKG1FZkdyb3VwKSB7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IEV2ZW50RmxhZzo6ZGVsZXRlRXZlbnRGbGFnKCZtRWZHcm91cCk7CisgICAgICAgIEFMT0dFX0lGKHN0YXR1cywgIndyaXRlIE1RIGV2ZW50IGZsYWcgZGVsZXRpb24gZXJyb3I6ICVzIiwKKyAgICAgICAgICAgICAgICAgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBtQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtRGV2aWNlLT5jbG9zZU91dHB1dFN0cmVhbShtU3RyZWFtKTsKKyAgICBtU3RyZWFtID0gbnVsbHB0cjsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KK1JldHVybjx1aW50NjRfdD4gU3RyZWFtT3V0OjpnZXRGcmFtZVNpemUoKSB7CisgICAgcmV0dXJuIGF1ZGlvX3N0cmVhbV9vdXRfZnJhbWVfc2l6ZShtU3RyZWFtKTsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBTdHJlYW1PdXQ6OmdldEZyYW1lQ291bnQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEZyYW1lQ291bnQoKTsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBTdHJlYW1PdXQ6OmdldEJ1ZmZlclNpemUoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEJ1ZmZlclNpemUoKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBTdHJlYW1PdXQ6OmdldFNhbXBsZVJhdGUoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldFNhbXBsZVJhdGUoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoCisgICAgZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZUh6KSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZUh6KTsKK30KKworUmV0dXJuPEF1ZGlvQ2hhbm5lbE1hc2s+IFN0cmVhbU91dDo6Z2V0Q2hhbm5lbE1hc2soKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldENoYW5uZWxNYXNrKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1PdXQ6OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcygKKyAgICBnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0Q2hhbm5lbE1hc2sobWFzayk7Cit9CisKK1JldHVybjxBdWRpb0Zvcm1hdD4gU3RyZWFtT3V0OjpnZXRGb3JtYXQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEZvcm1hdCgpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRTdXBwb3J0ZWRGb3JtYXRzKGdldFN1cHBvcnRlZEZvcm1hdHNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkRm9ybWF0cyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c2V0Rm9ybWF0KEF1ZGlvRm9ybWF0IGZvcm1hdCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRGb3JtYXQoZm9ybWF0KTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0QXVkaW9Qcm9wZXJ0aWVzKGdldEF1ZGlvUHJvcGVydGllc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRBdWRpb1Byb3BlcnRpZXMoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OmFkZEVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5hZGRFZmZlY3QoZWZmZWN0SWQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnJlbW92ZUVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5yZW1vdmVFZmZlY3QoZWZmZWN0SWQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnN0YW5kYnkoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnN0YW5kYnkoKTsKK30KKworUmV0dXJuPEF1ZGlvRGV2aWNlPiBTdHJlYW1PdXQ6OmdldERldmljZSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0RGV2aWNlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c2V0RGV2aWNlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0RGV2aWNlKGFkZHJlc3MpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnNldENvbm5lY3RlZFN0YXRlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY29ubmVjdGVkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldENvbm5lY3RlZFN0YXRlKGFkZHJlc3MsIGNvbm5lY3RlZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c2V0SHdBdlN5bmModWludDMyX3QgaHdBdlN5bmMpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0SHdBdlN5bmMoaHdBdlN5bmMpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRQYXJhbWV0ZXJzKGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRQYXJhbWV0ZXJzKGtleXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzZXRQYXJhbWV0ZXJzKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmRlYnVnRHVtcChmZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6Y2xvc2UoKSB7CisgICAgaWYgKG1Jc0Nsb3NlZCkgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICBtSXNDbG9zZWQgPSB0cnVlOworICAgIGlmIChtV3JpdGVUaHJlYWQuZ2V0KCkpIHsKKyAgICAgICAgbVN0b3BXcml0ZVRocmVhZC5zdG9yZSh0cnVlLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKKyAgICB9CisgICAgaWYgKG1FZkdyb3VwKSB7CisgICAgICAgIG1FZkdyb3VwLT53YWtlKHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6Tk9UX0VNUFRZKSk7CisgICAgfQorICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXQgZm9sbG93LgorUmV0dXJuPHVpbnQzMl90PiBTdHJlYW1PdXQ6OmdldExhdGVuY3koKSB7CisgICAgcmV0dXJuIG1TdHJlYW0tPmdldF9sYXRlbmN5KG1TdHJlYW0pOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnNldFZvbHVtZShmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCkgeworICAgIGlmIChtU3RyZWFtLT5zZXRfdm9sdW1lID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKCFpc0dhaW5Ob3JtYWxpemVkKGxlZnQpKSB7CisgICAgICAgIEFMT0dXKCJDYW4gbm90IHNldCBhIHN0cmVhbSBvdXRwdXQgdm9sdW1lIHslZiwgJWZ9IG91dHNpZGUgWzAsMV0iLCBsZWZ0LAorICAgICAgICAgICAgICByaWdodCk7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgIH0KKyAgICByZXR1cm4gU3RyZWFtOjphbmFseXplU3RhdHVzKCJzZXRfdm9sdW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TdHJlYW0tPnNldF92b2x1bWUobVN0cmVhbSwgbGVmdCwgcmlnaHQpKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6cHJlcGFyZUZvcldyaXRpbmcodWludDMyX3QgZnJhbWVTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZnJhbWVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVwYXJlRm9yV3JpdGluZ19jYiBfaGlkbF9jYikgeworICAgIHN0YXR1c190IHN0YXR1czsKKyAgICBUaHJlYWRJbmZvIHRocmVhZEluZm8gPSB7MCwgMH07CisKKyAgICAvLyBXcmFwIHRoZSBfaGlkbF9jYiB0byByZXR1cm4gYW4gZXJyb3IKKyAgICBhdXRvIHNlbmRFcnJvciA9IFt0aGlzLCAmdGhyZWFkSW5mbywgJl9oaWRsX2NiXShSZXN1bHQgcmVzdWx0KSB7CisgICAgICAgIF9oaWRsX2NiKHJlc3VsdCwgQ29tbWFuZE1ROjpEZXNjcmlwdG9yKCksIERhdGFNUTo6RGVzY3JpcHRvcigpLAorICAgICAgICAgICAgICAgICBTdGF0dXNNUTo6RGVzY3JpcHRvcigpLCB0aHJlYWRJbmZvKTsKKworICAgIH07CisKKyAgICAvLyBDcmVhdGUgbWVzc2FnZSBxdWV1ZXMuCisgICAgaWYgKG1EYXRhTVEpIHsKKyAgICAgICAgQUxPR0UoInRoZSBjbGllbnQgYXR0ZW1wdHMgdG8gY2FsbCBwcmVwYXJlRm9yV3JpdGluZyB0d2ljZSIpOworICAgICAgICBzZW5kRXJyb3IoUmVzdWx0OjpJTlZBTElEX1NUQVRFKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRNUT4gdGVtcENvbW1hbmRNUShuZXcgQ29tbWFuZE1RKDEpKTsKKworICAgIC8vIENoZWNrIGZyYW1lU2l6ZSBhbmQgZnJhbWVzQ291bnQKKyAgICBpZiAoZnJhbWVTaXplID09IDAgfHwgZnJhbWVzQ291bnQgPT0gMCkgeworICAgICAgICBBTE9HRSgiTnVsbCBmcmFtZVNpemUgKCV1KSBvciBmcmFtZXNDb3VudCAoJXUpIiwgZnJhbWVTaXplLAorICAgICAgICAgICAgICBmcmFtZXNDb3VudCk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgLy8gQSBtZXNzYWdlIHF1ZXVlIGFzc2VydHMgaWYgaXQgY2FuIG5vdCBoYW5kbGUgdGhlIHJlcXVlc3RlZCBidWZmZXIsCisgICAgLy8gdGh1cyB0aGUgY2xpZW50IGhhcyB0byBndWVzcyB0aGUgbWF4aW11bSBzaXplIGl0IGNhbiBoYW5kbGUKKyAgICBzaXplX3QgbWV0YWRhdGFPdmVyaGVhZCA9CisgICAgICAgIDEwMDAwMDsgIC8vIEFyYml0cmFyeSBtYXJnaW4gZm9yIHRoZSBvdmVyaGVhZCBvZiBhIG1lc3NhZ2UgcXVldWUKKyAgICBpZiAoZnJhbWVTaXplID4KKyAgICAgICAgKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkgLSBtZXRhZGF0YU92ZXJoZWFkKSAvIGZyYW1lc0NvdW50KSB7CisgICAgICAgIEFMT0dFKCJCdWZmZXIgdG9vIGJpZzogJXUqJXUgYnl0ZXMgY2FuIG5vdCBmaXQgaW4gYSBtZXNzYWdlIHF1ZXVlIiwKKyAgICAgICAgICAgICAgZnJhbWVTaXplLCBmcmFtZXNDb3VudCk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFNUT4gdGVtcERhdGFNUSgKKyAgICAgICAgbmV3IERhdGFNUShmcmFtZVNpemUgKiBmcmFtZXNDb3VudCwgdHJ1ZSAvKiBFdmVudEZsYWcgKi8pKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gdGVtcFN0YXR1c01RKG5ldyBTdGF0dXNNUSgxKSk7CisgICAgaWYgKCF0ZW1wQ29tbWFuZE1RLT5pc1ZhbGlkKCkgfHwgIXRlbXBEYXRhTVEtPmlzVmFsaWQoKSB8fAorICAgICAgICAhdGVtcFN0YXR1c01RLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgQUxPR0VfSUYoIXRlbXBDb21tYW5kTVEtPmlzVmFsaWQoKSwgImNvbW1hbmQgTVEgaXMgaW52YWxpZCIpOworICAgICAgICBBTE9HRV9JRighdGVtcERhdGFNUS0+aXNWYWxpZCgpLCAiZGF0YSBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIEFMT0dFX0lGKCF0ZW1wU3RhdHVzTVEtPmlzVmFsaWQoKSwgInN0YXR1cyBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgRXZlbnRGbGFnKiB0ZW1wUmF3RWZHcm91cHt9OworICAgIHN0YXR1cyA9IEV2ZW50RmxhZzo6Y3JlYXRlRXZlbnRGbGFnKHRlbXBEYXRhTVEtPmdldEV2ZW50RmxhZ1dvcmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGVtcFJhd0VmR3JvdXApOworICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudEZsYWcsIHZvaWQgKCopKEV2ZW50RmxhZyopPiB0ZW1wRWxmR3JvdXAoCisgICAgICAgIHRlbXBSYXdFZkdyb3VwLCBbXShhdXRvKiBlZikgeyBFdmVudEZsYWc6OmRlbGV0ZUV2ZW50RmxhZygmZWYpOyB9KTsKKyAgICBpZiAoc3RhdHVzICE9IE9LIHx8ICF0ZW1wRWxmR3JvdXApIHsKKyAgICAgICAgQUxPR0UoImZhaWxlZCBjcmVhdGluZyBldmVudCBmbGFnIGZvciBkYXRhIE1ROiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIC8vIENyZWF0ZSBhbmQgbGF1bmNoIHRoZSB0aHJlYWQuCisgICAgYXV0byB0ZW1wV3JpdGVUaHJlYWQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdyaXRlVGhyZWFkPigKKyAgICAgICAgJm1TdG9wV3JpdGVUaHJlYWQsIG1TdHJlYW0sIHRlbXBDb21tYW5kTVEuZ2V0KCksIHRlbXBEYXRhTVEuZ2V0KCksCisgICAgICAgIHRlbXBTdGF0dXNNUS5nZXQoKSwgdGVtcEVsZkdyb3VwLmdldCgpKTsKKyAgICBpZiAoIXRlbXBXcml0ZVRocmVhZC0+aW5pdCgpKSB7CisgICAgICAgIEFMT0dXKCJmYWlsZWQgdG8gc3RhcnQgd3JpdGVyIHRocmVhZDogJXMiLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RhdHVzID0gdGVtcFdyaXRlVGhyZWFkLT5ydW4oIndyaXRlciIsIFBSSU9SSVRZX1VSR0VOVF9BVURJTyk7CisgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICBBTE9HVygiZmFpbGVkIHRvIHN0YXJ0IHdyaXRlciB0aHJlYWQ6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBzZW5kRXJyb3IoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbUNvbW1hbmRNUSA9IHN0ZDo6bW92ZSh0ZW1wQ29tbWFuZE1RKTsKKyAgICBtRGF0YU1RID0gc3RkOjptb3ZlKHRlbXBEYXRhTVEpOworICAgIG1TdGF0dXNNUSA9IHN0ZDo6bW92ZSh0ZW1wU3RhdHVzTVEpOworICAgIG1Xcml0ZVRocmVhZCA9IHRlbXBXcml0ZVRocmVhZC5yZWxlYXNlKCk7CisgICAgbUVmR3JvdXAgPSB0ZW1wRWxmR3JvdXAucmVsZWFzZSgpOworICAgIHRocmVhZEluZm8ucGlkID0gZ2V0cGlkKCk7CisgICAgdGhyZWFkSW5mby50aWQgPSBtV3JpdGVUaHJlYWQtPmdldFRpZCgpOworICAgIF9oaWRsX2NiKFJlc3VsdDo6T0ssICptQ29tbWFuZE1RLT5nZXREZXNjKCksICptRGF0YU1RLT5nZXREZXNjKCksCisgICAgICAgICAgICAgKm1TdGF0dXNNUS0+Z2V0RGVzYygpLCB0aHJlYWRJbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRSZW5kZXJQb3NpdGlvbihnZXRSZW5kZXJQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIHVpbnQzMl90IGhhbERzcEZyYW1lczsKKyAgICBSZXN1bHQgcmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKAorICAgICAgICAiZ2V0X3JlbmRlcl9wb3NpdGlvbiIsCisgICAgICAgIG1TdHJlYW0tPmdldF9yZW5kZXJfcG9zaXRpb24obVN0cmVhbSwgJmhhbERzcEZyYW1lcykpOworICAgIF9oaWRsX2NiKHJldHZhbCwgaGFsRHNwRnJhbWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXROZXh0V3JpdGVUaW1lc3RhbXAoCisgICAgZ2V0TmV4dFdyaXRlVGltZXN0YW1wX2NiIF9oaWRsX2NiKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIGludDY0X3QgdGltZXN0YW1wVXMgPSAwOworICAgIGlmIChtU3RyZWFtLT5nZXRfbmV4dF93cml0ZV90aW1lc3RhbXAgIT0gTlVMTCkgeworICAgICAgICByZXR2YWwgPSBTdHJlYW06OmFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAiZ2V0X25leHRfd3JpdGVfdGltZXN0YW1wIiwKKyAgICAgICAgICAgIG1TdHJlYW0tPmdldF9uZXh0X3dyaXRlX3RpbWVzdGFtcChtU3RyZWFtLCAmdGltZXN0YW1wVXMpKTsKKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCB0aW1lc3RhbXBVcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzZXRDYWxsYmFjayhjb25zdCBzcDxJU3RyZWFtT3V0Q2FsbGJhY2s+JiBjYWxsYmFjaykgeworICAgIGlmIChtU3RyZWFtLT5zZXRfY2FsbGJhY2sgPT0gTlVMTCkgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICBpbnQgcmVzdWx0ID0gbVN0cmVhbS0+c2V0X2NhbGxiYWNrKG1TdHJlYW0sIFN0cmVhbU91dDo6YXN5bmNDYWxsYmFjaywgdGhpcyk7CisgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgIG1DYWxsYmFjayA9IGNhbGxiYWNrOworICAgIH0KKyAgICByZXR1cm4gU3RyZWFtOjphbmFseXplU3RhdHVzKCJzZXRfY2FsbGJhY2siLCByZXN1bHQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OmNsZWFyQ2FsbGJhY2soKSB7CisgICAgaWYgKG1TdHJlYW0tPnNldF9jYWxsYmFjayA9PSBOVUxMKSByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgIG1DYWxsYmFjay5jbGVhcigpOworICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCisvLyBzdGF0aWMKK2ludCBTdHJlYW1PdXQ6OmFzeW5jQ2FsbGJhY2soc3RyZWFtX2NhbGxiYWNrX2V2ZW50X3QgZXZlbnQsIHZvaWQqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBjb29raWUpIHsKKyAgICB3cDxTdHJlYW1PdXQ+IHdlYWtTZWxmKHJlaW50ZXJwcmV0X2Nhc3Q8U3RyZWFtT3V0Kj4oY29va2llKSk7CisgICAgc3A8U3RyZWFtT3V0PiBzZWxmID0gd2Vha1NlbGYucHJvbW90ZSgpOworICAgIGlmIChzZWxmID09IG51bGxwdHIgfHwgc2VsZi0+bUNhbGxiYWNrID09IG51bGxwdHIpIHJldHVybiAwOworICAgIEFMT0dWKCJhc3luY0NhbGxiYWNrKCkgZXZlbnQgJWQiLCBldmVudCk7CisgICAgc3dpdGNoIChldmVudCkgeworICAgICAgICBjYXNlIFNUUkVBTV9DQktfRVZFTlRfV1JJVEVfUkVBRFk6CisgICAgICAgICAgICBzZWxmLT5tQ2FsbGJhY2stPm9uV3JpdGVSZWFkeSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU1RSRUFNX0NCS19FVkVOVF9EUkFJTl9SRUFEWToKKyAgICAgICAgICAgIHNlbGYtPm1DYWxsYmFjay0+b25EcmFpblJlYWR5KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTVFJFQU1fQ0JLX0VWRU5UX0VSUk9SOgorICAgICAgICAgICAgc2VsZi0+bUNhbGxiYWNrLT5vbkVycm9yKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dXKCJhc3luY0NhbGxiYWNrKCkgdW5rbm93biBldmVudCAlZCIsIGV2ZW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6c3VwcG9ydHNQYXVzZUFuZFJlc3VtZSgKKyAgICBzdXBwb3J0c1BhdXNlQW5kUmVzdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgX2hpZGxfY2IobVN0cmVhbS0+cGF1c2UgIT0gTlVMTCwgbVN0cmVhbS0+cmVzdW1lICE9IE5VTEwpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6cGF1c2UoKSB7CisgICAgcmV0dXJuIG1TdHJlYW0tPnBhdXNlICE9IE5VTEwKKyAgICAgICAgICAgICAgID8gU3RyZWFtOjphbmFseXplU3RhdHVzKCJwYXVzZSIsIG1TdHJlYW0tPnBhdXNlKG1TdHJlYW0pKQorICAgICAgICAgICAgICAgOiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6cmVzdW1lKCkgeworICAgIHJldHVybiBtU3RyZWFtLT5yZXN1bWUgIT0gTlVMTAorICAgICAgICAgICAgICAgPyBTdHJlYW06OmFuYWx5emVTdGF0dXMoInJlc3VtZSIsIG1TdHJlYW0tPnJlc3VtZShtU3RyZWFtKSkKKyAgICAgICAgICAgICAgIDogUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCitSZXR1cm48Ym9vbD4gU3RyZWFtT3V0OjpzdXBwb3J0c0RyYWluKCkgeworICAgIHJldHVybiBtU3RyZWFtLT5kcmFpbiAhPSBOVUxMOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OmRyYWluKEF1ZGlvRHJhaW4gdHlwZSkgeworICAgIHJldHVybiBtU3RyZWFtLT5kcmFpbiAhPSBOVUxMCisgICAgICAgICAgICAgICA/IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygKKyAgICAgICAgICAgICAgICAgICAgICJkcmFpbiIsCisgICAgICAgICAgICAgICAgICAgICBtU3RyZWFtLT5kcmFpbihtU3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9fZHJhaW5fdHlwZV90Pih0eXBlKSkpCisgICAgICAgICAgICAgICA6IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpmbHVzaCgpIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+Zmx1c2ggIT0gTlVMTAorICAgICAgICAgICAgICAgPyBTdHJlYW06OmFuYWx5emVTdGF0dXMoImZsdXNoIiwgbVN0cmVhbS0+Zmx1c2gobVN0cmVhbSkpCisgICAgICAgICAgICAgICA6IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworLy8gc3RhdGljCitSZXN1bHQgU3RyZWFtT3V0OjpnZXRQcmVzZW50YXRpb25Qb3NpdGlvbkltcGwoYXVkaW9fc3RyZWFtX291dF90KiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QqIGZyYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lU3BlYyogdGltZVN0YW1wKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIGlmIChzdHJlYW0tPmdldF9wcmVzZW50YXRpb25fcG9zaXRpb24gPT0gTlVMTCkgcmV0dXJuIHJldHZhbDsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgaGFsVGltZVN0YW1wOworICAgIHJldHZhbCA9IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygKKyAgICAgICAgImdldF9wcmVzZW50YXRpb25fcG9zaXRpb24iLAorICAgICAgICBzdHJlYW0tPmdldF9wcmVzZW50YXRpb25fcG9zaXRpb24oc3RyZWFtLCBmcmFtZXMsICZoYWxUaW1lU3RhbXApLAorICAgICAgICAvLyBEb24ndCBsb2dzcGFtIG9uIEVJTlZBTC0taXQncyBub3JtYWwgZm9yIGdldF9wcmVzZW50YXRpb25fcG9zaXRpb24KKyAgICAgICAgLy8gdG8gcmV0dXJuIGl0IHNvbWV0aW1lcy4gRUFHQUlOIG1heSBiZSByZXR1cm5lZCBieSBBMkRQIGF1ZGlvIEhBTAorICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgRUlOVkFMLCBFQUdBSU4pOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICB0aW1lU3RhbXAtPnR2U2VjID0gaGFsVGltZVN0YW1wLnR2X3NlYzsKKyAgICAgICAgdGltZVN0YW1wLT50dk5TZWMgPSBoYWxUaW1lU3RhbXAudHZfbnNlYzsKKyAgICB9CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0UHJlc2VudGF0aW9uUG9zaXRpb24oCisgICAgZ2V0UHJlc2VudGF0aW9uUG9zaXRpb25fY2IgX2hpZGxfY2IpIHsKKyAgICB1aW50NjRfdCBmcmFtZXMgPSAwOworICAgIFRpbWVTcGVjIHRpbWVTdGFtcCA9IHswLCAwfTsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0UHJlc2VudGF0aW9uUG9zaXRpb25JbXBsKG1TdHJlYW0sICZmcmFtZXMsICZ0aW1lU3RhbXApOworICAgIF9oaWRsX2NiKHJldHZhbCwgZnJhbWVzLCB0aW1lU3RhbXApOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c3RhcnQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5zdGFydCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnN0b3AoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5zdG9wKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1PdXQ6OmNyZWF0ZU1tYXBCdWZmZXIoaW50MzJfdCBtaW5TaXplRnJhbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVNbWFwQnVmZmVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5jcmVhdGVNbWFwQnVmZmVyKAorICAgICAgICBtaW5TaXplRnJhbWVzLCBhdWRpb19zdHJlYW1fb3V0X2ZyYW1lX3NpemUobVN0cmVhbSksIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0TW1hcFBvc2l0aW9uKGdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtTW1hcC0+Z2V0TW1hcFBvc2l0aW9uKF9oaWRsX2NiKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1PdXQuaCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbU91dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MzUyYmMKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1PdXQuaApAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTU9VVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1PVVRfSAorCisjaW5jbHVkZSA8YXRvbWljPgorI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8Zm1xL0V2ZW50RmxhZy5oPgorI2luY2x1ZGUgPGZtcS9NZXNzYWdlUXVldWUuaD4KKyNpbmNsdWRlIDx1dGlscy9UaHJlYWQuaD4KKworI2luY2x1ZGUgIkRldmljZS5oIgorI2luY2x1ZGUgIlN0cmVhbS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ2hhbm5lbE1hc2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRm9ybWF0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OkF1ZGlvRHJhaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbU91dENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpUaW1lU3BlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFN0cmVhbU91dCA6IHB1YmxpYyBJU3RyZWFtT3V0IHsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTxXcml0ZUNvbW1hbmQsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+IENvbW1hbmRNUTsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTx1aW50OF90LCBrU3luY2hyb25pemVkUmVhZFdyaXRlPiBEYXRhTVE7CisgICAgdHlwZWRlZiBNZXNzYWdlUXVldWU8V3JpdGVTdGF0dXMsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+IFN0YXR1c01ROworCisgICAgU3RyZWFtT3V0KGNvbnN0IHNwPERldmljZT4mIGRldmljZSwgYXVkaW9fc3RyZWFtX291dF90KiBzdHJlYW0pOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KKyAgICBSZXR1cm48dWludDY0X3Q+IGdldEZyYW1lU2l6ZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDY0X3Q+IGdldEZyYW1lQ291bnQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRCdWZmZXJTaXplKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50MzJfdD4gZ2V0U2FtcGxlUmF0ZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRTYW1wbGVSYXRlKHVpbnQzMl90IHNhbXBsZVJhdGVIeikgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0NoYW5uZWxNYXNrPiBnZXRDaGFubmVsTWFzaygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKGdldFN1cHBvcnRlZENoYW5uZWxNYXNrc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENoYW5uZWxNYXNrKEF1ZGlvQ2hhbm5lbE1hc2sgbWFzaykgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0Zvcm1hdD4gZ2V0Rm9ybWF0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRGb3JtYXRzKGdldFN1cHBvcnRlZEZvcm1hdHNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRGb3JtYXQoQXVkaW9Gb3JtYXQgZm9ybWF0KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1ZGlvUHJvcGVydGllcyhnZXRBdWRpb1Byb3BlcnRpZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBhZGRFZmZlY3QodWludDY0X3QgZWZmZWN0SWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZW1vdmVFZmZlY3QodWludDY0X3QgZWZmZWN0SWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdGFuZGJ5KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0RldmljZT4gZ2V0RGV2aWNlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERldmljZShjb25zdCBEZXZpY2VBZGRyZXNzJiBhZGRyZXNzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29ubmVjdGVkU3RhdGUoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcywgYm9vbCBjb25uZWN0ZWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRId0F2U3luYyh1aW50MzJfdCBod0F2U3luYykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXJzKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLCBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlKCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtT3V0IGZvbGxvdy4KKyAgICBSZXR1cm48dWludDMyX3Q+IGdldExhdGVuY3koKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Vm9sdW1lKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JXcml0aW5nKAorICAgICAgICAgICAgdWludDMyX3QgZnJhbWVTaXplLCB1aW50MzJfdCBmcmFtZXNDb3VudCwgcHJlcGFyZUZvcldyaXRpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UmVuZGVyUG9zaXRpb24oZ2V0UmVuZGVyUG9zaXRpb25fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TmV4dFdyaXRlVGltZXN0YW1wKGdldE5leHRXcml0ZVRpbWVzdGFtcF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENhbGxiYWNrKGNvbnN0IHNwPElTdHJlYW1PdXRDYWxsYmFjaz4mIGNhbGxiYWNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xlYXJDYWxsYmFjaygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc3VwcG9ydHNQYXVzZUFuZFJlc3VtZShzdXBwb3J0c1BhdXNlQW5kUmVzdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcGF1c2UoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzdW1lKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzdXBwb3J0c0RyYWluKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRyYWluKEF1ZGlvRHJhaW4gdHlwZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGZsdXNoKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQcmVzZW50YXRpb25Qb3NpdGlvbihnZXRQcmVzZW50YXRpb25Qb3NpdGlvbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RvcCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcywgY3JlYXRlTW1hcEJ1ZmZlcl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1tYXBQb3NpdGlvbihnZXRNbWFwUG9zaXRpb25fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgc3RhdGljIFJlc3VsdCBnZXRQcmVzZW50YXRpb25Qb3NpdGlvbkltcGwoCisgICAgICAgICAgICBhdWRpb19zdHJlYW1fb3V0X3QgKnN0cmVhbSwgdWludDY0X3QgKmZyYW1lcywgVGltZVNwZWMgKnRpbWVTdGFtcCk7CisKKyAgcHJpdmF0ZToKKyAgICBib29sIG1Jc0Nsb3NlZDsKKyAgICBjb25zdCBzcDxEZXZpY2U+IG1EZXZpY2U7CisgICAgYXVkaW9fc3RyZWFtX291dF90ICptU3RyZWFtOworICAgIGNvbnN0IHNwPFN0cmVhbT4gbVN0cmVhbUNvbW1vbjsKKyAgICBjb25zdCBzcDxTdHJlYW1NbWFwPGF1ZGlvX3N0cmVhbV9vdXRfdD4+IG1TdHJlYW1NbWFwOworICAgIHNwPElTdHJlYW1PdXRDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kTVE+IG1Db21tYW5kTVE7CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFNUT4gbURhdGFNUTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3RhdHVzTVE+IG1TdGF0dXNNUTsKKyAgICBFdmVudEZsYWcqIG1FZkdyb3VwOworICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1TdG9wV3JpdGVUaHJlYWQ7CisgICAgc3A8VGhyZWFkPiBtV3JpdGVUaHJlYWQ7CisKKyAgICB2aXJ0dWFsIH5TdHJlYW1PdXQoKTsKKworICAgIHN0YXRpYyBpbnQgYXN5bmNDYWxsYmFjayhzdHJlYW1fY2FsbGJhY2tfZXZlbnRfdCBldmVudCwgdm9pZCAqcGFyYW0sIHZvaWQgKmNvb2tpZSk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfU1RSRUFNT1VUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1V0aWwuaCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1V0aWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmVlYTUwCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvVXRpbC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9VVElMX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1VUSUxfSAorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8qKiBAcmV0dXJuIHRydWUgaWYgZ2FpbiBpcyBiZXR3ZWVuIDAgYW5kIDEgaW5jbHVkZWQuICovCitjb25zdGV4cHIgYm9vbCBpc0dhaW5Ob3JtYWxpemVkKGZsb2F0IGdhaW4pIHsKKyAgICByZXR1cm4gZ2FpbiA+PSAwLjAgJiYgZ2FpbiA8PSAxLjA7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9VVElMX0gKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wLXNlcnZpY2UucmMgYi9hdWRpby8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlYWY3MWIKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsMTEgQEAKK3NlcnZpY2UgYXVkaW8taGFsLTItMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBhdWRpb3NlcnZlcgorICAgICMgbWVkaWEgZ2lkIG5lZWRlZCBmb3IgL2Rldi9mbSAocmFkaW8pIGFuZCBmb3IgL2RhdGEvbWlzYy9tZWRpYSAodGVlKQorICAgIGdyb3VwIGF1ZGlvIGNhbWVyYSBkcm1ycGMgaW5ldCBtZWRpYSBtZWRpYWRybSBuZXRfYnQgbmV0X2J0X2FkbWluIG5ldF9id19hY2N0CisgICAgaW9wcmlvIHJ0IDQKKyAgICB3cml0ZXBpZCAvZGV2L2NwdXNldC9mb3JlZ3JvdW5kL3Rhc2tzIC9kZXYvc3R1bmUvZm9yZWdyb3VuZC90YXNrcworICAgICMgYXVkaW9mbGluZ2VyIHJlc3RhcnRzIGl0c2VsZiB3aGVuIGl0IGxvc2VzIGNvbm5lY3Rpb24gd2l0aCB0aGUgaGFsCisgICAgIyBhbmQgaXRzIC5yYyBmaWxlIGhhcyBhbiAib25yZXN0YXJ0IHJlc3RhcnQgYXVkaW8taGFsIiBydWxlLCB0aHVzCisgICAgIyBhbiBhZGRpdGlvbmFsIGF1dG8tcmVzdGFydCBmcm9tIHRoZSBpbml0IHByb2Nlc3MgaXNuJ3QgbmVlZGVkLgorICAgIG9uZXNob3QKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2YyOGQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImF1ZGlvaGFsc2VydmljZSIKKworI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlc0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdHNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJIdy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWd1cmVScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmpvaW5ScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0c0ZhY3Rvcnk7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2VzRmFjdG9yeTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OklTb3VuZFRyaWdnZXJIdzsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpyZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvID0gYW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOworCisjaWZkZWYgVEFSR0VUX1VTRVNfQkNSQURJT19GVVRVUkVfRkVBVFVSRVMKK3N0YXRpYyBjb25zdCBib29sIHVzZUJyb2FkY2FzdFJhZGlvRnV0dXJlRmVhdHVyZXMgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIHVzZUJyb2FkY2FzdFJhZGlvRnV0dXJlRmVhdHVyZXMgPSBmYWxzZTsKKyNlbmRpZgorCit1c2luZyBhbmRyb2lkOjpPSzsKKworaW50IG1haW4oaW50IC8qIGFyZ2MgKi8sIGNoYXIqIC8qIGFyZ3YgKi8gW10pIHsKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDE2LCB0cnVlIC8qY2FsbGVyV2lsbEpvaW4qLyk7CisgICAgYW5kcm9pZDo6c3RhdHVzX3Qgc3RhdHVzOworICAgIHN0YXR1cyA9IHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SURldmljZXNGYWN0b3J5PigpOworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc3RhdHVzICE9IE9LLCAiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgYXVkaW8gc2VydmljZTogJWQiLCBzdGF0dXMpOworICAgIHN0YXR1cyA9IHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUVmZmVjdHNGYWN0b3J5PigpOworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc3RhdHVzICE9IE9LLCAiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgYXVkaW8gZWZmZWN0cyBzZXJ2aWNlOiAlZCIsIHN0YXR1cyk7CisgICAgLy8gU291bmR0cmlnZ2VyIGFuZCBGTSByYWRpbyBtaWdodCBiZSBub3QgcHJlc2VudC4KKyAgICBzdGF0dXMgPSByZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElTb3VuZFRyaWdnZXJIdz4oKTsKKyAgICBBTE9HRV9JRihzdGF0dXMgIT0gT0ssICJFcnJvciB3aGlsZSByZWdpc3RlcmluZyBzb3VuZHRyaWdnZXIgc2VydmljZTogJWQiLCBzdGF0dXMpOworICAgIGlmICh1c2VCcm9hZGNhc3RSYWRpb0Z1dHVyZUZlYXR1cmVzKSB7CisgICAgICAgIHN0YXR1cyA9IHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248CisgICAgICAgICAgICBicm9hZGNhc3RyYWRpbzo6VjFfMTo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeT4oKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSByZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPAorICAgICAgICAgICAgYnJvYWRjYXN0cmFkaW86OlYxXzA6OklCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk+KCk7CisgICAgfQorICAgIEFMT0dFX0lGKHN0YXR1cyAhPSBPSywgIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIGZtIHJhZGlvIHNlcnZpY2U6ICVkIiwgc3RhdHVzKTsKKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvdHlwZXMuaGFsIGIvYXVkaW8vMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzExOGMyCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CisKK2VudW0gUmVzdWx0IDogaW50MzJfdCB7CisgICAgT0ssCisgICAgTk9UX0lOSVRJQUxJWkVELAorICAgIElOVkFMSURfQVJHVU1FTlRTLAorICAgIElOVkFMSURfU1RBVEUsCisgICAgTk9UX1NVUFBPUlRFRAorfTsKKworQGV4cG9ydChuYW1lPSJhdWRpb19kcmFpbl90eXBlX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX0RSQUlOXyIpCitlbnVtIEF1ZGlvRHJhaW4gOiBpbnQzMl90IHsKKyAgICAvKiogZHJhaW4oKSByZXR1cm5zIHdoZW4gYWxsIGRhdGEgaGFzIGJlZW4gcGxheWVkLiAqLworICAgIEFMTCwKKyAgICAvKioKKyAgICAgKiBkcmFpbigpIHJldHVybnMgYSBzaG9ydCB0aW1lIGJlZm9yZSBhbGwgZGF0YSBmcm9tIHRoZSBjdXJyZW50IHRyYWNrIGhhcworICAgICAqIGJlZW4gcGxheWVkIHRvIGdpdmUgdGltZSBmb3IgZ2FwbGVzcyB0cmFjayBzd2l0Y2guCisgICAgICovCisgICAgRUFSTFlfTk9USUZZCit9OworCisvKioKKyAqIEEgc3Vic3RpdHV0ZSBmb3IgUE9TSVggdGltZXNwZWMuCisgKi8KK3N0cnVjdCBUaW1lU3BlYyB7CisgICAgdWludDY0X3QgdHZTZWM7ICAgLy8gc2Vjb25kcworICAgIHVpbnQ2NF90IHR2TlNlYzsgIC8vIG5hbm9zZWNvbmRzCit9OworCisvKioKKyAqIElFRUUgODAyIE1BQyBhZGRyZXNzLgorICovCit0eXBlZGVmIHVpbnQ4X3RbNl0gTWFjQWRkcmVzczsKKworc3RydWN0IFBhcmFtZXRlclZhbHVlIHsKKyAgICBzdHJpbmcga2V5OworICAgIHN0cmluZyB2YWx1ZTsKK307CisKKy8qKgorICogU3BlY2lmaWVzIGEgZGV2aWNlIGluIGNhc2Ugd2hlbiBzZXZlcmFsIGRldmljZXMgb2YgdGhlIHNhbWUgdHlwZQorICogY2FuIGJlIGNvbm5lY3RlZCAoZS5nLiBCVCBBMkRQLCBVU0IpLgorICovCitzdHJ1Y3QgRGV2aWNlQWRkcmVzcyB7CisgICAgQXVkaW9EZXZpY2UgZGV2aWNlOyAgLy8gZGlzY3JpbWluYXRvcgorICAgIHVuaW9uIEFkZHJlc3MgeworICAgICAgICBNYWNBZGRyZXNzIG1hYzsgICAgIC8vIHVzZWQgZm9yIEJMVUVUT09USF9BMkRQXyoKKyAgICAgICAgdWludDhfdFs0XSBpcHY0OyAgICAvLyB1c2VkIGZvciBJUAorICAgICAgICBzdHJ1Y3QgQWxzYSB7CisgICAgICAgICAgICBpbnQzMl90IGNhcmQ7CisgICAgICAgICAgICBpbnQzMl90IGRldmljZTsKKyAgICAgICAgfSBhbHNhOyAgICAgICAgICAgICAvLyB1c2VkIGZvciBVU0JfKgorICAgIH0gYWRkcmVzczsKKyAgICBzdHJpbmcgYnVzQWRkcmVzczsgICAgICAvLyB1c2VkIGZvciBCVVMKKyAgICBzdHJpbmcgclN1Ym1peEFkZHJlc3M7ICAvLyB1c2VkIGZvciBSRU1PVEVfU1VCTUlYCit9OworCisvKioKKyAqIE1tYXAgYnVmZmVyIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgSVN0cmVhbS5jcmVhdGVNbWFwQnVmZmVyKCkuCisgKiBVc2VkIGJ5IHN0cmVhbXMgb3BlbmVkIGluIG1tYXAgbW9kZS4KKyAqLworc3RydWN0IE1tYXBCdWZmZXJJbmZvIHsKKyAgICBtZW1vcnkgIHNoYXJlZE1lbW9yeTsgICAgICAgICAvLyBtbWFwIG1lbW9yeSBidWZmZXIKKyAgICBpbnQzMl90IGJ1ZmZlclNpemVGcmFtZXM7ICAgICAvLyB0b3RhbCBidWZmZXIgc2l6ZSBpbiBmcmFtZXMKKyAgICBpbnQzMl90IGJ1cnN0U2l6ZUZyYW1lczsgICAgICAvLyB0cmFuc2ZlciBzaXplIGdyYW51bGFyaXR5IGluIGZyYW1lcworfTsKKworLyoqCisgKiBNbWFwIGJ1ZmZlciByZWFkL3dyaXRlIHBvc2l0aW9uIHJldHVybmVkIGJ5IElTdHJlYW0uZ2V0TW1hcFBvc2l0aW9uKCkuCisgKiBVc2VkIGJ5IHN0cmVhbXMgb3BlbmVkIGluIG1tYXAgbW9kZS4KKyAqLworc3RydWN0IE1tYXBQb3NpdGlvbiB7CisgICAgaW50NjRfdCAgdGltZU5hbm9zZWNvbmRzOyAvLyB0aW1lIHN0YW1wIGluIG5zLCBDTE9DS19NT05PVE9OSUMKKyAgICBpbnQzMl90ICBwb3NpdGlvbkZyYW1lczsgIC8vIGluY3JlYXNpbmcgMzIgYml0IGZyYW1lIGNvdW50IHJlc2V0IHdoZW4gSVN0cmVhbS5zdG9wKCkgaXMgY2FsbGVkCit9OworCisvKioKKyAqIFRoZSBtZXNzYWdlIHF1ZXVlIGZsYWdzIHVzZWQgdG8gc3luY2hyb25pemUgcmVhZHMgYW5kIHdyaXRlcyBmcm9tCisgKiBtZXNzYWdlIHF1ZXVlcyB1c2VkIGJ5IFN0cmVhbUluIGFuZCBTdHJlYW1PdXQuCisgKi8KK2VudW0gTWVzc2FnZVF1ZXVlRmxhZ0JpdHMgOiB1aW50MzJfdCB7CisgICAgTk9UX0VNUFRZID0gMSA8PCAwLAorICAgIE5PVF9GVUxMID0gMSA8PCAxCit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWFiNzZmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzOSBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEF1ZGlvVjJfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIkF1ZGlvUHJpbWFyeUhpZGxIYWxUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdleHRyYSIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL0F1ZGlvUHJpbWFyeUhpZGxIYWxUZXN0LmNwcCBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC9BdWRpb1ByaW1hcnlIaWRsSGFsVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFjOGEyOQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC9BdWRpb1ByaW1hcnlIaWRsSGFsVGVzdC5jcHAKQEAgLTAsMCArMSwxNDA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWdHNIYWxBdWRpb1YyXzBUYXJnZXRUZXN0IgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDxsaXN0PgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSURldmljZXNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSVByaW1hcnlEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vY29tbW9uLzIuMC90eXBlcy5oPgorCisjaW5jbHVkZSAidXRpbGl0eS9Bc3NlcnRPay5oIgorI2luY2x1ZGUgInV0aWxpdHkvUHJldHR5UHJpbnRBdWRpb1R5cGVzLmgiCisjaW5jbHVkZSAidXRpbGl0eS9SZXR1cm5Jbi5oIgorCit1c2luZyBzdGQ6OnN0cmluZzsKK3VzaW5nIHN0ZDo6dG9fc3RyaW5nOwordXNpbmcgc3RkOjp2ZWN0b3I7CisKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpNUURlc2NyaXB0b3JTeW5jOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OkF1ZGlvRHJhaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklQcmltYXJ5RGV2aWNlOwordXNpbmcgVHR5TW9kZSA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJUHJpbWFyeURldmljZTo6VHR5TW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlc0ZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtSW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6VGltZVNwZWM7Cit1c2luZyBSZWFkUGFyYW1ldGVycyA9CisgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1Jbjo6UmVhZFBhcmFtZXRlcnM7Cit1c2luZyBSZWFkU3RhdHVzID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1Jbjo6UmVhZFN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtT3V0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXRDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpNbWFwQnVmZmVySW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpNbWFwUG9zaXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UGFyYW1ldGVyVmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9DaGFubmVsTWFzazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0Zvcm1hdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvSGFuZGxlQ29uc3RzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9JbnB1dEZsYWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0lvSGFuZGxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Nb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9PZmZsb2FkSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvT3V0cHV0RmxhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VGhyZWFkSW5mbzsKKwordXNpbmcgdXRpbGl0eTo6cmV0dXJuSW47CisKK2NvbnN0IGNoYXIqIGdldFRlc3ROYW1lKCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpLT5uYW1lKCk7Cit9CisKK25hbWVzcGFjZSBkb2MgeworLyoqIERvY3VtZW50IHRoZSBjdXJyZW50IHRlc3QgY2FzZS4KKyAqIEVnOiBjYWxsaW5nIGBkb2M6OnRlc3QoIkR1bXAgdGhlIHN0YXRlIG9mIHRoZSBoYWwiKWAgaW4gdGhlICJkZWJ1Z0R1bXAiIHRlc3QKKyAqIHdpbGwgb3V0cHV0OgorICogICA8dGVzdGNhc2UgbmFtZT0iZGVidWdEdW1wIiBzdGF0dXM9InJ1biIgdGltZT0iNiIKKyAqICAgICAgICAgICAgIGNsYXNzbmFtZT0iQXVkaW9QcmltYXJ5SGlkbFRlc3QiCisgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iRHVtcCB0aGUgc3RhdGUgb2YgdGhlIGhhbC4iIC8+CisgKiBzZWUKKyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvZ29vZ2xldGVzdC9kb2NzL0FkdmFuY2VkR3VpZGUubWQjbG9nZ2luZy1hZGRpdGlvbmFsLWluZm9ybWF0aW9uCisgKi8KK3ZvaWQgdGVzdChjb25zdCBzdGQ6OnN0cmluZyYgdGVzdENhc2VEb2N1bWVudGF0aW9uKSB7CisgICAgOjp0ZXN0aW5nOjpUZXN0OjpSZWNvcmRQcm9wZXJ0eSgiZGVzY3JpcHRpb24iLCB0ZXN0Q2FzZURvY3VtZW50YXRpb24pOworfQorCisvKiogRG9jdW1lbnQgd2h5IGEgdGVzdCB3YXMgbm90IGZ1bGx5IHJ1bi4gVXN1YWxseSBkdWUgdG8gYW4gb3B0aW9uYWwgZmVhdHVyZQorICogbm90IGltcGxlbWVudGVkLiAqLwordm9pZCBwYXJ0aWFsVGVzdChjb25zdCBzdGQ6OnN0cmluZyYgcmVhc29uKSB7CisgICAgTE9HKElORk8pIDw8ICJUZXN0ICIgPDwgZ2V0VGVzdE5hbWUoKSA8PCAiIHBhcnRpYWxseSBydW46ICIgPDwgcmVhc29uOworICAgIDo6dGVzdGluZzo6VGVzdDo6UmVjb3JkUHJvcGVydHkoInBhcnRpYWx5UnVuVGVzdCIsIHJlYXNvbik7Cit9CisKKy8qKiBBZGQgYSBub3RlIHRvIHRoZSB0ZXN0LiAqLwordm9pZCBub3RlKGNvbnN0IHN0ZDo6c3RyaW5nJiBub3RlKSB7CisgICAgTE9HKElORk8pIDw8ICJUZXN0ICIgPDwgZ2V0VGVzdE5hbWUoKSA8PCAiIG5vdGVkOiAiIDw8IG5vdGU7CisgICAgOjp0ZXN0aW5nOjpUZXN0OjpSZWNvcmRQcm9wZXJ0eSgibm90ZSIsIG5vdGUpOworfQorfQorCisvLyBSZWdpc3RlciBjYWxsYmFjayBmb3Igc3RhdGljIG9iamVjdCBkZXN0cnVjdGlvbgorLy8gQXZvaWQgZGVzdHJveWluZyBzdGF0aWMgb2JqZWN0cyBhZnRlciBtYWluIHJldHVybi4KKy8vIFBvc3QgbWFpbiByZXR1cm4gZGVzdHJ1Y3Rpb24gbGVhZHMgdG8gaW5jb3JyZWN0IGd0ZXN0IHRpbWluZyBtZWFzdXJlbWVudHMgYXMKKy8vIHdlbGwgYXMgaGFyZGVyCisvLyBkZWJ1Z2luZyBpZiBhbnl0aGluZyBnb2VzIHdyb25nIGR1cmluZyBkZXN0cnVjdGlvbi4KK2NsYXNzIEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworICAgcHVibGljOgorICAgIHVzaW5nIFRlYXJEb3duRnVuYyA9IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPjsKKyAgICB2b2lkIHJlZ2lzdGVyVGVhckRvd24oVGVhckRvd25GdW5jJiYgdGVhckRvd24pIHsKKyAgICAgICAgdGVhckRvd25zLnB1c2hfYmFjayhzdGQ6Om1vdmUodGVhckRvd24pKTsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICAgICAgLy8gQ2FsbCB0aGUgdGVhciBkb3ducyBpbiByZXZlcnNlIG9yZGVyIG9mIGluc2VydGlvbgorICAgICAgICBmb3IgKGF1dG8mIHRlYXJEb3duIDogdGVhckRvd25zKSB7CisgICAgICAgICAgICB0ZWFyRG93bigpOworICAgICAgICB9CisgICAgfQorICAgIHN0ZDo6bGlzdDxUZWFyRG93bkZ1bmM+IHRlYXJEb3duczsKK307CisvLyBJbnN0YW5jZSB0byByZWdpc3RlciBnbG9iYWwgdGVhckRvd24KK3N0YXRpYyBFbnZpcm9ubWVudCogZW52aXJvbm1lbnQ7CisKK2NsYXNzIEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyAgIHByb3RlY3RlZDoKKyAgICAvLyBDb252ZW5pZW50IG1lbWJlciB0byBzdG9yZSByZXN1bHRzCisgICAgUmVzdWx0IHJlczsKK307CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBnZXRTZXJ2aWNlIGF1ZGlvX2RldmljZXNfZmFjdG9yeSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gVGVzdCBhbGwgYXVkaW8gZGV2aWNlcworY2xhc3MgQXVkaW9IaWRsVGVzdCA6IHB1YmxpYyBIaWRsVGVzdCB7CisgICBwdWJsaWM6CisgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoSGlkbFRlc3Q6OlNldFVwKCkpOyAgLy8gc2V0dXAgYmFzZQorCisgICAgICAgIGlmIChkZXZpY2VzRmFjdG9yeSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBlbnZpcm9ubWVudC0+cmVnaXN0ZXJUZWFyRG93bihbXSB7IGRldmljZXNGYWN0b3J5LmNsZWFyKCk7IH0pOworICAgICAgICAgICAgZGV2aWNlc0ZhY3RvcnkgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTwKKyAgICAgICAgICAgICAgICBJRGV2aWNlc0ZhY3Rvcnk+KCk7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX1RSVUUoZGV2aWNlc0ZhY3RvcnkgIT0gbnVsbHB0cik7CisgICAgfQorCisgICBwcm90ZWN0ZWQ6CisgICAgLy8gQ2FjaGUgdGhlIGRldmljZXNGYWN0b3J5IHJldHJpZXZhbCB0byBzcGVlZCB1cCBlYWNoIHRlc3QgYnkgfjAuNXMKKyAgICBzdGF0aWMgc3A8SURldmljZXNGYWN0b3J5PiBkZXZpY2VzRmFjdG9yeTsKK307CitzcDxJRGV2aWNlc0ZhY3Rvcnk+IEF1ZGlvSGlkbFRlc3Q6OmRldmljZXNGYWN0b3J5OworCitURVNUX0YoQXVkaW9IaWRsVGVzdCwgR2V0QXVkaW9EZXZpY2VzRmFjdG9yeVNlcnZpY2UpIHsKKyAgICBkb2M6OnRlc3QoInRlc3QgdGhlIGdldFNlcnZpY2UgKGNhbGxlZCBpbiBTZXRVcCkiKTsKK30KKworVEVTVF9GKEF1ZGlvSGlkbFRlc3QsIE9wZW5EZXZpY2VJbnZhbGlkUGFyYW1ldGVyKSB7CisgICAgZG9jOjp0ZXN0KCJ0ZXN0IHBhc3NpbmcgYW4gaW52YWxpZCBwYXJhbWV0ZXIgdG8gb3BlbkRldmljZSIpOworICAgIElEZXZpY2VzRmFjdG9yeTo6UmVzdWx0IHJlc3VsdDsKKyAgICBzcDxJRGV2aWNlPiBkZXZpY2U7CisgICAgQVNTRVJUX09LKGRldmljZXNGYWN0b3J5LT5vcGVuRGV2aWNlKElEZXZpY2VzRmFjdG9yeTo6RGV2aWNlKC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuSW4ocmVzdWx0LCBkZXZpY2UpKSk7CisgICAgQVNTRVJUX0VRKElEZXZpY2VzRmFjdG9yeTo6UmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgcmVzdWx0KTsKKyAgICBBU1NFUlRfVFJVRShkZXZpY2UgPT0gbnVsbHB0cik7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBvcGVuRGV2aWNlIHByaW1hcnkgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gVGVzdCB0aGUgcHJpbWFyeSBkZXZpY2UKK2NsYXNzIEF1ZGlvUHJpbWFyeUhpZGxUZXN0IDogcHVibGljIEF1ZGlvSGlkbFRlc3QgeworICAgcHVibGljOgorICAgIC8qKiBQcmltYXJ5IEhBTCB0ZXN0IGFyZSBOT1QgdGhyZWFkIHNhZmUuICovCisgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoQXVkaW9IaWRsVGVzdDo6U2V0VXAoKSk7ICAvLyBzZXR1cCBiYXNlCisKKyAgICAgICAgaWYgKGRldmljZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBJRGV2aWNlc0ZhY3Rvcnk6OlJlc3VsdCByZXN1bHQ7CisgICAgICAgICAgICBzcDxJRGV2aWNlPiBiYXNlRGV2aWNlOworICAgICAgICAgICAgQVNTRVJUX09LKAorICAgICAgICAgICAgICAgIGRldmljZXNGYWN0b3J5LT5vcGVuRGV2aWNlKElEZXZpY2VzRmFjdG9yeTo6RGV2aWNlOjpQUklNQVJZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkluKHJlc3VsdCwgYmFzZURldmljZSkpKTsKKyAgICAgICAgICAgIEFTU0VSVF9PSyhyZXN1bHQpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoYmFzZURldmljZSAhPSBudWxscHRyKTsKKworICAgICAgICAgICAgZW52aXJvbm1lbnQtPnJlZ2lzdGVyVGVhckRvd24oW10geyBkZXZpY2UuY2xlYXIoKTsgfSk7CisgICAgICAgICAgICBkZXZpY2UgPSBJUHJpbWFyeURldmljZTo6Y2FzdEZyb20oYmFzZURldmljZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShkZXZpY2UgIT0gbnVsbHB0cik7CisgICAgICAgIH0KKyAgICB9CisKKyAgIHByb3RlY3RlZDoKKyAgICAvLyBDYWNoZSB0aGUgZGV2aWNlIG9wZW5pbmcgdG8gc3BlZWQgdXAgZWFjaCB0ZXN0IGJ5IH4wLjVzCisgICAgc3RhdGljIHNwPElQcmltYXJ5RGV2aWNlPiBkZXZpY2U7Cit9Oworc3A8SVByaW1hcnlEZXZpY2U+IEF1ZGlvUHJpbWFyeUhpZGxUZXN0OjpkZXZpY2U7CisKK1RFU1RfRihBdWRpb1ByaW1hcnlIaWRsVGVzdCwgT3BlblByaW1hcnlEZXZpY2UpIHsKKyAgICBkb2M6OnRlc3QoIlRlc3QgdGhlIG9wZW5EZXZpY2UgKGNhbGxlZCBpbiBTZXRVcCkiKTsKK30KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBJbml0KSB7CisgICAgZG9jOjp0ZXN0KCJUZXN0IHRoYXQgdGhlIGF1ZGlvIHByaW1hcnkgaGFsIGluaXRpYWxpemVkIGNvcnJlY3RseSIpOworICAgIEFTU0VSVF9PSyhkZXZpY2UtPmluaXRDaGVjaygpKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8ge3NldCxnZXR9e01hc3RlcixNaWN9e011dGUsVm9sdW1lfSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCit0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHk+CitjbGFzcyBBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCA6IHB1YmxpYyBBdWRpb1ByaW1hcnlIaWRsVGVzdCB7CisgICBwcm90ZWN0ZWQ6CisgICAgLyoqIFRlc3QgYSBwcm9wZXJ0eSBnZXR0ZXIgYW5kIHNldHRlci4gKi8KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgR2V0dGVyLCBjbGFzcyBTZXR0ZXI+CisgICAgdm9pZCB0ZXN0QWNjZXNzb3JzKGNvbnN0IHN0cmluZyYgcHJvcGVydHlOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3I8UHJvcGVydHk+JiB2YWx1ZXNUb1Rlc3QsIFNldHRlciBzZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgIEdldHRlciBnZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxQcm9wZXJ0eT4mIGludmFsaWRWYWx1ZXMgPSB7fSkgeworICAgICAgICBQcm9wZXJ0eSBpbml0aWFsVmFsdWU7ICAvLyBTYXZlIGluaXRpYWwgdmFsdWUgdG8gcmVzdG9yZSBpdCBhdCB0aGUgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mIHRoZSB0ZXN0CisgICAgICAgIEFTU0VSVF9PSygoZGV2aWNlLmdldCgpLT4qZ2V0dGVyKShyZXR1cm5JbihyZXMsIGluaXRpYWxWYWx1ZSkpKTsKKyAgICAgICAgQVNTRVJUX09LKHJlcyk7CisKKyAgICAgICAgZm9yIChQcm9wZXJ0eSBzZXRWYWx1ZSA6IHZhbHVlc1RvVGVzdCkgeworICAgICAgICAgICAgU0NPUEVEX1RSQUNFKCJUZXN0ICIgKyBwcm9wZXJ0eU5hbWUgKyAiIGdldHRlciBhbmQgc2V0dGVyIGZvciAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHNldFZhbHVlKSk7CisgICAgICAgICAgICBBU1NFUlRfT0soKGRldmljZS5nZXQoKS0+KnNldHRlcikoc2V0VmFsdWUpKTsKKyAgICAgICAgICAgIFByb3BlcnR5IGdldFZhbHVlOworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBnZXR0ZXIgcmV0dXJucyB0aGUgc2FtZSB2YWx1ZSBqdXN0IHNldAorICAgICAgICAgICAgQVNTRVJUX09LKChkZXZpY2UuZ2V0KCktPipnZXR0ZXIpKHJldHVybkluKHJlcywgZ2V0VmFsdWUpKSk7CisgICAgICAgICAgICBBU1NFUlRfT0socmVzKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShzZXRWYWx1ZSwgZ2V0VmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChQcm9wZXJ0eSBpbnZhbGlkVmFsdWUgOiBpbnZhbGlkVmFsdWVzKSB7CisgICAgICAgICAgICBTQ09QRURfVFJBQ0UoIlRyeSB0byBzZXQgIiArIHByb3BlcnR5TmFtZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgIiB3aXRoIHRoZSBpbnZhbGlkIHZhbHVlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaW52YWxpZFZhbHVlKSk7CisgICAgICAgICAgICBFWFBFQ1RfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChkZXZpY2UuZ2V0KCktPipzZXR0ZXIpKGludmFsaWRWYWx1ZSkpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUX09LKAorICAgICAgICAgICAgKGRldmljZS5nZXQoKS0+KnNldHRlcikoaW5pdGlhbFZhbHVlKSk7ICAvLyByZXN0b3JlIGluaXRpYWwgdmFsdWUKKyAgICB9CisKKyAgICAvKiogVGVzdCB0aGUgZ2V0dGVyIGFuZCBzZXR0ZXIgb2YgYW4gb3B0aW9uYWwgZmVhdHVyZS4gKi8KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgR2V0dGVyLCBjbGFzcyBTZXR0ZXI+CisgICAgdm9pZCB0ZXN0T3B0aW9uYWxBY2Nlc3NvcnMoY29uc3Qgc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yPFByb3BlcnR5PiYgdmFsdWVzVG9UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldHRlciBzZXR0ZXIsIEdldHRlciBnZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yPFByb3BlcnR5PiYgaW52YWxpZFZhbHVlcyA9IHt9KSB7CisgICAgICAgIGRvYzo6dGVzdCgiVGVzdCB0aGUgb3B0aW9uYWwgIiArIHByb3BlcnR5TmFtZSArICIgZ2V0dGVycyBhbmQgc2V0dGVyIik7CisgICAgICAgIHsKKyAgICAgICAgICAgIFNDT1BFRF9UUkFDRSgiVGVzdCBmZWF0dXJlIHN1cHBvcnQgYnkgY2FsbGluZyB0aGUgZ2V0dGVyIik7CisgICAgICAgICAgICBQcm9wZXJ0eSBpbml0aWFsVmFsdWU7CisgICAgICAgICAgICBBU1NFUlRfT0soKGRldmljZS5nZXQoKS0+KmdldHRlcikocmV0dXJuSW4ocmVzLCBpbml0aWFsVmFsdWUpKSk7CisgICAgICAgICAgICBpZiAocmVzID09IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCkgeworICAgICAgICAgICAgICAgIGRvYzo6cGFydGlhbFRlc3QocHJvcGVydHlOYW1lICsgIiBnZXR0ZXIgaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVF9PSyhyZXMpOyAgLy8gSWYgaXQgaXMgc3VwcG9ydGVkIGl0IG11c3Qgc3VjY2VlZAorICAgICAgICB9CisgICAgICAgIC8vIFRoZSBmZWF0dXJlIGlzIHN1cHBvcnRlZCwgdGVzdCBpdAorICAgICAgICB0ZXN0QWNjZXNzb3JzKHByb3BlcnR5TmFtZSwgdmFsdWVzVG9UZXN0LCBzZXR0ZXIsIGdldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkVmFsdWVzKTsKKyAgICB9Cit9OworCit1c2luZyBCb29sQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QgPSBBY2Nlc3NvclByaW1hcnlIaWRsVGVzdDxib29sPjsKKworVEVTVF9GKEJvb2xBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCwgTWljTXV0ZVRlc3QpIHsKKyAgICBkb2M6OnRlc3QoIkNoZWNrIHRoYXQgdGhlIG1pYyBjYW4gYmUgbXV0ZWQgYW5kIHVubXV0ZWQiKTsKKyAgICB0ZXN0QWNjZXNzb3JzKCJtaWMgbXV0ZSIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sICZJRGV2aWNlOjpzZXRNaWNNdXRlLAorICAgICAgICAgICAgICAgICAgJklEZXZpY2U6OmdldE1pY011dGUpOworICAgIC8vIFRPRE86IGNoZWNrIHRoYXQgdGhlIG1pYyBpcyByZWFsbHkgbXV0ZWQgKGFsbCBzYW1wbGUgYXJlIDApCit9CisKK1RFU1RfRihCb29sQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QsIE1hc3Rlck11dGVUZXN0KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSWYgbWFzdGVyIG11dGUgaXMgc3VwcG9ydGVkLCB0cnkgdG8gbXV0ZSBhbmQgdW5tdXRlIHRoZSBtYXN0ZXIgIgorICAgICAgICAib3V0cHV0Iik7CisgICAgdGVzdE9wdGlvbmFsQWNjZXNzb3JzKCJtYXN0ZXIgbXV0ZSIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJRGV2aWNlOjpzZXRNYXN0ZXJNdXRlLCAmSURldmljZTo6Z2V0TWFzdGVyTXV0ZSk7CisgICAgLy8gVE9ETzogY2hlY2sgdGhhdCB0aGUgbWFzdGVyIHZvbHVtZSBpcyByZWFsbHkgbXV0ZWQKK30KKwordXNpbmcgRmxvYXRBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCA9IEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0PGZsb2F0PjsKK1RFU1RfRihGbG9hdEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0LCBNYXN0ZXJWb2x1bWVUZXN0KSB7CisgICAgZG9jOjp0ZXN0KCJUZXN0IHRoZSBtYXN0ZXIgdm9sdW1lIGlmIHN1cHBvcnRlZCIpOworICAgIHRlc3RPcHRpb25hbEFjY2Vzc29ycygibWFzdGVyIHZvbHVtZSIsIHswLCAwLjUsIDF9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmSURldmljZTo6c2V0TWFzdGVyVm9sdW1lLCAmSURldmljZTo6Z2V0TWFzdGVyVm9sdW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICB7LTAuMSwgMS4xLCBOQU4sIElORklOSVRZLCAtSU5GSU5JVFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAxICsgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKX0pOworICAgIC8vIFRPRE86IGNoZWNrIHRoYXQgdGhlIG1hc3RlciB2b2x1bWUgaXMgcmVhbGx5IGNoYW5nZWQKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBBdWRpb1BhdGNoZXMgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitjbGFzcyBBdWRpb1BhdGNoUHJpbWFyeUhpZGxUZXN0IDogcHVibGljIEF1ZGlvUHJpbWFyeUhpZGxUZXN0IHsKKyAgIHByb3RlY3RlZDoKKyAgICBib29sIGFyZUF1ZGlvUGF0Y2hlc1N1cHBvcnRlZCgpIHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBkZXZpY2UtPnN1cHBvcnRzQXVkaW9QYXRjaGVzKCk7CisgICAgICAgIEVYUEVDVF9JU19PSyhyZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK307CisKK1RFU1RfRihBdWRpb1BhdGNoUHJpbWFyeUhpZGxUZXN0LCBBdWRpb1BhdGNoZXMpIHsKKyAgICBkb2M6OnRlc3QoIlRlc3QgaWYgYXVkaW8gcGF0Y2hlcyBhcmUgc3VwcG9ydGVkIik7CisgICAgaWYgKCFhcmVBdWRpb1BhdGNoZXNTdXBwb3J0ZWQoKSkgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJBdWRpbyBwYXRjaGVzIGFyZSBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gVE9ETzogdGVzdCBhdWRpbyBwYXRjaGVzCit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLyBSZXF1aXJlZCBhbmQgcmVjb21tZW5kZWQgYXVkaW8gZm9ybWF0IHN1cHBvcnQgLy8vLy8vLy8vLy8vLy8vCisvLyBGcm9tOgorLy8gaHR0cHM6Ly9zb3VyY2UuYW5kcm9pZC5jb20vY29tcGF0aWJpbGl0eS9hbmRyb2lkLWNkZC5odG1sIzVfNF9hdWRpb19yZWNvcmRpbmcKKy8vIEZyb206CisvLyBodHRwczovL3NvdXJjZS5hbmRyb2lkLmNvbS9jb21wYXRpYmlsaXR5L2FuZHJvaWQtY2RkLmh0bWwjNV81X2F1ZGlvX3BsYXliYWNrCisvLy8vLy8vLy8vLyBUT0RPOiBtb3ZlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgZm9yIGVhc2llciB1cGRhdGUgLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitjbGFzcyBBdWRpb0NvbmZpZ1ByaW1hcnlUZXN0IDogcHVibGljIEF1ZGlvUGF0Y2hQcmltYXJ5SGlkbFRlc3QgeworICAgcHVibGljOgorICAgIC8vIENhY2hlIHJlc3VsdCA/CisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4gZ2V0UmVxdWlyZWRTdXBwb3J0UGxheWJhY2tBdWRpb0NvbmZpZygpIHsKKyAgICAgICAgcmV0dXJuIGNvbWJpbmVBdWRpb0NvbmZpZygKKyAgICAgICAgICAgIHtBdWRpb0NoYW5uZWxNYXNrOjpPVVRfU1RFUkVPLCBBdWRpb0NoYW5uZWxNYXNrOjpPVVRfTU9OT30sCisgICAgICAgICAgICB7ODAwMCwgMTEwMjUsIDE2MDAwLCAyMjA1MCwgMzIwMDAsIDQ0MTAwfSwKKyAgICAgICAgICAgIHtBdWRpb0Zvcm1hdDo6UENNXzE2X0JJVH0pOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdCB2ZWN0b3I8QXVkaW9Db25maWc+CisgICAgZ2V0UmVjb21tZW5kZWRTdXBwb3J0UGxheWJhY2tBdWRpb0NvbmZpZygpIHsKKyAgICAgICAgcmV0dXJuIGNvbWJpbmVBdWRpb0NvbmZpZygKKyAgICAgICAgICAgIHtBdWRpb0NoYW5uZWxNYXNrOjpPVVRfU1RFUkVPLCBBdWRpb0NoYW5uZWxNYXNrOjpPVVRfTU9OT30sCisgICAgICAgICAgICB7MjQwMDAsIDQ4MDAwfSwge0F1ZGlvRm9ybWF0OjpQQ01fMTZfQklUfSk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4gZ2V0U3VwcG9ydGVkUGxheWJhY2tBdWRpb0NvbmZpZygpIHsKKyAgICAgICAgLy8gVE9ETzogcmV0cmlldmUgYXVkaW8gY29uZmlnIHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0KKyAgICAgICAgLy8gYXMgZGVjbGFyZWQgaW4gdGhlIHBvbGljeSBjb25maWd1cmF0aW9uCisgICAgICAgIHJldHVybiB7fTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3QgdmVjdG9yPEF1ZGlvQ29uZmlnPiBnZXRSZXF1aXJlZFN1cHBvcnRDYXB0dXJlQXVkaW9Db25maWcoKSB7CisgICAgICAgIHJldHVybiBjb21iaW5lQXVkaW9Db25maWcoe0F1ZGlvQ2hhbm5lbE1hc2s6OklOX01PTk99LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs4MDAwLCAxMTAyNSwgMTYwMDAsIDQ0MTAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7QXVkaW9Gb3JtYXQ6OlBDTV8xNl9CSVR9KTsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4gZ2V0UmVjb21tZW5kZWRTdXBwb3J0Q2FwdHVyZUF1ZGlvQ29uZmlnKCkgeworICAgICAgICByZXR1cm4gY29tYmluZUF1ZGlvQ29uZmlnKHtBdWRpb0NoYW5uZWxNYXNrOjpJTl9TVEVSRU99LCB7MjIwNTAsIDQ4MDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7QXVkaW9Gb3JtYXQ6OlBDTV8xNl9CSVR9KTsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4gZ2V0U3VwcG9ydGVkQ2FwdHVyZUF1ZGlvQ29uZmlnKCkgeworICAgICAgICAvLyBUT0RPOiByZXRyaWV2ZSBhdWRpbyBjb25maWcgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybQorICAgICAgICAvLyBhcyBkZWNsYXJlZCBpbiB0aGUgcG9saWN5IGNvbmZpZ3VyYXRpb24KKyAgICAgICAgcmV0dXJuIHt9OworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3QgdmVjdG9yPEF1ZGlvQ29uZmlnPiBjb21iaW5lQXVkaW9Db25maWcoCisgICAgICAgIHZlY3RvcjxBdWRpb0NoYW5uZWxNYXNrPiBjaGFubmVsTWFza3MsIHZlY3Rvcjx1aW50MzJfdD4gc2FtcGxlUmF0ZXMsCisgICAgICAgIHZlY3RvcjxBdWRpb0Zvcm1hdD4gZm9ybWF0cykgeworICAgICAgICB2ZWN0b3I8QXVkaW9Db25maWc+IGNvbmZpZ3M7CisgICAgICAgIGZvciAoYXV0byBjaGFubmVsTWFzayA6IGNoYW5uZWxNYXNrcykgeworICAgICAgICAgICAgZm9yIChhdXRvIHNhbXBsZVJhdGUgOiBzYW1wbGVSYXRlcykgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byBmb3JtYXQgOiBmb3JtYXRzKSB7CisgICAgICAgICAgICAgICAgICAgIEF1ZGlvQ29uZmlnIGNvbmZpZ3t9OworICAgICAgICAgICAgICAgICAgICAvLyBsZWF2ZSBvZmZsb2FkSW5mbyB0byAwCisgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5jaGFubmVsTWFzayA9IGNoYW5uZWxNYXNrOworICAgICAgICAgICAgICAgICAgICBjb25maWcuc2FtcGxlUmF0ZUh6ID0gc2FtcGxlUmF0ZTsKKyAgICAgICAgICAgICAgICAgICAgY29uZmlnLmZvcm1hdCA9IGZvcm1hdDsKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGxlYXZlIGZyYW1lQ291bnQgdG8gMCA/CisgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3MucHVzaF9iYWNrKGNvbmZpZyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjb25maWdzOworICAgIH0KK307CisKKy8qKiBHZW5lcmF0ZSBhIHRlc3QgbmFtZSBiYXNlZCBvbiBhbiBhdWRpbyBjb25maWcuCisgKgorICogQXMgdGhlIG9ubHkgcGFyYW1ldGVyIGNoYW5naW5nIGFyZSBjaGFubmVsIG1hc2sgYW5kIHNhbXBsZSByYXRlLAorICogb25seSBwcmludCB0aG9zZSBvbmVzIGluIHRoZSB0ZXN0IG5hbWUuCisgKi8KK3N0YXRpYyBzdHJpbmcgZ2VuZXJhdGVUZXN0TmFtZSgKKyAgICBjb25zdCB0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPEF1ZGlvQ29uZmlnPiYgaW5mbykgeworICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcgPSBpbmZvLnBhcmFtOworICAgIHJldHVybiB0b19zdHJpbmcoaW5mby5pbmRleCkgKyAiX18iICsgdG9fc3RyaW5nKGNvbmZpZy5zYW1wbGVSYXRlSHopICsgIl8iICsKKyAgICAgICAgICAgLy8gIk1PTk8iIGlzIG1vcmUgY2xlYXIgdGhhbiAiRlJPTlRfTEVGVCIKKyAgICAgICAgICAgKChjb25maWcuY2hhbm5lbE1hc2sgPT0gQXVkaW9DaGFubmVsTWFzazo6T1VUX01PTk8gfHwKKyAgICAgICAgICAgICBjb25maWcuY2hhbm5lbE1hc2sgPT0gQXVkaW9DaGFubmVsTWFzazo6SU5fTU9OTykKKyAgICAgICAgICAgICAgICA/ICJNT05PIgorICAgICAgICAgICAgICAgIDogdG9TdHJpbmcoY29uZmlnLmNoYW5uZWxNYXNrKSk7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gZ2V0SW5wdXRCdWZmZXJTaXplIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gRklYTUU6IGV4ZWN1dGUgaW5wdXQgdGVzdCBvbmx5IGlmIHBsYXRmb3JtIGRlY2xhcmVzCisvLyBhbmRyb2lkLmhhcmR3YXJlLm1pY3JvcGhvbmUKKy8vICAgICAgICBob3cgdG8gZ2V0IHRoaXMgdmFsdWUgPyBpcyBpdCBhIHByb3BlcnR5ID8/PworCitjbGFzcyBBdWRpb0NhcHR1cmVDb25maWdQcmltYXJ5VGVzdAorICAgIDogcHVibGljIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3QsCisgICAgICBwdWJsaWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8QXVkaW9Db25maWc+IHsKKyAgIHByb3RlY3RlZDoKKyAgICB2b2lkIGlucHV0QnVmZmVyU2l6ZVRlc3QoY29uc3QgQXVkaW9Db25maWcmIGF1ZGlvQ29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHN1cHBvcnRSZXF1aXJlZCkgeworICAgICAgICB1aW50NjRfdCBidWZmZXJTaXplOworICAgICAgICBBU1NFUlRfT0soCisgICAgICAgICAgICBkZXZpY2UtPmdldElucHV0QnVmZmVyU2l6ZShhdWRpb0NvbmZpZywgcmV0dXJuSW4ocmVzLCBidWZmZXJTaXplKSkpOworCisgICAgICAgIHN3aXRjaCAocmVzKSB7CisgICAgICAgICAgICBjYXNlIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM6CisgICAgICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKHN1cHBvcnRSZXF1aXJlZCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJlc3VsdDo6T0s6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgYnVmZmVyIGlzIG9mIGEgc2FuZSBzaXplCisgICAgICAgICAgICAgICAgLy8gRm9yIG5vdyBvbmx5IHRoYXQgaXQgaXMgPiAwCisgICAgICAgICAgICAgICAgRVhQRUNUX0dUKGJ1ZmZlclNpemUsIHVpbnQ2NF90KDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgRkFJTCgpIDw8ICJJbnZhbGlkIHJldHVybiBzdGF0dXM6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHJlcyk7CisgICAgICAgIH0KKyAgICB9Cit9OworCisvLyBUZXN0IHRoYXQgdGhlIHJlcXVpcmVkIGNhcHR1cmUgY29uZmlnIGFuZCB0aG9zZSBkZWNsYXJlZCBpbiB0aGUgcG9saWN5IGFyZQorLy8gaW5kZWVkIHN1cHBvcnRlZAorY2xhc3MgUmVxdWlyZWRJbnB1dEJ1ZmZlclNpemVUZXN0IDogcHVibGljIEF1ZGlvQ2FwdHVyZUNvbmZpZ1ByaW1hcnlUZXN0IHt9OworVEVTVF9QKFJlcXVpcmVkSW5wdXRCdWZmZXJTaXplVGVzdCwgUmVxdWlyZWRJbnB1dEJ1ZmZlclNpemVUZXN0KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSW5wdXQgYnVmZmVyIHNpemUgbXVzdCBiZSByZXRyaWV2YWJsZSBmb3IgYSBmb3JtYXQgd2l0aCByZXF1aXJlZCAiCisgICAgICAgICJzdXBwb3J0LiIpOworICAgIGlucHV0QnVmZmVyU2l6ZVRlc3QoR2V0UGFyYW0oKSwgdHJ1ZSk7Cit9CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBSZXF1aXJlZElucHV0QnVmZmVyU2l6ZSwgUmVxdWlyZWRJbnB1dEJ1ZmZlclNpemVUZXN0LAorICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oCisgICAgICAgIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3Q6OmdldFJlcXVpcmVkU3VwcG9ydENhcHR1cmVBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBTdXBwb3J0ZWRJbnB1dEJ1ZmZlclNpemUsIFJlcXVpcmVkSW5wdXRCdWZmZXJTaXplVGVzdCwKKyAgICA6OnRlc3Rpbmc6OlZhbHVlc0luKAorICAgICAgICBBdWRpb0NvbmZpZ1ByaW1hcnlUZXN0OjpnZXRTdXBwb3J0ZWRDYXB0dXJlQXVkaW9Db25maWcoKSksCisgICAgJmdlbmVyYXRlVGVzdE5hbWUpOworCisvLyBUZXN0IHRoYXQgdGhlIHJlY29tbWVuZGVkIGNhcHR1cmUgY29uZmlnIGFyZSBzdXBwb3J0ZWQgb3IgbGVhZCB0byBhCisvLyBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4KK2NsYXNzIE9wdGlvbmFsSW5wdXRCdWZmZXJTaXplVGVzdCA6IHB1YmxpYyBBdWRpb0NhcHR1cmVDb25maWdQcmltYXJ5VGVzdCB7fTsKK1RFU1RfUChPcHRpb25hbElucHV0QnVmZmVyU2l6ZVRlc3QsIE9wdGlvbmFsSW5wdXRCdWZmZXJTaXplVGVzdCkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIklucHV0IGJ1ZmZlciBzaXplIHNob3VsZCBiZSByZXRyaWV2YWJsZSBmb3IgYSBmb3JtYXQgd2l0aCByZWNvbW1lbmRlZCAiCisgICAgICAgICJzdXBwb3J0LiIpOworICAgIGlucHV0QnVmZmVyU2l6ZVRlc3QoR2V0UGFyYW0oKSwgZmFsc2UpOworfQorSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoCisgICAgUmVjb21tZW5kZWRDYXB0dXJlQXVkaW9Db25maWdTdXBwb3J0LCBPcHRpb25hbElucHV0QnVmZmVyU2l6ZVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0UmVjb21tZW5kZWRTdXBwb3J0Q2FwdHVyZUF1ZGlvQ29uZmlnKCkpLAorICAgICZnZW5lcmF0ZVRlc3ROYW1lKTsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIHNldFNjcmVlblN0YXRlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitURVNUX0YoQXVkaW9QcmltYXJ5SGlkbFRlc3QsIHNldFNjcmVlblN0YXRlKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgY2FuIHJlY2VpdmUgdGhlIHNjcmVlbiBzdGF0ZSIpOworICAgIGZvciAoYm9vbCB0dXJuZWRPbiA6IHtmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlfSkgeworICAgICAgICBhdXRvIHJldCA9IGRldmljZS0+c2V0U2NyZWVuU3RhdGUodHVybmVkT24pOworICAgICAgICBBU1NFUlRfSVNfT0socmV0KTsKKyAgICAgICAgUmVzdWx0IHJlc3VsdCA9IHJldDsKKyAgICAgICAgYXV0byBva09yTm90U3VwcG9ydGVkID0ge1Jlc3VsdDo6T0ssIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRH07CisgICAgICAgIEFTU0VSVF9SRVNVTFQob2tPck5vdFN1cHBvcnRlZCwgcmVzdWx0KTsKKyAgICB9Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyB7Z2V0LHNldH1QYXJhbWV0ZXJzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBnZXRQYXJhbWV0ZXJzKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgY2FuIHNldCBhbmQgZ2V0IHBhcmFtZXRlcnMiKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4ga2V5czsKKyAgICBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4gdmFsdWVzOworICAgIEFTU0VSVF9PSyhkZXZpY2UtPmdldFBhcmFtZXRlcnMoa2V5cywgcmV0dXJuSW4ocmVzLCB2YWx1ZXMpKSk7CisgICAgQVNTRVJUX09LKGRldmljZS0+c2V0UGFyYW1ldGVycyh2YWx1ZXMpKTsKKyAgICB2YWx1ZXMucmVzaXplKDApOworICAgIEFTU0VSVF9PSyhkZXZpY2UtPnNldFBhcmFtZXRlcnModmFsdWVzKSk7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gZGVidWdEZWJ1ZyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwordGVtcGxhdGUgPGNsYXNzIERlYnVnRHVtcD4KK3N0YXRpYyB2b2lkIHRlc3REZWJ1Z0R1bXAoRGVidWdEdW1wIGRlYnVnRHVtcCkgeworICAgIC8vIER1bXAgaW4gYSB0ZW1wb3JhcnkgZmlsZQorICAgIC8vIE5vdGUgdGhhdCBTRUxpbnV4IG11c3QgYmUgZGVhY3RpdmF0ZSBmb3IgdGhpcyB0ZXN0IHRvIHdvcmsKKyAgICBGSUxFKiBmaWxlID0gdG1wZmlsZSgpOworICAgIEFTU0VSVF9ORShudWxscHRyLCBmaWxlKSA8PCBlcnJubzsKKworICAgIC8vIFdyYXAgdGhlIHRlbXBvcmFyeSBmaWxlIGZpbGUgZGVzY3JpcHRvciBpbiBhIG5hdGl2ZSBoYW5kbGUKKyAgICBhdXRvKiBuYXRpdmVIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgbmF0aXZlSGFuZGxlKTsKKyAgICBuYXRpdmVIYW5kbGUtPmRhdGFbMF0gPSBmaWxlbm8oZmlsZSk7CisKKyAgICAvLyBXcmFwIHRoaXMgbmF0aXZlIGhhbmRsZSBpbiBhIGhpZGwgaGFuZGxlCisgICAgaGlkbF9oYW5kbGUgaGFuZGxlOworICAgIGhhbmRsZS5zZXRUbyhuYXRpdmVIYW5kbGUsIHRydWUgLyp0YWtlIG93bmVyc2hpcCovKTsKKworICAgIEFTU0VSVF9PSyhkZWJ1Z0R1bXAoaGFuZGxlKSk7CisKKyAgICAvLyBDaGVjayB0aGF0IGF0IGxlYXN0IG9uZSBiaXQgd2FzIHdyaXR0ZW4gYnkgdGhlIGhhbAorICAgIC8vIFRPRE86IGRlYnVnRHVtcCBkb2VzIG5vdCByZXR1cm4gYSBSZXN1bHQuCisgICAgLy8gVGhpcyBtZWFuIHRoYXQgdGhlIGhhbCBjYW4gbm90IHJlcG9ydCB0aGF0IGl0IG5vdCBpbXBsZW1lbnRpbmcgdGhlCisgICAgLy8gZnVuY3Rpb24uCisgICAgcmV3aW5kKGZpbGUpOyAgLy8gY2FuIG5vdCBmYWlsCisgICAgY2hhciBidWZmOworICAgIGlmIChmcmVhZCgmYnVmZiwgc2l6ZW9mKGJ1ZmYpLCAxLCBmaWxlKSAhPSAxKSB7CisgICAgICAgIGRvYzo6bm90ZSgiZGVidWdEdW1wIGRvZXMgbm90IHNlZW0gaW1wbGVtZW50ZWQiKTsKKyAgICB9CisgICAgRVhQRUNUX0VRKDAsIGZjbG9zZShmaWxlKSkgPDwgZXJybm87Cit9CisKK1RFU1RfRihBdWRpb1ByaW1hcnlIaWRsVGVzdCwgRGVidWdEdW1wKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgY2FuIGR1bXAgaXRzIHN0YXRlIHdpdGhvdXQgZXJyb3IiKTsKKyAgICB0ZXN0RGVidWdEdW1wKAorICAgICAgICBbdGhpc10oY29uc3QgYXV0byYgaGFuZGxlKSB7IHJldHVybiBkZXZpY2UtPmRlYnVnRHVtcChoYW5kbGUpOyB9KTsKK30KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBEZWJ1Z0R1bXBJbnZhbGlkQXJndW1lbnRzKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgZHVtcCBkb2Vzbid0IGNyYXNoIG9uIGludmFsaWQgYXJndW1lbnRzIik7CisgICAgQVNTRVJUX09LKGRldmljZS0+ZGVidWdEdW1wKGhpZGxfaGFuZGxlKCkpKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBvcGVue091dHB1dCxJbnB1dH1TdHJlYW0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCit0ZW1wbGF0ZSA8Y2xhc3MgU3RyZWFtPgorY2xhc3MgT3BlblN0cmVhbVRlc3QgOiBwdWJsaWMgQXVkaW9Db25maWdQcmltYXJ5VGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPEF1ZGlvQ29uZmlnPiB7CisgICBwcm90ZWN0ZWQ6CisgICAgdGVtcGxhdGUgPGNsYXNzIE9wZW4+CisgICAgdm9pZCB0ZXN0T3BlbihPcGVuIG9wZW5TdHJlYW0sIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcpIHsKKyAgICAgICAgLy8gRklYTUU6IE9wZW4gYSBzdHJlYW0gd2l0aG91dCBhbiBJT0hhbmRsZQorICAgICAgICAvLyAgICAgICAgVGhpcyBpcyBub3QgcmVxdWlyZWQgdG8gYmUgYWNjZXB0ZWQgYnkgaGFsIGltcGxlbWVudGF0aW9ucworICAgICAgICBBdWRpb0lvSGFuZGxlIGlvSGFuZGxlID0KKyAgICAgICAgICAgIChBdWRpb0lvSGFuZGxlKUF1ZGlvSGFuZGxlQ29uc3RzOjpBVURJT19JT19IQU5ETEVfTk9ORTsKKyAgICAgICAgQXVkaW9Db25maWcgc3VnZ2VzdGVkQ29uZmlne307CisgICAgICAgIEFTU0VSVF9PSyhvcGVuU3RyZWFtKGlvSGFuZGxlLCBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkluKHJlcywgc3RyZWFtLCBzdWdnZXN0ZWRDb25maWcpKSk7CisKKyAgICAgICAgLy8gVE9ETzogb25seSBhbGxvdyBmYWlsdXJlIGZvciBSZWNvbW1lbmRlZFBsYXliYWNrQXVkaW9Db25maWcKKyAgICAgICAgc3dpdGNoIChyZXMpIHsKKyAgICAgICAgICAgIGNhc2UgUmVzdWx0OjpPSzoKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShzdHJlYW0gIT0gbnVsbHB0cik7CisgICAgICAgICAgICAgICAgYXVkaW9Db25maWcgPSBjb25maWc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM6CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RyZWFtID09IG51bGxwdHIpOworICAgICAgICAgICAgICAgIEF1ZGlvQ29uZmlnIHN1Z2dlc3RlZENvbmZpZ1JldHJ5OworICAgICAgICAgICAgICAgIC8vIENvdWxkIG5vdCBvcGVuIHN0cmVhbSB3aXRoIGNvbmZpZywgdHJ5IGFnYWluIHdpdGggdGhlCisgICAgICAgICAgICAgICAgLy8gc3VnZ2VzdGVkIG9uZQorICAgICAgICAgICAgICAgIEFTU0VSVF9PSygKKyAgICAgICAgICAgICAgICAgICAgb3BlblN0cmVhbShpb0hhbmRsZSwgc3VnZ2VzdGVkQ29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkluKHJlcywgc3RyZWFtLCBzdWdnZXN0ZWRDb25maWdSZXRyeSkpKTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHRpbWUgaXQgbXVzdCBzdWNjZWVkCisgICAgICAgICAgICAgICAgQVNTRVJUX09LKHJlcyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RyZWFtICE9IG51bGxwdHIpOworICAgICAgICAgICAgICAgIGF1ZGlvQ29uZmlnID0gc3VnZ2VzdGVkQ29uZmlnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBGQUlMKCkgPDwgIkludmFsaWQgcmV0dXJuIHN0YXR1czogIgorICAgICAgICAgICAgICAgICAgICAgICA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcocmVzKTsKKyAgICAgICAgfQorICAgICAgICBvcGVuID0gdHJ1ZTsKKyAgICB9CisKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZVN0cmVhbSgpIHsKKyAgICAgICAgb3BlbiA9IGZhbHNlOworICAgICAgICByZXR1cm4gc3RyZWFtLT5jbG9zZSgpOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAob3BlbikgeworICAgICAgICAgICAgQVNTRVJUX09LKHN0cmVhbS0+Y2xvc2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgIHByb3RlY3RlZDoKKyAgICBBdWRpb0NvbmZpZyBhdWRpb0NvbmZpZzsKKyAgICBEZXZpY2VBZGRyZXNzIGFkZHJlc3MgPSB7fTsKKyAgICBzcDxTdHJlYW0+IHN0cmVhbTsKKyAgICBib29sIG9wZW4gPSBmYWxzZTsKK307CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBvcGVuT3V0cHV0U3RyZWFtIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitjbGFzcyBPdXRwdXRTdHJlYW1UZXN0IDogcHVibGljIE9wZW5TdHJlYW1UZXN0PElTdHJlYW1PdXQ+IHsKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKE9wZW5TdHJlYW1UZXN0OjpTZXRVcCgpKTsgIC8vIHNldHVwIGJhc2UKKyAgICAgICAgYWRkcmVzcy5kZXZpY2UgPSBBdWRpb0RldmljZTo6T1VUX0RFRkFVTFQ7CisgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcgPSBHZXRQYXJhbSgpOworICAgICAgICBBdWRpb091dHB1dEZsYWcgZmxhZ3MgPQorICAgICAgICAgICAgQXVkaW9PdXRwdXRGbGFnOjpOT05FOyAgLy8gVE9ETzogdGVzdCBhbGwgZmxhZyBjb21iaW5hdGlvbgorICAgICAgICB0ZXN0T3BlbigKKyAgICAgICAgICAgIFsmXShBdWRpb0lvSGFuZGxlIGhhbmRsZSwgQXVkaW9Db25maWcgY29uZmlnLCBhdXRvIGNiKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRldmljZS0+b3Blbk91dHB1dFN0cmVhbShoYW5kbGUsIGFkZHJlc3MsIGNvbmZpZywgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYik7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY29uZmlnKTsKKyAgICB9Cit9OworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIE9wZW5PdXRwdXRTdHJlYW1UZXN0KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiQ2hlY2sgdGhhdCBvdXRwdXQgc3RyZWFtcyBjYW4gYmUgb3BlbiB3aXRoIHRoZSByZXF1aXJlZCBhbmQgIgorICAgICAgICAicmVjb21tZW5kZWQgY29uZmlnIik7CisgICAgLy8gT3BlbiBkb25lIGluIFNldFVwCit9CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBSZXF1aXJlZE91dHB1dFN0cmVhbUNvbmZpZ1N1cHBvcnQsIE91dHB1dFN0cmVhbVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0UmVxdWlyZWRTdXBwb3J0UGxheWJhY2tBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBTdXBwb3J0ZWRPdXRwdXRTdHJlYW1Db25maWcsIE91dHB1dFN0cmVhbVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0U3VwcG9ydGVkUGxheWJhY2tBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgIFJlY29tbWVuZGVkT3V0cHV0U3RyZWFtQ29uZmlnU3VwcG9ydCwgT3V0cHV0U3RyZWFtVGVzdCwKKyAgICA6OnRlc3Rpbmc6OlZhbHVlc0luKAorICAgICAgICBBdWRpb0NvbmZpZ1ByaW1hcnlUZXN0OjpnZXRSZWNvbW1lbmRlZFN1cHBvcnRQbGF5YmFja0F1ZGlvQ29uZmlnKCkpLAorICAgICZnZW5lcmF0ZVRlc3ROYW1lKTsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIG9wZW5JbnB1dFN0cmVhbSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworY2xhc3MgSW5wdXRTdHJlYW1UZXN0IDogcHVibGljIE9wZW5TdHJlYW1UZXN0PElTdHJlYW1Jbj4geworICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoT3BlblN0cmVhbVRlc3Q6OlNldFVwKCkpOyAgLy8gc2V0dXAgYmFzZQorICAgICAgICBhZGRyZXNzLmRldmljZSA9IEF1ZGlvRGV2aWNlOjpJTl9ERUZBVUxUOworICAgICAgICBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnID0gR2V0UGFyYW0oKTsKKyAgICAgICAgQXVkaW9JbnB1dEZsYWcgZmxhZ3MgPQorICAgICAgICAgICAgQXVkaW9JbnB1dEZsYWc6Ok5PTkU7ICAvLyBUT0RPOiB0ZXN0IGFsbCBmbGFnIGNvbWJpbmF0aW9uCisgICAgICAgIEF1ZGlvU291cmNlIHNvdXJjZSA9CisgICAgICAgICAgICBBdWRpb1NvdXJjZTo6REVGQVVMVDsgIC8vIFRPRE86IHRlc3QgYWxsIGZsYWcgY29tYmluYXRpb24KKyAgICAgICAgdGVzdE9wZW4oCisgICAgICAgICAgICBbJl0oQXVkaW9Jb0hhbmRsZSBoYW5kbGUsIEF1ZGlvQ29uZmlnIGNvbmZpZywgYXV0byBjYikgeworICAgICAgICAgICAgICAgIHJldHVybiBkZXZpY2UtPm9wZW5JbnB1dFN0cmVhbShoYW5kbGUsIGFkZHJlc3MsIGNvbmZpZywgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgY2IpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNvbmZpZyk7CisgICAgfQorfTsKKworVEVTVF9QKElucHV0U3RyZWFtVGVzdCwgT3BlbklucHV0U3RyZWFtVGVzdCkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIkNoZWNrIHRoYXQgaW5wdXQgc3RyZWFtcyBjYW4gYmUgb3BlbiB3aXRoIHRoZSByZXF1aXJlZCBhbmQgIgorICAgICAgICAicmVjb21tZW5kZWQgY29uZmlnIik7CisgICAgLy8gT3BlbiBkb25lIGluIHNldHVwCit9CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBSZXF1aXJlZElucHV0U3RyZWFtQ29uZmlnU3VwcG9ydCwgSW5wdXRTdHJlYW1UZXN0LAorICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oCisgICAgICAgIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3Q6OmdldFJlcXVpcmVkU3VwcG9ydENhcHR1cmVBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBTdXBwb3J0ZWRJbnB1dFN0cmVhbUNvbmZpZywgSW5wdXRTdHJlYW1UZXN0LAorICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oCisgICAgICAgIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3Q6OmdldFN1cHBvcnRlZENhcHR1cmVBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgIFJlY29tbWVuZGVkSW5wdXRTdHJlYW1Db25maWdTdXBwb3J0LCBJbnB1dFN0cmVhbVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0UmVjb21tZW5kZWRTdXBwb3J0Q2FwdHVyZUF1ZGlvQ29uZmlnKCkpLAorICAgICZnZW5lcmF0ZVRlc3ROYW1lKTsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gSVN0cmVhbSBnZXR0ZXJzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKiogVW5wYWNrIHRoZSBwcm92aWRlZCByZXN1bHQuCisgKiBJZiB0aGUgcmVzdWx0IGlzIG5vdCBPSywgcmVnaXN0ZXIgYSBmYWlsdXJlIGFuZCByZXR1cm4gYW4gdW5kZWZpbmVkIHZhbHVlLiAqLwordGVtcGxhdGUgPGNsYXNzIFI+CitzdGF0aWMgUiBleHRyYWN0KFJldHVybjxSPiByZXQpIHsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgRVhQRUNUX0lTX09LKHJldCk7CisgICAgICAgIHJldHVybiBSe307CisgICAgfQorICAgIHJldHVybiByZXQ7Cit9CisKKy8qIENvdWxkIG5vdCBmaW5kIGEgd2F5IHRvIHdyaXRlIGEgdGVzdCBmb3IgdHdvIHBhcmFtZXRyaXplZCBjbGFzcyBmaXh1cmUKKyAqIHRodXMgdXNlIHRoaXMgbWFjcm8gZG8gZHVwbGljYXRlIHRlc3RzIGZvciBJbnB1dCBhbmQgT3V0cHV0IHN0cmVhbSAqLworI2RlZmluZSBURVNUX0lPX1NUUkVBTSh0ZXN0X25hbWUsIGRvY3VtZW50YXRpb24sIGNvZGUpIFwKKyAgICBURVNUX1AoSW5wdXRTdHJlYW1UZXN0LCB0ZXN0X25hbWUpIHsgICAgICAgICAgICAgICBcCisgICAgICAgIGRvYzo6dGVzdChkb2N1bWVudGF0aW9uKTsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjb2RlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIHRlc3RfbmFtZSkgeyAgICAgICAgICAgICAgXAorICAgICAgICBkb2M6OnRlc3QoZG9jdW1lbnRhdGlvbik7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29kZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCitURVNUX0lPX1NUUkVBTSgKKyAgICBHZXRGcmFtZUNvdW50LAorICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZnJhbWUgY291bnQgPT0gdGhlIG9uZSBpdCB3YXMgb3BlbmVkIHdpdGgiLAorICAgIEFTU0VSVF9FUShhdWRpb0NvbmZpZy5mcmFtZUNvdW50LCBleHRyYWN0KHN0cmVhbS0+Z2V0RnJhbWVDb3VudCgpKSkpCisKK1RFU1RfSU9fU1RSRUFNKAorICAgIEdldFNhbXBsZVJhdGUsCisgICAgIkNoZWNrIHRoYXQgdGhlIHN0cmVhbSBzYW1wbGUgcmF0ZSA9PSB0aGUgb25lIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgc3RyZWFtLT5nZXRTYW1wbGVSYXRlKCkpCisKK1RFU1RfSU9fU1RSRUFNKAorICAgIEdldENoYW5uZWxNYXNrLAorICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gY2hhbm5lbCBtYXNrID09IHRoZSBvbmUgaXQgd2FzIG9wZW5lZCB3aXRoIiwKKyAgICBzdHJlYW0tPmdldENoYW5uZWxNYXNrKCkpCisKK1RFU1RfSU9fU1RSRUFNKEdldEZvcm1hdCwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZm9ybWF0ID09IHRoZSBvbmUgaXQgd2FzIG9wZW5lZCB3aXRoIiwKKyAgICAgICAgICAgICAgIEFTU0VSVF9FUShhdWRpb0NvbmZpZy5mb3JtYXQsIGV4dHJhY3Qoc3RyZWFtLT5nZXRGb3JtYXQoKSkpKQorCisvLyBUT0RPOiBmb3Igbm93IG9ubHkgY2hlY2sgdGhhdCB0aGUgZnJhbWVzaXplIGlzIG5vdCBpbmNvaGVyZW50CitURVNUX0lPX1NUUkVBTShHZXRGcmFtZVNpemUsCisgICAgICAgICAgICAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGZyYW1lIHNpemUgPT0gdGhlIG9uZSBpdCB3YXMgb3BlbmVkIHdpdGgiLAorICAgICAgICAgICAgICAgQVNTRVJUX0dUKGV4dHJhY3Qoc3RyZWFtLT5nZXRGcmFtZVNpemUoKSksIDBVKSkKKworVEVTVF9JT19TVFJFQU0oR2V0QnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gYnVmZmVyIHNpemU9PSB0aGUgb25lIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgICAgICAgICAgICBBU1NFUlRfR0UoZXh0cmFjdChzdHJlYW0tPmdldEJ1ZmZlclNpemUoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdChzdHJlYW0tPmdldEZyYW1lU2l6ZSgpKSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHksIGNsYXNzIENhcGFiaWxpdHlHZXR0ZXIsIGNsYXNzIEdldHRlciwgY2xhc3MgU2V0dGVyPgorc3RhdGljIHZvaWQgdGVzdENhcGFiaWxpdHlHZXR0ZXIoY29uc3Qgc3RyaW5nJiBuYW1lLCBJU3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eSBjdXJyZW50VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXBhYmlsaXR5R2V0dGVyIGNhcGFibGl0eUdldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldHRlciBnZXR0ZXIsIFNldHRlciBzZXR0ZXIpIHsKKyAgICBoaWRsX3ZlYzxQcm9wZXJ0eT4gY2FwYWJpbGl0aWVzOworICAgIEFTU0VSVF9PSygoc3RyZWFtLT4qY2FwYWJsaXR5R2V0dGVyKShyZXR1cm5JbihjYXBhYmlsaXRpZXMpKSk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zaXplKCkgPT0gMCkgeworICAgICAgICAvLyBUaGUgZGVmYXVsdCBoYWwgc2hvdWxkIHByb2JhYmx5IHJldHVybiBhIE5PVF9TVVBQT1JURUQgaWYgdGhlIGhhbAorICAgICAgICAvLyBkb2VzIG5vdCBleHBvc2UKKyAgICAgICAgLy8gY2FwYWJpbGl0eSByZXRyaWV2YWwuIEZvciBub3cgaXQgcmV0dXJucyBhbiBlbXB0eSBsaXN0IGlmIG5vdAorICAgICAgICAvLyBpbXBsZW1lbnRlZAorICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KG5hbWUgKyAiIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH07CisgICAgLy8gVE9ETzogVGhpcyBjb2RlIGhhcyBuZXZlciBiZWVuIHRlc3RlZCBvbiBhIGhhbCB0aGF0IHN1cHBvcnRzCisgICAgLy8gZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMKKyAgICBFWFBFQ1RfTkUoc3RkOjpmaW5kKGNhcGFiaWxpdGllcy5iZWdpbigpLCBjYXBhYmlsaXRpZXMuZW5kKCksIGN1cnJlbnRWYWx1ZSksCisgICAgICAgICAgICAgIGNhcGFiaWxpdGllcy5lbmQoKSkKKyAgICAgICAgPDwgImN1cnJlbnQgIiA8PCBuYW1lIDw8ICIgaXMgbm90IGluIHRoZSBsaXN0IG9mIHRoZSBzdXBwb3J0ZWQgb25lcyAiCisgICAgICAgIDw8IHRvU3RyaW5nKGNhcGFiaWxpdGllcyk7CisKKyAgICAvLyBDaGVjayB0aGF0IGFsbCBkZWNsYXJlZCBzdXBwb3J0ZWQgdmFsdWVzIGFyZSBpbmRlZWQgc3VwcG9ydGVkCisgICAgZm9yIChhdXRvIGNhcGFiaWxpdHkgOiBjYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgQVNTRVJUX09LKChzdHJlYW0tPipzZXR0ZXIpKGNhcGFiaWxpdHkpKTsKKyAgICAgICAgQVNTRVJUX0VRKGNhcGFiaWxpdHksIGV4dHJhY3QoKHN0cmVhbS0+KmdldHRlcikoKSkpOworICAgIH0KK30KKworVEVTVF9JT19TVFJFQU0oU3VwcG9ydGVkU2FtcGxlUmF0ZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gc2FtcGxlIHJhdGUgaXMgZGVjbGFyZWQgYXMgc3VwcG9ydGVkIiwKKyAgICAgICAgICAgICAgIHRlc3RDYXBhYmlsaXR5R2V0dGVyKCJnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlIiwgc3RyZWFtLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdChzdHJlYW0tPmdldFNhbXBsZVJhdGUoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmSVN0cmVhbTo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmSVN0cmVhbTo6Z2V0U2FtcGxlUmF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpzZXRTYW1wbGVSYXRlKSkKKworVEVTVF9JT19TVFJFQU0oU3VwcG9ydGVkQ2hhbm5lbE1hc2ssCisgICAgICAgICAgICAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGNoYW5uZWwgbWFzayBpcyBkZWNsYXJlZCBhcyBzdXBwb3J0ZWQiLAorICAgICAgICAgICAgICAgdGVzdENhcGFiaWxpdHlHZXR0ZXIoImdldFN1cHBvcnRlZENoYW5uZWxNYXNrIiwgc3RyZWFtLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdChzdHJlYW0tPmdldENoYW5uZWxNYXNrKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJklTdHJlYW06OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpnZXRDaGFubmVsTWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpzZXRDaGFubmVsTWFzaykpCisKK1RFU1RfSU9fU1RSRUFNKFN1cHBvcnRlZEZvcm1hdCwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZm9ybWF0IGlzIGRlY2xhcmVkIGFzIHN1cHBvcnRlZCIsCisgICAgICAgICAgICAgICB0ZXN0Q2FwYWJpbGl0eUdldHRlcigiZ2V0U3VwcG9ydGVkRm9ybWF0Iiwgc3RyZWFtLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdChzdHJlYW0tPmdldEZvcm1hdCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpnZXRTdXBwb3J0ZWRGb3JtYXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJklTdHJlYW06OmdldEZvcm1hdCwgJklTdHJlYW06OnNldEZvcm1hdCkpCisKK3N0YXRpYyB2b2lkIHRlc3RHZXREZXZpY2UoSVN0cmVhbSogc3RyZWFtLCBBdWRpb0RldmljZSBleHBlY3RlZERldmljZSkgeworICAgIC8vIFVuZm9ydHVuYXRlbHkgdGhlIGludGVyZmFjZSBkb2VzIG5vdCBhbGxvdyB0aGUgaW1wbGVtZW50YXRpb24gdG8gcmV0dXJuCisgICAgLy8gTk9UX1NVUFBPUlRFRAorICAgIC8vIFRodXMgYWxsb3cgTk9ORSBhcyBzaWduYWxpbmcgdGhhdCB0aGUgY2FsbCBpcyBub3Qgc3VwcG9ydGVkLgorICAgIGF1dG8gcmV0ID0gc3RyZWFtLT5nZXREZXZpY2UoKTsKKyAgICBBU1NFUlRfSVNfT0socmV0KTsKKyAgICBBdWRpb0RldmljZSBkZXZpY2UgPSByZXQ7CisgICAgQVNTRVJUX1RSVUUoZGV2aWNlID09IGV4cGVjdGVkRGV2aWNlIHx8IGRldmljZSA9PSBBdWRpb0RldmljZTo6Tk9ORSkKKyAgICAgICAgPDwgIkV4cGVjdGVkOiAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhleHBlY3RlZERldmljZSkKKyAgICAgICAgPDwgIlxuICBBY3R1YWw6ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGRldmljZSk7Cit9CisKK1RFU1RfSU9fU1RSRUFNKEdldERldmljZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZGV2aWNlID09IHRoZSBvbmUgaXQgd2FzIG9wZW5lZCB3aXRoIiwKKyAgICAgICAgICAgICAgIGFyZUF1ZGlvUGF0Y2hlc1N1cHBvcnRlZCgpCisgICAgICAgICAgICAgICAgICAgPyBkb2M6OnBhcnRpYWxUZXN0KCJBdWRpbyBwYXRjaGVzIGFyZSBzdXBwb3J0ZWQiKQorICAgICAgICAgICAgICAgICAgIDogdGVzdEdldERldmljZShzdHJlYW0uZ2V0KCksIGFkZHJlc3MuZGV2aWNlKSkKKworc3RhdGljIHZvaWQgdGVzdFNldERldmljZShJU3RyZWFtKiBzdHJlYW0sIGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpIHsKKyAgICBEZXZpY2VBZGRyZXNzIG90aGVyQWRkcmVzcyA9IGFkZHJlc3M7CisgICAgb3RoZXJBZGRyZXNzLmRldmljZSA9IChhZGRyZXNzLmRldmljZSAmIEF1ZGlvRGV2aWNlOjpCSVRfSU4pID09IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gQXVkaW9EZXZpY2U6Ok9VVF9TUEVBS0VSCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEF1ZGlvRGV2aWNlOjpJTl9CVUlMVElOX01JQzsKKyAgICBFWFBFQ1RfT0soc3RyZWFtLT5zZXREZXZpY2Uob3RoZXJBZGRyZXNzKSk7CisKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5zZXREZXZpY2UoYWRkcmVzcykpOyAgLy8gR28gYmFjayB0byB0aGUgb3JpZ2luYWwgdmFsdWUKK30KKworVEVTVF9JT19TVFJFQU0oCisgICAgU2V0RGV2aWNlLAorICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gY2FuIGJlIHJlcm91dGVkIHRvIFNQRUFLRVIgb3IgQlVJTFRJTl9NSUMiLAorICAgIGFyZUF1ZGlvUGF0Y2hlc1N1cHBvcnRlZCgpID8gZG9jOjpwYXJ0aWFsVGVzdCgiQXVkaW8gcGF0Y2hlcyBhcmUgc3VwcG9ydGVkIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRlc3RTZXREZXZpY2Uoc3RyZWFtLmdldCgpLCBhZGRyZXNzKSkKKworc3RhdGljIHZvaWQgdGVzdEdldEF1ZGlvUHJvcGVydGllcyhJU3RyZWFtKiBzdHJlYW0pIHsKKyAgICB1aW50MzJfdCBzYW1wbGVSYXRlSHo7CisgICAgQXVkaW9DaGFubmVsTWFzayBtYXNrOworICAgIEF1ZGlvRm9ybWF0IGZvcm1hdDsKKyAgICBzdHJlYW0tPmdldEF1ZGlvUHJvcGVydGllcyhyZXR1cm5JbihzYW1wbGVSYXRlSHosIG1hc2ssIGZvcm1hdCkpOworfQorCitURVNUX0lPX1NUUkVBTSgKKyAgICBHZXRBdWRpb1Byb3BlcnRpZXMsCisgICAgIkNoZWNrIHRoYXQgdGhlIHN0cmVhbSBhdWRpbyBwcm9wZXJ0aWVzID09IHRoZSBvbmVzIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgdGVzdEdldEF1ZGlvUHJvcGVydGllcyhzdHJlYW0uZ2V0KCkpKQorCitzdGF0aWMgdm9pZCB0ZXN0Q29ubmVjdGVkU3RhdGUoSVN0cmVhbSogc3RyZWFtKSB7CisgICAgRGV2aWNlQWRkcmVzcyBhZGRyZXNzID0ge307CisgICAgdXNpbmcgQUQgPSBBdWRpb0RldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDoKKyAgICAgICAgIHtBRDo6T1VUX0hETUksIEFEOjpPVVRfV0lSRURfSEVBRFBIT05FLCBBRDo6SU5fVVNCX0hFQURTRVR9KSB7CisgICAgICAgIGFkZHJlc3MuZGV2aWNlID0gZGV2aWNlOworCisgICAgICAgIEFTU0VSVF9PSyhzdHJlYW0tPnNldENvbm5lY3RlZFN0YXRlKGFkZHJlc3MsIHRydWUpKTsKKyAgICAgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0Q29ubmVjdGVkU3RhdGUoYWRkcmVzcywgZmFsc2UpKTsKKyAgICB9Cit9CitURVNUX0lPX1NUUkVBTShTZXRDb25uZWN0ZWRTdGF0ZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gY2FuIGJlIG5vdGlmaWVkIG9mIGRldmljZSBjb25uZWN0aW9uIGFuZCAiCisgICAgICAgICAgICAgICAiZGVjb25uZWN0aW9uIiwKKyAgICAgICAgICAgICAgIHRlc3RDb25uZWN0ZWRTdGF0ZShzdHJlYW0uZ2V0KCkpKQorCitzdGF0aWMgYXV0byBpbnZhbGlkQXJnc09yTm90U3VwcG9ydGVkT3JPSyA9IHtSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0OjpOT1RfU1VQUE9SVEVELCBSZXN1bHQ6Ok9LfTsKK1RFU1RfSU9fU1RSRUFNKFNldEh3QXZTeW5jLCAiVHJ5IHRvIHNldCBoYXJkd2FyZSBzeW5jIHRvIGFuIGludmFsaWQgdmFsdWUiLAorICAgICAgICAgICAgICAgQVNTRVJUX1JFU1VMVChpbnZhbGlkQXJnc09yTm90U3VwcG9ydGVkT3JPSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5zZXRId0F2U3luYyg2NjYpKSkKKworVEVTVF9JT19TVFJFQU0oR2V0SHdBdlN5bmMsICJHZXQgaGFyZHdhcmUgc3luYyBjYW4gbm90IGZhaWwiLAorICAgICAgICAgICAgICAgQVNTRVJUX0lTX09LKGRldmljZS0+Z2V0SHdBdlN5bmMoKSkpOworCitzdGF0aWMgdm9pZCBjaGVja0dldE5vUGFyYW1ldGVyKElTdHJlYW0qIHN0cmVhbSwgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvcjxSZXN1bHQ+IGV4cGVjdGVkUmVzdWx0cykgeworICAgIGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiBwYXJhbWV0ZXJzOworICAgIFJlc3VsdCByZXM7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+Z2V0UGFyYW1ldGVycyhrZXlzLCByZXR1cm5JbihyZXMsIHBhcmFtZXRlcnMpKSk7CisgICAgQVNTRVJUX1JFU1VMVChleHBlY3RlZFJlc3VsdHMsIHJlcyk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIGZvciAoYXV0byYgcGFyYW1ldGVyIDogcGFyYW1ldGVycykgeworICAgICAgICAgICAgQVNTRVJUX0VRKDBVLCBwYXJhbWV0ZXIudmFsdWUuc2l6ZSgpKSA8PCB0b1N0cmluZyhwYXJhbWV0ZXIpOworICAgICAgICB9CisgICAgfQorfQorCisvKiBHZXQvU2V0IHBhcmFtZXRlciBpcyBpbnRlbmRlZCB0byBiZSBhbiBvcGFxdWUgY2hhbm5lbCBiZXR3ZWVuIHZlbmRvcnMgYXBwIGFuZAorICogdGhlaXIgSEFMcy4KKyAqIFRodXMgY2FuIG5vdCBiZSBtZWFuaW5nZnVsbHkgdGVzdGVkLgorICovCitURVNUX0lPX1NUUkVBTShnZXRFbXB0eVNldFBhcmFtZXRlciwgIlJldHJpZXZlIHRoZSB2YWx1ZXMgb2YgYW4gZW1wdHkgc2V0IiwKKyAgICAgICAgICAgICAgIGNoZWNrR2V0Tm9QYXJhbWV0ZXIoc3RyZWFtLmdldCgpLCB7fSAvKiBrZXlzICovLCB7UmVzdWx0OjpPS30pKQorCitURVNUX0lPX1NUUkVBTShnZXROb25FeGlzdGluZ1BhcmFtZXRlciwKKyAgICAgICAgICAgICAgICJSZXRyaWV2ZSB0aGUgdmFsdWVzIG9mIGFuIG5vbiBleGlzdGluZyBwYXJhbWV0ZXIiLAorICAgICAgICAgICAgICAgY2hlY2tHZXROb1BhcmFtZXRlcihzdHJlYW0uZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiTm9uIGV4aXN0aW5nIGtleSJ9IC8qIGtleXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtSZXN1bHQ6Ok5PVF9TVVBQT1JURUR9KSkKKworVEVTVF9JT19TVFJFQU0oc2V0RW1wdHlTZXRQYXJhbWV0ZXIsCisgICAgICAgICAgICAgICAiU2V0IHRoZSB2YWx1ZXMgb2YgYW4gZW1wdHkgc2V0IG9mIHBhcmFtZXRlcnMiLAorICAgICAgICAgICAgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6Ok9LLCBzdHJlYW0tPnNldFBhcmFtZXRlcnMoe30pKSkKKworVEVTVF9JT19TVFJFQU0oCisgICAgc2V0Tm9uRXhpc3RpbmdQYXJhbWV0ZXIsICJTZXQgdGhlIHZhbHVlcyBvZiBhbiBub24gZXhpc3RpbmcgcGFyYW1ldGVyIiwKKyAgICAvLyBVbmZvcnR1bmF0ZWx5LCB0aGUgc2V0X3BhcmFtZXRlciBsZWdhY3kgaW50ZXJmYWNlIGRpZCBub3QgcmV0dXJuIGFueQorICAgIC8vIGVycm9yIGNvZGUgd2hlbiBhIGtleSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIFRvIGFsbG93IGltcGxlbWVudGF0aW9uIHRvIGp1c3Qgd3JhcHBlZCB0aGUgbGVnYWN5IG9uZSwgY29uc2lkZXIgT0sgYXMgYQorICAgIC8vIHZhbGlkIHJlc3VsdCBmb3Igc2V0dGluZyBhIG5vbiBleGlzdGluZyBwYXJhbWV0ZXIuCisgICAgQVNTRVJUX1JFU1VMVChpbnZhbGlkQXJnc09yTm90U3VwcG9ydGVkT3JPSywKKyAgICAgICAgICAgICAgICAgIHN0cmVhbS0+c2V0UGFyYW1ldGVycyh7eyJub24gZXhpc3Rpbmcga2V5IiwgIjAifX0pKSkKKworVEVTVF9JT19TVFJFQU0oRGVidWdEdW1wLAorICAgICAgICAgICAgICAgIkNoZWNrIHRoYXQgYSBzdHJlYW0gY2FuIGR1bXAgaXRzIHN0YXRlIHdpdGhvdXQgZXJyb3IiLAorICAgICAgICAgICAgICAgdGVzdERlYnVnRHVtcChbdGhpc10oY29uc3QgYXV0byYgaGFuZGxlKSB7CisgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0cmVhbS0+ZGVidWdEdW1wKGhhbmRsZSk7CisgICAgICAgICAgICAgICB9KSkKKworVEVTVF9JT19TVFJFQU0oRGVidWdEdW1wSW52YWxpZEFyZ3VtZW50cywKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZHVtcCBkb2Vzbid0IGNyYXNoIG9uIGludmFsaWQgYXJndW1lbnRzIiwKKyAgICAgICAgICAgICAgIEFTU0VSVF9PSyhzdHJlYW0tPmRlYnVnRHVtcChoaWRsX2hhbmRsZSgpKSkpCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIGFkZFJlbW92ZUVmZmVjdCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVEVTVF9JT19TVFJFQU0oQWRkTm9uRXhpc3RpbmdFZmZlY3QsICJBZGRpbmcgYSBub24gZXhpc3RpbmcgZWZmZWN0IHNob3VsZCBmYWlsIiwKKyAgICAgICAgICAgICAgIEFTU0VSVF9SRVNVTFQoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgc3RyZWFtLT5hZGRFZmZlY3QoNjY2KSkpCitURVNUX0lPX1NUUkVBTShSZW1vdmVOb25FeGlzdGluZ0VmZmVjdCwKKyAgICAgICAgICAgICAgICJSZW1vdmluZyBhIG5vbiBleGlzdGluZyBlZmZlY3Qgc2hvdWxkIGZhaWwiLAorICAgICAgICAgICAgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPnJlbW92ZUVmZmVjdCg2NjYpKSkKKworLy8gVE9ETzogcG9zaXRpdmUgdGVzdHMKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIENvbnRyb2wgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitURVNUX0lPX1NUUkVBTShzdGFuZGJ5LCAiTWFrZSBzdXJlIHRoZSBzdHJlYW0gY2FuIGJlIHB1dCBpbiBzdGFuYnkiLAorICAgICAgICAgICAgICAgQVNTRVJUX09LKHN0cmVhbS0+c3RhbmRieSgpKSkgIC8vIGNhbiBub3QgZmFpbAorCitzdGF0aWMgdmVjdG9yPFJlc3VsdD4gaW52YWxpZFN0YXRlT3JOb3RTdXBwb3J0ZWQgPSB7UmVzdWx0OjpJTlZBTElEX1NUQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRH07CisKK1RFU1RfSU9fU1RSRUFNKHN0YXJ0Tm9NbWFwLAorICAgICAgICAgICAgICAgIlN0YXJ0aW5nIGEgbW1hcGVkIHN0cmVhbSBiZWZvcmUgbWFwcGluZyBpdCBzaG91bGQgZmFpbCIsCisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRTdGF0ZU9yTm90U3VwcG9ydGVkLCBzdHJlYW0tPnN0YXJ0KCkpKQorCitURVNUX0lPX1NUUkVBTShzdG9wTm9NbWFwLAorICAgICAgICAgICAgICAgIlN0b3BwaW5nIGEgbW1hcGVkIHN0cmVhbSBiZWZvcmUgbWFwcGluZyBpdCBzaG91bGQgZmFpbCIsCisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRTdGF0ZU9yTm90U3VwcG9ydGVkLCBzdHJlYW0tPnN0b3AoKSkpCisKK1RFU1RfSU9fU1RSRUFNKGdldE1tYXBQb3NpdGlvbk5vTW1hcCwKKyAgICAgICAgICAgICAgICJHZXQgYSBzdHJlYW0gTW1hcCBwb3NpdGlvbiBiZWZvcmUgbWFwcGluZyBpdCBzaG91bGQgZmFpbCIsCisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRTdGF0ZU9yTm90U3VwcG9ydGVkLCBzdHJlYW0tPnN0b3AoKSkpCisKK1RFU1RfSU9fU1RSRUFNKGNsb3NlLCAiTWFrZSBzdXJlIGEgc3RyZWFtIGNhbiBiZSBjbG9zZWQiLAorICAgICAgICAgICAgICAgQVNTRVJUX09LKGNsb3NlU3RyZWFtKCkpKQorVEVTVF9JT19TVFJFQU0oY2xvc2VUd2ljZSwgIk1ha2Ugc3VyZSBhIHN0cmVhbSBjYW4gbm90IGJlIGNsb3NlZCB0d2ljZSIsCisgICAgICAgICAgICAgICBBU1NFUlRfT0soY2xvc2VTdHJlYW0oKSk7CisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9TVEFURSwgY2xvc2VTdHJlYW0oKSkpCisKK3N0YXRpYyBhdXRvIGludmFsaWRBcmdzT3JOb3RTdXBwb3J0ZWQgPSB7UmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0OjpOT1RfU1VQUE9SVEVEfTsKK3N0YXRpYyB2b2lkIHRlc3RDcmVhdGVUb29CaWdNbWFwQnVmZmVyKElTdHJlYW0qIHN0cmVhbSkgeworICAgIE1tYXBCdWZmZXJJbmZvIGluZm87CisgICAgUmVzdWx0IHJlczsKKyAgICAvLyBBc3N1bWUgdGhhdCBpbnQgbWF4IGlzIGEgdmFsdWUgdG9vIGJpZyB0byBiZSBhbGxvY2F0ZWQKKyAgICAvLyBUaGlzIGlzIHRydWUgY3VycmVudGx5IHdpdGggYSAzMmJpdCBtZWRpYSBzZXJ2ZXIsIGJ1dCBtaWdodCBub3Qgd2hlbiBpdAorICAgIC8vIHdpbGwgcnVuIGluIDY0IGJpdAorICAgIGF1dG8gbWluU2l6ZUZyYW1lcyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpOworICAgIEFTU0VSVF9PSyhzdHJlYW0tPmNyZWF0ZU1tYXBCdWZmZXIobWluU2l6ZUZyYW1lcywgcmV0dXJuSW4ocmVzLCBpbmZvKSkpOworICAgIEFTU0VSVF9SRVNVTFQoaW52YWxpZEFyZ3NPck5vdFN1cHBvcnRlZCwgcmVzKTsKK30KKworVEVTVF9JT19TVFJFQU0oQ3JlYXRlVG9vQmlnTW1hcEJ1ZmZlciwgIkNyZWF0ZSBtbWFwIGJ1ZmZlciB0b28gYmlnIHNob3VsZCBmYWlsIiwKKyAgICAgICAgICAgICAgIHRlc3RDcmVhdGVUb29CaWdNbWFwQnVmZmVyKHN0cmVhbS5nZXQoKSkpCisKK3N0YXRpYyB2b2lkIHRlc3RHZXRNbWFwUG9zaXRpb25PZk5vbk1tYXBlZFN0cmVhbShJU3RyZWFtKiBzdHJlYW0pIHsKKyAgICBSZXN1bHQgcmVzOworICAgIE1tYXBQb3NpdGlvbiBwb3NpdGlvbjsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5nZXRNbWFwUG9zaXRpb24ocmV0dXJuSW4ocmVzLCBwb3NpdGlvbikpKTsKKyAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRBcmdzT3JOb3RTdXBwb3J0ZWQsIHJlcyk7Cit9CisKK1RFU1RfSU9fU1RSRUFNKAorICAgIEdldE1tYXBQb3NpdGlvbk9mTm9uTW1hcGVkU3RyZWFtLAorICAgICJSZXRyaWV2aW5nIHRoZSBtbWFwIHBvc2l0aW9uIG9mIGEgbm9uIG1tYXBlZCBzdHJlYW0gc2hvdWxkIGZhaWwiLAorICAgIHRlc3RHZXRNbWFwUG9zaXRpb25PZk5vbk1tYXBlZFN0cmVhbShzdHJlYW0uZ2V0KCkpKQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBTdHJlYW1JbiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIEdldEF1ZGlvU291cmNlKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiUmV0cmlldmluZyB0aGUgYXVkaW8gc291cmNlIG9mIGFuIGlucHV0IHN0cmVhbSBzaG91bGQgYWx3YXlzIHN1Y2NlZWQiKTsKKyAgICBBdWRpb1NvdXJjZSBzb3VyY2U7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+Z2V0QXVkaW9Tb3VyY2UocmV0dXJuSW4ocmVzLCBzb3VyY2UpKSk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiZ2V0QXVkaW9Tb3VyY2UgaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9PSyhyZXMpOworICAgIEFTU0VSVF9FUShBdWRpb1NvdXJjZTo6REVGQVVMVCwgc291cmNlKTsKK30KKworc3RhdGljIHZvaWQgdGVzdFVuaXRhcnlHYWluKHN0ZDo6ZnVuY3Rpb248UmV0dXJuPFJlc3VsdD4oZmxvYXQpPiBzZXRHYWluKSB7CisgICAgZm9yIChmbG9hdCB2YWx1ZSA6CisgICAgICAgICAoZmxvYXRbXSl7LUlORklOSVRZLCAtMS4wLCAxLjAgKyBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpLAorICAgICAgICAgICAgICAgICAgIDIuMCwgSU5GSU5JVFksIE5BTn0pIHsKKyAgICAgICAgRVhQRUNUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBzZXRHYWluKHZhbHVlKSkgPDwgInZhbHVlPSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgdmFsdWU7CisgICAgfQorICAgIC8vIERvIG5vdCBjb25zaWRlciAtMC4wIGFzIGFuIGludmFsaWQgdmFsdWUgYXMgaXQgaXMgPT0gd2l0aCAwLjAKKyAgICBmb3IgKGZsb2F0IHZhbHVlIDogey0wLjAsIDAuMCwgMC4wMSwgMC41LCAwLjA5LCAxLjAgLyogUmVzdG9yZSB2b2x1bWUqL30pIHsKKyAgICAgICAgRVhQRUNUX09LKHNldEdhaW4odmFsdWUpKSA8PCAidmFsdWU9IiA8PCB2YWx1ZTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RPcHRpb25hbFVuaXRhcnlHYWluKAorICAgIHN0ZDo6ZnVuY3Rpb248UmV0dXJuPFJlc3VsdD4oZmxvYXQpPiBzZXRHYWluLCBzdHJpbmcgZGVidWdOYW1lKSB7CisgICAgYXV0byByZXN1bHQgPSBzZXRHYWluKDEpOworICAgIEFTU0VSVF9JU19PSyhyZXN1bHQpOworICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoZGVidWdOYW1lICsgIiBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdFVuaXRhcnlHYWluKHNldEdhaW4pOworfQorCitURVNUX1AoSW5wdXRTdHJlYW1UZXN0LCBTZXRHYWluKSB7CisgICAgZG9jOjp0ZXN0KCJUaGUgZ2FpbiBvZiBhbiBpbnB1dCBzdHJlYW0gc2hvdWxkIG9ubHkgYmUgc2V0IGJldHdlZW4gWzAsMV0iKTsKKyAgICB0ZXN0T3B0aW9uYWxVbml0YXJ5R2FpbigKKyAgICAgICAgW3RoaXNdKGZsb2F0IHZvbHVtZSkgeyByZXR1cm4gc3RyZWFtLT5zZXRHYWluKHZvbHVtZSk7IH0sCisgICAgICAgICJJbnB1dFN0cmVhbTo6c2V0R2FpbiIpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0UHJlcGFyZUZvclJlYWRpbmcoSVN0cmVhbUluKiBzdHJlYW0sIHVpbnQzMl90IGZyYW1lU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmcmFtZXNDb3VudCkgeworICAgIFJlc3VsdCByZXM7CisgICAgLy8gSWdub3JlIG91dHB1dCBwYXJhbWV0ZXJzIGFzIHRoZSBjYWxsIHNob3VsZCBmYWlsCisgICAgQVNTRVJUX09LKHN0cmVhbS0+cHJlcGFyZUZvclJlYWRpbmcoCisgICAgICAgIGZyYW1lU2l6ZSwgZnJhbWVzQ291bnQsCisgICAgICAgIFsmcmVzXShhdXRvIHIsIGF1dG8mLCBhdXRvJiwgYXV0byYsIGF1dG8mKSB7IHJlcyA9IHI7IH0pKTsKKyAgICBFWFBFQ1RfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHJlcyk7Cit9CisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIFByZXBhcmVGb3JSZWFkaW5nV2l0aFplcm9CdWZmZXIpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJQcmVwYXJpbmcgYSBzdHJlYW0gZm9yIHJlYWRpbmcgd2l0aCBhIDAgc2l6ZWQgYnVmZmVyIHNob3VsZCBmYWlsIik7CisgICAgdGVzdFByZXBhcmVGb3JSZWFkaW5nKHN0cmVhbS5nZXQoKSwgMCwgMCk7Cit9CisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIFByZXBhcmVGb3JSZWFkaW5nV2l0aEh1Z2VCdWZmZXIpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJQcmVwYXJpbmcgYSBzdHJlYW0gZm9yIHJlYWRpbmcgd2l0aCBhIDJeMzIgc2l6ZWQgYnVmZmVyIHNob3VsZCBmYWlsIik7CisgICAgdGVzdFByZXBhcmVGb3JSZWFkaW5nKHN0cmVhbS5nZXQoKSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKK30KKworVEVTVF9QKElucHV0U3RyZWFtVGVzdCwgUHJlcGFyZUZvclJlYWRpbmdDaGVja092ZXJmbG93KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiUHJlcGFyaW5nIGEgc3RyZWFtIGZvciByZWFkaW5nIHdpdGggYSBvdmVyZmxvd2luZyBzaXplZCBidWZmZXIgc2hvdWxkICIKKyAgICAgICAgImZhaWwiKTsKKyAgICBhdXRvIHVpbnRNYXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCk7CisgICAgdGVzdFByZXBhcmVGb3JSZWFkaW5nKHN0cmVhbS5nZXQoKSwgdWludE1heCwgdWludE1heCk7Cit9CisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIEdldElucHV0RnJhbWVzTG9zdCkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIlRoZSBudW1iZXIgb2YgZnJhbWVzIGxvc3Qgb24gYSBuZXZlciBzdGFydGVkIHN0cmVhbSBzaG91bGQgYmUgMCIpOworICAgIGF1dG8gcmV0ID0gc3RyZWFtLT5nZXRJbnB1dEZyYW1lc0xvc3QoKTsKKyAgICBBU1NFUlRfSVNfT0socmV0KTsKKyAgICB1aW50MzJfdCBmcmFtZXNMb3N0e3JldH07CisgICAgQVNTRVJUX0VRKDBVLCBmcmFtZXNMb3N0KTsKK30KKworVEVTVF9QKElucHV0U3RyZWFtVGVzdCwgZ2V0Q2FwdHVyZVBvc2l0aW9uKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiVGhlIGNhcHR1cmUgcG9zaXRpb24gb2YgYSBub24gcHJlcGFyZWQgc3RyZWFtIHNob3VsZCBub3QgYmUgIgorICAgICAgICAicmV0cmlldmFibGUiKTsKKyAgICB1aW50NjRfdCBmcmFtZXM7CisgICAgdWludDY0X3QgdGltZTsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5nZXRDYXB0dXJlUG9zaXRpb24ocmV0dXJuSW4ocmVzLCBmcmFtZXMsIHRpbWUpKSk7CisgICAgQVNTRVJUX1JFU1VMVChpbnZhbGlkU3RhdGVPck5vdFN1cHBvcnRlZCwgcmVzKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gU3RyZWFtSW4gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgZ2V0TGF0ZW5jeSkgeworICAgIGRvYzo6dGVzdCgiTWFrZSBzdXJlIGxhdGVuY3kgaXMgb3ZlciAwIik7CisgICAgYXV0byByZXN1bHQgPSBzdHJlYW0tPmdldExhdGVuY3koKTsKKyAgICBBU1NFUlRfSVNfT0socmVzdWx0KTsKKyAgICBBU1NFUlRfR1QocmVzdWx0LCAwVSk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBzZXRWb2x1bWUpIHsKKyAgICBkb2M6OnRlc3QoIlRyeSB0byBzZXQgdGhlIG91dHB1dCB2b2x1bWUiKTsKKyAgICB0ZXN0T3B0aW9uYWxVbml0YXJ5R2FpbigKKyAgICAgICAgW3RoaXNdKGZsb2F0IHZvbHVtZSkgeyByZXR1cm4gc3RyZWFtLT5zZXRWb2x1bWUodm9sdW1lLCB2b2x1bWUpOyB9LAorICAgICAgICAic2V0Vm9sdW1lIik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RQcmVwYXJlRm9yV3JpdGluZyhJU3RyZWFtT3V0KiBzdHJlYW0sIHVpbnQzMl90IGZyYW1lU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmcmFtZXNDb3VudCkgeworICAgIFJlc3VsdCByZXM7CisgICAgLy8gSWdub3JlIG91dHB1dCBwYXJhbWV0ZXJzIGFzIHRoZSBjYWxsIHNob3VsZCBmYWlsCisgICAgQVNTRVJUX09LKHN0cmVhbS0+cHJlcGFyZUZvcldyaXRpbmcoCisgICAgICAgIGZyYW1lU2l6ZSwgZnJhbWVzQ291bnQsCisgICAgICAgIFsmcmVzXShhdXRvIHIsIGF1dG8mLCBhdXRvJiwgYXV0byYsIGF1dG8mKSB7IHJlcyA9IHI7IH0pKTsKKyAgICBFWFBFQ1RfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHJlcyk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBQcmVwYXJlRm9yV3JpdGVXaXRoWmVyb0J1ZmZlcikgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIlByZXBhcmluZyBhIHN0cmVhbSBmb3Igd3JpdGluZyB3aXRoIGEgMCBzaXplZCBidWZmZXIgc2hvdWxkIGZhaWwiKTsKKyAgICB0ZXN0UHJlcGFyZUZvcldyaXRpbmcoc3RyZWFtLmdldCgpLCAwLCAwKTsKK30KKworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIFByZXBhcmVGb3JXcml0ZVdpdGhIdWdlQnVmZmVyKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiUHJlcGFyaW5nIGEgc3RyZWFtIGZvciB3cml0aW5nIHdpdGggYSAyXjMyIHNpemVkIGJ1ZmZlciBzaG91bGQgZmFpbCIpOworICAgIHRlc3RQcmVwYXJlRm9yV3JpdGluZyhzdHJlYW0uZ2V0KCksIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBQcmVwYXJlRm9yV3JpdGluZ0NoZWNrT3ZlcmZsb3cpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJQcmVwYXJpbmcgYSBzdHJlYW0gZm9yIHdyaXRpbmcgd2l0aCBhIG92ZXJmbG93aW5nIHNpemVkIGJ1ZmZlciBzaG91bGQgIgorICAgICAgICAiZmFpbCIpOworICAgIGF1dG8gdWludE1heCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKTsKKyAgICB0ZXN0UHJlcGFyZUZvcldyaXRpbmcoc3RyZWFtLmdldCgpLCB1aW50TWF4LCB1aW50TWF4KTsKK30KKworc3RydWN0IENhcGFiaWxpdHkgeworICAgIENhcGFiaWxpdHkoSVN0cmVhbU91dCogc3RyZWFtKSB7CisgICAgICAgIEVYUEVDVF9PSyhzdHJlYW0tPnN1cHBvcnRzUGF1c2VBbmRSZXN1bWUocmV0dXJuSW4ocGF1c2UsIHJlc3VtZSkpKTsKKyAgICAgICAgYXV0byByZXQgPSBzdHJlYW0tPnN1cHBvcnRzRHJhaW4oKTsKKyAgICAgICAgRVhQRUNUX0lTX09LKHJldCk7CisgICAgICAgIGlmIChyZXQuaXNPaygpKSB7CisgICAgICAgICAgICBkcmFpbiA9IHJldDsKKyAgICAgICAgfQorICAgIH0KKyAgICBib29sIHBhdXNlID0gZmFsc2U7CisgICAgYm9vbCByZXN1bWUgPSBmYWxzZTsKKyAgICBib29sIGRyYWluID0gZmFsc2U7Cit9OworCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgU3VwcG9ydHNQYXVzZUFuZFJlc3VtZUFuZERyYWluKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSW1wbGVtZW50YXRpb24gbXVzdCBleHBvc2UgcGF1c2UsIHJlc3VtZSBhbmQgZHJhaW4gY2FwYWJpbGl0aWVzIik7CisgICAgQ2FwYWJpbGl0eShzdHJlYW0uZ2V0KCkpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVmFsdWU+CitzdGF0aWMgdm9pZCBjaGVja0ludmFsaWRTdGF0ZU9yMChSZXN1bHQgcmVzLCBWYWx1ZSB2YWx1ZSkgeworICAgIHN3aXRjaCAocmVzKSB7CisgICAgICAgIGNhc2UgUmVzdWx0OjpJTlZBTElEX1NUQVRFOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmVzdWx0OjpPSzoKKyAgICAgICAgICAgIEFTU0VSVF9FUSgwVSwgdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgcmVzdWx0ICIgPDwgdG9TdHJpbmcocmVzKTsKKyAgICB9Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBHZXRSZW5kZXJQb3NpdGlvbikgeworICAgIGRvYzo6dGVzdCgiQSBuZXcgc3RyZWFtIHJlbmRlciBwb3NpdGlvbiBzaG91bGQgYmUgMCBvciBJTlZBTElEX1NUQVRFIik7CisgICAgdWludDMyX3QgZHNwRnJhbWVzOworICAgIEFTU0VSVF9PSyhzdHJlYW0tPmdldFJlbmRlclBvc2l0aW9uKHJldHVybkluKHJlcywgZHNwRnJhbWVzKSkpOworICAgIGlmIChyZXMgPT0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoImdldFJlbmRlclBvc2l0aW9uIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjaGVja0ludmFsaWRTdGF0ZU9yMChyZXMsIGRzcEZyYW1lcyk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBHZXROZXh0V3JpdGVUaW1lc3RhbXApIHsKKyAgICBkb2M6OnRlc3QoIkEgbmV3IHN0cmVhbSBuZXh0IHdyaXRlIHRpbWVzdGFtcCBzaG91bGQgYmUgMCBvciBJTlZBTElEX1NUQVRFIik7CisgICAgdWludDY0X3QgdGltZXN0YW1wVXM7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+Z2V0TmV4dFdyaXRlVGltZXN0YW1wKHJldHVybkluKHJlcywgdGltZXN0YW1wVXMpKSk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiZ2V0TmV4dFdyaXRlVGltZXN0YW1wIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjaGVja0ludmFsaWRTdGF0ZU9yMChyZXMsIHRpbWVzdGFtcFVzKTsKK30KKworLyoqIFN0dWIgaW1wbGVtZW50YXRpb24gb2Ygb3V0IHN0cmVhbSBjYWxsYmFjay4gKi8KK2NsYXNzIE1vY2tPdXRDYWxsYmFja3MgOiBwdWJsaWMgSVN0cmVhbU91dENhbGxiYWNrIHsKKyAgICBSZXR1cm48dm9pZD4gb25Xcml0ZVJlYWR5KCkgb3ZlcnJpZGUgeyByZXR1cm4ge307IH0KKyAgICBSZXR1cm48dm9pZD4gb25EcmFpblJlYWR5KCkgb3ZlcnJpZGUgeyByZXR1cm4ge307IH0KKyAgICBSZXR1cm48dm9pZD4gb25FcnJvcigpIG92ZXJyaWRlIHsgcmV0dXJuIHt9OyB9Cit9OworCitzdGF0aWMgYm9vbCBpc0FzeW5jTW9kZVN1cHBvcnRlZChJU3RyZWFtT3V0KiBzdHJlYW0pIHsKKyAgICBhdXRvIHJlcyA9IHN0cmVhbS0+c2V0Q2FsbGJhY2sobmV3IE1vY2tPdXRDYWxsYmFja3MpOworICAgIHN0cmVhbS0+Y2xlYXJDYWxsYmFjaygpOyAgLy8gdHJ5IHRvIHJlc3RvcmUgdGhlIG5vIGNhbGxiYWNrIHN0YXRlLCBpZ25vcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFueSBlcnJvcgorICAgIGF1dG8gb2tPck5vdFN1cHBvcnRlZCA9IHtSZXN1bHQ6Ok9LLCBSZXN1bHQ6Ok5PVF9TVVBQT1JURUR9OworICAgIEVYUEVDVF9SRVNVTFQob2tPck5vdFN1cHBvcnRlZCwgcmVzKTsKKyAgICByZXR1cm4gcmVzLmlzT2soKSA/IHJlcyA9PSBSZXN1bHQ6Ok9LIDogZmFsc2U7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBTZXRDYWxsYmFjaykgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIklmIHN1cHBvcnRlZCwgcmVnaXN0ZXJpbmcgY2FsbGJhY2sgZm9yIGFzeW5jIG9wZXJhdGlvbiBzaG91bGQgbmV2ZXIgIgorICAgICAgICAiZmFpbCIpOworICAgIGlmICghaXNBc3luY01vZGVTdXBwb3J0ZWQoc3RyZWFtLmdldCgpKSkgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJUaGUgc3RyZWFtIGRvZXMgbm90IHN1cHBvcnQgYXN5bmMgb3BlcmF0aW9ucyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9PSyhzdHJlYW0tPnNldENhbGxiYWNrKG5ldyBNb2NrT3V0Q2FsbGJhY2tzKSk7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0Q2FsbGJhY2sobmV3IE1vY2tPdXRDYWxsYmFja3MpKTsKK30KKworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIGNsZWFyQ2FsbGJhY2spIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJJZiBzdXBwb3J0ZWQsIGNsZWFyaW5nIGEgY2FsbGJhY2sgdG8gZ28gYmFjayB0byBzeW5jIG9wZXJhdGlvbiBzaG91bGQgIgorICAgICAgICAibm90IGZhaWwiKTsKKyAgICBpZiAoIWlzQXN5bmNNb2RlU3VwcG9ydGVkKHN0cmVhbS5nZXQoKSkpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiVGhlIHN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IGFzeW5jIG9wZXJhdGlvbnMiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBUT0RPOiBDbGFyaWZ5IGlmIGNsZWFyaW5nIGEgbm9uIGV4aXN0aW5nIGNhbGxiYWNrIHNob3VsZCBmYWlsCisgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0Q2FsbGJhY2sobmV3IE1vY2tPdXRDYWxsYmFja3MpKTsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5jbGVhckNhbGxiYWNrKCkpOworfQorCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgUmVzdW1lKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSWYgc3VwcG9ydGVkLCBhIHN0cmVhbSBzaG91bGQgZmFpbCB0byByZXN1bWUgaWYgbm90IHByZXZpb3VzbHkgIgorICAgICAgICAicGF1c2VkIik7CisgICAgaWYgKCFDYXBhYmlsaXR5KHN0cmVhbS5nZXQoKSkucmVzdW1lKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoIlRoZSBvdXRwdXQgc3RyZWFtIGRvZXMgbm90IHN1cHBvcnQgcmVzdW1lIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfU1RBVEUsIHN0cmVhbS0+cmVzdW1lKCkpOworfQorCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgUGF1c2UpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJJZiBzdXBwb3J0ZWQsIGEgc3RyZWFtIHNob3VsZCBmYWlsIHRvIHBhdXNlIGlmIG5vdCBwcmV2aW91c2x5ICIKKyAgICAgICAgInN0YXJ0ZWQiKTsKKyAgICBpZiAoIUNhcGFiaWxpdHkoc3RyZWFtLmdldCgpKS5wYXVzZSkgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJUaGUgb3V0cHV0IHN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IHBhdXNlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfU1RBVEUsIHN0cmVhbS0+cmVzdW1lKCkpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0RHJhaW4oSVN0cmVhbU91dCogc3RyZWFtLCBBdWRpb0RyYWluIHR5cGUpIHsKKyAgICBpZiAoIUNhcGFiaWxpdHkoc3RyZWFtKS5kcmFpbikgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJUaGUgb3V0cHV0IHN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IGRyYWluIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6Ok9LLCBzdHJlYW0tPmRyYWluKHR5cGUpKTsKK30KKworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIERyYWluQWxsKSB7CisgICAgZG9jOjp0ZXN0KCJJZiBzdXBwb3J0ZWQsIGEgc3RyZWFtIHNob3VsZCBhbHdheXMgc3VjY2VlZCB0byBkcmFpbiIpOworICAgIHRlc3REcmFpbihzdHJlYW0uZ2V0KCksIEF1ZGlvRHJhaW46OkFMTCk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBEcmFpbkVhcmx5Tm90aWZ5KSB7CisgICAgZG9jOjp0ZXN0KCJJZiBzdXBwb3J0ZWQsIGEgc3RyZWFtIHNob3VsZCBhbHdheXMgc3VjY2VlZCB0byBkcmFpbiIpOworICAgIHRlc3REcmFpbihzdHJlYW0uZ2V0KCksIEF1ZGlvRHJhaW46OkVBUkxZX05PVElGWSk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBGbHVzaFN0b3ApIHsKKyAgICBkb2M6OnRlc3QoIklmIHN1cHBvcnRlZCwgYSBzdHJlYW0gc2hvdWxkIGFsd2F5cyBzdWNjZWVkIHRvIGZsdXNoIik7CisgICAgYXV0byByZXQgPSBzdHJlYW0tPmZsdXNoKCk7CisgICAgQVNTRVJUX0lTX09LKHJldCk7CisgICAgaWYgKHJldCA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiRmx1c2ggaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9PSyhyZXQpOworfQorCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgR2V0UHJlc2VudGF0aW9uUG9zaXRpb25TdG9wKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSWYgc3VwcG9ydGVkLCBhIHN0cmVhbSBzaG91bGQgYWx3YXlzIHN1Y2NlZWQgdG8gcmV0cmlldmUgdGhlICIKKyAgICAgICAgInByZXNlbnRhdGlvbiBwb3NpdGlvbiIpOworICAgIHVpbnQ2NF90IGZyYW1lczsKKyAgICBUaW1lU3BlYyBtZXN1cmVUUzsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5nZXRQcmVzZW50YXRpb25Qb3NpdGlvbihyZXR1cm5JbihyZXMsIGZyYW1lcywgbWVzdXJlVFMpKSk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiZ2V0cHJlc2VudGF0aW9uUG9zaXRpb24gaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9FUSgwVSwgZnJhbWVzKTsKKworICAgIGlmIChtZXN1cmVUUy50dk5TZWMgPT0gMCAmJiBtZXN1cmVUUy50dlNlYyA9PSAwKSB7CisgICAgICAgIC8vIEFzIHRoZSBzdHJlYW0gaGFzIG5ldmVyIHdyaXR0ZW4gYSBmcmFtZSB5ZXQsCisgICAgICAgIC8vIHRoZSB0aW1lc3RhbXAgZG9lcyBub3QgcmVhbGx5IGhhdmUgYSBtZWFuaW5nLCBhbGxvdyB0byByZXR1cm4gMAorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gTWFrZSBzdXJlIHRoZSByZXR1cm4gbWVhc3VyZSBpcyBub3QgbW9yZSB0aGFuIDFzIG9sZC4KKyAgICBzdHJ1Y3QgdGltZXNwZWMgY3VycmVudFRTOworICAgIEFTU0VSVF9FUSgwLCBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJmN1cnJlbnRUUykpIDw8IGVycm5vOworCisgICAgYXV0byB0b01pY3JvU2VjID0gW10odWludDY0X3Qgc2VjLCBhdXRvIG5zZWMpIHsKKyAgICAgICAgcmV0dXJuIHNlYyAqIDFlKzYgKyBuc2VjIC8gMWUrMzsKKyAgICB9OworICAgIGF1dG8gY3VycmVudFRpbWUgPSB0b01pY3JvU2VjKGN1cnJlbnRUUy50dl9zZWMsIGN1cnJlbnRUUy50dl9uc2VjKTsKKyAgICBhdXRvIG1lc3VyZVRpbWUgPSB0b01pY3JvU2VjKG1lc3VyZVRTLnR2U2VjLCBtZXN1cmVUUy50dk5TZWMpOworICAgIEFTU0VSVF9QUkVEMihbXShhdXRvIGMsIGF1dG8gbSkgeyByZXR1cm4gYyAtIG0gPCAxZSs2OyB9LCBjdXJyZW50VGltZSwKKyAgICAgICAgICAgICAgICAgbWVzdXJlVGltZSk7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBQcmltYXJ5RGV2aWNlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBzZXRWb2ljZVZvbHVtZSkgeworICAgIGRvYzo6dGVzdCgiTWFrZSBzdXJlIHNldFZvaWNlVm9sdW1lIG9ubHkgc3VjY2VlZCBpZiB2b2x1bWUgaXMgaW4gWzAsMV0iKTsKKyAgICB0ZXN0VW5pdGFyeUdhaW4oCisgICAgICAgIFt0aGlzXShmbG9hdCB2b2x1bWUpIHsgcmV0dXJuIGRldmljZS0+c2V0Vm9pY2VWb2x1bWUodm9sdW1lKTsgfSk7Cit9CisKK1RFU1RfRihBdWRpb1ByaW1hcnlIaWRsVGVzdCwgc2V0TW9kZSkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIk1ha2Ugc3VyZSBzZXRNb2RlIGFsd2F5cyBzdWNjZWVkcyBpZiBtb2RlIGlzIHZhbGlkICIKKyAgICAgICAgImFuZCBmYWlscyBvdGhlcndpc2UiKTsKKyAgICAvLyBUZXN0IEludmFsaWQgdmFsdWVzCisgICAgZm9yIChBdWRpb01vZGUgbW9kZSA6CisgICAgICAgICB7QXVkaW9Nb2RlOjpJTlZBTElELCBBdWRpb01vZGU6OkNVUlJFTlQsIEF1ZGlvTW9kZTo6Q05UfSkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIm1vZGU9IiArIHRvU3RyaW5nKG1vZGUpKTsKKyAgICAgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBkZXZpY2UtPnNldE1vZGUobW9kZSkpOworICAgIH0KKyAgICAvLyBUZXN0IHZhbGlkIHZhbHVlcworICAgIGZvciAoQXVkaW9Nb2RlIG1vZGUgOgorICAgICAgICAge0F1ZGlvTW9kZTo6SU5fQ0FMTCwgQXVkaW9Nb2RlOjpJTl9DT01NVU5JQ0FUSU9OLCBBdWRpb01vZGU6OlJJTkdUT05FLAorICAgICAgICAgIEF1ZGlvTW9kZTo6Tk9STUFMIC8qIE1ha2Ugc3VyZSB0byBsZWF2ZSB0aGUgdGVzdCBpbiBub3JtYWwgbW9kZSAqL30pIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJtb2RlPSIgKyB0b1N0cmluZyhtb2RlKSk7CisgICAgICAgIEFTU0VSVF9PSyhkZXZpY2UtPnNldE1vZGUobW9kZSkpOworICAgIH0KK30KKworVEVTVF9GKEJvb2xBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCwgQnRTY29OcmVjRW5hYmxlZCkgeworICAgIGRvYzo6dGVzdCgiUXVlcnkgYW5kIHNldCB0aGUgQlQgU0NPIE5SJkVDIHN0YXRlIik7CisgICAgdGVzdE9wdGlvbmFsQWNjZXNzb3JzKCJCdFNjb05yZWNFbmFibGVkIiwge3RydWUsIGZhbHNlLCB0cnVlfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJklQcmltYXJ5RGV2aWNlOjpzZXRCdFNjb05yZWNFbmFibGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmSVByaW1hcnlEZXZpY2U6OmdldEJ0U2NvTnJlY0VuYWJsZWQpOworfQorCitURVNUX0YoQm9vbEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0LCBzZXRHZXRCdFNjb1dpZGViYW5kRW5hYmxlZCkgeworICAgIGRvYzo6dGVzdCgiUXVlcnkgYW5kIHNldCB0aGUgU0NPIHdoaWRlYmFuZCBzdGF0ZSIpOworICAgIHRlc3RPcHRpb25hbEFjY2Vzc29ycygiQnRTY29XaWRlYmFuZCIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJUHJpbWFyeURldmljZTo6c2V0QnRTY29XaWRlYmFuZEVuYWJsZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJUHJpbWFyeURldmljZTo6Z2V0QnRTY29XaWRlYmFuZEVuYWJsZWQpOworfQorCit1c2luZyBUdHlNb2RlQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QgPSBBY2Nlc3NvclByaW1hcnlIaWRsVGVzdDxUdHlNb2RlPjsKK1RFU1RfRihUdHlNb2RlQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QsIHNldEdldFR0eU1vZGUpIHsKKyAgICBkb2M6OnRlc3QoIlF1ZXJ5IGFuZCBzZXQgdGhlIFRUWSBtb2RlIHN0YXRlIik7CisgICAgdGVzdE9wdGlvbmFsQWNjZXNzb3JzKAorICAgICAgICAiVFRZIG1vZGUiLCB7VHR5TW9kZTo6T0ZGLCBUdHlNb2RlOjpIQ08sIFR0eU1vZGU6OlZDTywgVHR5TW9kZTo6RlVMTH0sCisgICAgICAgICZJUHJpbWFyeURldmljZTo6c2V0VHR5TW9kZSwgJklQcmltYXJ5RGV2aWNlOjpnZXRUdHlNb2RlKTsKK30KKworVEVTVF9GKEJvb2xBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCwgc2V0R2V0SGFjKSB7CisgICAgZG9jOjp0ZXN0KCJRdWVyeSBhbmQgc2V0IHRoZSBIQUMgc3RhdGUiKTsKKyAgICB0ZXN0T3B0aW9uYWxBY2Nlc3NvcnMoIkhBQyIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJUHJpbWFyeURldmljZTo6c2V0SGFjRW5hYmxlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJklQcmltYXJ5RGV2aWNlOjpnZXRIYWNFbmFibGVkKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLyBDbGVhbiBjYWNoZXMgb24gZ2xvYmFsIHRlYXIgZG93biAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICBlbnZpcm9ubWVudCA9IG5ldyBFbnZpcm9ubWVudDsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChlbnZpcm9ubWVudCk7CisgICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgICAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L0Fzc2VydE9rLmggYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9Bc3NlcnRPay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjODQ0MGUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9Bc3NlcnRPay5oCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCituYW1lc3BhY2UgZGV0YWlsIHsKKworLy8gVGhpcyBpcyBhIGRldGFpbCBuYW1lc3BhY2UsIHRodXMgaXQgaXMgT0sgdG8gaW1wb3J0IGEgY2xhc3MgYXMgbm9ib2R5IGVsc2UgaXMKKy8vIGFsbG93ZWQgdG8gdXNlIGl0Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRJc09rKGNvbnN0IGNoYXIqIGV4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXR1cm48VD4mIHJldCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdChyZXQuaXNPaygpKQorICAgICAgICAgICA8PCAiRXhwZWN0ZWQ6ICIgPDwgZXhwcgorICAgICAgICAgICA8PCAiXG4gdG8gYmUgYW4gT0sgUmV0dXJuIGJ1dCBpdCBpcyBub3Q6ICIgPDwgcmV0LmRlc2NyaXB0aW9uKCk7Cit9CisKKy8vIENhbGwgY29udGludWF0aW9uIGlmIHRoZSBwcm92aWRlZCByZXN1bHQgaXNPawordGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIENvbnRpbnVhdGlvbj4KK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBjb250aW51ZUlmSXNPayhjb25zdCBjaGFyKiBleHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJldHVybjxUPiYgcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRpbnVhdGlvbiBjb250aW51YXRpb24pIHsKKyAgICBhdXRvIGlzT2tTdGF0dXMgPSBhc3NlcnRJc09rKGV4cHIsIHJldCk7CisgICAgcmV0dXJuICFpc09rU3RhdHVzID8gaXNPa1N0YXR1cyA6IGNvbnRpbnVhdGlvbigpOworfQorCisvLyBFeHBlY3QgdHdvIGVxdWFsIFJlc3VsdHMKK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRSZXN1bHQoY29uc3QgY2hhciogZV9leHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByX2V4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCBleHBlY3RlZCwgUmVzdWx0IHJlc3VsdCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdChleHBlY3RlZCA9PSByZXN1bHQpCisgICAgICAgICAgIDw8ICJWYWx1ZSBvZjogIiA8PCByX2V4cHIKKyAgICAgICAgICAgPDwgIlxuICBBY3R1YWw6ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHJlc3VsdCkKKyAgICAgICAgICAgPDwgIlxuRXhwZWN0ZWQ6ICIgPDwgZV9leHByCisgICAgICAgICAgIDw8ICJcbldoaWNoIGlzOiAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhleHBlY3RlZCk7Cit9CisKKy8vIEV4cGVjdCB0d28gZXF1YWwgUmVzdWx0cyBvbmUgYmVpbmcgd3JhcHBlZCBpbiBhbiBPSyBSZXR1cm4KK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRSZXN1bHQoY29uc3QgY2hhciogZV9leHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByX2V4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCBleHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmV0dXJuPFJlc3VsdD4mIHJldCkgeworICAgIHJldHVybiBjb250aW51ZUlmSXNPayhyX2V4cHIsIHJldCwgWyZdIHsKKyAgICAgICAgcmV0dXJuIGFzc2VydFJlc3VsdChlX2V4cHIsIHJfZXhwciwgZXhwZWN0ZWQsIFJlc3VsdHtyZXR9KTsKKyAgICB9KTsKK30KKworLy8gRXhwZWN0IGEgUmVzdWx0IHRvIGJlIHBhcnQgb2YgYSBsaXN0IG9mIFJlc3VsdHMKK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRSZXN1bHQoCisgICAgY29uc3QgY2hhciogZV9leHByLCBjb25zdCBjaGFyKiByX2V4cHIsIGNvbnN0IHN0ZDo6dmVjdG9yPFJlc3VsdD4mIGV4cGVjdGVkLAorICAgIFJlc3VsdCByZXN1bHQpIHsKKyAgICBpZiAoc3RkOjpmaW5kKGV4cGVjdGVkLmJlZ2luKCksIGV4cGVjdGVkLmVuZCgpLCByZXN1bHQpICE9IGV4cGVjdGVkLmVuZCgpKSB7CisgICAgICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblN1Y2Nlc3MoKTsgIC8vIHJlc3VsdCBpcyBpbiBleHBlY3RlZAorICAgIH0KKyAgICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkKKyAgICAgICAgICAgPDwgIlZhbHVlIG9mOiAiIDw8IHJfZXhwcgorICAgICAgICAgICA8PCAiXG4gIEFjdHVhbDogIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcocmVzdWx0KQorICAgICAgICAgICA8PCAiXG5FeHBlY3RlZCBvbmUgb2Y6ICIgPDwgZV9leHByCisgICAgICAgICAgIDw8ICJcbiAgICAgICBXaGljaCBpczogIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoZXhwZWN0ZWQpOworfQorCisvLyBFeHBlY3QgYSBSZXN1bHQgd3JhcHBlZCBpbiBhbiBPSyBSZXR1cm4gdG8gYmUgcGFydCBvZiBhIGxpc3Qgb2YgUmVzdWx0cworaW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGFzc2VydFJlc3VsdCgKKyAgICBjb25zdCBjaGFyKiBlX2V4cHIsIGNvbnN0IGNoYXIqIHJfZXhwciwgY29uc3Qgc3RkOjp2ZWN0b3I8UmVzdWx0PiYgZXhwZWN0ZWQsCisgICAgY29uc3QgUmV0dXJuPFJlc3VsdD4mIHJldCkgeworICAgIHJldHVybiBjb250aW51ZUlmSXNPayhyX2V4cHIsIHJldCwgWyZdIHsKKyAgICAgICAgcmV0dXJuIGFzc2VydFJlc3VsdChlX2V4cHIsIHJfZXhwciwgZXhwZWN0ZWQsIFJlc3VsdHtyZXR9KTsKKyAgICB9KTsKK30KKworaW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGFzc2VydE9rKGNvbnN0IGNoYXIqIGV4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmV0dXJuPHZvaWQ+JiByZXQpIHsKKyAgICByZXR1cm4gYXNzZXJ0SXNPayhleHByLCByZXQpOworfQorCitpbmxpbmUgOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgYXNzZXJ0T2soY29uc3QgY2hhciogZXhwciwgUmVzdWx0IHJlc3VsdCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdChyZXN1bHQgPT0gUmVzdWx0OjpPSykKKyAgICAgICAgICAgPDwgIkV4cGVjdGVkIHN1Y2Nlc3M6ICIgPDwgZXhwcgorICAgICAgICAgICA8PCAiXG5BY3R1YWw6ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHJlc3VsdCk7Cit9CisKK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRPayhjb25zdCBjaGFyKiBleHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJldHVybjxSZXN1bHQ+JiByZXQpIHsKKyAgICByZXR1cm4gY29udGludWVJZklzT2soZXhwciwgcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0geyByZXR1cm4gYXNzZXJ0T2soZXhwciwgUmVzdWx0e3JldH0pOyB9KTsKK30KK30KKworI2RlZmluZSBBU1NFUlRfSVNfT0socmV0KSBBU1NFUlRfUFJFRF9GT1JNQVQxKGRldGFpbDo6YXNzZXJ0SXNPaywgcmV0KQorI2RlZmluZSBFWFBFQ1RfSVNfT0socmV0KSBFWFBFQ1RfUFJFRF9GT1JNQVQxKGRldGFpbDo6YXNzZXJ0SXNPaywgcmV0KQorCisvLyBUZXN0IGFueXRoaW5nIHByb3ZpZGVkIGlzIGFuZCBjb250YWlucyBvbmx5IE9LCisjZGVmaW5lIEFTU0VSVF9PSyhyZXQpIEFTU0VSVF9QUkVEX0ZPUk1BVDEoZGV0YWlsOjphc3NlcnRPaywgcmV0KQorI2RlZmluZSBFWFBFQ1RfT0socmV0KSBFWFBFQ1RfUFJFRF9GT1JNQVQxKGRldGFpbDo6YXNzZXJ0T2ssIHJldCkKKworI2RlZmluZSBBU1NFUlRfUkVTVUxUKGV4cGVjdGVkLCByZXQpIFwKKyAgICBBU1NFUlRfUFJFRF9GT1JNQVQyKGRldGFpbDo6YXNzZXJ0UmVzdWx0LCBleHBlY3RlZCwgcmV0KQorI2RlZmluZSBFWFBFQ1RfUkVTVUxUKGV4cGVjdGVkLCByZXQpIFwKKyAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKGRldGFpbDo6YXNzZXJ0UmVzdWx0LCBleHBlY3RlZCwgcmV0KQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvUHJldHR5UHJpbnRBdWRpb1R5cGVzLmggYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9QcmV0dHlQcmludEF1ZGlvVHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjVjZDFjCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvUHJldHR5UHJpbnRBdWRpb1R5cGVzLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisKKy8qKiBAZmlsZSBVc2UgSElETCBnZW5lcmF0ZWQgdG9TdHJpbmcgbWV0aG9kcyB0byBwcmV0dHkgcHJpbnQgZ3Rlc3QgZXJyb3JzICovCisKK25hbWVzcGFjZSBkZXRhaWwgeworCisvLyBQcmludCB0aGUgdmFsdWUgb2YgYW4gZW51bSBhcyBoZXgKK3RlbXBsYXRlIDxjbGFzcyBFbnVtPgoraW5saW5lIHZvaWQgcHJpbnRVbmRlcmx5aW5nVmFsdWUoRW51bSB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgKm9zIDw8IHN0ZDo6aGV4IDw8ICIgKDB4IiA8PCBzdGF0aWNfY2FzdDxzdGQ6OnVuZGVybHlpbmdfdHlwZV90PEVudW0+Pih2YWx1ZSkgPDwgIikiOworfQorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CisKK2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgUmVzdWx0JiByZXN1bHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB0b1N0cmluZyhyZXN1bHQpOworICAgIGRldGFpbDo6cHJpbnRVbmRlcmx5aW5nVmFsdWUocmVzdWx0LCBvcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFYyXzAKK25hbWVzcGFjZSBjb21tb24geworbmFtZXNwYWNlIFYyXzAgeworCitpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB0b1N0cmluZyhjb25maWcpOworfQorCitpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IEF1ZGlvRGV2aWNlJiBkZXZpY2UsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB0b1N0cmluZyhkZXZpY2UpOworICAgIGRldGFpbDo6cHJpbnRVbmRlcmx5aW5nVmFsdWUoZGV2aWNlLCBvcyk7Cit9CisKK2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgQXVkaW9DaGFubmVsTWFzayYgY2hhbm5lbE1hc2ssIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB0b1N0cmluZyhjaGFubmVsTWFzayk7CisgICAgZGV0YWlsOjpwcmludFVuZGVybHlpbmdWYWx1ZShjaGFubmVsTWFzaywgb3MpOworfQorCit9IC8vIG5hbWVzcGFjZSBWMl8wCit9IC8vIG5hbWVzcGFjZSBjb21tb24KK30gLy8gbmFtZXNwYWNlIGF1ZGlvCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvUmV0dXJuSW4uaCBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L1JldHVybkluLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIyMzg5YQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L1JldHVybkluLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDx0dXBsZT4KKworbmFtZXNwYWNlIHV0aWxpdHkgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKy8vIEhlbHBlciBjbGFzcyB0byBnZW5lcmF0ZSB0aGUgSElETCBzeW5jaHJvbm91cyBjYWxsYmFjawordGVtcGxhdGUgPGNsYXNzLi4uIFJlc3VsdFN0b3JlPgorY2xhc3MgUmV0dXJuSW4geworIHB1YmxpYzoKKyAgICAvLyBQcm92aWRlIHRvIHRoZSBjb25zdHJ1Y3RvciB0aGUgdmFyaWFibGVzIHdoZXJlIHRoZSBvdXRwdXQgcGFyYW1ldGVycyBtdXN0IGJlIGNvcGllZAorICAgIC8vIFRPRE86IHRha2UgcG9pbnRlcnMgdG8gbWF0Y2ggZ29vZ2xlIG91dHB1dCBwYXJhbWV0ZXIgc3R5bGUgPworICAgIFJldHVybkluKFJlc3VsdFN0b3JlJi4uLiB0cykgOiByZXN1bHRzKHRzLi4uKSB7fQorICAgIC8vIFN5bmNocm9ub3VzIGNhbGxiYWNrCisgICAgdGVtcGxhdGUgPGNsYXNzLi4uIFJlc3VsdHM+CisgICAgdm9pZCBvcGVyYXRvcigpIChSZXN1bHRzJiYuLi5yZXN1bHRzKSB7CisgICAgICAgIHNldChzdGQ6OmZvcndhcmQ8UmVzdWx0cz4ocmVzdWx0cykuLi4pOworICAgIH0KKyBwcml2YXRlOgorICAgIC8vIFJlY3Vyc2l2ZWx5IHNldCBhbGwgb3V0cHV0IHBhcmFtZXRlcnMKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgSGVhZCwgY2xhc3MuLi4gVGFpbD4KKyAgICB2b2lkIHNldChIZWFkJiYgaGVhZCwgVGFpbCYmLi4uIHRhaWwpIHsKKyAgICAgICAgc3RkOjpnZXQ8c2l6ZW9mLi4uKFJlc3VsdFN0b3JlKSAtIHNpemVvZi4uLihUYWlsKSAtIDE+KHJlc3VsdHMpCisgICAgICAgICAgICAgICAgICA9IHN0ZDo6Zm9yd2FyZDxIZWFkPihoZWFkKTsKKyAgICAgICAgc2V0KHRhaWwuLi4pOworICAgIH0KKyAgICAvLyBUcml2aWFsIGNhc2UKKyAgICB2b2lkIHNldCgpIHt9CisKKyAgICAvLyBBbGwgdmFyaWFibGVzIHRvIHNldCBhcmUgc3RvcmVkIGhlcmUKKyAgICBzdGQ6OnR1cGxlPFJlc3VsdFN0b3JlJi4uLj4gcmVzdWx0czsKK307Cit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworLy8gR2VuZXJhdGUgdGhlIEhJREwgc3luY2hyb25vdXMgY2FsbGJhY2sgd2l0aCBhIGNvcHkgcG9saWN5CisvLyBJbnB1dDogdGhlIHZhcmlhYmxlcyAobHZhbHVlIHJlZmVyZW5jZSkgd2hlcmUgdG8gc2F2ZSB0aGUgcmV0dXJuIHZhbHVlcworLy8gT3V0cHV0OiB0aGUgY2FsbGJhY2sgdG8gcHJvdmlkZSB0byBhIEhJREwgY2FsbCB3aXRoIGEgc3luY2hyb25vdXMgY2FsbGJhY2sKKy8vIFRoZSBvdXRwdXQgcGFyYW1ldGVycyAqd2lsbCBiZSBjb3BpZWQqIGRvIG5vdCB1c2UgdGhpcyBmdW5jdGlvbiBpZiB5b3UgaGF2ZQorLy8gYSB6ZXJvIGNvcHkgcG9saWN5Cit0ZW1wbGF0ZSA8Y2xhc3MuLi4gUmVzdWx0U3RvcmU+CitkZXRhaWw6OlJldHVybkluPFJlc3VsdFN0b3JlLi4uPiByZXR1cm5JbihSZXN1bHRTdG9yZSYuLi4gdHMpIHsgcmV0dXJuIHt0cy4uLn07fQorCit9CmRpZmYgLS1naXQgYS9hdWRpby9BbmRyb2lkLmJwIGIvYXVkaW8vQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2MyYmUxCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vQW5kcm9pZC5icApAQCAtMCwwICsxLDkgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjIuMCIsCisgICAgIjIuMC92dHMvZnVuY3Rpb25hbCIsCisgICAgImNvbW1vbi8yLjAiLAorICAgICJjb21tb24vMi4wL2RlZmF1bHQiLAorICAgICJlZmZlY3QvMi4wIiwKKyAgICAiZWZmZWN0LzIuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9hdWRpby9jb21tb24vMi4wL0FuZHJvaWQuYnAgYi9hdWRpby9jb21tb24vMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzlkYjE1YQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDU2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2NvbW1vbi8yLjAvdHlwZXMuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9jb21tb24vMi4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9jb21tb24vMi4wL2h3dHlwZXMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvQW5kcm9pZC5tayBiL2F1ZGlvL2NvbW1vbi8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzhhMzk1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vY29tbW9uLzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzkgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uLVYyLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXVkaW8vY29tbW9uL1YyXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+IHRoaXMtbGlicmFyeSAtPiBmcmFtZXdvcmsuamFyCitMT0NBTF9OT19TVEFOREFSRF9MSUJSQVJJRVMgOj0gdHJ1ZQorTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gY29yZS1vagorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvYXVkaW8vY29tbW9uLzIuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ4NmE1YwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzcgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAtdXRpbCIsCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzcmNzOiBbCisgICAgICAgICJFZmZlY3RNYXAuY3BwIiwKKyAgICAgICAgIkhpZGxVdGlscy5jcHAiLAorICAgIF0sCisKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorCisgICAgaGVhZGVyX2xpYnM6IFsKKyAgICAgICAgImxpYmF1ZGlvX3N5c3RlbV9oZWFkZXJzIiwKKyAgICAgICAgImxpYmhhcmR3YXJlX2hlYWRlcnMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdWRpby9jb21tb24vMi4wL2RlZmF1bHQvRWZmZWN0TWFwLmNwcCBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9FZmZlY3RNYXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwM2I5MWMKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9jb21tb24vMi4wL2RlZmF1bHQvRWZmZWN0TWFwLmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGF0b21pYz4KKworI2luY2x1ZGUgIkVmZmVjdE1hcC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CisKK0FORFJPSURfU0lOR0xFVE9OX1NUQVRJQ19JTlNUQU5DRShFZmZlY3RNYXApOworCisvLyBzdGF0aWMKK2NvbnN0IHVpbnQ2NF90IEVmZmVjdE1hcDo6SU5WQUxJRF9JRCA9IDA7CisKKy8vIHN0YXRpYwordWludDY0X3QgRWZmZWN0TWFwOjptYWtlVW5pcXVlSWQoKSB7CisgICAgc3RhdGljIHN0ZDo6YXRvbWljPHVpbnQ2NF90PiBjb3VudGVye0lOVkFMSURfSUQgKyAxfTsKKyAgICByZXR1cm4gY291bnRlcisrOworfQorCit1aW50NjRfdCBFZmZlY3RNYXA6OmFkZChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKSB7CisgICAgdWludDY0X3QgbmV3SWQgPSBtYWtlVW5pcXVlSWQoKTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgbUVmZmVjdHMuYWRkKG5ld0lkLCBoYW5kbGUpOworICAgIHJldHVybiBuZXdJZDsKK30KKworZWZmZWN0X2hhbmRsZV90IEVmZmVjdE1hcDo6Z2V0KGNvbnN0IHVpbnQ2NF90JiBpZCkgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1Mb2NrKTsKKyAgICBzc2l6ZV90IGlkeCA9IG1FZmZlY3RzLmluZGV4T2ZLZXkoaWQpOworICAgIHJldHVybiBpZHggPj0gMCA/IG1FZmZlY3RzW2lkeF0gOiBOVUxMOworfQorCit2b2lkIEVmZmVjdE1hcDo6cmVtb3ZlKGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtRWZmZWN0cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobUVmZmVjdHNbaV0gPT0gaGFuZGxlKSB7CisgICAgICAgICAgICBtRWZmZWN0cy5yZW1vdmVJdGVtc0F0KGkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9jb21tb24vMi4wL2RlZmF1bHQvRWZmZWN0TWFwLmggYi9hdWRpby9jb21tb24vMi4wL2RlZmF1bHQvRWZmZWN0TWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJiYmIxZgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9FZmZlY3RNYXAuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfRWZmZWN0TWFwX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9FZmZlY3RNYXBfSF8KKworI2luY2x1ZGUgPG11dGV4PgorCisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW9fZWZmZWN0Lmg+CisjaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9TaW5nbGV0b24uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworCisvLyBUaGlzIGNsYXNzIG5lZWRzIHRvIGJlIGluICdhbmRyb2lkJyBucyBiZWNhdXNlIFNpbmdsZXRvbiBtYWNyb3MgcmVxdWlyZSB0aGF0LgorY2xhc3MgRWZmZWN0TWFwIDogcHVibGljIFNpbmdsZXRvbjxFZmZlY3RNYXA+IHsKKyAgcHVibGljOgorICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBJTlZBTElEX0lEOworCisgICAgdWludDY0X3QgYWRkKGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworICAgIGVmZmVjdF9oYW5kbGVfdCBnZXQoY29uc3QgdWludDY0X3QmIGlkKTsKKyAgICB2b2lkIHJlbW92ZShlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKTsKKworICBwcml2YXRlOgorICAgIHN0YXRpYyB1aW50NjRfdCBtYWtlVW5pcXVlSWQoKTsKKworICAgIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgS2V5ZWRWZWN0b3I8dWludDY0X3QsIGVmZmVjdF9oYW5kbGVfdD4gbUVmZmVjdHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9FZmZlY3RNYXBfSF8KZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9IaWRsVXRpbHMuY3BwIGIvYXVkaW8vY29tbW9uLzIuMC9kZWZhdWx0L0hpZGxVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzljYjM3YwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9IaWRsVXRpbHMuY3BwCkBAIC0wLDAgKzEsMzM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAiSGlkbFV0aWxzLmgiCisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ2hhbm5lbE1hc2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRm9ybWF0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9HYWluTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvTWl4TGF0ZW5jeUNsYXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0Q29uZmlnTWFzazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvUG9ydFJvbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1BvcnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1N0cmVhbVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1VzYWdlOworCituYW1lc3BhY2UgYW5kcm9pZCB7CisKK3ZvaWQgSGlkbFV0aWxzOjphdWRpb0NvbmZpZ0Zyb21IYWwoY29uc3QgYXVkaW9fY29uZmlnX3QmIGhhbENvbmZpZywgQXVkaW9Db25maWcqIGNvbmZpZykgeworICAgIGNvbmZpZy0+c2FtcGxlUmF0ZUh6ID0gaGFsQ29uZmlnLnNhbXBsZV9yYXRlOworICAgIGNvbmZpZy0+Y2hhbm5lbE1hc2sgPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENvbmZpZy5jaGFubmVsX21hc2spOworICAgIGNvbmZpZy0+Zm9ybWF0ID0gQXVkaW9Gb3JtYXQoaGFsQ29uZmlnLmZvcm1hdCk7CisgICAgYXVkaW9PZmZsb2FkSW5mb0Zyb21IYWwoaGFsQ29uZmlnLm9mZmxvYWRfaW5mbywgJmNvbmZpZy0+b2ZmbG9hZEluZm8pOworICAgIGNvbmZpZy0+ZnJhbWVDb3VudCA9IGhhbENvbmZpZy5mcmFtZV9jb3VudDsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnVG9IYWwoY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywgYXVkaW9fY29uZmlnX3QqIGhhbENvbmZpZykgeworICAgIG1lbXNldChoYWxDb25maWcsIDAsIHNpemVvZihhdWRpb19jb25maWdfdCkpOworICAgIGhhbENvbmZpZy0+c2FtcGxlX3JhdGUgPSBjb25maWcuc2FtcGxlUmF0ZUh6OworICAgIGhhbENvbmZpZy0+Y2hhbm5lbF9tYXNrID0gc3RhdGljX2Nhc3Q8YXVkaW9fY2hhbm5lbF9tYXNrX3Q+KGNvbmZpZy5jaGFubmVsTWFzayk7CisgICAgaGFsQ29uZmlnLT5mb3JtYXQgPSBzdGF0aWNfY2FzdDxhdWRpb19mb3JtYXRfdD4oY29uZmlnLmZvcm1hdCk7CisgICAgYXVkaW9PZmZsb2FkSW5mb1RvSGFsKGNvbmZpZy5vZmZsb2FkSW5mbywgJmhhbENvbmZpZy0+b2ZmbG9hZF9pbmZvKTsKKyAgICBoYWxDb25maWctPmZyYW1lX2NvdW50ID0gY29uZmlnLmZyYW1lQ291bnQ7Cit9CisKK3ZvaWQgSGlkbFV0aWxzOjphdWRpb0dhaW5Db25maWdGcm9tSGFsKAorICAgICAgICBjb25zdCBzdHJ1Y3QgYXVkaW9fZ2Fpbl9jb25maWcmIGhhbENvbmZpZywgQXVkaW9HYWluQ29uZmlnKiBjb25maWcpIHsKKyAgICBjb25maWctPmluZGV4ID0gaGFsQ29uZmlnLmluZGV4OworICAgIGNvbmZpZy0+bW9kZSA9IEF1ZGlvR2Fpbk1vZGUoaGFsQ29uZmlnLm1vZGUpOworICAgIGNvbmZpZy0+Y2hhbm5lbE1hc2sgPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENvbmZpZy5jaGFubmVsX21hc2spOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGF1ZGlvX2NoYW5uZWxfbWFza190KSAqIDg7ICsraSkgeworICAgICAgICBjb25maWctPnZhbHVlc1tpXSA9IGhhbENvbmZpZy52YWx1ZXNbaV07CisgICAgfQorICAgIGNvbmZpZy0+cmFtcER1cmF0aW9uTXMgPSBoYWxDb25maWcucmFtcF9kdXJhdGlvbl9tczsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvR2FpbkNvbmZpZ1RvSGFsKAorICAgICAgICBjb25zdCBBdWRpb0dhaW5Db25maWcmIGNvbmZpZywgc3RydWN0IGF1ZGlvX2dhaW5fY29uZmlnKiBoYWxDb25maWcpIHsKKyAgICBoYWxDb25maWctPmluZGV4ID0gY29uZmlnLmluZGV4OworICAgIGhhbENvbmZpZy0+bW9kZSA9IHN0YXRpY19jYXN0PGF1ZGlvX2dhaW5fbW9kZV90Pihjb25maWcubW9kZSk7CisgICAgaGFsQ29uZmlnLT5jaGFubmVsX21hc2sgPSBzdGF0aWNfY2FzdDxhdWRpb19jaGFubmVsX21hc2tfdD4oY29uZmlnLmNoYW5uZWxNYXNrKTsKKyAgICBtZW1zZXQoaGFsQ29uZmlnLT52YWx1ZXMsIDAsIHNpemVvZihoYWxDb25maWctPnZhbHVlcykpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGF1ZGlvX2NoYW5uZWxfbWFza190KSAqIDg7ICsraSkgeworICAgICAgICBoYWxDb25maWctPnZhbHVlc1tpXSA9IGNvbmZpZy52YWx1ZXNbaV07CisgICAgfQorICAgIGhhbENvbmZpZy0+cmFtcF9kdXJhdGlvbl9tcyA9IGNvbmZpZy5yYW1wRHVyYXRpb25NczsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvR2FpbkZyb21IYWwoY29uc3Qgc3RydWN0IGF1ZGlvX2dhaW4mIGhhbEdhaW4sIEF1ZGlvR2FpbiogZ2FpbikgeworICAgIGdhaW4tPm1vZGUgPSBBdWRpb0dhaW5Nb2RlKGhhbEdhaW4ubW9kZSk7CisgICAgZ2Fpbi0+Y2hhbm5lbE1hc2sgPSBBdWRpb0NoYW5uZWxNYXNrKGhhbEdhaW4uY2hhbm5lbF9tYXNrKTsKKyAgICBnYWluLT5taW5WYWx1ZSA9IGhhbEdhaW4ubWluX3ZhbHVlOworICAgIGdhaW4tPm1heFZhbHVlID0gaGFsR2Fpbi5tYXhfdmFsdWU7CisgICAgZ2Fpbi0+ZGVmYXVsdFZhbHVlID0gaGFsR2Fpbi5kZWZhdWx0X3ZhbHVlOworICAgIGdhaW4tPnN0ZXBWYWx1ZSA9IGhhbEdhaW4uc3RlcF92YWx1ZTsKKyAgICBnYWluLT5taW5SYW1wTXMgPSBoYWxHYWluLm1pbl9yYW1wX21zOworICAgIGdhaW4tPm1heFJhbXBNcyA9IGhhbEdhaW4ubWF4X3JhbXBfbXM7Cit9CisKK3ZvaWQgSGlkbFV0aWxzOjphdWRpb0dhaW5Ub0hhbChjb25zdCBBdWRpb0dhaW4mIGdhaW4sIHN0cnVjdCBhdWRpb19nYWluKiBoYWxHYWluKSB7CisgICAgaGFsR2Fpbi0+bW9kZSA9IHN0YXRpY19jYXN0PGF1ZGlvX2dhaW5fbW9kZV90PihnYWluLm1vZGUpOworICAgIGhhbEdhaW4tPmNoYW5uZWxfbWFzayA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190PihnYWluLmNoYW5uZWxNYXNrKTsKKyAgICBoYWxHYWluLT5taW5fdmFsdWUgPSBnYWluLm1pblZhbHVlOworICAgIGhhbEdhaW4tPm1heF92YWx1ZSA9IGdhaW4ubWF4VmFsdWU7CisgICAgaGFsR2Fpbi0+ZGVmYXVsdF92YWx1ZSA9IGdhaW4uZGVmYXVsdFZhbHVlOworICAgIGhhbEdhaW4tPnN0ZXBfdmFsdWUgPSBnYWluLnN0ZXBWYWx1ZTsKKyAgICBoYWxHYWluLT5taW5fcmFtcF9tcyA9IGdhaW4ubWluUmFtcE1zOworICAgIGhhbEdhaW4tPm1heF9yYW1wX21zID0gZ2Fpbi5tYXhSYW1wTXM7Cit9CisKK3ZvaWQgSGlkbFV0aWxzOjphdWRpb09mZmxvYWRJbmZvRnJvbUhhbCgKKyAgICAgICAgY29uc3QgYXVkaW9fb2ZmbG9hZF9pbmZvX3QmIGhhbE9mZmxvYWQsIEF1ZGlvT2ZmbG9hZEluZm8qIG9mZmxvYWQpIHsKKyAgICBvZmZsb2FkLT5zYW1wbGVSYXRlSHogPSBoYWxPZmZsb2FkLnNhbXBsZV9yYXRlOworICAgIG9mZmxvYWQtPmNoYW5uZWxNYXNrID0gQXVkaW9DaGFubmVsTWFzayhoYWxPZmZsb2FkLmNoYW5uZWxfbWFzayk7CisgICAgb2ZmbG9hZC0+Zm9ybWF0ID0gQXVkaW9Gb3JtYXQoaGFsT2ZmbG9hZC5mb3JtYXQpOworICAgIG9mZmxvYWQtPnN0cmVhbVR5cGUgPSBBdWRpb1N0cmVhbVR5cGUoaGFsT2ZmbG9hZC5zdHJlYW1fdHlwZSk7CisgICAgb2ZmbG9hZC0+Yml0UmF0ZVBlclNlY29uZCA9IGhhbE9mZmxvYWQuYml0X3JhdGU7CisgICAgb2ZmbG9hZC0+ZHVyYXRpb25NaWNyb3NlY29uZHMgPSBoYWxPZmZsb2FkLmR1cmF0aW9uX3VzOworICAgIG9mZmxvYWQtPmhhc1ZpZGVvID0gaGFsT2ZmbG9hZC5oYXNfdmlkZW87CisgICAgb2ZmbG9hZC0+aXNTdHJlYW1pbmcgPSBoYWxPZmZsb2FkLmlzX3N0cmVhbWluZzsKKyAgICBvZmZsb2FkLT5iaXRXaWR0aCA9IGhhbE9mZmxvYWQuYml0X3dpZHRoOworICAgIG9mZmxvYWQtPmJ1ZmZlclNpemUgPSBoYWxPZmZsb2FkLm9mZmxvYWRfYnVmZmVyX3NpemU7CisgICAgb2ZmbG9hZC0+dXNhZ2UgPSBzdGF0aWNfY2FzdDxBdWRpb1VzYWdlPihoYWxPZmZsb2FkLnVzYWdlKTsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvT2ZmbG9hZEluZm9Ub0hhbCgKKyAgICAgICAgY29uc3QgQXVkaW9PZmZsb2FkSW5mbyYgb2ZmbG9hZCwgYXVkaW9fb2ZmbG9hZF9pbmZvX3QqIGhhbE9mZmxvYWQpIHsKKyAgICAqaGFsT2ZmbG9hZCA9IEFVRElPX0lORk9fSU5JVElBTElaRVI7CisgICAgaGFsT2ZmbG9hZC0+c2FtcGxlX3JhdGUgPSBvZmZsb2FkLnNhbXBsZVJhdGVIejsKKyAgICBoYWxPZmZsb2FkLT5jaGFubmVsX21hc2sgPSBzdGF0aWNfY2FzdDxhdWRpb19jaGFubmVsX21hc2tfdD4ob2ZmbG9hZC5jaGFubmVsTWFzayk7CisgICAgaGFsT2ZmbG9hZC0+Zm9ybWF0ID0gc3RhdGljX2Nhc3Q8YXVkaW9fZm9ybWF0X3Q+KG9mZmxvYWQuZm9ybWF0KTsKKyAgICBoYWxPZmZsb2FkLT5zdHJlYW1fdHlwZSA9IHN0YXRpY19jYXN0PGF1ZGlvX3N0cmVhbV90eXBlX3Q+KG9mZmxvYWQuc3RyZWFtVHlwZSk7CisgICAgaGFsT2ZmbG9hZC0+Yml0X3JhdGUgPSBvZmZsb2FkLmJpdFJhdGVQZXJTZWNvbmQ7CisgICAgaGFsT2ZmbG9hZC0+ZHVyYXRpb25fdXMgPSBvZmZsb2FkLmR1cmF0aW9uTWljcm9zZWNvbmRzOworICAgIGhhbE9mZmxvYWQtPmhhc192aWRlbyA9IG9mZmxvYWQuaGFzVmlkZW87CisgICAgaGFsT2ZmbG9hZC0+aXNfc3RyZWFtaW5nID0gb2ZmbG9hZC5pc1N0cmVhbWluZzsKKyAgICBoYWxPZmZsb2FkLT5iaXRfd2lkdGggPSBvZmZsb2FkLmJpdFdpZHRoOworICAgIGhhbE9mZmxvYWQtPm9mZmxvYWRfYnVmZmVyX3NpemUgPSBvZmZsb2FkLmJ1ZmZlclNpemU7CisgICAgaGFsT2ZmbG9hZC0+dXNhZ2UgPSBzdGF0aWNfY2FzdDxhdWRpb191c2FnZV90PihvZmZsb2FkLnVzYWdlKTsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvUG9ydENvbmZpZ0Zyb21IYWwoCisgICAgICAgIGNvbnN0IHN0cnVjdCBhdWRpb19wb3J0X2NvbmZpZyYgaGFsQ29uZmlnLCBBdWRpb1BvcnRDb25maWcqIGNvbmZpZykgeworICAgIGNvbmZpZy0+aWQgPSBoYWxDb25maWcuaWQ7CisgICAgY29uZmlnLT5yb2xlID0gQXVkaW9Qb3J0Um9sZShoYWxDb25maWcucm9sZSk7CisgICAgY29uZmlnLT50eXBlID0gQXVkaW9Qb3J0VHlwZShoYWxDb25maWcudHlwZSk7CisgICAgY29uZmlnLT5jb25maWdNYXNrID0gQXVkaW9Qb3J0Q29uZmlnTWFzayhoYWxDb25maWcuY29uZmlnX21hc2spOworICAgIGNvbmZpZy0+c2FtcGxlUmF0ZUh6ID0gaGFsQ29uZmlnLnNhbXBsZV9yYXRlOworICAgIGNvbmZpZy0+Y2hhbm5lbE1hc2sgPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENvbmZpZy5jaGFubmVsX21hc2spOworICAgIGNvbmZpZy0+Zm9ybWF0ID0gQXVkaW9Gb3JtYXQoaGFsQ29uZmlnLmZvcm1hdCk7CisgICAgYXVkaW9HYWluQ29uZmlnRnJvbUhhbChoYWxDb25maWcuZ2FpbiwgJmNvbmZpZy0+Z2Fpbik7CisgICAgc3dpdGNoIChoYWxDb25maWcudHlwZSkgeworICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9OT05FOiBicmVhazsKKyAgICAgICAgY2FzZSBBVURJT19QT1JUX1RZUEVfREVWSUNFOiB7CisgICAgICAgICAgICBjb25maWctPmV4dC5kZXZpY2UuaHdNb2R1bGUgPSBoYWxDb25maWcuZXh0LmRldmljZS5od19tb2R1bGU7CisgICAgICAgICAgICBjb25maWctPmV4dC5kZXZpY2UudHlwZSA9IEF1ZGlvRGV2aWNlKGhhbENvbmZpZy5leHQuZGV2aWNlLnR5cGUpOworICAgICAgICAgICAgbWVtY3B5KGNvbmZpZy0+ZXh0LmRldmljZS5hZGRyZXNzLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgaGFsQ29uZmlnLmV4dC5kZXZpY2UuYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgQVVESU9fREVWSUNFX01BWF9BRERSRVNTX0xFTik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9NSVg6IHsKKyAgICAgICAgICAgIGNvbmZpZy0+ZXh0Lm1peC5od01vZHVsZSA9IGhhbENvbmZpZy5leHQubWl4Lmh3X21vZHVsZTsKKyAgICAgICAgICAgIGNvbmZpZy0+ZXh0Lm1peC5pb0hhbmRsZSA9IGhhbENvbmZpZy5leHQubWl4LmhhbmRsZTsKKyAgICAgICAgICAgIGlmIChoYWxDb25maWcucm9sZSA9PSBBVURJT19QT1JUX1JPTEVfU09VUkNFKSB7CisgICAgICAgICAgICAgICAgY29uZmlnLT5leHQubWl4LnVzZUNhc2Uuc291cmNlID0gQXVkaW9Tb3VyY2UoaGFsQ29uZmlnLmV4dC5taXgudXNlY2FzZS5zb3VyY2UpOworICAgICAgICAgICAgfSBlbHNlIGlmIChoYWxDb25maWcucm9sZSA9PSBBVURJT19QT1JUX1JPTEVfU0lOSykgeworICAgICAgICAgICAgICAgIGNvbmZpZy0+ZXh0Lm1peC51c2VDYXNlLnN0cmVhbSA9IEF1ZGlvU3RyZWFtVHlwZShoYWxDb25maWcuZXh0Lm1peC51c2VjYXNlLnN0cmVhbSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9TRVNTSU9OOiB7CisgICAgICAgICAgICBjb25maWctPmV4dC5zZXNzaW9uLnNlc3Npb24gPSBoYWxDb25maWcuZXh0LnNlc3Npb24uc2Vzc2lvbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEhpZGxVdGlsczo6YXVkaW9Qb3J0Q29uZmlnVG9IYWwoCisgICAgICAgIGNvbnN0IEF1ZGlvUG9ydENvbmZpZyYgY29uZmlnLCBzdHJ1Y3QgYXVkaW9fcG9ydF9jb25maWcqIGhhbENvbmZpZykgeworICAgIG1lbXNldChoYWxDb25maWcsIDAsIHNpemVvZihhdWRpb19wb3J0X2NvbmZpZykpOworICAgIGhhbENvbmZpZy0+aWQgPSBjb25maWcuaWQ7CisgICAgaGFsQ29uZmlnLT5yb2xlID0gc3RhdGljX2Nhc3Q8YXVkaW9fcG9ydF9yb2xlX3Q+KGNvbmZpZy5yb2xlKTsKKyAgICBoYWxDb25maWctPnR5cGUgPSBzdGF0aWNfY2FzdDxhdWRpb19wb3J0X3R5cGVfdD4oY29uZmlnLnR5cGUpOworICAgIGhhbENvbmZpZy0+Y29uZmlnX21hc2sgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGNvbmZpZy5jb25maWdNYXNrKTsKKyAgICBoYWxDb25maWctPnNhbXBsZV9yYXRlID0gY29uZmlnLnNhbXBsZVJhdGVIejsKKyAgICBoYWxDb25maWctPmNoYW5uZWxfbWFzayA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190Pihjb25maWcuY2hhbm5lbE1hc2spOworICAgIGhhbENvbmZpZy0+Zm9ybWF0ID0gc3RhdGljX2Nhc3Q8YXVkaW9fZm9ybWF0X3Q+KGNvbmZpZy5mb3JtYXQpOworICAgIGF1ZGlvR2FpbkNvbmZpZ1RvSGFsKGNvbmZpZy5nYWluLCAmaGFsQ29uZmlnLT5nYWluKTsKKyAgICBzd2l0Y2ggKGNvbmZpZy50eXBlKSB7CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6Tk9ORTogYnJlYWs7CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6REVWSUNFOiB7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5kZXZpY2UuaHdfbW9kdWxlID0gY29uZmlnLmV4dC5kZXZpY2UuaHdNb2R1bGU7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5kZXZpY2UudHlwZSA9IHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oY29uZmlnLmV4dC5kZXZpY2UudHlwZSk7CisgICAgICAgICAgICBtZW1jcHkoaGFsQ29uZmlnLT5leHQuZGV2aWNlLmFkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5leHQuZGV2aWNlLmFkZHJlc3MuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICBBVURJT19ERVZJQ0VfTUFYX0FERFJFU1NfTEVOKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6TUlYOiB7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5taXguaHdfbW9kdWxlID0gY29uZmlnLmV4dC5taXguaHdNb2R1bGU7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5taXguaGFuZGxlID0gY29uZmlnLmV4dC5taXguaW9IYW5kbGU7CisgICAgICAgICAgICBpZiAoY29uZmlnLnJvbGUgPT0gQXVkaW9Qb3J0Um9sZTo6U09VUkNFKSB7CisgICAgICAgICAgICAgICAgaGFsQ29uZmlnLT5leHQubWl4LnVzZWNhc2Uuc291cmNlID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX3NvdXJjZV90Pihjb25maWcuZXh0Lm1peC51c2VDYXNlLnNvdXJjZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy5yb2xlID09IEF1ZGlvUG9ydFJvbGU6OlNJTkspIHsKKyAgICAgICAgICAgICAgICBoYWxDb25maWctPmV4dC5taXgudXNlY2FzZS5zdHJlYW0gPQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9fc3RyZWFtX3R5cGVfdD4oY29uZmlnLmV4dC5taXgudXNlQ2FzZS5zdHJlYW0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBBdWRpb1BvcnRUeXBlOjpTRVNTSU9OOiB7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5zZXNzaW9uLnNlc3Npb24gPQorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19zZXNzaW9uX3Q+KGNvbmZpZy5leHQuc2Vzc2lvbi5zZXNzaW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEhpZGxVdGlsczo6YXVkaW9Qb3J0Q29uZmlnc0Zyb21IYWwoCisgICAgICAgIHVuc2lnbmVkIGludCBudW1IYWxDb25maWdzLCBjb25zdCBzdHJ1Y3QgYXVkaW9fcG9ydF9jb25maWcgKmhhbENvbmZpZ3MsCisgICAgICAgIGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4gKmNvbmZpZ3MpIHsKKyAgICBjb25maWdzLT5yZXNpemUobnVtSGFsQ29uZmlncyk7CisgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBudW1IYWxDb25maWdzOyArK2kpIHsKKyAgICAgICAgYXVkaW9Qb3J0Q29uZmlnRnJvbUhhbChoYWxDb25maWdzW2ldLCAmKCpjb25maWdzKVtpXSk7CisgICAgfQorfQorCitzdGQ6OnVuaXF1ZV9wdHI8YXVkaW9fcG9ydF9jb25maWdbXT4gSGlkbFV0aWxzOjphdWRpb1BvcnRDb25maWdzVG9IYWwoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4mIGNvbmZpZ3MpIHsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8YXVkaW9fcG9ydF9jb25maWdbXT4gaGFsQ29uZmlncyhuZXcgYXVkaW9fcG9ydF9jb25maWdbY29uZmlncy5zaXplKCldKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbmZpZ3Muc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYXVkaW9Qb3J0Q29uZmlnVG9IYWwoY29uZmlnc1tpXSwgJmhhbENvbmZpZ3NbaV0pOworICAgIH0KKyAgICByZXR1cm4gaGFsQ29uZmlnczsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvUG9ydEZyb21IYWwoY29uc3Qgc3RydWN0IGF1ZGlvX3BvcnQmIGhhbFBvcnQsIEF1ZGlvUG9ydCogcG9ydCkgeworICAgIHBvcnQtPmlkID0gaGFsUG9ydC5pZDsKKyAgICBwb3J0LT5yb2xlID0gQXVkaW9Qb3J0Um9sZShoYWxQb3J0LnJvbGUpOworICAgIHBvcnQtPnR5cGUgPSBBdWRpb1BvcnRUeXBlKGhhbFBvcnQudHlwZSk7CisgICAgcG9ydC0+bmFtZS5zZXRUb0V4dGVybmFsKGhhbFBvcnQubmFtZSwgc3RybGVuKGhhbFBvcnQubmFtZSkpOworICAgIHBvcnQtPnNhbXBsZVJhdGVzLnJlc2l6ZShoYWxQb3J0Lm51bV9zYW1wbGVfcmF0ZXMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUG9ydC5udW1fc2FtcGxlX3JhdGVzOyArK2kpIHsKKyAgICAgICAgcG9ydC0+c2FtcGxlUmF0ZXNbaV0gPSBoYWxQb3J0LnNhbXBsZV9yYXRlc1tpXTsKKyAgICB9CisgICAgcG9ydC0+Y2hhbm5lbE1hc2tzLnJlc2l6ZShoYWxQb3J0Lm51bV9jaGFubmVsX21hc2tzKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFBvcnQubnVtX2NoYW5uZWxfbWFza3M7ICsraSkgeworICAgICAgICBwb3J0LT5jaGFubmVsTWFza3NbaV0gPSBBdWRpb0NoYW5uZWxNYXNrKGhhbFBvcnQuY2hhbm5lbF9tYXNrc1tpXSk7CisgICAgfQorICAgIHBvcnQtPmZvcm1hdHMucmVzaXplKGhhbFBvcnQubnVtX2Zvcm1hdHMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUG9ydC5udW1fZm9ybWF0czsgKytpKSB7CisgICAgICAgIHBvcnQtPmZvcm1hdHNbaV0gPSBBdWRpb0Zvcm1hdChoYWxQb3J0LmZvcm1hdHNbaV0pOworICAgIH0KKyAgICBwb3J0LT5nYWlucy5yZXNpemUoaGFsUG9ydC5udW1fZ2FpbnMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUG9ydC5udW1fZ2FpbnM7ICsraSkgeworICAgICAgICBhdWRpb0dhaW5Gcm9tSGFsKGhhbFBvcnQuZ2FpbnNbaV0sICZwb3J0LT5nYWluc1tpXSk7CisgICAgfQorICAgIGF1ZGlvUG9ydENvbmZpZ0Zyb21IYWwoaGFsUG9ydC5hY3RpdmVfY29uZmlnLCAmcG9ydC0+YWN0aXZlQ29uZmlnKTsKKyAgICBzd2l0Y2ggKGhhbFBvcnQudHlwZSkgeworICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9OT05FOiBicmVhazsKKyAgICAgICAgY2FzZSBBVURJT19QT1JUX1RZUEVfREVWSUNFOiB7CisgICAgICAgICAgICBwb3J0LT5leHQuZGV2aWNlLmh3TW9kdWxlID0gaGFsUG9ydC5leHQuZGV2aWNlLmh3X21vZHVsZTsKKyAgICAgICAgICAgIHBvcnQtPmV4dC5kZXZpY2UudHlwZSA9IEF1ZGlvRGV2aWNlKGhhbFBvcnQuZXh0LmRldmljZS50eXBlKTsKKyAgICAgICAgICAgIG1lbWNweShwb3J0LT5leHQuZGV2aWNlLmFkZHJlc3MuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICBoYWxQb3J0LmV4dC5kZXZpY2UuYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgQVVESU9fREVWSUNFX01BWF9BRERSRVNTX0xFTik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9NSVg6IHsKKyAgICAgICAgICAgIHBvcnQtPmV4dC5taXguaHdNb2R1bGUgPSBoYWxQb3J0LmV4dC5taXguaHdfbW9kdWxlOworICAgICAgICAgICAgcG9ydC0+ZXh0Lm1peC5pb0hhbmRsZSA9IGhhbFBvcnQuZXh0Lm1peC5oYW5kbGU7CisgICAgICAgICAgICBwb3J0LT5leHQubWl4LmxhdGVuY3lDbGFzcyA9IEF1ZGlvTWl4TGF0ZW5jeUNsYXNzKGhhbFBvcnQuZXh0Lm1peC5sYXRlbmN5X2NsYXNzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQVVESU9fUE9SVF9UWVBFX1NFU1NJT046IHsKKyAgICAgICAgICAgIHBvcnQtPmV4dC5zZXNzaW9uLnNlc3Npb24gPSBoYWxQb3J0LmV4dC5zZXNzaW9uLnNlc3Npb247CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvUG9ydFRvSGFsKGNvbnN0IEF1ZGlvUG9ydCYgcG9ydCwgc3RydWN0IGF1ZGlvX3BvcnQqIGhhbFBvcnQpIHsKKyAgICBtZW1zZXQoaGFsUG9ydCwgMCwgc2l6ZW9mKGF1ZGlvX3BvcnQpKTsKKyAgICBoYWxQb3J0LT5pZCA9IHBvcnQuaWQ7CisgICAgaGFsUG9ydC0+cm9sZSA9IHN0YXRpY19jYXN0PGF1ZGlvX3BvcnRfcm9sZV90Pihwb3J0LnJvbGUpOworICAgIGhhbFBvcnQtPnR5cGUgPSBzdGF0aWNfY2FzdDxhdWRpb19wb3J0X3R5cGVfdD4ocG9ydC50eXBlKTsKKyAgICBtZW1jcHkoaGFsUG9ydC0+bmFtZSwKKyAgICAgICAgICAgIHBvcnQubmFtZS5jX3N0cigpLAorICAgICAgICAgICAgc3RkOjptaW4ocG9ydC5uYW1lLnNpemUoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihBVURJT19QT1JUX01BWF9OQU1FX0xFTikpKTsKKyAgICBoYWxQb3J0LT5udW1fc2FtcGxlX3JhdGVzID0KKyAgICAgICAgICAgIHN0ZDo6bWluKHBvcnQuc2FtcGxlUmF0ZXMuc2l6ZSgpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KEFVRElPX1BPUlRfTUFYX1NBTVBMSU5HX1JBVEVTKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBoYWxQb3J0LT5udW1fc2FtcGxlX3JhdGVzOyArK2kpIHsKKyAgICAgICAgaGFsUG9ydC0+c2FtcGxlX3JhdGVzW2ldID0gcG9ydC5zYW1wbGVSYXRlc1tpXTsKKyAgICB9CisgICAgaGFsUG9ydC0+bnVtX2NoYW5uZWxfbWFza3MgPQorICAgICAgICAgICAgc3RkOjptaW4ocG9ydC5jaGFubmVsTWFza3Muc2l6ZSgpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KEFVRElPX1BPUlRfTUFYX0NIQU5ORUxfTUFTS1MpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFBvcnQtPm51bV9jaGFubmVsX21hc2tzOyArK2kpIHsKKyAgICAgICAgaGFsUG9ydC0+Y2hhbm5lbF9tYXNrc1tpXSA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190Pihwb3J0LmNoYW5uZWxNYXNrc1tpXSk7CisgICAgfQorICAgIGhhbFBvcnQtPm51bV9mb3JtYXRzID0KKyAgICAgICAgICAgIHN0ZDo6bWluKHBvcnQuZm9ybWF0cy5zaXplKCksIHN0YXRpY19jYXN0PHNpemVfdD4oQVVESU9fUE9SVF9NQVhfRk9STUFUUykpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUG9ydC0+bnVtX2Zvcm1hdHM7ICsraSkgeworICAgICAgICBoYWxQb3J0LT5mb3JtYXRzW2ldID0gc3RhdGljX2Nhc3Q8YXVkaW9fZm9ybWF0X3Q+KHBvcnQuZm9ybWF0c1tpXSk7CisgICAgfQorICAgIGhhbFBvcnQtPm51bV9nYWlucyA9IHN0ZDo6bWluKHBvcnQuZ2FpbnMuc2l6ZSgpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KEFVRElPX1BPUlRfTUFYX0dBSU5TKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBoYWxQb3J0LT5udW1fZ2FpbnM7ICsraSkgeworICAgICAgICBhdWRpb0dhaW5Ub0hhbChwb3J0LmdhaW5zW2ldLCAmaGFsUG9ydC0+Z2FpbnNbaV0pOworICAgIH0KKyAgICBhdWRpb1BvcnRDb25maWdUb0hhbChwb3J0LmFjdGl2ZUNvbmZpZywgJmhhbFBvcnQtPmFjdGl2ZV9jb25maWcpOworICAgIHN3aXRjaCAocG9ydC50eXBlKSB7CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6Tk9ORTogYnJlYWs7CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6REVWSUNFOiB7CisgICAgICAgICAgICBoYWxQb3J0LT5leHQuZGV2aWNlLmh3X21vZHVsZSA9IHBvcnQuZXh0LmRldmljZS5od01vZHVsZTsKKyAgICAgICAgICAgIGhhbFBvcnQtPmV4dC5kZXZpY2UudHlwZSA9IHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4ocG9ydC5leHQuZGV2aWNlLnR5cGUpOworICAgICAgICAgICAgbWVtY3B5KGhhbFBvcnQtPmV4dC5kZXZpY2UuYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgcG9ydC5leHQuZGV2aWNlLmFkZHJlc3MuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICBBVURJT19ERVZJQ0VfTUFYX0FERFJFU1NfTEVOKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6TUlYOiB7CisgICAgICAgICAgICBoYWxQb3J0LT5leHQubWl4Lmh3X21vZHVsZSA9IHBvcnQuZXh0Lm1peC5od01vZHVsZTsKKyAgICAgICAgICAgIGhhbFBvcnQtPmV4dC5taXguaGFuZGxlID0gcG9ydC5leHQubWl4LmlvSGFuZGxlOworICAgICAgICAgICAgaGFsUG9ydC0+ZXh0Lm1peC5sYXRlbmN5X2NsYXNzID0KKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9fbWl4X2xhdGVuY3lfY2xhc3NfdD4ocG9ydC5leHQubWl4LmxhdGVuY3lDbGFzcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEF1ZGlvUG9ydFR5cGU6OlNFU1NJT046IHsKKyAgICAgICAgICAgIGhhbFBvcnQtPmV4dC5zZXNzaW9uLnNlc3Npb24gPSBzdGF0aWNfY2FzdDxhdWRpb19zZXNzaW9uX3Q+KHBvcnQuZXh0LnNlc3Npb24uc2Vzc2lvbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBIaWRsVXRpbHM6OnV1aWRGcm9tSGFsKGNvbnN0IGF1ZGlvX3V1aWRfdCYgaGFsVXVpZCwgVXVpZCogdXVpZCkgeworICAgIHV1aWQtPnRpbWVMb3cgPSBoYWxVdWlkLnRpbWVMb3c7CisgICAgdXVpZC0+dGltZU1pZCA9IGhhbFV1aWQudGltZU1pZDsKKyAgICB1dWlkLT52ZXJzaW9uQW5kVGltZUhpZ2ggPSBoYWxVdWlkLnRpbWVIaUFuZFZlcnNpb247CisgICAgdXVpZC0+dmFyaWFudEFuZENsb2NrU2VxSGlnaCA9IGhhbFV1aWQuY2xvY2tTZXE7CisgICAgbWVtY3B5KHV1aWQtPm5vZGUuZGF0YSgpLCBoYWxVdWlkLm5vZGUsIHV1aWQtPm5vZGUuc2l6ZSgpKTsKK30KKwordm9pZCBIaWRsVXRpbHM6OnV1aWRUb0hhbChjb25zdCBVdWlkJiB1dWlkLCBhdWRpb191dWlkX3QqIGhhbFV1aWQpIHsKKyAgICBoYWxVdWlkLT50aW1lTG93ID0gdXVpZC50aW1lTG93OworICAgIGhhbFV1aWQtPnRpbWVNaWQgPSB1dWlkLnRpbWVNaWQ7CisgICAgaGFsVXVpZC0+dGltZUhpQW5kVmVyc2lvbiA9IHV1aWQudmVyc2lvbkFuZFRpbWVIaWdoOworICAgIGhhbFV1aWQtPmNsb2NrU2VxID0gdXVpZC52YXJpYW50QW5kQ2xvY2tTZXFIaWdoOworICAgIG1lbWNweShoYWxVdWlkLT5ub2RlLCB1dWlkLm5vZGUuZGF0YSgpLCB1dWlkLm5vZGUuc2l6ZSgpKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9IaWRsVXRpbHMuaCBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9IaWRsVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmRlNGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vY29tbW9uLzIuMC9kZWZhdWx0L0hpZGxVdGlscy5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9IaWRsX1V0aWxzX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9IaWRsX1V0aWxzX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2NvbW1vbi8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW8uaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Db25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0dhaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0dhaW5Db25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb09mZmxvYWRJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0Q29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VXVpZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOworCituYW1lc3BhY2UgYW5kcm9pZCB7CisKK2NsYXNzIEhpZGxVdGlscyB7CisgIHB1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBhdWRpb0NvbmZpZ0Zyb21IYWwoY29uc3QgYXVkaW9fY29uZmlnX3QmIGhhbENvbmZpZywgQXVkaW9Db25maWcqIGNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9Db25maWdUb0hhbChjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLCBhdWRpb19jb25maWdfdCogaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb0dhaW5Db25maWdGcm9tSGFsKAorICAgICAgICAgICAgY29uc3Qgc3RydWN0IGF1ZGlvX2dhaW5fY29uZmlnJiBoYWxDb25maWcsIEF1ZGlvR2FpbkNvbmZpZyogY29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb0dhaW5Db25maWdUb0hhbCgKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvR2FpbkNvbmZpZyYgY29uZmlnLCBzdHJ1Y3QgYXVkaW9fZ2Fpbl9jb25maWcqIGhhbENvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9HYWluRnJvbUhhbChjb25zdCBzdHJ1Y3QgYXVkaW9fZ2FpbiYgaGFsR2FpbiwgQXVkaW9HYWluKiBnYWluKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb0dhaW5Ub0hhbChjb25zdCBBdWRpb0dhaW4mIGdhaW4sIHN0cnVjdCBhdWRpb19nYWluKiBoYWxHYWluKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb09mZmxvYWRJbmZvRnJvbUhhbCgKKyAgICAgICAgICAgIGNvbnN0IGF1ZGlvX29mZmxvYWRfaW5mb190JiBoYWxPZmZsb2FkLCBBdWRpb09mZmxvYWRJbmZvKiBvZmZsb2FkKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb09mZmxvYWRJbmZvVG9IYWwoCisgICAgICAgICAgICBjb25zdCBBdWRpb09mZmxvYWRJbmZvJiBvZmZsb2FkLCBhdWRpb19vZmZsb2FkX2luZm9fdCogaGFsT2ZmbG9hZCk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9Qb3J0Q29uZmlnRnJvbUhhbCgKKyAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdWRpb19wb3J0X2NvbmZpZyYgaGFsQ29uZmlnLCBBdWRpb1BvcnRDb25maWcqIGNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9Qb3J0Q29uZmlnVG9IYWwoCisgICAgICAgICAgICBjb25zdCBBdWRpb1BvcnRDb25maWcmIGNvbmZpZywgc3RydWN0IGF1ZGlvX3BvcnRfY29uZmlnKiBoYWxDb25maWcpOworICAgIHN0YXRpYyB2b2lkIGF1ZGlvUG9ydENvbmZpZ3NGcm9tSGFsKAorICAgICAgICAgICAgdW5zaWduZWQgaW50IG51bUhhbENvbmZpZ3MsIGNvbnN0IHN0cnVjdCBhdWRpb19wb3J0X2NvbmZpZyAqaGFsQ29uZmlncywKKyAgICAgICAgICAgIGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4gKmNvbmZpZ3MpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8YXVkaW9fcG9ydF9jb25maWdbXT4gYXVkaW9Qb3J0Q29uZmlnc1RvSGFsKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgY29uZmlncyk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9Qb3J0RnJvbUhhbChjb25zdCBzdHJ1Y3QgYXVkaW9fcG9ydCYgaGFsUG9ydCwgQXVkaW9Qb3J0KiBwb3J0KTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb1BvcnRUb0hhbChjb25zdCBBdWRpb1BvcnQmIHBvcnQsIHN0cnVjdCBhdWRpb19wb3J0KiBoYWxQb3J0KTsKKyAgICBzdGF0aWMgdm9pZCB1dWlkRnJvbUhhbChjb25zdCBhdWRpb191dWlkX3QmIGhhbFV1aWQsIFV1aWQqIHV1aWQpOworICAgIHN0YXRpYyB2b2lkIHV1aWRUb0hhbChjb25zdCBVdWlkJiB1dWlkLCBhdWRpb191dWlkX3QqIGhhbFV1aWQpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfSGlkbF9VdGlsc19IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vY29tbW9uLzIuMC90eXBlcy5oYWwgYi9hdWRpby9jb21tb24vMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzQ5Nzk1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vY29tbW9uLzIuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw5NDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKKworLyoqCisgKgorICogIElEcyBhbmQgSGFuZGxlcworICoKKyAqLworCisvKioKKyAqIEhhbmRsZSB0eXBlIGZvciBpZGVudGlmeWluZyBhdWRpbyBzb3VyY2VzIGFuZCBzaW5rcy4KKyAqLwordHlwZWRlZiBpbnQzMl90IEF1ZGlvSW9IYW5kbGU7CisKKy8qKgorICogQXVkaW8gaHcgbW9kdWxlIGhhbmRsZSBmdW5jdGlvbnMgb3Igc3RydWN0dXJlcyByZWZlcmVuY2luZyBhIG1vZHVsZS4KKyAqLwordHlwZWRlZiBpbnQzMl90IEF1ZGlvTW9kdWxlSGFuZGxlOworCisvKioKKyAqIEVhY2ggcG9ydCBoYXMgYSB1bmlxdWUgSUQgb3IgaGFuZGxlIGFsbG9jYXRlZCBieSBwb2xpY3kgbWFuYWdlci4KKyAqLwordHlwZWRlZiBpbnQzMl90IEF1ZGlvUG9ydEhhbmRsZTsKKworLyoqCisgKiBFYWNoIHBhdGNoIGlzIGlkZW50aWZpZWQgYnkgYSBoYW5kbGUgYXQgdGhlIGludGVyZmFjZSB1c2VkIHRvIGNyZWF0ZSB0aGF0CisgKiBwYXRjaC4gRm9yIGluc3RhbmNlLCB3aGVuIGEgcGF0Y2ggaXMgY3JlYXRlZCBieSB0aGUgYXVkaW8gSEFMLCB0aGUgSEFMCisgKiBhbGxvY2F0ZXMgYW5kIHJldHVybnMgYSBoYW5kbGUuICBUaGlzIGhhbmRsZSBpcyB1bmlxdWUgdG8gYSBnaXZlbiBhdWRpbyBIQUwKKyAqIGhhcmR3YXJlIG1vZHVsZS4gIEJ1dCB0aGUgc2FtZSBwYXRjaCByZWNlaXZlcyBhbm90aGVyIHN5c3RlbSB3aWRlIHVuaXF1ZQorICogaGFuZGxlIGFsbG9jYXRlZCBieSB0aGUgZnJhbWV3b3JrLiAgVGhpcyB1bmlxdWUgaGFuZGxlIGlzIHVzZWQgZm9yIGFsbAorICogdHJhbnNhY3Rpb25zIGluc2lkZSB0aGUgZnJhbWV3b3JrLgorICovCit0eXBlZGVmIGludDMyX3QgQXVkaW9QYXRjaEhhbmRsZTsKKworLyoqCisgKiBBIEhXIHN5bmNocm9uaXphdGlvbiBzb3VyY2UgcmV0dXJuZWQgYnkgdGhlIGF1ZGlvIEhBTC4KKyAqLwordHlwZWRlZiB1aW50MzJfdCBBdWRpb0h3U3luYzsKKworLyoqCisgKiBFYWNoIHBvcnQgaGFzIGEgdW5pcXVlIElEIG9yIGhhbmRsZSBhbGxvY2F0ZWQgYnkgcG9saWN5IG1hbmFnZXIuCisgKi8KK0BleHBvcnQobmFtZT0iIikKK2VudW0gQXVkaW9IYW5kbGVDb25zdHMgOiBpbnQzMl90IHsKKyAgICBBVURJT19JT19IQU5ETEVfTk9ORSA9IDAsCisgICAgQVVESU9fTU9EVUxFX0hBTkRMRV9OT05FID0gMCwKKyAgICBBVURJT19QT1JUX0hBTkRMRV9OT05FID0gMCwKKyAgICBBVURJT19QQVRDSF9IQU5ETEVfTk9ORSA9IDAsCit9OworCisvKioKKyAqIENvbW1vbmx5IHVzZWQgc3RydWN0dXJlIGZvciBwYXNzaW5nIHVuaXF1ZSBpZGVudGlmaWVkcyAoVVVJRCkuCisgKiBGb3IgdGhlIGRlZmluaXRpb24gb2YgVVVJRCwgcmVmZXIgdG8gSVRVLVQgWC42Njcgc3BlYy4KKyAqLworc3RydWN0IFV1aWQgeworICAgIHVpbnQzMl90IHRpbWVMb3c7CisgICAgdWludDE2X3QgdGltZU1pZDsKKyAgICB1aW50MTZfdCB2ZXJzaW9uQW5kVGltZUhpZ2g7CisgICAgdWludDE2X3QgdmFyaWFudEFuZENsb2NrU2VxSGlnaDsKKyAgICB1aW50OF90WzZdIG5vZGU7Cit9OworCisKKy8qKgorICoKKyAqICBBdWRpbyBzdHJlYW1zCisgKgorICovCisKKy8qKgorICogQXVkaW8gc3RyZWFtIHR5cGUgZGVzY3JpYmluZyB0aGUgaW50ZW50ZWQgdXNlIGNhc2Ugb2YgYSBzdHJlYW0uCisgKi8KK0BleHBvcnQobmFtZT0iYXVkaW9fc3RyZWFtX3R5cGVfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fU1RSRUFNXyIpCitlbnVtIEF1ZGlvU3RyZWFtVHlwZSA6IGludDMyX3QgeworICAgIC8vIFRoZXNlIHZhbHVlcyBtdXN0IGtlcHQgaW4gc3luYyB3aXRoCisgICAgLy8gIGZyYW1ld29ya3MvYmFzZS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvQXVkaW9TeXN0ZW0uamF2YQorICAgIERFRkFVTFQgICAgICAgICAgPSAtMSwKKyAgICBNSU4gICAgICAgICAgICAgID0gMCwKKyAgICBWT0lDRV9DQUxMICAgICAgID0gMCwKKyAgICBTWVNURU0gICAgICAgICAgID0gMSwKKyAgICBSSU5HICAgICAgICAgICAgID0gMiwKKyAgICBNVVNJQyAgICAgICAgICAgID0gMywKKyAgICBBTEFSTSAgICAgICAgICAgID0gNCwKKyAgICBOT1RJRklDQVRJT04gICAgID0gNSwKKyAgICBCTFVFVE9PVEhfU0NPICAgID0gNiwKKyAgICBFTkZPUkNFRF9BVURJQkxFID0gNywgIC8vIFNvdW5kcyB0aGF0IGNhbm5vdCBiZSBtdXRlZCBieSB1c2VyIGFuZCBtdXN0IGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3V0ZWQgdG8gc3BlYWtlcgorICAgIERUTUYgICAgICAgICAgICAgPSA4LAorICAgIFRUUyAgICAgICAgICAgICAgPSA5LCAgLy8gVHJhbnNtaXR0ZWQgVGhyb3VnaCBTcGVha2VyLiAgUGxheXMgb3ZlciBzcGVha2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5LCBzaWxlbnQgb24gb3RoZXIgZGV2aWNlcworICAgIEFDQ0VTU0lCSUxJVFkgICAgPSAxMCwgLy8gRm9yIGFjY2Vzc2liaWxpdHkgdGFsayBiYWNrIHByb21wdHMKKyAgICBSRVJPVVRJTkcgICAgICAgID0gMTEsIC8vIEZvciBkeW5hbWljIHBvbGljeSBvdXRwdXQgbWl4ZXMKKyAgICBQQVRDSCAgICAgICAgICAgID0gMTIsIC8vIEZvciBpbnRlcm5hbCBhdWRpbyBmbGluZ2VyIHRyYWNrcy4gIEZpeGVkIHZvbHVtZQorICAgIFBVQkxJQ19DTlQgICAgICAgPSBBQ0NFU1NJQklMSVRZICsgMSwKKyAgICAvLyBOdW1iZXIgb2Ygc3RyZWFtcyBjb25zaWRlcmVkIGJ5IGF1ZGlvIHBvbGljeSBmb3Igdm9sdW1lIGFuZCByb3V0aW5nCisgICAgRk9SX1BPTElDWV9DTlQgICA9IFBBVENILAorICAgIENOVCAgICAgICAgICAgICAgPSBQQVRDSCArIDEKK307CisKK0BleHBvcnQobmFtZT0iYXVkaW9fc291cmNlX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX1NPVVJDRV8iKQorZW51bSBBdWRpb1NvdXJjZSA6IGludDMyX3QgeworICAgIC8vIFRoZXNlIHZhbHVlcyBtdXN0IGtlcHQgaW4gc3luYyB3aXRoCisgICAgLy8gIGZyYW1ld29ya3MvYmFzZS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvTWVkaWFSZWNvcmRlci5qYXZhLAorICAgIC8vICBmcmFtZXdvcmtzL2F2L3NlcnZpY2VzL2F1ZGlvcG9saWN5L0F1ZGlvUG9saWN5U2VydmljZS5jcHAsCisgICAgLy8gIHN5c3RlbS9tZWRpYS9hdWRpb19lZmZlY3RzL2luY2x1ZGUvYXVkaW9fZWZmZWN0cy9hdWRpb19lZmZlY3RzX2NvbmYuaAorICAgIERFRkFVTFQgICAgICAgICAgICAgPSAwLAorICAgIE1JQyAgICAgICAgICAgICAgICAgPSAxLAorICAgIFZPSUNFX1VQTElOSyAgICAgICAgPSAyLAorICAgIFZPSUNFX0RPV05MSU5LICAgICAgPSAzLAorICAgIFZPSUNFX0NBTEwgICAgICAgICAgPSA0LAorICAgIENBTUNPUkRFUiAgICAgICAgICAgPSA1LAorICAgIFZPSUNFX1JFQ09HTklUSU9OICAgPSA2LAorICAgIFZPSUNFX0NPTU1VTklDQVRJT04gPSA3LAorICAgIC8qKgorICAgICAqIFNvdXJjZSBmb3IgdGhlIG1peCB0byBiZSBwcmVzZW50ZWQgcmVtb3RlbHkuIEFuIGV4YW1wbGUgb2YgcmVtb3RlCisgICAgICogcHJlc2VudGF0aW9uIGlzIFdpZmkgRGlzcGxheSB3aGVyZSBhIGRvbmdsZSBhdHRhY2hlZCB0byBhIFRWIGNhbiBiZSB1c2VkCisgICAgICogdG8gcGxheSB0aGUgbWl4IGNhcHR1cmVkIGJ5IHRoaXMgYXVkaW8gc291cmNlLgorICAgICAqLworICAgIFJFTU9URV9TVUJNSVggICAgICAgPSA4LAorICAgIC8qKgorICAgICAqIFNvdXJjZSBmb3IgdW5wcm9jZXNzZWQgc291bmQuIFVzYWdlIGV4YW1wbGVzIGluY2x1ZGUgbGV2ZWwgbWVhc3VyZW1lbnQKKyAgICAgKiBhbmQgcmF3IHNpZ25hbCBhbmFseXNpcy4KKyAgICAgKi8KKyAgICBVTlBST0NFU1NFRCAgICAgICAgID0gOSwKKworICAgIENOVCwKKyAgICBNQVggICAgICAgICAgICAgICAgID0gQ05UIC0gMSwKKyAgICBGTV9UVU5FUiAgICAgICAgICAgID0gMTk5OCwKKyAgICAvKioKKyAgICAgKiBBIGxvdy1wcmlvcml0eSwgcHJlZW1wdGlibGUgYXVkaW8gc291cmNlIGZvciBmb3IgYmFja2dyb3VuZCBzb2Z0d2FyZQorICAgICAqIGhvdHdvcmQgZGV0ZWN0aW9uLiBTYW1lIHR1bmluZyBhcyBWT0lDRV9SRUNPR05JVElPTi4gIFVzZWQgb25seQorICAgICAqIGludGVybmFsbHkgYnkgdGhlIGZyYW1ld29yay4KKyAgICAgKi8KKyAgICBIT1RXT1JEICAgICAgICAgICAgID0gMTk5OQorfTsKKwordHlwZWRlZiBpbnQzMl90IEF1ZGlvU2Vzc2lvbjsKKy8qKgorICogU3BlY2lhbCBhdWRpbyBzZXNzaW9uIHZhbHVlcy4KKyAqLworQGV4cG9ydChuYW1lPSJhdWRpb19zZXNzaW9uX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX1NFU1NJT05fIikKK2VudW0gQXVkaW9TZXNzaW9uQ29uc3RzIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogU2Vzc2lvbiBmb3IgZWZmZWN0cyBhdHRhY2hlZCB0byBhIHBhcnRpY3VsYXIgb3V0cHV0IHN0cmVhbQorICAgICAqICh2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAwKQorICAgICAqLworICAgIE9VVFBVVF9TVEFHRSA9IC0xLAorICAgIC8qKgorICAgICAqIFNlc3Npb24gZm9yIGVmZmVjdHMgYXBwbGllZCB0byBvdXRwdXQgbWl4LiBUaGVzZSBlZmZlY3RzIGNhbgorICAgICAqIGJlIG1vdmVkIGJ5IGF1ZGlvIHBvbGljeSBtYW5hZ2VyIHRvIGFub3RoZXIgb3V0cHV0IHN0cmVhbQorICAgICAqICh2YWx1ZSBtdXN0IGJlIDApCisgICAgICovCisgICAgT1VUUFVUX01JWCA9IDAsCisgICAgLyoqCisgICAgICogQXBwbGljYXRpb24gZG9lcyBub3Qgc3BlY2lmeSBhbiBleHBsaWNpdCBzZXNzaW9uIElEIHRvIGJlIHVzZWQsIGFuZAorICAgICAqIHJlcXVlc3RzIGEgbmV3IHNlc3Npb24gSUQgdG8gYmUgYWxsb2NhdGVkLiBDb3JyZXNwb25kcyB0bworICAgICAqIEF1ZGlvTWFuYWdlci5BVURJT19TRVNTSU9OX0lEX0dFTkVSQVRFIGFuZAorICAgICAqIEF1ZGlvU3lzdGVtLkFVRElPX1NFU1NJT05fQUxMT0NBVEUuCisgICAgICovCisgICAgQUxMT0NBVEUgPSAwLAorICAgIC8qKgorICAgICAqIEZvciB1c2Ugd2l0aCBBdWRpb1JlY29yZDo6c3RhcnQoKSwgdGhpcyBpbmRpY2F0ZXMgbm8gdHJpZ2dlciBzZXNzaW9uLgorICAgICAqIEl0IGlzIGFsc28gdXNlZCB3aXRoIG91dHB1dCB0cmFja3MgYW5kIHBhdGNoIHRyYWNrcywgd2hpY2ggbmV2ZXIgaGF2ZSBhCisgICAgICogc2Vzc2lvbi4KKyAgICAgKi8KKyAgICBOT05FID0gMAorfTsKKworLyoqCisgKiBBdWRpbyBmb3JtYXQgIGlzIGEgMzItYml0IHdvcmQgdGhhdCBjb25zaXN0cyBvZjoKKyAqICAgbWFpbiBmb3JtYXQgZmllbGQgKHVwcGVyIDggYml0cykKKyAqICAgc3ViIGZvcm1hdCBmaWVsZCAobG93ZXIgMjQgYml0cykuCisgKgorICogVGhlIG1haW4gZm9ybWF0IGluZGljYXRlcyB0aGUgbWFpbiBjb2RlYyB0eXBlLiBUaGUgc3ViIGZvcm1hdCBmaWVsZCBpbmRpY2F0ZXMKKyAqIG9wdGlvbnMgYW5kIHBhcmFtZXRlcnMgZm9yIGVhY2ggZm9ybWF0LiBUaGUgc3ViIGZvcm1hdCBpcyBtYWlubHkgdXNlZCBmb3IKKyAqIHJlY29yZCB0byBpbmRpY2F0ZSBmb3IgaW5zdGFuY2UgdGhlIHJlcXVlc3RlZCBiaXRyYXRlIG9yIHByb2ZpbGUuICBJdCBjYW4KKyAqIGFsc28gYmUgdXNlZCBmb3IgY2VydGFpbiBmb3JtYXRzIHRvIGdpdmUgaW5mb3JtYXRpb25zIG5vdCBwcmVzZW50IGluIHRoZQorICogZW5jb2RlZCBhdWRpbyBzdHJlYW0gKGUuZy4gb2N0ZXQgYWxpZ25lbWVudCBmb3IgQU1SKS4KKyAqLworQGV4cG9ydChuYW1lPSJhdWRpb19mb3JtYXRfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fRk9STUFUXyIpCitlbnVtIEF1ZGlvRm9ybWF0IDogdWludDMyX3QgeworICAgIElOVkFMSUQgICAgICAgICAgICAgPSAweEZGRkZGRkZGVUwsCisgICAgREVGQVVMVCAgICAgICAgICAgICA9IDAsCisgICAgUENNICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDBVTCwgLyoqIERPIE5PVCBDSEFOR0UgKi8KKyAgICBNUDMgICAgICAgICAgICAgICAgID0gMHgwMTAwMDAwMFVMLAorICAgIEFNUl9OQiAgICAgICAgICAgICAgPSAweDAyMDAwMDAwVUwsCisgICAgQU1SX1dCICAgICAgICAgICAgICA9IDB4MDMwMDAwMDBVTCwKKyAgICBBQUMgICAgICAgICAgICAgICAgID0gMHgwNDAwMDAwMFVMLAorICAgIEhFX0FBQ19WMSAgICAgICAgICAgPSAweDA1MDAwMDAwVUwsIC8qKiBEZXByZWNhdGVkLCBVc2UgQUFDX0hFX1YxICovCisgICAgSEVfQUFDX1YyICAgICAgICAgICA9IDB4MDYwMDAwMDBVTCwgLyoqIERlcHJlY2F0ZWQsIFVzZSBBQUNfSEVfVjIgKi8KKyAgICBWT1JCSVMgICAgICAgICAgICAgID0gMHgwNzAwMDAwMFVMLAorICAgIE9QVVMgICAgICAgICAgICAgICAgPSAweDA4MDAwMDAwVUwsCisgICAgQUMzICAgICAgICAgICAgICAgICA9IDB4MDkwMDAwMDBVTCwKKyAgICBFX0FDMyAgICAgICAgICAgICAgID0gMHgwQTAwMDAwMFVMLAorICAgIERUUyAgICAgICAgICAgICAgICAgPSAweDBCMDAwMDAwVUwsCisgICAgRFRTX0hEICAgICAgICAgICAgICA9IDB4MEMwMDAwMDBVTCwKKyAgICAvLyBJRUM2MTkzNyBpcyBlbmNvZGVkIGF1ZGlvIHdyYXBwZWQgaW4gMTYtYml0IFBDTS4KKyAgICBJRUM2MTkzNyAgICAgICAgICAgID0gMHgwRDAwMDAwMFVMLAorICAgIERPTEJZX1RSVUVIRCAgICAgICAgPSAweDBFMDAwMDAwVUwsCisgICAgRVZSQyAgICAgICAgICAgICAgICA9IDB4MTAwMDAwMDBVTCwKKyAgICBFVlJDQiAgICAgICAgICAgICAgID0gMHgxMTAwMDAwMFVMLAorICAgIEVWUkNXQiAgICAgICAgICAgICAgPSAweDEyMDAwMDAwVUwsCisgICAgRVZSQ05XICAgICAgICAgICAgICA9IDB4MTMwMDAwMDBVTCwKKyAgICBBQUNfQURJRiAgICAgICAgICAgID0gMHgxNDAwMDAwMFVMLAorICAgIFdNQSAgICAgICAgICAgICAgICAgPSAweDE1MDAwMDAwVUwsCisgICAgV01BX1BSTyAgICAgICAgICAgICA9IDB4MTYwMDAwMDBVTCwKKyAgICBBTVJfV0JfUExVUyAgICAgICAgID0gMHgxNzAwMDAwMFVMLAorICAgIE1QMiAgICAgICAgICAgICAgICAgPSAweDE4MDAwMDAwVUwsCisgICAgUUNFTFAgICAgICAgICAgICAgICA9IDB4MTkwMDAwMDBVTCwKKyAgICBEU0QgICAgICAgICAgICAgICAgID0gMHgxQTAwMDAwMFVMLAorICAgIEZMQUMgICAgICAgICAgICAgICAgPSAweDFCMDAwMDAwVUwsCisgICAgQUxBQyAgICAgICAgICAgICAgICA9IDB4MUMwMDAwMDBVTCwKKyAgICBBUEUgICAgICAgICAgICAgICAgID0gMHgxRDAwMDAwMFVMLAorICAgIEFBQ19BRFRTICAgICAgICAgICAgPSAweDFFMDAwMDAwVUwsCisgICAgU0JDICAgICAgICAgICAgICAgICA9IDB4MUYwMDAwMDBVTCwKKyAgICBBUFRYICAgICAgICAgICAgICAgID0gMHgyMDAwMDAwMFVMLAorICAgIEFQVFhfSEQgICAgICAgICAgICAgPSAweDIxMDAwMDAwVUwsCisgICAgQUM0ICAgICAgICAgICAgICAgICA9IDB4MjIwMDAwMDBVTCwKKyAgICBMREFDICAgICAgICAgICAgICAgID0gMHgyMzAwMDAwMFVMLAorICAgIE1BSU5fTUFTSyAgICAgICAgICAgPSAweEZGMDAwMDAwVUwsIC8qKiBEZXByZWNhdGVkICovCisgICAgU1VCX01BU0sgICAgICAgICAgICA9IDB4MDBGRkZGRkZVTCwKKworICAgIC8qKiBTdWJmb3JtYXRzICovCisgICAgUENNX1NVQl8xNl9CSVQgICAgICAgID0gMHgxLCAvLyBQQ00gc2lnbmVkIDE2IGJpdHMKKyAgICBQQ01fU1VCXzhfQklUICAgICAgICAgPSAweDIsIC8vIFBDTSB1bnNpZ25lZCA4IGJpdHMKKyAgICBQQ01fU1VCXzMyX0JJVCAgICAgICAgPSAweDMsIC8vIFBDTSBzaWduZWQgLjMxIGZpeGVkIHBvaW50CisgICAgUENNX1NVQl84XzI0X0JJVCAgICAgID0gMHg0LCAvLyBQQ00gc2lnbmVkIDguMjMgZml4ZWQgcG9pbnQKKyAgICBQQ01fU1VCX0ZMT0FUICAgICAgICAgPSAweDUsIC8vIFBDTSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0IHB0CisgICAgUENNX1NVQl8yNF9CSVRfUEFDS0VEID0gMHg2LCAvLyBQQ00gc2lnbmVkIC4yMyBmaXggcHQgKDMgYnl0ZXMpCisKKyAgICBNUDNfU1VCX05PTkUgICAgICAgICAgPSAweDAsCisKKyAgICBBTVJfU1VCX05PTkUgICAgICAgICAgPSAweDAsCisKKyAgICBBQUNfU1VCX01BSU4gICAgICAgICAgPSAweDEsCisgICAgQUFDX1NVQl9MQyAgICAgICAgICAgID0gMHgyLAorICAgIEFBQ19TVUJfU1NSICAgICAgICAgICA9IDB4NCwKKyAgICBBQUNfU1VCX0xUUCAgICAgICAgICAgPSAweDgsCisgICAgQUFDX1NVQl9IRV9WMSAgICAgICAgID0gMHgxMCwKKyAgICBBQUNfU1VCX1NDQUxBQkxFICAgICAgPSAweDIwLAorICAgIEFBQ19TVUJfRVJMQyAgICAgICAgICA9IDB4NDAsCisgICAgQUFDX1NVQl9MRCAgICAgICAgICAgID0gMHg4MCwKKyAgICBBQUNfU1VCX0hFX1YyICAgICAgICAgPSAweDEwMCwKKyAgICBBQUNfU1VCX0VMRCAgICAgICAgICAgPSAweDIwMCwKKworICAgIFZPUkJJU19TVUJfTk9ORSAgICAgICA9IDB4MCwKKworICAgIC8qKiBBbGlhc2VzICovCisgICAgLyoqIG5vdGUgIT0gQXVkaW9Gb3JtYXQuRU5DT0RJTkdfUENNXzE2QklUICovCisgICAgUENNXzE2X0JJVCAgICAgICAgICA9IChQQ00gfCBQQ01fU1VCXzE2X0JJVCksCisgICAgLyoqIG5vdGUgIT0gQXVkaW9Gb3JtYXQuRU5DT0RJTkdfUENNXzhCSVQgKi8KKyAgICBQQ01fOF9CSVQgICAgICAgICAgID0gKFBDTSB8IFBDTV9TVUJfOF9CSVQpLAorICAgIFBDTV8zMl9CSVQgICAgICAgICAgPSAoUENNIHwgUENNX1NVQl8zMl9CSVQpLAorICAgIFBDTV84XzI0X0JJVCAgICAgICAgPSAoUENNIHwgUENNX1NVQl84XzI0X0JJVCksCisgICAgUENNX0ZMT0FUICAgICAgICAgICA9IChQQ00gfCBQQ01fU1VCX0ZMT0FUKSwKKyAgICBQQ01fMjRfQklUX1BBQ0tFRCAgID0gKFBDTSB8IFBDTV9TVUJfMjRfQklUX1BBQ0tFRCksCisgICAgQUFDX01BSU4gICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX01BSU4pLAorICAgIEFBQ19MQyAgICAgICAgICAgICAgPSAoQUFDIHwgQUFDX1NVQl9MQyksCisgICAgQUFDX1NTUiAgICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX1NTUiksCisgICAgQUFDX0xUUCAgICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX0xUUCksCisgICAgQUFDX0hFX1YxICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX0hFX1YxKSwKKyAgICBBQUNfU0NBTEFCTEUgICAgICAgID0gKEFBQyB8IEFBQ19TVUJfU0NBTEFCTEUpLAorICAgIEFBQ19FUkxDICAgICAgICAgICAgPSAoQUFDIHwgQUFDX1NVQl9FUkxDKSwKKyAgICBBQUNfTEQgICAgICAgICAgICAgID0gKEFBQyB8IEFBQ19TVUJfTEQpLAorICAgIEFBQ19IRV9WMiAgICAgICAgICAgPSAoQUFDIHwgQUFDX1NVQl9IRV9WMiksCisgICAgQUFDX0VMRCAgICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX0VMRCksCisgICAgQUFDX0FEVFNfTUFJTiAgICAgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfTUFJTiksCisgICAgQUFDX0FEVFNfTEMgICAgICAgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfTEMpLAorICAgIEFBQ19BRFRTX1NTUiAgICAgICAgPSAoQUFDX0FEVFMgfCBBQUNfU1VCX1NTUiksCisgICAgQUFDX0FEVFNfTFRQICAgICAgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfTFRQKSwKKyAgICBBQUNfQURUU19IRV9WMSAgICAgID0gKEFBQ19BRFRTIHwgQUFDX1NVQl9IRV9WMSksCisgICAgQUFDX0FEVFNfU0NBTEFCTEUgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfU0NBTEFCTEUpLAorICAgIEFBQ19BRFRTX0VSTEMgICAgICAgPSAoQUFDX0FEVFMgfCBBQUNfU1VCX0VSTEMpLAorICAgIEFBQ19BRFRTX0xEICAgICAgICAgPSAoQUFDX0FEVFMgfCBBQUNfU1VCX0xEKSwKKyAgICBBQUNfQURUU19IRV9WMiAgICAgID0gKEFBQ19BRFRTIHwgQUFDX1NVQl9IRV9WMiksCisgICAgQUFDX0FEVFNfRUxEICAgICAgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfRUxEKQorfTsKKworLyoqCisgKiBVc2FnZSBvZiB0aGVzZSB2YWx1ZXMgaGlnaGxpZ2h0cyBwbGFjZXMgaW4gdGhlIGNvZGUgdGhhdCB1c2UgMi0gb3IgOC0gY2hhbm5lbAorICogYXNzdW1wdGlvbnMuCisgKi8KK0BleHBvcnQobmFtZT0iIikKK2VudW0gRml4ZWRDaGFubmVsQ291bnQgOiBpbnQzMl90IHsKKyAgICBGQ0NfMiA9IDIsIC8vIFRoaXMgaXMgdHlwaWNhbGx5IGR1ZSB0byBsZWdhY3kgaW1wbGVtZW50YXRpb24gb2Ygc3RlcmVvIEkvTworICAgIEZDQ184ID0gOCAgLy8gVGhpcyBpcyB0eXBpY2FsbHkgZHVlIHRvIGF1ZGlvIG1peGVyIGFuZCByZXNhbXBsZXIgbGltaXRhdGlvbnMKK307CisKKy8qKgorICogQSBjaGFubmVsIG1hc2sgcGVyIHNlIG9ubHkgZGVmaW5lcyB0aGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiBhIGNoYW5uZWwsIG5vdAorICogdGhlIG9yZGVyLiAgU2VlIEFVRElPX0lOVEVSTEVBVkVfKiBmb3IgdGhlIHBsYXRmb3JtIGNvbnZlbnRpb24gb2Ygb3JkZXIuCisgKgorICogQXVkaW9DaGFubmVsTWFzayBpcyBhbiBvcGFxdWUgdHlwZSBhbmQgaXRzIGludGVybmFsIGxheW91dCBzaG91bGQgbm90IGJlCisgKiBhc3N1bWVkIGFzIGl0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gIEluc3RlYWQsIGFsd2F5cyB1c2UgZnVuY3Rpb25zCisgKiB0byBleGFtaW5lIGl0LgorICoKKyAqIFRoZXNlIGFyZSB0aGUgY3VycmVudCByZXByZXNlbnRhdGlvbnM6CisgKgorICogICBSRVBSRVNFTlRBVElPTl9QT1NJVElPTgorICogICAgIGlzIGEgY2hhbm5lbCBtYXNrIHJlcHJlc2VudGF0aW9uIGZvciBwb3NpdGlvbiBhc3NpZ25tZW50LiAgRWFjaCBsb3ctb3JkZXIKKyAqICAgICBiaXQgY29ycmVzcG9uZHMgdG8gdGhlIHNwYXRpYWwgcG9zaXRpb24gb2YgYSB0cmFuc2R1Y2VyIChvdXRwdXQpLCBvcgorICogICAgIGludGVycHJldGF0aW9uIG9mIGNoYW5uZWwgKGlucHV0KS4gIFRoZSB1c2VyIG9mIGEgY2hhbm5lbCBtYXNrIG5lZWRzIHRvCisgKiAgICAga25vdyB0aGUgY29udGV4dCBvZiB3aGV0aGVyIGl0IGlzIGZvciBvdXRwdXQgb3IgaW5wdXQuICBUaGUgY29uc3RhbnRzCisgKiAgICAgT1VUXyogb3IgSU5fKiBhcHBseSB0byB0aGUgYml0cyBwb3J0aW9uLiAgSXQgaXMgbm90IHBlcm1pdHRlZCBmb3Igbm8gYml0cworICogICAgIHRvIGJlIHNldC4KKyAqCisgKiAgIFJFUFJFU0VOVEFUSU9OX0lOREVYCisgKiAgICAgaXMgYSBjaGFubmVsIG1hc2sgcmVwcmVzZW50YXRpb24gZm9yIGluZGV4IGFzc2lnbm1lbnQuICBFYWNoIGxvdy1vcmRlcgorICogICAgIGJpdCBjb3JyZXNwb25kcyB0byBhIHNlbGVjdGVkIGNoYW5uZWwuICBUaGVyZSBpcyBubyBwbGF0Zm9ybQorICogICAgIGludGVycHJldGF0aW9uIG9mIHRoZSB2YXJpb3VzIGJpdHMuICBUaGVyZSBpcyBubyBjb25jZXB0IG9mIG91dHB1dCBvcgorICogICAgIGlucHV0LiAgSXQgaXMgbm90IHBlcm1pdHRlZCBmb3Igbm8gYml0cyB0byBiZSBzZXQuCisgKgorICogQWxsIG90aGVyIHJlcHJlc2VudGF0aW9ucyBhcmUgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCisgKgorICogV2FybmluZzogY3VycmVudCByZXByZXNlbnRhdGlvbiBkaXN0aW5ndWlzaGVzIGJldHdlZW4gaW5wdXQgYW5kIG91dHB1dCwgYnV0CisgKiB0aGlzIHdpbGwgbm90IHRoZSBiZSBjYXNlIGluIGZ1dHVyZSByZXZpc2lvbnMgb2YgdGhlIHBsYXRmb3JtLiBXaGVyZXZlciB0aGVyZQorICogaXMgYW4gYW1iaWd1aXR5IGJldHdlZW4gaW5wdXQgYW5kIG91dHB1dCB0aGF0IGlzIGN1cnJlbnRseSByZXNvbHZlZCBieQorICogY2hlY2tpbmcgdGhlIGNoYW5uZWwgbWFzaywgdGhlIGltcGxlbWVudGVyIHNob3VsZCBsb29rIGZvciB3YXlzIHRvIGZpeCBpdAorICogd2l0aCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG91dHNpZGUgb2YgdGhlIG1hc2suCisgKi8KK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBVURJT19DSEFOTkVMXyIpCitlbnVtIEF1ZGlvQ2hhbm5lbE1hc2sgOiB1aW50MzJfdCB7CisgICAgUkVQUkVTRU5UQVRJT05fUE9TSVRJT04gPSAwLCAvKiogbXVzdCBiZSAwIGZvciBjb21wYXRpYmlsaXR5ICovCisgICAgLyoqIDEgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgKi8KKyAgICBSRVBSRVNFTlRBVElPTl9JTkRFWCAgICA9IDIsCisgICAgLyoqIDMgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgKi8KKworICAgIC8qKiBUaGVzZSBjYW4gYmUgYSBjb21wbGV0ZSB2YWx1ZSBvZiBBdWRpb0NoYW5uZWxNYXNrICovCisgICAgTk9ORSAgICAgICAgICAgICAgICAgICAgICA9IDB4MCwKKyAgICBJTlZBTElEICAgICAgICAgICAgICAgICAgID0gMHhDMDAwMDAwMCwKKworICAgLyoqCisgICAgKiBUaGVzZSBjYW4gYmUgdGhlIGJpdHMgcG9ydGlvbiBvZiBhbiBBdWRpb0NoYW5uZWxNYXNrCisgICAgKiB3aXRoIHJlcHJlc2VudGF0aW9uIFJFUFJFU0VOVEFUSU9OX1BPU0lUSU9OLgorICAgICovCisKKyAgICAvKiogb3V0cHV0IGNoYW5uZWxzICovCisgICAgT1VUX0ZST05UX0xFRlQgICAgICAgICAgICA9IDB4MSwKKyAgICBPVVRfRlJPTlRfUklHSFQgICAgICAgICAgID0gMHgyLAorICAgIE9VVF9GUk9OVF9DRU5URVIgICAgICAgICAgPSAweDQsCisgICAgT1VUX0xPV19GUkVRVUVOQ1kgICAgICAgICA9IDB4OCwKKyAgICBPVVRfQkFDS19MRUZUICAgICAgICAgICAgID0gMHgxMCwKKyAgICBPVVRfQkFDS19SSUdIVCAgICAgICAgICAgID0gMHgyMCwKKyAgICBPVVRfRlJPTlRfTEVGVF9PRl9DRU5URVIgID0gMHg0MCwKKyAgICBPVVRfRlJPTlRfUklHSFRfT0ZfQ0VOVEVSID0gMHg4MCwKKyAgICBPVVRfQkFDS19DRU5URVIgICAgICAgICAgID0gMHgxMDAsCisgICAgT1VUX1NJREVfTEVGVCAgICAgICAgICAgICA9IDB4MjAwLAorICAgIE9VVF9TSURFX1JJR0hUICAgICAgICAgICAgPSAweDQwMCwKKyAgICBPVVRfVE9QX0NFTlRFUiAgICAgICAgICAgID0gMHg4MDAsCisgICAgT1VUX1RPUF9GUk9OVF9MRUZUICAgICAgICA9IDB4MTAwMCwKKyAgICBPVVRfVE9QX0ZST05UX0NFTlRFUiAgICAgID0gMHgyMDAwLAorICAgIE9VVF9UT1BfRlJPTlRfUklHSFQgICAgICAgPSAweDQwMDAsCisgICAgT1VUX1RPUF9CQUNLX0xFRlQgICAgICAgICA9IDB4ODAwMCwKKyAgICBPVVRfVE9QX0JBQ0tfQ0VOVEVSICAgICAgID0gMHgxMDAwMCwKKyAgICBPVVRfVE9QX0JBQ0tfUklHSFQgICAgICAgID0gMHgyMDAwMCwKKworICAgIE9VVF9NT05PICAgICA9IE9VVF9GUk9OVF9MRUZULAorICAgIE9VVF9TVEVSRU8gICA9IChPVVRfRlJPTlRfTEVGVCB8IE9VVF9GUk9OVF9SSUdIVCksCisgICAgT1VUXzJQT0lOVDEgID0gKE9VVF9GUk9OVF9MRUZUIHwgT1VUX0ZST05UX1JJR0hUIHwgT1VUX0xPV19GUkVRVUVOQ1kpLAorICAgIE9VVF9RVUFEICAgICA9IChPVVRfRlJPTlRfTEVGVCB8IE9VVF9GUk9OVF9SSUdIVCB8CisgICAgICAgICAgICBPVVRfQkFDS19MRUZUIHwgT1VUX0JBQ0tfUklHSFQpLAorICAgIE9VVF9RVUFEX0JBQ0sgPSBPVVRfUVVBRCwKKyAgICAvKiogbGlrZSBPVVRfUVVBRF9CQUNLIHdpdGggKl9TSURFXyogaW5zdGVhZCBvZiAqX0JBQ0tfKiAqLworICAgIE9VVF9RVUFEX1NJREUgPSAoT1VUX0ZST05UX0xFRlQgfCBPVVRfRlJPTlRfUklHSFQgfAorICAgICAgICAgICAgT1VUX1NJREVfTEVGVCB8IE9VVF9TSURFX1JJR0hUKSwKKyAgICBPVVRfU1VSUk9VTkQgPSAoT1VUX0ZST05UX0xFRlQgfCBPVVRfRlJPTlRfUklHSFQgfAorICAgICAgICAgICAgT1VUX0ZST05UX0NFTlRFUiB8IE9VVF9CQUNLX0NFTlRFUiksCisgICAgT1VUX1BFTlRBID0gKE9VVF9RVUFEIHwgT1VUX0ZST05UX0NFTlRFUiksCisgICAgT1VUXzVQT0lOVDEgICA9IChPVVRfRlJPTlRfTEVGVCB8IE9VVF9GUk9OVF9SSUdIVCB8CisgICAgICAgICAgICBPVVRfRlJPTlRfQ0VOVEVSIHwgT1VUX0xPV19GUkVRVUVOQ1kgfAorICAgICAgICAgICAgT1VUX0JBQ0tfTEVGVCB8IE9VVF9CQUNLX1JJR0hUKSwKKyAgICBPVVRfNVBPSU5UMV9CQUNLID0gT1VUXzVQT0lOVDEsCisgICAgLyoqIGxpa2UgT1VUXzVQT0lOVDFfQkFDSyB3aXRoICpfU0lERV8qIGluc3RlYWQgb2YgKl9CQUNLXyogKi8KKyAgICBPVVRfNVBPSU5UMV9TSURFID0gKE9VVF9GUk9OVF9MRUZUIHwgT1VUX0ZST05UX1JJR0hUIHwKKyAgICAgICAgICAgIE9VVF9GUk9OVF9DRU5URVIgfCBPVVRfTE9XX0ZSRVFVRU5DWSB8CisgICAgICAgICAgICBPVVRfU0lERV9MRUZUIHwgT1VUX1NJREVfUklHSFQpLAorICAgIE9VVF82UE9JTlQxID0gKE9VVF9GUk9OVF9MRUZUIHwgT1VUX0ZST05UX1JJR0hUIHwKKyAgICAgICAgICAgIE9VVF9GUk9OVF9DRU5URVIgfCBPVVRfTE9XX0ZSRVFVRU5DWSB8CisgICAgICAgICAgICBPVVRfQkFDS19MRUZUIHwgT1VUX0JBQ0tfUklHSFQgfAorICAgICAgICAgICAgT1VUX0JBQ0tfQ0VOVEVSKSwKKyAgICAvKiogbWF0Y2hlcyB0aGUgY29ycmVjdCBBdWRpb0Zvcm1hdC5DSEFOTkVMX09VVF83UE9JTlQxX1NVUlJPVU5EICovCisgICAgT1VUXzdQT0lOVDEgID0gKE9VVF9GUk9OVF9MRUZUIHwgT1VUX0ZST05UX1JJR0hUIHwKKyAgICAgICAgICAgIE9VVF9GUk9OVF9DRU5URVIgfCBPVVRfTE9XX0ZSRVFVRU5DWSB8CisgICAgICAgICAgICBPVVRfQkFDS19MRUZUIHwgT1VUX0JBQ0tfUklHSFQgfAorICAgICAgICAgICAgT1VUX1NJREVfTEVGVCB8IE9VVF9TSURFX1JJR0hUKSwKKyAgICBPVVRfQUxMICAgICAgPSAoT1VUX0ZST05UX0xFRlQgfCBPVVRfRlJPTlRfUklHSFQgfAorICAgICAgICAgICAgT1VUX0ZST05UX0NFTlRFUiB8IE9VVF9MT1dfRlJFUVVFTkNZIHwKKyAgICAgICAgICAgIE9VVF9CQUNLX0xFRlQgfCBPVVRfQkFDS19SSUdIVCB8CisgICAgICAgICAgICBPVVRfRlJPTlRfTEVGVF9PRl9DRU5URVIgfCBPVVRfRlJPTlRfUklHSFRfT0ZfQ0VOVEVSIHwKKyAgICAgICAgICAgIE9VVF9CQUNLX0NFTlRFUiB8CisgICAgICAgICAgICBPVVRfU0lERV9MRUZUIHwgT1VUX1NJREVfUklHSFQgfAorICAgICAgICAgICAgT1VUX1RPUF9DRU5URVIgfAorICAgICAgICAgICAgT1VUX1RPUF9GUk9OVF9MRUZUIHwgT1VUX1RPUF9GUk9OVF9DRU5URVIgfCBPVVRfVE9QX0ZST05UX1JJR0hUIHwKKyAgICAgICAgICAgIE9VVF9UT1BfQkFDS19MRUZUIHwgT1VUX1RPUF9CQUNLX0NFTlRFUiB8IE9VVF9UT1BfQkFDS19SSUdIVCksCisKKyAgICAvKiogVGhlc2UgYXJlIGJpdHMgb25seSwgbm90IGNvbXBsZXRlIHZhbHVlcyAqLworCisgICAgLyoqIGlucHV0IGNoYW5uZWxzICovCisgICAgSU5fTEVGVCAgICAgICAgICAgID0gMHg0LAorICAgIElOX1JJR0hUICAgICAgICAgICA9IDB4OCwKKyAgICBJTl9GUk9OVCAgICAgICAgICAgPSAweDEwLAorICAgIElOX0JBQ0sgICAgICAgICAgICA9IDB4MjAsCisgICAgSU5fTEVGVF9QUk9DRVNTRUQgID0gMHg0MCwKKyAgICBJTl9SSUdIVF9QUk9DRVNTRUQgPSAweDgwLAorICAgIElOX0ZST05UX1BST0NFU1NFRCA9IDB4MTAwLAorICAgIElOX0JBQ0tfUFJPQ0VTU0VEICA9IDB4MjAwLAorICAgIElOX1BSRVNTVVJFICAgICAgICA9IDB4NDAwLAorICAgIElOX1hfQVhJUyAgICAgICAgICA9IDB4ODAwLAorICAgIElOX1lfQVhJUyAgICAgICAgICA9IDB4MTAwMCwKKyAgICBJTl9aX0FYSVMgICAgICAgICAgPSAweDIwMDAsCisgICAgSU5fVk9JQ0VfVVBMSU5LICAgID0gMHg0MDAwLAorICAgIElOX1ZPSUNFX0ROTElOSyAgICA9IDB4ODAwMCwKKworICAgIElOX01PTk8gICA9IElOX0ZST05ULAorICAgIElOX1NURVJFTyA9IChJTl9MRUZUIHwgSU5fUklHSFQpLAorICAgIElOX0ZST05UX0JBQ0sgPSAoSU5fRlJPTlQgfCBJTl9CQUNLKSwKKyAgICBJTl82ID0gKElOX0xFRlQgfCBJTl9SSUdIVCB8CisgICAgICAgICAgICBJTl9GUk9OVCB8IElOX0JBQ0sgfAorICAgICAgICAgICAgSU5fTEVGVF9QUk9DRVNTRUQgfCBJTl9SSUdIVF9QUk9DRVNTRUQpLAorICAgIElOX1ZPSUNFX1VQTElOS19NT05PID0gKElOX1ZPSUNFX1VQTElOSyB8IElOX01PTk8pLAorICAgIElOX1ZPSUNFX0ROTElOS19NT05PID0gKElOX1ZPSUNFX0ROTElOSyB8IElOX01PTk8pLAorICAgIElOX1ZPSUNFX0NBTExfTU9OTyAgID0gKElOX1ZPSUNFX1VQTElOS19NT05PIHwKKyAgICAgICAgICAgIElOX1ZPSUNFX0ROTElOS19NT05PKSwKKyAgICBJTl9BTEwgICAgPSAoSU5fTEVGVCB8IElOX1JJR0hUIHwgSU5fRlJPTlQgfCBJTl9CQUNLfAorICAgICAgICAgICAgSU5fTEVGVF9QUk9DRVNTRUQgfCBJTl9SSUdIVF9QUk9DRVNTRUQgfAorICAgICAgICAgICAgSU5fRlJPTlRfUFJPQ0VTU0VEIHwgSU5fQkFDS19QUk9DRVNTRUR8CisgICAgICAgICAgICBJTl9QUkVTU1VSRSB8CisgICAgICAgICAgICBJTl9YX0FYSVMgfCBJTl9ZX0FYSVMgfCBJTl9aX0FYSVMgfAorICAgICAgICAgICAgSU5fVk9JQ0VfVVBMSU5LIHwgSU5fVk9JQ0VfRE5MSU5LKSwKKworICAgIENPVU5UX01BWCAgICA9IDMwLAorICAgIElOREVYX0hEUiAgICA9IFJFUFJFU0VOVEFUSU9OX0lOREVYIDw8IENPVU5UX01BWCwKKyAgICBJTkRFWF9NQVNLXzEgPSBJTkRFWF9IRFIgfCAoKDEgPDwgMSkgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzIgPSBJTkRFWF9IRFIgfCAoKDEgPDwgMikgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzMgPSBJTkRFWF9IRFIgfCAoKDEgPDwgMykgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzQgPSBJTkRFWF9IRFIgfCAoKDEgPDwgNCkgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzUgPSBJTkRFWF9IRFIgfCAoKDEgPDwgNSkgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzYgPSBJTkRFWF9IRFIgfCAoKDEgPDwgNikgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzcgPSBJTkRFWF9IRFIgfCAoKDEgPDwgNykgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzggPSBJTkRFWF9IRFIgfCAoKDEgPDwgOCkgLSAxKQorfTsKKworCisvKioKKyAqIEV4cHJlc3NlcyB0aGUgY29udmVudGlvbiB3aGVuIHN0ZXJlbyBhdWRpbyBzYW1wbGVzIGFyZSBzdG9yZWQgaW50ZXJsZWF2ZWQKKyAqIGluIGFuIGFycmF5LiAgVGhpcyBzaG91bGQgaW1wcm92ZSByZWFkYWJpbGl0eSBieSBhbGxvd2luZyBjb2RlIHRvIHVzZQorICogc3ltYm9saWMgaW5kaWNlcyBpbnN0ZWFkIG9mIGhhcmQtY29kZWQgWzBdIGFuZCBbMV0uCisgKgorICogRm9yIG11bHRpLWNoYW5uZWwgYmV5b25kIHN0ZXJlbywgdGhlIHBsYXRmb3JtIGNvbnZlbnRpb24gaXMgdGhhdCBjaGFubmVscworICogYXJlIGludGVybGVhdmVkIGluIG9yZGVyIGZyb20gbGVhc3Qgc2lnbmlmaWNhbnQgY2hhbm5lbCBtYXNrIGJpdCB0byBtb3N0CisgKiBzaWduaWZpY2FudCBjaGFubmVsIG1hc2sgYml0LCB3aXRoIHVudXNlZCBiaXRzIHNraXBwZWQuICBBbnkgZXhjZXB0aW9ucworICogdG8gdGhpcyBjb252ZW50aW9uIHdpbGwgYmUgbm90ZWQgYXQgdGhlIGFwcHJvcHJpYXRlIEFQSS4KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX0lOVEVSTEVBVkVfIikKK2VudW0gQXVkaW9JbnRlcmxlYXZlIDogaW50MzJfdCB7CisgICAgTEVGVCAgID0gMCwKKyAgICBSSUdIVCAgPSAxLAorfTsKKworLyoqCisgKiBNYWpvciBtb2RlcyBmb3IgYSBtb2JpbGUgZGV2aWNlLiBUaGUgY3VycmVudCBtb2RlIHNldHRpbmcgYWZmZWN0cyBhdWRpbworICogcm91dGluZy4KKyAqLworQGV4cG9ydChuYW1lPSJhdWRpb19tb2RlX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX01PREVfIikKK2VudW0gQXVkaW9Nb2RlIDogaW50MzJfdCB7CisgICAgSU5WQUxJRCAgICAgICAgICA9IC0yLAorICAgIENVUlJFTlQgICAgICAgICAgPSAtMSwKKyAgICBOT1JNQUwgICAgICAgICAgID0gMCwKKyAgICBSSU5HVE9ORSAgICAgICAgID0gMSwKKyAgICBJTl9DQUxMICAgICAgICAgID0gMiwKKyAgICBJTl9DT01NVU5JQ0FUSU9OID0gMywKKworICAgIENOVCwKKyAgICBNQVggICAgICAgICAgICAgID0gQ05UIC0gMSwKK307CisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBVURJT19ERVZJQ0VfIikKK2VudW0gQXVkaW9EZXZpY2UgOiB1aW50MzJfdCB7CisgICAgTk9ORSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAsCisgICAgLyoqIHJlc2VydmVkIGJpdHMgKi8KKyAgICBCSVRfSU4gICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODAwMDAwMDAsCisgICAgQklUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgPSAweDQwMDAwMDAwLAorICAgIC8qKiBvdXRwdXQgZGV2aWNlcyAqLworICAgIE9VVF9FQVJQSUVDRSAgICAgICAgICAgICAgICAgID0gMHgxLAorICAgIE9VVF9TUEVBS0VSICAgICAgICAgICAgICAgICAgID0gMHgyLAorICAgIE9VVF9XSVJFRF9IRUFEU0VUICAgICAgICAgICAgID0gMHg0LAorICAgIE9VVF9XSVJFRF9IRUFEUEhPTkUgICAgICAgICAgID0gMHg4LAorICAgIE9VVF9CTFVFVE9PVEhfU0NPICAgICAgICAgICAgID0gMHgxMCwKKyAgICBPVVRfQkxVRVRPT1RIX1NDT19IRUFEU0VUICAgICA9IDB4MjAsCisgICAgT1VUX0JMVUVUT09USF9TQ09fQ0FSS0lUICAgICAgPSAweDQwLAorICAgIE9VVF9CTFVFVE9PVEhfQTJEUCAgICAgICAgICAgID0gMHg4MCwKKyAgICBPVVRfQkxVRVRPT1RIX0EyRFBfSEVBRFBIT05FUyA9IDB4MTAwLAorICAgIE9VVF9CTFVFVE9PVEhfQTJEUF9TUEVBS0VSICAgID0gMHgyMDAsCisgICAgT1VUX0FVWF9ESUdJVEFMICAgICAgICAgICAgICAgPSAweDQwMCwKKyAgICBPVVRfSERNSSAgICAgICAgICAgICAgICAgICAgICA9IE9VVF9BVVhfRElHSVRBTCwKKyAgICAvKiogdXNlcyBhbiBhbmFsb2cgY29ubmVjdGlvbiAobXVsdGlwbGV4ZWQgb3ZlciB0aGUgVVNCIHBpbnMgZm9yIGluc3RhbmNlKSAqLworICAgIE9VVF9BTkxHX0RPQ0tfSEVBRFNFVCAgICAgICAgID0gMHg4MDAsCisgICAgT1VUX0RHVExfRE9DS19IRUFEU0VUICAgICAgICAgPSAweDEwMDAsCisgICAgLyoqIFVTQiBhY2Nlc3NvcnkgbW9kZTogQW5kcm9pZCBkZXZpY2UgaXMgVVNCIGRldmljZSBhbmQgZG9jayBpcyBVU0IgaG9zdCAqLworICAgIE9VVF9VU0JfQUNDRVNTT1JZICAgICAgICAgICAgID0gMHgyMDAwLAorICAgIC8qKiBVU0IgaG9zdCBtb2RlOiBBbmRyb2lkIGRldmljZSBpcyBVU0IgaG9zdCBhbmQgZG9jayBpcyBVU0IgZGV2aWNlICovCisgICAgT1VUX1VTQl9ERVZJQ0UgICAgICAgICAgICAgICAgPSAweDQwMDAsCisgICAgT1VUX1JFTU9URV9TVUJNSVggICAgICAgICAgICAgPSAweDgwMDAsCisgICAgLyoqIFRlbGVwaG9ueSB2b2ljZSBUWCBwYXRoICovCisgICAgT1VUX1RFTEVQSE9OWV9UWCAgICAgICAgICAgICAgPSAweDEwMDAwLAorICAgIC8qKiBBbmFsb2cgamFjayB3aXRoIGxpbmUgaW1wZWRhbmNlIGRldGVjdGVkICovCisgICAgT1VUX0xJTkUgICAgICAgICAgICAgICAgICAgICAgPSAweDIwMDAwLAorICAgIC8qKiBIRE1JIEF1ZGlvIFJldHVybiBDaGFubmVsICovCisgICAgT1VUX0hETUlfQVJDICAgICAgICAgICAgICAgICAgPSAweDQwMDAwLAorICAgIC8qKiBTL1BESUYgb3V0ICovCisgICAgT1VUX1NQRElGICAgICAgICAgICAgICAgICAgICAgPSAweDgwMDAwLAorICAgIC8qKiBGTSB0cmFuc21pdHRlciBvdXQgKi8KKyAgICBPVVRfRk0gICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTAwMDAwLAorICAgIC8qKiBMaW5lIG91dCBmb3IgYXYgZGV2aWNlcyAqLworICAgIE9VVF9BVVhfTElORSAgICAgICAgICAgICAgICAgID0gMHgyMDAwMDAsCisgICAgLyoqIGxpbWl0ZWQtb3V0cHV0IHNwZWFrZXIgZGV2aWNlIGZvciBhY291c3RpYyBzYWZldHkgKi8KKyAgICBPVVRfU1BFQUtFUl9TQUZFICAgICAgICAgICAgICA9IDB4NDAwMDAwLAorICAgIE9VVF9JUCAgICAgICAgICAgICAgICAgICAgICAgID0gMHg4MDAwMDAsCisgICAgLyoqIGF1ZGlvIGJ1cyBpbXBsZW1lbnRlZCBieSB0aGUgYXVkaW8gc3lzdGVtIChlLmcgYW4gTU9TVCBzdGVyZW8gY2hhbm5lbCkgKi8KKyAgICBPVVRfQlVTICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTAwMDAwMCwKKyAgICBPVVRfUFJPWFkgICAgICAgICAgICAgICAgICAgICA9IDB4MjAwMDAwMCwKKyAgICBPVVRfVVNCX0hFQURTRVQgICAgICAgICAgICAgICA9IDB4NDAwMDAwMCwKKyAgICBPVVRfREVGQVVMVCAgICAgICAgICAgICAgICAgICA9IEJJVF9ERUZBVUxULAorICAgIE9VVF9BTEwgICAgICA9IChPVVRfRUFSUElFQ0UgfAorICAgICAgICAgICAgT1VUX1NQRUFLRVIgfAorICAgICAgICAgICAgT1VUX1dJUkVEX0hFQURTRVQgfAorICAgICAgICAgICAgT1VUX1dJUkVEX0hFQURQSE9ORSB8CisgICAgICAgICAgICBPVVRfQkxVRVRPT1RIX1NDTyB8CisgICAgICAgICAgICBPVVRfQkxVRVRPT1RIX1NDT19IRUFEU0VUIHwKKyAgICAgICAgICAgIE9VVF9CTFVFVE9PVEhfU0NPX0NBUktJVCB8CisgICAgICAgICAgICBPVVRfQkxVRVRPT1RIX0EyRFAgfAorICAgICAgICAgICAgT1VUX0JMVUVUT09USF9BMkRQX0hFQURQSE9ORVMgfAorICAgICAgICAgICAgT1VUX0JMVUVUT09USF9BMkRQX1NQRUFLRVIgfAorICAgICAgICAgICAgT1VUX0hETUkgfAorICAgICAgICAgICAgT1VUX0FOTEdfRE9DS19IRUFEU0VUIHwKKyAgICAgICAgICAgIE9VVF9ER1RMX0RPQ0tfSEVBRFNFVCB8CisgICAgICAgICAgICBPVVRfVVNCX0FDQ0VTU09SWSB8CisgICAgICAgICAgICBPVVRfVVNCX0RFVklDRSB8CisgICAgICAgICAgICBPVVRfUkVNT1RFX1NVQk1JWCB8CisgICAgICAgICAgICBPVVRfVEVMRVBIT05ZX1RYIHwKKyAgICAgICAgICAgIE9VVF9MSU5FIHwKKyAgICAgICAgICAgIE9VVF9IRE1JX0FSQyB8CisgICAgICAgICAgICBPVVRfU1BESUYgfAorICAgICAgICAgICAgT1VUX0ZNIHwKKyAgICAgICAgICAgIE9VVF9BVVhfTElORSB8CisgICAgICAgICAgICBPVVRfU1BFQUtFUl9TQUZFIHwKKyAgICAgICAgICAgIE9VVF9JUCB8CisgICAgICAgICAgICBPVVRfQlVTIHwKKyAgICAgICAgICAgIE9VVF9QUk9YWSB8CisgICAgICAgICAgICBPVVRfVVNCX0hFQURTRVQgfAorICAgICAgICAgICAgT1VUX0RFRkFVTFQpLAorICAgIE9VVF9BTExfQTJEUCA9IChPVVRfQkxVRVRPT1RIX0EyRFAgfAorICAgICAgICAgICAgT1VUX0JMVUVUT09USF9BMkRQX0hFQURQSE9ORVMgfAorICAgICAgICAgICAgT1VUX0JMVUVUT09USF9BMkRQX1NQRUFLRVIpLAorICAgIE9VVF9BTExfU0NPICA9IChPVVRfQkxVRVRPT1RIX1NDTyB8CisgICAgICAgICAgICBPVVRfQkxVRVRPT1RIX1NDT19IRUFEU0VUIHwKKyAgICAgICAgICAgIE9VVF9CTFVFVE9PVEhfU0NPX0NBUktJVCksCisgICAgT1VUX0FMTF9VU0IgID0gKE9VVF9VU0JfQUNDRVNTT1JZIHwgT1VUX1VTQl9ERVZJQ0UgfCBPVVRfVVNCX0hFQURTRVQpLAorICAgIC8qKiBpbnB1dCBkZXZpY2VzICovCisgICAgSU5fQ09NTVVOSUNBVElPTiAgICAgICAgID0gQklUX0lOIHwgMHgxLAorICAgIElOX0FNQklFTlQgICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4MiwKKyAgICBJTl9CVUlMVElOX01JQyAgICAgICAgICAgPSBCSVRfSU4gfCAweDQsCisgICAgSU5fQkxVRVRPT1RIX1NDT19IRUFEU0VUID0gQklUX0lOIHwgMHg4LAorICAgIElOX1dJUkVEX0hFQURTRVQgICAgICAgICA9IEJJVF9JTiB8IDB4MTAsCisgICAgSU5fQVVYX0RJR0lUQUwgICAgICAgICAgID0gQklUX0lOIHwgMHgyMCwKKyAgICBJTl9IRE1JICAgICAgICAgICAgICAgICAgPSBJTl9BVVhfRElHSVRBTCwKKyAgICAvKiogVGVsZXBob255IHZvaWNlIFJYIHBhdGggKi8KKyAgICBJTl9WT0lDRV9DQUxMICAgICAgICAgICAgPSBCSVRfSU4gfCAweDQwLAorICAgIElOX1RFTEVQSE9OWV9SWCAgICAgICAgICA9IElOX1ZPSUNFX0NBTEwsCisgICAgSU5fQkFDS19NSUMgICAgICAgICAgICAgID0gQklUX0lOIHwgMHg4MCwKKyAgICBJTl9SRU1PVEVfU1VCTUlYICAgICAgICAgPSBCSVRfSU4gfCAweDEwMCwKKyAgICBJTl9BTkxHX0RPQ0tfSEVBRFNFVCAgICAgPSBCSVRfSU4gfCAweDIwMCwKKyAgICBJTl9ER1RMX0RPQ0tfSEVBRFNFVCAgICAgPSBCSVRfSU4gfCAweDQwMCwKKyAgICBJTl9VU0JfQUNDRVNTT1JZICAgICAgICAgPSBCSVRfSU4gfCAweDgwMCwKKyAgICBJTl9VU0JfREVWSUNFICAgICAgICAgICAgPSBCSVRfSU4gfCAweDEwMDAsCisgICAgLyoqIEZNIHR1bmVyIGlucHV0ICovCisgICAgSU5fRk1fVFVORVIgICAgICAgICAgICAgID0gQklUX0lOIHwgMHgyMDAwLAorICAgIC8qKiBUViB0dW5lciBpbnB1dCAqLworICAgIElOX1RWX1RVTkVSICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4NDAwMCwKKyAgICAvKiogQW5hbG9nIGphY2sgd2l0aCBsaW5lIGltcGVkYW5jZSBkZXRlY3RlZCAqLworICAgIElOX0xJTkUgICAgICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4ODAwMCwKKyAgICAvKiogUy9QRElGIGluICovCisgICAgSU5fU1BESUYgICAgICAgICAgICAgICAgID0gQklUX0lOIHwgMHgxMDAwMCwKKyAgICBJTl9CTFVFVE9PVEhfQTJEUCAgICAgICAgPSBCSVRfSU4gfCAweDIwMDAwLAorICAgIElOX0xPT1BCQUNLICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4NDAwMDAsCisgICAgSU5fSVAgICAgICAgICAgICAgICAgICAgID0gQklUX0lOIHwgMHg4MDAwMCwKKyAgICAvKiogYXVkaW8gYnVzIGltcGxlbWVudGVkIGJ5IHRoZSBhdWRpbyBzeXN0ZW0gKGUuZyBhbiBNT1NUIHN0ZXJlbyBjaGFubmVsKSAqLworICAgIElOX0JVUyAgICAgICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4MTAwMDAwLAorICAgIElOX1BST1hZICAgICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4MTAwMDAwMCwKKyAgICBJTl9VU0JfSEVBRFNFVCAgICAgICAgICAgPSBCSVRfSU4gfCAweDIwMDAwMDAsCisgICAgSU5fREVGQVVMVCAgICAgICAgICAgICAgID0gQklUX0lOIHwgQklUX0RFRkFVTFQsCisKKyAgICBJTl9BTEwgICAgID0gKElOX0NPTU1VTklDQVRJT04gfAorICAgICAgICAgICAgSU5fQU1CSUVOVCB8CisgICAgICAgICAgICBJTl9CVUlMVElOX01JQyB8CisgICAgICAgICAgICBJTl9CTFVFVE9PVEhfU0NPX0hFQURTRVQgfAorICAgICAgICAgICAgSU5fV0lSRURfSEVBRFNFVCB8CisgICAgICAgICAgICBJTl9IRE1JIHwKKyAgICAgICAgICAgIElOX1RFTEVQSE9OWV9SWCB8CisgICAgICAgICAgICBJTl9CQUNLX01JQyB8CisgICAgICAgICAgICBJTl9SRU1PVEVfU1VCTUlYIHwKKyAgICAgICAgICAgIElOX0FOTEdfRE9DS19IRUFEU0VUIHwKKyAgICAgICAgICAgIElOX0RHVExfRE9DS19IRUFEU0VUIHwKKyAgICAgICAgICAgIElOX1VTQl9BQ0NFU1NPUlkgfAorICAgICAgICAgICAgSU5fVVNCX0RFVklDRSB8CisgICAgICAgICAgICBJTl9GTV9UVU5FUiB8CisgICAgICAgICAgICBJTl9UVl9UVU5FUiB8CisgICAgICAgICAgICBJTl9MSU5FIHwKKyAgICAgICAgICAgIElOX1NQRElGIHwKKyAgICAgICAgICAgIElOX0JMVUVUT09USF9BMkRQIHwKKyAgICAgICAgICAgIElOX0xPT1BCQUNLIHwKKyAgICAgICAgICAgIElOX0lQIHwKKyAgICAgICAgICAgIElOX0JVUyB8CisgICAgICAgICAgICBJTl9QUk9YWSB8CisgICAgICAgICAgICBJTl9VU0JfSEVBRFNFVCB8CisgICAgICAgICAgICBJTl9ERUZBVUxUKSwKKyAgICBJTl9BTExfU0NPID0gSU5fQkxVRVRPT1RIX1NDT19IRUFEU0VULAorICAgIElOX0FMTF9VU0IgID0gKElOX1VTQl9BQ0NFU1NPUlkgfCBJTl9VU0JfREVWSUNFIHwgSU5fVVNCX0hFQURTRVQpLAorfTsKKworLyoqCisgKiBUaGUgYXVkaW8gb3V0cHV0IGZsYWdzIHNlcnZlIHR3byBwdXJwb3NlczoKKyAqCisgKiAgLSB3aGVuIGFuIEF1ZGlvVHJhY2sgaXMgY3JlYXRlZCB0aGV5IGluZGljYXRlIGEgIndpc2giIHRvIGJlIGNvbm5lY3RlZCB0byBhbgorICogICAgb3V0cHV0IHN0cmVhbSB3aXRoIGF0dHJpYnV0ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgc3BlY2lmaWVkIGZsYWdzOworICoKKyAqICAtIHdoZW4gcHJlc2VudCBpbiBhbiBvdXRwdXQgcHJvZmlsZSBkZXNjcmlwdG9yIGxpc3RlZCBmb3IgYSBwYXJ0aWN1bGFyIGF1ZGlvCisgKiAgICBoYXJkd2FyZSBtb2R1bGUsIHRoZXkgaW5kaWNhdGUgdGhhdCBhbiBvdXRwdXQgc3RyZWFtIGNhbiBiZSBvcGVuZWQgdGhhdAorICogICAgc3VwcG9ydHMgdGhlIGF0dHJpYnV0ZXMgaW5kaWNhdGVkIGJ5IHRoZSBmbGFncy4KKyAqCisgKiBUaGUgYXVkaW8gcG9saWN5IG1hbmFnZXIgd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIGZsYWdzIGluIHRoZSByZXF1ZXN0CisgKiAod2hlbiBnZXRPdXB1dCgpIGlzIGNhbGxlZCkgdG8gYW4gYXZhaWxhYmxlIG91dHB1dCBzdHJlYW0uCisgKi8KK0BleHBvcnQobmFtZT0iYXVkaW9fb3V0cHV0X2ZsYWdzX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX09VVFBVVF9GTEFHXyIpCitlbnVtIEF1ZGlvT3V0cHV0RmxhZyA6IGludDMyX3QgeworICAgIE5PTkUgICAgPSAweDAsIC8vIG5vIGF0dHJpYnV0ZXMKKyAgICBESVJFQ1QgID0gMHgxLCAvLyB0aGlzIG91dHB1dCBkaXJlY3RseSBjb25uZWN0cyBhIHRyYWNrCisgICAgICAgICAgICAgICAgICAgLy8gdG8gb25lIG91dHB1dCBzdHJlYW06IG5vIHNvZnR3YXJlIG1peGVyCisgICAgUFJJTUFSWSA9IDB4MiwgLy8gdGhpcyBvdXRwdXQgaXMgdGhlIHByaW1hcnkgb3V0cHV0IG9mIHRoZSBkZXZpY2UuIEl0IGlzCisgICAgICAgICAgICAgICAgICAgLy8gdW5pcXVlIGFuZCBtdXN0IGJlIHByZXNlbnQuIEl0IGlzIG9wZW5lZCBieSBkZWZhdWx0IGFuZAorICAgICAgICAgICAgICAgICAgIC8vIHJlY2VpdmVzIHJvdXRpbmcsIGF1ZGlvIG1vZGUgYW5kIHZvbHVtZSBjb250cm9scyByZWxhdGVkCisgICAgICAgICAgICAgICAgICAgLy8gdG8gdm9pY2UgY2FsbHMuCisgICAgRkFTVCAgICA9IDB4NCwgICAgLy8gb3V0cHV0IHN1cHBvcnRzICJmYXN0IHRyYWNrcyIsIGRlZmluZWQgZWxzZXdoZXJlCisgICAgREVFUF9CVUZGRVIgICAgICA9IDB4OCwgICAvLyB1c2UgZGVlcCBhdWRpbyBidWZmZXJzCisgICAgQ09NUFJFU1NfT0ZGTE9BRCA9IDB4MTAsICAvLyBvZmZsb2FkIHBsYXliYWNrIG9mIGNvbXByZXNzZWQgc3RyZWFtcyB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFyZHdhcmUgY29kZWMKKyAgICBOT05fQkxPQ0tJTkcgICAgID0gMHgyMCwgIC8vIHVzZSBub24tYmxvY2tpbmcgd3JpdGUKKyAgICBIV19BVl9TWU5DID0gMHg0MCwgICAvLyBvdXRwdXQgdXNlcyBhIGhhcmR3YXJlIEEvViBzeW5jCisgICAgVFRTICAgICAgICA9IDB4ODAsICAgLy8gb3V0cHV0IGZvciBzdHJlYW1zIHRyYW5zbWl0dGVkIHRocm91Z2ggc3BlYWtlciBhdCBhCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2FtcGxlIHJhdGUgaGlnaCBlbm91Z2ggdG8gYWNjb21tb2RhdGUgbG93ZXItcmFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bHRyYXNvbmljIHAvYgorICAgIFJBVyAgICAgICAgPSAweDEwMCwgIC8vIG1pbmltaXplIHNpZ25hbCBwcm9jZXNzaW5nCisgICAgU1lOQyAgICAgICA9IDB4MjAwLCAgLy8gc3luY2hyb25pemUgSS9PIHN0cmVhbXMKKyAgICBJRUM5NThfTk9OQVVESU8gPSAweDQwMCwgLy8gQXVkaW8gc3RyZWFtIGNvbnRhaW5zIGNvbXByZXNzZWQgYXVkaW8gaW4gU1BESUYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGF0YSBidXJzdHMsIG5vdCBQQ00uCisgICAgRElSRUNUX1BDTSA9IDB4MjAwMCwgICAgIC8vIEF1ZGlvIHN0cmVhbSBjb250YWluaW5nIFBDTSBkYXRhIHRoYXQgbmVlZHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gcGFzcyB0aHJvdWdoIGNvbXByZXNzIHBhdGggZm9yIERTUCBwb3N0IHByb2MuCisgICAgTU1BUF9OT0lSUSA9IDB4NDAwMCwgLy8gb3V0cHV0IG9wZXJhdGVzIGluIE1NQVAgbm8gSVJRIG1vZGUuCisgICAgVk9JUF9SWCA9IDB4ODAwMCwgICAgLy8gcHJlZmVycmVkIG91dHB1dCBmb3IgVm9JUCBjYWxscy4KK307CisKKy8qKgorICogVGhlIGF1ZGlvIGlucHV0IGZsYWdzIGFyZSBhbmFsb2dvdXMgdG8gYXVkaW8gb3V0cHV0IGZsYWdzLgorICogQ3VycmVudGx5IHRoZXkgYXJlIHVzZWQgb25seSB3aGVuIGFuIEF1ZGlvUmVjb3JkIGlzIGNyZWF0ZWQsCisgKiB0byBpbmRpY2F0ZSBhIHByZWZlcmVuY2UgdG8gYmUgY29ubmVjdGVkIHRvIGFuIGlucHV0IHN0cmVhbSB3aXRoCisgKiBhdHRyaWJ1dGVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmbGFncy4KKyAqLworQGV4cG9ydChuYW1lPSJhdWRpb19pbnB1dF9mbGFnc190IiwgdmFsdWVfcHJlZml4PSJBVURJT19JTlBVVF9GTEFHXyIpCitlbnVtIEF1ZGlvSW5wdXRGbGFnIDogaW50MzJfdCB7CisgICAgTk9ORSAgICAgICAgID0gMHgwLCAgLy8gbm8gYXR0cmlidXRlcworICAgIEZBU1QgICAgICAgICA9IDB4MSwgIC8vIHByZWZlciBhbiBpbnB1dCB0aGF0IHN1cHBvcnRzICJmYXN0IHRyYWNrcyIKKyAgICBIV19IT1RXT1JEICAgPSAweDIsICAvLyBwcmVmZXIgYW4gaW5wdXQgdGhhdCBjYXB0dXJlcyBmcm9tIGh3IGhvdHdvcmQgc291cmNlCisgICAgUkFXICAgICAgICAgID0gMHg0LCAgLy8gbWluaW1pemUgc2lnbmFsIHByb2Nlc3NpbmcKKyAgICBTWU5DICAgICAgICAgPSAweDgsICAvLyBzeW5jaHJvbml6ZSBJL08gc3RyZWFtcworICAgIE1NQVBfTk9JUlEgICA9IDB4MTAsIC8vIGlucHV0IG9wZXJhdGVzIGluIE1NQVAgbm8gSVJRIG1vZGUuCisgICAgVk9JUF9UWCAgICAgID0gMHgyMCwgLy8gcHJlZmVycmVkIGlucHV0IGZvciBWb0lQIGNhbGxzLgorfTsKKworQGV4cG9ydChuYW1lPSJhdWRpb191c2FnZV90IiwgdmFsdWVfcHJlZml4PSJBVURJT19VU0FHRV8iKQorZW51bSBBdWRpb1VzYWdlIDogaW50MzJfdCB7CisgICAgLy8gVGhlc2UgdmFsdWVzIG11c3Qga2VwdCBpbiBzeW5jIHdpdGgKKyAgICAvLyAgZnJhbWV3b3Jrcy9iYXNlL21lZGlhL2phdmEvYW5kcm9pZC9tZWRpYS9BdWRpb0F0dHJpYnV0ZXMuamF2YQorICAgIFVOS05PV04gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgIE1FRElBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgIFZPSUNFX0NPTU1VTklDQVRJT04gICAgICAgICAgICAgICAgPSAyLAorICAgIFZPSUNFX0NPTU1VTklDQVRJT05fU0lHTkFMTElORyAgICAgPSAzLAorICAgIEFMQVJNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0LAorICAgIE5PVElGSUNBVElPTiAgICAgICAgICAgICAgICAgICAgICAgPSA1LAorICAgIE5PVElGSUNBVElPTl9URUxFUEhPTllfUklOR1RPTkUgICAgPSA2LAorICAgIE5PVElGSUNBVElPTl9DT01NVU5JQ0FUSU9OX1JFUVVFU1QgPSA3LAorICAgIE5PVElGSUNBVElPTl9DT01NVU5JQ0FUSU9OX0lOU1RBTlQgPSA4LAorICAgIE5PVElGSUNBVElPTl9DT01NVU5JQ0FUSU9OX0RFTEFZRUQgPSA5LAorICAgIE5PVElGSUNBVElPTl9FVkVOVCAgICAgICAgICAgICAgICAgPSAxMCwKKyAgICBBU1NJU1RBTkNFX0FDQ0VTU0lCSUxJVFkgICAgICAgICAgID0gMTEsCisgICAgQVNTSVNUQU5DRV9OQVZJR0FUSU9OX0dVSURBTkNFICAgICA9IDEyLAorICAgIEFTU0lTVEFOQ0VfU09OSUZJQ0FUSU9OICAgICAgICAgICAgPSAxMywKKyAgICBHQU1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTQsCisgICAgVklSVFVBTF9TT1VSQ0UgICAgICAgICAgICAgICAgICAgICA9IDE1LAorICAgIEFTU0lTVEFOVCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNiwKKworICAgIENOVCwKKyAgICBNQVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gQ05UIC0gMSwKK307CisKKy8qKgorICogQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RyZWFtIHBhc3NlZCB0byBoYXJkd2FyZSBkZWNvZGVycy4KKyAqLworc3RydWN0IEF1ZGlvT2ZmbG9hZEluZm8geworICAgIHVpbnQzMl90IHNhbXBsZVJhdGVIejsKKyAgICBBdWRpb0NoYW5uZWxNYXNrIGNoYW5uZWxNYXNrOworICAgIEF1ZGlvRm9ybWF0IGZvcm1hdDsKKyAgICBBdWRpb1N0cmVhbVR5cGUgc3RyZWFtVHlwZTsKKyAgICB1aW50MzJfdCBiaXRSYXRlUGVyU2Vjb25kOworICAgIGludDY0X3QgZHVyYXRpb25NaWNyb3NlY29uZHM7ICAvLyAtMSBpZiB1bmtub3duCisgICAgYm9vbCBoYXNWaWRlbzsKKyAgICBib29sIGlzU3RyZWFtaW5nOworICAgIHVpbnQzMl90IGJpdFdpZHRoOworICAgIHVpbnQzMl90IGJ1ZmZlclNpemU7CisgICAgQXVkaW9Vc2FnZSB1c2FnZTsKK307CisKKy8qKgorICogQ29tbW9ubHkgdXNlZCBhdWRpbyBzdHJlYW0gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLgorICovCitzdHJ1Y3QgQXVkaW9Db25maWcgeworICAgIHVpbnQzMl90IHNhbXBsZVJhdGVIejsKKyAgICBBdWRpb0NoYW5uZWxNYXNrIGNoYW5uZWxNYXNrOworICAgIEF1ZGlvRm9ybWF0IGZvcm1hdDsKKyAgICBBdWRpb09mZmxvYWRJbmZvIG9mZmxvYWRJbmZvOworICAgIHVpbnQ2NF90IGZyYW1lQ291bnQ7Cit9OworCisKKy8qKgorICoKKyAqICBWb2x1bWUgY29udHJvbAorICoKKyAqLworCisvKioKKyAqIFR5cGUgb2YgZ2FpbiBjb250cm9sIGV4cG9zZWQgYnkgYW4gYXVkaW8gcG9ydC4KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX0dBSU5fTU9ERV8iKQorZW51bSBBdWRpb0dhaW5Nb2RlIDogdWludDMyX3QgeworICAgIEpPSU5UID0gMHgxLCAgICAvLyBzdXBwb3J0cyBqb2ludCBjaGFubmVsIGdhaW4gY29udHJvbAorICAgIENIQU5ORUxTID0gMHgyLCAvLyBzdXBwb3J0cyBzZXBhcmF0ZSBjaGFubmVsIGdhaW4gY29udHJvbAorICAgIFJBTVAgPSAweDQgICAgICAvLyBzdXBwb3J0cyBnYWluIHJhbXBzCit9OworCisvKioKKyAqIEFuIGF1ZGlvX2dhaW4gc3RydWN0IGlzIGEgcmVwcmVzZW50YXRpb24gb2YgYSBnYWluIHN0YWdlLgorICogQSBnYWluIHN0YWdlIGlzIGFsd2F5cyBhdHRhY2hlZCB0byBhbiBhdWRpbyBwb3J0LgorICovCitzdHJ1Y3QgQXVkaW9HYWluIHsKKyAgICBBdWRpb0dhaW5Nb2RlIG1vZGU7CisgICAgQXVkaW9DaGFubmVsTWFzayBjaGFubmVsTWFzazsgLy8gY2hhbm5lbHMgd2hpY2ggZ2FpbiBhbiBiZSBjb250cm9sbGVkCisgICAgaW50MzJfdCBtaW5WYWx1ZTsgICAgIC8vIG1pbmltdW0gZ2FpbiB2YWx1ZSBpbiBtaWxsaWJlbHMKKyAgICBpbnQzMl90IG1heFZhbHVlOyAgICAgLy8gbWF4aW11bSBnYWluIHZhbHVlIGluIG1pbGxpYmVscworICAgIGludDMyX3QgZGVmYXVsdFZhbHVlOyAvLyBkZWZhdWx0IGdhaW4gdmFsdWUgaW4gbWlsbGliZWxzCisgICAgdWludDMyX3Qgc3RlcFZhbHVlOyAgIC8vIGdhaW4gc3RlcCBpbiBtaWxsaWJlbHMKKyAgICB1aW50MzJfdCBtaW5SYW1wTXM7ICAgLy8gbWluaW11bSByYW1wIGR1cmF0aW9uIGluIG1zCisgICAgdWludDMyX3QgbWF4UmFtcE1zOyAgIC8vIG1heGltdW0gcmFtcCBkdXJhdGlvbiBpbiBtcworfTsKKworLyoqCisgKiBUaGUgZ2FpbiBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSBpcyB1c2VkIHRvIGdldCBvciBzZXQgdGhlIGdhaW4gdmFsdWVzIG9mIGEKKyAqIGdpdmVuIHBvcnQuCisgKi8KK3N0cnVjdCBBdWRpb0dhaW5Db25maWcgeworICAgIGludDMyX3QgaW5kZXg7ICAvLyBpbmRleCBvZiB0aGUgY29ycmVzcG9uZGluZyBBdWRpb0dhaW4gaW4gQXVkaW9Qb3J0LmdhaW5zCisgICAgQXVkaW9HYWluTW9kZSBtb2RlOworICAgIEF1ZGlvQ2hhbm5lbE1hc2sgY2hhbm5lbE1hc2s7ICAvLyBjaGFubmVscyB3aGljaCBnYWluIHZhbHVlIGZvbGxvd3MKKyAgICAvKioKKyAgICAgKiA0ID0gc2l6ZW9mKEF1ZGlvQ2hhbm5lbE1hc2spLAorICAgICAqIDggaXMgbm90ICJGQ0NfOCIsIHNvIGl0IHdvbid0IG5lZWQgdG8gYmUgY2hhbmdlZCBmb3IgPiA4IGNoYW5uZWxzLgorICAgICAqIEdhaW4gdmFsdWVzIGluIG1pbGxpYmVscyBmb3IgZWFjaCBjaGFubmVsIG9yZGVyZWQgZnJvbSBMU2IgdG8gTVNiIGluCisgICAgICogY2hhbm5lbCBtYXNrLiBUaGUgbnVtYmVyIG9mIHZhbHVlcyBpcyAxIGluIGpvaW50IG1vZGUgb3IKKyAgICAgKiBwb3Bjb3VudChjaGFubmVsX21hc2spLgorICAgICAqLworICAgIGludDMyX3RbNCAqIDhdIHZhbHVlczsKKyAgICB1aW50MzJfdCByYW1wRHVyYXRpb25NczsgIC8vIHJhbXAgZHVyYXRpb24gaW4gbXMKK307CisKKworLyoqCisgKgorICogIFJvdXRpbmcgY29udHJvbAorICoKKyAqLworCisvKioKKyAqIFR5cGVzIGRlZmluZWQgaGVyZSBhcmUgdXNlZCB0byBkZXNjcmliZSBhbiBhdWRpbyBzb3VyY2Ugb3Igc2luayBhdCBpbnRlcm5hbAorICogZnJhbWV3b3JrIGludGVyZmFjZXMgKGF1ZGlvIHBvbGljeSwgcGF0Y2ggcGFuZWwpIG9yIGF0IHRoZSBhdWRpbyBIQUwuCisgKiBTaW5rIGFuZCBzb3VyY2VzIGFyZSBncm91cGVkIGluIGEgY29uY2VwdCBvZiDigJxhdWRpbyBwb3J04oCdIHJlcHJlc2VudGluZyBhbgorICogYXVkaW8gZW5kIHBvaW50IGF0IHRoZSBlZGdlIG9mIHRoZSBzeXN0ZW0gbWFuYWdlZCBieSB0aGUgbW9kdWxlIGV4cG9zaW5nCisgKiB0aGUgaW50ZXJmYWNlLgorICovCisKKy8qKiBBdWRpbyBwb3J0IHJvbGU6IGVpdGhlciBzb3VyY2Ugb3Igc2luayAqLworQGV4cG9ydChuYW1lPSJhdWRpb19wb3J0X3JvbGVfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fUE9SVF9ST0xFXyIpCitlbnVtIEF1ZGlvUG9ydFJvbGUgOiBpbnQzMl90IHsKKyAgICBOT05FLAorICAgIFNPVVJDRSwKKyAgICBTSU5LLAorfTsKKworLyoqCisgKiBBdWRpbyBwb3J0IHR5cGUgaW5kaWNhdGVzIGlmIGl0IGlzIGEgc2Vzc2lvbiAoZS5nIEF1ZGlvVHJhY2spLCBhIG1peCAoZS5nCisgKiBQbGF5YmFja1RocmVhZCBvdXRwdXQpIG9yIGEgcGh5c2ljYWwgZGV2aWNlIChlLmcgT1VUX1NQRUFLRVIpCisgKi8KK0BleHBvcnQobmFtZT0iYXVkaW9fcG9ydF90eXBlX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX1BPUlRfVFlQRV8iKQorZW51bSBBdWRpb1BvcnRUeXBlIDogaW50MzJfdCB7CisgICAgTk9ORSwKKyAgICBERVZJQ0UsCisgICAgTUlYLAorICAgIFNFU1NJT04sCit9OworCisvKioKKyAqIEV4dGVuc2lvbiBmb3IgYXVkaW8gcG9ydCBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSB3aGVuIHRoZSBhdWRpbyBwb3J0IGlzIGEKKyAqIGhhcmR3YXJlIGRldmljZS4KKyAqLworc3RydWN0IEF1ZGlvUG9ydENvbmZpZ0RldmljZUV4dCB7CisgICAgQXVkaW9Nb2R1bGVIYW5kbGUgaHdNb2R1bGU7ICAvLyBtb2R1bGUgdGhlIGRldmljZSBpcyBhdHRhY2hlZCB0bworICAgIEF1ZGlvRGV2aWNlIHR5cGU7ICAgICAgICAgICAgLy8gZGV2aWNlIHR5cGUgKGUuZyBPVVRfU1BFQUtFUikKKyAgICB1aW50OF90WzMyXSBhZGRyZXNzOyAgICAgICAgIC8vIGRldmljZSBhZGRyZXNzLiAiIiBpZiBOL0EKK307CisKKy8qKgorICogRXh0ZW5zaW9uIGZvciBhdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIHdoZW4gdGhlIGF1ZGlvIHBvcnQgaXMgYW4KKyAqIGF1ZGlvIHNlc3Npb24uCisgKi8KK3N0cnVjdCBBdWRpb1BvcnRDb25maWdTZXNzaW9uRXh0IHsKKyAgICBBdWRpb1Nlc3Npb24gc2Vzc2lvbjsKK307CisKKy8qKgorICogRmxhZ3MgaW5kaWNhdGluZyB3aGljaCBmaWVsZHMgYXJlIHRvIGJlIGNvbnNpZGVyZWQgaW4gQXVkaW9Qb3J0Q29uZmlnLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQVVESU9fUE9SVF9DT05GSUdfIikKK2VudW0gQXVkaW9Qb3J0Q29uZmlnTWFzayA6IHVpbnQzMl90IHsKKyAgICBTQU1QTEVfUkFURSA9IDB4MSwKKyAgICBDSEFOTkVMX01BU0sgPSAgMHgyLAorICAgIEZPUk1BVCA9IDB4NCwKKyAgICBHQUlOID0gMHg4LAorICAgIEFMTCA9IFNBTVBMRV9SQVRFIHwgQ0hBTk5FTF9NQVNLIHwgRk9STUFUIHwgR0FJTgorfTsKKworLyoqCisgKiBBdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIHVzZWQgdG8gc3BlY2lmeSBhIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbgorICogb2YgYW4gYXVkaW8gcG9ydC4KKyAqLworc3RydWN0IEF1ZGlvUG9ydENvbmZpZyB7CisgICAgQXVkaW9Qb3J0SGFuZGxlIGlkOworICAgIEF1ZGlvUG9ydENvbmZpZ01hc2sgY29uZmlnTWFzazsKKyAgICB1aW50MzJfdCBzYW1wbGVSYXRlSHo7CisgICAgQXVkaW9DaGFubmVsTWFzayBjaGFubmVsTWFzazsKKyAgICBBdWRpb0Zvcm1hdCBmb3JtYXQ7CisgICAgQXVkaW9HYWluQ29uZmlnIGdhaW47CisgICAgQXVkaW9Qb3J0VHlwZSB0eXBlOyAgLy8gdHlwZSBpcyB1c2VkIGFzIGEgZGlzY3JpbWluYXRvciBmb3IgRXh0IHVuaW9uCisgICAgQXVkaW9Qb3J0Um9sZSByb2xlOyAgLy8gcm9sZSBpcyB1c2VkIGFzIGEgZGlzY3JpbWluYXRvciBmb3IgVXNlQ2FzZSB1bmlvbgorICAgIHVuaW9uIEV4dCB7CisgICAgICAgIEF1ZGlvUG9ydENvbmZpZ0RldmljZUV4dCBkZXZpY2U7CisgICAgICAgIHN0cnVjdCBBdWRpb1BvcnRDb25maWdNaXhFeHQgeworICAgICAgICAgICAgQXVkaW9Nb2R1bGVIYW5kbGUgaHdNb2R1bGU7IC8vIG1vZHVsZSB0aGUgc3RyZWFtIGlzIGF0dGFjaGVkIHRvCisgICAgICAgICAgICBBdWRpb0lvSGFuZGxlIGlvSGFuZGxlOyAgICAgLy8gSS9PIGhhbmRsZSBvZiB0aGUgaW5wdXQvb3V0cHV0IHN0cmVhbQorICAgICAgICAgICAgdW5pb24gVXNlQ2FzZSB7CisgICAgICAgICAgICAgICAgQXVkaW9TdHJlYW1UeXBlIHN0cmVhbTsKKyAgICAgICAgICAgICAgICBBdWRpb1NvdXJjZSBzb3VyY2U7CisgICAgICAgICAgICB9IHVzZUNhc2U7CisgICAgICAgIH0gbWl4OworICAgICAgICBBdWRpb1BvcnRDb25maWdTZXNzaW9uRXh0IHNlc3Npb247CisgICAgfSBleHQ7Cit9OworCisvKioKKyAqIEV4dGVuc2lvbiBmb3IgYXVkaW8gcG9ydCBzdHJ1Y3R1cmUgd2hlbiB0aGUgYXVkaW8gcG9ydCBpcyBhIGhhcmR3YXJlIGRldmljZS4KKyAqLworc3RydWN0IEF1ZGlvUG9ydERldmljZUV4dCB7CisgICAgQXVkaW9Nb2R1bGVIYW5kbGUgaHdNb2R1bGU7ICAgIC8vIG1vZHVsZSB0aGUgZGV2aWNlIGlzIGF0dGFjaGVkIHRvCisgICAgQXVkaW9EZXZpY2UgdHlwZTsKKyAgICB1aW50OF90WzMyXSBhZGRyZXNzOworfTsKKworLyoqCisgKiBMYXRlbmN5IGNsYXNzIG9mIHRoZSBhdWRpbyBtaXguCisgKi8KK0BleHBvcnQobmFtZT0iYXVkaW9fbWl4X2xhdGVuY3lfY2xhc3NfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fTEFURU5DWV8iKQorZW51bSBBdWRpb01peExhdGVuY3lDbGFzcyA6IGludDMyX3QgeworICAgIExPVywKKyAgICBOT1JNQUwKK30gOworCitzdHJ1Y3QgQXVkaW9Qb3J0TWl4RXh0IHsKKyAgICBBdWRpb01vZHVsZUhhbmRsZSBod01vZHVsZTsgICAgIC8vIG1vZHVsZSB0aGUgc3RyZWFtIGlzIGF0dGFjaGVkIHRvCisgICAgQXVkaW9Jb0hhbmRsZSBpb0hhbmRsZTsgICAgICAgICAvLyBJL08gaGFuZGxlIG9mIHRoZSBzdHJlYW0KKyAgICBBdWRpb01peExhdGVuY3lDbGFzcyBsYXRlbmN5Q2xhc3M7Cit9OworCisvKioKKyAqIEV4dGVuc2lvbiBmb3IgYXVkaW8gcG9ydCBzdHJ1Y3R1cmUgd2hlbiB0aGUgYXVkaW8gcG9ydCBpcyBhbiBhdWRpbyBzZXNzaW9uLgorICovCitzdHJ1Y3QgQXVkaW9Qb3J0U2Vzc2lvbkV4dCB7CisgICAgQXVkaW9TZXNzaW9uIHNlc3Npb247Cit9OworCitzdHJ1Y3QgQXVkaW9Qb3J0IHsKKyAgICBBdWRpb1BvcnRIYW5kbGUgaWQ7CisgICAgQXVkaW9Qb3J0Um9sZSByb2xlOworICAgIHN0cmluZyBuYW1lOworICAgIHZlYzx1aW50MzJfdD4gc2FtcGxlUmF0ZXM7CisgICAgdmVjPEF1ZGlvQ2hhbm5lbE1hc2s+IGNoYW5uZWxNYXNrczsKKyAgICB2ZWM8QXVkaW9Gb3JtYXQ+IGZvcm1hdHM7CisgICAgdmVjPEF1ZGlvR2Fpbj4gZ2FpbnM7CisgICAgQXVkaW9Qb3J0Q29uZmlnIGFjdGl2ZUNvbmZpZzsgLy8gY3VycmVudCBhdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24KKyAgICBBdWRpb1BvcnRUeXBlIHR5cGU7ICAvLyB0eXBlIGlzIHVzZWQgYXMgYSBkaXNjcmltaW5hdG9yCisgICAgdW5pb24gRXh0IHsKKyAgICAgICAgQXVkaW9Qb3J0RGV2aWNlRXh0IGRldmljZTsKKyAgICAgICAgQXVkaW9Qb3J0TWl4RXh0IG1peDsKKyAgICAgICAgQXVkaW9Qb3J0U2Vzc2lvbkV4dCBzZXNzaW9uOworICAgIH0gZXh0OworfTsKKworc3RydWN0IFRocmVhZEluZm8geworICAgIGludDY0X3QgcGlkOworICAgIGludDY0X3QgdGlkOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi9BbmRyb2lkLm1rIGIvYXVkaW8vY29tbW9uL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0FuZHJvaWQuYnAgYi9hdWRpby9lZmZlY3QvMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAwNDI2MwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDE1NiBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmhhbCIsCisgICAgICAgICJJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaGFsIiwKKyAgICAgICAgIklCYXNzQm9vc3RFZmZlY3QuaGFsIiwKKyAgICAgICAgIklEb3dubWl4RWZmZWN0LmhhbCIsCisgICAgICAgICJJRWZmZWN0LmhhbCIsCisgICAgICAgICJJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUVmZmVjdHNGYWN0b3J5LmhhbCIsCisgICAgICAgICJJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdC5oYWwiLAorICAgICAgICAiSUVxdWFsaXplckVmZmVjdC5oYWwiLAorICAgICAgICAiSUxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaGFsIiwKKyAgICAgICAgIklOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmhhbCIsCisgICAgICAgICJJUHJlc2V0UmV2ZXJiRWZmZWN0LmhhbCIsCisgICAgICAgICJJVmlydHVhbGl6ZXJFZmZlY3QuaGFsIiwKKyAgICAgICAgIklWaXN1YWxpemVyRWZmZWN0LmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0F1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQmFzc0Jvb3N0RWZmZWN0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvRG93bm1peEVmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0VmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0VmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9FZmZlY3RzRmFjdG9yeUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3RBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9FcXVhbGl6ZXJFZmZlY3RBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Mb3VkbmVzc0VuaGFuY2VyRWZmZWN0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvTm9pc2VTdXBwcmVzc2lvbkVmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL1ByZXNldFJldmVyYkVmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL1ZpcnR1YWxpemVyRWZmZWN0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvVmlzdWFsaXplckVmZmVjdEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUh3QWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0Fjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cc0Fjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cbkh3QXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0F1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUJhc3NCb29zdEVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdCYXNzQm9vc3RFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0Jhc3NCb29zdEVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9CcEh3QmFzc0Jvb3N0RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzQmFzc0Jvb3N0RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lEb3dubWl4RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lId0Rvd25taXhFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0Rvd25taXhFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0Rvd25taXhFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnNEb3dubWl4RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUh3RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0VmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cc0VmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0c0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUh3RWZmZWN0c0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0VmZmVjdHNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdFZmZlY3RzRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cc0VmZmVjdHNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lId0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnNFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFcXVhbGl6ZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUh3RXF1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdFcXVhbGl6ZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0VxdWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cc0VxdWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdMb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdMb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdMb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JTm9pc2VTdXBwcmVzc2lvbkVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzTm9pc2VTdXBwcmVzc2lvbkVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JUHJlc2V0UmV2ZXJiRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lId1ByZXNldFJldmVyYkVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cbkh3UHJlc2V0UmV2ZXJiRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdQcmVzZXRSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnNQcmVzZXRSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSVZpcnR1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lId1ZpcnR1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdWaXJ0dWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9CcEh3VmlydHVhbGl6ZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnNWaXJ0dWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JVmlzdWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdWaXN1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdWaXN1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdWaXN1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzVmlzdWFsaXplckVmZmVjdC5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0FuZHJvaWQubWsgYi9hdWRpby9lZmZlY3QvMi4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQyNjc2MwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDUzIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdC1WMi4wLWphdmEtY29uc3RhbnRzCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC9WMl8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lCYXNzQm9vc3RFZmZlY3QuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSURvd25taXhFZmZlY3QuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JRWZmZWN0c0ZhY3RvcnkuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUVxdWFsaXplckVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTm9pc2VTdXBwcmVzc2lvbkVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JUHJlc2V0UmV2ZXJiRWZmZWN0LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWaXJ0dWFsaXplckVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmlzdWFsaXplckVmZmVjdC5oYWwKKworJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhLWNvbnN0YW50cyBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wCisKKyQoR0VOKToKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisjIEF2b2lkIGRlcGVuZGVuY3kgY3ljbGUgb2YgZnJhbWV3b3JrLmphciAtPiB0aGlzLWxpYnJhcnkgLT4gZnJhbWV3b3JrLmphcgorTE9DQUxfTk9fU1RBTkRBUkRfTElCUkFSSUVTIDo9IHRydWUKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IGNvcmUtb2oKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVmOTRhNQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSUFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmhhbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdCBleHRlbmRzIElFZmZlY3QgeworICAgIC8qKgorICAgICAqIFNldHMgZWNobyBkZWxheSB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuCisgICAgICovCisgICAgc2V0RWNob0RlbGF5KHVpbnQzMl90IGVjaG9EZWxheU1zKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyBlY2hvIGRlbGF5IHZhbHVlIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKi8KKyAgICBnZXRFY2hvRGVsYXkoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQzMl90IGVjaG9EZWxheU1zKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjhjYTdlMwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0LmhhbApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdCBleHRlbmRzIElFZmZlY3QgeworICAgIC8qKgorICAgICAqIFNldHMgdGFyZ2V0IGxldmVsIGluIG1pbGxpYmVscy4KKyAgICAgKi8KKyAgICBzZXRUYXJnZXRMZXZlbChpbnQxNl90IHRhcmdldExldmVsTWIpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRhcmdldCBsZXZlbC4KKyAgICAgKi8KKyAgICBnZXRUYXJnZXRMZXZlbCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgaW50MTZfdCB0YXJnZXRMZXZlbE1iKTsKKworICAgIC8qKgorICAgICAqIFNldHMgZ2FpbiBpbiB0aGUgY29tcHJlc3Npb24gcmFuZ2UgaW4gbWlsbGliZWxzLgorICAgICAqLworICAgIHNldENvbXBHYWluKGludDE2X3QgY29tcEdhaW5NYikgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgZ2FpbiBpbiB0aGUgY29tcHJlc3Npb24gcmFuZ2UuCisgICAgICovCisgICAgZ2V0Q29tcEdhaW4oKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDE2X3QgY29tcEdhaW5NYik7CisKKyAgICAvKioKKyAgICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIGxpbWl0ZXIuCisgICAgICovCisgICAgc2V0TGltaXRlckVuYWJsZWQoYm9vbCBlbmFibGVkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIGxpbWl0ZXIgaXMgZW5hYmxlZC4KKyAgICAgKi8KKyAgICBpc0xpbWl0ZXJFbmFibGVkKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGVuYWJsZWQpOworCisgICAgc3RydWN0IEFsbFByb3BlcnRpZXMgeworICAgICAgICBpbnQxNl90IHRhcmdldExldmVsTWI7CisgICAgICAgIGludDE2X3QgY29tcEdhaW5NYjsKKyAgICAgICAgYm9vbCBsaW1pdGVyRW5hYmxlZDsKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyBhbGwgcHJvcGVydGllcyBhdCBvbmNlLgorICAgICAqLworICAgIHNldEFsbFByb3BlcnRpZXMoQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyBhbGwgcHJvcGVydGllcyBhdCBvbmNlLgorICAgICAqLworICAgIGdldEFsbFByb3BlcnRpZXMoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEFsbFByb3BlcnRpZXMgcHJvcGVydGllcyk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9JQmFzc0Jvb3N0RWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSUJhc3NCb29zdEVmZmVjdC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI2YTI5NwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSUJhc3NCb29zdEVmZmVjdC5oYWwKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElFZmZlY3Q7CisKK2ludGVyZmFjZSBJQmFzc0Jvb3N0RWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHNldHRpbmcgYmFzcyBib29zdCBzdHJlbmd0aCBpcyBzdXBwb3J0ZWQuCisgICAgICovCisgICAgaXNTdHJlbmd0aFN1cHBvcnRlZCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgYm9vbCBzdHJlbmd0aFN1cHBvcnRlZCk7CisKKyAgICBlbnVtIFN0cmVuZ3RoUmFuZ2UgOiB1aW50MTZfdCB7CisgICAgICAgIE1JTiA9IDAsCisgICAgICAgIE1BWCA9IDEwMDAKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyBiYXNzIGJvb3N0IHN0cmVuZ3RoLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmVuZ3RoIHN0cmVuZ3RoIG9mIHRoZSBlZmZlY3QuIFRoZSB2YWxpZCByYW5nZSBmb3Igc3RyZW5ndGgKKyAgICAgKiAgICAgICAgICAgICAgICAgc3RyZW5ndGggaXMgWzAsIDEwMDBdLCB3aGVyZSAwIHBlciBtaWxsZSBkZXNpZ25hdGVzIHRoZQorICAgICAqICAgICAgICAgICAgICAgICBtaWxkZXN0IGVmZmVjdCBhbmQgMTAwMCBwZXIgbWlsbGUgZGVzaWduYXRlcyB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgc3Ryb25nZXN0LgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRTdHJlbmd0aCh1aW50MTZfdCBzdHJlbmd0aCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdmlydHVhbGl6YXRpb24gc3RyZW5ndGguCisgICAgICovCisgICAgZ2V0U3RyZW5ndGgoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQxNl90IHN0cmVuZ3RoKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lEb3dubWl4RWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSURvd25taXhFZmZlY3QuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyMzIwOTUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL0lEb3dubWl4RWZmZWN0LmhhbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElEb3dubWl4RWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgZW51bSBUeXBlIDogaW50MzJfdCB7CisgICAgICAgIFNUUklQLCAvLyB0aHJvdyBhd2F5IHRoZSBleHRyYSBjaGFubmVscworICAgICAgICBGT0xEICAgLy8gbWl4IHRoZSBleHRyYSBjaGFubmVscyB3aXRoIEZML0ZSCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgZG93bm1peCBwcmVzZXQuCisgICAgICovCisgICAgc2V0VHlwZShUeXBlIHByZXNldCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgZG93bm1peCBwcmVzZXQuCisgICAgICovCisgICAgZ2V0VHlwZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgVHlwZSBwcmVzZXQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdC5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMmUyZGYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaGFsCkBAIC0wLDAgKzEsNDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s7CisKK2ludGVyZmFjZSBJRWZmZWN0IHsKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIGVmZmVjdCBlbmdpbmUtLWFsbCBjb25maWd1cmF0aW9ucyByZXR1cm4gdG8gZGVmYXVsdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBpbml0KCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEFwcGx5IG5ldyBhdWRpbyBwYXJhbWV0ZXJzIGNvbmZpZ3VyYXRpb25zIGZvciBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMuCisgICAgICogVGhlIHByb3ZpZGVyIGNhbGxiYWNrcyBtYXkgYmUgZW1wdHksIGJ1dCBpbiB0aGlzIGNhc2UgdGhlIGJ1ZmZlcgorICAgICAqIG11c3QgYmUgcHJvdmlkZWQgaW4gdGhlIEVmZmVjdENvbmZpZyBzdHJ1Y3R1cmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29uZmlnIGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRvci4KKyAgICAgKiBAcGFyYW0gaW5wdXRCdWZmZXJQcm92aWRlciBvcHRpb25hbCBidWZmZXIgcHJvdmlkZXIgcmVmZXJlbmNlLgorICAgICAqIEBwYXJhbSBvdXRwdXRCdWZmZXJQcm92aWRlciBvcHRpb25hbCBidWZmZXIgcHJvdmlkZXIgcmVmZXJlbmNlLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRDb25maWcoRWZmZWN0Q29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgIElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjayBvdXRwdXRCdWZmZXJQcm92aWRlcikKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgZWZmZWN0IGVuZ2luZS4gS2VlcCBjb25maWd1cmF0aW9uIGJ1dCByZXNldHMgc3RhdGUgYW5kIGJ1ZmZlcgorICAgICAqIGNvbnRlbnQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgcmVzZXQoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogRW5hYmxlIHByb2Nlc3NpbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJwcmVwYXJlRm9yUHJvY2Vzc2luZyJ9KQorICAgIGVuYWJsZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBEaXNhYmxlIHByb2Nlc3NpbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJjbG9zZSJ9KQorICAgIGRpc2FibGUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSByZW5kZXJpbmcgZGV2aWNlIHRoZSBhdWRpbyBvdXRwdXQgcGF0aCBpcyBjb25uZWN0ZWQgdG8uICBUaGUKKyAgICAgKiBlZmZlY3QgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQgRUZGRUNUX0ZMQUdfREVWSUNFX0lORCBmbGFnIGluIGl0cworICAgICAqIGRlc2NyaXB0b3IgdG8gcmVjZWl2ZSB0aGlzIGNvbW1hbmQgd2hlbiB0aGUgZGV2aWNlIGNoYW5nZXMuCisgICAgICoKKyAgICAgKiBOb3RlOiB0aGlzIG1ldGhvZCBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgZWZmZWN0cyBpbnNlcnRlZCBpbnRvCisgICAgICogICAgICAgdGhlIG91dHB1dCBjaGFpbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZXZpY2Ugb3V0cHV0IGRldmljZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU2V0IGFuZCBnZXQgdm9sdW1lLiBVc2VkIGJ5IGF1ZGlvIGZyYW1ld29yayB0byBkZWxlZ2F0ZSB2b2x1bWUgY29udHJvbCB0bworICAgICAqIGVmZmVjdCBlbmdpbmUuIFRoZSBlZmZlY3QgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQgRUZGRUNUX0ZMQUdfVk9MVU1FX0NUUkwKKyAgICAgKiBmbGFnIGluIGl0cyBkZXNjcmlwdG9yIHRvIHJlY2VpdmUgdGhpcyBjb21tYW5kLiBUaGUgZWZmZWN0IGVuZ2luZSBtdXN0CisgICAgICogcmV0dXJuIHRoZSB2b2x1bWUgdGhhdCBzaG91bGQgYmUgYXBwbGllZCBiZWZvcmUgdGhlIGVmZmVjdCBpcworICAgICAqIHByb2Nlc3NlZC4gVGhlIG92ZXJhbGwgdm9sdW1lICh0aGUgdm9sdW1lIGFjdHVhbGx5IGFwcGxpZWQgYnkgdGhlIGVmZmVjdAorICAgICAqIGVuZ2luZSBtdWx0aXBsaWVkIGJ5IHRoZSByZXR1cm5lZCB2YWx1ZSkgc2hvdWxkIG1hdGNoIHRoZSB2YWx1ZSBpbmRpY2F0ZWQKKyAgICAgKiBpbiB0aGUgY29tbWFuZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2b2x1bWVzIHZlY3RvciBjb250YWluaW5nIHZvbHVtZSBmb3IgZWFjaCBjaGFubmVsIGRlZmluZWQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICBFZmZlY3RDb25maWcgZm9yIG91dHB1dCBidWZmZXIgZXhwcmVzc2VkIGluIDguMjQgZml4ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBwb2ludCBmb3JtYXQuCisgICAgICogQHJldHVybiByZXN1bHQgdXBkYXRlZCB2b2x1bWUgdmFsdWVzLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRBbmRHZXRWb2x1bWUodmVjPHVpbnQzMl90PiB2b2x1bWVzKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8dWludDMyX3Q+IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBOb3RpZnkgdGhlIGVmZmVjdCBvZiB0aGUgdm9sdW1lIGNoYW5nZS4gVGhlIGVmZmVjdCBpbXBsZW1lbnRhdGlvbiBtdXN0CisgICAgICogc2V0IEVGRkVDVF9GTEFHX1ZPTFVNRV9JTkQgZmxhZyBpbiBpdHMgZGVzY3JpcHRvciB0byByZWNlaXZlIHRoaXMKKyAgICAgKiBjb21tYW5kLgorICAgICAqCisgICAgICogQHBhcmFtIHZvbHVtZXMgdmVjdG9yIGNvbnRhaW5pbmcgdm9sdW1lIGZvciBlYWNoIGNoYW5uZWwgZGVmaW5lZCBpbgorICAgICAqICAgICAgICAgICAgICAgIEVmZmVjdENvbmZpZyBmb3Igb3V0cHV0IGJ1ZmZlciBleHByZXNzZWQgaW4gOC4yNCBmaXhlZAorICAgICAqICAgICAgICAgICAgICAgIHBvaW50IGZvcm1hdC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKHZlYzx1aW50MzJfdD4gdm9sdW1lcykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGF1ZGlvIG1vZGUuIFRoZSBlZmZlY3QgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQKKyAgICAgKiBFRkZFQ1RfRkxBR19BVURJT19NT0RFX0lORCBmbGFnIGluIGl0cyBkZXNjcmlwdG9yIHRvIHJlY2VpdmUgdGhpcyBjb21tYW5kCisgICAgICogd2hlbiB0aGUgYXVkaW8gbW9kZSBjaGFuZ2VzLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgZGVzaXJlZCBhdWRpbyBtb2RlLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBBcHBseSBuZXcgYXVkaW8gcGFyYW1ldGVycyBjb25maWd1cmF0aW9ucyBmb3IgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIG9mCisgICAgICogcmV2ZXJzZSBzdHJlYW0uICBBbiBleGFtcGxlIG9mIHJldmVyc2Ugc3RyZWFtIGlzIHRoZSBlY2hvIHJlZmVyZW5jZQorICAgICAqIHN1cHBsaWVkIHRvIGFuIEFjb3VzdGljIEVjaG8gQ2FuY2VsZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29uZmlnIGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRvci4KKyAgICAgKiBAcGFyYW0gaW5wdXRCdWZmZXJQcm92aWRlciBvcHRpb25hbCBidWZmZXIgcHJvdmlkZXIgcmVmZXJlbmNlLgorICAgICAqIEBwYXJhbSBvdXRwdXRCdWZmZXJQcm92aWRlciBvcHRpb25hbCBidWZmZXIgcHJvdmlkZXIgcmVmZXJlbmNlLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRDb25maWdSZXZlcnNlKEVmZmVjdENvbmZpZyBjb25maWcsCisgICAgICAgICAgICBJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjayBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgSUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2sgb3V0cHV0QnVmZmVyUHJvdmlkZXIpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjYXB0dXJlIGRldmljZSB0aGUgYXVkaW8gaW5wdXQgcGF0aCBpcyBjb25uZWN0ZWQgdG8uIFRoZSBlZmZlY3QKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiBtdXN0IHNldCBFRkZFQ1RfRkxBR19ERVZJQ0VfSU5EIGZsYWcgaW4gaXRzIGRlc2NyaXB0b3IgdG8KKyAgICAgKiByZWNlaXZlIHRoaXMgY29tbWFuZCB3aGVuIHRoZSBkZXZpY2UgY2hhbmdlcy4KKyAgICAgKgorICAgICAqIE5vdGU6IHRoaXMgbWV0aG9kIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBlZmZlY3RzIGluc2VydGVkIGludG8KKyAgICAgKiAgICAgICB0aGUgaW5wdXQgY2hhaW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGV2aWNlIGlucHV0IGRldmljZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZWFkIGF1ZGlvIHBhcmFtZXRlcnMgY29uZmlndXJhdGlvbnMgZm9yIGlucHV0IGFuZCBvdXRwdXQgYnVmZmVycy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGNvbmZpZyBjb25maWd1cmF0aW9uIGRlc2NyaXB0b3IuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgZ2V0Q29uZmlnKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBFZmZlY3RDb25maWcgY29uZmlnKTsKKworICAgIC8qKgorICAgICAqIFJlYWQgYXVkaW8gcGFyYW1ldGVycyBjb25maWd1cmF0aW9ucyBmb3IgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIG9mCisgICAgICogcmV2ZXJzZSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBjb25maWcgY29uZmlndXJhdGlvbiBkZXNjcmlwdG9yLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldENvbmZpZ1JldmVyc2UoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEVmZmVjdENvbmZpZyBjb25maWcpOworCisgICAgLyoqCisgICAgICogUXVlcmllcyBmb3Igc3VwcG9ydGVkIGNvbWJpbmF0aW9ucyBvZiBtYWluIGFuZCBhdXhpbGlhcnkgY2hhbm5lbHMKKyAgICAgKiAoZS5nLiBmb3IgYSBtdWx0aS1taWNyb3Bob25lIG5vaXNlIHN1cHByZXNzb3IpLgorICAgICAqCisgICAgICogQHBhcmFtIG1heENvbmZpZ3MgbWF4aW11bSBudW1iZXIgb2YgdGhlIGNvbWJpbmF0aW9ucyB0byByZXR1cm4uCisgICAgICogQHJldHVybiByZXR2YWwgYWJzZW5jZSBvZiB0aGUgZmVhdHVyZSBzdXBwb3J0IGlzIGluZGljYXRlZCB1c2luZworICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgY29kZS4gUkVTVUxUX1RPT19CSUcgaXMgcmV0dXJuZWQgaWYKKyAgICAgKiAgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIHN1cHBvcnRlZCBjb21iaW5hdGlvbnMgZXhjZWVkcyAnbWF4Q29uZmlncycuCisgICAgICogQHJldHVybiByZXN1bHQgbGlzdCBvZiBjb25maWd1cmF0aW9uIGRlc2NyaXB0b3JzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyh1aW50MzJfdCBtYXhDb25maWdzKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc+IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBvZiBtYWluIGFuZCBhdXhpbGlhcnkgY2hhbm5lbHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBhYnNlbmNlIG9mIHRoZSBmZWF0dXJlIHN1cHBvcnQgaXMgaW5kaWNhdGVkIHVzaW5nCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NVUFBPUlRFRCBjb2RlLgorICAgICAqIEByZXR1cm4gcmVzdWx0IGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBnZXRBdXhDaGFubmVsc0NvbmZpZygpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnIHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gb2YgbWFpbiBhbmQgYXV4aWxpYXJ5IGNoYW5uZWxzLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOyBhYnNlbmNlIG9mIHRoZSBmZWF0dXJlCisgICAgICogICAgICAgICAgICAgICAgc3VwcG9ydCBpcyBpbmRpY2F0ZWQgdXNpbmcgTk9UX1NVUFBPUlRFRCBjb2RlLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIHNldEF1eENoYW5uZWxzQ29uZmlnKEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnIGNvbmZpZykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGF1ZGlvIHNvdXJjZSB0aGUgY2FwdHVyZSBwYXRoIGlzIGNvbmZpZ3VyZWQgZm9yIChDYW1jb3JkZXIsIHZvaWNlCisgICAgICogcmVjb2duaXRpb24uLi4pLgorICAgICAqCisgICAgICogTm90ZTogdGhpcyBtZXRob2QgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGVmZmVjdHMgaW5zZXJ0ZWQgaW50bworICAgICAqICAgICAgIHRoZSBpbnB1dCBjaGFpbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2Ugc291cmNlIGRlc2NyaXB0b3IuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY29tbWFuZCBpbmRpY2F0ZXMgaWYgdGhlIHBsYXliYWNrIHRocmVhZCB0aGUgZWZmZWN0IGlzIGF0dGFjaGVkIHRvCisgICAgICogaXMgb2ZmbG9hZGVkIG9yIG5vdCwgYW5kIHVwZGF0ZXMgdGhlIEkvTyBoYW5kbGUgb2YgdGhlIHBsYXliYWNrIHRocmVhZAorICAgICAqIHRoZSBlZmZlY3QgaXMgYXR0YWNoZWQgdG8uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW0gZWZmZWN0IG9mZmxvYWQgZGVzY3JpcHRvci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgb2ZmbG9hZChFZmZlY3RPZmZsb2FkUGFyYW1ldGVyIHBhcmFtKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZWZmZWN0IGRlc2NyaXB0b3IuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBkZXNjcmlwdG9yIGVmZmVjdCBkZXNjcmlwdG9yLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldERlc2NyaXB0b3IoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEVmZmVjdERlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdXAgcmVxdWlyZWQgdHJhbnNwb3J0cyBmb3IgcGFzc2luZyBhdWRpbyBidWZmZXJzIHRvIHRoZSBlZmZlY3QuCisgICAgICoKKyAgICAgKiBUaGUgdHJhbnNwb3J0IGNvbnNpc3RzIG9mIHNoYXJlZCBtZW1vcnkgYW5kIGEgbWVzc2FnZSBxdWV1ZSBmb3IgcmVwb3J0aW5nCisgICAgICogZWZmZWN0IHByb2Nlc3Npbmcgb3BlcmF0aW9uIHN0YXR1cy4gVGhlIHNoYXJlZCBtZW1vcnkgaXMgc2V0IHVwCisgICAgICogc2VwYXJhdGVseSB1c2luZyAnc2V0UHJvY2Vzc0J1ZmZlcnMnIG1ldGhvZC4KKyAgICAgKgorICAgICAqIFByb2Nlc3NpbmcgaXMgcmVxdWVzdGVkIGJ5IHNldHRpbmcgJ1JFUVVFU1RfUFJPQ0VTUycgb3IKKyAgICAgKiAnUkVRVUVTVF9QUk9DRVNTX1JFVkVSU0UnIEV2ZW50RmxhZ3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdGF0dXMgbWVzc2FnZQorICAgICAqIHF1ZXVlLiBUaGUgcmVzdWx0IG9mIHByb2Nlc3NpbmcgbWF5IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOgorICAgICAqICAgT0sgaWYgdGhlcmUgd2VyZSBubyBlcnJvcnMgZHVyaW5nIHByb2Nlc3Npbmc7CisgICAgICogICBJTlZBTElEX0FSR1VNRU5UUyBpZiBhdWRpbyBidWZmZXJzIGFyZSBpbnZhbGlkOworICAgICAqICAgSU5WQUxJRF9TVEFURSBpZiB0aGUgZW5naW5lIGhhcyBmaW5pc2hlZCB0aGUgZGlzYWJsZSBwaGFzZTsKKyAgICAgKiAgIE5PVF9JTklUSUFMSVpFRCBpZiB0aGUgYXVkaW8gYnVmZmVycyB3ZXJlIG5vdCBzZXQ7CisgICAgICogICBOT1RfU1VQUE9SVEVEIGlmIHRoZSByZXF1ZXN0ZWQgcHJvY2Vzc2luZyB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgYnkKKyAgICAgKiAgICAgICAgICAgICAgICAgdGhlIGVmZmVjdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9LIGlmIGJvdGggbWVzc2FnZSBxdWV1ZXMgd2VyZSBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIHRoZSBtZXRob2Qgd2FzIGFscmVhZHkgY2FsbGVkLgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIHRoZXJlIHdhcyBhIHByb2JsZW0gc2V0dGluZyB1cAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBxdWV1ZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1c01RIGEgbWVzc2FnZSBxdWV1ZSB1c2VkIGZvciBwYXNzaW5nIHN0YXR1cyBmcm9tIHRoZSBlZmZlY3QuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJzZXRQcm9jZXNzQnVmZmVycyJ9KQorICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBmbXFfc3luYzxSZXN1bHQ+IHN0YXR1c01RKTsKKworICAgIC8qKgorICAgICAqIFNldCB1cCBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMgZm9yIHByb2Nlc3NpbmcgYXVkaW8gZGF0YS4gVGhlIGVmZmVjdAorICAgICAqIG1heSBtb2RpZnkgYm90aCB0aGUgaW5wdXQgYW5kIHRoZSBvdXRwdXQgYnVmZmVyIGR1cmluZyB0aGUgb3BlcmF0aW9uLgorICAgICAqIEJ1ZmZlcnMgbWF5IGJlIHNldCBtdWx0aXBsZSB0aW1lcyBkdXJpbmcgZWZmZWN0IGxpZmV0aW1lLgorICAgICAqCisgICAgICogVGhlIGlucHV0IGFuZCB0aGUgb3V0cHV0IGJ1ZmZlciBtYXkgYmUgcmV1c2VkIGJldHdlZW4gZGlmZmVyZW50IGVmZmVjdHMsCisgICAgICogYW5kIHRoZSBpbnB1dCBidWZmZXIgbWF5IGJlIHVzZWQgYXMgYW4gb3V0cHV0IGJ1ZmZlci4gQnVmZmVycyBhcmUKKyAgICAgKiBkaXN0aW5ndWlzaGVkIHVzaW5nICdBdWRpb0J1ZmZlci5pZCcgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5CdWZmZXIgaW5wdXQgYXVkaW8gYnVmZmVyLgorICAgICAqIEBwYXJhbSBvdXRCdWZmZXIgb3V0cHV0IGF1ZGlvIGJ1ZmZlci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpZiBib3RoIGJ1ZmZlcnMgd2VyZSBtYXBwZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIHRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCBtYXBwaW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW55IG9mIHRoZSBidWZmZXJzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIHNldFByb2Nlc3NCdWZmZXJzKEF1ZGlvQnVmZmVyIGluQnVmZmVyLCBBdWRpb0J1ZmZlciBvdXRCdWZmZXIpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEV4ZWN1dGUgYSB2ZW5kb3Igc3BlY2lmaWMgY29tbWFuZCBvbiB0aGUgZWZmZWN0LiBUaGUgY29tbWFuZCBjb2RlCisgICAgICogYW5kIGRhdGEsIGFzIHdlbGwgYXMgcmVzdWx0IGRhdGEgYXJlIG5vdCBpbnRlcnByZXRlZCBieSBBbmRyb2lkCisgICAgICogRnJhbWV3b3JrIGFuZCBhcmUgcGFzc2VkIGFzLWlzIGJldHdlZW4gdGhlIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBzdGFuZGFyZCBQT1NJWC4xLTIwMDEgZXJyb3IgY29kZXMgZm9yIHRoZSBvcGVyYXRpb24KKyAgICAgKiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKgorICAgICAqIFVzZSB0aGlzIG1ldGhvZCBvbmx5IGlmIHRoZSBlZmZlY3QgaXMgcHJvdmlkZWQgYnkgYSB0aGlyZCBwYXJ0eSwgYW5kCisgICAgICogdGhlcmUgaXMgbm8gaW50ZXJmYWNlIGRlZmluZWQgZm9yIGl0LiBUaGlzIG1ldGhvZCBvbmx5IHdvcmtzIGZvciBlZmZlY3RzCisgICAgICogaW1wbGVtZW50ZWQgaW4gc29mdHdhcmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29tbWFuZElkIHRoZSBJRCBvZiB0aGUgY29tbWFuZC4KKyAgICAgKiBAcGFyYW0gZGF0YSBjb21tYW5kIGRhdGEuCisgICAgICogQHBhcmFtIHJlc3VsdE1heFNpemUgbWF4aW11bSBzaXplIGluIGJ5dGVzIG9mIHRoZSByZXN1bHQ7IGNhbiBiZSAwLgorICAgICAqIEByZXR1cm4gc3RhdHVzIGNvbW1hbmQgY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiByZXN1bHQgcmVzdWx0IGRhdGEuCisgICAgICovCisgICAgY29tbWFuZCh1aW50MzJfdCBjb21tYW5kSWQsIHZlYzx1aW50OF90PiBkYXRhLCB1aW50MzJfdCByZXN1bHRNYXhTaXplKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSB2ZW5kb3Itc3BlY2lmaWMgcGFyYW1ldGVyIGFuZCBhcHBseSBpdCBpbW1lZGlhdGVseS4gVGhlIHBhcmFtZXRlcgorICAgICAqIGNvZGUgYW5kIGRhdGEgYXJlIG5vdCBpbnRlcnByZXRlZCBieSBBbmRyb2lkIEZyYW1ld29yayBhbmQgYXJlIHBhc3NlZAorICAgICAqIGFzLWlzIGJldHdlZW4gdGhlIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4gY29kZSBpZiB0aGUgcGFyYW1ldGVyIElEIGlzCisgICAgICogdW5rbm93biBvciBpZiBwcm92aWRlZCBwYXJhbWV0ZXIgZGF0YSBpcyBpbnZhbGlkLiBJZiB0aGUgZWZmZWN0IGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzZXR0aW5nIHZlbmRvci1zcGVjaWZpYyBwYXJhbWV0ZXJzLCBpdCBtdXN0IHJldHVybiBOT1RfU1VQUE9SVEVELgorICAgICAqCisgICAgICogVXNlIHRoaXMgbWV0aG9kIG9ubHkgaWYgdGhlIGVmZmVjdCBpcyBwcm92aWRlZCBieSBhIHRoaXJkIHBhcnR5LCBhbmQKKyAgICAgKiB0aGVyZSBpcyBubyBpbnRlcmZhY2UgZGVmaW5lZCBmb3IgaXQuIFRoaXMgbWV0aG9kIG9ubHkgd29ya3MgZm9yIGVmZmVjdHMKKyAgICAgKiBpbXBsZW1lbnRlZCBpbiBzb2Z0d2FyZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXJhbWV0ZXIgaWRlbnRpZnlpbmcgZGF0YSBvZiB0aGUgcGFyYW1ldGVyLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgc2V0UGFyYW1ldGVyKHZlYzx1aW50OF90PiBwYXJhbWV0ZXIsIHZlYzx1aW50OF90PiB2YWx1ZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSB2ZW5kb3Itc3BlY2lmaWMgcGFyYW1ldGVyIHZhbHVlLiBUaGUgcGFyYW1ldGVyIGNvZGUgYW5kIHJldHVybmVkCisgICAgICogZGF0YSBhcmUgbm90IGludGVycHJldGVkIGJ5IEFuZHJvaWQgRnJhbWV3b3JrIGFuZCBhcmUgcGFzc2VkIGFzLWlzCisgICAgICogYmV0d2VlbiB0aGUgYXBwbGljYXRpb24gYW5kIHRoZSBlZmZlY3QuCisgICAgICoKKyAgICAgKiBUaGUgZWZmZWN0IG11c3QgdXNlIElOVkFMSURfQVJHVU1FTlRTIHJldHVybiBjb2RlIGlmIHRoZSBwYXJhbWV0ZXIgSUQgaXMKKyAgICAgKiB1bmtub3duLiBJZiB0aGUgZWZmZWN0IGRvZXMgbm90IHN1cHBvcnQgc2V0dGluZyB2ZW5kb3Itc3BlY2lmaWMKKyAgICAgKiBwYXJhbWV0ZXJzLCBpdCBtdXN0IHJldHVybiBOT1RfU1VQUE9SVEVELgorICAgICAqCisgICAgICogVXNlIHRoaXMgbWV0aG9kIG9ubHkgaWYgdGhlIGVmZmVjdCBpcyBwcm92aWRlZCBieSBhIHRoaXJkIHBhcnR5LCBhbmQKKyAgICAgKiB0aGVyZSBpcyBubyBpbnRlcmZhY2UgZGVmaW5lZCBmb3IgaXQuICBUaGlzIG1ldGhvZCBvbmx5IHdvcmtzIGZvciBlZmZlY3RzCisgICAgICogaW1wbGVtZW50ZWQgaW4gc29mdHdhcmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW1ldGVyIGlkZW50aWZ5aW5nIGRhdGEgb2YgdGhlIHBhcmFtZXRlci4KKyAgICAgKiBAcGFyYW0gdmFsdWVNYXhTaXplIG1heGltdW0gc2l6ZSBpbiBieXRlcyBvZiB0aGUgdmFsdWUuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcmVzdWx0IHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldFBhcmFtZXRlcih2ZWM8dWludDhfdD4gcGFyYW1ldGVyLCB1aW50MzJfdCB2YWx1ZU1heFNpemUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHZlYzx1aW50OF90PiB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgc3VwcG9ydGVkIGNvbmZpZ3MgZm9yIGEgdmVuZG9yLXNwZWNpZmljIGZlYXR1cmUuIFRoZSBjb25maWdzIHJldHVybmVkCisgICAgICogYXJlIG5vdCBpbnRlcnByZXRlZCBieSBBbmRyb2lkIEZyYW1ld29yayBhbmQgYXJlIHBhc3NlZCBhcy1pcyBiZXR3ZWVuIHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4gY29kZSBpZiB0aGUgZmVhdHVyZSBJRCBpcworICAgICAqIHVua25vd24uIElmIHRoZSBlZmZlY3QgZG9lcyBub3Qgc3VwcG9ydCBnZXR0aW5nIHZlbmRvci1zcGVjaWZpYyBmZWF0dXJlCisgICAgICogY29uZmlncywgaXQgbXVzdCByZXR1cm4gTk9UX1NVUFBPUlRFRC4gSWYgdGhlIGZlYXR1cmUgaXMgc3VwcG9ydGVkIGJ1dAorICAgICAqIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3VwcG9ydGVkIGNvbmZpZ3VyYXRpb25zIGV4Y2VlZHMgdGhlIG1heGltdW0gbnVtYmVyCisgICAgICogaW5kaWNhdGVkIGJ5IHRoZSBjYWxsZXIsIHRoZSBtZXRob2QgbXVzdCByZXR1cm4gUkVTVUxUX1RPT19CSUcuCisgICAgICoKKyAgICAgKiBVc2UgdGhpcyBtZXRob2Qgb25seSBpZiB0aGUgZWZmZWN0IGlzIHByb3ZpZGVkIGJ5IGEgdGhpcmQgcGFydHksIGFuZAorICAgICAqIHRoZXJlIGlzIG5vIGludGVyZmFjZSBkZWZpbmVkIGZvciBpdC4gIFRoaXMgbWV0aG9kIG9ubHkgd29ya3MgZm9yIGVmZmVjdHMKKyAgICAgKiBpbXBsZW1lbnRlZCBpbiBzb2Z0d2FyZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmZWF0dXJlSWQgZmVhdHVyZSBpZGVudGlmaWVyLgorICAgICAqIEBwYXJhbSBtYXhDb25maWdzIG1heGltdW0gbnVtYmVyIG9mIGNvbmZpZ3MgdG8gcmV0dXJuLgorICAgICAqIEBwYXJhbSBjb25maWdTaXplIHNpemUgb2YgZWFjaCBjb25maWcgaW4gYnl0ZXMuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gY29uZmlnc0NvdW50IG51bWJlciBvZiBjb25maWdzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gY29uZmlnc0RhdGEgZGF0YSBmb3IgYWxsIHRoZSBjb25maWdzIHJldHVybmVkLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICAgICAgICAgIFJlc3VsdCByZXR2YWwsCisgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ3NDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGNvbmZpZ3NEYXRhKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCBjb25maWcgZm9yIGEgdmVuZG9yLXNwZWNpZmljIGZlYXR1cmUuIFRoZSBjb25maWcgcmV0dXJuZWQKKyAgICAgKiBpcyBub3QgaW50ZXJwcmV0ZWQgYnkgQW5kcm9pZCBGcmFtZXdvcmsgYW5kIGlzIHBhc3NlZCBhcy1pcyBiZXR3ZWVuIHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4gY29kZSBpZiB0aGUgZmVhdHVyZSBJRCBpcworICAgICAqIHVua25vd24uIElmIHRoZSBlZmZlY3QgZG9lcyBub3Qgc3VwcG9ydCBnZXR0aW5nIHZlbmRvci1zcGVjaWZpYworICAgICAqIGZlYXR1cmUgY29uZmlncywgaXQgbXVzdCByZXR1cm4gTk9UX1NVUFBPUlRFRC4KKyAgICAgKgorICAgICAqIFVzZSB0aGlzIG1ldGhvZCBvbmx5IGlmIHRoZSBlZmZlY3QgaXMgcHJvdmlkZWQgYnkgYSB0aGlyZCBwYXJ0eSwgYW5kCisgICAgICogdGhlcmUgaXMgbm8gaW50ZXJmYWNlIGRlZmluZWQgZm9yIGl0LiAgVGhpcyBtZXRob2Qgb25seSB3b3JrcyBmb3IgZWZmZWN0cworICAgICAqIGltcGxlbWVudGVkIGluIHNvZnR3YXJlLgorICAgICAqCisgICAgICogQHBhcmFtIGZlYXR1cmVJZCBmZWF0dXJlIGlkZW50aWZpZXIuCisgICAgICogQHBhcmFtIGNvbmZpZ1NpemUgc2l6ZSBvZiB0aGUgY29uZmlnIGluIGJ5dGVzLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGNvbmZpZ0RhdGEgY29uZmlnIGRhdGEuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUodWludDMyX3QgZmVhdHVyZUlkLCB1aW50MzJfdCBjb25maWdTaXplKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8dWludDhfdD4gY29uZmlnRGF0YSk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgY29uZmlnIGZvciBhIHZlbmRvci1zcGVjaWZpYyBmZWF0dXJlLiBUaGUgY29uZmlnIGRhdGEKKyAgICAgKiBpcyBub3QgaW50ZXJwcmV0ZWQgYnkgQW5kcm9pZCBGcmFtZXdvcmsgYW5kIGlzIHBhc3NlZCBhcy1pcyBiZXR3ZWVuIHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4gY29kZSBpZiB0aGUgZmVhdHVyZSBJRCBpcworICAgICAqIHVua25vd24uIElmIHRoZSBlZmZlY3QgZG9lcyBub3Qgc3VwcG9ydCBnZXR0aW5nIHZlbmRvci1zcGVjaWZpYworICAgICAqIGZlYXR1cmUgY29uZmlncywgaXQgbXVzdCByZXR1cm4gTk9UX1NVUFBPUlRFRC4KKyAgICAgKgorICAgICAqIFVzZSB0aGlzIG1ldGhvZCBvbmx5IGlmIHRoZSBlZmZlY3QgaXMgcHJvdmlkZWQgYnkgYSB0aGlyZCBwYXJ0eSwgYW5kCisgICAgICogdGhlcmUgaXMgbm8gaW50ZXJmYWNlIGRlZmluZWQgZm9yIGl0LiAgVGhpcyBtZXRob2Qgb25seSB3b3JrcyBmb3IgZWZmZWN0cworICAgICAqIGltcGxlbWVudGVkIGluIHNvZnR3YXJlLgorICAgICAqCisgICAgICogQHBhcmFtIGZlYXR1cmVJZCBmZWF0dXJlIGlkZW50aWZpZXIuCisgICAgICogQHBhcmFtIGNvbmZpZ0RhdGEgY29uZmlnIGRhdGEuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKHVpbnQzMl90IGZlYXR1cmVJZCwgdmVjPHVpbnQ4X3Q+IGNvbmZpZ0RhdGEpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gZGVpbml0aWFsaXplIHRoZSBlZmZlY3QgYW5kIGZyZWUgdXAKKyAgICAgKiBhbGwgdGhlIGN1cnJlbnRseSBhbGxvY2F0ZWQgcmVzb3VyY2VzLiBJdCBpcyByZWNvbW1lbmRlZCB0byBjbG9zZQorICAgICAqIHRoZSBlZmZlY3Qgb24gdGhlIGNsaWVudCBzaWRlIGFzIHNvb24gYXMgaXQgaXMgYmVjb21lcyB1bnVzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpbiBjYXNlIHRoZSBzdWNjZXNzLgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgdGhlIGVmZmVjdCB3YXMgYWxyZWFkeSBjbG9zZWQuCisgICAgICovCisgICAgQGV4aXQKKyAgICBjbG9zZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWIzM2MzCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOworCisvKioKKyAqIFRoaXMgY2FsbGJhY2sgaW50ZXJmYWNlIGNvbnRhaW5zIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSBlZmZlY3QKKyAqIGVuZ2luZSAncHJvY2VzcycgZnVuY3Rpb24gdG8gZXhjaGFuZ2UgaW5wdXQgYW5kIG91dHB1dCBhdWRpbyBidWZmZXJzLgorICovCitpbnRlcmZhY2UgSUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIENhbGxlZCB0byByZXRyaWV2ZSBhIGJ1ZmZlciB3aGVyZSBkYXRhIHNob3VsZCByZWFkIGZyb20gYnkgJ3Byb2Nlc3MnCisgICAgICogZnVuY3Rpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBhdWRpbyBidWZmZXIgZm9yIHByb2Nlc3NpbmcKKyAgICAgKi8KKyAgICBnZXRCdWZmZXIoKSBnZW5lcmF0ZXMgKEF1ZGlvQnVmZmVyIGJ1ZmZlcik7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgdG8gcHJvdmlkZSBhIGJ1ZmZlciB3aXRoIHRoZSBkYXRhIHdyaXR0ZW4gYnkgJ3Byb2Nlc3MnIGZ1bmN0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGJ1ZmZlciBhdWRpbyBidWZmZXIgZm9yIHByb2Nlc3NpbmcKKyAgICAgKi8KKyAgICBwdXRCdWZmZXIoQXVkaW9CdWZmZXIgYnVmZmVyKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3RzRmFjdG9yeS5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3RzRmFjdG9yeS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2QzMDBlYwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdHNGYWN0b3J5LmhhbApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElFZmZlY3RzRmFjdG9yeSB7CisgICAgLyoqCisgICAgICogUmV0dXJucyBkZXNjcmlwdG9ycyBvZiBkaWZmZXJlbnQgZWZmZWN0cyBpbiBhbGwgbG9hZGVkIGxpYnJhcmllcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBsaXN0IG9mIGVmZmVjdCBkZXNjcmlwdG9ycy4KKyAgICAgKi8KKyAgICBnZXRBbGxEZXNjcmlwdG9ycygpIGdlbmVyYXRlcyhSZXN1bHQgcmV0dmFsLCB2ZWM8RWZmZWN0RGVzY3JpcHRvcj4gcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBkZXNjcmlwdG9yIG9mIGEgcGFydGljdWxhciBlZmZlY3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiByZXN1bHQgZWZmZWN0IGRlc2NyaXB0b3IuCisgICAgICovCisgICAgZ2V0RGVzY3JpcHRvcihVdWlkIHVpZCkgZ2VuZXJhdGVzKFJlc3VsdCByZXR2YWwsIEVmZmVjdERlc2NyaXB0b3IgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYW4gZWZmZWN0IGVuZ2luZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuICBUbyByZWxlYXNlIHRoZSBlZmZlY3QKKyAgICAgKiBlbmdpbmUsIGl0IGlzIG5lY2Vzc2FyeSB0byByZWxlYXNlIHJlZmVyZW5jZXMgdG8gdGhlIHJldHVybmVkIGVmZmVjdAorICAgICAqIG9iamVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1aWQgZWZmZWN0IHV1aWQuCisgICAgICogQHBhcmFtIHNlc3Npb24gYXVkaW8gc2Vzc2lvbiB0byB3aGljaCB0aGlzIGVmZmVjdCBpbnN0YW5jZSB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgICAgYXR0YWNoZWQuICBBbGwgZWZmZWN0cyBjcmVhdGVkIHdpdGggdGhlIHNhbWUgc2Vzc2lvbiBJRAorICAgICAqICAgICAgICAgICAgICAgIGFyZSBjb25uZWN0ZWQgaW4gc2VyaWVzIGFuZCBwcm9jZXNzIHRoZSBzYW1lIHNpZ25hbAorICAgICAqICAgICAgICAgICAgICAgIHN0cmVhbS4KKyAgICAgKiBAcGFyYW0gaW9IYW5kbGUgaWRlbnRpZmllcyB0aGUgb3V0cHV0IG9yIGlucHV0IHN0cmVhbSB0aGlzIGVmZmVjdCBpcworICAgICAqICAgICAgICAgICAgICAgICBkaXJlY3RlZCB0byBpbiBhdWRpbyBIQUwuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcmVzdWx0IHRoZSBpbnRlcmZhY2UgZm9yIHRoZSBjcmVhdGVkIGVmZmVjdC4KKyAgICAgKiBAcmV0dXJuIGVmZmVjdElkIHRoZSB1bmlxdWUgSUQgb2YgdGhlIGVmZmVjdCB0byBiZSB1c2VkIHdpdGgKKyAgICAgKiAgICAgICAgICAgICAgICAgIElTdHJlYW06OmFkZEVmZmVjdCBhbmQgSVN0cmVhbTo6cmVtb3ZlRWZmZWN0IG1ldGhvZHMuCisgICAgICovCisgICAgY3JlYXRlRWZmZWN0KFV1aWQgdWlkLCBBdWRpb1Nlc3Npb24gc2Vzc2lvbiwgQXVkaW9Jb0hhbmRsZSBpb0hhbmRsZSkKKyAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBJRWZmZWN0IHJlc3VsdCwgdWludDY0X3QgZWZmZWN0SWQpOworCisgICAgLyoqCisgICAgICogRHVtcHMgaW5mb3JtYXRpb24gYWJvdXQgZWZmZWN0cyBpbnRvIHRoZSBwcm92aWRlZCBmaWxlIGRlc2NyaXB0b3IuCisgICAgICogVGhpcyBpcyB1c2VkIGZvciB0aGUgZHVtcHN5cyBmYWNpbGl0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmZCBkdW1wIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBkZWJ1Z0R1bXAoaGFuZGxlIGZkKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4ZDZkOTcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL0lFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmhhbApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElFZmZlY3Q7CisKK2ludGVyZmFjZSBJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdCBleHRlbmRzIElFZmZlY3QgeworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciB0aGUgZWZmZWN0IHNob3VsZCBiZSBieXBhc3NlZC4KKyAgICAgKi8KKyAgICBzZXRCeXBhc3MoYm9vbCBieXBhc3MpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIGVmZmVjdCBzaG91bGQgYmUgYnlwYXNzZWQuCisgICAgICovCisgICAgZ2V0QnlwYXNzKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGJ5cGFzcyk7CisKKyAgICBlbnVtIFBhcmFtUmFuZ2UgOiBpbnQxNl90IHsKKyAgICAgICAgUk9PTV9MRVZFTF9NSU4gPSAtNjAwMCwKKyAgICAgICAgUk9PTV9MRVZFTF9NQVggPSAwLAorICAgICAgICBST09NX0hGX0xFVkVMX01JTiA9IC00MDAwLAorICAgICAgICBST09NX0hGX0xFVkVMX01BWCA9IDAsCisgICAgICAgIERFQ0FZX1RJTUVfTUlOID0gMTAwLAorICAgICAgICBERUNBWV9USU1FX01BWCA9IDIwMDAwLAorICAgICAgICBERUNBWV9IRl9SQVRJT19NSU4gPSAxMDAsCisgICAgICAgIERFQ0FZX0hGX1JBVElPX01BWCA9IDEwMDAsCisgICAgICAgIFJFRkxFQ1RJT05TX0xFVkVMX01JTiA9IC02MDAwLAorICAgICAgICBSRUZMRUNUSU9OU19MRVZFTF9NQVggPSAwLAorICAgICAgICBSRUZMRUNUSU9OU19ERUxBWV9NSU4gPSAwLAorICAgICAgICBSRUZMRUNUSU9OU19ERUxBWV9NQVggPSA2NSwKKyAgICAgICAgUkVWRVJCX0xFVkVMX01JTiA9IC02MDAwLAorICAgICAgICBSRVZFUkJfTEVWRUxfTUFYID0gMCwKKyAgICAgICAgUkVWRVJCX0RFTEFZX01JTiA9IDAsCisgICAgICAgIFJFVkVSQl9ERUxBWV9NQVggPSA2NSwKKyAgICAgICAgRElGRlVTSU9OX01JTiA9IDAsCisgICAgICAgIERJRkZVU0lPTl9NQVggPSAxMDAwLAorICAgICAgICBERU5TSVRZX01JTiA9IDAsCisgICAgICAgIERFTlNJVFlfTUFYID0gMTAwMAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByb29tIGxldmVsLgorICAgICAqLworICAgIHNldFJvb21MZXZlbChpbnQxNl90IHJvb21MZXZlbCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHJvb20gbGV2ZWwuCisgICAgICovCisgICAgZ2V0Um9vbUxldmVsKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IHJvb21MZXZlbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByb29tIGhpZ2ggZnJlcXVlbmNpZXMgbGV2ZWwuCisgICAgICovCisgICAgc2V0Um9vbUhmTGV2ZWwoaW50MTZfdCByb29tSGZMZXZlbCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHJvb20gaGlnaCBmcmVxdWVuY2llcyBsZXZlbC4KKyAgICAgKi8KKyAgICBnZXRSb29tSGZMZXZlbCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgaW50MTZfdCByb29tSGZMZXZlbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByb29tIGRlY2F5IHRpbWUuCisgICAgICovCisgICAgc2V0RGVjYXlUaW1lKHVpbnQzMl90IGRlY2F5VGltZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHJvb20gZGVjYXkgdGltZS4KKyAgICAgKi8KKyAgICBnZXREZWNheVRpbWUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQzMl90IGRlY2F5VGltZSk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByYXRpbyBvZiBoaWdoIGZyZXF1ZW5jaWVzIGRlY2F5LgorICAgICAqLworICAgIHNldERlY2F5SGZSYXRpbyhpbnQxNl90IGRlY2F5SGZSYXRpbykgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHJhdGlvIG9mIGhpZ2ggZnJlcXVlbmNpZXMgZGVjYXkuCisgICAgICovCisgICAgZ2V0RGVjYXlIZlJhdGlvKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IGRlY2F5SGZSYXRpbyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsZXZlbCBvZiByZWZsZWN0aW9ucyBpbiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBzZXRSZWZsZWN0aW9uc0xldmVsKGludDE2X3QgcmVmbGVjdGlvbnNMZXZlbCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxldmVsIG9mIHJlZmxlY3Rpb25zIGluIHRoZSByb29tLgorICAgICAqLworICAgIGdldFJlZmxlY3Rpb25zTGV2ZWwoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDE2X3QgcmVmbGVjdGlvbnNMZXZlbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByZWZsZWN0aW9ucyBkZWxheSBpbiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBzZXRSZWZsZWN0aW9uc0RlbGF5KHVpbnQzMl90IHJlZmxlY3Rpb25zRGVsYXkpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSByZWZsZWN0aW9ucyBkZWxheSBpbiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBnZXRSZWZsZWN0aW9uc0RlbGF5KCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB1aW50MzJfdCByZWZsZWN0aW9uc0RlbGF5KTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHJldmVyYiBsZXZlbCBvZiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBzZXRSZXZlcmJMZXZlbChpbnQxNl90IHJldmVyYkxldmVsKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgcmV2ZXJiIGxldmVsIG9mIHRoZSByb29tLgorICAgICAqLworICAgIGdldFJldmVyYkxldmVsKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IHJldmVyYkxldmVsKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHJldmVyYiBkZWxheSBvZiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBzZXRSZXZlcmJEZWxheSh1aW50MzJfdCByZXZlckRlbGF5KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgcmV2ZXJiIGRlbGF5IG9mIHRoZSByb29tLgorICAgICAqLworICAgIGdldFJldmVyYkRlbGF5KCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB1aW50MzJfdCByZXZlcmJEZWxheSk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHJvb20gZGlmZnVzaW9uLgorICAgICAqLworICAgIHNldERpZmZ1c2lvbihpbnQxNl90IGRpZmZ1c2lvbikgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgcm9vbSBkaWZmdXNpb24uCisgICAgICovCisgICAgZ2V0RGlmZnVzaW9uKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IGRpZmZ1c2lvbik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHJvb20gd2FsbCBkZW5zaXR5LgorICAgICAqLworICAgIHNldERlbnNpdHkoaW50MTZfdCBkZW5zaXR5KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyByb29tIHdhbGwgZGVuc2l0eS4KKyAgICAgKi8KKyAgICBnZXREZW5zaXR5KCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IGRlbnNpdHkpOworCisgICAgc3RydWN0IEFsbFByb3BlcnRpZXMgeworICAgICAgICBpbnQxNl90ICByb29tTGV2ZWw7ICAgICAgICAgLy8gaW4gbWlsbGliZWxzLCAgICByYW5nZSAtNjAwMCB0byAwCisgICAgICAgIGludDE2X3QgIHJvb21IZkxldmVsOyAgICAgICAvLyBpbiBtaWxsaWJlbHMsICAgIHJhbmdlIC00MDAwIHRvIDAKKyAgICAgICAgdWludDMyX3QgZGVjYXlUaW1lOyAgICAgICAgIC8vIGluIG1pbGxpc2Vjb25kcywgcmFuZ2UgMTAwIHRvIDIwMDAwCisgICAgICAgIGludDE2X3QgIGRlY2F5SGZSYXRpbzsgICAgICAvLyBpbiBwZXJtaWxsZXMsICAgIHJhbmdlIDEwMCB0byAxMDAwCisgICAgICAgIGludDE2X3QgIHJlZmxlY3Rpb25zTGV2ZWw7ICAvLyBpbiBtaWxsaWJlbHMsICAgIHJhbmdlIC02MDAwIHRvIDAKKyAgICAgICAgdWludDMyX3QgcmVmbGVjdGlvbnNEZWxheTsgIC8vIGluIG1pbGxpc2Vjb25kcywgcmFuZ2UgMCB0byA2NQorICAgICAgICBpbnQxNl90ICByZXZlcmJMZXZlbDsgICAgICAgLy8gaW4gbWlsbGliZWxzLCAgICByYW5nZSAtNjAwMCB0byAwCisgICAgICAgIHVpbnQzMl90IHJldmVyYkRlbGF5OyAgICAgICAvLyBpbiBtaWxsaXNlY29uZHMsIHJhbmdlIDAgdG8gNjUKKyAgICAgICAgaW50MTZfdCAgZGlmZnVzaW9uOyAgICAgICAgIC8vIGluIHBlcm1pbGxlcywgICAgcmFuZ2UgMCB0byAxMDAwCisgICAgICAgIGludDE2X3QgIGRlbnNpdHk7ICAgICAgICAgICAvLyBpbiBwZXJtaWxsZXMsICAgIHJhbmdlIDAgdG8gMTAwMAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGFsbCBwcm9wZXJ0aWVzIGF0IG9uY2UuCisgICAgICovCisgICAgc2V0QWxsUHJvcGVydGllcyhBbGxQcm9wZXJ0aWVzIHByb3BlcnRpZXMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGFsbCBwcm9wZXJ0aWVzIGF0IG9uY2UuCisgICAgICovCisgICAgZ2V0QWxsUHJvcGVydGllcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lFcXVhbGl6ZXJFZmZlY3QuaGFsIGIvYXVkaW8vZWZmZWN0LzIuMC9JRXF1YWxpemVyRWZmZWN0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTI4ZTBkCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JRXF1YWxpemVyRWZmZWN0LmhhbApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElFcXVhbGl6ZXJFZmZlY3QgZXh0ZW5kcyBJRWZmZWN0IHsKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgZnJlcXVlbmN5IGJhbmRzIHRoYXQgdGhlIGVxdWFsaXplciBzdXBwb3J0cy4KKyAgICAgKi8KKyAgICBnZXROdW1CYW5kcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDE2X3QgbnVtQmFuZHMpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBiYW5kIGxldmVscyBzdXBwb3J0ZWQuCisgICAgICovCisgICAgZ2V0TGV2ZWxSYW5nZSgpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDE2X3QgbWluTGV2ZWwsIGludDE2X3QgbWF4TGV2ZWwpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZ2FpbiBmb3IgdGhlIGdpdmVuIGVxdWFsaXplciBiYW5kLgorICAgICAqLworICAgIHNldEJhbmRMZXZlbCh1aW50MTZfdCBiYW5kLCBpbnQxNl90IGxldmVsKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZ2FpbiBmb3IgdGhlIGdpdmVuIGVxdWFsaXplciBiYW5kLgorICAgICAqLworICAgIGdldEJhbmRMZXZlbCh1aW50MTZfdCBiYW5kKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDE2X3QgbGV2ZWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY2VudGVyIGZyZXF1ZW5jeSBvZiB0aGUgZ2l2ZW4gYmFuZCwgaW4gbWlsbGlIZXJ0ei4KKyAgICAgKi8KKyAgICBnZXRCYW5kQ2VudGVyRnJlcXVlbmN5KHVpbnQxNl90IGJhbmQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQzMl90IGNlbnRlckZyZXFtSHopOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZnJlcXVlbmN5IHJhbmdlIG9mIHRoZSBnaXZlbiBmcmVxdWVuY3kgYmFuZCwgaW4gbWlsbGlIZXJ0ei4KKyAgICAgKi8KKyAgICBnZXRCYW5kRnJlcXVlbmN5UmFuZ2UodWludDE2X3QgYmFuZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDMyX3QgbWluRnJlcW1IeiwgdWludDMyX3QgbWF4RnJlcW1Ieik7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBiYW5kIHRoYXQgaGFzIHRoZSBtb3N0IGVmZmVjdCBvbiB0aGUgZ2l2ZW4gZnJlcXVlbmN5CisgICAgICogaW4gbWlsbGlIZXJ0ei4KKyAgICAgKi8KKyAgICBnZXRCYW5kRm9yRnJlcXVlbmN5KHVpbnQzMl90IGZyZXFtSHopCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQxNl90IGJhbmQpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmFtZXMgb2YgYWxsIHByZXNldHMgdGhlIGVxdWFsaXplciBzdXBwb3J0cy4KKyAgICAgKi8KKyAgICBnZXRQcmVzZXROYW1lcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdmVjPHN0cmluZz4gbmFtZXMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBwcmVzZXQgdXNpbmcgdGhlIGluZGV4IG9mIHRoZSBwcmVzZXQgaW4gdGhlIG5hbWVzCisgICAgICogdmVjdG9yIHJldHVybmVkIHZpYSAnZ2V0UHJlc2V0TmFtZXMnLgorICAgICAqLworICAgIHNldEN1cnJlbnRQcmVzZXQodWludDE2X3QgcHJlc2V0KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBwcmVzZXQuCisgICAgICovCisgICAgZ2V0Q3VycmVudFByZXNldCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDE2X3QgcHJlc2V0KTsKKworICAgIHN0cnVjdCBBbGxQcm9wZXJ0aWVzIHsKKyAgICAgICAgdWludDE2X3QgY3VyUHJlc2V0OworICAgICAgICB2ZWM8aW50MTZfdD4gYmFuZExldmVsczsKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyBhbGwgcHJvcGVydGllcyBhdCBvbmNlLgorICAgICAqLworICAgIHNldEFsbFByb3BlcnRpZXMoQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyBhbGwgcHJvcGVydGllcyBhdCBvbmNlLgorICAgICAqLworICAgIGdldEFsbFByb3BlcnRpZXMoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEFsbFByb3BlcnRpZXMgcHJvcGVydGllcyk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9JTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lMb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGViMWM4Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oYWwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElFZmZlY3Q7CisKK2ludGVyZmFjZSBJTG91ZG5lc3NFbmhhbmNlckVmZmVjdCBleHRlbmRzIElFZmZlY3QgeworICAgIC8qKgorICAgICAqIFNldHMgdGFyZ2V0IGdhaW4gZXhwcmVzc2VkIGluIG1pbGxpYmVscy4KKyAgICAgKi8KKyAgICBzZXRUYXJnZXRHYWluKGludDMyX3QgdGFyZ2V0R2Fpbk1iKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0YXJnZXQgZ2FpbiBleHByZXNzZWQgaW4gbWlsbGliZWxzLgorICAgICAqLworICAgIGdldFRhcmdldEdhaW4oKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDMyX3QgdGFyZ2V0R2Fpbk1iKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSU5vaXNlU3VwcHJlc3Npb25FZmZlY3QuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2MTdhMWUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL0lOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmhhbApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElOb2lzZVN1cHByZXNzaW9uRWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgZW51bSBMZXZlbCA6IGludDMyX3QgeworICAgICAgICBMT1csCisgICAgICAgIE1FRElVTSwKKyAgICAgICAgSElHSAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHN1cHByZXNzaW9uIGxldmVsLgorICAgICAqLworICAgIHNldFN1cHByZXNzaW9uTGV2ZWwoTGV2ZWwgbGV2ZWwpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHN1cHByZXNzaW9uIGxldmVsLgorICAgICAqLworICAgIGdldFN1cHByZXNzaW9uTGV2ZWwoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIExldmVsIGxldmVsKTsKKworICAgIGVudW0gVHlwZSA6IGludDMyX3QgeworICAgICAgICBTSU5HTEVfQ0hBTk5FTCwKKyAgICAgICAgTVVMVElfQ0hBTk5FTAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXQgc3VwcHJlc3Npb24gdHlwZS4KKyAgICAgKi8KKyAgICBzZXRTdXBwcmVzc2lvblR5cGUoVHlwZSB0eXBlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0IHN1cHByZXNzaW9uIHR5cGUuCisgICAgICovCisgICAgZ2V0U3VwcHJlc3Npb25UeXBlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBUeXBlIHR5cGUpOworCisgICAgc3RydWN0IEFsbFByb3BlcnRpZXMgeworICAgICAgICBMZXZlbCBsZXZlbDsKKyAgICAgICAgVHlwZSB0eXBlOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGFsbCBwcm9wZXJ0aWVzIGF0IG9uY2UuCisgICAgICovCisgICAgc2V0QWxsUHJvcGVydGllcyhBbGxQcm9wZXJ0aWVzIHByb3BlcnRpZXMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGFsbCBwcm9wZXJ0aWVzIGF0IG9uY2UuCisgICAgICovCisgICAgZ2V0QWxsUHJvcGVydGllcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lQcmVzZXRSZXZlcmJFZmZlY3QuaGFsIGIvYXVkaW8vZWZmZWN0LzIuMC9JUHJlc2V0UmV2ZXJiRWZmZWN0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzdlNTZhCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JUHJlc2V0UmV2ZXJiRWZmZWN0LmhhbApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElQcmVzZXRSZXZlcmJFZmZlY3QgZXh0ZW5kcyBJRWZmZWN0IHsKKyAgICBlbnVtIFByZXNldCA6IGludDMyX3QgeworICAgICAgICBOT05FLCAgICAgICAgLy8gbm8gcmV2ZXJiIG9yIHJlZmxlY3Rpb25zCisgICAgICAgIFNNQUxMUk9PTSwgICAvLyBhIHNtYWxsIHJvb20gbGVzcyB0aGFuIGZpdmUgbWV0ZXJzIGluIGxlbmd0aAorICAgICAgICBNRURJVU1ST09NLCAgLy8gYSBtZWRpdW0gcm9vbSB3aXRoIGEgbGVuZ3RoIG9mIHRlbiBtZXRlcnMgb3IgbGVzcworICAgICAgICBMQVJHRVJPT00sICAgLy8gYSBsYXJnZS1zaXplZCByb29tIHN1aXRhYmxlIGZvciBsaXZlIHBlcmZvcm1hbmNlcworICAgICAgICBNRURJVU1IQUxMLCAgLy8gYSBtZWRpdW0tc2l6ZWQgaGFsbAorICAgICAgICBMQVJHRUhBTEwsICAgLy8gYSBsYXJnZS1zaXplZCBoYWxsIHN1aXRhYmxlIGZvciBhIGZ1bGwgb3JjaGVzdHJhCisgICAgICAgIFBMQVRFLCAgICAgICAvLyBzeW50aGVzaXMgb2YgdGhlIHRyYWRpdGlvbmFsIHBsYXRlIHJldmVyYgorICAgICAgICBMQVNUID0gUExBVEUKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBwcmVzZXQuCisgICAgICovCisgICAgc2V0UHJlc2V0KFByZXNldCBwcmVzZXQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IHByZXNldC4KKyAgICAgKi8KKyAgICBnZXRQcmVzZXQoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIFByZXNldCBwcmVzZXQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvSVZpcnR1YWxpemVyRWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSVZpcnR1YWxpemVyRWZmZWN0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OWI0OWEwCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JVmlydHVhbGl6ZXJFZmZlY3QuaGFsCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKK2ltcG9ydCBJRWZmZWN0OworCitpbnRlcmZhY2UgSVZpcnR1YWxpemVyRWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHNldHRpbmcgdmlydHVhbGl6YXRpb24gc3RyZW5ndGggaXMgc3VwcG9ydGVkLgorICAgICAqLworICAgIGlzU3RyZW5ndGhTdXBwb3J0ZWQoKSBnZW5lcmF0ZXMgKGJvb2wgc3RyZW5ndGhTdXBwb3J0ZWQpOworCisgICAgZW51bSBTdHJlbmd0aFJhbmdlIDogdWludDE2X3QgeworICAgICAgICBNSU4gPSAwLAorICAgICAgICBNQVggPSAxMDAwCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdmlydHVhbGl6YXRpb24gc3RyZW5ndGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyZW5ndGggc3RyZW5ndGggb2YgdGhlIGVmZmVjdC4gVGhlIHZhbGlkIHJhbmdlIGZvciBzdHJlbmd0aAorICAgICAqICAgICAgICAgICAgICAgICBzdHJlbmd0aCBpcyBbMCwgMTAwMF0sIHdoZXJlIDAgcGVyIG1pbGxlIGRlc2lnbmF0ZXMgdGhlCisgICAgICogICAgICAgICAgICAgICAgIG1pbGRlc3QgZWZmZWN0IGFuZCAxMDAwIHBlciBtaWxsZSBkZXNpZ25hdGVzIHRoZQorICAgICAqICAgICAgICAgICAgICAgICBzdHJvbmdlc3QuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFN0cmVuZ3RoKHVpbnQxNl90IHN0cmVuZ3RoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB2aXJ0dWFsaXphdGlvbiBzdHJlbmd0aC4KKyAgICAgKi8KKyAgICBnZXRTdHJlbmd0aCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDE2X3Qgc3RyZW5ndGgpOworCisgICAgc3RydWN0IFNwZWFrZXJBbmdsZSB7CisgICAgICAgIEF1ZGlvQ2hhbm5lbE1hc2sgbWFzazsgLy8gc3BlYWtlciBjaGFubmVsIG1hc2sgKDEgYml0IHNldCkuCisgICAgICAgIC8vIGFsbCBhbmdsZXMgYXJlIGV4cHJlc3NlZCBpbiBkZWdyZWVzIGFuZAorICAgICAgICAvLyBhcmUgcmVsYXRpdmUgdG8gdGhlIGxpc3RlbmVyLgorICAgICAgICBpbnQxNl90IGF6aW11dGg7IC8vIDAgaXMgdGhlIGRpcmVjdGlvbiB0aGUgbGlzdGVuZXIgZmFjZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxODAgaXMgYmVoaW5kIHRoZSBsaXN0ZW5lcgorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC05MCBpcyB0byB0aGVpciBsZWZ0CisgICAgICAgIGludDE2X3QgZWxldmF0aW9uOyAvLyAwIGlzIHRoZSBob3Jpem9udGFsIHBsYW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyArOTAgaXMgYWJvdmUgdGhlIGxpc3RlbmVyLCAtOTAgaXMgYmVsb3cKKyAgICB9OworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB2aXJ0dWFsIHNwZWFrZXIgYW5nbGVzIGZvciB0aGUgZ2l2ZW4gY2hhbm5lbCBtYXNrIG9uIHRoZQorICAgICAqIHNwZWNpZmllZCBkZXZpY2UuCisgICAgICovCisgICAgZ2V0VmlydHVhbFNwZWFrZXJBbmdsZXMoQXVkaW9DaGFubmVsTWFzayBtYXNrLCBBdWRpb0RldmljZSBkZXZpY2UpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHZlYzxTcGVha2VyQW5nbGU+IHNwZWFrZXJBbmdsZXMpOworCisgICAgLyoqCisgICAgICogRm9yY2VzIHRoZSB2aXJ0dWFsaXplciBlZmZlY3QgZm9yIHRoZSBnaXZlbiBvdXRwdXQgZGV2aWNlLgorICAgICAqLworICAgIGZvcmNlVmlydHVhbGl6YXRpb25Nb2RlKEF1ZGlvRGV2aWNlIGRldmljZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYXVkaW8gZGV2aWNlIHJlZmxlY3RpbmcgdGhlIGN1cnJlbnQgdmlydHVhbGl6YXRpb24gbW9kZSwKKyAgICAgKiBBVURJT19ERVZJQ0VfTk9ORSB3aGVuIG5vdCB2aXJ0dWFsaXppbmcuCisgICAgICovCisgICAgZ2V0VmlydHVhbGl6YXRpb25Nb2RlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBBdWRpb0RldmljZSBkZXZpY2UpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvSVZpc3VhbGl6ZXJFZmZlY3QuaGFsIGIvYXVkaW8vZWZmZWN0LzIuMC9JVmlzdWFsaXplckVmZmVjdC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZmYzcwYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSVZpc3VhbGl6ZXJFZmZlY3QuaGFsCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElWaXN1YWxpemVyRWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgZW51bSBDYXB0dXJlU2l6ZVJhbmdlIDogaW50MzJfdCB7CisgICAgICAgIE1BWCA9IDEwMjQsICAvLyBtYXhpbXVtIGNhcHR1cmUgc2l6ZSBpbiBzYW1wbGVzCisgICAgICAgIE1JTiA9IDEyOCAgICAvLyBtaW5pbXVtIGNhcHR1cmUgc2l6ZSBpbiBzYW1wbGVzCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG51bWJlciBQQ00gc2FtcGxlcyBpbiB0aGUgY2FwdHVyZS4KKyAgICAgKi8KKyAgICBzZXRDYXB0dXJlU2l6ZSh1aW50MTZfdCBjYXB0dXJlU2l6ZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG51bWJlciBQQ00gc2FtcGxlcyBpbiB0aGUgY2FwdHVyZS4KKyAgICAgKi8KKyAgICBnZXRDYXB0dXJlU2l6ZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDE2X3QgY2FwdHVyZVNpemUpOworCisgICAgZW51bSBTY2FsaW5nTW9kZSA6IGludDMyX3QgeworICAgICAgICAvLyBLZWVwIGluIHN5bmMgd2l0aCBTQ0FMSU5HX01PREVfLi4uIGluCisgICAgICAgIC8vIGZyYW1ld29ya3MvYmFzZS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvYXVkaW9meC9WaXN1YWxpemVyLmphdmEKKyAgICAgICAgTk9STUFMSVpFRCA9IDAsCisgICAgICAgIEFTX1BMQVlFRCA9IDEKKyAgICB9OworCisgICAgLyoqCisgICAgICogU3BlY2lmaWVzIHRoZSB3YXkgdGhlIGNhcHR1cmVkIGRhdGEgaXMgc2NhbGVkLgorICAgICAqLworICAgIHNldFNjYWxpbmdNb2RlKFNjYWxpbmdNb2RlIHNjYWxpbmdNb2RlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIHRoZSB3YXkgdGhlIGNhcHR1cmVkIGRhdGEgaXMgc2NhbGVkLgorICAgICAqLworICAgIGdldFNjYWxpbmdNb2RlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBTY2FsaW5nTW9kZSBzY2FsaW5nTW9kZSk7CisKKyAgICAvKioKKyAgICAgKiBJbmZvcm1zIHRoZSB2aXN1YWxpemVyIGFib3V0IHRoZSBkb3duc3RyZWFtIGxhdGVuY3kuCisgICAgICovCisgICAgc2V0TGF0ZW5jeSh1aW50MzJfdCBsYXRlbmN5TXMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkb3duc3RyZWFtIGxhdGVuY3kuCisgICAgICovCisgICAgZ2V0TGF0ZW5jeSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDMyX3QgbGF0ZW5jeU1zKTsKKworICAgIGVudW0gTWVhc3VyZW1lbnRNb2RlIDogaW50MzJfdCB7CisgICAgICAgIC8vIEtlZXAgaW4gc3luYyB3aXRoIE1FQVNVUkVNRU5UX01PREVfLi4uIGluCisgICAgICAgIC8vIGZyYW1ld29ya3MvYmFzZS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvYXVkaW9meC9WaXN1YWxpemVyLmphdmEKKyAgICAgICAgTk9ORSA9IDB4MCwKKyAgICAgICAgUEVBS19STVMgPSAweDEKKyAgICB9OworCisgICAgLyoqCisgICAgICogU3BlY2lmaWVzIHdoaWNoIG1lYXN1cmVtZW50cyBhcmUgdG8gYmUgbWFkZS4KKyAgICAgKi8KKyAgICBzZXRNZWFzdXJlbWVudE1vZGUoTWVhc3VyZW1lbnRNb2RlIG1lYXN1cmVtZW50TW9kZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgd2hpY2ggbWVhc3VyZW1lbnRzIGFyZSB0byBiZSBtYWRlLgorICAgICAqLworICAgIGdldE1lYXN1cmVtZW50TW9kZSgpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBSZXN1bHQgcmV0dmFsLCBNZWFzdXJlbWVudE1vZGUgbWVhc3VyZW1lbnRNb2RlKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB0aGUgbGF0ZXN0IFBDTSBzbmFwc2hvdCBjYXB0dXJlZCBieSB0aGUgdmlzdWFsaXplciBlbmdpbmUuICBUaGUKKyAgICAgKiBudW1iZXIgb2Ygc2FtcGxlcyB0byBjYXB0dXJlIGlzIHNwZWNpZmllZCBieSAnc2V0Q2FwdHVyZVNpemUnIHBhcmFtZXRlci4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHNhbXBsZXMgc2FtcGxlcyBpbiA4IGJpdCB1bnNpZ25lZCBmb3JtYXQgKDAgPSAweDgwKQorICAgICAqLworICAgIGNhcHR1cmUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHZlYzx1aW50OF90PiBzYW1wbGVzKTsKKworICAgIHN0cnVjdCBNZWFzdXJlbWVudCB7CisgICAgICAgIE1lYXN1cmVtZW50TW9kZSBtb2RlOyAgICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFZhbHVlcyB7CisgICAgICAgICAgICBzdHJ1Y3QgUGVha0FuZFJtcyB7CisgICAgICAgICAgICAgICAgaW50MzJfdCBwZWFrTWI7ICAvLyBtaWxsaWJlbHMKKyAgICAgICAgICAgICAgICBpbnQzMl90IHJtc01iOyAgIC8vIG1pbGxpYmVscworICAgICAgICAgICAgfSBwZWFrQW5kUm1zOworICAgICAgICB9IHZhbHVlOworICAgIH07CisgICAgLyoqCisgICAgICogUmV0cmlldmVzIHRoZSBsYXRlc3QgbWVhc3VyZW1lbnRzLiBUaGUgbWVhc3VyZW1lbnRzIHRvIGJlIG1hZGUKKyAgICAgKiBhcmUgc3BlY2lmaWVkIGJ5ICdzZXRNZWFzdXJlbWVudE1vZGUnIHBhcmFtZXRlci4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBtZWFzdXJlbWVudC4KKyAgICAgKi8KKyAgICBtZWFzdXJlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBNZWFzdXJlbWVudCByZXN1bHQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5jcHAgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiOWNhMzAKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuY3BwCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJBRUNfRWZmZWN0X0hBTCIKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfYWVjLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6QWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6fkFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0KCkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OmluaXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmluaXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OmVuYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZW5hYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKHZvbHVtZXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpzZXRDb25maWdSZXZlcnNlKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZ1JldmVyc2UoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZ1JldmVyc2UoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6c2V0QXV4Q2hhbm5lbHNDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXV4Q2hhbm5lbHNDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0RGVzY3JpcHRvcihfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5jb21tYW5kKGNvbW1hbmRJZCwgZGF0YSwgcmVzdWx0TWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBtYXhDb25maWdzLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Y2xvc2UoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNsb3NlKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldEVjaG9EZWxheSh1aW50MzJfdCBlY2hvRGVsYXlNcykgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oQUVDX1BBUkFNX0VDSE9fREVMQVksIGVjaG9EZWxheU1zKTsKK30KKworUmV0dXJuPHZvaWQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpnZXRFY2hvRGVsYXkoZ2V0RWNob0RlbGF5X2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oQUVDX1BBUkFNX0VDSE9fREVMQVksIF9oaWRsX2NiKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0Fjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFjOTI1ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0FDT1VTVElDRUNIT0NBTkNFTEVSRUZGRUNUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9BQ09VU1RJQ0VDSE9DQU5DRUxFUkVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJFZmZlY3QuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0IDogcHVibGljIElBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdCB7CisgICAgZXhwbGljaXQgQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWcoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXNldCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBlbmFibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ1JldmVyc2UoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXV4Q2hhbm5lbHNDb25maWcoY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IG9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IHNldEVjaG9EZWxheSh1aW50MzJfdCBlY2hvRGVsYXlNcykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRFY2hvRGVsYXkoZ2V0RWNob0RlbGF5X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICBzcDxFZmZlY3Q+IG1FZmZlY3Q7CisKKyAgICB2aXJ0dWFsIH5BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdCgpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9BQ09VU1RJQ0VDSE9DQU5DRUxFUkVGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OWQ0ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQ2IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuY3BwIFwKKyAgICBBdWRpb0J1ZmZlck1hbmFnZXIuY3BwIFwKKyAgICBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5jcHAgXAorICAgIEJhc3NCb29zdEVmZmVjdC5jcHAgXAorICAgIENvbnZlcnNpb25zLmNwcCBcCisgICAgRG93bm1peEVmZmVjdC5jcHAgXAorICAgIEVmZmVjdC5jcHAgXAorICAgIEVmZmVjdHNGYWN0b3J5LmNwcCBcCisgICAgRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdC5jcHAgXAorICAgIEVxdWFsaXplckVmZmVjdC5jcHAgXAorICAgIExvdWRuZXNzRW5oYW5jZXJFZmZlY3QuY3BwIFwKKyAgICBOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmNwcCBcCisgICAgUHJlc2V0UmV2ZXJiRWZmZWN0LmNwcCBcCisgICAgVmlydHVhbGl6ZXJFZmZlY3QuY3BwIFwKKyAgICBWaXN1YWxpemVyRWZmZWN0LmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZWZmZWN0cyBcCisgICAgbGliZm1xIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbG1lbW9yeSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAtdXRpbCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wIFwKKyAgICBhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCBcCisKK0xPQ0FMX0hFQURFUl9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmF1ZGlvX3N5c3RlbV9oZWFkZXJzIFwKKyAgICBsaWJhdWRpb2NsaWVudF9oZWFkZXJzIFwKKyAgICBsaWJlZmZlY3RzX2hlYWRlcnMgXAorICAgIGxpYmhhcmR3YXJlX2hlYWRlcnMgXAorICAgIGxpYm1lZGlhX2hlYWRlcnMgXAorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXVkaW9CdWZmZXJNYW5hZ2VyLmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdWRpb0J1ZmZlck1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiYTBjNGEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXVkaW9CdWZmZXJNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGF0b21pYz4KKworI2luY2x1ZGUgPGhpZGxtZW1vcnkvbWFwcGluZy5oPgorCisjaW5jbHVkZSAiQXVkaW9CdWZmZXJNYW5hZ2VyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKKworQU5EUk9JRF9TSU5HTEVUT05fU1RBVElDX0lOU1RBTkNFKEF1ZGlvQnVmZmVyTWFuYWdlcik7CisKK2Jvb2wgQXVkaW9CdWZmZXJNYW5hZ2VyOjp3cmFwKGNvbnN0IEF1ZGlvQnVmZmVyJiBidWZmZXIsIHNwPEF1ZGlvQnVmZmVyV3JhcHBlcj4qIHdyYXBwZXIpIHsKKyAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIHRoaXMgYnVmZmVyIGFscmVhZHkKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgc3NpemVfdCBpZHggPSBtQnVmZmVycy5pbmRleE9mS2V5KGJ1ZmZlci5pZCk7CisgICAgaWYgKGlkeCA+PSAwKSB7CisgICAgICAgICp3cmFwcGVyID0gbUJ1ZmZlcnNbaWR4XS5wcm9tb3RlKCk7CisgICAgICAgIGlmICgqd3JhcHBlciAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAoKndyYXBwZXIpLT5nZXRIYWxCdWZmZXIoKS0+ZnJhbWVDb3VudCA9IGJ1ZmZlci5mcmFtZUNvdW50OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgbUJ1ZmZlcnMucmVtb3ZlSXRlbXNBdChpZHgpOworICAgIH0KKyAgICAvLyBOZWVkIHRvIGNyZWF0ZSBhbmQgaW5pdCBhIG5ldyBBdWRpb0J1ZmZlcldyYXBwZXIuCisgICAgc3A8QXVkaW9CdWZmZXJXcmFwcGVyPiB0ZW1wQnVmZmVyKG5ldyBBdWRpb0J1ZmZlcldyYXBwZXIoYnVmZmVyKSk7CisgICAgaWYgKCF0ZW1wQnVmZmVyLT5pbml0KCkpIHJldHVybiBmYWxzZTsKKyAgICAqd3JhcHBlciA9IHRlbXBCdWZmZXI7CisgICAgbUJ1ZmZlcnMuYWRkKGJ1ZmZlci5pZCwgKndyYXBwZXIpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEF1ZGlvQnVmZmVyTWFuYWdlcjo6cmVtb3ZlRW50cnkodWludDY0X3QgaWQpIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgc3NpemVfdCBpZHggPSBtQnVmZmVycy5pbmRleE9mS2V5KGlkKTsKKyAgICBpZiAoaWR4ID49IDApIG1CdWZmZXJzLnJlbW92ZUl0ZW1zQXQoaWR4KTsKK30KKworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0F1ZGlvQnVmZmVyV3JhcHBlcjo6QXVkaW9CdWZmZXJXcmFwcGVyKGNvbnN0IEF1ZGlvQnVmZmVyJiBidWZmZXIpIDoKKyAgICAgICAgbUhpZGxCdWZmZXIoYnVmZmVyKSwgbUhhbEJ1ZmZlcnsgMCwgeyBudWxscHRyIH0gfSB7Cit9CisKK0F1ZGlvQnVmZmVyV3JhcHBlcjo6fkF1ZGlvQnVmZmVyV3JhcHBlcigpIHsKKyAgICBBdWRpb0J1ZmZlck1hbmFnZXI6OmdldEluc3RhbmNlKCkucmVtb3ZlRW50cnkobUhpZGxCdWZmZXIuaWQpOworfQorCitib29sIEF1ZGlvQnVmZmVyV3JhcHBlcjo6aW5pdCgpIHsKKyAgICBpZiAobUhhbEJ1ZmZlci5yYXcgIT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiQW4gYXR0ZW1wdCB0byBpbml0IEF1ZGlvQnVmZmVyV3JhcHBlciB0d2ljZSIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIG1IaWRsTWVtb3J5ID0gbWFwTWVtb3J5KG1IaWRsQnVmZmVyLmRhdGEpOworICAgIGlmIChtSGlkbE1lbW9yeSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgbWFwIEhJREwgbWVtb3J5IHRvIElNZW1vcnkiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBtSGFsQnVmZmVyLnJhdyA9IHN0YXRpY19jYXN0PHZvaWQqPihtSGlkbE1lbW9yeS0+Z2V0UG9pbnRlcigpKTsKKyAgICBpZiAobUhhbEJ1ZmZlci5yYXcgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiSU1lbW9yeSBidWZmZXIgcG9pbnRlciBpcyBudWxsIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgbUhhbEJ1ZmZlci5mcmFtZUNvdW50ID0gbUhpZGxCdWZmZXIuZnJhbWVDb3VudDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXVkaW9CdWZmZXJNYW5hZ2VyLmggYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXVkaW9CdWZmZXJNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ2NTk5NQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdWRpb0J1ZmZlck1hbmFnZXIuaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0F1ZGlvQnVmZmVyTWFuYWdlcl9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0F1ZGlvQnVmZmVyTWFuYWdlcl9IXworCisjaW5jbHVkZSA8bXV0ZXg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdC5oPgorI2luY2x1ZGUgPHV0aWxzL1JlZkJhc2UuaD4KKyNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1NpbmdsZXRvbi5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpBdWRpb0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworY2xhc3MgQXVkaW9CdWZmZXJXcmFwcGVyIDogcHVibGljIFJlZkJhc2UgeworICBwdWJsaWM6CisgICAgZXhwbGljaXQgQXVkaW9CdWZmZXJXcmFwcGVyKGNvbnN0IEF1ZGlvQnVmZmVyJiBidWZmZXIpOworICAgIHZpcnR1YWwgfkF1ZGlvQnVmZmVyV3JhcHBlcigpOworICAgIGJvb2wgaW5pdCgpOworICAgIGF1ZGlvX2J1ZmZlcl90KiBnZXRIYWxCdWZmZXIoKSB7IHJldHVybiAmbUhhbEJ1ZmZlcjsgfQorICBwcml2YXRlOgorICAgIEF1ZGlvQnVmZmVyV3JhcHBlcihjb25zdCBBdWRpb0J1ZmZlcldyYXBwZXImKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShBdWRpb0J1ZmZlcldyYXBwZXIpID0gZGVsZXRlOworCisgICAgQXVkaW9CdWZmZXIgbUhpZGxCdWZmZXI7CisgICAgc3A8SU1lbW9yeT4gbUhpZGxNZW1vcnk7CisgICAgYXVkaW9fYnVmZmVyX3QgbUhhbEJ1ZmZlcjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjppbXBsZW1lbnRhdGlvbjo6QXVkaW9CdWZmZXJXcmFwcGVyOworCituYW1lc3BhY2UgYW5kcm9pZCB7CisKKy8vIFRoaXMgY2xhc3MgbmVlZHMgdG8gYmUgaW4gJ2FuZHJvaWQnIG5zIGJlY2F1c2UgU2luZ2xldG9uIG1hY3JvcyByZXF1aXJlIHRoYXQuCitjbGFzcyBBdWRpb0J1ZmZlck1hbmFnZXIgOiBwdWJsaWMgU2luZ2xldG9uPEF1ZGlvQnVmZmVyTWFuYWdlcj4geworICBwdWJsaWM6CisgICAgYm9vbCB3cmFwKGNvbnN0IEF1ZGlvQnVmZmVyJiBidWZmZXIsIHNwPEF1ZGlvQnVmZmVyV3JhcHBlcj4qIHdyYXBwZXIpOworCisgIHByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIGhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjppbXBsZW1lbnRhdGlvbjo6QXVkaW9CdWZmZXJXcmFwcGVyOworCisgICAgLy8gQ2FsbGVkIGJ5IEF1ZGlvQnVmZmVyV3JhcHBlci4KKyAgICB2b2lkIHJlbW92ZUVudHJ5KHVpbnQ2NF90IGlkKTsKKworICAgIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgS2V5ZWRWZWN0b3I8dWludDY0X3QsIHdwPEF1ZGlvQnVmZmVyV3JhcHBlcj4+IG1CdWZmZXJzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0F1ZGlvQnVmZmVyTWFuYWdlcl9IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0F1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJmZTVmNwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5jcHAKQEAgLTAsMCArMSwyMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkFHQ19FZmZlY3RfSEFMIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OkF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpIHsKK30KKworQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6On5BdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdCgpIHt9CisKK3ZvaWQgQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICBjb25zdCB0X2FnY19zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpBbGxQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzKSB7CisgICAgcHJvcGVydGllcy0+dGFyZ2V0TGV2ZWxNYiA9IGhhbFByb3BlcnRpZXMudGFyZ2V0TGV2ZWw7CisgICAgcHJvcGVydGllcy0+Y29tcEdhaW5NYiA9IGhhbFByb3BlcnRpZXMuY29tcEdhaW47CisgICAgcHJvcGVydGllcy0+bGltaXRlckVuYWJsZWQgPSBoYWxQcm9wZXJ0aWVzLmxpbWl0ZXJFbmFibGVkOworfQorCit2b2lkIEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0Ojpwcm9wZXJ0aWVzVG9IYWwoCisgICAgICAgIGNvbnN0IElBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6QWxsUHJvcGVydGllcyYgcHJvcGVydGllcywKKyAgICAgICAgdF9hZ2Nfc2V0dGluZ3MqIGhhbFByb3BlcnRpZXMpIHsKKyAgICBoYWxQcm9wZXJ0aWVzLT50YXJnZXRMZXZlbCA9IHByb3BlcnRpZXMudGFyZ2V0TGV2ZWxNYjsKKyAgICBoYWxQcm9wZXJ0aWVzLT5jb21wR2FpbiA9IHByb3BlcnRpZXMuY29tcEdhaW5NYjsKKyAgICBoYWxQcm9wZXJ0aWVzLT5saW1pdGVyRW5hYmxlZCA9IHByb3BlcnRpZXMubGltaXRlckVuYWJsZWQ7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0Ojppbml0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5pbml0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6cmVzZXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnJlc2V0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjplbmFibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmVuYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6ZGlzYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZGlzYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEFuZEdldFZvbHVtZSh2b2x1bWVzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgeworICAgIHJldHVybiBtRWZmZWN0LT52b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24odm9sdW1lcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Nb2RlKG1vZGUpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldElucHV0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6Z2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWdSZXZlcnNlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MobWF4Q29uZmlncywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEF1eENoYW5uZWxzQ29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnNldEF1eENoYW5uZWxzQ29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Tb3VyY2Uoc291cmNlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6Om9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+b2ZmbG9hZChwYXJhbSk7Cit9CisKK1JldHVybjx2b2lkPiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6Z2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldERlc2NyaXB0b3IoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKAorICAgICAgICBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFByb2Nlc3NCdWZmZXJzKGluQnVmZmVyLCBvdXRCdWZmZXIpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmNvbW1hbmQoCisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y29tbWFuZChjb21tYW5kSWQsIGRhdGEsIHJlc3VsdE1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnNldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpnZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlTWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKGZlYXR1cmVJZCwgbWF4Q29uZmlncywgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdEYXRhKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmNsb3NlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5jbG9zZSgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRUYXJnZXRMZXZlbChpbnQxNl90IHRhcmdldExldmVsTWIpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKEFHQ19QQVJBTV9UQVJHRVRfTEVWRUwsIHRhcmdldExldmVsTWIpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldFRhcmdldExldmVsKGdldFRhcmdldExldmVsX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oQUdDX1BBUkFNX1RBUkdFVF9MRVZFTCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0Q29tcEdhaW4oaW50MTZfdCBjb21wR2Fpbk1iKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShBR0NfUEFSQU1fQ09NUF9HQUlOLCBjb21wR2Fpbk1iKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpnZXRDb21wR2FpbihnZXRDb21wR2Fpbl9jYiBfaGlkbF9jYikgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0SW50ZWdlclBhcmFtKEFHQ19QQVJBTV9DT01QX0dBSU4sIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnNldExpbWl0ZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oQUdDX1BBUkFNX0xJTUlURVJfRU5BLCBlbmFibGVkKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0Ojppc0xpbWl0ZXJFbmFibGVkKGlzTGltaXRlckVuYWJsZWRfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShBR0NfUEFSQU1fTElNSVRFUl9FTkEsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnNldEFsbFByb3BlcnRpZXMoY29uc3QgSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKSAgeworICAgIHRfYWdjX3NldHRpbmdzIGhhbFByb3BlcnRpZXM7CisgICAgcHJvcGVydGllc1RvSGFsKHByb3BlcnRpZXMsICZoYWxQcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oQUdDX1BBUkFNX1BST1BFUlRJRVMsIGhhbFByb3BlcnRpZXMpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldEFsbFByb3BlcnRpZXMoZ2V0QWxsUHJvcGVydGllc19jYiBfaGlkbF9jYikgIHsKKyAgICB0X2FnY19zZXR0aW5ncyBoYWxQcm9wZXJ0aWVzOworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbShBR0NfUEFSQU1fUFJPUEVSVElFUywgaGFsUHJvcGVydGllcyk7CisgICAgQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzOworICAgIHByb3BlcnRpZXNGcm9tSGFsKGhhbFByb3BlcnRpZXMsICZwcm9wZXJ0aWVzKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIHByb3BlcnRpZXMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlMWYyNzkKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaApAQCAtMCwwICsxLDEzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9BVVRPTUFUSUNHQUlOQ09OVFJPTEVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfQVVUT01BVElDR0FJTkNPTlRST0xFRkZFQ1RfSAorCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2FnYy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSAiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdCA6IHB1YmxpYyBJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QgeworICAgIGV4cGxpY2l0IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRUYXJnZXRMZXZlbChpbnQxNl90IHRhcmdldExldmVsTWIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0VGFyZ2V0TGV2ZWwoZ2V0VGFyZ2V0TGV2ZWxfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb21wR2FpbihpbnQxNl90IGNvbXBHYWluTWIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29tcEdhaW4oZ2V0Q29tcEdhaW5fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRMaW1pdGVyRW5hYmxlZChib29sIGVuYWJsZWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gaXNMaW1pdGVyRW5hYmxlZChpc0xpbWl0ZXJFbmFibGVkX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QWxsUHJvcGVydGllcygKKyAgICAgICAgICAgIGNvbnN0IElBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6QWxsUHJvcGVydGllcyYgcHJvcGVydGllcykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBbGxQcm9wZXJ0aWVzKGdldEFsbFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPEVmZmVjdD4gbUVmZmVjdDsKKworICAgIHZpcnR1YWwgfkF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0KCk7CisKKyAgICB2b2lkIHByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICAgICAgY29uc3QgdF9hZ2Nfc2V0dGluZ3MmIGhhbFByb3BlcnRpZXMsCisgICAgICAgICAgICBJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OkFsbFByb3BlcnRpZXMqIHByb3BlcnRpZXMpOworICAgIHZvaWQgcHJvcGVydGllc1RvSGFsKAorICAgICAgICAgICAgY29uc3QgSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICAgICAgdF9hZ2Nfc2V0dGluZ3MqIGhhbFByb3BlcnRpZXMpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9BVVRPTUFUSUNHQUlOQ09OVFJPTEVGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQmFzc0Jvb3N0RWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9CYXNzQm9vc3RFZmZlY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMzVlNWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQmFzc0Jvb3N0RWZmZWN0LmNwcApAQCAtMCwwICsxLDE5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQmFzc0Jvb3N0X0hBTCIKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfYmFzc2Jvb3N0Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkJhc3NCb29zdEVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworQmFzc0Jvb3N0RWZmZWN0OjpCYXNzQm9vc3RFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitCYXNzQm9vc3RFZmZlY3Q6On5CYXNzQm9vc3RFZmZlY3QoKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OmluaXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmluaXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpzZXRDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OnJlc2V0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5yZXNldCgpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OmVuYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZW5hYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6ZGlzYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZGlzYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OnNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKHZvbHVtZXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgeworICAgIHJldHVybiBtRWZmZWN0LT52b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24odm9sdW1lcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvTW9kZShtb2RlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpzZXRDb25maWdSZXZlcnNlKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZ1JldmVyc2UoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldElucHV0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OmdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEJhc3NCb29zdEVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZ1JldmVyc2UoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQmFzc0Jvb3N0RWZmZWN0OjpnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MobWF4Q29uZmlncywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQmFzc0Jvb3N0RWZmZWN0OjpnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRBdXhDaGFubmVsc0NvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6c2V0QXV4Q2hhbm5lbHNDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXV4Q2hhbm5lbHNDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Tb3VyY2Uoc291cmNlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPm9mZmxvYWQocGFyYW0pOworfQorCitSZXR1cm48dm9pZD4gQmFzc0Jvb3N0RWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0RGVzY3JpcHRvcihfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKAorICAgICAgICBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6c2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQcm9jZXNzQnVmZmVycyhpbkJ1ZmZlciwgb3V0QnVmZmVyKTsKK30KKworUmV0dXJuPHZvaWQ+IEJhc3NCb29zdEVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5jb21tYW5kKGNvbW1hbmRJZCwgZGF0YSwgcmVzdWx0TWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OnNldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlKTsKK30KKworUmV0dXJuPHZvaWQ+IEJhc3NCb29zdEVmZmVjdDo6Z2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZU1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEJhc3NCb29zdEVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBtYXhDb25maWdzLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnRGF0YSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6Y2xvc2UoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNsb3NlKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQmFzc0Jvb3N0RWZmZWN0IGZvbGxvdy4KK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OmlzU3RyZW5ndGhTdXBwb3J0ZWQoaXNTdHJlbmd0aFN1cHBvcnRlZF9jYiBfaGlkbF9jYikgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0SW50ZWdlclBhcmFtKEJBU1NCT09TVF9QQVJBTV9TVFJFTkdUSF9TVVBQT1JURUQsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpzZXRTdHJlbmd0aCh1aW50MTZfdCBzdHJlbmd0aCkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oQkFTU0JPT1NUX1BBUkFNX1NUUkVOR1RILCBzdHJlbmd0aCk7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OmdldFN0cmVuZ3RoKGdldFN0cmVuZ3RoX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oQkFTU0JPT1NUX1BBUkFNX1NUUkVOR1RILCBfaGlkbF9jYik7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQmFzc0Jvb3N0RWZmZWN0LmggYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQmFzc0Jvb3N0RWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU1MDUzYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9CYXNzQm9vc3RFZmZlY3QuaApAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9CQVNTQk9PU1RFRkZFQ1RfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0JBU1NCT09TVEVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUJhc3NCb29zdEVmZmVjdC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSAiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQmFzc0Jvb3N0RWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgQmFzc0Jvb3N0RWZmZWN0IDogcHVibGljIElCYXNzQm9vc3RFZmZlY3QgeworICAgIGV4cGxpY2l0IEJhc3NCb29zdEVmZmVjdChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBpbml0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZygKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlc2V0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGVuYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBkaXNhYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiB2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdXhDaGFubmVsc0NvbmZpZyhjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gb2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJlcGFyZUZvclByb2Nlc3NpbmcocHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjb21tYW5kKAorICAgICAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlKCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklCYXNzQm9vc3RFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBpc1N0cmVuZ3RoU3VwcG9ydGVkKGlzU3RyZW5ndGhTdXBwb3J0ZWRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRTdHJlbmd0aCh1aW50MTZfdCBzdHJlbmd0aCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdHJlbmd0aChnZXRTdHJlbmd0aF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+QmFzc0Jvb3N0RWZmZWN0KCk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0JBU1NCT09TVEVGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2Q0YzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeS5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpbmNsdWRlICJDb252ZXJzaW9ucy5oIgorI2luY2x1ZGUgIkhpZGxVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordm9pZCBlZmZlY3REZXNjcmlwdG9yRnJvbUhhbCgKKyAgICAgICAgY29uc3QgZWZmZWN0X2Rlc2NyaXB0b3JfdCYgaGFsRGVzY3JpcHRvciwgRWZmZWN0RGVzY3JpcHRvciogZGVzY3JpcHRvcikgeworICAgIEhpZGxVdGlsczo6dXVpZEZyb21IYWwoaGFsRGVzY3JpcHRvci50eXBlLCAmZGVzY3JpcHRvci0+dHlwZSk7CisgICAgSGlkbFV0aWxzOjp1dWlkRnJvbUhhbChoYWxEZXNjcmlwdG9yLnV1aWQsICZkZXNjcmlwdG9yLT51dWlkKTsKKyAgICBkZXNjcmlwdG9yLT5mbGFncyA9IEVmZmVjdEZsYWdzKGhhbERlc2NyaXB0b3IuZmxhZ3MpOworICAgIGRlc2NyaXB0b3ItPmNwdUxvYWQgPSBoYWxEZXNjcmlwdG9yLmNwdUxvYWQ7CisgICAgZGVzY3JpcHRvci0+bWVtb3J5VXNhZ2UgPSBoYWxEZXNjcmlwdG9yLm1lbW9yeVVzYWdlOworICAgIG1lbWNweShkZXNjcmlwdG9yLT5uYW1lLmRhdGEoKSwgaGFsRGVzY3JpcHRvci5uYW1lLCBkZXNjcmlwdG9yLT5uYW1lLnNpemUoKSk7CisgICAgbWVtY3B5KGRlc2NyaXB0b3ItPmltcGxlbWVudG9yLmRhdGEoKSwKKyAgICAgICAgICAgIGhhbERlc2NyaXB0b3IuaW1wbGVtZW50b3IsIGRlc2NyaXB0b3ItPmltcGxlbWVudG9yLnNpemUoKSk7Cit9CisKK3N0ZDo6c3RyaW5nIHV1aWRUb1N0cmluZyhjb25zdCBlZmZlY3RfdXVpZF90JiBoYWxVdWlkKSB7CisgICAgY2hhciBzdHJbNjRdOworICAgIHNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0ciksICIlMDh4LSUwNHgtJTA0eC0lMDR4LSUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCIsCisgICAgICAgICAgICBoYWxVdWlkLnRpbWVMb3csCisgICAgICAgICAgICBoYWxVdWlkLnRpbWVNaWQsCisgICAgICAgICAgICBoYWxVdWlkLnRpbWVIaUFuZFZlcnNpb24sCisgICAgICAgICAgICBoYWxVdWlkLmNsb2NrU2VxLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzBdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzFdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzJdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzNdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzRdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzVdKTsKKyAgICByZXR1cm4gc3RyOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmggYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2VmMzYyCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdWRpb19lZmZlY3RfVjJfMF9Db252ZXJzaW9uc19IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0NvbnZlcnNpb25zX0hfCisKKyNpbmNsdWRlIDxzdHJpbmc+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0Lmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOworCit2b2lkIGVmZmVjdERlc2NyaXB0b3JGcm9tSGFsKAorICAgICAgICBjb25zdCBlZmZlY3RfZGVzY3JpcHRvcl90JiBoYWxEZXNjcmlwdG9yLCBFZmZlY3REZXNjcmlwdG9yKiBkZXNjcmlwdG9yKTsKK3N0ZDo6c3RyaW5nIHV1aWRUb1N0cmluZyhjb25zdCBlZmZlY3RfdXVpZF90JiBoYWxVdWlkKTsKKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0NvbnZlcnNpb25zX0hfCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRG93bm1peEVmZmVjdC5jcHAgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRG93bm1peEVmZmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJmMTViZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Eb3dubWl4RWZmZWN0LmNwcApAQCAtMCwwICsxLDE5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiRG93bm1peF9IQUwiCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2Rvd25taXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSAiRG93bm1peEVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworRG93bm1peEVmZmVjdDo6RG93bm1peEVmZmVjdChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKQorICAgICAgICA6IG1FZmZlY3QobmV3IEVmZmVjdChoYW5kbGUpKSB7Cit9CisKK0Rvd25taXhFZmZlY3Q6On5Eb3dubWl4RWZmZWN0KCkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6aW5pdCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+aW5pdCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXRDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6ZW5hYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5lbmFibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6ZGlzYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZGlzYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gRG93bm1peEVmZmVjdDo6c2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBbmRHZXRWb2x1bWUodm9sdW1lcywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgeworICAgIHJldHVybiBtRWZmZWN0LT52b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24odm9sdW1lcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldENvbmZpZ1JldmVyc2UoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnUmV2ZXJzZShjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldElucHV0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0OjpnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnUmV2ZXJzZShfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0OjpnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MobWF4Q29uZmlncywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRG93bm1peEVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXRBdXhDaGFubmVsc0NvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdXhDaGFubmVsc0NvbmZpZyhjb25maWcpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Tb3VyY2Uoc291cmNlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OmdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXREZXNjcmlwdG9yKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKAorICAgICAgICBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0Ojpjb21tYW5kKAorICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNvbW1hbmQoY29tbWFuZElkLCBkYXRhLCByZXN1bHRNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0OjpnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZShmZWF0dXJlSWQsIG1heENvbmZpZ3MsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpjbG9zZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y2xvc2UoKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklEb3dubWl4RWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldFR5cGUoSURvd25taXhFZmZlY3Q6OlR5cGUgcHJlc2V0KSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShET1dOTUlYX1BBUkFNX1RZUEUsIHN0YXRpY19jYXN0PGRvd25taXhfdHlwZV90PihwcmVzZXQpKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OmdldFR5cGUoZ2V0VHlwZV9jYiBfaGlkbF9jYikgIHsKKyAgICBkb3dubWl4X3R5cGVfdCBoYWxQcmVzZXQgPSBET1dOTUlYX1RZUEVfSU5WQUxJRDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oRE9XTk1JWF9QQVJBTV9UWVBFLCBoYWxQcmVzZXQpOworICAgIF9oaWRsX2NiKHJldHZhbCwgVHlwZShoYWxQcmVzZXQpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0Rvd25taXhFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Eb3dubWl4RWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI1ZjM0ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Eb3dubWl4RWZmZWN0LmgKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRE9XTk1JWEVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRE9XTk1JWEVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSURvd25taXhFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SURvd25taXhFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBEb3dubWl4RWZmZWN0IDogcHVibGljIElEb3dubWl4RWZmZWN0IHsKKyAgICBleHBsaWNpdCBEb3dubWl4RWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SURvd25taXhFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IHNldFR5cGUoSURvd25taXhFZmZlY3Q6OlR5cGUgcHJlc2V0KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFR5cGUoZ2V0VHlwZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+RG93bm1peEVmZmVjdCgpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9ET1dOTUlYRUZGRUNUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FZmZlY3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQzNjYwNAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FZmZlY3QuY3BwCkBAIC0wLDAgKzEsNzY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeS5oPgorCisjZGVmaW5lIExPR19UQUcgIkVmZmVjdEhBTCIKKyNkZWZpbmUgQVRSQUNFX1RBRyBBVFJBQ0VfVEFHX0FVRElPCisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPG1lZGlhL0VmZmVjdHNGYWN0b3J5QXBpLmg+CisjaW5jbHVkZSA8dXRpbHMvVHJhY2UuaD4KKworI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisjaW5jbHVkZSAiRWZmZWN0LmgiCisjaW5jbHVkZSAiRWZmZWN0TWFwLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NoYW5uZWxNYXNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Gb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpNZXNzYWdlUXVldWVGbGFnQml0czsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgUHJvY2Vzc1RocmVhZCA6IHB1YmxpYyBUaHJlYWQgeworICBwdWJsaWM6CisgICAgLy8gUHJvY2Vzc1RocmVhZCdzIGxpZmVzcGFuIG5ldmVyIGV4Y2VlZHMgRWZmZWN0J3MgbGlmZXNwYW4uCisgICAgUHJvY2Vzc1RocmVhZChzdGQ6OmF0b21pYzxib29sPiogc3RvcCwKKyAgICAgICAgICAgIGVmZmVjdF9oYW5kbGVfdCBlZmZlY3QsCisgICAgICAgICAgICBzdGQ6OmF0b21pYzxhdWRpb19idWZmZXJfdCo+KiBpbkJ1ZmZlciwKKyAgICAgICAgICAgIHN0ZDo6YXRvbWljPGF1ZGlvX2J1ZmZlcl90Kj4qIG91dEJ1ZmZlciwKKyAgICAgICAgICAgIEVmZmVjdDo6U3RhdHVzTVEqIHN0YXR1c01RLAorICAgICAgICAgICAgRXZlbnRGbGFnKiBlZkdyb3VwKQorICAgICAgICAgICAgOiBUaHJlYWQoZmFsc2UgLypjYW5DYWxsSmF2YSovKSwKKyAgICAgICAgICAgICAgbVN0b3Aoc3RvcCksCisgICAgICAgICAgICAgIG1FZmZlY3QoZWZmZWN0KSwKKyAgICAgICAgICAgICAgbUhhc1Byb2Nlc3NSZXZlcnNlKCgqbUVmZmVjdCktPnByb2Nlc3NfcmV2ZXJzZSAhPSBOVUxMKSwKKyAgICAgICAgICAgICAgbUluQnVmZmVyKGluQnVmZmVyKSwKKyAgICAgICAgICAgICAgbU91dEJ1ZmZlcihvdXRCdWZmZXIpLAorICAgICAgICAgICAgICBtU3RhdHVzTVEoc3RhdHVzTVEpLAorICAgICAgICAgICAgICBtRWZHcm91cChlZkdyb3VwKSB7CisgICAgfQorICAgIHZpcnR1YWwgflByb2Nlc3NUaHJlYWQoKSB7fQorCisgIHByaXZhdGU6CisgICAgc3RkOjphdG9taWM8Ym9vbD4qIG1TdG9wOworICAgIGVmZmVjdF9oYW5kbGVfdCBtRWZmZWN0OworICAgIGJvb2wgbUhhc1Byb2Nlc3NSZXZlcnNlOworICAgIHN0ZDo6YXRvbWljPGF1ZGlvX2J1ZmZlcl90Kj4qIG1JbkJ1ZmZlcjsKKyAgICBzdGQ6OmF0b21pYzxhdWRpb19idWZmZXJfdCo+KiBtT3V0QnVmZmVyOworICAgIEVmZmVjdDo6U3RhdHVzTVEqIG1TdGF0dXNNUTsKKyAgICBFdmVudEZsYWcqIG1FZkdyb3VwOworCisgICAgYm9vbCB0aHJlYWRMb29wKCkgb3ZlcnJpZGU7Cit9OworCitib29sIFByb2Nlc3NUaHJlYWQ6OnRocmVhZExvb3AoKSB7CisgICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJldHVybiBjb250cm9sIGJhY2sgdG8gdGhlIFRocmVhZCB1bnRpbCBpdCBkZWNpZGVzIHRvIHN0b3AsCisgICAgLy8gYXMgdGhlIFRocmVhZCB1c2VzIG11dGV4ZXMsIGFuZCB0aGlzIGNhbiBsZWFkIHRvIHByaW9yaXR5IGludmVyc2lvbi4KKyAgICB3aGlsZSghc3RkOjphdG9taWNfbG9hZF9leHBsaWNpdChtU3RvcCwgc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSkpIHsKKyAgICAgICAgdWludDMyX3QgZWZTdGF0ZSA9IDA7CisgICAgICAgIG1FZkdyb3VwLT53YWl0KHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6UkVRVUVTVF9QUk9DRVNTX0FMTCksICZlZlN0YXRlKTsKKyAgICAgICAgaWYgKCEoZWZTdGF0ZSAmIHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6UkVRVUVTVF9QUk9DRVNTX0FMTCkpCisgICAgICAgICAgICAgICAgfHwgKGVmU3RhdGUgJiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6OlJFUVVFU1RfUVVJVCkpKSB7CisgICAgICAgICAgICBjb250aW51ZTsgIC8vIE5vdGhpbmcgdG8gZG8gb3IgdGltZSB0byBxdWl0LgorICAgICAgICB9CisgICAgICAgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok9LOworICAgICAgICBpZiAoZWZTdGF0ZSAmIHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6UkVRVUVTVF9QUk9DRVNTX1JFVkVSU0UpCisgICAgICAgICAgICAgICAgJiYgIW1IYXNQcm9jZXNzUmV2ZXJzZSkgeworICAgICAgICAgICAgcmV0dmFsID0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAvLyBhZmZlY3RzIGJvdGggYnVmZmVyIHBvaW50ZXJzIGFuZCB0aGVpciBjb250ZW50cy4KKyAgICAgICAgICAgIHN0ZDo6YXRvbWljX3RocmVhZF9mZW5jZShzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1aXJlKTsKKyAgICAgICAgICAgIGludDMyX3QgcHJvY2Vzc1Jlc3VsdDsKKyAgICAgICAgICAgIGF1ZGlvX2J1ZmZlcl90KiBpbkJ1ZmZlciA9CisgICAgICAgICAgICAgICAgICAgIHN0ZDo6YXRvbWljX2xvYWRfZXhwbGljaXQobUluQnVmZmVyLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxheGVkKTsKKyAgICAgICAgICAgIGF1ZGlvX2J1ZmZlcl90KiBvdXRCdWZmZXIgPQorICAgICAgICAgICAgICAgICAgICBzdGQ6OmF0b21pY19sb2FkX2V4cGxpY2l0KG1PdXRCdWZmZXIsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOworICAgICAgICAgICAgaWYgKGluQnVmZmVyICE9IG51bGxwdHIgJiYgb3V0QnVmZmVyICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZWZTdGF0ZSAmIHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6UkVRVUVTVF9QUk9DRVNTKSkgeworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzUmVzdWx0ID0gKCptRWZmZWN0KS0+cHJvY2VzcyhtRWZmZWN0LCBpbkJ1ZmZlciwgb3V0QnVmZmVyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzUmVzdWx0ID0gKCptRWZmZWN0KS0+cHJvY2Vzc19yZXZlcnNlKG1FZmZlY3QsIGluQnVmZmVyLCBvdXRCdWZmZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdGQ6OmF0b21pY190aHJlYWRfZmVuY2Uoc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dFKCJwcm9jZXNzaW5nIGJ1ZmZlcnMgd2VyZSBub3Qgc2V0IGJlZm9yZSBjYWxsaW5nICdwcm9jZXNzJyIpOworICAgICAgICAgICAgICAgIHByb2Nlc3NSZXN1bHQgPSAtRU5PREVWOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3dpdGNoKHByb2Nlc3NSZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6IHJldHZhbCA9IFJlc3VsdDo6T0s7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgLUVOT0RBVEE6IHJldHZhbCA9IFJlc3VsdDo6SU5WQUxJRF9TVEFURTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAtRUlOVkFMOiByZXR2YWwgPSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOyBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OiByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIW1TdGF0dXNNUS0+d3JpdGUoJnJldHZhbCkpIHsKKyAgICAgICAgICAgIEFMT0dXKCJzdGF0dXMgbWVzc2FnZSBxdWV1ZSB3cml0ZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBtRWZHcm91cC0+d2FrZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6OkRPTkVfUFJPQ0VTU0lORykpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAgLy8gbmFtZXNwYWNlCisKKy8vIHN0YXRpYworY29uc3QgY2hhciAqRWZmZWN0OjpzQ29udGV4dFJlc3VsdE9mQ29tbWFuZCA9ICJyZXR1cm5lZCBzdGF0dXMiOworY29uc3QgY2hhciAqRWZmZWN0OjpzQ29udGV4dENhbGxUb0NvbW1hbmQgPSAiZXJyb3IiOworY29uc3QgY2hhciAqRWZmZWN0OjpzQ29udGV4dENhbGxGdW5jdGlvbiA9IHNDb250ZXh0Q2FsbFRvQ29tbWFuZDsKKworRWZmZWN0OjpFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtSXNDbG9zZWQoZmFsc2UpLCBtSGFuZGxlKGhhbmRsZSksIG1FZkdyb3VwKG51bGxwdHIpLCBtU3RvcFByb2Nlc3NUaHJlYWQoZmFsc2UpIHsKK30KKworRWZmZWN0Ojp+RWZmZWN0KCkgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgY2xvc2UoKTsKKyAgICBpZiAobVByb2Nlc3NUaHJlYWQuZ2V0KCkpIHsKKyAgICAgICAgQVRSQUNFX05BTUUoIm1Qcm9jZXNzVGhyZWFkLT5qb2luIik7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1Qcm9jZXNzVGhyZWFkLT5qb2luKCk7CisgICAgICAgIEFMT0dFX0lGKHN0YXR1cywgInByb2Nlc3NpbmcgdGhyZWFkIGV4aXQgZXJyb3I6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBpZiAobUVmR3JvdXApIHsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gRXZlbnRGbGFnOjpkZWxldGVFdmVudEZsYWcoJm1FZkdyb3VwKTsKKyAgICAgICAgQUxPR0VfSUYoc3RhdHVzLCAicHJvY2Vzc2luZyBNUSBldmVudCBmbGFnIGRlbGV0aW9uIGVycm9yOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICB9CisgICAgbUluQnVmZmVyLmNsZWFyKCk7CisgICAgbU91dEJ1ZmZlci5jbGVhcigpOworICAgIGludCBzdGF0dXMgPSBFZmZlY3RSZWxlYXNlKG1IYW5kbGUpOworICAgIEFMT0dXX0lGKHN0YXR1cywgIkVycm9yIHJlbGVhc2luZyBlZmZlY3QgJXA6ICVzIiwgbUhhbmRsZSwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIEVmZmVjdE1hcDo6Z2V0SW5zdGFuY2UoKS5yZW1vdmUobUhhbmRsZSk7CisgICAgbUhhbmRsZSA9IDA7Cit9CisKKy8vIHN0YXRpYwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc2l6ZV90IEVmZmVjdDo6YWxpZ25lZFNpemVJbihzaXplX3QgcykgeworICAgIHJldHVybiAocyArIHNpemVvZihUKSAtIDEpIC8gc2l6ZW9mKFQpOworfQorCisvLyBzdGF0aWMKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IEVmZmVjdDo6aGlkbFZlY1RvSGFsKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxUPiYgdmVjLCB1aW50MzJfdCogaGFsRGF0YVNpemUpIHsKKyAgICAvLyBEdWUgdG8gYnVncyBpbiBIQUwsIHRoZXkgbWF5IGF0dGVtcHQgdG8gd3JpdGUgaW50byB0aGUgcHJvdmlkZWQKKyAgICAvLyBpbnB1dCBidWZmZXIuIFRoZSBvcmlnaW5hbCBiaW5kZXIgYnVmZmVyIGlzIHIvbywgdGh1cyBpdCBpcyBuZWVkZWQKKyAgICAvLyB0byBjcmVhdGUgYSByL3cgdmVyc2lvbi4KKyAgICAqaGFsRGF0YVNpemUgPSB2ZWMuc2l6ZSgpICogc2l6ZW9mKFQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGhhbERhdGEobmV3IHVpbnQ4X3RbKmhhbERhdGFTaXplXSk7CisgICAgbWVtY3B5KCZoYWxEYXRhWzBdLCAmdmVjWzBdLCAqaGFsRGF0YVNpemUpOworICAgIHJldHVybiBoYWxEYXRhOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RBdXhDaGFubmVsc0NvbmZpZ0Zyb21IYWwoCisgICAgICAgIGNvbnN0IGNoYW5uZWxfY29uZmlnX3QmIGhhbENvbmZpZywgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcqIGNvbmZpZykgeworICAgIGNvbmZpZy0+bWFpbkNoYW5uZWxzID0gQXVkaW9DaGFubmVsTWFzayhoYWxDb25maWcubWFpbl9jaGFubmVscyk7CisgICAgY29uZmlnLT5hdXhDaGFubmVscyA9IEF1ZGlvQ2hhbm5lbE1hc2soaGFsQ29uZmlnLmF1eF9jaGFubmVscyk7Cit9CisKKy8vIHN0YXRpYwordm9pZCBFZmZlY3Q6OmVmZmVjdEF1eENoYW5uZWxzQ29uZmlnVG9IYWwoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcsIGNoYW5uZWxfY29uZmlnX3QqIGhhbENvbmZpZykgeworICAgIGhhbENvbmZpZy0+bWFpbl9jaGFubmVscyA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190Pihjb25maWcubWFpbkNoYW5uZWxzKTsKKyAgICBoYWxDb25maWctPmF1eF9jaGFubmVscyA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190Pihjb25maWcuYXV4Q2hhbm5lbHMpOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RCdWZmZXJDb25maWdGcm9tSGFsKAorICAgICAgICBjb25zdCBidWZmZXJfY29uZmlnX3QmIGhhbENvbmZpZywgRWZmZWN0QnVmZmVyQ29uZmlnKiBjb25maWcpIHsKKyAgICBjb25maWctPmJ1ZmZlci5pZCA9IDA7CisgICAgY29uZmlnLT5idWZmZXIuZnJhbWVDb3VudCA9IDA7CisgICAgY29uZmlnLT5zYW1wbGluZ1JhdGVIeiA9IGhhbENvbmZpZy5zYW1wbGluZ1JhdGU7CisgICAgY29uZmlnLT5jaGFubmVscyA9IEF1ZGlvQ2hhbm5lbE1hc2soaGFsQ29uZmlnLmNoYW5uZWxzKTsKKyAgICBjb25maWctPmZvcm1hdCA9IEF1ZGlvRm9ybWF0KGhhbENvbmZpZy5mb3JtYXQpOworICAgIGNvbmZpZy0+YWNjZXNzTW9kZSA9IEVmZmVjdEJ1ZmZlckFjY2VzcyhoYWxDb25maWcuYWNjZXNzTW9kZSk7CisgICAgY29uZmlnLT5tYXNrID0gRWZmZWN0Q29uZmlnUGFyYW1ldGVycyhoYWxDb25maWcubWFzayk7Cit9CisKKy8vIHN0YXRpYwordm9pZCBFZmZlY3Q6OmVmZmVjdEJ1ZmZlckNvbmZpZ1RvSGFsKGNvbnN0IEVmZmVjdEJ1ZmZlckNvbmZpZyYgY29uZmlnLCBidWZmZXJfY29uZmlnX3QqIGhhbENvbmZpZykgeworICAgIC8vIE5vdGU6IHNldHRpbmcgdGhlIGJ1ZmZlcnMgZGlyZWN0bHkgaXMgY29uc2lkZXJlZCBvYnNvbGV0ZS4gVGhleSBuZWVkIHRvIGJlIHNldAorICAgIC8vIHVzaW5nICdzZXRQcm9jZXNzQnVmZmVycycuCisgICAgaGFsQ29uZmlnLT5idWZmZXIuZnJhbWVDb3VudCA9IDA7CisgICAgaGFsQ29uZmlnLT5idWZmZXIucmF3ID0gTlVMTDsKKyAgICBoYWxDb25maWctPnNhbXBsaW5nUmF0ZSA9IGNvbmZpZy5zYW1wbGluZ1JhdGVIejsKKyAgICBoYWxDb25maWctPmNoYW5uZWxzID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGNvbmZpZy5jaGFubmVscyk7CisgICAgLy8gTm90ZTogVGhlIGZyYW1ld29yayBjb2RlIGRvZXMgbm90IHVzZSBCUC4KKyAgICBoYWxDb25maWctPmJ1ZmZlclByb3ZpZGVyLmNvb2tpZSA9IE5VTEw7CisgICAgaGFsQ29uZmlnLT5idWZmZXJQcm92aWRlci5nZXRCdWZmZXIgPSBOVUxMOworICAgIGhhbENvbmZpZy0+YnVmZmVyUHJvdmlkZXIucmVsZWFzZUJ1ZmZlciA9IE5VTEw7CisgICAgaGFsQ29uZmlnLT5mb3JtYXQgPSBzdGF0aWNfY2FzdDx1aW50OF90Pihjb25maWcuZm9ybWF0KTsKKyAgICBoYWxDb25maWctPmFjY2Vzc01vZGUgPSBzdGF0aWNfY2FzdDx1aW50OF90Pihjb25maWcuYWNjZXNzTW9kZSk7CisgICAgaGFsQ29uZmlnLT5tYXNrID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oY29uZmlnLm1hc2spOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RDb25maWdGcm9tSGFsKGNvbnN0IGVmZmVjdF9jb25maWdfdCYgaGFsQ29uZmlnLCBFZmZlY3RDb25maWcqIGNvbmZpZykgeworICAgIGVmZmVjdEJ1ZmZlckNvbmZpZ0Zyb21IYWwoaGFsQ29uZmlnLmlucHV0Q2ZnLCAmY29uZmlnLT5pbnB1dENmZyk7CisgICAgZWZmZWN0QnVmZmVyQ29uZmlnRnJvbUhhbChoYWxDb25maWcub3V0cHV0Q2ZnLCAmY29uZmlnLT5vdXRwdXRDZmcpOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RDb25maWdUb0hhbChjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywgZWZmZWN0X2NvbmZpZ190KiBoYWxDb25maWcpIHsKKyAgICBlZmZlY3RCdWZmZXJDb25maWdUb0hhbChjb25maWcuaW5wdXRDZmcsICZoYWxDb25maWctPmlucHV0Q2ZnKTsKKyAgICBlZmZlY3RCdWZmZXJDb25maWdUb0hhbChjb25maWcub3V0cHV0Q2ZnLCAmaGFsQ29uZmlnLT5vdXRwdXRDZmcpOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RPZmZsb2FkUGFyYW1Ub0hhbCgKKyAgICAgICAgY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgb2ZmbG9hZCwgZWZmZWN0X29mZmxvYWRfcGFyYW1fdCogaGFsT2ZmbG9hZCkgeworICAgIGhhbE9mZmxvYWQtPmlzT2ZmbG9hZCA9IG9mZmxvYWQuaXNPZmZsb2FkOworICAgIGhhbE9mZmxvYWQtPmlvSGFuZGxlID0gb2ZmbG9hZC5pb0hhbmRsZTsKK30KKworLy8gc3RhdGljCitzdGQ6OnZlY3Rvcjx1aW50OF90PiBFZmZlY3Q6OnBhcmFtZXRlclRvSGFsKAorICAgICAgICB1aW50MzJfdCBwYXJhbVNpemUsCisgICAgICAgIGNvbnN0IHZvaWQqIHBhcmFtRGF0YSwKKyAgICAgICAgdWludDMyX3QgdmFsdWVTaXplLAorICAgICAgICBjb25zdCB2b2lkKiogdmFsdWVEYXRhKSB7CisgICAgc2l6ZV90IHZhbHVlT2Zmc2V0RnJvbURhdGEgPSBhbGlnbmVkU2l6ZUluPHVpbnQzMl90PihwYXJhbVNpemUpICogc2l6ZW9mKHVpbnQzMl90KTsKKyAgICBzaXplX3QgaGFsUGFyYW1CdWZmZXJTaXplID0gc2l6ZW9mKGVmZmVjdF9wYXJhbV90KSArIHZhbHVlT2Zmc2V0RnJvbURhdGEgKyB2YWx1ZVNpemU7CisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gaGFsUGFyYW1CdWZmZXIoaGFsUGFyYW1CdWZmZXJTaXplLCAwKTsKKyAgICBlZmZlY3RfcGFyYW1fdCAqaGFsUGFyYW0gPSByZWludGVycHJldF9jYXN0PGVmZmVjdF9wYXJhbV90Kj4oJmhhbFBhcmFtQnVmZmVyWzBdKTsKKyAgICBoYWxQYXJhbS0+cHNpemUgPSBwYXJhbVNpemU7CisgICAgaGFsUGFyYW0tPnZzaXplID0gdmFsdWVTaXplOworICAgIG1lbWNweShoYWxQYXJhbS0+ZGF0YSwgcGFyYW1EYXRhLCBwYXJhbVNpemUpOworICAgIGlmICh2YWx1ZURhdGEpIHsKKyAgICAgICAgaWYgKCp2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgIC8vIFZhbHVlIGRhdGEgaXMgcHJvdmlkZWQuCisgICAgICAgICAgICBtZW1jcHkoaGFsUGFyYW0tPmRhdGEgKyB2YWx1ZU9mZnNldEZyb21EYXRhLCAqdmFsdWVEYXRhLCB2YWx1ZVNpemUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlIGNhbGxlciBuZWVkcyB0aGUgcG9pbnRlciB0byB0aGUgdmFsdWUgZGF0YSBsb2NhdGlvbi4KKyAgICAgICAgICAgICp2YWx1ZURhdGEgPSBoYWxQYXJhbS0+ZGF0YSArIHZhbHVlT2Zmc2V0RnJvbURhdGE7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGhhbFBhcmFtQnVmZmVyOworfQorCitSZXN1bHQgRWZmZWN0OjphbmFseXplQ29tbWFuZFN0YXR1cyhjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgY29uc3QgY2hhciogY29udGV4dCwgc3RhdHVzX3Qgc3RhdHVzKSB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoImNvbW1hbmQiLCBjb21tYW5kTmFtZSwgY29udGV4dCwgc3RhdHVzKTsKK30KKworUmVzdWx0IEVmZmVjdDo6YW5hbHl6ZVN0YXR1cygKKyAgICAgICAgY29uc3QgY2hhciogZnVuY05hbWUsCisgICAgICAgIGNvbnN0IGNoYXIqIHN1YkZ1bmNOYW1lLAorICAgICAgICBjb25zdCBjaGFyKiBjb250ZXh0RGVzY3JpcHRpb24sCisgICAgICAgIHN0YXR1c190IHN0YXR1cykgeworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR1coIkVmZmVjdCAlcCAlcyAlcyAlczogJXMiLAorICAgICAgICAgICAgICAgIG1IYW5kbGUsIGZ1bmNOYW1lLCBzdWJGdW5jTmFtZSwgY29udGV4dERlc2NyaXB0aW9uLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgfQorICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgT0s6IHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICBjYXNlIC1FTk9EQVRBOiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgY2FzZSAtRU5PTUVNOiByZXR1cm4gUmVzdWx0OjpSRVNVTFRfVE9PX0JJRzsKKyAgICAgICAgY2FzZSAtRU5PU1lTOiByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICBkZWZhdWx0OiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIH0KK30KKwordm9pZCBFZmZlY3Q6OmdldENvbmZpZ0ltcGwoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgR2V0Q29uZmlnQ2FsbGJhY2sgY2IpIHsKKyAgICB1aW50MzJfdCBoYWxSZXN1bHRTaXplID0gc2l6ZW9mKGVmZmVjdF9jb25maWdfdCk7CisgICAgZWZmZWN0X2NvbmZpZ190IGhhbENvbmZpZ3t9OworICAgIHN0YXR1c190IHN0YXR1cyA9ICgqbUhhbmRsZSktPmNvbW1hbmQoCisgICAgICAgICAgICBtSGFuZGxlLCBjb21tYW5kQ29kZSwgMCwgTlVMTCwgJmhhbFJlc3VsdFNpemUsICZoYWxDb25maWcpOworICAgIEVmZmVjdENvbmZpZyBjb25maWc7CisgICAgaWYgKHN0YXR1cyA9PSBPSykgeworICAgICAgICBlZmZlY3RDb25maWdGcm9tSGFsKGhhbENvbmZpZywgJmNvbmZpZyk7CisgICAgfQorICAgIGNiKGFuYWx5emVDb21tYW5kU3RhdHVzKGNvbW1hbmROYW1lLCBzQ29udGV4dENhbGxUb0NvbW1hbmQsIHN0YXR1cyksIGNvbmZpZyk7Cit9CisKK1Jlc3VsdCBFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdJbXBsKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIHVpbnQzMl90IGNvbmZpZ1NpemUsIEdldEN1cnJlbnRDb25maWdTdWNjZXNzQ2FsbGJhY2sgb25TdWNjZXNzKSB7CisgICAgdWludDMyX3QgaGFsQ21kID0gZmVhdHVyZUlkOworICAgIHVpbnQzMl90IGhhbFJlc3VsdFthbGlnbmVkU2l6ZUluPHVpbnQzMl90PihzaXplb2YodWludDMyX3QpICsgY29uZmlnU2l6ZSldOworICAgIG1lbXNldChoYWxSZXN1bHQsIDAsIHNpemVvZihoYWxSZXN1bHQpKTsKKyAgICB1aW50MzJfdCBoYWxSZXN1bHRTaXplID0gMDsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXNBbmREYXRhKAorICAgICAgICAgICAgRUZGRUNUX0NNRF9HRVRfRkVBVFVSRV9DT05GSUcsICJHRVRfRkVBVFVSRV9DT05GSUciLAorICAgICAgICAgICAgc2l6ZW9mKHVpbnQzMl90KSwgJmhhbENtZCwKKyAgICAgICAgICAgICZoYWxSZXN1bHRTaXplLCBoYWxSZXN1bHQsCisgICAgICAgICAgICBzaXplb2YodWludDMyX3QpLAorICAgICAgICAgICAgWyZdeyBvblN1Y2Nlc3MoJmhhbFJlc3VsdFsxXSk7IH0pOworfQorCitSZXN1bHQgRWZmZWN0OjpnZXRQYXJhbWV0ZXJJbXBsKAorICAgICAgICB1aW50MzJfdCBwYXJhbVNpemUsCisgICAgICAgIGNvbnN0IHZvaWQqIHBhcmFtRGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVxdWVzdFZhbHVlU2l6ZSwKKyAgICAgICAgdWludDMyX3QgcmVwbHlWYWx1ZVNpemUsCisgICAgICAgIEdldFBhcmFtZXRlclN1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpIHsKKyAgICAvLyBBcyBpdCBpcyB1bmtub3duIHdoYXQgbWV0aG9kIEhBTCB1c2VzIGZvciBjb3B5aW5nIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXIgZGF0YSwKKyAgICAvLyBpdCBpcyBzYWZlciB0byBtYWtlIHN1cmUgdGhhdCBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMgZG8gbm90IG92ZXJsYXAuCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gaGFsQ21kQnVmZmVyID0KKyAgICAgICAgICAgIHBhcmFtZXRlclRvSGFsKHBhcmFtU2l6ZSwgcGFyYW1EYXRhLCByZXF1ZXN0VmFsdWVTaXplLCBudWxscHRyKTsKKyAgICBjb25zdCB2b2lkICp2YWx1ZURhdGEgPSBudWxscHRyOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGhhbFBhcmFtQnVmZmVyID0KKyAgICAgICAgICAgIHBhcmFtZXRlclRvSGFsKHBhcmFtU2l6ZSwgcGFyYW1EYXRhLCByZXBseVZhbHVlU2l6ZSwgJnZhbHVlRGF0YSk7CisgICAgdWludDMyX3QgaGFsUGFyYW1CdWZmZXJTaXplID0gaGFsUGFyYW1CdWZmZXIuc2l6ZSgpOworCisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzQW5kRGF0YSgKKyAgICAgICAgICAgIEVGRkVDVF9DTURfR0VUX1BBUkFNLCAiR0VUX1BBUkFNIiwKKyAgICAgICAgICAgIGhhbENtZEJ1ZmZlci5zaXplKCksICZoYWxDbWRCdWZmZXJbMF0sCisgICAgICAgICAgICAmaGFsUGFyYW1CdWZmZXJTaXplLCAmaGFsUGFyYW1CdWZmZXJbMF0sCisgICAgICAgICAgICBzaXplb2YoZWZmZWN0X3BhcmFtX3QpLAorICAgICAgICAgICAgWyZdeworICAgICAgICAgICAgICAgIGVmZmVjdF9wYXJhbV90ICpoYWxQYXJhbSA9IHJlaW50ZXJwcmV0X2Nhc3Q8ZWZmZWN0X3BhcmFtX3QqPigmaGFsUGFyYW1CdWZmZXJbMF0pOworICAgICAgICAgICAgICAgIG9uU3VjY2VzcyhoYWxQYXJhbS0+dnNpemUsIHZhbHVlRGF0YSk7CisgICAgICAgICAgICB9KTsKK30KKworUmVzdWx0IEVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ltcGwoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgR2V0U3VwcG9ydGVkQ29uZmlnc1N1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpIHsKKyAgICB1aW50MzJfdCBoYWxDbWRbMl0gPSB7IGZlYXR1cmVJZCwgbWF4Q29uZmlncyB9OworICAgIHVpbnQzMl90IGhhbFJlc3VsdFNpemUgPSAyICogc2l6ZW9mKHVpbnQzMl90KSArIG1heENvbmZpZ3MgKiBzaXplb2YoY29uZmlnU2l6ZSk7CisgICAgdWludDhfdCBoYWxSZXN1bHRbaGFsUmVzdWx0U2l6ZV07CisgICAgbWVtc2V0KCZoYWxSZXN1bHRbMF0sIDAsIGhhbFJlc3VsdFNpemUpOworICAgIHJldHVybiBzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1c0FuZERhdGEoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX0dFVF9GRUFUVVJFX1NVUFBPUlRFRF9DT05GSUdTLCAiR0VUX0ZFQVRVUkVfU1VQUE9SVEVEX0NPTkZJR1MiLAorICAgICAgICAgICAgc2l6ZW9mKGhhbENtZCksIGhhbENtZCwKKyAgICAgICAgICAgICZoYWxSZXN1bHRTaXplLCAmaGFsUmVzdWx0WzBdLAorICAgICAgICAgICAgMiAqIHNpemVvZih1aW50MzJfdCksCisgICAgICAgICAgICBbJl17CisgICAgICAgICAgICAgICAgdWludDMyX3QgKmhhbFJlc3VsdDMyID0gcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KCZoYWxSZXN1bHRbMF0pOworICAgICAgICAgICAgICAgIHVpbnQzMl90IHN1cHBvcnRlZENvbmZpZ3MgPSAqKCsraGFsUmVzdWx0MzIpOyAvLyBza2lwIHN0YXR1cyBmaWVsZAorICAgICAgICAgICAgICAgIGlmIChzdXBwb3J0ZWRDb25maWdzID4gbWF4Q29uZmlncykgc3VwcG9ydGVkQ29uZmlncyA9IG1heENvbmZpZ3M7CisgICAgICAgICAgICAgICAgb25TdWNjZXNzKHN1cHBvcnRlZENvbmZpZ3MsICsraGFsUmVzdWx0MzIpOworICAgICAgICAgICAgfSk7Cit9CisKK1JldHVybjx2b2lkPiBFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgc3RhdHVzX3Qgc3RhdHVzOworICAgIC8vIENyZWF0ZSBtZXNzYWdlIHF1ZXVlLgorICAgIGlmIChtU3RhdHVzTVEpIHsKKyAgICAgICAgQUxPR0UoInRoZSBjbGllbnQgYXR0ZW1wdHMgdG8gY2FsbCBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiB0d2ljZSIpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfU1RBVEUsIFN0YXR1c01ROjpEZXNjcmlwdG9yKCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3RhdHVzTVE+IHRlbXBTdGF0dXNNUShuZXcgU3RhdHVzTVEoMSwgdHJ1ZSAvKkV2ZW50RmxhZyovKSk7CisgICAgaWYgKCF0ZW1wU3RhdHVzTVEtPmlzVmFsaWQoKSkgeworICAgICAgICBBTE9HRV9JRighdGVtcFN0YXR1c01RLT5pc1ZhbGlkKCksICJzdGF0dXMgTVEgaXMgaW52YWxpZCIpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBTdGF0dXNNUTo6RGVzY3JpcHRvcigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RhdHVzID0gRXZlbnRGbGFnOjpjcmVhdGVFdmVudEZsYWcodGVtcFN0YXR1c01RLT5nZXRFdmVudEZsYWdXb3JkKCksICZtRWZHcm91cCk7CisgICAgaWYgKHN0YXR1cyAhPSBPSyB8fCAhbUVmR3JvdXApIHsKKyAgICAgICAgQUxPR0UoImZhaWxlZCBjcmVhdGluZyBldmVudCBmbGFnIGZvciBzdGF0dXMgTVE6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBTdGF0dXNNUTo6RGVzY3JpcHRvcigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICAvLyBDcmVhdGUgYW5kIGxhdW5jaCB0aGUgdGhyZWFkLgorICAgIG1Qcm9jZXNzVGhyZWFkID0gbmV3IFByb2Nlc3NUaHJlYWQoCisgICAgICAgICAgICAmbVN0b3BQcm9jZXNzVGhyZWFkLAorICAgICAgICAgICAgbUhhbmRsZSwKKyAgICAgICAgICAgICZtSGFsSW5CdWZmZXJQdHIsCisgICAgICAgICAgICAmbUhhbE91dEJ1ZmZlclB0ciwKKyAgICAgICAgICAgIHRlbXBTdGF0dXNNUS5nZXQoKSwKKyAgICAgICAgICAgIG1FZkdyb3VwKTsKKyAgICBzdGF0dXMgPSBtUHJvY2Vzc1RocmVhZC0+cnVuKCJlZmZlY3QiLCBQUklPUklUWV9VUkdFTlRfQVVESU8pOworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBzdGFydCBlZmZlY3QgcHJvY2Vzc2luZyB0aHJlYWQ6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBNUURlc2NyaXB0b3JTeW5jPFJlc3VsdD4oKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbVN0YXR1c01RID0gc3RkOjptb3ZlKHRlbXBTdGF0dXNNUSk7CisgICAgX2hpZGxfY2IoUmVzdWx0OjpPSywgKm1TdGF0dXNNUS0+Z2V0RGVzYygpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICBBdWRpb0J1ZmZlck1hbmFnZXImIG1hbmFnZXIgPSBBdWRpb0J1ZmZlck1hbmFnZXI6OmdldEluc3RhbmNlKCk7CisgICAgc3A8QXVkaW9CdWZmZXJXcmFwcGVyPiB0ZW1wSW5CdWZmZXIsIHRlbXBPdXRCdWZmZXI7CisgICAgaWYgKCFtYW5hZ2VyLndyYXAoaW5CdWZmZXIsICZ0ZW1wSW5CdWZmZXIpKSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgbWFwIG1lbW9yeSBvZiB0aGUgaW5wdXQgYnVmZmVyIik7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgIH0KKyAgICBpZiAoIW1hbmFnZXIud3JhcChvdXRCdWZmZXIsICZ0ZW1wT3V0QnVmZmVyKSkgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IG1hcCBtZW1vcnkgb2YgdGhlIG91dHB1dCBidWZmZXIiKTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgfQorICAgIG1JbkJ1ZmZlciA9IHRlbXBJbkJ1ZmZlcjsKKyAgICBtT3V0QnVmZmVyID0gdGVtcE91dEJ1ZmZlcjsKKyAgICAvLyBUaGUgcHJvY2Vzc2luZyB0aHJlYWQgb25seSByZWFkcyB0aGVzZSBwb2ludGVycyBhZnRlciB3YWtpbmcgdXAgYnkgYW4gZXZlbnQgZmxhZywKKyAgICAvLyBzbyBpdCdzIE9LIHRvIHVwZGF0ZSB0aGUgcGFpciBub24tYXRvbWljYWxseS4KKyAgICBtSGFsSW5CdWZmZXJQdHIuc3RvcmUobUluQnVmZmVyLT5nZXRIYWxCdWZmZXIoKSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgbUhhbE91dEJ1ZmZlclB0ci5zdG9yZShtT3V0QnVmZmVyLT5nZXRIYWxCdWZmZXIoKSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgcmV0dXJuIFJlc3VsdDo6T0s7Cit9CisKK1Jlc3VsdCBFZmZlY3Q6OnNlbmRDb21tYW5kKGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUpIHsKKyAgICByZXR1cm4gc2VuZENvbW1hbmQoY29tbWFuZENvZGUsIGNvbW1hbmROYW1lLCAwLCBOVUxMKTsKK30KKworUmVzdWx0IEVmZmVjdDo6c2VuZENvbW1hbmQoCisgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsIHVpbnQzMl90IHNpemUsIHZvaWQqIGRhdGEpIHsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSAoKm1IYW5kbGUpLT5jb21tYW5kKG1IYW5kbGUsIGNvbW1hbmRDb2RlLCBzaXplLCBkYXRhLCAwLCBOVUxMKTsKKyAgICByZXR1cm4gYW5hbHl6ZUNvbW1hbmRTdGF0dXMoY29tbWFuZE5hbWUsIHNDb250ZXh0Q2FsbFRvQ29tbWFuZCwgc3RhdHVzKTsKK30KKworUmVzdWx0IEVmZmVjdDo6c2VuZENvbW1hbmRSZXR1cm5pbmdEYXRhKAorICAgICAgICBpbnQgY29tbWFuZENvZGUsIGNvbnN0IGNoYXIqIGNvbW1hbmROYW1lLAorICAgICAgICB1aW50MzJfdCogcmVwbHlTaXplLCB2b2lkKiByZXBseURhdGEpIHsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdEYXRhKGNvbW1hbmRDb2RlLCBjb21tYW5kTmFtZSwgMCwgTlVMTCwgcmVwbHlTaXplLCByZXBseURhdGEpOworfQorCitSZXN1bHQgRWZmZWN0OjpzZW5kQ29tbWFuZFJldHVybmluZ0RhdGEoCisgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgIHVpbnQzMl90IHNpemUsIHZvaWQqIGRhdGEsCisgICAgICAgIHVpbnQzMl90KiByZXBseVNpemUsIHZvaWQqIHJlcGx5RGF0YSkgeworICAgIHVpbnQzMl90IGV4cGVjdGVkUmVwbHlTaXplID0gKnJlcGx5U2l6ZTsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSAoKm1IYW5kbGUpLT5jb21tYW5kKG1IYW5kbGUsIGNvbW1hbmRDb2RlLCBzaXplLCBkYXRhLCByZXBseVNpemUsIHJlcGx5RGF0YSk7CisgICAgaWYgKHN0YXR1cyA9PSBPSyAmJiAqcmVwbHlTaXplICE9IGV4cGVjdGVkUmVwbHlTaXplKSB7CisgICAgICAgIHN0YXR1cyA9IC1FTk9EQVRBOworICAgIH0KKyAgICByZXR1cm4gYW5hbHl6ZUNvbW1hbmRTdGF0dXMoY29tbWFuZE5hbWUsIHNDb250ZXh0Q2FsbFRvQ29tbWFuZCwgc3RhdHVzKTsKK30KKworUmVzdWx0IEVmZmVjdDo6c2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSkgeworICAgIHJldHVybiBzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1cyhjb21tYW5kQ29kZSwgY29tbWFuZE5hbWUsIDAsIE5VTEwpOworfQorCitSZXN1bHQgRWZmZWN0OjpzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1cygKKyAgICAgICAgaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgdWludDMyX3Qgc2l6ZSwgdm9pZCogZGF0YSkgeworICAgIHVpbnQzMl90IHJlcGx5Q21kU3RhdHVzOworICAgIHVpbnQzMl90IHJlcGx5U2l6ZSA9IHNpemVvZih1aW50MzJfdCk7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzQW5kRGF0YSgKKyAgICAgICAgICAgIGNvbW1hbmRDb2RlLCBjb21tYW5kTmFtZSwgc2l6ZSwgZGF0YSwgJnJlcGx5U2l6ZSwgJnJlcGx5Q21kU3RhdHVzLCByZXBseVNpemUsIFtde30pOworfQorCitSZXN1bHQgRWZmZWN0OjpzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1c0FuZERhdGEoCisgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgIHVpbnQzMl90IHNpemUsIHZvaWQqIGRhdGEsCisgICAgICAgIHVpbnQzMl90KiByZXBseVNpemUsIHZvaWQqIHJlcGx5RGF0YSwKKyAgICAgICAgdWludDMyX3QgbWluUmVwbHlTaXplLAorICAgICAgICBDb21tYW5kU3VjY2Vzc0NhbGxiYWNrIG9uU3VjY2VzcykgeworICAgIHN0YXR1c190IHN0YXR1cyA9CisgICAgICAgICAgICAoKm1IYW5kbGUpLT5jb21tYW5kKG1IYW5kbGUsIGNvbW1hbmRDb2RlLCBzaXplLCBkYXRhLCByZXBseVNpemUsIHJlcGx5RGF0YSk7CisgICAgUmVzdWx0IHJldHZhbDsKKyAgICBpZiAoc3RhdHVzID09IE9LICYmIG1pblJlcGx5U2l6ZSA+PSBzaXplb2YodWludDMyX3QpICYmICpyZXBseVNpemUgPj0gbWluUmVwbHlTaXplKSB7CisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRTdGF0dXMgPSAqcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KHJlcGx5RGF0YSk7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVDb21tYW5kU3RhdHVzKGNvbW1hbmROYW1lLCBzQ29udGV4dFJlc3VsdE9mQ29tbWFuZCwgY29tbWFuZFN0YXR1cyk7CisgICAgICAgIGlmIChjb21tYW5kU3RhdHVzID09IE9LKSB7CisgICAgICAgICAgICBvblN1Y2Nlc3MoKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVDb21tYW5kU3RhdHVzKGNvbW1hbmROYW1lLCBzQ29udGV4dENhbGxUb0NvbW1hbmQsIHN0YXR1cyk7CisgICAgfQorICAgIHJldHVybiByZXR2YWw7Cit9CisKK1Jlc3VsdCBFZmZlY3Q6OnNldENvbmZpZ0ltcGwoCisgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICBlZmZlY3RfY29uZmlnX3QgaGFsQ29uZmlnOworICAgIGVmZmVjdENvbmZpZ1RvSGFsKGNvbmZpZywgJmhhbENvbmZpZyk7CisgICAgaWYgKGlucHV0QnVmZmVyUHJvdmlkZXIgIT0gMCkgeworICAgICAgICBMT0dfRkFUQUwoIlVzaW5nIGlucHV0IGJ1ZmZlciBwcm92aWRlciBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAgfQorICAgIGlmIChvdXRwdXRCdWZmZXJQcm92aWRlciAhPSAwKSB7CisgICAgICAgIExPR19GQVRBTCgiVXNpbmcgb3V0cHV0IGJ1ZmZlciBwcm92aWRlciBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAgfQorICAgIHJldHVybiBzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1cygKKyAgICAgICAgICAgIGNvbW1hbmRDb2RlLCBjb21tYW5kTmFtZSwgc2l6ZW9mKGVmZmVjdF9jb25maWdfdCksICZoYWxDb25maWcpOworfQorCisKK1Jlc3VsdCBFZmZlY3Q6OnNldFBhcmFtZXRlckltcGwoCisgICAgICAgIHVpbnQzMl90IHBhcmFtU2l6ZSwgY29uc3Qgdm9pZCogcGFyYW1EYXRhLCB1aW50MzJfdCB2YWx1ZVNpemUsIGNvbnN0IHZvaWQqIHZhbHVlRGF0YSkgeworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGhhbFBhcmFtQnVmZmVyID0gcGFyYW1ldGVyVG9IYWwoCisgICAgICAgICAgICBwYXJhbVNpemUsIHBhcmFtRGF0YSwgdmFsdWVTaXplLCAmdmFsdWVEYXRhKTsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX1NFVF9QQVJBTSwgIlNFVF9QQVJBTSIsIGhhbFBhcmFtQnVmZmVyLnNpemUoKSwgJmhhbFBhcmFtQnVmZmVyWzBdKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gRWZmZWN0Ojppbml0KCkgIHsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoRUZGRUNUX0NNRF9JTklULCAiSU5JVCIpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIHsKKyAgICByZXR1cm4gc2V0Q29uZmlnSW1wbCgKKyAgICAgICAgICAgIEVGRkVDVF9DTURfU0VUX0NPTkZJRywgIlNFVF9DT05GSUciLCBjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpyZXNldCgpICB7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kKEVGRkVDVF9DTURfUkVTRVQsICJSRVNFVCIpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OmVuYWJsZSgpICB7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzKEVGRkVDVF9DTURfRU5BQkxFLCAiRU5BQkxFIik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVmZmVjdDo6ZGlzYWJsZSgpICB7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzKEVGRkVDVF9DTURfRElTQUJMRSwgIkRJU0FCTEUiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgeworICAgIHVpbnQzMl90IGhhbERldmljZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihkZXZpY2UpOworICAgIHJldHVybiBzZW5kQ29tbWFuZChFRkZFQ1RfQ01EX1NFVF9ERVZJQ0UsICJTRVRfREVWSUNFIiwgc2l6ZW9mKHVpbnQzMl90KSwgJmhhbERldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDMyX3QgaGFsRGF0YVNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gaGFsRGF0YSA9IGhpZGxWZWNUb0hhbCh2b2x1bWVzLCAmaGFsRGF0YVNpemUpOworICAgIHVpbnQzMl90IGhhbFJlc3VsdFNpemUgPSBoYWxEYXRhU2l6ZTsKKyAgICB1aW50MzJfdCBoYWxSZXN1bHRbdm9sdW1lcy5zaXplKCldOworICAgIFJlc3VsdCByZXR2YWwgPSBzZW5kQ29tbWFuZFJldHVybmluZ0RhdGEoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX1NFVF9WT0xVTUUsICJTRVRfVk9MVU1FIiwKKyAgICAgICAgICAgIGhhbERhdGFTaXplLCAmaGFsRGF0YVswXSwKKyAgICAgICAgICAgICZoYWxSZXN1bHRTaXplLCBoYWxSZXN1bHQpOworICAgIGhpZGxfdmVjPHVpbnQzMl90PiByZXN1bHQ7CisgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIHJlc3VsdC5zZXRUb0V4dGVybmFsKCZoYWxSZXN1bHRbMF0sIGhhbFJlc3VsdFNpemUpOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSAgeworICAgIHVpbnQzMl90IGhhbERhdGFTaXplOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGhhbERhdGEgPSBoaWRsVmVjVG9IYWwodm9sdW1lcywgJmhhbERhdGFTaXplKTsKKyAgICByZXR1cm4gc2VuZENvbW1hbmQoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX1NFVF9WT0xVTUUsICJTRVRfVk9MVU1FIiwKKyAgICAgICAgICAgIGhhbERhdGFTaXplLCAmaGFsRGF0YVswXSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVmZmVjdDo6c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSAgeworICAgIHVpbnQzMl90IGhhbE1vZGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obW9kZSk7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kKAorICAgICAgICAgICAgRUZGRUNUX0NNRF9TRVRfQVVESU9fTU9ERSwgIlNFVF9BVURJT19NT0RFIiwgc2l6ZW9mKHVpbnQzMl90KSwgJmhhbE1vZGUpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OnNldENvbmZpZ1JldmVyc2UoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICB7CisgICAgcmV0dXJuIHNldENvbmZpZ0ltcGwoRUZGRUNUX0NNRF9TRVRfQ09ORklHX1JFVkVSU0UsICJTRVRfQ09ORklHX1JFVkVSU0UiLAorICAgICAgICAgICAgY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgeworICAgIHVpbnQzMl90IGhhbERldmljZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihkZXZpY2UpOworICAgIHJldHVybiBzZW5kQ29tbWFuZCgKKyAgICAgICAgICAgIEVGRkVDVF9DTURfU0VUX0lOUFVUX0RFVklDRSwgIlNFVF9JTlBVVF9ERVZJQ0UiLCBzaXplb2YodWludDMyX3QpLCAmaGFsRGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Z2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIHsKKyAgICBnZXRDb25maWdJbXBsKEVGRkVDVF9DTURfR0VUX0NPTkZJRywgIkdFVF9DT05GSUciLCBfaGlkbF9jYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgeworICAgIGdldENvbmZpZ0ltcGwoRUZGRUNUX0NNRF9HRVRfQ09ORklHX1JFVkVSU0UsICJHRVRfQ09ORklHX1JFVkVSU0UiLCBfaGlkbF9jYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpICB7CisgICAgaGlkbF92ZWM8RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc+IHJlc3VsdDsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0U3VwcG9ydGVkQ29uZmlnc0ltcGwoCisgICAgICAgICAgICBFRkZFQ1RfRkVBVFVSRV9BVVhfQ0hBTk5FTFMsCisgICAgICAgICAgICBtYXhDb25maWdzLAorICAgICAgICAgICAgc2l6ZW9mKGNoYW5uZWxfY29uZmlnX3QpLAorICAgICAgICAgICAgWyZdICh1aW50MzJfdCBzdXBwb3J0ZWRDb25maWdzLCB2b2lkKiBjb25maWdzRGF0YSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNpemUoc3VwcG9ydGVkQ29uZmlncyk7CisgICAgICAgICAgICAgICAgY2hhbm5lbF9jb25maWdfdCAqY29uZmlnID0gcmVpbnRlcnByZXRfY2FzdDxjaGFubmVsX2NvbmZpZ190Kj4oY29uZmlnc0RhdGEpOworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGVmZmVjdEF1eENoYW5uZWxzQ29uZmlnRnJvbUhhbCgqY29uZmlnKyssICZyZXN1bHRbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgcmVzdWx0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRWZmZWN0OjpnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIHsKKyAgICB1aW50MzJfdCBoYWxDbWQgPSBFRkZFQ1RfRkVBVFVSRV9BVVhfQ0hBTk5FTFM7CisgICAgdWludDMyX3QgaGFsUmVzdWx0W2FsaWduZWRTaXplSW48dWludDMyX3Q+KHNpemVvZih1aW50MzJfdCkgKyBzaXplb2YoY2hhbm5lbF9jb25maWdfdCkpXTsKKyAgICBtZW1zZXQoaGFsUmVzdWx0LCAwLCBzaXplb2YoaGFsUmVzdWx0KSk7CisgICAgdWludDMyX3QgaGFsUmVzdWx0U2l6ZSA9IDA7CisgICAgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcgcmVzdWx0OworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRDdXJyZW50Q29uZmlnSW1wbCgKKyAgICAgICAgICAgIEVGRkVDVF9GRUFUVVJFX0FVWF9DSEFOTkVMUywKKyAgICAgICAgICAgIHNpemVvZihjaGFubmVsX2NvbmZpZ190KSwKKyAgICAgICAgICAgIFsmXSAodm9pZCogY29uZmlnRGF0YSkgeworICAgICAgICAgICAgICAgIGVmZmVjdEF1eENoYW5uZWxzQ29uZmlnRnJvbUhhbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0PGNoYW5uZWxfY29uZmlnX3QqPihjb25maWdEYXRhKSwgJnJlc3VsdCk7CisgICAgICAgICAgICB9KTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpzZXRBdXhDaGFubmVsc0NvbmZpZyhjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSAgeworICAgIHVpbnQzMl90IGhhbENtZFthbGlnbmVkU2l6ZUluPHVpbnQzMl90PihzaXplb2YodWludDMyX3QpICsgc2l6ZW9mKGNoYW5uZWxfY29uZmlnX3QpKV07CisgICAgaGFsQ21kWzBdID0gRUZGRUNUX0ZFQVRVUkVfQVVYX0NIQU5ORUxTOworICAgIGVmZmVjdEF1eENoYW5uZWxzQ29uZmlnVG9IYWwoY29uZmlnLCByZWludGVycHJldF9jYXN0PGNoYW5uZWxfY29uZmlnX3QqPigmaGFsQ21kWzFdKSk7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzKEVGRkVDVF9DTURfU0VUX0ZFQVRVUkVfQ09ORklHLAorICAgICAgICAgICAgIlNFVF9GRUFUVVJFX0NPTkZJRyBBVVhfQ0hBTk5FTFMiLCBzaXplb2YoaGFsQ21kKSwgaGFsQ21kKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICB7CisgICAgdWludDMyX3QgaGFsU291cmNlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNvdXJjZSk7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kKAorICAgICAgICAgICAgRUZGRUNUX0NNRF9TRVRfQVVESU9fU09VUkNFLCAiU0VUX0FVRElPX1NPVVJDRSIsIHNpemVvZih1aW50MzJfdCksICZoYWxTb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6Om9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICB7CisgICAgZWZmZWN0X29mZmxvYWRfcGFyYW1fdCBoYWxQYXJhbTsKKyAgICBlZmZlY3RPZmZsb2FkUGFyYW1Ub0hhbChwYXJhbSwgJmhhbFBhcmFtKTsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX09GRkxPQUQsICJPRkZMT0FEIiwgc2l6ZW9mKGVmZmVjdF9vZmZsb2FkX3BhcmFtX3QpLCAmaGFsUGFyYW0pOworfQorCitSZXR1cm48dm9pZD4gRWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpICB7CisgICAgZWZmZWN0X2Rlc2NyaXB0b3JfdCBoYWxEZXNjcmlwdG9yOworICAgIG1lbXNldCgmaGFsRGVzY3JpcHRvciwgMCwgc2l6ZW9mKGVmZmVjdF9kZXNjcmlwdG9yX3QpKTsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSAoKm1IYW5kbGUpLT5nZXRfZGVzY3JpcHRvcihtSGFuZGxlLCAmaGFsRGVzY3JpcHRvcik7CisgICAgRWZmZWN0RGVzY3JpcHRvciBkZXNjcmlwdG9yOworICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgZWZmZWN0RGVzY3JpcHRvckZyb21IYWwoaGFsRGVzY3JpcHRvciwgJmRlc2NyaXB0b3IpOworICAgIH0KKyAgICBfaGlkbF9jYihhbmFseXplU3RhdHVzKCJnZXRfZGVzY3JpcHRvciIsICIiLCBzQ29udGV4dENhbGxGdW5jdGlvbiwgc3RhdHVzKSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgIHsKKyAgICB1aW50MzJfdCBoYWxEYXRhU2l6ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBoYWxEYXRhID0gaGlkbFZlY1RvSGFsKGRhdGEsICZoYWxEYXRhU2l6ZSk7CisgICAgdWludDMyX3QgaGFsUmVzdWx0U2l6ZSA9IHJlc3VsdE1heFNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gaGFsUmVzdWx0KG5ldyB1aW50OF90W2hhbFJlc3VsdFNpemVdKTsKKyAgICBtZW1zZXQoJmhhbFJlc3VsdFswXSwgMCwgaGFsUmVzdWx0U2l6ZSk7CisKKyAgICB2b2lkKiBkYXRhUHRyID0gaGFsRGF0YVNpemUgPiAwID8gJmhhbERhdGFbMF0gOiBOVUxMOworICAgIHZvaWQqIHJlc3VsdFB0ciA9IGhhbFJlc3VsdFNpemUgPiAwID8gJmhhbFJlc3VsdFswXSA6IE5VTEw7CisgICAgc3RhdHVzX3Qgc3RhdHVzID0gKCptSGFuZGxlKS0+Y29tbWFuZCgKKyAgICAgICAgICAgIG1IYW5kbGUsIGNvbW1hbmRJZCwgaGFsRGF0YVNpemUsIGRhdGFQdHIsICZoYWxSZXN1bHRTaXplLCByZXN1bHRQdHIpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdDsKKyAgICBpZiAoc3RhdHVzID09IE9LICYmIHJlc3VsdFB0ciAhPSBOVUxMKSB7CisgICAgICAgIHJlc3VsdC5zZXRUb0V4dGVybmFsKCZoYWxSZXN1bHRbMF0sIGhhbFJlc3VsdFNpemUpOworICAgIH0KKyAgICBfaGlkbF9jYihzdGF0dXMsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpzZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgIHsKKyAgICByZXR1cm4gc2V0UGFyYW1ldGVySW1wbChwYXJhbWV0ZXIuc2l6ZSgpLCAmcGFyYW1ldGVyWzBdLCB2YWx1ZS5zaXplKCksICZ2YWx1ZVswXSk7Cit9CisKK1JldHVybjx2b2lkPiBFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgdWludDMyX3QgdmFsdWVNYXhTaXplLCBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICB7CisgICAgaGlkbF92ZWM8dWludDhfdD4gdmFsdWU7CisgICAgUmVzdWx0IHJldHZhbCA9IGdldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICBwYXJhbWV0ZXIuc2l6ZSgpLAorICAgICAgICAgICAgJnBhcmFtZXRlclswXSwKKyAgICAgICAgICAgIHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIFsmXSAodWludDMyX3QgdmFsdWVTaXplLCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgICAgICB2YWx1ZS5zZXRUb0V4dGVybmFsKAorICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oY29uc3RfY2FzdDx2b2lkKj4odmFsdWVEYXRhKSksIHZhbHVlU2l6ZSk7CisgICAgICAgICAgICB9KTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIHZhbHVlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRWZmZWN0OjpnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIHsKKyAgICB1aW50MzJfdCBjb25maWdDb3VudCA9IDA7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0OworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRTdXBwb3J0ZWRDb25maWdzSW1wbCgKKyAgICAgICAgICAgIGZlYXR1cmVJZCwKKyAgICAgICAgICAgIG1heENvbmZpZ3MsCisgICAgICAgICAgICBjb25maWdTaXplLAorICAgICAgICAgICAgWyZdICh1aW50MzJfdCBzdXBwb3J0ZWRDb25maWdzLCB2b2lkKiBjb25maWdzRGF0YSkgeworICAgICAgICAgICAgICAgIGNvbmZpZ0NvdW50ID0gc3VwcG9ydGVkQ29uZmlnczsKKyAgICAgICAgICAgICAgICByZXN1bHQucmVzaXplKGNvbmZpZ0NvdW50ICogY29uZmlnU2l6ZSk7CisgICAgICAgICAgICAgICAgbWVtY3B5KCZyZXN1bHRbMF0sIGNvbmZpZ3NEYXRhLCByZXN1bHQuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgY29uZmlnQ291bnQsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgdWludDMyX3QgY29uZmlnU2l6ZSwgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICB7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0OworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRDdXJyZW50Q29uZmlnSW1wbCgKKyAgICAgICAgICAgIGZlYXR1cmVJZCwKKyAgICAgICAgICAgIGNvbmZpZ1NpemUsCisgICAgICAgICAgICBbJl0gKHZvaWQqIGNvbmZpZ0RhdGEpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQucmVzaXplKGNvbmZpZ1NpemUpOworICAgICAgICAgICAgICAgIG1lbWNweSgmcmVzdWx0WzBdLCBjb25maWdEYXRhLCByZXN1bHQuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgcmVzdWx0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgeworICAgIHVpbnQzMl90IGhhbENtZFthbGlnbmVkU2l6ZUluPHVpbnQzMl90PihzaXplb2YodWludDMyX3QpICsgY29uZmlnRGF0YS5zaXplKCkpXTsKKyAgICBtZW1zZXQoaGFsQ21kLCAwLCBzaXplb2YoaGFsQ21kKSk7CisgICAgaGFsQ21kWzBdID0gZmVhdHVyZUlkOworICAgIG1lbWNweSgmaGFsQ21kWzFdLCAmY29uZmlnRGF0YVswXSwgY29uZmlnRGF0YS5zaXplKCkpOworICAgIHJldHVybiBzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1cygKKyAgICAgICAgICAgIEVGRkVDVF9DTURfU0VUX0ZFQVRVUkVfQ09ORklHLCAiU0VUX0ZFQVRVUkVfQ09ORklHIiwgc2l6ZW9mKGhhbENtZCksIGhhbENtZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVmZmVjdDo6Y2xvc2UoKSB7CisgICAgaWYgKG1Jc0Nsb3NlZCkgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICBtSXNDbG9zZWQgPSB0cnVlOworICAgIGlmIChtUHJvY2Vzc1RocmVhZC5nZXQoKSkgeworICAgICAgICBtU3RvcFByb2Nlc3NUaHJlYWQuc3RvcmUodHJ1ZSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgfQorICAgIGlmIChtRWZHcm91cCkgeworICAgICAgICBtRWZHcm91cC0+d2FrZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6OlJFUVVFU1RfUVVJVCkpOworICAgIH0KKyAgICByZXR1cm4gUmVzdWx0OjpPSzsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FZmZlY3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTE4Y2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdC5oCkBAIC0wLDAgKzEsMjc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0VGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRUZGRUNUX0gKKworI2luY2x1ZGUgPGF0b21pYz4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaD4KKyNpbmNsdWRlIDxmbXEvRXZlbnRGbGFnLmg+CisjaW5jbHVkZSA8Zm1xL01lc3NhZ2VRdWV1ZS5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDx1dGlscy9UaHJlYWQuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2F1ZGlvX2VmZmVjdC5oPgorCisjaW5jbHVkZSAiQXVkaW9CdWZmZXJNYW5hZ2VyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VXVpZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0RmVhdHVyZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdE9mZmxvYWRQYXJhbWV0ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBFZmZlY3QgOiBwdWJsaWMgSUVmZmVjdCB7CisgICAgdHlwZWRlZiBNZXNzYWdlUXVldWU8UmVzdWx0LCBrU3luY2hyb25pemVkUmVhZFdyaXRlPiBTdGF0dXNNUTsKKyAgICB1c2luZyBHZXRQYXJhbWV0ZXJTdWNjZXNzQ2FsbGJhY2sgPQorICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKHVpbnQzMl90IHZhbHVlU2l6ZSwgY29uc3Qgdm9pZCogdmFsdWVEYXRhKT47CisKKyAgICBleHBsaWNpdCBFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWcoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXNldCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBlbmFibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ1JldmVyc2UoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXV4Q2hhbm5lbHNDb25maWcoY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IG9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIFV0aWxpdHkgbWV0aG9kcyBmb3IgZXh0ZW5kaW5nIGludGVyZmFjZXMuCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUmV0dXJuPHZvaWQ+IGdldEludGVnZXJQYXJhbSgKKyAgICAgICAgICAgIHVpbnQzMl90IHBhcmFtSWQsIHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLCBUIHBhcmFtVmFsdWUpPiBjYikgeworICAgICAgICBUIHZhbHVlOworICAgICAgICBSZXN1bHQgcmV0dmFsID0gZ2V0UGFyYW1ldGVySW1wbCgKKyAgICAgICAgICAgICAgICBzaXplb2YodWludDMyX3QpLCAmcGFyYW1JZCwKKyAgICAgICAgICAgICAgICBzaXplb2YoVCksCisgICAgICAgICAgICAgICAgWyZdICh1aW50MzJfdCB2YWx1ZVNpemUsIGNvbnN0IHZvaWQqIHZhbHVlRGF0YSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVTaXplID4gc2l6ZW9mKFQpKSB2YWx1ZVNpemUgPSBzaXplb2YoVCk7CisgICAgICAgICAgICAgICAgICAgIG1lbWNweSgmdmFsdWUsIHZhbHVlRGF0YSwgdmFsdWVTaXplKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgY2IocmV0dmFsLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUmVzdWx0IGdldFBhcmFtKHVpbnQzMl90IHBhcmFtSWQsIFQmIHBhcmFtVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICAgICAgc2l6ZW9mKHVpbnQzMl90KSwgJnBhcmFtSWQsCisgICAgICAgICAgICAgICAgc2l6ZW9mKFQpLAorICAgICAgICAgICAgICAgIFsmXSAodWludDMyX3QgdmFsdWVTaXplLCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlU2l6ZSA+IHNpemVvZihUKSkgdmFsdWVTaXplID0gc2l6ZW9mKFQpOworICAgICAgICAgICAgICAgICAgICBtZW1jcHkoJnBhcmFtVmFsdWUsIHZhbHVlRGF0YSwgdmFsdWVTaXplKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBSZXN1bHQgZ2V0UGFyYW0odWludDMyX3QgcGFyYW1JZCwgdWludDMyX3QgcGFyYW1BcmcsIFQmIHBhcmFtVmFsdWUpIHsKKyAgICAgICAgdWludDMyX3QgcGFyYW1zWzJdID0geyBwYXJhbUlkLCBwYXJhbUFyZyB9OworICAgICAgICByZXR1cm4gZ2V0UGFyYW1ldGVySW1wbCgKKyAgICAgICAgICAgICAgICBzaXplb2YocGFyYW1zKSwgcGFyYW1zLAorICAgICAgICAgICAgICAgIHNpemVvZihUKSwKKyAgICAgICAgICAgICAgICBbJl0gKHVpbnQzMl90IHZhbHVlU2l6ZSwgY29uc3Qgdm9pZCogdmFsdWVEYXRhKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVNpemUgPiBzaXplb2YoVCkpIHZhbHVlU2l6ZSA9IHNpemVvZihUKTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KCZwYXJhbVZhbHVlLCB2YWx1ZURhdGEsIHZhbHVlU2l6ZSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUmVzdWx0IHNldFBhcmFtKHVpbnQzMl90IHBhcmFtSWQsIGNvbnN0IFQmIHBhcmFtVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHNldFBhcmFtZXRlckltcGwoc2l6ZW9mKHVpbnQzMl90KSwgJnBhcmFtSWQsIHNpemVvZihUKSwgJnBhcmFtVmFsdWUpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFJlc3VsdCBzZXRQYXJhbSh1aW50MzJfdCBwYXJhbUlkLCB1aW50MzJfdCBwYXJhbUFyZywgY29uc3QgVCYgcGFyYW1WYWx1ZSkgeworICAgICAgICB1aW50MzJfdCBwYXJhbXNbMl0gPSB7IHBhcmFtSWQsIHBhcmFtQXJnIH07CisgICAgICAgIHJldHVybiBzZXRQYXJhbWV0ZXJJbXBsKHNpemVvZihwYXJhbXMpLCBwYXJhbXMsIHNpemVvZihUKSwgJnBhcmFtVmFsdWUpOworICAgIH0KKworICAgIFJlc3VsdCBnZXRQYXJhbWV0ZXJJbXBsKAorICAgICAgICAgICAgdWludDMyX3QgcGFyYW1TaXplLAorICAgICAgICAgICAgY29uc3Qgdm9pZCogcGFyYW1EYXRhLAorICAgICAgICAgICAgdWludDMyX3QgdmFsdWVTaXplLAorICAgICAgICAgICAgR2V0UGFyYW1ldGVyU3VjY2Vzc0NhbGxiYWNrIG9uU3VjY2VzcykgeworICAgICAgICByZXR1cm4gZ2V0UGFyYW1ldGVySW1wbChwYXJhbVNpemUsIHBhcmFtRGF0YSwgdmFsdWVTaXplLCB2YWx1ZVNpemUsIG9uU3VjY2Vzcyk7CisgICAgfQorICAgIFJlc3VsdCBnZXRQYXJhbWV0ZXJJbXBsKAorICAgICAgICAgICAgdWludDMyX3QgcGFyYW1TaXplLAorICAgICAgICAgICAgY29uc3Qgdm9pZCogcGFyYW1EYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVxdWVzdFZhbHVlU2l6ZSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlcGx5VmFsdWVTaXplLAorICAgICAgICAgICAgR2V0UGFyYW1ldGVyU3VjY2Vzc0NhbGxiYWNrIG9uU3VjY2Vzcyk7CisgICAgUmVzdWx0IHNldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICB1aW50MzJfdCBwYXJhbVNpemUsIGNvbnN0IHZvaWQqIHBhcmFtRGF0YSwgdWludDMyX3QgdmFsdWVTaXplLCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpOworCisgIHByaXZhdGU6CisgICAgZnJpZW5kIHN0cnVjdCBWaXJ0dWFsaXplckVmZmVjdDsgIC8vIGZvciBnZXRQYXJhbWV0ZXJJbXBsCisgICAgZnJpZW5kIHN0cnVjdCBWaXN1YWxpemVyRWZmZWN0OyAgIC8vIHRvIGFsbG93IGV4ZWN1dGluZyBjb21tYW5kcworCisgICAgdXNpbmcgQ29tbWFuZFN1Y2Nlc3NDYWxsYmFjayA9IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPjsKKyAgICB1c2luZyBHZXRDb25maWdDYWxsYmFjayA9IHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLCBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZyk+OworICAgIHVzaW5nIEdldEN1cnJlbnRDb25maWdTdWNjZXNzQ2FsbGJhY2sgPSBzdGQ6OmZ1bmN0aW9uPHZvaWQodm9pZCogY29uZmlnRGF0YSk+OworICAgIHVzaW5nIEdldFN1cHBvcnRlZENvbmZpZ3NTdWNjZXNzQ2FsbGJhY2sgPQorICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKHVpbnQzMl90IHN1cHBvcnRlZENvbmZpZ3MsIHZvaWQqIGNvbmZpZ3NEYXRhKT47CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqc0NvbnRleHRSZXN1bHRPZkNvbW1hbmQ7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKnNDb250ZXh0Q2FsbFRvQ29tbWFuZDsKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqc0NvbnRleHRDYWxsRnVuY3Rpb247CisKKyAgICBib29sIG1Jc0Nsb3NlZDsKKyAgICBlZmZlY3RfaGFuZGxlX3QgbUhhbmRsZTsKKyAgICBzcDxBdWRpb0J1ZmZlcldyYXBwZXI+IG1JbkJ1ZmZlcjsKKyAgICBzcDxBdWRpb0J1ZmZlcldyYXBwZXI+IG1PdXRCdWZmZXI7CisgICAgc3RkOjphdG9taWM8YXVkaW9fYnVmZmVyX3QqPiBtSGFsSW5CdWZmZXJQdHI7CisgICAgc3RkOjphdG9taWM8YXVkaW9fYnVmZmVyX3QqPiBtSGFsT3V0QnVmZmVyUHRyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjphdG9taWM8Ym9vbD4gbVN0b3BQcm9jZXNzVGhyZWFkOworICAgIHNwPFRocmVhZD4gbVByb2Nlc3NUaHJlYWQ7CisKKyAgICB2aXJ0dWFsIH5FZmZlY3QoKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBzaXplX3QgYWxpZ25lZFNpemVJbihzaXplX3Qgcyk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gaGlkbFZlY1RvSGFsKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8VD4mIHZlYywgdWludDMyX3QqIGhhbERhdGFTaXplKTsKKyAgICBzdGF0aWMgdm9pZCBlZmZlY3RBdXhDaGFubmVsc0NvbmZpZ0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCBjaGFubmVsX2NvbmZpZ190JiBoYWxDb25maWcsIEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnKiBjb25maWcpOworICAgIHN0YXRpYyB2b2lkIGVmZmVjdEF1eENoYW5uZWxzQ29uZmlnVG9IYWwoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnLCBjaGFubmVsX2NvbmZpZ190KiBoYWxDb25maWcpOworICAgIHN0YXRpYyB2b2lkIGVmZmVjdEJ1ZmZlckNvbmZpZ0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCBidWZmZXJfY29uZmlnX3QmIGhhbENvbmZpZywgRWZmZWN0QnVmZmVyQ29uZmlnKiBjb25maWcpOworICAgIHN0YXRpYyB2b2lkIGVmZmVjdEJ1ZmZlckNvbmZpZ1RvSGFsKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0QnVmZmVyQ29uZmlnJiBjb25maWcsIGJ1ZmZlcl9jb25maWdfdCogaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBlZmZlY3RDb25maWdGcm9tSGFsKGNvbnN0IGVmZmVjdF9jb25maWdfdCYgaGFsQ29uZmlnLCBFZmZlY3RDb25maWcqIGNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgZWZmZWN0Q29uZmlnVG9IYWwoY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsIGVmZmVjdF9jb25maWdfdCogaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBlZmZlY3RPZmZsb2FkUGFyYW1Ub0hhbCgKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIG9mZmxvYWQsIGVmZmVjdF9vZmZsb2FkX3BhcmFtX3QqIGhhbE9mZmxvYWQpOworICAgIHN0YXRpYyBzdGQ6OnZlY3Rvcjx1aW50OF90PiBwYXJhbWV0ZXJUb0hhbCgKKyAgICAgICAgICAgIHVpbnQzMl90IHBhcmFtU2l6ZSwgY29uc3Qgdm9pZCogcGFyYW1EYXRhLCB1aW50MzJfdCB2YWx1ZVNpemUsIGNvbnN0IHZvaWQqKiB2YWx1ZURhdGEpOworCisgICAgUmVzdWx0IGFuYWx5emVDb21tYW5kU3RhdHVzKAorICAgICAgICAgICAgY29uc3QgY2hhciogY29tbWFuZE5hbWUsIGNvbnN0IGNoYXIqIGNvbnRleHQsIHN0YXR1c190IHN0YXR1cyk7CisgICAgUmVzdWx0IGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICBjb25zdCBjaGFyKiBmdW5jTmFtZSwKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIHN1YkZ1bmNOYW1lLAorICAgICAgICAgICAgY29uc3QgY2hhciogY29udGV4dERlc2NyaXB0aW9uLAorICAgICAgICAgICAgc3RhdHVzX3Qgc3RhdHVzKTsKKyAgICB2b2lkIGdldENvbmZpZ0ltcGwoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgR2V0Q29uZmlnQ2FsbGJhY2sgY2IpOworICAgIFJlc3VsdCBnZXRDdXJyZW50Q29uZmlnSW1wbCgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgdWludDMyX3QgY29uZmlnU2l6ZSwgR2V0Q3VycmVudENvbmZpZ1N1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpOworICAgIFJlc3VsdCBnZXRTdXBwb3J0ZWRDb25maWdzSW1wbCgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgR2V0U3VwcG9ydGVkQ29uZmlnc1N1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpOworICAgIFJlc3VsdCBzZW5kQ29tbWFuZChpbnQgY29tbWFuZENvZGUsIGNvbnN0IGNoYXIqIGNvbW1hbmROYW1lKTsKKyAgICBSZXN1bHQgc2VuZENvbW1hbmQoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgdWludDMyX3Qgc2l6ZSwgdm9pZCogZGF0YSk7CisgICAgUmVzdWx0IHNlbmRDb21tYW5kUmV0dXJuaW5nRGF0YSgKKyAgICAgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsIHVpbnQzMl90KiByZXBseVNpemUsIHZvaWQqIHJlcGx5RGF0YSk7CisgICAgUmVzdWx0IHNlbmRDb21tYW5kUmV0dXJuaW5nRGF0YSgKKyAgICAgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgICAgICB1aW50MzJfdCBzaXplLCB2b2lkKiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QqIHJlcGx5U2l6ZSwgdm9pZCogcmVwbHlEYXRhKTsKKyAgICBSZXN1bHQgc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSk7CisgICAgUmVzdWx0IHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzKAorICAgICAgICAgICAgaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgdWludDMyX3Qgc2l6ZSwgdm9pZCogZGF0YSk7CisgICAgUmVzdWx0IHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzQW5kRGF0YSgKKyAgICAgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgICAgICB1aW50MzJfdCBzaXplLCB2b2lkKiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QqIHJlcGx5U2l6ZSwgdm9pZCogcmVwbHlEYXRhLAorICAgICAgICAgICAgdWludDMyX3QgbWluUmVwbHlTaXplLAorICAgICAgICAgICAgQ29tbWFuZFN1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpOworICAgIFJlc3VsdCBzZXRDb25maWdJbXBsKAorICAgICAgICAgICAgaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0VGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRWZmZWN0c0ZhY3RvcnkuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdHNGYWN0b3J5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjJhOTIyCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdHNGYWN0b3J5LmNwcApAQCAtMCwwICsxLDIwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiRWZmZWN0RmFjdG9yeUhBTCIKKyNpbmNsdWRlIDxtZWRpYS9FZmZlY3RzRmFjdG9yeUFwaS5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpb19lZmZlY3RzL2VmZmVjdF9hZWMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfYWdjLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2Jhc3Nib29zdC5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpb19lZmZlY3RzL2VmZmVjdF9kb3dubWl4Lmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2Vudmlyb25tZW50YWxyZXZlcmIuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfZXF1YWxpemVyLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2xvdWRuZXNzZW5oYW5jZXIuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfbnMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfcHJlc2V0cmV2ZXJiLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X3ZpcnR1YWxpemVyLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X3Zpc3VhbGl6ZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSAiQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuaCIKKyNpbmNsdWRlICJBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oIgorI2luY2x1ZGUgIkJhc3NCb29zdEVmZmVjdC5oIgorI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisjaW5jbHVkZSAiRG93bm1peEVmZmVjdC5oIgorI2luY2x1ZGUgIkVmZmVjdHNGYWN0b3J5LmgiCisjaW5jbHVkZSAiSGlkbFV0aWxzLmgiCisjaW5jbHVkZSAiRWZmZWN0LmgiCisjaW5jbHVkZSAiRWZmZWN0TWFwLmgiCisjaW5jbHVkZSAiRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdC5oIgorI2luY2x1ZGUgIkVxdWFsaXplckVmZmVjdC5oIgorI2luY2x1ZGUgIkxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaCIKKyNpbmNsdWRlICJOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiCisjaW5jbHVkZSAiUHJlc2V0UmV2ZXJiRWZmZWN0LmgiCisjaW5jbHVkZSAiVmlydHVhbGl6ZXJFZmZlY3QuaCIKKyNpbmNsdWRlICJWaXN1YWxpemVyRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBzdGF0aWMKK3NwPElFZmZlY3Q+IEVmZmVjdHNGYWN0b3J5OjpkaXNwYXRjaEVmZmVjdEluc3RhbmNlQ3JlYXRpb24oCisgICAgICAgIGNvbnN0IGVmZmVjdF9kZXNjcmlwdG9yX3QmIGhhbERlc2NyaXB0b3IsIGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpIHsKKyAgICBjb25zdCBlZmZlY3RfdXVpZF90ICpoYWxVdWlkID0gJmhhbERlc2NyaXB0b3IudHlwZTsKKyAgICBpZiAobWVtY21wKGhhbFV1aWQsIEZYX0lJRF9BRUMsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0KGhhbmRsZSk7CisgICAgfSBlbHNlIGlmIChtZW1jbXAoaGFsVXVpZCwgRlhfSUlEX0FHQywgc2l6ZW9mKGVmZmVjdF91dWlkX3QpKSA9PSAwKSB7CisgICAgICAgIHJldHVybiBuZXcgQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBTTF9JSURfQkFTU0JPT1NULCBzaXplb2YoZWZmZWN0X3V1aWRfdCkpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBCYXNzQm9vc3RFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBFRkZFQ1RfVUlJRF9ET1dOTUlYLCBzaXplb2YoZWZmZWN0X3V1aWRfdCkpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEb3dubWl4RWZmZWN0KGhhbmRsZSk7CisgICAgfSBlbHNlIGlmIChtZW1jbXAoaGFsVXVpZCwgU0xfSUlEX0VOVklST05NRU5UQUxSRVZFUkIsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBTTF9JSURfRVFVQUxJWkVSLCBzaXplb2YoZWZmZWN0X3V1aWRfdCkpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBFcXVhbGl6ZXJFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBGWF9JSURfTE9VRE5FU1NfRU5IQU5DRVIsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IExvdWRuZXNzRW5oYW5jZXJFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBGWF9JSURfTlMsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IE5vaXNlU3VwcHJlc3Npb25FZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBTTF9JSURfUFJFU0VUUkVWRVJCLCBzaXplb2YoZWZmZWN0X3V1aWRfdCkpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcmVzZXRSZXZlcmJFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBTTF9JSURfVklSVFVBTElaRVIsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IFZpcnR1YWxpemVyRWZmZWN0KGhhbmRsZSk7CisgICAgfSBlbHNlIGlmIChtZW1jbXAoaGFsVXVpZCwgU0xfSUlEX1ZJU1VBTElaQVRJT04sIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IFZpc3VhbGl6ZXJFZmZlY3QoaGFuZGxlKTsKKyAgICB9CisgICAgcmV0dXJuIG5ldyBFZmZlY3QoaGFuZGxlKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeSBmb2xsb3cuCitSZXR1cm48dm9pZD4gRWZmZWN0c0ZhY3Rvcnk6OmdldEFsbERlc2NyaXB0b3JzKGdldEFsbERlc2NyaXB0b3JzX2NiIF9oaWRsX2NiKSAgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpPSyk7CisgICAgaGlkbF92ZWM8RWZmZWN0RGVzY3JpcHRvcj4gcmVzdWx0OworICAgIHVpbnQzMl90IG51bUVmZmVjdHM7CisgICAgc3RhdHVzX3Qgc3RhdHVzOworCityZXN0YXJ0OgorICAgIG51bUVmZmVjdHMgPSAwOworICAgIHN0YXR1cyA9IEVmZmVjdFF1ZXJ5TnVtYmVyRWZmZWN0cygmbnVtRWZmZWN0cyk7CisgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgQUxPR0UoIkVycm9yIHF1ZXJ5aW5nIG51bWJlciBvZiBlZmZlY3RzOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICByZXN1bHQucmVzaXplKG51bUVmZmVjdHMpOworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBudW1FZmZlY3RzOyArK2kpIHsKKyAgICAgICAgZWZmZWN0X2Rlc2NyaXB0b3JfdCBoYWxEZXNjcmlwdG9yOworICAgICAgICBzdGF0dXMgPSBFZmZlY3RRdWVyeUVmZmVjdChpLCAmaGFsRGVzY3JpcHRvcik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgICAgIGVmZmVjdERlc2NyaXB0b3JGcm9tSGFsKGhhbERlc2NyaXB0b3IsICZyZXN1bHRbaV0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0UoIkVycm9yIHF1ZXJ5aW5nIGVmZmVjdCBhdCBwb3NpdGlvbiAlZCAvICVkOiAlcyIsCisgICAgICAgICAgICAgICAgICAgIGksIG51bUVmZmVjdHMsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgICAgICAgICAgY2FzZSAtRU5PU1lTOiB7CisgICAgICAgICAgICAgICAgICAgIC8vIEVmZmVjdCBsaXN0IGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgICAgICAgICBnb3RvIHJlc3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgLUVOT0VOVDogeworICAgICAgICAgICAgICAgICAgICAvLyBObyBtb3JlIGVmZmVjdHMgYXZhaWxhYmxlLgorICAgICAgICAgICAgICAgICAgICByZXN1bHQucmVzaXplKGkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNpemUoMCk7CisgICAgICAgICAgICAgICAgICAgIHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCitleGl0OgorICAgIF9oaWRsX2NiKHJldHZhbCwgcmVzdWx0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRWZmZWN0c0ZhY3Rvcnk6OmdldERlc2NyaXB0b3IoY29uc3QgVXVpZCYgdWlkLCBnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgeworICAgIGVmZmVjdF91dWlkX3QgaGFsVXVpZDsKKyAgICBIaWRsVXRpbHM6OnV1aWRUb0hhbCh1aWQsICZoYWxVdWlkKTsKKyAgICBlZmZlY3RfZGVzY3JpcHRvcl90IGhhbERlc2NyaXB0b3I7CisgICAgc3RhdHVzX3Qgc3RhdHVzID0gRWZmZWN0R2V0RGVzY3JpcHRvcigmaGFsVXVpZCwgJmhhbERlc2NyaXB0b3IpOworICAgIEVmZmVjdERlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBlZmZlY3REZXNjcmlwdG9yRnJvbUhhbChoYWxEZXNjcmlwdG9yLCAmZGVzY3JpcHRvcik7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok9LKTsKKyAgICBpZiAoc3RhdHVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCJFcnJvciBxdWVyeWluZyBlZmZlY3QgZGVzY3JpcHRvciBmb3IgJXM6ICVzIiwKKyAgICAgICAgICAgICAgICB1dWlkVG9TdHJpbmcoaGFsVXVpZCkuY19zdHIoKSwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBpZiAoc3RhdHVzID09IC1FTk9FTlQpIHsKKyAgICAgICAgICAgIHJldHZhbCA9IFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBFZmZlY3RzRmFjdG9yeTo6Y3JlYXRlRWZmZWN0KAorICAgICAgICBjb25zdCBVdWlkJiB1aWQsIGludDMyX3Qgc2Vzc2lvbiwgaW50MzJfdCBpb0hhbmRsZSwgY3JlYXRlRWZmZWN0X2NiIF9oaWRsX2NiKSAgeworICAgIGVmZmVjdF91dWlkX3QgaGFsVXVpZDsKKyAgICBIaWRsVXRpbHM6OnV1aWRUb0hhbCh1aWQsICZoYWxVdWlkKTsKKyAgICBlZmZlY3RfaGFuZGxlX3QgaGFuZGxlOworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpPSyk7CisgICAgc3RhdHVzX3Qgc3RhdHVzID0gRWZmZWN0Q3JlYXRlKCZoYWxVdWlkLCBzZXNzaW9uLCBpb0hhbmRsZSwgJmhhbmRsZSk7CisgICAgc3A8SUVmZmVjdD4gZWZmZWN0OworICAgIHVpbnQ2NF90IGVmZmVjdElkID0gRWZmZWN0TWFwOjpJTlZBTElEX0lEOworICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgZWZmZWN0X2Rlc2NyaXB0b3JfdCBoYWxEZXNjcmlwdG9yOworICAgICAgICBtZW1zZXQoJmhhbERlc2NyaXB0b3IsIDAsIHNpemVvZihlZmZlY3RfZGVzY3JpcHRvcl90KSk7CisgICAgICAgIHN0YXR1cyA9ICgqaGFuZGxlKS0+Z2V0X2Rlc2NyaXB0b3IoaGFuZGxlLCAmaGFsRGVzY3JpcHRvcik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgICAgIGVmZmVjdCA9IGRpc3BhdGNoRWZmZWN0SW5zdGFuY2VDcmVhdGlvbihoYWxEZXNjcmlwdG9yLCBoYW5kbGUpOworICAgICAgICAgICAgZWZmZWN0SWQgPSBFZmZlY3RNYXA6OmdldEluc3RhbmNlKCkuYWRkKGhhbmRsZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiRXJyb3IgcXVlcnlpbmcgZWZmZWN0IGRlc2NyaXB0b3IgZm9yICVzOiAlcyIsCisgICAgICAgICAgICAgICAgICAgIHV1aWRUb1N0cmluZyhoYWxVdWlkKS5jX3N0cigpLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgICAgICAgICBFZmZlY3RSZWxlYXNlKGhhbmRsZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICBBTE9HRSgiRXJyb3IgY3JlYXRpbmcgZWZmZWN0ICVzOiAlcyIsIHV1aWRUb1N0cmluZyhoYWxVdWlkKS5jX3N0cigpLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgICAgIGlmIChzdGF0dXMgPT0gLUVOT0VOVCkgeworICAgICAgICAgICAgcmV0dmFsID0gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgZWZmZWN0LCBlZmZlY3RJZCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdHNGYWN0b3J5OjpkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSAgeworICAgIGlmIChmZC5nZXROYXRpdmVIYW5kbGUoKSAhPSBudWxscHRyICYmIGZkLT5udW1GZHMgPT0gMSkgeworICAgICAgICBFZmZlY3REdW1wRWZmZWN0cyhmZC0+ZGF0YVswXSk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKKworSUVmZmVjdHNGYWN0b3J5KiBISURMX0ZFVENIX0lFZmZlY3RzRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBFZmZlY3RzRmFjdG9yeSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdHNGYWN0b3J5LmggYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRWZmZWN0c0ZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjlhNTM0Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdHNGYWN0b3J5LmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9FRkZFQ1RTRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRUZGRUNUU0ZBQ1RPUllfSAorCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdC5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3RzRmFjdG9yeS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OlV1aWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEVmZmVjdHNGYWN0b3J5IDogcHVibGljIElFZmZlY3RzRmFjdG9yeSB7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeSBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldEFsbERlc2NyaXB0b3JzKGdldEFsbERlc2NyaXB0b3JzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoY29uc3QgVXVpZCYgdWlkLCBnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZUVmZmVjdCgKKyAgICAgICAgICAgIGNvbnN0IFV1aWQmIHVpZCwgaW50MzJfdCBzZXNzaW9uLCBpbnQzMl90IGlvSGFuZGxlLCBjcmVhdGVFZmZlY3RfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3RhdGljIHNwPElFZmZlY3Q+IGRpc3BhdGNoRWZmZWN0SW5zdGFuY2VDcmVhdGlvbigKKyAgICAgICAgICAgIGNvbnN0IGVmZmVjdF9kZXNjcmlwdG9yX3QmIGhhbERlc2NyaXB0b3IsIGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworfTsKKworZXh0ZXJuICJDIiBJRWZmZWN0c0ZhY3RvcnkqIEhJRExfRkVUQ0hfSUVmZmVjdHNGYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0VGRkVDVFNGQUNUT1JZX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NmZmMzY4Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuY3BwCkBAIC0wLDAgKzEsMzE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJFbnZSZXZlcmJfSEFMIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpIHsKK30KKworRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6fkVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QoKSB7fQorCit2b2lkIEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICBjb25zdCB0X3JldmVyYl9zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OkFsbFByb3BlcnRpZXMqIHByb3BlcnRpZXMpIHsKKyAgICBwcm9wZXJ0aWVzLT5yb29tTGV2ZWwgPSBoYWxQcm9wZXJ0aWVzLnJvb21MZXZlbDsKKyAgICBwcm9wZXJ0aWVzLT5yb29tSGZMZXZlbCA9IGhhbFByb3BlcnRpZXMucm9vbUhGTGV2ZWw7CisgICAgcHJvcGVydGllcy0+ZGVjYXlUaW1lID0gaGFsUHJvcGVydGllcy5kZWNheVRpbWU7CisgICAgcHJvcGVydGllcy0+ZGVjYXlIZlJhdGlvID0gaGFsUHJvcGVydGllcy5kZWNheUhGUmF0aW87CisgICAgcHJvcGVydGllcy0+cmVmbGVjdGlvbnNMZXZlbCA9IGhhbFByb3BlcnRpZXMucmVmbGVjdGlvbnNMZXZlbDsKKyAgICBwcm9wZXJ0aWVzLT5yZWZsZWN0aW9uc0RlbGF5ID0gaGFsUHJvcGVydGllcy5yZWZsZWN0aW9uc0RlbGF5OworICAgIHByb3BlcnRpZXMtPnJldmVyYkxldmVsID0gaGFsUHJvcGVydGllcy5yZXZlcmJMZXZlbDsKKyAgICBwcm9wZXJ0aWVzLT5yZXZlcmJEZWxheSA9IGhhbFByb3BlcnRpZXMucmV2ZXJiRGVsYXk7CisgICAgcHJvcGVydGllcy0+ZGlmZnVzaW9uID0gaGFsUHJvcGVydGllcy5kaWZmdXNpb247CisgICAgcHJvcGVydGllcy0+ZGVuc2l0eSA9IGhhbFByb3BlcnRpZXMuZGVuc2l0eTsKK30KKwordm9pZCBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0Ojpwcm9wZXJ0aWVzVG9IYWwoCisgICAgICAgIGNvbnN0IElFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICB0X3JldmVyYl9zZXR0aW5ncyogaGFsUHJvcGVydGllcykgeworICAgIGhhbFByb3BlcnRpZXMtPnJvb21MZXZlbCA9IHByb3BlcnRpZXMucm9vbUxldmVsOworICAgIGhhbFByb3BlcnRpZXMtPnJvb21IRkxldmVsID0gcHJvcGVydGllcy5yb29tSGZMZXZlbDsKKyAgICBoYWxQcm9wZXJ0aWVzLT5kZWNheVRpbWUgPSBwcm9wZXJ0aWVzLmRlY2F5VGltZTsKKyAgICBoYWxQcm9wZXJ0aWVzLT5kZWNheUhGUmF0aW8gPSBwcm9wZXJ0aWVzLmRlY2F5SGZSYXRpbzsKKyAgICBoYWxQcm9wZXJ0aWVzLT5yZWZsZWN0aW9uc0xldmVsID0gcHJvcGVydGllcy5yZWZsZWN0aW9uc0xldmVsOworICAgIGhhbFByb3BlcnRpZXMtPnJlZmxlY3Rpb25zRGVsYXkgPSBwcm9wZXJ0aWVzLnJlZmxlY3Rpb25zRGVsYXk7CisgICAgaGFsUHJvcGVydGllcy0+cmV2ZXJiTGV2ZWwgPSBwcm9wZXJ0aWVzLnJldmVyYkxldmVsOworICAgIGhhbFByb3BlcnRpZXMtPnJldmVyYkRlbGF5ID0gcHJvcGVydGllcy5yZXZlcmJEZWxheTsKKyAgICBoYWxQcm9wZXJ0aWVzLT5kaWZmdXNpb24gPSBwcm9wZXJ0aWVzLmRpZmZ1c2lvbjsKKyAgICBoYWxQcm9wZXJ0aWVzLT5kZW5zaXR5ID0gcHJvcGVydGllcy5kZW5zaXR5OworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0Ojppbml0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5pbml0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnJlc2V0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5yZXNldCgpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjplbmFibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmVuYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEFuZEdldFZvbHVtZSh2b2x1bWVzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvTW9kZShtb2RlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWdSZXZlcnNlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRBdXhDaGFubmVsc0NvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldEF1eENoYW5uZWxzQ29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPm9mZmxvYWQocGFyYW0pOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldERlc2NyaXB0b3IoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQcm9jZXNzQnVmZmVycyhpbkJ1ZmZlciwgb3V0QnVmZmVyKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmNvbW1hbmQoCisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y29tbWFuZChjb21tYW5kSWQsIGRhdGEsIHJlc3VsdE1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZU1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKGZlYXR1cmVJZCwgbWF4Q29uZmlncywgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnRGF0YSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmNsb3NlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5jbG9zZSgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0QnlwYXNzKGJvb2wgYnlwYXNzKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fQllQQVNTLCBieXBhc3MpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0QnlwYXNzKGdldEJ5cGFzc19jYiBfaGlkbF9jYikgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0SW50ZWdlclBhcmFtKFJFVkVSQl9QQVJBTV9CWVBBU1MsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0Um9vbUxldmVsKGludDE2X3Qgcm9vbUxldmVsKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUk9PTV9MRVZFTCwgcm9vbUxldmVsKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldFJvb21MZXZlbChnZXRSb29tTGV2ZWxfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fUk9PTV9MRVZFTCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXRSb29tSGZMZXZlbChpbnQxNl90IHJvb21IZkxldmVsKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUk9PTV9IRl9MRVZFTCwgcm9vbUhmTGV2ZWwpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0Um9vbUhmTGV2ZWwoZ2V0Um9vbUhmTGV2ZWxfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fUk9PTV9IRl9MRVZFTCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXREZWNheVRpbWUodWludDMyX3QgZGVjYXlUaW1lKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fREVDQVlfVElNRSwgZGVjYXlUaW1lKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldERlY2F5VGltZShnZXREZWNheVRpbWVfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fREVDQVlfVElNRSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXREZWNheUhmUmF0aW8oaW50MTZfdCBkZWNheUhmUmF0aW8pICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFJFVkVSQl9QQVJBTV9ERUNBWV9IRl9SQVRJTywgZGVjYXlIZlJhdGlvKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldERlY2F5SGZSYXRpbyhnZXREZWNheUhmUmF0aW9fY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fREVDQVlfSEZfUkFUSU8sIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0UmVmbGVjdGlvbnNMZXZlbChpbnQxNl90IHJlZmxlY3Rpb25zTGV2ZWwpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFJFVkVSQl9QQVJBTV9SRUZMRUNUSU9OU19MRVZFTCwgcmVmbGVjdGlvbnNMZXZlbCk7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXRSZWZsZWN0aW9uc0xldmVsKGdldFJlZmxlY3Rpb25zTGV2ZWxfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fUkVGTEVDVElPTlNfTEVWRUwsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0UmVmbGVjdGlvbnNEZWxheSh1aW50MzJfdCByZWZsZWN0aW9uc0RlbGF5KSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUkVGTEVDVElPTlNfREVMQVksIHJlZmxlY3Rpb25zRGVsYXkpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0UmVmbGVjdGlvbnNEZWxheShnZXRSZWZsZWN0aW9uc0RlbGF5X2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX1JFRkxFQ1RJT05TX0RFTEFZLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldFJldmVyYkxldmVsKGludDE2X3QgcmV2ZXJiTGV2ZWwpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFJFVkVSQl9QQVJBTV9SRVZFUkJfTEVWRUwsIHJldmVyYkxldmVsKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldFJldmVyYkxldmVsKGdldFJldmVyYkxldmVsX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX1JFVkVSQl9MRVZFTCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXRSZXZlcmJEZWxheSh1aW50MzJfdCByZXZlcmJEZWxheSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUkVWRVJCX0RFTEFZLCByZXZlcmJEZWxheSk7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXRSZXZlcmJEZWxheShnZXRSZXZlcmJEZWxheV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX1JFVkVSQl9ERUxBWSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXREaWZmdXNpb24oaW50MTZfdCBkaWZmdXNpb24pICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFJFVkVSQl9QQVJBTV9ESUZGVVNJT04sIGRpZmZ1c2lvbik7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXREaWZmdXNpb24oZ2V0RGlmZnVzaW9uX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX0RJRkZVU0lPTiwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXREZW5zaXR5KGludDE2X3QgZGVuc2l0eSkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oUkVWRVJCX1BBUkFNX0RFTlNJVFksIGRlbnNpdHkpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0RGVuc2l0eShnZXREZW5zaXR5X2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX0RFTlNJVFksIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0QWxsUHJvcGVydGllcygKKyAgICAgICAgY29uc3QgSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMpICB7CisgICAgdF9yZXZlcmJfc2V0dGluZ3MgaGFsUHJvcGVydGllczsKKyAgICBwcm9wZXJ0aWVzVG9IYWwocHJvcGVydGllcywgJmhhbFByb3BlcnRpZXMpOworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUFJPUEVSVElFUywgaGFsUHJvcGVydGllcyk7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXRBbGxQcm9wZXJ0aWVzKGdldEFsbFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpICB7CisgICAgdF9yZXZlcmJfc2V0dGluZ3MgaGFsUHJvcGVydGllczsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oUkVWRVJCX1BBUkFNX1BST1BFUlRJRVMsIGhhbFByb3BlcnRpZXMpOworICAgIEFsbFByb3BlcnRpZXMgcHJvcGVydGllczsKKyAgICBwcm9wZXJ0aWVzRnJvbUhhbChoYWxQcm9wZXJ0aWVzLCAmcHJvcGVydGllcyk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBwcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk0Y2FhYwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRU5WSVJPTk1FTlRBTFJFVkVSQkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRU5WSVJPTk1FTlRBTFJFVkVSQkVGRkVDVF9ICisKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfZW52aXJvbm1lbnRhbHJldmVyYi5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJFZmZlY3QuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Nb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpBdWRpb0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdEF1eENoYW5uZWxzQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0Q29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0RGVzY3JpcHRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdE9mZmxvYWRQYXJhbWV0ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QgOiBwdWJsaWMgSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QgeworICAgIGV4cGxpY2l0IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWcoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXNldCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBlbmFibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ1JldmVyc2UoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXV4Q2hhbm5lbHNDb25maWcoY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IG9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QnlwYXNzKGJvb2wgYnlwYXNzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEJ5cGFzcyhnZXRCeXBhc3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRSb29tTGV2ZWwoaW50MTZfdCByb29tTGV2ZWwpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Um9vbUxldmVsKGdldFJvb21MZXZlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFJvb21IZkxldmVsKGludDE2X3Qgcm9vbUhmTGV2ZWwpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Um9vbUhmTGV2ZWwoZ2V0Um9vbUhmTGV2ZWxfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZWNheVRpbWUodWludDMyX3QgZGVjYXlUaW1lKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlY2F5VGltZShnZXREZWNheVRpbWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZWNheUhmUmF0aW8oaW50MTZfdCBkZWNheUhmUmF0aW8pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVjYXlIZlJhdGlvKGdldERlY2F5SGZSYXRpb19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFJlZmxlY3Rpb25zTGV2ZWwoaW50MTZfdCByZWZsZWN0aW9uc0xldmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFJlZmxlY3Rpb25zTGV2ZWwoZ2V0UmVmbGVjdGlvbnNMZXZlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFJlZmxlY3Rpb25zRGVsYXkodWludDMyX3QgcmVmbGVjdGlvbnNEZWxheSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRSZWZsZWN0aW9uc0RlbGF5KGdldFJlZmxlY3Rpb25zRGVsYXlfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRSZXZlcmJMZXZlbChpbnQxNl90IHJldmVyYkxldmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFJldmVyYkxldmVsKGdldFJldmVyYkxldmVsX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UmV2ZXJiRGVsYXkodWludDMyX3QgcmV2ZXJiRGVsYXkpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UmV2ZXJiRGVsYXkoZ2V0UmV2ZXJiRGVsYXlfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREaWZmdXNpb24oaW50MTZfdCBkaWZmdXNpb24pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlmZnVzaW9uKGdldERpZmZ1c2lvbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERlbnNpdHkoaW50MTZfdCBkZW5zaXR5KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlbnNpdHkoZ2V0RGVuc2l0eV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEFsbFByb3BlcnRpZXMoCisgICAgICAgICAgICBjb25zdCBJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6QWxsUHJvcGVydGllcyYgcHJvcGVydGllcykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBbGxQcm9wZXJ0aWVzKGdldEFsbFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPEVmZmVjdD4gbUVmZmVjdDsKKworICAgIHZpcnR1YWwgfkVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QoKTsKKworICAgIHZvaWQgcHJvcGVydGllc0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCB0X3JldmVyYl9zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgICAgIElFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpBbGxQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzKTsKKyAgICB2b2lkIHByb3BlcnRpZXNUb0hhbCgKKyAgICAgICAgICAgIGNvbnN0IElFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICAgICAgdF9yZXZlcmJfc2V0dGluZ3MqIGhhbFByb3BlcnRpZXMpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9FTlZJUk9OTUVOVEFMUkVWRVJCRUZGRUNUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FcXVhbGl6ZXJFZmZlY3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VxdWFsaXplckVmZmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA4ZDhlYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FcXVhbGl6ZXJFZmZlY3QuY3BwCkBAIC0wLDAgKzEsMzExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeS5oPgorCisjZGVmaW5lIExPR19UQUcgIkVxdWFsaXplcl9IQUwiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkVxdWFsaXplckVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworRXF1YWxpemVyRWZmZWN0OjpFcXVhbGl6ZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitFcXVhbGl6ZXJFZmZlY3Q6On5FcXVhbGl6ZXJFZmZlY3QoKSB7fQorCit2b2lkIEVxdWFsaXplckVmZmVjdDo6cHJvcGVydGllc0Zyb21IYWwoCisgICAgICAgIGNvbnN0IHRfZXF1YWxpemVyX3NldHRpbmdzJiBoYWxQcm9wZXJ0aWVzLAorICAgICAgICBJRXF1YWxpemVyRWZmZWN0OjpBbGxQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzKSB7CisgICAgcHJvcGVydGllcy0+Y3VyUHJlc2V0ID0gaGFsUHJvcGVydGllcy5jdXJQcmVzZXQ7CisgICAgLy8gdF9lcXVhbGl6ZXJfc2V0dGluZ3MgaW5jb3JyZWN0bHkgZGVmaW5lcyBiYW5kTGV2ZWxzIGFzIHVpbnQxNl90LAorICAgIC8vIHdoZXJlYXMgdGhlIGFjdHVhbCB0eXBlIG9mIHZhbHVlcyB1c2VkIGJ5IGVmZmVjdHMgaXMgaW50MTZfdC4KKyAgICBjb25zdCBpbnQxNl90KiBzaWduZWRCYW5kTGV2ZWxzID0KKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgaW50MTZfdCo+KCZoYWxQcm9wZXJ0aWVzLmJhbmRMZXZlbHNbMF0pOworICAgIHByb3BlcnRpZXMtPmJhbmRMZXZlbHMuc2V0VG9FeHRlcm5hbCgKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8aW50MTZfdCo+KHNpZ25lZEJhbmRMZXZlbHMpLCBoYWxQcm9wZXJ0aWVzLm51bUJhbmRzKTsKK30KKworc3RkOjp2ZWN0b3I8dWludDhfdD4gRXF1YWxpemVyRWZmZWN0Ojpwcm9wZXJ0aWVzVG9IYWwoCisgICAgICAgIGNvbnN0IElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMsCisgICAgICAgIHRfZXF1YWxpemVyX3NldHRpbmdzKiogaGFsUHJvcGVydGllcykgeworICAgIHNpemVfdCBiYW5kc1NpemUgPSBwcm9wZXJ0aWVzLmJhbmRMZXZlbHMuc2l6ZSgpICogc2l6ZW9mKHVpbnQxNl90KTsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBoYWxCdWZmZXIoc2l6ZW9mKHRfZXF1YWxpemVyX3NldHRpbmdzKSArIGJhbmRzU2l6ZSwgMCk7CisgICAgKmhhbFByb3BlcnRpZXMgPSByZWludGVycHJldF9jYXN0PHRfZXF1YWxpemVyX3NldHRpbmdzKj4oJmhhbEJ1ZmZlclswXSk7CisgICAgKCpoYWxQcm9wZXJ0aWVzKS0+Y3VyUHJlc2V0ID0gcHJvcGVydGllcy5jdXJQcmVzZXQ7CisgICAgKCpoYWxQcm9wZXJ0aWVzKS0+bnVtQmFuZHMgPSBwcm9wZXJ0aWVzLmJhbmRMZXZlbHMuc2l6ZSgpOworICAgIG1lbWNweSgoKmhhbFByb3BlcnRpZXMpLT5iYW5kTGV2ZWxzLCAmcHJvcGVydGllcy5iYW5kTGV2ZWxzWzBdLCBiYW5kc1NpemUpOworICAgIHJldHVybiBoYWxCdWZmZXI7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6aW5pdCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+aW5pdCgpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6cmVzZXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnJlc2V0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6ZW5hYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5lbmFibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6c2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6c2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBbmRHZXRWb2x1bWUodm9sdW1lcywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Nb2RlKG1vZGUpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnNldENvbmZpZ1JldmVyc2UoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnUmV2ZXJzZShjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0OjpnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnUmV2ZXJzZShfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEF1eENoYW5uZWxzQ29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRBdXhDaGFubmVsc0NvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdXhDaGFubmVsc0NvbmZpZyhjb25maWcpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6Om9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+b2ZmbG9hZChwYXJhbSk7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXREZXNjcmlwdG9yKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFByb2Nlc3NCdWZmZXJzKGluQnVmZmVyLCBvdXRCdWZmZXIpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0Ojpjb21tYW5kKAorICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNvbW1hbmQoY29tbWFuZElkLCBkYXRhLCByZXN1bHRNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0OjpnZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlTWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0OjpnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZShmZWF0dXJlSWQsIG1heENvbmZpZ3MsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdEYXRhKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpjbG9zZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y2xvc2UoKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFcXVhbGl6ZXJFZmZlY3QgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0TnVtQmFuZHMoZ2V0TnVtQmFuZHNfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShFUV9QQVJBTV9OVU1fQkFORFMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0TGV2ZWxSYW5nZShnZXRMZXZlbFJhbmdlX2NiIF9oaWRsX2NiKSAgeworICAgIGludDE2X3QgaGFsTGV2ZWxzWzJdID0geyAwLCAwIH07CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKEVRX1BBUkFNX0xFVkVMX1JBTkdFLCBoYWxMZXZlbHMpOworICAgIF9oaWRsX2NiKHJldHZhbCwgaGFsTGV2ZWxzWzBdLCBoYWxMZXZlbHNbMV0pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6c2V0QmFuZExldmVsKHVpbnQxNl90IGJhbmQsIGludDE2X3QgbGV2ZWwpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKEVRX1BBUkFNX0JBTkRfTEVWRUwsIGJhbmQsIGxldmVsKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0QmFuZExldmVsKHVpbnQxNl90IGJhbmQsIGdldEJhbmRMZXZlbF9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQxNl90IGhhbExldmVsID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oRVFfUEFSQU1fQkFORF9MRVZFTCwgYmFuZCwgaGFsTGV2ZWwpOworICAgIF9oaWRsX2NiKHJldHZhbCwgaGFsTGV2ZWwpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldEJhbmRDZW50ZXJGcmVxdWVuY3koCisgICAgICAgIHVpbnQxNl90IGJhbmQsIGdldEJhbmRDZW50ZXJGcmVxdWVuY3lfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDMyX3QgaGFsRnJlcSA9IDA7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKEVRX1BBUkFNX0NFTlRFUl9GUkVRLCBiYW5kLCBoYWxGcmVxKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIGhhbEZyZXEpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldEJhbmRGcmVxdWVuY3lSYW5nZSgKKyAgICAgICAgdWludDE2X3QgYmFuZCwgZ2V0QmFuZEZyZXF1ZW5jeVJhbmdlX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQzMl90IGhhbEZyZXFzWzJdID0geyAwLCAwIH07CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKEVRX1BBUkFNX0JBTkRfRlJFUV9SQU5HRSwgYmFuZCwgaGFsRnJlcXMpOworICAgIF9oaWRsX2NiKHJldHZhbCwgaGFsRnJlcXNbMF0sIGhhbEZyZXFzWzFdKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0OjpnZXRCYW5kRm9yRnJlcXVlbmN5KHVpbnQzMl90IGZyZXEsIGdldEJhbmRGb3JGcmVxdWVuY3lfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDE2X3QgaGFsQmFuZCA9IDA7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKEVRX1BBUkFNX0dFVF9CQU5ELCBmcmVxLCBoYWxCYW5kKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIGhhbEJhbmQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldFByZXNldE5hbWVzKGdldFByZXNldE5hbWVzX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQxNl90IGhhbFByZXNldENvdW50ID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oRVFfUEFSQU1fR0VUX05VTV9PRl9QUkVTRVRTLCBoYWxQcmVzZXRDb3VudCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IHByZXNldE5hbWVzOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBwcmVzZXROYW1lcy5yZXNpemUoaGFsUHJlc2V0Q291bnQpOworICAgICAgICBmb3IgKHVpbnQxNl90IGkgPSAwOyBpIDwgaGFsUHJlc2V0Q291bnQ7ICsraSkgeworICAgICAgICAgICAgY2hhciBoYWxQcmVzZXROYW1lW0VGRkVDVF9TVFJJTkdfTEVOX01BWF07CisgICAgICAgICAgICByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbShFUV9QQVJBTV9HRVRfUFJFU0VUX05BTUUsIGksIGhhbFByZXNldE5hbWUpOworICAgICAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgICAgcHJlc2V0TmFtZXNbaV0gPSBoYWxQcmVzZXROYW1lOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcmVzZXROYW1lcy5yZXNpemUoaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCBwcmVzZXROYW1lcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRDdXJyZW50UHJlc2V0KHVpbnQxNl90IHByZXNldCkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oRVFfUEFSQU1fQ1VSX1BSRVNFVCwgcHJlc2V0KTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0Q3VycmVudFByZXNldChnZXRDdXJyZW50UHJlc2V0X2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oRVFfUEFSQU1fQ1VSX1BSRVNFVCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnNldEFsbFByb3BlcnRpZXMoCisgICAgICAgIGNvbnN0IElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMpICB7CisgICAgdF9lcXVhbGl6ZXJfc2V0dGluZ3MgKmhhbFByb3BlcnRpZXNQdHIgPSBudWxscHRyOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGhhbEJ1ZmZlciA9IHByb3BlcnRpZXNUb0hhbChwcm9wZXJ0aWVzLCAmaGFsUHJvcGVydGllc1B0cik7CisgICAgdWludDMyX3QgcGFyYW1JZCA9IEVRX1BBUkFNX1BST1BFUlRJRVM7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICBzaXplb2YocGFyYW1JZCksICZwYXJhbUlkLCBoYWxCdWZmZXIuc2l6ZSgpLCBoYWxQcm9wZXJ0aWVzUHRyKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0QWxsUHJvcGVydGllcyhnZXRBbGxQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQxNl90IG51bUJhbmRzID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oRVFfUEFSQU1fTlVNX0JBTkRTLCBudW1CYW5kcyk7CisgICAgQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzOworICAgIGlmIChyZXR2YWwgIT0gUmVzdWx0OjpPSykgeworICAgICAgICBfaGlkbF9jYihyZXR2YWwsIHByb3BlcnRpZXMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzaXplX3QgdmFsdWVTaXplID0gc2l6ZW9mKHRfZXF1YWxpemVyX3NldHRpbmdzKSArIHNpemVvZihpbnQxNl90KSAqIG51bUJhbmRzOworICAgIHVpbnQzMl90IHBhcmFtSWQgPSBFUV9QQVJBTV9QUk9QRVJUSUVTOworICAgIHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICBzaXplb2YocGFyYW1JZCksICZwYXJhbUlkLCB2YWx1ZVNpemUsCisgICAgICAgICAgICBbJl0gKHVpbnQzMl90LCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgICAgICBjb25zdCB0X2VxdWFsaXplcl9zZXR0aW5ncyogaGFsUHJvcGVydGllcyA9CisgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHRfZXF1YWxpemVyX3NldHRpbmdzKj4odmFsdWVEYXRhKTsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzRnJvbUhhbCgqaGFsUHJvcGVydGllcywgJnByb3BlcnRpZXMpOworICAgICAgICAgICAgfSk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBwcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VxdWFsaXplckVmZmVjdC5oIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VxdWFsaXplckVmZmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllOGQ3NWIKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRXF1YWxpemVyRWZmZWN0LmgKQEAgLTAsMCArMSwxNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRVFVQUxJWkVSRUZGRUNUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9FUVVBTElaRVJFRkZFQ1RfSAorCisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2VxdWFsaXplci5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFcXVhbGl6ZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFcXVhbGl6ZXJFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBFcXVhbGl6ZXJFZmZlY3QgOiBwdWJsaWMgSUVxdWFsaXplckVmZmVjdCB7CisgICAgZXhwbGljaXQgRXF1YWxpemVyRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVxdWFsaXplckVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldE51bUJhbmRzKGdldE51bUJhbmRzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldExldmVsUmFuZ2UoZ2V0TGV2ZWxSYW5nZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEJhbmRMZXZlbCh1aW50MTZfdCBiYW5kLCBpbnQxNl90IGxldmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEJhbmRMZXZlbCh1aW50MTZfdCBiYW5kLCBnZXRCYW5kTGV2ZWxfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QmFuZENlbnRlckZyZXF1ZW5jeSgKKyAgICAgICAgICAgIHVpbnQxNl90IGJhbmQsIGdldEJhbmRDZW50ZXJGcmVxdWVuY3lfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QmFuZEZyZXF1ZW5jeVJhbmdlKHVpbnQxNl90IGJhbmQsIGdldEJhbmRGcmVxdWVuY3lSYW5nZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRCYW5kRm9yRnJlcXVlbmN5KHVpbnQzMl90IGZyZXEsIGdldEJhbmRGb3JGcmVxdWVuY3lfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJlc2V0TmFtZXMoZ2V0UHJlc2V0TmFtZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50UHJlc2V0KHVpbnQxNl90IHByZXNldCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDdXJyZW50UHJlc2V0KGdldEN1cnJlbnRQcmVzZXRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBbGxQcm9wZXJ0aWVzKGNvbnN0IElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QWxsUHJvcGVydGllcyhnZXRBbGxQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICBzcDxFZmZlY3Q+IG1FZmZlY3Q7CisKKyAgICB2aXJ0dWFsIH5FcXVhbGl6ZXJFZmZlY3QoKTsKKworICAgIHZvaWQgcHJvcGVydGllc0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCB0X2VxdWFsaXplcl9zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgICAgIElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMqIHByb3BlcnRpZXMpOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHByb3BlcnRpZXNUb0hhbCgKKyAgICAgICAgICAgIGNvbnN0IElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMsCisgICAgICAgICAgICB0X2VxdWFsaXplcl9zZXR0aW5ncyoqIGhhbFByb3BlcnRpZXMpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9FUVVBTElaRVJFRkZFQ1RfSApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0xvdWRuZXNzRW5oYW5jZXJFZmZlY3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0xvdWRuZXNzRW5oYW5jZXJFZmZlY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkYTVlYjAKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5jcHAKQEAgLTAsMCArMSwyMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2xvdWRuZXNzZW5oYW5jZXIuaD4KKworI2RlZmluZSBMT0dfVEFHICJMb3VkbmVzc0VuaGFuY2VyX0hBTCIKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfYWVjLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0xvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OkxvdWRuZXNzRW5oYW5jZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitMb3VkbmVzc0VuaGFuY2VyRWZmZWN0Ojp+TG91ZG5lc3NFbmhhbmNlckVmZmVjdCgpIHt9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OmluaXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmluaXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0Q29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZyhjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6cmVzZXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnJlc2V0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OmVuYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZW5hYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OmRpc2FibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmRpc2FibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKHZvbHVtZXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKHZvbHVtZXMpOworfQorCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Nb2RlKG1vZGUpOworfQorCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRDb25maWdSZXZlcnNlKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZ1JldmVyc2UoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OnNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRJbnB1dERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZ1JldmVyc2UoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKG1heENvbmZpZ3MsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OmdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEF1eENoYW5uZWxzQ29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0QXV4Q2hhbm5lbHNDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXV4Q2hhbm5lbHNDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvU291cmNlKHNvdXJjZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6Om9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+b2ZmbG9hZChwYXJhbSk7Cit9CisKK1JldHVybjx2b2lkPiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0RGVzY3JpcHRvcihfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpwcmVwYXJlRm9yUHJvY2Vzc2luZygKKyAgICAgICAgcHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cHJlcGFyZUZvclByb2Nlc3NpbmcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFByb2Nlc3NCdWZmZXJzKGluQnVmZmVyLCBvdXRCdWZmZXIpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5jb21tYW5kKGNvbW1hbmRJZCwgZGF0YSwgcmVzdWx0TWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZSk7Cit9CisKK1JldHVybjx2b2lkPiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpnZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlTWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBtYXhDb25maWdzLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdEYXRhKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Y2xvc2UoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNsb3NlKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJTG91ZG5lc3NFbmhhbmNlckVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRUYXJnZXRHYWluKGludDMyX3QgdGFyZ2V0R2Fpbk1iKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShMT1VETkVTU19FTkhBTkNFUl9ERUZBVUxUX1RBUkdFVF9HQUlOX01CLCB0YXJnZXRHYWluTWIpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0VGFyZ2V0R2FpbihnZXRUYXJnZXRHYWluX2NiIF9oaWRsX2NiKSAgeworICAgIC8vIEFPU1AgTG91ZG5lc3MgRW5oYW5jZXIgZXhwZWN0cyB0aGUgc2l6ZSBvZiB0aGUgcmVxdWVzdCB0byBub3QgaW5jbHVkZSB0aGUKKyAgICAvLyBzaXplIG9mIHRoZSBwYXJhbWV0ZXIuCisgICAgdWludDMyX3QgcGFyYW1JZCA9IExPVURORVNTX0VOSEFOQ0VSX0RFRkFVTFRfVEFSR0VUX0dBSU5fTUI7CisgICAgdWludDMyX3QgdGFyZ2V0R2Fpbk1iID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW1ldGVySW1wbCgKKyAgICAgICAgICAgIHNpemVvZihwYXJhbUlkKSwgJnBhcmFtSWQsCisgICAgICAgICAgICAwLCBzaXplb2YodGFyZ2V0R2Fpbk1iKSwKKyAgICAgICAgICAgIFsmXSAodWludDMyX3QsIGNvbnN0IHZvaWQqIHZhbHVlRGF0YSkgeworICAgICAgICAgICAgICAgIG1lbWNweSgmdGFyZ2V0R2Fpbk1iLCB2YWx1ZURhdGEsIHNpemVvZih0YXJnZXRHYWluTWIpKTsKKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgdGFyZ2V0R2Fpbk1iKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0xvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Mb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM5YjhkNgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Mb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfTE9VRE5FU1NFTkhBTkNFUkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfTE9VRE5FU1NFTkhBTkNFUkVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgTG91ZG5lc3NFbmhhbmNlckVmZmVjdCA6IHB1YmxpYyBJTG91ZG5lc3NFbmhhbmNlckVmZmVjdCB7CisgICAgZXhwbGljaXQgTG91ZG5lc3NFbmhhbmNlckVmZmVjdChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBpbml0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZygKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlc2V0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGVuYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBkaXNhYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiB2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdXhDaGFubmVsc0NvbmZpZyhjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gb2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJlcGFyZUZvclByb2Nlc3NpbmcocHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjb21tYW5kKAorICAgICAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlKCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklMb3VkbmVzc0VuaGFuY2VyRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRUYXJnZXRHYWluKGludDMyX3QgdGFyZ2V0R2Fpbk1iKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFRhcmdldEdhaW4oZ2V0VGFyZ2V0R2Fpbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+TG91ZG5lc3NFbmhhbmNlckVmZmVjdCgpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9MT1VETkVTU0VOSEFOQ0VSRUZGRUNUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Ob2lzZVN1cHByZXNzaW9uRWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Ob2lzZVN1cHByZXNzaW9uRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzRlMDZkCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L05vaXNlU3VwcHJlc3Npb25FZmZlY3QuY3BwCkBAIC0wLDAgKzEsMjM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJOU19FZmZlY3RfSEFMIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpOb2lzZVN1cHByZXNzaW9uRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpIHsKK30KKworTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6fk5vaXNlU3VwcHJlc3Npb25FZmZlY3QoKSB7fQorCit2b2lkIE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICBjb25zdCB0X25zX3NldHRpbmdzJiBoYWxQcm9wZXJ0aWVzLAorICAgICAgICBJTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6QWxsUHJvcGVydGllcyogcHJvcGVydGllcykgeworICAgIHByb3BlcnRpZXMtPmxldmVsID0gTGV2ZWwoaGFsUHJvcGVydGllcy5sZXZlbCk7CisgICAgcHJvcGVydGllcy0+dHlwZSA9IFR5cGUoaGFsUHJvcGVydGllcy50eXBlKTsKK30KKwordm9pZCBOb2lzZVN1cHByZXNzaW9uRWZmZWN0Ojpwcm9wZXJ0aWVzVG9IYWwoCisgICAgICAgIGNvbnN0IElOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICB0X25zX3NldHRpbmdzKiBoYWxQcm9wZXJ0aWVzKSB7CisgICAgaGFsUHJvcGVydGllcy0+bGV2ZWwgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4ocHJvcGVydGllcy5sZXZlbCk7CisgICAgaGFsUHJvcGVydGllcy0+dHlwZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pihwcm9wZXJ0aWVzLnR5cGUpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0Ojppbml0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5pbml0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnJlc2V0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5yZXNldCgpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjplbmFibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmVuYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEFuZEdldFZvbHVtZSh2b2x1bWVzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvTW9kZShtb2RlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWdSZXZlcnNlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRBdXhDaGFubmVsc0NvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldEF1eENoYW5uZWxzQ29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPm9mZmxvYWQocGFyYW0pOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldERlc2NyaXB0b3IoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQcm9jZXNzQnVmZmVycyhpbkJ1ZmZlciwgb3V0QnVmZmVyKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmNvbW1hbmQoCisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y29tbWFuZChjb21tYW5kSWQsIGRhdGEsIHJlc3VsdE1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZU1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKGZlYXR1cmVJZCwgbWF4Q29uZmlncywgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnRGF0YSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmNsb3NlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5jbG9zZSgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SU5vaXNlU3VwcHJlc3Npb25FZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0U3VwcHJlc3Npb25MZXZlbChJTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6TGV2ZWwgbGV2ZWwpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKE5TX1BBUkFNX0xFVkVMLCBzdGF0aWNfY2FzdDxpbnQzMl90PihsZXZlbCkpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0U3VwcHJlc3Npb25MZXZlbChnZXRTdXBwcmVzc2lvbkxldmVsX2NiIF9oaWRsX2NiKSAgeworICAgIGludDMyX3QgaGFsTGV2ZWwgPSAwOworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbShOU19QQVJBTV9MRVZFTCwgaGFsTGV2ZWwpOworICAgIF9oaWRsX2NiKHJldHZhbCwgTGV2ZWwoaGFsTGV2ZWwpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpzZXRTdXBwcmVzc2lvblR5cGUoSU5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OlR5cGUgdHlwZSkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oTlNfUEFSQU1fVFlQRSwgc3RhdGljX2Nhc3Q8aW50MzJfdD4odHlwZSkpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0U3VwcHJlc3Npb25UeXBlKGdldFN1cHByZXNzaW9uVHlwZV9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQzMl90IGhhbFR5cGUgPSAwOworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbShOU19QQVJBTV9UWVBFLCBoYWxUeXBlKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIFR5cGUoaGFsVHlwZSkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldEFsbFByb3BlcnRpZXMoCisgICAgICAgIGNvbnN0IElOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKSAgeworICAgIHRfbnNfc2V0dGluZ3MgaGFsUHJvcGVydGllczsKKyAgICBwcm9wZXJ0aWVzVG9IYWwocHJvcGVydGllcywgJmhhbFByb3BlcnRpZXMpOworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShOU19QQVJBTV9QUk9QRVJUSUVTLCBoYWxQcm9wZXJ0aWVzKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldEFsbFByb3BlcnRpZXMoZ2V0QWxsUHJvcGVydGllc19jYiBfaGlkbF9jYikgIHsKKyAgICB0X25zX3NldHRpbmdzIGhhbFByb3BlcnRpZXM7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKE5TX1BBUkFNX1BST1BFUlRJRVMsIGhhbFByb3BlcnRpZXMpOworICAgIEFsbFByb3BlcnRpZXMgcHJvcGVydGllczsKKyAgICBwcm9wZXJ0aWVzRnJvbUhhbChoYWxQcm9wZXJ0aWVzLCAmcHJvcGVydGllcyk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBwcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L05vaXNlU3VwcHJlc3Npb25FZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Ob2lzZVN1cHByZXNzaW9uRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ5MTIwMQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Ob2lzZVN1cHByZXNzaW9uRWZmZWN0LmgKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfTk9JU0VTVVBQUkVTU0lPTkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfTk9JU0VTVVBQUkVTU0lPTkVGRkVDVF9ICisKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfbnMuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JTm9pc2VTdXBwcmVzc2lvbkVmZmVjdC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSAiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6QXVkaW9CdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RBdXhDaGFubmVsc0NvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdENvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdERlc2NyaXB0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RPZmZsb2FkUGFyYW1ldGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SU5vaXNlU3VwcHJlc3Npb25FZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBOb2lzZVN1cHByZXNzaW9uRWZmZWN0IDogcHVibGljIElOb2lzZVN1cHByZXNzaW9uRWZmZWN0IHsKKyAgICBleHBsaWNpdCBOb2lzZVN1cHByZXNzaW9uRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SU5vaXNlU3VwcHJlc3Npb25FZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IHNldFN1cHByZXNzaW9uTGV2ZWwoSU5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OkxldmVsIGxldmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHByZXNzaW9uTGV2ZWwoZ2V0U3VwcHJlc3Npb25MZXZlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFN1cHByZXNzaW9uVHlwZShJTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6VHlwZSB0eXBlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHByZXNzaW9uVHlwZShnZXRTdXBwcmVzc2lvblR5cGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBbGxQcm9wZXJ0aWVzKAorICAgICAgICAgICAgY29uc3QgSU5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QWxsUHJvcGVydGllcyhnZXRBbGxQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICBzcDxFZmZlY3Q+IG1FZmZlY3Q7CisKKyAgICB2aXJ0dWFsIH5Ob2lzZVN1cHByZXNzaW9uRWZmZWN0KCk7CisKKyAgICB2b2lkIHByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICAgICAgY29uc3QgdF9uc19zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgICAgIElOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpBbGxQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzKTsKKyAgICB2b2lkIHByb3BlcnRpZXNUb0hhbCgKKyAgICAgICAgICAgIGNvbnN0IElOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICAgICAgdF9uc19zZXR0aW5ncyogaGFsUHJvcGVydGllcyk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX05PSVNFU1VQUFJFU1NJT05FRkZFQ1RfSApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ByZXNldFJldmVyYkVmZmVjdC5jcHAgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvUHJlc2V0UmV2ZXJiRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjE3NzkxCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ByZXNldFJldmVyYkVmZmVjdC5jcHAKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlByZXNldFJldmVyYl9IQUwiCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X3ByZXNldHJldmVyYi5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJQcmVzZXRSZXZlcmJFZmZlY3QuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK1ByZXNldFJldmVyYkVmZmVjdDo6UHJlc2V0UmV2ZXJiRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpIHsKK30KKworUHJlc2V0UmV2ZXJiRWZmZWN0Ojp+UHJlc2V0UmV2ZXJiRWZmZWN0KCkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0Ojppbml0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5pbml0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6c2V0Q29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZyhjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjplbmFibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmVuYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmRpc2FibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmRpc2FibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEFuZEdldFZvbHVtZSh2b2x1bWVzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKHZvbHVtZXMpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6c2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRJbnB1dERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWdSZXZlcnNlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXNldFJldmVyYkVmZmVjdDo6Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKG1heENvbmZpZ3MsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXNldFJldmVyYkVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldEF1eENoYW5uZWxzQ29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6c2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvU291cmNlKHNvdXJjZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXNldFJldmVyYkVmZmVjdDo6Z2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldERlc2NyaXB0b3IoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpwcmVwYXJlRm9yUHJvY2Vzc2luZygKKyAgICAgICAgcHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cHJlcGFyZUZvclByb2Nlc3NpbmcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmNvbW1hbmQoCisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y29tbWFuZChjb21tYW5kSWQsIGRhdGEsIHJlc3VsdE1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpzZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZSk7Cit9CisKK1JldHVybjx2b2lkPiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKGZlYXR1cmVJZCwgbWF4Q29uZmlncywgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmNsb3NlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5jbG9zZSgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SVByZXNldFJldmVyYkVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldFByZXNldChJUHJlc2V0UmV2ZXJiRWZmZWN0OjpQcmVzZXQgcHJlc2V0KSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUFJFU0VULCBzdGF0aWNfY2FzdDx0X3JldmVyYl9wcmVzZXRzPihwcmVzZXQpKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXNldFJldmVyYkVmZmVjdDo6Z2V0UHJlc2V0KGdldFByZXNldF9jYiBfaGlkbF9jYikgIHsKKyAgICB0X3JldmVyYl9wcmVzZXRzIGhhbFByZXNldCA9IFJFVkVSQl9QUkVTRVRfTk9ORTsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oUkVWRVJCX1BBUkFNX1BSRVNFVCwgaGFsUHJlc2V0KTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIFByZXNldChoYWxQcmVzZXQpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ByZXNldFJldmVyYkVmZmVjdC5oIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ByZXNldFJldmVyYkVmZmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlYjA3NGEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvUHJlc2V0UmV2ZXJiRWZmZWN0LmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfUFJFU0VUUkVWRVJCRUZGRUNUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9QUkVTRVRSRVZFUkJFRkZFQ1RfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lQcmVzZXRSZXZlcmJFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklQcmVzZXRSZXZlcmJFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBQcmVzZXRSZXZlcmJFZmZlY3QgOiBwdWJsaWMgSVByZXNldFJldmVyYkVmZmVjdCB7CisgICAgZXhwbGljaXQgUHJlc2V0UmV2ZXJiRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SVByZXNldFJldmVyYkVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJlc2V0KElQcmVzZXRSZXZlcmJFZmZlY3Q6OlByZXNldCBwcmVzZXQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJlc2V0KGdldFByZXNldF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+UHJlc2V0UmV2ZXJiRWZmZWN0KCk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX1BSRVNFVFJFVkVSQkVGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvVmlydHVhbGl6ZXJFZmZlY3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ZpcnR1YWxpemVyRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWZlNTJmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ZpcnR1YWxpemVyRWZmZWN0LmNwcApAQCAtMCwwICsxLDI0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxtZW1vcnkuaD4KKworI2RlZmluZSBMT0dfVEFHICJWaXJ0dWFsaXplcl9IQUwiCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X3ZpcnR1YWxpemVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIlZpcnR1YWxpemVyRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitWaXJ0dWFsaXplckVmZmVjdDo6VmlydHVhbGl6ZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitWaXJ0dWFsaXplckVmZmVjdDo6flZpcnR1YWxpemVyRWZmZWN0KCkge30KKwordm9pZCBWaXJ0dWFsaXplckVmZmVjdDo6c3BlYWtlckFuZ2xlc0Zyb21IYWwoCisgICAgICAgIGNvbnN0IGludDMyX3QqIGhhbEFuZ2xlcywgdWludDMyX3QgY2hhbm5lbENvdW50LCBoaWRsX3ZlYzxTcGVha2VyQW5nbGU+JiBzcGVha2VyQW5nbGVzKSB7CisgICAgc3BlYWtlckFuZ2xlcy5yZXNpemUoY2hhbm5lbENvdW50KTsKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgY2hhbm5lbENvdW50OyArK2kpIHsKKyAgICAgICAgc3BlYWtlckFuZ2xlc1tpXS5tYXNrID0gQXVkaW9DaGFubmVsTWFzaygqaGFsQW5nbGVzKyspOworICAgICAgICBzcGVha2VyQW5nbGVzW2ldLmF6aW11dGggPSAqaGFsQW5nbGVzKys7CisgICAgICAgIHNwZWFrZXJBbmdsZXNbaV0uZWxldmF0aW9uID0gKmhhbEFuZ2xlcysrOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmluaXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmluaXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmVuYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZW5hYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKHZvbHVtZXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpzZXRDb25maWdSZXZlcnNlKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZ1JldmVyc2UoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpcnR1YWxpemVyRWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZ1JldmVyc2UoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6c2V0QXV4Q2hhbm5lbHNDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXV4Q2hhbm5lbHNDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpcnR1YWxpemVyRWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0RGVzY3JpcHRvcihfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5jb21tYW5kKGNvbW1hbmRJZCwgZGF0YSwgcmVzdWx0TWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBtYXhDb25maWdzLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6Y2xvc2UoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNsb3NlKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJVmlydHVhbGl6ZXJFZmZlY3QgZm9sbG93LgorUmV0dXJuPGJvb2w+IFZpcnR1YWxpemVyRWZmZWN0Ojppc1N0cmVuZ3RoU3VwcG9ydGVkKCkgIHsKKyAgICBib29sIGhhbFN1cHBvcnRlZCA9IGZhbHNlOworICAgIG1FZmZlY3QtPmdldFBhcmFtKFZJUlRVQUxJWkVSX1BBUkFNX1NUUkVOR1RIX1NVUFBPUlRFRCwgaGFsU3VwcG9ydGVkKTsKKyAgICByZXR1cm4gaGFsU3VwcG9ydGVkOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6c2V0U3RyZW5ndGgodWludDE2X3Qgc3RyZW5ndGgpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFZJUlRVQUxJWkVSX1BBUkFNX1NUUkVOR1RILCBzdHJlbmd0aCk7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0U3RyZW5ndGgoZ2V0U3RyZW5ndGhfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShWSVJUVUFMSVpFUl9QQVJBTV9TVFJFTkdUSCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmdldFZpcnR1YWxTcGVha2VyQW5nbGVzKAorICAgICAgICBBdWRpb0NoYW5uZWxNYXNrIG1hc2ssIEF1ZGlvRGV2aWNlIGRldmljZSwgZ2V0VmlydHVhbFNwZWFrZXJBbmdsZXNfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDMyX3QgY2hhbm5lbENvdW50ID0gYXVkaW9fY2hhbm5lbF9jb3VudF9mcm9tX291dF9tYXNrKAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9fY2hhbm5lbF9tYXNrX3Q+KG1hc2spKTsKKyAgICBzaXplX3QgaGFsU3BlYWtlckFuZ2xlc1NpemUgPSBzaXplb2YoaW50MzJfdCkgKiAzICogY2hhbm5lbENvdW50OworICAgIHVpbnQzMl90IGhhbFBhcmFtWzNdID0geworICAgICAgICBWSVJUVUFMSVpFUl9QQVJBTV9WSVJUVUFMX1NQRUFLRVJfQU5HTEVTLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19jaGFubmVsX21hc2tfdD4obWFzayksCisgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oZGV2aWNlKQorICAgIH07CisgICAgaGlkbF92ZWM8U3BlYWtlckFuZ2xlPiBzcGVha2VyQW5nbGVzOworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbWV0ZXJJbXBsKAorICAgICAgICAgICAgc2l6ZW9mKGhhbFBhcmFtKSwgaGFsUGFyYW0sCisgICAgICAgICAgICBoYWxTcGVha2VyQW5nbGVzU2l6ZSwKKyAgICAgICAgICAgIFsmXSAodWludDMyX3QgdmFsdWVTaXplLCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWVTaXplID4gaGFsU3BlYWtlckFuZ2xlc1NpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVTaXplID0gaGFsU3BlYWtlckFuZ2xlc1NpemU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVNpemUgPCBoYWxTcGVha2VyQW5nbGVzU2l6ZSkgeworICAgICAgICAgICAgICAgICAgICBjaGFubmVsQ291bnQgPSB2YWx1ZVNpemUgLyAoc2l6ZW9mKGludDMyX3QpICogMyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNwZWFrZXJBbmdsZXNGcm9tSGFsKAorICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBpbnQzMl90Kj4odmFsdWVEYXRhKSwgY2hhbm5lbENvdW50LCBzcGVha2VyQW5nbGVzKTsKKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgc3BlYWtlckFuZ2xlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmZvcmNlVmlydHVhbGl6YXRpb25Nb2RlKEF1ZGlvRGV2aWNlIGRldmljZSkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oCisgICAgICAgICAgICBWSVJUVUFMSVpFUl9QQVJBTV9GT1JDRV9WSVJUVUFMSVpBVElPTl9NT0RFLCBzdGF0aWNfY2FzdDxhdWRpb19kZXZpY2VzX3Q+KGRldmljZSkpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmdldFZpcnR1YWxpemF0aW9uTW9kZShnZXRWaXJ0dWFsaXphdGlvbk1vZGVfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDMyX3QgaGFsTW9kZSA9IDA7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKFZJUlRVQUxJWkVSX1BBUkFNX0ZPUkNFX1ZJUlRVQUxJWkFUSU9OX01PREUsIGhhbE1vZGUpOworICAgIF9oaWRsX2NiKHJldHZhbCwgQXVkaW9EZXZpY2UoaGFsTW9kZSkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvVmlydHVhbGl6ZXJFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXJ0dWFsaXplckVmZmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzNjc3NWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvVmlydHVhbGl6ZXJFZmZlY3QuaApAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9WSVJUVUFMSVpFUkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfVklSVFVBTElaRVJFRkZFQ1RfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lWaXJ0dWFsaXplckVmZmVjdC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSAiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NoYW5uZWxNYXNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklWaXJ0dWFsaXplckVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFZpcnR1YWxpemVyRWZmZWN0IDogcHVibGljIElWaXJ0dWFsaXplckVmZmVjdCB7CisgICAgZXhwbGljaXQgVmlydHVhbGl6ZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWcoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXNldCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBlbmFibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ1JldmVyc2UoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXV4Q2hhbm5lbHNDb25maWcoY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IG9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJVmlydHVhbGl6ZXJFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxib29sPiBpc1N0cmVuZ3RoU3VwcG9ydGVkKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFN0cmVuZ3RoKHVpbnQxNl90IHN0cmVuZ3RoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN0cmVuZ3RoKGdldFN0cmVuZ3RoX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFZpcnR1YWxTcGVha2VyQW5nbGVzKAorICAgICAgICAgICAgQXVkaW9DaGFubmVsTWFzayBtYXNrLAorICAgICAgICAgICAgQXVkaW9EZXZpY2UgZGV2aWNlLAorICAgICAgICAgICAgZ2V0VmlydHVhbFNwZWFrZXJBbmdsZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBmb3JjZVZpcnR1YWxpemF0aW9uTW9kZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0VmlydHVhbGl6YXRpb25Nb2RlKGdldFZpcnR1YWxpemF0aW9uTW9kZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+VmlydHVhbGl6ZXJFZmZlY3QoKTsKKworICAgIHZvaWQgc3BlYWtlckFuZ2xlc0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCBpbnQzMl90KiBoYWxBbmdsZXMsIHVpbnQzMl90IGNoYW5uZWxDb3VudCwgaGlkbF92ZWM8U3BlYWtlckFuZ2xlPiYgc3BlYWtlckFuZ2xlcyk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX1ZJUlRVQUxJWkVSRUZGRUNUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXN1YWxpemVyRWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXN1YWxpemVyRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2QzMjQwCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1Zpc3VhbGl6ZXJFZmZlY3QuY3BwCkBAIC0wLDAgKzEsMjY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWaXN1YWxpemVyX0hBTCIKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfdmlzdWFsaXplci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJWaXN1YWxpemVyRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitWaXN1YWxpemVyRWZmZWN0OjpWaXN1YWxpemVyRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpLCBtQ2FwdHVyZVNpemUoMCksIG1NZWFzdXJlbWVudE1vZGUoTWVhc3VyZW1lbnRNb2RlOjpOT05FKSB7Cit9CisKK1Zpc3VhbGl6ZXJFZmZlY3Q6On5WaXN1YWxpemVyRWZmZWN0KCkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6aW5pdCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+aW5pdCgpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXRDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6ZW5hYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5lbmFibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6ZGlzYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZGlzYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gVmlzdWFsaXplckVmZmVjdDo6c2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBbmRHZXRWb2x1bWUodm9sdW1lcywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgeworICAgIHJldHVybiBtRWZmZWN0LT52b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24odm9sdW1lcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldENvbmZpZ1JldmVyc2UoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnUmV2ZXJzZShjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldElucHV0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnUmV2ZXJzZShfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MobWF4Q29uZmlncywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gVmlzdWFsaXplckVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXRBdXhDaGFubmVsc0NvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdXhDaGFubmVsc0NvbmZpZyhjb25maWcpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Tb3VyY2Uoc291cmNlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXREZXNjcmlwdG9yKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKAorICAgICAgICBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0Ojpjb21tYW5kKAorICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNvbW1hbmQoY29tbWFuZElkLCBkYXRhLCByZXN1bHRNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZShmZWF0dXJlSWQsIG1heENvbmZpZ3MsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpjbG9zZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y2xvc2UoKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklWaXN1YWxpemVyRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldENhcHR1cmVTaXplKHVpbnQxNl90IGNhcHR1cmVTaXplKSAgeworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5zZXRQYXJhbShWSVNVQUxJWkVSX1BBUkFNX0NBUFRVUkVfU0laRSwgY2FwdHVyZVNpemUpOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBtQ2FwdHVyZVNpemUgPSBjYXB0dXJlU2l6ZTsKKyAgICB9CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldENhcHR1cmVTaXplKGdldENhcHR1cmVTaXplX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oVklTVUFMSVpFUl9QQVJBTV9DQVBUVVJFX1NJWkUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6c2V0U2NhbGluZ01vZGUoSVZpc3VhbGl6ZXJFZmZlY3Q6OlNjYWxpbmdNb2RlIHNjYWxpbmdNb2RlKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShWSVNVQUxJWkVSX1BBUkFNX1NDQUxJTkdfTU9ERSwgc3RhdGljX2Nhc3Q8aW50MzJfdD4oc2NhbGluZ01vZGUpKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldFNjYWxpbmdNb2RlKGdldFNjYWxpbmdNb2RlX2NiIF9oaWRsX2NiKSAgeworICAgIGludDMyX3QgaGFsTW9kZTsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oVklTVUFMSVpFUl9QQVJBTV9TQ0FMSU5HX01PREUsIGhhbE1vZGUpOworICAgIF9oaWRsX2NiKHJldHZhbCwgU2NhbGluZ01vZGUoaGFsTW9kZSkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldExhdGVuY3kodWludDMyX3QgbGF0ZW5jeU1zKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShWSVNVQUxJWkVSX1BBUkFNX0xBVEVOQ1ksIGxhdGVuY3lNcyk7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRMYXRlbmN5KGdldExhdGVuY3lfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShWSVNVQUxJWkVSX1BBUkFNX0xBVEVOQ1ksIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6c2V0TWVhc3VyZW1lbnRNb2RlKAorICAgICAgICBJVmlzdWFsaXplckVmZmVjdDo6TWVhc3VyZW1lbnRNb2RlIG1lYXN1cmVtZW50TW9kZSkgIHsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+c2V0UGFyYW0oCisgICAgICAgICAgICBWSVNVQUxJWkVSX1BBUkFNX01FQVNVUkVNRU5UX01PREUsIHN0YXRpY19jYXN0PGludDMyX3Q+KG1lYXN1cmVtZW50TW9kZSkpOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBtTWVhc3VyZW1lbnRNb2RlID0gbWVhc3VyZW1lbnRNb2RlOworICAgIH0KKyAgICByZXR1cm4gcmV0dmFsOworfQorCitSZXR1cm48dm9pZD4gVmlzdWFsaXplckVmZmVjdDo6Z2V0TWVhc3VyZW1lbnRNb2RlKGdldE1lYXN1cmVtZW50TW9kZV9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQzMl90IGhhbE1vZGU7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKFZJU1VBTElaRVJfUEFSQU1fTUVBU1VSRU1FTlRfTU9ERSwgaGFsTW9kZSk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBNZWFzdXJlbWVudE1vZGUoaGFsTW9kZSkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpjYXB0dXJlKGNhcHR1cmVfY2IgX2hpZGxfY2IpICB7CisgICAgaWYgKG1DYXB0dXJlU2l6ZSA9PSAwKSB7CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVELCBoaWRsX3ZlYzx1aW50OF90PigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgdWludDMyX3QgaGFsQ2FwdHVyZVNpemUgPSBtQ2FwdHVyZVNpemU7CisgICAgdWludDhfdCBoYWxDYXB0dXJlW21DYXB0dXJlU2l6ZV07CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPnNlbmRDb21tYW5kUmV0dXJuaW5nRGF0YSgKKyAgICAgICAgICAgIFZJU1VBTElaRVJfQ01EX0NBUFRVUkUsICJWSVNVQUxJWkVSX0NBUFRVUkUiLCAmaGFsQ2FwdHVyZVNpemUsIGhhbENhcHR1cmUpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNhcHR1cmU7CisgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIGNhcHR1cmUuc2V0VG9FeHRlcm5hbCgmaGFsQ2FwdHVyZVswXSwgaGFsQ2FwdHVyZVNpemUpOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIGNhcHR1cmUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjptZWFzdXJlKG1lYXN1cmVfY2IgX2hpZGxfY2IpICB7CisgICAgaWYgKG1NZWFzdXJlbWVudE1vZGUgPT0gTWVhc3VyZW1lbnRNb2RlOjpOT05FKSB7CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVELCBNZWFzdXJlbWVudCgpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgaW50MzJfdCBoYWxNZWFzdXJlbWVudFtNRUFTVVJFTUVOVF9DT1VOVF07CisgICAgdWludDMyX3QgaGFsTWVhc3VyZW1lbnRTaXplID0gc2l6ZW9mKGhhbE1lYXN1cmVtZW50KTsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+c2VuZENvbW1hbmRSZXR1cm5pbmdEYXRhKAorICAgICAgICAgICAgVklTVUFMSVpFUl9DTURfTUVBU1VSRSwgIlZJU1VBTElaRVJfTUVBU1VSRSIsICZoYWxNZWFzdXJlbWVudFNpemUsIGhhbE1lYXN1cmVtZW50KTsKKyAgICBNZWFzdXJlbWVudCBtZWFzdXJlbWVudCA9IHsgLm1vZGUgPSBNZWFzdXJlbWVudE1vZGU6OlBFQUtfUk1TIH07CisgICAgbWVhc3VyZW1lbnQudmFsdWUucGVha0FuZFJtcy5wZWFrTWIgPSAwOworICAgIG1lYXN1cmVtZW50LnZhbHVlLnBlYWtBbmRSbXMucm1zTWIgPSAwOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBtZWFzdXJlbWVudC52YWx1ZS5wZWFrQW5kUm1zLnBlYWtNYiA9IGhhbE1lYXN1cmVtZW50W01FQVNVUkVNRU5UX0lEWF9QRUFLXTsKKyAgICAgICAgbWVhc3VyZW1lbnQudmFsdWUucGVha0FuZFJtcy5ybXNNYiA9IGhhbE1lYXN1cmVtZW50W01FQVNVUkVNRU5UX0lEWF9STVNdOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIG1lYXN1cmVtZW50KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1Zpc3VhbGl6ZXJFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXN1YWxpemVyRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ0MGNhOAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXN1YWxpemVyRWZmZWN0LmgKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfVklTVUFMSVpFUkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfVklTVUFMSVpFUkVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSVZpc3VhbGl6ZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklWaXN1YWxpemVyRWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgVmlzdWFsaXplckVmZmVjdCA6IHB1YmxpYyBJVmlzdWFsaXplckVmZmVjdCB7CisgICAgZXhwbGljaXQgVmlzdWFsaXplckVmZmVjdChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBpbml0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZygKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlc2V0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGVuYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBkaXNhYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiB2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdXhDaGFubmVsc0NvbmZpZyhjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gb2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJlcGFyZUZvclByb2Nlc3NpbmcocHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjb21tYW5kKAorICAgICAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlKCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklWaXN1YWxpemVyRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDYXB0dXJlU2l6ZSh1aW50MTZfdCBjYXB0dXJlU2l6ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDYXB0dXJlU2l6ZShnZXRDYXB0dXJlU2l6ZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFNjYWxpbmdNb2RlKElWaXN1YWxpemVyRWZmZWN0OjpTY2FsaW5nTW9kZSBzY2FsaW5nTW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTY2FsaW5nTW9kZShnZXRTY2FsaW5nTW9kZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldExhdGVuY3kodWludDMyX3QgbGF0ZW5jeU1zKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldExhdGVuY3koZ2V0TGF0ZW5jeV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldE1lYXN1cmVtZW50TW9kZShJVmlzdWFsaXplckVmZmVjdDo6TWVhc3VyZW1lbnRNb2RlIG1lYXN1cmVtZW50TW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNZWFzdXJlbWVudE1vZGUoZ2V0TWVhc3VyZW1lbnRNb2RlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNhcHR1cmUoY2FwdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBtZWFzdXJlKG1lYXN1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPEVmZmVjdD4gbUVmZmVjdDsKKyAgICB1aW50MTZfdCBtQ2FwdHVyZVNpemU7CisgICAgTWVhc3VyZW1lbnRNb2RlIG1NZWFzdXJlbWVudE1vZGU7CisKKyAgICB2aXJ0dWFsIH5WaXN1YWxpemVyRWZmZWN0KCk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX1ZJU1VBTElaRVJFRkZFQ1RfSApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC90eXBlcy5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzVlNGVmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKKworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBPSywKKyAgICBOT1RfSU5JVElBTElaRUQsCisgICAgSU5WQUxJRF9BUkdVTUVOVFMsCisgICAgSU5WQUxJRF9TVEFURSwKKyAgICBOT1RfU1VQUE9SVEVELAorICAgIFJFU1VMVF9UT09fQklHCit9OworCisvKioKKyAqIEVmZmVjdCBlbmdpbmUgY2FwYWJpbGl0aWVzL3JlcXVpcmVtZW50cyBmbGFncy4KKyAqCisgKiBEZWZpbml0aW9ucyBmb3IgZmxhZ3MgZmllbGQgb2YgZWZmZWN0IGRlc2NyaXB0b3IuCisgKgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgZGVzY3JpcHRpb24gICAgfCBiaXRzICAgfCB2YWx1ZXMKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IGNvbm5lY3Rpb24gICAgIHwgMC4uMiAgIHwgMCBpbnNlcnQ6IGFmdGVyIHRyYWNrIHByb2Nlc3MKKyAqIHwgbW9kZSAgICAgICAgICAgfCAgICAgICAgfCAxIGF1eGlsaWFyeTogY29ubmVjdCB0byB0cmFjayBhdXhpbGlhcnkKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgb3V0cHV0IGFuZCB1c2Ugc2VuZCBsZXZlbAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgcmVwbGFjZTogcmVwbGFjZXMgdHJhY2sgcHJvY2VzcyBmdW5jdGlvbjsKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIG11c3QgaW1wbGVtZW50IFNSQywgdm9sdW1lIGFuZCBtb25vIHRvIHN0ZXJlby4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAzIHByZSBwcm9jZXNzaW5nOiBhcHBsaWVkIGJlbG93IGF1ZGlvIEhBTCBvbiBpbgorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDQgcG9zdCBwcm9jZXNzaW5nOiBhcHBsaWVkIGJlbG93IGF1ZGlvIEhBTCBvbiBvdXQKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCA1IC0gNyByZXNlcnZlZAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgaW5zZXJ0aW9uICAgICAgfCAzLi41ICAgfCAwIG5vbmUKKyAqIHwgcHJlZmVyZW5jZSAgICAgfCAgICAgICAgfCAxIGZpcnN0IG9mIHRoZSBjaGFpbgorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgbGFzdCBvZiB0aGUgY2hhaW4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAzIGV4Y2x1c2l2ZSAob25seSBlZmZlY3QgaW4gdGhlIGluc2VydCBjaGFpbikKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCA0Li43IHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBWb2x1bWUgICAgICAgICB8IDYuLjggICB8IDAgbm9uZQorICogfCBtYW5hZ2VtZW50ICAgICB8ICAgICAgICB8IDEgaW1wbGVtZW50cyB2b2x1bWUgY29udHJvbAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgcmVxdWlyZXMgdm9sdW1lIGluZGljYXRpb24KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCA0IHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBEZXZpY2UgICAgICAgICB8IDkuLjExICB8IDAgbm9uZQorICogfCBpbmRpY2F0aW9uICAgICB8ICAgICAgICB8IDEgcmVxdWlyZXMgZGV2aWNlIHVwZGF0ZXMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyLCA0IHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBTYW1wbGUgaW5wdXQgICB8IDEyLi4xMyB8IDEgZGlyZWN0OiBwcm9jZXNzKCkgZnVuY3Rpb24gb3IKKyAqIHwgbW9kZSAgICAgICAgICAgfCAgICAgICAgfCAgIEVGRkVDVF9DTURfU0VUX0NPTkZJRyBjb21tYW5kIG11c3Qgc3BlY2lmeQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgYSBidWZmZXIgZGVzY3JpcHRvcgorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgcHJvdmlkZXI6IHByb2Nlc3MoKSBmdW5jdGlvbiB1c2VzIHRoZQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgYnVmZmVyUHJvdmlkZXIgaW5kaWNhdGVkIGJ5IHRoZQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgRUZGRUNUX0NNRF9TRVRfQ09ORklHIGNvbW1hbmQgdG8gcmVxdWVzdCBpbnB1dC4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGJ1ZmZlcnMuCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgMyBib3RoOiBib3RoIGlucHV0IG1vZGVzIGFyZSBzdXBwb3J0ZWQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IFNhbXBsZSBvdXRwdXQgIHwgMTQuLjE1IHwgMSBkaXJlY3Q6IHByb2Nlc3MoKSBmdW5jdGlvbiBvcgorICogfCBtb2RlICAgICAgICAgICB8ICAgICAgICB8ICAgRUZGRUNUX0NNRF9TRVRfQ09ORklHIGNvbW1hbmQgbXVzdCBzcGVjaWZ5CisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBhIGJ1ZmZlciBkZXNjcmlwdG9yCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgMiBwcm92aWRlcjogcHJvY2VzcygpIGZ1bmN0aW9uIHVzZXMgdGhlCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBidWZmZXJQcm92aWRlciBpbmRpY2F0ZWQgYnkgdGhlCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBFRkZFQ1RfQ01EX1NFVF9DT05GSUcgY29tbWFuZCB0byByZXF1ZXN0IG91dHB1dAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgYnVmZmVycy4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAzIGJvdGg6IGJvdGggb3V0cHV0IG1vZGVzIGFyZSBzdXBwb3J0ZWQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IEhhcmR3YXJlICAgICAgIHwgMTYuLjE3IHwgMCBObyBoYXJkd2FyZSBhY2NlbGVyYXRpb24KKyAqIHwgYWNjZWxlcmF0aW9uICAgfCAgICAgICAgfCAxIG5vbiB0dW5uZWxlZCBodyBhY2NlbGVyYXRpb246IHRoZSBwcm9jZXNzKCkKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGZ1bmN0aW9uIHJlYWRzIHRoZSBzYW1wbGVzLCBzZW5kIHRoZW0gdG8gSFcKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGFjY2VsZXJhdGVkIGVmZmVjdCBwcm9jZXNzb3IsIHJlYWRzIGJhY2sKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIHRoZSBwcm9jZXNzZWQgc2FtcGxlcyBhbmQgcmV0dXJucyB0aGVtCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyIHR1bm5lbGVkIGh3IGFjY2VsZXJhdGlvbjogdGhlIHByb2Nlc3MoKQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgZnVuY3Rpb24gaXMgdHJhbnNwYXJlbnQuIFRoZSBlZmZlY3QgaW50ZXJmYWNlCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBpcyBvbmx5IHVzZWQgdG8gY29udHJvbCB0aGUgZWZmZWN0IGVuZ2luZS4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIFRoaXMgbW9kZSBpcyByZWxldmFudCBmb3IgZ2xvYmFsIGVmZmVjdHMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGFjdHVhbGx5IGFwcGxpZWQgYnkgdGhlIGF1ZGlvIGhhcmR3YXJlIG9uCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICB0aGUgb3V0cHV0IHN0cmVhbS4KKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IEF1ZGlvIE1vZGUgICAgIHwgMTguLjE5IHwgMCBub25lCisgKiB8IGluZGljYXRpb24gICAgIHwgICAgICAgIHwgMSByZXF1aXJlcyBhdWRpbyBtb2RlIHVwZGF0ZXMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyLi4zIHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBBdWRpbyBzb3VyY2UgICB8IDIwLi4yMSB8IDAgbm9uZQorICogfCBpbmRpY2F0aW9uICAgICB8ICAgICAgICB8IDEgcmVxdWlyZXMgYXVkaW8gc291cmNlIHVwZGF0ZXMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyLi4zIHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBFZmZlY3Qgb2ZmbG9hZCB8IDIyICAgICB8IDAgVGhlIGVmZmVjdCBjYW5ub3QgYmUgb2ZmbG9hZGVkIHRvIGFuIGF1ZGlvIERTUAorICogfCBzdXBwb3J0ZWQgICAgICB8ICAgICAgICB8IDEgVGhlIGVmZmVjdCBjYW4gYmUgb2ZmbG9hZGVkIHRvIGFuIGF1ZGlvIERTUAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgUHJvY2VzcyAgICAgICAgfCAyMyAgICAgfCAwIFRoZSBlZmZlY3QgaW1wbGVtZW50cyBhIHByb2Nlc3MgZnVuY3Rpb24uCisgKiB8IGZ1bmN0aW9uICAgICAgIHwgICAgICAgIHwgMSBUaGUgZWZmZWN0IGRvZXMgbm90IGltcGxlbWVudCBhIHByb2Nlc3MKKyAqIHwgbm90ICAgICAgICAgICAgfCAgICAgICAgfCAgIGZ1bmN0aW9uOiBlbmFibGluZyB0aGUgZWZmZWN0IGhhcyBubyBpbXBhY3QKKyAqIHwgaW1wbGVtZW50ZWQgICAgfCAgICAgICAgfCAgIG9uIGxhdGVuY3kgb3IgQ1BVIGxvYWQuCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBFZmZlY3QgaW1wbGVtZW50YXRpb25zIHNldHRpbmcgdGhpcyBmbGFnIGRvIG5vdAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgaGF2ZSB0byBpbXBsZW1lbnQgYSBwcm9jZXNzIGZ1bmN0aW9uLgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkVGRkVDVF9GTEFHXyIpCitlbnVtIEVmZmVjdEZsYWdzIDogaW50MzJfdCB7CisgICAgLy8gSW5zZXJ0IG1vZGUKKyAgICBUWVBFX1NISUZUID0gMCwKKyAgICBUWVBFX1NJWkUgPSAzLAorICAgIFRZUEVfTUFTSyA9ICgoMSA8PCBUWVBFX1NJWkUpIC0xKSA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfSU5TRVJUID0gMCA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfQVVYSUxJQVJZID0gMSA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfUkVQTEFDRSA9IDIgPDwgVFlQRV9TSElGVCwKKyAgICBUWVBFX1BSRV9QUk9DID0gMyA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfUE9TVF9QUk9DID0gNCA8PCBUWVBFX1NISUZULAorCisgICAgLy8gSW5zZXJ0IHByZWZlcmVuY2UKKyAgICBJTlNFUlRfU0hJRlQgPSBUWVBFX1NISUZUICsgVFlQRV9TSVpFLAorICAgIElOU0VSVF9TSVpFID0gMywKKyAgICBJTlNFUlRfTUFTSyA9ICgoMSA8PCBJTlNFUlRfU0laRSkgLTEpIDw8IElOU0VSVF9TSElGVCwKKyAgICBJTlNFUlRfQU5ZID0gMCA8PCBJTlNFUlRfU0hJRlQsCisgICAgSU5TRVJUX0ZJUlNUID0gMSA8PCBJTlNFUlRfU0hJRlQsCisgICAgSU5TRVJUX0xBU1QgPSAyIDw8IElOU0VSVF9TSElGVCwKKyAgICBJTlNFUlRfRVhDTFVTSVZFID0gMyA8PCBJTlNFUlRfU0hJRlQsCisKKyAgICAvLyBWb2x1bWUgY29udHJvbAorICAgIFZPTFVNRV9TSElGVCA9IElOU0VSVF9TSElGVCArIElOU0VSVF9TSVpFLAorICAgIFZPTFVNRV9TSVpFID0gMywKKyAgICBWT0xVTUVfTUFTSyA9ICgoMSA8PCBWT0xVTUVfU0laRSkgLTEpIDw8IFZPTFVNRV9TSElGVCwKKyAgICBWT0xVTUVfQ1RSTCA9IDEgPDwgVk9MVU1FX1NISUZULAorICAgIFZPTFVNRV9JTkQgPSAyIDw8IFZPTFVNRV9TSElGVCwKKyAgICBWT0xVTUVfTk9ORSA9IDAgPDwgVk9MVU1FX1NISUZULAorCisgICAgLy8gRGV2aWNlIGluZGljYXRpb24KKyAgICBERVZJQ0VfU0hJRlQgPSBWT0xVTUVfU0hJRlQgKyBWT0xVTUVfU0laRSwKKyAgICBERVZJQ0VfU0laRSA9IDMsCisgICAgREVWSUNFX01BU0sgPSAoKDEgPDwgREVWSUNFX1NJWkUpIC0xKSA8PCBERVZJQ0VfU0hJRlQsCisgICAgREVWSUNFX0lORCA9IDEgPDwgREVWSUNFX1NISUZULAorICAgIERFVklDRV9OT05FID0gMCA8PCBERVZJQ0VfU0hJRlQsCisKKyAgICAvLyBTYW1wbGUgaW5wdXQgbW9kZXMKKyAgICBJTlBVVF9TSElGVCA9IERFVklDRV9TSElGVCArIERFVklDRV9TSVpFLAorICAgIElOUFVUX1NJWkUgPSAyLAorICAgIElOUFVUX01BU0sgPSAoKDEgPDwgSU5QVVRfU0laRSkgLTEpIDw8IElOUFVUX1NISUZULAorICAgIElOUFVUX0RJUkVDVCA9IDEgPDwgSU5QVVRfU0hJRlQsCisgICAgSU5QVVRfUFJPVklERVIgPSAyIDw8IElOUFVUX1NISUZULAorICAgIElOUFVUX0JPVEggPSAzIDw8IElOUFVUX1NISUZULAorCisgICAgLy8gU2FtcGxlIG91dHB1dCBtb2RlcworICAgIE9VVFBVVF9TSElGVCA9IElOUFVUX1NISUZUICsgSU5QVVRfU0laRSwKKyAgICBPVVRQVVRfU0laRSA9IDIsCisgICAgT1VUUFVUX01BU0sgPSAoKDEgPDwgT1VUUFVUX1NJWkUpIC0xKSA8PCBPVVRQVVRfU0hJRlQsCisgICAgT1VUUFVUX0RJUkVDVCA9IDEgPDwgT1VUUFVUX1NISUZULAorICAgIE9VVFBVVF9QUk9WSURFUiA9IDIgPDwgT1VUUFVUX1NISUZULAorICAgIE9VVFBVVF9CT1RIID0gMyA8PCBPVVRQVVRfU0hJRlQsCisKKyAgICAvLyBIYXJkd2FyZSBhY2NlbGVyYXRpb24gbW9kZQorICAgIEhXX0FDQ19TSElGVCA9IE9VVFBVVF9TSElGVCArIE9VVFBVVF9TSVpFLAorICAgIEhXX0FDQ19TSVpFID0gMiwKKyAgICBIV19BQ0NfTUFTSyA9ICgoMSA8PCBIV19BQ0NfU0laRSkgLTEpIDw8IEhXX0FDQ19TSElGVCwKKyAgICBIV19BQ0NfU0lNUExFID0gMSA8PCBIV19BQ0NfU0hJRlQsCisgICAgSFdfQUNDX1RVTk5FTCA9IDIgPDwgSFdfQUNDX1NISUZULAorCisgICAgLy8gQXVkaW8gbW9kZSBpbmRpY2F0aW9uCisgICAgQVVESU9fTU9ERV9TSElGVCA9IEhXX0FDQ19TSElGVCArIEhXX0FDQ19TSVpFLAorICAgIEFVRElPX01PREVfU0laRSA9IDIsCisgICAgQVVESU9fTU9ERV9NQVNLID0gKCgxIDw8IEFVRElPX01PREVfU0laRSkgLTEpIDw8IEFVRElPX01PREVfU0hJRlQsCisgICAgQVVESU9fTU9ERV9JTkQgPSAxIDw8IEFVRElPX01PREVfU0hJRlQsCisgICAgQVVESU9fTU9ERV9OT05FID0gMCA8PCBBVURJT19NT0RFX1NISUZULAorCisgICAgLy8gQXVkaW8gc291cmNlIGluZGljYXRpb24KKyAgICBBVURJT19TT1VSQ0VfU0hJRlQgPSBBVURJT19NT0RFX1NISUZUICsgQVVESU9fTU9ERV9TSVpFLAorICAgIEFVRElPX1NPVVJDRV9TSVpFID0gMiwKKyAgICBBVURJT19TT1VSQ0VfTUFTSyA9ICgoMSA8PCBBVURJT19TT1VSQ0VfU0laRSkgLTEpIDw8IEFVRElPX1NPVVJDRV9TSElGVCwKKyAgICBBVURJT19TT1VSQ0VfSU5EID0gMSA8PCBBVURJT19TT1VSQ0VfU0hJRlQsCisgICAgQVVESU9fU09VUkNFX05PTkUgPSAwIDw8IEFVRElPX1NPVVJDRV9TSElGVCwKKworICAgIC8vIEVmZmVjdCBvZmZsb2FkIGluZGljYXRpb24KKyAgICBPRkZMT0FEX1NISUZUID0gQVVESU9fU09VUkNFX1NISUZUICsgQVVESU9fU09VUkNFX1NJWkUsCisgICAgT0ZGTE9BRF9TSVpFID0gMSwKKyAgICBPRkZMT0FEX01BU0sgPSAoKDEgPDwgT0ZGTE9BRF9TSVpFKSAtMSkgPDwgT0ZGTE9BRF9TSElGVCwKKyAgICBPRkZMT0FEX1NVUFBPUlRFRCA9IDEgPDwgT0ZGTE9BRF9TSElGVCwKKworICAgIC8vIEVmZmVjdCBoYXMgbm8gcHJvY2VzcyBpbmRpY2F0aW9uCisgICAgTk9fUFJPQ0VTU19TSElGVCA9IE9GRkxPQURfU0hJRlQgKyBPRkZMT0FEX1NJWkUsCisgICAgTk9fUFJPQ0VTU19TSVpFID0gMSwKKyAgICBOT19QUk9DRVNTX01BU0sgPSAoKDEgPDwgTk9fUFJPQ0VTU19TSVpFKSAtMSkgPDwgTk9fUFJPQ0VTU19TSElGVCwKKyAgICBOT19QUk9DRVNTID0gMSA8PCBOT19QUk9DRVNTX1NISUZUCit9OworCisvKioKKyAqIFRoZSBlZmZlY3QgZGVzY3JpcHRvciBjb250YWlucyBuZWNlc3NhcnkgaW5mb3JtYXRpb24gdG8gZmFjaWxpdGF0ZSB0aGUKKyAqIGVudW1lcmF0aW9uIG9mIHRoZSBlZmZlY3QgZW5naW5lcyBwcmVzZW50IGluIGEgbGlicmFyeS4KKyAqLworc3RydWN0IEVmZmVjdERlc2NyaXB0b3IgeworICAgIFV1aWQgdHlwZTsgICAgICAgICAgICAgLy8gVVVJRCBvZiB0byB0aGUgT3BlblNMIEVTIGludGVyZmFjZSBpbXBsZW1lbnRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnkgdGhpcyBlZmZlY3QKKyAgICBVdWlkIHV1aWQ7ICAgICAgICAgICAgIC8vIFVVSUQgZm9yIHRoaXMgcGFydGljdWxhciBpbXBsZW1lbnRhdGlvbgorICAgIEVmZmVjdEZsYWdzIGZsYWdzOyAgICAgLy8gZWZmZWN0IGVuZ2luZSBjYXBhYmlsaXRpZXMvcmVxdWlyZW1lbnRzIGZsYWdzCisgICAgdWludDE2X3QgY3B1TG9hZDsgICAgICAvLyBDUFUgbG9hZCBpbmRpY2F0aW9uIGV4cHJlc3NlZCBpbiAwLjEgTUlQUyB1bml0cworICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXMgZXN0aW1hdGVkIG9uIGFuIEFSTTlFIGNvcmUgKEFSTXY1VEUpIHdpdGggMCBXUworICAgIHVpbnQxNl90IG1lbW9yeVVzYWdlOyAgLy8gZGF0YSBtZW1vcnkgdXNhZ2UgZXhwcmVzc2VkIGluIEtCIGFuZCBpbmNsdWRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25seSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgbWVtb3J5CisgICAgdWludDhfdFs2NF0gbmFtZTsgICAgICAvLyBodW1hbiByZWFkYWJsZSBlZmZlY3QgbmFtZQorICAgIHVpbnQ4X3RbNjRdIGltcGxlbWVudG9yOyAgLy8gaHVtYW4gcmVhZGFibGUgZWZmZWN0IGltcGxlbWVudG9yIG5hbWUKK307CisKKy8qKgorICogQSBidWZmZXIgaXMgYSBjaHVuayBvZiBhdWRpbyBkYXRhIGZvciBwcm9jZXNzaW5nLiAgTXVsdGktY2hhbm5lbCBhdWRpbyBpcworICogYWx3YXlzIGludGVybGVhdmVkLiBUaGUgY2hhbm5lbCBvcmRlciBpcyBmcm9tIExTQiB0byBNU0Igd2l0aCByZWdhcmQgdG8gdGhlCisgKiBjaGFubmVsIG1hc2sgZGVmaW5pdGlvbiBpbiBhdWRpby5oLCBhdWRpb19jaGFubmVsX21hc2tfdCwgZS5nLjoKKyAqIFN0ZXJlbzogTCwgUjsgNS4xOiBGTCwgRlIsIEZDLCBMRkUsIEJMLCBCUi4KKyAqCisgKiBUaGUgYnVmZmVyIHNpemUgaXMgZXhwcmVzc2VkIGluIGZyYW1lIGNvdW50LCBhIGZyYW1lIGJlaW5nIGNvbXBvc2VkIG9mCisgKiBzYW1wbGVzIGZvciBhbGwgY2hhbm5lbHMgYXQgYSBnaXZlbiB0aW1lLiBGcmFtZSBzaXplIGZvciB1bnNwZWNpZmllZCBmb3JtYXQKKyAqIChBVURJT19GT1JNQVRfT1RIRVIpIGlzIDggYml0IGJ5IGRlZmluaXRpb24uCisgKi8KK3N0cnVjdCBBdWRpb0J1ZmZlciB7CisgICAgdWludDY0X3QgaWQ7CisgICAgdWludDMyX3QgZnJhbWVDb3VudDsKKyAgICBtZW1vcnkgZGF0YTsKK307CisKK0BleHBvcnQobmFtZT0iZWZmZWN0X2J1ZmZlcl9hY2Nlc3NfZSIsIHZhbHVlX3ByZWZpeD0iRUZGRUNUX0JVRkZFUl8iKQorZW51bSBFZmZlY3RCdWZmZXJBY2Nlc3MgOiBpbnQzMl90IHsKKyAgICBBQ0NFU1NfV1JJVEUsCisgICAgQUNDRVNTX1JFQUQsCisgICAgQUNDRVNTX0FDQ1VNVUxBVEUKK307CisKKy8qKgorICogRGV0ZXJtaW5lcyB3aGF0IGZpZWxkcyBvZiBFZmZlY3RCdWZmZXJDb25maWcgbmVlZCB0byBiZSBjb25zaWRlcmVkLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iRUZGRUNUX0NPTkZJR18iKQorZW51bSBFZmZlY3RDb25maWdQYXJhbWV0ZXJzIDogaW50MzJfdCB7CisgICAgQlVGRkVSID0gMHgwMDAxLCAgICAvLyBidWZmZXIgZmllbGQKKyAgICBTTVBfUkFURSA9IDB4MDAwMiwgIC8vIHNhbXBsaW5nUmF0ZQorICAgIENIQU5ORUxTID0gMHgwMDA0LCAgLy8gY2hhbm5lbHMKKyAgICBGT1JNQVQgPSAweDAwMDgsICAgIC8vIGZvcm1hdAorICAgIEFDQ19NT0RFID0gMHgwMDEwLCAgLy8gYWNjZXNzTW9kZQorICAgIEFMTCA9IEJVRkZFUiB8IFNNUF9SQVRFIHwgQ0hBTk5FTFMgfCBGT1JNQVQgfCBBQ0NfTU9ERQorfTsKKworLyoqCisgKiBUaGUgYnVmZmVyIGNvbmZpZyBzdHJ1Y3R1cmUgc3BlY2lmaWVzIHRoZSBpbnB1dCBvciBvdXRwdXQgYXVkaW8gZm9ybWF0CisgKiB0byBiZSB1c2VkIGJ5IHRoZSBlZmZlY3QgZW5naW5lLgorICovCitzdHJ1Y3QgRWZmZWN0QnVmZmVyQ29uZmlnIHsKKyAgICBBdWRpb0J1ZmZlciBidWZmZXI7CisgICAgdWludDMyX3Qgc2FtcGxpbmdSYXRlSHo7CisgICAgQXVkaW9DaGFubmVsTWFzayBjaGFubmVsczsKKyAgICBBdWRpb0Zvcm1hdCBmb3JtYXQ7CisgICAgRWZmZWN0QnVmZmVyQWNjZXNzIGFjY2Vzc01vZGU7CisgICAgRWZmZWN0Q29uZmlnUGFyYW1ldGVycyBtYXNrOworfTsKKworc3RydWN0IEVmZmVjdENvbmZpZyB7CisgICAgRWZmZWN0QnVmZmVyQ29uZmlnIGlucHV0Q2ZnOworICAgIEVmZmVjdEJ1ZmZlckNvbmZpZyBvdXRwdXRDZmc7Cit9OworCitAZXhwb3J0KG5hbWU9ImVmZmVjdF9mZWF0dXJlX2UiLCB2YWx1ZV9wcmVmaXg9IkVGRkVDVF9GRUFUVVJFXyIpCitlbnVtIEVmZmVjdEZlYXR1cmUgOiBpbnQzMl90IHsKKyAgICBBVVhfQ0hBTk5FTFMsIC8vIHN1cHBvcnRzIGF1eGlsaWFyeSBjaGFubmVscworICAgICAgICAgICAgICAgICAgLy8gKGUuZy4gZHVhbCBtaWMgbm9pc2Ugc3VwcHJlc3NvcikKKyAgICBDTlQKK307CisKK3N0cnVjdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyB7CisgICAgQXVkaW9DaGFubmVsTWFzayBtYWluQ2hhbm5lbHM7ICAvLyBjaGFubmVsIG1hc2sgZm9yIG1haW4gY2hhbm5lbHMKKyAgICBBdWRpb0NoYW5uZWxNYXNrIGF1eENoYW5uZWxzOyAgIC8vIGNoYW5uZWwgbWFzayBmb3IgYXV4aWxpYXJ5IGNoYW5uZWxzCit9OworCitzdHJ1Y3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciB7CisgICAgYm9vbCBpc09mZmxvYWQ7ICAgICAgICAgIC8vIHRydWUgaWYgdGhlIHBsYXliYWNrIHRocmVhZCB0aGUgZWZmZWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIGF0dGFjaGVkIHRvIGlzIG9mZmxvYWRlZAorICAgIEF1ZGlvSW9IYW5kbGUgaW9IYW5kbGU7ICAvLyBpbyBoYW5kbGUgb2YgdGhlIHBsYXliYWNrIHRocmVhZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZWZmZWN0IGlzIGF0dGFjaGVkIHRvCit9OworCisvKioKKyAqIFRoZSBtZXNzYWdlIHF1ZXVlIGZsYWdzIHVzZWQgdG8gc3luY2hyb25pemUgcmVhZHMgYW5kIHdyaXRlcyBmcm9tCisgKiB0aGUgc3RhdHVzIG1lc3NhZ2UgcXVldWUgdXNlZCBieSBlZmZlY3RzLgorICovCitlbnVtIE1lc3NhZ2VRdWV1ZUZsYWdCaXRzIDogdWludDMyX3QgeworICAgIERPTkVfUFJPQ0VTU0lORyA9IDEgPDwgMCwKKyAgICBSRVFVRVNUX1BST0NFU1MgPSAxIDw8IDEsCisgICAgUkVRVUVTVF9QUk9DRVNTX1JFVkVSU0UgPSAxIDw8IDIsCisgICAgUkVRVUVTVF9RVUlUID0gMSA8PCAzLAorICAgIFJFUVVFU1RfUFJPQ0VTU19BTEwgPQorICAgICAgICBSRVFVRVNUX1BST0NFU1MgfCBSRVFVRVNUX1BST0NFU1NfUkVWRVJTRSB8IFJFUVVFU1RfUVVJVAorfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvdnRzL0FuZHJvaWQubWsgYi9hdWRpby9lZmZlY3QvMi4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZGQ1YmYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL3Z0cy9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjEgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9hdWRpby9lZmZlY3QvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGEzNzBjZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM5IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsQXVkaW9FZmZlY3RWMl8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsQXVkaW9FZmZlY3RWMl8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEF1ZGlvRWZmZWN0VjJfMFRhcmdldFRlc3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxBdWRpb0VmZmVjdFYyXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDBiYjRlCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxBdWRpb0VmZmVjdFYyXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDgyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQXVkaW9FZmZlY3RIaWRsSGFsVGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpby5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdHNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFcXVhbGl6ZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0hhbmRsZUNvbnN0czsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VXVpZDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpBdWRpb0J1ZmZlcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RBdXhDaGFubmVsc0NvbmZpZzsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RCdWZmZXJDb25maWc7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0Q29uZmlnOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdERlc2NyaXB0b3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRXF1YWxpemVyRWZmZWN0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpNUURlc2NyaXB0b3JTeW5jOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgYW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgYW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgYW5kcm9pZDo6c3A7CisKKyNpZm5kZWYgQVJSQVlfU0laRQorI2RlZmluZSBBUlJBWV9TSVpFKGEpIChzaXplb2YoYSkgLyBzaXplb2YoKihhKSkpCisjZW5kaWYKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgQXVkaW8gRWZmZWN0cyBGYWN0b3J5IEhJREwgSEFMLgorY2xhc3MgQXVkaW9FZmZlY3RzRmFjdG9yeUhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgZWZmZWN0c0ZhY3RvcnkgPQorICAgICAgICA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJRWZmZWN0c0ZhY3Rvcnk+KCk7CisgICAgQVNTRVJUX05FKGVmZmVjdHNGYWN0b3J5LCBudWxscHRyKTsKKyAgfQorCisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IGVmZmVjdHNGYWN0b3J5LmNsZWFyKCk7IH0KKworIHByb3RlY3RlZDoKKyAgc3RhdGljIHZvaWQgZGVzY3JpcHRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRlc2NyaXB0aW9uKSB7CisgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICB9CisKKyAgc3A8SUVmZmVjdHNGYWN0b3J5PiBlZmZlY3RzRmFjdG9yeTsKK307CisKK1RFU1RfRihBdWRpb0VmZmVjdHNGYWN0b3J5SGlkbFRlc3QsIEVudW1lcmF0ZUVmZmVjdHMpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEVudW1lcmF0ZUVmZmVjdHMgcmV0dXJucyBhdCBsZWFzdCBvbmUgZWZmZWN0Iik7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgc2l6ZV90IGVmZmVjdENvdW50ID0gMDsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdHNGYWN0b3J5LT5nZXRBbGxEZXNjcmlwdG9ycygKKyAgICAgIFsmXShSZXN1bHQgciwgY29uc3QgaGlkbF92ZWM8RWZmZWN0RGVzY3JpcHRvcj4mIHJlc3VsdCkgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBlZmZlY3RDb3VudCA9IHJlc3VsdC5zaXplKCk7CisgICAgICB9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICBFWFBFQ1RfR1QoZWZmZWN0Q291bnQsIDB1KTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0c0ZhY3RvcnlIaWRsVGVzdCwgQ3JlYXRlRWZmZWN0KSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBhbiBlZmZlY3QgY2FuIGJlIGNyZWF0ZWQgdmlhIENyZWF0ZUVmZmVjdCIpOworICBib29sIGdvdEVmZmVjdCA9IGZhbHNlOworICBVdWlkIGVmZmVjdFV1aWQ7CisgIFJldHVybjx2b2lkPiByZXQgPSBlZmZlY3RzRmFjdG9yeS0+Z2V0QWxsRGVzY3JpcHRvcnMoCisgICAgICBbJl0oUmVzdWx0IHIsIGNvbnN0IGhpZGxfdmVjPEVmZmVjdERlc2NyaXB0b3I+JiByZXN1bHQpIHsKKyAgICAgICAgaWYgKHIgPT0gUmVzdWx0OjpPSyAmJiByZXN1bHQuc2l6ZSgpID4gMCkgeworICAgICAgICAgIGdvdEVmZmVjdCA9IHRydWU7CisgICAgICAgICAgZWZmZWN0VXVpZCA9IHJlc3VsdFswXS51dWlkOworICAgICAgICB9CisgICAgICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9UUlVFKGdvdEVmZmVjdCk7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgc3A8SUVmZmVjdD4gZWZmZWN0OworICByZXQgPSBlZmZlY3RzRmFjdG9yeS0+Y3JlYXRlRWZmZWN0KAorICAgICAgZWZmZWN0VXVpZCwgMSAvKnNlc3Npb24qLywgMSAvKmlvSGFuZGxlKi8sCisgICAgICBbJl0oUmVzdWx0IHIsIGNvbnN0IHNwPElFZmZlY3Q+JiByZXN1bHQsIHVpbnQ2NF90IC8qZWZmZWN0SWQqLykgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAociA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgZWZmZWN0ID0gcmVzdWx0OworICAgICAgICB9CisgICAgICB9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICBFWFBFQ1RfTkUobnVsbHB0ciwgZWZmZWN0LmdldCgpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0c0ZhY3RvcnlIaWRsVGVzdCwgR2V0RGVzY3JpcHRvcikgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBlZmZlY3RzIGZhY3RvcnkgY2FuIHByb3ZpZGUgYW4gZWZmZWN0IGRlc2NyaXB0b3IgdmlhICIKKyAgICAgICJHZXREZXNjcmlwdG9yIik7CisgIGhpZGxfdmVjPEVmZmVjdERlc2NyaXB0b3I+IGFsbERlc2NyaXB0b3JzOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0c0ZhY3RvcnktPmdldEFsbERlc2NyaXB0b3JzKAorICAgICAgWyZdKFJlc3VsdCByLCBjb25zdCBoaWRsX3ZlYzxFZmZlY3REZXNjcmlwdG9yPiYgcmVzdWx0KSB7CisgICAgICAgIGlmIChyID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICBhbGxEZXNjcmlwdG9ycyA9IHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBBU1NFUlRfR1QoYWxsRGVzY3JpcHRvcnMuc2l6ZSgpLCAwdSk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYWxsRGVzY3JpcHRvcnMuc2l6ZSgpOyArK2kpIHsKKyAgICByZXQgPSBlZmZlY3RzRmFjdG9yeS0+Z2V0RGVzY3JpcHRvcigKKyAgICAgICAgYWxsRGVzY3JpcHRvcnNbaV0udXVpZCwgWyZdKFJlc3VsdCByLCBjb25zdCBFZmZlY3REZXNjcmlwdG9yJiByZXN1bHQpIHsKKyAgICAgICAgICBFWFBFQ1RfRVEociwgUmVzdWx0OjpPSyk7CisgICAgICAgICAgRVhQRUNUX0VRKHJlc3VsdCwgYWxsRGVzY3JpcHRvcnNbaV0pOworICAgICAgICB9KTsKKyAgfQorICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0c0ZhY3RvcnlIaWRsVGVzdCwgRGVidWdEdW1wSW52YWxpZEFyZ3VtZW50KSB7CisgICAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGRlYnVnRHVtcCBkb2Vzbid0IGNyYXNoIG9uIGludmFsaWQgYXJndW1lbnRzIik7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdHNGYWN0b3J5LT5kZWJ1Z0R1bXAoaGlkbF9oYW5kbGUoKSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIEVxdWFsaXplciBlZmZlY3QgaXMgcmVxdWlyZWQgYnkgQ0RELCBidXQgb25seSB0aGUgdHlwZSBpcyBmaXhlZC4KKy8vIFRoaXMgaXMgdGhlIHNhbWUgVVVJRCBhcyBBdWRpb0VmZmVjdC5FRkZFQ1RfVFlQRV9FUVVBTElaRVIgaW4gSmF2YS4KK3N0YXRpYyBjb25zdCBVdWlkIEVRVUFMSVpFUl9FRkZFQ1RfVFlQRSA9IHsKKyAgICAweDBiZWQ0MzAwLCAweGRkZDYsIDB4MTFkYiwgMHg4ZjM0LAorICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgNj57ezB4MDAsIDB4MDIsIDB4YTUsIDB4ZDUsIDB4YzUsIDB4MWJ9fX07CisvLyBMb3VkbmVzcyBFbmhhbmNlciBlZmZlY3QgaXMgcmVxdWlyZWQgYnkgQ0RELCBidXQgb25seSB0aGUgdHlwZSBpcyBmaXhlZC4KKy8vIFRoaXMgaXMgdGhlIHNhbWUgVVVJRCBhcyBBdWRpb0VmZmVjdC5FRkZFQ1RfVFlQRV9MT1VETkVTU19FTkhBTkNFUiBpbiBKYXZhLgorc3RhdGljIGNvbnN0IFV1aWQgTE9VRE5FU1NfRU5IQU5DRVJfRUZGRUNUX1RZUEUgPSB7CisgICAgMHhmZTMxOTliZSwgMHhhZWQwLCAweDQxM2YsIDB4ODdiYiwKKyAgICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDY+e3sweDExLCAweDI2LCAweDBlLCAweGI2LCAweDNjLCAweGYxfX19OworCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBBdWRpbyBFZmZlY3QgSElETCBIQUwuCitjbGFzcyBBdWRpb0VmZmVjdEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgZWZmZWN0c0ZhY3RvcnkgPQorICAgICAgICA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJRWZmZWN0c0ZhY3Rvcnk+KCk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGVmZmVjdHNGYWN0b3J5LmdldCgpKTsKKworICAgIGZpbmRBbmRDcmVhdGVFZmZlY3QoZ2V0RWZmZWN0VHlwZSgpKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgZWZmZWN0LmdldCgpKTsKKworICAgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVmZmVjdC0+aW5pdCgpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworICB9CisKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICBlZmZlY3QuY2xlYXIoKTsKKyAgICBlZmZlY3RzRmFjdG9yeS5jbGVhcigpOworICB9CisKKyBwcm90ZWN0ZWQ6CisgIHN0YXRpYyB2b2lkIGRlc2NyaXB0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXNjcmlwdGlvbikgeworICAgIFJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIGRlc2NyaXB0aW9uKTsKKyAgfQorCisgIHZpcnR1YWwgVXVpZCBnZXRFZmZlY3RUeXBlKCkgeyByZXR1cm4gRVFVQUxJWkVSX0VGRkVDVF9UWVBFOyB9CisKKyAgdm9pZCBmaW5kQW5kQ3JlYXRlRWZmZWN0KGNvbnN0IFV1aWQmIHR5cGUpOworICB2b2lkIGZpbmRFZmZlY3RJbnN0YW5jZShjb25zdCBVdWlkJiB0eXBlLCBVdWlkKiB1dWlkKTsKKyAgdm9pZCBnZXRDaGFubmVsQ291bnQodWludDMyX3QqIGNoYW5uZWxDb3VudCk7CisKKyAgc3A8SUVmZmVjdHNGYWN0b3J5PiBlZmZlY3RzRmFjdG9yeTsKKyAgc3A8SUVmZmVjdD4gZWZmZWN0OworfTsKKwordm9pZCBBdWRpb0VmZmVjdEhpZGxUZXN0OjpmaW5kQW5kQ3JlYXRlRWZmZWN0KGNvbnN0IFV1aWQmIHR5cGUpIHsKKyAgVXVpZCBlZmZlY3RVdWlkOworICBmaW5kRWZmZWN0SW5zdGFuY2UodHlwZSwgJmVmZmVjdFV1aWQpOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0c0ZhY3RvcnktPmNyZWF0ZUVmZmVjdCgKKyAgICAgIGVmZmVjdFV1aWQsIDEgLypzZXNzaW9uKi8sIDEgLyppb0hhbmRsZSovLAorICAgICAgWyZdKFJlc3VsdCByLCBjb25zdCBzcDxJRWZmZWN0PiYgcmVzdWx0LCB1aW50NjRfdCAvKmVmZmVjdElkKi8pIHsKKyAgICAgICAgaWYgKHIgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgIGVmZmVjdCA9IHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCit2b2lkIEF1ZGlvRWZmZWN0SGlkbFRlc3Q6OmZpbmRFZmZlY3RJbnN0YW5jZShjb25zdCBVdWlkJiB0eXBlLCBVdWlkKiB1dWlkKSB7CisgIGJvb2wgZWZmZWN0Rm91bmQgPSBmYWxzZTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdHNGYWN0b3J5LT5nZXRBbGxEZXNjcmlwdG9ycygKKyAgICAgIFsmXShSZXN1bHQgciwgY29uc3QgaGlkbF92ZWM8RWZmZWN0RGVzY3JpcHRvcj4mIHJlc3VsdCkgeworICAgICAgICBpZiAociA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXNjIDogcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAoZGVzYy50eXBlID09IHR5cGUpIHsKKyAgICAgICAgICAgICAgZWZmZWN0Rm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAqdXVpZCA9IGRlc2MudXVpZDsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9UUlVFKGVmZmVjdEZvdW5kKTsKK30KKwordm9pZCBBdWRpb0VmZmVjdEhpZGxUZXN0OjpnZXRDaGFubmVsQ291bnQodWludDMyX3QqIGNoYW5uZWxDb3VudCkgeworICBSZXN1bHQgcmV0dmFsOworICBFZmZlY3RDb25maWcgY3VycmVudENvbmZpZzsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Z2V0Q29uZmlnKFsmXShSZXN1bHQgciwgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25mKSB7CisgICAgcmV0dmFsID0gcjsKKyAgICBpZiAociA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICBjdXJyZW50Q29uZmlnID0gY29uZjsKKyAgICB9CisgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIEFTU0VSVF9UUlVFKGF1ZGlvX2NoYW5uZWxfbWFza19pc192YWxpZCgKKyAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190PihjdXJyZW50Q29uZmlnLm91dHB1dENmZy5jaGFubmVscykpKTsKKyAgKmNoYW5uZWxDb3VudCA9IGF1ZGlvX2NoYW5uZWxfY291bnRfZnJvbV9vdXRfbWFzaygKKyAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190PihjdXJyZW50Q29uZmlnLm91dHB1dENmZy5jaGFubmVscykpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgQ2xvc2UpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGFuIGVmZmVjdCBjYW4gYmUgY2xvc2VkIik7CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVmZmVjdC0+Y2xvc2UoKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0RGVzY3JpcHRvcikgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBhbiBlZmZlY3QgY2FuIHJldHVybiBpdHMgb3duIGRlc2NyaXB0b3IgdmlhIEdldERlc2NyaXB0b3IiKTsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBVdWlkIGFjdHVhbFR5cGU7CisgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgZWZmZWN0LT5nZXREZXNjcmlwdG9yKFsmXShSZXN1bHQgciwgY29uc3QgRWZmZWN0RGVzY3JpcHRvciYgZGVzYykgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAociA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgYWN0dWFsVHlwZSA9IGRlc2MudHlwZTsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgRVhQRUNUX0VRKGdldEVmZmVjdFR5cGUoKSwgYWN0dWFsVHlwZSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXRTZXRDb25maWcpIHsKKyAgZGVzY3JpcHRpb24oCisgICAgICAiVmVyaWZ5IHRoYXQgaXQgaXMgcG9zc2libGUgdG8gbWFuaXB1bGF0ZSBlZmZlY3QgY29uZmlnIHZpYSBHZXQgLyAiCisgICAgICAiU2V0Q29uZmlnIik7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgRWZmZWN0Q29uZmlnIGN1cnJlbnRDb25maWc7CisgIFJldHVybjx2b2lkPiByZXQgPSBlZmZlY3QtPmdldENvbmZpZyhbJl0oUmVzdWx0IHIsIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZikgeworICAgIHJldHZhbCA9IHI7CisgICAgaWYgKHIgPT0gUmVzdWx0OjpPSykgeworICAgICAgY3VycmVudENvbmZpZyA9IGNvbmY7CisgICAgfQorICB9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICBSZXR1cm48UmVzdWx0PiByZXQyID0gZWZmZWN0LT5zZXRDb25maWcoY3VycmVudENvbmZpZywgbnVsbHB0ciwgbnVsbHB0cik7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldDIpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0Q29uZmlnUmV2ZXJzZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgR2V0Q29uZmlnUmV2ZXJzZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgIGVmZmVjdC0+Z2V0Q29uZmlnUmV2ZXJzZShbJl0oUmVzdWx0LCBjb25zdCBFZmZlY3RDb25maWcmKSB7fSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgMCwgWyZdKFJlc3VsdCwgY29uc3QgaGlkbF92ZWM8RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc+Jikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldEF1eENoYW5uZWxzQ29uZmlnKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRBdXhDaGFubmVsc0NvbmZpZyBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5nZXRBdXhDaGFubmVsc0NvbmZpZygKKyAgICAgIFsmXShSZXN1bHQsIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIFNldEF1eENoYW5uZWxzQ29uZmlnKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBTZXRBdXhDaGFubmVsc0NvbmZpZyBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnKCkpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gTm90IGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJlY2F1c2UgQXVkaW9CdWZmZXIgY29udGFpbnMKKy8vIGluc3RhbmNlcyBvZiBoaWRsX21lbW9yeSB3aGljaCBjYW4ndCBiZSBjb21wYXJlZCBwcm9wZXJseQorLy8gaW4gZ2VuZXJhbCBjYXNlIGR1ZSB0byBwcmVzZW5jZSBvZiBoYW5kbGVzLgorLy8KKy8vIEhvd2V2ZXIsIGluIHRoaXMgcGFydGljdWxhciBjYXNlLCBoYW5kbGVzIG11c3Qgbm90IHByZXNlbnQKKy8vIHRodXMgY29tcGFyaXNvbiBpcyBwb3NzaWJsZS4KKy8vCisvLyBvcGVyYXRvcj09IG11c3QgYmUgZGVmaW5lZCBpbiB0aGUgc2FtZSBuYW1lc3BhY2UgYXMgdGhlIHN0cnVjdHVyZXMuCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdWRpb0J1ZmZlciYgbGhzLCBjb25zdCBBdWRpb0J1ZmZlciYgcmhzKSB7CisgIHJldHVybiBsaHMuaWQgPT0gcmhzLmlkICYmIGxocy5mcmFtZUNvdW50ID09IHJocy5mcmFtZUNvdW50ICYmCisgICAgICAgICBsaHMuZGF0YS5oYW5kbGUoKSA9PSBudWxscHRyICYmIHJocy5kYXRhLmhhbmRsZSgpID09IG51bGxwdHI7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgRWZmZWN0QnVmZmVyQ29uZmlnJiBsaHMsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVmZmVjdEJ1ZmZlckNvbmZpZyYgcmhzKSB7CisgIHJldHVybiBsaHMuYnVmZmVyID09IHJocy5idWZmZXIgJiYgbGhzLnNhbXBsaW5nUmF0ZUh6ID09IHJocy5zYW1wbGluZ1JhdGVIeiAmJgorICAgICAgICAgbGhzLmNoYW5uZWxzID09IHJocy5jaGFubmVscyAmJiBsaHMuZm9ybWF0ID09IHJocy5mb3JtYXQgJiYKKyAgICAgICAgIGxocy5hY2Nlc3NNb2RlID09IHJocy5hY2Nlc3NNb2RlICYmIGxocy5tYXNrID09IHJocy5tYXNrOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEVmZmVjdENvbmZpZyYgbGhzLCBjb25zdCBFZmZlY3RDb25maWcmIHJocykgeworICByZXR1cm4gbGhzLmlucHV0Q2ZnID09IHJocy5pbnB1dENmZyAmJiBsaHMub3V0cHV0Q2ZnID09IHJocy5vdXRwdXRDZmc7Cit9Cit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBSZXNldCkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgUmVzZXQgcHJlc2VydmVzIGVmZmVjdCBjb25maWd1cmF0aW9uIik7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgRWZmZWN0Q29uZmlnIG9yaWdpbmFsQ29uZmlnOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5nZXRDb25maWcoWyZdKFJlc3VsdCByLCBjb25zdCBFZmZlY3RDb25maWcmIGNvbmYpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyID09IFJlc3VsdDo6T0spIHsKKyAgICAgIG9yaWdpbmFsQ29uZmlnID0gY29uZjsKKyAgICB9CisgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIFJldHVybjxSZXN1bHQ+IHJldDIgPSBlZmZlY3QtPnJlc2V0KCk7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldDIpOworICBFZmZlY3RDb25maWcgY29uZmlnQWZ0ZXJSZXNldDsKKyAgcmV0ID0gZWZmZWN0LT5nZXRDb25maWcoWyZdKFJlc3VsdCByLCBjb25zdCBFZmZlY3RDb25maWcmIGNvbmYpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyID09IFJlc3VsdDo6T0spIHsKKyAgICAgIGNvbmZpZ0FmdGVyUmVzZXQgPSBjb25mOworICAgIH0KKyAgfSk7CisgIEVYUEVDVF9FUShvcmlnaW5hbENvbmZpZywgY29uZmlnQWZ0ZXJSZXNldCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBEaXNhYmxlRW5hYmxlRGlzYWJsZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IERpc2FibGUgLT4gRW5hYmxlIC0+IERpc2FibGUgc2VxdWVuY2UgZm9yIGFuIGVmZmVjdCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPmRpc2FibGUoKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCByZXQpOworICByZXQgPSBlZmZlY3QtPmVuYWJsZSgpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgIHJldCA9IGVmZmVjdC0+ZGlzYWJsZSgpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXREZXZpY2UpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldERldmljZSB3b3JrcyBmb3IgYW4gb3V0cHV0IGNoYWluIGVmZmVjdCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPnNldERldmljZShBdWRpb0RldmljZTo6T1VUX1NQRUFLRVIpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRBbmRHZXRWb2x1bWUpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldEFuZEdldFZvbHVtZSBtZXRob2Qgd29ya3MgZm9yIGFuIGVmZmVjdCIpOworICB1aW50MzJfdCBjaGFubmVsQ291bnQ7CisgIGdldENoYW5uZWxDb3VudCgmY2hhbm5lbENvdW50KTsKKyAgaGlkbF92ZWM8dWludDMyX3Q+IHZvbHVtZXM7CisgIHZvbHVtZXMucmVzaXplKGNoYW5uZWxDb3VudCk7CisgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjaGFubmVsQ291bnQ7ICsraSkgeworICAgIHZvbHVtZXNbaV0gPSAwOworICB9CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKAorICAgICAgdm9sdW1lcywgWyZdKFJlc3VsdCByLCBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mKSB7IHJldHZhbCA9IHI7IH0pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBWb2x1bWVDaGFuZ2VOb3RpZmljYXRpb24pIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGVmZmVjdCBhY2NlcHRzIFZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbiIpOworICB1aW50MzJfdCBjaGFubmVsQ291bnQ7CisgIGdldENoYW5uZWxDb3VudCgmY2hhbm5lbENvdW50KTsKKyAgaGlkbF92ZWM8dWludDMyX3Q+IHZvbHVtZXM7CisgIHZvbHVtZXMucmVzaXplKGNoYW5uZWxDb3VudCk7CisgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjaGFubmVsQ291bnQ7ICsraSkgeworICAgIHZvbHVtZXNbaV0gPSAwOworICB9CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVmZmVjdC0+dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKHZvbHVtZXMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRBdWRpb01vZGUpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldEF1ZGlvTW9kZSB3b3JrcyBmb3IgYW4gZWZmZWN0Iik7CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVmZmVjdC0+c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZTo6Tk9STUFMKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgU2V0Q29uZmlnUmV2ZXJzZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgU2V0Q29uZmlnUmV2ZXJzZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPQorICAgICAgZWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKEVmZmVjdENvbmZpZygpLCBudWxscHRyLCBudWxscHRyKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRJbnB1dERldmljZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgU2V0SW5wdXREZXZpY2UgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPFJlc3VsdD4gcmV0ID0gZWZmZWN0LT5zZXRJbnB1dERldmljZShBdWRpb0RldmljZTo6SU5fQlVJTFRJTl9NSUMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIFNldEF1ZGlvU291cmNlKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBTZXRBdWRpb1NvdXJjZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlOjpNSUMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIE9mZmxvYWQpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGNhbGxpbmcgT2ZmbG9hZCBtZXRob2QgZWl0aGVyIHdvcmtzIG9yIHJldHVybnMgbm90IHN1cHBvcnRlZCIpOworICBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyIG9mZmxvYWRQYXJhbTsKKyAgb2ZmbG9hZFBhcmFtLmlzT2ZmbG9hZCA9IGZhbHNlOworICBvZmZsb2FkUGFyYW0uaW9IYW5kbGUgPQorICAgICAgc3RhdGljX2Nhc3Q8aW50PihBdWRpb0hhbmRsZUNvbnN0czo6QVVESU9fSU9fSEFORExFX05PTkUpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPm9mZmxvYWQob2ZmbG9hZFBhcmFtKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKFJlc3VsdDo6T0sgPT0gcmV0IHx8IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCA9PSByZXQpCisgICAgICAgICAgPDwgIkV4cGVjdGVkIE9LIG9yIE5PVF9TVVBQT1JURUQsIGFjdHVhbCB2YWx1ZTogIgorICAgICAgICAgIDw8IHN0YXRpY19jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PFJlc3VsdD4ocmV0KSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBQcmVwYXJlRm9yUHJvY2Vzc2luZykgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgUHJlcGFyZUZvclByb2Nlc3NpbmcgbWV0aG9kIHdvcmtzIGZvciBhbiBlZmZlY3QiKTsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZygKKyAgICAgIFsmXShSZXN1bHQgciwgY29uc3QgTVFEZXNjcmlwdG9yU3luYzxSZXN1bHQ+JikgeyByZXR2YWwgPSByOyB9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgU2V0UHJvY2Vzc0J1ZmZlcnMpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldFByb2Nlc3NCdWZmZXJzIHdvcmtzIGZvciBhbiBlZmZlY3QiKTsKKyAgc3A8SUFsbG9jYXRvcj4gYXNobWVtID0gSUFsbG9jYXRvcjo6Z2V0U2VydmljZSgiYXNobWVtIik7CisgIEFTU0VSVF9ORShudWxscHRyLCBhc2htZW0uZ2V0KCkpOworICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgQXVkaW9CdWZmZXIgYnVmZmVyOworICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgIGFzaG1lbS0+YWxsb2NhdGUoMTAyNCwgWyZdKGJvb2wgcywgY29uc3QgaGlkbF9tZW1vcnkmIG1lbW9yeSkgeworICAgICAgICBzdWNjZXNzID0gczsKKyAgICAgICAgaWYgKHMpIHsKKyAgICAgICAgICBidWZmZXIuZGF0YSA9IG1lbW9yeTsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBBU1NFUlRfVFJVRShzdWNjZXNzKTsKKyAgUmV0dXJuPFJlc3VsdD4gcmV0MiA9IGVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoYnVmZmVyLCBidWZmZXIpOworICBFWFBFQ1RfVFJVRShyZXQyLmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQyKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIENvbW1hbmQpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IENvbW1hbmQgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Y29tbWFuZCgwLCBoaWRsX3ZlYzx1aW50OF90PigpLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShpbnQzMl90LCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHt9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRQYXJhbWV0ZXIpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldFBhcmFtZXRlciBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPQorICAgICAgZWZmZWN0LT5zZXRQYXJhbWV0ZXIoaGlkbF92ZWM8dWludDhfdD4oKSwgaGlkbF92ZWM8dWludDhfdD4oKSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0UGFyYW1ldGVyKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRQYXJhbWV0ZXIgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Z2V0UGFyYW1ldGVyKAorICAgICAgaGlkbF92ZWM8dWludDhfdD4oKSwgMCwgWyZdKFJlc3VsdCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7fSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlIGRvZXMgbm90IGNyYXNoIik7CisgIFJldHVybjx2b2lkPiByZXQgPSBlZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgMCwgMCwgMCwgWyZdKFJlc3VsdCwgdWludDMyX3QsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+Jikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5nZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgIDAsIDAsIFsmXShSZXN1bHQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+Jikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIFNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBTZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPQorICAgICAgZWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgwLCBoaWRsX3ZlYzx1aW50OF90PigpKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgRXF1YWxpemVyIEF1ZGlvIEVmZmVjdCBISURMIEhBTC4KK2NsYXNzIEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QgOiBwdWJsaWMgQXVkaW9FZmZlY3RIaWRsVGVzdCB7CisgcHVibGljOgorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIEF1ZGlvRWZmZWN0SGlkbFRlc3Q6OlNldFVwKCk7CisgICAgZXF1YWxpemVyID0gSUVxdWFsaXplckVmZmVjdDo6Y2FzdEZyb20oZWZmZWN0KTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgZXF1YWxpemVyLmdldCgpKTsKKyAgfQorCisgcHJvdGVjdGVkOgorICBVdWlkIGdldEVmZmVjdFR5cGUoKSBvdmVycmlkZSB7IHJldHVybiBFUVVBTElaRVJfRUZGRUNUX1RZUEU7IH0KKyAgdm9pZCBnZXROdW1CYW5kcyh1aW50MTZfdCogbnVtQmFuZHMpOworICB2b2lkIGdldExldmVsUmFuZ2UoaW50MTZfdCogbWluTGV2ZWwsIGludDE2X3QqIG1heExldmVsKTsKKyAgdm9pZCBnZXRCYW5kRnJlcXVlbmN5UmFuZ2UodWludDE2X3QgYmFuZCwgdWludDMyX3QqIG1pbkZyZXEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBjZW50ZXJGcmVxLCB1aW50MzJfdCogbWF4RnJlcSk7CisgIHZvaWQgZ2V0UHJlc2V0Q291bnQoc2l6ZV90KiBjb3VudCk7CisKKyAgc3A8SUVxdWFsaXplckVmZmVjdD4gZXF1YWxpemVyOworfTsKKwordm9pZCBFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0OjpnZXROdW1CYW5kcyh1aW50MTZfdCogbnVtQmFuZHMpIHsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0gZXF1YWxpemVyLT5nZXROdW1CYW5kcyhbJl0oUmVzdWx0IHIsIHVpbnQxNl90IGIpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgKm51bUJhbmRzID0gYjsKKyAgICB9CisgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7Cit9CisKK3ZvaWQgRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdDo6Z2V0TGV2ZWxSYW5nZShpbnQxNl90KiBtaW5MZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90KiBtYXhMZXZlbCkgeworICBSZXN1bHQgcmV0dmFsID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgZXF1YWxpemVyLT5nZXRMZXZlbFJhbmdlKFsmXShSZXN1bHQgciwgaW50MTZfdCBtaW4sIGludDE2X3QgbWF4KSB7CisgICAgICAgIHJldHZhbCA9IHI7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICptaW5MZXZlbCA9IG1pbjsKKyAgICAgICAgICAqbWF4TGV2ZWwgPSBtYXg7CisgICAgICAgIH0KKyAgICAgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7Cit9CisKK3ZvaWQgRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdDo6Z2V0QmFuZEZyZXF1ZW5jeVJhbmdlKHVpbnQxNl90IGJhbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogbWluRnJlcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBjZW50ZXJGcmVxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIG1heEZyZXEpIHsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0gZXF1YWxpemVyLT5nZXRCYW5kRnJlcXVlbmN5UmFuZ2UoCisgICAgICBiYW5kLCBbJl0oUmVzdWx0IHIsIHVpbnQzMl90IG1pbiwgdWludDMyX3QgbWF4KSB7CisgICAgICAgIHJldHZhbCA9IHI7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICptaW5GcmVxID0gbWluOworICAgICAgICAgICptYXhGcmVxID0gbWF4OworICAgICAgICB9CisgICAgICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICByZXQgPSBlcXVhbGl6ZXItPmdldEJhbmRDZW50ZXJGcmVxdWVuY3koYmFuZCwgWyZdKFJlc3VsdCByLCB1aW50MzJfdCBjZW50ZXIpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgKmNlbnRlckZyZXEgPSBjZW50ZXI7CisgICAgfQorICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworfQorCit2b2lkIEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3Q6OmdldFByZXNldENvdW50KHNpemVfdCogY291bnQpIHsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0gZXF1YWxpemVyLT5nZXRQcmVzZXROYW1lcygKKyAgICAgIFsmXShSZXN1bHQgciwgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBuYW1lcykgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAqY291bnQgPSBuYW1lcy5zaXplKCk7CisgICAgICAgIH0KKyAgICAgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7Cit9CisKK1RFU1RfRihFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXROdW1CYW5kcykgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgRXF1YWxpemVyIGVmZmVjdCByZXBvcnRzIGF0IGxlYXN0IG9uZSBiYW5kIik7CisgIHVpbnQxNl90IG51bUJhbmRzID0gMDsKKyAgZ2V0TnVtQmFuZHMoJm51bUJhbmRzKTsKKyAgRVhQRUNUX0dUKG51bUJhbmRzLCAwKTsKK30KKworVEVTVF9GKEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldExldmVsUmFuZ2UpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEVxdWFsaXplciBlZmZlY3QgcmVwb3J0cyBhZGVxdWF0ZSBiYW5kIGxldmVsIHJhbmdlIik7CisgIGludDE2X3QgbWluTGV2ZWwgPSAweDdmZmYsIG1heExldmVsID0gMDsKKyAgZ2V0TGV2ZWxSYW5nZSgmbWluTGV2ZWwsICZtYXhMZXZlbCk7CisgIEVYUEVDVF9HVChtYXhMZXZlbCwgbWluTGV2ZWwpOworfQorCitURVNUX0YoRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0U2V0QmFuZExldmVsKSB7CisgIGRlc2NyaXB0aW9uKAorICAgICAgIlZlcmlmeSB0aGF0IG1hbmlwdWxhdGluZyBiYW5kIGxldmVscyB3b3JrcyBmb3IgRXF1YWxpemVyIGVmZmVjdCIpOworICB1aW50MTZfdCBudW1CYW5kcyA9IDA7CisgIGdldE51bUJhbmRzKCZudW1CYW5kcyk7CisgIEFTU0VSVF9HVChudW1CYW5kcywgMCk7CisgIGludDE2X3QgbGV2ZWxzWzNdezB4N2ZmZiwgMCwgMH07CisgIGdldExldmVsUmFuZ2UoJmxldmVsc1swXSwgJmxldmVsc1syXSk7CisgIEFTU0VSVF9HVChsZXZlbHNbMl0sIGxldmVsc1swXSk7CisgIGxldmVsc1sxXSA9IChsZXZlbHNbMl0gKyBsZXZlbHNbMF0pIC8gMjsKKyAgZm9yICh1aW50MTZfdCBpID0gMDsgaSA8IG51bUJhbmRzOyArK2kpIHsKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IEFSUkFZX1NJWkUobGV2ZWxzKTsgKytqKSB7CisgICAgICBSZXR1cm48UmVzdWx0PiByZXQgPSBlcXVhbGl6ZXItPnNldEJhbmRMZXZlbChpLCBsZXZlbHNbal0pOworICAgICAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0KTsKKyAgICAgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgIGludDE2X3QgYWN0dWFsTGV2ZWw7CisgICAgICBSZXR1cm48dm9pZD4gcmV0MiA9IGVxdWFsaXplci0+Z2V0QmFuZExldmVsKGksIFsmXShSZXN1bHQgciwgaW50MTZfdCBsKSB7CisgICAgICAgIHJldHZhbCA9IHI7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgIGFjdHVhbExldmVsID0gbDsKKyAgICAgICAgfQorICAgICAgfSk7CisgICAgICBFWFBFQ1RfVFJVRShyZXQyLmlzT2soKSk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgICAgIEVYUEVDVF9FUShsZXZlbHNbal0sIGFjdHVhbExldmVsKTsKKyAgICB9CisgIH0KK30KKworVEVTVF9GKEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldEJhbmRDZW50ZXJGcmVxdWVuY3lBbmRSYW5nZSkgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBFcXVhbGl6ZXIgZWZmZWN0IHJlcG9ydHMgYWRlcXVhdGUgYmFuZCBmcmVxdWVuY3kgcmFuZ2UiKTsKKyAgdWludDE2X3QgbnVtQmFuZHMgPSAwOworICBnZXROdW1CYW5kcygmbnVtQmFuZHMpOworICBBU1NFUlRfR1QobnVtQmFuZHMsIDApOworICBmb3IgKHVpbnQxNl90IGkgPSAwOyBpIDwgbnVtQmFuZHM7ICsraSkgeworICAgIHVpbnQzMl90IG1pbkZyZXEgPSAweGZmZmZmZmZmLCBjZW50ZXJGcmVxID0gMHhmZmZmZmZmZiwKKyAgICAgICAgICAgICBtYXhGcmVxID0gMHhmZmZmZmZmZjsKKyAgICBnZXRCYW5kRnJlcXVlbmN5UmFuZ2UoaSwgJm1pbkZyZXEsICZjZW50ZXJGcmVxLCAmbWF4RnJlcSk7CisgICAgLy8gTm90ZTogTlhQIGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiByZXBvcnRzICIxIiBhcyB1cHBlciBib3VuZCBmb3IgbGFzdCBiYW5kLAorICAgIC8vIHNvIHRoaXMgY2hlY2sgZmFpbHMuCisgICAgRVhQRUNUX0dFKG1heEZyZXEsIGNlbnRlckZyZXEpOworICAgIEVYUEVDVF9HRShjZW50ZXJGcmVxLCBtaW5GcmVxKTsKKyAgfQorfQorCitURVNUX0YoRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0QmFuZEZvckZyZXF1ZW5jeSkgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBFcXVhbGl6ZXIgZWZmZWN0IHN1cHBvcnRzIEdldEJhbmRGb3JGcmVxdWVuY3kgY29ycmVjdGx5Iik7CisgIHVpbnQxNl90IG51bUJhbmRzID0gMDsKKyAgZ2V0TnVtQmFuZHMoJm51bUJhbmRzKTsKKyAgQVNTRVJUX0dUKG51bUJhbmRzLCAwKTsKKyAgZm9yICh1aW50MTZfdCBpID0gMDsgaSA8IG51bUJhbmRzOyArK2kpIHsKKyAgICB1aW50MzJfdCBmcmVxc1szXXswLCAwLCAwfTsKKyAgICBnZXRCYW5kRnJlcXVlbmN5UmFuZ2UoaSwgJmZyZXFzWzBdLCAmZnJlcXNbMV0sICZmcmVxc1syXSk7CisgICAgLy8gTlhQIGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiByZXBvcnRzICIxIiBhcyB1cHBlciBib3VuZCBmb3IgbGFzdCBiYW5kLCBzb21lCisgICAgLy8gb2YgdGhlIGNoZWNrcyBmYWlsLgorICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgQVJSQVlfU0laRShmcmVxcyk7ICsraikgeworICAgICAgaWYgKGogPT0gMCkgeworICAgICAgICBmcmVxc1tqXSsrOworICAgICAgfSAgLy8gTWluIGZyZXF1ZW5jeSBpcyBhbiBvcGVuIGludGVydmFsLgorICAgICAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgICAgdWludDE2X3QgYWN0dWFsQmFuZCA9IG51bUJhbmRzICsgMTsKKyAgICAgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgICAgIGVxdWFsaXplci0+Z2V0QmFuZEZvckZyZXF1ZW5jeShmcmVxc1tqXSwgWyZdKFJlc3VsdCByLCB1aW50MTZfdCBiKSB7CisgICAgICAgICAgICByZXR2YWwgPSByOworICAgICAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgIGFjdHVhbEJhbmQgPSBiOworICAgICAgICAgICAgfQorICAgICAgICAgIH0pOworICAgICAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgICAgIEVYUEVDVF9FUShpLCBhY3R1YWxCYW5kKSA8PCAiRnJlcXVlbmN5OiAiIDw8IGZyZXFzW2pdOworICAgIH0KKyAgfQorfQorCitURVNUX0YoRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0UHJlc2V0TmFtZXMpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEVxdWFsaXplciBlZmZlY3QgcmVwb3J0cyBhdCBsZWFzdCBvbmUgcHJlc2V0Iik7CisgIHNpemVfdCBwcmVzZXRDb3VudDsKKyAgZ2V0UHJlc2V0Q291bnQoJnByZXNldENvdW50KTsKKyAgRVhQRUNUX0dUKHByZXNldENvdW50LCAwdSk7Cit9CisKK1RFU1RfRihFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXRTZXRDdXJyZW50UHJlc2V0KSB7CisgIGRlc2NyaXB0aW9uKAorICAgICAgIlZlcmlmeSB0aGF0IG1hbmlwdWxhdGluZyB0aGUgY3VycmVudCBwcmVzZXQgZm9yIEVxdWFsaXplciBlZmZlY3QiKTsKKyAgc2l6ZV90IHByZXNldENvdW50OworICBnZXRQcmVzZXRDb3VudCgmcHJlc2V0Q291bnQpOworICBBU1NFUlRfR1QocHJlc2V0Q291bnQsIDB1KTsKKyAgZm9yICh1aW50MTZfdCBpID0gMDsgaSA8IHByZXNldENvdW50OyArK2kpIHsKKyAgICBSZXR1cm48UmVzdWx0PiByZXQgPSBlcXVhbGl6ZXItPnNldEN1cnJlbnRQcmVzZXQoaSk7CisgICAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgICAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIHVpbnQxNl90IGFjdHVhbFByZXNldCA9IDB4ZmZmZjsKKyAgICBSZXR1cm48dm9pZD4gcmV0MiA9IGVxdWFsaXplci0+Z2V0Q3VycmVudFByZXNldChbJl0oUmVzdWx0IHIsIHVpbnQxNl90IHApIHsKKyAgICAgIHJldHZhbCA9IHI7CisgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgYWN0dWFsUHJlc2V0ID0gcDsKKyAgICAgIH0KKyAgICB9KTsKKyAgICBFWFBFQ1RfVFJVRShyZXQyLmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgICAgRVhQRUNUX0VRKGksIGFjdHVhbFByZXNldCk7CisgIH0KK30KKworVEVTVF9GKEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldFNldEFsbFByb3BlcnRpZXMpIHsKKyAgZGVzY3JpcHRpb24oCisgICAgICAiVmVyaWZ5IHRoYXQgc2V0dGluZyBiYW5kIGxldmVscyBhbmQgcHJlc2V0cyB3b3JrcyB2aWEgR2V0IC8gIgorICAgICAgIlNldEFsbFByb3BlcnRpZXMgZm9yIEVxdWFsaXplciBlZmZlY3QiKTsKKyAgdXNpbmcgQWxsUHJvcGVydGllcyA9CisgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVxdWFsaXplckVmZmVjdDo6QWxsUHJvcGVydGllczsKKyAgdWludDE2X3QgbnVtQmFuZHMgPSAwOworICBnZXROdW1CYW5kcygmbnVtQmFuZHMpOworICBBU1NFUlRfR1QobnVtQmFuZHMsIDApOworICBBbGxQcm9wZXJ0aWVzIHByb3BzOworICBwcm9wcy5iYW5kTGV2ZWxzLnJlc2l6ZShudW1CYW5kcyk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtQmFuZHM7ICsraSkgeworICAgIHByb3BzLmJhbmRMZXZlbHNbaV0gPSAwOworICB9CisKKyAgQWxsUHJvcGVydGllcyBhY3R1YWxQcm9wczsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworCisgIC8vIFZlcmlmeSBzZXR0aW5nIG9mIHRoZSBiYW5kIGxldmVscyB2aWEgcHJvcGVydGllcy4KKyAgcHJvcHMuY3VyUHJlc2V0ID0gLTE7CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVxdWFsaXplci0+c2V0QWxsUHJvcGVydGllcyhwcm9wcyk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0KTsKKyAgUmV0dXJuPHZvaWQ+IHJldDIgPQorICAgICAgZXF1YWxpemVyLT5nZXRBbGxQcm9wZXJ0aWVzKFsmXShSZXN1bHQgciwgQWxsUHJvcGVydGllcyBwKSB7CisgICAgICAgIHJldHZhbCA9IHI7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgIGFjdHVhbFByb3BzID0gcDsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIEVYUEVDVF9FUShwcm9wcy5iYW5kTGV2ZWxzLCBhY3R1YWxQcm9wcy5iYW5kTGV2ZWxzKTsKKworICAvLyBWZXJpZnkgc2V0dGluZyBvZiB0aGUgY3VycmVudCBwcmVzZXQgdmlhIHByb3BlcnRpZXMuCisgIHByb3BzLmN1clByZXNldCA9IDA7ICAvLyBBc3N1bWluZyB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcHJlc2V0LgorICByZXQgPSBlcXVhbGl6ZXItPnNldEFsbFByb3BlcnRpZXMocHJvcHMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgIHJldDIgPSBlcXVhbGl6ZXItPmdldEFsbFByb3BlcnRpZXMoWyZdKFJlc3VsdCByLCBBbGxQcm9wZXJ0aWVzIHApIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgYWN0dWFsUHJvcHMgPSBwOworICAgIH0KKyAgfSk7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIEVYUEVDVF9FUShwcm9wcy5jdXJQcmVzZXQsIGFjdHVhbFByb3BzLmN1clByZXNldCk7Cit9CisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIEVxdWFsaXplciBBdWRpbyBFZmZlY3QgSElETCBIQUwuCitjbGFzcyBMb3VkbmVzc0VuaGFuY2VyQXVkaW9FZmZlY3RIaWRsVGVzdCA6IHB1YmxpYyBBdWRpb0VmZmVjdEhpZGxUZXN0IHsKKyBwdWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgQXVkaW9FZmZlY3RIaWRsVGVzdDo6U2V0VXAoKTsKKyAgICBlbmhhbmNlciA9IElMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpjYXN0RnJvbShlZmZlY3QpOworICAgIEFTU0VSVF9ORShudWxscHRyLCBlbmhhbmNlci5nZXQoKSk7CisgIH0KKworIHByb3RlY3RlZDoKKyAgVXVpZCBnZXRFZmZlY3RUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gTE9VRE5FU1NfRU5IQU5DRVJfRUZGRUNUX1RZUEU7IH0KKworICBzcDxJTG91ZG5lc3NFbmhhbmNlckVmZmVjdD4gZW5oYW5jZXI7Cit9OworCitURVNUX0YoTG91ZG5lc3NFbmhhbmNlckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldFNldFRhcmdldEdhaW4pIHsKKyAgZGVzY3JpcHRpb24oCisgICAgICAiVmVyaWZ5IHRoYXQgbWFuaXB1bGF0aW5nIHRoZSB0YXJnZXQgZ2FpbiB3b3JrcyBmb3IgTG91ZG5lc3MgRW5oYW5jZXIgIgorICAgICAgImVmZmVjdCIpOworICBjb25zdCBpbnQzMl90IGdhaW4gPSAxMDA7CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVuaGFuY2VyLT5zZXRUYXJnZXRHYWluKGdhaW4pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgIGludDMyX3QgYWN0dWFsR2FpbiA9IDA7CisgIFJlc3VsdCByZXR2YWw7CisgIFJldHVybjx2b2lkPiByZXQyID0gZW5oYW5jZXItPmdldFRhcmdldEdhaW4oWyZdKFJlc3VsdCByLCBpbnQzMl90IGcpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgYWN0dWFsR2FpbiA9IGc7CisgICAgfQorICB9KTsKKyAgRVhQRUNUX1RSVUUocmV0Mi5pc09rKCkpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgRVhQRUNUX0VRKGdhaW4sIGFjdHVhbEdhaW4pOworfQpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0L0FuZHJvaWQubWsgYi9hdWRpby9lZmZlY3QvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvQW5kcm9pZC5icCBiL2F1dG9tb3RpdmUvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWM4ODY1Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsOCBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiZXZzLzEuMCIsCisgICAgImV2cy8xLjAvZGVmYXVsdCIsCisgICAgImV2cy8xLjAvdnRzL2Z1bmN0aW9uYWwiLAorICAgICJ2ZWhpY2xlLzIuMCIsCisgICAgInZlaGljbGUvMi4xIiwKK10KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9BbmRyb2lkLmJwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNhOTdhNwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsODQgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUV2c0NhbWVyYS5oYWwiLAorICAgICAgICAiSUV2c0NhbWVyYVN0cmVhbS5oYWwiLAorICAgICAgICAiSUV2c0Rpc3BsYXkuaGFsIiwKKyAgICAgICAgIklFdnNFbnVtZXJhdG9yLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvRXZzQ2FtZXJhQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9FdnNDYW1lcmFTdHJlYW1BbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0V2c0Rpc3BsYXlBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0V2c0VudW1lcmF0b3JBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lId0V2c0NhbWVyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JuSHdFdnNDYW1lcmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9CcEh3RXZzQ2FtZXJhLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQnNFdnNDYW1lcmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhU3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUh3RXZzQ2FtZXJhU3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQm5Id0V2c0NhbWVyYVN0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JwSHdFdnNDYW1lcmFTdHJlYW0uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9Cc0V2c0NhbWVyYVN0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNEaXNwbGF5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUh3RXZzRGlzcGxheS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JuSHdFdnNEaXNwbGF5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQnBId0V2c0Rpc3BsYXkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9Cc0V2c0Rpc3BsYXkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRW51bWVyYXRvci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lId0V2c0VudW1lcmF0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9Cbkh3RXZzRW51bWVyYXRvci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JwSHdFdnNFbnVtZXJhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQnNFdnNFbnVtZXJhdG9yLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhLmhhbCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmNhZjkyCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmEuaGFsCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOworCitpbXBvcnQgdHlwZXM7CitpbXBvcnQgSUV2c0NhbWVyYVN0cmVhbTsKKworCisvKioKKyAqIFJlcHJlc2VudHMgYSBzaW5nbGUgY2FtZXJhIGFuZCBpcyB0aGUgcHJpbWFyeSBpbnRlcmZhY2UgZm9yIGNhcHR1cmluZyBpbWFnZXMuCisgKi8KK2ludGVyZmFjZSBJRXZzQ2FtZXJhIHsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIElEIG9mIHRoaXMgY2FtZXJhLgorICAgICAqCisgICAgICogUmV0dXJucyB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBjYW1lcmEuIFRoaXMgbXVzdCBiZSB0aGUgc2FtZSB2YWx1ZSBhcyByZXBvcnRlZAorICAgICAqIGJ5IEV2c0VudW1lcmF0b3I6OmdldENhbWVyTGlzdCgpLgorICAgICAqLworICAgIGdldENhbWVyYUluZm8oKSBnZW5lcmF0ZXMgKENhbWVyYURlc2MgaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZpZXMgdGhlIGRlcHRoIG9mIHRoZSBidWZmZXIgY2hhaW4gdGhlIGNhbWVyYSBpcyBhc2tlZCB0byBzdXBwb3J0LgorICAgICAqCisgICAgICogVXAgdG8gdGhpcyBtYW55IGZyYW1lcyBtYXkgYmUgaGVsZCBjb25jdXJyZW50bHkgYnkgdGhlIGNsaWVudCBvZiBJRXZzQ2FtZXJhLgorICAgICAqIElmIHRoaXMgbWFueSBmcmFtZXMgaGF2ZSBiZWVuIGRlbGl2ZXJlZCB0byB0aGUgcmVjZWl2ZXIgd2l0aG91dCBiZWluZyByZXR1cm5lZAorICAgICAqIGJ5IGRvbmVXaXRoRnJhbWUsIHRoZSBzdHJlYW0gbXVzdCBza2lwIGZyYW1lcyB1bnRpbCBhIGJ1ZmZlciBpcyByZXR1cm5lZCBmb3IgcmV1c2UuCisgICAgICogSXQgaXMgbGVnYWwgZm9yIHRoaXMgY2FsbCB0byBjb21lIGF0IGFueSB0aW1lLCBldmVuIHdoaWxlIHN0cmVhbXMgYXJlIGFscmVhZHkgcnVubmluZywKKyAgICAgKiBpbiB3aGljaCBjYXNlIGJ1ZmZlcnMgc2hvdWxkIGJlIGFkZGVkIG9yIHJlbW92ZWQgZnJvbSB0aGUgY2hhaW4gYXMgYXBwcm9wcmlhdGUuCisgICAgICogSWYgbm8gY2FsbCBpcyBtYWRlIHRvIHRoaXMgZW50cnkgcG9pbnQsIHRoZSBJRXZzQ2FtZXJhIG11c3Qgc3VwcG9ydCBhdCBsZWFzdCBvbmUKKyAgICAgKiBmcmFtZSBieSBkZWZhdWx0LiBNb3JlIGlzIGFjY2VwdGFibGUuCisgICAgICogQlVGRkVSX05PVF9BVkFJTEFCTEUgaXMgcmV0dXJuZWQgaWYgdGhlIGltcGxlbWVudGF0aW9uIGNhbm5vdCBzdXBwb3J0IHRoZQorICAgICAqIHJlcXVlc3RlZCBudW1iZXIgb2YgY29uY3VycmVudCBmcmFtZXMuCisgICAgICovCisgICAgc2V0TWF4RnJhbWVzSW5GbGlnaHQodWludDMyX3QgYnVmZmVyQ291bnQpIGdlbmVyYXRlcyAoRXZzUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXF1ZXN0IGRlbGl2ZXJ5IG9mIEVWUyBjYW1lcmEgZnJhbWVzIGZyb20gdGhpcyBjYW1lcmEuCisgICAgICoKKyAgICAgKiBUaGUgSUV2c0NhbWVyYVN0cmVhbSBtdXN0IGJlZ2luIHJlY2VpdmluZyBwZXJpb2RpYyBjYWxscyB3aXRoIG5ldyBpbWFnZQorICAgICAqIGZyYW1lcyB1bnRpbCBzdG9wVmlkZW9TdHJlYW0oKSBpcyBjYWxsZWQuCisgICAgICovCisgICAgc3RhcnRWaWRlb1N0cmVhbShJRXZzQ2FtZXJhU3RyZWFtIHJlY2VpdmVyKSBnZW5lcmF0ZXMgKEV2c1Jlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgZnJhbWUgdGhhdCB3YXMgZGVsaXZlcmVkIGJ5IHRvIHRoZSBJRXZzQ2FtZXJhU3RyZWFtLgorICAgICAqCisgICAgICogV2hlbiBkb25lIGNvbnN1bWluZyBhIGZyYW1lIGRlbGl2ZXJlZCB0byB0aGUgSUV2c0NhbWVyYVN0cmVhbQorICAgICAqIGludGVyZmFjZSwgaXQgbXVzdCBiZSByZXR1cm5lZCB0byB0aGUgSUV2c0NhbWVyYSBmb3IgcmV1c2UuCisgICAgICogQSBzbWFsbCwgZmluaXRlIG51bWJlciBvZiBidWZmZXJzIGFyZSBhdmFpbGFibGUgKHBvc3NpYmx5IGFzIHNtYWxsCisgICAgICogYXMgb25lKSwgYW5kIGlmIHRoZSBzdXBwbHkgaXMgZXhoYXVzdGVkLCBubyBmdXJ0aGVyIGZyYW1lcyBtYXkgYmUKKyAgICAgKiBkZWxpdmVyZWQgdW50aWwgYSBidWZmZXIgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgb25ld2F5IGRvbmVXaXRoRnJhbWUoQnVmZmVyRGVzYyBidWZmZXIpOworCisgICAgLyoqCisgICAgICogU3RvcCB0aGUgZGVsaXZlcnkgb2YgRVZTIGNhbWVyYSBmcmFtZXMuCisgICAgICoKKyAgICAgKiBCZWNhdXNlIGRlbGl2ZXJ5IGlzIGFzeW5jaHJvbm91cywgZnJhbWVzIG1heSBjb250aW51ZSB0byBhcnJpdmUgZm9yCisgICAgICogc29tZSB0aW1lIGFmdGVyIHRoaXMgY2FsbCByZXR1cm5zLiBFYWNoIG11c3QgYmUgcmV0dXJuZWQgdW50aWwgdGhlCisgICAgICogY2xvc3VyZSBvZiB0aGUgc3RyZWFtIGlzIHNpZ25hbGVkIHRvIHRoZSBJRXZzQ2FtZXJhU3RyZWFtLgorICAgICAqIFRoaXMgZnVuY3Rpb24gY2Fubm90IGZhaWwgYW5kIGlzIHNpbXBseSBpZ25vcmVkIGlmIHRoZSBzdHJlYW0gaXNuJ3QgcnVubmluZy4KKyAgICAgKi8KKyAgICBzdG9wVmlkZW9TdHJlYW0oKTsKKworICAgIC8qKgorICAgICAqIFJlcXVlc3QgZHJpdmVyIHNwZWNpZmljIGluZm9ybWF0aW9uIGZyb20gdGhlIEhBTCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZXMgYWxsb3dlZCBmb3Igb3BhcXVlSWRlbnRpZmllciBhcmUgZHJpdmVyIHNwZWNpZmljLAorICAgICAqIGJ1dCBubyB2YWx1ZSBwYXNzZWQgaW4gbWF5IGNyYXNoIHRoZSBkcml2ZXIuIFRoZSBkcml2ZXIgc2hvdWxkCisgICAgICogcmV0dXJuIDAgZm9yIGFueSB1bnJlY29nbml6ZWQgb3BhcXVlSWRlbnRpZmllci4KKyAgICAgKi8KKyAgICBnZXRFeHRlbmRlZEluZm8odWludDMyX3Qgb3BhcXVlSWRlbnRpZmllcikgZ2VuZXJhdGVzIChpbnQzMl90IHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBkcml2ZXIgc3BlY2lmaWMgdmFsdWUgdG8gdGhlIEhBTCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKgorICAgICAqIFRoaXMgZXh0ZW5zaW9uIGlzIHByb3ZpZGVkIHRvIGZhY2lsaXRhdGUgY2FyIHNwZWNpZmljCisgICAgICogZXh0ZW5zaW9ucywgYnV0IG5vIEhBTCBpbXBsZW1lbnRhdGlvbiBtYXkgcmVxdWlyZSB0aGlzIGNhbGwKKyAgICAgKiBpbiBvcmRlciB0byBmdW5jdGlvbiBpbiBhIGRlZmF1bHQgc3RhdGUuCisgICAgICogSU5WQUxJRF9BUkcgaXMgcmV0dXJuZWQgaWYgdGhlIG9wYXF1ZVZhbHVlIGlzIG5vdCBtZWFuaW5nZnVsIHRvCisgICAgICogdGhlIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKi8KKyAgICBzZXRFeHRlbmRlZEluZm8odWludDMyX3Qgb3BhcXVlSWRlbnRpZmllciwgaW50MzJfdCBvcGFxdWVWYWx1ZSkgZ2VuZXJhdGVzIChFdnNSZXN1bHQgcmVzdWx0KTsKK307CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYVN0cmVhbS5oYWwgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYVN0cmVhbS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU3NDNiMgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhU3RyZWFtLmhhbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDsKKworCisvKioKKyAqIEltcGxlbWVudGVkIG9uIGNsaWVudCBzaWRlIHRvIHJlY2VpdmUgYXN5bmNocm9ub3VzIHZpZGVvIGZyYW1lIGRlbGl2ZXJpZXMuCisgKi8KK2ludGVyZmFjZSBJRXZzQ2FtZXJhU3RyZWFtIHsKKworICAgIC8qKgorICAgICAqIFJlY2VpdmVzIGNhbGxzIGZyb20gdGhlIEhBTCBlYWNoIHRpbWUgYSB2aWRlbyBmcmFtZSBpcyByZWFkeSBmb3IgaW5zcGVjdGlvbi4KKyAgICAgKiBCdWZmZXIgaGFuZGxlcyByZWNlaXZlZCBieSB0aGlzIG1ldGhvZCBtdXN0IGJlIHJldHVybmVkIHZpYSBjYWxscyB0bworICAgICAqIElFdnNDYW1lcmE6OmRvbmVXaXRoRnJhbWUoKS4gV2hlbiB0aGUgdmlkZW8gc3RyZWFtIGlzIHN0b3BwZWQgdmlhIGEgY2FsbAorICAgICAqIHRvIElFdnNDYW1lcmE6OnN0b3BWaWRlb1N0cmVhbSgpLCB0aGlzIGNhbGxiYWNrIG1heSBjb250aW51ZSB0byBoYXBwZW4gZm9yCisgICAgICogc29tZSB0aW1lIGFzIHRoZSBwaXBlbGluZSBkcmFpbnMuIEVhY2ggZnJhbWUgbXVzdCBzdGlsbCBiZSByZXR1cm5lZC4KKyAgICAgKiBXaGVuIHRoZSBsYXN0IGZyYW1lIGluIHRoZSBzdHJlYW0gaGFzIGJlZW4gZGVsaXZlcmVkLCBhIE5VTEwgYnVmZmVySGFuZGxlCisgICAgICogbXVzdCBiZSBkZWxpdmVyZWQsIHNpZ25pZnlpbmcgdGhlIGVuZCBvZiB0aGUgc3RyZWFtLiBObyBmdXJ0aGVyIGZyYW1lCisgICAgICogZGVsaXZlcmllcyBtYXkgaGFwcGVuIHRoZXJlYWZ0ZXIuCisgICAgICovCisgICAgb25ld2F5IGRlbGl2ZXJGcmFtZShCdWZmZXJEZXNjIGJ1ZmZlcik7Cit9OwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNEaXNwbGF5LmhhbCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRGlzcGxheS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI1NDFmMwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRGlzcGxheS5oYWwKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjA7CisKK2ltcG9ydCB0eXBlczsKKworCisvKioKKyAqIFJlcHJlc2VudHMgYSBzaW5nbGUgY2FtZXJhIGFuZCBpcyB0aGUgcHJpbWFyeSBpbnRlcmZhY2UgZm9yIGNhcHR1cmluZyBpbWFnZXMuCisgKi8KK2ludGVyZmFjZSBJRXZzRGlzcGxheSB7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBFVlMgZGlzcGxheSBwcm92aWRlZCBieSB0aGUgc3lzdGVtLgorICAgICAqCisgICAgICogU2VlIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgRGlzcGxheURlc2Mgc3RydWN0dXJlIGZvciBkZXRhaWxzLgorICAgICAqLworICAgICBnZXREaXNwbGF5SW5mbygpIGdlbmVyYXRlcyAoRGlzcGxheURlc2MgaW5mbyk7CisKKworICAgIC8qKgorICAgICAqIENsaWVudHMgbWF5IHNldCB0aGUgZGlzcGxheSBzdGF0ZSB0byBleHByZXNzIHRoZWlyIGRlc2lyZWQgc3RhdGUuCisgICAgICoKKyAgICAgKiBUaGUgSEFMIGltcGxlbWVudGF0aW9uIG11c3QgZ3JhY2VmdWxseSBhY2NlcHQgYSByZXF1ZXN0IGZvciBhbnkgc3RhdGUgd2hpbGUgaW4KKyAgICAgKiBhbnkgb3RoZXIgc3RhdGUsIGFsdGhvdWdoIHRoZSByZXNwb25zZSBtYXkgYmUgdG8gZGVmZXIgb3IgaWdub3JlIHRoZSByZXF1ZXN0LiBUaGUgZGlzcGxheQorICAgICAqIGlzIGRlZmluZWQgdG8gc3RhcnQgaW4gdGhlIE5PVF9WSVNJQkxFIHN0YXRlIHVwb24gaW5pdGlhbGl6YXRpb24uIFRoZSBjbGllbnQgaXMKKyAgICAgKiB0aGVuIGV4cGVjdGVkIHRvIHJlcXVlc3QgdGhlIFZJU0lCTEVfT05fTkVYVF9GUkFNRSBzdGF0ZSwgYW5kIHRoZW4gYmVnaW4gcHJvdmlkaW5nCisgICAgICogdmlkZW8uIFdoZW4gdGhlIGRpc3BsYXkgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLCB0aGUgY2xpZW50IGlzIGV4cGVjdGVkIHRvIHJlcXVlc3QKKyAgICAgKiB0aGUgTk9UX1ZJU0lCTEUgc3RhdGUgYWZ0ZXIgcGFzc2luZyB0aGUgbGFzdCB2aWRlbyBmcmFtZS4KKyAgICAgKiBSZXR1cm5zIElOVkFMSURfQVJHIGlmIHRoZSByZXF1ZXN0ZWQgc3RhdGUgaXMgbm90IGEgcmVjb2duaXplZCB2YWx1ZS4KKyAgICAgKi8KKyAgICAgc2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZSBzdGF0ZSkgZ2VuZXJhdGVzIChFdnNSZXN1bHQgcmVzdWx0KTsKKworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsIHJlcXVlc3RzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBkaXNwbGF5CisgICAgICoKKyAgICAgKiBUaGUgSEFMIGltcGxlbWVudGF0aW9uIHNob3VsZCByZXBvcnQgdGhlIGFjdHVhbCBjdXJyZW50IHN0YXRlLCB3aGljaCBtaWdodAorICAgICAqIHRyYW5zaWVudGx5IGRpZmZlciBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IHJlcXVlc3RlZCBzdGF0ZS4gTm90ZSwgaG93ZXZlciwgdGhhdAorICAgICAqIHRoZSBsb2dpYyByZXNwb25zaWJsZSBmb3IgY2hhbmdpbmcgZGlzcGxheSBzdGF0ZXMgc2hvdWxkIGdlbmVyYWxseSBsaXZlIGFib3ZlCisgICAgICogdGhlIGRldmljZSBsYXllciwgbWFraW5nIGl0IHVuZGVzaXJhYmxlIGZvciB0aGUgSEFMIGltcGxlbWVudGF0aW9uIHRvIHNwb250YW5lb3VzbHkKKyAgICAgKiBjaGFuZ2UgZGlzcGxheSBzdGF0ZXMuCisgICAgICovCisgICAgIGdldERpc3BsYXlTdGF0ZSgpIGdlbmVyYXRlcyAoRGlzcGxheVN0YXRlIHN0YXRlKTsKKworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsIHJldHVybnMgYSBoYW5kbGUgdG8gYSBmcmFtZSBidWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaXNwbGF5LgorICAgICAqCisgICAgICogVGhlIHJldHVybmVkIGJ1ZmZlciBtYXkgYmUgbG9ja2VkIGFuZCB3cml0dGVuIHRvIGJ5IHNvZnR3YXJlIGFuZC9vciBHTC4gVGhpcyBidWZmZXIKKyAgICAgKiBtdXN0IGJlIHJldHVybmVkIHZpYSBhIGNhbGwgdG8gcmV0dXJuVGFyZ2V0QnVmZmVyRm9yRGlzcGxheSgpIGV2ZW4gaWYgdGhlCisgICAgICogZGlzcGxheSBpcyBubyBsb25nZXIgdmlzaWJsZS4KKyAgICAgKi8KKyAgICAgZ2V0VGFyZ2V0QnVmZmVyKCkgZ2VuZXJhdGVzIChCdWZmZXJEZXNjIGJ1ZmZlcik7CisKKworICAgIC8qKgorICAgICAqIFRoaXMgY2FsbCB0ZWxscyB0aGUgZGlzcGxheSB0aGF0IHRoZSBidWZmZXIgaXMgcmVhZHkgZm9yIGRpc3BsYXkuCisgICAgICoKKyAgICAgKiBUaGUgYnVmZmVyIGlzIG5vIGxvbmdlciB2YWxpZCBmb3IgdXNlIGJ5IHRoZSBjbGllbnQgYWZ0ZXIgdGhpcyBjYWxsLgorICAgICAqIFRoZXJlIGlzIG5vIG1heGltdW0gdGltZSB0aGUgY2FsbGVyIG1heSBob2xkIG9udG8gdGhlIGJ1ZmZlciBiZWZvcmUgbWFraW5nIHRoaXMKKyAgICAgKiBjYWxsLiBUaGUgYnVmZmVyIG1heSBiZSByZXR1cm5lZCBhdCBhbnkgdGltZSBhbmQgaW4gYW55IERpc3BsYXlTdGF0ZSwgYnV0IGFsbAorICAgICAqIGJ1ZmZlcnMgYXJlIGV4cGVjdGVkIHRvIGJlIHJldHVybmVkIGJlZm9yZSB0aGUgSUV2c0Rpc3BsYXkgaW50ZXJmYWNlIGlzIGRlc3Ryb3llZC4KKyAgICAgKi8KKyAgICByZXR1cm5UYXJnZXRCdWZmZXJGb3JEaXNwbGF5KEJ1ZmZlckRlc2MgYnVmZmVyKSBnZW5lcmF0ZXMgKEV2c1Jlc3VsdCByZXN1bHQpOworfTsKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRW51bWVyYXRvci5oYWwgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0VudW1lcmF0b3IuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ZDExN2EKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0VudW1lcmF0b3IuaGFsCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOworCitpbXBvcnQgdHlwZXM7CitpbXBvcnQgSUV2c0NhbWVyYTsKK2ltcG9ydCBJRXZzRGlzcGxheTsKKworCisvKioKKyAqIFByb3ZpZGVzIHRoZSBtZWNoYW5pc20gZm9yIEVWUyBjYW1lcmEgZGlzY292ZXJ5CisgKi8KK2ludGVyZmFjZSBJRXZzRW51bWVyYXRvciB7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgRVZTIGNhbWVyYXMgYXZhaWxhYmxlIHRvIHRoZSBzeXN0ZW0KKyAgICAgKi8KKyAgICBnZXRDYW1lcmFMaXN0KCkgZ2VuZXJhdGVzICh2ZWM8Q2FtZXJhRGVzYz4gY2FtZXJhcyk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIElFdnNDYW1lcmEgYXNzb2NpYXRlZCB3aXRoIGEgY2FtZXJhSWQgZnJvbSBhIENhbWVyYURlc2MKKyAgICAgKgorICAgICAqIEdpdmVuIGEgY2FtZXJhJ3MgdW5pcXVlIGNhbWVyYUlkIGZyb20gY2EgQ2FtZXJhRGVzYywgcmV0dXJucworICAgICAqIHRoZSBJQ2FtZXJhIGludGVyZmFjZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBjYW1lcmEuCisgICAgICogV2hlbiBkb25lIHVzaW5nIHRoZSBjYW1lcmEsIHRoZSBjYWxsZXIgbWF5IHJlbGVhc2UgaXQgYnkgY2FsbGluZyBjbG9zZUNhbWVyYSgpLgorICAgICAqIFRPRE8oYi8zNjEyMjYzNSkgUmVsaWFuY2Ugb24gdGhlIHNwPD4gZ29pbmcgb3V0IG9mIHNjb3BlIGlzIG5vdCByZWNvbW1lbmRlZCBiZWNhdXNlIHRoZQorICAgICAqIHJlc291cmNlcyBtYXkgbm90IGJlIHJlbGVhc2VkIHJpZ2h0IGF3YXkgZHVlIHRvIGFzeW5jaHJvbm9zIGJlaGF2aW9yIGluIHRoZSBoYXJkd2FyZSBiaW5kZXIuCisgICAgICovCisgICAgb3BlbkNhbWVyYShzdHJpbmcgY2FtZXJhSWQpIGdlbmVyYXRlcyAoSUV2c0NhbWVyYSBjYXJDYW1lcmEpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzcGVjaWZpZWQgSUV2c0NhbWVyYSBpbnRlcmZhY2UgYXMgbm8gbG9uZ2VyIGluIHVzZQorICAgICAqCisgICAgICogV2hlbiB0aGUgSUV2c0NhbWVyYSBvYmplY3QgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLCBpdCBtdXN0IGJlIHJlbGVhc2VkLgorICAgICAqIE5PVEU6IFZpZGVvIHN0cmVhbWluZyBtdXN0IGJlIGNsZWFubHkgc3RvcHBlZCBiZWZvcmUgbWFraW5nIHRoaXMgY2FsbC4KKyAgICAgKi8KKyAgICBjbG9zZUNhbWVyYShJRXZzQ2FtZXJhIGNhckNhbWVyYSk7CisKKworICAgIC8qKgorICAgICAqIEdldCBleGNsdXNpdmUgYWNjZXNzIHRvIElFdnNEaXNwbGF5IGZvciB0aGUgc3lzdGVtCisgICAgICoKKyAgICAgKiBUaGVyZSBjYW4gYmUgYXQgbW9zdCBvbmUgRVZTIGRpc3BsYXkgb2JqZWN0IGZvciB0aGUgc3lzdGVtIGFuZCB0aGlzIGZ1bmN0aW9uCisgICAgICogcmVxdWVzdHMgYWNjZXNzIHRvIGl0LiBJZiB0aGUgRVZTIGRpc3BsYXkgaXMgbm90IGF2YWlsYWJsZSBvciBpcyBhbHJlYWR5IGluIHVzZSwKKyAgICAgKiBhIG51bGwgcG9pbnRlciBpcyByZXR1cm5lZC4KKyAgICAgKiBXaGVuIGRvbmUgdXNpbmcgdGhlIGRpc3BsYXksIHRoZSBjYWxsZXIgbWF5IHJlbGVhc2UgaXQgYnkgY2FsbGluZyBjbG9zZURpc3BsYXkoKS4KKyAgICAgKiBUT0RPKGIvMzYxMjI2MzUpIFJlbGlhbmNlIG9uIHRoZSBzcDw+IGdvaW5nIG91dCBvZiBzY29wZSBpcyBub3QgcmVjb21tZW5kZWQgYmVjYXVzZSB0aGUKKyAgICAgKiByZXNvdXJjZXMgbWF5IG5vdCBiZSByZWxlYXNlZCByaWdodCBhd2F5IGR1ZSB0byBhc3luY2hyb25vcyBiZWhhdmlvciBpbiB0aGUgaGFyZHdhcmUgYmluZGVyLgorICAgICAqLworICAgIG9wZW5EaXNwbGF5KCkgZ2VuZXJhdGVzIChJRXZzRGlzcGxheSBkaXNwbGF5KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc3BlY2lmaWVkIElFdnNEaXNwbGF5IGludGVyZmFjZSBhcyBubyBsb25nZXIgaW4gdXNlCisgICAgICoKKyAgICAgKiBXaGVuIHRoZSBJRXZzRGlzcGxheSBvYmplY3QgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLCBpdCBtdXN0IGJlIHJlbGVhc2VkLgorICAgICAqIE5PVEU6IEFsbCBidWZmZXJzIG11c3QgaGF2ZSBiZWVuIHJldHVybmVkIHRvIHRoZSBkaXNwbGF5IGJlZm9yZSBtYWtpbmcgdGhpcyBjYWxsLgorICAgICAqLworICAgIGNsb3NlRGlzcGxheShJRXZzRGlzcGxheSBkaXNwbGF5KTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY2FsbCByZXF1ZXN0cyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgZGlzcGxheQorICAgICAqCisgICAgICogSWYgdGhlcmUgaXMgbm8gb3BlbiBkaXNwbGF5LCB0aGlzIHJldHVybnMgRGlzcGxheVN0YXRlOjpOT1RfT1BFTi4gb3RoZXJ3aXNlLCBpdCByZXR1cm5zCisgICAgICogdGhlIGFjdHVhbCBzdGF0ZSBvZiB0aGUgYWN0aXZlIGRpc3BsYXkuICBUaGlzIGNhbGwgaXMgcmVwbGljYXRlZCBvbiB0aGUgSUV2c0VudW1lcmF0b3IKKyAgICAgKiBpbnRlcmZhY2UgaW4gb3JkZXIgdG8gYWxsb3cgc2Vjb25kYXJ5IGNsaWVudHMgdG8gbW9uaXRvciB0aGUgc3RhdGUgb2YgdGhlIEVWUyBkaXNwbGF5CisgICAgICogd2l0aG91dCBhY3F1aXJpbmcgZXhjbHVzaXZlIG93bmVyc2hpcCBvZiB0aGUgZGlzcGxheS4KKyAgICAgKi8KKyAgICBnZXREaXNwbGF5U3RhdGUoKSBnZW5lcmF0ZXMgKERpc3BsYXlTdGF0ZSBzdGF0ZSk7Cit9OworCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTc0ZTg2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDMxIEBACitjY19iaW5hcnkgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMC1zZXJ2aWNlIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsKKyAgICAgICAgInNlcnZpY2UuY3BwIiwKKyAgICAgICAgIkV2c0NhbWVyYS5jcHAiLAorICAgICAgICAiRXZzRW51bWVyYXRvci5jcHAiLAorICAgICAgICAiRXZzRGlzcGxheS5jcHAiCisgICAgXSwKKyAgICBpbml0X3JjOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wLXNlcnZpY2UucmMiXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMCIsCisgICAgICAgICJsaWJ1aSIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmJpbmRlciIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCisKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0NhbWVyYS5jcHAgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNDYW1lcmEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNzgyZWMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNDYW1lcmEuY3BwCkBAIC0wLDAgKzEsNTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSAiRXZzQ2FtZXJhLmgiCisjaW5jbHVkZSAiRXZzRW51bWVyYXRvci5oIgorCisjaW5jbHVkZSA8dWkvR3JhcGhpY0J1ZmZlckFsbG9jYXRvci5oPgorI2luY2x1ZGUgPHVpL0dyYXBoaWNCdWZmZXJNYXBwZXIuaD4KKworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIGV2cyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisKKy8vIFNwZWNpYWwgY2FtZXJhIG5hbWVzIGZvciB3aGljaCB3ZSdsbCBpbml0aWFsaXplIGFsdGVybmF0ZSB0ZXN0IGRhdGEKK2NvbnN0IGNoYXIgRXZzQ2FtZXJhOjprQ2FtZXJhTmFtZV9CYWNrdXBbXSAgICA9ICJiYWNrdXAiOworCisKKy8vIEFyYml0cmFyeSBsaW1pdCBvbiBudW1iZXIgb2YgZ3JhcGhpY3MgYnVmZmVycyBhbGxvd2VkIHRvIGJlIGFsbG9jYXRlZAorLy8gU2FmZWd1YXJkcyBhZ2FpbnN0IHVucmVhc29uYWJsZSByZXNvdXJjZSBjb25zdW1wdGlvbiBhbmQgcHJvdmlkZXMgYSB0ZXN0YWJsZSBsaW1pdAorY29uc3QgdW5zaWduZWQgTUFYX0JVRkZFUlNfSU5fRkxJR0hUID0gMTAwOworCisKK0V2c0NhbWVyYTo6RXZzQ2FtZXJhKGNvbnN0IGNoYXIgKmlkKSA6CisgICAgICAgIG1GcmFtZXNBbGxvd2VkKDApLAorICAgICAgICBtRnJhbWVzSW5Vc2UoMCksCisgICAgICAgIG1TdHJlYW1TdGF0ZShTVE9QUEVEKSB7CisKKyAgICBBTE9HRCgiRXZzQ2FtZXJhIGluc3RhbnRpYXRlZCIpOworCisgICAgbURlc2NyaXB0aW9uLmNhbWVyYUlkID0gaWQ7CisKKyAgICAvLyBTZXQgdXAgZHVtbXkgZGF0YSBmb3IgdGVzdGluZworICAgIGlmIChtRGVzY3JpcHRpb24uY2FtZXJhSWQgPT0ga0NhbWVyYU5hbWVfQmFja3VwKSB7CisgICAgICAgIG1XaWR0aCAgPSA2NDA7ICAgICAgICAgIC8vIGZ1bGwgTlRTQy9WR0EKKyAgICAgICAgbUhlaWdodCA9IDQ4MDsgICAgICAgICAgLy8gZnVsbCBOVFNDL1ZHQQorICAgICAgICBtRGVzY3JpcHRpb24udmVuZG9yRmxhZ3MgPSAweEZGRkZGRkZGOyAgIC8vIEFyYml0cmFyeSB2YWx1ZQorICAgIH0gZWxzZSB7CisgICAgICAgIG1XaWR0aCAgPSAzMjA7ICAgICAgICAgIC8vIDEvMiBOVFNDL1ZHQQorICAgICAgICBtSGVpZ2h0ID0gMjQwOyAgICAgICAgICAvLyAxLzIgTlRTQy9WR0EKKyAgICB9CisKKyAgICBtRm9ybWF0ID0gSEFMX1BJWEVMX0ZPUk1BVF9SR0JBXzg4ODg7CisgICAgbVVzYWdlICA9IEdSQUxMT0NfVVNBR0VfSFdfVEVYVFVSRSB8IEdSQUxMT0NfVVNBR0VfSFdfQ0FNRVJBX1dSSVRFIHwKKyAgICAgICAgICAgICAgR1JBTExPQ19VU0FHRV9TV19SRUFEX1JBUkVMWSB8IEdSQUxMT0NfVVNBR0VfU1dfV1JJVEVfUkFSRUxZOworfQorCisKK0V2c0NhbWVyYTo6fkV2c0NhbWVyYSgpIHsKKyAgICBBTE9HRCgiRXZzQ2FtZXJhIGJlaW5nIGRlc3Ryb3llZCIpOworICAgIGZvcmNlU2h1dGRvd24oKTsKK30KKworCisvLworLy8gVGhpcyBnZXRzIGNhbGxlZCBpZiBhbm90aGVyIGNhbGxlciAic3RlYWxzIiBvd25lcnNoaXAgb2YgdGhlIGNhbWVyYQorLy8KK3ZvaWQgRXZzQ2FtZXJhOjpmb3JjZVNodXRkb3duKCkKK3sKKyAgICBBTE9HRCgiRXZzQ2FtZXJhIGZvcmNlU2h1dGRvd24iKTsKKworICAgIC8vIE1ha2Ugc3VyZSBvdXIgb3V0cHV0IHN0cmVhbSBpcyBjbGVhbmVkIHVwCisgICAgLy8gKEl0IHJlYWxseSBzaG91bGQgYmUgYWxyZWFkeSkKKyAgICBzdG9wVmlkZW9TdHJlYW0oKTsKKworICAgIC8vIENsYWltIHRoZSBsb2NrIHdoaWxlIHdlIHdvcmsgb24gaW50ZXJuYWwgc3RhdGUKKyAgICBzdGQ6OmxvY2tfZ3VhcmQgPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgLy8gRHJvcCBhbGwgdGhlIGdyYXBoaWNzIGJ1ZmZlcnMgd2UndmUgYmVlbiB1c2luZworICAgIGlmIChtQnVmZmVycy5zaXplKCkgPiAwKSB7CisgICAgICAgIEdyYXBoaWNCdWZmZXJBbGxvY2F0b3ImIGFsbG9jKEdyYXBoaWNCdWZmZXJBbGxvY2F0b3I6OmdldCgpKTsKKyAgICAgICAgZm9yIChhdXRvJiYgcmVjIDogbUJ1ZmZlcnMpIHsKKyAgICAgICAgICAgIGlmIChyZWMuaW5Vc2UpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiRXJyb3IgLSByZWxlYXNpbmcgYnVmZmVyIGRlc3BpdGUgcmVtb3RlIG93bmVyc2hpcCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWxsb2MuZnJlZShyZWMuaGFuZGxlKTsKKyAgICAgICAgICAgIHJlYy5oYW5kbGUgPSBudWxscHRyOworICAgICAgICB9CisgICAgICAgIG1CdWZmZXJzLmNsZWFyKCk7CisgICAgfQorCisgICAgLy8gUHV0IHRoaXMgb2JqZWN0IGludG8gYW4gdW5yZWNvdmVyYWJsZSBlcnJvciBzdGF0ZSBzaW5jZSBzb21lYm9keSBlbHNlCisgICAgLy8gaXMgZ29pbmcgdG8gb3duIHRoZSB1bmRlcmx5aW5nIGNhbWVyYSBub3cKKyAgICBtU3RyZWFtU3RhdGUgPSBERUFEOworfQorCisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjpldnM6OlYxXzA6OklFdnNDYW1lcmEgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEV2c0NhbWVyYTo6Z2V0Q2FtZXJhSW5mbyhnZXRDYW1lcmFJbmZvX2NiIF9oaWRsX2NiKSB7CisgICAgQUxPR0QoImdldENhbWVyYUluZm8iKTsKKworICAgIC8vIFNlbmQgYmFjayBvdXIgc2VsZiBkZXNjcmlwdGlvbgorICAgIF9oaWRsX2NiKG1EZXNjcmlwdGlvbik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCitSZXR1cm48RXZzUmVzdWx0PiBFdnNDYW1lcmE6OnNldE1heEZyYW1lc0luRmxpZ2h0KHVpbnQzMl90IGJ1ZmZlckNvdW50KSB7CisgICAgQUxPR0QoInNldE1heEZyYW1lc0luRmxpZ2h0Iik7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgLy8gSWYgd2UndmUgYmVlbiBkaXNwbGFjZWQgYnkgYW5vdGhlciBvd25lciBvZiB0aGUgY2FtZXJhLCB0aGVuIHdlIGNhbid0IGRvIGFueXRoaW5nIGVsc2UKKyAgICBpZiAobVN0cmVhbVN0YXRlID09IERFQUQpIHsKKyAgICAgICAgQUxPR0UoImlnbm9yaW5nIHNldE1heEZyYW1lc0luRmxpZ2h0IGNhbGwgd2hlbiBjYW1lcmEgaGFzIGJlZW4gbG9zdC4iKTsKKyAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6T1dORVJTSElQX0xPU1Q7CisgICAgfQorCisgICAgLy8gV2UgY2Fubm90IGZ1bmN0aW9uIHdpdGhvdXQgYXQgbGVhc3Qgb25lIHZpZGVvIGJ1ZmZlciB0byBzZW5kIGRhdGEKKyAgICBpZiAoYnVmZmVyQ291bnQgPCAxKSB7CisgICAgICAgIEFMT0dFKCJJZ25vcmluZyBzZXRNYXhGcmFtZXNJbkZsaWdodCB3aXRoIGxlc3MgdGhhbiBvbmUgYnVmZmVyIHJlcXVlc3RlZCIpOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpJTlZBTElEX0FSRzsKKyAgICB9CisKKyAgICAvLyBVcGRhdGUgb3VyIGludGVybmFsIHN0YXRlCisgICAgaWYgKHNldEF2YWlsYWJsZUZyYW1lc19Mb2NrZWQoYnVmZmVyQ291bnQpKSB7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6Ok9LOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6OkJVRkZFUl9OT1RfQVZBSUxBQkxFOworICAgIH0KK30KKworCitSZXR1cm48RXZzUmVzdWx0PiBFdnNDYW1lcmE6OnN0YXJ0VmlkZW9TdHJlYW0oY29uc3QgOjphbmRyb2lkOjpzcDxJRXZzQ2FtZXJhU3RyZWFtPiYgc3RyZWFtKSAgeworICAgIEFMT0dEKCJzdGFydFZpZGVvU3RyZWFtIik7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgLy8gSWYgd2UndmUgYmVlbiBkaXNwbGFjZWQgYnkgYW5vdGhlciBvd25lciBvZiB0aGUgY2FtZXJhLCB0aGVuIHdlIGNhbid0IGRvIGFueXRoaW5nIGVsc2UKKyAgICBpZiAobVN0cmVhbVN0YXRlID09IERFQUQpIHsKKyAgICAgICAgQUxPR0UoImlnbm9yaW5nIHN0YXJ0VmlkZW9TdHJlYW0gY2FsbCB3aGVuIGNhbWVyYSBoYXMgYmVlbiBsb3N0LiIpOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpPV05FUlNISVBfTE9TVDsKKyAgICB9CisgICAgaWYgKG1TdHJlYW1TdGF0ZSAhPSBTVE9QUEVEKSB7CisgICAgICAgIEFMT0dFKCJpZ25vcmluZyBzdGFydFZpZGVvU3RyZWFtIGNhbGwgd2hlbiBhIHN0cmVhbSBpcyBhbHJlYWR5IHJ1bm5pbmcuIik7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6OlNUUkVBTV9BTFJFQURZX1JVTk5JTkc7CisgICAgfQorCisgICAgLy8gSWYgdGhlIGNsaWVudCBuZXZlciBpbmRpY2F0ZWQgb3RoZXJ3aXNlLCBjb25maWd1cmUgb3Vyc2VsdmVzIGZvciBhIHNpbmdsZSBzdHJlYW1pbmcgYnVmZmVyCisgICAgaWYgKG1GcmFtZXNBbGxvd2VkIDwgMSkgeworICAgICAgICBpZiAoIXNldEF2YWlsYWJsZUZyYW1lc19Mb2NrZWQoMSkpIHsKKyAgICAgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gc3RhcnQgc3RyZWFtIGJlY2F1c2Ugd2UgY291bGRuJ3QgZ2V0IGEgZ3JhcGhpY3MgYnVmZmVyIik7CisgICAgICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpCVUZGRVJfTk9UX0FWQUlMQUJMRTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFJlY29yZCB0aGUgdXNlcidzIGNhbGxiYWNrIGZvciB1c2Ugd2hlbiB3ZSBoYXZlIGEgZnJhbWUgcmVhZHkKKyAgICBtU3RyZWFtID0gc3RyZWFtOworCisgICAgLy8gU3RhcnQgdGhlIGZyYW1lIGdlbmVyYXRpb24gdGhyZWFkCisgICAgbVN0cmVhbVN0YXRlID0gUlVOTklORzsKKyAgICBtQ2FwdHVyZVRocmVhZCA9IHN0ZDo6dGhyZWFkKFt0aGlzXSgpeyBnZW5lcmF0ZUZyYW1lcygpOyB9KTsKKworICAgIHJldHVybiBFdnNSZXN1bHQ6Ok9LOworfQorCisKK1JldHVybjx2b2lkPiBFdnNDYW1lcmE6OmRvbmVXaXRoRnJhbWUoY29uc3QgQnVmZmVyRGVzYyYgYnVmZmVyKSAgeworICAgIEFMT0dEKCJkb25lV2l0aEZyYW1lIik7CisgICAgeyAgLy8gbG9jayBjb250ZXh0CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZCA8c3RkOjptdXRleD4gbG9jayhtQWNjZXNzTG9jayk7CisKKyAgICAgICAgaWYgKGJ1ZmZlci5tZW1IYW5kbGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoImlnbm9yaW5nIGRvbmVXaXRoRnJhbWUgY2FsbGVkIHdpdGggbnVsbCBoYW5kbGUiKTsKKyAgICAgICAgfSBlbHNlIGlmIChidWZmZXIuYnVmZmVySWQgPj0gbUJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgICAgICBBTE9HRSgiaWdub3JpbmcgZG9uZVdpdGhGcmFtZSBjYWxsZWQgd2l0aCBpbnZhbGlkIGJ1ZmZlcklkICVkIChtYXggaXMgJXp1KSIsCisgICAgICAgICAgICAgICAgICBidWZmZXIuYnVmZmVySWQsIG1CdWZmZXJzLnNpemUoKS0xKTsKKyAgICAgICAgfSBlbHNlIGlmICghbUJ1ZmZlcnNbYnVmZmVyLmJ1ZmZlcklkXS5pblVzZSkgeworICAgICAgICAgICAgQUxPR0UoImlnbm9yaW5nIGRvbmVXaXRoRnJhbWUgY2FsbGVkIG9uIGZyYW1lICVkIHdoaWNoIGlzIGFscmVhZHkgZnJlZSIsCisgICAgICAgICAgICAgICAgICBidWZmZXIuYnVmZmVySWQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTWFyayB0aGUgZnJhbWUgYXMgYXZhaWxhYmxlCisgICAgICAgICAgICBtQnVmZmVyc1tidWZmZXIuYnVmZmVySWRdLmluVXNlID0gZmFsc2U7CisgICAgICAgICAgICBtRnJhbWVzSW5Vc2UtLTsKKworICAgICAgICAgICAgLy8gSWYgdGhpcyBmcmFtZSdzIGluZGV4IGlzIGhpZ2ggaW4gdGhlIGFycmF5LCB0cnkgdG8gbW92ZSBpdCBkb3duCisgICAgICAgICAgICAvLyB0byBpbXByb3ZlIGxvY2FsaXR5IGFmdGVyIG1GcmFtZXNBbGxvd2VkIGhhcyBiZWVuIHJlZHVjZWQuCisgICAgICAgICAgICBpZiAoYnVmZmVyLmJ1ZmZlcklkID49IG1GcmFtZXNBbGxvd2VkKSB7CisgICAgICAgICAgICAgICAgLy8gRmluZCBhbiBlbXB0eSBzbG90IGxvd2VyIGluIHRoZSBhcnJheSAod2hpY2ggc2hvdWxkIGFsd2F5cyBleGlzdCBpbiB0aGlzIGNhc2UpCisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiYgcmVjIDogbUJ1ZmZlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlYy5oYW5kbGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVjLmhhbmRsZSA9IG1CdWZmZXJzW2J1ZmZlci5idWZmZXJJZF0uaGFuZGxlOworICAgICAgICAgICAgICAgICAgICAgICAgbUJ1ZmZlcnNbYnVmZmVyLmJ1ZmZlcklkXS5oYW5kbGUgPSBudWxscHRyOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK1JldHVybjx2b2lkPiBFdnNDYW1lcmE6OnN0b3BWaWRlb1N0cmVhbSgpICB7CisgICAgQUxPR0QoInN0b3BWaWRlb1N0cmVhbSIpOworICAgIHN0ZDo6dW5pcXVlX2xvY2sgPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgaWYgKG1TdHJlYW1TdGF0ZSA9PSBSVU5OSU5HKSB7CisgICAgICAgIC8vIFRlbGwgdGhlIEdlbmVyYXRlRnJhbWVzIGxvb3Agd2Ugd2FudCBpdCB0byBzdG9wCisgICAgICAgIG1TdHJlYW1TdGF0ZSA9IFNUT1BQSU5HOworCisgICAgICAgIC8vIEJsb2NrIG91dHNpZGUgdGhlIG11dGV4IHVudGlsIHRoZSAic3RvcCIgZmxhZyBoYXMgYmVlbiBhY2tub3dsZWRnZWQKKyAgICAgICAgLy8gV2Ugd29uJ3Qgc2VuZCBhbnkgbW9yZSBmcmFtZXMsIGJ1dCB0aGUgY2xpZW50IG1pZ2h0IHN0aWxsIGdldCBzb21lIGFscmVhZHkgaW4gZmxpZ2h0CisgICAgICAgIEFMT0dEKCJXYWl0aW5nIGZvciBzdHJlYW0gdGhyZWFkIHRvIGVuZC4uLiIpOworICAgICAgICBsb2NrLnVubG9jaygpOworICAgICAgICBtQ2FwdHVyZVRocmVhZC5qb2luKCk7CisgICAgICAgIGxvY2subG9jaygpOworCisgICAgICAgIG1TdHJlYW1TdGF0ZSA9IFNUT1BQRUQ7CisgICAgICAgIG1TdHJlYW0gPSBudWxscHRyOworICAgICAgICBBTE9HRCgiU3RyZWFtIG1hcmtlZCBTVE9QUEVELiIpOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKworUmV0dXJuPGludDMyX3Q+IEV2c0NhbWVyYTo6Z2V0RXh0ZW5kZWRJbmZvKHVpbnQzMl90IG9wYXF1ZUlkZW50aWZpZXIpICB7CisgICAgQUxPR0QoImdldEV4dGVuZGVkSW5mbyIpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgIC8vIEZvciBhbnkgc2luZ2xlIGRpZ2l0IHZhbHVlLCByZXR1cm4gdGhlIGluZGV4IGl0c2VsZiBhcyBhIHRlc3QgdmFsdWUKKyAgICBpZiAob3BhcXVlSWRlbnRpZmllciA8PSA5KSB7CisgICAgICAgIHJldHVybiBvcGFxdWVJZGVudGlmaWVyOworICAgIH0KKworICAgIC8vIFJldHVybiB6ZXJvIGJ5IGRlZmF1bHQgYXMgcmVxdWlyZWQgYnkgdGhlIHNwZWMKKyAgICByZXR1cm4gMDsKK30KKworCitSZXR1cm48RXZzUmVzdWx0PiBFdnNDYW1lcmE6OnNldEV4dGVuZGVkSW5mbyh1aW50MzJfdCAvKm9wYXF1ZUlkZW50aWZpZXIqLywgaW50MzJfdCAvKm9wYXF1ZVZhbHVlKi8pICB7CisgICAgQUxPR0QoInNldEV4dGVuZGVkSW5mbyIpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgIC8vIElmIHdlJ3ZlIGJlZW4gZGlzcGxhY2VkIGJ5IGFub3RoZXIgb3duZXIgb2YgdGhlIGNhbWVyYSwgdGhlbiB3ZSBjYW4ndCBkbyBhbnl0aGluZyBlbHNlCisgICAgaWYgKG1TdHJlYW1TdGF0ZSA9PSBERUFEKSB7CisgICAgICAgIEFMT0dFKCJpZ25vcmluZyBzZXRFeHRlbmRlZEluZm8gY2FsbCB3aGVuIGNhbWVyYSBoYXMgYmVlbiBsb3N0LiIpOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpPV05FUlNISVBfTE9TVDsKKyAgICB9CisKKyAgICAvLyBXZSBkb24ndCBzdG9yZSBhbnkgZGV2aWNlIHNwZWNpZmljIGluZm9ybWF0aW9uIGluIHRoaXMgaW1wbGVtZW50YXRpb24KKyAgICByZXR1cm4gRXZzUmVzdWx0OjpJTlZBTElEX0FSRzsKK30KKworCitib29sIEV2c0NhbWVyYTo6c2V0QXZhaWxhYmxlRnJhbWVzX0xvY2tlZCh1bnNpZ25lZCBidWZmZXJDb3VudCkgeworICAgIGlmIChidWZmZXJDb3VudCA8IDEpIHsKKyAgICAgICAgQUxPR0UoIklnbm9yaW5nIHJlcXVlc3QgdG8gc2V0IGJ1ZmZlciBjb3VudCB0byB6ZXJvIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKGJ1ZmZlckNvdW50ID4gTUFYX0JVRkZFUlNfSU5fRkxJR0hUKSB7CisgICAgICAgIEFMT0dFKCJSZWplY3RpbmcgYnVmZmVyIHJlcXVlc3QgaW4gZXhjZXNzIG9mIGludGVybmFsIGxpbWl0Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBJcyBhbiBpbmNyZWFzZSByZXF1aXJlZD8KKyAgICBpZiAobUZyYW1lc0FsbG93ZWQgPCBidWZmZXJDb3VudCkgeworICAgICAgICAvLyBBbiBpbmNyZWFzZSBpcyByZXF1aXJlZAorICAgICAgICB1bnNpZ25lZCBuZWVkZWQgPSBidWZmZXJDb3VudCAtIG1GcmFtZXNBbGxvd2VkOworICAgICAgICBBTE9HSSgiQWxsb2NhdGluZyAlZCBidWZmZXJzIGZvciBjYW1lcmEgZnJhbWVzIiwgbmVlZGVkKTsKKworICAgICAgICB1bnNpZ25lZCBhZGRlZCA9IGluY3JlYXNlQXZhaWxhYmxlRnJhbWVzX0xvY2tlZChuZWVkZWQpOworICAgICAgICBpZiAoYWRkZWQgIT0gbmVlZGVkKSB7CisgICAgICAgICAgICAvLyBJZiB3ZSBkaWRuJ3QgYWRkIGFsbCB0aGUgZnJhbWVzIHdlIG5lZWRlZCwgdGhlbiByb2xsIGJhY2sgdG8gdGhlIHByZXZpb3VzIHN0YXRlCisgICAgICAgICAgICBBTE9HRSgiUm9sbGluZyBiYWNrIHRvIHByZXZpb3VzIGZyYW1lIHF1ZXVlIHNpemUiKTsKKyAgICAgICAgICAgIGRlY3JlYXNlQXZhaWxhYmxlRnJhbWVzX0xvY2tlZChhZGRlZCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG1GcmFtZXNBbGxvd2VkID4gYnVmZmVyQ291bnQpIHsKKyAgICAgICAgLy8gQSBkZWNyZWFzZSBpcyByZXF1aXJlZAorICAgICAgICB1bnNpZ25lZCBmcmFtZXNUb1JlbGVhc2UgPSBtRnJhbWVzQWxsb3dlZCAtIGJ1ZmZlckNvdW50OworICAgICAgICBBTE9HSSgiUmV0dXJuaW5nICVkIGNhbWVyYSBmcmFtZSBidWZmZXJzIiwgZnJhbWVzVG9SZWxlYXNlKTsKKworICAgICAgICB1bnNpZ25lZCByZWxlYXNlZCA9IGRlY3JlYXNlQXZhaWxhYmxlRnJhbWVzX0xvY2tlZChmcmFtZXNUb1JlbGVhc2UpOworICAgICAgICBpZiAocmVsZWFzZWQgIT0gZnJhbWVzVG9SZWxlYXNlKSB7CisgICAgICAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gd2l0aCBhIHByb3Blcmx5IGJlaGF2aW5nIGNsaWVudCBiZWNhdXNlIHRoZSBjbGllbnQKKyAgICAgICAgICAgIC8vIHNob3VsZCBvbmx5IG1ha2UgdGhpcyBjYWxsIGFmdGVyIHJldHVybmluZyBzdWZmaWNpZW50IG91dHN0YW5kaW5nIGJ1ZmZlcnMKKyAgICAgICAgICAgIC8vIHRvIGFsbG93IGEgY2xlYW4gcmVzaXplLgorICAgICAgICAgICAgQUxPR0UoIkJ1ZmZlciBxdWV1ZSBzaHJpbmsgZmFpbGVkIC0tIHRvbyBtYW55IGJ1ZmZlcnMgY3VycmVudGx5IGluIHVzZT8iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCisKK3Vuc2lnbmVkIEV2c0NhbWVyYTo6aW5jcmVhc2VBdmFpbGFibGVGcmFtZXNfTG9ja2VkKHVuc2lnbmVkIG51bVRvQWRkKSB7CisgICAgLy8gQWNxdWlyZSB0aGUgZ3JhcGhpY3MgYnVmZmVyIGFsbG9jYXRvcgorICAgIEdyYXBoaWNCdWZmZXJBbGxvY2F0b3IgJmFsbG9jKEdyYXBoaWNCdWZmZXJBbGxvY2F0b3I6OmdldCgpKTsKKworICAgIHVuc2lnbmVkIGFkZGVkID0gMDsKKworICAgIHdoaWxlIChhZGRlZCA8IG51bVRvQWRkKSB7CisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBtZW1IYW5kbGUgPSBudWxscHRyOworICAgICAgICBzdGF0dXNfdCByZXN1bHQgPSBhbGxvYy5hbGxvY2F0ZShtV2lkdGgsIG1IZWlnaHQsIG1Gb3JtYXQsIDEsIG1Vc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lbUhhbmRsZSwgJm1TdHJpZGUsIDAsICJFdnNDYW1lcmEiKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBOT19FUlJPUikgeworICAgICAgICAgICAgQUxPR0UoIkVycm9yICVkIGFsbG9jYXRpbmcgJWQgeCAlZCBncmFwaGljcyBidWZmZXIiLCByZXN1bHQsIG1XaWR0aCwgbUhlaWdodCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW1lbUhhbmRsZSkgeworICAgICAgICAgICAgQUxPR0UoIldlIGRpZG4ndCBnZXQgYSBidWZmZXIgaGFuZGxlIGJhY2sgZnJvbSB0aGUgYWxsb2NhdG9yIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbmQgYSBwbGFjZSB0byBzdG9yZSB0aGUgbmV3IGJ1ZmZlcgorICAgICAgICBib29sIHN0b3JlZCA9IGZhbHNlOworICAgICAgICBmb3IgKGF1dG8mJiByZWMgOiBtQnVmZmVycykgeworICAgICAgICAgICAgaWYgKHJlYy5oYW5kbGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgIC8vIFVzZSB0aGlzIGV4aXN0aW5nIGVudHJ5CisgICAgICAgICAgICAgICAgcmVjLmhhbmRsZSA9IG1lbUhhbmRsZTsKKyAgICAgICAgICAgICAgICByZWMuaW5Vc2UgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBzdG9yZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghc3RvcmVkKSB7CisgICAgICAgICAgICAvLyBBZGQgYSBCdWZmZXJSZWNvcmQgd3JhcHBpbmcgdGhpcyBoYW5kbGUgdG8gb3VyIHNldCBvZiBhdmFpbGFibGUgYnVmZmVycworICAgICAgICAgICAgbUJ1ZmZlcnMuZW1wbGFjZV9iYWNrKG1lbUhhbmRsZSk7CisgICAgICAgIH0KKworICAgICAgICBtRnJhbWVzQWxsb3dlZCsrOworICAgICAgICBhZGRlZCsrOworICAgIH0KKworICAgIHJldHVybiBhZGRlZDsKK30KKworCit1bnNpZ25lZCBFdnNDYW1lcmE6OmRlY3JlYXNlQXZhaWxhYmxlRnJhbWVzX0xvY2tlZCh1bnNpZ25lZCBudW1Ub1JlbW92ZSkgeworICAgIC8vIEFjcXVpcmUgdGhlIGdyYXBoaWNzIGJ1ZmZlciBhbGxvY2F0b3IKKyAgICBHcmFwaGljQnVmZmVyQWxsb2NhdG9yICZhbGxvYyhHcmFwaGljQnVmZmVyQWxsb2NhdG9yOjpnZXQoKSk7CisKKyAgICB1bnNpZ25lZCByZW1vdmVkID0gMDsKKworICAgIGZvciAoYXV0byYmIHJlYyA6IG1CdWZmZXJzKSB7CisgICAgICAgIC8vIElzIHRoaXMgcmVjb3JkIG5vdCBpbiB1c2UsIGJ1dCBob2xkaW5nIGEgYnVmZmVyIHRoYXQgd2UgY2FuIGZyZWU/CisgICAgICAgIGlmICgocmVjLmluVXNlID09IGZhbHNlKSAmJiAocmVjLmhhbmRsZSAhPSBudWxscHRyKSkgeworICAgICAgICAgICAgLy8gUmVsZWFzZSBidWZmZXIgYW5kIHVwZGF0ZSB0aGUgcmVjb3JkIHNvIHdlIGNhbiByZWNvZ25pemUgaXQgYXMgImVtcHR5IgorICAgICAgICAgICAgYWxsb2MuZnJlZShyZWMuaGFuZGxlKTsKKyAgICAgICAgICAgIHJlYy5oYW5kbGUgPSBudWxscHRyOworCisgICAgICAgICAgICBtRnJhbWVzQWxsb3dlZC0tOworICAgICAgICAgICAgcmVtb3ZlZCsrOworCisgICAgICAgICAgICBpZiAocmVtb3ZlZCA9PSBudW1Ub1JlbW92ZSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJlbW92ZWQ7Cit9CisKKworLy8gVGhpcyBpcyB0aGUgYXN5bmNocm9ub3VzIGZyYW1lIGdlbmVyYXRpb24gdGhyZWFkIHRoYXQgcnVucyBpbiBwYXJhbGxlbCB3aXRoIHRoZQorLy8gbWFpbiBzZXJ2aW5nIHRocmVhZC4gIFRoZXJlIGlzIG9uZSBmb3IgZWFjaCBhY3RpdmUgY2FtZXJhIGluc3RhbmNlLgordm9pZCBFdnNDYW1lcmE6OmdlbmVyYXRlRnJhbWVzKCkgeworICAgIEFMT0dEKCJGcmFtZSBnZW5lcmF0aW9uIGxvb3Agc3RhcnRlZCIpOworCisgICAgdW5zaWduZWQgaWR4OworCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgYm9vbCB0aW1lRm9yRnJhbWUgPSBmYWxzZTsKKyAgICAgICAgbnNlY3NfdCBzdGFydFRpbWUgPSBzeXN0ZW1UaW1lKFNZU1RFTV9USU1FX01PTk9UT05JQyk7CisKKyAgICAgICAgLy8gTG9jayBzY29wZSBmb3IgdXBkYXRpbmcgc2hhcmVkIHN0YXRlCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgICAgICAgICAgaWYgKG1TdHJlYW1TdGF0ZSAhPSBSVU5OSU5HKSB7CisgICAgICAgICAgICAgICAgLy8gQnJlYWsgb3V0IG9mIG91ciBtYWluIHRocmVhZCBsb29wCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEFyZSB3ZSBhbGxvd2VkIHRvIGlzc3VlIGFub3RoZXIgYnVmZmVyPworICAgICAgICAgICAgaWYgKG1GcmFtZXNJblVzZSA+PSBtRnJhbWVzQWxsb3dlZCkgeworICAgICAgICAgICAgICAgIC8vIENhbid0IGRvIGFueXRoaW5nIHJpZ2h0IG5vdyAtLSBza2lwIHRoaXMgZnJhbWUKKyAgICAgICAgICAgICAgICBBTE9HVygiU2tpcHBlZCBhIGZyYW1lIGJlY2F1c2UgdG9vIG1hbnkgYXJlIGluIGZsaWdodFxuIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIElkZW50aWZ5IGFuIGF2YWlsYWJsZSBidWZmZXIgdG8gZmlsbAorICAgICAgICAgICAgICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgbUJ1ZmZlcnMuc2l6ZSgpOyBpZHgrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoIW1CdWZmZXJzW2lkeF0uaW5Vc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtQnVmZmVyc1tpZHhdLmhhbmRsZSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm91bmQgYW4gYXZhaWxhYmxlIHJlY29yZCwgc28gc3RvcCBsb29raW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGlkeCA+PSBtQnVmZmVycy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIHNpbmNlIHdlIGFscmVhZHkgY2hlY2tlZCBtRnJhbWVzSW5Vc2UgdnMgbUZyYW1lc0FsbG93ZWQKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIkZhaWxlZCB0byBmaW5kIGFuIGF2YWlsYWJsZSBidWZmZXIgc2xvdFxuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UncmUgZ29pbmcgdG8gbWFrZSB0aGUgZnJhbWUgYnVzeQorICAgICAgICAgICAgICAgICAgICBtQnVmZmVyc1tpZHhdLmluVXNlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgbUZyYW1lc0luVXNlKys7CisgICAgICAgICAgICAgICAgICAgIHRpbWVGb3JGcmFtZSA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHRpbWVGb3JGcmFtZSkgeworICAgICAgICAgICAgLy8gQXNzZW1ibGUgdGhlIGJ1ZmZlciBkZXNjcmlwdGlvbiB3ZSdsbCB0cmFuc21pdCBiZWxvdworICAgICAgICAgICAgQnVmZmVyRGVzYyBidWZmID0ge307CisgICAgICAgICAgICBidWZmLndpZHRoICAgICAgPSBtV2lkdGg7CisgICAgICAgICAgICBidWZmLmhlaWdodCAgICAgPSBtSGVpZ2h0OworICAgICAgICAgICAgYnVmZi5zdHJpZGUgICAgID0gbVN0cmlkZTsKKyAgICAgICAgICAgIGJ1ZmYuZm9ybWF0ICAgICA9IG1Gb3JtYXQ7CisgICAgICAgICAgICBidWZmLnVzYWdlICAgICAgPSBtVXNhZ2U7CisgICAgICAgICAgICBidWZmLmJ1ZmZlcklkICAgPSBpZHg7CisgICAgICAgICAgICBidWZmLm1lbUhhbmRsZSAgPSBtQnVmZmVyc1tpZHhdLmhhbmRsZTsKKworICAgICAgICAgICAgLy8gV3JpdGUgdGVzdCBkYXRhIGludG8gdGhlIGltYWdlIGJ1ZmZlcgorICAgICAgICAgICAgZmlsbFRlc3RGcmFtZShidWZmKTsKKworICAgICAgICAgICAgLy8gSXNzdWUgdGhlIChhc3luY2hyb25vdXMpIGNhbGxiYWNrIHRvIHRoZSBjbGllbnQgLS0gY2FuJ3QgYmUgaG9sZGluZyB0aGUgbG9jaworICAgICAgICAgICAgYXV0byByZXN1bHQgPSBtU3RyZWFtLT5kZWxpdmVyRnJhbWUoYnVmZik7CisgICAgICAgICAgICBpZiAocmVzdWx0LmlzT2soKSkgeworICAgICAgICAgICAgICAgIEFMT0dEKCJEZWxpdmVyZWQgJXAgYXMgaWQgJWQiLCBidWZmLm1lbUhhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSwgYnVmZi5idWZmZXJJZCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgY2xpZW50IGRpZXMgYW5kIGlzIGxpa2VseSB1bnJlY292ZXJhYmxlLgorICAgICAgICAgICAgICAgIC8vIFRvIGF2b2lkIGNvbnN1bWluZyByZXNvdXJjZXMgZ2VuZXJhdGluZyBmYWlsaW5nIGNhbGxzLCB3ZSBzdG9wIHNlbmRpbmcKKyAgICAgICAgICAgICAgICAvLyBmcmFtZXMuICBOb3RlLCBob3dldmVyLCB0aGF0IHRoZSBzdHJlYW0gcmVtYWlucyBpbiB0aGUgIlNUUkVBTUlORyIgc3RhdGUKKyAgICAgICAgICAgICAgICAvLyB1bnRpbCBjbGVhbmVkIHVwIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgICAgICAgICBBTE9HRSgiRnJhbWUgZGVsaXZlcnkgY2FsbCBmYWlsZWQgaW4gdGhlIHRyYW5zcG9ydCBsYXllci4iKTsKKworICAgICAgICAgICAgICAgIC8vIFNpbmNlIHdlIGRpZG4ndCBhY3R1YWxseSBkZWxpdmVyIGl0LCBtYXJrIHRoZSBmcmFtZSBhcyBhdmFpbGFibGUKKyAgICAgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQWNjZXNzTG9jayk7CisgICAgICAgICAgICAgICAgbUJ1ZmZlcnNbaWR4XS5pblVzZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIG1GcmFtZXNJblVzZS0tOworCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBXZSBhcmJpdHJhcmlseSBjaG9vc2UgdG8gZ2VuZXJhdGUgZnJhbWVzIGF0IDEyIGZwcyB0byBlbnN1cmUgd2UgcGFzcyB0aGUgMTBmcHMgdGVzdCByZXF1aXJlbWVudAorICAgICAgICBzdGF0aWMgY29uc3QgaW50IGtUYXJnZXRGcmFtZVJhdGUgPSAxMjsKKyAgICAgICAgc3RhdGljIGNvbnN0IG5zZWNzX3Qga1RhcmdldEZyYW1lVGltZVVzID0gMTAwMCoxMDAwIC8ga1RhcmdldEZyYW1lUmF0ZTsKKyAgICAgICAgY29uc3QgbnNlY3NfdCBub3cgPSBzeXN0ZW1UaW1lKFNZU1RFTV9USU1FX01PTk9UT05JQyk7CisgICAgICAgIGNvbnN0IG5zZWNzX3Qgd29ya1RpbWVVcyA9IChub3cgLSBzdGFydFRpbWUpIC8gMTAwMDsKKyAgICAgICAgY29uc3QgbnNlY3NfdCBzbGVlcER1cmF0aW9uVXMgPSBrVGFyZ2V0RnJhbWVUaW1lVXMgLSB3b3JrVGltZVVzOworICAgICAgICBpZiAoc2xlZXBEdXJhdGlvblVzID4gMCkgeworICAgICAgICAgICAgdXNsZWVwKHNsZWVwRHVyYXRpb25Vcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJZiB3ZSd2ZSBiZWVuIGFza2VkIHRvIHN0b3AsIHNlbmQgb25lIGxhc3QgTlVMTCBmcmFtZSB0byBzaWduYWwgdGhlIGFjdHVhbCBlbmQgb2Ygc3RyZWFtCisgICAgQnVmZmVyRGVzYyBudWxsQnVmZiA9IHt9OworICAgIGF1dG8gcmVzdWx0ID0gbVN0cmVhbS0+ZGVsaXZlckZyYW1lKG51bGxCdWZmKTsKKyAgICBpZiAoIXJlc3VsdC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIkVycm9yIGRlbGl2ZXJpbmcgZW5kIG9mIHN0cmVhbSBtYXJrZXIiKTsKKyAgICB9CisKKyAgICByZXR1cm47Cit9CisKKwordm9pZCBFdnNDYW1lcmE6OmZpbGxUZXN0RnJhbWUoY29uc3QgQnVmZmVyRGVzYyYgYnVmZikgeworICAgIC8vIExvY2sgb3VyIG91dHB1dCBidWZmZXIgZm9yIHdyaXRpbmcKKyAgICB1aW50MzJfdCAqcGl4ZWxzID0gbnVsbHB0cjsKKyAgICBHcmFwaGljQnVmZmVyTWFwcGVyICZtYXBwZXIgPSBHcmFwaGljQnVmZmVyTWFwcGVyOjpnZXQoKTsKKyAgICBtYXBwZXIubG9jayhidWZmLm1lbUhhbmRsZSwKKyAgICAgICAgICAgICAgICBHUkFMTE9DX1VTQUdFX1NXX1dSSVRFX09GVEVOIHwgR1JBTExPQ19VU0FHRV9TV19SRUFEX05FVkVSLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlJlY3QoYnVmZi53aWR0aCwgYnVmZi5oZWlnaHQpLAorICAgICAgICAgICAgICAgICh2b2lkICoqKSAmcGl4ZWxzKTsKKworICAgIC8vIElmIHdlIGZhaWxlZCB0byBsb2NrIHRoZSBwaXhlbCBidWZmZXIsIHdlJ3JlIGFib3V0IHRvIGNyYXNoLCBidXQgbG9nIGl0IGZpcnN0CisgICAgaWYgKCFwaXhlbHMpIHsKKyAgICAgICAgQUxPR0UoIkNhbWVyYSBmYWlsZWQgdG8gZ2FpbiBhY2Nlc3MgdG8gaW1hZ2UgYnVmZmVyIGZvciB3cml0aW5nIik7CisgICAgfQorCisgICAgLy8gRmlsbCBpbiB0aGUgdGVzdCBwaXhlbHMKKyAgICBmb3IgKHVuc2lnbmVkIHJvdyA9IDA7IHJvdyA8IGJ1ZmYuaGVpZ2h0OyByb3crKykgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGNvbCA9IDA7IGNvbCA8IGJ1ZmYud2lkdGg7IGNvbCsrKSB7CisgICAgICAgICAgICAvLyBJbmRleCBpbnRvIHRoZSByb3cgdG8gY2hlY2sgdGhlIHBpeGVsIGF0IHRoaXMgY29sdW1uLgorICAgICAgICAgICAgLy8gV2UgZXhwZWN0IDB4RkYgaW4gdGhlIExTQiBjaGFubmVsLCBhIHZlcnRpY2FsIGdyYWRpZW50IGluIHRoZQorICAgICAgICAgICAgLy8gc2Vjb25kIGNoYW5uZWwsIGEgaG9yaXR6b250YWwgZ3JhZGllbnQgaW4gdGhlIHRoaXJkIGNoYW5uZWwsIGFuZAorICAgICAgICAgICAgLy8gMHhGRiBpbiB0aGUgTVNCLgorICAgICAgICAgICAgLy8gVGhlIGV4Y2VwdGlvbiBpcyB0aGUgdmVyeSBmaXJzdCAzMiBiaXRzIHdoaWNoIGlzIHVzZWQgZm9yIHRoZQorICAgICAgICAgICAgLy8gdGltZSB2YXJ5aW5nIGZyYW1lIHNpZ25hdHVyZSB0byBhdm9pZCBnZXR0aW5nIGZvb2xlZCBieSBhIHN0YXRpYyBpbWFnZS4KKyAgICAgICAgICAgIHVpbnQzMl90IGV4cGVjdGVkUGl4ZWwgPSAweEZGMDAwMEZGICAgICAgICAgICB8IC8vIE1TQiBhbmQgTFNCCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChyb3cgJiAweEZGKSA8PCAgOCkgfCAvLyB2ZXJ0aWNhbCBncmFkaWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY29sICYgMHhGRikgPDwgMTYpOyAgLy8gaG9yaXpvbnRhbCBncmFkaWVudAorICAgICAgICAgICAgaWYgKChyb3cgfCBjb2wpID09IDApIHsKKyAgICAgICAgICAgICAgICBzdGF0aWMgdWludDMyX3Qgc0ZyYW1lVGlja2VyID0gMDsKKyAgICAgICAgICAgICAgICBleHBlY3RlZFBpeGVsID0gKHNGcmFtZVRpY2tlcikgJiAweEZGOworICAgICAgICAgICAgICAgIHNGcmFtZVRpY2tlcisrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcGl4ZWxzW2NvbF0gPSBleHBlY3RlZFBpeGVsOworICAgICAgICB9CisgICAgICAgIC8vIFBvaW50IHRvIHRoZSBuZXh0IHJvdworICAgICAgICAvLyBOT1RFOiAgc3RyaWRlIHJldHJpZXZlZCBmcm9tIGdyYWxsb2MgaXMgaW4gdW5pdHMgb2YgcGl4ZWxzCisgICAgICAgIHBpeGVscyA9IHBpeGVscyArIGJ1ZmYuc3RyaWRlOworICAgIH0KKworICAgIC8vIFJlbGVhc2Ugb3VyIG91dHB1dCBidWZmZXIKKyAgICBtYXBwZXIudW5sb2NrKGJ1ZmYubWVtSGFuZGxlKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgZXZzCit9IC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzQ2FtZXJhLmggYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNDYW1lcmEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjZlYjM5Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzQ2FtZXJhLmgKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVUT01PVElWRV9FVlNfVjFfMF9FVlNDQU1FUkFfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0FVVE9NT1RJVkVfRVZTX1YxXzBfRVZTQ0FNRVJBX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYS5oPgorI2luY2x1ZGUgPHVpL0dyYXBoaWNCdWZmZXIuaD4KKworI2luY2x1ZGUgPHRocmVhZD4KKworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIGV2cyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisKKy8vIEZyb20gRXZzRW51bWVyYXRvci5oCitjbGFzcyBFdnNFbnVtZXJhdG9yOworCisKK2NsYXNzIEV2c0NhbWVyYSA6IHB1YmxpYyBJRXZzQ2FtZXJhIHsKK3B1YmxpYzoKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6ZXZzOjpWMV8wOjpJRXZzQ2FtZXJhIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FtZXJhSW5mbyhnZXRDYW1lcmFJbmZvX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuIDxFdnNSZXN1bHQ+IHNldE1heEZyYW1lc0luRmxpZ2h0KHVpbnQzMl90IGJ1ZmZlckNvdW50KSBvdmVycmlkZTsKKyAgICBSZXR1cm4gPEV2c1Jlc3VsdD4gc3RhcnRWaWRlb1N0cmVhbShjb25zdCA6OmFuZHJvaWQ6OnNwPElFdnNDYW1lcmFTdHJlYW0+JiBzdHJlYW0pIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkb25lV2l0aEZyYW1lKGNvbnN0IEJ1ZmZlckRlc2MmIGJ1ZmZlcikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHN0b3BWaWRlb1N0cmVhbSgpIG92ZXJyaWRlOworICAgIFJldHVybiA8aW50MzJfdD4gZ2V0RXh0ZW5kZWRJbmZvKHVpbnQzMl90IG9wYXF1ZUlkZW50aWZpZXIpIG92ZXJyaWRlOworICAgIFJldHVybiA8RXZzUmVzdWx0PiBzZXRFeHRlbmRlZEluZm8odWludDMyX3Qgb3BhcXVlSWRlbnRpZmllciwgaW50MzJfdCBvcGFxdWVWYWx1ZSkgb3ZlcnJpZGU7CisKKyAgICAvLyBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzCisgICAgRXZzQ2FtZXJhKGNvbnN0IGNoYXIgKmlkKTsKKyAgICB2aXJ0dWFsIH5FdnNDYW1lcmEoKSBvdmVycmlkZTsKKyAgICB2b2lkIGZvcmNlU2h1dGRvd24oKTsgICAvLyBUaGlzIGdldHMgY2FsbGVkIGlmIGFub3RoZXIgY2FsbGVyICJzdGVhbHMiIG93bmVyc2hpcCBvZiB0aGUgY2FtZXJhCisKKyAgICBjb25zdCBDYW1lcmFEZXNjJiBnZXREZXNjKCkgeyByZXR1cm4gbURlc2NyaXB0aW9uOyB9OworCisgICAgc3RhdGljIGNvbnN0IGNoYXIga0NhbWVyYU5hbWVfQmFja3VwW107CisKK3ByaXZhdGU6CisgICAgLy8gVGhlc2UgdGhyZWUgZnVuY3Rpb25zIGFyZSBleHBlY3RlZCB0byBiZSBjYWxsZWQgd2hpbGUgbUFjY2Vzc0xvY2sgaXMgaGVsZAorICAgIGJvb2wgc2V0QXZhaWxhYmxlRnJhbWVzX0xvY2tlZCh1bnNpZ25lZCBidWZmZXJDb3VudCk7CisgICAgdW5zaWduZWQgaW5jcmVhc2VBdmFpbGFibGVGcmFtZXNfTG9ja2VkKHVuc2lnbmVkIG51bVRvQWRkKTsKKyAgICB1bnNpZ25lZCBkZWNyZWFzZUF2YWlsYWJsZUZyYW1lc19Mb2NrZWQodW5zaWduZWQgbnVtVG9SZW1vdmUpOworCisgICAgdm9pZCBnZW5lcmF0ZUZyYW1lcygpOworICAgIHZvaWQgZmlsbFRlc3RGcmFtZShjb25zdCBCdWZmZXJEZXNjJiBidWZmKTsKKworICAgIHNwPEV2c0VudW1lcmF0b3I+IG1FbnVtZXJhdG9yOyAgLy8gVGhlIGVudW1lcmF0b3Igb2JqZWN0IHRoYXQgY3JlYXRlZCB0aGlzIGNhbWVyYQorCisgICAgQ2FtZXJhRGVzYyBtRGVzY3JpcHRpb24gPSB7fTsgICAvLyBUaGUgcHJvcGVydGllcyBvZiB0aGlzIGNhbWVyYQorCisgICAgc3RkOjp0aHJlYWQgbUNhcHR1cmVUaHJlYWQ7ICAgICAvLyBUaGUgdGhyZWFkIHdlJ2xsIHVzZSB0byBzeW50aGVzaXplIGZyYW1lcworCisgICAgdWludDMyX3QgbVdpZHRoICA9IDA7ICAgICAgIC8vIEhvcml6b250YWwgcGl4ZWwgY291bnQgaW4gdGhlIGJ1ZmZlcnMKKyAgICB1aW50MzJfdCBtSGVpZ2h0ID0gMDsgICAgICAgLy8gVmVydGljYWwgcGl4ZWwgY291bnQgaW4gdGhlIGJ1ZmZlcnMKKyAgICB1aW50MzJfdCBtRm9ybWF0ID0gMDsgICAgICAgLy8gVmFsdWVzIGZyb20gYW5kcm9pZF9waXhlbF9mb3JtYXRfdCBbVE9ETzogWVVWPyAgTGVhdmUgb3BhcXVlP10KKyAgICB1aW50MzJfdCBtVXNhZ2UgID0gMDsgICAgICAgLy8gVmFsdWVzIGZyb20gZnJvbSBHcmFsbG9jLmgKKyAgICB1aW50MzJfdCBtU3RyaWRlID0gMDsgICAgICAgLy8gQnl0ZXMgcGVyIGxpbmUgaW4gdGhlIGJ1ZmZlcnMKKworICAgIHNwIDxJRXZzQ2FtZXJhU3RyZWFtPiBtU3RyZWFtID0gbnVsbHB0cjsgIC8vIFRoZSBjYWxsYmFjayB1c2VkIHRvIGRlbGl2ZXIgZWFjaCBmcmFtZQorCisgICAgc3RydWN0IEJ1ZmZlclJlY29yZCB7CisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGU7CisgICAgICAgIGJvb2wgaW5Vc2U7CisKKyAgICAgICAgZXhwbGljaXQgQnVmZmVyUmVjb3JkKGJ1ZmZlcl9oYW5kbGVfdCBoKSA6IGhhbmRsZShoKSwgaW5Vc2UoZmFsc2UpIHt9OworICAgIH07CisKKyAgICBzdGQ6OnZlY3RvciA8QnVmZmVyUmVjb3JkPiBtQnVmZmVyczsgICAgICAgICAgIC8vIEdyYXBoaWNzIGJ1ZmZlcnMgdG8gdHJhbnNmZXIgaW1hZ2VzCisgICAgdW5zaWduZWQgbUZyYW1lc0FsbG93ZWQ7ICAgICAvLyBIb3cgbWFueSBidWZmZXJzIGFyZSB3ZSBjdXJyZW50bHkgdXNpbmcKKyAgICB1bnNpZ25lZCBtRnJhbWVzSW5Vc2U7ICAgICAgIC8vIEhvdyBtYW55IGJ1ZmZlcnMgYXJlIGN1cnJlbnRseSBvdXRzdGFuZGluZworCisgICAgZW51bSBTdHJlYW1TdGF0ZVZhbHVlcyB7CisgICAgICAgIFNUT1BQRUQsCisgICAgICAgIFJVTk5JTkcsCisgICAgICAgIFNUT1BQSU5HLAorICAgICAgICBERUFELAorICAgIH07CisgICAgU3RyZWFtU3RhdGVWYWx1ZXMgbVN0cmVhbVN0YXRlOworCisgICAgLy8gU3luY2hyb25pemF0aW9uIG5lY2Vzc2FyeSB0byBkZWNvbmZsaWN0IG1DYXB0dXJlVGhyZWFkIGZyb20gdGhlIG1haW4gc2VydmljZSB0aHJlYWQKKyAgICBzdGQ6Om11dGV4IG1BY2Nlc3NMb2NrOworfTsKKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGV2cworfSAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVVE9NT1RJVkVfRVZTX1YxXzBfRVZTQ0FNRVJBX0gKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0Rpc3BsYXkuY3BwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzRGlzcGxheS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRkNTQ2ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0Rpc3BsYXkuY3BwCkBAIC0wLDAgKzEsMzI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSAiRXZzRGlzcGxheS5oIgorCisjaW5jbHVkZSA8dWkvR3JhcGhpY0J1ZmZlckFsbG9jYXRvci5oPgorI2luY2x1ZGUgPHVpL0dyYXBoaWNCdWZmZXJNYXBwZXIuaD4KKworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIGV2cyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisKK0V2c0Rpc3BsYXk6OkV2c0Rpc3BsYXkoKSB7CisgICAgQUxPR0QoIkV2c0Rpc3BsYXkgaW5zdGFudGlhdGVkIik7CisKKyAgICAvLyBTZXQgdXAgb3VyIHNlbGYgZGVzY3JpcHRpb24KKyAgICAvLyBOT1RFOiAgVGhlc2UgYXJlIGFyYml0cmFyeSB2YWx1ZXMgY2hvc2VuIGZvciB0ZXN0aW5nCisgICAgbUluZm8uZGlzcGxheUlkICAgICAgICAgICAgID0gIk1vY2sgRGlzcGxheSI7CisgICAgbUluZm8udmVuZG9yRmxhZ3MgICAgICAgICAgID0gMzg3MDsKKworICAgIC8vIEFzc2VtYmxlIHRoZSBidWZmZXIgZGVzY3JpcHRpb24gd2UnbGwgdXNlIGZvciBvdXIgcmVuZGVyIHRhcmdldAorICAgIG1CdWZmZXIud2lkdGggICAgICAgPSAzMjA7CisgICAgbUJ1ZmZlci5oZWlnaHQgICAgICA9IDI0MDsKKyAgICBtQnVmZmVyLmZvcm1hdCAgICAgID0gSEFMX1BJWEVMX0ZPUk1BVF9SR0JBXzg4ODg7CisgICAgbUJ1ZmZlci51c2FnZSAgICAgICA9IEdSQUxMT0NfVVNBR0VfSFdfUkVOREVSIHwgR1JBTExPQ19VU0FHRV9IV19DT01QT1NFUjsKKyAgICBtQnVmZmVyLmJ1ZmZlcklkICAgID0gMHgzODcwOyAgLy8gQXJiaXRyYXJ5IG1hZ2ljIG51bWJlciBmb3Igc2VsZiByZWNvZ25pdGlvbgorICAgIG1CdWZmZXIucGl4ZWxTaXplICAgPSA0OworfQorCisKK0V2c0Rpc3BsYXk6On5FdnNEaXNwbGF5KCkgeworICAgIEFMT0dEKCJFdnNEaXNwbGF5IGJlaW5nIGRlc3Ryb3llZCIpOworICAgIGZvcmNlU2h1dGRvd24oKTsKK30KKworCisvKioKKyAqIFRoaXMgZ2V0cyBjYWxsZWQgaWYgYW5vdGhlciBjYWxsZXIgInN0ZWFscyIgb3duZXJzaGlwIG9mIHRoZSBkaXNwbGF5CisgKi8KK3ZvaWQgRXZzRGlzcGxheTo6Zm9yY2VTaHV0ZG93bigpCit7CisgICAgQUxPR0QoIkV2c0Rpc3BsYXkgZm9yY2VTaHV0ZG93biIpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgIC8vIElmIHRoZSBidWZmZXIgaXNuJ3QgYmVpbmcgaGVsZCBieSBhIHJlbW90ZSBjbGllbnQsIHJlbGVhc2UgaXQgbm93IGFzIGFuCisgICAgLy8gb3B0aW1pemF0aW9uIHRvIHJlbGVhc2UgdGhlIHJlc291cmNlcyBtb3JlIHF1aWNrbHkgdGhhbiB0aGUgZGVzdHJ1Y3RvciBtaWdodAorICAgIC8vIGdldCBjYWxsZWQuCisgICAgaWYgKG1CdWZmZXIubWVtSGFuZGxlKSB7CisgICAgICAgIC8vIFJlcG9ydCBpZiB3ZSdyZSBnb2luZyBhd2F5IHdoaWxlIGEgYnVmZmVyIGlzIG91dHN0YW5kaW5nCisgICAgICAgIGlmIChtRnJhbWVCdXN5KSB7CisgICAgICAgICAgICBBTE9HRSgiRXZzRGlzcGxheSBnb2luZyBkb3duIHdoaWxlIGNsaWVudCBpcyBob2xkaW5nIGEgYnVmZmVyIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBEcm9wIHRoZSBncmFwaGljcyBidWZmZXIgd2UndmUgYmVlbiB1c2luZworICAgICAgICBHcmFwaGljQnVmZmVyQWxsb2NhdG9yJiBhbGxvYyhHcmFwaGljQnVmZmVyQWxsb2NhdG9yOjpnZXQoKSk7CisgICAgICAgIGFsbG9jLmZyZWUobUJ1ZmZlci5tZW1IYW5kbGUpOworICAgICAgICBtQnVmZmVyLm1lbUhhbmRsZSA9IG51bGxwdHI7CisgICAgfQorCisgICAgLy8gUHV0IHRoaXMgb2JqZWN0IGludG8gYW4gdW5yZWNvdmVyYWJsZSBlcnJvciBzdGF0ZSBzaW5jZSBzb21lYm9keSBlbHNlCisgICAgLy8gaXMgZ29pbmcgdG8gb3duIHRoZSBkaXNwbGF5IG5vdy4KKyAgICBtUmVxdWVzdGVkU3RhdGUgPSBEaXNwbGF5U3RhdGU6OkRFQUQ7Cit9CisKKworLyoqCisgKiBSZXR1cm5zIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBFVlMgZGlzcGxheSBwcm92aWRlZCBieSB0aGUgc3lzdGVtLgorICogU2VlIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgRGlzcGxheURlc2Mgc3RydWN0dXJlIGZvciBkZXRhaWxzLgorICovCitSZXR1cm48dm9pZD4gRXZzRGlzcGxheTo6Z2V0RGlzcGxheUluZm8oZ2V0RGlzcGxheUluZm9fY2IgX2hpZGxfY2IpICB7CisgICAgQUxPR0QoImdldERpc3BsYXlJbmZvIik7CisKKyAgICAvLyBTZW5kIGJhY2sgb3VyIHNlbGYgZGVzY3JpcHRpb24KKyAgICBfaGlkbF9jYihtSW5mbyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCisvKioKKyAqIENsaWVudHMgbWF5IHNldCB0aGUgZGlzcGxheSBzdGF0ZSB0byBleHByZXNzIHRoZWlyIGRlc2lyZWQgc3RhdGUuCisgKiBUaGUgSEFMIGltcGxlbWVudGF0aW9uIG11c3QgZ3JhY2VmdWxseSBhY2NlcHQgYSByZXF1ZXN0IGZvciBhbnkgc3RhdGUKKyAqIHdoaWxlIGluIGFueSBvdGhlciBzdGF0ZSwgYWx0aG91Z2ggdGhlIHJlc3BvbnNlIG1heSBiZSB0byBpZ25vcmUgdGhlIHJlcXVlc3QuCisgKiBUaGUgZGlzcGxheSBpcyBkZWZpbmVkIHRvIHN0YXJ0IGluIHRoZSBOT1RfVklTSUJMRSBzdGF0ZSB1cG9uIGluaXRpYWxpemF0aW9uLgorICogVGhlIGNsaWVudCBpcyB0aGVuIGV4cGVjdGVkIHRvIHJlcXVlc3QgdGhlIFZJU0lCTEVfT05fTkVYVF9GUkFNRSBzdGF0ZSwgYW5kCisgKiB0aGVuIGJlZ2luIHByb3ZpZGluZyB2aWRlby4gIFdoZW4gdGhlIGRpc3BsYXkgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLCB0aGUgY2xpZW50CisgKiBpcyBleHBlY3RlZCB0byByZXF1ZXN0IHRoZSBOT1RfVklTSUJMRSBzdGF0ZSBhZnRlciBwYXNzaW5nIHRoZSBsYXN0IHZpZGVvIGZyYW1lLgorICovCitSZXR1cm48RXZzUmVzdWx0PiBFdnNEaXNwbGF5OjpzZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlIHN0YXRlKSB7CisgICAgQUxPR0QoInNldERpc3BsYXlTdGF0ZSIpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgIGlmIChtUmVxdWVzdGVkU3RhdGUgPT0gRGlzcGxheVN0YXRlOjpERUFEKSB7CisgICAgICAgIC8vIFRoaXMgb2JqZWN0IG5vIGxvbmdlciBvd25zIHRoZSBkaXNwbGF5IC0tIGl0J3MgYmVlbiBzdXBlcmNlZWRlZCEKKyAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6T1dORVJTSElQX0xPU1Q7CisgICAgfQorCisgICAgLy8gRW5zdXJlIHdlIHJlY29nbml6ZSB0aGUgcmVxdWVzdGVkIHN0YXRlIHNvIHdlIGRvbid0IGdvIG9mZiB0aGUgcmFpbHMKKyAgICBpZiAoc3RhdGUgPCBEaXNwbGF5U3RhdGU6Ok5VTV9TVEFURVMpIHsKKyAgICAgICAgLy8gUmVjb3JkIHRoZSByZXF1ZXN0ZWQgc3RhdGUKKyAgICAgICAgbVJlcXVlc3RlZFN0YXRlID0gc3RhdGU7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6Ok9LOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgLy8gVHVybiBvZmYgdGhlIGRpc3BsYXkgaWYgYXNrZWQgZm9yIGFuIHVucmVjb2duaXplZCBzdGF0ZQorICAgICAgICBtUmVxdWVzdGVkU3RhdGUgPSBEaXNwbGF5U3RhdGU6Ok5PVF9WSVNJQkxFOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpJTlZBTElEX0FSRzsKKyAgICB9Cit9CisKKworLyoqCisgKiBUaGUgSEFMIGltcGxlbWVudGF0aW9uIHNob3VsZCByZXBvcnQgdGhlIGFjdHVhbCBjdXJyZW50IHN0YXRlLCB3aGljaCBtaWdodAorICogdHJhbnNpZW50bHkgZGlmZmVyIGZyb20gdGhlIG1vc3QgcmVjZW50bHkgcmVxdWVzdGVkIHN0YXRlLiAgTm90ZSwgaG93ZXZlciwgdGhhdAorICogdGhlIGxvZ2ljIHJlc3BvbnNpYmxlIGZvciBjaGFuZ2luZyBkaXNwbGF5IHN0YXRlcyBzaG91bGQgZ2VuZXJhbGx5IGxpdmUgYWJvdmUKKyAqIHRoZSBkZXZpY2UgbGF5ZXIsIG1ha2luZyBpdCB1bmRlc2lyYWJsZSBmb3IgdGhlIEhBTCBpbXBsZW1lbnRhdGlvbiB0bworICogc3BvbnRhbmVvdXNseSBjaGFuZ2UgZGlzcGxheSBzdGF0ZXMuCisgKi8KK1JldHVybjxEaXNwbGF5U3RhdGU+IEV2c0Rpc3BsYXk6OmdldERpc3BsYXlTdGF0ZSgpICB7CisgICAgQUxPR0QoImdldERpc3BsYXlTdGF0ZSIpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgIHJldHVybiBtUmVxdWVzdGVkU3RhdGU7Cit9CisKKworLyoqCisgKiBUaGlzIGNhbGwgcmV0dXJucyBhIGhhbmRsZSB0byBhIGZyYW1lIGJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRpc3BsYXkuCisgKiBUaGlzIGJ1ZmZlciBtYXkgYmUgbG9ja2VkIGFuZCB3cml0dGVuIHRvIGJ5IHNvZnR3YXJlIGFuZC9vciBHTC4gIFRoaXMgYnVmZmVyCisgKiBtdXN0IGJlIHJldHVybmVkIHZpYSBhIGNhbGwgdG8gcmV0dXJuVGFyZ2V0QnVmZmVyRm9yRGlzcGxheSgpIGV2ZW4gaWYgdGhlCisgKiBkaXNwbGF5IGlzIG5vIGxvbmdlciB2aXNpYmxlLgorICovCisvLyBUT0RPOiBXZSBuZWVkIHRvIGtub3cgaWYvd2hlbiBvdXIgY2xpZW50IGRpZXMgc28gd2UgY2FuIGdldCB0aGUgYnVmZmVyIGJhY2shIChibG9ja2VkIGIvMzE2MzI1MTgpCitSZXR1cm48dm9pZD4gRXZzRGlzcGxheTo6Z2V0VGFyZ2V0QnVmZmVyKGdldFRhcmdldEJ1ZmZlcl9jYiBfaGlkbF9jYikgIHsKKyAgICBBTE9HRCgiZ2V0VGFyZ2V0QnVmZmVyIik7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgaWYgKG1SZXF1ZXN0ZWRTdGF0ZSA9PSBEaXNwbGF5U3RhdGU6OkRFQUQpIHsKKyAgICAgICAgQUxPR0UoIlJlamVjdGluZyBidWZmZXIgcmVxdWVzdCBmcm9tIG9iamVjdCB0aGF0IGxvc3Qgb3duZXJzaGlwIG9mIHRoZSBkaXNwbGF5LiIpOworICAgICAgICBCdWZmZXJEZXNjIG51bGxCdWZmID0ge307CisgICAgICAgIF9oaWRsX2NiKG51bGxCdWZmKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICAvLyBJZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgYSBidWZmZXIsIGFsbG9jYXRlIG9uZSBub3cKKyAgICBpZiAoIW1CdWZmZXIubWVtSGFuZGxlKSB7CisgICAgICAgIC8vIEFsbG9jYXRlIHRoZSBidWZmZXIgdGhhdCB3aWxsIGhvbGQgb3VyIGRpc3BsYXlhYmxlIGltYWdlCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUgPSBudWxscHRyOworICAgICAgICBHcmFwaGljQnVmZmVyQWxsb2NhdG9yJiBhbGxvYyhHcmFwaGljQnVmZmVyQWxsb2NhdG9yOjpnZXQoKSk7CisgICAgICAgIHN0YXR1c190IHJlc3VsdCA9IGFsbG9jLmFsbG9jYXRlKAorICAgICAgICAgICAgbUJ1ZmZlci53aWR0aCwgbUJ1ZmZlci5oZWlnaHQsIG1CdWZmZXIuZm9ybWF0LCAxLCBtQnVmZmVyLnVzYWdlLAorICAgICAgICAgICAgJmhhbmRsZSwgJm1CdWZmZXIuc3RyaWRlLCAwLCAiRXZzRGlzcGxheSIpOworICAgICAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKSB7CisgICAgICAgICAgICBBTE9HRSgiRXJyb3IgJWQgYWxsb2NhdGluZyAlZCB4ICVkIGdyYXBoaWNzIGJ1ZmZlciIsCisgICAgICAgICAgICAgICAgICByZXN1bHQsIG1CdWZmZXIud2lkdGgsIG1CdWZmZXIuaGVpZ2h0KTsKKyAgICAgICAgICAgIEJ1ZmZlckRlc2MgbnVsbEJ1ZmYgPSB7fTsKKyAgICAgICAgICAgIF9oaWRsX2NiKG51bGxCdWZmKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFoYW5kbGUpIHsKKyAgICAgICAgICAgIEFMT0dFKCJXZSBkaWRuJ3QgZ2V0IGEgYnVmZmVyIGhhbmRsZSBiYWNrIGZyb20gdGhlIGFsbG9jYXRvciIpOworICAgICAgICAgICAgQnVmZmVyRGVzYyBudWxsQnVmZiA9IHt9OworICAgICAgICAgICAgX2hpZGxfY2IobnVsbEJ1ZmYpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIG1CdWZmZXIubWVtSGFuZGxlID0gaGFuZGxlOworICAgICAgICBtRnJhbWVCdXN5ID0gZmFsc2U7CisgICAgICAgIEFMT0dEKCJBbGxvY2F0ZWQgbmV3IGJ1ZmZlciAlcCB3aXRoIHN0cmlkZSAldSIsCisgICAgICAgICAgICAgIG1CdWZmZXIubWVtSGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpLCBtQnVmZmVyLnN0cmlkZSk7CisgICAgfQorCisgICAgLy8gRG8gd2UgaGF2ZSBhIGZyYW1lIGF2YWlsYWJsZT8KKyAgICBpZiAobUZyYW1lQnVzeSkgeworICAgICAgICAvLyBUaGlzIG1lYW5zIGVpdGhlciB3ZSBoYXZlIGEgMm5kIGNsaWVudCB0cnlpbmcgdG8gY29tcGV0ZSBmb3IgYnVmZmVycworICAgICAgICAvLyAoYW4gdW5zdXBwb3J0ZWQgbW9kZSBvZiBvcGVyYXRpb24pIG9yIGVsc2UgdGhlIGNsaWVudCBoYXNuJ3QgcmV0dXJuZWQKKyAgICAgICAgLy8gYSBwcmV2aW91c2x5IGlzc3VlZCBidWZmZXIgeWV0ICh0aGV5J3JlIGJlaGF2aW5nIGJhZGx5KS4KKyAgICAgICAgLy8gTk9URTogIFdlIGhhdmUgdG8gbWFrZSB0aGUgY2FsbGJhY2sgZXZlbiBpZiB3ZSBoYXZlIG5vdGhpbmcgdG8gcHJvdmlkZQorICAgICAgICBBTE9HRSgiZ2V0VGFyZ2V0QnVmZmVyIGNhbGxlZCB3aGlsZSBubyBidWZmZXJzIGF2YWlsYWJsZS4iKTsKKyAgICAgICAgQnVmZmVyRGVzYyBudWxsQnVmZiA9IHt9OworICAgICAgICBfaGlkbF9jYihudWxsQnVmZik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gTWFyayBvdXIgYnVmZmVyIGFzIGJ1c3kKKyAgICAgICAgbUZyYW1lQnVzeSA9IHRydWU7CisKKyAgICAgICAgLy8gU2VuZCB0aGUgYnVmZmVyIHRvIHRoZSBjbGllbnQKKyAgICAgICAgQUxPR0QoIlByb3ZpZGluZyBkaXNwbGF5IGJ1ZmZlciBoYW5kbGUgJXAgYXMgaWQgJWQiLAorICAgICAgICAgICAgICBtQnVmZmVyLm1lbUhhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSwgbUJ1ZmZlci5idWZmZXJJZCk7CisgICAgICAgIF9oaWRsX2NiKG1CdWZmZXIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KK30KKworCisvKioKKyAqIFRoaXMgY2FsbCB0ZWxscyB0aGUgZGlzcGxheSB0aGF0IHRoZSBidWZmZXIgaXMgcmVhZHkgZm9yIGRpc3BsYXkuCisgKiBUaGUgYnVmZmVyIGlzIG5vIGxvbmdlciB2YWxpZCBmb3IgdXNlIGJ5IHRoZSBjbGllbnQgYWZ0ZXIgdGhpcyBjYWxsLgorICovCitSZXR1cm48RXZzUmVzdWx0PiBFdnNEaXNwbGF5OjpyZXR1cm5UYXJnZXRCdWZmZXJGb3JEaXNwbGF5KGNvbnN0IEJ1ZmZlckRlc2MmIGJ1ZmZlcikgIHsKKyAgICBBTE9HRCgicmV0dXJuVGFyZ2V0QnVmZmVyRm9yRGlzcGxheSAlcCIsIGJ1ZmZlci5tZW1IYW5kbGUuZ2V0TmF0aXZlSGFuZGxlKCkpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgIC8vIE5vYm9keSBzaG91bGQgY2FsbCB1cyB3aXRoIGEgbnVsbCBoYW5kbGUKKyAgICBpZiAoIWJ1ZmZlci5tZW1IYW5kbGUuZ2V0TmF0aXZlSGFuZGxlKCkpIHsKKyAgICAgICAgQUxPR0UgKCJyZXR1cm5UYXJnZXRCdWZmZXJGb3JEaXNwbGF5IGNhbGxlZCB3aXRob3V0IGEgdmFsaWQgYnVmZmVyIGhhbmRsZS5cbiIpOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpJTlZBTElEX0FSRzsKKyAgICB9CisgICAgaWYgKGJ1ZmZlci5idWZmZXJJZCAhPSBtQnVmZmVyLmJ1ZmZlcklkKSB7CisgICAgICAgIEFMT0dFICgiR290IGFuIHVucmVjb2duaXplZCBmcmFtZSByZXR1cm5lZC5cbiIpOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpJTlZBTElEX0FSRzsKKyAgICB9CisgICAgaWYgKCFtRnJhbWVCdXN5KSB7CisgICAgICAgIEFMT0dFICgiQSBmcmFtZSB3YXMgcmV0dXJuZWQgd2l0aCBubyBvdXRzdGFuZGluZyBmcmFtZXMuXG4iKTsKKyAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6QlVGRkVSX05PVF9BVkFJTEFCTEU7CisgICAgfQorCisgICAgbUZyYW1lQnVzeSA9IGZhbHNlOworCisgICAgLy8gSWYgd2UndmUgYmVlbiBkaXNwbGFjZWQgYnkgYW5vdGhlciBvd25lciBvZiB0aGUgZGlzcGxheSwgdGhlbiB3ZSBjYW4ndCBkbyBhbnl0aGluZyBlbHNlCisgICAgaWYgKG1SZXF1ZXN0ZWRTdGF0ZSA9PSBEaXNwbGF5U3RhdGU6OkRFQUQpIHsKKyAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6T1dORVJTSElQX0xPU1Q7CisgICAgfQorCisgICAgLy8gSWYgd2Ugd2VyZSB3YWl0aW5nIGZvciBhIG5ldyBmcmFtZSwgdGhpcyBpcyBpdCEKKyAgICBpZiAobVJlcXVlc3RlZFN0YXRlID09IERpc3BsYXlTdGF0ZTo6VklTSUJMRV9PTl9ORVhUX0ZSQU1FKSB7CisgICAgICAgIG1SZXF1ZXN0ZWRTdGF0ZSA9IERpc3BsYXlTdGF0ZTo6VklTSUJMRTsKKyAgICB9CisKKyAgICAvLyBWYWxpZGF0ZSB3ZSdyZSBpbiBhbiBleHBlY3RlZCBzdGF0ZQorICAgIGlmIChtUmVxdWVzdGVkU3RhdGUgIT0gRGlzcGxheVN0YXRlOjpWSVNJQkxFKSB7CisgICAgICAgIC8vIFdlIHNob3VsZG4ndCBnZXQgZnJhbWVzIGJhY2sgd2hlbiB3ZSdyZSBub3QgdmlzaWJsZS4KKyAgICAgICAgQUxPR0UgKCJHb3QgYW4gdW5leHBlY3RlZCBmcmFtZSByZXR1cm5lZCB3aGlsZSBub3QgdmlzaWJsZSAtIGlnbm9yaW5nLlxuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVGhpcyBpcyB3aGVyZSB0aGUgYnVmZmVyIHdvdWxkIGJlIG1hZGUgdmlzaWJsZS4KKyAgICAgICAgLy8gRm9yIG5vdyB3ZSBzaW1wbHkgdmFsaWRhdGUgaXQgaGFzIHRoZSBkYXRhIHdlIGV4cGVjdCBpbiBpdCBieSByZWFkaW5nIGl0IGJhY2sKKworICAgICAgICAvLyBMb2NrIG91ciBkaXNwbGF5IGJ1ZmZlciBmb3IgcmVhZGluZworICAgICAgICB1aW50MzJfdCogcGl4ZWxzID0gbnVsbHB0cjsKKyAgICAgICAgR3JhcGhpY0J1ZmZlck1hcHBlciAmbWFwcGVyID0gR3JhcGhpY0J1ZmZlck1hcHBlcjo6Z2V0KCk7CisgICAgICAgIG1hcHBlci5sb2NrKG1CdWZmZXIubWVtSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICBHUkFMTE9DX1VTQUdFX1NXX1JFQURfT0ZURU4gfCBHUkFMTE9DX1VTQUdFX1NXX1dSSVRFX05FVkVSLAorICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpSZWN0KG1CdWZmZXIud2lkdGgsIG1CdWZmZXIuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgKHZvaWQgKiopJnBpeGVscyk7CisKKyAgICAgICAgLy8gSWYgd2UgZmFpbGVkIHRvIGxvY2sgdGhlIHBpeGVsIGJ1ZmZlciwgd2UncmUgYWJvdXQgdG8gY3Jhc2gsIGJ1dCBsb2cgaXQgZmlyc3QKKyAgICAgICAgaWYgKCFwaXhlbHMpIHsKKyAgICAgICAgICAgIEFMT0dFKCJEaXNwbGF5IGZhaWxlZCB0byBnYWluIGFjY2VzcyB0byBpbWFnZSBidWZmZXIgZm9yIHJlYWRpbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIHRoZSB0ZXN0IHBpeGVscworICAgICAgICBib29sIGZyYW1lTG9va3NHb29kID0gdHJ1ZTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCByb3cgPSAwOyByb3cgPCBtQnVmZmVyLmhlaWdodDsgcm93KyspIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgY29sID0gMDsgY29sIDwgbUJ1ZmZlci53aWR0aDsgY29sKyspIHsKKyAgICAgICAgICAgICAgICAvLyBJbmRleCBpbnRvIHRoZSByb3cgdG8gY2hlY2sgdGhlIHBpeGVsIGF0IHRoaXMgY29sdW1uLgorICAgICAgICAgICAgICAgIC8vIFdlIGV4cGVjdCAweEZGIGluIHRoZSBMU0IgY2hhbm5lbCwgYSB2ZXJ0aWNhbCBncmFkaWVudCBpbiB0aGUKKyAgICAgICAgICAgICAgICAvLyBzZWNvbmQgY2hhbm5lbCwgYSBob3JpdHpvbnRhbCBncmFkaWVudCBpbiB0aGUgdGhpcmQgY2hhbm5lbCwgYW5kCisgICAgICAgICAgICAgICAgLy8gMHhGRiBpbiB0aGUgTVNCLgorICAgICAgICAgICAgICAgIC8vIFRoZSBleGNlcHRpb24gaXMgdGhlIHZlcnkgZmlyc3QgMzIgYml0cyB3aGljaCBpcyB1c2VkIGZvciB0aGUKKyAgICAgICAgICAgICAgICAvLyB0aW1lIHZhcnlpbmcgZnJhbWUgc2lnbmF0dXJlIHRvIGF2b2lkIGdldHRpbmcgZm9vbGVkIGJ5IGEgc3RhdGljIGltYWdlLgorICAgICAgICAgICAgICAgIHVpbnQzMl90IGV4cGVjdGVkUGl4ZWwgPSAweEZGMDAwMEZGICAgICAgICAgICB8IC8vIE1TQiBhbmQgTFNCCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocm93ICYgMHhGRikgPDwgIDgpIHwgLy8gdmVydGljYWwgZ3JhZGllbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjb2wgJiAweEZGKSA8PCAxNik7ICAvLyBob3Jpem9udGFsIGdyYWRpZW50CisgICAgICAgICAgICAgICAgaWYgKChyb3cgfCBjb2wpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UnbGwgY2hlY2sgdGhlICJ1bmlxdWVuZXNzIiBvZiB0aGUgZnJhbWUgc2lnbmF0dXJlIGJlbG93CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBXYWxrIGFjcm9zcyB0aGlzIHJvdyAod2UnbGwgc3RlcCByb3dzIGJlbG93KQorICAgICAgICAgICAgICAgIHVpbnQzMl90IHJlY2VpdmVkUGl4ZWwgPSBwaXhlbHNbY29sXTsKKyAgICAgICAgICAgICAgICBpZiAocmVjZWl2ZWRQaXhlbCAhPSBleHBlY3RlZFBpeGVsKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJQaXhlbCBjaGVjayBtaXNtYXRjaCBpbiBmcmFtZSBidWZmZXIiKTsKKyAgICAgICAgICAgICAgICAgICAgZnJhbWVMb29rc0dvb2QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWZyYW1lTG9va3NHb29kKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFBvaW50IHRvIHRoZSBuZXh0IHJvdyAoTk9URTogIGdyYWxsb2MgcmVwb3J0cyBzdHJpZGUgaW4gdW5pdHMgb2YgcGl4ZWxzKQorICAgICAgICAgICAgcGl4ZWxzID0gcGl4ZWxzICsgbUJ1ZmZlci5zdHJpZGU7CisgICAgICAgIH0KKworICAgICAgICAvLyBFbnN1cmUgd2UgZG9uJ3Qgc2VlIHRoZSBzYW1lIGJ1ZmZlciB0d2ljZSB3aXRob3V0IGl0IGJlaW5nIHJld3JpdHRlbgorICAgICAgICBzdGF0aWMgdWludDMyX3QgcHJldlNpZ25hdHVyZSA9IH4wOworICAgICAgICB1aW50MzJfdCBzaWduYXR1cmUgPSBwaXhlbHNbMF0gJiAweEZGOworICAgICAgICBpZiAocHJldlNpZ25hdHVyZSA9PSBzaWduYXR1cmUpIHsKKyAgICAgICAgICAgIGZyYW1lTG9va3NHb29kID0gZmFsc2U7CisgICAgICAgICAgICBBTE9HRSgiRHVwbGljYXRlLCBsaWtlbHkgc3RhbGUgZnJhbWUgYnVmZmVyIGRldGVjdGVkIik7CisgICAgICAgIH0KKworCisgICAgICAgIC8vIFJlbGVhc2Ugb3VyIG91dHB1dCBidWZmZXIKKyAgICAgICAgbWFwcGVyLnVubG9jayhtQnVmZmVyLm1lbUhhbmRsZSk7CisKKyAgICAgICAgaWYgKCFmcmFtZUxvb2tzR29vZCkgeworICAgICAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6VU5ERVJMWUlOR19TRVJWSUNFX0VSUk9SOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIEV2c1Jlc3VsdDo6T0s7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBldnMKK30gLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNEaXNwbGF5LmggYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNEaXNwbGF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJkNjQ0NgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0Rpc3BsYXkuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVVE9NT1RJVkVfRVZTX1YxXzBfRVZTRElTUExBWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVUT01PVElWRV9FVlNfVjFfMF9FVlNESVNQTEFZX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNEaXNwbGF5Lmg+CisjaW5jbHVkZSA8dWkvR3JhcGhpY0J1ZmZlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIGV2cyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisKK2NsYXNzIEV2c0Rpc3BsYXkgOiBwdWJsaWMgSUV2c0Rpc3BsYXkgeworcHVibGljOgorICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjpldnM6OlYxXzA6OklFdnNEaXNwbGF5IGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlzcGxheUluZm8oZ2V0RGlzcGxheUluZm9fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48RXZzUmVzdWx0PiBzZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlIHN0YXRlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPERpc3BsYXlTdGF0ZT4gZ2V0RGlzcGxheVN0YXRlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRUYXJnZXRCdWZmZXIoZ2V0VGFyZ2V0QnVmZmVyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEV2c1Jlc3VsdD4gcmV0dXJuVGFyZ2V0QnVmZmVyRm9yRGlzcGxheShjb25zdCBCdWZmZXJEZXNjJiBidWZmZXIpICBvdmVycmlkZTsKKworICAgIC8vIEltcGxlbWVudGF0aW9uIGRldGFpbHMKKyAgICBFdnNEaXNwbGF5KCk7CisgICAgdmlydHVhbCB+RXZzRGlzcGxheSgpIG92ZXJyaWRlOworCisgICAgdm9pZCBmb3JjZVNodXRkb3duKCk7ICAgLy8gVGhpcyBnZXRzIGNhbGxlZCBpZiBhbm90aGVyIGNhbGxlciAic3RlYWxzIiBvd25lcnNoaXAgb2YgdGhlIGRpc3BsYXkKKworcHJpdmF0ZToKKyAgICBEaXNwbGF5RGVzYyAgICAgbUluZm8gICAgICAgICAgID0ge307CisgICAgQnVmZmVyRGVzYyAgICAgIG1CdWZmZXIgICAgICAgICA9IHt9OyAgICAgICAvLyBBIGdyYXBoaWNzIGJ1ZmZlciBpbnRvIHdoaWNoIHdlJ2xsIHN0b3JlIGltYWdlcworCisgICAgYm9vbCAgICAgICAgICAgIG1GcmFtZUJ1c3kgICAgICA9IGZhbHNlOyAgICAvLyBBIGZsYWcgdGVsbGluZyB1cyBvdXIgYnVmZmVyIGlzIGluIHVzZQorICAgIERpc3BsYXlTdGF0ZSAgICBtUmVxdWVzdGVkU3RhdGUgPSBEaXNwbGF5U3RhdGU6Ok5PVF9WSVNJQkxFOworCisgICAgc3RkOjptdXRleCAgICAgIG1BY2Nlc3NMb2NrOworfTsKKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGV2cworfSAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVVE9NT1RJVkVfRVZTX1YxXzBfRVZTRElTUExBWV9ICmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNFbnVtZXJhdG9yLmNwcCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0VudW1lcmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyNWQ0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNFbnVtZXJhdG9yLmNwcApAQCAtMCwwICsxLDIxNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAtc2VydmljZSIKKworI2luY2x1ZGUgIkV2c0VudW1lcmF0b3IuaCIKKyNpbmNsdWRlICJFdnNDYW1lcmEuaCIKKyNpbmNsdWRlICJFdnNEaXNwbGF5LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgZXZzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKworLy8gTk9URTogIEFsbCBtZW1iZXJzIHZhbHVlcyBhcmUgc3RhdGljIHNvIHRoYXQgYWxsIGNsaWVudHMgb3BlcmF0ZSBvbiB0aGUgc2FtZSBzdGF0ZQorLy8gICAgICAgIFRoYXQgaXMgdG8gc2F5LCB0aGlzIGlzIGVmZmVjdGl2ZWx5IGEgc2luZ2xldG9uIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCBISURMCisvLyAgICAgICAgY29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSBmb3IgZWFjaCBjbGllbnQuCitzdGQ6Omxpc3Q8RXZzRW51bWVyYXRvcjo6Q2FtZXJhUmVjb3JkPiAgIEV2c0VudW1lcmF0b3I6OnNDYW1lcmFMaXN0Oword3A8RXZzRGlzcGxheT4gICAgICAgICAgICAgICAgICAgICAgICAgICBFdnNFbnVtZXJhdG9yOjpzQWN0aXZlRGlzcGxheTsKKworCitFdnNFbnVtZXJhdG9yOjpFdnNFbnVtZXJhdG9yKCkgeworICAgIEFMT0dEKCJFdnNFbnVtZXJhdG9yIGNyZWF0ZWQiKTsKKworICAgIC8vIEFkZCBzYW1wbGUgY2FtZXJhIGRhdGEgdG8gb3VyIGxpc3Qgb2YgY2FtZXJhcworICAgIC8vIEluIGEgcmVhbCBkcml2ZXIsIHRoaXMgd291bGQgYmUgZXhwZWN0ZWQgdG8gY2FuIHRoZSBhdmFpbGFibGUgaGFyZHdhcmUKKyAgICBzQ2FtZXJhTGlzdC5lbXBsYWNlX2JhY2soRXZzQ2FtZXJhOjprQ2FtZXJhTmFtZV9CYWNrdXApOworICAgIHNDYW1lcmFMaXN0LmVtcGxhY2VfYmFjaygiTGFuZVZpZXciKTsKKyAgICBzQ2FtZXJhTGlzdC5lbXBsYWNlX2JhY2soInJpZ2h0IHR1cm4iKTsKK30KKworCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6ZXZzOjpWMV8wOjpJRXZzRW51bWVyYXRvciBmb2xsb3cuCitSZXR1cm48dm9pZD4gRXZzRW51bWVyYXRvcjo6Z2V0Q2FtZXJhTGlzdChnZXRDYW1lcmFMaXN0X2NiIF9oaWRsX2NiKSAgeworICAgIEFMT0dEKCJnZXRDYW1lcmFMaXN0Iik7CisKKyAgICBjb25zdCB1bnNpZ25lZCBudW1DYW1lcmFzID0gc0NhbWVyYUxpc3Quc2l6ZSgpOworCisgICAgLy8gQnVpbGQgdXAgYSBwYWNrZWQgYXJyYXkgb2YgQ2FtZXJhRGVzYyBmb3IgcmV0dXJuCisgICAgLy8gTk9URTogIE9ubHkgaGFzIHRvIGxpdmUgdW50aWwgdGhlIGNhbGxiYWNrIHJldHVybnMKKyAgICBzdGQ6OnZlY3RvcjxDYW1lcmFEZXNjPiBkZXNjcmlwdGlvbnM7CisgICAgZGVzY3JpcHRpb25zLnJlc2VydmUobnVtQ2FtZXJhcyk7CisgICAgZm9yIChjb25zdCBhdXRvJiBjYW0gOiBzQ2FtZXJhTGlzdCkgeworICAgICAgICBkZXNjcmlwdGlvbnMucHVzaF9iYWNrKCBjYW0uZGVzYyApOworICAgIH0KKworICAgIC8vIEVuY2Fwc3VsYXRlIG91ciBjYW1lcmEgZGVzY3JpcHRpb25zIGluIHRoZSBISURMIHZlYyB0eXBlCisgICAgaGlkbF92ZWM8Q2FtZXJhRGVzYz4gaGlkbENhbWVyYXMoZGVzY3JpcHRpb25zKTsKKworICAgIC8vIFNlbmQgYmFjayB0aGUgcmVzdWx0cworICAgIEFMT0dEKCJyZXBvcnRpbmcgJXp1IGNhbWVyYXMgYXZhaWxhYmxlIiwgaGlkbENhbWVyYXMuc2l6ZSgpKTsKKyAgICBfaGlkbF9jYihoaWRsQ2FtZXJhcyk7CisKKyAgICAvLyBISURMIGNvbnZlbnRpb24gc2F5cyB3ZSByZXR1cm4gVm9pZCBpZiB3ZSBzZW50IG91ciByZXN1bHQgYmFjayB2aWEgY2FsbGJhY2sKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK1JldHVybjxzcDxJRXZzQ2FtZXJhPj4gRXZzRW51bWVyYXRvcjo6b3BlbkNhbWVyYShjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhSWQpIHsKKyAgICBBTE9HRCgib3BlbkNhbWVyYSIpOworCisgICAgLy8gRmluZCB0aGUgbmFtZWQgY2FtZXJhCisgICAgQ2FtZXJhUmVjb3JkICpwUmVjb3JkID0gbnVsbHB0cjsKKyAgICBmb3IgKGF1dG8gJiZjYW0gOiBzQ2FtZXJhTGlzdCkgeworICAgICAgICBpZiAoY2FtLmRlc2MuY2FtZXJhSWQgPT0gY2FtZXJhSWQpIHsKKyAgICAgICAgICAgIC8vIEZvdW5kIGEgbWF0Y2ghCisgICAgICAgICAgICBwUmVjb3JkID0gJmNhbTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gSXMgdGhpcyBhIHJlY29nbml6ZWQgY2FtZXJhIGlkPworICAgIGlmICghcFJlY29yZCkgeworICAgICAgICBBTE9HRSgiUmVxdWVzdGVkIGNhbWVyYSAlcyBub3QgZm91bmQiLCBjYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgLy8gSGFzIHRoaXMgY2FtZXJhIGFscmVhZHkgYmVlbiBpbnN0YW50aWF0ZWQgYnkgYW5vdGhlciBjYWxsZXI/CisgICAgc3A8RXZzQ2FtZXJhPiBwQWN0aXZlQ2FtZXJhID0gcFJlY29yZC0+YWN0aXZlSW5zdGFuY2UucHJvbW90ZSgpOworICAgIGlmIChwQWN0aXZlQ2FtZXJhICE9IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR1coIktpbGxpbmcgcHJldmlvdXMgY2FtZXJhIGJlY2F1c2Ugb2YgbmV3IGNhbGxlciIpOworICAgICAgICBjbG9zZUNhbWVyYShwQWN0aXZlQ2FtZXJhKTsKKyAgICB9CisKKyAgICAvLyBDb25zdHJ1Y3QgYSBjYW1lcmEgaW5zdGFuY2UgZm9yIHRoZSBjYWxsZXIKKyAgICBwQWN0aXZlQ2FtZXJhID0gbmV3IEV2c0NhbWVyYShjYW1lcmFJZC5jX3N0cigpKTsKKyAgICBwUmVjb3JkLT5hY3RpdmVJbnN0YW5jZSA9IHBBY3RpdmVDYW1lcmE7CisgICAgaWYgKHBBY3RpdmVDYW1lcmEgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIGFsbG9jYXRlIG5ldyBFdnNDYW1lcmEgb2JqZWN0IGZvciAlc1xuIiwgY2FtZXJhSWQuY19zdHIoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHBBY3RpdmVDYW1lcmE7Cit9CisKKworUmV0dXJuPHZvaWQ+IEV2c0VudW1lcmF0b3I6OmNsb3NlQ2FtZXJhKGNvbnN0IDo6YW5kcm9pZDo6c3A8SUV2c0NhbWVyYT4mIHBDYW1lcmEpIHsKKyAgICBBTE9HRCgiY2xvc2VDYW1lcmEiKTsKKworICAgIGlmIChwQ2FtZXJhID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIklnbm9yaW5nIGNhbGwgdG8gY2xvc2VDYW1lcmEgd2l0aCBudWxsIGNhbWVyYSBwdHIiKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICAvLyBHZXQgdGhlIGNhbWVyYSBpZCBzbyB3ZSBjYW4gZmluZCBpdCBpbiBvdXIgbGlzdAorICAgIHN0ZDo6c3RyaW5nIGNhbWVyYUlkOworICAgIHBDYW1lcmEtPmdldENhbWVyYUluZm8oWyZjYW1lcmFJZF0oQ2FtZXJhRGVzYyBkZXNjKSB7CisvLyBUT0RPKGIvMzY1MzI3ODApIFNob3VsZCB3ZSBhYmxlIHRvIGp1c3QgdXNlIGEgc2ltcGxlIGFzc2lnbm1lbnQ/CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FtZXJhSWQgPSBkZXNjLmNhbWVyYUlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbWVyYUlkLmFzc2lnbihkZXNjLmNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICk7CisKKyAgICAvLyBGaW5kIHRoZSBuYW1lZCBjYW1lcmEKKyAgICBDYW1lcmFSZWNvcmQgKnBSZWNvcmQgPSBudWxscHRyOworICAgIGZvciAoYXV0byAmJmNhbSA6IHNDYW1lcmFMaXN0KSB7CisgICAgICAgIGlmIChjYW0uZGVzYy5jYW1lcmFJZCA9PSBjYW1lcmFJZCkgeworICAgICAgICAgICAgLy8gRm91bmQgYSBtYXRjaCEKKyAgICAgICAgICAgIHBSZWNvcmQgPSAmY2FtOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJcyB0aGUgZGlzcGxheSBiZWluZyBkZXN0cm95ZWQgYWN0dWFsbHkgdGhlIG9uZSB3ZSB0aGluayBpcyBhY3RpdmU/CisgICAgaWYgKCFwUmVjb3JkKSB7CisgICAgICAgIEFMT0dFKCJBc2tlZCB0byBjbG9zZSBhIGNhbWVyYSB3aG8ncyBuYW1lIGlzbid0IHJlY29nbml6ZWQiKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzcDxFdnNDYW1lcmE+IHBBY3RpdmVDYW1lcmEgPSBwUmVjb3JkLT5hY3RpdmVJbnN0YW5jZS5wcm9tb3RlKCk7CisKKyAgICAgICAgaWYgKHBBY3RpdmVDYW1lcmEgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIlNvbWVob3cgYSBjYW1lcmEgaXMgYmVpbmcgZGVzdHJveWVkIHdoZW4gdGhlIGVudW1lcmF0b3IgZGlkbid0IGtub3cgb25lIGV4aXN0ZWQiKTsKKyAgICAgICAgfSBlbHNlIGlmIChwQWN0aXZlQ2FtZXJhICE9IHBDYW1lcmEpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgY2FtZXJhIHdhcyBhZ2dyZXNzaXZlbHkgcmVvcGVuZWQsIG9ycGhhbmluZyB0aGlzIHByZXZpb3VzIGluc3RhbmNlCisgICAgICAgICAgICBBTE9HVygiSWdub3JpbmcgY2xvc2Ugb2YgcHJldmlvdXNseSBvcnBoYW5lZCBjYW1lcmEgLSB3aHkgZGlkIGEgY2xpZW50IHN0ZWFsPyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gRHJvcCB0aGUgYWN0aXZlIGNhbWVyYQorICAgICAgICAgICAgcEFjdGl2ZUNhbWVyYS0+Zm9yY2VTaHV0ZG93bigpOworICAgICAgICAgICAgcFJlY29yZC0+YWN0aXZlSW5zdGFuY2UgPSBudWxscHRyOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCitSZXR1cm48c3A8SUV2c0Rpc3BsYXk+PiBFdnNFbnVtZXJhdG9yOjpvcGVuRGlzcGxheSgpIHsKKyAgICBBTE9HRCgib3BlbkRpc3BsYXkiKTsKKworICAgIC8vIElmIHdlIGFscmVhZHkgaGF2ZSBhIGRpc3BsYXkgYWN0aXZlLCB0aGVuIHdlIG5lZWQgdG8gc2h1dCBpdCBkb3duIHNvIHdlIGNhbgorICAgIC8vIGdpdmUgZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgbmV3IGNhbGxlci4KKyAgICBzcDxFdnNEaXNwbGF5PiBwQWN0aXZlRGlzcGxheSA9IHNBY3RpdmVEaXNwbGF5LnByb21vdGUoKTsKKyAgICBpZiAocEFjdGl2ZURpc3BsYXkgIT0gbnVsbHB0cikgeworICAgICAgICBBTE9HVygiS2lsbGluZyBwcmV2aW91cyBkaXNwbGF5IGJlY2F1c2Ugb2YgbmV3IGNhbGxlciIpOworICAgICAgICBjbG9zZURpc3BsYXkocEFjdGl2ZURpc3BsYXkpOworICAgIH0KKworICAgIC8vIENyZWF0ZSBhIG5ldyBkaXNwbGF5IGludGVyZmFjZSBhbmQgcmV0dXJuIGl0CisgICAgcEFjdGl2ZURpc3BsYXkgPSBuZXcgRXZzRGlzcGxheSgpOworICAgIHNBY3RpdmVEaXNwbGF5ID0gcEFjdGl2ZURpc3BsYXk7CisKKyAgICBBTE9HRCgiUmV0dXJuaW5nIG5ldyBFdnNEaXNwbGF5IG9iamVjdCAlcCIsIHBBY3RpdmVEaXNwbGF5LmdldCgpKTsKKyAgICByZXR1cm4gcEFjdGl2ZURpc3BsYXk7Cit9CisKKworUmV0dXJuPHZvaWQ+IEV2c0VudW1lcmF0b3I6OmNsb3NlRGlzcGxheShjb25zdCA6OmFuZHJvaWQ6OnNwPElFdnNEaXNwbGF5PiYgcERpc3BsYXkpIHsKKyAgICBBTE9HRCgiY2xvc2VEaXNwbGF5Iik7CisKKyAgICAvLyBEbyB3ZSBzdGlsbCBoYXZlIGEgZGlzcGxheSBvYmplY3Qgd2UgdGhpbmsgc2hvdWxkIGJlIGFjdGl2ZT8KKyAgICBzcDxFdnNEaXNwbGF5PiBwQWN0aXZlRGlzcGxheSA9IHNBY3RpdmVEaXNwbGF5LnByb21vdGUoKTsKKyAgICBpZiAocEFjdGl2ZURpc3BsYXkgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiU29tZWhvdyBhIGRpc3BsYXkgaXMgYmVpbmcgZGVzdHJveWVkIHdoZW4gdGhlIGVudW1lcmF0b3IgZGlkbid0IGtub3cgb25lIGV4aXN0ZWQiKTsKKyAgICB9IGVsc2UgaWYgKHNBY3RpdmVEaXNwbGF5ICE9IHBEaXNwbGF5KSB7CisgICAgICAgIEFMT0dXKCJJZ25vcmluZyBjbG9zZSBvZiBwcmV2aW91c2x5IG9ycGhhbmVkIGRpc3BsYXkgLSB3aHkgZGlkIGEgY2xpZW50IHN0ZWFsPyIpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIERyb3AgdGhlIGFjdGl2ZSBkaXNwbGF5CisgICAgICAgIHBBY3RpdmVEaXNwbGF5LT5mb3JjZVNodXRkb3duKCk7CisgICAgICAgIHNBY3RpdmVEaXNwbGF5ID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK1JldHVybjxEaXNwbGF5U3RhdGU+IEV2c0VudW1lcmF0b3I6OmdldERpc3BsYXlTdGF0ZSgpICB7CisgICAgQUxPR0QoImdldERpc3BsYXlTdGF0ZSIpOworCisgICAgLy8gRG8gd2Ugc3RpbGwgaGF2ZSBhIGRpc3BsYXkgb2JqZWN0IHdlIHRoaW5rIHNob3VsZCBiZSBhY3RpdmU/CisgICAgc3A8SUV2c0Rpc3BsYXk+IHBBY3RpdmVEaXNwbGF5ID0gc0FjdGl2ZURpc3BsYXkucHJvbW90ZSgpOworICAgIGlmIChwQWN0aXZlRGlzcGxheSAhPSBudWxscHRyKSB7CisgICAgICAgIHJldHVybiBwQWN0aXZlRGlzcGxheS0+Z2V0RGlzcGxheVN0YXRlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIERpc3BsYXlTdGF0ZTo6Tk9UX09QRU47CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgZXZzCit9IC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzRW51bWVyYXRvci5oIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzRW51bWVyYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNzBmOWIKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNFbnVtZXJhdG9yLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVVRPTU9USVZFX0VWU19WMV8wX0VWU0NBTUVSQUVOVU1FUkFUT1JfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0FVVE9NT1RJVkVfRVZTX1YxXzBfRVZTQ0FNRVJBRU5VTUVSQVRPUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRW51bWVyYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmEuaD4KKworI2luY2x1ZGUgPGxpc3Q+CisKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSBldnMgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworCitjbGFzcyBFdnNDYW1lcmE7ICAgIC8vIGZyb20gRXZzQ2FtZXJhLmgKK2NsYXNzIEV2c0Rpc3BsYXk7ICAgLy8gZnJvbSBFdnNEaXNwbGF5LmgKKworCitjbGFzcyBFdnNFbnVtZXJhdG9yIDogcHVibGljIElFdnNFbnVtZXJhdG9yIHsKK3B1YmxpYzoKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6ZXZzOjpWMV8wOjpJRXZzRW51bWVyYXRvciBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldENhbWVyYUxpc3QoZ2V0Q2FtZXJhTGlzdF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxzcDxJRXZzQ2FtZXJhPj4gb3BlbkNhbWVyYShjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhSWQpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbG9zZUNhbWVyYShjb25zdCA6OmFuZHJvaWQ6OnNwPElFdnNDYW1lcmE+JiBjYXJDYW1lcmEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUV2c0Rpc3BsYXk+PiBvcGVuRGlzcGxheSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY2xvc2VEaXNwbGF5KGNvbnN0IDo6YW5kcm9pZDo6c3A8SUV2c0Rpc3BsYXk+JiBkaXNwbGF5KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPERpc3BsYXlTdGF0ZT4gZ2V0RGlzcGxheVN0YXRlKCkgIG92ZXJyaWRlOworCisgICAgLy8gSW1wbGVtZW50YXRpb24gZGV0YWlscworICAgIEV2c0VudW1lcmF0b3IoKTsKKworcHJpdmF0ZToKKyAgICAvLyBOT1RFOiAgQWxsIG1lbWJlcnMgdmFsdWVzIGFyZSBzdGF0aWMgc28gdGhhdCBhbGwgY2xpZW50cyBvcGVyYXRlIG9uIHRoZSBzYW1lIHN0YXRlCisgICAgLy8gICAgICAgIFRoYXQgaXMgdG8gc2F5LCB0aGlzIGlzIGVmZmVjdGl2ZWx5IGEgc2luZ2xldG9uIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCBISURMCisgICAgLy8gICAgICAgIGNvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2UgZm9yIGVhY2ggY2xpZW50LgorICAgIHN0cnVjdCBDYW1lcmFSZWNvcmQgeworICAgICAgICBDYW1lcmFEZXNjICAgICAgICAgIGRlc2M7CisgICAgICAgIHdwPEV2c0NhbWVyYT4gICAgICAgYWN0aXZlSW5zdGFuY2U7CisKKyAgICAgICAgQ2FtZXJhUmVjb3JkKGNvbnN0IGNoYXIgKmNhbWVyYUlkKSA6IGRlc2MoKSB7IGRlc2MuY2FtZXJhSWQgPSBjYW1lcmFJZDsgfQorICAgIH07CisgICAgc3RhdGljIHN0ZDo6bGlzdDxDYW1lcmFSZWNvcmQ+IHNDYW1lcmFMaXN0OworCisgICAgc3RhdGljIHdwPEV2c0Rpc3BsYXk+ICAgICAgICAgIHNBY3RpdmVEaXNwbGF5OyAvLyBXZWFrIHBvaW50ZXIuIE9iamVjdCBkZXN0cnVjdHMgaWYgY2xpZW50IGRpZXMuCit9OworCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgZXZzCit9IC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVUT01PVElWRV9FVlNfVjFfMF9FVlNDQU1FUkFFTlVNRVJBVE9SX0gKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L1NlcnZpY2VOYW1lcy5oIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvU2VydmljZU5hbWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDIwYTM3ZgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L1NlcnZpY2VOYW1lcy5oCkBAIC0wLDAgKzEsMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitjb25zdCBzdGF0aWMgY2hhciBrRW51bWVyYXRvclNlcnZpY2VOYW1lW10gPSAiRXZzRW51bWVyYXRvckh3LU1vY2siOwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAtc2VydmljZS5yYyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk1N2VjZgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGV2cy1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIGNhbWVyYXNlcnZlcgorICAgIGdyb3VwIGNhbWVyYQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDE4MWI5Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KKyNpbmNsdWRlIDx1dGlscy9TdHJvbmdQb2ludGVyLmg+CisKKyNpbmNsdWRlICJTZXJ2aWNlTmFtZXMuaCIKKyNpbmNsdWRlICJFdnNFbnVtZXJhdG9yLmgiCisjaW5jbHVkZSAiRXZzRGlzcGxheS5oIgorCisKKy8vIGxpYmhpZGw6Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKKworLy8gR2VuZXJhdGVkIEhJREwgZmlsZXMKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjpldnM6OlYxXzA6OklFdnNFbnVtZXJhdG9yOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OmV2czo6VjFfMDo6SUV2c0Rpc3BsYXk7CisKKy8vIFRoZSBuYW1lc3BhY2UgaW4gd2hpY2ggYWxsIG91ciBpbXBsZW1lbnRhdGlvbiBjb2RlIGxpdmVzCit1c2luZyBuYW1lc3BhY2UgYW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OmV2czo6VjFfMDo6aW1wbGVtZW50YXRpb247Cit1c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKKworCitpbnQgbWFpbigpIHsKKyAgICBBTE9HSSgiRVZTIEhhcmR3YXJlIEVudW1lcmF0b3Igc2VydmljZSBpcyBzdGFydGluZyIpOworICAgIGFuZHJvaWQ6OnNwPElFdnNFbnVtZXJhdG9yPiBzZXJ2aWNlID0gbmV3IEV2c0VudW1lcmF0b3IoKTsKKworICAgIGNvbmZpZ3VyZVJwY1RocmVhZHBvb2woMSwgdHJ1ZSAvKiBjYWxsZXJXaWxsSm9pbiAqLyk7CisKKyAgICAvLyBSZWdpc3RlciBvdXIgc2VydmljZSAtLSBpZiBzb21lYm9keSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgYnkgb3VyIG5hbWUsCisgICAgLy8gdGhleSB3aWxsIGJlIGtpbGxlZCAodGhlaXIgdGhyZWFkIHBvb2wgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24pLgorICAgIHN0YXR1c190IHN0YXR1cyA9IHNlcnZpY2UtPnJlZ2lzdGVyQXNTZXJ2aWNlKGtFbnVtZXJhdG9yU2VydmljZU5hbWUpOworICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgQUxPR0QoIiVzIGlzIHJlYWR5LiIsIGtFbnVtZXJhdG9yU2VydmljZU5hbWUpOworICAgICAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgcmVnaXN0ZXIgc2VydmljZSAlcyAoJWQpLiIsIGtFbnVtZXJhdG9yU2VydmljZU5hbWUsIHN0YXR1cyk7CisgICAgfQorCisgICAgLy8gSW4gbm9ybWFsIG9wZXJhdGlvbiwgd2UgZG9uJ3QgZXhwZWN0IHRoZSB0aHJlYWQgcG9vbCB0byBleGl0CisgICAgQUxPR0UoIkVWUyBIYXJkd2FyZSBFbnVtZXJhdG9yIGlzIHNodXR0aW5nIGRvd24iKTsKKyAgICByZXR1cm4gMTsKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC90eXBlcy5oYWwgYi9hdXRvbW90aXZlL2V2cy8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjZWJmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOworCisKKy8qKgorICogU3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIGJhc2ljIHByb3BlcnRpZXMgb2YgYW4gRVZTIGNhbWVyYQorICoKKyAqIFRoZSBIQUwgaXMgcmVzcG9uc2libGUgZm9yIGZpbGxpbmcgb3V0IHRoaXMgc3RydWN0dXJlIGZvciBlYWNoCisgKiBFVlMgY2FtZXJhIGluIHRoZSBzeXN0ZW0uCisgKi8KK3N0cnVjdCBDYW1lcmFEZXNjIHsKKyAgICBzdHJpbmcgICAgICBjYW1lcmFJZDsKKyAgICB1aW50MzJfdCAgICB2ZW5kb3JGbGFnczsgICAgLy8gT3BhcXVlIHZhbHVlIGZyb20gZHJpdmVyCit9OworCisKKy8qKgorICogU3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIGJhc2ljIHByb3BlcnRpZXMgb2YgYW4gRVZTIGRpc3BsYXkKKyAqCisgKiBUaGUgSEFMIGlzIHJlc3BvbnNpYmxlIGZvciBmaWxsaW5nIG91dCB0aGlzIHN0cnVjdHVyZSB0byBkZXNjcmliZQorICogdGhlIEVWUyBkaXNwbGF5LiBBcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIHRoaXMgbWF5IGJlIGEgcGh5c2ljYWwKKyAqIGRpc3BsYXkgb3IgYSB2aXJ0dWFsIGRpc3BsYXkgdGhhdCBpcyBvdmVybGFpZCBvciBtaXhlZCB3aXRoIGFub3RoZXIKKyAqIHByZXNlbnRhdGlvbiBkZXZpY2UuCisgKi8KK3N0cnVjdCBEaXNwbGF5RGVzYyB7CisgICAgc3RyaW5nICAgICAgZGlzcGxheUlkOworICAgIHVpbnQzMl90ICAgIHZlbmRvckZsYWdzOyAgICAvLyBPcGFxdWUgdmFsdWUgZnJvbSBkcml2ZXIKK307CisKKworLyoqCisgKiBTdHJ1Y3R1cmUgcmVwcmVzZW50aW5nIGFuIGltYWdlIGJ1ZmZlciB0aHJvdWdoIG91ciBBUElzCisgKgorICogSW4gYWRkaXRpb24gdG8gdGhlIGhhbmRsZSB0byB0aGUgZ3JhcGhpY3MgbWVtb3J5LCB3ZSBuZWVkIHRvIHJldGFpbgorICogdGhlIHByb3BlcnRpZXMgb2YgdGhlIGJ1ZmZlciBmb3IgZWFzeSByZWZlcmVuY2UgYW5kIHJlY29uc3RydWN0aW9uIG9mCisgKiBhbiBBTmF0aXZlV2luZG93QnVmZmVyIG9iamVjdCBvbiB0aGUgcmVtb3RlIHNpZGUgb2YgQVBJIGNhbGxzLgorICogKE5vdCBsZWFzdCBiZWNhdXNlIE9wZW5HTCBleHBlY3QgYW4gQU5hdGl2ZVdpbmRvd0J1ZmZlciogZm9yIHVzIGFzIGEKKyAqIHRleHR1cmUgdmlhIGVnbENyZWF0ZUltYWdlS0hSKCkuCisgKiBTZWUgYWxzbyByZWxhdGVkIHR5cGVzIGZyb20gYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb24KKyAqIFRPRE86ICBiLzM0NzIyNTA4ICBSZXZpZXcgZGV0YWlscyBvZiBpbnRlcmFjdGlvbiBvZiB0aGlzIHN0cnVjdHVyZSB3aXRoIGdyYWxsb2MgYW5kIE9wZW5HTC4KKyAqICAgICAgICBTcGVjaWZpY2FsbHkgY29uc2lkZXIgaWYgZm9ybWF0IGFuZC9vciB1c2FnZSBzaG91bGQgYmVjb21lIGVudW1lcmF0ZWQgdHlwZXMuCisgKi8KK3N0cnVjdCBCdWZmZXJEZXNjIHsKKyAgICB1aW50MzJfdCAgICB3aWR0aDsgICAgICAvLyBVbml0cyBvZiBwaXhlbHMKKyAgICB1aW50MzJfdCAgICBoZWlnaHQ7ICAgICAvLyBVbml0cyBvZiBwaXhlbHMKKyAgICB1aW50MzJfdCAgICBzdHJpZGU7ICAgICAvLyBVbml0cyBvZiBwaXhlbHMgdG8gbWF0Y2ggZ3JhbGxvYworICAgIHVpbnQzMl90ICAgIHBpeGVsU2l6ZTsgIC8vIFVuaXRzIG9mIGJ5dGVzCisgICAgdWludDMyX3QgICAgZm9ybWF0OyAgICAgLy8gTWF5IGNvbnRhaW4gdmFsdWVzIGZyb20gYW5kcm9pZF9waXhlbF9mb3JtYXRfdAorICAgIHVpbnQzMl90ICAgIHVzYWdlOyAgICAgIC8vIE1heSBjb250YWluIHZhbHVlcyBmcm9tIGZyb20gR3JhbGxvYy5oCisgICAgdWludDMyX3QgICAgYnVmZmVySWQ7ICAgLy8gT3BhcXVlIHZhbHVlIGZyb20gZHJpdmVyCisgICAgaGFuZGxlICAgICAgbWVtSGFuZGxlOyAgLy8gZ3JhbGxvYyBtZW1vcnkgYnVmZmVyIGhhbmRsZQorfTsKKworCisvKioKKyAqIFN0YXRlcyBmb3IgY29udHJvbCBvZiB0aGUgRVZTIGRpc3BsYXkKKyAqCisgKiBUaGUgRGlzcGxheUluZm8gc3RydWN0dXJlIGRlc2NyaWJlcyB0aGUgYmFzaWMgcHJvcGVydGllcyBvZiBhbiBFVlMgZGlzcGxheS4gQW55IEVWUworICogaW1wbGVtZW50YXRpb24gaXMgcmVxdWlyZWQgdG8gaGF2ZSBvbmUuIFRoZSBIQUwgaXMgcmVzcG9uc2libGUgZm9yIGZpbGxpbmcgb3V0IHRoaXMKKyAqIHN0cnVjdHVyZSB0byBkZXNjcmliZSB0aGUgRVZTIGRpc3BsYXkuIEFzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwgdGhpcyBtYXkgYmUgYQorICogcGh5c2ljYWwgZGlzcGxheSBvciBhIHZpcnR1YWwgZGlzcGxheSB0aGF0IGlzIG92ZXJsYWlkIG9yIG1peGVkIHdpdGggYW5vdGhlcgorICogcHJlc2VudGF0aW9uIGRldmljZS4KKyAqLworZW51bSBEaXNwbGF5U3RhdGUgOiB1aW50MzJfdCB7CisgICAgTk9UX09QRU4gPSAwLCAgICAgICAgICAgLy8gRGlzcGxheSBoYXMgbm90IGJlZW4gcmVxdWVzdGVkIGJ5IGFueSBhcHBsaWNhdGlvbgorICAgIE5PVF9WSVNJQkxFLCAgICAgICAgICAgIC8vIERpc3BsYXkgaXMgaW5oaWJpdGVkCisgICAgVklTSUJMRV9PTl9ORVhUX0ZSQU1FLCAgLy8gV2lsbCBiZWNvbWUgdmlzaWJsZSB3aXRoIG5leHQgZnJhbWUKKyAgICBWSVNJQkxFLCAgICAgICAgICAgICAgICAvLyBEaXNwbGF5IGlzIGN1cnJlbnRseSBhY3RpdmUKKyAgICBERUFELCAgICAgICAgICAgICAgICAgICAvLyBEcml2ZXIgaXMgaW4gYW4gdW5kZWZpbmVkIHN0YXRlLiAgSW50ZXJmYWNlIHNob3VsZCBiZSBjbG9zZWQuCisgICAgTlVNX1NUQVRFUyAgICAgICAgICAgICAgLy8gTXVzdCBiZSBsYXN0Cit9OworCisKKy8qKiBFcnJvciBjb2RlcyB1c2VkIGluIEVWUyBIQUwgaW50ZXJmYWNlLiAqLworZW51bSBFdnNSZXN1bHQgOiB1aW50MzJfdCB7CisgICAgT0sgPSAwLAorICAgIElOVkFMSURfQVJHLAorICAgIFNUUkVBTV9BTFJFQURZX1JVTk5JTkcsCisgICAgQlVGRkVSX05PVF9BVkFJTEFCTEUsCisgICAgT1dORVJTSElQX0xPU1QsCisgICAgVU5ERVJMWUlOR19TRVJWSUNFX0VSUk9SLAorfTsKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg2ZTliYwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNFdnNWMV8wVGFyZ2V0IiwKKworICAgIHNyY3M6IFsKKyAgICAgICAgIlZ0c0V2c1YxXzBUYXJnZXRUZXN0LmNwcCIsCisgICAgICAgICJGcmFtZUhhbmRsZXIuY3BwIiwKKyAgICAgICAgIkZvcm1hdENvbnZlcnQuY3BwIgorICAgIF0sCisKKyAgICBkZWZhdWx0czogWworICAgICAgICAiaGlkbF9kZWZhdWx0cyIsCisgICAgXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGlidWkiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgXSwKKworICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CisKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9Gb3JtYXRDb252ZXJ0LmNwcCBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9Gb3JtYXRDb252ZXJ0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNWNjOGVlCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0Zvcm1hdENvbnZlcnQuY3BwCkBAIC0wLDAgKzEsMTczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWdHNIYWxFdnNUZXN0IgorCisjaW5jbHVkZSAiRm9ybWF0Q29udmVydC5oIgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPiAgICAvLyBzdGQ6Om1pbgorCisKKy8vIFJvdW5kIHVwIHRvIHRoZSBuZWFyZXN0IG11bHRpcGxlIG9mIHRoZSBnaXZlbiBhbGlnbm1lbnQgdmFsdWUKK3RlbXBsYXRlPHVuc2lnbmVkIGFsaWdubWVudD4KK2ludCBhbGlnbihpbnQgdmFsdWUpIHsKKyAgICBzdGF0aWNfYXNzZXJ0KChhbGlnbm1lbnQgJiYgIShhbGlnbm1lbnQgJiAoYWxpZ25tZW50IC0gMSkpKSwKKyAgICAgICAgICAgICAgICAgICJhbGlnbm1lbnQgbXVzdCBiZSBhIHBvd2VyIG9mIDIiKTsKKworICAgIHVuc2lnbmVkIG1hc2sgPSBhbGlnbm1lbnQgLSAxOworICAgIHJldHVybiAodmFsdWUgKyBtYXNrKSAmIH5tYXNrOworfQorCisKKy8vIExpbWl0IHRoZSBnaXZlbiB2YWx1ZSB0byB0aGUgcHJvdmlkZWQgcmFuZ2UuICA6KQorc3RhdGljIGlubGluZSBmbG9hdCBjbGFtcChmbG9hdCB2LCBmbG9hdCBtaW4sIGZsb2F0IG1heCkgeworICAgIGlmICh2IDwgbWluKSByZXR1cm4gbWluOworICAgIGlmICh2ID4gbWF4KSByZXR1cm4gbWF4OworICAgIHJldHVybiB2OworfQorCisKK3N0YXRpYyB1aW50MzJfdCB5dXZUb1JnYngoY29uc3QgdW5zaWduZWQgY2hhciBZLCBjb25zdCB1bnNpZ25lZCBjaGFyIFVpbiwgY29uc3QgdW5zaWduZWQgY2hhciBWaW4pIHsKKyAgICAvLyBEb24ndCB1c2UgdGhpcyBpZiB5b3Ugd2FudCB0byBzZWUgdGhlIGJlc3QgcGVyZm9ybWFuY2UuICA6KQorICAgIC8vIEJldHRlciB0byBkbyB0aGlzIGluIGEgcGl4ZWwgc2hhZGVyIGlmIHdlIHJlYWxseSBoYXZlIHRvLCBidXQgb24gYWN0dWFsCisgICAgLy8gZW1iZWRkZWQgaGFyZHdhcmUgd2UgZXhwZWN0IHRvIGJlIGFibGUgdG8gdGV4dHVyZSBkaXJlY3RseSBmcm9tIHRoZSBZVVYgZGF0YQorICAgIGZsb2F0IFUgPSBVaW4gLSAxMjguMGY7CisgICAgZmxvYXQgViA9IFZpbiAtIDEyOC4wZjsKKworICAgIGZsb2F0IFJmID0gWSArIDEuMTQwZipWOworICAgIGZsb2F0IEdmID0gWSAtIDAuMzk1ZipVIC0gMC41ODFmKlY7CisgICAgZmxvYXQgQmYgPSBZICsgMi4wMzJmKlU7CisgICAgdW5zaWduZWQgY2hhciBSID0gKHVuc2lnbmVkIGNoYXIpY2xhbXAoUmYsIDAuMGYsIDI1NS4wZik7CisgICAgdW5zaWduZWQgY2hhciBHID0gKHVuc2lnbmVkIGNoYXIpY2xhbXAoR2YsIDAuMGYsIDI1NS4wZik7CisgICAgdW5zaWduZWQgY2hhciBCID0gKHVuc2lnbmVkIGNoYXIpY2xhbXAoQmYsIDAuMGYsIDI1NS4wZik7CisKKyAgICByZXR1cm4gKFIgICAgICApIHwKKyAgICAgICAgICAgKEcgPDwgIDgpIHwKKyAgICAgICAgICAgKEIgPDwgMTYpIHwKKyAgICAgICAgICAgMHhGRjAwMDAwMDsgIC8vIEZpbGwgdGhlIGFscGhhIGNoYW5uZWwgd2l0aCBvbmVzCit9CisKKwordm9pZCBjb3B5TlYyMXRvUkdCMzIodW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QqIHNyYywKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBkc3QsIHVuc2lnbmVkIGRzdFN0cmlkZVBpeGVscykKK3sKKyAgICAvLyBUaGUgTlYyMSBmb3JtYXQgcHJvdmlkZXMgYSBZIGFycmF5IG9mIDhiaXQgdmFsdWVzLCBmb2xsb3dlZCBieSBhIDEvMiB4IDEvMiBpbnRlcmxlYXZlZAorICAgIC8vIFUvViBhcnJheS4gIEl0IGFzc3VtZXMgYW4gZXZlbiB3aWR0aCBhbmQgaGVpZ2h0IGZvciB0aGUgb3ZlcmFsbCBpbWFnZSwgYW5kIGEgaG9yaXpvbnRhbAorICAgIC8vIHN0cmlkZSB0aGF0IGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YgMTYgYnl0ZXMgZm9yIGJvdGggdGhlIFkgYW5kIFVWIGFycmF5cy4KKyAgICB1bnNpZ25lZCBzdHJpZGVMdW0gPSBhbGlnbjwxNj4od2lkdGgpOworICAgIHVuc2lnbmVkIHNpemVZID0gc3RyaWRlTHVtICogaGVpZ2h0OworICAgIHVuc2lnbmVkIHN0cmlkZUNvbG9yID0gc3RyaWRlTHVtOyAgIC8vIDEvMiB0aGUgc2FtcGxlcywgYnV0IHR3byBpbnRlcmxlYXZlZCBjaGFubmVscworICAgIHVuc2lnbmVkIG9mZnNldFVWID0gc2l6ZVk7CisKKyAgICB1aW50OF90KiBzcmNZID0gc3JjOworICAgIHVpbnQ4X3QqIHNyY1VWID0gc3JjK29mZnNldFVWOworCisgICAgZm9yICh1bnNpZ25lZCByID0gMDsgciA8IGhlaWdodDsgcisrKSB7CisgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSdyZSB3YWxraW5nIHRoZSBzYW1lIFVWIHJvdyB0d2ljZSBmb3IgZXZlbi9vZGQgbHVtaW5hbmNlIHJvd3MKKyAgICAgICAgdWludDhfdCogcm93WSAgPSBzcmNZICArIHIqc3RyaWRlTHVtOworICAgICAgICB1aW50OF90KiByb3dVViA9IHNyY1VWICsgKHIvMiAqIHN0cmlkZUNvbG9yKTsKKworICAgICAgICB1aW50MzJfdCogcm93RGVzdCA9IGRzdCArIHIqZHN0U3RyaWRlUGl4ZWxzOworCisgICAgICAgIGZvciAodW5zaWduZWQgYyA9IDA7IGMgPCB3aWR0aDsgYysrKSB7CisgICAgICAgICAgICB1bnNpZ25lZCB1Q29sID0gKGMgJiB+MSk7ICAgLy8gdUNvbCBpcyBhbHdheXMgZXZlbiBhbmQgcmVwZWF0cyAxOjIgd2l0aCBZIHZhbHVlcworICAgICAgICAgICAgdW5zaWduZWQgdkNvbCA9IHVDb2wgfCAxOyAgIC8vIHZDb2wgaXMgYWx3YXlzIG9kZAorICAgICAgICAgICAgcm93RGVzdFtjXSA9IHl1dlRvUmdieChyb3dZW2NdLCByb3dVVlt1Q29sXSwgcm93VVZbdkNvbF0pOworICAgICAgICB9CisgICAgfQorfQorCisKK3ZvaWQgY29weVlWMTJ0b1JHQjMyKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICB1aW50OF90KiBzcmMsCisgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogZHN0LCB1bnNpZ25lZCBkc3RTdHJpZGVQaXhlbHMpCit7CisgICAgLy8gVGhlIFlWMTIgZm9ybWF0IHByb3ZpZGVzIGEgWSBhcnJheSBvZiA4Yml0IHZhbHVlcywgZm9sbG93ZWQgYnkgYSAxLzIgeCAxLzIgVSBhcnJheSwgZm9sbG93ZWQKKyAgICAvLyBieSBhbm90aGVyIDEvMiB4IDEvMiBWIGFycmF5LiAgSXQgYXNzdW1lcyBhbiBldmVuIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBvdmVyYWxsIGltYWdlLAorICAgIC8vIGFuZCBhIGhvcml6b250YWwgc3RyaWRlIHRoYXQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiAxNiBieXRlcyBmb3IgZWFjaCBvZiB0aGUgWSwgVSwKKyAgICAvLyBhbmQgViBhcnJheXMuCisgICAgdW5zaWduZWQgc3RyaWRlTHVtID0gYWxpZ248MTY+KHdpZHRoKTsKKyAgICB1bnNpZ25lZCBzaXplWSA9IHN0cmlkZUx1bSAqIGhlaWdodDsKKyAgICB1bnNpZ25lZCBzdHJpZGVDb2xvciA9IGFsaWduPDE2PihzdHJpZGVMdW0vMik7CisgICAgdW5zaWduZWQgc2l6ZUNvbG9yID0gc3RyaWRlQ29sb3IgKiBoZWlnaHQvMjsKKyAgICB1bnNpZ25lZCBvZmZzZXRVID0gc2l6ZVk7CisgICAgdW5zaWduZWQgb2Zmc2V0ViA9IHNpemVZICsgc2l6ZUNvbG9yOworCisgICAgdWludDhfdCogc3JjWSA9IHNyYzsKKyAgICB1aW50OF90KiBzcmNVID0gc3JjK29mZnNldFU7CisgICAgdWludDhfdCogc3JjViA9IHNyYytvZmZzZXRWOworCisgICAgZm9yICh1bnNpZ25lZCByID0gMDsgciA8IGhlaWdodDsgcisrKSB7CisgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSdyZSB3YWxraW5nIHRoZSBzYW1lIFUgYW5kIFYgcm93cyB0d2ljZSBmb3IgZXZlbi9vZGQgbHVtaW5hbmNlIHJvd3MKKyAgICAgICAgdWludDhfdCogcm93WSA9IHNyY1kgKyByKnN0cmlkZUx1bTsKKyAgICAgICAgdWludDhfdCogcm93VSA9IHNyY1UgKyAoci8yICogc3RyaWRlQ29sb3IpOworICAgICAgICB1aW50OF90KiByb3dWID0gc3JjViArIChyLzIgKiBzdHJpZGVDb2xvcik7CisKKyAgICAgICAgdWludDMyX3QqIHJvd0Rlc3QgPSBkc3QgKyByKmRzdFN0cmlkZVBpeGVsczsKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGMgPSAwOyBjIDwgd2lkdGg7IGMrKykgeworICAgICAgICAgICAgcm93RGVzdFtjXSA9IHl1dlRvUmdieChyb3dZW2NdLCByb3dVW2NdLCByb3dWW2NdKTsKKyAgICAgICAgfQorICAgIH0KK30KKworCit2b2lkIGNvcHlZVVlWdG9SR0IzMih1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgdWludDhfdCogc3JjLCB1bnNpZ25lZCBzcmNTdHJpZGVQaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogZHN0LCB1bnNpZ25lZCBkc3RTdHJpZGVQaXhlbHMpCit7CisgICAgdWludDMyX3QqIHNyY1dvcmRzID0gKHVpbnQzMl90KilzcmM7CisKKyAgICBjb25zdCBpbnQgc3JjUm93UGFkZGluZzMyID0gc3JjU3RyaWRlUGl4ZWxzLzIgLSB3aWR0aC8yOyAgLy8gMiBieXRlcyBwZXIgcGl4ZWwsIDQgYnl0ZXMgcGVyIHdvcmQKKyAgICBjb25zdCBpbnQgZHN0Um93UGFkZGluZzMyID0gZHN0U3RyaWRlUGl4ZWxzICAgLSB3aWR0aDsgICAgLy8gNCBieXRlcyBwZXIgcGl4ZWwsIDQgYnl0ZXMgcGVyIHdvcmQKKworICAgIGZvciAodW5zaWduZWQgciA9IDA7IHIgPCBoZWlnaHQ7IHIrKykgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGMgPSAwOyBjIDwgd2lkdGgvMjsgYysrKSB7CisgICAgICAgICAgICAvLyBOb3RlOiAgd2UncmUgd2Fsa2luZyB0d28gcGl4ZWxzIGF0IGEgdGltZSBoZXJlIChldmVuL29kZCkKKyAgICAgICAgICAgIHVpbnQzMl90IHNyY1BpeGVsID0gKnNyY1dvcmRzKys7CisKKyAgICAgICAgICAgIHVpbnQ4X3QgWTEgPSAoc3JjUGl4ZWwpICAgICAgICYgMHhGRjsKKyAgICAgICAgICAgIHVpbnQ4X3QgVSAgPSAoc3JjUGl4ZWwgPj4gOCkgICYgMHhGRjsKKyAgICAgICAgICAgIHVpbnQ4X3QgWTIgPSAoc3JjUGl4ZWwgPj4gMTYpICYgMHhGRjsKKyAgICAgICAgICAgIHVpbnQ4X3QgViAgPSAoc3JjUGl4ZWwgPj4gMjQpICYgMHhGRjsKKworICAgICAgICAgICAgLy8gT24gdGhlIFJHQiBvdXRwdXQsIHdlJ3JlIHdyaXRpbmcgb25lIHBpeGVsIGF0IGEgdGltZQorICAgICAgICAgICAgKihkc3QrMCkgPSB5dXZUb1JnYngoWTEsIFUsIFYpOworICAgICAgICAgICAgKihkc3QrMSkgPSB5dXZUb1JnYngoWTIsIFUsIFYpOworICAgICAgICAgICAgZHN0ICs9IDI7CisgICAgICAgIH0KKworICAgICAgICAvLyBTa2lwIG92ZXIgYW55IGV4dHJhIGRhdGEgb3IgZW5kIG9mIHJvdyBhbGlnbm1lbnQgcGFkZGluZworICAgICAgICBzcmNXb3JkcyArPSBzcmNSb3dQYWRkaW5nMzI7CisgICAgICAgIGRzdCArPSBkc3RSb3dQYWRkaW5nMzI7CisgICAgfQorfQorCisKK3ZvaWQgY29weU1hdGNoZWRJbnRlcmxlYXZlZEZvcm1hdHModW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogc3JjLCB1bnNpZ25lZCBzcmNTdHJpZGVQaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGRzdCwgdW5zaWduZWQgZHN0U3RyaWRlUGl4ZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBwaXhlbFNpemUpIHsKKyAgICBmb3IgKHVuc2lnbmVkIHJvdyA9IDA7IHJvdyA8IGhlaWdodDsgcm93KyspIHsKKyAgICAgICAgLy8gQ29weSB0aGUgZW50aXJlIHJvdyBvZiBwaXhlbCBkYXRhCisgICAgICAgIG1lbWNweShkc3QsIHNyYywgd2lkdGggKiBwaXhlbFNpemUpOworCisgICAgICAgIC8vIEFkdmFuY2UgdG8gdGhlIG5leHQgcm93IChrZWVwaW5nIGluIG1pbmQgdGhhdCBzdHJpZGUgaGVyZSBpcyBpbiB1bml0cyBvZiBwaXhlbHMpCisgICAgICAgIHNyYyA9ICh1aW50OF90KilzcmMgKyBzcmNTdHJpZGVQaXhlbHMgKiBwaXhlbFNpemU7CisgICAgICAgIGRzdCA9ICh1aW50OF90Kilkc3QgKyBkc3RTdHJpZGVQaXhlbHMgKiBwaXhlbFNpemU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0Zvcm1hdENvbnZlcnQuaCBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9Gb3JtYXRDb252ZXJ0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZmMWVlYwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9Gb3JtYXRDb252ZXJ0LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgRVZTX1ZUU19GT1JNQVRDT05WRVJUX0gKKyNkZWZpbmUgRVZTX1ZUU19GT1JNQVRDT05WRVJUX0gKKworI2luY2x1ZGUgPHF1ZXVlPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisKKy8vIEdpdmVuIGFuIGltYWdlIGJ1ZmZlciBpbiBOVjIxIGZvcm1hdCAoSEFMX1BJWEVMX0ZPUk1BVF9ZQ1JDQl80MjBfU1ApLCBvdXRwdXQgMzJiaXQgUkdCeCB2YWx1ZXMuCisvLyBUaGUgTlYyMSBmb3JtYXQgcHJvdmlkZXMgYSBZIGFycmF5IG9mIDhiaXQgdmFsdWVzLCBmb2xsb3dlZCBieSBhIDEvMiB4IDEvMiBpbnRlcmxlYXZlZAorLy8gVS9WIGFycmF5LiAgSXQgYXNzdW1lcyBhbiBldmVuIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBvdmVyYWxsIGltYWdlLCBhbmQgYSBob3Jpem9udGFsCisvLyBzdHJpZGUgdGhhdCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIDE2IGJ5dGVzIGZvciBib3RoIHRoZSBZIGFuZCBVViBhcnJheXMuCit2b2lkIGNvcHlOVjIxdG9SR0IzMih1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgdWludDhfdCogc3JjLAorICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGRzdCwgdW5zaWduZWQgZHN0U3RyaWRlUGl4ZWxzKTsKKworCisvLyBHaXZlbiBhbiBpbWFnZSBidWZmZXIgaW4gWVYxMiBmb3JtYXQgKEhBTF9QSVhFTF9GT1JNQVRfWVYxMiksIG91dHB1dCAzMmJpdCBSR0J4IHZhbHVlcy4KKy8vIFRoZSBZVjEyIGZvcm1hdCBwcm92aWRlcyBhIFkgYXJyYXkgb2YgOGJpdCB2YWx1ZXMsIGZvbGxvd2VkIGJ5IGEgMS8yIHggMS8yIFUgYXJyYXksIGZvbGxvd2VkCisvLyBieSBhbm90aGVyIDEvMiB4IDEvMiBWIGFycmF5LiAgSXQgYXNzdW1lcyBhbiBldmVuIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBvdmVyYWxsIGltYWdlLAorLy8gYW5kIGEgaG9yaXpvbnRhbCBzdHJpZGUgdGhhdCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIDE2IGJ5dGVzIGZvciBlYWNoIG9mIHRoZSBZLCBVLAorLy8gYW5kIFYgYXJyYXlzLgordm9pZCBjb3B5WVYxMnRvUkdCMzIodW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QqIHNyYywKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBkc3QsIHVuc2lnbmVkIGRzdFN0cmlkZVBpeGVscyk7CisKKworLy8gR2l2ZW4gYW4gaW1hZ2UgYnVmZmVyIGluIFlVWVYgZm9ybWF0IChIQUxfUElYRUxfRk9STUFUX1lDQkNSXzQyMl9JKSwgb3V0cHV0IDMyYml0IFJHQnggdmFsdWVzLgorLy8gVGhlIE5WMjEgZm9ybWF0IHByb3ZpZGVzIGEgWSBhcnJheSBvZiA4Yml0IHZhbHVlcywgZm9sbG93ZWQgYnkgYSAxLzIgeCAxLzIgaW50ZXJsZWF2ZWQKKy8vIFUvViBhcnJheS4gIEl0IGFzc3VtZXMgYW4gZXZlbiB3aWR0aCBhbmQgaGVpZ2h0IGZvciB0aGUgb3ZlcmFsbCBpbWFnZSwgYW5kIGEgaG9yaXpvbnRhbAorLy8gc3RyaWRlIHRoYXQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiAxNiBieXRlcyBmb3IgYm90aCB0aGUgWSBhbmQgVVYgYXJyYXlzLgordm9pZCBjb3B5WVVZVnRvUkdCMzIodW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QqIHNyYywgdW5zaWduZWQgc3JjU3RyaWRlQnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogZHN0LCB1bnNpZ25lZCBkc3RTdHJpZGVCeXRlcyk7CisKKworLy8gR2l2ZW4gYW4gc2ltcGxlIHJlY3Rhbmd1bGFyIGltYWdlIGJ1ZmZlciB3aXRoIGFuIGludGVnZXIgbnVtYmVyIG9mIGJ5dGVzIHBlciBwaXhlbCwKKy8vIGNvcHkgdGhlIHBpeGVsIHZhbHVlcyBpbnRvIGEgbmV3IHJlY3Rhbmd1bGFyIGJ1ZmZlciAocG90ZW50aWFsbHkgd2l0aCBhIGRpZmZlcmVudCBzdHJpZGUpLgorLy8gVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB0byBjb3B5IFJHQnggZGF0YSBpbnRvIGFuIFJHQnggb3V0cHV0IGJ1ZmZlci4KK3ZvaWQgY29weU1hdGNoZWRJbnRlcmxlYXZlZEZvcm1hdHModW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogc3JjLCB1bnNpZ25lZCBzcmNTdHJpZGVQaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGRzdCwgdW5zaWduZWQgZHN0U3RyaWRlUGl4ZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBwaXhlbFNpemUpOworCisjZW5kaWYgLy8gRVZTX1ZUU19GT1JNQVRDT05WRVJUX0gKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9GcmFtZUhhbmRsZXIuY3BwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0ZyYW1lSGFuZGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY5ZjcyYgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9GcmFtZUhhbmRsZXIuY3BwCkBAIC0wLDAgKzEsMjc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWdHNIYWxFdnNUZXN0IgorCisjaW5jbHVkZSAiRnJhbWVIYW5kbGVyLmgiCisjaW5jbHVkZSAiRm9ybWF0Q29udmVydC5oIgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8Y3V0aWxzL25hdGl2ZV9oYW5kbGUuaD4KKyNpbmNsdWRlIDx1aS9HcmFwaGljQnVmZmVyLmg+CisKKworRnJhbWVIYW5kbGVyOjpGcmFtZUhhbmRsZXIoYW5kcm9pZDo6c3AgPElFdnNDYW1lcmE+IHBDYW1lcmEsIENhbWVyYURlc2MgY2FtZXJhSW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OnNwIDxJRXZzRGlzcGxheT4gcERpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJDb250cm9sRmxhZyBtb2RlKSA6CisgICAgbUNhbWVyYShwQ2FtZXJhKSwKKyAgICBtQ2FtZXJhSW5mbyhjYW1lcmFJbmZvKSwKKyAgICBtRGlzcGxheShwRGlzcGxheSksCisgICAgbVJldHVybk1vZGUobW9kZSkgeworICAgIC8vIE5vdGhpbmcgYnV0IG1lbWJlciBpbml0aWFsaXphdGlvbiBoZXJlLi4uCit9CisKKwordm9pZCBGcmFtZUhhbmRsZXI6OnNodXRkb3duKCkKK3sKKyAgICAvLyBNYWtlIHN1cmUgd2UncmUgbm90IHN0aWxsIHN0cmVhbWluZworICAgIGJsb2NraW5nU3RvcFN0cmVhbSgpOworCisgICAgLy8gQXQgdGhpcyBwb2ludCwgdGhlIHJlY2VpdmVyIHRocmVhZCBpcyBubyBsb25nZXIgcnVubmluZywgc28gd2UgY2FuIHNhZmVseSBkcm9wCisgICAgLy8gb3VyIHJlbW90ZSBvYmplY3QgcmVmZXJlbmNlcyBzbyB0aGV5IGNhbiBiZSBmcmVlZAorICAgIG1DYW1lcmEgPSBudWxscHRyOworICAgIG1EaXNwbGF5ID0gbnVsbHB0cjsKK30KKworCitib29sIEZyYW1lSGFuZGxlcjo6c3RhcnRTdHJlYW0oKSB7CisgICAgLy8gVGVsbCB0aGUgY2FtZXJhIHRvIHN0YXJ0IHN0cmVhbWluZworICAgIFJldHVybjxFdnNSZXN1bHQ+IHJlc3VsdCA9IG1DYW1lcmEtPnN0YXJ0VmlkZW9TdHJlYW0odGhpcyk7CisgICAgaWYgKHJlc3VsdCAhPSBFdnNSZXN1bHQ6Ok9LKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBNYXJrIG91cnNlbHZlcyBhcyBydW5uaW5nCisgICAgbUxvY2subG9jaygpOworICAgIG1SdW5uaW5nID0gdHJ1ZTsKKyAgICBtTG9jay51bmxvY2soKTsKKworICAgIHJldHVybiB0cnVlOworfQorCisKK3ZvaWQgRnJhbWVIYW5kbGVyOjphc3luY1N0b3BTdHJlYW0oKSB7CisgICAgLy8gVGVsbCB0aGUgY2FtZXJhIHRvIHN0b3Agc3RyZWFtaW5nLgorICAgIC8vIFRoaXMgd2lsbCByZXN1bHQgaW4gYSBudWxsIGZyYW1lIGJlaW5nIGRlbGl2ZXJlZCB3aGVuIHRoZSBzdHJlYW0gYWN0dWFsbHkgc3RvcHMuCisgICAgbUNhbWVyYS0+c3RvcFZpZGVvU3RyZWFtKCk7Cit9CisKKwordm9pZCBGcmFtZUhhbmRsZXI6OmJsb2NraW5nU3RvcFN0cmVhbSgpIHsKKyAgICAvLyBUZWxsIHRoZSBzdHJlYW0gdG8gc3RvcAorICAgIGFzeW5jU3RvcFN0cmVhbSgpOworCisgICAgLy8gV2FpdCB1bnRpbCB0aGUgc3RyZWFtIGhhcyBhY3R1YWxseSBzdG9wcGVkCisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1Mb2NrKTsKKyAgICBpZiAobVJ1bm5pbmcpIHsKKyAgICAgICAgbVNpZ25hbC53YWl0KGxvY2ssIFt0aGlzXSgpIHsgcmV0dXJuICFtUnVubmluZzsgfSk7CisgICAgfQorfQorCisKK2Jvb2wgRnJhbWVIYW5kbGVyOjpyZXR1cm5IZWxkQnVmZmVyKCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisKKyAgICAvLyBSZXR1cm4gdGhlIG9sZGVzdCBidWZmZXIgd2UncmUgaG9sZGluZworICAgIGlmIChtSGVsZEJ1ZmZlcnMuZW1wdHkoKSkgeworICAgICAgICAvLyBObyBidWZmZXJzIGFyZSBjdXJyZW50bHkgaGVsZAorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgQnVmZmVyRGVzYyBidWZmZXIgPSBtSGVsZEJ1ZmZlcnMuZnJvbnQoKTsKKyAgICBtSGVsZEJ1ZmZlcnMucG9wKCk7CisgICAgbUNhbWVyYS0+ZG9uZVdpdGhGcmFtZShidWZmZXIpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKKworYm9vbCBGcmFtZUhhbmRsZXI6OmlzUnVubmluZygpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobUxvY2spOworICAgIHJldHVybiBtUnVubmluZzsKK30KKworCit2b2lkIEZyYW1lSGFuZGxlcjo6d2FpdEZvckZyYW1lQ291bnQodW5zaWduZWQgZnJhbWVDb3VudCkgeworICAgIC8vIFdhaXQgdW50aWwgd2UndmUgc2VlbiBhdCBsZWFzdCB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBmcmFtZXMgKGNvdWxkIGJlIG1vcmUpCisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1Mb2NrKTsKKyAgICBtU2lnbmFsLndhaXQobG9jaywgW3RoaXMsIGZyYW1lQ291bnRdKCl7IHJldHVybiBtRnJhbWVzUmVjZWl2ZWQgPj0gZnJhbWVDb3VudDsgfSk7Cit9CisKKwordm9pZCBGcmFtZUhhbmRsZXI6OmdldEZyYW1lc0NvdW50ZXJzKHVuc2lnbmVkKiByZWNlaXZlZCwgdW5zaWduZWQqIGRpc3BsYXllZCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisKKyAgICBpZiAocmVjZWl2ZWQpIHsKKyAgICAgICAgKnJlY2VpdmVkID0gbUZyYW1lc1JlY2VpdmVkOworICAgIH0KKyAgICBpZiAoZGlzcGxheWVkKSB7CisgICAgICAgICpkaXNwbGF5ZWQgPSBtRnJhbWVzRGlzcGxheWVkOworICAgIH0KK30KKworCitSZXR1cm48dm9pZD4gRnJhbWVIYW5kbGVyOjpkZWxpdmVyRnJhbWUoY29uc3QgQnVmZmVyRGVzYyYgYnVmZmVyQXJnKSB7CisgICAgQUxPR0QoIlJlY2VpdmVkIGEgZnJhbWUgZnJvbSB0aGUgY2FtZXJhICglcCkiLCBidWZmZXJBcmcubWVtSGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpKTsKKworICAgIC8vIExvY2FsIGZsYWcgd2UgdXNlIHRvIGtlZXAgdHJhY2sgb2Ygd2hlbiB0aGUgc3RyZWFtIGlzIHN0b3BwaW5nCisgICAgYm9vbCB0aW1lVG9TdG9wID0gZmFsc2U7CisKKyAgICBpZiAoYnVmZmVyQXJnLm1lbUhhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSA9PSBudWxscHRyKSB7CisgICAgICAgIC8vIFNpZ25hbCB0aGF0IHRoZSBsYXN0IGZyYW1lIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCB0aGUgc3RyZWFtIGlzIHN0b3BwZWQKKyAgICAgICAgdGltZVRvU3RvcCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gSWYgd2Ugd2VyZSBnaXZlbiBhbiBvcGVuZWQgZGlzcGxheSBhdCBjb25zdHJ1Y3Rpb24gdGltZSwgdGhlbiBzZW5kIHRoZSByZWNlaXZlZAorICAgICAgICAvLyBpbWFnZSBiYWNrIGRvd24gdGhlIGNhbWVyYS4KKyAgICAgICAgaWYgKG1EaXNwbGF5LmdldCgpKSB7CisgICAgICAgICAgICAvLyBHZXQgdGhlIG91dHB1dCBidWZmZXIgd2UnbGwgdXNlIHRvIGRpc3BsYXkgdGhlIGltYWdlcnkKKyAgICAgICAgICAgIEJ1ZmZlckRlc2MgdGd0QnVmZmVyID0ge307CisgICAgICAgICAgICBtRGlzcGxheS0+Z2V0VGFyZ2V0QnVmZmVyKFsmdGd0QnVmZmVyXShjb25zdCBCdWZmZXJEZXNjJiBidWZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Z3RCdWZmZXIgPSBidWZmOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworCisgICAgICAgICAgICBpZiAodGd0QnVmZmVyLm1lbUhhbmRsZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJEaWRuJ3QgZ2V0IHRhcmdldCBidWZmZXIgLSBmcmFtZSBsb3N0XG4iKTsKKyAgICAgICAgICAgICAgICBBTE9HRSgiRGlkbid0IGdldCByZXF1ZXN0ZWQgb3V0cHV0IGJ1ZmZlciAtLSBza2lwcGluZyB0aGlzIGZyYW1lLiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBDb3B5IHRoZSBjb250ZW50cyBvZiB0aGUgb2YgYnVmZmVyLm1lbUhhbmRsZSBpbnRvIHRndEJ1ZmZlcgorICAgICAgICAgICAgICAgIGNvcHlCdWZmZXJDb250ZW50cyh0Z3RCdWZmZXIsIGJ1ZmZlckFyZyk7CisKKyAgICAgICAgICAgICAgICAvLyBTZW5kIHRoZSB0YXJnZXQgYnVmZmVyIGJhY2sgZm9yIGRpc3BsYXkKKyAgICAgICAgICAgICAgICBSZXR1cm4gPEV2c1Jlc3VsdD4gcmVzdWx0ID0gbURpc3BsYXktPnJldHVyblRhcmdldEJ1ZmZlckZvckRpc3BsYXkodGd0QnVmZmVyKTsKKyAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJISURMIGVycm9yIG9uIGRpc3BsYXkgYnVmZmVyICglcyktIGZyYW1lIGxvc3RcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIkVycm9yIG1ha2luZyB0aGUgcmVtb3RlIGZ1bmN0aW9uIGNhbGwuICBISURMIHNhaWQgJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCAhPSBFdnNSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRGlzcGxheSByZXBvcnRlZCBlcnJvciAtIGZyYW1lIGxvc3RcbiIpOworICAgICAgICAgICAgICAgICAgICBBTE9HRSgiV2UgZW5jb3VudGVyZWQgZXJyb3IgJWQgd2hlbiByZXR1cm5pbmcgYSBidWZmZXIgdG8gdGhlIGRpc3BsYXkhIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKEV2c1Jlc3VsdCkgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBFdmVyeXRoaW5nIGxvb2tzIGdvb2QhCisgICAgICAgICAgICAgICAgICAgIC8vIEtlZXAgdHJhY2sgc28gdGVzdHMgb3Igd2F0Y2ggZG9ncyBjYW4gbW9uaXRvciBwcm9ncmVzcworICAgICAgICAgICAgICAgICAgICBtTG9jay5sb2NrKCk7CisgICAgICAgICAgICAgICAgICAgIG1GcmFtZXNEaXNwbGF5ZWQrKzsKKyAgICAgICAgICAgICAgICAgICAgbUxvY2sudW5sb2NrKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKworICAgICAgICBzd2l0Y2ggKG1SZXR1cm5Nb2RlKSB7CisgICAgICAgIGNhc2UgZUF1dG9SZXR1cm46CisgICAgICAgICAgICAvLyBTZW5kIHRoZSBjYW1lcmEgYnVmZmVyIGJhY2sgbm93IHRoYXQgdGhlIGNsaWVudCBoYXMgc2VlbiBpdAorICAgICAgICAgICAgQUxPR0QoIkNhbGxpbmcgZG9uZVdpdGhGcmFtZSIpOworICAgICAgICAgICAgLy8gVE9ETzogIFdoeSBpcyBpdCB0aGF0IHdlIGdldCBhIEhJREwgY3Jhc2ggaWYgd2UgcGFzcyBiYWNrIHRoZSBjbG9uZWQgYnVmZmVyPworICAgICAgICAgICAgbUNhbWVyYS0+ZG9uZVdpdGhGcmFtZShidWZmZXJBcmcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgZU5vQXV0b1JldHVybjoKKyAgICAgICAgICAgIC8vIEhhbmcgb250byB0aGUgYnVmZmVyIGhhbmRsZSBmb3Igbm93IC0tIHRoZSBjbGllbnQgd2lsbCByZXR1cm4gaXQgZXhwbGljaXRseSBsYXRlcgorICAgICAgICAgICAgbUhlbGRCdWZmZXJzLnB1c2goYnVmZmVyQXJnKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgQUxPR0QoIkZyYW1lIGhhbmRsaW5nIGNvbXBsZXRlIik7CisgICAgfQorCisKKyAgICAvLyBVcGRhdGUgb3VyIHJlY2VpdmVkIGZyYW1lIGNvdW50IGFuZCBub3RpZnkgYW55Ym9keSB3aG8gY2FyZXMgdGhhdCB0aGluZ3MgaGF2ZSBjaGFuZ2VkCisgICAgbUxvY2subG9jaygpOworICAgIGlmICh0aW1lVG9TdG9wKSB7CisgICAgICAgIG1SdW5uaW5nID0gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUZyYW1lc1JlY2VpdmVkKys7CisgICAgfQorICAgIG1Mb2NrLnVubG9jaygpOworICAgIG1TaWduYWwubm90aWZ5X2FsbCgpOworCisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK2Jvb2wgRnJhbWVIYW5kbGVyOjpjb3B5QnVmZmVyQ29udGVudHMoY29uc3QgQnVmZmVyRGVzYyYgdGd0QnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCdWZmZXJEZXNjJiBzcmNCdWZmZXIpIHsKKyAgICBib29sIHN1Y2Nlc3MgPSB0cnVlOworCisgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHJ1biBvZmYgdGhlIGVuZCBvZiBlaXRoZXIgYnVmZmVyCisgICAgY29uc3QgdW5zaWduZWQgd2lkdGggICAgID0gc3RkOjptaW4odGd0QnVmZmVyLndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY0J1ZmZlci53aWR0aCk7CisgICAgY29uc3QgdW5zaWduZWQgaGVpZ2h0ICAgID0gc3RkOjptaW4odGd0QnVmZmVyLmhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNCdWZmZXIuaGVpZ2h0KTsKKworICAgIHNwPGFuZHJvaWQ6OkdyYXBoaWNCdWZmZXI+IHRndCA9IG5ldyBhbmRyb2lkOjpHcmFwaGljQnVmZmVyKAorICAgICAgICB0Z3RCdWZmZXIubWVtSGFuZGxlLCBhbmRyb2lkOjpHcmFwaGljQnVmZmVyOjpDTE9ORV9IQU5ETEUsCisgICAgICAgIHRndEJ1ZmZlci53aWR0aCwgdGd0QnVmZmVyLmhlaWdodCwgdGd0QnVmZmVyLmZvcm1hdCwgMSwgdGd0QnVmZmVyLnVzYWdlLAorICAgICAgICB0Z3RCdWZmZXIuc3RyaWRlKTsKKyAgICBzcDxhbmRyb2lkOjpHcmFwaGljQnVmZmVyPiBzcmMgPSBuZXcgYW5kcm9pZDo6R3JhcGhpY0J1ZmZlcigKKyAgICAgICAgc3JjQnVmZmVyLm1lbUhhbmRsZSwgYW5kcm9pZDo6R3JhcGhpY0J1ZmZlcjo6Q0xPTkVfSEFORExFLAorICAgICAgICBzcmNCdWZmZXIud2lkdGgsIHNyY0J1ZmZlci5oZWlnaHQsIHNyY0J1ZmZlci5mb3JtYXQsIDEsIHNyY0J1ZmZlci51c2FnZSwKKyAgICAgICAgc3JjQnVmZmVyLnN0cmlkZSk7CisKKyAgICAvLyBMb2NrIG91ciBzb3VyY2UgYnVmZmVyIGZvciByZWFkaW5nIChjdXJyZW50IGV4cGVjdGF0aW9uIGFyZSBmb3IgdGhpcyB0byBiZSBOVjIxIGZvcm1hdCkKKyAgICB1aW50OF90KiBzcmNQaXhlbHMgPSBudWxscHRyOworICAgIHNyYy0+bG9jayhHUkFMTE9DX1VTQUdFX1NXX1JFQURfT0ZURU4sICh2b2lkKiopJnNyY1BpeGVscyk7CisKKyAgICAvLyBMb2NrIG91ciB0YXJnZXQgYnVmZmVyIGZvciB3cml0aW5nIChzaG91bGQgYmUgUkdCQTg4ODggZm9ybWF0KQorICAgIHVpbnQzMl90KiB0Z3RQaXhlbHMgPSBudWxscHRyOworICAgIHRndC0+bG9jayhHUkFMTE9DX1VTQUdFX1NXX1dSSVRFX09GVEVOLCAodm9pZCoqKSZ0Z3RQaXhlbHMpOworCisgICAgaWYgKHNyY1BpeGVscyAmJiB0Z3RQaXhlbHMpIHsKKyAgICAgICAgaWYgKHRndEJ1ZmZlci5mb3JtYXQgIT0gSEFMX1BJWEVMX0ZPUk1BVF9SR0JBXzg4ODgpIHsKKyAgICAgICAgICAgIC8vIFdlIGFsd2F5cyBleHBlY3QgMzIgYml0IFJHQiBmb3IgdGhlIGRpc3BsYXkgb3V0cHV0IGZvciBub3cuICBJcyB0aGVyZSBhIG5lZWQgZm9yIDU2NT8KKyAgICAgICAgICAgIEFMT0dFKCJEaXBsYXkgYnVmZmVyIGlzIGFsd2F5cyBleHBlY3RlZCB0byBiZSAzMmJpdCBSR0JBIik7CisgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoc3JjQnVmZmVyLmZvcm1hdCA9PSBIQUxfUElYRUxfRk9STUFUX1lDUkNCXzQyMF9TUCkgeyAgIC8vIDQyMFNQID09IE5WMjEKKyAgICAgICAgICAgICAgICBjb3B5TlYyMXRvUkdCMzIod2lkdGgsIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjUGl4ZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Z3RQaXhlbHMsIHRndEJ1ZmZlci5zdHJpZGUpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzcmNCdWZmZXIuZm9ybWF0ID09IEhBTF9QSVhFTF9GT1JNQVRfWVYxMikgeyAvLyBZVVZfNDIwUCA9PSBZVjEyCisgICAgICAgICAgICAgICAgY29weVlWMTJ0b1JHQjMyKHdpZHRoLCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1BpeGVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGd0UGl4ZWxzLCB0Z3RCdWZmZXIuc3RyaWRlKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc3JjQnVmZmVyLmZvcm1hdCA9PSBIQUxfUElYRUxfRk9STUFUX1lDQkNSXzQyMl9JKSB7IC8vIFlVWVYKKyAgICAgICAgICAgICAgICBjb3B5WVVZVnRvUkdCMzIod2lkdGgsIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjUGl4ZWxzLCBzcmNCdWZmZXIuc3RyaWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Z3RQaXhlbHMsIHRndEJ1ZmZlci5zdHJpZGUpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzcmNCdWZmZXIuZm9ybWF0ID09IHRndEJ1ZmZlci5mb3JtYXQpIHsgIC8vIDMyYml0IFJHQkEKKyAgICAgICAgICAgICAgICBjb3B5TWF0Y2hlZEludGVybGVhdmVkRm9ybWF0cyh3aWR0aCwgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1BpeGVscywgc3JjQnVmZmVyLnN0cmlkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Z3RQaXhlbHMsIHRndEJ1ZmZlci5zdHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGd0QnVmZmVyLnBpeGVsU2l6ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIGxvY2sgYnVmZmVyIGNvbnRlbnRzIGZvciBjb250ZW50cyB0cmFuc2ZlciIpOworICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgfQorCisgICAgaWYgKHNyY1BpeGVscykgeworICAgICAgICBzcmMtPnVubG9jaygpOworICAgIH0KKyAgICBpZiAodGd0UGl4ZWxzKSB7CisgICAgICAgIHRndC0+dW5sb2NrKCk7CisgICAgfQorCisgICAgcmV0dXJuIHN1Y2Nlc3M7Cit9CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvdnRzL2Z1bmN0aW9uYWwvRnJhbWVIYW5kbGVyLmggYi9hdXRvbW90aXZlL2V2cy8xLjAvdnRzL2Z1bmN0aW9uYWwvRnJhbWVIYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdhMzk4MAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9GcmFtZUhhbmRsZXIuaApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBFVlNfVlRTX0ZSQU1FSEFORExFUl9ICisjZGVmaW5lIEVWU19WVFNfRlJBTUVIQU5ETEVSX0gKKworI2luY2x1ZGUgPHF1ZXVlPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYVN0cmVhbS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmEuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRGlzcGxheS5oPgorCit1c2luZyBuYW1lc3BhY2UgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6ZXZzOjpWMV8wOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGU7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisKKy8qCisgKiBGcmFtZUhhbmRsZXI6CisgKiBUaGlzIGNsYXNzIGNhbiBiZSB1c2VkIHRvIHJlY2VpdmUgY2FtZXJhIGltYWdlcnkgZnJvbSBhbiBJRXZzQ2FtZXJhIGltcGxlbWVudGF0aW9uLiAgR2l2ZW4gYW4KKyAqIElFdnNEaXNwbGF5IGluc3RhbmNlIGF0IHN0YXJ0dXAsIGl0IHdpbGwgZm9yd2FyZCB0aGUgcmVjZWl2ZWQgaW1hZ2VyeSB0byB0aGUgZGlzcGxheSwKKyAqIHByb3ZpZGluZyBhIHRyaXZpYWwgaW1wbGVtZW50YXRpb24gb2YgYSByZWFyIHZldyBjYW1lcmEgdHlwZSBhcHBsaWNhdGlvbi4KKyAqIE5vdGUgdGhhdCB0aGUgdmlkZW8gZnJhbWVzIGFyZSBkZWxpdmVyZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCwgd2hpbGUgdGhlIGNvbnRyb2wgaW50ZXJmYWNlCisgKiBpcyBhY3R1YXRlZCBmcm9tIHRoZSBhcHBsaWNhdGlvbnMgZm9yZWdyb3VuZCB0aHJlYWQuCisgKi8KK2NsYXNzIEZyYW1lSGFuZGxlciA6IHB1YmxpYyBJRXZzQ2FtZXJhU3RyZWFtIHsKK3B1YmxpYzoKKyAgICBlbnVtIEJ1ZmZlckNvbnRyb2xGbGFnIHsKKyAgICAgICAgZUF1dG9SZXR1cm4sCisgICAgICAgIGVOb0F1dG9SZXR1cm4sCisgICAgfTsKKworICAgIEZyYW1lSGFuZGxlcihhbmRyb2lkOjpzcCA8SUV2c0NhbWVyYT4gcENhbWVyYSwgQ2FtZXJhRGVzYyBjYW1lcmFJbmZvLAorICAgICAgICAgICAgICAgICBhbmRyb2lkOjpzcCA8SUV2c0Rpc3BsYXk+IHBEaXNwbGF5ID0gbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgQnVmZmVyQ29udHJvbEZsYWcgbW9kZSA9IGVBdXRvUmV0dXJuKTsKKyAgICB2b2lkIHNodXRkb3duKCk7CisKKyAgICBib29sIHN0YXJ0U3RyZWFtKCk7CisgICAgdm9pZCBhc3luY1N0b3BTdHJlYW0oKTsKKyAgICB2b2lkIGJsb2NraW5nU3RvcFN0cmVhbSgpOworCisgICAgYm9vbCByZXR1cm5IZWxkQnVmZmVyKCk7CisKKyAgICBib29sIGlzUnVubmluZygpOworCisgICAgdm9pZCB3YWl0Rm9yRnJhbWVDb3VudCh1bnNpZ25lZCBmcmFtZUNvdW50KTsKKyAgICB2b2lkIGdldEZyYW1lc0NvdW50ZXJzKHVuc2lnbmVkKiByZWNlaXZlZCwgdW5zaWduZWQqIGRpc3BsYXllZCk7CisKK3ByaXZhdGU6CisgICAgLy8gSW1wbGVtZW50YXRpb24gZm9yIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OmV2czo6VjFfMDo6SUNhckNhbWVyYVN0cmVhbQorICAgIFJldHVybjx2b2lkPiBkZWxpdmVyRnJhbWUoY29uc3QgQnVmZmVyRGVzYyYgYnVmZmVyKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBMb2NhbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzCisgICAgYm9vbCBjb3B5QnVmZmVyQ29udGVudHMoY29uc3QgQnVmZmVyRGVzYyYgdGd0QnVmZmVyLCBjb25zdCBCdWZmZXJEZXNjJiBzcmNCdWZmZXIpOworCisgICAgLy8gVmFsdWVzIGluaXRpYWxpemVkIGFzIHN0YXJ0dXAKKyAgICBhbmRyb2lkOjpzcCA8SUV2c0NhbWVyYT4gICAgbUNhbWVyYTsKKyAgICBDYW1lcmFEZXNjICAgICAgICAgICAgICAgICAgbUNhbWVyYUluZm87CisgICAgYW5kcm9pZDo6c3AgPElFdnNEaXNwbGF5PiAgIG1EaXNwbGF5OworICAgIEJ1ZmZlckNvbnRyb2xGbGFnICAgICAgICAgICBtUmV0dXJuTW9kZTsKKworICAgIC8vIFNpbmNlIHdlIGdldCBmcmFtZXMgZGVsaXZlcmVkIHRvIHVzIGFzbmNocm9ub3VzbHkgdmlhIHRoZSBJQ2FyQ2FtZXJhU3RyZWFtIGludGVyZmFjZSwKKyAgICAvLyB3ZSBuZWVkIHRvIHByb3RlY3QgYWxsIG1lbWJlciB2YXJpYWJsZXMgdGhhdCBtYXkgYmUgbW9kaWZpZWQgd2hpbGUgd2UncmUgc3RyZWFtaW5nCisgICAgLy8gKGllOiB0aG9zZSBiZWxvdykKKyAgICBzdGQ6Om11dGV4ICAgICAgICAgICAgICAgICAgbUxvY2s7CisgICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgICAgIG1TaWduYWw7CisKKyAgICBzdGQ6OnF1ZXVlPEJ1ZmZlckRlc2M+ICAgICAgbUhlbGRCdWZmZXJzOworICAgIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICBtUnVubmluZyA9IGZhbHNlOworICAgIHVuc2lnbmVkICAgICAgICAgICAgICAgICAgICBtRnJhbWVzUmVjZWl2ZWQgPSAwOyAgICAvLyBTaW1wbGUgY291bnRlciAtLSByb2xscyBvdmVyIGV2ZW50dWFsbHkhCisgICAgdW5zaWduZWQgICAgICAgICAgICAgICAgICAgIG1GcmFtZXNEaXNwbGF5ZWQgPSAwOyAgIC8vIFNpbXBsZSBjb3VudGVyIC0tIHJvbGxzIG92ZXIgZXZlbnR1YWxseSEKK307CisKKworI2VuZGlmIC8vRVZTX1ZUU19GUkFNRUhBTkRMRVJfSApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0V2c1YxXzBUYXJnZXRUZXN0LmNwcCBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNFdnNWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU4MGFmZQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNFdnNWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw0NzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbEV2c1Rlc3QiCisKKworLy8gVE9ETzogIEhvdyBzaG91bGQgd2UgY29uZmlndXJlIHRoZXNlIHZhbHVlcyB0byB0YXJnZXQgYXBwcm9wcmlhdGUgaGFyZHdhcmU/Citjb25zdCBzdGF0aWMgY2hhciBrRW51bWVyYXRvck5hbWVbXSAgPSAiRXZzRW51bWVyYXRvckh3LU1vY2siOworCisKKy8vIFRoZXNlIHZhbHVlcyBhcmUgY2FsbGVkIG91dCBpbiB0aGUgRVZTIGRlc2lnbiBkb2MgKGFzIG9mIE1hciA4LCAyMDE3KQorc3RhdGljIGNvbnN0IGludCBrTWF4U3RyZWFtU3RhcnRNaWxsaXNlY29uZHMgPSA1MDA7CitzdGF0aWMgY29uc3QgaW50IGtNaW5pbXVtRnJhbWVzUGVyU2Vjb25kID0gMTA7CisKK3N0YXRpYyBjb25zdCBpbnQga1NlY29uZHNUb01pbGxpc2Vjb25kcyA9IDEwMDA7CitzdGF0aWMgY29uc3QgaW50IGtNaWxsaXNlY29uZHNUb01pY3Jvc2Vjb25kcyA9IDEwMDA7CitzdGF0aWMgY29uc3QgZmxvYXQga05hbm9Ub01pbGxpc2Vjb25kcyA9IDAuMDAwMDAxZjsKK3N0YXRpYyBjb25zdCBmbG9hdCBrTmFub1RvU2Vjb25kcyA9IDAuMDAwMDAwMDAxZjsKKworCisjaW5jbHVkZSAiRnJhbWVIYW5kbGVyLmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPGh3YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KKyNpbmNsdWRlIDx1dGlscy9TdHJvbmdQb2ludGVyLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmEuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRW51bWVyYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmFTdHJlYW0uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRGlzcGxheS5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKwordXNpbmcgbmFtZXNwYWNlIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OmV2czo6VjFfMDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIEVWUworY2xhc3MgRXZzSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGNhbiBjb25uZWN0IHRvIHRoZSBlbnVtZXJhdG9yCisgICAgICAgIHBFbnVtZXJhdG9yID0gSUV2c0VudW1lcmF0b3I6OmdldFNlcnZpY2Uoa0VudW1lcmF0b3JOYW1lKTsKKyAgICAgICAgQVNTRVJUX05FKHBFbnVtZXJhdG9yLmdldCgpLCBudWxscHRyKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBsb2FkQ2FtZXJhTGlzdCgpIHsKKyAgICAgICAgLy8gU2V0VXAoKSBtdXN0IHJ1biBmaXJzdCEKKyAgICAgICAgYXNzZXJ0KHBFbnVtZXJhdG9yICE9IG51bGxwdHIpOworCisgICAgICAgIC8vIEdldCB0aGUgY2FtZXJhIGxpc3QKKyAgICAgICAgcEVudW1lcmF0b3ItPmdldENhbWVyYUxpc3QoW3RoaXNdKGhpZGxfdmVjIDxDYW1lcmFEZXNjPiBjYW1lcmFMaXN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTE9HSSgiQ2FtZXJhIGxpc3QgY2FsbGJhY2sgcmVjZWl2ZWQgJXp1IGNhbWVyYXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FtZXJhTGlzdC5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FtZXJhSW5mby5yZXNlcnZlKGNhbWVyYUxpc3Quc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoYXV0byYmIGNhbTogY2FtZXJhTGlzdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJGb3VuZCBjYW1lcmEgJXMiLCBjYW0uY2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FtZXJhSW5mby5wdXNoX2JhY2soY2FtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICApOworCisgICAgICAgIC8vIFdlIGluc2lzdCBvbiBhdCBsZWFzdCBvbmUgY2FtZXJhIGZvciBFVlMgdG8gcGFzcyBhbnkgY2FtZXJhIHRlc3RzCisgICAgICAgIEFTU0VSVF9HRShjYW1lcmFJbmZvLnNpemUoKSwgMXUpOworICAgIH0KKworICAgIHNwPElFdnNFbnVtZXJhdG9yPiAgICAgICAgICBwRW51bWVyYXRvcjsgICAgLy8gRXZlcnkgdGVzdCBuZWVkcyBhY2Nlc3MgdG8gdGhlIHNlcnZpY2UKKyAgICBzdGQ6OnZlY3RvciA8Q2FtZXJhRGVzYz4gICAgY2FtZXJhSW5mbzsgICAgIC8vIEVtcHR5IHVubGVzcy91bnRpbCBsb2FkQ2FtZXJhTGlzdCgpIGlzIGNhbGxlZAorfTsKKworCisvLworLy8gVGVzdHMgc3RhcnQgaGVyZS4uLgorLy8KKworLyoKKyAqIENhbWVyYU9wZW5DbGVhbjoKKyAqIE9wZW5zIGVhY2ggY2FtZXJhIHJlcG9ydGVkIGJ5IHRoZSBlbnVtZXJhdG9yIGFuZCB0aGVuIGV4cGxpY2l0bHkgY2xvc2VzIGl0IHZpYSBhCisgKiBjYWxsIHRvIGNsb3NlQ2FtZXJhLiAgVGhlbiByZXBlYXRzIHRoZSB0ZXN0IHRvIGVuc3VyZSBhbGwgY2FtZXJhcyBjYW4gYmUgcmVvcGVuZWQuCisgKi8KK1RFU1RfRihFdnNIaWRsVGVzdCwgQ2FtZXJhT3BlbkNsZWFuKSB7CisgICAgQUxPR0koIlN0YXJ0aW5nIENhbWVyYU9wZW5DbGVhbiB0ZXN0Iik7CisKKyAgICAvLyBHZXQgdGhlIGNhbWVyYSBsaXN0CisgICAgbG9hZENhbWVyYUxpc3QoKTsKKworICAgIC8vIE9wZW4gYW5kIGNsb3NlIGVhY2ggY2FtZXJhIHR3aWNlCisgICAgZm9yIChhdXRvJiYgY2FtOiBjYW1lcmFJbmZvKSB7CisgICAgICAgIGZvciAoaW50IHBhc3MgPSAwOyBwYXNzIDwgMjsgcGFzcysrKSB7CisgICAgICAgICAgICBzcDxJRXZzQ2FtZXJhPiBwQ2FtID0gcEVudW1lcmF0b3ItPm9wZW5DYW1lcmEoY2FtLmNhbWVyYUlkKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShwQ2FtLCBudWxscHRyKTsKKworICAgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhpcyBjYW1lcmEgc2VsZi1pZGVudGlmaWVzIGNvcnJlY3RseQorICAgICAgICAgICAgcENhbS0+Z2V0Q2FtZXJhSW5mbyhbJmNhbV0oQ2FtZXJhRGVzYyBkZXNjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTE9HRCgiRm91bmQgY2FtZXJhICVzIiwgZGVzYy5jYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShjYW0uY2FtZXJhSWQsIGRlc2MuY2FtZXJhSWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworCisgICAgICAgICAgICAvLyBFeHBsaWNpdGx5IGNsb3NlIHRoZSBjYW1lcmEgc28gcmVzb3VyY2VzIGFyZSByZWxlYXNlZCByaWdodCBhd2F5CisgICAgICAgICAgICBwRW51bWVyYXRvci0+Y2xvc2VDYW1lcmEocENhbSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKworLyoKKyAqIENhbWVyYU9wZW5BZ2dyZXNzaXZlOgorICogT3BlbnMgZWFjaCBjYW1lcmEgcmVwb3J0ZWQgYnkgdGhlIGVudW1lcmF0b3IgdHdpY2UgaW4gYSByb3cgd2l0aG91dCBhbiBpbnRlcnZlbmluZyBjbG9zZUNhbWVyYQorICogY2FsbC4gIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBpbnRlbmRlZCAiYWdncmVzc2l2ZSBvcGVuIiBiZWhhdmlvciB3b3Jrcy4gIFRoaXMgaXMgbmVjZXNzYXJ5IGZvcgorICogdGhlIHN5c3RlbSB0byBiZSB0b2xlcmFudCBvZiBzaHV0ZG93bi9yZXN0YXJ0IHJhY2UgY29uZGl0aW9ucy4KKyAqLworVEVTVF9GKEV2c0hpZGxUZXN0LCBDYW1lcmFPcGVuQWdncmVzc2l2ZSkgeworICAgIEFMT0dJKCJTdGFydGluZyBDYW1lcmFPcGVuQWdncmVzc2l2ZSB0ZXN0Iik7CisKKyAgICAvLyBHZXQgdGhlIGNhbWVyYSBsaXN0CisgICAgbG9hZENhbWVyYUxpc3QoKTsKKworICAgIC8vIE9wZW4gYW5kIGNsb3NlIGVhY2ggY2FtZXJhIHR3aWNlCisgICAgZm9yIChhdXRvJiYgY2FtOiBjYW1lcmFJbmZvKSB7CisgICAgICAgIHNwPElFdnNDYW1lcmE+IHBDYW0gPSBwRW51bWVyYXRvci0+b3BlbkNhbWVyYShjYW0uY2FtZXJhSWQpOworICAgICAgICBBU1NFUlRfTkUocENhbSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhpcyBjYW1lcmEgc2VsZi1pZGVudGlmaWVzIGNvcnJlY3RseQorICAgICAgICBwQ2FtLT5nZXRDYW1lcmFJbmZvKFsmY2FtXShDYW1lcmFEZXNjIGRlc2MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0QoIkZvdW5kIGNhbWVyYSAlcyIsIGRlc2MuY2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShjYW0uY2FtZXJhSWQsIGRlc2MuY2FtZXJhSWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKworICAgICAgICBzcDxJRXZzQ2FtZXJhPiBwQ2FtMiA9IHBFbnVtZXJhdG9yLT5vcGVuQ2FtZXJhKGNhbS5jYW1lcmFJZCk7CisgICAgICAgIEFTU0VSVF9ORShwQ2FtLCBwQ2FtMik7CisgICAgICAgIEFTU0VSVF9ORShwQ2FtMiwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIG9sZCBjYW1lcmEgcmVqZWN0cyBjYWxscworICAgICAgICBSZXR1cm48RXZzUmVzdWx0PiBiYWRSZXN1bHQgPSBwQ2FtLT5zZXRNYXhGcmFtZXNJbkZsaWdodCgyKTsKKyAgICAgICAgRVhQRUNUX0VRKEV2c1Jlc3VsdDo6T1dORVJTSElQX0xPU1QsIEV2c1Jlc3VsdChiYWRSZXN1bHQpKTsKKworICAgICAgICAvLyBDbG9zZSB0aGUgc3VwZXJjZWRlZCBjYW1lcmEKKyAgICAgICAgcEVudW1lcmF0b3ItPmNsb3NlQ2FtZXJhKHBDYW0pOworCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBzZWNvbmQgY2FtZXJhIGluc3RhbmNlIHNlbGYtaWRlbnRpZmllcyBjb3JyZWN0bHkKKyAgICAgICAgcENhbTItPmdldENhbWVyYUluZm8oWyZjYW1dKENhbWVyYURlc2MgZGVzYykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0QoIkZvdW5kIGNhbWVyYSAlcyIsIGRlc2MuY2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoY2FtLmNhbWVyYUlkLCBkZXNjLmNhbWVyYUlkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICApOworCisgICAgICAgIC8vIExlYXZlIHRoZSBzZWNvbmQgY2FtZXJhIGRhbmdsaW5nIHNvIGl0IGdldHMgY2xlYW5lZCB1cCBieSB0aGUgZGVzdHJ1Y3RvciBwYXRoCisgICAgfQorCisgICAgLy8gU2xlZXAgaGVyZSB0byBlbnN1cmUgdGhlIGRlc3RydWN0b3IgY2xlYW51cCBoYXMgdGltZSB0byBydW4gc28gd2UgZG9uJ3QgYnJlYWsgZm9sbG93IG9uIHRlc3RzCisgICAgc2xlZXAoMSk7ICAgLy8gSSBoYXRlIHRoYXQgdGhpcyBpcyBhbiBhcmJpdHJhcnkgdGltZSB0byB3YWl0LiAgOiggIGIvMzYxMjI2MzUKK30KKworCisvKgorICogRGlzcGxheU9wZW46CisgKiBUZXN0IGJvdGggY2xlYW4gc2h1dCBkb3duIGFuZCAiYWdncmVzc2l2ZSBvcGVuIiBkZXZpY2Ugc3RlYWxpbmcgYmVoYXZpb3IuCisgKi8KK1RFU1RfRihFdnNIaWRsVGVzdCwgRGlzcGxheU9wZW4pIHsKKyAgICBBTE9HSSgiU3RhcnRpbmcgRGlzcGxheU9wZW4gdGVzdCIpOworCisgICAgLy8gUmVxdWVzdCBleGNsdXNpdmUgYWNjZXNzIHRvIHRoZSBFVlMgZGlzcGxheSwgdGhlbiBsZXQgaXQgZ28KKyAgICB7CisgICAgICAgIHNwPElFdnNEaXNwbGF5PiBwRGlzcGxheSA9IHBFbnVtZXJhdG9yLT5vcGVuRGlzcGxheSgpOworICAgICAgICBBU1NFUlRfTkUocERpc3BsYXksIG51bGxwdHIpOworCisgICAgICAgIC8vIEFzayB0aGUgZGlzcGxheSB3aGF0IGl0J3MgbmFtZSBpcworICAgICAgICBwRGlzcGxheS0+Z2V0RGlzcGxheUluZm8oW10oRGlzcGxheURlc2MgZGVzYykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFMT0dEKCJGb3VuZCBkaXNwbGF5ICVzIiwgZGVzYy5kaXNwbGF5SWQuY19zdHIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICk7CisKKyAgICAgICAgcEVudW1lcmF0b3ItPmNsb3NlRGlzcGxheShwRGlzcGxheSk7CisgICAgfQorCisgICAgLy8gRW5zdXJlIHdlIGNhbiByZW9wZW4gdGhlIGRpc3BsYXkgYWZ0ZXIgaXQgaGFzIGJlZW4gY2xvc2VkCisgICAgeworICAgICAgICAvLyBSZW9wZW4gdGhlIGRpc3BsYXkKKyAgICAgICAgc3A8SUV2c0Rpc3BsYXk+IHBEaXNwbGF5ID0gcEVudW1lcmF0b3ItPm9wZW5EaXNwbGF5KCk7CisgICAgICAgIEFTU0VSVF9ORShwRGlzcGxheSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gT3BlbiB0aGUgZGlzcGxheSB3aGlsZSBpdHMgYWxyZWFkeSBvcGVuIC0tIG93bmVyc2hpcCBzaG91bGQgYmUgdHJhbnNmZXJyZWQKKyAgICAgICAgc3A8SUV2c0Rpc3BsYXk+IHBEaXNwbGF5MiA9IHBFbnVtZXJhdG9yLT5vcGVuRGlzcGxheSgpOworICAgICAgICBBU1NFUlRfTkUocERpc3BsYXkyLCBudWxscHRyKTsKKworICAgICAgICAvLyBFbnN1cmUgdGhlIG9sZCBkaXNwbGF5IHByb3Blcmx5IHJlcG9ydHMgaXRzIGFzc2Fzc2luYXRpb24KKyAgICAgICAgUmV0dXJuPERpc3BsYXlTdGF0ZT4gYmFkUmVzdWx0ID0gcERpc3BsYXktPmdldERpc3BsYXlTdGF0ZSgpOworICAgICAgICBFWFBFQ1RfRVEoYmFkUmVzdWx0LCBEaXNwbGF5U3RhdGU6OkRFQUQpOworCisgICAgICAgIC8vIENsb3NlIG9ubHkgdGhlIG5ld2VzdCBkaXNwbGF5IGluc3RhbmNlIC0tIHRoZSBvdGhlciBzaG91bGQgYWxyZWFkeSBiZSBhIHpvbWJpZQorICAgICAgICBwRW51bWVyYXRvci0+Y2xvc2VEaXNwbGF5KHBEaXNwbGF5Mik7CisgICAgfQorCisgICAgLy8gRmluYWxseSwgdmFsaWRhdGUgdGhhdCB3ZSBjYW4gb3BlbiB0aGUgZGlzcGxheSBhZnRlciB0aGUgcHJvdm9rZWQgZmFpbHVyZSBhYm92ZQorICAgIHNwPElFdnNEaXNwbGF5PiBwRGlzcGxheSA9IHBFbnVtZXJhdG9yLT5vcGVuRGlzcGxheSgpOworICAgIEFTU0VSVF9ORShwRGlzcGxheSwgbnVsbHB0cik7CisKKyAgICBwRW51bWVyYXRvci0+Y2xvc2VEaXNwbGF5KHBEaXNwbGF5KTsKK30KKworCisvKgorICogRGlzcGxheVN0YXRlczoKKyAqIFZhbGlkYXRlIHRoYXQgZGlzcGxheSBzdGF0ZXMgdHJhbnNpdGlvbiBhcyBleHBlY3RlZCBhbmQgY2FuIGJlIHF1ZXJpZWQgZnJvbSBlaXRoZXIgdGhlIGRpc3BsYXkKKyAqIG9iamVjdCBpdHNlbGYgb3IgdGhlIG93bmluZyBlbnVtZXJhdG9yLgorICovCitURVNUX0YoRXZzSGlkbFRlc3QsIERpc3BsYXlTdGF0ZXMpIHsKKyAgICBBTE9HSSgiU3RhcnRpbmcgRGlzcGxheVN0YXRlcyB0ZXN0Iik7CisKKyAgICAvLyBFbnN1cmUgdGhlIGRpc3BsYXkgc3RhcnRzIGluIHRoZSBleHBlY3RlZCBzdGF0ZQorICAgIEVYUEVDVF9FUSgoRGlzcGxheVN0YXRlKXBFbnVtZXJhdG9yLT5nZXREaXNwbGF5U3RhdGUoKSwgRGlzcGxheVN0YXRlOjpOT1RfT1BFTik7CisKKyAgICAvLyBTY29wZSB0byBsaW1pdCB0aGUgbGlmZXRpbWUgb2YgdGhlIHBEaXNwbGF5IHBvaW50ZXIsIGFuZCB0aHVzIHRoZSBJRXZzRGlzcGxheSBvYmplY3QKKyAgICB7CisgICAgICAgIC8vIFJlcXVlc3QgZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgRVZTIGRpc3BsYXkKKyAgICAgICAgc3A8SUV2c0Rpc3BsYXk+IHBEaXNwbGF5ID0gcEVudW1lcmF0b3ItPm9wZW5EaXNwbGF5KCk7CisgICAgICAgIEFTU0VSVF9ORShwRGlzcGxheSwgbnVsbHB0cik7CisgICAgICAgIEVYUEVDVF9FUSgoRGlzcGxheVN0YXRlKXBFbnVtZXJhdG9yLT5nZXREaXNwbGF5U3RhdGUoKSwgRGlzcGxheVN0YXRlOjpOT1RfVklTSUJMRSk7CisKKyAgICAgICAgLy8gQWN0aXZhdGUgdGhlIGRpc3BsYXkKKyAgICAgICAgcERpc3BsYXktPnNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3RhdGU6OlZJU0lCTEVfT05fTkVYVF9GUkFNRSk7CisgICAgICAgIEVYUEVDVF9FUSgoRGlzcGxheVN0YXRlKXBFbnVtZXJhdG9yLT5nZXREaXNwbGF5U3RhdGUoKSwgRGlzcGxheVN0YXRlOjpWSVNJQkxFX09OX05FWFRfRlJBTUUpOworICAgICAgICBFWFBFQ1RfRVEoKERpc3BsYXlTdGF0ZSlwRGlzcGxheS0+Z2V0RGlzcGxheVN0YXRlKCksIERpc3BsYXlTdGF0ZTo6VklTSUJMRV9PTl9ORVhUX0ZSQU1FKTsKKworICAgICAgICAvLyBHZXQgdGhlIG91dHB1dCBidWZmZXIgd2UnZCB1c2UgdG8gZGlzcGxheSB0aGUgaW1hZ2VyeQorICAgICAgICBCdWZmZXJEZXNjIHRndEJ1ZmZlciA9IHt9OworICAgICAgICBwRGlzcGxheS0+Z2V0VGFyZ2V0QnVmZmVyKFsmdGd0QnVmZmVyXShjb25zdCBCdWZmZXJEZXNjJiBidWZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRndEJ1ZmZlciA9IGJ1ZmY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICApOworICAgICAgICBFWFBFQ1RfTkUodGd0QnVmZmVyLm1lbUhhbmRsZSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gU2VuZCB0aGUgdGFyZ2V0IGJ1ZmZlciBiYWNrIGZvciBkaXNwbGF5ICh3ZSBkaWRuJ3QgYWN0dWFsbHkgZmlsbCBhbnl0aGluZykKKyAgICAgICAgcERpc3BsYXktPnJldHVyblRhcmdldEJ1ZmZlckZvckRpc3BsYXkodGd0QnVmZmVyKTsKKworICAgICAgICAvLyBTbGVlcCBmb3IgYSB0ZW50aCBvZiBhIHNlY29uZCB0byBlbnN1cmUgdGhlIGRyaXZlciBoYXMgdGltZSB0byBnZXQgdGhlIGltYWdlIGRpc3BsYXllZAorICAgICAgICB1c2xlZXAoMTAwICoga01pbGxpc2Vjb25kc1RvTWljcm9zZWNvbmRzKTsKKyAgICAgICAgRVhQRUNUX0VRKChEaXNwbGF5U3RhdGUpcEVudW1lcmF0b3ItPmdldERpc3BsYXlTdGF0ZSgpLCBEaXNwbGF5U3RhdGU6OlZJU0lCTEUpOworICAgICAgICBFWFBFQ1RfRVEoKERpc3BsYXlTdGF0ZSlwRGlzcGxheS0+Z2V0RGlzcGxheVN0YXRlKCksIERpc3BsYXlTdGF0ZTo6VklTSUJMRSk7CisKKyAgICAgICAgLy8gVHVybiBvZmYgdGhlIGRpc3BsYXkKKyAgICAgICAgcERpc3BsYXktPnNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3RhdGU6Ok5PVF9WSVNJQkxFKTsKKyAgICAgICAgdXNsZWVwKDEwMCAqIGtNaWxsaXNlY29uZHNUb01pY3Jvc2Vjb25kcyk7CisgICAgICAgIEVYUEVDVF9FUSgoRGlzcGxheVN0YXRlKXBFbnVtZXJhdG9yLT5nZXREaXNwbGF5U3RhdGUoKSwgRGlzcGxheVN0YXRlOjpOT1RfVklTSUJMRSk7CisKKyAgICAgICAgLy8gQ2xvc2UgdGhlIGRpc3BsYXkKKyAgICAgICAgcEVudW1lcmF0b3ItPmNsb3NlRGlzcGxheShwRGlzcGxheSk7CisgICAgfQorCisgICAgLy8gVE9ETzogIFRoaXMgaGFjayBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5LiAgYi8zNjEyMjYzNQorICAgIHNsZWVwKDEpOworCisgICAgLy8gTm93IHRoYXQgdGhlIGRpc3BsYXkgcG9pbnRlciBoYXMgZ29uZSBvdXQgb2Ygc2NvcGUsIGNhdXNpbmcgdGhlIElFdnNEaXNwbGF5IGludGVyZmFjZQorICAgIC8vIG9iamVjdCB0byBiZSBkZXN0cm95ZWQsIHdlIHNob3VsZCBiZSBiYWNrIHRvIHRoZSAibm90IG9wZW4iIHN0YXRlLgorICAgIC8vIE5PVEU6ICBJZiB3ZSB3YW50IHRoaXMgdG8gcGFzcyB3aXRob3V0IHRoZSBzbGVlcCBhYm92ZSwgd2UnZCBoYXZlIHRvIGFkZCB0aGUKKyAgICAvLyAgICAgICAgKG5vdyByZWNvbW1lbmRlZCkgY2xvc2VEaXNwbGF5KCkgY2FsbCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIHNtYXJ0ZXIgcG9pbnRlcgorICAgIC8vICAgICAgICBnb2luZyBvdXQgb2Ygc2NvcGUuICBJJ3ZlIG5vdCBkb25lIHRoYXQgYmVjYXVzZSBJIHdhbnQgdG8gdmVyaWZ5IHRoYXQgdGhlIGRlbGV0aW9uCisgICAgLy8gICAgICAgIG9mIHRoZSBvYmplY3QgZG9lcyBhY3R1YWxseSBjbGVhbiB1cCAoZXZlbnR1YWxseSkuCisgICAgRVhQRUNUX0VRKChEaXNwbGF5U3RhdGUpcEVudW1lcmF0b3ItPmdldERpc3BsYXlTdGF0ZSgpLCBEaXNwbGF5U3RhdGU6Ok5PVF9PUEVOKTsKK30KKworCisvKgorICogQ2FtZXJhU3RyZWFtUGVyZm9ybWFuY2U6CisgKiBNZWFzdXJlIGFuZCBxdWFsaWZ5IHRoZSBzdHJlYW0gc3RhcnQgdXAgdGltZSBhbmQgc3RyZWFtaW5nIGZyYW1lIHJhdGUgb2YgZWFjaCByZXBvcnRlZCBjYW1lcmEKKyAqLworVEVTVF9GKEV2c0hpZGxUZXN0LCBDYW1lcmFTdHJlYW1QZXJmb3JtYW5jZSkgeworICAgIEFMT0dJKCJTdGFydGluZyBDYW1lcmFTdHJlYW1QZXJmb3JtYW5jZSB0ZXN0Iik7CisKKyAgICAvLyBHZXQgdGhlIGNhbWVyYSBsaXN0CisgICAgbG9hZENhbWVyYUxpc3QoKTsKKworICAgIC8vIFRlc3QgZWFjaCByZXBvcnRlZCBjYW1lcmEKKyAgICBmb3IgKGF1dG8mJiBjYW06IGNhbWVyYUluZm8pIHsKKyAgICAgICAgc3AgPElFdnNDYW1lcmE+IHBDYW0gPSBwRW51bWVyYXRvci0+b3BlbkNhbWVyYShjYW0uY2FtZXJhSWQpOworICAgICAgICBBU1NFUlRfTkUocENhbSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gU2V0IHVwIGEgZnJhbWUgcmVjZWl2ZXIgb2JqZWN0IHdoaWNoIHdpbGwgZmlyZSB1cCBpdHMgb3duIHRocmVhZAorICAgICAgICBzcDxGcmFtZUhhbmRsZXI+IGZyYW1lSGFuZGxlciA9IG5ldyBGcmFtZUhhbmRsZXIocENhbSwgY2FtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lSGFuZGxlcjo6ZUF1dG9SZXR1cm4pOworCisgICAgICAgIC8vIFN0YXJ0IHRoZSBjYW1lcmEncyB2aWRlbyBzdHJlYW0KKyAgICAgICAgbnNlY3NfdCBzdGFydCA9IHN5c3RlbVRpbWUoU1lTVEVNX1RJTUVfTU9OT1RPTklDKTsKKyAgICAgICAgYm9vbCBzdGFydFJlc3VsdCA9IGZyYW1lSGFuZGxlci0+c3RhcnRTdHJlYW0oKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoc3RhcnRSZXN1bHQpOworCisgICAgICAgIC8vIEVuc3VyZSB0aGUgZmlyc3QgZnJhbWUgYXJyaXZlZCB3aXRoaW4gdGhlIGV4cGVjdGVkIHRpbWUKKyAgICAgICAgZnJhbWVIYW5kbGVyLT53YWl0Rm9yRnJhbWVDb3VudCgxKTsKKyAgICAgICAgbnNlY3NfdCBmaXJzdEZyYW1lID0gc3lzdGVtVGltZShTWVNURU1fVElNRV9NT05PVE9OSUMpOworICAgICAgICBuc2Vjc190IHRpbWVUb0ZpcnN0RnJhbWUgPSBzeXN0ZW1UaW1lKFNZU1RFTV9USU1FX01PTk9UT05JQykgLSBzdGFydDsKKyAgICAgICAgRVhQRUNUX0xFKG5hbm9zZWNvbmRzX3RvX21pbGxpc2Vjb25kcyh0aW1lVG9GaXJzdEZyYW1lKSwga01heFN0cmVhbVN0YXJ0TWlsbGlzZWNvbmRzKTsKKyAgICAgICAgcHJpbnRmKCJNZWFzdXJlZCB0aW1lIHRvIGZpcnN0IGZyYW1lICUwLjJmIG1zXG4iLCB0aW1lVG9GaXJzdEZyYW1lICoga05hbm9Ub01pbGxpc2Vjb25kcyk7CisgICAgICAgIEFMT0dJKCJNZWFzdXJlZCB0aW1lIHRvIGZpcnN0IGZyYW1lICUwLjJmIG1zIiwgdGltZVRvRmlyc3RGcmFtZSAqIGtOYW5vVG9NaWxsaXNlY29uZHMpOworCisgICAgICAgIC8vIFdhaXQgYSBiaXQsIHRoZW4gZW5zdXJlIHdlIGdldCBhdCBsZWFzdCB0aGUgcmVxdWlyZWQgbWluaW11bSBudW1iZXIgb2YgZnJhbWVzCisgICAgICAgIHNsZWVwKDUpOworICAgICAgICBuc2Vjc190IGVuZCA9IHN5c3RlbVRpbWUoU1lTVEVNX1RJTUVfTU9OT1RPTklDKTsKKyAgICAgICAgdW5zaWduZWQgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgICAgICBmcmFtZUhhbmRsZXItPmdldEZyYW1lc0NvdW50ZXJzKCZmcmFtZXNSZWNlaXZlZCwgbnVsbHB0cik7CisgICAgICAgIGZyYW1lc1JlY2VpdmVkID0gZnJhbWVzUmVjZWl2ZWQgLSAxOyAgICAvLyBCYWNrIG91dCB0aGUgZmlyc3QgZnJhbWUgd2UgYWxyZWFkeSB3YWl0ZWQgZm9yCisgICAgICAgIG5zZWNzX3QgcnVuVGltZSA9IGVuZCAtIGZpcnN0RnJhbWU7CisgICAgICAgIGZsb2F0IGZyYW1lc1BlclNlY29uZCA9IGZyYW1lc1JlY2VpdmVkIC8gKHJ1blRpbWUgKiBrTmFub1RvU2Vjb25kcyk7CisgICAgICAgIHByaW50ZigiTWVhc3VyZWQgY2FtZXJhIHJhdGUgJTMuMmYgZnBzXG4iLCBmcmFtZXNQZXJTZWNvbmQpOworICAgICAgICBBTE9HSSgiTWVhc3VyZWQgY2FtZXJhIHJhdGUgJTMuMmYgZnBzIiwgZnJhbWVzUGVyU2Vjb25kKTsKKyAgICAgICAgRVhQRUNUX0dFKGZyYW1lc1BlclNlY29uZCwga01pbmltdW1GcmFtZXNQZXJTZWNvbmQpOworCisgICAgICAgIC8vIEV2ZW4gd2hlbiB0aGUgY2FtZXJhIHBvaW50ZXIgZ29lcyBvdXQgb2Ygc2NvcGUsIHRoZSBGcmFtZUhhbmRsZXIgb2JqZWN0IHdpbGwKKyAgICAgICAgLy8ga2VlcCB0aGUgc3RyZWFtIGFsaXZlIHVubGVzcyB3ZSB0ZWxsIGl0IHRvIHNodXRkb3duLgorICAgICAgICAvLyBBbHNvIG5vdGUgdGhhdCB0aGUgRnJhbWVIYW5kbGUgYW5kIHRoZSBDYW1lcmEgaGF2ZSBhIG11dHVhbCBjaXJjdWxhciByZWZlcmVuY2UsIHNvCisgICAgICAgIC8vIHdlIGhhdmUgdG8gYnJlYWsgdGhhdCBjeWNsZSBpbiBvcmRlciBmb3IgZWl0aGVyIG9mIHRoZW0gdG8gZ2V0IGNsZWFuZWQgdXAuCisgICAgICAgIGZyYW1lSGFuZGxlci0+c2h1dGRvd24oKTsKKworICAgICAgICAvLyBFeHBsaWNpdGx5IHJlbGVhc2UgdGhlIGNhbWVyYQorICAgICAgICBwRW51bWVyYXRvci0+Y2xvc2VDYW1lcmEocENhbSk7CisgICAgfQorfQorCisKKy8qCisgKiBDYW1lcmFTdHJlYW1CdWZmZXJpbmc6CisgKiBFbnN1cmUgdGhlIGNhbWVyYSBpbXBsZW1lbnRhdGlvbiBiZWhhdmVzIHByb3Blcmx5IHdoZW4gdGhlIGNsaWVudCBob2xkcyBvbnRvIGJ1ZmZlcnMgZm9yIG1vcmUKKyAqIHRoYW4gb25lIGZyYW1lIHRpbWUuICBUaGUgY2FtZXJhIG11c3QgY2xlYW5seSBza2lwIGZyYW1lcyB1bnRpbCB0aGUgY2xpZW50IGlzIHJlYWR5IGFnYWluLgorICovCitURVNUX0YoRXZzSGlkbFRlc3QsIENhbWVyYVN0cmVhbUJ1ZmZlcmluZykgeworICAgIEFMT0dJKCJTdGFydGluZyBDYW1lcmFTdHJlYW1CdWZmZXJpbmcgdGVzdCIpOworCisgICAgLy8gQXJiaXRyYXJ5IGNvbnN0YW50IChzaG91bGQgYmUgPiAxIGFuZCBsZXNzIHRoYW4gY3JhenkpCisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrQnVmZmVyc1RvSG9sZCA9IDY7CisKKyAgICAvLyBHZXQgdGhlIGNhbWVyYSBsaXN0CisgICAgbG9hZENhbWVyYUxpc3QoKTsKKworICAgIC8vIFRlc3QgZWFjaCByZXBvcnRlZCBjYW1lcmEKKyAgICBmb3IgKGF1dG8mJiBjYW06IGNhbWVyYUluZm8pIHsKKworICAgICAgICBzcDxJRXZzQ2FtZXJhPiBwQ2FtID0gcEVudW1lcmF0b3ItPm9wZW5DYW1lcmEoY2FtLmNhbWVyYUlkKTsKKyAgICAgICAgQVNTRVJUX05FKHBDYW0sIG51bGxwdHIpOworCisgICAgICAgIC8vIEFzayBmb3IgYSBjcmF6eSBudW1iZXIgb2YgYnVmZmVycyBpbiBmbGlnaHQgdG8gZW5zdXJlIGl0IGVycm9ycyBjb3JyZWN0bHkKKyAgICAgICAgUmV0dXJuPEV2c1Jlc3VsdD4gYmFkUmVzdWx0ID0gcENhbS0+c2V0TWF4RnJhbWVzSW5GbGlnaHQoMHhGRkZGRkZGRik7CisgICAgICAgIEVYUEVDVF9FUShFdnNSZXN1bHQ6OkJVRkZFUl9OT1RfQVZBSUxBQkxFLCBiYWRSZXN1bHQpOworCisgICAgICAgIC8vIE5vdyBhc2sgZm9yIGV4YWN0bHkgdHdvIGJ1ZmZlcnMgaW4gZmxpZ2h0IGFzIHdlJ2xsIHRlc3QgYmVoYXZpb3IgaW4gdGhhdCBjYXNlCisgICAgICAgIFJldHVybjxFdnNSZXN1bHQ+IGdvb2RSZXN1bHQgPSBwQ2FtLT5zZXRNYXhGcmFtZXNJbkZsaWdodChrQnVmZmVyc1RvSG9sZCk7CisgICAgICAgIEVYUEVDVF9FUShFdnNSZXN1bHQ6Ok9LLCBnb29kUmVzdWx0KTsKKworCisgICAgICAgIC8vIFNldCB1cCBhIGZyYW1lIHJlY2VpdmVyIG9iamVjdCB3aGljaCB3aWxsIGZpcmUgdXAgaXRzIG93biB0aHJlYWQuCisgICAgICAgIHNwPEZyYW1lSGFuZGxlcj4gZnJhbWVIYW5kbGVyID0gbmV3IEZyYW1lSGFuZGxlcihwQ2FtLCBjYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWVIYW5kbGVyOjplTm9BdXRvUmV0dXJuKTsKKworICAgICAgICAvLyBTdGFydCB0aGUgY2FtZXJhJ3MgdmlkZW8gc3RyZWFtCisgICAgICAgIGJvb2wgc3RhcnRSZXN1bHQgPSBmcmFtZUhhbmRsZXItPnN0YXJ0U3RyZWFtKCk7CisgICAgICAgIEFTU0VSVF9UUlVFKHN0YXJ0UmVzdWx0KTsKKworICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB2aWRlbyBzdHJlYW0gc3RhbGxzIG9uY2Ugd2UndmUgZ290dGVuIGV4YWN0bHkgdGhlIG51bWJlciBvZiBidWZmZXJzCisgICAgICAgIC8vIHdlIHJlcXVlc3RlZCBzaW5jZSB3ZSB0b2xkIHRoZSBmcmFtZUhhbmRsZXIgbm90IHRvIHJldHVybiB0aGVtLgorICAgICAgICBzbGVlcCgyKTsgICAvLyAxIHNlY29uZCBzaG91bGQgYmUgZW5vdWdoIGZvciBhdCBsZWFzdCA1IGZyYW1lcyB0byBiZSBkZWxpdmVyZWQgd29yc3QgY2FzZQorICAgICAgICB1bnNpZ25lZCBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgICAgIGZyYW1lSGFuZGxlci0+Z2V0RnJhbWVzQ291bnRlcnMoJmZyYW1lc1JlY2VpdmVkLCBudWxscHRyKTsKKyAgICAgICAgQVNTRVJUX0VRKGtCdWZmZXJzVG9Ib2xkLCBmcmFtZXNSZWNlaXZlZCkgPDwgIlN0cmVhbSBkaWRuJ3Qgc3RhbGwgYXQgZXhwZWN0ZWQgYnVmZmVyIGxpbWl0IjsKKworCisgICAgICAgIC8vIEdpdmUgYmFjayBvbmUgYnVmZmVyCisgICAgICAgIGJvb2wgZGlkUmV0dXJuQnVmZmVyID0gZnJhbWVIYW5kbGVyLT5yZXR1cm5IZWxkQnVmZmVyKCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGRpZFJldHVybkJ1ZmZlcik7CisKKyAgICAgICAgLy8gT25jZSB3ZSByZXR1cm4gYSBidWZmZXIsIGl0IHNob3VsZG4ndCB0YWtlIG1vcmUgdGhhbiAxLzEwIHNlY29uZCB0byBnZXQgYSBuZXcgb25lCisgICAgICAgIC8vIGZpbGxlZCBzaW5jZSB3ZSByZXF1aXJlIDEwZnBzIG1pbmltdW0gLS0gYnV0IGdpdmUgYSAxMCUgYWxsb3dhbmNlIGp1c3QgaW4gY2FzZS4KKyAgICAgICAgdXNsZWVwKDExMCAqIGtNaWxsaXNlY29uZHNUb01pY3Jvc2Vjb25kcyk7CisgICAgICAgIGZyYW1lSGFuZGxlci0+Z2V0RnJhbWVzQ291bnRlcnMoJmZyYW1lc1JlY2VpdmVkLCBudWxscHRyKTsKKyAgICAgICAgRVhQRUNUX0VRKGtCdWZmZXJzVG9Ib2xkKzEsIGZyYW1lc1JlY2VpdmVkKSA8PCAiU3RyZWFtIHNob3VsZCd2ZSByZXN1bWVkIjsKKworICAgICAgICAvLyBFdmVuIHdoZW4gdGhlIGNhbWVyYSBwb2ludGVyIGdvZXMgb3V0IG9mIHNjb3BlLCB0aGUgRnJhbWVIYW5kbGVyIG9iamVjdCB3aWxsCisgICAgICAgIC8vIGtlZXAgdGhlIHN0cmVhbSBhbGl2ZSB1bmxlc3Mgd2UgdGVsbCBpdCB0byBzaHV0ZG93bi4KKyAgICAgICAgLy8gQWxzbyBub3RlIHRoYXQgdGhlIEZyYW1lSGFuZGxlIGFuZCB0aGUgQ2FtZXJhIGhhdmUgYSBtdXR1YWwgY2lyY3VsYXIgcmVmZXJlbmNlLCBzbworICAgICAgICAvLyB3ZSBoYXZlIHRvIGJyZWFrIHRoYXQgY3ljbGUgaW4gb3JkZXIgZm9yIGVpdGhlciBvZiB0aGVtIHRvIGdldCBjbGVhbmVkIHVwLgorICAgICAgICBmcmFtZUhhbmRsZXItPnNodXRkb3duKCk7CisKKyAgICAgICAgLy8gRXhwbGljaXRseSByZWxlYXNlIHRoZSBjYW1lcmEKKyAgICAgICAgcEVudW1lcmF0b3ItPmNsb3NlQ2FtZXJhKHBDYW0pOworICAgIH0KK30KKworCisvKgorICogQ2FtZXJhVG9EaXNwbGF5Um91bmRUcmlwOgorICogRW5kIHRvIGVuZCB0ZXN0IG9mIGRhdGEgZmxvd2luZyBmcm9tIHRoZSBjYW1lcmEgdG8gdGhlIGRpc3BsYXkuICBFYWNoIGRlbGl2ZXJlZCBmcmFtZSBvZiBjYW1lcmEKKyAqIGltYWdlcnkgaXMgc2ltcGx5IGNvcGllZCB0byB0aGUgZGlzcGxheSBidWZmZXIgYW5kIHByZXNlbnRlZCBvbiBzY3JlZW4uICBUaGlzIGlzIHRoZSBvbmUgdGVzdAorICogd2hpY2ggYSBodW1hbiBjb3VsZCBvYnNlcnZlIHRvIHNlZSB0aGUgb3BlcmF0aW9uIG9mIHRoZSBzeXN0ZW0gb24gdGhlIHBoeXNpY2FsIGRpc3BsYXkuCisgKi8KK1RFU1RfRihFdnNIaWRsVGVzdCwgQ2FtZXJhVG9EaXNwbGF5Um91bmRUcmlwKSB7CisgICAgQUxPR0koIlN0YXJ0aW5nIENhbWVyYVRvRGlzcGxheVJvdW5kVHJpcCB0ZXN0Iik7CisKKyAgICAvLyBHZXQgdGhlIGNhbWVyYSBsaXN0CisgICAgbG9hZENhbWVyYUxpc3QoKTsKKworICAgIC8vIFJlcXVlc3QgZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgRVZTIGRpc3BsYXkKKyAgICBzcDxJRXZzRGlzcGxheT4gcERpc3BsYXkgPSBwRW51bWVyYXRvci0+b3BlbkRpc3BsYXkoKTsKKyAgICBBU1NFUlRfTkUocERpc3BsYXksIG51bGxwdHIpOworCisgICAgLy8gVGVzdCBlYWNoIHJlcG9ydGVkIGNhbWVyYQorICAgIGZvciAoYXV0byYmIGNhbTogY2FtZXJhSW5mbykgeworICAgICAgICBzcCA8SUV2c0NhbWVyYT4gcENhbSA9IHBFbnVtZXJhdG9yLT5vcGVuQ2FtZXJhKGNhbS5jYW1lcmFJZCk7CisgICAgICAgIEFTU0VSVF9ORShwQ2FtLCBudWxscHRyKTsKKworICAgICAgICAvLyBTZXQgdXAgYSBmcmFtZSByZWNlaXZlciBvYmplY3Qgd2hpY2ggd2lsbCBmaXJlIHVwIGl0cyBvd24gdGhyZWFkLgorICAgICAgICBzcDxGcmFtZUhhbmRsZXI+IGZyYW1lSGFuZGxlciA9IG5ldyBGcmFtZUhhbmRsZXIocENhbSwgY2FtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcERpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZUhhbmRsZXI6OmVBdXRvUmV0dXJuKTsKKworCisgICAgICAgIC8vIEFjdGl2YXRlIHRoZSBkaXNwbGF5CisgICAgICAgIHBEaXNwbGF5LT5zZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlOjpWSVNJQkxFX09OX05FWFRfRlJBTUUpOworCisgICAgICAgIC8vIFN0YXJ0IHRoZSBjYW1lcmEncyB2aWRlbyBzdHJlYW0KKyAgICAgICAgYm9vbCBzdGFydFJlc3VsdCA9IGZyYW1lSGFuZGxlci0+c3RhcnRTdHJlYW0oKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoc3RhcnRSZXN1bHQpOworCisgICAgICAgIC8vIFdhaXQgYSB3aGlsZSB0byBsZXQgdGhlIGRhdGEgZmxvdworICAgICAgICBzdGF0aWMgY29uc3QgaW50IGtTZWNvbmRzVG9XYWl0ID0gNTsKKyAgICAgICAgY29uc3QgaW50IHN0cmVhbVRpbWVNcyA9IGtTZWNvbmRzVG9XYWl0ICoga1NlY29uZHNUb01pbGxpc2Vjb25kcyAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWF4U3RyZWFtU3RhcnRNaWxsaXNlY29uZHM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1pbmltdW1GcmFtZXNFeHBlY3RlZCA9IHN0cmVhbVRpbWVNcyAqIGtNaW5pbXVtRnJhbWVzUGVyU2Vjb25kIC8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1NlY29uZHNUb01pbGxpc2Vjb25kczsKKyAgICAgICAgc2xlZXAoa1NlY29uZHNUb1dhaXQpOworICAgICAgICB1bnNpZ25lZCBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgICAgIHVuc2lnbmVkIGZyYW1lc0Rpc3BsYXllZCA9IDA7CisgICAgICAgIGZyYW1lSGFuZGxlci0+Z2V0RnJhbWVzQ291bnRlcnMoJmZyYW1lc1JlY2VpdmVkLCAmZnJhbWVzRGlzcGxheWVkKTsKKyAgICAgICAgRVhQRUNUX0VRKGZyYW1lc1JlY2VpdmVkLCBmcmFtZXNEaXNwbGF5ZWQpOworICAgICAgICBFWFBFQ1RfR0UoZnJhbWVzRGlzcGxheWVkLCBtaW5pbXVtRnJhbWVzRXhwZWN0ZWQpOworCisgICAgICAgIC8vIFR1cm4gb2ZmIHRoZSBkaXNwbGF5ICh5ZXMsIGJlZm9yZSB0aGUgc3RyZWFtIHN0b3BzIC0tIGl0IHNob3VsZCBiZSBoYW5kbGVkKQorICAgICAgICBwRGlzcGxheS0+c2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZTo6Tk9UX1ZJU0lCTEUpOworCisgICAgICAgIC8vIFNodXQgZG93biB0aGUgc3RyZWFtZXIKKyAgICAgICAgZnJhbWVIYW5kbGVyLT5zaHV0ZG93bigpOworCisgICAgICAgIC8vIEV4cGxpY2l0bHkgcmVsZWFzZSB0aGUgY2FtZXJhCisgICAgICAgIHBFbnVtZXJhdG9yLT5jbG9zZUNhbWVyYShwQ2FtKTsKKyAgICB9CisKKyAgICAvLyBFeHBsaWNpdGx5IHJlbGVhc2UgdGhlIGRpc3BsYXkKKyAgICBwRW51bWVyYXRvci0+Y2xvc2VEaXNwbGF5KHBEaXNwbGF5KTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0FuZHJvaWQuYnAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTIxYmVmMAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDcwIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJVmVoaWNsZS5oYWwiLAorICAgICAgICAiSVZlaGljbGVDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvVmVoaWNsZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL1ZlaGljbGVDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JuSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JwSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JzVmVoaWNsZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lId1ZlaGljbGVDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9Cbkh3VmVoaWNsZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JwSHdWZWhpY2xlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQnNWZWhpY2xlQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQW5kcm9pZC5tayBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjA1ZjM1Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTk1MCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGUtVjIuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXNDb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9TdGF0dXNDb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5TdGF0dXNDb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdWJzY3JpYmVGbGFncykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvU3Vic2NyaWJlRmxhZ3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlN1YnNjcmliZUZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdWJzY3JpYmVPcHRpb25zKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9TdWJzY3JpYmVPcHRpb25zLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5TdWJzY3JpYmVPcHRpb25zCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlckJvb3R1cFJlYXNvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJCb290dXBSZWFzb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyQm9vdHVwUmVhc29uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclNldFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclNldFN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlclNldFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlclN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclN0YXRlQ29uZmlnRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJTdGF0ZUNvbmZpZ0ZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU3RhdGVDb25maWdGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclN0YXRlSW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU3RhdGVJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTdGF0ZUluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclN0YXRlU2h1dGRvd25QYXJhbSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJTdGF0ZVNodXRkb3duUGFyYW0uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU3RhdGVTaHV0ZG93blBhcmFtCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWEuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYUNvbmZpZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFDb25maWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhQ29uZmlnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYURvb3IpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhRG9vci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFEb29yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYU1pcnJvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFNaXJyb3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhTWlycm9yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYVNlYXQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhU2VhdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFTZWF0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYVdpbmRvdykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFXaW5kb3cuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhV2luZG93CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYVpvbmUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhWm9uZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFab25lCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Db250ZXh0RmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0NvbnRleHRGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Gb2N1c0luZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Gb2N1c0luZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Gb2N1c0luZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Gb2N1c1JlcXVlc3QpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0ZvY3VzUmVxdWVzdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvRm9jdXNSZXF1ZXN0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Gb2N1c1N0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Gb2N1c1N0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Gb2N1c1N0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Id1ZhcmlhbnRDb25maWdGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Id1ZhcmlhbnRDb25maWdGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Id1ZhcmlhbnRDb25maWdGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Sb3V0aW5nUG9saWN5SW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1JvdXRpbmdQb2xpY3lJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvUm91dGluZ1BvbGljeUluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9TdHJlYW0pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1N0cmVhbS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvU3RyZWFtCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9TdHJlYW1GbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9TdHJlYW1GbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9TdHJlYW1GbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvVm9sdW1lQ2FwYWJpbGl0eUZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZUNhcGFiaWxpdHlGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Wb2x1bWVJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvVm9sdW1lSW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZUluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Wb2x1bWVMaW1pdEluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVMaW1pdEluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Wb2x1bWVMaW1pdEluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Wb2x1bWVTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvVm9sdW1lU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZVN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlRGlzcGxheSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZURpc3BsYXkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVEaXNwbGF5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlRHJpdmluZ1N0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZURyaXZpbmdTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVEcml2aW5nU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlR2VhcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUdlYXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVHZWFyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlSHZhY0ZhbkRpcmVjdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUh2YWNGYW5EaXJlY3Rpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVIdmFjRmFuRGlyZWN0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlSHdLZXlJbnB1dEFjdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUh3S2V5SW5wdXRBY3Rpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVId0tleUlucHV0QWN0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlSWduaXRpb25TdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUlnbml0aW9uU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVJZ25pdGlvblN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcENvbmZpZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BDb25maWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wQ29uZmlnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcFZhbHVlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcFZhbHVlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcFZhbHVlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHkpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlBY2Nlc3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eUFjY2Vzcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5QWNjZXNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlHcm91cCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5R3JvdXAuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eUdyb3VwCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlPcGVyYXRpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eU9wZXJhdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5T3BlcmF0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHlUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUmFkaW9Db25zdGFudHMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVSYWRpb0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVJhZGlvQ29uc3RhbnRzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlVHVyblNpZ25hbCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVR1cm5TaWduYWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVUdXJuU2lnbmFsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlVW5pdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVVuaXQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVVbml0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChXaGVlbCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvV2hlZWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLldoZWVsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVZlaGljbGUuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL0lWZWhpY2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVmVoaWNsZS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSVZlaGljbGVDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmVoaWNsZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjpJVmVoaWNsZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZlaGljbGUuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElWZWhpY2xlQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL0lWZWhpY2xlQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OklWZWhpY2xlQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZS1WMi4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1c0NvZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1N0YXR1c0NvZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlN0YXR1c0NvZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN1YnNjcmliZUZsYWdzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9TdWJzY3JpYmVGbGFncy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuU3Vic2NyaWJlRmxhZ3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN1YnNjcmliZU9wdGlvbnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1N1YnNjcmliZU9wdGlvbnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlN1YnNjcmliZU9wdGlvbnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyQm9vdHVwUmVhc29uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlckJvb3R1cFJlYXNvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJCb290dXBSZWFzb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU2V0U3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU2V0U3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU2V0U3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGVDb25maWdGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclN0YXRlQ29uZmlnRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTdGF0ZUNvbmZpZ0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGVJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJTdGF0ZUluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlclN0YXRlSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGVTaHV0ZG93blBhcmFtKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclN0YXRlU2h1dGRvd25QYXJhbS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTdGF0ZVNodXRkb3duUGFyYW0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWEKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhQ29uZmlnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYUNvbmZpZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFDb25maWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhRG9vcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFEb29yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYURvb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhTWlycm9yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYU1pcnJvci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFNaXJyb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhU2VhdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFTZWF0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYVNlYXQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhV2luZG93KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYVdpbmRvdy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFXaW5kb3cKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhWm9uZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFab25lLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYVpvbmUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0NvbnRleHRGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Db250ZXh0RmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0ZvY3VzSW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0ZvY3VzSW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0ZvY3VzSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0ZvY3VzUmVxdWVzdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvRm9jdXNSZXF1ZXN0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Gb2N1c1JlcXVlc3QKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0ZvY3VzU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0ZvY3VzU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0ZvY3VzU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1JvdXRpbmdQb2xpY3lJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvUm91dGluZ1BvbGljeUluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Sb3V0aW5nUG9saWN5SW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1N0cmVhbSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvU3RyZWFtLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9TdHJlYW0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1N0cmVhbUZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1N0cmVhbUZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1N0cmVhbUZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZUNhcGFiaWxpdHlGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lQ2FwYWJpbGl0eUZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZUluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZVN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVEaXNwbGF5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlRGlzcGxheS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZURpc3BsYXkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVEcml2aW5nU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlRHJpdmluZ1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZURyaXZpbmdTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVHZWFyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlR2Vhci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUdlYXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVIdmFjRmFuRGlyZWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSHZhY0ZhbkRpcmVjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUh2YWNGYW5EaXJlY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVId0tleUlucHV0QWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSHdLZXlJbnB1dEFjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUh3S2V5SW5wdXRBY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVJZ25pdGlvblN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSWduaXRpb25TdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUlnbml0aW9uU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wQ29uZmlnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcENvbmZpZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BDb25maWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wVmFsdWUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wVmFsdWUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wVmFsdWUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eUFjY2VzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5QWNjZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlBY2Nlc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eUdyb3VwKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHlHcm91cC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5R3JvdXAKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eU9wZXJhdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5T3BlcmF0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlPcGVyYXRpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVSYWRpb0NvbnN0YW50cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVJhZGlvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUmFkaW9Db25zdGFudHMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVUdXJuU2lnbmFsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlVHVyblNpZ25hbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVR1cm5TaWduYWwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVVbml0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlVW5pdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVVuaXQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFdoZWVsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9XaGVlbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuV2hlZWwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVmVoaWNsZS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvSVZlaGljbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JVmVoaWNsZUNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OklWZWhpY2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmVoaWNsZS5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVZlaGljbGVDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvSVZlaGljbGVDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZlaGljbGVDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6SVZlaGljbGVDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZlaGljbGVDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaGFsIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk2MmRlMAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaGFsCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA7CisKK2ltcG9ydCBJVmVoaWNsZUNhbGxiYWNrOworCitpbnRlcmZhY2UgSVZlaGljbGUgeworICAvKioKKyAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIHByb3BlcnR5IGNvbmZpZ3VyYXRpb25zIHN1cHBvcnRlZCBieSB0aGlzIHZlaGljbGUKKyAgICogSEFMLgorICAgKi8KKyAgZ2V0QWxsUHJvcENvbmZpZ3MoKSBnZW5lcmF0ZXMgKHZlYzxWZWhpY2xlUHJvcENvbmZpZz4gcHJvcENvbmZpZ3MpOworCisgIC8qKgorICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBwcm9wZXJ0eSBjb25maWd1cmF0aW9ucyBmb3IgZ2l2ZW4gcHJvcGVydGllcy4KKyAgICoKKyAgICogSWYgcmVxdWVzdGVkIFZlaGljbGVQcm9wZXJ0eSB3YXNuJ3QgZm91bmQgaXQgbXVzdCByZXR1cm4KKyAgICogU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkcsIG90aGVyd2lzZSBhIGxpc3Qgb2YgdmVoaWNsZSBwcm9wZXJ0eQorICAgKiBjb25maWd1cmF0aW9ucyB3aXRoIFN0YXR1c0NvZGU6Ok9LCisgICAqLworICBnZXRQcm9wQ29uZmlncyh2ZWM8aW50MzJfdD4gcHJvcHMpCisgICAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXNDb2RlIHN0YXR1cywgdmVjPFZlaGljbGVQcm9wQ29uZmlnPiBwcm9wQ29uZmlncyk7CisKKyAgLyoqCisgICAqIEdldCBhIHZlaGljbGUgcHJvcGVydHkgdmFsdWUuCisgICAqCisgICAqIEZvciBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpTVEFUSUMgcHJvcGVydGllcywgdGhpcyBtZXRob2QgbXVzdCBhbHdheXMKKyAgICogcmV0dXJuIHRoZSBzYW1lIHZhbHVlIGFsd2F5cy4KKyAgICogRm9yIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSBwcm9wZXJ0aWVzLCBpdCBtdXN0IHJldHVybiB0aGUKKyAgICogbGF0ZXN0IGF2YWlsYWJsZSB2YWx1ZS4KKyAgICoKKyAgICogU29tZSBwcm9wZXJ0aWVzIGxpa2UgQVVESU9fVk9MVU1FIHJlcXVpcmVzIHRvIHBhc3MgYWRkaXRpb25hbCBkYXRhIGluCisgICAqIEdFVCByZXF1ZXN0IGluIFZlaGljbGVQcm9wVmFsdWUgb2JqZWN0LgorICAgKgorICAgKiBJZiB0aGVyZSBpcyBubyBkYXRhIGF2YWlsYWJsZSB5ZXQsIHdoaWNoIGNhbiBoYXBwZW4gZHVyaW5nIGluaXRpYWwgc3RhZ2UsCisgICAqIHRoaXMgY2FsbCBtdXN0IHJldHVybiBpbW1lZGlhdGVseSB3aXRoIGFuIGVycm9yIGNvZGUgb2YKKyAgICogU3RhdHVzQ29kZTo6VFJZX0FHQUlOLgorICAgKi8KKyAgZ2V0KFZlaGljbGVQcm9wVmFsdWUgcmVxdWVzdGVkUHJvcFZhbHVlKQorICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzQ29kZSBzdGF0dXMsIFZlaGljbGVQcm9wVmFsdWUgcHJvcFZhbHVlKTsKKworICAvKioKKyAgICogU2V0IGEgdmVoaWNsZSBwcm9wZXJ0eSB2YWx1ZS4KKyAgICoKKyAgICogVGltZXN0YW1wIG9mIGRhdGEgbXVzdCBiZSBpZ25vcmVkIGZvciBzZXQgb3BlcmF0aW9uLgorICAgKgorICAgKiBTZXR0aW5nIHNvbWUgcHJvcGVydGllcyByZXF1aXJlIGhhdmluZyBpbml0aWFsIHN0YXRlIGF2YWlsYWJsZS4gSWYgaW5pdGlhbAorICAgKiBkYXRhIGlzIG5vdCBhdmFpbGFibGUgeWV0IHRoaXMgY2FsbCBtdXN0IHJldHVybiBTdGF0dXNDb2RlOjpUUllfQUdBSU4uCisgICAqIEZvciBhIHByb3BlcnR5IHdpdGggc2VwYXJhdGUgcG93ZXIgY29udHJvbCB0aGlzIGNhbGwgbXVzdCByZXR1cm4KKyAgICogU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBlcnJvciBpZiBwcm9wZXJ0eSBpcyBub3QgcG93ZXJlZCBvbi4KKyAgICovCisgIHNldChWZWhpY2xlUHJvcFZhbHVlIHByb3BWYWx1ZSkgZ2VuZXJhdGVzIChTdGF0dXNDb2RlIHN0YXR1cyk7CisKKyAgLyoqCisgICAqIFN1YnNjcmliZXMgdG8gcHJvcGVydHkgZXZlbnRzLgorICAgKgorICAgKiBDbGllbnRzIG11c3QgYmUgYWJsZSB0byBzdWJzY3JpYmUgdG8gbXVsdGlwbGUgcHJvcGVydGllcyBhdCBhIHRpbWUKKyAgICogZGVwZW5kaW5nIG9uIGRhdGEgcHJvdmlkZWQgaW4gb3B0aW9ucyBhcmd1bWVudC4KKyAgICoKKyAgICogQHBhcmFtIGxpc3RlbmVyIFRoaXMgY2xpZW50IG11c3QgYmUgY2FsbGVkIG9uIGFwcHJvcHJpYXRlIGV2ZW50LgorICAgKiBAcGFyYW0gb3B0aW9ucyBMaXN0IG9mIG9wdGlvbnMgdG8gc3Vic2NyaWJlLiBTdWJzY3JpYmVPcHRpb24gY29udGFpbnMKKyAgICogICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gc3VjaCBhcyBwcm9wZXJ0eSBJZCwgYXJlYSBJZCwgc2FtcGxlIHJhdGUsIGV0Yy4KKyAgICovCisgIHN1YnNjcmliZShJVmVoaWNsZUNhbGxiYWNrIGNhbGxiYWNrLCB2ZWM8U3Vic2NyaWJlT3B0aW9ucz4gb3B0aW9ucykKKyAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1c0NvZGUgc3RhdHVzKTsKKworICAvKioKKyAgICogVW5zdWJzY3JpYmVzIGZyb20gcHJvcGVydHkgZXZlbnRzLgorICAgKgorICAgKiBJZiB0aGlzIGNsaWVudCB3YXNuJ3Qgc3Vic2NyaWJlZCB0byB0aGUgZ2l2ZW4gcHJvcGVydHksIHRoaXMgbWV0aG9kCisgICAqIG11c3QgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHLgorICAgKi8KKyAgdW5zdWJzY3JpYmUoSVZlaGljbGVDYWxsYmFjayBjYWxsYmFjaywgaW50MzJfdCBwcm9wSWQpCisgICAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXNDb2RlIHN0YXR1cyk7CisKKyAgLyoqCisgICAqIFByaW50IG91dCBkZWJ1Z2dpbmcgc3RhdGUgZm9yIHRoZSB2ZWhpY2xlIGhhbC4KKyAgICoKKyAgICogVGhlIHRleHQgbXVzdCBiZSBpbiBBU0NJSSBlbmNvZGluZyBvbmx5LgorICAgKgorICAgKiBQZXJmb3JtYW5jZSByZXF1aXJlbWVudHM6CisgICAqCisgICAqIFRoZSBIQUwgbXVzdCByZXR1cm4gZnJvbSB0aGlzIGNhbGwgaW4gbGVzcyB0aGFuIDEwbXMuIFRoaXMgY2FsbCBtdXN0IGF2b2lkCisgICAqIGRlYWRsb2NrcywgYXMgaXQgbWF5IGJlIGNhbGxlZCBhdCBhbnkgcG9pbnQgb2Ygb3BlcmF0aW9uLiBBbnkgc3luY2hyb25pemF0aW9uCisgICAqIHByaW1pdGl2ZXMgdXNlZCAoc3VjaCBhcyBtdXRleCBsb2NrcyBvciBzZW1hcGhvcmVzKSBtdXN0IGJlIGFjcXVpcmVkCisgICAqIHdpdGggYSB0aW1lb3V0LgorICAgKgorICAgKi8KKyAgZGVidWdEdW1wKCkgZ2VuZXJhdGVzIChzdHJpbmcgcyk7Cit9OwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZUNhbGxiYWNrLmhhbCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGVDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA2MDQxOAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGVDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOworCitpbnRlcmZhY2UgSVZlaGljbGVDYWxsYmFjayB7CisKKyAgICAvKioKKyAgICAgKiBFdmVudCBjYWxsYmFjayBoYXBwZW5zIHdoZW5ldmVyIGEgdmFyaWFibGUgdGhhdCB0aGUgQVBJIHVzZXIgaGFzCisgICAgICogc3Vic2NyaWJlZCB0byBuZWVkcyB0byBiZSByZXBvcnRlZC4gVGhpcyBtYXkgYmUgYmFzZWQgcHVyZWx5IG9uCisgICAgICogdGhyZXNob2xkIGFuZCBmcmVxdWVuY3kgKGEgcmVndWxhciBzdWJzY3JpcHRpb24sIHNlZSBzdWJzY3JpYmUgY2FsbCdzCisgICAgICogYXJndW1lbnRzKSBvciB3aGVuIHRoZSBJVmVoaWNsZSNzZXQgbWV0aG9kIHdhcyBjYWxsZWQgYW5kIHRoZSBhY3R1YWwKKyAgICAgKiBjaGFuZ2UgbmVlZHMgdG8gYmUgcmVwb3J0ZWQuCisgICAgICoKKyAgICAgKiBUaGVzZSBjYWxsYmFja3MgYXJlIGNodW5rZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWVzIHRoYXQgaGFzIGJlZW4gdXBkYXRlZC4KKyAgICAgKi8KKyAgICBvbmV3YXkgb25Qcm9wZXJ0eUV2ZW50KHZlYzxWZWhpY2xlUHJvcFZhbHVlPiBwcm9wVmFsdWVzKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGdldHMgY2FsbGVkIGlmIHRoZSBjbGllbnQgd2FzIHN1YnNjcmliZWQgdG8gYSBwcm9wZXJ0eSB1c2luZworICAgICAqIFN1YnNjcmliZUZsYWdzOjpTRVRfQ0FMTCBmbGFnIGFuZCBJVmVoaWNsZSNzZXQoLi4uKSBtZXRob2Qgd2FzIGNhbGxlZC4KKyAgICAgKgorICAgICAqIFRoZXNlIGV2ZW50cyBtdXN0IGJlIGRlbGl2ZXJlZCB0byBzdWJzY3JpYmVyIGltbWVkaWF0ZWx5IHdpdGhvdXQgYW55CisgICAgICogYmF0Y2hpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdGhhdCB3YXMgc2V0IGJ5IGEgY2xpZW50LgorICAgICAqLworICAgIG9uZXdheSBvblByb3BlcnR5U2V0KFZlaGljbGVQcm9wVmFsdWUgcHJvcFZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFNldCBwcm9wZXJ0eSB2YWx1ZSBpcyB1c3VhbGx5IGFzeW5jaHJvbm91cyBvcGVyYXRpb24uIFRodXMgZXZlbiBpZgorICAgICAqIGNsaWVudCByZWNlaXZlZCBTdGF0dXNDb2RlOjpPSyBmcm9tIHRoZSBJVmVoaWNsZTo6c2V0KC4uLikgdGhpcworICAgICAqIGRvZXNuJ3QgZ3VhcmFudGVlIHRoYXQgdGhlIHZhbHVlIHdhcyBzdWNjZXNzZnVsbHkgcHJvcGFnYXRlZCB0byB0aGUKKyAgICAgKiB2ZWhpY2xlIG5ldHdvcmsuIElmIHN1Y2ggcmFyZSBldmVudCBvY2N1cnMgdGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJyb3JDb2RlIC0gYW55IHZhbHVlIGZyb20gU3RhdHVzQ29kZSBlbnVtLgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSAtIGEgcHJvcGVydHkgd2hlcmUgZXJyb3IgaGFzIGhhcHBlbmVkLgorICAgICAqIEBwYXJhbSBhcmVhSWQgLSBiaXRtYXNrIHRoYXQgc3BlY2lmaWVzIGluIHdoaWNoIGFyZWFzIHRoZSBwcm9ibGVtIGhhcworICAgICAqICAgICAgICAgICAgICAgICBvY2N1cnJlZCwgbXVzdCBiZSAwIGZvciBnbG9iYWwgcHJvcGVydGllcworICAgICAqLworICAgIG9uZXdheSBvblByb3BlcnR5U2V0RXJyb3IoU3RhdHVzQ29kZSBlcnJvckNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByb3BJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgYXJlYUlkKTsKK307CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1ZjU2NzgKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE3MSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCit2aGFsX3YyXzAgPSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBWZWhpY2xlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBsaWIKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9ICQodmhhbF92Ml8wKS1tYW5hZ2VyLWxpYgorTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBjb21tb24vc3JjL1N1YnNjcmlwdGlvbk1hbmFnZXIuY3BwIFwKKyAgICBjb21tb24vc3JjL1ZlaGljbGVIYWxNYW5hZ2VyLmNwcCBcCisgICAgY29tbW9uL3NyYy9WZWhpY2xlT2JqZWN0UG9vbC5jcHAgXAorICAgIGNvbW1vbi9zcmMvVmVoaWNsZVByb3BlcnR5U3RvcmUuY3BwIFwKKyAgICBjb21tb24vc3JjL1ZlaGljbGVVdGlscy5jcHAgXAorCitMT0NBTF9DX0lOQ0xVREVTIDo9IFwKKyAgICAkKExPQ0FMX1BBVEgpL2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMAorCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvY29tbW9uL2luY2x1ZGUKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmh3YmluZGVyIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICAkKHZoYWxfdjJfMCkgXAorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0xJQlJBUlkpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVmVoaWNsZSBIQUwgUHJvdG9idWYgbGlicmFyeQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9TUkNfRklMRVMgOj0gJChjYWxsIGFsbC1wcm90by1maWxlcy11bmRlciwgaW1wbC92aGFsX3YyXzAvcHJvdG8pCisKK0xPQ0FMX1BST1RPQ19PUFRJTUlaRV9UWVBFIDo9IG5hbm8KKworTE9DQUxfTU9EVUxFIDo9ICQodmhhbF92Ml8wKS1saWJwcm90by1uYXRpdmUKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBTVEFUSUNfTElCUkFSSUVTCisKK0xPQ0FMX01PRFVMRV9UQUdTIDo9IG9wdGlvbmFsCisKK0xPQ0FMX1NUUklQX01PRFVMRSA6PSBrZWVwX3N5bWJvbHMKKworZ2VuZXJhdGVkX3NvdXJjZXNfZGlyIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIpCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gXAorICAgICQoZ2VuZXJhdGVkX3NvdXJjZXNfZGlyKS9wcm90by8kKExPQ0FMX1BBVEgpL2ltcGwvdmhhbF92Ml8wL3Byb3RvCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlaGljbGUgZGVmYXVsdCBWZWhpY2xlSEFMIGltcGxlbWVudGF0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFOj0gJCh2aGFsX3YyXzApLWRlZmF1bHQtaW1wbC1saWIKK0xPQ0FMX1NSQ19GSUxFUzo9IFwKKyAgICBpbXBsL3ZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuY3BwIFwKKyAgICBpbXBsL3ZoYWxfdjJfMC9WZWhpY2xlRW11bGF0b3IuY3BwIFwKKyAgICBpbXBsL3ZoYWxfdjJfMC9QaXBlQ29tbS5jcHAgXAorICAgIGltcGwvdmhhbF92Ml8wL1NvY2tldENvbW0uY3BwIFwKKworTE9DQUxfQ19JTkNMVURFUyA6PSBcCisgICAgJChMT0NBTF9QQVRIKS9pbXBsL3ZoYWxfdjJfMAorCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvaW1wbAorCitMT0NBTF9XSE9MRV9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKyAgICAkKHZoYWxfdjJfMCktbWFuYWdlci1saWIgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGliaHdiaW5kZXIgXAorICAgIGxpYmxvZyBcCisgICAgbGlicHJvdG9idWYtY3BwLWxpdGUgXAorICAgIGxpYnV0aWxzIFwKKyAgICAkKHZoYWxfdjJfMCkgXAorCitMT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKyAgICAkKHZoYWxfdjJfMCktbGlicHJvdG8tbmF0aXZlIFwKKworTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXh0cmEgLVdlcnJvcgorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBWZWhpY2xlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiB1bml0IHRlc3RzCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFOj0gJCh2aGFsX3YyXzApLW1hbmFnZXItdW5pdC10ZXN0cworCitMT0NBTF9XSE9MRV9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKyAgICAkKHZoYWxfdjJfMCktbWFuYWdlci1saWIgXAorCitMT0NBTF9TUkNfRklMRVM6PSBcCisgICAgdGVzdHMvUmVjdXJyZW50VGltZXJfdGVzdC5jcHAgXAorICAgIHRlc3RzL1N1YnNjcmlwdGlvbk1hbmFnZXJfdGVzdC5jcHAgXAorICAgIHRlc3RzL1ZlaGljbGVIYWxNYW5hZ2VyX3Rlc3QuY3BwIFwKKyAgICB0ZXN0cy9WZWhpY2xlT2JqZWN0UG9vbF90ZXN0LmNwcCBcCisgICAgdGVzdHMvVmVoaWNsZVByb3BDb25maWdJbmRleF90ZXN0LmNwcCBcCisKK0xPQ0FMX0hFQURFUl9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmJhc2VfaGVhZGVycworCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGliaHdiaW5kZXIgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgICQodmhhbF92Ml8wKSBcCisKK0xPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2V4dHJhIC1XZXJyb3IKK0xPQ0FMX01PRFVMRV9UQUdTIDo9IHRlc3RzCisKK2luY2x1ZGUgJChCVUlMRF9OQVRJVkVfVEVTVCkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlaGljbGUgSEFMIHNlcnZpY2UKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9ICQodmhhbF92Ml8wKS1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9ICQodmhhbF92Ml8wKS1zZXJ2aWNlLnJjCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKKworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBWZWhpY2xlU2VydmljZS5jcHAKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliYmFzZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmh3YmluZGVyIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnByb3RvYnVmLWNwcC1saXRlIFwKKyAgICBsaWJ1dGlscyBcCisgICAgJCh2aGFsX3YyXzApIFwKKworTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBcCisgICAgJCh2aGFsX3YyXzApLW1hbmFnZXItbGliIFwKKyAgICAkKHZoYWxfdjJfMCktZGVmYXVsdC1pbXBsLWxpYiBcCisgICAgJCh2aGFsX3YyXzApLWxpYnByb3RvLW5hdGl2ZSBcCisKK0xPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2V4dHJhIC1XZXJyb3IKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvVmVoaWNsZVNlcnZpY2UuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L1ZlaGljbGVTZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWZkNTU1Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L1ZlaGljbGVTZXJ2aWNlLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhdXRvbW90aXZlLnZlaGljbGVAMi4wLXNlcnZpY2UiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisKKyNpbmNsdWRlIDxpb3N0cmVhbT4KKworI2luY2x1ZGUgPHZoYWxfdjJfMC9WZWhpY2xlSGFsTWFuYWdlci5oPgorI2luY2x1ZGUgPHZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuaD4KKwordXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ7Cit1c2luZyBuYW1lc3BhY2UgYW5kcm9pZDo6aGFyZHdhcmU7Cit1c2luZyBuYW1lc3BhY2UgYW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OnZlaGljbGU6OlYyXzA7CisKK2ludCBtYWluKGludCAvKiBhcmdjICovLCBjaGFyKiAvKiBhcmd2ICovIFtdKSB7CisgICAgYXV0byBzdG9yZSA9IHN0ZDo6bWFrZV91bmlxdWU8VmVoaWNsZVByb3BlcnR5U3RvcmU+KCk7CisgICAgYXV0byBoYWwgPSBzdGQ6Om1ha2VfdW5pcXVlPGltcGw6OkVtdWxhdGVkVmVoaWNsZUhhbD4oc3RvcmUuZ2V0KCkpOworICAgIGF1dG8gZW11bGF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPGltcGw6OlZlaGljbGVFbXVsYXRvcj4oaGFsLmdldCgpKTsKKyAgICBhdXRvIHNlcnZpY2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlaGljbGVIYWxNYW5hZ2VyPihoYWwuZ2V0KCkpOworCisgICAgY29uZmlndXJlUnBjVGhyZWFkcG9vbCg0LCB0cnVlIC8qIGNhbGxlcldpbGxKb2luICovKTsKKworICAgIEFMT0dJKCJSZWdpc3RlcmluZyBhcyBzZXJ2aWNlLi4uIik7CisgICAgc3RhdHVzX3Qgc3RhdHVzID0gc2VydmljZS0+cmVnaXN0ZXJBc1NlcnZpY2UoKTsKKworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR0UoIlVuYWJsZSB0byByZWdpc3RlciB2ZWhpY2xlIHNlcnZpY2UgKCVkKSIsIHN0YXR1cyk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIEFMT0dJKCJSZWFkeSIpOworICAgIGpvaW5ScGNUaHJlYWRwb29sKCk7CisKKyAgICByZXR1cm4gMTsKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAtc2VydmljZS5yYyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGUyNDllCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSB2ZWhpY2xlLWhhbC0yLjAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHZlaGljbGVfbmV0d29yaworICAgIGdyb3VwIHN5c3RlbSBpbmV0CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL0NvbmN1cnJlbnRRdWV1ZS5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9Db25jdXJyZW50UXVldWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjM0MjlmCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9Db25jdXJyZW50UXVldWUuaApAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9Db25jdXJyZW50UXVldWVfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9Db25jdXJyZW50UXVldWVfSF8KKworI2luY2x1ZGUgPHF1ZXVlPgorI2luY2x1ZGUgPGF0b21pYz4KKyNpbmNsdWRlIDx0aHJlYWQ+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPGlvc3RyZWFtPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBDb25jdXJyZW50UXVldWUgeworcHVibGljOgorICAgIHZvaWQgd2FpdEZvckl0ZW1zKCkgeworICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworICAgICAgICB3aGlsZSAobVF1ZXVlLmVtcHR5KCkgJiYgbUlzQWN0aXZlKSB7CisgICAgICAgICAgICBtQ29uZC53YWl0KGcpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RkOjp2ZWN0b3I8VD4gZmx1c2goKSB7CisgICAgICAgIHN0ZDo6dmVjdG9yPFQ+IGl0ZW1zOworCisgICAgICAgIE11eEd1YXJkIGcobUxvY2spOworICAgICAgICBpZiAobVF1ZXVlLmVtcHR5KCkgfHwgIW1Jc0FjdGl2ZSkgeworICAgICAgICAgICAgcmV0dXJuIGl0ZW1zOworICAgICAgICB9CisgICAgICAgIHdoaWxlICghbVF1ZXVlLmVtcHR5KCkpIHsKKyAgICAgICAgICAgIGl0ZW1zLnB1c2hfYmFjayhzdGQ6Om1vdmUobVF1ZXVlLmZyb250KCkpKTsKKyAgICAgICAgICAgIG1RdWV1ZS5wb3AoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaXRlbXM7CisgICAgfQorCisgICAgdm9pZCBwdXNoKFQmJiBpdGVtKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11eEd1YXJkIGcobUxvY2spOworICAgICAgICAgICAgaWYgKCFtSXNBY3RpdmUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtUXVldWUucHVzaChzdGQ6Om1vdmUoaXRlbSkpOworICAgICAgICB9CisgICAgICAgIG1Db25kLm5vdGlmeV9vbmUoKTsKKyAgICB9CisKKyAgICAvKiBEZWFjdGl2YXRlcyB0aGUgcXVldWUsIHRodXMgbm8gb25lIGNhbiBwdXNoIGl0ZW1zIHRvIGl0LCBhbHNvCisgICAgICogbm90aWZpZXMgYWxsIHdhaXRpbmcgdGhyZWFkLgorICAgICAqLworICAgIHZvaWQgZGVhY3RpdmF0ZSgpIHsKKyAgICAgICAgeworICAgICAgICAgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgICAgICAgICBtSXNBY3RpdmUgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBtQ29uZC5ub3RpZnlfYWxsKCk7ICAvLyBUbyB1bmJsb2NrIGFsbCB3YWl0aW5nIGNvbnN1bWVycy4KKyAgICB9CisKKyAgICBDb25jdXJyZW50UXVldWUoKSA9IGRlZmF1bHQ7CisKKyAgICBDb25jdXJyZW50UXVldWUoY29uc3QgQ29uY3VycmVudFF1ZXVlICYpID0gZGVsZXRlOworICAgIENvbmN1cnJlbnRRdWV1ZSAmb3BlcmF0b3I9KGNvbnN0IENvbmN1cnJlbnRRdWV1ZSAmKSA9IGRlbGV0ZTsKK3ByaXZhdGU6CisgICAgdXNpbmcgTXV4R3VhcmQgPSBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD47CisKKyAgICBib29sIG1Jc0FjdGl2ZSA9IHRydWU7CisgICAgbXV0YWJsZSBzdGQ6Om11dGV4IG1Mb2NrOworICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1Db25kOworICAgIHN0ZDo6cXVldWU8VD4gbVF1ZXVlOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIEJhdGNoaW5nQ29uc3VtZXIgeworcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsKKyAgICAgICAgSU5JVCA9IDAsCisgICAgICAgIFJVTk5JTkcgPSAxLAorICAgICAgICBTVE9QX1JFUVVFU1RFRCA9IDIsCisgICAgICAgIFNUT1BQRUQgPSAzLAorICAgIH07CisKK3B1YmxpYzoKKyAgICBCYXRjaGluZ0NvbnN1bWVyKCkgOiBtU3RhdGUoU3RhdGU6OklOSVQpIHt9CisKKyAgICBCYXRjaGluZ0NvbnN1bWVyKGNvbnN0IEJhdGNoaW5nQ29uc3VtZXIgJikgPSBkZWxldGU7CisgICAgQmF0Y2hpbmdDb25zdW1lciAmb3BlcmF0b3I9KGNvbnN0IEJhdGNoaW5nQ29uc3VtZXIgJikgPSBkZWxldGU7CisKKyAgICB1c2luZyBPbkJhdGNoUmVjZWl2ZWRGdW5jID0gc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IHN0ZDo6dmVjdG9yPFQ+JiB2ZWMpPjsKKworICAgIHZvaWQgcnVuKENvbmN1cnJlbnRRdWV1ZTxUPiogcXVldWUsCisgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGJhdGNoSW50ZXJ2YWwsCisgICAgICAgICAgICAgY29uc3QgT25CYXRjaFJlY2VpdmVkRnVuYyYgZnVuYykgeworICAgICAgICBtUXVldWUgPSBxdWV1ZTsKKyAgICAgICAgbUJhdGNoSW50ZXJ2YWwgPSBiYXRjaEludGVydmFsOworCisgICAgICAgIG1Xb3JrZXJUaHJlYWQgPSBzdGQ6OnRocmVhZCgKKyAgICAgICAgICAgICZCYXRjaGluZ0NvbnN1bWVyPFQ+OjpydW5JbnRlcm5hbCwgdGhpcywgZnVuYyk7CisgICAgfQorCisgICAgdm9pZCByZXF1ZXN0U3RvcCgpIHsKKyAgICAgICAgbVN0YXRlID0gU3RhdGU6OlNUT1BfUkVRVUVTVEVEOworICAgIH0KKworICAgIHZvaWQgd2FpdFN0b3BwZWQoKSB7CisgICAgICAgIGlmIChtV29ya2VyVGhyZWFkLmpvaW5hYmxlKCkpIHsKKyAgICAgICAgICAgIG1Xb3JrZXJUaHJlYWQuam9pbigpOworICAgICAgICB9CisgICAgfQorCitwcml2YXRlOgorICAgIHZvaWQgcnVuSW50ZXJuYWwoY29uc3QgT25CYXRjaFJlY2VpdmVkRnVuYyYgb25CYXRjaFJlY2VpdmVkKSB7CisgICAgICAgIGlmIChtU3RhdGUuZXhjaGFuZ2UoU3RhdGU6OlJVTk5JTkcpID09IFN0YXRlOjpJTklUKSB7CisgICAgICAgICAgICB3aGlsZSAoU3RhdGU6OlJVTk5JTkcgPT0gbVN0YXRlKSB7CisgICAgICAgICAgICAgICAgbVF1ZXVlLT53YWl0Rm9ySXRlbXMoKTsKKyAgICAgICAgICAgICAgICBpZiAoU3RhdGU6OlNUT1BfUkVRVUVTVEVEID09IG1TdGF0ZSkgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3IobUJhdGNoSW50ZXJ2YWwpOworICAgICAgICAgICAgICAgIGlmIChTdGF0ZTo6U1RPUF9SRVFVRVNURUQgPT0gbVN0YXRlKSBicmVhazsKKworICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPFQ+IGl0ZW1zID0gbVF1ZXVlLT5mbHVzaCgpOworCisgICAgICAgICAgICAgICAgaWYgKGl0ZW1zLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgb25CYXRjaFJlY2VpdmVkKGl0ZW1zKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBtU3RhdGUgPSBTdGF0ZTo6U1RPUFBFRDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp0aHJlYWQgbVdvcmtlclRocmVhZDsKKworICAgIHN0ZDo6YXRvbWljPFN0YXRlPiBtU3RhdGU7CisgICAgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIG1CYXRjaEludGVydmFsOworICAgIENvbmN1cnJlbnRRdWV1ZTxUPiogbVF1ZXVlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9Db25jdXJyZW50UXVldWVfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvUmVjdXJyZW50VGltZXIuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvUmVjdXJyZW50VGltZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTI1YWRjCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9SZWN1cnJlbnRUaW1lci5oCkBAIC0wLDAgKzEsMTQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1JlY3VycmVudFRpbWVyX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfUmVjdXJyZW50VGltZXJfSF8KKworI2luY2x1ZGUgPGF0b21pYz4KKyNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSA8bGlzdD4KKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8dGhyZWFkPgorI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisKKy8qKgorICogVGhpcyBjbGFzcyBhbGxvd3MgdG8gc3BlY2lmeSBtdWx0aXBsZSB0aW1lIGludGVydmFscyB0byByZWNlaXZlCisgKiBub3RpZmljYXRpb25zLiBBIHNpbmdsZSB0aHJlYWQgaXMgdXNlZCBpbnRlcm5hbGx5LgorICovCitjbGFzcyBSZWN1cnJlbnRUaW1lciB7Citwcml2YXRlOgorICAgIHVzaW5nIE5hbm9zID0gc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzOworICAgIHVzaW5nIENsb2NrID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazsKKyAgICB1c2luZyBUaW1lUG9pbnQgPSBzdGQ6OmNocm9ubzo6dGltZV9wb2ludDxDbG9jaywgTmFub3M+OworcHVibGljOgorICAgIHVzaW5nIEFjdGlvbiA9IHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBzdGQ6OnZlY3RvcjxpbnQzMl90PiYgY29va2llcyk+OworCisgICAgUmVjdXJyZW50VGltZXIoY29uc3QgQWN0aW9uJiBhY3Rpb24pIDogbUFjdGlvbihhY3Rpb24pIHsKKyAgICAgICAgbVRpbWVyVGhyZWFkID0gc3RkOjp0aHJlYWQoJlJlY3VycmVudFRpbWVyOjpsb29wLCB0aGlzLCBhY3Rpb24pOworICAgIH0KKworICAgIHZpcnR1YWwgflJlY3VycmVudFRpbWVyKCkgeworICAgICAgICBzdG9wKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIHJlY3VycmVudCBldmVudCBmb3IgYSBnaXZlbiBpbnRlcnZhbC4gUmVnaXN0cmVkIGV2ZW50cyBhcmUgZGlzdGluZ3Vpc2hlZCBieQorICAgICAqIGNvb2tpZXMgdGh1cyBjYWxsaW5nIHRoaXMgbWV0aG9kIG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgY29va2llIHdpbGwgb3ZlcnJpZGUgdGhlCisgICAgICogaW50ZXJ2YWwgcHJvdmlkZWQgYmVmb3JlLgorICAgICAqLworICAgIHZvaWQgcmVnaXN0ZXJSZWN1cnJlbnRFdmVudChzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMgaW50ZXJ2YWwsIGludDMyX3QgY29va2llKSB7CisgICAgICAgIFRpbWVQb2ludCBub3cgPSBDbG9jazo6bm93KCk7CisgICAgICAgIC8vIEFsaWduIGV2ZW50IHRpbWUgcG9pbnQgYW1vbmcgYWxsIGludGVydmFscy4gVGh1cyBpZiB3ZSBoYXZlIHR3byBpbnRlcnZhbHMgMW1zIGFuZCAybXMsCisgICAgICAgIC8vIGR1cmluZyBldmVyeSBzZWNvbmQgd2FrZS11cCBib3RoIGludGVydmFscyB3aWxsIGJlIHRyaWdnZXJlZC4KKyAgICAgICAgVGltZVBvaW50IGFic29sdXRlVGltZSA9IG5vdyAtIE5hbm9zKG5vdy50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSAlIGludGVydmFsLmNvdW50KCkpOworCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBnKG1Mb2NrKTsKKyAgICAgICAgICAgIG1Db29raWVUb0V2ZW50c01hcFtjb29raWVdID0geyBpbnRlcnZhbCwgY29va2llLCBhYnNvbHV0ZVRpbWUgfTsKKyAgICAgICAgfQorICAgICAgICBtQ29uZC5ub3RpZnlfb25lKCk7CisgICAgfQorCisgICAgdm9pZCB1bnJlZ2lzdGVyUmVjdXJyZW50RXZlbnQoaW50MzJfdCBjb29raWUpIHsKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworICAgICAgICAgICAgbUNvb2tpZVRvRXZlbnRzTWFwLmVyYXNlKGNvb2tpZSk7CisgICAgICAgIH0KKyAgICAgICAgbUNvbmQubm90aWZ5X29uZSgpOworICAgIH0KKworCitwcml2YXRlOgorCisgICAgc3RydWN0IFJlY3VycmVudEV2ZW50IHsKKyAgICAgICAgTmFub3MgaW50ZXJ2YWw7CisgICAgICAgIGludDMyX3QgY29va2llOworICAgICAgICBUaW1lUG9pbnQgYWJzb2x1dGVUaW1lOyAgLy8gQWJzb2x1dGUgdGltZSBvZiB0aGUgbmV4dCBldmVudC4KKworICAgICAgICB2b2lkIHVwZGF0ZU5leHRFdmVudFRpbWUoVGltZVBvaW50IG5vdykgeworICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBtb3ZlIHRpbWUgdG8gbmV4dCBldmVudCBieSBhZGRpbmcgc29tZSBudW1iZXIgb2YgaW50ZXJ2YWxzICh1c3VhbGx5IDEpCisgICAgICAgICAgICAvLyB0byBwcmV2aW91cyBhYnNvbHV0ZVRpbWUuCisgICAgICAgICAgICBpbnQgaW50ZXJ2YWxNdWx0aXBsaWVyID0gKG5vdyAtIGFic29sdXRlVGltZSkgLyBpbnRlcnZhbDsKKyAgICAgICAgICAgIGlmIChpbnRlcnZhbE11bHRpcGxpZXIgPD0gMCkgaW50ZXJ2YWxNdWx0aXBsaWVyID0gMTsKKyAgICAgICAgICAgIGFic29sdXRlVGltZSArPSBpbnRlcnZhbE11bHRpcGxpZXIgKiBpbnRlcnZhbDsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB2b2lkIGxvb3AoY29uc3QgQWN0aW9uJiBhY3Rpb24pIHsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIGtJbnZhbGlkVGltZSA9IFRpbWVQb2ludChOYW5vczo6bWF4KCkpOworCisgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IGNvb2tpZXM7CisKKyAgICAgICAgd2hpbGUgKCFtU3RvcFJlcXVlc3RlZCkgeworICAgICAgICAgICAgYXV0byBub3cgPSBDbG9jazo6bm93KCk7CisgICAgICAgICAgICBhdXRvIG5leHRFdmVudFRpbWUgPSBrSW52YWxpZFRpbWU7CisgICAgICAgICAgICBjb29raWVzLmNsZWFyKCk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworCisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiYgaXQgOiBtQ29va2llVG9FdmVudHNNYXApIHsKKyAgICAgICAgICAgICAgICAgICAgUmVjdXJyZW50RXZlbnQmIGV2ZW50ID0gaXQuc2Vjb25kOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuYWJzb2x1dGVUaW1lIDw9IG5vdykgeworICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQudXBkYXRlTmV4dEV2ZW50VGltZShub3cpOworICAgICAgICAgICAgICAgICAgICAgICAgY29va2llcy5wdXNoX2JhY2soZXZlbnQuY29va2llKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0RXZlbnRUaW1lID4gZXZlbnQuYWJzb2x1dGVUaW1lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0RXZlbnRUaW1lID0gZXZlbnQuYWJzb2x1dGVUaW1lOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY29va2llcy5zaXplKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGFjdGlvbihjb29raWVzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBnKG1Mb2NrKTsKKyAgICAgICAgICAgIG1Db25kLndhaXRfdW50aWwoZywgbmV4dEV2ZW50VGltZSk7ICAvLyBuZXh0RXZlbnRUaW1lIGNhbiBiZSBuYW5vc2Vjb25kczo6bWF4KCkKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgc3RvcCgpIHsKKyAgICAgICAgbVN0b3BSZXF1ZXN0ZWQgPSB0cnVlOworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gZyhtTG9jayk7CisgICAgICAgICAgICBtQ29va2llVG9FdmVudHNNYXAuY2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICBtQ29uZC5ub3RpZnlfb25lKCk7CisgICAgICAgIGlmIChtVGltZXJUaHJlYWQuam9pbmFibGUoKSkgeworICAgICAgICAgICAgbVRpbWVyVGhyZWFkLmpvaW4oKTsKKyAgICAgICAgfQorICAgIH0KK3ByaXZhdGU6CisgICAgbXV0YWJsZSBzdGQ6Om11dGV4IG1Mb2NrOworICAgIHN0ZDo6dGhyZWFkIG1UaW1lclRocmVhZDsKKyAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBtQ29uZDsKKyAgICBzdGQ6OmF0b21pY19ib29sIG1TdG9wUmVxdWVzdGVkIHsgZmFsc2UgfTsKKyAgICBBY3Rpb24gbUFjdGlvbjsKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8aW50MzJfdCwgUmVjdXJyZW50RXZlbnQ+IG1Db29raWVUb0V2ZW50c01hcDsKK307CisKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1JlY3VycmVudFRpbWVyX0gKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvU3Vic2NyaXB0aW9uTWFuYWdlci5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9TdWJzY3JpcHRpb25NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU5MDg5ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvU3Vic2NyaXB0aW9uTWFuYWdlci5oCkBAIC0wLDAgKzEsMTgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1N1YnNjcmlwdGlvbk1hbmFnZXJfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9TdWJzY3JpcHRpb25NYW5hZ2VyX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDxsaXN0PgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisjaW5jbHVkZSA8dXRpbHMvU29ydGVkVmVjdG9yLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaD4KKworI2luY2x1ZGUgIkNvbmN1cnJlbnRRdWV1ZS5oIgorI2luY2x1ZGUgIlZlaGljbGVPYmplY3RQb29sLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK2NsYXNzIEhhbENsaWVudCA6IHB1YmxpYyBhbmRyb2lkOjpSZWZCYXNlIHsKK3B1YmxpYzoKKyAgICBIYWxDbGllbnQoY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4gJmNhbGxiYWNrKQorICAgICAgICA6IG1DYWxsYmFjayhjYWxsYmFjaykge30KKworICAgIHZpcnR1YWwgfkhhbENsaWVudCgpIHt9CitwdWJsaWM6CisgICAgc3A8SVZlaGljbGVDYWxsYmFjaz4gZ2V0Q2FsbGJhY2soKSBjb25zdCB7CisgICAgICAgIHJldHVybiBtQ2FsbGJhY2s7CisgICAgfQorCisgICAgdm9pZCBhZGRPclVwZGF0ZVN1YnNjcmlwdGlvbihjb25zdCBTdWJzY3JpYmVPcHRpb25zICZvcHRzKTsKKyAgICBib29sIGlzU3Vic2NyaWJlZChpbnQzMl90IHByb3BJZCwgaW50MzJfdCBhcmVhSWQsIFN1YnNjcmliZUZsYWdzIGZsYWdzKTsKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBnZXRTdWJzY3JpYmVkUHJvcGVydGllcygpIGNvbnN0OworCitwcml2YXRlOgorICAgIGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+IG1DYWxsYmFjazsKKworICAgIHN0ZDo6bWFwPGludDMyX3QsIFN1YnNjcmliZU9wdGlvbnM+IG1TdWJzY3JpcHRpb25zOworfTsKKworY2xhc3MgSGFsQ2xpZW50VmVjdG9yIDogcHJpdmF0ZSBTb3J0ZWRWZWN0b3I8c3A8SGFsQ2xpZW50Pj4gLCBwdWJsaWMgUmVmQmFzZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+SGFsQ2xpZW50VmVjdG9yKCkge30KKworICAgIGlubGluZSB2b2lkIGFkZE9yVXBkYXRlKGNvbnN0IHNwPEhhbENsaWVudD4gJmNsaWVudCkgeworICAgICAgICBTb3J0ZWRWZWN0b3I6OmFkZChjbGllbnQpOworICAgIH0KKworICAgIHVzaW5nIFNvcnRlZFZlY3Rvcjo6cmVtb3ZlOworICAgIHVzaW5nIFNvcnRlZFZlY3Rvcjo6c2l6ZTsKKyAgICB1c2luZyBTb3J0ZWRWZWN0b3I6OmluZGV4T2Y7CisgICAgdXNpbmcgU29ydGVkVmVjdG9yOjppdGVtQXQ7CisgICAgdXNpbmcgU29ydGVkVmVjdG9yOjppc0VtcHR5OworfTsKKworc3RydWN0IEhhbENsaWVudFZhbHVlcyB7CisgICAgc3A8SGFsQ2xpZW50PiBjbGllbnQ7CisgICAgc3RkOjpsaXN0PFZlaGljbGVQcm9wVmFsdWUgKj4gdmFsdWVzOworfTsKKwordXNpbmcgQ2xpZW50SWQgPSB1aW50NjRfdDsKKworY2xhc3MgU3Vic2NyaXB0aW9uTWFuYWdlciB7CitwdWJsaWM6CisgICAgdXNpbmcgT25Qcm9wZXJ0eVVuc3Vic2NyaWJlZCA9IHN0ZDo6ZnVuY3Rpb248dm9pZChpbnQzMl90KT47CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIFN1YnNjcmlwdGlvbk1hbmFnZXIKKyAgICAgKgorICAgICAqIEBwYXJhbSBvblByb3BlcnR5VW5zdWJzY3JpYmVkIC0gdGhpcyBjYWxsYmFjayBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZXJlIGFyZSBubworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9yZSBjbGllbnQgc3Vic2NyaWJlZCB0byBwYXJ0aWN1bGFyIHByb3BlcnR5LgorICAgICAqLworICAgIFN1YnNjcmlwdGlvbk1hbmFnZXIoY29uc3QgT25Qcm9wZXJ0eVVuc3Vic2NyaWJlZCYgb25Qcm9wZXJ0eVVuc3Vic2NyaWJlZCkKKyAgICAgICAgICAgIDogbU9uUHJvcGVydHlVbnN1YnNjcmliZWQob25Qcm9wZXJ0eVVuc3Vic2NyaWJlZCksCisgICAgICAgICAgICAgICAgbUNhbGxiYWNrRGVhdGhSZWNpcGllbnQobmV3IERlYXRoUmVjaXBpZW50KAorICAgICAgICAgICAgICAgICAgICBzdGQ6OmJpbmQoJlN1YnNjcmlwdGlvbk1hbmFnZXI6Om9uQ2FsbGJhY2tEZWFkLCB0aGlzLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEpKSkKKyAgICB7fQorCisgICAgflN1YnNjcmlwdGlvbk1hbmFnZXIoKSA9IGRlZmF1bHQ7CisKKyAgICAvKioKKyAgICAgKiBVcGRhdGVzIHN1YnNjcmlwdGlvbi4gUmV0dXJucyB0aGUgdmVjdG9yIG9mIHByb3BlcnRpZXMgc3Vic2NyaXB0aW9uIHRoYXQKKyAgICAgKiBuZWVkcyB0byBiZSB1cGRhdGVkIGluIFZlaGljbGVIQUwuCisgICAgICovCisgICAgU3RhdHVzQ29kZSBhZGRPclVwZGF0ZVN1YnNjcmlwdGlvbihDbGllbnRJZCBjbGllbnRJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+JiBvcHRpb25MaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpsaXN0PFN1YnNjcmliZU9wdGlvbnM+KiBvdXRVcGRhdGVkT3B0aW9ucyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBJVmVoaWNsZUNhbGxiYWNrIC0+IGxpc3Qgb2YgVmVoaWNsZVByb3BWYWx1ZSByZWFkeSBmb3IKKyAgICAgKiBkaXNwYXRjaGluZyB0byBpdHMgY2xpZW50cy4KKyAgICAgKi8KKyAgICBzdGQ6Omxpc3Q8SGFsQ2xpZW50VmFsdWVzPiBkaXN0cmlidXRlVmFsdWVzVG9DbGllbnRzKAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8cmVjeWNsYWJsZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4+JiBwcm9wVmFsdWVzLAorICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpIGNvbnN0OworCisgICAgc3RkOjpsaXN0PHNwPEhhbENsaWVudD4+IGdldFN1YnNjcmliZWRDbGllbnRzKGludDMyX3QgcHJvcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGFyZWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzIGZsYWdzKSBjb25zdDsKKyAgICAvKioKKyAgICAgKiBJZiB0aGVyZSBhcmUgbm8gY2xpZW50cyBzdWJzY3JpYmVkIHRvIGdpdmVuIHByb3BlcnRpZXMgdGhhbiBjYWxsYmFjayBmdW5jdGlvbiBwcm92aWRlZAorICAgICAqIGluIHRoZSBjb25zdHJ1Y3RvciB3aWxsIGJlIGNhbGxlZC4KKyAgICAgKi8KKyAgICB2b2lkIHVuc3Vic2NyaWJlKENsaWVudElkIGNsaWVudElkLCBpbnQzMl90IHByb3BJZCk7Citwcml2YXRlOgorICAgIHN0ZDo6bGlzdDxzcDxIYWxDbGllbnQ+PiBnZXRTdWJzY3JpYmVkQ2xpZW50c0xvY2tlZChpbnQzMl90IHByb3BJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBhcmVhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpYmVGbGFncyBmbGFncykgY29uc3Q7CisKKyAgICBib29sIHVwZGF0ZUhhbEV2ZW50U3Vic2NyaXB0aW9uTG9ja2VkKGNvbnN0IFN1YnNjcmliZU9wdGlvbnMgJm9wdHMsIFN1YnNjcmliZU9wdGlvbnMqIG91dCk7CisKKyAgICB2b2lkIGFkZENsaWVudFRvUHJvcE1hcExvY2tlZChpbnQzMl90IHByb3BJZCwgY29uc3Qgc3A8SGFsQ2xpZW50PiYgY2xpZW50KTsKKworICAgIHNwPEhhbENsaWVudFZlY3Rvcj4gZ2V0Q2xpZW50c0ZvclByb3BlcnR5TG9ja2VkKGludDMyX3QgcHJvcElkKSBjb25zdDsKKworICAgIHNwPEhhbENsaWVudD4gZ2V0T3JDcmVhdGVIYWxDbGllbnRMb2NrZWQoQ2xpZW50SWQgY2FsbGluZ1BpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjayk7CisKKyAgICB2b2lkIG9uQ2FsbGJhY2tEZWFkKHVpbnQ2NF90IGNvb2tpZSk7CisKK3ByaXZhdGU6CisgICAgdXNpbmcgT25DbGllbnREZWFkID0gc3RkOjpmdW5jdGlvbjx2b2lkKHVpbnQ2NF90KT47CisKKyAgICBjbGFzcyBEZWF0aFJlY2lwaWVudCA6IHB1YmxpYyBoaWRsX2RlYXRoX3JlY2lwaWVudCB7CisgICAgcHVibGljOgorICAgICAgICBEZWF0aFJlY2lwaWVudChjb25zdCBPbkNsaWVudERlYWQmIG9uQ2xpZW50RGVhZCkKKyAgICAgICAgICAgIDogbU9uQ2xpZW50RGVhZChvbkNsaWVudERlYWQpIHt9CisgICAgICAgIH5EZWF0aFJlY2lwaWVudCgpID0gZGVmYXVsdDsKKworICAgICAgICBEZWF0aFJlY2lwaWVudChjb25zdCBEZWF0aFJlY2lwaWVudCYgKSA9IGRlbGV0ZTsKKyAgICAgICAgRGVhdGhSZWNpcGllbnQmIG9wZXJhdG9yPShjb25zdCBEZWF0aFJlY2lwaWVudCYpID0gZGVsZXRlOworCisgICAgICAgIHZvaWQgc2VydmljZURpZWQodWludDY0X3QgY29va2llLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdwPDo6YW5kcm9pZDo6aGlkbDo6YmFzZTo6VjFfMDo6SUJhc2U+JiAvKiB3aG8gKi8pIG92ZXJyaWRlIHsKKyAgICAgICAgICAgIG1PbkNsaWVudERlYWQoY29va2llKTsKKyAgICAgICAgfQorICAgIHByaXZhdGU6CisgICAgICAgIE9uQ2xpZW50RGVhZCBtT25DbGllbnREZWFkOworICAgIH07CisKK3ByaXZhdGU6CisgICAgdXNpbmcgTXV4R3VhcmQgPSBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD47CisKKyAgICBtdXRhYmxlIHN0ZDo6bXV0ZXggbUxvY2s7CisKKyAgICBzdGQ6Om1hcDxDbGllbnRJZCwgc3A8SGFsQ2xpZW50Pj4gbUNsaWVudHM7CisgICAgc3RkOjptYXA8aW50MzJfdCwgc3A8SGFsQ2xpZW50VmVjdG9yPj4gbVByb3BUb0NsaWVudHM7CisgICAgc3RkOjptYXA8aW50MzJfdCwgU3Vic2NyaWJlT3B0aW9ucz4gbUhhbEV2ZW50U3Vic2NyaWJlT3B0aW9uczsKKworICAgIE9uUHJvcGVydHlVbnN1YnNjcmliZWQgbU9uUHJvcGVydHlVbnN1YnNjcmliZWQ7CisgICAgc3A8RGVhdGhSZWNpcGllbnQ+IG1DYWxsYmFja0RlYXRoUmVjaXBpZW50OworfTsKKworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKworI2VuZGlmIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfU3Vic2NyaXB0aW9uTWFuYWdlcl9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlSGFsLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVIYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjAzYTFlCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlSGFsLmgKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZUhhbF9ICisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZUhhbF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaD4KKyNpbmNsdWRlICJWZWhpY2xlT2JqZWN0UG9vbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCisvKioKKyAqIFRoaXMgaXMgYSBsb3ctbGV2ZWwgdmVoaWNsZSBoYWwgaW50ZXJmYWNlIHRoYXQgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5CisgKiBWZW5kb3IuCisgKi8KK2NsYXNzIFZlaGljbGVIYWwgeworcHVibGljOgorICAgIHVzaW5nIFZlaGljbGVQcm9wVmFsdWVQdHIgPSByZWN5Y2xhYmxlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPjsKKworICAgIHVzaW5nIEhhbEV2ZW50RnVuY3Rpb24gPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoVmVoaWNsZVByb3BWYWx1ZVB0cik+OworICAgIHVzaW5nIEhhbEVycm9yRnVuY3Rpb24gPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoCisgICAgICAgICAgICBTdGF0dXNDb2RlIGVycm9yQ29kZSwgaW50MzJfdCBwcm9wZXJ0eSwgaW50MzJfdCBhcmVhSWQpPjsKKworICAgIHZpcnR1YWwgflZlaGljbGVIYWwoKSB7fQorCisgICAgdmlydHVhbCBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gbGlzdFByb3BlcnRpZXMoKSA9IDA7CisgICAgdmlydHVhbCBWZWhpY2xlUHJvcFZhbHVlUHRyIGdldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXNDb2RlKiBvdXRTdGF0dXMpID0gMDsKKworICAgIHZpcnR1YWwgU3RhdHVzQ29kZSBzZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTdWJzY3JpYmUgdG8gSEFMIHByb3BlcnR5IGV2ZW50cy4gVGhpcyBtZXRob2QgbWlnaHQgYmUgY2FsbGVkIG11bHRpcGxlCisgICAgICogdGltZXMgZm9yIHRoZSBzYW1lIHZlaGljbGUgcHJvcGVydHkgdG8gdXBkYXRlIHN1YnNjcmliZWQgYXJlYXMgb3Igc2FtcGxlCisgICAgICogcmF0ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSB0byBzdWJzY3JpYmUKKyAgICAgKiBAcGFyYW0gYXJlYXMgYSBiaXR3aXNlIHZlaGljbGUgYXJlYXMgb3IgMCBmb3IgYWxsIHN1cHBvcnRlZCBhcmVhcworICAgICAqIEBwYXJhbSBzYW1wbGVSYXRlIHNhbXBsZSByYXRlIGluIEh6IGZvciBwcm9wZXJ0aWVzIHRoYXQgc3VwcG9ydCBzYW1wbGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICByYXRlLCBlLmcuIGZvciBwcm9wZXJ0aWVzIHdpdGgKKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTCisgICAgICovCisgICAgdmlydHVhbCBTdGF0dXNDb2RlIHN1YnNjcmliZShpbnQzMl90IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBhcmVhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKKworICAgIC8qKgorICAgICAqIFVuc3Vic2NyaWJlIGZyb20gSEFMIGV2ZW50cyBmb3IgZ2l2ZW4gcHJvcGVydHkKKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSB2ZWhpY2xlIHByb3BlcnR5IHRvIHVuc3Vic2NyaWJlCisgICAgICovCisgICAgdmlydHVhbCBTdGF0dXNDb2RlIHVuc3Vic2NyaWJlKGludDMyX3QgcHJvcGVydHkpID0gMDsKKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIGlmIHlvdSBuZWVkIHRvIGRvIG9uZS10aW1lIGluaXRpYWxpemF0aW9uLgorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBvbkNyZWF0ZSgpIHt9CisKKyAgICB2b2lkIGluaXQoCisgICAgICAgIFZlaGljbGVQcm9wVmFsdWVQb29sKiB2YWx1ZU9iamVjdFBvb2wsCisgICAgICAgIGNvbnN0IEhhbEV2ZW50RnVuY3Rpb24mIG9uSGFsRXZlbnQsCisgICAgICAgIGNvbnN0IEhhbEVycm9yRnVuY3Rpb24mIG9uSGFsRXJyb3IpIHsKKyAgICAgICAgbVZhbHVlUG9vbCA9IHZhbHVlT2JqZWN0UG9vbDsKKyAgICAgICAgbU9uSGFsRXZlbnQgPSBvbkhhbEV2ZW50OworICAgICAgICBtT25IYWxQcm9wZXJ0eVNldEVycm9yID0gb25IYWxFcnJvcjsKKworICAgICAgICBvbkNyZWF0ZSgpOworICAgIH0KKworICAgIFZlaGljbGVQcm9wVmFsdWVQb29sKiBnZXRWYWx1ZVBvb2woKSB7CisgICAgICAgIHJldHVybiBtVmFsdWVQb29sOworICAgIH0KK3Byb3RlY3RlZDoKKyAgICAvKiBQcm9wYWdhdGVzIHByb3BlcnR5IGNoYW5nZSBldmVudHMgdG8gdmVoaWNsZSBIQUwgY2xpZW50cy4gKi8KKyAgICB2b2lkIGRvSGFsRXZlbnQoVmVoaWNsZVByb3BWYWx1ZVB0ciB2KSB7CisgICAgICAgIG1PbkhhbEV2ZW50KHN0ZDo6bW92ZSh2KSk7CisgICAgfQorCisgICAgLyogUHJvcGFnYXRlcyBlcnJvciBkdXJpbmcgc2V0IG9wZXJhdGlvbiB0byB0aGUgdmVoaWNsZSBIQUwgY2xpZW50cy4gKi8KKyAgICB2b2lkIGRvSGFsUHJvcGVydHlTZXRFcnJvcihTdGF0dXNDb2RlIGVycm9yQ29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByb3BJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGFyZWFJZCkgeworICAgICAgICBtT25IYWxQcm9wZXJ0eVNldEVycm9yKGVycm9yQ29kZSwgcHJvcElkLCBhcmVhSWQpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBIYWxFdmVudEZ1bmN0aW9uIG1PbkhhbEV2ZW50OworICAgIEhhbEVycm9yRnVuY3Rpb24gbU9uSGFsUHJvcGVydHlTZXRFcnJvcjsKKyAgICBWZWhpY2xlUHJvcFZhbHVlUG9vbCogbVZhbHVlUG9vbDsKK307CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlSGFsX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVIYWxNYW5hZ2VyLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVIYWxNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFlOWU4OAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZUhhbE1hbmFnZXIuaApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlSGFsTWFuYWdlcl9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVIYWxNYW5hZ2VyX0hfCisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorCisjaW5jbHVkZSA8bGlzdD4KKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHNldD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oPgorCisjaW5jbHVkZSAiQ29uY3VycmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiU3Vic2NyaXB0aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlZlaGljbGVIYWwuaCIKKyNpbmNsdWRlICJWZWhpY2xlT2JqZWN0UG9vbC5oIgorI2luY2x1ZGUgIlZlaGljbGVQcm9wQ29uZmlnSW5kZXguaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIGEgdGhpY2sgcHJveHkgYmV0d2VlbiBJVmVoaWNsZSBISURMIGludGVyZmFjZSBhbmQgdmVuZG9yJ3MgaW1wbGVtZW50YXRpb24uCisgKgorICogSXQgaGFzIHNvbWUgYm9pbGVycGxhdGUgY29kZSBsaWtlIGJhdGNoaW5nIGFuZCBjYWNoaW5nIHByb3BlcnR5IHZhbHVlcywgY2hlY2tpbmcgcGVybWlzc2lvbnMsCisgKiBldGMuIFZlbmRvcnMgbXVzdCBpbXBsZW1lbnQgVmVoaWNsZUhhbCBjbGFzcy4KKyAqLworY2xhc3MgVmVoaWNsZUhhbE1hbmFnZXIgOiBwdWJsaWMgSVZlaGljbGUgeworcHVibGljOgorICAgIFZlaGljbGVIYWxNYW5hZ2VyKFZlaGljbGVIYWwqIHZlaGljbGVIYWwpCisgICAgICAgIDogbUhhbCh2ZWhpY2xlSGFsKSwKKyAgICAgICAgICBtU3Vic2NyaXB0aW9uTWFuYWdlcihzdGQ6OmJpbmQoJlZlaGljbGVIYWxNYW5hZ2VyOjpvbkFsbENsaWVudHNVbnN1YnNjcmliZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSkpIHsKKyAgICAgICAgaW5pdCgpOworICAgIH0KKworICAgIHZpcnR1YWwgflZlaGljbGVIYWxNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGluaXQoKTsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIE1ldGhvZHMgZGVyaXZlZCBmcm9tIElWZWhpY2xlCisgICAgUmV0dXJuPHZvaWQ+IGdldEFsbFByb3BDb25maWdzKGdldEFsbFByb3BDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFByb3BDb25maWdzKGNvbnN0IGhpZGxfdmVjPGludDMyX3Q+JiBwcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcm9wQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgZ2V0X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1c0NvZGU+IHNldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXNDb2RlPiBzdWJzY3JpYmUoY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiYgb3B0aW9ucykgIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXNDb2RlPiB1bnN1YnNjcmliZShjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcHJvcElkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlYnVnRHVtcChkZWJ1Z0R1bXBfY2IgX2hpZGxfY2IgPSBudWxscHRyKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBWZWhpY2xlUHJvcFZhbHVlUHRyID0gVmVoaWNsZUhhbDo6VmVoaWNsZVByb3BWYWx1ZVB0cjsKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgbmVlZHMgdG8gY2FsbCBhZ2FpbiBzaG9ydGx5LgorICAgIHVzaW5nIFJldHJpYWJsZUFjdGlvbiA9IHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPjsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEV2ZW50cyByZWNlaXZlZCBmcm9tIFZlaGljbGVIYWwKKyAgICB2b2lkIG9uSGFsRXZlbnQoVmVoaWNsZVByb3BWYWx1ZVB0ciAgdik7CisgICAgdm9pZCBvbkhhbFByb3BlcnR5U2V0RXJyb3IoU3RhdHVzQ29kZSBlcnJvckNvZGUsIGludDMyX3QgcHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBhcmVhSWQpOworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZnJvbSBCYXRjaGluZ0NvbnN1bWVyIHRocmVhZAorICAgIHZvaWQgb25CYXRjaEhhbEV2ZW50KGNvbnN0IHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWVQdHIgPiYgdmFsdWVzKTsKKworICAgIHZvaWQgaGFuZGxlUHJvcGVydHlTZXRFdmVudChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZSk7CisKKyAgICBjb25zdCBWZWhpY2xlUHJvcENvbmZpZyogZ2V0UHJvcENvbmZpZ09yTnVsbChpbnQzMl90IHByb3ApIGNvbnN0OworCisgICAgYm9vbCBjaGVja1dyaXRlUGVybWlzc2lvbihjb25zdCBWZWhpY2xlUHJvcENvbmZpZyAmY29uZmlnKSBjb25zdDsKKyAgICBib29sIGNoZWNrUmVhZFBlcm1pc3Npb24oY29uc3QgVmVoaWNsZVByb3BDb25maWcgJmNvbmZpZykgY29uc3Q7CisgICAgdm9pZCBvbkFsbENsaWVudHNVbnN1YnNjcmliZWQoaW50MzJfdCBwcm9wZXJ0eUlkKTsKKworICAgIHN0YXRpYyBib29sIGlzU3Vic2NyaWJhYmxlKGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpOworICAgIHN0YXRpYyBib29sIGlzU2FtcGxlUmF0ZUZpeGVkKFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUgbW9kZSk7CisgICAgc3RhdGljIGZsb2F0IGNoZWNrU2FtcGxlUmF0ZShjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgc3RhdGljIENsaWVudElkIGdldENsaWVudElkKGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjayk7Citwcml2YXRlOgorICAgIFZlaGljbGVIYWwqIG1IYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZlaGljbGVQcm9wQ29uZmlnSW5kZXg+IG1Db25maWdJbmRleDsKKyAgICBTdWJzY3JpcHRpb25NYW5hZ2VyIG1TdWJzY3JpcHRpb25NYW5hZ2VyOworCisgICAgaGlkbF92ZWM8VmVoaWNsZVByb3BWYWx1ZT4gbUhpZGxWZWNPZlZlaGljbGVQcm9wVmFsdWVQb29sOworCisgICAgQ29uY3VycmVudFF1ZXVlPFZlaGljbGVQcm9wVmFsdWVQdHI+IG1FdmVudFF1ZXVlOworICAgIEJhdGNoaW5nQ29uc3VtZXI8VmVoaWNsZVByb3BWYWx1ZVB0cj4gbUJhdGNoaW5nQ29uc3VtZXI7CisgICAgVmVoaWNsZVByb3BWYWx1ZVBvb2wgbVZhbHVlT2JqZWN0UG9vbDsKK307CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisjZW5kaWYgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlSGFsTWFuYWdlcl9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlT2JqZWN0UG9vbC5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlT2JqZWN0UG9vbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1YzY0OWIKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVPYmplY3RQb29sLmgKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlT2JqZWN0UG9vbF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVPYmplY3RQb29sX0hfCisKKyNpbmNsdWRlIDxkZXF1ZT4KKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8bXV0ZXg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworLy8gSGFuZHkgbWV0cmljIG1vc3RseSBmb3IgdW5pdCB0ZXN0cyBhbmQgZGVidWcuCisjZGVmaW5lIElOQ19NRVRSSUNfSUZfREVCVUcodmFsKSBQb29sU3RhdHM6Omluc3RhbmNlKCktPnZhbCsrOworc3RydWN0IFBvb2xTdGF0cyB7CisgICAgc3RkOjphdG9taWM8dWludDMyX3Q+IE9idGFpbmVkIHswfTsKKyAgICBzdGQ6OmF0b21pYzx1aW50MzJfdD4gQ3JlYXRlZCB7MH07CisgICAgc3RkOjphdG9taWM8dWludDMyX3Q+IFJlY3ljbGVkIHswfTsKKworICAgIHN0YXRpYyBQb29sU3RhdHMqIGluc3RhbmNlKCkgeworICAgICAgICBzdGF0aWMgUG9vbFN0YXRzIGluc3Q7CisgICAgICAgIHJldHVybiAmaW5zdDsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IERlbGV0ZXIgIHsKKyAgICB1c2luZyBPbkRlbGV0ZUZ1bmMgPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoVCopPjsKKworICAgIERlbGV0ZXIoY29uc3QgT25EZWxldGVGdW5jJiBmKSA6IG1PbkRlbGV0ZShmKSB7fTsKKworICAgIERlbGV0ZXIoKSA9IGRlZmF1bHQ7CisgICAgRGVsZXRlcihjb25zdCBEZWxldGVyJikgPSBkZWZhdWx0OworCisgICAgdm9pZCBvcGVyYXRvcigpKFQqIG8pIHsKKyAgICAgICAgbU9uRGVsZXRlKG8pOworICAgIH0KK3ByaXZhdGU6CisgICAgT25EZWxldGVGdW5jIG1PbkRlbGV0ZTsKK307CisKKy8qKgorICogVGhpcyBpcyBzdGQ6OnVuaXF1ZV9wdHI8PiB3aXRoIGN1c3RvbSBkZWxldGUgb3BlcmF0aW9uIHRoYXQgdHlwaWNhbGx5IG1vdmVzCisgKiB0aGUgcG9pbnRlciBpdCBob2xkcyBiYWNrIHRvIE9iamVjdFBvb2wuCisgKi8KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordXNpbmcgcmVjeWNsYWJsZV9wdHIgPSB0eXBlbmFtZSBzdGQ6OnVuaXF1ZV9wdHI8VCwgRGVsZXRlcjxUPj47CisKKy8qKgorICogR2VuZXJpYyBhYnN0cmFjdCBvYmplY3QgcG9vbCBjbGFzcy4gVXNlcnMgb2YgdGhpcyBjbGFzcyBtdXN0IGltcGxlbWVudAorICogI2NyZWF0ZU9iamVjdCBtZXRob2QuCisgKgorICogVGhpcyBjbGFzcyBpcyB0aHJlYWQtc2FmZS4gQ29uY3VycmVudCBjYWxscyB0byAjb2J0YWluKC4uLikgbWV0aG9kIGZyb20KKyAqIG11bHRpcGxlIHRocmVhZHMgaXMgT0ssIGFsc28gY2xpZW50IGNhbiBvYnRhaW4gYW4gb2JqZWN0IGluIG9uZSB0aHJlYWQgYW5kCisgKiB0aGVuIG1vdmUgb3duZXJzaGlwIHRvIGFub3RoZXIgdGhyZWFkLgorICoKKyAqLwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIE9iamVjdFBvb2wgeworcHVibGljOgorICAgIE9iamVjdFBvb2woKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+T2JqZWN0UG9vbCgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgcmVjeWNsYWJsZV9wdHI8VD4gb2J0YWluKCkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gZyhtTG9jayk7CisgICAgICAgIElOQ19NRVRSSUNfSUZfREVCVUcoT2J0YWluZWQpCisgICAgICAgIGlmIChtT2JqZWN0cy5lbXB0eSgpKSB7CisgICAgICAgICAgICBJTkNfTUVUUklDX0lGX0RFQlVHKENyZWF0ZWQpCisgICAgICAgICAgICByZXR1cm4gd3JhcChjcmVhdGVPYmplY3QoKSk7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIG8gPSB3cmFwKG1PYmplY3RzLmZyb250KCkucmVsZWFzZSgpKTsKKyAgICAgICAgbU9iamVjdHMucG9wX2Zyb250KCk7CisKKyAgICAgICAgcmV0dXJuIG87CisgICAgfQorCisgICAgT2JqZWN0UG9vbCYgb3BlcmF0b3IgPShjb25zdCBPYmplY3RQb29sICYpID0gZGVsZXRlOworICAgIE9iamVjdFBvb2woY29uc3QgT2JqZWN0UG9vbCAmKSA9IGRlbGV0ZTsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgVCogY3JlYXRlT2JqZWN0KCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlY3ljbGUoVCogbykgeworICAgICAgICBJTkNfTUVUUklDX0lGX0RFQlVHKFJlY3ljbGVkKQorICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gZyhtTG9jayk7CisgICAgICAgIG1PYmplY3RzLnB1c2hfYmFjayhzdGQ6OnVuaXF1ZV9wdHI8VD4geyBvIH0gKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgRGVsZXRlcjxUPiYgZ2V0RGVsZXRlcigpIHsKKyAgICAgICAgaWYgKCFtRGVsZXRlci5nZXQoKSkgeworICAgICAgICAgICAgRGVsZXRlcjxUPiAqZCA9IG5ldyBEZWxldGVyPFQ+KHN0ZDo6YmluZCgKKyAgICAgICAgICAgICAgICAmT2JqZWN0UG9vbDo6cmVjeWNsZSwgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xKSk7CisgICAgICAgICAgICBtRGVsZXRlci5yZXNldChkKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKm1EZWxldGVyLmdldCgpOworICAgIH0KKworICAgIHJlY3ljbGFibGVfcHRyPFQ+IHdyYXAoVCogcmF3KSB7CisgICAgICAgIHJldHVybiByZWN5Y2xhYmxlX3B0cjxUPiB7IHJhdywgZ2V0RGVsZXRlcigpIH07CisgICAgfQorCitwcml2YXRlOgorICAgIG11dGFibGUgc3RkOjptdXRleCBtTG9jazsKKyAgICBzdGQ6OmRlcXVlPHN0ZDo6dW5pcXVlX3B0cjxUPj4gbU9iamVjdHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPERlbGV0ZXI8VD4+IG1EZWxldGVyOworfTsKKworLyoqCisgKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgcG9vbCBvZiByZWN5Y2FibGUgVmVoaWNsZVByb3BlcnR5VmFsdWUgb2JqZWN0cy4KKyAqCisgKiBJdCBoYXMgb25seSBvbmUgb3ZlcmxvYWRlZCBwdWJsaWMgbWV0aG9kIC0gb2J0YWluKC4uLiksIHVzZXJzIG11c3QgY2FsbCB0aGlzCisgKiBtZXRob2Qgd2hlbiBuZXcgb2JqZWN0IGlzIG5lZWRlZCB3aXRoIGdpdmVuIFZlaGljbGVQcm9wZXJ0eVR5cGUgYW5kIHZlY3RvcgorICogc2l6ZSAoZm9yIHZlY3RvciBwcm9wZXJ0aWVzKS4gVGhpcyBtZXRob2QgcmV0dXJucyBhIHJlY3ljYWJsZSBzbWFydCBwb2ludGVyCisgKiB0byBWZWhpY2xlUHJvcGVydHlWYWx1ZSwgZXNzZW50aWFsbHkgdGhpcyBpcyBhIHN0ZDo6dW5pcXVlX3B0ciB3aXRoIGN1c3RvbQorICogZGVsZXRlIGZ1bmN0aW9uLCBzbyByZWN5Y2FibGUgb2JqZWN0IGhhcyBvbmx5IG9uZSBvd25lciBhbmQgZGV2ZWxvcGVycyBjYW4KKyAqIHNhZmVseSBwYXNzIGl0IGFyb3VuZC4gT25jZSB0aGlzIG9iamVjdCBnb2VzIG91dCBvZiBzY29wZSwgaXQgd2lsbCBiZQorICogcmV0dXJuZWQgdGhlIHRoZSBvYmplY3QgcG9vbC4KKyAqCisgKiBTb21lIG9iamVjdHMgYXJlIG5vdCByZWN5Y2FibGU6IHN0cmluZ3MgYW5kIHZlY3RvciBkYXRhIHR5cGVzIHdpdGgKKyAqIHZlY3RvciBsZW5ndGggPiBtYXhSZWN5Y2xhYmxlVmVjdG9yU2l6ZSAocHJvdmlkZWQgaW4gdGhlIGNvbnN0cnVjdG9yKS4gVGhlc2UKKyAqIG9iamVjdHMgd2lsbCBiZSBkZWxldGVkIGltbWVkaWF0ZWx5IG9uY2UgdGhlIGdvIG91dCBvZiBzY29wZS4gVGhlcmUncyBubworICogc3luY2hvcm5pemF0aW9uIHBlbmFsdHkgZm9yIHRoZXNlIG9iamVjdHMgc2luY2Ugd2UgZG8gbm90IHN0b3JlIHRoZW0gaW4gdGhlCisgKiBwb29sLgorICoKKyAqIFRoaXMgY2xhc3MgaXMgdGhyZWFkLXNhZmUuIFVzZXJzIGNhbiBvYnRhaW4gYW4gb2JqZWN0IGluIG9uZSB0aHJlYWQgYW5kIHBhc3MKKyAqIGl0IHRvIGFub3RoZXIuCisgKgorICogU2FtcGxlIHVzYWdlOgorICoKKyAqICAgVmVoaWNsZVByb3BWYWx1ZVBvb2wgcG9vbDsKKyAqICAgYXV0byB2ID0gcG9vbC5vYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzIpOworICogICB2LT5wcm9wSWQgPSBWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEOworICogICB2LT5hcmVhSWQgPSBWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQ7CisgKiAgIHYtPnRpbWVzdGFtcCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAqICAgdi0+dmFsdWUtPmludDMyVmFsdWVzWzBdID0gNDI7CisgKgorICoKKyAqLworY2xhc3MgVmVoaWNsZVByb3BWYWx1ZVBvb2wgeworcHVibGljOgorICAgIHVzaW5nIFJlY3ljbGFibGVUeXBlID0gcmVjeWNsYWJsZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT47CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIFZlaGljbGVQcm9wVmFsdWVQb29sCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWF4UmVjeWNsYWJsZVZlY3RvclNpemUgLSB2ZWN0b3IgdmFsdWUgdHlwZXMgKGUuZy4KKyAgICAgKiBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMl9WRUMpIHdpdGggc2l6ZSBlcXVhbCBvciBsZXNzIHRvIHRoaXMgdmFsdWUKKyAgICAgKiB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgcG9vbC4gSWYgdXNlcnMgdHJpZXMgdG8gb2J0YWluIHZhbHVlIHdpdGggdmVjdG9yCisgICAgICogc2l6ZSBncmVhdGVyIHRoYW4gbWF4UmVjeWNsYWJsZVZlY3RvclNpemUgdXNlciB3aWxsIHJlY2VpdmUgYXBwcm9wcmlhdGUKKyAgICAgKiBvYmplY3QsIGJ1dCBvbmNlIGl0IGdvZXMgb3V0IG9mIHNjb3BlIGl0IHdpbGwgYmUgZGVsZXRlZCBpbW1lZGlhdGVseSwgbm90CisgICAgICogcmV0dXJuaW5nIGJhY2sgdG8gdGhlIG9iamVjdCBwb29sLgorICAgICAqCisgICAgICovCisgICAgVmVoaWNsZVByb3BWYWx1ZVBvb2woc2l6ZV90IG1heFJlY3ljbGFibGVWZWN0b3JTaXplID0gNCkgOgorICAgICAgICBtTWF4UmVjeWNsYWJsZVZlY3RvclNpemUobWF4UmVjeWNsYWJsZVZlY3RvclNpemUpIHt9OworCisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSk7CisKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlLCBzaXplX3QgdmVjU2l6ZSk7CisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHNyYyk7CisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluQm9vbGVhbihib29sIHZhbHVlKTsKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW5JbnQzMihpbnQzMl90IHZhbHVlKTsKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW5JbnQ2NChpbnQ2NF90IHZhbHVlKTsKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW5GbG9hdChmbG9hdCB2YWx1ZSk7CisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluU3RyaW5nKGNvbnN0IGNoYXIqIGNzdHIpOworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpbkNvbXBsZXgoKTsKKworICAgIFZlaGljbGVQcm9wVmFsdWVQb29sKFZlaGljbGVQcm9wVmFsdWVQb29sJiApID0gZGVsZXRlOworICAgIFZlaGljbGVQcm9wVmFsdWVQb29sJiBvcGVyYXRvcj0oVmVoaWNsZVByb3BWYWx1ZVBvb2wmKSA9IGRlbGV0ZTsKK3ByaXZhdGU6CisgICAgYm9vbCBpc0Rpc3Bvc2FibGUoVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlLCBzaXplX3QgdmVjU2l6ZSkgY29uc3QgeworICAgICAgICByZXR1cm4gdmVjU2l6ZSA+IG1NYXhSZWN5Y2xhYmxlVmVjdG9yU2l6ZSB8fAorICAgICAgICAgICAgICAgVmVoaWNsZVByb3BlcnR5VHlwZTo6U1RSSU5HID09IHR5cGUgfHwKKyAgICAgICAgICAgICAgIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkNPTVBMRVggPT0gdHlwZTsKKyAgICB9CisKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW5EaXNwb3NhYmxlKFZlaGljbGVQcm9wZXJ0eVR5cGUgdmFsdWVUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZlY3RvclNpemUpIGNvbnN0OworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpblJlY3lsYWJsZShWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB2ZWNTaXplKTsKKworICAgIGNsYXNzIEludGVybmFsUG9vbDogcHVibGljIE9iamVjdFBvb2w8VmVoaWNsZVByb3BWYWx1ZT4geworICAgIHB1YmxpYzoKKyAgICAgICAgSW50ZXJuYWxQb29sKFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSwgc2l6ZV90IHZlY3RvclNpemUpCisgICAgICAgICAgICA6IG1Qcm9wVHlwZSh0eXBlKSwgbVZlY3RvclNpemUodmVjdG9yU2l6ZSkge30KKworICAgICAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW4oKSB7CisgICAgICAgICAgICByZXR1cm4gT2JqZWN0UG9vbDxWZWhpY2xlUHJvcFZhbHVlPjo6b2J0YWluKCk7CisgICAgICAgIH0KKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIFZlaGljbGVQcm9wVmFsdWUqIGNyZWF0ZU9iamVjdCgpIG92ZXJyaWRlOworICAgICAgICB2b2lkIHJlY3ljbGUoVmVoaWNsZVByb3BWYWx1ZSogbykgb3ZlcnJpZGU7CisgICAgcHJpdmF0ZToKKyAgICAgICAgYm9vbCBjaGVjayhWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZSogdik7CisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZlY1R5cGU+CisgICAgICAgIGJvb2wgY2hlY2soaGlkbF92ZWM8VmVjVHlwZT4qIHZlYywgYm9vbCBleHBlY3RlZCkgeworICAgICAgICAgICAgcmV0dXJuIHZlYy0+c2l6ZSgpID09IChleHBlY3RlZCA/IG1WZWN0b3JTaXplIDogMCk7CisgICAgICAgIH0KKyAgICBwcml2YXRlOgorICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlIG1Qcm9wVHlwZTsKKyAgICAgICAgc2l6ZV90IG1WZWN0b3JTaXplOworICAgIH07CisKK3ByaXZhdGU6CisgICAgY29uc3QgRGVsZXRlcjxWZWhpY2xlUHJvcFZhbHVlPiBtRGlzcG9zYWJsZURlbGV0ZXIgeworICAgICAgICBbXSAoVmVoaWNsZVByb3BWYWx1ZSogdikgeworICAgICAgICAgICAgZGVsZXRlIHY7CisgICAgICAgIH0KKyAgICB9OworCitwcml2YXRlOgorICAgIG11dGFibGUgc3RkOjptdXRleCBtTG9jazsKKyAgICBjb25zdCBzaXplX3QgbU1heFJlY3ljbGFibGVWZWN0b3JTaXplOworICAgIHN0ZDo6bWFwPGludDMyX3QsIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbFBvb2w+PiBtVmFsdWVUeXBlUG9vbHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVPYmplY3RQb29sX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVQcm9wQ29uZmlnSW5kZXguaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVByb3BDb25maWdJbmRleC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1MjhmNjgKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVQcm9wQ29uZmlnSW5kZXguaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVQcm9wQ29uZmlnSW5kZXhfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlUHJvcENvbmZpZ0luZGV4X0hfCisKKyNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKKy8qCisgKiBUaGlzIGlzIHRocmVhZC1zYWZlIGltbXV0YWJsZSBjbGFzcyB0byBob2xkIHZlaGljbGUgcHJvcGVydHkgY29uZmlndXJhdGlvbgorICogZGF0YS4KKyAqLworY2xhc3MgVmVoaWNsZVByb3BDb25maWdJbmRleCB7CitwdWJsaWM6CisgICAgVmVoaWNsZVByb3BDb25maWdJbmRleCgKKyAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+JiBwcm9wZXJ0aWVzKQorICAgICAgICA6IG1Db25maWdzKHByb3BlcnRpZXMpLCBtUHJvcFRvQ29uZmlnKG1Db25maWdzKQorICAgIHt9CisKKyAgICBib29sIGhhc0NvbmZpZyhpbnQzMl90IHByb3BlcnR5KSBjb25zdCB7CisgICAgICAgIHJldHVybiBtUHJvcFRvQ29uZmlnLmluZGV4T2ZLZXkocHJvcGVydHkpID49IDA7CisgICAgfQorCisgICAgY29uc3QgVmVoaWNsZVByb3BDb25maWcmIGdldENvbmZpZyhpbnQzMl90IHByb3BlcnR5KSBjb25zdCB7CisgICAgICAgIHJldHVybiAqbVByb3BUb0NvbmZpZy52YWx1ZUZvcihwcm9wZXJ0eSk7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+JiBnZXRBbGxDb25maWdzKCkgY29uc3QgeworICAgICAgICByZXR1cm4gbUNvbmZpZ3M7CisgICAgfQorCitwcml2YXRlOgorICAgIHR5cGVkZWYgS2V5ZWRWZWN0b3I8aW50MzJfdCwgY29uc3QgVmVoaWNsZVByb3BDb25maWcqPiBQcm9wQ29uZmlnTWFwOworICAgIGNsYXNzIEltbXV0YWJsZVByb3BDb25maWdNYXAgOiBwcml2YXRlIFByb3BDb25maWdNYXAgeworICAgIHB1YmxpYzoKKyAgICAgICAgSW1tdXRhYmxlUHJvcENvbmZpZ01hcChjb25zdCBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4mIGNvbmZpZ3MpIHsKKyAgICAgICAgICAgIHNldENhcGFjaXR5KGNvbmZpZ3Muc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoYXV0byYgY29uZmlnIDogY29uZmlncykgeworICAgICAgICAgICAgICAgIGFkZChjb25maWcucHJvcCwgJmNvbmZpZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICBwdWJsaWM6CisgICAgICAgIHVzaW5nIFByb3BDb25maWdNYXA6OnZhbHVlRm9yOworICAgICAgICB1c2luZyBQcm9wQ29uZmlnTWFwOjppbmRleE9mS2V5OworICAgIH07CisKK3ByaXZhdGU6CisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IG1Db25maWdzOworICAgIGNvbnN0IEltbXV0YWJsZVByb3BDb25maWdNYXAgbVByb3BUb0NvbmZpZzsgIC8vIG1Db25maWdzIG11c3QgYmUgZGVjbGFyZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmaXJzdC4KK307CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZVByb3BDb25maWdJbmRleF9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlUHJvcGVydHlTdG9yZS5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlUHJvcGVydHlTdG9yZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYTk0YjcKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVQcm9wZXJ0eVN0b3JlLmgKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Qcm9wZXJ0eURiX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Qcm9wZXJ0eURiX0hfCisKKyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPG11dGV4PgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKKy8qKgorICogRW5jYXBzdWxhdGVzIHdvcmsgcmVsYXRlZCB0byBzdG9yaW5nIGFuZCBhY2Nlc3NpbmcgY29uZmlndXJhdGlvbiwgc3RvcmluZyBhbmQgbW9kaWZ5aW5nCisgKiB2ZWhpY2xlIHByb3BlcnR5IHZhbHVlcy4KKyAqCisgKiBWZWhpY2xlUHJvcGVydHlWYWx1ZXMgc3RvcmVkIGluIGEgc29ydGVkIG1hcCB0aHVzIGl0IG1ha2VzIGVhc2llciB0byBnZXQgcmFuZ2Ugb2YgdmFsdWVzLCBlLmcuCisgKiB0byBnZXQgdmFsdWUgZm9yIGFsbCBhcmVhcyBmb3IgcGFydGljdWxhciBwcm9wZXJ0eS4KKyAqCisgKiBUaGlzIGNsYXNzIGlzIHRocmVhZC1zYWZlLCBob3dldmVyIGl0IHVzZXMgYmxvY2tpbmcgc3luY2hyb25pemF0aW9uIGFjcm9zcyBhbGwgbWV0aG9kcy4KKyAqLworY2xhc3MgVmVoaWNsZVByb3BlcnR5U3RvcmUgeworcHVibGljOgorICAgIC8qIEZ1bmN0aW9uIHRoYXQgdXNlZCB0byBjYWxjdWxhdGUgdW5pcXVlIHRva2VuIGZvciBnaXZlbiBWZWhpY2xlUHJvcFZhbHVlICovCisgICAgdXNpbmcgVG9rZW5GdW5jdGlvbiA9IHN0ZDo6ZnVuY3Rpb248aW50NjRfdChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZSk+OworCitwcml2YXRlOgorICAgIHN0cnVjdCBSZWNvcmRDb25maWcgeworICAgICAgICBWZWhpY2xlUHJvcENvbmZpZyBwcm9wQ29uZmlnOworICAgICAgICBUb2tlbkZ1bmN0aW9uIHRva2VuRnVuY3Rpb247CisgICAgfTsKKworICAgIHN0cnVjdCBSZWNvcmRJZCB7CisgICAgICAgIGludDMyX3QgcHJvcDsKKyAgICAgICAgaW50MzJfdCBhcmVhOworICAgICAgICBpbnQ2NF90IHRva2VuOworCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZWNvcmRJZCYgb3RoZXIpIGNvbnN0OworICAgICAgICBib29sIG9wZXJhdG9yPChjb25zdCBSZWNvcmRJZCYgb3RoZXIpIGNvbnN0OworICAgIH07CisKKyAgICB1c2luZyBQcm9wZXJ0eU1hcCA9IHN0ZDo6bWFwPFJlY29yZElkLCBWZWhpY2xlUHJvcFZhbHVlPjsKKyAgICB1c2luZyBQcm9wZXJ0eU1hcFJhbmdlID0gc3RkOjpwYWlyPFByb3BlcnR5TWFwOjpjb25zdF9pdGVyYXRvciwgUHJvcGVydHlNYXA6OmNvbnN0X2l0ZXJhdG9yPjsKKworcHVibGljOgorICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgY29uZmlnLCBUb2tlbkZ1bmN0aW9uIHRva2VuRnVuYyA9IG51bGxwdHIpOworCisgICAgLyogU3RvcmVzIHByb3ZpZGVkIHZhbHVlLiBSZXR1cm5zIHRydWUgaWYgdmFsdWUgd2FzIHdyaXR0ZW4gcmV0dXJucyBmYWxzZSBpZiBjb25maWcgZm9yCisgICAgICogZXhhbXBsZSB3YXNuJ3QgcmVnaXN0ZXJlZC4gKi8KKyAgICBib29sIHdyaXRlVmFsdWUoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKTsKKworICAgIHZvaWQgcmVtb3ZlVmFsdWUoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKTsKKyAgICB2b2lkIHJlbW92ZVZhbHVlc0ZvclByb3BlcnR5KGludDMyX3QgcHJvcElkKTsKKworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWU+IHJlYWRBbGxWYWx1ZXMoKSBjb25zdDsKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlPiByZWFkVmFsdWVzRm9yUHJvcGVydHkoaW50MzJfdCBwcm9wSWQpIGNvbnN0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPiByZWFkVmFsdWVPck51bGwoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdCkgY29uc3Q7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZlaGljbGVQcm9wVmFsdWU+IHJlYWRWYWx1ZU9yTnVsbChpbnQzMl90IHByb3AsIGludDMyX3QgYXJlYSA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHRva2VuID0gMCkgY29uc3Q7CisKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gZ2V0QWxsQ29uZmlncygpIGNvbnN0OworICAgIGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnKiBnZXRDb25maWdPck51bGwoaW50MzJfdCBwcm9wSWQpIGNvbnN0OworICAgIGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnKiBnZXRDb25maWdPckRpZShpbnQzMl90IHByb3BJZCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgUmVjb3JkSWQgZ2V0UmVjb3JkSWRMb2NrZWQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgdmFsdWVQcm90b3R5cGUpIGNvbnN0OworICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUqIGdldFZhbHVlT3JOdWxsTG9ja2VkKGNvbnN0IFJlY29yZElkJiByZWNJZCkgY29uc3Q7CisgICAgUHJvcGVydHlNYXBSYW5nZSBmaW5kUmFuZ2VMb2NrZWQoaW50MzJfdCBwcm9wSWQpIGNvbnN0OworCitwcml2YXRlOgorICAgIHVzaW5nIE11eEd1YXJkID0gc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+OworICAgIG11dGFibGUgc3RkOjptdXRleCBtTG9jazsKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8aW50MzJfdCAvKiBWZWhpY2xlUHJvcGVydHkgKi8sIFJlY29yZENvbmZpZz4gbUNvbmZpZ3M7CisKKyAgICBQcm9wZXJ0eU1hcCBtUHJvcGVydHlWYWx1ZXM7ICAvLyBTb3J0ZWQgbWFwIG9mIFJlY29yZElkIDogVmVoaWNsZVByb3BWYWx1ZS4KK307CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1Byb3BlcnR5RGJfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVV0aWxzLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlMGIxNjMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZVV0aWxzX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZVV0aWxzX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworLyoqIFJlcHJlc2VudHMgYWxsIHN1cHBvcnRlZCBhcmVhcyBmb3IgYSBwcm9wZXJ0eS4gQ2FuIGJlIHVzZWQgaXMgICovCitjb25zdGV4cHIgaW50MzJfdCBrQWxsU3VwcG9ydGVkQXJlYXMgPSAwOworCisvKiogUmV0dXJucyB1bmRlcmx5aW5nIChpbnRlZ2VyKSB2YWx1ZSBmb3IgZ2l2ZW4gZW51bS4gKi8KK3RlbXBsYXRlPHR5cGVuYW1lIEVOVU0+CitpbmxpbmUgY29uc3RleHByIHR5cGVuYW1lIHN0ZDo6dW5kZXJseWluZ190eXBlPEVOVU0+Ojp0eXBlIHRvSW50KAorICAgICAgICBFTlVNIGNvbnN0IHZhbHVlKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6dW5kZXJseWluZ190eXBlPEVOVU0+Ojp0eXBlPih2YWx1ZSk7Cit9CisKK2lubGluZSBjb25zdGV4cHIgVmVoaWNsZVByb3BlcnR5VHlwZSBnZXRQcm9wVHlwZShpbnQzMl90IHByb3ApIHsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmVoaWNsZVByb3BlcnR5VHlwZT4oCisgICAgICAgICAgICBwcm9wICYgdG9JbnQoVmVoaWNsZVByb3BlcnR5VHlwZTo6TUFTSykpOworfQorCitpbmxpbmUgY29uc3RleHByIFZlaGljbGVQcm9wZXJ0eUdyb3VwIGdldFByb3BHcm91cChpbnQzMl90IHByb3ApIHsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmVoaWNsZVByb3BlcnR5R3JvdXA+KAorICAgICAgICAgICAgcHJvcCAmIHRvSW50KFZlaGljbGVQcm9wZXJ0eUdyb3VwOjpNQVNLKSk7Cit9CisKK2lubGluZSBjb25zdGV4cHIgVmVoaWNsZUFyZWEgZ2V0UHJvcEFyZWEoaW50MzJfdCBwcm9wKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFZlaGljbGVBcmVhPihwcm9wICYgdG9JbnQoVmVoaWNsZUFyZWE6Ok1BU0spKTsKK30KKworaW5saW5lIGNvbnN0ZXhwciBib29sIGlzR2xvYmFsUHJvcChpbnQzMl90IHByb3ApIHsKKyAgICByZXR1cm4gZ2V0UHJvcEFyZWEocHJvcCkgPT0gVmVoaWNsZUFyZWE6OkdMT0JBTDsKK30KKworaW5saW5lIGNvbnN0ZXhwciBib29sIGlzU3lzdGVtUHJvcGVydHkoaW50MzJfdCBwcm9wKSB7CisgICAgcmV0dXJuIFZlaGljbGVQcm9wZXJ0eUdyb3VwOjpTWVNURU0gPT0gZ2V0UHJvcEdyb3VwKHByb3ApOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4gY3JlYXRlVmVoaWNsZVByb3BWYWx1ZSgKKyAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsIHNpemVfdCB2ZWNTaXplKTsKKworc2l6ZV90IGdldFZlaGljbGVSYXdWYWx1ZVZlY3RvclNpemUoCisgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWUmIHZhbHVlLCBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUpOworCit2b2lkIGNvcHlWZWhpY2xlUmF3VmFsdWUoVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWUqIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlJiBzcmMpOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBzaGFsbG93Q29weUhpZGxWZWMoaGlkbF92ZWM8VD4qIGRlc3QsIGNvbnN0IGhpZGxfdmVjPFQ+JiBzcmMpOworCit2b2lkIHNoYWxsb3dDb3B5SGlkbFN0cihoaWRsX3N0cmluZyogZGVzdCwgY29uc3QgaGlkbF9zdHJpbmcmIHNyYyk7CisKK3ZvaWQgc2hhbGxvd0NvcHkoVmVoaWNsZVByb3BWYWx1ZSogZGVzdCwgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgc3JjKTsKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlVXRpbHNfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1N1YnNjcmlwdGlvbk1hbmFnZXIuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvU3Vic2NyaXB0aW9uTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRmMGE1ZgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1N1YnNjcmlwdGlvbk1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMzEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhdXRvbW90aXZlLnZlaGljbGVAMi4wLWltcGwiCisKKyNpbmNsdWRlICJTdWJzY3JpcHRpb25NYW5hZ2VyLmgiCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIlZlaGljbGVVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCitib29sIG1lcmdlU3Vic2NyaWJlT3B0aW9ucyhjb25zdCBTdWJzY3JpYmVPcHRpb25zICZvbGRPcHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3Vic2NyaWJlT3B0aW9ucyAmbmV3T3B0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgKm91dFJlc3VsdCkgeworCisgICAgaW50MzJfdCB1cGRhdGVkQXJlYXMgPSBvbGRPcHRzLnZlaGljbGVBcmVhczsKKyAgICBpZiAodXBkYXRlZEFyZWFzICE9IGtBbGxTdXBwb3J0ZWRBcmVhcykgeworICAgICAgICB1cGRhdGVkQXJlYXMgPSBuZXdPcHRzLnZlaGljbGVBcmVhcyAhPSBrQWxsU3VwcG9ydGVkQXJlYXMKKyAgICAgICAgICAgID8gdXBkYXRlZEFyZWFzIHwgbmV3T3B0cy52ZWhpY2xlQXJlYXMKKyAgICAgICAgICAgIDoga0FsbFN1cHBvcnRlZEFyZWFzOworICAgIH0KKworICAgIGZsb2F0IHVwZGF0ZWRSYXRlID0gc3RkOjptYXgob2xkT3B0cy5zYW1wbGVSYXRlLCBuZXdPcHRzLnNhbXBsZVJhdGUpOworICAgIFN1YnNjcmliZUZsYWdzIHVwZGF0ZWRGbGFncyA9IFN1YnNjcmliZUZsYWdzKG9sZE9wdHMuZmxhZ3MgfCBuZXdPcHRzLmZsYWdzKTsKKworICAgIGJvb2wgdXBkYXRlZCA9IHVwZGF0ZWRSYXRlID4gb2xkT3B0cy5zYW1wbGVSYXRlCisgICAgICAgICAgICAgICAgICAgfHwgdXBkYXRlZEFyZWFzICE9IG9sZE9wdHMudmVoaWNsZUFyZWFzCisgICAgICAgICAgICAgICAgICAgfHwgdXBkYXRlZEZsYWdzICE9IG9sZE9wdHMuZmxhZ3M7CisgICAgaWYgKHVwZGF0ZWQpIHsKKyAgICAgICAgKm91dFJlc3VsdCA9IG9sZE9wdHM7CisgICAgICAgIG91dFJlc3VsdC0+dmVoaWNsZUFyZWFzID0gdXBkYXRlZEFyZWFzOworICAgICAgICBvdXRSZXN1bHQtPnNhbXBsZVJhdGUgPSB1cGRhdGVkUmF0ZTsKKyAgICAgICAgb3V0UmVzdWx0LT5mbGFncyA9IHVwZGF0ZWRGbGFnczsKKyAgICB9CisKKyAgICByZXR1cm4gdXBkYXRlZDsKK30KKwordm9pZCBIYWxDbGllbnQ6OmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKGNvbnN0IFN1YnNjcmliZU9wdGlvbnMgJm9wdHMpICB7CisgICAgQUxPR0koIiVzIG9wdHMucHJvcElkOiAweCV4IiwgX19mdW5jX18sIG9wdHMucHJvcElkKTsKKworICAgIGF1dG8gaXQgPSBtU3Vic2NyaXB0aW9ucy5maW5kKG9wdHMucHJvcElkKTsKKyAgICBpZiAoaXQgPT0gbVN1YnNjcmlwdGlvbnMuZW5kKCkpIHsKKyAgICAgICAgbVN1YnNjcmlwdGlvbnMuZW1wbGFjZShvcHRzLnByb3BJZCwgb3B0cyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uc3QgU3Vic2NyaWJlT3B0aW9ucyYgb2xkT3B0cyA9IGl0LT5zZWNvbmQ7CisgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgdXBkYXRlZE9wdGlvbnM7CisgICAgICAgIGlmIChtZXJnZVN1YnNjcmliZU9wdGlvbnMob2xkT3B0cywgb3B0cywgJnVwZGF0ZWRPcHRpb25zKSkgeworICAgICAgICAgICAgbVN1YnNjcmlwdGlvbnMuZXJhc2UoaXQpOworICAgICAgICAgICAgbVN1YnNjcmlwdGlvbnMuZW1wbGFjZShvcHRzLnByb3BJZCwgdXBkYXRlZE9wdGlvbnMpOworICAgICAgICB9CisgICAgfQorfQorCitib29sIEhhbENsaWVudDo6aXNTdWJzY3JpYmVkKGludDMyX3QgcHJvcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGFyZWFJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpIHsKKyAgICBhdXRvIGl0ID0gbVN1YnNjcmlwdGlvbnMuZmluZChwcm9wSWQpOworICAgIGlmIChpdCA9PSBtU3Vic2NyaXB0aW9ucy5lbmQoKSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGNvbnN0IFN1YnNjcmliZU9wdGlvbnMmIG9wdHMgPSBpdC0+c2Vjb25kOworICAgIGJvb2wgcmVzID0gKG9wdHMuZmxhZ3MgJiBmbGFncykKKyAgICAgICAgICAgJiYgKG9wdHMudmVoaWNsZUFyZWFzID09IDAgfHwgYXJlYUlkID09IDAgfHwgb3B0cy52ZWhpY2xlQXJlYXMgJiBhcmVhSWQpOworICAgIHJldHVybiByZXM7Cit9CisKK3N0ZDo6dmVjdG9yPGludDMyX3Q+IEhhbENsaWVudDo6Z2V0U3Vic2NyaWJlZFByb3BlcnRpZXMoKSBjb25zdCB7CisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gcHJvcHM7CisgICAgZm9yIChjb25zdCBhdXRvJiBzdWJzY3JpcHRpb24gOiBtU3Vic2NyaXB0aW9ucykgeworICAgICAgICBBTE9HSSgiJXMgcHJvcElkOiAweCV4LCBwcm9wSWQ6IDB4JXgiLCBfX2Z1bmNfXywgc3Vic2NyaXB0aW9uLmZpcnN0LCBzdWJzY3JpcHRpb24uc2Vjb25kLnByb3BJZCk7CisgICAgICAgIHByb3BzLnB1c2hfYmFjayhzdWJzY3JpcHRpb24uZmlyc3QpOworICAgIH0KKyAgICByZXR1cm4gcHJvcHM7Cit9CisKK1N0YXR1c0NvZGUgU3Vic2NyaXB0aW9uTWFuYWdlcjo6YWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oCisgICAgICAgIENsaWVudElkIGNsaWVudElkLAorICAgICAgICBjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiAmY2FsbGJhY2ssCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+ICZvcHRpb25MaXN0LAorICAgICAgICBzdGQ6Omxpc3Q8U3Vic2NyaWJlT3B0aW9ucz4qIG91dFVwZGF0ZWRTdWJzY3JpcHRpb25zKSB7CisgICAgb3V0VXBkYXRlZFN1YnNjcmlwdGlvbnMtPmNsZWFyKCk7CisKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKworICAgIEFMT0dJKCJTdWJzY3JpcHRpb25NYW5hZ2VyOjphZGRPclVwZGF0ZVN1YnNjcmlwdGlvbiwgY2FsbGJhY2s6ICVwIiwgY2FsbGJhY2suZ2V0KCkpOworCisgICAgY29uc3Qgc3A8SGFsQ2xpZW50PiYgY2xpZW50ID0gZ2V0T3JDcmVhdGVIYWxDbGllbnRMb2NrZWQoY2xpZW50SWQsIGNhbGxiYWNrKTsKKyAgICBpZiAoY2xpZW50LmdldCgpID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVEVSTkFMX0VSUk9SOworICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3B0aW9uTGlzdC5zaXplKCk7IGkrKykgeworICAgICAgICBjb25zdCBTdWJzY3JpYmVPcHRpb25zJiBvcHRzID0gb3B0aW9uTGlzdFtpXTsKKyAgICAgICAgQUxPR0koIlN1YnNjcmlwdGlvbk1hbmFnZXI6OmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uLCBwcm9wOiAweCV4Iiwgb3B0cy5wcm9wSWQpOworICAgICAgICBjbGllbnQtPmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKG9wdHMpOworCisgICAgICAgIGFkZENsaWVudFRvUHJvcE1hcExvY2tlZChvcHRzLnByb3BJZCwgY2xpZW50KTsKKworICAgICAgICBpZiAoU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVCAmIG9wdHMuZmxhZ3MpIHsKKyAgICAgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgdXBkYXRlZDsKKyAgICAgICAgICAgIGlmICh1cGRhdGVIYWxFdmVudFN1YnNjcmlwdGlvbkxvY2tlZChvcHRzLCAmdXBkYXRlZCkpIHsKKyAgICAgICAgICAgICAgICBvdXRVcGRhdGVkU3Vic2NyaXB0aW9ucy0+cHVzaF9iYWNrKHVwZGF0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworfQorCitzdGQ6Omxpc3Q8SGFsQ2xpZW50VmFsdWVzPiBTdWJzY3JpcHRpb25NYW5hZ2VyOjpkaXN0cmlidXRlVmFsdWVzVG9DbGllbnRzKAorICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxyZWN5Y2xhYmxlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPj4mIHByb3BWYWx1ZXMsCisgICAgICAgIFN1YnNjcmliZUZsYWdzIGZsYWdzKSBjb25zdCB7CisgICAgc3RkOjptYXA8c3A8SGFsQ2xpZW50Piwgc3RkOjpsaXN0PFZlaGljbGVQcm9wVmFsdWUqPj4gY2xpZW50VmFsdWVzTWFwOworCisgICAgeworICAgICAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwcm9wVmFsdWU6IHByb3BWYWx1ZXMpIHsKKyAgICAgICAgICAgIFZlaGljbGVQcm9wVmFsdWUqIHYgPSBwcm9wVmFsdWUuZ2V0KCk7CisgICAgICAgICAgICBhdXRvIGNsaWVudHMgPSBnZXRTdWJzY3JpYmVkQ2xpZW50c0xvY2tlZCgKKyAgICAgICAgICAgICAgICB2LT5wcm9wLCB2LT5hcmVhSWQsIGZsYWdzKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgY2xpZW50IDogY2xpZW50cykgeworICAgICAgICAgICAgICAgIGNsaWVudFZhbHVlc01hcFtjbGllbnRdLnB1c2hfYmFjayh2KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHN0ZDo6bGlzdDxIYWxDbGllbnRWYWx1ZXM+IGNsaWVudFZhbHVlczsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGVudHJ5IDogY2xpZW50VmFsdWVzTWFwKSB7CisgICAgICAgIGNsaWVudFZhbHVlcy5wdXNoX2JhY2soSGFsQ2xpZW50VmFsdWVzIHsKKyAgICAgICAgICAgIC5jbGllbnQgPSBlbnRyeS5maXJzdCwKKyAgICAgICAgICAgIC52YWx1ZXMgPSBlbnRyeS5zZWNvbmQKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcmV0dXJuIGNsaWVudFZhbHVlczsKK30KKworc3RkOjpsaXN0PHNwPEhhbENsaWVudD4+IFN1YnNjcmlwdGlvbk1hbmFnZXI6OmdldFN1YnNjcmliZWRDbGllbnRzKAorICAgIGludDMyX3QgcHJvcElkLCBpbnQzMl90IGFyZWEsIFN1YnNjcmliZUZsYWdzIGZsYWdzKSBjb25zdCB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgcmV0dXJuIGdldFN1YnNjcmliZWRDbGllbnRzTG9ja2VkKHByb3BJZCwgYXJlYSwgZmxhZ3MpOworfQorCitzdGQ6Omxpc3Q8c3A8SGFsQ2xpZW50Pj4gU3Vic2NyaXB0aW9uTWFuYWdlcjo6Z2V0U3Vic2NyaWJlZENsaWVudHNMb2NrZWQoCisgICAgICAgIGludDMyX3QgcHJvcElkLCBpbnQzMl90IGFyZWEsIFN1YnNjcmliZUZsYWdzIGZsYWdzKSBjb25zdCB7CisgICAgc3RkOjpsaXN0PHNwPEhhbENsaWVudD4+IHN1YnNjcmliZWRDbGllbnRzOworCisgICAgc3A8SGFsQ2xpZW50VmVjdG9yPiBwcm9wQ2xpZW50cyA9IGdldENsaWVudHNGb3JQcm9wZXJ0eUxvY2tlZChwcm9wSWQpOworICAgIGlmIChwcm9wQ2xpZW50cy5nZXQoKSAhPSBudWxscHRyKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcHJvcENsaWVudHMtPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBjb25zdCBhdXRvJiBjbGllbnQgPSBwcm9wQ2xpZW50cy0+aXRlbUF0KGkpOworICAgICAgICAgICAgaWYgKGNsaWVudC0+aXNTdWJzY3JpYmVkKHByb3BJZCwgYXJlYSwgZmxhZ3MpKSB7CisgICAgICAgICAgICAgICAgc3Vic2NyaWJlZENsaWVudHMucHVzaF9iYWNrKGNsaWVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gc3Vic2NyaWJlZENsaWVudHM7Cit9CisKK2Jvb2wgU3Vic2NyaXB0aW9uTWFuYWdlcjo6dXBkYXRlSGFsRXZlbnRTdWJzY3JpcHRpb25Mb2NrZWQoCisgICAgICAgIGNvbnN0IFN1YnNjcmliZU9wdGlvbnMgJm9wdHMsIFN1YnNjcmliZU9wdGlvbnMgKm91dFVwZGF0ZWQpIHsKKyAgICBib29sIHVwZGF0ZWQgPSBmYWxzZTsKKyAgICBhdXRvIGl0ID0gbUhhbEV2ZW50U3Vic2NyaWJlT3B0aW9ucy5maW5kKG9wdHMucHJvcElkKTsKKyAgICBpZiAoaXQgPT0gbUhhbEV2ZW50U3Vic2NyaWJlT3B0aW9ucy5lbmQoKSkgeworICAgICAgICAqb3V0VXBkYXRlZCA9IG9wdHM7CisgICAgICAgIG1IYWxFdmVudFN1YnNjcmliZU9wdGlvbnMuZW1wbGFjZShvcHRzLnByb3BJZCwgb3B0cyk7CisgICAgICAgIHVwZGF0ZWQgPSB0cnVlOworICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnN0IFN1YnNjcmliZU9wdGlvbnMmIG9sZE9wdHMgPSBpdC0+c2Vjb25kOworCisgICAgICAgIGlmIChtZXJnZVN1YnNjcmliZU9wdGlvbnMob2xkT3B0cywgb3B0cywgb3V0VXBkYXRlZCkpIHsKKyAgICAgICAgICAgIG1IYWxFdmVudFN1YnNjcmliZU9wdGlvbnMuZXJhc2Uob3B0cy5wcm9wSWQpOworICAgICAgICAgICAgbUhhbEV2ZW50U3Vic2NyaWJlT3B0aW9ucy5lbXBsYWNlKG9wdHMucHJvcElkLCAqb3V0VXBkYXRlZCk7CisgICAgICAgICAgICB1cGRhdGVkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB1cGRhdGVkOworfQorCit2b2lkIFN1YnNjcmlwdGlvbk1hbmFnZXI6OmFkZENsaWVudFRvUHJvcE1hcExvY2tlZCgKKyAgICAgICAgaW50MzJfdCBwcm9wSWQsIGNvbnN0IHNwPEhhbENsaWVudD4gJmNsaWVudCkgeworICAgIGF1dG8gaXQgPSBtUHJvcFRvQ2xpZW50cy5maW5kKHByb3BJZCk7CisgICAgc3A8SGFsQ2xpZW50VmVjdG9yPiBwcm9wQ2xpZW50czsKKyAgICBpZiAoaXQgPT0gbVByb3BUb0NsaWVudHMuZW5kKCkpIHsKKyAgICAgICAgcHJvcENsaWVudHMgPSBuZXcgSGFsQ2xpZW50VmVjdG9yKCk7CisgICAgICAgIG1Qcm9wVG9DbGllbnRzLmluc2VydChzdGQ6Om1ha2VfcGFpcihwcm9wSWQsIHByb3BDbGllbnRzKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJvcENsaWVudHMgPSBpdC0+c2Vjb25kOworICAgIH0KKyAgICBwcm9wQ2xpZW50cy0+YWRkT3JVcGRhdGUoY2xpZW50KTsKK30KKworc3A8SGFsQ2xpZW50VmVjdG9yPiBTdWJzY3JpcHRpb25NYW5hZ2VyOjpnZXRDbGllbnRzRm9yUHJvcGVydHlMb2NrZWQoCisgICAgICAgIGludDMyX3QgcHJvcElkKSBjb25zdCB7CisgICAgYXV0byBpdCA9IG1Qcm9wVG9DbGllbnRzLmZpbmQocHJvcElkKTsKKyAgICByZXR1cm4gaXQgPT0gbVByb3BUb0NsaWVudHMuZW5kKCkgPyBudWxscHRyIDogaXQtPnNlY29uZDsKK30KKworc3A8SGFsQ2xpZW50PiBTdWJzY3JpcHRpb25NYW5hZ2VyOjpnZXRPckNyZWF0ZUhhbENsaWVudExvY2tlZCgKKyAgICAgICAgQ2xpZW50SWQgY2xpZW50SWQsIGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjaykgeworICAgIGF1dG8gaXQgPSBtQ2xpZW50cy5maW5kKGNsaWVudElkKTsKKworICAgIGlmIChpdCA9PSBtQ2xpZW50cy5lbmQoKSkgeworICAgICAgICB1aW50NjRfdCBjb29raWUgPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihjbGllbnRJZCk7CisgICAgICAgIEFMT0dJKCJDcmVhdGluZyBuZXcgY2xpZW50IGFuZCBsaW5raW5nIHRvIGRlYXRoIHJlY2lwaWVudCwgY29va2llOiAweCUiIFBSSXg2NCwgY29va2llKTsKKyAgICAgICAgYXV0byByZXMgPSBjYWxsYmFjay0+bGlua1RvRGVhdGgobUNhbGxiYWNrRGVhdGhSZWNpcGllbnQsIGNvb2tpZSk7CisgICAgICAgIGlmICghcmVzLmlzT2soKSkgeyAgLy8gQ2xpZW50IGlzIGFscmVhZHkgZGVhZD8KKyAgICAgICAgICAgIEFMT0dXKCIlcyBmYWlsZWQgdG8gbGluayB0byBkZWF0aCwgY2xpZW50ICVwLCBlcnI6ICVzIiwKKyAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBjYWxsYmFjay5nZXQoKSwgcmVzLmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIHNwPEhhbENsaWVudD4gY2xpZW50ID0gbmV3IEhhbENsaWVudChjYWxsYmFjayk7CisgICAgICAgIG1DbGllbnRzLmluc2VydCh7Y2xpZW50SWQsIGNsaWVudH0pOworICAgICAgICByZXR1cm4gY2xpZW50OworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBpdC0+c2Vjb25kOworICAgIH0KK30KKwordm9pZCBTdWJzY3JpcHRpb25NYW5hZ2VyOjp1bnN1YnNjcmliZShDbGllbnRJZCBjbGllbnRJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwcm9wSWQpIHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBhdXRvIHByb3BlcnR5Q2xpZW50cyA9IGdldENsaWVudHNGb3JQcm9wZXJ0eUxvY2tlZChwcm9wSWQpOworICAgIGF1dG8gY2xpZW50SXRlciA9IG1DbGllbnRzLmZpbmQoY2xpZW50SWQpOworICAgIGlmIChjbGllbnRJdGVyID09IG1DbGllbnRzLmVuZCgpKSB7CisgICAgICAgIEFMT0dXKCJVbmFibGUgdG8gdW5zdWJzY3JpYmU6IG5vIGNhbGxiYWNrIGZvdW5kLCBwcm9wSWQ6IDB4JXgiLCBwcm9wSWQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gY2xpZW50ID0gY2xpZW50SXRlci0+c2Vjb25kOworCisgICAgICAgIGlmIChwcm9wZXJ0eUNsaWVudHMgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgcHJvcGVydHlDbGllbnRzLT5yZW1vdmUoY2xpZW50KTsKKworICAgICAgICAgICAgaWYgKHByb3BlcnR5Q2xpZW50cy0+aXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgbVByb3BUb0NsaWVudHMuZXJhc2UocHJvcElkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaXNDbGllbnRTdWJzY3JpYmVkVG9PdGhlclByb3BzID0gZmFsc2U7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcHJvcENsaWVudCA6IG1Qcm9wVG9DbGllbnRzKSB7CisgICAgICAgICAgICBpZiAocHJvcENsaWVudC5zZWNvbmQtPmluZGV4T2YoY2xpZW50KSA+PSAwKSB7CisgICAgICAgICAgICAgICAgaXNDbGllbnRTdWJzY3JpYmVkVG9PdGhlclByb3BzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICghaXNDbGllbnRTdWJzY3JpYmVkVG9PdGhlclByb3BzKSB7CisgICAgICAgICAgICBhdXRvIHJlcyA9IGNsaWVudC0+Z2V0Q2FsbGJhY2soKS0+dW5saW5rVG9EZWF0aChtQ2FsbGJhY2tEZWF0aFJlY2lwaWVudCk7CisgICAgICAgICAgICBpZiAoIXJlcy5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HVygiJXMgZmFpbGVkIHRvIHVubGluayB0byBkZWF0aCwgY2xpZW50OiAlcCwgZXJyOiAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGNsaWVudC0+Z2V0Q2FsbGJhY2soKS5nZXQoKSwgcmVzLmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtQ2xpZW50cy5lcmFzZShjbGllbnRJdGVyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChwcm9wZXJ0eUNsaWVudHMgPT0gbnVsbHB0ciB8fCBwcm9wZXJ0eUNsaWVudHMtPmlzRW1wdHkoKSkgeworICAgICAgICBtSGFsRXZlbnRTdWJzY3JpYmVPcHRpb25zLmVyYXNlKHByb3BJZCk7CisgICAgICAgIG1PblByb3BlcnR5VW5zdWJzY3JpYmVkKHByb3BJZCk7CisgICAgfQorfQorCit2b2lkIFN1YnNjcmlwdGlvbk1hbmFnZXI6Om9uQ2FsbGJhY2tEZWFkKHVpbnQ2NF90IGNvb2tpZSkgeworICAgIEFMT0dJKCIlcywgY29va2llOiAweCUiIFBSSXg2NCwgX19mdW5jX18sIGNvb2tpZSk7CisgICAgQ2xpZW50SWQgY2xpZW50SWQgPSBjb29raWU7CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBwcm9wczsKKyAgICB7CisgICAgICAgIE11eEd1YXJkIGcobUxvY2spOworICAgICAgICBjb25zdCBhdXRvJiBpdCA9IG1DbGllbnRzLmZpbmQoY2xpZW50SWQpOworICAgICAgICBpZiAoaXQgPT0gbUNsaWVudHMuZW5kKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsgIC8vIE5vdGhpbmcgdG8gZG8gaGVyZSwgY2xpZW50IHdhc24ndCBzdWJzY3JpYmVkIHRvIGFueSBwcm9wZXJ0aWVzLgorICAgICAgICB9CisgICAgICAgIGNvbnN0IGF1dG8mIGhhbENsaWVudCA9IGl0LT5zZWNvbmQ7CisgICAgICAgIHByb3BzID0gaGFsQ2xpZW50LT5nZXRTdWJzY3JpYmVkUHJvcGVydGllcygpOworICAgIH0KKworICAgIGZvciAoaW50MzJfdCBwcm9wSWQgOiBwcm9wcykgeworICAgICAgICB1bnN1YnNjcmliZShjbGllbnRJZCwgcHJvcElkKTsKKyAgICB9Cit9CisKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZUhhbE1hbmFnZXIuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZUhhbE1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlNTQzYmIKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlSGFsTWFuYWdlci5jcHAKQEAgLTAsMCArMSwzNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImF1dG9tb3RpdmUudmVoaWNsZUAyLjAtaW1wbCIKKworI2luY2x1ZGUgIlZlaGljbGVIYWxNYW5hZ2VyLmgiCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxmc3RyZWFtPgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQnBId1ZlaGljbGVDYWxsYmFjay5oPgorCisjaW5jbHVkZSAiVmVoaWNsZVV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ6OnBsYWNlaG9sZGVyczsKKworY29uc3RleHByIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMga0hhbEV2ZW50QmF0Y2hpbmdUaW1lV2luZG93KDEwKTsKKworY29uc3QgVmVoaWNsZVByb3BWYWx1ZSBrRW1wdHlWYWx1ZXt9OworCisvKioKKyAqIEluZGljYXRlcyB3aGF0J3MgdGhlIG1heGltdW0gc2l6ZSBvZiBoaWRsX3ZlYzxWZWhpY2xlUHJvcFZhbHVlPiB3ZSB3YW50CisgKiB0byBzdG9yZSBpbiByZXVzYWJsZSBvYmplY3QgcG9vbC4KKyAqLworY29uc3RleHByIGF1dG8ga01heEhpZGxWZWNPZlZlaGljbFByb3BWYWx1ZVBvb2xTaXplID0gMjA7CisKK1JldHVybjx2b2lkPiBWZWhpY2xlSGFsTWFuYWdlcjo6Z2V0QWxsUHJvcENvbmZpZ3MoZ2V0QWxsUHJvcENvbmZpZ3NfY2IgX2hpZGxfY2IpIHsKKyAgICBBTE9HSSgiZ2V0QWxsUHJvcENvbmZpZ3MgY2FsbGVkIik7CisgICAgaGlkbF92ZWM8VmVoaWNsZVByb3BDb25maWc+IGhpZGxDb25maWdzOworICAgIGF1dG8mIGhhbENvbmZpZyA9IG1Db25maWdJbmRleC0+Z2V0QWxsQ29uZmlncygpOworCisgICAgaGlkbENvbmZpZ3Muc2V0VG9FeHRlcm5hbCgKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8VmVoaWNsZVByb3BDb25maWcgKj4oaGFsQ29uZmlnLmRhdGEoKSksCisgICAgICAgICAgICBoYWxDb25maWcuc2l6ZSgpKTsKKworICAgIF9oaWRsX2NiKGhpZGxDb25maWdzKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBWZWhpY2xlSGFsTWFuYWdlcjo6Z2V0UHJvcENvbmZpZ3MoY29uc3QgaGlkbF92ZWM8aW50MzJfdD4gJnByb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFByb3BDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGNvbmZpZ3M7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGF1dG8gcHJvcCA9IHByb3BlcnRpZXNbaV07CisgICAgICAgIGlmIChtQ29uZmlnSW5kZXgtPmhhc0NvbmZpZyhwcm9wKSkgeworICAgICAgICAgICAgY29uZmlncy5wdXNoX2JhY2sobUNvbmZpZ0luZGV4LT5nZXRDb25maWcocHJvcCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR1coIlJlcXVlc3RlZCBjb25maWcgZm9yIHVuZGVmaW5lZCBwcm9wZXJ0eTogMHgleCIsIHByb3ApOworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkcsIGhpZGxfdmVjPFZlaGljbGVQcm9wQ29uZmlnPigpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIF9oaWRsX2NiKFN0YXR1c0NvZGU6Ok9LLCBjb25maWdzKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBWZWhpY2xlSGFsTWFuYWdlcjo6Z2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwgZ2V0X2NiIF9oaWRsX2NiKSB7CisgICAgY29uc3QgYXV0byogY29uZmlnID0gZ2V0UHJvcENvbmZpZ09yTnVsbChyZXF1ZXN0ZWRQcm9wVmFsdWUucHJvcCk7CisgICAgaWYgKGNvbmZpZyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gZ2V0IHZhbHVlOiBjb25maWcgbm90IGZvdW5kLCBwcm9wZXJ0eTogMHgleCIsCisgICAgICAgICAgICAgIHJlcXVlc3RlZFByb3BWYWx1ZS5wcm9wKTsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkcsIGtFbXB0eVZhbHVlKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpZiAoIWNoZWNrUmVhZFBlcm1pc3Npb24oKmNvbmZpZykpIHsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzQ29kZTo6QUNDRVNTX0RFTklFRCwga0VtcHR5VmFsdWUpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFN0YXR1c0NvZGUgc3RhdHVzOworICAgIGF1dG8gdmFsdWUgPSBtSGFsLT5nZXQocmVxdWVzdGVkUHJvcFZhbHVlLCAmc3RhdHVzKTsKKyAgICBfaGlkbF9jYihzdGF0dXMsIHZhbHVlLmdldCgpID8gKnZhbHVlIDoga0VtcHR5VmFsdWUpOworCisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48U3RhdHVzQ29kZT4gVmVoaWNsZUhhbE1hbmFnZXI6OnNldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlICZ2YWx1ZSkgeworICAgIGF1dG8gcHJvcCA9IHZhbHVlLnByb3A7CisgICAgY29uc3QgYXV0byogY29uZmlnID0gZ2V0UHJvcENvbmZpZ09yTnVsbChwcm9wKTsKKyAgICBpZiAoY29uZmlnID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIkZhaWxlZCB0byBzZXQgdmFsdWU6IGNvbmZpZyBub3QgZm91bmQsIHByb3BlcnR5OiAweCV4IiwgcHJvcCk7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICB9CisKKyAgICBpZiAoIWNoZWNrV3JpdGVQZXJtaXNzaW9uKCpjb25maWcpKSB7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpBQ0NFU1NfREVOSUVEOworICAgIH0KKworICAgIGhhbmRsZVByb3BlcnR5U2V0RXZlbnQodmFsdWUpOworCisgICAgYXV0byBzdGF0dXMgPSBtSGFsLT5zZXQodmFsdWUpOworCisgICAgcmV0dXJuIFJldHVybjxTdGF0dXNDb2RlPihzdGF0dXMpOworfQorCitSZXR1cm48U3RhdHVzQ29kZT4gVmVoaWNsZUhhbE1hbmFnZXI6OnN1YnNjcmliZShjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiAmY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiAmb3B0aW9ucykgeworICAgIGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+IHZlcmlmaWVkT3B0aW9ucyhvcHRpb25zKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlcmlmaWVkT3B0aW9ucy5zaXplKCk7IGkrKykgeworICAgICAgICBTdWJzY3JpYmVPcHRpb25zJiBvcHMgPSB2ZXJpZmllZE9wdGlvbnNbaV07CisgICAgICAgIGF1dG8gcHJvcCA9IG9wcy5wcm9wSWQ7CisKKyAgICAgICAgY29uc3QgYXV0byogY29uZmlnID0gZ2V0UHJvcENvbmZpZ09yTnVsbChwcm9wKTsKKyAgICAgICAgaWYgKGNvbmZpZyA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIHN1YnNjcmliZTogY29uZmlnIG5vdCBmb3VuZCwgcHJvcGVydHk6IDB4JXgiLAorICAgICAgICAgICAgICAgICAgcHJvcCk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgICAgIH0KKworICAgICAgICBpZiAob3BzLmZsYWdzID09IFN1YnNjcmliZUZsYWdzOjpVTkRFRklORUQpIHsKKyAgICAgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gc3Vic2NyaWJlOiB1bmRlZmluZWQgZmxhZyBpbiBvcHRpb25zIHByb3ZpZGVkIik7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWlzU3Vic2NyaWJhYmxlKCpjb25maWcsIG9wcy5mbGFncykpIHsKKyAgICAgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gc3Vic2NyaWJlOiBwcm9wZXJ0eSAweCV4IGlzIG5vdCBzdWJzY3JpYmFibGUiLAorICAgICAgICAgICAgICAgICAgcHJvcCk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgICAgIH0KKworICAgICAgICBpbnQzMl90IGFyZWFzID0gaXNHbG9iYWxQcm9wKHByb3ApID8gMCA6IG9wcy52ZWhpY2xlQXJlYXM7CisgICAgICAgIGlmIChhcmVhcyAhPSAwICYmICgoYXJlYXMgJiBjb25maWctPnN1cHBvcnRlZEFyZWFzKSAhPSBhcmVhcykpIHsKKyAgICAgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gc3Vic2NyaWJlIHByb3BlcnR5IDB4JXguIFJlcXVlc3RlZCBhcmVhcyAweCV4IGFyZSAiCisgICAgICAgICAgICAgICAgICAib3V0IG9mIHN1cHBvcnRlZCByYW5nZSBvZiAweCV4IiwgcHJvcCwgb3BzLnZlaGljbGVBcmVhcywKKyAgICAgICAgICAgICAgICAgIGNvbmZpZy0+c3VwcG9ydGVkQXJlYXMpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgICAgICB9CisKKyAgICAgICAgb3BzLnZlaGljbGVBcmVhcyA9IGFyZWFzOworICAgICAgICBvcHMuc2FtcGxlUmF0ZSA9IGNoZWNrU2FtcGxlUmF0ZSgqY29uZmlnLCBvcHMuc2FtcGxlUmF0ZSk7CisgICAgfQorCisgICAgc3RkOjpsaXN0PFN1YnNjcmliZU9wdGlvbnM+IHVwZGF0ZWRPcHRpb25zOworICAgIGF1dG8gcmVzID0gbVN1YnNjcmlwdGlvbk1hbmFnZXIuYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oZ2V0Q2xpZW50SWQoY2FsbGJhY2spLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssIHZlcmlmaWVkT3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1cGRhdGVkT3B0aW9ucyk7CisgICAgaWYgKFN0YXR1c0NvZGU6Ok9LICE9IHJlcykgeworICAgICAgICBBTE9HVygiJXMgZmFpbGVkIHRvIHN1YnNjcmliZSwgZXJyb3IgY29kZTogJWQiLCBfX2Z1bmNfXywgcmVzKTsKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8gb3B0IDogdXBkYXRlZE9wdGlvbnMpIHsKKyAgICAgICAgbUhhbC0+c3Vic2NyaWJlKG9wdC5wcm9wSWQsIG9wdC52ZWhpY2xlQXJlYXMsIG9wdC5zYW1wbGVSYXRlKTsKKyAgICB9CisKKyAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7Cit9CisKK1JldHVybjxTdGF0dXNDb2RlPiBWZWhpY2xlSGFsTWFuYWdlcjo6dW5zdWJzY3JpYmUoY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByb3BJZCkgeworICAgIG1TdWJzY3JpcHRpb25NYW5hZ2VyLnVuc3Vic2NyaWJlKGdldENsaWVudElkKGNhbGxiYWNrKSwgcHJvcElkKTsKKyAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7Cit9CisKK1JldHVybjx2b2lkPiBWZWhpY2xlSGFsTWFuYWdlcjo6ZGVidWdEdW1wKElWZWhpY2xlOjpkZWJ1Z0R1bXBfY2IgX2hpZGxfY2IpIHsKKyAgICBfaGlkbF9jYigiIik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKwordm9pZCBWZWhpY2xlSGFsTWFuYWdlcjo6aW5pdCgpIHsKKyAgICBBTE9HSSgiVmVoaWNsZUhhbE1hbmFnZXI6OmluaXQiKTsKKworICAgIG1IaWRsVmVjT2ZWZWhpY2xlUHJvcFZhbHVlUG9vbC5yZXNpemUoa01heEhpZGxWZWNPZlZlaGljbFByb3BWYWx1ZVBvb2xTaXplKTsKKworCisgICAgbUJhdGNoaW5nQ29uc3VtZXIucnVuKCZtRXZlbnRRdWV1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga0hhbEV2ZW50QmF0Y2hpbmdUaW1lV2luZG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmJpbmQoJlZlaGljbGVIYWxNYW5hZ2VyOjpvbkJhdGNoSGFsRXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBfMSkpOworCisgICAgbUhhbC0+aW5pdCgmbVZhbHVlT2JqZWN0UG9vbCwKKyAgICAgICAgICAgICAgIHN0ZDo6YmluZCgmVmVoaWNsZUhhbE1hbmFnZXI6Om9uSGFsRXZlbnQsIHRoaXMsIF8xKSwKKyAgICAgICAgICAgICAgIHN0ZDo6YmluZCgmVmVoaWNsZUhhbE1hbmFnZXI6Om9uSGFsUHJvcGVydHlTZXRFcnJvciwgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBfMSwgXzIsIF8zKSk7CisKKyAgICAvLyBJbml0aWFsaXplIGluZGV4IHdpdGggdmVoaWNsZSBjb25maWd1cmF0aW9ucyByZWNlaXZlZCBmcm9tIFZlaGljbGVIYWwuCisgICAgYXV0byBzdXBwb3J0ZWRQcm9wQ29uZmlncyA9IG1IYWwtPmxpc3RQcm9wZXJ0aWVzKCk7CisgICAgbUNvbmZpZ0luZGV4LnJlc2V0KG5ldyBWZWhpY2xlUHJvcENvbmZpZ0luZGV4KHN1cHBvcnRlZFByb3BDb25maWdzKSk7CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBzdXBwb3J0ZWRQcm9wZXJ0aWVzKAorICAgICAgICBzdXBwb3J0ZWRQcm9wQ29uZmlncy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgY29uZmlnIDogc3VwcG9ydGVkUHJvcENvbmZpZ3MpIHsKKyAgICAgICAgc3VwcG9ydGVkUHJvcGVydGllcy5wdXNoX2JhY2soY29uZmlnLnByb3ApOworICAgIH0KK30KKworVmVoaWNsZUhhbE1hbmFnZXI6On5WZWhpY2xlSGFsTWFuYWdlcigpIHsKKyAgICBtQmF0Y2hpbmdDb25zdW1lci5yZXF1ZXN0U3RvcCgpOworICAgIG1FdmVudFF1ZXVlLmRlYWN0aXZhdGUoKTsKKyAgICAvLyBXZSBoYXZlIHRvIHdhaXQgdW50aWwgY29uc3VtZXIgdGhyZWFkIGlzIGZ1bGx5IHN0b3BwZWQgYmVjYXVzZSBpdCBtYXkKKyAgICAvLyBiZSBpbiBhIHN0YXRlIG9mIHJ1bm5pbmcgY2FsbGJhY2sgKG9uQmF0Y2hIYWxFdmVudCkuCisgICAgbUJhdGNoaW5nQ29uc3VtZXIud2FpdFN0b3BwZWQoKTsKKyAgICBBTE9HSSgiVmVoaWNsZUhhbE1hbmFnZXI6OmR0b3IiKTsKK30KKwordm9pZCBWZWhpY2xlSGFsTWFuYWdlcjo6b25IYWxFdmVudChWZWhpY2xlUHJvcFZhbHVlUHRyIHYpIHsKKyAgICBtRXZlbnRRdWV1ZS5wdXNoKHN0ZDo6bW92ZSh2KSk7Cit9CisKK3ZvaWQgVmVoaWNsZUhhbE1hbmFnZXI6Om9uSGFsUHJvcGVydHlTZXRFcnJvcihTdGF0dXNDb2RlIGVycm9yQ29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgYXJlYUlkKSB7CisgICAgY29uc3QgYXV0byYgY2xpZW50cyA9IG1TdWJzY3JpcHRpb25NYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKAorICAgICAgICAgICAgcHJvcGVydHksIDAsIFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQpOworCisgICAgZm9yIChhdXRvIGNsaWVudCA6IGNsaWVudHMpIHsKKyAgICAgICAgY2xpZW50LT5nZXRDYWxsYmFjaygpLT5vblByb3BlcnR5U2V0RXJyb3IoZXJyb3JDb2RlLCBwcm9wZXJ0eSwgYXJlYUlkKTsKKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZUhhbE1hbmFnZXI6Om9uQmF0Y2hIYWxFdmVudChjb25zdCBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlUHRyPiYgdmFsdWVzKSB7CisgICAgY29uc3QgYXV0byYgY2xpZW50VmFsdWVzID0gbVN1YnNjcmlwdGlvbk1hbmFnZXIuZGlzdHJpYnV0ZVZhbHVlc1RvQ2xpZW50cygKKyAgICAgICAgICAgIHZhbHVlcywgU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVCk7CisKKyAgICBmb3IgKGNvbnN0IEhhbENsaWVudFZhbHVlcyYgY3YgOiBjbGllbnRWYWx1ZXMpIHsKKyAgICAgICAgYXV0byB2ZWNTaXplID0gY3YudmFsdWVzLnNpemUoKTsKKyAgICAgICAgaGlkbF92ZWM8VmVoaWNsZVByb3BWYWx1ZT4gdmVjOworICAgICAgICBpZiAodmVjU2l6ZSA8IGtNYXhIaWRsVmVjT2ZWZWhpY2xQcm9wVmFsdWVQb29sU2l6ZSkgeworICAgICAgICAgICAgdmVjLnNldFRvRXh0ZXJuYWwoJm1IaWRsVmVjT2ZWZWhpY2xlUHJvcFZhbHVlUG9vbFswXSwgdmVjU2l6ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2ZWMucmVzaXplKHZlY1NpemUpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBmb3IgKFZlaGljbGVQcm9wVmFsdWUqIHBWYWx1ZSA6IGN2LnZhbHVlcykgeworICAgICAgICAgICAgc2hhbGxvd0NvcHkoJih2ZWMpW2krK10sICpwVmFsdWUpOworICAgICAgICB9CisgICAgICAgIGF1dG8gc3RhdHVzID0gY3YuY2xpZW50LT5nZXRDYWxsYmFjaygpLT5vblByb3BlcnR5RXZlbnQodmVjKTsKKyAgICAgICAgaWYgKCFzdGF0dXMuaXNPaygpKSB7CisgICAgICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIG5vdGlmeSBjbGllbnQgJXMsIGVycjogJXMiLAorICAgICAgICAgICAgICAgICAgdG9TdHJpbmcoY3YuY2xpZW50LT5nZXRDYWxsYmFjaygpKS5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgc3RhdHVzLmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Jvb2wgVmVoaWNsZUhhbE1hbmFnZXI6OmlzU2FtcGxlUmF0ZUZpeGVkKFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUgbW9kZSkgeworICAgIHJldHVybiAobW9kZSAmIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX1NFVCkKKyAgICAgICAgICAgfHwgKG1vZGUgJiBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UpOworfQorCitmbG9hdCBWZWhpY2xlSGFsTWFuYWdlcjo6Y2hlY2tTYW1wbGVSYXRlKGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnICZjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHNhbXBsZVJhdGUpIHsKKyAgICBpZiAoaXNTYW1wbGVSYXRlRml4ZWQoY29uZmlnLmNoYW5nZU1vZGUpKSB7CisgICAgICAgIGlmIChzdGQ6OmFicyhzYW1wbGVSYXRlKSA+IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCkpIHsKKyAgICAgICAgICAgIEFMT0dXKCJTYW1wbGUgcmF0ZSBpcyBncmVhdGVyIHRoYW4gemVybyBmb3Igb24gY2hhbmdlIHR5cGUuICIKKyAgICAgICAgICAgICAgICAgICAgICAiSWdub3JpbmcgaXQuIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDAuMDsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoc2FtcGxlUmF0ZSA+IGNvbmZpZy5tYXhTYW1wbGVSYXRlKSB7CisgICAgICAgICAgICBBTE9HVygiU2FtcGxlIHJhdGUgJWYgaXMgaGlnaGVyIHRoYW4gbWF4ICVmLiBTZXR0aW5nIHNhbXBsaW5nIHJhdGUgIgorICAgICAgICAgICAgICAgICAgICAgICJ0byBtYXguIiwgc2FtcGxlUmF0ZSwgY29uZmlnLm1heFNhbXBsZVJhdGUpOworICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5tYXhTYW1wbGVSYXRlOworICAgICAgICB9CisgICAgICAgIGlmIChzYW1wbGVSYXRlIDwgY29uZmlnLm1pblNhbXBsZVJhdGUpIHsKKyAgICAgICAgICAgIEFMT0dXKCJTYW1wbGUgcmF0ZSAlZiBpcyBsb3dlciB0aGFuIG1pbiAlZi4gU2V0dGluZyBzYW1wbGluZyByYXRlICIKKyAgICAgICAgICAgICAgICAgICAgICAidG8gbWluLiIsIHNhbXBsZVJhdGUsIGNvbmZpZy5taW5TYW1wbGVSYXRlKTsKKyAgICAgICAgICAgIHJldHVybiBjb25maWcubWluU2FtcGxlUmF0ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc2FtcGxlUmF0ZTsgIC8vIFByb3ZpZGVkIHNhbXBsZSByYXRlIHdhcyBnb29kLCBubyBjaGFuZ2VzLgorfQorCitib29sIFZlaGljbGVIYWxNYW5hZ2VyOjppc1N1YnNjcmliYWJsZShjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpIHsKKyAgICBib29sIGlzUmVhZGFibGUgPSBjb25maWcuYWNjZXNzICYgVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEOworCisgICAgaWYgKCFpc1JlYWRhYmxlICYmIChTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UICYgZmxhZ3MpKSB7CisgICAgICAgIEFMT0dXKCJDYW5ub3Qgc3Vic2NyaWJlLCBwcm9wZXJ0eSAweCV4IGlzIG5vdCByZWFkYWJsZSIsIGNvbmZpZy5wcm9wKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoY29uZmlnLmNoYW5nZU1vZGUgPT0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6U1RBVElDKSB7CisgICAgICAgIEFMT0dXKCJDYW5ub3Qgc3Vic2NyaWJlLCBwcm9wZXJ0eSAweCV4IGlzIHN0YXRpYyIsIGNvbmZpZy5wcm9wKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vVE9ETzogZXh0ZW5kIHRvIHN1cHBvcnQgZXZlbnQgbm90aWZpY2F0aW9uIGZvciBzZXQgZnJvbSBhbmRyb2lkCisgICAgaWYgKGNvbmZpZy5jaGFuZ2VNb2RlID09IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OlBPTEwpIHsKKyAgICAgICAgQUxPR1coIkNhbm5vdCBzdWJzY3JpYmUsIHByb3BlcnR5IDB4JXggaXMgcG9sbCBvbmx5IiwgY29uZmlnLnByb3ApOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitib29sIFZlaGljbGVIYWxNYW5hZ2VyOjpjaGVja1dyaXRlUGVybWlzc2lvbihjb25zdCBWZWhpY2xlUHJvcENvbmZpZyAmY29uZmlnKSBjb25zdCB7CisgICAgaWYgKCEoY29uZmlnLmFjY2VzcyAmIFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6V1JJVEUpKSB7CisgICAgICAgIEFMT0dXKCJQcm9wZXJ0eSAwJXggaGFzIG5vIHdyaXRlIGFjY2VzcyIsIGNvbmZpZy5wcm9wKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KKworYm9vbCBWZWhpY2xlSGFsTWFuYWdlcjo6Y2hlY2tSZWFkUGVybWlzc2lvbihjb25zdCBWZWhpY2xlUHJvcENvbmZpZyAmY29uZmlnKSBjb25zdCB7CisgICAgaWYgKCEoY29uZmlnLmFjY2VzcyAmIFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCkpIHsKKyAgICAgICAgQUxPR1coIlByb3BlcnR5IDAleCBoYXMgbm8gcmVhZCBhY2Nlc3MiLCBjb25maWcucHJvcCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZUhhbE1hbmFnZXI6OmhhbmRsZVByb3BlcnR5U2V0RXZlbnQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgdmFsdWUpIHsKKyAgICBhdXRvIGNsaWVudHMgPSBtU3Vic2NyaXB0aW9uTWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cygKKyAgICAgICAgICAgIHZhbHVlLnByb3AsIHZhbHVlLmFyZWFJZCwgU3Vic2NyaWJlRmxhZ3M6OlNFVF9DQUxMKTsKKyAgICBmb3IgKGF1dG8gY2xpZW50IDogY2xpZW50cykgeworICAgICAgICBjbGllbnQtPmdldENhbGxiYWNrKCktPm9uUHJvcGVydHlTZXQodmFsdWUpOworICAgIH0KK30KKworY29uc3QgVmVoaWNsZVByb3BDb25maWcqIFZlaGljbGVIYWxNYW5hZ2VyOjpnZXRQcm9wQ29uZmlnT3JOdWxsKAorICAgICAgICBpbnQzMl90IHByb3ApIGNvbnN0IHsKKyAgICByZXR1cm4gbUNvbmZpZ0luZGV4LT5oYXNDb25maWcocHJvcCkKKyAgICAgICAgICAgPyAmbUNvbmZpZ0luZGV4LT5nZXRDb25maWcocHJvcCkgOiBudWxscHRyOworfQorCit2b2lkIFZlaGljbGVIYWxNYW5hZ2VyOjpvbkFsbENsaWVudHNVbnN1YnNjcmliZWQoaW50MzJfdCBwcm9wZXJ0eUlkKSB7CisgICAgbUhhbC0+dW5zdWJzY3JpYmUocHJvcGVydHlJZCk7Cit9CisKK0NsaWVudElkIFZlaGljbGVIYWxNYW5hZ2VyOjpnZXRDbGllbnRJZChjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiYgY2FsbGJhY2spIHsKKyAgICAvL1RPRE8oYi8zMjE3MjkwNik6IHJld29yayB0aGlzIHRvIGdldCBzb21lIGtpbmQgb2YgdW5pcXVlIGlkIGZvciBjYWxsYmFjayBpbnRlcmZhY2Ugd2hlbiB0aGlzCisgICAgLy8gZmVhdHVyZSBpcyByZWFkeSBpbiBISURMLgorCisgICAgaWYgKGNhbGxiYWNrLT5pc1JlbW90ZSgpKSB7CisgICAgICAgIEJwSHdWZWhpY2xlQ2FsbGJhY2sqIGh3Q2FsbGJhY2sgPSBzdGF0aWNfY2FzdDxCcEh3VmVoaWNsZUNhbGxiYWNrKj4oY2FsbGJhY2suZ2V0KCkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2xpZW50SWQ+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGh3Q2FsbGJhY2stPm9uQXNCaW5kZXIoKSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDbGllbnRJZD4ocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oY2FsbGJhY2suZ2V0KCkpKTsKKyAgICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVPYmplY3RQb29sLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVPYmplY3RQb29sLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzEyNDVhCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZU9iamVjdFBvb2wuY3BwCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhdXRvbW90aXZlLnZlaGljbGVAMi4wLWltcGwiCisKKyNpbmNsdWRlICJWZWhpY2xlT2JqZWN0UG9vbC5oIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiVmVoaWNsZVV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluKAorICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsIHNpemVfdCB2ZWNTaXplKSB7CisgICAgcmV0dXJuIGlzRGlzcG9zYWJsZSh0eXBlLCB2ZWNTaXplKQorICAgICAgICAgICA/IG9idGFpbkRpc3Bvc2FibGUodHlwZSwgdmVjU2l6ZSkKKyAgICAgICAgICAgOiBvYnRhaW5SZWN5bGFibGUodHlwZSwgdmVjU2l6ZSk7Cit9CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluKAorICAgICAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBzcmMpIHsKKyAgICBpZiAoc3JjLnByb3AgPT0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTlZBTElEKSkgeworICAgICAgICBBTE9HRSgiVW5hYmxlIHRvIG9idGFpbiBhbiBvYmplY3QgZnJvbSBwb29sIGZvciB1bmtub3duIHByb3BlcnR5Iik7CisgICAgICAgIHJldHVybiBSZWN5Y2xhYmxlVHlwZSgpOworICAgIH0KKyAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUgPSBnZXRQcm9wVHlwZShzcmMucHJvcCk7CisgICAgc2l6ZV90IHZlY1NpemUgPSBnZXRWZWhpY2xlUmF3VmFsdWVWZWN0b3JTaXplKHNyYy52YWx1ZSwgdHlwZSk7OworICAgIGF1dG8gZGVzdCA9IG9idGFpbih0eXBlLCB2ZWNTaXplKTsKKworICAgIGRlc3QtPnByb3AgPSBzcmMucHJvcDsKKyAgICBkZXN0LT5hcmVhSWQgPSBzcmMuYXJlYUlkOworICAgIGRlc3QtPnRpbWVzdGFtcCA9IHNyYy50aW1lc3RhbXA7CisgICAgY29weVZlaGljbGVSYXdWYWx1ZSgmZGVzdC0+dmFsdWUsIHNyYy52YWx1ZSk7CisKKyAgICByZXR1cm4gZGVzdDsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5JbnQzMigKKyAgICAgICAgaW50MzJfdCB2YWx1ZSkgeworICAgIGF1dG8gdmFsID0gb2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyKTsKKyAgICB2YWwtPnZhbHVlLmludDMyVmFsdWVzWzBdID0gdmFsdWU7CisgICAgcmV0dXJuIHZhbDsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5JbnQ2NCgKKyAgICAgICAgaW50NjRfdCB2YWx1ZSkgeworICAgIGF1dG8gdmFsID0gb2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDY0KTsKKyAgICB2YWwtPnZhbHVlLmludDY0VmFsdWVzWzBdID0gdmFsdWU7CisgICAgcmV0dXJuIHZhbDsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5GbG9hdCgKKyAgICAgICAgZmxvYXQgdmFsdWUpICB7CisgICAgYXV0byB2YWwgPSBvYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVQpOworICAgIHZhbC0+dmFsdWUuZmxvYXRWYWx1ZXNbMF0gPSB2YWx1ZTsKKyAgICByZXR1cm4gdmFsOworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpblN0cmluZygKKyAgICAgICAgY29uc3QgY2hhciogY3N0cikgeworICAgIGF1dG8gdmFsID0gb2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OlNUUklORyk7CisgICAgdmFsLT52YWx1ZS5zdHJpbmdWYWx1ZSA9IGNzdHI7CisgICAgcmV0dXJuIHZhbDsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5Db21wbGV4KCkgeworICAgIHJldHVybiBvYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6Q09NUExFWCk7Cit9CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluUmVjeWxhYmxlKAorICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsIHNpemVfdCB2ZWNTaXplKSB7CisgICAgLy8gVmVoaWNsZVByb3BlcnR5VHlwZSBpcyBub3Qgb3ZlcmxhcHBpbmcgd2l0aCB2ZWN0b3JTaXplLgorICAgIGludDMyX3Qga2V5ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4odHlwZSkKKyAgICAgICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8aW50MzJfdD4odmVjU2l6ZSk7CisKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gZyhtTG9jayk7CisgICAgYXV0byBpdCA9IG1WYWx1ZVR5cGVQb29scy5maW5kKGtleSk7CisKKyAgICBpZiAoaXQgPT0gbVZhbHVlVHlwZVBvb2xzLmVuZCgpKSB7CisgICAgICAgIGF1dG8gbmV3UG9vbChzdGQ6Om1ha2VfdW5pcXVlPEludGVybmFsUG9vbD4odHlwZSwgdmVjU2l6ZSkpOworICAgICAgICBpdCA9IG1WYWx1ZVR5cGVQb29scy5lbXBsYWNlKGtleSwgc3RkOjptb3ZlKG5ld1Bvb2wpKS5maXJzdDsKKyAgICB9CisgICAgcmV0dXJuIGl0LT5zZWNvbmQtPm9idGFpbigpOworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpbkJvb2xlYW4oCisgICAgICAgIGJvb2wgdmFsdWUpICB7CisgICAgcmV0dXJuIG9idGFpbkludDMyKHZhbHVlKTsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5EaXNwb3NhYmxlKAorICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHZhbHVlVHlwZSwgc2l6ZV90IHZlY3RvclNpemUpIGNvbnN0IHsKKyAgICByZXR1cm4gUmVjeWNsYWJsZVR5cGUgeworICAgICAgICBjcmVhdGVWZWhpY2xlUHJvcFZhbHVlKHZhbHVlVHlwZSwgdmVjdG9yU2l6ZSkucmVsZWFzZSgpLAorICAgICAgICBtRGlzcG9zYWJsZURlbGV0ZXIKKyAgICB9OworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpbigKKyAgICAgICAgVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlKSB7CisgICAgcmV0dXJuIG9idGFpbih0eXBlLCAxKTsKK30KKworCit2b2lkIFZlaGljbGVQcm9wVmFsdWVQb29sOjpJbnRlcm5hbFBvb2w6OnJlY3ljbGUoVmVoaWNsZVByb3BWYWx1ZSogbykgeworICAgIGlmIChvID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIkF0dGVtcHQgdG8gcmVjeWNsZSBudWxscHRyIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIWNoZWNrKCZvLT52YWx1ZSkpIHsKKyAgICAgICAgQUxPR0UoIkRpc2NhcmRpbmcgdmFsdWUgZm9yIHByb3AgMHgleCBiZWNhdXNlIGl0IGNvbnRhaW5zICIKKyAgICAgICAgICAgICAgICAgICJkYXRhIHRoYXQgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCB0aGlzIHBvb2wuICIKKyAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCB0eXBlOiAlZCwgdmVjdG9yIHNpemU6ICV6dSIsCisgICAgICAgICAgICAgIG8tPnByb3AsIG1Qcm9wVHlwZSwgbVZlY3RvclNpemUpOworICAgICAgICBkZWxldGUgbzsKKyAgICB9IGVsc2UgeworICAgICAgICBPYmplY3RQb29sPFZlaGljbGVQcm9wVmFsdWU+OjpyZWN5Y2xlKG8pOworICAgIH0KK30KKworYm9vbCBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6SW50ZXJuYWxQb29sOjpjaGVjayhWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZSogdikgeworICAgIHJldHVybiBjaGVjaygmdi0+aW50MzJWYWx1ZXMsCisgICAgICAgICAgICAgICAgIChWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMiA9PSBtUHJvcFR5cGUKKyAgICAgICAgICAgICAgICAgIHx8IFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyX1ZFQyA9PSBtUHJvcFR5cGUKKyAgICAgICAgICAgICAgICAgIHx8IFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJPT0xFQU4gPT0gbVByb3BUeXBlKSkKKyAgICAgICAgICAgJiYgY2hlY2soJnYtPmZsb2F0VmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAoVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVQgPT0gbVByb3BUeXBlCisgICAgICAgICAgICAgICAgICAgICB8fCBWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVF9WRUMgPT0gbVByb3BUeXBlKSkKKyAgICAgICAgICAgJiYgY2hlY2soJnYtPmludDY0VmFsdWVzLAorICAgICAgICAgICAgICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQ2NCA9PSBtUHJvcFR5cGUpCisgICAgICAgICAgICYmIGNoZWNrKCZ2LT5ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgVmVoaWNsZVByb3BlcnR5VHlwZTo6QllURVMgPT0gbVByb3BUeXBlKQorICAgICAgICAgICAmJiB2LT5zdHJpbmdWYWx1ZS5zaXplKCkgPT0gMDsKK30KKworVmVoaWNsZVByb3BWYWx1ZSogVmVoaWNsZVByb3BWYWx1ZVBvb2w6OkludGVybmFsUG9vbDo6Y3JlYXRlT2JqZWN0KCkgeworICAgIHJldHVybiBjcmVhdGVWZWhpY2xlUHJvcFZhbHVlKG1Qcm9wVHlwZSwgbVZlY3RvclNpemUpLnJlbGVhc2UoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZVByb3BlcnR5U3RvcmUuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZVByb3BlcnR5U3RvcmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjM2ViZmMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlUHJvcGVydHlTdG9yZS5jcHAKQEAgLTAsMCArMSwxNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJWZWhpY2xlUHJvcGVydHlTdG9yZSIKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxjb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVV0aWxzLmg+CisjaW5jbHVkZSAiVmVoaWNsZVByb3BlcnR5U3RvcmUuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworYm9vbCBWZWhpY2xlUHJvcGVydHlTdG9yZTo6UmVjb3JkSWQ6Om9wZXJhdG9yPT0oY29uc3QgVmVoaWNsZVByb3BlcnR5U3RvcmU6OlJlY29yZElkJiBvdGhlcikgY29uc3QgeworICAgIHJldHVybiBwcm9wID09IG90aGVyLnByb3AgJiYgYXJlYSA9PSBvdGhlci5hcmVhICYmIHRva2VuID09IG90aGVyLnRva2VuOworfQorCitib29sIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpSZWNvcmRJZDo6b3BlcmF0b3I8KGNvbnN0IFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpSZWNvcmRJZCYgb3RoZXIpIGNvbnN0ICB7CisgICAgcmV0dXJuIHByb3AgPCBvdGhlci5wcm9wCisgICAgICAgICAgIHx8IChwcm9wID09IG90aGVyLnByb3AgJiYgYXJlYSA8IG90aGVyLmFyZWEpCisgICAgICAgICAgIHx8IChwcm9wID09IG90aGVyLnByb3AgJiYgYXJlYSA9PSBvdGhlci5hcmVhICYmIHRva2VuIDwgb3RoZXIudG9rZW4pOworfQorCit2b2lkIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpyZWdpc3RlclByb3BlcnR5KGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpUb2tlbkZ1bmN0aW9uIHRva2VuRnVuYykgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIG1Db25maWdzLmluc2VydCh7IGNvbmZpZy5wcm9wLCBSZWNvcmRDb25maWcgeyBjb25maWcsIHRva2VuRnVuYyB9IH0pOworfQorCitib29sIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjp3cml0ZVZhbHVlKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIGlmICghbUNvbmZpZ3MuY291bnQocHJvcFZhbHVlLnByb3ApKSByZXR1cm4gZmFsc2U7CisKKyAgICBSZWNvcmRJZCByZWNJZCA9IGdldFJlY29yZElkTG9ja2VkKHByb3BWYWx1ZSk7CisgICAgVmVoaWNsZVByb3BWYWx1ZSogdmFsdWVUb1VwZGF0ZSA9IGNvbnN0X2Nhc3Q8VmVoaWNsZVByb3BWYWx1ZSo+KGdldFZhbHVlT3JOdWxsTG9ja2VkKHJlY0lkKSk7CisgICAgaWYgKHZhbHVlVG9VcGRhdGUgPT0gbnVsbHB0cikgeworICAgICAgICBtUHJvcGVydHlWYWx1ZXMuaW5zZXJ0KHsgcmVjSWQsIHByb3BWYWx1ZSB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YWx1ZVRvVXBkYXRlLT50aW1lc3RhbXAgPSBwcm9wVmFsdWUudGltZXN0YW1wOworICAgICAgICB2YWx1ZVRvVXBkYXRlLT52YWx1ZSA9IHByb3BWYWx1ZS52YWx1ZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgVmVoaWNsZVByb3BlcnR5U3RvcmU6OnJlbW92ZVZhbHVlKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIFJlY29yZElkIHJlY0lkID0gZ2V0UmVjb3JkSWRMb2NrZWQocHJvcFZhbHVlKTsKKyAgICBhdXRvIGl0ID0gbVByb3BlcnR5VmFsdWVzLmZpbmQocmVjSWQpOworICAgIGlmIChpdCAhPSBtUHJvcGVydHlWYWx1ZXMuZW5kKCkpIHsKKyAgICAgICAgbVByb3BlcnR5VmFsdWVzLmVyYXNlKGl0KTsKKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZVByb3BlcnR5U3RvcmU6OnJlbW92ZVZhbHVlc0ZvclByb3BlcnR5KGludDMyX3QgcHJvcElkKSB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgYXV0byByYW5nZSA9IGZpbmRSYW5nZUxvY2tlZChwcm9wSWQpOworICAgIG1Qcm9wZXJ0eVZhbHVlcy5lcmFzZShyYW5nZS5maXJzdCwgcmFuZ2Uuc2Vjb25kKTsKK30KKworc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gVmVoaWNsZVByb3BlcnR5U3RvcmU6OnJlYWRBbGxWYWx1ZXMoKSBjb25zdCB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gYWxsVmFsdWVzOworICAgIGFsbFZhbHVlcy5yZXNlcnZlKG1Qcm9wZXJ0eVZhbHVlcy5zaXplKCkpOworICAgIGZvciAoYXV0byYmIGl0IDogbVByb3BlcnR5VmFsdWVzKSB7CisgICAgICAgIGFsbFZhbHVlcy5wdXNoX2JhY2soaXQuc2Vjb25kKTsKKyAgICB9CisgICAgcmV0dXJuIGFsbFZhbHVlczsKK30KKworc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gVmVoaWNsZVByb3BlcnR5U3RvcmU6OnJlYWRWYWx1ZXNGb3JQcm9wZXJ0eShpbnQzMl90IHByb3BJZCkgY29uc3QgeworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWU+IHZhbHVlczsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBhdXRvIHJhbmdlID0gZmluZFJhbmdlTG9ja2VkKHByb3BJZCk7CisgICAgZm9yIChhdXRvIGl0ID0gcmFuZ2UuZmlyc3Q7IGl0ICE9IHJhbmdlLnNlY29uZDsgKytpdCkgeworICAgICAgICB2YWx1ZXMucHVzaF9iYWNrKGl0LT5zZWNvbmQpOworICAgIH0KKworICAgIHJldHVybiB2YWx1ZXM7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPiBWZWhpY2xlUHJvcGVydHlTdG9yZTo6cmVhZFZhbHVlT3JOdWxsKAorICAgICAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0KSBjb25zdCB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgUmVjb3JkSWQgcmVjSWQgPSBnZXRSZWNvcmRJZExvY2tlZChyZXF1ZXN0KTsKKyAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlKiBpbnRlcm5hbFZhbHVlID0gZ2V0VmFsdWVPck51bGxMb2NrZWQocmVjSWQpOworICAgIHJldHVybiBpbnRlcm5hbFZhbHVlID8gc3RkOjptYWtlX3VuaXF1ZTxWZWhpY2xlUHJvcFZhbHVlPigqaW50ZXJuYWxWYWx1ZSkgOiBudWxscHRyOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4gVmVoaWNsZVByb3BlcnR5U3RvcmU6OnJlYWRWYWx1ZU9yTnVsbCgKKyAgICAgICAgaW50MzJfdCBwcm9wLCBpbnQzMl90IGFyZWEsIGludDY0X3QgdG9rZW4pIGNvbnN0IHsKKyAgICBSZWNvcmRJZCByZWNJZCA9IHtwcm9wLCBpc0dsb2JhbFByb3AocHJvcCkgPyAwIDogYXJlYSwgdG9rZW4gfTsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlKiBpbnRlcm5hbFZhbHVlID0gZ2V0VmFsdWVPck51bGxMb2NrZWQocmVjSWQpOworICAgIHJldHVybiBpbnRlcm5hbFZhbHVlID8gc3RkOjptYWtlX3VuaXF1ZTxWZWhpY2xlUHJvcFZhbHVlPigqaW50ZXJuYWxWYWx1ZSkgOiBudWxscHRyOworfQorCisKK3N0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBWZWhpY2xlUHJvcGVydHlTdG9yZTo6Z2V0QWxsQ29uZmlncygpIGNvbnN0IHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gY29uZmlnczsKKyAgICBjb25maWdzLnJlc2VydmUobUNvbmZpZ3Muc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mJiByZWNvcmRDb25maWdJdDogbUNvbmZpZ3MpIHsKKyAgICAgICAgY29uZmlncy5wdXNoX2JhY2socmVjb3JkQ29uZmlnSXQuc2Vjb25kLnByb3BDb25maWcpOworICAgIH0KKyAgICByZXR1cm4gY29uZmlnczsKK30KKworY29uc3QgVmVoaWNsZVByb3BDb25maWcqIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpnZXRDb25maWdPck51bGwoaW50MzJfdCBwcm9wSWQpIGNvbnN0IHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBhdXRvIHJlY29yZENvbmZpZ0l0ID0gbUNvbmZpZ3MuZmluZChwcm9wSWQpOworICAgIHJldHVybiByZWNvcmRDb25maWdJdCAhPSBtQ29uZmlncy5lbmQoKSA/ICZyZWNvcmRDb25maWdJdC0+c2Vjb25kLnByb3BDb25maWcgOiBudWxscHRyOworfQorCitjb25zdCBWZWhpY2xlUHJvcENvbmZpZyogVmVoaWNsZVByb3BlcnR5U3RvcmU6OmdldENvbmZpZ09yRGllKGludDMyX3QgcHJvcElkKSBjb25zdCB7CisgICAgYXV0byBjZmcgPSBnZXRDb25maWdPck51bGwocHJvcElkKTsKKyAgICBpZiAoIWNmZykgeworICAgICAgICBBTE9HVygiJXM6IGNvbmZpZyBub3QgZm91bmQgZm9yIHByb3BlcnR5OiAweCV4IiwgX19mdW5jX18sIHByb3BJZCk7CisgICAgICAgIGFib3J0KCk7CisgICAgfQorICAgIHJldHVybiBjZmc7Cit9CisKK1ZlaGljbGVQcm9wZXJ0eVN0b3JlOjpSZWNvcmRJZCBWZWhpY2xlUHJvcGVydHlTdG9yZTo6Z2V0UmVjb3JkSWRMb2NrZWQoCisgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHZhbHVlUHJvdG90eXBlKSBjb25zdCB7CisgICAgUmVjb3JkSWQgcmVjSWQgPSB7CisgICAgICAgIC5wcm9wID0gdmFsdWVQcm90b3R5cGUucHJvcCwKKyAgICAgICAgLmFyZWEgPSBpc0dsb2JhbFByb3AodmFsdWVQcm90b3R5cGUucHJvcCkgPyAwIDogdmFsdWVQcm90b3R5cGUuYXJlYUlkLAorICAgICAgICAudG9rZW4gPSAwCisgICAgfTsKKworICAgIGF1dG8gaXQgPSBtQ29uZmlncy5maW5kKHJlY0lkLnByb3ApOworICAgIGlmIChpdCA9PSBtQ29uZmlncy5lbmQoKSkgcmV0dXJuIHt9OworCisgICAgaWYgKGl0LT5zZWNvbmQudG9rZW5GdW5jdGlvbiAhPSBudWxscHRyKSB7CisgICAgICAgIHJlY0lkLnRva2VuID0gaXQtPnNlY29uZC50b2tlbkZ1bmN0aW9uKHZhbHVlUHJvdG90eXBlKTsKKyAgICB9CisgICAgcmV0dXJuIHJlY0lkOworfQorCitjb25zdCBWZWhpY2xlUHJvcFZhbHVlKiBWZWhpY2xlUHJvcGVydHlTdG9yZTo6Z2V0VmFsdWVPck51bGxMb2NrZWQoCisgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpSZWNvcmRJZCYgcmVjSWQpIGNvbnN0ICB7CisgICAgYXV0byBpdCA9IG1Qcm9wZXJ0eVZhbHVlcy5maW5kKHJlY0lkKTsKKyAgICByZXR1cm4gaXQgPT0gbVByb3BlcnR5VmFsdWVzLmVuZCgpID8gbnVsbHB0ciA6ICZpdC0+c2Vjb25kOworfQorCitWZWhpY2xlUHJvcGVydHlTdG9yZTo6UHJvcGVydHlNYXBSYW5nZSBWZWhpY2xlUHJvcGVydHlTdG9yZTo6ZmluZFJhbmdlTG9ja2VkKGludDMyX3QgcHJvcElkKSBjb25zdCB7CisgICAgLy8gQmFzZWQgb24gdGhlIGZhY3QgdGhhdCBtUHJvcGVydHlWYWx1ZXMgaXMgYSBzb3J0ZWQgbWFwIGJ5IFJlY29yZElkLgorICAgIGF1dG8gYmVnaW5JdCA9IG1Qcm9wZXJ0eVZhbHVlcy5sb3dlcl9ib3VuZCggUmVjb3JkSWQgeyBwcm9wSWQsIElOVDMyX01JTiwgMCB9KTsKKyAgICBhdXRvIGVuZEl0ID0gbVByb3BlcnR5VmFsdWVzLmxvd2VyX2JvdW5kKCBSZWNvcmRJZCB7IHByb3BJZCArIDEsIElOVDMyX01JTiwgMCB9KTsKKworICAgIHJldHVybiAgUHJvcGVydHlNYXBSYW5nZSB7IGJlZ2luSXQsIGVuZEl0IH07Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVVdGlscy5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlVXRpbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxMWNkZWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlVXRpbHMuY3BwCkBAIC0wLDAgKzEsMTMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhdXRvbW90aXZlLnZlaGljbGVAMi4wLWltcGwiCisKKyNpbmNsdWRlICJWZWhpY2xlVXRpbHMuaCIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworLy9uYW1lc3BhY2UgdXRpbHMgeworCitzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4gY3JlYXRlVmVoaWNsZVByb3BWYWx1ZSgKKyAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsIHNpemVfdCB2ZWNTaXplKSB7CisgICAgYXV0byB2YWwgPSBzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4obmV3IFZlaGljbGVQcm9wVmFsdWUpOworICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyOiAgICAgIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyX1ZFQzogIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJPT0xFQU46CisgICAgICAgICAgICB2YWwtPnZhbHVlLmludDMyVmFsdWVzLnJlc2l6ZSh2ZWNTaXplKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUOiAgICAgIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUX1ZFQzoKKyAgICAgICAgICAgIHZhbC0+dmFsdWUuZmxvYXRWYWx1ZXMucmVzaXplKHZlY1NpemUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UNjQ6CisgICAgICAgICAgICB2YWwtPnZhbHVlLmludDY0VmFsdWVzLnJlc2l6ZSh2ZWNTaXplKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJZVEVTOgorICAgICAgICAgICAgdmFsLT52YWx1ZS5ieXRlcy5yZXNpemUodmVjU2l6ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpTVFJJTkc6CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6Q09NUExFWDoKKyAgICAgICAgICAgIGJyZWFrOyAvLyBWYWxpZCwgYnV0IG5vdGhpbmcgdG8gZG8uCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiY3JlYXRlVmVoaWNsZVByb3BWYWx1ZTogdW5rbm93biB0eXBlOiAlZCIsIHR5cGUpOworICAgICAgICAgICAgdmFsLnJlc2V0KG51bGxwdHIpOworICAgIH0KKyAgICByZXR1cm4gdmFsOworfQorCitzaXplX3QgZ2V0VmVoaWNsZVJhd1ZhbHVlVmVjdG9yU2l6ZSgKKyAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZSYgdmFsdWUsIFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSkgeworICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyOiAgICAgIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyX1ZFQzogIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJPT0xFQU46CisgICAgICAgICAgICByZXR1cm4gdmFsdWUuaW50MzJWYWx1ZXMuc2l6ZSgpOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUOiAgICAgIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUX1ZFQzoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5mbG9hdFZhbHVlcy5zaXplKCk7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UNjQ6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUuaW50NjRWYWx1ZXMuc2l6ZSgpOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJZVEVTOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmJ5dGVzLnNpemUoKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSB2b2lkIGNvcHlIaWRsVmVjKGhpZGxfdmVjIDxUPiogZGVzdCwgY29uc3QgaGlkbF92ZWMgPFQ+JiBzcmMpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0ZDo6bWluKGRlc3QtPnNpemUoKSwgc3JjLnNpemUoKSk7IGkrKykgeworICAgICAgICAoKmRlc3QpW2ldID0gc3JjW2ldOworICAgIH0KK30KKwordm9pZCBjb3B5VmVoaWNsZVJhd1ZhbHVlKFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlKiBkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlJiBzcmMpIHsKKyAgICBkZXN0LT5pbnQzMlZhbHVlcyA9IHNyYy5pbnQzMlZhbHVlczsKKyAgICBkZXN0LT5mbG9hdFZhbHVlcyA9IHNyYy5mbG9hdFZhbHVlczsKKyAgICBkZXN0LT5pbnQ2NFZhbHVlcyA9IHNyYy5pbnQ2NFZhbHVlczsKKyAgICBkZXN0LT5ieXRlcyA9IHNyYy5ieXRlczsKKyAgICBkZXN0LT5zdHJpbmdWYWx1ZSA9IHNyYy5zdHJpbmdWYWx1ZTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgc2hhbGxvd0NvcHlIaWRsVmVjKGhpZGxfdmVjIDxUPiogZGVzdCwgY29uc3QgaGlkbF92ZWMgPFQ+JiBzcmMpIHsKKyAgICBpZiAoc3JjLnNpemUoKSA+IDApIHsKKyAgICAgICAgZGVzdC0+c2V0VG9FeHRlcm5hbChjb25zdF9jYXN0PFQqPigmc3JjWzBdKSwgc3JjLnNpemUoKSk7CisgICAgfSBlbHNlIGlmIChkZXN0LT5zaXplKCkgPiAwKSB7CisgICAgICAgIGRlc3QtPnJlc2l6ZSgwKTsKKyAgICB9Cit9CisKK3ZvaWQgc2hhbGxvd0NvcHlIaWRsU3RyKGhpZGxfc3RyaW5nKiBkZXN0LCBjb25zdCBoaWRsX3N0cmluZyYgc3JjKSB7CisgICAgaWYgKCFzcmMuZW1wdHkoKSkgeworICAgICAgICBkZXN0LT5zZXRUb0V4dGVybmFsKHNyYy5jX3N0cigpLCBzcmMuc2l6ZSgpKTsKKyAgICB9IGVsc2UgaWYgKGRlc3QtPnNpemUoKSA+IDApIHsKKyAgICAgICAgZGVzdC0+c2V0VG9FeHRlcm5hbCgwLCAwKTsKKyAgICB9Cit9CisKK3ZvaWQgc2hhbGxvd0NvcHkoVmVoaWNsZVByb3BWYWx1ZSogZGVzdCwgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgc3JjKSB7CisgICAgZGVzdC0+cHJvcCA9IHNyYy5wcm9wOworICAgIGRlc3QtPmFyZWFJZCA9IHNyYy5hcmVhSWQ7CisgICAgZGVzdC0+dGltZXN0YW1wID0gc3JjLnRpbWVzdGFtcDsKKyAgICBzaGFsbG93Q29weUhpZGxWZWMoJmRlc3QtPnZhbHVlLmludDMyVmFsdWVzLCBzcmMudmFsdWUuaW50MzJWYWx1ZXMpOworICAgIHNoYWxsb3dDb3B5SGlkbFZlYygmZGVzdC0+dmFsdWUuaW50NjRWYWx1ZXMsIHNyYy52YWx1ZS5pbnQ2NFZhbHVlcyk7CisgICAgc2hhbGxvd0NvcHlIaWRsVmVjKCZkZXN0LT52YWx1ZS5mbG9hdFZhbHVlcywgc3JjLnZhbHVlLmZsb2F0VmFsdWVzKTsKKyAgICBzaGFsbG93Q29weUhpZGxWZWMoJmRlc3QtPnZhbHVlLmJ5dGVzLCBzcmMudmFsdWUuYnl0ZXMpOworICAgIHNoYWxsb3dDb3B5SGlkbFN0cigmZGVzdC0+dmFsdWUuc3RyaW5nVmFsdWUsIHNyYy52YWx1ZS5zdHJpbmdWYWx1ZSk7Cit9CisKKworLy99ICAvLyBuYW1lc3BhY2UgdXRpbHMKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0NvbW1CYXNlLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvQ29tbUJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODMyYWQzCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0NvbW1CYXNlLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0NvbW1CYXNlX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Db21tQmFzZV9IXworCisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCisvKioKKyAqIFRoaXMgaXMgdGhlIGNvbW11bmljYXRpb25zIGJhc2UgY2xhc3MuICBJdCBkZWZpbmVzIHRoZSBpbnRlcmZhY2UgdXNlZCBpbiBEZWZhdWx0VmVoaWNsZUhhbCB0bworICogc2VuZCBhbmQgcmVjZWl2ZSBkYXRhIHRvIGFuZCBmcm9tIHRoZSBlbXVsYXRvci4KKyAqLworY2xhc3MgQ29tbUJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgfkNvbW1CYXNlKCkgPSBkZWZhdWx0OworCisgICAgLyoqCisgICAgICogQ2xvc2VzIGEgY29ubmVjdGlvbiBpZiBpdCBpcyBvcGVuLgorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkge30KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBjb25uZWN0aW9uIHRvIHRoZSBvdGhlciBzaWRlLgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgUmV0dXJucyBmZCBvciBzb2NrZXQgbnVtYmVyIGlmIGNvbm5lY3Rpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKiAgICAgICAgICAgICAgT3RoZXJ3aXNlLCByZXR1cm5zIC0xIGlmIG5vIGNvbm5lY3Rpb24gaXMgYXZhaWxibGUuCisgICAgICovCisgICAgdmlydHVhbCBpbnQgY29ubmVjdCgpIHsgcmV0dXJuIDA7IH0KKworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBjb21tdW5pY2F0aW9ucyBjaGFubmVsLgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgUmV0dXJucyAwIGlmIGNoYW5uZWwgaXMgb3BlbmVkLCBlbHNlIC1lcnJubyBpZiBmYWlsZWQuCisgICAgICovCisgICAgdmlydHVhbCBpbnQgb3BlbigpID0gMDsKKworICAgIC8qKgorICAgICAqIEJsb2NraW5nIGNhbGwgdG8gcmVhZCBkYXRhIGZyb20gdGhlIGNvbm5lY3Rpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFNlcmlhbGl6ZWQgcHJvdG9idWYgZGF0YSByZWNlaXZlZCBmcm9tIGVtdWxhdG9yLiAgVGhpcyB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgIGFuIGVtcHR5IHZlY3RvciBpZiB0aGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkIG9yIHNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuCisgICAgICovCisgICAgdmlydHVhbCBzdGQ6OnZlY3Rvcjx1aW50OF90PiByZWFkKCkgPSAwOworCisgICAgLyoqCisgICAgICogVHJhbnNtaXRzIGEgc3RyaW5nIG9mIGRhdGEgdG8gdGhlIGVtdWxhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGEgU2VyaWFsaXplZCBwcm90b2J1ZiBkYXRhIHRvIHRyYW5zbWl0LgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgTnVtYmVyIG9mIGJ5dGVzIHRyYW5zbWl0dGVkLCBvciAtMSBpZiBmYWlsZWQuCisgICAgICovCisgICAgdmlydHVhbCBpbnQgd3JpdGUoY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIGRhdGEpID0gMDsKK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0NvbW1CYXNlX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRGVmYXVsdENvbmZpZy5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0RlZmF1bHRDb25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjYzZTM2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0RlZmF1bHRDb25maWcuaApAQCAtMCwwICsxLDI5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0RlZmF1bHRDb25maWdfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0RlZmF1bHRDb25maWdfSF8KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oPgorI2luY2x1ZGUgPHZoYWxfdjJfMC9WZWhpY2xlVXRpbHMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCisvKgorICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIGZvciB0ZXN0IHB1cnBvc2UgdG8gZ2VuZXJhdGUgZmFrZSBldmVudHMuCisgKgorICogSXQgaGFzIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgorICoKKyAqIGludDMyVmFsdWVzWzBdIC0gY29tbWFuZCAoMSAtIHN0YXJ0IGZha2UgZGF0YSBnZW5lcmF0aW9uLCAwIC0gc3RvcCkKKyAqIGludDMyVmFsdWVzWzFdIC0gVmVoaWNsZVByb3BlcnR5IHRvIHdoaWNoIGNvbW1hbmQgYXBwbGllcworICoKKyAqIEZvciBzdGFydCBjb21tYW5kLCBhZGRpdGlvbmFsIGRhdGEgc2hvdWxkIGJlIHByb3ZpZGVkOgorICogICBpbnQ2NFZhbHVlc1swXSAtIHBlcmlvZGljIGludGVydmFsIGluIG5hbm9zZWNvbmRzCisgKiAgIGZsb2F0VmFsdWVzWzBdIC0gaW5pdGlhbCB2YWx1ZQorICogICBmbG9hdFZhbHVlc1sxXSAtIGRpc3BlcnNpb24gZGVmaW5lcyBtaW4gYW5kIG1heCByYW5nZSByZWxhdGl2ZSB0byBpbml0aWFsIHZhbHVlCisgKiAgIGZsb2F0VmFsdWVzWzJdIC0gaW5jcmVtZW50LCB3aXRoIGV2ZXJ5IHRpbWVyIHRpY2sgdGhlIHZhbHVlIHdpbGwgYmUgaW5jcmVtZW50ZWQgYnkgdGhpcyBhbW91bnQKKyAqLworY29uc3QgaW50MzJfdCBrR2VuZXJhdGVGYWtlRGF0YUNvbnRyb2xsaW5nUHJvcGVydHkgPSAweDA2NjYKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDo6VkVORE9SCisgICAgICAgIHwgVmVoaWNsZUFyZWE6OkdMT0JBTAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6OkNPTVBMRVg7CisKK2NvbnN0IGludDMyX3Qga0h2YWNQb3dlclByb3BlcnRpZXNbXSA9IHsKKyAgICB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKSwKKyAgICB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX0RJUkVDVElPTiksCit9OworCitzdHJ1Y3QgQ29uZmlnRGVjbGFyYXRpb24geworICAgIFZlaGljbGVQcm9wQ29uZmlnIGNvbmZpZzsKKworICAgIC8qIFRoaXMgdmFsdWUgd2lsbCBiZSB1c2VkIGFzIGFuIGluaXRpYWwgdmFsdWUgZm9yIHRoZSBwcm9wZXJ0eS4gSWYgdGhpcyBmaWVsZCBpcyBzcGVjaWZpZWQgZm9yCisgICAgICogcHJvcGVydHkgdGhhdCBzdXBwb3J0cyBtdWx0aXBsZSBhcmVhcyB0aGVuIGl0IHdpbGwgYmUgdXNlZCBmb3IgYWxsIGFyZWFzIHVubGVzcyBwYXJ0aWN1bGFyCisgICAgICogYXJlYSBpcyBvdmVycmlkZGVuIGluIGluaXRpYWxBcmVhVmFsdWUgZmllbGQuICovCisgICAgVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWUgaW5pdGlhbFZhbHVlOworICAgIC8qIFVzZSBpbml0aWFsQXJlYVZhbHVlcyBpZiBpdCBpcyBuZWNlc3NhcnkgdG8gc3BlY2lmeSBkaWZmZXJlbnQgdmFsdWVzIHBlciBlYWNoIGFyZWEuICovCisgICAgc3RkOjptYXA8aW50MzJfdCwgVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWU+IGluaXRpYWxBcmVhVmFsdWVzOworfTsKKworY29uc3QgQ29uZmlnRGVjbGFyYXRpb24ga1ZlaGljbGVQcm9wZXJ0aWVzW117CisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX01BS0UpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpTVEFUSUMsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5zdHJpbmdWYWx1ZSA9ICJUb3kgVmVoaWNsZSJ9fSwKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OlBFUkZfVkVISUNMRV9TUEVFRCksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgICAgICAubWluU2FtcGxlUmF0ZSA9IDEuMGYsCisgICAgICAgICAgICAgLm1heFNhbXBsZVJhdGUgPSAxMDAwLjBmLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuZmxvYXRWYWx1ZXMgPSB7MC4wZn19fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6UEVSRl9PRE9NRVRFUiksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmZsb2F0VmFsdWVzID0gezAuMGZ9fX0sCisKKyAgICB7CisgICAgICAgIC5jb25maWcgPQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpFTkdJTkVfUlBNKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6Q09OVElOVU9VUywKKyAgICAgICAgICAgICAgICAubWluU2FtcGxlUmF0ZSA9IDEuMGYsCisgICAgICAgICAgICAgICAgLm1heFNhbXBsZVJhdGUgPSAxMDAwLjBmLAorICAgICAgICAgICAgfSwKKyAgICAgICAgLmluaXRpYWxWYWx1ZSA9IHsuZmxvYXRWYWx1ZXMgPSB7MC4wZn19LAorICAgIH0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkNVUlJFTlRfR0VBUiksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0ge3RvSW50KFZlaGljbGVHZWFyOjpHRUFSX1BBUkspfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpQQVJLSU5HX0JSQUtFX09OKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MX19fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RlVFTF9MRVZFTF9MT1cpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHswfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX1BPV0VSX09OKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzEpLAorICAgICAgICAgICAgIC8vIFRPRE8oYnJ5YW5leWxlcik6IElkZWFsbHksIHRoaXMgaXMgZ2VuZXJhdGVkIGR5bmFtaWNhbGx5IGZyb20KKyAgICAgICAgICAgICAvLyBrSHZhY1Bvd2VyUHJvcGVydGllcy4KKyAgICAgICAgICAgICAuY29uZmlnU3RyaW5nID0gIjB4MTI0MDA1MDAsMHgxMjQwMDUwMSIgIC8vIEhWQUNfRkFOX1NQRUVELEhWQUNfRkFOX0RJUkVDVElPTgorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MX19fSwKKworICAgIHsKKyAgICAgICAgLmNvbmZpZyA9IHsucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19ERUZST1NURVIpLAorICAgICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0KKyAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUFyZWFXaW5kb3c6OkZST05UX1dJTkRTSElFTEQgfCBWZWhpY2xlQXJlYVdpbmRvdzo6UkVBUl9XSU5EU0hJRUxEfSwKKyAgICAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MH19ICAvLyBXaWxsIGJlIHVzZWQgZm9yIGFsbCBhcmVhcy4KKyAgICB9LAorCisgICAgey5jb25maWcgPSB7LnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfUkVDSVJDX09OKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzEpfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MX19fSwKKworICAgIHsuY29uZmlnID0gey5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0FDX09OKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzEpfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MX19fSwKKworICAgIHsuY29uZmlnID0gey5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0FVVE9fT04pLAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMSl9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHsxfX19LAorCisgICAgey5jb25maWcgPSB7LnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzEpLAorICAgICAgICAgICAgICAgIC5hcmVhQ29uZmlncyA9IHtWZWhpY2xlQXJlYUNvbmZpZ3suYXJlYUlkID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5taW5JbnQzMlZhbHVlID0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1heEludDMyVmFsdWUgPSA3fX19LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHszfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9ESVJFQ1RJT04pLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMSksCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHt0b0ludChWZWhpY2xlSHZhY0ZhbkRpcmVjdGlvbjo6RkFDRSl9fX0sCisKKyAgICB7LmNvbmZpZyA9IHsucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19URU1QRVJBVFVSRV9TRVQpLAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUIHwgVmVoaWNsZUFyZWFab25lOjpST1dfMV9SSUdIVCwKKyAgICAgICAgICAgICAgICAuYXJlYUNvbmZpZ3MgPSB7VmVoaWNsZUFyZWFDb25maWd7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYXJlYUlkID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5taW5GbG9hdFZhbHVlID0gMTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWF4RmxvYXRWYWx1ZSA9IDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXJlYUNvbmZpZ3sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hcmVhSWQgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX1JJR0hUKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5taW5GbG9hdFZhbHVlID0gMTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWF4RmxvYXRWYWx1ZSA9IDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fX0sCisgICAgIC5pbml0aWFsQXJlYVZhbHVlcyA9IHt7dG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwgey5mbG9hdFZhbHVlcyA9IHsxNn19fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX1JJR0hUKSwgey5mbG9hdFZhbHVlcyA9IHsyMH19fX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpFTlZfT1VUU0lERV9URU1QRVJBVFVSRSksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAvLyBUT0RPKGJyeWFuZXlsZXIpOiBTdXBwb3J0IE9OX0NIQU5HRSBhcyB3ZWxsLgorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6Q09OVElOVU9VUywKKyAgICAgICAgICAgICAubWluU2FtcGxlUmF0ZSA9IDEuMGYsCisgICAgICAgICAgICAgLm1heFNhbXBsZVJhdGUgPSAyLjBmLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuZmxvYXRWYWx1ZXMgPSB7MjUuMGZ9fX0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6Ok5JR0hUX01PREUpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHswfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpEUklWSU5HX1NUQVRVUyksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0ge3RvSW50KFZlaGljbGVEcml2aW5nU3RhdHVzOjpVTlJFU1RSSUNURUQpfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpHRUFSX1NFTEVDVElPTiksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0ge3RvSW50KFZlaGljbGVHZWFyOjpHRUFSX1BBUkspfX19LAorCisgICAgeworICAgICAgICAuY29uZmlnID0KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19GVUVMX0NBUEFDSVRZKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6U1RBVElDLAorICAgICAgICAgICAgfSwKKyAgICAgICAgLmluaXRpYWxWYWx1ZSA9IHsuZmxvYXRWYWx1ZXMgPSB7MTIzMDAwLjBmfX0gIC8vIEluIE1pbGxpbGl0ZXJzCisgICAgfSwKKworICAgIHsuY29uZmlnID0gey5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpESVNQTEFZX0JSSUdIVE5FU1MpLAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgICAgLmFyZWFDb25maWdzID0ge1ZlaGljbGVBcmVhQ29uZmlney5taW5JbnQzMlZhbHVlID0gMCwgLm1heEludDMyVmFsdWUgPSAxMH19fSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7N319fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SUdOSVRJT05fU1RBVEUpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHt0b0ludChWZWhpY2xlSWduaXRpb25TdGF0ZTo6T04pfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpFTkdJTkVfT0lMX1RFTVApLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTLAorICAgICAgICAgICAgIC5taW5TYW1wbGVSYXRlID0gMC4xLCAgLy8gMC4xIEh6LCBldmVyeSAxMCBzZWNvbmRzCisgICAgICAgICAgICAgLm1heFNhbXBsZVJhdGUgPSAxMCwgICAvLyAxMCBIeiwgZXZlcnkgMTAwIG1zCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5mbG9hdFZhbHVlcyA9IHsxMDEuMGZ9fX0sCisKKyAgICB7CisgICAgICAgIC5jb25maWcgPQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC5wcm9wID0ga0dlbmVyYXRlRmFrZURhdGFDb250cm9sbGluZ1Byb3BlcnR5LAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OldSSVRFLAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgfSwKKyAgICB9LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpET09SX0xPQ0spLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHsxfX19CisKK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0RlZmF1bHRDb25maWdfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0VtdWxhdGVkVmVoaWNsZUhhbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUzNGEzZgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuY3BwCkBAIC0wLDAgKzEsMjcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiRGVmYXVsdFZlaGljbGVIYWxfdjJfMCIKKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL21hY3Jvcy5oPgorCisjaW5jbHVkZSAiRW11bGF0ZWRWZWhpY2xlSGFsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworZW51bSBjbGFzcyBGYWtlRGF0YUNvbW1hbmQgOiBpbnQzMl90IHsKKyAgICBTdG9wID0gMCwKKyAgICBTdGFydCA9IDEsCit9OworCitFbXVsYXRlZFZlaGljbGVIYWw6OkVtdWxhdGVkVmVoaWNsZUhhbChWZWhpY2xlUHJvcGVydHlTdG9yZSogcHJvcFN0b3JlKQorICAgIDogbVByb3BTdG9yZShwcm9wU3RvcmUpLAorICAgICAgbUh2YWNQb3dlclByb3BzKHN0ZDo6YmVnaW4oa0h2YWNQb3dlclByb3BlcnRpZXMpLCBzdGQ6OmVuZChrSHZhY1Bvd2VyUHJvcGVydGllcykpLAorICAgICAgbVJlY3VycmVudFRpbWVyKHN0ZDo6YmluZCgmRW11bGF0ZWRWZWhpY2xlSGFsOjpvbkNvbnRpbnVvdXNQcm9wZXJ0eVRpbWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSkpLAorICAgICAgbUZha2VWYWx1ZUdlbmVyYXRvcihzdGQ6OmJpbmQoJkVtdWxhdGVkVmVoaWNsZUhhbDo6b25GYWtlVmFsdWVHZW5lcmF0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMikpIHsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJyYXlzaXplKGtWZWhpY2xlUHJvcGVydGllcyk7IGkrKykgeworICAgICAgICBtUHJvcFN0b3JlLT5yZWdpc3RlclByb3BlcnR5KGtWZWhpY2xlUHJvcGVydGllc1tpXS5jb25maWcpOworICAgIH0KK30KKworVmVoaWNsZUhhbDo6VmVoaWNsZVByb3BWYWx1ZVB0ciBFbXVsYXRlZFZlaGljbGVIYWw6OmdldCgKKyAgICAgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLCBTdGF0dXNDb2RlKiBvdXRTdGF0dXMpIHsKKyAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIHYgPSBudWxscHRyOworCisgICAgYXV0byBpbnRlcm5hbFByb3BWYWx1ZSA9IG1Qcm9wU3RvcmUtPnJlYWRWYWx1ZU9yTnVsbChyZXF1ZXN0ZWRQcm9wVmFsdWUpOworICAgIGlmIChpbnRlcm5hbFByb3BWYWx1ZSAhPSBudWxscHRyKSB7CisgICAgICAgIHYgPSBnZXRWYWx1ZVBvb2woKS0+b2J0YWluKCppbnRlcm5hbFByb3BWYWx1ZSk7CisgICAgfQorCisgICAgKm91dFN0YXR1cyA9IHYgIT0gbnVsbHB0ciA/IFN0YXR1c0NvZGU6Ok9LIDogU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgcmV0dXJuIHY7Cit9CisKK1N0YXR1c0NvZGUgRW11bGF0ZWRWZWhpY2xlSGFsOjpzZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSB7CisgICAgaWYgKHByb3BWYWx1ZS5wcm9wID09IGtHZW5lcmF0ZUZha2VEYXRhQ29udHJvbGxpbmdQcm9wZXJ0eSkgeworICAgICAgICByZXR1cm4gaGFuZGxlR2VuZXJhdGVGYWtlRGF0YVJlcXVlc3QocHJvcFZhbHVlKTsKKyAgICB9OworCisgICAgaWYgKG1IdmFjUG93ZXJQcm9wcy5jb3VudChwcm9wVmFsdWUucHJvcCkpIHsKKyAgICAgICAgYXV0byBodmFjUG93ZXJPbiA9IG1Qcm9wU3RvcmUtPnJlYWRWYWx1ZU9yTnVsbCh0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfUE9XRVJfT04pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMSkpOworCisgICAgICAgIGlmIChodmFjUG93ZXJPbiAmJiBodmFjUG93ZXJPbi0+dmFsdWUuaW50MzJWYWx1ZXMuc2l6ZSgpID09IDEKKyAgICAgICAgICAgICAgICAmJiBodmFjUG93ZXJPbi0+dmFsdWUuaW50MzJWYWx1ZXNbMF0gPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIW1Qcm9wU3RvcmUtPndyaXRlVmFsdWUocHJvcFZhbHVlKSkgeworICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgfQorCisgICAgZ2V0RW11bGF0b3JPckRpZSgpLT5kb1NldFZhbHVlRnJvbUNsaWVudChwcm9wVmFsdWUpOworCisgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworfQorCisvLyBQYXJzZSBzdXBwb3J0ZWQgcHJvcGVydGllcyBsaXN0IGFuZCBnZW5lcmF0ZSB2ZWN0b3Igb2YgcHJvcGVydHkgdmFsdWVzIHRvIGhvbGQgY3VycmVudCB2YWx1ZXMuCit2b2lkIEVtdWxhdGVkVmVoaWNsZUhhbDo6b25DcmVhdGUoKSB7CisgICAgZm9yIChhdXRvJiBpdCA6IGtWZWhpY2xlUHJvcGVydGllcykgeworICAgICAgICBWZWhpY2xlUHJvcENvbmZpZyBjZmcgPSBpdC5jb25maWc7CisgICAgICAgIGludDMyX3Qgc3VwcG9ydGVkQXJlYXMgPSBjZmcuc3VwcG9ydGVkQXJlYXM7CisKKyAgICAgICAgLy8gIEEgZ2xvYmFsIHByb3BlcnR5IHdpbGwgaGF2ZSBzdXBwb3J0ZWRBcmVhcyA9IDAKKyAgICAgICAgaWYgKGlzR2xvYmFsUHJvcChjZmcucHJvcCkpIHsKKyAgICAgICAgICAgIHN1cHBvcnRlZEFyZWFzID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRoaXMgbG9vcCBpcyBhIGRvLXdoaWxlIHNvIGl0IGV4ZWN1dGVzIGF0IGxlYXN0IG9uY2UgdG8gaGFuZGxlIGdsb2JhbCBwcm9wZXJ0aWVzCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGludDMyX3QgY3VyQXJlYSA9IHN1cHBvcnRlZEFyZWFzOworICAgICAgICAgICAgc3VwcG9ydGVkQXJlYXMgJj0gc3VwcG9ydGVkQXJlYXMgLSAxOyAgLy8gQ2xlYXIgdGhlIHJpZ2h0LW1vc3QgYml0IG9mIHN1cHBvcnRlZEFyZWFzLgorICAgICAgICAgICAgY3VyQXJlYSBePSBzdXBwb3J0ZWRBcmVhczsgIC8vIFNldCBjdXJBcmVhIHRvIHRoZSBwcmV2aW91c2x5IGNsZWFyZWQgYml0LgorCisgICAgICAgICAgICAvLyBDcmVhdGUgYSBzZXBhcmF0ZSBpbnN0YW5jZSBmb3IgZWFjaCBpbmRpdmlkdWFsIHpvbmUKKyAgICAgICAgICAgIFZlaGljbGVQcm9wVmFsdWUgcHJvcCA9IHsKKyAgICAgICAgICAgICAgICAucHJvcCA9IGNmZy5wcm9wLAorICAgICAgICAgICAgICAgIC5hcmVhSWQgPSBjdXJBcmVhLAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGlmIChpdC5pbml0aWFsQXJlYVZhbHVlcy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgYXV0byB2YWx1ZUZvckFyZWFJdCA9IGl0LmluaXRpYWxBcmVhVmFsdWVzLmZpbmQoY3VyQXJlYSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlRm9yQXJlYUl0ICE9IGl0LmluaXRpYWxBcmVhVmFsdWVzLmVuZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHByb3AudmFsdWUgPSB2YWx1ZUZvckFyZWFJdC0+c2Vjb25kOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dXKCIlcyBmYWlsZWQgdG8gZ2V0IGRlZmF1bHQgdmFsdWUgZm9yIHByb3AgMHgleCBhcmVhIDB4JXgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBjZmcucHJvcCwgY3VyQXJlYSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9wLnZhbHVlID0gaXQuaW5pdGlhbFZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbVByb3BTdG9yZS0+d3JpdGVWYWx1ZShwcm9wKTsKKworICAgICAgICB9IHdoaWxlIChzdXBwb3J0ZWRBcmVhcyAhPSAwKTsKKyAgICB9Cit9CisKK3N0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBFbXVsYXRlZFZlaGljbGVIYWw6Omxpc3RQcm9wZXJ0aWVzKCkgIHsKKyAgICByZXR1cm4gbVByb3BTdG9yZS0+Z2V0QWxsQ29uZmlncygpOworfQorCit2b2lkIEVtdWxhdGVkVmVoaWNsZUhhbDo6b25Db250aW51b3VzUHJvcGVydHlUaW1lcihjb25zdCBzdGQ6OnZlY3RvcjxpbnQzMl90PiYgcHJvcGVydGllcykgeworICAgIFZlaGljbGVQcm9wVmFsdWVQdHIgdjsKKworICAgIGF1dG8mIHBvb2wgPSAqZ2V0VmFsdWVQb29sKCk7CisKKyAgICBmb3IgKGludDMyX3QgcHJvcGVydHkgOiBwcm9wZXJ0aWVzKSB7CisgICAgICAgIGlmIChpc0NvbnRpbnVvdXNQcm9wZXJ0eShwcm9wZXJ0eSkpIHsKKyAgICAgICAgICAgIGF1dG8gaW50ZXJuYWxQcm9wVmFsdWUgPSBtUHJvcFN0b3JlLT5yZWFkVmFsdWVPck51bGwocHJvcGVydHkpOworICAgICAgICAgICAgaWYgKGludGVybmFsUHJvcFZhbHVlICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICB2ID0gcG9vbC5vYnRhaW4oKmludGVybmFsUHJvcFZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFMT0dFKCJVbmV4cGVjdGVkIG9uQ29udGludW91c1Byb3BlcnR5VGltZXIgZm9yIHByb3BlcnR5OiAweCV4IiwgcHJvcGVydHkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHYuZ2V0KCkpIHsKKyAgICAgICAgICAgIHYtPnRpbWVzdGFtcCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAgICAgICAgICAgIGRvSGFsRXZlbnQoc3RkOjptb3ZlKHYpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworU3RhdHVzQ29kZSBFbXVsYXRlZFZlaGljbGVIYWw6OnN1YnNjcmliZShpbnQzMl90IHByb3BlcnR5LCBpbnQzMl90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHNhbXBsZVJhdGUpIHsKKyAgICBBTE9HSSgiJXMgcHJvcElkOiAweCV4LCBzYW1wbGVSYXRlOiAlZiIsIF9fZnVuY19fLCBwcm9wZXJ0eSwgc2FtcGxlUmF0ZSk7CisKKyAgICBpZiAoaXNDb250aW51b3VzUHJvcGVydHkocHJvcGVydHkpKSB7CisgICAgICAgIG1SZWN1cnJlbnRUaW1lci5yZWdpc3RlclJlY3VycmVudEV2ZW50KGhlcnR6VG9OYW5vc2Vjb25kcyhzYW1wbGVSYXRlKSwgcHJvcGVydHkpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7Cit9CisKK1N0YXR1c0NvZGUgRW11bGF0ZWRWZWhpY2xlSGFsOjp1bnN1YnNjcmliZShpbnQzMl90IHByb3BlcnR5KSB7CisgICAgQUxPR0koIiVzIHByb3BJZDogMHgleCIsIF9fZnVuY19fLCBwcm9wZXJ0eSk7CisgICAgaWYgKGlzQ29udGludW91c1Byb3BlcnR5KHByb3BlcnR5KSkgeworICAgICAgICBtUmVjdXJyZW50VGltZXIudW5yZWdpc3RlclJlY3VycmVudEV2ZW50KHByb3BlcnR5KTsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworfQorCitib29sIEVtdWxhdGVkVmVoaWNsZUhhbDo6aXNDb250aW51b3VzUHJvcGVydHkoaW50MzJfdCBwcm9wSWQpIGNvbnN0IHsKKyAgICBjb25zdCBWZWhpY2xlUHJvcENvbmZpZyogY29uZmlnID0gbVByb3BTdG9yZS0+Z2V0Q29uZmlnT3JOdWxsKHByb3BJZCk7CisgICAgaWYgKGNvbmZpZyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dXKCJDb25maWcgbm90IGZvdW5kIGZvciBwcm9wZXJ0eTogMHgleCIsIHByb3BJZCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIGNvbmZpZy0+Y2hhbmdlTW9kZSA9PSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTOworfQorCitib29sIEVtdWxhdGVkVmVoaWNsZUhhbDo6c2V0UHJvcGVydHlGcm9tVmVoaWNsZShjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIHsKKyAgICBpZiAobVByb3BTdG9yZS0+d3JpdGVWYWx1ZShwcm9wVmFsdWUpKSB7CisgICAgICAgIGRvSGFsRXZlbnQoZ2V0VmFsdWVQb29sKCktPm9idGFpbihwcm9wVmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gRW11bGF0ZWRWZWhpY2xlSGFsOjpnZXRBbGxQcm9wZXJ0aWVzKCkgY29uc3QgIHsKKyAgICByZXR1cm4gbVByb3BTdG9yZS0+cmVhZEFsbFZhbHVlcygpOworfQorCitTdGF0dXNDb2RlIEVtdWxhdGVkVmVoaWNsZUhhbDo6aGFuZGxlR2VuZXJhdGVGYWtlRGF0YVJlcXVlc3QoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdCkgeworICAgIEFMT0dJKCIlcyIsIF9fZnVuY19fKTsKKyAgICBjb25zdCBhdXRvJiB2ID0gcmVxdWVzdC52YWx1ZTsKKyAgICBpZiAodi5pbnQzMlZhbHVlcy5zaXplKCkgPCAyKSB7CisgICAgICAgIEFMT0dFKCIlczogZXhwZWN0ZWQgYXQgbGVhc3QgMiBlbGVtZW50cyBpbiBpbnQzMlZhbHVlcywgZ290OiAlenUiLCBfX2Z1bmNfXywKKyAgICAgICAgICAgICAgICB2LmludDMyVmFsdWVzLnNpemUoKSk7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICB9CisKKyAgICBGYWtlRGF0YUNvbW1hbmQgY29tbWFuZCA9IHN0YXRpY19jYXN0PEZha2VEYXRhQ29tbWFuZD4odi5pbnQzMlZhbHVlc1swXSk7CisgICAgaW50MzJfdCBwcm9wSWQgPSB2LmludDMyVmFsdWVzWzFdOworCisgICAgc3dpdGNoIChjb21tYW5kKSB7CisgICAgICAgIGNhc2UgRmFrZURhdGFDb21tYW5kOjpTdGFydDogeworICAgICAgICAgICAgaWYgKCF2LmludDY0VmFsdWVzLnNpemUoKSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCIlczogaW50ZXJ2YWwgaXMgbm90IHByb3ZpZGVkIGluIGludDY0VmFsdWVzIiwgX19mdW5jX18pOworICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGF1dG8gaW50ZXJ2YWwgPSBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHModi5pbnQ2NFZhbHVlc1swXSk7CisKKyAgICAgICAgICAgIGlmICh2LmZsb2F0VmFsdWVzLnNpemUoKSA8IDMpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IGV4cGVjdGVkIGF0IGxlYXN0IDMgZWxlbWVudCBzaW4gZmxvYXRWYWx1ZXMsIGdvdDogJXp1IiwgX19mdW5jX18sCisgICAgICAgICAgICAgICAgICAgICAgICB2LmZsb2F0VmFsdWVzLnNpemUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZmxvYXQgaW5pdGlhbFZhbHVlID0gdi5mbG9hdFZhbHVlc1swXTsKKyAgICAgICAgICAgIGZsb2F0IGRpc3BlcnNpb24gPSB2LmZsb2F0VmFsdWVzWzFdOworICAgICAgICAgICAgZmxvYXQgaW5jcmVtZW50ID0gdi5mbG9hdFZhbHVlc1syXTsKKworICAgICAgICAgICAgQUxPR0koIiVzLCBwcm9wSWQ6ICVkLCBpbml0YWxWYWx1ZTogJWYiLCBfX2Z1bmNfXywgcHJvcElkLCBpbml0aWFsVmFsdWUpOworICAgICAgICAgICAgbUZha2VWYWx1ZUdlbmVyYXRvci5zdGFydEdlbmVyYXRpbmdIYWxFdmVudHMoCisgICAgICAgICAgICAgICAgaW50ZXJ2YWwsIHByb3BJZCwgaW5pdGlhbFZhbHVlLCBkaXNwZXJzaW9uLCBpbmNyZW1lbnQpOworCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEZha2VEYXRhQ29tbWFuZDo6U3RvcDogeworICAgICAgICAgICAgQUxPR0koIiVzLCBGYWtlRGF0YUNvbW1hbmRTdG9wIiwgX19mdW5jX18pOworICAgICAgICAgICAgbUZha2VWYWx1ZUdlbmVyYXRvci5zdG9wR2VuZXJhdGluZ0hhbEV2ZW50cyhwcm9wSWQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAgQUxPR0UoIiVzOiB1bmV4cGVjdGVkIGNvbW1hbmQ6ICVkIiwgX19mdW5jX18sIGNvbW1hbmQpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKK30KKwordm9pZCBFbXVsYXRlZFZlaGljbGVIYWw6Om9uRmFrZVZhbHVlR2VuZXJhdGVkKGludDMyX3QgcHJvcElkLCBmbG9hdCB2YWx1ZSkgeworICAgIFZlaGljbGVQcm9wVmFsdWVQdHIgdXBkYXRlZFByb3BWYWx1ZSB7fTsKKyAgICBzd2l0Y2ggKGdldFByb3BUeXBlKHByb3BJZCkpIHsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVDoKKyAgICAgICAgICAgIHVwZGF0ZWRQcm9wVmFsdWUgPSBnZXRWYWx1ZVBvb2woKS0+b2J0YWluRmxvYXQodmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzI6CisgICAgICAgICAgICB1cGRhdGVkUHJvcFZhbHVlID0gZ2V0VmFsdWVQb29sKCktPm9idGFpbkludDMyKHN0YXRpY19jYXN0PGludDMyX3Q+KHZhbHVlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dFKCIlczogZGF0YSB0eXBlIGZvciBwcm9wZXJ0eTogMHgleCBub3Qgc3VwcG9ydGVkIiwgX19mdW5jX18sIHByb3BJZCk7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICB9CisKKyAgICBpZiAodXBkYXRlZFByb3BWYWx1ZSkgeworICAgICAgICB1cGRhdGVkUHJvcFZhbHVlLT5wcm9wID0gcHJvcElkOworICAgICAgICB1cGRhdGVkUHJvcFZhbHVlLT5hcmVhSWQgPSAwOyAgLy8gQWRkIGFyZWEgc3VwcG9ydCBpZiBuZWNlc3NhcnkuCisgICAgICAgIHVwZGF0ZWRQcm9wVmFsdWUtPnRpbWVzdGFtcCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAgICAgICAgbVByb3BTdG9yZS0+d3JpdGVWYWx1ZSgqdXBkYXRlZFByb3BWYWx1ZSk7CisgICAgICAgIGF1dG8gY2hhbmdlTW9kZSA9IG1Qcm9wU3RvcmUtPmdldENvbmZpZ09yRGllKHByb3BJZCktPmNoYW5nZU1vZGU7CisgICAgICAgIGlmIChWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UgPT0gY2hhbmdlTW9kZSkgeworICAgICAgICAgICAgZG9IYWxFdmVudChtb3ZlKHVwZGF0ZWRQcm9wVmFsdWUpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA5NDg1ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuaApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfRW11bGF0ZWRWZWhpY2xlSGFsX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9FbXVsYXRlZFZlaGljbGVIYWxfSF8KKworI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPHRocmVhZD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgorCisjaW5jbHVkZSA8dXRpbHMvU3lzdGVtQ2xvY2suaD4KKworI2luY2x1ZGUgIlZlaGljbGVIYWxQcm90by5wYi5oIgorCisjaW5jbHVkZSA8dmhhbF92Ml8wL1JlY3VycmVudFRpbWVyLmg+CisjaW5jbHVkZSA8dmhhbF92Ml8wL1ZlaGljbGVIYWwuaD4KKyNpbmNsdWRlICJ2aGFsX3YyXzAvVmVoaWNsZVByb3BlcnR5U3RvcmUuaCIKKworI2luY2x1ZGUgIkRlZmF1bHRDb25maWcuaCIKKyNpbmNsdWRlICJWZWhpY2xlSGFsUHJvdG8ucGIuaCIKKyNpbmNsdWRlICJWZWhpY2xlRW11bGF0b3IuaCIKKyNpbmNsdWRlICJGYWtlVmFsdWVHZW5lcmF0b3IuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCisvKiogSW1wbGVtZW50YXRpb24gb2YgVmVoaWNsZUhhbCB0aGF0IGNvbm5lY3RlZCB0byBlbXVsYXRvciBpbnN0ZWFkIG9mIHJlYWwgdmVoaWNsZSBuZXR3b3JrLiAqLworY2xhc3MgRW11bGF0ZWRWZWhpY2xlSGFsIDogcHVibGljIEVtdWxhdGVkVmVoaWNsZUhhbElmYWNlIHsKK3B1YmxpYzoKKyAgICBFbXVsYXRlZFZlaGljbGVIYWwoVmVoaWNsZVByb3BlcnR5U3RvcmUqIHByb3BTdG9yZSk7CisgICAgfkVtdWxhdGVkVmVoaWNsZUhhbCgpID0gZGVmYXVsdDsKKworICAgIC8vICBNZXRob2RzIGZyb20gVmVoaWNsZUhhbAorICAgIHZvaWQgb25DcmVhdGUoKSBvdmVycmlkZTsKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gbGlzdFByb3BlcnRpZXMoKSBvdmVycmlkZTsKKyAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIGdldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzQ29kZSogb3V0U3RhdHVzKSBvdmVycmlkZTsKKyAgICBTdGF0dXNDb2RlIHNldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIG92ZXJyaWRlOworICAgIFN0YXR1c0NvZGUgc3Vic2NyaWJlKGludDMyX3QgcHJvcGVydHksIGludDMyX3QgYXJlYXMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlOworICAgIFN0YXR1c0NvZGUgdW5zdWJzY3JpYmUoaW50MzJfdCBwcm9wZXJ0eSkgb3ZlcnJpZGU7CisKKyAgICAvLyAgTWV0aG9kcyBmcm9tIEVtdWxhdGVkVmVoaWNsZUhhbElmYWNlCisgICAgYm9vbCBzZXRQcm9wZXJ0eUZyb21WZWhpY2xlKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgb3ZlcnJpZGU7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gZ2V0QWxsUHJvcGVydGllcygpIGNvbnN0IG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGNvbnN0ZXhwciBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMgaGVydHpUb05hbm9zZWNvbmRzKGZsb2F0IGh6KSBjb25zdCB7CisgICAgICAgIHJldHVybiBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMoc3RhdGljX2Nhc3Q8aW50NjRfdD4oMTAwMDAwMDAwMEwgLyBoeikpOworICAgIH0KKworICAgIFN0YXR1c0NvZGUgaGFuZGxlR2VuZXJhdGVGYWtlRGF0YVJlcXVlc3QoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdCk7CisgICAgdm9pZCBvbkZha2VWYWx1ZUdlbmVyYXRlZChpbnQzMl90IHByb3BJZCwgZmxvYXQgdmFsdWUpOworCisgICAgdm9pZCBvbkNvbnRpbnVvdXNQcm9wZXJ0eVRpbWVyKGNvbnN0IHN0ZDo6dmVjdG9yPGludDMyX3Q+JiBwcm9wZXJ0aWVzKTsKKyAgICBib29sIGlzQ29udGludW91c1Byb3BlcnR5KGludDMyX3QgcHJvcElkKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBWZWhpY2xlUHJvcGVydHlTdG9yZSogbVByb3BTdG9yZTsKKyAgICBzdGQ6OnVub3JkZXJlZF9zZXQ8aW50MzJfdD4gbUh2YWNQb3dlclByb3BzOworICAgIFJlY3VycmVudFRpbWVyIG1SZWN1cnJlbnRUaW1lcjsKKyAgICBGYWtlVmFsdWVHZW5lcmF0b3IgbUZha2VWYWx1ZUdlbmVyYXRvcjsKK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0VtdWxhdGVkVmVoaWNsZUhhbF9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0Zha2VWYWx1ZUdlbmVyYXRvci5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0Zha2VWYWx1ZUdlbmVyYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiYmJiMDgKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRmFrZVZhbHVlR2VuZXJhdG9yLmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9GYWtlSGFsRXZlbnRHZW5lcmF0b3JfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0Zha2VIYWxFdmVudEdlbmVyYXRvcl9IXworCisjaW5jbHVkZSA8Y2hyb25vPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL3R5cGVzLmg+CisKKyNpbmNsdWRlIDx2aGFsX3YyXzAvUmVjdXJyZW50VGltZXIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCitjbGFzcyBGYWtlVmFsdWVHZW5lcmF0b3IgeworcHJpdmF0ZToKKyAgICAvLyBJbiBldmVyeSB0aW1lciB0aWNrIHdlIG1heSB3YW50IHRvIGdlbmVyYXRlIG5ldyB2YWx1ZSBiYXNlZCBvbiBpbml0aWFsIHZhbHVlIGZvciBkZWJ1ZworICAgIC8vIHB1cnBvc2UuIEl0J3MgYmV0dGVyIHRvIGhhdmUgc2VxdWVudGlhbCB2YWx1ZXMgdG8gc2VlIGlmIGV2ZW50cyBnZXRzIGRlbGl2ZXJlZCBpbiBvcmRlcgorICAgIC8vIHRvIHRoZSBjbGllbnQuCisKKyAgICBzdHJ1Y3QgR2VuZXJhdG9yQ2ZnIHsKKyAgICAgICAgZmxvYXQgaW5pdGlhbFZhbHVlOyAgLy8KKyAgICAgICAgZmxvYXQgY3VycmVudFZhbHVlOyAgLy8gIFNob3VsZCBiZSBpbiByYW5nZSAoaW5pdGlhbFZhbHVlICsvLSBkaXNwZXJzaW9uKS4KKyAgICAgICAgZmxvYXQgZGlzcGVyc2lvbjsgICAgLy8gIERlZmluZXMgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSBiYXNlZCBvbiBpbml0aWFsIHZhbHVlLgorICAgICAgICBmbG9hdCBpbmNyZW1lbnQ7ICAgICAvLyAgVmFsdWUgdGhhdCB3ZSB3aWxsIGJlIGFkZGVkIHRvIGN1cnJlbnRWYWx1ZSB3aXRoIGVhY2ggdGltZXIgdGljay4KKyAgICB9OworCitwdWJsaWM6CisgICAgdXNpbmcgT25IYWxFdmVudCA9IHN0ZDo6ZnVuY3Rpb248dm9pZChpbnQzMl90IHByb3BJZCwgZmxvYXQgdmFsdWUpPjsKKworICAgIEZha2VWYWx1ZUdlbmVyYXRvcihjb25zdCBPbkhhbEV2ZW50JiBvbkhhbEV2ZW50KSA6CisgICAgICAgIG1PbkhhbEV2ZW50KG9uSGFsRXZlbnQpLAorICAgICAgICBtUmVjdXJyZW50VGltZXIoc3RkOjpiaW5kKCZGYWtlVmFsdWVHZW5lcmF0b3I6Om9uVGltZXIsIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xKSkKKyAgICB7fQorCisgICAgfkZha2VWYWx1ZUdlbmVyYXRvcigpID0gZGVmYXVsdDsKKworCisgICAgdm9pZCBzdGFydEdlbmVyYXRpbmdIYWxFdmVudHMoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGludGVydmFsLCBpbnQgcHJvcElkLCBmbG9hdCBpbml0aWFsVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGlzcGVyc2lvbiwgZmxvYXQgaW5jcmVtZW50KSB7CisgICAgICAgIE11eEd1YXJkIGcobUxvY2spOworCisgICAgICAgIHJlbW92ZUxvY2tlZChwcm9wSWQpOworCisgICAgICAgIG1HZW5DZmcuaW5zZXJ0KHtwcm9wSWQsIEdlbmVyYXRvckNmZyB7CisgICAgICAgICAgICAuaW5pdGlhbFZhbHVlID0gaW5pdGlhbFZhbHVlLAorICAgICAgICAgICAgLmN1cnJlbnRWYWx1ZSA9IGluaXRpYWxWYWx1ZSwKKyAgICAgICAgICAgIC5kaXNwZXJzaW9uID0gZGlzcGVyc2lvbiwKKyAgICAgICAgICAgIC5pbmNyZW1lbnQgPSBpbmNyZW1lbnQsCisgICAgICAgIH19KTsKKworICAgICAgICBtUmVjdXJyZW50VGltZXIucmVnaXN0ZXJSZWN1cnJlbnRFdmVudChpbnRlcnZhbCwgcHJvcElkKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3BHZW5lcmF0aW5nSGFsRXZlbnRzKGludCBwcm9wSWQpIHsKKyAgICAgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgICAgIGlmIChwcm9wSWQgPT0gMCkgeworICAgICAgICAgICAgLy8gUmVtb3ZlIGFsbC4KKyAgICAgICAgICAgIGZvciAoYXV0byYmIGl0IDogbUdlbkNmZykgeworICAgICAgICAgICAgICAgIHJlbW92ZUxvY2tlZChpdC5maXJzdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZW1vdmVMb2NrZWQocHJvcElkKTsKKyAgICAgICAgfQorICAgIH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHJlbW92ZUxvY2tlZChpbnQgcHJvcElkKSB7CisgICAgICAgIGlmIChtR2VuQ2ZnLmVyYXNlKHByb3BJZCkpIHsKKyAgICAgICAgICAgIG1SZWN1cnJlbnRUaW1lci51bnJlZ2lzdGVyUmVjdXJyZW50RXZlbnQocHJvcElkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgb25UaW1lcihjb25zdCBzdGQ6OnZlY3RvcjxpbnQzMl90PiYgcHJvcGVydGllcykgeworICAgICAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKworICAgICAgICBmb3IgKGludDMyX3QgcHJvcElkIDogcHJvcGVydGllcykgeworICAgICAgICAgICAgYXV0byYgY2ZnID0gbUdlbkNmZ1twcm9wSWRdOworICAgICAgICAgICAgY2ZnLmN1cnJlbnRWYWx1ZSArPSBjZmcuaW5jcmVtZW50OworICAgICAgICAgICAgaWYgKGNmZy5jdXJyZW50VmFsdWUgPiBjZmcuaW5pdGlhbFZhbHVlICsgY2ZnLmRpc3BlcnNpb24pIHsKKyAgICAgICAgICAgICAgICBjZmcuY3VycmVudFZhbHVlID0gY2ZnLmluaXRpYWxWYWx1ZSAtIGNmZy5kaXNwZXJzaW9uOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbU9uSGFsRXZlbnQocHJvcElkLCBjZmcuY3VycmVudFZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworcHJpdmF0ZToKKyAgICB1c2luZyBNdXhHdWFyZCA9IHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PjsKKworICAgIG11dGFibGUgc3RkOjptdXRleCBtTG9jazsKKyAgICBPbkhhbEV2ZW50IG1PbkhhbEV2ZW50OworICAgIFJlY3VycmVudFRpbWVyIG1SZWN1cnJlbnRUaW1lcjsKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8aW50MzJfdCwgR2VuZXJhdG9yQ2ZnPiBtR2VuQ2ZnOworfTsKKworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisKKyNlbmRpZiAvL2FuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9GYWtlSGFsRXZlbnRHZW5lcmF0b3JfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9QaXBlQ29tbS5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvUGlwZUNvbW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiMTVhYTMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvUGlwZUNvbW0uY3BwCkBAIC0wLDAgKzEsMTA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJQaXBlQ29tbSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHN5c3RlbS9xZW11X3BpcGUuaD4KKworI2luY2x1ZGUgIlBpcGVDb21tLmgiCisKKyNkZWZpbmUgQ0FSX1NFUlZJQ0VfTkFNRSAicGlwZTpxZW11ZDpjYXIiCisKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCitQaXBlQ29tbTo6UGlwZUNvbW0oKSB7CisgICAgLy8gSW5pdGlhbGl6ZSBtZW1iZXIgdmFycworICAgIG1QaXBlRmQgPSAtMTsKK30KKworCitpbnQgUGlwZUNvbW06Om9wZW4oKSB7CisgICAgaW50IGZkID0gcWVtdV9waXBlX29wZW4oQ0FSX1NFUlZJQ0VfTkFNRSk7CisKKyAgICBpZiAoZmQgPCAwKSB7CisgICAgICAgIEFMT0dFKCIlczogQ291bGQgbm90IG9wZW4gY29ubmVjdGlvbiB0byBzZXJ2aWNlOiAlcyAlZCIsIF9fRlVOQ1RJT05fXywgc3RyZXJyb3IoZXJybm8pLCBmZCk7CisgICAgICAgIHJldHVybiAtZXJybm87CisgICAgfQorCisgICAgQUxPR0koIiVzOiBPUEVORUQgUElQRSwgZmQ9JWQiLCBfX0ZVTkNUSU9OX18sIGZkKTsKKyAgICBtUGlwZUZkID0gZmQ7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFBpcGVDb21tOjpyZWFkKCkgeworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IE1BWF9SWF9NU0dfU1ogPSAyMDQ4OworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG1zZyA9IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KE1BWF9SWF9NU0dfU1opOworICAgIGludCBudW1CeXRlczsKKworICAgIG51bUJ5dGVzID0gcWVtdV9waXBlX2ZyYW1lX3JlY3YobVBpcGVGZCwgbXNnLmRhdGEoKSwgbXNnLnNpemUoKSk7CisKKyAgICBpZiAobnVtQnl0ZXMgPT0gTUFYX1JYX01TR19TWikgeworICAgICAgICBBTE9HRSgiJXM6ICBSZWNlaXZlZCBtYXggc2l6ZSA9ICVkIiwgX19GVU5DVElPTl9fLCBNQVhfUlhfTVNHX1NaKTsKKyAgICB9IGVsc2UgaWYgKG51bUJ5dGVzID4gMCkgeworICAgICAgICBtc2cucmVzaXplKG51bUJ5dGVzKTsKKyAgICAgICAgcmV0dXJuIG1zZzsKKyAgICB9IGVsc2UgeworICAgICAgICBBTE9HRCgiJXM6IENvbm5lY3Rpb24gdGVybWluYXRlZCBvbiBwaXBlICVkLCBudW1CeXRlcz0lZCIsIF9fRlVOQ1RJT05fXywgbVBpcGVGZCwgbnVtQnl0ZXMpOworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICAgICAgbVBpcGVGZCA9IC0xOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KCk7Cit9CisKK2ludCBQaXBlQ29tbTo6d3JpdGUoY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIGRhdGEpIHsKKyAgICBpbnQgcmV0VmFsID0gMDsKKworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgaWYgKG1QaXBlRmQgIT0gLTEpIHsKKyAgICAgICAgICAgIHJldFZhbCA9IHFlbXVfcGlwZV9mcmFtZV9zZW5kKG1QaXBlRmQsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocmV0VmFsIDwgMCkgeworICAgICAgICByZXRWYWwgPSAtZXJybm87CisgICAgICAgIEFMT0dFKCIlczogIHNlbmRfY21kOiAoZmQ9JWQpOiBFUlJPUjogJXMiLCBfX0ZVTkNUSU9OX18sIG1QaXBlRmQsIHN0cmVycm9yKGVycm5vKSk7CisgICAgfQorCisgICAgcmV0dXJuIHJldFZhbDsKK30KKworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9QaXBlQ29tbS5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1BpcGVDb21tLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNkMzJkMAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9QaXBlQ29tbS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9QaXBlQ29tbV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfUGlwZUNvbW1fSF8KKworI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlICJDb21tQmFzZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKKy8qKgorICogUGlwZUNvbW0gdXNlcyBhIHFlbXUgcGlwZSBpbnRlcmZhY2UgdG8gY29ubmVjdCB0byB0aGUgR29sZGZpc2ggRW11bGF0b3IuCisgKi8KK2NsYXNzIFBpcGVDb21tIDogcHVibGljIENvbW1CYXNlIHsKK3B1YmxpYzoKKyAgICBQaXBlQ29tbSgpOworCisgICAgLyoqCisgICAgICogT3BlbnMgYSBwaXBlIGFuZCBiZWdpbnMgbGlzdGVuaW5nLgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgUmV0dXJucyAwIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgaW50IG9wZW4oKSBvdmVycmlkZTsKKworICAgIC8qKgorICAgICAqIEJsb2NraW5nIGNhbGwgdG8gcmVhZCBkYXRhIGZyb20gdGhlIGNvbm5lY3Rpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFNlcmlhbGl6ZWQgcHJvdG9idWYgZGF0YSByZWNlaXZlZCBmcm9tIGVtdWxhdG9yLiAgVGhpcyB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgIGFuIGVtcHR5IHZlY3RvciBpZiB0aGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkIG9yIHNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuCisgICAgICovCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gcmVhZCgpIG92ZXJyaWRlOworCisgICAgLyoqCisgICAgICogVHJhbnNtaXRzIGEgc3RyaW5nIG9mIGRhdGEgdG8gdGhlIGVtdWxhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGEgU2VyaWFsaXplZCBwcm90b2J1ZiBkYXRhIHRvIHRyYW5zbWl0LgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgTnVtYmVyIG9mIGJ5dGVzIHRyYW5zbWl0dGVkLCBvciAtMSBpZiBmYWlsZWQuCisgICAgICovCisgICAgaW50IHdyaXRlKGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdGQ6Om11dGV4IG1NdXRleDsKKyAgICBpbnQgbVBpcGVGZDsKK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1BpcGVDb21tX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvU29ja2V0Q29tbS5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvU29ja2V0Q29tbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJjMWM3OAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9Tb2NrZXRDb21tLmNwcApAQCAtMCwwICsxLDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiU29ja2V0Q29tbSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisKKyNpbmNsdWRlICJTb2NrZXRDb21tLmgiCisKKy8vIFNvY2tldCB0byB1c2Ugd2hlbiBjb21tdW5pY2F0aW5nIHdpdGggSG9zdCBQQworc3RhdGljIGNvbnN0ZXhwciBpbnQgREVCVUdfU09DS0VUID0gMzM0NTI7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworU29ja2V0Q29tbTo6U29ja2V0Q29tbSgpIHsKKyAgICAvLyBJbml0aWFsaXplIG1lbWJlciB2YXJzCisgICAgbUN1clNvY2tGZCA9IC0xOworICAgIG1FeGl0ICAgICAgPSAgMDsKKyAgICBtU29ja0ZkICAgID0gLTE7Cit9CisKKworU29ja2V0Q29tbTo6flNvY2tldENvbW0oKSB7CisgICAgc3RvcCgpOworfQorCitpbnQgU29ja2V0Q29tbTo6Y29ubmVjdCgpIHsKKyAgICBzb2NrYWRkcl9pbiBjbGlBZGRyOworICAgIHNvY2tsZW5fdCBjbGlMZW4gPSBzaXplb2YoY2xpQWRkcik7CisgICAgaW50IGNTb2NrRmQgPSBhY2NlcHQobVNvY2tGZCwgcmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3Qgc29ja2FkZHIqPigmY2xpQWRkciksICZjbGlMZW4pOworCisgICAgaWYgKGNTb2NrRmQgPj0gMCkgeworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICAgICAgbUN1clNvY2tGZCA9IGNTb2NrRmQ7CisgICAgICAgIH0KKyAgICAgICAgQUxPR0QoIiVzOiBJbmNvbWluZyBjb25uZWN0aW9uIHJlY2VpdmVkIG9uIHNvY2tldCAlZCIsIF9fRlVOQ1RJT05fXywgY1NvY2tGZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY1NvY2tGZCA9IC0xOworICAgIH0KKworICAgIHJldHVybiBjU29ja0ZkOworfQorCitpbnQgU29ja2V0Q29tbTo6b3BlbigpIHsKKyAgICBpbnQgcmV0VmFsOworICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBzZXJ2QWRkcjsKKworICAgIG1Tb2NrRmQgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19TVFJFQU0sIDApOworICAgIGlmIChtU29ja0ZkIDwgMCkgeworICAgICAgICBBTE9HRSgiJXM6IHNvY2tldCgpIGZhaWxlZCwgbVNvY2tGZD0lZCwgZXJybm89JWQiLCBfX0ZVTkNUSU9OX18sIG1Tb2NrRmQsIGVycm5vKTsKKyAgICAgICAgbVNvY2tGZCA9IC0xOworICAgICAgICByZXR1cm4gLWVycm5vOworICAgIH0KKworICAgIG1lbXNldCgmc2VydkFkZHIsIDAsIHNpemVvZihzZXJ2QWRkcikpOworICAgIHNlcnZBZGRyLnNpbl9mYW1pbHkgPSBBRl9JTkVUOworICAgIHNlcnZBZGRyLnNpbl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7CisgICAgc2VydkFkZHIuc2luX3BvcnQgPSBodG9ucyhERUJVR19TT0NLRVQpOworCisgICAgcmV0VmFsID0gYmluZChtU29ja0ZkLCByZWludGVycHJldF9jYXN0PHN0cnVjdCBzb2NrYWRkcio+KCZzZXJ2QWRkciksIHNpemVvZihzZXJ2QWRkcikpOworICAgIGlmKHJldFZhbCA8IDApIHsKKyAgICAgICAgQUxPR0UoIiVzOiBFcnJvciBvbiBiaW5kaW5nOiByZXRWYWw9JWQsIGVycm5vPSVkIiwgX19GVU5DVElPTl9fLCByZXRWYWwsIGVycm5vKTsKKyAgICAgICAgY2xvc2UobVNvY2tGZCk7CisgICAgICAgIG1Tb2NrRmQgPSAtMTsKKyAgICAgICAgcmV0dXJuIC1lcnJubzsKKyAgICB9CisKKyAgICBsaXN0ZW4obVNvY2tGZCwgMSk7CisKKyAgICAvLyBTZXQgdGhlIHNvY2tldCB0byBiZSBub24tYmxvY2tpbmcgc28gd2UgY2FuIHBvbGwgaXQgY29udGlub3VvdXNseQorICAgIGZjbnRsKG1Tb2NrRmQsIEZfU0VURkwsIE9fTk9OQkxPQ0spOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFNvY2tldENvbW06OnJlYWQoKSB7CisgICAgaW50MzJfdCBtc2dTaXplOworICAgIGludCBudW1CeXRlcyA9IDA7CisKKyAgICAvLyBUaGlzIGlzIGEgdmFyaWFibGUgbGVuZ3RoIG1lc3NhZ2UuCisgICAgLy8gUmVhZCB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHJ4IG92ZXIgdGhlIHNvY2tldAorICAgIG51bUJ5dGVzID0gOjpyZWFkKG1DdXJTb2NrRmQsICZtc2dTaXplLCBzaXplb2YobXNnU2l6ZSkpOworICAgIG1zZ1NpemUgPSBudG9obChtc2dTaXplKTsKKworICAgIGlmIChudW1CeXRlcyAhPSBzaXplb2YobXNnU2l6ZSkpIHsKKyAgICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gY29ubmVjdGlvbiBpcyBjbG9zZWQKKyAgICAgICAgQUxPR0QoIiVzOiBudW1CeXRlcz0lZCwgZXhwZWN0ZWQ9NCIsIF9fRlVOQ1RJT05fXywgbnVtQnl0ZXMpOworICAgICAgICBBTE9HRCgiJXM6IENvbm5lY3Rpb24gdGVybWluYXRlZCBvbiBzb2NrZXQgJWQiLCBfX0ZVTkNUSU9OX18sIG1DdXJTb2NrRmQpOworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICAgICAgbUN1clNvY2tGZCA9IC0xOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KCk7CisgICAgfQorCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gbXNnID0gc3RkOjp2ZWN0b3I8dWludDhfdD4obXNnU2l6ZSk7CisKKyAgICBudW1CeXRlcyA9IDo6cmVhZChtQ3VyU29ja0ZkLCBtc2cuZGF0YSgpLCBtc2dTaXplKTsKKworICAgIGlmICgobnVtQnl0ZXMgPT0gbXNnU2l6ZSkgJiYgKG1zZ1NpemUgPiAwKSkgeworICAgICAgICAvLyBSZWNlaXZlZCBhIG1lc3NhZ2UuCisgICAgICAgIHJldHVybiBtc2c7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gY29ubmVjdGlvbiBpcyBjbG9zZWQKKyAgICAgICAgQUxPR0QoIiVzOiBudW1CeXRlcz0lZCwgbXNnU2l6ZT0lZCIsIF9fRlVOQ1RJT05fXywgbnVtQnl0ZXMsIG1zZ1NpemUpOworICAgICAgICBBTE9HRCgiJXM6IENvbm5lY3Rpb24gdGVybWluYXRlZCBvbiBzb2NrZXQgJWQiLCBfX0ZVTkNUSU9OX18sIG1DdXJTb2NrRmQpOworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICAgICAgbUN1clNvY2tGZCA9IC0xOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KCk7CisgICAgfQorfQorCit2b2lkIFNvY2tldENvbW06OnN0b3AoKSB7CisgICAgaWYgKG1FeGl0ID09IDApIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgbUV4aXQgPSAxOworCisgICAgICAgIC8vIENsb3NlIGVtdWxhdG9yIHNvY2tldCBpZiBpdCBpcyBvcGVuCisgICAgICAgIGlmIChtQ3VyU29ja0ZkICE9IC0xKSB7CisgICAgICAgICAgICBjbG9zZShtQ3VyU29ja0ZkKTsKKyAgICAgICAgICAgIG1DdXJTb2NrRmQgPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtU29ja0ZkICE9IC0xKSB7CisgICAgICAgICAgICBjbG9zZShtU29ja0ZkKTsKKyAgICAgICAgICAgIG1Tb2NrRmQgPSAtMTsKKyAgICAgICAgfQorICAgIH0KK30KKworaW50IFNvY2tldENvbW06OndyaXRlKGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKSB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgTVNHX0hFQURFUl9MRU4gPSA0OworICAgIGludCByZXRWYWwgPSAwOworICAgIHVuaW9uIHsKKyAgICAgICAgdWludDMyX3QgbXNnTGVuOworICAgICAgICB1aW50OF90IG1zZ0xlbkJ5dGVzW01TR19IRUFERVJfTEVOXTsKKyAgICB9OworCisgICAgLy8gUHJlcGFyZSBoZWFkZXIgZm9yIHRoZSBtZXNzYWdlCisgICAgbXNnTGVuID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRhdGEuc2l6ZSgpKTsKKyAgICBtc2dMZW4gPSBodG9ubChtc2dMZW4pOworCisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICBpZiAobUN1clNvY2tGZCAhPSAtMSkgeworICAgICAgICByZXRWYWwgPSA6OndyaXRlKG1DdXJTb2NrRmQsIG1zZ0xlbkJ5dGVzLCBNU0dfSEVBREVSX0xFTik7CisKKyAgICAgICAgaWYgKHJldFZhbCA9PSBNU0dfSEVBREVSX0xFTikgeworICAgICAgICAgICAgcmV0VmFsID0gOjp3cml0ZShtQ3VyU29ja0ZkLCBkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJldFZhbDsKK30KKworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1NvY2tldENvbW0uaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9Tb2NrZXRDb21tLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJjZmIyOQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9Tb2NrZXRDb21tLmgKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1NvY2tldENvbW1fSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1NvY2tldENvbW1fSF8KKworI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlICJDb21tQmFzZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKKy8qKgorICogU29ja2V0Q29tbSBvcGVucyBhIHNvY2tldCB2aWEgYWRiJ3MgVENQIHBvcnQgZm9yd2FyZGluZyB0byBlbmFibGUgYSBIb3N0IFBDIHRvIGNvbm5lY3QgdG8KKyAqIHRoZSBWZWhpY2xlSEFMLgorICovCitjbGFzcyBTb2NrZXRDb21tIDogcHVibGljIENvbW1CYXNlIHsKK3B1YmxpYzoKKyAgICBTb2NrZXRDb21tKCk7CisgICAgdmlydHVhbCB+U29ja2V0Q29tbSgpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGNvbm5lY3Rpb24gdG8gdGhlIG90aGVyIHNpZGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludCBSZXR1cm5zIGZkIG9yIHNvY2tldCBudW1iZXIgaWYgY29ubmVjdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqICAgICAgICAgICAgICBPdGhlcndpc2UsIHJldHVybnMgLTEgaWYgbm8gY29ubmVjdGlvbiBpcyBhdmFpbGJsZS4KKyAgICAgKi8KKyAgICBpbnQgY29ubmVjdCgpIG92ZXJyaWRlOworCisgICAgLyoqCisgICAgICogT3BlbnMgYSBzb2NrZXQgYW5kIGJlZ2lucyBsaXN0ZW5pbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludCBSZXR1cm5zIDAgb24gc3VjY2Vzcy4KKyAgICAgKi8KKyAgICBpbnQgb3BlbigpIG92ZXJyaWRlOworCisgICAgLyoqCisgICAgICogQmxvY2tpbmcgY2FsbCB0byByZWFkIGRhdGEgZnJvbSB0aGUgY29ubmVjdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RkOjp2ZWN0b3I8dWludDhfdD4gU2VyaWFsaXplZCBwcm90b2J1ZiBkYXRhIHJlY2VpdmVkIGZyb20gZW11bGF0b3IuICBUaGlzIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICAgYW4gZW1wdHkgdmVjdG9yIGlmIHRoZSBjb25uZWN0aW9uIHdhcyBjbG9zZWQgb3Igc29tZSBvdGhlciBlcnJvciBvY2N1cnJlZC4KKyAgICAgKi8KKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiByZWFkKCkgb3ZlcnJpZGU7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZXMgYSBjb25uZWN0aW9uIGlmIGl0IGlzIG9wZW4uCisgICAgICovCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisKKyAgICAvKioKKyAgICAgKiBUcmFuc21pdHMgYSBzdHJpbmcgb2YgZGF0YSB0byB0aGUgZW11bGF0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0YSBTZXJpYWxpemVkIHByb3RvYnVmIGRhdGEgdG8gdHJhbnNtaXQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludCBOdW1iZXIgb2YgYnl0ZXMgdHJhbnNtaXR0ZWQsIG9yIC0xIGlmIGZhaWxlZC4KKyAgICAgKi8KKyAgICBpbnQgd3JpdGUoY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIGRhdGEpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGludCBtQ3VyU29ja0ZkOworICAgIHN0ZDo6YXRvbWljPGludD4gbUV4aXQ7CisgICAgc3RkOjptdXRleCBtTXV0ZXg7CisgICAgaW50IG1Tb2NrRmQ7Cit9OworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Tb2NrZXRDb21tX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvVmVoaWNsZUVtdWxhdG9yLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9WZWhpY2xlRW11bGF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4Y2I3NDMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvVmVoaWNsZUVtdWxhdG9yLmNwcApAQCAtMCwwICsxLDM2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgIlZlaGljbGVFbXVsYXRvcl92Ml8wIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL3Byb3BlcnRpZXMuaD4KKyNpbmNsdWRlIDx1dGlscy9TeXN0ZW1DbG9jay5oPgorCisjaW5jbHVkZSA8dmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oPgorCisjaW5jbHVkZSAiUGlwZUNvbW0uaCIKKyNpbmNsdWRlICJTb2NrZXRDb21tLmgiCisKKyNpbmNsdWRlICJWZWhpY2xlRW11bGF0b3IuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCitzdGQ6OnVuaXF1ZV9wdHI8Q29tbUJhc2U+IENvbW1GYWN0b3J5OjpjcmVhdGUoKSB7CisgICAgYm9vbCBpc0VtdWxhdG9yID0gYW5kcm9pZDo6YmFzZTo6R2V0Qm9vbFByb3BlcnR5KCJyby5rZXJuZWwucWVtdSIsIGZhbHNlKTsKKworICAgIGlmIChpc0VtdWxhdG9yKSB7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBpcGVDb21tPigpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNvY2tldENvbW0+KCk7CisgICAgfQorfQorCitWZWhpY2xlRW11bGF0b3I6On5WZWhpY2xlRW11bGF0b3IoKSB7CisgICAgbUV4aXQgPSB0cnVlOyAgIC8vIE5vdGlmeSB0aHJlYWQgdG8gZmluaXNoIGFuZCB3YWl0IGZvciBpdCB0byB0ZXJtaW5hdGUuCisgICAgbUNvbW0tPnN0b3AoKTsgIC8vIENsb3NlIGVtdWxhdG9yIHNvY2tldCBpZiBpdCBpcyBvcGVuLgorICAgIGlmIChtVGhyZWFkLmpvaW5hYmxlKCkpIG1UaHJlYWQuam9pbigpOworfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6ZG9TZXRWYWx1ZUZyb21DbGllbnQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSB7CisgICAgZW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSBtc2c7CisgICAgZW11bGF0b3I6OlZlaGljbGVQcm9wVmFsdWUgKnZhbCA9IG1zZy5hZGRfdmFsdWUoKTsKKyAgICBwb3B1bGF0ZVByb3RvVmVoaWNsZVByb3BWYWx1ZSh2YWwsICZwcm9wVmFsdWUpOworICAgIG1zZy5zZXRfc3RhdHVzKGVtdWxhdG9yOjpSRVNVTFRfT0spOworICAgIG1zZy5zZXRfbXNnX3R5cGUoZW11bGF0b3I6OlNFVF9QUk9QRVJUWV9BU1lOQyk7CisgICAgdHhNc2cobXNnKTsKK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OmRvR2V0Q29uZmlnKFZlaGljbGVFbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiByeE1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgcmVzcE1zZykgeworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBjb25maWdzID0gbUhhbC0+bGlzdFByb3BlcnRpZXMoKTsKKyAgICBlbXVsYXRvcjo6VmVoaWNsZVByb3BHZXQgZ2V0UHJvcCA9IHJ4TXNnLnByb3AoMCk7CisKKyAgICByZXNwTXNnLnNldF9tc2dfdHlwZShlbXVsYXRvcjo6R0VUX0NPTkZJR19SRVNQKTsKKyAgICByZXNwTXNnLnNldF9zdGF0dXMoZW11bGF0b3I6OkVSUk9SX0lOVkFMSURfUFJPUEVSVFkpOworCisgICAgZm9yIChhdXRvJiBjb25maWcgOiBjb25maWdzKSB7CisgICAgICAgIC8vIEZpbmQgdGhlIGNvbmZpZyB3ZSBhcmUgbG9va2luZyBmb3IKKyAgICAgICAgaWYgKGNvbmZpZy5wcm9wID09IGdldFByb3AucHJvcCgpKSB7CisgICAgICAgICAgICBlbXVsYXRvcjo6VmVoaWNsZVByb3BDb25maWcqIHByb3RvQ2ZnID0gcmVzcE1zZy5hZGRfY29uZmlnKCk7CisgICAgICAgICAgICBwb3B1bGF0ZVByb3RvVmVoaWNsZUNvbmZpZyhwcm90b0NmZywgY29uZmlnKTsKKyAgICAgICAgICAgIHJlc3BNc2cuc2V0X3N0YXR1cyhlbXVsYXRvcjo6UkVTVUxUX09LKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6ZG9HZXRDb25maWdBbGwoVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIC8qIHJ4TXNnICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVFbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKSB7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGNvbmZpZ3MgPSBtSGFsLT5saXN0UHJvcGVydGllcygpOworCisgICAgcmVzcE1zZy5zZXRfbXNnX3R5cGUoZW11bGF0b3I6OkdFVF9DT05GSUdfQUxMX1JFU1ApOworICAgIHJlc3BNc2cuc2V0X3N0YXR1cyhlbXVsYXRvcjo6UkVTVUxUX09LKTsKKworICAgIGZvciAoYXV0byYgY29uZmlnIDogY29uZmlncykgeworICAgICAgICBlbXVsYXRvcjo6VmVoaWNsZVByb3BDb25maWcqIHByb3RvQ2ZnID0gcmVzcE1zZy5hZGRfY29uZmlnKCk7CisgICAgICAgIHBvcHVsYXRlUHJvdG9WZWhpY2xlQ29uZmlnKHByb3RvQ2ZnLCBjb25maWcpOworICAgIH0KK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OmRvR2V0UHJvcGVydHkoVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHJ4TXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpICB7CisgICAgaW50MzJfdCBhcmVhSWQgPSAwOworICAgIGVtdWxhdG9yOjpWZWhpY2xlUHJvcEdldCBnZXRQcm9wID0gcnhNc2cucHJvcCgwKTsKKyAgICBpbnQzMl90IHByb3BJZCA9IGdldFByb3AucHJvcCgpOworICAgIGVtdWxhdG9yOjpTdGF0dXMgc3RhdHVzID0gZW11bGF0b3I6OkVSUk9SX0lOVkFMSURfUFJPUEVSVFk7CisKKyAgICByZXNwTXNnLnNldF9tc2dfdHlwZShlbXVsYXRvcjo6R0VUX1BST1BFUlRZX1JFU1ApOworCisgICAgaWYgKGdldFByb3AuaGFzX2FyZWFfaWQoKSkgeworICAgICAgICBhcmVhSWQgPSBnZXRQcm9wLmFyZWFfaWQoKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIFZlaGljbGVQcm9wVmFsdWUgcmVxdWVzdCA9IHsgLnByb3AgPSBwcm9wSWQsIC5hcmVhSWQgPSBhcmVhSWQgfTsKKyAgICAgICAgU3RhdHVzQ29kZSBoYWxTdGF0dXM7CisgICAgICAgIGF1dG8gdmFsID0gbUhhbC0+Z2V0KHJlcXVlc3QsICZoYWxTdGF0dXMpOworICAgICAgICBpZiAodmFsICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIGVtdWxhdG9yOjpWZWhpY2xlUHJvcFZhbHVlKiBwcm90b1ZhbCA9IHJlc3BNc2cuYWRkX3ZhbHVlKCk7CisgICAgICAgICAgICBwb3B1bGF0ZVByb3RvVmVoaWNsZVByb3BWYWx1ZShwcm90b1ZhbCwgdmFsLmdldCgpKTsKKyAgICAgICAgICAgIHN0YXR1cyA9IGVtdWxhdG9yOjpSRVNVTFRfT0s7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXNwTXNnLnNldF9zdGF0dXMoc3RhdHVzKTsKK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OmRvR2V0UHJvcGVydHlBbGwoVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIC8qIHJ4TXNnICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpICB7CisgICAgcmVzcE1zZy5zZXRfbXNnX3R5cGUoZW11bGF0b3I6OkdFVF9QUk9QRVJUWV9BTExfUkVTUCk7CisgICAgcmVzcE1zZy5zZXRfc3RhdHVzKGVtdWxhdG9yOjpSRVNVTFRfT0spOworCisgICAgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHByb3AgOiBtSGFsLT5nZXRBbGxQcm9wZXJ0aWVzKCkpIHsKKyAgICAgICAgICAgIGVtdWxhdG9yOjpWZWhpY2xlUHJvcFZhbHVlKiBwcm90b1ZhbCA9IHJlc3BNc2cuYWRkX3ZhbHVlKCk7CisgICAgICAgICAgICBwb3B1bGF0ZVByb3RvVmVoaWNsZVByb3BWYWx1ZShwcm90b1ZhbCwgJnByb3ApOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6ZG9TZXRQcm9wZXJ0eShWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgcnhNc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgcmVzcE1zZykgeworICAgIGVtdWxhdG9yOjpWZWhpY2xlUHJvcFZhbHVlIHByb3RvVmFsID0gcnhNc2cudmFsdWUoMCk7CisgICAgVmVoaWNsZVByb3BWYWx1ZSB2YWwgPSB7CisgICAgICAgIC5wcm9wID0gcHJvdG9WYWwucHJvcCgpLAorICAgICAgICAuYXJlYUlkID0gcHJvdG9WYWwuYXJlYV9pZCgpLAorICAgICAgICAudGltZXN0YW1wID0gZWxhcHNlZFJlYWx0aW1lTmFubygpLAorICAgIH07CisKKyAgICByZXNwTXNnLnNldF9tc2dfdHlwZShlbXVsYXRvcjo6U0VUX1BST1BFUlRZX1JFU1ApOworCisgICAgLy8gQ29weSB2YWx1ZSBkYXRhIGlmIGl0IGlzIHNldC4gIFRoaXMgYXV0b21hdGljYWxseSBoYW5kbGVzIGNvbXBsZXggZGF0YSB0eXBlcyBpZiBuZWVkZWQuCisgICAgaWYgKHByb3RvVmFsLmhhc19zdHJpbmdfdmFsdWUoKSkgeworICAgICAgICB2YWwudmFsdWUuc3RyaW5nVmFsdWUgPSBwcm90b1ZhbC5zdHJpbmdfdmFsdWUoKS5jX3N0cigpOworICAgIH0KKworICAgIGlmIChwcm90b1ZhbC5oYXNfYnl0ZXNfdmFsdWUoKSkgeworICAgICAgICB2YWwudmFsdWUuYnl0ZXMgPSBzdGQ6OnZlY3Rvcjx1aW50OF90PiB7IHByb3RvVmFsLmJ5dGVzX3ZhbHVlKCkuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b1ZhbC5ieXRlc192YWx1ZSgpLmVuZCgpIH07CisgICAgfQorCisgICAgaWYgKHByb3RvVmFsLmludDMyX3ZhbHVlc19zaXplKCkgPiAwKSB7CisgICAgICAgIHZhbC52YWx1ZS5pbnQzMlZhbHVlcyA9IHN0ZDo6dmVjdG9yPGludDMyX3Q+IHsgcHJvdG9WYWwuaW50MzJfdmFsdWVzKCkuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b1ZhbC5pbnQzMl92YWx1ZXMoKS5lbmQoKSB9OworICAgIH0KKworICAgIGlmIChwcm90b1ZhbC5pbnQ2NF92YWx1ZXNfc2l6ZSgpID4gMCkgeworICAgICAgICB2YWwudmFsdWUuaW50NjRWYWx1ZXMgPSBzdGQ6OnZlY3RvcjxpbnQ2NF90PiB7IHByb3RvVmFsLmludDY0X3ZhbHVlcygpLmJlZ2luKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9WYWwuaW50NjRfdmFsdWVzKCkuZW5kKCkgfTsKKyAgICB9CisKKyAgICBpZiAocHJvdG9WYWwuZmxvYXRfdmFsdWVzX3NpemUoKSA+IDApIHsKKyAgICAgICAgdmFsLnZhbHVlLmZsb2F0VmFsdWVzID0gc3RkOjp2ZWN0b3I8ZmxvYXQ+IHsgcHJvdG9WYWwuZmxvYXRfdmFsdWVzKCkuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9WYWwuZmxvYXRfdmFsdWVzKCkuZW5kKCkgfTsKKyAgICB9CisKKyAgICBib29sIGhhbFJlcyA9IG1IYWwtPnNldFByb3BlcnR5RnJvbVZlaGljbGUodmFsKTsKKyAgICByZXNwTXNnLnNldF9zdGF0dXMoaGFsUmVzID8gZW11bGF0b3I6OlJFU1VMVF9PSyA6IGVtdWxhdG9yOjpFUlJPUl9JTlZBTElEX1BST1BFUlRZKTsKK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OnR4TXNnKGVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHR4TXNnKSB7CisgICAgaW50IG51bUJ5dGVzID0gdHhNc2cuQnl0ZVNpemUoKTsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBtc2coc3RhdGljX2Nhc3Q8c2l6ZV90PihudW1CeXRlcykpOworCisgICAgaWYgKCF0eE1zZy5TZXJpYWxpemVUb0FycmF5KG1zZy5kYXRhKCksIHN0YXRpY19jYXN0PGludDMyX3Q+KG1zZy5zaXplKCkpKSkgeworICAgICAgICBBTE9HRSgiJXM6IFNlcmlhbGl6ZVRvU3RyaW5nIGZhaWxlZCEiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobUV4aXQpIHsKKyAgICAgICAgQUxPR1coIiVzOiB1bmFibGUgdG8gdHJhbnNtaXQgYSBtZXNzYWdlLCBjb25uZWN0aW9uIGNsb3NlZCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFNlbmQgdGhlIG1lc3NhZ2UKKyAgICBpbnQgcmV0VmFsID0gbUNvbW0tPndyaXRlKG1zZyk7CisgICAgaWYgKHJldFZhbCA8IDApIHsKKyAgICAgICAgQUxPR0UoIiVzOiBGYWlsZWQgdG8gdHggbWVzc2FnZTogcmV0dmFsPSVkLCBlcnJubz0lZCIsIF9fZnVuY19fLCByZXRWYWwsIGVycm5vKTsKKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjpwYXJzZVJ4UHJvdG9CdWYoc3RkOjp2ZWN0b3I8dWludDhfdD4mIG1zZykgeworICAgIGVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UgcnhNc2c7CisgICAgZW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSByZXNwTXNnOworCisgICAgaWYgKHJ4TXNnLlBhcnNlRnJvbUFycmF5KG1zZy5kYXRhKCksIHN0YXRpY19jYXN0PGludDMyX3Q+KG1zZy5zaXplKCkpKSkgeworICAgICAgICBzd2l0Y2ggKHJ4TXNnLm1zZ190eXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgZW11bGF0b3I6OkdFVF9DT05GSUdfQ01EOgorICAgICAgICAgICAgICAgIGRvR2V0Q29uZmlnKHJ4TXNnLCByZXNwTXNnKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgZW11bGF0b3I6OkdFVF9DT05GSUdfQUxMX0NNRDoKKyAgICAgICAgICAgICAgICBkb0dldENvbmZpZ0FsbChyeE1zZywgcmVzcE1zZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGVtdWxhdG9yOjpHRVRfUFJPUEVSVFlfQ01EOgorICAgICAgICAgICAgICAgIGRvR2V0UHJvcGVydHkocnhNc2csIHJlc3BNc2cpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBlbXVsYXRvcjo6R0VUX1BST1BFUlRZX0FMTF9DTUQ6CisgICAgICAgICAgICAgICAgZG9HZXRQcm9wZXJ0eUFsbChyeE1zZywgcmVzcE1zZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGVtdWxhdG9yOjpTRVRfUFJPUEVSVFlfQ01EOgorICAgICAgICAgICAgICAgIGRvU2V0UHJvcGVydHkocnhNc2csIHJlc3BNc2cpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBBTE9HVygiJXM6IFVua25vd24gbWVzc2FnZSByZWNlaXZlZCwgdHlwZSA9ICVkIiwgX19mdW5jX18sIHJ4TXNnLm1zZ190eXBlKCkpOworICAgICAgICAgICAgICAgIHJlc3BNc2cuc2V0X3N0YXR1cyhlbXVsYXRvcjo6RVJST1JfVU5JTVBMRU1FTlRFRF9DTUQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2VuZCB0aGUgcmVwbHkKKyAgICAgICAgdHhNc2cocmVzcE1zZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoIiVzOiBQYXJzZUZyb21TdHJpbmcoKSBmYWlsZWQuIG1zZ1NpemU9JWQiLCBfX2Z1bmNfXywgc3RhdGljX2Nhc3Q8aW50Pihtc2cuc2l6ZSgpKSk7CisgICAgfQorfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6cG9wdWxhdGVQcm90b1ZlaGljbGVDb25maWcoZW11bGF0b3I6OlZlaGljbGVQcm9wQ29uZmlnKiBwcm90b0NmZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgY2ZnKSB7CisgICAgcHJvdG9DZmctPnNldF9wcm9wKGNmZy5wcm9wKTsKKyAgICBwcm90b0NmZy0+c2V0X2FjY2Vzcyh0b0ludChjZmcuYWNjZXNzKSk7CisgICAgcHJvdG9DZmctPnNldF9jaGFuZ2VfbW9kZSh0b0ludChjZmcuY2hhbmdlTW9kZSkpOworICAgIHByb3RvQ2ZnLT5zZXRfdmFsdWVfdHlwZSh0b0ludChnZXRQcm9wVHlwZShjZmcucHJvcCkpKTsKKworICAgIGlmICghaXNHbG9iYWxQcm9wKGNmZy5wcm9wKSkgeworICAgICAgICBwcm90b0NmZy0+c2V0X3N1cHBvcnRlZF9hcmVhcyhjZmcuc3VwcG9ydGVkQXJlYXMpOworICAgIH0KKworICAgIGZvciAoYXV0byYgY29uZmlnRWxlbWVudCA6IGNmZy5jb25maWdBcnJheSkgeworICAgICAgICBwcm90b0NmZy0+YWRkX2NvbmZpZ19hcnJheShjb25maWdFbGVtZW50KTsKKyAgICB9CisKKyAgICBpZiAoY2ZnLmNvbmZpZ1N0cmluZy5zaXplKCkgPiAwKSB7CisgICAgICAgIHByb3RvQ2ZnLT5zZXRfY29uZmlnX3N0cmluZyhjZmcuY29uZmlnU3RyaW5nLmNfc3RyKCksIGNmZy5jb25maWdTdHJpbmcuc2l6ZSgpKTsKKyAgICB9CisKKyAgICAvLyBQb3B1bGF0ZSB0aGUgbWluL21heCB2YWx1ZXMgYmFzZWQgb24gcHJvcGVydHkgdHlwZQorICAgIHN3aXRjaCAoZ2V0UHJvcFR5cGUoY2ZnLnByb3ApKSB7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6U1RSSU5HOgorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJPT0xFQU46CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzJfVkVDOgorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUX1ZFQzoKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpCWVRFUzoKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpDT01QTEVYOgorICAgICAgICAgICAgLy8gRG8gbm90aGluZy4gIFRoZXNlIHR5cGVzIGRvbid0IGhhdmUgbWluL21heCB2YWx1ZXMKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDY0OgorICAgICAgICAgICAgaWYgKGNmZy5hcmVhQ29uZmlncy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgZW11bGF0b3I6OlZlaGljbGVBcmVhQ29uZmlnKiBhQ2ZnID0gcHJvdG9DZmctPmFkZF9hcmVhX2NvbmZpZ3MoKTsKKyAgICAgICAgICAgICAgICBhQ2ZnLT5zZXRfbWluX2ludDY0X3ZhbHVlKGNmZy5hcmVhQ29uZmlnc1swXS5taW5JbnQ2NFZhbHVlKTsKKyAgICAgICAgICAgICAgICBhQ2ZnLT5zZXRfbWF4X2ludDY0X3ZhbHVlKGNmZy5hcmVhQ29uZmlnc1swXS5tYXhJbnQ2NFZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUOgorICAgICAgICAgICAgaWYgKGNmZy5hcmVhQ29uZmlncy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgZW11bGF0b3I6OlZlaGljbGVBcmVhQ29uZmlnKiBhQ2ZnID0gcHJvdG9DZmctPmFkZF9hcmVhX2NvbmZpZ3MoKTsKKyAgICAgICAgICAgICAgICBhQ2ZnLT5zZXRfbWluX2Zsb2F0X3ZhbHVlKGNmZy5hcmVhQ29uZmlnc1swXS5taW5GbG9hdFZhbHVlKTsKKyAgICAgICAgICAgICAgICBhQ2ZnLT5zZXRfbWF4X2Zsb2F0X3ZhbHVlKGNmZy5hcmVhQ29uZmlnc1swXS5tYXhGbG9hdFZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyOgorICAgICAgICAgICAgaWYgKGNmZy5hcmVhQ29uZmlncy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgZW11bGF0b3I6OlZlaGljbGVBcmVhQ29uZmlnKiBhQ2ZnID0gcHJvdG9DZmctPmFkZF9hcmVhX2NvbmZpZ3MoKTsKKyAgICAgICAgICAgICAgICBhQ2ZnLT5zZXRfbWluX2ludDMyX3ZhbHVlKGNmZy5hcmVhQ29uZmlnc1swXS5taW5JbnQzMlZhbHVlKTsKKyAgICAgICAgICAgICAgICBhQ2ZnLT5zZXRfbWF4X2ludDMyX3ZhbHVlKGNmZy5hcmVhQ29uZmlnc1swXS5tYXhJbnQzMlZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR1coIiVzOiBVbmtub3duIHByb3BlcnR5IHR5cGU6ICAweCV4IiwgX19mdW5jX18sIHRvSW50KGdldFByb3BUeXBlKGNmZy5wcm9wKSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcHJvdG9DZmctPnNldF9taW5fc2FtcGxlX3JhdGUoY2ZnLm1pblNhbXBsZVJhdGUpOworICAgIHByb3RvQ2ZnLT5zZXRfbWF4X3NhbXBsZV9yYXRlKGNmZy5tYXhTYW1wbGVSYXRlKTsKK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OnBvcHVsYXRlUHJvdG9WZWhpY2xlUHJvcFZhbHVlKGVtdWxhdG9yOjpWZWhpY2xlUHJvcFZhbHVlKiBwcm90b1ZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlKiB2YWwpIHsKKyAgICBwcm90b1ZhbC0+c2V0X3Byb3AodmFsLT5wcm9wKTsKKyAgICBwcm90b1ZhbC0+c2V0X3ZhbHVlX3R5cGUodG9JbnQoZ2V0UHJvcFR5cGUodmFsLT5wcm9wKSkpOworICAgIHByb3RvVmFsLT5zZXRfdGltZXN0YW1wKHZhbC0+dGltZXN0YW1wKTsKKyAgICBwcm90b1ZhbC0+c2V0X2FyZWFfaWQodmFsLT5hcmVhSWQpOworCisgICAgLy8gQ29weSB2YWx1ZSBkYXRhIGlmIGl0IGlzIHNldC4KKyAgICAvLyAgLSBmb3IgYnl0ZXMgYW5kIHN0cmluZ3MsIHRoaXMgaXMgaW5kaWNhdGVkIGJ5IHNpemUgPiAwCisgICAgLy8gIC0gZm9yIGludDMyLCBpbnQ2NCwgYW5kIGZsb2F0LCBjb3B5IHRoZSB2YWx1ZXMgaWYgdmVjdG9ycyBoYXZlIGRhdGEKKyAgICBpZiAodmFsLT52YWx1ZS5zdHJpbmdWYWx1ZS5zaXplKCkgPiAwKSB7CisgICAgICAgIHByb3RvVmFsLT5zZXRfc3RyaW5nX3ZhbHVlKHZhbC0+dmFsdWUuc3RyaW5nVmFsdWUuY19zdHIoKSwgdmFsLT52YWx1ZS5zdHJpbmdWYWx1ZS5zaXplKCkpOworICAgIH0KKworICAgIGlmICh2YWwtPnZhbHVlLmJ5dGVzLnNpemUoKSA+IDApIHsKKyAgICAgICAgcHJvdG9WYWwtPnNldF9ieXRlc192YWx1ZSh2YWwtPnZhbHVlLmJ5dGVzLmRhdGEoKSwgdmFsLT52YWx1ZS5ieXRlcy5zaXplKCkpOworICAgIH0KKworICAgIGZvciAoYXV0byYgaW50MzJWYWx1ZSA6IHZhbC0+dmFsdWUuaW50MzJWYWx1ZXMpIHsKKyAgICAgICAgcHJvdG9WYWwtPmFkZF9pbnQzMl92YWx1ZXMoaW50MzJWYWx1ZSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiBpbnQ2NFZhbHVlIDogdmFsLT52YWx1ZS5pbnQ2NFZhbHVlcykgeworICAgICAgICBwcm90b1ZhbC0+YWRkX2ludDY0X3ZhbHVlcyhpbnQ2NFZhbHVlKTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIGZsb2F0VmFsdWUgOiB2YWwtPnZhbHVlLmZsb2F0VmFsdWVzKSB7CisgICAgICAgIHByb3RvVmFsLT5hZGRfZmxvYXRfdmFsdWVzKGZsb2F0VmFsdWUpOworICAgIH0KK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OnJ4TXNnKCkgeworICAgIHdoaWxlICghbUV4aXQpIHsKKyAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gbXNnID0gbUNvbW0tPnJlYWQoKTsKKworICAgICAgICBpZiAobXNnLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgIC8vIFJlY2VpdmVkIGEgbWVzc2FnZS4KKyAgICAgICAgICAgIHBhcnNlUnhQcm90b0J1Zihtc2cpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gY29ubmVjdGlvbiBpcyBjbG9zZWQKKyAgICAgICAgICAgIEFMT0dEKCIlczogbXNnU2l6ZT0lenUiLCBfX2Z1bmNfXywgbXNnLnNpemUoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OnJ4VGhyZWFkKCkgeworICAgIGlmIChtRXhpdCkgcmV0dXJuOworCisgICAgaW50IHJldFZhbCA9IG1Db21tLT5vcGVuKCk7CisgICAgaWYgKHJldFZhbCAhPSAwKSBtRXhpdCA9IHRydWU7CisKKyAgICAvLyBDb21tcyBhcmUgcHJvcGVybHkgb3BlbmVkCisgICAgd2hpbGUgKCFtRXhpdCkgeworICAgICAgICByZXRWYWwgPSBtQ29tbS0+Y29ubmVjdCgpOworCisgICAgICAgIGlmIChyZXRWYWwgPj0gMCkgeworICAgICAgICAgICAgcnhNc2coKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIGV2ZXJ5IDEwMG1zIGZvciBhIG5ldyBjb25uZWN0aW9uCisgICAgICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMCkpOworICAgIH0KK30KKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvVmVoaWNsZUVtdWxhdG9yLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvVmVoaWNsZUVtdWxhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE4Y2ZlMgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9WZWhpY2xlRW11bGF0b3IuaApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1ZlaGljbGVIYWxFbXVsYXRvcl9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfVmVoaWNsZUhhbEVtdWxhdG9yX0hfCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHRocmVhZD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlICJ2aGFsX3YyXzAvVmVoaWNsZUhhbC5oIgorCisjaW5jbHVkZSAiQ29tbUJhc2UuaCIKKyNpbmNsdWRlICJWZWhpY2xlSGFsUHJvdG8ucGIuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCitjbGFzcyBWZWhpY2xlRW11bGF0b3I7ICAvLyBGb3J3YXJkIGRlY2xhcmF0aW9uLgorCisvKiogRXh0ZW5zaW9uIG9mIFZlaGljbGVIYWwgdGhhdCB1c2VkIGJ5IFZlaGljbGVFbXVsYXRvci4gKi8KK2NsYXNzIEVtdWxhdGVkVmVoaWNsZUhhbElmYWNlIDogcHVibGljIFZlaGljbGVIYWwgeworcHVibGljOgorICAgIHZpcnR1YWwgYm9vbCBzZXRQcm9wZXJ0eUZyb21WZWhpY2xlKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgPSAwOworICAgIHZpcnR1YWwgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gZ2V0QWxsUHJvcGVydGllcygpIGNvbnN0ID0gMDsKKworICAgIHZvaWQgcmVnaXN0ZXJFbXVsYXRvcihWZWhpY2xlRW11bGF0b3IqIGVtdWxhdG9yKSB7CisgICAgICAgIEFMT0dJKCIlcywgZW11bGF0b3I6ICVwIiwgX19mdW5jX18sIGVtdWxhdG9yKTsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGcobUVtdWxhdG9yTG9jayk7CisgICAgICAgIG1FbXVsYXRvciA9IGVtdWxhdG9yOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFZlaGljbGVFbXVsYXRvciogZ2V0RW11bGF0b3JPckRpZSgpIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGcobUVtdWxhdG9yTG9jayk7CisgICAgICAgIGlmIChtRW11bGF0b3IgPT0gbnVsbHB0cikgYWJvcnQoKTsKKyAgICAgICAgcmV0dXJuIG1FbXVsYXRvcjsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgbXV0YWJsZSBzdGQ6Om11dGV4IG1FbXVsYXRvckxvY2s7CisgICAgVmVoaWNsZUVtdWxhdG9yKiBtRW11bGF0b3I7Cit9OworCitzdHJ1Y3QgQ29tbUZhY3RvcnkgeworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q29tbUJhc2U+IGNyZWF0ZSgpOworfTsKKworLyoqCisgKiBFbXVsYXRlcyB2ZWhpY2xlIGJ5IHByb3ZpZGluZyBjb250cm9sbGluZyBpbnRlcmZhY2UgZnJvbSBob3N0IHNpZGUgZWl0aGVyIHRocm91Z2ggQURCIG9yIFBpcGUuCisgKi8KK2NsYXNzIFZlaGljbGVFbXVsYXRvciB7CitwdWJsaWM6CisgICAgVmVoaWNsZUVtdWxhdG9yKEVtdWxhdGVkVmVoaWNsZUhhbElmYWNlKiBoYWwsCisgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21tQmFzZT4gY29tbSA9IENvbW1GYWN0b3J5OjpjcmVhdGUoKSkKKyAgICAgICAgICAgIDogbUhhbCB7IGhhbCB9LAorICAgICAgICAgICAgICBtQ29tbShjb21tLnJlbGVhc2UoKSksCisgICAgICAgICAgICAgIG1UaHJlYWQgeyAmVmVoaWNsZUVtdWxhdG9yOjpyeFRocmVhZCwgdGhpc30geworICAgICAgICBtSGFsLT5yZWdpc3RlckVtdWxhdG9yKHRoaXMpOworICAgIH0KKyAgICB2aXJ0dWFsIH5WZWhpY2xlRW11bGF0b3IoKTsKKworICAgIHZvaWQgZG9TZXRWYWx1ZUZyb21DbGllbnQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBFbXVsYXRvck1lc3NhZ2UgPSBlbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlOworCisgICAgdm9pZCBkb0dldENvbmZpZyhFbXVsYXRvck1lc3NhZ2UmIHJ4TXNnLCBFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpOworICAgIHZvaWQgZG9HZXRDb25maWdBbGwoRW11bGF0b3JNZXNzYWdlJiByeE1zZywgRW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKTsKKyAgICB2b2lkIGRvR2V0UHJvcGVydHkoRW11bGF0b3JNZXNzYWdlJiByeE1zZywgRW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKTsKKyAgICB2b2lkIGRvR2V0UHJvcGVydHlBbGwoRW11bGF0b3JNZXNzYWdlJiByeE1zZywgRW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKTsKKyAgICB2b2lkIGRvU2V0UHJvcGVydHkoRW11bGF0b3JNZXNzYWdlJiByeE1zZywgRW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKTsKKyAgICB2b2lkIHR4TXNnKGVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHR4TXNnKTsKKyAgICB2b2lkIHBhcnNlUnhQcm90b0J1ZihzdGQ6OnZlY3Rvcjx1aW50OF90PiYgbXNnKTsKKyAgICB2b2lkIHBvcHVsYXRlUHJvdG9WZWhpY2xlQ29uZmlnKGVtdWxhdG9yOjpWZWhpY2xlUHJvcENvbmZpZyogcHJvdG9DZmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgY2ZnKTsKKyAgICB2b2lkIHBvcHVsYXRlUHJvdG9WZWhpY2xlUHJvcFZhbHVlKGVtdWxhdG9yOjpWZWhpY2xlUHJvcFZhbHVlKiBwcm90b1ZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUqIHZhbCk7CisgICAgdm9pZCByeE1zZygpOworICAgIHZvaWQgcnhUaHJlYWQoKTsKKworcHJpdmF0ZToKKyAgICBzdGQ6OmF0b21pYzxib29sPiBtRXhpdCB7IGZhbHNlIH07CisgICAgRW11bGF0ZWRWZWhpY2xlSGFsSWZhY2UqIG1IYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1CYXNlPiBtQ29tbTsKKyAgICBzdGQ6OnRocmVhZCBtVGhyZWFkOworfTsKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfVmVoaWNsZUhhbEVtdWxhdG9yX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvcHJvdG8vVmVoaWNsZUhhbFByb3RvLnByb3RvIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL3Byb3RvL1ZlaGljbGVIYWxQcm90by5wcm90bwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjQzM2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL3Byb3RvL1ZlaGljbGVIYWxQcm90by5wcm90bwpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3N5bnRheCA9ICJwcm90bzIiOworb3B0aW9uIG9wdGltaXplX2ZvciA9IExJVEVfUlVOVElNRTsKKworcGFja2FnZSBlbXVsYXRvcjsKKworLy8gQ01EIG1lc3NhZ2VzIGFyZSBmcm9tIHdvcmtzdGF0aW9uIC0tPiBWSEFMCisvLyBSRVNQIG1lc3NhZ2VzIGFyZSBmcm9tIFZIQUwgLS0+IHdvcmtzdGF0aW9uCitlbnVtIE1zZ1R5cGUgeworICAgIEdFVF9DT05GSUdfQ01EICAgICAgICAgICAgICAgICAgICAgID0gMDsKKyAgICBHRVRfQ09ORklHX1JFU1AgICAgICAgICAgICAgICAgICAgICA9IDE7CisgICAgR0VUX0NPTkZJR19BTExfQ01EICAgICAgICAgICAgICAgICAgPSAyOworICAgIEdFVF9DT05GSUdfQUxMX1JFU1AgICAgICAgICAgICAgICAgID0gMzsKKyAgICBHRVRfUFJPUEVSVFlfQ01EICAgICAgICAgICAgICAgICAgICA9IDQ7CisgICAgR0VUX1BST1BFUlRZX1JFU1AgICAgICAgICAgICAgICAgICAgPSA1OworICAgIEdFVF9QUk9QRVJUWV9BTExfQ01EICAgICAgICAgICAgICAgID0gNjsKKyAgICBHRVRfUFJPUEVSVFlfQUxMX1JFU1AgICAgICAgICAgICAgICA9IDc7CisgICAgU0VUX1BST1BFUlRZX0NNRCAgICAgICAgICAgICAgICAgICAgPSA4OworICAgIFNFVF9QUk9QRVJUWV9SRVNQICAgICAgICAgICAgICAgICAgID0gOTsKKyAgICBTRVRfUFJPUEVSVFlfQVNZTkMgICAgICAgICAgICAgICAgICA9IDEwOworfQorZW51bSBTdGF0dXMgeworICAgIFJFU1VMVF9PSyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMDsKKyAgICBFUlJPUl9VTktOT1dOICAgICAgICAgICAgICAgICAgICAgICA9IDE7CisgICAgRVJST1JfVU5JTVBMRU1FTlRFRF9DTUQgICAgICAgICAgICAgPSAyOworICAgIEVSUk9SX0lOVkFMSURfUFJPUEVSVFkgICAgICAgICAgICAgID0gMzsKKyAgICBFUlJPUl9JTlZBTElEX0FSRUFfSUQgICAgICAgICAgICAgICA9IDQ7CisgICAgRVJST1JfUFJPUEVSVFlfVU5JTklUSUFMSVpFRCAgICAgICAgPSA1OworICAgIEVSUk9SX1dSSVRFX09OTFlfUFJPUEVSVFkgICAgICAgICAgID0gNjsKKyAgICBFUlJPUl9NRU1PUllfQUxMT0NfRkFJTEVEICAgICAgICAgICA9IDc7CisgICAgRVJST1JfSU5WQUxJRF9PUEVSQVRJT04gICAgICAgICAgICAgPSA4OworfQorCittZXNzYWdlIFZlaGljbGVBcmVhQ29uZmlnIHsKKyAgICByZXF1aXJlZCBpbnQzMiAgYXJlYV9pZCAgICAgICAgICAgICA9IDE7CisgICAgb3B0aW9uYWwgc2ludDMyIG1pbl9pbnQzMl92YWx1ZSAgICAgPSAyOworICAgIG9wdGlvbmFsIHNpbnQzMiBtYXhfaW50MzJfdmFsdWUgICAgID0gMzsKKyAgICBvcHRpb25hbCBzaW50NjQgbWluX2ludDY0X3ZhbHVlICAgICA9IDQ7CisgICAgb3B0aW9uYWwgc2ludDY0IG1heF9pbnQ2NF92YWx1ZSAgICAgPSA1OworICAgIG9wdGlvbmFsIGZsb2F0ICBtaW5fZmxvYXRfdmFsdWUgICAgID0gNjsKKyAgICBvcHRpb25hbCBmbG9hdCAgbWF4X2Zsb2F0X3ZhbHVlICAgICA9IDc7Cit9CisKK21lc3NhZ2UgVmVoaWNsZVByb3BDb25maWcgeworICAgIHJlcXVpcmVkIGludDMyICAgICAgICAgICAgIHByb3AgICAgICAgICAgICAgICAgPSAxOworICAgIG9wdGlvbmFsIGludDMyICAgICAgICAgICAgIGFjY2VzcyAgICAgICAgICAgICAgPSAyOworICAgIG9wdGlvbmFsIGludDMyICAgICAgICAgICAgIGNoYW5nZV9tb2RlICAgICAgICAgPSAzOworICAgIG9wdGlvbmFsIGludDMyICAgICAgICAgICAgIHZhbHVlX3R5cGUgICAgICAgICAgPSA0OworICAgIG9wdGlvbmFsIGludDMyICAgICAgICAgICAgIHN1cHBvcnRlZF9hcmVhcyAgICAgPSA1OworICAgIHJlcGVhdGVkIFZlaGljbGVBcmVhQ29uZmlnIGFyZWFfY29uZmlncyAgICAgICAgPSA2OworICAgIG9wdGlvbmFsIGludDMyICAgICAgICAgICAgIGNvbmZpZ19mbGFncyAgICAgICAgPSA3OworICAgIHJlcGVhdGVkIGludDMyICAgICAgICAgICAgIGNvbmZpZ19hcnJheSAgICAgICAgPSA4OworICAgIG9wdGlvbmFsIHN0cmluZyAgICAgICAgICAgIGNvbmZpZ19zdHJpbmcgICAgICAgPSA5OworICAgIG9wdGlvbmFsIGZsb2F0ICAgICAgICAgICAgIG1pbl9zYW1wbGVfcmF0ZSAgICAgPSAxMDsKKyAgICBvcHRpb25hbCBmbG9hdCAgICAgICAgICAgICBtYXhfc2FtcGxlX3JhdGUgICAgID0gMTE7Cit9OworCittZXNzYWdlIFZlaGljbGVQcm9wVmFsdWUgeworICAgIC8vIGNvbW1vbiBkYXRhCisgICAgcmVxdWlyZWQgaW50MzIgIHByb3AgICAgICAgICAgICAgICAgPSAxOworICAgIG9wdGlvbmFsIGludDMyICB2YWx1ZV90eXBlICAgICAgICAgID0gMjsKKyAgICBvcHRpb25hbCBpbnQ2NCAgdGltZXN0YW1wICAgICAgICAgICA9IDM7ICAgIC8vIHJlcXVpcmVkIGZvciB2YWxpZCBkYXRhIGZyb20gSEFMLCBza2lwcGVkIGZvciBzZXQKKworICAgIC8vIHZhbHVlcworICAgIG9wdGlvbmFsIGludDMyICBhcmVhX2lkICAgICAgICAgICAgID0gNDsKKyAgICByZXBlYXRlZCBzaW50MzIgaW50MzJfdmFsdWVzICAgICAgICA9IDU7ICAgIC8vIHRoaXMgYWxzbyBjb3ZlcnMgYm9vbGVhbiB2YWx1ZS4KKyAgICByZXBlYXRlZCBzaW50NjQgaW50NjRfdmFsdWVzICAgICAgICA9IDY7CisgICAgcmVwZWF0ZWQgZmxvYXQgIGZsb2F0X3ZhbHVlcyAgICAgICAgPSA3OworICAgIG9wdGlvbmFsIHN0cmluZyBzdHJpbmdfdmFsdWUgICAgICAgID0gODsKKyAgICBvcHRpb25hbCBieXRlcyAgYnl0ZXNfdmFsdWUgICAgICAgICA9IDk7Cit9OworCisvLyBUaGlzIHN0cnVjdHVyZSBpcyB1c2VkIHRvIG5vdGlmeSB3aGF0IHZhbHVlcyB0byBnZXQgZnJvbSB0aGUgVmVoaWNsZSBIQUwKK21lc3NhZ2UgVmVoaWNsZVByb3BHZXQgeworICAgIHJlcXVpcmVkIGludDMyIHByb3AgICAgICAgICAgICAgICAgID0gMTsKKyAgICBvcHRpb25hbCBpbnQzMiBhcmVhX2lkICAgICAgICAgICAgICA9IDI7Cit9OworCittZXNzYWdlIEVtdWxhdG9yTWVzc2FnZSB7CisgICAgcmVxdWlyZWQgTXNnVHlwZSAgICAgICAgICAgbXNnX3R5cGUgPSAxOworICAgIG9wdGlvbmFsIFN0YXR1cyAgICAgICAgICAgIHN0YXR1cyAgID0gMjsgICAgLy8gT25seSBmb3IgUkVTUCBtZXNzYWdlcworICAgIHJlcGVhdGVkIFZlaGljbGVQcm9wR2V0ICAgIHByb3AgICAgID0gMzsgICAgLy8gUHJvdmlkZWQgZm9yIGdldENvbmZpZywgZ2V0UHJvcGVydHkgY29tbWFuZHMKKyAgICByZXBlYXRlZCBWZWhpY2xlUHJvcENvbmZpZyBjb25maWcgICA9IDQ7CisgICAgcmVwZWF0ZWQgVmVoaWNsZVByb3BWYWx1ZSAgdmFsdWUgICAgPSA1OworfTsKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9SZWN1cnJlbnRUaW1lcl90ZXN0LmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9SZWN1cnJlbnRUaW1lcl90ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmMxN2M2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1JlY3VycmVudFRpbWVyX3Rlc3QuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8dGhyZWFkPgorCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKworI2luY2x1ZGUgInZoYWxfdjJfMC9SZWN1cnJlbnRUaW1lci5oIgorCituYW1lc3BhY2UgeworCit1c2luZyBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHM7Cit1c2luZyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOworCisjZGVmaW5lIEFTU0VSVF9FUV9XSVRIX1RPTEVSQU5DRSh2YWwxLCB2YWwyLCB0b2xlcmFuY2UpIFwKK0FTU0VSVF9MRSh2YWwxIC0gdG9sZXJhbmNlLCB2YWwyKTsgXAorQVNTRVJUX0dFKHZhbDEgKyB0b2xlcmFuY2UsIHZhbDIpOyBcCisKKworVEVTVChSZWN1cnJlbnRUaW1lclRlc3QsIG9uZUludGVydmFsKSB7CisgICAgc3RkOjphdG9taWM8aW50NjRfdD4gY291bnRlciB7IDBMIH07CisgICAgYXV0byBjb3VudGVyUmVmID0gc3RkOjpyZWYoY291bnRlcik7CisgICAgUmVjdXJyZW50VGltZXIgdGltZXIoWyZjb3VudGVyUmVmXShjb25zdCBzdGQ6OnZlY3RvcjxpbnQzMl90PiYgY29va2llcykgeworICAgICAgICBBU1NFUlRfRVEoMXUsIGNvb2tpZXMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUX0VRKDB4ZGVhZCwgY29va2llcy5mcm9udCgpKTsKKyAgICAgICAgY291bnRlclJlZi5nZXQoKSsrOworICAgIH0pOworCisgICAgdGltZXIucmVnaXN0ZXJSZWN1cnJlbnRFdmVudChtaWxsaXNlY29uZHMoMSksIDB4ZGVhZCk7CisgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKG1pbGxpc2Vjb25kcygxMDApKTsKKyAgICBBU1NFUlRfRVFfV0lUSF9UT0xFUkFOQ0UoMTAwLCBjb3VudGVyLmxvYWQoKSwgMjApOworfQorCitURVNUKFJlY3VycmVudFRpbWVyVGVzdCwgbXVsdGlwbGVJbnRlcnZhbHMpIHsKKyAgICBzdGQ6OmF0b21pYzxpbnQ2NF90PiBjb3VudGVyMW1zIHsgMEwgfTsKKyAgICBzdGQ6OmF0b21pYzxpbnQ2NF90PiBjb3VudGVyNW1zIHsgMEwgfTsKKyAgICBhdXRvIGNvdW50ZXIxbXNSZWYgPSBzdGQ6OnJlZihjb3VudGVyMW1zKTsKKyAgICBhdXRvIGNvdW50ZXI1bXNSZWYgPSBzdGQ6OnJlZihjb3VudGVyNW1zKTsKKyAgICBSZWN1cnJlbnRUaW1lciB0aW1lcigKKyAgICAgICAgICAgIFsmY291bnRlcjFtc1JlZiwgJmNvdW50ZXI1bXNSZWZdKGNvbnN0IHN0ZDo6dmVjdG9yPGludDMyX3Q+JiBjb29raWVzKSB7CisgICAgICAgIGZvciAoaW50MzJfdCBjb29raWUgOiBjb29raWVzKSB7CisgICAgICAgICAgICBpZiAoY29va2llID09IDB4ZGVhZCkgeworICAgICAgICAgICAgICAgIGNvdW50ZXIxbXNSZWYuZ2V0KCkrKzsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY29va2llID09IDB4YmVlZikgeworICAgICAgICAgICAgICAgIGNvdW50ZXI1bXNSZWYuZ2V0KCkrKzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgRkFJTCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSk7CisKKyAgICB0aW1lci5yZWdpc3RlclJlY3VycmVudEV2ZW50KG1pbGxpc2Vjb25kcygxKSwgMHhkZWFkKTsKKyAgICB0aW1lci5yZWdpc3RlclJlY3VycmVudEV2ZW50KG1pbGxpc2Vjb25kcyg1KSwgMHhiZWVmKTsKKworICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihtaWxsaXNlY29uZHMoMTAwKSk7CisgICAgQVNTRVJUX0VRX1dJVEhfVE9MRVJBTkNFKDEwMCwgY291bnRlcjFtcy5sb2FkKCksIDIwKTsKKyAgICBBU1NFUlRfRVFfV0lUSF9UT0xFUkFOQ0UoMjAsIGNvdW50ZXI1bXMubG9hZCgpLCA1KTsKK30KKworfSAgLy8gYW5vbnltb3VzIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1N1YnNjcmlwdGlvbk1hbmFnZXJfdGVzdC5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvU3Vic2NyaXB0aW9uTWFuYWdlcl90ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Njg4ZGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1N1YnNjcmlwdGlvbk1hbmFnZXJfdGVzdC5jcHAKQEAgLTAsMCArMSwyMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKworI2luY2x1ZGUgInZoYWxfdjJfMC9TdWJzY3JpcHRpb25NYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJWZWhpY2xlSGFsVGVzdFV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ6OnBsYWNlaG9sZGVyczsKKworY2xhc3MgU3Vic2NyaXB0aW9uTWFuYWdlclRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKK3B1YmxpYzoKKyAgICBTdWJzY3JpcHRpb25NYW5hZ2VyVGVzdCgpIDogbWFuYWdlcigoW3RoaXNdKGludCB4KSB7IG9uUHJvcGVydHlVbnN1YnNjcmliZWQoeCk7IH0pKSB7fQorCisgICAgU3Vic2NyaXB0aW9uTWFuYWdlciBtYW5hZ2VyOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50MzJfdCBQUk9QMSA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50MzJfdCBQUk9QMiA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RElTUExBWV9CUklHSFRORVNTKTsKKworICAgIHNwPElWZWhpY2xlQ2FsbGJhY2s+IGNiMSA9IG5ldyBNb2NrZWRWZWhpY2xlQ2FsbGJhY2soKTsKKyAgICBzcDxJVmVoaWNsZUNhbGxiYWNrPiBjYjIgPSBuZXcgTW9ja2VkVmVoaWNsZUNhbGxiYWNrKCk7CisgICAgc3A8SVZlaGljbGVDYWxsYmFjaz4gY2IzID0gbmV3IE1vY2tlZFZlaGljbGVDYWxsYmFjaygpOworCisgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgbGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5ID0gLTE7CisgICAgfQorCisgICAgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4gc3Vic2NyVG9Qcm9wMSA9IHsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB7CisgICAgICAgICAgICAucHJvcElkID0gUFJPUDEsCisgICAgICAgICAgICAudmVoaWNsZUFyZWFzID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgIC5mbGFncyA9IFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4gc3Vic2NyVG9Qcm9wMiA9IHsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB7CisgICAgICAgICAgICAucHJvcElkID0gUFJPUDIsCisgICAgICAgICAgICAuZmxhZ3MgPSBTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UCisgICAgICAgIH0sCisgICAgfTsKKworICAgIGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+IHN1YnNjclRvUHJvcDFhbmQyID0geworICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHsKKyAgICAgICAgICAgIC5wcm9wSWQgPSBQUk9QMSwKKyAgICAgICAgICAgIC52ZWhpY2xlQXJlYXMgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgLmZsYWdzID0gU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVAorICAgICAgICB9LAorICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHsKKyAgICAgICAgICAgIC5wcm9wSWQgPSBQUk9QMiwKKyAgICAgICAgICAgIC5mbGFncyA9IFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgc3RhdGljIHN0ZDo6bGlzdDxzcDxJVmVoaWNsZUNhbGxiYWNrPj4gZXh0cmFjdENhbGxiYWNrcygKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6bGlzdDxzcDxIYWxDbGllbnQ+PiYgY2xpZW50cykgeworICAgICAgICBzdGQ6Omxpc3Q8c3A8SVZlaGljbGVDYWxsYmFjaz4+IGNhbGxiYWNrczsKKyAgICAgICAgZm9yIChhdXRvIGMgOiBjbGllbnRzKSB7CisgICAgICAgICAgICBjYWxsYmFja3MucHVzaF9iYWNrKGMtPmdldENhbGxiYWNrKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjYWxsYmFja3M7CisgICAgfQorCisgICAgc3RkOjpsaXN0PHNwPEhhbENsaWVudD4+IGNsaWVudHNUb1Byb3AxKCkgeworICAgICAgICByZXR1cm4gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cyhQUk9QMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OkRFRkFVTFQpOworICAgIH0KKworICAgIHN0ZDo6bGlzdDxzcDxIYWxDbGllbnQ+PiBjbGllbnRzVG9Qcm9wMigpIHsKKyAgICAgICAgcmV0dXJuIG1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoUFJPUDIsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpERUZBVUxUKTsKKyAgICB9CisKKyAgICB2b2lkIG9uUHJvcGVydHlVbnN1YnNjcmliZWQoaW50IHByb3BlcnR5SWQpIHsKKyAgICAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlcmUgYXJlIG5vIGNsaWVudHMgd2hvIHN1YnNjcmliZWQgdG8gcGFydGljdWxhciBwcm9wZXJ0eS4gVGhpcyBjYW4gaGFwcGVuCisgICAgICAgIC8vIGJlY2F1c2Ugb2YgZXhwbGljdCB1bnN1YnNjcmliZSBjYWxsIG9yIHdoZW4gY2xpZW50IChJVmVoaWNsZUNhbGxiYWNrKSB3YXMgZGlzY29ubmVjdGVkLgorICAgICAgICBsYXN0VW5zdWJzY3JpYmVkUHJvcGVydHkgPSBwcm9wZXJ0eUlkOworICAgIH0KKworICAgIHZvaWQgYXNzZXJ0T25Qcm9wZXJ0eVVuc3Vic2NyaWJlZE5vdENhbGxlZCgpIHsKKyAgICAgICAgQVNTRVJUX0VRKC0xLCBsYXN0VW5zdWJzY3JpYmVkUHJvcGVydHkpOworICAgIH0KKworICAgIHZvaWQgYXNzZXJ0TGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5KGludCBleHBlY3RlZFByb3BlcnR5SWQpIHsKKyAgICAgICAgQVNTRVJUX0VRKGV4cGVjdGVkUHJvcGVydHlJZCwgbGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5KTsKKyAgICAgICAgbGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5ID0gLTE7CisgICAgfQorCitwcml2YXRlOgorICAgIGludCBsYXN0VW5zdWJzY3JpYmVkUHJvcGVydHk7Cit9OworCisKK1RFU1RfRihTdWJzY3JpcHRpb25NYW5hZ2VyVGVzdCwgbXVsdGlwbGVDbGllbnRzKSB7CisgICAgc3RkOjpsaXN0PFN1YnNjcmliZU9wdGlvbnM+IHVwZGF0ZWRPcHRpb25zOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywKKyAgICAgICAgICAgICAgbWFuYWdlci5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbigxLCBjYjEsIHN1YnNjclRvUHJvcDEsICZ1cGRhdGVkT3B0aW9ucykpOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywKKyAgICAgICAgICAgICAgbWFuYWdlci5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbigyLCBjYjIsIHN1YnNjclRvUHJvcDEsICZ1cGRhdGVkT3B0aW9ucykpOworCisgICAgYXV0byBjbGllbnRzID0gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cygKKyAgICAgICAgICAgIFBST1AxLAorICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQpOworCisgICAgQVNTRVJUX0FMTF9FWElTVFMoe2NiMSwgY2IyfSwgZXh0cmFjdENhbGxiYWNrcyhjbGllbnRzKSk7Cit9CisKK1RFU1RfRihTdWJzY3JpcHRpb25NYW5hZ2VyVGVzdCwgbmVnYXRpdmVDYXNlcykgeworICAgIHN0ZDo6bGlzdDxTdWJzY3JpYmVPcHRpb25zPiB1cGRhdGVkT3B0aW9uczsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssCisgICAgICAgICAgICAgIG1hbmFnZXIuYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oMSwgY2IxLCBzdWJzY3JUb1Byb3AxLCAmdXBkYXRlZE9wdGlvbnMpKTsKKworICAgIC8vIFdyb25nIHpvbmUKKyAgICBhdXRvIGNsaWVudHMgPSBtYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKAorICAgICAgICAgICAgUFJPUDEsCisgICAgICAgICAgICB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18yX0xFRlQpLAorICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVCk7CisgICAgQVNTRVJUX1RSVUUoY2xpZW50cy5lbXB0eSgpKTsKKworICAgIC8vIFdyb25nIHByb3AKKyAgICBjbGllbnRzID0gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cygKKyAgICAgICAgICAgIHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6QVBfUE9XRVJfQk9PVFVQX1JFQVNPTiksCisgICAgICAgICAgICB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVCk7CisgICAgQVNTRVJUX1RSVUUoY2xpZW50cy5lbXB0eSgpKTsKKworICAgIC8vIFdyb25nIGZsYWcKKyAgICBjbGllbnRzID0gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cygKKyAgICAgICAgICAgIFBST1AxLAorICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpTRVRfQ0FMTCk7CisgICAgQVNTRVJUX1RSVUUoY2xpZW50cy5lbXB0eSgpKTsKK30KKworVEVTVF9GKFN1YnNjcmlwdGlvbk1hbmFnZXJUZXN0LCBtdWxpcGxlU3Vic2NyaXB0aW9ucykgeworICAgIHN0ZDo6bGlzdDxTdWJzY3JpYmVPcHRpb25zPiB1cGRhdGVkT3B0aW9uczsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIG1hbmFnZXIuYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oMSwgY2IxLCBzdWJzY3JUb1Byb3AxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdXBkYXRlZE9wdGlvbnMpKTsKKworICAgIGF1dG8gY2xpZW50cyA9IG1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoCisgICAgICAgICAgICBQUk9QMSwKKyAgICAgICAgICAgIHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICBTdWJzY3JpYmVGbGFnczo6REVGQVVMVCk7CisgICAgQVNTRVJUX0VRKChzaXplX3QpIDEsIGNsaWVudHMuc2l6ZSgpKTsKKyAgICBBU1NFUlRfRVEoY2IxLCBjbGllbnRzLmZyb250KCktPmdldENhbGxiYWNrKCkpOworCisgICAgLy8gU2FtZSBwcm9wZXJ0eSwgYnV0IGRpZmZlcmVudCB6b25lLCB0byBtYWtlIHN1cmUgd2UgZGlkbid0IHVuc3Vic2NyaWJlCisgICAgLy8gZnJvbSBwcmV2aW91cyB6b25lLgorICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgbWFuYWdlci5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbigxLCBjYjEsIHsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB7CisgICAgICAgICAgICAgICAgLnByb3BJZCA9IFBST1AxLAorICAgICAgICAgICAgICAgIC52ZWhpY2xlQXJlYXMgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18yKSwKKyAgICAgICAgICAgICAgICAuZmxhZ3MgPSBTdWJzY3JpYmVGbGFnczo6REVGQVVMVAorICAgICAgICAgICAgfQorICAgICAgICB9LCAmdXBkYXRlZE9wdGlvbnMpKTsKKworICAgIGNsaWVudHMgPSBtYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKFBST1AxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OkRFRkFVTFQpOworICAgIEFTU0VSVF9BTExfRVhJU1RTKHtjYjF9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHMpKTsKKworICAgIGNsaWVudHMgPSBtYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKFBST1AxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpERUZBVUxUKTsKKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7Y2IxfSwgZXh0cmFjdENhbGxiYWNrcyhjbGllbnRzKSk7Cit9CisKK1RFU1RfRihTdWJzY3JpcHRpb25NYW5hZ2VyVGVzdCwgdW5zdWJzY3JpYmUpIHsKKyAgICBzdGQ6Omxpc3Q8U3Vic2NyaWJlT3B0aW9ucz4gdXBkYXRlZE9wdGlvbnM7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLAorICAgICAgICAgICAgICBtYW5hZ2VyLmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKDEsIGNiMSwgc3Vic2NyVG9Qcm9wMSwgJnVwZGF0ZWRPcHRpb25zKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLAorICAgICAgICAgICAgICBtYW5hZ2VyLmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKDIsIGNiMiwgc3Vic2NyVG9Qcm9wMiwgJnVwZGF0ZWRPcHRpb25zKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLAorICAgICAgICAgICAgICBtYW5hZ2VyLmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKDMsIGNiMywgc3Vic2NyVG9Qcm9wMWFuZDIsICZ1cGRhdGVkT3B0aW9ucykpOworCisgICAgQVNTRVJUX0FMTF9FWElTVFMoeyBjYjEsIGNiMyB9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHNUb1Byb3AxKCkpKTsKKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7Y2IyLCBjYjN9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHNUb1Byb3AyKCkpKTsKKworICAgIG1hbmFnZXIudW5zdWJzY3JpYmUoMSwgUFJPUDEpOworICAgIGFzc2VydE9uUHJvcGVydHlVbnN1YnNjcmliZWROb3RDYWxsZWQoKTsKKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7Y2IzfSwgZXh0cmFjdENhbGxiYWNrcyhjbGllbnRzVG9Qcm9wMSgpKSk7CisKKyAgICAvLyBNYWtlIHN1cmUgbm90aGluZyBjaGFuZ2VkIGluIFBST1AyIHNvIGZhci4KKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7Y2IyLCBjYjN9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHNUb1Byb3AyKCkpKTsKKworICAgIC8vIE5vIG9uZSBzdWJzY3JpYmVkIHRvIFBST1AxLCBzdWJzY3JpcHRpb24gZm9yIFBST1AyIGlzIG5vdCBhZmZlY3RlZC4KKyAgICBtYW5hZ2VyLnVuc3Vic2NyaWJlKDMsIFBST1AxKTsKKyAgICBhc3NlcnRMYXN0VW5zdWJzY3JpYmVkUHJvcGVydHkoUFJPUDEpOworICAgIEFTU0VSVF9BTExfRVhJU1RTKHtjYjIsIGNiM30sIGV4dHJhY3RDYWxsYmFja3MoY2xpZW50c1RvUHJvcDIoKSkpOworCisgICAgbWFuYWdlci51bnN1YnNjcmliZSgzLCBQUk9QMik7CisgICAgYXNzZXJ0T25Qcm9wZXJ0eVVuc3Vic2NyaWJlZE5vdENhbGxlZCgpOworICAgIEFTU0VSVF9BTExfRVhJU1RTKHtjYjJ9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHNUb1Byb3AyKCkpKTsKKworICAgIC8vIFRoZSBsYXN0IGNsaWVudCB1bnN1YnNjcmliZWQgZnJvbSB0aGlzIHByb3BlcnR5LgorICAgIG1hbmFnZXIudW5zdWJzY3JpYmUoMiwgUFJPUDIpOworICAgIGFzc2VydExhc3RVbnN1YnNjcmliZWRQcm9wZXJ0eShQUk9QMik7CisKKyAgICAvLyBObyBvbmUgc3Vic2NyaWJlZCBhbnltb3JlCisgICAgbWFuYWdlci51bnN1YnNjcmliZSgxLCBQUk9QMSk7CisgICAgYXNzZXJ0TGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5KFBST1AxKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGFub255bW91cworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZUhhbE1hbmFnZXJfdGVzdC5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZUhhbE1hbmFnZXJfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg2NGQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlSGFsTWFuYWdlcl90ZXN0LmNwcApAQCAtMCwwICsxLDQ3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPGlvc3RyZWFtPgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL21hY3Jvcy5oPgorI2luY2x1ZGUgPHV0aWxzL1N5c3RlbUNsb2NrLmg+CisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCisjaW5jbHVkZSAidmhhbF92Ml8wL1ZlaGljbGVIYWxNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJWZWhpY2xlSGFsVGVzdFV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ6OnBsYWNlaG9sZGVyczsKKworY29uc3RleHByIGNoYXIga0Nhck1ha2VbXSA9ICJEZWZhdWx0IENhciI7Citjb25zdGV4cHIgaW50IGtSZXRyaWFibGVQcm9wTW9ja2VkQXR0ZW1wdHMgPSAzOworCitjbGFzcyBNb2NrZWRWZWhpY2xlSGFsIDogcHVibGljIFZlaGljbGVIYWwgeworcHVibGljOgorICAgIE1vY2tlZFZlaGljbGVIYWwoKSB7CisgICAgICAgIG1Db25maWdzLmFzc2lnbihzdGQ6OmJlZ2luKGtWZWhpY2xlUHJvcGVydGllcyksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmVuZChrVmVoaWNsZVByb3BlcnRpZXMpKTsKKyAgICB9CisKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gbGlzdFByb3BlcnRpZXMoKSBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBtQ29uZmlnczsKKyAgICB9CisKKyAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIGdldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgICAgICAgU3RhdHVzQ29kZSogb3V0U3RhdHVzKSBvdmVycmlkZSB7CisgICAgICAgICpvdXRTdGF0dXMgPSBTdGF0dXNDb2RlOjpPSzsKKyAgICAgICAgVmVoaWNsZVByb3BWYWx1ZVB0ciBwVmFsdWU7CisgICAgICAgIGF1dG8gcHJvcGVydHkgPSBzdGF0aWNfY2FzdDxWZWhpY2xlUHJvcGVydHk+KHJlcXVlc3RlZFByb3BWYWx1ZS5wcm9wKTsKKyAgICAgICAgaW50MzJfdCBhcmVhSWQgPSByZXF1ZXN0ZWRQcm9wVmFsdWUuYXJlYUlkOworCisgICAgICAgIHN3aXRjaCAocHJvcGVydHkpIHsKKyAgICAgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5OjpJTkZPX01BS0U6CisgICAgICAgICAgICAgICAgcFZhbHVlID0gZ2V0VmFsdWVQb29sKCktPm9idGFpblN0cmluZyhrQ2FyTWFrZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eTo6SU5GT19GVUVMX0NBUEFDSVRZOgorICAgICAgICAgICAgICAgIGlmIChmdWVsQ2FwYWNpdHlBdHRlbXB0c0xlZnQtLSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRW11bGF0ZSBwcm9wZXJ0eSBub3QgcmVhZHkgeWV0LgorICAgICAgICAgICAgICAgICAgICAqb3V0U3RhdHVzID0gU3RhdHVzQ29kZTo6VFJZX0FHQUlOOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHBWYWx1ZSA9IGdldFZhbHVlUG9vbCgpLT5vYnRhaW5GbG9hdCg0Mi40Mik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBpZiAocmVxdWVzdGVkUHJvcFZhbHVlLnByb3AgPT0ga0N1c3RvbUNvbXBsZXhQcm9wZXJ0eSkgeworICAgICAgICAgICAgICAgICAgICBwVmFsdWUgPSBnZXRWYWx1ZVBvb2woKS0+b2J0YWluQ29tcGxleCgpOworICAgICAgICAgICAgICAgICAgICBwVmFsdWUtPnZhbHVlLmludDMyVmFsdWVzID0gaGlkbF92ZWM8aW50MzJfdD4geyAxMCwgMjAgfTsKKyAgICAgICAgICAgICAgICAgICAgcFZhbHVlLT52YWx1ZS5pbnQ2NFZhbHVlcyA9IGhpZGxfdmVjPGludDY0X3Q+IHsgMzAsIDQwIH07CisgICAgICAgICAgICAgICAgICAgIHBWYWx1ZS0+dmFsdWUuZmxvYXRWYWx1ZXMgPSBoaWRsX3ZlYzxmbG9hdF90PiB7IDEuMSwgMi4yIH07CisgICAgICAgICAgICAgICAgICAgIHBWYWx1ZS0+dmFsdWUuYnl0ZXMgPSBoaWRsX3ZlYzx1aW50OF90PiB7IDEsIDIsIDMgfTsKKyAgICAgICAgICAgICAgICAgICAgcFZhbHVlLT52YWx1ZS5zdHJpbmdWYWx1ZSA9IGtDYXJNYWtlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBtYWtlS2V5KHRvSW50KHByb3BlcnR5KSwgYXJlYUlkKTsKKyAgICAgICAgICAgICAgICBpZiAobVZhbHVlcy5jb3VudChrZXkpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR1coIiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwVmFsdWUgPSBnZXRWYWx1ZVBvb2woKS0+b2J0YWluKG1WYWx1ZXNba2V5XSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKm91dFN0YXR1cyA9PSBTdGF0dXNDb2RlOjpPSyAmJiBwVmFsdWUuZ2V0KCkgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgcFZhbHVlLT5wcm9wID0gdG9JbnQocHJvcGVydHkpOworICAgICAgICAgICAgcFZhbHVlLT5hcmVhSWQgPSBhcmVhSWQ7CisgICAgICAgICAgICBwVmFsdWUtPnRpbWVzdGFtcCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwVmFsdWU7CisgICAgfQorCisgICAgU3RhdHVzQ29kZSBzZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSBvdmVycmlkZSB7CisgICAgICAgIGlmICh0b0ludChWZWhpY2xlUHJvcGVydHk6Ok1JUlJPUl9GT0xEKSA9PSBwcm9wVmFsdWUucHJvcAorICAgICAgICAgICAgICAgICYmIG1pcnJvckZvbGRBdHRlbXB0c0xlZnQtLSA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpUUllfQUdBSU47CisgICAgICAgIH0KKworICAgICAgICBtVmFsdWVzW21ha2VLZXkocHJvcFZhbHVlKV0gPSBwcm9wVmFsdWU7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKKyAgICB9CisKKyAgICBTdGF0dXNDb2RlIHN1YnNjcmliZShpbnQzMl90IC8qIHByb3BlcnR5ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgLyogYXJlYXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgLyogc2FtcGxlUmF0ZSAqLykgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7CisgICAgfQorCisgICAgU3RhdHVzQ29kZSB1bnN1YnNjcmliZShpbnQzMl90IC8qIHByb3BlcnR5ICovKSBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKKyAgICB9CisKKyAgICB2b2lkIHNlbmRQcm9wRXZlbnQocmVjeWNsYWJsZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4gdmFsdWUpIHsKKyAgICAgICAgZG9IYWxFdmVudChzdGQ6Om1vdmUodmFsdWUpKTsKKyAgICB9CisKKyAgICB2b2lkIHNlbmRIYWxFcnJvcihTdGF0dXNDb2RlIGVycm9yLCBpbnQzMl90IHByb3BlcnR5LCBpbnQzMl90IGFyZWFJZCkgeworICAgICAgICBkb0hhbFByb3BlcnR5U2V0RXJyb3IoZXJyb3IsIHByb3BlcnR5LCBhcmVhSWQpOworICAgIH0KKworcHVibGljOgorICAgIGludCBmdWVsQ2FwYWNpdHlBdHRlbXB0c0xlZnQgPSBrUmV0cmlhYmxlUHJvcE1vY2tlZEF0dGVtcHRzOworICAgIGludCBtaXJyb3JGb2xkQXR0ZW1wdHNMZWZ0ID0ga1JldHJpYWJsZVByb3BNb2NrZWRBdHRlbXB0czsKKworcHJpdmF0ZToKKyAgICBpbnQ2NF90IG1ha2VLZXkoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgdikgY29uc3QgeworICAgICAgICByZXR1cm4gbWFrZUtleSh2LnByb3AsIHYuYXJlYUlkKTsKKyAgICB9CisKKyAgICBpbnQ2NF90IG1ha2VLZXkoaW50MzJfdCBwcm9wLCBpbnQzMl90IGFyZWEpIGNvbnN0IHsKKyAgICAgICAgcmV0dXJuIChzdGF0aWNfY2FzdDxpbnQ2NF90Pihwcm9wKSA8PCAzMikgfCBhcmVhOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gbUNvbmZpZ3M7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPGludDY0X3QsIFZlaGljbGVQcm9wVmFsdWU+IG1WYWx1ZXM7Cit9OworCitjbGFzcyBWZWhpY2xlSGFsTWFuYWdlclRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKK3Byb3RlY3RlZDoKKyAgICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBoYWwucmVzZXQobmV3IE1vY2tlZFZlaGljbGVIYWwpOworICAgICAgICBtYW5hZ2VyLnJlc2V0KG5ldyBWZWhpY2xlSGFsTWFuYWdlcihoYWwuZ2V0KCkpKTsKKworICAgICAgICBvYmplY3RQb29sID0gaGFsLT5nZXRWYWx1ZVBvb2woKTsKKyAgICB9CisKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBtYW5hZ2VyLnJlc2V0KG51bGxwdHIpOworICAgICAgICBoYWwucmVzZXQobnVsbHB0cik7CisgICAgfQorcHVibGljOgorICAgIHZvaWQgaW52b2tlR2V0KGludDMyX3QgcHJvcGVydHksIGludDMyX3QgYXJlYUlkKSB7CisgICAgICAgIFZlaGljbGVQcm9wVmFsdWUgcmVxdWVzdGVkVmFsdWUge307CisgICAgICAgIHJlcXVlc3RlZFZhbHVlLnByb3AgPSBwcm9wZXJ0eTsKKyAgICAgICAgcmVxdWVzdGVkVmFsdWUuYXJlYUlkID0gYXJlYUlkOworCisgICAgICAgIGludm9rZUdldChyZXF1ZXN0ZWRWYWx1ZSk7CisgICAgfQorCisgICAgdm9pZCBpbnZva2VHZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlKSB7CisgICAgICAgIGFjdHVhbFZhbHVlID0gVmVoaWNsZVByb3BWYWx1ZSB7fTsgIC8vIHJlc2V0IHByZXZpb3VzIHZhbHVlcworCisgICAgICAgIFN0YXR1c0NvZGUgcmVmU3RhdHVzOworICAgICAgICBWZWhpY2xlUHJvcFZhbHVlIHJlZlZhbHVlOworICAgICAgICBib29sIGNhbGxlZCA9IGZhbHNlOworICAgICAgICBtYW5hZ2VyLT5nZXQocmVxdWVzdGVkUHJvcFZhbHVlLCBbJnJlZlN0YXR1cywgJnJlZlZhbHVlLCAmY2FsbGVkXQorICAgICAgICAgICAgKFN0YXR1c0NvZGUgc3RhdHVzLCBjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZSkgeworICAgICAgICAgICAgcmVmU3RhdHVzID0gc3RhdHVzOworICAgICAgICAgICAgcmVmVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgIGNhbGxlZCA9IHRydWU7CisgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfVFJVRShjYWxsZWQpIDw8ICJjYWxsYmFjayB3YXNuJ3QgY2FsbGVkIGZvciBwcm9wOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgaGV4U3RyaW5nKHJlcXVlc3RlZFByb3BWYWx1ZS5wcm9wKTsKKworICAgICAgICBhY3R1YWxWYWx1ZSA9IHJlZlZhbHVlOworICAgICAgICBhY3R1YWxTdGF0dXNDb2RlID0gcmVmU3RhdHVzOworICAgIH0KKworcHVibGljOgorICAgIFZlaGljbGVQcm9wVmFsdWUgYWN0dWFsVmFsdWU7CisgICAgU3RhdHVzQ29kZSBhY3R1YWxTdGF0dXNDb2RlOworCisgICAgVmVoaWNsZVByb3BWYWx1ZVBvb2wqIG9iamVjdFBvb2w7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1vY2tlZFZlaGljbGVIYWw+IGhhbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZUhhbE1hbmFnZXI+IG1hbmFnZXI7Cit9OworCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBnZXRQcm9wQ29uZmlncykgeworICAgIGhpZGxfdmVjPGludDMyX3Q+IHByb3BlcnRpZXMgPQorICAgICAgICB7IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpLAorICAgICAgICAgIHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19NQUtFKSB9OworICAgIGJvb2wgY2FsbGVkID0gZmFsc2U7CisKKyAgICBtYW5hZ2VyLT5nZXRQcm9wQ29uZmlncyhwcm9wZXJ0aWVzLAorICAgICAgICAgICAgWyZjYWxsZWRdIChTdGF0dXNDb2RlIHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8VmVoaWNsZVByb3BDb25maWc+JiBjKSB7CisgICAgICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgc3RhdHVzKTsKKyAgICAgICAgQVNTRVJUX0VRKDJ1LCBjLnNpemUoKSk7CisgICAgICAgIGNhbGxlZCA9IHRydWU7CisgICAgfSk7CisKKyAgICBBU1NFUlRfVFJVRShjYWxsZWQpOyAgLy8gVmVyaWZ5IGNhbGxiYWNrIHJlY2VpdmVkLgorCisgICAgY2FsbGVkID0gZmFsc2U7CisgICAgbWFuYWdlci0+Z2V0UHJvcENvbmZpZ3MoeyB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKSB9LAorICAgICAgICAgICAgWyZjYWxsZWRdIChTdGF0dXNDb2RlIHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8VmVoaWNsZVByb3BDb25maWc+JiBjKSB7CisgICAgICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgc3RhdHVzKTsKKyAgICAgICAgQVNTRVJUX0VRKDF1LCBjLnNpemUoKSk7CisgICAgICAgIEFTU0VSVF9FUSh0b1N0cmluZyhrVmVoaWNsZVByb3BlcnRpZXNbMV0pLCB0b1N0cmluZyhjWzBdKSk7CisgICAgICAgIGNhbGxlZCA9IHRydWU7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUoY2FsbGVkKTsgIC8vIFZlcmlmeSBjYWxsYmFjayByZWNlaXZlZC4KKworICAgIC8vIFRPRE8ocGF2ZWxtKTogYWRkIGNhc2UgY2FzZSB3aGVuIHByb3BlcnR5IHdhcyBub3QgZGVjbGFyZWQuCit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIGdldEFsbFByb3BDb25maWdzKSB7CisgICAgYm9vbCBjYWxsZWQgPSBmYWxzZTsKKyAgICBtYW5hZ2VyLT5nZXRBbGxQcm9wQ29uZmlncygKKyAgICAgICAgICAgIFsmY2FsbGVkXSAoY29uc3QgaGlkbF92ZWM8VmVoaWNsZVByb3BDb25maWc+JiBwcm9wQ29uZmlncykgeworICAgICAgICBBU1NFUlRfRVEoYXJyYXlzaXplKGtWZWhpY2xlUHJvcGVydGllcyksIHByb3BDb25maWdzLnNpemUoKSk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm9wQ29uZmlncy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgQVNTRVJUX0VRKHRvU3RyaW5nKGtWZWhpY2xlUHJvcGVydGllc1tpXSksCisgICAgICAgICAgICAgICAgICAgICAgdG9TdHJpbmcocHJvcENvbmZpZ3NbaV0pKTsKKyAgICAgICAgfQorICAgICAgICBjYWxsZWQgPSB0cnVlOworICAgIH0pOworICAgIEFTU0VSVF9UUlVFKGNhbGxlZCk7ICAvLyBWZXJpZnkgY2FsbGJhY2sgcmVjZWl2ZWQuCit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIGhhbEVycm9yRXZlbnQpIHsKKyAgICBjb25zdCBhdXRvIFBST1AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkRJU1BMQVlfQlJJR0hUTkVTUyk7CisKKyAgICBzcDxNb2NrZWRWZWhpY2xlQ2FsbGJhY2s+IGNiID0gbmV3IE1vY2tlZFZlaGljbGVDYWxsYmFjaygpOworCisgICAgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4gb3B0aW9ucyA9IHsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB7CisgICAgICAgICAgICAucHJvcElkID0gUFJPUCwKKyAgICAgICAgICAgIC5mbGFncyA9IFN1YnNjcmliZUZsYWdzOjpERUZBVUxUCisgICAgICAgIH0sCisgICAgfTsKKworICAgIFN0YXR1c0NvZGUgcmVzID0gbWFuYWdlci0+c3Vic2NyaWJlKGNiLCBvcHRpb25zKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIHJlcyk7CisKKyAgICBoYWwtPnNlbmRIYWxFcnJvcihTdGF0dXNDb2RlOjpUUllfQUdBSU4sIFBST1AsIDAgLyogYXJlYSBpZCovKTsKK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgc3Vic2NyaWJlKSB7CisgICAgY29uc3QgYXV0byBQUk9QID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpESVNQTEFZX0JSSUdIVE5FU1MpOworCisgICAgc3A8TW9ja2VkVmVoaWNsZUNhbGxiYWNrPiBjYiA9IG5ldyBNb2NrZWRWZWhpY2xlQ2FsbGJhY2soKTsKKworICAgIGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+IG9wdGlvbnMgPSB7CisgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgeworICAgICAgICAgICAgLnByb3BJZCA9IFBST1AsCisgICAgICAgICAgICAuZmxhZ3MgPSBTdWJzY3JpYmVGbGFnczo6REVGQVVMVAorICAgICAgICB9CisgICAgfTsKKworICAgIFN0YXR1c0NvZGUgcmVzID0gbWFuYWdlci0+c3Vic2NyaWJlKGNiLCBvcHRpb25zKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIHJlcyk7CisKKyAgICBhdXRvIHVuc3Vic2NyaWJlZFZhbHVlID0gb2JqZWN0UG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyKTsKKyAgICB1bnN1YnNjcmliZWRWYWx1ZS0+cHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpOworCisgICAgaGFsLT5zZW5kUHJvcEV2ZW50KHN0ZDo6bW92ZSh1bnN1YnNjcmliZWRWYWx1ZSkpOworICAgIGF1dG8mIHJlY2VpdmVkRW52ZW50cyA9IGNiLT5nZXRSZWNlaXZlZEV2ZW50cygpOworCisgICAgQVNTRVJUX1RSVUUoY2ItPndhaXRGb3JFeHBlY3RlZEV2ZW50cygwKSkgPDwgIiBVbmV4cGVjdGVkIGV2ZW50cyByZWNlaXZlZDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHJlY2VpdmVkRW52ZW50cy5zaXplKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAocmVjZWl2ZWRFbnZlbnRzLnNpemUoKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0b1N0cmluZyhyZWNlaXZlZEVudmVudHMuZnJvbnQoKVswXSkgOiAiIik7CisKKyAgICBhdXRvIHN1YnNjcmliZWRWYWx1ZSA9IG9iamVjdFBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMik7CisgICAgc3Vic2NyaWJlZFZhbHVlLT5wcm9wID0gUFJPUDsKKyAgICBzdWJzY3JpYmVkVmFsdWUtPnZhbHVlLmludDMyVmFsdWVzWzBdID0gNDI7CisKKyAgICBjYi0+cmVzZXQoKTsKKyAgICBWZWhpY2xlUHJvcFZhbHVlIGFjdHVhbFZhbHVlKCpzdWJzY3JpYmVkVmFsdWUuZ2V0KCkpOworICAgIGhhbC0+c2VuZFByb3BFdmVudChzdGQ6Om1vdmUoc3Vic2NyaWJlZFZhbHVlKSk7CisKKyAgICBBU1NFUlRfVFJVRShjYi0+d2FpdEZvckV4cGVjdGVkRXZlbnRzKDEpKSA8PCAiRXZlbnRzIHJlY2VpdmVkOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgcmVjZWl2ZWRFbnZlbnRzLnNpemUoKTsKKworICAgIEFTU0VSVF9FUSh0b1N0cmluZyhhY3R1YWxWYWx1ZSksCisgICAgICAgICAgICAgIHRvU3RyaW5nKGNiLT5nZXRSZWNlaXZlZEV2ZW50cygpLmZyb250KClbMF0pKTsKK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgc3Vic2NyaWJlX1dyaXRlT25seSkgeworICAgIGNvbnN0IGF1dG8gUFJPUCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19TRUFUX1RFTVBFUkFUVVJFKTsKKworICAgIHNwPE1vY2tlZFZlaGljbGVDYWxsYmFjaz4gY2IgPSBuZXcgTW9ja2VkVmVoaWNsZUNhbGxiYWNrKCk7CisKKyAgICBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiBvcHRpb25zID0geworICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHsKKyAgICAgICAgICAgIC5wcm9wSWQgPSBQUk9QLAorICAgICAgICAgICAgLmZsYWdzID0gU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVAorICAgICAgICB9LAorICAgIH07CisKKyAgICBTdGF0dXNDb2RlIHJlcyA9IG1hbmFnZXItPnN1YnNjcmliZShjYiwgb3B0aW9ucyk7CisgICAgLy8gVW5hYmxlIHRvIHN1YnNjcmliZSBvbiBIYWwgRXZlbnRzIGZvciB3cml0ZS1vbmx5IHByb3BlcnRpZXMuCisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6OklOVkFMSURfQVJHLCByZXMpOworCisKKyAgICBvcHRpb25zWzBdLmZsYWdzID0gU3Vic2NyaWJlRmxhZ3M6OlNFVF9DQUxMOworCisgICAgcmVzID0gbWFuYWdlci0+c3Vic2NyaWJlKGNiLCBvcHRpb25zKTsKKyAgICAvLyBPSyB0byBzdWJzY3JpYmUgb24gU0VUIG1ldGhvZCBjYWxsIGZvciB3cml0ZS1vbmx5IHByb3BlcnRpZXMuCisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCByZXMpOworfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBnZXRfQ29tcGxleCkgeworICAgIGludm9rZUdldChrQ3VzdG9tQ29tcGxleFByb3BlcnR5LCAwKTsKKworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisgICAgQVNTRVJUX0VRKGtDdXN0b21Db21wbGV4UHJvcGVydHksIGFjdHVhbFZhbHVlLnByb3ApOworCisgICAgQVNTRVJUX0VRKDN1LCBhY3R1YWxWYWx1ZS52YWx1ZS5ieXRlcy5zaXplKCkpOworICAgIEFTU0VSVF9FUSgxLCBhY3R1YWxWYWx1ZS52YWx1ZS5ieXRlc1swXSk7CisgICAgQVNTRVJUX0VRKDIsIGFjdHVhbFZhbHVlLnZhbHVlLmJ5dGVzWzFdKTsKKyAgICBBU1NFUlRfRVEoMywgYWN0dWFsVmFsdWUudmFsdWUuYnl0ZXNbMl0pOworCisgICAgQVNTRVJUX0VRKDJ1LCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQzMlZhbHVlcy5zaXplKCkpOworICAgIEFTU0VSVF9FUSgxMCwgYWN0dWFsVmFsdWUudmFsdWUuaW50MzJWYWx1ZXNbMF0pOworICAgIEFTU0VSVF9FUSgyMCwgYWN0dWFsVmFsdWUudmFsdWUuaW50MzJWYWx1ZXNbMV0pOworCisgICAgQVNTRVJUX0VRKDJ1LCBhY3R1YWxWYWx1ZS52YWx1ZS5mbG9hdFZhbHVlcy5zaXplKCkpOworICAgIEFTU0VSVF9GTE9BVF9FUSgxLjEsIGFjdHVhbFZhbHVlLnZhbHVlLmZsb2F0VmFsdWVzWzBdKTsKKyAgICBBU1NFUlRfRkxPQVRfRVEoMi4yLCBhY3R1YWxWYWx1ZS52YWx1ZS5mbG9hdFZhbHVlc1sxXSk7CisKKyAgICBBU1NFUlRfRVEoMnUsIGFjdHVhbFZhbHVlLnZhbHVlLmludDY0VmFsdWVzLnNpemUoKSk7CisgICAgQVNTRVJUX0ZMT0FUX0VRKDMwLCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQ2NFZhbHVlc1swXSk7CisgICAgQVNTRVJUX0ZMT0FUX0VRKDQwLCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQ2NFZhbHVlc1sxXSk7CisKKyAgICBBU1NFUlRfU1RSRVEoa0Nhck1ha2UsIGFjdHVhbFZhbHVlLnZhbHVlLnN0cmluZ1ZhbHVlLmNfc3RyKCkpOworfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBnZXRfU3RhdGljU3RyaW5nKSB7CisgICAgaW52b2tlR2V0KHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19NQUtFKSwgMCk7CisKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgIEFTU0VSVF9FUSh0b0ludChWZWhpY2xlUHJvcGVydHk6OklORk9fTUFLRSksIGFjdHVhbFZhbHVlLnByb3ApOworICAgIEFTU0VSVF9TVFJFUShrQ2FyTWFrZSwgYWN0dWFsVmFsdWUudmFsdWUuc3RyaW5nVmFsdWUuY19zdHIoKSk7Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIGdldF9OZWdhdGl2ZUNhc2VzKSB7CisgICAgLy8gV3JpdGUtb25seSBwcm9wZXJ0eSBtdXN0IGZhaWwuCisgICAgaW52b2tlR2V0KHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19TRUFUX1RFTVBFUkFUVVJFKSwgMCk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6OkFDQ0VTU19ERU5JRUQsIGFjdHVhbFN0YXR1c0NvZGUpOworCisgICAgLy8gVW5rbm93biBwcm9wZXJ0eSBtdXN0IGZhaWwuCisgICAgaW52b2tlR2V0KHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6TUlSUk9SX1pfTU9WRSksIDApOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpJTlZBTElEX0FSRywgYWN0dWFsU3RhdHVzQ29kZSk7Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIGdldF9SZXRyaWFibGUpIHsKKyAgICBhY3R1YWxTdGF0dXNDb2RlID0gU3RhdHVzQ29kZTo6VFJZX0FHQUlOOworICAgIGludCBhdHRlbXB0cyA9IDA7CisgICAgd2hpbGUgKFN0YXR1c0NvZGU6OlRSWV9BR0FJTiA9PSBhY3R1YWxTdGF0dXNDb2RlICYmICsrYXR0ZW1wdHMgPCAxMCkgeworICAgICAgICBpbnZva2VHZXQodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX0ZVRUxfQ0FQQUNJVFkpLCAwKTsKKworICAgIH0KKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgIEFTU0VSVF9FUShrUmV0cmlhYmxlUHJvcE1vY2tlZEF0dGVtcHRzICsgMSwgYXR0ZW1wdHMpOworICAgIEFTU0VSVF9GTE9BVF9FUSg0Mi40MiwgYWN0dWFsVmFsdWUudmFsdWUuZmxvYXRWYWx1ZXNbMF0pOworfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBzZXRfQmFzaWMpIHsKKyAgICBjb25zdCBhdXRvIFBST1AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkRJU1BMQVlfQlJJR0hUTkVTUyk7CisgICAgY29uc3QgYXV0byBWQUwgPSA3OworCisgICAgYXV0byBleHBlY3RlZFZhbHVlID0gaGFsLT5nZXRWYWx1ZVBvb2woKS0+b2J0YWluSW50MzIoVkFMKTsKKyAgICBleHBlY3RlZFZhbHVlLT5wcm9wID0gUFJPUDsKKyAgICBleHBlY3RlZFZhbHVlLT5hcmVhSWQgPSAwOworCisgICAgYWN0dWFsU3RhdHVzQ29kZSA9IG1hbmFnZXItPnNldCgqZXhwZWN0ZWRWYWx1ZS5nZXQoKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKworICAgIGludm9rZUdldChQUk9QLCAwKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgIEFTU0VSVF9FUShQUk9QLCBhY3R1YWxWYWx1ZS5wcm9wKTsKKyAgICBBU1NFUlRfRVEoVkFMLCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQzMlZhbHVlc1swXSk7Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIHNldF9EaWZmZXJlbnRBcmVhcykgeworICAgIGNvbnN0IGF1dG8gUFJPUCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpOworICAgIGNvbnN0IGF1dG8gVkFMMSA9IDE7CisgICAgY29uc3QgYXV0byBWQUwyID0gMjsKKyAgICBjb25zdCBhdXRvIEFSRUExID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKTsKKyAgICBjb25zdCBhdXRvIEFSRUEyID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9SSUdIVCk7CisKKyAgICB7CisgICAgICAgIGF1dG8gZXhwZWN0ZWRWYWx1ZTEgPSBoYWwtPmdldFZhbHVlUG9vbCgpLT5vYnRhaW5JbnQzMihWQUwxKTsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZTEtPnByb3AgPSBQUk9QOworICAgICAgICBleHBlY3RlZFZhbHVlMS0+YXJlYUlkID0gQVJFQTE7CisgICAgICAgIGFjdHVhbFN0YXR1c0NvZGUgPSBtYW5hZ2VyLT5zZXQoKmV4cGVjdGVkVmFsdWUxLmdldCgpKTsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKworICAgICAgICBhdXRvIGV4cGVjdGVkVmFsdWUyID0gaGFsLT5nZXRWYWx1ZVBvb2woKS0+b2J0YWluSW50MzIoVkFMMik7CisgICAgICAgIGV4cGVjdGVkVmFsdWUyLT5wcm9wID0gUFJPUDsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZTItPmFyZWFJZCA9IEFSRUEyOworICAgICAgICBhY3R1YWxTdGF0dXNDb2RlID0gbWFuYWdlci0+c2V0KCpleHBlY3RlZFZhbHVlMi5nZXQoKSk7CisgICAgICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisgICAgfQorCisgICAgeworICAgICAgICBpbnZva2VHZXQoUFJPUCwgQVJFQTEpOworICAgICAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgICAgICBBU1NFUlRfRVEoUFJPUCwgYWN0dWFsVmFsdWUucHJvcCk7CisgICAgICAgIEFTU0VSVF9FUShBUkVBMSwgYWN0dWFsVmFsdWUuYXJlYUlkKTsKKyAgICAgICAgQVNTRVJUX0VRKFZBTDEsIGFjdHVhbFZhbHVlLnZhbHVlLmludDMyVmFsdWVzWzBdKTsKKworICAgICAgICBpbnZva2VHZXQoUFJPUCwgQVJFQTIpOworICAgICAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgICAgICBBU1NFUlRfRVEoUFJPUCwgYWN0dWFsVmFsdWUucHJvcCk7CisgICAgICAgIEFTU0VSVF9FUShBUkVBMiwgYWN0dWFsVmFsdWUuYXJlYUlkKTsKKyAgICAgICAgQVNTRVJUX0VRKFZBTDIsIGFjdHVhbFZhbHVlLnZhbHVlLmludDMyVmFsdWVzWzBdKTsKKyAgICB9Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIHNldF9SZXRyaWFibGUpIHsKKyAgICBjb25zdCBhdXRvIFBST1AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6Ok1JUlJPUl9GT0xEKTsKKworICAgIGF1dG8gdiA9IGhhbC0+Z2V0VmFsdWVQb29sKCktPm9idGFpbkJvb2xlYW4odHJ1ZSk7CisgICAgdi0+cHJvcCA9IFBST1A7CisgICAgdi0+YXJlYUlkID0gMDsKKworICAgIGFjdHVhbFN0YXR1c0NvZGUgPSBTdGF0dXNDb2RlOjpUUllfQUdBSU47CisgICAgaW50IGF0dGVtcHRzID0gMDsKKyAgICB3aGlsZSAoU3RhdHVzQ29kZTo6VFJZX0FHQUlOID09IGFjdHVhbFN0YXR1c0NvZGUgJiYgKythdHRlbXB0cyA8IDEwKSB7CisgICAgICAgIGFjdHVhbFN0YXR1c0NvZGUgPSBtYW5hZ2VyLT5zZXQoKnYuZ2V0KCkpOworICAgIH0KKworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisgICAgQVNTRVJUX0VRKGtSZXRyaWFibGVQcm9wTW9ja2VkQXR0ZW1wdHMgKyAxLCBhdHRlbXB0cyk7CisKKyAgICBpbnZva2VHZXQoUFJPUCwgMCk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKyAgICBBU1NFUlRfVFJVRShhY3R1YWxWYWx1ZS52YWx1ZS5pbnQzMlZhbHVlc1swXSk7Cit9CisKK1RFU1QoSGFsQ2xpZW50VmVjdG9yVGVzdCwgYmFzaWMpIHsKKyAgICBIYWxDbGllbnRWZWN0b3IgY2xpZW50czsKKyAgICBzcDxJVmVoaWNsZUNhbGxiYWNrPiBjYWxsYmFjazEgPSBuZXcgTW9ja2VkVmVoaWNsZUNhbGxiYWNrKCk7CisKKyAgICBzcDxIYWxDbGllbnQ+IGMxID0gbmV3IEhhbENsaWVudChjYWxsYmFjazEpOworICAgIHNwPEhhbENsaWVudD4gYzIgPSBuZXcgSGFsQ2xpZW50KGNhbGxiYWNrMSk7CisKKyAgICBjbGllbnRzLmFkZE9yVXBkYXRlKGMxKTsKKyAgICBjbGllbnRzLmFkZE9yVXBkYXRlKGMxKTsKKyAgICBjbGllbnRzLmFkZE9yVXBkYXRlKGMyKTsKKyAgICBBU1NFUlRfRVEoMnUsIGNsaWVudHMuc2l6ZSgpKTsKKyAgICBBU1NFUlRfRkFMU0UoY2xpZW50cy5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9MRSgwLCBjbGllbnRzLmluZGV4T2YoYzEpKTsKKyAgICBBU1NFUlRfTEUoMCwgY2xpZW50cy5yZW1vdmUoYzEpKTsKKyAgICBBU1NFUlRfR1QoMCwgY2xpZW50cy5pbmRleE9mKGMxKSk7ICAvLyBjMSB3YXMgYWxyZWFkeSByZW1vdmVkCisgICAgQVNTRVJUX0dUKDAsIGNsaWVudHMucmVtb3ZlKGMxKSk7ICAgLy8gYXR0ZW1wdCB0byByZW1vdmUgYzEgYWdhaW4KKyAgICBBU1NFUlRfTEUoMCwgY2xpZW50cy5yZW1vdmUoYzIpKTsKKworICAgIEFTU0VSVF9UUlVFKGNsaWVudHMuaXNFbXB0eSgpKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGFub255bW91cworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZUhhbFRlc3RVdGlscy5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVIYWxUZXN0VXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGUxYTVhCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVIYWxUZXN0VXRpbHMuaApAQCAtMCwwICsxLDI4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlRGVidWdVdGlsc19IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVEZWJ1Z1V0aWxzX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxpb3M+CisjaW5jbHVkZSA8c3N0cmVhbT4KKworI2luY2x1ZGUgInZoYWxfdjJfMC9WZWhpY2xlVXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworY29uc3RleHByIGludDMyX3Qga0N1c3RvbUNvbXBsZXhQcm9wZXJ0eSA9IDB4YmVlZgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOjpWRU5ET1IKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOjpDT01QTEVYCisgICAgICAgIHwgVmVoaWNsZUFyZWE6OkdMT0JBTDsKKworY29uc3QgVmVoaWNsZVByb3BDb25maWcga1ZlaGljbGVQcm9wZXJ0aWVzW10gPSB7CisgICAgeworICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19NQUtFKSwKKyAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpTVEFUSUMsCisgICAgICAgIC5jb25maWdTdHJpbmcgPSAiU29tZT1jb25maWcsb3B0aW9ucz1pZix5b3U9aGF2ZV9hbnkiLAorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9TUEVFRCksCisgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAuc3VwcG9ydGVkQXJlYXMgPSBzdGF0aWNfY2FzdDxpbnQzMl90PigKKyAgICAgICAgICAgIFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCB8IFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfUklHSFQpLAorICAgICAgICAuYXJlYUNvbmZpZ3MgPSB7CisgICAgICAgICAgICBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgICAgICAgICAgICAgLmFyZWFJZCA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICAgICAgLm1pbkludDMyVmFsdWUgPSAxLAorICAgICAgICAgICAgICAgIC5tYXhJbnQzMlZhbHVlID0gN30sCisgICAgICAgICAgICBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgICAgICAgICAgICAgLmFyZWFJZCA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfUklHSFQpLAorICAgICAgICAgICAgICAgIC5taW5JbnQzMlZhbHVlID0gMSwKKyAgICAgICAgICAgICAgICAubWF4SW50MzJWYWx1ZSA9IDUsCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLy8gV3JpdGUtb25seSBwcm9wZXJ0eQorICAgIHsKKyAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfU0VBVF9URU1QRVJBVFVSRSksCisgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OldSSVRFLAorICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX1NFVCwKKyAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oCisgICAgICAgICAgICBWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQgfCBWZWhpY2xlQXJlYVpvbmU6OlJPV18xX1JJR0hUKSwKKyAgICAgICAgLmFyZWFDb25maWdzID0geworICAgICAgICAgICAgVmVoaWNsZUFyZWFDb25maWcgeworICAgICAgICAgICAgICAgIC5hcmVhSWQgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgICAgIC5taW5JbnQzMlZhbHVlID0gNjQsCisgICAgICAgICAgICAgICAgLm1heEludDMyVmFsdWUgPSA4MH0sCisgICAgICAgICAgICBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgICAgICAgICAgICAgLmFyZWFJZCA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfUklHSFQpLAorICAgICAgICAgICAgICAgIC5taW5JbnQzMlZhbHVlID0gNjQsCisgICAgICAgICAgICAgICAgLm1heEludDMyVmFsdWUgPSA4MCwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX0ZVRUxfQ0FQQUNJVFkpLAorICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgLmFyZWFDb25maWdzID0geworICAgICAgICAgICAgVmVoaWNsZUFyZWFDb25maWcgeworICAgICAgICAgICAgICAgIC5taW5GbG9hdFZhbHVlID0gMCwKKyAgICAgICAgICAgICAgICAubWF4RmxvYXRWYWx1ZSA9IDEuMAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKKworICAgIHsKKyAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkRJU1BMQVlfQlJJR0hUTkVTUyksCisgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAuYXJlYUNvbmZpZ3MgPSB7CisgICAgICAgICAgICBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgICAgICAgICAgICAgLm1pbkludDMyVmFsdWUgPSAwLAorICAgICAgICAgICAgICAgIC5tYXhJbnQzMlZhbHVlID0gMTAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpNSVJST1JfRk9MRCksCisgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorCisgICAgfSwKKworICAgIC8vIENvbXBsZXggZGF0YSB0eXBlLgorICAgIHsKKyAgICAgICAgLnByb3AgPSBrQ3VzdG9tQ29tcGxleFByb3BlcnR5LAorICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRQorICAgIH0KK307CisKK2NvbnN0ZXhwciBhdXRvIGtUaW1lb3V0ID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApOworCitjbGFzcyBNb2NrZWRWZWhpY2xlQ2FsbGJhY2sgOiBwdWJsaWMgSVZlaGljbGVDYWxsYmFjayB7Citwcml2YXRlOgorICAgIHVzaW5nIE11eEd1YXJkID0gc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+OworICAgIHVzaW5nIEhpZGxWZWNPZlZhbHVlcyA9IGhpZGxfdmVjPFZlaGljbGVQcm9wVmFsdWU+OworcHVibGljOgorICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjp2ZWhpY2xlOjpWMl8wOjpJVmVoaWNsZUNhbGxiYWNrIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gb25Qcm9wZXJ0eUV2ZW50KAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8VmVoaWNsZVByb3BWYWx1ZT4mIHZhbHVlcykgb3ZlcnJpZGUgeworICAgICAgICB7CisgICAgICAgICAgICBNdXhHdWFyZCAgZyhtTG9jayk7CisgICAgICAgICAgICBtUmVjZWl2ZWRFdmVudHMucHVzaF9iYWNrKHZhbHVlcyk7CisgICAgICAgIH0KKyAgICAgICAgbUV2ZW50Q29uZC5ub3RpZnlfb25lKCk7CisgICAgICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgICB9CisgICAgUmV0dXJuPHZvaWQ+IG9uUHJvcGVydHlTZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgLyogdmFsdWUgKi8pIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICAgIH0KKyAgICBSZXR1cm48dm9pZD4gb25Qcm9wZXJ0eVNldEVycm9yKFN0YXR1c0NvZGUgLyogZXJyb3JDb2RlICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAvKiBwcm9wSWQgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IC8qIGFyZWFJZCAqLykgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgICAgfQorCisgICAgYm9vbCB3YWl0Rm9yRXhwZWN0ZWRFdmVudHMoc2l6ZV90IGV4cGVjdGVkRXZlbnRzKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gZyhtTG9jayk7CisKKyAgICAgICAgaWYgKGV4cGVjdGVkRXZlbnRzID09IDAgJiYgbVJlY2VpdmVkRXZlbnRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAvLyBObyBldmVudHMgZXhwZWN0ZWQsIGxldCdzIHNsZWVwIGEgbGl0dGxlIGJpdCB0byBtYWtlIHN1cmUKKyAgICAgICAgICAgIC8vIG5vdGhpbmcgd2lsbCBzaG93IHVwLgorICAgICAgICAgICAgcmV0dXJuIG1FdmVudENvbmQud2FpdF9mb3IoZywga1RpbWVvdXQpID09IHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0OworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKGV4cGVjdGVkRXZlbnRzICE9IG1SZWNlaXZlZEV2ZW50cy5zaXplKCkpIHsKKyAgICAgICAgICAgIGlmIChtRXZlbnRDb25kLndhaXRfZm9yKGcsIGtUaW1lb3V0KSA9PSBzdGQ6OmN2X3N0YXR1czo6dGltZW91dCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0KCkgeworICAgICAgICBtUmVjZWl2ZWRFdmVudHMuY2xlYXIoKTsKKyAgICB9CisKKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxIaWRsVmVjT2ZWYWx1ZXM+JiBnZXRSZWNlaXZlZEV2ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIG1SZWNlaXZlZEV2ZW50czsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RkOjptdXRleCBtTG9jazsKKyAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBtRXZlbnRDb25kOworICAgIHN0ZDo6dmVjdG9yPEhpZGxWZWNPZlZhbHVlcz4gbVJlY2VpdmVkRXZlbnRzOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBzdGQ6OnN0cmluZyBoZXhTdHJpbmcoVCB2YWx1ZSkgeworICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOworICAgIHNzIDw8IHN0ZDo6c2hvd2Jhc2UgPDwgc3RkOjpoZXggPDwgdmFsdWU7CisgICAgcmV0dXJuIHNzLnN0cigpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQ29sbGVjdGlvbj4KK2lubGluZSB2b2lkIGFzc2VydEFsbEV4aXN0c0FueU9yZGVyKAorICAgICAgICBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VD4gZXhwZWN0ZWQsCisgICAgICAgIGNvbnN0IENvbGxlY3Rpb24mIGFjdHVhbCwKKyAgICAgICAgY29uc3QgY2hhciogbXNnKSB7CisgICAgc3RkOjpzZXQ8VD4gZXhwZWN0ZWRTZXQgPSBleHBlY3RlZDsKKworICAgIGZvciAoYXV0byBhOiBhY3R1YWwpIHsKKyAgICAgICAgQVNTRVJUX0VRKDF1LCBleHBlY3RlZFNldC5lcmFzZShhKSkKKyAgICAgICAgICAgICAgICA8PCBtc2cgPDwgIlxuQ29udGFpbnMgbm90IHVuZXhwZWN0ZWQgdmFsdWUuXG4iOworICAgIH0KKworICAgIEFTU0VSVF9FUSgwdSwgZXhwZWN0ZWRTZXQuc2l6ZSgpKQorICAgICAgICAgICAgPDwgbXNnCisgICAgICAgICAgICA8PCAiXG5Eb2Vzbid0IGNvbnRhaW4gZXhwZWN0ZWQgdmFsdWUuIjsKK30KKworI2RlZmluZSBBU1NFUlRfQUxMX0VYSVNUUyguLi4pIFwKKyAgICBhc3NlcnRBbGxFeGlzdHNBbnlPcmRlcihfX1ZBX0FSR1NfXywgKHN0ZDo6c3RyaW5nKCJDYWxsZWQgZnJvbTogIikgKyBcCisgICAgICAgICAgICBzdGQ6OnN0cmluZyhfX0ZJTEVfXykgKyBzdGQ6OnN0cmluZygiOiIpICsgXAorICAgICAgICAgICAgc3RkOjp0b19zdHJpbmcoX19MSU5FX18pKS5jX3N0cigpKTsgXAorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIHN0ZDo6c3RyaW5nIGVudW1Ub0hleFN0cmluZyhUIHZhbHVlKSB7CisgICAgcmV0dXJuIGhleFN0cmluZyh0b0ludCh2YWx1ZSkpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBzdGQ6OnN0cmluZyB2ZWNUb1N0cmluZyhjb25zdCBoaWRsX3ZlYzxUPiYgdmVjKSB7CisgICAgc3RkOjpzdHJpbmdzdHJlYW0gc3MoIlsiKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlYy5zaXplKCk7IGkrKykgeworICAgICAgICBpZiAoaSAhPSAwKSBzcyA8PCAiLCI7CisgICAgICAgIHNzIDw8IHZlY1tpXTsKKyAgICB9CisgICAgc3MgPDwgIl0iOworICAgIHJldHVybiBzcy5zdHIoKTsKK30KKworaW5saW5lIHN0ZDo6c3RyaW5nIHRvU3RyaW5nKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUgJnYpIHsKKyAgICBzdGQ6OnN0cmluZ3N0cmVhbSBzczsKKyAgICBzcyA8PCAiVmVoaWNsZVByb3BWYWx1ZSB7biIKKyAgICAgICA8PCAiICBwcm9wOiAiIDw8IGhleFN0cmluZyh2LnByb3ApIDw8ICIsXG4iCisgICAgICAgPDwgIiAgYXJlYUlkOiAiIDw8IGhleFN0cmluZyh2LmFyZWFJZCkgPDwgIixcbiIKKyAgICAgICA8PCAiICB0aW1lc3RhbXA6ICIgPDwgdi50aW1lc3RhbXAgPDwgIixcbiIKKyAgICAgICA8PCAiICB2YWx1ZSB7XG4iCisgICAgICAgPDwgIiAgICBpbnQzMlZhbHVlczogIiA8PCB2ZWNUb1N0cmluZyh2LnZhbHVlLmludDMyVmFsdWVzKSA8PCAiLFxuIgorICAgICAgIDw8ICIgICAgZmxvYXRWYWx1ZXM6ICIgPDwgdmVjVG9TdHJpbmcodi52YWx1ZS5mbG9hdFZhbHVlcykgPDwgIixcbiIKKyAgICAgICA8PCAiICAgIGludDY0VmFsdWVzOiAiIDw8IHZlY1RvU3RyaW5nKHYudmFsdWUuaW50NjRWYWx1ZXMpIDw8ICIsXG4iCisgICAgICAgPDwgIiAgICBieXRlczogIiA8PCB2ZWNUb1N0cmluZyh2LnZhbHVlLmJ5dGVzKSA8PCAiLFxuIgorICAgICAgIDw8ICIgICAgc3RyaW5nOiAiIDw8IHYudmFsdWUuc3RyaW5nVmFsdWUuY19zdHIoKSA8PCAiLFxuIgorICAgICAgIDw8ICIgIH1cbiIKKyAgICAgICA8PCAifVxuIjsKKworICAgIHJldHVybiBzcy5zdHIoKTsKK30KKworaW5saW5lIHN0ZDo6c3RyaW5nIHRvU3RyaW5nKGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnICZjb25maWcpIHsKKyAgICBzdGQ6OnN0cmluZ3N0cmVhbSBzczsKKyAgICBzcyA8PCAiVmVoaWNsZVByb3BDb25maWcge1xuIgorICAgICAgIDw8ICIgIHByb3A6ICIgPDwgaGV4U3RyaW5nKGNvbmZpZy5wcm9wKSA8PCAiLFxuIgorICAgICAgIDw8ICIgIHN1cHBvcnRlZEFyZWFzOiAiIDw8IGhleFN0cmluZyhjb25maWcuc3VwcG9ydGVkQXJlYXMpIDw8ICIsXG4iCisgICAgICAgPDwgIiAgYWNjZXNzOiAiIDw8IGVudW1Ub0hleFN0cmluZyhjb25maWcuYWNjZXNzKSA8PCAiLFxuIgorICAgICAgIDw8ICIgIGNoYW5nZU1vZGU6ICIgPDwgZW51bVRvSGV4U3RyaW5nKGNvbmZpZy5jaGFuZ2VNb2RlKSA8PCAiLFxuIgorICAgICAgIDw8ICIgIGNvbmZpZ0ZsYWdzOiAiIDw8IGhleFN0cmluZyhjb25maWcuY29uZmlnRmxhZ3MpIDw8ICIsXG4iCisgICAgICAgPDwgIiAgbWluU2FtcGxlUmF0ZTogIiA8PCBjb25maWcubWluU2FtcGxlUmF0ZSA8PCAiLFxuIgorICAgICAgIDw8ICIgIG1heFNhbXBsZVJhdGU6ICIgPDwgY29uZmlnLm1heFNhbXBsZVJhdGUgPDwgIixcbiIKKyAgICAgICA8PCAiICBjb25maWdTdHJpbmc6ICIgPDwgY29uZmlnLmNvbmZpZ1N0cmluZy5jX3N0cigpIDw8ICIsXG4iOworCisgICAgc3MgPDwgIiAgYXJlYUNvbmZpZ3Mge1xuIjsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbmZpZy5hcmVhQ29uZmlncy5zaXplKCk7IGkrKykgeworICAgICAgICBjb25zdCBhdXRvICZhcmVhID0gY29uZmlnLmFyZWFDb25maWdzW2ldOworICAgICAgICBzcyA8PCAiICAgIGFyZWFJZDogIiA8PCBoZXhTdHJpbmcoYXJlYS5hcmVhSWQpIDw8ICIsXG4iCisgICAgICAgICAgIDw8ICIgICAgbWluRmxvYXRWYWx1ZTogIiA8PCBhcmVhLm1pbkZsb2F0VmFsdWUgPDwgIixcbiIKKyAgICAgICAgICAgPDwgIiAgICBtaW5GbG9hdFZhbHVlOiAiIDw8IGFyZWEubWF4RmxvYXRWYWx1ZSA8PCAiLFxuIgorICAgICAgICAgICA8PCAiICAgIG1pbkludDMyVmFsdWU6ICIgPDwgYXJlYS5taW5JbnQzMlZhbHVlIDw8ICIsXG4iCisgICAgICAgICAgIDw8ICIgICAgbWluSW50MzJWYWx1ZTogIiA8PCBhcmVhLm1heEludDMyVmFsdWUgPDwgIixcbiIKKyAgICAgICAgICAgPDwgIiAgICBtaW5JbnQ2NFZhbHVlOiAiIDw8IGFyZWEubWluSW50NjRWYWx1ZSA8PCAiLFxuIgorICAgICAgICAgICA8PCAiICAgIG1pbkludDY0VmFsdWU6ICIgPDwgYXJlYS5tYXhJbnQ2NFZhbHVlIDw8ICIsXG4iOworICAgIH0KKyAgICBzcyA8PCAiICB9XG4iCisgICAgICAgPDwgIn1cbiI7CisKKyAgICByZXR1cm4gc3Muc3RyKCk7Cit9CisKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAvL2FuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZURlYnVnVXRpbHNfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlT2JqZWN0UG9vbF90ZXN0LmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlT2JqZWN0UG9vbF90ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjkxMzUxCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVPYmplY3RQb29sX3Rlc3QuY3BwCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHRocmVhZD4KKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNsdWRlIDx1dGlscy9TeXN0ZW1DbG9jay5oPgorCisjaW5jbHVkZSAidmhhbF92Ml8wL1ZlaGljbGVPYmplY3RQb29sLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIFZlaGljbGVPYmplY3RQb29sVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworcHJvdGVjdGVkOgorICAgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIHN0YXRzID0gUG9vbFN0YXRzOjppbnN0YW5jZSgpOworICAgICAgICByZXNldFN0YXRzKCk7CisgICAgICAgIHZhbHVlUG9vbC5yZXNldChuZXcgVmVoaWNsZVByb3BWYWx1ZVBvb2wpOworICAgIH0KKworICAgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIC8vIEF0IHRoZSBlbmQsIGFsbCBjcmVhdGVkIG9iamVjdHMgc2hvdWxkIGJlIGVpdGhlciByZWN5Y2xlZCBvciBkZWxldGVkLgorICAgICAgICAvLyBTb21lIG9iamVjdHMgY291bGQgYmUgcmVjeWNsZWQgbXVsdGlwbGUgdGltZXMsIHRoYXQncyB3aHkgaXQncyA8PQorICAgICAgICBBU1NFUlRfRVEoc3RhdHMtPk9idGFpbmVkLCBzdGF0cy0+UmVjeWNsZWQpOworICAgICAgICBBU1NFUlRfTEUoc3RhdHMtPkNyZWF0ZWQsIHN0YXRzLT5SZWN5Y2xlZCk7CisgICAgfQorcHJpdmF0ZToKKyAgICB2b2lkIHJlc2V0U3RhdHMoKSB7CisgICAgICAgIHN0YXRzLT5PYnRhaW5lZCA9IDA7CisgICAgICAgIHN0YXRzLT5DcmVhdGVkID0gMDsKKyAgICAgICAgc3RhdHMtPlJlY3ljbGVkID0gMDsKKyAgICB9CisKK3B1YmxpYzoKKyAgICBQb29sU3RhdHMqIHN0YXRzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlUHJvcFZhbHVlUG9vbD4gdmFsdWVQb29sOworfTsKKworVEVTVF9GKFZlaGljbGVPYmplY3RQb29sVGVzdCwgdmFsdWVQb29sQmFzaWNDb3JyZWN0bmVzcykgeworICAgIHZvaWQqIHJhdyA9IHZhbHVlUG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyKS5nZXQoKTsKKyAgICAvLyBBdCB0aGlzIHBvaW50LCB2MSBzaG91bGQgYmUgcmVjeWNsZWQgYW5kIHRoZSBvbmx5IG9iamVjdCBpbiB0aGUgcG9vbC4KKyAgICBBU1NFUlRfRVEocmF3LCB2YWx1ZVBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMikuZ2V0KCkpOworICAgIC8vIE9idGFpbmluZyB2YWx1ZSBvZiBhbm90aGVyIHR5cGUgLSBzaG91bGQgcmV0dXJuIGEgbmV3IG9iamVjdAorICAgIEFTU0VSVF9ORShyYXcsIHZhbHVlUG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUKS5nZXQoKSk7CisKKyAgICBBU1NFUlRfRVEoM3UsIHN0YXRzLT5PYnRhaW5lZCk7CisgICAgQVNTRVJUX0VRKDJ1LCBzdGF0cy0+Q3JlYXRlZCk7Cit9CisKK1RFU1RfRihWZWhpY2xlT2JqZWN0UG9vbFRlc3QsIHZhbHVlUG9vbFN0cmluZ3MpIHsKKyAgICB2YWx1ZVBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpTVFJJTkcpOworICAgIGF1dG8gdnMgPSB2YWx1ZVBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpTVFJJTkcpOworICAgIHZzLT52YWx1ZS5zdHJpbmdWYWx1ZSA9ICJIZWxsbyI7CisgICAgdm9pZCogcmF3ID0gdnMuZ2V0KCk7CisgICAgdnMucmVzZXQoKTsgIC8vIGRlbGV0ZSB0aGUgcG9pbnRlcgorCisgICAgYXV0byB2czIgPSB2YWx1ZVBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpTVFJJTkcpOworICAgIEFTU0VSVF9FUSgwdSwgdnMyLT52YWx1ZS5zdHJpbmdWYWx1ZS5zaXplKCkpOworICAgIEFTU0VSVF9ORShyYXcsIHZhbHVlUG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OlNUUklORykuZ2V0KCkpOworCisgICAgQVNTRVJUX0VRKDB1LCBzdGF0cy0+T2J0YWluZWQpOworfQorCitURVNUX0YoVmVoaWNsZU9iamVjdFBvb2xUZXN0LCB2YWx1ZVBvb2xNdWx0aXRocmVhZGVkQmVuY2htYXJrKSB7CisgICAgLy8gSW4gdGhpcyB0ZXN0IHdlIGhhdmUgVCB0aHJlYWRzIHRoYXQgY29uY3VycmVudGx5IGluIEMgY3ljbGVzCisgICAgLy8gb2J0YWluIGFuZCByZWxlYXNlIE8gVmVoaWNsZVByb3BWYWx1ZSBvYmplY3RzIG9mIEZMT0FUIC8gSU5UMzIgdHlwZXMuCisKKyAgICBjb25zdCBpbnQgVCA9IDI7CisgICAgY29uc3QgaW50IEMgPSA1MDA7CisgICAgY29uc3QgaW50IE8gPSAxMDA7CisKKyAgICBhdXRvIHBvb2xQdHIgPSB2YWx1ZVBvb2wuZ2V0KCk7CisKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnRocmVhZD4gdGhyZWFkczsKKyAgICBhdXRvIHN0YXJ0ID0gZWxhcHNlZFJlYWx0aW1lTmFubygpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVDsgaSsrKSB7CisgICAgICAgIHRocmVhZHMucHVzaF9iYWNrKHN0ZDo6dGhyZWFkKFsmcG9vbFB0cl0gKCkgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBDOyBqKyspIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxyZWN5Y2xhYmxlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPj4gdmVjOworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgTzsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgIHZlYy5wdXNoX2JhY2soCisgICAgICAgICAgICAgICAgICAgICAgICBwb29sUHRyLT5vYnRhaW4oayAlIDIgPT0gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiB0IDogdGhyZWFkcykgeworICAgICAgICB0LmpvaW4oKTsKKyAgICB9CisgICAgYXV0byBmaW5pc2ggPSBlbGFwc2VkUmVhbHRpbWVOYW5vKCk7CisKKyAgICBBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFQgKiBDICogTyksIHN0YXRzLT5PYnRhaW5lZCk7CisgICAgQVNTRVJUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihUICogQyAqIE8pLCBzdGF0cy0+UmVjeWNsZWQpOworICAgIC8vIENyZWF0ZWQgbGVzcyB0aGFuIG9idGFpbmVkLgorICAgIEFTU0VSVF9HRShzdGF0aWNfY2FzdDx1aW50MzJfdD4oVCAqIE8pLCBzdGF0cy0+Q3JlYXRlZCk7CisKKyAgICBhdXRvIGVsYXBzZWRNcyA9IChmaW5pc2ggLSBzdGFydCkgLyAxMDAwMDAwOworICAgIEFTU0VSVF9HRSgxMDAwLCBlbGFwc2VkTXMpOyAgLy8gTGVzcyBhIHNlY29uZCB0byBhY2Nlc3MgMTAwSyBvYmplY3RzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHlwaWNhbGx5IGl0IHRha2VzIGFib3V0IDAuMXMgb24gTmV4dXM2UC4KK30KKworfSAgLy8gbmFtZXNwYWNlIGFub255bW91cworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZVByb3BDb25maWdJbmRleF90ZXN0LmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlUHJvcENvbmZpZ0luZGV4X3Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmNjU4MjAKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZVByb3BDb25maWdJbmRleF90ZXN0LmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNsdWRlICJ2aGFsX3YyXzAvVmVoaWNsZVByb3BDb25maWdJbmRleC5oIgorCisjaW5jbHVkZSAiVmVoaWNsZUhhbFRlc3RVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgeworCitjbGFzcyBQcm9wQ29uZmlnVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworcHJvdGVjdGVkOgorICAgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGNvbmZpZ3MuYXNzaWduKHN0ZDo6YmVnaW4oa1ZlaGljbGVQcm9wZXJ0aWVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RkOjplbmQoa1ZlaGljbGVQcm9wZXJ0aWVzKSk7CisgICAgfQorCisgICAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKK3B1YmxpYzoKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gY29uZmlnczsKK307CisKK1RFU1RfRihQcm9wQ29uZmlnVGVzdCwgaGFzQ29uZmlnKSB7CisgICAgVmVoaWNsZVByb3BDb25maWdJbmRleCBpbmRleChjb25maWdzKTsKKworICAgIEFTU0VSVF9UUlVFKGluZGV4Lmhhc0NvbmZpZyh0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKSkpOworICAgIEFTU0VSVF9UUlVFKGluZGV4Lmhhc0NvbmZpZyh0b0ludChWZWhpY2xlUHJvcGVydHk6OklORk9fTUFLRSkpKTsKKyAgICBBU1NFUlRfVFJVRShpbmRleC5oYXNDb25maWcodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX0ZVRUxfQ0FQQUNJVFkpKSk7CisKKyAgICBBU1NFUlRfRkFMU0UoaW5kZXguaGFzQ29uZmlnKHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5WQUxJRCkpKTsKK30KKworVEVTVF9GKFByb3BDb25maWdUZXN0LCBnZXRBbGxDb25maWcpIHsKKyAgICBWZWhpY2xlUHJvcENvbmZpZ0luZGV4IGluZGV4KGNvbmZpZ3MpOworCisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGFjdHVhbENvbmZpZ3MgPSBpbmRleC5nZXRBbGxDb25maWdzKCk7CisgICAgQVNTRVJUX0VRKGNvbmZpZ3Muc2l6ZSgpLCBhY3R1YWxDb25maWdzLnNpemUoKSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFjdHVhbENvbmZpZ3Muc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgQVNTRVJUX0VRKHRvU3RyaW5nKGNvbmZpZ3NbaV0pLCB0b1N0cmluZyhhY3R1YWxDb25maWdzW2ldKSk7CisgICAgfQorfQorCitURVNUX0YoUHJvcENvbmZpZ1Rlc3QsIGdldENvbmZpZ3MpIHsKKyAgICBWZWhpY2xlUHJvcENvbmZpZ0luZGV4IGluZGV4KGNvbmZpZ3MpOworICAgIGF1dG8gYWN0dWFsQ29uZmlnID0gaW5kZXguZ2V0Q29uZmlnKHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpKTsKKyAgICBBU1NFUlRfRVEodG9TdHJpbmcoY29uZmlnc1sxXSksIHRvU3RyaW5nKGFjdHVhbENvbmZpZykpOworfQorCit9ICAvLyBuYW1lc3BhY2UgYW5vbnltb3VzCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaGFsIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFmYjZiZgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMjY4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOworCisvKioKKyAqIEVudW1lcmF0ZXMgc3VwcG9ydGVkIGRhdGEgdHlwZXMgZm9yIFZlaGljbGVQcm9wZXJ0eS4KKyAqCisgKiBUaGlzIGlzIGEgYml0d2lzZSBmbGFnIHRoYXQgc3VwcG9zZWQgdG8gYmUgdXNlZCBpbiBWZWhpY2xlUHJvcGVydHkgZW51bS4KKyAqLworZW51bSBWZWhpY2xlUHJvcGVydHlUeXBlIDogaW50MzJfdCB7CisgICAgU1RSSU5HICAgICAgICAgPSAweDAwMTAwMDAwLAorICAgIEJPT0xFQU4gICAgICAgID0gMHgwMDIwMDAwMCwKKyAgICBJTlQzMiAgICAgICAgICA9IDB4MDA0MDAwMDAsCisgICAgSU5UMzJfVkVDICAgICAgPSAweDAwNDEwMDAwLAorICAgIElOVDY0ICAgICAgICAgID0gMHgwMDUwMDAwMCwKKyAgICBGTE9BVCAgICAgICAgICA9IDB4MDA2MDAwMDAsCisgICAgRkxPQVRfVkVDICAgICAgPSAweDAwNjEwMDAwLAorICAgIEJZVEVTICAgICAgICAgID0gMHgwMDcwMDAwMCwKKworICAgIC8qKgorICAgICAqIEFueSBjb21iaW5hdGlvbiBvZiBzY2FsYXIgb3IgdmVjdG9yIHR5cGVzLiBUaGUgZXhhY3QgZm9ybWF0IG11c3QgYmUKKyAgICAgKiBwcm92aWRlZCBpbiB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIHByb3BlcnR5LgorICAgICAqLworICAgIENPTVBMRVggICAgICAgID0gMHgwMGUwMDAwMCwKKworICAgIE1BU0sgICAgICAgICAgID0gMHgwMGZmMDAwMAorfTsKKworLyoqCisgKiBTb21lIHByb3BlcnRpZXMgbWF5IGJlIGFzc29jaWF0ZWQgd2l0aCBwYXJ0aWN1bGFyIHZlaGljbGUgYXJlYXMuIEZvcgorICogZXhhbXBsZSwgVmVoaWNsZVByb3BlcnR5OkRPT1JfTE9DSyBwcm9wZXJ0eSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aAorICogcGFydGljdWxhciBkb29yLCB0aHVzIHRoaXMgcHJvcGVydHkgbXVzdCBiZSBtYXJrZWQgd2l0aAorICogVmVoaWNsZUFyZWE6RE9PUiBmbGFnLgorICoKKyAqIE90aGVyIHByb3BlcnRpZXMgbWF5IG5vdCBiZSBhc3NvY2lhdGVkIHdpdGggcGFydGljdWxhciB2ZWhpY2xlIGFyZWEsCisgKiB0aGVzZSBraW5kIG9mIHByb3BlcnRpZXMgbXVzdCBoYXZlIFZlaGljbGVBcmVhOkdMT0JBTCBmbGFnLgorICoKKyAqIFRoaXMgaXMgYSBiaXR3aXNlIGZsYWcgdGhhdCBzdXBwb3NlZCB0byBiZSB1c2VkIGluIFZlaGljbGVQcm9wZXJ0eSBlbnVtLgorICovCitlbnVtIFZlaGljbGVBcmVhIDogaW50MzJfdCB7CisgICAgICBHTE9CQUwgICAgICAgPSAweDAxMDAwMDAwLAorICAgICAgWk9ORSAgICAgICAgID0gMHgwMjAwMDAwMCwKKyAgICAgIFdJTkRPVyAgICAgICA9IDB4MDMwMDAwMDAsCisgICAgICBNSVJST1IgICAgICAgPSAweDA0MDAwMDAwLAorICAgICAgU0VBVCAgICAgICAgID0gMHgwNTAwMDAwMCwKKyAgICAgIERPT1IgICAgICAgICA9IDB4MDYwMDAwMDAsCisKKyAgICAgIE1BU0sgICAgICAgICA9IDB4MGYwMDAwMDAsCit9OworCisvKioKKyAqIEVudW1lcmF0ZXMgcHJvcGVydHkgZ3JvdXBzLgorICoKKyAqIFRoaXMgaXMgYSBiaXR3aXNlIGZsYWcgdGhhdCBzdXBwb3NlZCB0byBiZSB1c2VkIGluIFZlaGljbGVQcm9wZXJ0eSBlbnVtLgorICovCitlbnVtIFZlaGljbGVQcm9wZXJ0eUdyb3VwIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogUHJvcGVydGllcyBkZWNsYXJlZCBpbiBBT1NQIG11c3QgaGF2ZSB0aGlzIGZsYWcuCisgICAgICovCisgICAgU1lTVEVNICAgICAgICAgPSAweDEwMDAwMDAwLAorCisgICAgLyoqCisgICAgICogUHJvcGVydGllcyBkZWNsYXJlZCBieSB2ZW5kb3JzIG11c3QgaGF2ZSB0aGlzIGZsYWcuCisgICAgICovCisgICAgVkVORE9SICAgICAgICAgPSAweDIwMDAwMDAwLAorCisgICAgTUFTSyAgICAgICAgICAgPSAweGYwMDAwMDAwLAorfTsKKworLyoqCisgKiBEZWNsYXJlcyBhbGwgdmVoaWNsZSBwcm9wZXJ0aWVzLiBWZWhpY2xlUHJvcGVydHkgaGFzIGEgYml0d2lzZSBzdHJ1Y3R1cmUuCisgKiBFYWNoIHByb3BlcnR5IG11c3QgaGF2ZToKKyAqICAgLSBhbiB1bmlxdWUgaWQgZnJvbSByYW5nZSAweDAxMDAgLSAweGZmZmYKKyAqICAgLSBhc3NvY2lhdGVkIGRhdGEgdHlwZSB1c2luZyBWZWhpY2xlUHJvcGVydHlUeXBlCisgKiAgIC0gcHJvcGVydHkgZ3JvdXAgKFZlaGljbGVQcm9wZXJ0eUdyb3VwKQorICogICAtIHZlaGljbGUgYXJlYSAoVmVoaWNsZUFyZWEpCisgKgorICogVmVuZG9ycyBhcmUgYWxsb3dlZCB0byBleHRlbmQgdGhpcyBlbnVtIHdpdGggdGhlaXIgb3duIHByb3BlcnRpZXMuIEluIHRoaXMKKyAqIGNhc2UgdGhleSBtdXN0IHVzZSBWZWhpY2xlUHJvcGVydHlHcm91cDpWRU5ET1IgZmxhZyB3aGVuIHByb3BlcnR5IGlzCisgKiBkZWNsYXJlZC4KKyAqLworZW51bSBWZWhpY2xlUHJvcGVydHk6IGludDMyX3QgeworCisgICAgLyoqIFVuZGVmaW5lZCBwcm9wZXJ0eS4gKi8KKyAgICBJTlZBTElEID0gMHgwMDAwMDAwMCwKKworICAgIC8qKgorICAgICAqIFZJTiBvZiB2ZWhpY2xlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpTVEFUSUMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgSU5GT19WSU49ICgKKyAgICAgICAgMHgwMTAwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpTVFJJTkcKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogTWFrZXIgbmFtZSBvZiB2ZWhpY2xlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpTVEFUSUMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgSU5GT19NQUtFID0gKAorICAgICAgICAweDAxMDEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOlNUUklORworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBNb2RlbCBvZiB2ZWhpY2xlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpTVEFUSUMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgSU5GT19NT0RFTCA9ICgKKyAgICAgICAgMHgwMTAyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpTVFJJTkcKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogTW9kZWwgeWVhciBvZiB2ZWhpY2xlLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6U1RBVElDCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0OllFQVIKKyAgICAgKi8KKyAgICBJTkZPX01PREVMX1lFQVIgPSAoCisgICAgICAgIDB4MDEwMworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogRnVlbCBjYXBhY2l0eSBvZiB0aGUgdmVoaWNsZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6U1RBVElDCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0Ok1JTExJTElURVIKKyAgICAgKi8KKyAgICBJTkZPX0ZVRUxfQ0FQQUNJVFkgPSAoCisgICAgICAgIDB4MDEwNAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogQ3VycmVudCBvZG9tZXRlciB2YWx1ZSBvZiB0aGUgdmVoaWNsZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFIHwgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpDT05USU5VT1VTCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0OktJTE9NRVRFUgorICAgICAqLworICAgIFBFUkZfT0RPTUVURVIgPSAoCisgICAgICAgIDB4MDIwNAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogU3BlZWQgb2YgdGhlIHZlaGljbGUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRXxWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOkNPTlRJTlVPVVMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6TUVURVJfUEVSX1NFQworICAgICAqLworICAgIFBFUkZfVkVISUNMRV9TUEVFRCA9ICgKKyAgICAgICAgMHgwMjA3CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBUZW1wZXJhdHVyZSBvZiBlbmdpbmUgY29vbGFudAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFfFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Q09OVElOVU9VUworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpDRUxTSVVTCisgICAgICovCisgICAgRU5HSU5FX0NPT0xBTlRfVEVNUCA9ICgKKyAgICAgICAgMHgwMzAxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBUZW1wZXJhdHVyZSBvZiBlbmdpbmUgb2lsCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0V8VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpDT05USU5VT1VTCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0OkNFTFNJVVMKKyAgICAgKi8KKyAgICBFTkdJTkVfT0lMX1RFTVAgPSAoCisgICAgICAgIDB4MDMwNAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogRW5naW5lIHJwbQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFfFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Q09OVElOVU9VUworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpSUE0KKyAgICAgKi8KKyAgICBFTkdJTkVfUlBNID0gKAorICAgICAgICAweDAzMDUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkZMT0FUCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEN1cnJlbnRseSBzZWxlY3RlZCBnZWFyCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQGRhdGFfZW51bSBWZWhpY2xlR2VhcgorICAgICAqLworICAgIEdFQVJfU0VMRUNUSU9OID0gKAorICAgICAgICAweDA0MDAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEN1cnJlbnQgZ2Vhci4gSW4gbm9uLW1hbnVhbCBjYXNlLCBzZWxlY3RlZCBnZWFyIGRvZXMgbm90IG5lY2Vzc2FyaWx5CisgICAgICogbWF0Y2ggdGhlIGN1cnJlbnQgZ2Vhci4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAZGF0YV9lbnVtIFZlaGljbGVHZWFyCisgICAgICovCisgICAgQ1VSUkVOVF9HRUFSID0gKAorICAgICAgICAweDA0MDEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFBhcmtpbmcgYnJha2Ugc3RhdGUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgUEFSS0lOR19CUkFLRV9PTiA9ICgKKyAgICAgICAgMHgwNDAyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIERyaXZpbmcgc3RhdHVzIHBvbGljeS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAZGF0YV9lbnVtIFZlaGljbGVEcml2aW5nU3RhdHVzCisgICAgICovCisgICAgRFJJVklOR19TVEFUVVMgPSAoCisgICAgICAgIDB4MDQwNAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogV2FybmluZyBmb3IgZnVlbCBsb3cgbGV2ZWwuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgRlVFTF9MRVZFTF9MT1cgPSAoCisgICAgICAgIDB4MDQwNQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBOaWdodCBtb2RlIG9yIG5vdC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBOSUdIVF9NT0RFID0gKAorICAgICAgICAweDA0MDcKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogU3RhdGUgb2YgdGhlIHZlaGljbGVzIHR1cm4gc2lnbmFscworICAgICAqCisgICAgICogVmFsdWVzIGZyb20gVmVoaWNsZVR1cm5TaWduYWwKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBUVVJOX1NJR05BTF9TVEFURSA9ICgKKyAgICAgICAgMHgwNDA4CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIGlnbml0aW9uIHN0YXRlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgSUdOSVRJT05fU1RBVEUgPSAoCisgICAgICAgIDB4MDQwOQorICAgICAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogRmFuIHNwZWVkIHNldHRpbmcKKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19GQU5fU1BFRUQgPSAoCisgICAgICAgIDB4MDUwMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIEZhbiBkaXJlY3Rpb24gc2V0dGluZworICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAZGF0YV9lbnVtIFZlaGljbGVIdmFjRmFuRGlyZWN0aW9uCisgICAgICovCisgICAgSFZBQ19GQU5fRElSRUNUSU9OID0gKAorICAgICAgICAweDA1MDEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBIVkFDIGN1cnJlbnQgdGVtcGVyYXR1cmUuCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfVEVNUEVSQVRVUkVfQ1VSUkVOVCA9ICgKKyAgICAgICAgMHgwNTAyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogSFZBQywgdGFyZ2V0IHRlbXBlcmF0dXJlIHNldC4KKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19URU1QRVJBVFVSRV9TRVQgPSAoCisgICAgICAgIDB4MDUwMworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIE9uL29mZiBkZWZyb3N0CisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfREVGUk9TVEVSID0gKAorICAgICAgICAweDA1MDQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpXSU5ET1cpLAorCisgICAgLyoqCisgICAgICogT24vb2ZmIEFDCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBjb25maWdfZmxhZ3MgU3VwcG9ydGVkIHpvbmVzCisgICAgICovCisgICAgSFZBQ19BQ19PTiA9ICgKKyAgICAgICAgMHgwNTA1CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBPbi9vZmYgbWF4IEFDCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfTUFYX0FDX09OID0gKAorICAgICAgICAweDA1MDYKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIE9uL29mZiBtYXggZGVmcm9zdAorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX01BWF9ERUZST1NUX09OID0gKAorICAgICAgICAweDA1MDcKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIE9uL29mZiByZS1jaXJjdWxhdGlvbgorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX1JFQ0lSQ19PTiA9ICgKKyAgICAgICAgMHgwNTA4CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBPbi9vZmYgZHVhbC4gVGhpcyBtdXN0IGJlIGRlZmluZWQgcGVyIGVhY2ggcm93LgorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX0RVQUxfT04gPSAoCisgICAgICAgIDB4MDUwOQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogT24vb2ZmIGF1dG9tYXRpYyBtb2RlCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfQVVUT19PTiA9ICgKKyAgICAgICAgMHgwNTBBCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IHRlbXBlcmF0dXJlCisgICAgICoKKyAgICAgKiBOZWdhdGl2ZSB2YWx1ZXMgaW5kaWNhdGUgY29vbGluZy4KKyAgICAgKiAwIGluZGljYXRlcyBvZmYuCisgICAgICogUG9zaXRpdmUgdmFsdWVzIGluZGljYXRlIGhlYXRpbmcuCisgICAgICoKKyAgICAgKiBTb21lIHZlaGljbGVzIG1heSBoYXZlIG11bHRpcGxlIGxldmVscyBvZiBoZWF0aW5nIGFuZCBjb29saW5nLiBUaGUKKyAgICAgKiBtaW4vbWF4IHJhbmdlIGRlZmluZXMgdGhlIGFsbG93YWJsZSByYW5nZSBhbmQgbnVtYmVyIG9mIHN0ZXBzIGluIGVhY2gKKyAgICAgKiBkaXJlY3Rpb24uCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfU0VBVF9URU1QRVJBVFVSRSA9ICgKKyAgICAgICAgMHgwNTBCCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2lkZSBNaXJyb3IgSGVhdAorICAgICAqCisgICAgICogSW5jcmVhc2UgdmFsdWVzIGRlbm90ZSBoaWdoZXIgaGVhdGluZyBsZXZlbHMgZm9yIHNpZGUgbWlycm9ycy4KKyAgICAgKiAwIGluZGljYXRlcyBoZWF0aW5nIGlzIHR1cm5lZCBvZmYuCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfU0lERV9NSVJST1JfSEVBVCA9ICgKKyAgICAgICAgMHgwNTBDCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOk1JUlJPUiksCisKKyAgICAvKioKKyAgICAgKiBTdGVlcmluZyBXaGVlbCBUZW1wZXJhdHVyZQorICAgICAqCisgICAgICogU2V0cyB0aGUgdGVtcGVyYXR1cmUgZm9yIHRoZSBzdGVlcmluZyB3aGVlbAorICAgICAqIFBvc2l0aXZlIHZhbHVlIGluZGljYXRlcyBoZWF0aW5nLgorICAgICAqIE5lZ2F0aXZlIHZhbHVlIGluZGljYXRlcyBjb29saW5nLgorICAgICAqIDAgaW5kaWNhdGVzIHRlbXBlcmF0dXJlIGNvbnRyb2wgaXMgb2ZmLgorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX1NURUVSSU5HX1dIRUVMX1RFTVAgPSAoCisgICAgICAgIDB4MDUwRAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogVGVtcGVyYXR1cmUgdW5pdHMKKyAgICAgKgorICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0ZW1wZXJhdHVyZSBpcyBpbiBDZWxzaXVzLCBGYWhyZW5oZWl0LCBvciBhCisgICAgICogZGlmZmVyZW50IHVuaXQgZnJvbSBWZWhpY2xlVW5pdCBlbnVtLgorICAgICAqIFRoaXMgcGFyYW1ldGVyIGFmZmVjdHMgYWxsIEhWQUMgdGVtcGVyYXR1cmVzIGluIHRoZSBzeXN0ZW0uCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNnZXQgaXMgbm90IGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlCisgICAgICogSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IgZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBIVkFDX1RFTVBFUkFUVVJFX1VOSVRTID0gKAorICAgICAgICAweDA1MEUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBBY3R1YWwgZmFuIHNwZWVkCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNnZXQgaXMgbm90IGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlCisgICAgICogSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IgZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBIVkFDX0FDVFVBTF9GQU5fU1BFRURfUlBNID0gKAorICAgICAgICAweDA1MEYKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBGYW4gUG9zaXRpb25zIEF2YWlsYWJsZQorICAgICAqCisgICAgICogVGhpcyBpcyBhIGJpdCBtYXNrIG9mIGZhbiBwb3NpdGlvbnMgYXZhaWxhYmxlIGZvciB0aGUgem9uZS4gIEVhY2ggZW50cnkgaW4KKyAgICAgKiB2ZWhpY2xlX2h2YWNfZmFuX2RpcmVjdGlvbiBpcyBzZWxlY3RlZCBieSBiaXQgcG9zaXRpb24uICBGb3IgaW5zdGFuY2UsIGlmCisgICAgICogb25seSB0aGUgRkFOX0RJUkVDVElPTl9GQUNFICgweDEpIGFuZCBGQU5fRElSRUNUSU9OX0RFRlJPU1QgKDB4NCkgYXJlIGF2YWlsYWJsZSwKKyAgICAgKiB0aGVuIHRoaXMgdmFsdWUgc2hhbGwgYmUgc2V0IHRvIDB4MTIuCisgICAgICoKKyAgICAgKiAweDEyID0gKDEgPDwgMSkgfCAoMSA8PCA0KQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6U1RBVElDCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIEhWQUNfRkFOX0RJUkVDVElPTl9BVkFJTEFCTEUgPSAoCisgICAgICAgIDB4MDUxMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgcG93ZXIgc3RhdGUgZm9yIEhWQUMuIFNvbWUgSFZBQyBwcm9wZXJ0aWVzIG11c3QgcmVxdWlyZQorICAgICAqIG1hdGNoaW5nIHBvd2VyIHRvIGJlIHR1cm5lZCBvbiB0byBnZXQgb3V0IG9mIE9GRiBzdGF0ZS4gRm9yIG5vbi16b25lZAorICAgICAqIEhWQUMgcHJvcGVydGllcywgVkVISUNMRV9BTExfWk9ORSBjb3JyZXNwb25kcyB0byBnbG9iYWwgcG93ZXIgc3RhdGUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQGNvbmZpZ19zdHJpbmcgbGlzdCBvZiBIVkFDIHByb3BlcnRpZXMgd2hvc2UgcG93ZXIgaXMgY29udHJvbGxlZCBieSB0aGlzCisgICAgICogICAgICAgICAgICAgICAgcHJvcGVydHkuIEZvcm1hdCBpcyBoZXhhLWRlY2ltYWwgbnVtYmVyICgweC4uLikgc2VwYXJhdGVkCisgICAgICogICAgICAgICAgICAgICAgYnkgY29tbWEgbGlrZSAiMHg1MDAsMHg1MDMiLiBBbGwgem9uZXMgZGVmaW5lZCBpbiB0aGVzZQorICAgICAqICAgICAgICAgICAgICAgIGFmZmVjdGVkIHByb3BlcnRpZXMgbXVzdCBiZSBhdmFpbGFibGUgaW4gdGhlIHByb3BlcnR5LgorICAgICAqLworICAgIEhWQUNfUE9XRVJfT04gPSAoCisgICAgICAgIDB4MDUxMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogT3V0c2lkZSB0ZW1wZXJhdHVyZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFfFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Q09OVElOVU9VUworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpDRUxTSVVTCisgICAgICovCisgICAgRU5WX09VVFNJREVfVEVNUEVSQVRVUkUgPSAoCisgICAgICAgIDB4MDcwMworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogQ2FiaW4gdGVtcGVyYXR1cmUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRXxWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOkNPTlRJTlVPVVMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6Q0VMU0lVUworICAgICAqLworICAgIEVOVl9DQUJJTl9URU1QRVJBVFVSRSA9ICgKKyAgICAgICAgMHgwNzA0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBSYWRpbyBwcmVzZXRzIHN0b3JlZCBvbiB0aGUgQ2FyIHJhZGlvIG1vZHVsZS4gVGhlIGRhdGEgdHlwZSB1c2VkIGlzIGludDMyCisgICAgICogYXJyYXkgd2l0aCB0aGUgZm9sbG93aW5nIGZpZWxkczoKKyAgICAgKiA8dWw+CisgICAgICogICAgPGxpPiBpbnQzMlZhbHVlc1swXTogUHJlc2V0IG51bWJlciA8L2xpPgorICAgICAqICAgIDxsaT4gaW50MzJWYWx1ZXNbMV06IEJhbmQgdHlwZSAoc2VlICNSQURJT19CQU5EX0ZNIGluCisgICAgICogICAgc3lzdGVtL2NvcmUvaW5jbHVkZS9zeXN0ZW0vcmFkaW8uaCkuCisgICAgICogICAgPGxpPiBpbnQzMlZhbHVlc1syXTogQ2hhbm5lbCBudW1iZXIgPC9saT4KKyAgICAgKiAgICA8bGk+IGludDMyVmFsdWVzWzNdOiBTdWIgY2hhbm5lbCBudW1iZXIgPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqCisgICAgICogTk9URTogV2hlbiBnZXR0aW5nIGEgY3VycmVudCBwcmVzZXQgY29uZmlnIE9OTFkgc2V0IHByZXNldCBudW1iZXIgKGkuZS4KKyAgICAgKiBpbnQzMlZhbHVlc1swXSkuIEZvciBzZXR0aW5nIGEgcHJlc2V0IG90aGVyIGZpZWxkcyBhcmUgcmVxdWlyZWQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQGNvbmZpZ19mbGFncyBOdW1iZXIgb2YgcHJlc2V0cyBzdXBwb3J0ZWQKKyAgICAgKi8KKyAgICBSQURJT19QUkVTRVQgPSAoCisgICAgICAgIDB4MDgwMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgYXVkaW8gZm9jdXMgc3RhdGUgb2YgQW5kcm9pZCBzaWRlLiBOb3RlIHRoYXQgY2FyJ3MgYXVkaW8KKyAgICAgKiBtb2R1bGUgbXVzdCBvd24gYXVkaW8gZm9jdXMgYW5kIGdyYW50IGF1ZGlvIGZvY3VzIHRvIEFuZHJvaWQgc2lkZSB3aGVuCisgICAgICogcmVxdWVzdGVkIGJ5IEFuZHJvaWQgc2lkZS4gVGhlIGZvY3VzIGhhcyBib3RoIHBlciBzdHJlYW0gY2hhcmFjdGVyaXN0aWNzCisgICAgICogYW5kIGdsb2JhbCBjaGFyYWN0ZXJpc3RpY3MuCisgICAgICoKKyAgICAgKiBGb2N1cyByZXF1ZXN0IChnZXQgb2YgdGhpcyBwcm9wZXJ0eSkgbXVzdCB0YWtlIHRoZSBmb2xsb3dpbmcgZm9ybToKKyAgICAgKiAgIGludDMyVmFsdWVzWzBdOiBWZWhpY2xlQXVkaW9Gb2N1c1JlcXVlc3QgdHlwZQorICAgICAqICAgaW50MzJWYWx1ZXNbMV06IGJpdCBmbGFncyBvZiBzdHJlYW1zIHJlcXVlc3RlZCBieSB0aGlzIGZvY3VzIHJlcXVlc3QuCisgICAgICogICAgICAgICAgICAgICAgICAgVGhlcmUgY2FuIGJlIHVwIHRvIDMyIHN0cmVhbXMuCisgICAgICogICBpbnQzMlZhbHVlc1syXTogRXh0ZXJuYWwgZm9jdXMgc3RhdGUgZmxhZ3MuIEZvciByZXF1ZXN0LCBvbmx5IGZsYWcgbGlrZQorICAgICAqICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNQTEFZX09OTFlfRkxBRyBvcgorICAgICAqICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNNVVRFX01FRElBX0ZMQUcgY2FuIGJlCisgICAgICogICAgICAgICAgICAgICAgICAgdXNlZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjUExBWV9PTkxZX0ZMQUcgaXMgZm9yIGNhc2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICBsaWtlIHJhZGlvIHdoZXJlIGFuZHJvaWQgc2lkZSBhcHAgc3RpbGwgbmVlZHMgdG8gaG9sZAorICAgICAqICAgICAgICAgICAgICAgICAgIGZvY3VzIGJ1dCBwbGF5YmFjayBpcyBkb25lIG91dHNpZGUgQW5kcm9pZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjTVVURV9NRURJQV9GTEFHIGlzIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgIG11dGluZyBtZWRpYSBjaGFubmVsIGluY2x1ZGluZyByYWRpby4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjUExBWV9PTkxZX0ZMQUcgY2FuIGJlIHNldAorICAgICAqICAgICAgICAgICAgICAgICAgIGV2ZW4gaWYgYW5kcm9pZCBzaWRlIHJlbGVhc2VzIGZvY3VzIChyZXF1ZXN0IHR5cGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICBSRVFVRVNUX1JFTEVBU0UpLiBJbiB0aGF0IGNhc2UsIGF1ZGlvIG1vZHVsZSBtdXN0CisgICAgICogICAgICAgICAgICAgICAgICAgbWFpbnRhaW4gbXV0ZSBzdGF0ZSB1bnRpbCB1c2VyJ3MgZXhwbGljaXQgYWN0aW9uIHRvCisgICAgICogICAgICAgICAgICAgICAgICAgcGxheSBzb21lIG1lZGlhLgorICAgICAqICAgaW50MzJWYWx1ZXNbM106IEN1cnJlbnRseSBhY3RpdmUgYXVkaW8gY29udGV4dHMuIFVzZSBjb21iaW5hdGlvbiBvZgorICAgICAqICAgICAgICAgICAgICAgICAgIGZsYWdzIGZyb20gVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcuCisgICAgICogICAgICAgICAgICAgICAgICAgVGhpcyBjYW4gYmUgdXNlZCBhcyBhIGhpbnQgdG8gYWRqdXN0IGF1ZGlvIHBvbGljeSBvcgorICAgICAqICAgICAgICAgICAgICAgICAgIG90aGVyIHBvbGljeSBkZWNpc2lvbi4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBOb3RlIHRoYXQgdGhlcmUgY2FuIGJlIG11bHRpcGxlIGNvbnRleHQgYWN0aXZlIGF0IHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgIHNhbWUgdGltZS4gQW5kIGFuZHJvaWQgY2FuIHNlbmQgdGhlIHNhbWUgZm9jdXMgcmVxdWVzdAorICAgICAqICAgICAgICAgICAgICAgICAgIHR5cGUgZ2FpbiBkdWUgdG8gY2hhbmdlIGluIGF1ZGlvIGNvbnRleHRzLgorICAgICAqIE5vdGUgdGhhdCBlYWNoIGZvY3VzIHJlcXVlc3QgY2FuIHJlcXVlc3QgbXVsdGlwbGUgc3RyZWFtcyB0aGF0IGlzCisgICAgICogZXhwZWN0ZWQgdG8gYmUgdXNlZCBmb3IgdGhlIGN1cnJlbnQgcmVxdWVzdC4gQnV0IGZvY3VzIHJlcXVlc3QgaXRzZWxmCisgICAgICogaXMgZ2xvYmFsIGJlaGF2aW9yIGFzIEdBSU4gb3IgR0FJTl9UUkFOU0lFTlQgZXhwZWN0cyBhbGwgc291bmRzIHBsYXllZAorICAgICAqIGJ5IGNhcidzIGF1ZGlvIG1vZHVsZSB0byBzdG9wLiBOb3RlIHRoYXQgc3RyZWFtIGFscmVhZHkgYWxsb2NhdGVkIHRvCisgICAgICogYW5kcm9pZCBiZWZvcmUgdGhpcyBmb2N1cyByZXF1ZXN0IG11c3Qgbm90IGJlIGFmZmVjdGVkIGJ5IGZvY3VzCisgICAgICogcmVxdWVzdC4KKyAgICAgKgorICAgICAqIEZvY3VzIHJlc3BvbnNlIChzZXQgYW5kIHN1YnNjcmlwdGlvbiBjYWxsYmFjayBmb3IgdGhpcyBwcm9wZXJ0eSkgbXVzdAorICAgICAqIHRha2UgdGhlIGZvbGxvd2luZyBmb3JtOgorICAgICAqICAgaW50MzJWYWx1ZXNbMF06IFZlaGljbGVBdWRpb0ZvY3VzU3RhdGUgdHlwZQorICAgICAqICAgaW50MzJWYWx1ZXNbMV06IGJpdCBmbGFncyBvZiBzdHJlYW1zIGFsbG93ZWQuCisgICAgICogICBpbnQzMlZhbHVlc1syXTogRXh0ZXJuYWwgZm9jdXMgc3RhdGU6IGJpdCBmbGFncyBvZiBjdXJyZW50bHkgYWN0aXZlCisgICAgICogICAgICAgICAgICAgICAgICAgYXVkaW8gZm9jdXMgaW4gY2FyIHNpZGUgKG91dHNpZGUgQW5kcm9pZCkuIEFjdGl2ZQorICAgICAqICAgICAgICAgICAgICAgICAgIGF1ZGlvIGZvY3VzIGRvZXMgbm90IG5lY2Vzc2FyaWx5IG1lYW4gY3VycmVudGx5CisgICAgICogICAgICAgICAgICAgICAgICAgcGxheWluZywgYnV0IHJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIGhhdmluZyBmb2N1cyBvcgorICAgICAqICAgICAgICAgICAgICAgICAgIHdhaXRpbmcgZm9yIGZvY3VzIChwYXVzZSBzdGF0ZSkuCisgICAgICogICAgICAgICAgICAgICAgICAgT25lIG9yIGNvbWJpbmF0aW9uIG9mIGZsYWdzIGZyb20KKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcuCisgICAgICogICAgICAgICAgICAgICAgICAgMCBtZWFucyBubyBhY3RpdmUgYXVkaW8gZm9jdXMgaG9sZGVyIG91dHNpZGUgQW5kcm9pZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBUaGUgc3RhdGUgbXVzdCBoYXZlIGZvbGxvd2luZyB2YWx1ZXMgZm9yIGVhY2gKKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9Gb2N1c1N0YXRlOgorICAgICAqICAgICAgICAgICAgICAgICAgIEdBSU46IDAgb3IgVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnI1BMQVlfT05MWV9GTEFHCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIHdoZW4gcmFkaW8gaXMgYWN0aXZlIGluIEFuZHJvaWQgc2lkZS4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBHQUlOX1RSQU5TSUVOVDogMC4gQ2FuIGJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNQRVJNQU5FTlRfRkxBRyBvcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjVFJBTlNJRU5UX0ZMQUcgaWYgYW5kcm9pZAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBzaWRlIGhhcyByZXF1ZXN0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgUkVRVUVTVF9HQUlOX1RSQU5TSUVOVF9NQVlfRFVDSyBhbmQgY2FyIHNpZGUgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgZHVja2luZy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBMT1NTOiAwIHdoZW4gbm8gZm9jdXMgaXMgYXVkaW8gaXMgYWN0aXZlIGluIGNhciBzaWRlLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjUEVSTUFORU5UX0ZMQUcgd2hlbiBjYXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgc2lkZSBpcyBwbGF5aW5nIHNvbWV0aGluZyBwZXJtYW5lbnQuCisgICAgICogICAgICAgICAgICAgICAgICAgTE9TU19UUkFOU0lFTlQ6IGFsd2F5cyBtdXN0IGJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNQRVJNQU5FTlRfRkxBRworICAgICAqICAgaW50MzJWYWx1ZXNbM106IGNvbnRleHQgcmVxdWVzdGVkIGJ5IGFuZHJvaWQgc2lkZSB3aGVuIHJlc3BvbmRpbmcgdG8KKyAgICAgKiAgICAgICAgICAgICAgICAgICBmb2N1cyByZXF1ZXN0LiBXaGVuIGNhciBzaWRlIGlzIHRha2luZyBmb2N1cyBhd2F5LAorICAgICAqICAgICAgICAgICAgICAgICAgIHRoaXMgbXVzdCBiZSB6ZXJvLgorICAgICAqCisgICAgICogQSBmb2N1cyByZXNwb25zZSBtdXN0IGJlIHNlbnQgcGVyIGVhY2ggZm9jdXMgcmVxdWVzdCBldmVuIGlmIHRoZXJlIGlzCisgICAgICogbm8gY2hhbmdlIGluIGZvY3VzIHN0YXRlLiBUaGlzIGNhbiBoYXBwZW4gaW4gY2FzZSBsaWtlIGZvY3VzIHJlcXVlc3QKKyAgICAgKiBvbmx5IGludm9sdmluZyBjb250ZXh0IGNoYW5nZSB3aGVyZSBhbmRyb2lkIHNpZGUgc3RpbGwgbmVlZHMgbWF0Y2hpbmcKKyAgICAgKiBmb2N1cyByZXNwb25zZSB0byBjb25maXJtIHRoYXQgYXVkaW8gbW9kdWxlIGhhcyBtYWRlIG5lY2Vzc2FyeSBjaGFuZ2VzLgorICAgICAqCisgICAgICogSWYgY2FyIGRvZXMgbm90IHN1cHBvcnQgQVVESU9fRk9DVVMsIGZvY3VzIGlzIGFzc3VtZWQgdG8gYmUgZ3JhbnRlZAorICAgICAqIGFsd2F5cy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBBVURJT19GT0NVUyA9ICgKKyAgICAgICAgMHgwOTAwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogQSBwcm9wZXJ0eSB0byBhbGxvdyBleHRlcm5hbCBjb21wb25lbnQgdG8gY29udHJvbCBhdWRpbyBmb2N1cy4gRGVwZW5kaW5nIG9uCisgICAgICogSC9XIGFyY2hpdGVjdHVyZSwgYXVkaW8gSEFMIG1heSBuZWVkIHRvIGNvbnRyb2wgYXVkaW8gZm9jdXMgd2hpbGUgdmVoaWNsZQorICAgICAqIEhBTCBpcyBzdGlsbCBpbnRlcmFjdGluZyB3aXRoIHVwcGVyIGxheWVyLiBJbiBzdWNoIGNhc2UsIGF1ZGlvIEhBTCBtYXkgc2V0CisgICAgICogdGhpcyBwcm9wZXJ0eSBhbmQgdmVoaWNsZSBIQUwgbWF5IHVzZSB0aGlzIHByb3BlcnR5IHZhbHVlIHRvIGRlY2lkZQorICAgICAqIHJlc3BvbnNlIHNlbnQgdGhyb3VnaCBBVURJT19GT0NVUyBwcm9wZXJ0eS4KKyAgICAgKiBEYXRhIGZvcm1hdCBpcyB0aGUgc2FtZSBhcyBBVURJT19GT0NVUyBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBBVURJT19GT0NVU19FWFRfU1lOQyA9ICgKKyAgICAgICAgMHgwOTEwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gY29udHJvbCBhdWRpbyB2b2x1bWUgb2YgZWFjaCBhdWRpbyBjb250ZXh0LgorICAgICAqCisgICAgICogVmVoaWNsZVByb3BDb25maWcKKyAgICAgKiAgIGNvbmZpZ0FycmF5WzBdIDogYml0IGZsYWdzIG9mIGFsbCBzdXBwb3J0ZWQgYXVkaW8gY29udGV4dHMgZnJvbQorICAgICAqICAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9Db250ZXh0RmxhZy4gSWYgdGhpcyBpcyAwLCBhdWRpbyB2b2x1bWUgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlZCBwZXIgcGh5c2ljYWwgc3RyZWFtLgorICAgICAqICAgY29uZmlnQXJyYXlbMV0gOiBmbGFncyBkZWZpbmVkIGluIFZlaGljbGVBdWRpb1ZvbHVtZUNhcGFiaWxpdHlGbGFnIHRvCisgICAgICogICAgICAgICAgICAgICAgICAgIHJlcHJlc2VudCBhdWRpbyBtb2R1bGUncyBjYXBhYmlsaXR5LgorICAgICAqICAgY29uZmlnQXJyYXlbMi4uM10gOiByZXNlcnZlZAorICAgICAqICAgY29uZmlnQXJyYXlbNC4uTiszXSA6IG1heGltdW0gdmFsdWVzIGZvciBlYWNoIGF1ZGlvIGNvbnRleHQsIHdoZXJlIE4gaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIGF1ZGlvIGNvbnRleHRzIHByb3ZpZGVkIGluCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnQXJyYXlbMF0sIG1pbmltdW0gdmFsdWUgaXMgYWx3YXlzIDAgd2hpY2gKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2F0ZXMgbXV0ZSBzdGF0ZS4KKyAgICAgKgorICAgICAqIERhdGEgdHlwZSBsb29rcyBsaWtlOgorICAgICAqICAgaW50MzJWYWx1ZXNbMF0gOiBzdHJlYW0gY29udGV4dCBhcyBkZWZpbmVkIGluIFZlaGljbGVBdWRpb0NvbnRleHRGbGFnLgorICAgICAqICAgICAgICAgICAgICAgICAgICBJZiBvbmx5IHBoeXNpY2FsIHN0cmVhbSBpcyBzdXBwb3J0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZ0FycmF5WzBdID09IDApLCB0aGlzIG11c3QgcmVwcmVzZW50IHBoeXNpY2FsCisgICAgICogICAgICAgICAgICAgICAgICAgIHN0cmVhbSBudW1iZXIuCisgICAgICogICBpbnQzMlZhbHVlc1sxXSA6IHZvbHVtZSBsZXZlbCwgdmFsaWQgcmFuZ2UgaXMgMCAobXV0ZSkgdG8gbWF4IGxldmVsCisgICAgICogICAgICAgICAgICAgICAgICAgIGRlZmluZWQgaW4gdGhlIGNvbmZpZy4KKyAgICAgKiAgIGludDMyVmFsdWVzWzJdIDogT25lIG9mIFZlaGljbGVBdWRpb1ZvbHVtZVN0YXRlLgorICAgICAqCisgICAgICogVGhpcyBwcm9wZXJ0eSByZXF1aXJlcyBwZXIgc3RyZWFtIGJhc2VkIGdldC4gSEFMIGltcGxlbWVudGF0aW9uIG11c3QKKyAgICAgKiBjaGVjayBzdHJlYW0gbnVtYmVyIGluIGdldCBjYWxsIHRvIHJldHVybiB0aGUgcmlnaHQgdm9sdW1lLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBjb25maWdfZmxhZ3MgYWxsIGF1ZGlvIGNvbnRleHRzIHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBBVURJT19WT0xVTUUgPSAoCisgICAgICAgIDB4MDkwMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIGFsbG93IGF1ZGlvIHZvbHVtZSBzeW5jIGZyb20gZXh0ZXJuYWwgY29tcG9uZW50cyBsaWtlIGF1ZGlvIEhBTC4KKyAgICAgKiBTb21lIHZlaGljbGUgSEFMIGltcGxlbWVudGF0aW9uIG1heSBnZXQgdm9sdW1lIGNvbnRyb2wgZnJvbSBhdWRpbyBIQUwgYW5kIGluIHN1Y2gKKyAgICAgKiBjYXNlLCBzZXR0aW5nIEFVRElPX1ZPTFVNRV9FWFRfU1lOQyBwcm9wZXJ0eSBtYXkgdHJpZ2dlciBldmVudCBpbiBBVURJT19WT0xVTUUgcHJvcGVydHkuCisgICAgICogRGF0YSBmb3JtYXQgZm9yIHRoaXMgcHJvcGVydHkgaXMgdGhlIHNhbWUgYXMgQVVESU9fVk9MVU1FIHByb3BlcnR5LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBjb25maWdfZmxhZ3MgYWxsIGF1ZGlvIGNvbnRleHRzIHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBBVURJT19WT0xVTUVfRVhUX1NZTkMgPSAoCisgICAgICAgIDB4MDkxMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IGZvciBoYW5kbGluZyB2b2x1bWUgbGltaXQgc2V0IGJ5IHVzZXIuIFRoaXMgbGltaXRzIG1heGltdW0KKyAgICAgKiB2b2x1bWUgdGhhdCBjYW4gYmUgc2V0IHBlciBlYWNoIGNvbnRleHQgb3IgcGh5c2ljYWwgc3RyZWFtLgorICAgICAqCisgICAgICogVmVoaWNsZVByb3BDb25maWcKKyAgICAgKiAgIGNvbmZpZ0FycmF5WzBdIDogYml0IGZsYWdzIG9mIGFsbCBzdXBwb3J0ZWQgYXVkaW8gY29udGV4dHMuIElmIHRoaXMgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgMCwgYXVkaW8gdm9sdW1lIGlzIGNvbnRyb2xsZWQgcGVyIHBoeXNpY2FsIHN0cmVhbS4KKyAgICAgKiAgIGNvbmZpZ0FycmF5WzFdIDogZmxhZ3MgZGVmaW5lZCBpbiBWZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZworICAgICAqICAgICAgICAgICAgICAgICAgICB0byByZXByZXNlbnQgYXVkaW8gbW9kdWxlJ3MgY2FwYWJpbGl0eS4KKyAgICAgKgorICAgICAqIERhdGEgdHlwZSBsb29rcyBsaWtlOgorICAgICAqICAgaW50MzJWYWx1ZXNbMF0gOiBzdHJlYW0gY29udGV4dCBhcyBkZWZpbmVkIGluIFZlaGljbGVBdWRpb0ZvY3VzRmxhZy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgSWYgb25seSBwaHlzaWNhbCBzdHJlYW0gaXMgc3VwcG9ydGVkCisgICAgICogICAgICAgICAgICAgICAgICAgIChjb25maWdBcnJheVswXSA9PSAwKSwgdGhpcyBtdXN0IHJlcHJlc2VudCBwaHlzaWNhbAorICAgICAqICAgICAgICAgICAgICAgICAgICBzdHJlYW0gbnVtYmVyLgorICAgICAqICAgaW50MzJWYWx1ZXNbMV0gOiBtYXhpbXVtIHZvbHVtZSBzZXQgdG8gdGhlIHN0cmVhbS4gSWYgdGhlcmUgaXMgbm8KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgcmVzdHJpY3Rpb24sIHRoaXMgdmFsdWUgbXVzdCBiZSAgYmlnZ2VyIHRoYW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgQVVESU9fVk9MVU1FJ3MgbWF4IHZhbHVlLgorICAgICAqCisgICAgICogSWYgY2FyIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlLCB0aGlzIHByb3BlcnR5IG11c3Qgbm90IGJlCisgICAgICogcG9wdWxhdGVkIGJ5IEhBTC4KKyAgICAgKiBUaGlzIHByb3BlcnR5IHJlcXVpcmVzIHBlciBzdHJlYW0gYmFzZWQgZ2V0LiBIQUwgaW1wbGVtZW50YXRpb24gbXVzdAorICAgICAqIGNoZWNrIHN0cmVhbSBudW1iZXIgaW4gZ2V0IGNhbGwgdG8gcmV0dXJuIHRoZSByaWdodCB2b2x1bWUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQGNvbmZpZ19mbGFncyBhbGwgYXVkaW8gY29udGV4dHMgc3VwcG9ydGVkLgorICAgICAqLworICAgIEFVRElPX1ZPTFVNRV9MSU1JVCA9ICgKKyAgICAgICAgMHgwOTAyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gc2hhcmUgYXVkaW8gcm91dGluZyBwb2xpY3kgb2YgYW5kcm9pZCBzaWRlLiBUaGlzIHByb3BlcnR5IGlzCisgICAgICogc2V0IGF0IHRoZSBiZWdpbm5pbmcgdG8gcGFzcyBhdWRpbyBwb2xpY3kgaW4gYW5kcm9pZCBzaWRlIGRvd24gdG8KKyAgICAgKiB2ZWhpY2xlIEhBTCBhbmQgY2FyIGF1ZGlvIG1vZHVsZS4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIGFzIGEgaGludCB0byBhZGp1c3QgYXVkaW8gcG9saWN5IG9yIG90aGVyIHBvbGljeQorICAgICAqIGRlY2lzaW9uLgorICAgICAqCisgICAgICogICBpbnQzMlZhbHVlc1swXSA6IGF1ZGlvIHN0cmVhbSB3aGVyZSB0aGUgYXVkaW8gZm9yIHRoZSBhcHBsaWNhdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICBjb250ZXh0IG11c3QgYmUgcm91dGVkIGJ5IGRlZmF1bHQuIE5vdGUgdGhhdCB0aGlzIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgIHRoZSBkZWZhdWx0IHNldHRpbmcgZnJvbSBzeXN0ZW0sIGJ1dCBlYWNoIGFwcCBtYXkKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgc3RpbGwgdXNlIGRpZmZlcmVudCBhdWRpbyBzdHJlYW0gZm9yIHdoYXRldmVyIHJlYXNvbi4KKyAgICAgKiAgIGludDMyVmFsdWVzWzFdIDogQWxsIGF1ZGlvIGNvbnRleHRzIHRoYXQgbXVzdCBiZSBzZW50IHRocm91Z2ggdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICBwaHlzaWNhbCBzdHJlYW0uIEZsYWcgaXMgZGVmaW5lZCBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRm9jdXNGbGFnLgorCisgICAgICogU2V0dGluZyBvZiB0aGlzIHByb3BlcnR5IG11c3QgYmUgZG9uZSBmb3IgYWxsIGF2YWlsYWJsZSBwaHlzaWNhbCBzdHJlYW1zCisgICAgICogYmFzZWQgb24gYXVkaW8gSC9XIHZhcmlhbnQgaW5mb3JtYXRpb24gYWNxdWlyZWQgZnJvbSBBVURJT19IV19WQVJJQU5UCisgICAgICogcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpXUklURQorICAgICAqLworICAgIEFVRElPX1JPVVRJTkdfUE9MSUNZID0gKAorICAgICAgICAweDA5MDMKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byByZXR1cm4gYXVkaW8gSC9XIHZhcmlhbnQgdHlwZSB1c2VkIGluIHRoaXMgY2FyLiBUaGlzIGFsbG93cworICAgICAqIGFuZHJvaWQgc2lkZSB0byBzdXBwb3J0IGRpZmZlcmVudCBhdWRpbyBwb2xpY3kgYmFzZWQgb24gSC9XIHZhcmlhbnQgdXNlZC4KKyAgICAgKiBOb3RlIHRoYXQgb3RoZXIgY29tcG9uZW50cyBsaWtlIENhclNlcnZpY2UgbWF5IG5lZWQgb3ZlcmxheSB1cGRhdGUgdG8KKyAgICAgKiBzdXBwb3J0IGFkZGl0aW9uYWwgdmFyaWFudHMuIElmIHRoaXMgcHJvcGVydHkgZG9lcyBub3QKKyAgICAgKiBleGlzdCwgZGVmYXVsdCBhdWRpbyBwb2xpY3kgbXVzdCBiZSB1c2VkLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6U1RBVElDCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEBjb25maWdfZmxhZ3MgQWRkaXRpb25hbCBpbmZvIG9uIGF1ZGlvIEgvVy4gTXVzdCB1c2UKKyAgICAgKiAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcgZm9yIHRoaXMuCisgICAgICovCisgICAgQVVESU9fSFdfVkFSSUFOVCA9ICgKKyAgICAgICAgMHgwOTA0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byBwYXNzIGhpbnQgb24gZXh0ZXJuYWwgYXVkaW8gcm91dGluZy4gV2hlbiBhbmRyb2lkIHNpZGUKKyAgICAgKiByZXF1ZXN0IGZvY3VzIHdpdGggVmVoaWNsZUF1ZGlvRXh0Rm9jdXNmbGFnLCB0aGlzCisgICAgICogcHJvcGVydHkgbXVzdCBiZSBzZXQgYmVmb3JlIHNldHRpbmcgQVVESU9fRk9DVVMgcHJvcGVydHkgYXMgYSBoaW50IGZvcgorICAgICAqIGV4dGVybmFsIGF1ZGlvIHNvdXJjZSByb3V0aW5nLgorICAgICAqIE5vdGUgdGhhdCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgYWxvbmUgbXVzdCBub3QgdHJpZ2dlciBhbnkgY2hhbmdlLgorICAgICAqIEF1ZGlvIHJvdXRpbmcgbXVzdCBiZSBjaGFuZ2VkIG9ubHkgd2hlbiBBVURJT19GT0NVUyBwcm9wZXJ0eSBpcyBzZXQuCisgICAgICogTm90ZSB0aGF0IHRoaXMgcHJvcGVydHkgYWxsb3dzIHBhc3NpbmcgY3VzdG9tIHZhbHVlIGFzIGxvbmcgYXMgaXQgaXMKKyAgICAgKiBkZWZpbmVkIGluIFZlaGljbGVQcm9wQ29uZmlnI2NvbmZpZ1N0cmluZy4gVGhpcyBhbGxvd3Mgc3VwcG9ydGluZworICAgICAqIG5vbi1zdGFuZGFyZCByb3V0aW5nIG9wdGlvbnMgdGhyb3VnaCB0aGlzIHByb3BlcnR5LgorICAgICAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBzZXBhcmF0ZSBuYW1lIHNwYWNlIGZvciBjdXN0b20gcHJvcGVydHkgdG8KKyAgICAgKiBwcmV2ZW50IGNvbmZsaWN0IGluIGZ1dHVyZSBhbmRyb2lkIHJlbGVhc2VzLgorICAgICAqIEVuYWJsaW5nIGVhY2ggZXh0ZXJuYWwgcm91dGluZyBvcHRpb24gaXMgZG9uZSBieSBlbmFibGluZyBlYWNoIGJpdCBmbGFnCisgICAgICogZm9yIHRoZSByb3V0aW5nLgorICAgICAqIFRoaXMgcHJvcGVydHkgY2FuIHN1cHBvcnQgdXAgdG8gMTI4IGV4dGVybmFsIHJvdXRpbmdzLgorICAgICAqIFRvIGdpdmUgZnVsbCBmbGV4aWJpbGl0eSwgdGhlcmUgaXMgbm8gc3RhbmRhcmQgZGVmaW5pdGlvbiBmb3IgZWFjaCBiaXQKKyAgICAgKiBmbGFnIGFuZCBhc3NpZ25pbmcgZWFjaCBiaWcgZmxhZyB0byBzcGVjaWZpYyByb3V0aW5nIHR5cGUgaXMgZGVjaWRlZCBieQorICAgICAqIFZlaGljbGVQcm9wQ29uZmlnI2NvbmZpZ1N0cmluZy4gIFZlaGljbGVQcm9wQ29uZmlnI2NvbmZpZ1N0cmluZyBoYXMKKyAgICAgKiBmb3JtYXQgb2YgZWFjaCBlbnRyeSBzZXBhcmF0ZWQgYnkgJywnIGFuZCBlYWNoIGVudHJ5IGhhcyBmb3JtYXQgb2YKKyAgICAgKiBiaXRGbGFnUG9zaXRvbjp0eXBlU3RyaW5nWzpwaHlzaWNhbFN0cmVhbU51bWJlcl0uCisgICAgICogIGJpdEZsYWdQb3NpdGlvbjogcmVwcmVzZW50cyB3aGljaCBiaWcgZmxhZyB3aWxsIGJlIHNldCB0byBlbmFibGUgdGhpcworICAgICAqICByb3V0aW5nLiAwIG1lYW5zCisgICAgICogICAgTFNCIGluIGludDMyVmFsdWVzWzBdLiAzMSB3aWxsIGJlIE1TQiBpbiBpbnQzMlZhbHVlc1swXS4gMTI3IHdpbGwgTVNCCisgICAgICogICAgaW4gaW50MzJWYWx1ZXNbM10uCisgICAgICogIHR5cGVTdHJpbmc6IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBleHRlcm5hbCByb3V0aW5nLiBTb21lIHR5cGVzIGFyZQorICAgICAqICAgIGFscmVhZHkgZGVmaW5lZCBpbiBBVURJT19FWFRfUk9VVElOR19TT1VSQ0VfKiBhbmQgdXNlIHRoZW0gZmlyc3QKKyAgICAgKiAgICBiZWZvcmUgYWRkaW5nIHNvbWV0aGluZyBjdXN0b20uIEFwcGxpY2F0aW9ucyB3aWxsIGZpbmQgZWFjaCByb3V0aW5nCisgICAgICogICAgdXNpbmcgdGhpcyBzdHJpbmcuCisgICAgICogIHBoeXNpY2FsU3RyZWFtTnVtYmVyOiBUaGlzIHBhcnQgaXMgb3B0aW9uYWwgYW5kIHJlcHJlc2VudHMgcGh5c2ljYWwKKyAgICAgKiAgICBzdHJlYW0gdG8gYW5kcm9pZCB3aGljaCB3aWxsIGJlIGRpc2FibGVkIHdoZW4gdGhpcyByb3V0aW5nIGlzIGVuYWJsZWQuCisgICAgICogICAgSWYgbm90IHNwZWNpZmllZCwgdGhpcyByb3V0aW5nIG11c3Qgbm90IGFmZmVjdCBwaHlzaWNhbCBzdHJlYW1zIHRvCisgICAgICogICAgYW5kcm9pZC4KKyAgICAgKiBBcyBhbiBleGFtcGxlLCBsZXQncyBhc3N1bWUgYSBzeXN0ZW0gd2l0aCB0d28gcGh5c2ljYWwgc3RyZWFtcywgMCBmb3IKKyAgICAgKiBtZWRpYSBhbmQgMSBmb3IgbmF2IGd1aWRhbmNlLiBBbmQgbGV0J3MgYXNzdW1lIGV4dGVybmFsIHJvdXRpbmcgb3B0aW9uCisgICAgICogb2YgYW0gZm0gcmFkaW8sIGV4dGVybmFsIG5hdmlnYXRpb24gZ3VpZGFuY2UsIHNhdGVsbGl0ZSByYWRpbywgYW5kIG9uZQorICAgICAqIGN1c3RvbS4gTGV0J3MgYXNzdW1lIHRoYXQgcmFkaW8gYW5kIHNhdGVsbGl0ZSByZXBsYWNlcyBwaHlzaWNhbCBzdHJlYW0gMAorICAgICAqIGFuZCBleHRlcm5hbCBuYXZpZ2F0aW9uIHJlcGxhY2VzIHBoeXNpY2FsIHN0cmVhbSAxLiBBbmQgYml0IGZsYWcgd2lsbCBiZQorICAgICAqIGFzc2lnbmVkIGluIHRoZSBvcmRlciBsaXN0ZWQgYWJvdmUuIFRoaXMgY29uZmlndXJhdGlvbiB3aWxsIGxvb2sgbGlrZQorICAgICAqIHRoaXMgaW4gY29uZmlnX3N0cmluZzoKKyAgICAgKiAgIjA6UkFESU9fQU1fRk06MCwxOkVYVF9OQVZfR1VJREFOQ0U6MSwyOlJBRElPX1NBVEVMTElURTowLDM6Y29tLnRlc3QuU09NRVRISU5HX0NVU1RPTSIKKyAgICAgKiBXaGVuIGFuZHJvaWQgcmVxdWVzdHMgUkFESU9fQU1fRk0sIGludDMyVmFsdWVzWzBdIHdpbGwgYmUgc2V0IHRvIDB4MS4KKyAgICAgKiBXaGVuIGFuZHJvaWQgcmVxdWVzdHMgUkFESU9fU0FURUxMSVRFICsgRVhUX05BVl9HVUlEQU5DRSwgaW50MzJWYWx1ZXNbMF0KKyAgICAgKiB3aWxsIGJlIHNldCB0byAweDJ8MHg0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBjb25maWdfc3RyaW5nIExpc3Qgb2YgYWxsIGF2YWlhYmxlIGV4dGVybmFsIHNvdXJjZSBpbiB0aGUgc3lzdGVtLgorICAgICAqLworICAgIEFVRElPX0VYVF9ST1VUSU5HX0hJTlQgPSAoCisgICAgICAgIDB4MDkwNQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgc3RhdGUgb2YgYXVkaW8gc3RyZWFtLiBBdWRpbyBIQUwgc2hvdWxkIHNldCB0aGlzIHdoZW4gYSBzdHJlYW0gaXMgc3RhcnRpbmcgb3IKKyAgICAgKiBlbmRpbmcuIENhciBzZXJ2aWNlIGNhbiByZXF1ZXN0IGZvY3VzIGZvciBhdWRpbyBwbGF5ZWQgd2l0aG91dCBmb2N1cy4gSWYgc3VjaCBmZWF0dXJlCisgICAgICogaXMgbm90IHJlcXVpcmVkLCB0aGlzIHByb3BlcnR5IGRvZXMgbm90IG5lZWQgdG8gYmUgaW1wbGVtZW50ZWQuCisgICAgICogQ2FyIHNlcnZpY2Ugb25seSBtb25pdG9ycyBzZXR0aW5nIG9mIHRoaXMgcHJvcGVydHkuIEl0IGlzIHVwIHRvIGVhY2ggdmVoaWNsZSBIQUwKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiB0byBhZGQgbmVjZXNzYXJ5IGFjdGlvbiBidXQgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB3aWxsIGJlIGRvaW5nIG5vdGhpbmcgb24KKyAgICAgKiB0aGlzIHByb3BlcnkncyBzZXQgZnJvbSBhdWRpbyBIQUwuCisgICAgICogQWN0dWFsIHN0cmVhbWluZyBvZiBkYXRhIHNob3VsZCBiZSBkb25lIG9ubHkgYWZ0ZXIgZ2V0dGluZyBmb2N1cyBmb3IgdGhlIGdpdmVuIHN0cmVhbSBmcm9tCisgICAgICogY2FyIGF1ZGlvIG1vZHVsZS4gRm9jdXMgY2FuIGJlIGFscmVhZHkgZ3JhbnRlZCB3aGVuIHN0cmVhbSBpcyBzdGFydGVkLiBGb2N1cyBzdGF0ZSBjYW4gYmUKKyAgICAgKiBtb25pdG9yZWQgYnkgbW9uaXRvcmluZyBBVURJT19GT0NVUyBwcm9wZXJ0eS4gSWYgY2FyIGRvZXMgbm90IHN1cHBvcnQKKyAgICAgKiBBVURJT19GT0NVUyBwcm9wZXJ0eSwgdGhlcmUgaXMgbm8gbmVlZCB0byBtb25pdG9yIGZvY3VzIGFzIGZvY3VzIGlzIGFzc3VtZWQgdG8gYmUKKyAgICAgKiBncmFudGVkIGFsd2F5cy4KKyAgICAgKiBEYXRhIGhhcyB0aGUgZm9sbG93aW5nIGZvcm1hdDoKKyAgICAgKiAgIGludDMyX2FycmF5WzBdIDogdmVoaWNsZV9hdWRpb19zdHJlYW1fc3RhdGUsIDA6IHN0b3BwZWQsIDE6IHN0YXJ0ZWQKKyAgICAgKiAgIGludDMyX2FycmF5WzFdIDogc3RyZWFtIG51bWJlciBsaWtlIDAsIDEsIDIsIC4uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEFVRElPX1NUUkVBTV9TVEFURSAgPSAoCisgICAgICAgIDB4MDkwNgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIGNvbnRyb2wgY2FyIHNwZWNpZmljIGF1ZGlvIHBhcmFtZXRlcnMuIEVhY2ggcGFyYW1ldGVyIGlzIGRlZmluZWQgYXMgc3RyaW5nIGtleS0KKyAgICAgKiB2YWx1ZSBwYWlyLgorICAgICAqIHNldCBhbmQgZXZlbnQgbm90aWZpY2F0aW9uIGNhbiBwYXNzIG11bHRpcGxlIHBhcmFtZXRlcnMgdXNpbmcgdGhlCisgICAgICogZm9sbG93aW5nIGZvcm1hdDoKKyAgICAgKiAgIGtleTE9dmFsdWUxO2tleTI9dmFsdWUyOy4uLgorICAgICAqIGdldCBjYWxsIGNhbiByZXF1ZXN0IG11bHRpcGxlIHBhcmFtZXRlcnMgdXNpbmcgdGhlIGZvbGxvd2luZyBmb3JtYXQ6CisgICAgICogICBrZXkxO2tleTI7Li4uCisgICAgICogUmVzcG9uc2UgZm9yIGdldCBjYWxsIGhhcyB0aGUgc2FtZSBmb3JtYXQgYXMgc2V0LgorICAgICAqCisgICAgICogVmVoaWNsZVByb3BDb25maWcKKyAgICAgKiAgIGNvbmZpZ1N0cmluZzogZ2l2ZSBsaXN0IG9mIGFsbCBzdXBwb3J0ZWQga2V5cyB3aXRoIDsgYXMgc2VwYXJhdG9yLiBGb3IgZXhhbXBsZToKKyAgICAgKiAgICAga2V5MTtrZXkyOy4uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEFVRElPX1BBUkFNRVRFUlMgPSAoCisgICAgICAgIDB4OTA3CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpTVFJJTkcKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gY29udHJvbCBwb3dlciBzdGF0ZSBvZiBhcHBsaWNhdGlvbiBwcm9jZXNzb3IKKyAgICAgKgorICAgICAqIEl0IGlzIGFzc3VtZWQgdGhhdCBBUCdzIHBvd2VyIHN0YXRlIGlzIGNvbnRyb2xsZXIgYnkgc2VwYXJhdGUgcG93ZXIKKyAgICAgKiBjb250cm9sbGVyLgorICAgICAqCisgICAgICogRm9yIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24sIFZlaGljbGVQcm9wQ29uZmlnLmNvbmZpZ0ZsYWdzIGNhbgorICAgICAqIGhhdmUgYml0IGZsYWcgY29tYmluaW5nIHZhbHVlcyBpbiBWZWhpY2xlQXBQb3dlclN0YXRlQ29uZmlnRmxhZy4KKyAgICAgKgorICAgICAqIFZhbHVlIGZvcm1hdCBmb3IgSVZlaGljbGUjZ2V0IC8gSVZlaGljbGUjc3Vic2NyaWJlOgorICAgICAqICAgaW50MzJWYWx1ZXNbMF0gOiB2ZWhpY2xlX2FwX3Bvd2VyX3N0YXRlX3R5cGUKKyAgICAgKiAgIGludDMyVmFsdWVzWzFdIDogYWRkaXRpb25hbCBwYXJhbWV0ZXIgcmVsZXZhbnQgZm9yIGVhY2ggc3RhdGUsCisgICAgICogICAgICAgICAgICAgICAgICAgIDAgaWYgbm90IHVzZWQuCisgICAgICogVmFsdWUgZm9ybWF0IGZvciBJVmVoaWNsZSNzZXQ6CisgICAgICogICBpbnQzMlZhbHVlc1swXSA6IHZlaGljbGVfYXBfcG93ZXJfc3RhdGVfc2V0X3R5cGUKKyAgICAgKiAgIGludDMyVmFsdWVzWzFdIDogYWRkaXRpb25hbCBwYXJhbWV0ZXIgcmVsZXZhbnQgZm9yIGVhY2ggcmVxdWVzdC4gc2hvdWxkIGJlIDAgaWYgbm90IHVzZWQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVkVISUNMRV9QUk9QX0NIQU5HRV9NT0RFX09OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVkVISUNMRV9QUk9QX0FDQ0VTU19SRUFEX1dSSVRFCisgICAgICovCisgICAgQVBfUE9XRVJfU1RBVEUgPSAoCisgICAgICAgIDB4MEEwMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIHJlcHJlc2VudCBicmlnaHRuZXNzIG9mIHRoZSBkaXNwbGF5LiBTb21lIGNhcnMgaGF2ZSBzaW5nbGUKKyAgICAgKiBjb250cm9sIGZvciB0aGUgYnJpZ2h0bmVzcyBvZiBhbGwgZGlzcGxheXMgYW5kIHRoaXMgcHJvcGVydHkgaXMgdG8gc2hhcmUKKyAgICAgKiBjaGFuZ2UgaW4gdGhhdCBjb250cm9sLgorICAgICAqCisgICAgICogSWYgdGhpcyBpcyB3cml0YWJsZSwgYW5kcm9pZCBzaWRlIGNhbiBzZXQgdGhpcyB2YWx1ZSB3aGVuIHVzZXIgY2hhbmdlcworICAgICAqIGRpc3BsYXkgYnJpZ2h0bmVzcyBmcm9tIFNldHRpbmdzLiBJZiB0aGlzIGlzIHJlYWQgb25seSwgdXNlciBtYXkgc3RpbGwKKyAgICAgKiBjaGFuZ2UgZGlzcGxheSBicmlnaHRuZXNzIGZyb20gU2V0dGluZ3MsIGJ1dCB0aGF0IHdpbGwgbm90IGJlIHJlZmxlY3RlZAorICAgICAqIHRvIG90aGVyIGRpc3BsYXlzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIERJU1BMQVlfQlJJR0hUTkVTUyA9ICgKKyAgICAgICAgMHgwQTAxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byByZXBvcnQgYm9vdHVwIHJlYXNvbiBmb3IgdGhlIGN1cnJlbnQgcG93ZXIgb24uIFRoaXMgaXMgYQorICAgICAqIHN0YXRpYyBwcm9wZXJ0eSB0aGF0IHdpbGwgbm90IGNoYW5nZSBmb3IgdGhlIHdob2xlIGR1cmF0aW9uIHVudGlsIHBvd2VyCisgICAgICogb2ZmLiBGb3IgZXhhbXBsZSwgZXZlbiBpZiB1c2VyIHByZXNzZXMgcG93ZXIgb24gYnV0dG9uIGFmdGVyIGF1dG9tYXRpYworICAgICAqIHBvd2VyIG9uIHdpdGggZG9vciB1bmxvY2ssIGJvb3R1cCByZWFzb24gbXVzdCBzdGF5IHdpdGgKKyAgICAgKiBWZWhpY2xlQXBQb3dlckJvb3R1cFJlYXNvbiNVU0VSX1VOTE9DSy4KKyAgICAgKgorICAgICAqIGludDMyVmFsdWVzWzBdIG11c3QgYmUgVmVoaWNsZUFwUG93ZXJCb290dXBSZWFzb24uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpTVEFUSUMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgKi8KKyAgICBBUF9QT1dFUl9CT09UVVBfUkVBU09OID0gKAorICAgICAgICAweDBBMDIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIGZlZWQgSC9XIGlucHV0IGV2ZW50cyB0byBhbmRyb2lkCisgICAgICoKKyAgICAgKiBpbnQzMlZhbHVlc1swXSA6IGFjdGlvbiBkZWZpbmVkIGJ5IFZlaGljbGVId0tleUlucHV0QWN0aW9uCisgICAgICogaW50MzJWYWx1ZXNbMV0gOiBrZXkgY29kZSwgbXVzdCB1c2Ugc3RhbmRhcmQgYW5kcm9pZCBrZXkgY29kZQorICAgICAqIGludDMyVmFsdWVzWzJdIDogdGFyZ2V0IGRpc3BsYXkgZGVmaW5lZCBpbiBWZWhpY2xlRGlzcGxheS4gRXZlbnRzIG5vdAorICAgICAqICAgICAgICAgICAgICAgICAgdGllZCB0byBzcGVjaWZpYyBkaXNwbGF5IG11c3QgYmUgc2VudCB0bworICAgICAqICAgICAgICAgICAgICAgICAgVmVoaWNsZURpc3BsYXkjTUFJTi4KKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQGNvbmZpZ19mbGFncworICAgICAqLworICAgIEhXX0tFWV9JTlBVVCA9ICgKKyAgICAgICAgMHgwQTEwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gZGVmaW5lIGluc3RydW1lbnQgY2x1c3RlciBpbmZvcm1hdGlvbi4KKyAgICAgKiBGb3IgVmVoaWNsZUluc3RydW1lbnRDbHVzdGVyVHlwZTpFWFRFUk5BTF9ESVNQTEFZOgorICAgICAqICBSRUFEOgorICAgICAqICAgaW50MzJWYWx1ZXNbMF0gOiBUaGUgY3VycmVudCBzY3JlZW4gbW9kZSBpbmRleC4gU2NyZWVuIG1vZGUgaXMgZGVmaW5lZAorICAgICAqICAgICAgICAgICAgICAgICAgICBhcyBhIGNvbmZpZ3VyYXRpb24gaW4gY2FyIHNlcnZpY2UgYW5kIHJlcHJlc2VudHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlYSBvZiBzY3JlZW4gaXMgcmVuZGVyYWJsZS4KKyAgICAgKiAgIGludDMyVmFsdWVzWzFdIDogQW5kcm9pZCBjYW4gcmVuZGVyIHRvIGluc3RydW1lbnQgY2x1c3RlciAoPTEpIG9yCisgICAgICogICAgICAgICAgICAgICAgICAgIG5vdCg9MCkuIFdoZW4gdGhpcyBpcyAwLCBpbnN0cnVtZW50IGNsdXN0ZXIgbWF5IGJlCisgICAgICogICAgICAgICAgICAgICAgICAgIHJlbmRlcmluZyBzb21lIGluZm9ybWF0aW9uIGluIHRoZSBhcmVhIGFsbG9jYXRlZCBmb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgYW5kcm9pZCBhbmQgYW5kcm9pZCBzaWRlIHJlbmRlcmluZyBpcyBpbnZpc2libGUuCisgICAgICogIFdSSVRFIGZyb20gYW5kcm9pZDoKKyAgICAgKiAgIGludDMyVmFsdWVzWzBdIDogUHJlZmVycmVkIG1vZGUgZm9yIGFuZHJvaWQgc2lkZS4gRGVwZW5kaW5nIG9uIHRoZSBhcHAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHRvIGluc3RydW1lbnQgY2x1c3RlciwgcHJlZmVycmVkIG1vZGUgY2FuCisgICAgICogICAgICAgICAgICAgICAgICAgIGNoYW5nZS4gSW5zdHJ1bWVudCBjbHVzdGVyIHN0aWxsIG5lZWRzIHRvIHNlbmQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZXZlbnQgd2l0aCBuZXcgbW9kZSB0byB0cmlnZ2VyIGFjdHVhbCBtb2RlIGNoYW5nZS4KKyAgICAgKiAgIGludDMyVmFsdWVzWzFdIDogVGhlIGN1cnJlbnQgYXBwIGNvbnRleHQgcmVsZXZhbnQgZm9yIGluc3RydW1lbnQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgY2x1c3Rlci4gVXNlIHRoZSBzYW1lIGZsYWcgd2l0aCBWZWhpY2xlQXVkaW9Gb2N1c0ZsYWcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgYnV0IHRoaXMgY29udGV4dCByZXByZXNlbnRzIGFjdGl2ZSBhcHBzLCBub3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgYWN0aXZlIGF1ZGlvLiBJbnN0cnVtZW50IGNsdXN0ZXIgc2lkZSBtYXkgY2hhbmdlIG1vZGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZGVwZW5kaW5nIG9uIHRoZSBjdXJyZW50bHkgYWN0aXZlIGNvbnRleHRzLgorICAgICAqICBXaGVuIHN5c3RlbSBib290cyB1cCwgQW5kcm9pZCBzaWRlIHdpbGwgd3JpdGUgezAsIDAsIDAsIDB9IHdoZW4gaXQgaXMKKyAgICAgKiAgcmVhZHkgdG8gcmVuZGVyIHRvIGluc3RydW1lbnQgY2x1c3Rlci4gQmVmb3JlIHRoaXMgbWVzc2FnZSwgcmVuZGVyaW5nCisgICAgICogIGZyb20gYW5kcm9pZCBtdXN0IG5vdCBiZSB2aXNpYmxlIGluIHRoZSBjbHVzdGVyLgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAY29uZmlnQXJyYXkgMDpWZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlIDE6aHcgdHlwZQorICAgICAqLworICAgIElOU1RSVU1FTlRfQ0xVU1RFUl9JTkZPID0gKAorICAgICAgICAweDBBMjAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IGRhdGUgYW5kIHRpbWUsIGVuY29kZWQgYXMgVW5peCB0aW1lLgorICAgICAqIFRoaXMgdmFsdWUgZGVub3RlcyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgdGhhdCBoYXZlIGVsYXBzZWQgc2luY2UKKyAgICAgKiAxLzEvMTk3MC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX1NFVAorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpTRUNTCisgICAgICovCisgICAgVU5JWF9USU1FID0gKAorICAgICAgICAweDBBMzAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDY0CisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEN1cnJlbnQgdGltZSBvbmx5LgorICAgICAqIFNvbWUgdmVoaWNsZXMgbWF5IG5vdCBrZWVwIHRyYWNrIG9mIGRhdGUuICBUaGlzIHByb3BlcnR5IG9ubHkgYWZmZWN0cworICAgICAqIHRoZSBjdXJyZW50IHRpbWUsIGluIHNlY29uZHMgZHVyaW5nIHRoZSBkYXkuICBUaHVzLCB0aGUgbWF4IHZhbHVlIGZvcgorICAgICAqIHRoaXMgcGFyYW1ldGVyIGlzIDg2LDQwMCAoMjQgKiA2MCAqIDYwKQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fU0VUCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEB1bml0IFZlaGljbGVVbml0OlNFQ1MKKyAgICAgKi8KKyAgICBDVVJSRU5UX1RJTUVfSU5fU0VDT05EUyA9ICgKKyAgICAgICAgMHgwQTMxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBEb29yIHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGFuIGludGVnZXIgaW4gY2FzZSBhIGRvb3IgbWF5IGJlIHNldCB0byBhIHBhcnRpY3VsYXIgcG9zaXRpb24uCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBmdWxseSBvcGVuLCBtaW4gdmFsdWUgKDApIGluZGljYXRlcyBmdWxseSBjbG9zZWQuCisgICAgICoKKyAgICAgKiBTb21lIHZlaGljbGVzIChtaW5pdmFucykgY2FuIG9wZW4gdGhlIGRvb3IgZWxlY3Ryb25pY2FsbHkuICBIZW5jZSwgdGhlCisgICAgICogYWJpbGl0eSB0byB3cml0ZSB0aGlzIHByb3BlcnR5LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIERPT1JfUE9TID0gKAorICAgICAgICAweDBCMDAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6RE9PUiksCisKKyAgICAvKioKKyAgICAgKiBEb29yIG1vdmUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBET09SX01PVkUgPSAoCisgICAgICAgIDB4MEIwMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpET09SKSwKKworICAgIC8qKgorICAgICAqIERvb3IgbG9jaworICAgICAqCisgICAgICogJ3RydWUnIGluZGljYXRlcyBkb29yIGlzIGxvY2tlZAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIERPT1JfTE9DSyA9ICgKKyAgICAgICAgMHgwQjAyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6RE9PUiksCisKKyAgICAvKioKKyAgICAgKiBNaXJyb3IgWiBQb3NpdGlvbgorICAgICAqCisgICAgICogUG9zaXRpdmUgdmFsdWUgaW5kaWNhdGVzIHRpbHQgdXB3YXJkcywgbmVnYXRpdmUgdmFsdWUgaXMgZG93bndhcmRzCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgTUlSUk9SX1pfUE9TID0gKAorICAgICAgICAweDBCNDAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6TUlSUk9SKSwKKworICAgIC8qKgorICAgICAqIE1pcnJvciBaIE1vdmUKKyAgICAgKgorICAgICAqIFBvc2l0aXZlIHZhbHVlIGluZGljYXRlcyB0aWx0IHVwd2FyZHMsIG5lZ2F0aXZlIHZhbHVlIGlzIGRvd253YXJkcworICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIE1JUlJPUl9aX01PVkUgPSAoCisgICAgICAgIDB4MEI0MQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpNSVJST1IpLAorCisgICAgLyoqCisgICAgICogTWlycm9yIFkgUG9zaXRpb24KKyAgICAgKgorICAgICAqIFBvc2l0aXZlIHZhbHVlIGluZGljYXRlIHRpbHQgcmlnaHQsIG5lZ2F0aXZlIHZhbHVlIGlzIGxlZnQKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBNSVJST1JfWV9QT1MgPSAoCisgICAgICAgIDB4MEI0MgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpNSVJST1IpLAorCisgICAgLyoqCisgICAgICogTWlycm9yIFkgTW92ZQorICAgICAqCisgICAgICogUG9zaXRpdmUgdmFsdWUgaW5kaWNhdGUgdGlsdCByaWdodCwgbmVnYXRpdmUgdmFsdWUgaXMgbGVmdAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIE1JUlJPUl9ZX01PVkUgPSAoCisgICAgICAgIDB4MEI0MworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpNSVJST1IpLAorCisgICAgLyoqCisgICAgICogTWlycm9yIExvY2sKKyAgICAgKgorICAgICAqIFRydWUgaW5kaWNhdGVzIG1pcnJvciBwb3NpdGlvbnMgYXJlIGxvY2tlZCBhbmQgbm90IGNoYW5nZWFibGUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBNSVJST1JfTE9DSyA9ICgKKyAgICAgICAgMHgwQjQ0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIE1pcnJvciBGb2xkCisgICAgICoKKyAgICAgKiBUcnVlIGluZGljYXRlcyBtaXJyb3JzIGFyZSBmb2xkZWQKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBNSVJST1JfRk9MRCA9ICgKKyAgICAgICAgMHgwQjQ1CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgbWVtb3J5IHNlbGVjdAorICAgICAqCisgICAgICogVGhpcyBwYXJhbWV0ZXIgc2VsZWN0cyB0aGUgbWVtb3J5IHByZXNldCB0byB1c2UgdG8gc2VsZWN0IHRoZSBzZWF0CisgICAgICogcG9zaXRpb24uIFRoZSBtaW5WYWx1ZSBpcyBhbHdheXMgMCwgYW5kIHRoZSBtYXhWYWx1ZSBkZXRlcm1pbmVzIHRoZQorICAgICAqIG51bWJlciBvZiBzZWF0IHBvc2l0aW9ucyBhdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBGb3IgaW5zdGFuY2UsIGlmIHRoZSBkcml2ZXIncyBzZWF0IGhhcyAzIG1lbW9yeSBwcmVzZXRzLCB0aGUgbWF4VmFsdWUKKyAgICAgKiB3aWxsIGJlIDMuIFdoZW4gdGhlIHVzZXIgd2FudHMgdG8gc2VsZWN0IGEgcHJlc2V0LCB0aGUgZGVzaXJlZCBwcmVzZXQKKyAgICAgKiBudW1iZXIgKDEsIDIsIG9yIDMpIGlzIHNldC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOldSSVRFCisgICAgICovCisgICAgU0VBVF9NRU1PUllfU0VMRUNUID0gKAorICAgICAgICAweDBCODAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IG1lbW9yeSBzZXQKKyAgICAgKgorICAgICAqIFRoaXMgc2V0dGluZyBhbGxvd3MgdGhlIHVzZXIgdG8gc2F2ZSB0aGUgY3VycmVudCBzZWF0IHBvc2l0aW9uIHNldHRpbmdzCisgICAgICogaW50byB0aGUgc2VsZWN0ZWQgcHJlc2V0IHNsb3QuICBUaGUgbWF4VmFsdWUgZm9yIGVhY2ggc2VhdCBwb3NpdGlvbgorICAgICAqIHNoYWxsIG1hdGNoIHRoZSBtYXhWYWx1ZSBmb3IgU0VBVF9NRU1PUllfU0VMRUNULgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6V1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX01FTU9SWV9TRVQgPSAoCisgICAgICAgIDB4MEI4MQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXRiZWx0IGJ1Y2tsZWQKKyAgICAgKgorICAgICAqIFRydWUgaW5kaWNhdGVzIGJlbHQgaXMgYnVja2xlZC4KKyAgICAgKgorICAgICAqIFdyaXRlIGFjY2VzcyBpbmRpY2F0ZXMgYXV0b21hdGljIHNlYXQgYnVja2xpbmcgY2FwYWJpbGl0aWVzLiAgVGhlcmUgYXJlCisgICAgICogbm8ga25vd24gY2FycyBhdCB0aGlzIHRpbWUsIGJ1dCB5b3UgbmV2ZXIga25vdy4uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfQkVMVF9CVUNLTEVEID0gKAorICAgICAgICAweDBCODIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXRiZWx0IGhlaWdodCBwb3NpdGlvbgorICAgICAqCisgICAgICogQWRqdXN0cyB0aGUgc2hvdWxkZXIgYmVsdCBhbmNob3IgcG9pbnQuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBoaWdoZXN0IHBvc2l0aW9uCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBsb3dlc3QgcG9zaXRpb24KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0JFTFRfSEVJR0hUX1BPUyA9ICgKKyAgICAgICAgMHgwQjgzCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdGJlbHQgaGVpZ2h0IG1vdmUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0JFTFRfSEVJR0hUX01PVkUgPSAoCisgICAgICAgIDB4MEI4NAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgZm9yZS9hZnQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFNldHMgdGhlIHNlYXQgcG9zaXRpb24gZm9yd2FyZCAoY2xvc2VyIHRvIHN0ZWVyaW5nIHdoZWVsKSBhbmQgYmFja3dhcmRzLgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgY2xvc2VzdCB0byB3aGVlbCwgbWluIHZhbHVlIGluZGljYXRlcyBtb3N0IHJlYXJ3YXJkCisgICAgICogcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9GT1JFX0FGVF9QT1MgPSAoCisgICAgICAgIDB4MEI4NQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgZm9yZS9hZnQgbW92ZQorICAgICAqCisgICAgICogTW92ZXMgdGhlIHNlYXQgcG9zaXRpb24gZm9yd2FyZCBhbmQgYWZ0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfRk9SRV9BRlRfTU9WRSA9ICgKKyAgICAgICAgMHgwQjg2CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBiYWNrcmVzdCBhbmdsZSAxIHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBCYWNrcmVzdCBhbmdsZSAxIGlzIHRoZSBhY3R1YXRvciBjbG9zZXN0IHRvIHRoZSBib3R0b20gb2YgdGhlIHNlYXQuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBhbmdsaW5nIGZvcndhcmQgdG93YXJkcyB0aGUgc3RlZXJpbmcgd2hlZWwuCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBmdWxsIHJlY2xpbmUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9CQUNLUkVTVF9BTkdMRV8xX1BPUyA9ICgKKyAgICAgICAgMHgwQjg3CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBiYWNrcmVzdCBhbmdsZSAxIG1vdmUKKyAgICAgKgorICAgICAqIE1vdmVzIHRoZSBiYWNrcmVzdCBmb3J3YXJkIG9yIHJlY2xpbmUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9CQUNLUkVTVF9BTkdMRV8xX01PVkUgPSAoCisgICAgICAgIDB4MEI4OAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgYmFja3Jlc3QgYW5nbGUgMiBwb3NpdGlvbgorICAgICAqCisgICAgICogQmFja3Jlc3QgYW5nbGUgMiBpcyB0aGUgbmV4dCBhY3R1YXRvciB1cCBmcm9tIHRoZSBib3R0b20gb2YgdGhlIHNlYXQuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBhbmdsaW5nIGZvcndhcmQgdG93YXJkcyB0aGUgc3RlZXJpbmcgd2hlZWwuCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBmdWxsIHJlY2xpbmUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9CQUNLUkVTVF9BTkdMRV8yX1BPUyA9ICgKKyAgICAgICAgMHgwQjg5CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBiYWNrcmVzdCBhbmdsZSAyIG1vdmUKKyAgICAgKgorICAgICAqIE1vdmVzIHRoZSBiYWNrcmVzdCBmb3J3YXJkIG9yIHJlY2xpbmUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9CQUNLUkVTVF9BTkdMRV8yX01PVkUgPSAoCisgICAgICAgIDB4MEI4QQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgaGVpZ2h0IHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBzZWF0IGhlaWdodC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIGhpZ2hlc3QgcG9zaXRpb24uCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBsb3dlc3QgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUlHSFRfUE9TID0gKAorICAgICAgICAweDBCOEIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IGhlaWdodCBtb3ZlCisgICAgICoKKyAgICAgKiBNb3ZlcyB0aGUgc2VhdCBoZWlnaHQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUlHSFRfTU9WRSA9ICgKKyAgICAgICAgMHgwQjhDCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBkZXB0aCBwb3NpdGlvbgorICAgICAqCisgICAgICogU2V0cyB0aGUgc2VhdCBkZXB0aCwgZGlzdGFuY2UgZnJvbSBiYWNrIHJlc3QgdG8gZnJvbnQgZWRnZSBvZiBzZWF0LgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgbG9uZ2VzdCBkZXB0aCBwb3NpdGlvbi4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIHNob3J0ZXN0IHBvc2l0aW9uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfREVQVEhfUE9TID0gKAorICAgICAgICAweDBCOEQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IGRlcHRoIG1vdmUKKyAgICAgKgorICAgICAqIEFkanVzdHMgdGhlIHNlYXQgZGVwdGguCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9ERVBUSF9NT1ZFID0gKAorICAgICAgICAweDBCOEUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IHRpbHQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFNldHMgdGhlIHNlYXQgdGlsdC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIGZyb250IGVkZ2Ugb2Ygc2VhdCBoaWdoZXIgdGhhbiBiYWNrIGVkZ2UuCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBmcm9udCBlZGdlIG9mIHNlYXQgbG93ZXIgdGhhbiBiYWNrIGVkZ2UuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9USUxUX1BPUyA9ICgKKyAgICAgICAgMHgwQjhGCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCB0aWx0IG1vdmUKKyAgICAgKgorICAgICAqIFRpbHRzIHRoZSBzZWF0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfVElMVF9NT1ZFID0gKAorICAgICAgICAweDBCOTAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBMdW1iZXIgZm9yZS9hZnQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFB1c2hlcyB0aGUgbHVtYmFyIHN1cHBvcnQgZm9yd2FyZCBhbmQgYmFja3dhcmRzCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBtb3N0IGZvcndhcmQgcG9zaXRpb24uCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBtb3N0IHJlYXJ3YXJkIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfTFVNQkFSX0ZPUkVfQUZUX1BPUyA9ICgKKyAgICAgICAgMHgwQjkxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogTHVtYmFyIGZvcmUvYWZ0IG1vdmUKKyAgICAgKgorICAgICAqIEFkanVzdHMgdGhlIGx1bWJhciBzdXBwb3J0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfTFVNQkFSX0ZPUkVfQUZUX01PVkUgPSAoCisgICAgICAgIDB4MEI5MgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIEx1bWJhciBzaWRlIHN1cHBvcnQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFNldHMgdGhlIGFtb3VudCBvZiBsYXRlcmFsIGx1bWJhciBzdXBwb3J0LgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgd2lkZXN0IGx1bWJhciBzZXR0aW5nIChpLmUuIGxlYXN0IHN1cHBvcnQpCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyB0aGlubmVzdCBsdW1iYXIgc2V0dGluZy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0xVTUJBUl9TSURFX1NVUFBPUlRfUE9TID0gKAorICAgICAgICAweDBCOTMKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBMdW1iYXIgc2lkZSBzdXBwb3J0IG1vdmUKKyAgICAgKgorICAgICAqIEFkanVzdHMgdGhlIGFtb3VudCBvZiBsYXRlcmFsIGx1bWJhciBzdXBwb3J0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfTFVNQkFSX1NJREVfU1VQUE9SVF9NT1ZFID0gKAorICAgICAgICAweDBCOTQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBIZWFkcmVzdCBoZWlnaHQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFNldHMgdGhlIGhlYWRyZXN0IGhlaWdodC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIHRhbGxlc3Qgc2V0dGluZy4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIHNob3J0ZXN0IHNldHRpbmcuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUFEUkVTVF9IRUlHSFRfUE9TID0gKAorICAgICAgICAweDBCOTUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEhlYWRyZXN0IGhlaWdodCBtb3ZlCisgICAgICoKKyAgICAgKiBNb3ZlcyB0aGUgaGVhZHJlc3QgdXAgYW5kIGRvd24uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUFEUkVTVF9IRUlHSFRfTU9WRSA9ICgKKyAgICAgICAgMHgwQjk2CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogSGVhZHJlc3QgYW5nbGUgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFNldHMgdGhlIGFuZ2xlIG9mIHRoZSBoZWFkcmVzdC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIG1vc3QgdXByaWdodCBhbmdsZS4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIHNoYWxsb3dlc3QgaGVhZHJlc3QgYW5nbGUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUFEUkVTVF9BTkdMRV9QT1MgPSAoCisgICAgICAgIDB4MEI5NworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIEhlYWRyZXN0IGFuZ2xlIG1vdmUKKyAgICAgKgorICAgICAqIEFkanVzdHMgdGhlIGFuZ2xlIG9mIHRoZSBoZWFkcmVzdAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfSEVBRFJFU1RfQU5HTEVfTU9WRSA9ICgKKyAgICAgICAgMHgwQjk4CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogSGVhZHJlc3QgZm9yZS9hZnQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIEFkanVzdHMgdGhlIGhlYWRyZXN0IGZvcndhcmRzIGFuZCBiYWNrd2FyZHMuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBwb3NpdGlvbiBjbG9zZXN0IHRvIGZyb250IG9mIGNhci4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIHBvc2l0aW9uIGNsb3Nlc3QgdG8gcmVhciBvZiBjYXIuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUFEUkVTVF9GT1JFX0FGVF9QT1MgPSAoCisgICAgICAgIDB4MEI5OQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIEhlYWRyZXN0IGZvcmUvYWZ0IG1vdmUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0hFQURSRVNUX0ZPUkVfQUZUX01PVkUgPSAoCisgICAgICAgIDB4MEI5QQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFdpbmRvdyBQb3NpdGlvbgorICAgICAqCisgICAgICogTWF4ID0gd2luZG93IHVwIC8gY2xvc2VkCisgICAgICogTWluID0gd2luZG93IGRvd24gLyBvcGVuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgV0lORE9XX1BPUyA9ICgKKyAgICAgICAgMHgwQkMwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBXaW5kb3cgTW92ZQorICAgICAqCisgICAgICogTWF4ID0gd2luZG93IHVwIC8gY2xvc2VkCisgICAgICogTWluID0gd2luZG93IGRvd24gLyBvcGVuCisgICAgICogTWFnbml0dWRlIGRlbm90ZXMgcmVsYXRpdmUgc3BlZWQuICBJLmUuICsyIGlzIGZhc3RlciB0aGFuICsxIGluIHJhaXNpbmcKKyAgICAgKiB0aGUgd2luZG93LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFdJTkRPV19NT1ZFID0gKAorICAgICAgICAweDBCQzEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFdpbmRvdyBWZW50IFBvc2l0aW9uCisgICAgICoKKyAgICAgKiBUaGlzIGZlYXR1cmUgaXMgdXNlZCB0byBjb250cm9sIHRoZSB2ZW50IGZlYXR1cmUgb24gYSBzdW5yb29mLgorICAgICAqCisgICAgICogTWF4ID0gdmVudCBvcGVuCisgICAgICogTWluID0gdmVudCBjbG9zZWQKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBXSU5ET1dfVkVOVF9QT1MgPSAoCisgICAgICAgIDB4MEJDMgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogV2luZG93IFZlbnQgTW92ZQorICAgICAqCisgICAgICogVGhpcyBmZWF0dXJlIGlzIHVzZWQgdG8gY29udHJvbCB0aGUgdmVudCBmZWF0dXJlIG9uIGEgc3Vucm9vZi4KKyAgICAgKgorICAgICAqIE1heCA9IHZlbnQgb3BlbgorICAgICAqIE1pbiA9IHZlbnQgY2xvc2VkCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgV0lORE9XX1ZFTlRfTU9WRSA9ICgKKyAgICAgICAgMHgwQkMzCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBXaW5kb3cgTG9jaworICAgICAqCisgICAgICogVHJ1ZSBpbmRpY2F0ZXMgd2luZG93cyBhcmUgbG9ja2VkIGFuZCBjYW4ndCBiZSBtb3ZlZC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBXSU5ET1dfTE9DSyA9ICgKKyAgICAgICAgMHgwQkM0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKK307CisKKy8qKgorICogQml0IGZsYWdzIGZvciBmYW4gZGlyZWN0aW9uCisgKi8KK2VudW0gVmVoaWNsZUh2YWNGYW5EaXJlY3Rpb24gOiBpbnQzMl90IHsKKyAgRkFDRSA9IDB4MSwKKyAgRkxPT1IgPSAweDIsCisgIEZBQ0VfQU5EX0ZMT09SID0gMHgzLAorICBERUZST1NUID0gMHg0LAorICBERUZST1NUX0FORF9GTE9PUiA9IDB4NSwKK307CisKKy8qKgorICogQ29uc3RhbnRzIHJlbGV2YW50IHRvIHJhZGlvLgorICovCitlbnVtIFZlaGljbGVSYWRpb0NvbnN0YW50cyA6IGludDMyX3QgeworICAvKiogTWluaW11bSB2YWx1ZSBmb3IgdGhlIHJhZGlvIHByZXNldCAqLworICBWRUhJQ0xFX1JBRElPX1BSRVNFVF9NSU5fVkFMVUUgPSAxLAorfTsKKworZW51bSBWZWhpY2xlQXVkaW9Gb2N1c1JlcXVlc3QgOiBpbnQzMl90IHsKKyAgUkVRVUVTVF9HQUlOID0gMHgxLAorICBSRVFVRVNUX0dBSU5fVFJBTlNJRU5UID0gMHgyLAorICBSRVFVRVNUX0dBSU5fVFJBTlNJRU5UX01BWV9EVUNLID0gMHgzLAorICAvKioKKyAgICogVGhpcyBpcyBmb3IgdGhlIGNhc2Ugd2hlcmUgYW5kcm9pZCBzaWRlIHBsYXlzIHNvdW5kIGxpa2UgVUkgZmVlZGJhY2sKKyAgICogYW5kIGNhciBzaWRlIGRvZXMgbm90IG5lZWQgdG8gZHVjayBleGlzdGluZyBwbGF5YmFjayBhcyBsb25nIGFzCisgICAqIHJlcXVlc3RlZCBzdHJlYW0gaXMgYXZhaWxhYmxlLgorICAgKi8KKyAgUkVRVUVTVF9HQUlOX1RSQU5TSUVOVF9OT19EVUNLID0gMHg0LAorICBSRVFVRVNUX1JFTEVBU0UgPSAweDUsCisKK307CisKK2VudW0gVmVoaWNsZUF1ZGlvRm9jdXNTdGF0ZSA6IGludDMyX3QgeworICAvKioKKyAgICogQW5kcm9pZCBzaWRlIGhhcyBwZXJtYW5lbnQgZm9jdXMgYW5kIGNhbiBwbGF5IGFsbG93ZWQgc3RyZWFtcy4KKyAgICovCisgIFNUQVRFX0dBSU4gPSAweDEsCisKKyAgLyoqCisgICAqIEFuZHJvaWQgc2lkZSBoYXMgdHJhbnNpZW50IGZvY3VzIGFuZCBjYW4gcGxheSBhbGxvd2VkIHN0cmVhbXMuCisgICAqLworICBTVEFURV9HQUlOX1RSQU5TSUVOVCA9IDB4MiwKKworICAvKioKKyAgICogQ2FyIGF1ZGlvIG1vZHVsZSBpcyBwbGF5aW5nIGd1aWRhbmNlIGtpbmQgb2Ygc291bmQgb3V0c2lkZSBBbmRyb2lkLgorICAgKiBBbmRyb2lkIHNpZGUgY2FuIHN0aWxsIHBsYXkgdGhyb3VnaCBhbGxvd2VkIHN0cmVhbXMgd2l0aCBkdWNraW5nLgorICAgKi8KKyAgU1RBVEVfTE9TU19UUkFOU0lFTlRfQ0FOX0RVQ0sgPSAweDMsCisKKyAgLyoqCisgICAqIENhciBhdWRpbyBtb2R1bGUgaXMgcGxheWluZyB0cmFuc2llbnQgc291bmQgb3V0c2lkZSBBbmRyb2lkLiBBbmRyb2lkIHNpZGUKKyAgICogbXVzdCBzdG9wIHBsYXlpbmcgYW55IHNvdW5kcy4KKyAgICovCisgIFNUQVRFX0xPU1NfVFJBTlNJRU5UID0gMHg0LAorCisgIC8qKgorICAgKiBBbmRyb2lkIHNpZGUgaGFzIGxvc3QgZm9jdXMgYW5kIGNhbm5vdCBwbGF5IGFueSBzb3VuZC4KKyAgICovCisgIFNUQVRFX0xPU1MgPSAweDUsCisKKyAgLyoqCisgICAqIGNhciBhdWRpbyBtb2R1bGUgaXMgcGxheWluZyBzYWZldHkgY3JpdGljYWwgc291bmQsIGFuZCBBbmRyb2lkIHNpZGUgY2Fubm90CisgICAqIHJlcXVlc3QgZm9jdXMgdW50aWwgdGhlIGN1cnJlbnQgc3RhdGUgaXMgZmluaXNoZWQuIGNhciBhdWRpbyBtb2R1bGUKKyAgICogcmVzdG9yZSBpdCB0byB0aGUgcHJldmlvdXMgc3RhdGUgd2hlbiBpdCBjYW4gYWxsb3cgQW5kcm9pZCB0byBwbGF5LgorICAgKi8KKyAgU1RBVEVfTE9TU19UUkFOU0lFTlRfRVhMQ1VTSVZFID0gMHg2LAorCit9OworCisvKioKKyAqIEZsYWdzIHRvIHJlcHJlc2VudCBtdWx0aXBsZSBzdHJlYW1zIGJ5IGNvbWJpbmluZyB0aGVzZS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9TdHJlYW1GbGFnIDogaW50MzJfdCB7CisgIFNUUkVBTTBfRkxBRyA9ICgweDEgPDwgMCksCisgIFNUUkVBTTFfRkxBRyA9ICgweDEgPDwgMSksCisgIFNUUkVBTTJfRkxBRyA9ICgweDEgPDwgMiksCit9OworCisvKioKKyAqIFJlcHJlc2VudHMgc3RyZWFtIG51bWJlciAoYWx3YXlzIDAgdG8gTiAtMSB3aGVyZSBOIGlzIG1heCBudW1iZXIgb2Ygc3RyZWFtcykuCisgKiBDYW4gYmUgdXNlZCBmb3IgYXVkaW8gcmVsYXRlZCBwcm9wZXJ0eSBleHBlY3Rpbmcgb25lIHN0cmVhbS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9TdHJlYW0gOiBpbnQzMl90IHsKKyAgU1RSRUFNMCA9IDAsCisgIFNUUkVBTTEgPSAxLAorfTsKKworLyoqCisgKiBGbGFnIHRvIHJlcHJlc2VudCBleHRlcm5hbCBmb2N1cyBzdGF0ZSAob3V0c2lkZSBBbmRyb2lkKS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcgOiBpbnQzMl90IHsKKyAgLyoqCisgICAqIE5vIGV4dGVybmFsIGZvY3VzIGhvbGRlci4KKyAgICovCisgIE5PTkVfRkxBRyA9IDB4MCwKKworICAvKioKKyAgICogQ2FyIHNpZGUgKG91dHNpZGUgQW5kcm9pZCkgaGFzIGNvbXBvbmVudCBob2xkaW5nIEdBSU4ga2luZCBvZiBmb2N1cyBzdGF0ZS4KKyAgICovCisgIFBFUk1BTkVOVF9GTEFHID0gMHgxLAorCisgIC8qKgorICAgKiBDYXIgc2lkZSAob3V0c2lkZSBBbmRyb2lkKSBoYXMgY29tcG9uZW50IGhvbGRpbmcgR0FJTl9UUkFOU0lFTlQga2luZCBvZgorICAgKiBmb2N1cyBzdGF0ZS4KKyAgICovCisgIFRSQU5TSUVOVF9GTEFHID0gMHgyLAorCisgIC8qKgorICAgKiBDYXIgc2lkZSBpcyBleHBlY3RlZCB0byBwbGF5IHNvbWV0aGluZyB3aGlsZSBmb2N1cyBpcyBoZWxkIGJ5IEFuZHJvaWQgc2lkZS4KKyAgICogT25lIGV4YW1wbGUgY2FuIGJlIHJhZGlvIGF0dGFjaGVkIGluIGNhciBzaWRlLiBCdXQgQW5kcm9pZCdzIHJhZGlvIGFwcAorICAgKiBzdGlsbCBtdXN0IGhhdmUgZm9jdXMsIGFuZCBBbmRyb2lkIHNpZGUgbXVzdCBiZSBpbiBHQUlOIHN0YXRlLCBidXQKKyAgICogbWVkaWEgc3RyZWFtIHdpbGwgbm90IGJlIGFsbG9jYXRlZCB0byBBbmRyb2lkIHNpZGUgYW5kIGNhciBzaWRlIGNhbiBwbGF5CisgICAqIHJhZGlvIGFueSB0aW1lIHdoaWxlIHRoaXMgZmxhZyBpcyBhY3RpdmUuCisgICAqLworICBQTEFZX09OTFlfRkxBRyA9IDB4NCwKKworICAvKioKKyAgICogQ2FyIHNpZGUgbXVzdCBtdXRlIGFueSBtZWRpYSBpbmNsdWRpbmcgcmFkaW8uIFRoaXMgY2FuIGJlIHVzZWQgd2l0aCBhbnkKKyAgICogZm9jdXMgcmVxdWVzdCBpbmNsdWRpbmcgR0FJTiogYW5kIFJFTEVBU0UuCisgICAqLworICBNVVRFX01FRElBX0ZMQUcgPSAweDgsCit9OworCisvKioKKyAqIEluZGV4IGluIGludDMyVmFsdWVzIGZvciBWZWhpY2xlUHJvcGVydHkjQVVESU9fRk9DVVMgcHJvcGVydHkuCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvRm9jdXNJbmRleCA6IGludDMyX3QgeworICBGT0NVUyA9IDAsCisgIFNUUkVBTVMgPSAxLAorICBFWFRFUk5BTF9GT0NVU19TVEFURSA9IDIsCisgIEFVRElPX0NPTlRFWFRTID0gMywKK307CisKKy8qKgorICogRmxhZ3MgdG8gdGVsbCB0aGUgY3VycmVudCBhdWRpbyBjb250ZXh0LgorICovCitlbnVtIFZlaGljbGVBdWRpb0NvbnRleHRGbGFnIDogaW50MzJfdCB7CisgIC8qKiBNdXNpYyBwbGF5YmFjayBpcyBjdXJyZW50bHkgYWN0aXZlLiAqLworICBNVVNJQ19GTEFHID0gMHgxLAorCisgIC8qKiBOYXZpZ2F0aW9uIGlzIGN1cnJlbnRseSBydW5uaW5nLiAqLworICBOQVZJR0FUSU9OX0ZMQUcgPSAweDIsCisKKyAgLyoqIFZvaWNlIGNvbW1hbmQgc2Vzc2lvbiBpcyBjdXJyZW50bHkgcnVubmluZy4gKi8KKyAgVk9JQ0VfQ09NTUFORF9GTEFHID0gMHg0LAorCisgIC8qKiBWb2ljZSBjYWxsIGlzIGN1cnJlbnRseSBhY3RpdmUuICovCisgIENBTExfRkxBRyA9IDB4OCwKKworICAvKioKKyAgICogQWxhcm0gaXMgYWN0aXZlLgorICAgKiBUaGlzIG11c3QgYmUgb25seSB1c2VkIGluIFZlaGljbGVQcm9wZXJ0eSNBVURJT19ST1VUSU5HX1BPTElDWS4KKyAgICovCisgIEFMQVJNX0ZMQUcgPSAweDEwLAorCisgIC8qKgorICAgKiBOb3RpZmljYXRpb24gc291bmQgaXMgYWN0aXZlLgorICAgKiBUaGlzIG11c3QgYmUgb25seSB1c2VkIGluIFZlaGljbGVQcm9wZXJ0eSNBVURJT19ST1VUSU5HX1BPTElDWS4KKyAgICovCisgIE5PVElGSUNBVElPTl9GTEFHID0gMHgyMCwKKworICAvKioKKyAgICogQ29udGV4dCB1bmtub3duLiBPbmx5IHVzZWQgZm9yIFZlaGljbGVQcm9wZXJ0eSNBVURJT19ST1VUSU5HX1BPTElDWSB0bworICAgKiByZXByZXNlbnQgZGVmYXVsdCBzdHJlYW0gZm9yIHVua25vd24gY29udGVudHMuCisgICAqLworICBVTktOT1dOX0ZMQUcgPSAweDQwLAorCisgIC8qKiBTYWZldHkgYWxlcnQgLyB3YXJuaW5nIGlzIHBsYXllZC4gKi8KKyAgU0FGRVRZX0FMRVJUX0ZMQUcgPSAweDgwLAorCisgIC8qKiBDRCAvIERWRCBraW5kIG9mIGF1ZGlvIGlzIHBsYXllZCAqLworICBDRF9ST01fRkxBRyA9IDB4MTAwLAorCisgIC8qKiBBdXggYXVkaW8gaW5wdXQgaXMgcGxheWVkICovCisgIEFVWF9BVURJT19GTEFHID0gMHgyMDAsCisKKyAgLyoqIHN5c3RlbSBzb3VuZCBsaWtlIFVJIGZlZWRiYWNrICovCisgIFNZU1RFTV9TT1VORF9GTEFHID0gMHg0MDAsCisKKyAgLyoqIFJhZGlvIGlzIHBsYXllZCAqLworICBSQURJT19GTEFHID0gMHg4MDAsCisKKyAgLyoqIEV4dCBzb3VyY2UgaXMgcGxheWVkLiBUaGlzIGlzIGZvciB0YWdnaW5nIGdlbmVyaWMgZXh0IHNvdXJjZXMuICovCisgIEVYVF9TT1VSQ0VfRkxBRyA9IDB4MTAwMCwKK307CisKKy8qKgorICogZmxhZ3MgdG8gcmVwcmVzZW50IGNhcGFiaWxpdHkgb2YgYXVkaW8gdm9sdW1lIHByb3BlcnR5LgorICogdXNlZCBpbiBjb25maWdBcnJheVsxXSBvZiBWZWhpY2xlUHJvcENvbmZpZy4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZyA6IGludDMyX3QgeworICAvKioKKyAgICogRXh0ZXJuYWwgYXVkaW8gbW9kdWxlIG9yIHZlaGljbGUgaGFsIGhhcyBwZXJzaXN0ZW50IHN0b3JhZ2UKKyAgICogdG8ga2VlcCB0aGUgdm9sdW1lIGxldmVsLiBUaGlzIG11c3QgYmUgc2V0IG9ubHkgd2hlbiBwZXIgY29udGV4dAorICAgKiB2b2x1bWUgbGV2ZWwgaXMgc3VwcG9ydGVkLiBXaGVuIHRoaXMgaXMgc2V0LCBhdWRpbyB2b2x1bWUgbGV2ZWwgcGVyCisgICAqIGVhY2ggY29udGV4dCB3aWxsIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBwcm9wZXJ0eSB3aGVuIHN5c3RlbSBzdGFydHMgdXAuCisgICAqIEFuZCBleHRlcm5hbCBhdWRpbyBtb2R1bGUgaXMgYWxzbyBleHBlY3RlZCB0byBhZGp1c3Qgdm9sdW1lIGF1dG9tYXRpY2FsbHkKKyAgICogd2hlbmV2ZXIgdGhlcmUgaXMgYW4gYXVkaW8gY29udGV4dCBjaGFuZ2UuCisgICAqIFdoZW4gdGhpcyBmbGFnIGlzIG5vdCBzZXQsIGFuZHJvaWQgc2lkZSB3aWxsIGFzc3VtZSB0aGF0IHRoZXJlIGlzIG5vCisgICAqIHBlcnNpc3RlbnQgc3RvcmFnZSBhbmQgc3RvcmVkIHZhbHVlIGluIGFuZHJvaWQgc2lkZSB3aWxsIGJlIHVzZWQgdG8KKyAgICogaW5pdGlhbGl6ZSB0aGUgdm9sdW1lIGxldmVsLiBBbmQgYW5kcm9pZCBzaWRlIHdpbGwgc2V0IHZvbHVtZSBsZXZlbAorICAgKiBvZiBlYWNoIHBoeXNpY2FsIHN0cmVhbXMgd2hlbmV2ZXIgdGhlcmUgaXMgYW4gYXVkaW8gY29udGV4dCBjaGFuZ2UuCisgICAqLworICBQRVJTSVNURU5UX1NUT1JBR0UgPSAweDEsCisKKyAgLyoqCisgICAqIFdoZW4gdGhpcyBmbGFnIGlzIHNldCwgdGhlIEgvVyBjYW4gc3VwcG9ydCBvbmx5IHNpbmdsZSBtYXN0ZXIgdm9sdW1lIGZvcgorICAgKiBhbGwgc3RyZWFtcy4KKyAgICogVGhlcmUgaXMgbm8gd2F5IHRvIHNldCB2b2x1bWUgbGV2ZWwgZGlmZmVyZW50bHkgcGVyIGVhY2ggc3RyZWFtIG9yIGNvbnRleHQuCisgICAqLworICBNQVNURVJfVk9MVU1FX09OTFkgPSAweDIsCit9OworCisvKioKKyAqIGVudW0gdG8gcmVwcmVzZW50IGF1ZGlvIHZvbHVtZSBzdGF0ZS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9Wb2x1bWVTdGF0ZSA6IGludDMyX3QgeworICBTVEFURV9PSyA9IDAsCisKKyAgLyoqCisgICAqIEF1ZGlvIHZvbHVtZSBoYXMgcmVhY2hlZCB2b2x1bWUgbGltaXQgc2V0IGluCisgICAqIFZlaGljbGVQcm9wZXJ0eSNBVURJT19WT0xVTUVfTElNSVQgYW5kIHVzZXIncyByZXF1ZXN0IHRvIGluY3JlYXNlIHZvbHVtZQorICAgKiBmdXJ0aGVyIGlzIG5vdCBhbGxvd2VkLgorICAgKi8KKyAgTElNSVRfUkVBQ0hFRCA9IDEsCit9OworCisvKioKKyAqIEluZGV4IGluIGludDMyVmFsdWVzIGZvciBWZWhpY2xlUHJvcGVydHkjQVVESU9fVk9MVU1FIHByb3BlcnR5LgorICovCitlbnVtIFZlaGljbGVBdWRpb1ZvbHVtZUluZGV4IDogaW50MzJfdCB7CisgIElOREVYX1NUUkVBTSA9IDAsCisgIElOREVYX1ZPTFVNRSA9IDEsCisgIElOREVYX1NUQVRFID0gMiwKK307CisKKy8qKgorICogSW5kZXggaW4gaW50MzJWYWx1ZXMgZm9yIFZlaGljbGVQcm9wZXJ0eSNBVURJT19WT0xVTUVfTElNSVQgcHJvcGVydHkuCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvVm9sdW1lTGltaXRJbmRleCA6IGludDMyX3QgeworICBTVFJFQU0gPSAwLAorICBNQVhfVk9MVU1FID0gMSwKK307CisKKy8qKgorICogSW5kZXggaW4gaW50MzJWYWx1ZXMgZm9yIFZlaGljbGVQcm9wZXJ0eSNBVURJT19ST1VUSU5HX1BPTElDWSBwcm9wZXJ0eS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9Sb3V0aW5nUG9saWN5SW5kZXggOiBpbnQzMl90IHsKKyAgU1RSRUFNID0gMCwKKyAgQ09OVEVYVFMgPSAxLAorfTsKKworLyoqCisgKiBGbGFnIHRvIGJlIHVzZWQgaW4gVmVoaWNsZVByb3BDb25maWcjY29uZmlnRmxhZ3MgZm9yCisgKiBWZWhpY2xlUHJvcGVydHkjQVVESU9fSFdfVkFSSUFOVC4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9Id1ZhcmlhbnRDb25maWdGbGFnIDogaW50MzJfdCB7CisgIC8qKgorICAgKiBGbGFnIHRvIHRlbGwgdGhhdCByYWRpbyBpcyBpbnRlcm5hbCB0byBhbmRyb2lkIGFuZCByYWRpbyBtdXN0CisgICAqIGJlIHRyZWF0ZWQgbGlrZSBvdGhlciBhbmRyb2lkIHN0cmVhbSBsaWtlIG1lZGlhLgorICAgKiBXaGVuIHRoaXMgZmxhZyBpcyBub3Qgc2V0IG9yIEFVRElPX0hXX1ZBUklBTlQgZG9lcyBub3QgZXhpc3QsCisgICAqIHJhZGlvIGlzIHRyZWF0ZWQgYXMgZXh0ZXJuYWwgbW9kdWxlLiBUaGlzIGJyaW5zIHNvbWUgZGVsdGEgaW4gYXVkaW8gZm9jdXMKKyAgICogaGFuZGxpbmcgYXMgd2VsbC4KKyAgICovCisgIElOVEVSTkFMX1JBRElPX0ZMQUcgPSAweDEsCit9OworCitlbnVtIFZlaGljbGVBcFBvd2VyU3RhdGVDb25maWdGbGFnIDogaW50MzJfdCAvKiBOT1RFOiB0eXBlIGlzIGd1ZXNzZWQgKi8geworICAvKioKKyAgICogQVAgY2FuIGVudGVyIGRlZXAgc2xlZXAgc3RhdGUuIElmIG5vdCBzZXQsIEFQIHdpbGwgYWx3YXlzIHNodXRkb3duIGZyb20KKyAgICogVmVoaWNsZUFwUG93ZXJTdGF0ZSNTSFVURE9XTl9QUkVQQVJFIHBvd2VyIHN0YXRlLgorICAgKi8KKyAgRU5BQkxFX0RFRVBfU0xFRVBfRkxBRyA9IDB4MSwKKworICAvKioKKyAgICogVGhlIHBvd2VyIGNvbnRyb2xsZXIgY2FuIHBvd2VyIG9uIEFQIGZyb20gb2ZmIHN0YXRlIGFmdGVyIHRpbWVvdXQKKyAgICogc3BlY2lmaWVkIGluIFZlaGljbGVBcFBvd2VyU2V0IFZFSElDTEVfQVBfUE9XRVJfU0VUX1NIVVRET1dOX1JFQURZIG1lc3NhZ2UuCisgICAqLworICBDT05GSUdfU1VQUE9SVF9USU1FUl9QT1dFUl9PTl9GTEFHID0gMHgyLAorfTsKKworZW51bSBWZWhpY2xlQXBQb3dlclN0YXRlIDogaW50MzJfdCAvKiBOT1RFOiB0eXBlIGlzIGd1ZXNzZWQgKi8geworICAvKiogdmVoaWNsZSBIQUwgd2lsbCBuZXZlciBwdWJsaXNoIHRoaXMgc3RhdGUgdG8gQVAgKi8KKyAgT0ZGID0gMCwKKworICAvKiogdmVoaWNsZSBIQUwgd2lsbCBuZXZlciBwdWJsaXNoIHRoaXMgc3RhdGUgdG8gQVAgKi8KKyAgREVFUF9TTEVFUCA9IDEsCisKKyAgLyoqIEFQIGlzIG9uIGJ1dCBkaXNwbGF5IG11c3QgYmUgb2ZmLiAqLworICBPTl9ESVNQX09GRiA9IDIsCisKKyAgLyoqIEFQIGlzIG9uIHdpdGggZGlzcGxheSBvbi4gVGhpcyBzdGF0ZSBhbGxvd3MgZnVsbCB1c2VyIGludGVyYWN0aW9uLiAqLworICBPTl9GVUxMID0gMywKKworICAvKioKKyAgICogVGhlIHBvd2VyIGNvbnRyb2xsZXIgaGFzIHJlcXVlc3RlZCBBUCB0byBzaHV0ZG93bi4gQVAgY2FuIGVpdGhlciBlbnRlcgorICAgKiBzbGVlcCBzdGF0ZSBvciBzdGFydCBmdWxsIHNodXRkb3duLiBBUCBjYW4gYWxzbyByZXF1ZXN0IHBvc3Rwb25pbmcKKyAgICogc2h1dGRvd24gYnkgc2VuZGluZyBWZWhpY2xlQXBQb3dlclNldFN0YXRlI1NIVVRET1dOX1BPU1RQT05FIG1lc3NhZ2UuIFRoZQorICAgKiBwb3dlciBjb250cm9sbGVyIG11c3QgY2hhbmdlIHBvd2VyIHN0YXRlIHRvIHRoaXMgc3RhdGUgdG8gc2h1dGRvd24KKyAgICogc3lzdGVtLgorICAgKgorICAgKiBpbnQzMlZhbHVlc1sxXSA6IG9uZSBvZiBlbnVtX3ZlaGljbGVfYXBfcG93ZXJfc3RhdGVfc2h1dGRvd25fcGFyYW1fdHlwZQorICAgKi8KKyAgU0hVVERPV05fUFJFUEFSRSA9IDQsCit9OworCitlbnVtIFZlaGljbGVBcFBvd2VyU3RhdGVTaHV0ZG93blBhcmFtIDogaW50MzJfdCB7CisgIC8qKiBBUCBtdXN0IHNodXRkb3duIGltbWVkaWF0ZWx5LiBQb3N0cG9uaW5nIGlzIG5vdCBhbGxvd2VkLiAqLworICBTSFVURE9XTl9JTU1FRElBVEVMWSA9IDEsCisKKyAgLyoqIEFQIGNhbiBlbnRlciBkZWVwIHNsZWVwIGluc3RlYWQgb2Ygc2h1dHRpbmcgZG93biBjb21wbGV0ZWx5LiAqLworICBDQU5fU0xFRVAgPSAyLAorCisgIC8qKiBBUCBjYW4gb25seSBzaHV0ZG93biB3aXRoIHBvc3Rwb25pbmcgYWxsb3dlZC4gKi8KKyAgU0hVVERPV05fT05MWSA9IDMsCit9OworCitlbnVtIFZlaGljbGVBcFBvd2VyU2V0U3RhdGUgOiBpbnQzMl90IC8qIE5PVEU6IHR5cGUgaXMgZ3Vlc3NlZCAqLyB7CisgIC8qKgorICAgKiBBUCBoYXMgZmluaXNoZWQgYm9vdCB1cCwgYW5kIGNhbiBzdGFydCBzaHV0ZG93biBpZiByZXF1ZXN0ZWQgYnkgcG93ZXIKKyAgICogY29udHJvbGxlci4KKyAgICovCisgIEJPT1RfQ09NUExFVEUgPSAweDEsCisKKyAgLyoqCisgICAqIEFQIGlzIGVudGVyaW5nIGRlZXAgc2xlZXAgc3RhdGUuIEhvdyB0aGlzIHN0YXRlIGlzIGltcGxlbWVudGVkIG1heSB2YXJ5CisgICAqIGRlcGVuZGluZyBvbiBlYWNoIEgvVywgYnV0IEFQJ3MgcG93ZXIgbXVzdCBiZSBrZXB0IGluIHRoaXMgc3RhdGUuCisgICAqLworICBERUVQX1NMRUVQX0VOVFJZID0gMHgyLAorCisgIC8qKgorICAgKiBBUCBpcyBleGl0aW5nIGZyb20gZGVlcCBzbGVlcCBzdGF0ZSwgYW5kIGlzIGluCisgICAqIFZlaGljbGVBcFBvd2VyU3RhdGUjU0hVVERPV05fUFJFUEFSRSBzdGF0ZS4KKyAgICogVGhlIHBvd2VyIGNvbnRyb2xsZXIgbWF5IGNoYW5nZSBzdGF0ZSB0byBvdGhlciBPTiBzdGF0ZXMgYmFzZWQgb24gdGhlCisgICAqIGN1cnJlbnQgc3RhdGUuCisgICAqLworICBERUVQX1NMRUVQX0VYSVQgPSAweDMsCisKKyAgLyoqCisgICAqIGludDMyVmFsdWVzWzFdOiBUaW1lIHRvIHBvc3Rwb25lIHNodXRkb3duIGluIG1zLiBNYXhpbXVtIHZhbHVlIGNhbiBiZQorICAgKiAgICAgICAgICAgICAgICAgNTAwMCBtcy4KKyAgICogICAgICAgICAgICAgICAgIElmIEFQIG5lZWRzIG1vcmUgdGltZSwgaXQgd2lsbCBzZW5kIGFub3RoZXIgUE9TVFBPTkUKKyAgICogICAgICAgICAgICAgICAgIG1lc3NhZ2UgYmVmb3JlIHRoZSBwcmV2aW91cyBvbmUgZXhwaXJlcy4KKyAgICovCisgIFNIVVRET1dOX1BPU1RQT05FID0gMHg0LAorCisgIC8qKgorICAgKiBBUCBpcyBzdGFydGluZyBzaHV0dGluZyBkb3duLiBXaGVuIHN5c3RlbSBjb21wbGV0ZXMgc2h1dGRvd24sIGV2ZXJ5dGhpbmcKKyAgICogd2lsbCBzdG9wIGluIEFQIGFzIGtlcm5lbCB3aWxsIHN0b3AgYWxsIG90aGVyIGNvbnRleHRzLiBJdCBpcworICAgKiByZXNwb25zaWJpbGl0eSBvZiB2ZWhpY2xlIEhBTCBvciBsb3dlciBsZXZlbCB0byBzeW5jaHJvbml6ZSB0aGF0IHN0YXRlCisgICAqIHdpdGggZXh0ZXJuYWwgcG93ZXIgY29udHJvbGxlci4gQXMgYW4gZXhhbXBsZSwgc29tZSBraW5kIG9mIHBpbmcKKyAgICogd2l0aCB0aW1lb3V0IGluIHBvd2VyIGNvbnRyb2xsZXIgY2FuIGJlIGEgc29sdXRpb24uCisgICAqCisgICAqIGludDMyVmFsdWVzWzFdOiBUaW1lIHRvIHR1cm4gb24gQVAgaW4gc2Vjcy4gUG93ZXIgY29udHJvbGxlciBtYXkgdHVybiBvbgorICAgKiAgICAgICAgICAgICAgICAgQVAgYWZ0ZXIgc3BlY2lmaWVkIHRpbWUgc28gdGhhdCBBUCBjYW4gcnVuIHRhc2tzIGxpa2UKKyAgICogICAgICAgICAgICAgICAgIHVwZGF0ZS4gSWYgaXQgaXMgc2V0IHRvIDAsIHRoZXJlIGlzIG5vIHdha2UgdXAsIGFuZCBwb3dlcgorICAgKiAgICAgICAgICAgICAgICAgY29udHJvbGxlciBtYXkgbm90IG5lY2Vzc2FyaWx5IHN1cHBvcnQgd2FrZS11cC4gSWYgcG93ZXIKKyAgICogICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIgdHVybnMgb24gQVAgZHVlIHRvIHRpbWVyLCBpdCBtdXN0IHN0YXJ0IHdpdGgKKyAgICogICAgICAgICAgICAgICAgIFZlaGljbGVBcFBvd2VyU3RhdGUjT05fRElTUF9PRkYgc3RhdGUsIGFuZCBhZnRlcgorICAgKiAgICAgICAgICAgICAgICAgcmVjZWl2aW5nIFZlaGljbGVBcFBvd2VyU2V0U3RhdGUjQk9PVF9DT01QTEVURSwgaXQgc2hhbGwKKyAgICogICAgICAgICAgICAgICAgIGRvIHN0YXRlIHRyYW5zaXRpb24gdG8KKyAgICogICAgICAgICAgICAgICAgIFZlaGljbGVBcFBvd2VyU3RhdGUjU0hVVERPV05fUFJFUEFSRS4KKyAgICovCisgIFNIVVRET1dOX1NUQVJUID0gMHg1LAorCisgIC8qKgorICAgKiBVc2VyIGhhcyByZXF1ZXN0ZWQgdG8gdHVybiBvZmYgaGVhZHVuaXQncyBkaXNwbGF5LCB3aGljaCBpcyBkZXRlY3RlZCBpbgorICAgKiBhbmRyb2lkIHNpZGUuCisgICAqIFRoZSBwb3dlciBjb250cm9sbGVyIG1heSBjaGFuZ2UgdGhlIHBvd2VyIHN0YXRlIHRvCisgICAqIFZlaGljbGVBcFBvd2VyU3RhdGUjT05fRElTUF9PRkYuCisgICAqLworICBESVNQTEFZX09GRiA9IDB4NiwKKworICAvKioKKyAgICogVXNlciBoYXMgcmVxdWVzdGVkIHRvIHR1cm4gb24gaGVhZHVuaXQncyBkaXNwbGF5LCBtb3N0IHByb2JhYmx5IGZyb20gcG93ZXIKKyAgICoga2V5IGlucHV0IHdoaWNoIGlzIGF0dGFjaGVkIHRvIGhlYWR1bml0LiBUaGUgcG93ZXIgY29udHJvbGxlciBtYXkgY2hhbmdlCisgICAqIHRoZSBwb3dlciBzdGF0ZSB0byBWZWhpY2xlQXBQb3dlclN0YXRlI09OX0ZVTEwuCisgICAqLworICBESVNQTEFZX09OID0gMHg3LAorfTsKKworLyoqCisgKiBJbmRleCBpbiBpbnQzMlZhbHVlcyBmb3IgVmVoaWNsZVByb3BlcnR5I0FQX1BPV0VSX1NUQVRFIHByb3BlcnR5LgorICovCitlbnVtIFZlaGljbGVBcFBvd2VyU3RhdGVJbmRleCA6IGludDMyX3QgeworICBTVEFURSA9IDAsCisgIEFERElUSU9OQUwgPSAxLAorfTsKKworLyoqCisgKiBFbnVtIHRvIHJlcHJlc2VudCBib290dXAgcmVhc29uLgorICovCitlbnVtIFZlaGljbGVBcFBvd2VyQm9vdHVwUmVhc29uIDogaW50MzJfdCB7CisgIC8qKgorICAgKiBQb3dlciBvbiBkdWUgdG8gdXNlcidzIHByZXNzaW5nIG9mIHBvd2VyIGtleSBvciByb3RhdGluZyBvZiBpZ25pdGlvbgorICAgKiBzd2l0Y2guCisgICAqLworICBVU0VSX1BPV0VSX09OID0gMCwKKworICAvKioKKyAgICogQXV0b21hdGljIHBvd2VyIG9uIHRyaWdnZXJlZCBieSBkb29yIHVubG9jayBvciBhbnkgb3RoZXIga2luZCBvZiBhdXRvbWF0aWMKKyAgICogdXNlciBkZXRlY3Rpb24uCisgICAqLworICBVU0VSX1VOTE9DSyA9IDEsCisKKyAgLyoqCisgICAqIEF1dG9tYXRpYyBwb3dlciBvbiB0cmlnZ2VyZWQgYnkgdGltZXIuIFRoaXMgb25seSBoYXBwZW5zIHdoZW4gQVAgaGFzIGFza2VkCisgICAqIHdha2UtdXAgYWZ0ZXIKKyAgICogY2VydGFpbiB0aW1lIHRocm91Z2ggdGltZSBzcGVjaWZpZWQgaW4KKyAgICogVmVoaWNsZUFwUG93ZXJTZXRTdGF0ZSNTSFVURE9XTl9TVEFSVC4KKyAgICovCisgIFRJTUVSID0gMiwKK307CisKK2VudW0gVmVoaWNsZUh3S2V5SW5wdXRBY3Rpb24gOiBpbnQzMl90IHsKKyAgLyoqIEtleSBkb3duICovCisgIEFDVElPTl9ET1dOID0gMCwKKworICAvKiogS2V5IHVwICovCisgIEFDVElPTl9VUCA9IDEsCit9OworCitlbnVtIFZlaGljbGVEaXNwbGF5IDogaW50MzJfdCB7CisgIC8qKiBjZW50ZXIgY29uc29sZSAqLworICBNQUlOID0gMCwKKworICBJTlNUUlVNRU5UX0NMVVNURVIgPSAxLAorfTsKKworLyoqCisgKiBSZXByZXNlbnRzIGluc3RydW1lbnQgY2x1c3RlciB0eXBlIGF2YWlsYWJsZSBpbiBzeXN0ZW0KKyAqLworZW51bSBWZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlIDogaW50MzJfdCB7CisgIC8qKiBBbmRyb2lkIGhhcyBubyBhY2Nlc3MgdG8gaW5zdHVtZW50IGNsdXN0ZXIgKi8KKyAgTk9ORSA9IDAsCisKKyAgLyoqCisgICAqIEluc3RydW1lbnQgY2x1c3RlciBjYW4gY29tbXVuaWNhdGUgdGhyb3VnaCB2ZWhpY2xlIGhhbCB3aXRoIGFkZGl0aW9uYWwKKyAgICogcHJvcGVydGllcyB0byBleGNoYW5nZSBtZXRhLWRhdGEKKyAgICovCisgIEhBTF9JTlRFUkZBQ0UgPSAxLAorCisgIC8qKgorICAgKiBJbnN0cnVtZW50IGNsdXN0ZXIgaXMgZXh0ZXJuYWwgZGlzcGxheSB3aGVyZSBhbmRyb2lkIGNhbiByZW5kZXIgY29udGVudHMKKyAgICovCisgIEVYVEVSTkFMX0RJU1BMQVkgPSAyLAorfTsKKworLyoqCisgKiBVbml0cyB1c2VkIGZvciBpbnQgb3IgZmxvYXQgdHlwZSB3aXRoIG5vIGF0dGFjaGVkIGVudW0gdHlwZXMuCisgKi8KK2VudW0gVmVoaWNsZVVuaXQgOiBpbnQzMl90IHsKKyAgICBTSE9VTERfTk9UX1VTRSA9IDB4MDAwLAorCisgICAgTUVURVJfUEVSX1NFQyAgPSAweDAxLAorICAgIFJQTSAgICAgICAgICAgID0gMHgwMiwKKyAgICBIRVJUWiAgICAgICAgICA9IDB4MDMsCisgICAgUEVSQ0VOVElMRSAgICAgPSAweDEwLAorICAgIE1JTExJTUVURVIgICAgID0gMHgyMCwKKyAgICBNRVRFUiAgICAgICAgICA9IDB4MjEsCisgICAgS0lMT01FVEVSICAgICAgPSAweDIzLAorICAgIENFTFNJVVMgICAgICAgID0gMHgzMCwKKyAgICBGQUhSRU5IRUlUICAgICA9IDB4MzEsCisgICAgS0VMVklOICAgICAgICAgPSAweDMyLAorICAgIE1JTExJTElURVIgICAgID0gMHg0MCwKKyAgICBOQU5PX1NFQ1MgICAgICA9IDB4NTAsCisgICAgU0VDUyAgICAgICAgICAgPSAweDUzLAorICAgIFlFQVIgICAgICAgICAgID0gMHg1OSwKK307CisKKyAgLyoqCisgICAqIFRoaXMgZGVzY3JpYmVzIGhvdyB2YWx1ZSBvZiBwcm9wZXJ0eSBjYW4gY2hhbmdlLgorICAgKi8KK2VudW0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZSA6IGludDMyX3QgeworICAvKioKKyAgICogUHJvcGVydHkgb2YgdGhpcyB0eXBlIG11c3QgbmV2ZXIgYmUgY2hhbmdlZC4gU3Vic2NyaXB0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKKyAgICogZm9yIHRoZXNlIHByb3BlcnRpZXMuCisgICAqLworICBTVEFUSUMgPSAweDAwLAorCisgIC8qKgorICAgKiBQcm9wZXJ0eSBvZiB0aGlzIHR5cGUgbXVzdCBiZSByZXBvcnRlZCB3aGVuIHRoZXJlIGlzIGEgY2hhbmdlLgorICAgKiBJVmVoaWNsZSNnZXQgY2FsbCBtdXN0IHJldHVybiB0aGUgY3VycmVudCB2YWx1ZS4KKyAgICogU2V0IG9wZXJhdGlvbiBmb3IgdGhpcyBwcm9wZXJ0eSBpcyBhc3N1bWVkIHRvIGJlIGFzeW5jaHJvbm91cy4gV2hlbiB0aGUKKyAgICogcHJvcGVydHkgaXMgcmVhZCAodXNpbmcgSVZlaGljbGUjZ2V0KSBhZnRlciBJVmVoaWNsZSNzZXQsIGl0IG1heSBzdGlsbAorICAgKiByZXR1cm4gb2xkIHZhbHVlIHVudGlsIHVuZGVybHlpbmcgSC9XIGJhY2tpbmcgdGhpcyBwcm9wZXJ0eSBoYXMgYWN0dWFsbHkKKyAgICogY2hhbmdlZCB0aGUgc3RhdGUuIE9uY2Ugc3RhdGUgaXMgY2hhbmdlZCwgdGhlIHByb3BlcnR5IG11c3QgZGlzcGF0Y2gKKyAgICogY2hhbmdlZCB2YWx1ZSBhcyBldmVudC4KKyAgICovCisgIE9OX0NIQU5HRSA9IDB4MDEsCisKKyAgLyoqCisgICAqIFByb3BlcnR5IG9mIHRoaXMgdHlwZSBjaGFuZ2UgY29udGludW91c2x5IGFuZCByZXF1aXJlcyBmaXhlZCByYXRlIG9mCisgICAqIHNhbXBsaW5nIHRvIHJldHJpZXZlIHRoZSBkYXRhLgorICAgKi8KKyAgQ09OVElOVU9VUyA9IDB4MDIsCisKKyAgLyoqCisgICAqIFByb3BlcnR5IG9mIHRoaXMgdHlwZSBtYXkgYmUgcG9sbGVkIHRvIGdldCB0aGUgY3VycmVudCB2YWx1ZS4KKyAgICovCisgIFBPTEwgPSAweDAzLAorCisgIC8qKgorICAgKiBUaGlzIGlzIGZvciBwcm9wZXJ0eSB3aGVyZSBjaGFuZ2UgZXZlbnQgbXVzdCBiZSBzZW50IG9ubHkgd2hlbiB0aGUKKyAgICogdmFsdWUgaXMgc2V0IGZyb20gZXh0ZXJuYWwgY29tcG9uZW50LiBOb3JtYWwgdmFsdWUgY2hhbmdlIG11c3Qgbm90IHRyaWdnZXIKKyAgICogZXZlbnQuIEZvciBleGFtcGxlLCBjbG9jayBwcm9wZXJ0eSBjYW4gc2VuZCBjaGFuZ2UgZXZlbnQgb25seSB3aGVuIGl0IGlzCisgICAqIHNldCwgb3V0c2lkZSBhbmRyb2lkLCBmb3IgY2FzZSBsaWtlIHVzZXIgc2V0dGluZyB0aW1lIG9yIHRpbWUgZ2V0dGluZworICAgKiB1cGRhdGUuIFRoZXJlIGlzIG5vIG5lZWQgdG8gc2VuZCBpdCBwZXIgZXZlcnkgdmFsdWUgY2hhbmdlLgorICAgKi8KKyAgT05fU0VUID0gMHgwNCwKK307CisKKy8qKgorICogUHJvcGVydHkgY29uZmlnIGRlZmluZXMgdGhlIGNhcGFiaWxpdGllcyBvZiBpdC4gVXNlciBvZiB0aGUgQVBJCisgKiBtdXN0IGZpcnN0IGdldCB0aGUgcHJvcGVydHkgY29uZmlnIHRvIHVuZGVyc3RhbmQgdGhlIG91dHB1dCBmcm9tIGdldCgpCisgKiBjb21tYW5kcyBhbmQgYWxzbyB0byBlbnN1cmUgdGhhdCBzZXQoKSBvciBldmVudHMgY29tbWFuZHMgYXJlIGluIHN5bmMgd2l0aAorICogdGhlIGV4cGVjdGVkIG91dHB1dC4KKyAqLworZW51bSBWZWhpY2xlUHJvcGVydHlBY2Nlc3MgOiBpbnQzMl90IHsKKyAgTk9ORSA9IDB4MDAsCisKKyAgUkVBRCA9IDB4MDEsCisgIFdSSVRFID0gMHgwMiwKKyAgUkVBRF9XUklURSA9IDB4MDMsCit9OworCisvKioKKyAqIENhciBzdGF0ZXMuCisgKgorICogVGhlIGRyaXZpbmcgc3RhdGVzIGRldGVybWluZSB3aGF0IGZlYXR1cmVzIG9mIHRoZSBVSSB3aWxsIGJlIGFjY2Vzc2libGUuCisgKi8KK2VudW0gVmVoaWNsZURyaXZpbmdTdGF0dXMgOiBpbnQzMl90IHsKKyAgVU5SRVNUUklDVEVEID0gMHgwMCwKKyAgTk9fVklERU8gPSAweDAxLAorICBOT19LRVlCT0FSRF9JTlBVVCA9IDB4MDIsCisgIE5PX1ZPSUNFX0lOUFVUID0gMHgwNCwKKyAgTk9fQ09ORklHID0gMHgwOCwKKyAgTElNSVRfTUVTU0FHRV9MRU4gPSAweDEwLAorfTsKKworLyoqCisgKiBWYXJpb3VzIGdlYXJzIHdoaWNoIGNhbiBiZSBzZWxlY3RlZCBieSB1c2VyIGFuZCBjaG9zZW4gaW4gc3lzdGVtLgorICovCitlbnVtIFZlaGljbGVHZWFyOiBpbnQzMl90IHsKKyAgR0VBUl9ORVVUUkFMID0gMHgwMDAxLAorICBHRUFSX1JFVkVSU0UgPSAweDAwMDIsCisgIEdFQVJfUEFSSyA9IDB4MDAwNCwKKyAgR0VBUl9EUklWRSA9IDB4MDAwOCwKKyAgR0VBUl9MT1cgPSAweDAwMTAsCisgIEdFQVJfMSA9IDB4MDAxMCwKKyAgR0VBUl8yID0gMHgwMDIwLAorICBHRUFSXzMgPSAweDAwNDAsCisgIEdFQVJfNCA9IDB4MDA4MCwKKyAgR0VBUl81ID0gMHgwMTAwLAorICBHRUFSXzYgPSAweDAyMDAsCisgIEdFQVJfNyA9IDB4MDQwMCwKKyAgR0VBUl84ID0gMHgwODAwLAorICBHRUFSXzkgPSAweDEwMDAsCit9OworCisvKioKKyAqIFZhcmlvdXMgem9uZXMgaW4gdGhlIGNhci4KKyAqCisgKiBab25lcyBhcmUgdXNlZCBmb3IgQWlyIENvbmRpdGlvbmluZyBwdXJwb3NlcyBhbmQgZGl2aWRlIHRoZSBjYXIgaW50byBwaHlzaWNhbAorICogYXJlYSB6b25lcy4KKyAqLworZW51bSBWZWhpY2xlQXJlYVpvbmUgOiBpbnQzMl90IHsKKyAgUk9XXzFfTEVGVCA9IDB4MDAwMDAwMDEsCisgIFJPV18xX0NFTlRFUiA9IDB4MDAwMDAwMDIsCisgIFJPV18xX1JJR0hUID0gMHgwMDAwMDAwNCwKKyAgUk9XXzEgPSAweDAwMDAwMDA4LAorICBST1dfMl9MRUZUID0gMHgwMDAwMDAxMCwKKyAgUk9XXzJfQ0VOVEVSID0gMHgwMDAwMDAyMCwKKyAgUk9XXzJfUklHSFQgPSAweDAwMDAwMDQwLAorICBST1dfMiA9IDB4MDAwMDAwODAsCisgIFJPV18zX0xFRlQgPSAweDAwMDAwMTAwLAorICBST1dfM19DRU5URVIgPSAweDAwMDAwMjAwLAorICBST1dfM19SSUdIVCA9IDB4MDAwMDA0MDAsCisgIFJPV18zID0gMHgwMDAwMDgwMCwKKyAgUk9XXzRfTEVGVCA9IDB4MDAwMDEwMDAsCisgIFJPV180X0NFTlRFUiA9IDB4MDAwMDIwMDAsCisgIFJPV180X1JJR0hUID0gMHgwMDAwNDAwMCwKKyAgUk9XXzQgPSAweDAwMDA4MDAwLAorICBXSE9MRV9DQUJJTiA9IDB4ODAwMDAwMDAsCit9OworCisvKioKKyAqIFZhcmlvdXMgU2VhdHMgaW4gdGhlIGNhci4KKyAqLworZW51bSBWZWhpY2xlQXJlYVNlYXQgOiBpbnQzMl90IHsKKyAgICBST1dfMV9MRUZUICAgPSAweDAwMDEsCisgICAgUk9XXzFfQ0VOVEVSID0gMHgwMDAyLAorICAgIFJPV18xX1JJR0hUICA9IDB4MDAwNCwKKyAgICBST1dfMl9MRUZUICAgPSAweDAwMTAsCisgICAgUk9XXzJfQ0VOVEVSID0gMHgwMDIwLAorICAgIFJPV18yX1JJR0hUICA9IDB4MDA0MCwKKyAgICBST1dfM19MRUZUICAgPSAweDAxMDAsCisgICAgUk9XXzNfQ0VOVEVSID0gMHgwMjAwLAorICAgIFJPV18zX1JJR0hUICA9IDB4MDQwMAorfTsKKworLyoqCisgKiBWYXJpb3VzIHdpbmRzaGllbGRzL3dpbmRvd3MgaW4gdGhlIGNhci4KKyAqLworZW51bSBWZWhpY2xlQXJlYVdpbmRvdyA6IGludDMyX3QgeworICAgIEZST05UX1dJTkRTSElFTEQgPSAweDAwMDEsCisgICAgUkVBUl9XSU5EU0hJRUxEID0gMHgwMDAyLAorICAgIFJPT0ZfVE9QID0gMHgwMDA0LAorICAgIFJPV18xX0xFRlQgPSAweDAwMTAsCisgICAgUk9XXzFfUklHSFQgPSAweDAwMjAsCisgICAgUk9XXzJfTEVGVCA9IDB4MDEwMCwKKyAgICBST1dfMl9SSUdIVCA9IDB4MDIwMCwKKyAgICBST1dfM19MRUZUID0gMHgxMDAwLAorICAgIFJPV18zX1JJR0hUID0gMHgyMDAwLAorfTsKKworZW51bSBWZWhpY2xlQXJlYURvb3IgOiBpbnQzMl90IHsKKyAgICBST1dfMV9MRUZUID0gMHgwMDAwMDAwMSwKKyAgICBST1dfMV9SSUdIVCA9IDB4MDAwMDAwMDQsCisgICAgUk9XXzJfTEVGVCA9IDB4MDAwMDAwMTAsCisgICAgUk9XXzJfUklHSFQgPSAweDAwMDAwMDQwLAorICAgIFJPV18zX0xFRlQgPSAweDAwMDAwMTAwLAorICAgIFJPV18zX1JJR0hUID0gMHgwMDAwMDQwMCwKKyAgICBIT09EID0gMHgxMDAwMDAwMCwKKyAgICBSRUFSID0gMHgyMDAwMDAwMCwKK307CisKK2VudW0gVmVoaWNsZUFyZWFNaXJyb3IgOiBpbnQzMl90IHsKKyAgICBEUklWRVJfTEVGVCA9IDB4MDAwMDAwMDEsCisgICAgRFJJVkVSX1JJR0hUID0gMHgwMDAwMDAwMiwKKyAgICBEUklWRVJfQ0VOVEVSID0gMHgwMDAwMDAwNCwKK307CisKK2VudW0gVmVoaWNsZVR1cm5TaWduYWwgOiBpbnQzMl90IHsKKyAgICBOT05FID0gMHgwMCwKKyAgICBSSUdIVCA9IDB4MDEsCisgICAgTEVGVCA9IDB4MDIsCisgICAgRU1FUkdFTkNZID0gMHgwNCwKK307CisKK3N0cnVjdCBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgLyoqCisgICAgICogQXJlYSBpZCBpcyBpZ25vcmVkIGZvciBWZWhpY2xlUHJvcGVydHlHcm91cDpHTE9CQUwgcHJvcGVydGllcy4KKyAgICAgKi8KKyAgICBpbnQzMl90IGFyZWFJZDsKKworICAgIGludDMyX3QgbWluSW50MzJWYWx1ZTsKKyAgICBpbnQzMl90IG1heEludDMyVmFsdWU7CisKKyAgICBpbnQ2NF90IG1pbkludDY0VmFsdWU7CisgICAgaW50NjRfdCBtYXhJbnQ2NFZhbHVlOworCisgICAgZmxvYXQgbWluRmxvYXRWYWx1ZTsKKyAgICBmbG9hdCBtYXhGbG9hdFZhbHVlOworfTsKKworc3RydWN0IFZlaGljbGVQcm9wQ29uZmlnIHsKKyAgICAvKiogUHJvcGVydHkgaWRlbnRpZmllciAqLworICAgIGludDMyX3QgcHJvcDsKKworICAgIC8qKgorICAgICAqIERlZmluZXMgaWYgdGhlIHByb3BlcnR5IGlzIHJlYWQgb3Igd3JpdGUgb3IgYm90aC4KKyAgICAgKi8KKyAgICBWZWhpY2xlUHJvcGVydHlBY2Nlc3MgYWNjZXNzOworCisgICAgLyoqCisgICAgICogRGVmaW5lcyB0aGUgY2hhbmdlIG1vZGUgb2YgdGhlIHByb3BlcnR5LgorICAgICAqLworICAgIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUgY2hhbmdlTW9kZTsKKworICAgIC8qKgorICAgICAqIFNvbWUgb2YgdGhlIHByb3BlcnRpZXMgbWF5IGhhdmUgYXNzb2NpYXRlZCBhcmVhcyAoZm9yIGV4YW1wbGUsIHNvbWUgaHZhYworICAgICAqIHByb3BlcnRpZXMgYXJlIGFzc29jaWF0ZWQgd2l0aCBWZWhpY2xlQXJlYVpvbmUpLCBpbiB0aGVzZQorICAgICAqIGNhc2VzIHRoZSBjb25maWcgbWF5IGNvbnRhaW4gYW4gT1JlZCB2YWx1ZSBmb3IgdGhlIGFzc29jaWF0ZWQgYXJlYXMuCisgICAgICovCisgICAgaW50MzJfdCBzdXBwb3J0ZWRBcmVhczsKKworICAgIC8qKgorICAgICAqIENvbnRhaW5zIHBlci1hcmVhIGNvbmZpZ3VyYXRpb24uCisgICAgICovCisgICAgdmVjPFZlaGljbGVBcmVhQ29uZmlnPiBhcmVhQ29uZmlnczsKKworICAgIC8qKgorICAgICAqIENvbmZpZ3VyYXRpb24gZmxhZ3MgZm9yIHRoaXMgcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBGb3IgZXhhbXBsZSwgaXQgbWF5IHN0b3JlIHRoZSBudW1iZXIgb2YgcHJlc2V0cyB0aGF0IGFyZSBzdG9yZWQgYnkgdGhlCisgICAgICogcmFkaW8gbW9kdWxlLgorICAgICAqLworICAgIGludDMyX3QgY29uZmlnRmxhZ3M7CisKKyAgICAvKiogQ29udGFpbnMgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgKi8KKyAgICB2ZWM8aW50MzJfdD4gY29uZmlnQXJyYXk7CisKKyAgICAvKioKKyAgICAgKiBTb21lIHByb3BlcnRpZXMgbWF5IHJlcXVpcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBwYXNzZWQgb3ZlciB0aGlzCisgICAgICogc3RyaW5nLiBNb3N0IHByb3BlcnRpZXMgZG8gbm90IG5lZWQgdG8gc2V0IHRoaXMuCisgICAgICovCisgICAgc3RyaW5nIGNvbmZpZ1N0cmluZzsKKworICAgIC8qKgorICAgICAqIE1pbiBzYW1wbGUgcmF0ZSBpbiBIei4KKyAgICAgKiBNdXN0IGJlIGRlZmluZWQgZm9yIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OkNPTlRJTlVPVVMKKyAgICAgKi8KKyAgICBmbG9hdCBtaW5TYW1wbGVSYXRlOworCisgICAgLyoqCisgICAgICogTXVzdCBiZSBkZWZpbmVkIGZvciBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTCisgICAgICogTWF4IHNhbXBsZSByYXRlIGluIEh6LgorICAgICAqLworICAgIGZsb2F0IG1heFNhbXBsZVJhdGU7Cit9OworCisvKioKKyAqIEVuY2Fwc3VsYXRlcyB0aGUgcHJvcGVydHkgbmFtZSBhbmQgdGhlIGFzc29jaWF0ZWQgdmFsdWUuIEl0CisgKiBpcyB1c2VkIGFjcm9zcyB2YXJpb3VzIEFQSSBjYWxscyB0byBzZXQgdmFsdWVzLCBnZXQgdmFsdWVzIG9yIHRvIHJlZ2lzdGVyIGZvcgorICogZXZlbnRzLgorICovCitzdHJ1Y3QgVmVoaWNsZVByb3BWYWx1ZSB7CisgICAgLyoqIFByb3BlcnR5IGlkZW50aWZpZXIgKi8KKyAgICBpbnQzMl90IHByb3A7CisKKyAgICAvKiogVGltZSBpcyBlbGFwc2VkIG5hbm9zZWNvbmRzIHNpbmNlIGJvb3QgKi8KKyAgICBpbnQ2NF90IHRpbWVzdGFtcDsKKworICAgIC8qKgorICAgICAqIEFyZWEgdHlwZShzKSBmb3Igbm9uLWdsb2JhbCBwcm9wZXJ0eSBpdCBtdXN0IGJlIG9uZSBvZiB0aGUgdmFsdWUgZnJvbQorICAgICAqIFZlaGljbGVBcmVhKiBlbnVtcyBvciAwIGZvciBnbG9iYWwgcHJvcGVydGllcy4KKyAgICAgKi8KKyAgICBpbnQzMl90IGFyZWFJZDsKKworICAgIC8qKgorICAgICAqIENvbnRhaW5zIHZhbHVlIGZvciBhIHNpbmdsZSBwcm9wZXJ0eS4gRGVwZW5kaW5nIG9uIHByb3BlcnR5IGRhdGEgdHlwZSBvZgorICAgICAqIHRoaXMgcHJvcGVydHkgKFZlaGljbGVQcm9wZXR5VHlwZSkgb25lIGZpZWxkIG9mIHRoaXMgc3RydWN0dXJlIG11c3QgYmUgZmlsbGVkIGluLgorICAgICAqLworICAgIHN0cnVjdCBSYXdWYWx1ZSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGlzIHVzZWQgZm9yIHByb3BlcnRpZXMgb2YgdHlwZXMgVmVoaWNsZVByb3BlcnR5VHlwZSNJTlQKKyAgICAgICAgICogYW5kIFZlaGljbGVQcm9wZXJ0eVR5cGUjSU5UX1ZFQworICAgICAgICAgKi8KKyAgICAgICAgdmVjPGludDMyX3Q+IGludDMyVmFsdWVzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGlzIHVzZWQgZm9yIHByb3BlcnRpZXMgb2YgdHlwZXMgVmVoaWNsZVByb3BlcnR5VHlwZSNGTE9BVAorICAgICAgICAgKiBhbmQgVmVoaWNsZVByb3BlcnR5VHlwZSNGTE9BVF9WRUMKKyAgICAgICAgICovCisgICAgICAgIHZlYzxmbG9hdD4gZmxvYXRWYWx1ZXM7CisKKyAgICAgICAgLyoqIFRoaXMgaXMgdXNlZCBmb3IgcHJvcGVydGllcyBvZiB0eXBlIFZlaGljbGVQcm9wZXJ0eVR5cGUjSU5UNjQgKi8KKyAgICAgICAgdmVjPGludDY0X3Q+IGludDY0VmFsdWVzOworCisgICAgICAgIC8qKiBUaGlzIGlzIHVzZWQgZm9yIHByb3BlcnRpZXMgb2YgdHlwZSBWZWhpY2xlUHJvcGVydHlUeXBlI0JZVEVTICovCisgICAgICAgIHZlYzx1aW50OF90PiBieXRlczsKKworICAgICAgICAvKiogVGhpcyBpcyB1c2VkIGZvciBwcm9wZXJ0aWVzIG9mIHR5cGUgVmVoaWNsZVByb3BlcnR5VHlwZSNTVFJJTkcgKi8KKyAgICAgICAgc3RyaW5nIHN0cmluZ1ZhbHVlOworICAgIH07CisKKyAgICBSYXdWYWx1ZSB2YWx1ZTsKK307CisKK2VudW0gVmVoaWNsZUlnbml0aW9uU3RhdGUgOiBpbnQzMl90IHsKKyAgICBVTkRFRklORUQgPSAwLAorCisgICAgLyoqIFN0ZWVyaW5nIHdoZWVsIGlzIGxvY2tlZCAqLworICAgIExPQ0sgPSAxLAorCisgICAgIC8qKgorICAgICAgKiBTdGVlcmluZyB3aGVlbCBpcyBub3QgbG9ja2VkLCBlbmdpbmUgYW5kIGFsbCBhY2Nlc3NvcmllcyBhcmUgT0ZGLiBJZgorICAgICAgKiBjYXIgY2FuIGJlIGluIExPQ0sgYW5kIE9GRiBzdGF0ZSBhdCB0aGUgc2FtZSB0aW1lIHRoYW4gSEFMIG11c3QgcmVwb3J0CisgICAgICAqIExPQ0sgc3RhdGUuCisgICAgICAqLworICAgIE9GRiwKKworICAgIC8qKgorICAgICAqIFR5cGljYWxseSBpbiB0aGlzIHN0YXRlIGFjY2Vzc29yaWVzIGJlY29tZSBhdmFpbGFibGUgKGUuZy4gcmFkaW8pLgorICAgICAqIEluc3RydW1lbnQgY2x1c3RlciBhbmQgZW5naW5lIGFyZSB0dXJuZWQgb2ZmCisgICAgICovCisgICAgQUNDLAorCisgICAgLyoqCisgICAgICogSWduaXRpb24gaXMgaW4gc3RhdGUgT04uIEFjY2Vzc29yaWVzIGFuZCBpbnN0cnVtZW50IGNsdXN0ZXIgYXZhaWxhYmxlLAorICAgICAqIGVuZ2luZSBtaWdodCBiZSBydW5uaW5nIG9yIHJlYWR5IHRvIGJlIHN0YXJ0ZWQuCisgICAgICovCisgICAgT04sCisKKyAgICAvKiogVHlwaWNhbGx5IGluIHRoaXMgc3RhdGUgZW5naW5lIGlzIHN0YXJ0aW5nIChjcmFua2luZykuICovCisgICAgU1RBUlQKK307CisKKworLyoqCisgKiBSZXByZXNlbnQgdGhlIG9wZXJhdGlvbiB3aGVyZSB0aGUgY3VycmVudCBlcnJvciBoYXMgaGFwcGVuZWQuCisgKi8KK2VudW0gVmVoaWNsZVByb3BlcnR5T3BlcmF0aW9uIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogR2VuZXJpYyBlcnJvciB0byB0aGlzIHByb3BlcnR5IHdoaWNoIGlzIG5vdCB0aWVkIHRvIGFueSBvcGVyYXRpb24uCisgICAgICovCisgICAgR0VORVJJQyA9IDAsCisKKyAgICAvKioKKyAgICAgKiBFcnJvciBoYXBwZW5lZCB3aGlsZSBoYW5kbGluZyBwcm9wZXJ0eSBzZXQuCisgICAgICovCisgICAgU0VUID0gMSwKKworICAgIC8qKgorICAgICAqIEVycm9yIGhhcHBlbmVkIHdoaWxlIGhhbmRsaW5nIHByb3BlcnR5IGdldC4KKyAgICAgKi8KKyAgICBHRVQgPSAyLAorCisgICAgLyoqCisgICAgICogRXJyb3IgaGFwcGVuZWQgd2hpbGUgaGFuZGxpbmcgcHJvcGVydHkgc3Vic2NyaXB0aW9uLgorICAgICAqLworICAgIFNVQlNDUklCRSA9IDMsCit9OworCisKK2VudW0gU3Vic2NyaWJlRmxhZ3MgOiBpbnQzMl90IHsKKyAgVU5ERUZJTkVEID0gMHgwLAorCisgIC8qKgorICAgKiBTdWJzY3JpYmUgdG8gZXZlbnQgdGhhdCB3YXMgb3JpZ2luYXRlZCBpbiB2ZWhpY2xlIEhBTAorICAgKiAobW9zdCBsaWtlbHkgdGhpcyBldmVudCBjYW1lIGZyb20gdGhlIHZlaGljbGUgaXRzZWxmKS4KKyAgICovCisgIEhBTF9FVkVOVCA9IDB4MSwKKworICAvKioKKyAgICogVXNlIHRoaXMgZmxhZyB0byBzdWJzY3JpYmUgb24gZXZlbnRzIHdoZW4gSVZlaGljbGUjc2V0KC4uLikgd2FzIGNhbGxlZCBieQorICAgKiB2ZWhpY2xlIEhBTCdzIGNsaWVudCAoZS5nLiBDYXIgU2VydmljZSkuCisgICAqLworICBTRVRfQ0FMTCA9IDB4MiwKKworICBERUZBVUxUID0gSEFMX0VWRU5ULAorfTsKKworLyoqCisgKiBFbmNhcHN1bGF0ZXMgaW5mb3JtYXRpb24gYWJvdXQgc3Vic2NyaXB0aW9uIHRvIHZlaGljbGUgcHJvcGVydHkgZXZlbnRzLgorICovCitzdHJ1Y3QgU3Vic2NyaWJlT3B0aW9ucyB7CisgIC8qKiBQcm9wZXJ0eSB0byBzdWJzY3JpYmUgKi8KKyAgaW50MzJfdCBwcm9wSWQ7CisKKyAgLyoqCisgICAqIEFyZWEgaWRzIC0gdGhpcyBtdXN0IGJlIGEgYml0IG1hc2sgb2YgYXJlYXMgdG8gc3Vic2NyaWJlIG9yIDAgdG8gc3Vic2NyaWJlCisgICAqIHRvIGFsbCBhcmVhcy4KKyAgICovCisgIGludDMyX3QgdmVoaWNsZUFyZWFzOworCisgIC8qKgorICAgKiBTYW1wbGUgcmF0ZSBpbiBIei4KKyAgICoKKyAgICogTXVzdCBiZSBwcm92aWRlZCBmb3IgcHJvcGVydGllcyB3aXRoCisgICAqIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OkNPTlRJTlVPVVMuIFRoZSB2YWx1ZSBtdXN0IGJlIHdpdGhpbgorICAgKiBWZWhpY2xlUHJvcENvbmZpZyNtaW5TYW1wbGluZ1JhdGUgLi4gVmVoaWNsZVByb3BDb25maWcjbWF4U2FtcGxpbmdSYXRlCisgICAqIGZvciBhIGdpdmVuIHByb3BlcnR5LgorICAgKiBUaGlzIHZhbHVlIGluZGljYXRlcyBob3cgbWFueSB1cGRhdGVzIHBlciBzZWNvbmQgY2xpZW50IHdhbnRzIHRvIHJlY2VpdmUuCisgICAqLworICBmbG9hdCBzYW1wbGVSYXRlOworCisgIC8qKiBGbGFncyB0aGF0IGluZGljYXRlIHdoYXQga2luZCBvZiBldmVudHMgbGlzdGVuIHRvLiAqLworICBTdWJzY3JpYmVGbGFncyBmbGFnczsKK307CisKKy8qKiBFcnJvciBjb2RlcyB1c2VkIGluIHZlaGljbGUgSEFMIGludGVyZmFjZS4gKi8KK2VudW0gU3RhdHVzQ29kZSA6IGludDMyX3QgeworICBPSyA9IDAsCisKKyAgLyoqIFRyeSBhZ2Fpbi4gKi8KKyAgVFJZX0FHQUlOID0gMSwKKworICAvKiogSW52YWxpZCBhcmd1bWVudCBwcm92aWRlZC4gKi8KKyAgSU5WQUxJRF9BUkcgPSAyLAorCisgIC8qKgorICAgKiBUaGlzIGNvZGUgbXVzdCBiZSByZXR1cm5lZCB3aGVuIGRldmljZSB0aGF0IGFzc29jaWF0ZWQgd2l0aCB0aGUgdmVoaWNsZQorICAgKiBwcm9wZXJ0eSBpcyBub3QgYXZhaWxhYmxlLiBGb3IgZXhhbXBsZSwgd2hlbiBjbGllbnQgdHJpZXMgdG8gc2V0IEhWQUMKKyAgICogdGVtcGVyYXR1cmUgd2hlbiB0aGUgd2hvbGUgSFZBQyB1bml0IGlzIHR1cm5lZCBPRkYuCisgICAqLworICBOT1RfQVZBSUxBQkxFID0gMywKKworICAvKiogQWNjZXNzIGRlbmllZCAqLworICBBQ0NFU1NfREVOSUVEID0gNCwKKworICAvKiogU29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFzIGhhcHBlbmVkIGluIFZlaGljbGUgSEFMICovCisgIElOVEVSTkFMX0VSUk9SID0gNSwKK307CisKK2VudW0gV2hlZWwgOiBpbnQzMl90IHsKKyAgICBVTktOT1dOID0gMHgwLAorCisgICAgTEVGVF9GUk9OVCA9IDB4MSwKKyAgICBSSUdIVF9GUk9OVCA9IDB4MiwKKyAgICBMRUZUX1JFQVIgPSAweDQsCisgICAgUklHSFRfUkVBUiA9IDB4OCwKK307CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0FuZHJvaWQuYnAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWU0NWZiNQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvQW5kcm9pZC5icApAQCAtMCwwICsxLDY1IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMV9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJVmVoaWNsZS5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjFfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjEiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvVmVoaWNsZUFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjFfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMSIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMV9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9JVmVoaWNsZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9JSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0JuSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0JwSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0JzVmVoaWNsZS5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMSIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjFfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMV9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0FuZHJvaWQubWsgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjkzZmUyZAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvQW5kcm9pZC5tawpAQCAtMCwwICsxLDUzNCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGUtVjIuMS1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZS1WMi4wLWphdmEgXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbW1vbklnbml0aW9uTW9uaXRvcnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0NvbW1vbklnbml0aW9uTW9uaXRvcnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLkNvbW1vbklnbml0aW9uTW9uaXRvcnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbXByZXNzaW9uSWduaXRpb25Nb25pdG9ycykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvQ29tcHJlc3Npb25JZ25pdGlvbk1vbml0b3JzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5Db21wcmVzc2lvbklnbml0aW9uTW9uaXRvcnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZ1ZWxTeXN0ZW1TdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0Z1ZWxTeXN0ZW1TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLkZ1ZWxTeXN0ZW1TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZ1ZWxUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9GdWVsVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuRnVlbFR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKElnbml0aW9uTW9uaXRvcktpbmQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0lnbml0aW9uTW9uaXRvcktpbmQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLklnbml0aW9uTW9uaXRvcktpbmQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE9iZDJGbG9hdFNlbnNvckluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9PYmQyRmxvYXRTZW5zb3JJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuT2JkMkZsb2F0U2Vuc29ySW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL09iZDJJbnRlZ2VyU2Vuc29ySW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLk9iZDJJbnRlZ2VyU2Vuc29ySW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFNlY29uZGFyeUFpclN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvU2Vjb25kYXJ5QWlyU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5TZWNvbmRhcnlBaXJTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFNwYXJrSWduaXRpb25Nb25pdG9ycykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvU3BhcmtJZ25pdGlvbk1vbml0b3JzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5TcGFya0lnbml0aW9uTW9uaXRvcnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvVmVoaWNsZVByb3BlcnR5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5WZWhpY2xlUHJvcGVydHkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZtc01lc3NhZ2VJbnRlZ2VyVmFsdWVzSW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL1Ztc01lc3NhZ2VJbnRlZ2VyVmFsdWVzSW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlZtc01lc3NhZ2VJbnRlZ2VyVmFsdWVzSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZtc01lc3NhZ2VUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9WbXNNZXNzYWdlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuVm1zTWVzc2FnZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVmVoaWNsZS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvSVZlaGljbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OklWZWhpY2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmVoaWNsZS5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlLVYyLjEtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZS1WMi4wLWphdmEtc3RhdGljIFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29tbW9uSWduaXRpb25Nb25pdG9ycykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvQ29tbW9uSWduaXRpb25Nb25pdG9ycy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuQ29tbW9uSWduaXRpb25Nb25pdG9ycworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29tcHJlc3Npb25JZ25pdGlvbk1vbml0b3JzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9Db21wcmVzc2lvbklnbml0aW9uTW9uaXRvcnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLkNvbXByZXNzaW9uSWduaXRpb25Nb25pdG9ycworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRnVlbFN5c3RlbVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvRnVlbFN5c3RlbVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuRnVlbFN5c3RlbVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRnVlbFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0Z1ZWxUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5GdWVsVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSWduaXRpb25Nb25pdG9yS2luZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvSWduaXRpb25Nb25pdG9yS2luZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuSWduaXRpb25Nb25pdG9yS2luZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoT2JkMkZsb2F0U2Vuc29ySW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL09iZDJGbG9hdFNlbnNvckluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5PYmQyRmxvYXRTZW5zb3JJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoT2JkMkludGVnZXJTZW5zb3JJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvT2JkMkludGVnZXJTZW5zb3JJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuT2JkMkludGVnZXJTZW5zb3JJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU2Vjb25kYXJ5QWlyU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9TZWNvbmRhcnlBaXJTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlNlY29uZGFyeUFpclN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3BhcmtJZ25pdGlvbk1vbml0b3JzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9TcGFya0lnbml0aW9uTW9uaXRvcnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlNwYXJrSWduaXRpb25Nb25pdG9ycworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVByb3BlcnR5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9WZWhpY2xlUHJvcGVydHkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVm1zTWVzc2FnZUludGVnZXJWYWx1ZXNJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvVm1zTWVzc2FnZUludGVnZXJWYWx1ZXNJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuVm1zTWVzc2FnZUludGVnZXJWYWx1ZXNJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVm1zTWVzc2FnZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL1Ztc01lc3NhZ2VUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5WbXNNZXNzYWdlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElWZWhpY2xlLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9JVmVoaWNsZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZlaGljbGUuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6SVZlaGljbGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9JVmVoaWNsZS5oYWwgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0lWZWhpY2xlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjJkMWU2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9JVmVoaWNsZS5oYWwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMSAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMQorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOworCisvKioKKyAqIE5ldyByZXZpc2lvbiBvZiBJVmVoaWNsZSBpbnRlcmZhY2UgdGhhdCBzdXBwb3J0cyBwcm9wZXJ0aWVzIGRlZmluZWQgaW4KKyAqIFZlaGljbGVQcm9wZXJ0eSBlbnVtIHZlcnNpb24gMi4xLgorICoKKyAqIE5PVEU6IHRoaXMgSEFMIGludGVyZmFjZSBpcyB1bmRlciBkZXZlbG9wbWVudCBhbmQgc2hvdWxkbid0IGJlIHVzZWQgaW4KKyAqICAgICAgIHByb2R1Y3Rpb24uCisgKgorICogVE9ETyhwYXZlbG0pOiB1cGRhdGUgY29tbWVudCB3aGVuIHRoaXMgaW50ZXJmYWNlIGlzIHJlYWR5IGZvciBwcm9kLgorICovCitpbnRlcmZhY2UgSVZlaGljbGUgZXh0ZW5kcyBAMi4wOjpJVmVoaWNsZSB7Cit9OwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L0FuZHJvaWQubWsgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmVjNDU2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwxMTkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKwordmhhbF92Ml8wID0gYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wCit2aGFsX3YyXzEgPSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjEKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBWZWhpY2xlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBsaWIKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9ICQodmhhbF92Ml8xKS1tYW5hZ2VyLWxpYgorTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBjb21tb24vc3JjL09iZDJTZW5zb3JTdG9yZS5jcHAKKworTE9DQUxfQ19JTkNMVURFUyA6PSBcCisgICAgJChMT0NBTF9QQVRIKS9jb21tb24vaW5jbHVkZS92aGFsX3YyXzEgXAorICAgICQoTE9DQUxfUEFUSCkvLi4vLi4vMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wIFwKKworTE9DQUxfRVhQT1JUX0NfSU5DTFVERV9ESVJTIDo9IFwKKyAgICAkKExPQ0FMX1BBVEgpL2NvbW1vbi9pbmNsdWRlCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJod2JpbmRlciBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscyBcCisgICAgJCh2aGFsX3YyXzEpIFwKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19MSUJSQVJZKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlaGljbGUgZGVmYXVsdCBWZWhpY2xlSEFMIGltcGxlbWVudGF0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFOj0gJCh2aGFsX3YyXzEpLWRlZmF1bHQtaW1wbC1saWIKK0xPQ0FMX1NSQ19GSUxFUzo9IFwKKyAgICBpbXBsL3ZoYWxfdjJfMS9FbXVsYXRlZFZlaGljbGVIYWwuY3BwIFwKKworTE9DQUxfQ19JTkNMVURFUyA6PSBcCisgICAgJChMT0NBTF9QQVRIKS9pbXBsL3ZoYWxfdjJfMSBcCisgICAgJChMT0NBTF9QQVRIKS9jb21tb24vaW5jbHVkZQorCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvaW1wbCBcCisgICAgJChMT0NBTF9QQVRIKS9jb21tb24vaW5jbHVkZQorCisKKyMgTE9DQUxfV0hPTEVfU1RBVElDX0xJQlJBUklFUyA6PSBcCisKK0xPQ0FMX1NUQVRJQ19MSUJSQVJJRVMgOj0gXAorICAgICQodmhhbF92Ml8wKS1kZWZhdWx0LWltcGwtbGliIFwKKyAgICAkKHZoYWxfdjJfMCktbWFuYWdlci1saWIgXAorICAgICQodmhhbF92Ml8xKS1tYW5hZ2VyLWxpYiBcCisgICAgJCh2aGFsX3YyXzApLWxpYnByb3RvLW5hdGl2ZQorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGliaHdiaW5kZXIgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYnByb3RvYnVmLWNwcC1saXRlIFwKKyAgICAkKHZoYWxfdjJfMCkgXAorICAgICQodmhhbF92Ml8xKSBcCisKK0xPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2V4dHJhIC1XZXJyb3IKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19MSUJSQVJZKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlaGljbGUgSEFMIHNlcnZpY2UKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9ICQodmhhbF92Ml8xKS1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9ICQodmhhbF92Ml8xKS1zZXJ2aWNlLnJjCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAKKworTE9DQUxfV0hPTEVfU1RBVElDX0xJQlJBUklFUyA6PSBcCisgICAgJCh2aGFsX3YyXzApLWxpYnByb3RvLW5hdGl2ZSBcCisKK0xPQ0FMX1NUQVRJQ19MSUJSQVJJRVMgOj0gXAorICAgICQodmhhbF92Ml8wKS1tYW5hZ2VyLWxpYiBcCisgICAgJCh2aGFsX3YyXzApLWRlZmF1bHQtaW1wbC1saWIgXAorICAgICQodmhhbF92Ml8xKS1kZWZhdWx0LWltcGwtbGliIFwKKyAgICAkKHZoYWxfdjJfMSktbWFuYWdlci1saWIgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGliaHdiaW5kZXIgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYnByb3RvYnVmLWNwcC1saXRlIFwKKyAgICAkKHZoYWxfdjJfMCkgXAorICAgICQodmhhbF92Ml8xKSBcCisKK0xPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2V4dHJhIC1XZXJyb3IKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xLXNlcnZpY2UucmMgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODkyOWQyNQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjEtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgdmVoaWNsZS1oYWwtMi4xIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMS1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciB2ZWhpY2xlX25ldHdvcmsKKyAgICBncm91cCBzeXN0ZW0gaW5ldApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMS9PYmQyU2Vuc29yU3RvcmUuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzEvT2JkMlNlbnNvclN0b3JlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM0NDYyNgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzEvT2JkMlNlbnNvclN0b3JlLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMV9PYmQyU2Vuc29yU3RvcmVfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMV9PYmQyU2Vuc29yU3RvcmVfSF8KKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS90eXBlcy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzEgeworCisvLyBUaGlzIGNsYXNzIHdyYXBzIGFsbCB0aGUgbG9naWMgcmVxdWlyZWQgdG8gY3JlYXRlIGFuIE9CRDIgZnJhbWUuCisvLyBJdCBhbGxvd3Mgc3RvcmluZyBzZW5zb3IgdmFsdWVzLCBzZXR0aW5nIGFwcHJvcHJpYXRlIGJpdG1hc2tzIGFzIG5lZWRlZCwKKy8vIGFuZCByZXR1cm5pbmcgYXBwcm9wcmlhdGVseSBsYWlkIG91dCBzdG9yYWdlIG9mIHNlbnNvciB2YWx1ZXMgc3VpdGFibGUKKy8vIGZvciBiZWluZyByZXR1cm5lZCB2aWEgYSBWZWhpY2xlSGFsIGltcGxlbWVudGF0aW9uLgorY2xhc3MgT2JkMlNlbnNvclN0b3JlIHsKK3B1YmxpYzoKKyAgICAvLyBDcmVhdGVzIGEgc2Vuc29yIHN0b3JhZ2Ugd2l0aCBhIGdpdmVuIG51bWJlciBvZiB2ZW5kb3Itc3BlY2lmaWMgc2Vuc29ycy4KKyAgICBPYmQyU2Vuc29yU3RvcmUoc2l6ZV90IG51bVZlbmRvckludGVnZXJTZW5zb3JzLAorICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtVmVuZG9yRmxvYXRTZW5zb3JzKTsKKworICAgIC8vIFN0b3JlcyBhbiBpbnRlZ2VyLXZhbHVlZCBzZW5zb3IuCisgICAgVjJfMDo6U3RhdHVzQ29kZSBzZXRJbnRlZ2VyU2Vuc29yKE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXggaW5kZXgsIGludDMyX3QgdmFsdWUpOworICAgIC8vIFN0b3JlcyBhbiBpbnRlZ2VyLXZhbHVlZCBzZW5zb3IuCisgICAgVjJfMDo6U3RhdHVzQ29kZSBzZXRJbnRlZ2VyU2Vuc29yKHNpemVfdCBpbmRleCwgaW50MzJfdCB2YWx1ZSk7CisKKyAgICAvLyBTdG9yZXMgYSBmbG9hdC12YWx1ZWQgc2Vuc29yLgorICAgIFYyXzA6OlN0YXR1c0NvZGUgc2V0RmxvYXRTZW5zb3IoT2JkMkZsb2F0U2Vuc29ySW5kZXggaW5kZXgsIGZsb2F0IHZhbHVlKTsKKyAgICAvLyBTdG9yZXMgYSBmbG9hdC12YWx1ZWQgc2Vuc29yLgorICAgIFYyXzA6OlN0YXR1c0NvZGUgc2V0RmxvYXRTZW5zb3Ioc2l6ZV90IGluZGV4LCBmbG9hdCB2YWx1ZSk7CisKKyAgICAvLyBSZXR1cm5zIGEgdmVjdG9yIHRoYXQgY29udGFpbnMgYWxsIGludGVnZXIgc2Vuc29ycyBzdG9yZWQuCisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aW50MzJfdD4mIGdldEludGVnZXJTZW5zb3JzKCkgY29uc3Q7CisgICAgLy8gUmV0dXJucyBhIHZlY3RvciB0aGF0IGNvbnRhaW5zIGFsbCBmbG9hdCBzZW5zb3JzIHN0b3JlZC4KKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxmbG9hdD4mIGdldEZsb2F0U2Vuc29ycygpIGNvbnN0OworICAgIC8vIFJldHVybnMgYSB2ZWN0b3IgdGhhdCBjb250YWlucyBhIGJpdG1hc2sgZm9yIGFsbCBzdG9yZWQgc2Vuc29ycy4KKyAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgZ2V0U2Vuc29yc0JpdG1hc2soKSBjb25zdDsKKworICAgIC8vIEdpdmVuIGEgc3RyaW5nVmFsdWUsIGZpbGwgaW4gYSBWZWhpY2xlUHJvcFZhbHVlCisgICAgdm9pZCBmaWxsUHJvcFZhbHVlKGNvbnN0IHN0ZDo6c3RyaW5nJiBkdGMsIFYyXzA6OlZlaGljbGVQcm9wVmFsdWUgKnByb3BWYWx1ZSkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgY2xhc3MgQml0bWFza0luVmVjdG9yIHsKKyAgICBwdWJsaWM6CisgICAgICAgIEJpdG1hc2tJblZlY3RvcihzaXplX3QgbnVtQml0cyA9IDApOworICAgICAgICB2b2lkIHJlc2l6ZShzaXplX3QgbnVtQml0cyk7CisgICAgICAgIGJvb2wgZ2V0KHNpemVfdCBpbmRleCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0KHNpemVfdCBpbmRleCwgYm9vbCB2YWx1ZSk7CisKKyAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIGdldEJpdG1hc2soKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG1TdG9yYWdlOworICAgIH07CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBtSW50ZWdlclNlbnNvcnM7CisgICAgc3RkOjp2ZWN0b3I8ZmxvYXQ+IG1GbG9hdFNlbnNvcnM7CisgICAgQml0bWFza0luVmVjdG9yIG1TZW5zb3JzQml0bWFzazsKK307CisKK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX09iZDJTZW5zb3JTdG9yZV9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2NvbW1vbi9zcmMvT2JkMlNlbnNvclN0b3JlLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9jb21tb24vc3JjL09iZDJTZW5zb3JTdG9yZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRjNjNhOQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9jb21tb24vc3JjL09iZDJTZW5zb3JTdG9yZS5jcHAKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiT2JkMlNlbnNvclN0b3JlLmgiCisKKyNpbmNsdWRlIDx1dGlscy9TeXN0ZW1DbG9jay5oPgorI2luY2x1ZGUgIlZlaGljbGVVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzEgeworCitPYmQyU2Vuc29yU3RvcmU6OkJpdG1hc2tJblZlY3Rvcjo6Qml0bWFza0luVmVjdG9yKHNpemVfdCBudW1CaXRzKQoreworICAgIHJlc2l6ZShudW1CaXRzKTsKK30KKwordm9pZCBPYmQyU2Vuc29yU3RvcmU6OkJpdG1hc2tJblZlY3Rvcjo6cmVzaXplKHNpemVfdCBudW1CaXRzKSB7CisgICAgbVN0b3JhZ2UgPSBzdGQ6OnZlY3Rvcjx1aW50OF90PigobnVtQml0cys3KS84LCAwKTsKK30KKwordm9pZCBPYmQyU2Vuc29yU3RvcmU6OkJpdG1hc2tJblZlY3Rvcjo6c2V0KHNpemVfdCBpbmRleCwgYm9vbCB2YWx1ZSkgeworICAgIGNvbnN0IHNpemVfdCBieXRlSW5kZXggPSBpbmRleCAvIDg7CisgICAgY29uc3Qgc2l6ZV90IGJpdEluZGV4ID0gaW5kZXggJSA4OworICAgIGNvbnN0IHVpbnQ4X3QgYnl0ZSA9IG1TdG9yYWdlW2J5dGVJbmRleF07CisgICAgdWludDhfdCBuZXdWYWx1ZSA9IHZhbHVlID8gKGJ5dGUgfCAoMSA8PCBiaXRJbmRleCkpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSAmIH4oMSA8PCBiaXRJbmRleCkpOworICAgIG1TdG9yYWdlW2J5dGVJbmRleF0gPSBuZXdWYWx1ZTsKK30KKworYm9vbCBPYmQyU2Vuc29yU3RvcmU6OkJpdG1hc2tJblZlY3Rvcjo6Z2V0KHNpemVfdCBpbmRleCkgY29uc3QgeworICAgIGNvbnN0IHNpemVfdCBieXRlSW5kZXggPSBpbmRleCAvIDg7CisgICAgY29uc3Qgc2l6ZV90IGJpdEluZGV4ID0gaW5kZXggJSA4OworICAgIGNvbnN0IHVpbnQ4X3QgYnl0ZSA9IG1TdG9yYWdlW2J5dGVJbmRleF07CisgICAgcmV0dXJuIChieXRlICYgKDEgPDwgYml0SW5kZXgpKSAhPSAwOworfQorCitjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgT2JkMlNlbnNvclN0b3JlOjpCaXRtYXNrSW5WZWN0b3I6OmdldEJpdG1hc2soKSBjb25zdCB7CisgICAgcmV0dXJuIG1TdG9yYWdlOworfQorCitPYmQyU2Vuc29yU3RvcmU6Ok9iZDJTZW5zb3JTdG9yZShzaXplX3QgbnVtVmVuZG9ySW50ZWdlclNlbnNvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtVmVuZG9yRmxvYXRTZW5zb3JzKSB7CisgICAgICAgIC8vIGJlY2F1c2UgdGhlIGxhc3QgaW5kZXggaXMgdmFsaWQgKmluY2x1c2l2ZSoKKyAgICAgICAgY29uc3Qgc2l6ZV90IG51bVN5c3RlbUludGVnZXJTZW5zb3JzID0gVjJfMDo6dG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpKzE7CisgICAgICAgIGNvbnN0IHNpemVfdCBudW1TeXN0ZW1GbG9hdFNlbnNvcnMgPSBWMl8wOjp0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpKzE7CisgICAgICAgIG1JbnRlZ2VyU2Vuc29ycyA9IHN0ZDo6dmVjdG9yPGludDMyX3Q+KAorICAgICAgICAgICAgbnVtU3lzdGVtSW50ZWdlclNlbnNvcnMrbnVtVmVuZG9ySW50ZWdlclNlbnNvcnMsIDApOworICAgICAgICBtRmxvYXRTZW5zb3JzID0gc3RkOjp2ZWN0b3I8ZmxvYXQ+KAorICAgICAgICAgICAgbnVtU3lzdGVtRmxvYXRTZW5zb3JzK251bVZlbmRvckZsb2F0U2Vuc29ycywgMCk7CisgICAgICAgIG1TZW5zb3JzQml0bWFzay5yZXNpemUobUludGVnZXJTZW5zb3JzLnNpemUoKSttRmxvYXRTZW5zb3JzLnNpemUoKSk7Cit9CisKK1YyXzA6OlN0YXR1c0NvZGUgT2JkMlNlbnNvclN0b3JlOjpzZXRJbnRlZ2VyU2Vuc29yKE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXggaW5kZXgsCisgICAgaW50MzJfdCB2YWx1ZSkgeworICAgIHJldHVybiBzZXRJbnRlZ2VyU2Vuc29yKFYyXzA6OnRvSW50KGluZGV4KSwgdmFsdWUpOworfQorVjJfMDo6U3RhdHVzQ29kZSBPYmQyU2Vuc29yU3RvcmU6OnNldEZsb2F0U2Vuc29yKE9iZDJGbG9hdFNlbnNvckluZGV4IGluZGV4LAorICAgIGZsb2F0IHZhbHVlKSB7CisgICAgcmV0dXJuIHNldEZsb2F0U2Vuc29yKFYyXzA6OnRvSW50KGluZGV4KSwgdmFsdWUpOworfQorCitWMl8wOjpTdGF0dXNDb2RlIE9iZDJTZW5zb3JTdG9yZTo6c2V0SW50ZWdlclNlbnNvcihzaXplX3QgaW5kZXgsIGludDMyX3QgdmFsdWUpIHsKKyAgICBtSW50ZWdlclNlbnNvcnNbaW5kZXhdID0gdmFsdWU7CisgICAgbVNlbnNvcnNCaXRtYXNrLnNldChpbmRleCwgdHJ1ZSk7CisgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6Ok9LOworfQorCitWMl8wOjpTdGF0dXNDb2RlIE9iZDJTZW5zb3JTdG9yZTo6c2V0RmxvYXRTZW5zb3Ioc2l6ZV90IGluZGV4LCBmbG9hdCB2YWx1ZSkgeworICAgIG1GbG9hdFNlbnNvcnNbaW5kZXhdID0gdmFsdWU7CisgICAgbVNlbnNvcnNCaXRtYXNrLnNldChpbmRleCArIG1JbnRlZ2VyU2Vuc29ycy5zaXplKCksIHRydWUpOworICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpPSzsKK30KKworY29uc3Qgc3RkOjp2ZWN0b3I8aW50MzJfdD4mIE9iZDJTZW5zb3JTdG9yZTo6Z2V0SW50ZWdlclNlbnNvcnMoKSBjb25zdCB7CisgICAgcmV0dXJuIG1JbnRlZ2VyU2Vuc29yczsKK30KKworY29uc3Qgc3RkOjp2ZWN0b3I8ZmxvYXQ+JiBPYmQyU2Vuc29yU3RvcmU6OmdldEZsb2F0U2Vuc29ycygpIGNvbnN0IHsKKyAgICByZXR1cm4gbUZsb2F0U2Vuc29yczsKK30KKworY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIE9iZDJTZW5zb3JTdG9yZTo6Z2V0U2Vuc29yc0JpdG1hc2soKSBjb25zdCB7CisgICAgcmV0dXJuIG1TZW5zb3JzQml0bWFzay5nZXRCaXRtYXNrKCk7Cit9CisKK3ZvaWQgT2JkMlNlbnNvclN0b3JlOjpmaWxsUHJvcFZhbHVlKGNvbnN0IHN0ZDo6c3RyaW5nJiBkdGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlICpwcm9wVmFsdWUpIGNvbnN0IHsKKyAgICBwcm9wVmFsdWUtPnRpbWVzdGFtcCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAgICBwcm9wVmFsdWUtPnZhbHVlLmludDMyVmFsdWVzID0gZ2V0SW50ZWdlclNlbnNvcnMoKTsKKyAgICBwcm9wVmFsdWUtPnZhbHVlLmZsb2F0VmFsdWVzID0gZ2V0RmxvYXRTZW5zb3JzKCk7CisgICAgcHJvcFZhbHVlLT52YWx1ZS5ieXRlcyA9IGdldFNlbnNvcnNCaXRtYXNrKCk7CisgICAgcHJvcFZhbHVlLT52YWx1ZS5zdHJpbmdWYWx1ZSA9IGR0YzsKK30KKworCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMS9EZWZhdWx0Q29uZmlnLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRGVmYXVsdENvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmMTAwODYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRGVmYXVsdENvbmZpZy5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzFfaW1wbF9EZWZhdWx0Q29uZmlnX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzFfaW1wbF9EZWZhdWx0Q29uZmlnX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvdHlwZXMuaD4KKyNpbmNsdWRlIDx2aGFsX3YyXzAvVmVoaWNsZVV0aWxzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMSB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworLy8gU29tZSBoYW5keSBjb25zdGFudHMgdG8gYXZvaWQgY29udmVyc2lvbnMgZnJvbSBlbnVtIHRvIGludC4KK2NvbnN0ZXhwciBpbnQgT0JEMl9MSVZFX0ZSQU1FID0gKGludCkgVjJfMTo6VmVoaWNsZVByb3BlcnR5OjpPQkQyX0xJVkVfRlJBTUU7Citjb25zdGV4cHIgaW50IE9CRDJfRlJFRVpFX0ZSQU1FID0gKGludCkgVjJfMTo6VmVoaWNsZVByb3BlcnR5OjpPQkQyX0ZSRUVaRV9GUkFNRTsKK2NvbnN0ZXhwciBpbnQgT0JEMl9GUkVFWkVfRlJBTUVfSU5GTyA9IChpbnQpIFYyXzE6OlZlaGljbGVQcm9wZXJ0eTo6T0JEMl9GUkVFWkVfRlJBTUVfSU5GTzsKK2NvbnN0ZXhwciBpbnQgT0JEMl9GUkVFWkVfRlJBTUVfQ0xFQVIgPSAoaW50KSBWMl8xOjpWZWhpY2xlUHJvcGVydHk6Ok9CRDJfRlJFRVpFX0ZSQU1FX0NMRUFSOworY29uc3RleHByIGludCBWRUhJQ0xFX01BUF9TRVJWSUNFID0gKGludCkgVjJfMTo6VmVoaWNsZVByb3BlcnR5OjpWRUhJQ0xFX01BUF9TRVJWSUNFOworY29uc3RleHByIGludCBXSEVFTF9USUNLID0gKGludCkgVjJfMTo6VmVoaWNsZVByb3BlcnR5OjpXSEVFTF9USUNLOworCisKK2NvbnN0IFYyXzA6OlZlaGljbGVQcm9wQ29uZmlnIGtWZWhpY2xlUHJvcGVydGllc1tdID0geworICAgIHsKKyAgICAgICAgLnByb3AgPSBXSEVFTF9USUNLLAorICAgICAgICAuYWNjZXNzID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAuY2hhbmdlTW9kZSA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OkNPTlRJTlVPVVMsCisgICAgICAgIC5taW5TYW1wbGVSYXRlID0gMS4wZiwKKyAgICAgICAgLm1heFNhbXBsZVJhdGUgPSAxMDAuMGYsCisgICAgfSwKKworICAgIHsKKyAgICAgICAgLnByb3AgPSBPQkQyX0xJVkVfRlJBTUUsCisgICAgICAgIC5hY2Nlc3MgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAuY29uZmlnQXJyYXkgPSB7MCwwfQorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gT0JEMl9GUkVFWkVfRlJBTUUsCisgICAgICAgIC5hY2Nlc3MgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAuY29uZmlnQXJyYXkgPSB7MCwwfQorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gT0JEMl9GUkVFWkVfRlJBTUVfSU5GTywKKyAgICAgICAgLmFjY2VzcyA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UKKyAgICB9LAorCisgICAgeworICAgICAgICAucHJvcCA9IE9CRDJfRlJFRVpFX0ZSQU1FX0NMRUFSLAorICAgICAgICAuYWNjZXNzID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5QWNjZXNzOjpXUklURSwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UKKyAgICB9LAorCisgICAgeworICAgICAgICAucHJvcCA9IFZFSElDTEVfTUFQX1NFUlZJQ0UsCisgICAgICAgIC5hY2Nlc3MgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFCisgICAgfQorfTsKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8xX2ltcGxfRGVmYXVsdENvbmZpZ19IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0VtdWxhdGVkVmVoaWNsZUhhbC5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRW11bGF0ZWRWZWhpY2xlSGFsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZGNlYWUwCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0VtdWxhdGVkVmVoaWNsZUhhbC5jcHAKQEAgLTAsMCArMSwyNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkRlZmF1bHRWZWhpY2xlSGFsX3YyXzEiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKworI2luY2x1ZGUgIkVtdWxhdGVkVmVoaWNsZUhhbC5oIgorI2luY2x1ZGUgIlZlaGljbGVIYWxQcm90by5wYi5oIgorCisjZGVmaW5lIERFQlVHX1NPQ0tFVCAgICAoMzM0NTIpCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMSB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxPYmQyU2Vuc29yU3RvcmU+IGZpbGxEZWZhdWx0T2JkMkZyYW1lKAorICAgICAgICBzaXplX3QgbnVtVmVuZG9ySW50ZWdlclNlbnNvcnMsCisgICAgICAgIHNpemVfdCBudW1WZW5kb3JGbG9hdFNlbnNvcnMpIHsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8T2JkMlNlbnNvclN0b3JlPiBzZW5zb3JTdG9yZShuZXcgT2JkMlNlbnNvclN0b3JlKAorICAgICAgICAgICAgbnVtVmVuZG9ySW50ZWdlclNlbnNvcnMsIG51bVZlbmRvckZsb2F0U2Vuc29ycykpOworCisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkZVRUxfU1lTVEVNX1NUQVRVUywKKyAgICAgICAgVjJfMDo6dG9JbnQoRnVlbFN5c3RlbVN0YXR1czo6Q0xPU0VEX0xPT1ApKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TUFMRlVOQ1RJT05fSU5ESUNBVE9SX0xJR0hUX09OLCAwKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6SUdOSVRJT05fTU9OSVRPUlNfU1VQUE9SVEVELAorICAgICAgICBWMl8wOjp0b0ludChJZ25pdGlvbk1vbml0b3JLaW5kOjpTUEFSSykpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OklHTklUSU9OX1NQRUNJRklDX01PTklUT1JTLAorICAgICAgICBDb21tb25JZ25pdGlvbk1vbml0b3JzOjpDT01QT05FTlRTX0FWQUlMQUJMRSB8CisgICAgICAgIENvbW1vbklnbml0aW9uTW9uaXRvcnM6Ok1JU0ZJUkVfQVZBSUxBQkxFIHwKKyAgICAgICAgU3BhcmtJZ25pdGlvbk1vbml0b3JzOjpBQ19SRUZSSUdFUkFOVF9BVkFJTEFCTEUgfAorICAgICAgICBTcGFya0lnbml0aW9uTW9uaXRvcnM6OkVWQVBPUkFUSVZFX1NZU1RFTV9BVkFJTEFCTEUpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpJTlRBS0VfQUlSX1RFTVBFUkFUVVJFLCAzNSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkNPTU1BTkRFRF9TRUNPTkRBUllfQUlSX1NUQVRVUywKKyAgICAgICAgVjJfMDo6dG9JbnQoU2Vjb25kYXJ5QWlyU3RhdHVzOjpGUk9NX09VVFNJREVfT1JfT0ZGKSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6Ok5VTV9PWFlHRU5fU0VOU09SU19QUkVTRU5ULCAxKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6UlVOVElNRV9TSU5DRV9FTkdJTkVfU1RBUlQsIDUwMCk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkRJU1RBTkNFX1RSQVZFTEVEX1dJVEhfTUFMRlVOQ1RJT05fSU5ESUNBVE9SX0xJR0hUX09OLCAwKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6V0FSTVVQU19TSU5DRV9DT0RFU19DTEVBUkVELCA1MSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkRJU1RBTkNFX1RSQVZFTEVEX1NJTkNFX0NPREVTX0NMRUFSRUQsIDM2NSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkFCU09MVVRFX0JBUk9NRVRSSUNfUFJFU1NVUkUsIDMwKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6Q09OVFJPTF9NT0RVTEVfVk9MVEFHRSwgMTIpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpBTUJJRU5UX0FJUl9URU1QRVJBVFVSRSwgMTgpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpNQVhfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8sIDEpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpGVUVMX1RZUEUsIFYyXzA6OnRvSW50KEZ1ZWxUeXBlOjpHQVNPTElORSkpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkNBTENVTEFURURfRU5HSU5FX0xPQUQsIDAuMTUzKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpTSE9SVF9URVJNX0ZVRUxfVFJJTV9CQU5LMSwgLTAuMTYpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkxPTkdfVEVSTV9GVUVMX1RSSU1fQkFOSzEsIC0wLjE2KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpTSE9SVF9URVJNX0ZVRUxfVFJJTV9CQU5LMiwgLTAuMTYpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkxPTkdfVEVSTV9GVUVMX1RSSU1fQkFOSzIsIC0wLjE2KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpJTlRBS0VfTUFOSUZPTERfQUJTT0xVVEVfUFJFU1NVUkUsIDcuNSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6RU5HSU5FX1JQTSwgMTI1MC4pOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OlZFSElDTEVfU1BFRUQsIDQwLik7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6VElNSU5HX0FEVkFOQ0UsIDIuNSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6VEhST1RUTEVfUE9TSVRJT04sIDE5Ljc1KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpPWFlHRU5fU0VOU09SMV9WT0xUQUdFLCAwLjI2NSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6RlVFTF9UQU5LX0xFVkVMX0lOUFVULCAwLjgyNCk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6RVZBUE9SQVRJT05fU1lTVEVNX1ZBUE9SX1BSRVNTVVJFLCAtMC4zNzMpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkNBVEFMWVNUX1RFTVBFUkFUVVJFX0JBTksxX1NFTlNPUjEsIDE5MC4pOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OlJFTEFUSVZFX1RIUk9UVExFX1BPU0lUSU9OLCAzLik7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6QUJTT0xVVEVfVEhST1RUTEVfUE9TSVRJT05fQiwgMC4zMDYpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkFDQ0VMRVJBVE9SX1BFREFMX1BPU0lUSU9OX0QsIDAuMTg4KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpBQ0NFTEVSQVRPUl9QRURBTF9QT1NJVElPTl9FLCAwLjA5NCk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6Q09NTUFOREVEX1RIUk9UVExFX0FDVFVBVE9SLCAwLjAyNCk7CisKKyAgICByZXR1cm4gc2Vuc29yU3RvcmU7Cit9CisKK3ZvaWQgRW11bGF0ZWRWZWhpY2xlSGFsOjppbml0T2JkMkxpdmVGcmFtZShjb25zdCBWMl8wOjpWZWhpY2xlUHJvcENvbmZpZyYgcHJvcENvbmZpZykgeworICAgIGF1dG8gbGl2ZU9iZDJGcmFtZSA9IGNyZWF0ZVZlaGljbGVQcm9wVmFsdWUoVjJfMDo6VmVoaWNsZVByb3BlcnR5VHlwZTo6Q09NUExFWCwgMCk7CisgICAgYXV0byBzZW5zb3JTdG9yZSA9IGZpbGxEZWZhdWx0T2JkMkZyYW1lKHN0YXRpY19jYXN0PHNpemVfdD4ocHJvcENvbmZpZy5jb25maWdBcnJheVswXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4ocHJvcENvbmZpZy5jb25maWdBcnJheVsxXSkpOworICAgIHNlbnNvclN0b3JlLT5maWxsUHJvcFZhbHVlKCIiLCBsaXZlT2JkMkZyYW1lLmdldCgpKTsKKyAgICBsaXZlT2JkMkZyYW1lLT5wcm9wID0gT0JEMl9MSVZFX0ZSQU1FOworCisgICAgbVByb3BTdG9yZS0+d3JpdGVWYWx1ZSgqbGl2ZU9iZDJGcmFtZSk7Cit9CisKK3ZvaWQgRW11bGF0ZWRWZWhpY2xlSGFsOjppbml0T2JkMkZyZWV6ZUZyYW1lKGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wQ29uZmlnJiBwcm9wQ29uZmlnKSB7CisgICAgYXV0byBzZW5zb3JTdG9yZSA9IGZpbGxEZWZhdWx0T2JkMkZyYW1lKHN0YXRpY19jYXN0PHNpemVfdD4ocHJvcENvbmZpZy5jb25maWdBcnJheVswXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4ocHJvcENvbmZpZy5jb25maWdBcnJheVsxXSkpOworCisgICAgc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBzYW1wbGVEdGNzID0geyAiUDAwNzAiLCAiUDAxMDIiICJQMDEyMyIgfTsKKyAgICBmb3IgKGF1dG8mJiBkdGMgOiBzYW1wbGVEdGNzKSB7CisgICAgICAgIGF1dG8gZnJlZXplRnJhbWUgPSBjcmVhdGVWZWhpY2xlUHJvcFZhbHVlKFYyXzA6OlZlaGljbGVQcm9wZXJ0eVR5cGU6OkNPTVBMRVgsIDApOworICAgICAgICBzZW5zb3JTdG9yZS0+ZmlsbFByb3BWYWx1ZShkdGMsIGZyZWV6ZUZyYW1lLmdldCgpKTsKKyAgICAgICAgbVByb3BTdG9yZS0+d3JpdGVWYWx1ZSgqZnJlZXplRnJhbWUpOworICAgIH0KK30KKworVjJfMDo6U3RhdHVzQ29kZSBFbXVsYXRlZFZlaGljbGVIYWw6OmZpbGxPYmQyRnJlZXplRnJhbWUoCisgICAgICAgIGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwKKyAgICAgICAgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSogb3V0VmFsdWUpIHsKKyAgICBpZiAocmVxdWVzdGVkUHJvcFZhbHVlLnZhbHVlLmludDY0VmFsdWVzLnNpemUoKSAhPSAxKSB7CisgICAgICAgIEFMT0dFKCJhc2tlZCBmb3IgT0JEMl9GUkVFWkVfRlJBTUUgd2l0aG91dCB2YWxpZCB0aW1lc3RhbXAiKTsKKyAgICAgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgIH0KKyAgICBhdXRvIHRpbWVzdGFtcCA9IHJlcXVlc3RlZFByb3BWYWx1ZS52YWx1ZS5pbnQ2NFZhbHVlc1swXTsKKyAgICBhdXRvIGZyZWV6ZUZyYW1lID0gbVByb3BTdG9yZS0+cmVhZFZhbHVlT3JOdWxsKE9CRDJfRlJFRVpFX0ZSQU1FLCAwLCB0aW1lc3RhbXApOworICAgIGlmKGZyZWV6ZUZyYW1lID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoImFza2VkIGZvciBPQkQyX0ZSRUVaRV9GUkFNRSBhdCBpbnZhbGlkIHRpbWVzdGFtcCIpOworICAgICAgICByZXR1cm4gVjJfMDo6U3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgfQorICAgIG91dFZhbHVlLT5wcm9wID0gT0JEMl9GUkVFWkVfRlJBTUU7CisgICAgb3V0VmFsdWUtPnZhbHVlLmludDMyVmFsdWVzID0gZnJlZXplRnJhbWUtPnZhbHVlLmludDMyVmFsdWVzOworICAgIG91dFZhbHVlLT52YWx1ZS5mbG9hdFZhbHVlcyA9IGZyZWV6ZUZyYW1lLT52YWx1ZS5mbG9hdFZhbHVlczsKKyAgICBvdXRWYWx1ZS0+dmFsdWUuYnl0ZXMgPSBmcmVlemVGcmFtZS0+dmFsdWUuYnl0ZXM7CisgICAgb3V0VmFsdWUtPnZhbHVlLnN0cmluZ1ZhbHVlID0gZnJlZXplRnJhbWUtPnZhbHVlLnN0cmluZ1ZhbHVlOworICAgIG91dFZhbHVlLT50aW1lc3RhbXAgPSBmcmVlemVGcmFtZS0+dGltZXN0YW1wOworICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpPSzsKK30KKworVjJfMDo6U3RhdHVzQ29kZSBFbXVsYXRlZFZlaGljbGVIYWw6OmNsZWFyT2JkMkZyZWV6ZUZyYW1lcyhjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIHsKKyAgICBpZiAocHJvcFZhbHVlLnZhbHVlLmludDY0VmFsdWVzLnNpemUoKSA9PSAwKSB7CisgICAgICAgIG1Qcm9wU3RvcmUtPnJlbW92ZVZhbHVlc0ZvclByb3BlcnR5KE9CRDJfRlJFRVpFX0ZSQU1FKTsKKyAgICAgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6Ok9LOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvcihpbnQ2NF90IHRpbWVzdGFtcDogcHJvcFZhbHVlLnZhbHVlLmludDY0VmFsdWVzKSB7CisgICAgICAgICAgICBhdXRvIGZyZWV6ZUZyYW1lID0gbVByb3BTdG9yZS0+cmVhZFZhbHVlT3JOdWxsKE9CRDJfRlJFRVpFX0ZSQU1FLCAwLCB0aW1lc3RhbXApOworICAgICAgICAgICAgaWYoZnJlZXplRnJhbWUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgIEFMT0dFKCJhc2tlZCBmb3IgT0JEMl9GUkVFWkVfRlJBTUUgYXQgaW52YWxpZCB0aW1lc3RhbXAiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVjJfMDo6U3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtUHJvcFN0b3JlLT5yZW1vdmVWYWx1ZSgqZnJlZXplRnJhbWUpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpPSzsKK30KKworVjJfMDo6U3RhdHVzQ29kZSBFbXVsYXRlZFZlaGljbGVIYWw6OmZpbGxPYmQyRHRjSW5mbyhWMl8wOjpWZWhpY2xlUHJvcFZhbHVlKiBvdXRWYWx1ZSkgeworICAgIHN0ZDo6dmVjdG9yPGludDY0X3Q+IHRpbWVzdGFtcHM7CisgICAgZm9yKGNvbnN0IGF1dG8mIGZyZWV6ZUZyYW1lOiBtUHJvcFN0b3JlLT5yZWFkVmFsdWVzRm9yUHJvcGVydHkoT0JEMl9GUkVFWkVfRlJBTUUpKSB7CisgICAgICAgIHRpbWVzdGFtcHMucHVzaF9iYWNrKGZyZWV6ZUZyYW1lLnRpbWVzdGFtcCk7CisgICAgfQorICAgIG91dFZhbHVlLT52YWx1ZS5pbnQ2NFZhbHVlcyA9IHRpbWVzdGFtcHM7CisgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6Ok9LOworfQorCit2b2lkIEVtdWxhdGVkVmVoaWNsZUhhbDo6b25DcmVhdGUoKSB7CisgICAgVjJfMDo6aW1wbDo6RW11bGF0ZWRWZWhpY2xlSGFsOjpvbkNyZWF0ZSgpOworCisgICAgaW5pdE9iZDJMaXZlRnJhbWUoKm1Qcm9wU3RvcmUtPmdldENvbmZpZ09yRGllKE9CRDJfTElWRV9GUkFNRSkpOworICAgIGluaXRPYmQyRnJlZXplRnJhbWUoKm1Qcm9wU3RvcmUtPmdldENvbmZpZ09yRGllKE9CRDJfRlJFRVpFX0ZSQU1FKSk7Cit9CisKK3ZvaWQgRW11bGF0ZWRWZWhpY2xlSGFsOjppbml0U3RhdGljQ29uZmlnKCkgeworICAgIGZvciAoYXV0byYmIGNmZyA9IHN0ZDo6YmVnaW4oa1ZlaGljbGVQcm9wZXJ0aWVzKTsgY2ZnICE9IHN0ZDo6ZW5kKGtWZWhpY2xlUHJvcGVydGllcyk7ICsrY2ZnKSB7CisgICAgICAgIFYyXzA6OlZlaGljbGVQcm9wZXJ0eVN0b3JlOjpUb2tlbkZ1bmN0aW9uIHRva2VuRnVuY3Rpb24gPSBudWxscHRyOworCisgICAgICAgIHN3aXRjaCAoY2ZnLT5wcm9wKSB7CisgICAgICAgICAgICBjYXNlIE9CRDJfRlJFRVpFX0ZSQU1FOiB7CisgICAgICAgICAgICAgICAgdG9rZW5GdW5jdGlvbiA9IFtdIChjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb3BWYWx1ZS50aW1lc3RhbXA7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBtUHJvcFN0b3JlLT5yZWdpc3RlclByb3BlcnR5KCpjZmcsIHRva2VuRnVuY3Rpb24pOworICAgIH0KK30KKworRW11bGF0ZWRWZWhpY2xlSGFsOjpWZWhpY2xlUHJvcFZhbHVlUHRyIEVtdWxhdGVkVmVoaWNsZUhhbDo6Z2V0KAorICAgICAgICBjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgIFYyXzA6OlN0YXR1c0NvZGUqIG91dFN0YXR1cykgeworCisgICAgYXV0byBwcm9wSWQgPSByZXF1ZXN0ZWRQcm9wVmFsdWUucHJvcDsKKyAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIHYgPSBudWxscHRyOworICAgIGF1dG8mIHBvb2wgPSAqZ2V0VmFsdWVQb29sKCk7CisKKyAgICBzd2l0Y2ggKHByb3BJZCkgeworICAgIGNhc2UgT0JEMl9GUkVFWkVfRlJBTUU6CisgICAgICAgIHYgPSBwb29sLm9idGFpbkNvbXBsZXgoKTsKKyAgICAgICAgKm91dFN0YXR1cyA9IGZpbGxPYmQyRnJlZXplRnJhbWUocmVxdWVzdGVkUHJvcFZhbHVlLCB2LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgY2FzZSBPQkQyX0ZSRUVaRV9GUkFNRV9JTkZPOgorICAgICAgICB2ID0gcG9vbC5vYnRhaW5Db21wbGV4KCk7CisgICAgICAgICpvdXRTdGF0dXMgPSBmaWxsT2JkMkR0Y0luZm8odi5nZXQoKSk7CisgICAgICAgIHJldHVybiB2OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBWMl8wOjppbXBsOjpFbXVsYXRlZFZlaGljbGVIYWw6OmdldChyZXF1ZXN0ZWRQcm9wVmFsdWUsIG91dFN0YXR1cyk7CisgICAgfQorfQorCitWMl8wOjpTdGF0dXNDb2RlIEVtdWxhdGVkVmVoaWNsZUhhbDo6c2V0KGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgeworICAgIGF1dG8gcHJvcElkID0gcHJvcFZhbHVlLnByb3A7CisgICAgc3dpdGNoIChwcm9wSWQpIHsKKyAgICBjYXNlIE9CRDJfRlJFRVpFX0ZSQU1FX0NMRUFSOgorICAgICAgICByZXR1cm4gY2xlYXJPYmQyRnJlZXplRnJhbWVzKHByb3BWYWx1ZSk7CisgICAgY2FzZSBWRUhJQ0xFX01BUF9TRVJWSUNFOgorICAgICAgICAvLyBQbGFjZWhvbGRlciBmb3IgZnV0dXJlIGltcGxlbWVudGF0aW9uIG9mIFZNUyBwcm9wZXJ0eSBpbiB0aGUgZGVmYXVsdCBoYWwuIEZvciBub3csIGp1c3QKKyAgICAgICAgLy8gcmV0dXJucyBPSzsgb3RoZXJ3aXNlLCBoYWwgY2xpZW50cyBjcmFzaCB3aXRoIHByb3BlcnR5IG5vdCBzdXBwb3J0ZWQuCisgICAgICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpPSzsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gVjJfMDo6aW1wbDo6RW11bGF0ZWRWZWhpY2xlSGFsOjpzZXQocHJvcFZhbHVlKTsKKyAgICB9Cit9CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzEKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0VtdWxhdGVkVmVoaWNsZUhhbC5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0VtdWxhdGVkVmVoaWNsZUhhbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjYzNiNzkKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRW11bGF0ZWRWZWhpY2xlSGFsLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMV9pbXBsX0VtdWxhdGVkVmVoaWNsZUhhbF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8xX2ltcGxfRW11bGF0ZWRWZWhpY2xlSGFsX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlIDx1dGlscy9TeXN0ZW1DbG9jay5oPgorCisjaW5jbHVkZSA8dmhhbF92Ml8wL0VtdWxhdGVkVmVoaWNsZUhhbC5oPgorI2luY2x1ZGUgPHZoYWxfdjJfMC9WZWhpY2xlSGFsLmg+CisjaW5jbHVkZSA8dmhhbF92Ml8wL1ZlaGljbGVQcm9wZXJ0eVN0b3JlLmg+CisjaW5jbHVkZSA8dmhhbF92Ml8xL09iZDJTZW5zb3JTdG9yZS5oPgorCisjaW5jbHVkZSAiRGVmYXVsdENvbmZpZy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzEgeworCituYW1lc3BhY2UgaW1wbCB7CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ6OnBsYWNlaG9sZGVyczsKKworY2xhc3MgRW11bGF0ZWRWZWhpY2xlSGFsIDogcHVibGljIFYyXzA6OmltcGw6OkVtdWxhdGVkVmVoaWNsZUhhbCB7CitwdWJsaWM6CisgICAgRW11bGF0ZWRWZWhpY2xlSGFsKFYyXzA6OlZlaGljbGVQcm9wZXJ0eVN0b3JlKiBwcm9wU3RvcmUpCisgICAgICAgIDogVjJfMDo6aW1wbDo6RW11bGF0ZWRWZWhpY2xlSGFsKHByb3BTdG9yZSksIG1Qcm9wU3RvcmUocHJvcFN0b3JlKSB7CisgICAgICAgIGluaXRTdGF0aWNDb25maWcoKTsKKyAgICB9CisKKyAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIGdldChjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVjJfMDo6U3RhdHVzQ29kZSogb3V0U3RhdHVzKSBvdmVycmlkZTsKKworICAgIFYyXzA6OlN0YXR1c0NvZGUgc2V0KGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIG9uQ3JlYXRlKCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdm9pZCBpbml0U3RhdGljQ29uZmlnKCk7CisgICAgdm9pZCBpbml0T2JkMkxpdmVGcmFtZShjb25zdCBWMl8wOjpWZWhpY2xlUHJvcENvbmZpZyYgcHJvcENvbmZpZyk7CisgICAgdm9pZCBpbml0T2JkMkZyZWV6ZUZyYW1lKGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wQ29uZmlnJiBwcm9wQ29uZmlnKTsKKyAgICBWMl8wOjpTdGF0dXNDb2RlIGZpbGxPYmQyRnJlZXplRnJhbWUoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYyXzA6OlZlaGljbGVQcm9wVmFsdWUqIG91dFZhbHVlKTsKKyAgICBWMl8wOjpTdGF0dXNDb2RlIGZpbGxPYmQyRHRjSW5mbyhWMl8wOjpWZWhpY2xlUHJvcFZhbHVlICpvdXRWYWx1ZSk7CisgICAgVjJfMDo6U3RhdHVzQ29kZSBjbGVhck9iZDJGcmVlemVGcmFtZXMoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKTsKKworcHJpdmF0ZToKKyAgICBWMl8wOjpWZWhpY2xlUHJvcGVydHlTdG9yZSogbVByb3BTdG9yZTsKK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzEKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0VtdWxhdGVkVmVoaWNsZUhhbF9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhZTY0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImF1dG9tb3RpdmUudmVoaWNsZUAyLjEtc2VydmljZSIKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKworI2luY2x1ZGUgPGlvc3RyZWFtPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0lWZWhpY2xlLmg+CisKKyNpbmNsdWRlIDx2aGFsX3YyXzAvVmVoaWNsZUhhbE1hbmFnZXIuaD4KKyNpbmNsdWRlIDx2aGFsX3YyXzAvVmVoaWNsZVByb3BlcnR5U3RvcmUuaD4KKyNpbmNsdWRlIDx2aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmg+CisKKyNpbmNsdWRlIDx2aGFsX3YyXzEvRW11bGF0ZWRWZWhpY2xlSGFsLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwordXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ6OmhhcmR3YXJlOworCituYW1lc3BhY2UgVjJfMSA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OnZlaGljbGU6OlYyXzE7CituYW1lc3BhY2UgVjJfMCA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OnZlaGljbGU6OlYyXzA7CisKK3VzaW5nIFN0YXR1c0NvZGUgPSBWMl8wOjpTdGF0dXNDb2RlOwordXNpbmcgVmVoaWNsZVByb3BWYWx1ZSA9IFYyXzA6OlZlaGljbGVQcm9wVmFsdWU7CisKKy8qIEp1c3Qgd3JhcHBlciB0aGF0IHBhc3NlcyBhbGwgY2FsbHMgdG8gdGhlIHByb3ZpZGVkIFYyXzA6OklWZWhpY2xlIG9iamVjdCAqLworc3RydWN0IFZlaGljbGVfVjJfMSA6IHB1YmxpYyBWMl8xOjpJVmVoaWNsZSB7CisKKyAgICBWZWhpY2xlX1YyXzEoVjJfMDo6SVZlaGljbGUqIHZlaGljbGUyMCkgOiBtVmVoaWNsZTIwKHZlaGljbGUyMCkge30KKworICAgIC8vIE1ldGhvZHMgZGVyaXZlZCBmcm9tIElWZWhpY2xlCisgICAgUmV0dXJuPHZvaWQ+IGdldEFsbFByb3BDb25maWdzKGdldEFsbFByb3BDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gbVZlaGljbGUyMC0+Z2V0QWxsUHJvcENvbmZpZ3MoX2hpZGxfY2IpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBnZXRQcm9wQ29uZmlncyhjb25zdCBoaWRsX3ZlYzxpbnQzMl90PiYgcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UHJvcENvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBtVmVoaWNsZTIwLT5nZXRQcm9wQ29uZmlncyhwcm9wZXJ0aWVzLCBfaGlkbF9jYik7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IGdldChjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICBnZXRfY2IgX2hpZGxfY2IpICBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBtVmVoaWNsZTIwLT5nZXQocmVxdWVzdGVkUHJvcFZhbHVlLCBfaGlkbF9jYik7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1c0NvZGU+IHNldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZSkgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gbVZlaGljbGUyMC0+c2V0KHZhbHVlKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzQ29kZT4gc3Vic2NyaWJlKGNvbnN0IHNwPFYyXzA6OklWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFYyXzA6OlN1YnNjcmliZU9wdGlvbnM+JgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucykgIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIG1WZWhpY2xlMjAtPnN1YnNjcmliZShjYWxsYmFjaywgb3B0aW9ucyk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1c0NvZGU+IHVuc3Vic2NyaWJlKGNvbnN0IHNwPFYyXzA6OklWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwcm9wSWQpICBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBtVmVoaWNsZTIwLT51bnN1YnNjcmliZShjYWxsYmFjaywgcHJvcElkKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGRlYnVnRHVtcF9jYiBfaGlkbF9jYiA9IG51bGxwdHIpIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIG1WZWhpY2xlMjAtPmRlYnVnRHVtcChfaGlkbF9jYik7CisgICAgfQorCitwcml2YXRlOgorICAgIFYyXzA6OklWZWhpY2xlKiBtVmVoaWNsZTIwOworfTsKKworaW50IG1haW4oaW50IC8qIGFyZ2MgKi8sIGNoYXIqIC8qIGFyZ3YgKi8gW10pIHsKKyAgICBhdXRvIHN0b3JlID0gc3RkOjptYWtlX3VuaXF1ZTxWMl8wOjpWZWhpY2xlUHJvcGVydHlTdG9yZT4oKTsKKyAgICBhdXRvIGhhbCA9IHN0ZDo6bWFrZV91bmlxdWU8VjJfMTo6aW1wbDo6RW11bGF0ZWRWZWhpY2xlSGFsPihzdG9yZS5nZXQoKSk7CisgICAgYXV0byBlbXVsYXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8VjJfMDo6aW1wbDo6VmVoaWNsZUVtdWxhdG9yPihoYWwuZ2V0KCkpOworICAgIGF1dG8gdmVoaWNsZU1hbmFnZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFYyXzA6OlZlaGljbGVIYWxNYW5hZ2VyPihoYWwuZ2V0KCkpOworCisgICAgVmVoaWNsZV9WMl8xIHZlaGljbGUyMSh2ZWhpY2xlTWFuYWdlci5nZXQoKSk7CisKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDEsIHRydWUgLyogY2FsbGVyV2lsbEpvaW4gKi8pOworCisgICAgQUxPR0koIlJlZ2lzdGVyaW5nIGFzIHNlcnZpY2UuLi4iKTsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSB2ZWhpY2xlMjEucmVnaXN0ZXJBc1NlcnZpY2UoKTsKKworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR0UoIlVuYWJsZSB0byByZWdpc3RlciB2ZWhpY2xlIHNlcnZpY2UgKCVkKS4iLCBzdGF0dXMpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBBTE9HSSgiUmVhZHkiKTsKKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworICAgIHJldHVybiAxOworfQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L3Rlc3RzL09iZDJTZW5zb3JTdG9yZV90ZXN0LmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC90ZXN0cy9PYmQyU2Vuc29yU3RvcmVfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAxYzBmNAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC90ZXN0cy9PYmQyU2Vuc29yU3RvcmVfdGVzdC5jcHAKQEAgLTAsMCArMSwyODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisgI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNsdWRlICJ2aGFsX3YyXzAvT2JkMlNlbnNvclN0b3JlLmgiCisjaW5jbHVkZSAidmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgeworCitzdGF0aWMgY29uc3RleHByIHNpemVfdCBnZXROdW1WZW5kb3JJbnRlZ2VyU2Vuc29ycygpIHsKKyAgICByZXR1cm4gNTsKK30KK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGdldE51bVZlbmRvckZsb2F0U2Vuc29ycygpIHsKKyAgICByZXR1cm4gMzsKK30KKworLy8gdGhpcyBzdHJ1Y3QgaG9sZHMgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IGZvciBhIHRlc3QgdG8gYmUgYWJsZSB0byB2YWxpZGF0ZQorLy8gdGhhdCB0aGUgc2Vuc29yIGJpdG1hc2sgY29udGFpbnMgdGhlIHJpZ2h0IGRhdGE6CisvLyAgIC0gdGhlIGluZGV4IG9mIHRoZSBieXRlIGF0IHdoaWNoIHRoZSBiaXQgZm9yIGEgZ2l2ZW4gc2Vuc29yIGxpdmVzCisvLyAgIC0gdGhlIGV4cGVjdGVkIHZhbHVlIG9mIHRoYXQgYnl0ZSBnaXZlbiB0aGF0IGEgY2VydGFpbiBzZW5zb3IgaXMgcHJlc2VudAorY2xhc3MgQml0bWFza0luZGV4aW5nSW5mbyB7CitwdWJsaWM6CisgICAgc2l6ZV90IG1CeXRlSW5kZXg7CisgICAgdWludDhfdCBtRXhwZWN0ZWRCeXRlVmFsdWU7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byB2YWxpZGF0ZSB0aGUgYml0bWFzayBmb3IgYW4KKyAgICAvLyBpbnRlZ2VyLXZhbHVlZCBzZW5zb3IuCisgICAgc3RhdGljIEJpdG1hc2tJbmRleGluZ0luZm8gZ2V0Rm9ySW50ZWdlclNlbnNvcihzaXplX3QgaW5kZXgpIHsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGluZGV4SW5CaXRzdHJlYW0gPSBpbmRleDsKKyAgICAgICAgcmV0dXJuIGdldEZvckJpdHN0cmVhbUluZGV4KGluZGV4SW5CaXRzdHJlYW0pOworICAgIH0KKworICAgIC8vIFJldHVybnMgdGhlIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIHZhbGlkYXRlIHRoZSBiaXRtYXNrIGZvciBhCisgICAgLy8gZmxvYXQtdmFsdWVkIHNlbnNvci4KKyAgICBzdGF0aWMgQml0bWFza0luZGV4aW5nSW5mbyBnZXRGb3JGbG9hdFNlbnNvcihzaXplX3QgaW5kZXgpIHsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGluZGV4SW5CaXRzdHJlYW0gPSB0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKyBnZXROdW1WZW5kb3JJbnRlZ2VyU2Vuc29ycygpICsgaW5kZXg7CisgICAgICAgIHJldHVybiBnZXRGb3JCaXRzdHJlYW1JbmRleChpbmRleEluQml0c3RyZWFtKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RhdGljIEJpdG1hc2tJbmRleGluZ0luZm8gZ2V0Rm9yQml0c3RyZWFtSW5kZXgoc2l6ZV90IGluZGV4SW5CaXRzdHJlYW0pIHsKKyAgICAgICAgQml0bWFza0luZGV4aW5nSW5mbyBpbmRleGluZ0luZm87CisgICAgICAgIGluZGV4aW5nSW5mby5tQnl0ZUluZGV4ID0gaW5kZXhJbkJpdHN0cmVhbSAvIDg7CisgICAgICAgIGluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUgPSAxIDw8IChpbmRleEluQml0c3RyZWFtICUgOCk7CisgICAgICAgIHJldHVybiBpbmRleGluZ0luZm87CisgICAgfQorfTsKKworc3RhdGljIE9iZDJTZW5zb3JTdG9yZSBnZXRTZW5zb3JTdG9yZSgpIHsKKyAgICByZXR1cm4gT2JkMlNlbnNvclN0b3JlKGdldE51bVZlbmRvckludGVnZXJTZW5zb3JzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXROdW1WZW5kb3JGbG9hdFNlbnNvcnMoKSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgdGhlIGZpcnN0IGludGVnZXIgc2Vuc29yLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRGaXJzdEludGVnZXJTZW5zb3IpIHsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6RlVFTF9TWVNURU1fU1RBVFVTLAorICAgICAgICB0b0ludChGdWVsU3lzdGVtU3RhdHVzOjpDTE9TRURfTE9PUCkpOworICAgIGNvbnN0IGF1dG8mIGludGVnZXJTZW5zb3JzKHNlbnNvclN0b3JlLmdldEludGVnZXJTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICB0b0ludChGdWVsU3lzdGVtU3RhdHVzOjpDTE9TRURfTE9PUCksCisgICAgICAgIGludGVnZXJTZW5zb3JzW3RvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkZVRUxfU1lTVEVNX1NUQVRVUyldKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIGluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JJbnRlZ2VyU2Vuc29yKAorICAgICAgICB0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpGVUVMX1NZU1RFTV9TVEFUVVMpKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICBzZW5zb3JCaXRtYXNrW2luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgdGhlIGZpcnN0IGZsb2F0IHNlbnNvci4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0Rmlyc3RGbG9hdFNlbnNvcikgeworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkNBTENVTEFURURfRU5HSU5FX0xPQUQsCisgICAgICAgIDEuMjVmKTsKKyAgICBjb25zdCBhdXRvJiBmbG9hdFNlbnNvcnMoc2Vuc29yU3RvcmUuZ2V0RmxvYXRTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICAxLjI1ZiwKKyAgICAgICAgZmxvYXRTZW5zb3JzW3RvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpDQUxDVUxBVEVEX0VOR0lORV9MT0FEKV0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckZsb2F0U2Vuc29yKAorICAgICAgICB0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6Q0FMQ1VMQVRFRF9FTkdJTkVfTE9BRCkpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIGluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgIHNlbnNvckJpdG1hc2tbaW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKK30KKworLy8gVGVzdCB0aGF0IG9uZSBjYW4gc2V0IGFuZCByZXRyaWV2ZSBhIHZhbHVlIGZvciBhbiBpbnRlZ2VyIHNlbnNvci4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0QW55SW50ZWdlclNlbnNvcikgeworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpBQlNPTFVURV9CQVJPTUVUUklDX1BSRVNTVVJFLAorICAgICAgICA0MDAwKTsKKyAgICBjb25zdCBhdXRvJiBpbnRlZ2VyU2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRJbnRlZ2VyU2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSg0MDAwLAorICAgICAgICBpbnRlZ2VyU2Vuc29yc1t0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpBQlNPTFVURV9CQVJPTUVUUklDX1BSRVNTVVJFKV0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckludGVnZXJTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkFCU09MVVRFX0JBUk9NRVRSSUNfUFJFU1NVUkUpKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICBzZW5zb3JCaXRtYXNrW2luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgYSBmbG9hdCBzZW5zb3IuCitURVNUKE9iZDJTZW5zb3JTdG9yZVRlc3QsIHNldEFueUZsb2F0U2Vuc29yKSB7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6T1hZR0VOX1NFTlNPUjNfVk9MVEFHRSwKKyAgICAgICAgMi41Zik7CisgICAgY29uc3QgYXV0byYgZmxvYXRTZW5zb3JzKHNlbnNvclN0b3JlLmdldEZsb2F0U2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSgyLjVmLAorICAgICAgICBmbG9hdFNlbnNvcnNbdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6Ok9YWUdFTl9TRU5TT1IzX1ZPTFRBR0UpXSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyBpbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9yRmxvYXRTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpPWFlHRU5fU0VOU09SM19WT0xUQUdFKSkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgc2Vuc29yQml0bWFza1tpbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIHRoZSBsYXN0IHN5c3RlbSBpbnRlZ2VyIHNlbnNvci4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0TGFzdFN5c3RlbUludGVnZXJTZW5zb3IpIHsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgsCisgICAgICAgIDMwKTsKKyAgICBjb25zdCBhdXRvJiBpbnRlZ2VyU2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRJbnRlZ2VyU2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSgzMCwKKyAgICAgICAgaW50ZWdlclNlbnNvcnNbdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpXSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyBpbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9ySW50ZWdlclNlbnNvcigKKyAgICAgICAgdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICBzZW5zb3JCaXRtYXNrW2luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgdGhlIGxhc3Qgc3lzdGVtIGZsb2F0IHNlbnNvci4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0TGFzdFN5c3RlbUZsb2F0U2Vuc29yKSB7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgsCisgICAgICAgIDIuNWYpOworICAgIGNvbnN0IGF1dG8mIGZsb2F0U2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRGbG9hdFNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoMi41ZiwKKyAgICAgICAgZmxvYXRTZW5zb3JzW3RvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCldKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIGluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JGbG9hdFNlbnNvcigKKyAgICAgICAgdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkxBU1RfU1lTVEVNX0lOREVYKSkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgc2Vuc29yQml0bWFza1tpbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIHR3byBpbnRlZ2VyIHNlbnNvcnMgYXQgb25jZS4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0VHdvSW50ZWdlclNlbnNvcnMpIHsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6Q09OVFJPTF9NT0RVTEVfVk9MVEFHRSwKKyAgICAgICAgNik7CisgICAgc2Vuc29yU3RvcmUuc2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6VElNRV9TSU5DRV9UUk9VQkxFX0NPREVTX0NMRUFSRUQsCisgICAgICAgIDEyNDUpOworICAgIGNvbnN0IGF1dG8mIGludGVnZXJTZW5zb3JzKHNlbnNvclN0b3JlLmdldEludGVnZXJTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKDYsCisgICAgICAgIGludGVnZXJTZW5zb3JzW3RvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkNPTlRST0xfTU9EVUxFX1ZPTFRBR0UpXSk7CisgICAgQVNTRVJUX0VRKDEyNDUsCisgICAgICAgIGludGVnZXJTZW5zb3JzW3RvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OlRJTUVfU0lOQ0VfVFJPVUJMRV9DT0RFU19DTEVBUkVEKV0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gdm9sdGFnZUluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JJbnRlZ2VyU2Vuc29yKAorICAgICAgICB0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpDT05UUk9MX01PRFVMRV9WT0xUQUdFKSkpOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gdGltZUluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JJbnRlZ2VyU2Vuc29yKAorICAgICAgICB0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpUSU1FX1NJTkNFX1RST1VCTEVfQ09ERVNfQ0xFQVJFRCkpKTsKKyAgICBpZiAodm9sdGFnZUluZGV4aW5nSW5mby5tQnl0ZUluZGV4ID09IHRpbWVJbmRleGluZ0luZm8ubUJ5dGVJbmRleCkgeworICAgICAgICBBU1NFUlRfRVEoCisgICAgICAgICAgICB2b2x0YWdlSW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSB8CisgICAgICAgICAgICB0aW1lSW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgICAgIHNlbnNvckJpdG1hc2tbdGltZUluZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBBU1NFUlRfRVEoCisgICAgICAgICAgICB0aW1lSW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgICAgIHNlbnNvckJpdG1hc2tbdGltZUluZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7CisgICAgICAgIEFTU0VSVF9FUSgKKyAgICAgICAgICAgIHZvbHRhZ2VJbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICAgICAgc2Vuc29yQml0bWFza1t2b2x0YWdlSW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKKyAgICB9Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgdHdvIGZsb2F0IHNlbnNvcnMgYXQgb25jZS4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0VHdvRmxvYXRTZW5zb3JzKSB7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6VkVISUNMRV9TUEVFRCwKKyAgICAgICAgMS4yNWYpOworICAgIHNlbnNvclN0b3JlLnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6TUFGX0FJUl9GTE9XX1JBVEUsCisgICAgICAgIDIuNWYpOworICAgIGNvbnN0IGF1dG8mIGZsb2F0U2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRGbG9hdFNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoMS4yNWYsCisgICAgICAgIGZsb2F0U2Vuc29yc1t0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6VkVISUNMRV9TUEVFRCldKTsKKyAgICBBU1NFUlRfRVEoMi41ZiwKKyAgICAgICAgZmxvYXRTZW5zb3JzW3RvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpNQUZfQUlSX0ZMT1dfUkFURSldKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIHNwZWVkSW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckZsb2F0U2Vuc29yKAorICAgICAgICB0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6VkVISUNMRV9TUEVFRCkpKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIGFpcmZsb3dJbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9yRmxvYXRTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpNQUZfQUlSX0ZMT1dfUkFURSkpKTsKKyAgICBpZiAoc3BlZWRJbmRleGluZ0luZm8ubUJ5dGVJbmRleCA9PSBhaXJmbG93SW5kZXhpbmdJbmZvLm1CeXRlSW5kZXgpIHsKKyAgICAgICAgQVNTRVJUX0VRKAorICAgICAgICAgICAgc3BlZWRJbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlIHwKKyAgICAgICAgICAgIGFpcmZsb3dJbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICAgICAgc2Vuc29yQml0bWFza1thaXJmbG93SW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVF9FUSgKKyAgICAgICAgICAgIHNwZWVkSW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgICAgIHNlbnNvckJpdG1hc2tbc3BlZWRJbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworICAgICAgICBBU1NFUlRfRVEoCisgICAgICAgICAgICBhaXJmbG93SW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgICAgIHNlbnNvckJpdG1hc2tbYWlyZmxvd0luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7CisgICAgfQorfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIGEgdmVuZG9yIGludGVnZXIgc2Vuc29yLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRWZW5kb3JJbnRlZ2VyU2Vuc29yKSB7CisgICAgY29uc3Qgc2l6ZV90IHNlbnNvckluZGV4ID0gdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpICsgMjsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0SW50ZWdlclNlbnNvcihzZW5zb3JJbmRleCwgMjIpOworICAgIGNvbnN0IGF1dG8mIGludGVnZXJTZW5zb3JzKHNlbnNvclN0b3JlLmdldEludGVnZXJTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKDIyLCBpbnRlZ2VyU2Vuc29yc1tzZW5zb3JJbmRleF0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckludGVnZXJTZW5zb3IoCisgICAgICAgIHNlbnNvckluZGV4KSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICBzZW5zb3JCaXRtYXNrW2luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgYSB2ZW5kb3IgZmxvYXQgc2Vuc29yLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRWZW5kb3JGbG9hdFNlbnNvcikgeworICAgIGNvbnN0IHNpemVfdCBzZW5zb3JJbmRleCA9IHRvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCkgKyAyOworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRGbG9hdFNlbnNvcihzZW5zb3JJbmRleCwgMS4yNWYpOworICAgIGNvbnN0IGF1dG8mIGZsb2F0U2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRGbG9hdFNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoMS4yNWYsIGZsb2F0U2Vuc29yc1tzZW5zb3JJbmRleF0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckZsb2F0U2Vuc29yKAorICAgICAgICBzZW5zb3JJbmRleCkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgc2Vuc29yQml0bWFza1tpbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworfQorCit9ICAvLyBuYW1lc3BhY2UgYW5vbnltb3VzCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvdHlwZXMuaGFsIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhkYzE0NAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNjA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4xICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4xCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA7CisKKy8qKgorICogRXh0ZW5zaW9uIG9mIFZlaGljbGVQcm9wZXJ0eSBlbnVtIGRlY2xhcmVkIGluIFZlaGljbGUgSEFMIDIuMAorICovCitlbnVtIFZlaGljbGVQcm9wZXJ0eTogQDIuMDo6VmVoaWNsZVByb3BlcnR5IHsKKyAgICAvKioKKyAgICAgKiBSZXBvcnRzIHdoZWVsIHJvdGF0aW9uYWwgZGlzdGFuY2UgaW4gbWV0ZXJzIHNpbmNlIGxhc3Qgd2hlZWwgdGljaworICAgICAqIGV2ZW50CisgICAgICoKKyAgICAgKiBUaGUgdmFsdWUgaXMgYSB2ZWN0b3IgZWFjaCBlbGVtZW50IHJlcHJlc2VudHMgZGlzdGFuY2UgZm9yIGluZGl2aWR1YWwKKyAgICAgKiB3aGVlbCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOiBsZWZ0IGZyb250LCByaWdodCBmcm9udCwgbGVmdCByZWFyLAorICAgICAqIHJpZ2h0IHJlYXIuIFZlaGljbGVQcm9wVmFsdWUudGltZXN0YW1wIG11c3QgYmUgY29ycmVjdGx5IGZpbGxlZCBpbi4KKyAgICAgKgorICAgICAqIFZlbmRvcnMgbXVzdCBzcGVjaWZ5IHdoZWVscyB0aGF0IHN1cHBvcnQgdGhpcyBzZW5zb3IgaW4KKyAgICAgKiBWZWhpY2xlUHJvcENvbmZpZy5jb25maWdGbGFncy4gVGhlIGZvcm1hdCBvZiB0aGlzIGZpZWxkIGlzIGEgYml0c2V0IG9mCisgICAgICogdmFsdWVzIGZyb20gV2hlZWwgZW51bS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRSB8VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpDT05USU5VT1VTCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0Ok1FVEVSCisgICAgICovCisgICAgV0hFRUxfVElDSyA9ICgKKyAgICAgIDB4MDMwNgorICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVF9WRUMKKyAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIE9CRDIgTGl2ZSBTZW5zb3IgRGF0YQorICAgICAqCisgICAgICogVGhpcyBwcm9wZXJ0eSB1c2VzIENPTVBMRVggZGF0YSB0byBzZW5kIGEgc25hcHNob3Qgb2YgdGhlIGN1cnJlbnQgKGxpdmUpCisgICAgICogdmFsdWVzIG9mIHRoZSBPQkQyIHNlbnNvcnMgcHJvdmlkZWQgYnkgdGhlIHZlaGljbGUuCisgICAgICoKKyAgICAgKiBWZWhpY2xlUHJvcENvbmZpZworICAgICAqICAgY29uZmlnQXJyYXlbMF0gOiBudW1iZXIgb2YgdmVuZG9yLXNwZWNpZmljIGludGVnZXItdmFsdWVkIHNlbnNvcnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgcmV0dXJuZWQgaW4gYSBmcmFtZS4KKyAgICAgKiAgIGNvbmZpZ0FycmF5WzFdIDogbnVtYmVyIG9mIHZlbmRvci1zcGVjaWZpYyBmbG9hdC12YWx1ZWQgc2Vuc29ycworICAgICAqICAgICAgICAgICAgICAgICAgICB0aGF0IGNhbiBiZSByZXR1cm5lZCBpbiBhIGZyYW1lLgorICAgICAqCisgICAgICogVGhlIHZhbHVlcyBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czoKKyAgICAgKiB0aGUgaW5kaWNlcyBkZWZpbmVkIGluIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXggYXJlIHRvIGJlIHVzZWQgdG8KKyAgICAgKiByZWFkIGZyb20gaW50MzJWYWx1ZXM7CisgICAgICogdGhlIGluZGljZXMgZGVmaW5lZCBpbiBPYmQyRmxvYXRTZW5zb3JJbmRleCBhcmUgdG8gYmUgdXNlZCB0bworICAgICAqIHJlYWQgZnJvbSBmbG9hdFZhbHVlcy4KKyAgICAgKiB0aGUgZWxlbWVudHMgb2YgYnl0ZXMgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIGEgYml0bWFzaywgc3VjaCB0aGF0CisgICAgICogdGhlIGJpdHMgMCB0aHJ1IHRoZSBpbnRlZ2VyIHZhbHVlIG9mCisgICAgICogT2JkMkludGVnZXJTZW5zb3JJbmRleC5MQVNUX1NZU1RFTV9JTkRFWCArIHRoZSB2YWx1ZSBvZiBjb25maWdBcnJheVswXQorICAgICAqIGFyZSAxIGlmIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4IGlzIGEgdmFsaWQgc2Vuc29yIGluZGV4IHdob3NlIHZhbHVlIGNhbgorICAgICAqIGJlIHJlYWQgaW4gdGhlIHJldHVybmVkIGludDMyVmFsdWVzIHZlY3RvciwgMCBvdGhlcndpc2UuCisgICAgICogdGhlIGJpdHMgT2JkMkludGVnZXJTZW5zb3JJbmRleC5MQVNUX1NZU1RFTV9JTkRFWCsxIHRocnUKKyAgICAgKiBPYmQyRmxvYXRpbmdTZW5zb3JJbmRleC5MQVNUX1NZU1RFTV9JTkRFWCArIHRoZSB2YWx1ZSBvZiBjb25maWdBcnJheVsxXQorICAgICAqIGFyZSAxIGlmIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4IGlzIGEgdmFsaWQgc2Vuc29yIGluZGV4IHdob3NlIHZhbHVlCisgICAgICogY2FuIGJlIHJlYWQgaW4gdGhlIHJldHVybmVkIGZsb2F0VmFsdWVzIHZlY3RvciwgMCBvdGhlcndpc2UuCisgICAgICoKKyAgICAgKiBGb3IgZXhhbXBsZSwgaW50MzJWYWx1ZXNbMF0gY29ycmVzcG9uZHMgdG8gRlVFTF9TWVNURU1fU1RBVFVTLCBhbmQKKyAgICAgKiBmbG9hdFZhbHVlc1swXSBjb3JyZXNwb25kcyB0byBDQUxDVUxBVEVEX0VOR0lORV9MT0FELCBidXQgdGhhdCBtYXBwaW5nCisgICAgICogaXMgb25seSB2YWxpZCBpZiB0aGUgY29ycmVzcG9uZGluZyBiaXRzIGluIHRoZSBieXRlcyB2ZWN0b3IgYXJlIHNldCB0byAxLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIE9CRDJfTElWRV9GUkFNRSA9ICgKKyAgICAgIDB4MEQwMAorICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpDT01QTEVYCisgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBPQkQyIEZyZWV6ZSBGcmFtZSBTZW5zb3IgRGF0YQorICAgICAqCisgICAgICogVGhpcyBwcm9wZXJ0eSB1c2VzIENPTVBMRVggZGF0YSB0byBzZW5kIGEgc25hcHNob3Qgb2YgdGhlIHZhbHVlcyBvZiB0aGUKKyAgICAgKiBPQkQyIHNlbnNvcnMgcHJvdmlkZWQgYnkgdGhlIHZlaGljbGUgYXQgdGhlIHRpbWUgdGhhdCBhIGRpYWdub3N0aWMKKyAgICAgKiB0cm91Ymxlc2hvb3RpbmcgY29kZSAoRFRDKSB3YXMgcmVjb3JkZWQgYnkgdGhlIHZlaGljbGUuCisgICAgICoKKyAgICAgKiBWZWhpY2xlUHJvcENvbmZpZworICAgICAqICAgY29uZmlnQXJyYXlbMF0gOiBudW1iZXIgb2YgdmVuZG9yLXNwZWNpZmljIGludGVnZXItdmFsdWVkIHNlbnNvcnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgcmV0dXJuZWQgaW4gYSBmcmFtZS4KKyAgICAgKiAgIGNvbmZpZ0FycmF5WzFdIDogbnVtYmVyIG9mIHZlbmRvci1zcGVjaWZpYyBmbG9hdC12YWx1ZWQgc2Vuc29ycworICAgICAqICAgICAgICAgICAgICAgICAgICB0aGF0IGNhbiBiZSByZXR1cm5lZCBpbiBhIGZyYW1lLgorICAgICAqCisgICAgICogQSBnZXQgb2YgdGhpcyBwcm9wZXJ0eSBtdXN0IHRha2UgdGhlIGZvbGxvd2luZyBmb3JtOgorICAgICAqICAgaW50NjRWYWx1ZXNbMF06IHRpbWVzdGFtcCBvZiB0aGUgZnJlZXplIGZyYW1lIHRvIHJldHJpZXZlLgorICAgICAqICAgICAgICAgICAgICAgICAgIFZhbGlkIHRpbWVzdGFtcHMgYXJlIGdpdmVuIGJ5IE9CRDJfRFRDX0lORk8uCisgICAgICoKKyAgICAgKiBUaGUgdmFsdWVzIGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcyBmb2xsb3dzOgorICAgICAqIHRoZSBpbmRpY2VzIGRlZmluZWQgaW4gT2JkMkludGVnZXJTZW5zb3JJbmRleCBhcmUgdG8gYmUgdXNlZCB0bworICAgICAqIHJlYWQgZnJvbSBpbnQzMlZhbHVlczsKKyAgICAgKiB0aGUgaW5kaWNlcyBkZWZpbmVkIGluIE9iZDJGbG9hdFNlbnNvckluZGV4IGFyZSB0byBiZSB1c2VkIHRvCisgICAgICogcmVhZCBmcm9tIGZsb2F0VmFsdWVzOworICAgICAqIHRoZSBlbGVtZW50cyBvZiBieXRlcyBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgYSBiaXRtYXNrLCBzdWNoIHRoYXQKKyAgICAgKiB0aGUgYml0cyAwIHRocnUgdGhlIGludGVnZXIgdmFsdWUgb2YKKyAgICAgKiBPYmQySW50ZWdlclNlbnNvckluZGV4LkxBU1RfU1lTVEVNX0lOREVYICsgdGhlIHZhbHVlIG9mIGNvbmZpZ0FycmF5WzBdCisgICAgICogYXJlIDEgaWYgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXggaXMgYSB2YWxpZCBzZW5zb3IgaW5kZXggd2hvc2UgdmFsdWUgY2FuCisgICAgICogYmUgcmVhZCBpbiB0aGUgcmV0dXJuZWQgaW50MzJWYWx1ZXMgdmVjdG9yLCAwIG90aGVyd2lzZS4KKyAgICAgKiB0aGUgYml0cyBPYmQySW50ZWdlclNlbnNvckluZGV4LkxBU1RfU1lTVEVNX0lOREVYKzEgdGhydQorICAgICAqIE9iZDJGbG9hdGluZ1NlbnNvckluZGV4LkxBU1RfU1lTVEVNX0lOREVYICsgdGhlIHZhbHVlIG9mIGNvbmZpZ0FycmF5WzFdCisgICAgICogYXJlIDEgaWYgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXggaXMgYSB2YWxpZCBzZW5zb3IgaW5kZXggd2hvc2UgdmFsdWUKKyAgICAgKiBjYW4gYmUgcmVhZCBpbiB0aGUgcmV0dXJuZWQgZmxvYXRWYWx1ZXMgdmVjdG9yLCAwIG90aGVyd2lzZS4KKyAgICAgKiBzdHJpbmdWYWx1ZSBpcyB0aGUgRFRDIHRoYXQgY2F1c2VkIHRoaXMgZnJlZXplIGZyYW1lIHRvIGJlIHJlY29yZGVkLgorICAgICAqCisgICAgICogRm9yIGV4YW1wbGUsIGludDMyVmFsdWVzWzBdIGNvcnJlc3BvbmRzIHRvIEZVRUxfU1lTVEVNX1NUQVRVUywgYW5kCisgICAgICogZmxvYXRWYWx1ZXNbMF0gY29ycmVzcG9uZHMgdG8gQ0FMQ1VMQVRFRF9FTkdJTkVfTE9BRCwgYnV0IHRoYXQgbWFwcGluZworICAgICAqIGlzIG9ubHkgdmFsaWQgaWYgdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBpbiB0aGUgYnl0ZXMgdmVjdG9yIGFyZSBzZXQgdG8gMSwKKyAgICAgKiBhbmQgYSBwb3NzaWJsZSB2YWxpZCBzdHJpbmdWYWx1ZSBpcyAiUDAxNzYiIHRvIGluZGljYXRlIGEgbWFsZnVuY3Rpb24KKyAgICAgKiBvZiB0aGUgZnVlbCBjb21wb3NpdGlvbiBzZW5zb3IgY2lyY3VpdC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBPQkQyX0ZSRUVaRV9GUkFNRSA9ICgKKyAgICAgIDB4MEQwMQorICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpDT01QTEVYCisgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBPQkQyIEZyZWV6ZSBGcmFtZSBJbmZvcm1hdGlvbgorICAgICAqCisgICAgICogVGhpcyBwcm9wZXJ0eSBkZXNjcmliZXMgdGhlIGN1cnJlbnQgZnJlZXplIGZyYW1lcyBzdG9yZWQgaW4gdmVoaWNsZQorICAgICAqIG1lbW9yeSBhbmQgYXZhaWxhYmxlIGZvciByZXRyaWV2YWwgdmlhIE9CRDJfRlJFRVpFX0ZSQU1FLgorICAgICAqCisgICAgICogVGhlIHZhbHVlcyBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czoKKyAgICAgKiBlYWNoIGVsZW1lbnQgb2YgaW50NjRWYWx1ZXMgaXMgdGhlIHRpbWVzdGFtcCBhdCB3aGljaCBhIGEgZmF1bHQgY29kZQorICAgICAqIGhhcyBiZWVuIGRldGVjdGVkIGFuZCB0aGUgY29ycmVzcG9uZGluZyBmcmVlemUgZnJhbWUgc3RvcmVkLCBhbmQgZWFjaAorICAgICAqIHN1Y2ggZWxlbWVudCBjYW4gYmUgdXNlZCBhcyB0aGUga2V5IHRvIE9CRDJfRlJFRVpFX0ZSQU1FIHRvIHJldHJpZXZlCisgICAgICogdGhlIGNvcnJlc3BvbmRpbmcgZnJlZXplIGZyYW1lLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIE9CRDJfRlJFRVpFX0ZSQU1FX0lORk8gPSAoCisgICAgICAweDBEMDIKKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Q09NUExFWAorICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogT0JEMiBGcmVlemUgRnJhbWUgQ2xlYXIKKyAgICAgKgorICAgICAqIFRoaXMgcHJvcGVydHkgYWxsb3dzIGRlbGV0aW9uIG9mIGFueSBvZiB0aGUgZnJlZXplIGZyYW1lcyBzdG9yZWQgaW4KKyAgICAgKiB2ZWhpY2xlIG1lbW9yeSwgYXMgZGVzY3JpYmVkIGJ5IE9CRDJfRFRDX0lORk8uCisgICAgICoKKyAgICAgKiBBIHNldCBvZiB0aGlzIHByb3BlcnR5IGlzIHRvIGJlIGludGVycHJldGVkIGFzIGZvbGxvd3M6CisgICAgICogaWYgaW50NjRWYWx1ZXMgY29udGFpbnMgbm8gZWxlbWVudHMsIHRoZW4gYWxsIERUQ3Mgc3RvcmVkIHdpbGwgYmUgY2xlYXJlZDsKKyAgICAgKiBpZiBpbnQ2NFZhbHVlcyBjb250YWlucyBvbmUgb3IgbW9yZSBlbGVtZW50cywgdGhlbiBEVENzIGF0IHRoZSB0aW1lc3RhbXBzCisgICAgICogc3RvcmVkIGluIGludDY0VmFsdWVzIHdpbGwgYmUgY2xlYXJlZCwgYW5kIHRoZSBvdGhlcnMgbm90IGNsZWFyZWQsIGV4Y2VwdAorICAgICAqIHRoZSBtZW1vcnkgd2lsbCBiZSBjb21wYWN0ZWQgc28gdGhhdCBhbGwgcmVtYWluaW5nIERUQ3MgYXJlIHN0b3JlZAorICAgICAqIGNvbnRpZ3VvdXNseS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOldSSVRFCisgICAgICovCisgICAgT0JEMl9GUkVFWkVfRlJBTUVfQ0xFQVIgPSAoCisgICAgICAweDBEMDMKKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Q09NUExFWAorICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogVmVoaWNsZSBNYXBzIFNlcnZpY2UgKFZNUykgbWVzc2FnZQorICAgICAqCisgICAgICogVGhpcyBwcm9wZXJ0eSB1c2VzIENPTVBMRVggZGF0YSB0byBjb21tdW5pY2F0ZSB2bXMgbWVzc2FnZXMuCisgICAgICoKKyAgICAgKiBJdHMgY29udGVudHMgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIGZvbGxvd3M6CisgICAgICogdGhlIGluZGljZXMgZGVmaW5lZCBpbiBWbXNNZXNzYWdlSW50ZWdlclZhbHVlc0luZGV4IGFyZSB0byBiZSB1c2VkIHRvCisgICAgICogcmVhZCBmcm9tIGludDMyVmFsdWVzOworICAgICAqIGJ5dGVzIGlzIGEgc2VyaWFsaXplZCBWTVMgbWVzc2FnZSBhcyBkZWZpbmVkIGluIHRoZSB2bXMgcHJvdG9jb2wKKyAgICAgKiB3aGljaCBpcyBvcGFxdWUgdG8gdGhlIGZyYW1ld29yazsKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBWRUhJQ0xFX01BUF9TRVJWSUNFID0gKAorICAgICAgICAweDBDMDAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkNPTVBMRVgKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorfTsKKworLyoqIFRoZSBzdGF0dXMgb2YgYSBmdWVsIHN5c3RlbSBhcyBkZXNjcmliZWQgYnkgdGhlIE9CRDIgc3BlY2lmaWNhdGlvbi4gKi8KK2VudW0gRnVlbFN5c3RlbVN0YXR1cyA6IGludDMyX3QgeworICBPUEVOX0lOU1VGRklDSUVOVF9FTkdJTkVfVEVNUEVSQVRVUkUgPSAxLAorCisgIENMT1NFRF9MT09QID0gMiwKKworICBPUEVOX0VOR0lORV9MT0FEX09SX0RFQ0VMRVJBVElPTiA9IDQsCisKKyAgT1BFTl9TWVNURU1fRkFJTFVSRSA9IDgsCisKKyAgQ0xPU0VEX0xPT1BfQlVUX0ZFRURCQUNLX0ZBVUxUID0gMTYsCit9OworCisvKiogRGVmaW5lcyB3aGljaCBpZ25pdGlvbiBtb25pdG9ycyBhcmUgYXZhaWxhYmxlIHRvIGJlIHJlYWQuICovCitlbnVtIElnbml0aW9uTW9uaXRvcktpbmQgOiBpbnQzMl90IHsKKyAgU1BBUksgPSAwLAorCisgIENPTVBSRVNTSU9OID0gMSwKK307CisKKy8qKiBUaGVzZSBpZ25pdGlvbiBtb25pdG9ycyBhcmUgY29tbW9uIHRvIGJvdGggU1BBUksgYW5kIENPTVBSRVNTSU9OLiAqLworZW51bSBDb21tb25JZ25pdGlvbk1vbml0b3JzIDogaW50MzJfdCB7CisgIENPTVBPTkVOVFNfQVZBSUxBQkxFID0gMHgxIDw8IDAsCisgIENPTVBPTkVOVFNfSU5DT01QTEVURSA9IDB4MSA8PCAxLAorCisgIEZVRUxfU1lTVEVNX0FWQUlMQUJMRSA9IDB4MSA8PCAyLAorICBGVUVMX1NZU1RFTV9JTkNPTVBMRVRFID0gMHgxIDw8IDMsCisKKyAgTUlTRklSRV9BVkFJTEFCTEUgPSAweDEgPDwgNCwKKyAgTUlTRklSRV9JTkNPTVBMRVRFID0gMHgxIDw8IDUsCit9OworCisvKiogSWduaXRpb24gbW9uaXRvcnMgYXZhaWxhYmxlIGZvciBTUEFSSyB2ZWhpY2xlcy4gKi8KK2VudW0gU3BhcmtJZ25pdGlvbk1vbml0b3JzIDogQ29tbW9uSWduaXRpb25Nb25pdG9ycyB7CisgIEVHUl9BVkFJTEFCTEUgPSAweDEgPDwgNiwKKyAgRUdSX0lOQ09NUExFVEUgPSAweDEgPDwgNywKKworICBPWFlHRU5fU0VOU09SX0hFQVRFUl9BVkFJTEFCTEUgPSAweDEgPDwgOCwKKyAgT1hZR0VOX1NFTlNPUl9IRUFURVJfSU5DT01QTEVURSA9IDB4MSA8PCA5LAorCisgIE9YWUdFTl9TRU5TT1JfQVZBSUxBQkxFID0gMHgxIDw8IDEwLAorICBPWFlHRU5fU0VOU09SX0lOQ09NUExFVEUgPSAweDEgPDwgMTEsCisKKyAgQUNfUkVGUklHRVJBTlRfQVZBSUxBQkxFID0gMHgxIDw8IDEyLAorICBBQ19SRUZSSUdFUkFOVF9JTkNPTVBMRVRFID0gMHgxIDw8IDEzLAorCisgIFNFQ09OREFSWV9BSVJfU1lTVEVNX0FWQUlMQUJMRSA9IDB4MSA8PCAxNCwKKyAgU0VDT05EQVJZX0FJUl9TWVNURU1fSU5DT01QTEVURSA9IDB4MSA8PCAxNSwKKworICBFVkFQT1JBVElWRV9TWVNURU1fQVZBSUxBQkxFID0gMHgxIDw8IDE2LAorICBFVkFQT1JBVElWRV9TWVNURU1fSU5DT01QTEVURSA9IDB4MSA8PCAxNywKKworICBIRUFURURfQ0FUQUxZU1RfQVZBSUxBQkxFID0gMHgxIDw8IDE4LAorICBIRUFURURfQ0FUQUxZU1RfSU5DT01QTEVURSA9IDB4MSA8PCAxOSwKKworICBDQVRBTFlTVF9BVkFJTEFCTEUgPSAweDEgPDwgMjAsCisgIENBVEFMWVNUX0lOQ09NUExFVEUgPSAweDEgPDwgMjEsCit9OworCisvKiogSWduaXRpb24gbW9uaXRvcnMgb25seSBhdmFpbGFibGUgZm9yIENPTVBSRVNTSU9OIHZlaGljbGVzLiAqLworZW51bSBDb21wcmVzc2lvbklnbml0aW9uTW9uaXRvcnMgOiBDb21tb25JZ25pdGlvbk1vbml0b3JzIHsKKyAgRUdSX09SX1ZWVF9BVkFJTEFCTEUgPSAweDEgPDwgNiwKKyAgRUdSX09SX1ZWVF9JTkNPTVBMRVRFID0gMHgxIDw8IDcsCisKKyAgUE1fRklMVEVSX0FWQUlMQUJMRSA9IDB4MSA8PCA4LAorICBQTV9GSUxURVJfSU5DT01QTEVURSA9IDB4MSA8PCA5LAorCisgIEVYSEFVU1RfR0FTX1NFTlNPUl9BVkFJTEFCTEUgPSAweDEgPDwgMTAsCisgIEVYSEFVU1RfR0FTX1NFTlNPUl9JTkNPTVBMRVRFID0gMHgxIDw8IDExLAorCisgIEJPT1NUX1BSRVNTVVJFX0FWQUlMQUJMRSA9IDB4MSA8PCAxMiwKKyAgQk9PU1RfUFJFU1NVUkVfSU5DT01QTEVURSA9IDB4MSA8PCAxMywKKworICBOT3hfU0NSX19BVkFJTEFCTEUgPSAweDEgPDwgMTQsCisgIE5PeF9TQ1JfSU5DT01QTEVURSA9IDB4MSA8PCAxNSwKKworICBOTUhDX0NBVEFMWVNUX0FWQUlMQUJMRSA9IDB4MSA8PCAxNiwKKyAgTk1IQ19DQVRBTFlTVF9JTkNPTVBMRVRFID0gMHgxIDw8IDE3LAorfTsKKworZW51bSBTZWNvbmRhcnlBaXJTdGF0dXMgOiBpbnQzMl90IHsKKyAgVVBTVFJFQU0gPSAxLAorCisgIERPV05TVFJFQU1fT0ZfQ0FUQUxZQ0lDX0NPTlZFUlRFUiA9IDIsCisKKyAgRlJPTV9PVVRTSURFX09SX09GRiA9IDQsCisKKyAgUFVNUF9PTl9GT1JfRElBR05PU1RJQ1MgPSA4LAorfTsKKworZW51bSBGdWVsVHlwZSA6IGludDMyX3QgeworICBOT1RfQVZBSUxBQkxFID0gMCwKKworICBHQVNPTElORSA9IDEsCisKKyAgTUVUSEFOT0wgPSAyLAorCisgIEVUSEFOT0wgPSAzLAorCisgIERJRVNFTCA9IDQsCisKKyAgTFBHID0gNSwKKworICBDTkcgPSA2LAorCisgIFBST1BBTkUgPSA3LAorCisgIEVMRUNUUklDID0gOCwKKworICBCSUZVRUxfUlVOTklOR19HQVNPTElORSA9IDksCisKKyAgQklGVUVMX1JVTk5JTkdfTUVUSEFOT0wgPSAxMCwKKworICBCSUZVRUxfUlVOTklOR19FVEhBTk9MID0gMTEsCisKKyAgQklGVUVMX1JVTk5JTkdfTFBHID0gMTIsCisKKyAgQklGVUVMX1JVTk5JTkdfQ05HID0gMTMsCisKKyAgQklGVUVMX1JVTk5JTkdfUFJPUEFORSA9IDE0LAorCisgIEJJRlVFTF9SVU5OSU5HX0VMRUNUUklDID0gMTUsCisKKyAgQklGVUVMX1JVTk5JTkdfRUxFQ1RSSUNfQU5EX0NPTUJVU1RJT04gPSAxNiwKKworICBIWUJSSURfR0FTT0xJTkUgPSAxNywKKworICBIWUJSSURfRVRIQU5PTCA9IDE4LAorCisgIEhZQlJJRF9ESUVTRUwgPSAxOSwKKworICBIWUJSSURfRUxFQ1RSSUMgPSAyMCwKKworICBIWUJSSURfUlVOTklOR19FTEVDVFJJQ19BTkRfQ09NQlVTVElPTiA9IDIxLAorCisgIEhZQlJJRF9SRUdFTkVSQVRJVkUgPSAyMiwKKworICBCSUZVRUxfUlVOTklOR19ESUVTRUwgPSAyMywKK307CisKKy8qKgorICogVGhpcyBlbnVtIHByb3ZpZGVzIHRoZSBjYW5vbmljYWwgbWFwcGluZyBmb3Igc2Vuc29yIHByb3BlcnRpZXMgdGhhdCBoYXZlIGFuIGludGVnZXIgdmFsdWUuCisgKiBUaGUgb3JkZXJpbmcgb2YgdGhlIHZhbHVlcyBpcyB0YWtlbiBmcm9tIHRoZSBPQkQyIHNwZWNpZmljYXRpb24uCisgKiBTb21lIG9mIHRoZSBwcm9wZXJ0aWVzIGFyZSByZXByZXNlbnRlZCBhcyBhbiBpbnRlZ2VyIG1hcHBpbmcgdG8gYW5vdGhlciBlbnVtLiBJbiB0aG9zZSBjYXNlcworICogZXhwZWN0IGEgY29tbWVudCBieSB0aGUgcHJvcGVydHkgZGVmaW5pdGlvbiBkZXNjcmliaW5nIHRoZSBlbnVtIHRvIGxvb2sgYXQgZm9yIHRoZSBtYXBwaW5nLgorICogQW55IHZhbHVlIGdyZWF0ZXIgdGhhbiB0aGUgbGFzdCByZXNlcnZlZCBpbmRleCBpcyBhdmFpbGFibGUgdG8gdmVuZG9ycyB0byBtYXAgdGhlaXIgZXh0ZW5zaW9ucy4KKyAqLworZW51bSBPYmQySW50ZWdlclNlbnNvckluZGV4IDogaW50MzJfdCB7CisgIC8qKiByZWZlciB0byBGdWVsU3lzdGVtU3RhdHVzIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoaXMgdmFsdWUuICovCisgIEZVRUxfU1lTVEVNX1NUQVRVUyA9IDAsCisKKyAgTUFMRlVOQ1RJT05fSU5ESUNBVE9SX0xJR0hUX09OID0gMSwKKworICAvKiogcmVmZXIgdG8gSWduaXRpb25Nb25pdG9yS2luZCBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGlzIHZhbHVlLiAqLworICBJR05JVElPTl9NT05JVE9SU19TVVBQT1JURUQgPSAyLAorCisgIC8qKgorICAgKiBUaGUgdmFsdWUgb2YgdGhpcyBzZW5zb3IgaXMgYSBiaXRtYXNrIHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIgaWduaXRpb24tc3BlY2lmaWMKKyAgICogdGVzdHMgYXJlIGF2YWlsYWJsZSBhbmQgd2hldGhlciB0aGV5IGFyZSBjb21wbGV0ZS4gVGhlIHNlbWFudGljcyBvZiB0aGUgaW5kaXZpZHVhbAorICAgKiBiaXRzIGluIHRoaXMgdmFsdWUgYXJlIGdpdmVuIGJ5LCByZXNwZWN0aXZlbHksIFNwYXJrSWduaXRpb25Nb25pdG9ycyBhbmQKKyAgICogQ29tcHJlc3Npb25JZ25pdGlvbk1vbml0b3JzIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgSUdOSVRJT05fTU9OSVRPUlNfU1VQUE9SVEVELgorICAgKi8KKyAgSUdOSVRJT05fU1BFQ0lGSUNfTU9OSVRPUlMgPSAzLAorCisgIElOVEFLRV9BSVJfVEVNUEVSQVRVUkUgPSA0LAorCisgIC8qKiByZWZlciB0byBTZWNvbmRhcnlBaXJTdGF0dXMgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhpcyB2YWx1ZS4gKi8KKyAgQ09NTUFOREVEX1NFQ09OREFSWV9BSVJfU1RBVFVTID0gNSwKKworICBOVU1fT1hZR0VOX1NFTlNPUlNfUFJFU0VOVCA9IDYsCisKKyAgUlVOVElNRV9TSU5DRV9FTkdJTkVfU1RBUlQgPSA3LAorCisgIERJU1RBTkNFX1RSQVZFTEVEX1dJVEhfTUFMRlVOQ1RJT05fSU5ESUNBVE9SX0xJR0hUX09OID0gOCwKKworICBXQVJNVVBTX1NJTkNFX0NPREVTX0NMRUFSRUQgPSA5LAorCisgIERJU1RBTkNFX1RSQVZFTEVEX1NJTkNFX0NPREVTX0NMRUFSRUQgPSAxMCwKKworICBBQlNPTFVURV9CQVJPTUVUUklDX1BSRVNTVVJFID0gMTEsCisKKyAgQ09OVFJPTF9NT0RVTEVfVk9MVEFHRSA9IDEyLAorCisgIEFNQklFTlRfQUlSX1RFTVBFUkFUVVJFID0gMTMsCisKKyAgVElNRV9XSVRIX01BTEZVTkNUSU9OX0xJR0hUX09OID0gMTQsCisKKyAgVElNRV9TSU5DRV9UUk9VQkxFX0NPREVTX0NMRUFSRUQgPSAxNSwKKworICBNQVhfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAxNiwKKworICBNQVhfT1hZR0VOX1NFTlNPUl9WT0xUQUdFID0gMTcsCisKKyAgTUFYX09YWUdFTl9TRU5TT1JfQ1VSUkVOVCA9IDE4LAorCisgIE1BWF9JTlRBS0VfTUFOSUZPTERfQUJTT0xVVEVfUFJFU1NVUkUgPSAxOSwKKworICBNQVhfQUlSX0ZMT1dfUkFURV9GUk9NX01BU1NfQUlSX0ZMT1dfU0VOU09SID0gMjAsCisKKyAgLyoqIHJlZmVyIHRvIEZ1ZWxUeXBlIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoaXMgdmFsdWUuICovCisgIEZVRUxfVFlQRSA9IDIxLAorCisgIEZVRUxfUkFJTF9BQlNPTFVURV9QUkVTU1VSRSA9IDIyLAorCisgIEVOR0lORV9PSUxfVEVNUEVSQVRVUkUgPSAyMywKKworICBEUklWRVJfREVNQU5EX1BFUkNFTlRfVE9SUVVFID0gMjQsCisKKyAgRU5HSU5FX0FDVFVBTF9QRVJDRU5UX1RPUlFVRSA9IDI1LAorCisgIEVOR0lORV9SRUZFUkVOQ0VfUEVSQ0VOVF9UT1JRVUUgPSAyNiwKKworICBFTkdJTkVfUEVSQ0VOVF9UT1JRVUVfREFUQV9JRExFID0gMjcsCisKKyAgRU5HSU5FX1BFUkNFTlRfVE9SUVVFX0RBVEFfUE9JTlQxID0gMjgsCisKKyAgRU5HSU5FX1BFUkNFTlRfVE9SUVVFX0RBVEFfUE9JTlQyID0gMjksCisKKyAgRU5HSU5FX1BFUkNFTlRfVE9SUVVFX0RBVEFfUE9JTlQzID0gMzAsCisKKyAgRU5HSU5FX1BFUkNFTlRfVE9SUVVFX0RBVEFfUE9JTlQ0ID0gMzEsCisKKyAgTEFTVF9TWVNURU1fSU5ERVggPSBFTkdJTkVfUEVSQ0VOVF9UT1JRVUVfREFUQV9QT0lOVDQsCit9OworCisvKioKKyAqIFRoaXMgZW51bSBwcm92aWRlcyB0aGUgY2Fub25pY2FsIG1hcHBpbmcgZm9yIHNlbnNvciBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBhIGZsb2F0aW5nLXBvaW50IHZhbHVlLgorICogVGhlIG9yZGVyaW5nIG9mIHRoZSB2YWx1ZXMgaXMgdGFrZW4gZnJvbSB0aGUgT0JEMiBzcGVjaWZpY2F0aW9uLgorICogQW55IHZhbHVlIGdyZWF0ZXIgdGhhbiB0aGUgbGFzdCByZXNlcnZlZCBpbmRleCBpcyBhdmFpbGFibGUgdG8gdmVuZG9ycyB0byBtYXAgdGhlaXIgZXh0ZW5zaW9ucy4KKyAqLworZW51bSBPYmQyRmxvYXRTZW5zb3JJbmRleCA6IGludDMyX3QgeworICBDQUxDVUxBVEVEX0VOR0lORV9MT0FEID0gMCwKKworICBFTkdJTkVfQ09PTEFOVF9URU1QRVJBVFVSRSA9IDEsCisKKyAgU0hPUlRfVEVSTV9GVUVMX1RSSU1fQkFOSzEgPSAyLAorCisgIExPTkdfVEVSTV9GVUVMX1RSSU1fQkFOSzEgPSAzLAorCisgIFNIT1JUX1RFUk1fRlVFTF9UUklNX0JBTksyID0gNCwKKworICBMT05HX1RFUk1fRlVFTF9UUklNX0JBTksyID0gNSwKKworICBGVUVMX1BSRVNTVVJFID0gNiwKKworICBJTlRBS0VfTUFOSUZPTERfQUJTT0xVVEVfUFJFU1NVUkUgPSA3LAorCisgIEVOR0lORV9SUE0gPSA4LAorCisgIFZFSElDTEVfU1BFRUQgPSA5LAorCisgIFRJTUlOR19BRFZBTkNFID0gMTAsCisKKyAgTUFGX0FJUl9GTE9XX1JBVEUgPSAxMSwKKworICBUSFJPVFRMRV9QT1NJVElPTiA9IDEyLAorCisgIE9YWUdFTl9TRU5TT1IxX1ZPTFRBR0UgPSAxMywKKworICBPWFlHRU5fU0VOU09SMV9TSE9SVF9URVJNX0ZVRUxfVFJJTSA9IDE0LAorCisgIE9YWUdFTl9TRU5TT1IxX0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPID0gMTUsCisKKyAgT1hZR0VOX1NFTlNPUjJfVk9MVEFHRSA9IDE2LAorCisgIE9YWUdFTl9TRU5TT1IyX1NIT1JUX1RFUk1fRlVFTF9UUklNID0gMTcsCisKKyAgT1hZR0VOX1NFTlNPUjJfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAxOCwKKworICBPWFlHRU5fU0VOU09SM19WT0xUQUdFID0gMTksCisKKyAgT1hZR0VOX1NFTlNPUjNfU0hPUlRfVEVSTV9GVUVMX1RSSU0gPSAyMCwKKworICBPWFlHRU5fU0VOU09SM19GVUVMX0FJUl9FUVVJVkFMRU5DRV9SQVRJTyA9IDIxLAorCisgIE9YWUdFTl9TRU5TT1I0X1ZPTFRBR0UgPSAyMiwKKworICBPWFlHRU5fU0VOU09SNF9TSE9SVF9URVJNX0ZVRUxfVFJJTSA9IDIzLAorCisgIE9YWUdFTl9TRU5TT1I0X0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPID0gMjQsCisKKyAgT1hZR0VOX1NFTlNPUjVfVk9MVEFHRSA9IDI1LAorCisgIE9YWUdFTl9TRU5TT1I1X1NIT1JUX1RFUk1fRlVFTF9UUklNID0gMjYsCisKKyAgT1hZR0VOX1NFTlNPUjVfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAyNywKKworICBPWFlHRU5fU0VOU09SNl9WT0xUQUdFID0gMjgsCisKKyAgT1hZR0VOX1NFTlNPUjZfU0hPUlRfVEVSTV9GVUVMX1RSSU0gPSAyOSwKKworICBPWFlHRU5fU0VOU09SNl9GVUVMX0FJUl9FUVVJVkFMRU5DRV9SQVRJTyA9IDMwLAorCisgIE9YWUdFTl9TRU5TT1I3X1ZPTFRBR0UgPSAzMSwKKworICBPWFlHRU5fU0VOU09SN19TSE9SVF9URVJNX0ZVRUxfVFJJTSA9IDMyLAorCisgIE9YWUdFTl9TRU5TT1I3X0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPID0gMzMsCisKKyAgT1hZR0VOX1NFTlNPUjhfVk9MVEFHRSA9IDM0LAorCisgIE9YWUdFTl9TRU5TT1I4X1NIT1JUX1RFUk1fRlVFTF9UUklNID0gMzUsCisKKyAgT1hZR0VOX1NFTlNPUjhfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAzNiwKKworICBGVUVMX1JBSUxfUFJFU1NVUkUgPSAzNywKKworICBGVUVMX1JBSUxfR0FVR0VfUFJFU1NVUkUgPSAzOCwKKworICBDT01NQU5ERURfRVhIQVVTVF9HQVNfUkVDSVJDVUxBVElPTiA9IDM5LAorCisgIEVYSEFVU1RfR0FTX1JFQ0lSQ1VMQVRJT05fRVJST1IgPSA0MCwKKworICBDT01NQU5ERURfRVZBUE9SQVRJVkVfUFVSR0UgPSA0MSwKKworICBGVUVMX1RBTktfTEVWRUxfSU5QVVQgPSA0MiwKKworICBFVkFQT1JBVElPTl9TWVNURU1fVkFQT1JfUFJFU1NVUkUgPSA0MywKKworICBDQVRBTFlTVF9URU1QRVJBVFVSRV9CQU5LMV9TRU5TT1IxID0gNDQsCisKKyAgQ0FUQUxZU1RfVEVNUEVSQVRVUkVfQkFOSzJfU0VOU09SMSA9IDQ1LAorCisgIENBVEFMWVNUX1RFTVBFUkFUVVJFX0JBTksxX1NFTlNPUjIgPSA0NiwKKworICBDQVRBTFlTVF9URU1QRVJBVFVSRV9CQU5LMl9TRU5TT1IyID0gNDcsCisKKyAgQUJTT0xVVEVfTE9BRF9WQUxVRSA9IDQ4LAorCisgIEZVRUxfQUlSX0NPTU1BTkRFRF9FUVVJVkFMRU5DRV9SQVRJTyA9IDQ5LAorCisgIFJFTEFUSVZFX1RIUk9UVExFX1BPU0lUSU9OID0gNTAsCisKKyAgQUJTT0xVVEVfVEhST1RUTEVfUE9TSVRJT05fQiA9IDUxLAorCisgIEFCU09MVVRFX1RIUk9UVExFX1BPU0lUSU9OX0MgPSA1MiwKKworICBBQ0NFTEVSQVRPUl9QRURBTF9QT1NJVElPTl9EID0gNTMsCisKKyAgQUNDRUxFUkFUT1JfUEVEQUxfUE9TSVRJT05fRSA9IDU0LAorCisgIEFDQ0VMRVJBVE9SX1BFREFMX1BPU0lUSU9OX0YgPSA1NSwKKworICBDT01NQU5ERURfVEhST1RUTEVfQUNUVUFUT1IgPSA1NiwKKworICBFVEhBTk9MX0ZVRUxfUEVSQ0VOVEFHRSA9IDU3LAorCisgIEFCU09MVVRFX0VWQVBPUkFUSU9OX1NZU1RFTV9WQVBPUl9QUkVTU1VSRSA9IDU4LAorCisgIFNIT1JUX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LMSA9IDU5LAorCisgIFNIT1JUX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LMiA9IDYwLAorCisgIFNIT1JUX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LMyA9IDYxLAorCisgIFNIT1JUX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LNCA9IDYyLAorCisgIExPTkdfVEVSTV9TRUNPTkRBUllfT1hZR0VOX1NFTlNPUl9UUklNX0JBTksxID0gNjMsCisKKyAgTE9OR19URVJNX1NFQ09OREFSWV9PWFlHRU5fU0VOU09SX1RSSU1fQkFOSzIgPSA2NCwKKworICBMT05HX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LMyA9IDY1LAorCisgIExPTkdfVEVSTV9TRUNPTkRBUllfT1hZR0VOX1NFTlNPUl9UUklNX0JBTks0ID0gNjYsCisKKyAgUkVMQVRJVkVfQUNDRUxFUkFUT1JfUEVEQUxfUE9TSVRJT04gPSA2NywKKworICBIWUJSSURfQkFUVEVSWV9QQUNLX1JFTUFJTklOR19MSUZFID0gNjgsCisKKyAgRlVFTF9JTkpFQ1RJT05fVElNSU5HID0gNjksCisKKyAgRU5HSU5FX0ZVRUxfUkFURSA9IDcwLAorCisgIExBU1RfU1lTVEVNX0lOREVYID0gRU5HSU5FX0ZVRUxfUkFURSwKK307CisKKy8qKgorICogVGhpcyBlbnVtIGxpc3RzIHRoZSB0eXBlcyBvZiBzdXBwb3J0ZWQgVk1TIG1lc3NhZ2VzLgorICovCitlbnVtIFZtc01lc3NhZ2VUeXBlIDogaW50MzJfdCB7CisgIC8qKiBBIGNsaWVudCBzdWJzY3JpYmVzIHRvIGEgbGF5ZXIuICovCisgIFNVQlNDUklCRSA9IDEsCisKKyAgLyoqIEEgY2xpZW50IHVuc3Vic2NyaWJlcyBmcm9tIGEgbGF5ZXIuICovCisgIFVOU1VCU0NSSUJFID0gMiwKKworICAvKiogQSBjbGllbnQgcHVibGlzaGVzIGEgZGF0YSBwYWNrZXQuICovCisgIERBVEEgPSAzLAorfTsKKworLyoqCisgKiBUaGlzIGVudW0gcHJvdmlkZXMgdGhlIGNhbm9uaWNhbCBtYXBwaW5nIGZvciBWTVMgcHJvcGVydGllcyB0aGF0IGhhdmUgYW4KKyAqIGludGVnZXIgdmFsdWUuCisgKi8KK2VudW0gVm1zTWVzc2FnZUludGVnZXJWYWx1ZXNJbmRleCA6IGludDMyX3QgeworICAvKiogVGhlIG1lc3NhZ2UgdHlwZSBhcyBlbnVtZXJhdGVkIGJ5IFZtc01lc3NhZ2VUeXBlIGVudW0uICovCisgIFZNU19NRVNTQUdFX1RZUEUgPSAwLAorCisgIC8qKiBUaGUgbGF5ZXIgSUQgYXMgZGVmaW5lZCBpbiB0aGUgdm1zIHByb3RvY29sLiAqLworICBWTVNfTEFZRVJfSUQgPSAxLAorCisgIC8qKiBUaGUgdmVyc2lvbiBvZiB0aGUgVk1TIGxheWVyLiAqLworICBWTVNfTEFZRVJfVkVSU0lPTiA9IDIsCisKKyAgLyoqIFRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIHBheWxvYWQgKi8KKyAgVk1TX1BBWUxPQURfU0laRV9CWVRFUyA9IDMsCit9OwpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9BbmRyb2lkLmJwIGIvYmlvbWV0cmljcy9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4N2UzYWYKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICJmaW5nZXJwcmludC8yLjEiLAorICAgICJmaW5nZXJwcmludC8yLjEvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQW5kcm9pZC5icCBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE2ZmQ3OAotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3MCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsIiwKKyAgICAgICAgIklCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMSIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9CaW9tZXRyaWNzRmluZ2VycHJpbnRBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2tBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMV9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMSIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUh3QmlvbWV0cmljc0ZpbmdlcnByaW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9Cbkh3QmlvbWV0cmljc0ZpbmdlcnByaW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9CcEh3QmlvbWV0cmljc0ZpbmdlcnByaW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9Cc0Jpb21ldHJpY3NGaW5nZXJwcmludC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JSHdCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQm5Id0Jpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9CcEh3QmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0JzQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjFfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMV9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9BbmRyb2lkLm1rIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjMyMzcxCi0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQ2OCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50LVYyLjEtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRBY3F1aXJlZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50QWNxdWlyZWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEFjcXVpcmVkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEFjcXVpcmVkSW5mbykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50QWNxdWlyZWRJbmZvLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRBY3F1aXJlZEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50QXV0aGVudGljYXRlZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50QXV0aGVudGljYXRlZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50QXV0aGVudGljYXRlZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRFbnJvbGwpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEVucm9sbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50RW5yb2xsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEVycm9yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRFcnJvci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50RXJyb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50RmluZ2VySWQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEZpbmdlcklkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRGaW5nZXJJZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRJdGVyYXRvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50SXRlcmF0b3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEl0ZXJhdG9yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludE1zZ1R5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludE1zZ1R5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludE1zZ1R5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlcXVlc3RTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9SZXF1ZXN0U3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuUmVxdWVzdFN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludC1WMi4xLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50QWNxdWlyZWQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEFjcXVpcmVkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRBY3F1aXJlZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRBY3F1aXJlZEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEFjcXVpcmVkSW5mby5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50QWNxdWlyZWRJbmZvCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEF1dGhlbnRpY2F0ZWQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEF1dGhlbnRpY2F0ZWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEF1dGhlbnRpY2F0ZWQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50RW5yb2xsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRFbnJvbGwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEVucm9sbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRFcnJvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50RXJyb3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEVycm9yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEZpbmdlcklkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRGaW5nZXJJZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50RmluZ2VySWQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50SXRlcmF0b3IpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEl0ZXJhdG9yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRJdGVyYXRvcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRNc2dUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRNc2dUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRNc2dUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChSZXF1ZXN0U3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvUmVxdWVzdFN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLlJlcXVlc3RTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvSUJpb21ldHJpY3NGaW5nZXJwcmludC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbCBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0ZjMwMDUKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbApAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTsKKworaW1wb3J0IElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjazsKKworaW50ZXJmYWNlIElCaW9tZXRyaWNzRmluZ2VycHJpbnQgeworICAvKioKKyAgICogU2V0IG5vdGlmaWNhdGlvbiBjYWxsYmFjazoKKyAgICogUmVnaXN0ZXJzIGEgdXNlciBmdW5jdGlvbiB0aGF0IG11c3QgcmVjZWl2ZSBub3RpZmljYXRpb25zIGZyb20gdGhlIEhBTAorICAgKiBUaGlzIGNhbGwgbXVzdCBibG9jayBpZiB0aGUgSEFMIHN0YXRlIG1hY2hpbmUgaXMgaW4gYnVzeSBzdGF0ZSB1bnRpbCBIQUwKKyAgICogbGVhdmVzIHRoZSBidXN5IHN0YXRlLgorICAgKgorICAgKiBAcmV0dXJuIGRldmljZUlkIGlzIGEgdW5pcXVlIGhhbmRsZSBmb3IgdGhpcyBmaW5nZXJwcmludCBkZXZpY2UKKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsic2V0QWN0aXZlR3JvdXAifSkKKyAgQGVudHJ5CisgIHNldE5vdGlmeShJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2sgY2xpZW50Q2FsbGJhY2spCisgICAgICBnZW5lcmF0ZXMgKHVpbnQ2NF90IGRldmljZUlkKTsKKworICAvKioKKyAgICogRmluZ2VycHJpbnQgcHJlLWVucm9sbCBlbnJvbGwgcmVxdWVzdDoKKyAgICogR2VuZXJhdGVzIGEgdW5pcXVlIHRva2VuIHRvIHVwcGVyIGxheWVycyB0byBpbmRpY2F0ZSB0aGUgc3RhcnQgb2YKKyAgICogYW4gZW5yb2xsbWVudCB0cmFuc2FjdGlvbi4gcHJlLWVucm9sbCBhbmQgcG9zdC1lbnJvbGwgc3BlY2lmeQorICAgKiBhIHBpbi9wYXNzd29yZCBjbGVhcmVkIHRpbWUgd2luZG93IHdoZXJlIGVucm9sbG1lbnQgaXMgYWxsb3dlZC4KKyAgICogUHJlLWVucm9sbCBvbmx5IGdlbmVyYXRlcyBhIGNoYWxsZW5nZSwgYSBmdWxsIGhhcmR3YXJlQXV0aFRva2VuIGlzCisgICAqIGdlbmVyYXRlZCBieSB0cnVzdHpvbmUgYWZ0ZXIgdmVyaWZ5aW5nIGEgcGluL3Bhc3N3b3JkL3N3aXBlLiBUaGlzIGlzIHRvCisgICAqIGVuc3VyZSBhZGRpbmcgYSBuZXcgZmluZ2VycHJpbnQgdGVtcGxhdGUgd2FzIHByZWNlZGVkIGJ5IHNvbWUga2luZCBvZgorICAgKiBjcmVkZW50aWFsIGNvbmZpcm1hdGlvbiAoZS5nLiBkZXZpY2UgcGFzc3dvcmQpLgorICAgKgorICAgKiBAcmV0dXJuIDAgaWYgZnVuY3Rpb24gZmFpbGVkLCBhIHVpbnQ2NF90IG9mIGNoYWxsZW5nZSBvdGhlcndpc2UuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17ImVucm9sbCIsICJwb3N0RW5yb2xsIn0pCisgIHByZUVucm9sbCgpIGdlbmVyYXRlcyAodWludDY0X3QgYXV0aENoYWxsZW5nZSk7CisKKyAgLyoqCisgICAqIEZpbmdlcnByaW50IGVucm9sbCByZXF1ZXN0OgorICAgKiBTd2l0Y2hlcyB0aGUgSEFMIHN0YXRlIG1hY2hpbmUgdG8gY29sbGVjdCBhbmQgc3RvcmUgYSBuZXcgZmluZ2VycHJpbnQKKyAgICogdGVtcGxhdGUuIFN3aXRjaGVzIGJhY2sgYXMgc29vbiBhcyBlbnJvbGwgaXMgY29tcGxldGUsIHNpZ25hbGxlZCBieQorICAgKiAoZmluZ2VycHJpbnRNc2cudHlwZSA9PSBGSU5HRVJQUklOVF9URU1QTEFURV9FTlJPTExJTkcgJiYKKyAgICogIGZpbmdlcnByaW50TXNnLmRhdGEuZW5yb2xsLnNhbXBsZXNSZW1haW5pbmcgPT0gMCkKKyAgICogb3IgYWZ0ZXIgdGltZW91dFNlYyBzZWNvbmRzLgorICAgKiBUaGUgZmluZ2VycHJpbnQgdGVtcGxhdGUgbXVzdCBiZSBhc3NpZ25lZCB0byB0aGUgZ3JvdXAgZ2lkLgorICAgKgorICAgKiBAcGFyYW0gaGF0IGEgdmFsaWQgSGFyZHdhcmUgQXV0aGVudGljYXRpb24gVG9rZW4gKEhBVCksIGdlbmVyYXRlZAorICAgKiBhcyBhIHJlc3VsdCBvZiBhIHByZUVucm9sbCgpIGNhbGwuCisgICAqIEBwYXJhbSBnaWQgYSBmcmFtZXdvcmsgZGVmaW5lZCBmaW5nZXJwcmludCBzZXQgKGdyb3VwKSBpZC4KKyAgICogQHBhcmFtIHRpbWVvdXRTZWMgYSB0aW1lb3V0IGluIHNlY29uZHMuCisgICAqCisgICAqIEByZXR1cm4gZGVidWdFcnJubyBpcyBhIHZhbHVlIHRoZSBmcmFtZXdvcmsgbG9ncyBpbiBjYXNlIGl0IGlzIG5vdCAwLgorICAgKgorICAgKiBBIG5vdGlmeSgpIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgd2l0aCBhIG1vcmUgZGV0YWlsZWQgZXJyb3Igc3RydWN0dXJlLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJjYW5jZWwiLCAiZW5yb2xsIiwgInBvc3RFbnJvbGwiLCAicmVtb3ZlIn0pCisgIGVucm9sbCh1aW50OF90WzY5XSBoYXQsIHVpbnQzMl90IGdpZCwgdWludDMyX3QgdGltZW91dFNlYykKKyAgICAgIGdlbmVyYXRlcyAoUmVxdWVzdFN0YXR1cyBkZWJ1Z0Vycm5vKTsKKworICAvKioKKyAgICogRmluaXNoZXMgdGhlIGVucm9sbCBvcGVyYXRpb24gYW5kIGludmFsaWRhdGVzIHRoZSBwcmVFbnJvbGwoKSBnZW5lcmF0ZWQKKyAgICogY2hhbGxlbmdlLiBUaGlzIG11c3QgYmUgY2FsbGVkIGF0IHRoZSBlbmQgb2YgYSBtdWx0aS1maW5nZXIgZW5yb2xsbWVudAorICAgKiBzZXNzaW9uIHRvIGluZGljYXRlIHRoYXQgbm8gbW9yZSBmaW5nZXJzIG1heSBiZSBhZGRlZC4KKyAgICoKKyAgICogQHJldHVybiBkZWJ1Z0Vycm5vIGlzIGEgdmFsdWUgdGhlIGZyYW1ld29yayBsb2dzIGluIGNhc2UgaXQgaXMgbm90IDAuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17ImF1dGhlbnRpY2F0ZSIsICJzZXRBY3RpdmVHcm91cCIsICJlbnVtZXJhdGUiLCAicmVtb3ZlIn0pCisgIHBvc3RFbnJvbGwoKSBnZW5lcmF0ZXMgKFJlcXVlc3RTdGF0dXMgZGVidWdFcnJubyk7CisKKyAgLyoqCisgICAqIGdldEF1dGhlbnRpY2F0b3JJZDoKKyAgICogUmV0dXJucyBhIHRva2VuIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBmaW5nZXJwcmludCBzZXQuIFRoaXMgdmFsdWUKKyAgICogbXVzdCBjaGFuZ2Ugd2hlbmV2ZXIgYSBuZXcgZmluZ2VycHJpbnQgaXMgZW5yb2xsZWQsIHRodXMgY3JlYXRpbmcgYSBuZXcKKyAgICogZmluZ2VycHJpbnQgc2V0LgorICAgKgorICAgKiBAcmV0dXJuIGdldEF1dGhlbnRpY2F0b3JJZFJldCBjdXJyZW50IGF1dGhlbnRpY2F0b3IgaWQsIDAgaWYgZnVuY3Rpb24KKyAgICogZmFpbGVkLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJhdXRoZW50aWNhdGUifSkKKyAgZ2V0QXV0aGVudGljYXRvcklkKCkgZ2VuZXJhdGVzICh1aW50NjRfdCBBdXRoZW50aWNhdG9ySWQpOworCisgIC8qKgorICAgKiBDYW5jZWwgcGVuZGluZyBlbnJvbGwgb3IgYXV0aGVudGljYXRlLCBzZW5kaW5nIEZJTkdFUlBSSU5UX0VSUk9SX0NBTkNFTEVECisgICAqIHRvIGFsbCBydW5uaW5nIGNsaWVudHMuIFN3aXRjaGVzIHRoZSBIQUwgc3RhdGUgbWFjaGluZSBiYWNrIHRvIHRoZSBpZGxlCisgICAqIHN0YXRlLiBVbmxpa2UgZW5yb2xsRG9uZSgpIGRvZXNuJ3QgaW52YWxpZGF0ZSB0aGUgcHJlRW5yb2xsKCkgY2hhbGxlbmdlLgorICAgKgorICAgKiBAcmV0dXJuIGRlYnVnRXJybm8gaXMgYSB2YWx1ZSB0aGUgZnJhbWV3b3JrIGxvZ3MgaW4gY2FzZSBpdCBpcyBub3QgMC4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiYXV0aGVudGljYXRlIiwgImVucm9sbCIsICJlbnVtZXJhdGUiLCAicmVtb3ZlIiwKKyAgICAic2V0QWN0aXZlR3JvdXAifSkKKyAgY2FuY2VsKCkgZ2VuZXJhdGVzIChSZXF1ZXN0U3RhdHVzIGRlYnVnRXJybm8pOworCisgIC8qKgorICAgKiBFbnVtZXJhdGUgYWxsIHRoZSBmaW5nZXJwcmludCB0ZW1wbGF0ZXMgZm91bmQgaW4gdGhlIGRpcmVjdG9yeSBzZXQgYnkKKyAgICogc2V0QWN0aXZlR3JvdXAoKToKKyAgICogRm9yIGVhY2ggdGVtcGxhdGUgZm91bmQgYSBub3RpZnkoKSBtdXN0IGJlIGNhbGxlZCB3aXRoOgorICAgKiBmaW5nZXJwcmludE1zZy50eXBlID09IEZJTkdFUlBSSU5UX1RFTVBMQVRFX0VOVU1FUkFURUQKKyAgICogZmluZ2VycHJpbnRNc2cuZGF0YS5lbnVtZXJhdGVkLmZpbmdlciBpbmRpY2F0aW5nIGEgdGVtcGxhdGUgaWQKKyAgICogZmluZ2VycHJpbnRNc2cuZGF0YS5lbnVtZXJhdGVkLnJlbWFpbmluZ1RlbXBsYXRlcyBpbmRpY2F0aW5nIGhvdyBtYW55IG1vcmUKKyAgICogZW51bWVyYXRpb24gbWVzc2FnZXMgdG8gZXhwZWN0LgorICAgKgorICAgKiBAcmV0dXJuIGRlYnVnRXJybm8gaXMgYSB2YWx1ZSB0aGUgZnJhbWV3b3JrIGxvZ3MgaW4gY2FzZSBpdCBpcyBub3QgMC4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsicmVtb3ZlIiwgImVucm9sbCIsICJhdXRoZW50aWNhdGUiLCAic2V0QWN0aXZlR3JvdXAifSkKKyAgZW51bWVyYXRlKCkgZ2VuZXJhdGVzIChSZXF1ZXN0U3RhdHVzIGRlYnVnRXJybm8pOworCisgIC8qKgorICAgKiBGaW5nZXJwcmludCByZW1vdmUgcmVxdWVzdDoKKyAgICogRGVsZXRlcyBmaW5nZXJwcmludCB0ZW1wbGF0ZShzKS4KKyAgICogV29ya3Mgb25seSB3aXRoaW4gdGhlIHBhdGggc2V0IGJ5IHNldEFjdGl2ZUdyb3VwKCkuCisgICAqIEZvciBlYWNoIHRlbXBsYXRlIGZvdW5kIGEgbm90aWZ5KCkgbXVzdCBiZSBjYWxsZWQgd2l0aDoKKyAgICogZmluZ2VycHJpbnRNc2cudHlwZSA9PSBGSU5HRVJQUklOVF9URU1QTEFURV9SRU1PVkVECisgICAqIGZpbmdlcnByaW50TXNnLmRhdGEucmVtb3ZlZC5maW5nZXIgaW5kaWNhdGluZyB0aGUgdGVtcGxhdGUgaWQgZGVsZXRlZAorICAgKiBmaW5nZXJwcmludE1zZy5kYXRhLnJlbW92ZWQucmVtYWluaW5nVGVtcGxhdGVzIGluZGljYXRpbmcgaG93IG1hbnkgbW9yZQorICAgKiB0ZW1wbGF0ZXMgbXVzdCBiZSBkZWxldGVkIGJ5IHRoaXMgb3BlcmF0aW9uLgorICAgKgorICAgKiBAcGFyYW0gZ2lkIGdyb3VwIGlkIG11c3QgbWF0Y2ggdGhlIGxhc3QgZ3JvdXAgc2V0IGJ5IHNldEFjdGl2ZUdyb3VwKCkuCisgICAqIEBwYXJhbSBmaWQgdGVtcGxhdGUgaWQgdG8gZGVsZXRlIG9yIDAgdG8gZGVsZXRlIGFsbCB0ZW1wbGF0ZXMgd2l0aGluIHRoZQorICAgKiBjdXJyZW50IGdyb3VwLgorICAgKgorICAgKiBAcmV0dXJuIGRlYnVnRXJybm8gaXMgYSB2YWx1ZSB0aGUgZnJhbWV3b3JrIGxvZ3MgaW4gY2FzZSBpdCBpcyBub3QgMC4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiZW51bWVyYXRlIiwgImF1dGhlbnRpY2F0ZSIsICJjYW5jZWwiLCAiZ2V0QXV0aGVudGljYXRvcklkIiwKKyAgICAic2V0QWN0aXZlR3JvdXAifSkKKyAgcmVtb3ZlKHVpbnQzMl90IGdpZCwgdWludDMyX3QgZmlkKSBnZW5lcmF0ZXMgKFJlcXVlc3RTdGF0dXMgZGVidWdFcnJubyk7CisKKyAgLyoqCisgICAqIFJlc3RyaWN0cyB0aGUgSEFMIG9wZXJhdGlvbiB0byBhIHNldCBvZiBmaW5nZXJwcmludHMgYmVsb25naW5nIHRvIGEgZ3JvdXAKKyAgICogcHJvdmlkZWQuIFRoZSBjYWxsZXIgbXVzdCBwcm92aWRlIGEgcGF0aCB0byBhIHN0b3JhZ2UgbG9jYXRpb24gd2l0aGluIHRoZQorICAgKiB1c2VyJ3MgZGF0YSBkaXJlY3RvcnkuCisgICAqCisgICAqIEBwYXJhbSBnaWQgdGhlIGZpbmdlcnByaW50IGdyb3VwIChzZXQpIGlkLgorICAgKiBAcGFyYW0gc3RvcmVQYXRoIGZpbGVzeXN0ZW0gcGF0aCB0byB0aGUgdGVtcGxhdGUgc3RvcmFnZSBkaXJlY3RvcnkuCisgICAqCisgICAqIEByZXR1cm4gZGVidWdFcnJubyBpcyBhIHZhbHVlIHRoZSBmcmFtZXdvcmsgbG9ncyBpbiBjYXNlIGl0IGlzIG5vdCAwLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJhdXRoZW50aWNhdGUiLCAicHJlRW5yb2xsIiwgImVudW1lcmF0ZSIsICJyZW1vdmUifSkKKyAgc2V0QWN0aXZlR3JvdXAodWludDMyX3QgZ2lkLCBzdHJpbmcgc3RvcmVQYXRoKQorICAgICAgZ2VuZXJhdGVzIChSZXF1ZXN0U3RhdHVzIGRlYnVnRXJybm8pOworCisgIC8qKgorICAgKiBBdXRoZW50aWNhdGVzIGFuIG9wZXJhdGlvbiBpZGVudGlmaWVkIGJ5IG9wZXJhdGlvbklkCisgICAqCisgICAqIEBwYXJhbSBvcGVyYXRpb25JZCBvcGVyYXRpb24gaWQuCisgICAqIEBwYXJhbSBnaWQgZmluZ2VycHJpbnQgZ3JvdXAgaWQuCisgICAqCisgICAqIEByZXR1cm4gZGVidWdFcnJubyBpcyBhIHZhbHVlIHRoZSBmcmFtZXdvcmsgbG9ncyBpbiBjYXNlIGl0IGlzIG5vdCAwLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJjYW5jZWwiLCAicHJlRW5yb2xsIiwgInJlbW92ZSJ9KQorICBhdXRoZW50aWNhdGUodWludDY0X3Qgb3BlcmF0aW9uSWQsIHVpbnQzMl90IGdpZCkKKyAgICAgIGdlbmVyYXRlcyAoUmVxdWVzdFN0YXR1cyBkZWJ1Z0Vycm5vKTsKK307CmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTEzY2YxCi0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOworCisvKiBUaGlzIEhBTCBpbnRlcmZhY2UgY29tbXVuaWNhdGVzIGFzeW5jaHJvbm91cyByZXN1bHRzIGZyb20gdGhlCisgICBmaW5nZXJwcmludCBkcml2ZXIgaW4gcmVzcG9uc2UgdG8gdXNlciBhY3Rpb25zIG9uIHRoZSBmaW5nZXJwcmludCBzZW5zb3IKKyovCitpbnRlcmZhY2UgSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrIHsKKyAgICAvKioKKyAgICAgKiBTZW50IHdoZW4gb25lIGVucm9sbG1lbnQgc3RlcCBpcyBjb21wbGV0ZS4KKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgdGhlIGluc3RhbmNlIG9mIHRoaXMgZmluZ2VycHJpbnQgZGV2aWNlCisgICAgICogQHBhcmFtIGZpbmdlcklkIHRoZSBmaW5nZXJwcmludCB0ZW1wbGV0YXRlIGJlaW5nIGVucm9sbGVkCisgICAgICogQHBhcmFtIGdyb3VwSWQgdGhlIGdyb3VwaWQgZm9yIHRoZSB0ZW1wbGF0ZSBiZWluZyBlbnJvbGxlZAorICAgICAqIEBwYXJhbSByZW1haW5pbmcgdGhlIG51bWJlciBvZiByZW1haW5pbmcgc3RlcHMgYmVmb3JlIGVucm9sbGxtZW50IGlzIGNvbXBsZXRlCisgICAgICovCisgICAgb25ld2F5IG9uRW5yb2xsUmVzdWx0KHVpbnQ2NF90IGRldmljZUlkLCB1aW50MzJfdCBmaW5nZXJJZCwgdWludDMyX3QgZ3JvdXBJZCwgdWludDMyX3QgcmVtYWluaW5nKTsKKworICAgIC8qKgorICAgICAqIFNlbnQgd2hlbiBhIGZpbmdlcnByaW50IGltYWdlIGlzIGFjcXVpcmVkIGJ5IHRoZSBzZW5zb3IKKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgdGhlIGluc3RhbmNlIG9mIHRoaXMgZmluZ2VycHJpbnQgZGV2aWNlCisgICAgICogQHBhcmFtIGFjcXVpcmVkSW5mbyBhIG1lc3NhZ2UgYWJvdXQgdGhlIHF1YWxpdHkgb2YgdGhlIGFjcXVpcmVkIGltYWdlCisgICAgICogQHBhcmFtIHZlbmRvckNvZGUgYSB2ZW5kb3Itc3BlY2lmaWMgbWVzc2FnZSBhYm91dCB0aGUgcXVhbGl0eSBvZiB0aGUgaW1hZ2UuIE9ubHkKKyAgICAgKiAgICAgICAgdmFsaWQgd2hlbiBhY3F1aXJlZEluZm8gPT0gQUNRVUlSRURfVkVORE9SCisgICAgICovCisgICAgb25ld2F5IG9uQWNxdWlyZWQodWludDY0X3QgZGV2aWNlSWQsIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvIGFjcXVpcmVkSW5mbywgaW50MzJfdCB2ZW5kb3JDb2RlKTsKKworICAgIC8qKgorICAgICAqIFNlbnQgd2hlbiBhIGZpbmdlcnByaW50IGlzIGF1dGhlbnRpY2F0ZWQKKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgdGhlIGluc3RhbmNlIG9mIHRoaXMgZmluZ2VycHJpbnQgZGV2aWNlCisgICAgICogQHBhcmFtIGZpbmdlcklkIHRoZSBmaW5nZXJwcmludCB0ZW1wbGV0YXRlIHRoYXQgd2FzIGF1dGhlbnRpY2F0ZWQKKyAgICAgKiBAcGFyYW0gZ3JvdXBJZCB0aGUgZ3JvdXBpZCBmb3IgdGhlIHRlbXBsYXRlIHRoYXQgd2FzIGF1dGhlbnRpY2F0ZWQKKyAgICAgKiBAcGFyYW0gdG9rZW4gdGhlIGhhcmR3YXJlIGF1dGhlbnRpY2F0aW9uIHRva2VuIHRvIHBhc3MgdG8gS2V5c3RvcmUuYWRkQXV0aFRva2VuKCkKKyAgICAgKi8KKyAgICBvbmV3YXkgb25BdXRoZW50aWNhdGVkKHVpbnQ2NF90IGRldmljZUlkLCB1aW50MzJfdCBmaW5nZXJJZCwgdWludDMyX3QgZ3JvdXBJZCwgdmVjPHVpbnQ4X3Q+IHRva2VuKTsKKworICAgIC8qKgorICAgICAqIFNlbnQgd2hlbiBhIGZpbmdlcnByaW50IGVycm9yIG9jY3VycworICAgICAqIEBwYXJhbSBkZXZpY2VJZCB0aGUgaW5zdGFuY2Ugb2YgdGhpcyBmaW5nZXJwcmludCBkZXZpY2UKKyAgICAgKiBAcGFyYW0gZXJyb3IgYSBtZXNzYWdlIGFib3V0IHRoZSBlcnJvciB0aGF0IG9jY3VycmVkCisgICAgICogQHBhcmFtIHZlbmRvckNvZGUgYSB2ZW5kb3Itc3BlaWNpZmMgZXJyb3IgbWVzc2FnZS4gT25seSB2YWxpZAorICAgICAqICAgICAgICB3aGVuIGVycm9yID09IEVSUk9SX1ZFTkRPUgorICAgICAqLworICAgIG9uZXdheSBvbkVycm9yKHVpbnQ2NF90IGRldmljZUlkLCBGaW5nZXJwcmludEVycm9yIGVycm9yLCBpbnQzMl90IHZlbmRvckNvZGUpOworCisgICAgLyoqCisgICAgICogU2VudCB3aGVuIG9uZSB0ZW1wbGF0ZSBpcyByZW1vdmVkCisgICAgICogQHBhcmFtIGRldmljZUlkIHRoZSBpbnN0YW5jZSBvZiB0aGlzIGZpbmdlcnByaW50IGRldmljZQorICAgICAqIEBwYXJhbSBmaW5nZXJJZCB0aGUgZmluZ2VycHJpbnQgdGVtcGxldGF0ZSBiZWluZyByZW1vdmVkCisgICAgICogQHBhcmFtIGdyb3VwSWQgdGhlIGdyb3VwaWQgZm9yIHRoZSB0ZW1wbGF0ZSBiZWluZyByZW1vdmVkCisgICAgICogQHBhcmFtIHJlbWFpbmluZyB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZyB0ZW1wbGF0ZXMgdGhhdCB3aWxsIGJlIHJlbW92ZWQuCisgICAgICovCisgICAgb25ld2F5IG9uUmVtb3ZlZCh1aW50NjRfdCBkZXZpY2VJZCwgdWludDMyX3QgZmluZ2VySWQsIHVpbnQzMl90IGdyb3VwSWQsIHVpbnQzMl90IHJlbWFpbmluZyk7CisKKyAgICAvKioKKyAgICAgKiBTZW50IHdoZW4gb25lIGZpbmdlcnByaW50IHRlbXBsYXRlIGlzIGVudW1lcmF0ZWQKKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgdGhlIGluc3RhbmNlIG9mIHRoaXMgZmluZ2VycHJpbnQgZGV2aWNlCisgICAgICogQHBhcmFtIGZpbmdlcklkIHRoZSBmaW5nZXJwcmludCBmb3IgdGhpcyB0ZW1wbGV0YXRlCisgICAgICogQHBhcmFtIGdyb3VwSWQgdGhlIGdyb3VwaWQgZm9yIHRoaXMgdGVtcGxhdGUKKyAgICAgKiBAcGFyYW0gcmVtYWluaW5nIHRoZSBudW1iZXIgb2YgcmVtYWluaW5nIHN0ZXBzIGJlZm9yZSBlbnVtZXJhdGlvbiBpcyBjb21wbGV0ZQorICAgICAqLworICAgIG9uZXdheSBvbkVudW1lcmF0ZSh1aW50NjRfdCBkZXZpY2VJZCwgdWludDMyX3QgZmluZ2VySWQsIHVpbnQzMl90IGdyb3VwSWQsIHVpbnQzMl90IHJlbWFpbmluZyk7Cit9OwpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9BbmRyb2lkLm1rIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwMmRiOTQKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwyMSBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMS1zZXJ2aWNlLnJjCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgQmlvbWV0cmljc0ZpbmdlcnByaW50LmNwcCBcCisgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmxvZyBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBsaWJ1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMSBcCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9CaW9tZXRyaWNzRmluZ2VycHJpbnQuY3BwIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9CaW9tZXRyaWNzRmluZ2VycHJpbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2Nzc0Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L0Jpb21ldHJpY3NGaW5nZXJwcmludC5jcHAKQEAgLTAsMCArMSwzNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UiCisjZGVmaW5lIExPR19WRVJCT1NFICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxoYXJkd2FyZS9od19hdXRoX3Rva2VuLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2ZpbmdlcnByaW50Lmg+CisjaW5jbHVkZSAiQmlvbWV0cmljc0ZpbmdlcnByaW50LmgiCisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJpb21ldHJpY3MgeworbmFtZXNwYWNlIGZpbmdlcnByaW50IHsKK25hbWVzcGFjZSBWMl8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8vIFN1cHBvcnRlZCBmaW5nZXJwcmludCBIQUwgdmVyc2lvbgorc3RhdGljIGNvbnN0IHVpbnQxNl90IGtWZXJzaW9uID0gSEFSRFdBUkVfTU9EVUxFX0FQSV9WRVJTSU9OKDIsIDEpOworCit1c2luZyBSZXF1ZXN0U3RhdHVzID0KKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpSZXF1ZXN0U3RhdHVzOworCitCaW9tZXRyaWNzRmluZ2VycHJpbnQgKkJpb21ldHJpY3NGaW5nZXJwcmludDo6c0luc3RhbmNlID0gbnVsbHB0cjsKKworQmlvbWV0cmljc0ZpbmdlcnByaW50OjpCaW9tZXRyaWNzRmluZ2VycHJpbnQoKSA6IG1DbGllbnRDYWxsYmFjayhudWxscHRyKSwgbURldmljZShudWxscHRyKSB7CisgICAgc0luc3RhbmNlID0gdGhpczsgLy8ga2VlcCB0cmFjayBvZiB0aGUgbW9zdCByZWNlbnQgaW5zdGFuY2UKKyAgICBtRGV2aWNlID0gb3BlbkhhbCgpOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiQ2FuJ3Qgb3BlbiBIQUwgbW9kdWxlIik7CisgICAgfQorfQorCitCaW9tZXRyaWNzRmluZ2VycHJpbnQ6On5CaW9tZXRyaWNzRmluZ2VycHJpbnQoKSB7CisgICAgQUxPR1YoIn5CaW9tZXRyaWNzRmluZ2VycHJpbnQoKSIpOworICAgIGlmIChtRGV2aWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIk5vIHZhbGlkIGRldmljZSIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGludCBlcnI7CisgICAgaWYgKDAgIT0gKGVyciA9IG1EZXZpY2UtPmNvbW1vbi5jbG9zZSgKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfZGV2aWNlX3QqPihtRGV2aWNlKSkpKSB7CisgICAgICAgIEFMT0dFKCJDYW4ndCBjbG9zZSBmaW5nZXJwcmludCBtb2R1bGUsIGVycm9yOiAlZCIsIGVycik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbURldmljZSA9IG51bGxwdHI7Cit9CisKK1JldHVybjxSZXF1ZXN0U3RhdHVzPiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OkVycm9yRmlsdGVyKGludDMyX3QgZXJyb3IpIHsKKyAgICBzd2l0Y2goZXJyb3IpIHsKKyAgICAgICAgY2FzZSAwOiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX09LOworICAgICAgICBjYXNlIC0yOiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VOT0VOVDsKKyAgICAgICAgY2FzZSAtNDogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FSU5UUjsKKyAgICAgICAgY2FzZSAtNTogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FSU87CisgICAgICAgIGNhc2UgLTExOiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VBR0FJTjsKKyAgICAgICAgY2FzZSAtMTI6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRU5PTUVNOworICAgICAgICBjYXNlIC0xMzogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FQUNDRVM7CisgICAgICAgIGNhc2UgLTE0OiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VGQVVMVDsKKyAgICAgICAgY2FzZSAtMTY6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRUJVU1k7CisgICAgICAgIGNhc2UgLTIyOiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VJTlZBTDsKKyAgICAgICAgY2FzZSAtMjg6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRU5PU1BDOworICAgICAgICBjYXNlIC0xMTA6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRVRJTUVET1VUOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoIkFuIHVua25vd24gZXJyb3IgcmV0dXJuZWQgZnJvbSBmaW5nZXJwcmludCB2ZW5kb3IgbGlicmFyeTogJWQiLCBlcnJvcik7CisgICAgICAgICAgICByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX1VOS05PV047CisgICAgfQorfQorCisvLyBUcmFuc2xhdGUgZnJvbSBlcnJvcnMgcmV0dXJuZWQgYnkgdHJhZGl0aW9uYWwgSEFMIChzZWUgZmluZ2VycHJpbnQuaCkgdG8KKy8vIEhJREwtY29tcGxpYW50IEZpbmdlcnByaW50RXJyb3IuCitGaW5nZXJwcmludEVycm9yIEJpb21ldHJpY3NGaW5nZXJwcmludDo6VmVuZG9yRXJyb3JGaWx0ZXIoaW50MzJfdCBlcnJvciwKKyAgICAgICAgICAgIGludDMyX3QqIHZlbmRvckNvZGUpIHsKKyAgICAqdmVuZG9yQ29kZSA9IDA7CisgICAgc3dpdGNoKGVycm9yKSB7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfRVJST1JfSFdfVU5BVkFJTEFCTEU6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfSFdfVU5BVkFJTEFCTEU7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfRVJST1JfVU5BQkxFX1RPX1BST0NFU1M6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfVU5BQkxFX1RPX1BST0NFU1M7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfRVJST1JfVElNRU9VVDoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9USU1FT1VUOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0VSUk9SX05PX1NQQUNFOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX05PX1NQQUNFOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0VSUk9SX0NBTkNFTEVEOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVEOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0VSUk9SX1VOQUJMRV9UT19SRU1PVkU6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfVU5BQkxFX1RPX1JFTU9WRTsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9FUlJPUl9MT0NLT1VUOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0xPQ0tPVVQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoZXJyb3IgPj0gRklOR0VSUFJJTlRfRVJST1JfVkVORE9SX0JBU0UpIHsKKyAgICAgICAgICAgICAgICAvLyB2ZW5kb3Igc3BlY2lmaWMgY29kZS4KKyAgICAgICAgICAgICAgICAqdmVuZG9yQ29kZSA9IGVycm9yIC0gRklOR0VSUFJJTlRfRVJST1JfVkVORE9SX0JBU0U7CisgICAgICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX1ZFTkRPUjsKKyAgICAgICAgICAgIH0KKyAgICB9CisgICAgQUxPR0UoIlVua25vd24gZXJyb3IgZnJvbSBmaW5nZXJwcmludCB2ZW5kb3IgbGlicmFyeTogJWQiLCBlcnJvcik7CisgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX1VOQUJMRV9UT19QUk9DRVNTOworfQorCisvLyBUcmFuc2xhdGUgYWNxdWlyZWQgbWVzc2FnZXMgcmV0dXJuZWQgYnkgdHJhZGl0aW9uYWwgSEFMIChzZWUgZmluZ2VycHJpbnQuaCkKKy8vIHRvIEhJREwtY29tcGxpYW50IEZpbmdlcnByaW50QWNxdWlyZWRJbmZvLgorRmluZ2VycHJpbnRBY3F1aXJlZEluZm8gQmlvbWV0cmljc0ZpbmdlcnByaW50OjpWZW5kb3JBY3F1aXJlZEZpbHRlcigKKyAgICAgICAgaW50MzJfdCBpbmZvLCBpbnQzMl90KiB2ZW5kb3JDb2RlKSB7CisgICAgKnZlbmRvckNvZGUgPSAwOworICAgIHN3aXRjaChpbmZvKSB7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfQUNRVUlSRURfR09PRDoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfR09PRDsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9BQ1FVSVJFRF9QQVJUSUFMOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvOjpBQ1FVSVJFRF9QQVJUSUFMOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0FDUVVJUkVEX0lOU1VGRklDSUVOVDoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfSU5TVUZGSUNJRU5UOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0FDUVVJUkVEX0lNQUdFUl9ESVJUWToKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfSU1BR0VSX0RJUlRZOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0FDUVVJUkVEX1RPT19TTE9XOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvOjpBQ1FVSVJFRF9UT09fU0xPVzsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9BQ1FVSVJFRF9UT09fRkFTVDoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfVE9PX0ZBU1Q7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoaW5mbyA+PSBGSU5HRVJQUklOVF9BQ1FVSVJFRF9WRU5ET1JfQkFTRSkgeworICAgICAgICAgICAgICAgIC8vIHZlbmRvciBzcGVjaWZpYyBjb2RlLgorICAgICAgICAgICAgICAgICp2ZW5kb3JDb2RlID0gaW5mbyAtIEZJTkdFUlBSSU5UX0FDUVVJUkVEX1ZFTkRPUl9CQVNFOworICAgICAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfVkVORE9SOworICAgICAgICAgICAgfQorICAgIH0KKyAgICBBTE9HRSgiVW5rbm93biBhY3F1aXJlZG1zZyBmcm9tIGZpbmdlcnByaW50IHZlbmRvciBsaWJyYXJ5OiAlZCIsIGluZm8pOworICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfSU5TVUZGSUNJRU5UOworfQorCitSZXR1cm48dWludDY0X3Q+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6c2V0Tm90aWZ5KAorICAgICAgICBjb25zdCBzcDxJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2s+JiBjbGllbnRDYWxsYmFjaykgeworICAgIG1DbGllbnRDYWxsYmFjayA9IGNsaWVudENhbGxiYWNrOworICAgIC8vIFRoaXMgaXMgaGVyZSBiZWNhdXNlIEhBTCAyLjEgZG9lc24ndCBoYXZlIGEgd2F5IHRvIHByb3BhZ2F0ZSBhCisgICAgLy8gdW5pcXVlIHRva2VuIGZvciBpdHMgZHJpdmVyLiBTdWJzZXF1ZW50IHZlcnNpb25zIHNob3VsZCBzZW5kIGEgdW5pcXVlCisgICAgLy8gdG9rZW4gZm9yIGVhY2ggY2FsbCB0byBzZXROb3RpZnkoKS4gVGhpcyBpcyBmaW5lIGFzIGxvbmcgYXMgdGhlcmUncyBvbmx5CisgICAgLy8gb25lIGZpbmdlcnByaW50IGRldmljZSBvbiB0aGUgcGxhdGZvcm0uCisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG1EZXZpY2UpOworfQorCitSZXR1cm48dWludDY0X3Q+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6cHJlRW5yb2xsKCkgIHsKKyAgICByZXR1cm4gbURldmljZS0+cHJlX2Vucm9sbChtRGV2aWNlKTsKK30KKworUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6ZW5yb2xsKGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgNjk+JiBoYXQsCisgICAgICAgIHVpbnQzMl90IGdpZCwgdWludDMyX3QgdGltZW91dFNlYykgeworICAgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCogYXV0aFRva2VuID0KKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBod19hdXRoX3Rva2VuX3QqPihoYXQuZGF0YSgpKTsKKyAgICByZXR1cm4gRXJyb3JGaWx0ZXIobURldmljZS0+ZW5yb2xsKG1EZXZpY2UsIGF1dGhUb2tlbiwgZ2lkLCB0aW1lb3V0U2VjKSk7Cit9CisKK1JldHVybjxSZXF1ZXN0U3RhdHVzPiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OnBvc3RFbnJvbGwoKSB7CisgICAgcmV0dXJuIEVycm9yRmlsdGVyKG1EZXZpY2UtPnBvc3RfZW5yb2xsKG1EZXZpY2UpKTsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OmdldEF1dGhlbnRpY2F0b3JJZCgpIHsKKyAgICByZXR1cm4gbURldmljZS0+Z2V0X2F1dGhlbnRpY2F0b3JfaWQobURldmljZSk7Cit9CisKK1JldHVybjxSZXF1ZXN0U3RhdHVzPiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OmNhbmNlbCgpIHsKKyAgICByZXR1cm4gRXJyb3JGaWx0ZXIobURldmljZS0+Y2FuY2VsKG1EZXZpY2UpKTsKK30KKworUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6ZW51bWVyYXRlKCkgIHsKKyAgICByZXR1cm4gRXJyb3JGaWx0ZXIobURldmljZS0+ZW51bWVyYXRlKG1EZXZpY2UpKTsKK30KKworUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6cmVtb3ZlKHVpbnQzMl90IGdpZCwgdWludDMyX3QgZmlkKSB7CisgICAgcmV0dXJuIEVycm9yRmlsdGVyKG1EZXZpY2UtPnJlbW92ZShtRGV2aWNlLCBnaWQsIGZpZCkpOworfQorCitSZXR1cm48UmVxdWVzdFN0YXR1cz4gQmlvbWV0cmljc0ZpbmdlcnByaW50OjpzZXRBY3RpdmVHcm91cCh1aW50MzJfdCBnaWQsCisgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBzdG9yZVBhdGgpIHsKKyAgICBpZiAoc3RvcmVQYXRoLnNpemUoKSA+PSBQQVRIX01BWCB8fCBzdG9yZVBhdGguc2l6ZSgpIDw9IDApIHsKKyAgICAgICAgQUxPR0UoIkJhZCBwYXRoIGxlbmd0aDogJXpkIiwgc3RvcmVQYXRoLnNpemUoKSk7CisgICAgICAgIHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRUlOVkFMOworICAgIH0KKyAgICBpZiAoYWNjZXNzKHN0b3JlUGF0aC5jX3N0cigpLCBXX09LKSkgeworICAgICAgICByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VJTlZBTDsKKyAgICB9CisKKyAgICByZXR1cm4gRXJyb3JGaWx0ZXIobURldmljZS0+c2V0X2FjdGl2ZV9ncm91cChtRGV2aWNlLCBnaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVQYXRoLmNfc3RyKCkpKTsKK30KKworUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6YXV0aGVudGljYXRlKHVpbnQ2NF90IG9wZXJhdGlvbklkLAorICAgICAgICB1aW50MzJfdCBnaWQpIHsKKyAgICByZXR1cm4gRXJyb3JGaWx0ZXIobURldmljZS0+YXV0aGVudGljYXRlKG1EZXZpY2UsIG9wZXJhdGlvbklkLCBnaWQpKTsKK30KKworSUJpb21ldHJpY3NGaW5nZXJwcmludCogQmlvbWV0cmljc0ZpbmdlcnByaW50OjpnZXRJbnN0YW5jZSgpIHsKKyAgICBpZiAoIXNJbnN0YW5jZSkgeworICAgICAgc0luc3RhbmNlID0gbmV3IEJpb21ldHJpY3NGaW5nZXJwcmludCgpOworICAgIH0KKyAgICByZXR1cm4gc0luc3RhbmNlOworfQorCitmaW5nZXJwcmludF9kZXZpY2VfdCogQmlvbWV0cmljc0ZpbmdlcnByaW50OjpvcGVuSGFsKCkgeworICAgIGludCBlcnI7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKmh3X21kbCA9IG51bGxwdHI7CisgICAgQUxPR0QoIk9wZW5pbmcgZmluZ2VycHJpbnQgaGFsIGxpYnJhcnkuLi4iKTsKKyAgICBpZiAoMCAhPSAoZXJyID0gaHdfZ2V0X21vZHVsZShGSU5HRVJQUklOVF9IQVJEV0FSRV9NT0RVTEVfSUQsICZod19tZGwpKSkgeworICAgICAgICBBTE9HRSgiQ2FuJ3Qgb3BlbiBmaW5nZXJwcmludCBIVyBNb2R1bGUsIGVycm9yOiAlZCIsIGVycik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChod19tZGwgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiTm8gdmFsaWQgZmluZ2VycHJpbnQgbW9kdWxlIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGZpbmdlcnByaW50X21vZHVsZV90IGNvbnN0ICptb2R1bGUgPQorICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGZpbmdlcnByaW50X21vZHVsZV90Kj4oaHdfbWRsKTsKKyAgICBpZiAobW9kdWxlLT5jb21tb24ubWV0aG9kcy0+b3BlbiA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJObyB2YWxpZCBvcGVuIG1ldGhvZCIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBod19kZXZpY2VfdCAqZGV2aWNlID0gbnVsbHB0cjsKKworICAgIGlmICgwICE9IChlcnIgPSBtb2R1bGUtPmNvbW1vbi5tZXRob2RzLT5vcGVuKGh3X21kbCwgbnVsbHB0ciwgJmRldmljZSkpKSB7CisgICAgICAgIEFMT0dFKCJDYW4ndCBvcGVuIGZpbmdlcnByaW50IG1ldGhvZHMsIGVycm9yOiAlZCIsIGVycik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChrVmVyc2lvbiAhPSBkZXZpY2UtPnZlcnNpb24pIHsKKyAgICAgICAgLy8gZW5mb3JjZSB2ZXJzaW9uIG9uIG5ldyBkZXZpY2VzIGJlY2F1c2Ugb2YgSElETEAyLjEgdHJhbnNsYXRpb24gbGF5ZXIKKyAgICAgICAgQUxPR0UoIldyb25nIGZwIHZlcnNpb24uIEV4cGVjdGVkICVkLCBnb3QgJWQiLCBrVmVyc2lvbiwgZGV2aWNlLT52ZXJzaW9uKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgZmluZ2VycHJpbnRfZGV2aWNlX3QqIGZwX2RldmljZSA9CisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8ZmluZ2VycHJpbnRfZGV2aWNlX3QqPihkZXZpY2UpOworCisgICAgaWYgKDAgIT0gKGVyciA9CisgICAgICAgICAgICBmcF9kZXZpY2UtPnNldF9ub3RpZnkoZnBfZGV2aWNlLCBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6Om5vdGlmeSkpKSB7CisgICAgICAgIEFMT0dFKCJDYW4ndCByZWdpc3RlciBmaW5nZXJwcmludCBtb2R1bGUgY2FsbGJhY2ssIGVycm9yOiAlZCIsIGVycik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBmcF9kZXZpY2U7Cit9CisKK3ZvaWQgQmlvbWV0cmljc0ZpbmdlcnByaW50Ojpub3RpZnkoY29uc3QgZmluZ2VycHJpbnRfbXNnX3QgKm1zZykgeworICAgIEJpb21ldHJpY3NGaW5nZXJwcmludCogdGhpc1B0ciA9IHN0YXRpY19jYXN0PEJpb21ldHJpY3NGaW5nZXJwcmludCo+KAorICAgICAgICAgICAgQmlvbWV0cmljc0ZpbmdlcnByaW50OjpnZXRJbnN0YW5jZSgpKTsKKyAgICBpZiAodGhpc1B0ciA9PSBudWxscHRyIHx8IHRoaXNQdHItPm1DbGllbnRDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJSZWNlaXZpbmcgY2FsbGJhY2tzIGJlZm9yZSB0aGUgY2xpZW50IGNhbGxiYWNrIGlzIHJlZ2lzdGVyZWQuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY29uc3QgdWludDY0X3QgZGV2SWQgPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Pih0aGlzUHRyLT5tRGV2aWNlKTsKKyAgICBzd2l0Y2ggKG1zZy0+dHlwZSkgeworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0VSUk9SOiB7CisgICAgICAgICAgICAgICAgaW50MzJfdCB2ZW5kb3JDb2RlID0gMDsKKyAgICAgICAgICAgICAgICBGaW5nZXJwcmludEVycm9yIHJlc3VsdCA9IFZlbmRvckVycm9yRmlsdGVyKG1zZy0+ZGF0YS5lcnJvciwgJnZlbmRvckNvZGUpOworICAgICAgICAgICAgICAgIEFMT0dEKCJvbkVycm9yKCVkKSIsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKCF0aGlzUHRyLT5tQ2xpZW50Q2FsbGJhY2stPm9uRXJyb3IoZGV2SWQsIHJlc3VsdCwgdmVuZG9yQ29kZSkuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gaW52b2tlIGZpbmdlcnByaW50IG9uRXJyb3IgY2FsbGJhY2siKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9BQ1FVSVJFRDogeworICAgICAgICAgICAgICAgIGludDMyX3QgdmVuZG9yQ29kZSA9IDA7CisgICAgICAgICAgICAgICAgRmluZ2VycHJpbnRBY3F1aXJlZEluZm8gcmVzdWx0ID0KKyAgICAgICAgICAgICAgICAgICAgVmVuZG9yQWNxdWlyZWRGaWx0ZXIobXNnLT5kYXRhLmFjcXVpcmVkLmFjcXVpcmVkX2luZm8sICZ2ZW5kb3JDb2RlKTsKKyAgICAgICAgICAgICAgICBBTE9HRCgib25BY3F1aXJlZCglZCkiLCByZXN1bHQpOworICAgICAgICAgICAgICAgIGlmICghdGhpc1B0ci0+bUNsaWVudENhbGxiYWNrLT5vbkFjcXVpcmVkKGRldklkLCByZXN1bHQsIHZlbmRvckNvZGUpLmlzT2soKSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGludm9rZSBmaW5nZXJwcmludCBvbkFjcXVpcmVkIGNhbGxiYWNrIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfVEVNUExBVEVfRU5ST0xMSU5HOgorICAgICAgICAgICAgQUxPR0QoIm9uRW5yb2xsUmVzdWx0KGZpZD0lZCwgZ2lkPSVkLCByZW09JWQpIiwKKyAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW5yb2xsLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVucm9sbC5maW5nZXIuZ2lkLAorICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnJvbGwuc2FtcGxlc19yZW1haW5pbmcpOworICAgICAgICAgICAgaWYgKCF0aGlzUHRyLT5tQ2xpZW50Q2FsbGJhY2stPm9uRW5yb2xsUmVzdWx0KGRldklkLAorICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW5yb2xsLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnJvbGwuZmluZ2VyLmdpZCwKKyAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVucm9sbC5zYW1wbGVzX3JlbWFpbmluZykuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBpbnZva2UgZmluZ2VycHJpbnQgb25FbnJvbGxSZXN1bHQgY2FsbGJhY2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX1RFTVBMQVRFX1JFTU9WRUQ6CisgICAgICAgICAgICBBTE9HRCgib25SZW1vdmUoZmlkPSVkLCBnaWQ9JWQsIHJlbT0lZCkiLAorICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5yZW1vdmVkLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgbXNnLT5kYXRhLnJlbW92ZWQuZmluZ2VyLmdpZCwKKyAgICAgICAgICAgICAgICBtc2ctPmRhdGEucmVtb3ZlZC5yZW1haW5pbmdfdGVtcGxhdGVzKTsKKyAgICAgICAgICAgIGlmICghdGhpc1B0ci0+bUNsaWVudENhbGxiYWNrLT5vblJlbW92ZWQoZGV2SWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5yZW1vdmVkLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5yZW1vdmVkLmZpbmdlci5naWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5yZW1vdmVkLnJlbWFpbmluZ190ZW1wbGF0ZXMpLmlzT2soKSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gaW52b2tlIGZpbmdlcnByaW50IG9uUmVtb3ZlZCBjYWxsYmFjayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfQVVUSEVOVElDQVRFRDoKKyAgICAgICAgICAgIGlmIChtc2ctPmRhdGEuYXV0aGVudGljYXRlZC5maW5nZXIuZmlkICE9IDApIHsKKyAgICAgICAgICAgICAgICBBTE9HRCgib25BdXRoZW50aWNhdGVkKGZpZD0lZCwgZ2lkPSVkKSIsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5hdXRoZW50aWNhdGVkLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5hdXRoZW50aWNhdGVkLmZpbmdlci5naWQpOworICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIGhhdCA9CisgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPigmbXNnLT5kYXRhLmF1dGhlbnRpY2F0ZWQuaGF0KTsKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiB0b2tlbigKKyAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4oaGF0LCBoYXQgKyBzaXplb2YobXNnLT5kYXRhLmF1dGhlbnRpY2F0ZWQuaGF0KSkpOworICAgICAgICAgICAgICAgIGlmICghdGhpc1B0ci0+bUNsaWVudENhbGxiYWNrLT5vbkF1dGhlbnRpY2F0ZWQoZGV2SWQsCisgICAgICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuYXV0aGVudGljYXRlZC5maW5nZXIuZmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmF1dGhlbnRpY2F0ZWQuZmluZ2VyLmdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuKS5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBpbnZva2UgZmluZ2VycHJpbnQgb25BdXRoZW50aWNhdGVkIGNhbGxiYWNrIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBOb3QgYSByZWNvZ25pemVkIGZpbmdlcnByaW50CisgICAgICAgICAgICAgICAgaWYgKCF0aGlzUHRyLT5tQ2xpZW50Q2FsbGJhY2stPm9uQXV0aGVudGljYXRlZChkZXZJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5hdXRoZW50aWNhdGVkLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuYXV0aGVudGljYXRlZC5maW5nZXIuZ2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgaGlkbF92ZWM8dWludDhfdD4oKSkuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gaW52b2tlIGZpbmdlcnByaW50IG9uQXV0aGVudGljYXRlZCBjYWxsYmFjayIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX1RFTVBMQVRFX0VOVU1FUkFUSU5HOgorICAgICAgICAgICAgQUxPR0QoIm9uRW51bWVyYXRlKGZpZD0lZCwgZ2lkPSVkLCByZW09JWQpIiwKKyAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW51bWVyYXRlZC5maW5nZXIuZmlkLAorICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnVtZXJhdGVkLmZpbmdlci5naWQsCisgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVudW1lcmF0ZWQucmVtYWluaW5nX3RlbXBsYXRlcyk7CisgICAgICAgICAgICBpZiAoIXRoaXNQdHItPm1DbGllbnRDYWxsYmFjay0+b25FbnVtZXJhdGUoZGV2SWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnVtZXJhdGVkLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnVtZXJhdGVkLmZpbmdlci5naWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnVtZXJhdGVkLnJlbWFpbmluZ190ZW1wbGF0ZXMpLmlzT2soKSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gaW52b2tlIGZpbmdlcnByaW50IG9uRW51bWVyYXRlIGNhbGxiYWNrIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIGZpbmdlcnByaW50Cit9ICAvLyBuYW1lc3BhY2UgYmlvbWV0cmljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9CaW9tZXRyaWNzRmluZ2VycHJpbnQuaCBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvQmlvbWV0cmljc0ZpbmdlcnByaW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkyM2M4NAotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvQmlvbWV0cmljc0ZpbmdlcnByaW50LmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9CSU9NRVRSSUNTX0ZJTkdFUlBSSU5UX1YyXzFfQklPTUVUUklDU0ZJTkdFUlBSSU5UX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9CSU9NRVRSSUNTX0ZJTkdFUlBSSU5UX1YyXzFfQklPTUVUUklDU0ZJTkdFUlBSSU5UX0gKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZmluZ2VycHJpbnQuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Lmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYmlvbWV0cmljcyB7CituYW1lc3BhY2UgZmluZ2VycHJpbnQgeworbmFtZXNwYWNlIFYyXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OlJlcXVlc3RTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBCaW9tZXRyaWNzRmluZ2VycHJpbnQgOiBwdWJsaWMgSUJpb21ldHJpY3NGaW5nZXJwcmludCB7CitwdWJsaWM6CisgICAgQmlvbWV0cmljc0ZpbmdlcnByaW50KCk7CisgICAgfkJpb21ldHJpY3NGaW5nZXJwcmludCgpOworCisgICAgLy8gTWV0aG9kIHRvIHdyYXAgbGVnYWN5IEhBTCB3aXRoIEJpb21ldHJpY3NGaW5nZXJwcmludCBjbGFzcworICAgIHN0YXRpYyBJQmlvbWV0cmljc0ZpbmdlcnByaW50KiBnZXRJbnN0YW5jZSgpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50IGZvbGxvdy4KKyAgICBSZXR1cm48dWludDY0X3Q+IHNldE5vdGlmeShjb25zdCBzcDxJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2s+JiBjbGllbnRDYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQ2NF90PiBwcmVFbnJvbGwoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gZW5yb2xsKGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgNjk+JiBoYXQsIHVpbnQzMl90IGdpZCwgdWludDMyX3QgdGltZW91dFNlYykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHBvc3RFbnJvbGwoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDY0X3Q+IGdldEF1dGhlbnRpY2F0b3JJZCgpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiBjYW5jZWwoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gZW51bWVyYXRlKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlbW92ZSh1aW50MzJfdCBnaWQsIHVpbnQzMl90IGZpZCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHNldEFjdGl2ZUdyb3VwKHVpbnQzMl90IGdpZCwgY29uc3QgaGlkbF9zdHJpbmcmIHN0b3JlUGF0aCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IGF1dGhlbnRpY2F0ZSh1aW50NjRfdCBvcGVyYXRpb25JZCwgdWludDMyX3QgZ2lkKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgZmluZ2VycHJpbnRfZGV2aWNlX3QqIG9wZW5IYWwoKTsKKyAgICBzdGF0aWMgdm9pZCBub3RpZnkoY29uc3QgZmluZ2VycHJpbnRfbXNnX3QgKm1zZyk7IC8qIFN0YXRpYyBjYWxsYmFjayBmb3IgbGVnYWN5IEhBTCBpbXBsZW1lbnRhdGlvbiAqLworICAgIHN0YXRpYyBSZXR1cm48UmVxdWVzdFN0YXR1cz4gRXJyb3JGaWx0ZXIoaW50MzJfdCBlcnJvcik7CisgICAgc3RhdGljIEZpbmdlcnByaW50RXJyb3IgVmVuZG9yRXJyb3JGaWx0ZXIoaW50MzJfdCBlcnJvciwgaW50MzJfdCogdmVuZG9yQ29kZSk7CisgICAgc3RhdGljIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvIFZlbmRvckFjcXVpcmVkRmlsdGVyKGludDMyX3QgZXJyb3IsIGludDMyX3QqIHZlbmRvckNvZGUpOworICAgIHN0YXRpYyBCaW9tZXRyaWNzRmluZ2VycHJpbnQqIHNJbnN0YW5jZTsKKworICAgIHNwPElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjaz4gbUNsaWVudENhbGxiYWNrOworICAgIGZpbmdlcnByaW50X2RldmljZV90ICptRGV2aWNlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIGZpbmdlcnByaW50Cit9ICAvLyBuYW1lc3BhY2UgYmlvbWV0cmljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQklPTUVUUklDU19GSU5HRVJQUklOVF9WMl8xX0JJT01FVFJJQ1NGSU5HRVJQUklOVF9ICmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEtc2VydmljZS5yYyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMS1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNzY3YTYKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEtc2VydmljZS5yYwpAQCAtMCwwICsxLDcgQEAKK3NlcnZpY2UgZnBzX2hhbCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UKKyAgICAjICJjbGFzcyBoYWwiIGNhdXNlcyBhIHJhY2UgY29uZGl0aW9uIG9uIHNvbWUgZGV2aWNlcyBkdWUgdG8gZmlsZXMgY3JlYXRlZAorICAgICMgaW4gL2RhdGEuIEFzIGEgd29ya2Fyb3VuZCwgcG9zdHBvbmUgc3RhcnR1cCB1bnRpbCBsYXRlciBpbiBib290IG9uY2UKKyAgICAjIC9kYXRhIGlzIG1vdW50ZWQuCisgICAgY2xhc3MgbGF0ZV9zdGFydAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtIGlucHV0CmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjk3YzA3Ci0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFN1cHBvcnQuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS90eXBlcy5oPgorI2luY2x1ZGUgIkJpb21ldHJpY3NGaW5nZXJwcmludC5oIgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OmltcGxlbWVudGF0aW9uOjpCaW9tZXRyaWNzRmluZ2VycHJpbnQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OnNwOworCitpbnQgbWFpbigpIHsKKyAgICBhbmRyb2lkOjpzcDxJQmlvbWV0cmljc0ZpbmdlcnByaW50PiBiaW8gPSBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OmdldEluc3RhbmNlKCk7CisKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDEsIHRydWUgLypjYWxsZXJXaWxsSm9pbiovKTsKKworICAgIGlmIChiaW8gIT0gbnVsbHB0cikgeworICAgICAgICBiaW8tPnJlZ2lzdGVyQXNTZXJ2aWNlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoIkNhbid0IGNyZWF0ZSBpbnN0YW5jZSBvZiBCaW9tZXRyaWNzRmluZ2VycHJpbnQsIG51bGxwdHIiKTsKKyAgICB9CisKKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworCisgICAgcmV0dXJuIDA7IC8vIHNob3VsZCBuZXZlciBnZXQgaGVyZQorfQpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdHlwZXMuaGFsIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MDIwODUKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS90eXBlcy5oYWwKQEAgLTAsMCArMSwxNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE7CisKKy8qKgorICogUmVxdWVzdCBzdGF0dXMgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJlcXVlc3QgaXMgYWNjZXB0ZWQgYnkgdGhlIHZlbmRvcgorICogaW1wbGVtZW50YXRpb24gb3Igbm90LiBUaGVzZSB2YWx1ZXMgYXJlIHRha2VuIGZyb20gdGhlIGVycm5vIHNldCwKKyAqIGV4Y2VwdCBmb3IgdGhlIFNZU19VTktOT1dOCisgKi8KK2VudW0gUmVxdWVzdFN0YXR1cyA6IGludDMyX3QgeworICBTWVNfVU5LTk9XTiA9IDEsCisgIFNZU19PSyA9IDAsCisgIFNZU19FTk9FTlQgPSAtMiwKKyAgU1lTX0VJTlRSID0gLTQsCisgIFNZU19FSU8gPSAtNSwKKyAgU1lTX0VBR0FJTiA9IC0xMSwKKyAgU1lTX0VOT01FTSA9IC0xMiwKKyAgU1lTX0VBQ0NFUyA9IC0xMywKKyAgU1lTX0VGQVVMVCA9IC0xNCwKKyAgU1lTX0VCVVNZID0gLTE2LAorICBTWVNfRUlOVkFMID0gLTIyLAorICBTWVNfRU5PU1BDID0gLTI4LAorICBTWVNfRVRJTUVET1VUID0gLTExMCwKK307CisKKy8qKgorICogRmluZ2VycHJpbnQgZXJyb3JzIGFyZSBtZWFudCB0byB0ZWxsIHRoZSBmcmFtZXdvcmsgdG8gdGVybWluYXRlIHRoZSBjdXJyZW50CisgKiBvcGVyYXRpb24gYW5kIGFzayBmb3IgdGhlIHVzZXIgdG8gY29ycmVjdCB0aGUgc2l0dWF0aW9uLiBUaGVzZSB3aWxsIGFsbW9zdAorICogYWx3YXlzIHJlc3VsdCBpbiBtZXNzYWdpbmcgYW5kIHVzZXIgaW50ZXJhY3Rpb24gdG8gY29ycmVjdCB0aGUgcHJvYmxlbS4KKyAqCisgKiBGb3IgZXhhbXBsZSwgRVJST1JfQ0FOQ0VMRUQgc2hvdWxkIGZvbGxvdyBhbnkgYWNxdWlzaXRpb24gbWVzc2FnZSB0aGF0CisgKiByZXN1bHRzIGluIGEgc2l0dWF0aW9uIHdoZXJlIHRoZSBjdXJyZW50IG9wZXJhdGlvbiBjYW4ndCBjb250aW51ZSB3aXRob3V0CisgKiB1c2VyIGludGVyYWN0aW9uLiBGb3IgZXhhbXBsZSwgaWYgdGhlIHNlbnNvciBpcyBkaXJ0eSBkdXJpbmcgZW5yb2xsbWVudCBhbmQKKyAqIG5vIGZ1cnRoZXIgZW5yb2xsbWVudCBwcm9ncmVzcyBjYW4gYmUgbWFkZSwgc2VuZCBBQ1FVSVJFRF9JTUFHRVJfRElSVFkKKyAqIGZvbGxvd2VkIGJ5IEVSUk9SX0NBTkNFTEVELgorICovCitlbnVtIEZpbmdlcnByaW50RXJyb3IgOiBpbnQzMl90IHsKKyAgLyoqIFVzZWQgZm9yIHRlc3RpbmcsIG5vIGVycm9yIHJldHVybmVkICovCisgIEVSUk9SX05PX0VSUk9SID0gMCwKKyAgLyoqIFRoZSBoYXJkd2FyZSBoYXMgYW4gZXJyb3IgdGhhdCBjYW4ndCBiZSByZXNvbHZlZC4gKi8KKyAgRVJST1JfSFdfVU5BVkFJTEFCTEUgPSAxLAorICAvKiogQmFkIGRhdGE7IG9wZXJhdGlvbiBjYW4ndCBjb250aW51ZSAqLworICBFUlJPUl9VTkFCTEVfVE9fUFJPQ0VTUyA9IDIsCisgIC8qKiBUaGUgb3BlcmF0aW9uIGhhcyB0aW1lZCBvdXQgd2FpdGluZyBmb3IgdXNlciBpbnB1dC4gKi8KKyAgRVJST1JfVElNRU9VVCA9IDMsCisgIC8qKiBObyBzcGFjZSBhdmFpbGFibGUgdG8gc3RvcmUgYSB0ZW1wbGF0ZSAqLworICBFUlJPUl9OT19TUEFDRSA9IDQsCisgIC8qKiBUaGUgY3VycmVudCBvcGVyYXRpb24gaGFzIGJlZW4gY2FuY2VsZWQgKi8KKyAgRVJST1JfQ0FOQ0VMRUQgPSA1LAorICAvKiogVW5hYmxlIHRvIHJlbW92ZSBhIHRlbXBsYXRlICovCisgIEVSUk9SX1VOQUJMRV9UT19SRU1PVkUgPSA2LAorICAvKiogVGhlIGhhcmR3YXJlIGlzIGluIGxvY2tvdXQgZHVlIHRvIHRvbyBtYW55IGF0dGVtcHRzICovCisgIEVSUk9SX0xPQ0tPVVQgPSA3LAorICAvKiogVmVuZG9yLXNwZWNpZmljIGVycm9yIG1lc3NhZ2UgKi8KKyAgRVJST1JfVkVORE9SID0gOAorfTsKKworLyoqCisgKiBGaW5nZXJwcmludCBhY3F1aXNpdGlvbiBpbmZvIGlzIG1lYW50IGFzIGZlZWRiYWNrIGZvciB0aGUgY3VycmVudCBvcGVyYXRpb24uCisgKiBBbnl0aGluZyBidXQgQUNRVUlSRURfR09PRCBtdXN0IGJlIHNob3duIHRvIHRoZSB1c2VyIGFzIGZlZWRiYWNrIG9uIGhvdyB0bworICogdGFrZSBhY3Rpb24gb24gdGhlIGN1cnJlbnQgb3BlcmF0aW9uLiBGb3IgZXhhbXBsZSwgQUNRVUlSRURfSU1BR0VSX0RJUlRZIG1heQorICogYmUgdXNlZCB0byB0ZWxsIHRoZSB1c2VyIHRvIGNsZWFuIHRoZSBzZW5zb3IgaWYgaXQgaXMgZGV0ZWN0ZWQgdG8gYmUgZGlydHkuCisgKiBJZiB0aGlzIGNhdXNlcyB0aGUgY3VycmVudCBvcGVyYXRpb24gdG8gZmFpbCwgYW4gYWRkaXRpb25hbCBFUlJPUl9DQU5DRUxFRAorICogbXVzdCBiZSBzZW50IHRvIHN0b3AgdGhlIG9wZXJhdGlvbiBpbiBwcm9ncmVzcyAoZS5nLiBlbnJvbGxtZW50KS4KKyAqIEluIGdlbmVyYWwsIHRoZXNlIG1lc3NhZ2VzIHdpbGwgcmVzdWx0IGluIGEgIlRyeSBhZ2FpbiIgbWVzc2FnZS4KKyAqLworZW51bSBGaW5nZXJwcmludEFjcXVpcmVkSW5mbyA6IGludDMyX3QgeworICBBQ1FVSVJFRF9HT09EID0gMCwKKyAgLyoqIHNlbnNvciBuZWVkcyBtb3JlIGRhdGEsIGkuZS4gbG9uZ2VyIHN3aXBlLiAqLworICBBQ1FVSVJFRF9QQVJUSUFMID0gMSwKKyAgLyoqCisgICAqIGltYWdlIGRvZXNuJ3QgY29udGFpbiBlbm91Z2ggZGV0YWlsIGZvciByZWNvZ25pdGlvbiovCisgIEFDUVVJUkVEX0lOU1VGRklDSUVOVCA9IDIsCisgIC8qKiBzZW5zb3IgbmVlZHMgdG8gYmUgY2xlYW5lZCAqLworICBBQ1FVSVJFRF9JTUFHRVJfRElSVFkgPSAzLAorICAvKiogbW9zdGx5IHN3aXBlLXR5cGUgc2Vuc29yczsgbm90IGVub3VnaCBkYXRhIGNvbGxlY3RlZCAqLworICBBQ1FVSVJFRF9UT09fU0xPVyA9IDQsCisgIC8qKiB2ZW5kb3Itc3BlY2lmaWMgYWNxdWlzaXRpb24gbWVzc2FnZXMgc3RhcnQgaGVyZSAqLworICBBQ1FVSVJFRF9UT09fRkFTVCA9IDUsCisgIC8qKiB2ZW5kb3Itc3BlY2lmaWMgYWNxdWlzaXRpb24gbWVzc2FnZXMgKi8KKyAgQUNRVUlSRURfVkVORE9SID0gNgorfTsKKworc3RydWN0IEZpbmdlcnByaW50RmluZ2VySWQgeworICAvKiogR3JvdXAgSUQgKi8KKyAgdWludDMyX3QgZ2lkOworICAvKiogRmluZ2VycHJpbnQgdGVtcGxhdGUgSUQgKi8KKyAgdWludDMyX3QgZmlkOworfTsKKworc3RydWN0IEZpbmdlcnByaW50RW5yb2xsIHsKKyAgLyoqIFRlbXBsYXRlIElEICovCisgIEZpbmdlcnByaW50RmluZ2VySWQgZmluZ2VyOworICAvKioKKyAgICogc2FtcGxlc1JlbWFpbmluZyBnb2VzIGZyb20gTiAobm8gZGF0YSBjb2xsZWN0ZWQsIGJ1dCBOIHNjYW5zIG5lZWRlZCkKKyAgICogdG8gMCAobm8gbW9yZSBkYXRhIGlzIG5lZWRlZCB0byBidWlsZCBhIHRlbXBsYXRlKS4gKi8KKyAgdWludDMyX3Qgc2FtcGxlc1JlbWFpbmluZzsKKyAgLyoqIFZlbmRvciBzcGVjaWZpYyBtZXNzYWdlLiBVc2VkIGZvciB1c2VyIGd1aWRhbmNlICovCisgIHVpbnQ2NF90IG1zZzsKK307CisKK3N0cnVjdCBGaW5nZXJwcmludEl0ZXJhdG9yIHsKKyAgLyoqIFRlbXBsYXRlIElEICovCisgIEZpbmdlcnByaW50RmluZ2VySWQgZmluZ2VyOworICAvKiogSG93IG1hbnkgdGVtcGxhdGVzIHJlbWFpbiB0byBpdGVyYXRlIHRocm91Z2ggKi8KKyAgdWludDMyX3QgcmVtYWluaW5nVGVtcGxhdGVzOworfTsKKwordHlwZWRlZiBGaW5nZXJwcmludEl0ZXJhdG9yIEZpbmdlcnByaW50RW51bWVyYXRlZDsKK3R5cGVkZWYgRmluZ2VycHJpbnRJdGVyYXRvciBGaW5nZXJwcmludFJlbW92ZWQ7CisKK3N0cnVjdCBGaW5nZXJwcmludEFjcXVpcmVkIHsKKyAgLyoqIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpbWFnZSAqLworICBGaW5nZXJwcmludEFjcXVpcmVkSW5mbyBhY3F1aXJlZEluZm87Cit9OworCitzdHJ1Y3QgRmluZ2VycHJpbnRBdXRoZW50aWNhdGVkIHsKKyAgLyoqIE1hdGNoZWQgdGVtcGxhdGUgSUQgKi8KKyAgRmluZ2VycHJpbnRGaW5nZXJJZCBmaW5nZXI7CisgIC8qKiBBdXRoZW50aWNhdGlvbiByZXN1bHQgZnJvbSB0aGUga2V5bWFzdGVyICovCisgIHVpbnQ4X3RbNjldIGhhdDsKK307CisKKy8qKiBSdW4gdGltZSB0eXBlIGlkZW50aWZpY2F0aW9uIGZvciB0aGUgbm90aWZ5KCkgY2FsbCBwYXlsb2FkLiAqLworZW51bSBGaW5nZXJwcmludE1zZ1R5cGUgOiBpbnQzMl90IHsKKyAgRVJST1IgPSAtMSwKKyAgQUNRVUlSRUQgPSAxLAorICBURU1QTEFURV9FTlJPTExJTkcgPSAzLAorICBURU1QTEFURV9SRU1PVkVEID0gNCwKKyAgQVVUSEVOVElDQVRFRCA9IDUsCisgIFRFTVBMQVRFX0VOVU1FUkFUSU5HID0gNiwKK307CisKZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3YjcxNTcKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxCaW9tZXRyaWNzRmluZ2VycHJpbnRWMl8xVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsQmlvbWV0cmljc0ZpbmdlcnByaW50VjJfMVRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMSIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQorCmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxCaW9tZXRyaWNzRmluZ2VycHJpbnRWMl8xVGFyZ2V0VGVzdC5jcHAgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxCaW9tZXRyaWNzRmluZ2VycHJpbnRWMl8xVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk3NzZiNAotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEJpb21ldHJpY3NGaW5nZXJwcmludFYyXzFUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDQ2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiZmluZ2VycHJpbnRfaGlkbF9oYWxfdGVzdCIKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCisjaW5jbHVkZSA8Y2ludHR5cGVzPgorI2luY2x1ZGUgPGZ1dHVyZT4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCit1c2luZyBhbmRyb2lkOjpDb25kaXRpb247Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjazsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6RmluZ2VycHJpbnRBY3F1aXJlZEluZm87Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OkZpbmdlcnByaW50RXJyb3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OlJlcXVlc3RTdGF0dXM7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgYW5kcm9pZDo6TXV0ZXg7Cit1c2luZyBhbmRyb2lkOjpzcDsKKworbmFtZXNwYWNlIHsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtUaW1lb3V0ID0gMzsKK3N0YXRpYyBjb25zdCBzdGQ6OmNocm9ubzo6c2Vjb25kcyBrVGltZW91dEluU2Vjb25kcyA9IHN0ZDo6Y2hyb25vOjpzZWNvbmRzKGtUaW1lb3V0KTsKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrR3JvdXBJZCA9IDk5Oworc3RhdGljIGNvbnN0IHN0ZDo6c3RyaW5nIGtUbXBEaXIgPSAiL2RhdGEvc3lzdGVtLyI7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga0l0ZXJhdGlvbnMgPSAxMDAwOworCisvLyBXYWl0IGZvciBhIGNhbGxiYWNrIHRvIG9jY3VyIChzaWduYWxlZCBieSB0aGUgZ2l2ZW4gZnV0dXJlKSB1cCB0byB0aGUKKy8vIHByb3ZpZGVkIHRpbWVvdXQuIElmIHRoZSBmdXR1cmUgaXMgaW52YWxpZCBvciB0aGUgY2FsbGJhY2sgZG9lcyBub3QgY29tZQorLy8gd2l0aGluIHRoZSBnaXZlbiB0aW1lLCByZXR1cm5zIGZhbHNlLgordGVtcGxhdGU8Y2xhc3MgUmV0dXJuVHlwZT4KK2Jvb2wgd2FpdEZvckNhbGxiYWNrKAorICAgIHN0ZDo6ZnV0dXJlPFJldHVyblR5cGU+IGZ1dHVyZSwKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQgPSBrVGltZW91dEluU2Vjb25kcykgeworICBhdXRvIGV4cGlyYXRpb24gPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArIHRpbWVvdXQ7CisKKyAgRVhQRUNUX1RSVUUoZnV0dXJlLnZhbGlkKCkpOworICBpZiAoZnV0dXJlLnZhbGlkKCkpIHsKKyAgICBzdGQ6OmZ1dHVyZV9zdGF0dXMgc3RhdHVzID0gZnV0dXJlLndhaXRfdW50aWwoZXhwaXJhdGlvbik7CisgICAgRVhQRUNUX05FKHN0ZDo6ZnV0dXJlX3N0YXR1czo6dGltZW91dCwgc3RhdHVzKQorICAgICAgICA8PCAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIGNhbGxiYWNrIjsKKyAgICBpZiAoc3RhdHVzID09IHN0ZDo6ZnV0dXJlX3N0YXR1czo6cmVhZHkpIHsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgfQorCisgIHJldHVybiBmYWxzZTsKK30KKworLy8gQmFzZSBjYWxsYmFjayBpbXBsZW1lbnRhdGlvbiB0aGF0IGp1c3QgbG9ncyBhbGwgY2FsbGJhY2tzIGJ5IGRlZmF1bHQKK2NsYXNzIEZpbmdlcnByaW50Q2FsbGJhY2tCYXNlIDogcHVibGljIElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjayB7CisgcHVibGljOgorICAvLyBpbXBsZW1lbnQgbWV0aG9kcyBvZiBJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2sKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25FbnJvbGxSZXN1bHQodWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QpCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkVucm9sbCBjYWxsYmFjayBjYWxsZWQuIik7CisgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25BY3F1aXJlZCh1aW50NjRfdCwgRmluZ2VycHJpbnRBY3F1aXJlZEluZm8sIGludDMyX3QpCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkFjcXVpcmVkIGNhbGxiYWNrIGNhbGxlZC4iKTsKKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvbkF1dGhlbnRpY2F0ZWQodWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwKKyAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+Jikgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJBdXRoZW50aWNhdGVkIGNhbGxiYWNrIGNhbGxlZC4iKTsKKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvbkVycm9yKHVpbnQ2NF90LCBGaW5nZXJwcmludEVycm9yLCBpbnQzMl90KQorICAgICAgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJFcnJvciBjYWxsYmFjayBjYWxsZWQuIik7CisgICAgRVhQRUNUX1RSVUUoZmFsc2UpOyAgLy8gZmFpbCBhbnkgdGVzdCB0aGF0IHRyaWdnZXJzIGFuIGVycm9yCisgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25SZW1vdmVkKHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90KQorICAgICAgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJSZW1vdmVkIGNhbGxiYWNrIGNhbGxlZC4iKTsKKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvbkVudW1lcmF0ZSh1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCkKKyAgICAgIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiRW51bWVyYXRlIGNhbGxiYWNrIGNhbGxlZC4iKTsKKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KK307CisKK2NsYXNzIEVudW1lcmF0ZUNhbGxiYWNrIDogcHVibGljIEZpbmdlcnByaW50Q2FsbGJhY2tCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG9uRW51bWVyYXRlKHVpbnQ2NF90IGRldmljZUlkLCB1aW50MzJfdCBmaW5nZXJJZCwKKyAgICAgIHVpbnQzMl90IGdyb3VwSWQsIHVpbnQzMl90IHJlbWFpbmluZykgb3ZlcnJpZGUgeworICAgIHRoaXMtPmRldmljZUlkID0gZGV2aWNlSWQ7CisgICAgdGhpcy0+ZmluZ2VySWQgPSBmaW5nZXJJZDsKKyAgICB0aGlzLT5ncm91cElkID0gZ3JvdXBJZDsKKyAgICB0aGlzLT5yZW1haW5pbmcgPSByZW1haW5pbmc7CisKKyAgICBpZihyZW1haW5pbmcgPT0gMFVMKSB7CisgICAgICBwcm9taXNlLnNldF92YWx1ZSgpOworICAgIH0KKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICB1aW50NjRfdCBkZXZpY2VJZDsKKyAgdWludDMyX3QgZmluZ2VySWQ7CisgIHVpbnQzMl90IGdyb3VwSWQ7CisgIHVpbnQzMl90IHJlbWFpbmluZzsKKyAgc3RkOjpwcm9taXNlPHZvaWQ+IHByb21pc2U7Cit9OworCitjbGFzcyBFcnJvckNhbGxiYWNrIDogcHVibGljIEZpbmdlcnByaW50Q2FsbGJhY2tCYXNlIHsKKyBwdWJsaWM6CisgIEVycm9yQ2FsbGJhY2soCisgICAgICBib29sIGZpbHRlckVycm9ycz1mYWxzZSwKKyAgICAgIEZpbmdlcnByaW50RXJyb3IgZXJyb3JUeXBlPUZpbmdlcnByaW50RXJyb3I6OkVSUk9SX05PX0VSUk9SKSB7CisgICAgdGhpcy0+ZmlsdGVyRXJyb3JzID0gZmlsdGVyRXJyb3JzOworICAgIHRoaXMtPmVycm9yVHlwZSA9IGVycm9yVHlwZTsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG9uRXJyb3IodWludDY0X3QgZGV2aWNlSWQsIEZpbmdlcnByaW50RXJyb3IgZXJyb3IsCisgICAgICBpbnQzMl90IHZlbmRvckNvZGUpIG92ZXJyaWRlIHsKKyAgICBpZiAoKHRoaXMtPmZpbHRlckVycm9ycyAmJiB0aGlzLT5lcnJvclR5cGUgPT0gZXJyb3IpIHx8ICF0aGlzLT5maWx0ZXJFcnJvcnMpIHsKKyAgICAgIHRoaXMtPmRldmljZUlkID0gZGV2aWNlSWQ7CisgICAgICB0aGlzLT5lcnJvciA9IGVycm9yOworICAgICAgdGhpcy0+dmVuZG9yQ29kZSA9IHZlbmRvckNvZGU7CisgICAgICBwcm9taXNlLnNldF92YWx1ZSgpOworICAgIH0KKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICBib29sIGZpbHRlckVycm9yczsKKyAgRmluZ2VycHJpbnRFcnJvciBlcnJvclR5cGU7CisgIHVpbnQ2NF90IGRldmljZUlkOworICBGaW5nZXJwcmludEVycm9yIGVycm9yOworICBpbnQzMl90IHZlbmRvckNvZGU7CisgIHN0ZDo6cHJvbWlzZTx2b2lkPiBwcm9taXNlOworfTsKKworY2xhc3MgUmVtb3ZlQ2FsbGJhY2sgOiBwdWJsaWMgRmluZ2VycHJpbnRDYWxsYmFja0Jhc2UgeworIHB1YmxpYzoKKyAgUmVtb3ZlQ2FsbGJhY2sodWludDMyX3QgZ3JvdXBJZCkgeworICAgIHRoaXMtPnJlbW92ZUdyb3VwSWQgPSBncm91cElkOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25SZW1vdmVkKHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QgZ3JvdXBJZCwKKyAgICAgIHVpbnQzMl90IHJlbWFpbmluZykgb3ZlcnJpZGUgeworICAgIEVYUEVDVF9FUSh0aGlzLT5yZW1vdmVHcm91cElkLCBncm91cElkKTsKKyAgICBpZihyZW1haW5pbmcgPT0gMFVMKSB7CisgICAgICBwcm9taXNlLnNldF92YWx1ZSgpOworICAgIH0KKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICB1aW50MzJfdCByZW1vdmVHcm91cElkOworICBzdGQ6OnByb21pc2U8dm9pZD4gcHJvbWlzZTsKK307CisKK2NsYXNzIEZpbmdlcnByaW50SGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIG1TZXJ2aWNlID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUJpb21ldHJpY3NGaW5nZXJwcmludD4oKTsKKyAgICBBU1NFUlRfRkFMU0UobVNlcnZpY2UgPT0gbnVsbHB0cik7CisKKyAgICAvLyBDcmVhdGUgYW4gYWN0aXZlIGdyb3VwCisgICAgLy8gRlAgc2VydmljZSBjYW4gb25seSB3cml0ZSB0byAvZGF0YS9zeXN0ZW0gZHVlIHRvCisgICAgLy8gU0VMaW51eCBQb2xpY3kgYW5kIExpbnV4IERpciBQZXJtaXNzaW9ucworICAgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+c2V0QWN0aXZlR3JvdXAoa0dyb3VwSWQsIGtUbXBEaXIpOworICAgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBzcDxJQmlvbWV0cmljc0ZpbmdlcnByaW50PiBtU2VydmljZTsKK307CisKKworLy8gVGhlIHNlcnZpY2Ugc2hvdWxkIGJlIHJlYWNoYWJsZS4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBDb25uZWN0VGVzdCkgeworICBzcDxGaW5nZXJwcmludENhbGxiYWNrQmFzZT4gY2IgPSBuZXcgRmluZ2VycHJpbnRDYWxsYmFja0Jhc2UoKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFVMLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKK30KKworLy8gU3RhcnRpbmcgdGhlIHNlcnZpY2Ugd2l0aCBudWxsIGNhbGxiYWNrIHNob3VsZCBzdWNjZWVkLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIENvbm5lY3ROdWxsVGVzdCkgeworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShOVUxMKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7Cit9CisKKy8vIFByZS1lbnJvbGwgc2hvdWxkIGFsd2F5cyByZXR1cm4gdW5pcXVlLCBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUsIG5vbi16ZXJvIG51bWJlcgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIFByZUVucm9sbFRlc3QpIHsKKyAgc3RkOjptYXA8dWludDY0X3QsIHVpbnQ2NF90PiBtOworCisgIGZvcih1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBrSXRlcmF0aW9uczsgKytpKSB7CisgICAgdWludDY0X3QgcmVzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1TZXJ2aWNlLT5wcmVFbnJvbGwoKSk7CisgICAgRVhQRUNUX05FKDBVTCwgcmVzKTsKKyAgICBtW3Jlc10rKzsKKyAgICBFWFBFQ1RfRVEoMVVMLCBtW3Jlc10pOworICB9Cit9CisKKy8vIEVucm9sbCB3aXRoIGFuIGludmFsaWQgKGFsbCB6ZXJvZXMpIEhBVCBzaG91bGQgZmFpbC4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBFbnJvbGxJbnZhbGlkSGF0VGVzdCkgeworICBzcDxFcnJvckNhbGxiYWNrPiBjYiA9IG5ldyBFcnJvckNhbGxiYWNrKCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgdWludDhfdCB0b2tlbls2OV07CisgIGZvcihpbnQgaT0wOyBpPDY5OyBpKyspIHsKKyAgICB0b2tlbltpXSA9IDA7CisgIH0KKworICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPmVucm9sbCh0b2tlbiwga0dyb3VwSWQsIGtUaW1lb3V0KTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gQXQgbGVhc3Qgb25lIGNhbGwgdG8gb25FcnJvciBzaG91bGQgb2NjdXIKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworICBBU1NFUlRfTkUoRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfTk9fRVJST1IsIGNiLT5lcnJvcik7Cit9CisKKy8vIEVucm9sbCB3aXRoIGFuIGludmFsaWQgKG51bGwpIEhBVCBzaG91bGQgZmFpbC4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBFbnJvbGxOdWxsVGVzdCkgeworICBzcDxFcnJvckNhbGxiYWNrPiBjYiA9IG5ldyBFcnJvckNhbGxiYWNrKCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgdWludDhfdCB0b2tlbls2OV07CisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+ZW5yb2xsKHRva2VuLCBrR3JvdXBJZCwga1RpbWVvdXQpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBBdCBsZWFzdCBvbmUgY2FsbCB0byBvbkVycm9yIHNob3VsZCBvY2N1cgorICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7CisgIEFTU0VSVF9ORShGaW5nZXJwcmludEVycm9yOjpFUlJPUl9OT19FUlJPUiwgY2ItPmVycm9yKTsKK30KKworLy8gUG9zdEVucm9sbCBzaG91bGQgYWx3YXlzIHJldHVybiB3aXRoaW4gM3MKK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBQb3N0RW5yb2xsVGVzdCkgeworICBzcDxGaW5nZXJwcmludENhbGxiYWNrQmFzZT4gY2IgPSBuZXcgRmluZ2VycHJpbnRDYWxsYmFja0Jhc2UoKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworCisgIGF1dG8gc3RhcnQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKTsKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5wb3N0RW5yb2xsKCk7CisgIGF1dG8gZWxhcHNlZCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnQ7CisgIEFTU0VSVF9HRShrVGltZW91dEluU2Vjb25kcywgZWxhcHNlZCk7Cit9CisKKy8vIGdldEF1dGhlbnRpY2F0b3JJZCBzaG91bGQgYWx3YXlzIHJldHVybiBub24temVybyBudW1iZXJzCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgR2V0QXV0aGVudGljYXRvcklkVGVzdCkgeworICBSZXR1cm48dWludDY0X3Q+IHJlcyA9IG1TZXJ2aWNlLT5nZXRBdXRoZW50aWNhdG9ySWQoKTsKKyAgRVhQRUNUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJlcykpOworfQorCisvLyBFbnVtZXJhdGUgc2hvdWxkIGFsd2F5cyB0cmlnZ2VyIG9uRW51bWVyYXRlZChmaWQ9MCwgcmVtPTApIHdoZW4gdGhlcmUgYXJlIG5vIGZpbmdlcnByaW50cworVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIEVudW1lcmF0ZVRlc3QpIHsKKyAgc3A8RW51bWVyYXRlQ2FsbGJhY2s+IGNiID0gbmV3IEVudW1lcmF0ZUNhbGxiYWNrKCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgLy8gQ2FsbGJhY2sgd2lsbCByZXR1cm4gd2hlbiByZW09MCBpcyBmb3VuZAorICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPmVudW1lcmF0ZSgpOworICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7CisgIEVYUEVDVF9FUSgwVUwsIGNiLT5maW5nZXJJZCk7CisgIEVYUEVDVF9FUSgwVUwsIGNiLT5yZW1haW5pbmcpOworCit9CisKKy8vIFJlbW92ZSBzaG91bGQgc3VjY2VlZCBvbiBhbnkgaW5wdXRzCisvLyBBdCBsZWFzdCBvbmUgY2FsbGJhY2sgd2l0aCAicmVtYWluaW5nPTAiIHNob3VsZCBvY2N1cgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIFJlbW92ZUZpbmdlcnByaW50VGVzdCkgeworICAvLyBSZWdpc3RlciBjYWxsYmFjaworICBzcDxSZW1vdmVDYWxsYmFjaz4gY2IgPSBuZXcgUmVtb3ZlQ2FsbGJhY2soa0dyb3VwSWQpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVUwsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIC8vIFJlbW92ZSBhIGZpbmdlcnByaW50CisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+cmVtb3ZlKGtHcm91cElkLCAxKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gQXQgbGVhc3Qgb25lIGNhbGwgdG8gb25SZW1vdmUgd2l0aCByZW1haW5pbmc9MCBzaG91bGQgb2NjdXIKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworfQorCisvLyBSZW1vdmUgc2hvdWxkIGFjY2VwdCAwIHRvIGRlbGV0ZSBhbGwgZmluZ2VycHJpbnRzCisvLyBBdCBsZWFzdCBvbmUgY2FsbGJhY2sgd2l0aCAicmVtYWluaW5nPTAiIHNob3VsZCBvY2N1ci4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBSZW1vdmVBbGxGaW5nZXJwcmludHNUZXN0KSB7CisgIC8vIFJlZ2lzdGVyIGNhbGxiYWNrCisgIHNwPFJlbW92ZUNhbGxiYWNrPiBjYiA9IG5ldyBSZW1vdmVDYWxsYmFjayhrR3JvdXBJZCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgLy8gUmVtb3ZlIGFsbCBmaW5nZXJwcmludHMKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5yZW1vdmUoa0dyb3VwSWQsIDApOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworfQorCisvLyBBY3RpdmUgZ3JvdXAgc2hvdWxkIHN1Y2Nlc3NmdWxseSBzZXQgdG8gYSB3cml0YWJsZSBsb2NhdGlvbi4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBTZXRBY3RpdmVHcm91cFRlc3QpIHsKKyAgLy8gQ3JlYXRlIGFuIGFjdGl2ZSBncm91cAorICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnNldEFjdGl2ZUdyb3VwKDIsIGtUbXBEaXIpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBSZXNldCBhY3RpdmUgZ3JvdXAKKyAgcmVzID0gbVNlcnZpY2UtPnNldEFjdGl2ZUdyb3VwKGtHcm91cElkLCBrVG1wRGlyKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7Cit9CisKKy8vIEFjdGl2ZSBncm91cCBzaG91bGQgZmFpbCB0byBzZXQgdG8gYW4gdW53cml0YWJsZSBsb2NhdGlvbi4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBTZXRBY3RpdmVHcm91cFVud3JpdGFibGVUZXN0KSB7CisgIC8vIENyZWF0ZSBhbiBhY3RpdmUgZ3JvdXAgdG8gYW4gdW53cml0YWJsZSBsb2NhdGlvbiAoZGV2aWNlIHJvb3QgZGlyKQorICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnNldEFjdGl2ZUdyb3VwKDMsICIvIik7CisgIEFTU0VSVF9ORShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIFJlc2V0IGFjdGl2ZSBncm91cAorICByZXMgPSBtU2VydmljZS0+c2V0QWN0aXZlR3JvdXAoa0dyb3VwSWQsIGtUbXBEaXIpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKK30KKworLy8gQWN0aXZlIGdyb3VwIHNob3VsZCBmYWlsIHRvIHNldCB0byBhIG51bGwgbG9jYXRpb24uCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgU2V0QWN0aXZlR3JvdXBOdWxsVGVzdCkgeworICAvLyBDcmVhdGUgYW4gYWN0aXZlIGdyb3VwIHRvIGEgbnVsbCBsb2NhdGlvbi4KKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5zZXRBY3RpdmVHcm91cCg0LCBudWxscHRyKTsKKyAgQVNTRVJUX05FKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gUmVzZXQgYWN0aXZlIGdyb3VwCisgIHJlcyA9IG1TZXJ2aWNlLT5zZXRBY3RpdmVHcm91cChrR3JvdXBJZCwga1RtcERpcik7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworfQorCisvLyBDYW5jZWwgc2hvdWxkIGFsd2F5cyByZXR1cm4gRVJST1JfQ0FOQ0VMRUQgZnJvbSBhbnkgc3RhcnRpbmcgc3RhdGUgaW5jbHVkaW5nCisvLyB0aGUgSURMRSBzdGF0ZS4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBDYW5jZWxUZXN0KSB7CisgIHNwPEVycm9yQ2FsbGJhY2s+IGNiID0gbmV3IEVycm9yQ2FsbGJhY2sodHJ1ZSwgRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVUwsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+Y2FuY2VsKCk7CisgIC8vIGNoZWNrIHRoYXQgd2Ugd2VyZSBhYmxlIHRvIG1ha2UgYW4gSVBDIHJlcXVlc3Qgc3VjY2Vzc2Z1bGx5CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIG1ha2Ugc3VyZSBjYWxsYmFjayB3YXMgaW52b2tlZCB3aXRoaW4ga1RpbWVvdXRJblNlY29uZHMKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworICAvLyBjaGVjayBlcnJvciBzaG91bGQgYmUgRVJST1JfQ0FOQ0VMRUQKKyAgQVNTRVJUX0VRKEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVELCBjYi0+ZXJyb3IpOworfQorCisvLyBBIGNhbGwgdG8gY2FuY2VsIHNob3VsZCBzdWNjZWVkIGR1cmluZyBlbnJvbGwuCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgQ2FuY2VsRW5yb2xsVGVzdCkgeworICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnNldEFjdGl2ZUdyb3VwKGtHcm91cElkLCBrVG1wRGlyKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgc3A8RXJyb3JDYWxsYmFjaz4gY2IgPSBuZXcgRXJyb3JDYWxsYmFjayh0cnVlLCBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKKworICB1aW50OF90IHRva2VuWzY5XTsKKyAgcmVzID0gbVNlcnZpY2UtPmVucm9sbCh0b2tlbiwga0dyb3VwSWQsIGtUaW1lb3V0KTsKKyAgLy8gY2hlY2sgdGhhdCB3ZSB3ZXJlIGFibGUgdG8gbWFrZSBhbiBJUEMgcmVxdWVzdCBzdWNjZXNzZnVsbHkKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgcmVzID0gbVNlcnZpY2UtPmNhbmNlbCgpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBtYWtlIHN1cmUgY2FsbGJhY2sgd2FzIGludm9rZWQgd2l0aGluIGtUaW1lb3V0SW5TZWNvbmRzCisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKKworICAvLyBjaGVjayBlcnJvciBzaG91bGQgYmUgRVJST1JfQ0FOQ0VMRUQKKyAgQVNTRVJUX0VRKEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVELCBjYi0+ZXJyb3IpOworfQorCisvLyBBIGNhbGwgdG8gY2FuY2VsIHNob3VsZCBzdWNjZWVkIGR1cmluZyBhdXRoZW50aWNhdGlvbi4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBDYW5jZWxBdXRoVGVzdCkgeworICBzcDxFcnJvckNhbGxiYWNrPiBjYiA9IG5ldyBFcnJvckNhbGxiYWNrKHRydWUsIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVEKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFUsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+YXV0aGVudGljYXRlKDAsIGtHcm91cElkKTsKKyAgLy8gY2hlY2sgdGhhdCB3ZSB3ZXJlIGFibGUgdG8gbWFrZSBhbiBJUEMgcmVxdWVzdCBzdWNjZXNzZnVsbHkKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgcmVzID0gbVNlcnZpY2UtPmNhbmNlbCgpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBtYWtlIHN1cmUgY2FsbGJhY2sgd2FzIGludm9rZWQgd2l0aGluIGtUaW1lb3V0SW5TZWNvbmRzCisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKKworICAvLyBjaGVjayBlcnJvciBzaG91bGQgYmUgRVJST1JfQ0FOQ0VMRUQKKyAgQVNTRVJUX0VRKEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVELCBjYi0+ZXJyb3IpOworfQorCisvLyBBIGNhbGwgdG8gY2FuY2VsIHNob3VsZCBzdWNjZWVkIGR1cmluZyBhdXRoZW50aWNhdGlvbi4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBDYW5jZWxSZW1vdmVUZXN0KSB7CisgIHNwPEVycm9yQ2FsbGJhY2s+IGNiID0gbmV3IEVycm9yQ2FsbGJhY2sodHJ1ZSwgRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgLy8gUmVtb3ZlIGEgZmluZ2VycHJpbnQKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5yZW1vdmUoa0dyb3VwSWQsIDEpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICByZXMgPSBtU2VydmljZS0+Y2FuY2VsKCk7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIG1ha2Ugc3VyZSBjYWxsYmFjayB3YXMgaW52b2tlZCB3aXRoaW4ga1RpbWVvdXRJblNlY29uZHMKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworCisgIC8vIGNoZWNrIGVycm9yIHNob3VsZCBiZSBFUlJPUl9DQU5DRUxFRAorICBBU1NFUlRfRVEoRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQsIGNiLT5lcnJvcik7Cit9CisKKy8vIEEgY2FsbCB0byBjYW5jZWwgc2hvdWxkIHN1Y2NlZWQgZHVyaW5nIGF1dGhlbnRpY2F0aW9uLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIENhbmNlbFJlbW92ZUFsbFRlc3QpIHsKKyAgc3A8RXJyb3JDYWxsYmFjaz4gY2IgPSBuZXcgRXJyb3JDYWxsYmFjayh0cnVlLCBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKKworICAvLyBSZW1vdmUgYSBmaW5nZXJwcmludAorICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnJlbW92ZShrR3JvdXBJZCwgMCk7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIHJlcyA9IG1TZXJ2aWNlLT5jYW5jZWwoKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gbWFrZSBzdXJlIGNhbGxiYWNrIHdhcyBpbnZva2VkIHdpdGhpbiBrVGltZW91dEluU2Vjb25kcworICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7CisKKyAgLy8gY2hlY2sgZXJyb3Igc2hvdWxkIGJlIEVSUk9SX0NBTkNFTEVECisgIEFTU0VSVF9FUShGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCwgY2ItPmVycm9yKTsKK30KK30gIC8vIGFub255bW91cyBuYW1lc3BhY2UKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgIHJldHVybiBzdGF0dXM7Cit9CisKZGlmZiAtLWdpdCBhL2JsdWV0b290aC8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKaW5kZXggZmVjMjI2NC4uNDZhNDk4NyAxMDA2NDQKLS0tIGEvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKKysrIGIvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTI0LDYgKzI0LDcgQEAKICAgICAgICAgInZlbmRvcl9pbnRlcmZhY2UuY2MiLAogICAgIF0sCiAgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuZnJhbWV3b3Jrcy5zY2hlZHVsZXJzZXJ2aWNlQDEuMCIsCiAgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aEAxLjAiLAogICAgICAgICAibGliYmFzZSIsCiAgICAgICAgICJsaWJjdXRpbHMiLApAQCAtNDgsNiArNDksNyBAQAogICAgIF0sCiAgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyIuIl0sCiAgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuZnJhbWV3b3Jrcy5zY2hlZHVsZXJzZXJ2aWNlQDEuMCIsCiAgICAgICAgICJsaWJsb2ciLAogICAgIF0sCiB9CkBAIC04NCw5ICs4NiwxMSBAQAogICAgICAgICAidGVzdCIsCiAgICAgXSwKICAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5mcmFtZXdvcmtzLnNjaGVkdWxlcnNlcnZpY2VAMS4wIiwKICAgICAgICAgImxpYmJhc2UiLAogICAgICAgICAibGliaGlkbGJhc2UiLAogICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKICAgICBdLAogICAgIHN0YXRpY19saWJzOiBbCiAgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aC1hc3luYyIsCmRpZmYgLS1naXQgYS9ibHVldG9vdGgvMS4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2JsdWV0b290aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCmluZGV4IDM4Mjk0YzcuLjJkY2IwNjcgMTAwNjQ0Ci0tLSBhL2JsdWV0b290aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCisrKyBiL2JsdWV0b290aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0zNSw1ICszNSw2IEBACiAgIGxpYmhpZGxiYXNlIFwKICAgbGliaGlkbHRyYW5zcG9ydCBcCiAgIGFuZHJvaWQuaGFyZHdhcmUuYmx1ZXRvb3RoQDEuMCBcCisgIGFuZHJvaWQuZnJhbWV3b3Jrcy5zY2hlZHVsZXJzZXJ2aWNlQDEuMFwKIAogaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ibHVldG9vdGgvMS4wL2RlZmF1bHQvYXN5bmNfZmRfd2F0Y2hlci5jYyBiL2JsdWV0b290aC8xLjAvZGVmYXVsdC9hc3luY19mZF93YXRjaGVyLmNjCmluZGV4IDA1YWM1MzcuLmFiOGQ1NTUgMTAwNjQ0Ci0tLSBhL2JsdWV0b290aC8xLjAvZGVmYXVsdC9hc3luY19mZF93YXRjaGVyLmNjCisrKyBiL2JsdWV0b290aC8xLjAvZGVmYXVsdC9hc3luY19mZF93YXRjaGVyLmNjCkBAIC0xNCw2ICsxNCw4IEBACiAvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KIC8vCiAKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5ibHVldG9vdGhAMS4wLWltcGwiCisKICNpbmNsdWRlICJhc3luY19mZF93YXRjaGVyLmgiCiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CkBAIC0yMiwxMyArMjQsMTggQEAKICNpbmNsdWRlIDxtYXA+CiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dGhyZWFkPgorI2luY2x1ZGUgPHV0aWxzL0xvZy5oPgogI2luY2x1ZGUgPHZlY3Rvcj4KICNpbmNsdWRlICJmY250bC5oIgogI2luY2x1ZGUgInN5cy9zZWxlY3QuaCIKICNpbmNsdWRlICJ1bmlzdGQuaCIKIAorI2luY2x1ZGUgPGFuZHJvaWQvZnJhbWV3b3Jrcy9zY2hlZHVsZXJzZXJ2aWNlLzEuMC9JU2NoZWR1bGluZ1BvbGljeVNlcnZpY2UuaD4KKwogc3RhdGljIGNvbnN0IGludCBJTlZBTElEX0ZEID0gLTE7CiAKK3N0YXRpYyBjb25zdCBpbnQgQlRfUlRfUFJJT1JJVFkgPSAxOworCiBuYW1lc3BhY2UgYW5kcm9pZCB7CiBuYW1lc3BhY2UgaGFyZHdhcmUgewogbmFtZXNwYWNlIGJsdWV0b290aCB7CkBAIC0xMTIsNiArMTE5LDIxIEBACiB9CiAKIHZvaWQgQXN5bmNGZFdhdGNoZXI6OlRocmVhZFJvdXRpbmUoKSB7CisgIHVzaW5nIDo6YW5kcm9pZDo6ZnJhbWV3b3Jrczo6c2NoZWR1bGVyc2VydmljZTo6VjFfMDo6SVNjaGVkdWxpbmdQb2xpY3lTZXJ2aWNlOworICB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47CisgIHNwPElTY2hlZHVsaW5nUG9saWN5U2VydmljZT4gbWFuYWdlciA9IElTY2hlZHVsaW5nUG9saWN5U2VydmljZTo6Z2V0U2VydmljZSgpOworICBpZiAobWFuYWdlciA9PSBudWxscHRyKSB7CisgICAgQUxPR0UoIiVzOiBDb3VsZG4ndCBnZXQgc2NoZWR1bGVyIG1hbmFnZXIgdG8gc2V0IFNDSEVEX0ZJRk8uIiwgX19mdW5jX18pOworICB9IGVsc2UgeworICAgIFJldHVybjxib29sPiByZXQgPSBtYW5hZ2VyLT5yZXF1ZXN0UHJpb3JpdHkoZ2V0cGlkKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXR0aWQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJUX1JUX1BSSU9SSVRZKTsKKyAgICBpZiAoIXJldC5pc09rKCkgfHwgIXJldCkgeworICAgICAgQUxPR0UoIiVzIHVuYWJsZSB0byBzZXQgU0NIRURfRklGTyBmb3IgcGlkICVkLCB0aWQgJWQiLCBfX2Z1bmNfXywKKyAgICAgICAgICAgIGdldHBpZCgpLCBnZXR0aWQoKSk7CisgICAgfQorICB9CisKICAgd2hpbGUgKHJ1bm5pbmdfKSB7CiAgICAgZmRfc2V0IHJlYWRfZmRzOwogICAgIEZEX1pFUk8oJnJlYWRfZmRzKTsKZGlmZiAtLWdpdCBhL2Jvb3QvMS4wL2RlZmF1bHQvQm9vdENvbnRyb2wuY3BwIGIvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5jcHAKaW5kZXggODNlZTFkMi4uOWE5MDA3NiAxMDA2NDQKLS0tIGEvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5jcHAKKysrIGIvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5jcHAKQEAgLTEsMyArMSwxOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCiAjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuYm9vdEAxLjAtaW1wbCIKIAogI2luY2x1ZGUgPGxvZy9sb2cuaD4KZGlmZiAtLWdpdCBhL2Jvb3QvMS4wL2RlZmF1bHQvQm9vdENvbnRyb2wuaCBiL2Jvb3QvMS4wL2RlZmF1bHQvQm9vdENvbnRyb2wuaAppbmRleCBiZThhODE0Li4zZDY2OGRjIDEwMDY0NAotLS0gYS9ib290LzEuMC9kZWZhdWx0L0Jvb3RDb250cm9sLmgKKysrIGIvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5oCkBAIC0xLDMgKzEsMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLwogI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0JPT1RfVjFfMF9CT09UQ09OVFJPTF9ICiAjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQk9PVF9WMV8wX0JPT1RDT05UUk9MX0gKIApkaWZmIC0tZ2l0IGEvYm9vdC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2Jvb3QvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKaW5kZXggMjQ3ZTQwZS4uZjM5OTZlZiAxMDA2NDQKLS0tIGEvYm9vdC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcAorKysgYi9ib290LzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0xLDMgKzEsMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLwogI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmJvb3RAMS4wLXNlcnZpY2UiCiAKICNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jvb3QvMS4wL0lCb290Q29udHJvbC5oPgpkaWZmIC0tZ2l0IGEvYm9vdC8xLjAvdnRzL0FuZHJvaWQuYnAgYi9ib290LzEuMC92dHMvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWVmNDZiCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC8xLjAvdnRzL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzIEBACitzdWJkaXJzID0gWworICAgICIqIgorXQpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rIGIvYm9vdC8xLjAvdnRzL0FuZHJvaWQubWsKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHJhZGlvLzEuMC92dHMvQW5kcm9pZC5tawpyZW5hbWUgdG8gYm9vdC8xLjAvdnRzL0FuZHJvaWQubWsKZGlmZiAtLWdpdCBhL2Jvb3QvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9ib290LzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViMTRmNTQKLS0tIC9kZXYvbnVsbAorKysgYi9ib290LzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzUgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxCb290VjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEJvb3RWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJvb3RAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CmRpZmYgLS1naXQgYS9ib290LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxCb290VjFfMFRhcmdldFRlc3QuY3BwIGIvYm9vdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQm9vdFYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDhhOTVkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQm9vdFYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYm9vdF9oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxjdXRpbHMvcHJvcGVydGllcy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ib290LzEuMC9JQm9vdENvbnRyb2wuaD4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpib290OjpWMV8wOjpJQm9vdENvbnRyb2w7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpib290OjpWMV8wOjpDb21tYW5kUmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Ym9vdDo6VjFfMDo6Qm9vbFJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJvb3Q6OlYxXzA6OlNsb3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyBzdGQ6OnN0cmluZzsKK3VzaW5nIHN0ZDo6dmVjdG9yOworCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciB0aGUgQm9vdCBISURMIEhBTC4KK2NsYXNzIEJvb3RIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgYm9vdCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElCb290Q29udHJvbD4oKTsKKyAgICBBU1NFUlRfTkUoYm9vdCwgbnVsbHB0cik7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHNwPElCb290Q29udHJvbD4gYm9vdDsKK307CisKK2F1dG8gZ2VuZXJhdGVfY2FsbGJhY2soQ29tbWFuZFJlc3VsdCAqZGVzdCkgeworICByZXR1cm4gWz1dKENvbW1hbmRSZXN1bHQgY3IpIHsgKmRlc3QgPSBjcjsgfTsKK30KKworLy8gU2FuaXR5IGNoZWNrIEJvb3Q6OmdldE51bWJlclNsb3RzKCkuCitURVNUX0YoQm9vdEhpZGxUZXN0LCBHZXROdW1iZXJTbG90cykgeworICB1aW50MzJfdCBzbG90cyA9IGJvb3QtPmdldE51bWJlclNsb3RzKCk7CisgIEVYUEVDVF9MRSgodWludDMyX3QpMiwgc2xvdHMpOworfQorCisvLyBTYW5pdHkgY2hlY2sgQm9vdDo6Z2V0Q3VycmVudFNsb3QoKS4KK1RFU1RfRihCb290SGlkbFRlc3QsIEdldEN1cnJlbnRTbG90KSB7CisgIFNsb3QgY3VyU2xvdCA9IGJvb3QtPmdldEN1cnJlbnRTbG90KCk7CisgIHVpbnQzMl90IHNsb3RzID0gYm9vdC0+Z2V0TnVtYmVyU2xvdHMoKTsKKyAgRVhQRUNUX0xUKGN1clNsb3QsIHNsb3RzKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIEJvb3Q6Om1hcmtCb290U3VjY2Vzc2Z1bCgpLgorVEVTVF9GKEJvb3RIaWRsVGVzdCwgTWFya0Jvb3RTdWNjZXNzZnVsKSB7CisgIENvbW1hbmRSZXN1bHQgY3I7CisgIFJldHVybjx2b2lkPiByZXN1bHQgPSBib290LT5tYXJrQm9vdFN1Y2Nlc3NmdWwoZ2VuZXJhdGVfY2FsbGJhY2soJmNyKSk7CisgIEFTU0VSVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICBpZiAoY3Iuc3VjY2VzcykgeworICAgIFNsb3QgY3VyU2xvdCA9IGJvb3QtPmdldEN1cnJlbnRTbG90KCk7CisgICAgQm9vbFJlc3VsdCByZXQgPSBib290LT5pc1Nsb3RNYXJrZWRTdWNjZXNzZnVsKGN1clNsb3QpOworICAgIEVYUEVDVF9FUShCb29sUmVzdWx0OjpUUlVFLCByZXQpOworICB9Cit9CisKKy8vIFNhbml0eSBjaGVjayBCb290OjpzZXRBY3RpdmVCb290U2xvdCgpIG9uIGdvb2QgYW5kIGJhZCBpbnB1dHMuCitURVNUX0YoQm9vdEhpZGxUZXN0LCBTZXRBY3RpdmVCb290U2xvdCkgeworICBmb3IgKFNsb3QgcyA9IDA7IHMgPCAyOyBzKyspIHsKKyAgICBDb21tYW5kUmVzdWx0IGNyOworICAgIFJldHVybjx2b2lkPiByZXN1bHQgPSBib290LT5zZXRBY3RpdmVCb290U2xvdChzLCBnZW5lcmF0ZV9jYWxsYmFjaygmY3IpKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgfQorICB7CisgICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBmbGFncyB0byBhdm9pZCBwcm9ibGVtcyBvbiByZWJvb3QKKyAgICBDb21tYW5kUmVzdWx0IGNyOworICAgIFJldHVybjx2b2lkPiByZXN1bHQgPSBib290LT5tYXJrQm9vdFN1Y2Nlc3NmdWwoZ2VuZXJhdGVfY2FsbGJhY2soJmNyKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX1RSVUUoY3Iuc3VjY2Vzcyk7CisgIH0KKyAgeworICAgIENvbW1hbmRSZXN1bHQgY3I7CisgICAgdWludDMyX3Qgc2xvdHMgPSBib290LT5nZXROdW1iZXJTbG90cygpOworICAgIFJldHVybjx2b2lkPiByZXN1bHQgPQorICAgICAgICBib290LT5zZXRBY3RpdmVCb290U2xvdChzbG90cywgZ2VuZXJhdGVfY2FsbGJhY2soJmNyKSk7CisgICAgQVNTRVJUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKGZhbHNlLCBjci5zdWNjZXNzKTsKKyAgfQorfQorCisvLyBTYW5pdHkgY2hlY2sgQm9vdDo6c2V0U2xvdEFzVW5ib290YWJsZSgpIG9uIGdvb2QgYW5kIGJhZCBpbnB1dHMuCitURVNUX0YoQm9vdEhpZGxUZXN0LCBTZXRTbG90QXNVbmJvb3RhYmxlKSB7CisgIHsKKyAgICBDb21tYW5kUmVzdWx0IGNyOworICAgIFNsb3QgY3VyU2xvdCA9IGJvb3QtPmdldEN1cnJlbnRTbG90KCk7CisgICAgU2xvdCBvdGhlclNsb3QgPSBjdXJTbG90ID8gMCA6IDE7CisgICAgUmV0dXJuPHZvaWQ+IHJlc3VsdCA9CisgICAgICAgIGJvb3QtPnNldFNsb3RBc1VuYm9vdGFibGUob3RoZXJTbG90LCBnZW5lcmF0ZV9jYWxsYmFjaygmY3IpKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICBpZiAoY3Iuc3VjY2VzcykgeworICAgICAgRVhQRUNUX0VRKEJvb2xSZXN1bHQ6OkZBTFNFLCBib290LT5pc1Nsb3RCb290YWJsZShvdGhlclNsb3QpKTsKKworICAgICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBmbGFncyB0byBhdm9pZCBwcm9ibGVtcyBvbiByZWJvb3QKKyAgICAgIHJlc3VsdCA9IGJvb3QtPnNldEFjdGl2ZUJvb3RTbG90KG90aGVyU2xvdCwgZ2VuZXJhdGVfY2FsbGJhY2soJmNyKSk7CisgICAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICAgIEVYUEVDVF9UUlVFKGNyLnN1Y2Nlc3MpOworICAgICAgcmVzdWx0ID0gYm9vdC0+c2V0QWN0aXZlQm9vdFNsb3QoY3VyU2xvdCwgZ2VuZXJhdGVfY2FsbGJhY2soJmNyKSk7CisgICAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICAgIEVYUEVDVF9UUlVFKGNyLnN1Y2Nlc3MpOworICAgICAgcmVzdWx0ID0gYm9vdC0+bWFya0Jvb3RTdWNjZXNzZnVsKGdlbmVyYXRlX2NhbGxiYWNrKCZjcikpOworICAgICAgRVhQRUNUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgICAgICBFWFBFQ1RfVFJVRShjci5zdWNjZXNzKTsKKyAgICB9CisgIH0KKyAgeworICAgIENvbW1hbmRSZXN1bHQgY3I7CisgICAgdWludDMyX3Qgc2xvdHMgPSBib290LT5nZXROdW1iZXJTbG90cygpOworICAgIFJldHVybjx2b2lkPiByZXN1bHQgPQorICAgICAgICBib290LT5zZXRTbG90QXNVbmJvb3RhYmxlKHNsb3RzLCBnZW5lcmF0ZV9jYWxsYmFjaygmY3IpKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoZmFsc2UsIGNyLnN1Y2Nlc3MpOworICB9Cit9CisKKy8vIFNhbml0eSBjaGVjayBCb290Ojppc1Nsb3RCb290YWJsZSgpIG9uIGdvb2QgYW5kIGJhZCBpbnB1dHMuCitURVNUX0YoQm9vdEhpZGxUZXN0LCBJc1Nsb3RCb290YWJsZSkgeworICBmb3IgKFNsb3QgcyA9IDA7IHMgPCAyOyBzKyspIHsKKyAgICBFWFBFQ1RfTkUoQm9vbFJlc3VsdDo6SU5WQUxJRF9TTE9ULCBib290LT5pc1Nsb3RCb290YWJsZShzKSk7CisgIH0KKyAgdWludDMyX3Qgc2xvdHMgPSBib290LT5nZXROdW1iZXJTbG90cygpOworICBFWFBFQ1RfRVEoQm9vbFJlc3VsdDo6SU5WQUxJRF9TTE9ULCBib290LT5pc1Nsb3RCb290YWJsZShzbG90cykpOworfQorCisvLyBTYW5pdHkgY2hlY2sgQm9vdDo6aXNTbG90TWFya2VkU3VjY2Vzc2Z1bCgpIG9uIGdvb2QgYW5kIGJhZCBpbnB1dHMuCitURVNUX0YoQm9vdEhpZGxUZXN0LCBJc1Nsb3RNYXJrZWRTdWNjZXNzZnVsKSB7CisgIGZvciAoU2xvdCBzID0gMDsgcyA8IDI7IHMrKykgeworICAgIEVYUEVDVF9ORShCb29sUmVzdWx0OjpJTlZBTElEX1NMT1QsIGJvb3QtPmlzU2xvdE1hcmtlZFN1Y2Nlc3NmdWwocykpOworICB9CisgIHVpbnQzMl90IHNsb3RzID0gYm9vdC0+Z2V0TnVtYmVyU2xvdHMoKTsKKyAgRVhQRUNUX0VRKEJvb2xSZXN1bHQ6OklOVkFMSURfU0xPVCwgYm9vdC0+aXNTbG90TWFya2VkU3VjY2Vzc2Z1bChzbG90cykpOworfQorCisvLyBTYW5pdHkgY2hlY2sgQm9vdDo6Z2V0U3VmZml4KCkgb24gZ29vZCBhbmQgYmFkIGlucHV0cy4KK1RFU1RfRihCb290SGlkbFRlc3QsIEdldFN1ZmZpeCkgeworICAgIHN0cmluZyBzdWZmaXhTdHI7CisgICAgdmVjdG9yPHN0cmluZz4gY29ycmVjdFN1ZmZpeGVzID0geyJfYSIsICJfYiJ9OworICAgIGF1dG8gY2IgPSBbJl0oaGlkbF9zdHJpbmcgc3VmZml4KSB7IHN1ZmZpeFN0ciA9IHN1ZmZpeC5jX3N0cigpOyB9OworICAgIGZvciAoU2xvdCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICBDb21tYW5kUmVzdWx0IGNyOworICAgICAgICBSZXR1cm48dm9pZD4gcmVzdWx0ID0gYm9vdC0+Z2V0U3VmZml4KGksIGNiKTsKKyAgICAgICAgRVhQRUNUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgICAgICAgIEFTU0VSVF9FUSgwLCBzdWZmaXhTdHIuY29tcGFyZShjb3JyZWN0U3VmZml4ZXNbaV0pKTsKKyAgICB9CisgICAgeworICAgICAgICBzdHJpbmcgZW1wdHlTdWZmaXggPSAiIjsKKyAgICAgICAgUmV0dXJuPHZvaWQ+IHJlc3VsdCA9IGJvb3QtPmdldFN1ZmZpeChib290LT5nZXROdW1iZXJTbG90cygpLCBjYik7CisgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICAgICAgICBBU1NFUlRfRVEoMCwgc3VmZml4U3RyLmNvbXBhcmUoZW1wdHlTdWZmaXgpKTsKKyAgICB9Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgTE9HKElORk8pIDw8ICJUZXN0IHJlc3VsdCA9ICIgPDwgc3RhdHVzOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvYm9vdC9BbmRyb2lkLmJwIGIvYm9vdC9BbmRyb2lkLmJwCmluZGV4IGJiYjNlNGIuLjY3YWY1YmIgMTAwNjQ0Ci0tLSBhL2Jvb3QvQW5kcm9pZC5icAorKysgYi9ib290L0FuZHJvaWQuYnAKQEAgLTEsNCArMSw2IEBACiAvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCiBzdWJkaXJzID0gWwogICAgICIxLjAiLAorICAgICIxLjAvdnRzIiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKIF0KZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9BbmRyb2lkLmJwIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBjNGIyMgotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsODQgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUJyb2FkY2FzdFJhZGlvLmhhbCIsCisgICAgICAgICJJQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmhhbCIsCisgICAgICAgICJJVHVuZXIuaGFsIiwKKyAgICAgICAgIklUdW5lckNhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvQnJvYWRjYXN0UmFkaW9BbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0Jyb2FkY2FzdFJhZGlvRmFjdG9yeUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvVHVuZXJBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL1R1bmVyQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUh3QnJvYWRjYXN0UmFkaW8uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9Cbkh3QnJvYWRjYXN0UmFkaW8uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9CcEh3QnJvYWRjYXN0UmFkaW8uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9Cc0Jyb2FkY2FzdFJhZGlvLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lId0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JuSHdCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9CcEh3QnJvYWRjYXN0UmFkaW9GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvQnNCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JVHVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JSHdUdW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JuSHdUdW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JwSHdUdW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JzVHVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JVHVuZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lId1R1bmVyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9Cbkh3VHVuZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JwSHdUdW5lckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvQnNUdW5lckNhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9BbmRyb2lkLm1rIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvLmhhbCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9JQnJvYWRjYXN0UmFkaW8uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1OTliMTAKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvLmhhbApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDsKKworaW1wb3J0IElUdW5lckNhbGxiYWNrOworaW1wb3J0IElUdW5lcjsKKworaW50ZXJmYWNlIElCcm9hZGNhc3RSYWRpbyB7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBpbXBsZW1lbnRhdGlvbiBwcm9wZXJ0aWVzLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogT0sgaW4gY2FzZSBvZiBzdWNjZXNzLAorICAgICAqICAgICAgICAgICAgICAgIE5PVF9JTklUSUFMSVpFRCBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqIEByZXR1cm4gcHJvcGVydGllcyBBIFByb3BlcnRpZXMgc3RydWN0dXJlIGNvbnRhaW5pbmcgaW1wbGVtZW50YXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gYW5kIGNhcGFiaWxpdGllcy4KKyAgICAgKi8KKyAgICBnZXRQcm9wZXJ0aWVzKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0LCBQcm9wZXJ0aWVzIHByb3BlcnRpZXMpOworCisgICAgLyoqCisgICAgICogT3BlbiBhIHR1bmVyIGludGVyZmFjZSBmb3IgdGhlIHJlcXVlc3RlZCBjb25maWd1cmF0aW9uLgorICAgICAqIElmIG5vIG90aGVyIHR1bmVyIGlzIG9wZW5lZCwgdGhpcyB3aWxsIHBvd2VyIG9uIHRoZSByYWRpbyBoYXJkd2FyZS4KKyAgICAgKiBUaGUgaGFyZHdhcmUgbXVzdCBiZSBwb3dlcmVkIGRvd24gd2hlbiBhbGwgdHVuZXIgaW50ZXJmYWNlIGFyZSByZWxlYXNlZC4KKyAgICAgKiBAcGFyYW0gY29uZmlnIEEgQmFuZENvbmZpZyBzdHJ1Y3QgY29udGFpbmluZyB0aGUgYmFuZCBjb25maWd1cmF0aW9uIHRvIGFwcGx5CisgICAgICogQHBhcmFtIGF1ZGlvIFRydWUgaWYgdGhpcyB0dW5lciBtdXN0IGJlIHVzZWQgZm9yIGxpdmUgcmFkaW8gbGlzdGVuaW5nIGFuZAorICAgICAqICAgICAgICAgICAgICBzaG91bGQgYmUgY29ubmVjdGVkIHRvIHRoZSByYWRpbyBhdWRpbyBzb3VyY2UuCisgICAgICogQHBhcmFtIGNhbGxiYWNrIHRoZSBjYWxsYmFjayBpbnRlcmZhY2UKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXM6IE9LIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiBjb25maWd1cmF0aW9uIHJlcXVlc3RlZCBpcyBpbnZhbGlkLAorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgY2FsbGVkIG91dCBvZiBzZXF1ZW5jZQorICAgICAqIEByZXR1cm4gdHVuZXIgVGhlIGludGVyZmFjZSB0byBjb250cm9sIHRoZSB0dW5lcgorICAgICAqCisgICAgICogQ2FsbGJhY2sgSVR1bmVyQ2FsbGJhY2suQ29uZmlnQ2hhbmdlZCBNVVNUIGJlIGNhbGxlZCBvbmNlIHRoZQorICAgICAqIGNvbmZpZ3VyYXRpb24gaXMgYXBwbGllZCBvciBhIGZhaWx1cmUgb2NjdXJzIG9yIGFmdGVyIGEgdGltZSBvdXQuCisgICAgICovCisgICAgb3BlblR1bmVyKEJhbmRDb25maWcgY29uZmlnLCBib29sIGF1ZGlvLCBJVHVuZXJDYWxsYmFjayBjYWxsYmFjaykKKyAgICAgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQsIElUdW5lciB0dW5lcik7Cit9OwpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaGFsIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlODJiMDcKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oYWwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjA7CisKK2ltcG9ydCBJQnJvYWRjYXN0UmFkaW87CisKK2ludGVyZmFjZSBJQnJvYWRjYXN0UmFkaW9GYWN0b3J5IHsKKworICAgIC8qKgorICAgICAqIENvbm5lY3RzIHRvIGEgYnJvYWRjYXN0IHJhZGlvIEhBTCBtb2R1bGUgZm9yIGEgZ2l2ZW4gY2xhc3MKKyAgICAgKiAoQU0vRk0sIFNhdGVsbGl0ZSwgREFCKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjbGFzc0lkIENsYXNzIG9mIHRoZSBtb2R1bGUgdG8gY29ubmVjdCB0byAuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLiBSZXR1cm5zIElOVkFMSURfQVJHVU1FTlRTCisgICAgICogICAgICAgICBpZiB0aGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIGhhcmR3YXJlIG1vZHVsZSBmb3VuZCwKKyAgICAgKiAgICAgICAgIE5PVF9JTklUSUFMSVpFRCBpZiBhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBvcGVuaW5nIHRoZSBoYXJkd2FyZQorICAgICAqICAgICAgICAgbW9kdWxlLgorICAgICAqIEByZXR1cm4gcmVzdWx0IHRoZSBpbnRlcmZhY2UgZm9yIHRoZSBjcmVhdGVkIG1vZHVsZS4KKyAgICAgKi8KKyAgICBjb25uZWN0TW9kdWxlKENsYXNzIGNsYXNzSWQpCisgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIElCcm9hZGNhc3RSYWRpbyByZXN1bHQpOworfTsKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9JVHVuZXIuaGFsIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJiYmQ3YQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9JVHVuZXIuaGFsCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDsKKworaW1wb3J0IElUdW5lckNhbGxiYWNrOworCitpbnRlcmZhY2UgSVR1bmVyIHsKKworICAgIC8qKgorICAgICAqIEFwcGx5IGN1cnJlbnQgcmFkaW8gYmFuZCBjb25maWd1cmF0aW9uIChiYW5kLCByYW5nZSwgY2hhbm5lbCBzcGFjaW5nLi4uKS4KKyAgICAgKiBBdXRvbWF0aWNhbGx5IGNhbmNlbHMgcGVuZGluZyBzY2FuLCBzdGVwIG9yIHR1bmUuCisgICAgICogSVR1bmVyQ2FsbGJhY2suY29uZmlnQ2hhbmdlKCkgbWV0aG9kIE1VU1QgYmUgY2FsbGVkIG9uY2UgdGhlCisgICAgICogY29uZmlndXJhdGlvbiBpcyBhcHBsaWVkIG9yIGEgZmFpbHVyZSBvY2N1cnMgb3IgYWZ0ZXIgYSB0aW1lIG91dC4KKyAgICAgKiBAcGFyYW0gY29uZmlnIFRoZSBiYW5kIGNvbmZpZ3VyYXRpb24gdG8gYXBwbHkuCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgY29uZmlndXJhdGlvbiBjb3VsZCBiZSBhcHBsaWVkCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGluIGNhc2Ugb2YgaW5pdGlhbGl6YXRpb24gZXJyb3IuCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9BUkdVTUVOVFMgaWYgY29uZmlndXJhdGlvbiByZXF1ZXN0ZWQgaXMgaW52YWxpZAorICAgICAqCisgICAgICovCisgICAgc2V0Q29uZmlndXJhdGlvbihCYW5kQ29uZmlnIGNvbmZpZykgZ2VuZXJhdGVzKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgY3VycmVudCByYWRpbyBiYW5kIGNvbmZpZ3VyYXRpb24uCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdmFsaWQgY29uZmlndXJhdGlvbiBpcyByZXR1cm5lZCwKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaW4gY2FzZSBvZiBpbml0aWFsaXphdGlvbiBlcnJvci4KKyAgICAgKiBAcGFyYW0gY29uZmlnIEN1cnJlbnQgYmFuZCBjb25maWd1cmF0aW9uCisgICAgICovCisgICAgZ2V0Q29uZmlndXJhdGlvbigpIGdlbmVyYXRlcyhSZXN1bHQgcmVzdWx0LCBCYW5kQ29uZmlnIGNvbmZpZyk7CisKKyAgICAvKioKKyAgICAgKiBTdGFydCBzY2FubmluZyB1cCB0byBuZXh0IHZhbGlkIHN0YXRpb24uCisgICAgICogU2hhbGwgYmUgY2FsbGVkIG9ubHkgd2hlbiBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gYXBwbGllZC4KKyAgICAgKiBBdXRvbWF0aWNhbGx5IGNhbmNlbHMgcGVuZGluZyBzY2FuLCBzdGVwIG9yIHR1bmUuCisgICAgICogSVR1bmVyQ2FsbGJhY2sudHVuZUNvbXBsZXRlKCkgTVVTVCBiZSBjYWxsZWQgb25jZSBsb2NrZWQgb24gYSBzdGF0aW9uCisgICAgICogb3IgYWZ0ZXIgYSB0aW1lIG91dCBvciBmdWxsIGJhbmQgc2NhbiBpZiBubyBzdGF0aW9uIGZvdW5kLgorICAgICAqIFRoZSBzdGF0dXMgc2hvdWxkIGluZGljYXRlIGlmIGEgdmFsaWQgc3RhdGlvbiBpcyB0dW5lZCBvciBub3QuCisgICAgICogQHBhcmFtIGRpcmVjdGlvbiBVUCBvciBET1dOLgorICAgICAqIEBwYXJhbSBza2lwU3ViQ2hhbm5lbCB2YWxpZCBmb3IgSEQgcmFkaW8gb3IgZGlnaXRhbCByYWRpb3Mgb25seToKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlIHN1YiBjaGFubmVscyAoZS5nIFNQUyBmb3IgSEQgcmFkaW8pLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHNjYW4gc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCBvdXQgb2Ygc2VxdWVuY2UKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaWYgYW5vdGhlciBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBzY2FuKERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgc2tpcFN1YkNoYW5uZWwpIGdlbmVyYXRlcyhSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIE1vdmUgb25lIGNoYW5uZWwgc3BhY2luZyB1cCBvciBkb3duLgorICAgICAqIE11c3QgYmUgY2FsbGVkIHdoZW4gYSB2YWxpZCBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGFwcGxpZWQuCisgICAgICogQXV0b21hdGljYWxseSBjYW5jZWxzIHBlbmRpbmcgc2Nhbiwgc3RlcCBvciB0dW5lLgorICAgICAqIElUdW5lckNhbGxiYWNrLnR1bmVDb21wbGV0ZSgpIE1VU1QgYmUgY2FsbGVkIG9uY2UgbG9ja2VkIG9uIGEgc3RhdGlvbgorICAgICAqIG9yIGFmdGVyIGEgdGltZSBvdXQgb3IgZnVsbCBiYW5kIHNjYW4gaWYgbm8gc3RhdGlvbiBmb3VuZC4KKyAgICAgKiBUaGUgc3RhdHVzIHNob3VsZCBpbmRpY2F0ZSBpZiBhIHZhbGlkIHN0YXRpb24gaXMgdHVuZWQgb3Igbm90LgorICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gVVAgb3IgRE9XTi4KKyAgICAgKiBAcGFyYW0gc2tpcFN1YkNoYW5uZWwgdmFsaWQgZm9yIEhEIHJhZGlvIG9yIGRpZ2l0YWwgcmFkaW9zIG9ubHk6CisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZSBzdWIgY2hhbm5lbHMgKGUuZyBTUFMgZm9yIEhEIHJhZGlvKS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiBzY2FuIHN1Y2Nlc3NmdWxseSBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFub3RoZXIgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgc3RlcChEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSBnZW5lcmF0ZXMoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBUdW5lIHRvIHNwZWNpZmllZCBjaGFubmVsLgorICAgICAqIE11c3QgYmUgY2FsbGVkIHdoZW4gYSB2YWxpZCBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGFwcGxpZWQuCisgICAgICogQXV0b21hdGljYWxseSBjYW5jZWxzIHBlbmRpbmcgc2Nhbiwgc3RlcCBvciB0dW5lLgorICAgICAqIElUdW5lckNhbGxiYWNrLnR1bmVDb21wbGV0ZSgpIE1VU1QgYmUgY2FsbGVkIG9uY2UgbG9ja2VkIG9uIGEgc3RhdGlvbgorICAgICAqIG9yIGFmdGVyIGEgdGltZSBvdXQgb3IgZnVsbCBiYW5kIHNjYW4gaWYgbm8gc3RhdGlvbiBmb3VuZC4KKyAgICAgKiBUaGUgc3RhdHVzIHNob3VsZCBpbmRpY2F0ZSBpZiBhIHZhbGlkIHN0YXRpb24gaXMgdHVuZWQgb3Igbm90LgorICAgICAqIEBwYXJhbSBjaGFubmVsIENoYW5uZWwgdG8gdHVuZSB0by4gQSBmcmVxdWVuY3kgaW4ga0h6IGZvciBBTS9GTS9IRCBSYWRpbworICAgICAqICAgICAgICAgICAgICAgIGJhbmRzLgorICAgICAqIEBwYXJhbSBzdWJDaGFubmVsIFZhbGlkIGZvciBIRCByYWRpbyBvciBkaWdpdGFsIHJhZGlvcyBvbmx5CisgICAgICogICAgICAgICAgICAgICAgICAgKGUuZyBTUFMgbnVtYmVyIGZvciBIRCByYWRpbykuLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHNjYW4gc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiBpbnZhbGlkIGFyZ3VtZW50cyBhcmUgcGFzc2VkCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFub3RoZXIgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgdHVuZSh1aW50MzJfdCBjaGFubmVsLCB1aW50MzJfdCBzdWJDaGFubmVsKSBnZW5lcmF0ZXMoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBDYW5jZWwgYSBzY2FuLCBzdGVwIG9yIHR1bmUgb3BlcmF0aW9uLgorICAgICAqIFNoYWxsIGJlIGNhbGxlZCBvbmx5IHdoaWxlIGEgc2Nhbiwgc3RlcCBvciB0dW5lIG9wZXJhdGlvbiBpcyBwZW5kaW5nLgorICAgICAqIElUdW5lckNhbGxiYWNrLnR1bmVDb21wbGV0ZSgpIE1VU1QgTk9UIGJlIHNlbnQgYnkgdGhlIEhBTC4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiBzY2FuIHN1Y2Nlc3NmdWxseSBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFub3RoZXIgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgY2FuY2VsKCkgZ2VuZXJhdGVzKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgY3VycmVudCBzdGF0aW9uIGluZm9ybWF0aW9uLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHNjYW4gc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaWYgYW5vdGhlciBlcnJvciBvY2N1cnMKKyAgICAgKiBAcmV0dXJuIGluZm8gQ3VycmVudCBwcm9ncmFtIGluZm9ybWF0aW9uLgorICAgICAqLworICAgIGdldFByb2dyYW1JbmZvcm1hdGlvbigpIGdlbmVyYXRlcyhSZXN1bHQgcmVzdWx0LCBQcm9ncmFtSW5mbyBpbmZvKTsKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvSVR1bmVyQ2FsbGJhY2suaGFsIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lckNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTY2ZmY0Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lckNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDsKKworCitpbnRlcmZhY2UgSVR1bmVyQ2FsbGJhY2sgeworCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gYSBIVyBmYWlsdXJlIG9jY3Vycy4KKyAgICAgKiBUaGUgZnJhbWV3b3JrIE1VU1QgY2xvc2UgdGhlIElUdW5lciBpbnRlcmZhY2UgYW5kIG9wZW4gYSBuZXcgb25lLgorICAgICAqLworICAgIG9uZXdheSBoYXJkd2FyZUZhaWx1cmUoKTsKKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuIGEgbmV3IGNvbmZpZ3VyYXRpb24gaXMgYXBwbGllZAorICAgICAqIGluIHJlc3BvbnNlIHRvIElEZXZpY2Uub3BlblR1bmVyKCkgb3IgSVR1bmVyLnNldENvbmZpZ3VyYXRpb24oKS4KKyAgICAgKiBAcGFyYW0gcmVzdWx0IE9LIGlmIHRoZSBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGFwcGxpZWQsCisgICAgICogICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiBub3Qgb3IgVElNRU9VVCBpbiBjYXNlIG9mIHRpbWUgb3V0LgorICAgICAqIEBwYXJhbSBjb25maWcgQSBCYW5kQ29uZmlnIHN0cnVjdHVyZSBkZXNjcmliaW5nIHRoZSBuZXcgY29uZmlndXJhdGlvbgorICAgICAqICAgICAgICAgICAgICAgYXBwbGllZC4KKyAgICAgKi8KKyAgICBvbmV3YXkgY29uZmlnQ2hhbmdlKFJlc3VsdCByZXN1bHQsIEJhbmRDb25maWcgY29uZmlnKTsKKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuIGEgdHVuaW5nIG9wZXJhdGlvbiBjb21wbGV0ZXMKKyAgICAgKiBmb2xsb3dpbmcgYSBzdGVwKCksIHNjYW4oKSBvciB0dW5lKCkgY29tbWFuZC4KKyAgICAgKiBAcGFyYW0gcmVzdWx0IE9LIGlmIHR1bmUgc3VjY2VlZGVkIG9yIFRJTUVPVVQgaW4gY2FzZSBvZiB0aW1lIG91dC4KKyAgICAgKiBAcGFyYW0gaW5mbyBBIFByb2dyYW1JbmZvIHN0cnVjdHVyZSBkZXNjcmliaW5nIHRoZSB0dW5lZCBzdGF0aW9uLgorICAgICAqLworICAgIG9uZXdheSB0dW5lQ29tcGxldGUoUmVzdWx0IHJlc3VsdCwgUHJvZ3JhbUluZm8gaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiBhIGZyZXF1ZW5jeSBzd2l0Y2ggb2NjdXJzLgorICAgICAqIEBwYXJhbSBpbmZvIEEgUHJvZ3JhbUluZm8gc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIG5ldyB0dW5lZCBzdGF0aW9uLgorICAgICAqLworICAgIG9uZXdheSBhZlN3aXRjaChQcm9ncmFtSW5mbyBpbmZvKTsKKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuIHRoZSBhbnRlbm5hIGNvbm5lY3Rpb24gc3RhdGUgY2hhbmdlcy4KKyAgICAgKiBAcGFyYW0gY29ubmVjdGVkIFRydWUgaWYgdGhlIGFudGVubmEgaXMgY29ubmVjdGVkLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICovCisgICAgb25ld2F5IGFudGVubmFTdGF0ZUNoYW5nZShib29sIGNvbm5lY3RlZCk7CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiBhIHRyYWZmaWMgYW5ub3VuY2VtZW50IHN0YXJ0cyBvcgorICAgICAqIHN0b3BzLgorICAgICAqIEBwYXJhbSBhY3RpdmUgVHJ1ZSBpZiB0aGUgYW5ub3VuY2VtZW50IHN0YXJ0cywgZmFsc2UgaWYgaXQgc3RvcHMuCisgICAgICovCisgICAgb25ld2F5IHRyYWZmaWNBbm5vdW5jZW1lbnQoYm9vbCBhY3RpdmUpOworCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gYW4gZW1lcmdlbmN5IGFubm91bmNlbWVudCBzdGFydHMKKyAgICAgKiBvciBzdG9wcy4KKyAgICAgKiBAcGFyYW0gYWN0aXZlIFRydWUgaWYgdGhlIGFubm91bmNlbWVudCBzdGFydHMsIGZhbHNlIGlmIGl0IHN0b3BzLgorICAgICAqLworICAgIG9uZXdheSBlbWVyZ2VuY3lBbm5vdW5jZW1lbnQoYm9vbCBhY3RpdmUpOworCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gbWV0YWRhdGEgZm9yIGN1cnJlbnQgc3RhdGlvbgorICAgICAqIGFyZSB1cGRhdGVkLgorICAgICAqIEBwYXJhbSBjaGFubmVsIFRoZSBjaGFubmVsIHRoZSBtZXRhZGF0YSBpcyBhc3NvY2lhdGVkIHdpdGguCisgICAgICogQHBhcmFtIHN1YkNoYW5uZWwgVGhlIHN1YiBjaGFubmVsIHRoZSBtZXRhZGF0YSBpcyBhc3NvY2lhdGVkIHdpdGguCisgICAgICogQHBhcmFtIG1ldGFkYXRhIEEgbGlzdCBvZiBhbGwgdXBkYXRlZCBtZXRhZGEuCisgICAgICovCisgICAgb25ld2F5IG5ld01ldGFkYXRhKHVpbnQzMl90IGNoYW5uZWwsIHVpbnQzMl90IHN1YkNoYW5uZWwsIHZlYzxNZXRhRGF0YT4gIG1ldGFkYXRhKTsKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjMyNTk1Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDI4IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBCcm9hZGNhc3RSYWRpby5jcHAgXAorICAgIEJyb2FkY2FzdFJhZGlvRmFjdG9yeS5jcHAgXAorICAgIFR1bmVyLmNwcCBcCisgICAgVXRpbHMuY3BwCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGlibG9nIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAgXAorICAgIGxpYnJhZGlvX21ldGFkYXRhCisKK2lmZXEgKCQoc3RyaXAgJChBVURJT1NFUlZFUl9NVUxUSUxJQikpLCkKK0xPQ0FMX01VTFRJTElCIDo9IDMyCitlbHNlCitMT0NBTF9NVUxUSUxJQiA6PSAkKEFVRElPU0VSVkVSX01VTFRJTElCKQorZW5kaWYKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uY3BwIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyY2RjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpby5jcHAKQEAgLTAsMCArMSwxNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJCcm9hZGNhc3RSYWRpbyIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL3JhZGlvLmg+CisKKyNpbmNsdWRlICJCcm9hZGNhc3RSYWRpby5oIgorI2luY2x1ZGUgIlR1bmVyLmgiCisjaW5jbHVkZSAiVXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitCcm9hZGNhc3RSYWRpbzo6QnJvYWRjYXN0UmFkaW8oQ2xhc3MgY2xhc3NJZCkKKyAgICA6IG1TdGF0dXMoUmVzdWx0OjpOT1RfSU5JVElBTElaRUQpLCBtQ2xhc3NJZChjbGFzc0lkKSwgbUh3RGV2aWNlKE5VTEwpCit7Cit9CisKK0Jyb2FkY2FzdFJhZGlvOjp+QnJvYWRjYXN0UmFkaW8oKQoreworICAgIGlmIChtSHdEZXZpY2UgIT0gTlVMTCkgeworICAgICAgICByYWRpb19od19kZXZpY2VfY2xvc2UobUh3RGV2aWNlKTsKKyAgICB9Cit9CisKK3ZvaWQgQnJvYWRjYXN0UmFkaW86Om9uRmlyc3RSZWYoKQoreworICAgIGNvbnN0IGh3X21vZHVsZV90ICptb2Q7CisgICAgaW50IHJjOworICAgIEFMT0dJKCIlcyBtQ2xhc3NJZCAlZCIsIF9fRlVOQ1RJT05fXywgbUNsYXNzSWQpOworCisgICAgbUh3RGV2aWNlID0gTlVMTDsKKyAgICBjb25zdCBjaGFyICpjbGFzc1N0cmluZyA9IFV0aWxzOjpnZXRDbGFzc1N0cmluZyhtQ2xhc3NJZCk7CisgICAgaWYgKGNsYXNzU3RyaW5nID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgY2xhc3MgSUQgJWQiLCBtQ2xhc3NJZCk7CisgICAgICAgIG1TdGF0dXMgPSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQUxPR0koIiVzIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCAlcyAlcyIsCisgICAgICAgICAgX19GVU5DVElPTl9fLCBSQURJT19IQVJEV0FSRV9NT0RVTEVfSUQsIGNsYXNzU3RyaW5nKTsKKworICAgIHJjID0gaHdfZ2V0X21vZHVsZV9ieV9jbGFzcyhSQURJT19IQVJEV0FSRV9NT0RVTEVfSUQsIGNsYXNzU3RyaW5nLCAmbW9kKTsKKyAgICBpZiAocmMgIT0gMCkgeworICAgICAgICBBTE9HRSgiY291bGRuJ3QgbG9hZCByYWRpbyBtb2R1bGUgJXMuJXMgKCVzKSIsCisgICAgICAgICAgICAgIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCwgY2xhc3NTdHJpbmcsIHN0cmVycm9yKC1yYykpOworICAgICAgICBtU3RhdHVzID0gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICByYyA9IHJhZGlvX2h3X2RldmljZV9vcGVuKG1vZCwgJm1Id0RldmljZSk7CisgICAgaWYgKHJjICE9IDApIHsKKyAgICAgICAgQUxPR0UoImNvdWxkbid0IG9wZW4gcmFkaW8gaHcgZGV2aWNlIGluICVzLiVzICglcykiLAorICAgICAgICAgICAgICBSQURJT19IQVJEV0FSRV9NT0RVTEVfSUQsICJwcmltYXJ5Iiwgc3RyZXJyb3IoLXJjKSk7CisgICAgICAgIG1Id0RldmljZSA9IE5VTEw7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1Id0RldmljZS0+Y29tbW9uLnZlcnNpb24gIT0gUkFESU9fREVWSUNFX0FQSV9WRVJTSU9OX0NVUlJFTlQpIHsKKyAgICAgICAgQUxPR0UoIndyb25nIHJhZGlvIGh3IGRldmljZSB2ZXJzaW9uICUwNHgiLCBtSHdEZXZpY2UtPmNvbW1vbi52ZXJzaW9uKTsKKyAgICAgICAgcmFkaW9faHdfZGV2aWNlX2Nsb3NlKG1Id0RldmljZSk7CisgICAgICAgIG1Id0RldmljZSA9IE5VTEw7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbVN0YXR1cyA9IFJlc3VsdDo6T0s7CisgICAgfQorfQorCitpbnQgQnJvYWRjYXN0UmFkaW86OmNsb3NlSGFsVHVuZXIoY29uc3Qgc3RydWN0IHJhZGlvX3R1bmVyICpoYWxUdW5lcikKK3sKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gLUVOT0RFVjsKKyAgICB9CisgICAgaWYgKGhhbFR1bmVyID09IDApIHsKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorICAgIHJldHVybiBtSHdEZXZpY2UtPmNsb3NlX3R1bmVyKG1Id0RldmljZSwgaGFsVHVuZXIpOworfQorCisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SUJyb2FkY2FzdFJhZGlvIGZvbGxvdy4KK1JldHVybjx2b2lkPiBCcm9hZGNhc3RSYWRpbzo6Z2V0UHJvcGVydGllcyhnZXRQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKQoreworICAgIGludCByYzsKKyAgICByYWRpb19oYWxfcHJvcGVydGllc190IGhhbFByb3BlcnRpZXM7CisgICAgUHJvcGVydGllcyBwcm9wZXJ0aWVzOworCisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJjID0gLUVOT0RFVjsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICByYyA9IG1Id0RldmljZS0+Z2V0X3Byb3BlcnRpZXMobUh3RGV2aWNlLCAmaGFsUHJvcGVydGllcyk7CisgICAgaWYgKHJjID09IDApIHsKKyAgICAgICAgVXRpbHM6OmNvbnZlcnRQcm9wZXJ0aWVzRnJvbUhhbCgmcHJvcGVydGllcywgJmhhbFByb3BlcnRpZXMpOworICAgIH0KKworZXhpdDoKKyAgICBfaGlkbF9jYihVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyksIHByb3BlcnRpZXMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBCcm9hZGNhc3RSYWRpbzo6b3BlblR1bmVyKGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZywgYm9vbCBhdWRpbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElUdW5lckNhbGxiYWNrPiYgY2FsbGJhY2ssIG9wZW5UdW5lcl9jYiBfaGlkbF9jYikKK3sKKyAgICBzcDxUdW5lcj4gdHVuZXJJbXBsID0gbmV3IFR1bmVyKGNhbGxiYWNrLCB0aGlzKTsKKworICAgIHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190IGhhbENvbmZpZzsKKyAgICBjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmhhbFR1bmVyOworICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ1RvSGFsKCZoYWxDb25maWcsICZjb25maWcpOworICAgIGludCByYyA9IG1Id0RldmljZS0+b3Blbl90dW5lcihtSHdEZXZpY2UsICZoYWxDb25maWcsIGF1ZGlvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUdW5lcjo6Y2FsbGJhY2ssIHR1bmVySW1wbC5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhhbFR1bmVyKTsKKyAgICBpZiAocmMgPT0gMCkgeworICAgICAgICB0dW5lckltcGwtPnNldEhhbFR1bmVyKGhhbFR1bmVyKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyksIHR1bmVySW1wbCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uaCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc2NGQ4MgotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9CUk9BRENBU1RSQURJT19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9CUk9BRENBU1RSQURJT19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JQnJvYWRjYXN0UmFkaW8uaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3JhZGlvLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdHJ1Y3QgQnJvYWRjYXN0UmFkaW8gOiBwdWJsaWMgSUJyb2FkY2FzdFJhZGlvIHsKKworICAgICAgICAgICAgQnJvYWRjYXN0UmFkaW8oQ2xhc3MgY2xhc3NJZCk7CisKKyAgICAgICAgICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SUJyb2FkY2FzdFJhZGlvIGZvbGxvdy4KKyAgICAgICAgICAgIFJldHVybjx2b2lkPiBnZXRQcm9wZXJ0aWVzKGdldFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiBvcGVuVHVuZXIoY29uc3QgQmFuZENvbmZpZyYgY29uZmlnLCBib29sIGF1ZGlvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJVHVuZXJDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuVHVuZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworCisgICAgLy8gUmVmQmFzZQorICAgIHZpcnR1YWwgdm9pZCBvbkZpcnN0UmVmKCk7CisKKyAgICAgICAgICAgIFJlc3VsdCAgaW5pdENoZWNrKCkgeyByZXR1cm4gbVN0YXR1czsgfQorICAgICAgICAgICAgaW50IGNsb3NlSGFsVHVuZXIoY29uc3Qgc3RydWN0IHJhZGlvX3R1bmVyICpoYWxUdW5lcik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCAgICAgfkJyb2FkY2FzdFJhZGlvKCk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqIHNDbGFzc01vZHVsZU5hbWVzW107CisKKyAgICBSZXN1bHQgY29udmVydEhhbFJlc3VsdChpbnQgcmMpOworICAgIHZvaWQgY29udmVydEJhbmRDb25maWdGcm9tSGFsKEJhbmRDb25maWcgKmNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190ICpoYWxDb25maWcpOworICAgIHZvaWQgY29udmVydFByb3BlcnRpZXNGcm9tSGFsKFByb3BlcnRpZXMgKnByb3BlcnRpZXMsCisgICAgICAgICAgICBjb25zdCByYWRpb19oYWxfcHJvcGVydGllc190ICpoYWxQcm9wZXJ0aWVzKTsKKyAgICB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnVG9IYWwocmFkaW9faGFsX2JhbmRfY29uZmlnX3QgKmhhbENvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IEJhbmRDb25maWcgKmNvbmZpZyk7CisKKyAgICBSZXN1bHQgICAgICAgICAgICAgICAgICAgbVN0YXR1czsKKyAgICBDbGFzcyAgICAgICAgICAgICAgICAgICAgbUNsYXNzSWQ7CisgICAgc3RydWN0IHJhZGlvX2h3X2RldmljZSAgKm1Id0RldmljZTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9CUk9BRENBU1RSQURJT19ICmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuY3BwIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWQyMTRjCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlICJCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIKKyNpbmNsdWRlICJCcm9hZGNhc3RSYWRpby5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeSBmb2xsb3cuCitSZXR1cm48dm9pZD4gQnJvYWRjYXN0UmFkaW9GYWN0b3J5Ojpjb25uZWN0TW9kdWxlKENsYXNzIGNsYXNzSWQsIGNvbm5lY3RNb2R1bGVfY2IgX2hpZGxfY2IpICB7CisgICAgc3A8QnJvYWRjYXN0UmFkaW8+IGltcGwgPSBuZXcgQnJvYWRjYXN0UmFkaW8oY2xhc3NJZCk7CisgICAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIGlmIChpbXBsICE9IDApIHsKKyAgICAgICAgcmV0dmFsID0gaW1wbC0+aW5pdENoZWNrKCk7CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgaW1wbCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCitJQnJvYWRjYXN0UmFkaW9GYWN0b3J5KiBISURMX0ZFVENIX0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIHJldHVybiBuZXcgQnJvYWRjYXN0UmFkaW9GYWN0b3J5KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3ZjdmNTUKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8wX0JST0FEQ0FTVFJBRElPRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9CUk9BRENBU1RSQURJT0ZBQ1RPUllfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdHJ1Y3QgQnJvYWRjYXN0UmFkaW9GYWN0b3J5IDogcHVibGljIElCcm9hZGNhc3RSYWRpb0ZhY3RvcnkgeworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeSBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGNvbm5lY3RNb2R1bGUoQ2xhc3MgY2xhc3NJZCwgY29ubmVjdE1vZHVsZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCit9OworCitleHRlcm4gIkMiIElCcm9hZGNhc3RSYWRpb0ZhY3RvcnkqIEhJRExfRkVUQ0hfSUJyb2FkY2FzdFJhZGlvRmFjdG9yeShjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8wX0JST0FEQ0FTVFJBRElPRkFDVE9SWV9ICmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9UdW5lci5jcHAgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9UdW5lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY2NDNiOAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1R1bmVyLmNwcApAQCAtMCwwICsxLDE5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiVHVuZXIiCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlICJCcm9hZGNhc3RSYWRpby5oIgorI2luY2x1ZGUgIlR1bmVyLmgiCisjaW5jbHVkZSAiVXRpbHMuaCIKKyNpbmNsdWRlIDxzeXN0ZW0vUmFkaW9NZXRhZGF0YVdyYXBwZXIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit2b2lkIFR1bmVyOjpvbkNhbGxiYWNrKHJhZGlvX2hhbF9ldmVudF90ICpoYWxFdmVudCkKK3sKKyAgICBCYW5kQ29uZmlnIGNvbmZpZzsKKyAgICBQcm9ncmFtSW5mbyBpbmZvOworICAgIGhpZGxfdmVjPE1ldGFEYXRhPiBtZXRhZGF0YTsKKworICAgIGlmIChtQ2FsbGJhY2sgIT0gMCkgeworICAgICAgICBzd2l0Y2goaGFsRXZlbnQtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9DT05GSUc6CisgICAgICAgICAgICBVdGlsczo6Y29udmVydEJhbmRDb25maWdGcm9tSGFsKCZjb25maWcsICZoYWxFdmVudC0+Y29uZmlnKTsKKyAgICAgICAgICAgIG1DYWxsYmFjay0+Y29uZmlnQ2hhbmdlKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KGhhbEV2ZW50LT5zdGF0dXMpLCBjb25maWcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUkFESU9fRVZFTlRfQU5URU5OQToKKyAgICAgICAgICAgIG1DYWxsYmFjay0+YW50ZW5uYVN0YXRlQ2hhbmdlKGhhbEV2ZW50LT5vbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9UVU5FRDoKKyAgICAgICAgICAgIFV0aWxzOjpjb252ZXJ0UHJvZ3JhbUluZm9Gcm9tSGFsKCZpbmZvLCAmaGFsRXZlbnQtPmluZm8pOworICAgICAgICAgICAgbUNhbGxiYWNrLT50dW5lQ29tcGxldGUoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoaGFsRXZlbnQtPnN0YXR1cyksIGluZm8pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUkFESU9fRVZFTlRfTUVUQURBVEE6IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGNoYW5uZWw7CisgICAgICAgICAgICB1aW50MzJfdCBzdWJfY2hhbm5lbDsKKyAgICAgICAgICAgIGlmIChyYWRpb19tZXRhZGF0YV9nZXRfY2hhbm5lbChoYWxFdmVudC0+bWV0YWRhdGEsICZjaGFubmVsLCAmc3ViX2NoYW5uZWwpID09IDApIHsKKyAgICAgICAgICAgICAgICBVdGlsczo6Y29udmVydE1ldGFEYXRhRnJvbUhhbChtZXRhZGF0YSwgaGFsRXZlbnQtPm1ldGFkYXRhKTsKKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2stPm5ld01ldGFkYXRhKGNoYW5uZWwsIHN1Yl9jaGFubmVsLCBtZXRhZGF0YSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX1RBOgorICAgICAgICAgICAgbUNhbGxiYWNrLT50cmFmZmljQW5ub3VuY2VtZW50KGhhbEV2ZW50LT5vbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9BRl9TV0lUQ0g6CisgICAgICAgICAgICBVdGlsczo6Y29udmVydFByb2dyYW1JbmZvRnJvbUhhbCgmaW5mbywgJmhhbEV2ZW50LT5pbmZvKTsKKyAgICAgICAgICAgIG1DYWxsYmFjay0+YWZTd2l0Y2goaW5mbyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9FQToKKyAgICAgICAgICAgIG1DYWxsYmFjay0+ZW1lcmdlbmN5QW5ub3VuY2VtZW50KGhhbEV2ZW50LT5vbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9IV19GQUlMVVJFOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgbUNhbGxiYWNrLT5oYXJkd2FyZUZhaWx1cmUoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCisvL3N0YXRpYwordm9pZCBUdW5lcjo6Y2FsbGJhY2socmFkaW9faGFsX2V2ZW50X3QgKmhhbEV2ZW50LCB2b2lkICpjb29raWUpCit7CisgICAgd3A8VHVuZXI+IHdlYWsocmVpbnRlcnByZXRfY2FzdDxUdW5lcio+KGNvb2tpZSkpOworICAgIHNwPFR1bmVyPiB0dW5lciA9IHdlYWsucHJvbW90ZSgpOworICAgIGlmICh0dW5lciA9PSAwKSByZXR1cm47CisgICAgdHVuZXItPm9uQ2FsbGJhY2soaGFsRXZlbnQpOworfQorCitUdW5lcjo6VHVuZXIoY29uc3Qgc3A8SVR1bmVyQ2FsbGJhY2s+JiBjYWxsYmFjaywgY29uc3Qgd3A8QnJvYWRjYXN0UmFkaW8+JiBwYXJlbnREZXZpY2UpCisgICAgOiBtSGFsVHVuZXIoTlVMTCksIG1DYWxsYmFjayhjYWxsYmFjayksIG1QYXJlbnREZXZpY2UocGFyZW50RGV2aWNlKQoreworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7Cit9CisKKworVHVuZXI6On5UdW5lcigpCit7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBjb25zdCBzcDxCcm9hZGNhc3RSYWRpbz4gcGFyZW50RGV2aWNlID0gbVBhcmVudERldmljZS5wcm9tb3RlKCk7CisgICAgaWYgKHBhcmVudERldmljZSAhPSAwKSB7CisgICAgICAgIHBhcmVudERldmljZS0+Y2xvc2VIYWxUdW5lcihtSGFsVHVuZXIpOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJVHVuZXIgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gVHVuZXI6OnNldENvbmZpZ3VyYXRpb24oY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSAgeworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgcmFkaW9faGFsX2JhbmRfY29uZmlnX3QgaGFsQ29uZmlnOworICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ1RvSGFsKCZoYWxDb25maWcsICZjb25maWcpOworICAgIGludCByYyA9IG1IYWxUdW5lci0+c2V0X2NvbmZpZ3VyYXRpb24obUhhbFR1bmVyLCAmaGFsQ29uZmlnKTsKKyAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpOworfQorCitSZXR1cm48dm9pZD4gVHVuZXI6OmdldENvbmZpZ3VyYXRpb24oZ2V0Q29uZmlndXJhdGlvbl9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQgcmM7CisgICAgcmFkaW9faGFsX2JhbmRfY29uZmlnX3QgaGFsQ29uZmlnOworICAgIEJhbmRDb25maWcgY29uZmlnOworCisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmMgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIHJjID0gbUhhbFR1bmVyLT5nZXRfY29uZmlndXJhdGlvbihtSGFsVHVuZXIsICZoYWxDb25maWcpOworICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ0Zyb21IYWwoJmNvbmZpZywgJmhhbENvbmZpZyk7CisgICAgfQorCitleGl0OgorICAgIF9oaWRsX2NiKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKSwgY29uZmlnKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBUdW5lcjo6c2NhbihEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSAgeworICAgIGlmIChtSGFsVHVuZXIgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoLUVOT0RFVik7CisgICAgfQorICAgIGludCByYyA9IG1IYWxUdW5lci0+c2NhbihtSGFsVHVuZXIsIHN0YXRpY19jYXN0PHJhZGlvX2RpcmVjdGlvbl90PihkaXJlY3Rpb24pLCBza2lwU3ViQ2hhbm5lbCk7CisgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVHVuZXI6OnN0ZXAoRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBza2lwU3ViQ2hhbm5lbCkgIHsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KC1FTk9ERVYpOworICAgIH0KKyAgICBpbnQgcmMgPSBtSGFsVHVuZXItPnN0ZXAobUhhbFR1bmVyLCBzdGF0aWNfY2FzdDxyYWRpb19kaXJlY3Rpb25fdD4oZGlyZWN0aW9uKSwgc2tpcFN1YkNoYW5uZWwpOworICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFR1bmVyOjp0dW5lKHVpbnQzMl90IGNoYW5uZWwsIHVpbnQzMl90IHN1YkNoYW5uZWwpICB7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgaW50IHJjID0gbUhhbFR1bmVyLT50dW5lKG1IYWxUdW5lciwgY2hhbm5lbCwgc3ViQ2hhbm5lbCk7CisgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVHVuZXI6OmNhbmNlbCgpICB7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgaW50IHJjID0gbUhhbFR1bmVyLT5jYW5jZWwobUhhbFR1bmVyKTsKKyAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpOworfQorCitSZXR1cm48dm9pZD4gVHVuZXI6OmdldFByb2dyYW1JbmZvcm1hdGlvbihnZXRQcm9ncmFtSW5mb3JtYXRpb25fY2IgX2hpZGxfY2IpICB7CisgICAgaW50IHJjOworICAgIHJhZGlvX3Byb2dyYW1faW5mb190IGhhbEluZm87CisgICAgUmFkaW9NZXRhZGF0YVdyYXBwZXIgbWV0YWRhdGFXcmFwcGVyKCZoYWxJbmZvLm1ldGFkYXRhKTsKKyAgICBQcm9ncmFtSW5mbyBpbmZvOworCisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmMgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgcmMgPSBtSGFsVHVuZXItPmdldF9wcm9ncmFtX2luZm9ybWF0aW9uKG1IYWxUdW5lciwgJmhhbEluZm8pOworICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgIFV0aWxzOjpjb252ZXJ0UHJvZ3JhbUluZm9Gcm9tSGFsKCZpbmZvLCAmaGFsSW5mbyk7CisgICAgfQorCitleGl0OgorICAgIF9oaWRsX2NiKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKSwgaW5mbyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1R1bmVyLmggYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9UdW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmZGQ0ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9UdW5lci5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfVFVORVJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfVFVORVJfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSVR1bmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSVR1bmVyQ2FsbGJhY2suaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3JhZGlvLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RydWN0IEJyb2FkY2FzdFJhZGlvOworCitzdHJ1Y3QgVHVuZXIgOiBwdWJsaWMgSVR1bmVyIHsKKworICAgIFR1bmVyKGNvbnN0IHNwPElUdW5lckNhbGxiYWNrPiYgY2FsbGJhY2ssIGNvbnN0IHdwPEJyb2FkY2FzdFJhZGlvPiYgbVBhcmVudERldmljZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OklUdW5lciBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlndXJhdGlvbihjb25zdCBCYW5kQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlndXJhdGlvbihnZXRDb25maWd1cmF0aW9uX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2NhbihEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RlcChEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdHVuZSh1aW50MzJfdCBjaGFubmVsLCB1aW50MzJfdCBzdWJDaGFubmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2FuY2VsKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQcm9ncmFtSW5mb3JtYXRpb24oZ2V0UHJvZ3JhbUluZm9ybWF0aW9uX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgICBzdGF0aWMgdm9pZCBjYWxsYmFjayhyYWRpb19oYWxfZXZlbnRfdCAqaGFsRXZlbnQsIHZvaWQgKmNvb2tpZSk7CisgICAgICAgICAgIHZvaWQgb25DYWxsYmFjayhyYWRpb19oYWxfZXZlbnRfdCAqaGFsRXZlbnQpOworCisgICAgdm9pZCBzZXRIYWxUdW5lcihjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmhhbFR1bmVyKSB7IG1IYWxUdW5lciA9IGhhbFR1bmVyOyB9CisgICAgY29uc3Qgc3RydWN0IHJhZGlvX3R1bmVyICpnZXRIYWxUdW5lcigpIHsgcmV0dXJuIG1IYWxUdW5lcjsgfQorCisgcHJpdmF0ZToKKyAgICB+VHVuZXIoKTsKKworICAgIGNvbnN0IHN0cnVjdCByYWRpb190dW5lciAgICAqbUhhbFR1bmVyOworICAgIGNvbnN0IHNwPElUdW5lckNhbGxiYWNrPiAgICAgbUNhbGxiYWNrOworICAgIGNvbnN0IHdwPEJyb2FkY2FzdFJhZGlvPiAgICAgbVBhcmVudERldmljZTsKK307CisKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8wX1RVTkVSX0gKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1V0aWxzLmNwcCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1V0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Nzc2MjIyCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvVXRpbHMuY3BwCkBAIC0wLDAgKzEsMjk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiQnJvYWRjYXN0UmFkaW9IYWxVdGlscyIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9taXNjLmg+CisjaW5jbHVkZSA8c3lzdGVtL3JhZGlvX21ldGFkYXRhLmg+CisKKyNpbmNsdWRlICJVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NvbnN0IGNoYXIgKlV0aWxzOjpzQ2xhc3NNb2R1bGVOYW1lc1tdID0geworICAgIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRF9GTSwgLyogY29ycmVzcG9uZHMgdG8gUkFESU9fQ0xBU1NfQU1fRk0gKi8KKyAgICBSQURJT19IQVJEV0FSRV9NT0RVTEVfSURfU0FULCAgLyogY29ycmVzcG9uZHMgdG8gUkFESU9fQ0xBU1NfU0FUICovCisgICAgUkFESU9fSEFSRFdBUkVfTU9EVUxFX0lEX0RULCAgIC8qIGNvcnJlc3BvbmRzIHRvIFJBRElPX0NMQVNTX0RUICovCit9OworCisvLyBtYWtlIHN1cmUgSElETCBlbnVtIHZhbHVlcyBhcmUgYWxpZ25lZCB3aXRoIGxlZ2FjeSB2YWx1ZXMKK3N0YXRpY19hc3NlcnQoUkFESU9fQ0xBU1NfQU1fRk0gPT0gc3RhdGljX2Nhc3Q8aW50PihDbGFzczo6QU1fRk0pLAorICAgICAgICAgICAgICAiQU0vRk0gY2xhc3MgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fQ0xBU1NfU0FUID09IHN0YXRpY19jYXN0PGludD4oQ2xhc3M6OlNBVCksCisgICAgICAgICAgICAgICJTQVQgY2xhc3MgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fQ0xBU1NfRFQgPT0gc3RhdGljX2Nhc3Q8aW50PihDbGFzczo6RFQpLAorICAgICAgICAgICAgICAiRFQgY2xhc3MgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKKworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0FNID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6QU0pLAorICAgICAgICAgICAgICAiQU0gYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0ZNID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6Rk0pLAorICAgICAgICAgICAgICAiRk0gYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0FNX0hEID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6QU1fSEQpLAorICAgICAgICAgICAgICAiQU0gSEQgYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0ZNX0hEID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6Rk1fSEQpLAorICAgICAgICAgICAgICAiRk0gSEQgYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworCitzdGF0aWNfYXNzZXJ0KFJBRElPX1JEU19OT05FID09IHN0YXRpY19jYXN0PGludD4oUmRzOjpOT05FKSwKKyAgICAgICAgICAgICAgIlJEUyBOT05FIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX1JEU19XT1JMRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFJkczo6V09STEQpLAorICAgICAgICAgICAgICAiUkRTIFdPUkxEIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX1JEU19VUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KFJkczo6VVMpLAorICAgICAgICAgICAgICAiUkRTIFVTIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fREVFTVBIQVNJU181MCA9PSBzdGF0aWNfY2FzdDxpbnQ+KERlZW1waGFzaXM6OkQ1MCksCisgICAgICAgICAgICAgICJEZS1lbXBoYXNpcyA1MCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19ERUVNUEhBU0lTXzc1ID09IHN0YXRpY19jYXN0PGludD4oRGVlbXBoYXNpczo6RDc1KSwKKyAgICAgICAgICAgICAgIkRlLWVtcGhhc2lzIDc1IG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fRElSRUNUSU9OX1VQID09IHN0YXRpY19jYXN0PGludD4oRGlyZWN0aW9uOjpVUCksCisgICAgICAgICAgICAgICJEaXJlY3Rpb24gVXAgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fRElSRUNUSU9OX0RPV04gPT0gc3RhdGljX2Nhc3Q8aW50PihEaXJlY3Rpb246OkRPV04pLAorICAgICAgICAgICAgICAiRGlyZWN0aW9uIFVwIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfVFlQRV9JTlZBTElEID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFUeXBlOjpJTlZBTElEKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIHR5cGUgSU5WQUxJRCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9UWVBFX0lOVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhVHlwZTo6SU5UKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIHR5cGUgSU5UIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX1RZUEVfVEVYVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhVHlwZTo6VEVYVCksCisgICAgICAgICAgICAgICJNZXRhZGF0YSB0eXBlIFRFWFQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfVFlQRV9SQVcgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YVR5cGU6OlJBVyksCisgICAgICAgICAgICAgICJNZXRhZGF0YSB0eXBlIFJBVyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9UWVBFX0NMT0NLID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFUeXBlOjpDTE9DSyksCisgICAgICAgICAgICAgICJNZXRhZGF0YSB0eXBlIENMT0NLIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0lOVkFMSUQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6SU5WQUxJRCksCisgICAgICAgICAgICAgICJNZXRhZGF0YSBrZXkgSU5WQUxJRCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfUkRTX1BJID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OlJEU19QSSksCisgICAgICAgICAgICAgICJNZXRhZGF0YSBrZXkgUkRTX1BJIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9SRFNfUFMgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1BTKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBSRFNfUFMgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX1JEU19QVFkgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1BUWSksCisgICAgICAgICAgICAgICJNZXRhZGF0YSBrZXkgUkRTX1BUWSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfUkJEU19QVFkgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkJEU19QVFkpLAorICAgICAgICAgICAgICAiTWV0YWRhdGEga2V5IFJCRFNfUFRZIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9SRFNfUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1JUKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBSRFNfUlQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX1RJVExFID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OlRJVExFKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBUSVRMRSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfQVJUSVNUID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkFSVElTVCksCisgICAgICAgICAgICAgICJNZXRhZGF0YSBrZXkgQVJUSVNUIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9BTEJVTSA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpBTEJVTSksCisgICAgICAgICAgICAgICJNZXRhZGF0YSBrZXkgQUxCVU0gbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0dFTlJFID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkdFTlJFKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBHRU5SRSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfSUNPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpJQ09OKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBJQ09OIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9BUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6QVJUKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBBUlQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0NMT0NLID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkNMT0NLKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBDTE9DSyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworCisKKy8vc3RhdGljCitjb25zdCBjaGFyICogVXRpbHM6OmdldENsYXNzU3RyaW5nKENsYXNzIENsYXNzSWQpCit7CisgICAgaW50IGlkID0gc3RhdGljX2Nhc3Q8aW50PihDbGFzc0lkKTsKKworICAgIGlmICgoaWQgPCAwKSB8fAorICAgICAgICAgICAgKGlkID49IE5FTEVNKHNDbGFzc01vZHVsZU5hbWVzKSkpIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgY2xhc3MgSUQgJWQiLCBpZCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXR1cm4gc0NsYXNzTW9kdWxlTmFtZXNbaWRdOworfQorCisvL3N0YXRpYworUmVzdWx0IFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KGludCByYykKK3sKKyAgICBzd2l0Y2ggKHJjKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgY2FzZSAtRU5PU1lTOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICAgICAgY2FzZSAtRVRJTUVET1VUOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6VElNRU9VVDsKKyAgICAgICAgY2FzZSAtRU5PREVWOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIH0KK30KKworLy9zdGF0aWMKK3ZvaWQgVXRpbHM6OmNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbCgKKyAgICAgICAgQmFuZENvbmZpZyAqY29uZmlnLAorICAgICAgICBjb25zdCByYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnKQoreworCisgICAgY29uZmlnLT50eXBlID0gc3RhdGljX2Nhc3Q8QmFuZD4oaGFsQ29uZmlnLT50eXBlKTsKKyAgICBjb25maWctPmFudGVubmFDb25uZWN0ZWQgPSBoYWxDb25maWctPmFudGVubmFfY29ubmVjdGVkOworICAgIGNvbmZpZy0+bG93ZXJMaW1pdCA9IGhhbENvbmZpZy0+bG93ZXJfbGltaXQ7CisgICAgY29uZmlnLT51cHBlckxpbWl0ID0gaGFsQ29uZmlnLT51cHBlcl9saW1pdDsKKyAgICBjb25maWctPnNwYWNpbmdzLnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1bnNpZ25lZCBpbnQgKj4oJmhhbENvbmZpZy0+c3BhY2luZ3NbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MgKiBzaXplb2YodWludDMyX3QpKTsKKyAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICBjb25maWctPnNwYWNpbmdzLnJlc2l6ZShoYWxDb25maWctPm51bV9zcGFjaW5ncyk7CisKKyAgICBpZiAoY29uZmlnLT50eXBlID09IEJhbmQ6OkZNKSB7CisgICAgICAgIGNvbmZpZy0+ZXh0LmZtLmRlZW1waGFzaXMgPSBzdGF0aWNfY2FzdDxEZWVtcGhhc2lzPihoYWxDb25maWctPmZtLmRlZW1waGFzaXMpOworICAgICAgICBjb25maWctPmV4dC5mbS5zdGVyZW8gPSBoYWxDb25maWctPmZtLnN0ZXJlbzsKKyAgICAgICAgY29uZmlnLT5leHQuZm0ucmRzID0gc3RhdGljX2Nhc3Q8UmRzPihoYWxDb25maWctPmZtLnJkcyk7CisgICAgICAgIGNvbmZpZy0+ZXh0LmZtLnRhID0gaGFsQ29uZmlnLT5mbS50YTsKKyAgICAgICAgY29uZmlnLT5leHQuZm0uYWYgPSBoYWxDb25maWctPmZtLmFmOworICAgICAgICBjb25maWctPmV4dC5mbS5lYSA9IGhhbENvbmZpZy0+Zm0uZWE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uZmlnLT5leHQuYW0uc3RlcmVvID0gaGFsQ29uZmlnLT5hbS5zdGVyZW87CisgICAgfQorfQorCisvL3N0YXRpYwordm9pZCBVdGlsczo6Y29udmVydFByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICBQcm9wZXJ0aWVzICpwcm9wZXJ0aWVzLAorICAgICAgICBjb25zdCByYWRpb19oYWxfcHJvcGVydGllc190ICpoYWxQcm9wZXJ0aWVzKQoreworICAgIHByb3BlcnRpZXMtPmNsYXNzSWQgPSBzdGF0aWNfY2FzdDxDbGFzcz4oaGFsUHJvcGVydGllcy0+Y2xhc3NfaWQpOworICAgIHByb3BlcnRpZXMtPmltcGxlbWVudG9yLnNldFRvRXh0ZXJuYWwoaGFsUHJvcGVydGllcy0+aW1wbGVtZW50b3IsIHN0cmxlbihoYWxQcm9wZXJ0aWVzLT5pbXBsZW1lbnRvcikpOworICAgIHByb3BlcnRpZXMtPnByb2R1Y3Quc2V0VG9FeHRlcm5hbChoYWxQcm9wZXJ0aWVzLT5wcm9kdWN0LCBzdHJsZW4oaGFsUHJvcGVydGllcy0+cHJvZHVjdCkpOworICAgIHByb3BlcnRpZXMtPnZlcnNpb24uc2V0VG9FeHRlcm5hbChoYWxQcm9wZXJ0aWVzLT52ZXJzaW9uLCBzdHJsZW4oaGFsUHJvcGVydGllcy0+dmVyc2lvbikpOworICAgIHByb3BlcnRpZXMtPnNlcmlhbC5zZXRUb0V4dGVybmFsKGhhbFByb3BlcnRpZXMtPnNlcmlhbCwgc3RybGVuKGhhbFByb3BlcnRpZXMtPnNlcmlhbCkpOworICAgIHByb3BlcnRpZXMtPm51bVR1bmVycyA9IGhhbFByb3BlcnRpZXMtPm51bV90dW5lcnM7CisgICAgcHJvcGVydGllcy0+bnVtQXVkaW9Tb3VyY2VzID0gaGFsUHJvcGVydGllcy0+bnVtX2F1ZGlvX3NvdXJjZXM7CisgICAgcHJvcGVydGllcy0+c3VwcG9ydHNDYXB0dXJlID0gaGFsUHJvcGVydGllcy0+c3VwcG9ydHNfY2FwdHVyZTsKKworICAgIEJhbmRDb25maWcgKmJhbmRzID0KKyAgICAgICAgICAgIG5ldyBCYW5kQ29uZmlnW2hhbFByb3BlcnRpZXMtPm51bV9iYW5kc107CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBoYWxQcm9wZXJ0aWVzLT5udW1fYmFuZHM7IGkrKykgeworICAgICAgICBjb252ZXJ0QmFuZENvbmZpZ0Zyb21IYWwoJmJhbmRzW2ldLCAmaGFsUHJvcGVydGllcy0+YmFuZHNbaV0pOworICAgIH0KKyAgICBwcm9wZXJ0aWVzLT5iYW5kcy5zZXRUb0V4dGVybmFsKGJhbmRzLCBoYWxQcm9wZXJ0aWVzLT5udW1fYmFuZHMpOworICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgIHByb3BlcnRpZXMtPmJhbmRzLnJlc2l6ZShoYWxQcm9wZXJ0aWVzLT5udW1fYmFuZHMpOworICAgIGRlbGV0ZVtdIGJhbmRzOworfQorCisvL3N0YXRpYwordm9pZCBVdGlsczo6Y29udmVydEJhbmRDb25maWdUb0hhbCgKKyAgICAgICAgcmFkaW9faGFsX2JhbmRfY29uZmlnX3QgKmhhbENvbmZpZywKKyAgICAgICAgY29uc3QgQmFuZENvbmZpZyAqY29uZmlnKQoreworCisgICAgaGFsQ29uZmlnLT50eXBlID0gc3RhdGljX2Nhc3Q8cmFkaW9fYmFuZF90Pihjb25maWctPnR5cGUpOworICAgIGhhbENvbmZpZy0+YW50ZW5uYV9jb25uZWN0ZWQgPSBjb25maWctPmFudGVubmFDb25uZWN0ZWQ7CisgICAgaGFsQ29uZmlnLT5sb3dlcl9saW1pdCA9IGNvbmZpZy0+bG93ZXJMaW1pdDsKKyAgICBoYWxDb25maWctPnVwcGVyX2xpbWl0ID0gY29uZmlnLT51cHBlckxpbWl0OworICAgIGhhbENvbmZpZy0+bnVtX3NwYWNpbmdzID0gY29uZmlnLT5zcGFjaW5ncy5zaXplKCk7CisgICAgaWYgKGhhbENvbmZpZy0+bnVtX3NwYWNpbmdzID4gUkFESU9fTlVNX1NQQUNJTkdTX01BWCkgeworICAgICAgICBoYWxDb25maWctPm51bV9zcGFjaW5ncyA9IFJBRElPX05VTV9TUEFDSU5HU19NQVg7CisgICAgfQorICAgIG1lbWNweShoYWxDb25maWctPnNwYWNpbmdzLCBjb25maWctPnNwYWNpbmdzLmRhdGEoKSwKKyAgICAgICAgICAgc2l6ZW9mKHVpbnQzMl90KSAqIGhhbENvbmZpZy0+bnVtX3NwYWNpbmdzKTsKKworICAgIGlmIChjb25maWctPnR5cGUgPT0gQmFuZDo6Rk0pIHsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS5kZWVtcGhhc2lzID0gc3RhdGljX2Nhc3Q8cmFkaW9fZGVlbXBoYXNpc190Pihjb25maWctPmV4dC5mbS5kZWVtcGhhc2lzKTsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS5zdGVyZW8gPSBjb25maWctPmV4dC5mbS5zdGVyZW87CisgICAgICAgIGhhbENvbmZpZy0+Zm0ucmRzID0gc3RhdGljX2Nhc3Q8cmFkaW9fcmRzX3Q+KGNvbmZpZy0+ZXh0LmZtLnJkcyk7CisgICAgICAgIGhhbENvbmZpZy0+Zm0udGEgPSBjb25maWctPmV4dC5mbS50YTsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS5hZiA9IGNvbmZpZy0+ZXh0LmZtLmFmOworICAgICAgICBoYWxDb25maWctPmZtLmVhID0gY29uZmlnLT5leHQuZm0uZWE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaGFsQ29uZmlnLT5hbS5zdGVyZW8gPSBjb25maWctPmV4dC5hbS5zdGVyZW87CisgICAgfQorfQorCisKKy8vc3RhdGljCit2b2lkIFV0aWxzOjpjb252ZXJ0UHJvZ3JhbUluZm9Gcm9tSGFsKFByb2dyYW1JbmZvICppbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWRpb19wcm9ncmFtX2luZm9fdCAqaGFsSW5mbykKK3sKKyAgICBpbmZvLT5jaGFubmVsID0gaGFsSW5mby0+Y2hhbm5lbDsKKyAgICBpbmZvLT5zdWJDaGFubmVsID0gaGFsSW5mby0+c3ViX2NoYW5uZWw7CisgICAgaW5mby0+dHVuZWQgPSBoYWxJbmZvLT50dW5lZDsKKyAgICBpbmZvLT5zdGVyZW8gPSBoYWxJbmZvLT5zdGVyZW87CisgICAgaW5mby0+ZGlnaXRhbCA9IGhhbEluZm8tPmRpZ2l0YWw7CisgICAgaW5mby0+c2lnbmFsU3RyZW5ndGggPSBoYWxJbmZvLT5zaWduYWxfc3RyZW5ndGg7CisgICAgY29udmVydE1ldGFEYXRhRnJvbUhhbChpbmZvLT5tZXRhZGF0YSwgaGFsSW5mby0+bWV0YWRhdGEpOworfQorCisvL3N0YXRpYworaW50IFV0aWxzOjpjb252ZXJ0TWV0YURhdGFGcm9tSGFsKGhpZGxfdmVjPE1ldGFEYXRhPiYgbWV0YWRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvX21ldGFkYXRhX3QgKmhhbE1ldGFkYXRhKQoreworICAgIGlmIChoYWxNZXRhZGF0YSA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCJJbnZhbGlkIGFyZ3VtZW50OiBoYWxNZXRhZGF0YSBpcyBOVUxMIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGludCBjb3VudCA9IHJhZGlvX21ldGFkYXRhX2dldF9jb3VudChoYWxNZXRhZGF0YSk7CisgICAgaWYgKGNvdW50IDw9IDApIHsKKyAgICAgICAgcmV0dXJuIGNvdW50OworICAgIH0KKyAgICBNZXRhRGF0YSAqbmV3TWV0YWRhdGEgPQorICAgICAgICAgICAgbmV3IE1ldGFEYXRhW2NvdW50XTsKKyAgICBpbnQgb3V0Q291bnQgPSAwOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICByYWRpb19tZXRhZGF0YV9rZXlfdCBrZXk7CisgICAgICAgIHJhZGlvX21ldGFkYXRhX3R5cGVfdCB0eXBlOworICAgICAgICB2b2lkICp2YWx1ZTsKKyAgICAgICAgc2l6ZV90IHNpemU7CisgICAgICAgIGlmIChyYWRpb19tZXRhZGF0YV9nZXRfYXRfaW5kZXgoaGFsTWV0YWRhdGEsIGkgLCAma2V5LCAmdHlwZSwgJnZhbHVlLCAmc2l6ZSkgIT0gMCB8fAorICAgICAgICAgICAgICAgIHNpemUgPT0gMCkgeworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIFJBRElPX01FVEFEQVRBX1RZUEVfSU5UOiB7CisgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLmludFZhbHVlID0gKihzdGF0aWNfY2FzdDxpbnQzMl90ICo+KHZhbHVlKSk7CisgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSQURJT19NRVRBREFUQV9UWVBFX1RFWFQ6IHsKKyAgICAgICAgICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0uc3RyaW5nVmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyICo+KHZhbHVlKTsKKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJBRElPX01FVEFEQVRBX1RZUEVfUkFXOiB7CisgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLnJhd1ZhbHVlLnNldFRvRXh0ZXJuYWwoc3RhdGljX2Nhc3Q8dWludDhfdCAqPih2YWx1ZSksIHNpemUpOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgICAgICAgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5yYXdWYWx1ZS5yZXNpemUoc2l6ZSk7CisgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSQURJT19NRVRBREFUQV9UWVBFX0NMT0NLOiB7CisgICAgICAgICAgICAgICAgICByYWRpb19tZXRhZGF0YV9jbG9ja190ICpjbG9jayA9IHN0YXRpY19jYXN0PHJhZGlvX21ldGFkYXRhX2Nsb2NrX3QgKj4odmFsdWUpOworICAgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLmNsb2NrVmFsdWUudXRjU2Vjb25kc1NpbmNlRXBvY2ggPQorICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9jay0+dXRjX3NlY29uZHNfc2luY2VfZXBvY2g7CisgICAgICAgICAgICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0uY2xvY2tWYWx1ZS50aW1lem9uZU9mZnNldEluTWludXRlcyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrLT50aW1lem9uZV9vZmZzZXRfaW5fbWludXRlczsKKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLnR5cGUgPSBzdGF0aWNfY2FzdDxNZXRhZGF0YVR5cGU+KHR5cGUpOworICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0ua2V5ID0gc3RhdGljX2Nhc3Q8TWV0YWRhdGFLZXk+KGtleSk7CisgICAgICAgIG91dENvdW50Kys7CisgICAgfQorICAgIG1ldGFkYXRhLnNldFRvRXh0ZXJuYWwobmV3TWV0YWRhdGEsIG91dENvdW50KTsKKyAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICBtZXRhZGF0YS5yZXNpemUob3V0Q291bnQpOworICAgIHJldHVybiBvdXRDb3VudDsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1V0aWxzLmggYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9VdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlZjIyYTUKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9VdGlscy5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfVVRJTFNfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfVVRJTFNfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9yYWRpby5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NsYXNzIFV0aWxzIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqIGdldENsYXNzU3RyaW5nKENsYXNzIENsYXNzSWQpOworICAgIHN0YXRpYyBSZXN1bHQgY29udmVydEhhbFJlc3VsdChpbnQgcmMpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbChCYW5kQ29uZmlnICpjb25maWcsCisgICAgICAgICAgICBjb25zdCByYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0UHJvcGVydGllc0Zyb21IYWwoUHJvcGVydGllcyAqcHJvcGVydGllcywKKyAgICAgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9wcm9wZXJ0aWVzX3QgKmhhbFByb3BlcnRpZXMpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnVG9IYWwocmFkaW9faGFsX2JhbmRfY29uZmlnX3QgKmhhbENvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IEJhbmRDb25maWcgKmNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgY29udmVydFByb2dyYW1JbmZvRnJvbUhhbChQcm9ncmFtSW5mbyAqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvX3Byb2dyYW1faW5mb190ICpoYWxJbmZvKTsKKyAgICBzdGF0aWMgaW50IGNvbnZlcnRNZXRhRGF0YUZyb21IYWwoaGlkbF92ZWM8TWV0YURhdGE+JiBtZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvX21ldGFkYXRhX3QgKmhhbE1ldGFkYXRhKTsKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBzQ2xhc3NNb2R1bGVOYW1lc1tdOworCit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfVVRJTFNfSApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL3R5cGVzLmhhbCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ1MjMxZAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjA7CisKK2VudW0gUmVzdWx0IDogaW50MzJfdCB7CisgICAgT0ssCisgICAgTk9UX0lOSVRJQUxJWkVELAorICAgIElOVkFMSURfQVJHVU1FTlRTLAorICAgIElOVkFMSURfU1RBVEUsCisgICAgVElNRU9VVCwKK307CisKKy8qKgorICogUmFkaW8gaGFyZHdhcmUgbW9kdWxlIGNsYXNzLiBBIGdpdmVuIHJhZGlvIGhhcmR3YXJlIG1vZHVsZSBIQUwgaXMgb2Ygb25lCisgKiBjbGFzcyBvbmx5LiBUaGUgcGxhdGZvcm0gY2FuIG5vdCBoYXZlIG1vcmUgdGhhbiBvbmUgaGFyZHdhcmUgbW9kdWxlIG9mCisgKiBlYWNoIGNsYXNzLiBDdXJyZW50IHZlcnNpb24gb2YgdGhlIGZyYW1ld29yayBvbmx5IHN1cHBvcnRzIFJBRElPX0NMQVNTX0FNX0ZNLgorICovCitlbnVtIENsYXNzIDogdWludDMyX3QgeworICAgIC8qKiBGTSAoaW5jbHVkaW5nIEhEIHJhZGlvKSBhbmQgQU0gKi8KKyAgICBBTV9GTSA9IDAsCisgICAgLyoqIFNhdGVsbGl0ZSBSYWRpbyAqLworICAgIFNBVCAgID0gMSwKKyAgICAvKiogRGlnaXRhbCBSYWRpbyAoREFCKSAqLworICAgIERUICAgID0gMiwKK307CisKKy8qKiB2YWx1ZSBmb3IgZmllbGQgInR5cGUiIG9mIHJhZGlvIGJhbmQgZGVzY3JpYmVkIGluIHN0cnVjdCByYWRpb19oYWxfYmFuZF9jb25maWcgKi8KK2VudW0gQmFuZCA6IHVpbnQzMl90IHsKKyAgICAvKiogQW1wbGl0dWRlIE1vZHVsYXRpb24gYmFuZDogTFcsIE1XLCBTVyAqLworICAgIEFNICAgICA9IDAsCisgICAgLyoqIEZyZXF1ZW5jeSBNb2R1bGF0aW9uIGJhbmQ6IEZNICovCisgICAgRk0gICAgID0gMSwKKyAgICAvKiogRk0gSEQgUmFkaW8gLyBEUk0gKElCT0MpICovCisgICAgRk1fSEQgID0gMiwKKyAgICAvKiogQU0gSEQgUmFkaW8gLyBEUk0gKElCT0MpICovCisgICAgQU1fSEQgID0gMywKK307CisKKy8qKiBSRFMgdmFyaWFudCBpbXBsZW1lbnRlZC4gQSBzdHJ1Y3QgRm1CYW5kQ29uZmlnIGNhbiBsaXN0IG5vbmUgb3Igc2V2ZXJhbC4gKi8KK2VudW0gUmRzIDogdWludDMyX3QgeworICAgIE5PTkUgICA9IDAsCisgICAgV09STEQgID0gKDE8PDApLAorICAgIFVTID0gKDE8PDEpLAorfTsKKworCisvKiBGTSBkZWVtcGhhc2lzIHZhcmlhbnQgaW1wbGVtZW50ZWQuCisgKiBBIHN0cnVjdCBGbUJhbmRDb25maWcgY2FuIGxpc3Qgb25lIG9yIG1vcmUuICovCitlbnVtIERlZW1waGFzaXMgOiB1aW50MzJfdCB7CisgICAgRDUwICAgPSAoMTw8MCksCisgICAgRDc1ICAgPSAoMTw8MSksCit9OworCisvKiogU2Nhbm5pbmcgZGlyZWN0aW9uIGZvciBzY2FuKCkgYW5kIHN0ZXAoKSB0dW5lciBBUElzICovCitlbnVtIERpcmVjdGlvbiA6IHVpbnQzMl90IHsKKyAgICBVUCwKKyAgICBET1dOCit9OworCisvKiogVW5pcXVlIGhhbmRsZSBhbGxvY2F0ZWQgdG8gYSByYWRpbyBtb2R1bGUgKi8KK3R5cGVkZWYgdWludDMyX3QgSGFuZGxlOworCisKKy8qKiBBZGRpdGlvbmFsIGF0dHJpYnV0ZXMgZm9yIGFuIEZNIGJhbmQgY29uZmlndXJhdGlvbiAqLworc3RydWN0IEZtQmFuZENvbmZpZyB7CisgICAgLyoqIGRlZW1waGFzaXMgdmFyaWFudCAqLworICAgIERlZW1waGFzaXMgZGVlbXBoYXNpczsKKyAgICAvKiogc3RlcmVvIHN1cHBvcnRlZCAqLworICAgIGJvb2wgICAgICAgc3RlcmVvOworICAgIC8qKiBSRFMgdmFyaWFudHMgc3VwcG9ydGVkICovCisgICAgUmRzICAgICAgICByZHM7CisgICAgLyoqIFRyYWZmaWMgQW5ub3VuY2VtZW50IHN1cHBvcnRlZCAqLworICAgIGJvb2wgICAgICAgdGE7CisgICAgLyoqIEFsdGVybmF0ZSBGcmVxdWVuY3kgc3VwcG9ydGVkICovCisgICAgYm9vbCAgICAgICBhZjsKKyAgICAvKiogRW1lcmdlbmN5IGFubm91bmNlbWVudHMgc3VwcG9ydGVkICovCisgICAgYm9vbCAgICAgICBlYTsKK307CisKKy8qKiBBZGRpdGlvbmFsIGF0dHJpYnV0ZXMgZm9yIGFuIEFNIGJhbmQgY29uZmlndXJhdGlvbiAqLworc3RydWN0IEFtQmFuZENvbmZpZyB7CisgICAgLyoqIFN0ZXJlbyBzdXBwb3J0ZWQgKi8KKyAgICBib29sICAgICAgIHN0ZXJlbzsKK307CisKKy8qIFJhZGlvIGJhbmQgY29uZmlndXJhdGlvbi4gRGVzY3JpYmVzIGEgZ2l2ZW4gYmFuZCBzdXBwb3J0ZWQgYnkgdGhlIHJhZGlvCisgKiBtb2R1bGUuIFRoZSBIQUwgY2FuIGV4cG9zZSBvbmx5IG9uZSBiYW5kIHBlciB0eXBlIHdpdGggdGhlIHRoZSBtYXhpbXVtIHJhbmdlCisgKiBzdXBwb3J0ZWQgYW5kIGFsbCBvcHRpb25zLiBUaGUgZnJhbWV3b3JrIHdpbGwgZGVyaXZlIHRoZSBhY3R1YWwgcmVnaW9ucyB3ZXJlCisgKiB0aGlzIG1vZHVsZSBjYW4gb3BlcmF0ZSBhbmQgZXhwb3NlIHNlcGFyYXRlIGJhbmQgY29uZmlndXJhdGlvbnMgZm9yCisgKiBhcHBsaWNhdGlvbnMgdG8gY2hvc2UgZnJvbS4gKi8KK3N0cnVjdCBCYW5kQ29uZmlnIHsKKyAgICBCYW5kIHR5cGU7CisgICAgYm9vbCBhbnRlbm5hQ29ubmVjdGVkOworICAgIHVpbnQzMl90IGxvd2VyTGltaXQ7CisgICAgdWludDMyX3QgdXBwZXJMaW1pdDsKKyAgICB2ZWM8dWludDMyX3Q+IHNwYWNpbmdzOworICAgIHVuaW9uIEV4dCB7CisgICAgICAgIEZtQmFuZENvbmZpZyBmbTsKKyAgICAgICAgQW1CYW5kQ29uZmlnIGFtOworICAgIH0gZXh0OworfTsKKworLyogRXhwb3NlcyBwcm9wZXJ0aWVzIG9mIGEgZ2l2ZW4gaGFyZHdhcmUgcmFkaW8gbW9kdWxlLgorICogTk9URTogY3VycmVudCBmcmFtZXdvcmsgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgb25seSBvbmUgYXVkaW8gc291cmNlCisgKiAobnVtX2F1ZGlvX3NvdXJjZXMgPSAxKS4gVGhlIHNvdXJjZSBjb3JyZXNwb25kcyB0byBBVURJT19ERVZJQ0VfSU5fRk1fVFVORVIuCisgKiBJZiBtb3JlIHRoYW4gb25lIHR1bmVyIGlzIHN1cHBvcnRlZCAobnVtX3R1bmVycyA+IDEpLCBvbmx5IG9uZSBjYW4gYmUKKyAqIGNvbm5lY3RlZCB0byB0aGUgYXVkaW8gc291cmNlLiAqLworc3RydWN0IFByb3BlcnRpZXMgeworICAgIC8qKiBDbGFzcyBvZiB0aGlzIG1vZHVsZS4gRS5nIEFNX0ZNICovCisgICAgQ2xhc3MgICAgICAgICAgIGNsYXNzSWQ7CisgICAgLyoqIGltcGxlbWVudG9yIG5hbWUgKi8KKyAgICBzdHJpbmcgICAgICAgICAgaW1wbGVtZW50b3I7CisgICAgLyoqIHByb2R1Y3QgbmFtZSAqLworICAgIHN0cmluZyAgICAgICAgICBwcm9kdWN0OworICAgIC8qKiBwcm9kdWN0IHZlcnNpb24gKi8KKyAgICBzdHJpbmcgICAgICAgICAgdmVyc2lvbjsKKyAgICAvKiogc2VyaWFsIG51bWJlciAoZm9yIHN1YnNjcmlwdGlvbiBzZXJ2aWNlcykgKi8KKyAgICBzdHJpbmcgICAgICAgICAgc2VyaWFsOworICAgIC8qKiBudW1iZXIgb2YgdHVuZXJzIGNvbnRyb2xsYWJsZSBpbmRlcGVuZGVudGx5ICovCisgICAgdWludDMyX3QgICAgICAgIG51bVR1bmVyczsKKyAgICAvKiogbnVtYmVyIG9mIGF1ZGlvIHNvdXJjZXMgZHJpdmVuIHNpbXVsdGFuZW91c2x5ICovCisgICAgdWludDMyX3QgICAgICAgIG51bUF1ZGlvU291cmNlczsKKyAgICAvKiogdGhlIGhhcmR3YXJlIHN1cHBvcnRzIGNhcHR1cmUgb2YgYXVkaW8gc291cmNlIGZyb20gYXVkaW8gSEFMICovCisgICAgYm9vbCAgICAgICAgICAgIHN1cHBvcnRzQ2FwdHVyZTsKKyAgICB2ZWM8QmFuZENvbmZpZz4gYmFuZHM7IC8qKiBiYW5kIGRlc2NyaXB0b3JzICovCit9OworCitlbnVtIE1ldGFkYXRhVHlwZSA6IGludDMyX3QgeworICAgIElOVkFMSUQgICAgPSAtMSwKKyAgICAvKiogU2lnbmVkIDMyIGJpdCBpbnRlZ2VyICAqLworICAgIElOVCAgICAgICAgPSAwLAorICAgIC8qKiBTdHJpbmcgKi8KKyAgICBURVhUICAgICAgID0gMSwKKyAgICAvKioKKyAgICAgKiBSYXcgYmluYXJ5IGRhdGEgKGljb24gb3IgYXJ0KQorICAgICAgIFRoaXMgZGF0YSBtdXN0IGJlIHRyYW5zcGFyZW50IHRvIHRoZSBhbmRyb2lkIGZyYW1ld29yayAqLworICAgIFJBVyAgICAgICAgPSAyLAorICAgIC8qKiBjbG9jayBkYXRhLCBzZWUgTWV0YURhdGFDbG9jayAqLworICAgIENMT0NLICAgICAgPSAzLAorfTsKKworZW51bSBNZXRhZGF0YUtleSA6IGludDMyX3QgeworICAgIElOVkFMSUQgICAgICA9IC0xLAorICAgIC8qKiBSRFMgUEkgICAgICAgICAgICAgICAgIC0gc3RyaW5nICAqLworICAgIFJEU19QSSAgICAgICA9IDAsCisgICAgLyoqIFJEUyBQUyAgICAgICAgICAgICAgICAgLSBzdHJpbmcgKi8KKyAgICBSRFNfUFMgICAgICAgPSAxLAorICAgIC8qKiBSRFMgUFRZICAgICAgICAgICAgICAgIC0gaW50MzJfdCAgKi8KKyAgICBSRFNfUFRZICAgICAgPSAyLAorICAgIC8qKiBSQkRTIFBUWSAgICAgICAgICAgICAgIC0gaW50MzJfdCAgKi8KKyAgICBSQkRTX1BUWSAgICAgPSAzLAorICAgIC8qKiBSRFMgUlQgICAgICAgICAgICAgICAgIC0gc3RyaW5nICAqLworICAgIFJEU19SVCAgICAgICA9IDQsCisgICAgLyoqIFNvbmcgdGl0bGUgICAgICAgICAgICAgLSBzdHJpbmcgICovCisgICAgVElUTEUgICAgICAgID0gNSwKKyAgICAvKiogQXJ0aXN0IG5hbWUgICAgICAgICAgICAtIHN0cmluZyAgKi8KKyAgICBBUlRJU1QgICAgICAgPSA2LAorICAgIC8qKiBBbGJ1bSBuYW1lICAgICAgICAgICAgIC0gc3RyaW5nICAqLworICAgIEFMQlVNICAgICAgICA9IDcsCisgICAgLyoqIE11c2ljYWwgZ2VucmUgICAgICAgICAgLSBzdHJpbmcgICovCisgICAgR0VOUkUgICAgICAgID0gOCwKKyAgICAvKiogU3RhdGlvbiBpY29uICAgICAgICAgICAtIHJhdyAgKi8KKyAgICBJQ09OICAgICAgICAgPSA5LAorICAgIC8qKiBBbGJ1bSBhcnQgICAgICAgICAgICAgIC0gcmF3ICAqLworICAgIEFSVCAgICAgICAgICA9IDEwLAorICAgIC8qKiBDbG9jayAgICAgICAgICAgICAgICAgIC0gTWV0YURhdGFDbG9jayAqLworICAgIENMT0NLICAgICAgICA9IDExLAorfTsKKworc3RydWN0IE1ldGFEYXRhQ2xvY2sgeworICAgICAvKiogU2Vjb25kcyBzaW5jZSBlcG9jaCBhdCBHTVQgKyAwLiAqLworICAgIHVpbnQ2NF90IHV0Y1NlY29uZHNTaW5jZUVwb2NoOworICAgIC8qKiBNaW51dGVzIG9mZnNldCBmcm9tIHRoZSBHTVQuICovCisgICAgaW50MzJfdCB0aW1lem9uZU9mZnNldEluTWludXRlczsKK307CisKK3N0cnVjdCBNZXRhRGF0YSB7CisgICAgTWV0YWRhdGFUeXBlIHR5cGU7CisgICAgTWV0YWRhdGFLZXkga2V5OworICAgIC8qKiBWYWx1ZSB1c2VkIGZvciB0eXBlIE1ldGFkYXRhVHlwZS5JTlQgKi8KKyAgICBpbnQzMl90IGludFZhbHVlOworICAgIC8qKiBWYWx1ZSB1c2VkIGZvciB0eXBlIE1ldGFkYXRhVHlwZS5DTE9DSyAqLworICAgIE1ldGFEYXRhQ2xvY2sgIGNsb2NrVmFsdWU7CisgICAgLyoqIFZhbHVlIHVzZWQgZm9yIHR5cGUgTWV0YWRhdGFUeXBlLlRFWFQgKi8KKyAgICBzdHJpbmcgIHN0cmluZ1ZhbHVlOworICAgIC8qKiBWYWx1ZSB1c2VkIGZvciB0eXBlIE1ldGFkYXRhVHlwZS5SQVcgKi8KKyAgICB2ZWM8dWludDhfdD4gcmF3VmFsdWU7Cit9OworCisKKy8qIFJhZGlvIHByb2dyYW0gaW5mb3JtYXRpb24uIFJldHVybmVkIGJ5IHRoZSBIQUwgd2l0aCBldmVudCBSQURJT19FVkVOVF9UVU5FRC4KKyAqIENvbnRhaW5zIGluZm9ybWF0aW9uIG9uIGN1cnJlbnRseSB0dW5lZCBjaGFubmVsLgorICovCitzdHJ1Y3QgUHJvZ3JhbUluZm8geworICAgIHVpbnQzMl90ICAgICBjaGFubmVsOyAgIC8qKiBjdXJyZW50IGNoYW5uZWwuIChlLmcga0h6IGZvciBiYW5kIHR5cGUgQU1fRk0pICovCisgICAgdWludDMyX3QgICAgIHN1YkNoYW5uZWw7IC8qKiBjdXJyZW50IHN1YiBjaGFubmVsLiAoRk1fSEQpICovCisgICAgYm9vbCAgICAgICAgIHR1bmVkOyAgICAgLyoqIHR1bmVkIHRvIGEgcHJvZ3JhbSBvciBub3QgKi8KKyAgICBib29sICAgICAgICAgc3RlcmVvOyAgICAvKiogcHJvZ3JhbSBpcyBzdGVyZW8gb3Igbm90ICovCisgICAgYm9vbCAgICAgICAgIGRpZ2l0YWw7ICAgLyoqIGRpZ2l0YWwgcHJvZ3JhbSBvciBub3QgKGUuZyBIRCBSYWRpbyBwcm9ncmFtKSAqLworICAgIHVpbnQzMl90ICAgICBzaWduYWxTdHJlbmd0aDsgLyoqIHNpZ25hbCBzdHJlbmd0aCBmcm9tIDAgdG8gMTAwICovCisgICAgdmVjPE1ldGFEYXRhPiBtZXRhZGF0YTsgLyoqIG5vbiBlbXB0eSBpZiBtZXRhIGRhdGEgYXJlIHByZXNlbnQgKGUuZyBQVFksIHNvbmcgdGl0bGUgLi4uKSAqLworfTsKKwpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rIGIvYnJvYWRjYXN0cmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvdnRzL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvYnJvYWRjYXN0cmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Y1MmY0OQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxCcm9hZGNhc3RyYWRpb1YxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxCcm9hZGNhc3RyYWRpb1YxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQnJvYWRjYXN0cmFkaW9WMV8wVGFyZ2V0VGVzdC5jcHAgYi9icm9hZGNhc3RyYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQnJvYWRjYXN0cmFkaW9WMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJlYWRiMQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxCcm9hZGNhc3RyYWRpb1YxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDYzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQnJvYWRjYXN0UmFkaW9IaWRsSGFsVGVzdCIKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGN1dGlscy9uYXRpdmVfaGFuZGxlLmg+CisjaW5jbHVkZSA8Y3V0aWxzL3Byb3BlcnRpZXMuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisjaW5jbHVkZSA8dXRpbHMvdGhyZWFkcy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lCcm9hZGNhc3RSYWRpby5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lckNhbGxiYWNrLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvdHlwZXMuaD4KKworCit1c2luZyA6OmFuZHJvaWQ6OnNwOwordXNpbmcgOjphbmRyb2lkOjpNdXRleDsKK3VzaW5nIDo6YW5kcm9pZDo6Q29uZGl0aW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJQnJvYWRjYXN0UmFkaW9GYWN0b3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OklCcm9hZGNhc3RSYWRpbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJVHVuZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SVR1bmVyQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OkNsYXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OlByb3BlcnRpZXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6QmFuZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpCYW5kQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OkRpcmVjdGlvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpQcm9ncmFtSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpNZXRhRGF0YTsKKworCisjZGVmaW5lIFJFVFVSTl9JRl9TS0lQUEVEIFwKKyAgICBpZiAoc2tpcHBlZCkgeyBcCisgICAgICAgIHN0ZDo6Y291dCA8PCAiWyAgU0tJUFBFRCBdIFRoaXMgZGV2aWNlIGNsYXNzIGlzIG5vdCBzdXBwb3J0ZWQuICIgPDwgc3RkOjplbmRsOyBcCisgICAgICAgIHJldHVybjsgXAorICAgIH0KKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgQnJvYWRjYXN0IFJhZGlvIEhJREwgSEFMLgorCitjbGFzcyBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLAorICAgICAgICBwdWJsaWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8Q2xhc3M+IHsKKyBwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgbVJhZGlvLmdldCgpKTsKKworICAgICAgICByYWRpb0NsYXNzID0gR2V0UGFyYW0oKTsKKyAgICAgICAgc2tpcHBlZCA9IGZhbHNlOworCisgICAgICAgIHNwPElCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk+IGZhY3RvcnkgPQorICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJQnJvYWRjYXN0UmFkaW9GYWN0b3J5PigpOworICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZmFjdG9yeS5nZXQoKSk7CisKKyAgICAgICAgUmVzdWx0IGNvbm5lY3RSZXN1bHQ7CisgICAgICAgIGZhY3RvcnktPmNvbm5lY3RNb2R1bGUocmFkaW9DbGFzcywgWyZdKFJlc3VsdCByZXQsIGNvbnN0IHNwPElCcm9hZGNhc3RSYWRpbz4mIHJhZGlvKSB7CisgICAgICAgICAgICBjb25uZWN0UmVzdWx0ID0gcmV0OworICAgICAgICAgICAgbVJhZGlvID0gcmFkaW87CisgICAgICAgICAgICBvbkNhbGxiYWNrX2woKTsKKyAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa0Nvbm5lY3RDYWxsYmFja3RpbWVvdXROcykpOworICAgICAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKworICAgICAgICBpZiAoY29ubmVjdFJlc3VsdCA9PSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKSB7CisgICAgICAgICAgICBza2lwcGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBBU1NFUlRfRVEoY29ubmVjdFJlc3VsdCwgUmVzdWx0OjpPSyk7CisKKyAgICAgICAgbVR1bmVyQ2FsbGJhY2sgPSBuZXcgTXlDYWxsYmFjayh0aGlzKTsKKyAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIG1SYWRpby5nZXQoKSk7CisgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBtVHVuZXJDYWxsYmFjay5nZXQoKSk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBtVHVuZXIuY2xlYXIoKTsKKyAgICAgICAgbVJhZGlvLmNsZWFyKCk7CisgICAgfQorCisgICAgY2xhc3MgTXlDYWxsYmFjayA6IHB1YmxpYyBJVHVuZXJDYWxsYmFjayB7CisgICAgIHB1YmxpYzoKKworICAgICAgICAvLyBJVHVuZXJDYWxsYmFjayBtZXRob2RzIChzZWUgZG9jIGluIElUdW5lckNhbGxiYWNrLmhhbCkKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFyZHdhcmVGYWlsdXJlKCkgeworICAgICAgICAgICAgQUxPR0koIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIG1QYXJlbnRUZXN0LT5vbkh3RmFpbHVyZUNhbGxiYWNrKCk7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gY29uZmlnQ2hhbmdlKFJlc3VsdCByZXN1bHQsIGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZykgeworICAgICAgICAgICAgQUxPR0koIiVzIHJlc3VsdCAlZCIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKyAgICAgICAgICAgIG1QYXJlbnRUZXN0LT5vbkNvbmZpZ0NoYW5nZUNhbGxiYWNrKHJlc3VsdCwgY29uZmlnKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiB0dW5lQ29tcGxldGUoUmVzdWx0IHJlc3VsdCwgY29uc3QgUHJvZ3JhbUluZm8mIGluZm8pIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyByZXN1bHQgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisgICAgICAgICAgICBtUGFyZW50VGVzdC0+b25UdW5lQ29tcGxldGVDYWxsYmFjayhyZXN1bHQsIGluZm8pOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGFmU3dpdGNoKGNvbnN0IFByb2dyYW1JbmZvJiBpbmZvIF9fdW51c2VkKSB7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gYW50ZW5uYVN0YXRlQ2hhbmdlKGJvb2wgY29ubmVjdGVkKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgY29ubmVjdGVkICVkIiwgX19GVU5DVElPTl9fLCBjb25uZWN0ZWQpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHRyYWZmaWNBbm5vdW5jZW1lbnQoYm9vbCBhY3RpdmUpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyBhY3RpdmUgJWQiLCBfX0ZVTkNUSU9OX18sIGFjdGl2ZSk7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gZW1lcmdlbmN5QW5ub3VuY2VtZW50KGJvb2wgYWN0aXZlKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgYWN0aXZlICVkIiwgX19GVU5DVElPTl9fLCBhY3RpdmUpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG5ld01ldGFkYXRhKHVpbnQzMl90IGNoYW5uZWwgX191bnVzZWQsIHVpbnQzMl90IHN1YkNoYW5uZWwgX191bnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxNZXRhRGF0YT4mIG1ldGFkYXRhIF9fdW51c2VkKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgICAgICAgICAgTXlDYWxsYmFjayhCcm9hZGNhc3RSYWRpb0hpZGxUZXN0ICpwYXJlbnRUZXN0KSA6IG1QYXJlbnRUZXN0KHBhcmVudFRlc3QpIHt9CisKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCBpbnN0YW5jZSB0byB3aGljaCBjYWxsYmFja3Mgd2lsbCBiZSBub3RpZmllZC4KKyAgICAgICAgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCAqbVBhcmVudFRlc3Q7CisgICAgfTsKKworCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSBNeUNhbGxiYWNrIHdoZW4gYSBjYWxsYmFjayB3aXRoIG5vIHN0YXR1cyBvciBib29sZWFuIHZhbHVlIGlzIHJlY2VpdmVkCisgICAgICovCisgICAgdm9pZCBvbkNhbGxiYWNrKCkgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgICAgICBvbkNhbGxiYWNrX2woKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IE15Q2FsbGJhY2sgd2hlbiBoYXJkd2FyZUZhaWx1cmUoKSBjYWxsYmFjayBpcyByZWNlaXZlZAorICAgICAqLworICAgIHZvaWQgb25Id0ZhaWx1cmVDYWxsYmFjaygpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgbUh3RmFpbHVyZSA9IHRydWU7CisgICAgICAgIG9uQ2FsbGJhY2tfbCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgTXlDYWxsYmFjayB3aGVuIGNvbmZpZ0NoYW5nZSgpIGNhbGxiYWNrIGlzIHJlY2VpdmVkLgorICAgICAqLworICAgIHZvaWQgb25Db25maWdDaGFuZ2VDYWxsYmFjayhSZXN1bHQgcmVzdWx0LCBjb25zdCBCYW5kQ29uZmlnJiBjb25maWcpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgbVJlc3VsdENhbGxiYWNrRGF0YSA9IHJlc3VsdDsKKyAgICAgICAgbUJhbmRDb25maWdDYWxsYmFja0RhdGEgPSBjb25maWc7CisgICAgICAgIG9uQ2FsbGJhY2tfbCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgTXlDYWxsYmFjayB3aGVuIHR1bmVDb21wbGV0ZSgpIGNhbGxiYWNrIGlzIHJlY2VpdmVkLgorICAgICAqLworICAgIHZvaWQgb25UdW5lQ29tcGxldGVDYWxsYmFjayhSZXN1bHQgcmVzdWx0LCBjb25zdCBQcm9ncmFtSW5mbyYgaW5mbykgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgICAgICBtUmVzdWx0Q2FsbGJhY2tEYXRhID0gcmVzdWx0OworICAgICAgICBtUHJvZ3JhbUluZm9DYWxsYmFja0RhdGEgPSBpbmZvOworICAgICAgICBvbkNhbGxiYWNrX2woKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IE15Q2FsbGJhY2sgd2hlbiBhIGJvb2xlYW4gaW5kaWNhdGlvbiBpcyByZWNlaXZlZAorICAgICAqLworICAgIHZvaWQgb25Cb29sQ2FsbGJhY2soYm9vbCByZXN1bHQpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgbUJvb2xDYWxsYmFja0RhdGEgPSByZXN1bHQ7CisgICAgICAgIG9uQ2FsbGJhY2tfbCgpOworICAgIH0KKworCisgICAgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCgpCisgICAgICAgIDogbUNhbGxiYWNrQ2FsbGVkKGZhbHNlKSwgbUJvb2xDYWxsYmFja0RhdGEoZmFsc2UpLCBtUmVzdWx0Q2FsbGJhY2tEYXRhKFJlc3VsdDo6T0spLAorICAgICAgICBtSHdGYWlsdXJlKGZhbHNlKSB7fQorCisgICAgdm9pZCBvbkNhbGxiYWNrX2woKSB7CisgICAgICAgIGlmICghbUNhbGxiYWNrQ2FsbGVkKSB7CisgICAgICAgICAgICBtQ2FsbGJhY2tDYWxsZWQgPSB0cnVlOworICAgICAgICAgICAgbUNhbGxiYWNrQ29uZC5icm9hZGNhc3QoKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgYm9vbCB3YWl0Rm9yQ2FsbGJhY2sobnNlY3NfdCByZWx0aW1lID0gMCkgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgICAgICBuc2Vjc190IGVuZFRpbWUgPSBzeXN0ZW1UaW1lKCkgKyByZWx0aW1lOworICAgICAgICB3aGlsZSAoIW1DYWxsYmFja0NhbGxlZCkgeworICAgICAgICAgICAgaWYgKHJlbHRpbWUgPT0gMCkgeworICAgICAgICAgICAgICAgIG1DYWxsYmFja0NvbmQud2FpdChtTG9jayk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG5zZWNzX3Qgbm93ID0gc3lzdGVtVGltZSgpOworICAgICAgICAgICAgICAgIGlmIChub3cgPiBlbmRUaW1lKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbUNhbGxiYWNrQ29uZC53YWl0UmVsYXRpdmUobUxvY2ssIGVuZFRpbWUgLSBub3cpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgZ2V0UHJvcGVydGllcygpOworICAgIGJvb2wgb3BlblR1bmVyKCk7CisgICAgYm9vbCBjaGVja0FudGVubmEoKTsKKworICAgIHN0YXRpYyBjb25zdCBuc2Vjc190IGtDb25uZWN0Q2FsbGJhY2t0aW1lb3V0TnMgPSBzZWNvbmRzX3RvX25hbm9zZWNvbmRzKDEpOworICAgIHN0YXRpYyBjb25zdCBuc2Vjc190IGtDb25maWdDYWxsYmFja3RpbWVvdXROcyA9IHNlY29uZHNfdG9fbmFub3NlY29uZHMoMTApOworICAgIHN0YXRpYyBjb25zdCBuc2Vjc190IGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMgPSBzZWNvbmRzX3RvX25hbm9zZWNvbmRzKDMwKTsKKworICAgIENsYXNzIHJhZGlvQ2xhc3M7CisgICAgYm9vbCBza2lwcGVkOworICAgIHNwPElCcm9hZGNhc3RSYWRpbz4gbVJhZGlvOworICAgIFByb3BlcnRpZXMgbUhhbFByb3BlcnRpZXM7CisgICAgc3A8SVR1bmVyPiBtVHVuZXI7CisgICAgc3A8TXlDYWxsYmFjaz4gbVR1bmVyQ2FsbGJhY2s7CisgICAgTXV0ZXggbUxvY2s7CisgICAgQ29uZGl0aW9uIG1DYWxsYmFja0NvbmQ7CisgICAgYm9vbCBtQ2FsbGJhY2tDYWxsZWQ7CisgICAgYm9vbCBtQm9vbENhbGxiYWNrRGF0YTsKKyAgICBSZXN1bHQgbVJlc3VsdENhbGxiYWNrRGF0YTsKKyAgICBQcm9ncmFtSW5mbyBtUHJvZ3JhbUluZm9DYWxsYmFja0RhdGE7CisgICAgQmFuZENvbmZpZyBtQmFuZENvbmZpZ0NhbGxiYWNrRGF0YTsKKyAgICBib29sIG1Id0ZhaWx1cmU7Cit9OworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8wIHsKKworLyoqCisgKiBDb21wYXJlcyB0d28gQmFuZENvbmZpZyBvYmplY3RzIGZvciB0ZXN0aW5nIHB1cnBvc2VzLgorICovCitzdGF0aWMgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEJhbmRDb25maWcmIGwsIGNvbnN0IEJhbmRDb25maWcmIHIpIHsKKyAgICBpZiAobC50eXBlICE9IHIudHlwZSkgcmV0dXJuIGZhbHNlOworICAgIGlmIChsLmFudGVubmFDb25uZWN0ZWQgIT0gci5hbnRlbm5hQ29ubmVjdGVkKSByZXR1cm4gZmFsc2U7CisgICAgaWYgKGwubG93ZXJMaW1pdCAhPSByLmxvd2VyTGltaXQpIHJldHVybiBmYWxzZTsKKyAgICBpZiAobC51cHBlckxpbWl0ICE9IHIudXBwZXJMaW1pdCkgcmV0dXJuIGZhbHNlOworICAgIGlmIChsLnNwYWNpbmdzICE9IHIuc3BhY2luZ3MpIHJldHVybiBmYWxzZTsKKyAgICBpZiAobC50eXBlID09IEJhbmQ6OkFNIHx8IGwudHlwZSA9PSBCYW5kOjpBTV9IRCkgeworICAgICAgICByZXR1cm4gbC5leHQuYW0gPT0gci5leHQuYW07CisgICAgfSBlbHNlIGlmIChsLnR5cGUgPT0gQmFuZDo6Rk0gfHwgbC50eXBlID09IEJhbmQ6OkZNX0hEKSB7CisgICAgICAgIHJldHVybiBsLmV4dC5mbSA9PSByLmV4dC5mbTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyB1bnN1cHBvcnRlZCB0eXBlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK30gIC8vIFYxXzAKK30gIC8vIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBoYXJkd2FyZQorfSAgLy8gYW5kcm9pZAorCitib29sIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3Q6OmdldFByb3BlcnRpZXMoKQoreworICAgIGlmIChtSGFsUHJvcGVydGllcy5iYW5kcy5zaXplKCkgPT0gMCkgeworICAgICAgICBSZXN1bHQgaGFsUmVzdWx0ID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0KKyAgICAgICAgICAgICAgICBtUmFkaW8tPmdldFByb3BlcnRpZXMoWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IFByb3BlcnRpZXMmIHByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1IYWxQcm9wZXJ0aWVzID0gcHJvcGVydGllczsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX0VRKENsYXNzOjpBTV9GTSwgbUhhbFByb3BlcnRpZXMuY2xhc3NJZCk7CisgICAgICAgIEVYUEVDVF9HVChtSGFsUHJvcGVydGllcy5udW1UdW5lcnMsIDB1KTsKKyAgICAgICAgRVhQRUNUX0dUKG1IYWxQcm9wZXJ0aWVzLmJhbmRzLnNpemUoKSwgMHUpOworICAgIH0KKyAgICByZXR1cm4gbUhhbFByb3BlcnRpZXMuYmFuZHMuc2l6ZSgpID4gMDsKK30KKworYm9vbCBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0OjpvcGVuVHVuZXIoKQoreworICAgIGlmICghZ2V0UHJvcGVydGllcygpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKG1UdW5lci5nZXQoKSA9PSBudWxscHRyKSB7CisgICAgICAgIFJlc3VsdCBoYWxSZXN1bHQgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgUmV0dXJuPHZvaWQ+IGhpZGxSZXR1cm4gPQorICAgICAgICAgICAgICAgIG1SYWRpby0+b3BlblR1bmVyKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLCB0cnVlLCBtVHVuZXJDYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3Qgc3A8SVR1bmVyPiYgdHVuZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1UdW5lciA9IHR1bmVyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX0VRKHRydWUsIHdhaXRGb3JDYWxsYmFjayhrQ29uZmlnQ2FsbGJhY2t0aW1lb3V0TnMpKTsKKyAgICB9CisgICAgRVhQRUNUX05FKG51bGxwdHIsIG1UdW5lci5nZXQoKSk7CisgICAgcmV0dXJuIG51bGxwdHIgIT0gbVR1bmVyLmdldCgpOworfQorCitib29sIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3Q6OmNoZWNrQW50ZW5uYSgpCit7CisgICAgQmFuZENvbmZpZyBoYWxDb25maWc7CisgICAgUmVzdWx0IGhhbFJlc3VsdCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0KKyAgICAgICAgICAgIG1UdW5lci0+Z2V0Q29uZmlndXJhdGlvbihbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSB7CisgICAgICAgICAgICAgICAgaGFsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgICBoYWxDb25maWcgPSBjb25maWc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICByZXR1cm4gKChoYWxSZXN1bHQgPT0gUmVzdWx0OjpPSykgJiYgKGhhbENvbmZpZy5hbnRlbm5hQ29ubmVjdGVkID09IHRydWUpKTsKK30KKworCisvKioKKyAqIFRlc3QgSUJyb2FkY2FzdFJhZGlvOjpnZXRQcm9wZXJ0aWVzKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MgaXMgQU1fRk0KKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBhdCBsZWFzdCBvbmUgdHVuZXIKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBhdCBvbmUgYmFuZAorICovCitURVNUX1AoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgR2V0UHJvcGVydGllcykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIEVYUEVDVF9FUSh0cnVlLCBnZXRQcm9wZXJ0aWVzKCkpOworfQorCisvKioKKyAqIFRlc3QgSUJyb2FkY2FzdFJhZGlvOjpvcGVuVHVuZXIoKSBtZXRob2QKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIEhBTCBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBtZXRob2QgcmV0dXJucyAwIChubyBlcnJvcikgYW5kIGEgdmFsaWQgSVR1bmVyIGludGVyZmFjZQorICovCitURVNUX1AoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgT3BlblR1bmVyKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgRVhQRUNUX0VRKHRydWUsIG9wZW5UdW5lcigpKTsKK30KKworLyoqCisgKiBUZXN0IElCcm9hZGNhc3RSYWRpbzo6b3BlblR1bmVyKCkgYWZ0ZXIgSVR1bmVyIGRpc3Bvc2FsLgorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSBJVHVuZXIgZGVzdHJ1Y3Rpb24gZ2V0cyBwcm9wYWdhdGVkIHRocm91Z2ggSEFMCisgKiAgLSB0aGUgb3BlblR1bmVyIG1ldGhvZCB3b3JrcyB3ZWxsIHdoZW4gY2FsbGVkIGZvciB0aGUgc2Vjb25kIHRpbWUKKyAqLworVEVTVF9QKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFJlb3BlblR1bmVyKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgRVhQRUNUX1RSVUUob3BlblR1bmVyKCkpOworICAgIG1UdW5lci5jbGVhcigpOworICAgIEVYUEVDVF9UUlVFKG9wZW5UdW5lcigpKTsKK30KKworLyoqCisgKiBUZXN0IElCcm9hZGNhc3RSYWRpbzo6b3BlblR1bmVyKCkgbWV0aG9kIGNhbGxlZCB0d2ljZS4KKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIG9wZW5UdW5lciBtZXRob2QgZmFpbHMgd2hlbiBjYWxsZWQgZm9yIHRoZSBzZWNvbmQgdGltZSB3aXRob3V0IGRlbGV0aW5nIHByZXZpb3VzCisgKiAgICBJVHVuZXIgaW5zdGFuY2UKKyAqLworVEVTVF9QKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIE9wZW5UdW5lclR3aWNlKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgRVhQRUNUX1RSVUUob3BlblR1bmVyKCkpOworCisgICAgUmVzdWx0IGhhbFJlc3VsdCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0KKyAgICAgICAgICAgIG1SYWRpby0+b3BlblR1bmVyKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLCB0cnVlLCBtVHVuZXJDYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShSZXN1bHQgcmVzdWx0LCBjb25zdCBzcDxJVHVuZXI+JikgeworICAgICAgICAgICAgICAgICAgICBoYWxSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfU1RBVEUsIGhhbFJlc3VsdCk7CisgICAgRVhQRUNUX1RSVUUod2FpdEZvckNhbGxiYWNrKGtDb25maWdDYWxsYmFja3RpbWVvdXROcykpOworfQorCisvKioKKyAqIFRlc3QgSVR1bmVyOjpzZXRDb25maWd1cmF0aW9uKCkgYW5kIGdldENvbmZpZ3VyYXRpb24gbWV0aG9kcworICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgSEFMIGltcGxlbWVudHMgYm90aCBtZXRob2RzCisgKiAgLSB0aGUgbWV0aG9kcyByZXR1cm4gMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgY29uZmlndXJhdGlvbiBjYWxsYmFjayBpcyByZWNlaXZlZCB3aXRoaW4ga0NvbmZpZ0NhbGxiYWNrdGltZW91dE5zIG5zCisgKiAgLSB0aGUgY29uZmlndXJhdGlvbiByZWFkIGJhY2sgZnJvbSBIQWwgaGFzIHRoZSBzYW1lIGNsYXNzIElkCisgKi8KK1RFU1RfUChCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBTZXRBbmRHZXRDb25maWd1cmF0aW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgQVNTRVJUX0VRKHRydWUsIG9wZW5UdW5lcigpKTsKKyAgICAvLyB0ZXN0IHNldENvbmZpZ3VyYXRpb24KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBSZXR1cm48UmVzdWx0PiBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zZXRDb25maWd1cmF0aW9uKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzFdKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa0NvbmZpZ0NhbGxiYWNrdGltZW91dE5zKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIG1SZXN1bHRDYWxsYmFja0RhdGEpOworICAgIEVYUEVDVF9FUShtSGFsUHJvcGVydGllcy5iYW5kc1sxXSwgbUJhbmRDb25maWdDYWxsYmFja0RhdGEpOworCisgICAgLy8gdGVzdCBnZXRDb25maWd1cmF0aW9uCisgICAgQmFuZENvbmZpZyBoYWxDb25maWc7CisgICAgUmVzdWx0IGhhbFJlc3VsdDsKKyAgICBSZXR1cm48dm9pZD4gaGlkbFJldHVybiA9CisgICAgICAgICAgICBtVHVuZXItPmdldENvbmZpZ3VyYXRpb24oWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZykgeworICAgICAgICAgICAgICAgIGhhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgaGFsQ29uZmlnID0gY29uZmlnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKyAgICBFWFBFQ1RfRVEobUhhbFByb3BlcnRpZXMuYmFuZHNbMV0sIGhhbENvbmZpZyk7Cit9CisKKy8qKgorICogVGVzdCBJVHVuZXI6OnNldENvbmZpZ3VyYXRpb24oKSB3aXRoIGludmFsaWQgYXJndW1lbnRzLgorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgbWV0aG9kcyByZXR1cm5zIElOVkFMSURfQVJHVU1FTlRTIG9uIGludmFsaWQgYXJndW1lbnRzCisgKiAgLSB0aGUgbWV0aG9kIHJlY292ZXJzIGFuZCBzdWNjZWVkcyBhZnRlciBwYXNzaW5nIGNvcnJlY3QgYXJndW1lbnRzCisgKi8KK1RFU1RfUChCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBTZXRDb25maWd1cmF0aW9uRmFpbHMpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBBU1NFUlRfRVEodHJ1ZSwgb3BlblR1bmVyKCkpOworCisgICAgLy8gTGV0J3MgZGVmaW5lIGEgY29uZmlnIHRoYXQncyBiYWQgZm9yIHN1cmUuCisgICAgQmFuZENvbmZpZyBiYWRDb25maWcgPSB7fTsKKyAgICBiYWRDb25maWcudHlwZSA9IEJhbmQ6OkZNOworICAgIGJhZENvbmZpZy5sb3dlckxpbWl0ID0gMHhGRkZGRkZGRjsKKyAgICBiYWRDb25maWcudXBwZXJMaW1pdCA9IDA7CisgICAgYmFkQ29uZmlnLnNwYWNpbmdzID0gKHN0ZDo6dmVjdG9yPHVpbnQzMl90Pil7IDAgfTsKKworICAgIC8vIFRlc3Qgc2V0Q29uZmlndXJhdGlvbiBmYWlsaW5nIG9uIGJhZCBkYXRhLgorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIGF1dG8gc2V0UmVzdWx0ID0gbVR1bmVyLT5zZXRDb25maWd1cmF0aW9uKGJhZENvbmZpZyk7CisgICAgRVhQRUNUX1RSVUUoc2V0UmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHNldFJlc3VsdCk7CisKKyAgICAvLyBUZXN0IHNldENvbmZpZ3VyYXRpb24gcmVjb3ZlcmluZyBhZnRlciBwYXNzaW5nIGdvb2QgZGF0YS4KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBzZXRSZXN1bHQgPSBtVHVuZXItPnNldENvbmZpZ3VyYXRpb24obUhhbFByb3BlcnRpZXMuYmFuZHNbMF0pOworICAgIEVYUEVDVF9UUlVFKHNldFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBzZXRSZXN1bHQpOworICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa0NvbmZpZ0NhbGxiYWNrdGltZW91dE5zKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIG1SZXN1bHRDYWxsYmFja0RhdGEpOworfQorCisvKioKKyAqIFRlc3QgSVR1bmVyOjpzY2FuCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgdHVuZWQgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgd2l0aGluIGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMgbnMKKyAqICAtIHNraXBwaW5nIHN1Yi1jaGFubmVsIG9yIG5vdCBkb2VzIG5vdCBmYWlsIHRoZSBjYWxsCisgKi8KK1RFU1RfUChCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBTY2FuKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgQVNTRVJUX0VRKHRydWUsIG9wZW5UdW5lcigpKTsKKyAgICBBU1NFUlRfVFJVRShjaGVja0FudGVubmEoKSk7CisgICAgLy8gdGVzdCBzY2FuIFVQCisgICAgbUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisgICAgUmV0dXJuPFJlc3VsdD4gaGlkbFJlc3VsdCA9IG1UdW5lci0+c2NhbihEaXJlY3Rpb246OlVQLCB0cnVlKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworCisgICAgLy8gdGVzdCBzY2FuIERPV04KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zY2FuKERpcmVjdGlvbjo6RE9XTiwgZmFsc2UpOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGlkbFJlc3VsdCk7CisgICAgRVhQRUNUX0VRKHRydWUsIHdhaXRGb3JDYWxsYmFjayhrVHVuZUNhbGxiYWNrdGltZW91dE5zKSk7Cit9CisKKy8qKgorICogVGVzdCBJVHVuZXI6OnN0ZXAKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIEhBTCBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBtZXRob2QgcmV0dXJucyAwIChubyBlcnJvcikKKyAqICAtIHRoZSB0dW5lZCBjYWxsYmFjayBpcyByZWNlaXZlZCB3aXRoaW4ga1R1bmVDYWxsYmFja3RpbWVvdXROcyBucworICogIC0gc2tpcHBpbmcgc3ViLWNoYW5uZWwgb3Igbm90IGRvZXMgbm90IGZhaWwgdGhlIGNhbGwKKyAqLworVEVTVF9QKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFN0ZXApIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBBU1NFUlRfRVEodHJ1ZSwgb3BlblR1bmVyKCkpOworICAgIEFTU0VSVF9UUlVFKGNoZWNrQW50ZW5uYSgpKTsKKyAgICAvLyB0ZXN0IHN0ZXAgVVAKKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBSZXR1cm48UmVzdWx0PiBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zdGVwKERpcmVjdGlvbjo6VVAsIGZhbHNlKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworCisgICAgLy8gdGVzdCBzdGVwIERPV04KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zdGVwKERpcmVjdGlvbjo6RE9XTiwgdHJ1ZSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfRVEodHJ1ZSwgd2FpdEZvckNhbGxiYWNrKGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMpKTsKK30KKworLyoqCisgKiBUZXN0IElUdW5lcjo6dHVuZSwgIGdldFByb2dyYW1JbmZvcm1hdGlvbiBhbmQgY2FuY2VsIG1ldGhvZHMKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIEhBTCBpbXBsZW1lbnRzIHRoZSBtZXRob2RzCisgKiAgLSB0aGUgbWV0aG9kcyByZXR1cm4gMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgdHVuZWQgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgd2l0aGluIGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMgbnMgYWZ0ZXIgdHVuZSgpCisgKi8KK1RFU1RfUChCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBUdW5lQW5kR2V0UHJvZ3JhbUluZm9ybWF0aW9uQW5kQ2FuY2VsKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgQVNTRVJUX0VRKHRydWUsIG9wZW5UdW5lcigpKTsKKyAgICBBU1NFUlRfVFJVRShjaGVja0FudGVubmEoKSk7CisKKyAgICAvLyB0ZXN0IHR1bmUKKyAgICBBU1NFUlRfR1QobUhhbFByb3BlcnRpZXMuYmFuZHNbMF0uc3BhY2luZ3Muc2l6ZSgpLCAwdSk7CisgICAgQVNTRVJUX0dUKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLnVwcGVyTGltaXQsIG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLmxvd2VyTGltaXQpOworCisgICAgLy8gdGVzdCBzY2FuIFVQCisgICAgdWludDMyX3QgbG93ZXJMaW1pdCA9IG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLmxvd2VyTGltaXQ7CisgICAgdWludDMyX3QgdXBwZXJMaW1pdCA9IG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLnVwcGVyTGltaXQ7CisgICAgdWludDMyX3Qgc3BhY2luZyA9IG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLnNwYWNpbmdzWzBdOworCisgICAgdWludDMyX3QgY2hhbm5lbCA9CisgICAgICAgICAgICBsb3dlckxpbWl0ICsgKCgodXBwZXJMaW1pdCAtIGxvd2VyTGltaXQpIC8gMiArIHNwYWNpbmcgLSAxKSAvIHNwYWNpbmcpICogc3BhY2luZzsKKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBtUmVzdWx0Q2FsbGJhY2tEYXRhID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgUmV0dXJuPFJlc3VsdD4gaGlkbFJlc3VsdCA9IG1UdW5lci0+dHVuZShjaGFubmVsLCAwKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworICAgIEVYUEVDVF9FUShjaGFubmVsLCBtUHJvZ3JhbUluZm9DYWxsYmFja0RhdGEuY2hhbm5lbCk7CisKKyAgICAvLyB0ZXN0IGdldFByb2dyYW1JbmZvcm1hdGlvbgorICAgIFByb2dyYW1JbmZvIGhhbEluZm87CisgICAgUmVzdWx0IGhhbFJlc3VsdCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0gbVR1bmVyLT5nZXRQcm9ncmFtSW5mb3JtYXRpb24oCisgICAgICAgIFsmXShSZXN1bHQgcmVzdWx0LCBjb25zdCBQcm9ncmFtSW5mbyYgaW5mbykgeworICAgICAgICAgICAgaGFsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgICAgaGFsSW5mbyA9IGluZm87CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKyAgICBpZiAobVJlc3VsdENhbGxiYWNrRGF0YSA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIEVYUEVDVF9FUSh0cnVlLCBoYWxJbmZvLnR1bmVkKTsKKyAgICAgICAgRVhQRUNUX0xFKGhhbEluZm8uY2hhbm5lbCwgdXBwZXJMaW1pdCk7CisgICAgICAgIEVYUEVDVF9HRShoYWxJbmZvLmNoYW5uZWwsIGxvd2VyTGltaXQpOworICAgIH0gZWxzZSB7CisgICAgICAgIEVYUEVDVF9FUShmYWxzZSwgaGFsSW5mby50dW5lZCk7CisgICAgfQorCisgICAgLy8gdGVzdCBjYW5jZWwKKyAgICBtVHVuZXItPnR1bmUobG93ZXJMaW1pdCwgMCk7CisgICAgaGlkbFJlc3VsdCA9IG1UdW5lci0+Y2FuY2VsKCk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKK30KKworLyoqCisgKiBUZXN0IElUdW5lcjo6dHVuZSBmYWlsaW5nIHdoZW4gY2hhbm5lbCBvdXQgb2YgdGhlIHJhbmdlIGlzIHByb3ZpZGVkLgorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgSU5WQUxJRF9BUkdVTUVOVFMgd2hlbiBhcHBsaWNhYmxlCisgKiAgLSB0aGUgbWV0aG9kIHJlY292ZXJzIGFuZCBzdWNjZWVkcyBhZnRlciBwYXNzaW5nIGNvcnJlY3QgYXJndW1lbnRzCisgKi8KK1RFU1RfUChCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBUdW5lRmFpbHNPdXRPZkJvdW5kcykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIEFTU0VSVF9UUlVFKG9wZW5UdW5lcigpKTsKKyAgICBBU1NFUlRfVFJVRShjaGVja0FudGVubmEoKSk7CisKKyAgICAvLyBnZXQgY3VycmVudCBjaGFubmVsIGJvdW5kcworICAgIEJhbmRDb25maWcgaGFsQ29uZmlnOworICAgIFJlc3VsdCBoYWxSZXN1bHQ7CisgICAgYXV0byBjb25maWdSZXN1bHQgPSBtVHVuZXItPmdldENvbmZpZ3VyYXRpb24oWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZykgeworICAgICAgICBoYWxSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIGhhbENvbmZpZyA9IGNvbmZpZzsKKyAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShjb25maWdSZXN1bHQuaXNPaygpKTsKKyAgICBBU1NFUlRfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKworICAgIC8vIHRyeSB0byB0dW5lIHNsaWdodGx5IGFib3ZlIHRoZSBsaW1pdCBhbmQgZXhwZWN0IHRvIGZhaWwKKyAgICBhdXRvIGJhZENoYW5uZWwgPSBoYWxDb25maWcudXBwZXJMaW1pdCArIGhhbENvbmZpZy5zcGFjaW5nc1swXTsKKyAgICBhdXRvIHR1bmVSZXN1bHQgPSBtVHVuZXItPnR1bmUoYmFkQ2hhbm5lbCwgMCk7CisgICAgRVhQRUNUX1RSVUUodHVuZVJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCB0dW5lUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworCisgICAgLy8gdHVuaW5nIGV4YWN0bHkgYXQgdGhlIGxpbWl0IHNob3VsZCBzdWNjZWVkCisgICAgYXV0byBnb29kQ2hhbm5lbCA9IGhhbENvbmZpZy51cHBlckxpbWl0OworICAgIHR1bmVSZXN1bHQgPSBtVHVuZXItPnR1bmUoZ29vZENoYW5uZWwsIDApOworICAgIEVYUEVDVF9UUlVFKHR1bmVSZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgdHVuZVJlc3VsdCk7CisgICAgRVhQRUNUX1RSVUUod2FpdEZvckNhbGxiYWNrKGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMpKTsKK30KKworSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoCisgICAgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdENhc2VzLAorICAgIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoQ2xhc3M6OkFNX0ZNLCBDbGFzczo6U0FULCBDbGFzczo6RFQpKTsKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvQW5kcm9pZC5icCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiNTA0MTYKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvQW5kcm9pZC5icApAQCAtMCwwICsxLDg2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklCcm9hZGNhc3RSYWRpby5oYWwiLAorICAgICAgICAiSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oYWwiLAorICAgICAgICAiSVR1bmVyLmhhbCIsCisgICAgICAgICJJVHVuZXJDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMV9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0Jyb2FkY2FzdFJhZGlvQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnlBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL1R1bmVyQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9UdW5lckNhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMSIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lCcm9hZGNhc3RSYWRpby5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lId0Jyb2FkY2FzdFJhZGlvLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQm5Id0Jyb2FkY2FzdFJhZGlvLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQnBId0Jyb2FkY2FzdFJhZGlvLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQnNCcm9hZGNhc3RSYWRpby5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JSHdCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9Cbkh3QnJvYWRjYXN0UmFkaW9GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQnBId0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0JzQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSUh3VHVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9Cbkh3VHVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9CcEh3VHVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9Cc1R1bmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JSHdUdW5lckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQm5Id1R1bmVyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9CcEh3VHVuZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0JzVHVuZXJDYWxsYmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvQW5kcm9pZC5tayBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjNGM1NWQKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL0lCcm9hZGNhc3RSYWRpby5oYWwgYi9icm9hZGNhc3RyYWRpby8xLjEvSUJyb2FkY2FzdFJhZGlvLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDM3ZDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL0lCcm9hZGNhc3RSYWRpby5oYWwKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjE7CisKK2ltcG9ydCBAMS4wOjpJQnJvYWRjYXN0UmFkaW87CisKK2ludGVyZmFjZSBJQnJvYWRjYXN0UmFkaW8gZXh0ZW5kcyBAMS4wOjpJQnJvYWRjYXN0UmFkaW8geworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgaW1wbGVtZW50YXRpb24gcHJvcGVydGllcy4KKyAgICAgKiBAcmV0dXJuIHByb3BlcnRpZXMgQSBQcm9wZXJ0aWVzIHN0cnVjdHVyZSBjb250YWluaW5nIGltcGxlbWVudGF0aW9uCisgICAgICogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uIGFuZCBjYXBhYmlsaXRpZXMuCisgICAgICovCisgICAgZ2V0UHJvcGVydGllc18xXzEoKSBnZW5lcmF0ZXMgKFByb3BlcnRpZXMgcHJvcGVydGllcyk7CisKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oYWwgYi9icm9hZGNhc3RyYWRpby8xLjEvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNlMWNjMAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmhhbApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMTsKKworaW1wb3J0IEAxLjA6OklCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk7CisKKy8qKgorICogVG8gdXNlIDEuMSBmZWF0dXJlcyB5b3UgbXVzdCBjYXN0IHNwZWNpZmljIGludGVyZmFjZXMgYWZ0ZXIgYmVpbmcgcmV0dXJuZWQgZnJvbSAxLjAgSEFMLAorICogZm9yIGV4YW1wbGUgVjFfMTo6SVR1bmVyOjpjYXN0RnJvbSgpIGFmdGVyIHJldHJpZXZpbmcgaXQgZnJvbSBJQnJvYWRjYXN0UmFkaW86Om9wZW5UdW5lcigpLgorICogVGhlIDEuMSBzZXJ2ZXIgbXVzdCBhbHdheXMgcmV0dXJuIHRoZSAxLjEgdmVyc2lvbiBvZiBzcGVjaWZpYyBpbnRlcmZhY2UuCisgKi8KK2ludGVyZmFjZSBJQnJvYWRjYXN0UmFkaW9GYWN0b3J5IGV4dGVuZHMgQDEuMDo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeSB7Cit9OwpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL0lUdW5lci5oYWwgYi9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmQ0NWM2Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL0lUdW5lci5oYWwKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjE7CisKK2ltcG9ydCBAMS4wOjpJVHVuZXI7CisKK2ludGVyZmFjZSBJVHVuZXIgZXh0ZW5kcyBAMS4wOjpJVHVuZXIgeworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgY3VycmVudCBzdGF0aW9uIGluZm9ybWF0aW9uLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHNjYW4gc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaWYgYW5vdGhlciBlcnJvciBvY2N1cnMKKyAgICAgKiBAcmV0dXJuIGluZm8gQ3VycmVudCBwcm9ncmFtIGluZm9ybWF0aW9uLgorICAgICAqLworICAgIGdldFByb2dyYW1JbmZvcm1hdGlvbl8xXzEoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQsIFByb2dyYW1JbmZvIGluZm8pOworCisgICAgLyoqCisgICAgICogSW5pdGlhdGVzIGEgYmFja2dyb3VuZCBzY2FuIHRvIHVwZGF0ZSBpbnRlcm5hbGx5IGNhY2hlZCBwcm9ncmFtIGxpc3QuCisgICAgICoKKyAgICAgKiBIQUwgY2xpZW50IG1heSBub3QgbmVlZCB0byBpbml0aWF0ZSB0aGUgc2NhbiBleHBsaWNpdGx5IHdpdGggdGhpcyBjYWxsLAorICAgICAqIGllLiBIQUwgaW1wbGVtZW50YXRpb24gTUFZIHBlcmZvcm0gdGhlIHNjYW4gb24gYm9vdC4gSXQncyBhIGNvbW1vbgorICAgICAqIHByYWN0aWNlIGluIGRldmljZXMgd2l0aCB0d28gcGh5c2ljYWwgdHVuZXJzIHdpdGggYmFja2dyb3VuZCBzY2FubmluZy4KKyAgICAgKgorICAgICAqIERldmljZSBtdXN0IGNhbGwgYmFja2dyb3VuZFNjYW5Db21wbGV0ZSBpZiB0aGUgcmVzdWx0IGlzIE9LLCBldmVuIGlmIHRoZQorICAgICAqIHNjYW4gZmFpbHMgbGF0ZXIgKGl0IG11c3QgcGFzcyBwcm9wZXIgcmVzdWx0IHRocm91Z2ggdGhlIGNhbGxiYWNrKS4KKyAgICAgKiBPdGhlcndpc2UsIGJhY2tncm91bmRTY2FuQ29tcGxldGUgbXVzdCBub3QgYmUgY2FsbGVkIGFzIGEgcmVzdWx0IG9mIHRoaXMKKyAgICAgKiBjZXJ0YWluIGF0dGVtcHQuIEl0IG1heSBzdGlsbCBiZSBjYWxsZWQgYXMgYSByZXNwb25zZSB0byBhbm90aGVyIGNhbGwgdG8KKyAgICAgKiBzdGFydEJhY2tncm91bmRTY2FuLCBmb3JtZXIgb3IgbGF0dGVyLgorICAgICAqCisgICAgICogRGV2aWNlIG1heSB1dGlsaXplIGFuIGFscmVhZHkgcnVubmluZyAoYnV0IG5vdCBmaW5pc2hlZCkgc2NhbiBmb3IKKyAgICAgKiBzdWJzZXF1ZW50IGNhbGxzIHRvIHN0YXJ0QmFja2dyb3VuZFNjYW4sIGlzc3VpbmcgYSBzaW5nbGUKKyAgICAgKiBiYWNrZ3JvdW5kU2NhbkNvbXBsZXRlIGNhbGxiYWNrLgorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdGhlIHNjYW4gd2FzIHByb3Blcmx5IHNjaGVkdWxlZCAodGhpcyBkb2VzIG5vdCBtZWFuCisgICAgICogICAgICAgICAgICAgICAgaXQgc3VjY2Vzc2Z1bGx5IGZpbmlzaGVkKS4KKyAgICAgKiAgICAgICAgICAgICAgICBURU1QT1JBUklMWV9VTkFWQUlMQUJMRSBpZiB0aGUgYmFja2dyb3VuZCBzY2FuIGlzCisgICAgICogICAgICAgICAgICAgICAgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUsIGllLiBkdWUgdG8gb25nb2luZyBmb3JlZ3JvdW5kCisgICAgICogICAgICAgICAgICAgICAgcGxheWJhY2sgaW4gc2luZ2xlLXR1bmVyIGRldmljZS4KKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgb3RoZXIgZXJyb3IsIGllLiBIVyBmYWlsdXJlLgorICAgICAqLworICAgIHN0YXJ0QmFja2dyb3VuZFNjYW4oKSBnZW5lcmF0ZXMgKFByb2dyYW1MaXN0UmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBzdGF0aW9uIGxpc3QuCisgICAgICoKKyAgICAgKiBUaGlzIGNhbGwgZG9lcyBub3QgdHJpZ2dlciBhY3R1YWwgc2NhbiwgYnV0IG9wZXJhdGVzIG9uIHRoZSBsaXN0IGNhY2hlZAorICAgICAqIGludGVybmFsbHkgYXQgdGhlIGRyaXZlciBsZXZlbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmaWx0ZXIgdmVuZG9yLXNwZWNpZmljIGZpbHRlciBmb3IgdGhlIHN0YXRpb25zIHRvIGJlIHJldHJpZXZlZC4KKyAgICAgKiAgICAgICAgICAgICAgIEFuIGVtcHR5IHN0cmluZyBNVVNUIHJlc3VsdCBpbiBmdWxsIGxpc3QuCisgICAgICogICAgICAgICAgICAgICBDbGllbnQgYXBwbGljYXRpb24gTVVTVCB2ZXJpZnkgdmVuZG9yL3Byb2R1Y3QgbmFtZQorICAgICAqICAgICAgICAgICAgICAgYmVmb3JlIHNldHRpbmcgdGhpcyBwYXJhbWV0ZXIgdG8gYW55dGhpbmcgZWxzZS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiB0aGUgbGlzdCB3YXMgc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZC4KKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfUkVBRFkgaWYgdGhlIHNjYW4gaXMgaW4gcHJvZ3Jlc3MuCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NUQVJURUQgaWYgdGhlIHNjYW4gaGFzIG5vdCBiZWVuIHN0YXJ0ZWQsIGNsaWVudCBtYXkKKyAgICAgKiAgICAgICAgICAgICAgICBjYWxsIHN0YXJ0QmFja2dyb3VuZFNjYW4gdG8gZml4IHRoaXMuCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFueSBvdGhlciBlcnJvciBvY2N1cnMuCisgICAgICogQHJldHVybiBwcm9ncmFtTGlzdCBMaXN0IG9mIHN0YXRpb25zIGF2YWlsYWJsZSBmb3IgdXNlci4KKyAgICAgKi8KKyAgICBnZXRQcm9ncmFtTGlzdChzdHJpbmcgZmlsdGVyKQorICAgICAgICBnZW5lcmF0ZXMgKFByb2dyYW1MaXN0UmVzdWx0IHJlc3VsdCwgdmVjPFByb2dyYW1JbmZvPiBwcm9ncmFtTGlzdCk7CisKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyQ2FsbGJhY2suaGFsIGIvYnJvYWRjYXN0cmFkaW8vMS4xL0lUdW5lckNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2NlOTg0Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL0lUdW5lckNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMTsKKworaW1wb3J0IEAxLjA6OklUdW5lckNhbGxiYWNrOworCisvKioKKyAqIFNvbWUgbWV0aG9kcyBvZiBAMS4xOjpJVHVuZXJDYWxsYmFjayBhcmUgdXBkYXRlZCB2ZXJzaW9ucyBvZiB0aG9zZSBmcm9tCisgKiBAMS4wOklUdW5lckNhbGxiYWNrLiBBbGwgMS4xIEhBTCBpbXBsZW1lbnRhdGlvbnMgbXVzdCBjYWxsIGJvdGgKKyAqIChlZy4gdHVuZUNvbXBsZXRlIGFuZCB0dW5lQ29tcGxldGVfMV8xKSwgd2hpbGUgMS4xIGNsaWVudHMgbWF5IGlnbm9yZSAxLjAKKyAqIG9uZXMsIHRvIGF2b2lkIHJlY2VpdmluZyBhIGNhbGxiYWNrIHR3aWNlLgorICovCitpbnRlcmZhY2UgSVR1bmVyQ2FsbGJhY2sgZXh0ZW5kcyBAMS4wOjpJVHVuZXJDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gYSB0dW5pbmcgb3BlcmF0aW9uIGNvbXBsZXRlcworICAgICAqIGZvbGxvd2luZyBhIHN0ZXAoKSwgc2NhbigpIG9yIHR1bmUoKSBjb21tYW5kLgorICAgICAqIEBwYXJhbSByZXN1bHQgT0sgaWYgdHVuZSBzdWNjZWVkZWQgb3IgVElNRU9VVCBpbiBjYXNlIG9mIHRpbWUgb3V0LgorICAgICAqIEBwYXJhbSBpbmZvIEEgUHJvZ3JhbUluZm8gc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIHR1bmVkIHN0YXRpb24uCisgICAgICovCisgICAgb25ld2F5IHR1bmVDb21wbGV0ZV8xXzEoUmVzdWx0IHJlc3VsdCwgUHJvZ3JhbUluZm8gaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiBhIGZyZXF1ZW5jeSBzd2l0Y2ggb2NjdXJzLgorICAgICAqIEBwYXJhbSBpbmZvIEEgUHJvZ3JhbUluZm8gc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIG5ldyB0dW5lZCBzdGF0aW9uLgorICAgICAqLworICAgIG9uZXdheSBhZlN3aXRjaF8xXzEoUHJvZ3JhbUluZm8gaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYnkgdGhlIEhBTCB3aGVuIGJhY2tncm91bmQgc2NhbiBpbml0aWF0ZWQgYnkgc3RhcnRCYWNrZ3JvdW5kU2NhbgorICAgICAqIGZpbmlzaGVzLiBJZiB0aGUgbGlzdCB3YXMgY2hhbmdlZCwgcHJvZ3JhbUxpc3RDaGFuZ2VkIG11c3QgYmUgY2FsbGVkIHRvby4KKyAgICAgKiBAcGFyYW0gcmVzdWx0IE9LIGlmIHRoZSBzY2FuIHN1Y2NlZWRlZCwgY2xpZW50IG1heSByZXRyaWV2ZSB0aGUgYWN0dWFsCisgICAgICogICAgICAgICAgICAgICBsaXN0IHdpdGggSVR1bmVyOjpnZXRQcm9ncmFtTGlzdC4KKyAgICAgKiAgICAgICAgICAgICAgIFRFTVBPUkFSSUxZX1VOQVZBSUxBQkxFIGlmIHRoZSBzY2FuIHdhcyBpbnRlcnJ1cHRlZCBkdWUgdG8KKyAgICAgKiAgICAgICAgICAgICAgIGhhcmR3YXJlIGJlY29taW5nIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlLgorICAgICAqICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIG90aGVyIGVycm9yLCBpZS4gSFcgZmFpbHVyZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgYmFja2dyb3VuZFNjYW5Db21wbGV0ZShQcm9ncmFtTGlzdFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGVhY2ggdGltZSB0aGUgaW50ZXJuYWxseSBjYWNoZWQgcHJvZ3JhbSBsaXN0IGNoYW5nZXMuIEhBTCBtYXkgbm90CisgICAgICogY2FsbCBpdCBpbW1lZGlhdGVseSwgaWUuIGl0IG1heSB3YWl0IGZvciBhIHNob3J0IHRpbWUgdG8gYWNjdW11bGF0ZQorICAgICAqIG11bHRpcGxlIGxpc3QgY2hhbmdlIG5vdGlmaWNhdGlvbnMgaW50byBhIHNpbmdsZSBldmVudC4KKyAgICAgKgorICAgICAqIEl0IG1heSBiZSB0cmlnZ2VyZWQgZWl0aGVyIGJ5IGFuIGV4cGxpY2l0bHkgaXNzdWVkIGJhY2tncm91bmQgc2NhbiwKKyAgICAgKiBvciBhIHNjYW4gaXNzdWVkIGJ5IHRoZSBkZXZpY2UgaW50ZXJuYWxseS4KKyAgICAgKgorICAgICAqIENsaWVudCBtYXkgcmV0cmlldmUgdGhlIGFjdHVhbCBsaXN0IHdpdGggSVR1bmVyOjpnZXRQcm9ncmFtTGlzdC4KKyAgICAgKi8KKyAgICBvbmV3YXkgcHJvZ3JhbUxpc3RDaGFuZ2VkKCk7Cit9OwpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL1dBUk5JTkcgYi9icm9hZGNhc3RyYWRpby8xLjEvV0FSTklORwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODY3Y2ZhCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL1dBUk5JTkcKQEAgLTAsMCArMSBAQAorVGhpcyBpcyBleHBlcmltZW50YWwgaW50ZXJmYWNlLCBkbyBub3QgdXNlIGl0IHlldC4KZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0FuZHJvaWQubWsgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMzJkNTAKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNDYgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjEtaW1wbAorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9DRkxBR1MgKz0gLVdlcnJvciAtV2FsbCAtV2V4dHJhCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIEJyb2FkY2FzdFJhZGlvLmNwcCBcCisgICAgQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmNwcCBcCisgICAgVHVuZXIuY3BwIFwKKyAgICBVdGlscy5jcHAKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjEgXAorICAgIGxpYnJhZGlvX21ldGFkYXRhCisKK2lmZXEgKCQoc3RyaXAgJChBVURJT1NFUlZFUl9NVUxUSUxJQikpLCkKK0xPQ0FMX01VTFRJTElCIDo9IDMyCitlbHNlCitMT0NBTF9NVUxUSUxJQiA6PSAkKEFVRElPU0VSVkVSX01VTFRJTElCKQorZW5kaWYKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uY3BwIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4YzliOTMKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpby5jcHAKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJCcm9hZGNhc3RSYWRpbyIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkJyb2FkY2FzdFJhZGlvLmgiCisjaW5jbHVkZSAiVHVuZXIuaCIKKyNpbmNsdWRlICJVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK0Jyb2FkY2FzdFJhZGlvOjpCcm9hZGNhc3RSYWRpbyhDbGFzcyBjbGFzc0lkKQorICAgICAgICA6IG1TdGF0dXMoUmVzdWx0OjpOT1RfSU5JVElBTElaRUQpLCBtQ2xhc3NJZChjbGFzc0lkKSwgbUh3RGV2aWNlKE5VTEwpCit7Cit9CisKK0Jyb2FkY2FzdFJhZGlvOjp+QnJvYWRjYXN0UmFkaW8oKQoreworICAgIGlmIChtSHdEZXZpY2UgIT0gTlVMTCkgeworICAgICAgICByYWRpb19od19kZXZpY2VfY2xvc2UobUh3RGV2aWNlKTsKKyAgICB9Cit9CisKK3ZvaWQgQnJvYWRjYXN0UmFkaW86Om9uRmlyc3RSZWYoKQoreworICAgIGNvbnN0IGh3X21vZHVsZV90ICptb2Q7CisgICAgaW50IHJjOworICAgIEFMT0dJKCIlcyBtQ2xhc3NJZCAlZCIsIF9fRlVOQ1RJT05fXywgbUNsYXNzSWQpOworCisgICAgbUh3RGV2aWNlID0gTlVMTDsKKyAgICBjb25zdCBjaGFyICpjbGFzc1N0cmluZyA9IFV0aWxzOjpnZXRDbGFzc1N0cmluZyhtQ2xhc3NJZCk7CisgICAgaWYgKGNsYXNzU3RyaW5nID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgY2xhc3MgSUQgJWQiLCBtQ2xhc3NJZCk7CisgICAgICAgIG1TdGF0dXMgPSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQUxPR0koIiVzIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCAlcyAlcyIsCisgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCwgY2xhc3NTdHJpbmcpOworCisgICAgcmMgPSBod19nZXRfbW9kdWxlX2J5X2NsYXNzKFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCwgY2xhc3NTdHJpbmcsICZtb2QpOworICAgIGlmIChyYyAhPSAwKSB7CisgICAgICAgIEFMT0dFKCJjb3VsZG4ndCBsb2FkIHJhZGlvIG1vZHVsZSAlcy4lcyAoJXMpIiwKKyAgICAgICAgICAgICAgICBSQURJT19IQVJEV0FSRV9NT0RVTEVfSUQsIGNsYXNzU3RyaW5nLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICByYyA9IHJhZGlvX2h3X2RldmljZV9vcGVuKG1vZCwgJm1Id0RldmljZSk7CisgICAgaWYgKHJjICE9IDApIHsKKyAgICAgICAgQUxPR0UoImNvdWxkbid0IG9wZW4gcmFkaW8gaHcgZGV2aWNlIGluICVzLiVzICglcykiLAorICAgICAgICAgICAgICAgIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCwgInByaW1hcnkiLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgbUh3RGV2aWNlID0gTlVMTDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobUh3RGV2aWNlLT5jb21tb24udmVyc2lvbiAhPSBSQURJT19ERVZJQ0VfQVBJX1ZFUlNJT05fQ1VSUkVOVCkgeworICAgICAgICBBTE9HRSgid3JvbmcgcmFkaW8gaHcgZGV2aWNlIHZlcnNpb24gJTA0eCIsIG1Id0RldmljZS0+Y29tbW9uLnZlcnNpb24pOworICAgICAgICByYWRpb19od19kZXZpY2VfY2xvc2UobUh3RGV2aWNlKTsKKyAgICAgICAgbUh3RGV2aWNlID0gTlVMTDsKKyAgICB9IGVsc2UgeworICAgICAgICBtU3RhdHVzID0gUmVzdWx0OjpPSzsKKyAgICB9Cit9CisKK2ludCBCcm9hZGNhc3RSYWRpbzo6Y2xvc2VIYWxUdW5lcihjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmhhbFR1bmVyKQoreworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAtRU5PREVWOworICAgIH0KKyAgICBpZiAoaGFsVHVuZXIgPT0gMCkgeworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisgICAgcmV0dXJuIG1Id0RldmljZS0+Y2xvc2VfdHVuZXIobUh3RGV2aWNlLCBoYWxUdW5lcik7Cit9CisKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8xOjpJQnJvYWRjYXN0UmFkaW8gZm9sbG93LgorUmV0dXJuPHZvaWQ+IEJyb2FkY2FzdFJhZGlvOjpnZXRQcm9wZXJ0aWVzKGdldFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpCit7CisgICAgaW50IHJjOworICAgIHJhZGlvX2hhbF9wcm9wZXJ0aWVzX3QgaGFsUHJvcGVydGllczsKKyAgICBQcm9wZXJ0aWVzIHByb3BlcnRpZXM7CisKKyAgICBpZiAobUh3RGV2aWNlID09IE5VTEwpIHsKKyAgICAgICAgcmMgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIHJjID0gbUh3RGV2aWNlLT5nZXRfcHJvcGVydGllcyhtSHdEZXZpY2UsICZoYWxQcm9wZXJ0aWVzKTsKKyAgICBpZiAocmMgPT0gMCkgeworICAgICAgICBVdGlsczo6Y29udmVydFByb3BlcnRpZXNGcm9tSGFsKCZwcm9wZXJ0aWVzLCAmaGFsUHJvcGVydGllcyk7CisgICAgfQorCitleGl0OgorICAgIF9oaWRsX2NiKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKSwgcHJvcGVydGllcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEJyb2FkY2FzdFJhZGlvOjpnZXRQcm9wZXJ0aWVzXzFfMShnZXRQcm9wZXJ0aWVzXzFfMV9jYiBfaGlkbF9jYiBfX3VudXNlZCkKK3sKKyAgICByZXR1cm4gU3RhdHVzOjpmcm9tRXhjZXB0aW9uQ29kZShTdGF0dXM6OkVYX1VOU1VQUE9SVEVEX09QRVJBVElPTik7Cit9CisKK1JldHVybjx2b2lkPiBCcm9hZGNhc3RSYWRpbzo6b3BlblR1bmVyKGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZywgYm9vbCBhdWRpbywKKyAgICBjb25zdCBzcDxWMV8wOjpJVHVuZXJDYWxsYmFjaz4mIGNhbGxiYWNrLCBvcGVuVHVuZXJfY2IgX2hpZGxfY2IpCit7CisgICAgc3A8VHVuZXI+IHR1bmVySW1wbCA9IG5ldyBUdW5lcihjYWxsYmFjaywgdGhpcyk7CisKKyAgICByYWRpb19oYWxfYmFuZF9jb25maWdfdCBoYWxDb25maWc7CisgICAgY29uc3Qgc3RydWN0IHJhZGlvX3R1bmVyICpoYWxUdW5lcjsKKyAgICBVdGlsczo6Y29udmVydEJhbmRDb25maWdUb0hhbCgmaGFsQ29uZmlnLCAmY29uZmlnKTsKKyAgICBpbnQgcmMgPSBtSHdEZXZpY2UtPm9wZW5fdHVuZXIobUh3RGV2aWNlLCAmaGFsQ29uZmlnLCBhdWRpbywgVHVuZXI6OmNhbGxiYWNrLAorICAgICAgICAgICAgdHVuZXJJbXBsLmdldCgpLCAmaGFsVHVuZXIpOworICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgIHR1bmVySW1wbC0+c2V0SGFsVHVuZXIoaGFsVHVuZXIpOworICAgIH0KKworICAgIF9oaWRsX2NiKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKSwgdHVuZXJJbXBsKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzEKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uaCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2RlMzFhMAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMV9CUk9BRENBU1RSQURJT19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMV9CUk9BRENBU1RSQURJT19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW8uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS90eXBlcy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3JhZGlvLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgVjFfMDo6Q2xhc3M7Cit1c2luZyBWMV8wOjpCYW5kQ29uZmlnOwordXNpbmcgVjFfMDo6UHJvcGVydGllczsKKworc3RydWN0IEJyb2FkY2FzdFJhZGlvIDogcHVibGljIFYxXzE6OklCcm9hZGNhc3RSYWRpbyB7CisKKyAgICBCcm9hZGNhc3RSYWRpbyhDbGFzcyBjbGFzc0lkKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMTo6SUJyb2FkY2FzdFJhZGlvIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJvcGVydGllcyhnZXRQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJvcGVydGllc18xXzEoZ2V0UHJvcGVydGllc18xXzFfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBvcGVuVHVuZXIoY29uc3QgQmFuZENvbmZpZyYgY29uZmlnLCBib29sIGF1ZGlvLAorICAgICAgICAgICAgY29uc3Qgc3A8VjFfMDo6SVR1bmVyQ2FsbGJhY2s+JiBjYWxsYmFjaywgb3BlblR1bmVyX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIC8vIFJlZkJhc2UKKyAgICB2aXJ0dWFsIHZvaWQgb25GaXJzdFJlZigpIG92ZXJyaWRlOworCisgICAgUmVzdWx0IGluaXRDaGVjaygpIHsgcmV0dXJuIG1TdGF0dXM7IH0KKyAgICBpbnQgY2xvc2VIYWxUdW5lcihjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmhhbFR1bmVyKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIH5Ccm9hZGNhc3RSYWRpbygpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBzQ2xhc3NNb2R1bGVOYW1lc1tdOworCisgICAgUmVzdWx0IGNvbnZlcnRIYWxSZXN1bHQoaW50IHJjKTsKKyAgICB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbChCYW5kQ29uZmlnICpjb25maWcsCisgICAgICAgICAgICBjb25zdCByYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnKTsKKyAgICB2b2lkIGNvbnZlcnRQcm9wZXJ0aWVzRnJvbUhhbChQcm9wZXJ0aWVzICpwcm9wZXJ0aWVzLAorICAgICAgICAgICAgY29uc3QgcmFkaW9faGFsX3Byb3BlcnRpZXNfdCAqaGFsUHJvcGVydGllcyk7CisgICAgdm9pZCBjb252ZXJ0QmFuZENvbmZpZ1RvSGFsKHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190ICpoYWxDb25maWcsCisgICAgICAgICAgICBjb25zdCBCYW5kQ29uZmlnICpjb25maWcpOworCisgICAgUmVzdWx0IG1TdGF0dXM7CisgICAgQ2xhc3MgbUNsYXNzSWQ7CisgICAgc3RydWN0IHJhZGlvX2h3X2RldmljZSAqbUh3RGV2aWNlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMQorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX0JST0FEQ0FTVFJBRElPX0gKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5jcHAgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4YjZjMzkKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgIkJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIgorI2luY2x1ZGUgIkJyb2FkY2FzdFJhZGlvLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJQnJvYWRjYXN0UmFkaW9GYWN0b3J5IGZvbGxvdy4KK1JldHVybjx2b2lkPiBCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk6OmNvbm5lY3RNb2R1bGUoQ2xhc3MgY2xhc3NJZCwgY29ubmVjdE1vZHVsZV9jYiBfaGlkbF9jYikgIHsKKyAgICBzcDxCcm9hZGNhc3RSYWRpbz4gaW1wbCA9IG5ldyBCcm9hZGNhc3RSYWRpbyhjbGFzc0lkKTsKKyAgICBSZXN1bHQgcmV0dmFsID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgaWYgKGltcGwgIT0gMCkgeworICAgICAgICByZXR2YWwgPSBpbXBsLT5pbml0Q2hlY2soKTsKKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCBpbXBsKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkqIEhJRExfRkVUQ0hfSUJyb2FkY2FzdFJhZGlvRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBCcm9hZGNhc3RSYWRpb0ZhY3RvcnkoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMQorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlYjg1MTQKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX0JST0FEQ0FTVFJBRElPRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMV9CUk9BRENBU1RSQURJT0ZBQ1RPUllfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL3R5cGVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgVjFfMDo6Q2xhc3M7CisKK3N0cnVjdCBCcm9hZGNhc3RSYWRpb0ZhY3RvcnkgOiBwdWJsaWMgSUJyb2FkY2FzdFJhZGlvRmFjdG9yeSB7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJQnJvYWRjYXN0UmFkaW9GYWN0b3J5IGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gY29ubmVjdE1vZHVsZShDbGFzcyBjbGFzc0lkLCBjb25uZWN0TW9kdWxlX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKK307CisKK2V4dGVybiAiQyIgSUJyb2FkY2FzdFJhZGlvRmFjdG9yeSogSElETF9GRVRDSF9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8xCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzFfQlJPQURDQVNUUkFESU9GQUNUT1JZX0gKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L1R1bmVyLmNwcCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L1R1bmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjgwNzU0Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVHVuZXIuY3BwCkBAIC0wLDAgKzEsMjE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJUdW5lciIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkJyb2FkY2FzdFJhZGlvLmgiCisjaW5jbHVkZSAiVHVuZXIuaCIKKyNpbmNsdWRlICJVdGlscy5oIgorI2luY2x1ZGUgPHN5c3RlbS9SYWRpb01ldGFkYXRhV3JhcHBlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3ZvaWQgVHVuZXI6Om9uQ2FsbGJhY2socmFkaW9faGFsX2V2ZW50X3QgKmhhbEV2ZW50KQoreworICAgIEJhbmRDb25maWcgY29uZmlnOworICAgIFByb2dyYW1JbmZvIGluZm87CisgICAgaGlkbF92ZWM8TWV0YURhdGE+IG1ldGFkYXRhOworCisgICAgaWYgKG1DYWxsYmFjayAhPSAwKSB7CisgICAgICAgIHN3aXRjaChoYWxFdmVudC0+dHlwZSkgeworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX0NPTkZJRzoKKyAgICAgICAgICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ0Zyb21IYWwoJmNvbmZpZywgJmhhbEV2ZW50LT5jb25maWcpOworICAgICAgICAgICAgbUNhbGxiYWNrLT5jb25maWdDaGFuZ2UoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoaGFsRXZlbnQtPnN0YXR1cyksIGNvbmZpZyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9BTlRFTk5BOgorICAgICAgICAgICAgbUNhbGxiYWNrLT5hbnRlbm5hU3RhdGVDaGFuZ2UoaGFsRXZlbnQtPm9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX1RVTkVEOgorICAgICAgICAgICAgVXRpbHM6OmNvbnZlcnRQcm9ncmFtSW5mb0Zyb21IYWwoJmluZm8sICZoYWxFdmVudC0+aW5mbyk7CisgICAgICAgICAgICBpZiAobUNhbGxiYWNrMV8xICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2sxXzEtPnR1bmVDb21wbGV0ZV8xXzEoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoaGFsRXZlbnQtPnN0YXR1cyksIGluZm8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbUNhbGxiYWNrLT50dW5lQ29tcGxldGUoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoaGFsRXZlbnQtPnN0YXR1cyksIGluZm8uYmFzZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9NRVRBREFUQTogeworICAgICAgICAgICAgdWludDMyX3QgY2hhbm5lbDsKKyAgICAgICAgICAgIHVpbnQzMl90IHN1Yl9jaGFubmVsOworICAgICAgICAgICAgaWYgKHJhZGlvX21ldGFkYXRhX2dldF9jaGFubmVsKGhhbEV2ZW50LT5tZXRhZGF0YSwgJmNoYW5uZWwsICZzdWJfY2hhbm5lbCkgPT0gMCkgeworICAgICAgICAgICAgICAgIFV0aWxzOjpjb252ZXJ0TWV0YURhdGFGcm9tSGFsKG1ldGFkYXRhLCBoYWxFdmVudC0+bWV0YWRhdGEpOworICAgICAgICAgICAgICAgIG1DYWxsYmFjay0+bmV3TWV0YWRhdGEoY2hhbm5lbCwgc3ViX2NoYW5uZWwsIG1ldGFkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgIGNhc2UgUkFESU9fRVZFTlRfVEE6CisgICAgICAgICAgICBtQ2FsbGJhY2stPnRyYWZmaWNBbm5vdW5jZW1lbnQoaGFsRXZlbnQtPm9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX0FGX1NXSVRDSDoKKyAgICAgICAgICAgIFV0aWxzOjpjb252ZXJ0UHJvZ3JhbUluZm9Gcm9tSGFsKCZpbmZvLCAmaGFsRXZlbnQtPmluZm8pOworICAgICAgICAgICAgaWYgKG1DYWxsYmFjazFfMSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgbUNhbGxiYWNrMV8xLT5hZlN3aXRjaF8xXzEoaW5mbyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtQ2FsbGJhY2stPmFmU3dpdGNoKGluZm8uYmFzZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9FQToKKyAgICAgICAgICAgIG1DYWxsYmFjay0+ZW1lcmdlbmN5QW5ub3VuY2VtZW50KGhhbEV2ZW50LT5vbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9IV19GQUlMVVJFOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgbUNhbGxiYWNrLT5oYXJkd2FyZUZhaWx1cmUoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCisvL3N0YXRpYwordm9pZCBUdW5lcjo6Y2FsbGJhY2socmFkaW9faGFsX2V2ZW50X3QgKmhhbEV2ZW50LCB2b2lkICpjb29raWUpCit7CisgICAgd3A8VHVuZXI+IHdlYWsocmVpbnRlcnByZXRfY2FzdDxUdW5lcio+KGNvb2tpZSkpOworICAgIHNwPFR1bmVyPiB0dW5lciA9IHdlYWsucHJvbW90ZSgpOworICAgIGlmICh0dW5lciA9PSAwKSByZXR1cm47CisgICAgdHVuZXItPm9uQ2FsbGJhY2soaGFsRXZlbnQpOworfQorCitUdW5lcjo6VHVuZXIoY29uc3Qgc3A8VjFfMDo6SVR1bmVyQ2FsbGJhY2s+JiBjYWxsYmFjaywgY29uc3Qgd3A8QnJvYWRjYXN0UmFkaW8+JiBwYXJlbnREZXZpY2UpCisgICAgICAgIDogbUhhbFR1bmVyKE5VTEwpLCBtQ2FsbGJhY2soY2FsbGJhY2spLCBtQ2FsbGJhY2sxXzEoSVR1bmVyQ2FsbGJhY2s6OmNhc3RGcm9tKGNhbGxiYWNrKSksCisgICAgICAgIG1QYXJlbnREZXZpY2UocGFyZW50RGV2aWNlKQoreworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7Cit9CisKKworVHVuZXI6On5UdW5lcigpCit7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBjb25zdCBzcDxCcm9hZGNhc3RSYWRpbz4gcGFyZW50RGV2aWNlID0gbVBhcmVudERldmljZS5wcm9tb3RlKCk7CisgICAgaWYgKHBhcmVudERldmljZSAhPSAwKSB7CisgICAgICAgIHBhcmVudERldmljZS0+Y2xvc2VIYWxUdW5lcihtSGFsVHVuZXIpOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8xOjpJVHVuZXIgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gVHVuZXI6OnNldENvbmZpZ3VyYXRpb24oY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSAgeworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgcmFkaW9faGFsX2JhbmRfY29uZmlnX3QgaGFsQ29uZmlnOworICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ1RvSGFsKCZoYWxDb25maWcsICZjb25maWcpOworICAgIGludCByYyA9IG1IYWxUdW5lci0+c2V0X2NvbmZpZ3VyYXRpb24obUhhbFR1bmVyLCAmaGFsQ29uZmlnKTsKKyAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpOworfQorCitSZXR1cm48dm9pZD4gVHVuZXI6OmdldENvbmZpZ3VyYXRpb24oZ2V0Q29uZmlndXJhdGlvbl9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQgcmM7CisgICAgcmFkaW9faGFsX2JhbmRfY29uZmlnX3QgaGFsQ29uZmlnOworICAgIEJhbmRDb25maWcgY29uZmlnOworCisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmMgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIHJjID0gbUhhbFR1bmVyLT5nZXRfY29uZmlndXJhdGlvbihtSGFsVHVuZXIsICZoYWxDb25maWcpOworICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ0Zyb21IYWwoJmNvbmZpZywgJmhhbENvbmZpZyk7CisgICAgfQorCitleGl0OgorICAgIF9oaWRsX2NiKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKSwgY29uZmlnKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBUdW5lcjo6c2NhbihEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSAgeworICAgIGlmIChtSGFsVHVuZXIgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoLUVOT0RFVik7CisgICAgfQorICAgIGludCByYyA9IG1IYWxUdW5lci0+c2NhbihtSGFsVHVuZXIsIHN0YXRpY19jYXN0PHJhZGlvX2RpcmVjdGlvbl90PihkaXJlY3Rpb24pLCBza2lwU3ViQ2hhbm5lbCk7CisgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVHVuZXI6OnN0ZXAoRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBza2lwU3ViQ2hhbm5lbCkgIHsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KC1FTk9ERVYpOworICAgIH0KKyAgICBpbnQgcmMgPSBtSGFsVHVuZXItPnN0ZXAobUhhbFR1bmVyLCBzdGF0aWNfY2FzdDxyYWRpb19kaXJlY3Rpb25fdD4oZGlyZWN0aW9uKSwgc2tpcFN1YkNoYW5uZWwpOworICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFR1bmVyOjp0dW5lKHVpbnQzMl90IGNoYW5uZWwsIHVpbnQzMl90IHN1YkNoYW5uZWwpICB7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgaW50IHJjID0gbUhhbFR1bmVyLT50dW5lKG1IYWxUdW5lciwgY2hhbm5lbCwgc3ViQ2hhbm5lbCk7CisgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVHVuZXI6OmNhbmNlbCgpICB7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgaW50IHJjID0gbUhhbFR1bmVyLT5jYW5jZWwobUhhbFR1bmVyKTsKKyAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpOworfQorCitSZXR1cm48dm9pZD4gVHVuZXI6OmdldFByb2dyYW1JbmZvcm1hdGlvbihnZXRQcm9ncmFtSW5mb3JtYXRpb25fY2IgX2hpZGxfY2IpICB7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICByZXR1cm4gZ2V0UHJvZ3JhbUluZm9ybWF0aW9uXzFfMShbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3QgUHJvZ3JhbUluZm8mIGluZm8pIHsKKyAgICAgICAgX2hpZGxfY2IocmVzdWx0LCBpbmZvLmJhc2UpOworICAgIH0pOworfQorCitSZXR1cm48dm9pZD4gVHVuZXI6OmdldFByb2dyYW1JbmZvcm1hdGlvbl8xXzEoZ2V0UHJvZ3JhbUluZm9ybWF0aW9uXzFfMV9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQgcmM7CisgICAgcmFkaW9fcHJvZ3JhbV9pbmZvX3QgaGFsSW5mbzsKKyAgICBSYWRpb01ldGFkYXRhV3JhcHBlciBtZXRhZGF0YVdyYXBwZXIoJmhhbEluZm8ubWV0YWRhdGEpOworICAgIFByb2dyYW1JbmZvIGluZm87CisKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIGlmIChtSGFsVHVuZXIgPT0gTlVMTCkgeworICAgICAgICByYyA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICByYyA9IG1IYWxUdW5lci0+Z2V0X3Byb2dyYW1faW5mb3JtYXRpb24obUhhbFR1bmVyLCAmaGFsSW5mbyk7CisgICAgaWYgKHJjID09IDApIHsKKyAgICAgICAgVXRpbHM6OmNvbnZlcnRQcm9ncmFtSW5mb0Zyb21IYWwoJmluZm8sICZoYWxJbmZvKTsKKyAgICB9CisKK2V4aXQ6CisgICAgX2hpZGxfY2IoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpLCBpbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UHJvZ3JhbUxpc3RSZXN1bHQ+IFR1bmVyOjpzdGFydEJhY2tncm91bmRTY2FuKCkgeworICAgIHJldHVybiBQcm9ncmFtTGlzdFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworfQorCitSZXR1cm48dm9pZD4gVHVuZXI6OmdldFByb2dyYW1MaXN0KGNvbnN0IGhpZGxfc3RyaW5nJiBmaWx0ZXIgX191bnVzZWQsIGdldFByb2dyYW1MaXN0X2NiIF9oaWRsX2NiKSB7CisgICAgaGlkbF92ZWM8UHJvZ3JhbUluZm8+IHBMaXN0OworICAgIC8vIFRPRE8oYi8zNDA1NDgxMyk6IGRvIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24uCisgICAgX2hpZGxfY2IoUHJvZ3JhbUxpc3RSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRCwgcExpc3QpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMQorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9UdW5lci5oIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVHVuZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2I0NTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVHVuZXIuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX1RVTkVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX1RVTkVSX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lUdW5lci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lUdW5lckNhbGxiYWNrLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgVjFfMDo6RGlyZWN0aW9uOworCitzdHJ1Y3QgQnJvYWRjYXN0UmFkaW87CisKK3N0cnVjdCBUdW5lciA6IHB1YmxpYyBJVHVuZXIgeworCisgICAgVHVuZXIoY29uc3Qgc3A8VjFfMDo6SVR1bmVyQ2FsbGJhY2s+JiBjYWxsYmFjaywgY29uc3Qgd3A8QnJvYWRjYXN0UmFkaW8+JiBtUGFyZW50RGV2aWNlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMTo6SVR1bmVyIGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWd1cmF0aW9uKGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZ3VyYXRpb24oZ2V0Q29uZmlndXJhdGlvbl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2NhbihEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdGVwKERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgc2tpcFN1YkNoYW5uZWwpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHR1bmUodWludDMyX3QgY2hhbm5lbCwgdWludDMyX3Qgc3ViQ2hhbm5lbCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2FuY2VsKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFByb2dyYW1JbmZvcm1hdGlvbihnZXRQcm9ncmFtSW5mb3JtYXRpb25fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQcm9ncmFtSW5mb3JtYXRpb25fMV8xKGdldFByb2dyYW1JbmZvcm1hdGlvbl8xXzFfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxQcm9ncmFtTGlzdFJlc3VsdD4gc3RhcnRCYWNrZ3JvdW5kU2NhbigpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQcm9ncmFtTGlzdChjb25zdCBoaWRsX3N0cmluZyYgZmlsdGVyLCBnZXRQcm9ncmFtTGlzdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBzdGF0aWMgdm9pZCBjYWxsYmFjayhyYWRpb19oYWxfZXZlbnRfdCAqaGFsRXZlbnQsIHZvaWQgKmNvb2tpZSk7CisgICAgdm9pZCBvbkNhbGxiYWNrKHJhZGlvX2hhbF9ldmVudF90ICpoYWxFdmVudCk7CisKKyAgICB2b2lkIHNldEhhbFR1bmVyKGNvbnN0IHN0cnVjdCByYWRpb190dW5lciAqaGFsVHVuZXIpIHsgbUhhbFR1bmVyID0gaGFsVHVuZXI7IH0KKyAgICBjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmdldEhhbFR1bmVyKCkgeyByZXR1cm4gbUhhbFR1bmVyOyB9CisKK3ByaXZhdGU6CisgICAgflR1bmVyKCk7CisKKyAgICBjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKm1IYWxUdW5lcjsKKyAgICBjb25zdCBzcDxWMV8wOjpJVHVuZXJDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgIGNvbnN0IHNwPFYxXzE6OklUdW5lckNhbGxiYWNrPiBtQ2FsbGJhY2sxXzE7CisgICAgY29uc3Qgd3A8QnJvYWRjYXN0UmFkaW8+IG1QYXJlbnREZXZpY2U7Cit9OworCisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzEKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMV9UVU5FUl9ICmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9VdGlscy5jcHAgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9VdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTIxMzQ0ZQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L1V0aWxzLmNwcApAQCAtMCwwICsxLDI5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgIkJyb2FkY2FzdFJhZGlvSGFsVXRpbHMiCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8c3lzdGVtL3JhZGlvX21ldGFkYXRhLmg+CisKKyNpbmNsdWRlICJVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIFYxXzA6OkJhbmQ7Cit1c2luZyBWMV8wOjpEZWVtcGhhc2lzOwordXNpbmcgVjFfMDo6RGlyZWN0aW9uOwordXNpbmcgVjFfMDo6TWV0YWRhdGFLZXk7Cit1c2luZyBWMV8wOjpNZXRhZGF0YVR5cGU7Cit1c2luZyBWMV8wOjpSZHM7CisKK2NvbnN0IGNoYXIgKlV0aWxzOjpzQ2xhc3NNb2R1bGVOYW1lc1tdID0geworICAgIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRF9GTSwgLyogY29ycmVzcG9uZHMgdG8gUkFESU9fQ0xBU1NfQU1fRk0gKi8KKyAgICBSQURJT19IQVJEV0FSRV9NT0RVTEVfSURfU0FULCAgLyogY29ycmVzcG9uZHMgdG8gUkFESU9fQ0xBU1NfU0FUICovCisgICAgUkFESU9fSEFSRFdBUkVfTU9EVUxFX0lEX0RULCAgIC8qIGNvcnJlc3BvbmRzIHRvIFJBRElPX0NMQVNTX0RUICovCit9OworCisvLyBtYWtlIHN1cmUgSElETCBlbnVtIHZhbHVlcyBhcmUgYWxpZ25lZCB3aXRoIGxlZ2FjeSB2YWx1ZXMKK3N0YXRpY19hc3NlcnQoUkFESU9fQ0xBU1NfQU1fRk0gPT0gc3RhdGljX2Nhc3Q8aW50PihDbGFzczo6QU1fRk0pLAorICAgICAgICAiQU0vRk0gY2xhc3MgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fQ0xBU1NfU0FUID09IHN0YXRpY19jYXN0PGludD4oQ2xhc3M6OlNBVCksCisgICAgICAgICJTQVQgY2xhc3MgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fQ0xBU1NfRFQgPT0gc3RhdGljX2Nhc3Q8aW50PihDbGFzczo6RFQpLAorICAgICAgICAiRFQgY2xhc3MgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKKworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0FNID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6QU0pLAorICAgICAgICAiQU0gYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0ZNID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6Rk0pLAorICAgICAgICAiRk0gYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0FNX0hEID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6QU1fSEQpLAorICAgICAgICAiQU0gSEQgYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0ZNX0hEID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6Rk1fSEQpLAorICAgICAgICAiRk0gSEQgYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworCitzdGF0aWNfYXNzZXJ0KFJBRElPX1JEU19OT05FID09IHN0YXRpY19jYXN0PGludD4oUmRzOjpOT05FKSwKKyAgICAgICAgIlJEUyBOT05FIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX1JEU19XT1JMRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFJkczo6V09STEQpLAorICAgICAgICAiUkRTIFdPUkxEIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX1JEU19VUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KFJkczo6VVMpLAorICAgICAgICAiUkRTIFVTIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fREVFTVBIQVNJU181MCA9PSBzdGF0aWNfY2FzdDxpbnQ+KERlZW1waGFzaXM6OkQ1MCksCisgICAgICAgICJEZS1lbXBoYXNpcyA1MCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19ERUVNUEhBU0lTXzc1ID09IHN0YXRpY19jYXN0PGludD4oRGVlbXBoYXNpczo6RDc1KSwKKyAgICAgICAgIkRlLWVtcGhhc2lzIDc1IG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fRElSRUNUSU9OX1VQID09IHN0YXRpY19jYXN0PGludD4oRGlyZWN0aW9uOjpVUCksCisgICAgICAgICJEaXJlY3Rpb24gVXAgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fRElSRUNUSU9OX0RPV04gPT0gc3RhdGljX2Nhc3Q8aW50PihEaXJlY3Rpb246OkRPV04pLAorICAgICAgICAiRGlyZWN0aW9uIFVwIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfVFlQRV9JTlZBTElEID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFUeXBlOjpJTlZBTElEKSwKKyAgICAgICAgIk1ldGFkYXRhIHR5cGUgSU5WQUxJRCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9UWVBFX0lOVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhVHlwZTo6SU5UKSwKKyAgICAgICAgIk1ldGFkYXRhIHR5cGUgSU5UIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX1RZUEVfVEVYVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhVHlwZTo6VEVYVCksCisgICAgICAgICJNZXRhZGF0YSB0eXBlIFRFWFQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfVFlQRV9SQVcgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YVR5cGU6OlJBVyksCisgICAgICAgICJNZXRhZGF0YSB0eXBlIFJBVyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9UWVBFX0NMT0NLID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFUeXBlOjpDTE9DSyksCisgICAgICAgICJNZXRhZGF0YSB0eXBlIENMT0NLIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0lOVkFMSUQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6SU5WQUxJRCksCisgICAgICAgICJNZXRhZGF0YSBrZXkgSU5WQUxJRCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfUkRTX1BJID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OlJEU19QSSksCisgICAgICAgICJNZXRhZGF0YSBrZXkgUkRTX1BJIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9SRFNfUFMgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1BTKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBSRFNfUFMgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX1JEU19QVFkgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1BUWSksCisgICAgICAgICJNZXRhZGF0YSBrZXkgUkRTX1BUWSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfUkJEU19QVFkgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkJEU19QVFkpLAorICAgICAgICAiTWV0YWRhdGEga2V5IFJCRFNfUFRZIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9SRFNfUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1JUKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBSRFNfUlQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX1RJVExFID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OlRJVExFKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBUSVRMRSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfQVJUSVNUID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkFSVElTVCksCisgICAgICAgICJNZXRhZGF0YSBrZXkgQVJUSVNUIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9BTEJVTSA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpBTEJVTSksCisgICAgICAgICJNZXRhZGF0YSBrZXkgQUxCVU0gbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0dFTlJFID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkdFTlJFKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBHRU5SRSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfSUNPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpJQ09OKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBJQ09OIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9BUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6QVJUKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBBUlQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0NMT0NLID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkNMT0NLKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBDTE9DSyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworCisKKy8vc3RhdGljCitjb25zdCBjaGFyICogVXRpbHM6OmdldENsYXNzU3RyaW5nKENsYXNzIENsYXNzSWQpCit7CisgICAgaW50IGlkID0gc3RhdGljX2Nhc3Q8aW50PihDbGFzc0lkKTsKKworICAgIGlmICgoaWQgPCAwKSB8fAorICAgICAgICAgICAgKGlkID49IE5FTEVNKHNDbGFzc01vZHVsZU5hbWVzKSkpIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgY2xhc3MgSUQgJWQiLCBpZCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXR1cm4gc0NsYXNzTW9kdWxlTmFtZXNbaWRdOworfQorCisvL3N0YXRpYworUmVzdWx0IFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KGludCByYykKK3sKKyAgICBzd2l0Y2ggKHJjKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgY2FzZSAtRU5PU1lTOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICAgICAgY2FzZSAtRVRJTUVET1VUOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6VElNRU9VVDsKKyAgICAgICAgY2FzZSAtRU5PREVWOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIH0KK30KKworLy9zdGF0aWMKK3ZvaWQgVXRpbHM6OmNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbCgKKyAgICAgICAgQmFuZENvbmZpZyAqY29uZmlnLAorICAgICAgICBjb25zdCByYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnKQoreworCisgICAgY29uZmlnLT50eXBlID0gc3RhdGljX2Nhc3Q8QmFuZD4oaGFsQ29uZmlnLT50eXBlKTsKKyAgICBjb25maWctPmFudGVubmFDb25uZWN0ZWQgPSBoYWxDb25maWctPmFudGVubmFfY29ubmVjdGVkOworICAgIGNvbmZpZy0+bG93ZXJMaW1pdCA9IGhhbENvbmZpZy0+bG93ZXJfbGltaXQ7CisgICAgY29uZmlnLT51cHBlckxpbWl0ID0gaGFsQ29uZmlnLT51cHBlcl9saW1pdDsKKyAgICBjb25maWctPnNwYWNpbmdzLnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1bnNpZ25lZCBpbnQgKj4oJmhhbENvbmZpZy0+c3BhY2luZ3NbMF0pLAorICAgICAgICAgICAgaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MgKiBzaXplb2YodWludDMyX3QpKTsKKyAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICBjb25maWctPnNwYWNpbmdzLnJlc2l6ZShoYWxDb25maWctPm51bV9zcGFjaW5ncyk7CisKKyAgICBpZiAoY29uZmlnLT50eXBlID09IEJhbmQ6OkZNKSB7CisgICAgICAgIGNvbmZpZy0+ZXh0LmZtLmRlZW1waGFzaXMgPSBzdGF0aWNfY2FzdDxEZWVtcGhhc2lzPihoYWxDb25maWctPmZtLmRlZW1waGFzaXMpOworICAgICAgICBjb25maWctPmV4dC5mbS5zdGVyZW8gPSBoYWxDb25maWctPmZtLnN0ZXJlbzsKKyAgICAgICAgY29uZmlnLT5leHQuZm0ucmRzID0gc3RhdGljX2Nhc3Q8UmRzPihoYWxDb25maWctPmZtLnJkcyk7CisgICAgICAgIGNvbmZpZy0+ZXh0LmZtLnRhID0gaGFsQ29uZmlnLT5mbS50YTsKKyAgICAgICAgY29uZmlnLT5leHQuZm0uYWYgPSBoYWxDb25maWctPmZtLmFmOworICAgICAgICBjb25maWctPmV4dC5mbS5lYSA9IGhhbENvbmZpZy0+Zm0uZWE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uZmlnLT5leHQuYW0uc3RlcmVvID0gaGFsQ29uZmlnLT5hbS5zdGVyZW87CisgICAgfQorfQorCisvL3N0YXRpYwordm9pZCBVdGlsczo6Y29udmVydFByb3BlcnRpZXNGcm9tSGFsKFByb3BlcnRpZXMgKnByb3BlcnRpZXMsCisgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9wcm9wZXJ0aWVzX3QgKmhhbFByb3BlcnRpZXMpCit7CisgICAgcHJvcGVydGllcy0+Y2xhc3NJZCA9IHN0YXRpY19jYXN0PENsYXNzPihoYWxQcm9wZXJ0aWVzLT5jbGFzc19pZCk7CisgICAgcHJvcGVydGllcy0+aW1wbGVtZW50b3Iuc2V0VG9FeHRlcm5hbChoYWxQcm9wZXJ0aWVzLT5pbXBsZW1lbnRvciwgc3RybGVuKGhhbFByb3BlcnRpZXMtPmltcGxlbWVudG9yKSk7CisgICAgcHJvcGVydGllcy0+cHJvZHVjdC5zZXRUb0V4dGVybmFsKGhhbFByb3BlcnRpZXMtPnByb2R1Y3QsIHN0cmxlbihoYWxQcm9wZXJ0aWVzLT5wcm9kdWN0KSk7CisgICAgcHJvcGVydGllcy0+dmVyc2lvbi5zZXRUb0V4dGVybmFsKGhhbFByb3BlcnRpZXMtPnZlcnNpb24sIHN0cmxlbihoYWxQcm9wZXJ0aWVzLT52ZXJzaW9uKSk7CisgICAgcHJvcGVydGllcy0+c2VyaWFsLnNldFRvRXh0ZXJuYWwoaGFsUHJvcGVydGllcy0+c2VyaWFsLCBzdHJsZW4oaGFsUHJvcGVydGllcy0+c2VyaWFsKSk7CisgICAgcHJvcGVydGllcy0+bnVtVHVuZXJzID0gaGFsUHJvcGVydGllcy0+bnVtX3R1bmVyczsKKyAgICBwcm9wZXJ0aWVzLT5udW1BdWRpb1NvdXJjZXMgPSBoYWxQcm9wZXJ0aWVzLT5udW1fYXVkaW9fc291cmNlczsKKyAgICBwcm9wZXJ0aWVzLT5zdXBwb3J0c0NhcHR1cmUgPSBoYWxQcm9wZXJ0aWVzLT5zdXBwb3J0c19jYXB0dXJlOworCisgICAgQmFuZENvbmZpZyAqYmFuZHMgPQorICAgICAgICAgICAgbmV3IEJhbmRDb25maWdbaGFsUHJvcGVydGllcy0+bnVtX2JhbmRzXTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFByb3BlcnRpZXMtPm51bV9iYW5kczsgaSsrKSB7CisgICAgICAgIGNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbCgmYmFuZHNbaV0sICZoYWxQcm9wZXJ0aWVzLT5iYW5kc1tpXSk7CisgICAgfQorICAgIHByb3BlcnRpZXMtPmJhbmRzLnNldFRvRXh0ZXJuYWwoYmFuZHMsIGhhbFByb3BlcnRpZXMtPm51bV9iYW5kcyk7CisgICAgLy8gRklYTUU6IHRyYW5zZmVyIGJ1ZmZlciBvd25lcnNoaXAuIHNob3VsZCBoYXZlIGEgbWV0aG9kIGZvciB0aGF0IGluIGhpZGxfdmVjCisgICAgcHJvcGVydGllcy0+YmFuZHMucmVzaXplKGhhbFByb3BlcnRpZXMtPm51bV9iYW5kcyk7CisgICAgZGVsZXRlW10gYmFuZHM7Cit9CisKKy8vc3RhdGljCit2b2lkIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ1RvSGFsKHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190ICpoYWxDb25maWcsIGNvbnN0IEJhbmRDb25maWcgKmNvbmZpZykKK3sKKyAgICBoYWxDb25maWctPnR5cGUgPSBzdGF0aWNfY2FzdDxyYWRpb19iYW5kX3Q+KGNvbmZpZy0+dHlwZSk7CisgICAgaGFsQ29uZmlnLT5hbnRlbm5hX2Nvbm5lY3RlZCA9IGNvbmZpZy0+YW50ZW5uYUNvbm5lY3RlZDsKKyAgICBoYWxDb25maWctPmxvd2VyX2xpbWl0ID0gY29uZmlnLT5sb3dlckxpbWl0OworICAgIGhhbENvbmZpZy0+dXBwZXJfbGltaXQgPSBjb25maWctPnVwcGVyTGltaXQ7CisgICAgaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MgPSBjb25maWctPnNwYWNpbmdzLnNpemUoKTsKKyAgICBpZiAoaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MgPiBSQURJT19OVU1fU1BBQ0lOR1NfTUFYKSB7CisgICAgICAgIGhhbENvbmZpZy0+bnVtX3NwYWNpbmdzID0gUkFESU9fTlVNX1NQQUNJTkdTX01BWDsKKyAgICB9CisgICAgbWVtY3B5KGhhbENvbmZpZy0+c3BhY2luZ3MsIGNvbmZpZy0+c3BhY2luZ3MuZGF0YSgpLAorICAgICAgICAgICBzaXplb2YodWludDMyX3QpICogaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MpOworCisgICAgaWYgKGNvbmZpZy0+dHlwZSA9PSBCYW5kOjpGTSkgeworICAgICAgICBoYWxDb25maWctPmZtLmRlZW1waGFzaXMgPSBzdGF0aWNfY2FzdDxyYWRpb19kZWVtcGhhc2lzX3Q+KGNvbmZpZy0+ZXh0LmZtLmRlZW1waGFzaXMpOworICAgICAgICBoYWxDb25maWctPmZtLnN0ZXJlbyA9IGNvbmZpZy0+ZXh0LmZtLnN0ZXJlbzsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS5yZHMgPSBzdGF0aWNfY2FzdDxyYWRpb19yZHNfdD4oY29uZmlnLT5leHQuZm0ucmRzKTsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS50YSA9IGNvbmZpZy0+ZXh0LmZtLnRhOworICAgICAgICBoYWxDb25maWctPmZtLmFmID0gY29uZmlnLT5leHQuZm0uYWY7CisgICAgICAgIGhhbENvbmZpZy0+Zm0uZWEgPSBjb25maWctPmV4dC5mbS5lYTsKKyAgICB9IGVsc2UgeworICAgICAgICBoYWxDb25maWctPmFtLnN0ZXJlbyA9IGNvbmZpZy0+ZXh0LmFtLnN0ZXJlbzsKKyAgICB9Cit9CisKKworLy9zdGF0aWMKK3ZvaWQgVXRpbHM6OmNvbnZlcnRQcm9ncmFtSW5mb0Zyb21IYWwoUHJvZ3JhbUluZm8gKmluZm8sIHJhZGlvX3Byb2dyYW1faW5mb190ICpoYWxJbmZvKQoreworICAgIGF1dG8gJmluZm9fMV8xID0gKmluZm87CisgICAgYXV0byAmaW5mb18xXzAgPSBpbmZvLT5iYXNlOworCisgICAgaW5mb18xXzAuY2hhbm5lbCA9IGhhbEluZm8tPmNoYW5uZWw7CisgICAgaW5mb18xXzAuc3ViQ2hhbm5lbCA9IGhhbEluZm8tPnN1Yl9jaGFubmVsOworICAgIGluZm9fMV8wLnR1bmVkID0gaGFsSW5mby0+dHVuZWQ7CisgICAgaW5mb18xXzAuc3RlcmVvID0gaGFsSW5mby0+c3RlcmVvOworICAgIGluZm9fMV8wLmRpZ2l0YWwgPSBoYWxJbmZvLT5kaWdpdGFsOworICAgIGluZm9fMV8wLnNpZ25hbFN0cmVuZ3RoID0gaGFsSW5mby0+c2lnbmFsX3N0cmVuZ3RoOworICAgIGNvbnZlcnRNZXRhRGF0YUZyb21IYWwoaW5mb18xXzAubWV0YWRhdGEsIGhhbEluZm8tPm1ldGFkYXRhKTsKKyAgICAvLyBUT0RPKGIvMzQzNDg5NDYpOiBhZGQgc3VwcG9ydCBmb3IgSEFMIDEuMSBmaWVsZHMKKyAgICBpbmZvXzFfMS5mbGFncyA9IDA7Cit9CisKKy8vc3RhdGljCitpbnQgVXRpbHM6OmNvbnZlcnRNZXRhRGF0YUZyb21IYWwoaGlkbF92ZWM8TWV0YURhdGE+JiBtZXRhZGF0YSwgcmFkaW9fbWV0YWRhdGFfdCAqaGFsTWV0YWRhdGEpCit7CisgICAgaWYgKGhhbE1ldGFkYXRhID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoIkludmFsaWQgYXJndW1lbnQ6IGhhbE1ldGFkYXRhIGlzIE5VTEwiKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaW50IGNvdW50ID0gcmFkaW9fbWV0YWRhdGFfZ2V0X2NvdW50KGhhbE1ldGFkYXRhKTsKKyAgICBpZiAoY291bnQgPD0gMCkgeworICAgICAgICByZXR1cm4gY291bnQ7CisgICAgfQorICAgIE1ldGFEYXRhICpuZXdNZXRhZGF0YSA9IG5ldyBNZXRhRGF0YVtjb3VudF07CisgICAgaW50IG91dENvdW50ID0gMDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgcmFkaW9fbWV0YWRhdGFfa2V5X3Qga2V5OworICAgICAgICByYWRpb19tZXRhZGF0YV90eXBlX3QgdHlwZTsKKyAgICAgICAgdm9pZCAqdmFsdWU7CisgICAgICAgIHNpemVfdCBzaXplOworICAgICAgICBpZiAocmFkaW9fbWV0YWRhdGFfZ2V0X2F0X2luZGV4KGhhbE1ldGFkYXRhLCBpICwgJmtleSwgJnR5cGUsICZ2YWx1ZSwgJnNpemUpICE9IDAgfHwKKyAgICAgICAgICAgICAgICBzaXplID09IDApIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBSQURJT19NRVRBREFUQV9UWVBFX0lOVDogeworICAgICAgICAgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5pbnRWYWx1ZSA9ICooc3RhdGljX2Nhc3Q8aW50MzJfdCAqPih2YWx1ZSkpOworICAgICAgICAgICAgfSBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFESU9fTUVUQURBVEFfVFlQRV9URVhUOiB7CisgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLnN0cmluZ1ZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhciAqPih2YWx1ZSk7CisgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSQURJT19NRVRBREFUQV9UWVBFX1JBVzogeworICAgICAgICAgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5yYXdWYWx1ZS5zZXRUb0V4dGVybmFsKHN0YXRpY19jYXN0PHVpbnQ4X3QgKj4odmFsdWUpLCBzaXplKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICAgICAgICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0ucmF3VmFsdWUucmVzaXplKHNpemUpOworICAgICAgICAgICAgfSBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFESU9fTUVUQURBVEFfVFlQRV9DTE9DSzogeworICAgICAgICAgICAgICAgIHJhZGlvX21ldGFkYXRhX2Nsb2NrX3QgKmNsb2NrID0gc3RhdGljX2Nhc3Q8cmFkaW9fbWV0YWRhdGFfY2xvY2tfdCAqPih2YWx1ZSk7CisgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLmNsb2NrVmFsdWUudXRjU2Vjb25kc1NpbmNlRXBvY2ggPQorICAgICAgICAgICAgICAgICAgICAgICAgY2xvY2stPnV0Y19zZWNvbmRzX3NpbmNlX2Vwb2NoOworICAgICAgICAgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5jbG9ja1ZhbHVlLnRpbWV6b25lT2Zmc2V0SW5NaW51dGVzID0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrLT50aW1lem9uZV9vZmZzZXRfaW5fbWludXRlczsKKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLnR5cGUgPSBzdGF0aWNfY2FzdDxNZXRhZGF0YVR5cGU+KHR5cGUpOworICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0ua2V5ID0gc3RhdGljX2Nhc3Q8TWV0YWRhdGFLZXk+KGtleSk7CisgICAgICAgIG91dENvdW50Kys7CisgICAgfQorICAgIG1ldGFkYXRhLnNldFRvRXh0ZXJuYWwobmV3TWV0YWRhdGEsIG91dENvdW50KTsKKyAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICBtZXRhZGF0YS5yZXNpemUob3V0Q291bnQpOworICAgIHJldHVybiBvdXRDb3VudDsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMQorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9VdGlscy5oIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjkwMmJhCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVXRpbHMuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX1VUSUxTX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX1VUSUxTX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL3R5cGVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvcmFkaW8uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBWMV8wOjpDbGFzczsKK3VzaW5nIFYxXzA6OkJhbmRDb25maWc7Cit1c2luZyBWMV8wOjpNZXRhRGF0YTsKK3VzaW5nIFYxXzA6OlByb3BlcnRpZXM7CisKK2NsYXNzIFV0aWxzIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqIGdldENsYXNzU3RyaW5nKENsYXNzIENsYXNzSWQpOworICAgIHN0YXRpYyBSZXN1bHQgY29udmVydEhhbFJlc3VsdChpbnQgcmMpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbChCYW5kQ29uZmlnICpjb25maWcsCisgICAgICAgICAgICBjb25zdCByYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0UHJvcGVydGllc0Zyb21IYWwoUHJvcGVydGllcyAqcHJvcGVydGllcywKKyAgICAgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9wcm9wZXJ0aWVzX3QgKmhhbFByb3BlcnRpZXMpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnVG9IYWwocmFkaW9faGFsX2JhbmRfY29uZmlnX3QgKmhhbENvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IEJhbmRDb25maWcgKmNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgY29udmVydFByb2dyYW1JbmZvRnJvbUhhbChQcm9ncmFtSW5mbyAqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvX3Byb2dyYW1faW5mb190ICpoYWxJbmZvKTsKKyAgICBzdGF0aWMgaW50IGNvbnZlcnRNZXRhRGF0YUZyb21IYWwoaGlkbF92ZWM8TWV0YURhdGE+JiBtZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvX21ldGFkYXRhX3QgKmhhbE1ldGFkYXRhKTsKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBzQ2xhc3NNb2R1bGVOYW1lc1tdOworCit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8xCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzFfVVRJTFNfSApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL3R5cGVzLmhhbCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzAyMWYyZQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS90eXBlcy5oYWwKQEAgLTAsMCArMSw3MyBAQAorLyoqCisgKiBDb3B5cmlnaHQgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjE7CisKK2ltcG9ydCBAMS4wOjp0eXBlczsKKwordHlwZWRlZiBAMS4wOjpSZXN1bHQgUmVzdWx0OworCitlbnVtIFByb2dyYW1MaXN0UmVzdWx0IDogUmVzdWx0IHsKKyAgICBOT1RfUkVBRFksCisgICAgTk9UX1NUQVJURUQsCisgICAgVEVNUE9SQVJJTFlfVU5BVkFJTEFCTEUsCit9OworCisvKioKKyAqIEV4dHJhIGZsYWdzIGZvciBwcm9ncmFtIGluZm9ybWF0aW9uLgorICovCitlbnVtIFByb2dyYW1JbmZvRmxhZ3MgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogU2V0IHdoZW4gdGhlIHByb2dyYW0gaXMgY3VycmVudGx5IHBsYXlpbmcgbGl2ZSBzdHJlYW0uCisgICAgICogVGhpcyBtYXkgcmVzdWx0IGluIGEgc2xpZ2h0bHkgYWx0ZXJlZCByZWNlcHRpb24gcGFyYW1ldGVycywKKyAgICAgKiB1c3VhbGx5IHRhcmdldHRlZCBhdCByZWR1Y2VkIGxhdGVuY3kuCisgICAgICovCisgICAgTElWRSA9IDEgPDwgMCwKKworICAgIC8qKgorICAgICAqIFJhZGlvIHN0cmVhbSBpcyBub3QgcGxheWluZywgaWUuIGR1ZSB0byBiYWQgcmVjZXB0aW9uIGNvbmRpdGlvbnMgb3IKKyAgICAgKiBidWZmZXJpbmcuIEluIHRoaXMgc3RhdGUgdm9sdW1lIGtub2IgTUFZIGJlIGRpc2FibGVkIHRvIHByZXZlbnQgdXNlcgorICAgICAqIGluY3JlYXNpbmcgdm9sdW1lIHRvbyBtdWNoLgorICAgICAqLworICAgIE1VVEVEID0gMSA8PCAxLAorfTsKKworc3RydWN0IFByb3BlcnRpZXMgeworICAgIEAxLjA6OlByb3BlcnRpZXMgYmFzZTsKKworICAgIC8qKgorICAgICAqIFRoZSBoYXJkd2FyZSBzdXBwb3J0cyBiYWNrZ3JvdW5kIHNjYW5uaW5nIGluIGdlbmVyYWwuIEF0IHRoZSBnaXZlbiB0aW1lCisgICAgICogaXQgbWF5IG5vdCBiZSBhdmFpbGFibGUgdGhvdWdoLCBzZWUgc3RhcnRCYWNrZ3JvdW5kU2Nhbi4KKyAgICAgKi8KKyAgICBib29sIHN1cHBvcnRzQmFja2dyb3VuZFNjYW5uaW5nOworfTsKKworLyoqCisgKiBSYWRpbyBwcm9ncmFtIGluZm9ybWF0aW9uLiBSZXR1cm5lZCBieSB0aGUgSEFMIHdpdGggZXZlbnQgUkFESU9fRVZFTlRfVFVORUQuCisgKiBDb250YWlucyBpbmZvcm1hdGlvbiBvbiBjdXJyZW50bHkgdHVuZWQgY2hhbm5lbC4KKyAqLworc3RydWN0IFByb2dyYW1JbmZvIHsKKyAgICBAMS4wOjpQcm9ncmFtSW5mbyBiYXNlOworICAgIGJpdGZpZWxkPFByb2dyYW1JbmZvRmxhZ3M+IGZsYWdzOworCisgICAgLyoqCisgICAgICogVmVuZG9ycyBhcmUgYWxsb3dlZCB0byBkZWZpbmUgdGhlaXIgb3duIHNldCBvZiBmbGFncyBhbmQgc3RvcmUgaXQgaW4gdGhpcworICAgICAqIGZpZWxkLiBUaGV5IE1VU1QgdmVyaWZ5IHZlbmRvci9wcm9kdWN0IG5hbWUgZnJvbSBQcm9wZXJ0aWVzIHN0cnVjdAorICAgICAqIChJQnJvYWRjYXN0UmFkaW86OmdldFByb3BlcnRpZXMpIGJlZm9yZSBkb2luZyBhbnkgaW50ZXJwcmV0YXRpb24KKyAgICAgKiBvZiBzdWNoIHZhbHVlcy4KKyAgICAgKi8KKyAgICB1aW50MzJfdCB2ZW5kb3JGbGFnczsKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvdnRzL0FuZHJvaWQubWsgYi9icm9hZGNhc3RyYWRpby8xLjEvdnRzL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM0YzU1ZAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS92dHMvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9icm9hZGNhc3RyYWRpby8xLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGMwODQ5Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNyBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEJyb2FkY2FzdHJhZGlvVjFfMVRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEJyb2FkY2FzdHJhZGlvVjFfMVRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMSIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxCcm9hZGNhc3RyYWRpb1YxXzFUYXJnZXRUZXN0LmNwcCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxCcm9hZGNhc3RyYWRpb1YxXzFUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2MwNWM0Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEJyb2FkY2FzdHJhZGlvVjFfMVRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsNDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJCcm9hZGNhc3RSYWRpb0hpZGxIYWxUZXN0IgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8Y3V0aWxzL25hdGl2ZV9oYW5kbGUuaD4KKyNpbmNsdWRlIDxjdXRpbHMvcHJvcGVydGllcy5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKyNpbmNsdWRlIDx1dGlscy90aHJlYWRzLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyQ2FsbGJhY2suaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS90eXBlcy5oPgorCisKK25hbWVzcGFjZSBWMV8wID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA7CisKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6Ok11dGV4OwordXNpbmcgOjphbmRyb2lkOjpDb25kaXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OkJhbmRDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6Q2xhc3M7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6RGlyZWN0aW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OklCcm9hZGNhc3RSYWRpbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpNZXRhRGF0YTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpQcm9wZXJ0aWVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzE6OklCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMTo6SVR1bmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzE6OklUdW5lckNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzE6OlByb2dyYW1JbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzE6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8xOjpQcm9ncmFtTGlzdFJlc3VsdDsKKworCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBCcm9hZGNhc3QgUmFkaW8gSElETCBIQUwuCisKK2NsYXNzIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHByb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGF1dG8gZmFjdG9yeSA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk+KCk7CisgICAgICAgIGlmIChmYWN0b3J5ICE9IDApIHsKKyAgICAgICAgICAgIGZhY3RvcnktPmNvbm5lY3RNb2R1bGUoQ2xhc3M6OkFNX0ZNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oUmVzdWx0IHJldHZhbCwgY29uc3QgOjphbmRyb2lkOjpzcDxJQnJvYWRjYXN0UmFkaW8+JiByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICAgIG1SYWRpbyA9IElCcm9hZGNhc3RSYWRpbzo6Y2FzdEZyb20ocmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICBtVHVuZXJDYWxsYmFjayA9IG5ldyBNeUNhbGxiYWNrKHRoaXMpOworICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgbVJhZGlvLmdldCgpKTsKKyAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIG1UdW5lckNhbGxiYWNrLmdldCgpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIG1UdW5lci5jbGVhcigpOworICAgICAgICBtUmFkaW8uY2xlYXIoKTsKKyAgICB9CisKKyAgICBjbGFzcyBNeUNhbGxiYWNrIDogcHVibGljIElUdW5lckNhbGxiYWNrIHsKKyAgICAgcHVibGljOgorCisgICAgICAgIC8vIElUdW5lckNhbGxiYWNrIG1ldGhvZHMgKHNlZSBkb2MgaW4gSVR1bmVyQ2FsbGJhY2suaGFsKQorICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYXJkd2FyZUZhaWx1cmUoKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgbVBhcmVudFRlc3QtPm9uSHdGYWlsdXJlQ2FsbGJhY2soKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBjb25maWdDaGFuZ2UoUmVzdWx0IHJlc3VsdCwgY29uc3QgQmFuZENvbmZpZyYgY29uZmlnIF9fdW51c2VkKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgcmVzdWx0ICVkIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworICAgICAgICAgICAgbVBhcmVudFRlc3QtPm9uUmVzdWx0Q2FsbGJhY2socmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiB0dW5lQ29tcGxldGUoUmVzdWx0IHJlc3VsdCBfX3VudXNlZCwgY29uc3QgVjFfMDo6UHJvZ3JhbUluZm8mIGluZm8gX191bnVzZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiB0dW5lQ29tcGxldGVfMV8xKFJlc3VsdCByZXN1bHQsIGNvbnN0IFByb2dyYW1JbmZvJiBpbmZvIF9fdW51c2VkKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgcmVzdWx0ICVkIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworICAgICAgICAgICAgbVBhcmVudFRlc3QtPm9uUmVzdWx0Q2FsbGJhY2socmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBhZlN3aXRjaChjb25zdCBWMV8wOjpQcm9ncmFtSW5mbyYgaW5mbyBfX3VudXNlZCkgeworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGFmU3dpdGNoXzFfMShjb25zdCBQcm9ncmFtSW5mbyYgaW5mbyBfX3VudXNlZCkgeworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGFudGVubmFTdGF0ZUNoYW5nZShib29sIGNvbm5lY3RlZCkgeworICAgICAgICAgICAgQUxPR0koIiVzIGNvbm5lY3RlZCAlZCIsIF9fRlVOQ1RJT05fXywgY29ubmVjdGVkKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiB0cmFmZmljQW5ub3VuY2VtZW50KGJvb2wgYWN0aXZlKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgYWN0aXZlICVkIiwgX19GVU5DVElPTl9fLCBhY3RpdmUpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGVtZXJnZW5jeUFubm91bmNlbWVudChib29sIGFjdGl2ZSkgeworICAgICAgICAgICAgQUxPR0koIiVzIGFjdGl2ZSAlZCIsIF9fRlVOQ1RJT05fXywgYWN0aXZlKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBuZXdNZXRhZGF0YSh1aW50MzJfdCBjaGFubmVsIF9fdW51c2VkLCB1aW50MzJfdCBzdWJDaGFubmVsIF9fdW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8TWV0YURhdGE+JiBtZXRhZGF0YSBfX3VudXNlZCkgeworICAgICAgICAgICAgQUxPR0koIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBiYWNrZ3JvdW5kU2NhbkNvbXBsZXRlKFByb2dyYW1MaXN0UmVzdWx0IHJlc3VsdCBfX3VudXNlZCkgeworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHByb2dyYW1MaXN0Q2hhbmdlZCgpIHsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICAgICAgICAgIE15Q2FsbGJhY2soQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCAqcGFyZW50VGVzdCkgOiBtUGFyZW50VGVzdChwYXJlbnRUZXN0KSB7fQorCisgICAgIHByaXZhdGU6CisgICAgICAgIC8vIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QgaW5zdGFuY2UgdG8gd2hpY2ggY2FsbGJhY2tzIHdpbGwgYmUgbm90aWZpZWQuCisgICAgICAgIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QgKm1QYXJlbnRUZXN0OworICAgIH07CisKKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgTXlDYWxsYmFjayB3aGVuIGEgY2FsbGJhY2sgd2l0aCBubyBzdGF0dXMgb3IgYm9vbGVhbiB2YWx1ZSBpcyByZWNlaXZlZAorICAgICAqLworICAgIHZvaWQgb25DYWxsYmFjaygpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgb25DYWxsYmFja19sKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSBNeUNhbGxiYWNrIHdoZW4gaGFyZHdhcmVGYWlsdXJlKCkgY2FsbGJhY2sgaXMgcmVjZWl2ZWQKKyAgICAgKi8KKyAgICB2b2lkIG9uSHdGYWlsdXJlQ2FsbGJhY2soKSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgICAgIG1Id0ZhaWx1cmUgPSB0cnVlOworICAgICAgICBvbkNhbGxiYWNrX2woKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IE15Q2FsbGJhY2sgd2hlbiBhIGNhbGxiYWNrIHdpdGggc3RhdHVzIGlzIHJlY2VpdmVkCisgICAgICovCisgICAgdm9pZCBvblJlc3VsdENhbGxiYWNrKFJlc3VsdCByZXN1bHQpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgbVJlc3VsdENhbGxiYWNrRGF0YSA9IHJlc3VsdDsKKyAgICAgICAgb25DYWxsYmFja19sKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSBNeUNhbGxiYWNrIHdoZW4gYSBib29sZWFuIGluZGljYXRpb24gaXMgcmVjZWl2ZWQKKyAgICAgKi8KKyAgICB2b2lkIG9uQm9vbENhbGxiYWNrKGJvb2wgcmVzdWx0KSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgICAgIG1Cb29sQ2FsbGJhY2tEYXRhID0gcmVzdWx0OworICAgICAgICBvbkNhbGxiYWNrX2woKTsKKyAgICB9CisKKworICAgICAgICBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0KCkgOgorICAgICAgICAgICAgbUNhbGxiYWNrQ2FsbGVkKGZhbHNlKSwgbUJvb2xDYWxsYmFja0RhdGEoZmFsc2UpLAorICAgICAgICAgICAgbVJlc3VsdENhbGxiYWNrRGF0YShSZXN1bHQ6Ok9LKSwgbUh3RmFpbHVyZShmYWxzZSkge30KKworICAgIHZvaWQgb25DYWxsYmFja19sKCkgeworICAgICAgICBpZiAoIW1DYWxsYmFja0NhbGxlZCkgeworICAgICAgICAgICAgbUNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIG1DYWxsYmFja0NvbmQuYnJvYWRjYXN0KCk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGJvb2wgd2FpdEZvckNhbGxiYWNrKG5zZWNzX3QgcmVsdGltZSA9IDApIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgbnNlY3NfdCBlbmRUaW1lID0gc3lzdGVtVGltZSgpICsgcmVsdGltZTsKKyAgICAgICAgd2hpbGUgKCFtQ2FsbGJhY2tDYWxsZWQpIHsKKyAgICAgICAgICAgIGlmIChyZWx0aW1lID09IDApIHsKKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2tDb25kLndhaXQobUxvY2spOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBuc2Vjc190IG5vdyA9IHN5c3RlbVRpbWUoKTsKKyAgICAgICAgICAgICAgICBpZiAobm93ID4gZW5kVGltZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1DYWxsYmFja0NvbmQud2FpdFJlbGF0aXZlKG1Mb2NrLCBlbmRUaW1lIC0gbm93KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIGdldFByb3BlcnRpZXMoKTsKKyAgICBib29sIG9wZW5UdW5lcigpOworICAgIGJvb2wgY2hlY2tBbnRlbm5hKCk7CisKKyAgICBzdGF0aWMgY29uc3QgbnNlY3NfdCBrQ29uZmlnQ2FsbGJhY2t0aW1lb3V0TnMgPSBzZWNvbmRzX3RvX25hbm9zZWNvbmRzKDEwKTsKKyAgICBzdGF0aWMgY29uc3QgbnNlY3NfdCBrVHVuZUNhbGxiYWNrdGltZW91dE5zID0gc2Vjb25kc190b19uYW5vc2Vjb25kcygzMCk7CisKKyAgICBzcDxJQnJvYWRjYXN0UmFkaW8+IG1SYWRpbzsKKyAgICBQcm9wZXJ0aWVzIG1IYWxQcm9wZXJ0aWVzOworICAgIHNwPElUdW5lcj4gbVR1bmVyOworICAgIHNwPE15Q2FsbGJhY2s+IG1UdW5lckNhbGxiYWNrOworICAgIE11dGV4IG1Mb2NrOworICAgIENvbmRpdGlvbiBtQ2FsbGJhY2tDb25kOworICAgIGJvb2wgbUNhbGxiYWNrQ2FsbGVkOworICAgIGJvb2wgbUJvb2xDYWxsYmFja0RhdGE7CisgICAgUmVzdWx0IG1SZXN1bHRDYWxsYmFja0RhdGE7CisgICAgYm9vbCBtSHdGYWlsdXJlOworfTsKKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cCAoa2VwdCBzaW5jZSB0aGlzIGZpbGUgaXMgYSB0ZW1wbGF0ZSkuCitjbGFzcyBCcm9hZGNhc3RSYWRpb0hpZGxFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorfTsKKworYm9vbCBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0OjpnZXRQcm9wZXJ0aWVzKCkKK3sKKyAgICBpZiAobUhhbFByb3BlcnRpZXMuYmFuZHMuc2l6ZSgpID09IDApIHsKKyAgICAgICAgUmVzdWx0IGhhbFJlc3VsdCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgICAgICBSZXR1cm48dm9pZD4gaGlkbFJldHVybiA9CisgICAgICAgICAgICAgICAgbVJhZGlvLT5nZXRQcm9wZXJ0aWVzKFsmXShSZXN1bHQgcmVzdWx0LCBjb25zdCBQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYWxSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtSGFsUHJvcGVydGllcyA9IHByb3BlcnRpZXM7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgICAgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhhbFJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9FUShDbGFzczo6QU1fRk0sIG1IYWxQcm9wZXJ0aWVzLmNsYXNzSWQpOworICAgICAgICBFWFBFQ1RfR1QobUhhbFByb3BlcnRpZXMubnVtVHVuZXJzLCAwdSk7CisgICAgICAgIEVYUEVDVF9HVChtSGFsUHJvcGVydGllcy5iYW5kcy5zaXplKCksIDB1KTsKKyAgICB9CisgICAgcmV0dXJuIG1IYWxQcm9wZXJ0aWVzLmJhbmRzLnNpemUoKSA+IDA7Cit9CisKK2Jvb2wgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdDo6b3BlblR1bmVyKCkKK3sKKyAgICBpZiAoIWdldFByb3BlcnRpZXMoKSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChtVHVuZXIuZ2V0KCkgPT0gbnVsbHB0cikgeworICAgICAgICBSZXN1bHQgaGFsUmVzdWx0ID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgICAgIGF1dG8gaGlkbFJldHVybiA9IG1SYWRpby0+b3BlblR1bmVyKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLCB0cnVlLCBtVHVuZXJDYWxsYmFjaywKKyAgICAgICAgICAgICAgICBbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3Qgc3A8VjFfMDo6SVR1bmVyPiYgdHVuZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaGFsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1UdW5lciA9IElUdW5lcjo6Y2FzdEZyb20odHVuZXIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgICAgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhhbFJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhrQ29uZmlnQ2FsbGJhY2t0aW1lb3V0TnMpKTsKKyAgICB9CisgICAgRVhQRUNUX05FKG51bGxwdHIsIG1UdW5lci5nZXQoKSk7CisgICAgcmV0dXJuIG51bGxwdHIgIT0gbVR1bmVyLmdldCgpOworfQorCitib29sIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3Q6OmNoZWNrQW50ZW5uYSgpCit7CisgICAgQmFuZENvbmZpZyBoYWxDb25maWc7CisgICAgUmVzdWx0IGhhbFJlc3VsdCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0KKyAgICAgICAgICAgIG1UdW5lci0+Z2V0Q29uZmlndXJhdGlvbihbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSB7CisgICAgICAgICAgICAgICAgaGFsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgICBoYWxDb25maWcgPSBjb25maWc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICByZXR1cm4gKChoYWxSZXN1bHQgPT0gUmVzdWx0OjpPSykgJiYgKGhhbENvbmZpZy5hbnRlbm5hQ29ubmVjdGVkID09IHRydWUpKTsKK30KKworCisvKioKKyAqIFRlc3QgSUJyb2FkY2FzdFJhZGlvOjpnZXRQcm9wZXJ0aWVzKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MgaXMgQU1fRk0KKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBhdCBsZWFzdCBvbmUgdHVuZXIKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBhdCBvbmUgYmFuZAorICovCitURVNUX0YoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgR2V0UHJvcGVydGllcykgeworICAgIEVYUEVDVF9UUlVFKGdldFByb3BlcnRpZXMoKSk7Cit9CisKKy8qKgorICogVGVzdCBJQnJvYWRjYXN0UmFkaW86Om9wZW5UdW5lcigpIG1ldGhvZAorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgSEFMIGltcGxlbWVudHMgdGhlIG1ldGhvZAorICogIC0gdGhlIG1ldGhvZCByZXR1cm5zIDAgKG5vIGVycm9yKSBhbmQgYSB2YWxpZCBJVHVuZXIgaW50ZXJmYWNlCisgKi8KK1RFU1RfRihCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBPcGVuVHVuZXIpIHsKKyAgICBFWFBFQ1RfVFJVRShvcGVuVHVuZXIoKSk7Cit9CisKKy8qKgorICogVGVzdCBJVHVuZXI6OnNldENvbmZpZ3VyYXRpb24oKSBhbmQgZ2V0Q29uZmlndXJhdGlvbiBtZXRob2RzCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyBib3RoIG1ldGhvZHMKKyAqICAtIHRoZSBtZXRob2RzIHJldHVybiAwIChubyBlcnJvcikKKyAqICAtIHRoZSBjb25maWd1cmF0aW9uIGNhbGxiYWNrIGlzIHJlY2VpdmVkIHdpdGhpbiBrQ29uZmlnQ2FsbGJhY2t0aW1lb3V0TnMgbnMKKyAqICAtIHRoZSBjb25maWd1cmF0aW9uIHJlYWQgYmFjayBmcm9tIEhBbCBoYXMgdGhlIHNhbWUgY2xhc3MgSWQKKyAqLworVEVTVF9GKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFNldEFuZEdldENvbmZpZ3VyYXRpb24pIHsKKyAgICBBU1NFUlRfVFJVRShvcGVuVHVuZXIoKSk7CisgICAgLy8gdGVzdCBzZXRDb25maWd1cmF0aW9uCisgICAgbUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisgICAgUmV0dXJuPFJlc3VsdD4gaGlkbFJlc3VsdCA9IG1UdW5lci0+c2V0Q29uZmlndXJhdGlvbihtSGFsUHJvcGVydGllcy5iYW5kc1swXSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa0NvbmZpZ0NhbGxiYWNrdGltZW91dE5zKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIG1SZXN1bHRDYWxsYmFja0RhdGEpOworCisgICAgLy8gdGVzdCBnZXRDb25maWd1cmF0aW9uCisgICAgQmFuZENvbmZpZyBoYWxDb25maWc7CisgICAgUmVzdWx0IGhhbFJlc3VsdDsKKyAgICBSZXR1cm48dm9pZD4gaGlkbFJldHVybiA9CisgICAgICAgICAgICBtVHVuZXItPmdldENvbmZpZ3VyYXRpb24oWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZykgeworICAgICAgICAgICAgICAgIGhhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgaGFsQ29uZmlnID0gY29uZmlnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKyAgICBFWFBFQ1RfRVEobUhhbFByb3BlcnRpZXMuYmFuZHNbMF0udHlwZSwgaGFsQ29uZmlnLnR5cGUpOworfQorCisvKioKKyAqIFRlc3QgSVR1bmVyOjpzY2FuCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgdHVuZWQgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgd2l0aGluIGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMgbnMKKyAqLworVEVTVF9GKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFNjYW4pIHsKKyAgICBBU1NFUlRfVFJVRShvcGVuVHVuZXIoKSk7CisgICAgQVNTRVJUX1RSVUUoY2hlY2tBbnRlbm5hKCkpOworICAgIC8vIHRlc3Qgc2NhbiBVUAorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIFJldHVybjxSZXN1bHQ+IGhpZGxSZXN1bHQgPSBtVHVuZXItPnNjYW4oRGlyZWN0aW9uOjpVUCwgdHJ1ZSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworCisgICAgLy8gdGVzdCBzY2FuIERPV04KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zY2FuKERpcmVjdGlvbjo6RE9XTiwgdHJ1ZSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworfQorCisvKioKKyAqIFRlc3QgSVR1bmVyOjpzdGVwCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgdHVuZWQgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgd2l0aGluIGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMgbnMKKyAqLworVEVTVF9GKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFN0ZXApIHsKKyAgICBBU1NFUlRfVFJVRShvcGVuVHVuZXIoKSk7CisgICAgQVNTRVJUX1RSVUUoY2hlY2tBbnRlbm5hKCkpOworICAgIC8vIHRlc3Qgc3RlcCBVUAorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIFJldHVybjxSZXN1bHQ+IGhpZGxSZXN1bHQgPSBtVHVuZXItPnN0ZXAoRGlyZWN0aW9uOjpVUCwgdHJ1ZSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworCisgICAgLy8gdGVzdCBzdGVwIERPV04KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zdGVwKERpcmVjdGlvbjo6RE9XTiwgdHJ1ZSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworfQorCisvKioKKyAqIFRlc3QgSVR1bmVyOjp0dW5lLCAgZ2V0UHJvZ3JhbUluZm9ybWF0aW9uIGFuZCBjYW5jZWwgbWV0aG9kcworICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgSEFMIGltcGxlbWVudHMgdGhlIG1ldGhvZHMKKyAqICAtIHRoZSBtZXRob2RzIHJldHVybiAwIChubyBlcnJvcikKKyAqICAtIHRoZSB0dW5lZCBjYWxsYmFjayBpcyByZWNlaXZlZCB3aXRoaW4ga1R1bmVDYWxsYmFja3RpbWVvdXROcyBucyBhZnRlciB0dW5lKCkKKyAqLworVEVTVF9GKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFR1bmVBbmRHZXRQcm9ncmFtSW5mb3JtYXRpb25BbmRDYW5jZWwpIHsKKyAgICBBU1NFUlRfVFJVRShvcGVuVHVuZXIoKSk7CisgICAgQVNTRVJUX1RSVUUoY2hlY2tBbnRlbm5hKCkpOworCisgICAgLy8gdGVzdCB0dW5lCisgICAgQVNTRVJUX0dUKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLnNwYWNpbmdzLnNpemUoKSwgMHUpOworICAgIEFTU0VSVF9HVChtSGFsUHJvcGVydGllcy5iYW5kc1swXS51cHBlckxpbWl0LCBtSGFsUHJvcGVydGllcy5iYW5kc1swXS5sb3dlckxpbWl0KTsKKworICAgIC8vIHRlc3Qgc2NhbiBVUAorICAgIHVpbnQzMl90IGxvd2VyTGltaXQgPSBtSGFsUHJvcGVydGllcy5iYW5kc1swXS5sb3dlckxpbWl0OworICAgIHVpbnQzMl90IHVwcGVyTGltaXQgPSBtSGFsUHJvcGVydGllcy5iYW5kc1swXS51cHBlckxpbWl0OworICAgIHVpbnQzMl90IHNwYWNpbmcgPSBtSGFsUHJvcGVydGllcy5iYW5kc1swXS5zcGFjaW5nc1swXTsKKworICAgIHVpbnQzMl90IGNoYW5uZWwgPQorICAgICAgICAgICAgbG93ZXJMaW1pdCArICgoKHVwcGVyTGltaXQgLSBsb3dlckxpbWl0KSAvIDIgKyBzcGFjaW5nIC0gMSkgLyBzcGFjaW5nKSAqIHNwYWNpbmc7CisgICAgbUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisgICAgbVJlc3VsdENhbGxiYWNrRGF0YSA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIFJldHVybjxSZXN1bHQ+IGhpZGxSZXN1bHQgPSBtVHVuZXItPnR1bmUoY2hhbm5lbCwgMCk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworCisgICAgLy8gdGVzdCBnZXRQcm9ncmFtSW5mb3JtYXRpb24KKyAgICBQcm9ncmFtSW5mbyBoYWxJbmZvOworICAgIFJlc3VsdCBoYWxSZXN1bHQgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICBSZXR1cm48dm9pZD4gaGlkbFJldHVybiA9IG1UdW5lci0+Z2V0UHJvZ3JhbUluZm9ybWF0aW9uXzFfMSgKKyAgICAgICAgWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IFByb2dyYW1JbmZvJiBpbmZvKSB7CisgICAgICAgICAgICBoYWxSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICBoYWxJbmZvID0gaW5mbzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoYWxSZXN1bHQpOworICAgIGF1dG8gJmhhbEluZm9fMV8xID0gaGFsSW5mby5iYXNlOworICAgIGlmIChtUmVzdWx0Q2FsbGJhY2tEYXRhID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgRVhQRUNUX1RSVUUoaGFsSW5mb18xXzEudHVuZWQpOworICAgICAgICBFWFBFQ1RfTEUoaGFsSW5mb18xXzEuY2hhbm5lbCwgdXBwZXJMaW1pdCk7CisgICAgICAgIEVYUEVDVF9HRShoYWxJbmZvXzFfMS5jaGFubmVsLCBsb3dlckxpbWl0KTsKKyAgICB9IGVsc2UgeworICAgICAgICBFWFBFQ1RfRVEoZmFsc2UsIGhhbEluZm9fMV8xLnR1bmVkKTsKKyAgICB9CisKKyAgICAvLyB0ZXN0IGNhbmNlbAorICAgIG1UdW5lci0+dHVuZShsb3dlckxpbWl0LCAwKTsKKyAgICBoaWRsUmVzdWx0ID0gbVR1bmVyLT5jYW5jZWwoKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworfQorCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChuZXcgQnJvYWRjYXN0UmFkaW9IaWRsRW52aXJvbm1lbnQpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vQW5kcm9pZC5icCBiL2Jyb2FkY2FzdHJhZGlvL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNhY2JmMwotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorICAgICIxLjEiLAorICAgICIxLjEvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvY2FtZXJhL0FuZHJvaWQuYnAgYi9jYW1lcmEvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODY5NzY2Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwxMyBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiY29tbW9uLzEuMCIsCisgICAgImNvbW1vbi8xLjAvZGVmYXVsdCIsCisgICAgImRldmljZS8xLjAiLAorICAgICJkZXZpY2UvMS4wL2RlZmF1bHQiLAorICAgICJkZXZpY2UvMy4yIiwKKyAgICAiZGV2aWNlLzMuMi9kZWZhdWx0IiwKKyAgICAibWV0YWRhdGEvMy4yIiwKKyAgICAicHJvdmlkZXIvMi40IiwKKyAgICAicHJvdmlkZXIvMi40L2RlZmF1bHQiLAorICAgICJwcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvY2FtZXJhL1JFQURNRS5tZCBiL2NhbWVyYS9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNlMzM1MgotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9SRUFETUUubWQKQEAgLTAsMCArMSwxMiBAQAorIyMgQ2FtZXJhIEhBTHMgIyMKKy0tLQorCisjIyBPdmVydmlldzogIyMKKworVGhlIGNhbWVyYS4qIEhBTCB0cmVlIGlzIHVzZWQgYnkgdGhlIEFuZHJvaWQgY2FtZXJhIHNlcnZpY2UgdG8gZGlzY292ZXIgYW5kCitvcGVyYXRlIGNhbWVyYSBkZXZpY2VzIGF2YWlsYWJsZSBvbiB0aGUgZGV2aWNlLgorCitNb3JlIGRldGFpbHMgYW5kIHZlcnNpb25pbmcgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIHdpdGhpbiBlYWNoIHBhcnRpY3VsYXIgSEFMLgorCitNb3JlIGNvbXBsZXRlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBBbmRyb2lkIGNhbWVyYSBIQUwgYW5kIHN1YnN5c3RlbSBjYW4gYmUgZm91bmQgYXQKK1tzb3VyY2UuYW5kcm9pZC5jb21dKGh0dHA6Ly9zb3VyY2UuYW5kcm9pZC5jb20vZGV2aWNlcy9jYW1lcmEvaW5kZXguaHRtbCkuCmRpZmYgLS1naXQgYS9jYW1lcmEvY29tbW9uLzEuMC9BbmRyb2lkLmJwIGIvY2FtZXJhL2NvbW1vbi8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTJkNDkwCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2NvbW1vbi8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDU2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uLzEuMC90eXBlcy5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uLzEuMC9od3R5cGVzLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvQW5kcm9pZC5tayBiL2NhbWVyYS9jb21tb24vMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdiZmIzMQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwzNzIgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbi1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYURldmljZVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL0NhbWVyYURldmljZVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLkNhbWVyYURldmljZVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvQ2FtZXJhTWV0YWRhdGFUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFSZXNvdXJjZUNvc3QpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9DYW1lcmFSZXNvdXJjZUNvc3QuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5DYW1lcmFSZXNvdXJjZUNvc3QKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGFnQm91bmRhcnlJZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1RhZ0JvdW5kYXJ5SWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5UYWdCb3VuZGFyeUlkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUb3JjaE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9Ub3JjaE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5Ub3JjaE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRvcmNoTW9kZVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1RvcmNoTW9kZVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlRvcmNoTW9kZVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVuZG9yVGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvVmVuZG9yVGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuVmVuZG9yVGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZW5kb3JUYWdTZWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvVmVuZG9yVGFnU2VjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlZlbmRvclRhZ1NlY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYURldmljZVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL0NhbWVyYURldmljZVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLkNhbWVyYURldmljZVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvQ2FtZXJhTWV0YWRhdGFUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFSZXNvdXJjZUNvc3QpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9DYW1lcmFSZXNvdXJjZUNvc3QuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5DYW1lcmFSZXNvdXJjZUNvc3QKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGFnQm91bmRhcnlJZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1RhZ0JvdW5kYXJ5SWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5UYWdCb3VuZGFyeUlkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUb3JjaE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9Ub3JjaE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5Ub3JjaE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRvcmNoTW9kZVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1RvcmNoTW9kZVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlRvcmNoTW9kZVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVuZG9yVGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvVmVuZG9yVGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuVmVuZG9yVGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZW5kb3JUYWdTZWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvVmVuZG9yVGFnU2VjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlZlbmRvclRhZ1NlY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzYTcxZmEKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSwyMyBAQAorY2NfbGlicmFyeV9zdGF0aWMgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wLWhlbHBlciIsCisgICAgdmVuZG9yOiB0cnVlLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbCisgICAgICAgICJDYW1lcmFNb2R1bGUuY3BwIiwKKyAgICAgICAgIkNhbWVyYU1ldGFkYXRhLmNwcCIsCisgICAgICAgICJWZW5kb3JUYWdEZXNjcmlwdG9yLmNwcCIsCisgICAgICAgICJIYW5kbGVJbXBvcnRlci5jcHAiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1XZXJyb3IiLAorICAgICAgICAiLVdleHRyYSIsCisgICAgICAgICItV2FsbCIsCisgICAgXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmNhbWVyYV9tZXRhZGF0YSIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiXSwKKyAgICBpbmNsdWRlX2RpcnM6IFsic3lzdGVtL21lZGlhL3ByaXZhdGUvY2FtZXJhL2luY2x1ZGUiXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzIDogWyJpbmNsdWRlIl0KK30KKwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9DYW1lcmFNZXRhZGF0YS5jcHAgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0NhbWVyYU1ldGFkYXRhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzU0OTMxCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9DYW1lcmFNZXRhZGF0YS5jcHAKQEAgLTAsMCArMSw1NjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisvLyAjZGVmaW5lIExPR19OREVCVUcgMAorCisjZGVmaW5lIExPR19UQUcgIkNhbUNvbW0xLjAtTUQiCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgorCisjaW5jbHVkZSAiQ2FtZXJhTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJWZW5kb3JUYWdEZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBjb21tb24geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGhlbHBlciB7CisKKyNkZWZpbmUgQUxJR05fVE8odmFsLCBhbGlnbm1lbnQpIFwKKyAgICAoKCh1aW50cHRyX3QpKHZhbCkgKyAoKGFsaWdubWVudCkgLSAxKSkgJiB+KChhbGlnbm1lbnQpIC0gMSkpCisKK0NhbWVyYU1ldGFkYXRhOjpDYW1lcmFNZXRhZGF0YSgpIDoKKyAgICAgICAgbUJ1ZmZlcihOVUxMKSwgbUxvY2tlZChmYWxzZSkgeworfQorCitDYW1lcmFNZXRhZGF0YTo6Q2FtZXJhTWV0YWRhdGEoc2l6ZV90IGVudHJ5Q2FwYWNpdHksIHNpemVfdCBkYXRhQ2FwYWNpdHkpIDoKKyAgICAgICAgbUxvY2tlZChmYWxzZSkKK3sKKyAgICBtQnVmZmVyID0gYWxsb2NhdGVfY2FtZXJhX21ldGFkYXRhKGVudHJ5Q2FwYWNpdHksIGRhdGFDYXBhY2l0eSk7Cit9CisKK0NhbWVyYU1ldGFkYXRhOjpDYW1lcmFNZXRhZGF0YShjb25zdCBDYW1lcmFNZXRhZGF0YSAmb3RoZXIpIDoKKyAgICAgICAgbUxvY2tlZChmYWxzZSkgeworICAgIG1CdWZmZXIgPSBjbG9uZV9jYW1lcmFfbWV0YWRhdGEob3RoZXIubUJ1ZmZlcik7Cit9CisKK0NhbWVyYU1ldGFkYXRhOjpDYW1lcmFNZXRhZGF0YShjYW1lcmFfbWV0YWRhdGFfdCAqYnVmZmVyKSA6CisgICAgICAgIG1CdWZmZXIoTlVMTCksIG1Mb2NrZWQoZmFsc2UpIHsKKyAgICBhY3F1aXJlKGJ1ZmZlcik7Cit9CisKK0NhbWVyYU1ldGFkYXRhICZDYW1lcmFNZXRhZGF0YTo6b3BlcmF0b3I9KGNvbnN0IENhbWVyYU1ldGFkYXRhICZvdGhlcikgeworICAgIHJldHVybiBvcGVyYXRvcj0ob3RoZXIubUJ1ZmZlcik7Cit9CisKK0NhbWVyYU1ldGFkYXRhICZDYW1lcmFNZXRhZGF0YTo6b3BlcmF0b3I9KGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90ICpidWZmZXIpIHsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IEFzc2lnbm1lbnQgdG8gYSBsb2NrZWQgQ2FtZXJhTWV0YWRhdGEhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIGlmIChDQ19MSUtFTFkoYnVmZmVyICE9IG1CdWZmZXIpKSB7CisgICAgICAgIGNhbWVyYV9tZXRhZGF0YV90ICpuZXdCdWZmZXIgPSBjbG9uZV9jYW1lcmFfbWV0YWRhdGEoYnVmZmVyKTsKKyAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgbUJ1ZmZlciA9IG5ld0J1ZmZlcjsKKyAgICB9CisgICAgcmV0dXJuICp0aGlzOworfQorCitDYW1lcmFNZXRhZGF0YTo6fkNhbWVyYU1ldGFkYXRhKCkgeworICAgIG1Mb2NrZWQgPSBmYWxzZTsKKyAgICBjbGVhcigpOworfQorCitjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCogQ2FtZXJhTWV0YWRhdGE6OmdldEFuZExvY2soKSBjb25zdCB7CisgICAgbUxvY2tlZCA9IHRydWU7CisgICAgcmV0dXJuIG1CdWZmZXI7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjp1bmxvY2soY29uc3QgY2FtZXJhX21ldGFkYXRhX3QgKmJ1ZmZlcikgY29uc3QgeworICAgIGlmICghbUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbid0IHVubG9jayBhIG5vbi1sb2NrZWQgQ2FtZXJhTWV0YWRhdGEhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpZiAoYnVmZmVyICE9IG1CdWZmZXIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW4ndCB1bmxvY2sgQ2FtZXJhTWV0YWRhdGEgd2l0aCB3cm9uZyBwb2ludGVyISIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICB9CisgICAgbUxvY2tlZCA9IGZhbHNlOworICAgIHJldHVybiBPSzsKK30KKworY2FtZXJhX21ldGFkYXRhX3QqIENhbWVyYU1ldGFkYXRhOjpyZWxlYXNlKCkgeworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGNhbWVyYV9tZXRhZGF0YV90ICpyZWxlYXNlZCA9IG1CdWZmZXI7CisgICAgbUJ1ZmZlciA9IE5VTEw7CisgICAgcmV0dXJuIHJlbGVhc2VkOworfQorCit2b2lkIENhbWVyYU1ldGFkYXRhOjpjbGVhcigpIHsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1CdWZmZXIpIHsKKyAgICAgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEobUJ1ZmZlcik7CisgICAgICAgIG1CdWZmZXIgPSBOVUxMOworICAgIH0KK30KKwordm9pZCBDYW1lcmFNZXRhZGF0YTo6YWNxdWlyZShjYW1lcmFfbWV0YWRhdGFfdCAqYnVmZmVyKSB7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNsZWFyKCk7CisgICAgbUJ1ZmZlciA9IGJ1ZmZlcjsKKworICAgIEFMT0dFX0lGKHZhbGlkYXRlX2NhbWVyYV9tZXRhZGF0YV9zdHJ1Y3R1cmUobUJ1ZmZlciwgLypzaXplKi9OVUxMKSAhPSBPSywKKyAgICAgICAgICAgICAiJXM6IEZhaWxlZCB0byB2YWxpZGF0ZSBtZXRhZGF0YSBzdHJ1Y3R1cmUgJXAiLAorICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgYnVmZmVyKTsKK30KKwordm9pZCBDYW1lcmFNZXRhZGF0YTo6YWNxdWlyZShDYW1lcmFNZXRhZGF0YSAmb3RoZXIpIHsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYWNxdWlyZShvdGhlci5yZWxlYXNlKCkpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6YXBwZW5kKGNvbnN0IENhbWVyYU1ldGFkYXRhICZvdGhlcikgeworICAgIHJldHVybiBhcHBlbmQob3RoZXIubUJ1ZmZlcik7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjphcHBlbmQoY29uc3QgY2FtZXJhX21ldGFkYXRhX3QqIG90aGVyKSB7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIHNpemVfdCBleHRyYUVudHJpZXMgPSBnZXRfY2FtZXJhX21ldGFkYXRhX2VudHJ5X2NvdW50KG90aGVyKTsKKyAgICBzaXplX3QgZXh0cmFEYXRhID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV9kYXRhX2NvdW50KG90aGVyKTsKKyAgICByZXNpemVJZk5lZWRlZChleHRyYUVudHJpZXMsIGV4dHJhRGF0YSk7CisKKyAgICByZXR1cm4gYXBwZW5kX2NhbWVyYV9tZXRhZGF0YShtQnVmZmVyLCBvdGhlcik7Cit9CisKK3NpemVfdCBDYW1lcmFNZXRhZGF0YTo6ZW50cnlDb3VudCgpIGNvbnN0IHsKKyAgICByZXR1cm4gKG1CdWZmZXIgPT0gTlVMTCkgPyAwIDoKKyAgICAgICAgICAgIGdldF9jYW1lcmFfbWV0YWRhdGFfZW50cnlfY291bnQobUJ1ZmZlcik7Cit9CisKK2Jvb2wgQ2FtZXJhTWV0YWRhdGE6OmlzRW1wdHkoKSBjb25zdCB7CisgICAgcmV0dXJuIGVudHJ5Q291bnQoKSA9PSAwOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6c29ydCgpIHsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgcmV0dXJuIHNvcnRfY2FtZXJhX21ldGFkYXRhKG1CdWZmZXIpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6Y2hlY2tUeXBlKHVpbnQzMl90IHRhZywgdWludDhfdCBleHBlY3RlZFR5cGUpIHsKKyAgICBpbnQgdGFnVHlwZSA9IGdldF9jYW1lcmFfbWV0YWRhdGFfdGFnX3R5cGUodGFnKTsKKyAgICBpZiAoIENDX1VOTElLRUxZKHRhZ1R5cGUgPT0gLTEpKSB7CisgICAgICAgIEFMT0dFKCJVcGRhdGUgbWV0YWRhdGEgZW50cnk6IFVua25vd24gdGFnICVkIiwgdGFnKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpZiAoIENDX1VOTElLRUxZKHRhZ1R5cGUgIT0gZXhwZWN0ZWRUeXBlKSApIHsKKyAgICAgICAgQUxPR0UoIk1pc21hdGNoZWQgdGFnIHR5cGUgd2hlbiB1cGRhdGluZyBlbnRyeSAlcyAoJWQpIG9mIHR5cGUgJXM7ICIKKyAgICAgICAgICAgICAgICAiZ290IHR5cGUgJXMgZGF0YSBpbnN0ZWFkICIsCisgICAgICAgICAgICAgICAgZ2V0X2NhbWVyYV9tZXRhZGF0YV90YWdfbmFtZSh0YWcpLCB0YWcsCisgICAgICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3R5cGVfbmFtZXNbdGFnVHlwZV0sCisgICAgICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3R5cGVfbmFtZXNbZXhwZWN0ZWRUeXBlXSk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgcmV0dXJuIE9LOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6dXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgY29uc3QgaW50MzJfdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpIHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGlmICggKHJlcyA9IGNoZWNrVHlwZSh0YWcsIFRZUEVfSU5UMzIpKSAhPSBPSykgeworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gdXBkYXRlSW1wbCh0YWcsIChjb25zdCB2b2lkKilkYXRhLCBkYXRhX2NvdW50KTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBkYXRhX2NvdW50KSB7CisgICAgc3RhdHVzX3QgcmVzOworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpZiAoIChyZXMgPSBjaGVja1R5cGUodGFnLCBUWVBFX0JZVEUpKSAhPSBPSykgeworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gdXBkYXRlSW1wbCh0YWcsIChjb25zdCB2b2lkKilkYXRhLCBkYXRhX2NvdW50KTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgIGNvbnN0IGZsb2F0ICpkYXRhLCBzaXplX3QgZGF0YV9jb3VudCkgeworICAgIHN0YXR1c190IHJlczsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgaWYgKCAocmVzID0gY2hlY2tUeXBlKHRhZywgVFlQRV9GTE9BVCkpICE9IE9LKSB7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorICAgIHJldHVybiB1cGRhdGVJbXBsKHRhZywgKGNvbnN0IHZvaWQqKWRhdGEsIGRhdGFfY291bnQpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6dXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgY29uc3QgaW50NjRfdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpIHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGlmICggKHJlcyA9IGNoZWNrVHlwZSh0YWcsIFRZUEVfSU5UNjQpKSAhPSBPSykgeworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gdXBkYXRlSW1wbCh0YWcsIChjb25zdCB2b2lkKilkYXRhLCBkYXRhX2NvdW50KTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgIGNvbnN0IGRvdWJsZSAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpIHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGlmICggKHJlcyA9IGNoZWNrVHlwZSh0YWcsIFRZUEVfRE9VQkxFKSkgIT0gT0spIHsKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisgICAgcmV0dXJuIHVwZGF0ZUltcGwodGFnLCAoY29uc3Qgdm9pZCopZGF0YSwgZGF0YV9jb3VudCk7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjp1cGRhdGUodWludDMyX3QgdGFnLAorICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfcmF0aW9uYWxfdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpIHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGlmICggKHJlcyA9IGNoZWNrVHlwZSh0YWcsIFRZUEVfUkFUSU9OQUwpKSAhPSBPSykgeworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gdXBkYXRlSW1wbCh0YWcsIChjb25zdCB2b2lkKilkYXRhLCBkYXRhX2NvdW50KTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgIGNvbnN0IFN0cmluZzggJnN0cmluZykgeworICAgIHN0YXR1c190IHJlczsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgaWYgKCAocmVzID0gY2hlY2tUeXBlKHRhZywgVFlQRV9CWVRFKSkgIT0gT0spIHsKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisgICAgLy8gc3RyaW5nLnNpemUoKSBkb2Vzbid0IGNvdW50IHRoZSBudWxsIHRlcm1pbmF0aW9uIGNoYXJhY3Rlci4KKyAgICByZXR1cm4gdXBkYXRlSW1wbCh0YWcsIChjb25zdCB2b2lkKilzdHJpbmcuc3RyaW5nKCksIHN0cmluZy5zaXplKCkgKyAxKTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnVwZGF0ZShjb25zdCBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgJmVudHJ5KSB7CisgICAgc3RhdHVzX3QgcmVzOworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpZiAoIChyZXMgPSBjaGVja1R5cGUoZW50cnkudGFnLCBlbnRyeS50eXBlKSkgIT0gT0spIHsKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisgICAgcmV0dXJuIHVwZGF0ZUltcGwoZW50cnkudGFnLCAoY29uc3Qgdm9pZCopZW50cnkuZGF0YS51OCwgZW50cnkuY291bnQpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6dXBkYXRlSW1wbCh1aW50MzJfdCB0YWcsIGNvbnN0IHZvaWQgKmRhdGEsCisgICAgICAgIHNpemVfdCBkYXRhX2NvdW50KSB7CisgICAgc3RhdHVzX3QgcmVzOworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpbnQgdHlwZSA9IGdldF9jYW1lcmFfbWV0YWRhdGFfdGFnX3R5cGUodGFnKTsKKyAgICBpZiAodHlwZSA9PSAtMSkgeworICAgICAgICBBTE9HRSgiJXM6IFRhZyAlZCBub3QgZm91bmQiLCBfX0ZVTkNUSU9OX18sIHRhZyk7CisgICAgICAgIHJldHVybiBCQURfVkFMVUU7CisgICAgfQorICAgIC8vIFNhZmV0eSBjaGVjayAtIGVuc3VyZSB0aGF0IGRhdGEgaXNuJ3QgcG9pbnRpbmcgdG8gdGhpcyBtZXRhZGF0YSwgc2luY2UKKyAgICAvLyB0aGF0IHdvdWxkIGdldCBpbnZhbGlkYXRlZCBpZiBhIHJlc2l6ZSBpcyBuZWVkZWQKKyAgICBzaXplX3QgYnVmZmVyU2l6ZSA9IGdldF9jYW1lcmFfbWV0YWRhdGFfc2l6ZShtQnVmZmVyKTsKKyAgICB1aW50cHRyX3QgYnVmQWRkciA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtQnVmZmVyKTsKKyAgICB1aW50cHRyX3QgZGF0YUFkZHIgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZGF0YSk7CisgICAgaWYgKGRhdGFBZGRyID4gYnVmQWRkciAmJiBkYXRhQWRkciA8IChidWZBZGRyICsgYnVmZmVyU2l6ZSkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVcGRhdGUgYXR0ZW1wdGVkIHdpdGggZGF0YSBmcm9tIHRoZSBzYW1lIG1ldGFkYXRhIGJ1ZmZlciEiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICBzaXplX3QgZGF0YV9zaXplID0gY2FsY3VsYXRlX2NhbWVyYV9tZXRhZGF0YV9lbnRyeV9kYXRhX3NpemUodHlwZSwKKyAgICAgICAgICAgIGRhdGFfY291bnQpOworCisgICAgcmVzID0gcmVzaXplSWZOZWVkZWQoMSwgZGF0YV9zaXplKTsKKworICAgIGlmIChyZXMgPT0gT0spIHsKKyAgICAgICAgY2FtZXJhX21ldGFkYXRhX2VudHJ5X3QgZW50cnk7CisgICAgICAgIHJlcyA9IGZpbmRfY2FtZXJhX21ldGFkYXRhX2VudHJ5KG1CdWZmZXIsIHRhZywgJmVudHJ5KTsKKyAgICAgICAgaWYgKHJlcyA9PSBOQU1FX05PVF9GT1VORCkgeworICAgICAgICAgICAgcmVzID0gYWRkX2NhbWVyYV9tZXRhZGF0YV9lbnRyeShtQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICB0YWcsIGRhdGEsIGRhdGFfY291bnQpOworICAgICAgICB9IGVsc2UgaWYgKHJlcyA9PSBPSykgeworICAgICAgICAgICAgcmVzID0gdXBkYXRlX2NhbWVyYV9tZXRhZGF0YV9lbnRyeShtQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICBlbnRyeS5pbmRleCwgZGF0YSwgZGF0YV9jb3VudCwgTlVMTCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocmVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIHVwZGF0ZSBtZXRhZGF0YSBlbnRyeSAlcy4lcyAoJXgpOiAlcyAoJWQpIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGdldF9jYW1lcmFfbWV0YWRhdGFfc2VjdGlvbl9uYW1lKHRhZyksCisgICAgICAgICAgICAgICAgZ2V0X2NhbWVyYV9tZXRhZGF0YV90YWdfbmFtZSh0YWcpLCB0YWcsIHN0cmVycm9yKC1yZXMpLCByZXMpOworICAgIH0KKworICAgIElGX0FMT0dWKCkgeworICAgICAgICBBTE9HRV9JRih2YWxpZGF0ZV9jYW1lcmFfbWV0YWRhdGFfc3RydWN0dXJlKG1CdWZmZXIsIC8qc2l6ZSovTlVMTCkgIT0KKyAgICAgICAgICAgICAgICAgT0ssCisKKyAgICAgICAgICAgICAgICAgIiVzOiBGYWlsZWQgdG8gdmFsaWRhdGUgbWV0YWRhdGEgc3RydWN0dXJlIGFmdGVyIHVwZGF0ZSAlcCIsCisgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgbUJ1ZmZlcik7CisgICAgfQorCisgICAgcmV0dXJuIHJlczsKK30KKworYm9vbCBDYW1lcmFNZXRhZGF0YTo6ZXhpc3RzKHVpbnQzMl90IHRhZykgY29uc3QgeworICAgIGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSBlbnRyeTsKKyAgICByZXR1cm4gZmluZF9jYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkobUJ1ZmZlciwgdGFnLCAmZW50cnkpID09IDA7Cit9CisKK2NhbWVyYV9tZXRhZGF0YV9lbnRyeV90IENhbWVyYU1ldGFkYXRhOjpmaW5kKHVpbnQzMl90IHRhZykgeworICAgIHN0YXR1c190IHJlczsKKyAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnkgZW50cnk7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICBlbnRyeS5jb3VudCA9IDA7CisgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICB9CisgICAgcmVzID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfZW50cnkobUJ1ZmZlciwgdGFnLCAmZW50cnkpOworICAgIGlmIChDQ19VTkxJS0VMWSggcmVzICE9IE9LICkpIHsKKyAgICAgICAgZW50cnkuY291bnQgPSAwOworICAgICAgICBlbnRyeS5kYXRhLnU4ID0gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuIGVudHJ5OworfQorCitjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnlfdCBDYW1lcmFNZXRhZGF0YTo6ZmluZCh1aW50MzJfdCB0YWcpIGNvbnN0IHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5IGVudHJ5OworICAgIHJlcyA9IGZpbmRfY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5KG1CdWZmZXIsIHRhZywgJmVudHJ5KTsKKyAgICBpZiAoQ0NfVU5MSUtFTFkoIHJlcyAhPSBPSyApKSB7CisgICAgICAgIGVudHJ5LmNvdW50ID0gMDsKKyAgICAgICAgZW50cnkuZGF0YS51OCA9IE5VTEw7CisgICAgfQorICAgIHJldHVybiBlbnRyeTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OmVyYXNlKHVpbnQzMl90IHRhZykgeworICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeV90IGVudHJ5OworICAgIHN0YXR1c190IHJlczsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgcmVzID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfZW50cnkobUJ1ZmZlciwgdGFnLCAmZW50cnkpOworICAgIGlmIChyZXMgPT0gTkFNRV9OT1RfRk9VTkQpIHsKKyAgICAgICAgcmV0dXJuIE9LOworICAgIH0gZWxzZSBpZiAocmVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCIlczogRXJyb3IgbG9va2luZyBmb3IgZW50cnkgJXMuJXMgKCV4KTogJXMgJWQiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywKKyAgICAgICAgICAgICAgICBnZXRfY2FtZXJhX21ldGFkYXRhX3NlY3Rpb25fbmFtZSh0YWcpLAorICAgICAgICAgICAgICAgIGdldF9jYW1lcmFfbWV0YWRhdGFfdGFnX25hbWUodGFnKSwgdGFnLCBzdHJlcnJvcigtcmVzKSwgcmVzKTsKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisgICAgcmVzID0gZGVsZXRlX2NhbWVyYV9tZXRhZGF0YV9lbnRyeShtQnVmZmVyLCBlbnRyeS5pbmRleCk7CisgICAgaWYgKHJlcyAhPSBPSykgeworICAgICAgICBBTE9HRSgiJXM6IEVycm9yIGRlbGV0aW5nIGVudHJ5ICVzLiVzICgleCk6ICVzICVkIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sCisgICAgICAgICAgICAgICAgZ2V0X2NhbWVyYV9tZXRhZGF0YV9zZWN0aW9uX25hbWUodGFnKSwKKyAgICAgICAgICAgICAgICBnZXRfY2FtZXJhX21ldGFkYXRhX3RhZ19uYW1lKHRhZyksIHRhZywgc3RyZXJyb3IoLXJlcyksIHJlcyk7CisgICAgfQorICAgIHJldHVybiByZXM7Cit9CisKK3ZvaWQgQ2FtZXJhTWV0YWRhdGE6OmR1bXAoaW50IGZkLCBpbnQgdmVyYm9zaXR5LCBpbnQgaW5kZW50YXRpb24pIGNvbnN0IHsKKyAgICBkdW1wX2luZGVudGVkX2NhbWVyYV9tZXRhZGF0YShtQnVmZmVyLCBmZCwgdmVyYm9zaXR5LCBpbmRlbnRhdGlvbik7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjpyZXNpemVJZk5lZWRlZChzaXplX3QgZXh0cmFFbnRyaWVzLCBzaXplX3QgZXh0cmFEYXRhKSB7CisgICAgaWYgKG1CdWZmZXIgPT0gTlVMTCkgeworICAgICAgICBtQnVmZmVyID0gYWxsb2NhdGVfY2FtZXJhX21ldGFkYXRhKGV4dHJhRW50cmllcyAqIDIsIGV4dHJhRGF0YSAqIDIpOworICAgICAgICBpZiAobUJ1ZmZlciA9PSBOVUxMKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IENhbid0IGFsbG9jYXRlIGxhcmdlciBtZXRhZGF0YSBidWZmZXIiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgcmV0dXJuIE5PX01FTU9SWTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHNpemVfdCBjdXJyZW50RW50cnlDb3VudCA9IGdldF9jYW1lcmFfbWV0YWRhdGFfZW50cnlfY291bnQobUJ1ZmZlcik7CisgICAgICAgIHNpemVfdCBjdXJyZW50RW50cnlDYXAgPSBnZXRfY2FtZXJhX21ldGFkYXRhX2VudHJ5X2NhcGFjaXR5KG1CdWZmZXIpOworICAgICAgICBzaXplX3QgbmV3RW50cnlDb3VudCA9IGN1cnJlbnRFbnRyeUNvdW50ICsKKyAgICAgICAgICAgICAgICBleHRyYUVudHJpZXM7CisgICAgICAgIG5ld0VudHJ5Q291bnQgPSAobmV3RW50cnlDb3VudCA+IGN1cnJlbnRFbnRyeUNhcCkgPworICAgICAgICAgICAgICAgIG5ld0VudHJ5Q291bnQgKiAyIDogY3VycmVudEVudHJ5Q2FwOworCisgICAgICAgIHNpemVfdCBjdXJyZW50RGF0YUNvdW50ID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV9kYXRhX2NvdW50KG1CdWZmZXIpOworICAgICAgICBzaXplX3QgY3VycmVudERhdGFDYXAgPSBnZXRfY2FtZXJhX21ldGFkYXRhX2RhdGFfY2FwYWNpdHkobUJ1ZmZlcik7CisgICAgICAgIHNpemVfdCBuZXdEYXRhQ291bnQgPSBjdXJyZW50RGF0YUNvdW50ICsKKyAgICAgICAgICAgICAgICBleHRyYURhdGE7CisgICAgICAgIG5ld0RhdGFDb3VudCA9IChuZXdEYXRhQ291bnQgPiBjdXJyZW50RGF0YUNhcCkgPworICAgICAgICAgICAgICAgIG5ld0RhdGFDb3VudCAqIDIgOiBjdXJyZW50RGF0YUNhcDsKKworICAgICAgICBpZiAobmV3RW50cnlDb3VudCA+IGN1cnJlbnRFbnRyeUNhcCB8fAorICAgICAgICAgICAgICAgIG5ld0RhdGFDb3VudCA+IGN1cnJlbnREYXRhQ2FwKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqb2xkQnVmZmVyID0gbUJ1ZmZlcjsKKyAgICAgICAgICAgIG1CdWZmZXIgPSBhbGxvY2F0ZV9jYW1lcmFfbWV0YWRhdGEobmV3RW50cnlDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgbmV3RGF0YUNvdW50KTsKKyAgICAgICAgICAgIGlmIChtQnVmZmVyID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IENhbid0IGFsbG9jYXRlIGxhcmdlciBtZXRhZGF0YSBidWZmZXIiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgICAgIHJldHVybiBOT19NRU1PUlk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcHBlbmRfY2FtZXJhX21ldGFkYXRhKG1CdWZmZXIsIG9sZEJ1ZmZlcik7CisgICAgICAgICAgICBmcmVlX2NhbWVyYV9tZXRhZGF0YShvbGRCdWZmZXIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBPSzsKK30KKwordm9pZCBDYW1lcmFNZXRhZGF0YTo6c3dhcChDYW1lcmFNZXRhZGF0YSYgb3RoZXIpIHsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKG90aGVyLm1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBPdGhlciBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2FtZXJhX21ldGFkYXRhKiB0aGlzQnVmID0gbUJ1ZmZlcjsKKyAgICBjYW1lcmFfbWV0YWRhdGEqIG90aGVyQnVmID0gb3RoZXIubUJ1ZmZlcjsKKworICAgIG90aGVyLm1CdWZmZXIgPSB0aGlzQnVmOworICAgIG1CdWZmZXIgPSBvdGhlckJ1ZjsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OmdldFRhZ0Zyb21OYW1lKGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgIGNvbnN0IFZlbmRvclRhZ0Rlc2NyaXB0b3IqIHZUYWdzLCB1aW50MzJfdCAqdGFnKSB7CisKKyAgICBpZiAobmFtZSA9PSBudWxscHRyIHx8IHRhZyA9PSBudWxscHRyKSByZXR1cm4gQkFEX1ZBTFVFOworCisgICAgc2l6ZV90IG5hbWVMZW5ndGggPSBzdHJsZW4obmFtZSk7CisKKyAgICBjb25zdCBTb3J0ZWRWZWN0b3I8U3RyaW5nOD4gKnZlbmRvclNlY3Rpb25zOworICAgIHNpemVfdCB2ZW5kb3JTZWN0aW9uQ291bnQgPSAwOworCisgICAgaWYgKHZUYWdzICE9IE5VTEwpIHsKKyAgICAgICAgdmVuZG9yU2VjdGlvbnMgPSB2VGFncy0+Z2V0QWxsU2VjdGlvbk5hbWVzKCk7CisgICAgICAgIHZlbmRvclNlY3Rpb25Db3VudCA9IHZlbmRvclNlY3Rpb25zLT5zaXplKCk7CisgICAgfQorCisgICAgLy8gRmlyc3QsIGZpbmQgdGhlIHNlY3Rpb24gYnkgdGhlIGxvbmdlc3Qgc3RyaW5nIG1hdGNoCisgICAgY29uc3QgY2hhciAqc2VjdGlvbiA9IE5VTEw7CisgICAgc2l6ZV90IHNlY3Rpb25JbmRleCA9IDA7CisgICAgc2l6ZV90IHNlY3Rpb25MZW5ndGggPSAwOworICAgIHNpemVfdCB0b3RhbFNlY3Rpb25Db3VudCA9IEFORFJPSURfU0VDVElPTl9DT1VOVCArIHZlbmRvclNlY3Rpb25Db3VudDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRvdGFsU2VjdGlvbkNvdW50OyArK2kpIHsKKworICAgICAgICBjb25zdCBjaGFyICpzdHIgPSAoaSA8IEFORFJPSURfU0VDVElPTl9DT1VOVCkgPyBjYW1lcmFfbWV0YWRhdGFfc2VjdGlvbl9uYW1lc1tpXSA6CisgICAgICAgICAgICAgICAgKCp2ZW5kb3JTZWN0aW9ucylbaSAtIEFORFJPSURfU0VDVElPTl9DT1VOVF0uc3RyaW5nKCk7CisKKyAgICAgICAgQUxPR1YoIiVzOiBUcnlpbmcgdG8gbWF0Y2ggYWdhaW5zdCBzZWN0aW9uICclcyciLCBfX0ZVTkNUSU9OX18sIHN0cik7CisKKyAgICAgICAgaWYgKHN0cnN0cihuYW1lLCBzdHIpID09IG5hbWUpIHsgLy8gbmFtZSBiZWdpbnMgd2l0aCB0aGUgc2VjdGlvbiBuYW1lCisgICAgICAgICAgICBzaXplX3Qgc3RyTGVuZ3RoID0gc3RybGVuKHN0cik7CisKKyAgICAgICAgICAgIEFMT0dWKCIlczogTmFtZSBiZWdpbnMgd2l0aCBzZWN0aW9uIG5hbWUiLCBfX0ZVTkNUSU9OX18pOworCisgICAgICAgICAgICAvLyBzZWN0aW9uIG5hbWUgaXMgdGhlIGxvbmdlc3Qgd2UndmUgZm91bmQgc28gZmFyCisgICAgICAgICAgICBpZiAoc2VjdGlvbiA9PSBOVUxMIHx8IHNlY3Rpb25MZW5ndGggPCBzdHJMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBzZWN0aW9uID0gc3RyOworICAgICAgICAgICAgICAgIHNlY3Rpb25JbmRleCA9IGk7CisgICAgICAgICAgICAgICAgc2VjdGlvbkxlbmd0aCA9IHN0ckxlbmd0aDsKKworICAgICAgICAgICAgICAgIEFMT0dWKCIlczogRm91bmQgbmV3IGJlc3Qgc2VjdGlvbiAoJXMpIiwgX19GVU5DVElPTl9fLCBzZWN0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChzZWN0aW9uID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5BTUVfTk9UX0ZPVU5EOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dWKCIlczogRm91bmQgbWF0Y2hlZCBzZWN0aW9uICclcycgKCV6dSkiLAorICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHNlY3Rpb24sIHNlY3Rpb25JbmRleCk7CisgICAgfQorCisgICAgLy8gR2V0IHRoZSB0YWcgbmFtZSBjb21wb25lbnQgb2YgdGhlIG5hbWUKKyAgICBjb25zdCBjaGFyICpuYW1lVGFnTmFtZSA9IG5hbWUgKyBzZWN0aW9uTGVuZ3RoICsgMTsgLy8geC55LnogLT4gegorICAgIGlmIChzZWN0aW9uTGVuZ3RoICsgMSA+PSBuYW1lTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBCQURfVkFMVUU7CisgICAgfQorCisgICAgLy8gTWF0Y2ggcmVzdCBvZiBuYW1lIGFnYWluc3QgdGhlIHRhZyBuYW1lcyBpbiB0aGF0IHNlY3Rpb24gb25seQorICAgIHVpbnQzMl90IGNhbmRpZGF0ZVRhZyA9IDA7CisgICAgaWYgKHNlY3Rpb25JbmRleCA8IEFORFJPSURfU0VDVElPTl9DT1VOVCkgeworICAgICAgICAvLyBNYXRjaCBidWlsdC1pbiB0YWdzICh0eXBpY2FsbHkgYW5kcm9pZC4qKQorICAgICAgICB1aW50MzJfdCB0YWdCZWdpbiwgdGFnRW5kOyAvLyBbdGFnQmVnaW4sIHRhZ0VuZCkKKyAgICAgICAgdGFnQmVnaW4gPSBjYW1lcmFfbWV0YWRhdGFfc2VjdGlvbl9ib3VuZHNbc2VjdGlvbkluZGV4XVswXTsKKyAgICAgICAgdGFnRW5kID0gY2FtZXJhX21ldGFkYXRhX3NlY3Rpb25fYm91bmRzW3NlY3Rpb25JbmRleF1bMV07CisKKyAgICAgICAgZm9yIChjYW5kaWRhdGVUYWcgPSB0YWdCZWdpbjsgY2FuZGlkYXRlVGFnIDwgdGFnRW5kOyArK2NhbmRpZGF0ZVRhZykgeworICAgICAgICAgICAgY29uc3QgY2hhciAqdGFnTmFtZSA9IGdldF9jYW1lcmFfbWV0YWRhdGFfdGFnX25hbWUoY2FuZGlkYXRlVGFnKTsKKworICAgICAgICAgICAgaWYgKHN0cmNtcChuYW1lVGFnTmFtZSwgdGFnTmFtZSkgPT0gMCkgeworICAgICAgICAgICAgICAgIEFMT0dWKCIlczogRm91bmQgbWF0Y2hlZCB0YWcgJyVzJyAoJWQpIiwKKyAgICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHRhZ05hbWUsIGNhbmRpZGF0ZVRhZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2FuZGlkYXRlVGFnID09IHRhZ0VuZCkgeworICAgICAgICAgICAgcmV0dXJuIE5BTUVfTk9UX0ZPVU5EOworICAgICAgICB9CisgICAgfSBlbHNlIGlmICh2VGFncyAhPSBOVUxMKSB7CisgICAgICAgIC8vIE1hdGNoIHZlbmRvciB0YWdzICh0eXBpY2FsbHkgY29tLiopCisgICAgICAgIGNvbnN0IFN0cmluZzggc2VjdGlvbk5hbWUoc2VjdGlvbik7CisgICAgICAgIGNvbnN0IFN0cmluZzggdGFnTmFtZShuYW1lVGFnTmFtZSk7CisKKyAgICAgICAgc3RhdHVzX3QgcmVzID0gT0s7CisgICAgICAgIGlmICgocmVzID0gdlRhZ3MtPmxvb2t1cFRhZyh0YWdOYW1lLCBzZWN0aW9uTmFtZSwgJmNhbmRpZGF0ZVRhZykpICE9IE9LKSB7CisgICAgICAgICAgICByZXR1cm4gTkFNRV9OT1RfRk9VTkQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAqdGFnID0gY2FuZGlkYXRlVGFnOworICAgIHJldHVybiBPSzsKK30KKworCit9IC8vIG5hbWVzcGFjZSBoZWxwZXIKK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGNvbW1vbgorfSAvLyBuYW1lc3BhY2UgY2FtZXJhCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9DYW1lcmFNb2R1bGUuY3BwIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9DYW1lcmFNb2R1bGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhNGJjOWMKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0NhbWVyYU1vZHVsZS5jcHAKQEAgLTAsMCArMSw0NTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNhbUNvbW0xLjAtQ2FtTW9kdWxlIgorI2RlZmluZSBBVFJBQ0VfVEFHIEFUUkFDRV9UQUdfQ0FNRVJBCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorCisjaW5jbHVkZSAiQ2FtZXJhTW9kdWxlLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBjb21tb24geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGhlbHBlciB7CisKK3ZvaWQgQ2FtZXJhTW9kdWxlOjpkZXJpdmVDYW1lcmFDaGFyYWN0ZXJpc3RpY3NLZXlzKAorICAgICAgICB1aW50MzJfdCBkZXZpY2VWZXJzaW9uLCBDYW1lcmFNZXRhZGF0YSAmY2hhcnMpIHsKKyAgICBBVFJBQ0VfQ0FMTCgpOworCisgICAgVmVjdG9yPGludDMyX3Q+IGRlcml2ZWRDaGFyS2V5czsKKyAgICBWZWN0b3I8aW50MzJfdD4gZGVyaXZlZFJlcXVlc3RLZXlzOworICAgIFZlY3RvcjxpbnQzMl90PiBkZXJpdmVkUmVzdWx0S2V5czsKKyAgICAvLyBLZXlzIGFkZGVkIGluIEhBTDMuMworICAgIGlmIChkZXZpY2VWZXJzaW9uIDwgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzMpIHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNvbnRyb2xNb2RlczsKKyAgICAgICAgdWludDhfdCBkYXRhID0gQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfQVZBSUxBQkxFX1RSVUU7CisgICAgICAgIGNoYXJzLnVwZGF0ZShBTkRST0lEX0NPTlRST0xfQUVfTE9DS19BVkFJTEFCTEUsICZkYXRhLCAvKmNvdW50Ki8xKTsKKyAgICAgICAgZGF0YSA9IEFORFJPSURfQ09OVFJPTF9BV0JfTE9DS19BVkFJTEFCTEVfVFJVRTsKKyAgICAgICAgY2hhcnMudXBkYXRlKEFORFJPSURfQ09OVFJPTF9BV0JfTE9DS19BVkFJTEFCTEUsICZkYXRhLCAvKmNvdW50Ki8xKTsKKyAgICAgICAgY29udHJvbE1vZGVzLnB1c2goQU5EUk9JRF9DT05UUk9MX01PREVfQVVUTyk7CisgICAgICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeSBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9TQ0VORV9NT0RFUyk7CisgICAgICAgIGlmIChlbnRyeS5jb3VudCA+IDEgfHwgZW50cnkuZGF0YS51OFswXSAhPSBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9ESVNBQkxFRCkgeworICAgICAgICAgICAgY29udHJvbE1vZGVzLnB1c2goQU5EUk9JRF9DT05UUk9MX01PREVfVVNFX1NDRU5FX01PREUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gT25seSBhZHZlcnRpc2UgQ09OVFJPTF9PRkYgbW9kZSBpZiAzQSBtYW51YWwgY29udHJvbHMgYXJlIHN1cHBvcnRlZC4KKyAgICAgICAgYm9vbCBpc01hbnVhbEFlU3VwcG9ydGVkID0gZmFsc2U7CisgICAgICAgIGJvb2wgaXNNYW51YWxBZlN1cHBvcnRlZCA9IGZhbHNlOworICAgICAgICBib29sIGlzTWFudWFsQXdiU3VwcG9ydGVkID0gZmFsc2U7CisgICAgICAgIGVudHJ5ID0gY2hhcnMuZmluZChBTkRST0lEX0NPTlRST0xfQUVfQVZBSUxBQkxFX01PREVTKTsKKyAgICAgICAgaWYgKGVudHJ5LmNvdW50ID4gMCkgeworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5jb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmRhdGEudThbaV0gPT0gQU5EUk9JRF9DT05UUk9MX0FFX01PREVfT0ZGKSB7CisgICAgICAgICAgICAgICAgICAgIGlzTWFudWFsQWVTdXBwb3J0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZW50cnkgPSBjaGFycy5maW5kKEFORFJPSURfQ09OVFJPTF9BRl9BVkFJTEFCTEVfTU9ERVMpOworICAgICAgICBpZiAoZW50cnkuY291bnQgPiAwKSB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVudHJ5LmNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnkuZGF0YS51OFtpXSA9PSBBTkRST0lEX0NPTlRST0xfQUZfTU9ERV9PRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNNYW51YWxBZlN1cHBvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9DT05UUk9MX0FXQl9BVkFJTEFCTEVfTU9ERVMpOworICAgICAgICBpZiAoZW50cnkuY291bnQgPiAwKSB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVudHJ5LmNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnkuZGF0YS51OFtpXSA9PSBBTkRST0lEX0NPTlRST0xfQVdCX01PREVfT0ZGKSB7CisgICAgICAgICAgICAgICAgICAgIGlzTWFudWFsQXdiU3VwcG9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpc01hbnVhbEFlU3VwcG9ydGVkICYmIGlzTWFudWFsQWZTdXBwb3J0ZWQgJiYgaXNNYW51YWxBd2JTdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIGNvbnRyb2xNb2Rlcy5wdXNoKEFORFJPSURfQ09OVFJPTF9NT0RFX09GRik7CisgICAgICAgIH0KKworICAgICAgICBjaGFycy51cGRhdGUoQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9NT0RFUywgY29udHJvbE1vZGVzKTsKKworICAgICAgICBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9SRVFVRVNUX0tFWVMpOworICAgICAgICAvLyBIQUwzLjIgZGV2aWNlcyBwYXNzaW5nIGV4aXN0aW5nIENUUyB0ZXN0IHNob3VsZCBhbGwgc3VwcG9ydCBhbGwgTFNDIG1vZGVzIGFuZCBMU0MgbWFwCisgICAgICAgIGJvb2wgbGVuc1NoYWRpbmdNb2RlU3VwcG9ydGVkID0gZmFsc2U7CisgICAgICAgIGlmIChlbnRyeS5jb3VudCA+IDApIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChlbnRyeS5kYXRhLmkzMltpXSA9PSBBTkRST0lEX1NIQURJTkdfTU9ERSkgeworICAgICAgICAgICAgICAgICAgICBsZW5zU2hhZGluZ01vZGVTdXBwb3J0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxzY01vZGVzOworICAgICAgICBWZWN0b3I8dWludDhfdD4gbHNjTWFwTW9kZXM7CisgICAgICAgIGxzY01vZGVzLnB1c2goQU5EUk9JRF9TSEFESU5HX01PREVfRkFTVCk7CisgICAgICAgIGxzY01vZGVzLnB1c2goQU5EUk9JRF9TSEFESU5HX01PREVfSElHSF9RVUFMSVRZKTsKKyAgICAgICAgbHNjTWFwTW9kZXMucHVzaChBTkRST0lEX1NUQVRJU1RJQ1NfTEVOU19TSEFESU5HX01BUF9NT0RFX09GRik7CisgICAgICAgIGlmIChsZW5zU2hhZGluZ01vZGVTdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIGxzY01vZGVzLnB1c2goQU5EUk9JRF9TSEFESU5HX01PREVfT0ZGKTsKKyAgICAgICAgICAgIGxzY01hcE1vZGVzLnB1c2goQU5EUk9JRF9TVEFUSVNUSUNTX0xFTlNfU0hBRElOR19NQVBfTU9ERV9PTik7CisgICAgICAgIH0KKyAgICAgICAgY2hhcnMudXBkYXRlKEFORFJPSURfU0hBRElOR19BVkFJTEFCTEVfTU9ERVMsIGxzY01vZGVzKTsKKyAgICAgICAgY2hhcnMudXBkYXRlKEFORFJPSURfU1RBVElTVElDU19JTkZPX0FWQUlMQUJMRV9MRU5TX1NIQURJTkdfTUFQX01PREVTLCBsc2NNYXBNb2Rlcyk7CisKKyAgICAgICAgZGVyaXZlZENoYXJLZXlzLnB1c2goQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfQVZBSUxBQkxFKTsKKyAgICAgICAgZGVyaXZlZENoYXJLZXlzLnB1c2goQU5EUk9JRF9DT05UUk9MX0FXQl9MT0NLX0FWQUlMQUJMRSk7CisgICAgICAgIGRlcml2ZWRDaGFyS2V5cy5wdXNoKEFORFJPSURfQ09OVFJPTF9BVkFJTEFCTEVfTU9ERVMpOworICAgICAgICBkZXJpdmVkQ2hhcktleXMucHVzaChBTkRST0lEX1NIQURJTkdfQVZBSUxBQkxFX01PREVTKTsKKyAgICAgICAgZGVyaXZlZENoYXJLZXlzLnB1c2goQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fQVZBSUxBQkxFX0xFTlNfU0hBRElOR19NQVBfTU9ERVMpOworCisgICAgICAgIC8vIE5lZWQgdXBkYXRlIGFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIHNpbmNlIEhBTDMuMworICAgICAgICAvLyBhZGRzIGJhdGNoIHNpemUgdG8gdGhpcyBhcnJheS4KKyAgICAgICAgZW50cnkgPSBjaGFycy5maW5kKEFORFJPSURfQ09OVFJPTF9BVkFJTEFCTEVfSElHSF9TUEVFRF9WSURFT19DT05GSUdVUkFUSU9OUyk7CisgICAgICAgIGlmIChlbnRyeS5jb3VudCA+IDApIHsKKyAgICAgICAgICAgIFZlY3RvcjxpbnQzMl90PiBoaWdoU3BlZWRDb25maWc7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVudHJ5LmNvdW50OyBpICs9IDQpIHsKKyAgICAgICAgICAgICAgICBoaWdoU3BlZWRDb25maWcuYWRkKGVudHJ5LmRhdGEuaTMyW2ldKTsgLy8gd2lkdGgKKyAgICAgICAgICAgICAgICBoaWdoU3BlZWRDb25maWcuYWRkKGVudHJ5LmRhdGEuaTMyW2kgKyAxXSk7IC8vIGhlaWdodAorICAgICAgICAgICAgICAgIGhpZ2hTcGVlZENvbmZpZy5hZGQoZW50cnkuZGF0YS5pMzJbaSArIDJdKTsgLy8gZnBzX21pbgorICAgICAgICAgICAgICAgIGhpZ2hTcGVlZENvbmZpZy5hZGQoZW50cnkuZGF0YS5pMzJbaSArIDNdKTsgLy8gZnBzX21heAorICAgICAgICAgICAgICAgIGhpZ2hTcGVlZENvbmZpZy5hZGQoMSk7IC8vIGJhdGNoU2l6ZV9tYXguIGRlZmF1bHQgdG8gMSBmb3IgSEFMMy4yCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFycy51cGRhdGUoQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9ISUdIX1NQRUVEX1ZJREVPX0NPTkZJR1VSQVRJT05TLAorICAgICAgICAgICAgICAgICAgICBoaWdoU3BlZWRDb25maWcpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gS2V5cyBhZGRlZCBpbiBIQUwzLjQKKyAgICBpZiAoZGV2aWNlVmVyc2lvbiA8IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM180KSB7CisgICAgICAgIC8vIENoZWNrIGlmIEhBTCBzdXBwb3J0cyBSQVdfT1BBUVVFIG91dHB1dAorICAgICAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnkgZW50cnkgPSBjaGFycy5maW5kKEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9TVFJFQU1fQ09ORklHVVJBVElPTlMpOworICAgICAgICBib29sIHN1cHBvcnRSYXdPcGFxdWUgPSBmYWxzZTsKKyAgICAgICAgYm9vbCBzdXBwb3J0QW55UmF3ID0gZmFsc2U7CisgICAgICAgIGNvbnN0IGludCBTVFJFQU1fQ09ORklHVVJBVElPTl9TSVpFID0gNDsKKyAgICAgICAgY29uc3QgaW50IFNUUkVBTV9GT1JNQVRfT0ZGU0VUID0gMDsKKyAgICAgICAgY29uc3QgaW50IFNUUkVBTV9XSURUSF9PRkZTRVQgPSAxOworICAgICAgICBjb25zdCBpbnQgU1RSRUFNX0hFSUdIVF9PRkZTRVQgPSAyOworICAgICAgICBjb25zdCBpbnQgU1RSRUFNX0lTX0lOUFVUX09GRlNFVCA9IDM7CisgICAgICAgIFZlY3RvcjxpbnQzMl90PiByYXdPcGFxdWVTaXplczsKKworICAgICAgICBmb3IgKHNpemVfdCBpPTA7IGkgPCBlbnRyeS5jb3VudDsgaSArPSBTVFJFQU1fQ09ORklHVVJBVElPTl9TSVpFKSB7CisgICAgICAgICAgICBpbnQzMl90IGZvcm1hdCA9IGVudHJ5LmRhdGEuaTMyW2kgKyBTVFJFQU1fRk9STUFUX09GRlNFVF07CisgICAgICAgICAgICBpbnQzMl90IHdpZHRoID0gZW50cnkuZGF0YS5pMzJbaSArIFNUUkVBTV9XSURUSF9PRkZTRVRdOworICAgICAgICAgICAgaW50MzJfdCBoZWlnaHQgPSBlbnRyeS5kYXRhLmkzMltpICsgU1RSRUFNX0hFSUdIVF9PRkZTRVRdOworICAgICAgICAgICAgaW50MzJfdCBpc0lucHV0ID0gZW50cnkuZGF0YS5pMzJbaSArIFNUUkVBTV9JU19JTlBVVF9PRkZTRVRdOworICAgICAgICAgICAgaWYgKGlzSW5wdXQgPT0gQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1NUUkVBTV9DT05GSUdVUkFUSU9OU19PVVRQVVQgJiYKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0ID09IEhBTF9QSVhFTF9GT1JNQVRfUkFXX09QQVFVRSkgeworICAgICAgICAgICAgICAgIHN1cHBvcnRSYXdPcGFxdWUgPSB0cnVlOworICAgICAgICAgICAgICAgIHJhd09wYXF1ZVNpemVzLnB1c2god2lkdGgpOworICAgICAgICAgICAgICAgIHJhd09wYXF1ZVNpemVzLnB1c2goaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAvLyAyIGJ5dGVzIHBlciBwaXhlbC4gVGhpcyByb3VnaCBlc3RpbWF0aW9uIGlzIG9ubHkgdXNlZCB3aGVuCisgICAgICAgICAgICAgICAgLy8gSEFMIGRvZXMgbm90IGZpbGwgaW4gdGhlIG9wYXF1ZSByYXcgc2l6ZQorICAgICAgICAgICAgICAgIHJhd09wYXF1ZVNpemVzLnB1c2god2lkdGggKiBoZWlnaHQgKjIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzSW5wdXQgPT0gQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1NUUkVBTV9DT05GSUdVUkFUSU9OU19PVVRQVVQgJiYKKyAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCA9PSBIQUxfUElYRUxfRk9STUFUX1JBVzE2IHx8CisgICAgICAgICAgICAgICAgICAgICBmb3JtYXQgPT0gSEFMX1BJWEVMX0ZPUk1BVF9SQVcxMCB8fAorICAgICAgICAgICAgICAgICAgICAgZm9ybWF0ID09IEhBTF9QSVhFTF9GT1JNQVRfUkFXMTIgfHwKKyAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCA9PSBIQUxfUElYRUxfRk9STUFUX1JBV19PUEFRVUUpKSB7CisgICAgICAgICAgICAgICAgc3VwcG9ydEFueVJhdyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3VwcG9ydFJhd09wYXF1ZSkgeworICAgICAgICAgICAgZW50cnkgPSBjaGFycy5maW5kKEFORFJPSURfU0VOU09SX09QQVFVRV9SQVdfU0laRSk7CisgICAgICAgICAgICBpZiAoZW50cnkuY291bnQgPT0gMCkgeworICAgICAgICAgICAgICAgIC8vIEZpbGwgaW4gZXN0aW1hdGVkIHZhbHVlIGlmIEhBTCBkb2VzIG5vdCBsaXN0IGl0CisgICAgICAgICAgICAgICAgY2hhcnMudXBkYXRlKEFORFJPSURfU0VOU09SX09QQVFVRV9SQVdfU0laRSwgcmF3T3BhcXVlU2l6ZXMpOworICAgICAgICAgICAgICAgIGRlcml2ZWRDaGFyS2V5cy5wdXNoKEFORFJPSURfU0VOU09SX09QQVFVRV9SQVdfU0laRSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayBpZiBIQUwgc3VwcG9ydHMgYW55IFJBVyBvdXRwdXQsIGlmIHNvLCBmaWxsIGluIHBvc3RSYXdTZW5zaXRpdml0eUJvb3N0IHJhbmdlCisgICAgICAgIGlmIChzdXBwb3J0QW55UmF3KSB7CisgICAgICAgICAgICBpbnQzMl90IGRlZmF1bHRSYW5nZVsyXSA9IHsxMDAsIDEwMH07CisgICAgICAgICAgICBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NUX1JBTkdFKTsKKyAgICAgICAgICAgIGlmIChlbnRyeS5jb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gRmlsbCBpbiBkZWZhdWx0IHZhbHVlICgxMDAsIDEwMCkKKyAgICAgICAgICAgICAgICBjaGFycy51cGRhdGUoCisgICAgICAgICAgICAgICAgICAgICAgICBBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1RfUkFOR0UsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0UmFuZ2UsIDIpOworICAgICAgICAgICAgICAgIGRlcml2ZWRDaGFyS2V5cy5wdXNoKEFORFJPSURfQ09OVFJPTF9QT1NUX1JBV19TRU5TSVRJVklUWV9CT09TVF9SQU5HRSk7CisgICAgICAgICAgICAgICAgLy8gQWN0dWFsIHJlcXVlc3QvcmVzdWx0cyB3aWxsIGJlIGRlcml2ZWQgYnkgY2FtZXJhIGRldmljZS4KKyAgICAgICAgICAgICAgICBkZXJpdmVkUmVxdWVzdEtleXMucHVzaChBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1QpOworICAgICAgICAgICAgICAgIGRlcml2ZWRSZXN1bHRLZXlzLnB1c2goQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEFsd2F5cyBhZGQgYSBkZWZhdWx0IGZvciB0aGUgcHJlLWNvcnJlY3Rpb24gYWN0aXZlIGFycmF5IGlmIHRoZSB2ZW5kb3IgY2hvb3NlcyB0byBvbWl0IHRoaXMKKyAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnkgZW50cnkgPSBjaGFycy5maW5kKEFORFJPSURfU0VOU09SX0lORk9fUFJFX0NPUlJFQ1RJT05fQUNUSVZFX0FSUkFZX1NJWkUpOworICAgIGlmIChlbnRyeS5jb3VudCA9PSAwKSB7CisgICAgICAgIFZlY3RvcjxpbnQzMl90PiBwcmVDb3JyZWN0aW9uQXJyYXk7CisgICAgICAgIGVudHJ5ID0gY2hhcnMuZmluZChBTkRST0lEX1NFTlNPUl9JTkZPX0FDVElWRV9BUlJBWV9TSVpFKTsKKyAgICAgICAgcHJlQ29ycmVjdGlvbkFycmF5LmFwcGVuZEFycmF5KGVudHJ5LmRhdGEuaTMyLCBlbnRyeS5jb3VudCk7CisgICAgICAgIGNoYXJzLnVwZGF0ZShBTkRST0lEX1NFTlNPUl9JTkZPX1BSRV9DT1JSRUNUSU9OX0FDVElWRV9BUlJBWV9TSVpFLCBwcmVDb3JyZWN0aW9uQXJyYXkpOworICAgICAgICBkZXJpdmVkQ2hhcktleXMucHVzaChBTkRST0lEX1NFTlNPUl9JTkZPX1BSRV9DT1JSRUNUSU9OX0FDVElWRV9BUlJBWV9TSVpFKTsKKyAgICB9CisKKyAgICAvLyBBZGQgdGhvc2UgbmV3bHkgYWRkZWQga2V5cyB0byBBVkFJTEFCTEVfQ0hBUkFDVEVSSVNUSUNTX0tFWVMKKyAgICAvLyBUaGlzIGhhcyB0byBiZSBkb25lIGF0IHRoaXMgZW5kIG9mIHRoaXMgZnVuY3Rpb24uCisgICAgaWYgKGRlcml2ZWRDaGFyS2V5cy5zaXplKCkgPiAwKSB7CisgICAgICAgIGFwcGVuZEF2YWlsYWJsZUtleXMoCisgICAgICAgICAgICAgICAgY2hhcnMsIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0hBUkFDVEVSSVNUSUNTX0tFWVMsIGRlcml2ZWRDaGFyS2V5cyk7CisgICAgfQorICAgIGlmIChkZXJpdmVkUmVxdWVzdEtleXMuc2l6ZSgpID4gMCkgeworICAgICAgICBhcHBlbmRBdmFpbGFibGVLZXlzKAorICAgICAgICAgICAgICAgIGNoYXJzLCBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX1JFUVVFU1RfS0VZUywgZGVyaXZlZFJlcXVlc3RLZXlzKTsKKyAgICB9CisgICAgaWYgKGRlcml2ZWRSZXN1bHRLZXlzLnNpemUoKSA+IDApIHsKKyAgICAgICAgYXBwZW5kQXZhaWxhYmxlS2V5cygKKyAgICAgICAgICAgICAgICBjaGFycywgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9SRVNVTFRfS0VZUywgZGVyaXZlZFJlc3VsdEtleXMpOworICAgIH0KKyAgICByZXR1cm47Cit9CisKK3ZvaWQgQ2FtZXJhTW9kdWxlOjphcHBlbmRBdmFpbGFibGVLZXlzKENhbWVyYU1ldGFkYXRhICZjaGFycywKKyAgICAgICAgaW50MzJfdCBrZXlUYWcsIGNvbnN0IFZlY3RvcjxpbnQzMl90PiYgYXBwZW5kS2V5cykgeworICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeSBlbnRyeSA9IGNoYXJzLmZpbmQoa2V5VGFnKTsKKyAgICBWZWN0b3I8aW50MzJfdD4gYXZhaWxhYmxlS2V5czsKKyAgICBhdmFpbGFibGVLZXlzLnNldENhcGFjaXR5KGVudHJ5LmNvdW50ICsgYXBwZW5kS2V5cy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7IGkrKykgeworICAgICAgICBhdmFpbGFibGVLZXlzLnB1c2goZW50cnkuZGF0YS5pMzJbaV0pOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFwcGVuZEtleXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgYXZhaWxhYmxlS2V5cy5wdXNoKGFwcGVuZEtleXNbaV0pOworICAgIH0KKyAgICBjaGFycy51cGRhdGUoa2V5VGFnLCBhdmFpbGFibGVLZXlzKTsKK30KKworQ2FtZXJhTW9kdWxlOjpDYW1lcmFNb2R1bGUoY2FtZXJhX21vZHVsZV90ICptb2R1bGUpIHsKKyAgICBpZiAobW9kdWxlID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgaGFyZHdhcmUgbW9kdWxlIG11c3Qgbm90IGJlIG51bGwiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICBhc3NlcnQoMCk7CisgICAgfQorICAgIG1Nb2R1bGUgPSBtb2R1bGU7Cit9CisKK0NhbWVyYU1vZHVsZTo6fkNhbWVyYU1vZHVsZSgpCit7CisgICAgd2hpbGUgKG1DYW1lcmFJbmZvTWFwLnNpemUoKSA+IDApIHsKKyAgICAgICAgY2FtZXJhX2luZm8gY2FtZXJhSW5mbyA9IG1DYW1lcmFJbmZvTWFwLmVkaXRWYWx1ZUF0KDApOworICAgICAgICBpZiAoY2FtZXJhSW5mby5zdGF0aWNfY2FtZXJhX2NoYXJhY3RlcmlzdGljcyAhPSBOVUxMKSB7CisgICAgICAgICAgICBmcmVlX2NhbWVyYV9tZXRhZGF0YSgKKyAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjYW1lcmFfbWV0YWRhdGFfdCo+KGNhbWVyYUluZm8uc3RhdGljX2NhbWVyYV9jaGFyYWN0ZXJpc3RpY3MpKTsKKyAgICAgICAgfQorICAgICAgICBtQ2FtZXJhSW5mb01hcC5yZW1vdmVJdGVtc0F0KDApOworICAgIH0KK30KKworaW50IENhbWVyYU1vZHVsZTo6aW5pdCgpIHsKKyAgICBBVFJBQ0VfQ0FMTCgpOworICAgIGludCByZXMgPSBPSzsKKyAgICBpZiAoZ2V0TW9kdWxlQXBpVmVyc2lvbigpID49IENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMl80ICYmCisgICAgICAgICAgICBtTW9kdWxlLT5pbml0ICE9IE5VTEwpIHsKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmFfbW9kdWxlLT5pbml0Iik7CisgICAgICAgIHJlcyA9IG1Nb2R1bGUtPmluaXQoKTsKKyAgICAgICAgQVRSQUNFX0VORCgpOworICAgIH0KKyAgICBtQ2FtZXJhSW5mb01hcC5zZXRDYXBhY2l0eShnZXROdW1iZXJPZkNhbWVyYXMoKSk7CisgICAgcmV0dXJuIHJlczsKK30KKworaW50IENhbWVyYU1vZHVsZTo6Z2V0Q2FtZXJhSW5mbyhpbnQgY2FtZXJhSWQsIHN0cnVjdCBjYW1lcmFfaW5mbyAqaW5mbykgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIGxvY2sobUNhbWVyYUluZm9Mb2NrKTsKKyAgICBpZiAoY2FtZXJhSWQgPCAwKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBjYW1lcmEgSUQgJWQiLCBfX0ZVTkNUSU9OX18sIGNhbWVyYUlkKTsKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisgICAgLy8gT25seSBvdmVycmlkZSBzdGF0aWNfY2FtZXJhX2NoYXJhY3RlcmlzdGljcyBmb3IgQVBJMiBkZXZpY2VzCisgICAgaW50IGFwaVZlcnNpb24gPSBtTW9kdWxlLT5jb21tb24ubW9kdWxlX2FwaV92ZXJzaW9uOworICAgIGlmIChhcGlWZXJzaW9uIDwgQ0FNRVJBX01PRFVMRV9BUElfVkVSU0lPTl8yXzApIHsKKyAgICAgICAgaW50IHJldDsKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmFfbW9kdWxlLT5nZXRfY2FtZXJhX2luZm8iKTsKKyAgICAgICAgcmV0ID0gbU1vZHVsZS0+Z2V0X2NhbWVyYV9pbmZvKGNhbWVyYUlkLCBpbmZvKTsKKyAgICAgICAgLy8gRmlsbCBpbiB0aGlzIHNvIENhbWVyYVNlcnZpY2Ugd29uJ3QgYmUgY29uZnVzZWQgYnkKKyAgICAgICAgLy8gcG9zc2libHkgMCBkZXZpY2VfdmVyc2lvbgorICAgICAgICBpbmZvLT5kZXZpY2VfdmVyc2lvbiA9IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wOworICAgICAgICBBVFJBQ0VfRU5EKCk7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgc3NpemVfdCBpbmRleCA9IG1DYW1lcmFJbmZvTWFwLmluZGV4T2ZLZXkoY2FtZXJhSWQpOworICAgIGlmIChpbmRleCA9PSBOQU1FX05PVF9GT1VORCkgeworICAgICAgICAvLyBHZXQgY2FtZXJhIGluZm8gZnJvbSByYXcgbW9kdWxlIGFuZCBjYWNoZSBpdAorICAgICAgICBjYW1lcmFfaW5mbyByYXdJbmZvLCBjYW1lcmFJbmZvOworICAgICAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYV9tb2R1bGUtPmdldF9jYW1lcmFfaW5mbyIpOworICAgICAgICBpbnQgcmV0ID0gbU1vZHVsZS0+Z2V0X2NhbWVyYV9pbmZvKGNhbWVyYUlkLCAmcmF3SW5mbyk7CisgICAgICAgIEFUUkFDRV9FTkQoKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9CisgICAgICAgIGludCBkZXZpY2VWZXJzaW9uID0gcmF3SW5mby5kZXZpY2VfdmVyc2lvbjsKKyAgICAgICAgaWYgKGRldmljZVZlcnNpb24gPCBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMCkgeworICAgICAgICAgICAgLy8gc3RhdGljX2NhbWVyYV9jaGFyYWN0ZXJpc3RpY3MgaXMgaW52YWxpZAorICAgICAgICAgICAgKmluZm8gPSByYXdJbmZvOworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorICAgICAgICBDYW1lcmFNZXRhZGF0YSBtOworICAgICAgICBtID0gcmF3SW5mby5zdGF0aWNfY2FtZXJhX2NoYXJhY3RlcmlzdGljczsKKyAgICAgICAgZGVyaXZlQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzS2V5cyhyYXdJbmZvLmRldmljZV92ZXJzaW9uLCBtKTsKKyAgICAgICAgY2FtZXJhSW5mbyA9IHJhd0luZm87CisgICAgICAgIGNhbWVyYUluZm8uc3RhdGljX2NhbWVyYV9jaGFyYWN0ZXJpc3RpY3MgPSBtLnJlbGVhc2UoKTsKKyAgICAgICAgaW5kZXggPSBtQ2FtZXJhSW5mb01hcC5hZGQoY2FtZXJhSWQsIGNhbWVyYUluZm8pOworICAgIH0KKworICAgIGFzc2VydChpbmRleCAhPSBOQU1FX05PVF9GT1VORCk7CisgICAgLy8gcmV0dXJuIHRoZSBjYWNoZWQgY2FtZXJhIGluZm8KKyAgICAqaW5mbyA9IG1DYW1lcmFJbmZvTWFwW2luZGV4XTsKKyAgICByZXR1cm4gT0s7Cit9CisKK2ludCBDYW1lcmFNb2R1bGU6OmdldERldmljZVZlcnNpb24oaW50IGNhbWVyYUlkKSB7CisgICAgc3NpemVfdCBpbmRleCA9IG1EZXZpY2VWZXJzaW9uTWFwLmluZGV4T2ZLZXkoY2FtZXJhSWQpOworICAgIGlmIChpbmRleCA9PSBOQU1FX05PVF9GT1VORCkgeworICAgICAgICBpbnQgZGV2aWNlVmVyc2lvbjsKKyAgICAgICAgaWYgKGdldE1vZHVsZUFwaVZlcnNpb24oKSA+PSBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzJfMCkgeworICAgICAgICAgICAgc3RydWN0IGNhbWVyYV9pbmZvIGluZm87CisgICAgICAgICAgICBnZXRDYW1lcmFJbmZvKGNhbWVyYUlkLCAmaW5mbyk7CisgICAgICAgICAgICBkZXZpY2VWZXJzaW9uID0gaW5mby5kZXZpY2VfdmVyc2lvbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRldmljZVZlcnNpb24gPSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMDsKKyAgICAgICAgfQorICAgICAgICBpbmRleCA9IG1EZXZpY2VWZXJzaW9uTWFwLmFkZChjYW1lcmFJZCwgZGV2aWNlVmVyc2lvbik7CisgICAgfQorICAgIGFzc2VydChpbmRleCAhPSBOQU1FX05PVF9GT1VORCk7CisgICAgcmV0dXJuIG1EZXZpY2VWZXJzaW9uTWFwW2luZGV4XTsKK30KKworaW50IENhbWVyYU1vZHVsZTo6b3Blbihjb25zdCBjaGFyKiBpZCwgc3RydWN0IGh3X2RldmljZV90KiogZGV2aWNlKSB7CisgICAgaW50IHJlczsKKyAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYV9tb2R1bGUtPm9wZW4iKTsKKyAgICByZXMgPSBmaWx0ZXJPcGVuRXJyb3JDb2RlKG1Nb2R1bGUtPmNvbW1vbi5tZXRob2RzLT5vcGVuKCZtTW9kdWxlLT5jb21tb24sIGlkLCBkZXZpY2UpKTsKKyAgICBBVFJBQ0VfRU5EKCk7CisgICAgcmV0dXJuIHJlczsKK30KKworYm9vbCBDYW1lcmFNb2R1bGU6OmlzT3BlbkxlZ2FjeURlZmluZWQoKSBjb25zdCB7CisgICAgaWYgKGdldE1vZHVsZUFwaVZlcnNpb24oKSA8IENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMl8zKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIG1Nb2R1bGUtPm9wZW5fbGVnYWN5ICE9IE5VTEw7Cit9CisKK2ludCBDYW1lcmFNb2R1bGU6Om9wZW5MZWdhY3koCisgICAgICAgIGNvbnN0IGNoYXIqIGlkLCB1aW50MzJfdCBoYWxWZXJzaW9uLCBzdHJ1Y3QgaHdfZGV2aWNlX3QqKiBkZXZpY2UpIHsKKyAgICBpbnQgcmVzOworICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhX21vZHVsZS0+b3Blbl9sZWdhY3kiKTsKKyAgICByZXMgPSBtTW9kdWxlLT5vcGVuX2xlZ2FjeSgmbU1vZHVsZS0+Y29tbW9uLCBpZCwgaGFsVmVyc2lvbiwgZGV2aWNlKTsKKyAgICBBVFJBQ0VfRU5EKCk7CisgICAgcmV0dXJuIHJlczsKK30KKworaW50IENhbWVyYU1vZHVsZTo6Z2V0TnVtYmVyT2ZDYW1lcmFzKCkgeworICAgIGludCBudW1DYW1lcmFzOworICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhX21vZHVsZS0+Z2V0X251bWJlcl9vZl9jYW1lcmFzIik7CisgICAgbnVtQ2FtZXJhcyA9IG1Nb2R1bGUtPmdldF9udW1iZXJfb2ZfY2FtZXJhcygpOworICAgIEFUUkFDRV9FTkQoKTsKKyAgICByZXR1cm4gbnVtQ2FtZXJhczsKK30KKworaW50IENhbWVyYU1vZHVsZTo6c2V0Q2FsbGJhY2tzKGNvbnN0IGNhbWVyYV9tb2R1bGVfY2FsbGJhY2tzX3QgKmNhbGxiYWNrcykgeworICAgIGludCByZXMgPSBPSzsKKyAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYV9tb2R1bGUtPnNldF9jYWxsYmFja3MiKTsKKyAgICBpZiAoZ2V0TW9kdWxlQXBpVmVyc2lvbigpID49IENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMl8xKSB7CisgICAgICAgIHJlcyA9IG1Nb2R1bGUtPnNldF9jYWxsYmFja3MoY2FsbGJhY2tzKTsKKyAgICB9CisgICAgQVRSQUNFX0VORCgpOworICAgIHJldHVybiByZXM7Cit9CisKK2Jvb2wgQ2FtZXJhTW9kdWxlOjppc1ZlbmRvclRhZ0RlZmluZWQoKSBjb25zdCB7CisgICAgcmV0dXJuIG1Nb2R1bGUtPmdldF92ZW5kb3JfdGFnX29wcyAhPSBOVUxMOworfQorCit2b2lkIENhbWVyYU1vZHVsZTo6Z2V0VmVuZG9yVGFnT3BzKHZlbmRvcl90YWdfb3BzX3QqIG9wcykgeworICAgIGlmIChtTW9kdWxlLT5nZXRfdmVuZG9yX3RhZ19vcHMpIHsKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmFfbW9kdWxlLT5nZXRfdmVuZG9yX3RhZ19vcHMiKTsKKyAgICAgICAgbU1vZHVsZS0+Z2V0X3ZlbmRvcl90YWdfb3BzKG9wcyk7CisgICAgICAgIEFUUkFDRV9FTkQoKTsKKyAgICB9Cit9CisKK2Jvb2wgQ2FtZXJhTW9kdWxlOjppc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgpIGNvbnN0IHsKKyAgICBpZiAoZ2V0TW9kdWxlQXBpVmVyc2lvbigpID49IENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMl80KSB7CisgICAgICAgIGlmIChtTW9kdWxlLT5zZXRfdG9yY2hfbW9kZSA9PSBOVUxMKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IE1vZHVsZSAyLjQgZGV2aWNlIG11c3Qgc3VwcG9ydCBzZXQgdG9yY2ggQVBJISIsCisgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworaW50IENhbWVyYU1vZHVsZTo6c2V0VG9yY2hNb2RlKGNvbnN0IGNoYXIqIGNhbWVyYV9pZCwgYm9vbCBlbmFibGUpIHsKKyAgICBpbnQgcmVzID0gSU5WQUxJRF9PUEVSQVRJT047CisgICAgaWYgKG1Nb2R1bGUtPnNldF90b3JjaF9tb2RlICE9IE5VTEwpIHsKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmFfbW9kdWxlLT5zZXRfdG9yY2hfbW9kZSIpOworICAgICAgICByZXMgPSBtTW9kdWxlLT5zZXRfdG9yY2hfbW9kZShjYW1lcmFfaWQsIGVuYWJsZSk7CisgICAgICAgIEFUUkFDRV9FTkQoKTsKKyAgICB9CisgICAgcmV0dXJuIHJlczsKK30KKworc3RhdHVzX3QgQ2FtZXJhTW9kdWxlOjpmaWx0ZXJPcGVuRXJyb3JDb2RlKHN0YXR1c190IGVycikgeworICAgIHN3aXRjaChlcnIpIHsKKyAgICAgICAgY2FzZSBOT19FUlJPUjoKKyAgICAgICAgY2FzZSAtRUJVU1k6CisgICAgICAgIGNhc2UgLUVJTlZBTDoKKyAgICAgICAgY2FzZSAtRVVTRVJTOgorICAgICAgICAgICAgcmV0dXJuIGVycjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gLUVOT0RFVjsKK30KKwordWludDE2X3QgQ2FtZXJhTW9kdWxlOjpnZXRNb2R1bGVBcGlWZXJzaW9uKCkgY29uc3QgeworICAgIHJldHVybiBtTW9kdWxlLT5jb21tb24ubW9kdWxlX2FwaV92ZXJzaW9uOworfQorCitjb25zdCBjaGFyKiBDYW1lcmFNb2R1bGU6OmdldE1vZHVsZU5hbWUoKSBjb25zdCB7CisgICAgcmV0dXJuIG1Nb2R1bGUtPmNvbW1vbi5uYW1lOworfQorCit1aW50MTZfdCBDYW1lcmFNb2R1bGU6OmdldEhhbEFwaVZlcnNpb24oKSBjb25zdCB7CisgICAgcmV0dXJuIG1Nb2R1bGUtPmNvbW1vbi5oYWxfYXBpX3ZlcnNpb247Cit9CisKK2NvbnN0IGNoYXIqIENhbWVyYU1vZHVsZTo6Z2V0TW9kdWxlQXV0aG9yKCkgY29uc3QgeworICAgIHJldHVybiBtTW9kdWxlLT5jb21tb24uYXV0aG9yOworfQorCit2b2lkKiBDYW1lcmFNb2R1bGU6OmdldERzbygpIHsKKyAgICByZXR1cm4gbU1vZHVsZS0+Y29tbW9uLmRzbzsKK30KKworfSAvLyBuYW1lc3BhY2UgaGVscGVyCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBjb21tb24KK30gLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvSGFuZGxlSW1wb3J0ZXIuY3BwIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9IYW5kbGVJbXBvcnRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ4Yjk0MwotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvSGFuZGxlSW1wb3J0ZXIuY3BwCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJIYW5kbGVJbXBvcnRlciIKKyNpbmNsdWRlICJIYW5kbGVJbXBvcnRlci5oIgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGNvbW1vbiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaGVscGVyIHsKKwordXNpbmcgTWFwcGVyRXJyb3IgPSBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I7CisKK0hhbmRsZUltcG9ydGVyOjpIYW5kbGVJbXBvcnRlcigpIDogbUluaXRpYWxpemVkKGZhbHNlKSB7fQorCit2b2lkIEhhbmRsZUltcG9ydGVyOjppbml0aWFsaXplTG9ja2VkKCkgeworICAgIGlmIChtSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1NYXBwZXIgPSBJTWFwcGVyOjpnZXRTZXJ2aWNlKCk7CisgICAgaWYgKG1NYXBwZXIgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbm5ub3QgYWNjY2VzcyBncmFwaGljcyBtYXBwZXIgSEFMISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtSW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIHJldHVybjsKK30KKwordm9pZCBIYW5kbGVJbXBvcnRlcjo6Y2xlYW51cCgpIHsKKyAgICBtTWFwcGVyLmNsZWFyKCk7CisgICAgbUluaXRpYWxpemVkID0gZmFsc2U7Cit9CisKKy8vIEluIElDb21wb3NlciwgYW55IGJ1ZmZlcl9oYW5kbGVfdCBpcyBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCB3ZSBuZWVkIHRvCisvLyBtYWtlIGEgY2xvbmUgZm9yIGh3Y29tcG9zZXIyLiAgV2UgYWxzbyBuZWVkIHRvIHRyYW5zbGF0ZSBlbXB0eSBoYW5kbGUKKy8vIHRvIG51bGxwdHIuICBUaGlzIGZ1bmN0aW9uIGRvZXMgdGhhdCwgaW4tcGxhY2UuCitib29sIEhhbmRsZUltcG9ydGVyOjppbXBvcnRCdWZmZXIoYnVmZmVyX2hhbmRsZV90JiBoYW5kbGUpIHsKKyAgICBpZiAoIWhhbmRsZS0+bnVtRmRzICYmICFoYW5kbGUtPm51bUludHMpIHsKKyAgICAgICAgaGFuZGxlID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgTXV0ZXg6OkF1dG9sb2NrIGxvY2sobUxvY2spOworICAgIGlmICghbUluaXRpYWxpemVkKSB7CisgICAgICAgIGluaXRpYWxpemVMb2NrZWQoKTsKKyAgICB9CisKKyAgICBpZiAobU1hcHBlciA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogbU1hcHBlciBpcyBudWxsISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBNYXBwZXJFcnJvciBlcnJvcjsKKyAgICBidWZmZXJfaGFuZGxlX3QgaW1wb3J0ZWRIYW5kbGU7CisgICAgYXV0byByZXQgPSBtTWFwcGVyLT5pbXBvcnRCdWZmZXIoCisgICAgICAgIGhpZGxfaGFuZGxlKGhhbmRsZSksCisgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wQnVmZmVySGFuZGxlKSB7CisgICAgICAgICAgICBlcnJvciA9IHRtcEVycm9yOworICAgICAgICAgICAgaW1wb3J0ZWRIYW5kbGUgPSBzdGF0aWNfY2FzdDxidWZmZXJfaGFuZGxlX3Q+KHRtcEJ1ZmZlckhhbmRsZSk7CisgICAgICAgIH0pOworCisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogbWFwcGVyIGltcG9ydEJ1ZmZlciBmYWlsZWQ6ICVzIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHJldC5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGVycm9yICE9IE1hcHBlckVycm9yOjpOT05FKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBoYW5kbGUgPSBpbXBvcnRlZEhhbmRsZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEhhbmRsZUltcG9ydGVyOjpmcmVlQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUpIHsKKyAgICBpZiAoIWhhbmRsZSkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTXV0ZXg6OkF1dG9sb2NrIGxvY2sobUxvY2spOworICAgIGlmIChtTWFwcGVyID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBtTWFwcGVyIGlzIG51bGwhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gbU1hcHBlci0+ZnJlZUJ1ZmZlcihjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGhhbmRsZSkpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IG1hcHBlciBmcmVlQnVmZmVyIGZhaWxlZDogJXMiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgcmV0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgfQorfQorCitib29sIEhhbmRsZUltcG9ydGVyOjppbXBvcnRGZW5jZShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSwgaW50JiBmZCkgY29uc3QgeworICAgIGlmIChoYW5kbGUgPT0gbnVsbHB0ciB8fCBoYW5kbGUtPm51bUZkcyA9PSAwKSB7CisgICAgICAgIGZkID0gLTE7CisgICAgfSBlbHNlIGlmIChoYW5kbGUtPm51bUZkcyA9PSAxKSB7CisgICAgICAgIGZkID0gZHVwKGhhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gZHVwIGZlbmNlIGZkICVkIiwgaGFuZGxlLT5kYXRhWzBdKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJpbnZhbGlkIGZlbmNlIGhhbmRsZSB3aXRoICVkIGZpbGUgZGVzY3JpcHRvcnMiLAorICAgICAgICAgICAgICAgIGhhbmRsZS0+bnVtRmRzKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEhhbmRsZUltcG9ydGVyOjpjbG9zZUZlbmNlKGludCBmZCkgY29uc3QgeworICAgIGlmIChmZCA+PSAwKSB7CisgICAgICAgIGNsb3NlKGZkKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIGhlbHBlcgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgY29tbW9uCit9IC8vIG5hbWVzcGFjZSBjYW1lcmEKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L1ZlbmRvclRhZ0Rlc2NyaXB0b3IuY3BwIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9WZW5kb3JUYWdEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzE4MjcwCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9WZW5kb3JUYWdEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDM2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQ2FtQ29tbTEuMC1WVERlc2MiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8c3lzdGVtL2NhbWVyYV9tZXRhZGF0YS5oPgorI2luY2x1ZGUgPGNhbWVyYV9tZXRhZGF0YV9oaWRkZW4uaD4KKyNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KKyNpbmNsdWRlIDx1dGlscy9NdXRleC5oPgorI2luY2x1ZGUgPHV0aWxzL1NvcnRlZFZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgorCisjaW5jbHVkZSAiVmVuZG9yVGFnRGVzY3JpcHRvci5oIgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEyIHsKK25hbWVzcGFjZSBwYXJhbXMgeworCitWZW5kb3JUYWdEZXNjcmlwdG9yOjp+VmVuZG9yVGFnRGVzY3JpcHRvcigpIHsKKyAgICBzaXplX3QgbGVuID0gbVJldmVyc2VNYXBwaW5nLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbjsgKytpKSAgeworICAgICAgICBkZWxldGUgbVJldmVyc2VNYXBwaW5nW2ldOworICAgIH0KK30KKworVmVuZG9yVGFnRGVzY3JpcHRvcjo6VmVuZG9yVGFnRGVzY3JpcHRvcigpIDoKKyAgICAgICAgbVRhZ0NvdW50KDApLAorICAgICAgICBtVmVuZG9yT3BzKCkgeworfQorCitWZW5kb3JUYWdEZXNjcmlwdG9yOjpWZW5kb3JUYWdEZXNjcmlwdG9yKGNvbnN0IFZlbmRvclRhZ0Rlc2NyaXB0b3ImIHNyYykgeworICAgIGNvcHlGcm9tKHNyYyk7Cit9CisKK1ZlbmRvclRhZ0Rlc2NyaXB0b3ImIFZlbmRvclRhZ0Rlc2NyaXB0b3I6Om9wZXJhdG9yPShjb25zdCBWZW5kb3JUYWdEZXNjcmlwdG9yJiByaHMpIHsKKyAgICBjb3B5RnJvbShyaHMpOworICAgIHJldHVybiAqdGhpczsKK30KKwordm9pZCBWZW5kb3JUYWdEZXNjcmlwdG9yOjpjb3B5RnJvbShjb25zdCBWZW5kb3JUYWdEZXNjcmlwdG9yJiBzcmMpIHsKKyAgICBpZiAodGhpcyA9PSAmc3JjKSByZXR1cm47CisKKyAgICBzaXplX3QgbGVuID0gbVJldmVyc2VNYXBwaW5nLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgIGRlbGV0ZSBtUmV2ZXJzZU1hcHBpbmdbaV07CisgICAgfQorICAgIG1SZXZlcnNlTWFwcGluZy5jbGVhcigpOworCisgICAgbGVuID0gc3JjLm1SZXZlcnNlTWFwcGluZy5zaXplKCk7CisgICAgLy8gSGF2ZSB0byBjb3B5IEtleWVkVmVjdG9ycyBpbnNpZGUgbVJldmVyc2VNYXBwaW5nCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAgICAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCB1aW50MzJfdD4qIG5hbWVNYXBwZXIgPSBuZXcgS2V5ZWRWZWN0b3I8U3RyaW5nOCwgdWludDMyX3Q+KCk7CisgICAgICAgICpuYW1lTWFwcGVyID0gKihzcmMubVJldmVyc2VNYXBwaW5nLnZhbHVlQXQoaSkpOworICAgICAgICBtUmV2ZXJzZU1hcHBpbmcuYWRkKHNyYy5tUmV2ZXJzZU1hcHBpbmcua2V5QXQoaSksIG5hbWVNYXBwZXIpOworICAgIH0KKyAgICAvLyBFdmVyeXRoaW5nIGVsc2UgaXMgc2ltcGxlCisgICAgbVRhZ1RvTmFtZU1hcCA9IHNyYy5tVGFnVG9OYW1lTWFwOworICAgIG1UYWdUb1NlY3Rpb25NYXAgPSBzcmMubVRhZ1RvU2VjdGlvbk1hcDsKKyAgICBtVGFnVG9UeXBlTWFwID0gc3JjLm1UYWdUb1R5cGVNYXA7CisgICAgbVNlY3Rpb25zID0gc3JjLm1TZWN0aW9uczsKKyAgICBtVGFnQ291bnQgPSBzcmMubVRhZ0NvdW50OworICAgIG1WZW5kb3JPcHMgPSBzcmMubVZlbmRvck9wczsKK30KKworaW50IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmdldFRhZ0NvdW50KCkgY29uc3QgeworICAgIHNpemVfdCBzaXplID0gbVRhZ1RvTmFtZU1hcC5zaXplKCk7CisgICAgaWYgKHNpemUgPT0gMCkgeworICAgICAgICByZXR1cm4gVkVORE9SX1RBR19DT1VOVF9FUlI7CisgICAgfQorICAgIHJldHVybiBzaXplOworfQorCit2b2lkIFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmdldFRhZ0FycmF5KHVpbnQzMl90KiB0YWdBcnJheSkgY29uc3QgeworICAgIHNpemVfdCBzaXplID0gbVRhZ1RvTmFtZU1hcC5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgdGFnQXJyYXlbaV0gPSBtVGFnVG9OYW1lTWFwLmtleUF0KGkpOworICAgIH0KK30KKworY29uc3QgY2hhciogVmVuZG9yVGFnRGVzY3JpcHRvcjo6Z2V0U2VjdGlvbk5hbWUodWludDMyX3QgdGFnKSBjb25zdCB7CisgICAgc3NpemVfdCBpbmRleCA9IG1UYWdUb1NlY3Rpb25NYXAuaW5kZXhPZktleSh0YWcpOworICAgIGlmIChpbmRleCA8IDApIHsKKyAgICAgICAgcmV0dXJuIFZFTkRPUl9TRUNUSU9OX05BTUVfRVJSOworICAgIH0KKyAgICByZXR1cm4gbVNlY3Rpb25zW21UYWdUb1NlY3Rpb25NYXAudmFsdWVBdChpbmRleCldLnN0cmluZygpOworfQorCitzc2l6ZV90IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmdldFNlY3Rpb25JbmRleCh1aW50MzJfdCB0YWcpIGNvbnN0IHsKKyAgICByZXR1cm4gbVRhZ1RvU2VjdGlvbk1hcC52YWx1ZUZvcih0YWcpOworfQorCitjb25zdCBjaGFyKiBWZW5kb3JUYWdEZXNjcmlwdG9yOjpnZXRUYWdOYW1lKHVpbnQzMl90IHRhZykgY29uc3QgeworICAgIHNzaXplX3QgaW5kZXggPSBtVGFnVG9OYW1lTWFwLmluZGV4T2ZLZXkodGFnKTsKKyAgICBpZiAoaW5kZXggPCAwKSB7CisgICAgICAgIHJldHVybiBWRU5ET1JfVEFHX05BTUVfRVJSOworICAgIH0KKyAgICByZXR1cm4gbVRhZ1RvTmFtZU1hcC52YWx1ZUF0KGluZGV4KS5zdHJpbmcoKTsKK30KKworaW50IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmdldFRhZ1R5cGUodWludDMyX3QgdGFnKSBjb25zdCB7CisgICAgc3NpemVfdCBpbmRleCA9IG1UYWdUb05hbWVNYXAuaW5kZXhPZktleSh0YWcpOworICAgIGlmIChpbmRleCA8IDApIHsKKyAgICAgICAgcmV0dXJuIFZFTkRPUl9UQUdfVFlQRV9FUlI7CisgICAgfQorICAgIHJldHVybiBtVGFnVG9UeXBlTWFwLnZhbHVlRm9yKHRhZyk7Cit9CisKK2NvbnN0IFNvcnRlZFZlY3RvcjxTdHJpbmc4PiogVmVuZG9yVGFnRGVzY3JpcHRvcjo6Z2V0QWxsU2VjdGlvbk5hbWVzKCkgY29uc3QgeworICAgIHJldHVybiAmbVNlY3Rpb25zOworfQorCitzdGF0dXNfdCBWZW5kb3JUYWdEZXNjcmlwdG9yOjpsb29rdXBUYWcoY29uc3QgU3RyaW5nOCYgbmFtZSwgY29uc3QgU3RyaW5nOCYgc2VjdGlvbiwgLypvdXQqL3VpbnQzMl90KiB0YWcpIGNvbnN0IHsKKyAgICBzc2l6ZV90IGluZGV4ID0gbVJldmVyc2VNYXBwaW5nLmluZGV4T2ZLZXkoc2VjdGlvbik7CisgICAgaWYgKGluZGV4IDwgMCkgeworICAgICAgICBBTE9HRSgiJXM6IFNlY3Rpb24gJyVzJyBkb2VzIG5vdCBleGlzdC4iLCBfX0ZVTkNUSU9OX18sIHNlY3Rpb24uc3RyaW5nKCkpOworICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgIH0KKworICAgIHNzaXplX3QgbmFtZUluZGV4ID0gbVJldmVyc2VNYXBwaW5nW2luZGV4XS0+aW5kZXhPZktleShuYW1lKTsKKyAgICBpZiAobmFtZUluZGV4IDwgMCkgeworICAgICAgICBBTE9HRSgiJXM6IFRhZyBuYW1lICclcycgZG9lcyBub3QgZXhpc3QuIiwgX19GVU5DVElPTl9fLCBuYW1lLnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICB9CisKKyAgICBpZiAodGFnICE9IE5VTEwpIHsKKyAgICAgICAgKnRhZyA9IG1SZXZlcnNlTWFwcGluZ1tpbmRleF0tPnZhbHVlQXQobmFtZUluZGV4KTsKKyAgICB9CisgICAgcmV0dXJuIE9LOworfQorCit2b2lkIFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmR1bXAoaW50IGZkLCBpbnQgdmVyYm9zaXR5LCBpbnQgaW5kZW50YXRpb24pIGNvbnN0IHsKKworICAgIHNpemVfdCBzaXplID0gbVRhZ1RvTmFtZU1hcC5zaXplKCk7CisgICAgaWYgKHNpemUgPT0gMCkgeworICAgICAgICBkcHJpbnRmKGZkLCAiJSpzRHVtcGluZyBjb25maWd1cmVkIHZlbmRvciB0YWcgZGVzY3JpcHRvcnM6IE5vbmUgc2V0XG4iLAorICAgICAgICAgICAgICAgIGluZGVudGF0aW9uLCAiIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkcHJpbnRmKGZkLCAiJSpzRHVtcGluZyBjb25maWd1cmVkIHZlbmRvciB0YWcgZGVzY3JpcHRvcnM6ICV6dSBlbnRyaWVzXG4iLAorICAgICAgICAgICAgaW5kZW50YXRpb24sICIiLCBzaXplKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICB1aW50MzJfdCB0YWcgPSAgbVRhZ1RvTmFtZU1hcC5rZXlBdChpKTsKKworICAgICAgICBpZiAodmVyYm9zaXR5IDwgMSkgeworICAgICAgICAgICAgZHByaW50ZihmZCwgIiUqczB4JXhcbiIsIGluZGVudGF0aW9uICsgMiwgIiIsIHRhZyk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmc4IG5hbWUgPSBtVGFnVG9OYW1lTWFwLnZhbHVlQXQoaSk7CisgICAgICAgIHVpbnQzMl90IHNlY3Rpb25JZCA9IG1UYWdUb1NlY3Rpb25NYXAudmFsdWVGb3IodGFnKTsKKyAgICAgICAgU3RyaW5nOCBzZWN0aW9uTmFtZSA9IG1TZWN0aW9uc1tzZWN0aW9uSWRdOworICAgICAgICBpbnQgdHlwZSA9IG1UYWdUb1R5cGVNYXAudmFsdWVGb3IodGFnKTsKKyAgICAgICAgY29uc3QgY2hhciogdHlwZU5hbWUgPSAodHlwZSA+PSAwICYmIHR5cGUgPCBOVU1fVFlQRVMpID8KKyAgICAgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdHlwZV9uYW1lc1t0eXBlXSA6ICJVTktOT1dOIjsKKyAgICAgICAgZHByaW50ZihmZCwgIiUqczB4JXggKCVzKSB3aXRoIHR5cGUgJWQgKCVzKSBkZWZpbmVkIGluIHNlY3Rpb24gJXNcbiIsIGluZGVudGF0aW9uICsgMiwKKyAgICAgICAgICAgICIiLCB0YWcsIG5hbWUuc3RyaW5nKCksIHR5cGUsIHR5cGVOYW1lLCBzZWN0aW9uTmFtZS5zdHJpbmcoKSk7CisgICAgfQorCit9CisKK30gLy8gbmFtZXNwYWNlIHBhcmFtcworfSAvLyBuYW1lc3BhY2UgY2FtZXJhMgorCituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBjb21tb24geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGhlbHBlciB7CisKK2V4dGVybiAiQyIgeworCitzdGF0aWMgaW50IHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfdGFnX2NvdW50KGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIHYpOworc3RhdGljIHZvaWQgdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF9hbGxfdGFncyhjb25zdCB2ZW5kb3JfdGFnX29wc190KiB2LCB1aW50MzJfdCogdGFnQXJyYXkpOworc3RhdGljIGNvbnN0IGNoYXIqIHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfc2VjdGlvbl9uYW1lKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIHYsIHVpbnQzMl90IHRhZyk7CitzdGF0aWMgY29uc3QgY2hhciogdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfbmFtZShjb25zdCB2ZW5kb3JfdGFnX29wc190KiB2LCB1aW50MzJfdCB0YWcpOworc3RhdGljIGludCB2ZW5kb3JfdGFnX2Rlc2NyaXB0b3JfZ2V0X3RhZ190eXBlKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIHYsIHVpbnQzMl90IHRhZyk7CisKK30gLyogZXh0ZXJuICJDIiAqLworCitzdGF0aWMgTXV0ZXggc0xvY2s7CitzdGF0aWMgc3A8VmVuZG9yVGFnRGVzY3JpcHRvcj4gc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3I7CisKK3N0YXR1c190IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmNyZWF0ZURlc2NyaXB0b3JGcm9tT3BzKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIHZPcHMsCisgICAgICAgICAgICAvKm91dCovCisgICAgICAgICAgICBzcDxWZW5kb3JUYWdEZXNjcmlwdG9yPiYgZGVzY3JpcHRvcikgeworICAgIGlmICh2T3BzID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoIiVzOiB2ZW5kb3JfdGFnX29wcyBhcmd1bWVudCB3YXMgTlVMTC4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgIH0KKworICAgIGludCB0YWdDb3VudCA9IHZPcHMtPmdldF90YWdfY291bnQodk9wcyk7CisgICAgaWYgKHRhZ0NvdW50IDwgMCB8fCB0YWdDb3VudCA+IElOVDMyX01BWCkgeworICAgICAgICBBTE9HRSgiJXM6IHRhZyBjb3VudCAlZCBmcm9tIHZlbmRvciBvcHMgaXMgaW52YWxpZC4iLCBfX0ZVTkNUSU9OX18sIHRhZ0NvdW50KTsKKyAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICB9CisKKyAgICBWZWN0b3I8dWludDMyX3Q+IHRhZ0FycmF5OworICAgIExPR19BTFdBWVNfRkFUQUxfSUYodGFnQXJyYXkucmVzaXplKHRhZ0NvdW50KSAhPSB0YWdDb3VudCwKKyAgICAgICAgICAgICIlczogdG9vIG1hbnkgKCV1KSB2ZW5kb3IgdGFncyBkZWZpbmVkLiIsIF9fRlVOQ1RJT05fXywgdGFnQ291bnQpOworCisgICAgdk9wcy0+Z2V0X2FsbF90YWdzKHZPcHMsIC8qb3V0Ki90YWdBcnJheS5lZGl0QXJyYXkoKSk7CisKKyAgICBzcDxWZW5kb3JUYWdEZXNjcmlwdG9yPiBkZXNjID0gbmV3IFZlbmRvclRhZ0Rlc2NyaXB0b3IoKTsKKyAgICBkZXNjLT5tVGFnQ291bnQgPSB0YWdDb3VudDsKKworICAgIFNvcnRlZFZlY3RvcjxTdHJpbmc4PiBzZWN0aW9uczsKKyAgICBLZXllZFZlY3Rvcjx1aW50MzJfdCwgU3RyaW5nOD4gdGFnVG9TZWN0aW9uTWFwOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KHRhZ0NvdW50KTsgKytpKSB7CisgICAgICAgIHVpbnQzMl90IHRhZyA9IHRhZ0FycmF5W2ldOworICAgICAgICBpZiAodGFnIDwgQ0FNRVJBX01FVEFEQVRBX1ZFTkRPUl9UQUdfQk9VTkRBUlkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogdmVuZG9yIHRhZyAlZCBub3QgaW4gdmVuZG9yIHRhZyBzZWN0aW9uLiIsIF9fRlVOQ1RJT05fXywgdGFnKTsKKyAgICAgICAgICAgIHJldHVybiBCQURfVkFMVUU7CisgICAgICAgIH0KKyAgICAgICAgY29uc3QgY2hhciAqdGFnTmFtZSA9IHZPcHMtPmdldF90YWdfbmFtZSh2T3BzLCB0YWcpOworICAgICAgICBpZiAodGFnTmFtZSA9PSBOVUxMKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IG5vIHRhZyBuYW1lIGRlZmluZWQgZm9yIHZlbmRvciB0YWcgJWQuIiwgX19GVU5DVElPTl9fLCB0YWcpOworICAgICAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICAgICAgfQorICAgICAgICBkZXNjLT5tVGFnVG9OYW1lTWFwLmFkZCh0YWcsIFN0cmluZzgodGFnTmFtZSkpOworICAgICAgICBjb25zdCBjaGFyICpzZWN0aW9uTmFtZSA9IHZPcHMtPmdldF9zZWN0aW9uX25hbWUodk9wcywgdGFnKTsKKyAgICAgICAgaWYgKHNlY3Rpb25OYW1lID09IE5VTEwpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogbm8gc2VjdGlvbiBuYW1lIGRlZmluZWQgZm9yIHZlbmRvciB0YWcgJWQuIiwgX19GVU5DVElPTl9fLCB0YWcpOworICAgICAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZzggc2VjdGlvblN0cmluZyhzZWN0aW9uTmFtZSk7CisKKyAgICAgICAgc2VjdGlvbnMuYWRkKHNlY3Rpb25TdHJpbmcpOworICAgICAgICB0YWdUb1NlY3Rpb25NYXAuYWRkKHRhZywgc2VjdGlvblN0cmluZyk7CisKKyAgICAgICAgaW50IHRhZ1R5cGUgPSB2T3BzLT5nZXRfdGFnX3R5cGUodk9wcywgdGFnKTsKKyAgICAgICAgaWYgKHRhZ1R5cGUgPCAwIHx8IHRhZ1R5cGUgPj0gTlVNX1RZUEVTKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IHRhZyB0eXBlICVkIGZyb20gdmVuZG9yIG9wcyBkb2VzIG5vdCBleGlzdC4iLCBfX0ZVTkNUSU9OX18sIHRhZ1R5cGUpOworICAgICAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICAgICAgfQorICAgICAgICBkZXNjLT5tVGFnVG9UeXBlTWFwLmFkZCh0YWcsIHRhZ1R5cGUpOworICAgIH0KKworICAgIGRlc2MtPm1TZWN0aW9ucyA9IHNlY3Rpb25zOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KHRhZ0NvdW50KTsgKytpKSB7CisgICAgICAgIHVpbnQzMl90IHRhZyA9IHRhZ0FycmF5W2ldOworICAgICAgICBTdHJpbmc4IHNlY3Rpb25TdHJpbmcgPSB0YWdUb1NlY3Rpb25NYXAudmFsdWVGb3IodGFnKTsKKworICAgICAgICAvLyBTZXQgdXAgdGFnIHRvIHNlY3Rpb24gaW5kZXggbWFwCisgICAgICAgIHNzaXplX3QgaW5kZXggPSBzZWN0aW9ucy5pbmRleE9mKHNlY3Rpb25TdHJpbmcpOworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKGluZGV4IDwgMCwgImluZGV4ICV6ZCBtdXN0IGJlIG5vbi1uZWdhdGl2ZSIsIGluZGV4KTsKKyAgICAgICAgZGVzYy0+bVRhZ1RvU2VjdGlvbk1hcC5hZGQodGFnLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oaW5kZXgpKTsKKworICAgICAgICAvLyBTZXQgdXAgcmV2ZXJzZSBtYXBwaW5nCisgICAgICAgIHNzaXplX3QgcmV2ZXJzZUluZGV4ID0gLTE7CisgICAgICAgIGlmICgocmV2ZXJzZUluZGV4ID0gZGVzYy0+bVJldmVyc2VNYXBwaW5nLmluZGV4T2ZLZXkoc2VjdGlvblN0cmluZykpIDwgMCkgeworICAgICAgICAgICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCwgdWludDMyX3Q+KiBuYW1lTWFwcGVyID0gbmV3IEtleWVkVmVjdG9yPFN0cmluZzgsIHVpbnQzMl90PigpOworICAgICAgICAgICAgcmV2ZXJzZUluZGV4ID0gZGVzYy0+bVJldmVyc2VNYXBwaW5nLmFkZChzZWN0aW9uU3RyaW5nLCBuYW1lTWFwcGVyKTsKKyAgICAgICAgfQorICAgICAgICBkZXNjLT5tUmV2ZXJzZU1hcHBpbmdbcmV2ZXJzZUluZGV4XS0+YWRkKGRlc2MtPm1UYWdUb05hbWVNYXAudmFsdWVGb3IodGFnKSwgdGFnKTsKKyAgICB9CisKKyAgICBkZXNjcmlwdG9yID0gZGVzYzsKKyAgICByZXR1cm4gT0s7Cit9CisKK3N0YXR1c190IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OnNldEFzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvcihjb25zdCBzcDxWZW5kb3JUYWdEZXNjcmlwdG9yPiYgZGVzYykgeworICAgIHN0YXR1c190IHJlcyA9IE9LOworICAgIE11dGV4OjpBdXRvbG9jayBhbChzTG9jayk7CisgICAgc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IgPSBkZXNjOworCisgICAgdmVuZG9yX3RhZ19vcHNfdCogb3BzUHRyID0gTlVMTDsKKyAgICBpZiAoZGVzYyAhPSBOVUxMKSB7CisgICAgICAgIG9wc1B0ciA9ICYoZGVzYy0+bVZlbmRvck9wcyk7CisgICAgICAgIG9wc1B0ci0+Z2V0X3RhZ19jb3VudCA9IHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfdGFnX2NvdW50OworICAgICAgICBvcHNQdHItPmdldF9hbGxfdGFncyA9IHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfYWxsX3RhZ3M7CisgICAgICAgIG9wc1B0ci0+Z2V0X3NlY3Rpb25fbmFtZSA9IHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfc2VjdGlvbl9uYW1lOworICAgICAgICBvcHNQdHItPmdldF90YWdfbmFtZSA9IHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfdGFnX25hbWU7CisgICAgICAgIG9wc1B0ci0+Z2V0X3RhZ190eXBlID0gdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfdHlwZTsKKyAgICB9CisgICAgaWYoKHJlcyA9IHNldF9jYW1lcmFfbWV0YWRhdGFfdmVuZG9yX29wcyhvcHNQdHIpKSAhPSBPSykgeworICAgICAgICBBTE9HRSgiJXM6IENvdWxkIG5vdCBzZXQgdmVuZG9yIHRhZyBkZXNjcmlwdG9yLCByZWNlaXZlZCBlcnJvciAlcyAoJWQpLiIKKyAgICAgICAgICAgICAgICAsIF9fRlVOQ1RJT05fXywgc3RyZXJyb3IoLXJlcyksIHJlcyk7CisgICAgfQorICAgIHJldHVybiByZXM7Cit9CisKK3ZvaWQgVmVuZG9yVGFnRGVzY3JpcHRvcjo6Y2xlYXJHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yKCkgeworICAgIE11dGV4OjpBdXRvbG9jayBhbChzTG9jayk7CisgICAgc2V0X2NhbWVyYV9tZXRhZGF0YV92ZW5kb3Jfb3BzKE5VTEwpOworICAgIHNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yLmNsZWFyKCk7Cit9CisKK3NwPFZlbmRvclRhZ0Rlc2NyaXB0b3I+IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmdldEdsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IoKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIGFsKHNMb2NrKTsKKyAgICByZXR1cm4gc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3I7Cit9CisKK2V4dGVybiAiQyIgeworCitpbnQgdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfY291bnQoY29uc3QgdmVuZG9yX3RhZ19vcHNfdCogLyp2Ki8pIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgYWwoc0xvY2spOworICAgIGlmIChzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvciA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCIlczogVmVuZG9yIHRhZyBkZXNjcmlwdG9yIG5vdCBpbml0aWFsaXplZC4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVkVORE9SX1RBR19DT1VOVF9FUlI7CisgICAgfQorICAgIHJldHVybiBzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvci0+Z2V0VGFnQ291bnQoKTsKK30KKwordm9pZCB2ZW5kb3JfdGFnX2Rlc2NyaXB0b3JfZ2V0X2FsbF90YWdzKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIC8qdiovLCB1aW50MzJfdCogdGFnQXJyYXkpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgYWwoc0xvY2spOworICAgIGlmIChzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvciA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCIlczogVmVuZG9yIHRhZyBkZXNjcmlwdG9yIG5vdCBpbml0aWFsaXplZC4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yLT5nZXRUYWdBcnJheSh0YWdBcnJheSk7Cit9CisKK2NvbnN0IGNoYXIqIHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfc2VjdGlvbl9uYW1lKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIC8qdiovLCB1aW50MzJfdCB0YWcpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgYWwoc0xvY2spOworICAgIGlmIChzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvciA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCIlczogVmVuZG9yIHRhZyBkZXNjcmlwdG9yIG5vdCBpbml0aWFsaXplZC4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVkVORE9SX1NFQ1RJT05fTkFNRV9FUlI7CisgICAgfQorICAgIHJldHVybiBzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvci0+Z2V0U2VjdGlvbk5hbWUodGFnKTsKK30KKworY29uc3QgY2hhciogdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfbmFtZShjb25zdCB2ZW5kb3JfdGFnX29wc190KiAvKnYqLywgdWludDMyX3QgdGFnKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIGFsKHNMb2NrKTsKKyAgICBpZiAoc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IgPT0gTlVMTCkgeworICAgICAgICBBTE9HRSgiJXM6IFZlbmRvciB0YWcgZGVzY3JpcHRvciBub3QgaW5pdGlhbGl6ZWQuIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFZFTkRPUl9UQUdfTkFNRV9FUlI7CisgICAgfQorICAgIHJldHVybiBzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvci0+Z2V0VGFnTmFtZSh0YWcpOworfQorCitpbnQgdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfdHlwZShjb25zdCB2ZW5kb3JfdGFnX29wc190KiAvKnYqLywgdWludDMyX3QgdGFnKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIGFsKHNMb2NrKTsKKyAgICBpZiAoc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IgPT0gTlVMTCkgeworICAgICAgICBBTE9HRSgiJXM6IFZlbmRvciB0YWcgZGVzY3JpcHRvciBub3QgaW5pdGlhbGl6ZWQuIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFZFTkRPUl9UQUdfVFlQRV9FUlI7CisgICAgfQorICAgIHJldHVybiBzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvci0+Z2V0VGFnVHlwZSh0YWcpOworfQorCit9IC8qIGV4dGVybiAiQyIgKi8KKworfSAvLyBuYW1lc3BhY2UgaGVscGVyCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBjb21tb24KK30gLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9DYW1lcmFNZXRhZGF0YS5oIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9pbmNsdWRlL0NhbWVyYU1ldGFkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDVlNGQ1NgotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9DYW1lcmFNZXRhZGF0YS5oCkBAIC0wLDAgKzEsMjMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBDQU1FUkFfQ09NTU9OXzFfMF9DQU1FUkFNRVRBREFUQV9ICisjZGVmaW5lIENBTUVSQV9DT01NT05fMV8wX0NBTUVSQU1FVEFEQVRBX0gKKworI2luY2x1ZGUgInN5c3RlbS9jYW1lcmFfbWV0YWRhdGEuaCIKKworI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KKyNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGNvbW1vbiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaGVscGVyIHsKKworY2xhc3MgVmVuZG9yVGFnRGVzY3JpcHRvcjsKKworLyoqCisgKiBBIGNvbnZlbmllbmNlIHdyYXBwZXIgYXJvdW5kIHRoZSBDLWJhc2VkIGNhbWVyYV9tZXRhZGF0YV90IGxpYnJhcnkuCisgKi8KK2NsYXNzIENhbWVyYU1ldGFkYXRhIHsKKyAgcHVibGljOgorICAgIC8qKiBDcmVhdGVzIGFuIGVtcHR5IG9iamVjdDsgYmVzdCB1c2VkIHdoZW4gZXhwZWN0aW5nIHRvIGFjcXVpcmUgY29udGVudHMKKyAgICAgKiBmcm9tIGVsc2V3aGVyZSAqLworICAgIENhbWVyYU1ldGFkYXRhKCk7CisgICAgLyoqIENyZWF0ZXMgYW4gb2JqZWN0IHdpdGggc3BhY2UgZm9yIGVudHJ5Q2FwYWNpdHkgZW50cmllcywgd2l0aAorICAgICAqIGRhdGFDYXBhY2l0eSBleHRyYSBzdG9yYWdlICovCisgICAgQ2FtZXJhTWV0YWRhdGEoc2l6ZV90IGVudHJ5Q2FwYWNpdHksIHNpemVfdCBkYXRhQ2FwYWNpdHkgPSAxMCk7CisKKyAgICB+Q2FtZXJhTWV0YWRhdGEoKTsKKworICAgIC8qKiBUYWtlcyBvd25lcnNoaXAgb2YgcGFzc2VkLWluIGJ1ZmZlciAqLworICAgIENhbWVyYU1ldGFkYXRhKGNhbWVyYV9tZXRhZGF0YV90ICpidWZmZXIpOworICAgIC8qKiBDbG9uZXMgdGhlIG1ldGFkYXRhICovCisgICAgQ2FtZXJhTWV0YWRhdGEoY29uc3QgQ2FtZXJhTWV0YWRhdGEgJm90aGVyKTsKKworICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgY2xvbmVzIG1ldGFkYXRhIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBDYW1lcmFNZXRhZGF0YSAmb3BlcmF0b3I9KGNvbnN0IENhbWVyYU1ldGFkYXRhICZvdGhlcik7CisgICAgQ2FtZXJhTWV0YWRhdGEgJm9wZXJhdG9yPShjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCAqYnVmZmVyKTsKKworICAgIC8qKgorICAgICAqIEdldCByZWZlcmVuY2UgdG8gdGhlIHVuZGVybHlpbmcgbWV0YWRhdGEgYnVmZmVyLiBPd25lcnNoaXAgcmVtYWlucyB3aXRoCisgICAgICogdGhlIENhbWVyYU1ldGFkYXRhIG9iamVjdCwgYnV0IG5vbi1jb25zdCBDYW1lcmFNZXRhZGF0YSBtZXRob2RzIHdpbGwgbm90CisgICAgICogd29yayB1bnRpbCB1bmxvY2soKSBpcyBjYWxsZWQuIE5vdGUgdGhhdCB0aGUgbG9jayBoYXMgbm90aGluZyB0byBkbyB3aXRoCisgICAgICogdGhyZWFkLXNhZmV0eSwgaXQgc2ltcGx5IHByZXZlbnRzIHRoZSBjYW1lcmFfbWV0YWRhdGFfdCBwb2ludGVyIHJldHVybmVkCisgICAgICogaGVyZSBmcm9tIGJlaW5nIGFjY2lkZW50YWxseSBpbnZhbGlkYXRlZCBieSBDYW1lcmFNZXRhZGF0YSBvcGVyYXRpb25zLgorICAgICAqLworICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiBnZXRBbmRMb2NrKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBVbmxvY2sgdGhlIENhbWVyYU1ldGFkYXRhIGZvciB1c2UgYWdhaW4uIEFmdGVyIHRoaXMgdW5sb2NrLCB0aGUgcG9pbnRlcgorICAgICAqIGdpdmVuIGZyb20gZ2V0QW5kTG9jaygpIG1heSBubyBsb25nZXIgYmUgdXNlZC4gVGhlIHBvaW50ZXIgcGFzc2VkIG91dAorICAgICAqIGZyb20gZ2V0QW5kTG9jayBtdXN0IGJlIHByb3ZpZGVkIHRvIGd1YXJhbnRlZSB0aGF0IHRoZSByaWdodCBvYmplY3QgaXMKKyAgICAgKiBiZWluZyB1bmxvY2tlZC4KKyAgICAgKi8KKyAgICBzdGF0dXNfdCB1bmxvY2soY29uc3QgY2FtZXJhX21ldGFkYXRhX3QgKmJ1ZmZlcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGEgcmF3IG1ldGFkYXRhIGJ1ZmZlciB0byB0aGUgY2FsbGVyLiBBZnRlciB0aGlzIGNhbGwsCisgICAgICogQ2FtZXJhTWV0YWRhdGEgbm8gbG9uZ2VyIHJlZmVyZW5jZXMgdGhlIGJ1ZmZlciwgYW5kIHRoZSBjYWxsZXIgdGFrZXMKKyAgICAgKiByZXNwb25zaWJpbGl0eSBmb3IgZnJlZWluZyB0aGUgcmF3IG1ldGFkYXRhIGJ1ZmZlciAodXNpbmcKKyAgICAgKiBmcmVlX2NhbWVyYV9tZXRhZGF0YSgpKSwgb3IgZm9yIGhhbmRpbmcgaXQgdG8gYW5vdGhlciBDYW1lcmFNZXRhZGF0YQorICAgICAqIGluc3RhbmNlLgorICAgICAqLworICAgIGNhbWVyYV9tZXRhZGF0YV90KiByZWxlYXNlKCk7CisKKyAgICAvKioKKyAgICAgKiBDbGVhciB0aGUgbWV0YWRhdGEgYnVmZmVyIGFuZCBmcmVlIGFsbCBzdG9yYWdlIHVzZWQgYnkgaXQKKyAgICAgKi8KKyAgICB2b2lkIGNsZWFyKCk7CisKKyAgICAvKioKKyAgICAgKiBBY3F1aXJlIGEgcmF3IG1ldGFkYXRhIGJ1ZmZlciBmcm9tIHRoZSBjYWxsZXIuIEFmdGVyIHRoaXMgY2FsbCwKKyAgICAgKiB0aGUgY2FsbGVyIG5vIGxvbmdlciBvd25zIHRoZSByYXcgYnVmZmVyLCBhbmQgbXVzdCBub3QgZnJlZSBvciBtYW5pcHVsYXRlIGl0LgorICAgICAqIElmIENhbWVyYU1ldGFkYXRhIGFscmVhZHkgY29udGFpbnMgbWV0YWRhdGEsIGl0IGlzIGZyZWVkLgorICAgICAqLworICAgIHZvaWQgYWNxdWlyZShjYW1lcmFfbWV0YWRhdGFfdCogYnVmZmVyKTsKKworICAgIC8qKgorICAgICAqIEFjcXVpcmVzIHJhdyBidWZmZXIgZnJvbSBvdGhlciBDYW1lcmFNZXRhZGF0YSBvYmplY3QuIEFmdGVyIHRoZSBjYWxsLCB0aGUgYXJndW1lbnQKKyAgICAgKiBvYmplY3Qgbm8gbG9uZ2VyIGhhcyBhbnkgbWV0YWRhdGEuCisgICAgICovCisgICAgdm9pZCBhY3F1aXJlKENhbWVyYU1ldGFkYXRhICZvdGhlcik7CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgbWV0YWRhdGEgZnJvbSBhbm90aGVyIENhbWVyYU1ldGFkYXRhIG9iamVjdC4KKyAgICAgKi8KKyAgICBzdGF0dXNfdCBhcHBlbmQoY29uc3QgQ2FtZXJhTWV0YWRhdGEgJm90aGVyKTsKKworICAgIC8qKgorICAgICAqIEFwcGVuZCBtZXRhZGF0YSBmcm9tIGEgcmF3IGNhbWVyYV9tZXRhZGF0YSBidWZmZXIKKyAgICAgKi8KKyAgICBzdGF0dXNfdCBhcHBlbmQoY29uc3QgY2FtZXJhX21ldGFkYXRhKiBvdGhlcik7CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgbWV0YWRhdGEgZW50cmllcy4KKyAgICAgKi8KKyAgICBzaXplX3QgZW50cnlDb3VudCgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogSXMgdGhlIGJ1ZmZlciBlbXB0eSAobm8gZW50aXJlcykKKyAgICAgKi8KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFNvcnQgbWV0YWRhdGEgYnVmZmVyIGZvciBmYXN0ZXIgZmluZAorICAgICAqLworICAgIHN0YXR1c190IHNvcnQoKTsKKworICAgIC8qKgorICAgICAqIFVwZGF0ZSBtZXRhZGF0YSBlbnRyeS4gV2lsbCBjcmVhdGUgZW50cnkgaWYgaXQgZG9lc24ndCBleGlzdCBhbHJlYWR5LCBhbmQKKyAgICAgKiB3aWxsIHJlYWxsb2NhdGUgdGhlIGJ1ZmZlciBpZiBpbnN1ZmZpY2llbnQgc3BhY2UgZXhpc3RzLiBPdmVybG9hZGVkIGZvcgorICAgICAqIHRoZSB2YXJpb3VzIHR5cGVzIG9mIHZhbGlkIGRhdGEuCisgICAgICovCisgICAgc3RhdHVzX3QgdXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBkYXRhX2NvdW50KTsKKyAgICBzdGF0dXNfdCB1cGRhdGUodWludDMyX3QgdGFnLAorICAgICAgICAgICAgY29uc3QgaW50MzJfdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpOworICAgIHN0YXR1c190IHVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgICAgICBjb25zdCBmbG9hdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpOworICAgIHN0YXR1c190IHVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgICAgICBjb25zdCBpbnQ2NF90ICpkYXRhLCBzaXplX3QgZGF0YV9jb3VudCk7CisgICAgc3RhdHVzX3QgdXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgICAgIGNvbnN0IGRvdWJsZSAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpOworICAgIHN0YXR1c190IHVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfcmF0aW9uYWxfdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpOworICAgIHN0YXR1c190IHVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgICAgICBjb25zdCBTdHJpbmc4ICZzdHJpbmcpOworICAgIHN0YXR1c190IHVwZGF0ZShjb25zdCBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgJmVudHJ5KTsKKworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBzdGF0dXNfdCB1cGRhdGUodWludDMyX3QgdGFnLCBWZWN0b3I8VD4gZGF0YSkgeworICAgICAgICByZXR1cm4gdXBkYXRlKHRhZywgZGF0YS5hcnJheSgpLCBkYXRhLnNpemUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgYSBtZXRhZGF0YSBlbnRyeSBleGlzdHMgZm9yIGEgZ2l2ZW4gdGFnIGlkCisgICAgICoKKyAgICAgKi8KKyAgICBib29sIGV4aXN0cyh1aW50MzJfdCB0YWcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2V0IG1ldGFkYXRhIGVudHJ5IGJ5IHRhZyBpZAorICAgICAqLworICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeSBmaW5kKHVpbnQzMl90IHRhZyk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWV0YWRhdGEgZW50cnkgYnkgdGFnIGlkLCB3aXRoIG5vIGVkaXRpbmcKKyAgICAgKi8KKyAgICBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgZmluZCh1aW50MzJfdCB0YWcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRGVsZXRlIG1ldGFkYXRhIGVudHJ5IGJ5IHRhZworICAgICAqLworICAgIHN0YXR1c190IGVyYXNlKHVpbnQzMl90IHRhZyk7CisKKyAgICAvKioKKyAgICAgKiBTd2FwIHRoZSB1bmRlcmx5aW5nIGNhbWVyYSBtZXRhZGF0YSBiZXR3ZWVuIHRoaXMgYW5kIHRoZSBvdGhlcgorICAgICAqIG1ldGFkYXRhIG9iamVjdC4KKyAgICAgKi8KKyAgICB2b2lkIHN3YXAoQ2FtZXJhTWV0YWRhdGEgJm90aGVyKTsKKworICAgIC8qKgorICAgICAqIER1bXAgY29udGVudHMgaW50byBGRCBmb3IgZGVidWdnaW5nLiBUaGUgdmVyYm9zaXR5IGxldmVscyBhcmUKKyAgICAgKiAwOiBUYWcgZW50cnkgaW5mb3JtYXRpb24gb25seSwgbm8gZGF0YSB2YWx1ZXMKKyAgICAgKiAxOiBMZXZlbCAwIHBsdXMgYXQgbW9zdCAxNiBkYXRhIHZhbHVlcyBwZXIgZW50cnkKKyAgICAgKiAyOiBBbGwgaW5mb3JtYXRpb24KKyAgICAgKgorICAgICAqIFRoZSBpbmRlbnRhdGlvbiBwYXJhbWV0ZXIgc2V0cyB0aGUgbnVtYmVyIG9mIHNwYWNlcyB0byBhZGQgdG8gdGhlIHN0YXJ0CisgICAgICogZWFjaCBsaW5lIG9mIG91dHB1dC4KKyAgICAgKi8KKyAgICB2b2lkIGR1bXAoaW50IGZkLCBpbnQgdmVyYm9zaXR5ID0gMSwgaW50IGluZGVudGF0aW9uID0gMCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRhZyBpZCBmb3IgYSBnaXZlbiB0YWcgbmFtZSwgYWxzbyBjaGVja2luZyB2ZW5kb3IgdGFncyBpZiBhdmFpbGFibGUuCisgICAgICogT24gc3VjY2VzcywgcmV0dXJucyBPSyBhbmQgd3JpdGVzIHRoZSB0YWcgaWQgaW50byB0YWcuCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGEgc2xvdyBtZXRob2QuCisgICAgICovCisgICAgc3RhdGljIHN0YXR1c190IGdldFRhZ0Zyb21OYW1lKGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICBjb25zdCBWZW5kb3JUYWdEZXNjcmlwdG9yKiB2VGFncywgdWludDMyX3QgKnRhZyk7CisKKyAgcHJpdmF0ZToKKyAgICBjYW1lcmFfbWV0YWRhdGFfdCAqbUJ1ZmZlcjsKKyAgICBtdXRhYmxlIGJvb2wgICAgICAgbUxvY2tlZDsKKworICAgIC8qKgorICAgICAqIENoZWNrIGlmIHRhZyBoYXMgYSBnaXZlbiB0eXBlCisgICAgICovCisgICAgc3RhdHVzX3QgY2hlY2tUeXBlKHVpbnQzMl90IHRhZywgdWludDhfdCBleHBlY3RlZFR5cGUpOworCisgICAgLyoqCisgICAgICogQmFzZSB1cGRhdGUgZW50cnkgbWV0aG9kCisgICAgICovCisgICAgc3RhdHVzX3QgdXBkYXRlSW1wbCh1aW50MzJfdCB0YWcsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBkYXRhX2NvdW50KTsKKworICAgIC8qKgorICAgICAqIFJlc2l6ZSBtZXRhZGF0YSBidWZmZXIgaWYgbmVlZGVkIGJ5IHJlYWxsb2NhdGluZyBpdCBhbmQgY29weWluZyBpdCBvdmVyLgorICAgICAqLworICAgIHN0YXR1c190IHJlc2l6ZUlmTmVlZGVkKHNpemVfdCBleHRyYUVudHJpZXMsIHNpemVfdCBleHRyYURhdGEpOworCit9OworCit9IC8vIG5hbWVzcGFjZSBoZWxwZXIKK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGNvbW1vbgorfSAvLyBuYW1lc3BhY2UgY2FtZXJhCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9DYW1lcmFNb2R1bGUuaCBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9DYW1lcmFNb2R1bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmJmYmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9pbmNsdWRlL0NhbWVyYU1vZHVsZS5oCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIENBTUVSQV9DT01NT05fMV8wX0NBTUVSQU1PRFVMRV9ICisjZGVmaW5lIENBTUVSQV9DT01NT05fMV8wX0NBTUVSQU1PRFVMRV9ICisKKyNpbmNsdWRlIDxoYXJkd2FyZS9jYW1lcmEuaD4KKyNpbmNsdWRlIDx1dGlscy9NdXRleC5oPgorI2luY2x1ZGUgPHV0aWxzL0tleWVkVmVjdG9yLmg+CisjaW5jbHVkZSA8dXRpbHMvUmVmQmFzZS5oPgorCisjaW5jbHVkZSAiQ2FtZXJhTWV0YWRhdGEuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGNvbW1vbiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaGVscGVyIHsKKy8qKgorICogQSB3cmFwcGVyIGNsYXNzIGZvciBIQUwgY2FtZXJhIG1vZHVsZS4KKyAqCisgKiBUaGlzIGNsYXNzIHdyYXBzIGNhbWVyYV9tb2R1bGVfdCByZXR1cm5lZCBmcm9tIEhBTCB0byBwcm92aWRlIGEgd3JhcHBlZAorICogZ2V0X2NhbWVyYV9pbmZvIGltcGxlbWVudGF0aW9uIHdoaWNoIENhbWVyYVNlcnZpY2UgZ2VuZXJhdGVzIHNvbWUKKyAqIGNhbWVyYSBjaGFyYWN0ZXJpc3RpY3Mga2V5cyBkZWZpbmVkIGluIG5ld2VyIEhBTCB2ZXJzaW9uIG9uIGFuIG9sZGVyIEhBTC4KKyAqLworY2xhc3MgQ2FtZXJhTW9kdWxlIDogcHVibGljIFJlZkJhc2UgeworcHVibGljOgorICAgIGV4cGxpY2l0IENhbWVyYU1vZHVsZShjYW1lcmFfbW9kdWxlX3QgKm1vZHVsZSk7CisgICAgdmlydHVhbCB+Q2FtZXJhTW9kdWxlKCk7CisKKyAgICAvLyBNdXN0IGJlIGNhbGxlZCBhZnRlciBjb25zdHJ1Y3Rpb24KKyAgICAvLyBSZXR1cm5zIE9LIG9uIHN1Y2Nlc3MsIE5PX0lOSVQgb24gZmFpbHVyZQorICAgIGludCBpbml0KCk7CisKKyAgICBpbnQgZ2V0Q2FtZXJhSW5mbyhpbnQgY2FtZXJhSWQsIHN0cnVjdCBjYW1lcmFfaW5mbyAqaW5mbyk7CisgICAgaW50IGdldERldmljZVZlcnNpb24oaW50IGNhbWVyYUlkKTsKKyAgICBpbnQgZ2V0TnVtYmVyT2ZDYW1lcmFzKHZvaWQpOworICAgIGludCBvcGVuKGNvbnN0IGNoYXIqIGlkLCBzdHJ1Y3QgaHdfZGV2aWNlX3QqKiBkZXZpY2UpOworICAgIGJvb2wgaXNPcGVuTGVnYWN5RGVmaW5lZCgpIGNvbnN0OworICAgIGludCBvcGVuTGVnYWN5KGNvbnN0IGNoYXIqIGlkLCB1aW50MzJfdCBoYWxWZXJzaW9uLCBzdHJ1Y3QgaHdfZGV2aWNlX3QqKiBkZXZpY2UpOworICAgIGludCBzZXRDYWxsYmFja3MoY29uc3QgY2FtZXJhX21vZHVsZV9jYWxsYmFja3NfdCAqY2FsbGJhY2tzKTsKKyAgICBib29sIGlzVmVuZG9yVGFnRGVmaW5lZCgpIGNvbnN0OworICAgIHZvaWQgZ2V0VmVuZG9yVGFnT3BzKHZlbmRvcl90YWdfb3BzX3QqIG9wcyk7CisgICAgYm9vbCBpc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgpIGNvbnN0OworICAgIGludCBzZXRUb3JjaE1vZGUoY29uc3QgY2hhciogY2FtZXJhX2lkLCBib29sIGVuYWJsZSk7CisgICAgdWludDE2X3QgZ2V0TW9kdWxlQXBpVmVyc2lvbigpIGNvbnN0OworICAgIGNvbnN0IGNoYXIqIGdldE1vZHVsZU5hbWUoKSBjb25zdDsKKyAgICB1aW50MTZfdCBnZXRIYWxBcGlWZXJzaW9uKCkgY29uc3Q7CisgICAgY29uc3QgY2hhciogZ2V0TW9kdWxlQXV0aG9yKCkgY29uc3Q7CisgICAgLy8gT25seSB1c2VkIGJ5IENhbWVyYU1vZHVsZUZpeHR1cmUgbmF0aXZlIHRlc3QuIERvIE5PVCB1c2UgZWxzZXdoZXJlLgorICAgIHZvaWQgKmdldERzbygpOworCitwcml2YXRlOgorICAgIC8vIERlcml2ZSBjYW1lcmEgY2hhcmFjdGVyaXN0aWNzIGtleXMgZGVmaW5lZCBhZnRlciBIQUwgZGV2aWNlIHZlcnNpb24KKyAgICBzdGF0aWMgdm9pZCBkZXJpdmVDYW1lcmFDaGFyYWN0ZXJpc3RpY3NLZXlzKHVpbnQzMl90IGRldmljZVZlcnNpb24sIENhbWVyYU1ldGFkYXRhICZjaGFycyk7CisgICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGFwcGVuZCBhdmFpbGFibGVbcmVxdWVzdHxyZXN1bHR8Y2hhcnNdS2V5cworICAgIHN0YXRpYyB2b2lkIGFwcGVuZEF2YWlsYWJsZUtleXMoQ2FtZXJhTWV0YWRhdGEgJmNoYXJzLAorICAgICAgICAgICAgaW50MzJfdCBrZXlUYWcsIGNvbnN0IFZlY3RvcjxpbnQzMl90PiYgYXBwZW5kS2V5cyk7CisgICAgc3RhdHVzX3QgZmlsdGVyT3BlbkVycm9yQ29kZShzdGF0dXNfdCBlcnIpOworICAgIGNhbWVyYV9tb2R1bGVfdCAqbU1vZHVsZTsKKyAgICBLZXllZFZlY3RvcjxpbnQsIGNhbWVyYV9pbmZvPiBtQ2FtZXJhSW5mb01hcDsKKyAgICBLZXllZFZlY3RvcjxpbnQsIGludD4gbURldmljZVZlcnNpb25NYXA7CisgICAgTXV0ZXggbUNhbWVyYUluZm9Mb2NrOworfTsKKworfSAvLyBuYW1lc3BhY2UgaGVscGVyCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBjb21tb24KK30gLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L2luY2x1ZGUvSGFuZGxlSW1wb3J0ZXIuaCBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9IYW5kbGVJbXBvcnRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2OGNmYzAKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L2luY2x1ZGUvSGFuZGxlSW1wb3J0ZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBDQU1FUkFfQ09NTU9OXzFfMF9IQU5ETEVJTVBPUlRFRF9ICisjZGVmaW5lIENBTUVSQV9DT01NT05fMV8wX0hBTkRMRUlNUE9SVEVEX0gKKworI2luY2x1ZGUgPHN5c3RlbS93aW5kb3cuaD4KKyNpbmNsdWRlIDx1dGlscy9NdXRleC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpJTWFwcGVyOworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgY29tbW9uIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBoZWxwZXIgeworCisvLyBCb3Jyb3dlZCBmcm9tIGdyYXBoaWNzIEhBTC4gVXNlIHRoaXMgdW50aWwgZ3JhbGxvYyBtYXBwZXIgSEFMIGlzIHdvcmtpbmcKK2NsYXNzIEhhbmRsZUltcG9ydGVyIHsKK3B1YmxpYzoKKyAgICBIYW5kbGVJbXBvcnRlcigpOworCisgICAgLy8gSW4gSUNvbXBvc2VyLCBhbnkgYnVmZmVyX2hhbmRsZV90IGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIgYW5kIHdlIG5lZWQgdG8KKyAgICAvLyBtYWtlIGEgY2xvbmUgZm9yIGh3Y29tcG9zZXIyLiAgV2UgYWxzbyBuZWVkIHRvIHRyYW5zbGF0ZSBlbXB0eSBoYW5kbGUKKyAgICAvLyB0byBudWxscHRyLiAgVGhpcyBmdW5jdGlvbiBkb2VzIHRoYXQsIGluLXBsYWNlLgorICAgIGJvb2wgaW1wb3J0QnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCYgaGFuZGxlKTsKKyAgICB2b2lkIGZyZWVCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGhhbmRsZSk7CisgICAgYm9vbCBpbXBvcnRGZW5jZShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSwgaW50JiBmZCkgY29uc3Q7CisgICAgdm9pZCBjbG9zZUZlbmNlKGludCBmZCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgdm9pZCBpbml0aWFsaXplTG9ja2VkKCk7CisgICAgdm9pZCBjbGVhbnVwKCk7CisKKyAgICBNdXRleCBtTG9jazsKKyAgICBib29sIG1Jbml0aWFsaXplZDsKKyAgICBzcDxJTWFwcGVyPiBtTWFwcGVyOworCit9OworCit9IC8vIG5hbWVzcGFjZSBoZWxwZXIKK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGNvbW1vbgorfSAvLyBuYW1lc3BhY2UgY2FtZXJhCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gQ0FNRVJBX0NPTU1PTl8xXzBfSEFORExFSU1QT1JURURfSApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9WZW5kb3JUYWdEZXNjcmlwdG9yLmggYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L2luY2x1ZGUvVmVuZG9yVGFnRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkOGRlZDkKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L2luY2x1ZGUvVmVuZG9yVGFnRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBDQU1FUkFfQ09NTU9OXzFfMF9WRU5ET1JUQUdERVNDUklQVE9SX0gKKyNkZWZpbmUgQ0FNRVJBX0NPTU1PTl8xXzBfVkVORE9SVEFHREVTQ1JJUFRPUl9ICisKKyNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KKyNpbmNsdWRlIDx1dGlscy9SZWZCYXNlLmg+CisjaW5jbHVkZSA8c3lzdGVtL2NhbWVyYV92ZW5kb3JfdGFncy5oPgorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhMiB7CituYW1lc3BhY2UgcGFyYW1zIHsKKworLyoqCisgKiBWZW5kb3JUYWdEZXNjcmlwdG9yIG9iamVjdHMgYXJlIGNvbnRhaW5lcnMgZm9yIHRoZSB2ZW5kb3IgdGFnCisgKiBkZWZpbml0aW9ucyBwcm92aWRlZCwgYW5kIGFyZSB0eXBpY2FsbHkgdXNlZCB0byBwYXNzIHRoZSB2ZW5kb3IgdGFnCisgKiBpbmZvcm1hdGlvbiBlbnVtZXJhdGVkIGJ5IHRoZSBIQUwgdG8gY2xpZW50cyBvZiB0aGUgY2FtZXJhIHNlcnZpY2UuCisgKi8KK2NsYXNzIFZlbmRvclRhZ0Rlc2NyaXB0b3IgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+VmVuZG9yVGFnRGVzY3JpcHRvcigpOworCisgICAgICAgIFZlbmRvclRhZ0Rlc2NyaXB0b3IoKTsKKyAgICAgICAgVmVuZG9yVGFnRGVzY3JpcHRvcihjb25zdCBWZW5kb3JUYWdEZXNjcmlwdG9yJiBzcmMpOworICAgICAgICBWZW5kb3JUYWdEZXNjcmlwdG9yJiBvcGVyYXRvcj0oY29uc3QgVmVuZG9yVGFnRGVzY3JpcHRvciYgcmhzKTsKKworICAgICAgICB2b2lkIGNvcHlGcm9tKGNvbnN0IFZlbmRvclRhZ0Rlc2NyaXB0b3ImIHNyYyk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBmb2xsb3dpbmcgJ2dldConIG1ldGhvZHMgaW1wbGVtZW50IHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAqIGZ1bmN0aW9ucyBkZWZpbmVkIGluCisgICAgICAgICAqIHN5c3RlbS9tZWRpYS9jYW1lcmEvaW5jbHVkZS9zeXN0ZW0vY2FtZXJhX3ZlbmRvcl90YWdzLmgKKyAgICAgICAgICovCisKKyAgICAgICAgLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHZlbmRvciB0YWdzIGRlZmluZWQuCisgICAgICAgIGludCBnZXRUYWdDb3VudCgpIGNvbnN0OworCisgICAgICAgIC8vIFJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgaWQncyBvZiB2ZW5kb3IgdGFncyBkZWZpbmVkLgorICAgICAgICB2b2lkIGdldFRhZ0FycmF5KHVpbnQzMl90KiB0YWdBcnJheSkgY29uc3Q7CisKKyAgICAgICAgLy8gUmV0dXJucyB0aGUgc2VjdGlvbiBuYW1lIHN0cmluZyBmb3IgYSBnaXZlbiB2ZW5kb3IgdGFnIGlkLgorICAgICAgICBjb25zdCBjaGFyKiBnZXRTZWN0aW9uTmFtZSh1aW50MzJfdCB0YWcpIGNvbnN0OworCisgICAgICAgIC8vIFJldHVybnMgdGhlIGluZGV4IGluIHNlY3Rpb24gdmVjdG9ycyByZXR1cm5lZCBpbiBnZXRBbGxTZWN0aW9uTmFtZXMoKQorICAgICAgICAvLyBmb3IgYSBnaXZlbiB2ZW5kb3IgdGFnIGlkLiAtMSBpZiBpbnB1dCB0YWcgZG9lcyBub3QgZXhpc3QuCisgICAgICAgIHNzaXplX3QgZ2V0U2VjdGlvbkluZGV4KHVpbnQzMl90IHRhZykgY29uc3Q7CisKKyAgICAgICAgLy8gUmV0dXJucyB0aGUgdGFnIG5hbWUgc3RyaW5nIGZvciBhIGdpdmVuIHZlbmRvciB0YWcgaWQuCisgICAgICAgIGNvbnN0IGNoYXIqIGdldFRhZ05hbWUodWludDMyX3QgdGFnKSBjb25zdDsKKworICAgICAgICAvLyBSZXR1cm5zIHRoZSB0YWcgdHlwZSBmb3IgYSBnaXZlbiB2ZW5kb3IgdGFnIGlkLgorICAgICAgICBpbnQgZ2V0VGFnVHlwZSh1aW50MzJfdCB0YWcpIGNvbnN0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gZ2V0IGEgdmVjdG9yIGNvbnRhaW5pbmcgYWxsIHZlbmRvciB0YWcKKyAgICAgICAgICogc2VjdGlvbnMsIG9yIGFuIGVtcHR5IHZlY3RvciBpZiBub25lIGFyZSBkZWZpbmVkLgorICAgICAgICAgKiBUaGUgcG9pbnRlciBpcyB2YWxpZCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBWZW5kb3JUYWdEZXNjcmlwdG9yLAorICAgICAgICAgKiBvciB1bnRpbCBjb3B5RnJvbSBpcyBpbnZva2VkLgorICAgICAgICAgKi8KKyAgICAgICAgY29uc3QgU29ydGVkVmVjdG9yPFN0cmluZzg+KiBnZXRBbGxTZWN0aW9uTmFtZXMoKSBjb25zdDsKKworICAgICAgICAvKioKKyAgICAgICAgICogTG9va3VwIHRoZSB0YWcgaWQgZm9yIGEgZ2l2ZW4gdGFnIG5hbWUgYW5kIHNlY3Rpb24uCisgICAgICAgICAqCisgICAgICAgICAqIFJldHVybnMgT0sgb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlLgorICAgICAgICAgKi8KKyAgICAgICAgc3RhdHVzX3QgbG9va3VwVGFnKGNvbnN0IFN0cmluZzgmIG5hbWUsIGNvbnN0IFN0cmluZzgmIHNlY3Rpb24sIC8qb3V0Ki91aW50MzJfdCogdGFnKSBjb25zdDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRHVtcCB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQgdmVuZG9yIHRhZ3MgdG8gYSBmaWxlIGRlc2NyaXB0b3IuCisgICAgICAgICAqLworICAgICAgICB2b2lkIGR1bXAoaW50IGZkLCBpbnQgdmVyYm9zaXR5LCBpbnQgaW5kZW50YXRpb24pIGNvbnN0OworCisgICAgcHJvdGVjdGVkOgorICAgICAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCBLZXllZFZlY3RvcjxTdHJpbmc4LCB1aW50MzJfdD4qPiBtUmV2ZXJzZU1hcHBpbmc7CisgICAgICAgIEtleWVkVmVjdG9yPHVpbnQzMl90LCBTdHJpbmc4PiBtVGFnVG9OYW1lTWFwOworICAgICAgICBLZXllZFZlY3Rvcjx1aW50MzJfdCwgdWludDMyX3Q+IG1UYWdUb1NlY3Rpb25NYXA7IC8vIFZhbHVlIGlzIG9mZnNldCBpbiBtU2VjdGlvbnMKKyAgICAgICAgS2V5ZWRWZWN0b3I8dWludDMyX3QsIGludDMyX3Q+IG1UYWdUb1R5cGVNYXA7CisgICAgICAgIFNvcnRlZFZlY3RvcjxTdHJpbmc4PiBtU2VjdGlvbnM7CisgICAgICAgIC8vIG11c3QgYmUgaW50MzJfdCB0byBiZSBjb21wYXRpYmxlIHdpdGggUGFyY2VsOjp3cml0ZUludDMyCisgICAgICAgIGludDMyX3QgbVRhZ0NvdW50OworCisgICAgICAgIHZlbmRvcl90YWdfb3BzIG1WZW5kb3JPcHM7Cit9OworfSAvKiBuYW1lc3BhY2UgcGFyYW1zICovCit9IC8qIG5hbWVzcGFjZSBjYW1lcmEyICovCisKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGNvbW1vbiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaGVscGVyIHsKKworLyoqCisgKiBUaGlzIHZlcnNpb24gb2YgVmVuZG9yVGFnRGVzY3JpcHRvciBtdXN0IGJlIHN0b3JlZCBpbiBBbmRyb2lkIHNwPD4sIGFuZCBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIGl0CisgKiBhcyBhIGdsb2JhbCB0YWcgZGVzY3JpcHRvci4KKyAqCisgKiBJdCdzIGEgY2hpbGQgY2xhc3Mgb2YgdGhlIGJhc2ljIGhhcmR3YXJlOjpjYW1lcmEyOjpwYXJhbXM6OlZlbmRvclRhZ0Rlc2NyaXB0b3Igc2luY2UgYmFzaWMKKyAqIFBhcmNlbGFibGUgb2JqZWN0cyBjYW5ub3QgcmVxdWlyZSBiZWluZyBrZXB0IGluIGFuIHNwPD4gYW5kIHN0aWxsIHdvcmsgd2l0aCBhdXRvLWdlbmVyYXRlZCBBSURMCisgKiBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25zLgorICovCitjbGFzcyBWZW5kb3JUYWdEZXNjcmlwdG9yIDoKKyAgICAgICAgICAgIHB1YmxpYyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmEyOjpwYXJhbXM6OlZlbmRvclRhZ0Rlc2NyaXB0b3IsCisgICAgICAgICAgICBwdWJsaWMgTGlnaHRSZWZCYXNlPFZlbmRvclRhZ0Rlc2NyaXB0b3I+IHsKKworICBwdWJsaWM6CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBWZW5kb3JUYWdEZXNjcmlwdG9yIG9iamVjdCBmcm9tIHRoZSBnaXZlbiB2ZW5kb3JfdGFnX29wc190CisgICAgICogc3RydWN0LgorICAgICAqCisgICAgICogUmV0dXJucyBPSyBvbiBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCisgICAgICovCisgICAgc3RhdGljIHN0YXR1c190IGNyZWF0ZURlc2NyaXB0b3JGcm9tT3BzKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIHZPcHMsCisgICAgICAgICAgICAvKm91dCovCisgICAgICAgICAgICBzcDxWZW5kb3JUYWdEZXNjcmlwdG9yPiYgZGVzY3JpcHRvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBnbG9iYWwgdmVuZG9yIHRhZyBkZXNjcmlwdG9yIHRvIHVzZSBmb3IgdGhpcyBwcm9jZXNzLgorICAgICAqIENhbWVyYSBtZXRhZGF0YSBvcGVyYXRpb25zIHRoYXQgYWNjZXNzIHZlbmRvciB0YWdzIHdpbGwgdXNlIHRoZQorICAgICAqIHZlbmRvciB0YWcgZGVmaW5pdGlvbnMgc2V0IHRoaXMgd2F5LgorICAgICAqCisgICAgICogUmV0dXJucyBPSyBvbiBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCisgICAgICovCisgICAgc3RhdGljIHN0YXR1c190IHNldEFzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvcihjb25zdCBzcDxWZW5kb3JUYWdEZXNjcmlwdG9yPiYgZGVzYyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBnbG9iYWwgdmVuZG9yIHRhZyBkZXNjcmlwdG9yIHVzZWQgYnkgdGhpcyBwcm9jZXNzLgorICAgICAqIFRoaXMgd2lsbCBjb250YWluIE5VTEwgaWYgbm8gdmVuZG9yIHRhZ3MgYXJlIGRlZmluZWQuCisgICAgICovCisgICAgc3RhdGljIHNwPFZlbmRvclRhZ0Rlc2NyaXB0b3I+IGdldEdsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IoKTsKKworICAgIC8qKgorICAgICAqIENsZWFycyB0aGUgZ2xvYmFsIHZlbmRvciB0YWcgZGVzY3JpcHRvciB1c2VkIGJ5IHRoaXMgcHJvY2Vzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBjbGVhckdsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IoKTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgaGVscGVyCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBjb21tb24KK30gLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8qIENBTUVSQV9DT01NT05fMV8wX1ZFTkRPUlRBR0RFU0NSSVBUT1JfSCAqLwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvdHlwZXMuaGFsIGIvY2FtZXJhL2NvbW1vbi8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzOTMxMDcKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw0MTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA7CisKKy8qKgorICogQ29tbW9uIGVudW1lcmF0aW9uIGFuZCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMgZm9yIGFsbCBIQUxzIHVuZGVyCisgKiBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYQorICovCisKKy8qKgorICogU3RhdHVzIGNvZGVzIGZvciBjYW1lcmEgSEFMIG1ldGhvZCBjYWxscy4KKyAqCisgKi8KK2VudW0gU3RhdHVzIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsIHN1Y2NlZWRlZAorICAgICAqLworICAgIE9LID0gMCwKKworICAgIC8qKgorICAgICAqIE9uZSBvZiB0aGUgYXJndW1lbnRzIHRvIHRoZSBtZXRob2QgY2FsbCBpcyBpbnZhbGlkLiBGb3IgZXhhbXBsZSwKKyAgICAgKiB0aGUgY2FtZXJhIElEIGlzIHVua25vd24uCisgICAgICovCisgICAgSUxMRUdBTF9BUkdVTUVOVCA9IDEsCisKKyAgICAvKioKKyAgICAgKiBUaGUgc3BlY2lmaWVkIGNhbWVyYSBkZXZpY2UgaXMgYWxyZWFkeSBpbiB1c2UKKyAgICAgKi8KKyAgICBDQU1FUkFfSU5fVVNFID0gMiwKKworICAgIC8qKgorICAgICAqIFRoZSBIQUwgY2Fubm90IHN1cHBvcnQgbW9yZSBzaW11bHRhbmVvdXMgY2FtZXJhcyBpbiB1c2UuCisgICAgICovCisgICAgTUFYX0NBTUVSQVNfSU5fVVNFID0gMywKKworICAgIC8qKgorICAgICAqIFRoaXMgSEFMIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBtZXRob2QuCisgICAgICovCisgICAgTUVUSE9EX05PVF9TVVBQT1JURUQgPSA0LAorCisgICAgLyoqCisgICAgICogVGhlIHNwZWNpZmllZCBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgT1BFUkFUSU9OX05PVF9TVVBQT1JURUQgPSA1LAorCisgICAgLyoqCisgICAgICogVGhpcyBjYW1lcmEgZGV2aWNlIGlzIG5vIGxvbmdlciBjb25uZWN0ZWQgb3Igb3RoZXJ3aXNlIGF2YWlsYWJsZSBmb3IgdXNlCisgICAgICovCisgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRCA9IDYsCisKKyAgICAvKioKKyAgICAgKiBUaGUgSEFMIGhhcyBlbmNvdW50ZXJlZCBhbiBpbnRlcm5hbCBlcnJvciBhbmQgY2Fubm90IGNvbXBsZXRlIHRoZQorICAgICAqIHJlcXVlc3QuCisgICAgICovCisgICAgSU5URVJOQUxfRVJST1IgPSA3Cit9OworCisvKioKKyAqIFBvc3NpYmxlIHN0YXRlcyB0aGF0IHRoZSBmbGFzaCB1bml0IG9uIGEgY2xvc2VkIGNhbWVyYSBkZXZpY2UgY2FuIGJlIHNldCB0bworICogdmlhIHRoZSBJQ2FtZXJhUHJvdmlkZXI6OnNldFRvcmNoTW9kZSgpIG1ldGhvZC4KKyAqLworZW51bSBUb3JjaE1vZGUgOiB1aW50MzJfdCB7CisgICAgT0ZGID0gMCwgLy8gVHVybiBvZmYgdGhlIGZsYXNoCisgICAgT04gID0gMSAgLy8gVHVybiBvbiB0aGUgZmxhc2ggdG8gdG9yY2ggbW9kZQorfTsKKworLyoqCisgKiBDYW1lcmEgbWV0YWRhdGEgdHlwZSAtIGR1cGxpY2F0ZWQgZnJvbSBWTkRLIGxpYmNhbWVyYV9tZXRhZGF0YSBmb3IgdmVuZG9yIHRhZworICogZGVmaW5pdGlvbnMuCisgKi8KK2VudW0gQ2FtZXJhTWV0YWRhdGFUeXBlIDogdWludDMyX3QgeworICAgIC8vIFVuc2lnbmVkIDgtYml0IGludGVnZXIgKHVpbnQ4X3QpCisgICAgQllURSA9IDAsCisgICAgLy8gU2lnbmVkIDMyLWJpdCBpbnRlZ2VyIChpbnQzMl90KQorICAgIElOVDMyID0gMSwKKyAgICAvLyAzMi1iaXQgZmxvYXQgKGZsb2F0KQorICAgIEZMT0FUID0gMiwKKyAgICAvLyBTaWduZWQgNjQtYml0IGludGVnZXIgKGludDY0X3QpCisgICAgSU5UNjQgPSAzLAorICAgIC8vIDY0LWJpdCBmbG9hdCAoZG91YmxlKQorICAgIERPVUJMRSA9IDQsCisgICAgLy8gQSA2NC1iaXQgZnJhY3Rpb24gKGNhbWVyYV9tZXRhZGF0YV9yYXRpb25hbF90KQorICAgIFJBVElPTkFMID0gNQorfTsKKworLyoqCisgKiBBIHNpbmdsZSB2ZW5kb3ItdW5pcXVlIG1ldGFkYXRhIHRhZy4KKyAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIHRhZyBpcyA8c2VjdGlvbk5hbWU+Ljx0YWdOYW1lPgorICovCitzdHJ1Y3QgVmVuZG9yVGFnIHsKKyAgICB1aW50MzJfdCB0YWdJZDsgLy8gVGFnIGlkZW50aWZpZXIsIG11c3QgYmUgPj0gVGFnQm91bmRhcnlJZDo6VkVORE9SCisgICAgc3RyaW5nIHRhZ05hbWU7IC8vIE5hbWUgb2YgdGFnLCBub3QgaW5jbHVkaW5nIHNlY3Rpb24gbmFtZQorICAgIENhbWVyYU1ldGFkYXRhVHlwZSB0YWdUeXBlOworfTsKKworLyoqCisgKiBBIHNldCBvZiByZWxhdGVkIHZlbmRvciB0YWdzLgorICovCitzdHJ1Y3QgVmVuZG9yVGFnU2VjdGlvbiB7CisgICAgc3RyaW5nIHNlY3Rpb25OYW1lOyAvLyBTZWN0aW9uIG5hbWU7IG11c3QgYmUgbmFtZXNwYWNlZCB3aXRoaW4gdmVuZG9yJ3MgbmFtZQorICAgIHZlYzxWZW5kb3JUYWc+IHRhZ3M7IC8vIExpc3Qgb2YgdGFncyBpbiB0aGlzIHNlY3Rpb24KK307CisKK2VudW0gVGFnQm91bmRhcnlJZCA6IHVpbnQzMl90IHsKKyAgICBBT1NQICAgID0gMHgwLCAgICAgICAgIC8vIEZpcnN0IHZhbGlkIHRhZyBpZCBmb3IgYW5kcm9pZC1kZWZpbmVkIHRhZ3MKKyAgICBWRU5ET1IgID0gMHg4MDAwMDAwMHUgIC8vIEZpcnN0IHZhbGlkIHRhZyBpZCBmb3IgdmVuZG9yIGV4dGVuc2lvbiB0YWdzCit9OworCisvKioKKyAqIENhbWVyYURldmljZVN0YXR1cworICoKKyAqIFRoZSBjdXJyZW50IHN0YXR1cyBvZiBhIGNhbWVyYSBkZXZpY2UsIGFzIHNlbnQgYnkgYSBjYW1lcmEgcHJvdmlkZXIgSEFMCisgKiB0aHJvdWdoIHRoZSBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6Y2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKCkgY2FsbC4KKyAqCisgKiBBdCBzdGFydHVwLCB0aGUgY2FtZXJhIHNlcnZpY2UgbXVzdCBhc3N1bWUgYWxsIGludGVybmFsIGNhbWVyYSBkZXZpY2VzIGxpc3RlZAorICogYnkgSUNhbWVyYVByb3ZpZGVyOjpnZXRDYW1lcmFJZExpc3QoKSBhcmUgaW4gdGhlIFBSRVNFTlQgc3RhdGUuIFRoZSBwcm92aWRlcgorICogbXVzdCBpbnZva2UgSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s6OmNhbWVyYURldmljZVN0YXR1c0NoYW5nZSB0byBpbmZvcm0gdGhlCisgKiBzZXJ2aWNlIG9mIGFueSBpbml0aWFsbHkgTk9UX1BSRVNFTlQgaW50ZXJuYWwgZGV2aWNlcywgYW5kIG9mIGFueSBQUkVTRU5UCisgKiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlcywgYXMgc29vbiBhcyB0aGUgY2FtZXJhIHNlcnZpY2UgaGFzIGNhbGxlZAorICogSUNhbWVyYVByb3ZpZGVyOjpzZXRDYWxsYmFjaygpLgorICoKKyAqIEFsbG93ZWQgc3RhdGUgdHJhbnNpdGlvbnM6CisgKiAgICAgIFBSRVNFTlQgICAgICAgICAgICAtPiBOT1RfUFJFU0VOVAorICogICAgICBOT1RfUFJFU0VOVCAgICAgICAgLT4gRU5VTUVSQVRJTkcKKyAqICAgICAgTk9UX1BSRVNFTlQgICAgICAgIC0+IFBSRVNFTlQKKyAqICAgICAgRU5VTUVSQVRJTkcgICAgICAgIC0+IFBSRVNFTlQKKyAqICAgICAgRU5VTUVSQVRJTkcgICAgICAgIC0+IE5PVF9QUkVTRU5UCisgKi8KK2VudW0gQ2FtZXJhRGV2aWNlU3RhdHVzIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFRoZSBjYW1lcmEgZGV2aWNlIGlzIG5vdCBjdXJyZW50bHkgY29ubmVjdGVkLCBhbmQgdHJ5aW5nIHRvIHJlZmVyZW5jZSBpdAorICAgICAqIGluIHByb3ZpZGVyIG1ldGhvZCBjYWxscyBtdXN0IHJldHVybiBzdGF0dXMgY29kZSBJTExFR0FMX0FSR1VNRU5ULgorICAgICAqCisgICAgICovCisgICAgTk9UX1BSRVNFTlQgPSAwLAorCisgICAgLyoqCisgICAgICogVGhlIGNhbWVyYSBkZXZpY2UgaXMgY29ubmVjdGVkLCBhbmQgb3BlbmluZyBpdCBpcyBwb3NzaWJsZSwgYXMgbG9uZyBhcworICAgICAqIHN1ZmZpY2llbnQgcmVzb3VyY2VzIGFyZSBhdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBCeSBkZWZhdWx0LCB0aGUgZnJhbWV3b3JrIG11c3QgYXNzdW1lIGFsbCBkZXZpY2VzIHJldHVybmVkIGJ5CisgICAgICogSUNhbWVyYVByb3ZpZGVyOjpnZXRDYW1lcmFJZExpc3QoKSBhcmUgaW4gdGhpcyBzdGF0ZS4KKyAgICAgKi8KKyAgICBQUkVTRU5UID0gMSwKKworICAgIC8qKgorICAgICAqIFRoZSBjYW1lcmEgZGV2aWNlIGlzIGNvbm5lY3RlZCwgYnV0IGl0IGlzIHVuZGVyZ29pbmcgZW51bWVyYXRpb24gYW5kCisgICAgICogc3RhcnR1cCwgYW5kIHNvIG9wZW5pbmcgdGhlIGRldmljZSBtdXN0IHJldHVybiBDQU1FUkFfSU5fVVNFLgorICAgICAqCisgICAgICogQXR0ZW1wdGluZyB0byBjYWxsIElDYW1lcmFQcm92aWRlcjo6Z2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzKCkgbXVzdAorICAgICAqIHN1Y2NlZWQsIGhvd2V2ZXIuCisgICAgICovCisgICAgRU5VTUVSQVRJTkcgPSAyLAorCit9OworCisvKioKKyAqIFRvcmNoTW9kZVN0YXR1czoKKyAqCisgKiBUaGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHRvcmNoIG1vZGUgb24gYSBnaXZlbiBjYW1lcmEgZGV2aWNlLCBzZW50IGJ5IGEKKyAqIGNhbWVyYSBwcm92aWRlciBIQUwgdmlhIHRoZSBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6VG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkKKyAqIGNhbGwuCisgKgorICogVGhlIHRvcmNoIG1vZGUgc3RhdHVzIG9mIGEgY2FtZXJhIGRldmljZSBpcyBhcHBsaWNhYmxlIG9ubHkgd2hlbiB0aGUgY2FtZXJhCisgKiBkZXZpY2UgaXMgcHJlc2VudC4gVGhlIGNhbWVyYSBzZXJ2aWNlIG11c3Qgbm90IGNhbGwKKyAqIElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkgdG8gdHVybiBvbiB0b3JjaCBtb2RlIG9mIGEgY2FtZXJhIGRldmljZSBpZgorICogdGhlIGNhbWVyYSBkZXZpY2UgaXMgbm90IHByZXNlbnQuIEF0IGNhbWVyYSBzZXJ2aWNlIHN0YXJ0dXAgdGltZSwgdGhlCisgKiBmcmFtZXdvcmsgbXVzdCBhc3N1bWUgdG9yY2ggbW9kZXMgYXJlIGluIHRoZSBBVkFJTEFCTEVfT0ZGIHN0YXRlIGlmIHRoZQorICogY2FtZXJhIGRldmljZSBpcyBwcmVzZW50IGFuZCB0aGUgY2FtZXJhIGNoYXJhY3RlcmlzdGljcyBlbnRyeQorICogYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSBpcyByZXBvcnRlZCBhcyB0cnVlIHZpYQorICogSUNhbWVyYVByb3ZpZGVyOjpnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MoKSBjYWxsLiBUaGUgc2FtZSBpcyBhc3N1bWVkIGZvcgorICogZXh0ZXJuYWwgY2FtZXJhIGRldmljZXMgd2hlbiB0aGV5IGFyZSBpbml0aWFsbHkgY29ubmVjdGVkLgorICoKKyAqIFRoZSBjYW1lcmEgc2VydmljZSByZXF1aXJlcyB0aGUgZm9sbG93aW5nIGJlaGF2aW9ycyBmcm9tIHRoZSBjYW1lcmEgcHJvdmlkZXIKKyAqIEhBTCB3aGVuIGEgY2FtZXJhIGRldmljZSdzIHN0YXR1cyBjaGFuZ2VzOgorICoKKyAqICAxLiBBIHByZXZpb3VzbHktZGlzY29ubmVjdGVkIGNhbWVyYSBkZXZpY2UgYmVjb21lcyBjb25uZWN0ZWQuIEFmdGVyCisgKiAgICAgIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjpDYW1lcmFEZXZpY2VTdGF0dXNDaGFuZ2UoKSBpcyBpbnZva2VkIHRvIGluZm9ybQorICogICAgICB0aGUgY2FtZXJhIHNlcnZpY2UgdGhhdCB0aGUgY2FtZXJhIGRldmljZSBpcyBwcmVzZW50LCB0aGUgZnJhbWV3b3JrIG11c3QKKyAqICAgICAgYXNzdW1lIHRoZSBjYW1lcmEgZGV2aWNlJ3MgdG9yY2ggbW9kZSBpcyBpbiBBVkFJTEFCTEVfT0ZGIHN0YXRlIGlmIGl0CisgKiAgICAgIGhhcyBhIGZsYXNoIHVuaXQuIFRoZSBjYW1lcmEgcHJvdmlkZXIgSEFMIGRvZXMgbm90IG5lZWQgdG8gaW52b2tlCisgKiAgICAgIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjpUb3JjaE1vZGVTdGF0dXNDaGFuZ2UoKSB1bmxlc3MgdGhlIGZsYXNoIHVuaXQKKyAqICAgICAgaXMgdW5hdmFpbGFibGUgdG8gdXNlIGJ5IElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkuCisgKgorICogIDIuIEEgcHJldmlvdXNseS1jb25uZWN0ZWQgY2FtZXJhIGJlY29tZXMgZGlzY29ubmVjdGVkLiBBZnRlcgorICogICAgICBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6Q2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKCkgaXMgaW52b2tlZCB0byBpbmZvcm0KKyAqICAgICAgdGhlIGNhbWVyYSBzZXJ2aWNlIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UgaXMgbm90IHByZXNlbnQsIHRoZSBmcmFtZXdvcmsKKyAqICAgICAgbXVzdCBub3QgY2FsbCBJQ2FtZXJhUHJvdmlkZXI6OnNldFRvcmNoTW9kZSgpIGZvciB0aGUgZGlzY29ubmVjdGVkIGNhbWVyYQorICogICAgICBkZXZpY2UgdW50aWwgaXQgaXMgY29ubmVjdGVkIGFnYWluLiBUaGUgY2FtZXJhIHByb3ZpZGVyIEhBTCBkb2VzIG5vdAorICogICAgICBuZWVkIHRvIGludm9rZSBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6VG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkKKyAqICAgICAgc2VwYXJhdGVseSB0byBpbmZvcm0gdGhhdCB0aGUgZmxhc2ggdW5pdCBoYXMgYmVjb21lIE5PVF9BVkFJTEFCTEUuCisgKgorICogIDMuIG9wZW5DYW1lcmFEZXZpY2UoKSBvciBvcGVuQ2FtZXJhRGV2aWNlVmVyc2lvbigpIGlzIGNhbGxlZCB0byBvcGVuIGEKKyAqICAgICAgY2FtZXJhIGRldmljZS4gVGhlIGNhbWVyYSBwcm92aWRlciBIQUwgbXVzdCBpbnZva2UKKyAqICAgICAgSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s6OlRvcmNoTW9kZVN0YXR1c0NoYW5nZSgpIGZvciBhbGwgZmxhc2ggdW5pdHMKKyAqICAgICAgdGhhdCBoYXZlIGVudGVyZWQgTk9UX0FWQUlMQUJMRSBzdGF0ZSBhbmQgY2FuIG5vdCBiZSB0dXJuZWQgb24gYnkKKyAqICAgICAgY2FsbGluZyBJQ2FtZXJhUHJvdmlkZXI6OnNldFRvcmNoTW9kZSgpIGR1ZSB0byB0aGlzIG9wZW4oKSBjYWxsLgorICogICAgICBvcGVuQ2FtZXJhRGV2aWNlKCkgbXVzdCBub3QgdHJpZ2dlciBBVkFJTEFCTEVfT0ZGIGJlZm9yZSBOT1RfQVZBSUxBQkxFCisgKiAgICAgIGZvciBhbGwgZmxhc2ggdW5pdHMgdGhhdCBoYXZlIGJlY29tZSB1bmF2YWlsYWJsZS4KKyAqCisgKiAgNC4gSUNhbWVyYURldmljZS5jbG9zZSgpIGlzIGNhbGxlZCB0byBjbG9zZSBhIGNhbWVyYSBkZXZpY2UuIFRoZSBjYW1lcmEKKyAqICAgICAgcHJvdmlkZXIgSEFMIG11c3QgY2FsbCBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6dG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkKKyAqICAgICAgZm9yIGFsbCBmbGFzaCB1bml0cyB0aGF0IGhhdmUgbm93IGVudGVyZWQgdGhlIEFWQUlMQUJMRV9PRkYgc3RhdGUgYW5kCisgKiAgICAgIGNhbiBiZSB0dXJuZWQgb24gYnkgY2FsbGluZyBJQ2FtZXJhUHJvdmlkZXI6OnNldFRvcmNoTW9kZSgpIGFnYWluIGJlY2F1c2UKKyAqICAgICAgb2Ygc3VmZmljaWVudCBuZXcgY2FtZXJhIHJlc291cmNlcyBiZWluZyBmcmVlZCB1cCBieSB0aGlzIGNsb3NlKCkgY2FsbC4KKyAqCisgKiAgTm90ZSB0aGF0IHRoZSBjYW1lcmEgc2VydmljZSBjYWxsaW5nIElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkKKyAqICBzdWNjZXNzZnVsbHkgbXVzdCB0cmlnZ2VyIEFWQUlMQUJMRV9PRkYgb3IgQVZBSUxBQkxFX09OIGNhbGxiYWNrIGZvciB0aGUKKyAqICBnaXZlbiBjYW1lcmEgZGV2aWNlLiBBZGRpdGlvbmFsbHkgaXQgbXVzdCB0cmlnZ2VyIEFWQUlMQUJMRV9PRkYgY2FsbGJhY2tzCisgKiAgZm9yIG90aGVyIHByZXZpb3VzbHktb24gdG9yY2ggbW9kZXMgaWYgSEFMIGNhbm5vdCBrZWVwIG11bHRpcGxlIGRldmljZXMnCisgKiAgZmxhc2hsaWdodHMgb24gc2ltdWx0YW5lb3VzbHkuCisgKi8KK2VudW0gVG9yY2hNb2RlU3RhdHVzIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFRoZSBmbGFzaCB1bml0IGlzIG5vIGxvbmdlciBhdmFpbGFibGUgYW5kIHRoZSB0b3JjaCBtb2RlIGNhbiBub3QgYmUKKyAgICAgKiB0dXJuZWQgb24gYnkgY2FsbGluZyBzZXRUb3JjaE1vZGUoKS4gSWYgdGhlIHRvcmNoIG1vZGUgd2FzIEFWQUlMQUJMRV9PTiwKKyAgICAgKiB0aGUgZmxhc2hsaWdodCBtdXN0IGJlIHR1cm5lZCBvZmYgYnkgdGhlIHByb3ZpZGVyIEhBTCBiZWZvcmUgdGhlIHByb3ZpZGVyCisgICAgICogSEFMIGNhbGxzIHRvcmNoTW9kZVN0YXR1c0NoYW5nZSgpLgorICAgICAqLworICAgIE5PVF9BVkFJTEFCTEUgPSAwLAorCisgICAgLyoqCisgICAgICogQSB0b3JjaCBtb2RlIGhhcyBiZWNvbWUgb2ZmIGFuZCBpcyBhdmFpbGFibGUgdG8gYmUgdHVybmVkIG9uIHZpYQorICAgICAqIElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkuIFRoaXMgbWF5IGhhcHBlbiBpbiB0aGUgZm9sbG93aW5nCisgICAgICogY2FzZXM6CisgICAgICogICAxLiBBZnRlciB0aGUgcmVzb3VyY2VzIHRvIHR1cm4gb24gdGhlIHRvcmNoIG1vZGUgaGF2ZSBiZWNvbWUgYXZhaWxhYmxlLgorICAgICAqICAgMi4gQWZ0ZXIgSUNhbWVyYVByb3ZpZGVyOjpzZXRUb3JjaE1vZGUoKSBpcyBjYWxsZWQgdG8gdHVybiBvZmYgdGhlIHRvcmNoCisgICAgICogICAgICBtb2RlLgorICAgICAqICAgMy4gQWZ0ZXIgdGhlIGNhbWVyYSBzZXJ2aWNlIHR1cm5lZCBvbiB0aGUgdG9yY2ggbW9kZSBmb3Igc29tZSBvdGhlcgorICAgICAqICAgICAgY2FtZXJhIGRldmljZSBhbmQgdGhlIHByb3ZpZGVyIEhBTCBoYWQgdG8gdHVybiBvZmYgdGhlIHRvcmNoIG1vZGVzCisgICAgICogICAgICBvZiBvdGhlciBjYW1lcmEgZGV2aWNlKHMpIHRoYXQgd2VyZSBwcmV2aW91c2x5IG9uLCBkdWUgdG8gbGFjayBvZgorICAgICAqICAgICAgcmVzb3VyY2VzIHRvIGtlZXAgdGhlbSBhbGwgb24uCisgICAgICovCisgICAgQVZBSUxBQkxFX09GRiA9IDEsCisKKyAgICAvKioKKyAgICAgKiBBIHRvcmNoIG1vZGUgaGFzIGJlY29tZSBvbiBhbmQgaXMgYXZhaWxhYmxlIHRvIGJlIHR1cm5lZCBvZmYgdmlhCisgICAgICogSUNhbWVyYVByb3ZpZGVyOjpzZXRUb3JjaE1vZGUoKS4gVGhpcyBjYW4gaGFwcGVuIG9ubHkgYWZ0ZXIKKyAgICAgKiBJQ2FtZXJhUHJvdmlkZXI6OnNldFRvcmNoTW9kZSgpIGhhcyBiZWVuIGNhbGxlZCB0byB0dXJuIG9uIHRoZSB0b3JjaCBtb2RlLgorICAgICAqLworICAgIEFWQUlMQUJMRV9PTiA9IDIsCisKK307CisKKy8qKgorICogQ2FtZXJhUmVzb3VyY2VDb3N0OgorICoKKyAqIFN0cnVjdHVyZSBkZWZpbmluZyB0aGUgYWJzdHJhY3QgcmVzb3VyY2UgY29zdCBvZiBvcGVuaW5nIGEgY2FtZXJhIGRldmljZSwKKyAqIGFuZCBhbnkgdXNhZ2UgY29uZmxpY3RzIGJldHdlZW4gbXVsdGlwbGUgY2FtZXJhIGRldmljZXMuCisgKgorICogT2J0YWluYWJsZSB2aWEgSUNhbWVyYURldmljZTo6Z2V0UmVzb3VyY2VDb3N0KCkKKyAqLworc3RydWN0IENhbWVyYVJlc291cmNlQ29zdCB7CisgICAgLyoqCisgICAgICogVGhlIHRvdGFsIHJlc291cmNlICJjb3N0IiBvZiB1c2luZyB0aGlzIGNhbWVyYSwgcmVwcmVzZW50ZWQgYXMgYW4gaW50ZWdlcgorICAgICAqIHZhbHVlIGluIHRoZSByYW5nZSBbMCwgMTAwXSB3aGVyZSAxMDAgcmVwcmVzZW50cyB0b3RhbCB1c2FnZSBvZiB0aGUKKyAgICAgKiBzaGFyZWQgcmVzb3VyY2UgdGhhdCBpcyB0aGUgbGltaXRpbmcgYm90dGxlbmVjayBvZiB0aGUgY2FtZXJhIHN1YnN5c3RlbS4KKyAgICAgKiBUaGlzIG1heSBiZSBhIHZlcnkgcm91Z2ggZXN0aW1hdGUsIGFuZCBpcyB1c2VkIGFzIGEgaGludCB0byB0aGUgY2FtZXJhCisgICAgICogc2VydmljZSB0byBkZXRlcm1pbmUgd2hlbiB0byBkaXNhbGxvdyBtdWx0aXBsZSBhcHBsaWNhdGlvbnMgZnJvbQorICAgICAqIHNpbXVsdGFuZW91c2x5IG9wZW5pbmcgZGlmZmVyZW50IGNhbWVyYXMgYWR2ZXJ0aXNlZCBieSB0aGUgY2FtZXJhCisgICAgICogc2VydmljZS4KKyAgICAgKgorICAgICAqIFRoZSBjYW1lcmEgc2VydmljZSBtdXN0IGJlIGFibGUgdG8gc2ltdWx0YW5lb3VzbHkgb3BlbiBhbmQgdXNlIGFueQorICAgICAqIGNvbWJpbmF0aW9uIG9mIGNhbWVyYSBkZXZpY2VzIGV4cG9zZWQgYnkgdGhlIEhBTCB3aGVyZSB0aGUgc3VtIG9mCisgICAgICogdGhlIHJlc291cmNlIGNvc3RzIG9mIHRoZXNlIGNhbWVyYXMgaXMgPD0gMTAwLiBGb3IgZGV0ZXJtaW5pbmcgY29zdCwKKyAgICAgKiBlYWNoIGNhbWVyYSBkZXZpY2UgbXVzdCBiZSBhc3N1bWVkIHRvIGJlIGNvbmZpZ3VyZWQgYW5kIG9wZXJhdGluZyBhdAorICAgICAqIHRoZSBtYXhpbWFsbHkgcmVzb3VyY2UtY29uc3VtaW5nIGZyYW1lcmF0ZSBhbmQgc3RyZWFtIHNpemUgc2V0dGluZ3MKKyAgICAgKiBhdmFpbGFibGUgaW4gdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZXhwb3NlZCBmb3IgdGhhdCBkZXZpY2UgdGhyb3VnaAorICAgICAqIHRoZSBjYW1lcmEgbWV0YWRhdGEuCisgICAgICoKKyAgICAgKiBUaGUgY2FtZXJhIHNlcnZpY2UgbWF5IHN0aWxsIGF0dGVtcHQgdG8gc2ltdWx0YW5lb3VzbHkgb3BlbiBjb21iaW5hdGlvbnMKKyAgICAgKiBvZiBjYW1lcmEgZGV2aWNlcyB3aXRoIGEgdG90YWwgcmVzb3VyY2UgY29zdCA+IDEwMC4gVGhpcyBtYXkgc3VjY2VlZCBvcgorICAgICAqIGZhaWwuIElmIHRoaXMgc3VjY2VlZHMsIGNvbWJpbmF0aW9ucyBvZiBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBub3QKKyAgICAgKiBzdXBwb3J0ZWQgZHVlIHRvIHJlc291cmNlIGNvbnN0cmFpbnRzIGZyb20gaGF2aW5nIG11bHRpcGxlIG9wZW4gZGV2aWNlcworICAgICAqIG11c3QgZmFpbCBkdXJpbmcgdGhlIGNvbmZpZ3VyZSBjYWxscy4gSWYgdGhlIHRvdGFsIHJlc291cmNlIGNvc3QgaXMgPD0KKyAgICAgKiAxMDAsIG9wZW4gYW5kIGNvbmZpZ3VyZSBtdXN0IG5ldmVyIGZhaWwgZm9yIGFueSBzdHJlYW0gY29uZmlndXJhdGlvbgorICAgICAqIHNldHRpbmdzIG9yIG90aGVyIGRldmljZSBjYXBhYmlsaXRpZXMgdGhhdCB3b3VsZCBub3JtYWxseSBzdWNjZWVkIGZvciBhCisgICAgICogZGV2aWNlIHdoZW4gaXQgaXMgdGhlIG9ubHkgb3BlbiBjYW1lcmEgZGV2aWNlLgorICAgICAqCisgICAgICogVGhpcyBmaWVsZCBtYXkgYmUgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBiYWNrZ3JvdW5kIGFwcGxpY2F0aW9ucyBhcmUKKyAgICAgKiBhbGxvd2VkIHRvIHVzZSB0aGlzIGNhbWVyYSBkZXZpY2Ugd2hpbGUgb3RoZXIgYXBwbGljYXRpb25zIGFyZSB1c2luZworICAgICAqIG90aGVyIGNhbWVyYSBkZXZpY2VzLiBOb3RlOiBtdWx0aXBsZSBhcHBsaWNhdGlvbnMgbXVzdCBuZXZlciBiZSBhbGxvd2VkCisgICAgICogYnkgdGhlIGNhbWVyYSBzZXJ2aWNlIHRvIHNpbXVsdGFuZW91c2x5IG9wZW4gdGhlIHNhbWUgY2FtZXJhIGRldmljZS4KKyAgICAgKgorICAgICAqIEV4YW1wbGUgdXNlIGNhc2VzOgorICAgICAqCisgICAgICogRXguIDE6IENhbWVyYSBEZXZpY2UgMCA9IEJhY2sgQ2FtZXJhCisgICAgICogICAgICAgIENhbWVyYSBEZXZpY2UgMSA9IEZyb250IENhbWVyYQorICAgICAqICAgLSBVc2luZyBib3RoIGNhbWVyYSBkZXZpY2VzIGNhdXNlcyBhIGxhcmdlIGZyYW1lcmF0ZSBzbG93ZG93biBkdWUgdG8KKyAgICAgKiAgICAgbGltaXRlZCBJU1AgYmFuZHdpZHRoLgorICAgICAqCisgICAgICogICBDb25maWd1cmF0aW9uOgorICAgICAqCisgICAgICogICBDYW1lcmEgRGV2aWNlIDAgLSByZXNvdXJjZUNvc3QgPSA1MQorICAgICAqICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3RpbmdfZGV2aWNlcyA9IGVtcHR5CisgICAgICogICBDYW1lcmEgRGV2aWNlIDEgLSByZXNvdXJjZUNvc3QgPSA1MQorICAgICAqICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3RpbmdfZGV2aWNlcyA9IGVtcHR5CisgICAgICoKKyAgICAgKiAgIFJlc3VsdDoKKyAgICAgKgorICAgICAqICAgU2luY2UgdGhlIHN1bSBvZiB0aGUgcmVzb3VyY2UgY29zdHMgaXMgPiAxMDAsIGlmIGEgaGlnaGVyLXByaW9yaXR5CisgICAgICogICBhcHBsaWNhdGlvbiBoYXMgZWl0aGVyIGRldmljZSBvcGVuLCBubyBsb3dlci1wcmlvcml0eSBhcHBsaWNhdGlvbnMgbXVzdAorICAgICAqICAgYmUgYWxsb3dlZCBieSB0aGUgY2FtZXJhIHNlcnZpY2UgdG8gb3BlbiBlaXRoZXIgZGV2aWNlLiBJZiBhCisgICAgICogICBsb3dlci1wcmlvcml0eSBhcHBsaWNhdGlvbiBpcyB1c2luZyBhIGRldmljZSB0aGF0IGEgaGlnaGVyLXByaW9yaXR5CisgICAgICogICBzdWJzZXF1ZW50bHkgYXR0ZW1wdHMgdG8gb3BlbiwgdGhlIGxvd2VyLXByaW9yaXR5IGFwcGxpY2F0aW9uIG11c3QgYmUKKyAgICAgKiAgIGZvcmNlZCB0byBkaXNjb25uZWN0IHRoZSB0aGUgZGV2aWNlLgorICAgICAqCisgICAgICogICBJZiB0aGUgaGlnaGVzdC1wcmlvcml0eSBhcHBsaWNhdGlvbiBjaG9vc2VzLCBpdCBtYXkgc3RpbGwgYXR0ZW1wdCB0bworICAgICAqICAgb3BlbiBib3RoIGRldmljZXMgKHNpbmNlIHRoZXNlIGRldmljZXMgYXJlIG5vdCBsaXN0ZWQgYXMgY29uZmxpY3RpbmcgaW4KKyAgICAgKiAgIHRoZSBjb25mbGljdGluZ19kZXZpY2VzIGZpZWxkcyksIGJ1dCB1c2FnZSBvZiB0aGVzZSBkZXZpY2VzIG1heSBmYWlsIGluCisgICAgICogICB0aGUgb3BlbiBvciBjb25maWd1cmUgY2FsbHMuCisgICAgICoKKyAgICAgKiBFeC4gMjogQ2FtZXJhIERldmljZSAwID0gTGVmdCBCYWNrIENhbWVyYQorICAgICAqICAgICAgICBDYW1lcmEgRGV2aWNlIDEgPSBSaWdodCBCYWNrIENhbWVyYQorICAgICAqICAgICAgICBDYW1lcmEgRGV2aWNlIDIgPSBDb21iaW5lZCBzdGVyZW8gY2FtZXJhIHVzaW5nIGJvdGggcmlnaHQgYW5kIGxlZnQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjayBjYW1lcmEgc2Vuc29ycyB1c2VkIGJ5IGRldmljZXMgMCwgYW5kIDEKKyAgICAgKiAgICAgICAgQ2FtZXJhIERldmljZSAzID0gRnJvbnQgQ2FtZXJhCisgICAgICogICAtIER1ZSB0byBkbyBoYXJkd2FyZSBjb25zdHJhaW50cywgdXAgdG8gdHdvIGNhbWVyYXMgbWF5IGJlIG9wZW4gYXQKKyAgICAgKiAgICAgb25jZS4gVGhlIGNvbWJpbmVkIHN0ZXJlbyBjYW1lcmEgbWF5IG5ldmVyIGJlIHVzZWQgYXQgdGhlIHNhbWUgdGltZQorICAgICAqICAgICBhcyBlaXRoZXIgb2YgdGhlIHR3byBiYWNrIGNhbWVyYSBkZXZpY2VzIChkZXZpY2UgMCwgMSksIGFuZCB0eXBpY2FsbHkKKyAgICAgKiAgICAgcmVxdWlyZXMgdG9vIG11Y2ggYmFuZHdpZHRoIHRvIHVzZSBhdCB0aGUgc2FtZSB0aW1lIGFzIHRoZSBmcm9udAorICAgICAqICAgICBjYW1lcmEgKGRldmljZSAzKS4KKyAgICAgKgorICAgICAqICAgQ29uZmlndXJhdGlvbjoKKyAgICAgKgorICAgICAqICAgQ2FtZXJhIERldmljZSAwIC0gcmVzb3VyY2VDb3N0ID0gNTAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMgPSB7IDIgfQorICAgICAqICAgQ2FtZXJhIERldmljZSAxIC0gcmVzb3VyY2VDb3N0ID0gNTAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMgPSB7IDIgfQorICAgICAqICAgQ2FtZXJhIERldmljZSAyIC0gcmVzb3VyY2VDb3N0ID0gMTAwCisgICAgICogICAgICAgICAgICAgICAgICAgICBjb25mbGljdGluZ19kZXZpY2VzID0geyAwLCAxIH0KKyAgICAgKiAgIENhbWVyYSBEZXZpY2UgMyAtIHJlc291cmNlQ29zdCA9IDUwCisgICAgICogICAgICAgICAgICAgICAgICAgICBjb25mbGljdGluZ19kZXZpY2VzID0gZW1wdHkKKyAgICAgKgorICAgICAqICAgUmVzdWx0OgorICAgICAqCisgICAgICogICBCYXNlZCBvbiB0aGUgY29uZmxpY3RpbmdfZGV2aWNlcyBmaWVsZHMsIHRoZSBjYW1lcmEgc2VydmljZSBndWFyYW50ZWVzCisgICAgICogICB0aGF0IHRoZSBmb2xsb3dpbmcgc2V0cyBvZiBvcGVuIGRldmljZXMgbXVzdCBuZXZlciBiZSBhbGxvd2VkOiB7IDEsIDIKKyAgICAgKiAgIH0sIHsgMCwgMiB9LgorICAgICAqCisgICAgICogICBCYXNlZCBvbiB0aGUgcmVzb3VyY2VDb3N0IGZpZWxkcywgaWYgYSBoaWdoLXByaW9yaXR5IGZvcmVncm91bmQKKyAgICAgKiAgIGFwcGxpY2F0aW9uIGlzIHVzaW5nIGNhbWVyYSBkZXZpY2UgMCwgYSBiYWNrZ3JvdW5kIGFwcGxpY2F0aW9uIHdvdWxkIGJlCisgICAgICogICBhbGxvd2VkIHRvIG9wZW4gY2FtZXJhIGRldmljZSAxIG9yIDMgKGJ1dCB3b3VsZCBiZSBmb3JjZWQgdG8gZGlzY29ubmVjdAorICAgICAqICAgaXQgYWdhaW4gaWYgdGhlIGZvcmVncm91bmQgYXBwbGljYXRpb24gb3BlbmVkIGFub3RoZXIgZGV2aWNlKS4KKyAgICAgKgorICAgICAqICAgVGhlIGhpZ2hlc3QgcHJpb3JpdHkgYXBwbGljYXRpb24gbWF5IHN0aWxsIGF0dGVtcHQgdG8gc2ltdWx0YW5lb3VzbHkKKyAgICAgKiAgIG9wZW4gZGV2aWNlcyAwLCAyLCBhbmQgMywgYnV0IHRoZSBIQUwgbWF5IGZhaWwgaW4gb3BlbiBvciBjb25maWd1cmUKKyAgICAgKiAgIGNhbGxzIGZvciB0aGlzIGNvbWJpbmF0aW9uLgorICAgICAqCisgICAgICogRXguIDM6IENhbWVyYSBEZXZpY2UgMCA9IEJhY2sgQ2FtZXJhCisgICAgICogICAgICAgIENhbWVyYSBEZXZpY2UgMSA9IEZyb250IENhbWVyYQorICAgICAqICAgICAgICBDYW1lcmEgRGV2aWNlIDIgPSBMb3ctcG93ZXIgRnJvbnQgQ2FtZXJhIHRoYXQgdXNlcyB0aGUgc2FtZSBzZW5zb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgZGV2aWNlIDEsIGJ1dCBvbmx5IGV4cG9zZXMgaW1hZ2Ugc3RyZWFtCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdXRpb25zIHRoYXQgY2FuIGJlIHVzZWQgaW4gbG93LXBvd2VyIG1vZGUKKyAgICAgKiAgLSBVc2luZyBib3RoIGZyb250IGNhbWVyYXMgKGRldmljZSAxLCAyKSBhdCB0aGUgc2FtZSB0aW1lIGlzIGltcG9zc2libGUKKyAgICAgKiAgICBkdWUgYSBzaGFyZWQgcGh5c2ljYWwgc2Vuc29yLiBVc2luZyB0aGUgYmFjayBhbmQgImhpZ2gtcG93ZXIiIGZyb250CisgICAgICogICAgY2FtZXJhIChkZXZpY2UgMSkgbWF5IGJlIGltcG9zc2libGUgZm9yIHNvbWUgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGR1ZQorICAgICAqICAgIHRvIGhhcmR3YXJlIGxpbWl0YXRpb25zLCBidXQgdGhlICJsb3ctcG93ZXIiIGZyb250IGNhbWVyYSBvcHRpb24gbWF5CisgICAgICogICAgYWx3YXlzIGJlIHVzZWQgYXMgaXQgaGFzIHNwZWNpYWwgZGVkaWNhdGVkIGhhcmR3YXJlLgorICAgICAqCisgICAgICogICBDb25maWd1cmF0aW9uOgorICAgICAqCisgICAgICogICBDYW1lcmEgRGV2aWNlIDAgLSByZXNvdXJjZUNvc3QgPSAxMDAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMgPSBlbXB0eQorICAgICAqICAgQ2FtZXJhIERldmljZSAxIC0gcmVzb3VyY2VDb3N0ID0gMTAwCisgICAgICogICAgICAgICAgICAgICAgICAgICBjb25mbGljdGluZ19kZXZpY2VzID0geyAyIH0KKyAgICAgKiAgIENhbWVyYSBEZXZpY2UgMiAtIHJlc291cmNlQ29zdCA9IDAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMgPSB7IDEgfQorICAgICAqICAgUmVzdWx0OgorICAgICAqCisgICAgICogICBCYXNlZCBvbiB0aGUgY29uZmxpY3RpbmdfZGV2aWNlcyBmaWVsZHMsIHRoZSBjYW1lcmEgc2VydmljZSBndWFyYW50ZWVzCisgICAgICogICB0aGF0IHRoZSBmb2xsb3dpbmcgc2V0cyBvZiBvcGVuIGRldmljZXMgbXVzdCBuZXZlciBiZSBhbGxvd2VkOgorICAgICAqICAgeyAxLCAyIH0uCisgICAgICoKKyAgICAgKiAgIEJhc2VkIG9uIHRoZSByZXNvdXJjZUNvc3QgZmllbGRzLCBvbmx5IHRoZSBoaWdoZXN0IHByaW9yaXR5IGFwcGxpY2F0aW9uCisgICAgICogICBtYXkgYXR0ZW1wdCB0byBvcGVuIGJvdGggZGV2aWNlIDAgYW5kIDEgYXQgdGhlIHNhbWUgdGltZS4gSWYgYQorICAgICAqICAgaGlnaGVyLXByaW9yaXR5IGFwcGxpY2F0aW9uIGlzIG5vdCB1c2luZyBkZXZpY2UgMSBvciAyLCBhIGxvdy1wcmlvcml0eQorICAgICAqICAgYmFja2dyb3VuZCBhcHBsaWNhdGlvbiBtYXkgb3BlbiBkZXZpY2UgMiAoYnV0IG11c3QgYmUgZm9yY2VkIHRvCisgICAgICogICBkaXNjb25uZWN0IGl0IGlmIGEgaGlnaGVyLXByaW9yaXR5IGFwcGxpY2F0aW9uIHN1YnNlcXVlbnRseSBvcGVucworICAgICAqICAgZGV2aWNlIDEgb3IgMikuCisgICAgICovCisgICAgdWludDMyX3QgcmVzb3VyY2VDb3N0OworCisgICAgLyoqCisgICAgICogQW4gYXJyYXkgb2YgY2FtZXJhIGRldmljZSBJRHMgaW5kaWNhdGluZyBvdGhlciBkZXZpY2VzIHRoYXQgY2Fubm90IGJlCisgICAgICogc2ltdWx0YW5lb3VzbHkgb3BlbmVkIHdoaWxlIHRoaXMgY2FtZXJhIGRldmljZSBpcyBpbiB1c2UuCisgICAgICoKKyAgICAgKiBUaGlzIGZpZWxkIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCB0aGlzIGNhbWVyYSBkZXZpY2UKKyAgICAgKiBpcyBhIGNvbXBvc2l0ZSBvZiBzZXZlcmFsIG90aGVyIGNhbWVyYSBkZXZpY2VzLCBvciBvdGhlcndpc2UgaGFzCisgICAgICogaGFyZHdhcmUgZGVwZW5kZW5jaWVzIHRoYXQgcHJvaGliaXQgc2ltdWx0YW5lb3VzIHVzYWdlLiBJZiB0aGVyZSBhcmUgbm8KKyAgICAgKiBkZXBlbmRlbmNpZXMsIGFuIGVtcHR5IGxpc3QgbWF5IGJlIHJldHVybmVkIHRvIGluZGljYXRlIHRoaXMuCisgICAgICoKKyAgICAgKiBUaGUgY2FtZXJhIHNlcnZpY2UgbXVzdCBuZXZlciBzaW11bHRhbmVvdXNseSBvcGVuIGFueSBvZiB0aGUgZGV2aWNlcworICAgICAqIGluIHRoaXMgbGlzdCB3aGlsZSB0aGlzIGNhbWVyYSBkZXZpY2UgaXMgb3Blbi4KKyAgICAgKgorICAgICAqLworICAgIHZlYzxzdHJpbmc+IGNvbmZsaWN0aW5nRGV2aWNlczsKKworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vUkVBRE1FLm1kIGIvY2FtZXJhL2NvbW1vbi9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE3N2FkOAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vUkVBRE1FLm1kCkBAIC0wLDAgKzEsMjEgQEAKKyMjIENhbWVyYSBjb21tb24gSEFMIGRlZmluaXRpb25zICMjCistLS0KKworIyMgT3ZlcnZpZXc6ICMjCisKK1RoZSBjYW1lcmEuY29tbW9uIG5hbWVzYXBjZSBpcyB1c2VkIGJ5IHRoZSBBbmRyb2lkIGNhbWVyYSBIQUxzIGZvciBjb21tb24KK2VudW1lcmF0aW9uIGFuZCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCisKK1RoaXMgaW5jbHVkZXMgc3RhbmRhcmQgc3RhdHVzIGNvZGVzIHJldHVybmVkIGJ5IG1vc3QgY2FtZXJhIEhBTCBtZXRob2RzLgorCitNb3JlIGNvbXBsZXRlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBBbmRyb2lkIGNhbWVyYSBIQUwgYW5kIHN1YnN5c3RlbSBjYW4gYmUgZm91bmQgYXQKK1tzb3VyY2UuYW5kcm9pZC5jb21dKGh0dHA6Ly9zb3VyY2UuYW5kcm9pZC5jb20vZGV2aWNlcy9jYW1lcmEvaW5kZXguaHRtbCkuCisKKyMjIFZlcnNpb24gaGlzdG9yeTogIyMKKworIyMgdHlwZXMuaGFsOiAjIworCisjIyMgQDEuMDoKKworQ29tbW9uIGVudW0gYW5kIHN0cnVjdCBkZWZpbml0aW9ucyBmb3IgYWxsIGNhbWVyYSBIQUwgaW50ZXJmYWNlcy4gRG9lcyBub3QKK2RlZmluZSBhbnkgaW50ZXJmYWNlcyBvZiBpdHMgb3duLgpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8xLjAvQW5kcm9pZC5icCBiL2NhbWVyYS9kZXZpY2UvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VmNDBjOAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw4MSBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklDYW1lcmFEZXZpY2UuaGFsIiwKKyAgICAgICAgIklDYW1lcmFEZXZpY2VDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9DYW1lcmFEZXZpY2VBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQ2FtZXJhRGV2aWNlQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0lId0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQm5Id0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQnBId0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQnNDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvSUh3Q2FtZXJhRGV2aWNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0JuSHdDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQnBId0NhbWVyYURldmljZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9Cc0NhbWVyYURldmljZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9JQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9JSHdDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0JuSHdDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0JwSHdDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0JzQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZS5oYWwgYi9jYW1lcmEvZGV2aWNlLzEuMC9JQ2FtZXJhRGV2aWNlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGFhOGNjCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZS5oYWwKQEAgLTAsMCArMSw0MTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlczsKK2ltcG9ydCBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s7CitpbXBvcnQgSUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjazsKKworLyoqCisgKiBDYW1lcmEgZGV2aWNlIEhBTCwgbGVnYWN5IHZlcnNpb24KKyAqCisgKiBERVBSRUNBVEVELiBOZXcgZGV2aWNlcyBhcmUgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gdXNlIENhbWVyYSBIQUwgdjMuMiBvcgorICogbmV3ZXIuCisgKgorICogU3VwcG9ydHMgdGhlIGFuZHJvaWQuaGFyZHdhcmUuQ2FtZXJhIEFQSSwgYW5kIHRoZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIKKyAqIEFQSSBpbiBMRUdBQ1kgbW9kZSBvbmx5LgorICoKKyAqIFdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgQW5kcm9pZCBQIHJlbGVhc2UuCisgKi8KK2ludGVyZmFjZSBJQ2FtZXJhRGV2aWNlIHsKKworICAgIC8qKgorICAgICAqIEdldCBjYW1lcmEgZGV2aWNlIHJlc291cmNlIGNvc3QgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGF0IGFueSB0aW1lLCBpbmNsdWRpbmcgYmVmb3JlIG9wZW4oKQorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBzdWNjZXNzLgorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwgY2FtZXJhIEhBTCBlcnJvciBvY2N1cnJlZCwgYW5kIHRoZQorICAgICAqICAgICAgICAgcmVzb3VyY2UgY29zdCBpcyBub3QgYXZhaWxhYmxlLgorICAgICAqICAgICBDQU1FUkFfRElTQ09OTkVDVEVEOgorICAgICAqICAgICAgICAgQW4gZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIGFuZCBpcyBubyBsb25nZXIKKyAgICAgKiAgICAgICAgIGF2YWlsYWJsZS4gVGhpcyBjYW1lcmEgZGV2aWNlIGludGVyZmFjZSBpcyBub3cgc3RhbGUsIGFuZCBhIG5ldworICAgICAqICAgICAgICAgaW5zdGFuY2UgbXVzdCBiZSBhY3F1aXJlZCBpZiB0aGUgZGV2aWNlIGlzIHJlY29ubmVjdGVkLiBBbGwKKyAgICAgKiAgICAgICAgIHN1YnNlcXVlbnQgY2FsbHMgb24gdGhpcyBpbnRlcmZhY2UgbXVzdCByZXR1cm4KKyAgICAgKiAgICAgICAgIENBTUVSQV9ESVNDT05ORUNURUQuCisgICAgICogQHJldHVybiByZXNvdXJjZUNvc3QKKyAgICAgKiAgICAgVGhlIHJlc291cmNlcyByZXF1aXJlZCB0byBvcGVuIHRoaXMgY2FtZXJhIGRldmljZSwgb3IgdW5zcGVjaWZpZWQKKyAgICAgKiAgICAgdmFsdWVzIGlmIHN0YXR1cyBpcyBub3QgT0suCisgICAgICovCisgICAgZ2V0UmVzb3VyY2VDb3N0KCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBDYW1lcmFSZXNvdXJjZUNvc3QgcmVzb3VyY2VDb3N0KTsKKworICAgIC8qKgorICAgICAqIEdldCBiYXNpYyBjYW1lcmEgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGF0IGFueSB0aW1lLCBpbmNsdWRpbmcgYmVmb3JlIG9wZW4oKQorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBzdWNjZXNzLgorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwgY2FtZXJhIEhBTCBlcnJvciBvY2N1cnJlZCwgYW5kIHRoZQorICAgICAqICAgICAgICAgY2FtZXJhIGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBBbiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgYW5kIGlzIG5vIGxvbmdlcgorICAgICAqICAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3CisgICAgICogICAgICAgICBpbnN0YW5jZSBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbAorICAgICAqICAgICAgICAgc3Vic2VxdWVudCBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybgorICAgICAqICAgICAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRC4KKyAgICAgKiBAcmV0dXJuIGluZm8gQmFzaWMgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBjYW1lcmEgZGV2aWNlLCBvciB1bnNwZWNpZmllZAorICAgICAqICAgICB2YWx1ZXMgaWYgc3RhdHVzIGlzIG5vdCBPSy4KKyAgICAgKi8KKyAgICBnZXRDYW1lcmFJbmZvKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBDYW1lcmFJbmZvIGluZm8pOworCisgICAgLyoqCisgICAgICogc2V0VG9yY2hNb2RlOgorICAgICAqCisgICAgICogVHVybiBvbiBvciBvZmYgdGhlIHRvcmNoIG1vZGUgb2YgdGhlIGZsYXNoIHVuaXQgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4KKyAgICAgKiBjYW1lcmEgSUQuIElmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bCwgSEFMIG11c3Qgbm90aWZ5IHRoZSBmcmFtZXdvcmsKKyAgICAgKiB0b3JjaCBzdGF0ZSBieSBpbnZva2luZworICAgICAqIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjp0b3JjaE1vZGVTdGF0dXNDaGFuZ2UoKSB3aXRoIHRoZSBuZXcgc3RhdGUuCisgICAgICoKKyAgICAgKiBUaGUgY2FtZXJhIGRldmljZSBoYXMgYSBoaWdoZXIgcHJpb3JpdHkgYWNjZXNzaW5nIHRoZSBmbGFzaCB1bml0LiBXaGVuCisgICAgICogdGhlcmUgYXJlIGFueSByZXNvdXJjZSBjb25mbGljdHMsIHN1Y2ggYXMgd2hlbiBvcGVuKCkgaXMgY2FsbGVkIHRvIGZ1bGx5CisgICAgICogYWN0aXZhdGUgYSBjYW1lcmEgZGV2aWNlLCB0aGUgcHJvdmlkZXIgbXVzdCBub3RpZnkgdGhlIGZyYW1ld29yayB0aHJvdWdoCisgICAgICogSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s6OnRvcmNoTW9kZVN0YXR1c0NoYW5nZSgpIHRoYXQgdGhlIHRvcmNoIG1vZGUgaGFzCisgICAgICogYmVlbiB0dXJuZWQgb2ZmIGFuZCB0aGUgdG9yY2ggbW9kZSBzdGF0ZSBoYXMgYmVjb21lCisgICAgICogVE9SQ0hfTU9ERV9TVEFUVVNfTk9UX0FWQUlMQUJMRS4gV2hlbiByZXNvdXJjZXMgdG8gdHVybiBvbiB0b3JjaCBtb2RlCisgICAgICogYmVjb21lIGF2YWlsYWJsZSBhZ2FpbiwgdGhlIHByb3ZpZGVyIG11c3Qgbm90aWZ5IHRoZSBmcmFtZXdvcmsgdGhyb3VnaAorICAgICAqIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjp0b3JjaE1vZGVTdGF0dXNDaGFuZ2UoKSB0aGF0IHRoZSB0b3JjaCBtb2RlCisgICAgICogc3RhdGUgaGFzIGJlY29tZSBUT1JDSF9NT0RFX1NUQVRVU19BVkFJTEFCTEVfT0ZGIGZvciBzZXRfdG9yY2hfbW9kZSgpIHRvCisgICAgICogYmUgY2FsbGVkLgorICAgICAqCisgICAgICogV2hlbiB0aGUgZnJhbWV3b3JrIGNhbGxzIHNldFRvcmNoTW9kZSgpIHRvIHR1cm4gb24gdGhlIHRvcmNoIG1vZGUgb2YgYQorICAgICAqIGZsYXNoIHVuaXQsIGlmIEhBTCBjYW5ub3Qga2VlcCBtdWx0aXBsZSB0b3JjaCBtb2RlcyBvbiBzaW11bHRhbmVvdXNseSwKKyAgICAgKiBIQUwgbXVzdCB0dXJuIG9mZiB0aGUgdG9yY2ggbW9kZSB0aGF0IHdhcyB0dXJuZWQgb24gYnkKKyAgICAgKiBhIHByZXZpb3VzIHNldFRvcmNoTW9kZSgpIGNhbGwgYW5kIG5vdGlmeSB0aGUgZnJhbWV3b3JrIHRoYXQgdGhlIHRvcmNoCisgICAgICogbW9kZSBzdGF0ZSBvZiB0aGF0IGZsYXNoIHVuaXQgaGFzIGJlY29tZSBUT1JDSF9NT0RFX1NUQVRVU19BVkFJTEFCTEVfT0ZGLgorICAgICAqCisgICAgICogQHBhcmFtIHRvcmNoTW9kZSBUaGUgbmV3IG1vZGUgdG8gc2V0IHRoZSBkZXZpY2UgZmxhc2ggdW5pdCB0by4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNzZnVsIGNoYW5nZSB0byB0aGUgdG9yY2ggc3RhdGUuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgVGhlIGZsYXNoIHVuaXQgY2Fubm90IGJlIG9wZXJhdGVkIGR1ZSB0byBhbiB1bmV4cGVjdGVkIGludGVybmFsCisgICAgICogICAgICAgICBlcnJvci4KKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDoKKyAgICAgKiAgICAgICAgIFRoZSBjYW1lcmEgSUQgaXMgdW5rbm93bi4KKyAgICAgKiAgICAgQ0FNRVJBX0lOX1VTRToKKyAgICAgKiAgICAgICAgIFRoaXMgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBvcGVuZWQsIHNvIHRoZSB0b3JjaCBjYW5ub3QgYmUKKyAgICAgKiAgICAgICAgIGNvbnRyb2xsZWQgdW50aWwgaXQgaXMgY2xvc2VkLgorICAgICAqICAgICBNQVhfQ0FNRVJBU19JTl9VU0U6CisgICAgICogICAgICAgICBEdWUgdG8gb3RoZXIgY2FtZXJhIGRldmljZXMgYmVpbmcgb3Blbiwgb3IgZHVlIHRvIG90aGVyCisgICAgICogICAgICAgICByZXNvdXJjZSBjb25zdHJhaW50cywgdGhlIHRvcmNoIGNhbm5vdCBiZSBjb250cm9sbGVkIGN1cnJlbnRseS4KKyAgICAgKiAgICAgTUVUSE9EX05PVF9TVVBQT1JURUQ6CisgICAgICogICAgICAgICBUaGlzIHByb3ZpZGVyIGRvZXMgbm90IHN1cHBvcnQgZGlyZWN0IG9wZXJhdGlvbiBvZiBmbGFzaGxpZ2h0CisgICAgICogICAgICAgICB0b3JjaCBtb2RlLiBUaGUgZnJhbWV3b3JrIG11c3Qgb3BlbiB0aGUgY2FtZXJhIGRldmljZSBhbmQgdHVybgorICAgICAqICAgICAgICAgdGhlIHRvcmNoIG9uIHRocm91Z2ggdGhlIGRldmljZSBpbnRlcmZhY2UuCisgICAgICogICAgIE9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOgorICAgICAqICAgICAgICAgVGhpcyBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IGhhdmUgYSBmbGFzaCB1bml0LiBUaGlzIG11c3QKKyAgICAgKiAgICAgICAgIGJlIHJldHVybmVkIGlmIGFuZCBvbmx5IGlmIHBhcmFtZXRlciBrZXkgZmxhc2gtbW9kZS12YWx1ZXMgaXMgbm90IHByZXNlbnQuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBBbiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgYW5kIGlzIG5vIGxvbmdlcgorICAgICAqICAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3CisgICAgICogICAgICAgICBpbnN0YW5jZSBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbAorICAgICAqICAgICAgICAgc3Vic2VxdWVudCBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybgorICAgICAqICAgICAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRC4KKyAgICAgKgorICAgICAqLworICAgIHNldFRvcmNoTW9kZShUb3JjaE1vZGUgbW9kZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIER1bXAgc3RhdGUgb2YgdGhlIGNhbWVyYSBoYXJkd2FyZS4KKyAgICAgKgorICAgICAqIFRoaXMgbXVzdCBiZSBjYWxsYWJsZSBhdCBhbnkgdGltZSwgd2hldGhlciB0aGUgZGV2aWNlIGlzIG9wZW4gb3Igbm90LgorICAgICAqCisgICAgICogQHBhcmFtIGZkIEEgbmF0aXZlIGhhbmRsZSB3aXRoIG9uZSB2YWxpZCBmaWxlIGRlc2NyaXB0b3IuIFRoZSBkZXNjcmlwdG9yCisgICAgICogICAgIG11c3QgYmUgYWJsZSB0byBiZSB1c2VkIHdpdGggZHByaW50ZigpIG9yIGVxdWl2YWxlbnQgdG8gZHVtcCB0aGUKKyAgICAgKiAgICAgc3RhdGUgb2YgdGhpcyBjYW1lcmEgZGV2aWNlIGludG8gdGhlIGNhbWVyYSBzZXJ2aWNlIGR1bXBzeXMgb3V0cHV0LgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBkdW1wU3RhdGUoaGFuZGxlIGZkKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogT3BlbiB0aGUgY2FtZXJhIGRldmljZSBmb3IgYWN0aXZlIHVzZS4KKyAgICAgKgorICAgICAqIEFsbCBtZXRob2RzIGJlc2lkZXMgZ2V0UmVzb3VyY2VDb3N0KCksIGdldENhbWVyYUluZm8oKSwgc2V0VG9yY2hNb2RlKCksCisgICAgICogYW5kIGR1bXAoKSBtdXN0IG5vdCBiZSBjYWxsZWQgdW5sZXNzIG9wZW4oKSBoYXMgYmVlbiBjYWxsZWQgc3VjY2Vzc2Z1bGx5LAorICAgICAqIGFuZCBjbG9zZSgpIGhhcyBub3QgeWV0IGJlZW4gY2FsbGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIEludGVyZmFjZSB0byBpbnZva2UgYnkgdGhlIEhBTCBmb3IgZGV2aWNlIGNhbGxiYWNrcy4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2Vzc2Z1bCBvcGVuIG9mIHRoZSBjYW1lcmEgZGV2aWNlLgorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIFRoZSBjYW1lcmEgZGV2aWNlIGNhbm5vdCBiZSBvcGVuZWQgZHVlIHRvIGFuIGludGVybmFsCisgICAgICogICAgICAgICBlcnJvci4KKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDoKKyAgICAgKiAgICAgICAgIFRoZSBjYWxsYmFjayBoYW5kbGUgaXMgaW52YWxpZCAoZm9yIGV4YW1wbGUsIGl0IGlzIG51bGwpLgorICAgICAqICAgICBDQU1FUkFfSU5fVVNFOgorICAgICAqICAgICAgICAgVGhpcyBjYW1lcmEgZGV2aWNlIGlzIGFscmVhZHkgb3Blbi4KKyAgICAgKiAgICAgTUFYX0NBTUVSQVNfSU5fVVNFOgorICAgICAqICAgICAgICAgVGhlIG1heGltYWwgbnVtYmVyIG9mIGNhbWVyYSBkZXZpY2VzIHRoYXQgY2FuIGJlCisgICAgICogICAgICAgICBvcGVuZWQgY29uY3VycmVudGx5IHdlcmUgb3BlbmVkIGFscmVhZHkuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBUaGlzIGV4dGVybmFsIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBhbmQgaXMgbm8KKyAgICAgKiAgICAgICAgIGxvbmdlciBhdmFpbGFibGUuIFRoaXMgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3IGluc3RhbmNlCisgICAgICogICAgICAgICBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbCBzdWJzZXF1ZW50CisgICAgICogICAgICAgICBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybiBDQU1FUkFfRElTQ09OTkVDVEVELgorICAgICAqLworICAgIG9wZW4oSUNhbWVyYURldmljZUNhbGxiYWNrIGNhbGxiYWNrKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisKKyAgICAvKioqKioKKyAgICAgKiBBbGwgbWV0aG9kcyBiZWxvdyB0aGlzIHBvaW50IG11c3Qgb25seSBiZSBjYWxsZWQgYmV0d2VlbiBhIHN1Y2Nlc3NmdWwKKyAgICAgKiBvcGVuKCkgY2FsbCBhbmQgYSBjbG9zZSgpIGNhbGwuCisgICAgICovCisKKyAgICAvKiogU2V0IHRoZSBjYWxsYmFjayBpbnRlcmZhY2UgdGhyb3VnaCB3aGljaCBwcmV2aWV3IGZyYW1lcyBhcmUgc2VudCAqLworICAgIHNldFByZXZpZXdXaW5kb3coSUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjayB3aW5kb3cpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogRW5hYmxlIGEgbWVzc2FnZSwgb3Igc2V0IG9mIG1lc3NhZ2VzLgorICAgICAqCisgICAgICogQHBhcmFtIG1zZ1R5cGUgVGhlIGJpdGZpZWxkIG9mIG1lc3NhZ2VzIHRvIGVuYWJsZS4KKyAgICAgKi8KKyAgICBlbmFibGVNc2dUeXBlKEZyYW1lQ2FsbGJhY2tGbGFncyBtc2dUeXBlKTsKKworICAgIC8qKgorICAgICAqIERpc2FibGUgYSBtZXNzYWdlLCBvciBhIHNldCBvZiBtZXNzYWdlcy4KKyAgICAgKgorICAgICAqIE9uY2UgcmVjZWl2ZWQgYSBjYWxsIHRvIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLCBjYW1lcmEKKyAgICAgKiBIQUwgbXVzdCBub3QgcmVseSBvbiBpdHMgY2xpZW50IHRvIGNhbGwgcmVsZWFzZVJlY29yZGluZ0ZyYW1lKCkgdG8KKyAgICAgKiByZWxlYXNlIHZpZGVvIHJlY29yZGluZyBmcmFtZXMgc2VudCBvdXQgYnkgdGhlIGNhbWVyYWwgSEFMIGJlZm9yZSBhbmQKKyAgICAgKiBhZnRlciB0aGUgZGlzYWJsZU1zZ1R5cGUoQ0FNRVJBX01TR19WSURFT19GUkFNRSkgY2FsbC4gQ2FtZXJhIEhBTAorICAgICAqIGNsaWVudHMgbXVzdCBub3QgbW9kaWZ5L2FjY2VzcyBhbnkgdmlkZW8gcmVjb3JkaW5nIGZyYW1lIGFmdGVyIGNhbGxpbmcKKyAgICAgKiBkaXNhYmxlTXNnVHlwZShDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtc2dUeXBlIFRoZSBiaXRmaWVsZCBvZiBtZXNzYWdlcyB0byBkaXNhYmxlLgorICAgICAqLworICAgIGRpc2FibGVNc2dUeXBlKEZyYW1lQ2FsbGJhY2tGbGFncyBtc2dUeXBlKTsKKworICAgIC8qKgorICAgICAqIFF1ZXJ5IHdoZXRoZXIgYSBtZXNzYWdlLCBvciBhIHNldCBvZiBtZXNzYWdlcywgaXMgZW5hYmxlZC4gTm90ZSB0aGF0CisgICAgICogdGhpcyBpcyBvcGVyYXRlcyBhcyBhbiBBTkQsIGlmIGFueSBvZiB0aGUgbWVzc2FnZXMgcXVlcmllZCBhcmUgb2ZmLCB0aGlzCisgICAgICogbXVzdCByZXR1cm4gZmFsc2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXNnVHlwZSBUaGUgYml0ZmllbGQgb2YgbWVzc2FnZXMgdG8gcXVlcnkuCisgICAgICogQHJldHVybiBlbmFibGVkIFdoZXRoZXIgYWxsIHRoZSBzcGVjaWZpZWQgZmxhZ3MgYXJlIGVuYWJsZWQuCisgICAgICovCisgICAgbXNnVHlwZUVuYWJsZWQoRnJhbWVDYWxsYmFja0ZsYWdzIG1zZ1R5cGUpIGdlbmVyYXRlcyAoYm9vbCBlbmFibGVkKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0IHByZXZpZXcgbW9kZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgc3RhcnRQcmV2aWV3KCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFN0b3AgYSBwcmV2aW91c2x5IHN0YXJ0ZWQgcHJldmlldy4KKyAgICAgKi8KKyAgICBzdG9wUHJldmlldygpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHByZXZpZXcgaXMgZW5hYmxlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZW5hYmxlZCBXaGV0aGVyIHByZXZpZXcgaXMgY3VycmVudGx5IGVuYWJsZWQuCisgICAgICovCisgICAgcHJldmlld0VuYWJsZWQoKSBnZW5lcmF0ZXMgKGJvb2wgZW5hYmxlZCk7CisKKyAgICAvKioKKyAgICAgKiBSZXF1ZXN0IHRoZSBjYW1lcmEgSEFMIHRvIHN0b3JlIG1ldGEgZGF0YSBvciByZWFsIFlVViBkYXRhIGluIHRoZSB2aWRlbworICAgICAqIGJ1ZmZlcnMgc2VudCBvdXQgdmlhIENBTUVSQV9NU0dfVklERU9fRlJBTUUgZm9yIGEgcmVjb3JkaW5nIHNlc3Npb24uIElmCisgICAgICogaXQgaXMgbm90IGNhbGxlZCwgdGhlIGRlZmF1bHQgY2FtZXJhIEhBTCBiZWhhdmlvciBpcyB0byBzdG9yZSByZWFsIFlVVgorICAgICAqIGRhdGEgaW4gdGhlIHZpZGVvIGJ1ZmZlcnMuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgc3RhcnRSZWNvcmRpbmcoKSBpbiBvcmRlciB0byBiZQorICAgICAqIGVmZmVjdGl2ZS4KKyAgICAgKgorICAgICAqIElmIG1ldGEgZGF0YSBpcyBzdG9yZWQgaW4gdGhlIHZpZGVvIGJ1ZmZlcnMsIGl0IGlzIHVwIHRvIHRoZSByZWNlaXZlciBvZgorICAgICAqIHRoZSB2aWRlbyBidWZmZXJzIHRvIGludGVycHJldCB0aGUgY29udGVudHMgYW5kIHRvIGZpbmQgdGhlIGFjdHVhbCBmcmFtZQorICAgICAqIGRhdGEgd2l0aCB0aGUgaGVscCBvZiB0aGUgbWV0YSBkYXRhIGluIHRoZSBidWZmZXIuIEhvdyB0aGlzIGlzIGRvbmUgaXMKKyAgICAgKiBvdXRzaWRlIG9mIHRoZSBzY29wZSBvZiB0aGlzIG1ldGhvZC4KKyAgICAgKgorICAgICAqIFNvbWUgY2FtZXJhIEhBTHMgbWF5IG5vdCBzdXBwb3J0IHN0b3JpbmcgbWV0YSBkYXRhIGluIHRoZSB2aWRlbyBidWZmZXJzLAorICAgICAqIGJ1dCBhbGwgY2FtZXJhIEhBTHMgbXVzdCBzdXBwb3J0IHN0b3JpbmcgcmVhbCBZVVYgZGF0YSBpbiB0aGUgdmlkZW8KKyAgICAgKiBidWZmZXJzLiBJZiB0aGUgY2FtZXJhIEhBTCBkb2VzIG5vdCBzdXBwb3J0IHN0b3JpbmcgdGhlIG1ldGEgZGF0YSBpbiB0aGUKKyAgICAgKiB2aWRlbyBidWZmZXJzIHdoZW4gaXQgaXMgcmVxdWVzdGVkIHRvIGRvIGRvLCBJTlZBTElEX09QRVJBVElPTiBtdXN0IGJlCisgICAgICogcmV0dXJuZWQuIEl0IGlzIHZlcnkgdXNlZnVsIGZvciB0aGUgY2FtZXJhIEhBTCB0byBwYXNzIG1ldGEgZGF0YSByYXRoZXIKKyAgICAgKiB0aGFuIHRoZSBhY3R1YWwgZnJhbWUgZGF0YSBkaXJlY3RseSB0byB0aGUgdmlkZW8gZW5jb2Rlciwgc2luY2UgdGhlCisgICAgICogYW1vdW50IG9mIHRoZSB1bmNvbXByZXNzZWQgZnJhbWUgZGF0YSBjYW4gYmUgdmVyeSBsYXJnZSBpZiB2aWRlbyBzaXplIGlzCisgICAgICogbGFyZ2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZW5hYmxlIFNldCB0byB0cnVlIHRvIGluc3RydWN0IHRoZSBjYW1lcmEgSEFMIHRvIHN0b3JlIG1ldGEgZGF0YQorICAgICAqICAgICBpbiB0aGUgdmlkZW8gYnVmZmVyczsgZmFsc2UgdG8gaW5zdHJ1Y3QgdGhlIGNhbWVyYSBIQUwgdG8gc3RvcmUgcmVhbAorICAgICAqICAgICBZVVYgZGF0YSBpbiB0aGUgdmlkZW8gYnVmZmVycy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIE9LIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgc3RvcmVNZXRhRGF0YUluQnVmZmVycyhib29sIGVuYWJsZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0IHJlY29yZCBtb2RlLgorICAgICAqCisgICAgICogV2hlbiBhIHJlY29yZCBpbWFnZSBpcyBhdmFpbGFibGUsIGEgQ0FNRVJBX01TR19WSURFT19GUkFNRSBtZXNzYWdlIGlzCisgICAgICogc2VudCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGZyYW1lLiBFdmVyeSByZWNvcmQgZnJhbWUgbXVzdCBiZSByZWxlYXNlZCBieQorICAgICAqIGEgY2FtZXJhIEhBTCBjbGllbnQgdmlhIHJlbGVhc2VSZWNvcmRpbmdGcmFtZSgpIGJlZm9yZSB0aGUgY2xpZW50IGNhbGxzCisgICAgICogZGlzYWJsZU1zZ1R5cGUoQ0FNRVJBX01TR19WSURFT19GUkFNRSkuIEFmdGVyIHRoZSBjbGllbnQgY2FsbHMKKyAgICAgKiBkaXNhYmxlTXNnVHlwZShDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FKSwgaXQgaXMgdGhlIGNhbWVyYSBIQUwncworICAgICAqIHJlc3BvbnNpYmlsaXR5IHRvIG1hbmFnZSB0aGUgbGlmZS1jeWNsZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZyYW1lcywKKyAgICAgKiBhbmQgdGhlIGNsaWVudCBtdXN0IG5vdCBtb2RpZnkvYWNjZXNzIGFueSB2aWRlbyByZWNvcmRpbmcgZnJhbWVzLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLgorICAgICAqLworICAgIHN0YXJ0UmVjb3JkaW5nKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFN0b3AgYSBwcmV2aW91c2x5IHN0YXJ0ZWQgcmVjb3JkaW5nLgorICAgICAqLworICAgIHN0b3BSZWNvcmRpbmcoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiByZWNvcmRpbmcgaXMgZW5hYmxlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZW5hYmxlZCBUcnVlIGlmIHJlY29yZGluZyBpcyBjdXJyZW50bHkgYWN0aXZlLgorICAgICAqLworICAgIHJlY29yZGluZ0VuYWJsZWQoKSBnZW5lcmF0ZXMgKGJvb2wgZW5hYmxlZCk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGEgcmVjb3JkIGZyYW1lIHByZXZpb3VzbHkgcmV0dXJuZWQgYnkgQ0FNRVJBX01TR19WSURFT19GUkFNRSBpbgorICAgICAqIGRhdGFDYWxsYmFja1RpbWVzdGFtcC4KKyAgICAgKgorICAgICAqIEl0IGlzIGNhbWVyYSBIQUwgY2xpZW50J3MgcmVzcG9uc2liaWxpdHkgdG8gcmVsZWFzZSB2aWRlbyByZWNvcmRpbmcKKyAgICAgKiBmcmFtZXMgc2VudCBvdXQgYnkgdGhlIGNhbWVyYSBIQUwgYmVmb3JlIHRoZSBjYW1lcmEgSEFMIHJlY2VpdmVzIGEgY2FsbAorICAgICAqIHRvIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLiBBZnRlciBpdCByZWNlaXZlcyB0aGUgY2FsbCB0bworICAgICAqIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLCBpdCBpcyB0aGUgY2FtZXJhIEhBTCdzCisgICAgICogcmVzcG9uc2liaWxpdHkgdG8gbWFuYWdlIHRoZSBsaWZlLWN5Y2xlIG9mIHRoZSB2aWRlbyByZWNvcmRpbmcgZnJhbWVzLgorICAgICAqCisgICAgICogQHBhcmFtIG1lbUlkIFRoZSBtZW1vcnkgYnVmZmVyIHRvIHJlbGVhc2UgYSByZWNvcmRpbmcgZnJhbWUgZnJvbS4KKyAgICAgKiBAcGFyYW0gYnVmZmVySW5kZXggVGhlIHNwZWNpZmljIGJ1ZmZlciBpbmRleCB0byByZXR1cm4gdG8gdGhlIEhBTC4KKyAgICAgKi8KKyAgICByZWxlYXNlUmVjb3JkaW5nRnJhbWUoTWVtb3J5SWQgbWVtSWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4KTsKKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgYSByZWNvcmQgZnJhbWUgcHJldmlvdXNseSByZXR1cm5lZCBieSBDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FIGluCisgICAgICogaGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAuCisgICAgICoKKyAgICAgKiBJdCBpcyBjYW1lcmEgSEFMIGNsaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIHJlbGVhc2UgdmlkZW8gcmVjb3JkaW5nCisgICAgICogZnJhbWVzIHNlbnQgb3V0IGJ5IHRoZSBjYW1lcmEgSEFMIGJlZm9yZSB0aGUgY2FtZXJhIEhBTCByZWNlaXZlcyBhIGNhbGwKKyAgICAgKiB0byBkaXNhYmxlTXNnVHlwZShDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FKS4gQWZ0ZXIgaXQgcmVjZWl2ZXMgdGhlIGNhbGwgdG8KKyAgICAgKiBkaXNhYmxlTXNnVHlwZShDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FKSwgaXQgaXMgdGhlIGNhbWVyYSBIQUwncworICAgICAqIHJlc3BvbnNpYmlsaXR5IHRvIG1hbmFnZSB0aGUgbGlmZS1jeWNsZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZyYW1lcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtZW1JZCBUaGUgbWVtb3J5IGJ1ZmZlciB0byByZWxlYXNlIGEgcmVjb3JkaW5nIGZyYW1lIGZyb20uCisgICAgICogQHBhcmFtIGJ1ZmZlckluZGV4IFRoZSBzcGVjaWZpYyBidWZmZXIgaW5kZXggdG8gcmV0dXJuIHRvIHRoZSBIQUwuCisgICAgICogQHBhcmFtIGZyYW1lIFRoZSBoYW5kbGUgZm9yIGEgcmVsZWFzZWQgdmlkZW8gZnJhbWUKKyAgICAgKi8KKyAgICByZWxlYXNlUmVjb3JkaW5nRnJhbWVIYW5kbGUoTWVtb3J5SWQgbWVtSWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4LCBoYW5kbGUgZnJhbWUpOworCisgICAgLyoqCisgICAgICogUmVsZWFzZSBhIGJhdGNoIG9mIHJlY29yZCBmcmFtZXMgcHJldmlvdXNseSByZXR1cm5lZCBieSBDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FCisgICAgICogaW4gaGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXBCYXRjaC4KKyAgICAgKgorICAgICAqIEl0IGlzIGNhbWVyYSBIQUwgY2xpZW50J3MgcmVzcG9uc2liaWxpdHkgdG8gcmVsZWFzZSB2aWRlbyByZWNvcmRpbmcKKyAgICAgKiBmcmFtZXMgc2VudCBvdXQgYnkgdGhlIGNhbWVyYSBIQUwgYmVmb3JlIHRoZSBjYW1lcmEgSEFMIHJlY2VpdmVzIGEgY2FsbAorICAgICAqIHRvIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLiBBZnRlciBpdCByZWNlaXZlcyB0aGUgY2FsbCB0bworICAgICAqIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLCBpdCBpcyB0aGUgY2FtZXJhIEhBTCdzCisgICAgICogcmVzcG9uc2liaWxpdHkgdG8gbWFuYWdlIHRoZSBsaWZlLWN5Y2xlIG9mIHRoZSB2aWRlbyByZWNvcmRpbmcgZnJhbWVzLgorICAgICAqCisgICAgICogQHBhcmFtIGJhdGNoIEEgYmF0Y2ggb2YgcmVjb3JkaW5nIGZyYW1lcyB0byBiZSByZWxlYXNlZCBieSBjYW1lcmEgSEFMLgorICAgICAqLworICAgIHJlbGVhc2VSZWNvcmRpbmdGcmFtZUhhbmRsZUJhdGNoKHZlYzxWaWRlb0ZyYW1lTWVzc2FnZT4gYmF0Y2gpOworCisgICAgLyoqCisgICAgICogU3RhcnQgYXV0byBmb2N1cy4KKyAgICAgKgorICAgICAqIFRoZSBub3RpZmljYXRpb24gY2FsbGJhY2sgcm91dGluZSBpcyBjYWxsZWQgd2l0aAorICAgICAqIENBTUVSQV9NU0dfRk9DVVMgb25jZSB3aGVuIGZvY3VzaW5nIGlzIGNvbXBsZXRlLiBhdXRvRm9jdXMoKSBjYW4gYmUKKyAgICAgKiBjYWxsZWQgYWdhaW4gYWZ0ZXIgdGhhdCBpZiBhbm90aGVyIGF1dG8gZm9jdXMgaXMgbmVlZGVkLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBhdXRvRm9jdXMoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ2FuY2VscyBhdXRvLWZvY3VzIGZ1bmN0aW9uLgorICAgICAqCisgICAgICogSWYgdGhlIGF1dG8tZm9jdXMgaXMgc3RpbGwgaW4gcHJvZ3Jlc3MsIHRoaXMgZnVuY3Rpb24gbXVzdCBjYW5jZWwKKyAgICAgKiBpdC4gV2hldGhlciB0aGUgYXV0by1mb2N1cyBpcyBpbiBwcm9ncmVzcyBvciBub3QsIHRoaXMgZnVuY3Rpb24gbXVzdAorICAgICAqIHJldHVybiB0aGUgZm9jdXMgcG9zaXRpb24gdG8gdGhlIGRlZmF1bHQuIElmIHRoZSBjYW1lcmEgZG9lcyBub3Qgc3VwcG9ydAorICAgICAqIGF1dG8tZm9jdXMsIHRoaXMgaXMgYSBuby1vcC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgY2FuY2VsQXV0b0ZvY3VzKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRha2UgYSBwaWN0dXJlLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICB0YWtlUGljdHVyZSgpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDYW5jZWwgYSBwaWN0dXJlIHRoYXQgd2FzIHN0YXJ0ZWQgd2l0aCB0YWtlUGljdHVyZS4gQ2FsbGluZyB0aGlzIG1ldGhvZAorICAgICAqIHdoZW4gbm8gcGljdHVyZSBpcyBiZWluZyB0YWtlbiBpcyBhIG5vLW9wLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBjYW5jZWxQaWN0dXJlKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2FtZXJhIHBhcmFtZXRlcnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBwYXJhbWV0ZXIgc3RyaW5nLCBjb25zaXN0aW5nIG9mCisgICAgICogICAgJzxrZXkxPj08dmFsdWUxPjsgLi4uOzxrZXlOPj08dmFsdWVOPicuCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbjoKKyAgICAgKiAgICAgT0s6IFBhcmFtZXRlciB1cGRhdGUgd2FzIHN1Y2Nlc3NmdWwKKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDogQXQgbGVhc3Qgb25lIHBhcmFtZXRlciB3YXMgaW52YWxpZCBvciBub3Qgc3VwcG9ydGVkCisgICAgICoKKyAgICAgKi8KKyAgICBzZXRQYXJhbWV0ZXJzKHN0cmluZyBwYXJhbXMpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgY2FtZXJhIHBhcmFtZXRlcnMuCisgICAgICovCisgICAgZ2V0UGFyYW1ldGVycygpIGdlbmVyYXRlcyAoc3RyaW5nIHBhcm1zKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgY29tbWFuZCB0byBjYW1lcmEgZHJpdmVyLgorICAgICAqIFRoZSBtZWFuaW5nIG9mIHRoZSBhcmd1bWVudHMgaXMgZGVmaW5lZCBieSB0aGUgdmFsdWUgb2YgY21kLCBkb2N1bWVudGVkCisgICAgICogaW4gdGhlIENvbW1hbmRUeXBlIGRlZmluaXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gY21kIFRoZSBjb21tYW5kIHRvIGludm9rZS4KKyAgICAgKiBAcGFyYW0gYXJnMSBUaGUgZmlyc3QgYXJndW1lbnQgZm9yIHRoZSBjb21tYW5kLCBpZiBuZWVkZWQuCisgICAgICogQHBhcmFtIGFyZzIgVGhlIHNlY29uZCBhcmd1bWVudCBmb3IgdGhlIGNvbW1hbmQsIGlmIG5lZWRlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgc2VuZENvbW1hbmQoQ29tbWFuZFR5cGUgY21kLCBpbnQzMl90IGFyZzEsIGludDMyX3QgYXJnMikKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIHRoZSBoYXJkd2FyZSByZXNvdXJjZXMgb3duZWQgYnkgdGhpcyBvYmplY3QsIHNodXR0aW5nIGRvd24gdGhlCisgICAgICogY2FtZXJhIGRldmljZS4KKyAgICAgKi8KKyAgICBjbG9zZSgpOworCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbCBiL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUyZTcxOQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA7CisKK2ludGVyZmFjZSBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sgeworCisgICAgLyoqCisgICAgICogTm90aWZ5IHRoZSBjYW1lcmEgc2VydmljZSBvZiBhIHBhcnRpY3VsYXIgZXZlbnQgb2NjdXJyaW5nCisgICAgICogVGhlIG1lYW5pbmcgb2YgZWFjaCBwYXJhbWV0ZXIgaXMgZGVmaW5lZCBieSB0aGUgdmFsdWUgb2YgbXNnVHlwZSwgYW5kCisgICAgICogZG9jdW1lbnRlZCBpbiB0aGUgZGVmaW5pdGlvbiBvZiBOb3RpZnlDYWxsYmFja01zZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtc2dUeXBlIFRoZSB0eXBlIG9mIHRoZSBldmVudC4KKyAgICAgKiBAcGFyYW0gZXh0MSBUaGUgZmlyc3QgcGFyYW1ldGVyIGZvciB0aGUgZXZlbnQsIGlmIG5lZWRlZC4KKyAgICAgKiBAcGFyYW0gZXh0MiBUaGUgc2Vjb25kIHBhcmFtZXRlciBmb3IgdGhlIGV2ZW50LCBpZiBuZWVkZWQuCisgICAgICovCisgICAgbm90aWZ5Q2FsbGJhY2soTm90aWZ5Q2FsbGJhY2tNc2cgbXNnVHlwZSwgaW50MzJfdCBleHQxLCBpbnQzMl90IGV4dDIpOworCisgICAgLyoqCisgICAgICogRGVmaW5lIGEgbWVtb3J5IGJ1ZmZlciBmcm9tIHRoZSBwcm92aWRlZCBoYW5kbGUgYW5kIHNpemUsIGFuZCByZXR1cm4gYQorICAgICAqIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgSEFMIHRvIHVzZSB0byByZWZlcmVuY2UgaXQgd2l0aC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZXNjcmlwdG9yIEEgbmF0aXZlIGhhbmRsZSB0aGF0IG11c3QgaGF2ZSBleGFjdGx5IG9uZSBmaWxlCisgICAgICogICAgIGRlc2NyaXB0b3IgaW4gaXQ7IHRoZSBmaWxlIGRlc2NyaXB0b3IgbXVzdCBiZSBtZW1vcnkgbWFwcGFibGUgdG8KKyAgICAgKiAgICAgYnVmZmVyU2l6ZSAqIGJ1ZmZlckNvdW50IGJ5dGVzLgorICAgICAqIEBwYXJhbSBidWZmZXJTaXplIFRoZSBudW1iZXIgb2YgYnl0ZXMgYSBzaW5nbGUgYnVmZmVyIGNvbnNpc3RzIG9mLgorICAgICAqIEBwYXJhbSBidWZmZXJDb3VudCBUaGUgbnVtYmVyIG9mIGNvbnRpZ3VvdXMgYnVmZmVycyB0aGF0IHRoZSBkZXNjcmlwdG9yCisgICAgICogICAgIGNvbnRhaW5zLgorICAgICAqCisgICAgICogQHJldHVybiBtZW1JZCBBIHBvc2l0aXZlIGludGVnZXIgaWRlbnRpZmllciBmb3IgdGhpcyBtZW1vcnkgYnVmZmVyLCBmb3IKKyAgICAgKiAgICAgdXNlIHdpdGggZGF0YSBjYWxsYmFja3MgYW5kIHVucmVnaXN0ZXJpbmcgbWVtb3J5LiAwIG11c3QgYmUgcmV0dXJuZWQKKyAgICAgKiAgICAgaW4gY2FzZSBvZiBlcnJvciwgc3VjaCBhcyBpZiB0aGUgZGVzY3JpcHRvciBkb2VzIG5vdCBjb250YWluIGV4YWN0bHkKKyAgICAgKiAgICAgb25lIEZELgorICAgICAqLworICAgIHJlZ2lzdGVyTWVtb3J5KGhhbmRsZSBkZXNjcmlwdG9yLCB1aW50MzJfdCBidWZmZXJTaXplLCB1aW50MzJfdCBidWZmZXJDb3VudCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoTWVtb3J5SWQgbWVtSWQpOworCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciBhIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBtZW1vcnkgYnVmZmVyCisgICAgICovCisgICAgdW5yZWdpc3Rlck1lbW9yeShNZW1vcnlJZCBtZW1JZCk7CisKKyAgICAvKioKKyAgICAgKiBTZW5kIGEgYnVmZmVyIG9mIGltYWdlIGRhdGEgdG8gdGhlIGNhbWVyYSBzZXJ2aWNlCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXNnVHlwZSBUaGUga2luZCBvZiBpbWFnZSBidWZmZXIgZGF0YSB0aGlzIGNhbGwgcmVwcmVzZW50cy4KKyAgICAgKiBAcGFyYW0gZGF0YSBBIG1lbW9yeSBoYW5kbGUgdG8gdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhLgorICAgICAqIEBwYXJhbSBidWZmZXJJbmRleCBUaGUgb2Zmc2V0IGludG8gdGhlIG1lbW9yeSBoYW5kbGUgd2hlcmUgdGhlIGJ1ZmZlcgorICAgICAqICAgICBzdGFydHMuCisgICAgICoKKyAgICAgKi8KKyAgICBkYXRhQ2FsbGJhY2soRGF0YUNhbGxiYWNrTXNnIG1zZ1R5cGUsIE1lbW9yeUlkIGRhdGEsIHVpbnQzMl90IGJ1ZmZlckluZGV4LAorICAgICAgICAgICAgQ2FtZXJhRnJhbWVNZXRhZGF0YSBtZXRhZGF0YSk7CisKKyAgICAvKioKKyAgICAgKiBTZW5kIGEgYnVmZmVyIG9mIGltYWdlIGRhdGEgdG8gdGhlIGNhbWVyYSBzZXJ2aWNlLCB3aXRoIGEgdGltZXN0YW1wCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXNnVHlwZSBUaGUga2luZCBvZiBpbWFnZSBidWZmZXIgZGF0YSB0aGlzIGNhbGwgcmVwcmVzZW50cy4KKyAgICAgKiBAcGFyYW0gZGF0YSBBIG1lbW9yeSBoYW5kbGUgdG8gdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhLgorICAgICAqIEBwYXJhbSBidWZmZXJJbmRleCBUaGUgb2Zmc2V0IGludG8gdGhlIG1lbW9yeSBoYW5kbGUgd2hlcmUgdGhlIGJ1ZmZlcgorICAgICAqICAgICBzdGFydHMuCisgICAgICogQHBhcmFtIHRpbWVzdGFtcCBUaGUgdGltZSB0aGlzIGJ1ZmZlciB3YXMgY2FwdHVyZWQgYnkgdGhlIGNhbWVyYSwgaW4KKyAgICAgKiAgICAgbmFub3NlY29uZHMuCisgICAgICoKKyAgICAgKi8KKyAgICBkYXRhQ2FsbGJhY2tUaW1lc3RhbXAoRGF0YUNhbGxiYWNrTXNnIG1zZ1R5cGUsIE1lbW9yeUlkIGRhdGEsIHVpbnQzMl90IGJ1ZmZlckluZGV4LAorICAgICAgICAgICAgaW50NjRfdCB0aW1lc3RhbXApOworCisgICAgLyoqCisgICAgICogU2VuZCBhIGJ1ZmZlciBvZiBpbWFnZSBkYXRhIHRvIHRoZSBjYW1lcmEgc2VydmljZSwgd2l0aCBhIHRpbWVzdGFtcAorICAgICAqCisgICAgICogQHBhcmFtIG1zZ1R5cGUgVGhlIGtpbmQgb2YgaW1hZ2UgYnVmZmVyIGRhdGEgdGhpcyBjYWxsIHJlcHJlc2VudHMuCisgICAgICogQHBhcmFtIGhhbmRsZSBUaGUgaGFuZGxlIG9mIGltYWdlIGJ1ZmZlciBkYXRhIHRoaXMgY2FsbCByZXByZXNlbnRzLgorICAgICAqIEBwYXJhbSBkYXRhIEEgbWVtb3J5IGhhbmRsZSB0byB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEuCisgICAgICogQHBhcmFtIGJ1ZmZlckluZGV4IFRoZSBvZmZzZXQgaW50byB0aGUgbWVtb3J5IGhhbmRsZSB3aGVyZSB0aGUgYnVmZmVyCisgICAgICogICAgIHN0YXJ0cy4KKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIFRoZSB0aW1lIHRoaXMgYnVmZmVyIHdhcyBjYXB0dXJlZCBieSB0aGUgY2FtZXJhLCBpbgorICAgICAqICAgICBuYW5vc2Vjb25kcy4KKyAgICAgKgorICAgICAqLworICAgIGhhbmRsZUNhbGxiYWNrVGltZXN0YW1wKERhdGFDYWxsYmFja01zZyBtc2dUeXBlLCBoYW5kbGUgZnJhbWVEYXRhLCBNZW1vcnlJZCBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgYnVmZmVySW5kZXgsIGludDY0X3QgdGltZXN0YW1wKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBiYXRjaCBvZiBpbWFnZSBkYXRhIGJ1ZmZlciB0byB0aGUgY2FtZXJhIHNlcnZpY2UsIHdpdGggdGltZXN0YW1wcworICAgICAqCisgICAgICogVGhpcyBjYWxsYmFjayBjYW4gYmUgdXNlZCB0byBzZW5kIG11bHRpcGxlIGZyYW1lcyB0byBjYW1lcmEgZnJhbWV3b3JrIGluIG9uZSBjYWxsYmFjaywgd2hpY2gKKyAgICAgKiByZWR1Y2UgbnVtYmVyIG9mIGNhbGxiYWNrcyBpbiBwZXJmb3JtYW5jZSBpbnRlbnNpdmUgdXNlIGNhc2VzLCBzdWNoIGFzIGhpZ2ggc3BlZWQgdmlkZW8KKyAgICAgKiByZWNvcmRpbmcuIFRoZSBIQUwgbXVzdCBub3QgbWl4IHVzZSBvZiB0aGlzIG1ldGhvZCB3aXRoIGhhbmRsZUNhbGxiYWNrVGltZXN0YW1wIGluIG9uZQorICAgICAqIHJlY29yZGluZyBzZXNzaW9uIChiZXR3ZWVuIHN0YXJ0UmVjb3JkaW5nIGFuZCBzdG9wUmVjb3JkaW5nKQorICAgICAqCisgICAgICogQHBhcmFtIG1zZ1R5cGUgVGhlIGtpbmQgb2YgaW1hZ2UgYnVmZmVyIGRhdGEgdGhpcyBjYWxsIHJlcHJlc2VudHMuCisgICAgICogQHBhcmFtIGJhdGNoIGEgdmVjdG9yIG1lc3NhZ2VzLiBFYWNoIG1lc3NhZ2UgY29udGFpbnMgYSBpbWFnZSBidWZmZXIgYW5kIGEgdGltZXN0YW1wLiBUaGUKKyAgICAgKiAgICAgbWVzc2FnZXMgbXVzdCBiZSBvcmRlcmVkIGluIHRpbWUgZnJvbSBsb3dlciBpbmRleCB0byBoaWdoZXIgaW5kZXgsIHNvIHRoYXQgdGltZXN0YW1wIG9mCisgICAgICogICAgIGktdGggbWVzc2FnZSBpcyBhbHdheXMgc21hbGxlciB0aGFuIGkrMS10aCBtZXNzYWdlLgorICAgICAqCisgICAgICovCisgICAgaGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXBCYXRjaChEYXRhQ2FsbGJhY2tNc2cgbXNnVHlwZSwgdmVjPEhhbmRsZVRpbWVzdGFtcE1lc3NhZ2U+IGJhdGNoKTsKKworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaGFsIGIvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQyMTk4MQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXM7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlczsKKworLyoqCisgKiBDYW1lcmEgZGV2aWNlIEhBTEAxLjAgcHJldmlldyBzdHJlYW0gb3BlcmF0aW9uIGludGVyZmFjZS4KKyAqLworaW50ZXJmYWNlIElDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2sgeworCisgICAgLyoqCisgICAgICogQWNxdWlyZSBhIGJ1ZmZlciB0byB3cml0ZSBhIHByZXZpZXcgYnVmZmVyIGludG8uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLiBJZiBub3QgT0ssIHRoZW4KKyAgICAgKiAgICAgYnVmZmVyIGFuZCBzdHJpZGUgbXVzdCBub3QgYmUgdXNlZC4KKyAgICAgKiBAcmV0dXJuIGJ1ZmZlcklkIEEgdW5pcXVlIElEIGZvciB0aGUgcmV0dXJuZWQgYnVmZmVyLgorICAgICAqIEByZXR1cm4gYnVmZmVyIEEgaGFuZGxlIHRvIHRoZSBidWZmZXIgdG8gd3JpdGUgaW50by4gTXVzdCBiZSBub24tbnVsbCBpZiB0aGUgYnVmZmVySWQgaGFzIG5vdAorICAgICAqICAgICBiZWVuIHNlZW4gYnkgSEFMIGJlZm9yZS4gTXVzdCBiZSBudWxsIGlmIHRoZSBidWZmZXJJZCBpcyBzZWVuIGJlZm9yZS4gSEFMIG11c3Qga2VlcCB0cmFjaworICAgICAqICAgICBvZiB0aGUgYnVmZmVySWQgdG8gYWN0dWFsIGJ1ZmZlciBoYW5kbGUgbWFwcGluZy4KKyAgICAgKiBAcmV0dXJuIHN0cmlkZSBUaGUgc3RyaWRlIGJldHdlZW4gdHdvIHJvd3Mgb2YgcGl4ZWxzIGluIHRoaXMgYnVmZmVyLgorICAgICAqLworICAgIGRlcXVldWVCdWZmZXIoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHVpbnQ2NF90IGJ1ZmZlcklkLCBoYW5kbGUgYnVmZmVyLCB1aW50MzJfdCBzdHJpZGUpOworCisgICAgLyoqCisgICAgICogU2VuZCBhIGZpbGxlZCBwcmV2aWV3IGJ1ZmZlciB0byBpdHMgY29uc3VtZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmZmVySWQgVGhlIGJ1ZmZlcklkIG9mIHRoZSBwcmV2aWV3IGJ1ZmZlcgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgZW5xdWV1ZUJ1ZmZlcih1aW50NjRfdCBidWZmZXJJZCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHByZXZpZXcgYnVmZmVyIHVuZmlsbGVkLiBUaGlzIGJ1ZmZlciBtdXN0IG5vdCBiZSBzZW50IG9uIHRvIHRoZQorICAgICAqIHByZXZpZXcgY29uc3VtZXIgYXMgYSB2YWxpZCBidWZmZXIsIGJ1dCBtYXkgYmUgcmV1c2VkIGFzIGlmIGl0IHdlcmUKKyAgICAgKiBlbXB0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXJJZCBUaGUgYnVmZmVySWQgb2YgdGhlIHByZXZpZXcgYnVmZmVyCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBjYW5jZWxCdWZmZXIodWludDY0X3QgYnVmZmVySWQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBwcmV2aWV3IGJ1ZmZlcnMgbmVlZGVkIGJ5IHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY291bnQgVGhlIG1heGltdW0gbnVtYmVyIG9mIHByZXZpZXcgYnVmZmVycyB0byBhbGxvY2F0ZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIHNldEJ1ZmZlckNvdW50KHVpbnQzMl90IGNvdW50KSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkaW1lbnNpb25zIGFuZCBmb3JtYXQgb2YgZnV0dXJlIHByZXZpZXcgYnVmZmVycy4KKyAgICAgKgorICAgICAqIFRoZSBuZXh0IGJ1ZmZlciB0aGF0IGlzIGRlcXVldWVkIG11c3QgbWF0Y2ggdGhlIHJlcXVlc3RlZCBzaXplIGFuZAorICAgICAqIGZvcm1hdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgc2V0QnVmZmVyc0dlb21ldHJ5KHVpbnQzMl90IHcsIHVpbnQzMl90IGgsCisgICAgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OlBpeGVsRm9ybWF0IGZvcm1hdCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHZhbGlkIHJlZ2lvbiBvZiBpbWFnZSBkYXRhIGZvciB0aGUgbmV4dCBidWZmZXIocykgdG8gYmUgZW5xdWV1ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIHNldENyb3AoaW50MzJfdCBsZWZ0LCBpbnQzMl90IHRvcCwgaW50MzJfdCByaWdodCwgaW50MzJfdCBib3R0b20pCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwcm9kdWNlciB1c2FnZSBmbGFncyBmb3IgdGhlIG5leHQgYnVmZmVyKHMpIHRvIGJlIGVucXVldWVkLgorICAgICAqCisgICAgICogQHJldHVybiBTdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBzZXRVc2FnZShCdWZmZXJVc2FnZSB1c2FnZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZXhwZWN0ZWQgYnVmZmVyaW5nIG1vZGUgZm9yIHRoZSBwcmV2aWV3IG91dHB1dC4KKyAgICAgKi8KKyAgICBzZXRTd2FwSW50ZXJ2YWwoaW50MzJfdCBpbnRlcnZhbCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbWluaW11bSBudW1iZXIgb2YgYnVmZmVycyB0aGUgcHJldmlldyBjb25zdW1lciBlbmRwb2ludCBuZWVkcworICAgICAqIHRvIGhvbGQgZm9yIGNvcnJlY3Qgb3BlcmF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBTdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIGNvdW50IFRoZSBudW1iZXIgb2YgYnVmZmVycyB0aGUgY29uc3VtZXIgaGFzIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBnZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnQoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHVpbnQzMl90IGNvdW50KTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgdGltZXN0YW1wIGZvciB0aGUgbmV4dCBidWZmZXIgdG8gZW5xdWV1ZQorICAgICAqCisgICAgICogVGltZXN0YW1wcyBhcmUgbWVhc3VyZWQgaW4gbmFub3NlY29uZHMsIGFuZCBtdXN0IGJlIGNvbXBhcmFibGUKKyAgICAgKiBhbmQgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGJldHdlZW4gdHdvIGZyYW1lcyBpbiB0aGUgc2FtZQorICAgICAqIHByZXZpZXcgc3RyZWFtLiBUaGV5IGRvIG5vdCBuZWVkIHRvIGJlIGNvbXBhcmFibGUgYmV0d2VlbgorICAgICAqIGNvbnNlY3V0aXZlIG9yIHBhcmFsbGVsIHByZXZpZXcgc3RyZWFtcywgY2FtZXJhcywgb3IgYXBwIHJ1bnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIFRoZSB0aW1lc3RhbXAgdG8gc2V0IGZvciBmdXR1cmUgYnVmZmVycy4KKyAgICAgKiBAcmV0dXJuIFN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIHNldFRpbWVzdGFtcChpbnQ2NF90IHRpbWVzdGFtcCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTM0OWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiY2FtZXJhLmRldmljZUAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHNyY3M6IFsKKyAgICAgICAgIkNhbWVyYURldmljZS5jcHAiLAorICAgIF0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGxtZW1vcnkiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJjYW1lcmFfbWV0YWRhdGEiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAtaGVscGVyIgorICAgIF0sCisgICAgaW5jbHVkZV9kaXJzOiBbCisgICAgICAgICJmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL29wZW5tYXgiCisgICAgXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXQorfQorCmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzEuMC9kZWZhdWx0L0NhbWVyYURldmljZS5jcHAgYi9jYW1lcmEvZGV2aWNlLzEuMC9kZWZhdWx0L0NhbWVyYURldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY0ZTcwZgotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQ2FtZXJhRGV2aWNlLmNwcApAQCAtMCwwICsxLDEwMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNhbURldkAxLjAtaW1wbCIKKyNpbmNsdWRlIDxoYXJkd2FyZS9jYW1lcmEuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jMS5oPgorI2luY2x1ZGUgPGhpZGxtZW1vcnkvbWFwcGluZy5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorCisjaW5jbHVkZSA8bWVkaWEvaGFyZHdhcmUvSGFyZHdhcmVBUEkuaD4gLy8gRm9yIFZpZGVvTmF0aXZlSGFuZGxlTWV0YWRhdGEKKyNpbmNsdWRlICJDYW1lcmFEZXZpY2VfMV8wLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBkZXZpY2UgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6QnVmZmVyVXNhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKKworSGFuZGxlSW1wb3J0ZXIgQ2FtZXJhRGV2aWNlOjpzSGFuZGxlSW1wb3J0ZXI7CisKK1N0YXR1cyBDYW1lcmFEZXZpY2U6OmdldEhpZGxTdGF0dXMoY29uc3QgaW50JiBzdGF0dXMpIHsKKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIDA6IHJldHVybiBTdGF0dXM6Ok9LOworICAgICAgICBjYXNlIC1FTk9TWVM6IHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIC1FQlVTWSA6IHJldHVybiBTdGF0dXM6OkNBTUVSQV9JTl9VU0U7CisgICAgICAgIGNhc2UgLUVVU0VSUzogcmV0dXJuIFN0YXR1czo6TUFYX0NBTUVSQVNfSU5fVVNFOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiJXM6IHVua25vd24gSEFMIHN0YXR1cyBjb2RlICVkIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgfQorfQorCitzdGF0dXNfdCBDYW1lcmFEZXZpY2U6OmdldFN0YXR1c1QoY29uc3QgU3RhdHVzJiBzKSAgeworICAgIHN3aXRjaChzKSB7CisgICAgICAgIGNhc2UgU3RhdHVzOjpPSzoKKyAgICAgICAgICAgIHJldHVybiBPSzsKKyAgICAgICAgY2FzZSBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ6CisgICAgICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgICAgICBjYXNlIFN0YXR1czo6Q0FNRVJBX0lOX1VTRToKKyAgICAgICAgICAgIHJldHVybiAtRUJVU1k7CisgICAgICAgIGNhc2UgU3RhdHVzOjpNQVhfQ0FNRVJBU19JTl9VU0U6CisgICAgICAgICAgICByZXR1cm4gLUVVU0VSUzsKKyAgICAgICAgY2FzZSBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOgorICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fVFJBTlNBQ1RJT047CisgICAgICAgIGNhc2UgU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDoKKyAgICAgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICAgICAgY2FzZSBTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICAgICAgICByZXR1cm4gREVBRF9PQkpFQ1Q7CisgICAgICAgIGNhc2UgU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjoKKyAgICAgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgQUxPR1coIlVuZXhwZWN0ZWQgSEFMIHN0YXR1cyBjb2RlICVkIiwgcyk7CisgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworfQorCitTdGF0dXMgQ2FtZXJhRGV2aWNlOjppbml0U3RhdHVzKCkgY29uc3QgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgaWYgKG1Jbml0RmFpbCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0gZWxzZSBpZiAobURpc2Nvbm5lY3RlZCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQ7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CisKK0NhbWVyYURldmljZTo6Q2FtZXJhRGV2aWNlKAorICAgIHNwPENhbWVyYU1vZHVsZT4gbW9kdWxlLCBjb25zdCBzdGQ6OnN0cmluZyYgY2FtZXJhSWQsCisgICAgY29uc3QgU29ydGVkVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiYgY2FtZXJhRGV2aWNlTmFtZXMpIDoKKyAgICAgICAgbU1vZHVsZShtb2R1bGUpLAorICAgICAgICBtQ2FtZXJhSWQoY2FtZXJhSWQpLAorICAgICAgICBtRGlzY29ubmVjdGVkKGZhbHNlKSwKKyAgICAgICAgbUNhbWVyYURldmljZU5hbWVzKGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgbUNhbWVyYUlkSW50ID0gYXRvaShtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgLy8gU2hvdWxkIG5vdCByZWFjaCBoZXJlIGFzIHByb3ZpZGVyIGFsc28gdmFsaWRhdGUgSUQKKyAgICBpZiAobUNhbWVyYUlkSW50IDwgMCB8fCBtQ2FtZXJhSWRJbnQgPj0gbW9kdWxlLT5nZXROdW1iZXJPZkNhbWVyYXMoKSkgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgY2FtZXJhIGlkOiAlcyIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBtSW5pdEZhaWwgPSB0cnVlOworICAgIH0KKworICAgIG1EZXZpY2VWZXJzaW9uID0gbU1vZHVsZS0+Z2V0RGV2aWNlVmVyc2lvbihtQ2FtZXJhSWRJbnQpOworICAgIGlmIChtRGV2aWNlVmVyc2lvbiAhPSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCAmJiAhbU1vZHVsZS0+aXNPcGVuTGVnYWN5RGVmaW5lZCgpKSB7CisgICAgICAgIEFMT0dJKCIlczogQ2FtZXJhIGlkICVzIGRvZXMgbm90IHN1cHBvcnQgSEFMMS4wIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgbUluaXRGYWlsID0gdHJ1ZTsKKyAgICB9CisKKyAgICBtQXNobWVtQWxsb2NhdG9yID0gSUFsbG9jYXRvcjo6Z2V0U2VydmljZSgiYXNobWVtIik7CisgICAgaWYgKG1Bc2htZW1BbGxvY2F0b3IgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HSSgiJXM6IGNhbm5vdCBnZXQgYXNobWVtQWxsb2NhdG9yIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgbUluaXRGYWlsID0gdHJ1ZTsKKyAgICB9Cit9CisKK0NhbWVyYURldmljZTo6fkNhbWVyYURldmljZSgpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmIChtRGV2aWNlICE9IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR1coIiVzOiBjYW1lcmEgJXMgaXMgZGVsZXRlZCB3aGlsZSBvcGVuIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIGNsb3NlKCk7CisgICAgfQorICAgIG1IYWxQcmV2aWV3V2luZG93LmNsZWFuVXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKK30KKworCit2b2lkIENhbWVyYURldmljZTo6c2V0Q29ubmVjdGlvblN0YXR1cyhib29sIGNvbm5lY3RlZCkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbURpc2Nvbm5lY3RlZCA9ICFjb25uZWN0ZWQ7CisgICAgaWYgKG1EZXZpY2UgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghY29ubmVjdGVkKSB7CisgICAgICAgIEFMT0dXKCIlczogY2FtZXJhICVzIGlzIGRpc2Nvbm5ldGVkLiBDbG9zaW5nIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIGNsb3NlKCk7CisgICAgfQorICAgIHJldHVybjsKK30KKwordm9pZCBDYW1lcmFEZXZpY2U6OkNhbWVyYVByZXZpZXdXaW5kb3c6OmNsZWFuVXBDaXJjdWxhdGluZ0J1ZmZlcnMoKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBmb3IgKGF1dG8gcGFpciA6IG1DaXJjdWxhdGluZ0J1ZmZlcnMpIHsKKyAgICAgICAgc0hhbmRsZUltcG9ydGVyLmZyZWVCdWZmZXIocGFpci5zZWNvbmQpOworICAgIH0KKyAgICBtQ2lyY3VsYXRpbmdCdWZmZXJzLmNsZWFyKCk7CisgICAgbUJ1ZmZlcklkTWFwLmNsZWFyKCk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNEZXF1ZXVlQnVmZmVyKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCoqIGJ1ZmZlciwgaW50ICpzdHJpZGUpIHsKKyAgICBDYW1lcmFQcmV2aWV3V2luZG93KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICBpZiAoYnVmZmVyID09IG51bGxwdHIgfHwgc3RyaWRlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBidWZmZXIgKCVwKSBhbmQgc3RyaWRlICglcCkgbXVzdCBub3QgYmUgbnVsbCEiLCBfX0ZVTkNUSU9OX18sIGJ1ZmZlciwgc3RyaWRlKTsKKyAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICB9CisKKyAgICBTdGF0dXMgczsKKyAgICBvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2stPmRlcXVldWVCdWZmZXIoCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgdWludDY0X3QgYnVmZmVySWQsIGNvbnN0IGF1dG8mIGJ1ZiwgdWludDMyX3Qgc3RyZCkgeworICAgICAgICAgICAgcyA9IHN0YXR1czsKKyAgICAgICAgICAgIGlmIChzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wob2JqZWN0LT5tTG9jayk7CisgICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+bUNpcmN1bGF0aW5nQnVmZmVycy5jb3VudChidWZmZXJJZCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgaW1wb3J0ZWRCdWYgPSBidWYuZ2V0TmF0aXZlSGFuZGxlKCk7CisgICAgICAgICAgICAgICAgICAgIHNIYW5kbGVJbXBvcnRlci5pbXBvcnRCdWZmZXIoaW1wb3J0ZWRCdWYpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW1wb3J0ZWRCdWYgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBwcmV2aWV3IGJ1ZmZlciBpbXBvcnQgZmFpbGVkISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+bUNpcmN1bGF0aW5nQnVmZmVyc1tidWZmZXJJZF0gPSBpbXBvcnRlZEJ1ZjsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+bUJ1ZmZlcklkTWFwWyYob2JqZWN0LT5tQ2lyY3VsYXRpbmdCdWZmZXJzW2J1ZmZlcklkXSldID0gYnVmZmVySWQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKmJ1ZmZlciA9ICYob2JqZWN0LT5tQ2lyY3VsYXRpbmdCdWZmZXJzW2J1ZmZlcklkXSk7CisgICAgICAgICAgICAgICAgKnN0cmlkZSA9IHN0cmQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIHJldHVybiBnZXRTdGF0dXNUKHMpOworfQorCitpbnQgQ2FtZXJhRGV2aWNlOjpzTG9ja0J1ZmZlcihzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiwgYnVmZmVyX2hhbmRsZV90KikgeworICAgIHJldHVybiAwOworfQorCitpbnQgQ2FtZXJhRGV2aWNlOjpzRW5xdWV1ZUJ1ZmZlcihzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBidWZmZXJfaGFuZGxlX3QqIGJ1ZmZlcikgeworICAgIENhbWVyYVByZXZpZXdXaW5kb3cqIG9iamVjdCA9IHN0YXRpY19jYXN0PENhbWVyYVByZXZpZXdXaW5kb3cqPih3KTsKKyAgICBpZiAob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgSEFMIGNhbGxpbmcgcHJldmlldyBvcHMgd2hpbGUgdGhlcmUgaXMgbm8gcHJldmlldyB3aW5kb3chIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICB1aW50NjRfdCBidWZmZXJJZCA9IG9iamVjdC0+bUJ1ZmZlcklkTWFwLmF0KGJ1ZmZlcik7CisgICAgcmV0dXJuIGdldFN0YXR1c1Qob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrLT5lbnF1ZXVlQnVmZmVyKGJ1ZmZlcklkKSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNDYW5jZWxCdWZmZXIoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywgYnVmZmVyX2hhbmRsZV90KiBidWZmZXIpIHsKKyAgICBDYW1lcmFQcmV2aWV3V2luZG93KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgdWludDY0X3QgYnVmZmVySWQgPSBvYmplY3QtPm1CdWZmZXJJZE1hcC5hdChidWZmZXIpOworICAgIHJldHVybiBnZXRTdGF0dXNUKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjay0+Y2FuY2VsQnVmZmVyKGJ1ZmZlcklkKSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNTZXRCdWZmZXJDb3VudChzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBpbnQgY291bnQpIHsKKyAgICBDYW1lcmFQcmV2aWV3V2luZG93KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICBvYmplY3QtPmNsZWFuVXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKKyAgICByZXR1cm4gZ2V0U3RhdHVzVChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2stPnNldEJ1ZmZlckNvdW50KGNvdW50KSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNTZXRCdWZmZXJzR2VvbWV0cnkoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgZm9ybWF0KSB7CisgICAgQ2FtZXJhUHJldmlld1dpbmRvdyogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhUHJldmlld1dpbmRvdyo+KHcpOworICAgIGlmIChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBIQUwgY2FsbGluZyBwcmV2aWV3IG9wcyB3aGlsZSB0aGVyZSBpcyBubyBwcmV2aWV3IHdpbmRvdyEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorCisgICAgb2JqZWN0LT5jbGVhblVwQ2lyY3VsYXRpbmdCdWZmZXJzKCk7CisgICAgcmV0dXJuIGdldFN0YXR1c1QoCisgICAgICAgICAgICBvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2stPnNldEJ1ZmZlcnNHZW9tZXRyeSh3aWR0aCwgaGVpZ2h0LCAoUGl4ZWxGb3JtYXQpIGZvcm1hdCkpOworfQorCitpbnQgQ2FtZXJhRGV2aWNlOjpzU2V0Q3JvcChzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzICp3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQgYm90dG9tKSB7CisgICAgQ2FtZXJhUHJldmlld1dpbmRvdyogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhUHJldmlld1dpbmRvdyo+KHcpOworICAgIGlmIChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBIQUwgY2FsbGluZyBwcmV2aWV3IG9wcyB3aGlsZSB0aGVyZSBpcyBubyBwcmV2aWV3IHdpbmRvdyEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorCisgICAgcmV0dXJuIGdldFN0YXR1c1Qob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrLT5zZXRDcm9wKGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSkpOworfQorCitpbnQgQ2FtZXJhRGV2aWNlOjpzU2V0VGltZXN0YW1wKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMgKncsIGludDY0X3QgdGltZXN0YW1wKSB7CisgICAgQ2FtZXJhUHJldmlld1dpbmRvdyogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhUHJldmlld1dpbmRvdyo+KHcpOworICAgIGlmIChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBIQUwgY2FsbGluZyBwcmV2aWV3IG9wcyB3aGlsZSB0aGVyZSBpcyBubyBwcmV2aWV3IHdpbmRvdyEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorCisgICAgcmV0dXJuIGdldFN0YXR1c1Qob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrLT5zZXRUaW1lc3RhbXAodGltZXN0YW1wKSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNTZXRVc2FnZShzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBpbnQgdXNhZ2UpIHsKKyAgICBDYW1lcmFQcmV2aWV3V2luZG93KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICBvYmplY3QtPmNsZWFuVXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKKyAgICByZXR1cm4gZ2V0U3RhdHVzVChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2stPnNldFVzYWdlKChCdWZmZXJVc2FnZSl1c2FnZSkpOworfQorCitpbnQgQ2FtZXJhRGV2aWNlOjpzU2V0U3dhcEludGVydmFsKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMgKncsIGludCBpbnRlcnZhbCkgeworICAgIENhbWVyYVByZXZpZXdXaW5kb3cqIG9iamVjdCA9IHN0YXRpY19jYXN0PENhbWVyYVByZXZpZXdXaW5kb3cqPih3KTsKKyAgICBpZiAob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgSEFMIGNhbGxpbmcgcHJldmlldyBvcHMgd2hpbGUgdGhlcmUgaXMgbm8gcHJldmlldyB3aW5kb3chIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKworICAgIHJldHVybiBnZXRTdGF0dXNUKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjay0+c2V0U3dhcEludGVydmFsKGludGVydmFsKSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNHZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnQoCisgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzICp3LAorICAgICAgICAgICAgICAgICAgaW50ICpjb3VudCkgeworICAgIGNvbnN0IENhbWVyYVByZXZpZXdXaW5kb3cqIG9iamVjdCA9ICBzdGF0aWNfY2FzdDxjb25zdCBDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgaWYgKGNvdW50ID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjb3VudCBpcyBudWxsISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBCQURfVkFMVUU7CisgICAgfQorCisgICAgU3RhdHVzIHM7CisgICAgb2JqZWN0LT5tUHJldmlld0NhbGxiYWNrLT5nZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnQoCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgdWludDMyX3QgY250KSB7CisgICAgICAgICAgICBzID0gc3RhdHVzOworICAgICAgICAgICAgaWYgKHMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgICpjb3VudCA9IGNudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgcmV0dXJuIGdldFN0YXR1c1Qocyk7Cit9CisKK0NhbWVyYURldmljZTo6Q2FtZXJhSGVhcE1lbW9yeTo6Q2FtZXJhSGVhcE1lbW9yeSgKKyAgICBpbnQgZmQsIHNpemVfdCBidWZfc2l6ZSwgdWludF90IG51bV9idWZmZXJzKSA6CisgICAgICAgIG1CdWZTaXplKGJ1Zl9zaXplKSwKKyAgICAgICAgbU51bUJ1ZnMobnVtX2J1ZmZlcnMpIHsKKyAgICBtSGlkbEhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDEsMCk7CisgICAgbUhpZGxIYW5kbGUtPmRhdGFbMF0gPSBmY250bChmZCwgRl9EVVBGRF9DTE9FWEVDLCAwKTsKKyAgICBjb25zdCBzaXplX3QgcGFnZXNpemUgPSBnZXRwYWdlc2l6ZSgpOworICAgIHNpemVfdCBzaXplID0gKChidWZfc2l6ZSAqIG51bV9idWZmZXJzICsgcGFnZXNpemUtMSkgJiB+KHBhZ2VzaXplLTEpKTsKKyAgICBtSGlkbEhlYXAgPSBoaWRsX21lbW9yeSgiYXNobWVtIiwgbUhpZGxIYW5kbGUsIHNpemUpOworICAgIGNvbW1vbkluaXRpYWxpemF0aW9uKCk7Cit9CisKK0NhbWVyYURldmljZTo6Q2FtZXJhSGVhcE1lbW9yeTo6Q2FtZXJhSGVhcE1lbW9yeSgKKyAgICBzcDxJQWxsb2NhdG9yPiBhc2htZW1BbGxvY2F0b3IsCisgICAgc2l6ZV90IGJ1Zl9zaXplLCB1aW50X3QgbnVtX2J1ZmZlcnMpIDoKKyAgICAgICAgbUJ1ZlNpemUoYnVmX3NpemUpLAorICAgICAgICBtTnVtQnVmcyhudW1fYnVmZmVycykgeworICAgIGNvbnN0IHNpemVfdCBwYWdlc2l6ZSA9IGdldHBhZ2VzaXplKCk7CisgICAgc2l6ZV90IHNpemUgPSAoKGJ1Zl9zaXplICogbnVtX2J1ZmZlcnMgKyBwYWdlc2l6ZS0xKSAmIH4ocGFnZXNpemUtMSkpOworICAgIGFzaG1lbUFsbG9jYXRvci0+YWxsb2NhdGUoc2l6ZSwKKyAgICAgICAgWyZdKGJvb2wgc3VjY2VzcywgY29uc3QgaGlkbF9tZW1vcnkmIG1lbSkgeworICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBhbGxvY2F0aW5nIGFzaG1lbSBvZiAlenUgYnl0ZXMgZmFpbGVkISIsCisgICAgICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGJ1Zl9zaXplICogbnVtX2J1ZmZlcnMpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1IaWRsSGFuZGxlID0gbmF0aXZlX2hhbmRsZV9jbG9uZShtZW0uaGFuZGxlKCkpOworICAgICAgICAgICAgbUhpZGxIZWFwID0gaGlkbF9tZW1vcnkoImFzaG1lbSIsIG1IaWRsSGFuZGxlLCBzaXplKTsKKyAgICAgICAgfSk7CisKKyAgICBjb21tb25Jbml0aWFsaXphdGlvbigpOworfQorCit2b2lkIENhbWVyYURldmljZTo6Q2FtZXJhSGVhcE1lbW9yeTo6Y29tbW9uSW5pdGlhbGl6YXRpb24oKSB7CisgICAgbUhpZGxIZWFwTWVtb3J5ID0gbWFwTWVtb3J5KG1IaWRsSGVhcCk7CisgICAgaWYgKG1IaWRsSGVhcE1lbW9yeSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogbWVtb3J5IG1hcCBmYWlsZWQhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShtSGlkbEhhbmRsZSk7IC8vIGNsb3NlIEZEIGZvciB0aGUgc2hhcmVkIG1lbW9yeQorICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShtSGlkbEhhbmRsZSk7CisgICAgICAgIG1IaWRsSGVhcCA9IGhpZGxfbWVtb3J5KCk7CisgICAgICAgIG1IaWRsSGFuZGxlID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtSGlkbEhlYXBNZW1EYXRhID0gbUhpZGxIZWFwTWVtb3J5LT5nZXRQb2ludGVyKCk7CisgICAgaGFuZGxlLmRhdGEgPSBtSGlkbEhlYXBNZW1EYXRhOworICAgIGhhbmRsZS5zaXplID0gbUJ1ZlNpemUgKiBtTnVtQnVmczsKKyAgICBoYW5kbGUuaGFuZGxlID0gdGhpczsKKyAgICBoYW5kbGUucmVsZWFzZSA9IHNQdXRNZW1vcnk7Cit9CisKK0NhbWVyYURldmljZTo6Q2FtZXJhSGVhcE1lbW9yeTo6fkNhbWVyYUhlYXBNZW1vcnkoKSB7CisgICAgaWYgKG1IaWRsSGVhcE1lbW9yeSAhPSBudWxscHRyKSB7CisgICAgICAgIG1IaWRsSGVhcE1lbURhdGEgPSBudWxscHRyOworICAgICAgICBtSGlkbEhlYXBNZW1vcnkuY2xlYXIoKTsgLy8gVGhlIGRlc3RydWN0b3Igd2lsbCB0cmlnZ2VyIG11bm1hcAorICAgIH0KKworICAgIGlmIChtSGlkbEhhbmRsZSkgeworICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKG1IaWRsSGFuZGxlKTsgLy8gY2xvc2UgRkQgZm9yIHRoZSBzaGFyZWQgbWVtb3J5CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKG1IaWRsSGFuZGxlKTsKKyAgICB9Cit9CisKKy8vIHNoYXJlZCBtZW1vcnkgbWV0aG9kcworY2FtZXJhX21lbW9yeV90KiBDYW1lcmFEZXZpY2U6OnNHZXRNZW1vcnkoaW50IGZkLCBzaXplX3QgYnVmX3NpemUsIHVpbnRfdCBudW1fYnVmcywgdm9pZCAqdXNlcikgeworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgQ2FtZXJhRGV2aWNlKiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFEZXZpY2UqPih1c2VyKTsKKyAgICBpZiAob2JqZWN0LT5tRGV2aWNlQ2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBIQUwgcmVxdWVzdCBtZW1vcnkgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgQ2FtZXJhSGVhcE1lbW9yeSogbWVtOworICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgbWVtID0gbmV3IENhbWVyYUhlYXBNZW1vcnkob2JqZWN0LT5tQXNobWVtQWxsb2NhdG9yLCBidWZfc2l6ZSwgbnVtX2J1ZnMpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1lbSA9IG5ldyBDYW1lcmFIZWFwTWVtb3J5KGZkLCBidWZfc2l6ZSwgbnVtX2J1ZnMpOworICAgIH0KKyAgICBtZW0tPmluY1N0cm9uZyhtZW0pOworICAgIGhpZGxfaGFuZGxlIGhpZGxIYW5kbGUgPSBtZW0tPm1IaWRsSGFuZGxlOworICAgIE1lbW9yeUlkIGlkID0gb2JqZWN0LT5tRGV2aWNlQ2FsbGJhY2stPnJlZ2lzdGVyTWVtb3J5KGhpZGxIYW5kbGUsIGJ1Zl9zaXplLCBudW1fYnVmcyk7CisgICAgbWVtLT5oYW5kbGUubUlkID0gaWQ7CisgICAgaWYgKG9iamVjdC0+bU1lbW9yeU1hcC5jb3VudChpZCkgIT0gMCkgeworICAgICAgICBBTE9HRSgiJXM6IGR1cGxpY2F0ZSBNZW1vcnlJZCAlZCByZXR1cm5lZCBieSBjbGllbnQhIiwgX19GVU5DVElPTl9fLCBpZCk7CisgICAgfQorICAgIG9iamVjdC0+bU1lbW9yeU1hcFtpZF0gPSBtZW07CisgICAgbWVtLT5oYW5kbGUubURldmljZSA9IG9iamVjdDsKKyAgICByZXR1cm4gJm1lbS0+aGFuZGxlOworfQorCit2b2lkIENhbWVyYURldmljZTo6c1B1dE1lbW9yeShjYW1lcmFfbWVtb3J5X3QgKmRhdGEpIHsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybjsKKworICAgIENhbWVyYUhlYXBNZW1vcnkqIG1lbSA9IHN0YXRpY19jYXN0PENhbWVyYUhlYXBNZW1vcnkgKj4oZGF0YS0+aGFuZGxlKTsKKyAgICBDYW1lcmFEZXZpY2UqIGRldmljZSA9IG1lbS0+aGFuZGxlLm1EZXZpY2U7CisgICAgaWYgKGRldmljZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCByZXR1cm4gbWVtb3J5IGZvciBhIG51bGwgZGV2aWNlISIsIF9fRlVOQ1RJT05fXyk7CisgICAgfQorICAgIGlmIChkZXZpY2UtPm1EZXZpY2VDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCByZXR1cm4gbWVtb3J5IHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkISIsIF9fRlVOQ1RJT05fXyk7CisgICAgfQorICAgIGRldmljZS0+bURldmljZUNhbGxiYWNrLT51bnJlZ2lzdGVyTWVtb3J5KG1lbS0+aGFuZGxlLm1JZCk7CisgICAgZGV2aWNlLT5tTWVtb3J5TWFwLmVyYXNlKG1lbS0+aGFuZGxlLm1JZCk7CisgICAgbWVtLT5kZWNTdHJvbmcobWVtKTsKK30KKworLy8gQ2FsbGJhY2sgZm9yd2FyZGluZyBtZXRob2RzCit2b2lkIENhbWVyYURldmljZTo6c05vdGlmeUNiKGludDMyX3QgbXNnX3R5cGUsIGludDMyX3QgZXh0MSwgaW50MzJfdCBleHQyLCB2b2lkICp1c2VyKSB7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBDYW1lcmFEZXZpY2UqIG9iamVjdCA9IHN0YXRpY19jYXN0PENhbWVyYURldmljZSo+KHVzZXIpOworICAgIGlmIChvYmplY3QtPm1EZXZpY2VDYWxsYmFjayAhPSBudWxscHRyKSB7CisgICAgICAgIG9iamVjdC0+bURldmljZUNhbGxiYWNrLT5ub3RpZnlDYWxsYmFjaygoTm90aWZ5Q2FsbGJhY2tNc2cpIG1zZ190eXBlLCBleHQxLCBleHQyKTsKKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlOjpzRGF0YUNiKGludDMyX3QgbXNnX3R5cGUsIGNvbnN0IGNhbWVyYV9tZW1vcnlfdCAqZGF0YSwgdW5zaWduZWQgaW50IGluZGV4LAorICAgICAgICBjYW1lcmFfZnJhbWVfbWV0YWRhdGFfdCAqbWV0YWRhdGEsIHZvaWQgKnVzZXIpIHsKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIENhbWVyYURldmljZSogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhRGV2aWNlKj4odXNlcik7CisgICAgc3A8Q2FtZXJhSGVhcE1lbW9yeT4gbWVtKHN0YXRpY19jYXN0PENhbWVyYUhlYXBNZW1vcnkqPihkYXRhLT5oYW5kbGUpKTsKKyAgICBpZiAoaW5kZXggPj0gbWVtLT5tTnVtQnVmcykgeworICAgICAgICBBTE9HRSgiJXM6IGludmFsaWQgYnVmZmVyIGluZGV4ICVkLCBtYXggYWxsb3dlZCBpcyAlZCIsIF9fRlVOQ1RJT05fXywKKyAgICAgICAgICAgICBpbmRleCwgbWVtLT5tTnVtQnVmcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG9iamVjdC0+bURldmljZUNhbGxiYWNrICE9IG51bGxwdHIpIHsKKyAgICAgICAgQ2FtZXJhRnJhbWVNZXRhZGF0YSBoaWRsTWV0YWRhdGE7CisgICAgICAgIGlmIChtZXRhZGF0YSkgeworICAgICAgICAgICAgaGlkbE1ldGFkYXRhLmZhY2VzLnJlc2l6ZShtZXRhZGF0YS0+bnVtYmVyX29mX2ZhY2VzKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGlkbE1ldGFkYXRhLmZhY2VzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgaGlkbE1ldGFkYXRhLmZhY2VzW2ldLnNjb3JlID0gbWV0YWRhdGEtPmZhY2VzW2ldLnNjb3JlOworICAgICAgICAgICAgICAgIGhpZGxNZXRhZGF0YS5mYWNlc1tpXS5pZCA9IG1ldGFkYXRhLT5mYWNlc1tpXS5pZDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IDQ7IGsrKykgeworICAgICAgICAgICAgICAgICAgICBoaWRsTWV0YWRhdGEuZmFjZXNbaV0ucmVjdFtrXSA9IG1ldGFkYXRhLT5mYWNlc1tpXS5yZWN0W2tdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IDI7IGsrKykgeworICAgICAgICAgICAgICAgICAgICBoaWRsTWV0YWRhdGEuZmFjZXNbaV0ubGVmdEV5ZVtrXSA9IG1ldGFkYXRhLT5mYWNlc1tpXS5sZWZ0X2V5ZVtrXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCAyOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaGlkbE1ldGFkYXRhLmZhY2VzW2ldLnJpZ2h0RXllW2tdID0gbWV0YWRhdGEtPmZhY2VzW2ldLnJpZ2h0X2V5ZVtrXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCAyOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaGlkbE1ldGFkYXRhLmZhY2VzW2ldLm1vdXRoW2tdID0gbWV0YWRhdGEtPmZhY2VzW2ldLm1vdXRoW2tdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBDYW1lcmFIZWFwTWVtb3J5KiBtZW0gPSBzdGF0aWNfY2FzdDxDYW1lcmFIZWFwTWVtb3J5ICo+KGRhdGEtPmhhbmRsZSk7CisgICAgICAgIG9iamVjdC0+bURldmljZUNhbGxiYWNrLT5kYXRhQ2FsbGJhY2soCisgICAgICAgICAgICAgICAgKERhdGFDYWxsYmFja01zZykgbXNnX3R5cGUsIG1lbS0+aGFuZGxlLm1JZCwgaW5kZXgsIGhpZGxNZXRhZGF0YSk7CisgICAgfQorfQorCit2b2lkIENhbWVyYURldmljZTo6aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAoCisgICAgICAgIG5zZWNzX3QgdGltZXN0YW1wLCBpbnQzMl90IG1zZ190eXBlLAorICAgICAgICBNZW1vcnlJZCBtZW1JZCAsIHVuc2lnbmVkIGluZGV4LCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSkgeworICAgIHVpbnQzMl90IGJhdGNoU2l6ZSA9IDA7CisgICAgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUJhdGNoTG9jayk7CisgICAgICAgIGJhdGNoU2l6ZSA9IG1CYXRjaFNpemU7CisgICAgfQorCisgICAgaWYgKGJhdGNoU2l6ZSA9PSAwKSB7IC8vIG5vbi1iYXRjaCBtb2RlCisgICAgICAgIG1EZXZpY2VDYWxsYmFjay0+aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAoCisgICAgICAgICAgICAgICAgKERhdGFDYWxsYmFja01zZykgbXNnX3R5cGUsIGhhbmRsZSwgbWVtSWQsIGluZGV4LCB0aW1lc3RhbXApOworICAgIH0gZWxzZSB7IC8vIGJhdGNoIG1vZGUKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1CYXRjaExvY2spOworICAgICAgICBzaXplX3QgaW5mbGlnaHRTaXplID0gbUluZmxpZ2h0QmF0Y2guc2l6ZSgpOworICAgICAgICBpZiAoaW5mbGlnaHRTaXplID09IDApIHsKKyAgICAgICAgICAgIG1CYXRjaE1zZ1R5cGUgPSBtc2dfdHlwZTsKKyAgICAgICAgfSBlbHNlIGlmIChtQmF0Y2hNc2dUeXBlICE9IG1zZ190eXBlKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IG1zZ190eXBlIGNoYW5nZSAoZnJvbSAlZCB0byAlZCkgaXMgbm90IHN1cHBvcnRlZCEiLAorICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIG1CYXRjaE1zZ1R5cGUsIG1zZ190eXBlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtSW5mbGlnaHRCYXRjaC5wdXNoX2JhY2soe2hhbmRsZSwgbWVtSWQsIGluZGV4LCB0aW1lc3RhbXB9KTsKKworICAgICAgICAvLyBTZW5kIGJhdGNoZWQgZnJhbWVzIHRvIGNhbWVyYSBmcmFtZXdvcmsKKyAgICAgICAgaWYgKG1JbmZsaWdodEJhdGNoLnNpemUoKSA+PSBiYXRjaFNpemUpIHsKKyAgICAgICAgICAgIG1EZXZpY2VDYWxsYmFjay0+aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXBCYXRjaCgKKyAgICAgICAgICAgICAgICAgICAgKERhdGFDYWxsYmFja01zZykgbUJhdGNoTXNnVHlwZSwgbUluZmxpZ2h0QmF0Y2gpOworICAgICAgICAgICAgbUluZmxpZ2h0QmF0Y2guY2xlYXIoKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2U6OnNEYXRhQ2JUaW1lc3RhbXAobnNlY3NfdCB0aW1lc3RhbXAsIGludDMyX3QgbXNnX3R5cGUsCisgICAgICAgIGNvbnN0IGNhbWVyYV9tZW1vcnlfdCAqZGF0YSwgdW5zaWduZWQgaW5kZXgsIHZvaWQgKnVzZXIpIHsKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIENhbWVyYURldmljZSogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhRGV2aWNlKj4odXNlcik7CisgICAgLy8gU3RhcnQgcmVmY291bnRpbmcgdGhlIGhlYXAgb2JqZWN0IGZyb20gaGVyZSBvbi4gIFdoZW4gdGhlIGNsaWVudHMKKyAgICAvLyBkcm9wIGFsbCByZWZlcmVuY2VzLCBpdCB3aWxsIGJlIGRlc3Ryb3llZCAoYXMgd2VsbCBhcyB0aGUgZW5jbG9zZWQKKyAgICAvLyBNZW1vcnlIZWFwQmFzZS4KKyAgICBzcDxDYW1lcmFIZWFwTWVtb3J5PiBtZW0oc3RhdGljX2Nhc3Q8Q2FtZXJhSGVhcE1lbW9yeSo+KGRhdGEtPmhhbmRsZSkpOworICAgIGlmIChpbmRleCA+PSBtZW0tPm1OdW1CdWZzKSB7CisgICAgICAgIEFMT0dFKCIlczogaW52YWxpZCBidWZmZXIgaW5kZXggJWQsIG1heCBhbGxvd2VkIGlzICVkIiwgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgIGluZGV4LCBtZW0tPm1OdW1CdWZzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlID0gbnVsbHB0cjsKKyAgICBpZiAob2JqZWN0LT5tTWV0YWRhdGFNb2RlKSB7CisgICAgICAgIGlmIChtZW0tPm1CdWZTaXplID09IHNpemVvZihWaWRlb05hdGl2ZUhhbmRsZU1ldGFkYXRhKSkgeworICAgICAgICAgICAgVmlkZW9OYXRpdmVIYW5kbGVNZXRhZGF0YSogbWQgPSAoVmlkZW9OYXRpdmVIYW5kbGVNZXRhZGF0YSopCisgICAgICAgICAgICAgICAgICAgICgodWludDhfdCopIG1lbS0+bUhpZGxIZWFwTWVtRGF0YSArIGluZGV4ICogbWVtLT5tQnVmU2l6ZSk7CisgICAgICAgICAgICBpZiAobWQtPmVUeXBlID09IGtNZXRhZGF0YUJ1ZmZlclR5cGVOYXRpdmVIYW5kbGVTb3VyY2UpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGUgPSBtZC0+cEhhbmRsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChvYmplY3QtPm1EZXZpY2VDYWxsYmFjayAhPSBudWxscHRyKSB7CisgICAgICAgIGlmIChoYW5kbGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgb2JqZWN0LT5tRGV2aWNlQ2FsbGJhY2stPmRhdGFDYWxsYmFja1RpbWVzdGFtcCgKKyAgICAgICAgICAgICAgICAgICAgKERhdGFDYWxsYmFja01zZykgbXNnX3R5cGUsIG1lbS0+aGFuZGxlLm1JZCwgaW5kZXgsIHRpbWVzdGFtcCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvYmplY3QtPmhhbmRsZUNhbGxiYWNrVGltZXN0YW1wKHRpbWVzdGFtcCwgbXNnX3R5cGUsIG1lbS0+aGFuZGxlLm1JZCwgaW5kZXgsIGhhbmRsZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlOjppbml0SGFsUHJldmlld1dpbmRvdygpCit7CisgICAgbUhhbFByZXZpZXdXaW5kb3cuY2FuY2VsX2J1ZmZlciA9IHNDYW5jZWxCdWZmZXI7CisgICAgbUhhbFByZXZpZXdXaW5kb3cubG9ja19idWZmZXIgPSBzTG9ja0J1ZmZlcjsKKyAgICBtSGFsUHJldmlld1dpbmRvdy5kZXF1ZXVlX2J1ZmZlciA9IHNEZXF1ZXVlQnVmZmVyOworICAgIG1IYWxQcmV2aWV3V2luZG93LmVucXVldWVfYnVmZmVyID0gc0VucXVldWVCdWZmZXI7CisgICAgbUhhbFByZXZpZXdXaW5kb3cuc2V0X2J1ZmZlcl9jb3VudCA9IHNTZXRCdWZmZXJDb3VudDsKKyAgICBtSGFsUHJldmlld1dpbmRvdy5zZXRfYnVmZmVyc19nZW9tZXRyeSA9IHNTZXRCdWZmZXJzR2VvbWV0cnk7CisgICAgbUhhbFByZXZpZXdXaW5kb3cuc2V0X2Nyb3AgPSBzU2V0Q3JvcDsKKyAgICBtSGFsUHJldmlld1dpbmRvdy5zZXRfdGltZXN0YW1wID0gc1NldFRpbWVzdGFtcDsKKyAgICBtSGFsUHJldmlld1dpbmRvdy5zZXRfdXNhZ2UgPSBzU2V0VXNhZ2U7CisgICAgbUhhbFByZXZpZXdXaW5kb3cuc2V0X3N3YXBfaW50ZXJ2YWwgPSBzU2V0U3dhcEludGVydmFsOworCisgICAgbUhhbFByZXZpZXdXaW5kb3cuZ2V0X21pbl91bmRlcXVldWVkX2J1ZmZlcl9jb3VudCA9CisgICAgICAgICAgICBzR2V0TWluVW5kZXF1ZXVlZEJ1ZmZlckNvdW50OworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2UgZm9sbG93LgorUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6Z2V0UmVzb3VyY2VDb3N0KGdldFJlc291cmNlQ29zdF9jYiBfaGlkbF9jYikgeworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgQ2FtZXJhUmVzb3VyY2VDb3N0IHJlc0Nvc3Q7CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIGludCBjb3N0ID0gMTAwOworICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gY29uZmxpY3RpbmdfZGV2aWNlczsKKyAgICAgICAgc3RydWN0IGNhbWVyYV9pbmZvIGluZm87CisKKyAgICAgICAgLy8gSWYgdXNpbmcgcG9zdC0yLjQgbW9kdWxlIHZlcnNpb24sIHF1ZXJ5IHRoZSBjb3N0ICsgY29uZmxpY3RpbmcgZGV2aWNlcyBmcm9tIHRoZSBIQUwKKyAgICAgICAgaWYgKG1Nb2R1bGUtPmdldE1vZHVsZUFwaVZlcnNpb24oKSA+PSBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzJfNCkgeworICAgICAgICAgICAgaW50IHJldCA9IG1Nb2R1bGUtPmdldENhbWVyYUluZm8obUNhbWVyYUlkSW50LCAmaW5mbyk7CisgICAgICAgICAgICBpZiAocmV0ID09IE9LKSB7CisgICAgICAgICAgICAgICAgY29zdCA9IGluZm8ucmVzb3VyY2VfY29zdDsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluZm8uY29uZmxpY3RpbmdfZGV2aWNlc19sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBjYW1lcmFJZChpbmZvLmNvbmZsaWN0aW5nX2RldmljZXNbaV0pOworICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhaXIgOiBtQ2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYW1lcmFJZCA9PSBwYWlyLmZpcnN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3RpbmdfZGV2aWNlcy5wdXNoX2JhY2socGFpci5zZWNvbmQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICByZXNDb3N0LnJlc291cmNlQ29zdCA9IGNvc3Q7CisgICAgICAgICAgICByZXNDb3N0LmNvbmZsaWN0aW5nRGV2aWNlcy5yZXNpemUoY29uZmxpY3RpbmdfZGV2aWNlcy5zaXplKCkpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb25mbGljdGluZ19kZXZpY2VzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgcmVzQ29zdC5jb25mbGljdGluZ0RldmljZXNbaV0gPSBjb25mbGljdGluZ19kZXZpY2VzW2ldOworICAgICAgICAgICAgICAgIEFMT0dWKCJDYW1EZXZpY2UgJXMgaXMgY29uZmxpY3Rpbmcgd2l0aCBjYW1EZXZpY2UgJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgbUNhbWVyYUlkLmNfc3RyKCksIHJlc0Nvc3QuY29uZmxpY3RpbmdEZXZpY2VzW2ldLmNfc3RyKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHN0YXR1cywgcmVzQ29zdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6Z2V0Q2FtZXJhSW5mbyhnZXRDYW1lcmFJbmZvX2NiIF9oaWRsX2NiKSB7CisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBDYW1lcmFJbmZvIGNhbWVyYUluZm87CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIHN0cnVjdCBjYW1lcmFfaW5mbyBpbmZvOworICAgICAgICBpbnQgcmV0ID0gbU1vZHVsZS0+Z2V0Q2FtZXJhSW5mbyhtQ2FtZXJhSWRJbnQsICZpbmZvKTsKKyAgICAgICAgaWYgKHJldCA9PSBPSykgeworICAgICAgICAgICAgY2FtZXJhSW5mby5mYWNpbmcgPSAoQ2FtZXJhRmFjaW5nKSBpbmZvLmZhY2luZzsKKyAgICAgICAgICAgIC8vIERldmljZSAxLjAgZG9lcyBub3Qgc3VwcG9ydCBleHRlcm5hbCBjYW1lcmEgZmFjaW5nLgorICAgICAgICAgICAgLy8gVGhlIGNsb3Nlc3QgYXBwcm94aW1hdGlvbiB3b3VsZCBiZSBmcm9udCBjYW1lcmEuCisgICAgICAgICAgICBpZiAoY2FtZXJhSW5mby5mYWNpbmcgPT0gQ2FtZXJhRmFjaW5nOjpFWFRFUk5BTCkgeworICAgICAgICAgICAgICAgIGNhbWVyYUluZm8uZmFjaW5nID0gQ2FtZXJhRmFjaW5nOjpGUk9OVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbWVyYUluZm8ub3JpZW50YXRpb24gPSBpbmZvLm9yaWVudGF0aW9uOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBnZXQgY2FtZXJhIGluZm8gZmFpbGVkISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHN0YXR1cywgY2FtZXJhSW5mbyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpzZXRUb3JjaE1vZGUoVG9yY2hNb2RlIG1vZGUpIHsKKyAgICBpZiAoIW1Nb2R1bGUtPmlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKCkpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgYm9vbCBlbmFibGUgPSAobW9kZSA9PSBUb3JjaE1vZGU6Ok9OKSA/IHRydWUgOiBmYWxzZTsKKyAgICAgICAgc3RhdHVzID0gZ2V0SGlkbFN0YXR1cyhtTW9kdWxlLT5zZXRUb3JjaE1vZGUobUNhbWVyYUlkLmNfc3RyKCksIGVuYWJsZSkpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OmR1bXBTdGF0ZShjb25zdCBoaWRsX2hhbmRsZSYgaGFuZGxlKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoaGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBoYW5kbGUgbXVzdCBub3QgYmUgbnVsbCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorICAgIGlmIChoYW5kbGUtPm51bUZkcyAhPSAxIHx8IGhhbmRsZS0+bnVtSW50cyAhPSAwKSB7CisgICAgICAgIEFMT0dFKCIlczogaGFuZGxlIG11c3QgY29udGFpbiAxIEZEIGFuZCAwIGludGVnZXJzISBHb3QgJWQgRkRzIGFuZCAlZCBpbnRzIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGhhbmRsZS0+bnVtRmRzLCBoYW5kbGUtPm51bUludHMpOworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKyAgICBpbnQgZmQgPSBoYW5kbGUtPmRhdGFbMF07CisKKyAgICBpZiAobURldmljZSAhPSBudWxscHRyKSB7CisgICAgICAgIGlmIChtRGV2aWNlLT5vcHMtPmR1bXApIHsgLy8gSXQncyBmaW5lIGlmIHRoZSBIQUwgZG9lc24ndCBpbXBsZW1lbnQgZHVtcCgpCisgICAgICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPmR1bXAobURldmljZSwgZmQpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpPSzsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpvcGVuKGNvbnN0IHNwPElDYW1lcmFEZXZpY2VDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisgICAgQUxPR0koIk9wZW5pbmcgY2FtZXJhICVzIiwgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisKKyAgICBjYW1lcmFfaW5mbyBpbmZvOworICAgIHN0YXR1c190IHJlcyA9IG1Nb2R1bGUtPmdldENhbWVyYUluZm8obUNhbWVyYUlkSW50LCAmaW5mbyk7CisgICAgaWYgKHJlcyAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IGdldCBjYW1lcmEgaW5mbzogJXM6ICVkIiwgbUNhbWVyYUlkLmNfc3RyKCksIHJlcyk7CisgICAgICAgIHJldHVybiBnZXRIaWRsU3RhdHVzKHJlcyk7CisgICAgfQorCisgICAgaW50IHJjID0gT0s7CisgICAgaWYgKG1Nb2R1bGUtPmdldE1vZHVsZUFwaVZlcnNpb24oKSA+PSBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzJfMyAmJgorICAgICAgICBpbmZvLmRldmljZV92ZXJzaW9uID4gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgLy8gT3BlbiBoaWdoZXIgdmVyc2lvbiBjYW1lcmEgZGV2aWNlIGFzIEhBTDEuMCBkZXZpY2UuCisgICAgICAgIHJjID0gbU1vZHVsZS0+b3BlbkxlZ2FjeShtQ2FtZXJhSWQuY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGh3X2RldmljZV90ICoqKSZtRGV2aWNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICByYyA9IG1Nb2R1bGUtPm9wZW4obUNhbWVyYUlkLmNfc3RyKCksIChod19kZXZpY2VfdCAqKikmbURldmljZSk7CisgICAgfQorICAgIGlmIChyYyAhPSBPSykgeworICAgICAgICBtRGV2aWNlID0gbnVsbHB0cjsKKyAgICAgICAgQUxPR0UoIkNvdWxkIG5vdCBvcGVuIGNhbWVyYSAlczogJWQiLCBtQ2FtZXJhSWQuY19zdHIoKSwgcmMpOworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhyYyk7CisgICAgfQorCisgICAgaW5pdEhhbFByZXZpZXdXaW5kb3coKTsKKyAgICBtRGV2aWNlQ2FsbGJhY2sgPSBjYWxsYmFjazsKKworICAgIGlmIChtRGV2aWNlLT5vcHMtPnNldF9jYWxsYmFja3MpIHsKKyAgICAgICAgbURldmljZS0+b3BzLT5zZXRfY2FsbGJhY2tzKG1EZXZpY2UsCisgICAgICAgICAgICAgICAgc05vdGlmeUNiLCBzRGF0YUNiLCBzRGF0YUNiVGltZXN0YW1wLCBzR2V0TWVtb3J5LCB0aGlzKTsKKyAgICB9CisKKyAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhyYyk7Cit9CisKK1JldHVybjxTdGF0dXM+IENhbWVyYURldmljZTo6c2V0UHJldmlld1dpbmRvdyhjb25zdCBzcDxJQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrPiYgd2luZG93KSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisKKyAgICBtSGFsUHJldmlld1dpbmRvdy5tUHJldmlld0NhbGxiYWNrID0gd2luZG93OworICAgIGlmIChtRGV2aWNlLT5vcHMtPnNldF9wcmV2aWV3X3dpbmRvdykgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPnNldF9wcmV2aWV3X3dpbmRvdyhtRGV2aWNlLAorICAgICAgICAgICAgICAgICh3aW5kb3cgPT0gbnVsbHB0cikgPyBudWxscHRyIDogJm1IYWxQcmV2aWV3V2luZG93KSk7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOyAvLyBIQUwgc2hvdWxkIHByb3ZpZGUgc2V0X3ByZXZpZXdfd2luZG93Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OmVuYWJsZU1zZ1R5cGUodWludDMyX3QgbXNnVHlwZSkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+ZW5hYmxlX21zZ190eXBlKSB7CisgICAgICAgIG1EZXZpY2UtPm9wcy0+ZW5hYmxlX21zZ190eXBlKG1EZXZpY2UsIG1zZ1R5cGUpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpkaXNhYmxlTXNnVHlwZSh1aW50MzJfdCBtc2dUeXBlKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5kaXNhYmxlX21zZ190eXBlKSB7CisgICAgICAgIG1EZXZpY2UtPm9wcy0+ZGlzYWJsZV9tc2dfdHlwZShtRGV2aWNlLCBtc2dUeXBlKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IENhbWVyYURldmljZTo6bXNnVHlwZUVuYWJsZWQodWludDMyX3QgbXNnVHlwZSkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5tc2dfdHlwZV9lbmFibGVkKSB7CisgICAgICAgIHJldHVybiBtRGV2aWNlLT5vcHMtPm1zZ190eXBlX2VuYWJsZWQobURldmljZSwgbXNnVHlwZSk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpzdGFydFByZXZpZXcoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+c3RhcnRfcHJldmlldykgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPnN0YXJ0X3ByZXZpZXcobURldmljZSkpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsgLy8gSEFMIHNob3VsZCBwcm92aWRlIHN0YXJ0X3ByZXZpZXcKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6c3RvcFByZXZpZXcoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5zdG9wX3ByZXZpZXcpIHsKKyAgICAgICAgbURldmljZS0+b3BzLT5zdG9wX3ByZXZpZXcobURldmljZSk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxib29sPiBDYW1lcmFEZXZpY2U6OnByZXZpZXdFbmFibGVkKCkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5wcmV2aWV3X2VuYWJsZWQpIHsKKyAgICAgICAgcmV0dXJuIG1EZXZpY2UtPm9wcy0+cHJldmlld19lbmFibGVkKG1EZXZpY2UpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1JldHVybjxTdGF0dXM+IENhbWVyYURldmljZTo6c3RvcmVNZXRhRGF0YUluQnVmZmVycyhib29sIGVuYWJsZSkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPnN0b3JlX21ldGFfZGF0YV9pbl9idWZmZXJzKSB7CisgICAgICAgIHN0YXR1c190IHMgPSBtRGV2aWNlLT5vcHMtPnN0b3JlX21ldGFfZGF0YV9pbl9idWZmZXJzKG1EZXZpY2UsIGVuYWJsZSk7CisgICAgICAgIGlmIChzID09IE9LICYmIGVuYWJsZSkgeworICAgICAgICAgICAgbU1ldGFkYXRhTW9kZSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldEhpZGxTdGF0dXMocyk7CisgICAgfQorICAgIHJldHVybiBlbmFibGUgPyBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQgOiBTdGF0dXM6Ok9LOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OnN0YXJ0UmVjb3JkaW5nKCkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPnN0YXJ0X3JlY29yZGluZykgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPnN0YXJ0X3JlY29yZGluZyhtRGV2aWNlKSk7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OnN0b3BSZWNvcmRpbmcoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5zdG9wX3JlY29yZGluZykgeworICAgICAgICBtRGV2aWNlLT5vcHMtPnN0b3BfcmVjb3JkaW5nKG1EZXZpY2UpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gQ2FtZXJhRGV2aWNlOjpyZWNvcmRpbmdFbmFibGVkKCkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5yZWNvcmRpbmdfZW5hYmxlZCkgeworICAgICAgICByZXR1cm4gbURldmljZS0+b3BzLT5yZWNvcmRpbmdfZW5hYmxlZChtRGV2aWNlKTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIENhbWVyYURldmljZTo6cmVsZWFzZVJlY29yZGluZ0ZyYW1lTG9ja2VkKAorICAgICAgICB1aW50MzJfdCBtZW1JZCwgdWludDMyX3QgYnVmZmVySW5kZXgsIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlKSB7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPnJlbGVhc2VfcmVjb3JkaW5nX2ZyYW1lKSB7CisgICAgICAgIENhbWVyYUhlYXBNZW1vcnkqIGNhbU1lbW9yeSA9IG1NZW1vcnlNYXAuYXQobWVtSWQpOworICAgICAgICBpZiAoYnVmZmVySW5kZXggPj0gY2FtTWVtb3J5LT5tTnVtQnVmcykgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBidWZmZXJJbmRleCAlZCBleGNlZWRzIG51bWJlciBvZiBidWZmZXJzICVkIiwKKyAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBidWZmZXJJbmRleCwgY2FtTWVtb3J5LT5tTnVtQnVmcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdm9pZCAqZGF0YSA9ICgodWludDhfdCAqKSBjYW1NZW1vcnktPm1IaWRsSGVhcE1lbURhdGEpICsgYnVmZmVySW5kZXggKiBjYW1NZW1vcnktPm1CdWZTaXplOworICAgICAgICBpZiAoaGFuZGxlKSB7CisgICAgICAgICAgICBWaWRlb05hdGl2ZUhhbmRsZU1ldGFkYXRhKiBtZCA9IChWaWRlb05hdGl2ZUhhbmRsZU1ldGFkYXRhKikgZGF0YTsKKyAgICAgICAgICAgIGlmIChtZC0+ZVR5cGUgPT0ga01ldGFkYXRhQnVmZmVyVHlwZU5hdGl2ZUhhbmRsZVNvdXJjZSkgeworICAgICAgICAgICAgICAgIC8vIElucHV0IGhhbmRsZSB3aWxsIGJlIGNsb3NlZCBieSBISURMIHRyYW5zcG9ydCBsYXRlciwgc28gY2xvbmUgaXQKKyAgICAgICAgICAgICAgICAvLyBIQUwgaW1wbGVtZW50YXRpb24gaXMgcmVzcG9uc2libGUgdG8gY2xvc2UvZGVsZXRlIHRoZSBjbG9uZQorICAgICAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogY2xvbmUgPSBuYXRpdmVfaGFuZGxlX2Nsb25lKGhhbmRsZSk7CisgICAgICAgICAgICAgICAgaWYgKCFjbG9uZSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IGZhaWxlZCB0byBjbG9uZSBidWZmZXIgJXAiLCBfX0ZVTkNUSU9OX18sIGhhbmRsZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbWQtPnBIYW5kbGUgPSBjbG9uZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOk1hbGZvcm0gVmlkZW9OYXRpdmVIYW5kbGVNZXRhZGF0YSBhdCBtZW1JZCAlZCwgYnVmZmVySWQgJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBtZW1JZCwgYnVmZmVySW5kZXgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtRGV2aWNlLT5vcHMtPnJlbGVhc2VfcmVjb3JkaW5nX2ZyYW1lKG1EZXZpY2UsIGRhdGEpOworICAgIH0KK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6cmVsZWFzZVJlY29yZGluZ0ZyYW1lKHVpbnQzMl90IG1lbUlkLCB1aW50MzJfdCBidWZmZXJJbmRleCkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIHJlbGVhc2VSZWNvcmRpbmdGcmFtZUxvY2tlZChtZW1JZCwgYnVmZmVySW5kZXgsIG51bGxwdHIpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OnJlbGVhc2VSZWNvcmRpbmdGcmFtZUhhbmRsZSgKKyAgICAgICAgdWludDMyX3QgbWVtSWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4LCBjb25zdCBoaWRsX2hhbmRsZSYgZnJhbWUpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICByZWxlYXNlUmVjb3JkaW5nRnJhbWVMb2NrZWQoCisgICAgICAgICAgICBtZW1JZCwgYnVmZmVySW5kZXgsIGZyYW1lLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpyZWxlYXNlUmVjb3JkaW5nRnJhbWVIYW5kbGVCYXRjaCgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8VmlkZW9GcmFtZU1lc3NhZ2U+JiBtc2dzKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgZm9yIChhdXRvJiBtc2cgOiBtc2dzKSB7CisgICAgICAgIHJlbGVhc2VSZWNvcmRpbmdGcmFtZUxvY2tlZCgKKyAgICAgICAgICAgICAgICBtc2cuZGF0YSwgbXNnLmJ1ZmZlckluZGV4LCBtc2cuZnJhbWVEYXRhLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjphdXRvRm9jdXMoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+YXV0b19mb2N1cykgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPmF1dG9fZm9jdXMobURldmljZSkpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OmNhbmNlbEF1dG9Gb2N1cygpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5jYW5jZWxfYXV0b19mb2N1cykgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPmNhbmNlbF9hdXRvX2ZvY3VzKG1EZXZpY2UpKTsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjp0YWtlUGljdHVyZSgpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT50YWtlX3BpY3R1cmUpIHsKKyAgICAgICAgcmV0dXJuIGdldEhpZGxTdGF0dXMobURldmljZS0+b3BzLT50YWtlX3BpY3R1cmUobURldmljZSkpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OmNhbmNlbFBpY3R1cmUoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+Y2FuY2VsX3BpY3R1cmUpIHsKKyAgICAgICAgcmV0dXJuIGdldEhpZGxTdGF0dXMobURldmljZS0+b3BzLT5jYW5jZWxfcGljdHVyZShtRGV2aWNlKSk7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7Cit9CisKK1JldHVybjxTdGF0dXM+IENhbWVyYURldmljZTo6c2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3N0cmluZyYgcGFyYW1zKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+c2V0X3BhcmFtZXRlcnMpIHsKKyAgICAgICAgcmV0dXJuIGdldEhpZGxTdGF0dXMobURldmljZS0+b3BzLT5zZXRfcGFyYW1ldGVycyhtRGV2aWNlLCBwYXJhbXMuY19zdHIoKSkpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpnZXRQYXJhbWV0ZXJzKGdldFBhcmFtZXRlcnNfY2IgX2hpZGxfY2IpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBoaWRsX3N0cmluZyBvdXRTdHI7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICBfaGlkbF9jYihvdXRTdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5nZXRfcGFyYW1ldGVycykgeworICAgICAgICBjaGFyICp0ZW1wID0gbURldmljZS0+b3BzLT5nZXRfcGFyYW1ldGVycyhtRGV2aWNlKTsKKyAgICAgICAgb3V0U3RyID0gdGVtcDsKKyAgICAgICAgaWYgKG1EZXZpY2UtPm9wcy0+cHV0X3BhcmFtZXRlcnMpIHsKKyAgICAgICAgICAgIG1EZXZpY2UtPm9wcy0+cHV0X3BhcmFtZXRlcnMobURldmljZSwgdGVtcCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmcmVlKHRlbXApOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKG91dFN0cik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpzZW5kQ29tbWFuZChDb21tYW5kVHlwZSBjbWQsIGludDMyX3QgYXJnMSwgaW50MzJfdCBhcmcyKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+c2VuZF9jb21tYW5kKSB7CisgICAgICAgIHJldHVybiBnZXRIaWRsU3RhdHVzKG1EZXZpY2UtPm9wcy0+c2VuZF9jb21tYW5kKG1EZXZpY2UsIChpbnQzMl90KSBjbWQsIGFyZzEsIGFyZzIpKTsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6Y2xvc2UoKSB7CisgICAgQUxPR0koIkNsb3NpbmcgY2FtZXJhICVzIiwgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYobURldmljZSkgeworICAgICAgICBpbnQgcmMgPSBtRGV2aWNlLT5jb21tb24uY2xvc2UoJm1EZXZpY2UtPmNvbW1vbik7CisgICAgICAgIGlmIChyYyAhPSBPSykgeworICAgICAgICAgICAgQUxPR0UoIkNvdWxkIG5vdCBjbG9zZSBjYW1lcmEgJXM6ICVkIiwgbUNhbWVyYUlkLmNfc3RyKCksIHJjKTsKKyAgICAgICAgfQorICAgICAgICBtRGV2aWNlID0gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRldmljZQorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8xLjAvZGVmYXVsdC9DYW1lcmFEZXZpY2VfMV8wLmggYi9jYW1lcmEvZGV2aWNlLzEuMC9kZWZhdWx0L0NhbWVyYURldmljZV8xXzAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTVhNDliCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvZGVmYXVsdC9DYW1lcmFEZXZpY2VfMV8wLmgKQEAgLTAsMCArMSwyMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WMV8wX0NBTUVSQURFVklDRV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WMV8wX0NBTUVSQURFVklDRV9ICisKKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgInV0aWxzL011dGV4LmgiCisjaW5jbHVkZSAidXRpbHMvU29ydGVkVmVjdG9yLmgiCisjaW5jbHVkZSAiQ2FtZXJhTW9kdWxlLmgiCisjaW5jbHVkZSAiSGFuZGxlSW1wb3J0ZXIuaCIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9hbGxvY2F0b3IvMS4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgZGV2aWNlIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpDYW1lcmFSZXNvdXJjZUNvc3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlRvcmNoTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1vZHVsZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkhhbmRsZUltcG9ydGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OkNhbWVyYUluZm87Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6Q29tbWFuZFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpNZW1vcnlJZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgQ2FtZXJhRGV2aWNlIDogcHVibGljIElDYW1lcmFEZXZpY2UgeworCisgICAgLy8gQ2FsbGVkIGJ5IHByb3ZpZGVyIEhBTC4gUHJvdmlkZXIgSEFMIG11c3QgZW5zdXJlIHRoZSB1bmlxdWVuZXNzIG9mCisgICAgLy8gQ2FtZXJhRGV2aWNlIG9iamVjdCBwZXIgY2FtZXJhSWQsIG9yIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIENhbWVyYURldmljZQorICAgIC8vIHRyeWluZyB0byBhY2Nlc3MgdGhlIHNhbWUgcGh5c2ljYWwgY2FtZXJhLgorICAgIC8vIEFsc28sIHByb3ZpZGVyIHdpbGwgaGF2ZSB0byBrZWVwIHRyYWNrIG9mIGFsbCBDYW1lcmFEZXZpY2Ugb2JqZWN0cyBpbgorICAgIC8vIG9yZGVyIHRvIG5vdGlmeSBDYW1lcmFEZXZpY2Ugd2hlbiB0aGUgdW5kZXJseWluZyBjYW1lcmEgaXMgZGV0YWNoZWQKKyAgICBDYW1lcmFEZXZpY2Uoc3A8Q2FtZXJhTW9kdWxlPiBtb2R1bGUsCisgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjYW1lcmFJZCwKKyAgICAgICAgICAgICAgICAgY29uc3QgU29ydGVkVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiYgY2FtZXJhRGV2aWNlTmFtZXMpOworICAgIH5DYW1lcmFEZXZpY2UoKTsKKworICAgIC8vIENhbGxlciBtdXN0IHVzZSB0aGlzIG1ldGhvZCB0byBjaGVjayBpZiBDYW1lcmFEZXZpY2UgY3RvciBmYWlsZWQKKyAgICBib29sIGlzSW5pdEZhaWxlZCgpIHsgcmV0dXJuIG1Jbml0RmFpbDsgfQorICAgIC8vIFVzZWQgYnkgcHJvdmlkZXIgSEFMIHRvIHNpZ25hbCBleHRlcm5hbCBjYW1lcmEgZGlzY29ubmVjdGVkCisgICAgdm9pZCBzZXRDb25uZWN0aW9uU3RhdHVzKGJvb2wgY29ubmVjdGVkKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZSBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldFJlc291cmNlQ29zdChnZXRSZXNvdXJjZUNvc3RfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDYW1lcmFJbmZvKGdldENhbWVyYUluZm9fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHNldFRvcmNoTW9kZShUb3JjaE1vZGUgbW9kZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gZHVtcFN0YXRlKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gb3Blbihjb25zdCBzcDxJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gc2V0UHJldmlld1dpbmRvdyhjb25zdCBzcDxJQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrPiYgd2luZG93KSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZW5hYmxlTXNnVHlwZSh1aW50MzJfdCBtc2dUeXBlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGlzYWJsZU1zZ1R5cGUodWludDMyX3QgbXNnVHlwZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IG1zZ1R5cGVFbmFibGVkKHVpbnQzMl90IG1zZ1R5cGUpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHN0YXJ0UHJldmlldygpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzdG9wUHJldmlldygpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBwcmV2aWV3RW5hYmxlZCgpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHN0b3JlTWV0YURhdGFJbkJ1ZmZlcnMoYm9vbCBlbmFibGUpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHN0YXJ0UmVjb3JkaW5nKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHN0b3BSZWNvcmRpbmcoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gcmVjb3JkaW5nRW5hYmxlZCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiByZWxlYXNlUmVjb3JkaW5nRnJhbWUodWludDMyX3QgbWVtSWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4KSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcmVsZWFzZVJlY29yZGluZ0ZyYW1lSGFuZGxlKAorICAgICAgICAgICAgdWludDMyX3QgbWVtSWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4LCBjb25zdCBoaWRsX2hhbmRsZSYgZnJhbWUpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiByZWxlYXNlUmVjb3JkaW5nRnJhbWVIYW5kbGVCYXRjaCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFZpZGVvRnJhbWVNZXNzYWdlPiYpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IGF1dG9Gb2N1cygpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IGNhbmNlbEF1dG9Gb2N1cygpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHRha2VQaWN0dXJlKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gY2FuY2VsUGljdHVyZSgpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF9zdHJpbmcmIHBhcmFtcykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcnMoZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gc2VuZENvbW1hbmQoQ29tbWFuZFR5cGUgY21kLCBpbnQzMl90IGFyZzEsIGludDMyX3QgYXJnMikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsb3NlKCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgc3RydWN0IENhbWVyYU1lbW9yeSA6IHB1YmxpYyBjYW1lcmFfbWVtb3J5X3QgeworICAgICAgICBNZW1vcnlJZCBtSWQ7CisgICAgICAgIENhbWVyYURldmljZSogbURldmljZTsKKyAgICB9OworCisgICAgY2xhc3MgQ2FtZXJhSGVhcE1lbW9yeSA6IHB1YmxpYyBSZWZCYXNlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIENhbWVyYUhlYXBNZW1vcnkoaW50IGZkLCBzaXplX3QgYnVmX3NpemUsIHVpbnRfdCBudW1fYnVmZmVycyA9IDEpOworICAgICAgICBleHBsaWNpdCBDYW1lcmFIZWFwTWVtb3J5KAorICAgICAgICAgICAgc3A8SUFsbG9jYXRvcj4gYXNobWVtQWxsb2NhdG9yLCBzaXplX3QgYnVmX3NpemUsIHVpbnRfdCBudW1fYnVmZmVycyA9IDEpOworICAgICAgICB2b2lkIGNvbW1vbkluaXRpYWxpemF0aW9uKCk7CisgICAgICAgIHZpcnR1YWwgfkNhbWVyYUhlYXBNZW1vcnkoKTsKKworICAgICAgICBzaXplX3QgbUJ1ZlNpemU7CisgICAgICAgIHVpbnRfdCBtTnVtQnVmczsKKworICAgICAgICAvLyBTaGFyZWQgbWVtb3J5IHJlbGF0ZWQgbWVtYmVycworICAgICAgICBoaWRsX21lbW9yeSAgICAgIG1IaWRsSGVhcDsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV90KiBtSGlkbEhhbmRsZTsgLy8gY29udGFpbnMgb25lIHNoYXJlZCBtZW1vcnkgRkQKKyAgICAgICAgdm9pZCogICAgICAgICAgICBtSGlkbEhlYXBNZW1EYXRhOworICAgICAgICBzcDxJTWVtb3J5PiAgICAgIG1IaWRsSGVhcE1lbW9yeTsgLy8gbXVubWFwIGhhcHBlbnMgaW4gfklNZW1vcnkoKQorCisgICAgICAgIENhbWVyYU1lbW9yeSBoYW5kbGU7CisgICAgfTsKKyAgICBzcDxJQWxsb2NhdG9yPiBtQXNobWVtQWxsb2NhdG9yOworCisgICAgY29uc3Qgc3A8Q2FtZXJhTW9kdWxlPiBtTW9kdWxlOworICAgIGNvbnN0IHN0ZDo6c3RyaW5nIG1DYW1lcmFJZDsKKyAgICAvLyBjb25zdCBhZnRlciBjdG9yCisgICAgaW50ICAgbUNhbWVyYUlkSW50OworICAgIGludCAgIG1EZXZpY2VWZXJzaW9uOworCisgICAgY2FtZXJhX2RldmljZV90KiBtRGV2aWNlID0gbnVsbHB0cjsKKworICAgIHZvaWQgaW5pdEhhbFByZXZpZXdXaW5kb3coKTsKKyAgICBzdHJ1Y3QgQ2FtZXJhUHJldmlld1dpbmRvdyA6IHB1YmxpYyBwcmV2aWV3X3N0cmVhbV9vcHMgeworICAgICAgICAvLyBDYWxsZWQgd2hlbiB3ZSBleHBlY3QgYnVmZmVyIHdpbGwgYmUgcmUtYWxsb2NhdGVkCisgICAgICAgIHZvaWQgY2xlYW5VcENpcmN1bGF0aW5nQnVmZmVycygpOworCisgICAgICAgIE11dGV4IG1Mb2NrOworICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrPiBtUHJldmlld0NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICAgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQ2NF90LCBidWZmZXJfaGFuZGxlX3Q+IG1DaXJjdWxhdGluZ0J1ZmZlcnM7CisgICAgICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxidWZmZXJfaGFuZGxlX3QqLCB1aW50NjRfdD4gbUJ1ZmZlcklkTWFwOworICAgIH0gbUhhbFByZXZpZXdXaW5kb3c7CisKKyAgICAvLyBnYXRpbmcgYWNjZXNzIHRvIG1EZXZpY2UsIG1Jbml0RmFpbCwgbURpc2Nvbm5lY3RlZAorICAgIG11dGFibGUgTXV0ZXggbUxvY2s7CisKKyAgICBib29sICBtSW5pdEZhaWwgPSBmYWxzZTsKKyAgICAvLyBTZXQgYnkgcHJvdmlkZXIgKHdoZW4gZXh0ZXJuYWwgY2FtZXJhIGlzIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQpCisgICAgYm9vbCAgbURpc2Nvbm5lY3RlZDsKKworICAgIHN0YXRpYyBIYW5kbGVJbXBvcnRlciBzSGFuZGxlSW1wb3J0ZXI7CisKKyAgICBjb25zdCBTb3J0ZWRWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4+JiBtQ2FtZXJhRGV2aWNlTmFtZXM7CisKKyAgICBzcDxJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s+IG1EZXZpY2VDYWxsYmFjayA9IG51bGxwdHI7CisKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8TWVtb3J5SWQsIENhbWVyYUhlYXBNZW1vcnkqPiBtTWVtb3J5TWFwOworCisgICAgYm9vbCBtTWV0YWRhdGFNb2RlID0gZmFsc2U7CisKKyAgICBtdXRhYmxlIE11dGV4IG1CYXRjaExvY2s7CisgICAgLy8gU3RhcnQgb2YgcHJvdGVjdGlvbiBzY29wZSBmb3IgbUJhdGNoTG9jaworICAgIHVpbnQzMl90IG1CYXRjaFNpemUgPSAwOyAvLyAwIGZvciBub24tYmF0Y2ggbW9kZSwgc2V0IHRvIG90aGVyIHZhbHVlIHRvIHN0YXJ0IGJhdGNoaW5nCisgICAgaW50MzJfdCBtQmF0Y2hNc2dUeXBlOyAgIC8vIE1heWJlIG9ubHkgYWxsb3cgRGF0YUNhbGxiYWNrTXNnOjpWSURFT19GUkFNRT8KKyAgICBzdGQ6OnZlY3RvcjxIYW5kbGVUaW1lc3RhbXBNZXNzYWdlPiBtSW5mbGlnaHRCYXRjaDsKKyAgICAvLyBFbmQgb2YgcHJvdGVjdGlvbiBzY29wZSBmb3IgbUJhdGNoTG9jaworCisgICAgdm9pZCBoYW5kbGVDYWxsYmFja1RpbWVzdGFtcCgKKyAgICAgICAgICAgIG5zZWNzX3QgdGltZXN0YW1wLCBpbnQzMl90IG1zZ190eXBlLAorICAgICAgICAgICAgTWVtb3J5SWQgbWVtSWQgLCB1bnNpZ25lZCBpbmRleCwgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUpOworICAgIHZvaWQgcmVsZWFzZVJlY29yZGluZ0ZyYW1lTG9ja2VkKHVpbnQzMl90IG1lbUlkLCB1aW50MzJfdCBidWZmZXJJbmRleCwgY29uc3QgbmF0aXZlX2hhbmRsZV90Kik7CisKKyAgICAvLyBzaGFyZWQgbWVtb3J5IG1ldGhvZHMKKyAgICBzdGF0aWMgY2FtZXJhX21lbW9yeV90KiBzR2V0TWVtb3J5KGludCBmZCwgc2l6ZV90IGJ1Zl9zaXplLCB1aW50X3QgbnVtX2J1ZnMsIHZvaWQgKnVzZXIpOworICAgIHN0YXRpYyB2b2lkIHNQdXRNZW1vcnkoY2FtZXJhX21lbW9yeV90ICpkYXRhKTsKKworICAgIC8vIERldmljZSBjYWxsYmFjayBmb3J3YXJkaW5nIG1ldGhvZHMKKyAgICBzdGF0aWMgdm9pZCBzTm90aWZ5Q2IoaW50MzJfdCBtc2dfdHlwZSwgaW50MzJfdCBleHQxLCBpbnQzMl90IGV4dDIsIHZvaWQgKnVzZXIpOworICAgIHN0YXRpYyB2b2lkIHNEYXRhQ2IoaW50MzJfdCBtc2dfdHlwZSwgY29uc3QgY2FtZXJhX21lbW9yeV90ICpkYXRhLCB1bnNpZ25lZCBpbnQgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICBjYW1lcmFfZnJhbWVfbWV0YWRhdGFfdCAqbWV0YWRhdGEsIHZvaWQgKnVzZXIpOworICAgIHN0YXRpYyB2b2lkIHNEYXRhQ2JUaW1lc3RhbXAobnNlY3NfdCB0aW1lc3RhbXAsIGludDMyX3QgbXNnX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWVtb3J5X3QgKmRhdGEsIHVuc2lnbmVkIGluZGV4LCB2b2lkICp1c2VyKTsKKworICAgIC8vIFByZXZpZXcgd2luZG93IGNhbGxiYWNrIGZvcndhcmRpbmcgbWV0aG9kcworICAgIHN0YXRpYyBpbnQgc0RlcXVldWVCdWZmZXIoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCoqIGJ1ZmZlciwgaW50ICpzdHJpZGUpOworCisgICAgc3RhdGljIGludCBzTG9ja0J1ZmZlcihzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBidWZmZXJfaGFuZGxlX3QqIGJ1ZmZlcik7CisKKyAgICBzdGF0aWMgaW50IHNFbnF1ZXVlQnVmZmVyKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsIGJ1ZmZlcl9oYW5kbGVfdCogYnVmZmVyKTsKKworICAgIHN0YXRpYyBpbnQgc0NhbmNlbEJ1ZmZlcihzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBidWZmZXJfaGFuZGxlX3QqIGJ1ZmZlcik7CisKKyAgICBzdGF0aWMgaW50IHNTZXRCdWZmZXJDb3VudChzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBpbnQgY291bnQpOworCisgICAgc3RhdGljIGludCBzU2V0QnVmZmVyc0dlb21ldHJ5KHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IGZvcm1hdCk7CisKKyAgICBzdGF0aWMgaW50IHNTZXRDcm9wKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMgKncsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQgcmlnaHQsIGludCBib3R0b20pOworCisgICAgc3RhdGljIGludCBzU2V0VGltZXN0YW1wKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMgKncsIGludDY0X3QgdGltZXN0YW1wKTsKKworICAgIHN0YXRpYyBpbnQgc1NldFVzYWdlKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsIGludCB1c2FnZSk7CisKKyAgICBzdGF0aWMgaW50IHNTZXRTd2FwSW50ZXJ2YWwoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyAqdywgaW50IGludGVydmFsKTsKKworICAgIHN0YXRpYyBpbnQgc0dldE1pblVuZGVxdWV1ZWRCdWZmZXJDb3VudChjb25zdCBzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzICp3LCBpbnQgKmNvdW50KTsKKworICAgIC8vIGNvbnZlcnQgY29udmVudGlvbmFsIEhBTCBzdGF0dXMgdG8gSElETCBTdGF0dXMKKyAgICBzdGF0aWMgU3RhdHVzIGdldEhpZGxTdGF0dXMoY29uc3QgaW50Jik7CisgICAgc3RhdGljIHN0YXR1c190IGdldFN0YXR1c1QoY29uc3QgU3RhdHVzJiBzKTsKKworICAgIFN0YXR1cyBpbml0U3RhdHVzKCkgY29uc3Q7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZGV2aWNlCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfREVWSUNFX1YxXzBfQ0FNRVJBREVWSUNFX0gKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMS4wL3R5cGVzLmhhbCBiL2NhbWVyYS9kZXZpY2UvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTUyMDVlCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMjg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wOworCitlbnVtIENhbWVyYUZhY2luZyA6IHVpbnQzMl90IHsKKyAgICAvKiogVGhlIGZhY2luZyBvZiB0aGUgY2FtZXJhIGlzIG9wcG9zaXRlIHRvIHRoYXQgb2YgdGhlIHNjcmVlbi4gKi8KKyAgICBCQUNLID0gMCwKKyAgICAvKiogVGhlIGZhY2luZyBvZiB0aGUgY2FtZXJhIGlzIHRoZSBzYW1lIGFzIHRoYXQgb2YgdGhlIHNjcmVlbi4gKi8KKyAgICBGUk9OVCA9IDEsCisgICAgLyoqCisgICAgICogVGhlIGZhY2luZyBvZiB0aGUgY2FtZXJhIGlzIG5vdCBmaXhlZCByZWxhdGl2ZSB0byB0aGUgc2NyZWVuLgorICAgICAqIFRoZSBjYW1lcmFzIHdpdGggdGhpcyBmYWNpbmcgYXJlIGV4dGVybmFsIGNhbWVyYXMsIGUuZy4gVVNCIGNhbWVyYXMuCisgICAgICovCisgICAgRVhURVJOQUwgPSAyCit9OworCisvKioKKyAqIEJhc2ljIGluZm9ybWF0aW9uIGFib3V0IGEgY2FtZXJhIGRldmljZSwgYWx3YXlzIGFjY2Vzc2libGUgdmlhCisgKiBJQ2FtZXJhRGV2aWNlOjpnZXRDYW1lcmFJbmZvKCkuCisgKi8KK3N0cnVjdCBDYW1lcmFJbmZvIHsKKyAgICAvKioKKyAgICAgKiBUaGUgZGlyZWN0aW9uIHRoYXQgdGhpcyBkZXZpY2UgZmFjZXMuCisgICAgICovCisgICAgQ2FtZXJhRmFjaW5nIGZhY2luZzsKKworICAgIC8qKgorICAgICAqIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgY2FtZXJhIGltYWdlLiBUaGUgdmFsdWUgaXMgdGhlIGFuZ2xlIHRoYXQgdGhlCisgICAgICogY2FtZXJhIGltYWdlIG5lZWRzIHRvIGJlIHJvdGF0ZWQgY2xvY2t3aXNlIHNvIGl0IHNob3dzIGNvcnJlY3RseSBvbiB0aGUKKyAgICAgKiBkaXNwbGF5IGluIGl0cyBuYXR1cmFsIG9yaWVudGF0aW9uLiBJdCBtdXN0IGJlIDAsIDkwLCAxODAsIG9yIDI3MC4KKyAgICAgKgorICAgICAqIEZvciBleGFtcGxlLCBzdXBwb3NlIGEgZGV2aWNlIGhhcyBhIG5hdHVyYWxseSB0YWxsIHNjcmVlbi4gVGhlCisgICAgICogYmFjay1mYWNpbmcgY2FtZXJhIHNlbnNvciBpcyBtb3VudGVkIGluIGxhbmRzY2FwZS4gWW91IGFyZSBsb29raW5nIGF0IHRoZQorICAgICAqIHNjcmVlbi4gSWYgdGhlIHRvcCBzaWRlIG9mIHRoZSBjYW1lcmEgc2Vuc29yIGlzIGFsaWduZWQgd2l0aCB0aGUgcmlnaHQKKyAgICAgKiBlZGdlIG9mIHRoZSBzY3JlZW4gaW4gbmF0dXJhbCBvcmllbnRhdGlvbiwgdGhlIHZhbHVlIG11c3QgYmUgOTAuIElmIHRoZQorICAgICAqIHRvcCBzaWRlIG9mIGEgZnJvbnQtZmFjaW5nIGNhbWVyYSBzZW5zb3IgaXMgYWxpZ25lZCB3aXRoIHRoZSByaWdodCBvZiB0aGUKKyAgICAgKiBzY3JlZW4sIHRoZSB2YWx1ZSBtdXN0IGJlIDI3MC4KKyAgICAgKgorICAgICAqIEFuIGV4dGVybmFsIGNhbWVyYSBkZXZpY2UgbXVzdCBsZWF2ZSB0aGlzIHNldCB0byAwLgorICAgICAqCisgICAgICovCisgICAgdWludDMyX3Qgb3JpZW50YXRpb247CisKK307CisKKy8qKgorICogTWVzc2FnZSB0eXBlcyBmb3IgSUNhbWVyYURldmljZUAxLjA6OmVuYWJsZU1zZ1R5cGUoKS9kaXNhYmxlTXNnVHlwZSgpCisgKgorICogQSBzZXQgb2YgYml0IG1hc2tzIGZvciBzcGVjaWZ5aW5nIGhvdyB0aGUgcmVjZWl2ZWQgcHJldmlldyBmcmFtZXMgYXJlCisgKiBoYW5kbGVkIGJlZm9yZSB0aGUgcHJldmlld0NhbGxiYWNrKCkgY2FsbC4KKyAqCisgKiBUaGUgbGVhc3Qgc2lnbmlmaWNhbnQgMyBiaXRzIG9mIGFuICJpbnQiIHZhbHVlIGFyZSB1c2VkIGZvciB0aGlzIHB1cnBvc2U6CisgKgorICogLi4uLi4gMCAwIDAKKyAqICAgICAgIF4gXiBeCisgKiAgICAgICB8IHwgfC0tLS0tLS0tLT4gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNhbGxiYWNrIGlzIGVuYWJsZWQgb3Igbm90CisgKiAgICAgICB8IHwtLS0tLS0tLS0tLT4gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNhbGxiYWNrIGlzIG9uZS1zaG90IG9yIG5vdAorICogICAgICAgfC0tLS0tLS0tLS0tLS0+IGRldGVybWluZSB3aGV0aGVyIHRoZSBmcmFtZSBpcyBjb3BpZWQgb3V0IG9yIG5vdAorICoKKyAqIFdBUk5JTkc6IFdoZW4gYSBmcmFtZSBpcyBzZW50IGRpcmVjdGx5IHdpdGhvdXQgY29weWluZywgaXQgaXMgdGhlIGZyYW1lCisgKiByZWNlaXZlcidzIHJlc3BvbnNpYmxpdHkgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGZyYW1lIGRhdGEgd29uJ3QgZ2V0CisgKiBjb3JydXB0ZWQgYnkgc3Vic2VxdWVudCBwcmV2aWV3IGZyYW1lcyBmaWxsZWQgYnkgdGhlIGNhbWVyYS4gVGhpcyBmbGFnIGlzCisgKiByZWNvbW1lbmRlZCBvbmx5IHdoZW4gY29weWluZyBvdXQgZGF0YSBicmluZ3Mgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgcHJpY2UKKyAqIGFuZCB0aGUgaGFuZGxpbmcvcHJvY2Vzc2luZyBvZiB0aGUgcmVjZWl2ZWQgZnJhbWUgZGF0YSBpcyBhbHdheXMgZmFzdGVyIHRoYW4KKyAqIHRoZSBwcmV2aWV3IGZyYW1lIHJhdGUgc28gdGhhdCBkYXRhIGNvcnJ1cHRpb24gd29uJ3Qgb2NjdXIuCisgKgorICogRm9yIGluc3RhbmNlLAorICogMS4gMHgwMCBkaXNhYmxlcyB0aGUgY2FsbGJhY2suIEluIHRoaXMgY2FzZSwgY29weSBvdXQgYW5kIG9uZSBzaG90IGJpdHMKKyAqICAgIGFyZSBpZ25vcmVkLgorICogMi4gMHgwMSBlbmFibGVzIGEgY2FsbGJhY2sgd2l0aG91dCBjb3B5aW5nIG91dCB0aGUgcmVjZWl2ZWQgZnJhbWVzLiBBCisgKiAgICB0eXBpY2FsIHVzZSBjYXNlIGlzIHRoZSBDYW1jb3JkZXIgYXBwbGljYXRpb24gdG8gYXZvaWQgbWFraW5nIGNvc3RseQorICogICAgZnJhbWUgY29waWVzLgorICogMy4gMHgwNSBpcyBlbmFibGluZyBhIGNhbGxiYWNrIHdpdGggZnJhbWUgY29waWVkIG91dCByZXBlYXRlZGx5LiBBIHR5cGljYWwKKyAqICAgIHVzZSBjYXNlIGlzIHRoZSBDYW1lcmEgYXBwbGljYXRpb24uCisgKiA0LiAweDA3IGlzIGVuYWJsaW5nIGEgY2FsbGJhY2sgd2l0aCBmcmFtZSBjb3BpZWQgb3V0IG9ubHkgb25jZS4gQSB0eXBpY2FsCisgKiAgICB1c2UgY2FzZSBpcyB0aGUgQmFyY29kZSBzY2FubmVyIGFwcGxpY2F0aW9uLgorICovCitlbnVtIEZyYW1lQ2FsbGJhY2tGbGFnIDogdWludDMyX3QgeworICAgIEVOQUJMRV9NQVNLID0gMHgwMSwKKyAgICBPTkVfU0hPVF9NQVNLID0gMHgwMiwKKyAgICBDT1BZX09VVF9NQVNLID0gMHgwNCwKKyAgICAvKiogVHlwaWNhbCB1c2UgY2FzZXMgKi8KKyAgICBOT09QID0gMHgwMCwKKyAgICBDQU1DT1JERVIgPSAweDAxLAorICAgIENBTUVSQSA9IDB4MDUsCisgICAgQkFSQ09ERV9TQ0FOTkVSID0gMHgwNworfTsKKwordHlwZWRlZiBiaXRmaWVsZDxGcmFtZUNhbGxiYWNrRmxhZz4gRnJhbWVDYWxsYmFja0ZsYWdzOworCisvKioKKyAqIFN1YnNldCBvZiBjb21tYW5kcyBpbiAvc3lzdGVtL2NvcmUvaW5jbHVkZS9zeXN0ZW0vY2FtZXJhLmggcmVsZXZhbnQgZm9yCisgKiBJQ2FtZXJhRGV2aWNlQDEuMDo6c2VuZENvbW1hbmQoKQorICovCitlbnVtIENvbW1hbmRUeXBlIDogdWludDMyX3QgeworICAgIFNUQVJUX1NNT09USF9aT09NID0gMSwKKyAgICBTVE9QX1NNT09USF9aT09NID0gMiwKKworICAgIC8qKgorICAgICAqIFN0YXJ0IHRoZSBmYWNlIGRldGVjdGlvbi4gVGhpcyBtdXN0IGJlIGNhbGxlZCBvbmx5IGFmdGVyIHByZXZpZXcgaXMKKyAgICAgKiBzdGFydGVkLiAgVGhlIGNhbWVyYSBtdXN0IG5vdGlmeSB0aGUgbGlzdGVuZXIgb2YgQ0FNRVJBX01TR19GQUNFIGFuZCB0aGUKKyAgICAgKiBkZXRlY3RlZCBmYWNlcyBpbiB0aGUgcHJldmlldyBmcmFtZS4gVGhlIGRldGVjdGVkIGZhY2VzIG1heSBiZSB0aGUgc2FtZQorICAgICAqIGFzIHRoZSBwcmV2aW91cyBvbmVzLiBBcHBzIG11c3QgY2FsbCBDQU1FUkFfQ01EX1NUT1BfRkFDRV9ERVRFQ1RJT04gdG8KKyAgICAgKiBzdG9wIHRoZSBmYWNlIGRldGVjdGlvbi4gVGhpcyBtZXRob2QgaXMgc3VwcG9ydGVkIGlmIENhbWVyYVBhcmFtZXRlcnMKKyAgICAgKiBLRVlfTUFYX05VTV9IV19ERVRFQ1RFRF9GQUNFUyBvciBLRVlfTUFYX05VTV9TV19ERVRFQ1RFRF9GQUNFUyBpcyBiaWdnZXIKKyAgICAgKiB0aGFuIDAuIEhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBmYWNlIGRldGVjdGlvbiBtdXN0IG5vdCBiZSBydW5uaW5nIGF0IHRoZQorICAgICAqIHNhbWUgdGltZS4gSWYgdGhlIGZhY2UgZGV0ZWN0aW9uIGhhcyBzdGFydGVkLCBhcHBzIG11c3Qgbm90IHNlbmQgdGhpcworICAgICAqIGFnYWluLgorICAgICAqCisgICAgICogSW4gaGFyZHdhcmUgZmFjZSBkZXRlY3Rpb24gbW9kZSwgQ2FtZXJhUGFyYW1ldGVycyBLRVlfV0hJVEVfQkFMQU5DRSwKKyAgICAgKiBLRVlfRk9DVVNfQVJFQVMgYW5kIEtFWV9NRVRFUklOR19BUkVBUyBoYXZlIG5vIGVmZmVjdC4KKyAgICAgKgorICAgICAqIGFyZzEgaXMgdGhlIGZhY2UgZGV0ZWN0aW9uIHR5cGUuIEl0IGNhbiBiZSBDQU1FUkFfRkFDRV9ERVRFQ1RJT05fSFcgb3IKKyAgICAgKiBDQU1FUkFfRkFDRV9ERVRFQ1RJT05fU1cuIElmIHRoZSB0eXBlIG9mIGZhY2UgZGV0ZWN0aW9uIHJlcXVlc3RlZCBpcyBub3QKKyAgICAgKiBzdXBwb3J0ZWQsIHRoZSBIQUwgbXVzdCByZXR1cm4gQkFEX1ZBTFVFLgorICAgICAqLworICAgIFNUQVJUX0ZBQ0VfREVURUNUSU9OID0gNiwKKworICAgIC8qKgorICAgICAqIFN0b3AgdGhlIGZhY2UgZGV0ZWN0aW9uLgorICAgICAqLworICAgIFNUT1BfRkFDRV9ERVRFQ1RJT04gPSA3LAorCisgICAgLyoqCisgICAgICogRW5hYmxlL2Rpc2FibGUgZm9jdXMgbW92ZSBjYWxsYmFjayAoQ0FNRVJBX01TR19GT0NVU19NT1ZFKS4gUGFzc2luZworICAgICAqIGFyZzEgPSAwIG11c3QgZGlzYWJsZSwgd2hpbGUgcGFzc2luZyBhcmcxID0gMSBtdXN0IGVuYWJsZSB0aGUgY2FsbGJhY2suCisgICAgICovCisgICAgRU5BQkxFX0ZPQ1VTX01PVkVfTVNHID0gOCwKKworICAgIC8qKgorICAgICAqIENvbmZpZ3VyZSBhbiBleHBsaWNpdCBmb3JtYXQgdG8gdXNlIGZvciB2aWRlbyByZWNvcmRpbmcgbWV0YWRhdGEgbW9kZS4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHN3aXRjaCB0aGUgZm9ybWF0IGZyb20gdGhlCisgICAgICogZGVmYXVsdCBJTVBMRU1FTlRBVElPTl9ERUZJTkVEIGdyYWxsb2MgZm9ybWF0IHRvIHNvbWUgb3RoZXIKKyAgICAgKiBkZXZpY2Utc3VwcG9ydGVkIGZvcm1hdCwgYW5kIHRoZSBkZWZhdWx0IGRhdGFzcGFjZSBmcm9tIHRoZSBCVF83MDkgY29sb3IKKyAgICAgKiBzcGFjZSB0byBzb21lIG90aGVyIGRldmljZS1zdXBwb3J0ZWQgZGF0YXNwYWNlLiBhcmcxIGlzIHRoZSBIQUwgcGl4ZWwKKyAgICAgKiBmb3JtYXQsIGFuZCBhcmcyIGlzIHRoZSBIQUwgZGF0YVNwYWNlLiBUaGlzIGNvbW1hbmQgcmV0dXJucworICAgICAqIElOVkFMSURfT1BFUkFUSU9OIGVycm9yIGlmIGl0IGlzIHNlbnQgYWZ0ZXIgdmlkZW8gcmVjb3JkaW5nIGlzIHN0YXJ0ZWQsCisgICAgICogb3IgdGhlIGNvbW1hbmQgaXMgbm90IHN1cHBvcnRlZCBhdCBhbGwuCisgICAgICoKKyAgICAgKiBJZiB0aGUgZ3JhbGxvYyBmb3JtYXQgaXMgc2V0IHRvIGEgZm9ybWF0IG90aGVyIHRoYW4KKyAgICAgKiBJTVBMRU1FTlRBVElPTl9ERUZJTkVELCB0aGVuIEhBTHYzIGRldmljZXMgbXVzdCB1c2UgZ3JhbGxvYyB1c2FnZSBmbGFncworICAgICAqIG9mIFNXX1JFQURfT0ZURU4uCisgICAgICovCisgICAgU0VUX1ZJREVPX0ZPUk1BVCA9IDExCit9OworCisvKioKKyAqIE1lc3NhZ2UgdHlwZXMgZm9yIElDYW1lcmFEZXZpY2UxQ2FsbGJhY2s6Om5vdGlmeUNhbGxiYWNrKCkKKyAqLworZW51bSBOb3RpZnlDYWxsYmFja01zZyA6IHVpbnQzMl90IHsKKyAgICBFUlJPUiA9IDB4MDAwMSwKKyAgICBTSFVUVEVSID0gMHgwMDAyLAorICAgIEZPQ1VTID0gMHgwMDA0LAorICAgIFpPT00gPSAweDAwMDgsCisgICAgLy8gTm90aWZ5IG9uIGF1dG9mb2N1cyBzdGFydCBhbmQgc3RvcC4gVGhpcyBpcyB1c2VmdWwgaW4gY29udGludW91cworICAgIC8vIGF1dG9mb2N1cyAtIEZPQ1VTX01PREVfQ09OVElOVU9VU19WSURFTyBhbmQgRk9DVVNfTU9ERV9DT05USU5VT1VTX1BJQ1RVUkUuCisgICAgRk9DVVNfTU9WRSA9IDB4MDgwMAorfTsKKworLyoqCisgKiBNZXNzYWdlIHR5cGVzIGZvciBJQ2FtZXJhRGV2aWNlMUNhbGxiYWNrOjpkYXRhQ2FsbGJhY2soKSBhbmQKKyAqIElDYW1lcmFEZXZpY2UxQ2FsbGJhY2s6OmRhdGFDYWxsYmFja1RpbWVzdGFtcCgpCisgKi8KK2VudW0gRGF0YUNhbGxiYWNrTXNnIDogdWludDMyX3QgeworICAgIFBSRVZJRVdfRlJBTUUgPSAweDAwMTAsCisgICAgVklERU9fRlJBTUUgPSAweDAwMjAsCisgICAgUE9TVFZJRVdfRlJBTUUgPSAweDAwNDAsCisgICAgUkFXX0lNQUdFID0gMHgwMDgwLAorICAgIENPTVBSRVNTRURfSU1BR0UgPSAweDAxMDAsCisgICAgUkFXX0lNQUdFX05PVElGWSA9IDB4MDIwMCwKKyAgICAvLyBQcmV2aWV3IGZyYW1lIG1ldGFkYXRhLiBUaGlzIGNhbiBiZSBjb21iaW5lZCB3aXRoCisgICAgLy8gQ0FNRVJBX01TR19QUkVWSUVXX0ZSQU1FIGluIGRhdGFDYWxsYmFjay4gRm9yIGV4YW1wbGUsIHRoZSBhcHBzIGNhbgorICAgIC8vIHJlcXVlc3QgRlJBTUUgYW5kIE1FVEFEQVRBLiBPciB0aGUgYXBwcyBjYW4gcmVxdWVzdCBvbmx5IEZSQU1FIG9yIG9ubHkKKyAgICAvLyBNRVRBREFUQS4KKyAgICBQUkVWSUVXX01FVEFEQVRBID0gMHgwNDAwCit9OworCisvKioKKyAqIEluZm9ybWF0aW9uIGZvciBhIHNpbmdsZSBkZXRlY3RlZCBmYWNlLgorICovCisgc3RydWN0IENhbWVyYUZhY2UgeworICAgIC8qKgorICAgICAqIEJvdW5kcyBvZiB0aGUgZmFjZSBbbGVmdCwgdG9wLCByaWdodCwgYm90dG9tXS4gKC0xMDAwLCAtMTAwMCkgcmVwcmVzZW50cworICAgICAqIHRoZSB0b3AtbGVmdCBvZiB0aGUgY2FtZXJhIGZpZWxkIG9mIHZpZXcsIGFuZCAoMTAwMCwgMTAwMCkgcmVwcmVzZW50cyB0aGUKKyAgICAgKiBib3R0b20tcmlnaHQgb2YgdGhlIGZpZWxkIG9mIHZpZXcuIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IGNhbm5vdCBiZSAwIG9yCisgICAgICogbmVnYXRpdmUuIFRoaXMgaXMgc3VwcG9ydGVkIGJ5IGJvdGggaGFyZHdhcmUgYW5kIHNvZnR3YXJlIGZhY2UgZGV0ZWN0aW9uLgorICAgICAqCisgICAgICogVGhlIGRpcmVjdGlvbiBpcyByZWxhdGl2ZSB0byB0aGUgc2Vuc29yIG9yaWVudGF0aW9uLCB0aGF0IGlzLCB3aGF0IHRoZQorICAgICAqIHNlbnNvciBzZWVzLiBUaGUgZGlyZWN0aW9uIGlzIG5vdCBhZmZlY3RlZCBieSB0aGUgcm90YXRpb24gb3IgbWlycm9yaW5nCisgICAgICogb2YgQ0FNRVJBX0NNRF9TRVRfRElTUExBWV9PUklFTlRBVElPTi4KKyAgICAgKi8KKyAgICBpbnQzMl90WzRdIHJlY3Q7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29uZmlkZW5jZSBsZXZlbCBvZiB0aGUgZmFjZS4gVGhlIHJhbmdlIGlzIDEgdG8gMTAwLiAxMDAgaXMgdGhlCisgICAgICogaGlnaGVzdCBjb25maWRlbmNlLiBUaGlzIGlzIHN1cHBvcnRlZCBieSBib3RoIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZQorICAgICAqIGZhY2UgZGV0ZWN0aW9uLgorICAgICAqLworICAgIGludDMyX3Qgc2NvcmU7CisKKyAgICAvKioKKyAgICAgKiBBbiB1bmlxdWUgaWQgcGVyIGZhY2Ugd2hpbGUgdGhlIGZhY2UgaXMgdmlzaWJsZSB0byB0aGUgdHJhY2tlci4gSWYKKyAgICAgKiB0aGUgZmFjZSBsZWF2ZXMgdGhlIGZpZWxkLW9mLXZpZXcgYW5kIGNvbWVzIGJhY2ssIGl0IHdpbGwgZ2V0IGEgbmV3CisgICAgICogaWQuIElmIHRoZSB2YWx1ZSBpcyAwLCBpZCBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAqLworICAgIGludDMyX3QgaWQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29vcmRpbmF0ZXMgb2YgdGhlIGNlbnRlciBvZiB0aGUgbGVmdCBleWUuIFRoZSByYW5nZSBpcyAtMTAwMCB0bworICAgICAqIDEwMDAuIC0yMDAwLCAtMjAwMCBpZiB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgaW50MzJfdFsyXSBsZWZ0RXllOworCisgICAgLyoqCisgICAgICogVGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBjZW50ZXIgb2YgdGhlIHJpZ2h0IGV5ZS4gVGhlIHJhbmdlIGlzIC0xMDAwIHRvCisgICAgICogMTAwMC4gLTIwMDAsIC0yMDAwIGlmIHRoaXMgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBpbnQzMl90WzJdIHJpZ2h0RXllOworCisgICAgLyoqCisgICAgICogVGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBjZW50ZXIgb2YgdGhlIG1vdXRoLiBUaGUgcmFuZ2UgaXMgLTEwMDAgdG8gMTAwMC4KKyAgICAgKiAtMjAwMCwgLTIwMDAgaWYgdGhpcyBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAqLworICAgIGludDMyX3RbMl0gbW91dGg7CisKK307CisKKy8qKgorICogVGhlIG1ldGFkYXRhIG9mIHRoZSBmcmFtZSBkYXRhLCBzdWNoIGFzIGZhY2UgZGV0ZWN0aW9uIHJlc3VsdC4KKyAqLworc3RydWN0IENhbWVyYUZyYW1lTWV0YWRhdGEgeworICAgIC8qKgorICAgICAqIEEgdmVjdG9yIG9mIHRoZSBkZXRlY3RlZCBmYWNlcy4KKyAgICAgKi8KKyAgICB2ZWM8Q2FtZXJhRmFjZT4gZmFjZXM7Cit9OworCisvKioKKyAqIEEgc2ltcGxlIGludGVnZXIgaGFuZGxlIHRvIHVzZSB0byByZWZlcmVuY2UgYSBwYXJ0aWN1bGFyIG1lbW9yeSBidWZmZXIKKyAqIGJldHdlZW4gdGhlIEhBTCBhbmQgdGhlIGZyYW1ld29yay4KKyAqLwordHlwZWRlZiB1aW50MzJfdCBNZW1vcnlJZDsKKworLyoKKyAqIFN0cnVjdCBjb250YWluaW5nIGFyZ3VtZW50cyBvZiBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s6OmhhbmRsZUNhbGxiYWNrVGltZXN0YW1wLgorICogVXNlZCB0byBzZW5kIGEgYmF0Y2ggb2YgbWVzc2FnZXMgaW4gSUNhbWVyYURldmljZUNhbGxiYWNrOjpoYW5kbGVDYWxsYmFja1RpbWVzdGFtcEJhdGNoLgorICovCitzdHJ1Y3QgSGFuZGxlVGltZXN0YW1wTWVzc2FnZSB7CisgICAgLy8gVGhlIGhhbmRsZSBvZiBpbWFnZSBidWZmZXIgZGF0YS4KKyAgICBoYW5kbGUgZnJhbWVEYXRhOworCisgICAgLy8gQSBtZW1vcnkgaGFuZGxlIHRvIHRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgZGF0YQorICAgIE1lbW9yeUlkIGRhdGE7CisKKyAgICAvLyBUaGUgb2Zmc2V0IGludG8gdGhlIG1lbW9yeSBoYW5kbGUgd2hlcmUgdGhlIGJ1ZmZlciBzdGFydHMuCisgICAgdWludDMyX3QgYnVmZmVySW5kZXg7CisKKyAgICAvLyBUaGUgdGltZSB0aGlzIGJ1ZmZlciB3YXMgY2FwdHVyZWQgYnkgdGhlIGNhbWVyYSwgaW4gbmFub3NlY29uZHMKKyAgICBpbnQ2NF90IHRpbWVzdGFtcDsKK307CisKKy8qCisgKiBTdHJ1Y3QgY29udGFpbmluZyBhcmd1bWVudHMgb2YgSUNhbWVyYURldmljZTo6cmVsZWFzZVJlY29yZGluZ0ZyYW1lSGFuZGxlLgorICogVXNlZCBieSBjYW1lcmEgZnJhbWV3b3JrIHRvIHNlbmQgYSBiYXRjaCBvZiByZWNvcmRpbmcgZnJhbWVzIGJhY2sgdG8gY2FtZXJhIEhBTC4KKyAqLworc3RydWN0IFZpZGVvRnJhbWVNZXNzYWdlIHsKKyAgICAvLyBUaGUgaGFuZGxlIG9mIGltYWdlIGJ1ZmZlciBkYXRhLgorICAgIGhhbmRsZSBmcmFtZURhdGE7CisKKyAgICAvLyBBIG1lbW9yeSBoYW5kbGUgdG8gdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhCisgICAgTWVtb3J5SWQgZGF0YTsKKworICAgIC8vIFRoZSBvZmZzZXQgaW50byB0aGUgbWVtb3J5IGhhbmRsZSB3aGVyZSB0aGUgYnVmZmVyIHN0YXJ0cy4KKyAgICB1aW50MzJfdCBidWZmZXJJbmRleDsKK307CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9BbmRyb2lkLmJwIGIvY2FtZXJhL2RldmljZS8zLjIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmM4MGFiCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvQW5kcm9pZC5icApAQCAtMCwwICsxLDgxIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjJfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUNhbWVyYURldmljZS5oYWwiLAorICAgICAgICAiSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbCIsCisgICAgICAgICJJQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMiIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjJfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9DYW1lcmFEZXZpY2VBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQ2FtZXJhRGV2aWNlQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQ2FtZXJhRGV2aWNlU2Vzc2lvbkFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMl9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9JSHdDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JuSHdDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JwSHdDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JzQ2FtZXJhRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lId0NhbWVyYURldmljZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9Cbkh3Q2FtZXJhRGV2aWNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JwSHdDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQnNDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZVNlc3Npb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lId0NhbWVyYURldmljZVNlc3Npb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JuSHdDYW1lcmFEZXZpY2VTZXNzaW9uLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9CcEh3Q2FtZXJhRGV2aWNlU2Vzc2lvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQnNDYW1lcmFEZXZpY2VTZXNzaW9uLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMiIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjJfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMl9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZS5oYWwgYi9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjUyM2U0Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZS5oYWwKQEAgLTAsMCArMSwxOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjI7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlczsKK2ltcG9ydCBJQ2FtZXJhRGV2aWNlU2Vzc2lvbjsKK2ltcG9ydCBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s7CisKKy8qKgorICogQ2FtZXJhIGRldmljZSBIQUwsIGZpcnN0IG1vZGVybiB2ZXJzaW9uCisgKgorICogU3VwcG9ydHMgdGhlIGFuZHJvaWQuaGFyZHdhcmUuQ2FtZXJhIEFQSSwgYW5kIHRoZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIKKyAqIEFQSSBhdCBMSU1JVEVEIG9yIGJldHRlciBoYXJkd2FyZSBsZXZlbC4KKyAqCisgKi8KK2ludGVyZmFjZSBJQ2FtZXJhRGV2aWNlIHsKKworICAgIC8qKgorICAgICAqIEdldCBjYW1lcmEgZGV2aWNlIHJlc291cmNlIGNvc3QgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIHN1Y2Nlc3MKKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBBbiB1bmV4cGVjdGVkIGludGVybmFsIGNhbWVyYSBIQUwgZXJyb3Igb2NjdXJyZWQsIGFuZCB0aGUKKyAgICAgKiAgICAgICAgIHJlc291cmNlIGNvc3QgaXMgbm90IGF2YWlsYWJsZS4KKyAgICAgKiAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRDoKKyAgICAgKiAgICAgICAgIEFuIGV4dGVybmFsIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBhbmQgaXMgbm8gbG9uZ2VyCisgICAgICogICAgICAgICBhdmFpbGFibGUuIFRoaXMgY2FtZXJhIGRldmljZSBpbnRlcmZhY2UgaXMgbm93IHN0YWxlLCBhbmQgYSBuZXcKKyAgICAgKiAgICAgICAgIGluc3RhbmNlIG11c3QgYmUgYWNxdWlyZWQgaWYgdGhlIGRldmljZSBpcyByZWNvbm5lY3RlZC4gQWxsCisgICAgICogICAgICAgICBzdWJzZXF1ZW50IGNhbGxzIG9uIHRoaXMgaW50ZXJmYWNlIG11c3QgcmV0dXJuCisgICAgICogICAgICAgICBDQU1FUkFfRElTQ09OTkVDVEVELgorICAgICAqIEByZXR1cm4gcmVzb3VyY2VDb3N0CisgICAgICogICAgIFRoZSByZXNvdXJjZXMgcmVxdWlyZWQgdG8gb3BlbiB0aGlzIGNhbWVyYSBkZXZpY2UsIG9yIHVuc3BlY2lmaWVkCisgICAgICogICAgIHZhbHVlcyBpZiBzdGF0dXMgaXMgbm90IE9LLgorICAgICAqLworICAgIGdldFJlc291cmNlQ29zdCgpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgQ2FtZXJhUmVzb3VyY2VDb3N0IHJlc291cmNlQ29zdCk7CisKKyAgICAvKioKKyAgICAgKiBnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3M6CisgICAgICoKKyAgICAgKiBSZXR1cm4gdGhlIHN0YXRpYyBjYW1lcmEgaW5mb3JtYXRpb24gZm9yIHRoaXMgY2FtZXJhIGRldmljZS4gVGhpcworICAgICAqIGluZm9ybWF0aW9uIG1heSBub3QgY2hhbmdlIGJldHdlZW4gY29uc2VjdXRpdmUgY2FsbHMuCisgICAgICoKKyAgICAgKiBXaGVuIGFuIGV4dGVybmFsIGNhbWVyYSBpcyBkaXNjb25uZWN0ZWQsIGl0cyBjYW1lcmEgaWQgYmVjb21lcworICAgICAqIGludmFsaWQuIENhbGxpbmcgdGhpcyBtZXRob2Qgd2l0aCB0aGlzIGludmFsaWQgY2FtZXJhIGlkIG11c3QgcmVzdWx0IGluCisgICAgICogSUxMRUdBTF9BUkdVTUVOVDsgdGhpcyBtYXkgaGFwcGVuIGV2ZW4gYmVmb3JlIHRoZSBkZXZpY2Ugc3RhdHVzIGNhbGxiYWNrCisgICAgICogaXMgaW52b2tlZCBieSB0aGUgSEFMLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBhIHN1Y2Nlc3NmdWwgb3BlbiBvZiB0aGUgY2FtZXJhIGRldmljZS4KKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBUaGUgY2FtZXJhIGRldmljZSBjYW5ub3QgYmUgb3BlbmVkIGR1ZSB0byBhbiBpbnRlcm5hbAorICAgICAqICAgICAgICAgZXJyb3IuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBBbiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgYW5kIGlzIG5vIGxvbmdlcgorICAgICAqICAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3CisgICAgICogICAgICAgICBpbnN0YW5jZSBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbAorICAgICAqICAgICAgICAgc3Vic2VxdWVudCBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybgorICAgICAqICAgICAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gY2FtZXJhQ2hhcmFjdGVyaXN0aWNzCisgICAgICogICAgIFRoZSBzdGF0aWMgbWV0YWRhdGEgZm9yIHRoaXMgY2FtZXJhIGRldmljZSwgb3IgYW4gZW1wdHkgbWV0YWRhdGEKKyAgICAgKiAgICAgc3RydWN0dXJlIGlmIHN0YXR1cyBpcyBub3QgT0suCisgICAgICoKKyAgICAgKi8KKyAgICBnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MoKSBnZW5lcmF0ZXMKKyAgICAgICAgICAgIChTdGF0dXMgc3RhdHVzLCBDYW1lcmFNZXRhZGF0YSBjYW1lcmFDaGFyYWN0ZXJpc3RpY3MpOworCisgICAgLyoqCisgICAgICogc2V0VG9yY2hNb2RlOgorICAgICAqCisgICAgICogVHVybiBvbiBvciBvZmYgdGhlIHRvcmNoIG1vZGUgb2YgdGhlIGZsYXNoIHVuaXQgYXNzb2NpYXRlZCB3aXRoIHRoaXMKKyAgICAgKiBjYW1lcmEgZGV2aWNlLiBJZiB0aGUgb3BlcmF0aW9uIGlzIHN1Y2Nlc3NmdWwsIEhBTCBtdXN0IG5vdGlmeSB0aGUKKyAgICAgKiBmcmFtZXdvcmsgdG9yY2ggc3RhdGUgYnkgaW52b2tpbmcKKyAgICAgKiBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6dG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkgd2l0aCB0aGUgbmV3IHN0YXRlLgorICAgICAqCisgICAgICogQW4gYWN0aXZlIGNhbWVyYSBzZXNzaW9uIGhhcyBhIGhpZ2hlciBwcmlvcml0eSBhY2Nlc3NpbmcgdGhlIGZsYXNoCisgICAgICogdW5pdC4gV2hlbiB0aGVyZSBhcmUgYW55IHJlc291cmNlIGNvbmZsaWN0cywgc3VjaCBhcyB3aGVuIG9wZW4oKSBpcworICAgICAqIGNhbGxlZCB0byBmdWxseSBhY3RpdmF0ZSBhIGNhbWVyYSBkZXZpY2UsIHRoZSBwcm92aWRlciBtdXN0IG5vdGlmeSB0aGUKKyAgICAgKiBmcmFtZXdvcmsgdGhyb3VnaCBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6dG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkgdGhhdAorICAgICAqIHRoZSB0b3JjaCBtb2RlIGhhcyBiZWVuIHR1cm5lZCBvZmYgYW5kIHRoZSB0b3JjaCBtb2RlIHN0YXRlIGhhcyBiZWNvbWUKKyAgICAgKiBUT1JDSF9NT0RFX1NUQVRVU19OT1RfQVZBSUxBQkxFLiBXaGVuIHJlc291cmNlcyB0byB0dXJuIG9uIHRvcmNoIG1vZGUKKyAgICAgKiBiZWNvbWUgYXZhaWxhYmxlIGFnYWluLCB0aGUgcHJvdmlkZXIgbXVzdCBub3RpZnkgdGhlIGZyYW1ld29yayB0aHJvdWdoCisgICAgICogSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s6OnRvcmNoTW9kZVN0YXR1c0NoYW5nZSgpIHRoYXQgdGhlIHRvcmNoIG1vZGUKKyAgICAgKiBzdGF0ZSBoYXMgYmVjb21lIFRPUkNIX01PREVfU1RBVFVTX0FWQUlMQUJMRV9PRkYgZm9yIHNldF90b3JjaF9tb2RlKCkgdG8KKyAgICAgKiBiZSBjYWxsZWQuCisgICAgICoKKyAgICAgKiBXaGVuIHRoZSBjbGllbnQgY2FsbHMgc2V0VG9yY2hNb2RlKCkgdG8gdHVybiBvbiB0aGUgdG9yY2ggbW9kZSBvZiBhIGZsYXNoCisgICAgICogdW5pdCwgaWYgdGhlIEhBTCBjYW5ub3Qga2VlcCBtdWx0aXBsZSB0b3JjaCBtb2RlcyBvbiBzaW11bHRhbmVvdXNseSwgdGhlCisgICAgICogSEFMIG11c3QgdHVybiBvZmYgdGhlIHRvcmNoIG1vZGUocykgdGhhdCB3ZXJlIHR1cm5lZCBvbiBieSBwcmV2aW91cworICAgICAqIHNldFRvcmNoTW9kZSgpIGNhbGxzIGFuZCBub3RpZnkgdGhlIGZyYW1ld29yayB0aGF0IHRoZSB0b3JjaCBtb2RlIHN0YXRlCisgICAgICogb2YgdGhvc2UgZmxhc2ggdW5pdChzKSBoYXMgYmVjb21lIFRPUkNIX01PREVfU1RBVFVTX0FWQUlMQUJMRV9PRkYuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdG9yY2hNb2RlIFRoZSBuZXcgbW9kZSB0byBzZXQgdGhlIGRldmljZSBmbGFzaCB1bml0IHRvLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBhIHN1Y2Nlc3NmdWwgY2hhbmdlIHRvIHRoZSB0b3JjaCBzdGF0ZQorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIFRoZSBmbGFzaCB1bml0IGNhbm5vdCBiZSBvcGVyYXRlZCBkdWUgdG8gYW4gdW5leHBlY3RlZCBpbnRlcm5hbAorICAgICAqICAgICAgICAgZXJyb3IuCisgICAgICogICAgIElMTEVHQUxfQVJHVU1FTlQ6CisgICAgICogICAgICAgICBUaGUgY2FtZXJhIElEIGlzIHVua25vd24uCisgICAgICogICAgIENBTUVSQV9JTl9VU0U6CisgICAgICogICAgICAgICBUaGlzIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gb3BlbmVkLCBzbyB0aGUgdG9yY2ggY2Fubm90IGJlCisgICAgICogICAgICAgICBjb250cm9sbGVkIHVudGlsIGl0IGlzIGNsb3NlZC4KKyAgICAgKiAgICAgTUFYX0NBTUVSQVNfSU5fVVNFOgorICAgICAqICAgICAgICAgRHVlIHRvIG90aGVyIGNhbWVyYSBkZXZpY2VzIGJlaW5nIG9wZW4sIG9yIGR1ZSB0byBvdGhlcgorICAgICAqICAgICAgICAgcmVzb3VyY2UgY29uc3RyYWludHMsIHRoZSB0b3JjaCBjYW5ub3QgYmUgY29udHJvbGxlZCBjdXJyZW50bHkuCisgICAgICogICAgIE1FVEhPRF9OT1RfU1VQUE9SVEVEOgorICAgICAqICAgICAgICAgVGhpcyBwcm92aWRlciBkb2VzIG5vdCBzdXBwb3J0IGRpcmVjdCBvcGVyYXRpb24gb2YgZmxhc2hsaWdodAorICAgICAqICAgICAgICAgdG9yY2ggbW9kZS4gVGhlIGZyYW1ld29yayBtdXN0IG9wZW4gdGhlIGNhbWVyYSBkZXZpY2UgYW5kIHR1cm4KKyAgICAgKiAgICAgICAgIHRoZSB0b3JjaCBvbiB0aHJvdWdoIHRoZSBkZXZpY2UgaW50ZXJmYWNlLgorICAgICAqICAgICBPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDoKKyAgICAgKiAgICAgICAgIFRoaXMgY2FtZXJhIGRldmljZSBkb2VzIG5vdCBoYXZlIGEgZmxhc2ggdW5pdC4gVGhpcyBjYW4KKyAgICAgKiAgICAgICAgIGJlIHJldHVybmVkIGlmIGFuZCBvbmx5IGlmIGFuZHJvaWQuZmxhc2guaW5mby5hdmFpbGFibGUgaXMKKyAgICAgKiAgICAgICAgIGZhbHNlLgorICAgICAqICAgICBDQU1FUkFfRElTQ09OTkVDVEVEOgorICAgICAqICAgICAgICAgQW4gZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIGFuZCBpcyBubyBsb25nZXIKKyAgICAgKiAgICAgICAgIGF2YWlsYWJsZS4gVGhpcyBjYW1lcmEgZGV2aWNlIGludGVyZmFjZSBpcyBub3cgc3RhbGUsIGFuZCBhIG5ldworICAgICAqICAgICAgICAgaW5zdGFuY2UgbXVzdCBiZSBhY3F1aXJlZCBpZiB0aGUgZGV2aWNlIGlzIHJlY29ubmVjdGVkLiBBbGwKKyAgICAgKiAgICAgICAgIHN1YnNlcXVlbnQgY2FsbHMgb24gdGhpcyBpbnRlcmZhY2UgbXVzdCByZXR1cm4KKyAgICAgKiAgICAgICAgIENBTUVSQV9ESVNDT05ORUNURUQuCisgICAgICoKKyAgICAgKi8KKyAgICBzZXRUb3JjaE1vZGUoVG9yY2hNb2RlIG1vZGUpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBvcGVuOgorICAgICAqCisgICAgICogUG93ZXIgb24gYW5kIGluaXRpYWxpemUgdGhpcyBjYW1lcmEgZGV2aWNlIGZvciBhY3RpdmUgdXNlLCByZXR1cm5pbmcgYQorICAgICAqIHNlc3Npb24gaGFuZGxlIGZvciBhY3RpdmUgb3BlcmF0aW9ucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBJbnRlcmZhY2UgdG8gaW52b2tlIGJ5IHRoZSBIQUwgZm9yIGRldmljZSBhc3luY2hyb25vdXMKKyAgICAgKiAgICAgZXZlbnRzLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNzZnVsIG9wZW4gb2YgdGhlIGNhbWVyYSBkZXZpY2UuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgVGhlIGNhbWVyYSBkZXZpY2UgY2Fubm90IGJlIG9wZW5lZCBkdWUgdG8gYW4gaW50ZXJuYWwKKyAgICAgKiAgICAgICAgIGVycm9yLgorICAgICAqICAgICBJTExFR0FMX0FSR1VNRU5UOgorICAgICAqICAgICAgICAgVGhlIGNhbGxiYWNrcyBoYW5kbGUgaXMgaW52YWxpZCAoZm9yIGV4YW1wbGUsIGl0IGlzIG51bGwpLgorICAgICAqICAgICBDQU1FUkFfSU5fVVNFOgorICAgICAqICAgICAgICAgVGhpcyBjYW1lcmEgZGV2aWNlIGlzIGFscmVhZHkgb3Blbi4KKyAgICAgKiAgICAgTUFYX0NBTUVSQVNfSU5fVVNFOgorICAgICAqICAgICAgICAgVGhlIG1heGltYWwgbnVtYmVyIG9mIGNhbWVyYSBkZXZpY2VzIHRoYXQgY2FuIGJlCisgICAgICogICAgICAgICBvcGVuZWQgY29uY3VycmVudGx5IHdlcmUgb3BlbmVkIGFscmVhZHkuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBUaGlzIGV4dGVybmFsIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBhbmQgaXMgbm8KKyAgICAgKiAgICAgICAgIGxvbmdlciBhdmFpbGFibGUuIFRoaXMgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3IGluc3RhbmNlCisgICAgICogICAgICAgICBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbCBzdWJzZXF1ZW50CisgICAgICogICAgICAgICBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybiBDQU1FUkFfRElTQ09OTkVDVEVELgorICAgICAqIEByZXR1cm4gc2Vzc2lvbiBUaGUgaW50ZXJmYWNlIHRvIHRoZSBuZXdseS1vcGVuZWQgY2FtZXJhIHNlc3Npb24sCisgICAgICogICAgIG9yIG51bGwgaWYgc3RhdHVzIGlzIG5vdCBPSy4KKyAgICAgKi8KKyAgICBvcGVuKElDYW1lcmFEZXZpY2VDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzCisgICAgICAgICAgICAoU3RhdHVzIHN0YXR1cywgSUNhbWVyYURldmljZVNlc3Npb24gc2Vzc2lvbik7CisKKyAgICAvKioKKyAgICAgKiBkdW1wU3RhdGU6CisgICAgICoKKyAgICAgKiBQcmludCBvdXQgZGVidWdnaW5nIHN0YXRlIGZvciB0aGUgY2FtZXJhIGRldmljZS4gVGhpcyBtYXkgYmUgY2FsbGVkIGJ5CisgICAgICogdGhlIGZyYW1ld29yayB3aGVuIHRoZSBjYW1lcmEgc2VydmljZSBpcyBhc2tlZCBmb3IgYSBkZWJ1ZyBkdW1wLCB3aGljaAorICAgICAqIGhhcHBlbnMgd2hlbiB1c2luZyB0aGUgZHVtcHN5cyB0b29sLCBvciB3aGVuIGNhcHR1cmluZyBhIGJ1Z3JlcG9ydC4KKyAgICAgKgorICAgICAqIFRoZSBwYXNzZWQtaW4gZmlsZSBkZXNjcmlwdG9yIGNhbiBiZSB1c2VkIHRvIHdyaXRlIGRlYnVnZ2luZyB0ZXh0IHVzaW5nCisgICAgICogZHByaW50ZigpIG9yIHdyaXRlKCkuIFRoZSB0ZXh0IG11c3QgYmUgaW4gQVNDSUkgZW5jb2Rpbmcgb25seS4KKyAgICAgKgorICAgICAqIEluIGNhc2UgdGhpcyBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgdGhlIGR1bXAgbXVzdCBub3QgZmFpbCwKKyAgICAgKiBidXQgbWF5IHNpbXBseSBwcmludCBvdXQgJ0RldmljZSBkaXNjb25uZWN0ZWQnIG9yIGVxdWl2YWxlbnQuCisgICAgICoKKyAgICAgKiBQZXJmb3JtYW5jZSByZXF1aXJlbWVudHM6CisgICAgICoKKyAgICAgKiBUaGlzIG11c3QgYmUgYSBub24tYmxvY2tpbmcgY2FsbC4gVGhlIEhBTCBzaG91bGQgcmV0dXJuIGZyb20gdGhpcyBjYWxsCisgICAgICogaW4gMW1zLCBtdXN0IHJldHVybiBmcm9tIHRoaXMgY2FsbCBpbiAxMG1zLiBUaGlzIGNhbGwgbXVzdCBhdm9pZAorICAgICAqIGRlYWRsb2NrcywgYXMgaXQgbWF5IGJlIGNhbGxlZCBhdCBhbnkgcG9pbnQgZHVyaW5nIGNhbWVyYSBvcGVyYXRpb24uCisgICAgICogQW55IHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzIHVzZWQgKHN1Y2ggYXMgbXV0ZXggbG9ja3Mgb3Igc2VtYXBob3JlcykKKyAgICAgKiBtdXN0IGJlIGFjcXVpcmVkIHdpdGggYSB0aW1lb3V0LgorICAgICAqLworICAgIGR1bXBTdGF0ZShoYW5kbGUgZmQpOworCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbCBiL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2VDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk3MTVkZQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2VDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjI7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlczsKKworLyoqCisgKgorICogQ2FsbGJhY2sgbWV0aG9kcyBmb3IgdGhlIEhBTCB0byBjYWxsIGludG8gdGhlIGZyYW1ld29yay4KKyAqCisgKiBUaGVzZSBtZXRob2RzIGFyZSB1c2VkIHRvIHJldHVybiBtZXRhZGF0YSBhbmQgaW1hZ2UgYnVmZmVycyBmb3IgYSBjb21wbGV0ZWQKKyAqIG9yIGZhaWxlZCBjYXB0dXJlcywgYW5kIHRvIG5vdGlmeSB0aGUgZnJhbWV3b3JrIG9mIGFzeW5jaHJvbm91cyBldmVudHMgc3VjaAorICogYXMgZXJyb3JzLgorICoKKyAqIFRoZSBmcmFtZXdvcmsgbXVzdCBub3QgY2FsbCBiYWNrIGludG8gdGhlIEhBTCBmcm9tIHdpdGhpbiB0aGVzZSBjYWxsYmFja3MsCisgKiBhbmQgdGhlc2UgY2FsbHMgbXVzdCBub3QgYmxvY2sgZm9yIGV4dGVuZGVkIHBlcmlvZHMuCisgKgorICovCitpbnRlcmZhY2UgSUNhbWVyYURldmljZUNhbGxiYWNrIHsKKworICAgIC8qKgorICAgICAqIHByb2Nlc3NDYXB0dXJlUmVzdWx0OgorICAgICAqCisgICAgICogU2VuZCByZXN1bHRzIGZyb20gb25lIG9yIG1vcmUgY29tcGxldGVkIG9yIHBhcnRpYWxseSBjb21wbGV0ZWQgY2FwdHVyZXMKKyAgICAgKiB0byB0aGUgZnJhbWV3b3JrLgorICAgICAqIHByb2Nlc3NDYXB0dXJlUmVzdWx0KCkgbWF5IGJlIGludm9rZWQgbXVsdGlwbGUgdGltZXMgYnkgdGhlIEhBTCBpbgorICAgICAqIHJlc3BvbnNlIHRvIGEgc2luZ2xlIGNhcHR1cmUgcmVxdWVzdC4gVGhpcyBhbGxvd3MsIGZvciBleGFtcGxlLCB0aGUKKyAgICAgKiBtZXRhZGF0YSBhbmQgbG93LXJlc29sdXRpb24gYnVmZmVycyB0byBiZSByZXR1cm5lZCBpbiBvbmUgY2FsbCwgYW5kCisgICAgICogcG9zdC1wcm9jZXNzZWQgSlBFRyBidWZmZXJzIGluIGEgbGF0ZXIgY2FsbCwgb25jZSBpdCBpcyBhdmFpbGFibGUuIEVhY2gKKyAgICAgKiBjYWxsIG11c3QgaW5jbHVkZSB0aGUgZnJhbWUgbnVtYmVyIG9mIHRoZSByZXF1ZXN0IGl0IGlzIHJldHVybmluZworICAgICAqIG1ldGFkYXRhIG9yIGJ1ZmZlcnMgZm9yLiBPbmx5IG9uZSBjYWxsIHRvIHByb2Nlc3NDYXB0dXJlUmVzdWx0CisgICAgICogbWF5IGJlIG1hZGUgYXQgYSB0aW1lIGJ5IHRoZSBIQUwgYWx0aG91Z2ggdGhlIGNhbGxzIG1heSBjb21lIGZyb20KKyAgICAgKiBkaWZmZXJlbnQgdGhyZWFkcyBpbiB0aGUgSEFMLgorICAgICAqCisgICAgICogQSBjb21wb25lbnQgKGJ1ZmZlciBvciBtZXRhZGF0YSkgb2YgdGhlIGNvbXBsZXRlIHJlc3VsdCBtYXkgb25seSBiZQorICAgICAqIGluY2x1ZGVkIGluIG9uZSBwcm9jZXNzX2NhcHR1cmVfcmVzdWx0IGNhbGwuIEEgYnVmZmVyIGZvciBlYWNoIHN0cmVhbSwKKyAgICAgKiBhbmQgdGhlIHJlc3VsdCBtZXRhZGF0YSwgbXVzdCBiZSByZXR1cm5lZCBieSB0aGUgSEFMIGZvciBlYWNoIHJlcXVlc3QgaW4KKyAgICAgKiBvbmUgb2YgdGhlIHByb2Nlc3NDYXB0dXJlUmVzdWx0IGNhbGxzLCBldmVuIGluIGNhc2Ugb2YgZXJyb3JzIHByb2R1Y2luZworICAgICAqIHNvbWUgb2YgdGhlIG91dHB1dC4gQSBjYWxsIHRvIHByb2Nlc3NDYXB0dXJlUmVzdWx0KCkgd2l0aCBuZWl0aGVyCisgICAgICogb3V0cHV0IGJ1ZmZlcnMgb3IgcmVzdWx0IG1ldGFkYXRhIGlzIG5vdCBhbGxvd2VkLgorICAgICAqCisgICAgICogVGhlIG9yZGVyIG9mIHJldHVybmluZyBtZXRhZGF0YSBhbmQgYnVmZmVycyBmb3IgYSBzaW5nbGUgcmVzdWx0IGRvZXMgbm90CisgICAgICogbWF0dGVyLCBidXQgYnVmZmVycyBmb3IgYSBnaXZlbiBzdHJlYW0gbXVzdCBiZSByZXR1cm5lZCBpbiBGSUZPIG9yZGVyLiBTbworICAgICAqIHRoZSBidWZmZXIgZm9yIHJlcXVlc3QgNSBmb3Igc3RyZWFtIEEgbXVzdCBhbHdheXMgYmUgcmV0dXJuZWQgYmVmb3JlIHRoZQorICAgICAqIGJ1ZmZlciBmb3IgcmVxdWVzdCA2IGZvciBzdHJlYW0gQS4gVGhpcyBhbHNvIGFwcGxpZXMgdG8gdGhlIHJlc3VsdAorICAgICAqIG1ldGFkYXRhOyB0aGUgbWV0YWRhdGEgZm9yIHJlcXVlc3QgNSBtdXN0IGJlIHJldHVybmVkIGJlZm9yZSB0aGUgbWV0YWRhdGEKKyAgICAgKiBmb3IgcmVxdWVzdCA2LgorICAgICAqCisgICAgICogSG93ZXZlciwgZGlmZmVyZW50IHN0cmVhbXMgYXJlIGluZGVwZW5kZW50IG9mIGVhY2ggb3RoZXIsIHNvIGl0IGlzCisgICAgICogYWNjZXB0YWJsZSBhbmQgZXhwZWN0ZWQgdGhhdCB0aGUgYnVmZmVyIGZvciByZXF1ZXN0IDUgZm9yIHN0cmVhbSBBIG1heSBiZQorICAgICAqIHJldHVybmVkIGFmdGVyIHRoZSBidWZmZXIgZm9yIHJlcXVlc3QgNiBmb3Igc3RyZWFtIEIgaXMuIEFuZCBpdCBpcworICAgICAqIGFjY2VwdGFibGUgdGhhdCB0aGUgcmVzdWx0IG1ldGFkYXRhIGZvciByZXF1ZXN0IDYgZm9yIHN0cmVhbSBCIGlzCisgICAgICogcmV0dXJuZWQgYmVmb3JlIHRoZSBidWZmZXIgZm9yIHJlcXVlc3QgNSBmb3Igc3RyZWFtIEEgaXMuIElmIG11bHRpcGxlCisgICAgICogY2FwdHVyZSByZXN1bHRzIGFyZSBpbmNsdWRlZCBpbiBhIHNpbmdsZSBjYWxsLCBjYW1lcmEgZnJhbWV3b3JrIG11c3QKKyAgICAgKiBwcm9jZXNzIHJlc3VsdHMgc2VxdWVudGlhbGx5IGZyb20gbG93ZXIgaW5kZXggdG8gaGlnaGVyIGluZGV4LCBhcyBpZgorICAgICAqIHRoZXNlIHJlc3VsdHMgd2VyZSBzZW50IHRvIGNhbWVyYSBmcmFtZXdvcmsgb25lIGJ5IG9uZSwgZnJvbSBsb3dlciBpbmRleAorICAgICAqIHRvIGhpZ2hlciBpbmRleC4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgcmV0YWlucyBvd25lcnNoaXAgb2YgcmVzdWx0IHN0cnVjdHVyZSwgd2hpY2ggb25seSBuZWVkcyB0byBiZQorICAgICAqIHZhbGlkIHRvIGFjY2VzcyBkdXJpbmcgdGhpcyBjYWxsLgorICAgICAqCisgICAgICogVGhlIG91dHB1dCBidWZmZXJzIGRvIG5vdCBuZWVkIHRvIGJlIGZpbGxlZCB5ZXQ7IHRoZSBmcmFtZXdvcmsgbXVzdCB3YWl0CisgICAgICogb24gdGhlIHN0cmVhbSBidWZmZXIgcmVsZWFzZSBzeW5jIGZlbmNlIGJlZm9yZSByZWFkaW5nIHRoZSBidWZmZXIKKyAgICAgKiBkYXRhLiBUaGVyZWZvcmUsIHRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgYnkgdGhlIEhBTCBhcyBzb29uIGFzCisgICAgICogcG9zc2libGUsIGV2ZW4gaWYgc29tZSBvciBhbGwgb2YgdGhlIG91dHB1dCBidWZmZXJzIGFyZSBzdGlsbCBpbgorICAgICAqIGJlaW5nIGZpbGxlZC4gVGhlIEhBTCBtdXN0IGluY2x1ZGUgdmFsaWQgcmVsZWFzZSBzeW5jIGZlbmNlcyBpbnRvIGVhY2gKKyAgICAgKiBvdXRwdXRfYnVmZmVycyBzdHJlYW0gYnVmZmVyIGVudHJ5LCBvciAtMSBpZiB0aGF0IHN0cmVhbSBidWZmZXIgaXMKKyAgICAgKiBhbHJlYWR5IGZpbGxlZC4KKyAgICAgKgorICAgICAqIElmIHRoZSByZXN1bHQgYnVmZmVyIGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmb3IgYSByZXF1ZXN0LCB0aGUgSEFMIG11c3QKKyAgICAgKiByZXR1cm4gYW4gZW1wdHkgbWV0YWRhdGEgYnVmZmVyLCBidXQgc3RpbGwgcHJvdmlkZSB0aGUgb3V0cHV0IGJ1ZmZlcnMgYW5kCisgICAgICogdGhlaXIgc3luYyBmZW5jZXMuIEluIGFkZGl0aW9uLCBub3RpZnkoKSBtdXN0IGJlIGNhbGxlZCB3aXRoIGFuCisgICAgICogRVJST1JfUkVTVUxUIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBJZiBhbiBvdXRwdXQgYnVmZmVyIGNhbm5vdCBiZSBmaWxsZWQsIGl0cyBzdGF0dXMgZmllbGQgbXVzdCBiZSBzZXQgdG8KKyAgICAgKiBTVEFUVVNfRVJST1IuIEluIGFkZGl0aW9uLCBub3RpZnkoKSBtdXN0IGJlIGNhbGxlZCB3aXRoIGEgRVJST1JfQlVGRkVSCisgICAgICogbWVzc2FnZS4KKyAgICAgKgorICAgICAqIElmIHRoZSBlbnRpcmUgY2FwdHVyZSBoYXMgZmFpbGVkLCB0aGVuIHRoaXMgbWV0aG9kIHN0aWxsIG5lZWRzIHRvIGJlCisgICAgICogY2FsbGVkIHRvIHJldHVybiB0aGUgb3V0cHV0IGJ1ZmZlcnMgdG8gdGhlIGZyYW1ld29yay4gQWxsIHRoZSBidWZmZXIKKyAgICAgKiBzdGF0dXNlcyBtdXN0IGJlIFNUQVRVU19FUlJPUiwgYW5kIHRoZSByZXN1bHQgbWV0YWRhdGEgbXVzdCBiZSBhbgorICAgICAqIGVtcHR5IGJ1ZmZlci4gSW4gYWRkaXRpb24sIG5vdGlmeSgpIG11c3QgYmUgY2FsbGVkIHdpdGggYSBFUlJPUl9SRVFVRVNUCisgICAgICogbWVzc2FnZS4gSW4gdGhpcyBjYXNlLCBpbmRpdmlkdWFsIEVSUk9SX1JFU1VMVC9FUlJPUl9CVUZGRVIgbWVzc2FnZXMKKyAgICAgKiBtdXN0IG5vdCBiZSBzZW50LgorICAgICAqCisgICAgICogUGVyZm9ybWFuY2UgcmVxdWlyZW1lbnRzOgorICAgICAqCisgICAgICogVGhpcyBpcyBhIG5vbi1ibG9ja2luZyBjYWxsLiBUaGUgZnJhbWV3b3JrIG11c3QgaGFuZGxlIGVhY2ggQ2FwdHVyZVJlc3VsdAorICAgICAqIHdpdGhpbiA1bXMuCisgICAgICoKKyAgICAgKiBUaGUgcGlwZWxpbmUgbGF0ZW5jeSAoc2VlIFM3IGZvciBkZWZpbml0aW9uKSBzaG91bGQgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogNCBmcmFtZSBpbnRlcnZhbHMsIGFuZCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA4IGZyYW1lIGludGVydmFscy4KKyAgICAgKgorICAgICAqLworICAgIHByb2Nlc3NDYXB0dXJlUmVzdWx0KHZlYzxDYXB0dXJlUmVzdWx0PiByZXN1bHRzKTsKKworICAgIC8qKgorICAgICAqIG5vdGlmeToKKyAgICAgKgorICAgICAqIEFzeW5jaHJvbm91cyBub3RpZmljYXRpb24gY2FsbGJhY2sgZnJvbSB0aGUgSEFMLCBmaXJlZCBmb3IgdmFyaW91cworICAgICAqIHJlYXNvbnMuIE9ubHkgZm9yIGluZm9ybWF0aW9uIGluZGVwZW5kZW50IG9mIGZyYW1lIGNhcHR1cmUsIG9yIHRoYXQKKyAgICAgKiByZXF1aXJlIHNwZWNpZmljIHRpbWluZy4gTXVsdGlwbGUgbWVzc2FnZXMgbWF5IGJlIHNlbnQgaW4gb25lIGNhbGw7IGEKKyAgICAgKiBtZXNzYWdlIHdpdGggYSBoaWdoZXIgaW5kZXggbXVzdCBiZSBjb25zaWRlcmVkIHRvIGhhdmUgb2NjdXJyZWQgYWZ0ZXIgYQorICAgICAqIG1lc3NhZ2Ugd2l0aCBhIGxvd2VyIGluZGV4LgorICAgICAqCisgICAgICogTXVsdGlwbGUgdGhyZWFkcyBtYXkgY2FsbCBub3RpZnkoKSBzaW11bHRhbmVvdXNseS4KKyAgICAgKgorICAgICAqIEJ1ZmZlcnMgZGVsaXZlcmVkIHRvIHRoZSBmcmFtZXdvcmsgbXVzdCBub3QgYmUgZGlzcGF0Y2hlZCB0byB0aGUKKyAgICAgKiBhcHBsaWNhdGlvbiBsYXllciB1bnRpbCBhIHN0YXJ0IG9mIGV4cG9zdXJlIHRpbWVzdGFtcCAob3IgaW5wdXQgaW1hZ2UncworICAgICAqIHN0YXJ0IG9mIGV4cG9zdXJlIHRpbWVzdGFtcCBmb3IgYSByZXByb2Nlc3MgcmVxdWVzdCkgaGFzIGJlZW4gcmVjZWl2ZWQKKyAgICAgKiB2aWEgYSBTSFVUVEVSIG5vdGlmeSgpIGNhbGwuIEl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0byBkaXNwYXRjaCB0aGlzCisgICAgICogY2FsbCBhcyBlYXJseSBhcyBwb3NzaWJsZS4KKyAgICAgKgorICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqIFBlcmZvcm1hbmNlIHJlcXVpcmVtZW50czoKKyAgICAgKgorICAgICAqIFRoaXMgaXMgYSBub24tYmxvY2tpbmcgY2FsbC4gVGhlIGZyYW1ld29yayBtdXN0IGhhbmRsZSBlYWNoIG1lc3NhZ2UgaW4gNW1zLgorICAgICAqLworICAgIG5vdGlmeSh2ZWM8Tm90aWZ5TXNnPiBtc2dzKTsKKworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2VTZXNzaW9uLmhhbCBiL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2VTZXNzaW9uLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzdhM2NjCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZVNlc3Npb24uaGFsCkBAIC0wLDAgKzEsNDA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXM7CisKKy8qKgorICogQ2FtZXJhIGRldmljZSBhY3RpdmUgc2Vzc2lvbiBpbnRlcmZhY2UuCisgKgorICogT2J0YWluZWQgdmlhIElDYW1lcmFEZXZpY2U6Om9wZW4oKSwgdGhpcyBpbnRlcmZhY2UgY29udGFpbnMgdGhlIG1ldGhvZHMgdG8KKyAqIGNvbmZpZ3VyZSBhbmQgcmVxdWVzdCBjYXB0dXJlcyBmcm9tIGFuIGFjdGl2ZSBjYW1lcmEgZGV2aWNlLgorICoKKyAqLworaW50ZXJmYWNlIElDYW1lcmFEZXZpY2VTZXNzaW9uIHsKKworICAgIC8qKgorICAgICAqIGNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3M6CisgICAgICoKKyAgICAgKiBDcmVhdGUgY2FwdHVyZSBzZXR0aW5ncyBmb3Igc3RhbmRhcmQgY2FtZXJhIHVzZSBjYXNlcy4KKyAgICAgKgorICAgICAqIFRoZSBkZXZpY2UgbXVzdCByZXR1cm4gYSBzZXR0aW5ncyBidWZmZXIgdGhhdCBpcyBjb25maWd1cmVkIHRvIG1lZXQgdGhlCisgICAgICogcmVxdWVzdGVkIHVzZSBjYXNlLCB3aGljaCBtdXN0IGJlIG9uZSBvZiB0aGUgQ0FNRVJBM19URU1QTEFURV8qCisgICAgICogZW51bXMuIEFsbCByZXF1ZXN0IGNvbnRyb2wgZmllbGRzIG11c3QgYmUgaW5jbHVkZWQuCisgICAgICoKKyAgICAgKiBQZXJmb3JtYW5jZSByZXF1aXJlbWVudHM6CisgICAgICoKKyAgICAgKiBUaGlzIG11c3QgYmUgYSBub24tYmxvY2tpbmcgY2FsbC4gVGhlIEhBTCBzaG91bGQgcmV0dXJuIGZyb20gdGhpcyBjYWxsCisgICAgICogaW4gMW1zLCBhbmQgbXVzdCByZXR1cm4gZnJvbSB0aGlzIGNhbGwgaW4gNW1zLgorICAgICAqCisgICAgICogUmV0dXJuIHZhbHVlczoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2Vzc2Z1bCBjb25zdHJ1Y3Rpb24gb2YgZGVmYXVsdCBzZXR0aW5ncy4KKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBBbiB1bmV4cGVjdGVkIGludGVybmFsIGVycm9yIG9jY3VycmVkLCBhbmQgdGhlIGRlZmF1bHQgc2V0dGluZ3MKKyAgICAgKiAgICAgICAgIGFyZSBub3QgYXZhaWxhYmxlLgorICAgICAqICAgICBJTExFR0FMX0FSR1VNRU5UOgorICAgICAqICAgICAgICAgVGhlIGNhbWVyYSBIQUwgZG9lcyBub3Qgc3VwcG9ydCB0aGUgaW5wdXQgdGVtcGxhdGUgdHlwZQorICAgICAqICAgICBDQU1FUkFfRElTQ09OTkVDVEVEOgorICAgICAqICAgICAgICAgQW4gZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIGFuZCBpcyBubyBsb25nZXIKKyAgICAgKiAgICAgICAgIGF2YWlsYWJsZS4gVGhpcyBjYW1lcmEgZGV2aWNlIGludGVyZmFjZSBpcyBub3cgc3RhbGUsIGFuZCBhIG5ldworICAgICAqICAgICAgICAgaW5zdGFuY2UgbXVzdCBiZSBhY3F1aXJlZCBpZiB0aGUgZGV2aWNlIGlzIHJlY29ubmVjdGVkLiBBbGwKKyAgICAgKiAgICAgICAgIHN1YnNlcXVlbnQgY2FsbHMgb24gdGhpcyBpbnRlcmZhY2UgbXVzdCByZXR1cm4KKyAgICAgKiAgICAgICAgIENBTUVSQV9ESVNDT05ORUNURUQuCisgICAgICogQHJldHVybiB0ZW1wbGF0ZSBUaGUgZGVmYXVsdCBjYXB0dXJlIHJlcXVlc3Qgc2V0dGluZ3MgZm9yIHRoZSByZXF1ZXN0ZWQKKyAgICAgKiAgICAgdXNlIGNhc2UsIG9yIGFuIGVtcHR5IG1ldGFkYXRhIHN0cnVjdHVyZSBpZiBzdGF0dXMgaXMgbm90IE9LLgorICAgICAqCisgICAgICovCisgICAgY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5ncyhSZXF1ZXN0VGVtcGxhdGUgdHlwZSkgZ2VuZXJhdGVzCisgICAgICAgICAgICAoU3RhdHVzIHN0YXR1cywgQ2FtZXJhTWV0YWRhdGEgcmVxdWVzdFRlbXBsYXRlKTsKKworICAgIC8qKgorICAgICAqIGNvbmZpZ3VyZVN0cmVhbXM6CisgICAgICoKKyAgICAgKiBSZXNldCB0aGUgSEFMIGNhbWVyYSBkZXZpY2UgcHJvY2Vzc2luZyBwaXBlbGluZSBhbmQgc2V0IHVwIG5ldyBpbnB1dCBhbmQKKyAgICAgKiBvdXRwdXQgc3RyZWFtcy4gVGhpcyBjYWxsIHJlcGxhY2VzIGFueSBleGlzdGluZyBzdHJlYW0gY29uZmlndXJhdGlvbiB3aXRoCisgICAgICogdGhlIHN0cmVhbXMgZGVmaW5lZCBpbiB0aGUgc3RyZWFtTGlzdC4gVGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQgYXQKKyAgICAgKiBsZWFzdCBvbmNlIGJlZm9yZSBhIHJlcXVlc3QgaXMgc3VibWl0dGVkIHdpdGggcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCkuCisgICAgICoKKyAgICAgKiBUaGUgc3RyZWFtTGlzdCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIG91dHB1dC1jYXBhYmxlIHN0cmVhbSwgYW5kIG1heQorICAgICAqIG5vdCBjb250YWluIG1vcmUgdGhhbiBvbmUgaW5wdXQtY2FwYWJsZSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBUaGUgc3RyZWFtTGlzdCBtYXkgY29udGFpbiBzdHJlYW1zIHRoYXQgYXJlIGFsc28gaW4gdGhlIGN1cnJlbnRseS1hY3RpdmUKKyAgICAgKiBzZXQgb2Ygc3RyZWFtcyAoZnJvbSB0aGUgcHJldmlvdXMgY2FsbCB0byBjb25maWd1cmVTdHJlYW1zKCkpLiBUaGVzZQorICAgICAqIHN0cmVhbXMgbXVzdCBhbHJlYWR5IGhhdmUgdmFsaWQgdmFsdWVzIGZvciB1c2FnZSwgbWF4QnVmZmVycywgYW5kIHRoZQorICAgICAqIHByaXZhdGUgcG9pbnRlci4KKyAgICAgKgorICAgICAqIElmIHRoZSBIQUwgbmVlZHMgdG8gY2hhbmdlIHRoZSBzdHJlYW0gY29uZmlndXJhdGlvbiBmb3IgYW4gZXhpc3RpbmcKKyAgICAgKiBzdHJlYW0gZHVlIHRvIHRoZSBuZXcgY29uZmlndXJhdGlvbiwgaXQgbWF5IHJld3JpdGUgdGhlIHZhbHVlcyBvZiB1c2FnZQorICAgICAqIGFuZC9vciBtYXhCdWZmZXJzIGR1cmluZyB0aGUgY29uZmlndXJlIGNhbGwuCisgICAgICoKKyAgICAgKiBUaGUgZnJhbWV3b3JrIG11c3QgZGV0ZWN0IHN1Y2ggYSBjaGFuZ2UsIGFuZCBtYXkgdGhlbiByZWFsbG9jYXRlIHRoZQorICAgICAqIHN0cmVhbSBidWZmZXJzIGJlZm9yZSB1c2luZyBidWZmZXJzIGZyb20gdGhhdCBzdHJlYW0gaW4gYSByZXF1ZXN0LgorICAgICAqCisgICAgICogSWYgYSBjdXJyZW50bHktYWN0aXZlIHN0cmVhbSBpcyBub3QgaW5jbHVkZWQgaW4gc3RyZWFtTGlzdCwgdGhlIEhBTCBtYXkKKyAgICAgKiBzYWZlbHkgcmVtb3ZlIGFueSByZWZlcmVuY2VzIHRvIHRoYXQgc3RyZWFtLiBJdCBtdXN0IG5vdCBiZSByZXVzZWQgaW4gYQorICAgICAqIGxhdGVyIGNvbmZpZ3VyZVN0cmVhbXMoKSBjYWxsIGJ5IHRoZSBmcmFtZXdvcmssIGFuZCBhbGwgdGhlIGdyYWxsb2MKKyAgICAgKiBidWZmZXJzIGZvciBpdCBtdXN0IGJlIGZyZWVkIGFmdGVyIHRoZSBjb25maWd1cmVTdHJlYW1zKCkgY2FsbCByZXR1cm5zLgorICAgICAqCisgICAgICogSWYgdGhlIHN0cmVhbSBpcyBuZXcsIHRoZSBtYXhCdWZmZXIgZmllbGQgb2YgdGhlIHN0cmVhbSBzdHJ1Y3R1cmUgbXVzdCBiZQorICAgICAqIHNldCB0byAwLiBUaGUgdXNhZ2UgbXVzdCBiZSBzZXQgdG8gdGhlIGNvbnN1bWVyIHVzYWdlIGZsYWdzLiBUaGUgSEFMCisgICAgICogZGV2aWNlIG11c3Qgc2V0IHRoZXNlIGZpZWxkcyBpbiB0aGUgY29uZmlndXJlU3RyZWFtcygpIHJldHVybiB2YWx1ZXMuCisgICAgICogVGhlc2UgZmllbGRzIGFyZSB0aGVuIHVzZWQgYnkgdGhlIGZyYW1ld29yayBhbmQgdGhlIHBsYXRmb3JtIGdyYWxsb2MKKyAgICAgKiBtb2R1bGUgdG8gYWxsb2NhdGUgdGhlIGdyYWxsb2MgYnVmZmVycyBmb3IgZWFjaCBzdHJlYW0uCisgICAgICoKKyAgICAgKiBOZXdseSBhbGxvY2F0ZWQgYnVmZmVycyBtYXkgYmUgaW5jbHVkZWQgaW4gYSBjYXB0dXJlIHJlcXVlc3QgYXQgYW55IHRpbWUKKyAgICAgKiBieSB0aGUgZnJhbWV3b3JrLiBPbmNlIGEgZ3JhbGxvYyBidWZmZXIgaXMgcmV0dXJuZWQgdG8gdGhlIGZyYW1ld29yaworICAgICAqIHdpdGggcHJvY2Vzc0NhcHR1cmVSZXN1bHQgKGFuZCBpdHMgcmVzcGVjdGl2ZSByZWxlYXNlRmVuY2UgaGFzIGJlZW4KKyAgICAgKiBzaWduYWxlZCkgdGhlIGZyYW1ld29yayBtYXkgZnJlZSBvciByZXVzZSBpdCBhdCBhbnkgdGltZS4KKyAgICAgKgorICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqCisgICAgICogUHJlY29uZGl0aW9uczoKKyAgICAgKgorICAgICAqIFRoZSBmcmFtZXdvcmsgbXVzdCBvbmx5IGNhbGwgdGhpcyBtZXRob2Qgd2hlbiBubyBjYXB0dXJlcyBhcmUgYmVpbmcKKyAgICAgKiBwcm9jZXNzZWQuIFRoYXQgaXMsIGFsbCByZXN1bHRzIGhhdmUgYmVlbiByZXR1cm5lZCB0byB0aGUgZnJhbWV3b3JrLCBhbmQKKyAgICAgKiBhbGwgaW4tZmxpZ2h0IGlucHV0IGFuZCBvdXRwdXQgYnVmZmVycyBoYXZlIGJlZW4gcmV0dXJuZWQgYW5kIHRoZWlyCisgICAgICogcmVsZWFzZSBzeW5jIGZlbmNlcyBoYXZlIGJlZW4gc2lnbmFsZWQgYnkgdGhlIEhBTC4gVGhlIGZyYW1ld29yayBtdXN0IG5vdAorICAgICAqIHN1Ym1pdCBuZXcgcmVxdWVzdHMgZm9yIGNhcHR1cmUgd2hpbGUgdGhlIGNvbmZpZ3VyZVN0cmVhbXMoKSBjYWxsIGlzCisgICAgICogdW5kZXJ3YXkuCisgICAgICoKKyAgICAgKiBQb3N0Y29uZGl0aW9uczoKKyAgICAgKgorICAgICAqIFRoZSBIQUwgZGV2aWNlIG11c3QgY29uZmlndXJlIGl0c2VsZiB0byBwcm92aWRlIG1heGltdW0gcG9zc2libGUgb3V0cHV0CisgICAgICogZnJhbWUgcmF0ZSBnaXZlbiB0aGUgc2l6ZXMgYW5kIGZvcm1hdHMgb2YgdGhlIG91dHB1dCBzdHJlYW1zLCBhcworICAgICAqIGRvY3VtZW50ZWQgaW4gdGhlIGNhbWVyYSBkZXZpY2UncyBzdGF0aWMgbWV0YWRhdGEuCisgICAgICoKKyAgICAgKiBQZXJmb3JtYW5jZSByZXF1aXJlbWVudHM6CisgICAgICoKKyAgICAgKiBUaGlzIGNhbGwgaXMgZXhwZWN0ZWQgdG8gYmUgaGVhdnl3ZWlnaHQgYW5kIHBvc3NpYmx5IHRha2Ugc2V2ZXJhbCBodW5kcmVkCisgICAgICogbWlsbGlzZWNvbmRzIHRvIGNvbXBsZXRlLCBzaW5jZSBpdCBtYXkgcmVxdWlyZSByZXNldHRpbmcgYW5kCisgICAgICogcmVjb25maWd1cmluZyB0aGUgaW1hZ2Ugc2Vuc29yIGFuZCB0aGUgY2FtZXJhIHByb2Nlc3NpbmcgcGlwZWxpbmUuCisgICAgICogTmV2ZXJ0aGVsZXNzLCB0aGUgSEFMIGRldmljZSBzaG91bGQgYXR0ZW1wdCB0byBtaW5pbWl6ZSB0aGUKKyAgICAgKiByZWNvbmZpZ3VyYXRpb24gZGVsYXkgdG8gbWluaW1pemUgdGhlIHVzZXItdmlzaWJsZSBwYXVzZXMgZHVyaW5nCisgICAgICogYXBwbGljYXRpb24gb3BlcmF0aW9uYWwgbW9kZSBjaGFuZ2VzIChzdWNoIGFzIHN3aXRjaGluZyBmcm9tIHN0aWxsCisgICAgICogY2FwdHVyZSB0byB2aWRlbyByZWNvcmRpbmcpLgorICAgICAqCisgICAgICogVGhlIEhBTCBzaG91bGQgcmV0dXJuIGZyb20gdGhpcyBjYWxsIGluIDUwMG1zLCBhbmQgbXVzdCByZXR1cm4gZnJvbSB0aGlzCisgICAgICogY2FsbCBpbiAxMDAwbXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgICBPbiBzdWNjZXNzZnVsIHN0cmVhbSBjb25maWd1cmF0aW9uLgorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIElmIHRoZXJlIGhhcyBiZWVuIGEgZmF0YWwgZXJyb3IgYW5kIHRoZSBkZXZpY2UgaXMgbm8gbG9uZ2VyCisgICAgICogICAgICAgICBvcGVyYXRpb25hbC4gT25seSBjbG9zZSgpIGNhbiBiZSBjYWxsZWQgc3VjY2Vzc2Z1bGx5IGJ5IHRoZQorICAgICAqICAgICAgICAgZnJhbWV3b3JrIGFmdGVyIHRoaXMgZXJyb3IgaXMgcmV0dXJuZWQuCisgICAgICogICAgIElMTEVHQUxfQVJHVU1FTlQ6CisgICAgICogICAgICAgICBJZiB0aGUgcmVxdWVzdGVkIHN0cmVhbSBjb25maWd1cmF0aW9uIGlzIGludmFsaWQuIFNvbWUgZXhhbXBsZXMKKyAgICAgKiAgICAgICAgIG9mIGludmFsaWQgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGluY2x1ZGU6CisgICAgICogICAgICAgICAgIC0gSW5jbHVkaW5nIG1vcmUgdGhhbiAxIElOUFVUIHN0cmVhbQorICAgICAqICAgICAgICAgICAtIE5vdCBpbmNsdWRpbmcgYW55IE9VVFBVVCBzdHJlYW1zCisgICAgICogICAgICAgICAgIC0gSW5jbHVkaW5nIHN0cmVhbXMgd2l0aCB1bnN1cHBvcnRlZCBmb3JtYXRzLCBvciBhbiB1bnN1cHBvcnRlZAorICAgICAqICAgICAgICAgICAgIHNpemUgZm9yIHRoYXQgZm9ybWF0LgorICAgICAqICAgICAgICAgICAtIEluY2x1ZGluZyB0b28gbWFueSBvdXRwdXQgc3RyZWFtcyBvZiBhIGNlcnRhaW4gZm9ybWF0LgorICAgICAqICAgICAgICAgICAtIFVuc3VwcG9ydGVkIHJvdGF0aW9uIGNvbmZpZ3VyYXRpb24KKyAgICAgKiAgICAgICAgICAgLSBTdHJlYW0gc2l6ZXMvZm9ybWF0cyBkb24ndCBzYXRpc2Z5IHRoZQorICAgICAqICAgICAgICAgICAgIGNhbWVyYTNfc3RyZWFtX2NvbmZpZ3VyYXRpb25fdC0+b3BlcmF0aW9uX21vZGUgcmVxdWlyZW1lbnRzCisgICAgICogICAgICAgICAgICAgZm9yIG5vbi1OT1JNQUwgbW9kZSwgb3IgdGhlIHJlcXVlc3RlZCBvcGVyYXRpb25fbW9kZSBpcyBub3QKKyAgICAgKiAgICAgICAgICAgICBzdXBwb3J0ZWQgYnkgdGhlIEhBTC4KKyAgICAgKiAgICAgICAgICAgLSBVbnN1cHBvcnRlZCB1c2FnZSBmbGFnCisgICAgICogICAgICAgICBUaGUgY2FtZXJhIHNlcnZpY2UgY2Fubm90IGZpbHRlciBvdXQgYWxsIHBvc3NpYmxlIGlsbGVnYWwgc3RyZWFtCisgICAgICogICAgICAgICBjb25maWd1cmF0aW9ucywgc2luY2Ugc29tZSBkZXZpY2VzIG1heSBzdXBwb3J0IG1vcmUgc2ltdWx0YW5lb3VzCisgICAgICogICAgICAgICBzdHJlYW1zIG9yIGxhcmdlciBzdHJlYW0gcmVzb2x1dGlvbnMgdGhhbiB0aGUgbWluaW11bSByZXF1aXJlZAorICAgICAqICAgICAgICAgZm9yIGEgZ2l2ZW4gY2FtZXJhIGRldmljZSBoYXJkd2FyZSBsZXZlbC4gVGhlIEhBTCBtdXN0IHJldHVybiBhbgorICAgICAqICAgICAgICAgSUxMRUdBTF9BUkdVTUVOVCBmb3IgYW55IHVuc3VwcG9ydGVkIHN0cmVhbSBzZXQsIGFuZCB0aGVuIGJlCisgICAgICogICAgICAgICByZWFkeSB0byBhY2NlcHQgYSBmdXR1cmUgdmFsaWQgc3RyZWFtIGNvbmZpZ3VyYXRpb24gaW4gYSBsYXRlcgorICAgICAqICAgICAgICAgY29uZmlndXJlU3RyZWFtcyBjYWxsLgorICAgICAqIEByZXR1cm4gZmluYWxDb25maWd1cmF0aW9uIFRoZSBzdHJlYW0gcGFyYW1ldGVycyBkZXNpcmVkIGJ5IHRoZSBIQUwgZm9yCisgICAgICogICAgIGVhY2ggc3RyZWFtLCBpbmNsdWRpbmcgbWF4aW11bSBidWZmZXJzLCB0aGUgdXNhZ2UgZmxhZ3MsIGFuZCB0aGUKKyAgICAgKiAgICAgb3ZlcnJpZGUgZm9ybWF0LgorICAgICAqCisgICAgICovCisgICAgY29uZmlndXJlU3RyZWFtcyhTdHJlYW1Db25maWd1cmF0aW9uIHJlcXVlc3RlZENvbmZpZ3VyYXRpb24pCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsQ29uZmlndXJhdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBwcm9jZXNzQ2FwdHVyZVJlcXVlc3Q6CisgICAgICoKKyAgICAgKiBTZW5kIGEgbGlzdCBvZiBjYXB0dXJlIHJlcXVlc3RzIHRvIHRoZSBIQUwuIFRoZSBIQUwgbXVzdCBub3QgcmV0dXJuIGZyb20KKyAgICAgKiB0aGlzIGNhbGwgdW50aWwgaXQgaXMgcmVhZHkgdG8gYWNjZXB0IHRoZSBuZXh0IHNldCBvZiByZXF1ZXN0cyB0bworICAgICAqIHByb2Nlc3MuIE9ubHkgb25lIGNhbGwgdG8gcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCkgbXVzdCBiZSBtYWRlIGF0IGEgdGltZQorICAgICAqIGJ5IHRoZSBmcmFtZXdvcmssIGFuZCB0aGUgY2FsbHMgbXVzdCBhbGwgYmUgZnJvbSB0aGUgc2FtZSB0aHJlYWQuIFRoZQorICAgICAqIG5leHQgY2FsbCB0byBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKSBtdXN0IGJlIG1hZGUgYXMgc29vbiBhcyBhIG5ldworICAgICAqIHJlcXVlc3QgYW5kIGl0cyBhc3NvY2lhdGVkIGJ1ZmZlcnMgYXJlIGF2YWlsYWJsZS4gSW4gYSBub3JtYWwgcHJldmlldworICAgICAqIHNjZW5hcmlvLCB0aGlzIG1lYW5zIHRoZSBmdW5jdGlvbiBpcyBnZW5lcmFsbHkgY2FsbGVkIGFnYWluIGJ5IHRoZQorICAgICAqIGZyYW1ld29yayBhbG1vc3QgaW5zdGFudGx5LiBJZiBtb3JlIHRoYW4gb25lIHJlcXVlc3QgaXMgcHJvdmlkZWQgYnkgdGhlCisgICAgICogY2xpZW50LCB0aGUgSEFMIG11c3QgcHJvY2VzcyB0aGUgcmVxdWVzdHMgaW4gb3JkZXIgb2YgbG93ZXN0IGluZGV4IHRvCisgICAgICogaGlnaGVzdCBpbmRleC4KKyAgICAgKgorICAgICAqIFRoZSBjYWNoZXNUb1JlbW92ZSBhcmd1bWVudCBjb250YWlucyBhIGxpc3Qgb2YgYnVmZmVyIGNhY2hlcyAoc2VlCisgICAgICogU3RyZWFtQnVmZmVyIGRvY3VtZW50IGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGJ1ZmZlciBjYWNoZSkgdG8gYmUgcmVtb3ZlZAorICAgICAqIGJ5IGNhbWVyYSBIQUwuIENhbWVyYSBIQUwgbXVzdCByZW1vdmUgdGhlc2UgY2FjaGUgZW50cmllcyB3aGV0aGVyIG9yIG5vdAorICAgICAqIHRoaXMgbWV0aG9kIHJldHVybnMgT0suCisgICAgICoKKyAgICAgKiBUaGUgYWN0dWFsIHJlcXVlc3QgcHJvY2Vzc2luZyBpcyBhc3luY2hyb25vdXMsIHdpdGggdGhlIHJlc3VsdHMgb2YKKyAgICAgKiBjYXB0dXJlIGJlaW5nIHJldHVybmVkIGJ5IHRoZSBIQUwgdGhyb3VnaCB0aGUgcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKQorICAgICAqIGNhbGwuIFRoaXMgY2FsbCByZXF1aXJlcyB0aGUgcmVzdWx0IG1ldGFkYXRhIHRvIGJlIGF2YWlsYWJsZSwgYnV0IG91dHB1dAorICAgICAqIGJ1ZmZlcnMgbWF5IHNpbXBseSBwcm92aWRlIHN5bmMgZmVuY2VzIHRvIHdhaXQgb24uIE11bHRpcGxlIHJlcXVlc3RzIGFyZQorICAgICAqIGV4cGVjdGVkIHRvIGJlIGluIGZsaWdodCBhdCBvbmNlLCB0byBtYWludGFpbiBmdWxsIG91dHB1dCBmcmFtZSByYXRlLgorICAgICAqCisgICAgICogVGhlIGZyYW1ld29yayByZXRhaW5zIG93bmVyc2hpcCBvZiB0aGUgcmVxdWVzdCBzdHJ1Y3R1cmUuIEl0IGlzIG9ubHkKKyAgICAgKiBndWFyYW50ZWVkIHRvIGJlIHZhbGlkIGR1cmluZyB0aGlzIGNhbGwuIFRoZSBIQUwgZGV2aWNlIG11c3QgbWFrZSBjb3BpZXMKKyAgICAgKiBvZiB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMgdG8gcmV0YWluIGZvciB0aGUgY2FwdHVyZSBwcm9jZXNzaW5nLiBUaGUgSEFMCisgICAgICogaXMgcmVzcG9uc2libGUgZm9yIHdhaXRpbmcgb24gYW5kIGNsb3NpbmcgdGhlIGJ1ZmZlcnMnIGZlbmNlcyBhbmQKKyAgICAgKiByZXR1cm5pbmcgdGhlIGJ1ZmZlciBoYW5kbGVzIHRvIHRoZSBmcmFtZXdvcmsuCisgICAgICoKKyAgICAgKiBUaGUgSEFMIG11c3Qgd3JpdGUgdGhlIGZpbGUgZGVzY3JpcHRvciBmb3IgdGhlIGlucHV0IGJ1ZmZlcidzIHJlbGVhc2UKKyAgICAgKiBzeW5jIGZlbmNlIGludG8gaW5wdXRfYnVmZmVyLT5yZWxlYXNlX2ZlbmNlLCBpZiBpbnB1dF9idWZmZXIgaXMgbm90CisgICAgICogdmFsaWQuIElmIHRoZSBIQUwgcmV0dXJucyAtMSBmb3IgdGhlIGlucHV0IGJ1ZmZlciByZWxlYXNlIHN5bmMgZmVuY2UsIHRoZQorICAgICAqIGZyYW1ld29yayBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5IHJldXNlIHRoZSBpbnB1dCBidWZmZXIuIE90aGVyd2lzZSwgdGhlCisgICAgICogZnJhbWV3b3JrIG11c3Qgd2FpdCBvbiB0aGUgc3luYyBmZW5jZSBiZWZvcmUgcmVmaWxsaW5nIGFuZCByZXVzaW5nIHRoZQorICAgICAqIGlucHV0IGJ1ZmZlci4KKyAgICAgKgorICAgICAqIFRoZSBpbnB1dC9vdXRwdXQgYnVmZmVycyBwcm92aWRlZCBieSB0aGUgZnJhbWV3b3JrIGluIGVhY2ggcmVxdWVzdAorICAgICAqIG1heSBiZSBicmFuZCBuZXcgKGhhdmluZyBuZXZlciBiZWZvcmUgc2VlbiBieSB0aGUgSEFMKS4KKyAgICAgKgorICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqIFBlcmZvcm1hbmNlIGNvbnNpZGVyYXRpb25zOgorICAgICAqCisgICAgICogSGFuZGxpbmcgYSBuZXcgYnVmZmVyIHNob3VsZCBiZSBleHRyZW1lbHkgbGlnaHR3ZWlnaHQgYW5kIHRoZXJlIG11c3QgYmUKKyAgICAgKiBubyBmcmFtZSByYXRlIGRlZ3JhZGF0aW9uIG9yIGZyYW1lIGppdHRlciBpbnRyb2R1Y2VkLgorICAgICAqCisgICAgICogVGhpcyBjYWxsIG11c3QgcmV0dXJuIGZhc3QgZW5vdWdoIHRvIGVuc3VyZSB0aGF0IHRoZSByZXF1ZXN0ZWQgZnJhbWUKKyAgICAgKiByYXRlIGNhbiBiZSBzdXN0YWluZWQsIGVzcGVjaWFsbHkgZm9yIHN0cmVhbWluZyBjYXNlcyAocG9zdC1wcm9jZXNzaW5nCisgICAgICogcXVhbGl0eSBzZXR0aW5ncyBzZXQgdG8gRkFTVCkuIFRoZSBIQUwgc2hvdWxkIHJldHVybiB0aGlzIGNhbGwgaW4gMQorICAgICAqIGZyYW1lIGludGVydmFsLCBhbmQgbXVzdCByZXR1cm4gZnJvbSB0aGlzIGNhbGwgaW4gNCBmcmFtZSBpbnRlcnZhbHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2Vzc2Z1bCBzdGFydCB0byBwcm9jZXNzaW5nIHRoZSBjYXB0dXJlIHJlcXVlc3QKKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDoKKyAgICAgKiAgICAgICAgIElmIHRoZSBpbnB1dCBpcyBtYWxmb3JtZWQgKHRoZSBzZXR0aW5ncyBhcmUgZW1wdHkgd2hlbiBub3QKKyAgICAgKiAgICAgICAgIGFsbG93ZWQsIHRoZXJlIGFyZSAwIG91dHB1dCBidWZmZXJzLCBldGMpIGFuZCBjYXB0dXJlIHByb2Nlc3NpbmcKKyAgICAgKiAgICAgICAgIGNhbm5vdCBzdGFydC4gRmFpbHVyZXMgZHVyaW5nIHJlcXVlc3QgcHJvY2Vzc2luZyBtdXN0IGJlCisgICAgICogICAgICAgICBoYW5kbGVkIGJ5IGNhbGxpbmcgSUNhbWVyYURldmljZUNhbGxiYWNrOjpub3RpZnkoKS4gSW4gY2FzZSBvZgorICAgICAqICAgICAgICAgdGhpcyBlcnJvciwgdGhlIGZyYW1ld29yayByZXRhaW5zIHJlc3BvbnNpYmlsaXR5IGZvciB0aGUKKyAgICAgKiAgICAgICAgIHN0cmVhbSBidWZmZXJzJyBmZW5jZXMgYW5kIHRoZSBidWZmZXIgaGFuZGxlczsgdGhlIEhBTCBtdXN0IG5vdAorICAgICAqICAgICAgICAgY2xvc2UgdGhlIGZlbmNlcyBvciByZXR1cm4gdGhlc2UgYnVmZmVycyB3aXRoCisgICAgICogICAgICAgICBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s6OnByb2Nlc3NDYXB0dXJlUmVzdWx0KCkuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgSWYgdGhlIGNhbWVyYSBkZXZpY2UgaGFzIGVuY291bnRlcmVkIGEgc2VyaW91cyBlcnJvci4gQWZ0ZXIgdGhpcworICAgICAqICAgICAgICAgZXJyb3IgaXMgcmV0dXJuZWQsIG9ubHkgdGhlIGNsb3NlKCkgbWV0aG9kIGNhbiBiZSBzdWNjZXNzZnVsbHkKKyAgICAgKiAgICAgICAgIGNhbGxlZCBieSB0aGUgZnJhbWV3b3JrLgorICAgICAqIEByZXR1cm4gbnVtUmVxdWVzdFByb2Nlc3NlZCBOdW1iZXIgb2YgcmVxdWVzdHMgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCBieQorICAgICAqICAgICBjYW1lcmEgSEFMLiBXaGVuIHN0YXR1cyBpcyBPSywgdGhpcyBtdXN0IGJlIGVxdWFsIHRvIHRoZSBzaXplIG9mCisgICAgICogICAgIHJlcXVlc3RzLiBXaGVuIHRoZSBjYWxsIGZhaWxzLCB0aGlzIG51bWJlciBpcyB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzCisgICAgICogICAgIHRoYXQgSEFMIHByb2Nlc3NlZCBzdWNjZXNzZnVsbHkgYmVmb3JlIEhBTCBydW5zIGludG8gYW4gZXJyb3IuCisgICAgICoKKyAgICAgKi8KKyAgICBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QodmVjPENhcHR1cmVSZXF1ZXN0PiByZXF1ZXN0cywKKyAgICAgICAgICAgIHZlYzxCdWZmZXJDYWNoZT4gY2FjaGVzVG9SZW1vdmUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHVpbnQzMl90IG51bVJlcXVlc3RQcm9jZXNzZWQpOworCisgICAgLyoqCisgICAgICogZ2V0Q2FwdHVyZVJlcXVlc3RNZXRhZGF0YVF1ZXVlOgorICAgICAqCisgICAgICogUmV0cmlldmVzIHRoZSBxdWV1ZSB1c2VkIGFsb25nIHdpdGggcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0LiBJZgorICAgICAqIGNsaWVudCBkZWNpZGVzIHRvIHVzZSBmYXN0IG1lc3NhZ2UgcXVldWUgdG8gcGFzcyByZXF1ZXN0IG1ldGFkYXRhLAorICAgICAqIGl0IG11c3Q6CisgICAgICogLSBDYWxsIGdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZSB0byByZXRyaWV2ZSB0aGUgZmFzdCBtZXNzYWdlIHF1ZXVlOworICAgICAqIC0gSW4gZWFjaCBvZiB0aGUgcmVxdWVzdHMgc2VudCBpbiBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QsIHNldAorICAgICAqICAgZm1xU2V0dGluZ3NTaXplIGZpZWxkIG9mIENhcHR1cmVSZXF1ZXN0IHRvIGJlIHRoZSBzaXplIHRvIHJlYWQgZnJvbSB0aGUKKyAgICAgKiAgIGZhc3QgbWVzc2FnZSBxdWV1ZTsgbGVhdmUgc2V0dGluZ3MgZmllbGQgb2YgQ2FwdHVyZVJlcXVlc3QgZW1wdHkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHF1ZXVlIHRoZSBxdWV1ZSB0aGF0IGNsaWVudCB3cml0ZXMgcmVxdWVzdCBtZXRhZGF0YSB0by4KKyAgICAgKi8KKyAgICBnZXRDYXB0dXJlUmVxdWVzdE1ldGFkYXRhUXVldWUoKSBnZW5lcmF0ZXMgKGZtcV9zeW5jPHVpbnQ4X3Q+IHF1ZXVlKTsKKworICAgIC8qKgorICAgICAqIGdldENhcHR1cmVSZXN1bHRNZXRhZGF0YVF1ZXVlOgorICAgICAqCisgICAgICogUmV0cmlldmVzIHRoZSBxdWV1ZSB1c2VkIGFsb25nIHdpdGgKKyAgICAgKiBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sucHJvY2Vzc0NhcHR1cmVSZXN1bHQuCisgICAgICoKKyAgICAgKiBDbGllbnRzIHRvIElDYW1lcmFEZXZpY2VTZXNzaW9uIG11c3Q6CisgICAgICogLSBDYWxsIGdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZSB0byByZXRyaWV2ZSB0aGUgZmFzdCBtZXNzYWdlIHF1ZXVlOworICAgICAqIC0gSW4gaW1wbGVtZW50YXRpb24gb2YgSUNhbWVyYURldmljZUNhbGxiYWNrLCB0ZXN0IHdoZXRoZXIKKyAgICAgKiAgIC5mbXFSZXN1bHRTaXplIGZpZWxkIGlzIHplcm8uCisgICAgICogICAgIC0gSWYgLmZtcVJlc3VsdFNpemUgIT0gMCwgcmVhZCByZXN1bHQgbWV0YWRhdGEgZnJvbSB0aGUgZmFzdCBtZXNzYWdlCisgICAgICogICAgICAgcXVldWU7CisgICAgICogICAgIC0gb3RoZXJ3aXNlLCByZWFkIHJlc3VsdCBtZXRhZGF0YSBpbiBDYXB0dXJlUmVzdWx0LnJlc3VsdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcXVldWUgdGhlIHF1ZXVlIHRoYXQgaW1wbGVtZW50YXRpb24gd3JpdGVzIHJlc3VsdCBtZXRhZGF0YSB0by4KKyAgICAgKi8KKyAgICBnZXRDYXB0dXJlUmVzdWx0TWV0YWRhdGFRdWV1ZSgpIGdlbmVyYXRlcyAoZm1xX3N5bmM8dWludDhfdD4gcXVldWUpOworCisgICAgLyoqCisgICAgICogZmx1c2g6CisgICAgICoKKyAgICAgKiBGbHVzaCBhbGwgY3VycmVudGx5IGluLXByb2Nlc3MgY2FwdHVyZXMgYW5kIGFsbCBidWZmZXJzIGluIHRoZSBwaXBlbGluZQorICAgICAqIG9uIHRoZSBnaXZlbiBkZXZpY2UuIEdlbmVyYWxseSwgdGhpcyBtZXRob2QgaXMgdXNlZCB0byBkdW1wIGFsbCBzdGF0ZSBhcworICAgICAqIHF1aWNrbHkgYXMgcG9zc2libGUgaW4gb3JkZXIgdG8gcHJlcGFyZSBmb3IgYSBjb25maWd1cmVfc3RyZWFtcygpIGNhbGwuCisgICAgICoKKyAgICAgKiBObyBidWZmZXJzIGFyZSByZXF1aXJlZCB0byBiZSBzdWNjZXNzZnVsbHkgcmV0dXJuZWQsIHNvIGV2ZXJ5IGJ1ZmZlcgorICAgICAqIGhlbGQgYXQgdGhlIHRpbWUgb2YgZmx1c2goKSAod2hldGhlciBzdWNjZXNzZnVsbHkgZmlsbGVkIG9yIG5vdCkgbWF5IGJlCisgICAgICogcmV0dXJuZWQgd2l0aCBDQU1FUkEzX0JVRkZFUl9TVEFUVVNfRVJST1IuIE5vdGUgdGhlIEhBTCBpcyBzdGlsbCBhbGxvd2VkCisgICAgICogdG8gcmV0dXJuIHZhbGlkIChDQU1FUkEzX0JVRkZFUl9TVEFUVVNfT0spIGJ1ZmZlcnMgZHVyaW5nIHRoaXMgY2FsbCwKKyAgICAgKiBwcm92aWRlZCB0aGV5IGFyZSBzdWNjZXNzZnVsbHkgZmlsbGVkLgorICAgICAqCisgICAgICogQWxsIHJlcXVlc3RzIGN1cnJlbnRseSBpbiB0aGUgSEFMIGFyZSBleHBlY3RlZCB0byBiZSByZXR1cm5lZCBhcyBzb29uIGFzCisgICAgICogcG9zc2libGUuIE5vdC1pbi1wcm9jZXNzIHJlcXVlc3RzIG11c3QgcmV0dXJuIGVycm9ycyBpbW1lZGlhdGVseS4gQW55CisgICAgICogaW50ZXJydXB0aWJsZSBoYXJkd2FyZSBibG9ja3MgbXVzdCBiZSBzdG9wcGVkLCBhbmQgYW55IHVuaW50ZXJydXB0aWJsZQorICAgICAqIGJsb2NrcyBtdXN0IGJlIHdhaXRlZCBvbi4KKyAgICAgKgorICAgICAqIGZsdXNoKCkgbWF5IGJlIGNhbGxlZCBjb25jdXJyZW50bHkgdG8gcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCksIHdpdGggdGhlCisgICAgICogZXhwZWN0YXRpb24gdGhhdCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QgcmV0dXJucyBxdWlja2x5IGFuZCB0aGUKKyAgICAgKiByZXF1ZXN0IHN1Ym1pdHRlZCBpbiB0aGF0IHByb2Nlc3NDYXB0dXJlUmVxdWVzdCBjYWxsIGlzIHRyZWF0ZWQgbGlrZQorICAgICAqIGFsbCBvdGhlciBpbi1mbGlnaHQgcmVxdWVzdHMuIER1ZSB0byBjb25jdXJyZW5jeSBpc3N1ZXMsIGl0IGlzIHBvc3NpYmxlCisgICAgICogdGhhdCBmcm9tIHRoZSBIQUwncyBwb2ludCBvZiB2aWV3LCBhIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCgpIGNhbGwgbWF5CisgICAgICogYmUgc3RhcnRlZCBhZnRlciBmbHVzaCBoYXMgYmVlbiBpbnZva2VkIGJ1dCBoYXMgbm90IHJldHVybmVkIHlldC4gSWYgc3VjaAorICAgICAqIGEgY2FsbCBoYXBwZW5zIGJlZm9yZSBmbHVzaCgpIHJldHVybnMsIHRoZSBIQUwgbXVzdCB0cmVhdCB0aGUgbmV3CisgICAgICogY2FwdHVyZSByZXF1ZXN0IGxpa2Ugb3RoZXIgaW4tZmxpZ2h0IHBlbmRpbmcgcmVxdWVzdHMgKHNlZSAjNCBiZWxvdykuCisgICAgICoKKyAgICAgKiBNb3JlIHNwZWNpZmljYWxseSwgdGhlIEhBTCBtdXN0IGZvbGxvdyBiZWxvdyByZXF1aXJlbWVudHMgZm9yIHZhcmlvdXMKKyAgICAgKiBjYXNlczoKKyAgICAgKgorICAgICAqIDEuIEZvciBjYXB0dXJlcyB0aGF0IGFyZSB0b28gbGF0ZSBmb3IgdGhlIEhBTCB0byBjYW5jZWwvc3RvcCwgYW5kIG11c3QgYmUKKyAgICAgKiAgICBjb21wbGV0ZWQgbm9ybWFsbHkgYnkgdGhlIEhBTDsgaS5lLiB0aGUgSEFMIGNhbiBzZW5kIHNodXR0ZXIvbm90aWZ5CisgICAgICogICAgYW5kIHByb2Nlc3NDYXB0dXJlUmVzdWx0IGFuZCBidWZmZXJzIGFzIG5vcm1hbC4KKyAgICAgKgorICAgICAqIDIuIEZvciBwZW5kaW5nIHJlcXVlc3RzIHRoYXQgaGF2ZSBub3QgZG9uZSBhbnkgcHJvY2Vzc2luZywgdGhlIEhBTCBtdXN0CisgICAgICogICAgY2FsbCBub3RpZnkgQ0FNRVJBM19NU0dfRVJST1JfUkVRVUVTVCwgYW5kIHJldHVybiBhbGwgdGhlIG91dHB1dAorICAgICAqICAgIGJ1ZmZlcnMgd2l0aCBwcm9jZXNzQ2FwdHVyZVJlc3VsdCBpbiB0aGUgZXJyb3Igc3RhdGUKKyAgICAgKiAgICAoQ0FNRVJBM19CVUZGRVJfU1RBVFVTX0VSUk9SKS4gVGhlIEhBTCBtdXN0IG5vdCBwbGFjZSB0aGUgcmVsZWFzZQorICAgICAqICAgIGZlbmNlIGludG8gYW4gZXJyb3Igc3RhdGUsIGluc3RlYWQsIHRoZSByZWxlYXNlIGZlbmNlcyBtdXN0IGJlIHNldCB0bworICAgICAqICAgIHRoZSBhY3F1aXJlIGZlbmNlcyBwYXNzZWQgYnkgdGhlIGZyYW1ld29yaywgb3IgLTEgaWYgdGhleSBoYXZlIGJlZW4KKyAgICAgKiAgICB3YWl0ZWQgb24gYnkgdGhlIEhBTCBhbHJlYWR5LiBUaGlzIGlzIGFsc28gdGhlIHBhdGggdG8gZm9sbG93IGZvciBhbnkKKyAgICAgKiAgICBjYXB0dXJlcyBmb3Igd2hpY2ggdGhlIEhBTCBhbHJlYWR5IGNhbGxlZCBub3RpZnkoKSB3aXRoCisgICAgICogICAgQ0FNRVJBM19NU0dfU0hVVFRFUiBidXQgd29uJ3QgYmUgcHJvZHVjaW5nIGFueSBtZXRhZGF0YS92YWxpZCBidWZmZXJzCisgICAgICogICAgZm9yLiBBZnRlciBDQU1FUkEzX01TR19FUlJPUl9SRVFVRVNULCBmb3IgYSBnaXZlbiBmcmFtZSwgb25seQorICAgICAqICAgIHByb2Nlc3NDYXB0dXJlUmVzdWx0cyB3aXRoIGJ1ZmZlcnMgaW4gQ0FNRVJBM19CVUZGRVJfU1RBVFVTX0VSUk9SCisgICAgICogICAgYXJlIGFsbG93ZWQuIE5vIGZ1cnRoZXIgbm90aWZ5cyBvciBwcm9jZXNzQ2FwdHVyZVJlc3VsdCB3aXRoCisgICAgICogICAgbm9uLWVtcHR5IG1ldGFkYXRhIGlzIGFsbG93ZWQuCisgICAgICoKKyAgICAgKiAzLiBGb3IgcGFydGlhbGx5IGNvbXBsZXRlZCBwZW5kaW5nIHJlcXVlc3RzIHRoYXQgZG8gbm90IGhhdmUgYWxsIHRoZQorICAgICAqICAgIG91dHB1dCBidWZmZXJzIG9yIHBlcmhhcHMgbWlzc2luZyBtZXRhZGF0YSwgdGhlIEhBTCBtdXN0IGZvbGxvdworICAgICAqICAgIGJlbG93OgorICAgICAqCisgICAgICogICAgMy4xLiBDYWxsIG5vdGlmeSB3aXRoIENBTUVSQTNfTVNHX0VSUk9SX1JFU1VMVCBpZiBzb21lIG9mIHRoZSBleHBlY3RlZAorICAgICAqICAgICAgICAgcmVzdWx0IG1ldGFkYXRhIChpLmUuIG9uZSBvciBtb3JlIHBhcnRpYWwgbWV0YWRhdGEpIHdvbid0IGJlCisgICAgICogICAgICAgICBhdmFpbGFibGUgZm9yIHRoZSBjYXB0dXJlLgorICAgICAqCisgICAgICogICAgMy4yLiBDYWxsIG5vdGlmeSB3aXRoIENBTUVSQTNfTVNHX0VSUk9SX0JVRkZFUiBmb3IgZXZlcnkgYnVmZmVyIHRoYXQKKyAgICAgKiAgICAgICAgIHdvbid0IGJlIHByb2R1Y2VkIGZvciB0aGUgY2FwdHVyZS4KKyAgICAgKgorICAgICAqICAgIDMuMy4gQ2FsbCBub3RpZnkgd2l0aCBDQU1FUkEzX01TR19TSFVUVEVSIHdpdGggdGhlIGNhcHR1cmUgdGltZXN0YW1wCisgICAgICogICAgICAgICBiZWZvcmUgYW55IGJ1ZmZlcnMvbWV0YWRhdGEgYXJlIHJldHVybmVkIHdpdGgKKyAgICAgKiAgICAgICAgIHByb2Nlc3NDYXB0dXJlUmVzdWx0LgorICAgICAqCisgICAgICogICAgMy40LiBGb3IgY2FwdHVyZXMgdGhhdCB3aWxsIHByb2R1Y2Ugc29tZSByZXN1bHRzLCB0aGUgSEFMIG11c3Qgbm90CisgICAgICogICAgICAgICBjYWxsIENBTUVSQTNfTVNHX0VSUk9SX1JFUVVFU1QsIHNpbmNlIHRoYXQgaW5kaWNhdGVzIGNvbXBsZXRlCisgICAgICogICAgICAgICBmYWlsdXJlLgorICAgICAqCisgICAgICogICAgMy41LiBWYWxpZCBidWZmZXJzL21ldGFkYXRhIG11c3QgYmUgcGFzc2VkIHRvIHRoZSBmcmFtZXdvcmsgYXMKKyAgICAgKiAgICAgICAgIG5vcm1hbC4KKyAgICAgKgorICAgICAqICAgIDMuNi4gRmFpbGVkIGJ1ZmZlcnMgbXVzdCBiZSByZXR1cm5lZCB0byB0aGUgZnJhbWV3b3JrIGFzIGRlc2NyaWJlZAorICAgICAqICAgICAgICAgZm9yIGNhc2UgMi4gQnV0IGZhaWxlZCBidWZmZXJzIGRvIG5vdCBoYXZlIHRvIGZvbGxvdyB0aGUgc3RyaWN0CisgICAgICogICAgICAgICBvcmRlcmluZyB2YWxpZCBidWZmZXJzIGRvLCBhbmQgbWF5IGJlIG91dC1vZi1vcmRlciB3aXRoIHJlc3BlY3QKKyAgICAgKiAgICAgICAgIHRvIHZhbGlkIGJ1ZmZlcnMuIEZvciBleGFtcGxlLCBpZiBidWZmZXJzIEEsIEIsIEMsIEQsIEUgYXJlIHNlbnQsCisgICAgICogICAgICAgICBEIGFuZCBFIGFyZSBmYWlsZWQsIHRoZW4gQSwgRSwgQiwgRCwgQyBpcyBhbiBhY2NlcHRhYmxlIHJldHVybgorICAgICAqICAgICAgICAgb3JkZXIuCisgICAgICoKKyAgICAgKiAgICAzLjcuIEZvciBmdWxseS1taXNzaW5nIG1ldGFkYXRhLCBjYWxsaW5nIENBTUVSQTNfTVNHX0VSUk9SX1JFU1VMVCBpcworICAgICAqICAgICAgICAgc3VmZmljaWVudCwgbm8gbmVlZCB0byBjYWxsIHByb2Nlc3NDYXB0dXJlUmVzdWx0IHdpdGggZW1wdHkKKyAgICAgKiAgICAgICAgIG1ldGFkYXRhIG9yIGVxdWl2YWxlbnQuCisgICAgICoKKyAgICAgKiA0LiBJZiBhIGZsdXNoKCkgaXMgaW52b2tlZCB3aGlsZSBhIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCgpIGludm9jYXRpb24KKyAgICAgKiAgICBpcyBhY3RpdmUsIHRoYXQgcHJvY2VzcyBjYWxsIG11c3QgcmV0dXJuIGFzIHNvb24gYXMgcG9zc2libGUuIEluCisgICAgICogICAgYWRkaXRpb24sIGlmIGEgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCkgY2FsbCBpcyBtYWRlIGFmdGVyIGZsdXNoKCkKKyAgICAgKiAgICBoYXMgYmVlbiBpbnZva2VkIGJ1dCBiZWZvcmUgZmx1c2goKSBoYXMgcmV0dXJuZWQsIHRoZSBjYXB0dXJlIHJlcXVlc3QKKyAgICAgKiAgICBwcm92aWRlZCBieSB0aGUgbGF0ZSBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QgY2FsbCBtdXN0IGJlIHRyZWF0ZWQKKyAgICAgKiAgICBsaWtlIGEgcGVuZGluZyByZXF1ZXN0IGluIGNhc2UgIzIgYWJvdmUuCisgICAgICoKKyAgICAgKiBmbHVzaCgpIG11c3Qgb25seSByZXR1cm4gd2hlbiB0aGVyZSBhcmUgbm8gbW9yZSBvdXRzdGFuZGluZyBidWZmZXJzIG9yCisgICAgICogcmVxdWVzdHMgbGVmdCBpbiB0aGUgSEFMLiBUaGUgZnJhbWV3b3JrIG1heSBjYWxsIGNvbmZpZ3VyZV9zdHJlYW1zIChhcworICAgICAqIHRoZSBIQUwgc3RhdGUgaXMgbm93IHF1aWVzY2VkKSBvciBtYXkgaXNzdWUgbmV3IHJlcXVlc3RzLgorICAgICAqCisgICAgICogTm90ZSB0aGF0IGl0J3Mgc3VmZmljaWVudCB0byBvbmx5IHN1cHBvcnQgZnVsbHktc3VjY2VlZGVkIGFuZAorICAgICAqIGZ1bGx5LWZhaWxlZCByZXN1bHQgY2FzZXMuIEhvd2V2ZXIsIGl0IGlzIGhpZ2hseSBkZXNpcmFibGUgdG8gc3VwcG9ydAorICAgICAqIHRoZSBwYXJ0aWFsIGZhaWx1cmUgY2FzZXMgYXMgd2VsbCwgYXMgaXQgY291bGQgaGVscCBpbXByb3ZlIHRoZSBmbHVzaAorICAgICAqIGNhbGwgb3ZlcmFsbCBwZXJmb3JtYW5jZS4KKyAgICAgKgorICAgICAqIFBlcmZvcm1hbmNlIHJlcXVpcmVtZW50czoKKyAgICAgKgorICAgICAqIFRoZSBIQUwgc2hvdWxkIHJldHVybiBmcm9tIHRoaXMgY2FsbCBpbiAxMDBtcywgYW5kIG11c3QgcmV0dXJuIGZyb20gdGhpcworICAgICAqIGNhbGwgaW4gMTAwMG1zLiBBbmQgdGhpcyBjYWxsIG11c3Qgbm90IGJlIGJsb2NrZWQgbG9uZ2VyIHRoYW4gcGlwZWxpbmUKKyAgICAgKiBsYXRlbmN5IChzZWUgUzcgZm9yIGRlZmluaXRpb24pLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBhIHN1Y2Nlc3NmdWwgZmx1c2ggb2YgdGhlIGNhbWVyYSBIQUwuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgSWYgdGhlIGNhbWVyYSBkZXZpY2UgaGFzIGVuY291bnRlcmVkIGEgc2VyaW91cyBlcnJvci4gQWZ0ZXIgdGhpcworICAgICAqICAgICAgICAgZXJyb3IgaXMgcmV0dXJuZWQsIG9ubHkgdGhlIGNsb3NlKCkgbWV0aG9kIGNhbiBiZSBzdWNjZXNzZnVsbHkKKyAgICAgKiAgICAgICAgIGNhbGxlZCBieSB0aGUgZnJhbWV3b3JrLgorICAgICAqLworICAgIGZsdXNoKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIGNsb3NlOgorICAgICAqCisgICAgICogU2h1dCBkb3duIHRoZSBjYW1lcmEgZGV2aWNlLgorICAgICAqCisgICAgICogQWZ0ZXIgdGhpcyBjYWxsLCBhbGwgY2FsbHMgdG8gdGhpcyBzZXNzaW9uIGluc3RhbmNlIG11c3QgcmV0dXJuCisgICAgICogSU5URVJOQUxfRVJST1IuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBtdXN0IGFsd2F5cyBzdWNjZWVkLCBldmVuIGlmIHRoZSBkZXZpY2UgaGFzIGVuY291bnRlcmVkIGEKKyAgICAgKiBzZXJpb3VzIGVycm9yLgorICAgICAqLworICAgIGNsb3NlKCk7Cit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9BbmRyb2lkLmJwIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyNWMwMDgKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSwyOCBAQAorY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJjYW1lcmEuZGV2aWNlQDMuMi1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgc3JjczogWyJDYW1lcmFEZXZpY2UuY3BwIiwKKyAgICAgICAgICAgIkNhbWVyYURldmljZVNlc3Npb24uY3BwIiwKKyAgICAgICAgICAgImNvbnZlcnQuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliY2FtZXJhX21ldGFkYXRhIiwKKyAgICAgICAgImxpYmZtcSIKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wLWhlbHBlciIKKyAgICBdLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnM6IFsiLiJdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmZtcSIsCisgICAgXQorfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2UuY3BwIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzN2ExZTYKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZS5jcHAKQEAgLTAsMCArMSwyOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNhbURldkAzLjItaW1wbCIKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorI2luY2x1ZGUgIkNhbWVyYURldmljZV8zXzIuaCIKKyNpbmNsdWRlIDxpbmNsdWRlL2NvbnZlcnQuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGRldmljZSB7CituYW1lc3BhY2UgVjNfMiB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6U3RhdHVzOworCitDYW1lcmFEZXZpY2U6OkNhbWVyYURldmljZSgKKyAgICBzcDxDYW1lcmFNb2R1bGU+IG1vZHVsZSwgY29uc3Qgc3RkOjpzdHJpbmcmIGNhbWVyYUlkLAorICAgIGNvbnN0IFNvcnRlZFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPj4mIGNhbWVyYURldmljZU5hbWVzKSA6CisgICAgICAgIG1Nb2R1bGUobW9kdWxlKSwKKyAgICAgICAgbUNhbWVyYUlkKGNhbWVyYUlkKSwKKyAgICAgICAgbURpc2Nvbm5lY3RlZChmYWxzZSksCisgICAgICAgIG1DYW1lcmFEZXZpY2VOYW1lcyhjYW1lcmFEZXZpY2VOYW1lcykgeworICAgIG1DYW1lcmFJZEludCA9IGF0b2kobUNhbWVyYUlkLmNfc3RyKCkpOworICAgIC8vIFNob3VsZCBub3QgcmVhY2ggaGVyZSBhcyBwcm92aWRlciBhbHNvIHZhbGlkYXRlIElECisgICAgaWYgKG1DYW1lcmFJZEludCA8IDAgfHwgbUNhbWVyYUlkSW50ID49IG1vZHVsZS0+Z2V0TnVtYmVyT2ZDYW1lcmFzKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIGNhbWVyYSBpZDogJXMiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgbUluaXRGYWlsID0gdHJ1ZTsKKyAgICB9CisKKyAgICBtRGV2aWNlVmVyc2lvbiA9IG1Nb2R1bGUtPmdldERldmljZVZlcnNpb24obUNhbWVyYUlkSW50KTsKKyAgICBpZiAobURldmljZVZlcnNpb24gPCBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYSBpZCAlcyBkb2VzIG5vdCBzdXBwb3J0IEhBTDMuMisiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBtSW5pdEZhaWwgPSB0cnVlOworICAgIH0KK30KKworQ2FtZXJhRGV2aWNlOjp+Q2FtZXJhRGV2aWNlKCkge30KKworU3RhdHVzIENhbWVyYURldmljZTo6aW5pdFN0YXR1cygpIGNvbnN0IHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIFN0YXR1cyBzdGF0dXMgPSBTdGF0dXM6Ok9LOworICAgIGlmIChtSW5pdEZhaWwpIHsKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICB9IGVsc2UgaWYgKG1EaXNjb25uZWN0ZWQpIHsKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpDQU1FUkFfRElTQ09OTkVDVEVEOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQorCit2b2lkIENhbWVyYURldmljZTo6c2V0Q29ubmVjdGlvblN0YXR1cyhib29sIGNvbm5lY3RlZCkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbURpc2Nvbm5lY3RlZCA9ICFjb25uZWN0ZWQ7CisgICAgaWYgKG1TZXNzaW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzcDxDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uID0gbVNlc3Npb24ucHJvbW90ZSgpOworICAgIGlmIChzZXNzaW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBPbmx5IG5vdGlmeSBhY3RpdmUgc2Vzc2lvbiBkaXNjb25uZWN0IGV2ZW50cy4KKyAgICAvLyBVc2VycyB3aWxsIG5lZWQgdG8gcmUtb3BlbiBjYW1lcmEgYWZ0ZXIgZGlzY29ubmVjdCBldmVudAorICAgIGlmICghY29ubmVjdGVkKSB7CisgICAgICAgIHNlc3Npb24tPmRpc2Nvbm5lY3QoKTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCitTdGF0dXMgQ2FtZXJhRGV2aWNlOjpnZXRIaWRsU3RhdHVzKGludCBzdGF0dXMpIHsKKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIDA6IHJldHVybiBTdGF0dXM6Ok9LOworICAgICAgICBjYXNlIC1FTk9TWVM6IHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIC1FQlVTWSA6IHJldHVybiBTdGF0dXM6OkNBTUVSQV9JTl9VU0U7CisgICAgICAgIGNhc2UgLUVVU0VSUzogcmV0dXJuIFN0YXR1czo6TUFYX0NBTUVSQVNfSU5fVVNFOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiJXM6IHVua25vd24gSEFMIHN0YXR1cyBjb2RlICVkIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2UgZm9sbG93LgorUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6Z2V0UmVzb3VyY2VDb3N0KGdldFJlc291cmNlQ29zdF9jYiBfaGlkbF9jYikgIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIENhbWVyYVJlc291cmNlQ29zdCByZXNDb3N0OworICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICBpbnQgY29zdCA9IDEwMDsKKyAgICAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IGNvbmZsaWN0aW5nX2RldmljZXM7CisgICAgICAgIHN0cnVjdCBjYW1lcmFfaW5mbyBpbmZvOworCisgICAgICAgIC8vIElmIHVzaW5nIHBvc3QtMi40IG1vZHVsZSB2ZXJzaW9uLCBxdWVyeSB0aGUgY29zdCArIGNvbmZsaWN0aW5nIGRldmljZXMgZnJvbSB0aGUgSEFMCisgICAgICAgIGlmIChtTW9kdWxlLT5nZXRNb2R1bGVBcGlWZXJzaW9uKCkgPj0gQ0FNRVJBX01PRFVMRV9BUElfVkVSU0lPTl8yXzQpIHsKKyAgICAgICAgICAgIGludCByZXQgPSBtTW9kdWxlLT5nZXRDYW1lcmFJbmZvKG1DYW1lcmFJZEludCwgJmluZm8pOworICAgICAgICAgICAgaWYgKHJldCA9PSBPSykgeworICAgICAgICAgICAgICAgIGNvc3QgPSBpbmZvLnJlc291cmNlX2Nvc3Q7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbmZvLmNvbmZsaWN0aW5nX2RldmljZXNfbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgY2FtZXJhSWQoaW5mby5jb25mbGljdGluZ19kZXZpY2VzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwYWlyIDogbUNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FtZXJhSWQgPT0gcGFpci5maXJzdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMucHVzaF9iYWNrKHBhaXIuc2Vjb25kKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgcmVzQ29zdC5yZXNvdXJjZUNvc3QgPSBjb3N0OworICAgICAgICAgICAgcmVzQ29zdC5jb25mbGljdGluZ0RldmljZXMucmVzaXplKGNvbmZsaWN0aW5nX2RldmljZXMuc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29uZmxpY3RpbmdfZGV2aWNlcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIHJlc0Nvc3QuY29uZmxpY3RpbmdEZXZpY2VzW2ldID0gY29uZmxpY3RpbmdfZGV2aWNlc1tpXTsKKyAgICAgICAgICAgICAgICBBTE9HVigiQ2FtRGV2aWNlICVzIGlzIGNvbmZsaWN0aW5nIHdpdGggY2FtRGV2aWNlICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1DYW1lcmFJZC5jX3N0cigpLCByZXNDb3N0LmNvbmZsaWN0aW5nRGV2aWNlc1tpXS5jX3N0cigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihzdGF0dXMsIHJlc0Nvc3QpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OmdldENhbWVyYUNoYXJhY3RlcmlzdGljcyhnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3NfY2IgX2hpZGxfY2IpICB7CisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBDYW1lcmFNZXRhZGF0YSBjYW1lcmFDaGFyYWN0ZXJpc3RpY3M7CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIC8vTW9kdWxlIDIuMSsgY29kZXBhdGguCisgICAgICAgIHN0cnVjdCBjYW1lcmFfaW5mbyBpbmZvOworICAgICAgICBpbnQgcmV0ID0gbU1vZHVsZS0+Z2V0Q2FtZXJhSW5mbyhtQ2FtZXJhSWRJbnQsICZpbmZvKTsKKyAgICAgICAgaWYgKHJldCA9PSBPSykgeworICAgICAgICAgICAgY29udmVydFRvSGlkbChpbmZvLnN0YXRpY19jYW1lcmFfY2hhcmFjdGVyaXN0aWNzLCAmY2FtZXJhQ2hhcmFjdGVyaXN0aWNzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogZ2V0IGNhbWVyYSBpbmZvIGZhaWxlZCEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihzdGF0dXMsIGNhbWVyYUNoYXJhY3RlcmlzdGljcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpzZXRUb3JjaE1vZGUoVG9yY2hNb2RlIG1vZGUpICB7CisgICAgaWYgKCFtTW9kdWxlLT5pc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgpKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOworICAgIH0KKworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIGJvb2wgZW5hYmxlID0gKG1vZGUgPT0gVG9yY2hNb2RlOjpPTikgPyB0cnVlIDogZmFsc2U7CisgICAgICAgIHN0YXR1cyA9IGdldEhpZGxTdGF0dXMobU1vZHVsZS0+c2V0VG9yY2hNb2RlKG1DYW1lcmFJZC5jX3N0cigpLCBlbmFibGUpKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6b3Blbihjb25zdCBzcDxJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s+JiBjYWxsYmFjaywgb3Blbl9jYiBfaGlkbF9jYikgIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIHNwPENhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb24gPSBudWxscHRyOworCisgICAgaWYgKGNhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW5ub3Qgb3BlbiBjYW1lcmEgJXMuIGNhbGxiYWNrIGlzIG51bGwhIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5ULCBzZXNzaW9uKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpZiAoc3RhdHVzICE9IFN0YXR1czo6T0spIHsKKyAgICAgICAgLy8gUHJvdmlkZXIgd2lsbCBuZXZlciBwYXNzIGluaXRGYWlsZWQgZGV2aWNlIHRvIGNsaWVudCwgc28KKyAgICAgICAgLy8gdGhpcyBtdXN0IGJlIGEgZGlzY29ubmVjdGVkIGNhbWVyYQorICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBvcGVuIGNhbWVyYSAlcy4gY2FtZXJhIGlzIGRpc2Nvbm5lY3RlZCEiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQsIHNlc3Npb24pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1Mb2NrLmxvY2soKTsKKworICAgICAgICBBTE9HVigiJXM6IEluaXRpYWxpemluZyBkZXZpY2UgZm9yIGNhbWVyYSAlZCIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkSW50KTsKKyAgICAgICAgc2Vzc2lvbiA9IG1TZXNzaW9uLnByb21vdGUoKTsKKyAgICAgICAgaWYgKHNlc3Npb24gIT0gbnVsbHB0ciAmJiAhc2Vzc2lvbi0+aXNDbG9zZWQoKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBjYW5ub3Qgb3BlbiBhbiBhbHJlYWR5IG9wZW5lZCBjYW1lcmEhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIG1Mb2NrLnVubG9jaygpOworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpDQU1FUkFfSU5fVVNFLCBudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICAvKiogT3BlbiBIQUwgZGV2aWNlICovCisgICAgICAgIHN0YXR1c190IHJlczsKKyAgICAgICAgY2FtZXJhM19kZXZpY2VfdCAqZGV2aWNlOworCisgICAgICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhMy0+b3BlbiIpOworICAgICAgICByZXMgPSBtTW9kdWxlLT5vcGVuKG1DYW1lcmFJZC5jX3N0cigpLAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfZGV2aWNlX3QqKj4oJmRldmljZSkpOworICAgICAgICBBVFJBQ0VfRU5EKCk7CisKKyAgICAgICAgaWYgKHJlcyAhPSBPSykgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBjYW5ub3Qgb3BlbiBjYW1lcmEgJXMhIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgICAgICBtTG9jay51bmxvY2soKTsKKyAgICAgICAgICAgIF9oaWRsX2NiKGdldEhpZGxTdGF0dXMocmVzKSwgbnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgLyoqIENyb3NzLWNoZWNrIGRldmljZSB2ZXJzaW9uICovCisgICAgICAgIGlmIChkZXZpY2UtPmNvbW1vbi52ZXJzaW9uIDwgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogQ291bGQgbm90IG9wZW4gY2FtZXJhOiAiCisgICAgICAgICAgICAgICAgICAgICJDYW1lcmEgZGV2aWNlIHNob3VsZCBiZSBhdCBsZWFzdCAleCwgcmVwb3J0cyAleCBpbnN0ZWFkIiwKKyAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgICAgICAgICBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMiwKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlLT5jb21tb24udmVyc2lvbik7CisgICAgICAgICAgICBkZXZpY2UtPmNvbW1vbi5jbG9zZSgmZGV2aWNlLT5jb21tb24pOworICAgICAgICAgICAgbUxvY2sudW5sb2NrKCk7CisgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnVjdCBjYW1lcmFfaW5mbyBpbmZvOworICAgICAgICByZXMgPSBtTW9kdWxlLT5nZXRDYW1lcmFJbmZvKG1DYW1lcmFJZEludCwgJmluZm8pOworICAgICAgICBpZiAocmVzICE9IE9LKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IENvdWxkIG5vdCBvcGVuIGNhbWVyYTogZ2V0Q2FtZXJhSW5mbyBmYWlsZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgZGV2aWNlLT5jb21tb24uY2xvc2UoJmRldmljZS0+Y29tbW9uKTsKKyAgICAgICAgICAgIG1Mb2NrLnVubG9jaygpOworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5ULCBudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICBzZXNzaW9uID0gbmV3IENhbWVyYURldmljZVNlc3Npb24oCisgICAgICAgICAgICAgICAgZGV2aWNlLCBpbmZvLnN0YXRpY19jYW1lcmFfY2hhcmFjdGVyaXN0aWNzLCBjYWxsYmFjayk7CisgICAgICAgIGlmIChzZXNzaW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIGRldmljZSBzZXNzaW9uIGFsbG9jYXRpb24gZmFpbGVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIG1Mb2NrLnVubG9jaygpOworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgbnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisgICAgICAgIGlmIChzZXNzaW9uLT5pc0luaXRGYWlsZWQoKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgZGV2aWNlIHNlc3Npb24gaW5pdCBmYWlsZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgc2Vzc2lvbiA9IG51bGxwdHI7CisgICAgICAgICAgICBtTG9jay51bmxvY2soKTsKKyAgICAgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorICAgICAgICBtU2Vzc2lvbiA9IHNlc3Npb247CisgICAgICAgIG1Mb2NrLnVubG9jaygpOworICAgIH0KKyAgICBfaGlkbF9jYihzdGF0dXMsIHNlc3Npb24pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OmR1bXBTdGF0ZShjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSYgaGFuZGxlKSAgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKGhhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogaGFuZGxlIG11c3Qgbm90IGJlIG51bGwiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpZiAoaGFuZGxlLT5udW1GZHMgIT0gMSB8fCBoYW5kbGUtPm51bUludHMgIT0gMCkgeworICAgICAgICBBTE9HRSgiJXM6IGhhbmRsZSBtdXN0IGNvbnRhaW4gMSBGRCBhbmQgMCBpbnRlZ2VycyEgR290ICVkIEZEcyBhbmQgJWQgaW50cyIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBoYW5kbGUtPm51bUZkcywgaGFuZGxlLT5udW1JbnRzKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgaW50IGZkID0gaGFuZGxlLT5kYXRhWzBdOworICAgIGlmIChtU2Vzc2lvbiA9PSBudWxscHRyKSB7CisgICAgICAgIGRwcmludGYoZmQsICJObyBhY3RpdmUgY2FtZXJhIGRldmljZSBzZXNzaW9uIGluc3RhbmNlXG4iKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3A8Q2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbiA9IG1TZXNzaW9uLnByb21vdGUoKTsKKyAgICBpZiAoc2Vzc2lvbiA9PSBudWxscHRyKSB7CisgICAgICAgIGRwcmludGYoZmQsICJObyBhY3RpdmUgY2FtZXJhIGRldmljZSBzZXNzaW9uIGluc3RhbmNlXG4iKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgLy8gQ2FsbCBpbnRvIGFjdGl2ZSBzZXNzaW9uIHRvIGR1bXAgc3RhdGVzCisgICAgc2Vzc2lvbi0+ZHVtcFN0YXRlKGhhbmRsZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKy8vIEVuZCBvZiBtZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2UuCisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjNfMgorfSAgLy8gbmFtZXNwYWNlIGRldmljZQorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VTZXNzaW9uLmNwcCBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQ2FtZXJhRGV2aWNlU2Vzc2lvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmFkNDA2ZgotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQ2FtZXJhRGV2aWNlU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSwxMzI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJDYW1EZXZTZXNzaW9uQDMuMi1pbXBsIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8dXRpbHMvVHJhY2UuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYzEuaD4KKyNpbmNsdWRlICJDYW1lcmFEZXZpY2VTZXNzaW9uLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBkZXZpY2UgeworbmFtZXNwYWNlIFYzXzIgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gU2l6ZSBvZiByZXF1ZXN0IG1ldGFkYXRhIGZhc3QgbWVzc2FnZSBxdWV1ZS4gQ2hhbmdlIHRvIDAgdG8gYWx3YXlzIHVzZSBod2JpbmRlciBidWZmZXIuCitzdGF0aWMgY29uc3RleHByIHNpemVfdCBDQU1FUkFfUkVRVUVTVF9NRVRBREFUQV9RVUVVRV9TSVpFID0gMSA8PCAyMCAvKiAxTUIgKi87CisvLyBTaXplIG9mIHJlc3VsdCBtZXRhZGF0YSBmYXN0IG1lc3NhZ2UgcXVldWUuIENoYW5nZSB0byAwIHRvIGFsd2F5cyB1c2UgaHdiaW5kZXIgYnVmZmVyLgorc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgQ0FNRVJBX1JFU1VMVF9NRVRBREFUQV9RVUVVRV9TSVpFICA9IDEgPDwgMjAgLyogMU1CICovOworCitIYW5kbGVJbXBvcnRlciBDYW1lcmFEZXZpY2VTZXNzaW9uOjpzSGFuZGxlSW1wb3J0ZXI7Citjb25zdCBpbnQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6Tk9UX0JBVENIRUQ7CisKK0NhbWVyYURldmljZVNlc3Npb246OkNhbWVyYURldmljZVNlc3Npb24oCisgICAgY2FtZXJhM19kZXZpY2VfdCogZGV2aWNlLAorICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiBkZXZpY2VJbmZvLAorICAgIGNvbnN0IHNwPElDYW1lcmFEZXZpY2VDYWxsYmFjaz4mIGNhbGxiYWNrKSA6CisgICAgICAgIGNhbWVyYTNfY2FsbGJhY2tfb3BzKHsmc1Byb2Nlc3NDYXB0dXJlUmVzdWx0LCAmc05vdGlmeX0pLAorICAgICAgICBtRGV2aWNlKGRldmljZSksCisgICAgICAgIG1EZXZpY2VWZXJzaW9uKGRldmljZS0+Y29tbW9uLnZlcnNpb24pLAorICAgICAgICBtSXNBRUxvY2tBdmFpbGFibGUoZmFsc2UpLAorICAgICAgICBtRGVyaXZlUG9zdFJhd1NlbnNLZXkoZmFsc2UpLAorICAgICAgICBtTnVtUGFydGlhbFJlc3VsdHMoMSksCisgICAgICAgIG1SZXN1bHRCYXRjaGVyKGNhbGxiYWNrKSB7CisKKyAgICBtRGV2aWNlSW5mbyA9IGRldmljZUluZm87CisgICAgY2FtZXJhX21ldGFkYXRhX2VudHJ5IHBhcnRpYWxSZXN1bHRzQ291bnQgPQorICAgICAgICAgICAgbURldmljZUluZm8uZmluZChBTkRST0lEX1JFUVVFU1RfUEFSVElBTF9SRVNVTFRfQ09VTlQpOworICAgIGlmIChwYXJ0aWFsUmVzdWx0c0NvdW50LmNvdW50ID4gMCkgeworICAgICAgICBtTnVtUGFydGlhbFJlc3VsdHMgPSBwYXJ0aWFsUmVzdWx0c0NvdW50LmRhdGEuaTMyWzBdOworICAgIH0KKyAgICBtUmVzdWx0QmF0Y2hlci5zZXROdW1QYXJ0aWFsUmVzdWx0cyhtTnVtUGFydGlhbFJlc3VsdHMpOworCisgICAgY2FtZXJhX21ldGFkYXRhX2VudHJ5IGFlTG9ja0F2YWlsYWJsZUVudHJ5ID0gbURldmljZUluZm8uZmluZCgKKyAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9BRV9MT0NLX0FWQUlMQUJMRSk7CisgICAgaWYgKGFlTG9ja0F2YWlsYWJsZUVudHJ5LmNvdW50ID4gMCkgeworICAgICAgICBtSXNBRUxvY2tBdmFpbGFibGUgPSAoYWVMb2NrQXZhaWxhYmxlRW50cnkuZGF0YS51OFswXSA9PQorICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9BRV9MT0NLX0FWQUlMQUJMRV9UUlVFKTsKKyAgICB9CisKKyAgICAvLyBEZXRlcm1pbmUgd2hldGhlciB3ZSBuZWVkIHRvIGRlcml2ZSBzZW5zaXRpdml0eSBib29zdCB2YWx1ZXMgZm9yIG9sZGVyIGRldmljZXMuCisgICAgLy8gSWYgcG9zdC1SQVcgc2Vuc2l0aXZpdHkgYm9vc3QgcmFuZ2UgaXMgbGlzdGVkLCBzbyBzaG91bGQgcG9zdC1yYXcgc2Vuc2l0aXZpdHkgY29udHJvbAorICAgIC8vIGJlIGxpc3RlZCAoYXMgdGhlIGRlZmF1bHQgdmFsdWUgMTAwKQorICAgIGlmIChtRGV2aWNlSW5mby5leGlzdHMoQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NUX1JBTkdFKSkgeworICAgICAgICBtRGVyaXZlUG9zdFJhd1NlbnNLZXkgPSB0cnVlOworICAgIH0KKworICAgIG1Jbml0RmFpbCA9IGluaXRpYWxpemUoKTsKK30KKworYm9vbCBDYW1lcmFEZXZpY2VTZXNzaW9uOjppbml0aWFsaXplKCkgeworICAgIC8qKiBJbml0aWFsaXplIGRldmljZSB3aXRoIGNhbGxiYWNrIGZ1bmN0aW9ucyAqLworICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhMy0+aW5pdGlhbGl6ZSIpOworICAgIHN0YXR1c190IHJlcyA9IG1EZXZpY2UtPm9wcy0+aW5pdGlhbGl6ZShtRGV2aWNlLCB0aGlzKTsKKyAgICBBVFJBQ0VfRU5EKCk7CisKKyAgICBpZiAocmVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGluaXRpYWxpemUgSEFMIGRldmljZTogJXMgKCVkKSIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBzdHJlcnJvcigtcmVzKSwgcmVzKTsKKyAgICAgICAgbURldmljZS0+Y29tbW9uLmNsb3NlKCZtRGV2aWNlLT5jb21tb24pOworICAgICAgICBtQ2xvc2VkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgbVJlcXVlc3RNZXRhZGF0YVF1ZXVlID0gc3RkOjptYWtlX3VuaXF1ZTxSZXF1ZXN0TWV0YWRhdGFRdWV1ZT4oCisgICAgICAgICAgICBDQU1FUkFfUkVRVUVTVF9NRVRBREFUQV9RVUVVRV9TSVpFLCBmYWxzZSAvKiBub24gYmxvY2tpbmcgKi8pOworICAgIGlmICghbVJlcXVlc3RNZXRhZGF0YVF1ZXVlLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBpbnZhbGlkIHJlcXVlc3QgZm1xIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG1SZXN1bHRNZXRhZGF0YVF1ZXVlID0gc3RkOjptYWtlX3NoYXJlZDxSZXF1ZXN0TWV0YWRhdGFRdWV1ZT4oCisgICAgICAgICAgICBDQU1FUkFfUkVTVUxUX01FVEFEQVRBX1FVRVVFX1NJWkUsIGZhbHNlIC8qIG5vbiBibG9ja2luZyAqLyk7CisgICAgaWYgKCFtUmVzdWx0TWV0YWRhdGFRdWV1ZS0+aXNWYWxpZCgpKSB7CisgICAgICAgIEFMT0dFKCIlczogaW52YWxpZCByZXN1bHQgZm1xIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG1SZXN1bHRCYXRjaGVyLnNldFJlc3VsdE1ldGFkYXRhUXVldWUobVJlc3VsdE1ldGFkYXRhUXVldWUpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCitDYW1lcmFEZXZpY2VTZXNzaW9uOjp+Q2FtZXJhRGV2aWNlU2Vzc2lvbigpIHsKKyAgICBpZiAoIWlzQ2xvc2VkKCkpIHsKKyAgICAgICAgQUxPR0UoIkNhbWVyYURldmljZVNlc3Npb24gZGVsZXRlZCBiZWZvcmUgY2xvc2UhIik7CisgICAgICAgIGNsb3NlKCk7CisgICAgfQorfQorCitib29sIENhbWVyYURldmljZVNlc3Npb246OmlzQ2xvc2VkKCkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtU3RhdGVMb2NrKTsKKyAgICByZXR1cm4gbUNsb3NlZDsKK30KKworU3RhdHVzIENhbWVyYURldmljZVNlc3Npb246OmluaXRTdGF0dXMoKSBjb25zdCB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1TdGF0ZUxvY2spOworICAgIFN0YXR1cyBzdGF0dXMgPSBTdGF0dXM6Ok9LOworICAgIGlmIChtSW5pdEZhaWwpIHsKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICB9IGVsc2UgaWYgKG1EaXNjb25uZWN0ZWQpIHsKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpDQU1FUkFfRElTQ09OTkVDVEVEOworICAgIH0gZWxzZSBpZiAobUNsb3NlZCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OmRpc2Nvbm5lY3QoKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1TdGF0ZUxvY2spOworICAgIG1EaXNjb25uZWN0ZWQgPSB0cnVlOworICAgIEFMT0dXKCIlczogQ2FtZXJhIGRldmljZSBpcyBkaXNjb25uZWN0ZWQuIENsb3NpbmcuIiwgX19GVU5DVElPTl9fKTsKKyAgICBpZiAoIW1DbG9zZWQpIHsKKyAgICAgICAgbURldmljZS0+Y29tbW9uLmNsb3NlKCZtRGV2aWNlLT5jb21tb24pOworICAgICAgICBtQ2xvc2VkID0gdHJ1ZTsKKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6ZHVtcFN0YXRlKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogZmQpIHsKKyAgICBpZiAoIWlzQ2xvc2VkKCkpIHsKKyAgICAgICAgbURldmljZS0+b3BzLT5kdW1wKG1EZXZpY2UsIGZkLT5kYXRhWzBdKTsKKyAgICB9Cit9CisKKy8qKgorICogRm9yIGRldmljZXMgPD0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIsIEFFX1BSRUNBUFRVUkVfVFJJR0dFUl9DQU5DRUwgaXMgbm90IHN1cHBvcnRlZCBzbworICogd2UgbmVlZCB0byBvdmVycmlkZSBBRV9QUkVDQVBUVVJFX1RSSUdHRVJfQ0FOQ0VMIHRvIEFFX1BSRUNBUFRVUkVfVFJJR0dFUl9JRExFIGFuZCBBRV9MT0NLX09GRgorICogdG8gQUVfTE9DS19PTiB0byBzdGFydCBjYW5jZWxsaW5nIEFFIHByZWNhcHR1cmUuIElmIEFFIGxvY2sgaXMgbm90IGF2YWlsYWJsZSwgaXQgc3RpbGwgb3ZlcnJpZGVzCisgKiBBRV9QUkVDQVBUVVJFX1RSSUdHRVJfQ0FOQ0VMIHRvIEFFX1BSRUNBUFRVUkVfVFJJR0dFUl9JRExFIGJ1dCBkb2Vzbid0IGFkZCBBRV9MT0NLX09OIHRvIHRoZQorICogcmVxdWVzdC4KKyAqLworYm9vbCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpoYW5kbGVBZVByZWNhcHR1cmVDYW5jZWxSZXF1ZXN0TG9ja2VkKAorICAgICAgICBjb25zdCBjYW1lcmEzX2NhcHR1cmVfcmVxdWVzdF90ICZoYWxSZXF1ZXN0LAorICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSAqc2V0dGluZ3MgLypvdXQqLywKKyAgICAgICAgIEFFVHJpZ2dlckNhbmNlbE92ZXJyaWRlICpvdmVycmlkZSAvKm91dCovKSB7CisgICAgaWYgKChtRGV2aWNlVmVyc2lvbiA+IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB8fAorICAgICAgICAgICAgKG51bGxwdHIgPT0gaGFsUmVxdWVzdC5zZXR0aW5ncykgfHwgKG51bGxwdHIgPT0gc2V0dGluZ3MpIHx8CisgICAgICAgICAgICAoMCA9PSBnZXRfY2FtZXJhX21ldGFkYXRhX2VudHJ5X2NvdW50KGhhbFJlcXVlc3Quc2V0dGluZ3MpKSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc2V0dGluZ3MtPmNsZWFyKCk7CisgICAgc2V0dGluZ3MtPmFwcGVuZChoYWxSZXF1ZXN0LnNldHRpbmdzKTsKKyAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnlfdCBhZVByZWNhcHR1cmVUcmlnZ2VyID0KKyAgICAgICAgICAgIHNldHRpbmdzLT5maW5kKEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVIpOworICAgIGlmIChhZVByZWNhcHR1cmVUcmlnZ2VyLmNvdW50ID4gMCAmJgorICAgICAgICAgICAgYWVQcmVjYXB0dXJlVHJpZ2dlci5kYXRhLnU4WzBdID09CisgICAgICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVJfQ0FOQ0VMKSB7CisgICAgICAgIC8vIEFsd2F5cyBvdmVycmlkZSBDQU5DRUwgdG8gSURMRQorICAgICAgICB1aW50OF90IGFlUHJlY2FwdHVyZVRyaWdnZXIgPQorICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVJfSURMRTsKKyAgICAgICAgc2V0dGluZ3MtPnVwZGF0ZShBTkRST0lEX0NPTlRST0xfQUVfUFJFQ0FQVFVSRV9UUklHR0VSLAorICAgICAgICAgICAgICAgICZhZVByZWNhcHR1cmVUcmlnZ2VyLCAxKTsKKyAgICAgICAgKm92ZXJyaWRlID0geyBmYWxzZSwgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfT0ZGLAorICAgICAgICAgICAgICAgIHRydWUsIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVJfQ0FOQ0VMIH07CisKKyAgICAgICAgaWYgKG1Jc0FFTG9ja0F2YWlsYWJsZSA9PSB0cnVlKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnlfdCBhZUxvY2sgPSBzZXR0aW5ncy0+ZmluZCgKKyAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0spOworICAgICAgICAgICAgaWYgKGFlTG9jay5jb3VudCA9PSAwIHx8IGFlTG9jay5kYXRhLnU4WzBdID09CisgICAgICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9BRV9MT0NLX09GRikgeworICAgICAgICAgICAgICAgIHVpbnQ4X3QgYWVMb2NrID0gQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfT047CisgICAgICAgICAgICAgICAgc2V0dGluZ3MtPnVwZGF0ZShBTkRST0lEX0NPTlRST0xfQUVfTE9DSywgJmFlTG9jaywgMSk7CisgICAgICAgICAgICAgICAgb3ZlcnJpZGUtPmFwcGx5QWVMb2NrID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBvdmVycmlkZS0+YWVMb2NrID0gQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfT0ZGOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvKioKKyAqIE92ZXJyaWRlIHJlc3VsdCBtZXRhZGF0YSBmb3IgY2FuY2VsbGluZyBBRSBwcmVjYXB0dXJlIHRyaWdnZXIgYXBwbGllZCBpbgorICogaGFuZGxlQWVQcmVjYXB0dXJlQ2FuY2VsUmVxdWVzdExvY2tlZCgpLgorICovCit2b2lkIENhbWVyYURldmljZVNlc3Npb246Om92ZXJyaWRlUmVzdWx0Rm9yUHJlY2FwdHVyZUNhbmNlbExvY2tlZCgKKyAgICAgICAgY29uc3QgQUVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUgJmFlVHJpZ2dlckNhbmNlbE92ZXJyaWRlLAorICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSAqc2V0dGluZ3MgLypvdXQqLykgeworICAgIGlmIChhZVRyaWdnZXJDYW5jZWxPdmVycmlkZS5hcHBseUFlTG9jaykgeworICAgICAgICAvLyBPbmx5IGRldmljZXMgPD0gdjMuMiBzaG91bGQgaGF2ZSB0aGlzIG92ZXJyaWRlCisgICAgICAgIGFzc2VydChtRGV2aWNlVmVyc2lvbiA8PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMik7CisgICAgICAgIHNldHRpbmdzLT51cGRhdGUoQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0ssICZhZVRyaWdnZXJDYW5jZWxPdmVycmlkZS5hZUxvY2ssIDEpOworICAgIH0KKworICAgIGlmIChhZVRyaWdnZXJDYW5jZWxPdmVycmlkZS5hcHBseUFlUHJlY2FwdHVyZVRyaWdnZXIpIHsKKyAgICAgICAgLy8gT25seSBkZXZpY2VzIDw9IHYzLjIgc2hvdWxkIGhhdmUgdGhpcyBvdmVycmlkZQorICAgICAgICBhc3NlcnQobURldmljZVZlcnNpb24gPD0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpOworICAgICAgICBzZXR0aW5ncy0+dXBkYXRlKEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVIsCisgICAgICAgICAgICAgICAgJmFlVHJpZ2dlckNhbmNlbE92ZXJyaWRlLmFlUHJlY2FwdHVyZVRyaWdnZXIsIDEpOworICAgIH0KK30KKworU3RhdHVzIENhbWVyYURldmljZVNlc3Npb246OmltcG9ydFJlcXVlc3QoCisgICAgICAgIGNvbnN0IENhcHR1cmVSZXF1ZXN0JiByZXF1ZXN0LAorICAgICAgICBoaWRsX3ZlYzxidWZmZXJfaGFuZGxlX3QqPiYgYWxsQnVmUHRycywKKyAgICAgICAgaGlkbF92ZWM8aW50PiYgYWxsRmVuY2VzKSB7CisgICAgYm9vbCBoYXNJbnB1dEJ1ZiA9IChyZXF1ZXN0LmlucHV0QnVmZmVyLnN0cmVhbUlkICE9IC0xICYmCisgICAgICAgICAgICByZXF1ZXN0LmlucHV0QnVmZmVyLmJ1ZmZlcklkICE9IDApOworICAgIHNpemVfdCBudW1PdXRwdXRCdWZzID0gcmVxdWVzdC5vdXRwdXRCdWZmZXJzLnNpemUoKTsKKyAgICBzaXplX3QgbnVtQnVmcyA9IG51bU91dHB1dEJ1ZnMgKyAoaGFzSW5wdXRCdWYgPyAxIDogMCk7CisgICAgLy8gVmFsaWRhdGUgYWxsIEkvTyBidWZmZXJzCisgICAgaGlkbF92ZWM8YnVmZmVyX2hhbmRsZV90PiBhbGxCdWZzOworICAgIGhpZGxfdmVjPHVpbnQ2NF90PiBhbGxCdWZJZHM7CisgICAgYWxsQnVmcy5yZXNpemUobnVtQnVmcyk7CisgICAgYWxsQnVmSWRzLnJlc2l6ZShudW1CdWZzKTsKKyAgICBhbGxCdWZQdHJzLnJlc2l6ZShudW1CdWZzKTsKKyAgICBhbGxGZW5jZXMucmVzaXplKG51bUJ1ZnMpOworICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IHN0cmVhbUlkcyhudW1CdWZzKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtT3V0cHV0QnVmczsgaSsrKSB7CisgICAgICAgIGFsbEJ1ZnNbaV0gPSByZXF1ZXN0Lm91dHB1dEJ1ZmZlcnNbaV0uYnVmZmVyLmdldE5hdGl2ZUhhbmRsZSgpOworICAgICAgICBhbGxCdWZJZHNbaV0gPSByZXF1ZXN0Lm91dHB1dEJ1ZmZlcnNbaV0uYnVmZmVySWQ7CisgICAgICAgIGFsbEJ1ZlB0cnNbaV0gPSAmYWxsQnVmc1tpXTsKKyAgICAgICAgc3RyZWFtSWRzW2ldID0gcmVxdWVzdC5vdXRwdXRCdWZmZXJzW2ldLnN0cmVhbUlkOworICAgIH0KKyAgICBpZiAoaGFzSW5wdXRCdWYpIHsKKyAgICAgICAgYWxsQnVmc1tudW1PdXRwdXRCdWZzXSA9IHJlcXVlc3QuaW5wdXRCdWZmZXIuYnVmZmVyLmdldE5hdGl2ZUhhbmRsZSgpOworICAgICAgICBhbGxCdWZJZHNbbnVtT3V0cHV0QnVmc10gPSByZXF1ZXN0LmlucHV0QnVmZmVyLmJ1ZmZlcklkOworICAgICAgICBhbGxCdWZQdHJzW251bU91dHB1dEJ1ZnNdID0gJmFsbEJ1ZnNbbnVtT3V0cHV0QnVmc107CisgICAgICAgIHN0cmVhbUlkc1tudW1PdXRwdXRCdWZzXSA9IHJlcXVlc3QuaW5wdXRCdWZmZXIuc3RyZWFtSWQ7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1CdWZzOyBpKyspIHsKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGJ1ZiA9IGFsbEJ1ZnNbaV07CisgICAgICAgIHVpbnQ2NF90IGJ1ZklkID0gYWxsQnVmSWRzW2ldOworICAgICAgICBDaXJjdWxhdGluZ0J1ZmZlcnMmIGNicyA9IG1DaXJjdWxhdGluZ0J1ZmZlcnNbc3RyZWFtSWRzW2ldXTsKKyAgICAgICAgaWYgKGNicy5jb3VudChidWZJZCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKGJ1ZiA9PSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBidWZmZXJJZCAlIiBQUkl1NjQgIiBoYXMgbnVsbCBidWZmZXIgaGFuZGxlISIsIF9fRlVOQ1RJT05fXywgYnVmSWQpOworICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBSZWdpc3RlciBhIG5ld2x5IHNlZW4gYnVmZmVyCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgaW1wb3J0ZWRCdWYgPSBidWY7CisgICAgICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuaW1wb3J0QnVmZmVyKGltcG9ydGVkQnVmKTsKKyAgICAgICAgICAgIGlmIChpbXBvcnRlZEJ1ZiA9PSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBvdXRwdXQgYnVmZmVyICV6dSBpcyBpbnZhbGlkISIsIF9fRlVOQ1RJT05fXywgaSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNic1tidWZJZF0gPSBpbXBvcnRlZEJ1ZjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBhbGxCdWZQdHJzW2ldID0gJmNic1tidWZJZF07CisgICAgfQorCisgICAgLy8gQWxsIGJ1ZmZlcnMgYXJlIGltcG9ydGVkLiBOb3cgdmFsaWRhdGUgb3V0cHV0IGJ1ZmZlciBhY3F1aXJlIGZlbmNlcworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtT3V0cHV0QnVmczsgaSsrKSB7CisgICAgICAgIGlmICghc0hhbmRsZUltcG9ydGVyLmltcG9ydEZlbmNlKAorICAgICAgICAgICAgICAgIHJlcXVlc3Qub3V0cHV0QnVmZmVyc1tpXS5hY3F1aXJlRmVuY2UsIGFsbEZlbmNlc1tpXSkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogb3V0cHV0IGJ1ZmZlciAlenUgYWNxdWlyZSBmZW5jZSBpcyBpbnZhbGlkIiwgX19GVU5DVElPTl9fLCBpKTsKKyAgICAgICAgICAgIGNsZWFudXBJbmZsaWdodEZlbmNlcyhhbGxGZW5jZXMsIGkpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBWYWxpZGF0ZSBpbnB1dCBidWZmZXIgYWNxdWlyZSBmZW5jZXMKKyAgICBpZiAoaGFzSW5wdXRCdWYpIHsKKyAgICAgICAgaWYgKCFzSGFuZGxlSW1wb3J0ZXIuaW1wb3J0RmVuY2UoCisgICAgICAgICAgICAgICAgcmVxdWVzdC5pbnB1dEJ1ZmZlci5hY3F1aXJlRmVuY2UsIGFsbEZlbmNlc1tudW1PdXRwdXRCdWZzXSkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogaW5wdXQgYnVmZmVyIGFjcXVpcmUgZmVuY2UgaXMgaW52YWxpZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBjbGVhbnVwSW5mbGlnaHRGZW5jZXMoYWxsRmVuY2VzLCBudW1PdXRwdXRCdWZzKTsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OmNsZWFudXBJbmZsaWdodEZlbmNlcygKKyAgICAgICAgaGlkbF92ZWM8aW50PiYgYWxsRmVuY2VzLCBzaXplX3QgbnVtRmVuY2VzKSB7CisgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBudW1GZW5jZXM7IGorKykgeworICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuY2xvc2VGZW5jZShhbGxGZW5jZXNbal0pOworICAgIH0KK30KKworQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6UmVzdWx0QmF0Y2hlcigKKyAgICAgICAgY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiYgY2FsbGJhY2spIDogbUNhbGxiYWNrKGNhbGxiYWNrKSB7fTsKKworYm9vbCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpJbmZsaWdodEJhdGNoOjphbGxEZWxpdmVyZWQoKSBjb25zdCB7CisgICAgaWYgKCFtU2h1dHRlckRlbGl2ZXJlZCkgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKG1QYXJ0aWFsUmVzdWx0UHJvZ3Jlc3MgPCBtTnVtUGFydGlhbFJlc3VsdHMpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGZvciAoY29uc3QgYXV0byYgcGFpciA6IG1CYXRjaEJ1ZnMpIHsKKyAgICAgICAgaWYgKCFwYWlyLnNlY29uZC5tRGVsaXZlcmVkKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6c2V0TnVtUGFydGlhbFJlc3VsdHModWludDMyX3QgbikgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbU51bVBhcnRpYWxSZXN1bHRzID0gbjsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpzZXRCYXRjaGVkU3RyZWFtcygKKyAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgc3RyZWFtc1RvQmF0Y2gpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIG1TdHJlYW1zVG9CYXRjaCA9IHN0cmVhbXNUb0JhdGNoOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnNldFJlc3VsdE1ldGFkYXRhUXVldWUoc3RkOjpzaGFyZWRfcHRyPFJlc3VsdE1ldGFkYXRhUXVldWU+IHEpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIG1SZXN1bHRNZXRhZGF0YVF1ZXVlID0gcTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpyZWdpc3RlckJhdGNoKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxDYXB0dXJlUmVxdWVzdD4mIHJlcXVlc3RzKSB7CisgICAgYXV0byBiYXRjaCA9IHN0ZDo6bWFrZV9zaGFyZWQ8SW5mbGlnaHRCYXRjaD4oKTsKKyAgICBiYXRjaC0+bUZpcnN0RnJhbWUgPSByZXF1ZXN0c1swXS5mcmFtZU51bWJlcjsKKyAgICBiYXRjaC0+bUJhdGNoU2l6ZSA9IHJlcXVlc3RzLnNpemUoKTsKKyAgICBiYXRjaC0+bUxhc3RGcmFtZSA9IGJhdGNoLT5tRmlyc3RGcmFtZSArIGJhdGNoLT5tQmF0Y2hTaXplIC0gMTsKKyAgICBiYXRjaC0+bU51bVBhcnRpYWxSZXN1bHRzID0gbU51bVBhcnRpYWxSZXN1bHRzOworICAgIGZvciAoaW50IGlkIDogbVN0cmVhbXNUb0JhdGNoKSB7CisgICAgICAgIGJhdGNoLT5tQmF0Y2hCdWZzW2lkXSA9IEluZmxpZ2h0QmF0Y2g6OkJ1ZmZlckJhdGNoKCk7CisgICAgfQorICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbUluZmxpZ2h0QmF0Y2hlcy5wdXNoX2JhY2soYmF0Y2gpOworfQorCitzdGQ6OnBhaXI8aW50LCBzdGQ6OnNoYXJlZF9wdHI8Q2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6SW5mbGlnaHRCYXRjaD4+CitDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpnZXRCYXRjaCgKKyAgICAgICAgdWludDMyX3QgZnJhbWVOdW1iZXIpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGludCBudW1CYXRjaGVzID0gbUluZmxpZ2h0QmF0Y2hlcy5zaXplKCk7CisgICAgaWYgKG51bUJhdGNoZXMgPT0gMCkgeworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoTk9UX0JBVENIRUQsIG51bGxwdHIpOworICAgIH0KKyAgICB1aW50MzJfdCBmcmFtZU1pbiA9IG1JbmZsaWdodEJhdGNoZXNbMF0tPm1GaXJzdEZyYW1lOworICAgIHVpbnQzMl90IGZyYW1lTWF4ID0gbUluZmxpZ2h0QmF0Y2hlc1tudW1CYXRjaGVzIC0gMV0tPm1MYXN0RnJhbWU7CisgICAgaWYgKGZyYW1lTnVtYmVyIDwgZnJhbWVNaW4gfHwgZnJhbWVOdW1iZXIgPiBmcmFtZU1heCkgeworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoTk9UX0JBVENIRUQsIG51bGxwdHIpOworICAgIH0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUJhdGNoZXM7IGkrKykgeworICAgICAgICBpZiAoZnJhbWVOdW1iZXIgPj0gbUluZmxpZ2h0QmF0Y2hlc1tpXS0+bUZpcnN0RnJhbWUgJiYKKyAgICAgICAgICAgICAgICBmcmFtZU51bWJlciA8PSBtSW5mbGlnaHRCYXRjaGVzW2ldLT5tTGFzdEZyYW1lKSB7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoaSwgbUluZmxpZ2h0QmF0Y2hlc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKE5PVF9CQVRDSEVELCBudWxscHRyKTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpjaGVja0FuZFJlbW92ZUZpcnN0QmF0Y2goKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAobUluZmxpZ2h0QmF0Y2hlcy5zaXplKCkgPiAwKSB7CisgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCA9IG1JbmZsaWdodEJhdGNoZXNbMF07CisgICAgICAgIGJvb2wgc2hvdWxkUmVtb3ZlID0gZmFsc2U7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChiYXRjaC0+bUxvY2spOworICAgICAgICAgICAgaWYgKGJhdGNoLT5hbGxEZWxpdmVyZWQoKSkgeworICAgICAgICAgICAgICAgIGJhdGNoLT5tUmVtb3ZlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2hvdWxkUmVtb3ZlID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlKSB7CisgICAgICAgICAgICBtSW5mbGlnaHRCYXRjaGVzLnBvcF9mcm9udCgpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnNlbmRCYXRjaFNodXR0ZXJDYnNMb2NrZWQoc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+IGJhdGNoKSB7CisgICAgaWYgKGJhdGNoLT5tU2h1dHRlckRlbGl2ZXJlZCkgeworICAgICAgICBBTE9HVygiJXM6IGJhdGNoIHNodXR0ZXIgY2FsbGJhY2sgYWxyZWFkeSBzZW50ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtQ2FsbGJhY2stPm5vdGlmeShiYXRjaC0+bVNodXR0ZXJNc2dzKTsKKyAgICBiYXRjaC0+bVNodXR0ZXJEZWxpdmVyZWQgPSB0cnVlOworICAgIGJhdGNoLT5tU2h1dHRlck1zZ3MuY2xlYXIoKTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpmcmVlUmVsZWFzZUZlbmNlcyhoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiYgcmVzdWx0cykgeworICAgIGZvciAoYXV0byYgcmVzdWx0IDogcmVzdWx0cykgeworICAgICAgICBpZiAocmVzdWx0LmlucHV0QnVmZmVyLnJlbGVhc2VGZW5jZS5nZXROYXRpdmVIYW5kbGUoKSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5yZWxlYXNlRmVuY2UuZ2V0TmF0aXZlSGFuZGxlKCkpOworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShoYW5kbGUpOworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoaGFuZGxlKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGF1dG8mIGJ1ZiA6IHJlc3VsdC5vdXRwdXRCdWZmZXJzKSB7CisgICAgICAgICAgICBpZiAoYnVmLnJlbGVhc2VGZW5jZS5nZXROYXRpdmVIYW5kbGUoKSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlbGVhc2VGZW5jZS5nZXROYXRpdmVIYW5kbGUoKSk7CisgICAgICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShoYW5kbGUpOworICAgICAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGhhbmRsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnNlbmRCYXRjaEJ1ZmZlcnNMb2NrZWQoc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+IGJhdGNoKSB7CisgICAgc2VuZEJhdGNoQnVmZmVyc0xvY2tlZChiYXRjaCwgbVN0cmVhbXNUb0JhdGNoKTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpzZW5kQmF0Y2hCdWZmZXJzTG9ja2VkKAorICAgICAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2gsIGNvbnN0IHN0ZDo6dmVjdG9yPGludD4mIHN0cmVhbXMpIHsKKyAgICBzaXplX3QgYmF0Y2hTaXplID0gMDsKKyAgICBmb3IgKGludCBzdHJlYW1JZCA6IHN0cmVhbXMpIHsKKyAgICAgICAgYXV0byBpdCA9IGJhdGNoLT5tQmF0Y2hCdWZzLmZpbmQoc3RyZWFtSWQpOworICAgICAgICBpZiAoaXQgIT0gYmF0Y2gtPm1CYXRjaEJ1ZnMuZW5kKCkpIHsKKyAgICAgICAgICAgIEluZmxpZ2h0QmF0Y2g6OkJ1ZmZlckJhdGNoJiBiYiA9IGl0LT5zZWNvbmQ7CisgICAgICAgICAgICBpZiAoYmIubURlbGl2ZXJlZCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJiLm1CdWZmZXJzLnNpemUoKSA+IGJhdGNoU2l6ZSkgeworICAgICAgICAgICAgICAgIGJhdGNoU2l6ZSA9IGJiLm1CdWZmZXJzLnNpemUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogc3RyZWFtIElEICVkIGlzIG5vdCBiYXRjaGVkISIsIF9fRlVOQ1RJT05fXywgc3RyZWFtSWQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGJhdGNoU2l6ZSA9PSAwKSB7CisgICAgICAgIEFMT0dXKCIlczogdGhlcmUgaXMgbm8gYnVmZmVyIHRvIGJlIGRlbGl2ZXJlZCBmb3IgdGhpcyBiYXRjaC4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICBmb3IgKGludCBzdHJlYW1JZCA6IHN0cmVhbXMpIHsKKyAgICAgICAgICAgIEluZmxpZ2h0QmF0Y2g6OkJ1ZmZlckJhdGNoJiBiYiA9IGJhdGNoLT5tQmF0Y2hCdWZzW3N0cmVhbUlkXTsKKyAgICAgICAgICAgIGJiLm1EZWxpdmVyZWQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiByZXN1bHRzOworICAgIHJlc3VsdHMucmVzaXplKGJhdGNoU2l6ZSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBiYXRjaFNpemU7IGkrKykgeworICAgICAgICByZXN1bHRzW2ldLmZyYW1lTnVtYmVyID0gYmF0Y2gtPm1GaXJzdEZyYW1lICsgaTsKKyAgICAgICAgcmVzdWx0c1tpXS5mbXFSZXN1bHRTaXplID0gMDsKKyAgICAgICAgcmVzdWx0c1tpXS5wYXJ0aWFsUmVzdWx0ID0gMDsgLy8gMCBmb3IgYnVmZmVyIG9ubHkgcmVzdWx0cworICAgICAgICByZXN1bHRzW2ldLmlucHV0QnVmZmVyLnN0cmVhbUlkID0gLTE7CisgICAgICAgIHJlc3VsdHNbaV0uaW5wdXRCdWZmZXIuYnVmZmVySWQgPSAwOworICAgICAgICByZXN1bHRzW2ldLmlucHV0QnVmZmVyLmJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIHN0ZDo6dmVjdG9yPFN0cmVhbUJ1ZmZlcj4gb3V0QnVmczsKKyAgICAgICAgZm9yIChpbnQgc3RyZWFtSWQgOiBzdHJlYW1zKSB7CisgICAgICAgICAgICBJbmZsaWdodEJhdGNoOjpCdWZmZXJCYXRjaCYgYmIgPSBiYXRjaC0+bUJhdGNoQnVmc1tzdHJlYW1JZF07CisgICAgICAgICAgICBpZiAoYmIubURlbGl2ZXJlZCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkgPCBiYi5tQnVmZmVycy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICBvdXRCdWZzLnB1c2hfYmFjayhiYi5tQnVmZmVyc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0c1tpXS5vdXRwdXRCdWZmZXJzID0gb3V0QnVmczsKKyAgICB9CisgICAgaW52b2tlUHJvY2Vzc0NhcHR1cmVSZXN1bHRDYWxsYmFjayhyZXN1bHRzLCAvKiB0cnlXcml0ZUZtcSAqL2ZhbHNlKTsKKyAgICBmcmVlUmVsZWFzZUZlbmNlcyhyZXN1bHRzKTsKKyAgICBmb3IgKGludCBzdHJlYW1JZCA6IHN0cmVhbXMpIHsKKyAgICAgICAgSW5mbGlnaHRCYXRjaDo6QnVmZmVyQmF0Y2gmIGJiID0gYmF0Y2gtPm1CYXRjaEJ1ZnNbc3RyZWFtSWRdOworICAgICAgICBiYi5tRGVsaXZlcmVkID0gdHJ1ZTsKKyAgICAgICAgYmIubUJ1ZmZlcnMuY2xlYXIoKTsKKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6c2VuZEJhdGNoTWV0YWRhdGFMb2NrZWQoCisgICAgc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+IGJhdGNoLCB1aW50MzJfdCBsYXN0UGFydGlhbFJlc3VsdElkeCkgeworICAgIGlmIChsYXN0UGFydGlhbFJlc3VsdElkeCA8PSBiYXRjaC0+bVBhcnRpYWxSZXN1bHRQcm9ncmVzcykgeworICAgICAgICAvLyBSZXN1bHQgaGFzIGJlZW4gZGVsaXZlcmVkLiBSZXR1cm4KKyAgICAgICAgQUxPR1coIiVzOiBwYXJ0aWFsIHJlc3VsdCAldSBoYXMgYmVlbiBkZWxpdmVyZWQiLCBfX0ZVTkNUSU9OX18sIGxhc3RQYXJ0aWFsUmVzdWx0SWR4KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPENhcHR1cmVSZXN1bHQ+IHJlc3VsdHM7CisgICAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+IHRvQmVSZW1vdmVkSWR4ZXM7CisgICAgZm9yIChhdXRvJiBwYWlyIDogYmF0Y2gtPm1SZXN1bHRNZHMpIHsKKyAgICAgICAgdWludDMyX3QgcGFydGlhbElkeCA9IHBhaXIuZmlyc3Q7CisgICAgICAgIGlmIChwYXJ0aWFsSWR4ID4gbGFzdFBhcnRpYWxSZXN1bHRJZHgpIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHRvQmVSZW1vdmVkSWR4ZXMucHVzaF9iYWNrKHBhcnRpYWxJZHgpOworICAgICAgICBJbmZsaWdodEJhdGNoOjpNZXRhZGF0YUJhdGNoJiBtYiA9IHBhaXIuc2Vjb25kOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHAgOiBtYi5tTWRzKSB7CisgICAgICAgICAgICBDYXB0dXJlUmVzdWx0IHJlc3VsdDsKKyAgICAgICAgICAgIHJlc3VsdC5mcmFtZU51bWJlciA9IHAuZmlyc3Q7CisgICAgICAgICAgICByZXN1bHQucmVzdWx0ID0gc3RkOjptb3ZlKHAuc2Vjb25kKTsKKyAgICAgICAgICAgIHJlc3VsdC5mbXFSZXN1bHRTaXplID0gMDsKKyAgICAgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZCA9IC0xOworICAgICAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLmJ1ZmZlcklkID0gMDsKKyAgICAgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5idWZmZXIgPSBudWxscHRyOworICAgICAgICAgICAgcmVzdWx0LnBhcnRpYWxSZXN1bHQgPSBwYXJ0aWFsSWR4OworICAgICAgICAgICAgcmVzdWx0cy5wdXNoX2JhY2soc3RkOjptb3ZlKHJlc3VsdCkpOworICAgICAgICB9CisgICAgICAgIG1iLm1NZHMuY2xlYXIoKTsKKyAgICB9CisgICAgaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4gaFJlc3VsdHM7CisgICAgaFJlc3VsdHMuc2V0VG9FeHRlcm5hbChyZXN1bHRzLmRhdGEoKSwgcmVzdWx0cy5zaXplKCkpOworICAgIGludm9rZVByb2Nlc3NDYXB0dXJlUmVzdWx0Q2FsbGJhY2soaFJlc3VsdHMsIC8qIHRyeVdyaXRlRm1xICovdHJ1ZSk7CisgICAgYmF0Y2gtPm1QYXJ0aWFsUmVzdWx0UHJvZ3Jlc3MgPSBsYXN0UGFydGlhbFJlc3VsdElkeDsKKyAgICBmb3IgKHVpbnQzMl90IHBhcnRpYWxJZHggOiB0b0JlUmVtb3ZlZElkeGVzKSB7CisgICAgICAgIGJhdGNoLT5tUmVzdWx0TWRzLmVyYXNlKHBhcnRpYWxJZHgpOworICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpub3RpZnlTaW5nbGVNc2coTm90aWZ5TXNnJiBtc2cpIHsKKyAgICBtQ2FsbGJhY2stPm5vdGlmeSh7bXNnfSk7CisgICAgcmV0dXJuOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6Om5vdGlmeShOb3RpZnlNc2cmIG1zZykgeworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyOworICAgIGlmIChDQ19MSUtFTFkobXNnLnR5cGUgPT0gTXNnVHlwZTo6U0hVVFRFUikpIHsKKyAgICAgICAgZnJhbWVOdW1iZXIgPSBtc2cubXNnLnNodXR0ZXIuZnJhbWVOdW1iZXI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZnJhbWVOdW1iZXIgPSBtc2cubXNnLmVycm9yLmZyYW1lTnVtYmVyOworICAgIH0KKworICAgIGF1dG8gcGFpciA9IGdldEJhdGNoKGZyYW1lTnVtYmVyKTsKKyAgICBpbnQgYmF0Y2hJZHggPSBwYWlyLmZpcnN0OworICAgIGlmIChiYXRjaElkeCA9PSBOT1RfQkFUQ0hFRCkgeworICAgICAgICBub3RpZnlTaW5nbGVNc2cobXNnKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFdoZW4gZXJyb3IgaGFwcGVuZWQsIHN0b3AgYmF0Y2hpbmcgZm9yIGFsbCBiYXRjaGVzIGVhcmxpZXIKKyAgICBpZiAoQ0NfVU5MSUtFTFkobXNnLnR5cGUgPT0gTXNnVHlwZTo6RVJST1IpKSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGJhdGNoSWR4OyBpKyspIHsKKyAgICAgICAgICAgIC8vIFNlbmQgYmF0Y2hlZCBkYXRhIHVwCisgICAgICAgICAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2ggPSBtSW5mbGlnaHRCYXRjaGVzWzBdOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChiYXRjaC0+bUxvY2spOworICAgICAgICAgICAgICAgIHNlbmRCYXRjaFNodXR0ZXJDYnNMb2NrZWQoYmF0Y2gpOworICAgICAgICAgICAgICAgIHNlbmRCYXRjaEJ1ZmZlcnNMb2NrZWQoYmF0Y2gpOworICAgICAgICAgICAgICAgIHNlbmRCYXRjaE1ldGFkYXRhTG9ja2VkKGJhdGNoLCBtTnVtUGFydGlhbFJlc3VsdHMpOworICAgICAgICAgICAgICAgIGlmICghYmF0Y2gtPmFsbERlbGl2ZXJlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCIlczogZXJyb3I6IHNvbWUgYmF0Y2ggZGF0YSBub3Qgc2VudCBiYWNrIHRvIGZyYW1ld29yayEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJhdGNoLT5tUmVtb3ZlZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtSW5mbGlnaHRCYXRjaGVzLnBvcF9mcm9udCgpOworICAgICAgICB9CisgICAgICAgIC8vIFNlbmQgdGhlIGVycm9yIHVwCisgICAgICAgIG5vdGlmeVNpbmdsZU1zZyhtc2cpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vIFF1ZXVlIHNodXR0ZXIgY2FsbGJhY2tzIGZvciBmdXR1cmUgZGVsaXZlcnkKKyAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2ggPSBwYWlyLnNlY29uZDsKKyAgICB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChiYXRjaC0+bUxvY2spOworICAgICAgICAvLyBDaGVjayBpZiB0aGUgYmF0Y2ggaXMgcmVtb3ZlZCAobW9zdGx5IGJ5IG5vdGlmeSBlcnJvcikgYmVmb3JlIGxvY2sgd2FzIGFjcXVpcmVkCisgICAgICAgIGlmIChiYXRjaC0+bVJlbW92ZWQpIHsKKyAgICAgICAgICAgIC8vIEZhbGwgYmFjayB0byBub24tYmF0Y2ggcGF0aAorICAgICAgICAgICAgbm90aWZ5U2luZ2xlTXNnKG1zZyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBiYXRjaC0+bVNodXR0ZXJNc2dzLnB1c2hfYmFjayhtc2cpOworICAgICAgICBpZiAoZnJhbWVOdW1iZXIgPT0gYmF0Y2gtPm1MYXN0RnJhbWUpIHsKKyAgICAgICAgICAgIHNlbmRCYXRjaFNodXR0ZXJDYnNMb2NrZWQoYmF0Y2gpOworICAgICAgICB9CisgICAgfSAvLyBlbmQgb2YgYmF0Y2ggbG9jayBzY29wZQorCisgICAgLy8gc2VlIGlmIHRoZSBiYXRjaCBpcyBjb21wbGV0ZQorICAgIGlmIChmcmFtZU51bWJlciA9PSBiYXRjaC0+bUxhc3RGcmFtZSkgeworICAgICAgICBjaGVja0FuZFJlbW92ZUZpcnN0QmF0Y2goKTsKKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6aW52b2tlUHJvY2Vzc0NhcHR1cmVSZXN1bHRDYWxsYmFjaygKKyAgICAgICAgaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4gJnJlc3VsdHMsIGJvb2wgdHJ5V3JpdGVGbXEpIHsKKyAgICBpZiAobVByb2Nlc3NDYXB0dXJlUmVzdWx0TG9jay50cnlMb2NrKCkgIT0gT0spIHsKKyAgICAgICAgQUxPR1coIiVzOiBwcmV2aW91cyBjYWxsIGlzIG5vdCBmaW5pc2hlZCEgd2FpdGluZyAxcy4uLiIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fKTsKKyAgICAgICAgaWYgKG1Qcm9jZXNzQ2FwdHVyZVJlc3VsdExvY2sudGltZWRMb2NrKDEwMDAwMDAwMDAgLyogMXMgKi8pICE9IE9LKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBhY3F1aXJlIGxvY2sgaW4gMXMsIGNhbm5vdCBwcm9jZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAodHJ5V3JpdGVGbXEgJiYgbVJlc3VsdE1ldGFkYXRhUXVldWUtPmF2YWlsYWJsZVRvV3JpdGUoKSA+IDApIHsKKyAgICAgICAgZm9yIChDYXB0dXJlUmVzdWx0ICZyZXN1bHQgOiByZXN1bHRzKSB7CisgICAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgaWYgKG1SZXN1bHRNZXRhZGF0YVF1ZXVlLT53cml0ZShyZXN1bHQucmVzdWx0LmRhdGEoKSwgcmVzdWx0LnJlc3VsdC5zaXplKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mbXFSZXN1bHRTaXplID0gcmVzdWx0LnJlc3VsdC5zaXplKCk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5yZXN1bHQucmVzaXplKDApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dXKCIlczogY291bGRuJ3QgdXRpbGl6ZSBmbXEsIGZhbGwgYmFjayB0byBod2JpbmRlciIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mbXFSZXN1bHRTaXplID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgbUNhbGxiYWNrLT5wcm9jZXNzQ2FwdHVyZVJlc3VsdChyZXN1bHRzKTsKKyAgICBtUHJvY2Vzc0NhcHR1cmVSZXN1bHRMb2NrLnVubG9jaygpOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnByb2Nlc3NPbmVDYXB0dXJlUmVzdWx0KENhcHR1cmVSZXN1bHQmIHJlc3VsdCkgeworICAgIGhpZGxfdmVjPENhcHR1cmVSZXN1bHQ+IHJlc3VsdHMgPSB7cmVzdWx0fTsKKyAgICBpbnZva2VQcm9jZXNzQ2FwdHVyZVJlc3VsdENhbGxiYWNrKHJlc3VsdHMsIC8qIHRyeVdyaXRlRm1xICovdHJ1ZSk7CisgICAgZnJlZVJlbGVhc2VGZW5jZXMocmVzdWx0cyk7CisgICAgcmV0dXJuOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnByb2Nlc3NDYXB0dXJlUmVzdWx0KENhcHR1cmVSZXN1bHQmIHJlc3VsdCkgeworICAgIGF1dG8gcGFpciA9IGdldEJhdGNoKHJlc3VsdC5mcmFtZU51bWJlcik7CisgICAgaW50IGJhdGNoSWR4ID0gcGFpci5maXJzdDsKKyAgICBpZiAoYmF0Y2hJZHggPT0gTk9UX0JBVENIRUQpIHsKKyAgICAgICAgcHJvY2Vzc09uZUNhcHR1cmVSZXN1bHQocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2ggPSBwYWlyLnNlY29uZDsKKyAgICB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChiYXRjaC0+bUxvY2spOworICAgICAgICAvLyBDaGVjayBpZiB0aGUgYmF0Y2ggaXMgcmVtb3ZlZCAobW9zdGx5IGJ5IG5vdGlmeSBlcnJvcikgYmVmb3JlIGxvY2sgd2FzIGFjcXVpcmVkCisgICAgICAgIGlmIChiYXRjaC0+bVJlbW92ZWQpIHsKKyAgICAgICAgICAgIC8vIEZhbGwgYmFjayB0byBub24tYmF0Y2ggcGF0aAorICAgICAgICAgICAgcHJvY2Vzc09uZUNhcHR1cmVSZXN1bHQocmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHF1ZXVlIG1ldGFkYXRhCisgICAgICAgIGlmIChyZXN1bHQucmVzdWx0LnNpemUoKSAhPSAwKSB7CisgICAgICAgICAgICAvLyBTYXZlIGEgY29weSBvZiBtZXRhZGF0YQorICAgICAgICAgICAgYmF0Y2gtPm1SZXN1bHRNZHNbcmVzdWx0LnBhcnRpYWxSZXN1bHRdLm1NZHMucHVzaF9iYWNrKAorICAgICAgICAgICAgICAgICAgICBzdGQ6Om1ha2VfcGFpcihyZXN1bHQuZnJhbWVOdW1iZXIsIHJlc3VsdC5yZXN1bHQpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHF1ZXVlIGJ1ZmZlcgorICAgICAgICBzdGQ6OnZlY3RvcjxpbnQ+IGZpbGxlZFN0cmVhbXM7CisgICAgICAgIHN0ZDo6dmVjdG9yPFN0cmVhbUJ1ZmZlcj4gbm9uQmF0Y2hlZEJ1ZmZlcnM7CisgICAgICAgIGZvciAoYXV0byYgYnVmZmVyIDogcmVzdWx0Lm91dHB1dEJ1ZmZlcnMpIHsKKyAgICAgICAgICAgIGF1dG8gaXQgPSBiYXRjaC0+bUJhdGNoQnVmcy5maW5kKGJ1ZmZlci5zdHJlYW1JZCk7CisgICAgICAgICAgICBpZiAoaXQgIT0gYmF0Y2gtPm1CYXRjaEJ1ZnMuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBJbmZsaWdodEJhdGNoOjpCdWZmZXJCYXRjaCYgYmIgPSBpdC0+c2Vjb25kOworICAgICAgICAgICAgICAgIGJiLm1CdWZmZXJzLnB1c2hfYmFjayhidWZmZXIpOworICAgICAgICAgICAgICAgIGZpbGxlZFN0cmVhbXMucHVzaF9iYWNrKGJ1ZmZlci5zdHJlYW1JZCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG5vbkJhdGNoZWRCdWZmZXJzLnB1c2hfYmFjayhidWZmZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gc2VuZCBub24tYmF0Y2hlZCBidWZmZXJzIHVwCisgICAgICAgIGlmIChub25CYXRjaGVkQnVmZmVycy5zaXplKCkgPiAwIHx8IHJlc3VsdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZCAhPSAtMSkgeworICAgICAgICAgICAgQ2FwdHVyZVJlc3VsdCBub25CYXRjaGVkUmVzdWx0OworICAgICAgICAgICAgbm9uQmF0Y2hlZFJlc3VsdC5mcmFtZU51bWJlciA9IHJlc3VsdC5mcmFtZU51bWJlcjsKKyAgICAgICAgICAgIG5vbkJhdGNoZWRSZXN1bHQuZm1xUmVzdWx0U2l6ZSA9IDA7CisgICAgICAgICAgICBub25CYXRjaGVkUmVzdWx0Lm91dHB1dEJ1ZmZlcnMgPSBub25CYXRjaGVkQnVmZmVyczsKKyAgICAgICAgICAgIG5vbkJhdGNoZWRSZXN1bHQuaW5wdXRCdWZmZXIgPSByZXN1bHQuaW5wdXRCdWZmZXI7CisgICAgICAgICAgICBub25CYXRjaGVkUmVzdWx0LnBhcnRpYWxSZXN1bHQgPSAwOyAvLyAwIGZvciBidWZmZXIgb25seSByZXN1bHRzCisgICAgICAgICAgICBwcm9jZXNzT25lQ2FwdHVyZVJlc3VsdChub25CYXRjaGVkUmVzdWx0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXN1bHQuZnJhbWVOdW1iZXIgPT0gYmF0Y2gtPm1MYXN0RnJhbWUpIHsKKyAgICAgICAgICAgIC8vIFNlbmQgZGF0YSB1cAorICAgICAgICAgICAgaWYgKHJlc3VsdC5wYXJ0aWFsUmVzdWx0ID4gMCkgeworICAgICAgICAgICAgICAgIHNlbmRCYXRjaE1ldGFkYXRhTG9ja2VkKGJhdGNoLCByZXN1bHQucGFydGlhbFJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBzZW5kIGJ1ZmZlciB1cAorICAgICAgICAgICAgaWYgKGZpbGxlZFN0cmVhbXMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHNlbmRCYXRjaEJ1ZmZlcnNMb2NrZWQoYmF0Y2gsIGZpbGxlZFN0cmVhbXMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSAvLyBlbmQgb2YgYmF0Y2ggbG9jayBzY29wZQorCisgICAgLy8gc2VlIGlmIHRoZSBiYXRjaCBpcyBjb21wbGV0ZQorICAgIGlmIChyZXN1bHQuZnJhbWVOdW1iZXIgPT0gYmF0Y2gtPm1MYXN0RnJhbWUpIHsKKyAgICAgICAgY2hlY2tBbmRSZW1vdmVGaXJzdEJhdGNoKCk7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2VTZXNzaW9uIGZvbGxvdy4KK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2VTZXNzaW9uOjpjb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzKAorICAgICAgICBSZXF1ZXN0VGVtcGxhdGUgdHlwZSwgY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5nc19jYiBfaGlkbF9jYikgIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIENhbWVyYU1ldGFkYXRhIG91dE1ldGFkYXRhOworICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90ICpyYXdSZXF1ZXN0OworICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYTMtPmNvbnN0cnVjdF9kZWZhdWx0X3JlcXVlc3Rfc2V0dGluZ3MiKTsKKyAgICAgICAgcmF3UmVxdWVzdCA9IG1EZXZpY2UtPm9wcy0+Y29uc3RydWN0X2RlZmF1bHRfcmVxdWVzdF9zZXR0aW5ncyhtRGV2aWNlLCAoaW50KSB0eXBlKTsKKyAgICAgICAgQVRSQUNFX0VORCgpOworICAgICAgICBpZiAocmF3UmVxdWVzdCA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HSSgiJXM6IHRlbXBsYXRlICVkIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBjYW1lcmEgZGV2aWNlIiwKKyAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgdHlwZSk7CisgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtT3ZlcnJpZGVuUmVxdWVzdC5jbGVhcigpOworICAgICAgICAgICAgbU92ZXJyaWRlblJlcXVlc3QuYXBwZW5kKHJhd1JlcXVlc3QpOworICAgICAgICAgICAgLy8gRGVyaXZlIHNvbWUgbmV3IGtleXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICAgICAgICAgIGlmIChtRGVyaXZlUG9zdFJhd1NlbnNLZXkgJiYgIW1PdmVycmlkZW5SZXF1ZXN0LmV4aXN0cygKKyAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NUKSkgeworICAgICAgICAgICAgICAgIGludDMyX3QgZGVmYXVsdEJvb3N0WzFdID0gezEwMH07CisgICAgICAgICAgICAgICAgbU92ZXJyaWRlblJlcXVlc3QudXBkYXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NULAorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEJvb3N0LCAxKTsKKyAgICAgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCAqbWV0YUJ1ZmZlciA9CisgICAgICAgICAgICAgICAgICAgICAgICBtT3ZlcnJpZGVuUmVxdWVzdC5nZXRBbmRMb2NrKCk7CisgICAgICAgICAgICAgICAgY29udmVydFRvSGlkbChtZXRhQnVmZmVyLCAmb3V0TWV0YWRhdGEpOworICAgICAgICAgICAgICAgIG1PdmVycmlkZW5SZXF1ZXN0LnVubG9jayhtZXRhQnVmZmVyKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY29udmVydFRvSGlkbChyYXdSZXF1ZXN0LCAmb3V0TWV0YWRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHN0YXR1cywgb3V0TWV0YWRhdGEpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKy8qKgorICogTWFwIEFuZHJvaWQgTiBkYXRhc3BhY2UgZGVmaW5pdGlvbnMgYmFjayB0byBBbmRyb2lkIE0gZGVmaW5pdGlvbnMsIGZvcgorICogdXNlIHdpdGggSEFMdjMuMyBvciBvbGRlci4KKyAqCisgKiBPbmx5IG1hcCB3aGVyZSBjb3JyZXNwb25kZW5jZXMgZXhpc3QsIGFuZCBvdGhlcndpc2UgcHJlc2VydmUgdGhlIHZhbHVlLgorICovCithbmRyb2lkX2RhdGFzcGFjZSBDYW1lcmFEZXZpY2VTZXNzaW9uOjptYXBUb0xlZ2FjeURhdGFzcGFjZSgKKyAgICAgICAgYW5kcm9pZF9kYXRhc3BhY2UgZGF0YVNwYWNlKSBjb25zdCB7CisgICAgaWYgKG1EZXZpY2VWZXJzaW9uIDw9IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18zKSB7CisgICAgICAgIHN3aXRjaCAoZGF0YVNwYWNlKSB7CisgICAgICAgICAgICBjYXNlIEhBTF9EQVRBU1BBQ0VfVjBfU1JHQl9MSU5FQVI6CisgICAgICAgICAgICAgICAgcmV0dXJuIEhBTF9EQVRBU1BBQ0VfU1JHQl9MSU5FQVI7CisgICAgICAgICAgICBjYXNlIEhBTF9EQVRBU1BBQ0VfVjBfU1JHQjoKKyAgICAgICAgICAgICAgICByZXR1cm4gSEFMX0RBVEFTUEFDRV9TUkdCOworICAgICAgICAgICAgY2FzZSBIQUxfREFUQVNQQUNFX1YwX0pGSUY6CisgICAgICAgICAgICAgICAgcmV0dXJuIEhBTF9EQVRBU1BBQ0VfSkZJRjsKKyAgICAgICAgICAgIGNhc2UgSEFMX0RBVEFTUEFDRV9WMF9CVDYwMV82MjU6CisgICAgICAgICAgICAgICAgcmV0dXJuIEhBTF9EQVRBU1BBQ0VfQlQ2MDFfNjI1OworICAgICAgICAgICAgY2FzZSBIQUxfREFUQVNQQUNFX1YwX0JUNjAxXzUyNToKKyAgICAgICAgICAgICAgICByZXR1cm4gSEFMX0RBVEFTUEFDRV9CVDYwMV81MjU7CisgICAgICAgICAgICBjYXNlIEhBTF9EQVRBU1BBQ0VfVjBfQlQ3MDk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEhBTF9EQVRBU1BBQ0VfQlQ3MDk7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBkYXRhU3BhY2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgIHJldHVybiBkYXRhU3BhY2U7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2VTZXNzaW9uOjpjb25maWd1cmVTdHJlYW1zKAorICAgICAgICBjb25zdCBTdHJlYW1Db25maWd1cmF0aW9uJiByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLCBjb25maWd1cmVTdHJlYW1zX2NiIF9oaWRsX2NiKSAgeworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBvdXRTdHJlYW1zOworCisgICAgLy8gaG9sZCB0aGUgaW5mbGlnaHQgbG9jayBmb3IgZW50aXJlIGNvbmZpZ3VyZVN0cmVhbXMgc2NvcGUgc2luY2UgdGhlcmUgbXVzdCBub3QgYmUgYW55CisgICAgLy8gaW5mbGlnaHQgcmVxdWVzdC9yZXN1bHRzIGR1cmluZyBzdHJlYW0gY29uZmlndXJhdGlvbi4KKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUluZmxpZ2h0TG9jayk7CisgICAgaWYgKCFtSW5mbGlnaHRCdWZmZXJzLmVtcHR5KCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiB0cnlpbmcgdG8gY29uZmlndXJlU3RyZWFtcyB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgJXp1IGluZmxpZ2h0IGJ1ZmZlcnMhIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIG1JbmZsaWdodEJ1ZmZlcnMuc2l6ZSgpKTsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgb3V0U3RyZWFtcyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaWYgKCFtSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZW1wdHkoKSkgeworICAgICAgICBBTE9HRSgiJXM6IHRyeWluZyB0byBjb25maWd1cmVTdHJlYW1zIHdoaWxlIHRoZXJlIGFyZSBzdGlsbCAlenUgaW5mbGlnaHQiCisgICAgICAgICAgICAgICAgIiB0cmlnZ2VyIG92ZXJyaWRlcyEiLCBfX0ZVTkNUSU9OX18sCisgICAgICAgICAgICAgICAgbUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLnNpemUoKSk7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIG91dFN0cmVhbXMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGlmICghbUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmVtcHR5KCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiB0cnlpbmcgdG8gY29uZmlndXJlU3RyZWFtcyB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgJXp1IGluZmxpZ2h0IgorICAgICAgICAgICAgICAgICIgYm9vc3Qgb3ZlcnJpZGVzISIsIF9fRlVOQ1RJT05fXywKKyAgICAgICAgICAgICAgICBtSW5mbGlnaHRSYXdCb29zdFByZXNlbnQuc2l6ZSgpKTsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgb3V0U3RyZWFtcyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaWYgKHN0YXR1cyAhPSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIF9oaWRsX2NiKHN0YXR1cywgb3V0U3RyZWFtcyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgY2FtZXJhM19zdHJlYW1fY29uZmlndXJhdGlvbl90IHN0cmVhbV9saXN0OworICAgIGhpZGxfdmVjPGNhbWVyYTNfc3RyZWFtX3QqPiBzdHJlYW1zOworCisgICAgc3RyZWFtX2xpc3Qub3BlcmF0aW9uX21vZGUgPSAodWludDMyX3QpIHJlcXVlc3RlZENvbmZpZ3VyYXRpb24ub3BlcmF0aW9uTW9kZTsKKyAgICBzdHJlYW1fbGlzdC5udW1fc3RyZWFtcyA9IHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtcy5zaXplKCk7CisgICAgc3RyZWFtcy5yZXNpemUoc3RyZWFtX2xpc3QubnVtX3N0cmVhbXMpOworICAgIHN0cmVhbV9saXN0LnN0cmVhbXMgPSBzdHJlYW1zLmRhdGEoKTsKKworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzdHJlYW1fbGlzdC5udW1fc3RyZWFtczsgaSsrKSB7CisgICAgICAgIGludCBpZCA9IHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtc1tpXS5pZDsKKworICAgICAgICBpZiAobVN0cmVhbU1hcC5jb3VudChpZCkgPT0gMCkgeworICAgICAgICAgICAgQ2FtZXJhM1N0cmVhbSBzdHJlYW07CisgICAgICAgICAgICBjb252ZXJ0RnJvbUhpZGwocmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLCAmc3RyZWFtKTsKKyAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdID0gc3RyZWFtOworICAgICAgICAgICAgbVN0cmVhbU1hcFtpZF0uZGF0YV9zcGFjZSA9IG1hcFRvTGVnYWN5RGF0YXNwYWNlKAorICAgICAgICAgICAgICAgICAgICBtU3RyZWFtTWFwW2lkXS5kYXRhX3NwYWNlKTsKKyAgICAgICAgICAgIG1DaXJjdWxhdGluZ0J1ZmZlcnMuZW1wbGFjZShzdHJlYW0ubUlkLCBDaXJjdWxhdGluZ0J1ZmZlcnN7fSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyB3aWR0aC9oZWlnaHQvZm9ybWF0IG11c3Qgbm90IGNoYW5nZSwgYnV0IHVzYWdlL3JvdGF0aW9uIG1pZ2h0IG5lZWQgdG8gY2hhbmdlCisgICAgICAgICAgICBpZiAobVN0cmVhbU1hcFtpZF0uc3RyZWFtX3R5cGUgIT0KKyAgICAgICAgICAgICAgICAgICAgKGludCkgcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLnN0cmVhbVR5cGUgfHwKKyAgICAgICAgICAgICAgICAgICAgbVN0cmVhbU1hcFtpZF0ud2lkdGggIT0gcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLndpZHRoIHx8CisgICAgICAgICAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdLmhlaWdodCAhPSByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXNbaV0uaGVpZ2h0IHx8CisgICAgICAgICAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdLmZvcm1hdCAhPSAoaW50KSByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXNbaV0uZm9ybWF0IHx8CisgICAgICAgICAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdLmRhdGFfc3BhY2UgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBUb0xlZ2FjeURhdGFzcGFjZSggc3RhdGljX2Nhc3Q8YW5kcm9pZF9kYXRhc3BhY2VfdD4gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLmRhdGFTcGFjZSkpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBzdHJlYW0gJWQgY29uZmlndXJhdGlvbiBjaGFuZ2VkISIsIF9fRlVOQ1RJT05fXywgaWQpOworICAgICAgICAgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIG91dFN0cmVhbXMpOworICAgICAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtU3RyZWFtTWFwW2lkXS5yb3RhdGlvbiA9IChpbnQpIHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtc1tpXS5yb3RhdGlvbjsKKyAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdLnVzYWdlID0gKHVpbnQzMl90KSByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXNbaV0udXNhZ2U7CisgICAgICAgIH0KKyAgICAgICAgc3RyZWFtc1tpXSA9ICZtU3RyZWFtTWFwW2lkXTsKKyAgICB9CisKKyAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYTMtPmNvbmZpZ3VyZV9zdHJlYW1zIik7CisgICAgc3RhdHVzX3QgcmV0ID0gbURldmljZS0+b3BzLT5jb25maWd1cmVfc3RyZWFtcyhtRGV2aWNlLCAmc3RyZWFtX2xpc3QpOworICAgIEFUUkFDRV9FTkQoKTsKKworICAgIC8vIEluIGNhc2UgSGFsIHJldHVybnMgZXJyb3IgbW9zdCBsaWtlbHkgaXQgd2FzIG5vdCBhYmxlIHRvIHJlbGVhc2UKKyAgICAvLyB0aGUgY29ycmVzcG9uZGluZyByZXNvdXJjZXMgb2YgdGhlIGRlbGV0ZWQgc3RyZWFtcy4KKyAgICBpZiAocmV0ID09IE9LKSB7CisgICAgICAgIC8vIGRlbGV0ZSB1bnVzZWQgc3RyZWFtcywgbm90ZSB3ZSBkbyB0aGlzIGFmdGVyIGFkZGluZyBuZXcgc3RyZWFtcyB0byBlbnN1cmUgbmV3IHN0cmVhbQorICAgICAgICAvLyB3aWxsIG5vdCBoYXZlIHRoZSBzYW1lIGFkZHJlc3MgYXMgZGVsZXRlZCBzdHJlYW0sIGFuZCBIQUwgaGFzIGEgY2hhbmNlIHRvIHJlZmVyZW5jZQorICAgICAgICAvLyB0aGUgdG8gYmUgZGVsZXRlZCBzdHJlYW0gaW4gY29uZmlndXJlX3N0cmVhbXMgY2FsbAorICAgICAgICBmb3IoYXV0byBpdCA9IG1TdHJlYW1NYXAuYmVnaW4oKTsgaXQgIT0gbVN0cmVhbU1hcC5lbmQoKTspIHsKKyAgICAgICAgICAgIGludCBpZCA9IGl0LT5maXJzdDsKKyAgICAgICAgICAgIGJvb2wgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgc3RyZWFtIDogcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkID09IHN0cmVhbS5pZCkgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZm91bmQpIHsKKyAgICAgICAgICAgICAgICAvLyBVbm1hcCBhbGwgYnVmZmVycyBvZiBkZWxldGVkIHN0cmVhbQorICAgICAgICAgICAgICAgIC8vIGluIGNhc2UgdGhlIGNvbmZpZ3VyYXRpb24gY2FsbCBzdWNjZWVkcyBhbmQgSEFMCisgICAgICAgICAgICAgICAgLy8gaXMgYWJsZSB0byByZWxlYXNlIHRoZSBjb3JyZXNwb25kaW5nIHJlc291cmNlcyB0b28uCisgICAgICAgICAgICAgICAgY2xlYW51cEJ1ZmZlcnNMb2NrZWQoaWQpOworICAgICAgICAgICAgICAgIGl0ID0gbVN0cmVhbU1hcC5lcmFzZShpdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICsraXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUcmFjayB2aWRlbyBzdHJlYW1zCisgICAgICAgIG1WaWRlb1N0cmVhbUlkcy5jbGVhcigpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN0cmVhbSA6IHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtcykgeworICAgICAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1UeXBlID09IFN0cmVhbVR5cGU6Ok9VVFBVVCAmJgorICAgICAgICAgICAgICAgIHN0cmVhbS51c2FnZSAmCisgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOjpWSURFT19FTkNPREVSKSB7CisgICAgICAgICAgICAgICAgbVZpZGVvU3RyZWFtSWRzLnB1c2hfYmFjayhzdHJlYW0uaWQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1SZXN1bHRCYXRjaGVyLnNldEJhdGNoZWRTdHJlYW1zKG1WaWRlb1N0cmVhbUlkcyk7CisgICAgfQorCisgICAgaWYgKHJldCA9PSAtRUlOVkFMKSB7CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9IGVsc2UgaWYgKHJldCAhPSBPSykgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnZlcnRUb0hpZGwoc3RyZWFtX2xpc3QsICZvdXRTdHJlYW1zKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihzdGF0dXMsIG91dFN0cmVhbXMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKy8vIE5lZWRzIHRvIGdldCBjYWxsZWQgYWZ0ZXIgYWNxdWlyaW5nICdtSW5mbGlnaHRMb2NrJwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpjbGVhbnVwQnVmZmVyc0xvY2tlZChpbnQgaWQpIHsKKyAgICBmb3IgKGF1dG8mIHBhaXIgOiBtQ2lyY3VsYXRpbmdCdWZmZXJzLmF0KGlkKSkgeworICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuZnJlZUJ1ZmZlcihwYWlyLnNlY29uZCk7CisgICAgfQorICAgIG1DaXJjdWxhdGluZ0J1ZmZlcnNbaWRdLmNsZWFyKCk7CisgICAgbUNpcmN1bGF0aW5nQnVmZmVycy5lcmFzZShpZCk7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6dXBkYXRlQnVmZmVyQ2FjaGVzKGNvbnN0IGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiYgY2FjaGVzVG9SZW1vdmUpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUluZmxpZ2h0TG9jayk7CisgICAgZm9yIChhdXRvJiBjYWNoZSA6IGNhY2hlc1RvUmVtb3ZlKSB7CisgICAgICAgIGF1dG8gY2JzSXQgPSBtQ2lyY3VsYXRpbmdCdWZmZXJzLmZpbmQoY2FjaGUuc3RyZWFtSWQpOworICAgICAgICBpZiAoY2JzSXQgPT0gbUNpcmN1bGF0aW5nQnVmZmVycy5lbmQoKSkgeworICAgICAgICAgICAgLy8gVGhlIHN0cmVhbSBjb3VsZCBoYXZlIGJlZW4gcmVtb3ZlZAorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgQ2lyY3VsYXRpbmdCdWZmZXJzJiBjYnMgPSBjYnNJdC0+c2Vjb25kOworICAgICAgICBhdXRvIGl0ID0gY2JzLmZpbmQoY2FjaGUuYnVmZmVySWQpOworICAgICAgICBpZiAoaXQgIT0gY2JzLmVuZCgpKSB7CisgICAgICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuZnJlZUJ1ZmZlcihpdC0+c2Vjb25kKTsKKyAgICAgICAgICAgIGNicy5lcmFzZShpdCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IHN0cmVhbSAlZCBidWZmZXIgJSIgUFJJdTY0ICIgaXMgbm90IGNhY2hlZCIsCisgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgY2FjaGUuc3RyZWFtSWQsIGNhY2hlLmJ1ZmZlcklkKTsKKyAgICAgICAgfQorICAgIH0KK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZVNlc3Npb246OmdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZSgKKyAgICBnZXRDYXB0dXJlUmVxdWVzdE1ldGFkYXRhUXVldWVfY2IgX2hpZGxfY2IpIHsKKyAgICBfaGlkbF9jYigqbVJlcXVlc3RNZXRhZGF0YVF1ZXVlLT5nZXREZXNjKCkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2VTZXNzaW9uOjpnZXRDYXB0dXJlUmVzdWx0TWV0YWRhdGFRdWV1ZSgKKyAgICBnZXRDYXB0dXJlUmVzdWx0TWV0YWRhdGFRdWV1ZV9jYiBfaGlkbF9jYikgeworICAgIF9oaWRsX2NiKCptUmVzdWx0TWV0YWRhdGFRdWV1ZS0+Z2V0RGVzYygpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6cHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxDYXB0dXJlUmVxdWVzdD4mIHJlcXVlc3RzLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxCdWZmZXJDYWNoZT4mIGNhY2hlc1RvUmVtb3ZlLAorICAgICAgICBwcm9jZXNzQ2FwdHVyZVJlcXVlc3RfY2IgX2hpZGxfY2IpICB7CisgICAgdXBkYXRlQnVmZmVyQ2FjaGVzKGNhY2hlc1RvUmVtb3ZlKTsKKworICAgIHVpbnQzMl90IG51bVJlcXVlc3RQcm9jZXNzZWQgPSAwOworICAgIFN0YXR1cyBzID0gU3RhdHVzOjpPSzsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlcXVlc3RzLnNpemUoKTsgaSsrLCBudW1SZXF1ZXN0UHJvY2Vzc2VkKyspIHsKKyAgICAgICAgcyA9IHByb2Nlc3NPbmVDYXB0dXJlUmVxdWVzdChyZXF1ZXN0c1tpXSk7CisgICAgICAgIGlmIChzICE9IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHMgPT0gU3RhdHVzOjpPSyAmJiByZXF1ZXN0cy5zaXplKCkgPiAxKSB7CisgICAgICAgIG1SZXN1bHRCYXRjaGVyLnJlZ2lzdGVyQmF0Y2gocmVxdWVzdHMpOworICAgIH0KKworICAgIF9oaWRsX2NiKHMsIG51bVJlcXVlc3RQcm9jZXNzZWQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1N0YXR1cyBDYW1lcmFEZXZpY2VTZXNzaW9uOjpwcm9jZXNzT25lQ2FwdHVyZVJlcXVlc3QoY29uc3QgQ2FwdHVyZVJlcXVlc3QmIHJlcXVlc3QpICB7CisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBpZiAoc3RhdHVzICE9IFN0YXR1czo6T0spIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgaW5pdCBmYWlsZWQgb3IgZGlzY29ubmVjdGVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICBjYW1lcmEzX2NhcHR1cmVfcmVxdWVzdF90IGhhbFJlcXVlc3Q7CisgICAgaGFsUmVxdWVzdC5mcmFtZV9udW1iZXIgPSByZXF1ZXN0LmZyYW1lTnVtYmVyOworCisgICAgYm9vbCBjb252ZXJ0ZWQgPSB0cnVlOworICAgIENhbWVyYU1ldGFkYXRhIHNldHRpbmdzRm1xOyAgLy8gc2V0dGluZ3MgZnJvbSBGTVEKKyAgICBpZiAocmVxdWVzdC5mbXFTZXR0aW5nc1NpemUgPiAwKSB7CisgICAgICAgIC8vIG5vbi1ibG9ja2luZyByZWFkOyBjbGllbnQgbXVzdCB3cml0ZSBtZXRhZGF0YSBiZWZvcmUgY2FsbGluZworICAgICAgICAvLyBwcm9jZXNzT25lQ2FwdHVyZVJlcXVlc3QKKyAgICAgICAgc2V0dGluZ3NGbXEucmVzaXplKHJlcXVlc3QuZm1xU2V0dGluZ3NTaXplKTsKKyAgICAgICAgYm9vbCByZWFkID0gbVJlcXVlc3RNZXRhZGF0YVF1ZXVlLT5yZWFkKHNldHRpbmdzRm1xLmRhdGEoKSwgcmVxdWVzdC5mbXFTZXR0aW5nc1NpemUpOworICAgICAgICBpZiAocmVhZCkgeworICAgICAgICAgICAgY29udmVydGVkID0gY29udmVydEZyb21IaWRsKHNldHRpbmdzRm1xLCAmaGFsUmVxdWVzdC5zZXR0aW5ncyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhcHR1cmUgcmVxdWVzdCBzZXR0aW5ncyBtZXRhZGF0YSBjb3VsZG4ndCBiZSByZWFkIGZyb20gZm1xISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBjb252ZXJ0ZWQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnZlcnRlZCA9IGNvbnZlcnRGcm9tSGlkbChyZXF1ZXN0LnNldHRpbmdzLCAmaGFsUmVxdWVzdC5zZXR0aW5ncyk7CisgICAgfQorCisgICAgaWYgKCFjb252ZXJ0ZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYXB0dXJlIHJlcXVlc3Qgc2V0dGluZ3MgbWV0YWRhdGEgaXMgY29ycnVwdCEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICB9CisKKyAgICBoaWRsX3ZlYzxidWZmZXJfaGFuZGxlX3QqPiBhbGxCdWZQdHJzOworICAgIGhpZGxfdmVjPGludD4gYWxsRmVuY2VzOworICAgIGJvb2wgaGFzSW5wdXRCdWYgPSAocmVxdWVzdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZCAhPSAtMSAmJgorICAgICAgICAgICAgcmVxdWVzdC5pbnB1dEJ1ZmZlci5idWZmZXJJZCAhPSAwKTsKKyAgICBzaXplX3QgbnVtT3V0cHV0QnVmcyA9IHJlcXVlc3Qub3V0cHV0QnVmZmVycy5zaXplKCk7CisgICAgc2l6ZV90IG51bUJ1ZnMgPSBudW1PdXRwdXRCdWZzICsgKGhhc0lucHV0QnVmID8gMSA6IDApOworICAgIHN0YXR1cyA9IGltcG9ydFJlcXVlc3QocmVxdWVzdCwgYWxsQnVmUHRycywgYWxsRmVuY2VzKTsKKyAgICBpZiAoc3RhdHVzICE9IFN0YXR1czo6T0spIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICBoaWRsX3ZlYzxjYW1lcmEzX3N0cmVhbV9idWZmZXJfdD4gb3V0SGFsQnVmczsKKyAgICBvdXRIYWxCdWZzLnJlc2l6ZShudW1PdXRwdXRCdWZzKTsKKyAgICBib29sIGFlQ2FuY2VsVHJpZ2dlck5lZWRlZCA9IGZhbHNlOworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1ldGFkYXRhIHNldHRpbmdzT3ZlcnJpZGU7CisgICAgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUluZmxpZ2h0TG9jayk7CisgICAgICAgIGlmIChoYXNJbnB1dEJ1ZikgeworICAgICAgICAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihyZXF1ZXN0LmlucHV0QnVmZmVyLnN0cmVhbUlkLCByZXF1ZXN0LmZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIGF1dG8mIGJ1ZkNhY2hlID0gbUluZmxpZ2h0QnVmZmVyc1trZXldID0gY2FtZXJhM19zdHJlYW1fYnVmZmVyX3R7fTsKKyAgICAgICAgICAgIGNvbnZlcnRGcm9tSGlkbCgKKyAgICAgICAgICAgICAgICAgICAgYWxsQnVmUHRyc1tudW1PdXRwdXRCdWZzXSwgcmVxdWVzdC5pbnB1dEJ1ZmZlci5zdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICZtU3RyZWFtTWFwW3JlcXVlc3QuaW5wdXRCdWZmZXIuc3RyZWFtSWRdLCBhbGxGZW5jZXNbbnVtT3V0cHV0QnVmc10sCisgICAgICAgICAgICAgICAgICAgICZidWZDYWNoZSk7CisgICAgICAgICAgICBoYWxSZXF1ZXN0LmlucHV0X2J1ZmZlciA9ICZidWZDYWNoZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGhhbFJlcXVlc3QuaW5wdXRfYnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIGhhbFJlcXVlc3QubnVtX291dHB1dF9idWZmZXJzID0gbnVtT3V0cHV0QnVmczsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1PdXRwdXRCdWZzOyBpKyspIHsKKyAgICAgICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIocmVxdWVzdC5vdXRwdXRCdWZmZXJzW2ldLnN0cmVhbUlkLCByZXF1ZXN0LmZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIGF1dG8mIGJ1ZkNhY2hlID0gbUluZmxpZ2h0QnVmZmVyc1trZXldID0gY2FtZXJhM19zdHJlYW1fYnVmZmVyX3R7fTsKKyAgICAgICAgICAgIGNvbnZlcnRGcm9tSGlkbCgKKyAgICAgICAgICAgICAgICAgICAgYWxsQnVmUHRyc1tpXSwgcmVxdWVzdC5vdXRwdXRCdWZmZXJzW2ldLnN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgJm1TdHJlYW1NYXBbcmVxdWVzdC5vdXRwdXRCdWZmZXJzW2ldLnN0cmVhbUlkXSwgYWxsRmVuY2VzW2ldLAorICAgICAgICAgICAgICAgICAgICAmYnVmQ2FjaGUpOworICAgICAgICAgICAgb3V0SGFsQnVmc1tpXSA9IGJ1ZkNhY2hlOworICAgICAgICB9CisgICAgICAgIGhhbFJlcXVlc3Qub3V0cHV0X2J1ZmZlcnMgPSBvdXRIYWxCdWZzLmRhdGEoKTsKKworICAgICAgICBBRVRyaWdnZXJDYW5jZWxPdmVycmlkZSB0cmlnZ2VyT3ZlcnJpZGU7CisgICAgICAgIGFlQ2FuY2VsVHJpZ2dlck5lZWRlZCA9IGhhbmRsZUFlUHJlY2FwdHVyZUNhbmNlbFJlcXVlc3RMb2NrZWQoCisgICAgICAgICAgICAgICAgaGFsUmVxdWVzdCwgJnNldHRpbmdzT3ZlcnJpZGUgLypvdXQqLywgJnRyaWdnZXJPdmVycmlkZS8qb3V0Ki8pOworICAgICAgICBpZiAoYWVDYW5jZWxUcmlnZ2VyTmVlZGVkKSB7CisgICAgICAgICAgICBtSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXNbaGFsUmVxdWVzdC5mcmFtZV9udW1iZXJdID0KKyAgICAgICAgICAgICAgICAgICAgdHJpZ2dlck92ZXJyaWRlOworICAgICAgICAgICAgaGFsUmVxdWVzdC5zZXR0aW5ncyA9IHNldHRpbmdzT3ZlcnJpZGUuZ2V0QW5kTG9jaygpOworICAgICAgICB9CisgICAgfQorCisgICAgQVRSQUNFX0FTWU5DX0JFR0lOKCJmcmFtZSBjYXB0dXJlIiwgcmVxdWVzdC5mcmFtZU51bWJlcik7CisgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmEzLT5wcm9jZXNzX2NhcHR1cmVfcmVxdWVzdCIpOworICAgIHN0YXR1c190IHJldCA9IG1EZXZpY2UtPm9wcy0+cHJvY2Vzc19jYXB0dXJlX3JlcXVlc3QobURldmljZSwgJmhhbFJlcXVlc3QpOworICAgIEFUUkFDRV9FTkQoKTsKKyAgICBpZiAoYWVDYW5jZWxUcmlnZ2VyTmVlZGVkKSB7CisgICAgICAgIHNldHRpbmdzT3ZlcnJpZGUudW5sb2NrKGhhbFJlcXVlc3Quc2V0dGluZ3MpOworICAgIH0KKyAgICBpZiAocmV0ICE9IE9LKSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtSW5mbGlnaHRMb2NrKTsKKyAgICAgICAgQUxPR0UoIiVzOiBIQUwgcHJvY2Vzc19jYXB0dXJlX3JlcXVlc3QgY2FsbCBmYWlsZWQhIiwgX19GVU5DVElPTl9fKTsKKworICAgICAgICBjbGVhbnVwSW5mbGlnaHRGZW5jZXMoYWxsRmVuY2VzLCBudW1CdWZzKTsKKyAgICAgICAgaWYgKGhhc0lucHV0QnVmKSB7CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHJlcXVlc3QuaW5wdXRCdWZmZXIuc3RyZWFtSWQsIHJlcXVlc3QuZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgbUluZmxpZ2h0QnVmZmVycy5lcmFzZShrZXkpOworICAgICAgICB9CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtT3V0cHV0QnVmczsgaSsrKSB7CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHJlcXVlc3Qub3V0cHV0QnVmZmVyc1tpXS5zdHJlYW1JZCwgcmVxdWVzdC5mcmFtZU51bWJlcik7CisgICAgICAgICAgICBtSW5mbGlnaHRCdWZmZXJzLmVyYXNlKGtleSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFlQ2FuY2VsVHJpZ2dlck5lZWRlZCkgeworICAgICAgICAgICAgbUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmVyYXNlKHJlcXVlc3QuZnJhbWVOdW1iZXIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0KKworICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2VTZXNzaW9uOjpmbHVzaCgpICB7CisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgLy8gRmx1c2ggaXMgYWx3YXlzIHN1cHBvcnRlZCBvbiBkZXZpY2UgMy4xIG9yIGxhdGVyCisgICAgICAgIHN0YXR1c190IHJldCA9IG1EZXZpY2UtPm9wcy0+Zmx1c2gobURldmljZSk7CisgICAgICAgIGlmIChyZXQgIT0gT0spIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZVNlc3Npb246OmNsb3NlKCkgIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobVN0YXRlTG9jayk7CisgICAgaWYgKCFtQ2xvc2VkKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtSW5mbGlnaHRMb2NrKTsKKyAgICAgICAgICAgIGlmICghbUluZmxpZ2h0QnVmZmVycy5lbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiB0cnlpbmcgdG8gY2xvc2Ugd2hpbGUgdGhlcmUgYXJlIHN0aWxsICV6dSBpbmZsaWdodCBidWZmZXJzISIsCisgICAgICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIG1JbmZsaWdodEJ1ZmZlcnMuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IHRyeWluZyB0byBjbG9zZSB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgJXp1IGluZmxpZ2h0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJ0cmlnZ2VyIG92ZXJyaWRlcyEiLCBfX0ZVTkNUSU9OX18sCisgICAgICAgICAgICAgICAgICAgICAgICBtSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IHRyeWluZyB0byBjbG9zZSB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgJXp1IGluZmxpZ2h0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICIgUkFXIGJvb3N0IG92ZXJyaWRlcyEiLCBfX0ZVTkNUSU9OX18sCisgICAgICAgICAgICAgICAgICAgICAgICBtSW5mbGlnaHRSYXdCb29zdFByZXNlbnQuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmEzLT5jbG9zZSIpOworICAgICAgICBtRGV2aWNlLT5jb21tb24uY2xvc2UoJm1EZXZpY2UtPmNvbW1vbik7CisgICAgICAgIEFUUkFDRV9FTkQoKTsKKworICAgICAgICAvLyBmcmVlIGFsbCBpbXBvcnRlZCBidWZmZXJzCisgICAgICAgIGZvcihhdXRvJiBwYWlyIDogbUNpcmN1bGF0aW5nQnVmZmVycykgeworICAgICAgICAgICAgQ2lyY3VsYXRpbmdCdWZmZXJzJiBidWZmZXJzID0gcGFpci5zZWNvbmQ7CisgICAgICAgICAgICBmb3IgKGF1dG8mIHAyIDogYnVmZmVycykgeworICAgICAgICAgICAgICAgIHNIYW5kbGVJbXBvcnRlci5mcmVlQnVmZmVyKHAyLnNlY29uZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBtQ2xvc2VkID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworLyoqCisgKiBTdGF0aWMgY2FsbGJhY2sgZm9yd2FyZGluZyBtZXRob2RzIGZyb20gSEFMIHRvIGluc3RhbmNlCisgKi8KK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6c1Byb2Nlc3NDYXB0dXJlUmVzdWx0KAorICAgICAgICBjb25zdCBjYW1lcmEzX2NhbGxiYWNrX29wcyAqY2IsCisgICAgICAgIGNvbnN0IGNhbWVyYTNfY2FwdHVyZV9yZXN1bHQgKmhhbF9yZXN1bHQpIHsKKyAgICBDYW1lcmFEZXZpY2VTZXNzaW9uICpkID0KKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Q2FtZXJhRGV2aWNlU2Vzc2lvbio+KHN0YXRpY19jYXN0PGNvbnN0IENhbWVyYURldmljZVNlc3Npb24qPihjYikpOworCisgICAgdWludDMyX3QgZnJhbWVOdW1iZXIgPSBoYWxfcmVzdWx0LT5mcmFtZV9udW1iZXI7CisgICAgYm9vbCBoYXNJbnB1dEJ1ZiA9IChoYWxfcmVzdWx0LT5pbnB1dF9idWZmZXIgIT0gbnVsbHB0cik7CisgICAgc2l6ZV90IG51bU91dHB1dEJ1ZnMgPSBoYWxfcmVzdWx0LT5udW1fb3V0cHV0X2J1ZmZlcnM7CisgICAgc2l6ZV90IG51bUJ1ZnMgPSBudW1PdXRwdXRCdWZzICsgKGhhc0lucHV0QnVmID8gMSA6IDApOworICAgIGlmIChudW1CdWZzID4gMCkgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2woZC0+bUluZmxpZ2h0TG9jayk7CisgICAgICAgIGlmIChoYXNJbnB1dEJ1ZikgeworICAgICAgICAgICAgaW50IHN0cmVhbUlkID0gc3RhdGljX2Nhc3Q8Q2FtZXJhM1N0cmVhbSo+KGhhbF9yZXN1bHQtPmlucHV0X2J1ZmZlci0+c3RyZWFtKS0+bUlkOworICAgICAgICAgICAgLy8gdmFsaWRhdGUgaWYgYnVmZmVyIGlzIGluZmxpZ2h0CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0cmVhbUlkLCBmcmFtZU51bWJlcik7CisgICAgICAgICAgICBpZiAoZC0+bUluZmxpZ2h0QnVmZmVycy5jb3VudChrZXkpICE9IDEpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IGlucHV0IGJ1ZmZlciBmb3Igc3RyZWFtICVkIGZyYW1lICVkIGlzIG5vdCBpbmZsaWdodCEiLAorICAgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBzdHJlYW1JZCwgZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtT3V0cHV0QnVmczsgaSsrKSB7CisgICAgICAgICAgICBpbnQgc3RyZWFtSWQgPSBzdGF0aWNfY2FzdDxDYW1lcmEzU3RyZWFtKj4oaGFsX3Jlc3VsdC0+b3V0cHV0X2J1ZmZlcnNbaV0uc3RyZWFtKS0+bUlkOworICAgICAgICAgICAgLy8gdmFsaWRhdGUgaWYgYnVmZmVyIGlzIGluZmxpZ2h0CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0cmVhbUlkLCBmcmFtZU51bWJlcik7CisgICAgICAgICAgICBpZiAoZC0+bUluZmxpZ2h0QnVmZmVycy5jb3VudChrZXkpICE9IDEpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IG91dHB1dCBidWZmZXIgZm9yIHN0cmVhbSAlZCBmcmFtZSAlZCBpcyBub3QgaW5mbGlnaHQhIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgc3RyZWFtSWQsIGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byB2YWxpZGF0ZS9pbXBvcnQgZmVuY2VzIGhlcmUgc2luY2Ugd2Ugd2lsbCBiZSBwYXNzaW5nIHRoZW0gdG8gY2FtZXJhIHNlcnZpY2UKKyAgICAvLyB3aXRoaW4gdGhlIHNjb3BlIG9mIHRoaXMgZnVuY3Rpb24KKyAgICBDYXB0dXJlUmVzdWx0IHJlc3VsdDsKKyAgICByZXN1bHQuZnJhbWVOdW1iZXIgPSBmcmFtZU51bWJlcjsKKyAgICByZXN1bHQuZm1xUmVzdWx0U2l6ZSA9IDA7CisgICAgcmVzdWx0LnBhcnRpYWxSZXN1bHQgPSBoYWxfcmVzdWx0LT5wYXJ0aWFsX3Jlc3VsdDsKKyAgICBjb252ZXJ0VG9IaWRsKGhhbF9yZXN1bHQtPnJlc3VsdCwgJnJlc3VsdC5yZXN1bHQpOworICAgIGlmIChudWxscHRyICE9IGhhbF9yZXN1bHQtPnJlc3VsdCkgeworICAgICAgICBib29sIHJlc3VsdE92ZXJyaWRlbiA9IGZhbHNlOworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2woZC0+bUluZmxpZ2h0TG9jayk7CisKKyAgICAgICAgLy8gRGVyaXZlIHNvbWUgbmV3IGtleXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICAgICAgaWYgKGQtPm1EZXJpdmVQb3N0UmF3U2Vuc0tleSkgeworICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5IGVudHJ5OworICAgICAgICAgICAgaWYgKGZpbmRfY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5KGhhbF9yZXN1bHQtPnJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NULCAmZW50cnkpID09IDApIHsKKyAgICAgICAgICAgICAgICBkLT5tSW5mbGlnaHRSYXdCb29zdFByZXNlbnRbZnJhbWVOdW1iZXJdID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYXV0byBlbnRyeSA9IGQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5maW5kKGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBpZiAoZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmVuZCgpID09IGVudHJ5KSB7CisgICAgICAgICAgICAgICAgICAgIGQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudFtmcmFtZU51bWJlcl0gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgoaGFsX3Jlc3VsdC0+cGFydGlhbF9yZXN1bHQgPT0gZC0+bU51bVBhcnRpYWxSZXN1bHRzKSkgeworICAgICAgICAgICAgICAgIGlmICghZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50W2ZyYW1lTnVtYmVyXSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdE92ZXJyaWRlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgZC0+bU92ZXJyaWRlblJlc3VsdC5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgICAgZC0+bU92ZXJyaWRlblJlc3VsdC5hcHBlbmQoaGFsX3Jlc3VsdC0+cmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE92ZXJyaWRlbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBkZWZhdWx0Qm9vc3RbMV0gPSB7MTAwfTsKKyAgICAgICAgICAgICAgICAgICAgZC0+bU92ZXJyaWRlblJlc3VsdC51cGRhdGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRCb29zdCwgMSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmVyYXNlKGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gZW50cnkgPSBkLT5tSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZmluZChmcmFtZU51bWJlcik7CisgICAgICAgIGlmIChkLT5tSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZW5kKCkgIT0gZW50cnkpIHsKKyAgICAgICAgICAgIGlmICghcmVzdWx0T3ZlcnJpZGVuKSB7CisgICAgICAgICAgICAgICAgZC0+bU92ZXJyaWRlblJlc3VsdC5jbGVhcigpOworICAgICAgICAgICAgICAgIGQtPm1PdmVycmlkZW5SZXN1bHQuYXBwZW5kKGhhbF9yZXN1bHQtPnJlc3VsdCk7CisgICAgICAgICAgICAgICAgcmVzdWx0T3ZlcnJpZGVuID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGQtPm92ZXJyaWRlUmVzdWx0Rm9yUHJlY2FwdHVyZUNhbmNlbExvY2tlZChlbnRyeS0+c2Vjb25kLAorICAgICAgICAgICAgICAgICAgICAmZC0+bU92ZXJyaWRlblJlc3VsdCk7CisgICAgICAgICAgICBpZiAoaGFsX3Jlc3VsdC0+cGFydGlhbF9yZXN1bHQgPT0gZC0+bU51bVBhcnRpYWxSZXN1bHRzKSB7CisgICAgICAgICAgICAgICAgZC0+bUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmVyYXNlKGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXN1bHRPdmVycmlkZW4pIHsKKyAgICAgICAgICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90ICptZXRhQnVmZmVyID0KKyAgICAgICAgICAgICAgICAgICAgZC0+bU92ZXJyaWRlblJlc3VsdC5nZXRBbmRMb2NrKCk7CisgICAgICAgICAgICBjb252ZXJ0VG9IaWRsKG1ldGFCdWZmZXIsICZyZXN1bHQucmVzdWx0KTsKKyAgICAgICAgICAgIGQtPm1PdmVycmlkZW5SZXN1bHQudW5sb2NrKG1ldGFCdWZmZXIpOworICAgICAgICB9CisgICAgfQorICAgIGlmIChoYXNJbnB1dEJ1ZikgeworICAgICAgICByZXN1bHQuaW5wdXRCdWZmZXIuc3RyZWFtSWQgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PENhbWVyYTNTdHJlYW0qPihoYWxfcmVzdWx0LT5pbnB1dF9idWZmZXItPnN0cmVhbSktPm1JZDsKKyAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLmJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5zdGF0dXMgPSAoQnVmZmVyU3RhdHVzKSBoYWxfcmVzdWx0LT5pbnB1dF9idWZmZXItPnN0YXR1czsKKyAgICAgICAgLy8gc2tpcCBhY3F1aXJlIGZlbmNlIHNpbmNlIGl0J3Mgbm8gdXNlIHRvIGNhbWVyYSBzZXJ2aWNlCisgICAgICAgIGlmIChoYWxfcmVzdWx0LT5pbnB1dF9idWZmZXItPnJlbGVhc2VfZmVuY2UgIT0gLTEpIHsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoLypudW1GZHMqLzEsIC8qbnVtSW50cyovMCk7CisgICAgICAgICAgICBoYW5kbGUtPmRhdGFbMF0gPSBoYWxfcmVzdWx0LT5pbnB1dF9idWZmZXItPnJlbGVhc2VfZmVuY2U7CisgICAgICAgICAgICByZXN1bHQuaW5wdXRCdWZmZXIucmVsZWFzZUZlbmNlID0gaGFuZGxlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLnJlbGVhc2VGZW5jZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICByZXN1bHQuaW5wdXRCdWZmZXIuc3RyZWFtSWQgPSAtMTsKKyAgICB9CisKKyAgICByZXN1bHQub3V0cHV0QnVmZmVycy5yZXNpemUobnVtT3V0cHV0QnVmcyk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1PdXRwdXRCdWZzOyBpKyspIHsKKyAgICAgICAgcmVzdWx0Lm91dHB1dEJ1ZmZlcnNbaV0uc3RyZWFtSWQgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PENhbWVyYTNTdHJlYW0qPihoYWxfcmVzdWx0LT5vdXRwdXRfYnVmZmVyc1tpXS5zdHJlYW0pLT5tSWQ7CisgICAgICAgIHJlc3VsdC5vdXRwdXRCdWZmZXJzW2ldLmJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIHJlc3VsdC5vdXRwdXRCdWZmZXJzW2ldLnN0YXR1cyA9IChCdWZmZXJTdGF0dXMpIGhhbF9yZXN1bHQtPm91dHB1dF9idWZmZXJzW2ldLnN0YXR1czsKKyAgICAgICAgLy8gc2tpcCBhY3F1aXJlIGZlbmNlIHNpbmNlIGl0J3Mgb2Ygbm8gdXNlIHRvIGNhbWVyYSBzZXJ2aWNlCisgICAgICAgIGlmIChoYWxfcmVzdWx0LT5vdXRwdXRfYnVmZmVyc1tpXS5yZWxlYXNlX2ZlbmNlICE9IC0xKSB7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKC8qbnVtRmRzKi8xLCAvKm51bUludHMqLzApOworICAgICAgICAgICAgaGFuZGxlLT5kYXRhWzBdID0gaGFsX3Jlc3VsdC0+b3V0cHV0X2J1ZmZlcnNbaV0ucmVsZWFzZV9mZW5jZTsKKyAgICAgICAgICAgIHJlc3VsdC5vdXRwdXRCdWZmZXJzW2ldLnJlbGVhc2VGZW5jZSA9IGhhbmRsZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdC5vdXRwdXRCdWZmZXJzW2ldLnJlbGVhc2VGZW5jZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBGcmVlIGluZmxpZ2h0IHJlY29yZC9mZW5jZXMuCisgICAgLy8gRG8gdGhpcyBiZWZvcmUgY2FsbCBiYWNrIHRvIGNhbWVyYSBzZXJ2aWNlIGJlY2F1c2UgY2FtZXJhIHNlcnZpY2UgbWlnaHQganVtcCB0bworICAgIC8vIGNvbmZpZ3VyZV9zdHJlYW1zIHJpZ2h0IGFmdGVyIHRoZSBwcm9jZXNzQ2FwdHVyZVJlc3VsdCBjYWxsIHNvIHdlIG5lZWQgdG8gZmluaXNoCisgICAgLy8gdXBkYXRpbmcgaW5mbGlnaHQgcXVldWVzIGZpcnN0CisgICAgaWYgKG51bUJ1ZnMgPiAwKSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChkLT5tSW5mbGlnaHRMb2NrKTsKKyAgICAgICAgaWYgKGhhc0lucHV0QnVmKSB7CisgICAgICAgICAgICBpbnQgc3RyZWFtSWQgPSBzdGF0aWNfY2FzdDxDYW1lcmEzU3RyZWFtKj4oaGFsX3Jlc3VsdC0+aW5wdXRfYnVmZmVyLT5zdHJlYW0pLT5tSWQ7CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0cmVhbUlkLCBmcmFtZU51bWJlcik7CisgICAgICAgICAgICBkLT5tSW5mbGlnaHRCdWZmZXJzLmVyYXNlKGtleSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bU91dHB1dEJ1ZnM7IGkrKykgeworICAgICAgICAgICAgaW50IHN0cmVhbUlkID0gc3RhdGljX2Nhc3Q8Q2FtZXJhM1N0cmVhbSo+KGhhbF9yZXN1bHQtPm91dHB1dF9idWZmZXJzW2ldLnN0cmVhbSktPm1JZDsKKyAgICAgICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RyZWFtSWQsIGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIGQtPm1JbmZsaWdodEJ1ZmZlcnMuZXJhc2Uoa2V5KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkLT5tSW5mbGlnaHRCdWZmZXJzLmVtcHR5KCkpIHsKKyAgICAgICAgICAgIEFMT0dWKCIlczogaW5mbGlnaHQgYnVmZmVyIHF1ZXVlIGlzIG5vdyBlbXB0eSEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICB9CisgICAgfQorCisgICAgZC0+bVJlc3VsdEJhdGNoZXIucHJvY2Vzc0NhcHR1cmVSZXN1bHQocmVzdWx0KTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpzTm90aWZ5KAorICAgICAgICBjb25zdCBjYW1lcmEzX2NhbGxiYWNrX29wcyAqY2IsCisgICAgICAgIGNvbnN0IGNhbWVyYTNfbm90aWZ5X21zZyAqbXNnKSB7CisgICAgQ2FtZXJhRGV2aWNlU2Vzc2lvbiAqZCA9CisgICAgICAgICAgICBjb25zdF9jYXN0PENhbWVyYURldmljZVNlc3Npb24qPihzdGF0aWNfY2FzdDxjb25zdCBDYW1lcmFEZXZpY2VTZXNzaW9uKj4oY2IpKTsKKyAgICBOb3RpZnlNc2cgaGlkbE1zZzsKKyAgICBjb252ZXJ0VG9IaWRsKG1zZywgJmhpZGxNc2cpOworCisgICAgaWYgKGhpZGxNc2cudHlwZSA9PSAoTXNnVHlwZSkgQ0FNRVJBM19NU0dfRVJST1IgJiYKKyAgICAgICAgICAgIGhpZGxNc2cubXNnLmVycm9yLmVycm9yU3RyZWFtSWQgIT0gLTEpIHsKKyAgICAgICAgaWYgKGQtPm1TdHJlYW1NYXAuY291bnQoaGlkbE1zZy5tc2cuZXJyb3IuZXJyb3JTdHJlYW1JZCkgIT0gMSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiB1bmtub3duIHN0cmVhbSBJRCAlZCByZXBvcnRzIGFuIGVycm9yISIsCisgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgaGlkbE1zZy5tc2cuZXJyb3IuZXJyb3JTdHJlYW1JZCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoc3RhdGljX2Nhc3Q8Y2FtZXJhM19tc2dfdHlwZV90PihoaWRsTXNnLnR5cGUpID09IENBTUVSQTNfTVNHX0VSUk9SKSB7CisgICAgICAgIHN3aXRjaCAoaGlkbE1zZy5tc2cuZXJyb3IuZXJyb3JDb2RlKSB7CisgICAgICAgICAgICBjYXNlIEVycm9yQ29kZTo6RVJST1JfREVWSUNFOgorICAgICAgICAgICAgY2FzZSBFcnJvckNvZGU6OkVSUk9SX1JFUVVFU1Q6CisgICAgICAgICAgICBjYXNlIEVycm9yQ29kZTo6RVJST1JfUkVTVUxUOiB7CisgICAgICAgICAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGQtPm1JbmZsaWdodExvY2spOworICAgICAgICAgICAgICAgIGF1dG8gZW50cnkgPSBkLT5tSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZmluZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxNc2cubXNnLmVycm9yLmZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBpZiAoZC0+bUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmVuZCgpICE9IGVudHJ5KSB7CisgICAgICAgICAgICAgICAgICAgIGQtPm1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlcy5lcmFzZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsTXNnLm1zZy5lcnJvci5mcmFtZU51bWJlcik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYXV0byBib29zdEVudHJ5ID0gZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmZpbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBoaWRsTXNnLm1zZy5lcnJvci5mcmFtZU51bWJlcik7CisgICAgICAgICAgICAgICAgaWYgKGQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5lbmQoKSAhPSBib29zdEVudHJ5KSB7CisgICAgICAgICAgICAgICAgICAgIGQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5lcmFzZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsTXNnLm1zZy5lcnJvci5mcmFtZU51bWJlcik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEVycm9yQ29kZTo6RVJST1JfQlVGRkVSOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgZC0+bVJlc3VsdEJhdGNoZXIubm90aWZ5KGhpZGxNc2cpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYzXzIKK30gIC8vIG5hbWVzcGFjZSBkZXZpY2UKK30gIC8vIG5hbWVzcGFjZSBjYW1lcmEKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VTZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU1OWM0OAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oCkBAIC0wLDAgKzEsMzA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9ERVZJQ0VfVjNfMl9DQU1FUkFERVZJQ0UzU0VTU0lPTl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WM18yX0NBTUVSQURFVklDRTNTRVNTSU9OX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZVNlc3Npb24uaD4KKyNpbmNsdWRlIDxmbXEvTWVzc2FnZVF1ZXVlLmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGluY2x1ZGUvY29udmVydC5oPgorI2luY2x1ZGUgPGRlcXVlPgorI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgIkNhbWVyYU1ldGFkYXRhLmgiCisjaW5jbHVkZSAiSGFuZGxlSW1wb3J0ZXIuaCIKKyNpbmNsdWRlICJoYXJkd2FyZS9jYW1lcmEzLmgiCisjaW5jbHVkZSAiaGFyZHdhcmUvY2FtZXJhX2NvbW1vbi5oIgorI2luY2x1ZGUgInV0aWxzL011dGV4LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBkZXZpY2UgeworbmFtZXNwYWNlIFYzXzIgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkNhcHR1cmVSZXF1ZXN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkhhbFN0cmVhbUNvbmZpZ3VyYXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6U3RyZWFtQ29uZmlndXJhdGlvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlU2Vzc2lvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpIYW5kbGVJbXBvcnRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtTeW5jaHJvbml6ZWRSZWFkV3JpdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpNZXNzYWdlUXVldWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpNUURlc2NyaXB0b3JTeW5jOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOwordXNpbmcgOjphbmRyb2lkOjpNdXRleDsKKworLyoqCisgKiBGdW5jdGlvbiBwb2ludGVyIHR5cGVzIHdpdGggQyBjYWxsaW5nIGNvbnZlbnRpb24gdG8KKyAqIHVzZSBmb3IgSEFMIGNhbGxiYWNrIGZ1bmN0aW9ucy4KKyAqLworZXh0ZXJuICJDIiB7CisgICAgdHlwZWRlZiB2b2lkIChjYWxsYmFja3NfcHJvY2Vzc19jYXB0dXJlX3Jlc3VsdF90KSgKKyAgICAgICAgY29uc3Qgc3RydWN0IGNhbWVyYTNfY2FsbGJhY2tfb3BzICosCisgICAgICAgIGNvbnN0IGNhbWVyYTNfY2FwdHVyZV9yZXN1bHRfdCAqKTsKKworICAgIHR5cGVkZWYgdm9pZCAoY2FsbGJhY2tzX25vdGlmeV90KSgKKyAgICAgICAgY29uc3Qgc3RydWN0IGNhbWVyYTNfY2FsbGJhY2tfb3BzICosCisgICAgICAgIGNvbnN0IGNhbWVyYTNfbm90aWZ5X21zZ190ICopOworfQorCitzdHJ1Y3QgQ2FtZXJhRGV2aWNlU2Vzc2lvbiA6IHB1YmxpYyBJQ2FtZXJhRGV2aWNlU2Vzc2lvbiwgcHJpdmF0ZSBjYW1lcmEzX2NhbGxiYWNrX29wcyAgeworCisgICAgQ2FtZXJhRGV2aWNlU2Vzc2lvbihjYW1lcmEzX2RldmljZV90KiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiBkZXZpY2VJbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiYpOworICAgIH5DYW1lcmFEZXZpY2VTZXNzaW9uKCk7CisgICAgLy8gQ2FsbCBieSBDYW1lcmFEZXZpY2UgdG8gZHVtcCBhY3RpdmUgZGV2aWNlIHN0YXRlcworICAgIHZvaWQgZHVtcFN0YXRlKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogZmQpOworICAgIC8vIENhbGxlciBtdXN0IHVzZSB0aGlzIG1ldGhvZCB0byBjaGVjayBpZiBDYW1lcmFEZXZpY2VTZXNzaW9uIGN0b3IgZmFpbGVkCisgICAgYm9vbCBpc0luaXRGYWlsZWQoKSB7IHJldHVybiBtSW5pdEZhaWw7IH0KKyAgICAvLyBVc2VkIGJ5IENhbWVyYURldmljZSB0byBzaWduYWwgZXh0ZXJuYWwgY2FtZXJhIGRpc2Nvbm5lY3RlZAorICAgIHZvaWQgZGlzY29ubmVjdCgpOworICAgIGJvb2wgaXNDbG9zZWQoKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZVNlc3Npb24gZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBjb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzKAorICAgICAgICAgICAgUmVxdWVzdFRlbXBsYXRlIHR5cGUsIGNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3NfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjb25maWd1cmVTdHJlYW1zKAorICAgICAgICAgICAgY29uc3QgU3RyZWFtQ29uZmlndXJhdGlvbiYgcmVxdWVzdGVkQ29uZmlndXJhdGlvbiwgY29uZmlndXJlU3RyZWFtc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZSgKKyAgICAgICAgZ2V0Q2FwdHVyZVJlcXVlc3RNZXRhZGF0YVF1ZXVlX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FwdHVyZVJlc3VsdE1ldGFkYXRhUXVldWUoCisgICAgICAgIGdldENhcHR1cmVSZXN1bHRNZXRhZGF0YVF1ZXVlX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8Q2FwdHVyZVJlcXVlc3Q+JiByZXF1ZXN0cywKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiYgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgICAgICBwcm9jZXNzQ2FwdHVyZVJlcXVlc3RfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IGZsdXNoKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsb3NlKCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgLy8gcHJvdGVjdGluZyBtQ2xvc2VkL21EaXNjb25uZWN0ZWQvbUluaXRGYWlsCisgICAgbXV0YWJsZSBNdXRleCBtU3RhdGVMb2NrOworICAgIC8vIGRldmljZSBpcyBjbG9zZWQgZWl0aGVyCisgICAgLy8gICAgLSBjbG9zZWQgYnkgdXNlcgorICAgIC8vICAgIC0gaW5pdCBmYWlsZWQKKyAgICAvLyAgICAtIGNhbWVyYSBkaXNjb25uZWN0ZWQKKyAgICBib29sIG1DbG9zZWQgPSBmYWxzZTsKKworICAgIC8vIFNldCBieSBDYW1lcmFEZXZpY2UgKHdoZW4gZXh0ZXJuYWwgY2FtZXJhIGlzIGRpc2Nvbm5lY3RlZCkKKyAgICBib29sIG1EaXNjb25uZWN0ZWQgPSBmYWxzZTsKKworICAgIHN0cnVjdCBBRVRyaWdnZXJDYW5jZWxPdmVycmlkZSB7CisgICAgICAgIGJvb2wgYXBwbHlBZUxvY2s7CisgICAgICAgIHVpbnQ4X3QgYWVMb2NrOworICAgICAgICBib29sIGFwcGx5QWVQcmVjYXB0dXJlVHJpZ2dlcjsKKyAgICAgICAgdWludDhfdCBhZVByZWNhcHR1cmVUcmlnZ2VyOworICAgIH07CisKKyAgICBjYW1lcmEzX2RldmljZV90KiBtRGV2aWNlOworICAgIHVpbnQzMl90IG1EZXZpY2VWZXJzaW9uOworICAgIGJvb2wgbUlzQUVMb2NrQXZhaWxhYmxlOworICAgIGJvb2wgbURlcml2ZVBvc3RSYXdTZW5zS2V5OworICAgIHVpbnQzMl90IG1OdW1QYXJ0aWFsUmVzdWx0czsKKyAgICAvLyBTdHJlYW0gSUQgLT4gQ2FtZXJhM1N0cmVhbSBjYWNoZQorICAgIHN0ZDo6bWFwPGludCwgQ2FtZXJhM1N0cmVhbT4gbVN0cmVhbU1hcDsKKworICAgIG11dGFibGUgTXV0ZXggbUluZmxpZ2h0TG9jazsgLy8gcHJvdGVjdGluZyBtSW5mbGlnaHRCdWZmZXJzIGFuZCBtQ2lyY3VsYXRpbmdCdWZmZXJzCisgICAgLy8gKHN0cmVhbUlELCBmcmFtZU51bWJlcikgLT4gaW5mbGlnaHQgYnVmZmVyIGNhY2hlCisgICAgc3RkOjptYXA8c3RkOjpwYWlyPGludCwgdWludDMyX3Q+LCBjYW1lcmEzX3N0cmVhbV9idWZmZXJfdD4gIG1JbmZsaWdodEJ1ZmZlcnM7CisKKyAgICAvLyAoZnJhbWVOdW1iZXIsIEFFVHJpZ2dlck92ZXJyaWRlKSAtPiBpbmZsaWdodCByZXF1ZXN0IEFFVHJpZ2dlck92ZXJyaWRlcworICAgIHN0ZDo6bWFwPHVpbnQzMl90LCBBRVRyaWdnZXJDYW5jZWxPdmVycmlkZT4gbUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzOworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1ldGFkYXRhIG1PdmVycmlkZW5SZXN1bHQ7CisgICAgc3RkOjptYXA8dWludDMyX3QsIGJvb2w+IG1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudDsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSBtT3ZlcnJpZGVuUmVxdWVzdDsKKworICAgIC8vIGJ1ZmZlcnMgY3VycmVudGx5IGNpY3VsYXRpbmcgYmV0d2VlbiBIQUwgYW5kIGNhbWVyYSBzZXJ2aWNlCisgICAgLy8ga2V5OiBidWZmZXJJZCBzZW50IHZpYSBISURMIGludGVyZmFjZQorICAgIC8vIHZhbHVlOiBpbXBvcnRlZCBidWZmZXJfaGFuZGxlX3QKKyAgICAvLyBCdWZmZXIgd2lsbCBiZSBpbXBvcnRlZCBkdXJpbmcgcHJvY2Vzc19jYXB0dXJlX3JlcXVlc3QgYW5kIHdpbGwgYmUgZnJlZWQKKyAgICAvLyB3aGVuIHRoZSBpdHMgc3RyZWFtIGlzIGRlbGV0ZWQgb3IgY2FtZXJhIGRldmljZSBzZXNzaW9uIGlzIGNsb3NlZAorICAgIHR5cGVkZWYgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQ2NF90LCBidWZmZXJfaGFuZGxlX3Q+IENpcmN1bGF0aW5nQnVmZmVyczsKKyAgICAvLyBTdHJlYW0gSUQgLT4gY2lyY3VsYXRpbmcgYnVmZmVycyBtYXAKKyAgICBzdGQ6Om1hcDxpbnQsIENpcmN1bGF0aW5nQnVmZmVycz4gbUNpcmN1bGF0aW5nQnVmZmVyczsKKworICAgIHN0YXRpYyBIYW5kbGVJbXBvcnRlciBzSGFuZGxlSW1wb3J0ZXI7CisKKyAgICBib29sIG1Jbml0RmFpbDsKKworICAgIGNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSBtRGV2aWNlSW5mbzsKKworICAgIHVzaW5nIFJlcXVlc3RNZXRhZGF0YVF1ZXVlID0gTWVzc2FnZVF1ZXVlPHVpbnQ4X3QsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+OworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXF1ZXN0TWV0YWRhdGFRdWV1ZT4gbVJlcXVlc3RNZXRhZGF0YVF1ZXVlOworICAgIHVzaW5nIFJlc3VsdE1ldGFkYXRhUXVldWUgPSBNZXNzYWdlUXVldWU8dWludDhfdCwga1N5bmNocm9uaXplZFJlYWRXcml0ZT47CisgICAgc3RkOjpzaGFyZWRfcHRyPFJlc3VsdE1ldGFkYXRhUXVldWU+IG1SZXN1bHRNZXRhZGF0YVF1ZXVlOworCisgICAgY2xhc3MgUmVzdWx0QmF0Y2hlciB7CisgICAgcHVibGljOgorICAgICAgICBSZXN1bHRCYXRjaGVyKGNvbnN0IHNwPElDYW1lcmFEZXZpY2VDYWxsYmFjaz4mIGNhbGxiYWNrKTsKKyAgICAgICAgdm9pZCBzZXROdW1QYXJ0aWFsUmVzdWx0cyh1aW50MzJfdCBuKTsKKyAgICAgICAgdm9pZCBzZXRCYXRjaGVkU3RyZWFtcyhjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiBzdHJlYW1zVG9CYXRjaCk7CisgICAgICAgIHZvaWQgc2V0UmVzdWx0TWV0YWRhdGFRdWV1ZShzdGQ6OnNoYXJlZF9wdHI8UmVzdWx0TWV0YWRhdGFRdWV1ZT4gcSk7CisKKyAgICAgICAgdm9pZCByZWdpc3RlckJhdGNoKGNvbnN0IGhpZGxfdmVjPENhcHR1cmVSZXF1ZXN0PiYgcmVxdWVzdHMpOworICAgICAgICB2b2lkIG5vdGlmeShOb3RpZnlNc2cmIG1zZyk7CisgICAgICAgIHZvaWQgcHJvY2Vzc0NhcHR1cmVSZXN1bHQoQ2FwdHVyZVJlc3VsdCYgcmVzdWx0KTsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0cnVjdCBJbmZsaWdodEJhdGNoIHsKKyAgICAgICAgICAgIC8vIFByb3RlY3QgYWNjZXNzIHRvIGVudGlyZSBzdHJ1Y3QuIEFjcXVpcmUgdGhpcyBsb2NrIGJlZm9yZSByZWFkL3dyaXRlIGFueSBkYXRhIG9yCisgICAgICAgICAgICAvLyBjYWxsaW5nIGFueSBtZXRob2RzLiBwcm9jZXNzQ2FwdHVyZVJlc3VsdCBhbmQgbm90aWZ5IHdpbGwgY29tcGV0ZSBmb3IgdGhpcyBsb2NrCisgICAgICAgICAgICAvLyBISURMIElQQ3MgbWlnaHQgYmUgaXNzdWVkIHdoaWxlIHRoZSBsb2NrIGlzIGhlbGQKKyAgICAgICAgICAgIE11dGV4IG1Mb2NrOworCisgICAgICAgICAgICBib29sIGFsbERlbGl2ZXJlZCgpIGNvbnN0OworCisgICAgICAgICAgICB1aW50MzJfdCBtRmlyc3RGcmFtZTsKKyAgICAgICAgICAgIHVpbnQzMl90IG1MYXN0RnJhbWU7CisgICAgICAgICAgICB1aW50MzJfdCBtQmF0Y2hTaXplOworCisgICAgICAgICAgICBib29sIG1TaHV0dGVyRGVsaXZlcmVkID0gZmFsc2U7CisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxOb3RpZnlNc2c+IG1TaHV0dGVyTXNnczsKKworICAgICAgICAgICAgc3RydWN0IEJ1ZmZlckJhdGNoIHsKKyAgICAgICAgICAgICAgICBib29sIG1EZWxpdmVyZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGN1cnJlbnRseSBhc3N1bWVzIGV2ZXJ5IGJhdGNoZWQgcmVxdWVzdCB3aWxsIG91dHB1dCB0byB0aGUgYmF0Y2hlZCBzdHJlYW0KKyAgICAgICAgICAgICAgICAvLyBhbmQgc2luY2UgSEFMIG11c3QgYWx3YXlzIHNlbmQgYnVmZmVycyBpbiBvcmRlciwgbm8gZnJhbWVOdW1iZXIgdHJhY2tpbmcgaXMKKyAgICAgICAgICAgICAgICAvLyBuZWVkZWQKKyAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxTdHJlYW1CdWZmZXI+IG1CdWZmZXJzOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIC8vIFN0cmVhbSBJRCAtPiBWaWRlb0JhdGNoCisgICAgICAgICAgICBzdGQ6OnVub3JkZXJlZF9tYXA8aW50LCBCdWZmZXJCYXRjaD4gbUJhdGNoQnVmczsKKworICAgICAgICAgICAgc3RydWN0IE1ldGFkYXRhQmF0Y2ggeworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgIChmcmFtZU51bWJlciwgbWV0YWRhdGEpCisgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8c3RkOjpwYWlyPHVpbnQzMl90LCBDYW1lcmFNZXRhZGF0YT4+IG1NZHM7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgLy8gUGFydGlhbCByZXN1bHQgSURzIHRoYXQgaGFzIGJlZW4gZGVsaXZlcmVkIHRvIGZyYW1ld29yaworICAgICAgICAgICAgdWludDMyX3QgbU51bVBhcnRpYWxSZXN1bHRzOworICAgICAgICAgICAgdWludDMyX3QgbVBhcnRpYWxSZXN1bHRQcm9ncmVzcyA9IDA7CisgICAgICAgICAgICAvLyBwYXJ0aWFsUmVzdWx0IC0+IE1ldGFkYXRhQmF0Y2gKKyAgICAgICAgICAgIHN0ZDo6bWFwPHVpbnQzMl90LCBNZXRhZGF0YUJhdGNoPiBtUmVzdWx0TWRzOworCisgICAgICAgICAgICAvLyBTZXQgdG8gdHJ1ZSB3aGVuIGJhdGNoIGlzIHJlbW92ZWQgZnJvbSBtSW5mbGlnaHRCYXRjaGVzCisgICAgICAgICAgICAvLyBwcm9jZXNzQ2FwdHVyZVJlc3VsdCBhbmQgbm90aWZ5IG11c3QgY2hlY2sgdGhpcyBmbGFnIGFmdGVyIGFjcXVpcmluZyBtTG9jayB0byBtYWtlCisgICAgICAgICAgICAvLyBzdXJlIHRoaXMgYmF0Y2ggaXNuJ3QgcmVtb3ZlZCB3aGlsZSB3YWl0aW5nIGZvciBtTG9jaworICAgICAgICAgICAgYm9vbCBtUmVtb3ZlZCA9IGZhbHNlOworICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgTk9UX0JBVENIRUQgPSAtMTsKKworICAgICAgICAvLyBHZXQgdGhlIGJhdGNoIGluZGV4IGFuZCBwb2ludGVyIHRvIEluZmxpZ2h0QmF0Y2ggKG51bGxwdHJ0IGlmIHRoZSBmcmFtZSBpcyBub3QgYmF0Y2hlZCkKKyAgICAgICAgLy8gQ2FsbGVyIG11c3QgYWNxdWlyZSB0aGUgSW5mbGlnaHRCYXRjaDo6bUxvY2sgYmVmb3JlIGFjY2Vzc2luZyB0aGUgSW5mbGlnaHRCYXRjaAorICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIEluZmxpZ2h0QmF0Y2ggaXMgcmVtb3ZlZCBmcm9tIG1JbmZsaWdodEJhdGNoZXMgYmVmb3JlIHRoZQorICAgICAgICAvLyBJbmZsaWdodEJhdGNoOjptTG9jayBpcyBhY3F1aXJlZCAobW9zdCBsaWtlbHkgY2F1c2VkIGJ5IGFuIGVycm9yIG5vdGlmaWNhdGlvbiksIHNvCisgICAgICAgIC8vIGNhbGxlciBtdXN0IGNoZWNrIEluZmxpZ2h0QmF0Y2g6Om1SZW1vdmVkIGZsYWcgYWZ0ZXIgdGhlIGxvY2sgaXMgYWNxdXJpZWQuCisgICAgICAgIC8vIFRoaXMgbWV0aG9kIHdpbGwgaG9sZCBSZXN1bHRCYXRjaGVyOjptTG9jayBicmllZmx5CisgICAgICAgIHN0ZDo6cGFpcjxpbnQsIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPj4gZ2V0QmF0Y2godWludDMyX3QgZnJhbWVOdW1iZXIpOworCisgICAgICAgIC8vIENoZWNrIGlmIHRoZSBmaXJzdCBiYXRjaCBpbiBtSW5mbGlnaHRCYXRjaGVzIGlzIHJlYWR5IHRvIGJlIHJlbW92ZWQsIGFuZCByZW1vdmUgaXQgaWYgc28KKyAgICAgICAgLy8gVGhpcyBtZXRob2Qgd2lsbCBob2xkIFJlc3VsdEJhdGNoZXI6Om1Mb2NrIGJyaWVmbHkKKyAgICAgICAgdm9pZCBjaGVja0FuZFJlbW92ZUZpcnN0QmF0Y2goKTsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHNlbmRYWFhYIG1ldGhvZHMgbXVzdCBiZSBjYWxsZWQgd2hpbGUgdGhlIEluZmxpZ2h0QmF0Y2g6Om1Mb2NrIGlzIGxvY2tlZAorICAgICAgICAvLyBISURMIElQQyBtZXRob2RzIHdpbGwgYmUgY2FsbGVkIGR1cmluZyB0aGVzZSBtZXRob2RzLgorICAgICAgICB2b2lkIHNlbmRCYXRjaFNodXR0ZXJDYnNMb2NrZWQoc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+IGJhdGNoKTsKKyAgICAgICAgLy8gc2VuZCBidWZmZXJzIGZvciBhbGwgYmF0Y2hlZCBzdHJlYW1zCisgICAgICAgIHZvaWQgc2VuZEJhdGNoQnVmZmVyc0xvY2tlZChzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2gpOworICAgICAgICAvLyBzZW5kIGJ1ZmZlcnMgZm9yIHNwZWNpZmllZCBzdHJlYW1zCisgICAgICAgIHZvaWQgc2VuZEJhdGNoQnVmZmVyc0xvY2tlZCgKKyAgICAgICAgICAgICAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2gsIGNvbnN0IHN0ZDo6dmVjdG9yPGludD4mIHN0cmVhbXMpOworICAgICAgICB2b2lkIHNlbmRCYXRjaE1ldGFkYXRhTG9ja2VkKAorICAgICAgICAgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCwgdWludDMyX3QgbGFzdFBhcnRpYWxSZXN1bHRJZHgpOworICAgICAgICAvLyBFbmQgb2Ygc2VuZFhYWFggbWV0aG9kcworCisgICAgICAgIC8vIGhlbHBlciBtZXRob2RzCisgICAgICAgIHZvaWQgZnJlZVJlbGVhc2VGZW5jZXMoaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4mKTsKKyAgICAgICAgdm9pZCBub3RpZnlTaW5nbGVNc2coTm90aWZ5TXNnJiBtc2cpOworICAgICAgICB2b2lkIHByb2Nlc3NPbmVDYXB0dXJlUmVzdWx0KENhcHR1cmVSZXN1bHQmIHJlc3VsdCk7CisgICAgICAgIHZvaWQgaW52b2tlUHJvY2Vzc0NhcHR1cmVSZXN1bHRDYWxsYmFjayhoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiAmcmVzdWx0cywgYm9vbCB0cnlXcml0ZUZtcSk7CisKKyAgICAgICAgLy8gUHJvdGVjdCBhY2Nlc3MgdG8gbUluZmxpZ2h0QmF0Y2hlcywgbU51bVBhcnRpYWxSZXN1bHRzIGFuZCBtU3RyZWFtc1RvQmF0Y2gKKyAgICAgICAgLy8gcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0LCBwcm9jZXNzQ2FwdHVyZVJlc3VsdCwgbm90aWZ5IHdpbGwgY29tcGV0ZSBmb3IgdGhpcyBsb2NrCisgICAgICAgIC8vIERvIE5PVCBpc3N1ZSBISURMIElQQ3Mgd2hpbGUgaG9sZGluZyB0aGlzIGxvY2sgKGV4Y2VwdCB3aGVuIEhBTCByZXBvcnRzIGVycm9yKQorICAgICAgICBtdXRhYmxlIE11dGV4IG1Mb2NrOworICAgICAgICBzdGQ6OmRlcXVlPHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPj4gbUluZmxpZ2h0QmF0Y2hlczsKKyAgICAgICAgdWludDMyX3QgbU51bVBhcnRpYWxSZXN1bHRzOworICAgICAgICBzdGQ6OnZlY3RvcjxpbnQ+IG1TdHJlYW1zVG9CYXRjaDsKKyAgICAgICAgY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiBtQ2FsbGJhY2s7CisgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxSZXN1bHRNZXRhZGF0YVF1ZXVlPiBtUmVzdWx0TWV0YWRhdGFRdWV1ZTsKKworICAgICAgICAvLyBQcm90ZWN0IGFnYWluc3QgaW52b2tlUHJvY2Vzc0NhcHR1cmVSZXN1bHRDYWxsYmFjaygpCisgICAgICAgIE11dGV4IG1Qcm9jZXNzQ2FwdHVyZVJlc3VsdExvY2s7CisKKyAgICB9IG1SZXN1bHRCYXRjaGVyOworCisgICAgc3RkOjp2ZWN0b3I8aW50PiBtVmlkZW9TdHJlYW1JZHM7CisKKyAgICBib29sIGluaXRpYWxpemUoKTsKKworICAgIFN0YXR1cyBpbml0U3RhdHVzKCkgY29uc3Q7CisKKyAgICAvLyBWYWxpZGF0ZSBhbmQgaW1wb3J0IHJlcXVlc3QncyBpbnB1dCBidWZmZXIgYW5kIGFjcXVpcmUgZmVuY2UKKyAgICBTdGF0dXMgaW1wb3J0UmVxdWVzdCgKKyAgICAgICAgICAgIGNvbnN0IENhcHR1cmVSZXF1ZXN0JiByZXF1ZXN0LAorICAgICAgICAgICAgaGlkbF92ZWM8YnVmZmVyX2hhbmRsZV90Kj4mIGFsbEJ1ZlB0cnMsCisgICAgICAgICAgICBoaWRsX3ZlYzxpbnQ+JiBhbGxGZW5jZXMpOworCisgICAgc3RhdGljIHZvaWQgY2xlYW51cEluZmxpZ2h0RmVuY2VzKAorICAgICAgICAgICAgaGlkbF92ZWM8aW50PiYgYWxsRmVuY2VzLCBzaXplX3QgbnVtRmVuY2VzKTsKKworICAgIHZvaWQgY2xlYW51cEJ1ZmZlcnNMb2NrZWQoaW50IGlkKTsKKworICAgIHZvaWQgdXBkYXRlQnVmZmVyQ2FjaGVzKGNvbnN0IGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiYgY2FjaGVzVG9SZW1vdmUpOworCisgICAgYW5kcm9pZF9kYXRhc3BhY2UgbWFwVG9MZWdhY3lEYXRhc3BhY2UoCisgICAgICAgICAgICBhbmRyb2lkX2RhdGFzcGFjZSBkYXRhU3BhY2UpIGNvbnN0OworCisgICAgYm9vbCBoYW5kbGVBZVByZWNhcHR1cmVDYW5jZWxSZXF1ZXN0TG9ja2VkKAorICAgICAgICAgICAgY29uc3QgY2FtZXJhM19jYXB0dXJlX3JlcXVlc3RfdCAmaGFsUmVxdWVzdCwKKyAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSAqc2V0dGluZ3MgLypvdXQqLywKKyAgICAgICAgICAgIEFFVHJpZ2dlckNhbmNlbE92ZXJyaWRlICpvdmVycmlkZSAvKm91dCovKTsKKworICAgIHZvaWQgb3ZlcnJpZGVSZXN1bHRGb3JQcmVjYXB0dXJlQ2FuY2VsTG9ja2VkKAorICAgICAgICAgICAgY29uc3QgQUVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUgJmFlVHJpZ2dlckNhbmNlbE92ZXJyaWRlLAorICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OmhlbHBlcjo6Q2FtZXJhTWV0YWRhdGEgKnNldHRpbmdzIC8qb3V0Ki8pOworCisgICAgU3RhdHVzIHByb2Nlc3NPbmVDYXB0dXJlUmVxdWVzdChjb25zdCBDYXB0dXJlUmVxdWVzdCYgcmVxdWVzdCk7CisgICAgLyoqCisgICAgICogU3RhdGljIGNhbGxiYWNrIGZvcndhcmRpbmcgbWV0aG9kcyBmcm9tIEhBTCB0byBpbnN0YW5jZQorICAgICAqLworICAgIHN0YXRpYyBjYWxsYmFja3NfcHJvY2Vzc19jYXB0dXJlX3Jlc3VsdF90IHNQcm9jZXNzQ2FwdHVyZVJlc3VsdDsKKyAgICBzdGF0aWMgY2FsbGJhY2tzX25vdGlmeV90IHNOb3RpZnk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWM18yCit9ICAvLyBuYW1lc3BhY2UgZGV2aWNlCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfREVWSUNFX1YzXzJfQ0FNRVJBREVWSUNFM1NFU1NJT05fSApkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VfM18yLmggYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZV8zXzIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTg2MDY3Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VfM18yLmgKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WM18yX0NBTUVSQURFVklDRV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WM18yX0NBTUVSQURFVklDRV9ICisKKyNpbmNsdWRlICJ1dGlscy9NdXRleC5oIgorI2luY2x1ZGUgIkNhbWVyYU1vZHVsZS5oIgorI2luY2x1ZGUgIkNhbWVyYU1ldGFkYXRhLmgiCisjaW5jbHVkZSAiQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgZGV2aWNlIHsKK25hbWVzcGFjZSBWM18yIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpSZXF1ZXN0VGVtcGxhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZVNlc3Npb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6Q2FtZXJhUmVzb3VyY2VDb3N0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpUb3JjaE1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNb2R1bGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6Ok11dGV4OworCisvKgorICogVGhlIGNhbWVyYSBkZXZpY2UgSEFMIGltcGxlbWVudGF0aW9uIGlzIG9wZW5lZCBsYXppbHkgKHZpYSB0aGUgb3BlbiBjYWxsKQorICovCitzdHJ1Y3QgQ2FtZXJhRGV2aWNlIDogcHVibGljIElDYW1lcmFEZXZpY2UgeworICAgIC8vIENhbGxlZCBieSBwcm92aWRlciBIQUwuIFByb3ZpZGVyIEhBTCBtdXN0IGVuc3VyZSB0aGUgdW5pcXVlbmVzcyBvZgorICAgIC8vIENhbWVyYURldmljZSBvYmplY3QgcGVyIGNhbWVyYUlkLCBvciB0aGVyZSBjb3VsZCBiZSBtdWx0aXBsZSBDYW1lcmFEZXZpY2UKKyAgICAvLyB0cnlpbmcgdG8gYWNjZXNzIHRoZSBzYW1lIHBoeXNpY2FsIGNhbWVyYS4KKyAgICAvLyBBbHNvLCBwcm92aWRlciB3aWxsIGhhdmUgdG8ga2VlcCB0cmFjayBvZiBhbGwgQ2FtZXJhRGV2aWNlIG9iamVjdHMgaW4KKyAgICAvLyBvcmRlciB0byBub3RpZnkgQ2FtZXJhRGV2aWNlIHdoZW4gdGhlIHVuZGVybHlpbmcgY2FtZXJhIGlzIGRldGFjaGVkCisgICAgQ2FtZXJhRGV2aWNlKHNwPENhbWVyYU1vZHVsZT4gbW9kdWxlLAorICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgY2FtZXJhSWQsCisgICAgICAgICAgICAgICAgIGNvbnN0IFNvcnRlZFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPj4mIGNhbWVyYURldmljZU5hbWVzKTsKKyAgICB+Q2FtZXJhRGV2aWNlKCk7CisgICAgLy8gQ2FsbGVyIG11c3QgdXNlIHRoaXMgbWV0aG9kIHRvIGNoZWNrIGlmIENhbWVyYURldmljZSBjdG9yIGZhaWxlZAorICAgIGJvb2wgaXNJbml0RmFpbGVkKCkgeyByZXR1cm4gbUluaXRGYWlsOyB9CisgICAgLy8gVXNlZCBieSBwcm92aWRlciBIQUwgdG8gc2lnbmFsIGV4dGVybmFsIGNhbWVyYSBkaXNjb25uZWN0ZWQKKyAgICB2b2lkIHNldENvbm5lY3Rpb25TdGF0dXMoYm9vbCBjb25uZWN0ZWQpOworCisgICAgLyogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlIGZvbGxvdy4gKi8KKyAgICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZCBjYW4gYmUgY2FsbGVkIHdpdGhvdXQgb3BlbmluZyB0aGUgYWN0dWFsIGNhbWVyYSBkZXZpY2UKKyAgICBSZXR1cm48dm9pZD4gZ2V0UmVzb3VyY2VDb3N0KGdldFJlc291cmNlQ29zdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENhbWVyYUNoYXJhY3RlcmlzdGljcyhnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3NfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHNldFRvcmNoTW9kZShUb3JjaE1vZGUgbW9kZSkgb3ZlcnJpZGU7CisKKyAgICAvLyBPcGVuIHRoZSBkZXZpY2UgSEFMIGFuZCBhbHNvIHJldHVybiBhIGRlZmF1bHQgY2FwdHVyZSBzZXNzaW9uCisgICAgUmV0dXJuPHZvaWQ+IG9wZW4oY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiYgY2FsbGJhY2ssIG9wZW5fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisKKyAgICAvLyBGb3J3YXJkIHRoZSBkdW1wIGNhbGwgdG8gdGhlIG9wZW5lZCBzZXNzaW9uLCBvciBkbyBub3RoaW5nCisgICAgUmV0dXJuPHZvaWQ+IGR1bXBTdGF0ZShjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSYgZmQpIG92ZXJyaWRlOworICAgIC8qIEVuZCBvZiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2UgKi8KKworcHJpdmF0ZToKKyAgICBjb25zdCBzcDxDYW1lcmFNb2R1bGU+IG1Nb2R1bGU7CisgICAgY29uc3Qgc3RkOjpzdHJpbmcgbUNhbWVyYUlkOworICAgIC8vIGNvbnN0IGFmdGVyIGN0b3IKKyAgICBpbnQgICBtQ2FtZXJhSWRJbnQ7CisgICAgaW50ICAgbURldmljZVZlcnNpb247CisgICAgYm9vbCAgbUluaXRGYWlsID0gZmFsc2U7CisgICAgLy8gU2V0IGJ5IHByb3ZpZGVyICh3aGVuIGV4dGVybmFsIGNhbWVyYSBpcyBjb25uZWN0ZWQvZGlzY29ubmVjdGVkKQorICAgIGJvb2wgIG1EaXNjb25uZWN0ZWQ7CisgICAgd3A8Q2FtZXJhRGV2aWNlU2Vzc2lvbj4gbVNlc3Npb24gPSBudWxscHRyOworCisgICAgY29uc3QgU29ydGVkVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiYgbUNhbWVyYURldmljZU5hbWVzOworCisgICAgLy8gZ2F0aW5nIGFjY2VzcyB0byBtU2Vzc2lvbiBhbmQgbURpc2Nvbm5lY3RlZAorICAgIG11dGFibGUgTXV0ZXggbUxvY2s7CisKKyAgICAvLyBjb252ZXJ0IGNvbnZlbnRpb25hbCBIQUwgc3RhdHVzIHRvIEhJREwgU3RhdHVzCisgICAgc3RhdGljIFN0YXR1cyBnZXRIaWRsU3RhdHVzKGludCk7CisKKyAgICBTdGF0dXMgaW5pdFN0YXR1cygpIGNvbnN0OworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjNfMgorfSAgLy8gbmFtZXNwYWNlIGRldmljZQorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WM18yX0NBTUVSQURFVklDRV9ICmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L2NvbnZlcnQuY3BwIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9jb252ZXJ0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODc4ZGViCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9jb252ZXJ0LmNwcApAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMi1jb252ZXJ0LWltcGwiCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiaW5jbHVkZS9jb252ZXJ0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBkZXZpY2UgeworbmFtZXNwYWNlIFYzXzIgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6RGF0YXNwYWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6QnVmZmVyVXNhZ2VGbGFnczsKKworYm9vbCBjb252ZXJ0RnJvbUhpZGwoY29uc3QgQ2FtZXJhTWV0YWRhdGEgJnNyYywgY29uc3QgY2FtZXJhX21ldGFkYXRhX3QqKiBkc3QpIHsKKyAgICBpZiAoc3JjLnNpemUoKSA9PSAwKSB7CisgICAgICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgbnVsbCBtZXRhZGF0YQorICAgICAgICAqZHN0ID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgY29uc3QgdWludDhfdCogZGF0YSA9IHNyYy5kYXRhKCk7CisgICAgLy8gc2FuaXR5IGNoZWNrIHRoZSBzaXplIG9mIENhbWVyYU1ldGFkYXRhIG1hdGNoIHVuZGVybHlpbmcgY2FtZXJhX21ldGFkYXRhX3QKKyAgICBpZiAoZ2V0X2NhbWVyYV9tZXRhZGF0YV9zaXplKChjYW1lcmFfbWV0YWRhdGFfdCopZGF0YSkgIT0gc3JjLnNpemUoKSkgeworICAgICAgICBBTE9HRSgiJXM6IGlucHV0IENhbWVyYU1ldGFkYXRhIGlzIGNvcnJ1cHQhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAqZHN0ID0gKGNhbWVyYV9tZXRhZGF0YV90KikgZGF0YTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworLy8gTm90ZTogZXhpc3RpbmcgZGF0YSBpbiBkc3Qgd2lsbCBiZSBnb25lLiBDYWxsZXIgc3RpbGwgb3ducyB0aGUgbWVtb3J5IG9mIHNyYwordm9pZCBjb252ZXJ0VG9IaWRsKGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90ICpzcmMsIENhbWVyYU1ldGFkYXRhKiBkc3QpIHsKKyAgICBpZiAoc3JjID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzaXplX3Qgc2l6ZSA9IGdldF9jYW1lcmFfbWV0YWRhdGFfc2l6ZShzcmMpOworICAgIGRzdC0+c2V0VG9FeHRlcm5hbCgodWludDhfdCAqKSBzcmMsIHNpemUpOworICAgIHJldHVybjsKK30KKwordm9pZCBjb252ZXJ0RnJvbUhpZGwoY29uc3QgU3RyZWFtICZzcmMsIENhbWVyYTNTdHJlYW0qIGRzdCkgeworICAgIGRzdC0+bUlkID0gc3JjLmlkOworICAgIGRzdC0+c3RyZWFtX3R5cGUgPSAoaW50KSBzcmMuc3RyZWFtVHlwZTsKKyAgICBkc3QtPndpZHRoID0gc3JjLndpZHRoOworICAgIGRzdC0+aGVpZ2h0ID0gc3JjLmhlaWdodDsKKyAgICBkc3QtPmZvcm1hdCA9IChpbnQpIHNyYy5mb3JtYXQ7CisgICAgZHN0LT5kYXRhX3NwYWNlID0gKGFuZHJvaWRfZGF0YXNwYWNlX3QpIHNyYy5kYXRhU3BhY2U7CisgICAgZHN0LT5yb3RhdGlvbiA9IChpbnQpIHNyYy5yb3RhdGlvbjsKKyAgICBkc3QtPnVzYWdlID0gKHVpbnQzMl90KSBzcmMudXNhZ2U7CisgICAgLy8gRmllbGRzIHRvIGJlIGZpbGxlZCBieSBIQUwgKG1heF9idWZmZXJzLCBwcml2KSBhcmUgaW5pdGlhbGl6ZWQgdG8gMAorICAgIGRzdC0+bWF4X2J1ZmZlcnMgPSAwOworICAgIGRzdC0+cHJpdiA9IDA7CisgICAgcmV0dXJuOworfQorCit2b2lkIGNvbnZlcnRUb0hpZGwoY29uc3QgQ2FtZXJhM1N0cmVhbSogc3JjLCBIYWxTdHJlYW0qIGRzdCkgeworICAgIGRzdC0+aWQgPSBzcmMtPm1JZDsKKyAgICBkc3QtPm92ZXJyaWRlRm9ybWF0ID0gKFBpeGVsRm9ybWF0KSBzcmMtPmZvcm1hdDsKKyAgICBkc3QtPm1heEJ1ZmZlcnMgPSBzcmMtPm1heF9idWZmZXJzOworICAgIGlmIChzcmMtPnN0cmVhbV90eXBlID09IENBTUVSQTNfU1RSRUFNX09VVFBVVCkgeworICAgICAgICBkc3QtPmNvbnN1bWVyVXNhZ2UgPSAoQnVmZmVyVXNhZ2VGbGFncykwOworICAgICAgICBkc3QtPnByb2R1Y2VyVXNhZ2UgPSAoQnVmZmVyVXNhZ2VGbGFncylzcmMtPnVzYWdlOworICAgIH0gZWxzZSBpZiAoc3JjLT5zdHJlYW1fdHlwZSA9PSBDQU1FUkEzX1NUUkVBTV9JTlBVVCkgeworICAgICAgICBkc3QtPnByb2R1Y2VyVXNhZ2UgPSAoQnVmZmVyVXNhZ2VGbGFncykwOworICAgICAgICBkc3QtPmNvbnN1bWVyVXNhZ2UgPSAoQnVmZmVyVXNhZ2VGbGFncylzcmMtPnVzYWdlOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vU2hvdWxkIG5vdCByZWFjaCBoZXJlIHBlciBjdXJyZW50IEhJREwgc3BlYywgYnV0IHdlIG1pZ2h0IGVuZCB1cCBhZGRpbmcKKyAgICAgICAgLy8gYmktZGlyZWN0aW9uYWwgc3RyZWFtIHRvIEhJREwuCisgICAgICAgIEFMT0dXKCIlczogU3RyZWFtIHR5cGUgJWQgaXMgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQhIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHNyYy0+c3RyZWFtX3R5cGUpOworICAgIH0KK30KKwordm9pZCBjb252ZXJ0VG9IaWRsKGNvbnN0IGNhbWVyYTNfc3RyZWFtX2NvbmZpZ3VyYXRpb25fdCYgc3JjLCBIYWxTdHJlYW1Db25maWd1cmF0aW9uKiBkc3QpIHsKKyAgICBkc3QtPnN0cmVhbXMucmVzaXplKHNyYy5udW1fc3RyZWFtcyk7CisgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHNyYy5udW1fc3RyZWFtczsgaSsrKSB7CisgICAgICAgIGNvbnZlcnRUb0hpZGwoc3RhdGljX2Nhc3Q8Q2FtZXJhM1N0cmVhbSo+KHNyYy5zdHJlYW1zW2ldKSwgJmRzdC0+c3RyZWFtc1tpXSk7CisgICAgfQorICAgIHJldHVybjsKK30KKwordm9pZCBjb252ZXJ0RnJvbUhpZGwoCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogYnVmUHRyLCBCdWZmZXJTdGF0dXMgc3RhdHVzLCBjYW1lcmEzX3N0cmVhbV90KiBzdHJlYW0sIGludCBhY3F1aXJlRmVuY2UsCisgICAgICAgIGNhbWVyYTNfc3RyZWFtX2J1ZmZlcl90KiBkc3QpIHsKKyAgICBkc3QtPnN0cmVhbSA9IHN0cmVhbTsKKyAgICBkc3QtPmJ1ZmZlciA9IGJ1ZlB0cjsKKyAgICBkc3QtPnN0YXR1cyA9IChpbnQpIHN0YXR1czsKKyAgICBkc3QtPmFjcXVpcmVfZmVuY2UgPSBhY3F1aXJlRmVuY2U7CisgICAgZHN0LT5yZWxlYXNlX2ZlbmNlID0gLTE7IC8vIG1lYW50IGZvciBIQUwgdG8gZmlsbCBpbgorfQorCit2b2lkIGNvbnZlcnRUb0hpZGwoY29uc3QgY2FtZXJhM19ub3RpZnlfbXNnKiBzcmMsIE5vdGlmeU1zZyogZHN0KSB7CisgICAgZHN0LT50eXBlID0gKE1zZ1R5cGUpIHNyYy0+dHlwZTsKKyAgICBzd2l0Y2ggKHNyYy0+dHlwZSkgeworICAgICAgICBjYXNlIENBTUVSQTNfTVNHX0VSUk9SOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFRoZSBjYW1lcmEzX3N0cmVhbV90KiBtdXN0IGJlIHRoZSBzYW1lIGFzIHdoYXQgd3JhcHBlciBIQUwgcGFzc2VkIHRvIGNvbnZlbnRpb25hbAorICAgICAgICAgICAgICAgIC8vIEhBTCwgb3IgdGhlIElEIGxvb2t1cCB3aWxsIHJldHVybiBnYXJiYWdlLiBDYWxsZXIgc2hvdWxkIHZhbGlkYXRlIHRoZSBJRCBoZXJlIGlzCisgICAgICAgICAgICAgICAgLy8gaW5kZWVkIG9uZSBvZiBhY3RpdmUgc3RyZWFtIElEcworICAgICAgICAgICAgICAgIENhbWVyYTNTdHJlYW0qIHN0cmVhbSA9IHN0YXRpY19jYXN0PENhbWVyYTNTdHJlYW0qPigKKyAgICAgICAgICAgICAgICAgICAgICAgIHNyYy0+bWVzc2FnZS5lcnJvci5lcnJvcl9zdHJlYW0pOworICAgICAgICAgICAgICAgIGRzdC0+bXNnLmVycm9yLmZyYW1lTnVtYmVyID0gc3JjLT5tZXNzYWdlLmVycm9yLmZyYW1lX251bWJlcjsKKyAgICAgICAgICAgICAgICBkc3QtPm1zZy5lcnJvci5lcnJvclN0cmVhbUlkID0gKHN0cmVhbSAhPSBudWxscHRyKSA/IHN0cmVhbS0+bUlkIDogLTE7CisgICAgICAgICAgICAgICAgZHN0LT5tc2cuZXJyb3IuZXJyb3JDb2RlID0gKEVycm9yQ29kZSkgc3JjLT5tZXNzYWdlLmVycm9yLmVycm9yX2NvZGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDQU1FUkEzX01TR19TSFVUVEVSOgorICAgICAgICAgICAgZHN0LT5tc2cuc2h1dHRlci5mcmFtZU51bWJlciA9IHNyYy0+bWVzc2FnZS5zaHV0dGVyLmZyYW1lX251bWJlcjsKKyAgICAgICAgICAgIGRzdC0+bXNnLnNodXR0ZXIudGltZXN0YW1wID0gc3JjLT5tZXNzYWdlLnNodXR0ZXIudGltZXN0YW1wOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiJXM6IEhJREwgdHlwZSBjb252ZXJpb24gZmFpbGVkLiBVbmtub3duIG1zZyB0eXBlIDB4JXgiLAorICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHNyYy0+dHlwZSk7CisgICAgfQorICAgIHJldHVybjsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjNfMgorfSAgLy8gbmFtZXNwYWNlIGRldmljZQorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9pbmNsdWRlL2NvbnZlcnQuaCBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvaW5jbHVkZS9jb252ZXJ0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY4OTFmMAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvaW5jbHVkZS9jb252ZXJ0LmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgSEFSRFdBUkVfSU5URVJGQUNFU19DQU1FUkFfREVWSUNFX1YzXzJfREVGQVVMVF9JTkNMVURFX0NPTlZFUlRfSF8KKworI2RlZmluZSBIQVJEV0FSRV9JTlRFUkZBQ0VTX0NBTUVSQV9ERVZJQ0VfVjNfMl9ERUZBVUxUX0lOQ0xVREVfQ09OVkVSVF9IXworCisjaW5jbHVkZSA8c2V0PgorCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL3R5cGVzLmg+CisjaW5jbHVkZSAiaGFyZHdhcmUvY2FtZXJhMy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgZGV2aWNlIHsKK25hbWVzcGFjZSBWM18yIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8vIFRoZSBjYW1lcmEzX3N0cmVhbV90IHNlbnQgdG8gY29udmVudGlvbmFsIEhBTC4gQWRkZWQgbUlkIGZpZWxkcyB0byBlbmFibGUgc3RyZWFtIElEIGxvb2t1cAorLy8gZnJvbXQgYSBkb3duY2FzdGVkIGNhbWVyYTNfc3RyZWFtCitzdHJ1Y3QgQ2FtZXJhM1N0cmVhbSA6IHB1YmxpYyBjYW1lcmEzX3N0cmVhbSB7CisgICAgaW50IG1JZDsKK307CisKKy8vICpkc3Qgd2lsbCBwb2ludCB0byB0aGUgZGF0YSBvd25lZCBieSBzcmMsIGJ1dCBzcmMgc3RpbGwgb3ducyB0aGUgZGF0YSBhZnRlciB0aGlzIGNhbGwgcmV0dXJucy4KK2Jvb2wgY29udmVydEZyb21IaWRsKGNvbnN0IENhbWVyYU1ldGFkYXRhICZzcmMsIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiogZHN0KTsKK3ZvaWQgY29udmVydFRvSGlkbChjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCogc3JjLCBDYW1lcmFNZXRhZGF0YSogZHN0KTsKKwordm9pZCBjb252ZXJ0RnJvbUhpZGwoY29uc3QgU3RyZWFtICZzcmMsIENhbWVyYTNTdHJlYW0qIGRzdCk7Cit2b2lkIGNvbnZlcnRUb0hpZGwoY29uc3QgQ2FtZXJhM1N0cmVhbSogc3JjLCBIYWxTdHJlYW0qIGRzdCk7CisKK3ZvaWQgY29udmVydEZyb21IaWRsKAorICAgICAgICBidWZmZXJfaGFuZGxlX3QqLCBCdWZmZXJTdGF0dXMsIGNhbWVyYTNfc3RyZWFtX3QqLCBpbnQgYWNxdWlyZUZlbmNlLCAvLyBpbnB1dHMKKyAgICAgICAgY2FtZXJhM19zdHJlYW1fYnVmZmVyX3QqIGRzdCk7CisKK3ZvaWQgY29udmVydFRvSGlkbChjb25zdCBjYW1lcmEzX3N0cmVhbV9jb25maWd1cmF0aW9uX3QmIHNyYywgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiogZHN0KTsKKworLy8gVGhlIGNhbWVyYTNfc3RyZWFtX3QqIGluIHNyYyBtdXN0IGJlIHRoZSBzYW1lIGFzIHdoYXQgd3JhcHBlciBIQUwgcGFzc2VkIHRvIGNvbnZlbnRpb25hbAorLy8gSEFMLCBvciB0aGUgSUQgbG9va3VwIHdpbGwgcmV0dXJuIGdhcmJhZ2UuIENhbGxlciBzaG91bGQgdmFsaWRhdGUgdGhlIElEIGluIEVycm9yTXNnIGlzCisvLyBpbmRlZWQgb25lIG9mIGFjdGl2ZSBzdHJlYW0gSURzCit2b2lkIGNvbnZlcnRUb0hpZGwoY29uc3QgY2FtZXJhM19ub3RpZnlfbXNnKiBzcmMsIE5vdGlmeU1zZyogZHN0KTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjNfMgorfSAgLy8gbmFtZXNwYWNlIGRldmljZQorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEhBUkRXQVJFX0lOVEVSRkFDRVNfQ0FNRVJBX0RFVklDRV9WM18yX0RFRkFVTFRfSU5DTFVERV9DT05WRVJUX0hfCmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi90eXBlcy5oYWwgYi9jYW1lcmEvZGV2aWNlLzMuMi90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc2ZTkyYQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL3R5cGVzLmhhbApAQCAtMCwwICsxLDk5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMjsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXM7CisKK3R5cGVkZWYgdmVjPHVpbnQ4X3Q+IENhbWVyYU1ldGFkYXRhOwordHlwZWRlZiBiaXRmaWVsZDxCdWZmZXJVc2FnZT4gQnVmZmVyVXNhZ2VGbGFnczsKK3R5cGVkZWYgYml0ZmllbGQ8RGF0YXNwYWNlPiBEYXRhc3BhY2VGbGFnczsKKworLyoqCisgKiBTdHJlYW1UeXBlOgorICoKKyAqIFRoZSB0eXBlIG9mIHRoZSBjYW1lcmEgc3RyZWFtLCB3aGljaCBkZWZpbmVzIHdoZXRoZXIgdGhlIGNhbWVyYSBIQUwgZGV2aWNlIGlzCisgKiB0aGUgcHJvZHVjZXIgb3IgdGhlIGNvbnN1bWVyIGZvciB0aGF0IHN0cmVhbSwgYW5kIGhvdyB0aGUgYnVmZmVycyBvZiB0aGUKKyAqIHN0cmVhbSByZWxhdGUgdG8gdGhlIG90aGVyIHN0cmVhbXMuCisgKi8KK2VudW0gU3RyZWFtVHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBUaGlzIHN0cmVhbSBpcyBhbiBvdXRwdXQgc3RyZWFtOyB0aGUgY2FtZXJhIEhBTCBkZXZpY2UgbXVzdCBmaWxsIGJ1ZmZlcnMKKyAgICAgKiBmcm9tIHRoaXMgc3RyZWFtIHdpdGggbmV3bHkgY2FwdHVyZWQgb3IgcmVwcm9jZXNzZWQgaW1hZ2UgZGF0YS4KKyAgICAgKi8KKyAgICBPVVRQVVQgPSAwLAorCisgICAgLyoqCisgICAgICogVGhpcyBzdHJlYW0gaXMgYW4gaW5wdXQgc3RyZWFtOyB0aGUgY2FtZXJhIEhBTCBkZXZpY2UgbXVzdCByZWFkIGJ1ZmZlcnMKKyAgICAgKiBmcm9tIHRoaXMgc3RyZWFtIGFuZCBzZW5kIHRoZW0gdGhyb3VnaCB0aGUgY2FtZXJhIHByb2Nlc3NpbmcgcGlwZWxpbmUsCisgICAgICogYXMgaWYgdGhlIGJ1ZmZlciB3YXMgYSBuZXdseSBjYXB0dXJlZCBpbWFnZSBmcm9tIHRoZSBpbWFnZXIuCisgICAgICoKKyAgICAgKiBUaGUgcGl4ZWwgZm9ybWF0IGZvciBpbnB1dCBzdHJlYW0gY2FuIGJlIGFueSBmb3JtYXQgcmVwb3J0ZWQgYnkKKyAgICAgKiBhbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAuIFRoZSBwaXhlbCBmb3JtYXQgb2YgdGhlCisgICAgICogb3V0cHV0IHN0cmVhbSB0aGF0IGlzIHVzZWQgdG8gcHJvZHVjZSB0aGUgcmVwcm9jZXNzaW5nIGRhdGEgbWF5IGJlIGFueQorICAgICAqIGZvcm1hdCByZXBvcnRlZCBieSBhbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucy4gVGhlCisgICAgICogc3VwcG9ydGVkIGlucHV0L291dHB1dCBzdHJlYW0gY29tYmluYXRpb25zIGRlcGVuZHMgdGhlIGNhbWVyYSBkZXZpY2UKKyAgICAgKiBjYXBhYmlsaXRpZXMsIHNlZSBhbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAgZm9yCisgICAgICogc3RyZWFtIG1hcCBkZXRhaWxzLgorICAgICAqCisgICAgICogVGhpcyBraW5kIG9mIHN0cmVhbSBpcyBnZW5lcmFsbHkgdXNlZCB0byByZXByb2Nlc3MgZGF0YSBpbnRvIGhpZ2hlcgorICAgICAqIHF1YWxpdHkgaW1hZ2VzICh0aGF0IG90aGVyd2lzZSB3b3VsZCBjYXVzZSBhIGZyYW1lIHJhdGUgcGVyZm9ybWFuY2UKKyAgICAgKiBsb3NzKSwgb3IgdG8gZG8gb2ZmLWxpbmUgcmVwcm9jZXNzaW5nLgorICAgICAqCisgICAgICogVGhlIHR5cGljYWwgdXNlIGNhc2VzIGFyZSBPUEFRVUUgKHR5cGljYWxseSBaU0wpIGFuZCBZVVYgcmVwcm9jZXNzaW5nLAorICAgICAqIHNlZSBTOC4yLCBTOC4zIGFuZCBTMTAgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKi8KKyAgICBJTlBVVCA9IDEKKworfTsKKworLyoqCisgKiBTdHJlYW1Sb3RhdGlvbjoKKyAqCisgKiBUaGUgcmVxdWlyZWQgY291bnRlcmNsb2Nrd2lzZSByb3RhdGlvbiBvZiBjYW1lcmEgc3RyZWFtLgorICovCitlbnVtIFN0cmVhbVJvdGF0aW9uIDogdWludDMyX3QgIHsKKyAgICAvKiogTm8gcm90YXRpb24gKi8KKyAgICBST1RBVElPTl8wID0gMCwKKworICAgIC8qKiBSb3RhdGUgYnkgOTAgZGVncmVlIGNvdW50ZXJjbG9ja3dpc2UgKi8KKyAgICBST1RBVElPTl85MCA9IDEsCisKKyAgICAvKiogUm90YXRlIGJ5IDE4MCBkZWdyZWUgY291bnRlcmNsb2Nrd2lzZSAqLworICAgIFJPVEFUSU9OXzE4MCA9IDIsCisKKyAgICAvKiogUm90YXRlIGJ5IDI3MCBkZWdyZWUgY291bnRlcmNsb2Nrd2lzZSAqLworICAgIFJPVEFUSU9OXzI3MCA9IDMKKworfTsKKworLyoqCisgKiBTdHJlYW1Db25maWd1cmF0aW9uTW9kZToKKyAqCisgKiBUaGlzIGRlZmluZXMgdGhlIGdlbmVyYWwgb3BlcmF0aW9uIG1vZGUgZm9yIHRoZSBIQUwgKGZvciBhIGdpdmVuIHN0cmVhbQorICogY29uZmlndXJhdGlvbikgd2hlcmUgbW9kZXMgYmVzaWRlcyBOT1JNQUwgaGF2ZSBkaWZmZXJlbnQgc2VtYW50aWNzLCBhbmQKKyAqIHVzdWFsbHkgbGltaXQgdGhlIGdlbmVyYWxpdHkgb2YgdGhlIEFQSSBpbiBleGNoYW5nZSBmb3IgaGlnaGVyIHBlcmZvcm1hbmNlIGluCisgKiBzb21lIHBhcnRpY3VsYXIgYXJlYS4KKyAqLworZW51bSBTdHJlYW1Db25maWd1cmF0aW9uTW9kZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBOb3JtYWwgc3RyZWFtIGNvbmZpZ3VyYXRpb24gb3BlcmF0aW9uIG1vZGUuIFRoaXMgaXMgdGhlIGRlZmF1bHQgY2FtZXJhCisgICAgICogb3BlcmF0aW9uIG1vZGUsIHdoZXJlIGFsbCBzZW1hbnRpY3Mgb2YgSEFMIEFQSXMgYW5kIG1ldGFkYXRhIGNvbnRyb2xzCisgICAgICogYXBwbHkuCisgICAgICovCisgICAgTk9STUFMX01PREUgPSAwLAorCisgICAgLyoqCisgICAgICogU3BlY2lhbCBjb25zdHJhaW5lZCBoaWdoIHNwZWVkIG9wZXJhdGlvbiBtb2RlIGZvciBkZXZpY2VzIHRoYXQgY2FuIG5vdAorICAgICAqIHN1cHBvcnQgaGlnaCBzcGVlZCBvdXRwdXQgaW4gTk9STUFMIG1vZGUuIEFsbCBzdHJlYW1zIGluIHRoaXMKKyAgICAgKiBjb25maWd1cmF0aW9uIGFyZSBvcGVyYXRpbmcgYXQgaGlnaCBzcGVlZCBtb2RlIGFuZCBoYXZlIGRpZmZlcmVudAorICAgICAqIGNoYXJhY3RlcmlzdGljcyBhbmQgbGltaXRhdGlvbnMgdG8gYWNoaWV2ZSBoaWdoIHNwZWVkIG91dHB1dC4gVGhlIE5PUk1BTAorICAgICAqIG1vZGUgY2FuIHN0aWxsIGJlIHVzZWQgZm9yIGhpZ2ggc3BlZWQgb3V0cHV0IGlmIHRoZSBIQUwgY2FuIHN1cHBvcnQgaGlnaAorICAgICAqIHNwZWVkIG91dHB1dCB3aGlsZSBzYXRpc2Z5aW5nIGFsbCB0aGUgc2VtYW50aWNzIG9mIEhBTCBBUElzIGFuZCBtZXRhZGF0YQorICAgICAqIGNvbnRyb2xzLiBJdCBpcyByZWNvbW1lbmRlZCBmb3IgdGhlIEhBTCB0byBzdXBwb3J0IGhpZ2ggc3BlZWQgb3V0cHV0IGluCisgICAgICogTk9STUFMIG1vZGUgKGJ5IGFkdmVydGlzaW5nIHRoZSBoaWdoIHNwZWVkIEZQUyByYW5nZXMgaW4KKyAgICAgKiBhbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVUYXJnZXRGcHNSYW5nZXMpIGlmIHBvc3NpYmxlLgorICAgICAqCisgICAgICogVGhpcyBtb2RlIGhhcyBiZWxvdyBsaW1pdGF0aW9ucy9yZXF1aXJlbWVudHM6CisgICAgICoKKyAgICAgKiAgIDEuIFRoZSBIQUwgbXVzdCBzdXBwb3J0IHVwIHRvIDIgc3RyZWFtcyB3aXRoIHNpemVzIHJlcG9ydGVkIGJ5CisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9ucy4KKyAgICAgKiAgIDIuIEluIHRoaXMgbW9kZSwgdGhlIEhBTCBpcyBleHBlY3RlZCB0byBvdXRwdXQgdXAgdG8gMTIwZnBzIG9yCisgICAgICogICAgICBoaWdoZXIuIFRoaXMgbW9kZSBtdXN0IHN1cHBvcnQgdGhlIHRhcmdldGVkIEZQUyByYW5nZSBhbmQgc2l6ZQorICAgICAqICAgICAgY29uZmlndXJhdGlvbnMgcmVwb3J0ZWQgYnkKKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zLgorICAgICAqICAgMy4gVGhlIEhBTCBtdXN0IHN1cHBvcnQgSU1QTEVNRU5UQVRJT05fREVGSU5FRCBvdXRwdXQKKyAgICAgKiAgICAgIHN0cmVhbSBmb3JtYXQuCisgICAgICogICA0LiBUbyBhY2hpZXZlIGVmZmljaWVudCBoaWdoIHNwZWVkIHN0cmVhbWluZywgdGhlIEhBTCBtYXkgaGF2ZSB0bworICAgICAqICAgICAgYWdncmVnYXRlIG11bHRpcGxlIGZyYW1lcyB0b2dldGhlciBhbmQgc2VuZCB0byBjYW1lcmEgZGV2aWNlIGZvcgorICAgICAqICAgICAgcHJvY2Vzc2luZyB3aGVyZSB0aGUgcmVxdWVzdCBjb250cm9scyBhcmUgc2FtZSBmb3IgYWxsIHRoZSBmcmFtZXMgaW4KKyAgICAgKiAgICAgIHRoaXMgYmF0Y2ggKGJhdGNoIG1vZGUpLiBUaGUgSEFMIG11c3Qgc3VwcG9ydCBtYXggYmF0Y2ggc2l6ZSBhbmQgdGhlCisgICAgICogICAgICBtYXggYmF0Y2ggc2l6ZSByZXF1aXJlbWVudHMgZGVmaW5lZCBieQorICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMuCisgICAgICogICA1LiBJbiB0aGlzIG1vZGUsIHRoZSBIQUwgbXVzdCBvdmVycmlkZSBhZU1vZGUsIGF3Yk1vZGUsIGFuZCBhZk1vZGUgdG8KKyAgICAgKiAgICAgIE9OLCBPTiwgYW5kIENPTlRJTlVPVVNfVklERU8sIHJlc3BlY3RpdmVseS4gQWxsIHBvc3QtcHJvY2Vzc2luZworICAgICAqICAgICAgYmxvY2sgbW9kZSBjb250cm9scyBtdXN0IGJlIG92ZXJyaWRkZW4gdG8gYmUgRkFTVC4gVGhlcmVmb3JlLCBubworICAgICAqICAgICAgbWFudWFsIGNvbnRyb2wgb2YgY2FwdHVyZSBhbmQgcG9zdC1wcm9jZXNzaW5nIHBhcmFtZXRlcnMgaXMKKyAgICAgKiAgICAgIHBvc3NpYmxlLiBBbGwgb3RoZXIgY29udHJvbHMgb3BlcmF0ZSB0aGUgc2FtZSBhcyB3aGVuCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wubW9kZSA9PSBBVVRPLiBUaGlzIG1lYW5zIHRoYXQgYWxsIG90aGVyCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuKiBmaWVsZHMgbXVzdCBjb250aW51ZSB0byB3b3JrLCBzdWNoIGFzCisgICAgICoKKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbgorICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmFlTG9jaworICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmF3YkxvY2sKKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9ucworICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlcgorICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIKKyAgICAgKgorICAgICAqICAgICAgT3V0c2lkZSBvZiBhbmRyb2lkLmNvbnRyb2wuKiwgdGhlIGZvbGxvd2luZyBjb250cm9scyBtdXN0IHdvcms6CisgICAgICoKKyAgICAgKiAgICAgIGFuZHJvaWQuZmxhc2gubW9kZSAoVE9SQ0ggbW9kZSBvbmx5LCBhdXRvbWF0aWMgZmxhc2ggZm9yIHN0aWxsCisgICAgICogICAgICAgICAgY2FwdHVyZSBtdXN0IG5vdCB3b3JrIHNpbmNlIGFlTW9kZSBpcyBPTikKKyAgICAgKiAgICAgIGFuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUgKGlmIGl0IGlzIHN1cHBvcnRlZCkKKyAgICAgKiAgICAgIGFuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24KKyAgICAgKiAgICAgIGFuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSAoaWYgaXQgaXMgc3VwcG9ydGVkKQorICAgICAqICAgNi4gVG8gcmVkdWNlIHRoZSBhbW91bnQgb2YgZGF0YSBwYXNzZWQgYWNyb3NzIHByb2Nlc3MgYm91bmRhcmllcyBhdAorICAgICAqICAgICAgaGlnaCBmcmFtZSByYXRlLCB3aXRoaW4gb25lIGJhdGNoLCBjYW1lcmEgZnJhbWV3b3JrIG9ubHkgcHJvcGFnYXRlcworICAgICAqICAgICAgdGhlIGxhc3Qgc2h1dHRlciBub3RpZnkgYW5kIHRoZSBsYXN0IGNhcHR1cmUgcmVzdWx0cyAoaW5jbHVkaW5nIHBhcnRpYWwKKyAgICAgKiAgICAgIHJlc3VsdHMgYW5kIGZpbmFsIHJlc3VsdCkgdG8gdGhlIGFwcC4gVGhlIHNodXR0ZXIgbm90aWZpZXMgYW5kIGNhcHR1cmUKKyAgICAgKiAgICAgIHJlc3VsdHMgZm9yIHRoZSBvdGhlciByZXF1ZXN0cyBpbiB0aGUgYmF0Y2ggYXJlIGRlcml2ZWQgYnkKKyAgICAgKiAgICAgIHRoZSBjYW1lcmEgZnJhbWV3b3JrLiBBcyBhIHJlc3VsdCwgdGhlIEhBTCBjYW4gcmV0dXJuIGVtcHR5IG1ldGFkYXRhCisgICAgICogICAgICBleGNlcHQgZm9yIHRoZSBsYXN0IHJlc3VsdCBpbiB0aGUgYmF0Y2guCisgICAgICoKKyAgICAgKiBGb3IgbW9yZSBkZXRhaWxzIGFib3V0IGhpZ2ggc3BlZWQgc3RyZWFtIHJlcXVpcmVtZW50cywgc2VlCisgICAgICogYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMgYW5kCisgICAgICogQ09OU1RSQUlORURfSElHSF9TUEVFRF9WSURFTyBjYXBhYmlsaXR5IGRlZmluZWQgaW4KKyAgICAgKiBhbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzLgorICAgICAqCisgICAgICogVGhpcyBtb2RlIG9ubHkgbmVlZHMgdG8gYmUgc3VwcG9ydGVkIGJ5IEhBTHMgdGhhdCBpbmNsdWRlCisgICAgICogQ09OU1RSQUlORURfSElHSF9TUEVFRF9WSURFTyBpbiB0aGUgYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcworICAgICAqIHN0YXRpYyBtZXRhZGF0YS4KKyAgICAgKi8KKyAgICBDT05TVFJBSU5FRF9ISUdIX1NQRUVEX01PREUgPSAxLAorCisgICAgLyoqCisgICAgICogQSBzZXQgb2YgdmVuZG9yLWRlZmluZWQgb3BlcmF0aW5nIG1vZGVzLCBmb3IgY3VzdG9tIGRlZmF1bHQgY2FtZXJhCisgICAgICogYXBwbGljYXRpb24gZmVhdHVyZXMgdGhhdCBjYW4ndCBiZSBpbXBsZW1lbnRlZCBpbiB0aGUgZnVsbHkgZmxleGlibGUgZmFzaGlvbgorICAgICAqIHJlcXVpcmVkIGZvciBOT1JNQUxfTU9ERS4KKyAgICAgKi8KKyAgICBWRU5ET1JfTU9ERV8wID0gMHg4MDAwLAorICAgIFZFTkRPUl9NT0RFXzEsCisgICAgVkVORE9SX01PREVfMiwKKyAgICBWRU5ET1JfTU9ERV8zLAorICAgIFZFTkRPUl9NT0RFXzQsCisgICAgVkVORE9SX01PREVfNSwKKyAgICBWRU5ET1JfTU9ERV82LAorICAgIFZFTkRPUl9NT0RFXzcKK307CisKKy8qKgorICogU3RyZWFtOgorICoKKyAqIEEgZGVzY3JpcHRvciBmb3IgYSBzaW5nbGUgY2FtZXJhIGlucHV0IG9yIG91dHB1dCBzdHJlYW0uIEEgc3RyZWFtIGlzIGRlZmluZWQKKyAqIGJ5IHRoZSBmcmFtZXdvcmsgYnkgaXRzIGJ1ZmZlciByZXNvbHV0aW9uIGFuZCBmb3JtYXQsIGFuZCBhZGRpdGlvbmFsbHkgYnkgdGhlCisgKiBIQUwgd2l0aCB0aGUgZ3JhbGxvYyB1c2FnZSBmbGFncyBhbmQgdGhlIG1heGltdW0gaW4tZmxpZ2h0IGJ1ZmZlciBjb3VudC4KKyAqCisgKiBJZiBhIGNvbmZpZ3VyZVN0cmVhbXMoKSBjYWxsIHJldHVybnMgYSBub24tZmF0YWwgZXJyb3IsIGFsbCBhY3RpdmUgc3RyZWFtcworICogcmVtYWluIHZhbGlkIGFzIGlmIGNvbmZpZ3VyZVN0cmVhbXMoKSBoYWQgbm90IGJlZW4gY2FsbGVkLgorICoKKyAqLworc3RydWN0IFN0cmVhbSB7CisgICAgLyoqCisgICAgICogU3RyZWFtIElEIC0gYSBub25uZWdhdGl2ZSBpbnRlZ2VyIGlkZW50aWZpZXIgZm9yIGEgc3RyZWFtLgorICAgICAqCisgICAgICogVGhlIGlkZW50aWNhbCBzdHJlYW0gSUQgbXVzdCByZWZlcmVuY2UgdGhlIHNhbWUgc3RyZWFtLCB3aXRoIHRoZSBzYW1lCisgICAgICogd2lkdGgvaGVpZ2h0L2Zvcm1hdCwgYWNyb3NzIGNvbnNlY3V0aXZlIGNhbGxzIHRvIGNvbmZpZ3VyZVN0cmVhbXMuCisgICAgICoKKyAgICAgKiBJZiBwcmV2aW91c2x5LXVzZWQgc3RyZWFtIElEIGlzIG5vdCB1c2VkIGluIGEgbmV3IGNhbGwgdG8KKyAgICAgKiBjb25maWd1cmVTdHJlYW1zLCB0aGVuIHRoYXQgc3RyZWFtIGlzIG5vIGxvbmdlciBhY3RpdmUuIFN1Y2ggYSBzdHJlYW0gSUQKKyAgICAgKiBtYXkgYmUgcmV1c2VkIGluIGEgZnV0dXJlIGNvbmZpZ3VyZVN0cmVhbXMgd2l0aCBhIG5ldworICAgICAqIHdpZHRoL2hlaWdodC9mb3JtYXQuCisgICAgICoKKyAgICAgKi8KKyAgICBpbnQzMl90IGlkOworCisgICAgLyoqCisgICAgICogVGhlIHR5cGUgb2YgdGhlIHN0cmVhbSAoaW5wdXQgdnMgb3V0cHV0LCBldGMpLgorICAgICAqLworICAgIFN0cmVhbVR5cGUgc3RyZWFtVHlwZTsKKworICAgIC8qKgorICAgICAqIFRoZSB3aWR0aCBpbiBwaXhlbHMgb2YgdGhlIGJ1ZmZlcnMgaW4gdGhpcyBzdHJlYW0KKyAgICAgKi8KKyAgICB1aW50MzJfdCB3aWR0aDsKKworICAgIC8qKgorICAgICAqIFRoZSBoZWlnaHQgaW4gcGl4ZWxzIG9mIHRoZSBidWZmZXJzIGluIHRoaXMgc3RyZWFtCisgICAgICovCisgICAgdWludDMyX3QgaGVpZ2h0OworCisgICAgLyoqCisgICAgICogVGhlIHBpeGVsIGZvcm1hdCBmb3IgdGhlIGJ1ZmZlcnMgaW4gdGhpcyBzdHJlYW0uCisgICAgICoKKyAgICAgKiBJZiBJTVBMRU1FTlRBVElPTl9ERUZJTkVEIGlzIHVzZWQsIHRoZW4gdGhlIHBsYXRmb3JtCisgICAgICogZ3JhbGxvYyBtb2R1bGUgbXVzdCBzZWxlY3QgYSBmb3JtYXQgYmFzZWQgb24gdGhlIHVzYWdlIGZsYWdzIHByb3ZpZGVkIGJ5CisgICAgICogdGhlIGNhbWVyYSBkZXZpY2UgYW5kIHRoZSBvdGhlciBlbmRwb2ludCBvZiB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICovCisgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjpQaXhlbEZvcm1hdCBmb3JtYXQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZ3JhbGxvYyB1c2FnZSBmbGFncyBmb3IgdGhpcyBzdHJlYW0sIGFzIG5lZWRlZCBieSB0aGUgY29uc3VtZXIgb2YKKyAgICAgKiB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICogVGhlIHVzYWdlIGZsYWdzIGZyb20gdGhlIHByb2R1Y2VyIGFuZCB0aGUgY29uc3VtZXIgbXVzdCBiZSBjb21iaW5lZAorICAgICAqIHRvZ2V0aGVyIGFuZCB0aGVuIHBhc3NlZCB0byB0aGUgcGxhdGZvcm0gZ3JhbGxvYyBIQUwgbW9kdWxlIGZvcgorICAgICAqIGFsbG9jYXRpbmcgdGhlIGdyYWxsb2MgYnVmZmVycyBmb3IgZWFjaCBzdHJlYW0uCisgICAgICoKKyAgICAgKiBUaGUgSEFMIG1heSB1c2UgdGhlc2UgY29uc3VtZXIgZmxhZ3MgdG8gZGVjaWRlIHN0cmVhbSBjb25maWd1cmF0aW9uLiBGb3IKKyAgICAgKiBzdHJlYW1UeXBlIElOUFVULCB0aGUgdmFsdWUgb2YgdGhpcyBmaWVsZCBpcyBhbHdheXMgMC4gRm9yIGFsbCBzdHJlYW1zCisgICAgICogcGFzc2VkIHZpYSBjb25maWd1cmVTdHJlYW1zKCksIHRoZSBIQUwgbXVzdCBzZXQgaXRzIG93bgorICAgICAqIGFkZGl0aW9uYWwgdXNhZ2UgZmxhZ3MgaW4gaXRzIG91dHB1dCBIYWxTdHJlYW1Db25maWd1cmF0aW9uLgorICAgICAqCisgICAgICogVGhlIHVzYWdlIGZsYWcgZm9yIGFuIG91dHB1dCBzdHJlYW0gbWF5IGJlIGJpdHdpc2UgY29tYmluYXRpb24gb2YgdXNhZ2UKKyAgICAgKiBmbGFncyBmb3IgbXVsdGlwbGUgY29uc3VtZXJzLCBmb3IgdGhlIHB1cnBvc2Ugb2Ygc2hhcmluZyBvbmUgY2FtZXJhCisgICAgICogc3RyZWFtIGJldHdlZW4gdGhvc2UgY29uc3VtZXJzLiBUaGUgSEFMIG11c3QgZmFpbCBjb25maWd1cmVTdHJlYW1zIGNhbGwKKyAgICAgKiB3aXRoIElMTEVHQUxfQVJHVU1FTlQgaWYgdGhlIGNvbWJpbmVkIGZsYWdzIGNhbm5vdCBiZSBzdXBwb3J0ZWQgZHVlIHRvCisgICAgICogaW1jb21wYXRpYmxlIGJ1ZmZlciBmb3JtYXQsIGRhdGFTcGFjZSwgb3Igb3RoZXIgaGFyZHdhcmUgbGltaXRhdGlvbnMuCisgICAgICovCisgICAgQnVmZmVyVXNhZ2VGbGFncyB1c2FnZTsKKworICAgIC8qKgorICAgICAqIEEgZmllbGQgdGhhdCBkZXNjcmliZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIuIFRoZSBmb3JtYXQgYW5kIGJ1ZmZlcgorICAgICAqIGRpbWVuc2lvbnMgZGVmaW5lIHRoZSBtZW1vcnkgbGF5b3V0IGFuZCBzdHJ1Y3R1cmUgb2YgdGhlIHN0cmVhbSBidWZmZXJzLAorICAgICAqIHdoaWxlIGRhdGFTcGFjZSBkZWZpbmVzIHRoZSBtZWFuaW5nIG9mIHRoZSBkYXRhIHdpdGhpbiB0aGUgYnVmZmVyLgorICAgICAqCisgICAgICogRm9yIG1vc3QgZm9ybWF0cywgZGF0YVNwYWNlIGRlZmluZXMgdGhlIGNvbG9yIHNwYWNlIG9mIHRoZSBpbWFnZSBkYXRhLgorICAgICAqIEluIGFkZGl0aW9uLCBmb3Igc29tZSBmb3JtYXRzLCBkYXRhU3BhY2UgaW5kaWNhdGVzIHdoZXRoZXIgaW1hZ2UtIG9yCisgICAgICogZGVwdGgtYmFzZWQgZGF0YSBpcyByZXF1ZXN0ZWQuIFNlZQorICAgICAqIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXMgZm9yIGRldGFpbHMgb2YgZm9ybWF0cyBhbmQKKyAgICAgKiB2YWxpZCBkYXRhU3BhY2UgdmFsdWVzIGZvciBlYWNoIGZvcm1hdC4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgbXVzdCB1c2UgdGhpcyBkYXRhU3BhY2UgdG8gY29uZmlndXJlIHRoZSBzdHJlYW0gdG8gdGhlIGNvcnJlY3QKKyAgICAgKiBjb2xvcnNwYWNlLCBvciB0byBzZWxlY3QgYmV0d2VlbiBjb2xvciBhbmQgZGVwdGggb3V0cHV0cyBpZgorICAgICAqIHN1cHBvcnRlZC4gVGhlIGRhdGFzcGFjZSB2YWx1ZXMgYXJlIHNldCB1c2luZyB0aGUgVjAgZGF0YXNwYWNlCisgICAgICogZGVmaW5pdGlvbnMuCisgICAgICovCisgICAgRGF0YXNwYWNlRmxhZ3MgZGF0YVNwYWNlOworCisgICAgLyoqCisgICAgICogVGhlIHJlcXVpcmVkIG91dHB1dCByb3RhdGlvbiBvZiB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICogVGhpcyBtdXN0IGJlIGluc3BlY3RlZCBieSBIQUwgYWxvbmcgd2l0aCBzdHJlYW0gd2lkdGggYW5kIGhlaWdodC4gRm9yCisgICAgICogZXhhbXBsZSwgaWYgdGhlIHJvdGF0aW9uIGlzIDkwIGRlZ3JlZSBhbmQgdGhlIHN0cmVhbSB3aWR0aCBhbmQgaGVpZ2h0IGlzCisgICAgICogNzIwIGFuZCAxMjgwIHJlc3BlY3RpdmVseSwgY2FtZXJhIHNlcnZpY2UgbXVzdCBzdXBwbHkgYnVmZmVycyBvZiBzaXplCisgICAgICogNzIweDEyODAsIGFuZCBIQUwgbXVzdCBjYXB0dXJlIGEgMTI4MHg3MjAgaW1hZ2UgYW5kIHJvdGF0ZSB0aGUgaW1hZ2UgYnkKKyAgICAgKiA5MCBkZWdyZWUgY291bnRlcmNsb2Nrd2lzZS4gVGhlIHJvdGF0aW9uIGZpZWxkIG11c3QgYmUgaWdub3JlZCB3aGVuIHRoZQorICAgICAqIHN0cmVhbSB0eXBlIGlzIGlucHV0LgorICAgICAqCisgICAgICogVGhlIEhBTCBtdXN0IGluc3BlY3QgdGhpcyBmaWVsZCBkdXJpbmcgc3RyZWFtIGNvbmZpZ3VyYXRpb24gYW5kIHJldHVybgorICAgICAqIElsbGVnYWxBcmd1bWVudCBpZiBIQUwgY2Fubm90IHBlcmZvcm0gc3VjaCByb3RhdGlvbi4gSEFMIG11c3QgYWx3YXlzCisgICAgICogc3VwcG9ydCBST1RBVElPTl8wLCBzbyBhIGNvbmZpZ3VyZVN0cmVhbXMoKSBjYWxsIG11c3Qgbm90IGZhaWwgZm9yCisgICAgICogdW5zdXBwb3J0ZWQgcm90YXRpb24gaWYgcm90YXRpb24gZmllbGQgb2YgYWxsIHN0cmVhbXMgaXMgUk9UQVRJT05fMC4KKyAgICAgKgorICAgICAqLworICAgIFN0cmVhbVJvdGF0aW9uIHJvdGF0aW9uOworCit9OworCisvKioKKyAqIFN0cmVhbUNvbmZpZ3VyYXRpb246CisgKgorICogQSBzdHJ1Y3R1cmUgb2Ygc3RyZWFtIGRlZmluaXRpb25zLCB1c2VkIGJ5IGNvbmZpZ3VyZVN0cmVhbXMoKS4gVGhpcworICogc3RydWN0dXJlIGRlZmluZXMgYWxsIHRoZSBvdXRwdXQgc3RyZWFtcyBhbmQgdGhlIHJlcHJvY2Vzc2luZyBpbnB1dAorICogc3RyZWFtIGZvciB0aGUgY3VycmVudCBjYW1lcmEgdXNlIGNhc2UuCisgKi8KK3N0cnVjdCBTdHJlYW1Db25maWd1cmF0aW9uIHsKKyAgICAvKioKKyAgICAgKiBBbiBhcnJheSBvZiBjYW1lcmEgc3RyZWFtIHBvaW50ZXJzLCBkZWZpbmluZyB0aGUgaW5wdXQvb3V0cHV0CisgICAgICogY29uZmlndXJhdGlvbiBmb3IgdGhlIGNhbWVyYSBIQUwgZGV2aWNlLgorICAgICAqCisgICAgICogQXQgbW9zdCBvbmUgaW5wdXQtY2FwYWJsZSBzdHJlYW0gbWF5IGJlIGRlZmluZWQuCisgICAgICogQXQgbGVhc3Qgb25lIG91dHB1dC1jYXBhYmxlIHN0cmVhbSBtdXN0IGJlIGRlZmluZWQuCisgICAgICovCisgICAgdmVjPFN0cmVhbT4gc3RyZWFtczsKKworICAgIC8qKgorICAgICAqIFRoZSBvcGVyYXRpb24gbW9kZSBvZiBzdHJlYW1zIGluIHRoaXMgY29uZmlndXJhdGlvbi4gVGhlIEhBTCBjYW4gdXNlIHRoaXMKKyAgICAgKiBtb2RlIGFzIGFuIGluZGljYXRvciB0byBzZXQgdGhlIHN0cmVhbSBwcm9wZXJ0eSAoZS5nLiwKKyAgICAgKiBIYWxTdHJlYW06Om1heEJ1ZmZlcnMpIGFwcHJvcHJpYXRlbHkuIEZvciBleGFtcGxlLCBpZiB0aGUKKyAgICAgKiBjb25maWd1cmF0aW9uIGlzCisgICAgICogQ09OU1RSQUlORURfSElHSF9TUEVFRF9NT0RFLCB0aGUgSEFMIG1heQorICAgICAqIHdhbnQgdG8gc2V0IGFzaWRlIG1vcmUgYnVmZmVycyBmb3IgYmF0Y2ggbW9kZSBvcGVyYXRpb24gKHNlZQorICAgICAqIGFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIGZvciBiYXRjaCBtb2RlCisgICAgICogZGVmaW5pdGlvbikuCisgICAgICoKKyAgICAgKi8KKyAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZSBvcGVyYXRpb25Nb2RlOworCit9OworCisvKioKKyAqIEhhbFN0cmVhbToKKyAqCisgKiBUaGUgY2FtZXJhIEhBTCdzIHJlc3BvbnNlIHRvIGVhY2ggcmVxdWVzdGVkIHN0cmVhbSBjb25maWd1cmF0aW9uLgorICoKKyAqIFRoZSBIQUwgbWF5IHNwZWNpZnkgdGhlIGRlc2lyZWQgZm9ybWF0LCBtYXhpbXVtIGJ1ZmZlcnMsIGFuZAorICogdXNhZ2UgZmxhZ3MgZm9yIGVhY2ggc3RyZWFtLgorICoKKyAqLworc3RydWN0IEhhbFN0cmVhbSB7CisgICAgLyoqCisgICAgICogU3RyZWFtIElEIC0gYSBub25uZWdhdGl2ZSBpbnRlZ2VyIGlkZW50aWZpZXIgZm9yIGEgc3RyZWFtLgorICAgICAqCisgICAgICogVGhlIElEIG11c3QgYmUgb25lIG9mIHRoZSBzdHJlYW0gSURzIHBhc3NlZCBpbnRvIGNvbmZpZ3VyZVN0cmVhbXMuCisgICAgICovCisgICAgaW50MzJfdCBpZDsKKworICAgIC8qKgorICAgICAqIEFuIG92ZXJyaWRlIHBpeGVsIGZvcm1hdCBmb3IgdGhlIGJ1ZmZlcnMgaW4gdGhpcyBzdHJlYW0uCisgICAgICoKKyAgICAgKiBUaGUgSEFMIG11c3QgcmVzcGVjdCB0aGUgcmVxdWVzdGVkIGZvcm1hdCBpbiBTdHJlYW0gdW5sZXNzIGl0IGlzCisgICAgICogSU1QTEVNRU5UQVRJT05fREVGSU5FRCwgaW4gd2hpY2ggY2FzZSB0aGUgb3ZlcnJpZGUgZm9ybWF0IGhlcmUgbXVzdCBiZQorICAgICAqIHVzZWQgYnkgdGhlIGNsaWVudCBpbnN0ZWFkLCBmb3IgdGhpcyBzdHJlYW0uIFRoaXMgYWxsb3dzIGNyb3NzLXBsYXRmb3JtCisgICAgICogSEFMcyB0byB1c2UgYSBzdGFuZGFyZCBmb3JtYXQgc2luY2UgSU1QTEVNRU5UQVRJT05fREVGSU5FRCBmb3JtYXRzIG9mdGVuCisgICAgICogcmVxdWlyZSBkZXZpY2Utc3BlY2lmaWMgaW5mb3JtYXRpb24uIEluIGFsbCBvdGhlciBjYXNlcywgdGhlCisgICAgICogb3ZlcnJpZGVGb3JtYXQgbXVzdCBtYXRjaCB0aGUgcmVxdWVzdGVkIGZvcm1hdC4KKyAgICAgKgorICAgICAqIFdoZW4gSEFMX1BJWEVMX0ZPUk1BVF9JTVBMRU1FTlRBVElPTl9ERUZJTkVEIGlzIHVzZWQsIHRoZW4gdGhlIHBsYXRmb3JtCisgICAgICogZ3JhbGxvYyBtb2R1bGUgbXVzdCBzZWxlY3QgYSBmb3JtYXQgYmFzZWQgb24gdGhlIHVzYWdlIGZsYWdzIHByb3ZpZGVkIGJ5CisgICAgICogdGhlIGNhbWVyYSBkZXZpY2UgYW5kIHRoZSBvdGhlciBlbmRwb2ludCBvZiB0aGUgc3RyZWFtLgorICAgICAqLworICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6UGl4ZWxGb3JtYXQgb3ZlcnJpZGVGb3JtYXQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZ3JhbGxvYyB1c2FnZSBmbGFncyBmb3IgdGhpcyBzdHJlYW0sIGFzIG5lZWRlZCBieSB0aGUgSEFMLgorICAgICAqCisgICAgICogRm9yIG91dHB1dCBzdHJlYW1zLCB0aGVzZSBhcmUgdGhlIEhBTCdzIHByb2R1Y2VyIHVzYWdlIGZsYWdzLiBGb3IgaW5wdXQKKyAgICAgKiBzdHJlYW1zLCB0aGVzZSBhcmUgdGhlIEhBTCdzIGNvbnN1bWVyIHVzYWdlIGZsYWdzLiBUaGUgdXNhZ2UgZmxhZ3MgZnJvbQorICAgICAqIHRoZSBwcm9kdWNlciBhbmQgdGhlIGNvbnN1bWVyIG11c3QgYmUgY29tYmluZWQgdG9nZXRoZXIgYW5kIHRoZW4gcGFzc2VkCisgICAgICogdG8gdGhlIHBsYXRmb3JtIGdyYXBoaWNzIGFsbG9jYXRvciBIQUwgZm9yIGFsbG9jYXRpbmcgdGhlIGdyYWxsb2MgYnVmZmVycworICAgICAqIGZvciBlYWNoIHN0cmVhbS4KKyAgICAgKgorICAgICAqIElmIHRoZSBzdHJlYW0ncyB0eXBlIGlzIElOUFVULCB0aGVuIHByb2R1Y2VyVXNhZ2UgbXVzdCBiZSAwLCBhbmQKKyAgICAgKiBjb25zdW1lclVzYWdlIG11c3QgYmUgc2V0LiBGb3Igb3RoZXIgdHlwZXMsIHByb2R1Y2VyVXNhZ2UgbXVzdCBiZSBzZXQsCisgICAgICogYW5kIGNvbnN1bWVyVXNhZ2UgbXVzdCBiZSAwLgorICAgICAqLworICAgIEJ1ZmZlclVzYWdlRmxhZ3MgcHJvZHVjZXJVc2FnZTsKKyAgICBCdWZmZXJVc2FnZUZsYWdzIGNvbnN1bWVyVXNhZ2U7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgYnVmZmVycyB0aGUgSEFMIGRldmljZSBtYXkgbmVlZCB0byBoYXZlIGRlcXVldWVkIGF0CisgICAgICogdGhlIHNhbWUgdGltZS4gVGhlIEhBTCBkZXZpY2UgbWF5IG5vdCBoYXZlIG1vcmUgYnVmZmVycyBpbi1mbGlnaHQgZnJvbQorICAgICAqIHRoaXMgc3RyZWFtIHRoYW4gdGhpcyB2YWx1ZS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBtYXhCdWZmZXJzOworCit9OworCisvKioKKyAqIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb246CisgKgorICogQSBzdHJ1Y3R1cmUgb2Ygc3RyZWFtIGRlZmluaXRpb25zLCByZXR1cm5lZCBieSBjb25maWd1cmVTdHJlYW1zKCkuIFRoaXMKKyAqIHN0cnVjdHVyZSBkZWZpbmVzIHRoZSBIQUwncyBkZXNpcmVkIHBhcmFtZXRlcnMgZm9yIGVhY2ggc3RyZWFtLgorICoKKyAqIEFsbCBzdHJlYW1zIHRoYXQgd2VyZSBkZWZpbmVkIGluIHRoZSBpbnB1dCB0byBjb25maWd1cmVTdHJlYW1zKCkgbXVzdCBoYXZlIGEKKyAqIGNvcnJlc3BvbmRpbmcgZW50cnkgaW4gdGhpcyBzdHJ1Y3R1cmUgd2hlbiByZXR1cm5lZCBieSBjb25maWd1cmVTdHJlYW1zKCkuCisgKi8KK3N0cnVjdCBIYWxTdHJlYW1Db25maWd1cmF0aW9uIHsKKyAgICB2ZWM8SGFsU3RyZWFtPiBzdHJlYW1zOworfTsKKworLyoqCisgKiBCdWZmZXJTdGF0dXM6CisgKgorICogVGhlIGN1cnJlbnQgc3RhdHVzIG9mIGEgc2luZ2xlIHN0cmVhbSBidWZmZXIuCisgKi8KK2VudW0gQnVmZmVyU3RhdHVzIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFRoZSBidWZmZXIgaXMgaW4gYSBub3JtYWwgc3RhdGUsIGFuZCBjYW4gYmUgdXNlZCBhZnRlciB3YWl0aW5nIG9uIGl0cworICAgICAqIHN5bmMgZmVuY2UuCisgICAgICovCisgICAgT0sgPSAwLAorCisgICAgLyoqCisgICAgICogVGhlIGJ1ZmZlciBkb2VzIG5vdCBjb250YWluIHZhbGlkIGRhdGEsIGFuZCB0aGUgZGF0YSBpbiBpdCBtdXN0IG5vdCBiZQorICAgICAqIHVzZWQuIFRoZSBzeW5jIGZlbmNlIG11c3Qgc3RpbGwgYmUgd2FpdGVkIG9uIGJlZm9yZSByZXVzaW5nIHRoZSBidWZmZXIuCisgICAgICovCisgICAgRVJST1IgPSAxCit9OworCisvKioKKyAqIFN0cmVhbUJ1ZmZlcjoKKyAqCisgKiBBIHNpbmdsZSBidWZmZXIgZnJvbSBhIGNhbWVyYTMgc3RyZWFtLiBJdCBpbmNsdWRlcyBhIGhhbmRsZSB0byBpdHMgcGFyZW50CisgKiBzdHJlYW0sIHRoZSBoYW5kbGUgdG8gdGhlIGdyYWxsb2MgYnVmZmVyIGl0c2VsZiwgYW5kIHN5bmMgZmVuY2VzCisgKgorICogVGhlIGJ1ZmZlciBkb2VzIG5vdCBzcGVjaWZ5IHdoZXRoZXIgaXQgaXMgdG8gYmUgdXNlZCBmb3IgaW5wdXQgb3Igb3V0cHV0OworICogdGhhdCBpcyBkZXRlcm1pbmVkIGJ5IGl0cyBwYXJlbnQgc3RyZWFtIHR5cGUgYW5kIGhvdyB0aGUgYnVmZmVyIGlzIHBhc3NlZCB0bworICogdGhlIEhBTCBkZXZpY2UuCisgKi8KK3N0cnVjdCBTdHJlYW1CdWZmZXIgeworICAgIC8qKgorICAgICAqIFRoZSBJRCBvZiB0aGUgc3RyZWFtIHRoaXMgYnVmZmVyIGlzIGFzc29jaWF0ZWQgd2l0aC4gLTEgaW5kaWNhdGVzIGFuCisgICAgICogaW52YWxpZCAoZW1wdHkpIFN0cmVhbUJ1ZmZlciwgaW4gd2hpY2ggY2FzZSBidWZmZXIgbXVzdCBhbHNvIHBvaW50IHRvCisgICAgICogbnVsbCBhbmQgYnVmZmVySWQgbXVzdCBiZSAwLgorICAgICAqLworICAgIGludDMyX3Qgc3RyZWFtSWQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdW5pcXVlIElEIG9mIHRoZSBidWZmZXIgd2l0aGluIHRoaXMgU3RyZWFtQnVmZmVyLiAwIGluZGljYXRlcyB0aGlzCisgICAgICogU3RyZWFtQnVmZmVyIGNvbnRhaW5zIG5vIGJ1ZmZlci4KKyAgICAgKiBGb3IgU3RyZWFtQnVmZmVycyBzZW50IHRvIHRoZSBIQUwgaW4gYSBDYXB0dXJlUmVxdWVzdCwgdGhpcyBJRCB1bmlxdWVseQorICAgICAqIGlkZW50aWZpZXMgYSBidWZmZXIuIFdoZW4gYSBidWZmZXIgaXMgc2VudCB0byBIQUwgZm9yIHRoZSBmaXJzdCB0aW1lLAorICAgICAqIGJvdGggYnVmZmVySWQgYW5kIGJ1ZmZlciBoYW5kbGUgbXVzdCBiZSBmaWxsZWQuIEhBTCBtdXN0IGtlZXAgdHJhY2sgb2YKKyAgICAgKiB0aGUgbWFwcGluZyBiZXR3ZWVuIGJ1ZmZlcklkIGFuZCBjb3JyZXNwb25kaW5nIGJ1ZmZlciB1bnRpbCB0aGUKKyAgICAgKiBjb3JyZXNwb25kaW5nIHN0cmVhbSBpcyByZW1vdmVkIGZyb20gc3RyZWFtIGNvbmZpZ3VyYXRpb24gb3IgdW50aWwgY2FtZXJhCisgICAgICogZGV2aWNlIHNlc3Npb24gaXMgY2xvc2VkLiBBZnRlciB0aGUgZmlyc3QgdGltZSBhIGJ1ZmZlciBpcyBpbnRyb2R1Y2VkIHRvCisgICAgICogSEFMLCBpbiB0aGUgZnV0dXJlIGNhbWVyYSBzZXJ2aWNlIG11c3QgcmVmZXIgdG8gdGhlIHNhbWUgYnVmZmVyIHVzaW5nCisgICAgICogb25seSBidWZmZXJJZCwgYW5kIGtlZXAgdGhlIGJ1ZmZlciBoYW5kbGUgbnVsbC4KKyAgICAgKi8KKyAgICB1aW50NjRfdCBidWZmZXJJZDsKKworICAgIC8qKgorICAgICAqIFRoZSBncmFwaGljcyBidWZmZXIgaGFuZGxlIHRvIHRoZSBidWZmZXIuCisgICAgICoKKyAgICAgKiBGb3IgU3RyZWFtQnVmZmVycyBzZW50IHRvIHRoZSBIQUwgaW4gYSBDYXB0dXJlUmVxdWVzdCwgaWYgdGhlIGJ1ZmZlcklkCisgICAgICogaXMgbm90IHNlZW4gYnkgdGhlIEhBTCBiZWZvcmUsIHRoaXMgYnVmZmVyIGhhbmRsZSBpcyBndWFyYW50ZWVkIHRvIGJlIGEKKyAgICAgKiB2YWxpZCBoYW5kbGUgdG8gYSBncmFwaGljcyBidWZmZXIsIHdpdGggZGltZW5zaW9ucyBhbmQgZm9ybWF0IG1hdGNoaW5nCisgICAgICogdGhhdCBvZiB0aGUgc3RyZWFtLiBJZiB0aGUgYnVmZmVySWQgaGFzIGJlZW4gc2VudCB0byB0aGUgSEFMIGJlZm9yZSwgdGhpcworICAgICAqIGJ1ZmZlciBoYW5kbGUgbXVzdCBiZSBudWxsIGFuZCBIQUwgbXVzdCBsb29rIHVwIHRoZSBhY3R1YWwgYnVmZmVyIGhhbmRsZQorICAgICAqIHRvIHVzZSBmcm9tIGl0cyBvd24gYnVmZmVySWQgdG8gYnVmZmVyIGhhbmRsZSBtYXAuCisgICAgICoKKyAgICAgKiBGb3IgU3RyZWFtQnVmZmVycyByZXR1cm5lZCBpbiBhIENhcHR1cmVSZXN1bHQsIHRoaXMgbXVzdCBiZSBudWxsLCBzaW5jZQorICAgICAqIHRoZSBoYW5kbGUgdG8gdGhlIGJ1ZmZlciBpcyBhbHJlYWR5IGtub3duIHRvIHRoZSBjbGllbnQgKHNpbmNlIHRoZSBjbGllbnQKKyAgICAgKiBzZW50IGl0IGluIHRoZSBtYXRjaGluZyBDYXB0dXJlUmVxdWVzdCksIGFuZCB0aGUgaGFuZGxlIGNhbiBiZSBpZGVudGlmaWVkCisgICAgICogYnkgdGhlIGNvbWJpbmF0aW9uIG9mIGZyYW1lIG51bWJlciBhbmQgc3RyZWFtIElELgorICAgICAqLworICAgIGhhbmRsZSBidWZmZXI7CisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IHN0YXRlIG9mIHRoZSBidWZmZXIuIFRoZSBmcmFtZXdvcmsgbXVzdCBub3QgcGFzcyBidWZmZXJzIHRvIHRoZQorICAgICAqIEhBTCB0aGF0IGFyZSBpbiBhbiBlcnJvciBzdGF0ZS4gSW4gY2FzZSBhIGJ1ZmZlciBjb3VsZCBub3QgYmUgZmlsbGVkIGJ5CisgICAgICogdGhlIEhBTCwgaXQgbXVzdCBoYXZlIGl0cyBzdGF0dXMgc2V0IHRvIEVSUk9SIHdoZW4gcmV0dXJuZWQgdG8gdGhlCisgICAgICogZnJhbWV3b3JrIHdpdGggcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKS4KKyAgICAgKi8KKyAgICBCdWZmZXJTdGF0dXMgc3RhdHVzOworCisgICAgLyoqCisgICAgICogVGhlIGFjcXVpcmUgc3luYyBmZW5jZSBmb3IgdGhpcyBidWZmZXIuIFRoZSBIQUwgbXVzdCB3YWl0IG9uIHRoaXMgZmVuY2UKKyAgICAgKiBmZCBiZWZvcmUgYXR0ZW1wdGluZyB0byByZWFkIGZyb20gb3Igd3JpdGUgdG8gdGhpcyBidWZmZXIuCisgICAgICoKKyAgICAgKiBJbiBhIGJ1ZmZlciBpbmNsdWRlZCBpbiBhIENhcHR1cmVSZXF1ZXN0LCB0aGUgY2xpZW50IG1heSBzZXQgdGhpcyB0byBudWxsCisgICAgICogdG8gaW5kaWNhdGUgdGhhdCBubyB3YWl0aW5nIGlzIG5lY2Vzc2FyeSBmb3IgdGhpcyBidWZmZXIuCisgICAgICoKKyAgICAgKiBXaGVuIHRoZSBIQUwgcmV0dXJucyBhbiBpbnB1dCBvciBvdXRwdXQgYnVmZmVyIHRvIHRoZSBmcmFtZXdvcmsgd2l0aAorICAgICAqIHByb2Nlc3NDYXB0dXJlUmVzdWx0KCksIHRoZSBhY3F1aXJlRmVuY2UgbXVzdCBiZSBzZXQgdG8gbnVsbC4gSWYgdGhlIEhBTAorICAgICAqIG5ldmVyIHdhaXRzIG9uIHRoZSBhY3F1aXJlRmVuY2UgZHVlIHRvIGFuIGVycm9yIGluIGZpbGxpbmcgb3IgcmVhZGluZyBhCisgICAgICogYnVmZmVyLCB3aGVuIGNhbGxpbmcgcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKSB0aGUgSEFMIG11c3Qgc2V0IHRoZQorICAgICAqIHJlbGVhc2VGZW5jZSBvZiB0aGUgYnVmZmVyIHRvIGJlIHRoZSBhY3F1aXJlRmVuY2UgcGFzc2VkIHRvIGl0IGJ5IHRoZQorICAgICAqIGNsaWVudC4gVGhpcyBhbGxvd3MgdGhlIGNsaWVudCB0byB3YWl0IG9uIHRoZSBmZW5jZSBiZWZvcmUgcmV1c2luZyB0aGUKKyAgICAgKiBidWZmZXIuCisgICAgICovCisgICAgaGFuZGxlIGFjcXVpcmVGZW5jZTsKKworICAgIC8qKgorICAgICAqIFRoZSByZWxlYXNlIHN5bmMgZmVuY2UgZm9yIHRoaXMgYnVmZmVyLiBUaGUgSEFMIG11c3Qgc2V0IHRoaXMgdG8gYSB2YWxpZAorICAgICAqIGZlbmNlIGZkIHdoZW4gcmV0dXJuaW5nIHRoZSBpbnB1dCBidWZmZXIgb3Igb3V0cHV0IGJ1ZmZlcnMgdG8gdGhlIGNsaWVudAorICAgICAqIGluIGEgQ2FwdHVyZVJlc3VsdCwgb3Igc2V0IGl0IHRvIG51bGwgdG8gaW5kaWNhdGUgdGhhdCBubyB3YWl0aW5nIGlzCisgICAgICogcmVxdWlyZWQgZm9yIHRoaXMgYnVmZmVyLgorICAgICAqCisgICAgICogVGhlIGNsaWVudCBtdXN0IHNldCB0aGlzIHRvIGJlIG51bGwgZm9yIGFsbCBidWZmZXJzIGluY2x1ZGVkIGluIGEKKyAgICAgKiBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QgY2FsbC4KKyAgICAgKgorICAgICAqIEFmdGVyIHNpZ25hbGluZyB0aGUgcmVsZWFzZUZlbmNlIGZvciB0aGlzIGJ1ZmZlciwgdGhlIEhBTAorICAgICAqIG11c3Qgbm90IG1ha2UgYW55IGZ1cnRoZXIgYXR0ZW1wdHMgdG8gYWNjZXNzIHRoaXMgYnVmZmVyIGFzIHRoZQorICAgICAqIG93bmVyc2hpcCBoYXMgYmVlbiBmdWxseSB0cmFuc2ZlcnJlZCBiYWNrIHRvIHRoZSBjbGllbnQuCisgICAgICoKKyAgICAgKiBJZiB0aGlzIGlzIG51bGwsIHRoZW4gdGhlIG93bmVyc2hpcCBvZiB0aGlzIGJ1ZmZlciBpcyB0cmFuc2ZlcnJlZCBiYWNrCisgICAgICogaW1tZWRpYXRlbHkgdXBvbiB0aGUgY2FsbCBvZiBwcm9jZXNzQ2FwdHVyZVJlc3VsdC4KKyAgICAgKi8KKyAgICBoYW5kbGUgcmVsZWFzZUZlbmNlOworCit9OworCisvKioKKyAqIENhbWVyYUJsb2I6CisgKgorICogVHJhbnNwb3J0IGhlYWRlciBmb3IgY2FtZXJhIGJsb2IgdHlwZXM7IGdlbmVyYWxseSBjb21wcmVzc2VkIEpQRUcgYnVmZmVycyBpbgorICogb3V0cHV0IHN0cmVhbXMuCisgKgorICogVG8gY2FwdHVyZSBKUEVHIGltYWdlcywgYSBzdHJlYW0gaXMgY3JlYXRlZCB1c2luZyB0aGUgcGl4ZWwgZm9ybWF0CisgKiBIQUxfUElYRUxfRk9STUFUX0JMT0IgYW5kIGRhdGFzcGFjZSBIQUxfREFUQVNQQUNFX1YwX0pGSUYuIFRoZSBidWZmZXIgc2l6ZQorICogZm9yIHRoZSBzdHJlYW0gaXMgY2FsY3VsYXRlZCBieSB0aGUgZnJhbWV3b3JrLCBiYXNlZCBvbiB0aGUgc3RhdGljIG1ldGFkYXRhCisgKiBmaWVsZCBhbmRyb2lkLmpwZWcubWF4U2l6ZS4gU2luY2UgY29tcHJlc3NlZCBKUEVHIGltYWdlcyBhcmUgb2YgdmFyaWFibGUKKyAqIHNpemUsIHRoZSBIQUwgbmVlZHMgdG8gaW5jbHVkZSB0aGUgZmluYWwgc2l6ZSBvZiB0aGUgY29tcHJlc3NlZCBpbWFnZSB1c2luZworICogdGhpcyBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBvdXRwdXQgc3RyZWFtIGJ1ZmZlci4gVGhlIGNhbWVyYSBibG9iIElEIGZpZWxkIG11c3QKKyAqIGJlIHNldCB0byBDYW1lcmFCbG9iSWQ6OkpQRUcuCisgKgorICogVGhlIHRyYW5zcG9ydCBoZWFkZXIgbXVzdCBiZSBhdCB0aGUgZW5kIG9mIHRoZSBKUEVHIG91dHB1dCBzdHJlYW0KKyAqIGJ1ZmZlci4gVGhhdCBtZWFucyB0aGUganBlZ0Jsb2JJZCBtdXN0IHN0YXJ0IGF0IGJ5dGVbYnVmZmVyX3NpemUgLQorICogc2l6ZW9mKENhbWVyYUJsb2IpXSwgd2hlcmUgdGhlIGJ1ZmZlcl9zaXplIGlzIHRoZSBzaXplIG9mIGdyYWxsb2MKKyAqIGJ1ZmZlci4gQW55IEhBTCB1c2luZyB0aGlzIHRyYW5zcG9ydCBoZWFkZXIgbXVzdCBhY2NvdW50IGZvciBpdCBpbgorICogYW5kcm9pZC5qcGVnLm1heFNpemUuIFRoZSBKUEVHIGRhdGEgaXRzZWxmIHN0YXJ0cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQorICogYnVmZmVyIGFuZCBtdXN0IGJlIGJsb2JTaXplIGJ5dGVzIGxvbmcuCisgKi8KK2VudW0gQ2FtZXJhQmxvYklkIDogdWludDE2X3QgeworICAgIEpQRUcgPSAweDAwRkYsCit9OworCitzdHJ1Y3QgQ2FtZXJhQmxvYiB7CisgICAgQ2FtZXJhQmxvYklkIGJsb2JJZDsKKworICAgIHVpbnQzMl90IGJsb2JTaXplOworfTsKKworLyoqCisgKiBNc2dUeXBlOgorICoKKyAqIEluZGljYXRlcyB0aGUgdHlwZSBvZiBtZXNzYWdlIHNlbnQsIHdoaWNoIHNwZWNpZmllcyB3aGljaCBtZW1iZXIgb2YgdGhlCisgKiBtZXNzYWdlIHVuaW9uIGlzIHZhbGlkLgorICoKKyAqLworZW51bSBNc2dUeXBlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIEFuIGVycm9yIGhhcyBvY2N1cnJlZC4gTm90aWZ5TXNnOjpNZXNzYWdlOjpFcnJvciBjb250YWlucyB0aGUKKyAgICAgKiBlcnJvciBpbmZvcm1hdGlvbi4KKyAgICAgKi8KKyAgICBFUlJPUiA9IDEsCisKKyAgICAvKioKKyAgICAgKiBUaGUgZXhwb3N1cmUgb2YgYSBnaXZlbiByZXF1ZXN0IG9yIHByb2Nlc3NpbmcgYSByZXByb2Nlc3MgcmVxdWVzdCBoYXMKKyAgICAgKiBiZWd1bi4gTm90aWZ5TXNnOjpNZXNzYWdlOjpTaHV0dGVyIGNvbnRhaW5zIHRoZSBpbmZvcm1hdGlvbgorICAgICAqIHRoZSBjYXB0dXJlLgorICAgICAqLworICAgIFNIVVRURVIgPSAyCit9OworCisvKioKKyAqIERlZmluZWQgZXJyb3IgY29kZXMgZm9yIE1zZ1R5cGU6OkVSUk9SCisgKi8KK2VudW0gRXJyb3JDb2RlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIEEgc2VyaW91cyBmYWlsdXJlIG9jY3VyZWQuIE5vIGZ1cnRoZXIgZnJhbWVzIG9yIGJ1ZmZlciBzdHJlYW1zIG11c3QKKyAgICAgKiBiZSBwcm9kdWNlZCBieSB0aGUgZGV2aWNlLiBEZXZpY2UgbXVzdCBiZSB0cmVhdGVkIGFzIGNsb3NlZC4gVGhlCisgICAgICogY2xpZW50IG11c3QgcmVvcGVuIHRoZSBkZXZpY2UgdG8gdXNlIGl0IGFnYWluLiBUaGUgZnJhbWVOdW1iZXIgZmllbGQKKyAgICAgKiBpcyB1bnVzZWQuCisgICAgICovCisgICAgRVJST1JfREVWSUNFID0gMSwKKworICAgIC8qKgorICAgICAqIEFuIGVycm9yIGhhcyBvY2N1cnJlZCBpbiBwcm9jZXNzaW5nIGEgcmVxdWVzdC4gTm8gb3V0cHV0IChtZXRhZGF0YSBvcgorICAgICAqIGJ1ZmZlcnMpIG11c3QgYmUgcHJvZHVjZWQgZm9yIHRoaXMgcmVxdWVzdC4gVGhlIGZyYW1lTnVtYmVyIGZpZWxkCisgICAgICogc3BlY2lmaWVzIHdoaWNoIHJlcXVlc3QgaGFzIGJlZW4gZHJvcHBlZC4gU3Vic2VxdWVudCByZXF1ZXN0cyBhcmUKKyAgICAgKiB1bmFmZmVjdGVkLCBhbmQgdGhlIGRldmljZSByZW1haW5zIG9wZXJhdGlvbmFsLgorICAgICAqLworICAgIEVSUk9SX1JFUVVFU1QgPSAyLAorCisgICAgLyoqCisgICAgICogQW4gZXJyb3IgaGFzIG9jY3VycmVkIGluIHByb2R1Y2luZyBhbiBvdXRwdXQgcmVzdWx0IG1ldGFkYXRhIGJ1ZmZlcgorICAgICAqIGZvciBhIHJlcXVlc3QsIGJ1dCBvdXRwdXQgc3RyZWFtIGJ1ZmZlcnMgZm9yIGl0IG11c3Qgc3RpbGwgYmUKKyAgICAgKiBhdmFpbGFibGUuIFN1YnNlcXVlbnQgcmVxdWVzdHMgYXJlIHVuYWZmZWN0ZWQsIGFuZCB0aGUgZGV2aWNlIHJlbWFpbnMKKyAgICAgKiBvcGVyYXRpb25hbC4gVGhlIGZyYW1lTnVtYmVyIGZpZWxkIHNwZWNpZmllcyB0aGUgcmVxdWVzdCBmb3Igd2hpY2gKKyAgICAgKiByZXN1bHQgbWV0YWRhdGEgd29uJ3QgYmUgYXZhaWxhYmxlLgorICAgICAqLworICAgIEVSUk9SX1JFU1VMVCA9IDMsCisKKyAgICAvKioKKyAgICAgKiBBbiBlcnJvciBoYXMgb2NjdXJyZWQgaW4gcGxhY2luZyBhbiBvdXRwdXQgYnVmZmVyIGludG8gYSBzdHJlYW0gZm9yIGEKKyAgICAgKiByZXF1ZXN0LiBUaGUgZnJhbWUgbWV0YWRhdGEgYW5kIG90aGVyIGJ1ZmZlcnMgbWF5IHN0aWxsIGJlCisgICAgICogYXZhaWxhYmxlLiBTdWJzZXF1ZW50IHJlcXVlc3RzIGFyZSB1bmFmZmVjdGVkLCBhbmQgdGhlIGRldmljZSByZW1haW5zCisgICAgICogb3BlcmF0aW9uYWwuIFRoZSBmcmFtZU51bWJlciBmaWVsZCBzcGVjaWZpZXMgdGhlIHJlcXVlc3QgZm9yIHdoaWNoIHRoZQorICAgICAqIGJ1ZmZlciB3YXMgZHJvcHBlZCwgYW5kIGVycm9yU3RyZWFtSWQgaW5kaWNhdGVzIHRoZSBzdHJlYW0KKyAgICAgKiB0aGF0IGRyb3BwZWQgdGhlIGZyYW1lLgorICAgICAqLworICAgIEVSUk9SX0JVRkZFUiA9IDQsCit9OworCisvKioKKyAqIEVycm9yTXNnOgorICoKKyAqIE1lc3NhZ2UgY29udGVudHMgZm9yIE1zZ1R5cGU6OkVSUk9SCisgKi8KK3N0cnVjdCBFcnJvck1zZyB7CisgICAgLyoqCisgICAgICogRnJhbWUgbnVtYmVyIG9mIHRoZSByZXF1ZXN0IHRoZSBlcnJvciBhcHBsaWVzIHRvLiAwIGlmIHRoZSBmcmFtZSBudW1iZXIKKyAgICAgKiBpc24ndCBhcHBsaWNhYmxlIHRvIHRoZSBlcnJvci4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBmcmFtZU51bWJlcjsKKworICAgIC8qKgorICAgICAqIFBvaW50ZXIgdG8gdGhlIHN0cmVhbSB0aGF0IGhhZCBhIGZhaWx1cmUuIC0xIGlmIHRoZSBzdHJlYW0gaXNuJ3QKKyAgICAgKiBhcHBsaWNhYmxlIHRvIHRoZSBlcnJvci4KKyAgICAgKi8KKyAgICBpbnQzMl90IGVycm9yU3RyZWFtSWQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29kZSBmb3IgdGhpcyBlcnJvci4KKyAgICAgKi8KKyAgICBFcnJvckNvZGUgZXJyb3JDb2RlOworCit9OworCisvKioKKyAqIFNodXR0ZXJNc2c6CisgKgorICogTWVzc2FnZSBjb250ZW50cyBmb3IgTXNnVHlwZTo6U0hVVFRFUgorICovCitzdHJ1Y3QgU2h1dHRlck1zZyB7CisgICAgLyoqCisgICAgICogRnJhbWUgbnVtYmVyIG9mIHRoZSByZXF1ZXN0IHRoYXQgaGFzIGJlZ3VuIGV4cG9zdXJlIG9yIHJlcHJvY2Vzc2luZy4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBmcmFtZU51bWJlcjsKKworICAgIC8qKgorICAgICAqIFRpbWVzdGFtcCBmb3IgdGhlIHN0YXJ0IG9mIGNhcHR1cmUuIEZvciBhIHJlcHJvY2VzcyByZXF1ZXN0LCB0aGlzIG11c3QKKyAgICAgKiBiZSBpbnB1dCBpbWFnZSdzIHN0YXJ0IG9mIGNhcHR1cmUuIFRoaXMgbXVzdCBtYXRjaCB0aGUgY2FwdHVyZSByZXN1bHQKKyAgICAgKiBtZXRhZGF0YSdzIHNlbnNvciBleHBvc3VyZSBzdGFydCB0aW1lc3RhbXAuCisgICAgICovCisgICAgdWludDY0X3QgdGltZXN0YW1wOworCit9OworCisvKioKKyAqIE5vdGlmeU1zZzoKKyAqCisgKiBUaGUgbWVzc2FnZSBzdHJ1Y3R1cmUgc2VudCB0byBJQ2FtZXJhRGV2aWNlM0NhbGxiYWNrOjpub3RpZnkoKQorICovCitzdHJ1Y3QgTm90aWZ5TXNnIHsKKyAgICAvKioKKyAgICAgKiBUaGUgbWVzc2FnZSB0eXBlLgorICAgICAqLworICAgIE1zZ1R5cGUgdHlwZTsKKworICAgIHVuaW9uIE1lc3NhZ2UgeworICAgICAgICAvKioKKyAgICAgICAgICogRXJyb3IgbWVzc2FnZSBjb250ZW50cy4gVmFsaWQgaWYgdHlwZSBpcyBNc2dUeXBlOjpFUlJPUgorICAgICAgICAgKi8KKyAgICAgICAgRXJyb3JNc2cgZXJyb3I7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNodXR0ZXIgbWVzc2FnZSBjb250ZW50cy4gVmFsaWQgaWYgdHlwZSBpcyBNc2dUeXBlOjpTSFVUVEVSCisgICAgICAgICAqLworICAgICAgICBTaHV0dGVyTXNnIHNodXR0ZXI7CisgICAgfSBtc2c7CisKK307CisKKy8qKgorICogUmVxdWVzdFRlbXBsYXRlOgorICoKKyAqIEF2YWlsYWJsZSB0ZW1wbGF0ZSB0eXBlcyBmb3IKKyAqIElDYW1lcmFEZXZpY2U6OmNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MoKQorICovCitlbnVtIFJlcXVlc3RUZW1wbGF0ZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBjYW1lcmEgcHJldmlldyBvcGVyYXRpb24gd2l0aCAzQSBvbiBhdXRvLgorICAgICAqLworICAgIFBSRVZJRVcgPSAxLAorCisgICAgLyoqCisgICAgICogU3RhbmRhcmQgY2FtZXJhIGhpZ2gtcXVhbGl0eSBzdGlsbCBjYXB0dXJlIHdpdGggM0EgYW5kIGZsYXNoIG9uIGF1dG8uCisgICAgICovCisgICAgU1RJTExfQ0FQVFVSRSA9IDIsCisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCB2aWRlbyByZWNvcmRpbmcgcGx1cyBwcmV2aWV3IHdpdGggM0Egb24gYXV0bywgdG9yY2ggb2ZmLgorICAgICAqLworICAgIFZJREVPX1JFQ09SRCA9IDMsCisKKyAgICAvKioKKyAgICAgKiBIaWdoLXF1YWxpdHkgc3RpbGwgY2FwdHVyZSB3aGlsZSByZWNvcmRpbmcgdmlkZW8uIEFwcGxpY2F0aW9ucyB0eXBpY2FsbHkKKyAgICAgKiBpbmNsdWRlIHByZXZpZXcsIHZpZGVvIHJlY29yZCwgYW5kIGZ1bGwtcmVzb2x1dGlvbiBZVVYgb3IgSlBFRyBzdHJlYW1zIGluCisgICAgICogcmVxdWVzdC4gTXVzdCBub3QgY2F1c2Ugc3R1dHRlcmluZyBvbiB2aWRlbyBzdHJlYW0uIDNBIG9uIGF1dG8uCisgICAgICovCisgICAgVklERU9fU05BUFNIT1QgPSA0LAorCisgICAgLyoqCisgICAgICogWmVyby1zaHV0dGVyLWxhZyBtb2RlLiBBcHBsaWNhdGlvbiB0eXBpY2FsbHkgcmVxdWVzdCBwcmV2aWV3IGFuZAorICAgICAqIGZ1bGwtcmVzb2x1dGlvbiBkYXRhIGZvciBlYWNoIGZyYW1lLCBhbmQgcmVwcm9jZXNzIGl0IHRvIEpQRUcgd2hlbiBhCisgICAgICogc3RpbGwgaW1hZ2UgaXMgcmVxdWVzdGVkIGJ5IHVzZXIuIFNldHRpbmdzIG11c3QgcHJvdmlkZSBoaWdoZXN0LXF1YWxpdHkKKyAgICAgKiBmdWxsLXJlc29sdXRpb24gaW1hZ2VzIHdpdGhvdXQgY29tcHJvbWlzaW5nIHByZXZpZXcgZnJhbWUgcmF0ZS4gM0Egb24KKyAgICAgKiBhdXRvLgorICAgICAqLworICAgIFpFUk9fU0hVVFRFUl9MQUcgPSA1LAorCisgICAgLyoqCisgICAgICogQSBiYXNpYyB0ZW1wbGF0ZSBmb3IgZGlyZWN0IGFwcGxpY2F0aW9uIGNvbnRyb2wgb2YgY2FwdHVyZQorICAgICAqIHBhcmFtZXRlcnMuIEFsbCBhdXRvbWF0aWMgY29udHJvbCBpcyBkaXNhYmxlZCAoYXV0by1leHBvc3VyZSwgYXV0by13aGl0ZQorICAgICAqIGJhbGFuY2UsIGF1dG8tZm9jdXMpLCBhbmQgcG9zdC1wcm9jZXNzaW5nIHBhcmFtZXRlcnMgYXJlIHNldCB0byBwcmV2aWV3CisgICAgICogcXVhbGl0eS4gVGhlIG1hbnVhbCBjYXB0dXJlIHBhcmFtZXRlcnMgKGV4cG9zdXJlLCBzZW5zaXRpdml0eSwgZXRjLikKKyAgICAgKiBhcmUgc2V0IHRvIHJlYXNvbmFibGUgZGVmYXVsdHMsIGJ1dCBtYXkgYmUgb3ZlcnJpZGRlbiBieSB0aGUKKyAgICAgKiBhcHBsaWNhdGlvbiBkZXBlbmRpbmcgb24gdGhlIGludGVuZGVkIHVzZSBjYXNlLgorICAgICAqLworICAgIE1BTlVBTCA9IDYsCisKKyAgICAvKioKKyAgICAgKiBGaXJzdCB2YWx1ZSBmb3IgdmVuZG9yLWRlZmluZWQgcmVxdWVzdCB0ZW1wbGF0ZXMKKyAgICAgKi8KKyAgICBWRU5ET1JfVEVNUExBVEVfU1RBUlQgPSAweDQwMDAwMDAwLAorCit9OworCisvKioKKyAqIENhcHR1cmVSZXF1ZXN0OgorICoKKyAqIEEgc2luZ2xlIHJlcXVlc3QgZm9yIGltYWdlIGNhcHR1cmUvYnVmZmVyIHJlcHJvY2Vzc2luZywgc2VudCB0byB0aGUgQ2FtZXJhCisgKiBIQUwgZGV2aWNlIGJ5IHRoZSBmcmFtZXdvcmsgaW4gcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCkuCisgKgorICogVGhlIHJlcXVlc3QgY29udGFpbnMgdGhlIHNldHRpbmdzIHRvIGJlIHVzZWQgZm9yIHRoaXMgY2FwdHVyZSwgYW5kIHRoZSBzZXQgb2YKKyAqIG91dHB1dCBidWZmZXJzIHRvIHdyaXRlIHRoZSByZXN1bHRpbmcgaW1hZ2UgZGF0YSBpbi4gSXQgbWF5IG9wdGlvbmFsbHkKKyAqIGNvbnRhaW4gYW4gaW5wdXQgYnVmZmVyLCBpbiB3aGljaCBjYXNlIHRoZSByZXF1ZXN0IGlzIGZvciByZXByb2Nlc3NpbmcgdGhhdAorICogaW5wdXQgYnVmZmVyIGluc3RlYWQgb2YgY2FwdHVyaW5nIGEgbmV3IGltYWdlIHdpdGggdGhlIGNhbWVyYSBzZW5zb3IuIFRoZQorICogY2FwdHVyZSBpcyBpZGVudGlmaWVkIGJ5IHRoZSBmcmFtZU51bWJlci4KKyAqCisgKiBJbiByZXNwb25zZSwgdGhlIGNhbWVyYSBIQUwgZGV2aWNlIG11c3Qgc2VuZCBhIENhcHR1cmVSZXN1bHQKKyAqIHN0cnVjdHVyZSBhc3luY2hyb25vdXNseSB0byB0aGUgZnJhbWV3b3JrLCB1c2luZyB0aGUgcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKQorICogY2FsbGJhY2suCisgKi8KK3N0cnVjdCBDYXB0dXJlUmVxdWVzdCB7CisgICAgLyoqCisgICAgICogVGhlIGZyYW1lIG51bWJlciBpcyBhbiBpbmNyZW1lbnRpbmcgaW50ZWdlciBzZXQgYnkgdGhlIGZyYW1ld29yayB0bworICAgICAqIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgY2FwdHVyZS4gSXQgbmVlZHMgdG8gYmUgcmV0dXJuZWQgaW4gdGhlIHJlc3VsdAorICAgICAqIGNhbGwsIGFuZCBpcyBhbHNvIHVzZWQgdG8gaWRlbnRpZnkgdGhlIHJlcXVlc3QgaW4gYXN5bmNocm9ub3VzCisgICAgICogbm90aWZpY2F0aW9ucyBzZW50IHRvIElDYW1lcmFEZXZpY2UzQ2FsbGJhY2s6Om5vdGlmeSgpLgorICAgICAqLworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyOworCisgICAgLyoqCisgICAgICogSWYgbm9uLXplcm8sIHJlYWQgc2V0dGluZ3MgZnJvbSByZXF1ZXN0IHF1ZXVlIGluc3RlYWQKKyAgICAgKiAoc2VlIElDYW1lcmFEZXZpY2VTZXNzaW9uLmdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZSkuCisgICAgICogSWYgemVybywgcmVhZCBzZXR0aW5ncyBmcm9tIC5zZXR0aW5ncyBmaWVsZC4KKyAgICAgKi8KKyAgICB1aW50NjRfdCBmbXFTZXR0aW5nc1NpemU7CisKKyAgICAvKioKKyAgICAgKiBJZiBmbXFTZXR0aW5nc1NpemUgaXMgemVybywKKyAgICAgKiB0aGUgc2V0dGluZ3MgYnVmZmVyIGNvbnRhaW5zIHRoZSBjYXB0dXJlIGFuZCBwcm9jZXNzaW5nIHBhcmFtZXRlcnMgZm9yCisgICAgICogdGhlIHJlcXVlc3QuIEFzIGEgc3BlY2lhbCBjYXNlLCBhbiBlbXB0eSBzZXR0aW5ncyBidWZmZXIgaW5kaWNhdGVzIHRoYXQKKyAgICAgKiB0aGUgc2V0dGluZ3MgYXJlIGlkZW50aWNhbCB0byB0aGUgbW9zdC1yZWNlbnRseSBzdWJtaXR0ZWQgY2FwdHVyZQorICAgICAqIHJlcXVlc3QuIEEgZW1wdHkgYnVmZmVyIGNhbm5vdCBiZSB1c2VkIGFzIHRoZSBmaXJzdCBzdWJtaXR0ZWQgcmVxdWVzdAorICAgICAqIGFmdGVyIGEgY29uZmlndXJlU3RyZWFtcygpIGNhbGwuCisgICAgICoKKyAgICAgKiBUaGlzIGZpZWxkIG11c3QgYmUgdXNlZCBpZiBmbXFTZXR0aW5nc1NpemUgaXMgemVyby4gSXQgbXVzdCBub3QgYmUgdXNlZAorICAgICAqIGlmIGZtcVNldHRpbmdzU2l6ZSBpcyBub24temVyby4KKyAgICAgKi8KKyAgICBDYW1lcmFNZXRhZGF0YSBzZXR0aW5nczsKKworICAgIC8qKgorICAgICAqIFRoZSBpbnB1dCBzdHJlYW0gYnVmZmVyIHRvIHVzZSBmb3IgdGhpcyByZXF1ZXN0LCBpZiBhbnkuCisgICAgICoKKyAgICAgKiBBbiBpbnZhbGlkIGlucHV0QnVmZmVyIGlzIHNpZ25pZmllZCBieSBhIG51bGwgaW5wdXRCdWZmZXI6OmJ1ZmZlciwgaW4KKyAgICAgKiB3aGljaCBjYXNlIHRoZSB2YWx1ZSBvZiBhbGwgb3RoZXIgbWVtYmVycyBvZiBpbnB1dEJ1ZmZlciBtdXN0IGJlIGlnbm9yZWQuCisgICAgICoKKyAgICAgKiBJZiBpbnB1dEJ1ZmZlciBpcyBpbnZhbGlkLCB0aGVuIHRoZSByZXF1ZXN0IGlzIGZvciBhIG5ldyBjYXB0dXJlIGZyb20gdGhlCisgICAgICogaW1hZ2VyLiBJZiBpbnB1dEJ1ZmZlciBpcyB2YWxpZCwgdGhlIHJlcXVlc3QgaXMgZm9yIHJlcHJvY2Vzc2luZyB0aGUKKyAgICAgKiBpbWFnZSBjb250YWluZWQgaW4gaW5wdXRCdWZmZXIsIGFuZCB0aGUgSEFMIG11c3QgcmVsZWFzZSB0aGUgaW5wdXRCdWZmZXIKKyAgICAgKiBiYWNrIHRvIHRoZSBjbGllbnQgaW4gYSBzdWJzZXF1ZW50IHByb2Nlc3NDYXB0dXJlUmVzdWx0IGNhbGwuCisgICAgICoKKyAgICAgKiBUaGUgSEFMIGlzIHJlcXVpcmVkIHRvIHdhaXQgb24gdGhlIGFjcXVpcmUgc3luYyBmZW5jZSBvZiB0aGUgaW5wdXQgYnVmZmVyCisgICAgICogYmVmb3JlIGFjY2Vzc2luZyBpdC4KKyAgICAgKgorICAgICAqLworICAgIFN0cmVhbUJ1ZmZlciBpbnB1dEJ1ZmZlcjsKKworICAgIC8qKgorICAgICAqIEFuIGFycmF5IG9mIGF0IGxlYXN0IDEgc3RyZWFtIGJ1ZmZlcnMsIHRvIGJlIGZpbGxlZCB3aXRoIGltYWdlCisgICAgICogZGF0YSBmcm9tIHRoaXMgY2FwdHVyZS9yZXByb2Nlc3MuIFRoZSBIQUwgbXVzdCB3YWl0IG9uIHRoZSBhY3F1aXJlIGZlbmNlcworICAgICAqIG9mIGVhY2ggc3RyZWFtIGJ1ZmZlciBiZWZvcmUgd3JpdGluZyB0byB0aGVtLgorICAgICAqCisgICAgICogVGhlIEhBTCB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGhhbmRsZXMgaW4gb3V0cHV0QnVmZmVyczsgdGhlIGNsaWVudAorICAgICAqIG11c3Qgbm90IGFjY2VzcyB0aGVtIHVudGlsIHRoZXkgYXJlIHJldHVybmVkIGluIGEgQ2FwdHVyZVJlc3VsdC4KKyAgICAgKgorICAgICAqIEFueSBvciBhbGwgb2YgdGhlIGJ1ZmZlcnMgaW5jbHVkZWQgaGVyZSBtYXkgYmUgYnJhbmQgbmV3IGluIHRoaXMKKyAgICAgKiByZXF1ZXN0IChoYXZpbmcgbmV2ZXIgYmVmb3JlIHNlZW4gYnkgdGhlIEhBTCkuCisgICAgICovCisgICAgdmVjPFN0cmVhbUJ1ZmZlcj4gb3V0cHV0QnVmZmVyczsKKworfTsKKworLyoqCisgKiBDYXB0dXJlUmVzdWx0OgorICoKKyAqIFRoZSByZXN1bHQgb2YgYSBzaW5nbGUgY2FwdHVyZS9yZXByb2Nlc3MgYnkgdGhlIGNhbWVyYSBIQUwgZGV2aWNlLiBUaGlzIGlzCisgKiBzZW50IHRvIHRoZSBmcmFtZXdvcmsgYXN5bmNocm9ub3VzbHkgd2l0aCBwcm9jZXNzQ2FwdHVyZVJlc3VsdCgpLCBpbgorICogcmVzcG9uc2UgdG8gYSBzaW5nbGUgY2FwdHVyZSByZXF1ZXN0IHNlbnQgdG8gdGhlIEhBTCB3aXRoCisgKiBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKS4gTXVsdGlwbGUgcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKSBjYWxscyBtYXkgYmUKKyAqIHBlcmZvcm1lZCBieSB0aGUgSEFMIGZvciBlYWNoIHJlcXVlc3QuCisgKgorICogRWFjaCBjYWxsLCBhbGwgd2l0aCB0aGUgc2FtZSBmcmFtZQorICogbnVtYmVyLCBtYXkgY29udGFpbiBzb21lIHN1YnNldCBvZiB0aGUgb3V0cHV0IGJ1ZmZlcnMsIGFuZC9vciB0aGUgcmVzdWx0CisgKiBtZXRhZGF0YS4KKyAqCisgKiBUaGUgcmVzdWx0IHN0cnVjdHVyZSBjb250YWlucyB0aGUgb3V0cHV0IG1ldGFkYXRhIGZyb20gdGhpcyBjYXB0dXJlLCBhbmQgdGhlCisgKiBzZXQgb2Ygb3V0cHV0IGJ1ZmZlcnMgdGhhdCBoYXZlIGJlZW4vd2lsbCBiZSBmaWxsZWQgZm9yIHRoaXMgY2FwdHVyZS4gRWFjaAorICogb3V0cHV0IGJ1ZmZlciBtYXkgY29tZSB3aXRoIGEgcmVsZWFzZSBzeW5jIGZlbmNlIHRoYXQgdGhlIGZyYW1ld29yayBtdXN0IHdhaXQKKyAqIG9uIGJlZm9yZSByZWFkaW5nLCBpbiBjYXNlIHRoZSBidWZmZXIgaGFzIG5vdCB5ZXQgYmVlbiBmaWxsZWQgYnkgdGhlIEhBTC4KKyAqCisgKiBUaGUgbWV0YWRhdGEgbWF5IGJlIHByb3ZpZGVkIG11bHRpcGxlIHRpbWVzIGZvciBhIHNpbmdsZSBmcmFtZSBudW1iZXIuIFRoZQorICogZnJhbWV3b3JrIG11c3QgYWNjdW11bGF0ZSB0b2dldGhlciB0aGUgZmluYWwgcmVzdWx0IHNldCBieSBjb21iaW5pbmcgZWFjaAorICogcGFydGlhbCByZXN1bHQgdG9nZXRoZXIgaW50byB0aGUgdG90YWwgcmVzdWx0IHNldC4KKyAqCisgKiBJZiBhbiBpbnB1dCBidWZmZXIgaXMgZ2l2ZW4gaW4gYSByZXF1ZXN0LCB0aGUgSEFMIG11c3QgcmV0dXJuIGl0IGluIG9uZSBvZgorICogdGhlIHByb2Nlc3NDYXB0dXJlUmVzdWx0IGNhbGxzLCBhbmQgdGhlIGNhbGwgbWF5IGJlIHRvIGp1c3QgcmV0dXJuIHRoZQorICogaW5wdXQgYnVmZmVyLCB3aXRob3V0IG1ldGFkYXRhIGFuZCBvdXRwdXQgYnVmZmVyczsgdGhlIHN5bmMgZmVuY2VzIG11c3QgYmUKKyAqIGhhbmRsZWQgdGhlIHNhbWUgd2F5IHRoZXkgYXJlIGRvbmUgZm9yIG91dHB1dCBidWZmZXJzLgorICoKKyAqIFBlcmZvcm1hbmNlIGNvbnNpZGVyYXRpb25zOgorICoKKyAqIEFwcGxpY2F0aW9ucyByZWNlaXZlIHRoZXNlIHBhcnRpYWwgcmVzdWx0cyBpbW1lZGlhdGVseSwgc28gc2VuZGluZyBwYXJ0aWFsCisgKiByZXN1bHRzIGlzIGEgaGlnaGx5IHJlY29tbWVuZGVkIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiB0byBhdm9pZCB0aGUgdG90YWwKKyAqIHBpcGVsaW5lIGxhdGVuY3kgYmVmb3JlIHNlbmRpbmcgdGhlIHJlc3VsdHMgZm9yIHdoYXQgaXMga25vd24gdmVyeSBlYXJseSBvbgorICogaW4gdGhlIHBpcGVsaW5lLgorICoKKyAqIEEgdHlwaWNhbCB1c2UgY2FzZSBtaWdodCBiZSBjYWxjdWxhdGluZyB0aGUgQUYgc3RhdGUgaGFsZndheSB0aHJvdWdoIHRoZQorICogcGlwZWxpbmU7IGJ5IHNlbmRpbmcgdGhlIHN0YXRlIGJhY2sgdG8gdGhlIGZyYW1ld29yayBpbW1lZGlhdGVseSwgd2UgZ2V0IGEKKyAqIDUwJSBwZXJmb3JtYW5jZSBpbmNyZWFzZSBhbmQgcGVyY2VpdmVkIHJlc3BvbnNpdmVuZXNzIG9mIHRoZSBhdXRvLWZvY3VzLgorICoKKyAqLworc3RydWN0IENhcHR1cmVSZXN1bHQgeworICAgIC8qKgorICAgICAqIFRoZSBmcmFtZSBudW1iZXIgaXMgYW4gaW5jcmVtZW50aW5nIGludGVnZXIgc2V0IGJ5IHRoZSBmcmFtZXdvcmsgaW4gdGhlCisgICAgICogc3VibWl0dGVkIHJlcXVlc3QgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBjYXB0dXJlLiBJdCBpcyBhbHNvIHVzZWQgdG8KKyAgICAgKiBpZGVudGlmeSB0aGUgcmVxdWVzdCBpbiBhc3luY2hyb25vdXMgbm90aWZpY2F0aW9ucyBzZW50IHRvCisgICAgICogSUNhbWVyYURldmljZTNDYWxsYmFjazo6bm90aWZ5KCkuCisgICAgICovCisgICAgdWludDMyX3QgZnJhbWVOdW1iZXI7CisKKyAgICAvKioKKyAgICAgKiBJZiBub24temVybywgcmVhZCByZXN1bHQgZnJvbSByZXN1bHQgcXVldWUgaW5zdGVhZAorICAgICAqIChzZWUgSUNhbWVyYURldmljZVNlc3Npb24uZ2V0Q2FwdHVyZVJlc3VsdE1ldGFkYXRhUXVldWUpLgorICAgICAqIElmIHplcm8sIHJlYWQgcmVzdWx0IGZyb20gLnJlc3VsdCBmaWVsZC4KKyAgICAgKi8KKyAgICB1aW50NjRfdCBmbXFSZXN1bHRTaXplOworCisgICAgLyoqCisgICAgICogVGhlIHJlc3VsdCBtZXRhZGF0YSBmb3IgdGhpcyBjYXB0dXJlLiBUaGlzIGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZQorICAgICAqIGZpbmFsIGNhcHR1cmUgcGFyYW1ldGVycywgdGhlIHN0YXRlIG9mIHRoZSBjYXB0dXJlIGFuZCBwb3N0LXByb2Nlc3NpbmcKKyAgICAgKiBoYXJkd2FyZSwgdGhlIHN0YXRlIG9mIHRoZSAzQSBhbGdvcml0aG1zLCBpZiBlbmFibGVkLCBhbmQgdGhlIG91dHB1dCBvZgorICAgICAqIGFueSBlbmFibGVkIHN0YXRpc3RpY3MgdW5pdHMuCisgICAgICoKKyAgICAgKiBJZiB0aGVyZSB3YXMgYW4gZXJyb3IgcHJvZHVjaW5nIHRoZSByZXN1bHQgbWV0YWRhdGEsIHJlc3VsdCBtdXN0IGJlIGFuCisgICAgICogZW1wdHkgbWV0YWRhdGEgYnVmZmVyLCBhbmQgbm90aWZ5KCkgbXVzdCBiZSBjYWxsZWQgd2l0aAorICAgICAqIEVycm9yQ29kZTo6RVJST1JfUkVTVUxULgorICAgICAqCisgICAgICogTXVsdGlwbGUgY2FsbHMgdG8gcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKSB3aXRoIGEgZ2l2ZW4gZnJhbWVOdW1iZXIKKyAgICAgKiBtYXkgaW5jbHVkZSAocGFydGlhbCkgcmVzdWx0IG1ldGFkYXRhLgorICAgICAqCisgICAgICogUGFydGlhbCBtZXRhZGF0YSBzdWJtaXR0ZWQgbXVzdCBub3QgaW5jbHVkZSBhbnkgbWV0YWRhdGEga2V5IHJldHVybmVkCisgICAgICogaW4gYSBwcmV2aW91cyBwYXJ0aWFsIHJlc3VsdCBmb3IgYSBnaXZlbiBmcmFtZS4gRWFjaCBuZXcgcGFydGlhbCByZXN1bHQKKyAgICAgKiBmb3IgdGhhdCBmcmFtZSBtdXN0IGFsc28gc2V0IGEgZGlzdGluY3QgcGFydGlhbFJlc3VsdCB2YWx1ZS4KKyAgICAgKgorICAgICAqIElmIG5vdGlmeSBoYXMgYmVlbiBjYWxsZWQgd2l0aCBFcnJvckNvZGU6OkVSUk9SX1JFU1VMVCwgYWxsIGZ1cnRoZXIKKyAgICAgKiBwYXJ0aWFsIHJlc3VsdHMgZm9yIHRoYXQgZnJhbWUgYXJlIGlnbm9yZWQgYnkgdGhlIGZyYW1ld29yay4KKyAgICAgKi8KKyAgICBDYW1lcmFNZXRhZGF0YSByZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29tcGxldGVkIG91dHB1dCBzdHJlYW0gYnVmZmVycyBmb3IgdGhpcyBjYXB0dXJlLgorICAgICAqCisgICAgICogVGhleSBtYXkgbm90IHlldCBiZSBmaWxsZWQgYXQgdGhlIHRpbWUgdGhlIEhBTCBjYWxscworICAgICAqIHByb2Nlc3NDYXB0dXJlUmVzdWx0KCk7IHRoZSBmcmFtZXdvcmsgbXVzdCB3YWl0IG9uIHRoZSByZWxlYXNlIHN5bmMKKyAgICAgKiBmZW5jZXMgcHJvdmlkZWQgYnkgdGhlIEhBTCBiZWZvcmUgcmVhZGluZyB0aGUgYnVmZmVycy4KKyAgICAgKgorICAgICAqIFRoZSBTdHJlYW1CdWZmZXI6OmJ1ZmZlciBoYW5kbGUgbXVzdCBiZSBudWxsIGZvciBhbGwgcmV0dXJuZWQgYnVmZmVyczsKKyAgICAgKiB0aGUgY2xpZW50IG11c3QgY2FjaGUgdGhlIGhhbmRsZSBhbmQgbG9vayBpdCB1cCB2aWEgdGhlIGNvbWJpbmF0aW9uIG9mCisgICAgICogZnJhbWUgbnVtYmVyIGFuZCBzdHJlYW0gSUQuCisgICAgICoKKyAgICAgKiBUaGUgbnVtYmVyIG9mIG91dHB1dCBidWZmZXJzIHJldHVybmVkIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZQorICAgICAqIG1hdGNoaW5nIGNhcHR1cmUgcmVxdWVzdCdzIGNvdW50LiBJZiB0aGlzIGlzIGxlc3MgdGhhbiB0aGUgYnVmZmVyIGNvdW50CisgICAgICogaW4gdGhlIGNhcHR1cmUgcmVxdWVzdCwgYXQgbGVhc3Qgb25lIG1vcmUgY2FsbCB0byBwcm9jZXNzQ2FwdHVyZVJlc3VsdAorICAgICAqIHdpdGggdGhlIHNhbWUgZnJhbWVOdW1iZXIgbXVzdCBiZSBtYWRlLCB0byByZXR1cm4gdGhlIHJlbWFpbmluZyBvdXRwdXQKKyAgICAgKiBidWZmZXJzIHRvIHRoZSBmcmFtZXdvcmsuIFRoaXMgbWF5IG9ubHkgYmUgemVybyBpZiB0aGUgc3RydWN0dXJlIGluY2x1ZGVzCisgICAgICogdmFsaWQgcmVzdWx0IG1ldGFkYXRhIG9yIGFuIGlucHV0IGJ1ZmZlciBpcyByZXR1cm5lZCBpbiB0aGlzIHJlc3VsdC4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgbXVzdCBzZXQgdGhlIHN0cmVhbSBidWZmZXIncyByZWxlYXNlIHN5bmMgZmVuY2UgdG8gYSB2YWxpZCBzeW5jCisgICAgICogZmQsIG9yIHRvIG51bGwgaWYgdGhlIGJ1ZmZlciBoYXMgYWxyZWFkeSBiZWVuIGZpbGxlZC4KKyAgICAgKgorICAgICAqIElmIHRoZSBIQUwgZW5jb3VudGVycyBhbiBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSBidWZmZXIsIGFuZCB0aGUKKyAgICAgKiBidWZmZXIgaXMgbm90IGZpbGxlZCwgdGhlIGJ1ZmZlcidzIHN0YXR1cyBmaWVsZCBtdXN0IGJlIHNldCB0byBFUlJPUi4gSWYKKyAgICAgKiB0aGUgSEFMIGRpZCBub3Qgd2FpdCBvbiB0aGUgYWNxdWlyZSBmZW5jZSBiZWZvcmUgZW5jb3VudGVyaW5nIHRoZSBlcnJvciwKKyAgICAgKiB0aGUgYWNxdWlyZSBmZW5jZSBtdXN0IGJlIGNvcGllZCBpbnRvIHRoZSByZWxlYXNlIGZlbmNlLCB0byBhbGxvdyB0aGUKKyAgICAgKiBmcmFtZXdvcmsgdG8gd2FpdCBvbiB0aGUgZmVuY2UgYmVmb3JlIHJldXNpbmcgdGhlIGJ1ZmZlci4KKyAgICAgKgorICAgICAqIFRoZSBhY3F1aXJlIGZlbmNlIG11c3QgYmUgc2V0IHRvIG51bGwgZm9yIGFsbCBvdXRwdXQgYnVmZmVycy4KKyAgICAgKgorICAgICAqIFRoaXMgdmVjdG9yIG1heSBiZSBlbXB0eTsgaWYgc28sIGF0IGxlYXN0IG9uZSBvdGhlciBwcm9jZXNzQ2FwdHVyZVJlc3VsdAorICAgICAqIGNhbGwgbXVzdCBiZSBtYWRlIChvciBoYXZlIGJlZW4gbWFkZSkgYnkgdGhlIEhBTCB0byBwcm92aWRlIHRoZSBmaWxsZWQKKyAgICAgKiBvdXRwdXQgYnVmZmVycy4KKyAgICAgKgorICAgICAqIFdoZW4gcHJvY2Vzc0NhcHR1cmVSZXN1bHQgaXMgY2FsbGVkIHdpdGggYSBuZXcgYnVmZmVyIGZvciBhIGZyYW1lLAorICAgICAqIGFsbCBwcmV2aW91cyBmcmFtZXMnIGJ1ZmZlcnMgZm9yIHRoYXQgY29ycmVzcG9uZGluZyBzdHJlYW0gbXVzdCBoYXZlIGJlZW4KKyAgICAgKiBhbHJlYWR5IGRlbGl2ZXJlZCAodGhlIGZlbmNlcyBuZWVkIG5vdCBoYXZlIHlldCBiZWVuIHNpZ25hbGVkKS4KKyAgICAgKgorICAgICAqIEJ1ZmZlcnMgZm9yIGEgZnJhbWUgbWF5IGJlIHNlbnQgdG8gZnJhbWV3b3JrIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZworICAgICAqIFNIVVRURVItbm90aWZ5IGNhbGwgaXMgbWFkZSBieSB0aGUgSEFMLgorICAgICAqCisgICAgICogUGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbnM6CisgICAgICoKKyAgICAgKiBCdWZmZXJzIGRlbGl2ZXJlZCB0byB0aGUgZnJhbWV3b3JrIGFyZSBub3QgZGlzcGF0Y2hlZCB0byB0aGUKKyAgICAgKiBhcHBsaWNhdGlvbiBsYXllciB1bnRpbCBhIHN0YXJ0IG9mIGV4cG9zdXJlIHRpbWVzdGFtcCBoYXMgYmVlbiByZWNlaXZlZAorICAgICAqIHZpYSBhIFNIVVRURVIgbm90aWZ5KCkgY2FsbC4gSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRvCisgICAgICogZGlzcGF0Y2ggdGhhdCBjYWxsIGFzIGVhcmx5IGFzIHBvc3NpYmxlLgorICAgICAqLworICAgIHZlYzxTdHJlYW1CdWZmZXI+IG91dHB1dEJ1ZmZlcnM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgaGFuZGxlIGZvciB0aGUgaW5wdXQgc3RyZWFtIGJ1ZmZlciBmb3IgdGhpcyBjYXB0dXJlLCBpZiBhbnkuCisgICAgICoKKyAgICAgKiBJdCBtYXkgbm90IHlldCBiZSBjb25zdW1lZCBhdCB0aGUgdGltZSB0aGUgSEFMIGNhbGxzCisgICAgICogcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKTsgdGhlIGZyYW1ld29yayBtdXN0IHdhaXQgb24gdGhlIHJlbGVhc2Ugc3luYyBmZW5jZQorICAgICAqIHByb3ZpZGVkIGJ5IHRoZSBIQUwgYmVmb3JlIHJldXNpbmcgdGhlIGJ1ZmZlci4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgbXVzdCBoYW5kbGUgdGhlIHN5bmMgZmVuY2VzIHRoZSBzYW1lIHdheSB0aGV5IGFyZSBkb25lIGZvcgorICAgICAqIG91dHB1dEJ1ZmZlcnMuCisgICAgICoKKyAgICAgKiBPbmx5IG9uZSBpbnB1dCBidWZmZXIgaXMgYWxsb3dlZCB0byBiZSBzZW50IHBlciByZXF1ZXN0LiBTaW1pbGFybHkgdG8KKyAgICAgKiBvdXRwdXQgYnVmZmVycywgdGhlIG9yZGVyaW5nIG9mIHJldHVybmVkIGlucHV0IGJ1ZmZlcnMgbXVzdCBiZQorICAgICAqIG1haW50YWluZWQgYnkgdGhlIEhBTC4KKyAgICAgKgorICAgICAqIFBlcmZvcm1hbmNlIGNvbnNpZGVyYXRpb25zOgorICAgICAqCisgICAgICogVGhlIGlucHV0IGJ1ZmZlciBzaG91bGQgYmUgcmV0dXJuZWQgYXMgZWFybHkgYXMgcG9zc2libGUuIElmIHRoZSBIQUwKKyAgICAgKiBzdXBwb3J0cyBzeW5jIGZlbmNlcywgaXQgY2FuIGNhbGwgcHJvY2Vzc0NhcHR1cmVSZXN1bHQgdG8gaGFuZCBpdCBiYWNrCisgICAgICogd2l0aCBzeW5jIGZlbmNlcyBiZWluZyBzZXQgYXBwcm9wcmlhdGVseS4gSWYgdGhlIHN5bmMgZmVuY2VzIGFyZSBub3QKKyAgICAgKiBzdXBwb3J0ZWQsIHRoZSBidWZmZXIgY2FuIG9ubHkgYmUgcmV0dXJuZWQgd2hlbiBpdCBpcyBjb25zdW1lZCwgd2hpY2gKKyAgICAgKiBtYXkgdGFrZSBsb25nIHRpbWU7IHRoZSBIQUwgbWF5IGNob29zZSB0byBjb3B5IHRoaXMgaW5wdXQgYnVmZmVyIHRvIG1ha2UKKyAgICAgKiB0aGUgYnVmZmVyIHJldHVybiBzb29uZXIuCisgICAgICovCisgICAgU3RyZWFtQnVmZmVyIGlucHV0QnVmZmVyOworCisgICAgLyoqCisgICAgICogSW4gb3JkZXIgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgcGFydGlhbCByZXN1bHRzLCB0aGUgSEFMIG11c3Qgc2V0IHRoZQorICAgICAqIHN0YXRpYyBtZXRhZGF0YSBhbmRyb2lkLnJlcXVlc3QucGFydGlhbFJlc3VsdENvdW50IHRvIHRoZSBudW1iZXIgb2YKKyAgICAgKiBwYXJ0aWFsIHJlc3VsdHMgaXQgc2VuZHMgZm9yIGVhY2ggZnJhbWUuCisgICAgICoKKyAgICAgKiBFYWNoIG5ldyBjYXB0dXJlIHJlc3VsdCB3aXRoIGEgcGFydGlhbCByZXN1bHQgbXVzdCBzZXQKKyAgICAgKiB0aGlzIGZpZWxkIHRvIGEgZGlzdGluY3QgaW5jbHVzaXZlIHZhbHVlIGJldHdlZW4KKyAgICAgKiAxIGFuZCBhbmRyb2lkLnJlcXVlc3QucGFydGlhbFJlc3VsdENvdW50LgorICAgICAqCisgICAgICogSEFMcyBub3Qgd2lzaGluZyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIGZlYXR1cmUgbXVzdCBub3QKKyAgICAgKiBzZXQgYW4gYW5kcm9pZC5yZXF1ZXN0LnBhcnRpYWxSZXN1bHRDb3VudCBvciBwYXJ0aWFsX3Jlc3VsdCB0byBhIHZhbHVlCisgICAgICogb3RoZXIgdGhhbiAxLgorICAgICAqCisgICAgICogVGhpcyB2YWx1ZSBtdXN0IGJlIHNldCB0byAwIHdoZW4gYSBjYXB0dXJlIHJlc3VsdCBjb250YWlucyBidWZmZXJzIG9ubHkKKyAgICAgKiBhbmQgbm8gbWV0YWRhdGEuCisgICAgICovCisgICAgdWludDMyX3QgcGFydGlhbFJlc3VsdDsKKworfTsKKworLyoqCisgKiBCdWZmZXJDYWNoZToKKyAqCisgKiBBIGxpc3Qgb2YgY2FjaGVkIGJ1ZmZlcklkcyBhc3NvY2lhdGVkIHdpdGggYSBjZXJ0YWluIHN0cmVhbS4KKyAqIEJ1ZmZlcnMgYXJlIHBhc3NlZCBiZXR3ZWVuIGNhbWVyYSBzZXJ2aWNlIGFuZCBjYW1lcmEgSEFMIHZpYSBidWZmZXJJZCBleGNlcHQKKyAqIHRoZSBmaXJzdCB0aW1lIGEgbmV3IGJ1ZmZlciBpcyBiZWluZyBwYXNzZWQgdG8gSEFMIGluIENhcHR1cmVSZXF1ZXN0LiBDYW1lcmEKKyAqIHNlcnZpY2UgYW5kIGNhbWVyYSBIQUwgdGhlcmVmb3JlIG5lZWQgdG8gbWFpbnRhaW4gYSBjYWNoZWQgbWFwIG9mIGJ1ZmZlcklkCisgKiBhbmQgY29ycmVzcG9uaW5nIG5hdGl2ZSBoYW5kbGUuCisgKgorICovCitzdHJ1Y3QgQnVmZmVyQ2FjaGUgeworICAgIC8qKgorICAgICAqIFRoZSBJRCBvZiB0aGUgc3RyZWFtIHRoaXMgbGlzdCBpcyBhc3NvY2lhdGVkIHdpdGguCisgICAgICovCisgICAgaW50MzJfdCBzdHJlYW1JZDsKKworICAgIC8qKgorICAgICAqIEEgY2FjaGVkIGJ1ZmZlciBJRCBhc3NvY2lhdGVkIHdpdGggc3RyZWFtSWQuCisgICAgICovCisgICAgdWludDY0X3QgYnVmZmVySWQ7Cit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS9SRUFETUUubWQgYi9jYW1lcmEvZGV2aWNlL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTU3MDNhCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS9SRUFETUUubWQKQEAgLTAsMCArMSw3NiBAQAorIyMgQ2FtZXJhIERldmljZSBIQUwgIyMKKy0tLQorCisjIyBPdmVydmlldzogIyMKKworVGhlIGNhbWVyYS5kZXZpY2UgSEFMIGludGVyZmFjZSBpcyB1c2VkIGJ5IHRoZSBBbmRyb2lkIGNhbWVyYSBzZXJ2aWNlIHRvIG9wZXJhdGUKK2luZGl2aWR1YWwgY2FtZXJhIGRldmljZXMuIEluc3RhbmNlcyBvZiBjYW1lcmEuZGV2aWNlIEhBTCBpbnRlcmZhY2UgY2FuIGJlIG9idGFpbmVkCit2aWEgb25lIG9mIHRoZSBJQ2FtZXJhUHJvdmlkZXI6OmdldENhbWVyYURldmljZUludGVyZmFjZV9WPE4+X3goKSBtZXRob2RzLCB3aGVyZSBOCitpcyB0aGUgbWFqb3IgdmVyc2lvbiBvZiB0aGUgY2FtZXJhIGRldmljZSBpbnRlcmZhY2UuCisKK09idGFpbmluZyB0aGUgZGV2aWNlIGludGVyZmFjZSBkb2VzIG5vdCB0dXJuIG9uIHRoZSByZXNwZWN0aXZlIGNhbWVyYSBkZXZpY2U7CitlYWNoIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGhhcyBhbiBhY3R1YWwgb3BlbigpIG1ldGhvZCB0byBiZWdpbiBhbiBhY3RpdmUKK2NhbWVyYSBzZXNzaW9uLiBXaXRob3V0IGludm9raW5nIG9wZW4oKSwgdGhlIGludGVyZmFjZSBjYW4gYmUgdXNlZCBmb3IgcXVlcnlpbmcKK2NhbWVyYSBzdGF0aWMgaW5mb3JtYXRpb24uCisKK01vcmUgY29tcGxldGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEFuZHJvaWQgY2FtZXJhIEhBTCBhbmQgc3Vic3lzdGVtIGNhbiBiZSBmb3VuZCBhdAorW3NvdXJjZS5hbmRyb2lkLmNvbV0oaHR0cDovL3NvdXJjZS5hbmRyb2lkLmNvbS9kZXZpY2VzL2NhbWVyYS9pbmRleC5odG1sKS4KKworIyMgVmVyc2lvbiBoaXN0b3J5OiAjIworCisjIyMgSUNhbWVyYURldmljZS5oYWxAMS4wOgorCitISURMIHZlcnNpb24gb2YgdGhlIGxlZ2FjeSBjYW1lcmEgZGV2aWNlIEhBTC4gSW50ZW5kZWQgYXMgYSBzaGltIGZvciBkZXZpY2VzCituZWVkaW5nIHRvIHVzZSB0aGUgZGVwcmVjYXRlZCBwcmUtSElETCBjYW1lcmEgZGV2aWNlIEhBTCB2MS4wLgorCitNYXkgYmUgdXNlZCBpbiBISURMIHBhc3N0aHJvdWdoIG1vZGUgZm9yIGRldmljZXMgdXBncmFkaW5nIHRvIHRoZSBBbmRyb2lkIE8KK3JlbGVhc2U7IG11c3QgYmUgdXNlZCBpbiBiaW5kZXJpemVkIG1vZGUgZm9yIGRldmljZXMgbGF1bmNoaW5nIGluIHRoZSBPIHJlbGVhc2UuCisKK0l0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UgZm9yIG5ldyBkZXZpY2VzLCBhcyBuZXcKK2RldmljZXMgbWF5IG5vdCB1c2UgdGhpcyBpbnRlcmZhY2Ugc3RhcnRpbmcgd2l0aCB0aGUgQW5kcm9pZCBQIHJlbGVhc2UsIGFuZCBhbGwKK3N1cHBvcnQgZm9yIElDYW1lcmFEZXZpY2VAMS4wIHdpbGwgYmUgcmVtb3ZlZCB3aXRoIHRoZSBBbmRyb2lkIFIgcmVsZWFzZS4KKworVGhpcyBIQUwgaW50ZXJmYWNlIHZlcnNpb24gb25seSBhbGxvd3Mgc3VwcG9ydCBhdCB0aGUgTEVHQUNZIGxldmVsIGZvciB0aGUKK2FuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMiBBUEkuCisKK1N1YnNpZGlhcnkgSEFMczoKKworIyMjIyBJQ2FtZXJhRGV2aWNlMVByZXZpZXdDYWxsYmFjay5oYWxAMS4wOgorCitDYWxsYmFjayBpbnRlcmZhY2UgZm9yIG9idGFpbmluZywgZmlsbGluZywgYW5kIHJldHVybmluZyBncmFwaGljcyBidWZmZXJzIGZvcgorcHJldmlldyBvcGVyYXRpb24gd2l0aCB0aGUgSUNhbWVyYURldmljZUAxLjAgaW50ZWZhY2UuCisKKyMjIyMgSUNhbWVyYURldmljZTFDYWxsYmFjay5oYWxAMS4wOgorCitDYWxsYmFjayBpbnRlcmZhY2UgZm9yIHNlbmRpbmcgZXZlbnRzIGFuZCBkYXRhIGJ1ZmZlcnMgZnJvbSB0aGUgSEFMIHRvIHRoZQorY2FtZXJhIHNlcnZpY2UuCisKKyMjIyBJQ2FtZXJhRGV2aWNlLmhhbEAzLjI6CisKK0hJREwgdmVyc2lvbiBvZiB0aGUgYmFzZWxpbmUgY2FtZXJhIGRldmljZSBIQUwsIHJlcXVpcmVkIGZvciBMSU1JVEVEIG9yIEZVTEwKK29wZXJhdGlvbiB0aHJvdWdoIHRoZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIgQVBJLgorCitUaGUgbWFpbiBIQUwgY29udGFpbnMgbWV0aG9kcyBmb3Igc3RhdGljIHF1ZXJpZXMgYWJvdXQgdGhlIGRldmljZSwgc2ltaWxhciB0bwordGhlIEhBTHYzLXNwZWNpZmljIHNlY3Rpb25zIG9mIHRoZSBsZWdhY3kgY2FtZXJhIG1vZHVsZSBIQUwuIFNpbXBseSBvYnRhaW5pbmcgYW4KK2luc3RhbmNlIG9mIHRoZSBjYW1lcmEgZGV2aWNlIGludGVyZmFjZSBkb2VzIG5vdCB0dXJuIG9uIHRoZSBjYW1lcmEgZGV2aWNlLgorCitNYXkgYmUgdXNlZCBpbiBwYXNzdGhyb3VnaCBtb2RlIGZvciBkZXZpY2VzIHVwZ3JhZGluZyB0byB0aGUgQW5kcm9pZCBPIHJlbGVhc2U7CittdXN0IGJlIHVzZWQgaW4gYmluZGVyaXplZCBtb2RlIGZvciBhbGwgbmV3IGRldmljZXMgbGF1bmNoaW5nIHdpdGggQW5kcm9pZCBPIG9yCitsYXRlci4KKworVGhlIG9wZW4oKSBtZXRob2QgYWN0dWFsbHkgb3BlbnMgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHVzZSwgcmV0dXJuaW5nIGEgU2Vzc2lvbgoraW50ZXJmYWNlIGZvciBvcGVyYXRpbmcgdGhlIGFjdGl2ZSBjYW1lcmEuIEl0IHRha2VzIGEgQ2FsbGJhY2sgaW50ZXJmYWNlIGFzIGFuCithcmd1bWVudC4KKworU3Vic2lkaWFyeSBIQUxzOgorCisjIyMjIElDYW1lcmFEZXZpY2UzU2Vzc2lvbi5oYWxAMy4yOgorCitDbG9zZWx5IG1hdGNoZXMgdGhlIGZlYXR1cmVzIGFuZCBvcGVyYXRpb24gb2YgdGhlIHByZS1ISURMIGNhbWVyYSBkZXZpY2UgSEFMCit2My4yLCBjb250YWluaW5nIG1ldGhvZHMgZm9yIGNvbmZpZ3VyaW5nIGFuIGFjdGl2ZSBjYW1lcmEgZGV2aWNlIGFuZCBzdWJtaXR0aW5nCitjYXB0dXJlIHJlcXVlc3RzIHRvIGl0LgorCisjIyMjIElDYW1lcmFEZXZpY2UzQ2FsbGJhY2suaGFsQDMuMjoKKworQ2FsbGJhY2sgaW50ZXJmYWNlIGZvciBzZW5kaW5nIGNvbXBsZXRlZCBjYXB0dXJlcyBhbmQgb3RoZXIgYXN5bmNocm9ub3VzIGV2ZW50cworZnJvbSB0ZWhlIEhBTCB0byB0aGUgY2xpZW50LgpkaWZmIC0tZ2l0IGEvY2FtZXJhL21ldGFkYXRhLzMuMi9BbmRyb2lkLmJwIGIvY2FtZXJhL21ldGFkYXRhLzMuMi9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwN2I1MjEKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvbWV0YWRhdGEvMy4yL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1NiBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjJfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjJfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjIiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjJfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvMy4yL3R5cGVzLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMl9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhLzMuMi90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhLzMuMi9od3R5cGVzLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMl9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjJfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvbWV0YWRhdGEvMy4yL0FuZHJvaWQubWsgYi9jYW1lcmEvbWV0YWRhdGEvMy4yL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTM1YzM3YwotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9tZXRhZGF0YS8zLjIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDI0NjIgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhLVYzLjItamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEJsYWNrTGV2ZWxMb2NrKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQmxhY2tMZXZlbExvY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRCbGFja0xldmVsTG9jaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbkFiZXJyYXRpb25Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uQWJlcnJhdGlvbk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb2xvckNvcnJlY3Rpb25BYmVycmF0aW9uTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb2xvckNvcnJlY3Rpb25Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUFudGliYW5kaW5nTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUFudGliYW5kaW5nTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUFudGliYW5kaW5nTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2spCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9jaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2tBdmFpbGFibGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrQXZhaWxhYmxlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9ja0F2YWlsYWJsZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVByZWNhcHR1cmVUcmlnZ2VyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlUHJlY2FwdHVyZVRyaWdnZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVQcmVjYXB0dXJlVHJpZ2dlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlRyaWdnZXIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZUcmlnZ2VyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmVHJpZ2dlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9jaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrQXZhaWxhYmxlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2tBdmFpbGFibGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9ja0F2YWlsYWJsZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3Yk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xDYXB0dXJlSW50ZW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbENhcHR1cmVJbnRlbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQ2FwdHVyZUludGVudAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFZmZlY3RNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVmZmVjdE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRWZmZWN0TW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFbmFibGVac2wpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRW5hYmxlWnNsLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVuYWJsZVpzbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xTY2VuZU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sU2NlbmVNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFNjZW5lTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xWaWRlb1N0YWJpbGl6YXRpb25Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFZpZGVvU3RhYmlsaXphdGlvbk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sVmlkZW9TdGFiaWxpemF0aW9uTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlbW9zYWljTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlbW9zYWljTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlbW9zYWljTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoQXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoQXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoQXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoRGVwdGhJc0V4Y2x1c2l2ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoRGVwdGhJc0V4Y2x1c2l2ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoRGVwdGhJc0V4Y2x1c2l2ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEVkZ2VNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRWRnZU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRFZGdlTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoSW5mb0F2YWlsYWJsZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoSW5mb0F2YWlsYWJsZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoSW5mb0F2YWlsYWJsZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaFN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEhvdFBpeGVsTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEhvdFBpeGVsTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEhvdFBpeGVsTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEluZm9TdXBwb3J0ZWRIYXJkd2FyZUxldmVsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSW5mb1N1cHBvcnRlZEhhcmR3YXJlTGV2ZWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRJbmZvU3VwcG9ydGVkSGFyZHdhcmVMZXZlbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZEF2YWlsYWJsZUxlZHMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRBdmFpbGFibGVMZWRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkQXZhaWxhYmxlTGVkcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZFRyYW5zbWl0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkVHJhbnNtaXQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRUcmFuc21pdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNGYWNpbmcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zRmFjaW5nLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0ZhY2luZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNJbmZvRm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0luZm9Gb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zSW5mb0ZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNPcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zT3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc09wdGljYWxTdGFiaWxpemF0aW9uTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZE5vaXNlUmVkdWN0aW9uTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZE5vaXNlUmVkdWN0aW9uTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZE5vaXNlUmVkdWN0aW9uTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFF1aXJrc1BhcnRpYWxSZXN1bHQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRRdWlya3NQYXJ0aWFsUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUXVpcmtzUGFydGlhbFJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RBdmFpbGFibGVDYXBhYmlsaXRpZXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0QXZhaWxhYmxlQ2FwYWJpbGl0aWVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdEF2YWlsYWJsZUNhcGFiaWxpdGllcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RNZXRhZGF0YU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0TWV0YWRhdGFNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdE1ldGFkYXRhTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdFR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0VHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckF2YWlsYWJsZUZvcm1hdHMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVGb3JtYXRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlRm9ybWF0cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckNyb3BwaW5nVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckNyb3BwaW5nVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckNyb3BwaW5nVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9Db2xvckZpbHRlckFycmFuZ2VtZW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0NvbG9yRmlsdGVyQXJyYW5nZW1lbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvQ29sb3JGaWx0ZXJBcnJhbmdlbWVudAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9MZW5zU2hhZGluZ0FwcGxpZWQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvTGVuc1NoYWRpbmdBcHBsaWVkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0xlbnNTaGFkaW5nQXBwbGllZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9UaW1lc3RhbXBTb3VyY2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvVGltZXN0YW1wU291cmNlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb1RpbWVzdGFtcFNvdXJjZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclJlZmVyZW5jZUlsbHVtaW5hbnQxKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yUmVmZXJlbmNlSWxsdW1pbmFudDEuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JSZWZlcmVuY2VJbGx1bWluYW50MQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclRlc3RQYXR0ZXJuTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclRlc3RQYXR0ZXJuTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclRlc3RQYXR0ZXJuTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNoYWRpbmdNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2hhZGluZ01vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTaGFkaW5nTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NGYWNlRGV0ZWN0TW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NGYWNlRGV0ZWN0TW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NGYWNlRGV0ZWN0TW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIaXN0b2dyYW1Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hpc3RvZ3JhbU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSGlzdG9ncmFtTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIb3RQaXhlbE1hcE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSG90UGl4ZWxNYXBNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hvdFBpeGVsTWFwTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NMZW5zU2hhZGluZ01hcE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzTGVuc1NoYWRpbmdNYXBNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0xlbnNTaGFkaW5nTWFwTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTY2VuZUZsaWNrZXIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzU2NlbmVGbGlja2VyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NjZW5lRmxpY2tlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTaGFycG5lc3NNYXBNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NoYXJwbmVzc01hcE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzU2hhcnBuZXNzTWFwTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNGcmFtZU51bWJlcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNGcmFtZU51bWJlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNGcmFtZU51bWJlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNNYXhMYXRlbmN5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY01heExhdGVuY3kuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTeW5jTWF4TGF0ZW5jeQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRUb25lbWFwTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBQcmVzZXRDdXJ2ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBQcmVzZXRDdXJ2ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBQcmVzZXRDdXJ2ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFTZWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YVNlY3Rpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhU2VjdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFUYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhVGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YVRhZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YS1WMy4yLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQmxhY2tMZXZlbExvY2spCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRCbGFja0xldmVsTG9jay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEJsYWNrTGV2ZWxMb2NrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uQWJlcnJhdGlvbk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb2xvckNvcnJlY3Rpb25BYmVycmF0aW9uTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbkFiZXJyYXRpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb2xvckNvcnJlY3Rpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlQW50aWJhbmRpbmdNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlQW50aWJhbmRpbmdNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlQW50aWJhbmRpbmdNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9jaykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9ja0F2YWlsYWJsZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2tBdmFpbGFibGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrQXZhaWxhYmxlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlUHJlY2FwdHVyZVRyaWdnZXIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVQcmVjYXB0dXJlVHJpZ2dlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVByZWNhcHR1cmVUcmlnZ2VyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmVHJpZ2dlcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlRyaWdnZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZUcmlnZ2VyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2spCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9jay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2tBdmFpbGFibGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9ja0F2YWlsYWJsZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrQXZhaWxhYmxlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3Yk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YlN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YlN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YlN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbENhcHR1cmVJbnRlbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQ2FwdHVyZUludGVudC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xDYXB0dXJlSW50ZW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVmZmVjdE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRWZmZWN0TW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFZmZlY3RNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVuYWJsZVpzbCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFbmFibGVac2wuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRW5hYmxlWnNsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFNjZW5lTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xTY2VuZU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sU2NlbmVNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFZpZGVvU3RhYmlsaXphdGlvbk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sVmlkZW9TdGFiaWxpemF0aW9uTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xWaWRlb1N0YWJpbGl6YXRpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVtb3NhaWNNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVtb3NhaWNNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVtb3NhaWNNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhBdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhBdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhBdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhEZXB0aElzRXhjbHVzaXZlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhEZXB0aElzRXhjbHVzaXZlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhEZXB0aElzRXhjbHVzaXZlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRWRnZU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRFZGdlTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEVkZ2VNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hJbmZvQXZhaWxhYmxlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hJbmZvQXZhaWxhYmxlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hJbmZvQXZhaWxhYmxlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSG90UGl4ZWxNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSG90UGl4ZWxNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSG90UGl4ZWxNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSW5mb1N1cHBvcnRlZEhhcmR3YXJlTGV2ZWwpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRJbmZvU3VwcG9ydGVkSGFyZHdhcmVMZXZlbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEluZm9TdXBwb3J0ZWRIYXJkd2FyZUxldmVsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkQXZhaWxhYmxlTGVkcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZEF2YWlsYWJsZUxlZHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRBdmFpbGFibGVMZWRzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkVHJhbnNtaXQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRUcmFuc21pdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZFRyYW5zbWl0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0ZhY2luZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNGYWNpbmcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zRmFjaW5nCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0luZm9Gb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zSW5mb0ZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNJbmZvRm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc09wdGljYWxTdGFiaWxpemF0aW9uTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNPcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zT3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc1N0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc1N0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc1N0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTm9pc2VSZWR1Y3Rpb25Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTm9pc2VSZWR1Y3Rpb25Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTm9pc2VSZWR1Y3Rpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUXVpcmtzUGFydGlhbFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFF1aXJrc1BhcnRpYWxSZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRRdWlya3NQYXJ0aWFsUmVzdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdEF2YWlsYWJsZUNhcGFiaWxpdGllcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RBdmFpbGFibGVDYXBhYmlsaXRpZXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0QXZhaWxhYmxlQ2FwYWJpbGl0aWVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdE1ldGFkYXRhTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RNZXRhZGF0YU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0TWV0YWRhdGFNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlRm9ybWF0cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckF2YWlsYWJsZUZvcm1hdHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVGb3JtYXRzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQ3JvcHBpbmdUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQ3JvcHBpbmdUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQ3JvcHBpbmdUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0NvbG9yRmlsdGVyQXJyYW5nZW1lbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvQ29sb3JGaWx0ZXJBcnJhbmdlbWVudC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9Db2xvckZpbHRlckFycmFuZ2VtZW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0xlbnNTaGFkaW5nQXBwbGllZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9MZW5zU2hhZGluZ0FwcGxpZWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvTGVuc1NoYWRpbmdBcHBsaWVkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb1RpbWVzdGFtcFNvdXJjZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9UaW1lc3RhbXBTb3VyY2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvVGltZXN0YW1wU291cmNlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yUmVmZXJlbmNlSWxsdW1pbmFudDEpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JSZWZlcmVuY2VJbGx1bWluYW50MS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclJlZmVyZW5jZUlsbHVtaW5hbnQxCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yVGVzdFBhdHRlcm5Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yVGVzdFBhdHRlcm5Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yVGVzdFBhdHRlcm5Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2hhZGluZ01vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTaGFkaW5nTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNoYWRpbmdNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0ZhY2VEZXRlY3RNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0ZhY2VEZXRlY3RNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0ZhY2VEZXRlY3RNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hpc3RvZ3JhbU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSGlzdG9ncmFtTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIaXN0b2dyYW1Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hvdFBpeGVsTWFwTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIb3RQaXhlbE1hcE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSG90UGl4ZWxNYXBNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0xlbnNTaGFkaW5nTWFwTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NMZW5zU2hhZGluZ01hcE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzTGVuc1NoYWRpbmdNYXBNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NjZW5lRmxpY2tlcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTY2VuZUZsaWNrZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzU2NlbmVGbGlja2VyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NoYXJwbmVzc01hcE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzU2hhcnBuZXNzTWFwTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTaGFycG5lc3NNYXBNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY0ZyYW1lTnVtYmVyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY0ZyYW1lTnVtYmVyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY0ZyYW1lTnVtYmVyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY01heExhdGVuY3kpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTeW5jTWF4TGF0ZW5jeS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNNYXhMYXRlbmN5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRUb25lbWFwTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcFByZXNldEN1cnZlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcFByZXNldEN1cnZlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcFByZXNldEN1cnZlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YVNlY3Rpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhU2VjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFTZWN0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YVRhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFUYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhVGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2NhbWVyYS9tZXRhZGF0YS8zLjIvZG9jcy5odG1sIGIvY2FtZXJhL21ldGFkYXRhLzMuMi9kb2NzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA0ZWNhZQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9tZXRhZGF0YS8zLjIvZG9jcy5odG1sCkBAIC0wLDAgKzEsMjczNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8IS0tIENvcHlyaWdodCAoQykgMjAxMiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLS0+Cis8aGVhZD4KKyAgPCEtLSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGh0bWwubWFrby4gZG8gTk9UIGVkaXQgZGlyZWN0bHkgLS0+CisgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICA8dGl0bGU+QW5kcm9pZCBDYW1lcmEgSEFMMy40IFByb3BlcnRpZXM8L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICBib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjt9CisgICAgIGgxIHsgY29sb3I6ICMzMzMzMzM7IH0KKyAgICAgaDIgeyBjb2xvcjogIzMzMzMzMzsgfQorICAgICBhOmxpbmsgeyBjb2xvcjogIzI1OGFhZjsgdGV4dC1kZWNvcmF0aW9uOiBub25lfQorICAgICBhOmhvdmVyIHsgY29sb3I6ICM0NTlhYWY7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKyAgICAgYTp2aXNpdGVkIHsgY29sb3I6ICMxNTRhNWY7IHRleHQtZGVjb3JhdGlvbjogbm9uZX0KKyAgICAuc2VjdGlvbiB7IGNvbG9yOiAjZWVlZWVlOyBmb250LXNpemU6IDEuNWVtOyBmb250LXdlaWdodDogYm9sZDsgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODsgcGFkZGluZzogMC41ZW0gMGVtIDAuNWVtIDAuNWVtOyBib3JkZXItd2lkdGg6IHRoaWNrIHRoaW4gdGhpbiB0aGluOyBib3JkZXItY29sb3I6ICMxMTExMTEgIzc3Nzc3NyAjNzc3Nzc3ICM3Nzc3Nzd9CisgICAgLmtpbmQgeyBjb2xvcjogI2VlZWVlZTsgZm9udC1zaXplOiAxLjJlbTsgZm9udC13ZWlnaHQ6IGJvbGQ7IHBhZGRpbmctbGVmdDogMS41ZW07IGJhY2tncm91bmQtY29sb3I6ICNhYWFhYWEgfQorICAgIC5lbnRyeSB7IGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjAgfQorICAgIC5lbnRyeV9jb250IHsgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMCB9CisgICAgLmVudHJpZXNfaGVhZGVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2RkZGRkZDsgdGV4dC1hbGlnbjogY2VudGVyfQorCisgICAgLyogdG9jIHN0eWxlICovCisgICAgLnRvY19zZWN0aW9uX2hlYWRlciB7IGZvbnQtc2l6ZToxLjNlbTsgIH0KKyAgICAudG9jX2tpbmRfaGVhZGVyIHsgZm9udC1zaXplOjEuMmVtOyAgfQorICAgIC50b2NfZGVwcmVjYXRlZCB7IHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7IH0KKworICAgIC8qIHRhYmxlIGNvbHVtbiBzaXplcyAqLworICAgIHRhYmxlIHsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB0YWJsZS1sYXlvdXQ6IGZpeGVkOyB3aWR0aDogMTAwJTsgd29yZC13cmFwOiBicmVhay13b3JkIH0KKyAgICB0ZCx0aCB7IGJvcmRlcjogMXB4IHNvbGlkOyBib3JkZXItY29sb3I6ICNhYWFhYWE7IHBhZGRpbmctbGVmdDogMC41ZW07IHBhZGRpbmctcmlnaHQ6IDAuNWVtIH0KKyAgICAudGhfbmFtZSB7IHdpZHRoOiAyMCUgfQorICAgIC50aF91bml0cyB7IHdpZHRoOiAxMCUgfQorICAgIC50aF90YWdzIHsgd2lkdGg6IDUlIH0KKyAgICAudGhfZGV0YWlscyB7IHdpZHRoOiAyNSUgfQorICAgIC50aF90eXBlIHsgd2lkdGg6IDIwJSB9CisgICAgLnRoX2Rlc2NyaXB0aW9uIHsgd2lkdGg6IDIwJSB9CisgICAgLnRoX3JhbmdlIHsgd2lkdGg6IDEwJSB9CisgICAgdGQgeyBmb250LXNpemU6IDAuOWVtOyB9CisKKyAgICAvKiBoaWRlIHRoZSBmaXJzdCB0aGVhZCwgd2UgbmVlZCBpdCB0aGVyZSBvbmx5IHRvIGVuZm9yY2UgY29sdW1uIHNpemVzICovCisgICAgLnRoZWFkX2R1bW15IHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9CisKKyAgICAvKiBFbnRyeSBmbGFpciAqLworICAgIC5lbnRyeV9uYW1lIHsgY29sb3I6ICMzMzMzMzM7IHBhZGRpbmctbGVmdDoxLjBlbTsgZm9udC1zaXplOjEuMWVtOyBmb250LWZhbWlseTogbW9ub3NwYWNlOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IH0KKyAgICAuZW50cnlfbmFtZV9kZXByZWNhdGVkIHsgdGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaDsgfQorCisgICAgLyogRW50cnkgdHlwZSBmbGFpciAqLworICAgIC5lbnRyeV90eXBlX25hbWUgeyBmb250LXNpemU6MS4xZW07IGNvbG9yOiAjNjY5OTAwOyBmb250LXdlaWdodDogYm9sZDt9CisgICAgLmVudHJ5X3R5cGVfbmFtZV9lbnVtOmFmdGVyIHsgY29sb3I6ICM2Njk5MDA7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb250ZW50OiIgKGVudW0pIiB9CisgICAgLmVudHJ5X3R5cGVfdmlzaWJpbGl0eSB7IGZvbnQtd2VpZ2h0OiBib2xkZXI7IHBhZGRpbmctbGVmdDoxZW19CisgICAgLmVudHJ5X3R5cGVfc3ludGhldGljIHsgZm9udC13ZWlnaHQ6IGJvbGRlcjsgY29sb3I6ICM5OTY2MDA7IH0KKyAgICAuZW50cnlfdHlwZV9od2xldmVsIHsgZm9udC13ZWlnaHQ6IGJvbGRlcjsgY29sb3I6ICMwMDAwNjY7IH0KKyAgICAuZW50cnlfdHlwZV9kZXByZWNhdGVkIHsgZm9udC13ZWlnaHQ6IGJvbGRlcjsgY29sb3I6ICM0RDRENEQ7IH0KKyAgICAuZW50cnlfdHlwZV9lbnVtX25hbWUgeyBmb250LWZhbWlseTogbW9ub3NwYWNlOyBmb250LXdlaWdodDogYm9sZGVyOyB9CisgICAgLmVudHJ5X3R5cGVfZW51bV9ub3RlczpiZWZvcmUgeyBjb250ZW50OiIgLSAiIH0KKyAgICAuZW50cnlfdHlwZV9lbnVtX25vdGVzPnA6Zmlyc3QtY2hpbGQgeyBkaXNwbGF5OmlubGluZTsgfQorICAgIC5lbnRyeV90eXBlX2VudW1fdmFsdWU6YmVmb3JlIHsgY29udGVudDoiID0gIiB9CisgICAgLmVudHJ5X3R5cGVfZW51bV92YWx1ZSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IH0KKyAgICAuZW50cnkgdWwgeyBtYXJnaW46IDAgMCAwIDA7IGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTsgcGFkZGluZy1sZWZ0OiAwLjVlbTsgfQorICAgIC5lbnRyeSB1bCBsaSB7IHBhZGRpbmc6IDAgMCAwIDA7IG1hcmdpbjogMCAwIDAgMDt9CisgICAgLmVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQgeyBmb250LXdlaWdodDogYm9sZGVyOyB9CisKKyAgICAvKiBFbnRyeSB0YWdzIGZsYWlyICovCisgICAgLmVudHJ5X3RhZ3MgdWwgeyBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH0KKworICAgIC8qIEVudHJ5IGRldGFpbHMgKGZ1bGwgZG9jcykgZmxhaXIgKi8KKyAgICAuZW50cnlfZGV0YWlsc19oZWFkZXIgeyBmb250LXdlaWdodDogYm9sZDsgYmFja2dyb3VuZC1jb2xvcjogI2RkZGRkZDsKKyAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAxLjFlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW07IH0KKworICAgIC8qIEVudHJ5IHNwYWNlciBmbGFpciAqLworICAgIC5lbnRyeV9zcGFjZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgYm9yZGVyLXN0eWxlOiBub25lOyBoZWlnaHQ6IDAuNWVtOyB9CisKKyAgICAvKiBUT0RPOiBnZW5lcmF0ZSBhYmJyIGVsZW1lbnQgZm9yIGVhY2ggdGFnIGxpbms/ICovCisgICAgLyogVE9ETyBmb3IgZWFjaCB4LnkueiB0cnkgdG8gbGluayBpdCB0byB0aGUgZW50cnkgKi8KKworICA8L3N0eWxlPgorCisgIDxzdHlsZT4KKworICAgIHsKKyAgICAgIC8qIGJyb2tlbi4uLgorICAgICAgICAgc3VwcG9zZWRseSB0aGVyZSBpcyBhIGJ1ZyBpbiBjaHJvbWUgdGhhdCBpdCBsYXlzIG91dCB0YWJsZXMgYmVmb3JlCisgICAgICAgICBpdCBrbm93cyBpdHMgYmVpbmcgcHJpbnRlZCwgc28gdGhlIHBhZ2UtYnJlYWstKiBzdHlsZXMgYXJlIGlnbm9yZWQKKyAgICAgICAgICovCisgICAgICAgIHRyIHsgcGFnZS1icmVhay1hZnRlcjogYWx3YXlzOyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH0KKyAgICB9CisKKyAgPC9zdHlsZT4KKzwvaGVhZD4KKworCisKKzxib2R5PgorICA8aDE+QW5kcm9pZCBDYW1lcmEgSEFMMy4yIFByb3BlcnRpZXM8L2gxPgorCisKKyAgPGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj4KKyAgPHVsIGNsYXNzPSJ0b2MiPgorICAgIDxsaT48YSBocmVmPSIjdGFnX2luZGV4IiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj5UYWdzPC9hPjwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fY29sb3JDb3JyZWN0aW9uIj5jb2xvckNvcnJlY3Rpb248L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm08L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hYmVycmF0aW9uTW9kZSI+YW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYWJlcnJhdGlvbk1vZGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmFiZXJyYXRpb25Nb2RlIj5hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hYmVycmF0aW9uTW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmF2YWlsYWJsZUFiZXJyYXRpb25Nb2RlcyI+YW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYXZhaWxhYmxlQWJlcnJhdGlvbk1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9jb250cm9sIj5jb250cm9sPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlQW50aWJhbmRpbmdNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+YW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLmNvbnRyb2wuYWVMb2NrPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC5jb250cm9sLmFlTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVJlZ2lvbnMiPmFuZHJvaWQuY29udHJvbC5hZVJlZ2lvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWZNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmFmUmVnaW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuY29udHJvbC5hZlRyaWdnZXI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC5jb250cm9sLmF3YkxvY2s8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC5jb250cm9sLmF3Yk1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudCI+YW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZSI+YW5kcm9pZC5jb250cm9sLmVmZmVjdE1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC5jb250cm9sLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlIj5hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0Ij5hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3Q8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVBbnRpYmFuZGluZ01vZGVzIj5hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVBbnRpYmFuZGluZ01vZGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVNb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVUYXJnZXRGcHNSYW5nZXMiPmFuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZVRhcmdldEZwc1JhbmdlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25SYW5nZSI+YW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uUmFuZ2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uU3RlcCI+YW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uU3RlcDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWZBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC5jb250cm9sLmFmQXZhaWxhYmxlTW9kZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUVmZmVjdHMiPmFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVFZmZlY3RzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj5hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlU2NlbmVNb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlVmlkZW9TdGFiaWxpemF0aW9uTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVWaWRlb1N0YWJpbGl6YXRpb25Nb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXdiQXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hd2JBdmFpbGFibGVNb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZSI+YW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0F3YiI+YW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBd2I8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZiI+YW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlT3ZlcnJpZGVzIj5hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlT3ZlcnJpZGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrQXZhaWxhYmxlIj5hbmRyb2lkLmNvbnRyb2wuYWVMb2NrQXZhaWxhYmxlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrQXZhaWxhYmxlIj5hbmRyb2lkLmNvbnRyb2wuYXdiTG9ja0F2YWlsYWJsZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVNb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3RSYW5nZSI+YW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0UmFuZ2U8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlSWQiPmFuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVJZDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlQW50aWJhbmRpbmdNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC5jb250cm9sLmFlTG9jazwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC5jb250cm9sLmFlTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmFlUmVnaW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLmNvbnRyb2wuYWVTdGF0ZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC5jb250cm9sLmFmTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmFmUmVnaW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlcjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmU3RhdGUiPmFuZHJvaWQuY29udHJvbC5hZlN0YXRlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlcklkIj5hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VySWQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLmNvbnRyb2wuYXdiTG9jazwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuY29udHJvbC5hd2JNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmF3YlN0YXRlIj5hbmRyb2lkLmNvbnRyb2wuYXdiU3RhdGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlIj5hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuY29udHJvbC5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlIj5hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdCI+YW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0PC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9kZW1vc2FpYyI+ZGVtb3NhaWM8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmRlbW9zYWljLm1vZGUiPmFuZHJvaWQuZGVtb3NhaWMubW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fZWRnZSI+ZWRnZTwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZWRnZS5tb2RlIj5hbmRyb2lkLmVkZ2UubW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZWRnZS5zdHJlbmd0aCI+YW5kcm9pZC5lZGdlLnN0cmVuZ3RoPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5lZGdlLmF2YWlsYWJsZUVkZ2VNb2RlcyI+YW5kcm9pZC5lZGdlLmF2YWlsYWJsZUVkZ2VNb2RlczwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuZWRnZS5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9mbGFzaCI+Zmxhc2g8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLmZpcmluZ1Bvd2VyIj5hbmRyb2lkLmZsYXNoLmZpcmluZ1Bvd2VyPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5mbGFzaC5maXJpbmdUaW1lIj5hbmRyb2lkLmZsYXNoLmZpcmluZ1RpbWU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLm1vZGUiPmFuZHJvaWQuZmxhc2gubW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisKKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSI+YW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmZsYXNoLmluZm8uY2hhcmdlRHVyYXRpb24iPmFuZHJvaWQuZmxhc2guaW5mby5jaGFyZ2VEdXJhdGlvbjwvYT48L2xpPgorCisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2guY29sb3JUZW1wZXJhdHVyZSI+YW5kcm9pZC5mbGFzaC5jb2xvclRlbXBlcmF0dXJlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2gubWF4RW5lcmd5Ij5hbmRyb2lkLmZsYXNoLm1heEVuZXJneTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5mbGFzaC5maXJpbmdQb3dlciI+YW5kcm9pZC5mbGFzaC5maXJpbmdQb3dlcjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5mbGFzaC5maXJpbmdUaW1lIj5hbmRyb2lkLmZsYXNoLmZpcmluZ1RpbWU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuZmxhc2gubW9kZSI+YW5kcm9pZC5mbGFzaC5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmZsYXNoLnN0YXRlIj5hbmRyb2lkLmZsYXNoLnN0YXRlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9ob3RQaXhlbCI+aG90UGl4ZWw8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmhvdFBpeGVsLm1vZGUiPmFuZHJvaWQuaG90UGl4ZWwubW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaG90UGl4ZWwuYXZhaWxhYmxlSG90UGl4ZWxNb2RlcyI+YW5kcm9pZC5ob3RQaXhlbC5hdmFpbGFibGVIb3RQaXhlbE1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmhvdFBpeGVsLm1vZGUiPmFuZHJvaWQuaG90UGl4ZWwubW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fanBlZyI+anBlZzwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy5ncHNMb2NhdGlvbiI+YW5kcm9pZC5qcGVnLmdwc0xvY2F0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLmdwc0Nvb3JkaW5hdGVzIj5hbmRyb2lkLmpwZWcuZ3BzQ29vcmRpbmF0ZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzUHJvY2Vzc2luZ01ldGhvZCI+YW5kcm9pZC5qcGVnLmdwc1Byb2Nlc3NpbmdNZXRob2Q8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzVGltZXN0YW1wIj5hbmRyb2lkLmpwZWcuZ3BzVGltZXN0YW1wPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLm9yaWVudGF0aW9uIj5hbmRyb2lkLmpwZWcub3JpZW50YXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcucXVhbGl0eSI+YW5kcm9pZC5qcGVnLnF1YWxpdHk8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcudGh1bWJuYWlsUXVhbGl0eSI+YW5kcm9pZC5qcGVnLnRodW1ibmFpbFF1YWxpdHk8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcudGh1bWJuYWlsU2l6ZSI+YW5kcm9pZC5qcGVnLnRodW1ibmFpbFNpemU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmpwZWcuYXZhaWxhYmxlVGh1bWJuYWlsU2l6ZXMiPmFuZHJvaWQuanBlZy5hdmFpbGFibGVUaHVtYm5haWxTaXplczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmpwZWcubWF4U2l6ZSI+YW5kcm9pZC5qcGVnLm1heFNpemU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuanBlZy5ncHNMb2NhdGlvbiI+YW5kcm9pZC5qcGVnLmdwc0xvY2F0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcuZ3BzQ29vcmRpbmF0ZXMiPmFuZHJvaWQuanBlZy5ncHNDb29yZGluYXRlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5qcGVnLmdwc1Byb2Nlc3NpbmdNZXRob2QiPmFuZHJvaWQuanBlZy5ncHNQcm9jZXNzaW5nTWV0aG9kPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcuZ3BzVGltZXN0YW1wIj5hbmRyb2lkLmpwZWcuZ3BzVGltZXN0YW1wPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcub3JpZW50YXRpb24iPmFuZHJvaWQuanBlZy5vcmllbnRhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5qcGVnLnF1YWxpdHkiPmFuZHJvaWQuanBlZy5xdWFsaXR5PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcuc2l6ZSI+YW5kcm9pZC5qcGVnLnNpemU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuanBlZy50aHVtYm5haWxRdWFsaXR5Ij5hbmRyb2lkLmpwZWcudGh1bWJuYWlsUXVhbGl0eTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5qcGVnLnRodW1ibmFpbFNpemUiPmFuZHJvaWQuanBlZy50aHVtYm5haWxTaXplPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9sZW5zIj5sZW5zPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLmxlbnMuYXBlcnR1cmU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eSI+YW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHk8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPmFuZHJvaWQubGVucy5mb2NhbExlbmd0aDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorCisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUFwZXJ0dXJlcyI+YW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlQXBlcnR1cmVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZpbHRlckRlbnNpdGllcyI+YW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRmlsdGVyRGVuc2l0aWVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZvY2FsTGVuZ3RocyI+YW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRm9jYWxMZW5ndGhzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZU9wdGljYWxTdGFiaWxpemF0aW9uIj5hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVPcHRpY2FsU3RhYmlsaXphdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5oeXBlcmZvY2FsRGlzdGFuY2UiPmFuZHJvaWQubGVucy5pbmZvLmh5cGVyZm9jYWxEaXN0YW5jZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uc2hhZGluZ01hcFNpemUiPmFuZHJvaWQubGVucy5pbmZvLnNoYWRpbmdNYXBTaXplPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbiI+YW5kcm9pZC5sZW5zLmluZm8uZm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmZhY2luZyI+YW5kcm9pZC5sZW5zLmZhY2luZzwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb24iPmFuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmludHJpbnNpY0NhbGlicmF0aW9uIj5hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPmFuZHJvaWQubGVucy5hcGVydHVyZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHkiPmFuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPmFuZHJvaWQubGVucy5mb2NhbExlbmd0aDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuZm9jdXNSYW5nZSI+YW5kcm9pZC5sZW5zLmZvY3VzUmFuZ2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5zdGF0ZSI+YW5kcm9pZC5sZW5zLnN0YXRlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMucG9zZVRyYW5zbGF0aW9uIj5hbmRyb2lkLmxlbnMucG9zZVRyYW5zbGF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9ub2lzZVJlZHVjdGlvbiI+bm9pc2VSZWR1Y3Rpb248L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24uc3RyZW5ndGgiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24uc3RyZW5ndGg8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXMiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlczwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj5hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX3F1aXJrcyI+cXVpcmtzPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5xdWlya3MubWV0ZXJpbmdDcm9wUmVnaW9uIj5hbmRyb2lkLnF1aXJrcy5tZXRlcmluZ0Nyb3BSZWdpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucXVpcmtzLnRyaWdnZXJBZldpdGhBdXRvIj5hbmRyb2lkLnF1aXJrcy50cmlnZ2VyQWZXaXRoQXV0bzwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5xdWlya3MudXNlWnNsRm9ybWF0Ij5hbmRyb2lkLnF1aXJrcy51c2Vac2xGb3JtYXQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucXVpcmtzLnVzZVBhcnRpYWxSZXN1bHQiPmFuZHJvaWQucXVpcmtzLnVzZVBhcnRpYWxSZXN1bHQ8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnF1aXJrcy5wYXJ0aWFsUmVzdWx0Ij5hbmRyb2lkLnF1aXJrcy5wYXJ0aWFsUmVzdWx0PC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9yZXF1ZXN0Ij5yZXF1ZXN0PC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5mcmFtZUNvdW50Ij5hbmRyb2lkLnJlcXVlc3QuZnJhbWVDb3VudDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5pZCI+YW5kcm9pZC5yZXF1ZXN0LmlkPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5pbnB1dFN0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5pbnB1dFN0cmVhbXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QubWV0YWRhdGFNb2RlIj5hbmRyb2lkLnJlcXVlc3QubWV0YWRhdGFNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3Qub3V0cHV0U3RyZWFtczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QudHlwZSI+YW5kcm9pZC5yZXF1ZXN0LnR5cGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0U3RyZWFtcyI+YW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFN0cmVhbXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFJhdyI+YW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFJhdzwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UHJvYyI+YW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFByb2M8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFByb2NTdGFsbGluZyI+YW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFByb2NTdGFsbGluZzwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bVJlcHJvY2Vzc1N0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5tYXhOdW1SZXByb2Nlc3NTdHJlYW1zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1JbnB1dFN0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5tYXhOdW1JbnB1dFN0cmVhbXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lTWF4RGVwdGgiPmFuZHJvaWQucmVxdWVzdC5waXBlbGluZU1heERlcHRoPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5wYXJ0aWFsUmVzdWx0Q291bnQiPmFuZHJvaWQucmVxdWVzdC5wYXJ0aWFsUmVzdWx0Q291bnQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlUmVxdWVzdEtleXMiPmFuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXF1ZXN0S2V5czwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlUmVzdWx0S2V5cyI+YW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZVJlc3VsdEtleXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNoYXJhY3RlcmlzdGljc0tleXMiPmFuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDaGFyYWN0ZXJpc3RpY3NLZXlzPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0LmZyYW1lQ291bnQiPmFuZHJvaWQucmVxdWVzdC5mcmFtZUNvdW50PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnJlcXVlc3QuaWQiPmFuZHJvaWQucmVxdWVzdC5pZDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0Lm1ldGFkYXRhTW9kZSI+YW5kcm9pZC5yZXF1ZXN0Lm1ldGFkYXRhTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3Qub3V0cHV0U3RyZWFtczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lRGVwdGgiPmFuZHJvaWQucmVxdWVzdC5waXBlbGluZURlcHRoPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9zY2FsZXIiPnNjYWxlcjwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb248L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlRm9ybWF0cyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlRm9ybWF0czwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSnBlZ01pbkR1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSnBlZ01pbkR1cmF0aW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSnBlZ1NpemVzIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVKcGVnU2l6ZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWF4RGlnaXRhbFpvb20iPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZU1heERpZ2l0YWxab29tPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVQcm9jZXNzZWRNaW5EdXJhdGlvbnMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZE1pbkR1cmF0aW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkU2l6ZXMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZFNpemVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVSYXdNaW5EdXJhdGlvbnMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVJhd01pbkR1cmF0aW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUmF3U2l6ZXMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVJhd1NpemVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUlucHV0T3V0cHV0Rm9ybWF0c01hcCI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSW5wdXRPdXRwdXRGb3JtYXRzTWFwPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNaW5GcmFtZUR1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWluRnJhbWVEdXJhdGlvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RhbGxEdXJhdGlvbnMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXA8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuY3JvcHBpbmdUeXBlIj5hbmRyb2lkLnNjYWxlci5jcm9wcGluZ1R5cGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb248L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX3NlbnNvciI+c2Vuc29yPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5EYXRhIj5hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybkRhdGE8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybk1vZGUiPmFuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuTW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisKKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5zZW5zaXRpdml0eVJhbmdlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uY29sb3JGaWx0ZXJBcnJhbmdlbWVudCI+YW5kcm9pZC5zZW5zb3IuaW5mby5jb2xvckZpbHRlckFycmFuZ2VtZW50PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPmFuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5tYXhGcmFtZUR1cmF0aW9uIj5hbmRyb2lkLnNlbnNvci5pbmZvLm1heEZyYW1lRHVyYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waHlzaWNhbFNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucGh5c2ljYWxTaXplPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby53aGl0ZUxldmVsIj5hbmRyb2lkLnNlbnNvci5pbmZvLndoaXRlTGV2ZWw8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby50aW1lc3RhbXBTb3VyY2UiPmFuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubGVuc1NoYWRpbmdBcHBsaWVkIj5hbmRyb2lkLnNlbnNvci5pbmZvLmxlbnNTaGFkaW5nQXBwbGllZDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZTwvYT48L2xpPgorCisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQxIj5hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MiI+YW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0xIj5hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTE8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0yIj5hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY29sb3JUcmFuc2Zvcm0xIj5hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTE8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY29sb3JUcmFuc2Zvcm0yIj5hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDEiPmFuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgxPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgyIj5hbmRyb2lkLnNlbnNvci5mb3J3YXJkTWF0cml4MjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5iYXNlR2FpbkZhY3RvciI+YW5kcm9pZC5zZW5zb3IuYmFzZUdhaW5GYWN0b3I8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPmFuZHJvaWQuc2Vuc29yLmJsYWNrTGV2ZWxQYXR0ZXJuPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm1heEFuYWxvZ1NlbnNpdGl2aXR5Ij5hbmRyb2lkLnNlbnNvci5tYXhBbmFsb2dTZW5zaXRpdml0eTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcmllbnRhdGlvbiI+YW5kcm9pZC5zZW5zb3Iub3JpZW50YXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcERpbWVuc2lvbnMiPmFuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXBEaW1lbnNpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmF2YWlsYWJsZVRlc3RQYXR0ZXJuTW9kZXMiPmFuZHJvaWQuc2Vuc29yLmF2YWlsYWJsZVRlc3RQYXR0ZXJuTW9kZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3B0aWNhbEJsYWNrUmVnaW9ucyI+YW5kcm9pZC5zZW5zb3Iub3B0aWNhbEJsYWNrUmVnaW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcGFxdWVSYXdTaXplIj5hbmRyb2lkLnNlbnNvci5vcGFxdWVSYXdTaXplPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci50aW1lc3RhbXAiPmFuZHJvaWQuc2Vuc29yLnRpbWVzdGFtcDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGVtcGVyYXR1cmUiPmFuZHJvaWQuc2Vuc29yLnRlbXBlcmF0dXJlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5uZXV0cmFsQ29sb3JQb2ludCI+YW5kcm9pZC5zZW5zb3IubmV1dHJhbENvbG9yUG9pbnQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLm5vaXNlUHJvZmlsZSI+YW5kcm9pZC5zZW5zb3Iubm9pc2VQcm9maWxlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5wcm9maWxlSHVlU2F0TWFwIj5hbmRyb2lkLnNlbnNvci5wcm9maWxlSHVlU2F0TWFwPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5wcm9maWxlVG9uZUN1cnZlIj5hbmRyb2lkLnNlbnNvci5wcm9maWxlVG9uZUN1cnZlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5ncmVlblNwbGl0Ij5hbmRyb2lkLnNlbnNvci5ncmVlblNwbGl0PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybkRhdGEiPmFuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuRGF0YTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5Nb2RlIj5hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybk1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnJvbGxpbmdTaHV0dGVyU2tldyI+YW5kcm9pZC5zZW5zb3Iucm9sbGluZ1NodXR0ZXJTa2V3PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5keW5hbWljQmxhY2tMZXZlbCI+YW5kcm9pZC5zZW5zb3IuZHluYW1pY0JsYWNrTGV2ZWw8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmR5bmFtaWNXaGl0ZUxldmVsIj5hbmRyb2lkLnNlbnNvci5keW5hbWljV2hpdGVMZXZlbDwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fc2hhZGluZyI+c2hhZGluZzwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5tb2RlIj5hbmRyb2lkLnNoYWRpbmcubW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5zdHJlbmd0aCI+YW5kcm9pZC5zaGFkaW5nLnN0cmVuZ3RoPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNoYWRpbmcubW9kZSI+YW5kcm9pZC5zaGFkaW5nLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNoYWRpbmcuYXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuc2hhZGluZy5hdmFpbGFibGVNb2RlczwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fc3RhdGlzdGljcyI+c3RhdGlzdGljczwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbU1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW1Nb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXBNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorCisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUZhY2VEZXRlY3RNb2RlcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlRmFjZURldGVjdE1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmhpc3RvZ3JhbUJ1Y2tldENvdW50Ij5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5oaXN0b2dyYW1CdWNrZXRDb3VudDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhGYWNlQ291bnQiPmFuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heEZhY2VDb3VudDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhIaXN0b2dyYW1Db3VudCI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4SGlzdG9ncmFtQ291bnQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4U2hhcnBuZXNzTWFwVmFsdWUiPmFuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heFNoYXJwbmVzc01hcFZhbHVlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLnNoYXJwbmVzc01hcFNpemUiPmFuZHJvaWQuc3RhdGlzdGljcy5pbmZvLnNoYXJwbmVzc01hcFNpemU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVMZW5zU2hhZGluZ01hcE1vZGVzIj5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVMZW5zU2hhZGluZ01hcE1vZGVzPC9hPjwvbGk+CisKKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUlkcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VJZHM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlTGFuZG1hcmtzIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUxhbmRtYXJrczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VSZWN0YW5nbGVzIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVJlY3RhbmdsZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlU2NvcmVzIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVNjb3JlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VzIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW0iPmFuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW08L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW1Nb2RlIj5hbmRyb2lkLnN0YXRpc3RpY3MuaGlzdG9ncmFtTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcCI+YW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXBNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdDb3JyZWN0aW9uTWFwIj5hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdDb3JyZWN0aW9uTWFwPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAiPmFuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5wcmVkaWN0ZWRDb2xvckdhaW5zIj5hbmRyb2lkLnN0YXRpc3RpY3MucHJlZGljdGVkQ29sb3JHYWluczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5wcmVkaWN0ZWRDb2xvclRyYW5zZm9ybSI+YW5kcm9pZC5zdGF0aXN0aWNzLnByZWRpY3RlZENvbG9yVHJhbnNmb3JtPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3Muc2NlbmVGbGlja2VyIj5hbmRyb2lkLnN0YXRpc3RpY3Muc2NlbmVGbGlja2VyPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXBNb2RlIj5hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXBNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fdG9uZW1hcCI+dG9uZW1hcDwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZUJsdWUiPmFuZHJvaWQudG9uZW1hcC5jdXJ2ZUJsdWU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVHcmVlbiI+YW5kcm9pZC50b25lbWFwLmN1cnZlR3JlZW48L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC50b25lbWFwLmN1cnZlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQudG9uZW1hcC5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmdhbW1hIj5hbmRyb2lkLnRvbmVtYXAuZ2FtbWE8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAucHJlc2V0Q3VydmUiPmFuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5tYXhDdXJ2ZVBvaW50cyI+YW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5hdmFpbGFibGVUb25lTWFwTW9kZXMiPmFuZHJvaWQudG9uZW1hcC5hdmFpbGFibGVUb25lTWFwTW9kZXM8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZUJsdWUiPmFuZHJvaWQudG9uZW1hcC5jdXJ2ZUJsdWU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZUdyZWVuIj5hbmRyb2lkLnRvbmVtYXAuY3VydmVHcmVlbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC50b25lbWFwLmN1cnZlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC50b25lbWFwLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5nYW1tYSI+YW5kcm9pZC50b25lbWFwLmdhbW1hPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnRvbmVtYXAucHJlc2V0Q3VydmUiPmFuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fbGVkIj5sZWQ8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlZC50cmFuc21pdCI+YW5kcm9pZC5sZWQudHJhbnNtaXQ8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVkLnRyYW5zbWl0Ij5hbmRyb2lkLmxlZC50cmFuc21pdDwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVkLmF2YWlsYWJsZUxlZHMiPmFuZHJvaWQubGVkLmF2YWlsYWJsZUxlZHM8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX2luZm8iPmluZm88L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbDwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fYmxhY2tMZXZlbCI+YmxhY2tMZXZlbDwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuYmxhY2tMZXZlbC5sb2NrIj5hbmRyb2lkLmJsYWNrTGV2ZWwubG9jazwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5ibGFja0xldmVsLmxvY2siPmFuZHJvaWQuYmxhY2tMZXZlbC5sb2NrPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9zeW5jIj5zeW5jPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+YW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zeW5jLm1heExhdGVuY3kiPmFuZHJvaWQuc3luYy5tYXhMYXRlbmN5PC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9yZXByb2Nlc3MiPnJlcHJvY2VzczwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj5hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvcjwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPmFuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXByb2Nlc3MubWF4Q2FwdHVyZVN0YWxsIj5hbmRyb2lkLnJlcHJvY2Vzcy5tYXhDYXB0dXJlU3RhbGw8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX2RlcHRoIj5kZXB0aDwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5tYXhEZXB0aFNhbXBsZXMiPmFuZHJvaWQuZGVwdGgubWF4RGVwdGhTYW1wbGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucyI+YW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhNaW5GcmFtZUR1cmF0aW9ucyI+YW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aE1pbkZyYW1lRHVyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhTdGFsbER1cmF0aW9ucyI+YW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aFN0YWxsRHVyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguZGVwdGhJc0V4Y2x1c2l2ZSI+YW5kcm9pZC5kZXB0aC5kZXB0aElzRXhjbHVzaXZlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgPC91bD4KKworCisgIDxoMT5Qcm9wZXJ0aWVzPC9oMT4KKyAgPHRhYmxlIGNsYXNzPSJwcm9wZXJ0aWVzIj4KKworICAgIDx0aGVhZCBjbGFzcz0idGhlYWRfZHVtbXkiPgorICAgICAgPHRyPgorICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RoZWFkPiA8IS0tIHNvIHRoYXQgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlYWQgaXMgbm90CisgICAgICAgICAgICAgICAgICAgICAgICAgYWJvdmUgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdHIgLS0+Cis8IS0tIDxuYW1lc3BhY2UgbmFtZT0iYW5kcm9pZCI+IC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX2NvbG9yQ29ycmVjdGlvbiIgY2xhc3M9InNlY3Rpb24iPmNvbG9yQ29ycmVjdGlvbjwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VFJBTlNGT1JNX01BVFJJWDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+IG1hdHJpeAorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IHRvIGRvIGNvbG9yIGNvbnZlcnNpb24uPHdici8+PC9wPgorPHA+QWxsIGFkdmFuY2VkIHdoaXRlIGJhbGFuY2UgYWRqdXN0bWVudHMgKG5vdCBzcGVjaWZpZWQKK2J5IG91ciB3aGl0ZSBiYWxhbmNlIHBpcGVsaW5lKSBtdXN0IGJlIGRpc2FibGVkLjx3YnIvPjwvcD4KKzxwPklmIEFXQiBpcyBlbmFibGVkIHdpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gIT0gT0ZGPC9jb2RlPiw8d2JyLz4gdGhlbgorVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCBpcyBpZ25vcmVkLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB3aWxsIG92ZXJyaWRlCit0aGlzIHZhbHVlIHRvIGVpdGhlciBGQVNUIG9yIEhJR0hfPHdici8+UVVBTElUWS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Db2xvciBjb3JyZWN0aW9uIHByb2Nlc3NpbmcgbXVzdCBub3Qgc2xvdyBkb3duCitjYXB0dXJlIHJhdGUgcmVsYXRpdmUgdG8gc2Vuc29yIHJhdyBvdXRwdXQuPHdici8+PC9wPgorPHA+QWR2YW5jZWQgd2hpdGUgYmFsYW5jZSBhZGp1c3RtZW50cyBhYm92ZSBhbmQgYmV5b25kCit0aGUgc3BlY2lmaWVkIHdoaXRlIGJhbGFuY2UgcGlwZWxpbmUgbWF5IGJlIGFwcGxpZWQuPHdici8+PC9wPgorPHA+SWYgQVdCIGlzIGVuYWJsZWQgd2l0aCA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiAhPSBPRkY8L2NvZGU+LDx3YnIvPiB0aGVuCit0aGUgY2FtZXJhIGRldmljZSB1c2VzIHRoZSBsYXN0IGZyYW1lJ3MgQVdCIHZhbHVlcworKG9yIGRlZmF1bHRzIGlmIEFXQiBoYXMgbmV2ZXIgYmVlbiBydW4pLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Q29sb3IgY29ycmVjdGlvbiBwcm9jZXNzaW5nIG9wZXJhdGVzIGF0IGltcHJvdmVkCitxdWFsaXR5IGJ1dCB0aGUgY2FwdHVyZSByYXRlIG1pZ2h0IGJlIHJlZHVjZWQgKHJlbGF0aXZlIHRvIHNlbnNvcgorcmF3IG91dHB1dCByYXRlKTwvcD4KKzxwPkFkdmFuY2VkIHdoaXRlIGJhbGFuY2UgYWRqdXN0bWVudHMgYWJvdmUgYW5kIGJleW9uZAordGhlIHNwZWNpZmllZCB3aGl0ZSBiYWxhbmNlIHBpcGVsaW5lIG1heSBiZSBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPklmIEFXQiBpcyBlbmFibGVkIHdpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gIT0gT0ZGPC9jb2RlPiw8d2JyLz4gdGhlbgordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyB0aGUgbGFzdCBmcmFtZSdzIEFXQiB2YWx1ZXMKKyhvciBkZWZhdWx0cyBpZiBBV0IgaGFzIG5ldmVyIGJlZW4gcnVuKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbW9kZSBjb250cm9sIHNlbGVjdHMgaG93IHRoZSBpbWFnZSBkYXRhIGlzIGNvbnZlcnRlZCBmcm9tIHRoZQorc2Vuc29yJ3MgbmF0aXZlIGNvbG9yIGludG8gbGluZWFyIHNSR0IgY29sb3IuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgaXMgZW5hYmxlZCB3aXRoIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiB0aGlzCitjb250cm9sIGlzIG92ZXJyaWRkZW4gYnkgdGhlIEFXQiByb3V0aW5lLjx3YnIvPiBXaGVuIEFXQiBpcyBkaXNhYmxlZCw8d2JyLz4gdGhlCithcHBsaWNhdGlvbiBjb250cm9scyBob3cgdGhlIGNvbG9yIG1hcHBpbmcgaXMgcGVyZm9ybWVkLjx3YnIvPjwvcD4KKzxwPldlIGRlZmluZSB0aGUgZXhwZWN0ZWQgcHJvY2Vzc2luZyBwaXBlbGluZSBiZWxvdy48d2JyLz4gRm9yIGNvbnNpc3RlbmN5CithY3Jvc3MgZGV2aWNlcyw8d2JyLz4gdGhpcyBpcyBhbHdheXMgdGhlIGNhc2Ugd2l0aCBUUkFOU0ZPUk1fPHdici8+TUFUUklYLjx3YnIvPjwvcD4KKzxwPldoZW4gZWl0aGVyIEZVTEwgb3IgSElHSF88d2JyLz5RVUFMSVRZIGlzIHVzZWQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heQorZG8gYWRkaXRpb25hbCBwcm9jZXNzaW5nIGJ1dCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4gd2lsbCBzdGlsbCBiZSBwcm92aWRlZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UgKGluIHRoZSByZXN1bHRzKSBhbmQgYmUgcm91Z2hseSBjb3JyZWN0Ljx3YnIvPjwvcD4KKzxwPlN3aXRjaGluZyB0byBUUkFOU0ZPUk1fPHdici8+TUFUUklYIGFuZCB1c2luZyB0aGUgZGF0YSBwcm92aWRlZCBmcm9tCitGQVNUIG9yIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIHlpZWxkIGEgcGljdHVyZSB3aXRoIHRoZSBzYW1lIHdoaXRlIHBvaW50CithcyB3aGF0IHdhcyBwcm9kdWNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBpbiB0aGUgZWFybGllciBmcmFtZS48d2JyLz48L3A+Cis8cD5UaGUgZXhwZWN0ZWQgcHJvY2Vzc2luZyBwaXBlbGluZSBpcyBhcyBmb2xsb3dzOjwvcD4KKzxwPjxpbWcgYWx0PSJXaGl0ZSBiYWxhbmNlIHByb2Nlc3NpbmcgcGlwZWxpbmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZS9wcm9jZXNzaW5nX3BpcGVsaW5lLnBuZyIvPjwvcD4KKzxwPlRoZSB3aGl0ZSBiYWxhbmNlIGlzIGVuY29kZWQgYnkgdHdvIHZhbHVlcyw8d2JyLz4gYSA0LWNoYW5uZWwgd2hpdGUtYmFsYW5jZQorZ2FpbiB2ZWN0b3IgKGFwcGxpZWQgaW4gdGhlIEJheWVyIGRvbWFpbiksPHdici8+IGFuZCBhIDN4MyBjb2xvciB0cmFuc2Zvcm0KK21hdHJpeCAoYXBwbGllZCBhZnRlciBkZW1vc2FpYykuPHdici8+PC9wPgorPHA+VGhlIDQtY2hhbm5lbCB3aGl0ZS1iYWxhbmNlIGdhaW5zIGFyZSBkZWZpbmVkIGFzOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gPSBbIFIgR188d2JyLz5ldmVuIEdfPHdici8+b2RkIEIgXQorPC9jb2RlPjwvcHJlPgorPHA+d2hlcmUgPGNvZGU+R188d2JyLz5ldmVuPC9jb2RlPiBpcyB0aGUgZ2FpbiBmb3IgZ3JlZW4gcGl4ZWxzIG9uIGV2ZW4gcm93cyBvZiB0aGUKK291dHB1dCw8d2JyLz4gYW5kIDxjb2RlPkdfPHdici8+b2RkPC9jb2RlPiBpcyB0aGUgZ2FpbiBmb3IgZ3JlZW4gcGl4ZWxzIG9uIHRoZSBvZGQgcm93cy48d2JyLz4KK1RoZXNlIG1heSBiZSBpZGVudGljYWwgZm9yIGEgZ2l2ZW4gY2FtZXJhIGRldmljZSBpbXBsZW1lbnRhdGlvbjsgaWYKK3RoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgYSBzZXBhcmF0ZSBnYWluIGZvciBldmVuLzx3YnIvPm9kZCBncmVlbgorY2hhbm5lbHMsPHdici8+IGl0IHdpbGwgdXNlIHRoZSA8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IHZhbHVlLDx3YnIvPiBhbmQgd3JpdGUgPGNvZGU+R188d2JyLz5vZGQ8L2NvZGU+IGVxdWFsIHRvCis8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IGluIHRoZSBvdXRwdXQgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKzxwPlRoZSBtYXRyaWNlcyBmb3IgY29sb3IgdHJhbnNmb3JtcyBhcmUgZGVmaW5lZCBhcyBhIDktZW50cnkgdmVjdG9yOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPiA9IFsgSTAgSTEgSTIgSTMgSTQgSTUgSTYgSTcgSTggXQorPC9jb2RlPjwvcHJlPgorPHA+d2hpY2ggZGVmaW5lIGEgdHJhbnNmb3JtIGZyb20gaW5wdXQgc2Vuc29yIGNvbG9ycyw8d2JyLz4gPGNvZGU+UF88d2JyLz5pbiA9IFsgciBnIGIgXTwvY29kZT4sPHdici8+Cit0byBvdXRwdXQgbGluZWFyIHNSR0IsPHdici8+IDxjb2RlPlBfPHdici8+b3V0ID0gWyByJyBnJyBiJyBdPC9jb2RlPiw8d2JyLz48L3A+Cis8cD53aXRoIGNvbG9ycyBhcyBmb2xsb3dzOjwvcD4KKzxwcmU+PGNvZGU+cicgPSBJMHIgKyBJMWcgKyBJMmIKK2cnID0gSTNyICsgSTRnICsgSTViCitiJyA9IEk2ciArIEk3ZyArIEk4YgorPC9jb2RlPjwvcHJlPgorPHA+Qm90aCB0aGUgaW5wdXQgYW5kIG91dHB1dCB2YWx1ZSByYW5nZXMgbXVzdCBtYXRjaC48d2JyLz4gT3ZlcmZsb3cvPHdici8+dW5kZXJmbG93Cit2YWx1ZXMgYXJlIGNsaXBwZWQgdG8gZml0IHdpdGhpbiB0aGUgcmFuZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5IQUwgbXVzdCBzdXBwb3J0IGJvdGggRkFTVCBhbmQgSElHSF88d2JyLz5RVUFMSVRZIGlmIGNvbG9yIGNvcnJlY3Rpb24gY29udHJvbCBpcyBhdmFpbGFibGUKK29uIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBidXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gY2FuIGJlIHRoZSBzYW1lIGZvciBib3RoIG1vZGVzLjx3YnIvPgorVGhhdCBpcyw8d2JyLz4gaWYgdGhlIGhpZ2hlc3QgcXVhbGl0eSBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgY2FtZXJhIGRldmljZSBkb2VzIG5vdCBzbG93IGRvd24KK2NhcHR1cmUgcmF0ZSw8d2JyLz4gdGhlbiBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgc2hvdWxkIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgY29sb3JTcGFjZVRyYW5zZm9ybV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4zeDMgcmF0aW9uYWwgbWF0cml4IGluIHJvdy1tYWpvciBvcmRlcjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgY29sb3IgdHJhbnNmb3JtIG1hdHJpeCB0byB1c2UgdG8gdHJhbnNmb3JtCitmcm9tIHNlbnNvciBSR0IgY29sb3Igc3BhY2UgdG8gb3V0cHV0IGxpbmVhciBzUkdCIGNvbG9yIHNwYWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBVbml0bGVzcyBzY2FsZSBmYWN0b3JzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBtYXRyaXggaXMgZWl0aGVyIHNldCBieSB0aGUgY2FtZXJhIGRldmljZSB3aGVuIHRoZSByZXF1ZXN0Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4gaXMgbm90IFRSQU5TRk9STV88d2JyLz5NQVRSSVgsPHdici8+IG9yCitkaXJlY3RseSBieSB0aGUgYXBwbGljYXRpb24gaW4gdGhlIHJlcXVlc3Qgd2hlbiB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiBpcyBUUkFOU0ZPUk1fPHdici8+TUFUUklYLjx3YnIvPjwvcD4KKzxwPkluIHRoZSBsYXR0ZXIgY2FzZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IHJvdW5kIHRoZSBtYXRyaXggdG8gYWNjb3VudAorZm9yIHByZWNpc2lvbiBpc3N1ZXM7IHRoZSBmaW5hbCByb3VuZGVkIG1hdHJpeCBzaG91bGQgYmUgcmVwb3J0ZWQgYmFjaworaW4gdGhpcyBtYXRyaXggcmVzdWx0IG1ldGFkYXRhLjx3YnIvPiBUaGUgdHJhbnNmb3JtIHNob3VsZCBrZWVwIHRoZSBtYWduaXR1ZGUKK29mIHRoZSBvdXRwdXQgY29sb3IgdmFsdWVzIHdpdGhpbiA8Y29kZT5bMCw8d2JyLz4gMS48d2JyLz4wXTwvY29kZT4gKGFzc3VtaW5nIGlucHV0IGNvbG9yCit2YWx1ZXMgaXMgd2l0aGluIHRoZSBub3JtYWxpemVkIHJhbmdlIDxjb2RlPlswLDx3YnIvPiAxLjx3YnIvPjBdPC9jb2RlPiksPHdici8+IG9yIGNsaXBwaW5nIG1heSBvY2N1ci48d2JyLz48L3A+Cis8cD5UaGUgdmFsaWQgcmFuZ2Ugb2YgZWFjaCBtYXRyaXggZWxlbWVudCB2YXJpZXMgb24gZGlmZmVyZW50IGRldmljZXMsPHdici8+IGJ1dAordmFsdWVzIHdpdGhpbiBbLTEuPHdici8+NSw8d2JyLz4gMy48d2JyLz4wXSBhcmUgZ3VhcmFudGVlZCBub3QgdG8gYmUgY2xpcHBlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByZ2diQ2hhbm5lbFZlY3Rvcl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5BIDFEIGFycmF5IG9mIGZsb2F0cyBmb3IgNCBjb2xvciBjaGFubmVsIGdhaW5zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+R2FpbnMgYXBwbHlpbmcgdG8gQmF5ZXIgcmF3IGNvbG9yIGNoYW5uZWxzIGZvcgord2hpdGUtYmFsYW5jZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgVW5pdGxlc3MgZ2FpbiBmYWN0b3JzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlc2UgcGVyLWNoYW5uZWwgZ2FpbnMgYXJlIGVpdGhlciBzZXQgYnkgdGhlIGNhbWVyYSBkZXZpY2UKK3doZW4gdGhlIHJlcXVlc3QgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+IGlzIG5vdAorVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCw8d2JyLz4gb3IgZGlyZWN0bHkgYnkgdGhlIGFwcGxpY2F0aW9uIGluIHRoZQorcmVxdWVzdCB3aGVuIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4gaXMKK1RSQU5TRk9STV88d2JyLz5NQVRSSVguPHdici8+PC9wPgorPHA+VGhlIGdhaW5zIGluIHRoZSByZXN1bHQgbWV0YWRhdGEgYXJlIHRoZSBnYWlucyBhY3R1YWxseQorYXBwbGllZCBieSB0aGUgY2FtZXJhIGRldmljZSB0byB0aGUgY3VycmVudCBmcmFtZS48d2JyLz48L3A+Cis8cD5UaGUgdmFsaWQgcmFuZ2Ugb2YgZ2FpbnMgdmFyaWVzIG9uIGRpZmZlcmVudCBkZXZpY2VzLDx3YnIvPiBidXQgZ2FpbnMKK2JldHdlZW4gWzEuPHdici8+MCw8d2JyLz4gMy48d2JyLz4wXSBhcmUgZ3VhcmFudGVlZCBub3QgdG8gYmUgY2xpcHBlZC48d2JyLz4gRXZlbiBpZiBhIGdpdmVuCitkZXZpY2UgYWxsb3dzIGdhaW5zIGJlbG93IDEuPHdici8+MCw8d2JyLz4gdGhpcyBpcyB1c3VhbGx5IG5vdCByZWNvbW1lbmRlZCBiZWNhdXNlCit0aGlzIGNhbiBjcmVhdGUgY29sb3IgYXJ0aWZhY3RzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIDQtY2hhbm5lbCB3aGl0ZS1iYWxhbmNlIGdhaW5zIGFyZSBkZWZpbmVkIGluCit0aGUgb3JkZXIgb2YgPGNvZGU+W1IgR188d2JyLz5ldmVuIEdfPHdici8+b2RkIEJdPC9jb2RlPiw8d2JyLz4gd2hlcmUgPGNvZGU+R188d2JyLz5ldmVuPC9jb2RlPiBpcyB0aGUgZ2FpbgorZm9yIGdyZWVuIHBpeGVscyBvbiBldmVuIHJvd3Mgb2YgdGhlIG91dHB1dCw8d2JyLz4gYW5kIDxjb2RlPkdfPHdici8+b2RkPC9jb2RlPgoraXMgdGhlIGdhaW4gZm9yIGdyZWVuIHBpeGVscyBvbiB0aGUgb2RkIHJvd3MuPHdici8+PC9wPgorPHA+SWYgYSBIQUwgZG9lcyBub3Qgc3VwcG9ydCBhIHNlcGFyYXRlIGdhaW4gZm9yIGV2ZW4vPHdici8+b2RkIGdyZWVuCitjaGFubmVscyw8d2JyLz4gaXQgbXVzdCB1c2UgdGhlIDxjb2RlPkdfPHdici8+ZXZlbjwvY29kZT4gdmFsdWUsPHdici8+IGFuZCB3cml0ZQorPGNvZGU+R188d2JyLz5vZGQ8L2NvZGU+IGVxdWFsIHRvIDxjb2RlPkdfPHdici8+ZXZlbjwvY29kZT4gaW4gdGhlIG91dHB1dCByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYWJlcnJhdGlvbk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+YWJlcnJhdGlvbjx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIGFiZXJyYXRpb24gY29ycmVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFiZXJyYXRpb24gY29ycmVjdGlvbiB3aWxsIG5vdCBzbG93IGRvd24gY2FwdHVyZSByYXRlCityZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFiZXJyYXRpb24gY29ycmVjdGlvbiBvcGVyYXRlcyBhdCBpbXByb3ZlZCBxdWFsaXR5IGJ1dCB0aGUgY2FwdHVyZSByYXRlIG1pZ2h0IGJlCityZWR1Y2VkIChyZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dCByYXRlKTwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1vZGUgb2Ygb3BlcmF0aW9uIGZvciB0aGUgY2hyb21hdGljIGFiZXJyYXRpb24gY29ycmVjdGlvbiBhbGdvcml0aG0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hdmFpbGFibGVBYmVycmF0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkFiZXJyYXRpb248d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkNocm9tYXRpYyAoY29sb3IpIGFiZXJyYXRpb24gaXMgY2F1c2VkIGJ5IHRoZSBmYWN0IHRoYXQgZGlmZmVyZW50IHdhdmVsZW5ndGhzIG9mIGxpZ2h0CitjYW4gbm90IGZvY3VzIG9uIHRoZSBzYW1lIHBvaW50IGFmdGVyIGV4aXRpbmcgZnJvbSB0aGUgbGVucy48d2JyLz4gVGhpcyBtZXRhZGF0YSBkZWZpbmVzCit0aGUgaGlnaCBsZXZlbCBjb250cm9sIG9mIGNocm9tYXRpYyBhYmVycmF0aW9uIGNvcnJlY3Rpb24gYWxnb3JpdGhtLDx3YnIvPiB3aGljaCBhaW1zIHRvCittaW5pbWl6ZSB0aGUgY2hyb21hdGljIGFydGlmYWN0cyB0aGF0IG1heSBvY2N1ciBhbG9uZyB0aGUgb2JqZWN0IGJvdW5kYXJpZXMgaW4gYW4KK2ltYWdlLjx3YnIvPjwvcD4KKzxwPkZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIGJvdGggbWVhbiB0aGF0IGNhbWVyYSBkZXZpY2UgZGV0ZXJtaW5lZCBhYmVycmF0aW9uCitjb3JyZWN0aW9uIHdpbGwgYmUgYXBwbGllZC48d2JyLz4gSElHSF88d2JyLz5RVUFMSVRZIG1vZGUgaW5kaWNhdGVzIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbAordXNlIHRoZSBoaWdoZXN0LXF1YWxpdHkgYWJlcnJhdGlvbiBjb3JyZWN0aW9uIGFsZ29yaXRobXMsPHdici8+IGV2ZW4gaWYgaXQgc2xvd3MgZG93bgorY2FwdHVyZSByYXRlLjx3YnIvPiBGQVNUIG1lYW5zIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IHNsb3cgZG93biBjYXB0dXJlIHJhdGUgd2hlbgorYXBwbHlpbmcgYWJlcnJhdGlvbiBjb3JyZWN0aW9uLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBkZXZpY2VzIHdpbGwgYWx3YXlzIGJlIGluIEZBU1QgbW9kZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VFJBTlNGT1JNX01BVFJJWDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+IG1hdHJpeAorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IHRvIGRvIGNvbG9yIGNvbnZlcnNpb24uPHdici8+PC9wPgorPHA+QWxsIGFkdmFuY2VkIHdoaXRlIGJhbGFuY2UgYWRqdXN0bWVudHMgKG5vdCBzcGVjaWZpZWQKK2J5IG91ciB3aGl0ZSBiYWxhbmNlIHBpcGVsaW5lKSBtdXN0IGJlIGRpc2FibGVkLjx3YnIvPjwvcD4KKzxwPklmIEFXQiBpcyBlbmFibGVkIHdpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gIT0gT0ZGPC9jb2RlPiw8d2JyLz4gdGhlbgorVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCBpcyBpZ25vcmVkLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB3aWxsIG92ZXJyaWRlCit0aGlzIHZhbHVlIHRvIGVpdGhlciBGQVNUIG9yIEhJR0hfPHdici8+UVVBTElUWS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Db2xvciBjb3JyZWN0aW9uIHByb2Nlc3NpbmcgbXVzdCBub3Qgc2xvdyBkb3duCitjYXB0dXJlIHJhdGUgcmVsYXRpdmUgdG8gc2Vuc29yIHJhdyBvdXRwdXQuPHdici8+PC9wPgorPHA+QWR2YW5jZWQgd2hpdGUgYmFsYW5jZSBhZGp1c3RtZW50cyBhYm92ZSBhbmQgYmV5b25kCit0aGUgc3BlY2lmaWVkIHdoaXRlIGJhbGFuY2UgcGlwZWxpbmUgbWF5IGJlIGFwcGxpZWQuPHdici8+PC9wPgorPHA+SWYgQVdCIGlzIGVuYWJsZWQgd2l0aCA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiAhPSBPRkY8L2NvZGU+LDx3YnIvPiB0aGVuCit0aGUgY2FtZXJhIGRldmljZSB1c2VzIHRoZSBsYXN0IGZyYW1lJ3MgQVdCIHZhbHVlcworKG9yIGRlZmF1bHRzIGlmIEFXQiBoYXMgbmV2ZXIgYmVlbiBydW4pLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Q29sb3IgY29ycmVjdGlvbiBwcm9jZXNzaW5nIG9wZXJhdGVzIGF0IGltcHJvdmVkCitxdWFsaXR5IGJ1dCB0aGUgY2FwdHVyZSByYXRlIG1pZ2h0IGJlIHJlZHVjZWQgKHJlbGF0aXZlIHRvIHNlbnNvcgorcmF3IG91dHB1dCByYXRlKTwvcD4KKzxwPkFkdmFuY2VkIHdoaXRlIGJhbGFuY2UgYWRqdXN0bWVudHMgYWJvdmUgYW5kIGJleW9uZAordGhlIHNwZWNpZmllZCB3aGl0ZSBiYWxhbmNlIHBpcGVsaW5lIG1heSBiZSBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPklmIEFXQiBpcyBlbmFibGVkIHdpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gIT0gT0ZGPC9jb2RlPiw8d2JyLz4gdGhlbgordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyB0aGUgbGFzdCBmcmFtZSdzIEFXQiB2YWx1ZXMKKyhvciBkZWZhdWx0cyBpZiBBV0IgaGFzIG5ldmVyIGJlZW4gcnVuKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbW9kZSBjb250cm9sIHNlbGVjdHMgaG93IHRoZSBpbWFnZSBkYXRhIGlzIGNvbnZlcnRlZCBmcm9tIHRoZQorc2Vuc29yJ3MgbmF0aXZlIGNvbG9yIGludG8gbGluZWFyIHNSR0IgY29sb3IuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgaXMgZW5hYmxlZCB3aXRoIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiB0aGlzCitjb250cm9sIGlzIG92ZXJyaWRkZW4gYnkgdGhlIEFXQiByb3V0aW5lLjx3YnIvPiBXaGVuIEFXQiBpcyBkaXNhYmxlZCw8d2JyLz4gdGhlCithcHBsaWNhdGlvbiBjb250cm9scyBob3cgdGhlIGNvbG9yIG1hcHBpbmcgaXMgcGVyZm9ybWVkLjx3YnIvPjwvcD4KKzxwPldlIGRlZmluZSB0aGUgZXhwZWN0ZWQgcHJvY2Vzc2luZyBwaXBlbGluZSBiZWxvdy48d2JyLz4gRm9yIGNvbnNpc3RlbmN5CithY3Jvc3MgZGV2aWNlcyw8d2JyLz4gdGhpcyBpcyBhbHdheXMgdGhlIGNhc2Ugd2l0aCBUUkFOU0ZPUk1fPHdici8+TUFUUklYLjx3YnIvPjwvcD4KKzxwPldoZW4gZWl0aGVyIEZVTEwgb3IgSElHSF88d2JyLz5RVUFMSVRZIGlzIHVzZWQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heQorZG8gYWRkaXRpb25hbCBwcm9jZXNzaW5nIGJ1dCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4gd2lsbCBzdGlsbCBiZSBwcm92aWRlZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UgKGluIHRoZSByZXN1bHRzKSBhbmQgYmUgcm91Z2hseSBjb3JyZWN0Ljx3YnIvPjwvcD4KKzxwPlN3aXRjaGluZyB0byBUUkFOU0ZPUk1fPHdici8+TUFUUklYIGFuZCB1c2luZyB0aGUgZGF0YSBwcm92aWRlZCBmcm9tCitGQVNUIG9yIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIHlpZWxkIGEgcGljdHVyZSB3aXRoIHRoZSBzYW1lIHdoaXRlIHBvaW50CithcyB3aGF0IHdhcyBwcm9kdWNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBpbiB0aGUgZWFybGllciBmcmFtZS48d2JyLz48L3A+Cis8cD5UaGUgZXhwZWN0ZWQgcHJvY2Vzc2luZyBwaXBlbGluZSBpcyBhcyBmb2xsb3dzOjwvcD4KKzxwPjxpbWcgYWx0PSJXaGl0ZSBiYWxhbmNlIHByb2Nlc3NpbmcgcGlwZWxpbmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZS9wcm9jZXNzaW5nX3BpcGVsaW5lLnBuZyIvPjwvcD4KKzxwPlRoZSB3aGl0ZSBiYWxhbmNlIGlzIGVuY29kZWQgYnkgdHdvIHZhbHVlcyw8d2JyLz4gYSA0LWNoYW5uZWwgd2hpdGUtYmFsYW5jZQorZ2FpbiB2ZWN0b3IgKGFwcGxpZWQgaW4gdGhlIEJheWVyIGRvbWFpbiksPHdici8+IGFuZCBhIDN4MyBjb2xvciB0cmFuc2Zvcm0KK21hdHJpeCAoYXBwbGllZCBhZnRlciBkZW1vc2FpYykuPHdici8+PC9wPgorPHA+VGhlIDQtY2hhbm5lbCB3aGl0ZS1iYWxhbmNlIGdhaW5zIGFyZSBkZWZpbmVkIGFzOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gPSBbIFIgR188d2JyLz5ldmVuIEdfPHdici8+b2RkIEIgXQorPC9jb2RlPjwvcHJlPgorPHA+d2hlcmUgPGNvZGU+R188d2JyLz5ldmVuPC9jb2RlPiBpcyB0aGUgZ2FpbiBmb3IgZ3JlZW4gcGl4ZWxzIG9uIGV2ZW4gcm93cyBvZiB0aGUKK291dHB1dCw8d2JyLz4gYW5kIDxjb2RlPkdfPHdici8+b2RkPC9jb2RlPiBpcyB0aGUgZ2FpbiBmb3IgZ3JlZW4gcGl4ZWxzIG9uIHRoZSBvZGQgcm93cy48d2JyLz4KK1RoZXNlIG1heSBiZSBpZGVudGljYWwgZm9yIGEgZ2l2ZW4gY2FtZXJhIGRldmljZSBpbXBsZW1lbnRhdGlvbjsgaWYKK3RoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgYSBzZXBhcmF0ZSBnYWluIGZvciBldmVuLzx3YnIvPm9kZCBncmVlbgorY2hhbm5lbHMsPHdici8+IGl0IHdpbGwgdXNlIHRoZSA8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IHZhbHVlLDx3YnIvPiBhbmQgd3JpdGUgPGNvZGU+R188d2JyLz5vZGQ8L2NvZGU+IGVxdWFsIHRvCis8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IGluIHRoZSBvdXRwdXQgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKzxwPlRoZSBtYXRyaWNlcyBmb3IgY29sb3IgdHJhbnNmb3JtcyBhcmUgZGVmaW5lZCBhcyBhIDktZW50cnkgdmVjdG9yOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPiA9IFsgSTAgSTEgSTIgSTMgSTQgSTUgSTYgSTcgSTggXQorPC9jb2RlPjwvcHJlPgorPHA+d2hpY2ggZGVmaW5lIGEgdHJhbnNmb3JtIGZyb20gaW5wdXQgc2Vuc29yIGNvbG9ycyw8d2JyLz4gPGNvZGU+UF88d2JyLz5pbiA9IFsgciBnIGIgXTwvY29kZT4sPHdici8+Cit0byBvdXRwdXQgbGluZWFyIHNSR0IsPHdici8+IDxjb2RlPlBfPHdici8+b3V0ID0gWyByJyBnJyBiJyBdPC9jb2RlPiw8d2JyLz48L3A+Cis8cD53aXRoIGNvbG9ycyBhcyBmb2xsb3dzOjwvcD4KKzxwcmU+PGNvZGU+cicgPSBJMHIgKyBJMWcgKyBJMmIKK2cnID0gSTNyICsgSTRnICsgSTViCitiJyA9IEk2ciArIEk3ZyArIEk4YgorPC9jb2RlPjwvcHJlPgorPHA+Qm90aCB0aGUgaW5wdXQgYW5kIG91dHB1dCB2YWx1ZSByYW5nZXMgbXVzdCBtYXRjaC48d2JyLz4gT3ZlcmZsb3cvPHdici8+dW5kZXJmbG93Cit2YWx1ZXMgYXJlIGNsaXBwZWQgdG8gZml0IHdpdGhpbiB0aGUgcmFuZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5IQUwgbXVzdCBzdXBwb3J0IGJvdGggRkFTVCBhbmQgSElHSF88d2JyLz5RVUFMSVRZIGlmIGNvbG9yIGNvcnJlY3Rpb24gY29udHJvbCBpcyBhdmFpbGFibGUKK29uIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBidXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gY2FuIGJlIHRoZSBzYW1lIGZvciBib3RoIG1vZGVzLjx3YnIvPgorVGhhdCBpcyw8d2JyLz4gaWYgdGhlIGhpZ2hlc3QgcXVhbGl0eSBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgY2FtZXJhIGRldmljZSBkb2VzIG5vdCBzbG93IGRvd24KK2NhcHR1cmUgcmF0ZSw8d2JyLz4gdGhlbiBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgc2hvdWxkIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm0KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPnJhdGlvbmFsPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBjb2xvclNwYWNlVHJhbnNmb3JtXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyByYXRpb25hbCBtYXRyaXggaW4gcm93LW1ham9yIG9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBjb2xvciB0cmFuc2Zvcm0gbWF0cml4IHRvIHVzZSB0byB0cmFuc2Zvcm0KK2Zyb20gc2Vuc29yIFJHQiBjb2xvciBzcGFjZSB0byBvdXRwdXQgbGluZWFyIHNSR0IgY29sb3Igc3BhY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFVuaXRsZXNzIHNjYWxlIGZhY3RvcnMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIG1hdHJpeCBpcyBlaXRoZXIgc2V0IGJ5IHRoZSBjYW1lcmEgZGV2aWNlIHdoZW4gdGhlIHJlcXVlc3QKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiBpcyBub3QgVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCw8d2JyLz4gb3IKK2RpcmVjdGx5IGJ5IHRoZSBhcHBsaWNhdGlvbiBpbiB0aGUgcmVxdWVzdCB3aGVuIHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+IGlzIFRSQU5TRk9STV88d2JyLz5NQVRSSVguPHdici8+PC9wPgorPHA+SW4gdGhlIGxhdHRlciBjYXNlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgcm91bmQgdGhlIG1hdHJpeCB0byBhY2NvdW50Citmb3IgcHJlY2lzaW9uIGlzc3VlczsgdGhlIGZpbmFsIHJvdW5kZWQgbWF0cml4IHNob3VsZCBiZSByZXBvcnRlZCBiYWNrCitpbiB0aGlzIG1hdHJpeCByZXN1bHQgbWV0YWRhdGEuPHdici8+IFRoZSB0cmFuc2Zvcm0gc2hvdWxkIGtlZXAgdGhlIG1hZ25pdHVkZQorb2YgdGhlIG91dHB1dCBjb2xvciB2YWx1ZXMgd2l0aGluIDxjb2RlPlswLDx3YnIvPiAxLjx3YnIvPjBdPC9jb2RlPiAoYXNzdW1pbmcgaW5wdXQgY29sb3IKK3ZhbHVlcyBpcyB3aXRoaW4gdGhlIG5vcm1hbGl6ZWQgcmFuZ2UgPGNvZGU+WzAsPHdici8+IDEuPHdici8+MF08L2NvZGU+KSw8d2JyLz4gb3IgY2xpcHBpbmcgbWF5IG9jY3VyLjx3YnIvPjwvcD4KKzxwPlRoZSB2YWxpZCByYW5nZSBvZiBlYWNoIG1hdHJpeCBlbGVtZW50IHZhcmllcyBvbiBkaWZmZXJlbnQgZGV2aWNlcyw8d2JyLz4gYnV0Cit2YWx1ZXMgd2l0aGluIFstMS48d2JyLz41LDx3YnIvPiAzLjx3YnIvPjBdIGFyZSBndWFyYW50ZWVkIG5vdCB0byBiZSBjbGlwcGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWlucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmdnYkNoYW5uZWxWZWN0b3JdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+QSAxRCBhcnJheSBvZiBmbG9hdHMgZm9yIDQgY29sb3IgY2hhbm5lbCBnYWluczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkdhaW5zIGFwcGx5aW5nIHRvIEJheWVyIHJhdyBjb2xvciBjaGFubmVscyBmb3IKK3doaXRlLWJhbGFuY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFVuaXRsZXNzIGdhaW4gZmFjdG9ycworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZXNlIHBlci1jaGFubmVsIGdhaW5zIGFyZSBlaXRoZXIgc2V0IGJ5IHRoZSBjYW1lcmEgZGV2aWNlCit3aGVuIHRoZSByZXF1ZXN0IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiBpcyBub3QKK1RSQU5TRk9STV88d2JyLz5NQVRSSVgsPHdici8+IG9yIGRpcmVjdGx5IGJ5IHRoZSBhcHBsaWNhdGlvbiBpbiB0aGUKK3JlcXVlc3Qgd2hlbiB0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+IGlzCitUUkFOU0ZPUk1fPHdici8+TUFUUklYLjx3YnIvPjwvcD4KKzxwPlRoZSBnYWlucyBpbiB0aGUgcmVzdWx0IG1ldGFkYXRhIGFyZSB0aGUgZ2FpbnMgYWN0dWFsbHkKK2FwcGxpZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgdG8gdGhlIGN1cnJlbnQgZnJhbWUuPHdici8+PC9wPgorPHA+VGhlIHZhbGlkIHJhbmdlIG9mIGdhaW5zIHZhcmllcyBvbiBkaWZmZXJlbnQgZGV2aWNlcyw8d2JyLz4gYnV0IGdhaW5zCitiZXR3ZWVuIFsxLjx3YnIvPjAsPHdici8+IDMuPHdici8+MF0gYXJlIGd1YXJhbnRlZWQgbm90IHRvIGJlIGNsaXBwZWQuPHdici8+IEV2ZW4gaWYgYSBnaXZlbgorZGV2aWNlIGFsbG93cyBnYWlucyBiZWxvdyAxLjx3YnIvPjAsPHdici8+IHRoaXMgaXMgdXN1YWxseSBub3QgcmVjb21tZW5kZWQgYmVjYXVzZQordGhpcyBjYW4gY3JlYXRlIGNvbG9yIGFydGlmYWN0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSA0LWNoYW5uZWwgd2hpdGUtYmFsYW5jZSBnYWlucyBhcmUgZGVmaW5lZCBpbgordGhlIG9yZGVyIG9mIDxjb2RlPltSIEdfPHdici8+ZXZlbiBHXzx3YnIvPm9kZCBCXTwvY29kZT4sPHdici8+IHdoZXJlIDxjb2RlPkdfPHdici8+ZXZlbjwvY29kZT4gaXMgdGhlIGdhaW4KK2ZvciBncmVlbiBwaXhlbHMgb24gZXZlbiByb3dzIG9mIHRoZSBvdXRwdXQsPHdici8+IGFuZCA8Y29kZT5HXzx3YnIvPm9kZDwvY29kZT4KK2lzIHRoZSBnYWluIGZvciBncmVlbiBwaXhlbHMgb24gdGhlIG9kZCByb3dzLjx3YnIvPjwvcD4KKzxwPklmIGEgSEFMIGRvZXMgbm90IHN1cHBvcnQgYSBzZXBhcmF0ZSBnYWluIGZvciBldmVuLzx3YnIvPm9kZCBncmVlbgorY2hhbm5lbHMsPHdici8+IGl0IG11c3QgdXNlIHRoZSA8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IHZhbHVlLDx3YnIvPiBhbmQgd3JpdGUKKzxjb2RlPkdfPHdici8+b2RkPC9jb2RlPiBlcXVhbCB0byA8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IGluIHRoZSBvdXRwdXQgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYWJlcnJhdGlvbk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+YWJlcnJhdGlvbjx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIGFiZXJyYXRpb24gY29ycmVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFiZXJyYXRpb24gY29ycmVjdGlvbiB3aWxsIG5vdCBzbG93IGRvd24gY2FwdHVyZSByYXRlCityZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFiZXJyYXRpb24gY29ycmVjdGlvbiBvcGVyYXRlcyBhdCBpbXByb3ZlZCBxdWFsaXR5IGJ1dCB0aGUgY2FwdHVyZSByYXRlIG1pZ2h0IGJlCityZWR1Y2VkIChyZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dCByYXRlKTwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1vZGUgb2Ygb3BlcmF0aW9uIGZvciB0aGUgY2hyb21hdGljIGFiZXJyYXRpb24gY29ycmVjdGlvbiBhbGdvcml0aG0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hdmFpbGFibGVBYmVycmF0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkFiZXJyYXRpb248d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkNocm9tYXRpYyAoY29sb3IpIGFiZXJyYXRpb24gaXMgY2F1c2VkIGJ5IHRoZSBmYWN0IHRoYXQgZGlmZmVyZW50IHdhdmVsZW5ndGhzIG9mIGxpZ2h0CitjYW4gbm90IGZvY3VzIG9uIHRoZSBzYW1lIHBvaW50IGFmdGVyIGV4aXRpbmcgZnJvbSB0aGUgbGVucy48d2JyLz4gVGhpcyBtZXRhZGF0YSBkZWZpbmVzCit0aGUgaGlnaCBsZXZlbCBjb250cm9sIG9mIGNocm9tYXRpYyBhYmVycmF0aW9uIGNvcnJlY3Rpb24gYWxnb3JpdGhtLDx3YnIvPiB3aGljaCBhaW1zIHRvCittaW5pbWl6ZSB0aGUgY2hyb21hdGljIGFydGlmYWN0cyB0aGF0IG1heSBvY2N1ciBhbG9uZyB0aGUgb2JqZWN0IGJvdW5kYXJpZXMgaW4gYW4KK2ltYWdlLjx3YnIvPjwvcD4KKzxwPkZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIGJvdGggbWVhbiB0aGF0IGNhbWVyYSBkZXZpY2UgZGV0ZXJtaW5lZCBhYmVycmF0aW9uCitjb3JyZWN0aW9uIHdpbGwgYmUgYXBwbGllZC48d2JyLz4gSElHSF88d2JyLz5RVUFMSVRZIG1vZGUgaW5kaWNhdGVzIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbAordXNlIHRoZSBoaWdoZXN0LXF1YWxpdHkgYWJlcnJhdGlvbiBjb3JyZWN0aW9uIGFsZ29yaXRobXMsPHdici8+IGV2ZW4gaWYgaXQgc2xvd3MgZG93bgorY2FwdHVyZSByYXRlLjx3YnIvPiBGQVNUIG1lYW5zIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IHNsb3cgZG93biBjYXB0dXJlIHJhdGUgd2hlbgorYXBwbHlpbmcgYWJlcnJhdGlvbiBjb3JyZWN0aW9uLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBkZXZpY2VzIHdpbGwgYWx3YXlzIGJlIGluIEZBU1QgbW9kZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYXZhaWxhYmxlQWJlcnJhdGlvbk1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkFiZXJyYXRpb248d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGFiZXJyYXRpb24gY29ycmVjdGlvbiBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmFiZXJyYXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5hYmVycmF0aW9uPHdici8+TW9kZTwvYT4gdGhhdCBhcmUKK3N1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYWJlcnJhdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmFiZXJyYXRpb248d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGtleSBsaXN0cyB0aGUgdmFsaWQgbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hYmVycmF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+YWJlcnJhdGlvbjx3YnIvPk1vZGU8L2E+Ljx3YnIvPiAgSWYgbm8KK2FiZXJyYXRpb24gY29ycmVjdGlvbiBtb2RlcyBhcmUgYXZhaWxhYmxlIGZvciBhIGRldmljZSw8d2JyLz4gdGhpcyBsaXN0IHdpbGwgc29sZWx5IGluY2x1ZGUKK09GRiBtb2RlLjx3YnIvPiBBbGwgY2FtZXJhIGRldmljZXMgd2lsbCBzdXBwb3J0IGVpdGhlciBPRkYgb3IgRkFTVCBtb2RlLjx3YnIvPjwvcD4KKzxwPkNhbWVyYSBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5IHdpbGwgYWx3YXlzIGxpc3QKK09GRiBtb2RlLjx3YnIvPiBUaGlzIGluY2x1ZGVzIGFsbCBGVUxMIGxldmVsIGRldmljZXMuPHdici8+PC9wPgorPHA+TEVHQUNZIGRldmljZXMgd2lsbCBhbHdheXMgb25seSBzdXBwb3J0IEZBU1QgbW9kZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBtdXN0IHN1cHBvcnQgYm90aCBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgaWYgY2hyb21hdGljIGFiZXJyYXRpb24gY29udHJvbCBpcyBhdmFpbGFibGUKK29uIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBidXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gY2FuIGJlIHRoZSBzYW1lIGZvciBib3RoIG1vZGVzLjx3YnIvPgorVGhhdCBpcyw8d2JyLz4gaWYgdGhlIGhpZ2hlc3QgcXVhbGl0eSBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgY2FtZXJhIGRldmljZSBkb2VzIG5vdCBzbG93IGRvd24KK2NhcHR1cmUgcmF0ZSw8d2JyLz4gdGhlbiBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgd2lsbCBnZW5lcmF0ZSB0aGUgc2FtZSBvdXRwdXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fY29udHJvbCIgY2xhc3M9InNlY3Rpb24iPmNvbnRyb2w8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlQW50aWJhbmRpbmdNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkFudGliYW5kaW5nPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBub3QgYWRqdXN0IGV4cG9zdXJlIGR1cmF0aW9uIHRvCithdm9pZCBiYW5kaW5nIHByb2JsZW1zLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPjUwSFo8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgYWRqdXN0IGV4cG9zdXJlIGR1cmF0aW9uIHRvCithdm9pZCBiYW5kaW5nIHByb2JsZW1zIHdpdGggNTBIeiBpbGx1bWluYXRpb24gc291cmNlcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj42MEhaPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIGFkanVzdCBleHBvc3VyZSBkdXJhdGlvbiB0bworYXZvaWQgYmFuZGluZyBwcm9ibGVtcyB3aXRoIDYwSHogaWxsdW1pbmF0aW9uCitzb3VyY2VzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFVVE88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgYXV0b21hdGljYWxseSBhZGFwdCBpdHMKK2FudGliYW5kaW5nIHJvdXRpbmUgdG8gdGhlIGN1cnJlbnQgaWxsdW1pbmF0aW9uCitjb25kaXRpb24uPHdici8+IFRoaXMgaXMgdGhlIGRlZmF1bHQgbW9kZSBpZiBBVVRPIGlzCithdmFpbGFibGUgb24gZ2l2ZW4gY2FtZXJhIGRldmljZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBzZXR0aW5nIGZvciB0aGUgY2FtZXJhIGRldmljZSdzIGF1dG8tZXhwb3N1cmUKK2FsZ29yaXRobSdzIGFudGliYW5kaW5nIGNvbXBlbnNhdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZUFudGliYW5kaW5nTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPkFudGliYW5kaW5nPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNvbWUga2luZHMgb2YgbGlnaHRpbmcgZml4dHVyZXMsPHdici8+IHN1Y2ggYXMgc29tZSBmbHVvcmVzY2VudAorbGlnaHRzLDx3YnIvPiBmbGlja2VyIGF0IHRoZSByYXRlIG9mIHRoZSBwb3dlciBzdXBwbHkgZnJlcXVlbmN5CisoNjBIeiBvciA1MEh6LDx3YnIvPiBkZXBlbmRpbmcgb24gY291bnRyeSkuPHdici8+IFdoaWxlIHRoaXMgaXMKK3R5cGljYWxseSBub3Qgbm90aWNlYWJsZSB0byBhIHBlcnNvbiw8d2JyLz4gaXQgY2FuIGJlIHZpc2libGUgdG8KK2EgY2FtZXJhIGRldmljZS48d2JyLz4gSWYgYSBjYW1lcmEgc2V0cyBpdHMgZXhwb3N1cmUgdGltZSB0byB0aGUKK3dyb25nIHZhbHVlLDx3YnIvPiB0aGUgZmxpY2tlciBtYXkgYmVjb21lIHZpc2libGUgaW4gdGhlCit2aWV3ZmluZGVyIGFzIGZsaWNrZXIgb3IgaW4gYSBmaW5hbCBjYXB0dXJlZCBpbWFnZSw8d2JyLz4gYXMgYQorc2V0IG9mIHZhcmlhYmxlLWJyaWdodG5lc3MgYmFuZHMgYWNyb3NzIHRoZSBpbWFnZS48d2JyLz48L3A+Cis8cD5UaGVyZWZvcmUsPHdici8+IHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmVzIG9mIGNhbWVyYSBkZXZpY2VzCitpbmNsdWRlIGFudGliYW5kaW5nIHJvdXRpbmVzIHRoYXQgZW5zdXJlIHRoYXQgdGhlIGNob3NlbgorZXhwb3N1cmUgdmFsdWUgd2lsbCBub3QgY2F1c2Ugc3VjaCBiYW5kaW5nLjx3YnIvPiBUaGUgY2hvaWNlIG9mCitleHBvc3VyZSB0aW1lIGRlcGVuZHMgb24gdGhlIHJhdGUgb2YgZmxpY2tlciw8d2JyLz4gd2hpY2ggdGhlCitjYW1lcmEgZGV2aWNlIGNhbiBkZXRlY3QgYXV0b21hdGljYWxseSw8d2JyLz4gb3IgdGhlIGV4cGVjdGVkCityYXRlIGNhbiBiZSBzZWxlY3RlZCBieSB0aGUgYXBwbGljYXRpb24gdXNpbmcgdGhpcworY29udHJvbC48d2JyLz48L3A+Cis8cD5BIGdpdmVuIGNhbWVyYSBkZXZpY2UgbWF5IG5vdCBzdXBwb3J0IGFsbCBvZiB0aGUgcG9zc2libGUKK29wdGlvbnMgZm9yIHRoZSBhbnRpYmFuZGluZyBtb2RlLjx3YnIvPiBUaGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlQW50aWJhbmRpbmdNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QXZhaWxhYmxlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlczwvYT4ga2V5IGNvbnRhaW5zCit0aGUgYXZhaWxhYmxlIG1vZGVzIGZvciBhIGdpdmVuIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+QVVUTyBtb2RlIGlzIHRoZSBkZWZhdWx0IGlmIGl0IGlzIGF2YWlsYWJsZSBvbiBnaXZlbgorY2FtZXJhIGRldmljZS48d2JyLz4gV2hlbiBBVVRPIG1vZGUgaXMgbm90IGF2YWlsYWJsZSw8d2JyLz4gdGhlCitkZWZhdWx0IHdpbGwgYmUgZWl0aGVyIDUwSFogb3IgNjBIWiw8d2JyLz4gYW5kIGJvdGggNTBIWgorYW5kIDYwSFogd2lsbCBiZSBhdmFpbGFibGUuPHdici8+PC9wPgorPHA+SWYgbWFudWFsIGV4cG9zdXJlIGNvbnRyb2wgaXMgZW5hYmxlZCAoYnkgc2V0dGluZworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IHRvIE9GRiksPHdici8+Cit0aGVuIHRoaXMgc2V0dGluZyBoYXMgbm8gZWZmZWN0LDx3YnIvPiBhbmQgdGhlIGFwcGxpY2F0aW9uIG11c3QKK2Vuc3VyZSBpdCBzZWxlY3RzIGV4cG9zdXJlIHRpbWVzIHRoYXQgZG8gbm90IGNhdXNlIGJhbmRpbmcKK2lzc3Vlcy48d2JyLz4gVGhlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5zY2VuZUZsaWNrZXIiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5zY2VuZTx3YnIvPkZsaWNrZXI8L2E+IGtleSBjYW4gYXNzaXN0Cit0aGUgYXBwbGljYXRpb24gaW4gdGhpcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBhbGwgY2FwdHVyZSByZXF1ZXN0IHRlbXBsYXRlcyw8d2JyLz4gdGhpcyBmaWVsZCBtdXN0IGJlIHNldAordG8gQVVUTyBpZiBBVVRPIG1vZGUgaXMgYXZhaWxhYmxlLjx3YnIvPiBJZiBBVVRPIGlzIG5vdCBhdmFpbGFibGUsPHdici8+Cit0aGUgZGVmYXVsdCBtdXN0IGJlIGVpdGhlciA1MEhaIG9yIDYwSFosPHdici8+IGFuZCBib3RoIDUwSFogYW5kCis2MEhaIG11c3QgYmUgYXZhaWxhYmxlLjx3YnIvPjwvcD4KKzxwPklmIG1hbnVhbCBleHBvc3VyZSBjb250cm9sIGlzIGVuYWJsZWQgKGJ5IHNldHRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiB0byBPRkYpLDx3YnIvPgordGhlbiB0aGUgZXhwb3N1cmUgdmFsdWVzIHByb3ZpZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBtdXN0IG5vdCBiZQorYWRqdXN0ZWQgZm9yIGFudGliYW5kaW5nLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkV4cG9zdXJlPHdici8+Q29tcGVuc2F0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkFkanVzdG1lbnQgdG8gYXV0by1leHBvc3VyZSAoQUUpIHRhcmdldCBpbWFnZQorYnJpZ2h0bmVzcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgQ29tcGVuc2F0aW9uIHN0ZXBzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25SYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+UmFuZ2U8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBhZGp1c3RtZW50IGlzIG1lYXN1cmVkIGFzIGEgY291bnQgb2Ygc3RlcHMsPHdici8+IHdpdGggdGhlCitzdGVwIHNpemUgZGVmaW5lZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlN0ZXA8L2E+IGFuZCB0aGUKK2FsbG93ZWQgcmFuZ2UgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25SYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+UmFuZ2U8L2E+Ljx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgZXhwb3N1cmUgdmFsdWUgKEVWKSBzdGVwIGlzIDAuPHdici8+MzMzLDx3YnIvPiAnNicKK3dpbGwgbWVhbiBhbiBleHBvc3VyZSBjb21wZW5zYXRpb24gb2YgKzIgRVY7IC0zIHdpbGwgbWVhbiBhbgorZXhwb3N1cmUgY29tcGVuc2F0aW9uIG9mIC0xIEVWLjx3YnIvPiBPbmUgRVYgcmVwcmVzZW50cyBhIGRvdWJsaW5nCitvZiBpbWFnZSBicmlnaHRuZXNzLjx3YnIvPiBOb3RlIHRoYXQgdGhpcyBjb250cm9sIHdpbGwgb25seSBiZQorZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4gT0ZGLjx3YnIvPiBUaGlzIGNvbnRyb2wKK3dpbGwgdGFrZSBlZmZlY3QgZXZlbiB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPiA8Y29kZT49PSB0cnVlPC9jb2RlPi48d2JyLz48L3A+Cis8cD5JbiB0aGUgZXZlbnQgb2YgZXhwb3N1cmUgY29tcGVuc2F0aW9uIHZhbHVlIGJlaW5nIGNoYW5nZWQsPHdici8+IGNhbWVyYSBkZXZpY2UKK21heSB0YWtlIHNldmVyYWwgZnJhbWVzIHRvIHJlYWNoIHRoZSBuZXdseSByZXF1ZXN0ZWQgZXhwb3N1cmUgdGFyZ2V0Ljx3YnIvPgorRHVyaW5nIHRoYXQgdGltZSw8d2JyLz4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlN0YXRlPC9hPiBmaWVsZCB3aWxsIGJlIGluIHRoZSBTRUFSQ0hJTkcKK3N0YXRlLjx3YnIvPiBPbmNlIHRoZSBuZXcgZXhwb3N1cmUgdGFyZ2V0IGlzIHJlYWNoZWQsPHdici8+IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gd2lsbAorY2hhbmdlIGZyb20gU0VBUkNISU5HIHRvIGVpdGhlciBDT05WRVJHRUQsPHdici8+IExPQ0tFRCAoaWYgQUUgbG9jayBpcyBlbmFibGVkKSw8d2JyLz4gb3IKK0ZMQVNIXzx3YnIvPlJFUVVJUkVEIChpZiB0aGUgc2NlbmUgaXMgdG9vIGRhcmsgZm9yIHN0aWxsIGNhcHR1cmUpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG8tZXhwb3N1cmUgbG9jayBpcyBkaXNhYmxlZDsgdGhlIEFFIGFsZ29yaXRobQoraXMgZnJlZSB0byB1cGRhdGUgaXRzIHBhcmFtZXRlcnMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG8tZXhwb3N1cmUgbG9jayBpcyBlbmFibGVkOyB0aGUgQUUgYWxnb3JpdGhtCittdXN0IG5vdCB1cGRhdGUgdGhlIGV4cG9zdXJlIGFuZCBzZW5zaXRpdml0eSBwYXJhbWV0ZXJzCit3aGlsZSB0aGUgbG9jayBpcyBhY3RpdmUuPHdici8+PC9wPgorPHA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT4gc2V0dGluZyBjaGFuZ2VzCit3aWxsIHN0aWxsIHRha2UgZWZmZWN0IHdoaWxlIGF1dG8tZXhwb3N1cmUgaXMgbG9ja2VkLjx3YnIvPjwvcD4KKzxwPlNvbWUgcmFyZSBMRUdBQ1kgZGV2aWNlcyBtYXkgbm90IHN1cHBvcnQKK3RoaXMsPHdici8+IGluIHdoaWNoIGNhc2UgdGhlIHZhbHVlIHdpbGwgYWx3YXlzIGJlIG92ZXJyaWRkZW4gdG8gT0ZGLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgYXV0by1leHBvc3VyZSAoQUUpIGlzIGN1cnJlbnRseSBsb2NrZWQgdG8gaXRzIGxhdGVzdAorY2FsY3VsYXRlZCB2YWx1ZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiAoT04pLDx3YnIvPiB0aGUgQUUgYWxnb3JpdGhtIGlzIGxvY2tlZCB0byBpdHMgbGF0ZXN0IHBhcmFtZXRlcnMsPHdici8+CithbmQgd2lsbCBub3QgY2hhbmdlIGV4cG9zdXJlIHNldHRpbmdzIHVudGlsIHRoZSBsb2NrIGlzIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4gKE9GRikuPHdici8+PC9wPgorPHA+Tm90ZSB0aGF0IGV2ZW4gd2hlbiBBRSBpcyBsb2NrZWQsPHdici8+IHRoZSBmbGFzaCBtYXkgYmUgZmlyZWQgaWYKK3RoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgT05fPHdici8+QVVUT188d2JyLz5GTEFTSCAvPHdici8+CitPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0ggLzx3YnIvPiBPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNIXzx3YnIvPlJFREVZRS48d2JyLz48L3A+Cis8cD5XaGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+RXhwb3N1cmU8d2JyLz5Db21wZW5zYXRpb248L2E+IGlzIGNoYW5nZWQsPHdici8+IGV2ZW4gaWYgdGhlIEFFIGxvY2sKK2lzIE9OLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHN0aWxsIGFkanVzdCBpdHMgZXhwb3N1cmUgdmFsdWUuPHdici8+PC9wPgorPHA+SWYgQUUgcHJlY2FwdHVyZSBpcyB0cmlnZ2VyZWQgKHNlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPikKK3doZW4gQUUgaXMgYWxyZWFkeSBsb2NrZWQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IGNoYW5nZSB0aGUgZXhwb3N1cmUgdGltZQorKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4pIGFuZCBzZW5zaXRpdml0eSAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4pCitwYXJhbWV0ZXJzLjx3YnIvPiBUaGUgZmxhc2ggbWF5IGJlIGZpcmVkIGlmIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4KK2lzIE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0gvPHdici8+T05fPHdici8+QVVUT188d2JyLz5GTEFTSF88d2JyLz5SRURFWUUgYW5kIHRoZSBzY2VuZSBpcyB0b28gZGFyay48d2JyLz4gSWYgdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgT05fPHdici8+QUxXQVlTXzx3YnIvPkZMQVNILDx3YnIvPiB0aGUgc2NlbmUgbWF5IGJlY29tZSBvdmVyZXhwb3NlZC48d2JyLz4KK1NpbWlsYXJseSw8d2JyLz4gQUUgcHJlY2FwdHVyZSB0cmlnZ2VyIENBTkNFTCBoYXMgbm8gZWZmZWN0IHdoZW4gQUUgaXMgYWxyZWFkeSBsb2NrZWQuPHdici8+PC9wPgorPHA+V2hlbiBhbiBBRSBwcmVjYXB0dXJlIHNlcXVlbmNlIGlzIHRyaWdnZXJlZCw8d2JyLz4gQUUgdW5sb2NrIHdpbGwgbm90IGJlIGFibGUgdG8gdW5sb2NrCit0aGUgQUUgaWYgQUUgaXMgbG9ja2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGludGVybmFsbHkgZHVyaW5nIHByZWNhcHR1cmUgbWV0ZXJpbmcKK3NlcXVlbmNlIEluIG90aGVyIHdvcmRzLDx3YnIvPiBzdWJtaXR0aW5nIHJlcXVlc3RzIHdpdGggQUUgdW5sb2NrIGhhcyBubyBlZmZlY3QgZm9yIGFuCitvbmdvaW5nIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UuPHdici8+IE90aGVyd2lzZSw8d2JyLz4gdGhlIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UKK3dpbGwgbmV2ZXIgc3VjY2VlZCBpbiBhIHNlcXVlbmNlIG9mIHByZXZpZXcgcmVxdWVzdHMgd2hlcmUgQUUgbG9jayBpcyBhbHdheXMgc2V0Cit0byA8Y29kZT5mYWxzZTwvY29kZT4uPHdici8+PC9wPgorPHA+U2luY2UgdGhlIGNhbWVyYSBkZXZpY2UgaGFzIGEgcGlwZWxpbmUgb2YgaW4tZmxpZ2h0IHJlcXVlc3RzLDx3YnIvPiB0aGUgc2V0dGluZ3MgdGhhdAorZ2V0IGxvY2tlZCBkbyBub3QgbmVjZXNzYXJpbHkgY29ycmVzcG9uZCB0byB0aGUgc2V0dGluZ3MgdGhhdCB3ZXJlIHByZXNlbnQgaW4gdGhlCitsYXRlc3QgY2FwdHVyZSByZXN1bHQgcmVjZWl2ZWQgZnJvbSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gc2luY2UgYWRkaXRpb25hbCBjYXB0dXJlcworYW5kIEFFIHVwZGF0ZXMgbWF5IGhhdmUgb2NjdXJyZWQgZXZlbiBiZWZvcmUgdGhlIHJlc3VsdCB3YXMgc2VudCBvdXQuPHdici8+IElmIGFuCithcHBsaWNhdGlvbiBpcyBzd2l0Y2hpbmcgYmV0d2VlbiBhdXRvbWF0aWMgYW5kIG1hbnVhbCBjb250cm9sIGFuZCB3aXNoZXMgdG8gZWxpbWluYXRlCithbnkgZmxpY2tlciBkdXJpbmcgdGhlIHN3aXRjaCw8d2JyLz4gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmUgaXMgcmVjb21tZW5kZWQ6PC9wPgorPG9sPgorPGxpPlN0YXJ0aW5nIGluIGF1dG8tQUUgbW9kZTo8L2xpPgorPGxpPkxvY2sgQUU8L2xpPgorPGxpPldhaXQgZm9yIHRoZSBmaXJzdCByZXN1bHQgdG8gYmUgb3V0cHV0IHRoYXQgaGFzIHRoZSBBRSBsb2NrZWQ8L2xpPgorPGxpPkNvcHkgZXhwb3N1cmUgc2V0dGluZ3MgZnJvbSB0aGF0IHJlc3VsdCBpbnRvIGEgcmVxdWVzdCw8d2JyLz4gc2V0IHRoZSByZXF1ZXN0IHRvIG1hbnVhbCBBRTwvbGk+Cis8bGk+U3VibWl0IHRoZSBjYXB0dXJlIHJlcXVlc3QsPHdici8+IHByb2NlZWQgdG8gcnVuIG1hbnVhbCBBRSBhcyBkZXNpcmVkLjx3YnIvPjwvbGk+Cis8L29sPgorPHA+U2VlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gZm9yIEFFIGxvY2sgcmVsYXRlZCBzdGF0ZSB0cmFuc2l0aW9uIGRldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0b2V4cG9zdXJlIHJvdXRpbmUgaXMgZGlzYWJsZWQuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uLXNlbGVjdGVkIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPiBhcmUgdXNlZCBieSB0aGUgY2FtZXJhCitkZXZpY2UsPHdici8+IGFsb25nIHdpdGggYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz4qIGZpZWxkcyw8d2JyLz4gaWYgdGhlcmUncworYSBmbGFzaCB1bml0IGZvciB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+Tm90ZSB0aGF0IGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKSBhbmQgYXV0by1mb2N1cyAoQUYpCitiZWhhdmlvciBpcyBkZXZpY2UgZGVwZW5kZW50IHdoZW4gQUUgaXMgaW4gT0ZGIG1vZGUuPHdici8+CitUbyBoYXZlIGNvbnNpc3RlbnQgYmVoYXZpb3IgYWNyb3NzIGRpZmZlcmVudCBkZXZpY2VzLDx3YnIvPgoraXQgaXMgcmVjb21tZW5kZWQgdG8gZWl0aGVyIHNldCBBV0IgYW5kIEFGIHRvIE9GRiBtb2RlCitvciBsb2NrIEFXQiBhbmQgQUYgYmVmb3JlIHNldHRpbmcgQUUgdG8gT0ZGLjx3YnIvPgorU2VlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPgorZm9yIG1vcmUgZGV0YWlscy48d2JyLz48L3A+Cis8cD5MRUdBQ1kgZGV2aWNlcyBkbyBub3Qgc3VwcG9ydCB0aGUgT0ZGIG1vZGUgYW5kIHdpbGwKK292ZXJyaWRlIGF0dGVtcHRzIHRvIHVzZSB0aGlzIHZhbHVlIHRvIE9OLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG9leHBvc3VyZSByb3V0aW5lIGlzIGFjdGl2ZSw8d2JyLz4KK3dpdGggbm8gZmxhc2ggY29udHJvbC48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4sPHdici8+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+IGFyZSBpZ25vcmVkLjx3YnIvPiBUaGUKK2FwcGxpY2F0aW9uIGhhcyBjb250cm9sIG92ZXIgdGhlIHZhcmlvdXMKK2FuZHJvaWQuPHdici8+Zmxhc2guPHdici8+KiBmaWVsZHMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T05fQVVUT19GTEFTSDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+TGlrZSBPTiw8d2JyLz4gZXhjZXB0IHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UgYWxzbyBjb250cm9scwordGhlIGNhbWVyYSdzIGZsYXNoIHVuaXQsPHdici8+IGZpcmluZyBpdCBpbiBsb3ctbGlnaHQKK2NvbmRpdGlvbnMuPHdici8+PC9wPgorPHA+VGhlIGZsYXNoIG1heSBiZSBmaXJlZCBkdXJpbmcgYSBwcmVjYXB0dXJlIHNlcXVlbmNlCisodHJpZ2dlcmVkIGJ5IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+KSBhbmQKK21heSBiZSBmaXJlZCBmb3IgY2FwdHVyZXMgZm9yIHdoaWNoIHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Y2FwdHVyZTx3YnIvPkludGVudDwvYT4gZmllbGQgaXMgc2V0IHRvCitTVElMTF88d2JyLz5DQVBUVVJFPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T05fQUxXQVlTX0ZMQVNIPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5MaWtlIE9OLDx3YnIvPiBleGNlcHQgdGhhdCB0aGUgY2FtZXJhIGRldmljZSBhbHNvIGNvbnRyb2xzCit0aGUgY2FtZXJhJ3MgZmxhc2ggdW5pdCw8d2JyLz4gYWx3YXlzIGZpcmluZyBpdCBmb3Igc3RpbGwKK2NhcHR1cmVzLjx3YnIvPjwvcD4KKzxwPlRoZSBmbGFzaCBtYXkgYmUgZmlyZWQgZHVyaW5nIGEgcHJlY2FwdHVyZSBzZXF1ZW5jZQorKHRyaWdnZXJlZCBieSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPikgYW5kCit3aWxsIGFsd2F5cyBiZSBmaXJlZCBmb3IgY2FwdHVyZXMgZm9yIHdoaWNoIHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Y2FwdHVyZTx3YnIvPkludGVudDwvYT4gZmllbGQgaXMgc2V0IHRvCitTVElMTF88d2JyLz5DQVBUVVJFPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T05fQVVUT19GTEFTSF9SRURFWUU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkxpa2UgT05fPHdici8+QVVUT188d2JyLz5GTEFTSCw8d2JyLz4gYnV0IHdpdGggYXV0b21hdGljIHJlZCBleWUKK3JlZHVjdGlvbi48d2JyLz48L3A+Cis8cD5JZiBkZWVtZWQgbmVjZXNzYXJ5IGJ5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBhIHJlZCBleWUKK3JlZHVjdGlvbiBmbGFzaCB3aWxsIGZpcmUgZHVyaW5nIHRoZSBwcmVjYXB0dXJlCitzZXF1ZW5jZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBtb2RlIGZvciB0aGUgY2FtZXJhIGRldmljZSdzCithdXRvLWV4cG9zdXJlIHJvdXRpbmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QXZhaWxhYmxlPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiBpcworQVVUTy48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBhbnkgb2YgdGhlIE9OIG1vZGVzLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSdzCithdXRvLWV4cG9zdXJlIHJvdXRpbmUgaXMgZW5hYmxlZCw8d2JyLz4gb3ZlcnJpZGluZyB0aGUKK2FwcGxpY2F0aW9uJ3Mgc2VsZWN0ZWQgZXhwb3N1cmUgdGltZSw8d2JyLz4gc2Vuc29yIHNlbnNpdGl2aXR5LDx3YnIvPgorYW5kIGZyYW1lIGR1cmF0aW9uICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4sPHdici8+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+KS48d2JyLz4gSWYgb25lIG9mIHRoZSBGTEFTSCBtb2RlcworaXMgc2VsZWN0ZWQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlJ3MgZmxhc2ggdW5pdCBjb250cm9scyBhcmUKK2Fsc28gb3ZlcnJpZGRlbi48d2JyLz48L3A+Cis8cD5UaGUgRkxBU0ggbW9kZXMgYXJlIG9ubHkgYXZhaWxhYmxlIGlmIHRoZSBjYW1lcmEgZGV2aWNlCitoYXMgYSBmbGFzaCB1bml0ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2guaW5mby5hdmFpbGFibGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8L2E+IGlzIDxjb2RlPnRydWU8L2NvZGU+KS48d2JyLz48L3A+Cis8cD5JZiBmbGFzaCBUT1JDSCBtb2RlIGlzIGRlc2lyZWQsPHdici8+IHRoaXMgZmllbGQgbXVzdCBiZSBzZXQgdG8KK09OIG9yIE9GRiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLm1vZGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+bW9kZTwvYT4gc2V0IHRvIFRPUkNILjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIGFueSBvZiB0aGUgT04gbW9kZXMsPHdici8+IHRoZSB2YWx1ZXMgY2hvc2VuIGJ5IHRoZQorY2FtZXJhIGRldmljZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgZm9yIHRoZSBvdmVycmlkZGVuCitmaWVsZHMgZm9yIGEgZ2l2ZW4gY2FwdHVyZSB3aWxsIGJlIGF2YWlsYWJsZSBpbiBpdHMKK0NhcHR1cmVSZXN1bHQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlJlZ2lvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDUgeCBhcmVhX2NvdW50CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBtZXRlcmluZ1JlY3RhbmdsZV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIG1ldGVyaW5nIGFyZWFzIHRvIHVzZSBmb3IgYXV0by1leHBvc3VyZSBhZGp1c3RtZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBQaXhlbCBjb29yZGluYXRlcyB3aXRoaW4gYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Db29yZGluYXRlcyBtdXN0IGJlIGJldHdlZW4gPGNvZGU+WygwLDx3YnIvPjApLDx3YnIvPiAod2lkdGgsPHdici8+IGhlaWdodCkpPC9jb2RlPiBvZgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5vdCBhdmFpbGFibGUgaWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0FlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkFlPC9hPiBpcyAwLjx3YnIvPgorT3RoZXJ3aXNlIHdpbGwgYWx3YXlzIGJlIHByZXNlbnQuPHdici8+PC9wPgorPHA+VGhlIG1heGltdW0gbnVtYmVyIG9mIHJlZ2lvbnMgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UgaXMgZGV0ZXJtaW5lZCBieSB0aGUgdmFsdWUKK29mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZTwvYT4uPHdici8+PC9wPgorPHA+VGhlIGNvb3JkaW5hdGUgc3lzdGVtIGlzIGJhc2VkIG9uIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+Cit3aXRoICgwLDx3YnIvPjApIGJlaW5nIHRoZSB0b3AtbGVmdCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPiBhbmQKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+d2lkdGggLSAxLDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPmhlaWdodCAtIDEpIGJlaW5nIHRoZQorYm90dG9tLXJpZ2h0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXkuPHdici8+PC9wPgorPHA+VGhlIHdlaWdodCBtdXN0IGJlIHdpdGhpbiA8Y29kZT5bMCw8d2JyLz4gMTAwMF08L2NvZGU+LDx3YnIvPiBhbmQgcmVwcmVzZW50cyBhIHdlaWdodAorZm9yIGV2ZXJ5IHBpeGVsIGluIHRoZSBhcmVhLjx3YnIvPiBUaGlzIG1lYW5zIHRoYXQgYSBsYXJnZSBtZXRlcmluZyBhcmVhCit3aXRoIHRoZSBzYW1lIHdlaWdodCBhcyBhIHNtYWxsZXIgYXJlYSB3aWxsIGhhdmUgbW9yZSBlZmZlY3QgaW4KK3RoZSBtZXRlcmluZyByZXN1bHQuPHdici8+IE1ldGVyaW5nIGFyZWFzIGNhbiBwYXJ0aWFsbHkgb3ZlcmxhcCBhbmQgdGhlCitjYW1lcmEgZGV2aWNlIHdpbGwgYWRkIHRoZSB3ZWlnaHRzIGluIHRoZSBvdmVybGFwIHJlZ2lvbi48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0cyBhcmUgcmVsYXRpdmUgdG8gd2VpZ2h0cyBvZiBvdGhlciBleHBvc3VyZSBtZXRlcmluZyByZWdpb25zLDx3YnIvPiBzbyBpZiBvbmx5IG9uZQorcmVnaW9uIGlzIHVzZWQsPHdici8+IGFsbCBub24temVybyB3ZWlnaHRzIHdpbGwgaGF2ZSB0aGUgc2FtZSBlZmZlY3QuPHdici8+IEEgcmVnaW9uIHdpdGggMAord2VpZ2h0IGlzIGlnbm9yZWQuPHdici8+PC9wPgorPHA+SWYgYWxsIHJlZ2lvbnMgaGF2ZSAwIHdlaWdodCw8d2JyLz4gdGhlbiBubyBzcGVjaWZpYyBtZXRlcmluZyBhcmVhIG5lZWRzIHRvIGJlIHVzZWQgYnkgdGhlCitjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPklmIHRoZSBtZXRlcmluZyByZWdpb24gaXMgb3V0c2lkZSB0aGUgdXNlZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4gcmV0dXJuZWQgaW4KK2NhcHR1cmUgcmVzdWx0IG1ldGFkYXRhLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGlnbm9yZSB0aGUgc2VjdGlvbnMgb3V0c2lkZSB0aGUgY3JvcAorcmVnaW9uIGFuZCBvdXRwdXQgb25seSB0aGUgaW50ZXJzZWN0aW9uIHJlY3RhbmdsZSBhcyB0aGUgbWV0ZXJpbmcgcmVnaW9uIGluIHRoZSByZXN1bHQKK21ldGFkYXRhLjx3YnIvPiAgSWYgdGhlIHJlZ2lvbiBpcyBlbnRpcmVseSBvdXRzaWRlIHRoZSBjcm9wIHJlZ2lvbiw8d2JyLz4gaXQgd2lsbCBiZSBpZ25vcmVkIGFuZAorbm90IHJlcG9ydGVkIGluIHRoZSByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIGxldmVsIHJlcHJlc2VudGF0aW9uIG9mIE1ldGVyaW5nUmVjdGFuZ2xlW10gaXMgYQoraW50WzUgKiBhcmVhXzx3YnIvPmNvdW50XS48d2JyLz4KK0V2ZXJ5IGZpdmUgZWxlbWVudHMgcmVwcmVzZW50IGEgbWV0ZXJpbmcgcmVnaW9uIG9mCisoeG1pbiw8d2JyLz4geW1pbiw8d2JyLz4geG1heCw8d2JyLz4geW1heCw8d2JyLz4gd2VpZ2h0KS48d2JyLz4KK1RoZSByZWN0YW5nbGUgaXMgZGVmaW5lZCB0byBiZSBpbmNsdXNpdmUgb24geG1pbiBhbmQgeW1pbiw8d2JyLz4gYnV0CitleGNsdXNpdmUgb24geG1heCBhbmQgeW1heC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmFuZ2VJbnRdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5SYW5nZSBvdmVyIHdoaWNoIHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgY2FuCithZGp1c3QgdGhlIGNhcHR1cmUgZnJhbWUgcmF0ZSB0byBtYWludGFpbiBnb29kCitleHBvc3VyZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgRnJhbWVzIHBlciBzZWNvbmQgKEZQUykKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Bbnkgb2YgdGhlIGVudHJpZXMgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVUYXJnZXRGcHNSYW5nZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+T25seSBjb25zdHJhaW5zIGF1dG8tZXhwb3N1cmUgKEFFKSBhbGdvcml0aG0sPHdici8+IG5vdAorbWFudWFsIGNvbnRyb2wgb2YgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklETEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSB0cmlnZ2VyIGlzIGlkbGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RBUlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlIHdpbGwgYmUgc3RhcnRlZAorYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+VGhlIGV4YWN0IGVmZmVjdCBvZiB0aGUgcHJlY2FwdHVyZSB0cmlnZ2VyIGRlcGVuZHMgb24KK3RoZSBjdXJyZW50IEFFIG1vZGUgYW5kIHN0YXRlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNBTkNFTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBjYW5jZWwgYW55IGN1cnJlbnRseSBhY3RpdmUgb3IgY29tcGxldGVkCitwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlLDx3YnIvPiB0aGUgYXV0by1leHBvc3VyZSByb3V0aW5lIHdpbGwgcmV0dXJuIHRvIGl0cworaW5pdGlhbCBzdGF0ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgdHJpZ2dlciBhIHByZWNhcHR1cmUKK21ldGVyaW5nIHNlcXVlbmNlIHdoZW4gaXQgcHJvY2Vzc2VzIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgZW50cnkgaXMgbm9ybWFsbHkgc2V0IHRvIElETEUsPHdici8+IG9yIGlzIG5vdAoraW5jbHVkZWQgYXQgYWxsIGluIHRoZSByZXF1ZXN0IHNldHRpbmdzLjx3YnIvPiBXaGVuIGluY2x1ZGVkIGFuZAorc2V0IHRvIFNUQVJULDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHRyaWdnZXIgdGhlIGF1dG8tZXhwb3N1cmUgKEFFKQorcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZS48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBDQU5DRUwsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgY2FuY2VsIGFueSBhY3RpdmUKK3ByZWNhcHR1cmUgbWV0ZXJpbmcgdHJpZ2dlciw8d2JyLz4gYW5kIHJldHVybiB0byBpdHMgaW5pdGlhbCBBRSBzdGF0ZS48d2JyLz4KK0lmIGEgcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZSBpcyBhbHJlYWR5IGNvbXBsZXRlZCw8d2JyLz4gYW5kIHRoZSBjYW1lcmEKK2RldmljZSBoYXMgaW1wbGljaXRseSBsb2NrZWQgdGhlIEFFIGZvciBzdWJzZXF1ZW50IHN0aWxsIGNhcHR1cmUsPHdici8+IHRoZQorQ0FOQ0VMIHRyaWdnZXIgd2lsbCB1bmxvY2sgdGhlIEFFIGFuZCByZXR1cm4gdG8gaXRzIGluaXRpYWwgQUUgc3RhdGUuPHdici8+PC9wPgorPHA+VGhlIHByZWNhcHR1cmUgc2VxdWVuY2Ugc2hvdWxkIGJlIHRyaWdnZXJlZCBiZWZvcmUgc3RhcnRpbmcgYQoraGlnaC1xdWFsaXR5IHN0aWxsIGNhcHR1cmUgZm9yIGZpbmFsIG1ldGVyaW5nIGRlY2lzaW9ucyB0bworYmUgbWFkZSw8d2JyLz4gYW5kIGZvciBmaXJpbmcgcHJlLWNhcHR1cmUgZmxhc2ggcHVsc2VzIHRvIGVzdGltYXRlCitzY2VuZSBicmlnaHRuZXNzIGFuZCByZXF1aXJlZCBmaW5hbCBjYXB0dXJlIGZsYXNoIHBvd2VyLDx3YnIvPiB3aGVuCit0aGUgZmxhc2ggaXMgZW5hYmxlZC48d2JyLz48L3A+Cis8cD5Ob3JtYWxseSw8d2JyLz4gdGhpcyBlbnRyeSBzaG91bGQgYmUgc2V0IHRvIFNUQVJUIGZvciBvbmx5IGEKK3NpbmdsZSByZXF1ZXN0LDx3YnIvPiBhbmQgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCB3YWl0IHVudGlsIHRoZQorc2VxdWVuY2UgY29tcGxldGVzIGJlZm9yZSBzdGFydGluZyBhIG5ldyBvbmUuPHdici8+PC9wPgorPHA+V2hlbiBhIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UgaXMgZmluaXNoZWQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlCittYXkgbG9jayB0aGUgYXV0by1leHBvc3VyZSByb3V0aW5lIGludGVybmFsbHkgdG8gYmUgYWJsZSB0byBhY2N1cmF0ZWx5IGV4cG9zZSB0aGUKK3N1YnNlcXVlbnQgc3RpbGwgY2FwdHVyZSBpbWFnZSAoPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Y2FwdHVyZTx3YnIvPkludGVudDwvYT4gPT0gU1RJTExfPHdici8+Q0FQVFVSRTwvY29kZT4pLjx3YnIvPgorRm9yIHRoaXMgY2FzZSw8d2JyLz4gdGhlIEFFIG1heSBub3QgcmVzdW1lIG5vcm1hbCBzY2FuIGlmIG5vIHN1YnNlcXVlbnQgc3RpbGwgY2FwdHVyZSBpcworc3VibWl0dGVkLjx3YnIvPiBUbyBlbnN1cmUgdGhhdCB0aGUgQUUgcm91dGluZSByZXN0YXJ0cyBub3JtYWwgc2Nhbiw8d2JyLz4gdGhlIGFwcGxpY2F0aW9uIHNob3VsZAorc3VibWl0IGEgcmVxdWVzdCB3aXRoIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPiA9PSB0cnVlPC9jb2RlPiw8d2JyLz4gZm9sbG93ZWQgYnkgYSByZXF1ZXN0Cit3aXRoIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPiA9PSBmYWxzZTwvY29kZT4sPHdici8+IGlmIHRoZSBhcHBsaWNhdGlvbiBkZWNpZGVzIG5vdCB0byBzdWJtaXQgYQorc3RpbGwgY2FwdHVyZSByZXF1ZXN0IGFmdGVyIHRoZSBwcmVjYXB0dXJlIHNlcXVlbmNlIGNvbXBsZXRlcy48d2JyLz4gQWx0ZXJuYXRpdmVseSw8d2JyLz4gZm9yCitBUEkgbGV2ZWwgMjMgb3IgbmV3ZXIgZGV2aWNlcyw8d2JyLz4gdGhlIENBTkNFTCBjYW4gYmUgdXNlZCB0byB1bmxvY2sgdGhlIGNhbWVyYSBkZXZpY2UKK2ludGVybmFsbHkgbG9ja2VkIEFFIGlmIHRoZSBhcHBsaWNhdGlvbiBkb2Vzbid0IHN1Ym1pdCBhIHN0aWxsIGNhcHR1cmUgcmVxdWVzdCBhZnRlcgordGhlIEFFIHByZWNhcHR1cmUgdHJpZ2dlci48d2JyLz4gTm90ZSB0aGF0LDx3YnIvPiB0aGUgQ0FOQ0VMIHdhcyBhZGRlZCBpbiBBUEkgbGV2ZWwgMjMsPHdici8+IGFuZCBtdXN0IG5vdAorYmUgdXNlZCBpbiBkZXZpY2VzIHRoYXQgaGF2ZSBlYXJsaWVyIEFQSSBsZXZlbHMuPHdici8+PC9wPgorPHA+VGhlIGV4YWN0IGVmZmVjdCBvZiBhdXRvLWV4cG9zdXJlIChBRSkgcHJlY2FwdHVyZSB0cmlnZ2VyCitkZXBlbmRzIG9uIHRoZSBjdXJyZW50IEFFIG1vZGUgYW5kIHN0YXRlOyBzZWUKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gZm9yIEFFIHByZWNhcHR1cmUgc3RhdGUgdHJhbnNpdGlvbgorZGV0YWlscy48d2JyLz48L3A+Cis8cD5PbiBMRUdBQ1ktbGV2ZWwgZGV2aWNlcyw8d2JyLz4gdGhlIHByZWNhcHR1cmUgdHJpZ2dlciBpcyBub3Qgc3VwcG9ydGVkOworY2FwdHVyaW5nIGEgaGlnaC1yZXNvbHV0aW9uIEpQRUcgaW1hZ2Ugd2lsbCBhdXRvbWF0aWNhbGx5IHRyaWdnZXIgYQorcHJlY2FwdHVyZSBzZXF1ZW5jZSBiZWZvcmUgdGhlIGhpZ2gtcmVzb2x1dGlvbiBjYXB0dXJlLDx3YnIvPiBpbmNsdWRpbmcKK3BvdGVudGlhbGx5IGZpcmluZyBhIHByZS1jYXB0dXJlIGZsYXNoLjx3YnIvPjwvcD4KKzxwPlVzaW5nIHRoZSBwcmVjYXB0dXJlIHRyaWdnZXIgYW5kIHRoZSBhdXRvLWZvY3VzIHRyaWdnZXIgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+CitzaW11bHRhbmVvdXNseSBpcyBhbGxvd2VkLjx3YnIvPiBIb3dldmVyLDx3YnIvPiBzaW5jZSB0aGVzZSB0cmlnZ2VycyBvZnRlbiByZXF1aXJlIGNvb3BlcmF0aW9uIGJldHdlZW4KK3RoZSBhdXRvLWZvY3VzIGFuZCBhdXRvLWV4cG9zdXJlIHJvdXRpbmVzIChmb3IgZXhhbXBsZSw8d2JyLz4gdGhlIG1heSBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIGEKK2ZvY3VzIHN3ZWVwKSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IGRlbGF5IGFjdGluZyBvbiBhIGxhdGVyIHRyaWdnZXIgdW50aWwgdGhlIHByZXZpb3VzCit0cmlnZ2VyIGhhcyBiZWVuIGZ1bGx5IGhhbmRsZWQuPHdici8+IFRoaXMgbWF5IGxlYWQgdG8gbG9uZ2VyIGludGVydmFscyBiZXR3ZWVuIHRoZSB0cmlnZ2VyIGFuZAorY2hhbmdlcyB0byA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+U3RhdGU8L2E+IGluZGljYXRpbmcgdGhlIHN0YXJ0IG9mIHRoZSBwcmVjYXB0dXJlIHNlcXVlbmNlLDx3YnIvPiBmb3IKK2V4YW1wbGUuPHdici8+PC9wPgorPHA+SWYgYm90aCB0aGUgcHJlY2FwdHVyZSBhbmQgdGhlIGF1dG8tZm9jdXMgdHJpZ2dlciBhcmUgYWN0aXZhdGVkIG9uIHRoZSBzYW1lIHJlcXVlc3QsPHdici8+IHRoZW4KK3RoZSBjYW1lcmEgZGV2aWNlIHdpbGwgY29tcGxldGUgdGhlbSBpbiB0aGUgb3B0aW1hbCBvcmRlciBmb3IgdGhhdCBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIG11c3Qgc3VwcG9ydCB0cmlnZ2VyaW5nIHRoZSBBRSBwcmVjYXB0dXJlIHRyaWdnZXIgd2hpbGUgYW4gQUYgdHJpZ2dlciBpcyBhY3RpdmUKKyhhbmQgdmljZSB2ZXJzYSksPHdici8+IG9yIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIEFGIHRyaWdnZXIuPHdici8+ICBJdCBpcyBhY2NlcHRhYmxlIGZvciB0aGUgSEFMIHRvCit0cmVhdCB0aGVzZSBhcyB0d28gY29uc2VjdXRpdmUgdHJpZ2dlcnMsPHdici8+IGZvciBleGFtcGxlIGhhbmRsaW5nIHRoZSBBRiB0cmlnZ2VyIGFuZCB0aGVuIHRoZQorQUUgdHJpZ2dlci48d2JyLz4gIE9yIHRoZSBIQUwgbWF5IGNob29zZSB0byBvcHRpbWl6ZSB0aGUgY2FzZSB3aXRoIGJvdGggdHJpZ2dlcnMgZmlyZWQgYXQgb25jZSw8d2JyLz4KK3RvIG1pbmltaXplIHRoZSBsYXRlbmN5IGZvciBjb252ZXJnaW5nIGJvdGggZm9jdXMgYW5kIGV4cG9zdXJlLzx3YnIvPmZsYXNoIHVzYWdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGF1dG8tZm9jdXMgcm91dGluZSBkb2VzIG5vdCBjb250cm9sIHRoZSBsZW5zOworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gaXMgY29udHJvbGxlZCBieSB0aGUKK2FwcGxpY2F0aW9uLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFVVE88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkJhc2ljIGF1dG9tYXRpYyBmb2N1cyBtb2RlLjx3YnIvPjwvcD4KKzxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGxlbnMgZG9lcyBub3QgbW92ZSB1bmxlc3MKK3RoZSBhdXRvZm9jdXMgdHJpZ2dlciBhY3Rpb24gaXMgY2FsbGVkLjx3YnIvPiBXaGVuIHRoYXQgdHJpZ2dlcgoraXMgYWN0aXZhdGVkLDx3YnIvPiBBRiB3aWxsIHRyYW5zaXRpb24gdG8gQUNUSVZFXzx3YnIvPlNDQU4sPHdici8+IHRoZW4gdG8KK3RoZSBvdXRjb21lIG9mIHRoZSBzY2FuIChGT0NVU0VEIG9yIE5PVF88d2JyLz5GT0NVU0VEKS48d2JyLz48L3A+Cis8cD5BbHdheXMgc3VwcG9ydGVkIGlmIGxlbnMgaXMgbm90IGZpeGVkIGZvY3VzLjx3YnIvPjwvcD4KKzxwPlVzZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gdG8gZGV0ZXJtaW5lIGlmIGxlbnMKK2lzIGZpeGVkLWZvY3VzLjx3YnIvPjwvcD4KKzxwPlRyaWdnZXJpbmcgQUZfPHdici8+Q0FOQ0VMIHJlc2V0cyB0aGUgbGVucyBwb3NpdGlvbiB0byBkZWZhdWx0LDx3YnIvPgorYW5kIHNldHMgdGhlIEFGIHN0YXRlIHRvIElOQUNUSVZFLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk1BQ1JPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5DbG9zZS11cCBmb2N1c2luZyBtb2RlLjx3YnIvPjwvcD4KKzxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGxlbnMgZG9lcyBub3QgbW92ZSB1bmxlc3MgdGhlCithdXRvZm9jdXMgdHJpZ2dlciBhY3Rpb24gaXMgY2FsbGVkLjx3YnIvPiBXaGVuIHRoYXQgdHJpZ2dlciBpcworYWN0aXZhdGVkLDx3YnIvPiBBRiB3aWxsIHRyYW5zaXRpb24gdG8gQUNUSVZFXzx3YnIvPlNDQU4sPHdici8+IHRoZW4gdG8KK3RoZSBvdXRjb21lIG9mIHRoZSBzY2FuIChGT0NVU0VEIG9yIE5PVF88d2JyLz5GT0NVU0VEKS48d2JyLz4gVGhpcworbW9kZSBpcyBvcHRpbWl6ZWQgZm9yIGZvY3VzaW5nIG9uIG9iamVjdHMgdmVyeSBjbG9zZSB0bwordGhlIGNhbWVyYS48d2JyLz48L3A+Cis8cD5XaGVuIHRoYXQgdHJpZ2dlciBpcyBhY3RpdmF0ZWQsPHdici8+IEFGIHdpbGwgdHJhbnNpdGlvbiB0bworQUNUSVZFXzx3YnIvPlNDQU4sPHdici8+IHRoZW4gdG8gdGhlIG91dGNvbWUgb2YgdGhlIHNjYW4gKEZPQ1VTRUQgb3IKK05PVF88d2JyLz5GT0NVU0VEKS48d2JyLz4gVHJpZ2dlcmluZyBjYW5jZWwgQUYgcmVzZXRzIHRoZSBsZW5zCitwb3NpdGlvbiB0byBkZWZhdWx0LDx3YnIvPiBhbmQgc2V0cyB0aGUgQUYgc3RhdGUgdG8KK0lOQUNUSVZFLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNPTlRJTlVPVVNfVklERU88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIEFGIGFsZ29yaXRobSBtb2RpZmllcyB0aGUgbGVucworcG9zaXRpb24gY29udGludWFsbHkgdG8gYXR0ZW1wdCB0byBwcm92aWRlIGEKK2NvbnN0YW50bHktaW4tZm9jdXMgaW1hZ2Ugc3RyZWFtLjx3YnIvPjwvcD4KKzxwPlRoZSBmb2N1c2luZyBiZWhhdmlvciBzaG91bGQgYmUgc3VpdGFibGUgZm9yIGdvb2QgcXVhbGl0eQordmlkZW8gcmVjb3JkaW5nOyB0eXBpY2FsbHkgdGhpcyBtZWFucyBzbG93ZXIgZm9jdXMKK21vdmVtZW50IGFuZCBubyBvdmVyc2hvb3RzLjx3YnIvPiBXaGVuIHRoZSBBRiB0cmlnZ2VyIGlzIG5vdAoraW52b2x2ZWQsPHdici8+IHRoZSBBRiBhbGdvcml0aG0gc2hvdWxkIHN0YXJ0IGluIElOQUNUSVZFIHN0YXRlLDx3YnIvPgorYW5kIHRoZW4gdHJhbnNpdGlvbiBpbnRvIFBBU1NJVkVfPHdici8+U0NBTiBhbmQgUEFTU0lWRV88d2JyLz5GT0NVU0VECitzdGF0ZXMgYXMgYXBwcm9wcmlhdGUuPHdici8+IFdoZW4gdGhlIEFGIHRyaWdnZXIgaXMgYWN0aXZhdGVkLDx3YnIvPgordGhlIGFsZ29yaXRobSBzaG91bGQgaW1tZWRpYXRlbHkgdHJhbnNpdGlvbiBpbnRvCitBRl88d2JyLz5GT0NVU0VEIG9yIEFGXzx3YnIvPk5PVF88d2JyLz5GT0NVU0VEIGFzIGFwcHJvcHJpYXRlLDx3YnIvPiBhbmQgbG9jayB0aGUKK2xlbnMgcG9zaXRpb24gdW50aWwgYSBjYW5jZWwgQUYgdHJpZ2dlciBpcyByZWNlaXZlZC48d2JyLz48L3A+Cis8cD5PbmNlIGNhbmNlbCBpcyByZWNlaXZlZCw8d2JyLz4gdGhlIGFsZ29yaXRobSBzaG91bGQgdHJhbnNpdGlvbgorYmFjayB0byBJTkFDVElWRSBhbmQgcmVzdW1lIHBhc3NpdmUgc2Nhbi48d2JyLz4gTm90ZSB0aGF0IHRoaXMKK2JlaGF2aW9yIGlzIG5vdCBpZGVudGljYWwgdG8gQ09OVElOVU9VU188d2JyLz5QSUNUVVJFLDx3YnIvPiBzaW5jZSBhbgorb25nb2luZyBQQVNTSVZFXzx3YnIvPlNDQU4gbXVzdCBpbW1lZGlhdGVseSBiZQorY2FuY2VsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OVElOVU9VU19QSUNUVVJFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JbiB0aGlzIG1vZGUsPHdici8+IHRoZSBBRiBhbGdvcml0aG0gbW9kaWZpZXMgdGhlIGxlbnMKK3Bvc2l0aW9uIGNvbnRpbnVhbGx5IHRvIGF0dGVtcHQgdG8gcHJvdmlkZSBhCitjb25zdGFudGx5LWluLWZvY3VzIGltYWdlIHN0cmVhbS48d2JyLz48L3A+Cis8cD5UaGUgZm9jdXNpbmcgYmVoYXZpb3Igc2hvdWxkIGJlIHN1aXRhYmxlIGZvciBzdGlsbCBpbWFnZQorY2FwdHVyZTsgdHlwaWNhbGx5IHRoaXMgbWVhbnMgZm9jdXNpbmcgYXMgZmFzdCBhcworcG9zc2libGUuPHdici8+IFdoZW4gdGhlIEFGIHRyaWdnZXIgaXMgbm90IGludm9sdmVkLDx3YnIvPiB0aGUgQUYKK2FsZ29yaXRobSBzaG91bGQgc3RhcnQgaW4gSU5BQ1RJVkUgc3RhdGUsPHdici8+IGFuZCB0aGVuCit0cmFuc2l0aW9uIGludG8gUEFTU0lWRV88d2JyLz5TQ0FOIGFuZCBQQVNTSVZFXzx3YnIvPkZPQ1VTRUQgc3RhdGVzIGFzCithcHByb3ByaWF0ZSBhcyBpdCBhdHRlbXB0cyB0byBtYWludGFpbiBmb2N1cy48d2JyLz4gV2hlbiB0aGUgQUYKK3RyaWdnZXIgaXMgYWN0aXZhdGVkLDx3YnIvPiB0aGUgYWxnb3JpdGhtIHNob3VsZCBmaW5pc2ggaXRzCitQQVNTSVZFXzx3YnIvPlNDQU4gaWYgYWN0aXZlLDx3YnIvPiBhbmQgdGhlbiB0cmFuc2l0aW9uIGludG8KK0FGXzx3YnIvPkZPQ1VTRUQgb3IgQUZfPHdici8+Tk9UXzx3YnIvPkZPQ1VTRUQgYXMgYXBwcm9wcmlhdGUsPHdici8+IGFuZCBsb2NrIHRoZQorbGVucyBwb3NpdGlvbiB1bnRpbCBhIGNhbmNlbCBBRiB0cmlnZ2VyIGlzIHJlY2VpdmVkLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhlIEFGIGNhbmNlbCB0cmlnZ2VyIGlzIGFjdGl2YXRlZCw8d2JyLz4gdGhlIGFsZ29yaXRobQorc2hvdWxkIHRyYW5zaXRpb24gYmFjayB0byBJTkFDVElWRSBhbmQgdGhlbiBhY3QgYXMgaWYgaXQKK2hhcyBqdXN0IGJlZW4gc3RhcnRlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5FRE9GPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5FeHRlbmRlZCBkZXB0aCBvZiBmaWVsZCAoZGlnaXRhbCBmb2N1cykgbW9kZS48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIHByb2R1Y2UgaW1hZ2VzIHdpdGggYW4gZXh0ZW5kZWQKK2RlcHRoIG9mIGZpZWxkIGF1dG9tYXRpY2FsbHk7IG5vIHNwZWNpYWwgZm9jdXNpbmcKK29wZXJhdGlvbnMgbmVlZCB0byBiZSBkb25lIGJlZm9yZSB0YWtpbmcgYSBwaWN0dXJlLjx3YnIvPjwvcD4KKzxwPkFGIHRyaWdnZXJzIGFyZSBpZ25vcmVkLDx3YnIvPiBhbmQgdGhlIEFGIHN0YXRlIHdpbGwgYWx3YXlzIGJlCitJTkFDVElWRS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGF1dG8tZm9jdXMgKEFGKSBpcyBjdXJyZW50bHkgZW5hYmxlZCw8d2JyLz4gYW5kIHdoYXQKK21vZGUgaXQgaXMgc2V0IHRvLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFmQXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPkF2YWlsYWJsZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Pbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9IEFVVE8gYW5kIHRoZSBsZW5zIGlzIG5vdCBmaXhlZCBmb2N1cworKGkuPHdici8+ZS48d2JyLz4gPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+ICZndDsgMDwvY29kZT4pLjx3YnIvPiBBbHNvIG5vdGUgdGhhdAord2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgT0ZGLDx3YnIvPiB0aGUgYmVoYXZpb3Igb2YgQUYgaXMgZGV2aWNlCitkZXBlbmRlbnQuPHdici8+IEl0IGlzIHJlY29tbWVuZGVkIHRvIGxvY2sgQUYgYnkgdXNpbmcgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+IGJlZm9yZQorc2V0dGluZyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gdG8gT0ZGLDx3YnIvPiBvciBzZXQgQUYgbW9kZSB0byBPRkYgd2hlbiBBRSBpcyBPRkYuPHdici8+PC9wPgorPHA+SWYgdGhlIGxlbnMgaXMgY29udHJvbGxlZCBieSB0aGUgY2FtZXJhIGRldmljZSBhdXRvLWZvY3VzIGFsZ29yaXRobSw8d2JyLz4KK3RoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcmVwb3J0IHRoZSBjdXJyZW50IEFGIHN0YXR1cyBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+CitpbiByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIGFmTW9kZSBpcyBBVVRPIG9yIE1BQ1JPLDx3YnIvPiB0aGUgbGVucyBtdXN0IG5vdCBtb3ZlIHVudGlsIGFuIEFGIHRyaWdnZXIgaXMgc2VudCBpbiBhCityZXF1ZXN0ICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4gPGNvZGU+PT08L2NvZGU+IFNUQVJUKS48d2JyLz4gQWZ0ZXIgYW4gQUYgdHJpZ2dlciw8d2JyLz4gdGhlIGFmU3RhdGUgd2lsbCBlbmQKK3VwIHdpdGggZWl0aGVyIEZPQ1VTRURfPHdici8+TE9DS0VEIG9yIE5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRCBzdGF0ZSAoc2VlCis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+IGZvciBkZXRhaWxlZCBzdGF0ZSB0cmFuc2l0aW9ucyksPHdici8+IHdoaWNoIGluZGljYXRlcyB0aGF0IHRoZSBsZW5zIGlzCitsb2NrZWQgYW5kIHdpbGwgbm90IG1vdmUuPHdici8+IElmIGNhbWVyYSBtb3ZlbWVudCAoZS48d2JyLz5nLjx3YnIvPiB0aWx0aW5nIGNhbWVyYSkgY2F1c2VzIHRoZSBsZW5zIHRvIG1vdmUKK2FmdGVyIHRoZSBsZW5zIGlzIGxvY2tlZCw8d2JyLz4gdGhlIEhBTCBtdXN0IGNvbXBlbnNhdGUgdGhpcyBtb3ZlbWVudCBhcHByb3ByaWF0ZWx5IHN1Y2ggdGhhdAordGhlIHNhbWUgZm9jYWwgcGxhbmUgcmVtYWlucyBpbiBmb2N1cy48d2JyLz48L3A+Cis8cD5XaGVuIGFmTW9kZSBpcyBvbmUgb2YgdGhlIGNvbnRpbnVvdXMgYXV0byBmb2N1cyBtb2Rlcyw8d2JyLz4gdGhlIEhBTCBpcyBmcmVlIHRvIHN0YXJ0IGEgQUYKK3NjYW4gd2hlbmV2ZXIgaXQncyBub3QgbG9ja2VkLjx3YnIvPiBXaGVuIHRoZSBsZW5zIGlzIGxvY2tlZCBhZnRlciBhbiBBRiB0cmlnZ2VyCisoc2VlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5TdGF0ZTwvYT4gZm9yIGRldGFpbGVkIHN0YXRlIHRyYW5zaXRpb25zKSw8d2JyLz4gdGhlIEhBTCBzaG91bGQgbWFpbnRhaW4gdGhlCitzYW1lIGxvY2sgYmVoYXZpb3IgYXMgYWJvdmUuPHdici8+PC9wPgorPHA+V2hlbiBhZk1vZGUgaXMgT0ZGLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gY29udHJvbHMgZm9jdXMgbWFudWFsbHkuPHdici8+IFRoZSBhY2N1cmFjeSBvZiB0aGUKK2ZvY3VzIGRpc3RhbmNlIGNvbnRyb2wgZGVwZW5kcyBvbiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbjwvYT4uPHdici8+CitIb3dldmVyLDx3YnIvPiB0aGUgbGVucyBtdXN0IG5vdCBtb3ZlIHJlZ2FyZGxlc3Mgb2YgdGhlIGNhbWVyYSBtb3ZlbWVudCBmb3IgYW55IGZvY3VzIGRpc3RhbmNlCittYW51YWwgY29udHJvbC48d2JyLz48L3A+Cis8cD5UbyBwdXQgdGhpcyBpbiBjb25jcmV0ZSB0ZXJtcyw8d2JyLz4gaWYgdGhlIGNhbWVyYSBoYXMgbGVucyBlbGVtZW50cyB3aGljaCBtYXkgbW92ZSBiYXNlZCBvbgorY2FtZXJhIG9yaWVudGF0aW9uIG9yIG1vdGlvbiAoZS48d2JyLz5nLjx3YnIvPiBkdWUgdG8gZ3Jhdml0eSksPHdici8+IHRoZW4gdGhlIEhBTCBtdXN0IGRyaXZlIHRoZSBsZW5zIHRvCityZW1haW4gaW4gYSBmaXhlZCBwb3NpdGlvbiBpbnZhcmlhbnQgdG8gdGhlIGNhbWVyYSdzIG9yaWVudGF0aW9uIG9yIG1vdGlvbiw8d2JyLz4gZm9yIGV4YW1wbGUsPHdici8+CitieSB1c2luZyBhY2NlbGVyb21ldGVyIG1lYXN1cmVtZW50cyBpbiB0aGUgbGVucyBjb250cm9sIGxvZ2ljLjx3YnIvPiBUaGlzIGlzIGEgdHlwaWNhbCBpc3N1ZQordGhhdCB3aWxsIGFyaXNlIG9uIGNhbWVyYSBtb2R1bGVzIHdpdGggb3Blbi1sb29wIFZDTXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmUmVnaW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5SZWdpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA1IHggYXJlYV9jb3VudAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgbWV0ZXJpbmdSZWN0YW5nbGVdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBtZXRlcmluZyBhcmVhcyB0byB1c2UgZm9yIGF1dG8tZm9jdXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFBpeGVsIGNvb3JkaW5hdGVzIHdpdGhpbiBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkNvb3JkaW5hdGVzIG11c3QgYmUgYmV0d2VlbiA8Y29kZT5bKDAsPHdici8+MCksPHdici8+ICh3aWR0aCw8d2JyLz4gaGVpZ2h0KSk8L2NvZGU+IG9mCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Tm90IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQWYiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tYXg8d2JyLz5SZWdpb25zPHdici8+QWY8L2E+IGlzIDAuPHdici8+CitPdGhlcndpc2Ugd2lsbCBhbHdheXMgYmUgcHJlc2VudC48d2JyLz48L3A+Cis8cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgZm9jdXMgYXJlYXMgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UgaXMgZGV0ZXJtaW5lZCBieSB0aGUgdmFsdWUKK29mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZjwvYT4uPHdici8+PC9wPgorPHA+VGhlIGNvb3JkaW5hdGUgc3lzdGVtIGlzIGJhc2VkIG9uIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+Cit3aXRoICgwLDx3YnIvPjApIGJlaW5nIHRoZSB0b3AtbGVmdCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPiBhbmQKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+d2lkdGggLSAxLDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPmhlaWdodCAtIDEpIGJlaW5nIHRoZQorYm90dG9tLXJpZ2h0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXkuPHdici8+PC9wPgorPHA+VGhlIHdlaWdodCBtdXN0IGJlIHdpdGhpbiA8Y29kZT5bMCw8d2JyLz4gMTAwMF08L2NvZGU+LDx3YnIvPiBhbmQgcmVwcmVzZW50cyBhIHdlaWdodAorZm9yIGV2ZXJ5IHBpeGVsIGluIHRoZSBhcmVhLjx3YnIvPiBUaGlzIG1lYW5zIHRoYXQgYSBsYXJnZSBtZXRlcmluZyBhcmVhCit3aXRoIHRoZSBzYW1lIHdlaWdodCBhcyBhIHNtYWxsZXIgYXJlYSB3aWxsIGhhdmUgbW9yZSBlZmZlY3QgaW4KK3RoZSBtZXRlcmluZyByZXN1bHQuPHdici8+IE1ldGVyaW5nIGFyZWFzIGNhbiBwYXJ0aWFsbHkgb3ZlcmxhcCBhbmQgdGhlCitjYW1lcmEgZGV2aWNlIHdpbGwgYWRkIHRoZSB3ZWlnaHRzIGluIHRoZSBvdmVybGFwIHJlZ2lvbi48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0cyBhcmUgcmVsYXRpdmUgdG8gd2VpZ2h0cyBvZiBvdGhlciBtZXRlcmluZyByZWdpb25zLDx3YnIvPiBzbyBpZiBvbmx5IG9uZSByZWdpb24KK2lzIHVzZWQsPHdici8+IGFsbCBub24temVybyB3ZWlnaHRzIHdpbGwgaGF2ZSB0aGUgc2FtZSBlZmZlY3QuPHdici8+IEEgcmVnaW9uIHdpdGggMCB3ZWlnaHQgaXMKK2lnbm9yZWQuPHdici8+PC9wPgorPHA+SWYgYWxsIHJlZ2lvbnMgaGF2ZSAwIHdlaWdodCw8d2JyLz4gdGhlbiBubyBzcGVjaWZpYyBtZXRlcmluZyBhcmVhIG5lZWRzIHRvIGJlIHVzZWQgYnkgdGhlCitjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPklmIHRoZSBtZXRlcmluZyByZWdpb24gaXMgb3V0c2lkZSB0aGUgdXNlZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4gcmV0dXJuZWQgaW4KK2NhcHR1cmUgcmVzdWx0IG1ldGFkYXRhLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGlnbm9yZSB0aGUgc2VjdGlvbnMgb3V0c2lkZSB0aGUgY3JvcAorcmVnaW9uIGFuZCBvdXRwdXQgb25seSB0aGUgaW50ZXJzZWN0aW9uIHJlY3RhbmdsZSBhcyB0aGUgbWV0ZXJpbmcgcmVnaW9uIGluIHRoZSByZXN1bHQKK21ldGFkYXRhLjx3YnIvPiBJZiB0aGUgcmVnaW9uIGlzIGVudGlyZWx5IG91dHNpZGUgdGhlIGNyb3AgcmVnaW9uLDx3YnIvPiBpdCB3aWxsIGJlIGlnbm9yZWQgYW5kCitub3QgcmVwb3J0ZWQgaW4gdGhlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbGV2ZWwgcmVwcmVzZW50YXRpb24gb2YgTWV0ZXJpbmdSZWN0YW5nbGVbXSBpcyBhCitpbnRbNSAqIGFyZWFfPHdici8+Y291bnRdLjx3YnIvPgorRXZlcnkgZml2ZSBlbGVtZW50cyByZXByZXNlbnQgYSBtZXRlcmluZyByZWdpb24gb2YKKyh4bWluLDx3YnIvPiB5bWluLDx3YnIvPiB4bWF4LDx3YnIvPiB5bWF4LDx3YnIvPiB3ZWlnaHQpLjx3YnIvPgorVGhlIHJlY3RhbmdsZSBpcyBkZWZpbmVkIHRvIGJlIGluY2x1c2l2ZSBvbiB4bWluIGFuZCB5bWluLDx3YnIvPiBidXQKK2V4Y2x1c2l2ZSBvbiB4bWF4IGFuZCB5bWF4Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklETEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSB0cmlnZ2VyIGlzIGlkbGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RBUlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG9mb2N1cyB3aWxsIHRyaWdnZXIgbm93Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNBTkNFTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXV0b2ZvY3VzIHdpbGwgcmV0dXJuIHRvIGl0cyBpbml0aWFsCitzdGF0ZSw8d2JyLz4gYW5kIGNhbmNlbCBhbnkgY3VycmVudGx5IGFjdGl2ZSB0cmlnZ2VyLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCB0cmlnZ2VyIGF1dG9mb2N1cyBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBlbnRyeSBpcyBub3JtYWxseSBzZXQgdG8gSURMRSw8d2JyLz4gb3IgaXMgbm90CitpbmNsdWRlZCBhdCBhbGwgaW4gdGhlIHJlcXVlc3Qgc2V0dGluZ3MuPHdici8+PC9wPgorPHA+V2hlbiBpbmNsdWRlZCBhbmQgc2V0IHRvIFNUQVJULDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHRyaWdnZXIgdGhlCithdXRvZm9jdXMgYWxnb3JpdGhtLjx3YnIvPiBJZiBhdXRvZm9jdXMgaXMgZGlzYWJsZWQsPHdici8+IHRoaXMgdHJpZ2dlciBoYXMgbm8gZWZmZWN0Ljx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIENBTkNFTCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBjYW5jZWwgYW55IGFjdGl2ZSB0cmlnZ2VyLDx3YnIvPgorYW5kIHJldHVybiB0byBpdHMgaW5pdGlhbCBBRiBzdGF0ZS48d2JyLz48L3A+Cis8cD5HZW5lcmFsbHksPHdici8+IGFwcGxpY2F0aW9ucyBzaG91bGQgc2V0IHRoaXMgZW50cnkgdG8gU1RBUlQgb3IgQ0FOQ0VMIGZvciBvbmx5IGEKK3NpbmdsZSBjYXB0dXJlLDx3YnIvPiBhbmQgdGhlbiByZXR1cm4gaXQgdG8gSURMRSAob3Igbm90IHNldCBhdCBhbGwpLjx3YnIvPiBTcGVjaWZ5aW5nCitTVEFSVCBmb3IgbXVsdGlwbGUgY2FwdHVyZXMgaW4gYSByb3cgbWVhbnMgcmVzdGFydGluZyB0aGUgQUYgb3BlcmF0aW9uIG92ZXIKK2FuZCBvdmVyIGFnYWluLjx3YnIvPjwvcD4KKzxwPlNlZSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+IGZvciB3aGF0IHRoZSB0cmlnZ2VyIG1lYW5zIGZvciBlYWNoIEFGIG1vZGUuPHdici8+PC9wPgorPHA+VXNpbmcgdGhlIGF1dG9mb2N1cyB0cmlnZ2VyIGFuZCB0aGUgcHJlY2FwdHVyZSB0cmlnZ2VyIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+CitzaW11bHRhbmVvdXNseSBpcyBhbGxvd2VkLjx3YnIvPiBIb3dldmVyLDx3YnIvPiBzaW5jZSB0aGVzZSB0cmlnZ2VycyBvZnRlbiByZXF1aXJlIGNvb3BlcmF0aW9uIGJldHdlZW4KK3RoZSBhdXRvLWZvY3VzIGFuZCBhdXRvLWV4cG9zdXJlIHJvdXRpbmVzIChmb3IgZXhhbXBsZSw8d2JyLz4gdGhlIG1heSBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIGEKK2ZvY3VzIHN3ZWVwKSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IGRlbGF5IGFjdGluZyBvbiBhIGxhdGVyIHRyaWdnZXIgdW50aWwgdGhlIHByZXZpb3VzCit0cmlnZ2VyIGhhcyBiZWVuIGZ1bGx5IGhhbmRsZWQuPHdici8+IFRoaXMgbWF5IGxlYWQgdG8gbG9uZ2VyIGludGVydmFscyBiZXR3ZWVuIHRoZSB0cmlnZ2VyIGFuZAorY2hhbmdlcyB0byA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+LDx3YnIvPiBmb3IgZXhhbXBsZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbXVzdCBzdXBwb3J0IHRyaWdnZXJpbmcgdGhlIEFGIHRyaWdnZXIgd2hpbGUgYW4gQUUgcHJlY2FwdHVyZSB0cmlnZ2VyIGlzIGFjdGl2ZQorKGFuZCB2aWNlIHZlcnNhKSw8d2JyLz4gb3IgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgQUUgdHJpZ2dlci48d2JyLz4gIEl0IGlzIGFjY2VwdGFibGUgZm9yIHRoZSBIQUwgdG8KK3RyZWF0IHRoZXNlIGFzIHR3byBjb25zZWN1dGl2ZSB0cmlnZ2Vycyw8d2JyLz4gZm9yIGV4YW1wbGUgaGFuZGxpbmcgdGhlIEFGIHRyaWdnZXIgYW5kIHRoZW4gdGhlCitBRSB0cmlnZ2VyLjx3YnIvPiAgT3IgdGhlIEhBTCBtYXkgY2hvb3NlIHRvIG9wdGltaXplIHRoZSBjYXNlIHdpdGggYm90aCB0cmlnZ2VycyBmaXJlZCBhdCBvbmNlLDx3YnIvPgordG8gbWluaW1pemUgdGhlIGxhdGVuY3kgZm9yIGNvbnZlcmdpbmcgYm90aCBmb2N1cyBhbmQgZXhwb3N1cmUvPHdici8+Zmxhc2ggdXNhZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2sKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXV0by13aGl0ZSBiYWxhbmNlIGxvY2sgaXMgZGlzYWJsZWQ7IHRoZSBBV0IKK2FsZ29yaXRobSBpcyBmcmVlIHRvIHVwZGF0ZSBpdHMgcGFyYW1ldGVycyBpZiBpbiBBVVRPCittb2RlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BdXRvLXdoaXRlIGJhbGFuY2UgbG9jayBpcyBlbmFibGVkOyB0aGUgQVdCCithbGdvcml0aG0gd2lsbCBub3QgdXBkYXRlIGl0cyBwYXJhbWV0ZXJzIHdoaWxlIHRoZSBsb2NrCitpcyBhY3RpdmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgaXMgY3VycmVudGx5IGxvY2tlZCB0byBpdHMKK2xhdGVzdCBjYWxjdWxhdGVkIHZhbHVlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IChPTiksPHdici8+IHRoZSBBV0IgYWxnb3JpdGhtIGlzIGxvY2tlZCB0byBpdHMgbGF0ZXN0IHBhcmFtZXRlcnMsPHdici8+CithbmQgd2lsbCBub3QgY2hhbmdlIGNvbG9yIGJhbGFuY2Ugc2V0dGluZ3MgdW50aWwgdGhlIGxvY2sgaXMgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiAoT0ZGKS48d2JyLz48L3A+Cis8cD5TaW5jZSB0aGUgY2FtZXJhIGRldmljZSBoYXMgYSBwaXBlbGluZSBvZiBpbi1mbGlnaHQgcmVxdWVzdHMsPHdici8+IHRoZSBzZXR0aW5ncyB0aGF0CitnZXQgbG9ja2VkIGRvIG5vdCBuZWNlc3NhcmlseSBjb3JyZXNwb25kIHRvIHRoZSBzZXR0aW5ncyB0aGF0IHdlcmUgcHJlc2VudCBpbiB0aGUKK2xhdGVzdCBjYXB0dXJlIHJlc3VsdCByZWNlaXZlZCBmcm9tIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBzaW5jZSBhZGRpdGlvbmFsIGNhcHR1cmVzCithbmQgQVdCIHVwZGF0ZXMgbWF5IGhhdmUgb2NjdXJyZWQgZXZlbiBiZWZvcmUgdGhlIHJlc3VsdCB3YXMgc2VudCBvdXQuPHdici8+IElmIGFuCithcHBsaWNhdGlvbiBpcyBzd2l0Y2hpbmcgYmV0d2VlbiBhdXRvbWF0aWMgYW5kIG1hbnVhbCBjb250cm9sIGFuZCB3aXNoZXMgdG8gZWxpbWluYXRlCithbnkgZmxpY2tlciBkdXJpbmcgdGhlIHN3aXRjaCw8d2JyLz4gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmUgaXMgcmVjb21tZW5kZWQ6PC9wPgorPG9sPgorPGxpPlN0YXJ0aW5nIGluIGF1dG8tQVdCIG1vZGU6PC9saT4KKzxsaT5Mb2NrIEFXQjwvbGk+Cis8bGk+V2FpdCBmb3IgdGhlIGZpcnN0IHJlc3VsdCB0byBiZSBvdXRwdXQgdGhhdCBoYXMgdGhlIEFXQiBsb2NrZWQ8L2xpPgorPGxpPkNvcHkgQVdCIHNldHRpbmdzIGZyb20gdGhhdCByZXN1bHQgaW50byBhIHJlcXVlc3QsPHdici8+IHNldCB0aGUgcmVxdWVzdCB0byBtYW51YWwgQVdCPC9saT4KKzxsaT5TdWJtaXQgdGhlIGNhcHR1cmUgcmVxdWVzdCw8d2JyLz4gcHJvY2VlZCB0byBydW4gbWFudWFsIEFXQiBhcyBkZXNpcmVkLjx3YnIvPjwvbGk+Cis8L29sPgorPHA+Tm90ZSB0aGF0IEFXQiBsb2NrIGlzIG9ubHkgbWVhbmluZ2Z1bCB3aGVuCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiBpcyBpbiB0aGUgQVVUTyBtb2RlOyBpbiBvdGhlciBtb2Rlcyw8d2JyLz4KK0FXQiBpcyBhbHJlYWR5IGZpeGVkIHRvIGEgc3BlY2lmaWMgc2V0dGluZy48d2JyLz48L3A+Cis8cD5Tb21lIExFR0FDWSBkZXZpY2VzIG1heSBub3Qgc3VwcG9ydCBPTjsgdGhlIHZhbHVlIGlzIHRoZW4gb3ZlcnJpZGRlbiB0byBPRkYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZC48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24tc2VsZWN0ZWQgY29sb3IgdHJhbnNmb3JtIG1hdHJpeAorKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4pIGFuZCBnYWlucworKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+KSBhcmUgdXNlZCBieSB0aGUgY2FtZXJhCitkZXZpY2UgZm9yIG1hbnVhbCB3aGl0ZSBiYWxhbmNlIGNvbnRyb2wuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QVVUTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBhY3RpdmUuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklOQ0FOREVTQ0VOVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgaW5jYW5kZXNjZW50IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+V2hpbGUgdGhlIGV4YWN0IHdoaXRlIGJhbGFuY2UgdHJhbnNmb3JtcyBhcmUgdXAgdG8gdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGV5IHdpbGwgYXBwcm94aW1hdGVseSBtYXRjaCB0aGUgQ0lFCitzdGFuZGFyZCBpbGx1bWluYW50IEEuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZMVU9SRVNDRU5UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyBmbHVvcmVzY2VudCBsaWdodCBhcyB0aGUgYXNzdW1lZCBzY2VuZQoraWxsdW1pbmF0aW9uIGZvciB3aGl0ZSBiYWxhbmNlLjx3YnIvPjwvcD4KKzxwPldoaWxlIHRoZSBleGFjdCB3aGl0ZSBiYWxhbmNlIHRyYW5zZm9ybXMgYXJlIHVwIHRvIHRoZQorY2FtZXJhIGRldmljZSw8d2JyLz4gdGhleSB3aWxsIGFwcHJveGltYXRlbHkgbWF0Y2ggdGhlIENJRQorc3RhbmRhcmQgaWxsdW1pbmFudCBGMi48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+V0FSTV9GTFVPUkVTQ0VOVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgd2FybSBmbHVvcmVzY2VudCBsaWdodCBhcyB0aGUgYXNzdW1lZCBzY2VuZQoraWxsdW1pbmF0aW9uIGZvciB3aGl0ZSBiYWxhbmNlLjx3YnIvPjwvcD4KKzxwPldoaWxlIHRoZSBleGFjdCB3aGl0ZSBiYWxhbmNlIHRyYW5zZm9ybXMgYXJlIHVwIHRvIHRoZQorY2FtZXJhIGRldmljZSw8d2JyLz4gdGhleSB3aWxsIGFwcHJveGltYXRlbHkgbWF0Y2ggdGhlIENJRQorc3RhbmRhcmQgaWxsdW1pbmFudCBGNC48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+REFZTElHSFQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIGRheWxpZ2h0IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+V2hpbGUgdGhlIGV4YWN0IHdoaXRlIGJhbGFuY2UgdHJhbnNmb3JtcyBhcmUgdXAgdG8gdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGV5IHdpbGwgYXBwcm94aW1hdGVseSBtYXRjaCB0aGUgQ0lFCitzdGFuZGFyZCBpbGx1bWluYW50IEQ2NS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q0xPVURZX0RBWUxJR0hUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyBjbG91ZHkgZGF5bGlnaHQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VFdJTElHSFQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIHR3aWxpZ2h0IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNIQURFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyBzaGFkZSBsaWdodCBhcyB0aGUgYXNzdW1lZCBzY2VuZQoraWxsdW1pbmF0aW9uIGZvciB3aGl0ZSBiYWxhbmNlLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKSBpcyBjdXJyZW50bHkgc2V0dGluZyB0aGUgY29sb3IKK3RyYW5zZm9ybSBmaWVsZHMsPHdici8+IGFuZCB3aGF0IGl0cyBpbGx1bWluYXRpb24gdGFyZ2V0Citpcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hd2JBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkF2YWlsYWJsZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gaXMgQVVUTy48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byB0aGUgT04gbW9kZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2UKK3JvdXRpbmUgaXMgZW5hYmxlZCw8d2JyLz4gb3ZlcnJpZGluZyB0aGUgYXBwbGljYXRpb24ncyBzZWxlY3RlZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4uPHdici8+IE5vdGUgdGhhdCB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPgoraXMgT0ZGLDx3YnIvPiB0aGUgYmVoYXZpb3Igb2YgQVdCIGlzIGRldmljZSBkZXBlbmRlbnQuPHdici8+IEl0IGlzIHJlY29tbWVuZWQgdG8KK2Fsc28gc2V0IEFXQiBtb2RlIHRvIE9GRiBvciBsb2NrIEFXQiBieSB1c2luZyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPiBiZWZvcmUKK3NldHRpbmcgQUUgbW9kZSB0byBPRkYuPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gdGhlIE9GRiBtb2RlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZQorcm91dGluZSBpcyBkaXNhYmxlZC48d2JyLz4gVGhlIGFwcGxpY2F0aW9uIG1hbnVhbGx5IGNvbnRyb2xzIHRoZSB3aGl0ZQorYmFsYW5jZSBieSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPi48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBhbnkgb3RoZXIgbW9kZXMsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZQorYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB1c2VzIGVhY2gKK3BhcnRpY3VsYXIgaWxsdW1pbmF0aW9uIHRhcmdldCBmb3Igd2hpdGUgYmFsYW5jZQorYWRqdXN0bWVudC48d2JyLz4gVGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPlJlZ2lvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDUgeCBhcmVhX2NvdW50CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBtZXRlcmluZ1JlY3RhbmdsZV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIG1ldGVyaW5nIGFyZWFzIHRvIHVzZSBmb3IgYXV0by13aGl0ZS1iYWxhbmNlIGlsbHVtaW5hbnQKK2VzdGltYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFBpeGVsIGNvb3JkaW5hdGVzIHdpdGhpbiBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkNvb3JkaW5hdGVzIG11c3QgYmUgYmV0d2VlbiA8Y29kZT5bKDAsPHdici8+MCksPHdici8+ICh3aWR0aCw8d2JyLz4gaGVpZ2h0KSk8L2NvZGU+IG9mCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Tm90IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQXdiIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkF3YjwvYT4gaXMgMC48d2JyLz4KK090aGVyd2lzZSB3aWxsIGFsd2F5cyBiZSBwcmVzZW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiByZWdpb25zIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlIGlzIGRldGVybWluZWQgYnkgdGhlIHZhbHVlCitvZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQXdiIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkF3YjwvYT4uPHdici8+PC9wPgorPHA+VGhlIGNvb3JkaW5hdGUgc3lzdGVtIGlzIGJhc2VkIG9uIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+Cit3aXRoICgwLDx3YnIvPjApIGJlaW5nIHRoZSB0b3AtbGVmdCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPiBhbmQKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+d2lkdGggLSAxLDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPmhlaWdodCAtIDEpIGJlaW5nIHRoZQorYm90dG9tLXJpZ2h0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXkuPHdici8+PC9wPgorPHA+VGhlIHdlaWdodCBtdXN0IHJhbmdlIGZyb20gMCB0byAxMDAwLDx3YnIvPiBhbmQgcmVwcmVzZW50cyBhIHdlaWdodAorZm9yIGV2ZXJ5IHBpeGVsIGluIHRoZSBhcmVhLjx3YnIvPiBUaGlzIG1lYW5zIHRoYXQgYSBsYXJnZSBtZXRlcmluZyBhcmVhCit3aXRoIHRoZSBzYW1lIHdlaWdodCBhcyBhIHNtYWxsZXIgYXJlYSB3aWxsIGhhdmUgbW9yZSBlZmZlY3QgaW4KK3RoZSBtZXRlcmluZyByZXN1bHQuPHdici8+IE1ldGVyaW5nIGFyZWFzIGNhbiBwYXJ0aWFsbHkgb3ZlcmxhcCBhbmQgdGhlCitjYW1lcmEgZGV2aWNlIHdpbGwgYWRkIHRoZSB3ZWlnaHRzIGluIHRoZSBvdmVybGFwIHJlZ2lvbi48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0cyBhcmUgcmVsYXRpdmUgdG8gd2VpZ2h0cyBvZiBvdGhlciB3aGl0ZSBiYWxhbmNlIG1ldGVyaW5nIHJlZ2lvbnMsPHdici8+IHNvIGlmCitvbmx5IG9uZSByZWdpb24gaXMgdXNlZCw8d2JyLz4gYWxsIG5vbi16ZXJvIHdlaWdodHMgd2lsbCBoYXZlIHRoZSBzYW1lIGVmZmVjdC48d2JyLz4gQSByZWdpb24gd2l0aAorMCB3ZWlnaHQgaXMgaWdub3JlZC48d2JyLz48L3A+Cis8cD5JZiBhbGwgcmVnaW9ucyBoYXZlIDAgd2VpZ2h0LDx3YnIvPiB0aGVuIG5vIHNwZWNpZmljIG1ldGVyaW5nIGFyZWEgbmVlZHMgdG8gYmUgdXNlZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+SWYgdGhlIG1ldGVyaW5nIHJlZ2lvbiBpcyBvdXRzaWRlIHRoZSB1c2VkIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPiByZXR1cm5lZCBpbgorY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgaWdub3JlIHRoZSBzZWN0aW9ucyBvdXRzaWRlIHRoZSBjcm9wCityZWdpb24gYW5kIG91dHB1dCBvbmx5IHRoZSBpbnRlcnNlY3Rpb24gcmVjdGFuZ2xlIGFzIHRoZSBtZXRlcmluZyByZWdpb24gaW4gdGhlIHJlc3VsdAorbWV0YWRhdGEuPHdici8+ICBJZiB0aGUgcmVnaW9uIGlzIGVudGlyZWx5IG91dHNpZGUgdGhlIGNyb3AgcmVnaW9uLDx3YnIvPiBpdCB3aWxsIGJlIGlnbm9yZWQgYW5kCitub3QgcmVwb3J0ZWQgaW4gdGhlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbGV2ZWwgcmVwcmVzZW50YXRpb24gb2YgTWV0ZXJpbmdSZWN0YW5nbGVbXSBpcyBhCitpbnRbNSAqIGFyZWFfPHdici8+Y291bnRdLjx3YnIvPgorRXZlcnkgZml2ZSBlbGVtZW50cyByZXByZXNlbnQgYSBtZXRlcmluZyByZWdpb24gb2YKKyh4bWluLDx3YnIvPiB5bWluLDx3YnIvPiB4bWF4LDx3YnIvPiB5bWF4LDx3YnIvPiB3ZWlnaHQpLjx3YnIvPgorVGhlIHJlY3RhbmdsZSBpcyBkZWZpbmVkIHRvIGJlIGluY2x1c2l2ZSBvbiB4bWluIGFuZCB5bWluLDx3YnIvPiBidXQKK2V4Y2x1c2l2ZSBvbiB4bWF4IGFuZCB5bWF4Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q1VTVE9NPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgZ29hbCBvZiB0aGlzIHJlcXVlc3QgZG9lc24ndCBmYWxsIGludG8gdGhlIG90aGVyCitjYXRlZ29yaWVzLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB3aWxsIGRlZmF1bHQgdG8gcHJldmlldy1saWtlCitiZWhhdmlvci48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QUkVWSUVXPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIGEgcHJldmlldy1saWtlIHVzZSBjYXNlLjx3YnIvPjwvcD4KKzxwPlRoZSBwcmVjYXB0dXJlIHRyaWdnZXIgbWF5IGJlIHVzZWQgdG8gc3RhcnQgb2ZmIGEgbWV0ZXJpbmcKK3cvPHdici8+Zmxhc2ggc2VxdWVuY2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RJTExfQ0FQVFVSRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyByZXF1ZXN0IGlzIGZvciBhIHN0aWxsIGNhcHR1cmUtdHlwZQordXNlIGNhc2UuPHdici8+PC9wPgorPHA+SWYgdGhlIGZsYXNoIHVuaXQgaXMgdW5kZXIgYXV0b21hdGljIGNvbnRyb2wsPHdici8+IGl0IG1heSBmaXJlIGFzIG5lZWRlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5WSURFT19SRUNPUkQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgcmVxdWVzdCBpcyBmb3IgYSB2aWRlbyByZWNvcmRpbmcKK3VzZSBjYXNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlZJREVPX1NOQVBTSE9UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIGEgdmlkZW8gc25hcHNob3QgKHN0aWxsCitpbWFnZSB3aGlsZSByZWNvcmRpbmcgdmlkZW8pIHVzZSBjYXNlLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIHNob3VsZCB0YWtlIHRoZSBoaWdoZXN0LXF1YWxpdHkgaW1hZ2UKK3Bvc3NpYmxlIChnaXZlbiB0aGUgb3RoZXIgc2V0dGluZ3MpIHdpdGhvdXQgZGlzcnVwdGluZyB0aGUKK2ZyYW1lIHJhdGUgb2YgdmlkZW8gcmVjb3JkaW5nLjx3YnIvPiAgPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+WkVST19TSFVUVEVSX0xBRzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyByZXF1ZXN0IGlzIGZvciBhIFpTTCB1c2VjYXNlOyB0aGUKK2FwcGxpY2F0aW9uIHdpbGwgc3RyZWFtIGZ1bGwtcmVzb2x1dGlvbiBpbWFnZXMgYW5kCityZXByb2Nlc3Mgb25lIG9yIHNldmVyYWwgbGF0ZXIgZm9yIGEgZmluYWwKK2NhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TUFOVUFMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIG1hbnVhbCBjYXB0dXJlIHVzZSBjYXNlIHdoZXJlCit0aGUgYXBwbGljYXRpb25zIHdhbnQgdG8gZGlyZWN0bHkgY29udHJvbCB0aGUgY2FwdHVyZSBwYXJhbWV0ZXJzLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gbWF5IHdpc2ggdG8gbWFudWFsbHkgY29udHJvbAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4sPHdici8+IGV0Yy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5JbmZvcm1hdGlvbiB0byB0aGUgY2FtZXJhIGRldmljZSAzQSAoYXV0by1leHBvc3VyZSw8d2JyLz4KK2F1dG8tZm9jdXMsPHdici8+IGF1dG8td2hpdGUgYmFsYW5jZSkgcm91dGluZXMgYWJvdXQgdGhlIHB1cnBvc2UKK29mIHRoaXMgY2FwdHVyZSw8d2JyLz4gdG8gaGVscCB0aGUgY2FtZXJhIGRldmljZSB0byBkZWNpZGUgb3B0aW1hbCAzQQorc3RyYXRlZ3kuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgKGV4Y2VwdCBmb3IgTUFOVUFMKSBpcyBvbmx5IGVmZmVjdGl2ZSBpZgorPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gIT0gT0ZGPC9jb2RlPiBhbmQgYW55IDNBIHJvdXRpbmUgaXMgYWN0aXZlLjx3YnIvPjwvcD4KKzxwPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgd2lsbCBiZSBzdXBwb3J0ZWQgaWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPgorY29udGFpbnMgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORy48d2JyLz4gTUFOVUFMIHdpbGwgYmUgc3VwcG9ydGVkIGlmCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zIE1BTlVBTF88d2JyLz5TRU5TT1IuPHdici8+IE90aGVyIGludGVudCB2YWx1ZXMgYXJlCithbHdheXMgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmVmZmVjdE1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmVmZmVjdDx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIGNvbG9yIGVmZmVjdCB3aWxsIGJlIGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TU9OTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAibW9ub2NvbG9yIiBlZmZlY3Qgd2hlcmUgdGhlIGltYWdlIGlzIG1hcHBlZCBpbnRvCithIHNpbmdsZSBjb2xvci48d2JyLz48L3A+Cis8cD5UaGlzIHdpbGwgdHlwaWNhbGx5IGJlIGdyYXlzY2FsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ORUdBVElWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAicGhvdG8tbmVnYXRpdmUiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UncyBjb2xvcnMKK2FyZSBpbnZlcnRlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TT0xBUklaRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAic29sYXJpc2F0aW9uIiBlZmZlY3QgKFNhYmF0dGllciBlZmZlY3QpIHdoZXJlIHRoZQoraW1hZ2UgaXMgd2hvbGx5IG9yIHBhcnRpYWxseSByZXZlcnNlZCBpbgordG9uZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TRVBJQTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAic2VwaWEiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UgaXMgbWFwcGVkIGludG8gd2FybQorZ3JheSw8d2JyLz4gcmVkLDx3YnIvPiBhbmQgYnJvd24gdG9uZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UE9TVEVSSVpFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJwb3N0ZXJpemF0aW9uIiBlZmZlY3Qgd2hlcmUgdGhlIGltYWdlIHVzZXMKK2Rpc2NyZXRlIHJlZ2lvbnMgb2YgdG9uZSByYXRoZXIgdGhhbiBhIGNvbnRpbnVvdXMKK2dyYWRpZW50IG9mIHRvbmVzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPldISVRFQk9BUkQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkEgIndoaXRlYm9hcmQiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UgaXMgdHlwaWNhbGx5IGRpc3BsYXllZAorYXMgcmVnaW9ucyBvZiB3aGl0ZSw8d2JyLz4gd2l0aCBibGFjayBvciBncmV5IGRldGFpbHMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QkxBQ0tCT0FSRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAiYmxhY2tib2FyZCIgZWZmZWN0IHdoZXJlIHRoZSBpbWFnZSBpcyB0eXBpY2FsbHkgZGlzcGxheWVkCithcyByZWdpb25zIG9mIGJsYWNrLDx3YnIvPiB3aXRoIHdoaXRlIG9yIGdyZXkgZGV0YWlscy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BUVVBPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BbiAiYXF1YSIgZWZmZWN0IHdoZXJlIGEgYmx1ZSBodWUgaXMgYWRkZWQgdG8gdGhlIGltYWdlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgc3BlY2lhbCBjb2xvciBlZmZlY3QgdG8gYXBwbHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlRWZmZWN0cyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkVmZmVjdHM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gdGhpcyBtb2RlIGlzIHNldCw8d2JyLz4gYSBjb2xvciBlZmZlY3Qgd2lsbCBiZSBhcHBsaWVkCit0byBpbWFnZXMgcHJvZHVjZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+IFRoZSBpbnRlcnByZXRhdGlvbgorYW5kIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIGNvbG9yIGVmZmVjdHMgaXMgbGVmdCB0byB0aGUKK2ltcGxlbWVudG9yIG9mIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBhbmQgc2hvdWxkIG5vdCBiZQorZGVwZW5kZWQgb24gdG8gYmUgY29uc2lzdGVudCAob3IgcHJlc2VudCkgYWNyb3NzIGFsbAorZGV2aWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5GdWxsIGFwcGxpY2F0aW9uIGNvbnRyb2wgb2YgcGlwZWxpbmUuPHdici8+PC9wPgorPHA+QWxsIGNvbnRyb2wgYnkgdGhlIGRldmljZSdzIG1ldGVyaW5nIGFuZCBmb2N1c2luZyAoM0EpCityb3V0aW5lcyBpcyBkaXNhYmxlZCw8d2JyLz4gYW5kIG5vIG90aGVyIHNldHRpbmdzIGluCithbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBoYXZlIGFueSBlZmZlY3QsPHdici8+IGV4Y2VwdCB0aGF0Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50PC9hPiBtYXkgYmUgdXNlZCBieSB0aGUgY2FtZXJhCitkZXZpY2UgdG8gc2VsZWN0IHBvc3QtcHJvY2Vzc2luZyB2YWx1ZXMgZm9yIHByb2Nlc3NpbmcKK2Jsb2NrcyB0aGF0IGRvIG5vdCBhbGxvdyBmb3IgbWFudWFsIGNvbnRyb2wsPHdici8+IG9yIGFyZSBub3QKK2V4cG9zZWQgYnkgdGhlIGNhbWVyYSBBUEkuPHdici8+PC9wPgorPHA+SG93ZXZlciw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UncyAzQSByb3V0aW5lcyBtYXkgY29udGludWUgdG8KK2NvbGxlY3Qgc3RhdGlzdGljcyBhbmQgdXBkYXRlIHRoZWlyIGludGVybmFsIHN0YXRlIHNvIHRoYXQKK3doZW4gY29udHJvbCBpcyBzd2l0Y2hlZCB0byBBVVRPIG1vZGUsPHdici8+IGdvb2QgY29udHJvbCB2YWx1ZXMKK2NhbiBiZSBpbW1lZGlhdGVseSBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFVVE88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlVzZSBzZXR0aW5ncyBmb3IgZWFjaCBpbmRpdmlkdWFsIDNBIHJvdXRpbmUuPHdici8+PC9wPgorPHA+TWFudWFsIGNvbnRyb2wgb2YgY2FwdHVyZSBwYXJhbWV0ZXJzIGlzIGRpc2FibGVkLjx3YnIvPiBBbGwKK2NvbnRyb2xzIGluIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGJlc2lkZXMgc2NlbmVNb2RlIHRha2UKK2VmZmVjdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5VU0VfU0NFTkVfTU9ERTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIGEgc3BlY2lmaWMgc2NlbmUgbW9kZS48d2JyLz48L3A+Cis8cD5FbmFibGluZyB0aGlzIGRpc2FibGVzIGNvbnRyb2wuPHdici8+YWVNb2RlLDx3YnIvPiBjb250cm9sLjx3YnIvPmF3Yk1vZGUgYW5kCitjb250cm9sLjx3YnIvPmFmTW9kZSBjb250cm9sczsgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBpZ25vcmUKK3Rob3NlIHNldHRpbmdzIHdoaWxlIFVTRV88d2JyLz5TQ0VORV88d2JyLz5NT0RFIGlzIGFjdGl2ZSAoZXhjZXB0IGZvcgorRkFDRV88d2JyLz5QUklPUklUWSBzY2VuZSBtb2RlKS48d2JyLz4gT3RoZXIgY29udHJvbCBlbnRyaWVzIGFyZSBzdGlsbCBhY3RpdmUuPHdici8+CitUaGlzIHNldHRpbmcgY2FuIG9ubHkgYmUgdXNlZCBpZiBzY2VuZSBtb2RlIGlzIHN1cHBvcnRlZCAoaS48d2JyLz5lLjx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlU2NlbmVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlNjZW5lPHdici8+TW9kZXM8L2E+Citjb250YWluIHNvbWUgbW9kZXMgb3RoZXIgdGhhbiBESVNBQkxFRCkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGX0tFRVBfU1RBVEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlNhbWUgYXMgT0ZGIG1vZGUsPHdici8+IGV4Y2VwdCB0aGF0IHRoaXMgY2FwdHVyZSB3aWxsIG5vdCBiZQordXNlZCBieSBjYW1lcmEgZGV2aWNlIGJhY2tncm91bmQgYXV0by1leHBvc3VyZSw8d2JyLz4gYXV0by13aGl0ZSBiYWxhbmNlIGFuZAorYXV0by1mb2N1cyBhbGdvcml0aG1zICgzQSkgdG8gdXBkYXRlIHRoZWlyIHN0YXRpc3RpY3MuPHdici8+PC9wPgorPHA+U3BlY2lmaWNhbGx5LDx3YnIvPiB0aGUgM0Egcm91dGluZXMgYXJlIGxvY2tlZCB0byB0aGUgbGFzdAordmFsdWVzIHNldCBmcm9tIGEgcmVxdWVzdCB3aXRoIEFVVE8sPHdici8+IE9GRiw8d2JyLz4gb3IKK1VTRV88d2JyLz5TQ0VORV88d2JyLz5NT0RFLDx3YnIvPiBhbmQgYW55IHN0YXRpc3RpY3Mgb3Igc3RhdGUgdXBkYXRlcworY29sbGVjdGVkIGZyb20gbWFudWFsIGNhcHR1cmVzIHdpdGggT0ZGXzx3YnIvPktFRVBfPHdici8+U1RBVEUgd2lsbCBiZQorZGlzY2FyZGVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk92ZXJhbGwgbW9kZSBvZiAzQSAoYXV0by1leHBvc3VyZSw8d2JyLz4gYXV0by13aGl0ZS1iYWxhbmNlLDx3YnIvPiBhdXRvLWZvY3VzKSBjb250cm9sCityb3V0aW5lcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgdG9wLWxldmVsIDNBIGNvbnRyb2wgc3dpdGNoLjx3YnIvPiBXaGVuIHNldCB0byBPRkYsPHdici8+IGFsbCAzQSBjb250cm9sCitieSB0aGUgY2FtZXJhIGRldmljZSBpcyBkaXNhYmxlZC48d2JyLz4gVGhlIGFwcGxpY2F0aW9uIG11c3Qgc2V0IHRoZSBmaWVsZHMgZm9yCitjYXB0dXJlIHBhcmFtZXRlcnMgaXRzZWxmLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIEFVVE8sPHdici8+IHRoZSBpbmRpdmlkdWFsIGFsZ29yaXRobSBjb250cm9scyBpbgorYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiogYXJlIGluIGVmZmVjdCw8d2JyLz4gc3VjaCBhcyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4uPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREUsPHdici8+IHRoZSBpbmRpdmlkdWFsIGNvbnRyb2xzIGluCithbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBhcmUgbW9zdGx5IGRpc2FibGVkLDx3YnIvPiBhbmQgdGhlIGNhbWVyYSBkZXZpY2UgaW1wbGVtZW50cworb25lIG9mIHRoZSBzY2VuZSBtb2RlIHNldHRpbmdzIChzdWNoIGFzIEFDVElPTiw8d2JyLz4gU1VOU0VULDx3YnIvPiBvciBQQVJUWSkKK2FzIGl0IHdpc2hlcy48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2Ugc2NlbmUgbW9kZSAzQSBzZXR0aW5ncyBhcmUgcHJvdmlkZWQgYnkKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FwdHVyZVJlc3VsdC5odG1sIj5jYXB0dXJlIHJlc3VsdHM8L2E+Ljx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIE9GRl88d2JyLz5LRUVQXzx3YnIvPlNUQVRFLDx3YnIvPiBpdCBpcyBzaW1pbGFyIHRvIE9GRiBtb2RlLDx3YnIvPiB0aGUgb25seSBkaWZmZXJlbmNlCitpcyB0aGF0IHRoaXMgZnJhbWUgd2lsbCBub3QgYmUgdXNlZCBieSBjYW1lcmEgZGV2aWNlIGJhY2tncm91bmQgM0Egc3RhdGlzdGljcwordXBkYXRlLDx3YnIvPiBhcyBpZiB0aGlzIGZyYW1lIGlzIG5ldmVyIGNhcHR1cmVkLjx3YnIvPiBUaGlzIG1vZGUgY2FuIGJlIHVzZWQgaW4gdGhlIHNjZW5hcmlvCit3aGVyZSB0aGUgYXBwbGljYXRpb24gZG9lc24ndCB3YW50IGEgM0EgbWFudWFsIGNvbnRyb2wgY2FwdHVyZSB0byBhZmZlY3QKK3RoZSBzdWJzZXF1ZW50IGF1dG8gM0EgY2FwdHVyZSByZXN1bHRzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RElTQUJMRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkluZGljYXRlcyB0aGF0IG5vIHNjZW5lIG1vZGVzIGFyZSBzZXQgZm9yIGEgZ2l2ZW4gY2FwdHVyZSByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBQ0VfUFJJT1JJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPklmIGZhY2UgZGV0ZWN0aW9uIHN1cHBvcnQgZXhpc3RzLDx3YnIvPiB1c2UgZmFjZQorZGV0ZWN0aW9uIGRhdGEgZm9yIGF1dG8tZm9jdXMsPHdici8+IGF1dG8td2hpdGUgYmFsYW5jZSw8d2JyLz4gYW5kCithdXRvLWV4cG9zdXJlIHJvdXRpbmVzLjx3YnIvPjwvcD4KKzxwPklmIGZhY2UgZGV0ZWN0aW9uIHN0YXRpc3RpY3MgYXJlIGRpc2FibGVkCisoaS48d2JyLz5lLjx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+IGlzIHNldCB0byBPRkYpLDx3YnIvPgordGhpcyBzaG91bGQgc3RpbGwgb3BlcmF0ZSBjb3JyZWN0bHkgKGJ1dCB3aWxsIG5vdCByZXR1cm4KK2ZhY2UgZGV0ZWN0aW9uIHN0YXRpc3RpY3MgdG8gdGhlIGZyYW1ld29yaykuPHdici8+PC9wPgorPHA+VW5saWtlIHRoZSBvdGhlciBzY2VuZSBtb2Rlcyw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4KK3JlbWFpbiBhY3RpdmUgd2hlbiBGQUNFXzx3YnIvPlBSSU9SSVRZIGlzIHNldC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BQ1RJT048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgcGhvdG9zIG9mIHF1aWNrbHkgbW92aW5nIG9iamVjdHMuPHdici8+PC9wPgorPHA+U2ltaWxhciB0byBTUE9SVFMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UE9SVFJBSVQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3Igc3RpbGwgcGhvdG9zIG9mIHBlb3BsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5MQU5EU0NBUEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgcGhvdG9zIG9mIGRpc3RhbnQgbWFjcm9zY29waWMgb2JqZWN0cy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5OSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBsb3ctbGlnaHQgc2V0dGluZ3MuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TklHSFRfUE9SVFJBSVQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3Igc3RpbGwgcGhvdG9zIG9mIHBlb3BsZSBpbiBsb3ctbGlnaHQKK3NldHRpbmdzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRIRUFUUkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgZGltLDx3YnIvPiBpbmRvb3Igc2V0dGluZ3Mgd2hlcmUgZmxhc2ggbXVzdAorcmVtYWluIG9mZi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5CRUFDSDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBicmlnaHQsPHdici8+IG91dGRvb3IgYmVhY2ggc2V0dGluZ3MuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U05PVzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBicmlnaHQsPHdici8+IG91dGRvb3Igc2V0dGluZ3MgY29udGFpbmluZyBzbm93Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNVTlNFVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBzY2VuZXMgb2YgdGhlIHNldHRpbmcgc3VuLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNURUFEWVBIT1RPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgdG8gYXZvaWQgYmx1cnJ5IHBob3RvcyBkdWUgdG8gc21hbGwgYW1vdW50cyBvZgorZGV2aWNlIG1vdGlvbiAoZm9yIGV4YW1wbGU6IGR1ZSB0byBoYW5kIHNoYWtlKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GSVJFV09SS1M8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgbmlnaHR0aW1lIHBob3RvcyBvZiBmaXJld29ya3MuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1BPUlRTPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIHBob3RvcyBvZiBxdWlja2x5IG1vdmluZyBwZW9wbGUuPHdici8+PC9wPgorPHA+U2ltaWxhciB0byBBQ1RJT04uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UEFSVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgZGltLDx3YnIvPiBpbmRvb3Igc2V0dGluZ3Mgd2l0aCBtdWx0aXBsZSBtb3ZpbmcKK3Blb3BsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DQU5ETEVMSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBkaW0gc2V0dGluZ3Mgd2hlcmUgdGhlIG1haW4gbGlnaHQgc291cmNlCitpcyBhIGZsYW1lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkJBUkNPREU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgYWNjdXJhdGVseSBjYXB0dXJpbmcgYSBwaG90byBvZiBiYXJjb2RlCitmb3IgdXNlIGJ5IGNhbWVyYSBhcHBsaWNhdGlvbnMgdGhhdCB3aXNoIHRvIHJlYWQgdGhlCitiYXJjb2RlIHZhbHVlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfU1BFRURfVklERU88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIGlzIGRlcHJlY2F0ZWQsPHdici8+IHBsZWFzZSB1c2UgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uIj5DYW1lcmFEZXZpY2UjY3JlYXRlQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbjwvYT4KK2FuZCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24uaHRtbCNjcmVhdGVIaWdoU3BlZWRSZXF1ZXN0TGlzdCI+Q2FtZXJhQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiNjcmVhdGVIaWdoU3BlZWRSZXF1ZXN0TGlzdDwvYT4KK2ZvciBoaWdoIHNwZWVkIHZpZGVvIHJlY29yZGluZy48d2JyLz48L3A+Cis8cD5PcHRpbWl6ZWQgZm9yIGhpZ2ggc3BlZWQgdmlkZW8gcmVjb3JkaW5nIChmcmFtZSByYXRlICZndDs9NjBmcHMpIHVzZSBjYXNlLjx3YnIvPjwvcD4KKzxwPlRoZSBzdXBwb3J0ZWQgaGlnaCBzcGVlZCB2aWRlbyBzaXplcyBhbmQgZnBzIHJhbmdlcyBhcmUgc3BlY2lmaWVkIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+SGlnaDx3YnIvPlNwZWVkPHdici8+VmlkZW88d2JyLz5Db25maWd1cmF0aW9uczwvYT4uPHdici8+IFRvIGdldCBkZXNpcmVkCitvdXRwdXQgZnJhbWUgcmF0ZXMsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBpcyBvbmx5IGFsbG93ZWQgdG8gc2VsZWN0IHZpZGVvIHNpemUKK2FuZCBmcHMgcmFuZ2UgY29tYmluYXRpb25zIGxpc3RlZCBpbiB0aGlzIHN0YXRpYyBtZXRhZGF0YS48d2JyLz4gVGhlIGZwcyByYW5nZQorY2FuIGJlIGNvbnRyb2wgdmlhIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+Ljx3YnIvPjwvcD4KKzxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBvdmVycmlkZSBhZU1vZGUsPHdici8+IGF3Yk1vZGUsPHdici8+IGFuZCBhZk1vZGUgdG8KK09OLDx3YnIvPiBPTiw8d2JyLz4gYW5kIENPTlRJTlVPVVNfPHdici8+VklERU8sPHdici8+IHJlc3BlY3RpdmVseS48d2JyLz4gQWxsIHBvc3QtcHJvY2Vzc2luZyBibG9jayBtb2RlCitjb250cm9scyB3aWxsIGJlIG92ZXJyaWRkZW4gdG8gYmUgRkFTVC48d2JyLz4gVGhlcmVmb3JlLDx3YnIvPiBubyBtYW51YWwgY29udHJvbCBvZiBjYXB0dXJlCithbmQgcG9zdC1wcm9jZXNzaW5nIHBhcmFtZXRlcnMgaXMgcG9zc2libGUuPHdici8+IEFsbCBvdGhlciBjb250cm9scyBvcGVyYXRlIHRoZQorc2FtZSBhcyB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+ID09IEFVVE8uPHdici8+IFRoaXMgbWVhbnMgdGhhdCBhbGwgb3RoZXIKK2FuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGZpZWxkcyBjb250aW51ZSB0byB3b3JrLDx3YnIvPiBzdWNoIGFzPC9wPgorPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkV4cG9zdXJlPHdici8+Q29tcGVuc2F0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+ZWZmZWN0PHdici8+TW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5SZWdpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlJlZ2lvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5SZWdpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPjwvbGk+Cis8L3VsPgorPHA+T3V0c2lkZSBvZiBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Kiw8d2JyLz4gdGhlIGZvbGxvd2luZyBjb250cm9scyB3aWxsIHdvcms6PC9wPgorPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLm1vZGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+bW9kZTwvYT4gKGF1dG9tYXRpYyBmbGFzaCBmb3Igc3RpbGwgY2FwdHVyZSB3aWxsIG5vdCB3b3JrIHNpbmNlIGFlTW9kZSBpcyBPTik8L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+b3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiAoaWYgaXQgaXMgc3VwcG9ydGVkKTwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+PC9saT4KKzwvdWw+Cis8cD5Gb3IgaGlnaCBzcGVlZCByZWNvcmRpbmcgdXNlIGNhc2UsPHdici8+IHRoZSBhY3R1YWwgbWF4aW11bSBzdXBwb3J0ZWQgZnJhbWUgcmF0ZSBtYXkKK2JlIGxvd2VyIHRoYW4gd2hhdCBjYW1lcmEgY2FuIG91dHB1dCw8d2JyLz4gZGVwZW5kaW5nIG9uIHRoZSBkZXN0aW5hdGlvbiBTdXJmYWNlcyBmb3IKK3RoZSBpbWFnZSBkYXRhLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gaWYgdGhlIGRlc3RpbmF0aW9uIHN1cmZhY2UgaXMgZnJvbSB2aWRlbyBlbmNvZGVyLDx3YnIvPgordGhlIGFwcGxpY2F0aW9uIG5lZWQgY2hlY2sgaWYgdGhlIHZpZGVvIGVuY29kZXIgaXMgY2FwYWJsZSBvZiBzdXBwb3J0aW5nIHRoZQoraGlnaCBmcmFtZSByYXRlIGZvciBhIGdpdmVuIHZpZGVvIHNpemUsPHdici8+IG9yIGl0IHdpbGwgZW5kIHVwIHdpdGggbG93ZXIgcmVjb3JkaW5nCitmcmFtZSByYXRlLjx3YnIvPiBJZiB0aGUgZGVzdGluYXRpb24gc3VyZmFjZSBpcyBmcm9tIHByZXZpZXcgd2luZG93LDx3YnIvPiB0aGUgcHJldmlldyBmcmFtZQorcmF0ZSB3aWxsIGJlIGJvdW5kZWQgYnkgdGhlIHNjcmVlbiByZWZyZXNoIHJhdGUuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBvbmx5IHN1cHBvcnQgdXAgdG8gMiBvdXRwdXQgaGlnaCBzcGVlZCBzdHJlYW1zCisocHJvY2Vzc2VkIG5vbi1zdGFsbGluZyBmb3JtYXQgZGVmaW5lZCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRTdHJlYW1zIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+U3RyZWFtczwvYT4pCitpbiB0aGlzIG1vZGUuPHdici8+IFRoaXMgY29udHJvbCB3aWxsIGJlIGVmZmVjdGl2ZSBvbmx5IGlmIGFsbCBvZiBiZWxvdyBjb25kaXRpb25zIGFyZSB0cnVlOjwvcD4KKzx1bD4KKzxsaT5UaGUgYXBwbGljYXRpb24gY3JlYXRlZCBubyBtb3JlIHRoYW4gbWF4TnVtSGlnaFNwZWVkU3RyZWFtcyBwcm9jZXNzZWQgbm9uLXN0YWxsaW5nCitmb3JtYXQgb3V0cHV0IHN0cmVhbXMsPHdici8+IHdoZXJlIG1heE51bUhpZ2hTcGVlZFN0cmVhbXMgaXMgY2FsY3VsYXRlZCBhcworbWluKDIsPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFN0cmVhbXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5PdXRwdXQ8d2JyLz5TdHJlYW1zPC9hPltQcm9jZXNzZWQgKGJ1dCBub3Qtc3RhbGxpbmcpXSkuPHdici8+PC9saT4KKzxsaT5UaGUgc3RyZWFtIHNpemVzIGFyZSBzZWxlY3RlZCBmcm9tIHRoZSBzaXplcyByZXBvcnRlZCBieQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhpZ2g8d2JyLz5TcGVlZDx3YnIvPlZpZGVvPHdici8+Q29uZmlndXJhdGlvbnM8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+Tm8gcHJvY2Vzc2VkIG5vbi1zdGFsbGluZyBvciByYXcgc3RyZWFtcyBhcmUgY29uZmlndXJlZC48d2JyLz48L2xpPgorPC91bD4KKzxwPldoZW4gYWJvdmUgY29uZGl0aW9ucyBhcmUgTk9UIHNhdGlzdGllZCw8d2JyLz4gdGhlIGNvbnRyb2xzIG9mIHRoaXMgbW9kZSBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+IHdpbGwgYmUgaWdub3JlZCBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4KK3RoZSBjYW1lcmEgZGV2aWNlIHdpbGwgZmFsbCBiYWNrIHRvIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IDxjb2RlPj09PC9jb2RlPiBBVVRPLDx3YnIvPgorYW5kIHRoZSByZXR1cm5lZCBjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YSB3aWxsIGdpdmUgdGhlIGZwcyByYW5nZSBjaG9vc2VuCitieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5Td2l0Y2hpbmcgaW50byBvciBvdXQgb2YgdGhpcyBtb2RlIG1heSB0cmlnZ2VyIHNvbWUgY2FtZXJhIElTUC88d2JyLz5zZW5zb3IKK3JlY29uZmlndXJhdGlvbnMsPHdici8+IHdoaWNoIG1heSBpbnRyb2R1Y2UgZXh0cmEgbGF0ZW5jeS48d2JyLz4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdAordGhlIGFwcGxpY2F0aW9uIGF2b2lkcyB1bm5lY2Vzc2FyeSBzY2VuZSBtb2RlIHN3aXRjaCBhcyBtdWNoIGFzIHBvc3NpYmxlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhEUjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VHVybiBvbiBhIGRldmljZS1zcGVjaWZpYyBoaWdoIGR5bmFtaWMgcmFuZ2UgKEhEUikgbW9kZS48d2JyLz48L3A+Cis8cD5JbiB0aGlzIHNjZW5lIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIGNhcHR1cmVzIGltYWdlcwordGhhdCBrZWVwIGEgbGFyZ2VyIHJhbmdlIG9mIHNjZW5lIGlsbHVtaW5hdGlvbiBsZXZlbHMKK3Zpc2libGUgaW4gdGhlIGZpbmFsIGltYWdlLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gd2hlbiB0YWtpbmcgYQorcGljdHVyZSBvZiBhIG9iamVjdCBpbiBmcm9udCBvZiBhIGJyaWdodCB3aW5kb3csPHdici8+IGJvdGgKK3RoZSBvYmplY3QgYW5kIHRoZSBzY2VuZSB0aHJvdWdoIHRoZSB3aW5kb3cgbWF5IGJlCit2aXNpYmxlIHdoZW4gdXNpbmcgSERSIG1vZGUsPHdici8+IHdoaWxlIGluIG5vcm1hbCBBVVRPIG1vZGUsPHdici8+CitvbmUgb3IgdGhlIG90aGVyIG1heSBiZSBwb29ybHkgZXhwb3NlZC48d2JyLz4gQXMgYSB0cmFkZW9mZiw8d2JyLz4KK0hEUiBtb2RlIGdlbmVyYWxseSB0YWtlcyBtdWNoIGxvbmdlciB0byBjYXB0dXJlIGEgc2luZ2xlCitpbWFnZSw8d2JyLz4gaGFzIG5vIHVzZXIgY29udHJvbCw8d2JyLz4gYW5kIG1heSBoYXZlIG90aGVyIGFydGlmYWN0cworZGVwZW5kaW5nIG9uIHRoZSBIRFIgbWV0aG9kIHVzZWQuPHdici8+PC9wPgorPHA+VGhlcmVmb3JlLDx3YnIvPiBIRFIgY2FwdHVyZXMgb3BlcmF0ZSBhdCBhIG11Y2ggc2xvd2VyIHJhdGUKK3RoYW4gcmVndWxhciBjYXB0dXJlcy48d2JyLz48L3A+Cis8cD5JbiB0aGlzIG1vZGUsPHdici8+IG9uIExJTUlURUQgb3IgRlVMTCBkZXZpY2VzLDx3YnIvPiB3aGVuIGEgcmVxdWVzdAoraXMgbWFkZSB3aXRoIGEgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Y2FwdHVyZTx3YnIvPkludGVudDwvYT4gb2YKK1NUSUxMXzx3YnIvPkNBUFRVUkUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgY2FwdHVyZSBhbiBpbWFnZQordXNpbmcgYSBoaWdoIGR5bmFtaWMgcmFuZ2UgY2FwdHVyZSB0ZWNobmlxdWUuPHdici8+ICBPbiBMRUdBQ1kKK2RldmljZXMsPHdici8+IGNhcHR1cmVzIHRoYXQgdGFyZ2V0IGEgSlBFRy1mb3JtYXQgb3V0cHV0IHdpbGwKK2JlIGNhcHR1cmVkIHdpdGggSERSLDx3YnIvPiBhbmQgdGhlIGNhcHR1cmUgaW50ZW50IGlzIG5vdAorcmVsZXZhbnQuPHdici8+PC9wPgorPHA+VGhlIEhEUiBjYXB0dXJlIG1heSBpbnZvbHZlIHRoZSBkZXZpY2UgY2FwdHVyaW5nIGEgYnVyc3QKK29mIGltYWdlcyBpbnRlcm5hbGx5IGFuZCBjb21iaW5pbmcgdGhlbSBpbnRvIG9uZSw8d2JyLz4gb3IgaXQKK21heSBpbnZvbHZlIHRoZSBkZXZpY2UgdXNpbmcgc3BlY2lhbGl6ZWQgaGlnaCBkeW5hbWljCityYW5nZSBjYXB0dXJlIGhhcmR3YXJlLjx3YnIvPiBJbiBhbGwgY2FzZXMsPHdici8+IGEgc2luZ2xlIGltYWdlIGlzCitwcm9kdWNlZCBpbiByZXNwb25zZSB0byBhIGNhcHR1cmUgcmVxdWVzdCBzdWJtaXR0ZWQKK3doaWxlIGluIEhEUiBtb2RlLjx3YnIvPjwvcD4KKzxwPlNpbmNlIHN1YnN0YW50aWFsIHBvc3QtcHJvY2Vzc2luZyBpcyBnZW5lcmFsbHkgbmVlZGVkIHRvCitwcm9kdWNlIGFuIEhEUiBpbWFnZSw8d2JyLz4gb25seSBZVVYsPHdici8+IFBSSVZBVEUsPHdici8+IGFuZCBKUEVHCitvdXRwdXRzIGFyZSBzdXBwb3J0ZWQgZm9yIExJTUlURUQvPHdici8+RlVMTCBkZXZpY2UgSERSCitjYXB0dXJlcyw8d2JyLz4gYW5kIG9ubHkgSlBFRyBvdXRwdXRzIGFyZSBzdXBwb3J0ZWQgZm9yIExFR0FDWQorSERSIGNhcHR1cmVzLjx3YnIvPiBVc2luZyBhIFJBVyBvdXRwdXQgZm9yIEhEUiBjYXB0dXJlIGlzIG5vdAorc3VwcG9ydGVkLjx3YnIvPjwvcD4KKzxwPlNvbWUgZGV2aWNlcyBtYXkgYWxzbyBzdXBwb3J0IGFsd2F5cy1vbiBIRFIsPHdici8+IHdoaWNoCithcHBsaWVzIEhEUiBwcm9jZXNzaW5nIGF0IGZ1bGwgZnJhbWUgcmF0ZS48d2JyLz4gIEZvciB0aGVzZQorZGV2aWNlcyw8d2JyLz4gaW50ZW50cyBvdGhlciB0aGFuIFNUSUxMXzx3YnIvPkNBUFRVUkUgd2lsbCBhbHNvCitwcm9kdWNlIGFuIEhEUiBvdXRwdXQgd2l0aCBubyBmcmFtZSByYXRlIGltcGFjdCBjb21wYXJlZAordG8gbm9ybWFsIG9wZXJhdGlvbiw8d2JyLz4gdGhvdWdoIHRoZSBxdWFsaXR5IG1heSBiZSBsb3dlcgordGhhbiBmb3IgU1RJTExfPHdici8+Q0FQVFVSRSBpbnRlbnRzLjx3YnIvPjwvcD4KKzxwPklmIFNDRU5FXzx3YnIvPk1PREVfPHdici8+SERSIGlzIHVzZWQgd2l0aCB1bnN1cHBvcnRlZCBvdXRwdXQgdHlwZXMKK29yIGNhcHR1cmUgaW50ZW50cyw8d2JyLz4gdGhlIGltYWdlcyBjYXB0dXJlZCB3aWxsIGJlIGFzIGlmCit0aGUgU0NFTkVfPHdici8+TU9ERSB3YXMgbm90IGVuYWJsZWQgYXQgYWxsLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBQ0VfUFJJT1JJVFlfTE9XX0xJR0hUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX2hpZGRlbiI+W2hpZGRlbl08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlNhbWUgYXMgRkFDRV88d2JyLz5QUklPUklUWSBzY2VuZSBtb2RlLDx3YnIvPiBleGNlcHQgdGhhdCB0aGUgY2FtZXJhCitkZXZpY2Ugd2lsbCBjaG9vc2UgaGlnaGVyIHNlbnNpdGl2aXR5IHZhbHVlcyAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4pCit1bmRlciBsb3cgbGlnaHQgY29uZGl0aW9ucy48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSBtYXkgYmUgdHVuZWQgdG8gZXhwb3NlIHRoZSBpbWFnZXMgaW4gYSByZWR1Y2VkCitzZW5zaXRpdml0eSByYW5nZSB0byBwcm9kdWNlIHRoZSBiZXN0IHF1YWxpdHkgaW1hZ2VzLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4KK2lmIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlPC9hPiBnaXZlcyByYW5nZSBvZiBbMTAwLDx3YnIvPiAxNjAwXSw8d2JyLz4KK3RoZSBjYW1lcmEgZGV2aWNlIGF1dG8tZXhwb3N1cmUgcm91dGluZSB0dW5pbmcgcHJvY2VzcyBtYXkgbGltaXQgdGhlIGFjdHVhbAorZXhwb3N1cmUgc2Vuc2l0aXZpdHkgcmFuZ2UgdG8gWzEwMCw8d2JyLz4gMTIwMF0gdG8gZW5zdXJlIHRoYXQgdGhlIG5vaXNlIGxldmVsIGlzbid0CitleGVzc2l2ZSBpbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgaW1hZ2UgcXVhbGl0eS48d2JyLz4gVW5kZXIgdGhpcyBzaXR1YXRpb24sPHdici8+IHRoZSBpbWFnZSB1bmRlcgorbG93IGxpZ2h0IG1heSBiZSB1bmRlci1leHBvc2VkIHdoZW4gdGhlIHNlbnNvciBtYXggZXhwb3N1cmUgdGltZSAoYm91bmRlZCBieSB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+IHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IGlzIG9uZSBvZiB0aGUKK09OXzx3YnIvPiogbW9kZXMpIGFuZCBlZmZlY3RpdmUgbWF4IHNlbnNpdGl2aXR5IGFyZSByZWFjaGVkLjx3YnIvPiBUaGlzIHNjZW5lIG1vZGUgYWxsb3dzIHRoZQorY2FtZXJhIGRldmljZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgdG8gaW5jcmVhc2UgdGhlIHNlbnNpdGl2aXR5IHVwIHRvIHRoZSBtYXgKK3NlbnNpdGl2aXR5IHNwZWNpZmllZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlPC9hPiB3aGVuIHRoZSBzY2VuZSBpcyB0b28KK2RhcmsgYW5kIHRoZSBtYXggZXhwb3N1cmUgdGltZSBpcyByZWFjaGVkLjx3YnIvPiBUaGUgY2FwdHVyZWQgaW1hZ2VzIG1heSBiZSBub2lzaWVyCitjb21wYXJlZCB3aXRoIHRoZSBpbWFnZXMgY2FwdHVyZWQgaW4gbm9ybWFsIEZBQ0VfPHdici8+UFJJT1JJVFkgbW9kZTsgdGhlcmVmb3JlLDx3YnIvPiBpdCBpcworcmVjb21tZW5kZWQgdGhhdCB0aGUgYXBwbGljYXRpb24gb25seSB1c2UgdGhpcyBzY2VuZSBtb2RlIHdoZW4gaXQgaXMgY2FwYWJsZSBvZgorcmVkdWNpbmcgdGhlIG5vaXNlIGxldmVsIG9mIHRoZSBjYXB0dXJlZCBpbWFnZXMuPHdici8+PC9wPgorPHA+VW5saWtlIHRoZSBvdGhlciBzY2VuZSBtb2Rlcyw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4KK3JlbWFpbiBhY3RpdmUgd2hlbiBGQUNFXzx3YnIvPlBSSU9SSVRZXzx3YnIvPkxPV188d2JyLz5MSUdIVCBpcyBzZXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+REVWSUNFX0NVU1RPTV9TVEFSVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9oaWRkZW4iPltoaWRkZW5dPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xMDA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlNjZW5lIG1vZGUgdmFsdWVzIHdpdGhpbiB0aGUgcmFuZ2Ugb2YKKzxjb2RlPltERVZJQ0VfPHdici8+Q1VTVE9NXzx3YnIvPlNUQVJULDx3YnIvPiBERVZJQ0VfPHdici8+Q1VTVE9NXzx3YnIvPkVORF08L2NvZGU+IGFyZSByZXNlcnZlZCBmb3IgZGV2aWNlIHNwZWNpZmljCitjdXN0b21pemVkIHNjZW5lIG1vZGVzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRFVklDRV9DVVNUT01fRU5EPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX2hpZGRlbiI+W2hpZGRlbl08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjEyNzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+U2NlbmUgbW9kZSB2YWx1ZXMgd2l0aGluIHRoZSByYW5nZSBvZgorPGNvZGU+W0RFVklDRV88d2JyLz5DVVNUT01fPHdici8+U1RBUlQsPHdici8+IERFVklDRV88d2JyLz5DVVNUT01fPHdici8+RU5EXTwvY29kZT4gYXJlIHJlc2VydmVkIGZvciBkZXZpY2Ugc3BlY2lmaWMKK2N1c3RvbWl6ZWQgc2NlbmUgbW9kZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29udHJvbCBmb3Igd2hpY2ggc2NlbmUgbW9kZSBpcyBjdXJyZW50bHkgYWN0aXZlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVNjZW5lTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5TY2VuZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TY2VuZSBtb2RlcyBhcmUgY3VzdG9tIGNhbWVyYSBtb2RlcyBvcHRpbWl6ZWQgZm9yIGEgY2VydGFpbiBzZXQgb2YgY29uZGl0aW9ucyBhbmQKK2NhcHR1cmUgc2V0dGluZ3MuPHdici8+PC9wPgorPHA+VGhpcyBpcyB0aGUgbW9kZSB0aGF0IHRoYXQgaXMgYWN0aXZlIHdoZW4KKzxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+ID09IFVTRV88d2JyLz5TQ0VORV88d2JyLz5NT0RFPC9jb2RlPi48d2JyLz4gQXNpZGUgZnJvbSBGQUNFXzx3YnIvPlBSSU9SSVRZLDx3YnIvPiB0aGVzZSBtb2RlcyB3aWxsCitkaXNhYmxlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4KK3doaWxlIGluIHVzZS48d2JyLz48L3A+Cis8cD5UaGUgaW50ZXJwcmV0YXRpb24gYW5kIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIHNjZW5lIG1vZGVzIGlzIGxlZnQKK3RvIHRoZSBpbXBsZW1lbnRvciBvZiB0aGUgY2FtZXJhIGRldmljZS48d2JyLz4gVGhlaXIgYmVoYXZpb3Igd2lsbCBub3QgYmUKK2NvbnNpc3RlbnQgYWNyb3NzIGFsbCBkZXZpY2VzLDx3YnIvPiBhbmQgYW55IGdpdmVuIGRldmljZSBtYXkgb25seSBpbXBsZW1lbnQKK2Egc3Vic2V0IG9mIHRoZXNlIG1vZGVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SEFMIGltcGxlbWVudGF0aW9ucyB0aGF0IGluY2x1ZGUgc2NlbmUgbW9kZXMgYXJlIGV4cGVjdGVkIHRvIHByb3ZpZGUKK3RoZSBwZXItc2NlbmUgc2V0dGluZ3MgdG8gdXNlIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlT3ZlcnJpZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlPHdici8+T3ZlcnJpZGVzPC9hPi48d2JyLz48L3A+Cis8cD5Gb3IgSElHSF88d2JyLz5TUEVFRF88d2JyLz5WSURFTyBtb2RlLDx3YnIvPiBpZiBpdCBpcyBpbmNsdWRlZCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+U2NlbmU8d2JyLz5Nb2RlczwvYT4sPHdici8+Cit0aGUgSEFMIG11c3QgbGlzdCBzdXBwb3J0ZWQgdmlkZW8gc2l6ZSBhbmQgZnBzIHJhbmdlIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+SGlnaDx3YnIvPlNwZWVkPHdici8+VmlkZW88d2JyLz5Db25maWd1cmF0aW9uczwvYT4uPHdici8+IEZvciBhIGdpdmVuIHNpemUsPHdici8+IGUuPHdici8+Zy48d2JyLz4KKzEyODB4NzIwLDx3YnIvPiBpZiB0aGUgSEFMIGhhcyB0d28gZGlmZmVyZW50IHNlbnNvciBjb25maWd1cmF0aW9ucyBmb3Igbm9ybWFsIHN0cmVhbWluZworbW9kZSBhbmQgaGlnaCBzcGVlZCBzdHJlYW1pbmcsPHdici8+IHdoZW4gdGhpcyBzY2VuZSBtb2RlIGlzIHNldC88d2JyLz5yZXNldCBpbiBhIHNlcXVlbmNlIG9mIGNhcHR1cmUKK3JlcXVlc3RzLDx3YnIvPiB0aGUgSEFMIG1heSBoYXZlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpZmZlcmVudCBzZW5zb3IgbW9kZXMuPHdici8+CitUaGlzIG1vZGUgaXMgZGVwcmVjYXRlZCBpbiBIQUwzLjx3YnIvPjMsPHdici8+IHRvIHN1cHBvcnQgaGlnaCBzcGVlZCB2aWRlbyByZWNvcmRpbmcsPHdici8+IHBsZWFzZSBpbXBsZW1lbnQKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5IaWdoPHdici8+U3BlZWQ8d2JyLz5WaWRlbzx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPiBhbmQgQ09OU1RSQUlORURfPHdici8+SElHSF88d2JyLz5TUEVFRF88d2JyLz5WSURFTworY2FwYmlsaXR5IGRlZmluZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+dmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VmlkZW8gc3RhYmlsaXphdGlvbiBpcyBkaXNhYmxlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VmlkZW8gc3RhYmlsaXphdGlvbiBpcyBlbmFibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdmlkZW8gc3RhYmlsaXphdGlvbiBpcworYWN0aXZlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VmlkZW8gc3RhYmlsaXphdGlvbiBhdXRvbWF0aWNhbGx5IHdhcnBzIGltYWdlcyBmcm9tCit0aGUgY2FtZXJhIGluIG9yZGVyIHRvIHN0YWJpbGl6ZSBtb3Rpb24gYmV0d2VlbiBjb25zZWN1dGl2ZSBmcmFtZXMuPHdici8+PC9wPgorPHA+SWYgZW5hYmxlZCw8d2JyLz4gdmlkZW8gc3RhYmlsaXphdGlvbiBjYW4gbW9kaWZ5IHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+IHRvIGtlZXAgdGhlIHZpZGVvIHN0cmVhbSBzdGFiaWxpemVkLjx3YnIvPjwvcD4KKzxwPlN3aXRjaGluZyBiZXR3ZWVuIGRpZmZlcmVudCB2aWRlbyBzdGFiaWxpemF0aW9uIG1vZGVzIG1heSB0YWtlIHNldmVyYWwKK2ZyYW1lcyB0byBpbml0aWFsaXplLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHJlcG9ydCB0aGUgY3VycmVudCBtb2RlCitpbiBjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IFdoZW4gIk9OIiBtb2RlIGlzIHJlcXVlc3RlZCw8d2JyLz4KK3RoZSB2aWRlbyBzdGFiaWxpemF0aW9uIG1vZGVzIGluIHRoZSBmaXJzdCBzZXZlcmFsIGNhcHR1cmUgcmVzdWx0cyBtYXkKK3N0aWxsIGJlICJPRkYiLDx3YnIvPiBhbmQgaXQgd2lsbCBiZWNvbWUgIk9OIiB3aGVuIHRoZSBpbml0aWFsaXphdGlvbiBpcworZG9uZS48d2JyLz48L3A+Cis8cD5JbiBhZGRpdGlvbiw8d2JyLz4gbm90IGFsbCByZWNvcmRpbmcgc2l6ZXMgb3IgZnJhbWUgcmF0ZXMgbWF5IGJlIHN1cHBvcnRlZCBmb3IKK3N0YWJpbGl6YXRpb24gYnkgYSBkZXZpY2UgdGhhdCByZXBvcnRzIHN0YWJpbGl6YXRpb24gc3VwcG9ydC48d2JyLz4gSXQgaXMgZ3VhcmFudGVlZAordGhhdCBhbiBvdXRwdXQgdGFyZ2V0aW5nIGEgTWVkaWFSZWNvcmRlciBvciBNZWRpYUNvZGVjIHdpbGwgYmUgc3RhYmlsaXplZCBpZgordGhlIHJlY29yZGluZyByZXNvbHV0aW9uIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxOTIwIHggMTA4MCAod2lkdGggbGVzcyB0aGFuCitvciBlcXVhbCB0byAxOTIwLDx3YnIvPiBoZWlnaHQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEwODApLDx3YnIvPiBhbmQgdGhlIHJlY29yZGluZworZnJhbWUgcmF0ZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMzBmcHMuPHdici8+ICBBdCBvdGhlciBzaXplcyw8d2JyLz4gdGhlIENhcHR1cmVSZXN1bHQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnZpZGVvPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+IGZpZWxkIHdpbGwgcmV0dXJuCitPRkYgaWYgdGhlIHJlY29yZGluZyBvdXRwdXQgaXMgbm90IHN0YWJpbGl6ZWQsPHdici8+IG9yIGlmIHRoZXJlIGFyZSBubyBvdXRwdXQKK1N1cmZhY2UgdHlwZXMgdGhhdCBjYW4gYmUgc3RhYmlsaXplZC48d2JyLz48L3A+Cis8cD5JZiBhIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgYm90aCB0aGlzIG1vZGUgYW5kIE9JUworKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+b3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiksPHdici8+IHR1cm5pbmcgYm90aCBtb2RlcyBvbiBtYXkKK3Byb2R1Y2UgdW5kZXNpcmFibGUgaW50ZXJhY3Rpb24sPHdici8+IHNvIGl0IGlzIHJlY29tbWVuZGVkIG5vdCB0byBlbmFibGUKK2JvdGggYXQgdGhlIHNhbWUgdGltZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+cG9zdDx3YnIvPlJhdzx3YnIvPlNlbnNpdGl2aXR5PHdici8+Qm9vc3QKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBhbW91bnQgb2YgYWRkaXRpb25hbCBzZW5zaXRpdml0eSBib29zdCBhcHBsaWVkIHRvIG91dHB1dCBpbWFnZXMKK2FmdGVyIFJBVyBzZW5zb3IgZGF0YSBpcyBjYXB0dXJlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgSVNPIGFyaXRobWV0aWMgdW5pdHMsPHdici8+IHRoZSBzYW1lIGFzIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3RSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnBvc3Q8d2JyLz5SYXc8d2JyLz5TZW5zaXRpdml0eTx3YnIvPkJvb3N0PHdici8+UmFuZ2U8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Tb21lIGNhbWVyYSBkZXZpY2VzIHN1cHBvcnQgYWRkaXRpb25hbCBkaWdpdGFsIHNlbnNpdGl2aXR5IGJvb3N0aW5nIGluIHRoZQorY2FtZXJhIHByb2Nlc3NpbmcgcGlwZWxpbmUgYWZ0ZXIgc2Vuc29yIFJBVyBpbWFnZSBpcyBjYXB0dXJlZC48d2JyLz4KK1N1Y2ggYSBib29zdCB3aWxsIGJlIGFwcGxpZWQgdG8gWVVWLzx3YnIvPkpQRUcgZm9ybWF0IG91dHB1dCBpbWFnZXMgYnV0IHdpbGwgbm90CitoYXZlIGVmZmVjdCBvbiBSQVcgb3V0cHV0IGZvcm1hdHMgbGlrZSBSQVdfPHdici8+U0VOU09SLDx3YnIvPiBSQVcxMCw8d2JyLz4gUkFXMTIgb3IgUkFXXzx3YnIvPk9QQVFVRS48d2JyLz48L3A+Cis8cD5UaGlzIGtleSB3aWxsIGJlIDxjb2RlPm51bGw8L2NvZGU+IGZvciBkZXZpY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgYW55IFJBVyBmb3JtYXQKK291dHB1dHMuPHdici8+IEZvciBkZXZpY2VzIHRoYXQgZG8gc3VwcG9ydCBSQVcgZm9ybWF0IG91dHB1dHMsPHdici8+IHRoaXMga2V5IHdpbGwgYWx3YXlzCitwcmVzZW50LDx3YnIvPiBhbmQgaWYgYSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBwb3N0IFJBVyBzZW5zaXRpdml0eSBib29zdCw8d2JyLz4gaXQgd2lsbAorbGlzdCA8Y29kZT4xMDA8L2NvZGU+IGluIHRoaXMga2V5Ljx3YnIvPjwvcD4KKzxwPklmIHRoZSBjYW1lcmEgZGV2aWNlIGNhbm5vdCBhcHBseSB0aGUgZXhhY3QgYm9vc3QgcmVxdWVzdGVkLDx3YnIvPiBpdCB3aWxsIHJlZHVjZSB0aGUKK2Jvb3N0IHRvIHRoZSBuZWFyZXN0IHN1cHBvcnRlZCB2YWx1ZS48d2JyLz4KK1RoZSBmaW5hbCBib29zdCB2YWx1ZSB1c2VkIHdpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBvdXRwdXQgY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPgorPHA+Rm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHBvc3QgUkFXIHNlbnNpdGl2aXR5IGJvb3N0LDx3YnIvPiB0aGUgWVVWLzx3YnIvPkpQRUcgb3V0cHV0IGltYWdlcworb2Ygc3VjaCBkZXZpY2Ugd2lsbCBoYXZlIHRoZSB0b3RhbCBzZW5zaXRpdml0eSBvZgorPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4gKiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0Ij5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+cG9zdDx3YnIvPlJhdzx3YnIvPlNlbnNpdGl2aXR5PHdici8+Qm9vc3Q8L2E+IC88d2JyLz4gMTAwPC9jb2RlPgorVGhlIHNlbnNpdGl2aXR5IG9mIFJBVyBmb3JtYXQgaW1hZ2VzIHdpbGwgYWx3YXlzIGJlIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+PC9jb2RlPjwvcD4KKzxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gaXMgc2V0IHRvCitPRkY7IG90aGVyd2lzZSB0aGUgYXV0by1leHBvc3VyZSBhbGdvcml0aG0gd2lsbCBvdmVycmlkZSB0aGlzIHZhbHVlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVBbnRpYmFuZGluZ01vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPkFudGliYW5kaW5nPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5saXN0IG9mIGVudW1zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBhdXRvLWV4cG9zdXJlIGFudGliYW5kaW5nIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlQW50aWJhbmRpbmdNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BbnRpYmFuZGluZzx3YnIvPk1vZGU8L2E+IHRoYXQgYXJlCitzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUFudGliYW5kaW5nTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYWxsIG9mIHRoZSBhdXRvLWV4cG9zdXJlIGFudGktYmFuZGluZyBtb2RlcyBtYXkgYmUKK3N1cHBvcnRlZCBieSBhIGdpdmVuIGNhbWVyYSBkZXZpY2UuPHdici8+IFRoaXMgZmllbGQgbGlzdHMgdGhlCit2YWxpZCBhbnRpLWJhbmRpbmcgbW9kZXMgdGhhdCB0aGUgYXBwbGljYXRpb24gbWF5IHJlcXVlc3QKK2ZvciB0aGlzIGNhbWVyYSBkZXZpY2Ugd2l0aCB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkFudGliYW5kaW5nPHdici8+TW9kZTwvYT4gY29udHJvbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVNb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGF1dG8tZXhwb3N1cmUgbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEKK2RldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYWxsIHRoZSBhdXRvLWV4cG9zdXJlIG1vZGVzIG1heSBiZSBzdXBwb3J0ZWQgYnkgYQorZ2l2ZW4gY2FtZXJhIGRldmljZSw8d2JyLz4gZXNwZWNpYWxseSBpZiBubyBmbGFzaCB1bml0IGlzCithdmFpbGFibGUuPHdici8+IFRoaXMgZW50cnkgbGlzdHMgdGhlIHZhbGlkIG1vZGVzIGZvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IGZvciB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+QWxsIGNhbWVyYSBkZXZpY2VzIHN1cHBvcnQgT04sPHdici8+IGFuZCBhbGwgY2FtZXJhIGRldmljZXMgd2l0aCBmbGFzaAordW5pdHMgc3VwcG9ydCBPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNIIGFuZCBPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0guPHdici8+PC9wPgorPHA+RlVMTCBtb2RlIGNhbWVyYSBkZXZpY2VzIGFsd2F5cyBzdXBwb3J0IE9GRiBtb2RlLDx3YnIvPgord2hpY2ggZW5hYmxlcyBhcHBsaWNhdGlvbiBjb250cm9sIG9mIGNhbWVyYSBleHBvc3VyZSB0aW1lLDx3YnIvPgorc2Vuc2l0aXZpdHksPHdici8+IGFuZCBmcmFtZSBkdXJhdGlvbi48d2JyLz48L3A+Cis8cD5MRUdBQ1kgbW9kZSBjYW1lcmEgZGV2aWNlcyBuZXZlciBzdXBwb3J0IE9GRiBtb2RlLjx3YnIvPgorTElNSVRFRCBtb2RlIGRldmljZXMgc3VwcG9ydCBPRkYgaWYgdGhleSBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+U0VOU09SCitjYXBhYmlsaXR5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZVRhcmdldEZwc1JhbmdlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIgeCBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByYW5nZUludF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgcGFpcnMgb2YgZnJhbWUgcmF0ZXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGZyYW1lIHJhdGUgcmFuZ2VzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPiBzdXBwb3J0ZWQgYnkKK3RoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgRnJhbWVzIHBlciBzZWNvbmQgKEZQUykKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBkZXZpY2VzIGF0IHRoZSBMRUdBQ1kgbGV2ZWwgb3IgYWJvdmU6PC9wPgorPHVsPgorPGxpPgorPHA+Rm9yIGNvbnN0YW50LWZyYW1lcmF0ZSByZWNvcmRpbmcsPHdici8+IGZvciBlYWNoIG5vcm1hbAorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sIj5DYW1jb3JkZXJQcm9maWxlPC9hPiw8d2JyLz4gdGhhdCBpcyw8d2JyLz4gYQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sIj5DYW1jb3JkZXJQcm9maWxlPC9hPiB0aGF0IGhhcworPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sI3F1YWxpdHkiPnF1YWxpdHk8L2E+IGluCit0aGUgcmFuZ2UgWzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL21lZGlhL0NhbWNvcmRlclByb2ZpbGUuaHRtbCNRVUFMSVRZX0xPVyI+UVVBTElUWV88d2JyLz5MT1c8L2E+LDx3YnIvPgorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sI1FVQUxJVFlfMjE2MFAiPlFVQUxJVFlfPHdici8+MjE2MFA8L2E+XSw8d2JyLz4gaWYgdGhlIHByb2ZpbGUgaXMKK3N1cHBvcnRlZCBieSB0aGUgZGV2aWNlIGFuZCBoYXMKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL21lZGlhL0NhbWNvcmRlclByb2ZpbGUuaHRtbCN2aWRlb0ZyYW1lUmF0ZSI+dmlkZW9GcmFtZVJhdGU8L2E+IDxjb2RlPng8L2NvZGU+LDx3YnIvPiB0aGlzIGxpc3Qgd2lsbAorYWx3YXlzIGluY2x1ZGUgKDxjb2RlPng8L2NvZGU+LDx3YnIvPjxjb2RlPng8L2NvZGU+KS48d2JyLz48L3A+Cis8L2xpPgorPGxpPgorPHA+QWxzbyw8d2JyLz4gYSBjYW1lcmEgZGV2aWNlIG11c3QgZWl0aGVyIG5vdCBzdXBwb3J0IGFueQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sIj5DYW1jb3JkZXJQcm9maWxlPC9hPiw8d2JyLz4KK29yIHN1cHBvcnQgYXQgbGVhc3Qgb25lCitub3JtYWwgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sIj5DYW1jb3JkZXJQcm9maWxlPC9hPiB0aGF0IGhhcworPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sI3ZpZGVvRnJhbWVSYXRlIj52aWRlb0ZyYW1lUmF0ZTwvYT4gPGNvZGU+eDwvY29kZT4gJmd0Oz0gMjQuPHdici8+PC9wPgorPC9saT4KKzwvdWw+Cis8cD5Gb3IgZGV2aWNlcyBhdCB0aGUgTElNSVRFRCBsZXZlbCBvciBhYm92ZTo8L3A+Cis8dWw+Cis8bGk+Rm9yIFlVVl88d2JyLz40MjBfPHdici8+ODg4IGJ1cnN0IGNhcHR1cmUgdXNlIGNhc2UsPHdici8+IHRoaXMgbGlzdCB3aWxsIGFsd2F5cyBpbmNsdWRlICg8Y29kZT5taW48L2NvZGU+LDx3YnIvPiA8Y29kZT5tYXg8L2NvZGU+KQorYW5kICg8Y29kZT5tYXg8L2NvZGU+LDx3YnIvPiA8Y29kZT5tYXg8L2NvZGU+KSB3aGVyZSA8Y29kZT5taW48L2NvZGU+ICZsdDs9IDE1IGFuZCA8Y29kZT5tYXg8L2NvZGU+ID0gdGhlIG1heGltdW0gb3V0cHV0IGZyYW1lIHJhdGUgb2YgdGhlCittYXhpbXVtIFlVVl88d2JyLz40MjBfPHdici8+ODg4IG91dHB1dCBzaXplLjx3YnIvPjwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uUmFuZ2UiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+UmFuZ2UKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHJhbmdlSW50XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TWF4aW11bSBhbmQgbWluaW11bSBleHBvc3VyZSBjb21wZW5zYXRpb24gdmFsdWVzIGZvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT4sPHdici8+IGluIGNvdW50cyBvZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlN0ZXA8L2E+LDx3YnIvPgordGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5SYW5nZSBbMCw8d2JyLz4wXSBpbmRpY2F0ZXMgdGhhdCBleHBvc3VyZSBjb21wZW5zYXRpb24gaXMgbm90IHN1cHBvcnRlZC48d2JyLz48L3A+Cis8cD5Gb3IgTElNSVRFRCBhbmQgRlVMTCBkZXZpY2VzLDx3YnIvPiByYW5nZSBtdXN0IGZvbGxvdyBiZWxvdyByZXF1aXJlbWVudHMgaWYgZXhwb3N1cmUKK2NvbXBlbnNhdGlvbiBpcyBzdXBwb3J0ZWQgKDxjb2RlPnJhbmdlICE9IFswLDx3YnIvPiAwXTwvY29kZT4pOjwvcD4KKzxwPjxjb2RlPk1pbi48d2JyLz5leHBvc3VyZSBjb21wZW5zYXRpb24gKiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlN0ZXA8L2E+ICZsdDs9IC0yIEVWPC9jb2RlPjwvcD4KKzxwPjxjb2RlPk1heC48d2JyLz5leHBvc3VyZSBjb21wZW5zYXRpb24gKiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlN0ZXA8L2E+ICZndDs9IDIgRVY8L2NvZGU+PC9wPgorPHA+TEVHQUNZIGRldmljZXMgbWF5IHN1cHBvcnQgYSBzbWFsbGVyIHJhbmdlIHRoYW4gdGhpcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+U3RlcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+cmF0aW9uYWw8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5TbWFsbGVzdCBzdGVwIGJ5IHdoaWNoIHRoZSBleHBvc3VyZSBjb21wZW5zYXRpb24KK2NhbiBiZSBjaGFuZ2VkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBFeHBvc3VyZSBWYWx1ZSAoRVYpCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIHRoZSB1bml0IGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkV4cG9zdXJlPHdici8+Q29tcGVuc2F0aW9uPC9hPi48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGlmIHRoaXMga2V5IGhhcworYSB2YWx1ZSBvZiA8Y29kZT4xLzx3YnIvPjI8L2NvZGU+LDx3YnIvPiB0aGVuIGEgc2V0dGluZyBvZiA8Y29kZT4tMjwvY29kZT4gZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+RXhwb3N1cmU8d2JyLz5Db21wZW5zYXRpb248L2E+IG1lYW5zCit0aGF0IHRoZSB0YXJnZXQgRVYgb2Zmc2V0IGZvciB0aGUgYXV0by1leHBvc3VyZSByb3V0aW5lIGlzIC0xIEVWLjx3YnIvPjwvcD4KKzxwPk9uZSB1bml0IG9mIEVWIGNvbXBlbnNhdGlvbiBjaGFuZ2VzIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBjYXB0dXJlZCBpbWFnZSBieSBhIGZhY3Rvcgorb2YgdHdvLjx3YnIvPiArMSBFViBkb3VibGVzIHRoZSBpbWFnZSBicmlnaHRuZXNzLDx3YnIvPiB3aGlsZSAtMSBFViBoYWx2ZXMgdGhlIGltYWdlIGJyaWdodG5lc3MuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEvPHdici8+Mi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFmQXZhaWxhYmxlTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+QXZhaWxhYmxlPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5MaXN0IG9mIGVudW1zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBhdXRvLWZvY3VzIChBRikgbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiB0aGF0IGFyZQorc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYWxsIHRoZSBhdXRvLWZvY3VzIG1vZGVzIG1heSBiZSBzdXBwb3J0ZWQgYnkgYQorZ2l2ZW4gY2FtZXJhIGRldmljZS48d2JyLz4gVGhpcyBlbnRyeSBsaXN0cyB0aGUgdmFsaWQgbW9kZXMgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gZm9yIHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5BbGwgTElNSVRFRCBhbmQgRlVMTCBtb2RlIGNhbWVyYSBkZXZpY2VzIHdpbGwgc3VwcG9ydCBPRkYgbW9kZSw8d2JyLz4gYW5kIGFsbAorY2FtZXJhIGRldmljZXMgd2l0aCBhZGp1c3RhYmxlIGZvY3VzZXIgdW5pdHMKKyg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gJmd0OyAwPC9jb2RlPikgd2lsbCBzdXBwb3J0IEFVVE8gbW9kZS48d2JyLz48L3A+Cis8cD5MRUdBQ1kgZGV2aWNlcyB3aWxsIHN1cHBvcnQgT0ZGIG1vZGUgb25seSBpZiB0aGV5IHN1cHBvcnQKK2ZvY3VzaW5nIHRvIGluZmluaXR5IChieSBhbHNvIHNldHRpbmcgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gdG8KKzxjb2RlPjAuPHdici8+MGY8L2NvZGU+KS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlRWZmZWN0cyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+RWZmZWN0cworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkxpc3Qgb2YgZW51bXMgKGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5lZmZlY3Q8d2JyLz5Nb2RlKS48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGNvbG9yIGVmZmVjdHMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmVmZmVjdDx3YnIvPk1vZGU8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYQorZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+ZWZmZWN0PHdici8+TW9kZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBsaXN0IGNvbnRhaW5zIHRoZSBjb2xvciBlZmZlY3QgbW9kZXMgdGhhdCBjYW4gYmUgYXBwbGllZCB0bworaW1hZ2VzIHByb2R1Y2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPgorSW1wbGVtZW50YXRpb25zIGFyZSBub3QgZXhwZWN0ZWQgdG8gYmUgY29uc2lzdGVudCBhY3Jvc3MgYWxsIGRldmljZXMuPHdici8+CitJZiBubyBjb2xvciBlZmZlY3QgbW9kZXMgYXJlIGF2YWlsYWJsZSBmb3IgYSBkZXZpY2UsPHdici8+IHRoaXMgd2lsbCBvbmx5IGxpc3QKK09GRi48d2JyLz48L3A+Cis8cD5BIGNvbG9yIGVmZmVjdCB3aWxsIG9ubHkgYmUgYXBwbGllZCBpZgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gIT0gT0ZGLjx3YnIvPiAgT0ZGIGlzIGFsd2F5cyBpbmNsdWRlZCBpbiB0aGlzIGxpc3QuPHdici8+PC9wPgorPHA+VGhpcyBjb250cm9sIGhhcyBubyBlZmZlY3Qgb24gdGhlIG9wZXJhdGlvbiBvZiBvdGhlciBjb250cm9sIHJvdXRpbmVzIHN1Y2gKK2FzIGF1dG8tZXhwb3N1cmUsPHdici8+IHdoaXRlIGJhbGFuY2UsPHdici8+IG9yIGZvY3VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5TY2VuZTx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+TGlzdCBvZiBlbnVtcyAoYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnNjZW5lPHdici8+TW9kZSkuPHdici8+PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBzY2VuZSBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5zY2VuZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5zY2VuZTx3YnIvPk1vZGU8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYQorZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5zY2VuZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5zY2VuZTx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbGlzdCBjb250YWlucyBzY2VuZSBtb2RlcyB0aGF0IGNhbiBiZSBzZXQgZm9yIHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPgorT25seSBzY2VuZSBtb2RlcyB0aGF0IGhhdmUgYmVlbiBmdWxseSBpbXBsZW1lbnRlZCBmb3IgdGhlCitjYW1lcmEgZGV2aWNlIG1heSBiZSBpbmNsdWRlZCBoZXJlLjx3YnIvPiBJbXBsZW1lbnRhdGlvbnMgYXJlIG5vdCBleHBlY3RlZAordG8gYmUgY29uc2lzdGVudCBhY3Jvc3MgYWxsIGRldmljZXMuPHdici8+PC9wPgorPHA+SWYgbm8gc2NlbmUgbW9kZXMgYXJlIHN1cHBvcnRlZCBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gdGhpcword2lsbCBiZSBzZXQgdG8gRElTQUJMRUQuPHdici8+IE90aGVyd2lzZSBESVNBQkxFRCB3aWxsIG5vdCBiZSBsaXN0ZWQuPHdici8+PC9wPgorPHA+RkFDRV88d2JyLz5QUklPUklUWSBpcyBhbHdheXMgbGlzdGVkIGlmIGZhY2UgZGV0ZWN0aW9uIGlzCitzdXBwb3J0ZWQgKGkuPHdici8+ZS48d2JyLz48Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heEZhY2VDb3VudCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+bWF4PHdici8+RmFjZTx3YnIvPkNvdW50PC9hPiAmZ3Q7CiswPC9jb2RlPikuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVZpZGVvU3RhYmlsaXphdGlvbk1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5WaWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkxpc3Qgb2YgZW51bXMuPHdici8+PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiB2aWRlbyBzdGFiaWxpemF0aW9uIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz52aWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPgordGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnZpZGVvPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9GRiB3aWxsIGFsd2F5cyBiZSBsaXN0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF3YkF2YWlsYWJsZU1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5BdmFpbGFibGU8d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGF1dG8td2hpdGUtYmFsYW5jZSBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYWxsIHRoZSBhdXRvLXdoaXRlLWJhbGFuY2UgbW9kZXMgbWF5IGJlIHN1cHBvcnRlZCBieSBhCitnaXZlbiBjYW1lcmEgZGV2aWNlLjx3YnIvPiBUaGlzIGVudHJ5IGxpc3RzIHRoZSB2YWxpZCBtb2RlcyBmb3IKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+IGZvciB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+QWxsIGNhbWVyYSBkZXZpY2VzIHdpbGwgc3VwcG9ydCBPTiBtb2RlLjx3YnIvPjwvcD4KKzxwPkNhbWVyYSBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5IHdpbGwgYWx3YXlzIHN1cHBvcnQgT0ZGCittb2RlLDx3YnIvPiB3aGljaCBlbmFibGVzIGFwcGxpY2F0aW9uIGNvbnRyb2wgb2Ygd2hpdGUgYmFsYW5jZSw8d2JyLz4gYnkgdXNpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+KDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiBtdXN0IGJlIHNldCB0byBUUkFOU0ZPUk1fPHdici8+TUFUUklYKS48d2JyLz4gVGhpcyBpbmNsdWRlcyBhbGwgRlVMTAorbW9kZSBjYW1lcmEgZGV2aWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVnaW9ucyB0aGF0IGNhbiBiZSB1c2VkIGZvciBtZXRlcmluZyBpbgorYXV0by1leHBvc3VyZSAoQUUpLDx3YnIvPiBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQiksPHdici8+IGFuZCBhdXRvLWZvY3VzIChBRik7Cit0aGlzIGNvcnJlc3BvbmRzIHRvIHRoZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgZWxlbWVudHMgaW4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5SZWdpb25zPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+UmVnaW9uczwvYT4sPHdici8+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlJlZ2lvbnM8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlZhbHVlIG11c3QgYmUgJmd0Oz0gMCBmb3IgZWFjaCBlbGVtZW50Ljx3YnIvPiBGb3IgZnVsbC1jYXBhYmlsaXR5IGRldmljZXMKK3RoaXMgdmFsdWUgbXVzdCBiZSAmZ3Q7PSAxIGZvciBBRSBhbmQgQUYuPHdici8+IFRoZSBvcmRlciBvZiB0aGUgZWxlbWVudHMgaXM6Cis8Y29kZT4oQUUsPHdici8+IEFXQiw8d2JyLz4gQUYpPC9jb2RlPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQWUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpY108L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgbWV0ZXJpbmcgcmVnaW9ucyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSBhdXRvLWV4cG9zdXJlIChBRSkKK3JvdXRpbmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+VmFsdWUgd2lsbCBiZSAmZ3Q7PSAwLjx3YnIvPiBGb3IgRlVMTC1jYXBhYmlsaXR5IGRldmljZXMsPHdici8+IHRoaXMKK3ZhbHVlIHdpbGwgYmUgJmd0Oz0gMS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIHRoZSBtYXhpbXVtIGFsbG93ZWQgbnVtYmVyIG9mIGVsZW1lbnRzIGluCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UmVnaW9uczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGVudHJ5IGlzIHByaXZhdGUgdG8gdGhlIGZyYW1ld29yay48d2JyLz4gRmlsbCBpbgorbWF4UmVnaW9ucyB0byBoYXZlIHRoaXMgZW50cnkgYmUgYXV0b21hdGljYWxseSBwb3B1bGF0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQXdiIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tYXg8d2JyLz5SZWdpb25zPHdici8+QXdiCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXRlcmluZyByZWdpb25zIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKQorcm91dGluZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5WYWx1ZSB3aWxsIGJlICZndDs9IDAuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvcnJlc3BvbmRzIHRvIHRoZSB0aGUgbWF4aW11bSBhbGxvd2VkIG51bWJlciBvZiBlbGVtZW50cyBpbgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+UmVnaW9uczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGVudHJ5IGlzIHByaXZhdGUgdG8gdGhlIGZyYW1ld29yay48d2JyLz4gRmlsbCBpbgorbWF4UmVnaW9ucyB0byBoYXZlIHRoaXMgZW50cnkgYmUgYXV0b21hdGljYWxseSBwb3B1bGF0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQWYiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpY108L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgbWV0ZXJpbmcgcmVnaW9ucyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSBhdXRvLWZvY3VzIChBRikgcm91dGluZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5WYWx1ZSB3aWxsIGJlICZndDs9IDAuPHdici8+IEZvciBGVUxMLWNhcGFiaWxpdHkgZGV2aWNlcyw8d2JyLz4gdGhpcwordmFsdWUgd2lsbCBiZSAmZ3Q7PSAxLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb3JyZXNwb25kcyB0byB0aGUgdGhlIG1heGltdW0gYWxsb3dlZCBudW1iZXIgb2YgZWxlbWVudHMgaW4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5SZWdpb25zPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgZW50cnkgaXMgcHJpdmF0ZSB0byB0aGUgZnJhbWV3b3JrLjx3YnIvPiBGaWxsIGluCittYXhSZWdpb25zIHRvIGhhdmUgdGhpcyBlbnRyeSBiZSBhdXRvbWF0aWNhbGx5IHBvcHVsYXRlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZU92ZXJyaWRlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlPHdici8+T3ZlcnJpZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCBsZW5ndGgoYXZhaWxhYmxlU2NlbmVNb2RlcykKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9yZGVyZWQgbGlzdCBvZiBhdXRvLWV4cG9zdXJlLDx3YnIvPiBhdXRvLXdoaXRlIGJhbGFuY2UsPHdici8+IGFuZCBhdXRvLWZvY3VzCitzZXR0aW5ncyB0byB1c2Ugd2l0aCBlYWNoIGF2YWlsYWJsZSBzY2VuZSBtb2RlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkZvciBlYWNoIGF2YWlsYWJsZSBzY2VuZSBtb2RlLDx3YnIvPiB0aGUgbGlzdCBtdXN0IGNvbnRhaW4gdGhyZWUKK2VudHJpZXMgY29udGFpbmluZyB0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gdmFsdWVzIHVzZWQKK2J5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBUaGUgZW50cnkgb3JkZXIgaXMgPGNvZGU+KGFlTW9kZSw8d2JyLz4gYXdiTW9kZSw8d2JyLz4gYWZNb2RlKTwvY29kZT4KK3doZXJlIGFlTW9kZSBoYXMgdGhlIGxvd2VzdCBpbmRleCBwb3NpdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBhIHNjZW5lIG1vZGUgaXMgZW5hYmxlZCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgaXMgZXhwZWN0ZWQKK3RvIG92ZXJyaWRlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+IHdpdGggaXRzIHByZWZlcnJlZCBzZXR0aW5ncyBmb3IKK3RoYXQgc2NlbmUgbW9kZS48d2JyLz48L3A+Cis8cD5UaGUgb3JkZXIgb2YgdGhpcyBsaXN0IG1hdGNoZXMgdGhhdCBvZiBhdmFpbGFibGVTY2VuZU1vZGVzLDx3YnIvPgord2l0aCAzIGVudHJpZXMgZm9yIGVhY2ggbW9kZS48d2JyLz4gIFRoZSBvdmVycmlkZXMgbGlzdGVkCitmb3IgRkFDRV88d2JyLz5QUklPUklUWSBhbmQgRkFDRV88d2JyLz5QUklPUklUWV88d2JyLz5MT1dfPHdici8+TElHSFQgKGlmIHN1cHBvcnRlZCkgYXJlIGlnbm9yZWQsPHdici8+CitzaW5jZSBmb3IgdGhhdCBtb2RlIHRoZSBhcHBsaWNhdGlvbi1zZXQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gdmFsdWVzIGFyZQordXNlZCBpbnN0ZWFkLDx3YnIvPiBtYXRjaGluZyB0aGUgYmVoYXZpb3Igd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPgoraXMgc2V0IHRvIEFVVE8uPHdici8+IEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIEZBQ0VfPHdici8+UFJJT1JJVFkgYW5kCitGQUNFXzx3YnIvPlBSSU9SSVRZXzx3YnIvPkxPV188d2JyLz5MSUdIVCAoaWYgc3VwcG9ydGVkKSBvdmVycmlkZXMgc2hvdWxkIGJlIHNldCB0byAwLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiBhdmFpbGFibGVTY2VuZU1vZGVzIGNvbnRhaW5zCis8Y29kZT4oRkFDRV88d2JyLz5QUklPUklUWSw8d2JyLz4gQUNUSU9OLDx3YnIvPiBOSUdIVCk8L2NvZGU+LDx3YnIvPiAgdGhlbiB0aGUgY2FtZXJhIGZyYW1ld29yaworZXhwZWN0cyBzY2VuZU1vZGVPdmVycmlkZXMgdG8gaGF2ZSA5IGVudHJpZXMgZm9ybWF0dGVkIGxpa2U6Cis8Y29kZT4oMCw8d2JyLz4gMCw8d2JyLz4gMCw8d2JyLz4gT05fPHdici8+QVVUT188d2JyLz5GTEFTSCw8d2JyLz4gQVVUTyw8d2JyLz4gQ09OVElOVU9VU188d2JyLz5QSUNUVVJFLDx3YnIvPgorT05fPHdici8+QVVUT188d2JyLz5GTEFTSCw8d2JyLz4gSU5DQU5ERVNDRU5ULDx3YnIvPiBBVVRPKTwvY29kZT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UbyBtYWludGFpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LDx3YnIvPiB0aGlzIGxpc3Qgd2lsbCBiZSBtYWRlIGF2YWlsYWJsZQoraW4gdGhlIHN0YXRpYyBtZXRhZGF0YSBvZiB0aGUgY2FtZXJhIHNlcnZpY2UuPHdici8+ICBUaGUgY2FtZXJhIHNlcnZpY2Ugd2lsbAordXNlIHRoZXNlIHZhbHVlcyB0byBzZXQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gd2hlbiB1c2luZyBhIHNjZW5lCittb2RlIG90aGVyIHRoYW4gRkFDRV88d2JyLz5QUklPUklUWSBhbmQgRkFDRV88d2JyLz5QUklPUklUWV88d2JyLz5MT1dfPHdici8+TElHSFQgKGlmIHN1cHBvcnRlZCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5IaWdoPHdici8+U3BlZWQ8d2JyLz5WaWRlbzx3YnIvPkNvbmZpZ3VyYXRpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA1IHggbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW4gYXMgaGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9uXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgYXZhaWxhYmxlIGhpZ2ggc3BlZWQgdmlkZW8gc2l6ZSw8d2JyLz4gZnBzIHJhbmdlIGFuZCBtYXggYmF0Y2ggc2l6ZSBjb25maWd1cmF0aW9ucworc3VwcG9ydGVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBpbiB0aGUgZm9ybWF0IG9mICh3aWR0aCw8d2JyLz4gaGVpZ2h0LDx3YnIvPiBmcHNfPHdici8+bWluLDx3YnIvPiBmcHNfPHdici8+bWF4LDx3YnIvPiBiYXRjaF88d2JyLz5zaXplXzx3YnIvPm1heCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Rm9yIGVhY2ggY29uZmlndXJhdGlvbiw8d2JyLz4gdGhlIGZwc188d2JyLz5tYXggJmd0Oz0gMTIwZnBzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIENPTlNUUkFJTkVEXzx3YnIvPkhJR0hfPHdici8+U1BFRURfPHdici8+VklERU8gaXMgc3VwcG9ydGVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4sPHdici8+Cit0aGlzIG1ldGFkYXRhIHdpbGwgbGlzdCB0aGUgc3VwcG9ydGVkIGhpZ2ggc3BlZWQgdmlkZW8gc2l6ZSw8d2JyLz4gZnBzIHJhbmdlIGFuZCBtYXggYmF0Y2ggc2l6ZQorY29uZmlndXJhdGlvbnMuPHdici8+IEFsbCB0aGUgc2l6ZXMgbGlzdGVkIGluIHRoaXMgY29uZmlndXJhdGlvbiB3aWxsIGJlIGEgc3Vic2V0IG9mIHRoZSBzaXplcworcmVwb3J0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFNpemVzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dFNpemVzPC9hPgorZm9yIHByb2Nlc3NlZCBub24tc3RhbGxpbmcgZm9ybWF0cy48d2JyLz48L3A+Cis8cD5Gb3IgdGhlIGhpZ2ggc3BlZWQgdmlkZW8gdXNlIGNhc2UsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBtdXN0CitzZWxlY3QgdGhlIHZpZGVvIHNpemUgYW5kIGZwcyByYW5nZSBmcm9tIHRoaXMgbWV0YWRhdGEgdG8gY29uZmlndXJlIHRoZSByZWNvcmRpbmcgYW5kCitwcmV2aWV3IHN0cmVhbXMgYW5kIHNldHVwIHRoZSByZWNvcmRpbmcgcmVxdWVzdHMuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgYXBwbGljYXRpb24gaW50ZW5kcwordG8gZG8gaGlnaCBzcGVlZCByZWNvcmRpbmcsPHdici8+IGl0IGNhbiBzZWxlY3QgdGhlIG1heGltdW0gc2l6ZSByZXBvcnRlZCBieSB0aGlzIG1ldGFkYXRhIHRvCitjb25maWd1cmUgb3V0cHV0IHN0cmVhbXMuPHdici8+IE9uY2UgdGhlIHNpemUgaXMgc2VsZWN0ZWQsPHdici8+IGFwcGxpY2F0aW9uIGNhbiBmaWx0ZXIgdGhpcyBtZXRhZGF0YQorYnkgc2VsZWN0ZWQgc2l6ZSBhbmQgZ2V0IHRoZSBzdXBwb3J0ZWQgZnBzIHJhbmdlcyw8d2JyLz4gYW5kIHVzZSB0aGVzZSBmcHMgcmFuZ2VzIHRvIHNldHVwIHRoZQorcmVjb3JkaW5nIHJlcXVlc3RzLjx3YnIvPiBOb3RlIHRoYXQgZm9yIHRoZSB1c2UgY2FzZSBvZiBtdWx0aXBsZSBvdXRwdXQgc3RyZWFtcyw8d2JyLz4gYXBwbGljYXRpb24KK211c3Qgc2VsZWN0IG9uZSB1bmlxdWUgc2l6ZSBmcm9tIHRoaXMgbWV0YWRhdGEgdG8gdXNlIChlLjx3YnIvPmcuLDx3YnIvPiBwcmV2aWV3IGFuZCByZWNvcmRpbmcgc3RyZWFtcworbXVzdCBoYXZlIHRoZSBzYW1lIHNpemUpLjx3YnIvPiBPdGhlcndpc2UsPHdici8+IHRoZSBoaWdoIHNwZWVkIGNhcHR1cmUgc2Vzc2lvbiBjcmVhdGlvbiB3aWxsIGZhaWwuPHdici8+PC9wPgorPHA+VGhlIG1pbiBhbmQgbWF4IGZwcyB3aWxsIGJlIG11bHRpcGxlIHRpbWVzIG9mIDMwZnBzLjx3YnIvPjwvcD4KKzxwPkhpZ2ggc3BlZWQgdmlkZW8gc3RyZWFtaW5nIGV4dGVuZHMgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgcHJlc3N1ZSB0byBjYW1lcmEgaGFyZHdhcmUsPHdici8+Cit0byBhY2hpZXZlIGVmZmljaWVudCBoaWdoIHNwZWVkIHN0cmVhbWluZyw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IGhhdmUgdG8gYWdncmVnYXRlCittdWx0aXBsZSBmcmFtZXMgdG9nZXRoZXIgYW5kIHNlbmQgdG8gY2FtZXJhIGRldmljZSBmb3IgcHJvY2Vzc2luZyB3aGVyZSB0aGUgcmVxdWVzdAorY29udHJvbHMgYXJlIHNhbWUgZm9yIGFsbCB0aGUgZnJhbWVzIGluIHRoaXMgYmF0Y2guPHdici8+IE1heCBiYXRjaCBzaXplIGluZGljYXRlcwordGhlIG1heCBwb3NzaWJsZSBudW1iZXIgb2YgZnJhbWVzIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgZ3JvdXAgdG9nZXRoZXIgZm9yIHRoaXMgaGlnaAorc3BlZWQgc3RyZWFtIGNvbmZpZ3VyYXRpb24uPHdici8+IFRoaXMgbWF4IGJhdGNoIHNpemUgd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgaGlnaCBzcGVlZAorcmVjb3JkaW5nIHJlcXVlc3QgbGlzdCBieQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uLmh0bWwjY3JlYXRlSGlnaFNwZWVkUmVxdWVzdExpc3QiPkNhbWVyYUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24jY3JlYXRlSGlnaFNwZWVkUmVxdWVzdExpc3Q8L2E+Ljx3YnIvPgorVGhlIG1heCBiYXRjaCBzaXplIGZvciBlYWNoIGNvbmZpZ3VyYXRpb24gd2lsbCBzYXRpc2Z5IGJlbG93IGNvbmRpdGlvbnM6PC9wPgorPHVsPgorPGxpPkVhY2ggbWF4IGJhdGNoIHNpemUgd2lsbCBiZSBhIGRpdmlzb3Igb2YgaXRzIGNvcnJlc3BvbmRpbmcgZnBzXzx3YnIvPm1heCAvPHdici8+IDMwLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4KK2lmIG1heF88d2JyLz5mcHMgaXMgMzAwLDx3YnIvPiBtYXggYmF0Y2ggc2l6ZSB3aWxsIG9ubHkgYmUgMSw8d2JyLz4gMiw8d2JyLz4gNSw8d2JyLz4gb3IgMTAuPHdici8+PC9saT4KKzxsaT5UaGUgY2FtZXJhIGRldmljZSBtYXkgY2hvb3NlIHNtYWxsZXIgaW50ZXJuYWwgYmF0Y2ggc2l6ZSBmb3IgZWFjaCBjb25maWd1cmF0aW9uLDx3YnIvPiBidXQKK3RoZSBhY3R1YWwgYmF0Y2ggc2l6ZSB3aWxsIGJlIGEgZGl2aXNvciBvZiBtYXggYmF0Y2ggc2l6ZS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBtYXggYmF0Y2gKK3NpemUgaXMgOCw8d2JyLz4gdGhlIGFjdHVhbCBiYXRjaCBzaXplIHVzZWQgYnkgY2FtZXJhIGRldmljZSB3aWxsIG9ubHkgYmUgMSw8d2JyLz4gMiw8d2JyLz4gNCw8d2JyLz4gb3IgOC48d2JyLz48L2xpPgorPGxpPlRoZSBtYXggYmF0Y2ggc2l6ZSBpbiBlYWNoIGNvbmZpZ3VyYXRpb24gZW50cnkgbXVzdCBiZSBubyBsYXJnZXIgdGhhbiAzMi48d2JyLz48L2xpPgorPC91bD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIGRvZXNuJ3QgaGF2ZSB0byBzdXBwb3J0IGJhdGNoIG1vZGUgdG8gYWNoaWV2ZSBoaWdoIHNwZWVkIHZpZGVvIHJlY29yZGluZyw8d2JyLz4KK2luIHN1Y2ggY2FzZSw8d2JyLz4gYmF0Y2hfPHdici8+c2l6ZV88d2JyLz5tYXggd2lsbCBiZSByZXBvcnRlZCBhcyAxIGluIGVhY2ggY29uZmlndXJhdGlvbiBlbnRyeS48d2JyLz48L3A+Cis8cD5UaGlzIGZwcyByYW5nZXMgaW4gdGhpcyBjb25maWd1cmF0aW9uIGxpc3QgY2FuIG9ubHkgYmUgdXNlZCB0byBjcmVhdGUgcmVxdWVzdHMKK3RoYXQgYXJlIHN1Ym1pdHRlZCB0byBhIGhpZ2ggc3BlZWQgY2FtZXJhIGNhcHR1cmUgc2Vzc2lvbiBjcmVhdGVkIGJ5Cis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24iPkNhbWVyYURldmljZSNjcmVhdGVDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uPC9hPi48d2JyLz4KK1RoZSBmcHMgcmFuZ2VzIHJlcG9ydGVkIGluIHRoaXMgbWV0YWRhdGEgbXVzdCBub3QgYmUgdXNlZCB0byBzZXR1cCBjYXB0dXJlIHJlcXVlc3RzIGZvcgorbm9ybWFsIGNhcHR1cmUgc2Vzc2lvbiw8d2JyLz4gb3IgaXQgd2lsbCBjYXVzZSByZXF1ZXN0IGVycm9yLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QWxsIHRoZSBzaXplcyBsaXN0ZWQgaW4gdGhpcyBjb25maWd1cmF0aW9uIHdpbGwgYmUgYSBzdWJzZXQgb2YgdGhlIHNpemVzIHJlcG9ydGVkIGJ5Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdHJlYW08d2JyLz5Db25maWd1cmF0aW9uczwvYT4gZm9yIHByb2Nlc3NlZCBub24tc3RhbGxpbmcgb3V0cHV0IGZvcm1hdHMuPHdici8+CitOb3RlIHRoYXQgZm9yIGFsbCBoaWdoIHNwZWVkIHZpZGVvIGNvbmZpZ3VyYXRpb25zLDx3YnIvPiBIQUwgbXVzdCBiZSBhYmxlIHRvIHN1cHBvcnQgYSBtaW5pbXVtCitvZiB0d28gc3RyZWFtcyw8d2JyLz4gdGhvdWdoIHRoZSBhcHBsaWNhdGlvbiBtaWdodCBjaG9vc2UgdG8gY29uZmlndXJlIGp1c3Qgb25lIHN0cmVhbS48d2JyLz48L3A+Cis8cD5UaGUgSEFMIG1heSBzdXBwb3J0IG11bHRpcGxlIHNlbnNvciBtb2RlcyBmb3IgaGlnaCBzcGVlZCBvdXRwdXRzLDx3YnIvPiBmb3IgZXhhbXBsZSw8d2JyLz4gMTIwZnBzCitzZW5zb3IgbW9kZSBhbmQgMTIwZnBzIHJlY29yZGluZyw8d2JyLz4gMjQwZnBzIHNlbnNvciBtb2RlIGZvciAyNDBmcHMgcmVjb3JkaW5nLjx3YnIvPiBUaGUgYXBwbGljYXRpb24KK3VzdWFsbHkgc3RhcnRzIHByZXZpZXcgZmlyc3QsPHdici8+IHRoZW4gc3RhcnRzIHJlY29yZGluZy48d2JyLz4gVG8gYXZvaWQgc2Vuc29yIG1vZGUgc3dpdGNoIGNhdXNlZAorc3R1dHRlciB3aGVuIHN0YXJ0aW5nIHJlY29yZGluZyBhcyBtdWNoIGFzIHBvc3NpYmxlLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gbWF5IHdhbnQgdG8gZW5zdXJlCit0aGUgc2FtZSBzZW5zb3IgbW9kZSBpcyB1c2VkIGZvciBwcmV2aWV3IGFuZCByZWNvcmRpbmcuPHdici8+IFRoZXJlZm9yZSw8d2JyLz4gVGhlIEhBTCBtdXN0IGFkdmVydGlzZQordGhlIHZhcmlhYmxlIGZwcyByYW5nZSBbMzAsPHdici8+IGZwc188d2JyLz5tYXhdIGZvciBlYWNoIGZpeGVkIGZwcyByYW5nZSBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gbGlzdC48d2JyLz4KK0ZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgSEFMIGFkdmVydGlzZXMgWzEyMCw8d2JyLz4gMTIwXSBhbmQgWzI0MCw8d2JyLz4gMjQwXSw8d2JyLz4gdGhlIEhBTCBtdXN0IGFsc28gYWR2ZXJ0aXNlCitbMzAsPHdici8+IDEyMF0gYW5kIFszMCw8d2JyLz4gMjQwXSBmb3IgZWFjaCBjb25maWd1cmF0aW9uLjx3YnIvPiBJbiBkb2luZyBzbyw8d2JyLz4gaWYgdGhlIGFwcGxpY2F0aW9uIGludGVuZHMgdG8KK2RvIDEyMGZwcyByZWNvcmRpbmcsPHdici8+IGl0IGNhbiBzZWxlY3QgWzMwLDx3YnIvPiAxMjBdIHRvIHN0YXJ0IHByZXZpZXcsPHdici8+IGFuZCBbMTIwLDx3YnIvPiAxMjBdIHRvIHN0YXJ0CityZWNvcmRpbmcuPHdici8+IEZvciB0aGVzZSB2YXJpYWJsZSBmcHMgcmFuZ2VzLDx3YnIvPiBpdCdzIHVwIHRvIHRoZSBIQUwgdG8gZGVjaWRlIHRoZSBhY3R1YWwgZnBzCit2YWx1ZXMgdGhhdCBhcmUgc3VpdGFibGUgZm9yIHNtb290aCBwcmV2aWV3IHN0cmVhbWluZy48d2JyLz4gSWYgdGhlIEhBTCBzZWVzIGRpZmZlcmVudCBtYXhfPHdici8+ZnBzCit2YWx1ZXMgdGhhdCBmYWxsIGludG8gZGlmZmVyZW50IHNlbnNvciBtb2RlcyBpbiBhIHNlcXVlbmNlIG9mIHJlcXVlc3RzLDx3YnIvPiB0aGUgSEFMIG11c3QKK3N3aXRjaCB0aGUgc2Vuc29yIG1vZGUgYXMgcXVpY2sgYXMgcG9zc2libGUgdG8gbWluaW1pemUgdGhlIG1vZGUgc3dpdGNoIGNhdXNlZCBzdHV0dGVyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrQXZhaWxhYmxlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8d2JyLz5BdmFpbGFibGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBTFNFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UUlVFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIHRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RGV2aWNlcyB3aXRoIE1BTlVBTF88d2JyLz5TRU5TT1IgY2FwYWJpbGl0eSBvciBCVVJTVF88d2JyLz5DQVBUVVJFIGNhcGFiaWxpdHkgd2lsbCBhbHdheXMKK2xpc3QgPGNvZGU+dHJ1ZTwvY29kZT4uPHdici8+IFRoaXMgaW5jbHVkZXMgRlVMTCBkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrQXZhaWxhYmxlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPHdici8+QXZhaWxhYmxlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQUxTRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VFJVRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB0aGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RGV2aWNlcyB3aXRoIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSBvciBCVVJTVF88d2JyLz5DQVBUVVJFIGNhcGFiaWxpdHkgd2lsbAorYWx3YXlzIGxpc3QgPGNvZGU+dHJ1ZTwvY29kZT4uPHdici8+IFRoaXMgaW5jbHVkZXMgRlVMTCBkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVNb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5MaXN0IG9mIGVudW1zIChhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZSkuPHdici8+PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBjb250cm9sIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEKK2RldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGxpc3QgY29udGFpbnMgY29udHJvbCBtb2RlcyB0aGF0IGNhbiBiZSBzZXQgZm9yIHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPgorTEVHQUNZIG1vZGUgZGV2aWNlcyB3aWxsIGFsd2F5cyBzdXBwb3J0IEFVVE8gbW9kZS48d2JyLz4gTElNSVRFRCBhbmQgRlVMTAorZGV2aWNlcyB3aWxsIGFsd2F5cyBzdXBwb3J0IE9GRiw8d2JyLz4gQVVUTyBtb2Rlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3RSYW5nZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+cG9zdDx3YnIvPlJhdzx3YnIvPlNlbnNpdGl2aXR5PHdici8+Qm9vc3Q8d2JyLz5SYW5nZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmFuZ2VJbnRdPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+UmFuZ2Ugb2Ygc3VwcG9ydGVkIHBvc3QgUkFXIHNlbnNpdGl2aXRpeSBib29zdHM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5SYW5nZSBvZiBib29zdHMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3QiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5wb3N0PHdici8+UmF3PHdici8+U2Vuc2l0aXZpdHk8d2JyLz5Cb29zdDwvYT4gc3VwcG9ydGVkCitieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIElTTyBhcml0aG1ldGljIHVuaXRzLDx3YnIvPiB0aGUgc2FtZSBhcyBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkRldmljZXMgc3VwcG9ydCBwb3N0IFJBVyBzZW5zaXRpdml0eSBib29zdCAgd2lsbCBhZHZlcnRpc2UKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3QiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5wb3N0PHdici8+UmF3PHdici8+U2Vuc2l0aXZpdHk8d2JyLz5Cb29zdDwvYT4ga2V5IGZvciBjb250cm9saW5nCitwb3N0IFJBVyBzZW5zaXRpdml0eSBib29zdC48d2JyLz48L3A+Cis8cD5UaGlzIGtleSB3aWxsIGJlIDxjb2RlPm51bGw8L2NvZGU+IGZvciBkZXZpY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgYW55IFJBVyBmb3JtYXQKK291dHB1dHMuPHdici8+IEZvciBkZXZpY2VzIHRoYXQgZG8gc3VwcG9ydCBSQVcgZm9ybWF0IG91dHB1dHMsPHdici8+IHRoaXMga2V5IHdpbGwgYWx3YXlzCitwcmVzZW50LDx3YnIvPiBhbmQgaWYgYSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBwb3N0IFJBVyBzZW5zaXRpdml0eSBib29zdCw8d2JyLz4gaXQgd2lsbAorbGlzdCA8Y29kZT4oMTAwLDx3YnIvPiAxMDApPC9jb2RlPiBpbiB0aGlzIGtleS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMga2V5IGlzIGFkZGVkIGluIEhBTDMuPHdici8+NC48d2JyLz4gRm9yIEhBTDMuPHdici8+MyBvciBlYXJsaWVyIGRldmljZXMsPHdici8+IGNhbWVyYSBmcmFtZXdvcmsgd2lsbAorZ2VuZXJhdGUgdGhpcyBrZXkgYXMgPGNvZGU+KDEwMCw8d2JyLz4gMTAwKTwvY29kZT4gaWYgZGV2aWNlIHN1cHBvcnRzIGFueSBvZiBSQVcgb3V0cHV0IGZvcm1hdHMuPHdici8+CitBbGwgSEFMMy48d2JyLz40IGFuZCBhYm92ZSBkZXZpY2VzIHNob3VsZCBsaXN0IHRoaXMga2V5IGlmIGRldmljZSBzdXBwb3J0cyBhbnkgb2YgUkFXCitvdXRwdXQgZm9ybWF0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZUlkIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5JZAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIElEIHNlbnQgd2l0aCB0aGUgbGF0ZXN0CitDQU1FUkEyXzx3YnIvPlRSSUdHRVJfPHdici8+UFJFQ0FQVFVSRV88d2JyLz5NRVRFUklORyBjYWxsPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+TXVzdCBiZSAwIGlmIG5vCitDQU1FUkEyXzx3YnIvPlRSSUdHRVJfPHdici8+UFJFQ0FQVFVSRV88d2JyLz5NRVRFUklORyB0cmlnZ2VyIHJlY2VpdmVkIHlldAorYnkgSEFMLjx3YnIvPiBBbHdheXMgdXBkYXRlZCBldmVuIGlmIEFFIGFsZ29yaXRobSBpZ25vcmVzIHRoZQordHJpZ2dlcjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIG5vdCBhZGp1c3QgZXhwb3N1cmUgZHVyYXRpb24gdG8KK2F2b2lkIGJhbmRpbmcgcHJvYmxlbXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+NTBIWjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBhZGp1c3QgZXhwb3N1cmUgZHVyYXRpb24gdG8KK2F2b2lkIGJhbmRpbmcgcHJvYmxlbXMgd2l0aCA1MEh6IGlsbHVtaW5hdGlvbiBzb3VyY2VzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPjYwSFo8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgYWRqdXN0IGV4cG9zdXJlIGR1cmF0aW9uIHRvCithdm9pZCBiYW5kaW5nIHByb2JsZW1zIHdpdGggNjBIeiBpbGx1bWluYXRpb24KK3NvdXJjZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QVVUTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBhdXRvbWF0aWNhbGx5IGFkYXB0IGl0cworYW50aWJhbmRpbmcgcm91dGluZSB0byB0aGUgY3VycmVudCBpbGx1bWluYXRpb24KK2NvbmRpdGlvbi48d2JyLz4gVGhpcyBpcyB0aGUgZGVmYXVsdCBtb2RlIGlmIEFVVE8gaXMKK2F2YWlsYWJsZSBvbiBnaXZlbiBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIHNldHRpbmcgZm9yIHRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by1leHBvc3VyZQorYWxnb3JpdGhtJ3MgYW50aWJhbmRpbmcgY29tcGVuc2F0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlQW50aWJhbmRpbmdNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QXZhaWxhYmxlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U29tZSBraW5kcyBvZiBsaWdodGluZyBmaXh0dXJlcyw8d2JyLz4gc3VjaCBhcyBzb21lIGZsdW9yZXNjZW50CitsaWdodHMsPHdici8+IGZsaWNrZXIgYXQgdGhlIHJhdGUgb2YgdGhlIHBvd2VyIHN1cHBseSBmcmVxdWVuY3kKKyg2MEh6IG9yIDUwSHosPHdici8+IGRlcGVuZGluZyBvbiBjb3VudHJ5KS48d2JyLz4gV2hpbGUgdGhpcyBpcwordHlwaWNhbGx5IG5vdCBub3RpY2VhYmxlIHRvIGEgcGVyc29uLDx3YnIvPiBpdCBjYW4gYmUgdmlzaWJsZSB0bworYSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBJZiBhIGNhbWVyYSBzZXRzIGl0cyBleHBvc3VyZSB0aW1lIHRvIHRoZQord3JvbmcgdmFsdWUsPHdici8+IHRoZSBmbGlja2VyIG1heSBiZWNvbWUgdmlzaWJsZSBpbiB0aGUKK3ZpZXdmaW5kZXIgYXMgZmxpY2tlciBvciBpbiBhIGZpbmFsIGNhcHR1cmVkIGltYWdlLDx3YnIvPiBhcyBhCitzZXQgb2YgdmFyaWFibGUtYnJpZ2h0bmVzcyBiYW5kcyBhY3Jvc3MgdGhlIGltYWdlLjx3YnIvPjwvcD4KKzxwPlRoZXJlZm9yZSw8d2JyLz4gdGhlIGF1dG8tZXhwb3N1cmUgcm91dGluZXMgb2YgY2FtZXJhIGRldmljZXMKK2luY2x1ZGUgYW50aWJhbmRpbmcgcm91dGluZXMgdGhhdCBlbnN1cmUgdGhhdCB0aGUgY2hvc2VuCitleHBvc3VyZSB2YWx1ZSB3aWxsIG5vdCBjYXVzZSBzdWNoIGJhbmRpbmcuPHdici8+IFRoZSBjaG9pY2Ugb2YKK2V4cG9zdXJlIHRpbWUgZGVwZW5kcyBvbiB0aGUgcmF0ZSBvZiBmbGlja2VyLDx3YnIvPiB3aGljaCB0aGUKK2NhbWVyYSBkZXZpY2UgY2FuIGRldGVjdCBhdXRvbWF0aWNhbGx5LDx3YnIvPiBvciB0aGUgZXhwZWN0ZWQKK3JhdGUgY2FuIGJlIHNlbGVjdGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiB1c2luZyB0aGlzCitjb250cm9sLjx3YnIvPjwvcD4KKzxwPkEgZ2l2ZW4gY2FtZXJhIGRldmljZSBtYXkgbm90IHN1cHBvcnQgYWxsIG9mIHRoZSBwb3NzaWJsZQorb3B0aW9ucyBmb3IgdGhlIGFudGliYW5kaW5nIG1vZGUuPHdici8+IFRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVBbnRpYmFuZGluZ01vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5BbnRpYmFuZGluZzx3YnIvPk1vZGVzPC9hPiBrZXkgY29udGFpbnMKK3RoZSBhdmFpbGFibGUgbW9kZXMgZm9yIGEgZ2l2ZW4gY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5BVVRPIG1vZGUgaXMgdGhlIGRlZmF1bHQgaWYgaXQgaXMgYXZhaWxhYmxlIG9uIGdpdmVuCitjYW1lcmEgZGV2aWNlLjx3YnIvPiBXaGVuIEFVVE8gbW9kZSBpcyBub3QgYXZhaWxhYmxlLDx3YnIvPiB0aGUKK2RlZmF1bHQgd2lsbCBiZSBlaXRoZXIgNTBIWiBvciA2MEhaLDx3YnIvPiBhbmQgYm90aCA1MEhaCithbmQgNjBIWiB3aWxsIGJlIGF2YWlsYWJsZS48d2JyLz48L3A+Cis8cD5JZiBtYW51YWwgZXhwb3N1cmUgY29udHJvbCBpcyBlbmFibGVkIChieSBzZXR0aW5nCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gdG8gT0ZGKSw8d2JyLz4KK3RoZW4gdGhpcyBzZXR0aW5nIGhhcyBubyBlZmZlY3QsPHdici8+IGFuZCB0aGUgYXBwbGljYXRpb24gbXVzdAorZW5zdXJlIGl0IHNlbGVjdHMgZXhwb3N1cmUgdGltZXMgdGhhdCBkbyBub3QgY2F1c2UgYmFuZGluZworaXNzdWVzLjx3YnIvPiBUaGUgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnNjZW5lRmxpY2tlciI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPnNjZW5lPHdici8+RmxpY2tlcjwvYT4ga2V5IGNhbiBhc3Npc3QKK3RoZSBhcHBsaWNhdGlvbiBpbiB0aGlzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIGFsbCBjYXB0dXJlIHJlcXVlc3QgdGVtcGxhdGVzLDx3YnIvPiB0aGlzIGZpZWxkIG11c3QgYmUgc2V0Cit0byBBVVRPIGlmIEFVVE8gbW9kZSBpcyBhdmFpbGFibGUuPHdici8+IElmIEFVVE8gaXMgbm90IGF2YWlsYWJsZSw8d2JyLz4KK3RoZSBkZWZhdWx0IG11c3QgYmUgZWl0aGVyIDUwSFogb3IgNjBIWiw8d2JyLz4gYW5kIGJvdGggNTBIWiBhbmQKKzYwSFogbXVzdCBiZSBhdmFpbGFibGUuPHdici8+PC9wPgorPHA+SWYgbWFudWFsIGV4cG9zdXJlIGNvbnRyb2wgaXMgZW5hYmxlZCAoYnkgc2V0dGluZworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IHRvIE9GRiksPHdici8+Cit0aGVuIHRoZSBleHBvc3VyZSB2YWx1ZXMgcHJvdmlkZWQgYnkgdGhlIGFwcGxpY2F0aW9uIG11c3Qgbm90IGJlCithZGp1c3RlZCBmb3IgYW50aWJhbmRpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BZGp1c3RtZW50IHRvIGF1dG8tZXhwb3N1cmUgKEFFKSB0YXJnZXQgaW1hZ2UKK2JyaWdodG5lc3MuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIENvbXBlbnNhdGlvbiBzdGVwcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlJhbmdlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgYWRqdXN0bWVudCBpcyBtZWFzdXJlZCBhcyBhIGNvdW50IG9mIHN0ZXBzLDx3YnIvPiB3aXRoIHRoZQorc3RlcCBzaXplIGRlZmluZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25TdGVwIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Db21wZW5zYXRpb248d2JyLz5TdGVwPC9hPiBhbmQgdGhlCithbGxvd2VkIHJhbmdlIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlJhbmdlPC9hPi48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZSw8d2JyLz4gaWYgdGhlIGV4cG9zdXJlIHZhbHVlIChFVikgc3RlcCBpcyAwLjx3YnIvPjMzMyw8d2JyLz4gJzYnCit3aWxsIG1lYW4gYW4gZXhwb3N1cmUgY29tcGVuc2F0aW9uIG9mICsyIEVWOyAtMyB3aWxsIG1lYW4gYW4KK2V4cG9zdXJlIGNvbXBlbnNhdGlvbiBvZiAtMSBFVi48d2JyLz4gT25lIEVWIHJlcHJlc2VudHMgYSBkb3VibGluZworb2YgaW1hZ2UgYnJpZ2h0bmVzcy48d2JyLz4gTm90ZSB0aGF0IHRoaXMgY29udHJvbCB3aWxsIG9ubHkgYmUKK2VmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gPGNvZGU+IT08L2NvZGU+IE9GRi48d2JyLz4gVGhpcyBjb250cm9sCit3aWxsIHRha2UgZWZmZWN0IGV2ZW4gd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gPGNvZGU+PT0gdHJ1ZTwvY29kZT4uPHdici8+PC9wPgorPHA+SW4gdGhlIGV2ZW50IG9mIGV4cG9zdXJlIGNvbXBlbnNhdGlvbiB2YWx1ZSBiZWluZyBjaGFuZ2VkLDx3YnIvPiBjYW1lcmEgZGV2aWNlCittYXkgdGFrZSBzZXZlcmFsIGZyYW1lcyB0byByZWFjaCB0aGUgbmV3bHkgcmVxdWVzdGVkIGV4cG9zdXJlIHRhcmdldC48d2JyLz4KK0R1cmluZyB0aGF0IHRpbWUsPHdici8+IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gZmllbGQgd2lsbCBiZSBpbiB0aGUgU0VBUkNISU5HCitzdGF0ZS48d2JyLz4gT25jZSB0aGUgbmV3IGV4cG9zdXJlIHRhcmdldCBpcyByZWFjaGVkLDx3YnIvPiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+U3RhdGU8L2E+IHdpbGwKK2NoYW5nZSBmcm9tIFNFQVJDSElORyB0byBlaXRoZXIgQ09OVkVSR0VELDx3YnIvPiBMT0NLRUQgKGlmIEFFIGxvY2sgaXMgZW5hYmxlZCksPHdici8+IG9yCitGTEFTSF88d2JyLz5SRVFVSVJFRCAoaWYgdGhlIHNjZW5lIGlzIHRvbyBkYXJrIGZvciBzdGlsbCBjYXB0dXJlKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG8tZXhwb3N1cmUgbG9jayBpcyBkaXNhYmxlZDsgdGhlIEFFIGFsZ29yaXRobQoraXMgZnJlZSB0byB1cGRhdGUgaXRzIHBhcmFtZXRlcnMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG8tZXhwb3N1cmUgbG9jayBpcyBlbmFibGVkOyB0aGUgQUUgYWxnb3JpdGhtCittdXN0IG5vdCB1cGRhdGUgdGhlIGV4cG9zdXJlIGFuZCBzZW5zaXRpdml0eSBwYXJhbWV0ZXJzCit3aGlsZSB0aGUgbG9jayBpcyBhY3RpdmUuPHdici8+PC9wPgorPHA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT4gc2V0dGluZyBjaGFuZ2VzCit3aWxsIHN0aWxsIHRha2UgZWZmZWN0IHdoaWxlIGF1dG8tZXhwb3N1cmUgaXMgbG9ja2VkLjx3YnIvPjwvcD4KKzxwPlNvbWUgcmFyZSBMRUdBQ1kgZGV2aWNlcyBtYXkgbm90IHN1cHBvcnQKK3RoaXMsPHdici8+IGluIHdoaWNoIGNhc2UgdGhlIHZhbHVlIHdpbGwgYWx3YXlzIGJlIG92ZXJyaWRkZW4gdG8gT0ZGLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgYXV0by1leHBvc3VyZSAoQUUpIGlzIGN1cnJlbnRseSBsb2NrZWQgdG8gaXRzIGxhdGVzdAorY2FsY3VsYXRlZCB2YWx1ZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiAoT04pLDx3YnIvPiB0aGUgQUUgYWxnb3JpdGhtIGlzIGxvY2tlZCB0byBpdHMgbGF0ZXN0IHBhcmFtZXRlcnMsPHdici8+CithbmQgd2lsbCBub3QgY2hhbmdlIGV4cG9zdXJlIHNldHRpbmdzIHVudGlsIHRoZSBsb2NrIGlzIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4gKE9GRikuPHdici8+PC9wPgorPHA+Tm90ZSB0aGF0IGV2ZW4gd2hlbiBBRSBpcyBsb2NrZWQsPHdici8+IHRoZSBmbGFzaCBtYXkgYmUgZmlyZWQgaWYKK3RoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgT05fPHdici8+QVVUT188d2JyLz5GTEFTSCAvPHdici8+CitPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0ggLzx3YnIvPiBPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNIXzx3YnIvPlJFREVZRS48d2JyLz48L3A+Cis8cD5XaGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+RXhwb3N1cmU8d2JyLz5Db21wZW5zYXRpb248L2E+IGlzIGNoYW5nZWQsPHdici8+IGV2ZW4gaWYgdGhlIEFFIGxvY2sKK2lzIE9OLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHN0aWxsIGFkanVzdCBpdHMgZXhwb3N1cmUgdmFsdWUuPHdici8+PC9wPgorPHA+SWYgQUUgcHJlY2FwdHVyZSBpcyB0cmlnZ2VyZWQgKHNlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPikKK3doZW4gQUUgaXMgYWxyZWFkeSBsb2NrZWQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IGNoYW5nZSB0aGUgZXhwb3N1cmUgdGltZQorKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4pIGFuZCBzZW5zaXRpdml0eSAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4pCitwYXJhbWV0ZXJzLjx3YnIvPiBUaGUgZmxhc2ggbWF5IGJlIGZpcmVkIGlmIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4KK2lzIE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0gvPHdici8+T05fPHdici8+QVVUT188d2JyLz5GTEFTSF88d2JyLz5SRURFWUUgYW5kIHRoZSBzY2VuZSBpcyB0b28gZGFyay48d2JyLz4gSWYgdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgT05fPHdici8+QUxXQVlTXzx3YnIvPkZMQVNILDx3YnIvPiB0aGUgc2NlbmUgbWF5IGJlY29tZSBvdmVyZXhwb3NlZC48d2JyLz4KK1NpbWlsYXJseSw8d2JyLz4gQUUgcHJlY2FwdHVyZSB0cmlnZ2VyIENBTkNFTCBoYXMgbm8gZWZmZWN0IHdoZW4gQUUgaXMgYWxyZWFkeSBsb2NrZWQuPHdici8+PC9wPgorPHA+V2hlbiBhbiBBRSBwcmVjYXB0dXJlIHNlcXVlbmNlIGlzIHRyaWdnZXJlZCw8d2JyLz4gQUUgdW5sb2NrIHdpbGwgbm90IGJlIGFibGUgdG8gdW5sb2NrCit0aGUgQUUgaWYgQUUgaXMgbG9ja2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGludGVybmFsbHkgZHVyaW5nIHByZWNhcHR1cmUgbWV0ZXJpbmcKK3NlcXVlbmNlIEluIG90aGVyIHdvcmRzLDx3YnIvPiBzdWJtaXR0aW5nIHJlcXVlc3RzIHdpdGggQUUgdW5sb2NrIGhhcyBubyBlZmZlY3QgZm9yIGFuCitvbmdvaW5nIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UuPHdici8+IE90aGVyd2lzZSw8d2JyLz4gdGhlIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UKK3dpbGwgbmV2ZXIgc3VjY2VlZCBpbiBhIHNlcXVlbmNlIG9mIHByZXZpZXcgcmVxdWVzdHMgd2hlcmUgQUUgbG9jayBpcyBhbHdheXMgc2V0Cit0byA8Y29kZT5mYWxzZTwvY29kZT4uPHdici8+PC9wPgorPHA+U2luY2UgdGhlIGNhbWVyYSBkZXZpY2UgaGFzIGEgcGlwZWxpbmUgb2YgaW4tZmxpZ2h0IHJlcXVlc3RzLDx3YnIvPiB0aGUgc2V0dGluZ3MgdGhhdAorZ2V0IGxvY2tlZCBkbyBub3QgbmVjZXNzYXJpbHkgY29ycmVzcG9uZCB0byB0aGUgc2V0dGluZ3MgdGhhdCB3ZXJlIHByZXNlbnQgaW4gdGhlCitsYXRlc3QgY2FwdHVyZSByZXN1bHQgcmVjZWl2ZWQgZnJvbSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gc2luY2UgYWRkaXRpb25hbCBjYXB0dXJlcworYW5kIEFFIHVwZGF0ZXMgbWF5IGhhdmUgb2NjdXJyZWQgZXZlbiBiZWZvcmUgdGhlIHJlc3VsdCB3YXMgc2VudCBvdXQuPHdici8+IElmIGFuCithcHBsaWNhdGlvbiBpcyBzd2l0Y2hpbmcgYmV0d2VlbiBhdXRvbWF0aWMgYW5kIG1hbnVhbCBjb250cm9sIGFuZCB3aXNoZXMgdG8gZWxpbWluYXRlCithbnkgZmxpY2tlciBkdXJpbmcgdGhlIHN3aXRjaCw8d2JyLz4gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmUgaXMgcmVjb21tZW5kZWQ6PC9wPgorPG9sPgorPGxpPlN0YXJ0aW5nIGluIGF1dG8tQUUgbW9kZTo8L2xpPgorPGxpPkxvY2sgQUU8L2xpPgorPGxpPldhaXQgZm9yIHRoZSBmaXJzdCByZXN1bHQgdG8gYmUgb3V0cHV0IHRoYXQgaGFzIHRoZSBBRSBsb2NrZWQ8L2xpPgorPGxpPkNvcHkgZXhwb3N1cmUgc2V0dGluZ3MgZnJvbSB0aGF0IHJlc3VsdCBpbnRvIGEgcmVxdWVzdCw8d2JyLz4gc2V0IHRoZSByZXF1ZXN0IHRvIG1hbnVhbCBBRTwvbGk+Cis8bGk+U3VibWl0IHRoZSBjYXB0dXJlIHJlcXVlc3QsPHdici8+IHByb2NlZWQgdG8gcnVuIG1hbnVhbCBBRSBhcyBkZXNpcmVkLjx3YnIvPjwvbGk+Cis8L29sPgorPHA+U2VlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gZm9yIEFFIGxvY2sgcmVsYXRlZCBzdGF0ZSB0cmFuc2l0aW9uIGRldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvZXhwb3N1cmUgcm91dGluZSBpcyBkaXNhYmxlZC48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24tc2VsZWN0ZWQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+IGFyZSB1c2VkIGJ5IHRoZSBjYW1lcmEKK2RldmljZSw8d2JyLz4gYWxvbmcgd2l0aCBhbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPiogZmllbGRzLDx3YnIvPiBpZiB0aGVyZSdzCithIGZsYXNoIHVuaXQgZm9yIHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5Ob3RlIHRoYXQgYXV0by13aGl0ZSBiYWxhbmNlIChBV0IpIGFuZCBhdXRvLWZvY3VzIChBRikKK2JlaGF2aW9yIGlzIGRldmljZSBkZXBlbmRlbnQgd2hlbiBBRSBpcyBpbiBPRkYgbW9kZS48d2JyLz4KK1RvIGhhdmUgY29uc2lzdGVudCBiZWhhdmlvciBhY3Jvc3MgZGlmZmVyZW50IGRldmljZXMsPHdici8+CitpdCBpcyByZWNvbW1lbmRlZCB0byBlaXRoZXIgc2V0IEFXQiBhbmQgQUYgdG8gT0ZGIG1vZGUKK29yIGxvY2sgQVdCIGFuZCBBRiBiZWZvcmUgc2V0dGluZyBBRSB0byBPRkYuPHdici8+CitTZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+LDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+Citmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBkZXZpY2VzIGRvIG5vdCBzdXBwb3J0IHRoZSBPRkYgbW9kZSBhbmQgd2lsbAorb3ZlcnJpZGUgYXR0ZW1wdHMgdG8gdXNlIHRoaXMgdmFsdWUgdG8gT04uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0b2V4cG9zdXJlIHJvdXRpbmUgaXMgYWN0aXZlLDx3YnIvPgord2l0aCBubyBmbGFzaCBjb250cm9sLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiw8d2JyLz4gYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4gYXJlIGlnbm9yZWQuPHdici8+IFRoZQorYXBwbGljYXRpb24gaGFzIGNvbnRyb2wgb3ZlciB0aGUgdmFyaW91cworYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz4qIGZpZWxkcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTl9BVVRPX0ZMQVNIPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5MaWtlIE9OLDx3YnIvPiBleGNlcHQgdGhhdCB0aGUgY2FtZXJhIGRldmljZSBhbHNvIGNvbnRyb2xzCit0aGUgY2FtZXJhJ3MgZmxhc2ggdW5pdCw8d2JyLz4gZmlyaW5nIGl0IGluIGxvdy1saWdodAorY29uZGl0aW9ucy48d2JyLz48L3A+Cis8cD5UaGUgZmxhc2ggbWF5IGJlIGZpcmVkIGR1cmluZyBhIHByZWNhcHR1cmUgc2VxdWVuY2UKKyh0cmlnZ2VyZWQgYnkgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4pIGFuZAorbWF5IGJlIGZpcmVkIGZvciBjYXB0dXJlcyBmb3Igd2hpY2ggdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50PC9hPiBmaWVsZCBpcyBzZXQgdG8KK1NUSUxMXzx3YnIvPkNBUFRVUkU8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTl9BTFdBWVNfRkxBU0g8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkxpa2UgT04sPHdici8+IGV4Y2VwdCB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIGFsc28gY29udHJvbHMKK3RoZSBjYW1lcmEncyBmbGFzaCB1bml0LDx3YnIvPiBhbHdheXMgZmlyaW5nIGl0IGZvciBzdGlsbAorY2FwdHVyZXMuPHdici8+PC9wPgorPHA+VGhlIGZsYXNoIG1heSBiZSBmaXJlZCBkdXJpbmcgYSBwcmVjYXB0dXJlIHNlcXVlbmNlCisodHJpZ2dlcmVkIGJ5IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+KSBhbmQKK3dpbGwgYWx3YXlzIGJlIGZpcmVkIGZvciBjYXB0dXJlcyBmb3Igd2hpY2ggdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50PC9hPiBmaWVsZCBpcyBzZXQgdG8KK1NUSUxMXzx3YnIvPkNBUFRVUkU8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTl9BVVRPX0ZMQVNIX1JFREVZRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+TGlrZSBPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNILDx3YnIvPiBidXQgd2l0aCBhdXRvbWF0aWMgcmVkIGV5ZQorcmVkdWN0aW9uLjx3YnIvPjwvcD4KKzxwPklmIGRlZW1lZCBuZWNlc3NhcnkgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGEgcmVkIGV5ZQorcmVkdWN0aW9uIGZsYXNoIHdpbGwgZmlyZSBkdXJpbmcgdGhlIHByZWNhcHR1cmUKK3NlcXVlbmNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIG1vZGUgZm9yIHRoZSBjYW1lcmEgZGV2aWNlJ3MKK2F1dG8tZXhwb3N1cmUgcm91dGluZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzCitBVVRPLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIGFueSBvZiB0aGUgT04gbW9kZXMsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlJ3MKK2F1dG8tZXhwb3N1cmUgcm91dGluZSBpcyBlbmFibGVkLDx3YnIvPiBvdmVycmlkaW5nIHRoZQorYXBwbGljYXRpb24ncyBzZWxlY3RlZCBleHBvc3VyZSB0aW1lLDx3YnIvPiBzZW5zb3Igc2Vuc2l0aXZpdHksPHdici8+CithbmQgZnJhbWUgZHVyYXRpb24gKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiw8d2JyLz4gYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4pLjx3YnIvPiBJZiBvbmUgb2YgdGhlIEZMQVNIIG1vZGVzCitpcyBzZWxlY3RlZCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UncyBmbGFzaCB1bml0IGNvbnRyb2xzIGFyZQorYWxzbyBvdmVycmlkZGVuLjx3YnIvPjwvcD4KKzxwPlRoZSBGTEFTSCBtb2RlcyBhcmUgb25seSBhdmFpbGFibGUgaWYgdGhlIGNhbWVyYSBkZXZpY2UKK2hhcyBhIGZsYXNoIHVuaXQgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSI+YW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTwvYT4gaXMgPGNvZGU+dHJ1ZTwvY29kZT4pLjx3YnIvPjwvcD4KKzxwPklmIGZsYXNoIFRPUkNIIG1vZGUgaXMgZGVzaXJlZCw8d2JyLz4gdGhpcyBmaWVsZCBtdXN0IGJlIHNldCB0bworT04gb3IgT0ZGLDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZmxhc2gubW9kZSI+YW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5tb2RlPC9hPiBzZXQgdG8gVE9SQ0guPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gYW55IG9mIHRoZSBPTiBtb2Rlcyw8d2JyLz4gdGhlIHZhbHVlcyBjaG9zZW4gYnkgdGhlCitjYW1lcmEgZGV2aWNlIGF1dG8tZXhwb3N1cmUgcm91dGluZSBmb3IgdGhlIG92ZXJyaWRkZW4KK2ZpZWxkcyBmb3IgYSBnaXZlbiBjYXB0dXJlIHdpbGwgYmUgYXZhaWxhYmxlIGluIGl0cworQ2FwdHVyZVJlc3VsdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlUmVnaW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5SZWdpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA1IHggYXJlYV9jb3VudAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgbWV0ZXJpbmdSZWN0YW5nbGVdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBtZXRlcmluZyBhcmVhcyB0byB1c2UgZm9yIGF1dG8tZXhwb3N1cmUgYWRqdXN0bWVudC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUGl4ZWwgY29vcmRpbmF0ZXMgd2l0aGluIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Q29vcmRpbmF0ZXMgbXVzdCBiZSBiZXR3ZWVuIDxjb2RlPlsoMCw8d2JyLz4wKSw8d2JyLz4gKHdpZHRoLDx3YnIvPiBoZWlnaHQpKTwvY29kZT4gb2YKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYXZhaWxhYmxlIGlmIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZTwvYT4gaXMgMC48d2JyLz4KK090aGVyd2lzZSB3aWxsIGFsd2F5cyBiZSBwcmVzZW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiByZWdpb25zIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlIGlzIGRldGVybWluZWQgYnkgdGhlIHZhbHVlCitvZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQWUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tYXg8d2JyLz5SZWdpb25zPHdici8+QWU8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoZSBjb29yZGluYXRlIHN5c3RlbSBpcyBiYXNlZCBvbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPgord2l0aCAoMCw8d2JyLz4wKSBiZWluZyB0aGUgdG9wLWxlZnQgcGl4ZWwgaW4gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheSw8d2JyLz4gYW5kCisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPndpZHRoIC0gMSw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz5oZWlnaHQgLSAxKSBiZWluZyB0aGUKK2JvdHRvbS1yaWdodCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5Ljx3YnIvPjwvcD4KKzxwPlRoZSB3ZWlnaHQgbXVzdCBiZSB3aXRoaW4gPGNvZGU+WzAsPHdici8+IDEwMDBdPC9jb2RlPiw8d2JyLz4gYW5kIHJlcHJlc2VudHMgYSB3ZWlnaHQKK2ZvciBldmVyeSBwaXhlbCBpbiB0aGUgYXJlYS48d2JyLz4gVGhpcyBtZWFucyB0aGF0IGEgbGFyZ2UgbWV0ZXJpbmcgYXJlYQord2l0aCB0aGUgc2FtZSB3ZWlnaHQgYXMgYSBzbWFsbGVyIGFyZWEgd2lsbCBoYXZlIG1vcmUgZWZmZWN0IGluCit0aGUgbWV0ZXJpbmcgcmVzdWx0Ljx3YnIvPiBNZXRlcmluZyBhcmVhcyBjYW4gcGFydGlhbGx5IG92ZXJsYXAgYW5kIHRoZQorY2FtZXJhIGRldmljZSB3aWxsIGFkZCB0aGUgd2VpZ2h0cyBpbiB0aGUgb3ZlcmxhcCByZWdpb24uPHdici8+PC9wPgorPHA+VGhlIHdlaWdodHMgYXJlIHJlbGF0aXZlIHRvIHdlaWdodHMgb2Ygb3RoZXIgZXhwb3N1cmUgbWV0ZXJpbmcgcmVnaW9ucyw8d2JyLz4gc28gaWYgb25seSBvbmUKK3JlZ2lvbiBpcyB1c2VkLDx3YnIvPiBhbGwgbm9uLXplcm8gd2VpZ2h0cyB3aWxsIGhhdmUgdGhlIHNhbWUgZWZmZWN0Ljx3YnIvPiBBIHJlZ2lvbiB3aXRoIDAKK3dlaWdodCBpcyBpZ25vcmVkLjx3YnIvPjwvcD4KKzxwPklmIGFsbCByZWdpb25zIGhhdmUgMCB3ZWlnaHQsPHdici8+IHRoZW4gbm8gc3BlY2lmaWMgbWV0ZXJpbmcgYXJlYSBuZWVkcyB0byBiZSB1c2VkIGJ5IHRoZQorY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5JZiB0aGUgbWV0ZXJpbmcgcmVnaW9uIGlzIG91dHNpZGUgdGhlIHVzZWQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+IHJldHVybmVkIGluCitjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBpZ25vcmUgdGhlIHNlY3Rpb25zIG91dHNpZGUgdGhlIGNyb3AKK3JlZ2lvbiBhbmQgb3V0cHV0IG9ubHkgdGhlIGludGVyc2VjdGlvbiByZWN0YW5nbGUgYXMgdGhlIG1ldGVyaW5nIHJlZ2lvbiBpbiB0aGUgcmVzdWx0CittZXRhZGF0YS48d2JyLz4gIElmIHRoZSByZWdpb24gaXMgZW50aXJlbHkgb3V0c2lkZSB0aGUgY3JvcCByZWdpb24sPHdici8+IGl0IHdpbGwgYmUgaWdub3JlZCBhbmQKK25vdCByZXBvcnRlZCBpbiB0aGUgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIEhBTCBsZXZlbCByZXByZXNlbnRhdGlvbiBvZiBNZXRlcmluZ1JlY3RhbmdsZVtdIGlzIGEKK2ludFs1ICogYXJlYV88d2JyLz5jb3VudF0uPHdici8+CitFdmVyeSBmaXZlIGVsZW1lbnRzIHJlcHJlc2VudCBhIG1ldGVyaW5nIHJlZ2lvbiBvZgorKHhtaW4sPHdici8+IHltaW4sPHdici8+IHhtYXgsPHdici8+IHltYXgsPHdici8+IHdlaWdodCkuPHdici8+CitUaGUgcmVjdGFuZ2xlIGlzIGRlZmluZWQgdG8gYmUgaW5jbHVzaXZlIG9uIHhtaW4gYW5kIHltaW4sPHdici8+IGJ1dAorZXhjbHVzaXZlIG9uIHhtYXggYW5kIHltYXguPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmFuZ2VJbnRdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5SYW5nZSBvdmVyIHdoaWNoIHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgY2FuCithZGp1c3QgdGhlIGNhcHR1cmUgZnJhbWUgcmF0ZSB0byBtYWludGFpbiBnb29kCitleHBvc3VyZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgRnJhbWVzIHBlciBzZWNvbmQgKEZQUykKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Bbnkgb2YgdGhlIGVudHJpZXMgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVUYXJnZXRGcHNSYW5nZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+T25seSBjb25zdHJhaW5zIGF1dG8tZXhwb3N1cmUgKEFFKSBhbGdvcml0aG0sPHdici8+IG5vdAorbWFudWFsIGNvbnRyb2wgb2YgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXIKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SURMRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIHRyaWdnZXIgaXMgaWRsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVEFSVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2Ugd2lsbCBiZSBzdGFydGVkCitieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5UaGUgZXhhY3QgZWZmZWN0IG9mIHRoZSBwcmVjYXB0dXJlIHRyaWdnZXIgZGVwZW5kcyBvbgordGhlIGN1cnJlbnQgQUUgbW9kZSBhbmQgc3RhdGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q0FOQ0VMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIGNhbmNlbCBhbnkgY3VycmVudGx5IGFjdGl2ZSBvciBjb21wbGV0ZWQKK3ByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UsPHdici8+IHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgd2lsbCByZXR1cm4gdG8gaXRzCitpbml0aWFsIHN0YXRlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCB0cmlnZ2VyIGEgcHJlY2FwdHVyZQorbWV0ZXJpbmcgc2VxdWVuY2Ugd2hlbiBpdCBwcm9jZXNzZXMgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBlbnRyeSBpcyBub3JtYWxseSBzZXQgdG8gSURMRSw8d2JyLz4gb3IgaXMgbm90CitpbmNsdWRlZCBhdCBhbGwgaW4gdGhlIHJlcXVlc3Qgc2V0dGluZ3MuPHdici8+IFdoZW4gaW5jbHVkZWQgYW5kCitzZXQgdG8gU1RBUlQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgdHJpZ2dlciB0aGUgYXV0by1leHBvc3VyZSAoQUUpCitwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIENBTkNFTCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBjYW5jZWwgYW55IGFjdGl2ZQorcHJlY2FwdHVyZSBtZXRlcmluZyB0cmlnZ2VyLDx3YnIvPiBhbmQgcmV0dXJuIHRvIGl0cyBpbml0aWFsIEFFIHN0YXRlLjx3YnIvPgorSWYgYSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlIGlzIGFscmVhZHkgY29tcGxldGVkLDx3YnIvPiBhbmQgdGhlIGNhbWVyYQorZGV2aWNlIGhhcyBpbXBsaWNpdGx5IGxvY2tlZCB0aGUgQUUgZm9yIHN1YnNlcXVlbnQgc3RpbGwgY2FwdHVyZSw8d2JyLz4gdGhlCitDQU5DRUwgdHJpZ2dlciB3aWxsIHVubG9jayB0aGUgQUUgYW5kIHJldHVybiB0byBpdHMgaW5pdGlhbCBBRSBzdGF0ZS48d2JyLz48L3A+Cis8cD5UaGUgcHJlY2FwdHVyZSBzZXF1ZW5jZSBzaG91bGQgYmUgdHJpZ2dlcmVkIGJlZm9yZSBzdGFydGluZyBhCitoaWdoLXF1YWxpdHkgc3RpbGwgY2FwdHVyZSBmb3IgZmluYWwgbWV0ZXJpbmcgZGVjaXNpb25zIHRvCitiZSBtYWRlLDx3YnIvPiBhbmQgZm9yIGZpcmluZyBwcmUtY2FwdHVyZSBmbGFzaCBwdWxzZXMgdG8gZXN0aW1hdGUKK3NjZW5lIGJyaWdodG5lc3MgYW5kIHJlcXVpcmVkIGZpbmFsIGNhcHR1cmUgZmxhc2ggcG93ZXIsPHdici8+IHdoZW4KK3RoZSBmbGFzaCBpcyBlbmFibGVkLjx3YnIvPjwvcD4KKzxwPk5vcm1hbGx5LDx3YnIvPiB0aGlzIGVudHJ5IHNob3VsZCBiZSBzZXQgdG8gU1RBUlQgZm9yIG9ubHkgYQorc2luZ2xlIHJlcXVlc3QsPHdici8+IGFuZCB0aGUgYXBwbGljYXRpb24gc2hvdWxkIHdhaXQgdW50aWwgdGhlCitzZXF1ZW5jZSBjb21wbGV0ZXMgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IG9uZS48d2JyLz48L3A+Cis8cD5XaGVuIGEgcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZSBpcyBmaW5pc2hlZCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UKK21heSBsb2NrIHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgaW50ZXJuYWxseSB0byBiZSBhYmxlIHRvIGFjY3VyYXRlbHkgZXhwb3NlIHRoZQorc3Vic2VxdWVudCBzdGlsbCBjYXB0dXJlIGltYWdlICg8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50PC9hPiA9PSBTVElMTF88d2JyLz5DQVBUVVJFPC9jb2RlPikuPHdici8+CitGb3IgdGhpcyBjYXNlLDx3YnIvPiB0aGUgQUUgbWF5IG5vdCByZXN1bWUgbm9ybWFsIHNjYW4gaWYgbm8gc3Vic2VxdWVudCBzdGlsbCBjYXB0dXJlIGlzCitzdWJtaXR0ZWQuPHdici8+IFRvIGVuc3VyZSB0aGF0IHRoZSBBRSByb3V0aW5lIHJlc3RhcnRzIG5vcm1hbCBzY2FuLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gc2hvdWxkCitzdWJtaXQgYSByZXF1ZXN0IHdpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+ID09IHRydWU8L2NvZGU+LDx3YnIvPiBmb2xsb3dlZCBieSBhIHJlcXVlc3QKK3dpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+ID09IGZhbHNlPC9jb2RlPiw8d2JyLz4gaWYgdGhlIGFwcGxpY2F0aW9uIGRlY2lkZXMgbm90IHRvIHN1Ym1pdCBhCitzdGlsbCBjYXB0dXJlIHJlcXVlc3QgYWZ0ZXIgdGhlIHByZWNhcHR1cmUgc2VxdWVuY2UgY29tcGxldGVzLjx3YnIvPiBBbHRlcm5hdGl2ZWx5LDx3YnIvPiBmb3IKK0FQSSBsZXZlbCAyMyBvciBuZXdlciBkZXZpY2VzLDx3YnIvPiB0aGUgQ0FOQ0VMIGNhbiBiZSB1c2VkIHRvIHVubG9jayB0aGUgY2FtZXJhIGRldmljZQoraW50ZXJuYWxseSBsb2NrZWQgQUUgaWYgdGhlIGFwcGxpY2F0aW9uIGRvZXNuJ3Qgc3VibWl0IGEgc3RpbGwgY2FwdHVyZSByZXF1ZXN0IGFmdGVyCit0aGUgQUUgcHJlY2FwdHVyZSB0cmlnZ2VyLjx3YnIvPiBOb3RlIHRoYXQsPHdici8+IHRoZSBDQU5DRUwgd2FzIGFkZGVkIGluIEFQSSBsZXZlbCAyMyw8d2JyLz4gYW5kIG11c3Qgbm90CitiZSB1c2VkIGluIGRldmljZXMgdGhhdCBoYXZlIGVhcmxpZXIgQVBJIGxldmVscy48d2JyLz48L3A+Cis8cD5UaGUgZXhhY3QgZWZmZWN0IG9mIGF1dG8tZXhwb3N1cmUgKEFFKSBwcmVjYXB0dXJlIHRyaWdnZXIKK2RlcGVuZHMgb24gdGhlIGN1cnJlbnQgQUUgbW9kZSBhbmQgc3RhdGU7IHNlZQorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlN0YXRlPC9hPiBmb3IgQUUgcHJlY2FwdHVyZSBzdGF0ZSB0cmFuc2l0aW9uCitkZXRhaWxzLjx3YnIvPjwvcD4KKzxwPk9uIExFR0FDWS1sZXZlbCBkZXZpY2VzLDx3YnIvPiB0aGUgcHJlY2FwdHVyZSB0cmlnZ2VyIGlzIG5vdCBzdXBwb3J0ZWQ7CitjYXB0dXJpbmcgYSBoaWdoLXJlc29sdXRpb24gSlBFRyBpbWFnZSB3aWxsIGF1dG9tYXRpY2FsbHkgdHJpZ2dlciBhCitwcmVjYXB0dXJlIHNlcXVlbmNlIGJlZm9yZSB0aGUgaGlnaC1yZXNvbHV0aW9uIGNhcHR1cmUsPHdici8+IGluY2x1ZGluZworcG90ZW50aWFsbHkgZmlyaW5nIGEgcHJlLWNhcHR1cmUgZmxhc2guPHdici8+PC9wPgorPHA+VXNpbmcgdGhlIHByZWNhcHR1cmUgdHJpZ2dlciBhbmQgdGhlIGF1dG8tZm9jdXMgdHJpZ2dlciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4KK3NpbXVsdGFuZW91c2x5IGlzIGFsbG93ZWQuPHdici8+IEhvd2V2ZXIsPHdici8+IHNpbmNlIHRoZXNlIHRyaWdnZXJzIG9mdGVuIHJlcXVpcmUgY29vcGVyYXRpb24gYmV0d2VlbgordGhlIGF1dG8tZm9jdXMgYW5kIGF1dG8tZXhwb3N1cmUgcm91dGluZXMgKGZvciBleGFtcGxlLDx3YnIvPiB0aGUgbWF5IG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgYQorZm9jdXMgc3dlZXApLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgZGVsYXkgYWN0aW5nIG9uIGEgbGF0ZXIgdHJpZ2dlciB1bnRpbCB0aGUgcHJldmlvdXMKK3RyaWdnZXIgaGFzIGJlZW4gZnVsbHkgaGFuZGxlZC48d2JyLz4gVGhpcyBtYXkgbGVhZCB0byBsb25nZXIgaW50ZXJ2YWxzIGJldHdlZW4gdGhlIHRyaWdnZXIgYW5kCitjaGFuZ2VzIHRvIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gaW5kaWNhdGluZyB0aGUgc3RhcnQgb2YgdGhlIHByZWNhcHR1cmUgc2VxdWVuY2UsPHdici8+IGZvcgorZXhhbXBsZS48d2JyLz48L3A+Cis8cD5JZiBib3RoIHRoZSBwcmVjYXB0dXJlIGFuZCB0aGUgYXV0by1mb2N1cyB0cmlnZ2VyIGFyZSBhY3RpdmF0ZWQgb24gdGhlIHNhbWUgcmVxdWVzdCw8d2JyLz4gdGhlbgordGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBjb21wbGV0ZSB0aGVtIGluIHRoZSBvcHRpbWFsIG9yZGVyIGZvciB0aGF0IGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbXVzdCBzdXBwb3J0IHRyaWdnZXJpbmcgdGhlIEFFIHByZWNhcHR1cmUgdHJpZ2dlciB3aGlsZSBhbiBBRiB0cmlnZ2VyIGlzIGFjdGl2ZQorKGFuZCB2aWNlIHZlcnNhKSw8d2JyLz4gb3IgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgQUYgdHJpZ2dlci48d2JyLz4gIEl0IGlzIGFjY2VwdGFibGUgZm9yIHRoZSBIQUwgdG8KK3RyZWF0IHRoZXNlIGFzIHR3byBjb25zZWN1dGl2ZSB0cmlnZ2Vycyw8d2JyLz4gZm9yIGV4YW1wbGUgaGFuZGxpbmcgdGhlIEFGIHRyaWdnZXIgYW5kIHRoZW4gdGhlCitBRSB0cmlnZ2VyLjx3YnIvPiAgT3IgdGhlIEhBTCBtYXkgY2hvb3NlIHRvIG9wdGltaXplIHRoZSBjYXNlIHdpdGggYm90aCB0cmlnZ2VycyBmaXJlZCBhdCBvbmNlLDx3YnIvPgordG8gbWluaW1pemUgdGhlIGxhdGVuY3kgZm9yIGNvbnZlcmdpbmcgYm90aCBmb2N1cyBhbmQgZXhwb3N1cmUvPHdici8+Zmxhc2ggdXNhZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVTdGF0ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JTkFDVElWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QUUgaXMgb2ZmIG9yIHJlY2VudGx5IHJlc2V0Ljx3YnIvPjwvcD4KKzxwPldoZW4gYSBjYW1lcmEgZGV2aWNlIGlzIG9wZW5lZCw8d2JyLz4gaXQgc3RhcnRzIGluCit0aGlzIHN0YXRlLjx3YnIvPiBUaGlzIGlzIGEgdHJhbnNpZW50IHN0YXRlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgc2tpcCByZXBvcnRpbmcKK3RoaXMgc3RhdGUgaW4gY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U0VBUkNISU5HPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRSBkb2Vzbid0IHlldCBoYXZlIGEgZ29vZCBzZXQgb2YgY29udHJvbCB2YWx1ZXMKK2ZvciB0aGUgY3VycmVudCBzY2VuZS48d2JyLz48L3A+Cis8cD5UaGlzIGlzIGEgdHJhbnNpZW50IHN0YXRlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgc2tpcAorcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4gY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OVkVSR0VEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRSBoYXMgYSBnb29kIHNldCBvZiBjb250cm9sIHZhbHVlcyBmb3IgdGhlCitjdXJyZW50IHNjZW5lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkxPQ0tFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QUUgaGFzIGJlZW4gbG9ja2VkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZMQVNIX1JFUVVJUkVEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRSBoYXMgYSBnb29kIHNldCBvZiBjb250cm9sIHZhbHVlcyw8d2JyLz4gYnV0IGZsYXNoCituZWVkcyB0byBiZSBmaXJlZCBmb3IgZ29vZCBxdWFsaXR5IHN0aWxsCitjYXB0dXJlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBSRUNBUFRVUkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFFIGhhcyBiZWVuIGFza2VkIHRvIGRvIGEgcHJlY2FwdHVyZSBzZXF1ZW5jZQorYW5kIGlzIGN1cnJlbnRseSBleGVjdXRpbmcgaXQuPHdici8+PC9wPgorPHA+UHJlY2FwdHVyZSBjYW4gYmUgdHJpZ2dlcmVkIHRocm91Z2ggc2V0dGluZworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4gdG8gU1RBUlQuPHdici8+IEN1cnJlbnRseQorYWN0aXZlIGFuZCBjb21wbGV0ZWQgKGlmIGl0IGNhdXNlcyBjYW1lcmEgZGV2aWNlIGludGVybmFsIEFFIGxvY2spIHByZWNhcHR1cmUKK21ldGVyaW5nIHNlcXVlbmNlIGNhbiBiZSBjYW5jZWxlZCB0aHJvdWdoIHNldHRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+IHRvIENBTkNFTC48d2JyLz48L3A+Cis8cD5PbmNlIFBSRUNBUFRVUkUgY29tcGxldGVzLDx3YnIvPiBBRSB3aWxsIHRyYW5zaXRpb24gdG8gQ09OVkVSR0VECitvciBGTEFTSF88d2JyLz5SRVFVSVJFRCBhcyBhcHByb3ByaWF0ZS48d2JyLz4gVGhpcyBpcyBhIHRyYW5zaWVudAorc3RhdGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBza2lwIHJlcG9ydGluZyB0aGlzIHN0YXRlIGluCitjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5DdXJyZW50IHN0YXRlIG9mIHRoZSBhdXRvLWV4cG9zdXJlIChBRSkgYWxnb3JpdGhtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlN3aXRjaGluZyBiZXR3ZWVuIG9yIGVuYWJsaW5nIEFFIG1vZGVzICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4pIGFsd2F5cworcmVzZXRzIHRoZSBBRSBzdGF0ZSB0byBJTkFDVElWRS48d2JyLz4gU2ltaWxhcmx5LDx3YnIvPiBzd2l0Y2hpbmcgYmV0d2VlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiw8d2JyLz4KK29yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlPC9hPiBpZiA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9PSBVU0VfPHdici8+U0NFTkVfPHdici8+TU9ERTwvY29kZT4gcmVzZXRzIGFsbAordGhlIGFsZ29yaXRobSBzdGF0ZXMgdG8gSU5BQ1RJVkUuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2UgY2FuIGRvIHNldmVyYWwgc3RhdGUgdHJhbnNpdGlvbnMgYmV0d2VlbiB0d28gcmVzdWx0cyw8d2JyLz4gaWYgaXQgaXMKK2FsbG93ZWQgYnkgdGhlIHN0YXRlIHRyYW5zaXRpb24gdGFibGUuPHdici8+IEZvciBleGFtcGxlOiBJTkFDVElWRSBtYXkgbmV2ZXIgYWN0dWFsbHkgYmUKK3NlZW4gaW4gYSByZXN1bHQuPHdici8+PC9wPgorPHA+VGhlIHN0YXRlIGluIHRoZSByZXN1bHQgaXMgdGhlIHN0YXRlIGZvciB0aGlzIGltYWdlIChpbiBzeW5jIHdpdGggdGhpcyBpbWFnZSk6IGlmCitBRSBzdGF0ZSBiZWNvbWVzIENPTlZFUkdFRCw8d2JyLz4gdGhlbiB0aGUgaW1hZ2UgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXN1bHQgc2hvdWxkCitiZSBnb29kIHRvIHVzZS48d2JyLz48L3A+Cis8cD5CZWxvdyBhcmUgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZXMgZm9yIGRpZmZlcmVudCBBRSBtb2Rlcy48d2JyLz48L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+U3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlRyYW5zaXRpb24gQ2F1c2U8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5ldyBTdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgYXV0byBleHBvc3VyZSBhbGdvcml0aG0gaXMgZGlzYWJsZWQ8L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+V2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgQUVfPHdici8+TU9ERV88d2JyLz5PTl88d2JyLz4qOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5TdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+VHJhbnNpdGlvbiBDYXVzZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+TmV3IFN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgQUUgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U0VBUkNISU5HPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgY2hhbmdpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+IGlzIE9OPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TRUFSQ0hJTkc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgZmluaXNoZXMgQUUgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Hb29kIHZhbHVlcyw8d2JyLz4gbm90IGNoYW5naW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+U0VBUkNISU5HPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGZpbmlzaGVzIEFFIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZMQVNIXzx3YnIvPlJFUVVJUkVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Db252ZXJnZWQgYnV0IHRvbyBkYXJrIHcvPHdici8+byBmbGFzaDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+IGlzIE9OPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgaW5pdGlhdGVzIEFFIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGNoYW5naW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gaXMgT048L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkZMQVNIXzx3YnIvPlJFUVVJUkVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGluaXRpYXRlcyBBRSBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TRUFSQ0hJTkc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBjaGFuZ2luZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkZMQVNIXzx3YnIvPlJFUVVJUkVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gaXMgT048L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+IGlzIE9GRjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U0VBUkNISU5HPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgbm90IGdvb2QgYWZ0ZXIgdW5sb2NrPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gaXMgT0ZGPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBnb29kIGFmdGVyIHVubG9jazwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+IGlzIE9GRjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RkxBU0hfPHdici8+UkVRVUlSRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkV4cG9zdXJlIGdvb2QsPHdici8+IGJ1dCB0b28gZGFyazwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBSRUNBUFRVUkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlNlcXVlbmNlIGRvbmUuPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPiBpcyBPRkY8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UmVhZHkgZm9yIGhpZ2gtcXVhbGl0eSBjYXB0dXJlPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UFJFQ0FQVFVSRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U2VxdWVuY2UgZG9uZS48d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+IGlzIE9OPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlJlYWR5IGZvciBoaWdoLXF1YWxpdHkgY2FwdHVyZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+YWVMb2NrIGlzIE9OIGFuZCBhZVByZWNhcHR1cmVUcmlnZ2VyIGlzIFNUQVJUPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlByZWNhcHR1cmUgdHJpZ2dlciBpcyBpZ25vcmVkIHdoZW4gQUUgaXMgYWxyZWFkeSBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmFlTG9jayBpcyBPTiBhbmQgYWVQcmVjYXB0dXJlVHJpZ2dlciBpcyBDQU5DRUw8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UHJlY2FwdHVyZSB0cmlnZ2VyIGlzIGlnbm9yZWQgd2hlbiBBRSBpcyBhbHJlYWR5IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueSBzdGF0ZSAoZXhjbHVkaW5nIExPQ0tFRCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+IGlzIFNUQVJUPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QUkVDQVBUVVJFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TdGFydCBBRSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55IHN0YXRlIChleGNsdWRpbmcgTE9DS0VEKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4gaXMgQ0FOQ0VMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q3VycmVudGx5IGFjdGl2ZSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlIGlzIGNhbmNlbGVkPC90ZD4KKzwvdHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzxwPkZvciB0aGUgYWJvdmUgdGFibGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBza2lwIHJlcG9ydGluZyBhbnkgc3RhdGUgY2hhbmdlcyB0aGF0IGhhcHBlbgord2l0aG91dCBhcHBsaWNhdGlvbiBpbnRlcnZlbnRpb24gKGkuPHdici8+ZS48d2JyLz4gbW9kZSBzd2l0Y2gsPHdici8+IHRyaWdnZXIsPHdici8+IGxvY2tpbmcpLjx3YnIvPiBBbnkgc3RhdGUgdGhhdAorY2FuIGJlIHNraXBwZWQgaW4gdGhhdCBtYW5uZXIgaXMgY2FsbGVkIGEgdHJhbnNpZW50IHN0YXRlLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBmb3IgYWJvdmUgQUUgbW9kZXMgKEFFXzx3YnIvPk1PREVfPHdici8+T05fPHdici8+KiksPHdici8+IGluIGFkZGl0aW9uIHRvIHRoZSBzdGF0ZSB0cmFuc2l0aW9ucworbGlzdGVkIGluIGFib3ZlIHRhYmxlLDx3YnIvPiBpdCBpcyBhbHNvIGxlZ2FsIGZvciB0aGUgY2FtZXJhIGRldmljZSB0byBza2lwIG9uZSBvciBtb3JlCit0cmFuc2llbnQgc3RhdGVzIGJldHdlZW4gdHdvIHJlc3VsdHMuPHdici8+IFNlZSBiZWxvdyB0YWJsZSBmb3IgZXhhbXBsZXM6PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPlN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5UcmFuc2l0aW9uIENhdXNlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5OZXcgU3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGZpbmlzaGVkIEFFIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGFyZSBhbHJlYWR5IGdvb2QsPHdici8+IHRyYW5zaWVudCBzdGF0ZXMgYXJlIHNraXBwZWQgYnkgY2FtZXJhIGRldmljZS48d2JyLz48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnkgc3RhdGUgKGV4Y2x1ZGluZyBMT0NLRUQpPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPiBpcyBTVEFSVCw8d2JyLz4gc2VxdWVuY2UgZG9uZTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RkxBU0hfPHdici8+UkVRVUlSRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNvbnZlcmdlZCBidXQgdG9vIGRhcmsgdy88d2JyLz5vIGZsYXNoIGFmdGVyIGEgcHJlY2FwdHVyZSBzZXF1ZW5jZSw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueSBzdGF0ZSAoZXhjbHVkaW5nIExPQ0tFRCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+IGlzIFNUQVJULDx3YnIvPiBzZXF1ZW5jZSBkb25lPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNvbnZlcmdlZCBhZnRlciBhIHByZWNhcHR1cmUgc2VxdWVuY2UsPHdici8+IHRyYW5zaWVudCBzdGF0ZXMgYXJlIHNraXBwZWQgYnkgY2FtZXJhIGRldmljZS48d2JyLz48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnkgc3RhdGUgKGV4Y2x1ZGluZyBMT0NLRUQpPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPiBpcyBDQU5DRUwsPHdici8+IGNvbnZlcmdlZDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RkxBU0hfPHdici8+UkVRVUlSRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNvbnZlcmdlZCBidXQgdG9vIGRhcmsgdy88d2JyLz5vIGZsYXNoIGFmdGVyIGEgcHJlY2FwdHVyZSBzZXF1ZW5jZSBpcyBjYW5jZWxlZCw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueSBzdGF0ZSAoZXhjbHVkaW5nIExPQ0tFRCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+IGlzIENBTkNFTCw8d2JyLz4gY29udmVyZ2VkPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNvbnZlcmdlZCBhZnRlciBhIHByZWNhcHR1cmUgc2VxdWVuY2VpcyBjYW5jZWxlZCw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBmaW5pc2hlZCBBRSBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GTEFTSF88d2JyLz5SRVFVSVJFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q29udmVyZ2VkIGJ1dCB0b28gZGFyayB3Lzx3YnIvPm8gZmxhc2ggYWZ0ZXIgYSBuZXcgc2Nhbiw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkZMQVNIXzx3YnIvPlJFUVVJUkVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGZpbmlzaGVkIEFFIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q29udmVyZ2VkIGFmdGVyIGEgbmV3IHNjYW4sPHdici8+IHRyYW5zaWVudCBzdGF0ZXMgYXJlIHNraXBwZWQgYnkgY2FtZXJhIGRldmljZS48d2JyLz48L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGF1dG8tZm9jdXMgcm91dGluZSBkb2VzIG5vdCBjb250cm9sIHRoZSBsZW5zOworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gaXMgY29udHJvbGxlZCBieSB0aGUKK2FwcGxpY2F0aW9uLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFVVE88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkJhc2ljIGF1dG9tYXRpYyBmb2N1cyBtb2RlLjx3YnIvPjwvcD4KKzxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGxlbnMgZG9lcyBub3QgbW92ZSB1bmxlc3MKK3RoZSBhdXRvZm9jdXMgdHJpZ2dlciBhY3Rpb24gaXMgY2FsbGVkLjx3YnIvPiBXaGVuIHRoYXQgdHJpZ2dlcgoraXMgYWN0aXZhdGVkLDx3YnIvPiBBRiB3aWxsIHRyYW5zaXRpb24gdG8gQUNUSVZFXzx3YnIvPlNDQU4sPHdici8+IHRoZW4gdG8KK3RoZSBvdXRjb21lIG9mIHRoZSBzY2FuIChGT0NVU0VEIG9yIE5PVF88d2JyLz5GT0NVU0VEKS48d2JyLz48L3A+Cis8cD5BbHdheXMgc3VwcG9ydGVkIGlmIGxlbnMgaXMgbm90IGZpeGVkIGZvY3VzLjx3YnIvPjwvcD4KKzxwPlVzZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gdG8gZGV0ZXJtaW5lIGlmIGxlbnMKK2lzIGZpeGVkLWZvY3VzLjx3YnIvPjwvcD4KKzxwPlRyaWdnZXJpbmcgQUZfPHdici8+Q0FOQ0VMIHJlc2V0cyB0aGUgbGVucyBwb3NpdGlvbiB0byBkZWZhdWx0LDx3YnIvPgorYW5kIHNldHMgdGhlIEFGIHN0YXRlIHRvIElOQUNUSVZFLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk1BQ1JPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5DbG9zZS11cCBmb2N1c2luZyBtb2RlLjx3YnIvPjwvcD4KKzxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGxlbnMgZG9lcyBub3QgbW92ZSB1bmxlc3MgdGhlCithdXRvZm9jdXMgdHJpZ2dlciBhY3Rpb24gaXMgY2FsbGVkLjx3YnIvPiBXaGVuIHRoYXQgdHJpZ2dlciBpcworYWN0aXZhdGVkLDx3YnIvPiBBRiB3aWxsIHRyYW5zaXRpb24gdG8gQUNUSVZFXzx3YnIvPlNDQU4sPHdici8+IHRoZW4gdG8KK3RoZSBvdXRjb21lIG9mIHRoZSBzY2FuIChGT0NVU0VEIG9yIE5PVF88d2JyLz5GT0NVU0VEKS48d2JyLz4gVGhpcworbW9kZSBpcyBvcHRpbWl6ZWQgZm9yIGZvY3VzaW5nIG9uIG9iamVjdHMgdmVyeSBjbG9zZSB0bwordGhlIGNhbWVyYS48d2JyLz48L3A+Cis8cD5XaGVuIHRoYXQgdHJpZ2dlciBpcyBhY3RpdmF0ZWQsPHdici8+IEFGIHdpbGwgdHJhbnNpdGlvbiB0bworQUNUSVZFXzx3YnIvPlNDQU4sPHdici8+IHRoZW4gdG8gdGhlIG91dGNvbWUgb2YgdGhlIHNjYW4gKEZPQ1VTRUQgb3IKK05PVF88d2JyLz5GT0NVU0VEKS48d2JyLz4gVHJpZ2dlcmluZyBjYW5jZWwgQUYgcmVzZXRzIHRoZSBsZW5zCitwb3NpdGlvbiB0byBkZWZhdWx0LDx3YnIvPiBhbmQgc2V0cyB0aGUgQUYgc3RhdGUgdG8KK0lOQUNUSVZFLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNPTlRJTlVPVVNfVklERU88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIEFGIGFsZ29yaXRobSBtb2RpZmllcyB0aGUgbGVucworcG9zaXRpb24gY29udGludWFsbHkgdG8gYXR0ZW1wdCB0byBwcm92aWRlIGEKK2NvbnN0YW50bHktaW4tZm9jdXMgaW1hZ2Ugc3RyZWFtLjx3YnIvPjwvcD4KKzxwPlRoZSBmb2N1c2luZyBiZWhhdmlvciBzaG91bGQgYmUgc3VpdGFibGUgZm9yIGdvb2QgcXVhbGl0eQordmlkZW8gcmVjb3JkaW5nOyB0eXBpY2FsbHkgdGhpcyBtZWFucyBzbG93ZXIgZm9jdXMKK21vdmVtZW50IGFuZCBubyBvdmVyc2hvb3RzLjx3YnIvPiBXaGVuIHRoZSBBRiB0cmlnZ2VyIGlzIG5vdAoraW52b2x2ZWQsPHdici8+IHRoZSBBRiBhbGdvcml0aG0gc2hvdWxkIHN0YXJ0IGluIElOQUNUSVZFIHN0YXRlLDx3YnIvPgorYW5kIHRoZW4gdHJhbnNpdGlvbiBpbnRvIFBBU1NJVkVfPHdici8+U0NBTiBhbmQgUEFTU0lWRV88d2JyLz5GT0NVU0VECitzdGF0ZXMgYXMgYXBwcm9wcmlhdGUuPHdici8+IFdoZW4gdGhlIEFGIHRyaWdnZXIgaXMgYWN0aXZhdGVkLDx3YnIvPgordGhlIGFsZ29yaXRobSBzaG91bGQgaW1tZWRpYXRlbHkgdHJhbnNpdGlvbiBpbnRvCitBRl88d2JyLz5GT0NVU0VEIG9yIEFGXzx3YnIvPk5PVF88d2JyLz5GT0NVU0VEIGFzIGFwcHJvcHJpYXRlLDx3YnIvPiBhbmQgbG9jayB0aGUKK2xlbnMgcG9zaXRpb24gdW50aWwgYSBjYW5jZWwgQUYgdHJpZ2dlciBpcyByZWNlaXZlZC48d2JyLz48L3A+Cis8cD5PbmNlIGNhbmNlbCBpcyByZWNlaXZlZCw8d2JyLz4gdGhlIGFsZ29yaXRobSBzaG91bGQgdHJhbnNpdGlvbgorYmFjayB0byBJTkFDVElWRSBhbmQgcmVzdW1lIHBhc3NpdmUgc2Nhbi48d2JyLz4gTm90ZSB0aGF0IHRoaXMKK2JlaGF2aW9yIGlzIG5vdCBpZGVudGljYWwgdG8gQ09OVElOVU9VU188d2JyLz5QSUNUVVJFLDx3YnIvPiBzaW5jZSBhbgorb25nb2luZyBQQVNTSVZFXzx3YnIvPlNDQU4gbXVzdCBpbW1lZGlhdGVseSBiZQorY2FuY2VsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OVElOVU9VU19QSUNUVVJFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JbiB0aGlzIG1vZGUsPHdici8+IHRoZSBBRiBhbGdvcml0aG0gbW9kaWZpZXMgdGhlIGxlbnMKK3Bvc2l0aW9uIGNvbnRpbnVhbGx5IHRvIGF0dGVtcHQgdG8gcHJvdmlkZSBhCitjb25zdGFudGx5LWluLWZvY3VzIGltYWdlIHN0cmVhbS48d2JyLz48L3A+Cis8cD5UaGUgZm9jdXNpbmcgYmVoYXZpb3Igc2hvdWxkIGJlIHN1aXRhYmxlIGZvciBzdGlsbCBpbWFnZQorY2FwdHVyZTsgdHlwaWNhbGx5IHRoaXMgbWVhbnMgZm9jdXNpbmcgYXMgZmFzdCBhcworcG9zc2libGUuPHdici8+IFdoZW4gdGhlIEFGIHRyaWdnZXIgaXMgbm90IGludm9sdmVkLDx3YnIvPiB0aGUgQUYKK2FsZ29yaXRobSBzaG91bGQgc3RhcnQgaW4gSU5BQ1RJVkUgc3RhdGUsPHdici8+IGFuZCB0aGVuCit0cmFuc2l0aW9uIGludG8gUEFTU0lWRV88d2JyLz5TQ0FOIGFuZCBQQVNTSVZFXzx3YnIvPkZPQ1VTRUQgc3RhdGVzIGFzCithcHByb3ByaWF0ZSBhcyBpdCBhdHRlbXB0cyB0byBtYWludGFpbiBmb2N1cy48d2JyLz4gV2hlbiB0aGUgQUYKK3RyaWdnZXIgaXMgYWN0aXZhdGVkLDx3YnIvPiB0aGUgYWxnb3JpdGhtIHNob3VsZCBmaW5pc2ggaXRzCitQQVNTSVZFXzx3YnIvPlNDQU4gaWYgYWN0aXZlLDx3YnIvPiBhbmQgdGhlbiB0cmFuc2l0aW9uIGludG8KK0FGXzx3YnIvPkZPQ1VTRUQgb3IgQUZfPHdici8+Tk9UXzx3YnIvPkZPQ1VTRUQgYXMgYXBwcm9wcmlhdGUsPHdici8+IGFuZCBsb2NrIHRoZQorbGVucyBwb3NpdGlvbiB1bnRpbCBhIGNhbmNlbCBBRiB0cmlnZ2VyIGlzIHJlY2VpdmVkLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhlIEFGIGNhbmNlbCB0cmlnZ2VyIGlzIGFjdGl2YXRlZCw8d2JyLz4gdGhlIGFsZ29yaXRobQorc2hvdWxkIHRyYW5zaXRpb24gYmFjayB0byBJTkFDVElWRSBhbmQgdGhlbiBhY3QgYXMgaWYgaXQKK2hhcyBqdXN0IGJlZW4gc3RhcnRlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5FRE9GPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5FeHRlbmRlZCBkZXB0aCBvZiBmaWVsZCAoZGlnaXRhbCBmb2N1cykgbW9kZS48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIHByb2R1Y2UgaW1hZ2VzIHdpdGggYW4gZXh0ZW5kZWQKK2RlcHRoIG9mIGZpZWxkIGF1dG9tYXRpY2FsbHk7IG5vIHNwZWNpYWwgZm9jdXNpbmcKK29wZXJhdGlvbnMgbmVlZCB0byBiZSBkb25lIGJlZm9yZSB0YWtpbmcgYSBwaWN0dXJlLjx3YnIvPjwvcD4KKzxwPkFGIHRyaWdnZXJzIGFyZSBpZ25vcmVkLDx3YnIvPiBhbmQgdGhlIEFGIHN0YXRlIHdpbGwgYWx3YXlzIGJlCitJTkFDVElWRS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGF1dG8tZm9jdXMgKEFGKSBpcyBjdXJyZW50bHkgZW5hYmxlZCw8d2JyLz4gYW5kIHdoYXQKK21vZGUgaXQgaXMgc2V0IHRvLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFmQXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPkF2YWlsYWJsZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Pbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9IEFVVE8gYW5kIHRoZSBsZW5zIGlzIG5vdCBmaXhlZCBmb2N1cworKGkuPHdici8+ZS48d2JyLz4gPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+ICZndDsgMDwvY29kZT4pLjx3YnIvPiBBbHNvIG5vdGUgdGhhdAord2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgT0ZGLDx3YnIvPiB0aGUgYmVoYXZpb3Igb2YgQUYgaXMgZGV2aWNlCitkZXBlbmRlbnQuPHdici8+IEl0IGlzIHJlY29tbWVuZGVkIHRvIGxvY2sgQUYgYnkgdXNpbmcgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+IGJlZm9yZQorc2V0dGluZyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gdG8gT0ZGLDx3YnIvPiBvciBzZXQgQUYgbW9kZSB0byBPRkYgd2hlbiBBRSBpcyBPRkYuPHdici8+PC9wPgorPHA+SWYgdGhlIGxlbnMgaXMgY29udHJvbGxlZCBieSB0aGUgY2FtZXJhIGRldmljZSBhdXRvLWZvY3VzIGFsZ29yaXRobSw8d2JyLz4KK3RoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcmVwb3J0IHRoZSBjdXJyZW50IEFGIHN0YXR1cyBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+CitpbiByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIGFmTW9kZSBpcyBBVVRPIG9yIE1BQ1JPLDx3YnIvPiB0aGUgbGVucyBtdXN0IG5vdCBtb3ZlIHVudGlsIGFuIEFGIHRyaWdnZXIgaXMgc2VudCBpbiBhCityZXF1ZXN0ICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4gPGNvZGU+PT08L2NvZGU+IFNUQVJUKS48d2JyLz4gQWZ0ZXIgYW4gQUYgdHJpZ2dlciw8d2JyLz4gdGhlIGFmU3RhdGUgd2lsbCBlbmQKK3VwIHdpdGggZWl0aGVyIEZPQ1VTRURfPHdici8+TE9DS0VEIG9yIE5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRCBzdGF0ZSAoc2VlCis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+IGZvciBkZXRhaWxlZCBzdGF0ZSB0cmFuc2l0aW9ucyksPHdici8+IHdoaWNoIGluZGljYXRlcyB0aGF0IHRoZSBsZW5zIGlzCitsb2NrZWQgYW5kIHdpbGwgbm90IG1vdmUuPHdici8+IElmIGNhbWVyYSBtb3ZlbWVudCAoZS48d2JyLz5nLjx3YnIvPiB0aWx0aW5nIGNhbWVyYSkgY2F1c2VzIHRoZSBsZW5zIHRvIG1vdmUKK2FmdGVyIHRoZSBsZW5zIGlzIGxvY2tlZCw8d2JyLz4gdGhlIEhBTCBtdXN0IGNvbXBlbnNhdGUgdGhpcyBtb3ZlbWVudCBhcHByb3ByaWF0ZWx5IHN1Y2ggdGhhdAordGhlIHNhbWUgZm9jYWwgcGxhbmUgcmVtYWlucyBpbiBmb2N1cy48d2JyLz48L3A+Cis8cD5XaGVuIGFmTW9kZSBpcyBvbmUgb2YgdGhlIGNvbnRpbnVvdXMgYXV0byBmb2N1cyBtb2Rlcyw8d2JyLz4gdGhlIEhBTCBpcyBmcmVlIHRvIHN0YXJ0IGEgQUYKK3NjYW4gd2hlbmV2ZXIgaXQncyBub3QgbG9ja2VkLjx3YnIvPiBXaGVuIHRoZSBsZW5zIGlzIGxvY2tlZCBhZnRlciBhbiBBRiB0cmlnZ2VyCisoc2VlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5TdGF0ZTwvYT4gZm9yIGRldGFpbGVkIHN0YXRlIHRyYW5zaXRpb25zKSw8d2JyLz4gdGhlIEhBTCBzaG91bGQgbWFpbnRhaW4gdGhlCitzYW1lIGxvY2sgYmVoYXZpb3IgYXMgYWJvdmUuPHdici8+PC9wPgorPHA+V2hlbiBhZk1vZGUgaXMgT0ZGLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gY29udHJvbHMgZm9jdXMgbWFudWFsbHkuPHdici8+IFRoZSBhY2N1cmFjeSBvZiB0aGUKK2ZvY3VzIGRpc3RhbmNlIGNvbnRyb2wgZGVwZW5kcyBvbiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbjwvYT4uPHdici8+CitIb3dldmVyLDx3YnIvPiB0aGUgbGVucyBtdXN0IG5vdCBtb3ZlIHJlZ2FyZGxlc3Mgb2YgdGhlIGNhbWVyYSBtb3ZlbWVudCBmb3IgYW55IGZvY3VzIGRpc3RhbmNlCittYW51YWwgY29udHJvbC48d2JyLz48L3A+Cis8cD5UbyBwdXQgdGhpcyBpbiBjb25jcmV0ZSB0ZXJtcyw8d2JyLz4gaWYgdGhlIGNhbWVyYSBoYXMgbGVucyBlbGVtZW50cyB3aGljaCBtYXkgbW92ZSBiYXNlZCBvbgorY2FtZXJhIG9yaWVudGF0aW9uIG9yIG1vdGlvbiAoZS48d2JyLz5nLjx3YnIvPiBkdWUgdG8gZ3Jhdml0eSksPHdici8+IHRoZW4gdGhlIEhBTCBtdXN0IGRyaXZlIHRoZSBsZW5zIHRvCityZW1haW4gaW4gYSBmaXhlZCBwb3NpdGlvbiBpbnZhcmlhbnQgdG8gdGhlIGNhbWVyYSdzIG9yaWVudGF0aW9uIG9yIG1vdGlvbiw8d2JyLz4gZm9yIGV4YW1wbGUsPHdici8+CitieSB1c2luZyBhY2NlbGVyb21ldGVyIG1lYXN1cmVtZW50cyBpbiB0aGUgbGVucyBjb250cm9sIGxvZ2ljLjx3YnIvPiBUaGlzIGlzIGEgdHlwaWNhbCBpc3N1ZQordGhhdCB3aWxsIGFyaXNlIG9uIGNhbWVyYSBtb2R1bGVzIHdpdGggb3Blbi1sb29wIFZDTXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlJlZ2lvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDUgeCBhcmVhX2NvdW50CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBtZXRlcmluZ1JlY3RhbmdsZV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIG1ldGVyaW5nIGFyZWFzIHRvIHVzZSBmb3IgYXV0by1mb2N1cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUGl4ZWwgY29vcmRpbmF0ZXMgd2l0aGluIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Q29vcmRpbmF0ZXMgbXVzdCBiZSBiZXR3ZWVuIDxjb2RlPlsoMCw8d2JyLz4wKSw8d2JyLz4gKHdpZHRoLDx3YnIvPiBoZWlnaHQpKTwvY29kZT4gb2YKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYXZhaWxhYmxlIGlmIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZjwvYT4gaXMgMC48d2JyLz4KK090aGVyd2lzZSB3aWxsIGFsd2F5cyBiZSBwcmVzZW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiBmb2N1cyBhcmVhcyBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZQorb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0FmIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkFmPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgY29vcmRpbmF0ZSBzeXN0ZW0gaXMgYmFzZWQgb24gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheSw8d2JyLz4KK3dpdGggKDAsPHdici8+MCkgYmVpbmcgdGhlIHRvcC1sZWZ0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+IGFuZAorKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz53aWR0aCAtIDEsPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+aGVpZ2h0IC0gMSkgYmVpbmcgdGhlCitib3R0b20tcmlnaHQgcGl4ZWwgaW4gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheS48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0IG11c3QgYmUgd2l0aGluIDxjb2RlPlswLDx3YnIvPiAxMDAwXTwvY29kZT4sPHdici8+IGFuZCByZXByZXNlbnRzIGEgd2VpZ2h0Citmb3IgZXZlcnkgcGl4ZWwgaW4gdGhlIGFyZWEuPHdici8+IFRoaXMgbWVhbnMgdGhhdCBhIGxhcmdlIG1ldGVyaW5nIGFyZWEKK3dpdGggdGhlIHNhbWUgd2VpZ2h0IGFzIGEgc21hbGxlciBhcmVhIHdpbGwgaGF2ZSBtb3JlIGVmZmVjdCBpbgordGhlIG1ldGVyaW5nIHJlc3VsdC48d2JyLz4gTWV0ZXJpbmcgYXJlYXMgY2FuIHBhcnRpYWxseSBvdmVybGFwIGFuZCB0aGUKK2NhbWVyYSBkZXZpY2Ugd2lsbCBhZGQgdGhlIHdlaWdodHMgaW4gdGhlIG92ZXJsYXAgcmVnaW9uLjx3YnIvPjwvcD4KKzxwPlRoZSB3ZWlnaHRzIGFyZSByZWxhdGl2ZSB0byB3ZWlnaHRzIG9mIG90aGVyIG1ldGVyaW5nIHJlZ2lvbnMsPHdici8+IHNvIGlmIG9ubHkgb25lIHJlZ2lvbgoraXMgdXNlZCw8d2JyLz4gYWxsIG5vbi16ZXJvIHdlaWdodHMgd2lsbCBoYXZlIHRoZSBzYW1lIGVmZmVjdC48d2JyLz4gQSByZWdpb24gd2l0aCAwIHdlaWdodCBpcworaWdub3JlZC48d2JyLz48L3A+Cis8cD5JZiBhbGwgcmVnaW9ucyBoYXZlIDAgd2VpZ2h0LDx3YnIvPiB0aGVuIG5vIHNwZWNpZmljIG1ldGVyaW5nIGFyZWEgbmVlZHMgdG8gYmUgdXNlZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+SWYgdGhlIG1ldGVyaW5nIHJlZ2lvbiBpcyBvdXRzaWRlIHRoZSB1c2VkIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPiByZXR1cm5lZCBpbgorY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgaWdub3JlIHRoZSBzZWN0aW9ucyBvdXRzaWRlIHRoZSBjcm9wCityZWdpb24gYW5kIG91dHB1dCBvbmx5IHRoZSBpbnRlcnNlY3Rpb24gcmVjdGFuZ2xlIGFzIHRoZSBtZXRlcmluZyByZWdpb24gaW4gdGhlIHJlc3VsdAorbWV0YWRhdGEuPHdici8+IElmIHRoZSByZWdpb24gaXMgZW50aXJlbHkgb3V0c2lkZSB0aGUgY3JvcCByZWdpb24sPHdici8+IGl0IHdpbGwgYmUgaWdub3JlZCBhbmQKK25vdCByZXBvcnRlZCBpbiB0aGUgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIEhBTCBsZXZlbCByZXByZXNlbnRhdGlvbiBvZiBNZXRlcmluZ1JlY3RhbmdsZVtdIGlzIGEKK2ludFs1ICogYXJlYV88d2JyLz5jb3VudF0uPHdici8+CitFdmVyeSBmaXZlIGVsZW1lbnRzIHJlcHJlc2VudCBhIG1ldGVyaW5nIHJlZ2lvbiBvZgorKHhtaW4sPHdici8+IHltaW4sPHdici8+IHhtYXgsPHdici8+IHltYXgsPHdici8+IHdlaWdodCkuPHdici8+CitUaGUgcmVjdGFuZ2xlIGlzIGRlZmluZWQgdG8gYmUgaW5jbHVzaXZlIG9uIHhtaW4gYW5kIHltaW4sPHdici8+IGJ1dAorZXhjbHVzaXZlIG9uIHhtYXggYW5kIHltYXguPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXIKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JRExFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgdHJpZ2dlciBpcyBpZGxlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNUQVJUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BdXRvZm9jdXMgd2lsbCB0cmlnZ2VyIG5vdy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DQU5DRUw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG9mb2N1cyB3aWxsIHJldHVybiB0byBpdHMgaW5pdGlhbAorc3RhdGUsPHdici8+IGFuZCBjYW5jZWwgYW55IGN1cnJlbnRseSBhY3RpdmUgdHJpZ2dlci48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgdHJpZ2dlciBhdXRvZm9jdXMgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgZW50cnkgaXMgbm9ybWFsbHkgc2V0IHRvIElETEUsPHdici8+IG9yIGlzIG5vdAoraW5jbHVkZWQgYXQgYWxsIGluIHRoZSByZXF1ZXN0IHNldHRpbmdzLjx3YnIvPjwvcD4KKzxwPldoZW4gaW5jbHVkZWQgYW5kIHNldCB0byBTVEFSVCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCB0cmlnZ2VyIHRoZQorYXV0b2ZvY3VzIGFsZ29yaXRobS48d2JyLz4gSWYgYXV0b2ZvY3VzIGlzIGRpc2FibGVkLDx3YnIvPiB0aGlzIHRyaWdnZXIgaGFzIG5vIGVmZmVjdC48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBDQU5DRUwsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgY2FuY2VsIGFueSBhY3RpdmUgdHJpZ2dlciw8d2JyLz4KK2FuZCByZXR1cm4gdG8gaXRzIGluaXRpYWwgQUYgc3RhdGUuPHdici8+PC9wPgorPHA+R2VuZXJhbGx5LDx3YnIvPiBhcHBsaWNhdGlvbnMgc2hvdWxkIHNldCB0aGlzIGVudHJ5IHRvIFNUQVJUIG9yIENBTkNFTCBmb3Igb25seSBhCitzaW5nbGUgY2FwdHVyZSw8d2JyLz4gYW5kIHRoZW4gcmV0dXJuIGl0IHRvIElETEUgKG9yIG5vdCBzZXQgYXQgYWxsKS48d2JyLz4gU3BlY2lmeWluZworU1RBUlQgZm9yIG11bHRpcGxlIGNhcHR1cmVzIGluIGEgcm93IG1lYW5zIHJlc3RhcnRpbmcgdGhlIEFGIG9wZXJhdGlvbiBvdmVyCithbmQgb3ZlciBhZ2Fpbi48d2JyLz48L3A+Cis8cD5TZWUgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlN0YXRlPC9hPiBmb3Igd2hhdCB0aGUgdHJpZ2dlciBtZWFucyBmb3IgZWFjaCBBRiBtb2RlLjx3YnIvPjwvcD4KKzxwPlVzaW5nIHRoZSBhdXRvZm9jdXMgdHJpZ2dlciBhbmQgdGhlIHByZWNhcHR1cmUgdHJpZ2dlciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPgorc2ltdWx0YW5lb3VzbHkgaXMgYWxsb3dlZC48d2JyLz4gSG93ZXZlciw8d2JyLz4gc2luY2UgdGhlc2UgdHJpZ2dlcnMgb2Z0ZW4gcmVxdWlyZSBjb29wZXJhdGlvbiBiZXR3ZWVuCit0aGUgYXV0by1mb2N1cyBhbmQgYXV0by1leHBvc3VyZSByb3V0aW5lcyAoZm9yIGV4YW1wbGUsPHdici8+IHRoZSBtYXkgbmVlZCB0byBiZSBlbmFibGVkIGZvciBhCitmb2N1cyBzd2VlcCksPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBkZWxheSBhY3Rpbmcgb24gYSBsYXRlciB0cmlnZ2VyIHVudGlsIHRoZSBwcmV2aW91cwordHJpZ2dlciBoYXMgYmVlbiBmdWxseSBoYW5kbGVkLjx3YnIvPiBUaGlzIG1heSBsZWFkIHRvIGxvbmdlciBpbnRlcnZhbHMgYmV0d2VlbiB0aGUgdHJpZ2dlciBhbmQKK2NoYW5nZXMgdG8gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlN0YXRlPC9hPiw8d2JyLz4gZm9yIGV4YW1wbGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIG11c3Qgc3VwcG9ydCB0cmlnZ2VyaW5nIHRoZSBBRiB0cmlnZ2VyIHdoaWxlIGFuIEFFIHByZWNhcHR1cmUgdHJpZ2dlciBpcyBhY3RpdmUKKyhhbmQgdmljZSB2ZXJzYSksPHdici8+IG9yIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIEFFIHRyaWdnZXIuPHdici8+ICBJdCBpcyBhY2NlcHRhYmxlIGZvciB0aGUgSEFMIHRvCit0cmVhdCB0aGVzZSBhcyB0d28gY29uc2VjdXRpdmUgdHJpZ2dlcnMsPHdici8+IGZvciBleGFtcGxlIGhhbmRsaW5nIHRoZSBBRiB0cmlnZ2VyIGFuZCB0aGVuIHRoZQorQUUgdHJpZ2dlci48d2JyLz4gIE9yIHRoZSBIQUwgbWF5IGNob29zZSB0byBvcHRpbWl6ZSB0aGUgY2FzZSB3aXRoIGJvdGggdHJpZ2dlcnMgZmlyZWQgYXQgb25jZSw8d2JyLz4KK3RvIG1pbmltaXplIHRoZSBsYXRlbmN5IGZvciBjb252ZXJnaW5nIGJvdGggZm9jdXMgYW5kIGV4cG9zdXJlLzx3YnIvPmZsYXNoIHVzYWdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmU3RhdGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JTkFDVElWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QUYgaXMgb2ZmIG9yIGhhcyBub3QgeWV0IHRyaWVkIHRvIHNjYW4vPHdici8+YmVlbiBhc2tlZAordG8gc2Nhbi48d2JyLz48L3A+Cis8cD5XaGVuIGEgY2FtZXJhIGRldmljZSBpcyBvcGVuZWQsPHdici8+IGl0IHN0YXJ0cyBpbiB0aGlzCitzdGF0ZS48d2JyLz4gVGhpcyBpcyBhIHRyYW5zaWVudCBzdGF0ZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5Citza2lwIHJlcG9ydGluZyB0aGlzIHN0YXRlIGluIGNhcHR1cmUKK3Jlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QQVNTSVZFX1NDQU48L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFGIGlzIGN1cnJlbnRseSBwZXJmb3JtaW5nIGFuIEFGIHNjYW4gaW5pdGlhdGVkIHRoZQorY2FtZXJhIGRldmljZSBpbiBhIGNvbnRpbnVvdXMgYXV0b2ZvY3VzIG1vZGUuPHdici8+PC9wPgorPHA+T25seSB1c2VkIGJ5IENPTlRJTlVPVVNfPHdici8+KiBBRiBtb2Rlcy48d2JyLz4gVGhpcyBpcyBhIHRyYW5zaWVudAorc3RhdGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBza2lwIHJlcG9ydGluZyB0aGlzIHN0YXRlIGluCitjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QQVNTSVZFX0ZPQ1VTRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFGIGN1cnJlbnRseSBiZWxpZXZlcyBpdCBpcyBpbiBmb2N1cyw8d2JyLz4gYnV0IG1heQorcmVzdGFydCBzY2FubmluZyBhdCBhbnkgdGltZS48d2JyLz48L3A+Cis8cD5Pbmx5IHVzZWQgYnkgQ09OVElOVU9VU188d2JyLz4qIEFGIG1vZGVzLjx3YnIvPiBUaGlzIGlzIGEgdHJhbnNpZW50CitzdGF0ZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IHNraXAgcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4KK2NhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFDVElWRV9TQ0FOPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRiBpcyBwZXJmb3JtaW5nIGFuIEFGIHNjYW4gYmVjYXVzZSBpdCB3YXMKK3RyaWdnZXJlZCBieSBBRiB0cmlnZ2VyLjx3YnIvPjwvcD4KKzxwPk9ubHkgdXNlZCBieSBBVVRPIG9yIE1BQ1JPIEFGIG1vZGVzLjx3YnIvPiBUaGlzIGlzIGEgdHJhbnNpZW50CitzdGF0ZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IHNraXAgcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4KK2NhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZPQ1VTRURfTE9DS0VEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRiBiZWxpZXZlcyBpdCBpcyBmb2N1c2VkIGNvcnJlY3RseSBhbmQgaGFzIGxvY2tlZAorZm9jdXMuPHdici8+PC9wPgorPHA+VGhpcyBzdGF0ZSBpcyByZWFjaGVkIG9ubHkgYWZ0ZXIgYW4gZXhwbGljaXQgU1RBUlQgQUYgdHJpZ2dlciBoYXMgYmVlbgorc2VudCAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+KSw8d2JyLz4gd2hlbiBnb29kIGZvY3VzIGhhcyBiZWVuIG9idGFpbmVkLjx3YnIvPjwvcD4KKzxwPlRoZSBsZW5zIHdpbGwgcmVtYWluIHN0YXRpb25hcnkgdW50aWwgdGhlIEFGIG1vZGUgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPikgaXMgY2hhbmdlZCBvcgorYSBuZXcgQUYgdHJpZ2dlciBpcyBzZW50IHRvIHRoZSBjYW1lcmEgZGV2aWNlICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4pLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk5PVF9GT0NVU0VEX0xPQ0tFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QUYgaGFzIGZhaWxlZCB0byBmb2N1cyBzdWNjZXNzZnVsbHkgYW5kIGhhcyBsb2NrZWQKK2ZvY3VzLjx3YnIvPjwvcD4KKzxwPlRoaXMgc3RhdGUgaXMgcmVhY2hlZCBvbmx5IGFmdGVyIGFuIGV4cGxpY2l0IFNUQVJUIEFGIHRyaWdnZXIgaGFzIGJlZW4KK3NlbnQgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPiksPHdici8+IHdoZW4gZ29vZCBmb2N1cyBjYW5ub3QgYmUgb2J0YWluZWQuPHdici8+PC9wPgorPHA+VGhlIGxlbnMgd2lsbCByZW1haW4gc3RhdGlvbmFyeSB1bnRpbCB0aGUgQUYgbW9kZSAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+KSBpcyBjaGFuZ2VkIG9yCithIG5ldyBBRiB0cmlnZ2VyIGlzIHNlbnQgdG8gdGhlIGNhbWVyYSBkZXZpY2UgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPikuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UEFTU0lWRV9VTkZPQ1VTRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFGIGZpbmlzaGVkIGEgcGFzc2l2ZSBzY2FuIHdpdGhvdXQgZmluZGluZyBmb2N1cyw8d2JyLz4KK2FuZCBtYXkgcmVzdGFydCBzY2FubmluZyBhdCBhbnkgdGltZS48d2JyLz48L3A+Cis8cD5Pbmx5IHVzZWQgYnkgQ09OVElOVU9VU188d2JyLz4qIEFGIG1vZGVzLjx3YnIvPiBUaGlzIGlzIGEgdHJhbnNpZW50IHN0YXRlLDx3YnIvPiB0aGUgY2FtZXJhCitkZXZpY2UgbWF5IHNraXAgcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4gY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPgorPHA+TEVHQUNZIGNhbWVyYSBkZXZpY2VzIGRvIG5vdCBzdXBwb3J0IHRoaXMgc3RhdGUuPHdici8+IFdoZW4gYSBwYXNzaXZlCitzY2FuIGhhcyBmaW5pc2hlZCw8d2JyLz4gaXQgd2lsbCBhbHdheXMgZ28gdG8gUEFTU0lWRV88d2JyLz5GT0NVU0VELjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkN1cnJlbnQgc3RhdGUgb2YgYXV0by1mb2N1cyAoQUYpIGFsZ29yaXRobS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Td2l0Y2hpbmcgYmV0d2VlbiBvciBlbmFibGluZyBBRiBtb2RlcyAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+KSBhbHdheXMKK3Jlc2V0cyB0aGUgQUYgc3RhdGUgdG8gSU5BQ1RJVkUuPHdici8+IFNpbWlsYXJseSw8d2JyLz4gc3dpdGNoaW5nIGJldHdlZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4sPHdici8+CitvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnNjZW5lPHdici8+TW9kZTwvYT4gaWYgPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gPT0gVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREU8L2NvZGU+IHJlc2V0cyBhbGwKK3RoZSBhbGdvcml0aG0gc3RhdGVzIHRvIElOQUNUSVZFLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIGNhbiBkbyBzZXZlcmFsIHN0YXRlIHRyYW5zaXRpb25zIGJldHdlZW4gdHdvIHJlc3VsdHMsPHdici8+IGlmIGl0IGlzCithbGxvd2VkIGJ5IHRoZSBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlLjx3YnIvPiBGb3IgZXhhbXBsZTogSU5BQ1RJVkUgbWF5IG5ldmVyIGFjdHVhbGx5IGJlCitzZWVuIGluIGEgcmVzdWx0Ljx3YnIvPjwvcD4KKzxwPlRoZSBzdGF0ZSBpbiB0aGUgcmVzdWx0IGlzIHRoZSBzdGF0ZSBmb3IgdGhpcyBpbWFnZSAoaW4gc3luYyB3aXRoIHRoaXMgaW1hZ2UpOiBpZgorQUYgc3RhdGUgYmVjb21lcyBGT0NVU0VELDx3YnIvPiB0aGVuIHRoZSBpbWFnZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlc3VsdCBzaG91bGQKK2JlIHNoYXJwLjx3YnIvPjwvcD4KKzxwPkJlbG93IGFyZSBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlcyBmb3IgZGlmZmVyZW50IEFGIG1vZGVzLjx3YnIvPjwvcD4KKzxwPldoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+IGlzIEFGXzx3YnIvPk1PREVfPHdici8+T0ZGIG9yIEFGXzx3YnIvPk1PREVfPHdici8+RURPRjo8L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+U3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlRyYW5zaXRpb24gQ2F1c2U8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5ldyBTdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk5ldmVyIGNoYW5nZXM8L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+V2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gaXMgQUZfPHdici8+TU9ERV88d2JyLz5BVVRPIG9yIEFGXzx3YnIvPk1PREVfPHdici8+TUFDUk86PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPlN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5UcmFuc2l0aW9uIENhdXNlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5OZXcgU3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BQ1RJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U3RhcnQgQUYgc3dlZXAsPHdici8+IExlbnMgbm93IG1vdmluZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFDVElWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRiBzd2VlcCBkb25lPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Rm9jdXNlZCw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+QUNUSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGIHN3ZWVwIGRvbmU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tm90IGZvY3VzZWQsPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFDVElWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5DQU5DRUw8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW5jZWwvPHdici8+cmVzZXQgQUYsPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5DQU5DRUw8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW5jZWwvPHdici8+cmVzZXQgQUY8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUNUSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlN0YXJ0IG5ldyBzd2VlcCw8d2JyLz4gTGVucyBub3cgbW92aW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5DQU5DRUw8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW5jZWwvPHdici8+cmVzZXQgQUY8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFDVElWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TdGFydCBuZXcgc3dlZXAsPHdici8+IExlbnMgbm93IG1vdmluZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueSBzdGF0ZTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TW9kZSBjaGFuZ2U8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+Rm9yIHRoZSBhYm92ZSB0YWJsZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IHNraXAgcmVwb3J0aW5nIGFueSBzdGF0ZSBjaGFuZ2VzIHRoYXQgaGFwcGVuCit3aXRob3V0IGFwcGxpY2F0aW9uIGludGVydmVudGlvbiAoaS48d2JyLz5lLjx3YnIvPiBtb2RlIHN3aXRjaCw8d2JyLz4gdHJpZ2dlciw8d2JyLz4gbG9ja2luZykuPHdici8+IEFueSBzdGF0ZSB0aGF0CitjYW4gYmUgc2tpcHBlZCBpbiB0aGF0IG1hbm5lciBpcyBjYWxsZWQgYSB0cmFuc2llbnQgc3RhdGUuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGZvciB0aGVzZSBBRiBtb2RlcyAoQUZfPHdici8+TU9ERV88d2JyLz5BVVRPIGFuZCBBRl88d2JyLz5NT0RFXzx3YnIvPk1BQ1JPKSw8d2JyLz4gaW4gYWRkaXRpb24gdG8gdGhlCitzdGF0ZSB0cmFuc2l0aW9ucyBsaXN0ZWQgaW4gYWJvdmUgdGFibGUsPHdici8+IGl0IGlzIGFsc28gbGVnYWwgZm9yIHRoZSBjYW1lcmEgZGV2aWNlIHRvIHNraXAKK29uZSBvciBtb3JlIHRyYW5zaWVudCBzdGF0ZXMgYmV0d2VlbiB0d28gcmVzdWx0cy48d2JyLz4gU2VlIGJlbG93IHRhYmxlIGZvciBleGFtcGxlczo8L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+U3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlRyYW5zaXRpb24gQ2F1c2U8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5ldyBTdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Gb2N1cyBpcyBhbHJlYWR5IGdvb2Qgb3IgZ29vZCBhZnRlciBhIHNjYW4sPHdici8+IGxlbnMgaXMgbm93IGxvY2tlZC48d2JyLz48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Gb2N1cyBmYWlsZWQgYWZ0ZXIgYSBzY2FuLDx3YnIvPiBsZW5zIGlzIG5vdyBsb2NrZWQuPHdici8+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Gb2N1cyBpcyBhbHJlYWR5IGdvb2Qgb3IgZ29vZCBhZnRlciBhIHNjYW4sPHdici8+IGxlbnMgaXMgbm93IGxvY2tlZC48d2JyLz48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Gb2N1cyBpcyBnb29kIGFmdGVyIGEgc2Nhbiw8d2JyLz4gbGVucyBpcyBub3QgbG9ja2VkLjx3YnIvPjwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5XaGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiBpcyBBRl88d2JyLz5NT0RFXzx3YnIvPkNPTlRJTlVPVVNfPHdici8+VklERU86PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPlN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5UcmFuc2l0aW9uIENhdXNlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5OZXcgU3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGluaXRpYXRlcyBuZXcgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TdGFydCBBRiBzY2FuLDx3YnIvPiBMZW5zIG5vdyBtb3Zpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRiBzdGF0ZSBxdWVyeSw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGNvbXBsZXRlcyBjdXJyZW50IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+Rk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RW5kIEFGIHNjYW4sPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBmYWlscyBjdXJyZW50IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+VU5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5FbmQgQUYgc2Nhbiw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SW1tZWRpYXRlIHRyYW5zaXRpb24sPHdici8+IGlmIGZvY3VzIGlzIGdvb2QuPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JbW1lZGlhdGUgdHJhbnNpdGlvbiw8d2JyLz4gaWYgZm9jdXMgaXMgYmFkLjx3YnIvPiBMZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPkNBTkNFTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlJlc2V0IGxlbnMgcG9zaXRpb24sPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+Rk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgbmV3IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U3RhcnQgQUYgc2Nhbiw8d2JyLz4gTGVucyBub3cgbW92aW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5VTkZPQ1VTRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgaW5pdGlhdGVzIG5ldyBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlN0YXJ0IEFGIHNjYW4sPHdici8+IExlbnMgbm93IG1vdmluZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+Rk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkltbWVkaWF0ZSB0cmFuc2l0aW9uLDx3YnIvPiBsZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlVORk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JbW1lZGlhdGUgdHJhbnNpdGlvbiw8d2JyLz4gbGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5ObyBlZmZlY3Q8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+Q0FOQ0VMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UmVzdGFydCBBRiBzY2FuPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk5vIGVmZmVjdDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+Q0FOQ0VMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UmVzdGFydCBBRiBzY2FuPC90ZD4KKzwvdHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzxwPldoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+IGlzIEFGXzx3YnIvPk1PREVfPHdici8+Q09OVElOVU9VU188d2JyLz5QSUNUVVJFOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5TdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+VHJhbnNpdGlvbiBDYXVzZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+TmV3IFN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgbmV3IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U3RhcnQgQUYgc2Nhbiw8d2JyLz4gTGVucyBub3cgbW92aW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUYgc3RhdGUgcXVlcnksPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBjb21wbGV0ZXMgY3VycmVudCBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPkZPQ1VTRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkVuZCBBRiBzY2FuLDx3YnIvPiBMZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgZmFpbHMgY3VycmVudCBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlVORk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RW5kIEFGIHNjYW4sPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkV2ZW50dWFsIHRyYW5zaXRpb24gb25jZSB0aGUgZm9jdXMgaXMgZ29vZC48d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkV2ZW50dWFsIHRyYW5zaXRpb24gaWYgY2Fubm90IGZpbmQgZm9jdXMuPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+Q0FOQ0VMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UmVzZXQgbGVucyBwb3NpdGlvbiw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGluaXRpYXRlcyBuZXcgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TdGFydCBBRiBzY2FuLDx3YnIvPiBMZW5zIG5vdyBtb3Zpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlVORk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgbmV3IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U3RhcnQgQUYgc2Nhbiw8d2JyLz4gTGVucyBub3cgbW92aW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SW1tZWRpYXRlIHRyYW5zLjx3YnIvPiBMZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlVORk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JbW1lZGlhdGUgdHJhbnMuPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tm8gZWZmZWN0PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPkNBTkNFTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlJlc3RhcnQgQUYgc2NhbjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5ObyBlZmZlY3Q8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPkNBTkNFTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlJlc3RhcnQgQUYgc2NhbjwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5XaGVuIHN3aXRjaCBiZXR3ZWVuIEFGXzx3YnIvPk1PREVfPHdici8+Q09OVElOVU9VU188d2JyLz4qIChDQUYgbW9kZXMpIGFuZCBBRl88d2JyLz5NT0RFXzx3YnIvPkFVVE8vPHdici8+QUZfPHdici8+TU9ERV88d2JyLz5NQUNSTworKEFVVE8gbW9kZXMpLDx3YnIvPiB0aGUgaW5pdGlhbCBJTkFDVElWRSBvciBQQVNTSVZFXzx3YnIvPlNDQU4gc3RhdGVzIG1heSBiZSBza2lwcGVkIGJ5IHRoZQorY2FtZXJhIGRldmljZS48d2JyLz4gV2hlbiBhIHRyaWdnZXIgaXMgaW5jbHVkZWQgaW4gYSBtb2RlIHN3aXRjaCByZXF1ZXN0LDx3YnIvPiB0aGUgdHJpZ2dlcgord2lsbCBiZSBldmFsdWF0ZWQgaW4gdGhlIGNvbnRleHQgb2YgdGhlIG5ldyBtb2RlIGluIHRoZSByZXF1ZXN0Ljx3YnIvPgorU2VlIGJlbG93IHRhYmxlIGZvciBleGFtcGxlczo8L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+U3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlRyYW5zaXRpb24gQ2F1c2U8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5ldyBTdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+YW55IHN0YXRlPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DQUYtLSZndDtBVVRPIG1vZGUgc3dpdGNoPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TW9kZSBzd2l0Y2ggd2l0aG91dCB0cmlnZ2VyLDx3YnIvPiBpbml0aWFsIHN0YXRlIG11c3QgYmUgSU5BQ1RJVkU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5hbnkgc3RhdGU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNBRi0tJmd0O0FVVE8gbW9kZSBzd2l0Y2ggd2l0aCBBRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj50cmlnZ2VyLXJlYWNoYWJsZSBzdGF0ZXMgZnJvbSBJTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TW9kZSBzd2l0Y2ggd2l0aCB0cmlnZ2VyLDx3YnIvPiBJTkFDVElWRSBpcyBza2lwcGVkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+YW55IHN0YXRlPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BVVRPLS0mZ3Q7Q0FGIG1vZGUgc3dpdGNoPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5wYXNzaXZlbHkgcmVhY2hhYmxlIHN0YXRlcyBmcm9tIElOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Nb2RlIHN3aXRjaCB3aXRob3V0IHRyaWdnZXIsPHdici8+IHBhc3NpdmUgdHJhbnNpZW50IHN0YXRlIGlzIHNraXBwZWQ8L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXJJZCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPHdici8+SWQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBJRCBzZW50IHdpdGggdGhlIGxhdGVzdAorQ0FNRVJBMl88d2JyLz5UUklHR0VSXzx3YnIvPkFVVE9GT0NVUyBjYWxsPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+TXVzdCBiZSAwIGlmIG5vIENBTUVSQTJfPHdici8+VFJJR0dFUl88d2JyLz5BVVRPRk9DVVMgdHJpZ2dlcgorcmVjZWl2ZWQgeWV0IGJ5IEhBTC48d2JyLz4gQWx3YXlzIHVwZGF0ZWQgZXZlbiBpZiBBRiBhbGdvcml0aG0KK2lnbm9yZXMgdGhlIHRyaWdnZXI8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2sKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXV0by13aGl0ZSBiYWxhbmNlIGxvY2sgaXMgZGlzYWJsZWQ7IHRoZSBBV0IKK2FsZ29yaXRobSBpcyBmcmVlIHRvIHVwZGF0ZSBpdHMgcGFyYW1ldGVycyBpZiBpbiBBVVRPCittb2RlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BdXRvLXdoaXRlIGJhbGFuY2UgbG9jayBpcyBlbmFibGVkOyB0aGUgQVdCCithbGdvcml0aG0gd2lsbCBub3QgdXBkYXRlIGl0cyBwYXJhbWV0ZXJzIHdoaWxlIHRoZSBsb2NrCitpcyBhY3RpdmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgaXMgY3VycmVudGx5IGxvY2tlZCB0byBpdHMKK2xhdGVzdCBjYWxjdWxhdGVkIHZhbHVlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IChPTiksPHdici8+IHRoZSBBV0IgYWxnb3JpdGhtIGlzIGxvY2tlZCB0byBpdHMgbGF0ZXN0IHBhcmFtZXRlcnMsPHdici8+CithbmQgd2lsbCBub3QgY2hhbmdlIGNvbG9yIGJhbGFuY2Ugc2V0dGluZ3MgdW50aWwgdGhlIGxvY2sgaXMgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiAoT0ZGKS48d2JyLz48L3A+Cis8cD5TaW5jZSB0aGUgY2FtZXJhIGRldmljZSBoYXMgYSBwaXBlbGluZSBvZiBpbi1mbGlnaHQgcmVxdWVzdHMsPHdici8+IHRoZSBzZXR0aW5ncyB0aGF0CitnZXQgbG9ja2VkIGRvIG5vdCBuZWNlc3NhcmlseSBjb3JyZXNwb25kIHRvIHRoZSBzZXR0aW5ncyB0aGF0IHdlcmUgcHJlc2VudCBpbiB0aGUKK2xhdGVzdCBjYXB0dXJlIHJlc3VsdCByZWNlaXZlZCBmcm9tIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBzaW5jZSBhZGRpdGlvbmFsIGNhcHR1cmVzCithbmQgQVdCIHVwZGF0ZXMgbWF5IGhhdmUgb2NjdXJyZWQgZXZlbiBiZWZvcmUgdGhlIHJlc3VsdCB3YXMgc2VudCBvdXQuPHdici8+IElmIGFuCithcHBsaWNhdGlvbiBpcyBzd2l0Y2hpbmcgYmV0d2VlbiBhdXRvbWF0aWMgYW5kIG1hbnVhbCBjb250cm9sIGFuZCB3aXNoZXMgdG8gZWxpbWluYXRlCithbnkgZmxpY2tlciBkdXJpbmcgdGhlIHN3aXRjaCw8d2JyLz4gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmUgaXMgcmVjb21tZW5kZWQ6PC9wPgorPG9sPgorPGxpPlN0YXJ0aW5nIGluIGF1dG8tQVdCIG1vZGU6PC9saT4KKzxsaT5Mb2NrIEFXQjwvbGk+Cis8bGk+V2FpdCBmb3IgdGhlIGZpcnN0IHJlc3VsdCB0byBiZSBvdXRwdXQgdGhhdCBoYXMgdGhlIEFXQiBsb2NrZWQ8L2xpPgorPGxpPkNvcHkgQVdCIHNldHRpbmdzIGZyb20gdGhhdCByZXN1bHQgaW50byBhIHJlcXVlc3QsPHdici8+IHNldCB0aGUgcmVxdWVzdCB0byBtYW51YWwgQVdCPC9saT4KKzxsaT5TdWJtaXQgdGhlIGNhcHR1cmUgcmVxdWVzdCw8d2JyLz4gcHJvY2VlZCB0byBydW4gbWFudWFsIEFXQiBhcyBkZXNpcmVkLjx3YnIvPjwvbGk+Cis8L29sPgorPHA+Tm90ZSB0aGF0IEFXQiBsb2NrIGlzIG9ubHkgbWVhbmluZ2Z1bCB3aGVuCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiBpcyBpbiB0aGUgQVVUTyBtb2RlOyBpbiBvdGhlciBtb2Rlcyw8d2JyLz4KK0FXQiBpcyBhbHJlYWR5IGZpeGVkIHRvIGEgc3BlY2lmaWMgc2V0dGluZy48d2JyLz48L3A+Cis8cD5Tb21lIExFR0FDWSBkZXZpY2VzIG1heSBub3Qgc3VwcG9ydCBPTjsgdGhlIHZhbHVlIGlzIHRoZW4gb3ZlcnJpZGRlbiB0byBPRkYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbi1zZWxlY3RlZCBjb2xvciB0cmFuc2Zvcm0gbWF0cml4CisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPikgYW5kIGdhaW5zCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4pIGFyZSB1c2VkIGJ5IHRoZSBjYW1lcmEKK2RldmljZSBmb3IgbWFudWFsIHdoaXRlIGJhbGFuY2UgY29udHJvbC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BVVRPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGFjdGl2ZS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SU5DQU5ERVNDRU5UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyBpbmNhbmRlc2NlbnQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5XaGlsZSB0aGUgZXhhY3Qgd2hpdGUgYmFsYW5jZSB0cmFuc2Zvcm1zIGFyZSB1cCB0byB0aGUKK2NhbWVyYSBkZXZpY2UsPHdici8+IHRoZXkgd2lsbCBhcHByb3hpbWF0ZWx5IG1hdGNoIHRoZSBDSUUKK3N0YW5kYXJkIGlsbHVtaW5hbnQgQS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkxVT1JFU0NFTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIGZsdW9yZXNjZW50IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+V2hpbGUgdGhlIGV4YWN0IHdoaXRlIGJhbGFuY2UgdHJhbnNmb3JtcyBhcmUgdXAgdG8gdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGV5IHdpbGwgYXBwcm94aW1hdGVseSBtYXRjaCB0aGUgQ0lFCitzdGFuZGFyZCBpbGx1bWluYW50IEYyLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5XQVJNX0ZMVU9SRVNDRU5UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyB3YXJtIGZsdW9yZXNjZW50IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+V2hpbGUgdGhlIGV4YWN0IHdoaXRlIGJhbGFuY2UgdHJhbnNmb3JtcyBhcmUgdXAgdG8gdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGV5IHdpbGwgYXBwcm94aW1hdGVseSBtYXRjaCB0aGUgQ0lFCitzdGFuZGFyZCBpbGx1bWluYW50IEY0Ljx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5EQVlMSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgZGF5bGlnaHQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5XaGlsZSB0aGUgZXhhY3Qgd2hpdGUgYmFsYW5jZSB0cmFuc2Zvcm1zIGFyZSB1cCB0byB0aGUKK2NhbWVyYSBkZXZpY2UsPHdici8+IHRoZXkgd2lsbCBhcHByb3hpbWF0ZWx5IG1hdGNoIHRoZSBDSUUKK3N0YW5kYXJkIGlsbHVtaW5hbnQgRDY1Ljx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DTE9VRFlfREFZTElHSFQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIGNsb3VkeSBkYXlsaWdodCBsaWdodCBhcyB0aGUgYXNzdW1lZCBzY2VuZQoraWxsdW1pbmF0aW9uIGZvciB3aGl0ZSBiYWxhbmNlLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UV0lMSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgdHdpbGlnaHQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U0hBREU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIHNoYWRlIGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgYXV0by13aGl0ZSBiYWxhbmNlIChBV0IpIGlzIGN1cnJlbnRseSBzZXR0aW5nIHRoZSBjb2xvcgordHJhbnNmb3JtIGZpZWxkcyw8d2JyLz4gYW5kIHdoYXQgaXRzIGlsbHVtaW5hdGlvbiB0YXJnZXQKK2lzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF3YkF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+QXZhaWxhYmxlPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiBpcyBBVVRPLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIHRoZSBPTiBtb2RlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZQorcm91dGluZSBpcyBlbmFibGVkLDx3YnIvPiBvdmVycmlkaW5nIHRoZSBhcHBsaWNhdGlvbidzIHNlbGVjdGVkCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPi48d2JyLz4gTm90ZSB0aGF0IHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+CitpcyBPRkYsPHdici8+IHRoZSBiZWhhdmlvciBvZiBBV0IgaXMgZGV2aWNlIGRlcGVuZGVudC48d2JyLz4gSXQgaXMgcmVjb21tZW5lZCB0bworYWxzbyBzZXQgQVdCIG1vZGUgdG8gT0ZGIG9yIGxvY2sgQVdCIGJ5IHVzaW5nIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+IGJlZm9yZQorc2V0dGluZyBBRSBtb2RlIHRvIE9GRi48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byB0aGUgT0ZGIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlCityb3V0aW5lIGlzIGRpc2FibGVkLjx3YnIvPiBUaGUgYXBwbGljYXRpb24gbWFudWFsbHkgY29udHJvbHMgdGhlIHdoaXRlCitiYWxhbmNlIGJ5IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+Ljx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIGFueSBvdGhlciBtb2Rlcyw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlCitiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlIHVzZXMgZWFjaAorcGFydGljdWxhciBpbGx1bWluYXRpb24gdGFyZ2V0IGZvciB3aGl0ZSBiYWxhbmNlCithZGp1c3RtZW50Ljx3YnIvPiBUaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4gYXJlIGlnbm9yZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5SZWdpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA1IHggYXJlYV9jb3VudAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgbWV0ZXJpbmdSZWN0YW5nbGVdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBtZXRlcmluZyBhcmVhcyB0byB1c2UgZm9yIGF1dG8td2hpdGUtYmFsYW5jZSBpbGx1bWluYW50Citlc3RpbWF0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBQaXhlbCBjb29yZGluYXRlcyB3aXRoaW4gYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Db29yZGluYXRlcyBtdXN0IGJlIGJldHdlZW4gPGNvZGU+WygwLDx3YnIvPjApLDx3YnIvPiAod2lkdGgsPHdici8+IGhlaWdodCkpPC9jb2RlPiBvZgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5vdCBhdmFpbGFibGUgaWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0F3YiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5Bd2I8L2E+IGlzIDAuPHdici8+CitPdGhlcndpc2Ugd2lsbCBhbHdheXMgYmUgcHJlc2VudC48d2JyLz48L3A+Cis8cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgcmVnaW9ucyBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZQorb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0F3YiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5Bd2I8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoZSBjb29yZGluYXRlIHN5c3RlbSBpcyBiYXNlZCBvbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPgord2l0aCAoMCw8d2JyLz4wKSBiZWluZyB0aGUgdG9wLWxlZnQgcGl4ZWwgaW4gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheSw8d2JyLz4gYW5kCisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPndpZHRoIC0gMSw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz5oZWlnaHQgLSAxKSBiZWluZyB0aGUKK2JvdHRvbS1yaWdodCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5Ljx3YnIvPjwvcD4KKzxwPlRoZSB3ZWlnaHQgbXVzdCByYW5nZSBmcm9tIDAgdG8gMTAwMCw8d2JyLz4gYW5kIHJlcHJlc2VudHMgYSB3ZWlnaHQKK2ZvciBldmVyeSBwaXhlbCBpbiB0aGUgYXJlYS48d2JyLz4gVGhpcyBtZWFucyB0aGF0IGEgbGFyZ2UgbWV0ZXJpbmcgYXJlYQord2l0aCB0aGUgc2FtZSB3ZWlnaHQgYXMgYSBzbWFsbGVyIGFyZWEgd2lsbCBoYXZlIG1vcmUgZWZmZWN0IGluCit0aGUgbWV0ZXJpbmcgcmVzdWx0Ljx3YnIvPiBNZXRlcmluZyBhcmVhcyBjYW4gcGFydGlhbGx5IG92ZXJsYXAgYW5kIHRoZQorY2FtZXJhIGRldmljZSB3aWxsIGFkZCB0aGUgd2VpZ2h0cyBpbiB0aGUgb3ZlcmxhcCByZWdpb24uPHdici8+PC9wPgorPHA+VGhlIHdlaWdodHMgYXJlIHJlbGF0aXZlIHRvIHdlaWdodHMgb2Ygb3RoZXIgd2hpdGUgYmFsYW5jZSBtZXRlcmluZyByZWdpb25zLDx3YnIvPiBzbyBpZgorb25seSBvbmUgcmVnaW9uIGlzIHVzZWQsPHdici8+IGFsbCBub24temVybyB3ZWlnaHRzIHdpbGwgaGF2ZSB0aGUgc2FtZSBlZmZlY3QuPHdici8+IEEgcmVnaW9uIHdpdGgKKzAgd2VpZ2h0IGlzIGlnbm9yZWQuPHdici8+PC9wPgorPHA+SWYgYWxsIHJlZ2lvbnMgaGF2ZSAwIHdlaWdodCw8d2JyLz4gdGhlbiBubyBzcGVjaWZpYyBtZXRlcmluZyBhcmVhIG5lZWRzIHRvIGJlIHVzZWQgYnkgdGhlCitjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPklmIHRoZSBtZXRlcmluZyByZWdpb24gaXMgb3V0c2lkZSB0aGUgdXNlZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4gcmV0dXJuZWQgaW4KK2NhcHR1cmUgcmVzdWx0IG1ldGFkYXRhLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGlnbm9yZSB0aGUgc2VjdGlvbnMgb3V0c2lkZSB0aGUgY3JvcAorcmVnaW9uIGFuZCBvdXRwdXQgb25seSB0aGUgaW50ZXJzZWN0aW9uIHJlY3RhbmdsZSBhcyB0aGUgbWV0ZXJpbmcgcmVnaW9uIGluIHRoZSByZXN1bHQKK21ldGFkYXRhLjx3YnIvPiAgSWYgdGhlIHJlZ2lvbiBpcyBlbnRpcmVseSBvdXRzaWRlIHRoZSBjcm9wIHJlZ2lvbiw8d2JyLz4gaXQgd2lsbCBiZSBpZ25vcmVkIGFuZAorbm90IHJlcG9ydGVkIGluIHRoZSByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIGxldmVsIHJlcHJlc2VudGF0aW9uIG9mIE1ldGVyaW5nUmVjdGFuZ2xlW10gaXMgYQoraW50WzUgKiBhcmVhXzx3YnIvPmNvdW50XS48d2JyLz4KK0V2ZXJ5IGZpdmUgZWxlbWVudHMgcmVwcmVzZW50IGEgbWV0ZXJpbmcgcmVnaW9uIG9mCisoeG1pbiw8d2JyLz4geW1pbiw8d2JyLz4geG1heCw8d2JyLz4geW1heCw8d2JyLz4gd2VpZ2h0KS48d2JyLz4KK1RoZSByZWN0YW5nbGUgaXMgZGVmaW5lZCB0byBiZSBpbmNsdXNpdmUgb24geG1pbiBhbmQgeW1pbiw8d2JyLz4gYnV0CitleGNsdXNpdmUgb24geG1heCBhbmQgeW1heC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q1VTVE9NPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgZ29hbCBvZiB0aGlzIHJlcXVlc3QgZG9lc24ndCBmYWxsIGludG8gdGhlIG90aGVyCitjYXRlZ29yaWVzLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB3aWxsIGRlZmF1bHQgdG8gcHJldmlldy1saWtlCitiZWhhdmlvci48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QUkVWSUVXPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIGEgcHJldmlldy1saWtlIHVzZSBjYXNlLjx3YnIvPjwvcD4KKzxwPlRoZSBwcmVjYXB0dXJlIHRyaWdnZXIgbWF5IGJlIHVzZWQgdG8gc3RhcnQgb2ZmIGEgbWV0ZXJpbmcKK3cvPHdici8+Zmxhc2ggc2VxdWVuY2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RJTExfQ0FQVFVSRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyByZXF1ZXN0IGlzIGZvciBhIHN0aWxsIGNhcHR1cmUtdHlwZQordXNlIGNhc2UuPHdici8+PC9wPgorPHA+SWYgdGhlIGZsYXNoIHVuaXQgaXMgdW5kZXIgYXV0b21hdGljIGNvbnRyb2wsPHdici8+IGl0IG1heSBmaXJlIGFzIG5lZWRlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5WSURFT19SRUNPUkQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgcmVxdWVzdCBpcyBmb3IgYSB2aWRlbyByZWNvcmRpbmcKK3VzZSBjYXNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlZJREVPX1NOQVBTSE9UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIGEgdmlkZW8gc25hcHNob3QgKHN0aWxsCitpbWFnZSB3aGlsZSByZWNvcmRpbmcgdmlkZW8pIHVzZSBjYXNlLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIHNob3VsZCB0YWtlIHRoZSBoaWdoZXN0LXF1YWxpdHkgaW1hZ2UKK3Bvc3NpYmxlIChnaXZlbiB0aGUgb3RoZXIgc2V0dGluZ3MpIHdpdGhvdXQgZGlzcnVwdGluZyB0aGUKK2ZyYW1lIHJhdGUgb2YgdmlkZW8gcmVjb3JkaW5nLjx3YnIvPiAgPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+WkVST19TSFVUVEVSX0xBRzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyByZXF1ZXN0IGlzIGZvciBhIFpTTCB1c2VjYXNlOyB0aGUKK2FwcGxpY2F0aW9uIHdpbGwgc3RyZWFtIGZ1bGwtcmVzb2x1dGlvbiBpbWFnZXMgYW5kCityZXByb2Nlc3Mgb25lIG9yIHNldmVyYWwgbGF0ZXIgZm9yIGEgZmluYWwKK2NhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TUFOVUFMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIG1hbnVhbCBjYXB0dXJlIHVzZSBjYXNlIHdoZXJlCit0aGUgYXBwbGljYXRpb25zIHdhbnQgdG8gZGlyZWN0bHkgY29udHJvbCB0aGUgY2FwdHVyZSBwYXJhbWV0ZXJzLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gbWF5IHdpc2ggdG8gbWFudWFsbHkgY29udHJvbAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4sPHdici8+IGV0Yy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5JbmZvcm1hdGlvbiB0byB0aGUgY2FtZXJhIGRldmljZSAzQSAoYXV0by1leHBvc3VyZSw8d2JyLz4KK2F1dG8tZm9jdXMsPHdici8+IGF1dG8td2hpdGUgYmFsYW5jZSkgcm91dGluZXMgYWJvdXQgdGhlIHB1cnBvc2UKK29mIHRoaXMgY2FwdHVyZSw8d2JyLz4gdG8gaGVscCB0aGUgY2FtZXJhIGRldmljZSB0byBkZWNpZGUgb3B0aW1hbCAzQQorc3RyYXRlZ3kuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgKGV4Y2VwdCBmb3IgTUFOVUFMKSBpcyBvbmx5IGVmZmVjdGl2ZSBpZgorPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gIT0gT0ZGPC9jb2RlPiBhbmQgYW55IDNBIHJvdXRpbmUgaXMgYWN0aXZlLjx3YnIvPjwvcD4KKzxwPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgd2lsbCBiZSBzdXBwb3J0ZWQgaWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPgorY29udGFpbnMgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORy48d2JyLz4gTUFOVUFMIHdpbGwgYmUgc3VwcG9ydGVkIGlmCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zIE1BTlVBTF88d2JyLz5TRU5TT1IuPHdici8+IE90aGVyIGludGVudCB2YWx1ZXMgYXJlCithbHdheXMgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYXdiU3RhdGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPlN0YXRlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklOQUNUSVZFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BV0IgaXMgbm90IGluIGF1dG8gbW9kZSw8d2JyLz4gb3IgaGFzIG5vdCB5ZXQgc3RhcnRlZCBtZXRlcmluZy48d2JyLz48L3A+Cis8cD5XaGVuIGEgY2FtZXJhIGRldmljZSBpcyBvcGVuZWQsPHdici8+IGl0IHN0YXJ0cyBpbiB0aGlzCitzdGF0ZS48d2JyLz4gVGhpcyBpcyBhIHRyYW5zaWVudCBzdGF0ZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5Citza2lwIHJlcG9ydGluZyB0aGlzIHN0YXRlIGluIGNhcHR1cmUKK3Jlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TRUFSQ0hJTkc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFXQiBkb2Vzbid0IHlldCBoYXZlIGEgZ29vZCBzZXQgb2YgY29udHJvbAordmFsdWVzIGZvciB0aGUgY3VycmVudCBzY2VuZS48d2JyLz48L3A+Cis8cD5UaGlzIGlzIGEgdHJhbnNpZW50IHN0YXRlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZQorbWF5IHNraXAgcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4gY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OVkVSR0VEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BV0IgaGFzIGEgZ29vZCBzZXQgb2YgY29udHJvbCB2YWx1ZXMgZm9yIHRoZQorY3VycmVudCBzY2VuZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5MT0NLRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFXQiBoYXMgYmVlbiBsb2NrZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q3VycmVudCBzdGF0ZSBvZiBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgYWxnb3JpdGhtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlN3aXRjaGluZyBiZXR3ZWVuIG9yIGVuYWJsaW5nIEFXQiBtb2RlcyAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4pIGFsd2F5cworcmVzZXRzIHRoZSBBV0Igc3RhdGUgdG8gSU5BQ1RJVkUuPHdici8+IFNpbWlsYXJseSw8d2JyLz4gc3dpdGNoaW5nIGJldHdlZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4sPHdici8+CitvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnNjZW5lPHdici8+TW9kZTwvYT4gaWYgPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gPT0gVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREU8L2NvZGU+IHJlc2V0cyBhbGwKK3RoZSBhbGdvcml0aG0gc3RhdGVzIHRvIElOQUNUSVZFLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIGNhbiBkbyBzZXZlcmFsIHN0YXRlIHRyYW5zaXRpb25zIGJldHdlZW4gdHdvIHJlc3VsdHMsPHdici8+IGlmIGl0IGlzCithbGxvd2VkIGJ5IHRoZSBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlLjx3YnIvPiBTbyBJTkFDVElWRSBtYXkgbmV2ZXIgYWN0dWFsbHkgYmUgc2VlbiBpbgorYSByZXN1bHQuPHdici8+PC9wPgorPHA+VGhlIHN0YXRlIGluIHRoZSByZXN1bHQgaXMgdGhlIHN0YXRlIGZvciB0aGlzIGltYWdlIChpbiBzeW5jIHdpdGggdGhpcyBpbWFnZSk6IGlmCitBV0Igc3RhdGUgYmVjb21lcyBDT05WRVJHRUQsPHdici8+IHRoZW4gdGhlIGltYWdlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVzdWx0IHNob3VsZAorYmUgZ29vZCB0byB1c2UuPHdici8+PC9wPgorPHA+QmVsb3cgYXJlIHN0YXRlIHRyYW5zaXRpb24gdGFibGVzIGZvciBkaWZmZXJlbnQgQVdCIG1vZGVzLjx3YnIvPjwvcD4KKzxwPldoZW4gPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gIT0gQVdCXzx3YnIvPk1PREVfPHdici8+QVVUTzwvY29kZT46PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPlN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5UcmFuc2l0aW9uIENhdXNlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5OZXcgU3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGF1dG8gd2hpdGUgYmFsYW5jZSBhbGdvcml0aG0gaXMgZGlzYWJsZWQ8L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+V2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiBpcyBBV0JfPHdici8+TU9ERV88d2JyLz5BVVRPOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5TdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+VHJhbnNpdGlvbiBDYXVzZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+TmV3IFN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgQVdCIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGNoYW5naW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+IGlzIE9OPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TRUFSQ0hJTkc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgZmluaXNoZXMgQVdCIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+R29vZCB2YWx1ZXMsPHdici8+IG5vdCBjaGFuZ2luZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazwvYT4gaXMgT048L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgQVdCIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGNoYW5naW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPiBpcyBPTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPiBpcyBPRkY8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIG5vdCBnb29kIGFmdGVyIHVubG9jazwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5Gb3IgdGhlIGFib3ZlIHRhYmxlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgc2tpcCByZXBvcnRpbmcgYW55IHN0YXRlIGNoYW5nZXMgdGhhdCBoYXBwZW4KK3dpdGhvdXQgYXBwbGljYXRpb24gaW50ZXJ2ZW50aW9uIChpLjx3YnIvPmUuPHdici8+IG1vZGUgc3dpdGNoLDx3YnIvPiB0cmlnZ2VyLDx3YnIvPiBsb2NraW5nKS48d2JyLz4gQW55IHN0YXRlIHRoYXQKK2NhbiBiZSBza2lwcGVkIGluIHRoYXQgbWFubmVyIGlzIGNhbGxlZCBhIHRyYW5zaWVudCBzdGF0ZS48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZSw8d2JyLz4gZm9yIHRoaXMgQVdCIG1vZGUgKEFXQl88d2JyLz5NT0RFXzx3YnIvPkFVVE8pLDx3YnIvPiBpbiBhZGRpdGlvbiB0byB0aGUgc3RhdGUgdHJhbnNpdGlvbnMKK2xpc3RlZCBpbiBhYm92ZSB0YWJsZSw8d2JyLz4gaXQgaXMgYWxzbyBsZWdhbCBmb3IgdGhlIGNhbWVyYSBkZXZpY2UgdG8gc2tpcCBvbmUgb3IgbW9yZQordHJhbnNpZW50IHN0YXRlcyBiZXR3ZWVuIHR3byByZXN1bHRzLjx3YnIvPiBTZWUgYmVsb3cgdGFibGUgZm9yIGV4YW1wbGVzOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5TdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+VHJhbnNpdGlvbiBDYXVzZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+TmV3IFN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBmaW5pc2hlZCBBV0Igc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgYXJlIGFscmVhZHkgZ29vZCw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazwvYT4gaXMgT0ZGPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBnb29kIGFmdGVyIHVubG9jayw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmVmZmVjdE1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmVmZmVjdDx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIGNvbG9yIGVmZmVjdCB3aWxsIGJlIGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TU9OTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAibW9ub2NvbG9yIiBlZmZlY3Qgd2hlcmUgdGhlIGltYWdlIGlzIG1hcHBlZCBpbnRvCithIHNpbmdsZSBjb2xvci48d2JyLz48L3A+Cis8cD5UaGlzIHdpbGwgdHlwaWNhbGx5IGJlIGdyYXlzY2FsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ORUdBVElWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAicGhvdG8tbmVnYXRpdmUiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UncyBjb2xvcnMKK2FyZSBpbnZlcnRlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TT0xBUklaRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAic29sYXJpc2F0aW9uIiBlZmZlY3QgKFNhYmF0dGllciBlZmZlY3QpIHdoZXJlIHRoZQoraW1hZ2UgaXMgd2hvbGx5IG9yIHBhcnRpYWxseSByZXZlcnNlZCBpbgordG9uZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TRVBJQTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAic2VwaWEiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UgaXMgbWFwcGVkIGludG8gd2FybQorZ3JheSw8d2JyLz4gcmVkLDx3YnIvPiBhbmQgYnJvd24gdG9uZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UE9TVEVSSVpFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJwb3N0ZXJpemF0aW9uIiBlZmZlY3Qgd2hlcmUgdGhlIGltYWdlIHVzZXMKK2Rpc2NyZXRlIHJlZ2lvbnMgb2YgdG9uZSByYXRoZXIgdGhhbiBhIGNvbnRpbnVvdXMKK2dyYWRpZW50IG9mIHRvbmVzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPldISVRFQk9BUkQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkEgIndoaXRlYm9hcmQiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UgaXMgdHlwaWNhbGx5IGRpc3BsYXllZAorYXMgcmVnaW9ucyBvZiB3aGl0ZSw8d2JyLz4gd2l0aCBibGFjayBvciBncmV5IGRldGFpbHMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QkxBQ0tCT0FSRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAiYmxhY2tib2FyZCIgZWZmZWN0IHdoZXJlIHRoZSBpbWFnZSBpcyB0eXBpY2FsbHkgZGlzcGxheWVkCithcyByZWdpb25zIG9mIGJsYWNrLDx3YnIvPiB3aXRoIHdoaXRlIG9yIGdyZXkgZGV0YWlscy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BUVVBPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BbiAiYXF1YSIgZWZmZWN0IHdoZXJlIGEgYmx1ZSBodWUgaXMgYWRkZWQgdG8gdGhlIGltYWdlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgc3BlY2lhbCBjb2xvciBlZmZlY3QgdG8gYXBwbHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlRWZmZWN0cyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkVmZmVjdHM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gdGhpcyBtb2RlIGlzIHNldCw8d2JyLz4gYSBjb2xvciBlZmZlY3Qgd2lsbCBiZSBhcHBsaWVkCit0byBpbWFnZXMgcHJvZHVjZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+IFRoZSBpbnRlcnByZXRhdGlvbgorYW5kIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIGNvbG9yIGVmZmVjdHMgaXMgbGVmdCB0byB0aGUKK2ltcGxlbWVudG9yIG9mIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBhbmQgc2hvdWxkIG5vdCBiZQorZGVwZW5kZWQgb24gdG8gYmUgY29uc2lzdGVudCAob3IgcHJlc2VudCkgYWNyb3NzIGFsbAorZGV2aWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkZ1bGwgYXBwbGljYXRpb24gY29udHJvbCBvZiBwaXBlbGluZS48d2JyLz48L3A+Cis8cD5BbGwgY29udHJvbCBieSB0aGUgZGV2aWNlJ3MgbWV0ZXJpbmcgYW5kIGZvY3VzaW5nICgzQSkKK3JvdXRpbmVzIGlzIGRpc2FibGVkLDx3YnIvPiBhbmQgbm8gb3RoZXIgc2V0dGluZ3MgaW4KK2FuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGhhdmUgYW55IGVmZmVjdCw8d2JyLz4gZXhjZXB0IHRoYXQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmNhcHR1cmU8d2JyLz5JbnRlbnQ8L2E+IG1heSBiZSB1c2VkIGJ5IHRoZSBjYW1lcmEKK2RldmljZSB0byBzZWxlY3QgcG9zdC1wcm9jZXNzaW5nIHZhbHVlcyBmb3IgcHJvY2Vzc2luZworYmxvY2tzIHRoYXQgZG8gbm90IGFsbG93IGZvciBtYW51YWwgY29udHJvbCw8d2JyLz4gb3IgYXJlIG5vdAorZXhwb3NlZCBieSB0aGUgY2FtZXJhIEFQSS48d2JyLz48L3A+Cis8cD5Ib3dldmVyLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSdzIDNBIHJvdXRpbmVzIG1heSBjb250aW51ZSB0bworY29sbGVjdCBzdGF0aXN0aWNzIGFuZCB1cGRhdGUgdGhlaXIgaW50ZXJuYWwgc3RhdGUgc28gdGhhdAord2hlbiBjb250cm9sIGlzIHN3aXRjaGVkIHRvIEFVVE8gbW9kZSw8d2JyLz4gZ29vZCBjb250cm9sIHZhbHVlcworY2FuIGJlIGltbWVkaWF0ZWx5IGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QVVUTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHNldHRpbmdzIGZvciBlYWNoIGluZGl2aWR1YWwgM0Egcm91dGluZS48d2JyLz48L3A+Cis8cD5NYW51YWwgY29udHJvbCBvZiBjYXB0dXJlIHBhcmFtZXRlcnMgaXMgZGlzYWJsZWQuPHdici8+IEFsbAorY29udHJvbHMgaW4gYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiogYmVzaWRlcyBzY2VuZU1vZGUgdGFrZQorZWZmZWN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlVTRV9TQ0VORV9NT0RFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Vc2UgYSBzcGVjaWZpYyBzY2VuZSBtb2RlLjx3YnIvPjwvcD4KKzxwPkVuYWJsaW5nIHRoaXMgZGlzYWJsZXMgY29udHJvbC48d2JyLz5hZU1vZGUsPHdici8+IGNvbnRyb2wuPHdici8+YXdiTW9kZSBhbmQKK2NvbnRyb2wuPHdici8+YWZNb2RlIGNvbnRyb2xzOyB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGlnbm9yZQordGhvc2Ugc2V0dGluZ3Mgd2hpbGUgVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREUgaXMgYWN0aXZlIChleGNlcHQgZm9yCitGQUNFXzx3YnIvPlBSSU9SSVRZIHNjZW5lIG1vZGUpLjx3YnIvPiBPdGhlciBjb250cm9sIGVudHJpZXMgYXJlIHN0aWxsIGFjdGl2ZS48d2JyLz4KK1RoaXMgc2V0dGluZyBjYW4gb25seSBiZSB1c2VkIGlmIHNjZW5lIG1vZGUgaXMgc3VwcG9ydGVkIChpLjx3YnIvPmUuPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+U2NlbmU8d2JyLz5Nb2RlczwvYT4KK2NvbnRhaW4gc29tZSBtb2RlcyBvdGhlciB0aGFuIERJU0FCTEVEKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkZfS0VFUF9TVEFURTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+U2FtZSBhcyBPRkYgbW9kZSw8d2JyLz4gZXhjZXB0IHRoYXQgdGhpcyBjYXB0dXJlIHdpbGwgbm90IGJlCit1c2VkIGJ5IGNhbWVyYSBkZXZpY2UgYmFja2dyb3VuZCBhdXRvLWV4cG9zdXJlLDx3YnIvPiBhdXRvLXdoaXRlIGJhbGFuY2UgYW5kCithdXRvLWZvY3VzIGFsZ29yaXRobXMgKDNBKSB0byB1cGRhdGUgdGhlaXIgc3RhdGlzdGljcy48d2JyLz48L3A+Cis8cD5TcGVjaWZpY2FsbHksPHdici8+IHRoZSAzQSByb3V0aW5lcyBhcmUgbG9ja2VkIHRvIHRoZSBsYXN0Cit2YWx1ZXMgc2V0IGZyb20gYSByZXF1ZXN0IHdpdGggQVVUTyw8d2JyLz4gT0ZGLDx3YnIvPiBvcgorVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREUsPHdici8+IGFuZCBhbnkgc3RhdGlzdGljcyBvciBzdGF0ZSB1cGRhdGVzCitjb2xsZWN0ZWQgZnJvbSBtYW51YWwgY2FwdHVyZXMgd2l0aCBPRkZfPHdici8+S0VFUF88d2JyLz5TVEFURSB3aWxsIGJlCitkaXNjYXJkZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3ZlcmFsbCBtb2RlIG9mIDNBIChhdXRvLWV4cG9zdXJlLDx3YnIvPiBhdXRvLXdoaXRlLWJhbGFuY2UsPHdici8+IGF1dG8tZm9jdXMpIGNvbnRyb2wKK3JvdXRpbmVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSB0b3AtbGV2ZWwgM0EgY29udHJvbCBzd2l0Y2guPHdici8+IFdoZW4gc2V0IHRvIE9GRiw8d2JyLz4gYWxsIDNBIGNvbnRyb2wKK2J5IHRoZSBjYW1lcmEgZGV2aWNlIGlzIGRpc2FibGVkLjx3YnIvPiBUaGUgYXBwbGljYXRpb24gbXVzdCBzZXQgdGhlIGZpZWxkcyBmb3IKK2NhcHR1cmUgcGFyYW1ldGVycyBpdHNlbGYuPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gQVVUTyw8d2JyLz4gdGhlIGluZGl2aWR1YWwgYWxnb3JpdGhtIGNvbnRyb2xzIGluCithbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBhcmUgaW4gZWZmZWN0LDx3YnIvPiBzdWNoIGFzIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPi48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBVU0VfPHdici8+U0NFTkVfPHdici8+TU9ERSw8d2JyLz4gdGhlIGluZGl2aWR1YWwgY29udHJvbHMgaW4KK2FuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGFyZSBtb3N0bHkgZGlzYWJsZWQsPHdici8+IGFuZCB0aGUgY2FtZXJhIGRldmljZSBpbXBsZW1lbnRzCitvbmUgb2YgdGhlIHNjZW5lIG1vZGUgc2V0dGluZ3MgKHN1Y2ggYXMgQUNUSU9OLDx3YnIvPiBTVU5TRVQsPHdici8+IG9yIFBBUlRZKQorYXMgaXQgd2lzaGVzLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSBzY2VuZSBtb2RlIDNBIHNldHRpbmdzIGFyZSBwcm92aWRlZCBieQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYXB0dXJlUmVzdWx0Lmh0bWwiPmNhcHR1cmUgcmVzdWx0czwvYT4uPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gT0ZGXzx3YnIvPktFRVBfPHdici8+U1RBVEUsPHdici8+IGl0IGlzIHNpbWlsYXIgdG8gT0ZGIG1vZGUsPHdici8+IHRoZSBvbmx5IGRpZmZlcmVuY2UKK2lzIHRoYXQgdGhpcyBmcmFtZSB3aWxsIG5vdCBiZSB1c2VkIGJ5IGNhbWVyYSBkZXZpY2UgYmFja2dyb3VuZCAzQSBzdGF0aXN0aWNzCit1cGRhdGUsPHdici8+IGFzIGlmIHRoaXMgZnJhbWUgaXMgbmV2ZXIgY2FwdHVyZWQuPHdici8+IFRoaXMgbW9kZSBjYW4gYmUgdXNlZCBpbiB0aGUgc2NlbmFyaW8KK3doZXJlIHRoZSBhcHBsaWNhdGlvbiBkb2Vzbid0IHdhbnQgYSAzQSBtYW51YWwgY29udHJvbCBjYXB0dXJlIHRvIGFmZmVjdAordGhlIHN1YnNlcXVlbnQgYXV0byAzQSBjYXB0dXJlIHJlc3VsdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5zY2VuZU1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnNjZW5lPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRJU0FCTEVEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4wPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JbmRpY2F0ZXMgdGhhdCBubyBzY2VuZSBtb2RlcyBhcmUgc2V0IGZvciBhIGdpdmVuIGNhcHR1cmUgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQUNFX1BSSU9SSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JZiBmYWNlIGRldGVjdGlvbiBzdXBwb3J0IGV4aXN0cyw8d2JyLz4gdXNlIGZhY2UKK2RldGVjdGlvbiBkYXRhIGZvciBhdXRvLWZvY3VzLDx3YnIvPiBhdXRvLXdoaXRlIGJhbGFuY2UsPHdici8+IGFuZAorYXV0by1leHBvc3VyZSByb3V0aW5lcy48d2JyLz48L3A+Cis8cD5JZiBmYWNlIGRldGVjdGlvbiBzdGF0aXN0aWNzIGFyZSBkaXNhYmxlZAorKGkuPHdici8+ZS48d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlPC9hPiBpcyBzZXQgdG8gT0ZGKSw8d2JyLz4KK3RoaXMgc2hvdWxkIHN0aWxsIG9wZXJhdGUgY29ycmVjdGx5IChidXQgd2lsbCBub3QgcmV0dXJuCitmYWNlIGRldGVjdGlvbiBzdGF0aXN0aWNzIHRvIHRoZSBmcmFtZXdvcmspLjx3YnIvPjwvcD4KKzxwPlVubGlrZSB0aGUgb3RoZXIgc2NlbmUgbW9kZXMsPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+CityZW1haW4gYWN0aXZlIHdoZW4gRkFDRV88d2JyLz5QUklPUklUWSBpcyBzZXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QUNUSU9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIHBob3RvcyBvZiBxdWlja2x5IG1vdmluZyBvYmplY3RzLjx3YnIvPjwvcD4KKzxwPlNpbWlsYXIgdG8gU1BPUlRTLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBPUlRSQUlUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIHN0aWxsIHBob3RvcyBvZiBwZW9wbGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TEFORFNDQVBFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIHBob3RvcyBvZiBkaXN0YW50IG1hY3Jvc2NvcGljIG9iamVjdHMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TklHSFQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgbG93LWxpZ2h0IHNldHRpbmdzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk5JR0hUX1BPUlRSQUlUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIHN0aWxsIHBob3RvcyBvZiBwZW9wbGUgaW4gbG93LWxpZ2h0CitzZXR0aW5ncy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5USEVBVFJFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIGRpbSw8d2JyLz4gaW5kb29yIHNldHRpbmdzIHdoZXJlIGZsYXNoIG11c3QKK3JlbWFpbiBvZmYuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QkVBQ0g8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgYnJpZ2h0LDx3YnIvPiBvdXRkb29yIGJlYWNoIHNldHRpbmdzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNOT1c8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgYnJpZ2h0LDx3YnIvPiBvdXRkb29yIHNldHRpbmdzIGNvbnRhaW5pbmcgc25vdy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVU5TRVQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3Igc2NlbmVzIG9mIHRoZSBzZXR0aW5nIHN1bi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVEVBRFlQSE9UTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIHRvIGF2b2lkIGJsdXJyeSBwaG90b3MgZHVlIHRvIHNtYWxsIGFtb3VudHMgb2YKK2RldmljZSBtb3Rpb24gKGZvciBleGFtcGxlOiBkdWUgdG8gaGFuZCBzaGFrZSkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RklSRVdPUktTPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIG5pZ2h0dGltZSBwaG90b3Mgb2YgZmlyZXdvcmtzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNQT1JUUzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBwaG90b3Mgb2YgcXVpY2tseSBtb3ZpbmcgcGVvcGxlLjx3YnIvPjwvcD4KKzxwPlNpbWlsYXIgdG8gQUNUSU9OLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBBUlRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIGRpbSw8d2JyLz4gaW5kb29yIHNldHRpbmdzIHdpdGggbXVsdGlwbGUgbW92aW5nCitwZW9wbGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q0FORExFTElHSFQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgZGltIHNldHRpbmdzIHdoZXJlIHRoZSBtYWluIGxpZ2h0IHNvdXJjZQoraXMgYSBmbGFtZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5CQVJDT0RFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIGFjY3VyYXRlbHkgY2FwdHVyaW5nIGEgcGhvdG8gb2YgYmFyY29kZQorZm9yIHVzZSBieSBjYW1lcmEgYXBwbGljYXRpb25zIHRoYXQgd2lzaCB0byByZWFkIHRoZQorYmFyY29kZSB2YWx1ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1NQRUVEX1ZJREVPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyBpcyBkZXByZWNhdGVkLDx3YnIvPiBwbGVhc2UgdXNlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb248L2E+CithbmQgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uLmh0bWwjY3JlYXRlSGlnaFNwZWVkUmVxdWVzdExpc3QiPkNhbWVyYUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24jY3JlYXRlSGlnaFNwZWVkUmVxdWVzdExpc3Q8L2E+Citmb3IgaGlnaCBzcGVlZCB2aWRlbyByZWNvcmRpbmcuPHdici8+PC9wPgorPHA+T3B0aW1pemVkIGZvciBoaWdoIHNwZWVkIHZpZGVvIHJlY29yZGluZyAoZnJhbWUgcmF0ZSAmZ3Q7PTYwZnBzKSB1c2UgY2FzZS48d2JyLz48L3A+Cis8cD5UaGUgc3VwcG9ydGVkIGhpZ2ggc3BlZWQgdmlkZW8gc2l6ZXMgYW5kIGZwcyByYW5nZXMgYXJlIHNwZWNpZmllZCBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhpZ2g8d2JyLz5TcGVlZDx3YnIvPlZpZGVvPHdici8+Q29uZmlndXJhdGlvbnM8L2E+Ljx3YnIvPiBUbyBnZXQgZGVzaXJlZAorb3V0cHV0IGZyYW1lIHJhdGVzLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gaXMgb25seSBhbGxvd2VkIHRvIHNlbGVjdCB2aWRlbyBzaXplCithbmQgZnBzIHJhbmdlIGNvbWJpbmF0aW9ucyBsaXN0ZWQgaW4gdGhpcyBzdGF0aWMgbWV0YWRhdGEuPHdici8+IFRoZSBmcHMgcmFuZ2UKK2NhbiBiZSBjb250cm9sIHZpYSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPi48d2JyLz48L3A+Cis8cD5JbiB0aGlzIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgb3ZlcnJpZGUgYWVNb2RlLDx3YnIvPiBhd2JNb2RlLDx3YnIvPiBhbmQgYWZNb2RlIHRvCitPTiw8d2JyLz4gT04sPHdici8+IGFuZCBDT05USU5VT1VTXzx3YnIvPlZJREVPLDx3YnIvPiByZXNwZWN0aXZlbHkuPHdici8+IEFsbCBwb3N0LXByb2Nlc3NpbmcgYmxvY2sgbW9kZQorY29udHJvbHMgd2lsbCBiZSBvdmVycmlkZGVuIHRvIGJlIEZBU1QuPHdici8+IFRoZXJlZm9yZSw8d2JyLz4gbm8gbWFudWFsIGNvbnRyb2wgb2YgY2FwdHVyZQorYW5kIHBvc3QtcHJvY2Vzc2luZyBwYXJhbWV0ZXJzIGlzIHBvc3NpYmxlLjx3YnIvPiBBbGwgb3RoZXIgY29udHJvbHMgb3BlcmF0ZSB0aGUKK3NhbWUgYXMgd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9PSBBVVRPLjx3YnIvPiBUaGlzIG1lYW5zIHRoYXQgYWxsIG90aGVyCithbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBmaWVsZHMgY29udGludWUgdG8gd29yayw8d2JyLz4gc3VjaCBhczwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmVmZmVjdDx3YnIvPk1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UmVnaW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5SZWdpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+UmVnaW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT48L2xpPgorPC91bD4KKzxwPk91dHNpZGUgb2YgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiosPHdici8+IHRoZSBmb2xsb3dpbmcgY29udHJvbHMgd2lsbCB3b3JrOjwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5mbGFzaC5tb2RlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPm1vZGU8L2E+IChhdXRvbWF0aWMgZmxhc2ggZm9yIHN0aWxsIGNhcHR1cmUgd2lsbCBub3Qgd29yayBzaW5jZSBhZU1vZGUgaXMgT04pPC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPm9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT4gKGlmIGl0IGlzIHN1cHBvcnRlZCk8L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlPC9hPjwvbGk+Cis8L3VsPgorPHA+Rm9yIGhpZ2ggc3BlZWQgcmVjb3JkaW5nIHVzZSBjYXNlLDx3YnIvPiB0aGUgYWN0dWFsIG1heGltdW0gc3VwcG9ydGVkIGZyYW1lIHJhdGUgbWF5CitiZSBsb3dlciB0aGFuIHdoYXQgY2FtZXJhIGNhbiBvdXRwdXQsPHdici8+IGRlcGVuZGluZyBvbiB0aGUgZGVzdGluYXRpb24gU3VyZmFjZXMgZm9yCit0aGUgaW1hZ2UgZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBkZXN0aW5hdGlvbiBzdXJmYWNlIGlzIGZyb20gdmlkZW8gZW5jb2Rlciw8d2JyLz4KK3RoZSBhcHBsaWNhdGlvbiBuZWVkIGNoZWNrIGlmIHRoZSB2aWRlbyBlbmNvZGVyIGlzIGNhcGFibGUgb2Ygc3VwcG9ydGluZyB0aGUKK2hpZ2ggZnJhbWUgcmF0ZSBmb3IgYSBnaXZlbiB2aWRlbyBzaXplLDx3YnIvPiBvciBpdCB3aWxsIGVuZCB1cCB3aXRoIGxvd2VyIHJlY29yZGluZworZnJhbWUgcmF0ZS48d2JyLz4gSWYgdGhlIGRlc3RpbmF0aW9uIHN1cmZhY2UgaXMgZnJvbSBwcmV2aWV3IHdpbmRvdyw8d2JyLz4gdGhlIHByZXZpZXcgZnJhbWUKK3JhdGUgd2lsbCBiZSBib3VuZGVkIGJ5IHRoZSBzY3JlZW4gcmVmcmVzaCByYXRlLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgb25seSBzdXBwb3J0IHVwIHRvIDIgb3V0cHV0IGhpZ2ggc3BlZWQgc3RyZWFtcworKHByb2Nlc3NlZCBub24tc3RhbGxpbmcgZm9ybWF0IGRlZmluZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0U3RyZWFtcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1heDx3YnIvPk51bTx3YnIvPk91dHB1dDx3YnIvPlN0cmVhbXM8L2E+KQoraW4gdGhpcyBtb2RlLjx3YnIvPiBUaGlzIGNvbnRyb2wgd2lsbCBiZSBlZmZlY3RpdmUgb25seSBpZiBhbGwgb2YgYmVsb3cgY29uZGl0aW9ucyBhcmUgdHJ1ZTo8L3A+Cis8dWw+Cis8bGk+VGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgbm8gbW9yZSB0aGFuIG1heE51bUhpZ2hTcGVlZFN0cmVhbXMgcHJvY2Vzc2VkIG5vbi1zdGFsbGluZworZm9ybWF0IG91dHB1dCBzdHJlYW1zLDx3YnIvPiB3aGVyZSBtYXhOdW1IaWdoU3BlZWRTdHJlYW1zIGlzIGNhbGN1bGF0ZWQgYXMKK21pbigyLDx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRTdHJlYW1zIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+U3RyZWFtczwvYT5bUHJvY2Vzc2VkIChidXQgbm90LXN0YWxsaW5nKV0pLjx3YnIvPjwvbGk+Cis8bGk+VGhlIHN0cmVhbSBzaXplcyBhcmUgc2VsZWN0ZWQgZnJvbSB0aGUgc2l6ZXMgcmVwb3J0ZWQgYnkKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5IaWdoPHdici8+U3BlZWQ8d2JyLz5WaWRlbzx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPi48d2JyLz48L2xpPgorPGxpPk5vIHByb2Nlc3NlZCBub24tc3RhbGxpbmcgb3IgcmF3IHN0cmVhbXMgYXJlIGNvbmZpZ3VyZWQuPHdici8+PC9saT4KKzwvdWw+Cis8cD5XaGVuIGFib3ZlIGNvbmRpdGlvbnMgYXJlIE5PVCBzYXRpc3RpZWQsPHdici8+IHRoZSBjb250cm9scyBvZiB0aGlzIG1vZGUgYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPiB3aWxsIGJlIGlnbm9yZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+Cit0aGUgY2FtZXJhIGRldmljZSB3aWxsIGZhbGwgYmFjayB0byA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA8Y29kZT49PTwvY29kZT4gQVVUTyw8d2JyLz4KK2FuZCB0aGUgcmV0dXJuZWQgY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEgd2lsbCBnaXZlIHRoZSBmcHMgcmFuZ2UgY2hvb3NlbgorYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+U3dpdGNoaW5nIGludG8gb3Igb3V0IG9mIHRoaXMgbW9kZSBtYXkgdHJpZ2dlciBzb21lIGNhbWVyYSBJU1AvPHdici8+c2Vuc29yCityZWNvbmZpZ3VyYXRpb25zLDx3YnIvPiB3aGljaCBtYXkgaW50cm9kdWNlIGV4dHJhIGxhdGVuY3kuPHdici8+IEl0IGlzIHJlY29tbWVuZGVkIHRoYXQKK3RoZSBhcHBsaWNhdGlvbiBhdm9pZHMgdW5uZWNlc3Nhcnkgc2NlbmUgbW9kZSBzd2l0Y2ggYXMgbXVjaCBhcyBwb3NzaWJsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5IRFI8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlR1cm4gb24gYSBkZXZpY2Utc3BlY2lmaWMgaGlnaCBkeW5hbWljIHJhbmdlIChIRFIpIG1vZGUuPHdici8+PC9wPgorPHA+SW4gdGhpcyBzY2VuZSBtb2RlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBjYXB0dXJlcyBpbWFnZXMKK3RoYXQga2VlcCBhIGxhcmdlciByYW5nZSBvZiBzY2VuZSBpbGx1bWluYXRpb24gbGV2ZWxzCit2aXNpYmxlIGluIHRoZSBmaW5hbCBpbWFnZS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IHdoZW4gdGFraW5nIGEKK3BpY3R1cmUgb2YgYSBvYmplY3QgaW4gZnJvbnQgb2YgYSBicmlnaHQgd2luZG93LDx3YnIvPiBib3RoCit0aGUgb2JqZWN0IGFuZCB0aGUgc2NlbmUgdGhyb3VnaCB0aGUgd2luZG93IG1heSBiZQordmlzaWJsZSB3aGVuIHVzaW5nIEhEUiBtb2RlLDx3YnIvPiB3aGlsZSBpbiBub3JtYWwgQVVUTyBtb2RlLDx3YnIvPgorb25lIG9yIHRoZSBvdGhlciBtYXkgYmUgcG9vcmx5IGV4cG9zZWQuPHdici8+IEFzIGEgdHJhZGVvZmYsPHdici8+CitIRFIgbW9kZSBnZW5lcmFsbHkgdGFrZXMgbXVjaCBsb25nZXIgdG8gY2FwdHVyZSBhIHNpbmdsZQoraW1hZ2UsPHdici8+IGhhcyBubyB1c2VyIGNvbnRyb2wsPHdici8+IGFuZCBtYXkgaGF2ZSBvdGhlciBhcnRpZmFjdHMKK2RlcGVuZGluZyBvbiB0aGUgSERSIG1ldGhvZCB1c2VkLjx3YnIvPjwvcD4KKzxwPlRoZXJlZm9yZSw8d2JyLz4gSERSIGNhcHR1cmVzIG9wZXJhdGUgYXQgYSBtdWNoIHNsb3dlciByYXRlCit0aGFuIHJlZ3VsYXIgY2FwdHVyZXMuPHdici8+PC9wPgorPHA+SW4gdGhpcyBtb2RlLDx3YnIvPiBvbiBMSU1JVEVEIG9yIEZVTEwgZGV2aWNlcyw8d2JyLz4gd2hlbiBhIHJlcXVlc3QKK2lzIG1hZGUgd2l0aCBhIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmNhcHR1cmU8d2JyLz5JbnRlbnQ8L2E+IG9mCitTVElMTF88d2JyLz5DQVBUVVJFLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGNhcHR1cmUgYW4gaW1hZ2UKK3VzaW5nIGEgaGlnaCBkeW5hbWljIHJhbmdlIGNhcHR1cmUgdGVjaG5pcXVlLjx3YnIvPiAgT24gTEVHQUNZCitkZXZpY2VzLDx3YnIvPiBjYXB0dXJlcyB0aGF0IHRhcmdldCBhIEpQRUctZm9ybWF0IG91dHB1dCB3aWxsCitiZSBjYXB0dXJlZCB3aXRoIEhEUiw8d2JyLz4gYW5kIHRoZSBjYXB0dXJlIGludGVudCBpcyBub3QKK3JlbGV2YW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBIRFIgY2FwdHVyZSBtYXkgaW52b2x2ZSB0aGUgZGV2aWNlIGNhcHR1cmluZyBhIGJ1cnN0CitvZiBpbWFnZXMgaW50ZXJuYWxseSBhbmQgY29tYmluaW5nIHRoZW0gaW50byBvbmUsPHdici8+IG9yIGl0CittYXkgaW52b2x2ZSB0aGUgZGV2aWNlIHVzaW5nIHNwZWNpYWxpemVkIGhpZ2ggZHluYW1pYworcmFuZ2UgY2FwdHVyZSBoYXJkd2FyZS48d2JyLz4gSW4gYWxsIGNhc2VzLDx3YnIvPiBhIHNpbmdsZSBpbWFnZSBpcworcHJvZHVjZWQgaW4gcmVzcG9uc2UgdG8gYSBjYXB0dXJlIHJlcXVlc3Qgc3VibWl0dGVkCit3aGlsZSBpbiBIRFIgbW9kZS48d2JyLz48L3A+Cis8cD5TaW5jZSBzdWJzdGFudGlhbCBwb3N0LXByb2Nlc3NpbmcgaXMgZ2VuZXJhbGx5IG5lZWRlZCB0bworcHJvZHVjZSBhbiBIRFIgaW1hZ2UsPHdici8+IG9ubHkgWVVWLDx3YnIvPiBQUklWQVRFLDx3YnIvPiBhbmQgSlBFRworb3V0cHV0cyBhcmUgc3VwcG9ydGVkIGZvciBMSU1JVEVELzx3YnIvPkZVTEwgZGV2aWNlIEhEUgorY2FwdHVyZXMsPHdici8+IGFuZCBvbmx5IEpQRUcgb3V0cHV0cyBhcmUgc3VwcG9ydGVkIGZvciBMRUdBQ1kKK0hEUiBjYXB0dXJlcy48d2JyLz4gVXNpbmcgYSBSQVcgb3V0cHV0IGZvciBIRFIgY2FwdHVyZSBpcyBub3QKK3N1cHBvcnRlZC48d2JyLz48L3A+Cis8cD5Tb21lIGRldmljZXMgbWF5IGFsc28gc3VwcG9ydCBhbHdheXMtb24gSERSLDx3YnIvPiB3aGljaAorYXBwbGllcyBIRFIgcHJvY2Vzc2luZyBhdCBmdWxsIGZyYW1lIHJhdGUuPHdici8+ICBGb3IgdGhlc2UKK2RldmljZXMsPHdici8+IGludGVudHMgb3RoZXIgdGhhbiBTVElMTF88d2JyLz5DQVBUVVJFIHdpbGwgYWxzbworcHJvZHVjZSBhbiBIRFIgb3V0cHV0IHdpdGggbm8gZnJhbWUgcmF0ZSBpbXBhY3QgY29tcGFyZWQKK3RvIG5vcm1hbCBvcGVyYXRpb24sPHdici8+IHRob3VnaCB0aGUgcXVhbGl0eSBtYXkgYmUgbG93ZXIKK3RoYW4gZm9yIFNUSUxMXzx3YnIvPkNBUFRVUkUgaW50ZW50cy48d2JyLz48L3A+Cis8cD5JZiBTQ0VORV88d2JyLz5NT0RFXzx3YnIvPkhEUiBpcyB1c2VkIHdpdGggdW5zdXBwb3J0ZWQgb3V0cHV0IHR5cGVzCitvciBjYXB0dXJlIGludGVudHMsPHdici8+IHRoZSBpbWFnZXMgY2FwdHVyZWQgd2lsbCBiZSBhcyBpZgordGhlIFNDRU5FXzx3YnIvPk1PREUgd2FzIG5vdCBlbmFibGVkIGF0IGFsbC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQUNFX1BSSU9SSVRZX0xPV19MSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9oaWRkZW4iPltoaWRkZW5dPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5TYW1lIGFzIEZBQ0VfPHdici8+UFJJT1JJVFkgc2NlbmUgbW9kZSw8d2JyLz4gZXhjZXB0IHRoYXQgdGhlIGNhbWVyYQorZGV2aWNlIHdpbGwgY2hvb3NlIGhpZ2hlciBzZW5zaXRpdml0eSB2YWx1ZXMgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+KQordW5kZXIgbG93IGxpZ2h0IGNvbmRpdGlvbnMuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2UgbWF5IGJlIHR1bmVkIHRvIGV4cG9zZSB0aGUgaW1hZ2VzIGluIGEgcmVkdWNlZAorc2Vuc2l0aXZpdHkgcmFuZ2UgdG8gcHJvZHVjZSB0aGUgYmVzdCBxdWFsaXR5IGltYWdlcy48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+CitpZiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+c2Vuc2l0aXZpdHk8d2JyLz5SYW5nZTwvYT4gZ2l2ZXMgcmFuZ2Ugb2YgWzEwMCw8d2JyLz4gMTYwMF0sPHdici8+Cit0aGUgY2FtZXJhIGRldmljZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgdHVuaW5nIHByb2Nlc3MgbWF5IGxpbWl0IHRoZSBhY3R1YWwKK2V4cG9zdXJlIHNlbnNpdGl2aXR5IHJhbmdlIHRvIFsxMDAsPHdici8+IDEyMDBdIHRvIGVuc3VyZSB0aGF0IHRoZSBub2lzZSBsZXZlbCBpc24ndAorZXhlc3NpdmUgaW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGltYWdlIHF1YWxpdHkuPHdici8+IFVuZGVyIHRoaXMgc2l0dWF0aW9uLDx3YnIvPiB0aGUgaW1hZ2UgdW5kZXIKK2xvdyBsaWdodCBtYXkgYmUgdW5kZXItZXhwb3NlZCB3aGVuIHRoZSBzZW5zb3IgbWF4IGV4cG9zdXJlIHRpbWUgKGJvdW5kZWQgYnkgdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPiB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBvbmUgb2YgdGhlCitPTl88d2JyLz4qIG1vZGVzKSBhbmQgZWZmZWN0aXZlIG1heCBzZW5zaXRpdml0eSBhcmUgcmVhY2hlZC48d2JyLz4gVGhpcyBzY2VuZSBtb2RlIGFsbG93cyB0aGUKK2NhbWVyYSBkZXZpY2UgYXV0by1leHBvc3VyZSByb3V0aW5lIHRvIGluY3JlYXNlIHRoZSBzZW5zaXRpdml0eSB1cCB0byB0aGUgbWF4CitzZW5zaXRpdml0eSBzcGVjaWZpZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+c2Vuc2l0aXZpdHk8d2JyLz5SYW5nZTwvYT4gd2hlbiB0aGUgc2NlbmUgaXMgdG9vCitkYXJrIGFuZCB0aGUgbWF4IGV4cG9zdXJlIHRpbWUgaXMgcmVhY2hlZC48d2JyLz4gVGhlIGNhcHR1cmVkIGltYWdlcyBtYXkgYmUgbm9pc2llcgorY29tcGFyZWQgd2l0aCB0aGUgaW1hZ2VzIGNhcHR1cmVkIGluIG5vcm1hbCBGQUNFXzx3YnIvPlBSSU9SSVRZIG1vZGU7IHRoZXJlZm9yZSw8d2JyLz4gaXQgaXMKK3JlY29tbWVuZGVkIHRoYXQgdGhlIGFwcGxpY2F0aW9uIG9ubHkgdXNlIHRoaXMgc2NlbmUgbW9kZSB3aGVuIGl0IGlzIGNhcGFibGUgb2YKK3JlZHVjaW5nIHRoZSBub2lzZSBsZXZlbCBvZiB0aGUgY2FwdHVyZWQgaW1hZ2VzLjx3YnIvPjwvcD4KKzxwPlVubGlrZSB0aGUgb3RoZXIgc2NlbmUgbW9kZXMsPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+CityZW1haW4gYWN0aXZlIHdoZW4gRkFDRV88d2JyLz5QUklPUklUWV88d2JyLz5MT1dfPHdici8+TElHSFQgaXMgc2V0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRFVklDRV9DVVNUT01fU1RBUlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1faGlkZGVuIj5baGlkZGVuXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTAwPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5TY2VuZSBtb2RlIHZhbHVlcyB3aXRoaW4gdGhlIHJhbmdlIG9mCis8Y29kZT5bREVWSUNFXzx3YnIvPkNVU1RPTV88d2JyLz5TVEFSVCw8d2JyLz4gREVWSUNFXzx3YnIvPkNVU1RPTV88d2JyLz5FTkRdPC9jb2RlPiBhcmUgcmVzZXJ2ZWQgZm9yIGRldmljZSBzcGVjaWZpYworY3VzdG9taXplZCBzY2VuZSBtb2Rlcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ERVZJQ0VfQ1VTVE9NX0VORDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9oaWRkZW4iPltoaWRkZW5dPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xMjc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlNjZW5lIG1vZGUgdmFsdWVzIHdpdGhpbiB0aGUgcmFuZ2Ugb2YKKzxjb2RlPltERVZJQ0VfPHdici8+Q1VTVE9NXzx3YnIvPlNUQVJULDx3YnIvPiBERVZJQ0VfPHdici8+Q1VTVE9NXzx3YnIvPkVORF08L2NvZGU+IGFyZSByZXNlcnZlZCBmb3IgZGV2aWNlIHNwZWNpZmljCitjdXN0b21pemVkIHNjZW5lIG1vZGVzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkNvbnRyb2wgZm9yIHdoaWNoIHNjZW5lIG1vZGUgaXMgY3VycmVudGx5IGFjdGl2ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+U2NlbmU8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U2NlbmUgbW9kZXMgYXJlIGN1c3RvbSBjYW1lcmEgbW9kZXMgb3B0aW1pemVkIGZvciBhIGNlcnRhaW4gc2V0IG9mIGNvbmRpdGlvbnMgYW5kCitjYXB0dXJlIHNldHRpbmdzLjx3YnIvPjwvcD4KKzxwPlRoaXMgaXMgdGhlIG1vZGUgdGhhdCB0aGF0IGlzIGFjdGl2ZSB3aGVuCis8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9PSBVU0VfPHdici8+U0NFTkVfPHdici8+TU9ERTwvY29kZT4uPHdici8+IEFzaWRlIGZyb20gRkFDRV88d2JyLz5QUklPUklUWSw8d2JyLz4gdGhlc2UgbW9kZXMgd2lsbAorZGlzYWJsZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+Cit3aGlsZSBpbiB1c2UuPHdici8+PC9wPgorPHA+VGhlIGludGVycHJldGF0aW9uIGFuZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZSBzY2VuZSBtb2RlcyBpcyBsZWZ0Cit0byB0aGUgaW1wbGVtZW50b3Igb2YgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+IFRoZWlyIGJlaGF2aW9yIHdpbGwgbm90IGJlCitjb25zaXN0ZW50IGFjcm9zcyBhbGwgZGV2aWNlcyw8d2JyLz4gYW5kIGFueSBnaXZlbiBkZXZpY2UgbWF5IG9ubHkgaW1wbGVtZW50CithIHN1YnNldCBvZiB0aGVzZSBtb2Rlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBpbXBsZW1lbnRhdGlvbnMgdGhhdCBpbmNsdWRlIHNjZW5lIG1vZGVzIGFyZSBleHBlY3RlZCB0byBwcm92aWRlCit0aGUgcGVyLXNjZW5lIHNldHRpbmdzIHRvIHVzZSBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZU92ZXJyaWRlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnNjZW5lPHdici8+TW9kZTx3YnIvPk92ZXJyaWRlczwvYT4uPHdici8+PC9wPgorPHA+Rm9yIEhJR0hfPHdici8+U1BFRURfPHdici8+VklERU8gbW9kZSw8d2JyLz4gaWYgaXQgaXMgaW5jbHVkZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlU2NlbmVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlNjZW5lPHdici8+TW9kZXM8L2E+LDx3YnIvPgordGhlIEhBTCBtdXN0IGxpc3Qgc3VwcG9ydGVkIHZpZGVvIHNpemUgYW5kIGZwcyByYW5nZSBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhpZ2g8d2JyLz5TcGVlZDx3YnIvPlZpZGVvPHdici8+Q29uZmlndXJhdGlvbnM8L2E+Ljx3YnIvPiBGb3IgYSBnaXZlbiBzaXplLDx3YnIvPiBlLjx3YnIvPmcuPHdici8+CisxMjgweDcyMCw8d2JyLz4gaWYgdGhlIEhBTCBoYXMgdHdvIGRpZmZlcmVudCBzZW5zb3IgY29uZmlndXJhdGlvbnMgZm9yIG5vcm1hbCBzdHJlYW1pbmcKK21vZGUgYW5kIGhpZ2ggc3BlZWQgc3RyZWFtaW5nLDx3YnIvPiB3aGVuIHRoaXMgc2NlbmUgbW9kZSBpcyBzZXQvPHdici8+cmVzZXQgaW4gYSBzZXF1ZW5jZSBvZiBjYXB0dXJlCityZXF1ZXN0cyw8d2JyLz4gdGhlIEhBTCBtYXkgaGF2ZSB0byBzd2l0Y2ggYmV0d2VlbiBkaWZmZXJlbnQgc2Vuc29yIG1vZGVzLjx3YnIvPgorVGhpcyBtb2RlIGlzIGRlcHJlY2F0ZWQgaW4gSEFMMy48d2JyLz4zLDx3YnIvPiB0byBzdXBwb3J0IGhpZ2ggc3BlZWQgdmlkZW8gcmVjb3JkaW5nLDx3YnIvPiBwbGVhc2UgaW1wbGVtZW50Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+SGlnaDx3YnIvPlNwZWVkPHdici8+VmlkZW88d2JyLz5Db25maWd1cmF0aW9uczwvYT4gYW5kIENPTlNUUkFJTkVEXzx3YnIvPkhJR0hfPHdici8+U1BFRURfPHdici8+VklERU8KK2NhcGJpbGl0eSBkZWZpbmVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+dmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VmlkZW8gc3RhYmlsaXphdGlvbiBpcyBkaXNhYmxlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VmlkZW8gc3RhYmlsaXphdGlvbiBpcyBlbmFibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdmlkZW8gc3RhYmlsaXphdGlvbiBpcworYWN0aXZlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VmlkZW8gc3RhYmlsaXphdGlvbiBhdXRvbWF0aWNhbGx5IHdhcnBzIGltYWdlcyBmcm9tCit0aGUgY2FtZXJhIGluIG9yZGVyIHRvIHN0YWJpbGl6ZSBtb3Rpb24gYmV0d2VlbiBjb25zZWN1dGl2ZSBmcmFtZXMuPHdici8+PC9wPgorPHA+SWYgZW5hYmxlZCw8d2JyLz4gdmlkZW8gc3RhYmlsaXphdGlvbiBjYW4gbW9kaWZ5IHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+IHRvIGtlZXAgdGhlIHZpZGVvIHN0cmVhbSBzdGFiaWxpemVkLjx3YnIvPjwvcD4KKzxwPlN3aXRjaGluZyBiZXR3ZWVuIGRpZmZlcmVudCB2aWRlbyBzdGFiaWxpemF0aW9uIG1vZGVzIG1heSB0YWtlIHNldmVyYWwKK2ZyYW1lcyB0byBpbml0aWFsaXplLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHJlcG9ydCB0aGUgY3VycmVudCBtb2RlCitpbiBjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IFdoZW4gIk9OIiBtb2RlIGlzIHJlcXVlc3RlZCw8d2JyLz4KK3RoZSB2aWRlbyBzdGFiaWxpemF0aW9uIG1vZGVzIGluIHRoZSBmaXJzdCBzZXZlcmFsIGNhcHR1cmUgcmVzdWx0cyBtYXkKK3N0aWxsIGJlICJPRkYiLDx3YnIvPiBhbmQgaXQgd2lsbCBiZWNvbWUgIk9OIiB3aGVuIHRoZSBpbml0aWFsaXphdGlvbiBpcworZG9uZS48d2JyLz48L3A+Cis8cD5JbiBhZGRpdGlvbiw8d2JyLz4gbm90IGFsbCByZWNvcmRpbmcgc2l6ZXMgb3IgZnJhbWUgcmF0ZXMgbWF5IGJlIHN1cHBvcnRlZCBmb3IKK3N0YWJpbGl6YXRpb24gYnkgYSBkZXZpY2UgdGhhdCByZXBvcnRzIHN0YWJpbGl6YXRpb24gc3VwcG9ydC48d2JyLz4gSXQgaXMgZ3VhcmFudGVlZAordGhhdCBhbiBvdXRwdXQgdGFyZ2V0aW5nIGEgTWVkaWFSZWNvcmRlciBvciBNZWRpYUNvZGVjIHdpbGwgYmUgc3RhYmlsaXplZCBpZgordGhlIHJlY29yZGluZyByZXNvbHV0aW9uIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxOTIwIHggMTA4MCAod2lkdGggbGVzcyB0aGFuCitvciBlcXVhbCB0byAxOTIwLDx3YnIvPiBoZWlnaHQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEwODApLDx3YnIvPiBhbmQgdGhlIHJlY29yZGluZworZnJhbWUgcmF0ZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMzBmcHMuPHdici8+ICBBdCBvdGhlciBzaXplcyw8d2JyLz4gdGhlIENhcHR1cmVSZXN1bHQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnZpZGVvPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+IGZpZWxkIHdpbGwgcmV0dXJuCitPRkYgaWYgdGhlIHJlY29yZGluZyBvdXRwdXQgaXMgbm90IHN0YWJpbGl6ZWQsPHdici8+IG9yIGlmIHRoZXJlIGFyZSBubyBvdXRwdXQKK1N1cmZhY2UgdHlwZXMgdGhhdCBjYW4gYmUgc3RhYmlsaXplZC48d2JyLz48L3A+Cis8cD5JZiBhIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgYm90aCB0aGlzIG1vZGUgYW5kIE9JUworKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+b3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiksPHdici8+IHR1cm5pbmcgYm90aCBtb2RlcyBvbiBtYXkKK3Byb2R1Y2UgdW5kZXNpcmFibGUgaW50ZXJhY3Rpb24sPHdici8+IHNvIGl0IGlzIHJlY29tbWVuZGVkIG5vdCB0byBlbmFibGUKK2JvdGggYXQgdGhlIHNhbWUgdGltZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5wb3N0PHdici8+UmF3PHdici8+U2Vuc2l0aXZpdHk8d2JyLz5Cb29zdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBhZGRpdGlvbmFsIHNlbnNpdGl2aXR5IGJvb3N0IGFwcGxpZWQgdG8gb3V0cHV0IGltYWdlcworYWZ0ZXIgUkFXIHNlbnNvciBkYXRhIGlzIGNhcHR1cmVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBJU08gYXJpdGhtZXRpYyB1bml0cyw8d2JyLz4gdGhlIHNhbWUgYXMgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHkKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdFJhbmdlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+cG9zdDx3YnIvPlJhdzx3YnIvPlNlbnNpdGl2aXR5PHdici8+Qm9vc3Q8d2JyLz5SYW5nZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNvbWUgY2FtZXJhIGRldmljZXMgc3VwcG9ydCBhZGRpdGlvbmFsIGRpZ2l0YWwgc2Vuc2l0aXZpdHkgYm9vc3RpbmcgaW4gdGhlCitjYW1lcmEgcHJvY2Vzc2luZyBwaXBlbGluZSBhZnRlciBzZW5zb3IgUkFXIGltYWdlIGlzIGNhcHR1cmVkLjx3YnIvPgorU3VjaCBhIGJvb3N0IHdpbGwgYmUgYXBwbGllZCB0byBZVVYvPHdici8+SlBFRyBmb3JtYXQgb3V0cHV0IGltYWdlcyBidXQgd2lsbCBub3QKK2hhdmUgZWZmZWN0IG9uIFJBVyBvdXRwdXQgZm9ybWF0cyBsaWtlIFJBV188d2JyLz5TRU5TT1IsPHdici8+IFJBVzEwLDx3YnIvPiBSQVcxMiBvciBSQVdfPHdici8+T1BBUVVFLjx3YnIvPjwvcD4KKzxwPlRoaXMga2V5IHdpbGwgYmUgPGNvZGU+bnVsbDwvY29kZT4gZm9yIGRldmljZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBhbnkgUkFXIGZvcm1hdAorb3V0cHV0cy48d2JyLz4gRm9yIGRldmljZXMgdGhhdCBkbyBzdXBwb3J0IFJBVyBmb3JtYXQgb3V0cHV0cyw8d2JyLz4gdGhpcyBrZXkgd2lsbCBhbHdheXMKK3ByZXNlbnQsPHdici8+IGFuZCBpZiBhIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHBvc3QgUkFXIHNlbnNpdGl2aXR5IGJvb3N0LDx3YnIvPiBpdCB3aWxsCitsaXN0IDxjb2RlPjEwMDwvY29kZT4gaW4gdGhpcyBrZXkuPHdici8+PC9wPgorPHA+SWYgdGhlIGNhbWVyYSBkZXZpY2UgY2Fubm90IGFwcGx5IHRoZSBleGFjdCBib29zdCByZXF1ZXN0ZWQsPHdici8+IGl0IHdpbGwgcmVkdWNlIHRoZQorYm9vc3QgdG8gdGhlIG5lYXJlc3Qgc3VwcG9ydGVkIHZhbHVlLjx3YnIvPgorVGhlIGZpbmFsIGJvb3N0IHZhbHVlIHVzZWQgd2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIG91dHB1dCBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5Gb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgcG9zdCBSQVcgc2Vuc2l0aXZpdHkgYm9vc3QsPHdici8+IHRoZSBZVVYvPHdici8+SlBFRyBvdXRwdXQgaW1hZ2VzCitvZiBzdWNoIGRldmljZSB3aWxsIGhhdmUgdGhlIHRvdGFsIHNlbnNpdGl2aXR5IG9mCis8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiAqIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3QiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5wb3N0PHdici8+UmF3PHdici8+U2Vuc2l0aXZpdHk8d2JyLz5Cb29zdDwvYT4gLzx3YnIvPiAxMDA8L2NvZGU+CitUaGUgc2Vuc2l0aXZpdHkgb2YgUkFXIGZvcm1hdCBpbWFnZXMgd2lsbCBhbHdheXMgYmUgPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT48L2NvZGU+PC9wPgorPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiBpcyBzZXQgdG8KK09GRjsgb3RoZXJ3aXNlIHRoZSBhdXRvLWV4cG9zdXJlIGFsZ29yaXRobSB3aWxsIG92ZXJyaWRlIHRoaXMgdmFsdWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9kZW1vc2FpYyIgY2xhc3M9InNlY3Rpb24iPmRlbW9zYWljPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuZGVtb3NhaWMubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmRlbW9zYWljLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+TWluaW1hbCBvciBubyBzbG93ZG93biBvZiBmcmFtZSByYXRlIGNvbXBhcmVkIHRvCitCYXllciBSQVcgb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SW1wcm92ZWQgcHJvY2Vzc2luZyBxdWFsaXR5IGJ1dCB0aGUgZnJhbWUgcmF0ZSBtaWdodCBiZSBzbG93ZWQgZG93bgorcmVsYXRpdmUgdG8gcmF3IG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Db250cm9scyB0aGUgcXVhbGl0eSBvZiB0aGUgZGVtb3NhaWNpbmcKK3Byb2Nlc3NpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX2VkZ2UiIGNsYXNzPSJzZWN0aW9uIj5lZGdlPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuZWRnZS5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5tb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gZWRnZSBlbmhhbmNlbWVudCBpcyBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFwcGx5IGVkZ2UgZW5oYW5jZW1lbnQgYXQgYSBxdWFsaXR5IGxldmVsIHRoYXQgZG9lcyBub3Qgc2xvdyBkb3duIGZyYW1lIHJhdGUKK3JlbGF0aXZlIHRvIHNlbnNvciBvdXRwdXQuPHdici8+IEl0IG1heSBiZSB0aGUgc2FtZSBhcyBPRkYgaWYgZWRnZSBlbmhhbmNlbWVudCB3aWxsCitzbG93IGRvd24gZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BcHBseSBoaWdoLXF1YWxpdHkgZWRnZSBlbmhhbmNlbWVudCw8d2JyLz4gYXQgYSBjb3N0IG9mIHBvc3NpYmx5IHJlZHVjZWQgb3V0cHV0IGZyYW1lIHJhdGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+WkVST19TSFVUVEVSX0xBRzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RWRnZSBlbmhhbmNlbWVudCBpcyBhcHBsaWVkIGF0IGRpZmZlcmVudCBsZXZlbHMgZm9yIGRpZmZlcmVudCBvdXRwdXQgc3RyZWFtcyw8d2JyLz4KK2Jhc2VkIG9uIHJlc29sdXRpb24uPHdici8+IFN0cmVhbXMgYXQgbWF4aW11bSByZWNvcmRpbmcgcmVzb2x1dGlvbiAoc2VlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ2FwdHVyZVNlc3Npb24iPkNhbWVyYURldmljZSNjcmVhdGVDYXB0dXJlU2Vzc2lvbjwvYT4pIG9yIGJlbG93IGhhdmUKK2VkZ2UgZW5oYW5jZW1lbnQgYXBwbGllZCw8d2JyLz4gd2hpbGUgaGlnaGVyLXJlc29sdXRpb24gc3RyZWFtcyBoYXZlIG5vIGVkZ2UgZW5oYW5jZW1lbnQKK2FwcGxpZWQuPHdici8+IFRoZSBsZXZlbCBvZiBlZGdlIGVuaGFuY2VtZW50IGZvciBsb3ctcmVzb2x1dGlvbiBzdHJlYW1zIGlzIHR1bmVkIHNvIHRoYXQKK2ZyYW1lIHJhdGUgaXMgbm90IGltcGFjdGVkLDx3YnIvPiBhbmQgdGhlIHF1YWxpdHkgaXMgZXF1YWwgdG8gb3IgYmV0dGVyIHRoYW4gRkFTVCAoc2luY2UgaXQKK2lzIG9ubHkgYXBwbGllZCB0byBsb3dlci1yZXNvbHV0aW9uIG91dHB1dHMsPHdici8+IHF1YWxpdHkgbWF5IGltcHJvdmUgZnJvbSBGQVNUKS48d2JyLz48L3A+Cis8cD5UaGlzIG1vZGUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSBhcHBsaWNhdGlvbnMgb3BlcmF0aW5nIGluIGEgemVyby1zaHV0dGVyLWxhZyBtb2RlCit3aXRoIFlVViBvciBQUklWQVRFIHJlcHJvY2Vzc2luZyw8d2JyLz4gd2hlcmUgdGhlIGFwcGxpY2F0aW9uIGNvbnRpbnVvdXNseSBjYXB0dXJlcworaGlnaC1yZXNvbHV0aW9uIGludGVybWVkaWF0ZSBidWZmZXJzIGludG8gYSBjaXJjdWxhciBidWZmZXIsPHdici8+IGZyb20gd2hpY2ggYSBmaW5hbCBpbWFnZSBpcworcHJvZHVjZWQgdmlhIHJlcHJvY2Vzc2luZyB3aGVuIGEgdXNlciB0YWtlcyBhIHBpY3R1cmUuPHdici8+ICBGb3Igc3VjaCBhIHVzZSBjYXNlLDx3YnIvPiB0aGUKK2hpZ2gtcmVzb2x1dGlvbiBidWZmZXJzIG11c3Qgbm90IGhhdmUgZWRnZSBlbmhhbmNlbWVudCBhcHBsaWVkIHRvIG1heGltaXplIGVmZmljaWVuY3kgb2YKK3ByZXZpZXcgYW5kIHRvIGF2b2lkIGRvdWJsZS1hcHBseWluZyBlbmhhbmNlbWVudCB3aGVuIHJlcHJvY2Vzc2VkLDx3YnIvPiB3aGlsZSBsb3ctcmVzb2x1dGlvbgorYnVmZmVycyAodXNlZCBmb3IgcmVjb3JkaW5nIG9yIHByZXZpZXcsPHdici8+IGdlbmVyYWxseSkgbmVlZCBlZGdlIGVuaGFuY2VtZW50IGFwcGxpZWQgZm9yCityZWFzb25hYmxlIHByZXZpZXcgcXVhbGl0eS48d2JyLz48L3A+Cis8cD5UaGlzIG1vZGUgaXMgZ3VhcmFudGVlZCB0byBiZSBzdXBwb3J0ZWQgYnkgZGV2aWNlcyB0aGF0IHN1cHBvcnQgZWl0aGVyIHRoZQorWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyBvciBQUklWQVRFXzx3YnIvPlJFUFJPQ0VTU0lORyBjYXBhYmlsaXRpZXMKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGxpc3RzIGVpdGhlciBvZiB0aG9zZSBjYXBhYmlsaXRpZXMpIGFuZCBpdCB3aWxsCitiZSB0aGUgZGVmYXVsdCBtb2RlIGZvciBDQU1FUkEzXzx3YnIvPlRFTVBMQVRFXzx3YnIvPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgdGVtcGxhdGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3BlcmF0aW9uIG1vZGUgZm9yIGVkZ2UKK2VuaGFuY2VtZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5lZGdlLmF2YWlsYWJsZUVkZ2VNb2RlcyI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkVkZ2U8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SRVBST0MiPlJFUFJPQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkVkZ2UgZW5oYW5jZW1lbnQgaW1wcm92ZXMgc2hhcnBuZXNzIGFuZCBkZXRhaWxzIGluIHRoZSBjYXB0dXJlZCBpbWFnZS48d2JyLz4gT0ZGIG1lYW5zCitubyBlbmhhbmNlbWVudCB3aWxsIGJlIGFwcGxpZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+RkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgYm90aCBtZWFuIGNhbWVyYSBkZXZpY2UgZGV0ZXJtaW5lZCBlbmhhbmNlbWVudAord2lsbCBiZSBhcHBsaWVkLjx3YnIvPiBISUdIXzx3YnIvPlFVQUxJVFkgbW9kZSBpbmRpY2F0ZXMgdGhhdCB0aGUKK2NhbWVyYSBkZXZpY2Ugd2lsbCB1c2UgdGhlIGhpZ2hlc3QtcXVhbGl0eSBlbmhhbmNlbWVudCBhbGdvcml0aG1zLDx3YnIvPgorZXZlbiBpZiBpdCBzbG93cyBkb3duIGNhcHR1cmUgcmF0ZS48d2JyLz4gRkFTVCBtZWFucyB0aGUgY2FtZXJhIGRldmljZSB3aWxsCitub3Qgc2xvdyBkb3duIGNhcHR1cmUgcmF0ZSB3aGVuIGFwcGx5aW5nIGVkZ2UgZW5oYW5jZW1lbnQuPHdici8+IEZBU1QgbWF5IGJlIHRoZSBzYW1lIGFzIE9GRiBpZgorZWRnZSBlbmhhbmNlbWVudCB3aWxsIHNsb3cgZG93biBjYXB0dXJlIHJhdGUuPHdici8+IEV2ZXJ5IG91dHB1dCBzdHJlYW0gd2lsbCBoYXZlIGEgc2ltaWxhcgorYW1vdW50IG9mIGVuaGFuY2VtZW50IGFwcGxpZWQuPHdici8+PC9wPgorPHA+WkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyBpcyBtZWFudCB0byBiZSB1c2VkIGJ5IGFwcGxpY2F0aW9ucyB0aGF0IG1haW50YWluIGEgY29udGludW91cyBjaXJjdWxhcgorYnVmZmVyIG9mIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXMgZHVyaW5nIHByZXZpZXcgYW5kIHJlcHJvY2VzcyBpbWFnZShzKSBmcm9tIHRoYXQgYnVmZmVyCitpbnRvIGEgZmluYWwgY2FwdHVyZSB3aGVuIHRyaWdnZXJlZCBieSB0aGUgdXNlci48d2JyLz4gSW4gdGhpcyBtb2RlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBhcHBsaWVzCitlZGdlIGVuaGFuY2VtZW50IHRvIGxvdy1yZXNvbHV0aW9uIHN0cmVhbXMgKGJlbG93IG1heGltdW0gcmVjb3JkaW5nIHJlc29sdXRpb24pIHRvCittYXhpbWl6ZSBwcmV2aWV3IHF1YWxpdHksPHdici8+IGJ1dCBkb2VzIG5vdCBhcHBseSBlZGdlIGVuaGFuY2VtZW50IHRvIGhpZ2gtcmVzb2x1dGlvbiBzdHJlYW1zLDx3YnIvPgorc2luY2UgdGhvc2Ugd2lsbCBiZSByZXByb2Nlc3NlZCBsYXRlciBpZiBuZWNlc3NhcnkuPHdici8+PC9wPgorPHA+Rm9yIFlVVl88d2JyLz5SRVBST0NFU1NJTkcsPHdici8+IHRoZXNlIEZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIG1vZGVzIGJvdGggbWVhbiB0aGF0IHRoZSBjYW1lcmEKK2RldmljZSB3aWxsIGFwcGx5IEZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIFlVVi1kb21haW4gZWRnZSBlbmhhbmNlbWVudCw8d2JyLz4gcmVzcGVjdGl2ZWx5Ljx3YnIvPgorVGhlIGNhbWVyYSBkZXZpY2UgbWF5IGFkanVzdCBpdHMgaW50ZXJuYWwgZWRnZSBlbmhhbmNlbWVudCBwYXJhbWV0ZXJzIGZvciBiZXN0CitpbWFnZSBxdWFsaXR5IGJhc2VkIG9uIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPmFuZHJvaWQuPHdici8+cmVwcm9jZXNzLjx3YnIvPmVmZmVjdGl2ZTx3YnIvPkV4cG9zdXJlPHdici8+RmFjdG9yPC9hPiw8d2JyLz4gaWYgaXQgaXMgc2V0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIFlVVl88d2JyLz5SRVBST0NFU1NJTkcgVGhlIEhBTCBjYW4gdXNlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+YW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+ZWZmZWN0aXZlPHdici8+RXhwb3N1cmU8d2JyLz5GYWN0b3I8L2E+IHRvCithZGp1c3QgdGhlIGludGVybmFsIGVkZ2UgZW5oYW5jZW1lbnQgcmVkdWN0aW9uIHBhcmFtZXRlcnMgYXBwcm9wcmlhdGVseSB0byBnZXQgdGhlIGJlc3QKK3F1YWxpdHkgaW1hZ2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuZWRnZS5zdHJlbmd0aCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+c3RyZW5ndGgKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29udHJvbCB0aGUgYW1vdW50IG9mIGVkZ2UgZW5oYW5jZW1lbnQKK2FwcGxpZWQgdG8gdGhlIGltYWdlczwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICAxLTEwOyAxMCBpcyBtYXhpbXVtIHNoYXJwZW5pbmcKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmVkZ2UuYXZhaWxhYmxlRWRnZU1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5hdmFpbGFibGU8d2JyLz5FZGdlPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bGlzdCBvZiBlbnVtczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgZWRnZSBlbmhhbmNlbWVudCBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZWRnZS5tb2RlIj5hbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+bW9kZTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhCitkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5tb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RnVsbC1jYXBhYmlsaXR5IGNhbWVyYSBkZXZpY2VzIG11c3QgYWx3YXlzIHN1cHBvcnQgT0ZGOyBjYW1lcmEgZGV2aWNlcyB0aGF0IHN1cHBvcnQKK1lVVl88d2JyLz5SRVBST0NFU1NJTkcgb3IgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgd2lsbCBsaXN0IFpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUc7IGFsbCBkZXZpY2VzIHdpbGwKK2xpc3QgRkFTVC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBtdXN0IHN1cHBvcnQgYm90aCBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgaWYgZWRnZSBlbmhhbmNlbWVudCBjb250cm9sIGlzIGF2YWlsYWJsZQorb24gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGJ1dCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgdGhlIHNhbWUgZm9yIGJvdGggbW9kZXMuPHdici8+CitUaGF0IGlzLDx3YnIvPiBpZiB0aGUgaGlnaGVzdCBxdWFsaXR5IGltcGxlbWVudGF0aW9uIG9uIHRoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHNsb3cgZG93bgorY2FwdHVyZSByYXRlLDx3YnIvPiB0aGVuIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5lZGdlLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBlZGdlIGVuaGFuY2VtZW50IGlzIGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXBwbHkgZWRnZSBlbmhhbmNlbWVudCBhdCBhIHF1YWxpdHkgbGV2ZWwgdGhhdCBkb2VzIG5vdCBzbG93IGRvd24gZnJhbWUgcmF0ZQorcmVsYXRpdmUgdG8gc2Vuc29yIG91dHB1dC48d2JyLz4gSXQgbWF5IGJlIHRoZSBzYW1lIGFzIE9GRiBpZiBlZGdlIGVuaGFuY2VtZW50IHdpbGwKK3Nsb3cgZG93biBmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHNlbnNvci48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFwcGx5IGhpZ2gtcXVhbGl0eSBlZGdlIGVuaGFuY2VtZW50LDx3YnIvPiBhdCBhIGNvc3Qgb2YgcG9zc2libHkgcmVkdWNlZCBvdXRwdXQgZnJhbWUgcmF0ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5aRVJPX1NIVVRURVJfTEFHPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5FZGdlIGVuaGFuY2VtZW50IGlzIGFwcGxpZWQgYXQgZGlmZmVyZW50IGxldmVscyBmb3IgZGlmZmVyZW50IG91dHB1dCBzdHJlYW1zLDx3YnIvPgorYmFzZWQgb24gcmVzb2x1dGlvbi48d2JyLz4gU3RyZWFtcyBhdCBtYXhpbXVtIHJlY29yZGluZyByZXNvbHV0aW9uIChzZWUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNhcHR1cmVTZXNzaW9uPC9hPikgb3IgYmVsb3cgaGF2ZQorZWRnZSBlbmhhbmNlbWVudCBhcHBsaWVkLDx3YnIvPiB3aGlsZSBoaWdoZXItcmVzb2x1dGlvbiBzdHJlYW1zIGhhdmUgbm8gZWRnZSBlbmhhbmNlbWVudAorYXBwbGllZC48d2JyLz4gVGhlIGxldmVsIG9mIGVkZ2UgZW5oYW5jZW1lbnQgZm9yIGxvdy1yZXNvbHV0aW9uIHN0cmVhbXMgaXMgdHVuZWQgc28gdGhhdAorZnJhbWUgcmF0ZSBpcyBub3QgaW1wYWN0ZWQsPHdici8+IGFuZCB0aGUgcXVhbGl0eSBpcyBlcXVhbCB0byBvciBiZXR0ZXIgdGhhbiBGQVNUIChzaW5jZSBpdAoraXMgb25seSBhcHBsaWVkIHRvIGxvd2VyLXJlc29sdXRpb24gb3V0cHV0cyw8d2JyLz4gcXVhbGl0eSBtYXkgaW1wcm92ZSBmcm9tIEZBU1QpLjx3YnIvPjwvcD4KKzxwPlRoaXMgbW9kZSBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5IGFwcGxpY2F0aW9ucyBvcGVyYXRpbmcgaW4gYSB6ZXJvLXNodXR0ZXItbGFnIG1vZGUKK3dpdGggWVVWIG9yIFBSSVZBVEUgcmVwcm9jZXNzaW5nLDx3YnIvPiB3aGVyZSB0aGUgYXBwbGljYXRpb24gY29udGludW91c2x5IGNhcHR1cmVzCitoaWdoLXJlc29sdXRpb24gaW50ZXJtZWRpYXRlIGJ1ZmZlcnMgaW50byBhIGNpcmN1bGFyIGJ1ZmZlciw8d2JyLz4gZnJvbSB3aGljaCBhIGZpbmFsIGltYWdlIGlzCitwcm9kdWNlZCB2aWEgcmVwcm9jZXNzaW5nIHdoZW4gYSB1c2VyIHRha2VzIGEgcGljdHVyZS48d2JyLz4gIEZvciBzdWNoIGEgdXNlIGNhc2UsPHdici8+IHRoZQoraGlnaC1yZXNvbHV0aW9uIGJ1ZmZlcnMgbXVzdCBub3QgaGF2ZSBlZGdlIGVuaGFuY2VtZW50IGFwcGxpZWQgdG8gbWF4aW1pemUgZWZmaWNpZW5jeSBvZgorcHJldmlldyBhbmQgdG8gYXZvaWQgZG91YmxlLWFwcGx5aW5nIGVuaGFuY2VtZW50IHdoZW4gcmVwcm9jZXNzZWQsPHdici8+IHdoaWxlIGxvdy1yZXNvbHV0aW9uCitidWZmZXJzICh1c2VkIGZvciByZWNvcmRpbmcgb3IgcHJldmlldyw8d2JyLz4gZ2VuZXJhbGx5KSBuZWVkIGVkZ2UgZW5oYW5jZW1lbnQgYXBwbGllZCBmb3IKK3JlYXNvbmFibGUgcHJldmlldyBxdWFsaXR5Ljx3YnIvPjwvcD4KKzxwPlRoaXMgbW9kZSBpcyBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZCBieSBkZXZpY2VzIHRoYXQgc3VwcG9ydCBlaXRoZXIgdGhlCitZVVZfPHdici8+UkVQUk9DRVNTSU5HIG9yIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdGllcworKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gbGlzdHMgZWl0aGVyIG9mIHRob3NlIGNhcGFiaWxpdGllcykgYW5kIGl0IHdpbGwKK2JlIHRoZSBkZWZhdWx0IG1vZGUgZm9yIENBTUVSQTNfPHdici8+VEVNUExBVEVfPHdici8+WkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyB0ZW1wbGF0ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpb24gbW9kZSBmb3IgZWRnZQorZW5oYW5jZW1lbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmVkZ2UuYXZhaWxhYmxlRWRnZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+YXZhaWxhYmxlPHdici8+RWRnZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RWRnZSBlbmhhbmNlbWVudCBpbXByb3ZlcyBzaGFycG5lc3MgYW5kIGRldGFpbHMgaW4gdGhlIGNhcHR1cmVkIGltYWdlLjx3YnIvPiBPRkYgbWVhbnMKK25vIGVuaGFuY2VtZW50IHdpbGwgYmUgYXBwbGllZCBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5GQVNULzx3YnIvPkhJR0hfPHdici8+UVVBTElUWSBib3RoIG1lYW4gY2FtZXJhIGRldmljZSBkZXRlcm1pbmVkIGVuaGFuY2VtZW50Cit3aWxsIGJlIGFwcGxpZWQuPHdici8+IEhJR0hfPHdici8+UVVBTElUWSBtb2RlIGluZGljYXRlcyB0aGF0IHRoZQorY2FtZXJhIGRldmljZSB3aWxsIHVzZSB0aGUgaGlnaGVzdC1xdWFsaXR5IGVuaGFuY2VtZW50IGFsZ29yaXRobXMsPHdici8+CitldmVuIGlmIGl0IHNsb3dzIGRvd24gY2FwdHVyZSByYXRlLjx3YnIvPiBGQVNUIG1lYW5zIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwKK25vdCBzbG93IGRvd24gY2FwdHVyZSByYXRlIHdoZW4gYXBwbHlpbmcgZWRnZSBlbmhhbmNlbWVudC48d2JyLz4gRkFTVCBtYXkgYmUgdGhlIHNhbWUgYXMgT0ZGIGlmCitlZGdlIGVuaGFuY2VtZW50IHdpbGwgc2xvdyBkb3duIGNhcHR1cmUgcmF0ZS48d2JyLz4gRXZlcnkgb3V0cHV0IHN0cmVhbSB3aWxsIGhhdmUgYSBzaW1pbGFyCithbW91bnQgb2YgZW5oYW5jZW1lbnQgYXBwbGllZC48d2JyLz48L3A+Cis8cD5aRVJPXzx3YnIvPlNIVVRURVJfPHdici8+TEFHIGlzIG1lYW50IHRvIGJlIHVzZWQgYnkgYXBwbGljYXRpb25zIHRoYXQgbWFpbnRhaW4gYSBjb250aW51b3VzIGNpcmN1bGFyCitidWZmZXIgb2YgaGlnaC1yZXNvbHV0aW9uIGltYWdlcyBkdXJpbmcgcHJldmlldyBhbmQgcmVwcm9jZXNzIGltYWdlKHMpIGZyb20gdGhhdCBidWZmZXIKK2ludG8gYSBmaW5hbCBjYXB0dXJlIHdoZW4gdHJpZ2dlcmVkIGJ5IHRoZSB1c2VyLjx3YnIvPiBJbiB0aGlzIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIGFwcGxpZXMKK2VkZ2UgZW5oYW5jZW1lbnQgdG8gbG93LXJlc29sdXRpb24gc3RyZWFtcyAoYmVsb3cgbWF4aW11bSByZWNvcmRpbmcgcmVzb2x1dGlvbikgdG8KK21heGltaXplIHByZXZpZXcgcXVhbGl0eSw8d2JyLz4gYnV0IGRvZXMgbm90IGFwcGx5IGVkZ2UgZW5oYW5jZW1lbnQgdG8gaGlnaC1yZXNvbHV0aW9uIHN0cmVhbXMsPHdici8+CitzaW5jZSB0aG9zZSB3aWxsIGJlIHJlcHJvY2Vzc2VkIGxhdGVyIGlmIG5lY2Vzc2FyeS48d2JyLz48L3A+Cis8cD5Gb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyw8d2JyLz4gdGhlc2UgRkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgbW9kZXMgYm90aCBtZWFuIHRoYXQgdGhlIGNhbWVyYQorZGV2aWNlIHdpbGwgYXBwbHkgRkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgWVVWLWRvbWFpbiBlZGdlIGVuaGFuY2VtZW50LDx3YnIvPiByZXNwZWN0aXZlbHkuPHdici8+CitUaGUgY2FtZXJhIGRldmljZSBtYXkgYWRqdXN0IGl0cyBpbnRlcm5hbCBlZGdlIGVuaGFuY2VtZW50IHBhcmFtZXRlcnMgZm9yIGJlc3QKK2ltYWdlIHF1YWxpdHkgYmFzZWQgb24gdGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+YW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+ZWZmZWN0aXZlPHdici8+RXhwb3N1cmU8d2JyLz5GYWN0b3I8L2E+LDx3YnIvPiBpZiBpdCBpcyBzZXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyBUaGUgSEFMIGNhbiB1c2UgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj5hbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcjwvYT4gdG8KK2FkanVzdCB0aGUgaW50ZXJuYWwgZWRnZSBlbmhhbmNlbWVudCByZWR1Y3Rpb24gcGFyYW1ldGVycyBhcHByb3ByaWF0ZWx5IHRvIGdldCB0aGUgYmVzdAorcXVhbGl0eSBpbWFnZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fZmxhc2giIGNsYXNzPSJzZWN0aW9uIj5mbGFzaDwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmZsYXNoLmZpcmluZ1Bvd2VyIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+ZmlyaW5nPHdici8+UG93ZXIKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+UG93ZXIgZm9yIGZsYXNoIGZpcmluZy88d2JyLz50b3JjaDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICAxMCBpcyBtYXggcG93ZXI7IDAgaXMgbm8gZmxhc2guPHdici8+IExpbmVhcgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAgLSAxMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlBvd2VyIGZvciBzbmFwc2hvdCBtYXkgdXNlIGEgZGlmZmVyZW50IHNjYWxlIHRoYW4KK2ZvciB0b3JjaCBtb2RlLjx3YnIvPiBPbmx5IG9uZSBlbnRyeSBmb3IgdG9yY2ggbW9kZSB3aWxsIGJlCit1c2VkPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmZsYXNoLmZpcmluZ1RpbWUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5maXJpbmc8d2JyLz5UaW1lCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5GaXJpbmcgdGltZSBvZiBmbGFzaCByZWxhdGl2ZSB0byBzdGFydCBvZgorZXhwb3N1cmU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgbmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4wLShleHBvc3VyZSB0aW1lLWZsYXNoIGR1cmF0aW9uKTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkNsYW1wZWQgdG8gKDAsPHdici8+IGV4cG9zdXJlIHRpbWUgLSBmbGFzaAorZHVyYXRpb24pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5mbGFzaC5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RG8gbm90IGZpcmUgdGhlIGZsYXNoIGZvciB0aGlzIGNhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U0lOR0xFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JZiB0aGUgZmxhc2ggaXMgYXZhaWxhYmxlIGFuZCBjaGFyZ2VkLDx3YnIvPiBmaXJlIGZsYXNoCitmb3IgdGhpcyBjYXB0dXJlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRPUkNIPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UcmFuc2l0aW9uIGZsYXNoIHRvIGNvbnRpbnVvdXNseSBvbi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBtb2RlIGZvciBmb3IgdGhlIGNhbWVyYSBkZXZpY2UncyBmbGFzaCBjb250cm9sLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIHdoZW4gZmxhc2ggdW5pdCBpcyBhdmFpbGFibGUKKyg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2guaW5mby5hdmFpbGFibGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8L2E+ID09IHRydWU8L2NvZGU+KS48d2JyLz48L3A+Cis8cD5XaGVuIHRoaXMgY29udHJvbCBpcyB1c2VkLDx3YnIvPiB0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG11c3QgYmUgc2V0IHRvIE9OIG9yIE9GRi48d2JyLz4KK090aGVyd2lzZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgYXV0by1leHBvc3VyZSByZWxhdGVkIGZsYXNoIGNvbnRyb2wgKE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0gsPHdici8+CitPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0gsPHdici8+IG9yIE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0hfPHdici8+UkVERVlFKSB3aWxsIG92ZXJyaWRlIHRoaXMgY29udHJvbC48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBPRkYsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IGZpcmUgZmxhc2ggZm9yIHRoaXMgY2FwdHVyZS48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBTSU5HTEUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgZmlyZSBmbGFzaCByZWdhcmRsZXNzIG9mIHRoZSBjYW1lcmEKK2RldmljZSdzIGF1dG8tZXhwb3N1cmUgcm91dGluZSdzIHJlc3VsdC48d2JyLz4gV2hlbiB1c2VkIGluIHN0aWxsIGNhcHR1cmUgY2FzZSw8d2JyLz4gdGhpcworY29udHJvbCBzaG91bGQgYmUgdXNlZCBhbG9uZyB3aXRoIGF1dG8tZXhwb3N1cmUgKEFFKSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4pLDx3YnIvPiBvdGhlcndpc2UsPHdici8+IHRoZSBpbWFnZSBtYXkgYmUgaW5jb3JyZWN0bHkgZXhwb3NlZC48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBUT1JDSCw8d2JyLz4gdGhlIGZsYXNoIHdpbGwgYmUgb24gY29udGludW91c2x5Ljx3YnIvPiBUaGlzIG1vZGUgY2FuIGJlIHVzZWQKK2ZvciB1c2UgY2FzZXMgc3VjaCBhcyBwcmV2aWV3LDx3YnIvPiBhdXRvLWZvY3VzIGFzc2lzdCw8d2JyLz4gc3RpbGwgY2FwdHVyZSw8d2JyLz4gb3IgdmlkZW8gcmVjb3JkaW5nLjx3YnIvPjwvcD4KKzxwPlRoZSBmbGFzaCBzdGF0dXMgd2lsbCBiZSByZXBvcnRlZCBieSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmZsYXNoLnN0YXRlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPnN0YXRlPC9hPiBpbiB0aGUgY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQUxTRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VFJVRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB0aGlzIGNhbWVyYSBkZXZpY2UgaGFzIGEKK2ZsYXNoIHVuaXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaWxsIGJlIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBubyBmbGFzaCBpcyBhdmFpbGFibGUuPHdici8+PC9wPgorPHA+SWYgdGhlcmUgaXMgbm8gZmxhc2ggdW5pdCw8d2JyLz4gbm9uZSBvZiB0aGUgZmxhc2ggY29udHJvbHMgZG8KK2FueXRoaW5nLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuZmxhc2guaW5mby5jaGFyZ2VEdXJhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPmluZm8uPHdici8+Y2hhcmdlPHdici8+RHVyYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRpbWUgdGFrZW4gYmVmb3JlIGZsYXNoIGNhbiBmaXJlCithZ2FpbjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBuYW5vc2Vjb25kcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAtMWU5PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+MSBzZWNvbmQgdG9vIGxvbmcvPHdici8+dG9vIHNob3J0IGZvciByZWNoYXJnZT8gU2hvdWxkCit0aGlzIGJlIHBvd2VyLWRlcGVuZGVudD88L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5mbGFzaC5jb2xvclRlbXBlcmF0dXJlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+Y29sb3I8d2JyLz5UZW1wZXJhdHVyZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgeCw8d2JyLz55IHdoaXRlcG9pbnQgb2YgdGhlCitmbGFzaDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBwYWlyIG9mIGZsb2F0cworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAtMSBmb3IgYm90aDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmZsYXNoLm1heEVuZXJneSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPm1heDx3YnIvPkVuZXJneQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5NYXggZW5lcmd5IG91dHB1dCBvZiB0aGUgZmxhc2ggZm9yIGEgZnVsbAorcG93ZXIgc2luZ2xlIGZsYXNoPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIGx1bWVuLXNlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuZmxhc2guZmlyaW5nUG93ZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5maXJpbmc8d2JyLz5Qb3dlcgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Qb3dlciBmb3IgZmxhc2ggZmlyaW5nLzx3YnIvPnRvcmNoPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIDEwIGlzIG1heCBwb3dlcjsgMCBpcyBubyBmbGFzaC48d2JyLz4gTGluZWFyCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MCAtIDEwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+UG93ZXIgZm9yIHNuYXBzaG90IG1heSB1c2UgYSBkaWZmZXJlbnQgc2NhbGUgdGhhbgorZm9yIHRvcmNoIG1vZGUuPHdici8+IE9ubHkgb25lIGVudHJ5IGZvciB0b3JjaCBtb2RlIHdpbGwgYmUKK3VzZWQ8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5mbGFzaC5maXJpbmdUaW1lIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+ZmlyaW5nPHdici8+VGltZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+RmlyaW5nIHRpbWUgb2YgZmxhc2ggcmVsYXRpdmUgdG8gc3RhcnQgb2YKK2V4cG9zdXJlPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIG5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MC0oZXhwb3N1cmUgdGltZS1mbGFzaCBkdXJhdGlvbik8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5DbGFtcGVkIHRvICgwLDx3YnIvPiBleHBvc3VyZSB0aW1lIC0gZmxhc2gKK2R1cmF0aW9uKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5mbGFzaC5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RG8gbm90IGZpcmUgdGhlIGZsYXNoIGZvciB0aGlzIGNhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U0lOR0xFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JZiB0aGUgZmxhc2ggaXMgYXZhaWxhYmxlIGFuZCBjaGFyZ2VkLDx3YnIvPiBmaXJlIGZsYXNoCitmb3IgdGhpcyBjYXB0dXJlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRPUkNIPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UcmFuc2l0aW9uIGZsYXNoIHRvIGNvbnRpbnVvdXNseSBvbi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBtb2RlIGZvciBmb3IgdGhlIGNhbWVyYSBkZXZpY2UncyBmbGFzaCBjb250cm9sLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIHdoZW4gZmxhc2ggdW5pdCBpcyBhdmFpbGFibGUKKyg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2guaW5mby5hdmFpbGFibGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8L2E+ID09IHRydWU8L2NvZGU+KS48d2JyLz48L3A+Cis8cD5XaGVuIHRoaXMgY29udHJvbCBpcyB1c2VkLDx3YnIvPiB0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG11c3QgYmUgc2V0IHRvIE9OIG9yIE9GRi48d2JyLz4KK090aGVyd2lzZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgYXV0by1leHBvc3VyZSByZWxhdGVkIGZsYXNoIGNvbnRyb2wgKE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0gsPHdici8+CitPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0gsPHdici8+IG9yIE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0hfPHdici8+UkVERVlFKSB3aWxsIG92ZXJyaWRlIHRoaXMgY29udHJvbC48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBPRkYsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IGZpcmUgZmxhc2ggZm9yIHRoaXMgY2FwdHVyZS48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBTSU5HTEUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgZmlyZSBmbGFzaCByZWdhcmRsZXNzIG9mIHRoZSBjYW1lcmEKK2RldmljZSdzIGF1dG8tZXhwb3N1cmUgcm91dGluZSdzIHJlc3VsdC48d2JyLz4gV2hlbiB1c2VkIGluIHN0aWxsIGNhcHR1cmUgY2FzZSw8d2JyLz4gdGhpcworY29udHJvbCBzaG91bGQgYmUgdXNlZCBhbG9uZyB3aXRoIGF1dG8tZXhwb3N1cmUgKEFFKSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4pLDx3YnIvPiBvdGhlcndpc2UsPHdici8+IHRoZSBpbWFnZSBtYXkgYmUgaW5jb3JyZWN0bHkgZXhwb3NlZC48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBUT1JDSCw8d2JyLz4gdGhlIGZsYXNoIHdpbGwgYmUgb24gY29udGludW91c2x5Ljx3YnIvPiBUaGlzIG1vZGUgY2FuIGJlIHVzZWQKK2ZvciB1c2UgY2FzZXMgc3VjaCBhcyBwcmV2aWV3LDx3YnIvPiBhdXRvLWZvY3VzIGFzc2lzdCw8d2JyLz4gc3RpbGwgY2FwdHVyZSw8d2JyLz4gb3IgdmlkZW8gcmVjb3JkaW5nLjx3YnIvPjwvcD4KKzxwPlRoZSBmbGFzaCBzdGF0dXMgd2lsbCBiZSByZXBvcnRlZCBieSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmZsYXNoLnN0YXRlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPnN0YXRlPC9hPiBpbiB0aGUgY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuZmxhc2guc3RhdGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5zdGF0ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5VTkFWQUlMQUJMRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gZmxhc2ggb24gY2FtZXJhLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNIQVJHSU5HPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5GbGFzaCBpcyBjaGFyZ2luZyBhbmQgY2Fubm90IGJlIGZpcmVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlJFQURZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5GbGFzaCBpcyByZWFkeSB0byBmaXJlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZJUkVEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5GbGFzaCBmaXJlZCBmb3IgdGhpcyBjYXB0dXJlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBBUlRJQUw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkZsYXNoIHBhcnRpYWxseSBpbGx1bWluYXRlZCB0aGlzIGZyYW1lLjx3YnIvPjwvcD4KKzxwPlRoaXMgaXMgdXN1YWxseSBkdWUgdG8gdGhlIG5leHQgb3IgcHJldmlvdXMgZnJhbWUgaGF2aW5nCit0aGUgZmxhc2ggZmlyZSw8d2JyLz4gYW5kIHRoZSBmbGFzaCBzcGlsbGluZyBpbnRvIHRoaXMgY2FwdHVyZQorZHVlIHRvIGhhcmR3YXJlIGxpbWl0YXRpb25zLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkN1cnJlbnQgc3RhdGUgb2YgdGhlIGZsYXNoCit1bml0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gdGhlIGNhbWVyYSBkZXZpY2UgZG9lc24ndCBoYXZlIGZsYXNoIHVuaXQKKyhpLjx3YnIvPmUuPHdici8+IDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSI+YW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTwvYT4gPT0gZmFsc2U8L2NvZGU+KSw8d2JyLz4gdGhpcyBzdGF0ZSB3aWxsIGFsd2F5cyBiZSBVTkFWQUlMQUJMRS48d2JyLz4KK090aGVyIHN0YXRlcyBpbmRpY2F0ZSB0aGUgY3VycmVudCBmbGFzaCBzdGF0dXMuPHdici8+PC9wPgorPHA+SW4gY2VydGFpbiBjb25kaXRpb25zLDx3YnIvPiB0aGlzIHdpbGwgYmUgYXZhaWxhYmxlIG9uIExFR0FDWSBkZXZpY2VzOjwvcD4KKzx1bD4KKzxsaT5GbGFzaC1sZXNzIGNhbWVyYXMgYWx3YXlzIHJldHVybiBVTkFWQUlMQUJMRS48d2JyLz48L2xpPgorPGxpPlVzaW5nIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT49PTwvY29kZT4gT05fPHdici8+QUxXQVlTXzx3YnIvPkZMQVNICisgICB3aWxsIGFsd2F5cyByZXR1cm4gRklSRUQuPHdici8+PC9saT4KKzxsaT5Vc2luZyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5mbGFzaC5tb2RlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPm1vZGU8L2E+IDxjb2RlPj09PC9jb2RlPiBUT1JDSAorICAgd2lsbCBhbHdheXMgcmV0dXJuIEZJUkVELjx3YnIvPjwvbGk+Cis8L3VsPgorPHA+SW4gYWxsIG90aGVyIGNvbmRpdGlvbnMgdGhlIHN0YXRlIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBvbgorTEVHQUNZIGRldmljZXMgKGkuPHdici8+ZS48d2JyLz4gaXQgd2lsbCBiZSA8Y29kZT5udWxsPC9jb2RlPikuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9ob3RQaXhlbCIgY2xhc3M9InNlY3Rpb24iPmhvdFBpeGVsPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuaG90UGl4ZWwubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmhvdDx3YnIvPlBpeGVsLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBob3QgcGl4ZWwgY29ycmVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPlRoZSBmcmFtZSByYXRlIG11c3Qgbm90IGJlIHJlZHVjZWQgcmVsYXRpdmUgdG8gc2Vuc29yIHJhdyBvdXRwdXQKK2ZvciB0aGlzIG9wdGlvbi48d2JyLz48L3A+Cis8cD5UaGUgaG90cGl4ZWwgbWFwIG1heSBiZSByZXR1cm5lZCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDwvYT4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SG90IHBpeGVsIGNvcnJlY3Rpb24gaXMgYXBwbGllZCw8d2JyLz4gd2l0aG91dCByZWR1Y2luZyBmcmFtZQorcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dC48d2JyLz48L3A+Cis8cD5UaGUgaG90cGl4ZWwgbWFwIG1heSBiZSByZXR1cm5lZCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDwvYT4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5IaWdoLXF1YWxpdHkgaG90IHBpeGVsIGNvcnJlY3Rpb24gaXMgYXBwbGllZCw8d2JyLz4gYXQgYSBjb3N0CitvZiBwb3NzaWJseSByZWR1Y2VkIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gc2Vuc29yIHJhdyBvdXRwdXQuPHdici8+PC9wPgorPHA+VGhlIGhvdHBpeGVsIG1hcCBtYXkgYmUgcmV0dXJuZWQgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aG90PHdici8+UGl4ZWw8d2JyLz5NYXA8L2E+Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9wZXJhdGlvbmFsIG1vZGUgZm9yIGhvdCBwaXhlbCBjb3JyZWN0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ob3RQaXhlbC5hdmFpbGFibGVIb3RQaXhlbE1vZGVzIj5hbmRyb2lkLjx3YnIvPmhvdDx3YnIvPlBpeGVsLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhvdDx3YnIvPlBpeGVsPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ib3RwaXhlbCBjb3JyZWN0aW9uIGludGVycG9sYXRlcyBvdXQsPHdici8+IG9yIG90aGVyd2lzZSByZW1vdmVzLDx3YnIvPiBwaXhlbHMKK3RoYXQgZG8gbm90IGFjY3VyYXRlbHkgbWVhc3VyZSB0aGUgaW5jb21pbmcgbGlnaHQgKGkuPHdici8+ZS48d2JyLz4gcGl4ZWxzIHRoYXQKK2FyZSBzdHVjayBhdCBhbiBhcmJpdHJhcnkgdmFsdWUgb3IgYXJlIG92ZXJzZW5zaXRpdmUpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmhvdFBpeGVsLmF2YWlsYWJsZUhvdFBpeGVsTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5ob3Q8d2JyLz5QaXhlbC48d2JyLz5hdmFpbGFibGU8d2JyLz5Ib3Q8d2JyLz5QaXhlbDx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGhvdCBwaXhlbCBjb3JyZWN0aW9uIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ob3RQaXhlbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmhvdDx3YnIvPlBpeGVsLjx3YnIvPm1vZGU8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzCitjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuaG90UGl4ZWwubW9kZSI+YW5kcm9pZC48d2JyLz5ob3Q8d2JyLz5QaXhlbC48d2JyLz5tb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RlVMTCBtb2RlIGNhbWVyYSBkZXZpY2VzIHdpbGwgYWx3YXlzIHN1cHBvcnQgRkFTVC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRvIGF2b2lkIHBlcmZvcm1hbmNlIGlzc3Vlcyw8d2JyLz4gdGhlcmUgd2lsbCBiZSBzaWduaWZpY2FudGx5IGZld2VyIGhvdAorcGl4ZWxzIHRoYW4gYWN0dWFsIHBpeGVscyBvbiB0aGUgY2FtZXJhIHNlbnNvci48d2JyLz4KK0hBTCBtdXN0IHN1cHBvcnQgYm90aCBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgaWYgaG90IHBpeGVsIGNvcnJlY3Rpb24gY29udHJvbCBpcyBhdmFpbGFibGUKK29uIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBidXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gY2FuIGJlIHRoZSBzYW1lIGZvciBib3RoIG1vZGVzLjx3YnIvPgorVGhhdCBpcyw8d2JyLz4gaWYgdGhlIGhpZ2hlc3QgcXVhbGl0eSBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgY2FtZXJhIGRldmljZSBkb2VzIG5vdCBzbG93IGRvd24KK2NhcHR1cmUgcmF0ZSw8d2JyLz4gdGhlbiBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgd2lsbCBnZW5lcmF0ZSB0aGUgc2FtZSBvdXRwdXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuaG90UGl4ZWwubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmhvdDx3YnIvPlBpeGVsLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBob3QgcGl4ZWwgY29ycmVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPlRoZSBmcmFtZSByYXRlIG11c3Qgbm90IGJlIHJlZHVjZWQgcmVsYXRpdmUgdG8gc2Vuc29yIHJhdyBvdXRwdXQKK2ZvciB0aGlzIG9wdGlvbi48d2JyLz48L3A+Cis8cD5UaGUgaG90cGl4ZWwgbWFwIG1heSBiZSByZXR1cm5lZCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDwvYT4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SG90IHBpeGVsIGNvcnJlY3Rpb24gaXMgYXBwbGllZCw8d2JyLz4gd2l0aG91dCByZWR1Y2luZyBmcmFtZQorcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dC48d2JyLz48L3A+Cis8cD5UaGUgaG90cGl4ZWwgbWFwIG1heSBiZSByZXR1cm5lZCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDwvYT4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5IaWdoLXF1YWxpdHkgaG90IHBpeGVsIGNvcnJlY3Rpb24gaXMgYXBwbGllZCw8d2JyLz4gYXQgYSBjb3N0CitvZiBwb3NzaWJseSByZWR1Y2VkIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gc2Vuc29yIHJhdyBvdXRwdXQuPHdici8+PC9wPgorPHA+VGhlIGhvdHBpeGVsIG1hcCBtYXkgYmUgcmV0dXJuZWQgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aG90PHdici8+UGl4ZWw8d2JyLz5NYXA8L2E+Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9wZXJhdGlvbmFsIG1vZGUgZm9yIGhvdCBwaXhlbCBjb3JyZWN0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ob3RQaXhlbC5hdmFpbGFibGVIb3RQaXhlbE1vZGVzIj5hbmRyb2lkLjx3YnIvPmhvdDx3YnIvPlBpeGVsLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhvdDx3YnIvPlBpeGVsPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ib3RwaXhlbCBjb3JyZWN0aW9uIGludGVycG9sYXRlcyBvdXQsPHdici8+IG9yIG90aGVyd2lzZSByZW1vdmVzLDx3YnIvPiBwaXhlbHMKK3RoYXQgZG8gbm90IGFjY3VyYXRlbHkgbWVhc3VyZSB0aGUgaW5jb21pbmcgbGlnaHQgKGkuPHdici8+ZS48d2JyLz4gcGl4ZWxzIHRoYXQKK2FyZSBzdHVjayBhdCBhbiBhcmJpdHJhcnkgdmFsdWUgb3IgYXJlIG92ZXJzZW5zaXRpdmUpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fanBlZyIgY2xhc3M9InNlY3Rpb24iPmpwZWc8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5qcGVnLmdwc0xvY2F0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz5ncHM8d2JyLz5Mb2NhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljIGFzIGxvY2F0aW9uXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbG9jYXRpb24gb2JqZWN0IHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgaW1hZ2UgR1BTIG1ldGFkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNldHRpbmcgYSBsb2NhdGlvbiBvYmplY3QgaW4gYSByZXF1ZXN0IHdpbGwgaW5jbHVkZSB0aGUgR1BTIGNvb3JkaW5hdGVzIG9mIHRoZSBsb2NhdGlvbgoraW50byBhbnkgSlBFRyBpbWFnZXMgY2FwdHVyZWQgYmFzZWQgb24gdGhlIHJlcXVlc3QuPHdici8+IFRoZXNlIGNvb3JkaW5hdGVzIGNhbiB0aGVuIGJlCit2aWV3ZWQgYnkgYW55b25lIHdobyByZWNlaXZlcyB0aGUgSlBFRyBpbWFnZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuanBlZy5ncHNDb29yZGluYXRlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+Z3BzPHdici8+Q29vcmRpbmF0ZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmRvdWJsZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5sYXRpdHVkZSw8d2JyLz4gbG9uZ2l0dWRlLDx3YnIvPiBhbHRpdHVkZS48d2JyLz4gRmlyc3QgdHdvIGluIGRlZ3JlZXMsPHdici8+IHRoZSB0aGlyZCBpbiBtZXRlcnM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5HUFMgY29vcmRpbmF0ZXMgdG8gaW5jbHVkZSBpbiBvdXRwdXQgSlBFRworRVhJRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4oLTE4MCAtIDE4MF0sPHdici8+IFstOTAsPHdici8+OTBdLDx3YnIvPiBbLWluZiw8d2JyLz4gaW5mXTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzUHJvY2Vzc2luZ01ldGhvZCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+Z3BzPHdici8+UHJvY2Vzc2luZzx3YnIvPk1ldGhvZAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWMgYXMgc3RyaW5nXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+MzIgY2hhcmFjdGVycyBkZXNjcmliaW5nIEdQUyBhbGdvcml0aG0gdG8KK2luY2x1ZGUgaW4gRVhJRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgVVRGLTggbnVsbC10ZXJtaW5hdGVkIHN0cmluZworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5qcGVnLmdwc1RpbWVzdGFtcCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+Z3BzPHdici8+VGltZXN0YW1wCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaW1lIEdQUyBmaXggd2FzIG1hZGUgdG8gaW5jbHVkZSBpbgorRVhJRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgVVRDIGluIHNlY29uZHMgc2luY2UgSmFudWFyeSAxLDx3YnIvPiAxOTcwCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmpwZWcub3JpZW50YXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPm9yaWVudGF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBvcmllbnRhdGlvbiBmb3IgYSBKUEVHIGltYWdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBEZWdyZWVzIGluIG11bHRpcGxlcyBvZiA5MAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAsPHdici8+IDkwLDx3YnIvPiAxODAsPHdici8+IDI3MDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgY2xvY2t3aXNlIHJvdGF0aW9uIGFuZ2xlIGluIGRlZ3JlZXMsPHdici8+IHJlbGF0aXZlIHRvIHRoZSBvcmllbnRhdGlvbgordG8gdGhlIGNhbWVyYSw8d2JyLz4gdGhhdCB0aGUgSlBFRyBwaWN0dXJlIG5lZWRzIHRvIGJlIHJvdGF0ZWQgYnksPHdici8+IHRvIGJlIHZpZXdlZAordXByaWdodC48d2JyLz48L3A+Cis8cD5DYW1lcmEgZGV2aWNlcyBtYXkgZWl0aGVyIGVuY29kZSB0aGlzIHZhbHVlIGludG8gdGhlIEpQRUcgRVhJRiBoZWFkZXIsPHdici8+IG9yCityb3RhdGUgdGhlIGltYWdlIGRhdGEgdG8gbWF0Y2ggdGhpcyBvcmllbnRhdGlvbi48d2JyLz4gV2hlbiB0aGUgaW1hZ2UgZGF0YSBpcyByb3RhdGVkLDx3YnIvPgordGhlIHRodW1ibmFpbCBkYXRhIHdpbGwgYWxzbyBiZSByb3RhdGVkLjx3YnIvPjwvcD4KKzxwPk5vdGUgdGhhdCB0aGlzIG9yaWVudGF0aW9uIGlzIHJlbGF0aXZlIHRvIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgY2FtZXJhIHNlbnNvciw8d2JyLz4gZ2l2ZW4KK2J5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3JpZW50YXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9yaWVudGF0aW9uPC9hPi48d2JyLz48L3A+Cis8cD5UbyB0cmFuc2xhdGUgZnJvbSB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIGdpdmVuIGJ5IHRoZSBBbmRyb2lkIHNlbnNvciBBUElzLDx3YnIvPiB0aGUgZm9sbG93aW5nCitzYW1wbGUgY29kZSBtYXkgYmUgdXNlZDo8L3A+Cis8cHJlPjxjb2RlPnByaXZhdGUgaW50IGdldEpwZWdPcmllbnRhdGlvbihDYW1lcmFDaGFyYWN0ZXJpc3RpY3MgYyw8d2JyLz4gaW50IGRldmljZU9yaWVudGF0aW9uKSB7CisgICAgaWYgKGRldmljZU9yaWVudGF0aW9uID09IGFuZHJvaWQuPHdici8+dmlldy48d2JyLz5PcmllbnRhdGlvbjx3YnIvPkV2ZW50PHdici8+TGlzdGVuZXIuPHdici8+T1JJRU5UQVRJT05fPHdici8+VU5LTk9XTikgcmV0dXJuIDA7CisgICAgaW50IHNlbnNvck9yaWVudGF0aW9uID0gYy48d2JyLz5nZXQoQ2FtZXJhPHdici8+Q2hhcmFjdGVyaXN0aWNzLjx3YnIvPlNFTlNPUl88d2JyLz5PUklFTlRBVElPTik7CisKKyAgICAvLzx3YnIvPiBSb3VuZCBkZXZpY2Ugb3JpZW50YXRpb24gdG8gYSBtdWx0aXBsZSBvZiA5MAorICAgIGRldmljZU9yaWVudGF0aW9uID0gKGRldmljZU9yaWVudGF0aW9uICsgNDUpIC88d2JyLz4gOTAgKiA5MDsKKworICAgIC8vPHdici8+IFJldmVyc2UgZGV2aWNlIG9yaWVudGF0aW9uIGZvciBmcm9udC1mYWNpbmcgY2FtZXJhcworICAgIGJvb2xlYW4gZmFjaW5nRnJvbnQgPSBjLjx3YnIvPmdldChDYW1lcmE8d2JyLz5DaGFyYWN0ZXJpc3RpY3MuPHdici8+TEVOU188d2JyLz5GQUNJTkcpID09IENhbWVyYTx3YnIvPkNoYXJhY3RlcmlzdGljcy48d2JyLz5MRU5TXzx3YnIvPkZBQ0lOR188d2JyLz5GUk9OVDsKKyAgICBpZiAoZmFjaW5nRnJvbnQpIGRldmljZU9yaWVudGF0aW9uID0gLWRldmljZU9yaWVudGF0aW9uOworCisgICAgLy88d2JyLz4gQ2FsY3VsYXRlIGRlc2lyZWQgSlBFRyBvcmllbnRhdGlvbiByZWxhdGl2ZSB0byBjYW1lcmEgb3JpZW50YXRpb24gdG8gbWFrZQorICAgIC8vPHdici8+IHRoZSBpbWFnZSB1cHJpZ2h0IHJlbGF0aXZlIHRvIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24KKyAgICBpbnQganBlZ09yaWVudGF0aW9uID0gKHNlbnNvck9yaWVudGF0aW9uICsgZGV2aWNlT3JpZW50YXRpb24gKyAzNjApICUgMzYwOworCisgICAgcmV0dXJuIGpwZWdPcmllbnRhdGlvbjsKK30KKzwvY29kZT48L3ByZT4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5qcGVnLnF1YWxpdHkiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPnF1YWxpdHkKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Db21wcmVzc2lvbiBxdWFsaXR5IG9mIHRoZSBmaW5hbCBKUEVHCitpbWFnZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4xLTEwMDsgbGFyZ2VyIGlzIGhpZ2hlciBxdWFsaXR5PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPjg1LTk1IGlzIHR5cGljYWwgdXNhZ2UgcmFuZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmpwZWcudGh1bWJuYWlsUXVhbGl0eSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+dGh1bWJuYWlsPHdici8+UXVhbGl0eQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkNvbXByZXNzaW9uIHF1YWxpdHkgb2YgSlBFRwordGh1bWJuYWlsLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjEtMTAwOyBsYXJnZXIgaXMgaGlnaGVyIHF1YWxpdHk8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5qcGVnLnRodW1ibmFpbFNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPnRodW1ibmFpbDx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHNpemVdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5SZXNvbHV0aW9uIG9mIGVtYmVkZGVkIEpQRUcgdGh1bWJuYWlsLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5qcGVnLmF2YWlsYWJsZVRodW1ibmFpbFNpemVzIj5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+YXZhaWxhYmxlPHdici8+VGh1bWJuYWlsPHdici8+U2l6ZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvICgwLDx3YnIvPiAwKSB2YWx1ZSw8d2JyLz4gdGhlIEpQRUcgRVhJRiB3aWxsIG5vdCBjb250YWluIHRodW1ibmFpbCw8d2JyLz4KK2J1dCB0aGUgY2FwdHVyZWQgSlBFRyB3aWxsIHN0aWxsIGJlIGEgdmFsaWQgaW1hZ2UuPHdici8+PC9wPgorPHA+Rm9yIGJlc3QgcmVzdWx0cyw8d2JyLz4gd2hlbiBpc3N1aW5nIGEgcmVxdWVzdCBmb3IgYSBKUEVHIGltYWdlLDx3YnIvPiB0aGUgdGh1bWJuYWlsIHNpemUgc2VsZWN0ZWQKK3Nob3VsZCBoYXZlIHRoZSBzYW1lIGFzcGVjdCByYXRpbyBhcyB0aGUgbWFpbiBKUEVHIG91dHB1dC48d2JyLz48L3A+Cis8cD5JZiB0aGUgdGh1bWJuYWlsIGltYWdlIGFzcGVjdCByYXRpbyBkaWZmZXJzIGZyb20gdGhlIEpQRUcgcHJpbWFyeSBpbWFnZSBhc3BlY3QKK3JhdGlvLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBjcmVhdGVzIHRoZSB0aHVtYm5haWwgYnkgY3JvcHBpbmcgaXQgZnJvbSB0aGUgcHJpbWFyeSBpbWFnZS48d2JyLz4KK0ZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgcHJpbWFyeSBpbWFnZSBoYXMgNDozIGFzcGVjdCByYXRpbyw8d2JyLz4gdGhlIHRodW1ibmFpbCBpbWFnZSBoYXMKKzE2OjkgYXNwZWN0IHJhdGlvLDx3YnIvPiB0aGUgcHJpbWFyeSBpbWFnZSB3aWxsIGJlIGNyb3BwZWQgdmVydGljYWxseSAobGV0dGVyYm94KSB0bworZ2VuZXJhdGUgdGhlIHRodW1ibmFpbCBpbWFnZS48d2JyLz4gVGhlIHRodW1ibmFpbCBpbWFnZSB3aWxsIGFsd2F5cyBoYXZlIGEgc21hbGxlciBGaWVsZAorT2YgVmlldyAoRk9WKSB0aGFuIHRoZSBwcmltYXJ5IGltYWdlIHdoZW4gYXNwZWN0IHJhdGlvcyBkaWZmZXIuPHdici8+PC9wPgorPHA+V2hlbiBhbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLm9yaWVudGF0aW9uIj5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+b3JpZW50YXRpb248L2E+IG9mIG5vbi16ZXJvIGRlZ3JlZSBpcyByZXF1ZXN0ZWQsPHdici8+Cit0aGUgY2FtZXJhIGRldmljZSB3aWxsIGhhbmRsZSB0aHVtYm5haWwgcm90YXRpb24gaW4gb25lIG9mIHRoZSBmb2xsb3dpbmcgd2F5czo8L3A+Cis8dWw+Cis8bGk+U2V0IHRoZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9FeGlmSW50ZXJmYWNlLmh0bWwjVEFHX09SSUVOVEFUSU9OIj5FWElGIG9yaWVudGF0aW9uIGZsYWc8L2E+CisgIGFuZCBrZWVwIGpwZWcgYW5kIHRodW1ibmFpbCBpbWFnZSBkYXRhIHVucm90YXRlZC48d2JyLz48L2xpPgorPGxpPlJvdGF0ZSB0aGUganBlZyBhbmQgdGh1bWJuYWlsIGltYWdlIGRhdGEgYW5kIG5vdCBzZXQKKyAgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvRXhpZkludGVyZmFjZS5odG1sI1RBR19PUklFTlRBVElPTiI+RVhJRiBvcmllbnRhdGlvbiBmbGFnPC9hPi48d2JyLz4gSW4gdGhpcworICBjYXNlLDx3YnIvPiBMSU1JVEVEIG9yIEZVTEwgaGFyZHdhcmUgbGV2ZWwgZGV2aWNlcyB3aWxsIHJlcG9ydCByb3RhdGVkIHRodW1uYWlsIHNpemUgaW4KKyAgY2FwdHVyZSByZXN1bHQsPHdici8+IHNvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IHdpbGwgYmUgaW50ZXJjaGFuZ2VkIGlmIDkwIG9yIDI3MCBkZWdyZWUKKyAgb3JpZW50YXRpb24gaXMgcmVxdWVzdGVkLjx3YnIvPiBMRUdBQ1kgZGV2aWNlIHdpbGwgYWx3YXlzIHJlcG9ydCB1bnJvdGF0ZWQgdGh1bWJuYWlsCisgIHNpemUuPHdici8+PC9saT4KKzwvdWw+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbXVzdCBub3Qgc3F1ZWV6ZSBvciBzdHJldGNoIHRoZSBkb3duc2NhbGVkIHByaW1hcnkgaW1hZ2UgdG8gZ2VuZXJhdGUgdGh1bWJuYWlsLjx3YnIvPgorVGhlIGNyb3BwaW5nIG11c3QgYmUgZG9uZSBvbiB0aGUgcHJpbWFyeSBqcGVnIGltYWdlIHJhdGhlciB0aGFuIHRoZSBzZW5zb3IgYWN0aXZlIGFycmF5Ljx3YnIvPgorVGhlIHN0cmVhbSBjcm9wcGluZyBydWxlIHNwZWNpZmllZCBieSAiUzUuPHdici8+IENyb3BwaW5nIiBpbiBjYW1lcmEzLjx3YnIvPmggZG9lc24ndCBhcHBseSB0byB0aGUKK3RodW1ibmFpbCBpbWFnZSBjcm9wcGluZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuanBlZy5hdmFpbGFibGVUaHVtYm5haWxTaXplcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+YXZhaWxhYmxlPHdici8+VGh1bWJuYWlsPHdici8+U2l6ZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIgeCBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBzaXplXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBKUEVHIHRodW1ibmFpbCBzaXplcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy50aHVtYm5haWxTaXplIj5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+dGh1bWJuYWlsPHdici8+U2l6ZTwvYT4gc3VwcG9ydGVkIGJ5IHRoaXMKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGxpc3Qgd2lsbCBpbmNsdWRlIGF0IGxlYXN0IG9uZSBub24temVybyByZXNvbHV0aW9uLDx3YnIvPiBwbHVzIDxjb2RlPigwLDx3YnIvPjApPC9jb2RlPiBmb3IgaW5kaWNhdGluZyBubwordGh1bWJuYWlsIHNob3VsZCBiZSBnZW5lcmF0ZWQuPHdici8+PC9wPgorPHA+QmVsb3cgY29uZGlkaXRpb25zIHdpbGwgYmUgc2F0aXNmaWVkIGZvciB0aGlzIHNpemUgbGlzdDo8L3A+Cis8dWw+Cis8bGk+VGhlIHNpemVzIHdpbGwgYmUgc29ydGVkIGJ5IGluY3JlYXNpbmcgcGl4ZWwgYXJlYSAod2lkdGggeCBoZWlnaHQpLjx3YnIvPgorSWYgc2V2ZXJhbCByZXNvbHV0aW9ucyBoYXZlIHRoZSBzYW1lIGFyZWEsPHdici8+IHRoZXkgd2lsbCBiZSBzb3J0ZWQgYnkgaW5jcmVhc2luZyB3aWR0aC48d2JyLz48L2xpPgorPGxpPlRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIGxhcmdlc3QgdGh1bWJuYWlsIHNpemUgd2lsbCBiZSBzYW1lIGFzIHRoZQorYXNwZWN0IHJhdGlvIG9mIGxhcmdlc3QgSlBFRyBvdXRwdXQgc2l6ZSBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdHJlYW08d2JyLz5Db25maWd1cmF0aW9uczwvYT4uPHdici8+CitUaGUgbGFyZ2VzdCBzaXplIGlzIGRlZmluZWQgYXMgdGhlIHNpemUgdGhhdCBoYXMgdGhlIGxhcmdlc3QgcGl4ZWwgYXJlYQoraW4gYSBnaXZlbiBzaXplIGxpc3QuPHdici8+PC9saT4KKzxsaT5FYWNoIG91dHB1dCBKUEVHIHNpemUgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RyZWFtPHdici8+Q29uZmlndXJhdGlvbnM8L2E+IHdpbGwgaGF2ZSBhdCBsZWFzdAorb25lIGNvcnJlc3BvbmRpbmcgc2l6ZSB0aGF0IGhhcyB0aGUgc2FtZSBhc3BlY3QgcmF0aW8gaW4gYXZhaWxhYmxlVGh1bWJuYWlsU2l6ZXMsPHdici8+CithbmQgdmljZSB2ZXJzYS48d2JyLz48L2xpPgorPGxpPkFsbCBub24tPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiBzaXplcyB3aWxsIGhhdmUgbm9uLXplcm8gd2lkdGhzIGFuZCBoZWlnaHRzLjx3YnIvPjwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5qcGVnLm1heFNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPm1heDx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1heGltdW0gc2l6ZSBpbiBieXRlcyBmb3IgdGhlIGNvbXByZXNzZWQKK0pQRUcgYnVmZmVyPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+TXVzdCBiZSBsYXJnZSBlbm91Z2ggdG8gZml0IGFueSBKUEVHIHByb2R1Y2VkIGJ5Cit0aGUgY2FtZXJhPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIHVzZWQgZm9yIHNpemluZyB0aGUgZ3JhbGxvYyBidWZmZXJzIGZvcgorSlBFRzwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy5ncHNMb2NhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+Z3BzPHdici8+TG9jYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpYyBhcyBsb2NhdGlvbl08L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIGxvY2F0aW9uIG9iamVjdCB0byB1c2Ugd2hlbiBnZW5lcmF0aW5nIGltYWdlIEdQUyBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TZXR0aW5nIGEgbG9jYXRpb24gb2JqZWN0IGluIGEgcmVxdWVzdCB3aWxsIGluY2x1ZGUgdGhlIEdQUyBjb29yZGluYXRlcyBvZiB0aGUgbG9jYXRpb24KK2ludG8gYW55IEpQRUcgaW1hZ2VzIGNhcHR1cmVkIGJhc2VkIG9uIHRoZSByZXF1ZXN0Ljx3YnIvPiBUaGVzZSBjb29yZGluYXRlcyBjYW4gdGhlbiBiZQordmlld2VkIGJ5IGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIEpQRUcgaW1hZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy5ncHNDb29yZGluYXRlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+Z3BzPHdici8+Q29vcmRpbmF0ZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmRvdWJsZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5sYXRpdHVkZSw8d2JyLz4gbG9uZ2l0dWRlLDx3YnIvPiBhbHRpdHVkZS48d2JyLz4gRmlyc3QgdHdvIGluIGRlZ3JlZXMsPHdici8+IHRoZSB0aGlyZCBpbiBtZXRlcnM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5HUFMgY29vcmRpbmF0ZXMgdG8gaW5jbHVkZSBpbiBvdXRwdXQgSlBFRworRVhJRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4oLTE4MCAtIDE4MF0sPHdici8+IFstOTAsPHdici8+OTBdLDx3YnIvPiBbLWluZiw8d2JyLz4gaW5mXTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy5ncHNQcm9jZXNzaW5nTWV0aG9kIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz5ncHM8d2JyLz5Qcm9jZXNzaW5nPHdici8+TWV0aG9kCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpYyBhcyBzdHJpbmddPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD4zMiBjaGFyYWN0ZXJzIGRlc2NyaWJpbmcgR1BTIGFsZ29yaXRobSB0bworaW5jbHVkZSBpbiBFWElGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBVVEYtOCBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy5ncHNUaW1lc3RhbXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPmdwczx3YnIvPlRpbWVzdGFtcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGltZSBHUFMgZml4IHdhcyBtYWRlIHRvIGluY2x1ZGUgaW4KK0VYSUYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFVUQyBpbiBzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSw8d2JyLz4gMTk3MAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmpwZWcub3JpZW50YXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPm9yaWVudGF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBvcmllbnRhdGlvbiBmb3IgYSBKUEVHIGltYWdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBEZWdyZWVzIGluIG11bHRpcGxlcyBvZiA5MAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAsPHdici8+IDkwLDx3YnIvPiAxODAsPHdici8+IDI3MDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgY2xvY2t3aXNlIHJvdGF0aW9uIGFuZ2xlIGluIGRlZ3JlZXMsPHdici8+IHJlbGF0aXZlIHRvIHRoZSBvcmllbnRhdGlvbgordG8gdGhlIGNhbWVyYSw8d2JyLz4gdGhhdCB0aGUgSlBFRyBwaWN0dXJlIG5lZWRzIHRvIGJlIHJvdGF0ZWQgYnksPHdici8+IHRvIGJlIHZpZXdlZAordXByaWdodC48d2JyLz48L3A+Cis8cD5DYW1lcmEgZGV2aWNlcyBtYXkgZWl0aGVyIGVuY29kZSB0aGlzIHZhbHVlIGludG8gdGhlIEpQRUcgRVhJRiBoZWFkZXIsPHdici8+IG9yCityb3RhdGUgdGhlIGltYWdlIGRhdGEgdG8gbWF0Y2ggdGhpcyBvcmllbnRhdGlvbi48d2JyLz4gV2hlbiB0aGUgaW1hZ2UgZGF0YSBpcyByb3RhdGVkLDx3YnIvPgordGhlIHRodW1ibmFpbCBkYXRhIHdpbGwgYWxzbyBiZSByb3RhdGVkLjx3YnIvPjwvcD4KKzxwPk5vdGUgdGhhdCB0aGlzIG9yaWVudGF0aW9uIGlzIHJlbGF0aXZlIHRvIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgY2FtZXJhIHNlbnNvciw8d2JyLz4gZ2l2ZW4KK2J5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3JpZW50YXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9yaWVudGF0aW9uPC9hPi48d2JyLz48L3A+Cis8cD5UbyB0cmFuc2xhdGUgZnJvbSB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIGdpdmVuIGJ5IHRoZSBBbmRyb2lkIHNlbnNvciBBUElzLDx3YnIvPiB0aGUgZm9sbG93aW5nCitzYW1wbGUgY29kZSBtYXkgYmUgdXNlZDo8L3A+Cis8cHJlPjxjb2RlPnByaXZhdGUgaW50IGdldEpwZWdPcmllbnRhdGlvbihDYW1lcmFDaGFyYWN0ZXJpc3RpY3MgYyw8d2JyLz4gaW50IGRldmljZU9yaWVudGF0aW9uKSB7CisgICAgaWYgKGRldmljZU9yaWVudGF0aW9uID09IGFuZHJvaWQuPHdici8+dmlldy48d2JyLz5PcmllbnRhdGlvbjx3YnIvPkV2ZW50PHdici8+TGlzdGVuZXIuPHdici8+T1JJRU5UQVRJT05fPHdici8+VU5LTk9XTikgcmV0dXJuIDA7CisgICAgaW50IHNlbnNvck9yaWVudGF0aW9uID0gYy48d2JyLz5nZXQoQ2FtZXJhPHdici8+Q2hhcmFjdGVyaXN0aWNzLjx3YnIvPlNFTlNPUl88d2JyLz5PUklFTlRBVElPTik7CisKKyAgICAvLzx3YnIvPiBSb3VuZCBkZXZpY2Ugb3JpZW50YXRpb24gdG8gYSBtdWx0aXBsZSBvZiA5MAorICAgIGRldmljZU9yaWVudGF0aW9uID0gKGRldmljZU9yaWVudGF0aW9uICsgNDUpIC88d2JyLz4gOTAgKiA5MDsKKworICAgIC8vPHdici8+IFJldmVyc2UgZGV2aWNlIG9yaWVudGF0aW9uIGZvciBmcm9udC1mYWNpbmcgY2FtZXJhcworICAgIGJvb2xlYW4gZmFjaW5nRnJvbnQgPSBjLjx3YnIvPmdldChDYW1lcmE8d2JyLz5DaGFyYWN0ZXJpc3RpY3MuPHdici8+TEVOU188d2JyLz5GQUNJTkcpID09IENhbWVyYTx3YnIvPkNoYXJhY3RlcmlzdGljcy48d2JyLz5MRU5TXzx3YnIvPkZBQ0lOR188d2JyLz5GUk9OVDsKKyAgICBpZiAoZmFjaW5nRnJvbnQpIGRldmljZU9yaWVudGF0aW9uID0gLWRldmljZU9yaWVudGF0aW9uOworCisgICAgLy88d2JyLz4gQ2FsY3VsYXRlIGRlc2lyZWQgSlBFRyBvcmllbnRhdGlvbiByZWxhdGl2ZSB0byBjYW1lcmEgb3JpZW50YXRpb24gdG8gbWFrZQorICAgIC8vPHdici8+IHRoZSBpbWFnZSB1cHJpZ2h0IHJlbGF0aXZlIHRvIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24KKyAgICBpbnQganBlZ09yaWVudGF0aW9uID0gKHNlbnNvck9yaWVudGF0aW9uICsgZGV2aWNlT3JpZW50YXRpb24gKyAzNjApICUgMzYwOworCisgICAgcmV0dXJuIGpwZWdPcmllbnRhdGlvbjsKK30KKzwvY29kZT48L3ByZT4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmpwZWcucXVhbGl0eSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+cXVhbGl0eQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkNvbXByZXNzaW9uIHF1YWxpdHkgb2YgdGhlIGZpbmFsIEpQRUcKK2ltYWdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjEtMTAwOyBsYXJnZXIgaXMgaGlnaGVyIHF1YWxpdHk8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+ODUtOTUgaXMgdHlwaWNhbCB1c2FnZSByYW5nZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5qcGVnLnNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPnNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBzaXplIG9mIHRoZSBjb21wcmVzc2VkIEpQRUcgaW1hZ2UsPHdici8+IGluCitieXRlczwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBubyBKUEVHIG91dHB1dCBpcyBwcm9kdWNlZCBmb3IgdGhlIHJlcXVlc3QsPHdici8+Cit0aGlzIG11c3QgYmUgMC48d2JyLz48L3A+Cis8cD5PdGhlcndpc2UsPHdici8+IHRoaXMgZGVzY3JpYmVzIHRoZSByZWFsIHNpemUgb2YgdGhlIGNvbXByZXNzZWQKK0pQRUcgaW1hZ2UgcGxhY2VkIGluIHRoZSBvdXRwdXQgc3RyZWFtLjx3YnIvPiAgTW9yZSBzcGVjaWZpY2FsbHksPHdici8+CitpZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuanBlZy5tYXhTaXplIj5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+bWF4PHdici8+U2l6ZTwvYT4gPSAxMDAwMDAwLDx3YnIvPiBhbmQgYSBzcGVjaWZpYyBjYXB0dXJlCitoYXMgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5qcGVnLnNpemUiPmFuZHJvaWQuPHdici8+anBlZy48d2JyLz5zaXplPC9hPiA9IDUwMDAwMCw8d2JyLz4gdGhlbiB0aGUgb3V0cHV0IGJ1ZmZlciBmcm9tCit0aGUgSlBFRyBzdHJlYW0gd2lsbCBiZSAxMDAwMDAwIGJ5dGVzLDx3YnIvPiBvZiB3aGljaCB0aGUgZmlyc3QKKzUwMDAwMCBtYWtlIHVwIHRoZSByZWFsIGRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy50aHVtYm5haWxRdWFsaXR5Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz50aHVtYm5haWw8d2JyLz5RdWFsaXR5CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29tcHJlc3Npb24gcXVhbGl0eSBvZiBKUEVHCit0aHVtYm5haWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MS0xMDA7IGxhcmdlciBpcyBoaWdoZXIgcXVhbGl0eTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy50aHVtYm5haWxTaXplIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz50aHVtYm5haWw8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBzaXplXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+UmVzb2x1dGlvbiBvZiBlbWJlZGRlZCBKUEVHIHRodW1ibmFpbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuanBlZy5hdmFpbGFibGVUaHVtYm5haWxTaXplcyI+YW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlRodW1ibmFpbDx3YnIvPlNpemVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHNldCB0byAoMCw8d2JyLz4gMCkgdmFsdWUsPHdici8+IHRoZSBKUEVHIEVYSUYgd2lsbCBub3QgY29udGFpbiB0aHVtYm5haWwsPHdici8+CitidXQgdGhlIGNhcHR1cmVkIEpQRUcgd2lsbCBzdGlsbCBiZSBhIHZhbGlkIGltYWdlLjx3YnIvPjwvcD4KKzxwPkZvciBiZXN0IHJlc3VsdHMsPHdici8+IHdoZW4gaXNzdWluZyBhIHJlcXVlc3QgZm9yIGEgSlBFRyBpbWFnZSw8d2JyLz4gdGhlIHRodW1ibmFpbCBzaXplIHNlbGVjdGVkCitzaG91bGQgaGF2ZSB0aGUgc2FtZSBhc3BlY3QgcmF0aW8gYXMgdGhlIG1haW4gSlBFRyBvdXRwdXQuPHdici8+PC9wPgorPHA+SWYgdGhlIHRodW1ibmFpbCBpbWFnZSBhc3BlY3QgcmF0aW8gZGlmZmVycyBmcm9tIHRoZSBKUEVHIHByaW1hcnkgaW1hZ2UgYXNwZWN0CityYXRpbyw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgY3JlYXRlcyB0aGUgdGh1bWJuYWlsIGJ5IGNyb3BwaW5nIGl0IGZyb20gdGhlIHByaW1hcnkgaW1hZ2UuPHdici8+CitGb3IgZXhhbXBsZSw8d2JyLz4gaWYgdGhlIHByaW1hcnkgaW1hZ2UgaGFzIDQ6MyBhc3BlY3QgcmF0aW8sPHdici8+IHRoZSB0aHVtYm5haWwgaW1hZ2UgaGFzCisxNjo5IGFzcGVjdCByYXRpbyw8d2JyLz4gdGhlIHByaW1hcnkgaW1hZ2Ugd2lsbCBiZSBjcm9wcGVkIHZlcnRpY2FsbHkgKGxldHRlcmJveCkgdG8KK2dlbmVyYXRlIHRoZSB0aHVtYm5haWwgaW1hZ2UuPHdici8+IFRoZSB0aHVtYm5haWwgaW1hZ2Ugd2lsbCBhbHdheXMgaGF2ZSBhIHNtYWxsZXIgRmllbGQKK09mIFZpZXcgKEZPVikgdGhhbiB0aGUgcHJpbWFyeSBpbWFnZSB3aGVuIGFzcGVjdCByYXRpb3MgZGlmZmVyLjx3YnIvPjwvcD4KKzxwPldoZW4gYW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy5vcmllbnRhdGlvbiI+YW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPm9yaWVudGF0aW9uPC9hPiBvZiBub24temVybyBkZWdyZWUgaXMgcmVxdWVzdGVkLDx3YnIvPgordGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBoYW5kbGUgdGh1bWJuYWlsIHJvdGF0aW9uIGluIG9uZSBvZiB0aGUgZm9sbG93aW5nIHdheXM6PC9wPgorPHVsPgorPGxpPlNldCB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvRXhpZkludGVyZmFjZS5odG1sI1RBR19PUklFTlRBVElPTiI+RVhJRiBvcmllbnRhdGlvbiBmbGFnPC9hPgorICBhbmQga2VlcCBqcGVnIGFuZCB0aHVtYm5haWwgaW1hZ2UgZGF0YSB1bnJvdGF0ZWQuPHdici8+PC9saT4KKzxsaT5Sb3RhdGUgdGhlIGpwZWcgYW5kIHRodW1ibmFpbCBpbWFnZSBkYXRhIGFuZCBub3Qgc2V0CisgIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL21lZGlhL0V4aWZJbnRlcmZhY2UuaHRtbCNUQUdfT1JJRU5UQVRJT04iPkVYSUYgb3JpZW50YXRpb24gZmxhZzwvYT4uPHdici8+IEluIHRoaXMKKyAgY2FzZSw8d2JyLz4gTElNSVRFRCBvciBGVUxMIGhhcmR3YXJlIGxldmVsIGRldmljZXMgd2lsbCByZXBvcnQgcm90YXRlZCB0aHVtbmFpbCBzaXplIGluCisgIGNhcHR1cmUgcmVzdWx0LDx3YnIvPiBzbyB0aGUgd2lkdGggYW5kIGhlaWdodCB3aWxsIGJlIGludGVyY2hhbmdlZCBpZiA5MCBvciAyNzAgZGVncmVlCisgIG9yaWVudGF0aW9uIGlzIHJlcXVlc3RlZC48d2JyLz4gTEVHQUNZIGRldmljZSB3aWxsIGFsd2F5cyByZXBvcnQgdW5yb3RhdGVkIHRodW1ibmFpbAorICBzaXplLjx3YnIvPjwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIG11c3Qgbm90IHNxdWVlemUgb3Igc3RyZXRjaCB0aGUgZG93bnNjYWxlZCBwcmltYXJ5IGltYWdlIHRvIGdlbmVyYXRlIHRodW1ibmFpbC48d2JyLz4KK1RoZSBjcm9wcGluZyBtdXN0IGJlIGRvbmUgb24gdGhlIHByaW1hcnkganBlZyBpbWFnZSByYXRoZXIgdGhhbiB0aGUgc2Vuc29yIGFjdGl2ZSBhcnJheS48d2JyLz4KK1RoZSBzdHJlYW0gY3JvcHBpbmcgcnVsZSBzcGVjaWZpZWQgYnkgIlM1Ljx3YnIvPiBDcm9wcGluZyIgaW4gY2FtZXJhMy48d2JyLz5oIGRvZXNuJ3QgYXBwbHkgdG8gdGhlCit0aHVtYm5haWwgaW1hZ2UgY3JvcHBpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fbGVucyIgY2xhc3M9InNlY3Rpb24iPmxlbnM8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5hcGVydHVyZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGRlc2lyZWQgbGVucyBhcGVydHVyZSBzaXplLDx3YnIvPiBhcyBhIHJhdGlvIG9mIGxlbnMgZm9jYWwgbGVuZ3RoIHRvIHRoZQorZWZmZWN0aXZlIGFwZXJ0dXJlIGRpYW1ldGVyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBUaGUgZi1udW1iZXIgKGYvPHdici8+TikKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUFwZXJ0dXJlcyI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+QXBlcnR1cmVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TZXR0aW5nIHRoaXMgdmFsdWUgaXMgb25seSBzdXBwb3J0ZWQgb24gdGhlIGNhbWVyYSBkZXZpY2VzIHRoYXQgaGF2ZSBhIHZhcmlhYmxlCithcGVydHVyZSBsZW5zLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhpcyBpcyBzdXBwb3J0ZWQgYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBPRkYsPHdici8+Cit0aGlzIGNhbiBiZSBzZXQgYWxvbmcgd2l0aCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4KK3RvIGFjaGlldmUgbWFudWFsIGV4cG9zdXJlIGNvbnRyb2wuPHdici8+PC9wPgorPHA+VGhlIHJlcXVlc3RlZCBhcGVydHVyZSB2YWx1ZSBtYXkgdGFrZSBzZXZlcmFsIGZyYW1lcyB0byByZWFjaCB0aGUKK3JlcXVlc3RlZCB2YWx1ZTsgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCByZXBvcnQgdGhlIGN1cnJlbnQgKGludGVybWVkaWF0ZSkKK2FwZXJ0dXJlIHNpemUgaW4gY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEgd2hpbGUgdGhlIGFwZXJ0dXJlIGlzIGNoYW5naW5nLjx3YnIvPgorV2hpbGUgdGhlIGFwZXJ0dXJlIGlzIHN0aWxsIGNoYW5naW5nLDx3YnIvPiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuc3RhdGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5zdGF0ZTwvYT4gd2lsbCBiZSBzZXQgdG8gTU9WSU5HLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhpcyBpcyBzdXBwb3J0ZWQgYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBvbmUgb2YKK3RoZSBPTiBtb2Rlcyw8d2JyLz4gdGhpcyB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNhbWVyYSBkZXZpY2UKK2F1dG8tZXhwb3N1cmUgYWxnb3JpdGhtLDx3YnIvPiB0aGUgb3ZlcnJpZGRlbiB2YWx1ZXMgYXJlIHRoZW4gcHJvdmlkZWQKK2JhY2sgdG8gdGhlIHVzZXIgaW4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzdWx0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHkiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZpbHRlcjx3YnIvPkRlbnNpdHkKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIHNldHRpbmcgZm9yIHRoZSBsZW5zIG5ldXRyYWwgZGVuc2l0eSBmaWx0ZXIocykuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIEV4cG9zdXJlIFZhbHVlIChFVikKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZpbHRlckRlbnNpdGllcyI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+RmlsdGVyPHdici8+RGVuc2l0aWVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgd2lsbCBub3QgYmUgc3VwcG9ydGVkIG9uIG1vc3QgY2FtZXJhIGRldmljZXMuPHdici8+PC9wPgorPHA+TGVucyBmaWx0ZXJzIGFyZSB0eXBpY2FsbHkgdXNlZCB0byBsb3dlciB0aGUgYW1vdW50IG9mIGxpZ2h0IHRoZQorc2Vuc29yIGlzIGV4cG9zZWQgdG8gKG1lYXN1cmVkIGluIHN0ZXBzIG9mIEVWKS48d2JyLz4gQXMgdXNlZCBoZXJlLDx3YnIvPiBhbiBFVgorc3RlcCBpcyB0aGUgc3RhbmRhcmQgbG9nYXJpdGhtaWMgcmVwcmVzZW50YXRpb24sPHdici8+IHdoaWNoIGFyZQorbm9uLW5lZ2F0aXZlLDx3YnIvPiBhbmQgaW52ZXJzZWx5IHByb3BvcnRpb25hbCB0byB0aGUgYW1vdW50IG9mIGxpZ2h0CitoaXR0aW5nIHRoZSBzZW5zb3IuPHdici8+ICBGb3IgZXhhbXBsZSw8d2JyLz4gc2V0dGluZyB0aGlzIHRvIDAgd291bGQgcmVzdWx0CitpbiBubyByZWR1Y3Rpb24gb2YgdGhlIGluY29taW5nIGxpZ2h0LDx3YnIvPiBhbmQgc2V0dGluZyB0aGlzIHRvIDIgd291bGQKK21lYW4gdGhhdCB0aGUgZmlsdGVyIGlzIHNldCB0byByZWR1Y2UgaW5jb21pbmcgbGlnaHQgYnkgdHdvIHN0b3BzCisoYWxsb3dpbmcgMS88d2JyLz40IG9mIHRoZSBwcmlvciBhbW91bnQgb2YgbGlnaHQgdG8gdGhlIHNlbnNvcikuPHdici8+PC9wPgorPHA+SXQgbWF5IHRha2Ugc2V2ZXJhbCBmcmFtZXMgYmVmb3JlIHRoZSBsZW5zIGZpbHRlciBkZW5zaXR5IGNoYW5nZXMKK3RvIHRoZSByZXF1ZXN0ZWQgdmFsdWUuPHdici8+IFdoaWxlIHRoZSBmaWx0ZXIgZGVuc2l0eSBpcyBzdGlsbCBjaGFuZ2luZyw8d2JyLz4KKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5zdGF0ZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnN0YXRlPC9hPiB3aWxsIGJlIHNldCB0byBNT1ZJTkcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY2FsPHdici8+TGVuZ3RoCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIGxlbnMgZm9jYWwgbGVuZ3RoOyB1c2VkIGZvciBvcHRpY2FsIHpvb20uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE1pbGxpbWV0ZXJzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGb2NhbExlbmd0aHMiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkZvY2FsPHdici8+TGVuZ3RoczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBzZXR0aW5nIGNvbnRyb2xzIHRoZSBwaHlzaWNhbCBmb2NhbCBsZW5ndGggb2YgdGhlIGNhbWVyYQorZGV2aWNlJ3MgbGVucy48d2JyLz4gQ2hhbmdpbmcgdGhlIGZvY2FsIGxlbmd0aCBjaGFuZ2VzIHRoZSBmaWVsZCBvZgordmlldyBvZiB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gYW5kIGlzIHVzdWFsbHkgdXNlZCBmb3Igb3B0aWNhbCB6b29tLjx3YnIvPjwvcD4KKzxwPkxpa2UgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5hcGVydHVyZTwvYT4sPHdici8+IHRoaXMKK3NldHRpbmcgd29uJ3QgYmUgYXBwbGllZCBpbnN0YW50YW5lb3VzbHksPHdici8+IGFuZCBpdCBtYXkgdGFrZSBzZXZlcmFsCitmcmFtZXMgYmVmb3JlIHRoZSBsZW5zIGNhbiBjaGFuZ2UgdG8gdGhlIHJlcXVlc3RlZCBmb2NhbCBsZW5ndGguPHdici8+CitXaGlsZSB0aGUgZm9jYWwgbGVuZ3RoIGlzIHN0aWxsIGNoYW5naW5nLDx3YnIvPiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuc3RhdGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5zdGF0ZTwvYT4gd2lsbAorYmUgc2V0IHRvIE1PVklORy48d2JyLz48L3A+Cis8cD5PcHRpY2FsIHpvb20gd2lsbCBub3QgYmUgc3VwcG9ydGVkIG9uIG1vc3QgZGV2aWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EZXNpcmVkIGRpc3RhbmNlIHRvIHBsYW5lIG9mIHNoYXJwZXN0IGZvY3VzLDx3YnIvPgorbWVhc3VyZWQgZnJvbSBmcm9udG1vc3Qgc3VyZmFjZSBvZiB0aGUgbGVucy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgU2VlIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbiBmb3IgZGV0YWlscworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgY2FuIGJlIHVzZWQgZm9yIHNldHRpbmcgbWFudWFsIGZvY3VzLDx3YnIvPiBvbiBkZXZpY2VzIHRoYXQgc3VwcG9ydAordGhlIE1BTlVBTF88d2JyLz5TRU5TT1IgY2FwYWJpbGl0eSBhbmQgaGF2ZSBhIHZhcmlhYmxlLWZvY3VzIGxlbnMgKHNlZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+KS48d2JyLz48L3A+Cis8cD5BIHZhbHVlIG9mIDxjb2RlPjAuPHdici8+MGY8L2NvZGU+IG1lYW5zIGluZmluaXR5IGZvY3VzLjx3YnIvPiBUaGUgdmFsdWUgc2V0IHdpbGwgYmUgY2xhbXBlZCB0bworPGNvZGU+WzAuPHdici8+MGYsPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPm1pbmltdW08d2JyLz5Gb2N1czx3YnIvPkRpc3RhbmNlPC9hPl08L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPkxpa2UgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2NhbExlbmd0aCI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY2FsPHdici8+TGVuZ3RoPC9hPiw8d2JyLz4gdGhpcyBzZXR0aW5nIHdvbid0IGJlIGFwcGxpZWQKK2luc3RhbnRhbmVvdXNseSw8d2JyLz4gYW5kIGl0IG1heSB0YWtlIHNldmVyYWwgZnJhbWVzIGJlZm9yZSB0aGUgbGVucworY2FuIG1vdmUgdG8gdGhlIHJlcXVlc3RlZCBmb2N1cyBkaXN0YW5jZS48d2JyLz4gV2hpbGUgdGhlIGxlbnMgaXMgc3RpbGwgbW92aW5nLDx3YnIvPgorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLnN0YXRlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+c3RhdGU8L2E+IHdpbGwgYmUgc2V0IHRvIE1PVklORy48d2JyLz48L3A+Cis8cD5MRUdBQ1kgZGV2aWNlcyBzdXBwb3J0IGF0IG1vc3Qgc2V0dGluZyB0aGlzIHRvIDxjb2RlPjAuPHdici8+MGY8L2NvZGU+Citmb3IgaW5maW5pdHkgZm9jdXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5vcHRpY2FsPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpY2FsIHN0YWJpbGl6YXRpb24gaXMgdW5hdmFpbGFibGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGljYWwgc3RhYmlsaXphdGlvbiBpcyBlbmFibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlNldHMgd2hldGhlciB0aGUgY2FtZXJhIGRldmljZSB1c2VzIG9wdGljYWwgaW1hZ2Ugc3RhYmlsaXphdGlvbiAoT0lTKQord2hlbiBjYXB0dXJpbmcgaW1hZ2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlT3B0aWNhbFN0YWJpbGl6YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5PSVMgaXMgdXNlZCB0byBjb21wZW5zYXRlIGZvciBtb3Rpb24gYmx1ciBkdWUgdG8gc21hbGwKK21vdmVtZW50cyBvZiB0aGUgY2FtZXJhIGR1cmluZyBjYXB0dXJlLjx3YnIvPiBVbmxpa2UgZGlnaXRhbCBpbWFnZQorc3RhYmlsaXphdGlvbiAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+dmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT4pLDx3YnIvPiBPSVMKK21ha2VzIHVzZSBvZiBtZWNoYW5pY2FsIGVsZW1lbnRzIHRvIHN0YWJpbGl6ZSB0aGUgY2FtZXJhCitzZW5zb3IsPHdici8+IGFuZCB0aHVzIGFsbG93cyBmb3IgbG9uZ2VyIGV4cG9zdXJlIHRpbWVzIGJlZm9yZQorY2FtZXJhIHNoYWtlIGJlY29tZXMgYXBwYXJlbnQuPHdici8+PC9wPgorPHA+U3dpdGNoaW5nIGJldHdlZW4gZGlmZmVyZW50IG9wdGljYWwgc3RhYmlsaXphdGlvbiBtb2RlcyBtYXkgdGFrZSBzZXZlcmFsCitmcmFtZXMgdG8gaW5pdGlhbGl6ZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCByZXBvcnQgdGhlIGN1cnJlbnQgbW9kZSBpbgorY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBXaGVuICJPTiIgbW9kZSBpcyByZXF1ZXN0ZWQsPHdici8+IHRoZQorb3B0aWNhbCBzdGFiaWxpemF0aW9uIG1vZGVzIGluIHRoZSBmaXJzdCBzZXZlcmFsIGNhcHR1cmUgcmVzdWx0cyBtYXkgc3RpbGwKK2JlICJPRkYiLDx3YnIvPiBhbmQgaXQgd2lsbCBiZWNvbWUgIk9OIiB3aGVuIHRoZSBpbml0aWFsaXphdGlvbiBpcyBkb25lLjx3YnIvPjwvcD4KKzxwPklmIGEgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBib3RoIE9JUyBhbmQgZGlnaXRhbCBpbWFnZSBzdGFiaWxpemF0aW9uCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+dmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT4pLDx3YnIvPiB0dXJuaW5nIGJvdGggbW9kZXMgb24gbWF5IHByb2R1Y2UgdW5kZXNpcmFibGUKK2ludGVyYWN0aW9uLDx3YnIvPiBzbyBpdCBpcyByZWNvbW1lbmRlZCBub3QgdG8gZW5hYmxlIGJvdGggYXQgdGhlIHNhbWUgdGltZS48d2JyLz48L3A+Cis8cD5Ob3QgYWxsIGRldmljZXMgd2lsbCBzdXBwb3J0IE9JUzsgc2VlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZU9wdGljYWxTdGFiaWxpemF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5PcHRpY2FsPHdici8+U3RhYmlsaXphdGlvbjwvYT4gZm9yCithdmFpbGFibGUgY29udHJvbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlQXBlcnR1cmVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkFwZXJ0dXJlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBhcGVydHVyZSBzaXplIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5hcGVydHVyZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmFwZXJ0dXJlPC9hPiB0aGF0IGFyZQorc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgVGhlIGFwZXJ0dXJlIGYtbnVtYmVyCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiB0aGUgY2FtZXJhIGRldmljZSBkb2Vzbid0IHN1cHBvcnQgYSB2YXJpYWJsZSBsZW5zIGFwZXJ0dXJlLDx3YnIvPgordGhpcyBsaXN0IHdpbGwgY29udGFpbiBvbmx5IG9uZSB2YWx1ZSw8d2JyLz4gd2hpY2ggaXMgdGhlIGZpeGVkIGFwZXJ0dXJlIHNpemUuPHdici8+PC9wPgorPHA+SWYgdGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgYSB2YXJpYWJsZSBhcGVydHVyZSw8d2JyLz4gdGhlIGFwZXJ0dXJlIHZhbHVlcworaW4gdGhpcyBsaXN0IHdpbGwgYmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGaWx0ZXJEZW5zaXRpZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+RmlsdGVyPHdici8+RGVuc2l0aWVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIG5ldXRyYWwgZGVuc2l0eSBmaWx0ZXIgdmFsdWVzIGZvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5Ij5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmlsdGVyPHdici8+RGVuc2l0eTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgRXhwb3N1cmUgdmFsdWUgKEVWKQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlZhbHVlcyBhcmUgJmd0Oz0gMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBhIG5ldXRyYWwgZGVuc2l0eSBmaWx0ZXIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UsPHdici8+Cit0aGlzIGxpc3Qgd2lsbCBjb250YWluIG9ubHkgMC48d2JyLz4gT3RoZXJ3aXNlLDx3YnIvPiB0aGlzIGxpc3Qgd2lsbCBpbmNsdWRlIGV2ZXJ5CitmaWx0ZXIgZGVuc2l0eSBzdXBwb3J0ZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGluIGFzY2VuZGluZyBvcmRlci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGb2NhbExlbmd0aHMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+Rm9jYWw8d2JyLz5MZW5ndGhzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPlRoZSBsaXN0IG9mIGF2YWlsYWJsZSBmb2NhbCBsZW5ndGhzPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBmb2NhbCBsZW5ndGhzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jYWw8d2JyLz5MZW5ndGg8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYQorZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBNaWxsaW1ldGVycworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlZhbHVlcyBhcmUgJmd0OyAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgb3B0aWNhbCB6b29tIGlzIG5vdCBzdXBwb3J0ZWQsPHdici8+IHRoaXMgbGlzdCB3aWxsIG9ubHkgY29udGFpbgorYSBzaW5nbGUgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGUgZml4ZWQgZm9jYWwgbGVuZ3RoIG9mIHRoZQorZGV2aWNlLjx3YnIvPiBPdGhlcndpc2UsPHdici8+IHRoaXMgbGlzdCB3aWxsIGluY2x1ZGUgZXZlcnkgZm9jYWwgbGVuZ3RoIHN1cHBvcnRlZAorYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGluIGFzY2VuZGluZyBvcmRlci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVPcHRpY2FsU3RhYmlsaXphdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5PcHRpY2FsPHdici8+U3RhYmlsaXphdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5saXN0IG9mIGVudW1zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBvcHRpY2FsIGltYWdlIHN0YWJpbGl6YXRpb24gKE9JUykgbW9kZXMgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPm9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+b3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBPSVMgaXMgbm90IHN1cHBvcnRlZCBieSBhIGdpdmVuIGNhbWVyYSBkZXZpY2UsPHdici8+IHRoaXMgbGlzdCB3aWxsCitjb250YWluIG9ubHkgT0ZGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmh5cGVyZm9jYWxEaXN0YW5jZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5oeXBlcmZvY2FsPHdici8+RGlzdGFuY2UKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkh5cGVyZm9jYWwgZGlzdGFuY2UgZm9yIHRoaXMgbGVucy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgU2VlIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbiBmb3IgZGV0YWlscworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPklmIGxlbnMgaXMgZml4ZWQgZm9jdXMsPHdici8+ICZndDs9IDAuPHdici8+IElmIGxlbnMgaGFzIGZvY3VzZXIgdW5pdCw8d2JyLz4gdGhlIHZhbHVlIGlzCit3aXRoaW4gPGNvZGU+KDAuPHdici8+MGYsPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPm1pbmltdW08d2JyLz5Gb2N1czx3YnIvPkRpc3RhbmNlPC9hPl08L2NvZGU+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiB0aGUgbGVucyBpcyBub3QgZml4ZWQgZm9jdXMsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcmVwb3J0IHRoaXMKK2ZpZWxkIHdoZW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbjwvYT4gaXMgQVBQUk9YSU1BVEUgb3IgQ0FMSUJSQVRFRC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+U2hvcnRlc3QgZGlzdGFuY2UgZnJvbSBmcm9udG1vc3Qgc3VyZmFjZQorb2YgdGhlIGxlbnMgdGhhdCBjYW4gYmUgYnJvdWdodCBpbnRvIHNoYXJwIGZvY3VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBTZWUgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTx3YnIvPkNhbGlicmF0aW9uIGZvciBkZXRhaWxzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiB0aGUgbGVucyBpcyBmaXhlZC1mb2N1cyw8d2JyLz4gdGhpcyB3aWxsIGJlCiswLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+TWFuZGF0b3J5IGZvciBGVUxMIGRldmljZXM7IExJTUlURUQgZGV2aWNlcworbXVzdCBhbHdheXMgc2V0IHRoaXMgdmFsdWUgdG8gMCBmb3IgZml4ZWQtZm9jdXM7IGFuZCBtYXkgb21pdAordGhlIG1pbmltdW0gZm9jdXMgZGlzdGFuY2Ugb3RoZXJ3aXNlLjx3YnIvPjwvcD4KKzxwPlRoaXMgZmllbGQgaXMgYWxzbyBtYW5kYXRvcnkgZm9yIGFsbCBkZXZpY2VzIGFkdmVydGlzaW5nCit0aGUgTUFOVUFMXzx3YnIvPlNFTlNPUiBjYXBhYmlsaXR5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5zaGFkaW5nTWFwU2l6ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5zaGFkaW5nPHdici8+TWFwPHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljIGFzIHNpemVdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+d2lkdGggYW5kIGhlaWdodCAoTiw8d2JyLz4gTSkgb2YgbGVucyBzaGFkaW5nIG1hcCBwcm92aWRlZCBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EaW1lbnNpb25zIG9mIGxlbnMgc2hhZGluZyBtYXAuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Qm90aCB2YWx1ZXMgJmd0Oz0gMTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgbWFwIHNob3VsZCBiZSBvbiB0aGUgb3JkZXIgb2YgMzAtNDAgcm93cyBhbmQgY29sdW1ucyw8d2JyLz4gYW5kCittdXN0IGJlIHNtYWxsZXIgdGhhbiA2NHg2NC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTx3YnIvPkNhbGlicmF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlVOQ0FMSUJSQVRFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGxlbnMgZm9jdXMgZGlzdGFuY2UgaXMgbm90IGFjY3VyYXRlLDx3YnIvPiBhbmQgdGhlIHVuaXRzIHVzZWQgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPC9hPiBkbyBub3QgY29ycmVzcG9uZCB0byBhbnkgcGh5c2ljYWwgdW5pdHMuPHdici8+PC9wPgorPHA+U2V0dGluZyB0aGUgbGVucyB0byB0aGUgc2FtZSBmb2N1cyBkaXN0YW5jZSBvbiBzZXBhcmF0ZSBvY2Nhc2lvbnMgbWF5CityZXN1bHQgaW4gYSBkaWZmZXJlbnQgcmVhbCBmb2N1cyBkaXN0YW5jZSw8d2JyLz4gZGVwZW5kaW5nIG9uIGZhY3RvcnMgc3VjaAorYXMgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBkZXZpY2UsPHdici8+IHRoZSBhZ2Ugb2YgdGhlIGZvY3VzaW5nIG1lY2hhbmlzbSw8d2JyLz4KK2FuZCB0aGUgZGV2aWNlIHRlbXBlcmF0dXJlLjx3YnIvPiBUaGUgZm9jdXMgZGlzdGFuY2UgdmFsdWUgd2lsbCBzdGlsbCBiZQoraW4gdGhlIHJhbmdlIG9mIDxjb2RlPlswLDx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT5dPC9jb2RlPiw8d2JyLz4gd2hlcmUgMAorcmVwcmVzZW50cyB0aGUgZmFydGhlc3QgZm9jdXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QVBQUk9YSU1BVEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBsZW5zIGZvY3VzIGRpc3RhbmNlIGlzIG1lYXN1cmVkIGluIGRpb3B0ZXJzLjx3YnIvPjwvcD4KKzxwPkhvd2V2ZXIsPHdici8+IHNldHRpbmcgdGhlIGxlbnMgdG8gdGhlIHNhbWUgZm9jdXMgZGlzdGFuY2UKK29uIHNlcGFyYXRlIG9jY2FzaW9ucyBtYXkgcmVzdWx0IGluIGEgZGlmZmVyZW50IHJlYWwKK2ZvY3VzIGRpc3RhbmNlLDx3YnIvPiBkZXBlbmRpbmcgb24gZmFjdG9ycyBzdWNoIGFzIHRoZQorb3JpZW50YXRpb24gb2YgdGhlIGRldmljZSw8d2JyLz4gdGhlIGFnZSBvZiB0aGUgZm9jdXNpbmcKK21lY2hhbmlzbSw8d2JyLz4gYW5kIHRoZSBkZXZpY2UgdGVtcGVyYXR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q0FMSUJSQVRFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGxlbnMgZm9jdXMgZGlzdGFuY2UgaXMgbWVhc3VyZWQgaW4gZGlvcHRlcnMsPHdici8+IGFuZAoraXMgY2FsaWJyYXRlZC48d2JyLz48L3A+Cis8cD5UaGUgbGVucyBtZWNoYW5pc20gaXMgY2FsaWJyYXRlZCBzbyB0aGF0IHNldHRpbmcgdGhlCitzYW1lIGZvY3VzIGRpc3RhbmNlIGlzIHJlcGVhdGFibGUgb24gbXVsdGlwbGUKK29jY2FzaW9ucyB3aXRoIGdvb2QgYWNjdXJhY3ksPHdici8+IGFuZCB0aGUgZm9jdXMgZGlzdGFuY2UKK2NvcnJlc3BvbmRzIHRvIHRoZSByZWFsIHBoeXNpY2FsIGRpc3RhbmNlIHRvIHRoZSBwbGFuZQorb2YgYmVzdCBmb2N1cy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbGVucyBmb2N1cyBkaXN0YW5jZSBjYWxpYnJhdGlvbiBxdWFsaXR5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGxlbnMgZm9jdXMgZGlzdGFuY2UgY2FsaWJyYXRpb24gcXVhbGl0eSBkZXRlcm1pbmVzIHRoZSByZWxpYWJpbGl0eSBvZgorZm9jdXMgcmVsYXRlZCBtZXRhZGF0YSBlbnRyaWVzLDx3YnIvPiBpLjx3YnIvPmUuPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLmZvY3VzUmFuZ2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPlJhbmdlPC9hPiw8d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5oeXBlcmZvY2FsRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmh5cGVyZm9jYWw8d2JyLz5EaXN0YW5jZTwvYT4sPHdici8+IGFuZAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+Ljx3YnIvPjwvcD4KKzxwPkFQUFJPWElNQVRFIGFuZCBDQUxJQlJBVEVEIGRldmljZXMgcmVwb3J0IHRoZSBmb2N1cyBtZXRhZGF0YSBpbgordW5pdHMgb2YgZGlvcHRlcnMgKDEvPHdici8+bWV0ZXIpLDx3YnIvPiBzbyA8Y29kZT4wLjx3YnIvPjBmPC9jb2RlPiByZXByZXNlbnRzIGZvY3VzaW5nIGF0IGluZmluaXR5LDx3YnIvPgorYW5kIGluY3JlYXNpbmcgcG9zaXRpdmUgbnVtYmVycyByZXByZXNlbnQgZm9jdXNpbmcgY2xvc2VyIGFuZCBjbG9zZXIKK3RvIHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBUaGUgZm9jdXMgZGlzdGFuY2UgY29udHJvbCBhbHNvIHVzZXMgZGlvcHRlcnMKK29uIHRoZXNlIGRldmljZXMuPHdici8+PC9wPgorPHA+VU5DQUxJQlJBVEVEIGRldmljZXMgZG8gbm90IHVzZSB1bml0cyB0aGF0IGFyZSBkaXJlY3RseSBjb21wYXJhYmxlCit0byBhbnkgcmVhbCBwaHlzaWNhbCBtZWFzdXJlbWVudCw8d2JyLz4gYnV0IDxjb2RlPjAuPHdici8+MGY8L2NvZGU+IHN0aWxsIHJlcHJlc2VudHMgZmFydGhlc3QKK2ZvY3VzLDx3YnIvPiBhbmQgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+IHJlcHJlc2VudHMgdGhlCituZWFyZXN0IGZvY3VzIHRoZSBkZXZpY2UgY2FuIGFjaGlldmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgZGV2aWNlcyBhZHZlcnRpc2UgQVBQUk9YSU1BVEUgcXVhbGl0eSBvciBoaWdoZXIsPHdici8+IGRpb3B0ZXJzIDAgKGluZmluaXR5Citmb2N1cykgbXVzdCB3b3JrLjx3YnIvPiBXaGVuIGF1dG9mb2N1cyBpcyBkaXNhYmxlZCAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+ID09IE9GRikKK2FuZCB0aGUgbGVucyBmb2N1cyBkaXN0YW5jZSBpcyBzZXQgdG8gMCBkaW9wdGVycworKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+ID09IDApLDx3YnIvPiB0aGUgbGVucyB3aWxsIG1vdmUgdG8gZm9jdXMgYXQgaW5maW5pdHkKK2FuZCBpcyBzdGFibHkgZm9jdXNlZCBhdCBpbmZpbml0eSBldmVuIGlmIHRoZSBkZXZpY2UgdGlsdHMuPHdici8+IEl0IG1heSB0YWtlIHRoZQorbGVucyBzb21lIHRpbWUgdG8gbW92ZTsgZHVyaW5nIHRoZSBtb3ZlIHRoZSBsZW5zIHN0YXRlIHNob3VsZCBiZSBNT1ZJTkcgYW5kCit0aGUgb3V0cHV0IGRpb3B0ZXIgdmFsdWUgc2hvdWxkIGJlIGNoYW5naW5nIHRvd2FyZCAwLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZW5zLmZhY2luZyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmFjaW5nCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RlJPTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIGZhY2VzIHRoZSBzYW1lIGRpcmVjdGlvbiBhcyB0aGUgZGV2aWNlJ3Mgc2NyZWVuLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkJBQ0s8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIGZhY2VzIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gYXMgdGhlIGRldmljZSdzIHNjcmVlbi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5FWFRFUk5BTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UgaXMgYW4gZXh0ZXJuYWwgY2FtZXJhLDx3YnIvPiBhbmQgaGFzIG5vIGZpeGVkIGZhY2luZyByZWxhdGl2ZSB0byB0aGUKK2RldmljZSdzIHNjcmVlbi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EaXJlY3Rpb24gdGhlIGNhbWVyYSBmYWNlcyByZWxhdGl2ZSB0bworZGV2aWNlIHNjcmVlbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlJvdGF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgb3JpZW50YXRpb24gb2YgdGhlIGNhbWVyYSByZWxhdGl2ZSB0byB0aGUgc2Vuc29yCitjb29yZGluYXRlIHN5c3RlbS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICBRdWF0ZXJuaW9uIGNvZWZmaWNpZW50cworICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGZvdXIgY29lZmZpY2llbnRzIHRoYXQgZGVzY3JpYmUgdGhlIHF1YXRlcm5pb24KK3JvdGF0aW9uIGZyb20gdGhlIEFuZHJvaWQgc2Vuc29yIGNvb3JkaW5hdGUgc3lzdGVtIHRvIGEKK2NhbWVyYS1hbGlnbmVkIGNvb3JkaW5hdGUgc3lzdGVtIHdoZXJlIHRoZSBYLWF4aXMgaXMKK2FsaWduZWQgd2l0aCB0aGUgbG9uZyBzaWRlIG9mIHRoZSBpbWFnZSBzZW5zb3IsPHdici8+IHRoZSBZLWF4aXMKK2lzIGFsaWduZWQgd2l0aCB0aGUgc2hvcnQgc2lkZSBvZiB0aGUgaW1hZ2Ugc2Vuc29yLDx3YnIvPiBhbmQKK3RoZSBaLWF4aXMgaXMgYWxpZ25lZCB3aXRoIHRoZSBvcHRpY2FsIGF4aXMgb2YgdGhlIHNlbnNvci48d2JyLz48L3A+Cis8cD5UbyBjb252ZXJ0IGZyb20gdGhlIHF1YXRlcm5pb24gY29lZmZpY2llbnRzIDxjb2RlPih4LDx3YnIvPnksPHdici8+eiw8d2JyLz53KTwvY29kZT4KK3RvIHRoZSBheGlzIG9mIHJvdGF0aW9uIDxjb2RlPihhXzx3YnIvPngsPHdici8+IGFfPHdici8+eSw8d2JyLz4gYV88d2JyLz56KTwvY29kZT4gYW5kIHJvdGF0aW9uCithbW91bnQgPGNvZGU+dGhldGE8L2NvZGU+LDx3YnIvPiB0aGUgZm9sbG93aW5nIGZvcm11bGFzIGNhbiBiZSB1c2VkOjwvcD4KKzxwcmU+PGNvZGU+IHRoZXRhID0gMiAqIGFjb3ModykKK2FfPHdici8+eCA9IHggLzx3YnIvPiBzaW4odGhldGEvPHdici8+MikKK2FfPHdici8+eSA9IHkgLzx3YnIvPiBzaW4odGhldGEvPHdici8+MikKK2FfPHdici8+eiA9IHogLzx3YnIvPiBzaW4odGhldGEvPHdici8+MikKKzwvY29kZT48L3ByZT4KKzxwPlRvIGNyZWF0ZSBhIDN4MyByb3RhdGlvbiBtYXRyaXggdGhhdCBhcHBsaWVzIHRoZSByb3RhdGlvbgorZGVmaW5lZCBieSB0aGlzIHF1YXRlcm5pb24sPHdici8+IHRoZSBmb2xsb3dpbmcgbWF0cml4IGNhbiBiZQordXNlZDo8L3A+Cis8cHJlPjxjb2RlPlIgPSBbIDEgLSAyeV4yIC0gMnpeMiw8d2JyLz4gICAgICAgMnh5IC0gMnp3LDx3YnIvPiAgICAgICAyeHogKyAyeXcsPHdici8+CisgICAgICAgICAgIDJ4eSArIDJ6dyw8d2JyLz4gMSAtIDJ4XjIgLSAyel4yLDx3YnIvPiAgICAgICAyeXogLSAyeHcsPHdici8+CisgICAgICAgICAgIDJ4eiAtIDJ5dyw8d2JyLz4gICAgICAgMnl6ICsgMnh3LDx3YnIvPiAxIC0gMnheMiAtIDJ5XjIgXQorPC9jb2RlPjwvcHJlPgorPHA+VGhpcyBtYXRyaXggY2FuIHRoZW4gYmUgdXNlZCB0byBhcHBseSB0aGUgcm90YXRpb24gdG8gYQorIGNvbHVtbiB2ZWN0b3IgcG9pbnQgd2l0aDwvcD4KKzxwPjxjb2RlPnAnID0gUnA8L2NvZGU+PC9wPgorPHA+d2hlcmUgPGNvZGU+cDwvY29kZT4gaXMgaW4gdGhlIGRldmljZSBzZW5zb3IgY29vcmRpbmF0ZSBzeXN0ZW0sPHdici8+IGFuZAorIDxjb2RlPnAnPC9jb2RlPiBpcyBpbiB0aGUgY2FtZXJhLW9yaWVudGVkIGNvb3JkaW5hdGUgc3lzdGVtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnBvc2U8d2JyLz5UcmFuc2xhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+UG9zaXRpb24gb2YgdGhlIGNhbWVyYSBvcHRpY2FsIGNlbnRlci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTWV0ZXJzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19ERVBUSCI+REVQVEg8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgcG9zaXRpb24gb2YgdGhlIGNhbWVyYSBkZXZpY2UncyBsZW5zIG9wdGljYWwgY2VudGVyLDx3YnIvPgorYXMgYSB0aHJlZS1kaW1lbnNpb25hbCB2ZWN0b3IgPGNvZGU+KHgsPHdici8+eSw8d2JyLz56KTwvY29kZT4sPHdici8+IHJlbGF0aXZlIHRvIHRoZQorb3B0aWNhbCBjZW50ZXIgb2YgdGhlIGxhcmdlc3QgY2FtZXJhIGRldmljZSBmYWNpbmcgaW4gdGhlCitzYW1lIGRpcmVjdGlvbiBhcyB0aGlzIGNhbWVyYSw8d2JyLz4gaW4gdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL1NlbnNvckV2ZW50Lmh0bWwiPkFuZHJvaWQgc2Vuc29yIGNvb3JkaW5hdGUKK2F4ZXM8L2E+Ljx3YnIvPiBOb3RlIHRoYXQgb25seSB0aGUgYXhpcyBkZWZpbml0aW9ucyBhcmUgc2hhcmVkIHdpdGgKK3RoZSBzZW5zb3IgY29vcmRpbmF0ZSBzeXN0ZW0sPHdici8+IGJ1dCBub3QgdGhlIG9yaWdpbi48d2JyLz48L3A+Cis8cD5JZiB0aGlzIGRldmljZSBpcyB0aGUgbGFyZ2VzdCBvciBvbmx5IGNhbWVyYSBkZXZpY2Ugd2l0aCBhCitnaXZlbiBmYWNpbmcsPHdici8+IHRoZW4gdGhpcyBwb3NpdGlvbiB3aWxsIGJlIDxjb2RlPigwLDx3YnIvPiAwLDx3YnIvPiAwKTwvY29kZT47IGEKK2NhbWVyYSBkZXZpY2Ugd2l0aCBhIGxlbnMgb3B0aWNhbCBjZW50ZXIgbG9jYXRlZCAzIGNtIGZyb20KK3RoZSBtYWluIHNlbnNvciBhbG9uZyB0aGUgK1ggYXhpcyAodG8gdGhlIHJpZ2h0IGZyb20gdGhlCit1c2VyJ3MgcGVyc3BlY3RpdmUpIHdpbGwgcmVwb3J0IDxjb2RlPigwLjx3YnIvPjAzLDx3YnIvPiAwLDx3YnIvPiAwKTwvY29kZT4uPHdici8+PC9wPgorPHA+VG8gdHJhbnNmb3JtIGEgcGl4ZWwgY29vcmRpbmF0ZXMgYmV0d2VlbiB0d28gY2FtZXJhcworZmFjaW5nIHRoZSBzYW1lIGRpcmVjdGlvbiw8d2JyLz4gZmlyc3QgdGhlIHNvdXJjZSBjYW1lcmEKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uPC9hPiBtdXN0IGJlIGNvcnJlY3RlZCBmb3IuPHdici8+ICBUaGVuCit0aGUgc291cmNlIGNhbWVyYSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmludHJpbnNpYzx3YnIvPkNhbGlicmF0aW9uPC9hPiBuZWVkcwordG8gYmUgYXBwbGllZCw8d2JyLz4gZm9sbG93ZWQgYnkgdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnBvc2U8d2JyLz5Sb3RhdGlvbjwvYT4KK29mIHRoZSBzb3VyY2UgY2FtZXJhLDx3YnIvPiB0aGUgdHJhbnNsYXRpb24gb2YgdGhlIHNvdXJjZSBjYW1lcmEKK3JlbGF0aXZlIHRvIHRoZSBkZXN0aW5hdGlvbiBjYW1lcmEsPHdici8+IHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlJvdGF0aW9uPC9hPiBvZiB0aGUgZGVzdGluYXRpb24gY2FtZXJhLDx3YnIvPiBhbmQKK2ZpbmFsbHkgdGhlIGludmVyc2Ugb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbjwvYT4KK29mIHRoZSBkZXN0aW5hdGlvbiBjYW1lcmEuPHdici8+IFRoaXMgb2J0YWlucyBhCityYWRpYWwtZGlzdG9ydGlvbi1mcmVlIGNvb3JkaW5hdGUgaW4gdGhlIGRlc3RpbmF0aW9uCitjYW1lcmEgcGl4ZWwgY29vcmRpbmF0ZXMuPHdici8+PC9wPgorPHA+VG8gY29tcGFyZSB0aGlzIGFnYWluc3QgYSByZWFsIGltYWdlIGZyb20gdGhlIGRlc3RpbmF0aW9uCitjYW1lcmEsPHdici8+IHRoZSBkZXN0aW5hdGlvbiBjYW1lcmEgaW1hZ2UgdGhlbiBuZWVkcyB0byBiZQorY29ycmVjdGVkIGZvciByYWRpYWwgZGlzdG9ydGlvbiBiZWZvcmUgY29tcGFyaXNvbiBvcgorc2FtcGxpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZW5zLmludHJpbnNpY0NhbGlicmF0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNQorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHBhcmFtZXRlcnMgZm9yIHRoaXMgY2FtZXJhIGRldmljZSdzIGludHJpbnNpYworY2FsaWJyYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgUGl4ZWxzIGluIHRoZQorICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICBjb29yZGluYXRlIHN5c3RlbS48d2JyLz4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0RFUFRIIj5ERVBUSDwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBmaXZlIGNhbGlicmF0aW9uIHBhcmFtZXRlcnMgdGhhdCBkZXNjcmliZSB0aGUKK3RyYW5zZm9ybSBmcm9tIGNhbWVyYS1jZW50cmljIDNEIGNvb3JkaW5hdGVzIHRvIHNlbnNvcgorcGl4ZWwgY29vcmRpbmF0ZXM6PC9wPgorPHByZT48Y29kZT5bZl88d2JyLz54LDx3YnIvPiBmXzx3YnIvPnksPHdici8+IGNfPHdici8+eCw8d2JyLz4gY188d2JyLz55LDx3YnIvPiBzXQorPC9jb2RlPjwvcHJlPgorPHA+V2hlcmUgPGNvZGU+Zl88d2JyLz54PC9jb2RlPiBhbmQgPGNvZGU+Zl88d2JyLz55PC9jb2RlPiBhcmUgdGhlIGhvcml6b250YWwgYW5kIHZlcnRpY2FsCitmb2NhbCBsZW5ndGhzLDx3YnIvPiA8Y29kZT5bY188d2JyLz54LDx3YnIvPiBjXzx3YnIvPnldPC9jb2RlPiBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIG9wdGljYWwKK2F4aXMsPHdici8+IGFuZCA8Y29kZT5zPC9jb2RlPiBpcyBhIHNrZXcgcGFyYW1ldGVyIGZvciB0aGUgc2Vuc29yIHBsYW5lIG5vdAorYmVpbmcgYWxpZ25lZCB3aXRoIHRoZSBsZW5zIHBsYW5lLjx3YnIvPjwvcD4KKzxwPlRoZXNlIGFyZSB0eXBpY2FsbHkgdXNlZCB3aXRoaW4gYSB0cmFuc2Zvcm1hdGlvbiBtYXRyaXggSzo8L3A+Cis8cHJlPjxjb2RlPksgPSBbIGZfPHdici8+eCw8d2JyLz4gICBzLDx3YnIvPiBjXzx3YnIvPngsPHdici8+CisgICAgICAgMCw8d2JyLz4gZl88d2JyLz55LDx3YnIvPiBjXzx3YnIvPnksPHdici8+CisgICAgICAgMCAgICAwLDx3YnIvPiAgIDEgXQorPC9jb2RlPjwvcHJlPgorPHA+d2hpY2ggY2FuIHRoZW4gYmUgY29tYmluZWQgd2l0aCB0aGUgY2FtZXJhIHBvc2Ugcm90YXRpb24KKzxjb2RlPlI8L2NvZGU+IGFuZCB0cmFuc2xhdGlvbiA8Y29kZT50PC9jb2RlPiAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlJvdGF0aW9uPC9hPiBhbmQKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VUcmFuc2xhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnBvc2U8d2JyLz5UcmFuc2xhdGlvbjwvYT4sPHdici8+IHJlc3BlY3RpdmUpIHRvIGNhbGN1bGF0ZSB0aGUKK2NvbXBsZXRlIHRyYW5zZm9ybSBmcm9tIHdvcmxkIGNvb3JkaW5hdGVzIHRvIHBpeGVsCitjb29yZGluYXRlczo8L3A+Cis8cHJlPjxjb2RlPlAgPSBbIEsgMCAgICogWyBSIHQKKyAgICAgMCAxIF0gICAgIDAgMSBdCis8L2NvZGU+PC9wcmU+Cis8cD5hbmQgd2l0aCA8Y29kZT5wXzx3YnIvPnc8L2NvZGU+IGJlaW5nIGEgcG9pbnQgaW4gdGhlIHdvcmxkIGNvb3JkaW5hdGUgc3lzdGVtCithbmQgPGNvZGU+cF88d2JyLz5zPC9jb2RlPiBiZWluZyBhIHBvaW50IGluIHRoZSBjYW1lcmEgYWN0aXZlIHBpeGVsIGFycmF5Citjb29yZGluYXRlIHN5c3RlbSw8d2JyLz4gYW5kIHdpdGggdGhlIG1hcHBpbmcgaW5jbHVkaW5nIHRoZQoraG9tb2dlbmVvdXMgZGl2aXNpb24gYnkgejo8L3A+Cis8cHJlPjxjb2RlPiBwXzx3YnIvPmggPSAoeF88d2JyLz5oLDx3YnIvPiB5Xzx3YnIvPmgsPHdici8+IHpfPHdici8+aCkgPSBQIHBfPHdici8+dworcF88d2JyLz5zID0gcF88d2JyLz5oIC88d2JyLz4gel88d2JyLz5oCis8L2NvZGU+PC9wcmU+Cis8cD5zbyA8Y29kZT5beF88d2JyLz5zLDx3YnIvPiB5Xzx3YnIvPnNdPC9jb2RlPiBpcyB0aGUgcGl4ZWwgY29vcmRpbmF0ZXMgb2YgdGhlIHdvcmxkCitwb2ludCw8d2JyLz4gPGNvZGU+el88d2JyLz5zID0gMTwvY29kZT4sPHdici8+IGFuZCA8Y29kZT53Xzx3YnIvPnM8L2NvZGU+IGlzIGEgbWVhc3VyZW1lbnQgb2YgZGlzcGFyaXR5CisoZGVwdGgpIGluIHBpeGVsIGNvb3JkaW5hdGVzLjx3YnIvPjwvcD4KKzxwPk5vdGUgdGhhdCB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gZm9yIHRoaXMgdHJhbnNmb3JtIGlzIHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gc3lzdGVtLDx3YnIvPgord2hlcmUgPGNvZGU+KDAsPHdici8+MCk8L2NvZGU+IGlzIHRoZSB0b3AtbGVmdCBvZiB0aGUKK3ByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUgcmVjdGFuZ2xlLjx3YnIvPiBPbmNlIHRoZSBwb3NlIGFuZAoraW50cmluc2ljIGNhbGlicmF0aW9uIHRyYW5zZm9ybXMgaGF2ZSBiZWVuIGFwcGxpZWQgdG8gYQord29ybGQgcG9pbnQsPHdici8+IHRoZW4gdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uPC9hPgordHJhbnNmb3JtIG5lZWRzIHRvIGJlIGFwcGxpZWQsPHdici8+IGFuZCB0aGUgcmVzdWx0IGFkanVzdGVkIHRvCitiZSBpbiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+IGNvb3JkaW5hdGUKK3N5c3RlbSAod2hlcmUgPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiBpcyB0aGUgdG9wLWxlZnQgb2YgdGhlCithY3RpdmVBcnJheVNpemUgcmVjdGFuZ2xlKSw8d2JyLz4gdG8gZGV0ZXJtaW5lIHRoZSBmaW5hbCBwaXhlbAorY29vcmRpbmF0ZSBvZiB0aGUgd29ybGQgcG9pbnQgZm9yIHByb2Nlc3NlZCAobm9uLVJBVykKK291dHB1dCBidWZmZXJzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA2CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgY29ycmVjdGlvbiBjb2VmZmljaWVudHMgdG8gY29ycmVjdCBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlJ3MKK3JhZGlhbCBhbmQgdGFuZ2VudGlhbCBsZW5zIGRpc3RvcnRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgVW5pdGxlc3MgY29lZmZpY2llbnRzLjx3YnIvPgorICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm91ciByYWRpYWwgZGlzdG9ydGlvbiBjb2VmZmljaWVudHMgPGNvZGU+W2thcHBhXzx3YnIvPjAsPHdici8+IGthcHBhXzx3YnIvPjEsPHdici8+IGthcHBhXzx3YnIvPjIsPHdici8+CitrYXBwYV88d2JyLz4zXTwvY29kZT4gYW5kIHR3byB0YW5nZW50aWFsIGRpc3RvcnRpb24gY29lZmZpY2llbnRzCis8Y29kZT5ba2FwcGFfPHdici8+NCw8d2JyLz4ga2FwcGFfPHdici8+NV08L2NvZGU+IHRoYXQgY2FuIGJlIHVzZWQgdG8gY29ycmVjdCB0aGUKK2xlbnMncyBnZW9tZXRyaWMgZGlzdG9ydGlvbiB3aXRoIHRoZSBtYXBwaW5nIGVxdWF0aW9uczo8L3A+Cis8cHJlPjxjb2RlPiB4Xzx3YnIvPmMgPSB4Xzx3YnIvPmkgKiAoIGthcHBhXzx3YnIvPjAgKyBrYXBwYV88d2JyLz4xICogcl4yICsga2FwcGFfPHdici8+MiAqIHJeNCArIGthcHBhXzx3YnIvPjMgKiByXjYgKSArCisgICAgICAga2FwcGFfPHdici8+NCAqICgyICogeF88d2JyLz5pICogeV88d2JyLz5pKSArIGthcHBhXzx3YnIvPjUgKiAoIHJeMiArIDIgKiB4Xzx3YnIvPmleMiApCisgeV88d2JyLz5jID0geV88d2JyLz5pICogKCBrYXBwYV88d2JyLz4wICsga2FwcGFfPHdici8+MSAqIHJeMiArIGthcHBhXzx3YnIvPjIgKiByXjQgKyBrYXBwYV88d2JyLz4zICogcl42ICkgKworICAgICAgIGthcHBhXzx3YnIvPjUgKiAoMiAqIHhfPHdici8+aSAqIHlfPHdici8+aSkgKyBrYXBwYV88d2JyLz40ICogKCByXjIgKyAyICogeV88d2JyLz5pXjIgKQorPC9jb2RlPjwvcHJlPgorPHA+SGVyZSw8d2JyLz4gPGNvZGU+W3hfPHdici8+Yyw8d2JyLz4geV88d2JyLz5jXTwvY29kZT4gYXJlIHRoZSBjb29yZGluYXRlcyB0byBzYW1wbGUgaW4gdGhlCitpbnB1dCBpbWFnZSB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIHBpeGVsIHZhbHVlcyBpbiB0aGUKK2NvcnJlY3RlZCBpbWFnZSBhdCB0aGUgY29vcmRpbmF0ZSA8Y29kZT5beF88d2JyLz5pLDx3YnIvPiB5Xzx3YnIvPmldPC9jb2RlPjo8L3A+Cis8cHJlPjxjb2RlPiBjb3JyZWN0ZWRJbWFnZSh4Xzx3YnIvPmksPHdici8+IHlfPHdici8+aSkgPSBzYW1wbGVfPHdici8+YXQoeF88d2JyLz5jLDx3YnIvPiB5Xzx3YnIvPmMsPHdici8+IGlucHV0SW1hZ2UpCis8L2NvZGU+PC9wcmU+Cis8cD5UaGUgcGl4ZWwgY29vcmRpbmF0ZXMgYXJlIGRlZmluZWQgaW4gYSBub3JtYWxpemVkCitjb29yZGluYXRlIHN5c3RlbSByZWxhdGVkIHRvIHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbjwvYT4gY2FsaWJyYXRpb24gZmllbGRzLjx3YnIvPgorQm90aCA8Y29kZT5beF88d2JyLz5pLDx3YnIvPiB5Xzx3YnIvPmldPC9jb2RlPiBhbmQgPGNvZGU+W3hfPHdici8+Yyw8d2JyLz4geV88d2JyLz5jXTwvY29kZT4gaGF2ZSA8Y29kZT4oMCw8d2JyLz4wKTwvY29kZT4gYXQgdGhlCitsZW5zIG9wdGljYWwgY2VudGVyIDxjb2RlPltjXzx3YnIvPngsPHdici8+IGNfPHdici8+eV08L2NvZGU+Ljx3YnIvPiBUaGUgbWF4aW11bSBtYWduaXR1ZGVzCitvZiBib3RoIHggYW5kIHkgY29vcmRpbmF0ZXMgYXJlIG5vcm1hbGl6ZWQgdG8gYmUgMSBhdCB0aGUKK2VkZ2UgZnVydGhlciBmcm9tIHRoZSBvcHRpY2FsIGNlbnRlciw8d2JyLz4gc28gdGhlIHJhbmdlCitmb3IgYm90aCBkaW1lbnNpb25zIGlzIDxjb2RlPi0xICZsdDs9IHggJmx0Oz0gMTwvY29kZT4uPHdici8+PC9wPgorPHA+RmluYWxseSw8d2JyLz4gPGNvZGU+cjwvY29kZT4gcmVwcmVzZW50cyB0aGUgcmFkaWFsIGRpc3RhbmNlIGZyb20gdGhlCitvcHRpY2FsIGNlbnRlciw8d2JyLz4gPGNvZGU+cl4yID0geF88d2JyLz5pXjIgKyB5Xzx3YnIvPmleMjwvY29kZT4sPHdici8+IGFuZCBpdHMgbWFnbml0dWRlCitpcyB0aGVyZWZvcmUgbm8gbGFyZ2VyIHRoYW4gPGNvZGU+fDx3YnIvPnJ8PHdici8+ICZsdDs9IHNxcnQoMik8L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPlRoZSBkaXN0b3J0aW9uIG1vZGVsIHVzZWQgaXMgdGhlIEJyb3duLUNvbnJhZHkgbW9kZWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5hcGVydHVyZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGRlc2lyZWQgbGVucyBhcGVydHVyZSBzaXplLDx3YnIvPiBhcyBhIHJhdGlvIG9mIGxlbnMgZm9jYWwgbGVuZ3RoIHRvIHRoZQorZWZmZWN0aXZlIGFwZXJ0dXJlIGRpYW1ldGVyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBUaGUgZi1udW1iZXIgKGYvPHdici8+TikKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUFwZXJ0dXJlcyI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+QXBlcnR1cmVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TZXR0aW5nIHRoaXMgdmFsdWUgaXMgb25seSBzdXBwb3J0ZWQgb24gdGhlIGNhbWVyYSBkZXZpY2VzIHRoYXQgaGF2ZSBhIHZhcmlhYmxlCithcGVydHVyZSBsZW5zLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhpcyBpcyBzdXBwb3J0ZWQgYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBPRkYsPHdici8+Cit0aGlzIGNhbiBiZSBzZXQgYWxvbmcgd2l0aCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4KK3RvIGFjaGlldmUgbWFudWFsIGV4cG9zdXJlIGNvbnRyb2wuPHdici8+PC9wPgorPHA+VGhlIHJlcXVlc3RlZCBhcGVydHVyZSB2YWx1ZSBtYXkgdGFrZSBzZXZlcmFsIGZyYW1lcyB0byByZWFjaCB0aGUKK3JlcXVlc3RlZCB2YWx1ZTsgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCByZXBvcnQgdGhlIGN1cnJlbnQgKGludGVybWVkaWF0ZSkKK2FwZXJ0dXJlIHNpemUgaW4gY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEgd2hpbGUgdGhlIGFwZXJ0dXJlIGlzIGNoYW5naW5nLjx3YnIvPgorV2hpbGUgdGhlIGFwZXJ0dXJlIGlzIHN0aWxsIGNoYW5naW5nLDx3YnIvPiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuc3RhdGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5zdGF0ZTwvYT4gd2lsbCBiZSBzZXQgdG8gTU9WSU5HLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhpcyBpcyBzdXBwb3J0ZWQgYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBvbmUgb2YKK3RoZSBPTiBtb2Rlcyw8d2JyLz4gdGhpcyB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNhbWVyYSBkZXZpY2UKK2F1dG8tZXhwb3N1cmUgYWxnb3JpdGhtLDx3YnIvPiB0aGUgb3ZlcnJpZGRlbiB2YWx1ZXMgYXJlIHRoZW4gcHJvdmlkZWQKK2JhY2sgdG8gdGhlIHVzZXIgaW4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzdWx0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmlsdGVyPHdici8+RGVuc2l0eQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGRlc2lyZWQgc2V0dGluZyBmb3IgdGhlIGxlbnMgbmV1dHJhbCBkZW5zaXR5IGZpbHRlcihzKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgRXhwb3N1cmUgVmFsdWUgKEVWKQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRmlsdGVyRGVuc2l0aWVzIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5GaWx0ZXI8d2JyLz5EZW5zaXRpZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgb24gbW9zdCBjYW1lcmEgZGV2aWNlcy48d2JyLz48L3A+Cis8cD5MZW5zIGZpbHRlcnMgYXJlIHR5cGljYWxseSB1c2VkIHRvIGxvd2VyIHRoZSBhbW91bnQgb2YgbGlnaHQgdGhlCitzZW5zb3IgaXMgZXhwb3NlZCB0byAobWVhc3VyZWQgaW4gc3RlcHMgb2YgRVYpLjx3YnIvPiBBcyB1c2VkIGhlcmUsPHdici8+IGFuIEVWCitzdGVwIGlzIHRoZSBzdGFuZGFyZCBsb2dhcml0aG1pYyByZXByZXNlbnRhdGlvbiw8d2JyLz4gd2hpY2ggYXJlCitub24tbmVnYXRpdmUsPHdici8+IGFuZCBpbnZlcnNlbHkgcHJvcG9ydGlvbmFsIHRvIHRoZSBhbW91bnQgb2YgbGlnaHQKK2hpdHRpbmcgdGhlIHNlbnNvci48d2JyLz4gIEZvciBleGFtcGxlLDx3YnIvPiBzZXR0aW5nIHRoaXMgdG8gMCB3b3VsZCByZXN1bHQKK2luIG5vIHJlZHVjdGlvbiBvZiB0aGUgaW5jb21pbmcgbGlnaHQsPHdici8+IGFuZCBzZXR0aW5nIHRoaXMgdG8gMiB3b3VsZAorbWVhbiB0aGF0IHRoZSBmaWx0ZXIgaXMgc2V0IHRvIHJlZHVjZSBpbmNvbWluZyBsaWdodCBieSB0d28gc3RvcHMKKyhhbGxvd2luZyAxLzx3YnIvPjQgb2YgdGhlIHByaW9yIGFtb3VudCBvZiBsaWdodCB0byB0aGUgc2Vuc29yKS48d2JyLz48L3A+Cis8cD5JdCBtYXkgdGFrZSBzZXZlcmFsIGZyYW1lcyBiZWZvcmUgdGhlIGxlbnMgZmlsdGVyIGRlbnNpdHkgY2hhbmdlcwordG8gdGhlIHJlcXVlc3RlZCB2YWx1ZS48d2JyLz4gV2hpbGUgdGhlIGZpbHRlciBkZW5zaXR5IGlzIHN0aWxsIGNoYW5naW5nLDx3YnIvPgorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLnN0YXRlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+c3RhdGU8L2E+IHdpbGwgYmUgc2V0IHRvIE1PVklORy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2NhbDx3YnIvPkxlbmd0aAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBsZW5zIGZvY2FsIGxlbmd0aDsgdXNlZCBmb3Igb3B0aWNhbCB6b29tLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBNaWxsaW1ldGVycworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRm9jYWxMZW5ndGhzIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5Gb2NhbDx3YnIvPkxlbmd0aHM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgc2V0dGluZyBjb250cm9scyB0aGUgcGh5c2ljYWwgZm9jYWwgbGVuZ3RoIG9mIHRoZSBjYW1lcmEKK2RldmljZSdzIGxlbnMuPHdici8+IENoYW5naW5nIHRoZSBmb2NhbCBsZW5ndGggY2hhbmdlcyB0aGUgZmllbGQgb2YKK3ZpZXcgb2YgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGFuZCBpcyB1c3VhbGx5IHVzZWQgZm9yIG9wdGljYWwgem9vbS48d2JyLz48L3A+Cis8cD5MaWtlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+YXBlcnR1cmU8L2E+LDx3YnIvPiB0aGlzCitzZXR0aW5nIHdvbid0IGJlIGFwcGxpZWQgaW5zdGFudGFuZW91c2x5LDx3YnIvPiBhbmQgaXQgbWF5IHRha2Ugc2V2ZXJhbAorZnJhbWVzIGJlZm9yZSB0aGUgbGVucyBjYW4gY2hhbmdlIHRvIHRoZSByZXF1ZXN0ZWQgZm9jYWwgbGVuZ3RoLjx3YnIvPgorV2hpbGUgdGhlIGZvY2FsIGxlbmd0aCBpcyBzdGlsbCBjaGFuZ2luZyw8d2JyLz4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLnN0YXRlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+c3RhdGU8L2E+IHdpbGwKK2JlIHNldCB0byBNT1ZJTkcuPHdici8+PC9wPgorPHA+T3B0aWNhbCB6b29tIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBvbiBtb3N0IGRldmljZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EZXNpcmVkIGRpc3RhbmNlIHRvIHBsYW5lIG9mIHNoYXJwZXN0IGZvY3VzLDx3YnIvPgorbWVhc3VyZWQgZnJvbSBmcm9udG1vc3Qgc3VyZmFjZSBvZiB0aGUgbGVucy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgU2VlIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbiBmb3IgZGV0YWlscworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U2hvdWxkIGJlIHplcm8gZm9yIGZpeGVkLWZvY3VzIGNhbWVyYXM8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLmZvY3VzUmFuZ2UiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+UmFuZ2UKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHBhaXJGbG9hdEZsb2F0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPlJhbmdlIG9mIHNjZW5lIGRpc3RhbmNlcyB0aGF0IGFyZSBpbiBmb2N1czwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSByYW5nZSBvZiBzY2VuZSBkaXN0YW5jZXMgdGhhdCBhcmUgaW4KK3NoYXJwIGZvY3VzIChkZXB0aCBvZiBmaWVsZCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIEEgcGFpciBvZiBmb2N1cyBkaXN0YW5jZXMgaW4gZGlvcHRlcnM6IChuZWFyLDx3YnIvPgorICAgICAgICAgIGZhcik7IHNlZSBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPHdici8+Q2FsaWJyYXRpb24gZm9yIGRldGFpbHMuPHdici8+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0wPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIHZhcmlhYmxlIGZvY3VzIG5vdCBzdXBwb3J0ZWQsPHdici8+IGNhbiBzdGlsbCByZXBvcnQKK2ZpeGVkIGRlcHRoIG9mIGZpZWxkIHJhbmdlPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPm9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGljYWwgc3RhYmlsaXphdGlvbiBpcyB1bmF2YWlsYWJsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aWNhbCBzdGFiaWxpemF0aW9uIGlzIGVuYWJsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+U2V0cyB3aGV0aGVyIHRoZSBjYW1lcmEgZGV2aWNlIHVzZXMgb3B0aWNhbCBpbWFnZSBzdGFiaWxpemF0aW9uIChPSVMpCit3aGVuIGNhcHR1cmluZyBpbWFnZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVPcHRpY2FsU3RhYmlsaXphdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+T3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9JUyBpcyB1c2VkIHRvIGNvbXBlbnNhdGUgZm9yIG1vdGlvbiBibHVyIGR1ZSB0byBzbWFsbAorbW92ZW1lbnRzIG9mIHRoZSBjYW1lcmEgZHVyaW5nIGNhcHR1cmUuPHdici8+IFVubGlrZSBkaWdpdGFsIGltYWdlCitzdGFiaWxpemF0aW9uICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz52aWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiksPHdici8+IE9JUworbWFrZXMgdXNlIG9mIG1lY2hhbmljYWwgZWxlbWVudHMgdG8gc3RhYmlsaXplIHRoZSBjYW1lcmEKK3NlbnNvciw8d2JyLz4gYW5kIHRodXMgYWxsb3dzIGZvciBsb25nZXIgZXhwb3N1cmUgdGltZXMgYmVmb3JlCitjYW1lcmEgc2hha2UgYmVjb21lcyBhcHBhcmVudC48d2JyLz48L3A+Cis8cD5Td2l0Y2hpbmcgYmV0d2VlbiBkaWZmZXJlbnQgb3B0aWNhbCBzdGFiaWxpemF0aW9uIG1vZGVzIG1heSB0YWtlIHNldmVyYWwKK2ZyYW1lcyB0byBpbml0aWFsaXplLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHJlcG9ydCB0aGUgY3VycmVudCBtb2RlIGluCitjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IFdoZW4gIk9OIiBtb2RlIGlzIHJlcXVlc3RlZCw8d2JyLz4gdGhlCitvcHRpY2FsIHN0YWJpbGl6YXRpb24gbW9kZXMgaW4gdGhlIGZpcnN0IHNldmVyYWwgY2FwdHVyZSByZXN1bHRzIG1heSBzdGlsbAorYmUgIk9GRiIsPHdici8+IGFuZCBpdCB3aWxsIGJlY29tZSAiT04iIHdoZW4gdGhlIGluaXRpYWxpemF0aW9uIGlzIGRvbmUuPHdici8+PC9wPgorPHA+SWYgYSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIGJvdGggT0lTIGFuZCBkaWdpdGFsIGltYWdlIHN0YWJpbGl6YXRpb24KKyg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz52aWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiksPHdici8+IHR1cm5pbmcgYm90aCBtb2RlcyBvbiBtYXkgcHJvZHVjZSB1bmRlc2lyYWJsZQoraW50ZXJhY3Rpb24sPHdici8+IHNvIGl0IGlzIHJlY29tbWVuZGVkIG5vdCB0byBlbmFibGUgYm90aCBhdCB0aGUgc2FtZSB0aW1lLjx3YnIvPjwvcD4KKzxwPk5vdCBhbGwgZGV2aWNlcyB3aWxsIHN1cHBvcnQgT0lTOyBzZWUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlT3B0aWNhbFN0YWJpbGl6YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPC9hPiBmb3IKK2F2YWlsYWJsZSBjb250cm9scy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLnN0YXRlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5zdGF0ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVEFUSU9OQVJZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgbGVucyBwYXJhbWV0ZXJzICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jYWw8d2JyLz5MZW5ndGg8L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZpbHRlcjx3YnIvPkRlbnNpdHk8L2E+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+YXBlcnR1cmU8L2E+KSBhcmUgbm90IGNoYW5naW5nLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk1PVklORzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T25lIG9yIHNldmVyYWwgb2YgdGhlIGxlbnMgcGFyYW1ldGVycworKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2NhbDx3YnIvPkxlbmd0aDwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5Ij5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmlsdGVyPHdici8+RGVuc2l0eTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5hcGVydHVyZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmFwZXJ0dXJlPC9hPikgaXMKK2N1cnJlbnRseSBjaGFuZ2luZy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5DdXJyZW50IGxlbnMgc3RhdHVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIGxlbnMgcGFyYW1ldGVycyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jYWw8d2JyLz5MZW5ndGg8L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZpbHRlcjx3YnIvPkRlbnNpdHk8L2E+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+YXBlcnR1cmU8L2E+LDx3YnIvPiB3aGVuIGNoYW5nZXMgYXJlIHJlcXVlc3RlZCw8d2JyLz4KK3RoZXkgbWF5IHRha2Ugc2V2ZXJhbCBmcmFtZXMgdG8gcmVhY2ggdGhlIHJlcXVlc3RlZCB2YWx1ZXMuPHdici8+IFRoaXMgc3RhdGUgaW5kaWNhdGVzCit0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIGxlbnMgcGFyYW1ldGVycy48d2JyLz48L3A+Cis8cD5XaGVuIHRoZSBzdGF0ZSBpcyBTVEFUSU9OQVJZLDx3YnIvPiB0aGUgbGVucyBwYXJhbWV0ZXJzIGFyZSBub3QgY2hhbmdpbmcuPHdici8+IFRoaXMgY291bGQgYmUKK2VpdGhlciBiZWNhdXNlIHRoZSBwYXJhbWV0ZXJzIGFyZSBhbGwgZml4ZWQsPHdici8+IG9yIGJlY2F1c2UgdGhlIGxlbnMgaGFzIGhhZCBlbm91Z2gKK3RpbWUgdG8gcmVhY2ggdGhlIG1vc3QgcmVjZW50bHktcmVxdWVzdGVkIHZhbHVlcy48d2JyLz4KK0lmIGFsbCB0aGVzZSBsZW5zIHBhcmFtZXRlcnMgYXJlIG5vdCBjaGFuZ2FibGUgZm9yIGEgY2FtZXJhIGRldmljZSw8d2JyLz4gYXMgbGlzdGVkIGJlbG93OjwvcD4KKzx1bD4KKzxsaT5GaXhlZCBmb2N1cyAoPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+ID09IDA8L2NvZGU+KSw8d2JyLz4gd2hpY2ggbWVhbnMKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+IHBhcmFtZXRlciB3aWxsIGFsd2F5cyBiZSAwLjx3YnIvPjwvbGk+Cis8bGk+Rml4ZWQgZm9jYWwgbGVuZ3RoICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZvY2FsTGVuZ3RocyI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+Rm9jYWw8d2JyLz5MZW5ndGhzPC9hPiBjb250YWlucyBzaW5nbGUgdmFsdWUpLDx3YnIvPgord2hpY2ggbWVhbnMgdGhlIG9wdGljYWwgem9vbSBpcyBub3Qgc3VwcG9ydGVkLjx3YnIvPjwvbGk+Cis8bGk+Tm8gTkQgZmlsdGVyICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZpbHRlckRlbnNpdGllcyI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+RmlsdGVyPHdici8+RGVuc2l0aWVzPC9hPiBjb250YWlucyBvbmx5IDApLjx3YnIvPjwvbGk+Cis8bGk+Rml4ZWQgYXBlcnR1cmUgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlQXBlcnR1cmVzIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5BcGVydHVyZXM8L2E+IGNvbnRhaW5zIHNpbmdsZSB2YWx1ZSkuPHdici8+PC9saT4KKzwvdWw+Cis8cD5UaGVuIHRoaXMgc3RhdGUgd2lsbCBhbHdheXMgYmUgU1RBVElPTkFSWS48d2JyLz48L3A+Cis8cD5XaGVuIHRoZSBzdGF0ZSBpcyBNT1ZJTkcsPHdici8+IGl0IGluZGljYXRlcyB0aGF0IGF0IGxlYXN0IG9uZSBvZiB0aGUgbGVucyBwYXJhbWV0ZXJzCitpcyBjaGFuZ2luZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlJvdGF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgb3JpZW50YXRpb24gb2YgdGhlIGNhbWVyYSByZWxhdGl2ZSB0byB0aGUgc2Vuc29yCitjb29yZGluYXRlIHN5c3RlbS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICBRdWF0ZXJuaW9uIGNvZWZmaWNpZW50cworICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGZvdXIgY29lZmZpY2llbnRzIHRoYXQgZGVzY3JpYmUgdGhlIHF1YXRlcm5pb24KK3JvdGF0aW9uIGZyb20gdGhlIEFuZHJvaWQgc2Vuc29yIGNvb3JkaW5hdGUgc3lzdGVtIHRvIGEKK2NhbWVyYS1hbGlnbmVkIGNvb3JkaW5hdGUgc3lzdGVtIHdoZXJlIHRoZSBYLWF4aXMgaXMKK2FsaWduZWQgd2l0aCB0aGUgbG9uZyBzaWRlIG9mIHRoZSBpbWFnZSBzZW5zb3IsPHdici8+IHRoZSBZLWF4aXMKK2lzIGFsaWduZWQgd2l0aCB0aGUgc2hvcnQgc2lkZSBvZiB0aGUgaW1hZ2Ugc2Vuc29yLDx3YnIvPiBhbmQKK3RoZSBaLWF4aXMgaXMgYWxpZ25lZCB3aXRoIHRoZSBvcHRpY2FsIGF4aXMgb2YgdGhlIHNlbnNvci48d2JyLz48L3A+Cis8cD5UbyBjb252ZXJ0IGZyb20gdGhlIHF1YXRlcm5pb24gY29lZmZpY2llbnRzIDxjb2RlPih4LDx3YnIvPnksPHdici8+eiw8d2JyLz53KTwvY29kZT4KK3RvIHRoZSBheGlzIG9mIHJvdGF0aW9uIDxjb2RlPihhXzx3YnIvPngsPHdici8+IGFfPHdici8+eSw8d2JyLz4gYV88d2JyLz56KTwvY29kZT4gYW5kIHJvdGF0aW9uCithbW91bnQgPGNvZGU+dGhldGE8L2NvZGU+LDx3YnIvPiB0aGUgZm9sbG93aW5nIGZvcm11bGFzIGNhbiBiZSB1c2VkOjwvcD4KKzxwcmU+PGNvZGU+IHRoZXRhID0gMiAqIGFjb3ModykKK2FfPHdici8+eCA9IHggLzx3YnIvPiBzaW4odGhldGEvPHdici8+MikKK2FfPHdici8+eSA9IHkgLzx3YnIvPiBzaW4odGhldGEvPHdici8+MikKK2FfPHdici8+eiA9IHogLzx3YnIvPiBzaW4odGhldGEvPHdici8+MikKKzwvY29kZT48L3ByZT4KKzxwPlRvIGNyZWF0ZSBhIDN4MyByb3RhdGlvbiBtYXRyaXggdGhhdCBhcHBsaWVzIHRoZSByb3RhdGlvbgorZGVmaW5lZCBieSB0aGlzIHF1YXRlcm5pb24sPHdici8+IHRoZSBmb2xsb3dpbmcgbWF0cml4IGNhbiBiZQordXNlZDo8L3A+Cis8cHJlPjxjb2RlPlIgPSBbIDEgLSAyeV4yIC0gMnpeMiw8d2JyLz4gICAgICAgMnh5IC0gMnp3LDx3YnIvPiAgICAgICAyeHogKyAyeXcsPHdici8+CisgICAgICAgICAgIDJ4eSArIDJ6dyw8d2JyLz4gMSAtIDJ4XjIgLSAyel4yLDx3YnIvPiAgICAgICAyeXogLSAyeHcsPHdici8+CisgICAgICAgICAgIDJ4eiAtIDJ5dyw8d2JyLz4gICAgICAgMnl6ICsgMnh3LDx3YnIvPiAxIC0gMnheMiAtIDJ5XjIgXQorPC9jb2RlPjwvcHJlPgorPHA+VGhpcyBtYXRyaXggY2FuIHRoZW4gYmUgdXNlZCB0byBhcHBseSB0aGUgcm90YXRpb24gdG8gYQorIGNvbHVtbiB2ZWN0b3IgcG9pbnQgd2l0aDwvcD4KKzxwPjxjb2RlPnAnID0gUnA8L2NvZGU+PC9wPgorPHA+d2hlcmUgPGNvZGU+cDwvY29kZT4gaXMgaW4gdGhlIGRldmljZSBzZW5zb3IgY29vcmRpbmF0ZSBzeXN0ZW0sPHdici8+IGFuZAorIDxjb2RlPnAnPC9jb2RlPiBpcyBpbiB0aGUgY2FtZXJhLW9yaWVudGVkIGNvb3JkaW5hdGUgc3lzdGVtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmxlbnMucG9zZVRyYW5zbGF0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+VHJhbnNsYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlBvc2l0aW9uIG9mIHRoZSBjYW1lcmEgb3B0aWNhbCBjZW50ZXIuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE1ldGVycworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHBvc2l0aW9uIG9mIHRoZSBjYW1lcmEgZGV2aWNlJ3MgbGVucyBvcHRpY2FsIGNlbnRlciw8d2JyLz4KK2FzIGEgdGhyZWUtZGltZW5zaW9uYWwgdmVjdG9yIDxjb2RlPih4LDx3YnIvPnksPHdici8+eik8L2NvZGU+LDx3YnIvPiByZWxhdGl2ZSB0byB0aGUKK29wdGljYWwgY2VudGVyIG9mIHRoZSBsYXJnZXN0IGNhbWVyYSBkZXZpY2UgZmFjaW5nIGluIHRoZQorc2FtZSBkaXJlY3Rpb24gYXMgdGhpcyBjYW1lcmEsPHdici8+IGluIHRoZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9TZW5zb3JFdmVudC5odG1sIj5BbmRyb2lkIHNlbnNvciBjb29yZGluYXRlCitheGVzPC9hPi48d2JyLz4gTm90ZSB0aGF0IG9ubHkgdGhlIGF4aXMgZGVmaW5pdGlvbnMgYXJlIHNoYXJlZCB3aXRoCit0aGUgc2Vuc29yIGNvb3JkaW5hdGUgc3lzdGVtLDx3YnIvPiBidXQgbm90IHRoZSBvcmlnaW4uPHdici8+PC9wPgorPHA+SWYgdGhpcyBkZXZpY2UgaXMgdGhlIGxhcmdlc3Qgb3Igb25seSBjYW1lcmEgZGV2aWNlIHdpdGggYQorZ2l2ZW4gZmFjaW5nLDx3YnIvPiB0aGVuIHRoaXMgcG9zaXRpb24gd2lsbCBiZSA8Y29kZT4oMCw8d2JyLz4gMCw8d2JyLz4gMCk8L2NvZGU+OyBhCitjYW1lcmEgZGV2aWNlIHdpdGggYSBsZW5zIG9wdGljYWwgY2VudGVyIGxvY2F0ZWQgMyBjbSBmcm9tCit0aGUgbWFpbiBzZW5zb3IgYWxvbmcgdGhlICtYIGF4aXMgKHRvIHRoZSByaWdodCBmcm9tIHRoZQordXNlcidzIHBlcnNwZWN0aXZlKSB3aWxsIHJlcG9ydCA8Y29kZT4oMC48d2JyLz4wMyw8d2JyLz4gMCw8d2JyLz4gMCk8L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPlRvIHRyYW5zZm9ybSBhIHBpeGVsIGNvb3JkaW5hdGVzIGJldHdlZW4gdHdvIGNhbWVyYXMKK2ZhY2luZyB0aGUgc2FtZSBkaXJlY3Rpb24sPHdici8+IGZpcnN0IHRoZSBzb3VyY2UgY2FtZXJhCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cmFkaWFsPHdici8+RGlzdG9ydGlvbjwvYT4gbXVzdCBiZSBjb3JyZWN0ZWQgZm9yLjx3YnIvPiAgVGhlbgordGhlIHNvdXJjZSBjYW1lcmEgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbjwvYT4gbmVlZHMKK3RvIGJlIGFwcGxpZWQsPHdici8+IGZvbGxvd2VkIGJ5IHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlUm90YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+Um90YXRpb248L2E+CitvZiB0aGUgc291cmNlIGNhbWVyYSw8d2JyLz4gdGhlIHRyYW5zbGF0aW9uIG9mIHRoZSBzb3VyY2UgY2FtZXJhCityZWxhdGl2ZSB0byB0aGUgZGVzdGluYXRpb24gY2FtZXJhLDx3YnIvPiB0aGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnBvc2U8d2JyLz5Sb3RhdGlvbjwvYT4gb2YgdGhlIGRlc3RpbmF0aW9uIGNhbWVyYSw8d2JyLz4gYW5kCitmaW5hbGx5IHRoZSBpbnZlcnNlIG9mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmludHJpbnNpY0NhbGlicmF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW50cmluc2ljPHdici8+Q2FsaWJyYXRpb248L2E+CitvZiB0aGUgZGVzdGluYXRpb24gY2FtZXJhLjx3YnIvPiBUaGlzIG9idGFpbnMgYQorcmFkaWFsLWRpc3RvcnRpb24tZnJlZSBjb29yZGluYXRlIGluIHRoZSBkZXN0aW5hdGlvbgorY2FtZXJhIHBpeGVsIGNvb3JkaW5hdGVzLjx3YnIvPjwvcD4KKzxwPlRvIGNvbXBhcmUgdGhpcyBhZ2FpbnN0IGEgcmVhbCBpbWFnZSBmcm9tIHRoZSBkZXN0aW5hdGlvbgorY2FtZXJhLDx3YnIvPiB0aGUgZGVzdGluYXRpb24gY2FtZXJhIGltYWdlIHRoZW4gbmVlZHMgdG8gYmUKK2NvcnJlY3RlZCBmb3IgcmFkaWFsIGRpc3RvcnRpb24gYmVmb3JlIGNvbXBhcmlzb24gb3IKK3NhbXBsaW5nLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmludHJpbnNpYzx3YnIvPkNhbGlicmF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA1CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgcGFyYW1ldGVycyBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlJ3MgaW50cmluc2ljCitjYWxpYnJhdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICBQaXhlbHMgaW4gdGhlCisgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnByZTx3YnIvPkNvcnJlY3Rpb248d2JyLz5BY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIGNvb3JkaW5hdGUgc3lzdGVtLjx3YnIvPgorICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGZpdmUgY2FsaWJyYXRpb24gcGFyYW1ldGVycyB0aGF0IGRlc2NyaWJlIHRoZQordHJhbnNmb3JtIGZyb20gY2FtZXJhLWNlbnRyaWMgM0QgY29vcmRpbmF0ZXMgdG8gc2Vuc29yCitwaXhlbCBjb29yZGluYXRlczo8L3A+Cis8cHJlPjxjb2RlPltmXzx3YnIvPngsPHdici8+IGZfPHdici8+eSw8d2JyLz4gY188d2JyLz54LDx3YnIvPiBjXzx3YnIvPnksPHdici8+IHNdCis8L2NvZGU+PC9wcmU+Cis8cD5XaGVyZSA8Y29kZT5mXzx3YnIvPng8L2NvZGU+IGFuZCA8Y29kZT5mXzx3YnIvPnk8L2NvZGU+IGFyZSB0aGUgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwKK2ZvY2FsIGxlbmd0aHMsPHdici8+IDxjb2RlPltjXzx3YnIvPngsPHdici8+IGNfPHdici8+eV08L2NvZGU+IGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgb3B0aWNhbAorYXhpcyw8d2JyLz4gYW5kIDxjb2RlPnM8L2NvZGU+IGlzIGEgc2tldyBwYXJhbWV0ZXIgZm9yIHRoZSBzZW5zb3IgcGxhbmUgbm90CitiZWluZyBhbGlnbmVkIHdpdGggdGhlIGxlbnMgcGxhbmUuPHdici8+PC9wPgorPHA+VGhlc2UgYXJlIHR5cGljYWxseSB1c2VkIHdpdGhpbiBhIHRyYW5zZm9ybWF0aW9uIG1hdHJpeCBLOjwvcD4KKzxwcmU+PGNvZGU+SyA9IFsgZl88d2JyLz54LDx3YnIvPiAgIHMsPHdici8+IGNfPHdici8+eCw8d2JyLz4KKyAgICAgICAwLDx3YnIvPiBmXzx3YnIvPnksPHdici8+IGNfPHdici8+eSw8d2JyLz4KKyAgICAgICAwICAgIDAsPHdici8+ICAgMSBdCis8L2NvZGU+PC9wcmU+Cis8cD53aGljaCBjYW4gdGhlbiBiZSBjb21iaW5lZCB3aXRoIHRoZSBjYW1lcmEgcG9zZSByb3RhdGlvbgorPGNvZGU+UjwvY29kZT4gYW5kIHRyYW5zbGF0aW9uIDxjb2RlPnQ8L2NvZGU+ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlUm90YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+Um90YXRpb248L2E+IGFuZAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVRyYW5zbGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlRyYW5zbGF0aW9uPC9hPiw8d2JyLz4gcmVzcGVjdGl2ZSkgdG8gY2FsY3VsYXRlIHRoZQorY29tcGxldGUgdHJhbnNmb3JtIGZyb20gd29ybGQgY29vcmRpbmF0ZXMgdG8gcGl4ZWwKK2Nvb3JkaW5hdGVzOjwvcD4KKzxwcmU+PGNvZGU+UCA9IFsgSyAwICAgKiBbIFIgdAorICAgICAwIDEgXSAgICAgMCAxIF0KKzwvY29kZT48L3ByZT4KKzxwPmFuZCB3aXRoIDxjb2RlPnBfPHdici8+dzwvY29kZT4gYmVpbmcgYSBwb2ludCBpbiB0aGUgd29ybGQgY29vcmRpbmF0ZSBzeXN0ZW0KK2FuZCA8Y29kZT5wXzx3YnIvPnM8L2NvZGU+IGJlaW5nIGEgcG9pbnQgaW4gdGhlIGNhbWVyYSBhY3RpdmUgcGl4ZWwgYXJyYXkKK2Nvb3JkaW5hdGUgc3lzdGVtLDx3YnIvPiBhbmQgd2l0aCB0aGUgbWFwcGluZyBpbmNsdWRpbmcgdGhlCitob21vZ2VuZW91cyBkaXZpc2lvbiBieSB6OjwvcD4KKzxwcmU+PGNvZGU+IHBfPHdici8+aCA9ICh4Xzx3YnIvPmgsPHdici8+IHlfPHdici8+aCw8d2JyLz4gel88d2JyLz5oKSA9IFAgcF88d2JyLz53CitwXzx3YnIvPnMgPSBwXzx3YnIvPmggLzx3YnIvPiB6Xzx3YnIvPmgKKzwvY29kZT48L3ByZT4KKzxwPnNvIDxjb2RlPlt4Xzx3YnIvPnMsPHdici8+IHlfPHdici8+c108L2NvZGU+IGlzIHRoZSBwaXhlbCBjb29yZGluYXRlcyBvZiB0aGUgd29ybGQKK3BvaW50LDx3YnIvPiA8Y29kZT56Xzx3YnIvPnMgPSAxPC9jb2RlPiw8d2JyLz4gYW5kIDxjb2RlPndfPHdici8+czwvY29kZT4gaXMgYSBtZWFzdXJlbWVudCBvZiBkaXNwYXJpdHkKKyhkZXB0aCkgaW4gcGl4ZWwgY29vcmRpbmF0ZXMuPHdici8+PC9wPgorPHA+Tm90ZSB0aGF0IHRoZSBjb29yZGluYXRlIHN5c3RlbSBmb3IgdGhpcyB0cmFuc2Zvcm0gaXMgdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiBzeXN0ZW0sPHdici8+Cit3aGVyZSA8Y29kZT4oMCw8d2JyLz4wKTwvY29kZT4gaXMgdGhlIHRvcC1sZWZ0IG9mIHRoZQorcHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSByZWN0YW5nbGUuPHdici8+IE9uY2UgdGhlIHBvc2UgYW5kCitpbnRyaW5zaWMgY2FsaWJyYXRpb24gdHJhbnNmb3JtcyBoYXZlIGJlZW4gYXBwbGllZCB0byBhCit3b3JsZCBwb2ludCw8d2JyLz4gdGhlbiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucmFkaWFsRGlzdG9ydGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnJhZGlhbDx3YnIvPkRpc3RvcnRpb248L2E+Cit0cmFuc2Zvcm0gbmVlZHMgdG8gYmUgYXBwbGllZCw8d2JyLz4gYW5kIHRoZSByZXN1bHQgYWRqdXN0ZWQgdG8KK2JlIGluIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gY29vcmRpbmF0ZQorc3lzdGVtICh3aGVyZSA8Y29kZT4oMCw8d2JyLz4gMCk8L2NvZGU+IGlzIHRoZSB0b3AtbGVmdCBvZiB0aGUKK2FjdGl2ZUFycmF5U2l6ZSByZWN0YW5nbGUpLDx3YnIvPiB0byBkZXRlcm1pbmUgdGhlIGZpbmFsIHBpeGVsCitjb29yZGluYXRlIG9mIHRoZSB3b3JsZCBwb2ludCBmb3IgcHJvY2Vzc2VkIChub24tUkFXKQorb3V0cHV0IGJ1ZmZlcnMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA2CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgY29ycmVjdGlvbiBjb2VmZmljaWVudHMgdG8gY29ycmVjdCBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlJ3MKK3JhZGlhbCBhbmQgdGFuZ2VudGlhbCBsZW5zIGRpc3RvcnRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgVW5pdGxlc3MgY29lZmZpY2llbnRzLjx3YnIvPgorICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm91ciByYWRpYWwgZGlzdG9ydGlvbiBjb2VmZmljaWVudHMgPGNvZGU+W2thcHBhXzx3YnIvPjAsPHdici8+IGthcHBhXzx3YnIvPjEsPHdici8+IGthcHBhXzx3YnIvPjIsPHdici8+CitrYXBwYV88d2JyLz4zXTwvY29kZT4gYW5kIHR3byB0YW5nZW50aWFsIGRpc3RvcnRpb24gY29lZmZpY2llbnRzCis8Y29kZT5ba2FwcGFfPHdici8+NCw8d2JyLz4ga2FwcGFfPHdici8+NV08L2NvZGU+IHRoYXQgY2FuIGJlIHVzZWQgdG8gY29ycmVjdCB0aGUKK2xlbnMncyBnZW9tZXRyaWMgZGlzdG9ydGlvbiB3aXRoIHRoZSBtYXBwaW5nIGVxdWF0aW9uczo8L3A+Cis8cHJlPjxjb2RlPiB4Xzx3YnIvPmMgPSB4Xzx3YnIvPmkgKiAoIGthcHBhXzx3YnIvPjAgKyBrYXBwYV88d2JyLz4xICogcl4yICsga2FwcGFfPHdici8+MiAqIHJeNCArIGthcHBhXzx3YnIvPjMgKiByXjYgKSArCisgICAgICAga2FwcGFfPHdici8+NCAqICgyICogeF88d2JyLz5pICogeV88d2JyLz5pKSArIGthcHBhXzx3YnIvPjUgKiAoIHJeMiArIDIgKiB4Xzx3YnIvPmleMiApCisgeV88d2JyLz5jID0geV88d2JyLz5pICogKCBrYXBwYV88d2JyLz4wICsga2FwcGFfPHdici8+MSAqIHJeMiArIGthcHBhXzx3YnIvPjIgKiByXjQgKyBrYXBwYV88d2JyLz4zICogcl42ICkgKworICAgICAgIGthcHBhXzx3YnIvPjUgKiAoMiAqIHhfPHdici8+aSAqIHlfPHdici8+aSkgKyBrYXBwYV88d2JyLz40ICogKCByXjIgKyAyICogeV88d2JyLz5pXjIgKQorPC9jb2RlPjwvcHJlPgorPHA+SGVyZSw8d2JyLz4gPGNvZGU+W3hfPHdici8+Yyw8d2JyLz4geV88d2JyLz5jXTwvY29kZT4gYXJlIHRoZSBjb29yZGluYXRlcyB0byBzYW1wbGUgaW4gdGhlCitpbnB1dCBpbWFnZSB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIHBpeGVsIHZhbHVlcyBpbiB0aGUKK2NvcnJlY3RlZCBpbWFnZSBhdCB0aGUgY29vcmRpbmF0ZSA8Y29kZT5beF88d2JyLz5pLDx3YnIvPiB5Xzx3YnIvPmldPC9jb2RlPjo8L3A+Cis8cHJlPjxjb2RlPiBjb3JyZWN0ZWRJbWFnZSh4Xzx3YnIvPmksPHdici8+IHlfPHdici8+aSkgPSBzYW1wbGVfPHdici8+YXQoeF88d2JyLz5jLDx3YnIvPiB5Xzx3YnIvPmMsPHdici8+IGlucHV0SW1hZ2UpCis8L2NvZGU+PC9wcmU+Cis8cD5UaGUgcGl4ZWwgY29vcmRpbmF0ZXMgYXJlIGRlZmluZWQgaW4gYSBub3JtYWxpemVkCitjb29yZGluYXRlIHN5c3RlbSByZWxhdGVkIHRvIHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbjwvYT4gY2FsaWJyYXRpb24gZmllbGRzLjx3YnIvPgorQm90aCA8Y29kZT5beF88d2JyLz5pLDx3YnIvPiB5Xzx3YnIvPmldPC9jb2RlPiBhbmQgPGNvZGU+W3hfPHdici8+Yyw8d2JyLz4geV88d2JyLz5jXTwvY29kZT4gaGF2ZSA8Y29kZT4oMCw8d2JyLz4wKTwvY29kZT4gYXQgdGhlCitsZW5zIG9wdGljYWwgY2VudGVyIDxjb2RlPltjXzx3YnIvPngsPHdici8+IGNfPHdici8+eV08L2NvZGU+Ljx3YnIvPiBUaGUgbWF4aW11bSBtYWduaXR1ZGVzCitvZiBib3RoIHggYW5kIHkgY29vcmRpbmF0ZXMgYXJlIG5vcm1hbGl6ZWQgdG8gYmUgMSBhdCB0aGUKK2VkZ2UgZnVydGhlciBmcm9tIHRoZSBvcHRpY2FsIGNlbnRlciw8d2JyLz4gc28gdGhlIHJhbmdlCitmb3IgYm90aCBkaW1lbnNpb25zIGlzIDxjb2RlPi0xICZsdDs9IHggJmx0Oz0gMTwvY29kZT4uPHdici8+PC9wPgorPHA+RmluYWxseSw8d2JyLz4gPGNvZGU+cjwvY29kZT4gcmVwcmVzZW50cyB0aGUgcmFkaWFsIGRpc3RhbmNlIGZyb20gdGhlCitvcHRpY2FsIGNlbnRlciw8d2JyLz4gPGNvZGU+cl4yID0geF88d2JyLz5pXjIgKyB5Xzx3YnIvPmleMjwvY29kZT4sPHdici8+IGFuZCBpdHMgbWFnbml0dWRlCitpcyB0aGVyZWZvcmUgbm8gbGFyZ2VyIHRoYW4gPGNvZGU+fDx3YnIvPnJ8PHdici8+ICZsdDs9IHNxcnQoMik8L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPlRoZSBkaXN0b3J0aW9uIG1vZGVsIHVzZWQgaXMgdGhlIEJyb3duLUNvbnJhZHkgbW9kZWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9ub2lzZVJlZHVjdGlvbiIgY2xhc3M9InNlY3Rpb24iPm5vaXNlUmVkdWN0aW9uPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBub2lzZSByZWR1Y3Rpb24gaXMgYXBwbGllZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ob2lzZSByZWR1Y3Rpb24gaXMgYXBwbGllZCB3aXRob3V0IHJlZHVjaW5nIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gc2Vuc29yCitvdXRwdXQuPHdici8+IEl0IG1heSBiZSB0aGUgc2FtZSBhcyBPRkYgaWYgbm9pc2UgcmVkdWN0aW9uIHdpbGwgcmVkdWNlIGZyYW1lIHJhdGUKK3JlbGF0aXZlIHRvIHNlbnNvci48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkhpZ2gtcXVhbGl0eSBub2lzZSByZWR1Y3Rpb24gaXMgYXBwbGllZCw8d2JyLz4gYXQgdGhlIGNvc3Qgb2YgcG9zc2libHkgcmVkdWNlZCBmcmFtZQorcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk1JTklNQUw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk1JTklNQUwgbm9pc2UgcmVkdWN0aW9uIGlzIGFwcGxpZWQgd2l0aG91dCByZWR1Y2luZyBmcmFtZSByYXRlIHJlbGF0aXZlIHRvCitzZW5zb3Igb3V0cHV0Ljx3YnIvPiA8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5aRVJPX1NIVVRURVJfTEFHPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ob2lzZSByZWR1Y3Rpb24gaXMgYXBwbGllZCBhdCBkaWZmZXJlbnQgbGV2ZWxzIGZvciBkaWZmZXJlbnQgb3V0cHV0IHN0cmVhbXMsPHdici8+CitiYXNlZCBvbiByZXNvbHV0aW9uLjx3YnIvPiBTdHJlYW1zIGF0IG1heGltdW0gcmVjb3JkaW5nIHJlc29sdXRpb24gKHNlZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNhcHR1cmVTZXNzaW9uIj5DYW1lcmFEZXZpY2UjY3JlYXRlQ2FwdHVyZVNlc3Npb248L2E+KSBvciBiZWxvdyBoYXZlIG5vaXNlCityZWR1Y3Rpb24gYXBwbGllZCw8d2JyLz4gd2hpbGUgaGlnaGVyLXJlc29sdXRpb24gc3RyZWFtcyBoYXZlIE1JTklNQUwgKGlmIHN1cHBvcnRlZCkgb3Igbm8KK25vaXNlIHJlZHVjdGlvbiBhcHBsaWVkIChpZiBNSU5JTUFMIGlzIG5vdCBzdXBwb3J0ZWQuPHdici8+KSBUaGUgZGVncmVlIG9mIG5vaXNlIHJlZHVjdGlvbgorZm9yIGxvdy1yZXNvbHV0aW9uIHN0cmVhbXMgaXMgdHVuZWQgc28gdGhhdCBmcmFtZSByYXRlIGlzIG5vdCBpbXBhY3RlZCw8d2JyLz4gYW5kIHRoZSBxdWFsaXR5CitpcyBlcXVhbCB0byBvciBiZXR0ZXIgdGhhbiBGQVNUIChzaW5jZSBpdCBpcyBvbmx5IGFwcGxpZWQgdG8gbG93ZXItcmVzb2x1dGlvbiBvdXRwdXRzLDx3YnIvPgorcXVhbGl0eSBtYXkgaW1wcm92ZSBmcm9tIEZBU1QpLjx3YnIvPjwvcD4KKzxwPlRoaXMgbW9kZSBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5IGFwcGxpY2F0aW9ucyBvcGVyYXRpbmcgaW4gYSB6ZXJvLXNodXR0ZXItbGFnIG1vZGUKK3dpdGggWVVWIG9yIFBSSVZBVEUgcmVwcm9jZXNzaW5nLDx3YnIvPiB3aGVyZSB0aGUgYXBwbGljYXRpb24gY29udGludW91c2x5IGNhcHR1cmVzCitoaWdoLXJlc29sdXRpb24gaW50ZXJtZWRpYXRlIGJ1ZmZlcnMgaW50byBhIGNpcmN1bGFyIGJ1ZmZlciw8d2JyLz4gZnJvbSB3aGljaCBhIGZpbmFsIGltYWdlIGlzCitwcm9kdWNlZCB2aWEgcmVwcm9jZXNzaW5nIHdoZW4gYSB1c2VyIHRha2VzIGEgcGljdHVyZS48d2JyLz4gIEZvciBzdWNoIGEgdXNlIGNhc2UsPHdici8+IHRoZQoraGlnaC1yZXNvbHV0aW9uIGJ1ZmZlcnMgbXVzdCBub3QgaGF2ZSBub2lzZSByZWR1Y3Rpb24gYXBwbGllZCB0byBtYXhpbWl6ZSBlZmZpY2llbmN5IG9mCitwcmV2aWV3IGFuZCB0byBhdm9pZCBvdmVyLWFwcGx5aW5nIG5vaXNlIGZpbHRlcmluZyB3aGVuIHJlcHJvY2Vzc2luZyw8d2JyLz4gd2hpbGUKK2xvdy1yZXNvbHV0aW9uIGJ1ZmZlcnMgKHVzZWQgZm9yIHJlY29yZGluZyBvciBwcmV2aWV3LDx3YnIvPiBnZW5lcmFsbHkpIG5lZWQgbm9pc2UgcmVkdWN0aW9uCithcHBsaWVkIGZvciByZWFzb25hYmxlIHByZXZpZXcgcXVhbGl0eS48d2JyLz48L3A+Cis8cD5UaGlzIG1vZGUgaXMgZ3VhcmFudGVlZCB0byBiZSBzdXBwb3J0ZWQgYnkgZGV2aWNlcyB0aGF0IHN1cHBvcnQgZWl0aGVyIHRoZQorWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyBvciBQUklWQVRFXzx3YnIvPlJFUFJPQ0VTU0lORyBjYXBhYmlsaXRpZXMKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGxpc3RzIGVpdGhlciBvZiB0aG9zZSBjYXBhYmlsaXRpZXMpIGFuZCBpdCB3aWxsCitiZSB0aGUgZGVmYXVsdCBtb2RlIGZvciBDQU1FUkEzXzx3YnIvPlRFTVBMQVRFXzx3YnIvPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgdGVtcGxhdGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TW9kZSBvZiBvcGVyYXRpb24gZm9yIHRoZSBub2lzZSByZWR1Y3Rpb24gYWxnb3JpdGhtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5hdmFpbGFibGVOb2lzZVJlZHVjdGlvbk1vZGVzIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk5vaXNlPHdici8+UmVkdWN0aW9uPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkVQUk9DIj5SRVBST0M8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgbm9pc2UgcmVkdWN0aW9uIGFsZ29yaXRobSBhdHRlbXB0cyB0byBpbXByb3ZlIGltYWdlIHF1YWxpdHkgYnkgcmVtb3ZpbmcKK2V4Y2Vzc2l2ZSBub2lzZSBhZGRlZCBieSB0aGUgY2FwdHVyZSBwcm9jZXNzLDx3YnIvPiBlc3BlY2lhbGx5IGluIGRhcmsgY29uZGl0aW9ucy48d2JyLz48L3A+Cis8cD5PRkYgbWVhbnMgbm8gbm9pc2UgcmVkdWN0aW9uIHdpbGwgYmUgYXBwbGllZCBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gZm9yIGJvdGggcmF3IGFuZAorWVVWIGRvbWFpbi48d2JyLz48L3A+Cis8cD5NSU5JTUFMIG1lYW5zIHRoYXQgb25seSBzZW5zb3IgcmF3IGRvbWFpbiBiYXNpYyBub2lzZSByZWR1Y3Rpb24gaXMgZW5hYmxlZCAsPHdici8+dG8gcmVtb3ZlCitkZW1vc2FpY2luZyBvciBvdGhlciBwcm9jZXNzaW5nIGFydGlmYWN0cy48d2JyLz4gRm9yIFlVVl88d2JyLz5SRVBST0NFU1NJTkcsPHdici8+IE1JTklNQUwgaXMgc2FtZSBhcyBPRkYuPHdici8+CitUaGlzIG1vZGUgaXMgb3B0aW9uYWwsPHdici8+IG1heSBub3QgYmUgc3VwcG9ydCBieSBhbGwgZGV2aWNlcy48d2JyLz4gVGhlIGFwcGxpY2F0aW9uIHNob3VsZCBjaGVjaworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+YXZhaWxhYmxlPHdici8+Tm9pc2U8d2JyLz5SZWR1Y3Rpb248d2JyLz5Nb2RlczwvYT4gYmVmb3JlIHVzaW5nIGl0Ljx3YnIvPjwvcD4KKzxwPkZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIGJvdGggbWVhbiBjYW1lcmEgZGV2aWNlIGRldGVybWluZWQgbm9pc2UgZmlsdGVyaW5nCit3aWxsIGJlIGFwcGxpZWQuPHdici8+IEhJR0hfPHdici8+UVVBTElUWSBtb2RlIGluZGljYXRlcyB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlCit3aWxsIHVzZSB0aGUgaGlnaGVzdC1xdWFsaXR5IG5vaXNlIGZpbHRlcmluZyBhbGdvcml0aG1zLDx3YnIvPgorZXZlbiBpZiBpdCBzbG93cyBkb3duIGNhcHR1cmUgcmF0ZS48d2JyLz4gRkFTVCBtZWFucyB0aGUgY2FtZXJhIGRldmljZSB3aWxsIG5vdAorc2xvdyBkb3duIGNhcHR1cmUgcmF0ZSB3aGVuIGFwcGx5aW5nIG5vaXNlIGZpbHRlcmluZy48d2JyLz4gRkFTVCBtYXkgYmUgdGhlIHNhbWUgYXMgTUlOSU1BTCBpZgorTUlOSU1BTCBpcyBsaXN0ZWQsPHdici8+IG9yIHRoZSBzYW1lIGFzIE9GRiBpZiBhbnkgbm9pc2UgZmlsdGVyaW5nIHdpbGwgc2xvdyBkb3duIGNhcHR1cmUgcmF0ZS48d2JyLz4KK0V2ZXJ5IG91dHB1dCBzdHJlYW0gd2lsbCBoYXZlIGEgc2ltaWxhciBhbW91bnQgb2YgZW5oYW5jZW1lbnQgYXBwbGllZC48d2JyLz48L3A+Cis8cD5aRVJPXzx3YnIvPlNIVVRURVJfPHdici8+TEFHIGlzIG1lYW50IHRvIGJlIHVzZWQgYnkgYXBwbGljYXRpb25zIHRoYXQgbWFpbnRhaW4gYSBjb250aW51b3VzIGNpcmN1bGFyCitidWZmZXIgb2YgaGlnaC1yZXNvbHV0aW9uIGltYWdlcyBkdXJpbmcgcHJldmlldyBhbmQgcmVwcm9jZXNzIGltYWdlKHMpIGZyb20gdGhhdCBidWZmZXIKK2ludG8gYSBmaW5hbCBjYXB0dXJlIHdoZW4gdHJpZ2dlcmVkIGJ5IHRoZSB1c2VyLjx3YnIvPiBJbiB0aGlzIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIGFwcGxpZXMKK25vaXNlIHJlZHVjdGlvbiB0byBsb3ctcmVzb2x1dGlvbiBzdHJlYW1zIChiZWxvdyBtYXhpbXVtIHJlY29yZGluZyByZXNvbHV0aW9uKSB0byBtYXhpbWl6ZQorcHJldmlldyBxdWFsaXR5LDx3YnIvPiBidXQgZG9lcyBub3QgYXBwbHkgbm9pc2UgcmVkdWN0aW9uIHRvIGhpZ2gtcmVzb2x1dGlvbiBzdHJlYW1zLDx3YnIvPiBzaW5jZQordGhvc2Ugd2lsbCBiZSByZXByb2Nlc3NlZCBsYXRlciBpZiBuZWNlc3NhcnkuPHdici8+PC9wPgorPHA+Rm9yIFlVVl88d2JyLz5SRVBST0NFU1NJTkcsPHdici8+IHRoZXNlIEZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIG1vZGVzIGJvdGggbWVhbiB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlCit3aWxsIGFwcGx5IEZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIFlVViBkb21haW4gbm9pc2UgcmVkdWN0aW9uLDx3YnIvPiByZXNwZWN0aXZlbHkuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlCittYXkgYWRqdXN0IHRoZSBub2lzZSByZWR1Y3Rpb24gcGFyYW1ldGVycyBmb3IgYmVzdCBpbWFnZSBxdWFsaXR5IGJhc2VkIG9uIHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj5hbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcjwvYT4gaWYgaXQgaXMgc2V0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIFlVVl88d2JyLz5SRVBST0NFU1NJTkcgVGhlIEhBTCBjYW4gdXNlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+YW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+ZWZmZWN0aXZlPHdici8+RXhwb3N1cmU8d2JyLz5GYWN0b3I8L2E+IHRvCithZGp1c3QgdGhlIGludGVybmFsIG5vaXNlIHJlZHVjdGlvbiBwYXJhbWV0ZXJzIGFwcHJvcHJpYXRlbHkgdG8gZ2V0IHRoZSBiZXN0IHF1YWxpdHkKK2ltYWdlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLnN0cmVuZ3RoIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+c3RyZW5ndGgKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29udHJvbCB0aGUgYW1vdW50IG9mIG5vaXNlIHJlZHVjdGlvbgorYXBwbGllZCB0byB0aGUgaW1hZ2VzPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIDEtMTA7IDEwIGlzIG1heCBub2lzZSByZWR1Y3Rpb24KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4xIC0gMTA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk5vaXNlPHdici8+UmVkdWN0aW9uPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bGlzdCBvZiBlbnVtczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2Ygbm9pc2UgcmVkdWN0aW9uIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPm1vZGU8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZAorYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5tb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RnVsbC1jYXBhYmlsaXR5IGNhbWVyYSBkZXZpY2VzIHdpbGwgYWx3YXlzIHN1cHBvcnQgT0ZGIGFuZCBGQVNULjx3YnIvPjwvcD4KKzxwPkNhbWVyYSBkZXZpY2VzIHRoYXQgc3VwcG9ydCBZVVZfPHdici8+UkVQUk9DRVNTSU5HIG9yIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIHdpbGwgc3VwcG9ydAorWkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRy48d2JyLz48L3A+Cis8cD5MZWdhY3ktY2FwYWJpbGl0eSBjYW1lcmEgZGV2aWNlcyB3aWxsIG9ubHkgc3VwcG9ydCBGQVNUIG1vZGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5IQUwgbXVzdCBzdXBwb3J0IGJvdGggRkFTVCBhbmQgSElHSF88d2JyLz5RVUFMSVRZIGlmIG5vaXNlIHJlZHVjdGlvbiBjb250cm9sIGlzIGF2YWlsYWJsZQorb24gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGJ1dCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgdGhlIHNhbWUgZm9yIGJvdGggbW9kZXMuPHdici8+CitUaGF0IGlzLDx3YnIvPiBpZiB0aGUgaGlnaGVzdCBxdWFsaXR5IGltcGxlbWVudGF0aW9uIG9uIHRoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHNsb3cgZG93bgorY2FwdHVyZSByYXRlLDx3YnIvPiB0aGVuIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIG5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkIHdpdGhvdXQgcmVkdWNpbmcgZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IKK291dHB1dC48d2JyLz4gSXQgbWF5IGJlIHRoZSBzYW1lIGFzIE9GRiBpZiBub2lzZSByZWR1Y3Rpb24gd2lsbCByZWR1Y2UgZnJhbWUgcmF0ZQorcmVsYXRpdmUgdG8gc2Vuc29yLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SGlnaC1xdWFsaXR5IG5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkLDx3YnIvPiBhdCB0aGUgY29zdCBvZiBwb3NzaWJseSByZWR1Y2VkIGZyYW1lCityYXRlIHJlbGF0aXZlIHRvIHNlbnNvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TUlOSU1BTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+TUlOSU1BTCBub2lzZSByZWR1Y3Rpb24gaXMgYXBwbGllZCB3aXRob3V0IHJlZHVjaW5nIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8KK3NlbnNvciBvdXRwdXQuPHdici8+IDwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlpFUk9fU0hVVFRFUl9MQUc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkIGF0IGRpZmZlcmVudCBsZXZlbHMgZm9yIGRpZmZlcmVudCBvdXRwdXQgc3RyZWFtcyw8d2JyLz4KK2Jhc2VkIG9uIHJlc29sdXRpb24uPHdici8+IFN0cmVhbXMgYXQgbWF4aW11bSByZWNvcmRpbmcgcmVzb2x1dGlvbiAoc2VlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ2FwdHVyZVNlc3Npb24iPkNhbWVyYURldmljZSNjcmVhdGVDYXB0dXJlU2Vzc2lvbjwvYT4pIG9yIGJlbG93IGhhdmUgbm9pc2UKK3JlZHVjdGlvbiBhcHBsaWVkLDx3YnIvPiB3aGlsZSBoaWdoZXItcmVzb2x1dGlvbiBzdHJlYW1zIGhhdmUgTUlOSU1BTCAoaWYgc3VwcG9ydGVkKSBvciBubworbm9pc2UgcmVkdWN0aW9uIGFwcGxpZWQgKGlmIE1JTklNQUwgaXMgbm90IHN1cHBvcnRlZC48d2JyLz4pIFRoZSBkZWdyZWUgb2Ygbm9pc2UgcmVkdWN0aW9uCitmb3IgbG93LXJlc29sdXRpb24gc3RyZWFtcyBpcyB0dW5lZCBzbyB0aGF0IGZyYW1lIHJhdGUgaXMgbm90IGltcGFjdGVkLDx3YnIvPiBhbmQgdGhlIHF1YWxpdHkKK2lzIGVxdWFsIHRvIG9yIGJldHRlciB0aGFuIEZBU1QgKHNpbmNlIGl0IGlzIG9ubHkgYXBwbGllZCB0byBsb3dlci1yZXNvbHV0aW9uIG91dHB1dHMsPHdici8+CitxdWFsaXR5IG1heSBpbXByb3ZlIGZyb20gRkFTVCkuPHdici8+PC9wPgorPHA+VGhpcyBtb2RlIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgYXBwbGljYXRpb25zIG9wZXJhdGluZyBpbiBhIHplcm8tc2h1dHRlci1sYWcgbW9kZQord2l0aCBZVVYgb3IgUFJJVkFURSByZXByb2Nlc3NpbmcsPHdici8+IHdoZXJlIHRoZSBhcHBsaWNhdGlvbiBjb250aW51b3VzbHkgY2FwdHVyZXMKK2hpZ2gtcmVzb2x1dGlvbiBpbnRlcm1lZGlhdGUgYnVmZmVycyBpbnRvIGEgY2lyY3VsYXIgYnVmZmVyLDx3YnIvPiBmcm9tIHdoaWNoIGEgZmluYWwgaW1hZ2UgaXMKK3Byb2R1Y2VkIHZpYSByZXByb2Nlc3Npbmcgd2hlbiBhIHVzZXIgdGFrZXMgYSBwaWN0dXJlLjx3YnIvPiAgRm9yIHN1Y2ggYSB1c2UgY2FzZSw8d2JyLz4gdGhlCitoaWdoLXJlc29sdXRpb24gYnVmZmVycyBtdXN0IG5vdCBoYXZlIG5vaXNlIHJlZHVjdGlvbiBhcHBsaWVkIHRvIG1heGltaXplIGVmZmljaWVuY3kgb2YKK3ByZXZpZXcgYW5kIHRvIGF2b2lkIG92ZXItYXBwbHlpbmcgbm9pc2UgZmlsdGVyaW5nIHdoZW4gcmVwcm9jZXNzaW5nLDx3YnIvPiB3aGlsZQorbG93LXJlc29sdXRpb24gYnVmZmVycyAodXNlZCBmb3IgcmVjb3JkaW5nIG9yIHByZXZpZXcsPHdici8+IGdlbmVyYWxseSkgbmVlZCBub2lzZSByZWR1Y3Rpb24KK2FwcGxpZWQgZm9yIHJlYXNvbmFibGUgcHJldmlldyBxdWFsaXR5Ljx3YnIvPjwvcD4KKzxwPlRoaXMgbW9kZSBpcyBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZCBieSBkZXZpY2VzIHRoYXQgc3VwcG9ydCBlaXRoZXIgdGhlCitZVVZfPHdici8+UkVQUk9DRVNTSU5HIG9yIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdGllcworKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gbGlzdHMgZWl0aGVyIG9mIHRob3NlIGNhcGFiaWxpdGllcykgYW5kIGl0IHdpbGwKK2JlIHRoZSBkZWZhdWx0IG1vZGUgZm9yIENBTUVSQTNfPHdici8+VEVNUExBVEVfPHdici8+WkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyB0ZW1wbGF0ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Nb2RlIG9mIG9wZXJhdGlvbiBmb3IgdGhlIG5vaXNlIHJlZHVjdGlvbiBhbGdvcml0aG0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+YXZhaWxhYmxlPHdici8+Tm9pc2U8d2JyLz5SZWR1Y3Rpb248d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SRVBST0MiPlJFUFJPQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBub2lzZSByZWR1Y3Rpb24gYWxnb3JpdGhtIGF0dGVtcHRzIHRvIGltcHJvdmUgaW1hZ2UgcXVhbGl0eSBieSByZW1vdmluZworZXhjZXNzaXZlIG5vaXNlIGFkZGVkIGJ5IHRoZSBjYXB0dXJlIHByb2Nlc3MsPHdici8+IGVzcGVjaWFsbHkgaW4gZGFyayBjb25kaXRpb25zLjx3YnIvPjwvcD4KKzxwPk9GRiBtZWFucyBubyBub2lzZSByZWR1Y3Rpb24gd2lsbCBiZSBhcHBsaWVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBmb3IgYm90aCByYXcgYW5kCitZVVYgZG9tYWluLjx3YnIvPjwvcD4KKzxwPk1JTklNQUwgbWVhbnMgdGhhdCBvbmx5IHNlbnNvciByYXcgZG9tYWluIGJhc2ljIG5vaXNlIHJlZHVjdGlvbiBpcyBlbmFibGVkICw8d2JyLz50byByZW1vdmUKK2RlbW9zYWljaW5nIG9yIG90aGVyIHByb2Nlc3NpbmcgYXJ0aWZhY3RzLjx3YnIvPiBGb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyw8d2JyLz4gTUlOSU1BTCBpcyBzYW1lIGFzIE9GRi48d2JyLz4KK1RoaXMgbW9kZSBpcyBvcHRpb25hbCw8d2JyLz4gbWF5IG5vdCBiZSBzdXBwb3J0IGJ5IGFsbCBkZXZpY2VzLjx3YnIvPiBUaGUgYXBwbGljYXRpb24gc2hvdWxkIGNoZWNrCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlcyI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5hdmFpbGFibGU8d2JyLz5Ob2lzZTx3YnIvPlJlZHVjdGlvbjx3YnIvPk1vZGVzPC9hPiBiZWZvcmUgdXNpbmcgaXQuPHdici8+PC9wPgorPHA+RkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgYm90aCBtZWFuIGNhbWVyYSBkZXZpY2UgZGV0ZXJtaW5lZCBub2lzZSBmaWx0ZXJpbmcKK3dpbGwgYmUgYXBwbGllZC48d2JyLz4gSElHSF88d2JyLz5RVUFMSVRZIG1vZGUgaW5kaWNhdGVzIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UKK3dpbGwgdXNlIHRoZSBoaWdoZXN0LXF1YWxpdHkgbm9pc2UgZmlsdGVyaW5nIGFsZ29yaXRobXMsPHdici8+CitldmVuIGlmIGl0IHNsb3dzIGRvd24gY2FwdHVyZSByYXRlLjx3YnIvPiBGQVNUIG1lYW5zIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90CitzbG93IGRvd24gY2FwdHVyZSByYXRlIHdoZW4gYXBwbHlpbmcgbm9pc2UgZmlsdGVyaW5nLjx3YnIvPiBGQVNUIG1heSBiZSB0aGUgc2FtZSBhcyBNSU5JTUFMIGlmCitNSU5JTUFMIGlzIGxpc3RlZCw8d2JyLz4gb3IgdGhlIHNhbWUgYXMgT0ZGIGlmIGFueSBub2lzZSBmaWx0ZXJpbmcgd2lsbCBzbG93IGRvd24gY2FwdHVyZSByYXRlLjx3YnIvPgorRXZlcnkgb3V0cHV0IHN0cmVhbSB3aWxsIGhhdmUgYSBzaW1pbGFyIGFtb3VudCBvZiBlbmhhbmNlbWVudCBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgaXMgbWVhbnQgdG8gYmUgdXNlZCBieSBhcHBsaWNhdGlvbnMgdGhhdCBtYWludGFpbiBhIGNvbnRpbnVvdXMgY2lyY3VsYXIKK2J1ZmZlciBvZiBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGR1cmluZyBwcmV2aWV3IGFuZCByZXByb2Nlc3MgaW1hZ2UocykgZnJvbSB0aGF0IGJ1ZmZlcgoraW50byBhIGZpbmFsIGNhcHR1cmUgd2hlbiB0cmlnZ2VyZWQgYnkgdGhlIHVzZXIuPHdici8+IEluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgYXBwbGllcworbm9pc2UgcmVkdWN0aW9uIHRvIGxvdy1yZXNvbHV0aW9uIHN0cmVhbXMgKGJlbG93IG1heGltdW0gcmVjb3JkaW5nIHJlc29sdXRpb24pIHRvIG1heGltaXplCitwcmV2aWV3IHF1YWxpdHksPHdici8+IGJ1dCBkb2VzIG5vdCBhcHBseSBub2lzZSByZWR1Y3Rpb24gdG8gaGlnaC1yZXNvbHV0aW9uIHN0cmVhbXMsPHdici8+IHNpbmNlCit0aG9zZSB3aWxsIGJlIHJlcHJvY2Vzc2VkIGxhdGVyIGlmIG5lY2Vzc2FyeS48d2JyLz48L3A+Cis8cD5Gb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyw8d2JyLz4gdGhlc2UgRkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgbW9kZXMgYm90aCBtZWFuIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UKK3dpbGwgYXBwbHkgRkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgWVVWIGRvbWFpbiBub2lzZSByZWR1Y3Rpb24sPHdici8+IHJlc3BlY3RpdmVseS48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2UKK21heSBhZGp1c3QgdGhlIG5vaXNlIHJlZHVjdGlvbiBwYXJhbWV0ZXJzIGZvciBiZXN0IGltYWdlIHF1YWxpdHkgYmFzZWQgb24gdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPmFuZHJvaWQuPHdici8+cmVwcm9jZXNzLjx3YnIvPmVmZmVjdGl2ZTx3YnIvPkV4cG9zdXJlPHdici8+RmFjdG9yPC9hPiBpZiBpdCBpcyBzZXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyBUaGUgSEFMIGNhbiB1c2UgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj5hbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcjwvYT4gdG8KK2FkanVzdCB0aGUgaW50ZXJuYWwgbm9pc2UgcmVkdWN0aW9uIHBhcmFtZXRlcnMgYXBwcm9wcmlhdGVseSB0byBnZXQgdGhlIGJlc3QgcXVhbGl0eQoraW1hZ2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX3F1aXJrcyIgY2xhc3M9InNlY3Rpb24iPnF1aXJrczwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucXVpcmtzLm1ldGVyaW5nQ3JvcFJlZ2lvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnF1aXJrcy48d2JyLz5tZXRlcmluZzx3YnIvPkNyb3A8d2JyLz5SZWdpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDEsPHdici8+IHRoZSBjYW1lcmEgc2VydmljZSBkb2VzIG5vdAorc2NhbGUgJ25vcm1hbGl6ZWQnIGNvb3JkaW5hdGVzIHdpdGggcmVzcGVjdCB0byB0aGUgY3JvcAorcmVnaW9uLjx3YnIvPiBUaGlzIGFwcGxpZXMgdG8gbWV0ZXJpbmcgaW5wdXQgKGF7ZSw8d2JyLz5mLDx3YnIvPndifVJlZ2lvbgorYW5kIG91dHB1dCAoZmFjZSByZWN0YW5nbGVzKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3JtYWxpemVkIGNvb3JkaW5hdGVzIHJlZmVyIHRvIHRob3NlIGluIHRoZQorKC0xMDAwLDx3YnIvPjEwMDApIHJhbmdlIG1lbnRpb25lZCBpbiB0aGUKK2FuZHJvaWQuPHdici8+aGFyZHdhcmUuPHdici8+Q2FtZXJhIEFQSS48d2JyLz48L3A+Cis8cD5IQUwgaW1wbGVtZW50YXRpb25zIHNob3VsZCBpbnN0ZWFkIGFsd2F5cyB1c2UgYW5kIGVtaXQKK3NlbnNvciBhcnJheS1yZWxhdGl2ZSBjb29yZGluYXRlcyBmb3IgYWxsIHJlZ2lvbiBkYXRhLjx3YnIvPiBEb2VzCitub3QgbmVlZCB0byBiZSBsaXN0ZWQgaW4gc3RhdGljIG1ldGFkYXRhLjx3YnIvPiBTdXBwb3J0IHdpbGwgYmUKK3JlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zIG9mIGNhbWVyYSBzZXJ2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucXVpcmtzLnRyaWdnZXJBZldpdGhBdXRvIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cXVpcmtzLjx3YnIvPnRyaWdnZXI8d2JyLz5BZjx3YnIvPldpdGg8d2JyLz5BdXRvCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPklmIHNldCB0byAxLDx3YnIvPiB0aGVuIHRoZSBjYW1lcmEgc2VydmljZSBhbHdheXMKK3N3aXRjaGVzIHRvIEZPQ1VTXzx3YnIvPk1PREVfPHdici8+QVVUTyBiZWZvcmUgaXNzdWluZyBhIEFGCit0cmlnZ2VyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIGltcGxlbWVudCBBRiB0cmlnZ2VyCittb2RlcyBmb3IgQVVUTyw8d2JyLz4gTUFDUk8sPHdici8+IENPTlRJTlVPVVNfPHdici8+Rk9DVVMsPHdici8+IGFuZAorQ09OVElOVU9VU188d2JyLz5QSUNUVVJFIG1vZGVzIGluc3RlYWQgb2YgdXNpbmcgdGhpcyBmbGFnLjx3YnIvPiBEb2VzCitub3QgbmVlZCB0byBiZSBsaXN0ZWQgaW4gc3RhdGljIG1ldGFkYXRhLjx3YnIvPiBTdXBwb3J0IHdpbGwgYmUKK3JlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zIG9mIGNhbWVyYSBzZXJ2aWNlPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5xdWlya3MudXNlWnNsRm9ybWF0Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cXVpcmtzLjx3YnIvPnVzZTx3YnIvPlpzbDx3YnIvPkZvcm1hdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gMSw8d2JyLz4gdGhlIGNhbWVyYSBzZXJ2aWNlIHVzZXMKK0NBTUVSQTJfPHdici8+UElYRUxfPHdici8+Rk9STUFUXzx3YnIvPlpTTCBpbnN0ZWFkIG9mCitIQUxfPHdici8+UElYRUxfPHdici8+Rk9STUFUXzx3YnIvPklNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQgZm9yIHRoZSB6ZXJvCitzaHV0dGVyIGxhZyBzdHJlYW08L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5IQUwgaW1wbGVtZW50YXRpb25zIHNob3VsZCB1c2UgZ3JhbGxvYyB1c2FnZSBmbGFncwordG8gZGV0ZXJtaW5lIHRoYXQgYSBzdHJlYW0gd2lsbCBiZSB1c2VkIGZvcgoremVyby1zaHV0dGVyLWxhZyw8d2JyLz4gaW5zdGVhZCBvZiByZWx5aW5nIG9uIGFuIGV4cGxpY2l0Citmb3JtYXQgc2V0dGluZy48d2JyLz4gRG9lcyBub3QgbmVlZCB0byBiZSBsaXN0ZWQgaW4gc3RhdGljCittZXRhZGF0YS48d2JyLz4gU3VwcG9ydCB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zIG9mCitjYW1lcmEgc2VydmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnF1aXJrcy51c2VQYXJ0aWFsUmVzdWx0Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cXVpcmtzLjx3YnIvPnVzZTx3YnIvPlBhcnRpYWw8d2JyLz5SZXN1bHQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW5dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDEsPHdici8+IHRoZSBIQUwgd2lsbCBhbHdheXMgc3BsaXQgcmVzdWx0CittZXRhZGF0YSBmb3IgYSBzaW5nbGUgY2FwdHVyZSBpbnRvIG11bHRpcGxlIGJ1ZmZlcnMsPHdici8+CityZXR1cm5lZCB1c2luZyBtdWx0aXBsZSBwcm9jZXNzXzx3YnIvPmNhcHR1cmVfPHdici8+cmVzdWx0IGNhbGxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkRvZXMgbm90IG5lZWQgdG8gYmUgbGlzdGVkIGluIHN0YXRpYworbWV0YWRhdGEuPHdici8+IFN1cHBvcnQgZm9yIHBhcnRpYWwgcmVzdWx0cyB3aWxsIGJlIHJld29ya2VkIGluCitmdXR1cmUgdmVyc2lvbnMgb2YgY2FtZXJhIHNlcnZpY2UuPHdici8+IFRoaXMgcXVpcmsgd2lsbCBzdG9wCit3b3JraW5nIGF0IHRoYXQgcG9pbnQ7IERPIE5PVCBVU0Ugd2l0aG91dCBjYXJlZnVsCitjb25zaWRlcmF0aW9uIG9mIGZ1dHVyZSBzdXBwb3J0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+UmVmZXIgdG8gPGNvZGU+Y2FtZXJhM188d2JyLz5jYXB0dXJlXzx3YnIvPnJlc3VsdDo6cGFydGlhbF88d2JyLz5yZXN1bHQ8L2NvZGU+Citmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGltcGxlbWVudCBwYXJ0aWFsIHJlc3VsdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQucXVpcmtzLnBhcnRpYWxSZXN1bHQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5xdWlya3MuPHdici8+cGFydGlhbDx3YnIvPlJlc3VsdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbiBhcyBib29sZWFuXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZJTkFMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgbGFzdCBvciBvbmx5IG1ldGFkYXRhIHJlc3VsdCBidWZmZXIKK2ZvciB0aGlzIGNhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UEFSVElBTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSBwYXJ0aWFsIGJ1ZmZlciBvZiByZXN1bHQgbWV0YWRhdGEgZm9yIHRoaXMKK2NhcHR1cmUuPHdici8+IE1vcmUgcmVzdWx0IGJ1ZmZlcnMgZm9yIHRoaXMgY2FwdHVyZSB3aWxsIGJlIHNlbnQKK2J5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGUgbGFzdCBvZiB3aGljaCB3aWxsIGJlIG1hcmtlZAorRklOQUwuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBhIHJlc3VsdCBnaXZlbiB0byB0aGUgZnJhbWV3b3JrIGlzIHRoZQorZmluYWwgb25lIGZvciB0aGUgY2FwdHVyZSw8d2JyLz4gb3Igb25seSBhIHBhcnRpYWwgdGhhdCBjb250YWlucyBhCitzdWJzZXQgb2YgdGhlIGZ1bGwgc2V0IG9mIGR5bmFtaWMgbWV0YWRhdGEKK3ZhbHVlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgICA8cD5PcHRpb25hbC48d2JyLz4gRGVmYXVsdCB2YWx1ZSBpcyBGSU5BTC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBlbnRyaWVzIGluIHRoZSByZXN1bHQgbWV0YWRhdGEgYnVmZmVycyBmb3IgYQorc2luZ2xlIGNhcHR1cmUgbWF5IG5vdCBvdmVybGFwLDx3YnIvPiBleGNlcHQgZm9yIHRoaXMgZW50cnkuPHdici8+IFRoZQorRklOQUwgYnVmZmVycyBtdXN0IHJldGFpbiBGSUZPIG9yZGVyaW5nIHJlbGF0aXZlIHRvIHRoZQorcmVxdWVzdHMgdGhhdCBnZW5lcmF0ZSB0aGVtLDx3YnIvPiBzbyB0aGUgRklOQUwgYnVmZmVyIGZvciBmcmFtZSAzIG11c3QKK2Fsd2F5cyBiZSBzZW50IHRvIHRoZSBmcmFtZXdvcmsgYWZ0ZXIgdGhlIEZJTkFMIGJ1ZmZlciBmb3IgZnJhbWUgMiw8d2JyLz4gYW5kCitiZWZvcmUgdGhlIEZJTkFMIGJ1ZmZlciBmb3IgZnJhbWUgNC48d2JyLz4gUEFSVElBTCBidWZmZXJzIG1heSBiZSByZXR1cm5lZAoraW4gYW55IG9yZGVyIHJlbGF0aXZlIHRvIG90aGVyIGZyYW1lcyw8d2JyLz4gYnV0IGFsbCBQQVJUSUFMIGJ1ZmZlcnMgZm9yIGEgZ2l2ZW4KK2NhcHR1cmUgbXVzdCBhcnJpdmUgYmVmb3JlIHRoZSBGSU5BTCBidWZmZXIgZm9yIHRoYXQgY2FwdHVyZS48d2JyLz4gVGhpcyBlbnRyeSBtYXkKK29ubHkgYmUgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBpZiBxdWlya3MuPHdici8+dXNlUGFydGlhbFJlc3VsdCBpcyBzZXQgdG8gMS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlJlZmVyIHRvIDxjb2RlPmNhbWVyYTNfPHdici8+Y2FwdHVyZV88d2JyLz5yZXN1bHQ6OnBhcnRpYWxfPHdici8+cmVzdWx0PC9jb2RlPgorZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byBpbXBsZW1lbnQgcGFydGlhbCByZXN1bHRzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX3JlcXVlc3QiIGNsYXNzPSJzZWN0aW9uIj5yZXF1ZXN0PC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5mcmFtZUNvdW50Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5mcmFtZTx3YnIvPkNvdW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIGZyYW1lIGNvdW50ZXIgc2V0IGJ5IHRoZSBmcmFtZXdvcmsuPHdici8+IE11c3QKK2JlIG1haW50YWluZWQgdW5jaGFuZ2VkIGluIG91dHB1dCBmcmFtZS48d2JyLz4gVGhpcyB2YWx1ZSBtb25vdG9uaWNhbGx5CitpbmNyZWFzZXMgd2l0aCBldmVyeSBuZXcgcmVzdWx0ICh0aGF0IGlzLDx3YnIvPiBlYWNoIG5ldyByZXN1bHQgaGFzIGEgdW5pcXVlCitmcmFtZUNvdW50IHZhbHVlKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgaW5jcmVtZW50aW5nIGludGVnZXIKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgICA8cD5BbnkgaW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0LmlkIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5pZAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW5dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QW4gYXBwbGljYXRpb24tc3BlY2lmaWVkIElEIGZvciB0aGUgY3VycmVudAorcmVxdWVzdC48d2JyLz4gTXVzdCBiZSBtYWludGFpbmVkIHVuY2hhbmdlZCBpbiBvdXRwdXQKK2ZyYW1lPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIGFyYml0cmFyeSBpbnRlZ2VyIGFzc2lnbmVkIGJ5IGFwcGxpY2F0aW9uCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IGludDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnJlcXVlc3QuaW5wdXRTdHJlYW1zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5pbnB1dDx3YnIvPlN0cmVhbXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgd2hpY2ggY2FtZXJhIHJlcHJvY2VzcyBzdHJlYW0gaXMgdXNlZAorZm9yIHRoZSBzb3VyY2Ugb2YgcmVwcm9jZXNzaW5nIGRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIExpc3Qgb2YgY2FtZXJhIHJlcHJvY2VzcyBzdHJlYW0gSURzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgICAgPHA+VHlwaWNhbGx5LDx3YnIvPiBvbmx5IG9uZSBlbnRyeSBhbGxvd2VkLDx3YnIvPiBtdXN0IGJlIGEgdmFsaWQgcmVwcm9jZXNzIHN0cmVhbSBJRC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfSEFMMiI+SEFMMjwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9ubHkgbWVhbmluZ2Z1bCB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QudHlwZSI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPnR5cGU8L2E+ID09CitSRVBST0NFU1MuPHdici8+IElnbm9yZWQgb3RoZXJ3aXNlPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnJlcXVlc3QubWV0YWRhdGFNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tZXRhZGF0YTx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Tk9ORTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gbWV0YWRhdGEgc2hvdWxkIGJlIHByb2R1Y2VkIG9uIG91dHB1dCw8d2JyLz4gZXhjZXB0Citmb3IgYXBwbGljYXRpb24tYm91bmQgYnVmZmVyIGRhdGEuPHdici8+IElmIG5vCithcHBsaWNhdGlvbi1ib3VuZCBzdHJlYW1zIGV4aXN0LDx3YnIvPiBubyBmcmFtZSBzaG91bGQgYmUKK3BsYWNlZCBpbiB0aGUgb3V0cHV0IGZyYW1lIHF1ZXVlLjx3YnIvPiBJZiBzdWNoIHN0cmVhbXMKK2V4aXN0LDx3YnIvPiBhIGZyYW1lIHNob3VsZCBiZSBwbGFjZWQgb24gdGhlIG91dHB1dCBxdWV1ZQord2l0aCBudWxsIG1ldGFkYXRhIGJ1dCB3aXRoIHRoZSBuZWNlc3Nhcnkgb3V0cHV0IGJ1ZmZlcgoraW5mb3JtYXRpb24uPHdici8+IFRpbWVzdGFtcCBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUKK2luY2x1ZGVkIHdpdGggYW55IG91dHB1dCBzdHJlYW0gYnVmZmVyczwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZVTEw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFsbCBtZXRhZGF0YSBzaG91bGQgYmUgcHJvZHVjZWQuPHdici8+IFN0YXRpc3RpY3Mgd2lsbAorb25seSBiZSBwcm9kdWNlZCBpZiB0aGV5IGFyZSBzZXBhcmF0ZWx5CitlbmFibGVkPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+SG93IG11Y2ggbWV0YWRhdGEgdG8gcHJvZHVjZSBvbgorb3V0cHV0PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5vdXRwdXQ8d2JyLz5TdHJlYW1zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0cyB3aGljaCBjYW1lcmEgb3V0cHV0IHN0cmVhbXMgaW1hZ2UgZGF0YQorZnJvbSB0aGlzIGNhcHR1cmUgbXVzdCBiZSBzZW50IHRvPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIExpc3Qgb2YgY2FtZXJhIHN0cmVhbSBJRHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgICA8cD5MaXN0IG11c3Qgb25seSBpbmNsdWRlIHN0cmVhbXMgdGhhdCBoYXZlIGJlZW4KK2NyZWF0ZWQ8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfSEFMMiI+SEFMMjwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIG5vIG91dHB1dCBzdHJlYW1zIGFyZSBsaXN0ZWQsPHdici8+IHRoZW4gdGhlIGltYWdlCitkYXRhIHNob3VsZCBzaW1wbHkgYmUgZGlzY2FyZGVkLjx3YnIvPiBUaGUgaW1hZ2UgZGF0YSBtdXN0CitzdGlsbCBiZSBjYXB0dXJlZCBmb3IgbWV0YWRhdGEgYW5kIHN0YXRpc3RpY3MgcHJvZHVjdGlvbiw8d2JyLz4KK2FuZCB0aGUgbGVucyBhbmQgZmxhc2ggbXVzdCBvcGVyYXRlIGFzIHJlcXVlc3RlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC50eXBlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz50eXBlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNBUFRVUkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkNhcHR1cmUgYSBuZXcgaW1hZ2UgZnJvbSB0aGUgaW1hZ2luZyBoYXJkd2FyZSw8d2JyLz4KK2FuZCBwcm9jZXNzIGl0IGFjY29yZGluZyB0byB0aGUKK3NldHRpbmdzPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkVQUk9DRVNTPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Qcm9jZXNzIHByZXZpb3VzbHkgY2FwdHVyZWQgZGF0YTsgdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0LmlucHV0U3RyZWFtcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmlucHV0PHdici8+U3RyZWFtczwvYT4gcGFyYW1ldGVyIGRldGVybWluZXMgdGhlCitzb3VyY2UgcmVwcm9jZXNzaW5nIHN0cmVhbS48d2JyLz4gVE9ETzogTWFyayBkeW5hbWljIG1ldGFkYXRhCituZWVkZWQgZm9yIHJlcHJvY2Vzc2luZyB3aXRoIFtSUF08L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgdHlwZSBvZiB0aGUgcmVxdWVzdDsgZWl0aGVyIENBUFRVUkUgb3IKK1JFUFJPQ0VTUy48d2JyLz4gRm9yIEhBTDMsPHdici8+IHRoaXMgdGFnIGlzIHJlZHVuZGFudC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0hBTDIiPkhBTDI8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRTdHJlYW1zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5PdXRwdXQ8d2JyLz5TdHJlYW1zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXJzIG9mIGRpZmZlcmVudCB0eXBlcyBvZiBvdXRwdXQgc3RyZWFtcwordGhhdCBjYW4gYmUgY29uZmlndXJlZCBhbmQgdXNlZCBzaW11bHRhbmVvdXNseSBieSBhIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Rm9yIHByb2Nlc3NlZCAoYW5kIHN0YWxsaW5nKSBmb3JtYXQgc3RyZWFtcyw8d2JyLz4gJmd0Oz0gMS48d2JyLz48L3A+Cis8cD5Gb3IgUmF3IGZvcm1hdCAoZWl0aGVyIHN0YWxsaW5nIG9yIG5vbi1zdGFsbGluZykgc3RyZWFtcyw8d2JyLz4gJmd0Oz0gMC48d2JyLz48L3A+Cis8cD5Gb3IgcHJvY2Vzc2VkIChidXQgbm90IHN0YWxsaW5nKSBmb3JtYXQgc3RyZWFtcyw8d2JyLz4gJmd0Oz0gMworZm9yIEZVTEwgbW9kZSBkZXZpY2VzICg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gRlVMTDwvY29kZT4pOworJmd0Oz0gMiBmb3IgTElNSVRFRCBtb2RlIGRldmljZXMgKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBMSU1JVEVEPC9jb2RlPikuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSAzIGVsZW1lbnQgdHVwbGUgdGhhdCBjb250YWlucyB0aGUgbWF4IG51bWJlciBvZiBvdXRwdXQgc2ltdWx0YW5lb3VzCitzdHJlYW1zIGZvciByYXcgc2Vuc29yLDx3YnIvPiBwcm9jZXNzZWQgKGJ1dCBub3Qgc3RhbGxpbmcpLDx3YnIvPiBhbmQgcHJvY2Vzc2VkIChhbmQgc3RhbGxpbmcpCitmb3JtYXRzIHJlc3BlY3RpdmVseS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGFzc3VtaW5nIHRoYXQgSlBFRyBpcyB0eXBpY2FsbHkgYSBwcm9jZXNzZWQgYW5kCitzdGFsbGluZyBzdHJlYW0sPHdici8+IGlmIG1heCByYXcgc2Vuc29yIGZvcm1hdCBvdXRwdXQgc3RyZWFtIG51bWJlciBpcyAxLDx3YnIvPiBtYXggWVVWIHN0cmVhbXMKK251bWJlciBpcyAzLDx3YnIvPiBhbmQgbWF4IEpQRUcgc3RyZWFtIG51bWJlciBpcyAyLDx3YnIvPiB0aGVuIHRoaXMgdHVwbGUgc2hvdWxkIGJlIDxjb2RlPigxLDx3YnIvPiAzLDx3YnIvPiAyKTwvY29kZT4uPHdici8+PC9wPgorPHA+VGhpcyBsaXN0cyB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIG51bWJlciBvZiBvdXRwdXQgc3RyZWFtcyBzdXBwb3J0ZWQgYnkKK3RoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBVc2luZyBtb3JlIHN0cmVhbXMgc2ltdWx0YW5lb3VzbHkgbWF5IHJlcXVpcmUgbW9yZSBoYXJkd2FyZSBhbmQKK0NQVSByZXNvdXJjZXMgdGhhdCB3aWxsIGNvbnN1bWUgbW9yZSBwb3dlci48d2JyLz4gVGhlIGltYWdlIGZvcm1hdCBmb3IgYW4gb3V0cHV0IHN0cmVhbSBjYW4KK2JlIGFueSBzdXBwb3J0ZWQgZm9ybWF0IHByb3ZpZGVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPi48d2JyLz4KK1RoZSBmb3JtYXRzIGRlZmluZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RyZWFtPHdici8+Q29uZmlndXJhdGlvbnM8L2E+IGNhbiBiZSBjYXRlcmdvcml6ZWQKK2ludG8gdGhlIDMgc3RyZWFtIHR5cGVzIGFzIGJlbG93OjwvcD4KKzx1bD4KKzxsaT5Qcm9jZXNzZWQgKGJ1dCBzdGFsbGluZyk6IGFueSBub24tUkFXIGZvcm1hdCB3aXRoIGEgc3RhbGxEdXJhdGlvbnMgJmd0OyAwLjx3YnIvPgorICBUeXBpY2FsbHkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNKUEVHIj5KUEVHIGZvcm1hdDwvYT4uPHdici8+PC9saT4KKzxsaT5SYXcgZm9ybWF0czogPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVdfU0VOU09SIj5SQVdfPHdici8+U0VOU09SPC9hPiw8d2JyLz4gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVcxMCI+UkFXMTA8L2E+LDx3YnIvPiBvciA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1JBVzEyIj5SQVcxMjwvYT4uPHdici8+PC9saT4KKzxsaT5Qcm9jZXNzZWQgKGJ1dCBub3Qtc3RhbGxpbmcpOiBhbnkgbm9uLVJBVyBmb3JtYXQgd2l0aG91dCBhIHN0YWxsIGR1cmF0aW9uLjx3YnIvPgorICBUeXBpY2FsbHkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+WVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+LDx3YnIvPgorICA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI05WMjEiPk5WMjE8L2E+LDx3YnIvPiBvcgorICA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lWMTIiPllWMTI8L2E+Ljx3YnIvPjwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFJhdyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+UmF3CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIG51bWJlcnMgb2YgZGlmZmVyZW50IHR5cGVzIG9mIG91dHB1dCBzdHJlYW1zCit0aGF0IGNhbiBiZSBjb25maWd1cmVkIGFuZCB1c2VkIHNpbXVsdGFuZW91c2x5IGJ5IGEgY2FtZXJhIGRldmljZQorZm9yIGFueSA8Y29kZT5SQVc8L2NvZGU+IGZvcm1hdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyB2YWx1ZSBjb250YWlucyB0aGUgbWF4IG51bWJlciBvZiBvdXRwdXQgc2ltdWx0YW5lb3VzCitzdHJlYW1zIGZyb20gdGhlIHJhdyBzZW5zb3IuPHdici8+PC9wPgorPHA+VGhpcyBsaXN0cyB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIG51bWJlciBvZiBvdXRwdXQgc3RyZWFtcyBzdXBwb3J0ZWQgYnkKK3RoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBVc2luZyBtb3JlIHN0cmVhbXMgc2ltdWx0YW5lb3VzbHkgbWF5IHJlcXVpcmUgbW9yZSBoYXJkd2FyZSBhbmQKK0NQVSByZXNvdXJjZXMgdGhhdCB3aWxsIGNvbnN1bWUgbW9yZSBwb3dlci48d2JyLz4gVGhlIGltYWdlIGZvcm1hdCBmb3IgdGhpcyBraW5kIG9mIGFuIG91dHB1dCBzdHJlYW0gY2FuCitiZSBhbnkgPGNvZGU+UkFXPC9jb2RlPiBhbmQgc3VwcG9ydGVkIGZvcm1hdCBwcm92aWRlZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPnN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb248d2JyLz5NYXA8L2E+Ljx3YnIvPjwvcD4KKzxwPkluIHBhcnRpY3VsYXIsPHdici8+IGEgPGNvZGU+UkFXPC9jb2RlPiBmb3JtYXQgaXMgdHlwaWNhbGx5IG9uZSBvZjo8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVdfU0VOU09SIj5SQVdfPHdici8+U0VOU09SPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVcxMCI+UkFXMTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1JBVzEyIj5SQVcxMjwvYT48L2xpPgorPC91bD4KKzxwPkxFR0FDWSBtb2RlIGRldmljZXMgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA8Y29kZT49PTwvY29kZT4gTEVHQUNZKQorbmV2ZXIgc3VwcG9ydCByYXcgc3RyZWFtcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UHJvYyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+UHJvYworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpY108L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXJzIG9mIGRpZmZlcmVudCB0eXBlcyBvZiBvdXRwdXQgc3RyZWFtcwordGhhdCBjYW4gYmUgY29uZmlndXJlZCBhbmQgdXNlZCBzaW11bHRhbmVvdXNseSBieSBhIGNhbWVyYSBkZXZpY2UKK2ZvciBhbnkgcHJvY2Vzc2VkIChidXQgbm90LXN0YWxsaW5nKSBmb3JtYXRzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDMKK2ZvciBGVUxMIG1vZGUgZGV2aWNlcyAoPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IEZVTEw8L2NvZGU+KTsKKyZndDs9IDIgZm9yIExJTUlURUQgbW9kZSBkZXZpY2VzICg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gTElNSVRFRDwvY29kZT4pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyB2YWx1ZSBjb250YWlucyB0aGUgbWF4IG51bWJlciBvZiBvdXRwdXQgc2ltdWx0YW5lb3VzCitzdHJlYW1zIGZvciBhbnkgcHJvY2Vzc2VkIChidXQgbm90LXN0YWxsaW5nKSBmb3JtYXRzLjx3YnIvPjwvcD4KKzxwPlRoaXMgbGlzdHMgdGhlIHVwcGVyIGJvdW5kIG9mIHRoZSBudW1iZXIgb2Ygb3V0cHV0IHN0cmVhbXMgc3VwcG9ydGVkIGJ5Cit0aGUgY2FtZXJhIGRldmljZS48d2JyLz4gVXNpbmcgbW9yZSBzdHJlYW1zIHNpbXVsdGFuZW91c2x5IG1heSByZXF1aXJlIG1vcmUgaGFyZHdhcmUgYW5kCitDUFUgcmVzb3VyY2VzIHRoYXQgd2lsbCBjb25zdW1lIG1vcmUgcG93ZXIuPHdici8+IFRoZSBpbWFnZSBmb3JtYXQgZm9yIHRoaXMga2luZCBvZiBhbiBvdXRwdXQgc3RyZWFtIGNhbgorYmUgYW55IG5vbi08Y29kZT5SQVc8L2NvZGU+IGFuZCBzdXBwb3J0ZWQgZm9ybWF0IHByb3ZpZGVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcDwvYT4uPHdici8+PC9wPgorPHA+UHJvY2Vzc2VkIChidXQgbm90LXN0YWxsaW5nKSBpcyBkZWZpbmVkIGFzIGFueSBub24tUkFXIGZvcm1hdCB3aXRob3V0IGEgc3RhbGwgZHVyYXRpb24uPHdici8+CitUeXBpY2FsbHk6PC9wPgorPHVsPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPllVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNOVjIxIj5OVjIxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVjEyIj5ZVjEyPC9hPjwvbGk+Cis8bGk+SW1wbGVtZW50YXRpb24tZGVmaW5lZCBmb3JtYXRzLDx3YnIvPiBpLjx3YnIvPmUuPHdici8+IDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNpc091dHB1dFN1cHBvcnRlZEZvcihDbGFzcykiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjaXNPdXRwdXRTdXBwb3J0ZWRGb3IoQ2xhc3MpPC9hPjwvbGk+Cis8L3VsPgorPHA+Rm9yIGZ1bGwgZ3VhcmFudGVlcyw8d2JyLz4gcXVlcnkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbjwvYT4gd2l0aCBhCitwcm9jZXNzZWQgZm9ybWF0IC0tIGl0IHdpbGwgcmV0dXJuIDAgZm9yIGEgbm9uLXN0YWxsaW5nIHN0cmVhbS48d2JyLz48L3A+Cis8cD5MRUdBQ1kgZGV2aWNlcyB3aWxsIHN1cHBvcnQgYXQgbGVhc3QgMiBwcm9jZXNzaW5nLzx3YnIvPm5vbi1zdGFsbGluZyBzdHJlYW1zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRQcm9jU3RhbGxpbmciPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1heDx3YnIvPk51bTx3YnIvPk91dHB1dDx3YnIvPlByb2M8d2JyLz5TdGFsbGluZworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpY108L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXJzIG9mIGRpZmZlcmVudCB0eXBlcyBvZiBvdXRwdXQgc3RyZWFtcwordGhhdCBjYW4gYmUgY29uZmlndXJlZCBhbmQgdXNlZCBzaW11bHRhbmVvdXNseSBieSBhIGNhbWVyYSBkZXZpY2UKK2ZvciBhbnkgcHJvY2Vzc2VkIChhbmQgc3RhbGxpbmcpIGZvcm1hdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyB2YWx1ZSBjb250YWlucyB0aGUgbWF4IG51bWJlciBvZiBvdXRwdXQgc2ltdWx0YW5lb3VzCitzdHJlYW1zIGZvciBhbnkgcHJvY2Vzc2VkIChidXQgbm90LXN0YWxsaW5nKSBmb3JtYXRzLjx3YnIvPjwvcD4KKzxwPlRoaXMgbGlzdHMgdGhlIHVwcGVyIGJvdW5kIG9mIHRoZSBudW1iZXIgb2Ygb3V0cHV0IHN0cmVhbXMgc3VwcG9ydGVkIGJ5Cit0aGUgY2FtZXJhIGRldmljZS48d2JyLz4gVXNpbmcgbW9yZSBzdHJlYW1zIHNpbXVsdGFuZW91c2x5IG1heSByZXF1aXJlIG1vcmUgaGFyZHdhcmUgYW5kCitDUFUgcmVzb3VyY2VzIHRoYXQgd2lsbCBjb25zdW1lIG1vcmUgcG93ZXIuPHdici8+IFRoZSBpbWFnZSBmb3JtYXQgZm9yIHRoaXMga2luZCBvZiBhbiBvdXRwdXQgc3RyZWFtIGNhbgorYmUgYW55IG5vbi08Y29kZT5SQVc8L2NvZGU+IGFuZCBzdXBwb3J0ZWQgZm9ybWF0IHByb3ZpZGVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcDwvYT4uPHdici8+PC9wPgorPHA+QSBwcm9jZXNzZWQgYW5kIHN0YWxsaW5nIGZvcm1hdCBpcyBkZWZpbmVkIGFzIGFueSBub24tUkFXIGZvcm1hdCB3aXRoIGEgc3RhbGxEdXJhdGlvbnMKKyZndDsgMC48d2JyLz4gIFR5cGljYWxseSBvbmx5IHRoZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkpQRUcgZm9ybWF0PC9hPiBpcyBhCitzdGFsbGluZyBmb3JtYXQuPHdici8+PC9wPgorPHA+Rm9yIGZ1bGwgZ3VhcmFudGVlcyw8d2JyLz4gcXVlcnkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbjwvYT4gd2l0aCBhCitwcm9jZXNzZWQgZm9ybWF0IC0tIGl0IHdpbGwgcmV0dXJuIGEgbm9uLTAgdmFsdWUgZm9yIGEgc3RhbGxpbmcgc3RyZWFtLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBkZXZpY2VzIHdpbGwgc3VwcG9ydCB1cCB0byAxIHByb2Nlc3NpbmcvPHdici8+c3RhbGxpbmcgc3RyZWFtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1SZXByb2Nlc3NTdHJlYW1zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5SZXByb2Nlc3M8d2JyLz5TdHJlYW1zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAxCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ib3cgbWFueSByZXByb2Nlc3Npbmcgc3RyZWFtcyBvZiBhbnkgdHlwZQorY2FuIGJlIGFsbG9jYXRlZCBhdCB0aGUgc2FtZSB0aW1lLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICAgIDxwPiZndDs9IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfSEFMMiI+SEFMMjwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9ubHkgdXNlZCBieSBIQUwyLjx3YnIvPnguPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gMCw8d2JyLz4gaXQgbWVhbnMgbm8gcmVwcm9jZXNzIHN0cmVhbSBpcyBzdXBwb3J0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bUlucHV0U3RyZWFtcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+SW5wdXQ8d2JyLz5TdHJlYW1zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXJzIG9mIGFueSB0eXBlIG9mIGlucHV0IHN0cmVhbXMKK3RoYXQgY2FuIGJlIGNvbmZpZ3VyZWQgYW5kIHVzZWQgc2ltdWx0YW5lb3VzbHkgYnkgYSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAgb3IgMS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkVQUk9DIj5SRVBST0M8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHNldCB0byAwLDx3YnIvPiBpdCBtZWFucyBubyBpbnB1dCBzdHJlYW0gaXMgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKzxwPlRoZSBpbWFnZSBmb3JtYXQgZm9yIGEgaW5wdXQgc3RyZWFtIGNhbiBiZSBhbnkgc3VwcG9ydGVkIGZvcm1hdCByZXR1cm5lZCBieSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0SW5wdXRGb3JtYXRzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldElucHV0Rm9ybWF0czwvYT4uPHdici8+IFdoZW4gdXNpbmcgYW4KK2lucHV0IHN0cmVhbSw8d2JyLz4gdGhlcmUgbXVzdCBiZSBhdCBsZWFzdCBvbmUgb3V0cHV0IHN0cmVhbSBjb25maWd1cmVkIHRvIHRvIHJlY2VpdmUgdGhlCityZXByb2Nlc3NlZCBpbWFnZXMuPHdici8+PC9wPgorPHA+V2hlbiBhbiBpbnB1dCBzdHJlYW0gYW5kIHNvbWUgb3V0cHV0IHN0cmVhbXMgYXJlIHVzZWQgaW4gYSByZXByb2Nlc3NpbmcgcmVxdWVzdCw8d2JyLz4KK29ubHkgdGhlIGlucHV0IGJ1ZmZlciB3aWxsIGJlIHVzZWQgdG8gcHJvZHVjZSB0aGVzZSBvdXRwdXQgc3RyZWFtIGJ1ZmZlcnMsPHdici8+IGFuZCBhCituZXcgc2Vuc29yIGltYWdlIHdpbGwgbm90IGJlIGNhcHR1cmVkLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBmb3IgWmVybyBTaHV0dGVyIExhZyAoWlNMKSBzdGlsbCBjYXB0dXJlIHVzZSBjYXNlLDx3YnIvPiB0aGUgaW5wdXQKK3N0cmVhbSBpbWFnZSBmb3JtYXQgd2lsbCBiZSBQUklWQVRFLDx3YnIvPiB0aGUgYXNzb2NpYXRlZCBvdXRwdXQgc3RyZWFtIGltYWdlIGZvcm1hdAorc2hvdWxkIGJlIEpQRUcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgdGhlIHJlcHJvY2Vzc2luZyBmbG93IGFuZCBjb250cm9scyw8d2JyLz4gc2VlCitoYXJkd2FyZS88d2JyLz5saWJoYXJkd2FyZS88d2JyLz5pbmNsdWRlLzx3YnIvPmhhcmR3YXJlLzx3YnIvPmNhbWVyYTMuPHdici8+aCBTZWN0aW9uIDEwIGZvciBtb3JlIGRldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5waXBlbGluZU1heERlcHRoIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5waXBlbGluZTx3YnIvPk1heDx3YnIvPkRlcHRoCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+U3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgbWF4aW11bSBwaXBlbGluZSBzdGFnZXMgYSBmcmFtZQoraGFzIHRvIGdvIHRocm91Z2ggZnJvbSB3aGVuIGl0J3MgZXhwb3NlZCB0byB3aGVuIGl0J3MgYXZhaWxhYmxlCit0byB0aGUgZnJhbWV3b3JrLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkEgdHlwaWNhbCBtaW5pbXVtIHZhbHVlIGZvciB0aGlzIGlzIDIgKG9uZSBzdGFnZSB0byBleHBvc2UsPHdici8+CitvbmUgc3RhZ2UgdG8gcmVhZG91dCkgZnJvbSB0aGUgc2Vuc29yLjx3YnIvPiBUaGUgSVNQIHRoZW4gdXN1YWxseSBhZGRzCitpdHMgb3duIHN0YWdlcyB0byBkbyBjdXN0b20gSFcgcHJvY2Vzc2luZy48d2JyLz4gRnVydGhlciBzdGFnZXMgbWF5IGJlCithZGRlZCBieSBTVyBwcm9jZXNzaW5nLjx3YnIvPjwvcD4KKzxwPkRlcGVuZGluZyBvbiB3aGF0IHNldHRpbmdzIGFyZSB1c2VkIChlLjx3YnIvPmcuPHdici8+IFlVViw8d2JyLz4gSlBFRykgYW5kIHdoYXQKK3Byb2Nlc3NpbmcgaXMgZW5hYmxlZCAoZS48d2JyLz5nLjx3YnIvPiBmYWNlIGRldGVjdGlvbiksPHdici8+IHRoZSBhY3R1YWwgcGlwZWxpbmUKK2RlcHRoIChzcGVjaWZpZWQgYnkgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lRGVwdGgiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5waXBlbGluZTx3YnIvPkRlcHRoPC9hPikgbWF5IGJlIGxlc3MgdGhhbgordGhlIG1heCBwaXBlbGluZSBkZXB0aC48d2JyLz48L3A+Cis8cD5BIHBpcGVsaW5lIGRlcHRoIG9mIFggc3RhZ2VzIGlzIGVxdWl2YWxlbnQgdG8gYSBwaXBlbGluZSBsYXRlbmN5IG9mCitYIGZyYW1lIGludGVydmFscy48d2JyLz48L3A+Cis8cD5UaGlzIHZhbHVlIHdpbGwgbm9ybWFsbHkgYmUgOCBvciBsZXNzLDx3YnIvPiBob3dldmVyLDx3YnIvPiBmb3IgaGlnaCBzcGVlZCBjYXB0dXJlIHNlc3Npb24sPHdici8+Cit0aGUgbWF4IHBpcGVsaW5lIGRlcHRoIHdpbGwgYmUgdXAgdG8gOCB4IHNpemUgb2YgaGlnaCBzcGVlZCBjYXB0dXJlIHJlcXVlc3QgbGlzdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgdmFsdWUgc2hvdWxkIGJlIDQgb3IgbGVzcyw8d2JyLz4gZXhwZWN0IGZvciB0aGUgaGlnaCBzcGVlZCByZWNvcmRpbmcgc2Vzc2lvbiw8d2JyLz4gd2hlcmUgdGhlCittYXggYmF0Y2ggc2l6ZXMgbWF5IGJlIGxhcmdlciB0aGFuIDEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5wYXJ0aWFsUmVzdWx0Q291bnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPnBhcnRpYWw8d2JyLz5SZXN1bHQ8d2JyLz5Db3VudAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+RGVmaW5lcyBob3cgbWFueSBzdWItY29tcG9uZW50cworYSByZXN1bHQgd2lsbCBiZSBjb21wb3NlZCBvZi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAxPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JbiBvcmRlciB0byBjb21iYXQgdGhlIHBpcGVsaW5lIGxhdGVuY3ksPHdici8+IHBhcnRpYWwgcmVzdWx0cworbWF5IGJlIGRlbGl2ZXJlZCB0byB0aGUgYXBwbGljYXRpb24gbGF5ZXIgZnJvbSB0aGUgY2FtZXJhIGRldmljZSBhcworc29vbiBhcyB0aGV5IGFyZSBhdmFpbGFibGUuPHdici8+PC9wPgorPHA+T3B0aW9uYWw7IGRlZmF1bHRzIHRvIDEuPHdici8+IEEgdmFsdWUgb2YgMSBtZWFucyB0aGF0IHBhcnRpYWwKK3Jlc3VsdHMgYXJlIG5vdCBzdXBwb3J0ZWQsPHdici8+IGFuZCBvbmx5IHRoZSBmaW5hbCBUb3RhbENhcHR1cmVSZXN1bHQgd2lsbAorYmUgcHJvZHVjZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+QSB0eXBpY2FsIHVzZSBjYXNlIGZvciB0aGlzIG1pZ2h0IGJlOiBhZnRlciByZXF1ZXN0aW5nIGFuCithdXRvLWZvY3VzIChBRikgbG9jayB0aGUgbmV3IEFGIHN0YXRlIG1pZ2h0IGJlIGF2YWlsYWJsZSA1MCUKK29mIHRoZSB3YXkgdGhyb3VnaCB0aGUgcGlwZWxpbmUuPHdici8+ICBUaGUgY2FtZXJhIGRldmljZSBjb3VsZAordGhlbiBpbW1lZGlhdGVseSBkaXNwYXRjaCB0aGlzIHN0YXRlIHZpYSBhIHBhcnRpYWwgcmVzdWx0IHRvCit0aGUgYXBwbGljYXRpb24sPHdici8+IGFuZCB0aGUgcmVzdCBvZiB0aGUgbWV0YWRhdGEgdmlhIGxhdGVyCitwYXJ0aWFsIHJlc3VsdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QkFDS1dBUkRfQ09NUEFUSUJMRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIG1pbmltYWwgc2V0IG9mIGNhcGFiaWxpdGllcyB0aGF0IGV2ZXJ5IGNhbWVyYQorZGV2aWNlIChyZWdhcmRsZXNzIG9mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPikKK3N1cHBvcnRzLjx3YnIvPjwvcD4KKzxwPlRoaXMgY2FwYWJpbGl0eSBpcyBsaXN0ZWQgYnkgYWxsIG5vcm1hbCBkZXZpY2VzLDx3YnIvPiBhbmQKK2luZGljYXRlcyB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIGhhcyBhIGZlYXR1cmUgc2V0Cit0aGF0J3MgY29tcGFyYWJsZSB0byB0aGUgYmFzZWxpbmUgcmVxdWlyZW1lbnRzIGZvciB0aGUKK29sZGVyIGFuZHJvaWQuPHdici8+aGFyZHdhcmUuPHdici8+Q2FtZXJhIEFQSS48d2JyLz48L3A+Cis8cD5EZXZpY2VzIHdpdGggdGhlIERFUFRIXzx3YnIvPk9VVFBVVCBjYXBhYmlsaXR5IG1pZ2h0IG5vdCBsaXN0IHRoaXMKK2NhcGFiaWxpdHksPHdici8+IGluZGljYXRpbmcgdGhhdCB0aGV5IHN1cHBvcnQgb25seSBkZXB0aCBtZWFzdXJlbWVudCw8d2JyLz4KK25vdCBzdGFuZGFyZCBjb2xvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TUFOVUFMX1NFTlNPUjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UgY2FuIGJlIG1hbnVhbGx5IGNvbnRyb2xsZWQgKDNBIGFsZ29yaXRobXMgc3VjaAorYXMgYXV0by1leHBvc3VyZSw8d2JyLz4gYW5kIGF1dG8tZm9jdXMgY2FuIGJlIGJ5cGFzc2VkKS48d2JyLz4KK1RoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIGJhc2ljIG1hbnVhbCBjb250cm9sIG9mIHRoZSBzZW5zb3IgaW1hZ2UKK2FjcXVpc2l0aW9uIHJlbGF0ZWQgc3RhZ2VzLjx3YnIvPiBUaGlzIG1lYW5zIHRoZSBmb2xsb3dpbmcgY29udHJvbHMgYXJlCitndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZDo8L3A+Cis8dWw+Cis8bGk+TWFudWFsIGZyYW1lIGR1cmF0aW9uIGNvbnRyb2w8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubWF4RnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5tYXg8d2JyLz5GcmFtZTx3YnIvPkR1cmF0aW9uPC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5NYW51YWwgZXhwb3N1cmUgY29udHJvbDx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPHdici8+UmFuZ2U8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPk1hbnVhbCBzZW5zaXRpdml0eSBjb250cm9sPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlPC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5NYW51YWwgbGVucyBjb250cm9sIChpZiB0aGUgbGVucyBpcyBhZGp1c3RhYmxlKTx1bD4KKzxsaT5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+KjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5NYW51YWwgZmxhc2ggY29udHJvbCAoaWYgYSBmbGFzaCB1bml0IGlzIHByZXNlbnQpPHVsPgorPGxpPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+KjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5NYW51YWwgYmxhY2sgbGV2ZWwgbG9ja2luZzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ibGFja0xldmVsLmxvY2siPmFuZHJvaWQuPHdici8+YmxhY2s8d2JyLz5MZXZlbC48d2JyLz5sb2NrPC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5BdXRvIGV4cG9zdXJlIGxvY2s8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPC91bD4KKzxwPklmIGFueSBvZiB0aGUgYWJvdmUgM0EgYWxnb3JpdGhtcyBhcmUgZW5hYmxlZCw8d2JyLz4gdGhlbiB0aGUgY2FtZXJhCitkZXZpY2Ugd2lsbCBhY2N1cmF0ZWx5IHJlcG9ydCB0aGUgdmFsdWVzIGFwcGxpZWQgYnkgM0EgaW4gdGhlCityZXN1bHQuPHdici8+PC9wPgorPHA+QSBnaXZlbiBjYW1lcmEgZGV2aWNlIG1heSBhbHNvIHN1cHBvcnQgYWRkaXRpb25hbCBtYW51YWwgc2Vuc29yIGNvbnRyb2xzLDx3YnIvPgorYnV0IHRoaXMgY2FwYWJpbGl0eSBvbmx5IGNvdmVycyB0aGUgYWJvdmUgbGlzdCBvZiBjb250cm9scy48d2JyLz48L3A+Cis8cD5JZiB0aGlzIGlzIHN1cHBvcnRlZCw8d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5zdHJlYW1Db25maWd1cmF0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5zdHJlYW08d2JyLz5Db25maWd1cmF0aW9uPHdici8+TWFwPC9hPiB3aWxsCithZGRpdGlvbmFsbHkgcmV0dXJuIGEgbWluIGZyYW1lIGR1cmF0aW9uIHRoYXQgaXMgZ3JlYXRlciB0aGFuCit6ZXJvIGZvciBlYWNoIHN1cHBvcnRlZCBzaXplLWZvcm1hdCBjb21iaW5hdGlvbi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5NQU5VQUxfUE9TVF9QUk9DRVNTSU5HPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBwb3N0LXByb2Nlc3Npbmcgc3RhZ2VzIGNhbiBiZSBtYW51YWxseSBjb250cm9sbGVkLjx3YnIvPgorVGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgYmFzaWMgbWFudWFsIGNvbnRyb2wgb2YgdGhlIGltYWdlIHBvc3QtcHJvY2Vzc2luZworc3RhZ2VzLjx3YnIvPiBUaGlzIG1lYW5zIHRoZSBmb2xsb3dpbmcgY29udHJvbHMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgc3VwcG9ydGVkOjwvcD4KKzx1bD4KKzxsaT4KKzxwPk1hbnVhbCB0b25lbWFwIGNvbnRyb2w8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmdhbW1hIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Z2FtbWE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLnByZXNldEN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+cHJlc2V0PHdici8+Q3VydmU8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPgorPHA+TWFudWFsIHdoaXRlIGJhbGFuY2UgY29udHJvbDwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5NYW51YWwgbGVucyBzaGFkaW5nIG1hcCBjb250cm9sPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNoYWRpbmcubW9kZSI+YW5kcm9pZC48d2JyLz5zaGFkaW5nLjx3YnIvPm1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPHdici8+TW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5zaGFkaW5nTWFwU2l6ZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+c2hhZGluZzx3YnIvPk1hcDx3YnIvPlNpemU8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPk1hbnVhbCBhYmVycmF0aW9uIGNvcnJlY3Rpb24gY29udHJvbCAoaWYgYWJlcnJhdGlvbiBjb3JyZWN0aW9uIGlzIHN1cHBvcnRlZCk8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmFiZXJyYXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5hYmVycmF0aW9uPHdici8+TW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYXZhaWxhYmxlQWJlcnJhdGlvbk1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5hdmFpbGFibGU8d2JyLz5BYmVycmF0aW9uPHdici8+TW9kZXM8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPkF1dG8gd2hpdGUgYmFsYW5jZSBsb2NrPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPC91bD4KKzxwPklmIGF1dG8gd2hpdGUgYmFsYW5jZSBpcyBlbmFibGVkLDx3YnIvPiB0aGVuIHRoZSBjYW1lcmEgZGV2aWNlCit3aWxsIGFjY3VyYXRlbHkgcmVwb3J0IHRoZSB2YWx1ZXMgYXBwbGllZCBieSBBV0IgaW4gdGhlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5BIGdpdmVuIGNhbWVyYSBkZXZpY2UgbWF5IGFsc28gc3VwcG9ydCBhZGRpdGlvbmFsIHBvc3QtcHJvY2Vzc2luZworY29udHJvbHMsPHdici8+IGJ1dCB0aGlzIGNhcGFiaWxpdHkgb25seSBjb3ZlcnMgdGhlIGFib3ZlIGxpc3Qgb2YgY29udHJvbHMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkFXPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBvdXRwdXR0aW5nIFJBVyBidWZmZXJzIGFuZAorbWV0YWRhdGEgZm9yIGludGVycHJldGluZyB0aGVtLjx3YnIvPjwvcD4KKzxwPkRldmljZXMgc3VwcG9ydGluZyB0aGUgUkFXIGNhcGFiaWxpdHkgYWxsb3cgYm90aCBmb3IKK3NhdmluZyBETkcgZmlsZXMsPHdici8+IGFuZCBmb3IgZGlyZWN0IGFwcGxpY2F0aW9uIHByb2Nlc3Npbmcgb2YKK3JhdyBzZW5zb3IgaW1hZ2VzLjx3YnIvPjwvcD4KKzx1bD4KKzxsaT5SQVdfPHdici8+U0VOU09SIGlzIHN1cHBvcnRlZCBhcyBhbiBvdXRwdXQgZm9ybWF0Ljx3YnIvPjwvbGk+Cis8bGk+VGhlIG1heGltdW0gYXZhaWxhYmxlIHJlc29sdXRpb24gZm9yIFJBV188d2JyLz5TRU5TT1Igc3RyZWFtcworICB3aWxsIG1hdGNoIGVpdGhlciB0aGUgdmFsdWUgaW4KKyAgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiBvcgorICA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L2xpPgorPGxpPkFsbCBETkctcmVsYXRlZCBvcHRpb25hbCBtZXRhZGF0YSBlbnRyaWVzIGFyZSBwcm92aWRlZAorICBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L2xpPgorPC91bD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBSSVZBVEVfUkVQUk9DRVNTSU5HPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyB0aGUgWmVybyBTaHV0dGVyIExhZyByZXByb2Nlc3NpbmcgdXNlIGNhc2UuPHdici8+PC9wPgorPHVsPgorPGxpPk9uZSBpbnB1dCBzdHJlYW0gaXMgc3VwcG9ydGVkLDx3YnIvPiB0aGF0IGlzLDx3YnIvPiA8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1JbnB1dFN0cmVhbXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5JbnB1dDx3YnIvPlN0cmVhbXM8L2E+ID09IDE8L2NvZGU+Ljx3YnIvPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNQUklWQVRFIj5JbWFnZUZvcm1hdCNQUklWQVRFPC9hPiBpcyBzdXBwb3J0ZWQgYXMgYW4gb3V0cHV0Lzx3YnIvPmlucHV0IGZvcm1hdCw8d2JyLz4KKyAgdGhhdCBpcyw8d2JyLz4gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNQUklWQVRFIj5JbWFnZUZvcm1hdCNQUklWQVRFPC9hPiBpcyBpbmNsdWRlZCBpbiB0aGUgbGlzdHMgb2YKKyAgZm9ybWF0cyByZXR1cm5lZCBieSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0SW5wdXRGb3JtYXRzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldElucHV0Rm9ybWF0czwvYT4gYW5kIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRGb3JtYXRzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dEZvcm1hdHM8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldFZhbGlkT3V0cHV0Rm9ybWF0c0ZvcklucHV0Ij5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldFZhbGlkT3V0cHV0Rm9ybWF0c0ZvcklucHV0PC9hPgorICByZXR1cm5zIG5vbiBlbXB0eSBpbnRbXSBmb3IgZWFjaCBzdXBwb3J0ZWQgaW5wdXQgZm9ybWF0IHJldHVybmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRJbnB1dEZvcm1hdHMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0SW5wdXRGb3JtYXRzPC9hPi48d2JyLz48L2xpPgorPGxpPkVhY2ggc2l6ZSByZXR1cm5lZCBieSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0SW5wdXRTaXplcyI+Z2V0SW5wdXRTaXplcyhJbWFnZUZvcm1hdC48d2JyLz5QUklWQVRFKTwvYT4gaXMgYWxzbyBpbmNsdWRlZCBpbiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U2l6ZXMiPmdldE91dHB1dFNpemVzKEltYWdlRm9ybWF0Ljx3YnIvPlBSSVZBVEUpPC9hPjwvbGk+Cis8bGk+VXNpbmcgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNQUklWQVRFIj5JbWFnZUZvcm1hdCNQUklWQVRFPC9hPiBkb2VzIG5vdCBjYXVzZSBhIGZyYW1lIHJhdGUgZHJvcAorICByZWxhdGl2ZSB0byB0aGUgc2Vuc29yJ3MgbWF4aW11bSBjYXB0dXJlIHJhdGUgKGF0IHRoYXQgcmVzb2x1dGlvbikuPHdici8+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1BSSVZBVEUiPkltYWdlRm9ybWF0I1BSSVZBVEU8L2E+IHdpbGwgYmUgcmVwcm9jZXNzYWJsZSBpbnRvIGJvdGgKKyAgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+IGFuZAorICA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+IGZvcm1hdHMuPHdici8+PC9saT4KKzxsaT5UaGUgbWF4aW11bSBhdmFpbGFibGUgcmVzb2x1dGlvbiBmb3IgUFJJVkFURSBzdHJlYW1zCisgIChib3RoIGlucHV0Lzx3YnIvPm91dHB1dCkgd2lsbCBtYXRjaCB0aGUgbWF4aW11bSBhdmFpbGFibGUKKyAgcmVzb2x1dGlvbiBvZiBKUEVHIHN0cmVhbXMuPHdici8+PC9saT4KKzxsaT5TdGF0aWMgbWV0YWRhdGEgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcHJvY2Vzcy5tYXhDYXB0dXJlU3RhbGwiPmFuZHJvaWQuPHdici8+cmVwcm9jZXNzLjx3YnIvPm1heDx3YnIvPkNhcHR1cmU8d2JyLz5TdGFsbDwvYT4uPHdici8+PC9saT4KKzxsaT5Pbmx5IGJlbG93IGNvbnRyb2xzIGFyZSBlZmZlY3RpdmUgZm9yIHJlcHJvY2Vzc2luZyByZXF1ZXN0cyBhbmQKKyAgd2lsbCBiZSBwcmVzZW50IGluIGNhcHR1cmUgcmVzdWx0cyw8d2JyLz4gb3RoZXIgY29udHJvbHMgaW4gcmVwcm9jZXNzCisgIHJlcXVlc3RzIHdpbGwgYmUgaWdub3JlZCBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48dWw+Cis8bGk+YW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPio8L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+bW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPm1vZGU8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5hdmFpbGFibGVOb2lzZVJlZHVjdGlvbk1vZGVzIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk5vaXNlPHdici8+UmVkdWN0aW9uPHdici8+TW9kZXM8L2E+IGFuZAorICA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZWRnZS5hdmFpbGFibGVFZGdlTW9kZXMiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5hdmFpbGFibGU8d2JyLz5FZGdlPHdici8+TW9kZXM8L2E+IHdpbGwgYm90aCBsaXN0IFpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgYXMgYSBzdXBwb3J0ZWQgbW9kZS48d2JyLz48L2xpPgorPC91bD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlJFQURfU0VOU09SX1NFVFRJTkdTPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBhY2N1cmF0ZWx5IHJlcG9ydGluZyB0aGUgc2Vuc29yIHNldHRpbmdzIGZvciBtYW55IG9mCit0aGUgc2Vuc29yIGNvbnRyb2xzIHdoaWxlIHRoZSBidWlsdC1pbiAzQSBhbGdvcml0aG0gaXMgcnVubmluZy48d2JyLz4gIFRoaXMgYWxsb3dzCityZXBvcnRpbmcgb2Ygc2Vuc29yIHNldHRpbmdzIGV2ZW4gd2hlbiB0aGVzZSBzZXR0aW5ncyBjYW5ub3QgYmUgbWFudWFsbHkgY2hhbmdlZC48d2JyLz48L3A+Cis8cD5UaGUgdmFsdWVzIHJlcG9ydGVkIGZvciB0aGUgZm9sbG93aW5nIGNvbnRyb2xzIGFyZSBndWFyYW50ZWVkIHRvIGJlIGF2YWlsYWJsZQoraW4gdGhlIENhcHR1cmVSZXN1bHQsPHdici8+IGluY2x1ZGluZyB3aGVuIDNBIGlzIGVuYWJsZWQ6PC9wPgorPHVsPgorPGxpPkV4cG9zdXJlIGNvbnRyb2w8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5TZW5zaXRpdml0eSBjb250cm9sPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPkxlbnMgY29udHJvbHMgKGlmIHRoZSBsZW5zIGlzIGFkanVzdGFibGUpPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+YXBlcnR1cmU8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPC91bD4KKzxwPlRoaXMgY2FwYWJpbGl0eSBpcyBhIHN1YnNldCBvZiB0aGUgTUFOVUFMXzx3YnIvPlNFTlNPUiBjb250cm9sIGNhcGFiaWxpdHksPHdici8+IGFuZCB3aWxsCithbHdheXMgYmUgaW5jbHVkZWQgaWYgdGhlIE1BTlVBTF88d2JyLz5TRU5TT1IgY2FwYWJpbGl0eSBpcyBhdmFpbGFibGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QlVSU1RfQ0FQVFVSRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgY2FwdHVyaW5nIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXMgYXQgJmd0Oz0gMjAgZnJhbWVzIHBlcgorc2Vjb25kLDx3YnIvPiBpbiBhdCBsZWFzdCB0aGUgdW5jb21wcmVzc2VkIFlVViBmb3JtYXQsPHdici8+IHdoZW4gcG9zdC1wcm9jZXNzaW5nIHNldHRpbmdzIGFyZSBzZXQKK3RvIEZBU1QuPHdici8+IEFkZGl0aW9uYWxseSw8d2JyLz4gbWF4aW11bS1yZXNvbHV0aW9uIGltYWdlcyBjYW4gYmUgY2FwdHVyZWQgYXQgJmd0Oz0gMTAgZnJhbWVzCitwZXIgc2Vjb25kLjx3YnIvPiAgSGVyZSw8d2JyLz4gJ2hpZ2ggcmVzb2x1dGlvbicgbWVhbnMgYXQgbGVhc3QgOCBtZWdhcGl4ZWxzLDx3YnIvPiBvciB0aGUgbWF4aW11bQorcmVzb2x1dGlvbiBvZiB0aGUgZGV2aWNlLDx3YnIvPiB3aGljaGV2ZXIgaXMgc21hbGxlci48d2JyLz48L3A+Cis8cD5Nb3JlIHNwZWNpZmljYWxseSw8d2JyLz4gdGhpcyBtZWFucyB0aGF0IGEgc2l6ZSBtYXRjaGluZyB0aGUgY2FtZXJhIGRldmljZSdzIGFjdGl2ZSBhcnJheQorc2l6ZSBpcyBsaXN0ZWQgYXMgYSBzdXBwb3J0ZWQgc2l6ZSBmb3IgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPiBmb3JtYXQgaW4gZWl0aGVyIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRTaXplcyI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRTaXplczwvYT4gb3IgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldEhpZ2hSZXNvbHV0aW9uT3V0cHV0U2l6ZXMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0SGlnaFJlc29sdXRpb25PdXRwdXRTaXplczwvYT4sPHdici8+Cit3aXRoIGEgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBmb3IgdGhhdCBmb3JtYXQgYW5kIHNpemUgb2YgZWl0aGVyICZsdDs9IDEvPHdici8+MjAgcyw8d2JyLz4gb3IKKyZsdDs9IDEvPHdici8+MTAgcyw8d2JyLz4gcmVzcGVjdGl2ZWx5OyBhbmQgdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlVGFyZ2V0RnBzUmFuZ2VzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZXM8L2E+IGVudHJ5CitsaXN0cyBhdCBsZWFzdCBvbmUgRlBTIHJhbmdlIHdoZXJlIHRoZSBtaW5pbXVtIEZQUyBpcyAmZ3Q7PSAxIC88d2JyLz4gbWluaW11bUZyYW1lRHVyYXRpb24KK2ZvciB0aGUgbWF4aW11bS1zaXplIFlVVl88d2JyLz40MjBfPHdici8+ODg4IGZvcm1hdC48d2JyLz4gIElmIHRoYXQgbWF4aW11bSBzaXplIGlzIGxpc3RlZCBpbiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0SGlnaFJlc29sdXRpb25PdXRwdXRTaXplcyI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRIaWdoUmVzb2x1dGlvbk91dHB1dFNpemVzPC9hPiw8d2JyLz4KK3RoZW4gdGhlIGxpc3Qgb2YgcmVzb2x1dGlvbnMgZm9yIFlVVl88d2JyLz40MjBfPHdici8+ODg4IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFNpemVzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dFNpemVzPC9hPiBjb250YWlucyBhdAorbGVhc3Qgb25lIHJlc29sdXRpb24gJmd0Oz0gOCBtZWdhcGl4ZWxzLDx3YnIvPiB3aXRoIGEgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBvZiAmbHQ7PSAxLzx3YnIvPjIwCitzLjx3YnIvPjwvcD4KKzxwPklmIHRoZSBkZXZpY2Ugc3VwcG9ydHMgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUkFXMTAiPkltYWdlRm9ybWF0I1JBVzEwPC9hPiw8d2JyLz4gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVcxMiI+SW1hZ2VGb3JtYXQjUkFXMTI8L2E+LDx3YnIvPiB0aGVuIHRob3NlIGNhbiBhbHNvIGJlIGNhcHR1cmVkIGF0IHRoZSBzYW1lIHJhdGUKK2FzIHRoZSBtYXhpbXVtLXNpemUgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggcmVzb2x1dGlvbiBpcy48d2JyLz48L3A+Cis8cD5JZiB0aGUgZGV2aWNlIHN1cHBvcnRzIHRoZSBQUklWQVRFXzx3YnIvPlJFUFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGVuIHRoZSBzYW1lIGd1YXJhbnRlZXMKK2FzIGZvciB0aGUgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggZm9ybWF0IGFsc28gYXBwbHkgdG8gdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUFJJVkFURSI+SW1hZ2VGb3JtYXQjUFJJVkFURTwvYT4gZm9ybWF0Ljx3YnIvPjwvcD4KKzxwPkluIGFkZGl0aW9uLDx3YnIvPiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN5bmMubWF4TGF0ZW5jeSI+YW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPm1heDx3YnIvPkxhdGVuY3k8L2E+IGZpZWxkIGlzIGd1YXJhbnRlZCB0byBoYXZlIGEgdmFsdWUgYmV0d2VlbiAwCithbmQgNCw8d2JyLz4gaW5jbHVzaXZlLjx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUxvY2tBdmFpbGFibGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8d2JyLz5BdmFpbGFibGU8L2E+IGFuZCA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrQXZhaWxhYmxlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazx3YnIvPkF2YWlsYWJsZTwvYT4KK2FyZSBhbHNvIGd1YXJhbnRlZWQgdG8gYmUgPGNvZGU+dHJ1ZTwvY29kZT4gc28gYnVyc3QgY2FwdHVyZSB3aXRoIHRoZXNlIHR3byBsb2NrcyBPTiB5aWVsZHMKK2NvbnNpc3RlbnQgaW1hZ2Ugb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPllVVl9SRVBST0NFU1NJTkc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIHRoZSBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCByZXByb2Nlc3NpbmcgdXNlIGNhc2UsPHdici8+IHNpbWlsYXIgYXMKK1BSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HLDx3YnIvPiBUaGlzIGNhcGFiaWxpdHkgcmVxdWlyZXMgdGhlIGNhbWVyYSBkZXZpY2UgdG8gc3VwcG9ydCB0aGUKK2ZvbGxvd2luZzo8L3A+Cis8dWw+Cis8bGk+T25lIGlucHV0IHN0cmVhbSBpcyBzdXBwb3J0ZWQsPHdici8+IHRoYXQgaXMsPHdici8+IDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bUlucHV0U3RyZWFtcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1heDx3YnIvPk51bTx3YnIvPklucHV0PHdici8+U3RyZWFtczwvYT4gPT0gMTwvY29kZT4uPHdici8+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5JbWFnZTx3YnIvPkZvcm1hdCNZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT4gaXMgc3VwcG9ydGVkIGFzIGFuIG91dHB1dC88d2JyLz5pbnB1dCBmb3JtYXQsPHdici8+IHRoYXQgaXMsPHdici8+CisgIFlVVl88d2JyLz40MjBfPHdici8+ODg4IGlzIGluY2x1ZGVkIGluIHRoZSBsaXN0cyBvZiBmb3JtYXRzIHJldHVybmVkIGJ5CisgIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRJbnB1dEZvcm1hdHMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0SW5wdXRGb3JtYXRzPC9hPiBhbmQKKyAgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dEZvcm1hdHMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0Rm9ybWF0czwvYT4uPHdici8+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0VmFsaWRPdXRwdXRGb3JtYXRzRm9ySW5wdXQiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0VmFsaWRPdXRwdXRGb3JtYXRzRm9ySW5wdXQ8L2E+CisgIHJldHVybnMgbm9uLWVtcHR5IGludFtdIGZvciBlYWNoIHN1cHBvcnRlZCBpbnB1dCBmb3JtYXQgcmV0dXJuZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldElucHV0Rm9ybWF0cyI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRJbnB1dEZvcm1hdHM8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+RWFjaCBzaXplIHJldHVybmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRJbnB1dFNpemVzIj5nZXQ8d2JyLz5JbnB1dDx3YnIvPlNpemVzKFlVVl88d2JyLz40MjBfPHdici8+ODg4KTwvYT4gaXMgYWxzbyBpbmNsdWRlZCBpbiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U2l6ZXMiPmdldDx3YnIvPk91dHB1dDx3YnIvPlNpemVzKFlVVl88d2JyLz40MjBfPHdici8+ODg4KTwvYT48L2xpPgorPGxpPlVzaW5nIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPiBkb2VzIG5vdCBjYXVzZSBhIGZyYW1lIHJhdGUgZHJvcAorICByZWxhdGl2ZSB0byB0aGUgc2Vuc29yJ3MgbWF4aW11bSBjYXB0dXJlIHJhdGUgKGF0IHRoYXQgcmVzb2x1dGlvbikuPHdici8+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5JbWFnZTx3YnIvPkZvcm1hdCNZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT4gd2lsbCBiZSByZXByb2Nlc3NhYmxlIGludG8gYm90aAorICA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5JbWFnZTx3YnIvPkZvcm1hdCNZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT4gYW5kIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT4gZm9ybWF0cy48d2JyLz48L2xpPgorPGxpPlRoZSBtYXhpbXVtIGF2YWlsYWJsZSByZXNvbHV0aW9uIGZvciA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5JbWFnZTx3YnIvPkZvcm1hdCNZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT4gc3RyZWFtcyAoYm90aCBpbnB1dC88d2JyLz5vdXRwdXQpIHdpbGwgbWF0Y2ggdGhlCisgIG1heGltdW0gYXZhaWxhYmxlIHJlc29sdXRpb24gb2YgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNKUEVHIj5JbWFnZUZvcm1hdCNKUEVHPC9hPiBzdHJlYW1zLjx3YnIvPjwvbGk+Cis8bGk+U3RhdGljIG1ldGFkYXRhIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXByb2Nlc3MubWF4Q2FwdHVyZVN0YWxsIj5hbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5tYXg8d2JyLz5DYXB0dXJlPHdici8+U3RhbGw8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+T25seSB0aGUgYmVsb3cgY29udHJvbHMgYXJlIGVmZmVjdGl2ZSBmb3IgcmVwcm9jZXNzaW5nIHJlcXVlc3RzIGFuZCB3aWxsIGJlIHByZXNlbnQKKyAgaW4gY2FwdHVyZSByZXN1bHRzLjx3YnIvPiBUaGUgcmVwcm9jZXNzIHJlcXVlc3RzIGFyZSBmcm9tIHRoZSBvcmlnaW5hbCBjYXB0dXJlIHJlc3VsdHMgdGhhdAorICBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBpbnRlcm1lZGlhdGUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+CisgIG91dHB1dCBidWZmZXJzLjx3YnIvPiAgQWxsIG90aGVyIGNvbnRyb2xzIGluIHRoZSByZXByb2Nlc3MgcmVxdWVzdHMgd2lsbCBiZSBpZ25vcmVkIGJ5IHRoZQorICBjYW1lcmEgZGV2aWNlLjx3YnIvPjx1bD4KKzxsaT5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+KjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5tb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZWRnZS5tb2RlIj5hbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+bW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+YW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+ZWZmZWN0aXZlPHdici8+RXhwb3N1cmU8d2JyLz5GYWN0b3I8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5hdmFpbGFibGVOb2lzZVJlZHVjdGlvbk1vZGVzIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk5vaXNlPHdici8+UmVkdWN0aW9uPHdici8+TW9kZXM8L2E+IGFuZAorICA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZWRnZS5hdmFpbGFibGVFZGdlTW9kZXMiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5hdmFpbGFibGU8d2JyLz5FZGdlPHdici8+TW9kZXM8L2E+IHdpbGwgYm90aCBsaXN0IFpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgYXMgYSBzdXBwb3J0ZWQgbW9kZS48d2JyLz48L2xpPgorPC91bD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRFUFRIX09VVFBVVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UgY2FuIHByb2R1Y2UgZGVwdGggbWVhc3VyZW1lbnRzIGZyb20gaXRzIGZpZWxkIG9mIHZpZXcuPHdici8+PC9wPgorPHA+VGhpcyBjYXBhYmlsaXR5IHJlcXVpcmVzIHRoZSBjYW1lcmEgZGV2aWNlIHRvIHN1cHBvcnQgdGhlIGZvbGxvd2luZzo8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNERVBUSDE2Ij5JbWFnZUZvcm1hdCNERVBUSDE2PC9hPiBpcyBzdXBwb3J0ZWQgYXMgYW4gb3V0cHV0IGZvcm1hdC48d2JyLz48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjREVQVEhfUE9JTlRfQ0xPVUQiPkltYWdlPHdici8+Rm9ybWF0I0RFUFRIXzx3YnIvPlBPSU5UXzx3YnIvPkNMT1VEPC9hPiBpcyBvcHRpb25hbGx5IHN1cHBvcnRlZCBhcyBhbgorICBvdXRwdXQgZm9ybWF0Ljx3YnIvPjwvbGk+Cis8bGk+VGhpcyBjYW1lcmEgZGV2aWNlLDx3YnIvPiBhbmQgYWxsIGNhbWVyYSBkZXZpY2VzIHdpdGggdGhlIHNhbWUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuZmFjaW5nIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmFjaW5nPC9hPiw8d2JyLz4KKyAgd2lsbCBsaXN0IHRoZSBmb2xsb3dpbmcgY2FsaWJyYXRpb24gZW50cmllcyBpbiBib3RoCisgIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzLmh0bWwiPkNhbWVyYUNoYXJhY3RlcmlzdGljczwvYT4gYW5kCisgIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FwdHVyZVJlc3VsdC5odG1sIj5DYXB0dXJlUmVzdWx0PC9hPjo8dWw+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVRyYW5zbGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlRyYW5zbGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlJvdGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uPC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5UaGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmRlcHRoLmRlcHRoSXNFeGNsdXNpdmUiPmFuZHJvaWQuPHdici8+ZGVwdGguPHdici8+ZGVwdGg8d2JyLz5Jczx3YnIvPkV4Y2x1c2l2ZTwvYT4gZW50cnkgaXMgbGlzdGVkIGJ5IHRoaXMgZGV2aWNlLjx3YnIvPjwvbGk+Cis8bGk+QSBMSU1JVEVEIGNhbWVyYSB3aXRoIG9ubHkgdGhlIERFUFRIXzx3YnIvPk9VVFBVVCBjYXBhYmlsaXR5IGRvZXMgbm90IGhhdmUgdG8gc3VwcG9ydAorICBub3JtYWwgWVVWXzx3YnIvPjQyMF88d2JyLz44ODgsPHdici8+IEpQRUcsPHdici8+IGFuZCBQUklWLWZvcm1hdCBvdXRwdXRzLjx3YnIvPiBJdCBvbmx5IGhhcyB0byBzdXBwb3J0IHRoZSBERVBUSDE2CisgIGZvcm1hdC48d2JyLz48L2xpPgorPC91bD4KKzxwPkdlbmVyYWxseSw8d2JyLz4gZGVwdGggb3V0cHV0IG9wZXJhdGVzIGF0IGEgc2xvd2VyIGZyYW1lIHJhdGUgdGhhbiBzdGFuZGFyZCBjb2xvciBjYXB0dXJlLDx3YnIvPgorc28gdGhlIERFUFRIMTYgYW5kIERFUFRIXzx3YnIvPlBPSU5UXzx3YnIvPkNMT1VEIGZvcm1hdHMgd2lsbCBjb21tb25seSBoYXZlIGEgc3RhbGwgZHVyYXRpb24gdGhhdAorc2hvdWxkIGJlIGFjY291bnRlZCBmb3IgKHNlZQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbjwvYT4pLjx3YnIvPgorT24gYSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBib3RoIGRlcHRoIGFuZCBjb2xvci1iYXNlZCBvdXRwdXQsPHdici8+IHRvIGVuYWJsZSBzbW9vdGggcHJldmlldyw8d2JyLz4KK3VzaW5nIGEgcmVwZWF0aW5nIGJ1cnN0IGlzIHJlY29tbWVuZGVkLDx3YnIvPiB3aGVyZSBhIGRlcHRoLW91dHB1dCB0YXJnZXQgaXMgb25seSBpbmNsdWRlZAorb25jZSBldmVyeSBOIGZyYW1lcyw8d2JyLz4gd2hlcmUgTiBpcyB0aGUgcmF0aW8gYmV0d2VlbiBwcmV2aWV3IG91dHB1dCByYXRlIGFuZCBkZXB0aCBvdXRwdXQKK3JhdGUsPHdici8+IGluY2x1ZGluZyBkZXB0aCBzdGFsbCB0aW1lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNPTlNUUkFJTkVEX0hJR0hfU1BFRURfVklERU88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBkZXZpY2Ugc3VwcG9ydHMgY29uc3RyYWluZWQgaGlnaCBzcGVlZCB2aWRlbyByZWNvcmRpbmcgKGZyYW1lIHJhdGUgJmd0Oz0xMjBmcHMpCit1c2UgY2FzZS48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBzdXBwb3J0IGhpZ2ggc3BlZWQgY2FwdHVyZSBzZXNzaW9uIGNyZWF0ZWQgYnkKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb248L2E+LDx3YnIvPiB3aGljaAorb25seSBhY2NlcHRzIGhpZ2ggc3BlZWQgcmVxdWVzdCBsaXN0cyBjcmVhdGVkIGJ5Cis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24uaHRtbCNjcmVhdGVIaWdoU3BlZWRSZXF1ZXN0TGlzdCI+Q2FtZXJhQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiNjcmVhdGVIaWdoU3BlZWRSZXF1ZXN0TGlzdDwvYT4uPHdici8+PC9wPgorPHA+QSBjYW1lcmEgZGV2aWNlIGNhbiBzdGlsbCBzdXBwb3J0IGhpZ2ggc3BlZWQgdmlkZW8gc3RyZWFtaW5nIGJ5IGFkdmVydGlzaW5nIHRoZSBoaWdoIHNwZWVkCitGUFMgcmFuZ2VzIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlVGFyZ2V0RnBzUmFuZ2VzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZXM8L2E+Ljx3YnIvPiBGb3IgdGhpcyBjYXNlLDx3YnIvPiBhbGwgbm9ybWFsCitjYXB0dXJlIHJlcXVlc3QgcGVyIGZyYW1lIGNvbnRyb2wgYW5kIHN5bmNocm9uaXphdGlvbiByZXF1aXJlbWVudHMgd2lsbCBhcHBseSB0bwordGhlIGhpZ2ggc3BlZWQgZnBzIHJhbmdlcyw8d2JyLz4gdGhlIHNhbWUgYXMgYWxsIG90aGVyIGZwcyByYW5nZXMuPHdici8+IFRoaXMgY2FwYWJpbGl0eSBkZXNjcmliZXMKK3RoZSBjYXBhYmlsaXR5IG9mIGEgc3BlY2lhbGl6ZWQgb3BlcmF0aW5nIG1vZGUgd2l0aCBtYW55IGxpbWl0YXRpb25zIChzZWUgYmVsb3cpLDx3YnIvPiB3aGljaAoraXMgb25seSB0YXJnZXRlZCBhdCBoaWdoIHNwZWVkIHZpZGVvIHJlY29yZGluZy48d2JyLz48L3A+Cis8cD5UaGUgc3VwcG9ydGVkIGhpZ2ggc3BlZWQgdmlkZW8gc2l6ZXMgYW5kIGZwcyByYW5nZXMgYXJlIHNwZWNpZmllZCBpbgorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldEhpZ2hTcGVlZFZpZGVvRnBzUmFuZ2VzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldEhpZ2hTcGVlZFZpZGVvRnBzUmFuZ2VzPC9hPi48d2JyLz4KK1RvIGdldCBkZXNpcmVkIG91dHB1dCBmcmFtZSByYXRlcyw8d2JyLz4gdGhlIGFwcGxpY2F0aW9uIGlzIG9ubHkgYWxsb3dlZCB0byBzZWxlY3QgdmlkZW8gc2l6ZQorYW5kIEZQUyByYW5nZSBjb21iaW5hdGlvbnMgcHJvdmlkZWQgYnkKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRIaWdoU3BlZWRWaWRlb1NpemVzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldEhpZ2hTcGVlZFZpZGVvU2l6ZXM8L2E+Ljx3YnIvPgorVGhlIGZwcyByYW5nZSBjYW4gYmUgY29udHJvbGxlZCB2aWEgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZTwvYT4uPHdici8+PC9wPgorPHA+SW4gdGhpcyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIG92ZXJyaWRlIGFlTW9kZSw8d2JyLz4gYXdiTW9kZSw8d2JyLz4gYW5kIGFmTW9kZSB0bworT04sPHdici8+IEFVVE8sPHdici8+IGFuZCBDT05USU5VT1VTXzx3YnIvPlZJREVPLDx3YnIvPiByZXNwZWN0aXZlbHkuPHdici8+IEFsbCBwb3N0LXByb2Nlc3NpbmcgYmxvY2sgbW9kZQorY29udHJvbHMgd2lsbCBiZSBvdmVycmlkZGVuIHRvIGJlIEZBU1QuPHdici8+IFRoZXJlZm9yZSw8d2JyLz4gbm8gbWFudWFsIGNvbnRyb2wgb2YgY2FwdHVyZQorYW5kIHBvc3QtcHJvY2Vzc2luZyBwYXJhbWV0ZXJzIGlzIHBvc3NpYmxlLjx3YnIvPiBBbGwgb3RoZXIgY29udHJvbHMgb3BlcmF0ZSB0aGUKK3NhbWUgYXMgd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9PSBBVVRPLjx3YnIvPiBUaGlzIG1lYW5zIHRoYXQgYWxsIG90aGVyCithbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBmaWVsZHMgY29udGludWUgdG8gd29yayw8d2JyLz4gc3VjaCBhczwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmVmZmVjdDx3YnIvPk1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UmVnaW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5SZWdpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+UmVnaW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT48L2xpPgorPC91bD4KKzxwPk91dHNpZGUgb2YgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiosPHdici8+IHRoZSBmb2xsb3dpbmcgY29udHJvbHMgd2lsbCB3b3JrOjwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5mbGFzaC5tb2RlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPm1vZGU8L2E+IChUT1JDSCBtb2RlIG9ubHksPHdici8+IGF1dG9tYXRpYyBmbGFzaCBmb3Igc3RpbGwgY2FwdHVyZSB3aWxsIG5vdAord29yayBzaW5jZSBhZU1vZGUgaXMgT04pPC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPm9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT4gKGlmIGl0IGlzIHN1cHBvcnRlZCk8L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlPC9hPiAoaWYgaXQgaXMgc3VwcG9ydGVkKTwvbGk+Cis8L3VsPgorPHA+Rm9yIGhpZ2ggc3BlZWQgcmVjb3JkaW5nIHVzZSBjYXNlLDx3YnIvPiB0aGUgYWN0dWFsIG1heGltdW0gc3VwcG9ydGVkIGZyYW1lIHJhdGUgbWF5CitiZSBsb3dlciB0aGFuIHdoYXQgY2FtZXJhIGNhbiBvdXRwdXQsPHdici8+IGRlcGVuZGluZyBvbiB0aGUgZGVzdGluYXRpb24gU3VyZmFjZXMgZm9yCit0aGUgaW1hZ2UgZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBkZXN0aW5hdGlvbiBzdXJmYWNlIGlzIGZyb20gdmlkZW8gZW5jb2Rlciw8d2JyLz4KK3RoZSBhcHBsaWNhdGlvbiBuZWVkIGNoZWNrIGlmIHRoZSB2aWRlbyBlbmNvZGVyIGlzIGNhcGFibGUgb2Ygc3VwcG9ydGluZyB0aGUKK2hpZ2ggZnJhbWUgcmF0ZSBmb3IgYSBnaXZlbiB2aWRlbyBzaXplLDx3YnIvPiBvciBpdCB3aWxsIGVuZCB1cCB3aXRoIGxvd2VyIHJlY29yZGluZworZnJhbWUgcmF0ZS48d2JyLz4gSWYgdGhlIGRlc3RpbmF0aW9uIHN1cmZhY2UgaXMgZnJvbSBwcmV2aWV3IHdpbmRvdyw8d2JyLz4gdGhlIGFjdHVhbCBwcmV2aWV3IGZyYW1lCityYXRlIHdpbGwgYmUgYm91bmRlZCBieSB0aGUgc2NyZWVuIHJlZnJlc2ggcmF0ZS48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIG9ubHkgc3VwcG9ydCB1cCB0byAyIGhpZ2ggc3BlZWQgc2ltdWx0YW5lb3VzIG91dHB1dCBzdXJmYWNlcworKHByZXZpZXcgYW5kIHJlY29yZGluZyBzdXJmYWNlcykKK2luIHRoaXMgbW9kZS48d2JyLz4gQWJvdmUgY29udHJvbHMgd2lsbCBiZSBlZmZlY3RpdmUgb25seSBpZiBhbGwgb2YgYmVsb3cgY29uZGl0aW9ucyBhcmUgdHJ1ZTo8L3A+Cis8dWw+Cis8bGk+VGhlIGFwcGxpY2F0aW9uIGNyZWF0ZXMgYSBjYW1lcmEgY2FwdHVyZSBzZXNzaW9uIHdpdGggbm8gbW9yZSB0aGFuIDIgc3VyZmFjZXMgdmlhCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24iPkNhbWVyYURldmljZSNjcmVhdGVDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uPC9hPi48d2JyLz4gVGhlCit0YXJnZXRlZCBzdXJmYWNlcyBtdXN0IGJlIHByZXZpZXcgc3VyZmFjZSAoZWl0aGVyIGZyb20KKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL3ZpZXcvU3VyZmFjZVZpZXcuaHRtbCI+U3VyZmFjZVZpZXc8L2E+IG9yIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL1N1cmZhY2VUZXh0dXJlLmh0bWwiPlN1cmZhY2VUZXh0dXJlPC9hPikgb3IKK3JlY29yZGluZyBzdXJmYWNlKGVpdGhlciBmcm9tIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL21lZGlhL01lZGlhUmVjb3JkZXIuaHRtbCNnZXRTdXJmYWNlIj5NZWRpYVJlY29yZGVyI2dldFN1cmZhY2U8L2E+IG9yCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9NZWRpYUNvZGVjLmh0bWwjY3JlYXRlSW5wdXRTdXJmYWNlIj5NZWRpYUNvZGVjI2NyZWF0ZUlucHV0U3VyZmFjZTwvYT4pLjx3YnIvPjwvbGk+Cis8bGk+VGhlIHN0cmVhbSBzaXplcyBhcmUgc2VsZWN0ZWQgZnJvbSB0aGUgc2l6ZXMgcmVwb3J0ZWQgYnkKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRIaWdoU3BlZWRWaWRlb1NpemVzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldEhpZ2hTcGVlZFZpZGVvU2l6ZXM8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+VGhlIEZQUyByYW5nZXMgYXJlIHNlbGVjdGVkIGZyb20KKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRIaWdoU3BlZWRWaWRlb0Zwc1JhbmdlcyI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRIaWdoU3BlZWRWaWRlb0Zwc1JhbmdlczwvYT4uPHdici8+PC9saT4KKzwvdWw+Cis8cD5XaGVuIGFib3ZlIGNvbmRpdGlvbnMgYXJlIE5PVCBzYXRpc3RpZWQsPHdici8+Cis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24iPkNhbWVyYURldmljZSNjcmVhdGVDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uPC9hPgord2lsbCBmYWlsLjx3YnIvPjwvcD4KKzxwPlN3aXRjaGluZyB0byBhIEZQUyByYW5nZSB0aGF0IGhhcyBkaWZmZXJlbnQgbWF4aW11bSBGUFMgbWF5IHRyaWdnZXIgc29tZSBjYW1lcmEgZGV2aWNlCityZWNvbmZpZ3VyYXRpb25zLDx3YnIvPiB3aGljaCBtYXkgaW50cm9kdWNlIGV4dHJhIGxhdGVuY3kuPHdici8+IEl0IGlzIHJlY29tbWVuZGVkIHRoYXQKK3RoZSBhcHBsaWNhdGlvbiBhdm9pZHMgdW5uZWNlc3NhcnkgbWF4aW11bSB0YXJnZXQgRlBTIGNoYW5nZXMgYXMgbXVjaCBhcyBwb3NzaWJsZQorZHVyaW5nIGhpZ2ggc3BlZWQgc3RyZWFtaW5nLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgY2FwYWJpbGl0aWVzIHRoYXQgdGhpcyBjYW1lcmEgZGV2aWNlCithZHZlcnRpc2VzIGFzIGZ1bGx5IHN1cHBvcnRpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QSBjYXBhYmlsaXR5IGlzIGEgY29udHJhY3QgdGhhdCB0aGUgY2FtZXJhIGRldmljZSBtYWtlcyBpbiBvcmRlcgordG8gYmUgYWJsZSB0byBzYXRpc2Z5IG9uZSBvciBtb3JlIHVzZSBjYXNlcy48d2JyLz48L3A+Cis8cD5MaXN0aW5nIGEgY2FwYWJpbGl0eSBndWFyYW50ZWVzIHRoYXQgdGhlIHdob2xlIHNldCBvZiBmZWF0dXJlcworcmVxdWlyZWQgdG8gc3VwcG9ydCBhIGNvbW1vbiB1c2Ugd2lsbCBhbGwgYmUgYXZhaWxhYmxlLjx3YnIvPjwvcD4KKzxwPlVzaW5nIGEgc3Vic2V0IG9mIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IGFuIHVuc3VwcG9ydGVkCitjYXBhYmlsaXR5IG1heSBiZSBwb3NzaWJsZSBvbiBhIHNwZWNpZmljIGNhbWVyYSBkZXZpY2UgaW1wbGVtZW50YXRpb247Cit0byBkbyB0aGlzIHF1ZXJ5IGVhY2ggb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlUmVxdWVzdEtleXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5SZXF1ZXN0PHdici8+S2V5czwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXN1bHRLZXlzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+UmVzdWx0PHdici8+S2V5czwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDaGFyYWN0ZXJpc3RpY3NLZXlzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2hhcmFjdGVyaXN0aWNzPHdici8+S2V5czwvYT4uPHdici8+PC9wPgorPHA+VGhlIGZvbGxvd2luZyBjYXBhYmlsaXRpZXMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgYXZhaWxhYmxlIG9uCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPGNvZGU+PT08L2NvZGU+IEZVTEwgZGV2aWNlczo8L3A+Cis8dWw+Cis8bGk+TUFOVUFMXzx3YnIvPlNFTlNPUjwvbGk+Cis8bGk+TUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORzwvbGk+Cis8L3VsPgorPHA+T3RoZXIgY2FwYWJpbGl0aWVzIG1heSBiZSBhdmFpbGFibGUgb24gZWl0aGVyIEZVTEwgb3IgTElNSVRFRAorZGV2aWNlcyw8d2JyLz4gYnV0IHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgcXVlcnkgdGhpcyBrZXkgdG8gYmUgc3VyZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFkZGl0aW9uYWwgY29uc3RyYWludCBkZXRhaWxzIHBlci1jYXBhYmlsaXR5IHdpbGwgYmUgYXZhaWxhYmxlCitpbiB0aGUgQ29tcGF0aWJpbGl0eSBUZXN0IFN1aXRlLjx3YnIvPjwvcD4KKzxwPk1pbmltdW0gYmFzZWxpbmUgcmVxdWlyZW1lbnRzIHJlcXVpcmVkIGZvciB0aGUKK0JBQ0tXQVJEXzx3YnIvPkNPTVBBVElCTEUgY2FwYWJpbGl0eSBhcmUgbm90IGV4cGxpY2l0bHkgbGlzdGVkLjx3YnIvPgorSW5zdGVhZCByZWZlciB0byAiQkMiIHRhZ3MgYW5kIHRoZSBjYW1lcmEgQ1RTIHRlc3RzIGluIHRoZQorYW5kcm9pZC48d2JyLz5oYXJkd2FyZS48d2JyLz5jYW1lcmEyLjx3YnIvPmN0cyBwYWNrYWdlLjx3YnIvPjwvcD4KKzxwPkxpc3RlZCBjb250cm9scyB0aGF0IGNhbiBiZSBlaXRoZXIgcmVxdWVzdCBvciByZXN1bHQgKGUuPHdici8+Zy48d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4pIG11c3QgYmUgYXZhaWxhYmxlIGJvdGggaW4gdGhlCityZXF1ZXN0IGFuZCB0aGUgcmVzdWx0IGluIG9yZGVyIHRvIGJlIGNvbnNpZGVyZWQgdG8gYmUKK2NhcGFiaWxpdHktY29tcGxpYW50Ljx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgSEFMIGNsYWltcyB0byBzdXBwb3J0IE1BTlVBTCBjb250cm9sLDx3YnIvPgordGhlbiBleHBvc3VyZSB0aW1lIG11c3QgYmUgY29uZmlndXJhYmxlIHZpYSB0aGUgcmVxdWVzdCA8ZW0+YW5kPC9lbT4KK3RoZSBhY3R1YWwgZXhwb3N1cmUgYXBwbGllZCBtdXN0IGJlIGF2YWlsYWJsZSB2aWEKK3RoZSByZXN1bHQuPHdici8+PC9wPgorPHA+SWYgTUFOVUFMXzx3YnIvPlNFTlNPUiBpcyBvbWl0dGVkLDx3YnIvPiB0aGUgSEFMIG1heSBjaG9vc2UgdG8gb21pdCB0aGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWluRnJhbWVEdXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk1pbjx3YnIvPkZyYW1lPHdici8+RHVyYXRpb25zPC9hPiBzdGF0aWMgcHJvcGVydHkgZW50aXJlbHkuPHdici8+PC9wPgorPHA+Rm9yIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIGFuZCBZVVZfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdGllcyw8d2JyLz4gc2VlCitoYXJkd2FyZS88d2JyLz5saWJoYXJkd2FyZS88d2JyLz5pbmNsdWRlLzx3YnIvPmhhcmR3YXJlLzx3YnIvPmNhbWVyYTMuPHdici8+aCBTZWN0aW9uIDEwIGZvciBtb3JlIGluZm9ybWF0aW9uLjx3YnIvPjwvcD4KKzxwPkRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+U0VOU09SIGNhcGFiaWxpdHkgbXVzdCBzdXBwb3J0IHRoZQorQ0FNRVJBM188d2JyLz5URU1QTEFURV88d2JyLz5NQU5VQUwgdGVtcGxhdGUgZGVmaW5lZCBpbiBjYW1lcmEzLjx3YnIvPmguPHdici8+PC9wPgorPHA+RGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdHkgb3IgdGhlCitZVVZfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdHkgbXVzdCBzdXBwb3J0IHRoZQorQ0FNRVJBM188d2JyLz5URU1QTEFURV88d2JyLz5aRVJPXzx3YnIvPlNIVVRURVJfPHdici8+TEFHIHRlbXBsYXRlIGRlZmluZWQgaW4gY2FtZXJhMy48d2JyLz5oLjx3YnIvPjwvcD4KKzxwPkZvciBERVBUSF88d2JyLz5PVVRQVVQsPHdici8+IHRoZSBkZXB0aC1mb3JtYXQga2V5cworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoU3RyZWFtQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+ZGVwdGguPHdici8+YXZhaWxhYmxlPHdici8+RGVwdGg8d2JyLz5TdHJlYW08d2JyLz5Db25maWd1cmF0aW9uczwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhNaW5GcmFtZUR1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5kZXB0aC48d2JyLz5hdmFpbGFibGU8d2JyLz5EZXB0aDx3YnIvPk1pbjx3YnIvPkZyYW1lPHdici8+RHVyYXRpb25zPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aFN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLjx3YnIvPmRlcHRoLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkRlcHRoPHdici8+U3RhbGw8d2JyLz5EdXJhdGlvbnM8L2E+IG11c3QgYmUgYXZhaWxhYmxlLDx3YnIvPiBpbgorYWRkaXRpb24gdG8gdGhlIG90aGVyIGtleXMgZXhwbGljaXRseSBtZW50aW9uZWQgaW4gdGhlIERFUFRIXzx3YnIvPk9VVFBVVAorZW51bSBub3Rlcy48d2JyLz4gVGhlIGVudHJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5tYXhEZXB0aFNhbXBsZXMiPmFuZHJvaWQuPHdici8+ZGVwdGguPHdici8+bWF4PHdici8+RGVwdGg8d2JyLz5TYW1wbGVzPC9hPiBtdXN0IGJlIGF2YWlsYWJsZQoraWYgdGhlIERFUFRIXzx3YnIvPlBPSU5UXzx3YnIvPkNMT1VEIGZvcm1hdCBpcyBzdXBwb3J0ZWQgKEhBTCBwaXhlbCBmb3JtYXQgQkxPQiw8d2JyLz4gZGF0YXNwYWNlCitERVBUSCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXF1ZXN0S2V5cyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+UmVxdWVzdDx3YnIvPktleXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbGlzdCBvZiBhbGwga2V5cyB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIGhhcyBhdmFpbGFibGUKK3RvIHVzZSB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FwdHVyZVJlcXVlc3QuaHRtbCI+Q2FwdHVyZVJlcXVlc3Q8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkF0dGVtcHRpbmcgdG8gc2V0IGEga2V5IGludG8gYSBDYXB0dXJlUmVxdWVzdCB0aGF0IGlzIG5vdAorbGlzdGVkIGhlcmUgd2lsbCByZXN1bHQgaW4gYW4gaW52YWxpZCByZXF1ZXN0IGFuZCB3aWxsIGJlIHJlamVjdGVkCitieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5UaGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHF1ZXJ5IHRoZSBmZWF0dXJlIHNldCBvZiBhIGNhbWVyYSBkZXZpY2UKK2F0IGEgbW9yZSBncmFudWxhciBsZXZlbCB0aGFuIGNhcGFiaWxpdGllcy48d2JyLz4gVGhpcyBpcyBlc3BlY2lhbGx5CitpbXBvcnRhbnQgZm9yIG9wdGlvbmFsIGtleXMgdGhhdCBhcmUgbm90IGxpc3RlZCB1bmRlciBhbnkgY2FwYWJpbGl0eQoraW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlZlbmRvciB0YWdzIG11c3Qgbm90IGJlIGxpc3RlZCBoZXJlLjx3YnIvPiBVc2UgdGhlIHZlbmRvciB0YWcgbWV0YWRhdGEKK2V4dGVuc2lvbnMgQyBhcGkgaW5zdGVhZCAocmVmZXIgdG8gY2FtZXJhMy48d2JyLz5oIGZvciBtb3JlIGRldGFpbHMpLjx3YnIvPjwvcD4KKzxwPlNldHRpbmcvPHdici8+Z2V0dGluZyB2ZW5kb3IgdGFncyB3aWxsIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgbWV0YWRhdGEKK3ZlbmRvciBleHRlbnNpb25zIEFQSSBhbmQgbm90IGFnYWluc3QgdGhpcyBmaWVsZC48d2JyLz48L3A+Cis8cD5UaGUgSEFMIG11c3Qgbm90IGNvbnN1bWUgYW55IHJlcXVlc3QgdGFncyB0aGF0IGFyZSBub3QgbGlzdGVkIGVpdGhlcgoraGVyZSBvciBpbiB0aGUgdmVuZG9yIHRhZyBsaXN0Ljx3YnIvPjwvcD4KKzxwPlRoZSBwdWJsaWMgY2FtZXJhMiBBUEkgd2lsbCBhbHdheXMgbWFrZSB0aGUgdmVuZG9yIHRhZ3MgdmlzaWJsZQordmlhCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYUNoYXJhY3RlcmlzdGljcy5odG1sI2dldEF2YWlsYWJsZUNhcHR1cmVSZXF1ZXN0S2V5cyI+Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzI2dldEF2YWlsYWJsZUNhcHR1cmVSZXF1ZXN0S2V5czwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXN1bHRLZXlzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5SZXN1bHQ8d2JyLz5LZXlzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIGxpc3Qgb2YgYWxsIGtleXMgdGhhdCB0aGUgY2FtZXJhIGRldmljZSBoYXMgYXZhaWxhYmxlCit0byB1c2Ugd2l0aCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhcHR1cmVSZXN1bHQuaHRtbCI+Q2FwdHVyZVJlc3VsdDwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QXR0ZW1wdGluZyB0byBnZXQgYSBrZXkgZnJvbSBhIENhcHR1cmVSZXN1bHQgdGhhdCBpcyBub3QKK2xpc3RlZCBoZXJlIHdpbGwgYWx3YXlzIHJldHVybiBhIDxjb2RlPm51bGw8L2NvZGU+IHZhbHVlLjx3YnIvPiBHZXR0aW5nIGEga2V5IGZyb20KK2EgQ2FwdHVyZVJlc3VsdCB0aGF0IGlzIGxpc3RlZCBoZXJlIHdpbGwgZ2VuZXJhbGx5IG5ldmVyIHJldHVybiBhIDxjb2RlPm51bGw8L2NvZGU+Cit2YWx1ZS48d2JyLz48L3A+Cis8cD5UaGUgZm9sbG93aW5nIGtleXMgbWF5IHJldHVybiA8Y29kZT5udWxsPC9jb2RlPiB1bmxlc3MgdGhleSBhcmUgZW5hYmxlZDo8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8L2E+IChub24tbnVsbCBpZmYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGU8L2E+ID09IE9OKTwvbGk+Cis8L3VsPgorPHA+KFRob3NlIHNvbWV0aW1lcy1udWxsIGtleXMgd2lsbCBuZXZlcnRoZWxlc3MgYmUgbGlzdGVkIGhlcmUKK2lmIHRoZXkgYXJlIGF2YWlsYWJsZS48d2JyLz4pPC9wPgorPHA+VGhpcyBmaWVsZCBjYW4gYmUgdXNlZCB0byBxdWVyeSB0aGUgZmVhdHVyZSBzZXQgb2YgYSBjYW1lcmEgZGV2aWNlCithdCBhIG1vcmUgZ3JhbnVsYXIgbGV2ZWwgdGhhbiBjYXBhYmlsaXRpZXMuPHdici8+IFRoaXMgaXMgZXNwZWNpYWxseQoraW1wb3J0YW50IGZvciBvcHRpb25hbCBrZXlzIHRoYXQgYXJlIG5vdCBsaXN0ZWQgdW5kZXIgYW55IGNhcGFiaWxpdHkKK2luIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UYWdzIGxpc3RlZCBoZXJlIG11c3QgYWx3YXlzIGhhdmUgYW4gZW50cnkgaW4gdGhlIHJlc3VsdCBtZXRhZGF0YSw8d2JyLz4KK2V2ZW4gaWYgdGhhdCBzaXplIGlzIDAgZWxlbWVudHMuPHdici8+IE9ubHkgYXJyYXktdHlwZSB0YWdzIChlLjx3YnIvPmcuPHdici8+IGxpc3RzLDx3YnIvPgorbWF0cmljZXMsPHdici8+IHN0cmluZ3MpIGFyZSBhbGxvd2VkIHRvIGhhdmUgMCBlbGVtZW50cy48d2JyLz48L3A+Cis8cD5WZW5kb3IgdGFncyBtdXN0IG5vdCBiZSBsaXN0ZWQgaGVyZS48d2JyLz4gVXNlIHRoZSB2ZW5kb3IgdGFnIG1ldGFkYXRhCitleHRlbnNpb25zIEMgYXBpIGluc3RlYWQgKHJlZmVyIHRvIGNhbWVyYTMuPHdici8+aCBmb3IgbW9yZSBkZXRhaWxzKS48d2JyLz48L3A+Cis8cD5TZXR0aW5nLzx3YnIvPmdldHRpbmcgdmVuZG9yIHRhZ3Mgd2lsbCBiZSBjaGVja2VkIGFnYWluc3QgdGhlIG1ldGFkYXRhCit2ZW5kb3IgZXh0ZW5zaW9ucyBBUEkgYW5kIG5vdCBhZ2FpbnN0IHRoaXMgZmllbGQuPHdici8+PC9wPgorPHA+VGhlIEhBTCBtdXN0IG5vdCBwcm9kdWNlIGFueSByZXN1bHQgdGFncyB0aGF0IGFyZSBub3QgbGlzdGVkIGVpdGhlcgoraGVyZSBvciBpbiB0aGUgdmVuZG9yIHRhZyBsaXN0Ljx3YnIvPjwvcD4KKzxwPlRoZSBwdWJsaWMgY2FtZXJhMiBBUEkgd2lsbCBhbHdheXMgbWFrZSB0aGUgdmVuZG9yIHRhZ3MgdmlzaWJsZSB2aWEgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDaGFyYWN0ZXJpc3RpY3MuaHRtbCNnZXRBdmFpbGFibGVDYXB0dXJlUmVzdWx0S2V5cyI+Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzI2dldEF2YWlsYWJsZUNhcHR1cmVSZXN1bHRLZXlzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNoYXJhY3RlcmlzdGljc0tleXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNoYXJhY3RlcmlzdGljczx3YnIvPktleXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbGlzdCBvZiBhbGwga2V5cyB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIGhhcyBhdmFpbGFibGUKK3RvIHVzZSB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzLmh0bWwiPkNhbWVyYUNoYXJhY3RlcmlzdGljczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBlbnRyeSBmb2xsb3dzIHRoZSBzYW1lIHJ1bGVzIGFzCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXN1bHRLZXlzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+UmVzdWx0PHdici8+S2V5czwvYT4gKGV4Y2VwdCB0aGF0IGl0IGFwcGxpZXMgZm9yCitDYW1lcmFDaGFyYWN0ZXJpc3RpY3MgaW5zdGVhZCBvZiBDYXB0dXJlUmVzdWx0KS48d2JyLz4gU2VlIGFib3ZlIGZvciBtb3JlCitkZXRhaWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+S2V5cyBsaXN0ZWQgaGVyZSBtdXN0IGFsd2F5cyBoYXZlIGFuIGVudHJ5IGluIHRoZSBzdGF0aWMgaW5mbyBtZXRhZGF0YSw8d2JyLz4KK2V2ZW4gaWYgdGhhdCBzaXplIGlzIDAgZWxlbWVudHMuPHdici8+IE9ubHkgYXJyYXktdHlwZSB0YWdzIChlLjx3YnIvPmcuPHdici8+IGxpc3RzLDx3YnIvPgorbWF0cmljZXMsPHdici8+IHN0cmluZ3MpIGFyZSBhbGxvd2VkIHRvIGhhdmUgMCBlbGVtZW50cy48d2JyLz48L3A+Cis8cD5WZW5kb3IgdGFncyBtdXN0IG5vdCBiZSBsaXN0ZWQgaGVyZS48d2JyLz4gVXNlIHRoZSB2ZW5kb3IgdGFnIG1ldGFkYXRhCitleHRlbnNpb25zIEMgYXBpIGluc3RlYWQgKHJlZmVyIHRvIGNhbWVyYTMuPHdici8+aCBmb3IgbW9yZSBkZXRhaWxzKS48d2JyLz48L3A+Cis8cD5TZXR0aW5nLzx3YnIvPmdldHRpbmcgdmVuZG9yIHRhZ3Mgd2lsbCBiZSBjaGVja2VkIGFnYWluc3QgdGhlIG1ldGFkYXRhCit2ZW5kb3IgZXh0ZW5zaW9ucyBBUEkgYW5kIG5vdCBhZ2FpbnN0IHRoaXMgZmllbGQuPHdici8+PC9wPgorPHA+VGhlIEhBTCBtdXN0IG5vdCBoYXZlIGFueSB0YWdzIGluIGl0cyBzdGF0aWMgaW5mbyB0aGF0IGFyZSBub3QgbGlzdGVkCitlaXRoZXIgaGVyZSBvciBpbiB0aGUgdmVuZG9yIHRhZyBsaXN0Ljx3YnIvPjwvcD4KKzxwPlRoZSBwdWJsaWMgY2FtZXJhMiBBUEkgd2lsbCBhbHdheXMgbWFrZSB0aGUgdmVuZG9yIHRhZ3MgdmlzaWJsZQordmlhIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzLmh0bWwjZ2V0S2V5cyI+Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzI2dldEtleXM8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnJlcXVlc3QuZnJhbWVDb3VudCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+ZnJhbWU8d2JyLz5Db3VudAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW5dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBmcmFtZSBjb3VudGVyIHNldCBieSB0aGUgZnJhbWV3b3JrLjx3YnIvPiBUaGlzIHZhbHVlIG1vbm90b25pY2FsbHkKK2luY3JlYXNlcyB3aXRoIGV2ZXJ5IG5ldyByZXN1bHQgKHRoYXQgaXMsPHdici8+IGVhY2ggbmV3IHJlc3VsdCBoYXMgYSB1bmlxdWUKK2ZyYW1lQ291bnQgdmFsdWUpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBjb3VudCBvZiBmcmFtZXMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgICA8cD4mZ3Q7IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlJlc2V0IG9uIHJlbGVhc2UoKTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnJlcXVlc3QuaWQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmlkCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbl08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BbiBhcHBsaWNhdGlvbi1zcGVjaWZpZWQgSUQgZm9yIHRoZSBjdXJyZW50CityZXF1ZXN0Ljx3YnIvPiBNdXN0IGJlIG1haW50YWluZWQgdW5jaGFuZ2VkIGluIG91dHB1dAorZnJhbWU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgYXJiaXRyYXJ5IGludGVnZXIgYXNzaWduZWQgYnkgYXBwbGljYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgaW50PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0Lm1ldGFkYXRhTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWV0YWRhdGE8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk5PTkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIG1ldGFkYXRhIHNob3VsZCBiZSBwcm9kdWNlZCBvbiBvdXRwdXQsPHdici8+IGV4Y2VwdAorZm9yIGFwcGxpY2F0aW9uLWJvdW5kIGJ1ZmZlciBkYXRhLjx3YnIvPiBJZiBubworYXBwbGljYXRpb24tYm91bmQgc3RyZWFtcyBleGlzdCw8d2JyLz4gbm8gZnJhbWUgc2hvdWxkIGJlCitwbGFjZWQgaW4gdGhlIG91dHB1dCBmcmFtZSBxdWV1ZS48d2JyLz4gSWYgc3VjaCBzdHJlYW1zCitleGlzdCw8d2JyLz4gYSBmcmFtZSBzaG91bGQgYmUgcGxhY2VkIG9uIHRoZSBvdXRwdXQgcXVldWUKK3dpdGggbnVsbCBtZXRhZGF0YSBidXQgd2l0aCB0aGUgbmVjZXNzYXJ5IG91dHB1dCBidWZmZXIKK2luZm9ybWF0aW9uLjx3YnIvPiBUaW1lc3RhbXAgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlCitpbmNsdWRlZCB3aXRoIGFueSBvdXRwdXQgc3RyZWFtIGJ1ZmZlcnM8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GVUxMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BbGwgbWV0YWRhdGEgc2hvdWxkIGJlIHByb2R1Y2VkLjx3YnIvPiBTdGF0aXN0aWNzIHdpbGwKK29ubHkgYmUgcHJvZHVjZWQgaWYgdGhleSBhcmUgc2VwYXJhdGVseQorZW5hYmxlZDwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkhvdyBtdWNoIG1ldGFkYXRhIHRvIHByb2R1Y2Ugb24KK291dHB1dDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5vdXRwdXQ8d2JyLz5TdHJlYW1zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0cyB3aGljaCBjYW1lcmEgb3V0cHV0IHN0cmVhbXMgaW1hZ2UgZGF0YQorZnJvbSB0aGlzIGNhcHR1cmUgbXVzdCBiZSBzZW50IHRvPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIExpc3Qgb2YgY2FtZXJhIHN0cmVhbSBJRHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgICA8cD5MaXN0IG11c3Qgb25seSBpbmNsdWRlIHN0cmVhbXMgdGhhdCBoYXZlIGJlZW4KK2NyZWF0ZWQ8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfSEFMMiI+SEFMMjwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIG5vIG91dHB1dCBzdHJlYW1zIGFyZSBsaXN0ZWQsPHdici8+IHRoZW4gdGhlIGltYWdlCitkYXRhIHNob3VsZCBzaW1wbHkgYmUgZGlzY2FyZGVkLjx3YnIvPiBUaGUgaW1hZ2UgZGF0YSBtdXN0CitzdGlsbCBiZSBjYXB0dXJlZCBmb3IgbWV0YWRhdGEgYW5kIHN0YXRpc3RpY3MgcHJvZHVjdGlvbiw8d2JyLz4KK2FuZCB0aGUgbGVucyBhbmQgZmxhc2ggbXVzdCBvcGVyYXRlIGFzIHJlcXVlc3RlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lRGVwdGgiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPnBpcGVsaW5lPHdici8+RGVwdGgKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5TcGVjaWZpZXMgdGhlIG51bWJlciBvZiBwaXBlbGluZSBzdGFnZXMgdGhlIGZyYW1lIHdlbnQKK3Rocm91Z2ggZnJvbSB3aGVuIGl0IHdhcyBleHBvc2VkIHRvIHdoZW4gdGhlIGZpbmFsIGNvbXBsZXRlZCByZXN1bHQKK3dhcyBhdmFpbGFibGUgdG8gdGhlIGZyYW1ld29yay48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mbHQ7PSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5waXBlbGluZU1heERlcHRoIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+cGlwZWxpbmU8d2JyLz5NYXg8d2JyLz5EZXB0aDwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkRlcGVuZGluZyBvbiB3aGF0IHNldHRpbmdzIGFyZSB1c2VkIGluIHRoZSByZXF1ZXN0LDx3YnIvPiBhbmQKK3doYXQgc3RyZWFtcyBhcmUgY29uZmlndXJlZCw8d2JyLz4gdGhlIGRhdGEgbWF5IHVuZGVyZ28gbGVzcyBwcm9jZXNzaW5nLDx3YnIvPgorYW5kIHNvbWUgcGlwZWxpbmUgc3RhZ2VzIHNraXBwZWQuPHdici8+PC9wPgorPHA+U2VlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lTWF4RGVwdGgiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5waXBlbGluZTx3YnIvPk1heDx3YnIvPkRlcHRoPC9hPiBmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyB2YWx1ZSBtdXN0IGFsd2F5cyByZXByZXNlbnQgdGhlIGFjY3VyYXRlIGNvdW50IG9mIGhvdyBtYW55CitwaXBlbGluZSBzdGFnZXMgd2VyZSBhY3R1YWxseSB1c2VkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX3NjYWxlciIgY2xhc3M9InNlY3Rpb24iPnNjYWxlcjwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHJlY3RhbmdsZV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIHJlZ2lvbiBvZiB0aGUgc2Vuc29yIHRvIHJlYWQgb3V0IGZvciB0aGlzIGNhcHR1cmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFBpeGVsIGNvb3JkaW5hdGVzIHJlbGF0aXZlIHRvCisgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCBjYW4gYmUgdXNlZCB0byBpbXBsZW1lbnQgZGlnaXRhbCB6b29tLjx3YnIvPjwvcD4KKzxwPlRoZSBjcm9wIHJlZ2lvbiBjb29yZGluYXRlIHN5c3RlbSBpcyBiYXNlZCBvZmYKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiw8d2JyLz4gd2l0aCA8Y29kZT4oMCw8d2JyLz4gMCk8L2NvZGU+IGJlaW5nIHRoZQordG9wLWxlZnQgY29ybmVyIG9mIHRoZSBzZW5zb3IgYWN0aXZlIGFycmF5Ljx3YnIvPjwvcD4KKzxwPk91dHB1dCBzdHJlYW1zIHVzZSB0aGlzIHJlY3RhbmdsZSB0byBwcm9kdWNlIHRoZWlyIG91dHB1dCw8d2JyLz4KK2Nyb3BwaW5nIHRvIGEgc21hbGxlciByZWdpb24gaWYgbmVjZXNzYXJ5IHRvIG1haW50YWluIHRoZQorc3RyZWFtJ3MgYXNwZWN0IHJhdGlvLDx3YnIvPiB0aGVuIHNjYWxpbmcgdGhlIHNlbnNvciBpbnB1dCB0bworbWF0Y2ggdGhlIG91dHB1dCdzIGNvbmZpZ3VyZWQgcmVzb2x1dGlvbi48d2JyLz48L3A+Cis8cD5UaGUgY3JvcCByZWdpb24gaXMgYXBwbGllZCBhZnRlciB0aGUgUkFXIHRvIG90aGVyIGNvbG9yCitzcGFjZSAoZS48d2JyLz5nLjx3YnIvPiBZVVYpIGNvbnZlcnNpb24uPHdici8+IFNpbmNlIHJhdyBzdHJlYW1zCisoZS48d2JyLz5nLjx3YnIvPiBSQVcxNikgZG9uJ3QgaGF2ZSB0aGUgY29udmVyc2lvbiBzdGFnZSw8d2JyLz4gdGhleSBhcmUgbm90Citjcm9wcGFibGUuPHdici8+IFRoZSBjcm9wIHJlZ2lvbiB3aWxsIGJlIGlnbm9yZWQgYnkgcmF3IHN0cmVhbXMuPHdici8+PC9wPgorPHA+Rm9yIG5vbi1yYXcgc3RyZWFtcyw8d2JyLz4gYW55IGFkZGl0aW9uYWwgcGVyLXN0cmVhbSBjcm9wcGluZyB3aWxsCitiZSBkb25lIHRvIG1heGltaXplIHRoZSBmaW5hbCBwaXhlbCBhcmVhIG9mIHRoZSBzdHJlYW0uPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBjcm9wIHJlZ2lvbiBpcyBzZXQgdG8gYSA0OjMgYXNwZWN0CityYXRpbyw8d2JyLz4gdGhlbiA0OjMgc3RyZWFtcyB3aWxsIHVzZSB0aGUgZXhhY3QgY3JvcAorcmVnaW9uLjx3YnIvPiAxNjo5IHN0cmVhbXMgd2lsbCBmdXJ0aGVyIGNyb3AgdmVydGljYWxseQorKGxldHRlcmJveCkuPHdici8+PC9wPgorPHA+Q29udmVyc2VseSw8d2JyLz4gaWYgdGhlIGNyb3AgcmVnaW9uIGlzIHNldCB0byBhIDE2OjksPHdici8+IHRoZW4gNDozCitvdXRwdXRzIHdpbGwgY3JvcCBob3Jpem9udGFsbHkgKHBpbGxhcmJveCksPHdici8+IGFuZCAxNjo5CitzdHJlYW1zIHdpbGwgbWF0Y2ggZXhhY3RseS48d2JyLz4gVGhlc2UgYWRkaXRpb25hbCBjcm9wcyB3aWxsCitiZSBjZW50ZXJlZCB3aXRoaW4gdGhlIGNyb3AgcmVnaW9uLjx3YnIvPjwvcD4KKzxwPlRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBjcm9wIHJlZ2lvbiBjYW5ub3QKK2JlIHNldCB0byBiZSBzbWFsbGVyIHRoYW4KKzxjb2RlPmZsb29yKCBhY3RpdmVBcnJheVNpemUuPHdici8+d2lkdGggLzx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZU1heERpZ2l0YWxab29tIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5NYXg8d2JyLz5EaWdpdGFsPHdici8+Wm9vbTwvYT4gKTwvY29kZT4gYW5kCis8Y29kZT5mbG9vciggYWN0aXZlQXJyYXlTaXplLjx3YnIvPmhlaWdodCAvPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWF4RGlnaXRhbFpvb20iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk1heDx3YnIvPkRpZ2l0YWw8d2JyLz5ab29tPC9hPiApPC9jb2RlPiw8d2JyLz4gcmVzcGVjdGl2ZWx5Ljx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIG1heSBhZGp1c3QgdGhlIGNyb3AgcmVnaW9uIHRvIGFjY291bnQKK2ZvciByb3VuZGluZyBhbmQgb3RoZXIgaGFyZHdhcmUgcmVxdWlyZW1lbnRzOyB0aGUgZmluYWwKK2Nyb3AgcmVnaW9uIHVzZWQgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0IGNhcHR1cmUKK3Jlc3VsdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBvdXRwdXQgc3RyZWFtcyBtdXN0IG1haW50YWluIHNxdWFyZSBwaXhlbHMgYXQgYWxsCit0aW1lcyw8d2JyLz4gbm8gbWF0dGVyIHdoYXQgdGhlIHJlbGF0aXZlIGFzcGVjdCByYXRpb3Mgb2YgdGhlCitjcm9wIHJlZ2lvbiBhbmQgdGhlIHN0cmVhbSBhcmUuPHdici8+ICBOZWdhdGl2ZSB2YWx1ZXMgZm9yCitjb3JuZXIgYXJlIGFsbG93ZWQgZm9yIHJhdyBvdXRwdXQgaWYgZnVsbCBwaXhlbCBhcnJheSBpcworbGFyZ2VyIHRoYW4gYWN0aXZlIHBpeGVsIGFycmF5Ljx3YnIvPiBXaWR0aCBhbmQgaGVpZ2h0IG1heSBiZQorcm91bmRlZCB0byBuZWFyZXN0IGxhcmdlciBzdXBwb3J0YWJsZSB3aWR0aCw8d2JyLz4gZXNwZWNpYWxseQorZm9yIHJhdyBvdXRwdXQsPHdici8+IHdoZXJlIG9ubHkgYSBmZXcgZml4ZWQgc2NhbGVzIG1heSBiZQorcG9zc2libGUuPHdici8+PC9wPgorPHA+Rm9yIGEgc2V0IG9mIG91dHB1dCBzdHJlYW1zIGNvbmZpZ3VyZWQsPHdici8+IGlmIHRoZSBzZW5zb3Igb3V0cHV0IGlzIGNyb3BwZWQgdG8gYSBzbWFsbGVyCitzaXplIHRoYW4gYWN0aXZlIGFycmF5IHNpemUsPHdici8+IHRoZSBIQUwgbmVlZCBmb2xsb3cgYmVsb3cgY3JvcHBpbmcgcnVsZXM6PC9wPgorPHVsPgorPGxpPgorPHA+VGhlIEhBTCBuZWVkIGhhbmRsZSB0aGUgY3JvcFJlZ2lvbiBhcyBpZiB0aGUgc2Vuc29yIGNyb3Agc2l6ZSBpcyB0aGUgZWZmZWN0aXZlIGFjdGl2ZQorYXJyYXkgc2l6ZS48d2JyLz5Nb3JlIHNwZWNpZmljYWxseSw8d2JyLz4gdGhlIEhBTCBtdXN0IHRyYW5zZm9ybSB0aGUgcmVxdWVzdCBjcm9wUmVnaW9uIGZyb20KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiB0byB0aGUgc2Vuc29yIGNyb3BwZWQgcGl4ZWwgYXJlYSBzaXplIGluIHRoaXMgd2F5OjwvcD4KKzxvbD4KKzxsaT5UcmFuc2xhdGUgdGhlIHJlcXVlc3RlZCBjcm9wUmVnaW9uIHcuPHdici8+ci48d2JyLz50Liw8d2JyLz4gdGhlIGxlZnQgdG9wIGNvcm5lciBvZiB0aGUgc2Vuc29yCitjcm9wcGVkIHBpeGVsIGFyZWEgYnkgKHR4LDx3YnIvPiB0eSksPHdici8+Cit3aGVyZSA8Y29kZT50eCA9IHNlbnNvckNyb3AuPHdici8+dG9wICogKHNlbnNvckNyb3AuPHdici8+aGVpZ2h0IC88d2JyLz4gYWN0aXZlQXJyYXlTaXplLjx3YnIvPmhlaWdodCk8L2NvZGU+CithbmQgPGNvZGU+dHggPSBzZW5zb3JDcm9wLjx3YnIvPmxlZnQgKiAoc2Vuc29yQ3JvcC48d2JyLz53aWR0aCAvPHdici8+IGFjdGl2ZUFycmF5U2l6ZS48d2JyLz53aWR0aCk8L2NvZGU+Ljx3YnIvPiBUaGUKKyhzZW5zb3JDcm9wLjx3YnIvPnRvcCw8d2JyLz4gc2Vuc29yQ3JvcC48d2JyLz5sZWZ0KSBpcyB0aGUgY29vcmRpbmF0ZSBiYXNlZCBvZmYgdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+PC9saT4KKzxsaT5TY2FsZSB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiByZXF1ZXN0ZWQgY3JvcFJlZ2lvbiB3aXRoIHNjYWxpbmcgZmFjdG9yIG9mCitzZW5zb3I8d2JyLz5Dcm9wLjx3YnIvPndpZHRoLzx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZS48d2JyLz53aWR0aCBhbmQgc2Vuc29yPHdici8+Q3JvcC48d2JyLz5oZWlnaHQvPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplLjx3YnIvPmhlaWdodAorcmVzcGVjdGl2ZWx5Ljx3YnIvPgorT25jZSB0aGlzIG5ldyBjcm9wUmVnaW9uIGlzIGNhbGN1bGF0ZWQsPHdici8+IHRoZSBIQUwgbXVzdCB1c2UgdGhpcyByZWdpb24gdG8gY3JvcCB0aGUgaW1hZ2UKK3dpdGggcmVnYXJkIHRvIHRoZSBzZW5zb3IgY3JvcCBzaXplIChlZmZlY3RpdmUgYWN0aXZlIGFycmF5IHNpemUpLjx3YnIvPiBUaGUgSEFMIHN0aWxsIG5lZWQKK2ZvbGxvdyB0aGUgZ2VuZXJhbCBjcm9wcGluZyBydWxlIGZvciB0aGlzIG5ldyBjcm9wUmVnaW9uIGFuZCBlZmZlY3RpdmUgYWN0aXZlCithcnJheSBzaXplLjx3YnIvPjwvbGk+Cis8L29sPgorPC9saT4KKzxsaT4KKzxwPlRoZSBIQUwgbXVzdCByZXBvcnQgdGhlIGNyb3BSZWdpb24gd2l0aCByZWdhcmQgdG8gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPgorVGhlIEhBTCBuZWVkIGNvbnZlcnQgdGhlIG5ldyBjcm9wUmVnaW9uIGdlbmVyYXRlZCBhYm92ZSB3Ljx3YnIvPnIuPHdici8+dC4sPHdici8+IGZ1bGwgYWN0aXZlIGFycmF5IHNpemUuPHdici8+CitUaGUgcmVwb3J0ZWQgY3JvcFJlZ2lvbiBtYXkgYmUgc2xpZ2h0bHkgZGlmZmVyZW50IHdpdGggdGhlIHJlcXVlc3RlZCBjcm9wUmVnaW9uIHNpbmNlCit0aGUgSEFMIG1heSBhZGp1c3QgdGhlIGNyb3AgcmVnaW9uIHRvIGFjY291bnQgZm9yIHJvdW5kaW5nLDx3YnIvPiBjb252ZXJzaW9uIGVycm9yLDx3YnIvPiBvciBvdGhlcgoraGFyZHdhcmUgbGltaXRhdGlvbnMuPHdici8+PC9wPgorPC9saT4KKzwvdWw+Cis8cD5IQUwyLjx3YnIvPnggdXNlcyBvbmx5ICh4LDx3YnIvPiB5LDx3YnIvPiB3aWR0aCk8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUZvcm1hdHMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+Rm9ybWF0cworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW4gYXMgaW1hZ2VGb3JtYXRdPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkFXMTY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjB4MjA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlJBVzE2IGlzIGEgc3RhbmRhcmQsPHdici8+IGNyb3NzLXBsYXRmb3JtIGZvcm1hdCBmb3IgcmF3IGltYWdlCitidWZmZXJzIHdpdGggMTYtYml0IHBpeGVscy48d2JyLz48L3A+Cis8cD5CdWZmZXJzIG9mIHRoaXMgZm9ybWF0IGFyZSB0eXBpY2FsbHkgZXhwZWN0ZWQgdG8gaGF2ZSBhCitCYXllciBDb2xvciBGaWx0ZXIgQXJyYXkgKENGQSkgbGF5b3V0LDx3YnIvPiB3aGljaCBpcyBnaXZlbiBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmNvbG9yRmlsdGVyQXJyYW5nZW1lbnQiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+Y29sb3I8d2JyLz5GaWx0ZXI8d2JyLz5BcnJhbmdlbWVudDwvYT4uPHdici8+IFNlbnNvcnMgd2l0aAorQ0ZBcyB0aGF0IGFyZSBub3QgcmVwcmVzZW50YWJsZSBieSBhIGZvcm1hdCBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmNvbG9yRmlsdGVyQXJyYW5nZW1lbnQiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+Y29sb3I8d2JyLz5GaWx0ZXI8d2JyLz5BcnJhbmdlbWVudDwvYT4gc2hvdWxkIG5vdAordXNlIHRoaXMgZm9ybWF0Ljx3YnIvPjwvcD4KKzxwPkJ1ZmZlcnMgb2YgdGhpcyBmb3JtYXQgd2lsbCBhbHNvIGZvbGxvdyB0aGUgY29uc3RyYWludHMgZ2l2ZW4gZm9yCitSQVdfPHdici8+T1BBUVVFIGJ1ZmZlcnMsPHdici8+IGJ1dCB3aXRoIHJlbGF4ZWQgcGVyZm9ybWFuY2UgY29uc3RyYWludHMuPHdici8+PC9wPgorPHA+VGhpcyBmb3JtYXQgaXMgaW50ZW5kZWQgdG8gZ2l2ZSB1c2VycyBhY2Nlc3MgdG8gdGhlIGZ1bGwgY29udGVudHMKK29mIHRoZSBidWZmZXJzIGNvbWluZyBkaXJlY3RseSBmcm9tIHRoZSBpbWFnZSBzZW5zb3IgcHJpb3IgdG8gYW55Citjcm9wcGluZyBvciBzY2FsaW5nIG9wZXJhdGlvbnMsPHdici8+IGFuZCBhbGwgY29vcmRpbmF0ZSBzeXN0ZW1zIGZvcgorbWV0YWRhdGEgdXNlZCBmb3IgdGhpcyBmb3JtYXQgYXJlIHJlbGF0aXZlIHRvIHRoZSBzaXplIG9mIHRoZQorYWN0aXZlIHJlZ2lvbiBvZiB0aGUgaW1hZ2Ugc2Vuc29yIGJlZm9yZSBhbnkgZ2VvbWV0cmljIGRpc3RvcnRpb24KK2NvcnJlY3Rpb24gaGFzIGJlZW4gYXBwbGllZCAoaS48d2JyLz5lLjx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4pLjx3YnIvPiBTdXBwb3J0ZWQKK2RpbWVuc2lvbnMgZm9yIHRoaXMgZm9ybWF0IGFyZSBsaW1pdGVkIHRvIHRoZSBmdWxsIGRpbWVuc2lvbnMgb2YKK3RoZSBzZW5zb3IgKGUuPHdici8+Zy48d2JyLz4gZWl0aGVyIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gb3IKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5wcmVDb3JyZWN0aW9uQWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnByZTx3YnIvPkNvcnJlY3Rpb248d2JyLz5BY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+IHdpbGwgYmUgdGhlCitvbmx5IHN1cHBvcnRlZCBvdXRwdXQgc2l6ZSkuPHdici8+PC9wPgorPHA+U2VlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSW5wdXRPdXRwdXRGb3JtYXRzTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5JbnB1dDx3YnIvPk91dHB1dDx3YnIvPkZvcm1hdHM8d2JyLz5NYXA8L2E+IGZvcgordGhlIGZ1bGwgc2V0IG9mIHBlcmZvcm1hbmNlIGd1YXJhbnRlZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkFXX09QQVFVRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MHgyNDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+UkFXXzx3YnIvPk9QQVFVRSAob3IKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUkFXX1BSSVZBVEUiPlJBV188d2JyLz5QUklWQVRFPC9hPgorYXMgcmVmZXJyZWQgaW4gcHVibGljIEFQSSkgaXMgYSBmb3JtYXQgZm9yIHJhdyBpbWFnZSBidWZmZXJzCitjb21pbmcgZnJvbSBhbiBpbWFnZSBzZW5zb3IuPHdici8+PC9wPgorPHA+VGhlIGFjdHVhbCBzdHJ1Y3R1cmUgb2YgYnVmZmVycyBvZiB0aGlzIGZvcm1hdCBpcworcGxhdGZvcm0tc3BlY2lmaWMsPHdici8+IGJ1dCBtdXN0IGZvbGxvdyBzZXZlcmFsIGNvbnN0cmFpbnRzOjwvcD4KKzxvbD4KKzxsaT5ObyBpbWFnZSBwb3N0LXByb2Nlc3Npbmcgb3BlcmF0aW9ucyBtYXkgaGF2ZSBiZWVuIGFwcGxpZWQgdG8KK2J1ZmZlcnMgb2YgdGhpcyB0eXBlLjx3YnIvPiBUaGVzZSBidWZmZXJzIGNvbnRhaW4gcmF3IGltYWdlIGRhdGEgY29taW5nCitkaXJlY3RseSBmcm9tIHRoZSBpbWFnZSBzZW5zb3IuPHdici8+PC9saT4KKzxsaT5JZiBhIGJ1ZmZlciBvZiB0aGlzIGZvcm1hdCBpcyBwYXNzZWQgdG8gdGhlIGNhbWVyYSBkZXZpY2UgZm9yCityZXByb2Nlc3NpbmcsPHdici8+IHRoZSByZXN1bHRpbmcgaW1hZ2VzIHdpbGwgYmUgaWRlbnRpY2FsIHRvIHRoZSBpbWFnZXMKK3Byb2R1Y2VkIGlmIHRoZSBidWZmZXIgaGFkIGNvbWUgZGlyZWN0bHkgZnJvbSB0aGUgc2Vuc29yIGFuZCB3YXMKK3Byb2Nlc3NlZCB3aXRoIHRoZSBzYW1lIHNldHRpbmdzLjx3YnIvPjwvbGk+Cis8L29sPgorPHA+VGhlIGludGVuZGVkIHVzZSBmb3IgdGhpcyBmb3JtYXQgaXMgdG8gYWxsb3cgYWNjZXNzIHRvIHRoZSBuYXRpdmUKK3JhdyBmb3JtYXQgYnVmZmVycyBjb21pbmcgZGlyZWN0bHkgZnJvbSB0aGUgY2FtZXJhIHNlbnNvciB3aXRob3V0CithbnkgYWRkaXRpb25hbCBjb252ZXJzaW9ucyBvciBkZWNyZWFzZSBpbiBmcmFtZXJhdGUuPHdici8+PC9wPgorPHA+U2VlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSW5wdXRPdXRwdXRGb3JtYXRzTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5JbnB1dDx3YnIvPk91dHB1dDx3YnIvPkZvcm1hdHM8d2JyLz5NYXA8L2E+IGZvciB0aGUgZnVsbCBzZXQgb2YKK3BlcmZvcm1hbmNlIGd1YXJhbnRlZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+WVYxMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MHgzMjMxNTY1OTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+WUNyQ2IgNDoyOjAgUGxhbmFyPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+WUNyQ2JfNDIwX1NQPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4weDExPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5OVjIxPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SU1QTEVNRU5UQVRJT05fREVGSU5FRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MHgyMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+U3lzdGVtIGludGVybmFsIGZvcm1hdCw8d2JyLz4gbm90IGFwcGxpY2F0aW9uLWFjY2Vzc2libGU8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ZQ2JDcl80MjBfODg4PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4weDIzPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5GbGV4aWJsZSBZVVY0MjAgRm9ybWF0PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QkxPQjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MHgyMTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SlBFRyBmb3JtYXQ8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbGlzdCBvZiBpbWFnZSBmb3JtYXRzIHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzCitjYW1lcmEgZGV2aWNlIGZvciBvdXRwdXQgc3RyZWFtcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFsbCBjYW1lcmEgZGV2aWNlcyB3aWxsIHN1cHBvcnQgSlBFRyBhbmQgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggZm9ybWF0cy48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCw8d2JyLz4gYXBwbGljYXRpb24gY2FuIGFjY2VzcyB0aGUgWVVWNDIwIGRhdGEgZGlyZWN0bHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGVzZSBmb3JtYXQgdmFsdWVzIGFyZSBmcm9tIEhBTF88d2JyLz5QSVhFTF88d2JyLz5GT1JNQVRfPHdici8+KiBpbgorc3lzdGVtLzx3YnIvPmNvcmUvPHdici8+aW5jbHVkZS88d2JyLz5zeXN0ZW0vPHdici8+Z3JhcGhpY3MuPHdici8+aC48d2JyLz48L3A+Cis8cD5XaGVuIElNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQgaXMgdXNlZCw8d2JyLz4gdGhlIHBsYXRmb3JtCitncmFsbG9jIG1vZHVsZSB3aWxsIHNlbGVjdCBhIGZvcm1hdCBiYXNlZCBvbiB0aGUgdXNhZ2UgZmxhZ3MgcHJvdmlkZWQKK2J5IHRoZSBjYW1lcmEgSEFMIGRldmljZSBhbmQgdGhlIG90aGVyIGVuZHBvaW50IG9mIHRoZSBzdHJlYW0uPHdici8+IEl0IGlzCit1c3VhbGx5IHVzZWQgYnkgcHJldmlldyBhbmQgcmVjb3JkaW5nIHN0cmVhbXMsPHdici8+IHdoZXJlIHRoZSBhcHBsaWNhdGlvbiBkb2Vzbid0CituZWVkIGFjY2VzcyB0aGUgaW1hZ2UgZGF0YS48d2JyLz48L3A+Cis8cD5ZQ2I8d2JyLz5Dcl88d2JyLz40MjBfPHdici8+ODg4IGZvcm1hdCBtdXN0IGJlIHN1cHBvcnRlZCBieSB0aGUgSEFMLjx3YnIvPiBXaGVuIGFuIGltYWdlIHN0cmVhbQorbmVlZHMgQ1BVLzx3YnIvPmFwcGxpY2F0aW9uIGRpcmVjdCBhY2Nlc3MsPHdici8+IHRoaXMgZm9ybWF0IHdpbGwgYmUgdXNlZC48d2JyLz48L3A+Cis8cD5UaGUgQkxPQiBmb3JtYXQgbXVzdCBiZSBzdXBwb3J0ZWQgYnkgdGhlIEhBTC48d2JyLz4gVGhpcyBpcyB1c2VkIGZvciB0aGUgSlBFRyBzdHJlYW0uPHdici8+PC9wPgorPHA+QSBSQVdfPHdici8+T1BBUVVFIGJ1ZmZlciBzaG91bGQgY29udGFpbiBvbmx5IHBpeGVsIGRhdGEuPHdici8+IEl0IGlzIHN0cm9uZ2x5CityZWNvbW1lbmRlZCB0aGF0IGFueSBpbmZvcm1hdGlvbiB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIHdoZW4KK3Byb2Nlc3NpbmcgaW1hZ2VzIGlzIGZ1bGx5IGV4cHJlc3NlZCBieSB0aGUgcmVzdWx0IG1ldGFkYXRhCitmb3IgdGhhdCBpbWFnZSBidWZmZXIuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUpwZWdNaW5EdXJhdGlvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+SnBlZzx3YnIvPk1pbjx3YnIvPkR1cmF0aW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW5dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gdGhhdCBpcyBzdXBwb3J0ZWQKK2ZvciBlYWNoIHJlc29sdXRpb24gaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVKcGVnU2l6ZXMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkpwZWc8d2JyLz5TaXplczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgICAgPHA+VE9ETzogUmVtb3ZlIHByb3BlcnR5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvcnJlc3BvbmRzIHRvIHRoZSBtaW5pbXVtIHN0ZWFkeS1zdGF0ZSBmcmFtZSBkdXJhdGlvbiB3aGVuIG9ubHkKK3RoYXQgSlBFRyBzdHJlYW0gaXMgYWN0aXZlIGFuZCBjYXB0dXJlZCBpbiBhIGJ1cnN0LDx3YnIvPiB3aXRoIGFsbAorcHJvY2Vzc2luZyAodHlwaWNhbGx5IGluIGFuZHJvaWQuPHdici8+Ki48d2JyLz5tb2RlKSBzZXQgdG8gRkFTVC48d2JyLz48L3A+Cis8cD5XaGVuIG11bHRpcGxlIHN0cmVhbXMgYXJlIGNvbmZpZ3VyZWQsPHdici8+IHRoZSBtaW5pbXVtCitmcmFtZSBkdXJhdGlvbiB3aWxsIGJlICZndDs9IG1heChpbmRpdmlkdWFsIHN0cmVhbSBtaW4KK2R1cmF0aW9ucyk8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVKcGVnU2l6ZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+SnBlZzx3YnIvPlNpemVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW4gYXMgc2l6ZV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgSlBFRyByZXNvbHV0aW9ucyB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICAgIDxwPlRPRE86IFJlbW92ZSBwcm9wZXJ0eS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHJlc29sdXRpb25zIGFyZSBsaXN0ZWQgYXMgPGNvZGU+KHdpZHRoLDx3YnIvPiBoZWlnaHQpPC9jb2RlPiBwYWlycy48d2JyLz4gQWxsIGNhbWVyYSBkZXZpY2VzIHdpbGwgc3VwcG9ydAorc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbiAoZGVmaW5lZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIEhBTCBtdXN0IGluY2x1ZGUgc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbgorKGRlZmluZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+KSw8d2JyLz4KK2FuZCBzaG91bGQgaW5jbHVkZSBoYWxmLzx3YnIvPnF1YXJ0ZXIgb2Ygc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWF4RGlnaXRhbFpvb20iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+TWF4PHdici8+RGlnaXRhbDx3YnIvPlpvb20KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG1heGltdW0gcmF0aW8gYmV0d2VlbiBib3RoIGFjdGl2ZSBhcmVhIHdpZHRoCithbmQgY3JvcCByZWdpb24gd2lkdGgsPHdici8+IGFuZCBhY3RpdmUgYXJlYSBoZWlnaHQgYW5kCitjcm9wIHJlZ2lvbiBoZWlnaHQsPHdici8+IGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFpvb20gc2NhbGUgZmFjdG9yCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0xPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgcmVwcmVzZW50cyB0aGUgbWF4aW11bSBhbW91bnQgb2Ygem9vbWluZyBwb3NzaWJsZSBieQordGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IG9yIGVxdWl2YWxlbnRseSw8d2JyLz4gdGhlIG1pbmltdW0gY3JvcHBpbmcKK3dpbmRvdyBzaXplLjx3YnIvPjwvcD4KKzxwPkNyb3AgcmVnaW9ucyB0aGF0IGhhdmUgYSB3aWR0aCBvciBoZWlnaHQgdGhhdCBpcyBzbWFsbGVyCit0aGFuIHRoaXMgcmF0aW8gYWxsb3dzIHdpbGwgYmUgcm91bmRlZCB1cCB0byB0aGUgbWluaW11bQorYWxsb3dlZCBzaXplIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZE1pbkR1cmF0aW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5Qcm9jZXNzZWQ8d2JyLz5NaW48d2JyLz5EdXJhdGlvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbaGlkZGVuXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkZvciBlYWNoIGF2YWlsYWJsZSBwcm9jZXNzZWQgb3V0cHV0IHNpemUgKGRlZmluZWQgaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkU2l6ZXMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlByb2Nlc3NlZDx3YnIvPlNpemVzPC9hPiksPHdici8+IHRoaXMgcHJvcGVydHkgbGlzdHMgdGhlCittaW5pbXVtIHN1cHBvcnRhYmxlIGZyYW1lIGR1cmF0aW9uIGZvciB0aGF0IHNpemUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHNob3VsZCBjb3JyZXNwb25kIHRvIHRoZSBmcmFtZSBkdXJhdGlvbiB3aGVuIG9ubHkgdGhhdCBwcm9jZXNzZWQKK3N0cmVhbSBpcyBhY3RpdmUsPHdici8+IHdpdGggYWxsIHByb2Nlc3NpbmcgKHR5cGljYWxseSBpbiBhbmRyb2lkLjx3YnIvPiouPHdici8+bW9kZSkKK3NldCB0byBGQVNULjx3YnIvPjwvcD4KKzxwPldoZW4gbXVsdGlwbGUgc3RyZWFtcyBhcmUgY29uZmlndXJlZCw8d2JyLz4gdGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gd2lsbAorYmUgJmd0Oz0gbWF4KGluZGl2aWR1YWwgc3RyZWFtIG1pbiBkdXJhdGlvbnMpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZFNpemVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlByb2Nlc3NlZDx3YnIvPlNpemVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW4gYXMgc2l6ZV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgcmVzb2x1dGlvbnMgYXZhaWxhYmxlIGZvciB1c2Ugd2l0aAorcHJvY2Vzc2VkIG91dHB1dCBzdHJlYW1zLDx3YnIvPiBzdWNoIGFzIFlWMTIsPHdici8+IE5WMTIsPHdici8+IGFuZAorcGxhdGZvcm0gb3BhcXVlIFlVVi88d2JyLz5SR0Igc3RyZWFtcyB0byB0aGUgR1BVIG9yIHZpZGVvCitlbmNvZGVycy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSByZXNvbHV0aW9ucyBhcmUgbGlzdGVkIGFzIDxjb2RlPih3aWR0aCw8d2JyLz4gaGVpZ2h0KTwvY29kZT4gcGFpcnMuPHdici8+PC9wPgorPHA+Rm9yIGEgZ2l2ZW4gdXNlIGNhc2UsPHdici8+IHRoZSBhY3R1YWwgbWF4aW11bSBzdXBwb3J0ZWQgcmVzb2x1dGlvbgorbWF5IGJlIGxvd2VyIHRoYW4gd2hhdCBpcyBsaXN0ZWQgaGVyZSw8d2JyLz4gZGVwZW5kaW5nIG9uIHRoZSBkZXN0aW5hdGlvbgorU3VyZmFjZSBmb3IgdGhlIGltYWdlIGRhdGEuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBmb3IgcmVjb3JkaW5nIHZpZGVvLDx3YnIvPgordGhlIHZpZGVvIGVuY29kZXIgY2hvc2VuIG1heSBoYXZlIGEgbWF4aW11bSBzaXplIGxpbWl0IChlLjx3YnIvPmcuPHdici8+IDEwODBwKQorc21hbGxlciB0aGFuIHdoYXQgdGhlIGNhbWVyYSAoZS48d2JyLz5nLjx3YnIvPiBtYXhpbXVtIHJlc29sdXRpb24gaXMgMzI2NHgyNDQ4KQorY2FuIHByb3ZpZGUuPHdici8+PC9wPgorPHA+UGxlYXNlIHJlZmVyZW5jZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGltYWdlIGRhdGEgZGVzdGluYXRpb24gdG8KK2NoZWNrIGlmIGl0IGxpbWl0cyB0aGUgbWF4aW11bSBzaXplIGZvciBpbWFnZSBkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIEZVTEwgY2FwYWJpbGl0eSBkZXZpY2VzICg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gRlVMTDwvY29kZT4pLDx3YnIvPgordGhlIEhBTCBtdXN0IGluY2x1ZGUgYWxsIEpQRUcgc2l6ZXMgbGlzdGVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSnBlZ1NpemVzIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5KcGVnPHdici8+U2l6ZXM8L2E+CithbmQgZWFjaCBiZWxvdyByZXNvbHV0aW9uIGlmIGl0IGlzIHNtYWxsZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc2Vuc29yCittYXhpbXVtIHJlc29sdXRpb24gKGlmIHRoZXkgYXJlIG5vdCBsaXN0ZWQgaW4gSlBFRyBzaXplcyBhbHJlYWR5KTo8L3A+Cis8dWw+Cis8bGk+MjQwcCAoMzIwIHggMjQwKTwvbGk+Cis8bGk+NDgwcCAoNjQwIHggNDgwKTwvbGk+Cis8bGk+NzIwcCAoMTI4MCB4IDcyMCk8L2xpPgorPGxpPjEwODBwICgxOTIwIHggMTA4MCk8L2xpPgorPC91bD4KKzxwPkZvciBMSU1JVEVEIGNhcGFiaWxpdHkgZGV2aWNlcyAoPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IExJTUlURUQ8L2NvZGU+KSw8d2JyLz4KK3RoZSBIQUwgb25seSBoYXMgdG8gbGlzdCB1cCB0byB0aGUgbWF4aW11bSB2aWRlbyBzaXplIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUmF3TWluRHVyYXRpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlJhdzx3YnIvPk1pbjx3YnIvPkR1cmF0aW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Rm9yIGVhY2ggYXZhaWxhYmxlIHJhdyBvdXRwdXQgc2l6ZSAoZGVmaW5lZCBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVSYXdTaXplcyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+UmF3PHdici8+U2l6ZXM8L2E+KSw8d2JyLz4gdGhpcyBwcm9wZXJ0eSBsaXN0cyB0aGUgbWluaW11bQorc3VwcG9ydGFibGUgZnJhbWUgZHVyYXRpb24gZm9yIHRoYXQgc2l6ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNob3VsZCBjb3JyZXNwb25kIHRvIHRoZSBmcmFtZSBkdXJhdGlvbiB3aGVuIG9ubHkgdGhlIHJhdyBzdHJlYW0gaXMKK2FjdGl2ZS48d2JyLz48L3A+Cis8cD5XaGVuIG11bHRpcGxlIHN0cmVhbXMgYXJlIGNvbmZpZ3VyZWQsPHdici8+IHRoZSBtaW5pbXVtCitmcmFtZSBkdXJhdGlvbiB3aWxsIGJlICZndDs9IG1heChpbmRpdmlkdWFsIHN0cmVhbSBtaW4KK2R1cmF0aW9ucyk8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVSYXdTaXplcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5SYXc8d2JyLz5TaXplcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtIGFzIHNpemVdPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHJlc29sdXRpb25zIGF2YWlsYWJsZSBmb3IgdXNlIHdpdGggcmF3CitzZW5zb3Igb3V0cHV0IHN0cmVhbXMsPHdici8+IGxpc3RlZCBhcyB3aWR0aCw8d2JyLz4KK2hlaWdodDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+SW5wdXQ8d2JyLz5PdXRwdXQ8d2JyLz5Gb3JtYXRzPHdici8+TWFwCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbiBhcyByZXByb2Nlc3NGb3JtYXRzTWFwXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXBwaW5nIG9mIGltYWdlIGZvcm1hdHMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMKK2NhbWVyYSBkZXZpY2UgZm9yIGlucHV0IHN0cmVhbXMsPHdici8+IHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgb3V0cHV0IGZvcm1hdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SRVBST0MiPlJFUFJPQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFsbCBjYW1lcmEgZGV2aWNlcyB3aXRoIGF0IGxlYXN0IDEKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bUlucHV0U3RyZWFtcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1heDx3YnIvPk51bTx3YnIvPklucHV0PHdici8+U3RyZWFtczwvYT4gd2lsbCBoYXZlIGF0IGxlYXN0IG9uZQorYXZhaWxhYmxlIGlucHV0IGZvcm1hdC48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBtYXAgb2YgZm9ybWF0cyw8d2JyLz4KK2lmIGl0cyBkZXBlbmRlbnQgY2FwYWJpbGl0eSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPikgaXMgc3VwcG9ydGVkOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0ibGVmdCI+SW5wdXQgRm9ybWF0PC90aD4KKzx0aCBhbGlnbj0ibGVmdCI+T3V0cHV0IEZvcm1hdDwvdGg+Cis8dGggYWxpZ249ImxlZnQiPkNhcGFiaWxpdHk8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUFJJVkFURSI+SW1hZ2VGb3JtYXQjUFJJVkFURTwvYT48L3RkPgorPHRkIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCI+UFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNQUklWQVRFIj5JbWFnZUZvcm1hdCNQUklWQVRFPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiPlBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT48L3RkPgorPHRkIGFsaWduPSJsZWZ0Ij5ZVVZfPHdici8+UkVQUk9DRVNTSU5HPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiPllVVl88d2JyLz5SRVBST0NFU1NJTkc8L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+UFJJVkFURSByZWZlcnMgdG8gYSBkZXZpY2UtaW50ZXJuYWwgZm9ybWF0IHRoYXQgaXMgbm90IGRpcmVjdGx5IGFwcGxpY2F0aW9uLXZpc2libGUuPHdici8+ICBBCitQUklWQVRFIGlucHV0IHN1cmZhY2UgY2FuIGJlIGFjcXVpcmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL21lZGlhL0ltYWdlUmVhZGVyLmh0bWwjbmV3SW5zdGFuY2UiPkltYWdlUmVhZGVyI25ld0luc3RhbmNlPC9hPgord2l0aCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1BSSVZBVEUiPkltYWdlRm9ybWF0I1BSSVZBVEU8L2E+IGFzIHRoZSBmb3JtYXQuPHdici8+PC9wPgorPHA+Rm9yIGEgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkctY2FwYWJsZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiB1c2luZyB0aGUgUFJJVkFURSBmb3JtYXQgYXMgZWl0aGVyIGlucHV0CitvciBvdXRwdXQgd2lsbCBuZXZlciBodXJ0IG1heGltdW0gZnJhbWUgcmF0ZSAoaS48d2JyLz5lLjx3YnIvPiAgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPmdldE91dHB1dFN0YWxsRHVyYXRpb24oSW1hZ2VGb3JtYXQuPHdici8+UFJJVkFURSw8d2JyLz4gc2l6ZSk8L2E+IGlzIGFsd2F5cyAwKSw8d2JyLz48L3A+Cis8cD5BdHRlbXB0aW5nIHRvIGNvbmZpZ3VyZSBhbiBpbnB1dCBzdHJlYW0gd2l0aCBvdXRwdXQgc3RyZWFtcyBub3QKK2xpc3RlZCBhcyBhdmFpbGFibGUgaW4gdGhpcyBtYXAgaXMgbm90IHZhbGlkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIHRoZSBmb3JtYXRzLDx3YnIvPiBzZWUgPGNvZGU+c3lzdGVtLzx3YnIvPmNvcmUvPHdici8+aW5jbHVkZS88d2JyLz5zeXN0ZW0vPHdici8+Z3JhcGhpY3MuPHdici8+aDwvY29kZT4gZm9yIGEgZGVmaW5pdGlvbgorb2YgdGhlIGltYWdlIGZvcm1hdCBlbnVtZXJhdGlvbnMuPHdici8+IFRoZSBQUklWQVRFIGZvcm1hdCByZWZlcnMgdG8gdGhlCitIQUxfPHdici8+UElYRUxfPHdici8+Rk9STUFUXzx3YnIvPklNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQgZm9ybWF0Ljx3YnIvPiBUaGUgSEFMIGNvdWxkIGRldGVybWluZQordGhlIGFjdHVhbCBmb3JtYXQgYnkgdXNpbmcgdGhlIGdyYWxsb2MgdXNhZ2UgZmxhZ3MuPHdici8+CitGb3IgWlNMIHVzZSBjYXNlIGluIHBhcnRpY3VsYXIsPHdici8+IHRoZSBIQUwgY291bGQgY2hvb3NlIGFwcHJvcHJpYXRlIGZvcm1hdCAocGFydGlhbGx5Citwcm9jZXNzZWQgWVVWIG9yIFJBVyBiYXNlZCBmb3JtYXQpIGJ5IGNoZWNraW5nIHRoZSBmb3JtYXQgYW5kIEdSQUxMT0NfPHdici8+VVNBR0VfPHdici8+SFdfPHdici8+Q0FNRVJBXzx3YnIvPlpTTC48d2JyLz4KK1NlZSBjYW1lcmEzLjx3YnIvPmggZm9yIG1vcmUgZGV0YWlscy48d2JyLz48L3A+Cis8cD5UaGlzIHZhbHVlIGlzIGVuY29kZWQgYXMgYSB2YXJpYWJsZS1zaXplIGFycmF5LW9mLWFycmF5cy48d2JyLz4KK1RoZSBpbm5lciBhcnJheSBhbHdheXMgY29udGFpbnMgPGNvZGU+W2Zvcm1hdCw8d2JyLz4gbGVuZ3RoLDx3YnIvPiAuLi48d2JyLz5dPC9jb2RlPiB3aGVyZQorPGNvZGU+Li4uPHdici8+PC9jb2RlPiBoYXMgPGNvZGU+bGVuZ3RoPC9jb2RlPiBlbGVtZW50cy48d2JyLz4gQW4gaW5uZXIgYXJyYXkgaXMgZm9sbG93ZWQgYnkgYW5vdGhlcgoraW5uZXIgYXJyYXkgaWYgdGhlIHRvdGFsIG1ldGFkYXRhIGVudHJ5IHNpemUgaGFzbid0IHlldCBiZWVuIGV4Y2VlZGVkLjx3YnIvPjwvcD4KKzxwPkEgY29kZSBzYW1wbGUgdG8gcmVhZC88d2JyLz53cml0ZSB0aGlzIGVuY29kaW5nICh3aXRoIGEgZGV2aWNlIHRoYXQKK3N1cHBvcnRzIHJlcHJvY2Vzc2luZyBJTVBMRU1FTlRBVElPTl88d2JyLz5ERUZJTkVEIHRvIFlVVl88d2JyLz40MjBfPHdici8+ODg4LDx3YnIvPiBhbmQgSlBFRyw8d2JyLz4KK2FuZCByZXByb2Nlc3NpbmcgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggdG8gWVVWXzx3YnIvPjQyMF88d2JyLz44ODggYW5kIEpQRUcpOjwvcD4KKzxwcmU+PGNvZGU+Ly88d2JyLz4gcmVhZGluZworaW50MzJfPHdici8+dCogY29udGVudHMgPSAmYW1wO2VudHJ5Ljx3YnIvPmkzMlswXTsKK2ZvciAoc2l6ZV88d2JyLz50IGkgPSAwOyBpICZsdDsgZW50cnkuPHdici8+Y291bnQ7ICkgeworICAgIGludDMyXzx3YnIvPnQgZm9ybWF0ID0gY29udGVudHNbaSsrXTsKKyAgICBpbnQzMl88d2JyLz50IGxlbmd0aCA9IGNvbnRlbnRzW2krK107CisgICAgaW50MzJfPHdici8+dCBvdXRwdXRfPHdici8+Zm9ybWF0c1tsZW5ndGhdOworICAgIG1lbWNweSgmYW1wO291dHB1dF88d2JyLz5mb3JtYXRzWzBdLDx3YnIvPiAmYW1wO2NvbnRlbnRzW2ldLDx3YnIvPgorICAgICAgICAgICBsZW5ndGggKiBzaXplb2YoaW50MzJfPHdici8+dCkpOworICAgIGkgKz0gbGVuZ3RoOworfQorCisvLzx3YnIvPiB3cml0aW5nIChzdGF0aWMgZXhhbXBsZSw8d2JyLz4gUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgKyBZVVZfPHdici8+UkVQUk9DRVNTSU5HKQoraW50MzJfPHdici8+dFtdIGNvbnRlbnRzID0geworICBJTVBMRU1FTlRBVElPTl88d2JyLz5ERUZJTkVELDx3YnIvPiAyLDx3YnIvPiBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCw8d2JyLz4gQkxPQiw8d2JyLz4KKyAgWVVWXzx3YnIvPjQyMF88d2JyLz44ODgsPHdici8+IDIsPHdici8+IFlVVl88d2JyLz40MjBfPHdici8+ODg4LDx3YnIvPiBCTE9CLDx3YnIvPgorfTsKK3VwZGF0ZV88d2JyLz5jYW1lcmFfPHdici8+bWV0YWRhdGFfPHdici8+ZW50cnkobWV0YWRhdGEsPHdici8+IGluZGV4LDx3YnIvPiAmYW1wO2NvbnRlbnRzWzBdLDx3YnIvPgorICAgICAgc2l6ZW9mKGNvbnRlbnRzKS88d2JyLz5zaXplb2YoY29udGVudHNbMF0pLDx3YnIvPiAmYW1wO3VwZGF0ZWRfPHdici8+ZW50cnkpOworPC9jb2RlPjwvcHJlPgorPHA+SWYgdGhlIEhBTCBjbGFpbXMgdG8gc3VwcG9ydCBhbnkgb2YgdGhlIGNhcGFiaWxpdGllcyBsaXN0ZWQgaW4gdGhlCithYm92ZSBkZXRhaWxzLDx3YnIvPiB0aGVuIGl0IG11c3QgYWxzbyBzdXBwb3J0IGFsbCB0aGUgaW5wdXQtb3V0cHV0Citjb21iaW5hdGlvbnMgbGlzdGVkIGZvciB0aGF0IGNhcGFiaWxpdHkuPHdici8+IEl0IGNhbiBvcHRpb25hbGx5IHN1cHBvcnQKK2FkZGl0aW9uYWwgZm9ybWF0cyBpZiBpdCBzbyBjaG9vc2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdHJlYW08d2JyLz5Db25maWd1cmF0aW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpYyBhcyBzdHJlYW1Db25maWd1cmF0aW9uXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T1VUUFVUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JTlBVVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGF2YWlsYWJsZSBzdHJlYW0gY29uZmlndXJhdGlvbnMgdGhhdCB0aGlzCitjYW1lcmEgZGV2aWNlIHN1cHBvcnRzCisoaS48d2JyLz5lLjx3YnIvPiBmb3JtYXQsPHdici8+IHdpZHRoLDx3YnIvPiBoZWlnaHQsPHdici8+IG91dHB1dC88d2JyLz5pbnB1dCBzdHJlYW0pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBjb25maWd1cmF0aW9ucyBhcmUgbGlzdGVkIGFzIDxjb2RlPihmb3JtYXQsPHdici8+IHdpZHRoLDx3YnIvPiBoZWlnaHQsPHdici8+IGlucHV0Pyk8L2NvZGU+Cit0dXBsZXMuPHdici8+PC9wPgorPHA+Rm9yIGEgZ2l2ZW4gdXNlIGNhc2UsPHdici8+IHRoZSBhY3R1YWwgbWF4aW11bSBzdXBwb3J0ZWQgcmVzb2x1dGlvbgorbWF5IGJlIGxvd2VyIHRoYW4gd2hhdCBpcyBsaXN0ZWQgaGVyZSw8d2JyLz4gZGVwZW5kaW5nIG9uIHRoZSBkZXN0aW5hdGlvbgorU3VyZmFjZSBmb3IgdGhlIGltYWdlIGRhdGEuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBmb3IgcmVjb3JkaW5nIHZpZGVvLDx3YnIvPgordGhlIHZpZGVvIGVuY29kZXIgY2hvc2VuIG1heSBoYXZlIGEgbWF4aW11bSBzaXplIGxpbWl0IChlLjx3YnIvPmcuPHdici8+IDEwODBwKQorc21hbGxlciB0aGFuIHdoYXQgdGhlIGNhbWVyYSAoZS48d2JyLz5nLjx3YnIvPiBtYXhpbXVtIHJlc29sdXRpb24gaXMgMzI2NHgyNDQ4KQorY2FuIHByb3ZpZGUuPHdici8+PC9wPgorPHA+UGxlYXNlIHJlZmVyZW5jZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGltYWdlIGRhdGEgZGVzdGluYXRpb24gdG8KK2NoZWNrIGlmIGl0IGxpbWl0cyB0aGUgbWF4aW11bSBzaXplIGZvciBpbWFnZSBkYXRhLjx3YnIvPjwvcD4KKzxwPk5vdCBhbGwgb3V0cHV0IGZvcm1hdHMgbWF5IGJlIHN1cHBvcnRlZCBpbiBhIGNvbmZpZ3VyYXRpb24gd2l0aAorYW4gaW5wdXQgc3RyZWFtIG9mIGEgcGFydGljdWxhciBmb3JtYXQuPHdici8+IEZvciBtb3JlIGRldGFpbHMsPHdici8+IHNlZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPklucHV0PHdici8+T3V0cHV0PHdici8+Rm9ybWF0czx3YnIvPk1hcDwvYT4uPHdici8+PC9wPgorPHA+VGhlIGZvbGxvd2luZyB0YWJsZSBkZXNjcmliZXMgdGhlIG1pbmltdW0gcmVxdWlyZWQgb3V0cHV0IHN0cmVhbQorY29uZmlndXJhdGlvbnMgYmFzZWQgb24gdGhlIGhhcmR3YXJlIGxldmVsCisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+KTo8L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+Rm9ybWF0PC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5TaXplPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5IYXJkd2FyZSBMZXZlbDwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SlBFRzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkpQRUc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjE5MjB4MTA4MCAoMTA4MHApPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmlmIDEwODBwICZsdDs9IGFjdGl2ZUFycmF5U2l6ZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkpQRUc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjEyODB4NzIwICg3MjApPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmlmIDcyMHAgJmx0Oz0gYWN0aXZlQXJyYXlTaXplPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SlBFRzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+NjQweDQ4MCAoNDgwcCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+aWYgNDgwcCAmbHQ7PSBhY3RpdmVBcnJheVNpemU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5KUEVHPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj4zMjB4MjQwICgyNDBwKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5pZiAyNDBwICZsdDs9IGFjdGl2ZUFycmF5U2l6ZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPllVVl88d2JyLz40MjBfPHdici8+ODg4PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5hbGwgb3V0cHV0IHNpemVzIGF2YWlsYWJsZSBmb3IgSlBFRzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RlVMTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+WVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmFsbCBvdXRwdXQgc2l6ZXMgYXZhaWxhYmxlIGZvciBKUEVHLDx3YnIvPiB1cCB0byB0aGUgbWF4aW11bSB2aWRlbyBzaXplPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MSU1JVEVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTVBMRU1FTlRBVElPTl88d2JyLz5ERUZJTkVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5zYW1lIGFzIFlVVl88d2JyLz40MjBfPHdici8+ODg4PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5SZWZlciB0byA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGZvciBhZGRpdGlvbmFsCittYW5kYXRvcnkgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIG9uIGEgcGVyLWNhcGFiaWxpdHkgYmFzaXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JdCBpcyByZWNvbW1lbmRlZCAoYnV0IG5vdCBtYW5kYXRvcnkpIHRvIGFsc28gaW5jbHVkZSBoYWxmLzx3YnIvPnF1YXJ0ZXIKK29mIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24gZm9yIEpQRUcgZm9ybWF0cyAocmVnYXJkbGVzcyBvZiBoYXJkd2FyZQorbGV2ZWwpLjx3YnIvPjwvcD4KKzxwPihUaGUgZm9sbG93aW5nIGlzIGEgcmV3b3JkaW5nIG9mIHRoZSBhYm92ZSByZXF1aXJlZCB0YWJsZSk6PC9wPgorPHA+Rm9yIEpQRUcgZm9ybWF0LDx3YnIvPiB0aGUgc2l6ZXMgbWF5IGJlIHJlc3RyaWN0ZWQgYnkgYmVsb3cgY29uZGl0aW9uczo8L3A+Cis8dWw+Cis8bGk+VGhlIEhBTCBtYXkgY2hvb3NlIHRoZSBhc3BlY3QgcmF0aW8gb2YgZWFjaCBKcGVnIHNpemUgdG8gYmUgb25lIG9mIHdlbGwga25vd24gb25lcworKGUuPHdici8+Zy48d2JyLz4gNDozLDx3YnIvPiAxNjo5LDx3YnIvPiAzOjIgZXRjLjx3YnIvPikuPHdici8+IElmIHRoZSBzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uCisoZGVmaW5lZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4pIGhhcyBhbiBhc3BlY3QgcmF0aW8gb3RoZXIgdGhhbiB0aGVzZSw8d2JyLz4KK2l0IGRvZXMgbm90IGhhdmUgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHN1cHBvcnRlZCBKUEVHIHNpemVzLjx3YnIvPjwvbGk+Cis8bGk+U29tZSBoYXJkd2FyZSBKUEVHIGVuY29kZXJzIG1heSBoYXZlIHBpeGVsIGJvdW5kYXJ5IGFsaWdubWVudCByZXF1aXJlbWVudHMsPHdici8+IHN1Y2ggYXMKK3RoZSBkaW1lbnNpb25zIGJlaW5nIGEgbXVsdGlwbGUgb2YgMTYuPHdici8+PC9saT4KKzwvdWw+Cis8cD5UaGVyZWZvcmUsPHdici8+IHRoZSBtYXhpbXVtIEpQRUcgc2l6ZSBtYXkgYmUgc21hbGxlciB0aGFuIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24uPHdici8+CitIb3dldmVyLDx3YnIvPiB0aGUgbGFyZ2VzdCBKUEVHIHNpemUgbXVzdCBiZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aGUgc2Vuc29yIG1heGltdW0KK3Jlc29sdXRpb24gZ2l2ZW4gYWJvdmUgY29uc3RyYWludHMuPHdici8+IEl0IGlzIHJlcXVpcmVkIHRoYXQgYWZ0ZXIgYXNwZWN0IHJhdGlvIGFkanVzdG1lbnRzLDx3YnIvPgorYWRkaXRpb25hbCBzaXplIHJlZHVjdGlvbiBkdWUgdG8gb3RoZXIgaXNzdWVzIG11c3QgYmUgbGVzcyB0aGFuIDMlIGluIGFyZWEuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPgoraWYgdGhlIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24gaXMgMzI4MHgyNDY0LDx3YnIvPiBpZiB0aGUgbWF4aW11bSBKUEVHIHNpemUgaGFzIGFzcGVjdAorcmF0aW8gNDozLDx3YnIvPiB0aGUgSlBFRyBlbmNvZGVyIGFsaWdubWVudCByZXF1aXJlbWVudCBpcyAxNiw8d2JyLz4gdGhlIG1heGltdW0gSlBFRyBzaXplIHdpbGwgYmUKKzMyNjR4MjQ0OC48d2JyLz48L3A+Cis8cD5Gb3IgRlVMTCBjYXBhYmlsaXR5IGRldmljZXMgKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBGVUxMPC9jb2RlPiksPHdici8+Cit0aGUgSEFMIG11c3QgaW5jbHVkZSBhbGwgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggc2l6ZXMgdGhhdCBoYXZlIEpQRUcgc2l6ZXMgbGlzdGVkCitoZXJlIGFzIG91dHB1dCBzdHJlYW1zLjx3YnIvPjwvcD4KKzxwPkl0IG11c3QgYWxzbyBpbmNsdWRlIGVhY2ggYmVsb3cgcmVzb2x1dGlvbiBpZiBpdCBpcyBzbWFsbGVyIHRoYW4gb3IKK2VxdWFsIHRvIHRoZSBzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uIChmb3IgYm90aCBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCBhbmQgSlBFRworZm9ybWF0cyksPHdici8+IGFzIG91dHB1dCBzdHJlYW1zOjwvcD4KKzx1bD4KKzxsaT4yNDBwICgzMjAgeCAyNDApPC9saT4KKzxsaT40ODBwICg2NDAgeCA0ODApPC9saT4KKzxsaT43MjBwICgxMjgwIHggNzIwKTwvbGk+Cis8bGk+MTA4MHAgKDE5MjAgeCAxMDgwKTwvbGk+Cis8L3VsPgorPHA+Rm9yIExJTUlURUQgY2FwYWJpbGl0eSBkZXZpY2VzCisoPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IExJTUlURUQ8L2NvZGU+KSw8d2JyLz4KK3RoZSBIQUwgb25seSBoYXMgdG8gbGlzdCB1cCB0byB0aGUgbWF4aW11bSB2aWRlbyBzaXplCitzdXBwb3J0ZWQgYnkgdGhlIGRldmljZS48d2JyLz48L3A+Cis8cD5SZWdhcmRsZXNzIG9mIGhhcmR3YXJlIGxldmVsLDx3YnIvPiBldmVyeSBvdXRwdXQgcmVzb2x1dGlvbiBhdmFpbGFibGUgZm9yCitZVVZfPHdici8+NDIwXzx3YnIvPjg4OCBtdXN0IGFsc28gYmUgYXZhaWxhYmxlIGZvciBJTVBMRU1FTlRBVElPTl88d2JyLz5ERUZJTkVELjx3YnIvPjwvcD4KKzxwPlRoaXMgc3VwZXJjZWRlcyB0aGUgZm9sbG93aW5nIGZpZWxkcyw8d2JyLz4gd2hpY2ggYXJlIG5vdyBkZXByZWNhdGVkOjwvcD4KKzx1bD4KKzxsaT5hdmFpbGFibGVGb3JtYXRzPC9saT4KKzxsaT5hdmFpbGFibGVbUHJvY2Vzc2VkLDx3YnIvPlJhdyw8d2JyLz5KcGVnXVNpemVzPC9saT4KKzwvdWw+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWluRnJhbWVEdXJhdGlvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+TWluPHdici8+RnJhbWU8d2JyLz5EdXJhdGlvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQgeCBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWMgYXMgc3RyZWFtQ29uZmlndXJhdGlvbkR1cmF0aW9uXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhpcyBsaXN0cyB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBmb3IgZWFjaAorZm9ybWF0Lzx3YnIvPnNpemUgY29tYmluYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIChmb3JtYXQsPHdici8+IHdpZHRoLDx3YnIvPiBoZWlnaHQsPHdici8+IG5zKSB4IG4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgc2hvdWxkIGNvcnJlc3BvbmQgdG8gdGhlIGZyYW1lIGR1cmF0aW9uIHdoZW4gb25seSB0aGF0CitzdHJlYW0gaXMgYWN0aXZlLDx3YnIvPiB3aXRoIGFsbCBwcm9jZXNzaW5nICh0eXBpY2FsbHkgaW4gYW5kcm9pZC48d2JyLz4qLjx3YnIvPm1vZGUpCitzZXQgdG8gZWl0aGVyIE9GRiBvciBGQVNULjx3YnIvPjwvcD4KKzxwPldoZW4gbXVsdGlwbGUgc3RyZWFtcyBhcmUgdXNlZCBpbiBhIHJlcXVlc3QsPHdici8+IHRoZSBtaW5pbXVtIGZyYW1lCitkdXJhdGlvbiB3aWxsIGJlIG1heChpbmRpdmlkdWFsIHN0cmVhbSBtaW4gZHVyYXRpb25zKS48d2JyLz48L3A+Cis8cD5UaGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBvZiBhIHN0cmVhbSAob2YgYSBwYXJ0aWN1bGFyIGZvcm1hdCw8d2JyLz4gc2l6ZSkKK2lzIHRoZSBzYW1lIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgc3RyZWFtIGlzIGlucHV0IG9yIG91dHB1dC48d2JyLz48L3A+Cis8cD5TZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+IGFuZAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdGFsbER1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RhbGw8d2JyLz5EdXJhdGlvbnM8L2E+IGZvciBtb3JlIGRldGFpbHMgYWJvdXQKK2NhbGN1bGF0aW5nIHRoZSBtYXggZnJhbWUgcmF0ZS48d2JyLz48L3A+Cis8cD4oS2VlcCBpbiBzeW5jIHdpdGgKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb248L2E+KTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0YWxsPHdici8+RHVyYXRpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0IHggbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljIGFzIHN0cmVhbUNvbmZpZ3VyYXRpb25EdXJhdGlvbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbGlzdHMgdGhlIG1heGltdW0gc3RhbGwgZHVyYXRpb24gZm9yIGVhY2gKK291dHB1dCBmb3JtYXQvPHdici8+c2l6ZSBjb21iaW5hdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgKGZvcm1hdCw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCw8d2JyLz4gbnMpIHggbgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QSBzdGFsbCBkdXJhdGlvbiBpcyBob3cgbXVjaCBleHRyYSB0aW1lIHdvdWxkIGdldCBhZGRlZAordG8gdGhlIG5vcm1hbCBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIGZvciBhIHJlcGVhdGluZyByZXF1ZXN0Cit0aGF0IGhhcyBzdHJlYW1zIHdpdGggbm9uLXplcm8gc3RhbGwuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGNvbnNpZGVyIEpQRUcgY2FwdHVyZXMgd2hpY2ggaGF2ZSB0aGUgZm9sbG93aW5nCitjaGFyYWN0ZXJpc3RpY3M6PC9wPgorPHVsPgorPGxpPkpQRUcgc3RyZWFtcyBhY3QgbGlrZSBwcm9jZXNzZWQgWVVWIHN0cmVhbXMgaW4gcmVxdWVzdHMgZm9yIHdoaWNoCit0aGV5IGFyZSBub3QgaW5jbHVkZWQ7IGluIHJlcXVlc3RzIGluIHdoaWNoIHRoZXkgYXJlIGRpcmVjdGx5CityZWZlcmVuY2VkLDx3YnIvPiB0aGV5IGFjdCBhcyBKUEVHIHN0cmVhbXMuPHdici8+IFRoaXMgaXMgYmVjYXVzZSBzdXBwb3J0aW5nIGEKK0pQRUcgc3RyZWFtIHJlcXVpcmVzIHRoZSB1bmRlcmx5aW5nIFlVViBkYXRhIHRvIGFsd2F5cyBiZSByZWFkeSBmb3IKK3VzZSBieSBhIEpQRUcgZW5jb2Rlciw8d2JyLz4gYnV0IHRoZSBlbmNvZGVyIHdpbGwgb25seSBiZSB1c2VkIChhbmQgaW1wYWN0CitmcmFtZSBkdXJhdGlvbikgb24gcmVxdWVzdHMgdGhhdCBhY3R1YWxseSByZWZlcmVuY2UgYSBKUEVHIHN0cmVhbS48d2JyLz48L2xpPgorPGxpPlRoZSBKUEVHIHByb2Nlc3NvciBjYW4gcnVuIGNvbmN1cnJlbnRseSB0byB0aGUgcmVzdCBvZiB0aGUgY2FtZXJhCitwaXBlbGluZSw8d2JyLz4gYnV0IGNhbm5vdCBwcm9jZXNzIG1vcmUgdGhhbiAxIGNhcHR1cmUgYXQgYSB0aW1lLjx3YnIvPjwvbGk+Cis8L3VsPgorPHA+SW4gb3RoZXIgd29yZHMsPHdici8+IHVzaW5nIGEgcmVwZWF0aW5nIFlVViByZXF1ZXN0IHdvdWxkIHJlc3VsdAoraW4gYSBzdGVhZHkgZnJhbWUgcmF0ZSAobGV0J3Mgc2F5IGl0J3MgMzAgRlBTKS48d2JyLz4gSWYgYSBzaW5nbGUKK0pQRUcgcmVxdWVzdCBpcyBzdWJtaXR0ZWQgcGVyaW9kaWNhbGx5LDx3YnIvPiB0aGUgZnJhbWUgcmF0ZSB3aWxsIHN0YXkKK2F0IDMwIEZQUyAoYXMgbG9uZyBhcyB3ZSB3YWl0IGZvciB0aGUgcHJldmlvdXMgSlBFRyB0byByZXR1cm4gZWFjaAordGltZSkuPHdici8+IElmIHdlIHRyeSB0byBzdWJtaXQgYSByZXBlYXRpbmcgWVVWICsgSlBFRyByZXF1ZXN0LDx3YnIvPiB0aGVuCit0aGUgZnJhbWUgcmF0ZSB3aWxsIGRyb3AgZnJvbSAzMCBGUFMuPHdici8+PC9wPgorPHA+SW4gZ2VuZXJhbCw8d2JyLz4gc3VibWl0dGluZyBhIG5ldyByZXF1ZXN0IHdpdGggYSBub24tMCBzdGFsbCB0aW1lCitzdHJlYW0gd2lsbCA8ZW0+bm90PC9lbT4gY2F1c2UgYSBmcmFtZSByYXRlIGRyb3AgdW5sZXNzIHRoZXJlIGFyZSBzdGlsbAorb3V0c3RhbmRpbmcgYnVmZmVycyBmb3IgdGhhdCBzdHJlYW0gZnJvbSBwcmV2aW91cyByZXF1ZXN0cy48d2JyLz48L3A+Cis8cD5TdWJtaXR0aW5nIGEgcmVwZWF0aW5nIHJlcXVlc3Qgd2l0aCBzdHJlYW1zIChjYWxsIHRoaXMgPGNvZGU+UzwvY29kZT4pCitpcyB0aGUgc2FtZSBhcyBzZXR0aW5nIHRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIGZyb20KK3RoZSBub3JtYWwgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBjb3JyZXNwb25kaW5nIHRvIDxjb2RlPlM8L2NvZGU+LDx3YnIvPiBhZGRlZCB3aXRoCit0aGUgbWF4aW11bSBzdGFsbCBkdXJhdGlvbiBmb3IgPGNvZGU+UzwvY29kZT4uPHdici8+PC9wPgorPHA+SWYgaW50ZXJsZWF2aW5nIHJlcXVlc3RzIHdpdGggYW5kIHdpdGhvdXQgYSBzdGFsbCBkdXJhdGlvbiw8d2JyLz4KK2EgcmVxdWVzdCB3aWxsIHN0YWxsIGJ5IHRoZSBtYXhpbXVtIG9mIHRoZSByZW1haW5pbmcgdGltZXMKK2ZvciBlYWNoIGNhbi1zdGFsbCBzdHJlYW0gd2l0aCBvdXRzdGFuZGluZyBidWZmZXJzLjx3YnIvPjwvcD4KKzxwPlRoaXMgbWVhbnMgdGhhdCBhIHN0YWxsaW5nIHJlcXVlc3Qgd2lsbCBub3QgaGF2ZSBhbiBleHBvc3VyZSBzdGFydAordW50aWwgdGhlIHN0YWxsIGhhcyBjb21wbGV0ZWQuPHdici8+PC9wPgorPHA+VGhpcyBzaG91bGQgY29ycmVzcG9uZCB0byB0aGUgc3RhbGwgZHVyYXRpb24gd2hlbiBvbmx5IHRoYXQgc3RyZWFtIGlzCithY3RpdmUsPHdici8+IHdpdGggYWxsIHByb2Nlc3NpbmcgKHR5cGljYWxseSBpbiBhbmRyb2lkLjx3YnIvPiouPHdici8+bW9kZSkgc2V0IHRvIEZBU1QKK29yIE9GRi48d2JyLz4gU2V0dGluZyBhbnkgb2YgdGhlIHByb2Nlc3NpbmcgbW9kZXMgdG8gSElHSF88d2JyLz5RVUFMSVRZCitlZmZlY3RpdmVseSByZXN1bHRzIGluIGFuIGluZGV0ZXJtaW5hdGUgc3RhbGwgZHVyYXRpb24gZm9yIGFsbAorc3RyZWFtcyBpbiBhIHJlcXVlc3QgKHRoZSByZWd1bGFyIHN0YWxsIGNhbGN1bGF0aW9uIHJ1bGVzIGFyZQoraWdub3JlZCkuPHdici8+PC9wPgorPHA+VGhlIGZvbGxvd2luZyBmb3JtYXRzIG1heSBhbHdheXMgaGF2ZSBhIHN0YWxsIGR1cmF0aW9uOjwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1JBV19TRU5TT1IiPkltYWdlRm9ybWF0I1JBV188d2JyLz5TRU5TT1I8L2E+PC9saT4KKzwvdWw+Cis8cD5UaGUgZm9sbG93aW5nIGZvcm1hdHMgd2lsbCBuZXZlciBoYXZlIGEgc3RhbGwgZHVyYXRpb246PC9wPgorPHVsPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVcxMCI+SW1hZ2VGb3JtYXQjUkFXMTA8L2E+PC9saT4KKzwvdWw+Cis8cD5BbGwgb3RoZXIgZm9ybWF0cyBtYXkgb3IgbWF5IG5vdCBoYXZlIGFuIGFsbG93ZWQgc3RhbGwgZHVyYXRpb24gb24KK2EgcGVyLWNhcGFiaWxpdHkgYmFzaXM7IHJlZmVyIHRvIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4KK2ZvciBtb3JlIGRldGFpbHMuPHdici8+PC9wPgorPHA+U2VlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dAorY2FsY3VsYXRpbmcgdGhlIG1heCBmcmFtZSByYXRlIChhYnNlbnQgc3RhbGxzKS48d2JyLz48L3A+Cis8cD4oS2VlcCB1cCB0byBkYXRlIHdpdGgKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dFN0YWxsRHVyYXRpb248L2E+ICk8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIHBvc3NpYmxlLDx3YnIvPiBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IGFsbCBub24tSlBFRyBmb3JtYXRzCisoc3VjaCBhcyBSQVcxNikgc2hvdWxkIG5vdCBoYXZlIGEgc3RhbGwgZHVyYXRpb24uPHdici8+IFJBVzEwLDx3YnIvPiBSQVcxMiw8d2JyLz4gUkFXXzx3YnIvPk9QQVFVRQorYW5kIElNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQgbXVzdCBub3QgaGF2ZSBzdGFsbCBkdXJhdGlvbnMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpYyBhcyBzdHJlYW1Db25maWd1cmF0aW9uTWFwXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBhdmFpbGFibGUgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIHRoYXQgdGhpcworY2FtZXJhIGRldmljZSBzdXBwb3J0czsgYWxzbyBpbmNsdWRlcyB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbnMKK2FuZCB0aGUgc3RhbGwgZHVyYXRpb25zIGZvciBlYWNoIGZvcm1hdC88d2JyLz5zaXplIGNvbWJpbmF0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFsbCBjYW1lcmEgZGV2aWNlcyB3aWxsIHN1cHBvcnQgc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbiAoZGVmaW5lZCBieQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+KSBmb3IgdGhlIEpQRUcgZm9ybWF0Ljx3YnIvPjwvcD4KKzxwPkZvciBhIGdpdmVuIHVzZSBjYXNlLDx3YnIvPiB0aGUgYWN0dWFsIG1heGltdW0gc3VwcG9ydGVkIHJlc29sdXRpb24KK21heSBiZSBsb3dlciB0aGFuIHdoYXQgaXMgbGlzdGVkIGhlcmUsPHdici8+IGRlcGVuZGluZyBvbiB0aGUgZGVzdGluYXRpb24KK1N1cmZhY2UgZm9yIHRoZSBpbWFnZSBkYXRhLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gZm9yIHJlY29yZGluZyB2aWRlbyw8d2JyLz4KK3RoZSB2aWRlbyBlbmNvZGVyIGNob3NlbiBtYXkgaGF2ZSBhIG1heGltdW0gc2l6ZSBsaW1pdCAoZS48d2JyLz5nLjx3YnIvPiAxMDgwcCkKK3NtYWxsZXIgdGhhbiB3aGF0IHRoZSBjYW1lcmEgKGUuPHdici8+Zy48d2JyLz4gbWF4aW11bSByZXNvbHV0aW9uIGlzIDMyNjR4MjQ0OCkKK2NhbiBwcm92aWRlLjx3YnIvPjwvcD4KKzxwPlBsZWFzZSByZWZlcmVuY2UgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBpbWFnZSBkYXRhIGRlc3RpbmF0aW9uIHRvCitjaGVjayBpZiBpdCBsaW1pdHMgdGhlIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2UgZGF0YS48d2JyLz48L3A+Cis8cD5UaGUgZm9sbG93aW5nIHRhYmxlIGRlc2NyaWJlcyB0aGUgbWluaW11bSByZXF1aXJlZCBvdXRwdXQgc3RyZWFtCitjb25maWd1cmF0aW9ucyBiYXNlZCBvbiB0aGUgaGFyZHdhcmUgbGV2ZWwKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4pOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5Gb3JtYXQ8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlNpemU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPkhhcmR3YXJlIExldmVsPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gKCoxKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj4xOTIweDEwODAgKDEwODBwKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5pZiAxMDgwcCAmbHQ7PSBhY3RpdmVBcnJheVNpemU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj4xMjgweDcyMCAoNzIwcCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+aWYgNzIwcCAmbHQ7PSBhY3RpdmVBcnJheVNpemU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj42NDB4NDgwICg0ODBwKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5pZiA0ODBwICZsdDs9IGFjdGl2ZUFycmF5U2l6ZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjMyMHgyNDAgKDI0MHApPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmlmIDI0MHAgJmx0Oz0gYWN0aXZlQXJyYXlTaXplPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5hbGwgb3V0cHV0IHNpemVzIGF2YWlsYWJsZSBmb3IgSlBFRzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RlVMTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5hbGwgb3V0cHV0IHNpemVzIGF2YWlsYWJsZSBmb3IgSlBFRyw8d2JyLz4gdXAgdG8gdGhlIG1heGltdW0gdmlkZW8gc2l6ZTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TElNSVRFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNQUklWQVRFIj5JbWFnZUZvcm1hdCNQUklWQVRFPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+c2FtZSBhcyBZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+UmVmZXIgdG8gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPiBhbmQgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNhcHR1cmVTZXNzaW9uPC9hPiBmb3IgYWRkaXRpb25hbCBtYW5kYXRvcnkKK3N0cmVhbSBjb25maWd1cmF0aW9ucyBvbiBhIHBlci1jYXBhYmlsaXR5IGJhc2lzLjx3YnIvPjwvcD4KKzxwPioxOiBGb3IgSlBFRyBmb3JtYXQsPHdici8+IHRoZSBzaXplcyBtYXkgYmUgcmVzdHJpY3RlZCBieSBiZWxvdyBjb25kaXRpb25zOjwvcD4KKzx1bD4KKzxsaT5UaGUgSEFMIG1heSBjaG9vc2UgdGhlIGFzcGVjdCByYXRpbyBvZiBlYWNoIEpwZWcgc2l6ZSB0byBiZSBvbmUgb2Ygd2VsbCBrbm93biBvbmVzCisoZS48d2JyLz5nLjx3YnIvPiA0OjMsPHdici8+IDE2OjksPHdici8+IDM6MiBldGMuPHdici8+KS48d2JyLz4gSWYgdGhlIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24KKyhkZWZpbmVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPikgaGFzIGFuIGFzcGVjdCByYXRpbyBvdGhlciB0aGFuIHRoZXNlLDx3YnIvPgoraXQgZG9lcyBub3QgaGF2ZSB0byBiZSBpbmNsdWRlZCBpbiB0aGUgc3VwcG9ydGVkIEpQRUcgc2l6ZXMuPHdici8+PC9saT4KKzxsaT5Tb21lIGhhcmR3YXJlIEpQRUcgZW5jb2RlcnMgbWF5IGhhdmUgcGl4ZWwgYm91bmRhcnkgYWxpZ25tZW50IHJlcXVpcmVtZW50cyw8d2JyLz4gc3VjaCBhcwordGhlIGRpbWVuc2lvbnMgYmVpbmcgYSBtdWx0aXBsZSBvZiAxNi48d2JyLz4KK1RoZXJlZm9yZSw8d2JyLz4gdGhlIG1heGltdW0gSlBFRyBzaXplIG1heSBiZSBzbWFsbGVyIHRoYW4gc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbi48d2JyLz4KK0hvd2V2ZXIsPHdici8+IHRoZSBsYXJnZXN0IEpQRUcgc2l6ZSB3aWxsIGJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRoZSBzZW5zb3IgbWF4aW11bQorcmVzb2x1dGlvbiBnaXZlbiBhYm92ZSBjb25zdHJhaW50cy48d2JyLz4gSXQgaXMgcmVxdWlyZWQgdGhhdCBhZnRlciBhc3BlY3QgcmF0aW8gYWRqdXN0bWVudHMsPHdici8+CithZGRpdGlvbmFsIHNpemUgcmVkdWN0aW9uIGR1ZSB0byBvdGhlciBpc3N1ZXMgbXVzdCBiZSBsZXNzIHRoYW4gMyUgaW4gYXJlYS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+CitpZiB0aGUgc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbiBpcyAzMjgweDI0NjQsPHdici8+IGlmIHRoZSBtYXhpbXVtIEpQRUcgc2l6ZSBoYXMgYXNwZWN0CityYXRpbyA0OjMsPHdici8+IGFuZCB0aGUgSlBFRyBlbmNvZGVyIGFsaWdubWVudCByZXF1aXJlbWVudCBpcyAxNiw8d2JyLz4gdGhlIG1heGltdW0gSlBFRyBzaXplIHdpbGwgYmUKKzMyNjR4MjQ0OC48d2JyLz48L2xpPgorPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RG8gbm90IHNldCB0aGlzIHByb3BlcnR5IGRpcmVjdGx5CisoaXQgaXMgc3ludGhldGljIGFuZCB3aWxsIG5vdCBiZSBhdmFpbGFibGUgYXQgdGhlIEhBTCBsYXllcik7CitzZXQgdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPiBpbnN0ZWFkLjx3YnIvPjwvcD4KKzxwPk5vdCBhbGwgb3V0cHV0IGZvcm1hdHMgbWF5IGJlIHN1cHBvcnRlZCBpbiBhIGNvbmZpZ3VyYXRpb24gd2l0aAorYW4gaW5wdXQgc3RyZWFtIG9mIGEgcGFydGljdWxhciBmb3JtYXQuPHdici8+IEZvciBtb3JlIGRldGFpbHMsPHdici8+IHNlZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPklucHV0PHdici8+T3V0cHV0PHdici8+Rm9ybWF0czx3YnIvPk1hcDwvYT4uPHdici8+PC9wPgorPHA+SXQgaXMgcmVjb21tZW5kZWQgKGJ1dCBub3QgbWFuZGF0b3J5KSB0byBhbHNvIGluY2x1ZGUgaGFsZi88d2JyLz5xdWFydGVyCitvZiBzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uIGZvciBKUEVHIGZvcm1hdHMgKHJlZ2FyZGxlc3Mgb2YgaGFyZHdhcmUKK2xldmVsKS48d2JyLz48L3A+Cis8cD4oVGhlIGZvbGxvd2luZyBpcyBhIHJld29yZGluZyBvZiB0aGUgYWJvdmUgcmVxdWlyZWQgdGFibGUpOjwvcD4KKzxwPlRoZSBIQUwgbXVzdCBpbmNsdWRlIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24gKGRlZmluZWQgYnkKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPikuPHdici8+PC9wPgorPHA+Rm9yIEZVTEwgY2FwYWJpbGl0eSBkZXZpY2VzICg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gRlVMTDwvY29kZT4pLDx3YnIvPgordGhlIEhBTCBtdXN0IGluY2x1ZGUgYWxsIFlVVl88d2JyLz40MjBfPHdici8+ODg4IHNpemVzIHRoYXQgaGF2ZSBKUEVHIHNpemVzIGxpc3RlZAoraGVyZSBhcyBvdXRwdXQgc3RyZWFtcy48d2JyLz48L3A+Cis8cD5JdCBtdXN0IGFsc28gaW5jbHVkZSBlYWNoIGJlbG93IHJlc29sdXRpb24gaWYgaXQgaXMgc21hbGxlciB0aGFuIG9yCitlcXVhbCB0byB0aGUgc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbiAoZm9yIGJvdGggWVVWXzx3YnIvPjQyMF88d2JyLz44ODggYW5kIEpQRUcKK2Zvcm1hdHMpLDx3YnIvPiBhcyBvdXRwdXQgc3RyZWFtczo8L3A+Cis8dWw+Cis8bGk+MjQwcCAoMzIwIHggMjQwKTwvbGk+Cis8bGk+NDgwcCAoNjQwIHggNDgwKTwvbGk+Cis8bGk+NzIwcCAoMTI4MCB4IDcyMCk8L2xpPgorPGxpPjEwODBwICgxOTIwIHggMTA4MCk8L2xpPgorPC91bD4KKzxwPkZvciBMSU1JVEVEIGNhcGFiaWxpdHkgZGV2aWNlcworKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBMSU1JVEVEPC9jb2RlPiksPHdici8+Cit0aGUgSEFMIG9ubHkgaGFzIHRvIGxpc3QgdXAgdG8gdGhlIG1heGltdW0gdmlkZW8gc2l6ZQorc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UuPHdici8+PC9wPgorPHA+UmVnYXJkbGVzcyBvZiBoYXJkd2FyZSBsZXZlbCw8d2JyLz4gZXZlcnkgb3V0cHV0IHJlc29sdXRpb24gYXZhaWxhYmxlIGZvcgorWVVWXzx3YnIvPjQyMF88d2JyLz44ODggbXVzdCBhbHNvIGJlIGF2YWlsYWJsZSBmb3IgSU1QTEVNRU5UQVRJT05fPHdici8+REVGSU5FRC48d2JyLz48L3A+Cis8cD5UaGlzIHN1cGVyY2VkZXMgdGhlIGZvbGxvd2luZyBmaWVsZHMsPHdici8+IHdoaWNoIGFyZSBub3cgZGVwcmVjYXRlZDo8L3A+Cis8dWw+Cis8bGk+YXZhaWxhYmxlRm9ybWF0czwvbGk+Cis8bGk+YXZhaWxhYmxlW1Byb2Nlc3NlZCw8d2JyLz5SYXcsPHdici8+SnBlZ11TaXplczwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmNyb3BwaW5nVHlwZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wcGluZzx3YnIvPlR5cGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DRU5URVJfT05MWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugb25seSBzdXBwb3J0cyBjZW50ZXJlZCBjcm9wIHJlZ2lvbnMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RlJFRUZPUk08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIGFyYml0cmFyaWx5IGNob3NlbiBjcm9wIHJlZ2lvbnMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGNyb3AgdHlwZSB0aGF0IHRoaXMgY2FtZXJhIGRldmljZSBzdXBwb3J0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHBhc3NpbmcgYSBub24tY2VudGVyZWQgY3JvcCByZWdpb24gKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPikgdG8gYSBjYW1lcmEKK2RldmljZSB0aGF0IG9ubHkgc3VwcG9ydHMgQ0VOVEVSXzx3YnIvPk9OTFkgY3JvcHBpbmcsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbW92ZSB0aGUKK2Nyb3AgcmVnaW9uIHRvIHRoZSBjZW50ZXIgb2YgdGhlIHNlbnNvciBhY3RpdmUgYXJyYXkgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPikKK2FuZCBrZWVwIHRoZSBjcm9wIHJlZ2lvbiB3aWR0aCBhbmQgaGVpZ2h0IHVuY2hhbmdlZC48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCByZXR1cm4gdGhlCitmaW5hbCB1c2VkIGNyb3AgcmVnaW9uIGluIG1ldGFkYXRhIHJlc3VsdCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4uPHdici8+PC9wPgorPHA+Q2FtZXJhIGRldmljZXMgdGhhdCBzdXBwb3J0IEZSRUVGT1JNIGNyb3BwaW5nIHdpbGwgc3VwcG9ydCBhbnkgY3JvcCByZWdpb24gdGhhdAoraXMgaW5zaWRlIG9mIHRoZSBhY3RpdmUgYXJyYXkuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgYXBwbHkgdGhlIHNhbWUgY3JvcCByZWdpb24gYW5kCityZXR1cm4gdGhlIGZpbmFsIHVzZWQgY3JvcCByZWdpb24gaW4gY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+Ljx3YnIvPjwvcD4KKzxwPkxFR0FDWSBjYXBhYmlsaXR5IGRldmljZXMgd2lsbCBvbmx5IHN1cHBvcnQgQ0VOVEVSXzx3YnIvPk9OTFkgY3JvcHBpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByZWN0YW5nbGVdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCByZWdpb24gb2YgdGhlIHNlbnNvciB0byByZWFkIG91dCBmb3IgdGhpcyBjYXB0dXJlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBQaXhlbCBjb29yZGluYXRlcyByZWxhdGl2ZSB0bworICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGRpZ2l0YWwgem9vbS48d2JyLz48L3A+Cis8cD5UaGUgY3JvcCByZWdpb24gY29vcmRpbmF0ZSBzeXN0ZW0gaXMgYmFzZWQgb2ZmCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4sPHdici8+IHdpdGggPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiBiZWluZyB0aGUKK3RvcC1sZWZ0IGNvcm5lciBvZiB0aGUgc2Vuc29yIGFjdGl2ZSBhcnJheS48d2JyLz48L3A+Cis8cD5PdXRwdXQgc3RyZWFtcyB1c2UgdGhpcyByZWN0YW5nbGUgdG8gcHJvZHVjZSB0aGVpciBvdXRwdXQsPHdici8+Citjcm9wcGluZyB0byBhIHNtYWxsZXIgcmVnaW9uIGlmIG5lY2Vzc2FyeSB0byBtYWludGFpbiB0aGUKK3N0cmVhbSdzIGFzcGVjdCByYXRpbyw8d2JyLz4gdGhlbiBzY2FsaW5nIHRoZSBzZW5zb3IgaW5wdXQgdG8KK21hdGNoIHRoZSBvdXRwdXQncyBjb25maWd1cmVkIHJlc29sdXRpb24uPHdici8+PC9wPgorPHA+VGhlIGNyb3AgcmVnaW9uIGlzIGFwcGxpZWQgYWZ0ZXIgdGhlIFJBVyB0byBvdGhlciBjb2xvcgorc3BhY2UgKGUuPHdici8+Zy48d2JyLz4gWVVWKSBjb252ZXJzaW9uLjx3YnIvPiBTaW5jZSByYXcgc3RyZWFtcworKGUuPHdici8+Zy48d2JyLz4gUkFXMTYpIGRvbid0IGhhdmUgdGhlIGNvbnZlcnNpb24gc3RhZ2UsPHdici8+IHRoZXkgYXJlIG5vdAorY3JvcHBhYmxlLjx3YnIvPiBUaGUgY3JvcCByZWdpb24gd2lsbCBiZSBpZ25vcmVkIGJ5IHJhdyBzdHJlYW1zLjx3YnIvPjwvcD4KKzxwPkZvciBub24tcmF3IHN0cmVhbXMsPHdici8+IGFueSBhZGRpdGlvbmFsIHBlci1zdHJlYW0gY3JvcHBpbmcgd2lsbAorYmUgZG9uZSB0byBtYXhpbWl6ZSB0aGUgZmluYWwgcGl4ZWwgYXJlYSBvZiB0aGUgc3RyZWFtLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgY3JvcCByZWdpb24gaXMgc2V0IHRvIGEgNDozIGFzcGVjdAorcmF0aW8sPHdici8+IHRoZW4gNDozIHN0cmVhbXMgd2lsbCB1c2UgdGhlIGV4YWN0IGNyb3AKK3JlZ2lvbi48d2JyLz4gMTY6OSBzdHJlYW1zIHdpbGwgZnVydGhlciBjcm9wIHZlcnRpY2FsbHkKKyhsZXR0ZXJib3gpLjx3YnIvPjwvcD4KKzxwPkNvbnZlcnNlbHksPHdici8+IGlmIHRoZSBjcm9wIHJlZ2lvbiBpcyBzZXQgdG8gYSAxNjo5LDx3YnIvPiB0aGVuIDQ6Mworb3V0cHV0cyB3aWxsIGNyb3AgaG9yaXpvbnRhbGx5IChwaWxsYXJib3gpLDx3YnIvPiBhbmQgMTY6OQorc3RyZWFtcyB3aWxsIG1hdGNoIGV4YWN0bHkuPHdici8+IFRoZXNlIGFkZGl0aW9uYWwgY3JvcHMgd2lsbAorYmUgY2VudGVyZWQgd2l0aGluIHRoZSBjcm9wIHJlZ2lvbi48d2JyLz48L3A+Cis8cD5UaGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgY3JvcCByZWdpb24gY2Fubm90CitiZSBzZXQgdG8gYmUgc21hbGxlciB0aGFuCis8Y29kZT5mbG9vciggYWN0aXZlQXJyYXlTaXplLjx3YnIvPndpZHRoIC88d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNYXhEaWdpdGFsWm9vbSI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+TWF4PHdici8+RGlnaXRhbDx3YnIvPlpvb208L2E+ICk8L2NvZGU+IGFuZAorPGNvZGU+Zmxvb3IoIGFjdGl2ZUFycmF5U2l6ZS48d2JyLz5oZWlnaHQgLzx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZU1heERpZ2l0YWxab29tIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5NYXg8d2JyLz5EaWdpdGFsPHdici8+Wm9vbTwvYT4gKTwvY29kZT4sPHdici8+IHJlc3BlY3RpdmVseS48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSBtYXkgYWRqdXN0IHRoZSBjcm9wIHJlZ2lvbiB0byBhY2NvdW50Citmb3Igcm91bmRpbmcgYW5kIG90aGVyIGhhcmR3YXJlIHJlcXVpcmVtZW50czsgdGhlIGZpbmFsCitjcm9wIHJlZ2lvbiB1c2VkIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dCBjYXB0dXJlCityZXN1bHQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgb3V0cHV0IHN0cmVhbXMgbXVzdCBtYWludGFpbiBzcXVhcmUgcGl4ZWxzIGF0IGFsbAordGltZXMsPHdici8+IG5vIG1hdHRlciB3aGF0IHRoZSByZWxhdGl2ZSBhc3BlY3QgcmF0aW9zIG9mIHRoZQorY3JvcCByZWdpb24gYW5kIHRoZSBzdHJlYW0gYXJlLjx3YnIvPiAgTmVnYXRpdmUgdmFsdWVzIGZvcgorY29ybmVyIGFyZSBhbGxvd2VkIGZvciByYXcgb3V0cHV0IGlmIGZ1bGwgcGl4ZWwgYXJyYXkgaXMKK2xhcmdlciB0aGFuIGFjdGl2ZSBwaXhlbCBhcnJheS48d2JyLz4gV2lkdGggYW5kIGhlaWdodCBtYXkgYmUKK3JvdW5kZWQgdG8gbmVhcmVzdCBsYXJnZXIgc3VwcG9ydGFibGUgd2lkdGgsPHdici8+IGVzcGVjaWFsbHkKK2ZvciByYXcgb3V0cHV0LDx3YnIvPiB3aGVyZSBvbmx5IGEgZmV3IGZpeGVkIHNjYWxlcyBtYXkgYmUKK3Bvc3NpYmxlLjx3YnIvPjwvcD4KKzxwPkZvciBhIHNldCBvZiBvdXRwdXQgc3RyZWFtcyBjb25maWd1cmVkLDx3YnIvPiBpZiB0aGUgc2Vuc29yIG91dHB1dCBpcyBjcm9wcGVkIHRvIGEgc21hbGxlcgorc2l6ZSB0aGFuIGFjdGl2ZSBhcnJheSBzaXplLDx3YnIvPiB0aGUgSEFMIG5lZWQgZm9sbG93IGJlbG93IGNyb3BwaW5nIHJ1bGVzOjwvcD4KKzx1bD4KKzxsaT4KKzxwPlRoZSBIQUwgbmVlZCBoYW5kbGUgdGhlIGNyb3BSZWdpb24gYXMgaWYgdGhlIHNlbnNvciBjcm9wIHNpemUgaXMgdGhlIGVmZmVjdGl2ZSBhY3RpdmUKK2FycmF5IHNpemUuPHdici8+TW9yZSBzcGVjaWZpY2FsbHksPHdici8+IHRoZSBIQUwgbXVzdCB0cmFuc2Zvcm0gdGhlIHJlcXVlc3QgY3JvcFJlZ2lvbiBmcm9tCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gdG8gdGhlIHNlbnNvciBjcm9wcGVkIHBpeGVsIGFyZWEgc2l6ZSBpbiB0aGlzIHdheTo8L3A+Cis8b2w+Cis8bGk+VHJhbnNsYXRlIHRoZSByZXF1ZXN0ZWQgY3JvcFJlZ2lvbiB3Ljx3YnIvPnIuPHdici8+dC4sPHdici8+IHRoZSBsZWZ0IHRvcCBjb3JuZXIgb2YgdGhlIHNlbnNvcgorY3JvcHBlZCBwaXhlbCBhcmVhIGJ5ICh0eCw8d2JyLz4gdHkpLDx3YnIvPgord2hlcmUgPGNvZGU+dHggPSBzZW5zb3JDcm9wLjx3YnIvPnRvcCAqIChzZW5zb3JDcm9wLjx3YnIvPmhlaWdodCAvPHdici8+IGFjdGl2ZUFycmF5U2l6ZS48d2JyLz5oZWlnaHQpPC9jb2RlPgorYW5kIDxjb2RlPnR4ID0gc2Vuc29yQ3JvcC48d2JyLz5sZWZ0ICogKHNlbnNvckNyb3AuPHdici8+d2lkdGggLzx3YnIvPiBhY3RpdmVBcnJheVNpemUuPHdici8+d2lkdGgpPC9jb2RlPi48d2JyLz4gVGhlCisoc2Vuc29yQ3JvcC48d2JyLz50b3AsPHdici8+IHNlbnNvckNyb3AuPHdici8+bGVmdCkgaXMgdGhlIGNvb3JkaW5hdGUgYmFzZWQgb2ZmIHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+U2NhbGUgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgcmVxdWVzdGVkIGNyb3BSZWdpb24gd2l0aCBzY2FsaW5nIGZhY3RvciBvZgorc2Vuc29yPHdici8+Q3JvcC48d2JyLz53aWR0aC88d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUuPHdici8+d2lkdGggYW5kIHNlbnNvcjx3YnIvPkNyb3AuPHdici8+aGVpZ2h0Lzx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZS48d2JyLz5oZWlnaHQKK3Jlc3BlY3RpdmVseS48d2JyLz4KK09uY2UgdGhpcyBuZXcgY3JvcFJlZ2lvbiBpcyBjYWxjdWxhdGVkLDx3YnIvPiB0aGUgSEFMIG11c3QgdXNlIHRoaXMgcmVnaW9uIHRvIGNyb3AgdGhlIGltYWdlCit3aXRoIHJlZ2FyZCB0byB0aGUgc2Vuc29yIGNyb3Agc2l6ZSAoZWZmZWN0aXZlIGFjdGl2ZSBhcnJheSBzaXplKS48d2JyLz4gVGhlIEhBTCBzdGlsbCBuZWVkCitmb2xsb3cgdGhlIGdlbmVyYWwgY3JvcHBpbmcgcnVsZSBmb3IgdGhpcyBuZXcgY3JvcFJlZ2lvbiBhbmQgZWZmZWN0aXZlIGFjdGl2ZQorYXJyYXkgc2l6ZS48d2JyLz48L2xpPgorPC9vbD4KKzwvbGk+Cis8bGk+Cis8cD5UaGUgSEFMIG11c3QgcmVwb3J0IHRoZSBjcm9wUmVnaW9uIHdpdGggcmVnYXJkIHRvIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz4KK1RoZSBIQUwgbmVlZCBjb252ZXJ0IHRoZSBuZXcgY3JvcFJlZ2lvbiBnZW5lcmF0ZWQgYWJvdmUgdy48d2JyLz5yLjx3YnIvPnQuLDx3YnIvPiBmdWxsIGFjdGl2ZSBhcnJheSBzaXplLjx3YnIvPgorVGhlIHJlcG9ydGVkIGNyb3BSZWdpb24gbWF5IGJlIHNsaWdodGx5IGRpZmZlcmVudCB3aXRoIHRoZSByZXF1ZXN0ZWQgY3JvcFJlZ2lvbiBzaW5jZQordGhlIEhBTCBtYXkgYWRqdXN0IHRoZSBjcm9wIHJlZ2lvbiB0byBhY2NvdW50IGZvciByb3VuZGluZyw8d2JyLz4gY29udmVyc2lvbiBlcnJvciw8d2JyLz4gb3Igb3RoZXIKK2hhcmR3YXJlIGxpbWl0YXRpb25zLjx3YnIvPjwvcD4KKzwvbGk+Cis8L3VsPgorPHA+SEFMMi48d2JyLz54IHVzZXMgb25seSAoeCw8d2JyLz4geSw8d2JyLz4gd2lkdGgpPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fc2Vuc29yIiBjbGFzcz0ic2VjdGlvbiI+c2Vuc29yPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkR1cmF0aW9uIGVhY2ggcGl4ZWwgaXMgZXhwb3NlZCB0bworbGlnaHQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmV4cG9zdXJlVGltZVJhbmdlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTx3YnIvPlJhbmdlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiB0aGUgc2Vuc29yIGNhbid0IGV4cG9zZSB0aGlzIGV4YWN0IGR1cmF0aW9uLDx3YnIvPiBpdCB3aWxsIHNob3J0ZW4gdGhlCitkdXJhdGlvbiBleHBvc2VkIHRvIHRoZSBuZWFyZXN0IHBvc3NpYmxlIHZhbHVlIChyYXRoZXIgdGhhbiBleHBvc2UgbG9uZ2VyKS48d2JyLz4KK1RoZSBmaW5hbCBleHBvc3VyZSB0aW1lIHVzZWQgd2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIG91dHB1dCBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzIHNldCB0bworT0ZGOyBvdGhlcndpc2UgdGhlIGF1dG8tZXhwb3N1cmUgYWxnb3JpdGhtIHdpbGwgb3ZlcnJpZGUgdGhpcyB2YWx1ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+RHVyYXRpb24gZnJvbSBzdGFydCBvZiBmcmFtZSBleHBvc3VyZSB0bworc3RhcnQgb2YgbmV4dCBmcmFtZSBleHBvc3VyZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5TZWUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLm1heEZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+bWF4PHdici8+RnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPnN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb248d2JyLz5NYXA8L2E+Ljx3YnIvPiBUaGUgZHVyYXRpb24KK2lzIGNhcHBlZCB0byA8Y29kZT5tYXgoZHVyYXRpb24sPHdici8+IGV4cG9zdXJlVGltZSArIG92ZXJoZWFkKTwvY29kZT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIGZyYW1lIHJhdGUgdGhhdCBjYW4gYmUgc3VwcG9ydGVkIGJ5IGEgY2FtZXJhIHN1YnN5c3RlbSBpcworYSBmdW5jdGlvbiBvZiBtYW55IGZhY3RvcnM6PC9wPgorPHVsPgorPGxpPlJlcXVlc3RlZCByZXNvbHV0aW9ucyBvZiBvdXRwdXQgaW1hZ2Ugc3RyZWFtczwvbGk+Cis8bGk+QXZhaWxhYmlsaXR5IG9mIGJpbm5pbmcgLzx3YnIvPiBza2lwcGluZyBtb2RlcyBvbiB0aGUgaW1hZ2VyPC9saT4KKzxsaT5UaGUgYmFuZHdpZHRoIG9mIHRoZSBpbWFnZXIgaW50ZXJmYWNlPC9saT4KKzxsaT5UaGUgYmFuZHdpZHRoIG9mIHRoZSB2YXJpb3VzIElTUCBwcm9jZXNzaW5nIGJsb2NrczwvbGk+Cis8L3VsPgorPHA+U2luY2UgdGhlc2UgZmFjdG9ycyBjYW4gdmFyeSBncmVhdGx5IGJldHdlZW4gZGlmZmVyZW50IElTUHMgYW5kCitzZW5zb3JzLDx3YnIvPiB0aGUgY2FtZXJhIGFic3RyYWN0aW9uIHRyaWVzIHRvIHJlcHJlc2VudCB0aGUgYmFuZHdpZHRoCityZXN0cmljdGlvbnMgd2l0aCBhcyBzaW1wbGUgYSBtb2RlbCBhcyBwb3NzaWJsZS48d2JyLz48L3A+Cis8cD5UaGUgbW9kZWwgcHJlc2VudGVkIGhhcyB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcmlzdGljczo8L3A+Cis8dWw+Cis8bGk+VGhlIGltYWdlIHNlbnNvciBpcyBhbHdheXMgY29uZmlndXJlZCB0byBvdXRwdXQgdGhlIHNtYWxsZXN0CityZXNvbHV0aW9uIHBvc3NpYmxlIGdpdmVuIHRoZSBhcHBsaWNhdGlvbidzIHJlcXVlc3RlZCBvdXRwdXQgc3RyZWFtCitzaXplcy48d2JyLz4gIFRoZSBzbWFsbGVzdCByZXNvbHV0aW9uIGlzIGRlZmluZWQgYXMgYmVpbmcgYXQgbGVhc3QgYXMgbGFyZ2UKK2FzIHRoZSBsYXJnZXN0IHJlcXVlc3RlZCBvdXRwdXQgc3RyZWFtIHNpemU7IHRoZSBjYW1lcmEgcGlwZWxpbmUgbXVzdAorbmV2ZXIgZGlnaXRhbGx5IHVwc2FtcGxlIHNlbnNvciBkYXRhIHdoZW4gdGhlIGNyb3AgcmVnaW9uIGNvdmVycyB0aGUKK3dob2xlIHNlbnNvci48d2JyLz4gSW4gZ2VuZXJhbCw8d2JyLz4gdGhpcyBtZWFucyB0aGF0IGlmIG9ubHkgc21hbGwgb3V0cHV0IHN0cmVhbQorcmVzb2x1dGlvbnMgYXJlIGNvbmZpZ3VyZWQsPHdici8+IHRoZSBzZW5zb3IgY2FuIHByb3ZpZGUgYSBoaWdoZXIgZnJhbWUKK3JhdGUuPHdici8+PC9saT4KKzxsaT5TaW5jZSBhbnkgcmVxdWVzdCBtYXkgdXNlIGFueSBvciBhbGwgdGhlIGN1cnJlbnRseSBjb25maWd1cmVkCitvdXRwdXQgc3RyZWFtcyw8d2JyLz4gdGhlIHNlbnNvciBhbmQgSVNQIG11c3QgYmUgY29uZmlndXJlZCB0byBzdXBwb3J0CitzY2FsaW5nIGEgc2luZ2xlIGNhcHR1cmUgdG8gYWxsIHRoZSBzdHJlYW1zIGF0IHRoZSBzYW1lIHRpbWUuPHdici8+ICBUaGlzCittZWFucyB0aGUgY2FtZXJhIHBpcGVsaW5lIG11c3QgYmUgcmVhZHkgdG8gcHJvZHVjZSB0aGUgbGFyZ2VzdAorcmVxdWVzdGVkIG91dHB1dCBzaXplIHdpdGhvdXQgYW55IGRlbGF5Ljx3YnIvPiAgVGhlcmVmb3JlLDx3YnIvPiB0aGUgb3ZlcmFsbAorZnJhbWUgcmF0ZSBvZiBhIGdpdmVuIGNvbmZpZ3VyZWQgc3RyZWFtIHNldCBpcyBnb3Zlcm5lZCBvbmx5IGJ5IHRoZQorbGFyZ2VzdCByZXF1ZXN0ZWQgc3RyZWFtIHJlc29sdXRpb24uPHdici8+PC9saT4KKzxsaT5Vc2luZyBtb3JlIHRoYW4gb25lIG91dHB1dCBzdHJlYW0gaW4gYSByZXF1ZXN0IGRvZXMgbm90IGFmZmVjdCB0aGUKK2ZyYW1lIGR1cmF0aW9uLjx3YnIvPjwvbGk+Cis8bGk+Q2VydGFpbiBmb3JtYXQtc3RyZWFtcyBtYXkgbmVlZCB0byBkbyBhZGRpdGlvbmFsIGJhY2tncm91bmQgcHJvY2Vzc2luZworYmVmb3JlIGRhdGEgaXMgY29uc3VtZWQvPHdici8+cHJvZHVjZWQgYnkgdGhhdCBzdHJlYW0uPHdici8+IFRoZXNlIHByb2Nlc3NvcnMKK2NhbiBydW4gY29uY3VycmVudGx5IHRvIHRoZSByZXN0IG9mIHRoZSBjYW1lcmEgcGlwZWxpbmUsPHdici8+IGJ1dAorY2Fubm90IHByb2Nlc3MgbW9yZSB0aGFuIDEgY2FwdHVyZSBhdCBhIHRpbWUuPHdici8+PC9saT4KKzwvdWw+Cis8cD5UaGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIGZvciB0aGUgYXBwbGljYXRpb24sPHdici8+IGdpdmVuIHRoZSBtb2RlbCBhYm92ZSw8d2JyLz4KK2lzIHByb3ZpZGVkIHZpYSB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5zdHJlYW1Db25maWd1cmF0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5zdHJlYW08d2JyLz5Db25maWd1cmF0aW9uPHdici8+TWFwPC9hPiBmaWVsZCB1c2luZworPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbjwvYT4uPHdici8+CitUaGVzZSBhcmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIG1heGltdW0gZnJhbWUgcmF0ZSAvPHdici8+IG1pbmltdW0gZnJhbWUKK2R1cmF0aW9uIHRoYXQgaXMgcG9zc2libGUgZm9yIGEgZ2l2ZW4gc3RyZWFtIGNvbmZpZ3VyYXRpb24uPHdici8+PC9wPgorPHA+U3BlY2lmaWNhbGx5LDx3YnIvPiB0aGUgYXBwbGljYXRpb24gY2FuIHVzZSB0aGUgZm9sbG93aW5nIHJ1bGVzIHRvCitkZXRlcm1pbmUgdGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gaXQgY2FuIHJlcXVlc3QgZnJvbSB0aGUgY2FtZXJhCitkZXZpY2U6PC9wPgorPG9sPgorPGxpPkxldCB0aGUgc2V0IG9mIGN1cnJlbnRseSBjb25maWd1cmVkIGlucHV0Lzx3YnIvPm91dHB1dCBzdHJlYW1zCitiZSBjYWxsZWQgPGNvZGU+UzwvY29kZT4uPHdici8+PC9saT4KKzxsaT5GaW5kIHRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9ucyBmb3IgZWFjaCBzdHJlYW0gaW4gPGNvZGU+UzwvY29kZT4sPHdici8+IGJ5IGxvb2tpbmcKK2l0IHVwIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcDwvYT4gdXNpbmcgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbjwvYT4KKyh3aXRoIGl0cyByZXNwZWN0aXZlIHNpemUvPHdici8+Zm9ybWF0KS48d2JyLz4gTGV0IHRoaXMgc2V0IG9mIGZyYW1lIGR1cmF0aW9ucyBiZQorY2FsbGVkIDxjb2RlPkY8L2NvZGU+Ljx3YnIvPjwvbGk+Cis8bGk+Rm9yIGFueSBnaXZlbiByZXF1ZXN0IDxjb2RlPlI8L2NvZGU+LDx3YnIvPiB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBhbGxvd2VkCitmb3IgPGNvZGU+UjwvY29kZT4gaXMgdGhlIG1heGltdW0gb3V0IG9mIGFsbCB2YWx1ZXMgaW4gPGNvZGU+RjwvY29kZT4uPHdici8+IExldCB0aGUgc3RyZWFtcwordXNlZCBpbiA8Y29kZT5SPC9jb2RlPiBiZSBjYWxsZWQgPGNvZGU+U188d2JyLz5yPC9jb2RlPi48d2JyLz48L2xpPgorPC9vbD4KKzxwPklmIG5vbmUgb2YgdGhlIHN0cmVhbXMgaW4gPGNvZGU+U188d2JyLz5yPC9jb2RlPiBoYXZlIGEgc3RhbGwgdGltZSAobGlzdGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dFN0YWxsRHVyYXRpb248L2E+Cit1c2luZyBpdHMgcmVzcGVjdGl2ZSBzaXplLzx3YnIvPmZvcm1hdCksPHdici8+IHRoZW4gdGhlIGZyYW1lIGR1cmF0aW9uIGluIDxjb2RlPkY8L2NvZGU+CitkZXRlcm1pbmVzIHRoZSBzdGVhZHkgc3RhdGUgZnJhbWUgcmF0ZSB0aGF0IHRoZSBhcHBsaWNhdGlvbiB3aWxsIGdldAoraWYgaXQgdXNlcyA8Y29kZT5SPC9jb2RlPiBhcyBhIHJlcGVhdGluZyByZXF1ZXN0Ljx3YnIvPiBMZXQgdGhpcyBzcGVjaWFsIGtpbmQgb2YKK3JlcXVlc3QgYmUgY2FsbGVkIDxjb2RlPlJzaW1wbGU8L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPkEgcmVwZWF0aW5nIHJlcXVlc3QgPGNvZGU+UnNpbXBsZTwvY29kZT4gY2FuIGJlIDxlbT5vY2Nhc2lvbmFsbHk8L2VtPiBpbnRlcmxlYXZlZAorYnkgYSBzaW5nbGUgY2FwdHVyZSBvZiBhIG5ldyByZXF1ZXN0IDxjb2RlPlJzdGFsbDwvY29kZT4gKHdoaWNoIGhhcyBhdCBsZWFzdAorb25lIGluLXVzZSBzdHJlYW0gd2l0aCBhIG5vbi0wIHN0YWxsIHRpbWUpIGFuZCBpZiA8Y29kZT5Sc3RhbGw8L2NvZGU+IGhhcyB0aGUKK3NhbWUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiB0aGlzIHdpbGwgbm90IGNhdXNlIGEgZnJhbWUgcmF0ZSBsb3NzCitpZiBhbGwgYnVmZmVycyBmcm9tIHRoZSBwcmV2aW91cyA8Y29kZT5Sc3RhbGw8L2NvZGU+IGhhdmUgYWxyZWFkeSBiZWVuCitkZWxpdmVyZWQuPHdici8+PC9wPgorPHA+Rm9yIG1vcmUgZGV0YWlscyBhYm91dCBzdGFsbGluZyw8d2JyLz4gc2VlCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uPC9hPi48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzIHNldCB0bworT0ZGOyBvdGhlcndpc2UgdGhlIGF1dG8tZXhwb3N1cmUgYWxnb3JpdGhtIHdpbGwgb3ZlcnJpZGUgdGhpcyB2YWx1ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBtb3JlIGRldGFpbHMgYWJvdXQgc3RhbGxpbmcsPHdici8+IHNlZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdGFsbER1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RhbGw8d2JyLz5EdXJhdGlvbnM8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIGdhaW4gYXBwbGllZCB0byBzZW5zb3IgZGF0YQorYmVmb3JlIHByb2Nlc3NpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIElTTyBhcml0aG1ldGljIHVuaXRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+c2Vuc2l0aXZpdHk8d2JyLz5SYW5nZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHNlbnNpdGl2aXR5IGlzIHRoZSBzdGFuZGFyZCBJU08gc2Vuc2l0aXZpdHkgdmFsdWUsPHdici8+CithcyBkZWZpbmVkIGluIElTTyAxMjIzMjoyMDA2Ljx3YnIvPjwvcD4KKzxwPlRoZSBzZW5zaXRpdml0eSBtdXN0IGJlIHdpdGhpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlPC9hPiw8d2JyLz4gYW5kCitpZiBpZiBpdCBsZXNzIHRoYW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5tYXhBbmFsb2dTZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+bWF4PHdici8+QW5hbG9nPHdici8+U2Vuc2l0aXZpdHk8L2E+LDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZQoraXMgZ3VhcmFudGVlZCB0byB1c2Ugb25seSBhbmFsb2cgYW1wbGlmaWNhdGlvbiBmb3IgYXBwbHlpbmcgdGhlIGdhaW4uPHdici8+PC9wPgorPHA+SWYgdGhlIGNhbWVyYSBkZXZpY2UgY2Fubm90IGFwcGx5IHRoZSBleGFjdCBzZW5zaXRpdml0eQorcmVxdWVzdGVkLDx3YnIvPiBpdCB3aWxsIHJlZHVjZSB0aGUgZ2FpbiB0byB0aGUgbmVhcmVzdCBzdXBwb3J0ZWQKK3ZhbHVlLjx3YnIvPiBUaGUgZmluYWwgc2Vuc2l0aXZpdHkgdXNlZCB3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUKK291dHB1dCBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzIHNldCB0bworT0ZGOyBvdGhlcndpc2UgdGhlIGF1dG8tZXhwb3N1cmUgYWxnb3JpdGhtIHdpbGwgb3ZlcnJpZGUgdGhpcyB2YWx1ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklTTyAxMjIzMjoyMDA2IFJFSSBtZXRob2QgaXMgYWNjZXB0YWJsZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybkRhdGEiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5EYXRhCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIHBpeGVsIDxjb2RlPltSLDx3YnIvPiBHXzx3YnIvPmV2ZW4sPHdici8+IEdfPHdici8+b2RkLDx3YnIvPiBCXTwvY29kZT4gdGhhdCBzdXBwbGllcyB0aGUgdGVzdCBwYXR0ZXJuCit3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybk1vZGUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnRlc3Q8d2JyLz5QYXR0ZXJuPHdici8+TW9kZTwvYT4gaXMgU09MSURfPHdici8+Q09MT1IuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RWFjaCBjb2xvciBjaGFubmVsIGlzIHRyZWF0ZWQgYXMgYW4gdW5zaWduZWQgMzItYml0IGludGVnZXIuPHdici8+CitUaGUgY2FtZXJhIGRldmljZSB0aGVuIHVzZXMgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgWCBiaXRzCit0aGF0IGNvcnJlc3BvbmQgdG8gaG93IG1hbnkgYml0cyBhcmUgaW4gaXRzIEJheWVyIHJhdyBzZW5zb3IKK291dHB1dC48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZSw8d2JyLz4gYSBzZW5zb3Igd2l0aCBSQVcxMCBCYXllciBvdXRwdXQgd291bGQgdXNlIHRoZQorMTAgbW9zdCBzaWduaWZpY2FudCBiaXRzIGZyb20gZWFjaCBjb2xvciBjaGFubmVsLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIHRlc3QgcGF0dGVybiBtb2RlIGlzIHVzZWQsPHdici8+IGFuZCB0aGUgY2FtZXJhCitkZXZpY2UgcmV0dXJucyBjYXB0dXJlcyBmcm9tIHRoZSBpbWFnZSBzZW5zb3IuPHdici8+PC9wPgorPHA+VGhpcyBpcyB0aGUgZGVmYXVsdCBpZiB0aGUga2V5IGlzIG5vdCBzZXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U09MSURfQ09MT1I8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkVhY2ggcGl4ZWwgaW4gPGNvZGU+W1IsPHdici8+IEdfPHdici8+ZXZlbiw8d2JyLz4gR188d2JyLz5vZGQsPHdici8+IEJdPC9jb2RlPiBpcyByZXBsYWNlZCBieSBpdHMKK3Jlc3BlY3RpdmUgY29sb3IgY2hhbm5lbCBwcm92aWRlZCBpbgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuRGF0YSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5EYXRhPC9hPi48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZTo8L3A+Cis8cHJlPjxjb2RlPmFuZHJvaWQuPHdici8+dGVzdFBhdHRlcm5EYXRhID0gWzAsPHdici8+IDB4RkZGRkZGRkYsPHdici8+IDB4RkZGRkZGRkYsPHdici8+IDBdCis8L2NvZGU+PC9wcmU+Cis8cD5BbGwgZ3JlZW4gcGl4ZWxzIGFyZSAxMDAlIGdyZWVuLjx3YnIvPiBBbGwgcmVkLzx3YnIvPmJsdWUgcGl4ZWxzIGFyZSBibGFjay48d2JyLz48L3A+Cis8cHJlPjxjb2RlPmFuZHJvaWQuPHdici8+dGVzdFBhdHRlcm5EYXRhID0gWzB4RkZGRkZGRkYsPHdici8+IDAsPHdici8+IDB4RkZGRkZGRkYsPHdici8+IDBdCis8L2NvZGU+PC9wcmU+Cis8cD5BbGwgcmVkIHBpeGVscyBhcmUgMTAwJSByZWQuPHdici8+IE9ubHkgdGhlIG9kZCBncmVlbiBwaXhlbHMKK2FyZSAxMDAlIGdyZWVuLjx3YnIvPiBBbGwgYmx1ZSBwaXhlbHMgYXJlIDEwMCUgYmxhY2suPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09MT1JfQkFSUzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QWxsIHBpeGVsIGRhdGEgaXMgcmVwbGFjZWQgd2l0aCBhbiA4LWJhciBjb2xvciBwYXR0ZXJuLjx3YnIvPjwvcD4KKzxwPlRoZSB2ZXJ0aWNhbCBiYXJzIChsZWZ0LXRvLXJpZ2h0KSBhcmUgYXMgZm9sbG93czo8L3A+Cis8dWw+Cis8bGk+MTAwJSB3aGl0ZTwvbGk+Cis8bGk+eWVsbG93PC9saT4KKzxsaT5jeWFuPC9saT4KKzxsaT5ncmVlbjwvbGk+Cis8bGk+bWFnZW50YTwvbGk+Cis8bGk+cmVkPC9saT4KKzxsaT5ibHVlPC9saT4KKzxsaT5ibGFjazwvbGk+Cis8L3VsPgorPHA+SW4gZ2VuZXJhbCB0aGUgaW1hZ2Ugd291bGQgbG9vayBsaWtlIHRoZSBmb2xsb3dpbmc6PC9wPgorPHByZT48Y29kZT5XIFkgQyBHIE0gUiBCIEsKK1cgWSBDIEcgTSBSIEIgSworVyBZIEMgRyBNIFIgQiBLCitXIFkgQyBHIE0gUiBCIEsKK1cgWSBDIEcgTSBSIEIgSworLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+CisuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4KKy48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPgorCisoQiA9IEJsdWUsPHdici8+IEsgPSBCbGFjaykKKzwvY29kZT48L3ByZT4KKzxwPkVhY2ggYmFyIHNob3VsZCB0YWtlIHVwIDEvPHdici8+OCBvZiB0aGUgc2Vuc29yIHBpeGVsIGFycmF5IHdpZHRoLjx3YnIvPgorV2hlbiB0aGlzIGlzIG5vdCBwb3NzaWJsZSw8d2JyLz4gdGhlIGJhciBzaXplIHNob3VsZCBiZSByb3VuZGVkCitkb3duIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgYW5kIHRoZSBwYXR0ZXJuIGNhbiByZXBlYXQKK29uIHRoZSByaWdodCBzaWRlLjx3YnIvPjwvcD4KKzxwPkVhY2ggYmFyJ3MgaGVpZ2h0IG11c3QgYWx3YXlzIHRha2UgdXAgdGhlIGZ1bGwgc2Vuc29yCitwaXhlbCBhcnJheSBoZWlnaHQuPHdici8+PC9wPgorPHA+RWFjaCBwaXhlbCBpbiB0aGlzIHRlc3QgcGF0dGVybiBtdXN0IGJlIHNldCB0byBlaXRoZXIKKzAlIGludGVuc2l0eSBvciAxMDAlIGludGVuc2l0eS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT0xPUl9CQVJTX0ZBREVfVE9fR1JBWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIHRlc3QgcGF0dGVybiBpcyBzaW1pbGFyIHRvIENPTE9SXzx3YnIvPkJBUlMsPHdici8+IGV4Y2VwdCB0aGF0CitlYWNoIGJhciBzaG91bGQgc3RhcnQgYXQgaXRzIHNwZWNpZmllZCBjb2xvciBhdCB0aGUgdG9wLDx3YnIvPgorYW5kIGZhZGUgdG8gZ3JheSBhdCB0aGUgYm90dG9tLjx3YnIvPjwvcD4KKzxwPkZ1cnRoZXJtb3JlIGVhY2ggYmFyIGlzIGZ1cnRoZXIgc3ViZGl2aWRlZCBpbnRvIGEgbGVmdCBhbmQKK3JpZ2h0IGhhbGYuPHdici8+IFRoZSBsZWZ0IGhhbGYgc2hvdWxkIGhhdmUgYSBzbW9vdGggZ3JhZGllbnQsPHdici8+CithbmQgdGhlIHJpZ2h0IGhhbGYgc2hvdWxkIGhhdmUgYSBxdWFudGl6ZWQgZ3JhZGllbnQuPHdici8+PC9wPgorPHA+SW4gcGFydGljdWxhciw8d2JyLz4gdGhlIHJpZ2h0IGhhbGYncyBzaG91bGQgY29uc2lzdCBvZiBibG9ja3Mgb2YgdGhlCitzYW1lIGNvbG9yIGZvciAxLzx3YnIvPjE2dGggYWN0aXZlIHNlbnNvciBwaXhlbCBhcnJheSB3aWR0aC48d2JyLz48L3A+Cis8cD5UaGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBpbiB0aGUgcXVhbnRpemVkIGdyYWRpZW50IHNob3VsZAorYmUgY29waWVkIGZyb20gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGUgc21vb3RoIGdyYWRpZW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBoZWlnaHQgb2YgZWFjaCBiYXIgc2hvdWxkIGFsd2F5cyBiZSBhIG11bHRpcGxlIG9mIDEyOC48d2JyLz4KK1doZW4gdGhpcyBpcyBub3QgdGhlIGNhc2UsPHdici8+IHRoZSBwYXR0ZXJuIHNob3VsZCByZXBlYXQgYXQgdGhlIGJvdHRvbQorb2YgdGhlIGltYWdlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBOOTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QWxsIHBpeGVsIGRhdGEgaXMgcmVwbGFjZWQgYnkgYSBwc2V1ZG8tcmFuZG9tIHNlcXVlbmNlCitnZW5lcmF0ZWQgZnJvbSBhIFBOOSA1MTItYml0IHNlcXVlbmNlICh0eXBpY2FsbHkgaW1wbGVtZW50ZWQKK2luIGhhcmR3YXJlIHdpdGggYSBsaW5lYXIgZmVlZGJhY2sgc2hpZnQgcmVnaXN0ZXIpLjx3YnIvPjwvcD4KKzxwPlRoZSBnZW5lcmF0b3Igc2hvdWxkIGJlIHJlc2V0IGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBmcmFtZSw8d2JyLz4KK2FuZCB0aHVzIGVhY2ggc3Vic2VxdWVudCByYXcgZnJhbWUgd2l0aCB0aGlzIHRlc3QgcGF0dGVybiBzaG91bGQKK2JlIGV4YWN0bHkgdGhlIHNhbWUgYXMgdGhlIGxhc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q1VTVE9NMTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MjU2PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgZmlyc3QgY3VzdG9tIHRlc3QgcGF0dGVybi48d2JyLz4gQWxsIGN1c3RvbSBwYXR0ZXJucyB0aGF0IGFyZQorYXZhaWxhYmxlIG9ubHkgb24gdGhpcyBjYW1lcmEgZGV2aWNlIGFyZSBhdCBsZWFzdCB0aGlzIG51bWVyaWMKK3ZhbHVlLjx3YnIvPjwvcD4KKzxwPkFsbCBvZiB0aGUgY3VzdG9tIHRlc3QgcGF0dGVybnMgd2lsbCBiZSBzdGF0aWMKKyh0aGF0IGlzIHRoZSByYXcgaW1hZ2UgbXVzdCBub3QgdmFyeSBmcm9tIGZyYW1lIHRvIGZyYW1lKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGVuIGVuYWJsZWQsPHdici8+IHRoZSBzZW5zb3Igc2VuZHMgYSB0ZXN0IHBhdHRlcm4gaW5zdGVhZCBvZgorZG9pbmcgYSByZWFsIGV4cG9zdXJlIGZyb20gdGhlIGNhbWVyYS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmF2YWlsYWJsZVRlc3RQYXR0ZXJuTW9kZXMiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlRlc3Q8d2JyLz5QYXR0ZXJuPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIGEgdGVzdCBwYXR0ZXJuIGlzIGVuYWJsZWQsPHdici8+IGFsbCBtYW51YWwgc2Vuc29yIGNvbnRyb2xzIHNwZWNpZmllZAorYnkgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+KiB3aWxsIGJlIGlnbm9yZWQuPHdici8+IEFsbCBvdGhlciBjb250cm9scyBzaG91bGQKK3dvcmsgYXMgbm9ybWFsLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiBtYW51YWwgZmxhc2ggaXMgZW5hYmxlZCw8d2JyLz4gZmxhc2ggZmlyaW5nIHNob3VsZCBzdGlsbAorb2NjdXIgKGFuZCB0aGF0IHRoZSB0ZXN0IHBhdHRlcm4gcmVtYWluIHVubW9kaWZpZWQsPHdici8+IHNpbmNlIHRoZSBmbGFzaAord291bGQgbm90IGFjdHVhbGx5IGFmZmVjdCBpdCkuPHdici8+PC9wPgorPHA+RGVmYXVsdHMgdG8gT0ZGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QWxsIHRlc3QgcGF0dGVybnMgYXJlIHNwZWNpZmllZCBpbiB0aGUgQmF5ZXIgZG9tYWluLjx3YnIvPjwvcD4KKzxwPlRoZSBIQUwgbWF5IGNob29zZSB0byBzdWJzdGl0dXRlIHRlc3QgcGF0dGVybnMgZnJvbSB0aGUgc2Vuc29yCit3aXRoIHRlc3QgcGF0dGVybnMgZnJvbSBvbi1kZXZpY2UgbWVtb3J5Ljx3YnIvPiBJbiB0aGF0IGNhc2UsPHdici8+IGl0IHNob3VsZCBiZQoraW5kaXN0aW5ndWlzaGFibGUgdG8gdGhlIElTUCB3aGV0aGVyIHRoZSBkYXRhIGNhbWUgZnJvbSB0aGUKK3NlbnNvciBpbnRlcmNvbm5lY3QgYnVzIChzdWNoIGFzIENTSTIpIG9yIG1lbW9yeS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHJlY3RhbmdsZV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkZvdXIgaW50cyBkZWZpbmluZyB0aGUgYWN0aXZlIHBpeGVsIHJlY3RhbmdsZTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBhcmVhIG9mIHRoZSBpbWFnZSBzZW5zb3Igd2hpY2ggY29ycmVzcG9uZHMgdG8gYWN0aXZlIHBpeGVscyBhZnRlciBhbnkgZ2VvbWV0cmljCitkaXN0b3J0aW9uIGNvcnJlY3Rpb24gaGFzIGJlZW4gYXBwbGllZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUGl4ZWwgY29vcmRpbmF0ZXMgb24gdGhlIGltYWdlIHNlbnNvcgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIHRoZSByZWN0YW5nbGUgcmVwcmVzZW50aW5nIHRoZSBzaXplIG9mIHRoZSBhY3RpdmUgcmVnaW9uIG9mIHRoZSBzZW5zb3IgKGkuPHdici8+ZS48d2JyLz4KK3RoZSByZWdpb24gdGhhdCBhY3R1YWxseSByZWNlaXZlcyBsaWdodCBmcm9tIHRoZSBzY2VuZSkgYWZ0ZXIgYW55IGdlb21ldHJpYyBjb3JyZWN0aW9uCitoYXMgYmVlbiBhcHBsaWVkLDx3YnIvPiBhbmQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgdGhlIG1heGltdW0gc2l6ZSBpbiBwaXhlbHMgb2YgYW55IG9mIHRoZQoraW1hZ2Ugb3V0cHV0IGZvcm1hdHMgYXNpZGUgZnJvbSB0aGUgcmF3IGZvcm1hdHMuPHdici8+PC9wPgorPHA+VGhpcyByZWN0YW5nbGUgaXMgZGVmaW5lZCByZWxhdGl2ZSB0byB0aGUgZnVsbCBwaXhlbCBhcnJheTsgKDAsPHdici8+MCkgaXMgdGhlIHRvcC1sZWZ0IG9mCit0aGUgZnVsbCBwaXhlbCBhcnJheSw8d2JyLz4gYW5kIHRoZSBzaXplIG9mIHRoZSBmdWxsIHBpeGVsIGFycmF5IGlzIGdpdmVuIGJ5Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoZSBjb29yZGluYXRlIHN5c3RlbSBmb3IgbW9zdCBvdGhlciBrZXlzIHRoYXQgbGlzdCBwaXhlbCBjb29yZGluYXRlcyw8d2JyLz4gaW5jbHVkaW5nCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4sPHdici8+IGlzIGRlZmluZWQgcmVsYXRpdmUgdG8gdGhlIGFjdGl2ZSBhcnJheSByZWN0YW5nbGUgZ2l2ZW4gaW4KK3RoaXMgZmllbGQsPHdici8+IHdpdGggPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiBiZWluZyB0aGUgdG9wLWxlZnQgb2YgdGhpcyByZWN0YW5nbGUuPHdici8+PC9wPgorPHA+VGhlIGFjdGl2ZSBhcnJheSBtYXkgYmUgc21hbGxlciB0aGFuIHRoZSBmdWxsIHBpeGVsIGFycmF5LDx3YnIvPiBzaW5jZSB0aGUgZnVsbCBhcnJheSBtYXkKK2luY2x1ZGUgYmxhY2sgY2FsaWJyYXRpb24gcGl4ZWxzIG9yIG90aGVyIGluYWN0aXZlIHJlZ2lvbnMsPHdici8+IGFuZCBnZW9tZXRyaWMgY29ycmVjdGlvbgorcmVzdWx0aW5nIGluIHNjYWxpbmcgb3IgY3JvcHBpbmcgbWF5IGhhdmUgYmVlbiBhcHBsaWVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBhcnJheSBjb250YWlucyA8Y29kZT4oeG1pbiw8d2JyLz4geW1pbiw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCk8L2NvZGU+Ljx3YnIvPiBUaGUgPGNvZGU+KHhtaW4sPHdici8+IHltaW4pPC9jb2RlPiBtdXN0IGJlCismZ3Q7PSA8Y29kZT4oMCw8d2JyLz4wKTwvY29kZT4uPHdici8+CitUaGUgPGNvZGU+KHdpZHRoLDx3YnIvPiBoZWlnaHQpPC9jb2RlPiBtdXN0IGJlICZsdDs9IDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT48L2NvZGU+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByYW5nZUludF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5SYW5nZSBvZiBzdXBwb3J0ZWQgc2Vuc2l0aXZpdGllczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlJhbmdlIG9mIHNlbnNpdGl2aXRpZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+IHN1cHBvcnRlZCBieSB0aGlzCitjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPk1pbiAmbHQ7PSAxMDAsPHdici8+IE1heCAmZ3Q7PSA4MDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdmFsdWVzIGFyZSB0aGUgc3RhbmRhcmQgSVNPIHNlbnNpdGl2aXR5IHZhbHVlcyw8d2JyLz4KK2FzIGRlZmluZWQgaW4gSVNPIDEyMjMyOjIwMDYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5jb2xvckZpbHRlckFycmFuZ2VtZW50Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+Y29sb3I8d2JyLz5GaWx0ZXI8d2JyLz5BcnJhbmdlbWVudAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5SR0dCPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5HUkJHPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5HQlJHPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5CR0dSPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5SR0I8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlNlbnNvciBpcyBub3QgQmF5ZXI7IG91dHB1dCBoYXMgMyAxNi1iaXQKK3ZhbHVlcyBmb3IgZWFjaCBwaXhlbCw8d2JyLz4gaW5zdGVhZCBvZiBqdXN0IDEgMTYtYml0IHZhbHVlCitwZXIgcGl4ZWwuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGFycmFuZ2VtZW50IG9mIGNvbG9yIGZpbHRlcnMgb24gc2Vuc29yOworcmVwcmVzZW50cyB0aGUgY29sb3JzIGluIHRoZSB0b3AtbGVmdCAyeDIgc2VjdGlvbiBvZgordGhlIHNlbnNvciw8d2JyLz4gaW4gcmVhZGluZyBvcmRlci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8d2JyLz5SYW5nZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmFuZ2VMb25nXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPm5hbm9zZWNvbmRzPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHJhbmdlIG9mIGltYWdlIGV4cG9zdXJlIHRpbWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+IHN1cHBvcnRlZAorYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBOYW5vc2Vjb25kcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlRoZSBtaW5pbXVtIGV4cG9zdXJlIHRpbWUgd2lsbCBiZSBsZXNzIHRoYW4gMTAwIHVzLjx3YnIvPiBGb3IgRlVMTAorY2FwYWJpbGl0eSBkZXZpY2VzICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gRlVMTCksPHdici8+Cit0aGUgbWF4aW11bSBleHBvc3VyZSB0aW1lIHdpbGwgYmUgZ3JlYXRlciB0aGFuIDEwMG1zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgRlVMTCBjYXBhYmlsaXR5IGRldmljZXMgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBGVUxMKSw8d2JyLz4KK1RoZSBtYXhpbXVtIG9mIHRoZSByYW5nZSBTSE9VTEQgYmUgYXQgbGVhc3QgMSBzZWNvbmQgKDFlOSksPHdici8+IE1VU1QgYmUgYXQgbGVhc3QKKzEwMG1zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLm1heEZyYW1lRHVyYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5tYXg8d2JyLz5GcmFtZTx3YnIvPkR1cmF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBwb3NzaWJsZSBmcmFtZSBkdXJhdGlvbiAobWluaW11bSBmcmFtZSByYXRlKSBmb3IKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPiB0aGF0IGlzIHN1cHBvcnRlZCB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Rm9yIEZVTEwgY2FwYWJpbGl0eSBkZXZpY2VzCisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IEZVTEwpLDx3YnIvPiBhdCBsZWFzdCAxMDBtcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QXR0ZW1wdGluZyB0byB1c2UgZnJhbWUgZHVyYXRpb25zIGJleW9uZCB0aGUgbWF4aW11bSB3aWxsIHJlc3VsdCBpbiB0aGUgZnJhbWUKK2R1cmF0aW9uIGJlaW5nIGNsaXBwZWQgdG8gdGhlIG1heGltdW0uPHdici8+IFNlZSB0aGF0IGNvbnRyb2wgZm9yIGEgZnVsbCBkZWZpbml0aW9uIG9mIGZyYW1lCitkdXJhdGlvbnMuPHdici8+PC9wPgorPHA+UmVmZXIgdG8gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbjwvYT4KK2ZvciB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiB2YWx1ZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgRlVMTCBjYXBhYmlsaXR5IGRldmljZXMgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBGVUxMKSw8d2JyLz4KK1RoZSBtYXhpbXVtIG9mIHRoZSByYW5nZSBTSE9VTEQgYmUgYXQgbGVhc3QKKzEgc2Vjb25kICgxZTkpLDx3YnIvPiBNVVNUIGJlIGF0IGxlYXN0IDEwMG1zICgxMDBlNikuPHdici8+PC9wPgorPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLm1heEZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+bWF4PHdici8+RnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4gbXVzdCBiZSBncmVhdGVyIG9yCitlcXVhbCB0byB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmV4cG9zdXJlVGltZVJhbmdlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTx3YnIvPlJhbmdlPC9hPiBtYXgKK3ZhbHVlIChzaW5jZSBleHBvc3VyZSB0aW1lIG92ZXJyaWRlcyBmcmFtZSBkdXJhdGlvbikuPHdici8+PC9wPgorPHA+QXZhaWxhYmxlIG1pbmltdW0gZnJhbWUgZHVyYXRpb25zIGZvciBKUEVHIG11c3QgYmUgbm8gZ3JlYXRlcgordGhhbiB0aGF0IG9mIHRoZSBZVVZfPHdici8+NDIwXzx3YnIvPjg4OC88d2JyLz5JTVBMRU1FTlRBVElPTl88d2JyLz5ERUZJTkVECittaW5pbXVtIGZyYW1lIGR1cmF0aW9ucyAoZm9yIHRoYXQgcmVzcGVjdGl2ZSBzaXplKS48d2JyLz48L3A+Cis8cD5TaW5jZSBKUEVHIHByb2Nlc3NpbmcgaXMgY29uc2lkZXJlZCBvZmZsaW5lIGFuZCBjYW4gdGFrZSBsb25nZXIgdGhhbgorYSBzaW5nbGUgdW5jb21wcmVzc2VkIGNhcHR1cmUsPHdici8+IHJlZmVyIHRvCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdGFsbDx3YnIvPkR1cmF0aW9uczwvYT4KK2ZvciBkZXRhaWxzIGFib3V0IGVuY29kaW5nIHRoaXMgc2NlbmFyaW8uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGh5c2ljYWxTaXplIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGh5c2ljYWw8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBzaXplRl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPndpZHRoIHggaGVpZ2h0PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHBoeXNpY2FsIGRpbWVuc2lvbnMgb2YgdGhlIGZ1bGwgcGl4ZWwKK2FycmF5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBNaWxsaW1ldGVycworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIHRoZSBwaHlzaWNhbCBzaXplIG9mIHRoZSBzZW5zb3IgcGl4ZWwKK2FycmF5IGRlZmluZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5lZWRlZCBmb3IgRk9WIGNhbGN1bGF0aW9uIGZvciBvbGQgQVBJPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgc2l6ZV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkRpbWVuc2lvbnMgb2YgdGhlIGZ1bGwgcGl4ZWwgYXJyYXksPHdici8+IHBvc3NpYmx5CitpbmNsdWRpbmcgYmxhY2sgY2FsaWJyYXRpb24gcGl4ZWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBQaXhlbHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgcGl4ZWwgY291bnQgb2YgdGhlIGZ1bGwgcGl4ZWwgYXJyYXkgb2YgdGhlIGltYWdlIHNlbnNvciw8d2JyLz4gd2hpY2ggY292ZXJzCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGh5c2ljYWxTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBoeXNpY2FsPHdici8+U2l6ZTwvYT4gYXJlYS48d2JyLz4gIFRoaXMgcmVwcmVzZW50cyB0aGUgZnVsbCBwaXhlbCBkaW1lbnNpb25zIG9mCit0aGUgcmF3IGJ1ZmZlcnMgcHJvZHVjZWQgYnkgdGhpcyBzZW5zb3IuPHdici8+PC9wPgorPHA+SWYgYSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIHJhdyBzZW5zb3IgZm9ybWF0cyw8d2JyLz4gZWl0aGVyIHRoaXMgb3IKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5wcmVDb3JyZWN0aW9uQWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnByZTx3YnIvPkNvcnJlY3Rpb248d2JyLz5BY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+IGlzIHRoZSBtYXhpbXVtIGRpbWVuc2lvbnMgZm9yIHRoZSByYXcKK291dHB1dCBmb3JtYXRzIGxpc3RlZCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPnN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb248d2JyLz5NYXA8L2E+ICh0aGlzIGRlcGVuZHMgb24KK3doZXRoZXIgb3Igbm90IHRoZSBpbWFnZSBzZW5zb3IgcmV0dXJucyBidWZmZXJzIGNvbnRhaW5pbmcgcGl4ZWxzIHRoYXQgYXJlIG5vdAorcGFydCBvZiB0aGUgYWN0aXZlIGFycmF5IHJlZ2lvbiBmb3IgYmxhY2tsZXZlbCBjYWxpYnJhdGlvbiBvciBvdGhlciBwdXJwb3NlcykuPHdici8+PC9wPgorPHA+U29tZSBwYXJ0cyBvZiB0aGUgZnVsbCBwaXhlbCBhcnJheSBtYXkgbm90IHJlY2VpdmUgbGlnaHQgZnJvbSB0aGUgc2NlbmUsPHdici8+CitvciBiZSBvdGhlcndpc2UgaW5hY3RpdmUuPHdici8+ICBUaGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4ga2V5CitkZWZpbmVzIHRoZSByZWN0YW5nbGUgb2YgYWN0aXZlIHBpeGVscyB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgaW4gcHJvY2Vzc2VkIGltYWdlCitmb3JtYXRzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ud2hpdGVMZXZlbCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPndoaXRlPHdici8+TGV2ZWwKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1heGltdW0gcmF3IHZhbHVlIG91dHB1dCBieSBzZW5zb3IuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0OyAyNTUgKDgtYml0IG91dHB1dCk8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHNwZWNpZmllcyB0aGUgZnVsbHktc2F0dXJhdGVkIGVuY29kaW5nIGxldmVsIGZvciB0aGUgcmF3CitzYW1wbGUgdmFsdWVzIGZyb20gdGhlIHNlbnNvci48d2JyLz4gIFRoaXMgaXMgdHlwaWNhbGx5IGNhdXNlZCBieSB0aGUKK3NlbnNvciBiZWNvbWluZyBoaWdobHkgbm9uLWxpbmVhciBvciBjbGlwcGluZy48d2JyLz4gVGhlIG1pbmltdW0gZm9yCitlYWNoIGNoYW5uZWwgaXMgc3BlY2lmaWVkIGJ5IHRoZSBvZmZzZXQgaW4gdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmJsYWNrTGV2ZWxQYXR0ZXJuIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5ibGFjazx3YnIvPkxldmVsPHdici8+UGF0dGVybjwvYT4ga2V5Ljx3YnIvPjwvcD4KKzxwPlRoZSB3aGl0ZSBsZXZlbCBpcyB0eXBpY2FsbHkgZGV0ZXJtaW5lZCBlaXRoZXIgYnkgc2Vuc29yIGJpdCBkZXB0aAorKDgtMTQgYml0cyBpcyBleHBlY3RlZCksPHdici8+IG9yIGJ5IHRoZSBwb2ludCB3aGVyZSB0aGUgc2Vuc29yIHJlc3BvbnNlCitiZWNvbWVzIHRvbyBub24tbGluZWFyIHRvIGJlIHVzZWZ1bC48d2JyLz4gIFRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGlzIGlzCittYXhpbXVtIHJlcHJlc2VudGFibGUgdmFsdWUgZm9yIGEgMTYtYml0IHJhdyBzYW1wbGUgKDJeMTYgLSAxKS48d2JyLz48L3A+Cis8cD5UaGUgd2hpdGUgbGV2ZWwgdmFsdWVzIG9mIGNhcHR1cmVkIGltYWdlcyBtYXkgdmFyeSBmb3IgZGlmZmVyZW50CitjYXB0dXJlIHNldHRpbmdzIChlLjx3YnIvPmcuLDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPikuPHdici8+IFRoaXMga2V5CityZXByZXNlbnRzIGEgY29hcnNlIGFwcHJveGltYXRpb24gZm9yIHN1Y2ggY2FzZS48d2JyLz4gSXQgaXMgcmVjb21tZW5kZWQKK3RvIHVzZSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5keW5hbWljV2hpdGVMZXZlbCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZHluYW1pYzx3YnIvPldoaXRlPHdici8+TGV2ZWw8L2E+IGZvciBjYXB0dXJlcyB3aGVuIHN1cHBvcnRlZAorYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IHdoaWNoIHByb3ZpZGVzIG1vcmUgYWNjdXJhdGUgd2hpdGUgbGV2ZWwgdmFsdWVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGZ1bGwgYml0IGRlcHRoIG9mIHRoZSBzZW5zb3IgbXVzdCBiZSBhdmFpbGFibGUgaW4gdGhlIHJhdyBkYXRhLDx3YnIvPgorc28gdGhlIHZhbHVlIGZvciBsaW5lYXIgc2Vuc29ycyBzaG91bGQgbm90IGJlIHNpZ25pZmljYW50bHkgbG93ZXIKK3RoYW4gbWF4aW11bSByYXcgdmFsdWUgc3VwcG9ydGVkLDx3YnIvPiBpLjx3YnIvPmUuPHdici8+IDJeKHNlbnNvciBiaXRzIHBlciBwaXhlbCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+dGltZXN0YW1wPHdici8+U291cmNlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VU5LTk9XTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGltZXN0YW1wcyBmcm9tIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnRpbWVzdGFtcCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGltZXN0YW1wPC9hPiBhcmUgaW4gbmFub3NlY29uZHMgYW5kIG1vbm90b25pYyw8d2JyLz4KK2J1dCBjYW4gbm90IGJlIGNvbXBhcmVkIHRvIHRpbWVzdGFtcHMgZnJvbSBvdGhlciBzdWJzeXN0ZW1zCisoZS48d2JyLz5nLjx3YnIvPiBhY2NlbGVyb21ldGVyLDx3YnIvPiBneXJvIGV0Yy48d2JyLz4pLDx3YnIvPiBvciBvdGhlciBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgb3IgZGlmZmVyZW50CitjYW1lcmEgZGV2aWNlcyBpbiB0aGUgc2FtZSBzeXN0ZW0uPHdici8+IFRpbWVzdGFtcHMgYmV0d2VlbiBzdHJlYW1zIGFuZCByZXN1bHRzIGZvcgorYSBzaW5nbGUgY2FtZXJhIGluc3RhbmNlIGFyZSBjb21wYXJhYmxlLDx3YnIvPiBhbmQgdGhlIHRpbWVzdGFtcHMgZm9yIGFsbCBidWZmZXJzCithbmQgdGhlIHJlc3VsdCBtZXRhZGF0YSBnZW5lcmF0ZWQgYnkgYSBzaW5nbGUgY2FwdHVyZSBhcmUgaWRlbnRpY2FsLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlJFQUxUSU1FPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaW1lc3RhbXBzIGZyb20gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGltZXN0YW1wIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50aW1lc3RhbXA8L2E+IGFyZSBpbiB0aGUgc2FtZSB0aW1lYmFzZSBhcworPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvb3MvU3lzdGVtQ2xvY2suaHRtbCNlbGFwc2VkUmVhbHRpbWVOYW5vcyI+U3lzdGVtQ2xvY2sjZWxhcHNlZFJlYWx0aW1lTmFub3M8L2E+LDx3YnIvPgorYW5kIHRoZXkgY2FuIGJlIGNvbXBhcmVkIHRvIG90aGVyIHRpbWVzdGFtcHMgdXNpbmcgdGhhdCBiYXNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSB0aW1lIGJhc2Ugc291cmNlIGZvciBzZW5zb3IgY2FwdHVyZSBzdGFydCB0aW1lc3RhbXBzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHRpbWVzdGFtcHMgcHJvdmlkZWQgZm9yIGNhcHR1cmVzIGFyZSBhbHdheXMgaW4gbmFub3NlY29uZHMgYW5kIG1vbm90b25pYyw8d2JyLz4gYnV0CittYXkgbm90IGJhc2VkIG9uIGEgdGltZSBzb3VyY2UgdGhhdCBjYW4gYmUgY29tcGFyZWQgdG8gb3RoZXIgc3lzdGVtIHRpbWUgc291cmNlcy48d2JyLz48L3A+Cis8cD5UaGlzIGNoYXJhY3RlcmlzdGljIGRlZmluZXMgdGhlIHNvdXJjZSBmb3IgdGhlIHRpbWVzdGFtcHMsPHdici8+IGFuZCB0aGVyZWZvcmUgd2hldGhlciB0aGV5CitjYW4gYmUgY29tcGFyZWQgYWdhaW5zdCBvdGhlciBzeXN0ZW0gdGltZSBzb3VyY2VzLzx3YnIvPnRpbWVzdGFtcHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgY2FtZXJhIGRldmljZXMgaW1wbGVtZW50IFVOS05PV04sPHdici8+IHRoZSBjYW1lcmEgZnJhbWV3b3JrIGV4cGVjdHMgdGhhdCB0aGUgdGltZXN0YW1wCitzb3VyY2UgdG8gYmUgU1lTVEVNXzx3YnIvPlRJTUVfPHdici8+TU9OT1RPTklDLjx3YnIvPiBGb3IgY2FtZXJhIGRldmljZXMgaW1wbGVtZW50IFJFQUxUSU1FLDx3YnIvPiB0aGUgY2FtZXJhCitmcmFtZXdvcmsgZXhwZWN0cyB0aGF0IHRoZSB0aW1lc3RhbXAgc291cmNlIHRvIGJlIFNZU1RFTV88d2JyLz5USU1FXzx3YnIvPkJPT1RUSU1FLjx3YnIvPiBTZWUKK3N5c3RlbS88d2JyLz5jb3JlLzx3YnIvPmluY2x1ZGUvPHdici8+dXRpbHMvPHdici8+VGltZXJzLjx3YnIvPmggZm9yIHRoZSBkZWZpbml0aW9uIG9mIFNZU1RFTV88d2JyLz5USU1FXzx3YnIvPk1PTk9UT05JQyBhbmQKK1NZU1RFTV88d2JyLz5USU1FXzx3YnIvPkJPT1RUSU1FLjx3YnIvPiBOb3RlIHRoYXQgSEFMIG11c3QgZm9sbG93IGFib3ZlIGV4cGVjdGF0aW9uOyBvdGhlcndpc2UgdmlkZW8KK3JlY29yZGluZyBtaWdodCBzdWZmZXIgdW5leHBlY3RlZCBiZWhhdmlvci48d2JyLz48L3A+Cis8cD5BbHNvLDx3YnIvPiBjYW1lcmEgZGV2aWNlcyBpbXBsZW1lbnRzIFJFQUxUSU1FIG11c3QgcGFzcyB0aGUgSVRTIHNlbnNvciBmdXNpb24gdGVzdCB3aGljaAordGVzdHMgdGhlIGFsaWdubWVudCBiZXR3ZWVuIGNhbWVyYSB0aW1lc3RhbXBzIGFuZCBneXJvIHNlbnNvciB0aW1lc3RhbXBzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmxlbnNTaGFkaW5nQXBwbGllZCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+QXBwbGllZAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBTFNFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UUlVFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIHRoZSBSQVcgaW1hZ2VzIG91dHB1dCBmcm9tIHRoaXMgY2FtZXJhIGRldmljZSBhcmUgc3ViamVjdCB0bworbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgVFJVRSw8d2JyLz4gYWxsIGltYWdlcyBwcm9kdWNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBpbiB0aGUgUkFXIGltYWdlIGZvcm1hdHMgd2lsbAoraGF2ZSBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiBhbHJlYWR5IGFwcGxpZWQgdG8gaXQuPHdici8+IElmIEZBTFNFLDx3YnIvPiB0aGUgaW1hZ2VzIHdpbGwKK25vdCBiZSBhZGp1c3RlZCBmb3IgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24uPHdici8+CitTZWUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UmF3Ij5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+UmF3PC9hPiBmb3IgYSBsaXN0IG9mIFJBVyBpbWFnZSBmb3JtYXRzLjx3YnIvPjwvcD4KKzxwPlRoaXMga2V5IHdpbGwgYmUgPGNvZGU+bnVsbDwvY29kZT4gZm9yIGFsbCBkZXZpY2VzIGRvIG5vdCByZXBvcnQgdGhpcyBpbmZvcm1hdGlvbi48d2JyLz4KK0RldmljZXMgd2l0aCBSQVcgY2FwYWJpbGl0eSB3aWxsIGFsd2F5cyByZXBvcnQgdGhpcyBpbmZvcm1hdGlvbiBpbiB0aGlzIGtleS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByZWN0YW5nbGVdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5Gb3VyIGludHMgZGVmaW5pbmcgdGhlIGFjdGl2ZSBwaXhlbCByZWN0YW5nbGU8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYXJlYSBvZiB0aGUgaW1hZ2Ugc2Vuc29yIHdoaWNoIGNvcnJlc3BvbmRzIHRvIGFjdGl2ZSBwaXhlbHMgcHJpb3IgdG8gdGhlCithcHBsaWNhdGlvbiBvZiBhbnkgZ2VvbWV0cmljIGRpc3RvcnRpb24gY29ycmVjdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUGl4ZWwgY29vcmRpbmF0ZXMgb24gdGhlIGltYWdlIHNlbnNvcgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIHRoZSByZWN0YW5nbGUgcmVwcmVzZW50aW5nIHRoZSBzaXplIG9mIHRoZSBhY3RpdmUgcmVnaW9uIG9mIHRoZSBzZW5zb3IgKGkuPHdici8+ZS48d2JyLz4KK3RoZSByZWdpb24gdGhhdCBhY3R1YWxseSByZWNlaXZlcyBsaWdodCBmcm9tIHRoZSBzY2VuZSkgYmVmb3JlIGFueSBnZW9tZXRyaWMgY29ycmVjdGlvbgoraGFzIGJlZW4gYXBwbGllZCw8d2JyLz4gYW5kIHNob3VsZCBiZSB0cmVhdGVkIGFzIHRoZSBhY3RpdmUgcmVnaW9uIHJlY3RhbmdsZSBmb3IgYW55IG9mIHRoZQorcmF3IGZvcm1hdHMuPHdici8+ICBBbGwgbWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHJhdyBwcm9jZXNzaW5nIChlLjx3YnIvPmcuPHdici8+IHRoZSBsZW5zIHNoYWRpbmcKK2NvcnJlY3Rpb24gbWFwLDx3YnIvPiBhbmQgcmFkaWFsIGRpc3RvcnRpb24gZmllbGRzKSB0cmVhdHMgdGhlIHRvcCw8d2JyLz4gbGVmdCBvZiB0aGlzIHJlY3RhbmdsZSBhcwordGhlIG9yaWdpbiw8d2JyLz4gKDAsPHdici8+MCkuPHdici8+PC9wPgorPHA+VGhlIHNpemUgb2YgdGhpcyByZWdpb24gZGV0ZXJtaW5lcyB0aGUgbWF4aW11bSBmaWVsZCBvZiB2aWV3IGFuZCB0aGUgbWF4aW11bSBudW1iZXIgb2YKK3BpeGVscyB0aGF0IGFuIGltYWdlIGZyb20gdGhpcyBzZW5zb3IgY2FuIGNvbnRhaW4sPHdici8+IHByaW9yIHRvIHRoZSBhcHBsaWNhdGlvbiBvZgorZ2VvbWV0cmljIGRpc3RvcnRpb24gY29ycmVjdGlvbi48d2JyLz4gVGhlIGVmZmVjdGl2ZSBtYXhpbXVtIHBpeGVsIGRpbWVuc2lvbnMgb2YgYQorcG9zdC1kaXN0b3J0aW9uLWNvcnJlY3RlZCBpbWFnZSBpcyBnaXZlbiBieSB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+CitmaWVsZCw8d2JyLz4gYW5kIHRoZSBlZmZlY3RpdmUgbWF4aW11bSBmaWVsZCBvZiB2aWV3IGZvciBhIHBvc3QtZGlzdG9ydGlvbi1jb3JyZWN0ZWQgaW1hZ2UKK2NhbiBiZSBjYWxjdWxhdGVkIGJ5IGFwcGx5aW5nIHRoZSBnZW9tZXRyaWMgZGlzdG9ydGlvbiBjb3JyZWN0aW9uIGZpZWxkcyB0byB0aGlzCityZWN0YW5nbGUsPHdici8+IGFuZCBjcm9wcGluZyB0byB0aGUgcmVjdGFuZ2xlIGdpdmVuIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+Cis8cD5FLjx3YnIvPmcuPHdici8+IHRvIGNhbGN1bGF0ZSBwb3NpdGlvbiBvZiBhIHBpeGVsLDx3YnIvPiAoeCw8d2JyLz55KSw8d2JyLz4gaW4gYSBwcm9jZXNzZWQgWVVWIG91dHB1dCBpbWFnZSB3aXRoIHRoZQorZGltZW5zaW9ucyBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gZ2l2ZW4gdGhlIHBvc2l0aW9uIG9mIGEgcGl4ZWwsPHdici8+CisoeCcsPHdici8+IHknKSw8d2JyLz4gaW4gdGhlIHJhdyBwaXhlbCBhcnJheSB3aXRoIGRpbWVuc2lvbnMgZ2l2ZSBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPjo8L3A+Cis8b2w+Cis8bGk+Q2hvb3NlIGEgcGl4ZWwgKHgnLDx3YnIvPiB5Jykgd2l0aGluIHRoZSBhY3RpdmUgYXJyYXkgcmVnaW9uIG9mIHRoZSByYXcgYnVmZmVyIGdpdmVuIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiw8d2JyLz4gb3RoZXJ3aXNlIHRoaXMgcGl4ZWwgaXMgY29uc2lkZXJlZAordG8gYmUgb3V0c2lkZSBvZiB0aGUgRk9WLDx3YnIvPiBhbmQgd2lsbCBub3QgYmUgc2hvd24gaW4gdGhlIHByb2Nlc3NlZCBvdXRwdXQgaW1hZ2UuPHdici8+PC9saT4KKzxsaT5BcHBseSBnZW9tZXRyaWMgZGlzdG9ydGlvbiBjb3JyZWN0aW9uIHRvIGdldCB0aGUgcG9zdC1kaXN0b3J0aW9uIHBpeGVsIGNvb3JkaW5hdGUsPHdici8+CisoeF88d2JyLz5pLDx3YnIvPiB5Xzx3YnIvPmkpLjx3YnIvPiBXaGVuIGFwcGx5aW5nIGdlb21ldHJpYyBjb3JyZWN0aW9uIG1ldGFkYXRhLDx3YnIvPiBub3RlIHRoYXQgbWV0YWRhdGEgZm9yIHJhdworYnVmZmVycyBpcyBkZWZpbmVkIHJlbGF0aXZlIHRvIHRoZSB0b3AsPHdici8+IGxlZnQgb2YgdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiByZWN0YW5nbGUuPHdici8+PC9saT4KKzxsaT5JZiB0aGUgcmVzdWx0aW5nIGNvcnJlY3RlZCBwaXhlbCBjb29yZGluYXRlIGlzIHdpdGhpbiB0aGUgcmVnaW9uIGdpdmVuIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4sPHdici8+IHRoZW4gdGhlIHBvc2l0aW9uIG9mIHRoaXMgcGl4ZWwgaW4gdGhlCitwcm9jZXNzZWQgb3V0cHV0IGltYWdlIGJ1ZmZlciBpcyA8Y29kZT4oeF88d2JyLz5pIC0gYWN0aXZlQXJyYXkuPHdici8+bGVmdCw8d2JyLz4geV88d2JyLz5pIC0gYWN0aXZlQXJyYXkuPHdici8+dG9wKTwvY29kZT4sPHdici8+Cit3aGVuIHRoZSB0b3AsPHdici8+IGxlZnQgY29vcmRpbmF0ZSBvZiB0aGF0IGJ1ZmZlciBpcyB0cmVhdGVkIGFzICgwLDx3YnIvPiAwKS48d2JyLz48L2xpPgorPC9vbD4KKzxwPlRodXMsPHdici8+IGZvciBwaXhlbCB4Jyw8d2JyLz55JyA9ICgyNSw8d2JyLz4gMjUpIG9uIGEgc2Vuc29yIHdoZXJlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4KK2lzICgxMDAsPHdici8+MTAwKSw8d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gaXMgKDEwLDx3YnIvPiAxMCw8d2JyLz4gMTAwLDx3YnIvPiAxMDApLDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+IGlzICgyMCw8d2JyLz4gMjAsPHdici8+IDgwLDx3YnIvPiA4MCksPHdici8+IGFuZCB0aGUgZ2VvbWV0cmljIGRpc3RvcnRpb24KK2NvcnJlY3Rpb24gZG9lc24ndCBjaGFuZ2UgdGhlIHBpeGVsIGNvb3JkaW5hdGUsPHdici8+IHRoZSByZXN1bHRpbmcgcGl4ZWwgc2VsZWN0ZWQgaW4KK3BpeGVsIGNvb3JkaW5hdGVzIHdvdWxkIGJlIHgsPHdici8+eSA9ICgyNSw8d2JyLz4gMjUpIHJlbGF0aXZlIHRvIHRoZSB0b3AsPHdici8+bGVmdCBvZiB0aGUgcmF3IGJ1ZmZlcgord2l0aCBkaW1lbnNpb25zIGdpdmVuIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4sPHdici8+IGFuZCB3b3VsZCBiZSAoNSw8d2JyLz4gNSkKK3JlbGF0aXZlIHRvIHRoZSB0b3AsPHdici8+bGVmdCBvZiBwb3N0LXByb2Nlc3NlZCBZVVYgb3V0cHV0IGJ1ZmZlciB3aXRoIGRpbWVuc2lvbnMgZ2l2ZW4gaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgY3VycmVudGx5IHN1cHBvcnRlZCBmaWVsZHMgdGhhdCBjb3JyZWN0IGZvciBnZW9tZXRyaWMgZGlzdG9ydGlvbiBhcmU6PC9wPgorPG9sPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uPC9hPi48d2JyLz48L2xpPgorPC9vbD4KKzxwPklmIGFsbCBvZiB0aGUgZ2VvbWV0cmljIGRpc3RvcnRpb24gZmllbGRzIGFyZSBuby1vcHMsPHdici8+IHRoaXMgcmVjdGFuZ2xlIHdpbGwgYmUgdGhlIHNhbWUKK2FzIHRoZSBwb3N0LWRpc3RvcnRpb24tY29ycmVjdGVkIHJlY3RhbmdsZSBnaXZlbiBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoaXMgcmVjdGFuZ2xlIGlzIGRlZmluZWQgcmVsYXRpdmUgdG8gdGhlIGZ1bGwgcGl4ZWwgYXJyYXk7ICgwLDx3YnIvPjApIGlzIHRoZSB0b3AtbGVmdCBvZgordGhlIGZ1bGwgcGl4ZWwgYXJyYXksPHdici8+IGFuZCB0aGUgc2l6ZSBvZiB0aGUgZnVsbCBwaXhlbCBhcnJheSBpcyBnaXZlbiBieQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgcHJlLWNvcnJlY3Rpb24gYWN0aXZlIGFycmF5IG1heSBiZSBzbWFsbGVyIHRoYW4gdGhlIGZ1bGwgcGl4ZWwgYXJyYXksPHdici8+IHNpbmNlIHRoZQorZnVsbCBhcnJheSBtYXkgaW5jbHVkZSBibGFjayBjYWxpYnJhdGlvbiBwaXhlbHMgb3Igb3RoZXIgaW5hY3RpdmUgcmVnaW9ucy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgYXJyYXkgY29udGFpbnMgPGNvZGU+KHhtaW4sPHdici8+IHltaW4sPHdici8+IHdpZHRoLDx3YnIvPiBoZWlnaHQpPC9jb2RlPi48d2JyLz4gVGhlIDxjb2RlPih4bWluLDx3YnIvPiB5bWluKTwvY29kZT4gbXVzdCBiZQorJmd0Oz0gPGNvZGU+KDAsPHdici8+MCk8L2NvZGU+Ljx3YnIvPgorVGhlIDxjb2RlPih3aWR0aCw8d2JyLz4gaGVpZ2h0KTwvY29kZT4gbXVzdCBiZSAmbHQ7PSA8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+PC9jb2RlPi48d2JyLz48L3A+Cis8cD5JZiBvbWl0dGVkIGJ5IHRoZSBIQUwgaW1wbGVtZW50YXRpb24sPHdici8+IHRoZSBjYW1lcmEgZnJhbWV3b3JrIHdpbGwgYXNzdW1lIHRoYXQgdGhpcyBpcwordGhlIHNhbWUgYXMgdGhlIHBvc3QtY29ycmVjdGlvbiBhY3RpdmUgYXJyYXkgcmVnaW9uIGdpdmVuIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5EQVlMSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkxVT1JFU0NFTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjI8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRVTkdTVEVOPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4zPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JbmNhbmRlc2NlbnQgbGlnaHQ8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GTEFTSDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+NDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RklORV9XRUFUSEVSPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj45PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DTE9VRFlfV0VBVEhFUjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTA8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNIQURFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xMTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+REFZTElHSFRfRkxVT1JFU0NFTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjEyPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5EIDU3MDAgLSA3MTAwSzwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRBWV9XSElURV9GTFVPUkVTQ0VOVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTM8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk4gNDYwMCAtIDU0MDBLPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09PTF9XSElURV9GTFVPUkVTQ0VOVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlcgMzkwMCAtIDQ1MDBLPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+V0hJVEVfRkxVT1JFU0NFTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjE1PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5XVyAzMjAwIC0gMzcwMEs8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVEFOREFSRF9BPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xNzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RBTkRBUkRfQjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTg8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNUQU5EQVJEX0M8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjE5PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ENTU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjIwPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ENjU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjIxPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ENzU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjIyPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ENTA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjIzPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JU09fU1RVRElPX1RVTkdTVEVOPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4yNDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHN0YW5kYXJkIHJlZmVyZW5jZSBpbGx1bWluYW50IHVzZWQgYXMgdGhlIHNjZW5lIGxpZ2h0IHNvdXJjZSB3aGVuCitjYWxjdWxhdGluZyB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNvbG9yPHdici8+VHJhbnNmb3JtMTwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y2FsaWJyYXRpb248d2JyLz5UcmFuc2Zvcm0xPC9hPiw8d2JyLz4gYW5kCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgxIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mb3J3YXJkPHdici8+TWF0cml4MTwvYT4gbWF0cmljZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB2YWx1ZXMgaW4gdGhpcyBrZXkgY29ycmVzcG9uZCB0byB0aGUgdmFsdWVzIGRlZmluZWQgZm9yIHRoZQorRVhJRiBMaWdodFNvdXJjZSB0YWcuPHdici8+IFRoZXNlIGlsbHVtaW5hbnRzIGFyZSBzdGFuZGFyZCBsaWdodCBzb3VyY2VzCit0aGF0IGFyZSBvZnRlbiB1c2VkIGNhbGlicmF0aW5nIGNhbWVyYSBkZXZpY2VzLjx3YnIvPjwvcD4KKzxwPklmIHRoaXMga2V5IGlzIHByZXNlbnQsPHdici8+IHRoZW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNvbG9yPHdici8+VHJhbnNmb3JtMTwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y2FsaWJyYXRpb248d2JyLz5UcmFuc2Zvcm0xPC9hPiw8d2JyLz4gYW5kCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgxIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mb3J3YXJkPHdici8+TWF0cml4MTwvYT4gd2lsbCBhbHNvIGJlIHByZXNlbnQuPHdici8+PC9wPgorPHA+U29tZSBkZXZpY2VzIG1heSBjaG9vc2UgdG8gcHJvdmlkZSBhIHNlY29uZCBzZXQgb2YgY2FsaWJyYXRpb24KK2luZm9ybWF0aW9uIGZvciBpbXByb3ZlZCBxdWFsaXR5LDx3YnIvPiBpbmNsdWRpbmcKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQyPC9hPiBhbmQgaXRzIGNvcnJlc3BvbmRpbmcgbWF0cmljZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgZmlyc3QgcmVmZXJlbmNlIGlsbHVtaW5hbnQgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQxPC9hPikKK2FuZCBjb3JyZXNwb25kaW5nIG1hdHJpY2VzIG11c3QgYmUgcHJlc2VudCB0byBzdXBwb3J0IHRoZSBSQVcgY2FwYWJpbGl0eQorYW5kIERORyBvdXRwdXQuPHdici8+PC9wPgorPHA+V2hlbiBwcm9kdWNpbmcgcmF3IGltYWdlcyB3aXRoIGEgY29sb3IgcHJvZmlsZSB0aGF0IGhhcyBvbmx5IGJlZW4KK2NhbGlicmF0ZWQgYWdhaW5zdCBhIHNpbmdsZSBsaWdodCBzb3VyY2UsPHdici8+IGl0IGlzIHZhbGlkIHRvIG9taXQKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQyPC9hPiBhbG9uZyB3aXRoIHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNvbG9yPHdici8+VHJhbnNmb3JtMjwvYT4sPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0yIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jYWxpYnJhdGlvbjx3YnIvPlRyYW5zZm9ybTI8L2E+LDx3YnIvPgorYW5kIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZvcndhcmQ8d2JyLz5NYXRyaXgyPC9hPiBtYXRyaWNlcy48d2JyLz48L3A+Cis8cD5JZiBvbmx5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQxPC9hPiBpcyBpbmNsdWRlZCw8d2JyLz4gaXQgc2hvdWxkIGJlCitjaG9zZW4gc28gdGhhdCBpdCBpcyByZXByZXNlbnRhdGl2ZSBvZiB0eXBpY2FsIHNjZW5lIGxpZ2h0aW5nLjx3YnIvPiAgSW4KK2dlbmVyYWwsPHdici8+IEQ1MCBvciBEQVlMSUdIVCB3aWxsIGJlIGNob3NlbiBmb3IgdGhpcyBjYXNlLjx3YnIvPjwvcD4KKzxwPklmIGJvdGggPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDE8L2E+IGFuZAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDI8L2E+IGFyZSBpbmNsdWRlZCw8d2JyLz4gdGhleSBzaG91bGQgYmUKK2Nob3NlbiB0byByZXByZXNlbnQgdGhlIHR5cGljYWwgcmFuZ2Ugb2Ygc2NlbmUgbGlnaHRpbmcgY29uZGl0aW9ucy48d2JyLz4KK0luIGdlbmVyYWwsPHdici8+IGxvdyBjb2xvciB0ZW1wZXJhdHVyZSBpbGx1bWluYW50IHN1Y2ggYXMgU3RhbmRhcmQtQSB3aWxsCitiZSBjaG9zZW4gZm9yIHRoZSBmaXJzdCByZWZlcmVuY2UgaWxsdW1pbmFudCBhbmQgYSBoaWdoZXIgY29sb3IKK3RlbXBlcmF0dXJlIGlsbHVtaW5hbnQgc3VjaCBhcyBENjUgd2lsbCBiZSBjaG9zZW4gZm9yIHRoZSBzZWNvbmQKK3JlZmVyZW5jZSBpbGx1bWluYW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgc3RhbmRhcmQgcmVmZXJlbmNlIGlsbHVtaW5hbnQgdXNlZCBhcyB0aGUgc2NlbmUgbGlnaHQgc291cmNlIHdoZW4KK2NhbGN1bGF0aW5nIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y29sb3I8d2JyLz5UcmFuc2Zvcm0yPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0yIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jYWxpYnJhdGlvbjx3YnIvPlRyYW5zZm9ybTI8L2E+LDx3YnIvPiBhbmQKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZvcndhcmQ8d2JyLz5NYXRyaXgyPC9hPiBtYXRyaWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQxPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNlZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQxIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MTwvYT4gZm9yIG1vcmUgZGV0YWlscy48d2JyLz48L3A+Cis8cD5JZiB0aGlzIGtleSBpcyBwcmVzZW50LDx3YnIvPiB0aGVuIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY29sb3JUcmFuc2Zvcm0yIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jb2xvcjx3YnIvPlRyYW5zZm9ybTI8L2E+LDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNhbGlicmF0aW9uPHdici8+VHJhbnNmb3JtMjwvYT4sPHdici8+IGFuZAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5mb3J3YXJkTWF0cml4MiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Zm9yd2FyZDx3YnIvPk1hdHJpeDI8L2E+IHdpbGwgYWxzbyBiZSBwcmVzZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jYWxpYnJhdGlvbjx3YnIvPlRyYW5zZm9ybTEKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPnJhdGlvbmFsPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBjb2xvclNwYWNlVHJhbnNmb3JtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBwZXItZGV2aWNlIGNhbGlicmF0aW9uIHRyYW5zZm9ybSBtYXRyaXggdGhhdCBtYXBzIGZyb20gdGhlCityZWZlcmVuY2Ugc2Vuc29yIGNvbG9yc3BhY2UgdG8gdGhlIGFjdHVhbCBkZXZpY2Ugc2Vuc29yIGNvbG9yc3BhY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbWF0cml4IGlzIHVzZWQgdG8gY29ycmVjdCBmb3IgcGVyLWRldmljZSB2YXJpYXRpb25zIGluIHRoZQorc2Vuc29yIGNvbG9yc3BhY2UsPHdici8+IGFuZCBpcyB1c2VkIGZvciBwcm9jZXNzaW5nIHJhdyBidWZmZXIgZGF0YS48d2JyLz48L3A+Cis8cD5UaGUgbWF0cml4IGlzIGV4cHJlc3NlZCBhcyBhIDN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyLDx3YnIvPiBhbmQKK2NvbnRhaW5zIGEgcGVyLWRldmljZSBjYWxpYnJhdGlvbiB0cmFuc2Zvcm0gdGhhdCBtYXBzIGNvbG9ycworZnJvbSByZWZlcmVuY2Ugc2Vuc29yIGNvbG9yIHNwYWNlIChpLjx3YnIvPmUuPHdici8+IHRoZSAiZ29sZGVuIG1vZHVsZSIKK2NvbG9yc3BhY2UpIGludG8gdGhpcyBjYW1lcmEgZGV2aWNlJ3MgbmF0aXZlIHNlbnNvciBjb2xvcgorc3BhY2UgdW5kZXIgdGhlIGZpcnN0IHJlZmVyZW5jZSBpbGx1bWluYW50CisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDE8L2E+KS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y2FsaWJyYXRpb248d2JyLz5UcmFuc2Zvcm0yCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgY29sb3JTcGFjZVRyYW5zZm9ybV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4zeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlcjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgcGVyLWRldmljZSBjYWxpYnJhdGlvbiB0cmFuc2Zvcm0gbWF0cml4IHRoYXQgbWFwcyBmcm9tIHRoZQorcmVmZXJlbmNlIHNlbnNvciBjb2xvcnNwYWNlIHRvIHRoZSBhY3R1YWwgZGV2aWNlIHNlbnNvciBjb2xvcnNwYWNlCisodGhpcyBpcyB0aGUgY29sb3JzcGFjZSBvZiB0aGUgcmF3IGJ1ZmZlciBkYXRhKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBtYXRyaXggaXMgdXNlZCB0byBjb3JyZWN0IGZvciBwZXItZGV2aWNlIHZhcmlhdGlvbnMgaW4gdGhlCitzZW5zb3IgY29sb3JzcGFjZSw8d2JyLz4gYW5kIGlzIHVzZWQgZm9yIHByb2Nlc3NpbmcgcmF3IGJ1ZmZlciBkYXRhLjx3YnIvPjwvcD4KKzxwPlRoZSBtYXRyaXggaXMgZXhwcmVzc2VkIGFzIGEgM3gzIG1hdHJpeCBpbiByb3ctbWFqb3Itb3JkZXIsPHdici8+IGFuZAorY29udGFpbnMgYSBwZXItZGV2aWNlIGNhbGlicmF0aW9uIHRyYW5zZm9ybSB0aGF0IG1hcHMgY29sb3JzCitmcm9tIHJlZmVyZW5jZSBzZW5zb3IgY29sb3Igc3BhY2UgKGkuPHdici8+ZS48d2JyLz4gdGhlICJnb2xkZW4gbW9kdWxlIgorY29sb3JzcGFjZSkgaW50byB0aGlzIGNhbWVyYSBkZXZpY2UncyBuYXRpdmUgc2Vuc29yIGNvbG9yCitzcGFjZSB1bmRlciB0aGUgc2Vjb25kIHJlZmVyZW5jZSBpbGx1bWluYW50CisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDI8L2E+KS48d2JyLz48L3A+Cis8cD5UaGlzIG1hdHJpeCB3aWxsIG9ubHkgYmUgcHJlc2VudCBpZiB0aGUgc2Vjb25kIHJlZmVyZW5jZQoraWxsdW1pbmFudCBpcyBwcmVzZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jb2xvcjx3YnIvPlRyYW5zZm9ybTEKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPnJhdGlvbmFsPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBjb2xvclNwYWNlVHJhbnNmb3JtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBtYXRyaXggdGhhdCB0cmFuc2Zvcm1zIGNvbG9yIHZhbHVlcyBmcm9tIENJRSBYWVogY29sb3Igc3BhY2UgdG8KK3JlZmVyZW5jZSBzZW5zb3IgY29sb3Igc3BhY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbWF0cml4IGlzIHVzZWQgdG8gY29udmVydCBmcm9tIHRoZSBzdGFuZGFyZCBDSUUgWFlaIGNvbG9yCitzcGFjZSB0byB0aGUgcmVmZXJlbmNlIHNlbnNvciBjb2xvcnNwYWNlLDx3YnIvPiBhbmQgaXMgdXNlZCB3aGVuIHByb2Nlc3NpbmcKK3JhdyBidWZmZXIgZGF0YS48d2JyLz48L3A+Cis8cD5UaGUgbWF0cml4IGlzIGV4cHJlc3NlZCBhcyBhIDN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyLDx3YnIvPiBhbmQKK2NvbnRhaW5zIGEgY29sb3IgdHJhbnNmb3JtIG1hdHJpeCB0aGF0IG1hcHMgY29sb3JzIGZyb20gdGhlIENJRQorWFlaIGNvbG9yIHNwYWNlIHRvIHRoZSByZWZlcmVuY2Ugc2Vuc29yIGNvbG9yIHNwYWNlIChpLjx3YnIvPmUuPHdici8+IHRoZQorImdvbGRlbiBtb2R1bGUiIGNvbG9yc3BhY2UpIHVuZGVyIHRoZSBmaXJzdCByZWZlcmVuY2UgaWxsdW1pbmFudAorKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQxPC9hPikuPHdici8+PC9wPgorPHA+VGhlIHdoaXRlIHBvaW50cyBjaG9zZW4gaW4gYm90aCB0aGUgcmVmZXJlbmNlIHNlbnNvciBjb2xvciBzcGFjZQorYW5kIHRoZSBDSUUgWFlaIGNvbG9yc3BhY2Ugd2hlbiBjYWxjdWxhdGluZyB0aGlzIHRyYW5zZm9ybSB3aWxsCittYXRjaCB0aGUgc3RhbmRhcmQgd2hpdGUgcG9pbnQgZm9yIHRoZSBmaXJzdCByZWZlcmVuY2UgaWxsdW1pbmFudAorKGkuPHdici8+ZS48d2JyLz4gbm8gY2hyb21hdGljIGFkYXB0YXRpb24gd2lsbCBiZSBhcHBsaWVkIGJ5IHRoaXMgdHJhbnNmb3JtKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y29sb3I8d2JyLz5UcmFuc2Zvcm0yCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgY29sb3JTcGFjZVRyYW5zZm9ybV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4zeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlcjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbWF0cml4IHRoYXQgdHJhbnNmb3JtcyBjb2xvciB2YWx1ZXMgZnJvbSBDSUUgWFlaIGNvbG9yIHNwYWNlIHRvCityZWZlcmVuY2Ugc2Vuc29yIGNvbG9yIHNwYWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIG1hdHJpeCBpcyB1c2VkIHRvIGNvbnZlcnQgZnJvbSB0aGUgc3RhbmRhcmQgQ0lFIFhZWiBjb2xvcgorc3BhY2UgdG8gdGhlIHJlZmVyZW5jZSBzZW5zb3IgY29sb3JzcGFjZSw8d2JyLz4gYW5kIGlzIHVzZWQgd2hlbiBwcm9jZXNzaW5nCityYXcgYnVmZmVyIGRhdGEuPHdici8+PC9wPgorPHA+VGhlIG1hdHJpeCBpcyBleHByZXNzZWQgYXMgYSAzeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlciw8d2JyLz4gYW5kCitjb250YWlucyBhIGNvbG9yIHRyYW5zZm9ybSBtYXRyaXggdGhhdCBtYXBzIGNvbG9ycyBmcm9tIHRoZSBDSUUKK1hZWiBjb2xvciBzcGFjZSB0byB0aGUgcmVmZXJlbmNlIHNlbnNvciBjb2xvciBzcGFjZSAoaS48d2JyLz5lLjx3YnIvPiB0aGUKKyJnb2xkZW4gbW9kdWxlIiBjb2xvcnNwYWNlKSB1bmRlciB0aGUgc2Vjb25kIHJlZmVyZW5jZSBpbGx1bWluYW50CisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDI8L2E+KS48d2JyLz48L3A+Cis8cD5UaGUgd2hpdGUgcG9pbnRzIGNob3NlbiBpbiBib3RoIHRoZSByZWZlcmVuY2Ugc2Vuc29yIGNvbG9yIHNwYWNlCithbmQgdGhlIENJRSBYWVogY29sb3JzcGFjZSB3aGVuIGNhbGN1bGF0aW5nIHRoaXMgdHJhbnNmb3JtIHdpbGwKK21hdGNoIHRoZSBzdGFuZGFyZCB3aGl0ZSBwb2ludCBmb3IgdGhlIHNlY29uZCByZWZlcmVuY2UgaWxsdW1pbmFudAorKGkuPHdici8+ZS48d2JyLz4gbm8gY2hyb21hdGljIGFkYXB0YXRpb24gd2lsbCBiZSBhcHBsaWVkIGJ5IHRoaXMgdHJhbnNmb3JtKS48d2JyLz48L3A+Cis8cD5UaGlzIG1hdHJpeCB3aWxsIG9ubHkgYmUgcHJlc2VudCBpZiB0aGUgc2Vjb25kIHJlZmVyZW5jZQoraWxsdW1pbmFudCBpcyBwcmVzZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgxIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZvcndhcmQ8d2JyLz5NYXRyaXgxCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgY29sb3JTcGFjZVRyYW5zZm9ybV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4zeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlcjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbWF0cml4IHRoYXQgdHJhbnNmb3JtcyB3aGl0ZSBiYWxhbmNlZCBjYW1lcmEgY29sb3JzIGZyb20gdGhlIHJlZmVyZW5jZQorc2Vuc29yIGNvbG9yc3BhY2UgdG8gdGhlIENJRSBYWVogY29sb3JzcGFjZSB3aXRoIGEgRDUwIHdoaXRlcG9pbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbWF0cml4IGlzIHVzZWQgdG8gY29udmVydCB0byB0aGUgc3RhbmRhcmQgQ0lFIFhZWiBjb2xvcnNwYWNlLDx3YnIvPiBhbmQKK2lzIHVzZWQgd2hlbiBwcm9jZXNzaW5nIHJhdyBidWZmZXIgZGF0YS48d2JyLz48L3A+Cis8cD5UaGlzIG1hdHJpeCBpcyBleHByZXNzZWQgYXMgYSAzeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlciw8d2JyLz4gYW5kIGNvbnRhaW5zCithIGNvbG9yIHRyYW5zZm9ybSBtYXRyaXggdGhhdCBtYXBzIHdoaXRlIGJhbGFuY2VkIGNvbG9ycyBmcm9tIHRoZQorcmVmZXJlbmNlIHNlbnNvciBjb2xvciBzcGFjZSB0byB0aGUgQ0lFIFhZWiBjb2xvciBzcGFjZSB3aXRoIGEgRDUwIHdoaXRlCitwb2ludC48d2JyLz48L3A+Cis8cD5VbmRlciB0aGUgZmlyc3QgcmVmZXJlbmNlIGlsbHVtaW5hbnQgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQxPC9hPikKK3RoaXMgbWF0cml4IGlzIGNob3NlbiBzbyB0aGF0IHRoZSBzdGFuZGFyZCB3aGl0ZSBwb2ludCBmb3IgdGhpcyByZWZlcmVuY2UKK2lsbHVtaW5hbnQgaW4gdGhlIHJlZmVyZW5jZSBzZW5zb3IgY29sb3JzcGFjZSBpcyBtYXBwZWQgdG8gRDUwIGluIHRoZQorQ0lFIFhZWiBjb2xvcnNwYWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgyIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZvcndhcmQ8d2JyLz5NYXRyaXgyCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgY29sb3JTcGFjZVRyYW5zZm9ybV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4zeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlcjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbWF0cml4IHRoYXQgdHJhbnNmb3JtcyB3aGl0ZSBiYWxhbmNlZCBjYW1lcmEgY29sb3JzIGZyb20gdGhlIHJlZmVyZW5jZQorc2Vuc29yIGNvbG9yc3BhY2UgdG8gdGhlIENJRSBYWVogY29sb3JzcGFjZSB3aXRoIGEgRDUwIHdoaXRlcG9pbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbWF0cml4IGlzIHVzZWQgdG8gY29udmVydCB0byB0aGUgc3RhbmRhcmQgQ0lFIFhZWiBjb2xvcnNwYWNlLDx3YnIvPiBhbmQKK2lzIHVzZWQgd2hlbiBwcm9jZXNzaW5nIHJhdyBidWZmZXIgZGF0YS48d2JyLz48L3A+Cis8cD5UaGlzIG1hdHJpeCBpcyBleHByZXNzZWQgYXMgYSAzeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlciw8d2JyLz4gYW5kIGNvbnRhaW5zCithIGNvbG9yIHRyYW5zZm9ybSBtYXRyaXggdGhhdCBtYXBzIHdoaXRlIGJhbGFuY2VkIGNvbG9ycyBmcm9tIHRoZQorcmVmZXJlbmNlIHNlbnNvciBjb2xvciBzcGFjZSB0byB0aGUgQ0lFIFhZWiBjb2xvciBzcGFjZSB3aXRoIGEgRDUwIHdoaXRlCitwb2ludC48d2JyLz48L3A+Cis8cD5VbmRlciB0aGUgc2Vjb25kIHJlZmVyZW5jZSBpbGx1bWluYW50ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQyIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MjwvYT4pCit0aGlzIG1hdHJpeCBpcyBjaG9zZW4gc28gdGhhdCB0aGUgc3RhbmRhcmQgd2hpdGUgcG9pbnQgZm9yIHRoaXMgcmVmZXJlbmNlCitpbGx1bWluYW50IGluIHRoZSByZWZlcmVuY2Ugc2Vuc29yIGNvbG9yc3BhY2UgaXMgbWFwcGVkIHRvIEQ1MCBpbiB0aGUKK0NJRSBYWVogY29sb3JzcGFjZS48d2JyLz48L3A+Cis8cD5UaGlzIG1hdHJpeCB3aWxsIG9ubHkgYmUgcHJlc2VudCBpZiB0aGUgc2Vjb25kIHJlZmVyZW5jZQoraWxsdW1pbmFudCBpcyBwcmVzZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmJhc2VHYWluRmFjdG9yIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmJhc2U8d2JyLz5HYWluPHdici8+RmFjdG9yCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5HYWluIGZhY3RvciBmcm9tIGVsZWN0cm9ucyB0byByYXcgdW5pdHMgd2hlbgorSVNPPTEwMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+YmxhY2s8d2JyLz5MZXZlbDx3YnIvPlBhdHRlcm4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJsYWNrTGV2ZWxQYXR0ZXJuXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjJ4MiByYXcgY291bnQgYmxvY2s8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIGZpeGVkIGJsYWNrIGxldmVsIG9mZnNldCBmb3IgZWFjaCBvZiB0aGUgY29sb3IgZmlsdGVyIGFycmFuZ2VtZW50CisoQ0ZBKSBtb3NhaWMgY2hhbm5lbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMCBmb3IgZWFjaC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGtleSBzcGVjaWZpZXMgdGhlIHplcm8gbGlnaHQgdmFsdWUgZm9yIGVhY2ggb2YgdGhlIENGQSBtb3NhaWMKK2NoYW5uZWxzIGluIHRoZSBjYW1lcmEgc2Vuc29yLjx3YnIvPiAgVGhlIG1heGltYWwgdmFsdWUgb3V0cHV0IGJ5IHRoZQorc2Vuc29yIGlzIHJlcHJlc2VudGVkIGJ5IHRoZSB2YWx1ZSBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ud2hpdGVMZXZlbCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz53aGl0ZTx3YnIvPkxldmVsPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgdmFsdWVzIGFyZSBnaXZlbiBpbiB0aGUgc2FtZSBvcmRlciBhcyBjaGFubmVscyBsaXN0ZWQgZm9yIHRoZSBDRkEKK2xheW91dCBrZXkgKHNlZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uY29sb3JGaWx0ZXJBcnJhbmdlbWVudCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5jb2xvcjx3YnIvPkZpbHRlcjx3YnIvPkFycmFuZ2VtZW50PC9hPiksPHdici8+IGkuPHdici8+ZS48d2JyLz4gdGhlCitudGggdmFsdWUgZ2l2ZW4gY29ycmVzcG9uZHMgdG8gdGhlIGJsYWNrIGxldmVsIG9mZnNldCBmb3IgdGhlIG50aAorY29sb3IgY2hhbm5lbCBsaXN0ZWQgaW4gdGhlIENGQS48d2JyLz48L3A+Cis8cD5UaGUgYmxhY2sgbGV2ZWwgdmFsdWVzIG9mIGNhcHR1cmVkIGltYWdlcyBtYXkgdmFyeSBmb3IgZGlmZmVyZW50CitjYXB0dXJlIHNldHRpbmdzIChlLjx3YnIvPmcuLDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPikuPHdici8+IFRoaXMga2V5CityZXByZXNlbnRzIGEgY29hcnNlIGFwcHJveGltYXRpb24gZm9yIHN1Y2ggY2FzZS48d2JyLz4gSXQgaXMgcmVjb21tZW5kZWQgdG8KK3VzZSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5keW5hbWljQmxhY2tMZXZlbCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZHluYW1pYzx3YnIvPkJsYWNrPHdici8+TGV2ZWw8L2E+IG9yIHVzZSBwaXhlbHMgZnJvbQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcHRpY2FsQmxhY2tSZWdpb25zIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5vcHRpY2FsPHdici8+QmxhY2s8d2JyLz5SZWdpb25zPC9hPiBkaXJlY3RseSBmb3IgY2FwdHVyZXMgd2hlbgorc3VwcG9ydGVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiB3aGljaCBwcm92aWRlcyBtb3JlIGFjY3VyYXRlIGJsYWNrCitsZXZlbCB2YWx1ZXMuPHdici8+IEZvciByYXcgY2FwdHVyZSBpbiBwYXJ0aWN1bGFyLDx3YnIvPiBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UKK3BpeGVscyBmcm9tIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3B0aWNhbEJsYWNrUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3B0aWNhbDx3YnIvPkJsYWNrPHdici8+UmVnaW9uczwvYT4gdG8gY2FsY3VsYXRlIGJsYWNrCitsZXZlbCB2YWx1ZXMgZm9yIGVhY2ggZnJhbWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdmFsdWVzIGFyZSBnaXZlbiBpbiByb3ctY29sdW1uIHNjYW4gb3JkZXIsPHdici8+IHdpdGggdGhlIGZpcnN0IHZhbHVlCitjb3JyZXNwb25kaW5nIHRvIHRoZSBlbGVtZW50IG9mIHRoZSBDRkEgaW4gcm93PTAsPHdici8+IGNvbHVtbj0wLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5tYXhBbmFsb2dTZW5zaXRpdml0eSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5tYXg8d2JyLz5BbmFsb2c8d2JyLz5TZW5zaXRpdml0eQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TWF4aW11bSBzZW5zaXRpdml0eSB0aGF0IGlzIGltcGxlbWVudGVkCitwdXJlbHkgdGhyb3VnaCBhbmFsb2cgZ2Fpbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVMTCI+RlVMTDwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiB2YWx1ZXMgbGVzcyB0aGFuIG9yCitlcXVhbCB0byB0aGlzLDx3YnIvPiBhbGwgYXBwbGllZCBnYWluIG11c3QgYmUgYW5hbG9nLjx3YnIvPiBGb3IKK3ZhbHVlcyBhYm92ZSB0aGlzLDx3YnIvPiB0aGUgZ2FpbiBhcHBsaWVkIGNhbiBiZSBhIG1peCBvZiBhbmFsb2cgYW5kCitkaWdpdGFsLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLm9yaWVudGF0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9yaWVudGF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkNsb2Nrd2lzZSBhbmdsZSB0aHJvdWdoIHdoaWNoIHRoZSBvdXRwdXQgaW1hZ2UgbmVlZHMgdG8gYmUgcm90YXRlZCB0byBiZQordXByaWdodCBvbiB0aGUgZGV2aWNlIHNjcmVlbiBpbiBpdHMgbmF0aXZlIG9yaWVudGF0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBEZWdyZWVzIG9mIGNsb2Nrd2lzZSByb3RhdGlvbjsgYWx3YXlzIGEgbXVsdGlwbGUgb2YKKyAgICAgICAgICA5MAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAsPHdici8+IDkwLDx3YnIvPiAxODAsPHdici8+IDI3MDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5BbHNvIGRlZmluZXMgdGhlIGRpcmVjdGlvbiBvZiByb2xsaW5nIHNodXR0ZXIgcmVhZG91dCw8d2JyLz4gd2hpY2ggaXMgZnJvbSB0b3AgdG8gYm90dG9tIGluCit0aGUgc2Vuc29yJ3MgY29vcmRpbmF0ZSBzeXN0ZW0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcERpbWVuc2lvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cHJvZmlsZTx3YnIvPkh1ZTx3YnIvPlNhdDx3YnIvPk1hcDx3YnIvPkRpbWVuc2lvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPk51bWJlciBvZiBzYW1wbGVzIGZvciBodWUsPHdici8+IHNhdHVyYXRpb24sPHdici8+IGFuZCB2YWx1ZTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBudW1iZXIgb2YgaW5wdXQgc2FtcGxlcyBmb3IgZWFjaCBkaW1lbnNpb24gb2YKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXAiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnByb2ZpbGU8d2JyLz5IdWU8d2JyLz5TYXQ8d2JyLz5NYXA8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkh1ZSAmZ3Q7PSAxLDx3YnIvPgorU2F0dXJhdGlvbiAmZ3Q7PSAyLDx3YnIvPgorVmFsdWUgJmd0Oz0gMTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBudW1iZXIgb2YgaW5wdXQgc2FtcGxlcyBmb3IgdGhlIGh1ZSw8d2JyLz4gc2F0dXJhdGlvbiw8d2JyLz4gYW5kIHZhbHVlCitkaW1lbnNpb24gb2YgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cHJvZmlsZTx3YnIvPkh1ZTx3YnIvPlNhdDx3YnIvPk1hcDwvYT4uPHdici8+IFRoZSBvcmRlciBvZiB0aGUKK2RpbWVuc2lvbnMgZ2l2ZW4gaXMgaHVlLDx3YnIvPiBzYXR1cmF0aW9uLDx3YnIvPiB2YWx1ZTsgd2hlcmUgaHVlIGlzIHRoZSAwdGgKK2VsZW1lbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYXZhaWxhYmxlVGVzdFBhdHRlcm5Nb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5hdmFpbGFibGU8d2JyLz5UZXN0PHdici8+UGF0dGVybjx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5saXN0IG9mIGVudW1zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBzZW5zb3IgdGVzdCBwYXR0ZXJuIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5Nb2RlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50ZXN0PHdici8+UGF0dGVybjx3YnIvPk1vZGU8L2E+CitzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuTW9kZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RGVmYXVsdHMgdG8gT0ZGLDx3YnIvPiBhbmQgYWx3YXlzIGluY2x1ZGVzIE9GRiBpZiBkZWZpbmVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QWxsIGN1c3RvbSBtb2RlcyBtdXN0IGJlICZndDs9IENVU1RPTTEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLm9wdGljYWxCbGFja1JlZ2lvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3B0aWNhbDx3YnIvPkJsYWNrPHdici8+UmVnaW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNCB4IG51bV9yZWdpb25zCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByZWN0YW5nbGVdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBkaXNqb2ludCByZWN0YW5nbGVzIGluZGljYXRpbmcgdGhlIHNlbnNvcgorb3B0aWNhbGx5IHNoaWVsZGVkIGJsYWNrIHBpeGVsIHJlZ2lvbnMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SW4gbW9zdCBjYW1lcmEgc2Vuc29ycyw8d2JyLz4gdGhlIGFjdGl2ZSBhcnJheSBpcyBzdXJyb3VuZGVkIGJ5IHNvbWUKK29wdGljYWxseSBzaGllbGRlZCBwaXhlbCBhcmVhcy48d2JyLz4gQnkgYmxvY2tpbmcgbGlnaHQsPHdici8+IHRoZXNlIHBpeGVscworcHJvdmlkZXMgYSByZWxpYWJsZSBibGFjayByZWZlcmVuY2UgZm9yIGJsYWNrIGxldmVsIGNvbXBlbnNhdGlvbgoraW4gYWN0aXZlIGFycmF5IHJlZ2lvbi48d2JyLz48L3A+Cis8cD5UaGlzIGtleSBwcm92aWRlcyBhIGxpc3Qgb2YgZGlzam9pbnQgcmVjdGFuZ2xlcyBzcGVjaWZ5aW5nIHRoZQorcmVnaW9ucyBvZiBvcHRpY2FsbHkgc2hpZWxkZWQgKHdpdGggbWV0YWwgc2hpZWxkKSBibGFjayBwaXhlbAorcmVnaW9ucyBpZiB0aGUgY2FtZXJhIGRldmljZSBpcyBjYXBhYmxlIG9mIHJlYWRpbmcgb3V0IHRoZXNlIGJsYWNrCitwaXhlbHMgaW4gdGhlIG91dHB1dCByYXcgaW1hZ2VzLjx3YnIvPiBJbiBjb21wYXJpc29uIHRvIHRoZSBmaXhlZCBibGFjaworbGV2ZWwgdmFsdWVzIHJlcG9ydGVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmJsYWNrPHdici8+TGV2ZWw8d2JyLz5QYXR0ZXJuPC9hPiw8d2JyLz4gdGhpcyBrZXkKK21heSBwcm92aWRlIGEgbW9yZSBhY2N1cmF0ZSB3YXkgZm9yIHRoZSBhcHBsaWNhdGlvbiB0byBjYWxjdWxhdGUKK2JsYWNrIGxldmVsIG9mIGVhY2ggY2FwdHVyZWQgcmF3IGltYWdlcy48d2JyLz48L3A+Cis8cD5XaGVuIHRoaXMga2V5IGlzIHJlcG9ydGVkLDx3YnIvPiB0aGUgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZHluYW1pY0JsYWNrTGV2ZWwiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmR5bmFtaWM8d2JyLz5CbGFjazx3YnIvPkxldmVsPC9hPiBhbmQKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmR5bmFtaWNXaGl0ZUxldmVsIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5keW5hbWljPHdici8+V2hpdGU8d2JyLz5MZXZlbDwvYT4gd2lsbCBhbHNvIGJlIHJlcG9ydGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBhcnJheSBjb250YWlucyAoeG1pbiw8d2JyLz4geW1pbiw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCkuPHdici8+IFRoZSAoeG1pbiw8d2JyLz4geW1pbikKK211c3QgYmUgJmd0Oz0gKDAsPHdici8+MCkgYW5kICZsdDs9Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPiBUaGUgKHdpZHRoLDx3YnIvPiBoZWlnaHQpIG11c3QgYmUKKyZsdDs9IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+IEVhY2ggcmVnaW9uIG11c3QgYmUKK291dHNpZGUgdGhlIHJlZ2lvbiByZXBvcnRlZCBieQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+PC9wPgorPHA+VGhlIEhBTCBtdXN0IHJlcG9ydCBtaW5pbWFsIG51bWJlciBvZiBkaXNqb2ludCByZWdpb25zIGZvciB0aGUKK29wdGljYWxseSBzaGllbGRlZCBiYWNrIHBpeGVsIHJlZ2lvbnMuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBpZiBhIHJlZ2lvbiBjYW4KK2JlIGNvdmVyZWQgYnkgb25lIHJlY3RhbmdsZSw8d2JyLz4gdGhlIEhBTCBtdXN0IG5vdCBzcGxpdCB0aGlzIHJlZ2lvbiBpbnRvCittdWx0aXBsZSByZWN0YW5nbGVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5vcGFxdWVSYXdTaXplIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9wYXF1ZTx3YnIvPlJhdzx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5TaXplIGluIGJ5dGVzIGZvciBhbGwgdGhlIGxpc3RlZCBvcGFxdWUgUkFXIGJ1ZmZlciBzaXplczwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPk11c3QgYmUgbGFyZ2UgZW5vdWdoIHRvIGZpdCB0aGUgb3BhcXVlIFJBVyBvZiBjb3JyZXNwb25kaW5nIHNpemUgcHJvZHVjZWQgYnkKK3RoZSBjYW1lcmE8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29uZmlndXJhdGlvbnMgYXJlIGxpc3RlZCBhcyA8Y29kZT4od2lkdGgsPHdici8+IGhlaWdodCw8d2JyLz4gc2l6ZV88d2JyLz5pbl88d2JyLz5ieXRlcyk8L2NvZGU+IHR1cGxlcy48d2JyLz4KK1RoaXMgaXMgdXNlZCBmb3Igc2l6aW5nIHRoZSBncmFsbG9jIGJ1ZmZlcnMgZm9yIG9wYXF1ZSBSQVcgYnVmZmVycy48d2JyLz4KK0FsbCBSQVdfPHdici8+T1BBUVVFIG91dHB1dCBzdHJlYW0gY29uZmlndXJhdGlvbiBsaXN0ZWQgaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPiB3aWxsIGhhdmUgYSBjb3JyZXNwb25kaW5nIHR1cGxlIGluCit0aGlzIGtleS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMga2V5IGlzIGFkZGVkIGluIEhBTDMuPHdici8+NC48d2JyLz4KK0ZvciBIQUwzLjx3YnIvPjQgb3IgYWJvdmU6IGRldmljZXMgYWR2ZXJ0aXNpbmcgUkFXXzx3YnIvPk9QQVFVRSBmb3JtYXQgb3V0cHV0IG11c3QgbGlzdCB0aGlzIGtleS48d2JyLz4KK0ZvciBIQUwzLjx3YnIvPjMgb3IgZWFybGllciBkZXZpY2VzOiBpZiBSQVdfPHdici8+T1BBUVVFIG91cHV0IGlzIGFkdmVydGlzZWQsPHdici8+IGNhbWVyYSBmcmFtZXdvcmsKK3dpbGwgZGVyaXZlIHRoaXMga2V5IGJ5IGFzc3VtaW5nIGVhY2ggcGl4ZWwgdGFrZXMgdHdvIGJ5dGVzIGFuZCBubyBwYWRkaW5nIGJ5dGVzCitiZXR3ZWVuIHJvd3MuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkR1cmF0aW9uIGVhY2ggcGl4ZWwgaXMgZXhwb3NlZCB0bworbGlnaHQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmV4cG9zdXJlVGltZVJhbmdlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTx3YnIvPlJhbmdlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiB0aGUgc2Vuc29yIGNhbid0IGV4cG9zZSB0aGlzIGV4YWN0IGR1cmF0aW9uLDx3YnIvPiBpdCB3aWxsIHNob3J0ZW4gdGhlCitkdXJhdGlvbiBleHBvc2VkIHRvIHRoZSBuZWFyZXN0IHBvc3NpYmxlIHZhbHVlIChyYXRoZXIgdGhhbiBleHBvc2UgbG9uZ2VyKS48d2JyLz4KK1RoZSBmaW5hbCBleHBvc3VyZSB0aW1lIHVzZWQgd2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIG91dHB1dCBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzIHNldCB0bworT0ZGOyBvdGhlcndpc2UgdGhlIGF1dG8tZXhwb3N1cmUgYWxnb3JpdGhtIHdpbGwgb3ZlcnJpZGUgdGhpcyB2YWx1ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EdXJhdGlvbiBmcm9tIHN0YXJ0IG9mIGZyYW1lIGV4cG9zdXJlIHRvCitzdGFydCBvZiBuZXh0IGZyYW1lIGV4cG9zdXJlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBOYW5vc2Vjb25kcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlNlZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubWF4RnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5tYXg8d2JyLz5GcmFtZTx3YnIvPkR1cmF0aW9uPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcDwvYT4uPHdici8+IFRoZSBkdXJhdGlvbgoraXMgY2FwcGVkIHRvIDxjb2RlPm1heChkdXJhdGlvbiw8d2JyLz4gZXhwb3N1cmVUaW1lICsgb3ZlcmhlYWQpPC9jb2RlPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIG1heGltdW0gZnJhbWUgcmF0ZSB0aGF0IGNhbiBiZSBzdXBwb3J0ZWQgYnkgYSBjYW1lcmEgc3Vic3lzdGVtIGlzCithIGZ1bmN0aW9uIG9mIG1hbnkgZmFjdG9yczo8L3A+Cis8dWw+Cis8bGk+UmVxdWVzdGVkIHJlc29sdXRpb25zIG9mIG91dHB1dCBpbWFnZSBzdHJlYW1zPC9saT4KKzxsaT5BdmFpbGFiaWxpdHkgb2YgYmlubmluZyAvPHdici8+IHNraXBwaW5nIG1vZGVzIG9uIHRoZSBpbWFnZXI8L2xpPgorPGxpPlRoZSBiYW5kd2lkdGggb2YgdGhlIGltYWdlciBpbnRlcmZhY2U8L2xpPgorPGxpPlRoZSBiYW5kd2lkdGggb2YgdGhlIHZhcmlvdXMgSVNQIHByb2Nlc3NpbmcgYmxvY2tzPC9saT4KKzwvdWw+Cis8cD5TaW5jZSB0aGVzZSBmYWN0b3JzIGNhbiB2YXJ5IGdyZWF0bHkgYmV0d2VlbiBkaWZmZXJlbnQgSVNQcyBhbmQKK3NlbnNvcnMsPHdici8+IHRoZSBjYW1lcmEgYWJzdHJhY3Rpb24gdHJpZXMgdG8gcmVwcmVzZW50IHRoZSBiYW5kd2lkdGgKK3Jlc3RyaWN0aW9ucyB3aXRoIGFzIHNpbXBsZSBhIG1vZGVsIGFzIHBvc3NpYmxlLjx3YnIvPjwvcD4KKzxwPlRoZSBtb2RlbCBwcmVzZW50ZWQgaGFzIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyaXN0aWNzOjwvcD4KKzx1bD4KKzxsaT5UaGUgaW1hZ2Ugc2Vuc29yIGlzIGFsd2F5cyBjb25maWd1cmVkIHRvIG91dHB1dCB0aGUgc21hbGxlc3QKK3Jlc29sdXRpb24gcG9zc2libGUgZ2l2ZW4gdGhlIGFwcGxpY2F0aW9uJ3MgcmVxdWVzdGVkIG91dHB1dCBzdHJlYW0KK3NpemVzLjx3YnIvPiAgVGhlIHNtYWxsZXN0IHJlc29sdXRpb24gaXMgZGVmaW5lZCBhcyBiZWluZyBhdCBsZWFzdCBhcyBsYXJnZQorYXMgdGhlIGxhcmdlc3QgcmVxdWVzdGVkIG91dHB1dCBzdHJlYW0gc2l6ZTsgdGhlIGNhbWVyYSBwaXBlbGluZSBtdXN0CituZXZlciBkaWdpdGFsbHkgdXBzYW1wbGUgc2Vuc29yIGRhdGEgd2hlbiB0aGUgY3JvcCByZWdpb24gY292ZXJzIHRoZQord2hvbGUgc2Vuc29yLjx3YnIvPiBJbiBnZW5lcmFsLDx3YnIvPiB0aGlzIG1lYW5zIHRoYXQgaWYgb25seSBzbWFsbCBvdXRwdXQgc3RyZWFtCityZXNvbHV0aW9ucyBhcmUgY29uZmlndXJlZCw8d2JyLz4gdGhlIHNlbnNvciBjYW4gcHJvdmlkZSBhIGhpZ2hlciBmcmFtZQorcmF0ZS48d2JyLz48L2xpPgorPGxpPlNpbmNlIGFueSByZXF1ZXN0IG1heSB1c2UgYW55IG9yIGFsbCB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQKK291dHB1dCBzdHJlYW1zLDx3YnIvPiB0aGUgc2Vuc29yIGFuZCBJU1AgbXVzdCBiZSBjb25maWd1cmVkIHRvIHN1cHBvcnQKK3NjYWxpbmcgYSBzaW5nbGUgY2FwdHVyZSB0byBhbGwgdGhlIHN0cmVhbXMgYXQgdGhlIHNhbWUgdGltZS48d2JyLz4gIFRoaXMKK21lYW5zIHRoZSBjYW1lcmEgcGlwZWxpbmUgbXVzdCBiZSByZWFkeSB0byBwcm9kdWNlIHRoZSBsYXJnZXN0CityZXF1ZXN0ZWQgb3V0cHV0IHNpemUgd2l0aG91dCBhbnkgZGVsYXkuPHdici8+ICBUaGVyZWZvcmUsPHdici8+IHRoZSBvdmVyYWxsCitmcmFtZSByYXRlIG9mIGEgZ2l2ZW4gY29uZmlndXJlZCBzdHJlYW0gc2V0IGlzIGdvdmVybmVkIG9ubHkgYnkgdGhlCitsYXJnZXN0IHJlcXVlc3RlZCBzdHJlYW0gcmVzb2x1dGlvbi48d2JyLz48L2xpPgorPGxpPlVzaW5nIG1vcmUgdGhhbiBvbmUgb3V0cHV0IHN0cmVhbSBpbiBhIHJlcXVlc3QgZG9lcyBub3QgYWZmZWN0IHRoZQorZnJhbWUgZHVyYXRpb24uPHdici8+PC9saT4KKzxsaT5DZXJ0YWluIGZvcm1hdC1zdHJlYW1zIG1heSBuZWVkIHRvIGRvIGFkZGl0aW9uYWwgYmFja2dyb3VuZCBwcm9jZXNzaW5nCitiZWZvcmUgZGF0YSBpcyBjb25zdW1lZC88d2JyLz5wcm9kdWNlZCBieSB0aGF0IHN0cmVhbS48d2JyLz4gVGhlc2UgcHJvY2Vzc29ycworY2FuIHJ1biBjb25jdXJyZW50bHkgdG8gdGhlIHJlc3Qgb2YgdGhlIGNhbWVyYSBwaXBlbGluZSw8d2JyLz4gYnV0CitjYW5ub3QgcHJvY2VzcyBtb3JlIHRoYW4gMSBjYXB0dXJlIGF0IGEgdGltZS48d2JyLz48L2xpPgorPC91bD4KKzxwPlRoZSBuZWNlc3NhcnkgaW5mb3JtYXRpb24gZm9yIHRoZSBhcHBsaWNhdGlvbiw8d2JyLz4gZ2l2ZW4gdGhlIG1vZGVsIGFib3ZlLDx3YnIvPgoraXMgcHJvdmlkZWQgdmlhIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPnN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb248d2JyLz5NYXA8L2E+IGZpZWxkIHVzaW5nCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uPC9hPi48d2JyLz4KK1RoZXNlIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgbWF4aW11bSBmcmFtZSByYXRlIC88d2JyLz4gbWluaW11bSBmcmFtZQorZHVyYXRpb24gdGhhdCBpcyBwb3NzaWJsZSBmb3IgYSBnaXZlbiBzdHJlYW0gY29uZmlndXJhdGlvbi48d2JyLz48L3A+Cis8cD5TcGVjaWZpY2FsbHksPHdici8+IHRoZSBhcHBsaWNhdGlvbiBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgcnVsZXMgdG8KK2RldGVybWluZSB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBpdCBjYW4gcmVxdWVzdCBmcm9tIHRoZSBjYW1lcmEKK2RldmljZTo8L3A+Cis8b2w+Cis8bGk+TGV0IHRoZSBzZXQgb2YgY3VycmVudGx5IGNvbmZpZ3VyZWQgaW5wdXQvPHdici8+b3V0cHV0IHN0cmVhbXMKK2JlIGNhbGxlZCA8Y29kZT5TPC9jb2RlPi48d2JyLz48L2xpPgorPGxpPkZpbmQgdGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb25zIGZvciBlYWNoIHN0cmVhbSBpbiA8Y29kZT5TPC9jb2RlPiw8d2JyLz4gYnkgbG9va2luZworaXQgdXAgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5zdHJlYW1Db25maWd1cmF0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5zdHJlYW08d2JyLz5Db25maWd1cmF0aW9uPHdici8+TWFwPC9hPiB1c2luZyA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uPC9hPgorKHdpdGggaXRzIHJlc3BlY3RpdmUgc2l6ZS88d2JyLz5mb3JtYXQpLjx3YnIvPiBMZXQgdGhpcyBzZXQgb2YgZnJhbWUgZHVyYXRpb25zIGJlCitjYWxsZWQgPGNvZGU+RjwvY29kZT4uPHdici8+PC9saT4KKzxsaT5Gb3IgYW55IGdpdmVuIHJlcXVlc3QgPGNvZGU+UjwvY29kZT4sPHdici8+IHRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIGFsbG93ZWQKK2ZvciA8Y29kZT5SPC9jb2RlPiBpcyB0aGUgbWF4aW11bSBvdXQgb2YgYWxsIHZhbHVlcyBpbiA8Y29kZT5GPC9jb2RlPi48d2JyLz4gTGV0IHRoZSBzdHJlYW1zCit1c2VkIGluIDxjb2RlPlI8L2NvZGU+IGJlIGNhbGxlZCA8Y29kZT5TXzx3YnIvPnI8L2NvZGU+Ljx3YnIvPjwvbGk+Cis8L29sPgorPHA+SWYgbm9uZSBvZiB0aGUgc3RyZWFtcyBpbiA8Y29kZT5TXzx3YnIvPnI8L2NvZGU+IGhhdmUgYSBzdGFsbCB0aW1lIChsaXN0ZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbjwvYT4KK3VzaW5nIGl0cyByZXNwZWN0aXZlIHNpemUvPHdici8+Zm9ybWF0KSw8d2JyLz4gdGhlbiB0aGUgZnJhbWUgZHVyYXRpb24gaW4gPGNvZGU+RjwvY29kZT4KK2RldGVybWluZXMgdGhlIHN0ZWFkeSBzdGF0ZSBmcmFtZSByYXRlIHRoYXQgdGhlIGFwcGxpY2F0aW9uIHdpbGwgZ2V0CitpZiBpdCB1c2VzIDxjb2RlPlI8L2NvZGU+IGFzIGEgcmVwZWF0aW5nIHJlcXVlc3QuPHdici8+IExldCB0aGlzIHNwZWNpYWwga2luZCBvZgorcmVxdWVzdCBiZSBjYWxsZWQgPGNvZGU+UnNpbXBsZTwvY29kZT4uPHdici8+PC9wPgorPHA+QSByZXBlYXRpbmcgcmVxdWVzdCA8Y29kZT5Sc2ltcGxlPC9jb2RlPiBjYW4gYmUgPGVtPm9jY2FzaW9uYWxseTwvZW0+IGludGVybGVhdmVkCitieSBhIHNpbmdsZSBjYXB0dXJlIG9mIGEgbmV3IHJlcXVlc3QgPGNvZGU+UnN0YWxsPC9jb2RlPiAod2hpY2ggaGFzIGF0IGxlYXN0CitvbmUgaW4tdXNlIHN0cmVhbSB3aXRoIGEgbm9uLTAgc3RhbGwgdGltZSkgYW5kIGlmIDxjb2RlPlJzdGFsbDwvY29kZT4gaGFzIHRoZQorc2FtZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIHRoaXMgd2lsbCBub3QgY2F1c2UgYSBmcmFtZSByYXRlIGxvc3MKK2lmIGFsbCBidWZmZXJzIGZyb20gdGhlIHByZXZpb3VzIDxjb2RlPlJzdGFsbDwvY29kZT4gaGF2ZSBhbHJlYWR5IGJlZW4KK2RlbGl2ZXJlZC48d2JyLz48L3A+Cis8cD5Gb3IgbW9yZSBkZXRhaWxzIGFib3V0IHN0YWxsaW5nLDx3YnIvPiBzZWUKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dFN0YWxsRHVyYXRpb248L2E+Ljx3YnIvPjwvcD4KKzxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gaXMgc2V0IHRvCitPRkY7IG90aGVyd2lzZSB0aGUgYXV0by1leHBvc3VyZSBhbGdvcml0aG0gd2lsbCBvdmVycmlkZSB0aGlzIHZhbHVlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIG1vcmUgZGV0YWlscyBhYm91dCBzdGFsbGluZyw8d2JyLz4gc2VlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdGFsbDx3YnIvPkR1cmF0aW9uczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBnYWluIGFwcGxpZWQgdG8gc2Vuc29yIGRhdGEKK2JlZm9yZSBwcm9jZXNzaW5nLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBJU08gYXJpdGhtZXRpYyB1bml0cworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5zZW5zaXRpdml0eVJhbmdlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnNlbnNpdGl2aXR5PHdici8+UmFuZ2U8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBzZW5zaXRpdml0eSBpcyB0aGUgc3RhbmRhcmQgSVNPIHNlbnNpdGl2aXR5IHZhbHVlLDx3YnIvPgorYXMgZGVmaW5lZCBpbiBJU08gMTIyMzI6MjAwNi48d2JyLz48L3A+Cis8cD5UaGUgc2Vuc2l0aXZpdHkgbXVzdCBiZSB3aXRoaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+c2Vuc2l0aXZpdHk8d2JyLz5SYW5nZTwvYT4sPHdici8+IGFuZAoraWYgaWYgaXQgbGVzcyB0aGFuIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IubWF4QW5hbG9nU2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm1heDx3YnIvPkFuYWxvZzx3YnIvPlNlbnNpdGl2aXR5PC9hPiw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UKK2lzIGd1YXJhbnRlZWQgdG8gdXNlIG9ubHkgYW5hbG9nIGFtcGxpZmljYXRpb24gZm9yIGFwcGx5aW5nIHRoZSBnYWluLjx3YnIvPjwvcD4KKzxwPklmIHRoZSBjYW1lcmEgZGV2aWNlIGNhbm5vdCBhcHBseSB0aGUgZXhhY3Qgc2Vuc2l0aXZpdHkKK3JlcXVlc3RlZCw8d2JyLz4gaXQgd2lsbCByZWR1Y2UgdGhlIGdhaW4gdG8gdGhlIG5lYXJlc3Qgc3VwcG9ydGVkCit2YWx1ZS48d2JyLz4gVGhlIGZpbmFsIHNlbnNpdGl2aXR5IHVzZWQgd2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlCitvdXRwdXQgY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPgorPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiBpcyBzZXQgdG8KK09GRjsgb3RoZXJ3aXNlIHRoZSBhdXRvLWV4cG9zdXJlIGFsZ29yaXRobSB3aWxsIG92ZXJyaWRlIHRoaXMgdmFsdWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JU08gMTIyMzI6MjAwNiBSRUkgbWV0aG9kIGlzIGFjY2VwdGFibGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci50aW1lc3RhbXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGltZXN0YW1wCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRpbWUgYXQgc3RhcnQgb2YgZXhwb3N1cmUgb2YgZmlyc3QKK3JvdyBvZiB0aGUgaW1hZ2Ugc2Vuc29yIGFjdGl2ZSBhcnJheSw8d2JyLz4gaW4gbmFub3NlY29uZHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0OyAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB0aW1lc3RhbXBzIGFyZSBhbHNvIGluY2x1ZGVkIGluIGFsbCBpbWFnZQorYnVmZmVycyBwcm9kdWNlZCBmb3IgdGhlIHNhbWUgY2FwdHVyZSw8d2JyLz4gYW5kIHdpbGwgYmUgaWRlbnRpY2FsCitvbiBhbGwgdGhlIG91dHB1dHMuPHdici8+PC9wPgorPHA+V2hlbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnRpbWVzdGFtcDx3YnIvPlNvdXJjZTwvYT4gPGNvZGU+PT08L2NvZGU+IFVOS05PV04sPHdici8+Cit0aGUgdGltZXN0YW1wcyBtZWFzdXJlIHRpbWUgc2luY2UgYW4gdW5zcGVjaWZpZWQgc3RhcnRpbmcgcG9pbnQsPHdici8+CithbmQgYXJlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZy48d2JyLz4gVGhleSBjYW4gYmUgY29tcGFyZWQgd2l0aCB0aGUKK3RpbWVzdGFtcHMgZm9yIG90aGVyIGNhcHR1cmVzIGZyb20gdGhlIHNhbWUgY2FtZXJhIGRldmljZSw8d2JyLz4gYnV0IGFyZQorbm90IGd1YXJhbnRlZWQgdG8gYmUgY29tcGFyYWJsZSB0byBhbnkgb3RoZXIgdGltZSBzb3VyY2UuPHdici8+PC9wPgorPHA+V2hlbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnRpbWVzdGFtcDx3YnIvPlNvdXJjZTwvYT4gPGNvZGU+PT08L2NvZGU+IFJFQUxUSU1FLDx3YnIvPiB0aGUKK3RpbWVzdGFtcHMgbWVhc3VyZSB0aW1lIGluIHRoZSBzYW1lIHRpbWViYXNlIGFzIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL29zL1N5c3RlbUNsb2NrLmh0bWwjZWxhcHNlZFJlYWx0aW1lTmFub3MiPlN5c3RlbUNsb2NrI2VsYXBzZWRSZWFsdGltZU5hbm9zPC9hPiw8d2JyLz4gYW5kIHRoZXkgY2FuCitiZSBjb21wYXJlZCB0byBvdGhlciB0aW1lc3RhbXBzIGZyb20gb3RoZXIgc3Vic3lzdGVtcyB0aGF0CithcmUgdXNpbmcgdGhhdCBiYXNlLjx3YnIvPjwvcD4KKzxwPkZvciByZXByb2Nlc3NpbmcsPHdici8+IHRoZSB0aW1lc3RhbXAgd2lsbCBtYXRjaCB0aGUgc3RhcnQgb2YgZXhwb3N1cmUgb2YKK3RoZSBpbnB1dCBpbWFnZSw8d2JyLz4gaS48d2JyLz5lLjx3YnIvPiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvQ2FwdHVyZVJlc3VsdC5odG1sI1NFTlNPUl9USU1FU1RBTVAiPnRoZQordGltZXN0YW1wPC9hPiBpbiB0aGUgVG90YWxDYXB0dXJlUmVzdWx0IHRoYXQgd2FzIHVzZWQgdG8gY3JlYXRlIHRoZQorcmVwcm9jZXNzIGNhcHR1cmUgcmVxdWVzdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFsbCB0aW1lc3RhbXBzIG11c3QgYmUgaW4gcmVmZXJlbmNlIHRvIHRoZSBrZXJuZWwncworQ0xPQ0tfPHdici8+Qk9PVFRJTUUgbW9ub3RvbmljIGNsb2NrLDx3YnIvPiB3aGljaCBwcm9wZXJseSBhY2NvdW50cyBmb3IKK3RpbWUgc3BlbnQgYXNsZWVwLjx3YnIvPiBUaGlzIGFsbG93cyBmb3Igc3luY2hyb25pemF0aW9uIHdpdGgKK3NlbnNvcnMgdGhhdCBjb250aW51ZSB0byBvcGVyYXRlIHdoaWxlIHRoZSBzeXN0ZW0gaXMKK290aGVyd2lzZSBhc2xlZXAuPHdici8+PC9wPgorPHA+SWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnRpbWVzdGFtcFNvdXJjZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz50aW1lc3RhbXA8d2JyLz5Tb3VyY2U8L2E+IDxjb2RlPj09PC9jb2RlPiBSRUFMVElNRSw8d2JyLz4KK1RoZSB0aW1lc3RhbXAgbXVzdCBiZSBzeW5jaHJvbml6ZWQgd2l0aCB0aGUgdGltZXN0YW1wcyBmcm9tIG90aGVyCitzZW5zb3Igc3Vic3lzdGVtcyB0aGF0IGFyZSB1c2luZyB0aGUgc2FtZSB0aW1lYmFzZS48d2JyLz48L3A+Cis8cD5Gb3IgcmVwcm9jZXNzaW5nLDx3YnIvPiB0aGUgaW5wdXQgaW1hZ2UncyBzdGFydCBvZiBleHBvc3VyZSBjYW4gYmUgbG9va2VkIHVwCit3aXRoIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnRpbWVzdGFtcCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGltZXN0YW1wPC9hPiBmcm9tIHRoZSBtZXRhZGF0YSBpbmNsdWRlZCBpbiB0aGUKK2NhcHR1cmUgcmVxdWVzdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnRlbXBlcmF0dXJlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnRlbXBlcmF0dXJlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgdGVtcGVyYXR1cmUgb2YgdGhlIHNlbnNvciw8d2JyLz4gc2FtcGxlZCBhdCB0aGUgdGltZQorZXhwb3N1cmUgYmVnYW4gZm9yIHRoaXMgZnJhbWUuPHdici8+PC9wPgorPHA+VGhlIHRoZXJtYWwgZGlvZGUgYmVpbmcgcXVlcmllZCBzaG91bGQgYmUgaW5zaWRlIHRoZSBzZW5zb3IgUENCLDx3YnIvPiBvcgorc29tZXdoZXJlIGNsb3NlIHRvIGl0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBDZWxzaXVzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+T3B0aW9uYWwuPHdici8+IFRoaXMgdmFsdWUgaXMgbWlzc2luZyBpZiBubyB0ZW1wZXJhdHVyZSBpcyBhdmFpbGFibGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5uZXV0cmFsQ29sb3JQb2ludCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5uZXV0cmFsPHdici8+Q29sb3I8d2JyLz5Qb2ludAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+cmF0aW9uYWw8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGVzdGltYXRlZCBjYW1lcmEgbmV1dHJhbCBjb2xvciBpbiB0aGUgbmF0aXZlIHNlbnNvciBjb2xvcnNwYWNlIGF0Cit0aGUgdGltZSBvZiBjYXB0dXJlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHZhbHVlIGdpdmVzIHRoZSBuZXV0cmFsIGNvbG9yIHBvaW50IGVuY29kZWQgYXMgYW4gUkdCIHZhbHVlIGluIHRoZQorbmF0aXZlIHNlbnNvciBjb2xvciBzcGFjZS48d2JyLz4gIFRoZSBuZXV0cmFsIGNvbG9yIHBvaW50IGluZGljYXRlcyB0aGUKK2N1cnJlbnRseSBlc3RpbWF0ZWQgd2hpdGUgcG9pbnQgb2YgdGhlIHNjZW5lIGlsbHVtaW5hdGlvbi48d2JyLz4gIEl0IGNhbiBiZQordXNlZCB0byBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHRoZSBwcm92aWRlZCBjb2xvciB0cmFuc2Zvcm1zIHdoZW4KK3Byb2Nlc3NpbmcgcmF3IHNlbnNvciBkYXRhLjx3YnIvPjwvcD4KKzxwPlRoZSBvcmRlciBvZiB0aGUgdmFsdWVzIGlzIFIsPHdici8+IEcsPHdici8+IEI7IHdoZXJlIFIgaXMgaW4gdGhlIGxvd2VzdCBpbmRleC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zZW5zb3Iubm9pc2VQcm9maWxlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm5vaXNlPHdici8+UHJvZmlsZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZG91YmxlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIgeCBDRkEgQ2hhbm5lbHMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHBhaXJEb3VibGVEb3VibGVdPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+UGFpcnMgb2Ygbm9pc2UgbW9kZWwgY29lZmZpY2llbnRzPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Tm9pc2UgbW9kZWwgY29lZmZpY2llbnRzIGZvciBlYWNoIENGQSBtb3NhaWMgY2hhbm5lbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBrZXkgY29udGFpbnMgdHdvIG5vaXNlIG1vZGVsIGNvZWZmaWNpZW50cyBmb3IgZWFjaCBDRkEgY2hhbm5lbAorY29ycmVzcG9uZGluZyB0byB0aGUgc2Vuc29yIGFtcGxpZmljYXRpb24gKFMpIGFuZCBzZW5zb3IgcmVhZG91dAorbm9pc2UgKE8pLjx3YnIvPiAgVGhlc2UgYXJlIGdpdmVuIGFzIHBhaXJzIG9mIGNvZWZmaWNpZW50cyBmb3IgZWFjaCBjaGFubmVsCitpbiB0aGUgc2FtZSBvcmRlciBhcyBjaGFubmVscyBsaXN0ZWQgZm9yIHRoZSBDRkEgbGF5b3V0IGtleQorKHNlZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uY29sb3JGaWx0ZXJBcnJhbmdlbWVudCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5jb2xvcjx3YnIvPkZpbHRlcjx3YnIvPkFycmFuZ2VtZW50PC9hPikuPHdici8+ICBUaGlzIGlzCityZXByZXNlbnRlZCBhcyBhbiBhcnJheSBvZiBQYWlyJmx0O0RvdWJsZSw8d2JyLz4gRG91YmxlJmd0Oyw8d2JyLz4gd2hlcmUKK3RoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIFBhaXIgYXQgaW5kZXggbiBpcyB0aGUgUyBjb2VmZmljaWVudCBhbmQgdGhlCitzZWNvbmQgbWVtYmVyIGlzIHRoZSBPIGNvZWZmaWNpZW50IGZvciB0aGUgbnRoIGNvbG9yIGNoYW5uZWwgaW4gdGhlIENGQS48d2JyLz48L3A+Cis8cD5UaGVzZSBjb2VmZmljaWVudHMgYXJlIHVzZWQgaW4gYSB0d28gcGFyYW1ldGVyIG5vaXNlIG1vZGVsIHRvIGRlc2NyaWJlCit0aGUgYW1vdW50IG9mIG5vaXNlIHByZXNlbnQgaW4gdGhlIGltYWdlIGZvciBlYWNoIENGQSBjaGFubmVsLjx3YnIvPiAgVGhlCitub2lzZSBtb2RlbCB1c2VkIGhlcmUgaXM6PC9wPgorPHA+Tih4KSA9IHNxcnQoU3ggKyBPKTwvcD4KKzxwPldoZXJlIHggcmVwcmVzZW50cyB0aGUgcmVjb3JkZWQgc2lnbmFsIG9mIGEgQ0ZBIGNoYW5uZWwgbm9ybWFsaXplZCB0bwordGhlIHJhbmdlIFswLDx3YnIvPiAxXSw8d2JyLz4gYW5kIFMgYW5kIE8gYXJlIHRoZSBub2lzZSBtb2RlbCBjb2VmZmllY2llbnRzIGZvcgordGhhdCBjaGFubmVsLjx3YnIvPjwvcD4KKzxwPkEgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgbm9pc2UgbW9kZWwgY2FuIGJlIGZvdW5kIGluIHRoZQorQWRvYmUgRE5HIHNwZWNpZmljYXRpb24gZm9yIHRoZSBOb2lzZVByb2ZpbGUgdGFnLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIGEgQ0ZBIGxheW91dCBvZiBSR0dCLDx3YnIvPiB0aGUgbGlzdCBvZiBjb2VmZmljaWVudHMgd291bGQgYmUgZ2l2ZW4gYXMKK2FuIGFycmF5IG9mIGRvdWJsZXMgUzAsPHdici8+TzAsPHdici8+UzEsPHdici8+TzEsLi4uLDx3YnIvPiB3aGVyZSBTMCBhbmQgTzAgYXJlIHRoZSBjb2VmZmljaWVudHMKK2ZvciB0aGUgcmVkIGNoYW5uZWwsPHdici8+IFMxIGFuZCBPMSBhcmUgdGhlIGNvZWZmaWNpZW50cyBmb3IgdGhlIGZpcnN0IGdyZWVuCitjaGFubmVsLDx3YnIvPiBldGMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5wcm9maWxlSHVlU2F0TWFwIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnByb2ZpbGU8d2JyLz5IdWU8d2JyLz5TYXQ8d2JyLz5NYXAKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIGh1ZV9zYW1wbGVzIHggc2F0dXJhdGlvbl9zYW1wbGVzIHggdmFsdWVfc2FtcGxlcyB4IDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPk1hcHBpbmcgZm9yIGh1ZSw8d2JyLz4gc2F0dXJhdGlvbiw8d2JyLz4gYW5kIHZhbHVlPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBtYXBwaW5nIGNvbnRhaW5pbmcgYSBodWUgc2hpZnQsPHdici8+IHNhdHVyYXRpb24gc2NhbGUsPHdici8+IGFuZCB2YWx1ZSBzY2FsZQorZm9yIGVhY2ggcGl4ZWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIAorICAgICAgICAgIFRoZSBodWUgc2hpZnQgaXMgZ2l2ZW4gaW4gZGVncmVlczsgc2F0dXJhdGlvbiBhbmQgdmFsdWUgc2NhbGUgZmFjdG9ycyBhcmUKKyAgICAgICAgICB1bml0bGVzcyBhbmQgYXJlIGJldHdlZW4gMCBhbmQgMSBpbmNsdXNpdmUKKyAgICAgICAgICAKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+aHVlXzx3YnIvPnNhbXBsZXMsPHdici8+IHNhdHVyYXRpb25fPHdici8+c2FtcGxlcyw8d2JyLz4gYW5kIHZhbHVlXzx3YnIvPnNhbXBsZXMgYXJlIGdpdmVuIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXBEaW1lbnNpb25zIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5wcm9maWxlPHdici8+SHVlPHdici8+U2F0PHdici8+TWFwPHdici8+RGltZW5zaW9uczwvYT4uPHdici8+PC9wPgorPHA+RWFjaCBlbnRyeSBvZiB0aGlzIG1hcCBjb250YWlucyB0aHJlZSBmbG9hdHMgY29ycmVzcG9uZGluZyB0byB0aGUKK2h1ZSBzaGlmdCw8d2JyLz4gc2F0dXJhdGlvbiBzY2FsZSw8d2JyLz4gYW5kIHZhbHVlIHNjYWxlLDx3YnIvPiByZXNwZWN0aXZlbHk7IHdoZXJlIHRoZQoraHVlIHNoaWZ0IGhhcyB0aGUgbG93ZXN0IGluZGV4Ljx3YnIvPiBUaGUgbWFwIGVudHJpZXMgYXJlIHN0b3JlZCBpbiB0aGUga2V5CitpbiBuZXN0ZWQgbG9vcCBvcmRlciw8d2JyLz4gd2l0aCB0aGUgdmFsdWUgZGl2aXNpb25zIGluIHRoZSBvdXRlciBsb29wLDx3YnIvPiB0aGUKK2h1ZSBkaXZpc2lvbnMgaW4gdGhlIG1pZGRsZSBsb29wLDx3YnIvPiBhbmQgdGhlIHNhdHVyYXRpb24gZGl2aXNpb25zIGluIHRoZQoraW5uZXIgbG9vcC48d2JyLz4gQWxsIHplcm8gaW5wdXQgc2F0dXJhdGlvbiBlbnRyaWVzIGFyZSByZXF1aXJlZCB0byBoYXZlIGEKK3ZhbHVlIHNjYWxlIGZhY3RvciBvZiAxLjx3YnIvPjAuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVUb25lQ3VydmUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cHJvZmlsZTx3YnIvPlRvbmU8d2JyLz5DdXJ2ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgc2FtcGxlcyB4IDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPlNhbXBsZXMgZGVmaW5pbmcgYSBzcGxpbmUgZm9yIGEgdG9uZS1tYXBwaW5nIGN1cnZlPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBsaXN0IG9mIHgsPHdici8+eSBzYW1wbGVzIGRlZmluaW5nIGEgdG9uZS1tYXBwaW5nIGN1cnZlIGZvciBnYW1tYSBhZGp1c3RtZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkVhY2ggc2FtcGxlIGhhcyBhbiBpbnB1dCByYW5nZSBvZiA8Y29kZT5bMCw8d2JyLz4gMV08L2NvZGU+IGFuZCBhbiBvdXRwdXQgcmFuZ2Ugb2YKKzxjb2RlPlswLDx3YnIvPiAxXTwvY29kZT4uPHdici8+ICBUaGUgZmlyc3Qgc2FtcGxlIGlzIHJlcXVpcmVkIHRvIGJlIDxjb2RlPigwLDx3YnIvPiAwKTwvY29kZT4sPHdici8+IGFuZCB0aGUgbGFzdAorc2FtcGxlIGlzIHJlcXVpcmVkIHRvIGJlIDxjb2RlPigxLDx3YnIvPiAxKTwvY29kZT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBrZXkgY29udGFpbnMgYSBkZWZhdWx0IHRvbmUgY3VydmUgdGhhdCBjYW4gYmUgYXBwbGllZCB3aGlsZQorcHJvY2Vzc2luZyB0aGUgaW1hZ2UgYXMgYSBzdGFydGluZyBwb2ludCBmb3IgdXNlciBhZGp1c3RtZW50cy48d2JyLz4KK1RoZSBjdXJ2ZSBpcyBzcGVjaWZpZWQgYXMgYSBsaXN0IG9mIHZhbHVlIHBhaXJzIGluIGxpbmVhciBnYW1tYS48d2JyLz4KK1RoZSBjdXJ2ZSBpcyBpbnRlcnBvbGF0ZWQgdXNpbmcgYSBjdWJpYyBzcGxpbmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmdyZWVuU3BsaXQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Z3JlZW48d2JyLz5TcGxpdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHdvcnN0LWNhc2UgZGl2ZXJnZW5jZSBiZXR3ZWVuIEJheWVyIGdyZWVuIGNoYW5uZWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHZhbHVlIGlzIGFuIGVzdGltYXRlIG9mIHRoZSB3b3JzdCBjYXNlIHNwbGl0IGJldHdlZW4gdGhlCitCYXllciBncmVlbiBjaGFubmVscyBpbiB0aGUgcmVkIGFuZCBibHVlIHJvd3MgaW4gdGhlIHNlbnNvciBjb2xvcgorZmlsdGVyIGFycmF5Ljx3YnIvPjwvcD4KKzxwPlRoZSBncmVlbiBzcGxpdCBpcyBjYWxjdWxhdGVkIGFzIGZvbGxvd3M6PC9wPgorPG9sPgorPGxpPkEgNXg1IHBpeGVsIChvciBsYXJnZXIpIHdpbmRvdyBXIHdpdGhpbiB0aGUgYWN0aXZlIHNlbnNvciBhcnJheSBpcworY2hvc2VuLjx3YnIvPiBUaGUgdGVybSAncGl4ZWwnIGhlcmUgaXMgdGFrZW4gdG8gbWVhbiBhIGdyb3VwIG9mIDQgQmF5ZXIKK21vc2FpYyBjaGFubmVscyAoUiw8d2JyLz4gR3IsPHdici8+IEdiLDx3YnIvPiBCKS48d2JyLz4gIFRoZSBsb2NhdGlvbiBhbmQgc2l6ZSBvZiB0aGUgd2luZG93CitjaG9zZW4gaXMgaW1wbGVtZW50YXRpb24gZGVmaW5lZCw8d2JyLz4gYW5kIHNob3VsZCBiZSBjaG9zZW4gdG8gcHJvdmlkZSBhCitncmVlbiBzcGxpdCBlc3RpbWF0ZSB0aGF0IGlzIGJvdGggcmVwcmVzZW50YXRpdmUgb2YgdGhlIGVudGlyZSBpbWFnZQorZm9yIHRoaXMgY2FtZXJhIHNlbnNvciw8d2JyLz4gYW5kIGNhbiBiZSBjYWxjdWxhdGVkIHF1aWNrbHkuPHdici8+PC9saT4KKzxsaT5UaGUgYXJpdGhtZXRpYyBtZWFuIG9mIHRoZSBncmVlbiBjaGFubmVscyBmcm9tIHRoZSByZWQKK3Jvd3MgKG1lYW5fPHdici8+R3IpIHdpdGhpbiBXIGlzIGNvbXB1dGVkLjx3YnIvPjwvbGk+Cis8bGk+VGhlIGFyaXRobWV0aWMgbWVhbiBvZiB0aGUgZ3JlZW4gY2hhbm5lbHMgZnJvbSB0aGUgYmx1ZQorcm93cyAobWVhbl88d2JyLz5HYikgd2l0aGluIFcgaXMgY29tcHV0ZWQuPHdici8+PC9saT4KKzxsaT5UaGUgbWF4aW11bSByYXRpbyBSIG9mIHRoZSB0d28gbWVhbnMgaXMgY29tcHV0ZWQgYXMgZm9sbG93czoKKzxjb2RlPlIgPSBtYXgoKG1lYW5fPHdici8+R3IgKyAxKS88d2JyLz4obWVhbl88d2JyLz5HYiArIDEpLDx3YnIvPiAobWVhbl88d2JyLz5HYiArIDEpLzx3YnIvPihtZWFuXzx3YnIvPkdyICsgMSkpPC9jb2RlPjwvbGk+Cis8L29sPgorPHA+VGhlIHJhdGlvIFIgaXMgdGhlIGdyZWVuIHNwbGl0IGRpdmVyZ2VuY2UgcmVwb3J0ZWQgZm9yIHRoaXMgcHJvcGVydHksPHdici8+Cit3aGljaCByZXByZXNlbnRzIGhvdyBtdWNoIHRoZSBncmVlbiBjaGFubmVscyBkaWZmZXIgaW4gdGhlIG1vc2FpYworcGF0dGVybi48d2JyLz4gIFRoaXMgdmFsdWUgaXMgdHlwaWNhbGx5IHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB0cmVhdG1lbnQgb2YKK3RoZSBncmVlbiBtb3NhaWMgY2hhbm5lbHMgd2hlbiBkZW1vc2FpY2luZy48d2JyLz48L3A+Cis8cD5UaGUgZ3JlZW4gc3BsaXQgdmFsdWUgY2FuIGJlIHJvdWdobHkgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czo8L3A+Cis8dWw+Cis8bGk+UiAmbHQ7IDEuPHdici8+MDMgaXMgYSBuZWdsaWdpYmxlIHNwbGl0ICgmbHQ7MyUgZGl2ZXJnZW5jZSkuPHdici8+PC9saT4KKzxsaT4xLjx3YnIvPjIwICZsdDs9IFIgJmd0Oz0gMS48d2JyLz4wMyB3aWxsIHJlcXVpcmUgc29tZSBzb2Z0d2FyZQorY29ycmVjdGlvbiB0byBhdm9pZCBkZW1vc2FpYyBlcnJvcnMgKDMtMjAlIGRpdmVyZ2VuY2UpLjx3YnIvPjwvbGk+Cis8bGk+UiAmZ3Q7IDEuPHdici8+MjAgd2lsbCByZXF1aXJlIHN0cm9uZyBzb2Z0d2FyZSBjb3JyZWN0aW9uIHRvIHByb2R1Y2UKK2EgdXN1YWJsZSBpbWFnZSAoJmd0OzIwJSBkaXZlcmdlbmNlKS48d2JyLz48L2xpPgorPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGdyZWVuIHNwbGl0IGdpdmVuIG1heSBiZSBhIHN0YXRpYyB2YWx1ZSBiYXNlZCBvbiBwcmlvcgorY2hhcmFjdGVyaXphdGlvbiBvZiB0aGUgY2FtZXJhIHNlbnNvciB1c2luZyB0aGUgZ3JlZW4gc3BsaXQKK2NhbGN1bGF0aW9uIG1ldGhvZCBnaXZlbiBoZXJlIG92ZXIgYSBsYXJnZSw8d2JyLz4gcmVwcmVzZW50YXRpdmUsPHdici8+IHNhbXBsZQorc2V0IG9mIGltYWdlcy48d2JyLz4gIE90aGVyIG1ldGhvZHMgb2YgY2FsY3VsYXRpb24gdGhhdCBwcm9kdWNlIGVxdWl2YWxlbnQKK3Jlc3VsdHMsPHdici8+IGFuZCBjYW4gYmUgaW50ZXJwcmV0ZWQgaW4gdGhlIHNhbWUgbWFubmVyLDx3YnIvPiBtYXkgYmUgdXNlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuRGF0YSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50ZXN0PHdici8+UGF0dGVybjx3YnIvPkRhdGEKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgcGl4ZWwgPGNvZGU+W1IsPHdici8+IEdfPHdici8+ZXZlbiw8d2JyLz4gR188d2JyLz5vZGQsPHdici8+IEJdPC9jb2RlPiB0aGF0IHN1cHBsaWVzIHRoZSB0ZXN0IHBhdHRlcm4KK3doZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuTW9kZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5Nb2RlPC9hPiBpcyBTT0xJRF88d2JyLz5DT0xPUi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5FYWNoIGNvbG9yIGNoYW5uZWwgaXMgdHJlYXRlZCBhcyBhbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlci48d2JyLz4KK1RoZSBjYW1lcmEgZGV2aWNlIHRoZW4gdXNlcyB0aGUgbW9zdCBzaWduaWZpY2FudCBYIGJpdHMKK3RoYXQgY29ycmVzcG9uZCB0byBob3cgbWFueSBiaXRzIGFyZSBpbiBpdHMgQmF5ZXIgcmF3IHNlbnNvcgorb3V0cHV0Ljx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBhIHNlbnNvciB3aXRoIFJBVzEwIEJheWVyIG91dHB1dCB3b3VsZCB1c2UgdGhlCisxMCBtb3N0IHNpZ25pZmljYW50IGJpdHMgZnJvbSBlYWNoIGNvbG9yIGNoYW5uZWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5Nb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnRlc3Q8d2JyLz5QYXR0ZXJuPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyB0ZXN0IHBhdHRlcm4gbW9kZSBpcyB1c2VkLDx3YnIvPiBhbmQgdGhlIGNhbWVyYQorZGV2aWNlIHJldHVybnMgY2FwdHVyZXMgZnJvbSB0aGUgaW1hZ2Ugc2Vuc29yLjx3YnIvPjwvcD4KKzxwPlRoaXMgaXMgdGhlIGRlZmF1bHQgaWYgdGhlIGtleSBpcyBub3Qgc2V0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNPTElEX0NPTE9SPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5FYWNoIHBpeGVsIGluIDxjb2RlPltSLDx3YnIvPiBHXzx3YnIvPmV2ZW4sPHdici8+IEdfPHdici8+b2RkLDx3YnIvPiBCXTwvY29kZT4gaXMgcmVwbGFjZWQgYnkgaXRzCityZXNwZWN0aXZlIGNvbG9yIGNoYW5uZWwgcHJvdmlkZWQgaW4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybkRhdGEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnRlc3Q8d2JyLz5QYXR0ZXJuPHdici8+RGF0YTwvYT4uPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGU6PC9wPgorPHByZT48Y29kZT5hbmRyb2lkLjx3YnIvPnRlc3RQYXR0ZXJuRGF0YSA9IFswLDx3YnIvPiAweEZGRkZGRkZGLDx3YnIvPiAweEZGRkZGRkZGLDx3YnIvPiAwXQorPC9jb2RlPjwvcHJlPgorPHA+QWxsIGdyZWVuIHBpeGVscyBhcmUgMTAwJSBncmVlbi48d2JyLz4gQWxsIHJlZC88d2JyLz5ibHVlIHBpeGVscyBhcmUgYmxhY2suPHdici8+PC9wPgorPHByZT48Y29kZT5hbmRyb2lkLjx3YnIvPnRlc3RQYXR0ZXJuRGF0YSA9IFsweEZGRkZGRkZGLDx3YnIvPiAwLDx3YnIvPiAweEZGRkZGRkZGLDx3YnIvPiAwXQorPC9jb2RlPjwvcHJlPgorPHA+QWxsIHJlZCBwaXhlbHMgYXJlIDEwMCUgcmVkLjx3YnIvPiBPbmx5IHRoZSBvZGQgZ3JlZW4gcGl4ZWxzCithcmUgMTAwJSBncmVlbi48d2JyLz4gQWxsIGJsdWUgcGl4ZWxzIGFyZSAxMDAlIGJsYWNrLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNPTE9SX0JBUlM8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFsbCBwaXhlbCBkYXRhIGlzIHJlcGxhY2VkIHdpdGggYW4gOC1iYXIgY29sb3IgcGF0dGVybi48d2JyLz48L3A+Cis8cD5UaGUgdmVydGljYWwgYmFycyAobGVmdC10by1yaWdodCkgYXJlIGFzIGZvbGxvd3M6PC9wPgorPHVsPgorPGxpPjEwMCUgd2hpdGU8L2xpPgorPGxpPnllbGxvdzwvbGk+Cis8bGk+Y3lhbjwvbGk+Cis8bGk+Z3JlZW48L2xpPgorPGxpPm1hZ2VudGE8L2xpPgorPGxpPnJlZDwvbGk+Cis8bGk+Ymx1ZTwvbGk+Cis8bGk+YmxhY2s8L2xpPgorPC91bD4KKzxwPkluIGdlbmVyYWwgdGhlIGltYWdlIHdvdWxkIGxvb2sgbGlrZSB0aGUgZm9sbG93aW5nOjwvcD4KKzxwcmU+PGNvZGU+VyBZIEMgRyBNIFIgQiBLCitXIFkgQyBHIE0gUiBCIEsKK1cgWSBDIEcgTSBSIEIgSworVyBZIEMgRyBNIFIgQiBLCitXIFkgQyBHIE0gUiBCIEsKKy48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPgorLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+CisuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4KKworKEIgPSBCbHVlLDx3YnIvPiBLID0gQmxhY2spCis8L2NvZGU+PC9wcmU+Cis8cD5FYWNoIGJhciBzaG91bGQgdGFrZSB1cCAxLzx3YnIvPjggb2YgdGhlIHNlbnNvciBwaXhlbCBhcnJheSB3aWR0aC48d2JyLz4KK1doZW4gdGhpcyBpcyBub3QgcG9zc2libGUsPHdici8+IHRoZSBiYXIgc2l6ZSBzaG91bGQgYmUgcm91bmRlZAorZG93biB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIGFuZCB0aGUgcGF0dGVybiBjYW4gcmVwZWF0CitvbiB0aGUgcmlnaHQgc2lkZS48d2JyLz48L3A+Cis8cD5FYWNoIGJhcidzIGhlaWdodCBtdXN0IGFsd2F5cyB0YWtlIHVwIHRoZSBmdWxsIHNlbnNvcgorcGl4ZWwgYXJyYXkgaGVpZ2h0Ljx3YnIvPjwvcD4KKzxwPkVhY2ggcGl4ZWwgaW4gdGhpcyB0ZXN0IHBhdHRlcm4gbXVzdCBiZSBzZXQgdG8gZWl0aGVyCiswJSBpbnRlbnNpdHkgb3IgMTAwJSBpbnRlbnNpdHkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09MT1JfQkFSU19GQURFX1RPX0dSQVk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSB0ZXN0IHBhdHRlcm4gaXMgc2ltaWxhciB0byBDT0xPUl88d2JyLz5CQVJTLDx3YnIvPiBleGNlcHQgdGhhdAorZWFjaCBiYXIgc2hvdWxkIHN0YXJ0IGF0IGl0cyBzcGVjaWZpZWQgY29sb3IgYXQgdGhlIHRvcCw8d2JyLz4KK2FuZCBmYWRlIHRvIGdyYXkgYXQgdGhlIGJvdHRvbS48d2JyLz48L3A+Cis8cD5GdXJ0aGVybW9yZSBlYWNoIGJhciBpcyBmdXJ0aGVyIHN1YmRpdmlkZWQgaW50byBhIGxlZnQgYW5kCityaWdodCBoYWxmLjx3YnIvPiBUaGUgbGVmdCBoYWxmIHNob3VsZCBoYXZlIGEgc21vb3RoIGdyYWRpZW50LDx3YnIvPgorYW5kIHRoZSByaWdodCBoYWxmIHNob3VsZCBoYXZlIGEgcXVhbnRpemVkIGdyYWRpZW50Ljx3YnIvPjwvcD4KKzxwPkluIHBhcnRpY3VsYXIsPHdici8+IHRoZSByaWdodCBoYWxmJ3Mgc2hvdWxkIGNvbnNpc3Qgb2YgYmxvY2tzIG9mIHRoZQorc2FtZSBjb2xvciBmb3IgMS88d2JyLz4xNnRoIGFjdGl2ZSBzZW5zb3IgcGl4ZWwgYXJyYXkgd2lkdGguPHdici8+PC9wPgorPHA+VGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgaW4gdGhlIHF1YW50aXplZCBncmFkaWVudCBzaG91bGQKK2JlIGNvcGllZCBmcm9tIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdHMgb2YgdGhlIHNtb290aCBncmFkaWVudC48d2JyLz48L3A+Cis8cD5UaGUgaGVpZ2h0IG9mIGVhY2ggYmFyIHNob3VsZCBhbHdheXMgYmUgYSBtdWx0aXBsZSBvZiAxMjguPHdici8+CitXaGVuIHRoaXMgaXMgbm90IHRoZSBjYXNlLDx3YnIvPiB0aGUgcGF0dGVybiBzaG91bGQgcmVwZWF0IGF0IHRoZSBib3R0b20KK29mIHRoZSBpbWFnZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QTjk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFsbCBwaXhlbCBkYXRhIGlzIHJlcGxhY2VkIGJ5IGEgcHNldWRvLXJhbmRvbSBzZXF1ZW5jZQorZ2VuZXJhdGVkIGZyb20gYSBQTjkgNTEyLWJpdCBzZXF1ZW5jZSAodHlwaWNhbGx5IGltcGxlbWVudGVkCitpbiBoYXJkd2FyZSB3aXRoIGEgbGluZWFyIGZlZWRiYWNrIHNoaWZ0IHJlZ2lzdGVyKS48d2JyLz48L3A+Cis8cD5UaGUgZ2VuZXJhdG9yIHNob3VsZCBiZSByZXNldCBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggZnJhbWUsPHdici8+CithbmQgdGh1cyBlYWNoIHN1YnNlcXVlbnQgcmF3IGZyYW1lIHdpdGggdGhpcyB0ZXN0IHBhdHRlcm4gc2hvdWxkCitiZSBleGFjdGx5IHRoZSBzYW1lIGFzIHRoZSBsYXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNVU1RPTTE8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjI1Njwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGZpcnN0IGN1c3RvbSB0ZXN0IHBhdHRlcm4uPHdici8+IEFsbCBjdXN0b20gcGF0dGVybnMgdGhhdCBhcmUKK2F2YWlsYWJsZSBvbmx5IG9uIHRoaXMgY2FtZXJhIGRldmljZSBhcmUgYXQgbGVhc3QgdGhpcyBudW1lcmljCit2YWx1ZS48d2JyLz48L3A+Cis8cD5BbGwgb2YgdGhlIGN1c3RvbSB0ZXN0IHBhdHRlcm5zIHdpbGwgYmUgc3RhdGljCisodGhhdCBpcyB0aGUgcmF3IGltYWdlIG11c3Qgbm90IHZhcnkgZnJvbSBmcmFtZSB0byBmcmFtZSkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hlbiBlbmFibGVkLDx3YnIvPiB0aGUgc2Vuc29yIHNlbmRzIGEgdGVzdCBwYXR0ZXJuIGluc3RlYWQgb2YKK2RvaW5nIGEgcmVhbCBleHBvc3VyZSBmcm9tIHRoZSBjYW1lcmEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5hdmFpbGFibGVUZXN0UGF0dGVybk1vZGVzIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5hdmFpbGFibGU8d2JyLz5UZXN0PHdici8+UGF0dGVybjx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBhIHRlc3QgcGF0dGVybiBpcyBlbmFibGVkLDx3YnIvPiBhbGwgbWFudWFsIHNlbnNvciBjb250cm9scyBzcGVjaWZpZWQKK2J5IGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPiogd2lsbCBiZSBpZ25vcmVkLjx3YnIvPiBBbGwgb3RoZXIgY29udHJvbHMgc2hvdWxkCit3b3JrIGFzIG5vcm1hbC48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZSw8d2JyLz4gaWYgbWFudWFsIGZsYXNoIGlzIGVuYWJsZWQsPHdici8+IGZsYXNoIGZpcmluZyBzaG91bGQgc3RpbGwKK29jY3VyIChhbmQgdGhhdCB0aGUgdGVzdCBwYXR0ZXJuIHJlbWFpbiB1bm1vZGlmaWVkLDx3YnIvPiBzaW5jZSB0aGUgZmxhc2gKK3dvdWxkIG5vdCBhY3R1YWxseSBhZmZlY3QgaXQpLjx3YnIvPjwvcD4KKzxwPkRlZmF1bHRzIHRvIE9GRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFsbCB0ZXN0IHBhdHRlcm5zIGFyZSBzcGVjaWZpZWQgaW4gdGhlIEJheWVyIGRvbWFpbi48d2JyLz48L3A+Cis8cD5UaGUgSEFMIG1heSBjaG9vc2UgdG8gc3Vic3RpdHV0ZSB0ZXN0IHBhdHRlcm5zIGZyb20gdGhlIHNlbnNvcgord2l0aCB0ZXN0IHBhdHRlcm5zIGZyb20gb24tZGV2aWNlIG1lbW9yeS48d2JyLz4gSW4gdGhhdCBjYXNlLDx3YnIvPiBpdCBzaG91bGQgYmUKK2luZGlzdGluZ3Vpc2hhYmxlIHRvIHRoZSBJU1Agd2hldGhlciB0aGUgZGF0YSBjYW1lIGZyb20gdGhlCitzZW5zb3IgaW50ZXJjb25uZWN0IGJ1cyAoc3VjaCBhcyBDU0kyKSBvciBtZW1vcnkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5yb2xsaW5nU2h1dHRlclNrZXciPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cm9sbGluZzx3YnIvPlNodXR0ZXI8d2JyLz5Ta2V3CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EdXJhdGlvbiBiZXR3ZWVuIHRoZSBzdGFydCBvZiBmaXJzdCByb3cgZXhwb3N1cmUKK2FuZCB0aGUgc3RhcnQgb2YgbGFzdCByb3cgZXhwb3N1cmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMCBhbmQgJmx0OworPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbjwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgdGhlIGV4cG9zdXJlIHRpbWUgc2tldyBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgbGFzdAorcm93IGV4cG9zdXJlIHN0YXJ0IHRpbWVzLjx3YnIvPiBUaGUgZmlyc3Qgcm93IGFuZCB0aGUgbGFzdCByb3cgYXJlCit0aGUgZmlyc3QgYW5kIGxhc3Qgcm93cyBpbnNpZGUgb2YgdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+PC9wPgorPHA+Rm9yIHR5cGljYWwgY2FtZXJhIHNlbnNvcnMgdGhhdCB1c2Ugcm9sbGluZyBzaHV0dGVycyw8d2JyLz4gdGhpcyBpcyBhbHNvIGVxdWl2YWxlbnQKK3RvIHRoZSBmcmFtZSByZWFkb3V0IHRpbWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIG11c3QgcmVwb3J0IDxjb2RlPjA8L2NvZGU+IGlmIHRoZSBzZW5zb3IgaXMgdXNpbmcgZ2xvYmFsIHNodXR0ZXIsPHdici8+IHdoZXJlIGFsbCBwaXhlbHMgYmVnaW4KK2V4cG9zdXJlIGF0IHRoZSBzYW1lIHRpbWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5keW5hbWljQmxhY2tMZXZlbCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5keW5hbWljPHdici8+QmxhY2s8d2JyLz5MZXZlbAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+MngyIHJhdyBjb3VudCBibG9jazwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgcGVyLWZyYW1lIGR5bmFtaWMgYmxhY2sgbGV2ZWwgb2Zmc2V0IGZvciBlYWNoIG9mIHRoZSBjb2xvciBmaWx0ZXIKK2FycmFuZ2VtZW50IChDRkEpIG1vc2FpYyBjaGFubmVscy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAwIGZvciBlYWNoLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkNhbWVyYSBzZW5zb3IgYmxhY2sgbGV2ZWxzIG1heSB2YXJ5IGRyYW1hdGljYWxseSBmb3IgZGlmZmVyZW50CitjYXB0dXJlIHNldHRpbmdzIChlLjx3YnIvPmcuPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+KS48d2JyLz4gVGhlIGZpeGVkIGJsYWNrCitsZXZlbCByZXBvcnRlZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmJsYWNrTGV2ZWxQYXR0ZXJuIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5ibGFjazx3YnIvPkxldmVsPHdici8+UGF0dGVybjwvYT4gbWF5IGJlIHRvbworaW5hY2N1cmF0ZSB0byByZXByZXNlbnQgdGhlIGFjdHVhbCB2YWx1ZSBvbiBhIHBlci1mcmFtZSBiYXNpcy48d2JyLz4gVGhlCitjYW1lcmEgZGV2aWNlIGludGVybmFsIHBpcGVsaW5lIHJlbGllcyBvbiByZWxpYWJsZSBibGFjayBsZXZlbCB2YWx1ZXMKK3RvIHByb2Nlc3MgdGhlIHJhdyBpbWFnZXMgYXBwcm9wcmlhdGVseS48d2JyLz4gVG8gZ2V0IHRoZSBiZXN0IGltYWdlCitxdWFsaXR5LDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgY2hvb3NlIHRvIGVzdGltYXRlIHRoZSBwZXIgZnJhbWUgYmxhY2sKK2xldmVsIHZhbHVlcyBlaXRoZXIgYmFzZWQgb24gb3B0aWNhbGx5IHNoaWVsZGVkIGJsYWNrIHJlZ2lvbnMKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm9wdGljYWxCbGFja1JlZ2lvbnMiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9wdGljYWw8d2JyLz5CbGFjazx3YnIvPlJlZ2lvbnM8L2E+KSBvciBpdHMgaW50ZXJuYWwgbW9kZWwuPHdici8+PC9wPgorPHA+VGhpcyBrZXkgcmVwb3J0cyB0aGUgY2FtZXJhIGRldmljZSBlc3RpbWF0ZWQgcGVyLWZyYW1lIHplcm8gbGlnaHQKK3ZhbHVlIGZvciBlYWNoIG9mIHRoZSBDRkEgbW9zYWljIGNoYW5uZWxzIGluIHRoZSBjYW1lcmEgc2Vuc29yLjx3YnIvPiBUaGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmJsYWNrPHdici8+TGV2ZWw8d2JyLz5QYXR0ZXJuPC9hPiBtYXkgb25seSByZXByZXNlbnQgYSBjb2Fyc2UKK2FwcHJveGltYXRpb24gb2YgdGhlIGFjdHVhbCBibGFjayBsZXZlbCB2YWx1ZXMuPHdici8+IFRoaXMgdmFsdWUgaXMgdGhlCitibGFjayBsZXZlbCB1c2VkIGluIGNhbWVyYSBkZXZpY2UgaW50ZXJuYWwgaW1hZ2UgcHJvY2Vzc2luZyBwaXBlbGluZQorYW5kIGdlbmVyYWxseSBtb3JlIGFjY3VyYXRlIHRoYW4gdGhlIGZpeGVkIGJsYWNrIGxldmVsIHZhbHVlcy48d2JyLz4KK0hvd2V2ZXIsPHdici8+IHNpbmNlIHRoZXkgYXJlIGVzdGltYXRlZCB2YWx1ZXMgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IHRoZXkKK21heSBub3QgYmUgYXMgYWNjdXJhdGUgYXMgdGhlIGJsYWNrIGxldmVsIHZhbHVlcyBjYWxjdWxhdGVkIGZyb20gdGhlCitvcHRpY2FsIGJsYWNrIHBpeGVscyByZXBvcnRlZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm9wdGljYWxCbGFja1JlZ2lvbnMiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9wdGljYWw8d2JyLz5CbGFjazx3YnIvPlJlZ2lvbnM8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoZSB2YWx1ZXMgYXJlIGdpdmVuIGluIHRoZSBzYW1lIG9yZGVyIGFzIGNoYW5uZWxzIGxpc3RlZCBmb3IgdGhlIENGQQorbGF5b3V0IGtleSAoc2VlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5jb2xvckZpbHRlckFycmFuZ2VtZW50Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmNvbG9yPHdici8+RmlsdGVyPHdici8+QXJyYW5nZW1lbnQ8L2E+KSw8d2JyLz4gaS48d2JyLz5lLjx3YnIvPiB0aGUKK250aCB2YWx1ZSBnaXZlbiBjb3JyZXNwb25kcyB0byB0aGUgYmxhY2sgbGV2ZWwgb2Zmc2V0IGZvciB0aGUgbnRoCitjb2xvciBjaGFubmVsIGxpc3RlZCBpbiB0aGUgQ0ZBLjx3YnIvPjwvcD4KKzxwPlRoaXMga2V5IHdpbGwgYmUgYXZhaWxhYmxlIGlmIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3B0aWNhbEJsYWNrUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3B0aWNhbDx3YnIvPkJsYWNrPHdici8+UmVnaW9uczwvYT4gaXMKK2F2YWlsYWJsZSBvciB0aGUgY2FtZXJhIGRldmljZSBhZHZlcnRpc2VzIHRoaXMga2V5IHZpYQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDaGFyYWN0ZXJpc3RpY3MuaHRtbCNnZXRBdmFpbGFibGVDYXB0dXJlUmVzdWx0S2V5cyI+Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzI2dldEF2YWlsYWJsZUNhcHR1cmVSZXN1bHRLZXlzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB2YWx1ZXMgYXJlIGdpdmVuIGluIHJvdy1jb2x1bW4gc2NhbiBvcmRlciw8d2JyLz4gd2l0aCB0aGUgZmlyc3QgdmFsdWUKK2NvcnJlc3BvbmRpbmcgdG8gdGhlIGVsZW1lbnQgb2YgdGhlIENGQSBpbiByb3c9MCw8d2JyLz4gY29sdW1uPTAuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5keW5hbWljV2hpdGVMZXZlbCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5keW5hbWljPHdici8+V2hpdGU8d2JyLz5MZXZlbAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TWF4aW11bSByYXcgdmFsdWUgb3V0cHV0IGJ5IHNlbnNvciBmb3IgdGhpcyBmcmFtZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U2luY2UgdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmJsYWNrPHdici8+TGV2ZWw8d2JyLz5QYXR0ZXJuPC9hPiBtYXkgY2hhbmdlIGZvciBkaWZmZXJlbnQKK2NhcHR1cmUgc2V0dGluZ3MgKGUuPHdici8+Zy4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+KSw8d2JyLz4gdGhlIHdoaXRlCitsZXZlbCB3aWxsIGNoYW5nZSBhY2NvcmRpbmdseS48d2JyLz4gVGhpcyBrZXkgaXMgc2ltaWxhciB0bworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLndoaXRlTGV2ZWwiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+d2hpdGU8d2JyLz5MZXZlbDwvYT4sPHdici8+IGJ1dCBzcGVjaWZpZXMgdGhlIGNhbWVyYSBkZXZpY2UKK2VzdGltYXRlZCB3aGl0ZSBsZXZlbCBmb3IgZWFjaCBmcmFtZS48d2JyLz48L3A+Cis8cD5UaGlzIGtleSB3aWxsIGJlIGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm9wdGljYWxCbGFja1JlZ2lvbnMiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9wdGljYWw8d2JyLz5CbGFjazx3YnIvPlJlZ2lvbnM8L2E+IGlzCithdmFpbGFibGUgb3IgdGhlIGNhbWVyYSBkZXZpY2UgYWR2ZXJ0aXNlcyB0aGlzIGtleSB2aWEKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzLmh0bWwjZ2V0QXZhaWxhYmxlQ2FwdHVyZVJlcXVlc3RLZXlzIj5DYW1lcmFDaGFyYWN0ZXJpc3RpY3MjZ2V0QXZhaWxhYmxlQ2FwdHVyZVJlcXVlc3RLZXlzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBmdWxsIGJpdCBkZXB0aCBvZiB0aGUgc2Vuc29yIG11c3QgYmUgYXZhaWxhYmxlIGluIHRoZSByYXcgZGF0YSw8d2JyLz4KK3NvIHRoZSB2YWx1ZSBmb3IgbGluZWFyIHNlbnNvcnMgc2hvdWxkIG5vdCBiZSBzaWduaWZpY2FudGx5IGxvd2VyCit0aGFuIG1heGltdW0gcmF3IHZhbHVlIHN1cHBvcnRlZCw8d2JyLz4gaS48d2JyLz5lLjx3YnIvPiAyXihzZW5zb3IgYml0cyBwZXIgcGl4ZWwpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX3NoYWRpbmciIGNsYXNzPSJzZWN0aW9uIj5zaGFkaW5nPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5tb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gaXMgYXBwbGllZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BcHBseSBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbnMsPHdici8+IHdpdGhvdXQgc2xvd2luZworZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dDwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXBwbHkgaGlnaC1xdWFsaXR5IGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uLDx3YnIvPiBhdCB0aGUKK2Nvc3Qgb2YgcG9zc2libHkgcmVkdWNlZCBmcmFtZSByYXRlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlF1YWxpdHkgb2YgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gYXBwbGllZAordG8gdGhlIGltYWdlIGRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNoYWRpbmcuYXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5hdmFpbGFibGU8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIE9GRiBtb2RlLDx3YnIvPiBubyBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiB3aWxsIGJlIGFwcGxpZWQgYnkgdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiBhbmQgYW4gaWRlbnRpdHkgbGVucyBzaGFkaW5nIG1hcCBkYXRhIHdpbGwgYmUgcHJvdmlkZWQKK2lmIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPiA9PSBPTjwvY29kZT4uPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBmb3IgbGVucworc2hhZGluZyBtYXAgd2l0aCBzaXplIG9mIDxjb2RlPlsgNCw8d2JyLz4gMyBdPC9jb2RlPiw8d2JyLz4KK3RoZSBvdXRwdXQgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nQ29ycmVjdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+Q29ycmVjdGlvbjx3YnIvPk1hcDwvYT4gZm9yIHRoaXMgY2FzZSB3aWxsIGJlIGFuIGlkZW50aXR5CittYXAgc2hvd24gYmVsb3c6PC9wPgorPHByZT48Y29kZT5bIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+CisgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPgorIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+CisgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wIF0KKzwvY29kZT48L3ByZT4KKzxwPldoZW4gc2V0IHRvIG90aGVyIG1vZGVzLDx3YnIvPiBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiB3aWxsIGJlIGFwcGxpZWQgYnkgdGhlIGNhbWVyYQorZGV2aWNlLjx3YnIvPiBBcHBsaWNhdGlvbnMgY2FuIHJlcXVlc3QgbGVucyBzaGFkaW5nIG1hcCBkYXRhIGJ5IHNldHRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPiB0byBPTiw8d2JyLz4gYW5kIHRoZW4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBwcm92aWRlIGxlbnMKK3NoYWRpbmcgbWFwIGRhdGEgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nQ29ycmVjdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+Q29ycmVjdGlvbjx3YnIvPk1hcDwvYT47IHRoZSByZXR1cm5lZCBzaGFkaW5nIG1hcAorZGF0YSB3aWxsIGJlIHRoZSBvbmUgYXBwbGllZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhpcyBjYXB0dXJlIHJlcXVlc3QuPHdici8+PC9wPgorPHA+VGhlIHNoYWRpbmcgbWFwIGRhdGEgbWF5IGRlcGVuZCBvbiB0aGUgYXV0by1leHBvc3VyZSAoQUUpIGFuZCBBV0Igc3RhdGlzdGljcyw8d2JyLz4gdGhlcmVmb3JlCit0aGUgcmVsaWFiaWxpdHkgb2YgdGhlIG1hcCBkYXRhIG1heSBiZSBhZmZlY3RlZCBieSB0aGUgQUUgYW5kIEFXQiBhbGdvcml0aG1zLjx3YnIvPiBXaGVuIEFFIGFuZAorQVdCIGFyZSBpbiBBVVRPIG1vZGVzKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4gT0ZGIGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4KK09GRiksPHdici8+IHRvIGdldCBiZXN0IHJlc3VsdHMsPHdici8+IGl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIGFwcGxpY2F0aW9ucyB3YWl0IGZvciB0aGUgQUUgYW5kIEFXQgordG8gYmUgY29udmVyZ2VkIGJlZm9yZSB1c2luZyB0aGUgcmV0dXJuZWQgc2hhZGluZyBtYXAgZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5zdHJlbmd0aCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNoYWRpbmcuPHdici8+c3RyZW5ndGgKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29udHJvbCB0aGUgYW1vdW50IG9mIHNoYWRpbmcgY29ycmVjdGlvbgorYXBwbGllZCB0byB0aGUgaW1hZ2VzPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIHVuaXRsZXNzOiAxLTEwOyAxMCBpcyBmdWxsIHNoYWRpbmcKKyAgICAgICAgICBjb21wZW5zYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2hhZGluZy5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5tb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gaXMgYXBwbGllZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BcHBseSBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbnMsPHdici8+IHdpdGhvdXQgc2xvd2luZworZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dDwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXBwbHkgaGlnaC1xdWFsaXR5IGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uLDx3YnIvPiBhdCB0aGUKK2Nvc3Qgb2YgcG9zc2libHkgcmVkdWNlZCBmcmFtZSByYXRlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlF1YWxpdHkgb2YgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gYXBwbGllZAordG8gdGhlIGltYWdlIGRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNoYWRpbmcuYXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5hdmFpbGFibGU8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIE9GRiBtb2RlLDx3YnIvPiBubyBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiB3aWxsIGJlIGFwcGxpZWQgYnkgdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiBhbmQgYW4gaWRlbnRpdHkgbGVucyBzaGFkaW5nIG1hcCBkYXRhIHdpbGwgYmUgcHJvdmlkZWQKK2lmIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPiA9PSBPTjwvY29kZT4uPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBmb3IgbGVucworc2hhZGluZyBtYXAgd2l0aCBzaXplIG9mIDxjb2RlPlsgNCw8d2JyLz4gMyBdPC9jb2RlPiw8d2JyLz4KK3RoZSBvdXRwdXQgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nQ29ycmVjdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+Q29ycmVjdGlvbjx3YnIvPk1hcDwvYT4gZm9yIHRoaXMgY2FzZSB3aWxsIGJlIGFuIGlkZW50aXR5CittYXAgc2hvd24gYmVsb3c6PC9wPgorPHByZT48Y29kZT5bIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+CisgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPgorIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+CisgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wIF0KKzwvY29kZT48L3ByZT4KKzxwPldoZW4gc2V0IHRvIG90aGVyIG1vZGVzLDx3YnIvPiBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiB3aWxsIGJlIGFwcGxpZWQgYnkgdGhlIGNhbWVyYQorZGV2aWNlLjx3YnIvPiBBcHBsaWNhdGlvbnMgY2FuIHJlcXVlc3QgbGVucyBzaGFkaW5nIG1hcCBkYXRhIGJ5IHNldHRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPiB0byBPTiw8d2JyLz4gYW5kIHRoZW4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBwcm92aWRlIGxlbnMKK3NoYWRpbmcgbWFwIGRhdGEgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nQ29ycmVjdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+Q29ycmVjdGlvbjx3YnIvPk1hcDwvYT47IHRoZSByZXR1cm5lZCBzaGFkaW5nIG1hcAorZGF0YSB3aWxsIGJlIHRoZSBvbmUgYXBwbGllZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhpcyBjYXB0dXJlIHJlcXVlc3QuPHdici8+PC9wPgorPHA+VGhlIHNoYWRpbmcgbWFwIGRhdGEgbWF5IGRlcGVuZCBvbiB0aGUgYXV0by1leHBvc3VyZSAoQUUpIGFuZCBBV0Igc3RhdGlzdGljcyw8d2JyLz4gdGhlcmVmb3JlCit0aGUgcmVsaWFiaWxpdHkgb2YgdGhlIG1hcCBkYXRhIG1heSBiZSBhZmZlY3RlZCBieSB0aGUgQUUgYW5kIEFXQiBhbGdvcml0aG1zLjx3YnIvPiBXaGVuIEFFIGFuZAorQVdCIGFyZSBpbiBBVVRPIG1vZGVzKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4gT0ZGIGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4KK09GRiksPHdici8+IHRvIGdldCBiZXN0IHJlc3VsdHMsPHdici8+IGl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIGFwcGxpY2F0aW9ucyB3YWl0IGZvciB0aGUgQUUgYW5kIEFXQgordG8gYmUgY29udmVyZ2VkIGJlZm9yZSB1c2luZyB0aGUgcmV0dXJuZWQgc2hhZGluZyBtYXAgZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zaGFkaW5nLmF2YWlsYWJsZU1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5hdmFpbGFibGU8d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkxpc3Qgb2YgZW51bXMgKGFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5tb2RlKS48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGxlbnMgc2hhZGluZyBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5tb2RlIj5hbmRyb2lkLjx3YnIvPnNoYWRpbmcuPHdici8+bW9kZTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNoYWRpbmcubW9kZSI+YW5kcm9pZC48d2JyLz5zaGFkaW5nLjx3YnIvPm1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGxpc3QgY29udGFpbnMgbGVucyBzaGFkaW5nIG1vZGVzIHRoYXQgY2FuIGJlIHNldCBmb3IgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+CitDYW1lcmEgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSB3aWxsIGFsd2F5cworbGlzdCBPRkYgYW5kIEZBU1QgbW9kZS48d2JyLz4gVGhpcyBpbmNsdWRlcyBhbGwgRlVMTCBsZXZlbCBkZXZpY2VzLjx3YnIvPgorTEVHQUNZIGRldmljZXMgd2lsbCBhbHdheXMgb25seSBzdXBwb3J0IEZBU1QgbW9kZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBtdXN0IHN1cHBvcnQgYm90aCBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgaWYgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gY29udHJvbCBpcworYXZhaWxhYmxlIG9uIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBidXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gY2FuIGJlIHRoZSBzYW1lIGZvcgorYm90aCBtb2Rlcy48d2JyLz4gVGhhdCBpcyw8d2JyLz4gaWYgdGhlIGhpZ2hlc3QgcXVhbGl0eSBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgY2FtZXJhIGRldmljZSBkb2VzIG5vdAorc2xvdyBkb3duIGNhcHR1cmUgcmF0ZSw8d2JyLz4gdGhlbiBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgd2lsbCBnZW5lcmF0ZSB0aGUgc2FtZSBvdXRwdXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fc3RhdGlzdGljcyIgY2xhc3M9InNlY3Rpb24iPnN0YXRpc3RpY3M8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RG8gbm90IGluY2x1ZGUgZmFjZSBkZXRlY3Rpb24gc3RhdGlzdGljcyBpbiBjYXB0dXJlCityZXN1bHRzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNJTVBMRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+UmV0dXJuIGZhY2UgcmVjdGFuZ2xlIGFuZCBjb25maWRlbmNlIHZhbHVlcyBvbmx5Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZVTEw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlJldHVybiBhbGwgZmFjZQorbWV0YWRhdGEuPHdici8+PC9wPgorPHA+SW4gdGhpcyBtb2RlLDx3YnIvPiBmYWNlIHJlY3RhbmdsZXMsPHdici8+IHNjb3Jlcyw8d2JyLz4gbGFuZG1hcmtzLDx3YnIvPiBhbmQgZmFjZSBJRHMgYXJlIGFsbCB2YWxpZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpbmcgbW9kZSBmb3IgdGhlIGZhY2UgZGV0ZWN0b3IKK3VuaXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVGYWNlRGV0ZWN0TW9kZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBmYWNlIGRldGVjdGlvbiBpcyBlbmFibGVkLDx3YnIvPiBhbmQgd2hldGhlciBpdAorc2hvdWxkIG91dHB1dCBqdXN0IHRoZSBiYXNpYyBmaWVsZHMgb3IgdGhlIGZ1bGwgc2V0IG9mCitmaWVsZHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TSU1QTEUgbW9kZSBtdXN0IGZpbGwgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VSZWN0YW5nbGVzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPlJlY3RhbmdsZXM8L2E+IGFuZAorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VTY29yZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+U2NvcmVzPC9hPi48d2JyLz4KK0ZVTEwgbW9kZSBtdXN0IGFsc28gZmlsbCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUlkcyI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5JZHM8L2E+LDx3YnIvPiBhbmQKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlTGFuZG1hcmtzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkxhbmRtYXJrczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbU1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhpc3RvZ3JhbTx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW0gYXMgYm9vbGVhbl08L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpbmcgbW9kZSBmb3IgaGlzdG9ncmFtCitnZW5lcmF0aW9uPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXBNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5zaGFycG5lc3M8d2JyLz5NYXA8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3BlcmF0aW5nIG1vZGUgZm9yIHNoYXJwbmVzcyBtYXAKK2dlbmVyYXRpb248L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aG90PHdici8+UGl4ZWw8d2JyLz5NYXA8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ib3QgcGl4ZWwgbWFwIHByb2R1Y3Rpb24gaXMgZGlzYWJsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkhvdCBwaXhlbCBtYXAgcHJvZHVjdGlvbiBpcyBlbmFibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9wZXJhdGluZyBtb2RlIGZvciBob3QgcGl4ZWwgbWFwIGdlbmVyYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVIb3RQaXhlbE1hcE1vZGVzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5Ib3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LDx3YnIvPiBhIGhvdCBwaXhlbCBtYXAgaXMgcmV0dXJuZWQgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aG90PHdici8+UGl4ZWw8d2JyLz5NYXA8L2E+Ljx3YnIvPgorSWYgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiw8d2JyLz4gbm8gaG90IHBpeGVsIG1hcCB3aWxsIGJlIHJldHVybmVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RG8gbm90IGluY2x1ZGUgYSBsZW5zIHNoYWRpbmcgbWFwIGluIHRoZSBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SW5jbHVkZSBhIGxlbnMgc2hhZGluZyBtYXAgaW4gdGhlIGNhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBvdXRwdXQgdGhlIGxlbnMKK3NoYWRpbmcgbWFwIGluIG91dHB1dCByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVMZW5zU2hhZGluZ01hcE1vZGVzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5MZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIE9OLDx3YnIvPgorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8L2E+IHdpbGwgYmUgcHJvdmlkZWQgaW4KK3RoZSBvdXRwdXQgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKzxwPk9OIGlzIGFsd2F5cyBzdXBwb3J0ZWQgb24gZGV2aWNlcyB3aXRoIHRoZSBSQVcgY2FwYWJpbGl0eS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVGYWNlRGV0ZWN0TW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+RmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+TGlzdCBvZiBlbnVtcyBmcm9tIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgZmFjZSBkZXRlY3Rpb24gbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZTwvYT4gdGhhdCBhcmUKK3N1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5PRkYgaXMgYWx3YXlzIHN1cHBvcnRlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5oaXN0b2dyYW1CdWNrZXRDb3VudCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5oaXN0b2dyYW08d2JyLz5CdWNrZXQ8d2JyLz5Db3VudAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TnVtYmVyIG9mIGhpc3RvZ3JhbSBidWNrZXRzCitzdXBwb3J0ZWQ8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSA2NDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhGYWNlQ291bnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+bWF4PHdici8+RmFjZTx3YnIvPkNvdW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiBzaW11bHRhbmVvdXNseSBkZXRlY3RhYmxlCitmYWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4wIGZvciBjYW1lcmFzIHdpdGhvdXQgYXZhaWxhYmxlIGZhY2UgZGV0ZWN0aW9uOyBvdGhlcndpc2U6Cis8Y29kZT4mZ3Q7PTQ8L2NvZGU+IGZvciBMSU1JVEVEIG9yIEZVTEwgaHdsZXZlbCBkZXZpY2VzIG9yCis8Y29kZT4mZ3Q7MDwvY29kZT4gZm9yIExFR0FDWSBkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4SGlzdG9ncmFtQ291bnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+bWF4PHdici8+SGlzdG9ncmFtPHdici8+Q291bnQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1heGltdW0gdmFsdWUgcG9zc2libGUgZm9yIGEgaGlzdG9ncmFtCitidWNrZXQ8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heFNoYXJwbmVzc01hcFZhbHVlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPm1heDx3YnIvPlNoYXJwbmVzczx3YnIvPk1hcDx3YnIvPlZhbHVlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5NYXhpbXVtIHZhbHVlIHBvc3NpYmxlIGZvciBhIHNoYXJwbmVzcyBtYXAKK3JlZ2lvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLnNoYXJwbmVzc01hcFNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+c2hhcnBuZXNzPHdici8+TWFwPHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW0gYXMgc2l6ZV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj53aWR0aCB4IGhlaWdodDwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkRpbWVuc2lvbnMgb2YgdGhlIHNoYXJwbmVzcworbWFwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+TXVzdCBiZSBhdCBsZWFzdCAzMiB4IDMyPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUhvdFBpeGVsTWFwTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+SG90PHdici8+UGl4ZWw8d2JyLz5NYXA8d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGhvdCBwaXhlbCBtYXAgb3V0cHV0IG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwPHdici8+TW9kZTwvYT4gdGhhdCBhcmUKK3N1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwPHdici8+TW9kZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIG5vIGhvdHBpeGVsIG1hcCBvdXRwdXQgaXMgYXZhaWxhYmxlIGZvciB0aGlzIGNhbWVyYSBkZXZpY2UsPHdici8+IHRoaXMgd2lsbCBjb250YWluIG9ubHkKKzxjb2RlPmZhbHNlPC9jb2RlPi48d2JyLz48L3A+Cis8cD5PTiBpcyBhbHdheXMgc3VwcG9ydGVkIG9uIGRldmljZXMgd2l0aCB0aGUgUkFXIGNhcGFiaWxpdHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlTGVuc1NoYWRpbmdNYXBNb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5MZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGxlbnMgc2hhZGluZyBtYXAgb3V0cHV0IG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPHdici8+TW9kZTwvYT4gdGhhdAorYXJlIHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPHdici8+TW9kZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIG5vIGxlbnMgc2hhZGluZyBtYXAgb3V0cHV0IGlzIGF2YWlsYWJsZSBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGlzIGtleSB3aWxsCitjb250YWluIG9ubHkgT0ZGLjx3YnIvPjwvcD4KKzxwPk9OIGlzIGFsd2F5cyBzdXBwb3J0ZWQgb24gZGV2aWNlcyB3aXRoIHRoZSBSQVcgY2FwYWJpbGl0eS48d2JyLz4KK0xFR0FDWSBtb2RlIGRldmljZXMgd2lsbCBhbHdheXMgb25seSBzdXBwb3J0IE9GRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKworICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RG8gbm90IGluY2x1ZGUgZmFjZSBkZXRlY3Rpb24gc3RhdGlzdGljcyBpbiBjYXB0dXJlCityZXN1bHRzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNJTVBMRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+UmV0dXJuIGZhY2UgcmVjdGFuZ2xlIGFuZCBjb25maWRlbmNlIHZhbHVlcyBvbmx5Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZVTEw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlJldHVybiBhbGwgZmFjZQorbWV0YWRhdGEuPHdici8+PC9wPgorPHA+SW4gdGhpcyBtb2RlLDx3YnIvPiBmYWNlIHJlY3RhbmdsZXMsPHdici8+IHNjb3Jlcyw8d2JyLz4gbGFuZG1hcmtzLDx3YnIvPiBhbmQgZmFjZSBJRHMgYXJlIGFsbCB2YWxpZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpbmcgbW9kZSBmb3IgdGhlIGZhY2UgZGV0ZWN0b3IKK3VuaXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVGYWNlRGV0ZWN0TW9kZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBmYWNlIGRldGVjdGlvbiBpcyBlbmFibGVkLDx3YnIvPiBhbmQgd2hldGhlciBpdAorc2hvdWxkIG91dHB1dCBqdXN0IHRoZSBiYXNpYyBmaWVsZHMgb3IgdGhlIGZ1bGwgc2V0IG9mCitmaWVsZHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TSU1QTEUgbW9kZSBtdXN0IGZpbGwgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VSZWN0YW5nbGVzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPlJlY3RhbmdsZXM8L2E+IGFuZAorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VTY29yZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+U2NvcmVzPC9hPi48d2JyLz4KK0ZVTEwgbW9kZSBtdXN0IGFsc28gZmlsbCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUlkcyI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5JZHM8L2E+LDx3YnIvPiBhbmQKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlTGFuZG1hcmtzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkxhbmRtYXJrczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUlkcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPklkcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiB1bmlxdWUgSURzIGZvciBkZXRlY3RlZCBmYWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkVhY2ggZGV0ZWN0ZWQgZmFjZSBpcyBnaXZlbiBhIHVuaXF1ZSBJRCB0aGF0IGlzIHZhbGlkIGZvciBhcyBsb25nIGFzIHRoZSBmYWNlIGlzIHZpc2libGUKK3RvIHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiAgQSBmYWNlIHRoYXQgbGVhdmVzIHRoZSBmaWVsZCBvZiB2aWV3IGFuZCBsYXRlciByZXR1cm5zIG1heSBiZQorYXNzaWduZWQgYSBuZXcgSUQuPHdici8+PC9wPgorPHA+T25seSBhdmFpbGFibGUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlPC9hPiA9PSBGVUxMPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlTGFuZG1hcmtzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+TGFuZG1hcmtzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggNgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+KGxlZnRFeWVYLDx3YnIvPiBsZWZ0RXllWSw8d2JyLz4gcmlnaHRFeWVYLDx3YnIvPiByaWdodEV5ZVksPHdici8+IG1vdXRoWCw8d2JyLz4gbW91dGhZKTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgbGFuZG1hcmtzIGZvciBkZXRlY3RlZAorZmFjZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgY29vcmRpbmF0ZSBzeXN0ZW0gaXMgdGhhdCBvZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4sPHdici8+IHdpdGgKKzxjb2RlPigwLDx3YnIvPiAwKTwvY29kZT4gYmVpbmcgdGhlIHRvcC1sZWZ0IHBpeGVsIG9mIHRoZSBhY3RpdmUgYXJyYXkuPHdici8+PC9wPgorPHA+T25seSBhdmFpbGFibGUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlPC9hPiA9PSBGVUxMPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlUmVjdGFuZ2xlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPlJlY3RhbmdsZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWMgYXMgcmVjdGFuZ2xlXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+KHhtaW4sPHdici8+IHltaW4sPHdici8+IHhtYXgsPHdici8+IHltYXgpLjx3YnIvPiAoMCw8d2JyLz4wKSBpcyB0b3AtbGVmdCBvZiBhY3RpdmUgcGl4ZWwgYXJlYTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgdGhlIGJvdW5kaW5nIHJlY3RhbmdsZXMgZm9yIGRldGVjdGVkCitmYWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBjb29yZGluYXRlIHN5c3RlbSBpcyB0aGF0IG9mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiw8d2JyLz4gd2l0aAorPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiBiZWluZyB0aGUgdG9wLWxlZnQgcGl4ZWwgb2YgdGhlIGFjdGl2ZSBhcnJheS48d2JyLz48L3A+Cis8cD5Pbmx5IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+ICE9IE9GRjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVNjb3JlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPlNjb3JlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIHRoZSBmYWNlIGNvbmZpZGVuY2Ugc2NvcmVzIGZvcgorZGV0ZWN0ZWQgZmFjZXM8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4xLTEwMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Pbmx5IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+ICE9IE9GRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB2YWx1ZSBzaG91bGQgYmUgbWVhbmluZ2Z1bCAoZm9yIGV4YW1wbGUsPHdici8+IHNldHRpbmcgMTAwIGF0CithbGwgdGltZXMgaXMgaWxsZWdhbCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2VzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljIGFzIGZhY2VdPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3N5bnRoZXRpYyI+W3N5bnRoZXRpY10gPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiB0aGUgZmFjZXMgZGV0ZWN0ZWQgdGhyb3VnaCBjYW1lcmEgZmFjZSBkZXRlY3Rpb24KK2luIHRoaXMgY2FwdHVyZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Pbmx5IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+IDxjb2RlPiE9PC9jb2RlPiBPRkYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW0iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhpc3RvZ3JhbQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmNvdW50IG9mIHBpeGVscyBmb3IgZWFjaCBjb2xvciBjaGFubmVsIHRoYXQgZmFsbCBpbnRvIGVhY2ggaGlzdG9ncmFtIGJ1Y2tldCw8d2JyLz4gc2NhbGVkIHRvIGJlIGJldHdlZW4gMCBhbmQgbWF4SGlzdG9ncmFtQ291bnQ8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIDMtY2hhbm5lbCBoaXN0b2dyYW0gYmFzZWQgb24gdGhlIHJhdworc2Vuc29yIGRhdGE8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGsndGggYnVja2V0ICgwLWJhc2VkKSBjb3ZlcnMgdGhlIGlucHV0IHJhbmdlCisod2l0aCB3ID0gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLndoaXRlTGV2ZWwiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+d2hpdGU8d2JyLz5MZXZlbDwvYT4pIG9mIFsgayAqIHcvPHdici8+Tiw8d2JyLz4KKyhrICsgMSkgKiB3IC88d2JyLz4gTiApLjx3YnIvPiBJZiBvbmx5IGEgbW9ub2Nocm9tZSBzaGFycG5lc3MgbWFwIGlzCitzdXBwb3J0ZWQsPHdici8+IGFsbCBjaGFubmVscyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBkYXRhPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW1Nb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5oaXN0b2dyYW08d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3BlcmF0aW5nIG1vZGUgZm9yIGhpc3RvZ3JhbQorZ2VuZXJhdGlvbjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPnNoYXJwbmVzczx3YnIvPk1hcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IG0geCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5lc3RpbWF0ZWQgc2hhcnBuZXNzIGZvciBlYWNoIHJlZ2lvbiBvZiB0aGUgaW5wdXQgaW1hZ2UuPHdici8+IE5vcm1hbGl6ZWQgdG8gYmUgYmV0d2VlbiAwIGFuZCBtYXhTaGFycG5lc3NNYXBWYWx1ZS48d2JyLz4gSGlnaGVyIHZhbHVlcyBtZWFuIHNoYXJwZXIgKGJldHRlciBmb2N1c2VkKTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgMy1jaGFubmVsIHNoYXJwbmVzcyBtYXAsPHdici8+IGJhc2VkIG9uIHRoZSByYXcKK3NlbnNvciBkYXRhPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIG9ubHkgYSBtb25vY2hyb21lIHNoYXJwbmVzcyBtYXAgaXMgc3VwcG9ydGVkLDx3YnIvPgorYWxsIGNoYW5uZWxzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGRhdGE8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcE1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPnNoYXJwbmVzczx3YnIvPk1hcDx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW0gYXMgYm9vbGVhbl08L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpbmcgbW9kZSBmb3Igc2hhcnBuZXNzIG1hcAorZ2VuZXJhdGlvbjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ0NvcnJlY3Rpb25NYXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+Q29ycmVjdGlvbjx3YnIvPk1hcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljIGFzIGxlbnNTaGFkaW5nTWFwXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBzaGFkaW5nIG1hcCBpcyBhIGxvdy1yZXNvbHV0aW9uIGZsb2F0aW5nLXBvaW50IG1hcAordGhhdCBsaXN0cyB0aGUgY29lZmZpY2llbnRzIHVzZWQgdG8gY29ycmVjdCBmb3IgdmlnbmV0dGluZyw8d2JyLz4gZm9yIGVhY2gKK0JheWVyIGNvbG9yIGNoYW5uZWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+RWFjaCBnYWluIGZhY3RvciBpcyAmZ3Q7PSAxPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgbWFwIHByb3ZpZGVkIGhlcmUgaXMgdGhlIHNhbWUgbWFwIHRoYXQgaXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSB0bworY29ycmVjdCBib3RoIGNvbG9yIHNoYWRpbmcgYW5kIHZpZ25ldHRpbmcgZm9yIG91dHB1dCBub24tUkFXIGltYWdlcy48d2JyLz48L3A+Cis8cD5XaGVuIHRoZXJlIGlzIG5vIGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uIGFwcGxpZWQgdG8gUkFXCitvdXRwdXQgaW1hZ2VzICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubGVuc1NoYWRpbmdBcHBsaWVkIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+QXBwbGllZDwvYT4gPGNvZGU+PT08L2NvZGU+CitmYWxzZSksPHdici8+IHRoaXMgbWFwIGlzIHRoZSBjb21wbGV0ZSBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbgorbWFwOyB3aGVuIHRoZXJlIGlzIHNvbWUgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gYXBwbGllZCB0bwordGhlIFJBVyBvdXRwdXQgaW1hZ2UgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5sZW5zU2hhZGluZ0FwcGxpZWQiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5BcHBsaWVkPC9hPjxjb2RlPj09PC9jb2RlPiB0cnVlKSw8d2JyLz4gdGhpcyBtYXAgcmVwb3J0cyB0aGUgcmVtYWluaW5nIGxlbnMgc2hhZGluZworY29ycmVjdGlvbiBtYXAgdGhhdCBuZWVkcyB0byBiZSBhcHBsaWVkIHRvIGdldCBzaGFkaW5nCitjb3JyZWN0ZWQgaW1hZ2VzIHRoYXQgbWF0Y2ggdGhlIGNhbWVyYSBkZXZpY2UncyBvdXRwdXQgZm9yCitub24tUkFXIGZvcm1hdHMuPHdici8+PC9wPgorPHA+Rm9yIGEgY29tcGxldGUgc2hhZGluZyBjb3JyZWN0aW9uIG1hcCw8d2JyLz4gdGhlIGxlYXN0IHNoYWRlZAorc2VjdGlvbiBvZiB0aGUgaW1hZ2Ugd2lsbCBoYXZlIGEgZ2FpbiBmYWN0b3Igb2YgMTsgYWxsCitvdGhlciBzZWN0aW9ucyB3aWxsIGhhdmUgZ2FpbnMgYWJvdmUgMS48d2JyLz48L3A+Cis8cD5XaGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiA9IFRSQU5TRk9STV88d2JyLz5NQVRSSVgsPHdici8+IHRoZSBtYXAKK3dpbGwgdGFrZSBpbnRvIGFjY291bnQgdGhlIGNvbG9yQ29ycmVjdGlvbiBzZXR0aW5ncy48d2JyLz48L3A+Cis8cD5UaGUgc2hhZGluZyBtYXAgaXMgZm9yIHRoZSBlbnRpcmUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPiBhbmQgaXMgbm90CithZmZlY3RlZCBieSB0aGUgY3JvcCByZWdpb24gc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0Ljx3YnIvPiBFYWNoIHNoYWRpbmcgbWFwCitlbnRyeSBpcyB0aGUgdmFsdWUgb2YgdGhlIHNoYWRpbmcgY29tcGVuc2F0aW9uIG1hcCBvdmVyIGEgc3BlY2lmaWMKK3BpeGVsIG9uIHRoZSBzZW5zb3IuPHdici8+ICBTcGVjaWZpY2FsbHksPHdici8+IHdpdGggYSAoTiB4IE0pIHJlc29sdXRpb24gc2hhZGluZworbWFwLDx3YnIvPiBhbmQgYW4gYWN0aXZlIHBpeGVsIGFycmF5IHNpemUgKFcgeCBIKSw8d2JyLz4gc2hhZGluZyBtYXAgZW50cnkKKyh4LDx3YnIvPnkpIM+1ICgwIC4uLjx3YnIvPiBOLTEsPHdici8+IDAgLi4uPHdici8+IE0tMSkgaXMgdGhlIHZhbHVlIG9mIHRoZSBzaGFkaW5nIG1hcCBhdAorcGl4ZWwgKCAoKFctMSkvPHdici8+KE4tMSkpICogeCw8d2JyLz4gKChILTEpLzx3YnIvPihNLTEpKSAqIHkpIGZvciB0aGUgZm91ciBjb2xvciBjaGFubmVscy48d2JyLz4KK1RoZSBtYXAgaXMgYXNzdW1lZCB0byBiZSBiaWxpbmVhcmx5IGludGVycG9sYXRlZCBiZXR3ZWVuIHRoZSBzYW1wbGUgcG9pbnRzLjx3YnIvPjwvcD4KKzxwPlRoZSBjaGFubmVsIG9yZGVyIGlzIFtSLDx3YnIvPiBHZXZlbiw8d2JyLz4gR29kZCw8d2JyLz4gQl0sPHdici8+IHdoZXJlIEdldmVuIGlzIHRoZSBncmVlbgorY2hhbm5lbCBmb3IgdGhlIGV2ZW4gcm93cyBvZiBhIEJheWVyIHBhdHRlcm4sPHdici8+IGFuZCBHb2RkIGlzIHRoZSBvZGQgcm93cy48d2JyLz4KK1RoZSBzaGFkaW5nIG1hcCBpcyBzdG9yZWQgaW4gYSBmdWxseSBpbnRlcmxlYXZlZCBmb3JtYXQuPHdici8+PC9wPgorPHA+VGhlIHNoYWRpbmcgbWFwIHdpbGwgZ2VuZXJhbGx5IGhhdmUgb24gdGhlIG9yZGVyIG9mIDMwLTQwIHJvd3MgYW5kIGNvbHVtbnMsPHdici8+CithbmQgd2lsbCBiZSBzbWFsbGVyIHRoYW4gNjR4NjQuPHdici8+PC9wPgorPHA+QXMgYW4gZXhhbXBsZSw8d2JyLz4gZ2l2ZW4gYSB2ZXJ5IHNtYWxsIG1hcCBkZWZpbmVkIGFzOjwvcD4KKzxwcmU+PGNvZGU+d2lkdGgsPHdici8+aGVpZ2h0ID0gWyA0LDx3YnIvPiAzIF0KK3ZhbHVlcyA9CitbIDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjE1LDx3YnIvPiAxLjx3YnIvPjIsPHdici8+ICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4xNSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPgorICAgIDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Miw8d2JyLz4gIDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjMsPHdici8+IDEuPHdici8+Myw8d2JyLz4KKyAgMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+MjUsPHdici8+IDEuPHdici8+MSw8d2JyLz4gIDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4xLDx3YnIvPiAxLjx3YnIvPjEsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAgICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yNSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPgorICAxLjx3YnIvPjMsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjMsPHdici8+ICAgMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjE1LDx3YnIvPiAxLjx3YnIvPjEsPHdici8+IDEuPHdici8+Miw8d2JyLz4KKyAgICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+ICAxLjx3YnIvPjMsPHdici8+IDEuPHdici8+MTUsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4zIF0KKzwvY29kZT48L3ByZT4KKzxwPlRoZSBsb3ctcmVzb2x1dGlvbiBzY2FsaW5nIG1hcCBpbWFnZXMgZm9yIGVhY2ggY2hhbm5lbCBhcmUKKyhkaXNwbGF5ZWQgdXNpbmcgbmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKTo8L3A+Cis8cD48aW1nIGFsdD0iUmVkIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL3JlZF9zaGFkaW5nLnBuZyIvPgorPGltZyBhbHQ9IkdyZWVuIChldmVuIHJvd3MpIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2dyZWVuX2Vfc2hhZGluZy5wbmciLz4KKzxpbWcgYWx0PSJHcmVlbiAob2RkIHJvd3MpIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2dyZWVuX29fc2hhZGluZy5wbmciLz4KKzxpbWcgYWx0PSJCbHVlIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2JsdWVfc2hhZGluZy5wbmciLz48L3A+Cis8cD5BcyBhIHZpc3VhbGl6YXRpb24gb25seSw8d2JyLz4gaW52ZXJ0aW5nIHRoZSBmdWxsLWNvbG9yIG1hcCB0byByZWNvdmVyIGFuCitpbWFnZSBvZiBhIGdyYXkgd2FsbCAodXNpbmcgYmljdWJpYyBpbnRlcnBvbGF0aW9uIGZvciB2aXN1YWwgcXVhbGl0eSkgYXMgY2FwdHVyZWQgYnkgdGhlIHNlbnNvciBnaXZlczo8L3A+Cis8cD48aW1nIGFsdD0iSW1hZ2Ugb2YgYSB1bmlmb3JtIHdoaXRlIHdhbGwgKGludmVyc2Ugc2hhZGluZyBtYXApIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcC9pbnZfc2hhZGluZy5wbmciLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNCB4IG4geCBtCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+MkQgYXJyYXkgb2YgZmxvYXQgZ2FpbiBmYWN0b3JzIHBlciBjaGFubmVsIHRvIGNvcnJlY3QgbGVucyBzaGFkaW5nPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHNoYWRpbmcgbWFwIGlzIGEgbG93LXJlc29sdXRpb24gZmxvYXRpbmctcG9pbnQgbWFwCit0aGF0IGxpc3RzIHRoZSBjb2VmZmljaWVudHMgdXNlZCB0byBjb3JyZWN0IGZvciB2aWduZXR0aW5nIGFuZCBjb2xvciBzaGFkaW5nLDx3YnIvPgorZm9yIGVhY2ggQmF5ZXIgY29sb3IgY2hhbm5lbCBvZiBSQVcgaW1hZ2UgZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5FYWNoIGdhaW4gZmFjdG9yIGlzICZndDs9IDE8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXAgcHJvdmlkZWQgaGVyZSBpcyB0aGUgc2FtZSBtYXAgdGhhdCBpcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIHRvCitjb3JyZWN0IGJvdGggY29sb3Igc2hhZGluZyBhbmQgdmlnbmV0dGluZyBmb3Igb3V0cHV0IG5vbi1SQVcgaW1hZ2VzLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhlcmUgaXMgbm8gbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gYXBwbGllZCB0byBSQVcKK291dHB1dCBpbWFnZXMgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5sZW5zU2hhZGluZ0FwcGxpZWQiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5BcHBsaWVkPC9hPiA8Y29kZT49PTwvY29kZT4KK2ZhbHNlKSw8d2JyLz4gdGhpcyBtYXAgaXMgdGhlIGNvbXBsZXRlIGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uCittYXA7IHdoZW4gdGhlcmUgaXMgc29tZSBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiBhcHBsaWVkIHRvCit0aGUgUkFXIG91dHB1dCBpbWFnZSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmxlbnNTaGFkaW5nQXBwbGllZCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPkFwcGxpZWQ8L2E+PGNvZGU+PT08L2NvZGU+IHRydWUpLDx3YnIvPiB0aGlzIG1hcCByZXBvcnRzIHRoZSByZW1haW5pbmcgbGVucyBzaGFkaW5nCitjb3JyZWN0aW9uIG1hcCB0aGF0IG5lZWRzIHRvIGJlIGFwcGxpZWQgdG8gZ2V0IHNoYWRpbmcKK2NvcnJlY3RlZCBpbWFnZXMgdGhhdCBtYXRjaCB0aGUgY2FtZXJhIGRldmljZSdzIG91dHB1dCBmb3IKK25vbi1SQVcgZm9ybWF0cy48d2JyLz48L3A+Cis8cD5Gb3IgYSBjb21wbGV0ZSBzaGFkaW5nIGNvcnJlY3Rpb24gbWFwLDx3YnIvPiB0aGUgbGVhc3Qgc2hhZGVkCitzZWN0aW9uIG9mIHRoZSBpbWFnZSB3aWxsIGhhdmUgYSBnYWluIGZhY3RvciBvZiAxOyBhbGwKK290aGVyIHNlY3Rpb25zIHdpbGwgaGF2ZSBnYWlucyBhYm92ZSAxLjx3YnIvPjwvcD4KKzxwPldoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+ID0gVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCw8d2JyLz4gdGhlIG1hcAord2lsbCB0YWtlIGludG8gYWNjb3VudCB0aGUgY29sb3JDb3JyZWN0aW9uIHNldHRpbmdzLjx3YnIvPjwvcD4KKzxwPlRoZSBzaGFkaW5nIG1hcCBpcyBmb3IgdGhlIGVudGlyZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+IGFuZCBpcyBub3QKK2FmZmVjdGVkIGJ5IHRoZSBjcm9wIHJlZ2lvbiBzcGVjaWZpZWQgaW4gdGhlIHJlcXVlc3QuPHdici8+IEVhY2ggc2hhZGluZyBtYXAKK2VudHJ5IGlzIHRoZSB2YWx1ZSBvZiB0aGUgc2hhZGluZyBjb21wZW5zYXRpb24gbWFwIG92ZXIgYSBzcGVjaWZpYworcGl4ZWwgb24gdGhlIHNlbnNvci48d2JyLz4gIFNwZWNpZmljYWxseSw8d2JyLz4gd2l0aCBhIChOIHggTSkgcmVzb2x1dGlvbiBzaGFkaW5nCittYXAsPHdici8+IGFuZCBhbiBhY3RpdmUgcGl4ZWwgYXJyYXkgc2l6ZSAoVyB4IEgpLDx3YnIvPiBzaGFkaW5nIG1hcCBlbnRyeQorKHgsPHdici8+eSkgz7UgKDAgLi4uPHdici8+IE4tMSw8d2JyLz4gMCAuLi48d2JyLz4gTS0xKSBpcyB0aGUgdmFsdWUgb2YgdGhlIHNoYWRpbmcgbWFwIGF0CitwaXhlbCAoICgoVy0xKS88d2JyLz4oTi0xKSkgKiB4LDx3YnIvPiAoKEgtMSkvPHdici8+KE0tMSkpICogeSkgZm9yIHRoZSBmb3VyIGNvbG9yIGNoYW5uZWxzLjx3YnIvPgorVGhlIG1hcCBpcyBhc3N1bWVkIHRvIGJlIGJpbGluZWFybHkgaW50ZXJwb2xhdGVkIGJldHdlZW4gdGhlIHNhbXBsZSBwb2ludHMuPHdici8+PC9wPgorPHA+VGhlIGNoYW5uZWwgb3JkZXIgaXMgW1IsPHdici8+IEdldmVuLDx3YnIvPiBHb2RkLDx3YnIvPiBCXSw8d2JyLz4gd2hlcmUgR2V2ZW4gaXMgdGhlIGdyZWVuCitjaGFubmVsIGZvciB0aGUgZXZlbiByb3dzIG9mIGEgQmF5ZXIgcGF0dGVybiw8d2JyLz4gYW5kIEdvZGQgaXMgdGhlIG9kZCByb3dzLjx3YnIvPgorVGhlIHNoYWRpbmcgbWFwIGlzIHN0b3JlZCBpbiBhIGZ1bGx5IGludGVybGVhdmVkIGZvcm1hdCw8d2JyLz4gYW5kIGl0cyBzaXplCitpcyBwcm92aWRlZCBpbiB0aGUgY2FtZXJhIHN0YXRpYyBtZXRhZGF0YSBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLnNoYWRpbmdNYXBTaXplIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5zaGFkaW5nPHdici8+TWFwPHdici8+U2l6ZTwvYT4uPHdici8+PC9wPgorPHA+VGhlIHNoYWRpbmcgbWFwIHdpbGwgZ2VuZXJhbGx5IGhhdmUgb24gdGhlIG9yZGVyIG9mIDMwLTQwIHJvd3MgYW5kIGNvbHVtbnMsPHdici8+CithbmQgd2lsbCBiZSBzbWFsbGVyIHRoYW4gNjR4NjQuPHdici8+PC9wPgorPHA+QXMgYW4gZXhhbXBsZSw8d2JyLz4gZ2l2ZW4gYSB2ZXJ5IHNtYWxsIG1hcCBkZWZpbmVkIGFzOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5zaGFkaW5nTWFwU2l6ZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+c2hhZGluZzx3YnIvPk1hcDx3YnIvPlNpemU8L2E+ID0gWyA0LDx3YnIvPiAzIF0KKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPC9hPiA9CitbIDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjE1LDx3YnIvPiAxLjx3YnIvPjIsPHdici8+ICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4xNSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPgorICAgIDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Miw8d2JyLz4gIDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjMsPHdici8+IDEuPHdici8+Myw8d2JyLz4KKyAgMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+MjUsPHdici8+IDEuPHdici8+MSw8d2JyLz4gIDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4xLDx3YnIvPiAxLjx3YnIvPjEsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAgICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yNSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPgorICAxLjx3YnIvPjMsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjMsPHdici8+ICAgMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjE1LDx3YnIvPiAxLjx3YnIvPjEsPHdici8+IDEuPHdici8+Miw8d2JyLz4KKyAgICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+ICAxLjx3YnIvPjMsPHdici8+IDEuPHdici8+MTUsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4zIF0KKzwvY29kZT48L3ByZT4KKzxwPlRoZSBsb3ctcmVzb2x1dGlvbiBzY2FsaW5nIG1hcCBpbWFnZXMgZm9yIGVhY2ggY2hhbm5lbCBhcmUKKyhkaXNwbGF5ZWQgdXNpbmcgbmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKTo8L3A+Cis8cD48aW1nIGFsdD0iUmVkIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL3JlZF9zaGFkaW5nLnBuZyIvPgorPGltZyBhbHQ9IkdyZWVuIChldmVuIHJvd3MpIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2dyZWVuX2Vfc2hhZGluZy5wbmciLz4KKzxpbWcgYWx0PSJHcmVlbiAob2RkIHJvd3MpIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2dyZWVuX29fc2hhZGluZy5wbmciLz4KKzxpbWcgYWx0PSJCbHVlIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2JsdWVfc2hhZGluZy5wbmciLz48L3A+Cis8cD5BcyBhIHZpc3VhbGl6YXRpb24gb25seSw8d2JyLz4gaW52ZXJ0aW5nIHRoZSBmdWxsLWNvbG9yIG1hcCB0byByZWNvdmVyIGFuCitpbWFnZSBvZiBhIGdyYXkgd2FsbCAodXNpbmcgYmljdWJpYyBpbnRlcnBvbGF0aW9uIGZvciB2aXN1YWwgcXVhbGl0eSkKK2FzIGNhcHR1cmVkIGJ5IHRoZSBzZW5zb3IgZ2l2ZXM6PC9wPgorPHA+PGltZyBhbHQ9IkltYWdlIG9mIGEgdW5pZm9ybSB3aGl0ZSB3YWxsIChpbnZlcnNlIHNoYWRpbmcgbWFwKSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAvaW52X3NoYWRpbmcucG5nIi8+PC9wPgorPHA+Tm90ZSB0aGF0IHRoZSBSQVcgaW1hZ2UgZGF0YSBtaWdodCBiZSBzdWJqZWN0IHRvIGxlbnMgc2hhZGluZworY29ycmVjdGlvbiBub3QgcmVwb3J0ZWQgb24gdGhpcyBtYXAuPHdici8+IFF1ZXJ5Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubGVuc1NoYWRpbmdBcHBsaWVkIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+QXBwbGllZDwvYT4gdG8gc2VlIGlmIFJBVyBpbWFnZSBkYXRhIGhhcyBzdWJqZWN0Cit0byBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbi48d2JyLz4gSWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmxlbnNTaGFkaW5nQXBwbGllZCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPkFwcGxpZWQ8L2E+CitpcyBUUlVFLDx3YnIvPiB0aGUgUkFXIGltYWdlIGRhdGEgaXMgc3ViamVjdCB0byBwYXJ0aWFsIG9yIGZ1bGwgbGVucyBzaGFkaW5nCitjb3JyZWN0aW9uLjx3YnIvPiBJbiB0aGUgY2FzZSBmdWxsIGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uIGlzIGFwcGxpZWQgdG8gUkFXCitpbWFnZXMsPHdici8+IHRoZSBnYWluIGZhY3RvciBtYXAgcmVwb3J0ZWQgaW4gdGhpcyBrZXkgd2lsbCBjb250YWluIGFsbCAxLjx3YnIvPjAgZ2FpbnMuPHdici8+CitJbiBvdGhlciB3b3Jkcyw8d2JyLz4gdGhlIG1hcCByZXBvcnRlZCBpbiB0aGlzIGtleSBpcyB0aGUgcmVtYWluaW5nIGxlbnMgc2hhZGluZwordGhhdCBuZWVkcyB0byBiZSBhcHBsaWVkIG9uIHRoZSBSQVcgaW1hZ2UgdG8gZ2V0IGltYWdlcyB3aXRob3V0IGxlbnMgc2hhZGluZworYXJ0aWZhY3RzLjx3YnIvPiBTZWUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UmF3Ij5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+UmF3PC9hPiBmb3IgYSBsaXN0IG9mIFJBVyBpbWFnZQorZm9ybWF0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBsZW5zIHNoYWRpbmcgbWFwIGNhbGN1bGF0aW9uIG1heSBkZXBlbmQgb24gZXhwb3N1cmUgYW5kIHdoaXRlIGJhbGFuY2Ugc3RhdGlzdGljcy48d2JyLz4KK1doZW4gQUUgYW5kIEFXQiBhcmUgaW4gQVVUTyBtb2RlcworKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4gT0ZGIGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4gT0ZGKSw8d2JyLz4gdGhlIEhBTAorbWF5IGhhdmUgYWxsIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkIHRvIGdlbmVyYXRlIG1vc3QgYWNjdXJhdGUgbGVucyBzaGFkaW5nIG1hcC48d2JyLz4gV2hlbgorQUUgb3IgQVdCIGFyZSBpbiBtYW51YWwgbW9kZQorKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT49PTwvY29kZT4gT0ZGIG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+IDxjb2RlPj09PC9jb2RlPiBPRkYpLDx3YnIvPiB0aGUgc2hhZGluZyBtYXAKK21heSBiZSBhZHZlcnNlbHkgaW1wYWN0ZWQgYnkgbWFudWFsIGV4cG9zdXJlIG9yIHdoaXRlIGJhbGFuY2UgcGFyYW1ldGVycy48d2JyLz4gVG8gYXZvaWQKK2dlbmVyYXRpbmcgdW5yZWxpYWJsZSBzaGFkaW5nIG1hcCBkYXRhLDx3YnIvPiB0aGUgSEFMIG1heSBjaG9vc2UgdG8gbG9jayB0aGUgc2hhZGluZyBtYXAgd2l0aAordGhlIGxhdGVzdCBrbm93biBnb29kIG1hcCBnZW5lcmF0ZWQgd2hlbiB0aGUgQUUgYW5kIEFXQiBhcmUgaW4gQVVUTyBtb2Rlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5wcmVkaWN0ZWRDb2xvckdhaW5zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5wcmVkaWN0ZWQ8d2JyLz5Db2xvcjx3YnIvPkdhaW5zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbl08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5BIDFEIGFycmF5IG9mIGZsb2F0cyBmb3IgNCBjb2xvciBjaGFubmVsIGdhaW5zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGJlc3QtZml0IGNvbG9yIGNoYW5uZWwgZ2FpbnMgY2FsY3VsYXRlZAorYnkgdGhlIGNhbWVyYSBkZXZpY2UncyBzdGF0aXN0aWNzIHVuaXRzIGZvciB0aGUgY3VycmVudCBvdXRwdXQgZnJhbWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBtYXkgYmUgZGlmZmVyZW50IHRoYW4gdGhlIGdhaW5zIHVzZWQgZm9yIHRoaXMgZnJhbWUsPHdici8+CitzaW5jZSBzdGF0aXN0aWNzIHByb2Nlc3Npbmcgb24gZGF0YSBmcm9tIGEgbmV3IGZyYW1lCit0eXBpY2FsbHkgY29tcGxldGVzIGFmdGVyIHRoZSB0cmFuc2Zvcm0gaGFzIGFscmVhZHkgYmVlbgorYXBwbGllZCB0byB0aGF0IGZyYW1lLjx3YnIvPjwvcD4KKzxwPlRoZSA0IGNoYW5uZWwgZ2FpbnMgYXJlIGRlZmluZWQgaW4gQmF5ZXIgZG9tYWluLDx3YnIvPgorc2VlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGZvciBkZXRhaWxzLjx3YnIvPjwvcD4KKzxwPlRoaXMgdmFsdWUgc2hvdWxkIGFsd2F5cyBiZSBjYWxjdWxhdGVkIGJ5IHRoZSBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgYmxvY2ssPHdici8+CityZWdhcmRsZXNzIG9mIHRoZSBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBjdXJyZW50IHZhbHVlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnByZWRpY3RlZENvbG9yVHJhbnNmb3JtIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5wcmVkaWN0ZWQ8d2JyLz5Db2xvcjx3YnIvPlRyYW5zZm9ybQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+cmF0aW9uYWw8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMyB4IDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbaGlkZGVuXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyByYXRpb25hbCBtYXRyaXggaW4gcm93LW1ham9yIG9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGJlc3QtZml0IGNvbG9yIHRyYW5zZm9ybSBtYXRyaXggZXN0aW1hdGUKK2NhbGN1bGF0ZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UncyBzdGF0aXN0aWNzIHVuaXRzIGZvciB0aGUgY3VycmVudAorb3V0cHV0IGZyYW1lLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcHJvdmlkZSB0aGUgZXN0aW1hdGUgZnJvbSBpdHMKK3N0YXRpc3RpY3MgdW5pdCBvbiB0aGUgd2hpdGUgYmFsYW5jZSB0cmFuc2Zvcm1zIHRvIHVzZQorZm9yIHRoZSBuZXh0IGZyYW1lLjx3YnIvPiBUaGVzZSBhcmUgdGhlIHZhbHVlcyB0aGUgY2FtZXJhIGRldmljZSBiZWxpZXZlcworYXJlIHRoZSBiZXN0IGZpdCBmb3IgdGhlIGN1cnJlbnQgb3V0cHV0IGZyYW1lLjx3YnIvPiBUaGlzIG1heQorYmUgZGlmZmVyZW50IHRoYW4gdGhlIHRyYW5zZm9ybSB1c2VkIGZvciB0aGlzIGZyYW1lLDx3YnIvPiBzaW5jZQorc3RhdGlzdGljcyBwcm9jZXNzaW5nIG9uIGRhdGEgZnJvbSBhIG5ldyBmcmFtZSB0eXBpY2FsbHkKK2NvbXBsZXRlcyBhZnRlciB0aGUgdHJhbnNmb3JtIGhhcyBhbHJlYWR5IGJlZW4gYXBwbGllZCB0bwordGhhdCBmcmFtZS48d2JyLz48L3A+Cis8cD5UaGVzZSBlc3RpbWF0ZXMgbXVzdCBiZSBwcm92aWRlZCBmb3IgYWxsIGZyYW1lcyw8d2JyLz4gZXZlbiBpZgorY2FwdHVyZSBzZXR0aW5ncyBhbmQgY29sb3IgdHJhbnNmb3JtcyBhcmUgc2V0IGJ5IHRoZSBhcHBsaWNhdGlvbi48d2JyLz48L3A+Cis8cD5UaGlzIHZhbHVlIHNob3VsZCBhbHdheXMgYmUgY2FsY3VsYXRlZCBieSB0aGUgYXV0by13aGl0ZSBiYWxhbmNlIChBV0IpIGJsb2NrLDx3YnIvPgorcmVnYXJkbGVzcyBvZiB0aGUgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiogY3VycmVudCB2YWx1ZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5zY2VuZUZsaWNrZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPnNjZW5lPHdici8+RmxpY2tlcgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5OT05FPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBkb2VzIG5vdCBkZXRlY3QgYW55IGZsaWNrZXJpbmcgaWxsdW1pbmF0aW9uCitpbiB0aGUgY3VycmVudCBzY2VuZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj41MEhaPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBkZXRlY3RzIGlsbHVtaW5hdGlvbiBmbGlja2VyaW5nIGF0IDUwSHoKK2luIHRoZSBjdXJyZW50IHNjZW5lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPjYwSFo8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIGRldGVjdHMgaWxsdW1pbmF0aW9uIGZsaWNrZXJpbmcgYXQgNjBIegoraW4gdGhlIGN1cnJlbnQgc2NlbmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGNhbWVyYSBkZXZpY2UgZXN0aW1hdGVkIHNjZW5lIGlsbHVtaW5hdGlvbiBsaWdodGluZworZnJlcXVlbmN5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk1hbnkgbGlnaHQgc291cmNlcyw8d2JyLz4gc3VjaCBhcyBtb3N0IGZsdW9yZXNjZW50IGxpZ2h0cyw8d2JyLz4gZmxpY2tlciBhdCBhIHJhdGUKK3RoYXQgZGVwZW5kcyBvbiB0aGUgbG9jYWwgdXRpbGl0eSBwb3dlciBzdGFuZGFyZHMuPHdici8+IFRoaXMgZmxpY2tlciBtdXN0IGJlCithY2NvdW50ZWQgZm9yIGJ5IGF1dG8tZXhwb3N1cmUgcm91dGluZXMgdG8gYXZvaWQgYXJ0aWZhY3RzIGluIGNhcHR1cmVkIGltYWdlcy48d2JyLz4KK1RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgdGhpcyBlbnRyeSB0byB0ZWxsIHRoZSBhcHBsaWNhdGlvbiB3aGF0IHRoZSBzY2VuZQoraWxsdW1pbmFudCBmcmVxdWVuY3kgaXMuPHdici8+PC9wPgorPHA+V2hlbiBtYW51YWwgZXhwb3N1cmUgY29udHJvbCBpcyBlbmFibGVkCisoPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+ID09IE9GRjwvY29kZT4gb3IgPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gPT0KK09GRjwvY29kZT4pLDx3YnIvPiB0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUFudGliYW5kaW5nTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlPC9hPiBkb2Vzbid0IHBlcmZvcm0KK2FudGliYW5kaW5nLDx3YnIvPiBhbmQgdGhlIGFwcGxpY2F0aW9uIGNhbiBlbnN1cmUgaXQgc2VsZWN0cworZXhwb3N1cmUgdGltZXMgdGhhdCBkbyBub3QgY2F1c2UgYmFuZGluZyBpc3N1ZXMgYnkgbG9va2luZworaW50byB0aGlzIG1ldGFkYXRhIGZpZWxkLjx3YnIvPiBTZWUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkFudGliYW5kaW5nPHdici8+TW9kZTwvYT4gZm9yIG1vcmUgZGV0YWlscy48d2JyLz48L3A+Cis8cD5SZXBvcnRzIE5PTkUgaWYgdGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgZmxpY2tlcmluZyBpbGx1bWluYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcE1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SG90IHBpeGVsIG1hcCBwcm9kdWN0aW9uIGlzIGRpc2FibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ib3QgcGl4ZWwgbWFwIHByb2R1Y3Rpb24gaXMgZW5hYmxlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpbmcgbW9kZSBmb3IgaG90IHBpeGVsIG1hcCBnZW5lcmF0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlcyI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+SG90PHdici8+UGl4ZWw8d2JyLz5NYXA8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiw8d2JyLz4gYSBob3QgcGl4ZWwgbWFwIGlzIHJldHVybmVkIGluIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwPC9hPi48d2JyLz4KK0lmIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4sPHdici8+IG5vIGhvdCBwaXhlbCBtYXAgd2lsbCBiZSByZXR1cm5lZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMiB4IG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHBvaW50XTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgY29vcmRpbmF0ZXMgYmFzZWQgb24gYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIDxjb2RlPih4LDx3YnIvPiB5KTwvY29kZT4gY29vcmRpbmF0ZXMgb2YgaG90Lzx3YnIvPmRlZmVjdGl2ZSBwaXhlbHMgb24gdGhlIHNlbnNvci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5uICZsdDs9IG51bWJlciBvZiBwaXhlbHMgb24gdGhlIHNlbnNvci48d2JyLz4KK1RoZSA8Y29kZT4oeCw8d2JyLz4geSk8L2NvZGU+IGNvb3JkaW5hdGVzIG11c3QgYmUgYm91bmRlZCBieQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkEgY29vcmRpbmF0ZSA8Y29kZT4oeCw8d2JyLz4geSk8L2NvZGU+IG11c3QgbGllIGJldHdlZW4gPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiw8d2JyLz4gYW5kCis8Y29kZT4od2lkdGggLSAxLDx3YnIvPiBoZWlnaHQgLSAxKTwvY29kZT4gKGluY2x1c2l2ZSksPHdici8+IHdoaWNoIGFyZSB0aGUgdG9wLWxlZnQgYW5kCitib3R0b20tcmlnaHQgb2YgdGhlIHBpeGVsIGFycmF5LDx3YnIvPiByZXNwZWN0aXZlbHkuPHdici8+IFRoZSB3aWR0aCBhbmQKK2hlaWdodCBkaW1lbnNpb25zIGFyZSBnaXZlbiBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPgorVGhpcyBtYXkgaW5jbHVkZSBob3QgcGl4ZWxzIHRoYXQgbGllIG91dHNpZGUgb2YgdGhlIGFjdGl2ZSBhcnJheQorYm91bmRzIGdpdmVuIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkEgaG90cGl4ZWwgbWFwIGNvbnRhaW5zIHRoZSBjb29yZGluYXRlcyBvZiBwaXhlbHMgb24gdGhlIGNhbWVyYQorc2Vuc29yIHRoYXQgZG8gcmVwb3J0IHZhbGlkIHZhbHVlcyAodXN1YWxseSBkdWUgdG8gZGVmZWN0cyBpbgordGhlIGNhbWVyYSBzZW5zb3IpLjx3YnIvPiBUaGlzIGluY2x1ZGVzIHBpeGVscyB0aGF0IGFyZSBzdHVjayBhdCBjZXJ0YWluCit2YWx1ZXMsPHdici8+IG9yIGhhdmUgYSByZXNwb25zZSB0aGF0IGRvZXMgbm90IGFjY3VyYWN0bHkgZW5jb2RlIHRoZQoraW5jb21pbmcgbGlnaHQgZnJvbSB0aGUgc2NlbmUuPHdici8+PC9wPgorPHA+VG8gYXZvaWQgcGVyZm9ybWFuY2UgaXNzdWVzLDx3YnIvPiB0aGVyZSBzaG91bGQgYmUgc2lnbmlmaWNhbnRseSBmZXdlciBob3QKK3BpeGVscyB0aGFuIGFjdHVhbCBwaXhlbHMgb24gdGhlIGNhbWVyYSBzZW5zb3IuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5EbyBub3QgaW5jbHVkZSBhIGxlbnMgc2hhZGluZyBtYXAgaW4gdGhlIGNhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JbmNsdWRlIGEgbGVucyBzaGFkaW5nIG1hcCBpbiB0aGUgY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB0aGUgY2FtZXJhIGRldmljZSB3aWxsIG91dHB1dCB0aGUgbGVucworc2hhZGluZyBtYXAgaW4gb3V0cHV0IHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUxlbnNTaGFkaW5nTWFwTW9kZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBzZXQgdG8gT04sPHdici8+Cis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDwvYT4gd2lsbCBiZSBwcm92aWRlZCBpbgordGhlIG91dHB1dCByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorPHA+T04gaXMgYWx3YXlzIHN1cHBvcnRlZCBvbiBkZXZpY2VzIHdpdGggdGhlIFJBVyBjYXBhYmlsaXR5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fdG9uZW1hcCIgY2xhc3M9InNlY3Rpb24iPnRvbmVtYXA8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlQmx1ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5CbHVlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjFEIGFycmF5IG9mIGZsb2F0IHBhaXJzIChQXzx3YnIvPklOLDx3YnIvPiBQXzx3YnIvPk9VVCkuPHdici8+IFRoZSBtYXhpbXVtIG51bWJlciBvZiBwYWlycyBpcyBzcGVjaWZpZWQgYnkgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1heDx3YnIvPkN1cnZlPHdici8+UG9pbnRzLjx3YnIvPjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRvbmVtYXBwaW5nIC88d2JyLz4gY29udHJhc3QgLzx3YnIvPiBnYW1tYSBjdXJ2ZSBmb3IgdGhlIGJsdWUKK2NoYW5uZWwsPHdici8+IHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiBmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlR3JlZW4iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+R3JlZW4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+MUQgYXJyYXkgb2YgZmxvYXQgcGFpcnMgKFBfPHdici8+SU4sPHdici8+IFBfPHdici8+T1VUKS48d2JyLz4gVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhaXJzIGlzIHNwZWNpZmllZCBieSBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHMuPHdici8+PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgLzx3YnIvPiBjb250cmFzdCAvPHdici8+IGdhbW1hIGN1cnZlIGZvciB0aGUgZ3JlZW4KK2NoYW5uZWwsPHdici8+IHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiBmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4xRCBhcnJheSBvZiBmbG9hdCBwYWlycyAoUF88d2JyLz5JTiw8d2JyLz4gUF88d2JyLz5PVVQpLjx3YnIvPiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFpcnMgaXMgc3BlY2lmaWVkIGJ5IGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50cy48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ub25lbWFwcGluZyAvPHdici8+IGNvbnRyYXN0IC88d2JyLz4gZ2FtbWEgY3VydmUgZm9yIHRoZSByZWQKK2NoYW5uZWwsPHdici8+IHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4wLTEgb24gYm90aCBpbnB1dCBhbmQgb3V0cHV0IGNvb3JkaW5hdGVzLDx3YnIvPiBub3JtYWxpemVkCithcyBhIGZsb2F0aW5nLXBvaW50IHZhbHVlIHN1Y2ggdGhhdCAwID09IGJsYWNrIGFuZCAxID09IHdoaXRlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RWFjaCBjaGFubmVsJ3MgY3VydmUgaXMgZGVmaW5lZCBieSBhbiBhcnJheSBvZiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gPQorICBbIFAwaW4sPHdici8+IFAwb3V0LDx3YnIvPiBQMWluLDx3YnIvPiBQMW91dCw8d2JyLz4gUDJpbiw8d2JyLz4gUDJvdXQsPHdici8+IFAzaW4sPHdici8+IFAzb3V0LDx3YnIvPiAuLi4sPHdici8+IFBOaW4sPHdici8+IFBOb3V0IF0KKzIgJmx0Oz0gTiAmbHQ7PSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5tYXhDdXJ2ZVBvaW50cyI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1heDx3YnIvPkN1cnZlPHdici8+UG9pbnRzPC9hPjwvY29kZT48L3ByZT4KKzxwPlRoZXNlIGFyZSBzb3J0ZWQgaW4gb3JkZXIgb2YgaW5jcmVhc2luZyA8Y29kZT5QaW48L2NvZGU+OyBpdCBpcworcmVxdWlyZWQgdGhhdCBpbnB1dCB2YWx1ZXMgMC48d2JyLz4wIGFuZCAxLjx3YnIvPjAgYXJlIGluY2x1ZGVkIGluIHRoZSBsaXN0IHRvCitkZWZpbmUgYSBjb21wbGV0ZSBtYXBwaW5nLjx3YnIvPiBGb3IgaW5wdXQgdmFsdWVzIGJldHdlZW4gY29udHJvbCBwb2ludHMsPHdici8+Cit0aGUgY2FtZXJhIGRldmljZSBtdXN0IGxpbmVhcmx5IGludGVycG9sYXRlIGJldHdlZW4gdGhlIGNvbnRyb2wKK3BvaW50cy48d2JyLz48L3A+Cis8cD5FYWNoIGN1cnZlIGNhbiBoYXZlIGFuIGluZGVwZW5kZW50IG51bWJlciBvZiBwb2ludHMsPHdici8+IGFuZCB0aGUgbnVtYmVyCitvZiBwb2ludHMgY2FuIGJlIGxlc3MgdGhhbiBtYXggKHRoYXQgaXMsPHdici8+IHRoZSByZXF1ZXN0IGRvZXNuJ3QgaGF2ZSB0bworYWx3YXlzIHByb3ZpZGUgYSBjdXJ2ZSB3aXRoIG51bWJlciBvZiBwb2ludHMgZXF1aXZhbGVudCB0bworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50czwvYT4pLjx3YnIvPjwvcD4KKzxwPkEgZmV3IGV4YW1wbGVzLDx3YnIvPiBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyBncmFwaGljYWwgbWFwcGluZ3M7IHRoZXNlCitvbmx5IHNwZWNpZnkgdGhlIHJlZCBjaGFubmVsIGFuZCB0aGUgcHJlY2lzaW9uIGlzIGxpbWl0ZWQgdG8gNAorZGlnaXRzLDx3YnIvPiBmb3IgY29uY2lzZW5lc3MuPHdici8+PC9wPgorPHA+TGluZWFyIG1hcHBpbmc6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+ID0gWyAwLDx3YnIvPiAwLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iTGluZWFyIG1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2xpbmVhcl90b25lbWFwLnBuZyIvPjwvcD4KKzxwPkludmVydCBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiA9IFsgMCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDAgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9IkludmVydGluZyBtYXBwaW5nIGN1cnZlIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZC9pbnZlcnNlX3RvbmVtYXAucG5nIi8+PC9wPgorPHA+R2FtbWEgMS88d2JyLz4yLjx3YnIvPjIgbWFwcGluZyw8d2JyLz4gd2l0aCAxNiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gPSBbCisgIDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wMDAwLDx3YnIvPiAwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+MjkyMCw8d2JyLz4gMC48d2JyLz4xMzMzLDx3YnIvPiAwLjx3YnIvPjQwMDIsPHdici8+IDAuPHdici8+MjAwMCw8d2JyLz4gMC48d2JyLz40ODEyLDx3YnIvPgorICAwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTQ4NCw8d2JyLz4gMC48d2JyLz4zMzMzLDx3YnIvPiAwLjx3YnIvPjYwNjksPHdici8+IDAuPHdici8+NDAwMCw8d2JyLz4gMC48d2JyLz42NTk0LDx3YnIvPiAwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzA3Miw8d2JyLz4KKyAgMC48d2JyLz41MzMzLDx3YnIvPiAwLjx3YnIvPjc1MTUsPHdici8+IDAuPHdici8+NjAwMCw8d2JyLz4gMC48d2JyLz43OTI4LDx3YnIvPiAwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODMxNyw8d2JyLz4gMC48d2JyLz43MzMzLDx3YnIvPiAwLjx3YnIvPjg2ODUsPHdici8+CisgIDAuPHdici8+ODAwMCw8d2JyLz4gMC48d2JyLz45MDM1LDx3YnIvPiAwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM3MCw8d2JyLz4gMC48d2JyLz45MzMzLDx3YnIvPiAwLjx3YnIvPjk2OTEsPHdici8+IDEuPHdici8+MDAwMCw8d2JyLz4gMS48d2JyLz4wMDAwIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJHYW1tYSA9IDEvMi4yIHRvbmVtYXBwaW5nIGN1cnZlIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZC9nYW1tYV90b25lbWFwLnBuZyIvPjwvcD4KKzxwPlN0YW5kYXJkIHNSR0IgZ2FtbWEgbWFwcGluZyw8d2JyLz4gcGVyIElFQyA2MTk2Ni0yLTE6MTk5OSw8d2JyLz4gd2l0aCAxNiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gPSBbCisgIDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wMDAwLDx3YnIvPiAwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+Mjg2NCw8d2JyLz4gMC48d2JyLz4xMzMzLDx3YnIvPiAwLjx3YnIvPjQwMDcsPHdici8+IDAuPHdici8+MjAwMCw8d2JyLz4gMC48d2JyLz40ODQ1LDx3YnIvPgorICAwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTUzMiw8d2JyLz4gMC48d2JyLz4zMzMzLDx3YnIvPiAwLjx3YnIvPjYxMjUsPHdici8+IDAuPHdici8+NDAwMCw8d2JyLz4gMC48d2JyLz42NjUyLDx3YnIvPiAwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzEzMCw8d2JyLz4KKyAgMC48d2JyLz41MzMzLDx3YnIvPiAwLjx3YnIvPjc1NjksPHdici8+IDAuPHdici8+NjAwMCw8d2JyLz4gMC48d2JyLz43OTc3LDx3YnIvPiAwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODM2MCw8d2JyLz4gMC48d2JyLz43MzMzLDx3YnIvPiAwLjx3YnIvPjg3MjEsPHdici8+CisgIDAuPHdici8+ODAwMCw8d2JyLz4gMC48d2JyLz45MDYzLDx3YnIvPiAwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM4OSw8d2JyLz4gMC48d2JyLz45MzMzLDx3YnIvPiAwLjx3YnIvPjk3MDEsPHdici8+IDEuPHdici8+MDAwMCw8d2JyLz4gMS48d2JyLz4wMDAwIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJzUkdCIHRvbmVtYXBwaW5nIGN1cnZlIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZC9zcmdiX3RvbmVtYXAucG5nIi8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgZ29vZCBxdWFsaXR5IG9mIG1hcHBpbmcsPHdici8+IGF0IGxlYXN0IDEyOCBjb250cm9sIHBvaW50cyBhcmUKK3ByZWZlcnJlZC48d2JyLz48L3A+Cis8cD5BIHR5cGljYWwgdXNlIGNhc2Ugb2YgdGhpcyB3b3VsZCBiZSBhIGdhbW1hLTEvPHdici8+Mi48d2JyLz4yIGN1cnZlLDx3YnIvPiB3aXRoIGFzIG1hbnkKK2NvbnRyb2wgcG9pbnRzIHVzZWQgYXMgYXJlIGF2YWlsYWJsZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljIGFzIHRvbmVtYXBDdXJ2ZV08L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgLzx3YnIvPiBjb250cmFzdCAvPHdici8+IGdhbW1hIGN1cnZlIHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+CitpcyBDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdG9uZW1hcEN1cnZlIGNvbnNpc3Qgb2YgdGhyZWUgY3VydmVzIGZvciBlYWNoIG9mIHJlZCw8d2JyLz4gZ3JlZW4sPHdici8+IGFuZCBibHVlCitjaGFubmVscyByZXNwZWN0aXZlbHkuPHdici8+IFRoZSBmb2xsb3dpbmcgZXhhbXBsZSB1c2VzIHRoZSByZWQgY2hhbm5lbCBhcyBhbgorZXhhbXBsZS48d2JyLz4gVGhlIHNhbWUgbG9naWMgYXBwbGllcyB0byBncmVlbiBhbmQgYmx1ZSBjaGFubmVsLjx3YnIvPgorRWFjaCBjaGFubmVsJ3MgY3VydmUgaXMgZGVmaW5lZCBieSBhbiBhcnJheSBvZiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPmN1cnZlUmVkID0KKyAgWyBQMChpbiw8d2JyLz4gb3V0KSw8d2JyLz4gUDEoaW4sPHdici8+IG91dCksPHdici8+IFAyKGluLDx3YnIvPiBvdXQpLDx3YnIvPiBQMyhpbiw8d2JyLz4gb3V0KSw8d2JyLz4gLi4uLDx3YnIvPiBQTihpbiw8d2JyLz4gb3V0KSBdCisyICZsdDs9IE4gJmx0Oz0gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50czwvYT48L2NvZGU+PC9wcmU+Cis8cD5UaGVzZSBhcmUgc29ydGVkIGluIG9yZGVyIG9mIGluY3JlYXNpbmcgPGNvZGU+UGluPC9jb2RlPjsgaXQgaXMgYWx3YXlzCitndWFyYW50ZWVkIHRoYXQgaW5wdXQgdmFsdWVzIDAuPHdici8+MCBhbmQgMS48d2JyLz4wIGFyZSBpbmNsdWRlZCBpbiB0aGUgbGlzdCB0bworZGVmaW5lIGEgY29tcGxldGUgbWFwcGluZy48d2JyLz4gRm9yIGlucHV0IHZhbHVlcyBiZXR3ZWVuIGNvbnRyb2wgcG9pbnRzLDx3YnIvPgordGhlIGNhbWVyYSBkZXZpY2UgbXVzdCBsaW5lYXJseSBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHRoZSBjb250cm9sCitwb2ludHMuPHdici8+PC9wPgorPHA+RWFjaCBjdXJ2ZSBjYW4gaGF2ZSBhbiBpbmRlcGVuZGVudCBudW1iZXIgb2YgcG9pbnRzLDx3YnIvPiBhbmQgdGhlIG51bWJlcgorb2YgcG9pbnRzIGNhbiBiZSBsZXNzIHRoYW4gbWF4ICh0aGF0IGlzLDx3YnIvPiB0aGUgcmVxdWVzdCBkb2Vzbid0IGhhdmUgdG8KK2Fsd2F5cyBwcm92aWRlIGEgY3VydmUgd2l0aCBudW1iZXIgb2YgcG9pbnRzIGVxdWl2YWxlbnQgdG8KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHM8L2E+KS48d2JyLz48L3A+Cis8cD5BIGZldyBleGFtcGxlcyw8d2JyLz4gYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgZ3JhcGhpY2FsIG1hcHBpbmdzOyB0aGVzZQorb25seSBzcGVjaWZ5IHRoZSByZWQgY2hhbm5lbCBhbmQgdGhlIHByZWNpc2lvbiBpcyBsaW1pdGVkIHRvIDQKK2RpZ2l0cyw8d2JyLz4gZm9yIGNvbmNpc2VuZXNzLjx3YnIvPjwvcD4KKzxwPkxpbmVhciBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbICgwLDx3YnIvPiAwKSw8d2JyLz4gKDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wKSBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iTGluZWFyIG1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2xpbmVhcl90b25lbWFwLnBuZyIvPjwvcD4KKzxwPkludmVydCBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbICgwLDx3YnIvPiAxLjx3YnIvPjApLDx3YnIvPiAoMS48d2JyLz4wLDx3YnIvPiAwKSBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iSW52ZXJ0aW5nIG1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2ludmVyc2VfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5HYW1tYSAxLzx3YnIvPjIuPHdici8+MiBtYXBwaW5nLDx3YnIvPiB3aXRoIDE2IGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbCisgICgwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDAwMCksPHdici8+ICgwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+MjkyMCksPHdici8+ICgwLjx3YnIvPjEzMzMsPHdici8+IDAuPHdici8+NDAwMiksPHdici8+ICgwLjx3YnIvPjIwMDAsPHdici8+IDAuPHdici8+NDgxMiksPHdici8+CisgICgwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTQ4NCksPHdici8+ICgwLjx3YnIvPjMzMzMsPHdici8+IDAuPHdici8+NjA2OSksPHdici8+ICgwLjx3YnIvPjQwMDAsPHdici8+IDAuPHdici8+NjU5NCksPHdici8+ICgwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzA3MiksPHdici8+CisgICgwLjx3YnIvPjUzMzMsPHdici8+IDAuPHdici8+NzUxNSksPHdici8+ICgwLjx3YnIvPjYwMDAsPHdici8+IDAuPHdici8+NzkyOCksPHdici8+ICgwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODMxNyksPHdici8+ICgwLjx3YnIvPjczMzMsPHdici8+IDAuPHdici8+ODY4NSksPHdici8+CisgICgwLjx3YnIvPjgwMDAsPHdici8+IDAuPHdici8+OTAzNSksPHdici8+ICgwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM3MCksPHdici8+ICgwLjx3YnIvPjkzMzMsPHdici8+IDAuPHdici8+OTY5MSksPHdici8+ICgxLjx3YnIvPjAwMDAsPHdici8+IDEuPHdici8+MDAwMCkgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9IkdhbW1hID0gMS8yLjIgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2dhbW1hX3RvbmVtYXAucG5nIi8+PC9wPgorPHA+U3RhbmRhcmQgc1JHQiBnYW1tYSBtYXBwaW5nLDx3YnIvPiBwZXIgSUVDIDYxOTY2LTItMToxOTk5LDx3YnIvPiB3aXRoIDE2IGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbCisgICgwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDAwMCksPHdici8+ICgwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+Mjg2NCksPHdici8+ICgwLjx3YnIvPjEzMzMsPHdici8+IDAuPHdici8+NDAwNyksPHdici8+ICgwLjx3YnIvPjIwMDAsPHdici8+IDAuPHdici8+NDg0NSksPHdici8+CisgICgwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTUzMiksPHdici8+ICgwLjx3YnIvPjMzMzMsPHdici8+IDAuPHdici8+NjEyNSksPHdici8+ICgwLjx3YnIvPjQwMDAsPHdici8+IDAuPHdici8+NjY1MiksPHdici8+ICgwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzEzMCksPHdici8+CisgICgwLjx3YnIvPjUzMzMsPHdici8+IDAuPHdici8+NzU2OSksPHdici8+ICgwLjx3YnIvPjYwMDAsPHdici8+IDAuPHdici8+Nzk3NyksPHdici8+ICgwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODM2MCksPHdici8+ICgwLjx3YnIvPjczMzMsPHdici8+IDAuPHdici8+ODcyMSksPHdici8+CisgICgwLjx3YnIvPjgwMDAsPHdici8+IDAuPHdici8+OTA2MyksPHdici8+ICgwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM4OSksPHdici8+ICgwLjx3YnIvPjkzMzMsPHdici8+IDAuPHdici8+OTcwMSksPHdici8+ICgxLjx3YnIvPjAwMDAsPHdici8+IDEuPHdici8+MDAwMCkgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9InNSR0IgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3NyZ2JfdG9uZW1hcC5wbmciLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgZW50cnkgaXMgY3JlYXRlZCBieSB0aGUgZnJhbWV3b3JrIGZyb20gdGhlIGN1cnZlUmVkLDx3YnIvPiBjdXJ2ZUdyZWVuIGFuZAorY3VydmVCbHVlIGVudHJpZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OVFJBU1RfQ1VSVkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlVzZSB0aGUgdG9uZSBtYXBwaW5nIGN1cnZlIHNwZWNpZmllZCBpbgordGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTwvYT4qIGVudHJpZXMuPHdici8+PC9wPgorPHA+QWxsIGNvbG9yIGVuaGFuY2VtZW50IGFuZCB0b25lbWFwcGluZyBtdXN0IGJlIGRpc2FibGVkLDx3YnIvPiBleGNlcHQKK2ZvciBhcHBseWluZyB0aGUgdG9uZW1hcHBpbmcgY3VydmUgc3BlY2lmaWVkIGJ5Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8L2E+Ljx3YnIvPjwvcD4KKzxwPk11c3Qgbm90IHNsb3cgZG93biBmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHJhdworc2Vuc29yIG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BZHZhbmNlZCBnYW1tYSBtYXBwaW5nIGFuZCBjb2xvciBlbmhhbmNlbWVudCBtYXkgYmUgYXBwbGllZCw8d2JyLz4gd2l0aG91dAorcmVkdWNpbmcgZnJhbWUgcmF0ZSBjb21wYXJlZCB0byByYXcgc2Vuc29yIG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkhpZ2gtcXVhbGl0eSBnYW1tYSBtYXBwaW5nIGFuZCBjb2xvciBlbmhhbmNlbWVudCB3aWxsIGJlIGFwcGxpZWQsPHdici8+IGF0Cit0aGUgY29zdCBvZiBwb3NzaWJseSByZWR1Y2VkIGZyYW1lIHJhdGUgY29tcGFyZWQgdG8gcmF3IHNlbnNvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+R0FNTUFfVkFMVUU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlVzZSB0aGUgZ2FtbWEgdmFsdWUgc3BlY2lmaWVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuZ2FtbWEiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5nYW1tYTwvYT4gdG8gcGVmb3JtCit0b25lbWFwcGluZy48d2JyLz48L3A+Cis8cD5BbGwgY29sb3IgZW5oYW5jZW1lbnQgYW5kIHRvbmVtYXBwaW5nIG11c3QgYmUgZGlzYWJsZWQsPHdici8+IGV4Y2VwdAorZm9yIGFwcGx5aW5nIHRoZSB0b25lbWFwcGluZyBjdXJ2ZSBzcGVjaWZpZWQgYnkgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5nYW1tYSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmdhbW1hPC9hPi48d2JyLz48L3A+Cis8cD5NdXN0IG5vdCBzbG93IGRvd24gZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byByYXcgc2Vuc29yIG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QUkVTRVRfQ1VSVkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlVzZSB0aGUgcHJlc2V0IHRvbmVtYXBwaW5nIGN1cnZlIHNwZWNpZmllZCBpbgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPnByZXNldDx3YnIvPkN1cnZlPC9hPiB0byBwZWZvcm0gdG9uZW1hcHBpbmcuPHdici8+PC9wPgorPHA+QWxsIGNvbG9yIGVuaGFuY2VtZW50IGFuZCB0b25lbWFwcGluZyBtdXN0IGJlIGRpc2FibGVkLDx3YnIvPiBleGNlcHQKK2ZvciBhcHBseWluZyB0aGUgdG9uZW1hcHBpbmcgY3VydmUgc3BlY2lmaWVkIGJ5Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLnByZXNldEN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+cHJlc2V0PHdici8+Q3VydmU8L2E+Ljx3YnIvPjwvcD4KKzxwPk11c3Qgbm90IHNsb3cgZG93biBmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHJhdyBzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkhpZ2gtbGV2ZWwgZ2xvYmFsIGNvbnRyYXN0Lzx3YnIvPmdhbW1hLzx3YnIvPnRvbmVtYXBwaW5nIGNvbnRyb2wuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAuYXZhaWxhYmxlVG9uZU1hcE1vZGVzIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+YXZhaWxhYmxlPHdici8+VG9uZTx3YnIvPk1hcDx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBzd2l0Y2hpbmcgdG8gYW4gYXBwbGljYXRpb24tZGVmaW5lZCBjb250cmFzdCBjdXJ2ZSBieSBzZXR0aW5nCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlPC9hPiB0byBDT05UUkFTVF88d2JyLz5DVVJWRSw8d2JyLz4gdGhlIGN1cnZlIGlzIGRlZmluZWQKK3Blci1jaGFubmVsIHdpdGggYSBzZXQgb2YgPGNvZGU+KGluLDx3YnIvPiBvdXQpPC9jb2RlPiBwb2ludHMgdGhhdCBzcGVjaWZ5IHRoZQorbWFwcGluZyBmcm9tIGlucHV0IGhpZ2gtYml0LWRlcHRoIHBpeGVsIHZhbHVlIHRvIHRoZSBvdXRwdXQKK2xvdy1iaXQtZGVwdGggdmFsdWUuPHdici8+ICBTaW5jZSB0aGUgYWN0dWFsIHBpeGVsIHJhbmdlcyBvZiBib3RoIGlucHV0CithbmQgb3V0cHV0IG1heSBjaGFuZ2UgZGVwZW5kaW5nIG9uIHRoZSBjYW1lcmEgcGlwZWxpbmUsPHdici8+IHRoZSB2YWx1ZXMKK2FyZSBzcGVjaWZpZWQgYnkgbm9ybWFsaXplZCBmbG9hdGluZy1wb2ludCBudW1iZXJzLjx3YnIvPjwvcD4KKzxwPk1vcmUtY29tcGxleCBjb2xvciBtYXBwaW5nIG9wZXJhdGlvbnMgc3VjaCBhcyAzRCBjb2xvciBsb29rLXVwCit0YWJsZXMsPHdici8+IHNlbGVjdGl2ZSBjaHJvbWEgZW5oYW5jZW1lbnQsPHdici8+IG9yIG90aGVyIG5vbi1saW5lYXIgY29sb3IKK3RyYW5zZm9ybXMgd2lsbCBiZSBkaXNhYmxlZCB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+Cis8cD5XaGVuIHVzaW5nIGVpdGhlciBGQVNUIG9yIEhJR0hfPHdici8+UVVBTElUWSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbAorZW1pdCBpdHMgb3duIHRvbmVtYXAgY3VydmUgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPC9hPi48d2JyLz4KK1RoZXNlIHZhbHVlcyBhcmUgYWx3YXlzIGF2YWlsYWJsZSw8d2JyLz4gYW5kIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRoZQorYWN0dWFsbHkgdXNlZCBub25saW5lYXIvPHdici8+bm9uZ2xvYmFsIHRyYW5zZm9ybXMuPHdici8+PC9wPgorPHA+SWYgYSByZXF1ZXN0IGlzIHNlbnQgd2l0aCBDT05UUkFTVF88d2JyLz5DVVJWRSB3aXRoIHRoZSBjYW1lcmEgZGV2aWNlJ3MKK3Byb3ZpZGVkIGN1cnZlIGluIEZBU1Qgb3IgSElHSF88d2JyLz5RVUFMSVRZLDx3YnIvPiB0aGUgaW1hZ2UncyB0b25lbWFwIHdpbGwgYmUKK3JvdWdobHkgdGhlIHNhbWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuZ2FtbWEiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmdhbW1hCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ub25lbWFwcGluZyBjdXJ2ZSB0byB1c2Ugd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlPC9hPiBpcworR0FNTUFfPHdici8+VkFMVUU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdG9uZW1hcCBjdXJ2ZSB3aWxsIGJlIGRlZmluZWQgdGhlIGZvbGxvd2luZyBmb3JtdWxhOgorKiBPVVQgPSBwb3coSU4sPHdici8+IDEuPHdici8+MCAvPHdici8+IGdhbW1hKQord2hlcmUgSU4gYW5kIE9VVCBpcyB0aGUgaW5wdXQgcGl4ZWwgdmFsdWUgc2NhbGVkIHRvIHJhbmdlIFswLjx3YnIvPjAsPHdici8+IDEuPHdici8+MF0sPHdici8+Citwb3cgaXMgdGhlIHBvd2VyIGZ1bmN0aW9uIGFuZCBnYW1tYSBpcyB0aGUgZ2FtbWEgdmFsdWUgc3BlY2lmaWVkIGJ5IHRoaXMKK2tleS48d2JyLz48L3A+Cis8cD5UaGUgc2FtZSBjdXJ2ZSB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIGNvbG9yIGNoYW5uZWxzLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZQorbWF5IGNsaXAgdGhlIGlucHV0IGdhbW1hIHZhbHVlIHRvIGl0cyBzdXBwb3J0ZWQgcmFuZ2UuPHdici8+IFRoZSBhY3R1YWwgYXBwbGllZAordmFsdWUgd2lsbCBiZSByZXR1cm5lZCBpbiBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5UaGUgdmFsaWQgcmFuZ2Ugb2YgZ2FtbWEgdmFsdWUgdmFyaWVzIG9uIGRpZmZlcmVudCBkZXZpY2VzLDx3YnIvPiBidXQgdmFsdWVzCit3aXRoaW4gWzEuPHdici8+MCw8d2JyLz4gNS48d2JyLz4wXSBhcmUgZ3VhcmFudGVlZCBub3QgdG8gYmUgY2xpcHBlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+cHJlc2V0PHdici8+Q3VydmUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1JHQjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VG9uZW1hcHBpbmcgY3VydmUgaXMgZGVmaW5lZCBieSBzUkdCPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkVDNzA5PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ub25lbWFwcGluZyBjdXJ2ZSBpcyBkZWZpbmVkIGJ5IElUVS1SIEJULjx3YnIvPjcwOTwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRvbmVtYXBwaW5nIGN1cnZlIHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitQUkVTRVRfPHdici8+Q1VSVkU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdG9uZW1hcCBjdXJ2ZSB3aWxsIGJlIGRlZmluZWQgYnkgc3BlY2lmaWVkIHN0YW5kYXJkLjx3YnIvPjwvcD4KKzxwPnNSR0IgKGFwcHJveGltYXRlZCBieSAxNiBjb250cm9sIHBvaW50cyk6PC9wPgorPHA+PGltZyBhbHQ9InNSR0IgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3NyZ2JfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5SZWMuPHdici8+IDcwOSAoYXBwcm94aW1hdGVkIGJ5IDE2IGNvbnRyb2wgcG9pbnRzKTo8L3A+Cis8cD48aW1nIGFsdD0iUmVjLiA3MDkgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3JlYzcwOV90b25lbWFwLnBuZyIvPjwvcD4KKzxwPk5vdGUgdGhhdCBhYm92ZSBmaWd1cmVzIHNob3cgYSAxNiBjb250cm9sIHBvaW50cyBhcHByb3hpbWF0aW9uIG9mIHByZXNldAorY3VydmVzLjx3YnIvPiBDYW1lcmEgZGV2aWNlcyBtYXkgYXBwbHkgYSBkaWZmZXJlbnQgYXBwcm94aW1hdGlvbiB0byB0aGUgY3VydmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQudG9uZW1hcC5tYXhDdXJ2ZVBvaW50cyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1heGltdW0gbnVtYmVyIG9mIHN1cHBvcnRlZCBwb2ludHMgaW4gdGhlCit0b25lbWFwIGN1cnZlIHRoYXQgY2FuIGJlIHVzZWQgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcG9pbnRzIHByb3ZpZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiAoaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPC9hPiopIGlzCitsZXNzIHRoYW4gdGhpcyBtYXhpbXVtLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHJlc2FtcGxlIHRoZSBjdXJ2ZSB0byBpdHMgaW50ZXJuYWwKK3JlcHJlc2VudGF0aW9uLDx3YnIvPiB1c2luZyBsaW5lYXIgaW50ZXJwb2xhdGlvbi48d2JyLz48L3A+Cis8cD5UaGUgb3V0cHV0IGN1cnZlcyBpbiB0aGUgcmVzdWx0IG1ldGFkYXRhIG1heSBoYXZlIGEgZGlmZmVyZW50IG51bWJlcgorb2YgcG9pbnRzIHRoYW4gdGhlIGlucHV0IGN1cnZlcyw8d2JyLz4gYW5kIHdpbGwgcmVwcmVzZW50IHRoZSBhY3R1YWwKK2hhcmR3YXJlIGN1cnZlcyB1c2VkIGFzIGNsb3NlbHkgYXMgcG9zc2libGUgd2hlbiBsaW5lYXJseSBpbnRlcnBvbGF0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHZhbHVlIG11c3QgYmUgYXQgbGVhc3QgNjQuPHdici8+IFRoaXMgc2hvdWxkIGJlIGF0IGxlYXN0IDEyOC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC50b25lbWFwLmF2YWlsYWJsZVRvbmVNYXBNb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+YXZhaWxhYmxlPHdici8+VG9uZTx3YnIvPk1hcDx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIHRvbmVtYXBwaW5nIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlPC9hPiB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEKK2RldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5DYW1lcmEgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSB3aWxsIGFsd2F5cyBjb250YWluCithdCBsZWFzdCBvbmUgb2YgYmVsb3cgbW9kZSBjb21iaW5hdGlvbnM6PC9wPgorPHVsPgorPGxpPkNPTlRSQVNUXzx3YnIvPkNVUlZFLDx3YnIvPiBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFk8L2xpPgorPGxpPkdBTU1BXzx3YnIvPlZBTFVFLDx3YnIvPiBQUkVTRVRfPHdici8+Q1VSVkUsPHdici8+IEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWTwvbGk+Cis8L3VsPgorPHA+VGhpcyBpbmNsdWRlcyBhbGwgRlVMTCBsZXZlbCBkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SEFMIG11c3Qgc3VwcG9ydCBib3RoIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSBpZiBhdXRvbWF0aWMgdG9uZW1hcCBjb250cm9sIGlzIGF2YWlsYWJsZQorb24gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGJ1dCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgdGhlIHNhbWUgZm9yIGJvdGggbW9kZXMuPHdici8+CitUaGF0IGlzLDx3YnIvPiBpZiB0aGUgaGlnaGVzdCBxdWFsaXR5IGltcGxlbWVudGF0aW9uIG9uIHRoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHNsb3cgZG93bgorY2FwdHVyZSByYXRlLDx3YnIvPiB0aGVuIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC50b25lbWFwLmN1cnZlQmx1ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5CbHVlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjFEIGFycmF5IG9mIGZsb2F0IHBhaXJzIChQXzx3YnIvPklOLDx3YnIvPiBQXzx3YnIvPk9VVCkuPHdici8+IFRoZSBtYXhpbXVtIG51bWJlciBvZiBwYWlycyBpcyBzcGVjaWZpZWQgYnkgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1heDx3YnIvPkN1cnZlPHdici8+UG9pbnRzLjx3YnIvPjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRvbmVtYXBwaW5nIC88d2JyLz4gY29udHJhc3QgLzx3YnIvPiBnYW1tYSBjdXJ2ZSBmb3IgdGhlIGJsdWUKK2NoYW5uZWwsPHdici8+IHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiBmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnRvbmVtYXAuY3VydmVHcmVlbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5HcmVlbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4xRCBhcnJheSBvZiBmbG9hdCBwYWlycyAoUF88d2JyLz5JTiw8d2JyLz4gUF88d2JyLz5PVVQpLjx3YnIvPiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFpcnMgaXMgc3BlY2lmaWVkIGJ5IGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50cy48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ub25lbWFwcGluZyAvPHdici8+IGNvbnRyYXN0IC88d2JyLz4gZ2FtbWEgY3VydmUgZm9yIHRoZSBncmVlbgorY2hhbm5lbCw8d2JyLz4gdG8gdXNlIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK0NPTlRSQVNUXzx3YnIvPkNVUlZFLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+IGZvciBtb3JlIGRldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+MUQgYXJyYXkgb2YgZmxvYXQgcGFpcnMgKFBfPHdici8+SU4sPHdici8+IFBfPHdici8+T1VUKS48d2JyLz4gVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhaXJzIGlzIHNwZWNpZmllZCBieSBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHMuPHdici8+PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgLzx3YnIvPiBjb250cmFzdCAvPHdici8+IGdhbW1hIGN1cnZlIGZvciB0aGUgcmVkCitjaGFubmVsLDx3YnIvPiB0byB1c2Ugd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlPC9hPiBpcworQ09OVFJBU1RfPHdici8+Q1VSVkUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MC0xIG9uIGJvdGggaW5wdXQgYW5kIG91dHB1dCBjb29yZGluYXRlcyw8d2JyLz4gbm9ybWFsaXplZAorYXMgYSBmbG9hdGluZy1wb2ludCB2YWx1ZSBzdWNoIHRoYXQgMCA9PSBibGFjayBhbmQgMSA9PSB3aGl0ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkVhY2ggY2hhbm5lbCdzIGN1cnZlIGlzIGRlZmluZWQgYnkgYW4gYXJyYXkgb2YgY29udHJvbCBwb2ludHM6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+ID0KKyAgWyBQMGluLDx3YnIvPiBQMG91dCw8d2JyLz4gUDFpbiw8d2JyLz4gUDFvdXQsPHdici8+IFAyaW4sPHdici8+IFAyb3V0LDx3YnIvPiBQM2luLDx3YnIvPiBQM291dCw8d2JyLz4gLi4uLDx3YnIvPiBQTmluLDx3YnIvPiBQTm91dCBdCisyICZsdDs9IE4gJmx0Oz0gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50czwvYT48L2NvZGU+PC9wcmU+Cis8cD5UaGVzZSBhcmUgc29ydGVkIGluIG9yZGVyIG9mIGluY3JlYXNpbmcgPGNvZGU+UGluPC9jb2RlPjsgaXQgaXMKK3JlcXVpcmVkIHRoYXQgaW5wdXQgdmFsdWVzIDAuPHdici8+MCBhbmQgMS48d2JyLz4wIGFyZSBpbmNsdWRlZCBpbiB0aGUgbGlzdCB0bworZGVmaW5lIGEgY29tcGxldGUgbWFwcGluZy48d2JyLz4gRm9yIGlucHV0IHZhbHVlcyBiZXR3ZWVuIGNvbnRyb2wgcG9pbnRzLDx3YnIvPgordGhlIGNhbWVyYSBkZXZpY2UgbXVzdCBsaW5lYXJseSBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHRoZSBjb250cm9sCitwb2ludHMuPHdici8+PC9wPgorPHA+RWFjaCBjdXJ2ZSBjYW4gaGF2ZSBhbiBpbmRlcGVuZGVudCBudW1iZXIgb2YgcG9pbnRzLDx3YnIvPiBhbmQgdGhlIG51bWJlcgorb2YgcG9pbnRzIGNhbiBiZSBsZXNzIHRoYW4gbWF4ICh0aGF0IGlzLDx3YnIvPiB0aGUgcmVxdWVzdCBkb2Vzbid0IGhhdmUgdG8KK2Fsd2F5cyBwcm92aWRlIGEgY3VydmUgd2l0aCBudW1iZXIgb2YgcG9pbnRzIGVxdWl2YWxlbnQgdG8KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHM8L2E+KS48d2JyLz48L3A+Cis8cD5BIGZldyBleGFtcGxlcyw8d2JyLz4gYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgZ3JhcGhpY2FsIG1hcHBpbmdzOyB0aGVzZQorb25seSBzcGVjaWZ5IHRoZSByZWQgY2hhbm5lbCBhbmQgdGhlIHByZWNpc2lvbiBpcyBsaW1pdGVkIHRvIDQKK2RpZ2l0cyw8d2JyLz4gZm9yIGNvbmNpc2VuZXNzLjx3YnIvPjwvcD4KKzxwPkxpbmVhciBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiA9IFsgMCw8d2JyLz4gMCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9IkxpbmVhciBtYXBwaW5nIGN1cnZlIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZC9saW5lYXJfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5JbnZlcnQgbWFwcGluZzo8L3A+Cis8cHJlPjxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gPSBbIDAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAwIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJJbnZlcnRpbmcgbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvaW52ZXJzZV90b25lbWFwLnBuZyIvPjwvcD4KKzxwPkdhbW1hIDEvPHdici8+Mi48d2JyLz4yIG1hcHBpbmcsPHdici8+IHdpdGggMTYgY29udHJvbCBwb2ludHM6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+ID0gWworICAwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wNjY3LDx3YnIvPiAwLjx3YnIvPjI5MjAsPHdici8+IDAuPHdici8+MTMzMyw8d2JyLz4gMC48d2JyLz40MDAyLDx3YnIvPiAwLjx3YnIvPjIwMDAsPHdici8+IDAuPHdici8+NDgxMiw8d2JyLz4KKyAgMC48d2JyLz4yNjY3LDx3YnIvPiAwLjx3YnIvPjU0ODQsPHdici8+IDAuPHdici8+MzMzMyw8d2JyLz4gMC48d2JyLz42MDY5LDx3YnIvPiAwLjx3YnIvPjQwMDAsPHdici8+IDAuPHdici8+NjU5NCw8d2JyLz4gMC48d2JyLz40NjY3LDx3YnIvPiAwLjx3YnIvPjcwNzIsPHdici8+CisgIDAuPHdici8+NTMzMyw8d2JyLz4gMC48d2JyLz43NTE1LDx3YnIvPiAwLjx3YnIvPjYwMDAsPHdici8+IDAuPHdici8+NzkyOCw8d2JyLz4gMC48d2JyLz42NjY3LDx3YnIvPiAwLjx3YnIvPjgzMTcsPHdici8+IDAuPHdici8+NzMzMyw8d2JyLz4gMC48d2JyLz44Njg1LDx3YnIvPgorICAwLjx3YnIvPjgwMDAsPHdici8+IDAuPHdici8+OTAzNSw8d2JyLz4gMC48d2JyLz44NjY3LDx3YnIvPiAwLjx3YnIvPjkzNzAsPHdici8+IDAuPHdici8+OTMzMyw8d2JyLz4gMC48d2JyLz45NjkxLDx3YnIvPiAxLjx3YnIvPjAwMDAsPHdici8+IDEuPHdici8+MDAwMCBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iR2FtbWEgPSAxLzIuMiB0b25lbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvZ2FtbWFfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5TdGFuZGFyZCBzUkdCIGdhbW1hIG1hcHBpbmcsPHdici8+IHBlciBJRUMgNjE5NjYtMi0xOjE5OTksPHdici8+IHdpdGggMTYgY29udHJvbCBwb2ludHM6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+ID0gWworICAwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wNjY3LDx3YnIvPiAwLjx3YnIvPjI4NjQsPHdici8+IDAuPHdici8+MTMzMyw8d2JyLz4gMC48d2JyLz40MDA3LDx3YnIvPiAwLjx3YnIvPjIwMDAsPHdici8+IDAuPHdici8+NDg0NSw8d2JyLz4KKyAgMC48d2JyLz4yNjY3LDx3YnIvPiAwLjx3YnIvPjU1MzIsPHdici8+IDAuPHdici8+MzMzMyw8d2JyLz4gMC48d2JyLz42MTI1LDx3YnIvPiAwLjx3YnIvPjQwMDAsPHdici8+IDAuPHdici8+NjY1Miw8d2JyLz4gMC48d2JyLz40NjY3LDx3YnIvPiAwLjx3YnIvPjcxMzAsPHdici8+CisgIDAuPHdici8+NTMzMyw8d2JyLz4gMC48d2JyLz43NTY5LDx3YnIvPiAwLjx3YnIvPjYwMDAsPHdici8+IDAuPHdici8+Nzk3Nyw8d2JyLz4gMC48d2JyLz42NjY3LDx3YnIvPiAwLjx3YnIvPjgzNjAsPHdici8+IDAuPHdici8+NzMzMyw8d2JyLz4gMC48d2JyLz44NzIxLDx3YnIvPgorICAwLjx3YnIvPjgwMDAsPHdici8+IDAuPHdici8+OTA2Myw8d2JyLz4gMC48d2JyLz44NjY3LDx3YnIvPiAwLjx3YnIvPjkzODksPHdici8+IDAuPHdici8+OTMzMyw8d2JyLz4gMC48d2JyLz45NzAxLDx3YnIvPiAxLjx3YnIvPjAwMDAsPHdici8+IDEuPHdici8+MDAwMCBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0ic1JHQiB0b25lbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvc3JnYl90b25lbWFwLnBuZyIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIGdvb2QgcXVhbGl0eSBvZiBtYXBwaW5nLDx3YnIvPiBhdCBsZWFzdCAxMjggY29udHJvbCBwb2ludHMgYXJlCitwcmVmZXJyZWQuPHdici8+PC9wPgorPHA+QSB0eXBpY2FsIHVzZSBjYXNlIG9mIHRoaXMgd291bGQgYmUgYSBnYW1tYS0xLzx3YnIvPjIuPHdici8+MiBjdXJ2ZSw8d2JyLz4gd2l0aCBhcyBtYW55Citjb250cm9sIHBvaW50cyB1c2VkIGFzIGFyZSBhdmFpbGFibGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnRvbmVtYXAuY3VydmUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljIGFzIHRvbmVtYXBDdXJ2ZV08L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgLzx3YnIvPiBjb250cmFzdCAvPHdici8+IGdhbW1hIGN1cnZlIHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+CitpcyBDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdG9uZW1hcEN1cnZlIGNvbnNpc3Qgb2YgdGhyZWUgY3VydmVzIGZvciBlYWNoIG9mIHJlZCw8d2JyLz4gZ3JlZW4sPHdici8+IGFuZCBibHVlCitjaGFubmVscyByZXNwZWN0aXZlbHkuPHdici8+IFRoZSBmb2xsb3dpbmcgZXhhbXBsZSB1c2VzIHRoZSByZWQgY2hhbm5lbCBhcyBhbgorZXhhbXBsZS48d2JyLz4gVGhlIHNhbWUgbG9naWMgYXBwbGllcyB0byBncmVlbiBhbmQgYmx1ZSBjaGFubmVsLjx3YnIvPgorRWFjaCBjaGFubmVsJ3MgY3VydmUgaXMgZGVmaW5lZCBieSBhbiBhcnJheSBvZiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPmN1cnZlUmVkID0KKyAgWyBQMChpbiw8d2JyLz4gb3V0KSw8d2JyLz4gUDEoaW4sPHdici8+IG91dCksPHdici8+IFAyKGluLDx3YnIvPiBvdXQpLDx3YnIvPiBQMyhpbiw8d2JyLz4gb3V0KSw8d2JyLz4gLi4uLDx3YnIvPiBQTihpbiw8d2JyLz4gb3V0KSBdCisyICZsdDs9IE4gJmx0Oz0gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50czwvYT48L2NvZGU+PC9wcmU+Cis8cD5UaGVzZSBhcmUgc29ydGVkIGluIG9yZGVyIG9mIGluY3JlYXNpbmcgPGNvZGU+UGluPC9jb2RlPjsgaXQgaXMgYWx3YXlzCitndWFyYW50ZWVkIHRoYXQgaW5wdXQgdmFsdWVzIDAuPHdici8+MCBhbmQgMS48d2JyLz4wIGFyZSBpbmNsdWRlZCBpbiB0aGUgbGlzdCB0bworZGVmaW5lIGEgY29tcGxldGUgbWFwcGluZy48d2JyLz4gRm9yIGlucHV0IHZhbHVlcyBiZXR3ZWVuIGNvbnRyb2wgcG9pbnRzLDx3YnIvPgordGhlIGNhbWVyYSBkZXZpY2UgbXVzdCBsaW5lYXJseSBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHRoZSBjb250cm9sCitwb2ludHMuPHdici8+PC9wPgorPHA+RWFjaCBjdXJ2ZSBjYW4gaGF2ZSBhbiBpbmRlcGVuZGVudCBudW1iZXIgb2YgcG9pbnRzLDx3YnIvPiBhbmQgdGhlIG51bWJlcgorb2YgcG9pbnRzIGNhbiBiZSBsZXNzIHRoYW4gbWF4ICh0aGF0IGlzLDx3YnIvPiB0aGUgcmVxdWVzdCBkb2Vzbid0IGhhdmUgdG8KK2Fsd2F5cyBwcm92aWRlIGEgY3VydmUgd2l0aCBudW1iZXIgb2YgcG9pbnRzIGVxdWl2YWxlbnQgdG8KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHM8L2E+KS48d2JyLz48L3A+Cis8cD5BIGZldyBleGFtcGxlcyw8d2JyLz4gYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgZ3JhcGhpY2FsIG1hcHBpbmdzOyB0aGVzZQorb25seSBzcGVjaWZ5IHRoZSByZWQgY2hhbm5lbCBhbmQgdGhlIHByZWNpc2lvbiBpcyBsaW1pdGVkIHRvIDQKK2RpZ2l0cyw8d2JyLz4gZm9yIGNvbmNpc2VuZXNzLjx3YnIvPjwvcD4KKzxwPkxpbmVhciBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbICgwLDx3YnIvPiAwKSw8d2JyLz4gKDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wKSBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iTGluZWFyIG1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2xpbmVhcl90b25lbWFwLnBuZyIvPjwvcD4KKzxwPkludmVydCBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbICgwLDx3YnIvPiAxLjx3YnIvPjApLDx3YnIvPiAoMS48d2JyLz4wLDx3YnIvPiAwKSBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iSW52ZXJ0aW5nIG1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2ludmVyc2VfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5HYW1tYSAxLzx3YnIvPjIuPHdici8+MiBtYXBwaW5nLDx3YnIvPiB3aXRoIDE2IGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbCisgICgwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDAwMCksPHdici8+ICgwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+MjkyMCksPHdici8+ICgwLjx3YnIvPjEzMzMsPHdici8+IDAuPHdici8+NDAwMiksPHdici8+ICgwLjx3YnIvPjIwMDAsPHdici8+IDAuPHdici8+NDgxMiksPHdici8+CisgICgwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTQ4NCksPHdici8+ICgwLjx3YnIvPjMzMzMsPHdici8+IDAuPHdici8+NjA2OSksPHdici8+ICgwLjx3YnIvPjQwMDAsPHdici8+IDAuPHdici8+NjU5NCksPHdici8+ICgwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzA3MiksPHdici8+CisgICgwLjx3YnIvPjUzMzMsPHdici8+IDAuPHdici8+NzUxNSksPHdici8+ICgwLjx3YnIvPjYwMDAsPHdici8+IDAuPHdici8+NzkyOCksPHdici8+ICgwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODMxNyksPHdici8+ICgwLjx3YnIvPjczMzMsPHdici8+IDAuPHdici8+ODY4NSksPHdici8+CisgICgwLjx3YnIvPjgwMDAsPHdici8+IDAuPHdici8+OTAzNSksPHdici8+ICgwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM3MCksPHdici8+ICgwLjx3YnIvPjkzMzMsPHdici8+IDAuPHdici8+OTY5MSksPHdici8+ICgxLjx3YnIvPjAwMDAsPHdici8+IDEuPHdici8+MDAwMCkgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9IkdhbW1hID0gMS8yLjIgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2dhbW1hX3RvbmVtYXAucG5nIi8+PC9wPgorPHA+U3RhbmRhcmQgc1JHQiBnYW1tYSBtYXBwaW5nLDx3YnIvPiBwZXIgSUVDIDYxOTY2LTItMToxOTk5LDx3YnIvPiB3aXRoIDE2IGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbCisgICgwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDAwMCksPHdici8+ICgwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+Mjg2NCksPHdici8+ICgwLjx3YnIvPjEzMzMsPHdici8+IDAuPHdici8+NDAwNyksPHdici8+ICgwLjx3YnIvPjIwMDAsPHdici8+IDAuPHdici8+NDg0NSksPHdici8+CisgICgwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTUzMiksPHdici8+ICgwLjx3YnIvPjMzMzMsPHdici8+IDAuPHdici8+NjEyNSksPHdici8+ICgwLjx3YnIvPjQwMDAsPHdici8+IDAuPHdici8+NjY1MiksPHdici8+ICgwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzEzMCksPHdici8+CisgICgwLjx3YnIvPjUzMzMsPHdici8+IDAuPHdici8+NzU2OSksPHdici8+ICgwLjx3YnIvPjYwMDAsPHdici8+IDAuPHdici8+Nzk3NyksPHdici8+ICgwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODM2MCksPHdici8+ICgwLjx3YnIvPjczMzMsPHdici8+IDAuPHdici8+ODcyMSksPHdici8+CisgICgwLjx3YnIvPjgwMDAsPHdici8+IDAuPHdici8+OTA2MyksPHdici8+ICgwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM4OSksPHdici8+ICgwLjx3YnIvPjkzMzMsPHdici8+IDAuPHdici8+OTcwMSksPHdici8+ICgxLjx3YnIvPjAwMDAsPHdici8+IDEuPHdici8+MDAwMCkgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9InNSR0IgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3NyZ2JfdG9uZW1hcC5wbmciLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgZW50cnkgaXMgY3JlYXRlZCBieSB0aGUgZnJhbWV3b3JrIGZyb20gdGhlIGN1cnZlUmVkLDx3YnIvPiBjdXJ2ZUdyZWVuIGFuZAorY3VydmVCbHVlIGVudHJpZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnRvbmVtYXAubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT05UUkFTVF9DVVJWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSB0b25lIG1hcHBpbmcgY3VydmUgc3BlY2lmaWVkIGluCit0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPC9hPiogZW50cmllcy48d2JyLz48L3A+Cis8cD5BbGwgY29sb3IgZW5oYW5jZW1lbnQgYW5kIHRvbmVtYXBwaW5nIG11c3QgYmUgZGlzYWJsZWQsPHdici8+IGV4Y2VwdAorZm9yIGFwcGx5aW5nIHRoZSB0b25lbWFwcGluZyBjdXJ2ZSBzcGVjaWZpZWQgYnkKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTwvYT4uPHdici8+PC9wPgorPHA+TXVzdCBub3Qgc2xvdyBkb3duIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gcmF3CitzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFkdmFuY2VkIGdhbW1hIG1hcHBpbmcgYW5kIGNvbG9yIGVuaGFuY2VtZW50IG1heSBiZSBhcHBsaWVkLDx3YnIvPiB3aXRob3V0CityZWR1Y2luZyBmcmFtZSByYXRlIGNvbXBhcmVkIHRvIHJhdyBzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SGlnaC1xdWFsaXR5IGdhbW1hIG1hcHBpbmcgYW5kIGNvbG9yIGVuaGFuY2VtZW50IHdpbGwgYmUgYXBwbGllZCw8d2JyLz4gYXQKK3RoZSBjb3N0IG9mIHBvc3NpYmx5IHJlZHVjZWQgZnJhbWUgcmF0ZSBjb21wYXJlZCB0byByYXcgc2Vuc29yIG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5HQU1NQV9WQUxVRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSBnYW1tYSB2YWx1ZSBzcGVjaWZpZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5nYW1tYSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmdhbW1hPC9hPiB0byBwZWZvcm0KK3RvbmVtYXBwaW5nLjx3YnIvPjwvcD4KKzxwPkFsbCBjb2xvciBlbmhhbmNlbWVudCBhbmQgdG9uZW1hcHBpbmcgbXVzdCBiZSBkaXNhYmxlZCw8d2JyLz4gZXhjZXB0Citmb3IgYXBwbHlpbmcgdGhlIHRvbmVtYXBwaW5nIGN1cnZlIHNwZWNpZmllZCBieSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmdhbW1hIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Z2FtbWE8L2E+Ljx3YnIvPjwvcD4KKzxwPk11c3Qgbm90IHNsb3cgZG93biBmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHJhdyBzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBSRVNFVF9DVVJWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSBwcmVzZXQgdG9uZW1hcHBpbmcgY3VydmUgc3BlY2lmaWVkIGluCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLnByZXNldEN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+cHJlc2V0PHdici8+Q3VydmU8L2E+IHRvIHBlZm9ybSB0b25lbWFwcGluZy48d2JyLz48L3A+Cis8cD5BbGwgY29sb3IgZW5oYW5jZW1lbnQgYW5kIHRvbmVtYXBwaW5nIG11c3QgYmUgZGlzYWJsZWQsPHdici8+IGV4Y2VwdAorZm9yIGFwcGx5aW5nIHRoZSB0b25lbWFwcGluZyBjdXJ2ZSBzcGVjaWZpZWQgYnkKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAucHJlc2V0Q3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5wcmVzZXQ8d2JyLz5DdXJ2ZTwvYT4uPHdici8+PC9wPgorPHA+TXVzdCBub3Qgc2xvdyBkb3duIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gcmF3IHNlbnNvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+SGlnaC1sZXZlbCBnbG9iYWwgY29udHJhc3QvPHdici8+Z2FtbWEvPHdici8+dG9uZW1hcHBpbmcgY29udHJvbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5hdmFpbGFibGVUb25lTWFwTW9kZXMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5hdmFpbGFibGU8d2JyLz5Ub25lPHdici8+TWFwPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHN3aXRjaGluZyB0byBhbiBhcHBsaWNhdGlvbi1kZWZpbmVkIGNvbnRyYXN0IGN1cnZlIGJ5IHNldHRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IHRvIENPTlRSQVNUXzx3YnIvPkNVUlZFLDx3YnIvPiB0aGUgY3VydmUgaXMgZGVmaW5lZAorcGVyLWNoYW5uZWwgd2l0aCBhIHNldCBvZiA8Y29kZT4oaW4sPHdici8+IG91dCk8L2NvZGU+IHBvaW50cyB0aGF0IHNwZWNpZnkgdGhlCittYXBwaW5nIGZyb20gaW5wdXQgaGlnaC1iaXQtZGVwdGggcGl4ZWwgdmFsdWUgdG8gdGhlIG91dHB1dAorbG93LWJpdC1kZXB0aCB2YWx1ZS48d2JyLz4gIFNpbmNlIHRoZSBhY3R1YWwgcGl4ZWwgcmFuZ2VzIG9mIGJvdGggaW5wdXQKK2FuZCBvdXRwdXQgbWF5IGNoYW5nZSBkZXBlbmRpbmcgb24gdGhlIGNhbWVyYSBwaXBlbGluZSw8d2JyLz4gdGhlIHZhbHVlcworYXJlIHNwZWNpZmllZCBieSBub3JtYWxpemVkIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuPHdici8+PC9wPgorPHA+TW9yZS1jb21wbGV4IGNvbG9yIG1hcHBpbmcgb3BlcmF0aW9ucyBzdWNoIGFzIDNEIGNvbG9yIGxvb2stdXAKK3RhYmxlcyw8d2JyLz4gc2VsZWN0aXZlIGNocm9tYSBlbmhhbmNlbWVudCw8d2JyLz4gb3Igb3RoZXIgbm9uLWxpbmVhciBjb2xvcgordHJhbnNmb3JtcyB3aWxsIGJlIGRpc2FibGVkIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK0NPTlRSQVNUXzx3YnIvPkNVUlZFLjx3YnIvPjwvcD4KKzxwPldoZW4gdXNpbmcgZWl0aGVyIEZBU1Qgb3IgSElHSF88d2JyLz5RVUFMSVRZLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsCitlbWl0IGl0cyBvd24gdG9uZW1hcCBjdXJ2ZSBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8L2E+Ljx3YnIvPgorVGhlc2UgdmFsdWVzIGFyZSBhbHdheXMgYXZhaWxhYmxlLDx3YnIvPiBhbmQgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhlCithY3R1YWxseSB1c2VkIG5vbmxpbmVhci88d2JyLz5ub25nbG9iYWwgdHJhbnNmb3Jtcy48d2JyLz48L3A+Cis8cD5JZiBhIHJlcXVlc3QgaXMgc2VudCB3aXRoIENPTlRSQVNUXzx3YnIvPkNVUlZFIHdpdGggdGhlIGNhbWVyYSBkZXZpY2UncworcHJvdmlkZWQgY3VydmUgaW4gRkFTVCBvciBISUdIXzx3YnIvPlFVQUxJVFksPHdici8+IHRoZSBpbWFnZSdzIHRvbmVtYXAgd2lsbCBiZQorcm91Z2hseSB0aGUgc2FtZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC50b25lbWFwLmdhbW1hIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5nYW1tYQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgY3VydmUgdG8gdXNlIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK0dBTU1BXzx3YnIvPlZBTFVFPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHRvbmVtYXAgY3VydmUgd2lsbCBiZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmcgZm9ybXVsYToKKyogT1VUID0gcG93KElOLDx3YnIvPiAxLjx3YnIvPjAgLzx3YnIvPiBnYW1tYSkKK3doZXJlIElOIGFuZCBPVVQgaXMgdGhlIGlucHV0IHBpeGVsIHZhbHVlIHNjYWxlZCB0byByYW5nZSBbMC48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjBdLDx3YnIvPgorcG93IGlzIHRoZSBwb3dlciBmdW5jdGlvbiBhbmQgZ2FtbWEgaXMgdGhlIGdhbW1hIHZhbHVlIHNwZWNpZmllZCBieSB0aGlzCitrZXkuPHdici8+PC9wPgorPHA+VGhlIHNhbWUgY3VydmUgd2lsbCBiZSBhcHBsaWVkIHRvIGFsbCBjb2xvciBjaGFubmVscy48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2UKK21heSBjbGlwIHRoZSBpbnB1dCBnYW1tYSB2YWx1ZSB0byBpdHMgc3VwcG9ydGVkIHJhbmdlLjx3YnIvPiBUaGUgYWN0dWFsIGFwcGxpZWQKK3ZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgaW4gY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPgorPHA+VGhlIHZhbGlkIHJhbmdlIG9mIGdhbW1hIHZhbHVlIHZhcmllcyBvbiBkaWZmZXJlbnQgZGV2aWNlcyw8d2JyLz4gYnV0IHZhbHVlcword2l0aGluIFsxLjx3YnIvPjAsPHdici8+IDUuPHdici8+MF0gYXJlIGd1YXJhbnRlZWQgbm90IHRvIGJlIGNsaXBwZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+cHJlc2V0PHdici8+Q3VydmUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1JHQjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VG9uZW1hcHBpbmcgY3VydmUgaXMgZGVmaW5lZCBieSBzUkdCPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkVDNzA5PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ub25lbWFwcGluZyBjdXJ2ZSBpcyBkZWZpbmVkIGJ5IElUVS1SIEJULjx3YnIvPjcwOTwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRvbmVtYXBwaW5nIGN1cnZlIHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitQUkVTRVRfPHdici8+Q1VSVkU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdG9uZW1hcCBjdXJ2ZSB3aWxsIGJlIGRlZmluZWQgYnkgc3BlY2lmaWVkIHN0YW5kYXJkLjx3YnIvPjwvcD4KKzxwPnNSR0IgKGFwcHJveGltYXRlZCBieSAxNiBjb250cm9sIHBvaW50cyk6PC9wPgorPHA+PGltZyBhbHQ9InNSR0IgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3NyZ2JfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5SZWMuPHdici8+IDcwOSAoYXBwcm94aW1hdGVkIGJ5IDE2IGNvbnRyb2wgcG9pbnRzKTo8L3A+Cis8cD48aW1nIGFsdD0iUmVjLiA3MDkgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3JlYzcwOV90b25lbWFwLnBuZyIvPjwvcD4KKzxwPk5vdGUgdGhhdCBhYm92ZSBmaWd1cmVzIHNob3cgYSAxNiBjb250cm9sIHBvaW50cyBhcHByb3hpbWF0aW9uIG9mIHByZXNldAorY3VydmVzLjx3YnIvPiBDYW1lcmEgZGV2aWNlcyBtYXkgYXBwbHkgYSBkaWZmZXJlbnQgYXBwcm94aW1hdGlvbiB0byB0aGUgY3VydmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9sZWQiIGNsYXNzPSJzZWN0aW9uIj5sZWQ8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5sZWQudHJhbnNtaXQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZWQuPHdici8+dHJhbnNtaXQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW4gYXMgYm9vbGVhbl08L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGlzIExFRCBpcyBub21pbmFsbHkgdXNlZCB0byBpbmRpY2F0ZSB0byB0aGUgdXNlcgordGhhdCB0aGUgY2FtZXJhIGlzIHBvd2VyZWQgb24gYW5kIG1heSBiZSBzdHJlYW1pbmcgaW1hZ2VzIGJhY2sgdG8gdGhlCitBcHBsaWNhdGlvbiBQcm9jZXNzb3IuPHdici8+IEluIGNlcnRhaW4gcmFyZSBjaXJjdW1zdGFuY2VzLDx3YnIvPiB0aGUgT1MgbWF5CitkaXNhYmxlIHRoaXMgd2hlbiB2aWRlbyBpcyBwcm9jZXNzZWQgbG9jYWxseSBhbmQgbm90IHRyYW5zbWl0dGVkIHRvCithbnkgdW50cnVzdGVkIGFwcGxpY2F0aW9ucy48d2JyLz48L3A+Cis8cD5JbiBwYXJ0aWN1bGFyLDx3YnIvPiB0aGUgTEVEIDxlbT5tdXN0PC9lbT4gYWx3YXlzIGJlIG9uIHdoZW4gdGhlIGRhdGEgY291bGQgYmUKK3RyYW5zbWl0dGVkIG9mZiB0aGUgZGV2aWNlLjx3YnIvPiBUaGUgTEVEIDxlbT5zaG91bGQ8L2VtPiBhbHdheXMgYmUgb24gd2hlbmV2ZXIKK2RhdGEgaXMgc3RvcmVkIGxvY2FsbHkgb24gdGhlIGRldmljZS48d2JyLz48L3A+Cis8cD5UaGUgTEVEIDxlbT5tYXk8L2VtPiBiZSBvZmYgaWYgYSB0cnVzdGVkIGFwcGxpY2F0aW9uIGlzIHVzaW5nIHRoZSBkYXRhIHRoYXQKK2RvZXNuJ3QgdmlvbGF0ZSB0aGUgYWJvdmUgcnVsZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQubGVkLnRyYW5zbWl0Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVkLjx3YnIvPnRyYW5zbWl0CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbaGlkZGVuIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhpcyBMRUQgaXMgbm9taW5hbGx5IHVzZWQgdG8gaW5kaWNhdGUgdG8gdGhlIHVzZXIKK3RoYXQgdGhlIGNhbWVyYSBpcyBwb3dlcmVkIG9uIGFuZCBtYXkgYmUgc3RyZWFtaW5nIGltYWdlcyBiYWNrIHRvIHRoZQorQXBwbGljYXRpb24gUHJvY2Vzc29yLjx3YnIvPiBJbiBjZXJ0YWluIHJhcmUgY2lyY3Vtc3RhbmNlcyw8d2JyLz4gdGhlIE9TIG1heQorZGlzYWJsZSB0aGlzIHdoZW4gdmlkZW8gaXMgcHJvY2Vzc2VkIGxvY2FsbHkgYW5kIG5vdCB0cmFuc21pdHRlZCB0bworYW55IHVudHJ1c3RlZCBhcHBsaWNhdGlvbnMuPHdici8+PC9wPgorPHA+SW4gcGFydGljdWxhciw8d2JyLz4gdGhlIExFRCA8ZW0+bXVzdDwvZW0+IGFsd2F5cyBiZSBvbiB3aGVuIHRoZSBkYXRhIGNvdWxkIGJlCit0cmFuc21pdHRlZCBvZmYgdGhlIGRldmljZS48d2JyLz4gVGhlIExFRCA8ZW0+c2hvdWxkPC9lbT4gYWx3YXlzIGJlIG9uIHdoZW5ldmVyCitkYXRhIGlzIHN0b3JlZCBsb2NhbGx5IG9uIHRoZSBkZXZpY2UuPHdici8+PC9wPgorPHA+VGhlIExFRCA8ZW0+bWF5PC9lbT4gYmUgb2ZmIGlmIGEgdHJ1c3RlZCBhcHBsaWNhdGlvbiBpcyB1c2luZyB0aGUgZGF0YSB0aGF0Citkb2Vzbid0IHZpb2xhdGUgdGhlIGFib3ZlIHJ1bGVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZWQuYXZhaWxhYmxlTGVkcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlZC48d2JyLz5hdmFpbGFibGU8d2JyLz5MZWRzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbaGlkZGVuXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRSQU5TTUlUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZWQudHJhbnNtaXQiPmFuZHJvaWQuPHdici8+bGVkLjx3YnIvPnRyYW5zbWl0PC9hPiBjb250cm9sIGlzIHVzZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBsaXN0IG9mIGNhbWVyYSBMRURzIHRoYXQgYXJlIGF2YWlsYWJsZSBvbiB0aGlzIHN5c3RlbS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9pbmZvIiBjbGFzcz0ic2VjdGlvbiI+aW5mbzwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TElNSVRFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IGhhdmUgZW5vdWdoIGNhcGFiaWxpdGllcyB0byBxdWFsaWZ5IGFzIGEgPGNvZGU+RlVMTDwvY29kZT4gZGV2aWNlIG9yCitiZXR0ZXIuPHdici8+PC9wPgorPHA+T25seSB0aGUgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGxpc3RlZCBpbiB0aGUgPGNvZGU+TEVHQUNZPC9jb2RlPiBhbmQgPGNvZGU+TElNSVRFRDwvY29kZT4gdGFibGVzIGluIHRoZQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDYXB0dXJlU2Vzc2lvbiI+Y3JlYXRlQ2FwdHVyZVNlc3Npb248L2E+IGRvY3VtZW50YXRpb24gYXJlIGd1YXJhbnRlZWQgdG8gYmUgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKzxwPkFsbCA8Y29kZT5MSU1JVEVEPC9jb2RlPiBkZXZpY2VzIHN1cHBvcnQgdGhlIDxjb2RlPkJBQ0tXQVJEU188d2JyLz5DT01QQVRJQkxFPC9jb2RlPiBjYXBhYmlsaXR5LDx3YnIvPiBpbmRpY2F0aW5nIGJhc2ljCitzdXBwb3J0IGZvciBjb2xvciBpbWFnZSBjYXB0dXJlLjx3YnIvPiBUaGUgb25seSBleGNlcHRpb24gaXMgdGhhdCB0aGUgZGV2aWNlIG1heQorYWx0ZXJuYXRpdmVseSBzdXBwb3J0IG9ubHkgdGhlIDxjb2RlPkRFUFRIXzx3YnIvPk9VVFBVVDwvY29kZT4gY2FwYWJpbGl0eSw8d2JyLz4gaWYgaXQgY2FuIG9ubHkgb3V0cHV0IGRlcHRoCittZWFzdXJlbWVudHMgYW5kIG5vdCBjb2xvciBpbWFnZXMuPHdici8+PC9wPgorPHA+PGNvZGU+TElNSVRFRDwvY29kZT4gZGV2aWNlcyBhbmQgYWJvdmUgcmVxdWlyZSB0aGUgdXNlIG9mIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+Cit0byBsb2NrIGV4cG9zdXJlIG1ldGVyaW5nIChhbmQgY2FsY3VsYXRlIGZsYXNoIHBvd2VyLDx3YnIvPiBmb3IgY2FtZXJhcyB3aXRoIGZsYXNoKSBiZWZvcmUKK2NhcHR1cmluZyBhIGhpZ2gtcXVhbGl0eSBzdGlsbCBpbWFnZS48d2JyLz48L3A+Cis8cD5BIDxjb2RlPkxJTUlURUQ8L2NvZGU+IGRldmljZSB0aGF0IG9ubHkgbGlzdHMgdGhlIDxjb2RlPkJBQ0tXQVJEU188d2JyLz5DT01QQVRJQkxFPC9jb2RlPiBjYXBhYmlsaXR5IGlzIG9ubHkKK3JlcXVpcmVkIHRvIHN1cHBvcnQgZnVsbC1hdXRvbWF0aWMgb3BlcmF0aW9uIGFuZCBwb3N0LXByb2Nlc3NpbmcgKDxjb2RlPk9GRjwvY29kZT4gaXMgbm90CitzdXBwb3J0ZWQgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+LDx3YnIvPiBvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4pPC9wPgorPHA+QWRkaXRpb25hbCBjYXBhYmlsaXRpZXMgbWF5IG9wdGlvbmFsbHkgYmUgc3VwcG9ydGVkIGJ5IGEgPGNvZGU+TElNSVRFRDwvY29kZT4tbGV2ZWwgZGV2aWNlLDx3YnIvPiBhbmQKK2NhbiBiZSBjaGVja2VkIGZvciBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZVTEw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgY2FtZXJhIGRldmljZSBpcyBjYXBhYmxlIG9mIHN1cHBvcnRpbmcgYWR2YW5jZWQgaW1hZ2luZyBhcHBsaWNhdGlvbnMuPHdici8+PC9wPgorPHA+VGhlIHN0cmVhbSBjb25maWd1cmF0aW9ucyBsaXN0ZWQgaW4gdGhlIDxjb2RlPkZVTEw8L2NvZGU+LDx3YnIvPiA8Y29kZT5MRUdBQ1k8L2NvZGU+IGFuZCA8Y29kZT5MSU1JVEVEPC9jb2RlPiB0YWJsZXMgaW4gdGhlCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNhcHR1cmVTZXNzaW9uIj5jcmVhdGVDYXB0dXJlU2Vzc2lvbjwvYT4gZG9jdW1lbnRhdGlvbiBhcmUgZ3VhcmFudGVlZCB0byBiZSBzdXBwb3J0ZWQuPHdici8+PC9wPgorPHA+QSA8Y29kZT5GVUxMPC9jb2RlPiBkZXZpY2Ugd2lsbCBzdXBwb3J0IGJlbG93IGNhcGFiaWxpdGllczo8L3A+Cis8dWw+Cis8bGk+PGNvZGU+QlVSU1RfPHdici8+Q0FQVFVSRTwvY29kZT4gY2FwYWJpbGl0eSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPiBjb250YWlucworICA8Y29kZT5CVVJTVF88d2JyLz5DQVBUVVJFPC9jb2RlPik8L2xpPgorPGxpPlBlciBmcmFtZSBjb250cm9sICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3luYy5tYXhMYXRlbmN5Ij5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+bWF4PHdici8+TGF0ZW5jeTwvYT4gPGNvZGU+PT08L2NvZGU+IFBFUl88d2JyLz5GUkFNRV88d2JyLz5DT05UUk9MKTwvbGk+Cis8bGk+TWFudWFsIHNlbnNvciBjb250cm9sICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zIDxjb2RlPk1BTlVBTF88d2JyLz5TRU5TT1I8L2NvZGU+KTwvbGk+Cis8bGk+TWFudWFsIHBvc3QtcHJvY2Vzc2luZyBjb250cm9sICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zCisgIDxjb2RlPk1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkc8L2NvZGU+KTwvbGk+Cis8bGk+VGhlIHJlcXVpcmVkIGV4cG9zdXJlIHRpbWUgcmFuZ2UgZGVmaW5lZCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPHdici8+UmFuZ2U8L2E+PC9saT4KKzxsaT5UaGUgcmVxdWlyZWQgbWF4RnJhbWVEdXJhdGlvbiBkZWZpbmVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5tYXhGcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPm1heDx3YnIvPkZyYW1lPHdici8+RHVyYXRpb248L2E+PC9saT4KKzwvdWw+Cis8cD5Ob3RlOgorUHJlLUFQSSBsZXZlbCAyMyw8d2JyLz4gRlVMTCBkZXZpY2VzIGFsc28gc3VwcG9ydGVkIGFyYml0cmFyeSBjcm9wcGluZyByZWdpb24KKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmNyb3BwaW5nVHlwZSI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcHBpbmc8d2JyLz5UeXBlPC9hPiA8Y29kZT49PSBGUkVFRk9STTwvY29kZT4pOyB0aGlzIHJlcXVpcmVtZW50IHdhcyByZWxheGVkIGluIEFQSSBsZXZlbAorMjMsPHdici8+IGFuZCA8Y29kZT5GVUxMPC9jb2RlPiBkZXZpY2VzIG1heSBvbmx5IHN1cHBvcnQgPGNvZGU+Q0VOVEVSRUQ8L2NvZGU+IGNyb3BwaW5nLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkxFR0FDWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyBjYW1lcmEgZGV2aWNlIGlzIHJ1bm5pbmcgaW4gYmFja3dhcmQgY29tcGF0aWJpbGl0eSBtb2RlLjx3YnIvPjwvcD4KKzxwPk9ubHkgdGhlIHN0cmVhbSBjb25maWd1cmF0aW9ucyBsaXN0ZWQgaW4gdGhlIDxjb2RlPkxFR0FDWTwvY29kZT4gdGFibGUgaW4gdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ2FwdHVyZVNlc3Npb24iPmNyZWF0ZUNhcHR1cmVTZXNzaW9uPC9hPgorZG9jdW1lbnRhdGlvbiBhcmUgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKzxwPkEgPGNvZGU+TEVHQUNZPC9jb2RlPiBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBwZXItZnJhbWUgY29udHJvbCw8d2JyLz4gbWFudWFsIHNlbnNvciBjb250cm9sLDx3YnIvPiBtYW51YWwKK3Bvc3QtcHJvY2Vzc2luZyw8d2JyLz4gYXJiaXRyYXJ5IGNyb3BwaW5nIHJlZ2lvbnMsPHdici8+IGFuZCBoYXMgcmVsYXhlZCBwZXJmb3JtYW5jZSBjb25zdHJhaW50cy48d2JyLz4KK05vIGFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzIGJleW9uZCA8Y29kZT5CQUNLV0FSRF88d2JyLz5DT01QQVRJQkxFPC9jb2RlPiB3aWxsIGV2ZXIgYmUgbGlzdGVkIGJ5IGEKKzxjb2RlPkxFR0FDWTwvY29kZT4gZGV2aWNlIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4uPHdici8+PC9wPgorPHA+SW4gYWRkaXRpb24sPHdici8+IHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPiBpcyBub3QgZnVuY3Rpb25hbCBvbiA8Y29kZT5MRUdBQ1k8L2NvZGU+CitkZXZpY2VzLjx3YnIvPiBJbnN0ZWFkLDx3YnIvPiBldmVyeSByZXF1ZXN0IHRoYXQgaW5jbHVkZXMgYSBKUEVHLWZvcm1hdCBvdXRwdXQgdGFyZ2V0IGlzIHRyZWF0ZWQKK2FzIHRyaWdnZXJpbmcgYSBzdGlsbCBjYXB0dXJlLDx3YnIvPiBpbnRlcm5hbGx5IGV4ZWN1dGluZyBhIHByZWNhcHR1cmUgdHJpZ2dlci48d2JyLz4gIFRoaXMgbWF5CitmaXJlIHRoZSBmbGFzaCBmb3IgZmxhc2ggcG93ZXIgbWV0ZXJpbmcgZHVyaW5nIHByZWNhcHR1cmUsPHdici8+IGFuZCB0aGVuIGZpcmUgdGhlIGZsYXNoCitmb3IgdGhlIGZpbmFsIGNhcHR1cmUsPHdici8+IGlmIGEgZmxhc2ggaXMgYXZhaWxhYmxlIG9uIHRoZSBkZXZpY2UgYW5kIHRoZSBBRSBtb2RlIGlzIHNldCB0bworZW5hYmxlIHRoZSBmbGFzaC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj4zPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIGNhbWVyYSBkZXZpY2UgaXMgY2FwYWJsZSBvZiBZVVYgcmVwcm9jZXNzaW5nIGFuZCBSQVcgZGF0YSBjYXB0dXJlLDx3YnIvPiBpbiBhZGRpdGlvbiB0bworRlVMTC1sZXZlbCBjYXBhYmlsaXRpZXMuPHdici8+PC9wPgorPHA+VGhlIHN0cmVhbSBjb25maWd1cmF0aW9ucyBsaXN0ZWQgaW4gdGhlIDxjb2RlPkxFVkVMXzx3YnIvPjM8L2NvZGU+LDx3YnIvPiA8Y29kZT5SQVc8L2NvZGU+LDx3YnIvPiA8Y29kZT5GVUxMPC9jb2RlPiw8d2JyLz4gPGNvZGU+TEVHQUNZPC9jb2RlPiBhbmQKKzxjb2RlPkxJTUlURUQ8L2NvZGU+IHRhYmxlcyBpbiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDYXB0dXJlU2Vzc2lvbiI+Y3JlYXRlQ2FwdHVyZVNlc3Npb248L2E+Citkb2N1bWVudGF0aW9uIGFyZSBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZC48d2JyLz48L3A+Cis8cD5UaGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzIGFyZSBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZDo8L3A+Cis8dWw+Cis8bGk+PGNvZGU+WVVWXzx3YnIvPlJFUFJPQ0VTU0lORzwvY29kZT4gY2FwYWJpbGl0eSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPiBjb250YWlucworICA8Y29kZT5ZVVZfPHdici8+UkVQUk9DRVNTSU5HPC9jb2RlPik8L2xpPgorPGxpPjxjb2RlPlJBVzwvY29kZT4gY2FwYWJpbGl0eSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPiBjb250YWlucworICA8Y29kZT5SQVc8L2NvZGU+KTwvbGk+Cis8L3VsPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+R2VuZXJhbGx5IGNsYXNzaWZpZXMgdGhlIG92ZXJhbGwgc2V0IG9mIHRoZSBjYW1lcmEgZGV2aWNlIGZ1bmN0aW9uYWxpdHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHN1cHBvcnRlZCBoYXJkd2FyZSBsZXZlbCBpcyBhIGhpZ2gtbGV2ZWwgZGVzY3JpcHRpb24gb2YgdGhlIGNhbWVyYSBkZXZpY2UncworY2FwYWJpbGl0aWVzLDx3YnIvPiBzdW1tYXJpemluZyBzZXZlcmFsIGNhcGFiaWxpdGllcyBpbnRvIG9uZSBmaWVsZC48d2JyLz4gIEVhY2ggbGV2ZWwgYWRkcyBhZGRpdGlvbmFsCitmZWF0dXJlcyB0byB0aGUgcHJldmlvdXMgb25lLDx3YnIvPiBhbmQgaXMgYWx3YXlzIGEgc3RyaWN0IHN1cGVyc2V0IG9mIHRoZSBwcmV2aW91cyBsZXZlbC48d2JyLz4KK1RoZSBvcmRlcmluZyBpcyA8Y29kZT5MRUdBQ1kgJmx0OyBMSU1JVEVEICZsdDsgRlVMTCAmbHQ7IExFVkVMXzx3YnIvPjM8L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPlN0YXJ0aW5nIGZyb20gPGNvZGU+TEVWRUxfPHdici8+MzwvY29kZT4sPHdici8+IHRoZSBsZXZlbCBlbnVtZXJhdGlvbnMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgaW4gaW5jcmVhc2luZworbnVtZXJpY2FsIHZhbHVlIGFzIHdlbGwuPHdici8+IFRvIGNoZWNrIGlmIGEgZ2l2ZW4gZGV2aWNlIGlzIGF0IGxlYXN0IGF0IGEgZ2l2ZW4gaGFyZHdhcmUgbGV2ZWwsPHdici8+Cit0aGUgZm9sbG93aW5nIGNvZGUgc25pcHBldCBjYW4gYmUgdXNlZDo8L3A+Cis8cHJlPjxjb2RlPi8vPHdici8+IFJldHVybnMgdHJ1ZSBpZiB0aGUgZGV2aWNlIHN1cHBvcnRzIHRoZSByZXF1aXJlZCBoYXJkd2FyZSBsZXZlbCw8d2JyLz4gb3IgYmV0dGVyLjx3YnIvPgorYm9vbGVhbiBpc0hhcmR3YXJlTGV2ZWxTdXBwb3J0ZWQoQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzIGMsPHdici8+IGludCByZXF1aXJlZExldmVsKSB7CisgICAgaW50IGRldmljZUxldmVsID0gYy48d2JyLz5nZXQoQ2FtZXJhPHdici8+Q2hhcmFjdGVyaXN0aWNzLjx3YnIvPklORk9fPHdici8+U1VQUE9SVEVEXzx3YnIvPkhBUkRXQVJFXzx3YnIvPkxFVkVMKTsKKyAgICBpZiAoZGV2aWNlTGV2ZWwgPT0gQ2FtZXJhPHdici8+Q2hhcmFjdGVyaXN0aWNzLjx3YnIvPklORk9fPHdici8+U1VQUE9SVEVEXzx3YnIvPkhBUkRXQVJFXzx3YnIvPkxFVkVMXzx3YnIvPkxFR0FDWSkgeworICAgICAgICByZXR1cm4gcmVxdWlyZWRMZXZlbCA9PSBkZXZpY2VMZXZlbDsKKyAgICB9CisgICAgLy88d2JyLz4gZGV2aWNlTGV2ZWwgaXMgbm90IExFR0FDWSw8d2JyLz4gY2FuIHVzZSBudW1lcmljYWwgc29ydAorICAgIHJldHVybiByZXF1aXJlZExldmVsICZsdDs9IGRldmljZUxldmVsOworfQorPC9jb2RlPjwvcHJlPgorPHA+QXQgYSBoaWdoIGxldmVsLDx3YnIvPiB0aGUgbGV2ZWxzIGFyZTo8L3A+Cis8dWw+Cis8bGk+PGNvZGU+TEVHQUNZPC9jb2RlPiBkZXZpY2VzIG9wZXJhdGUgaW4gYSBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBtb2RlIGZvciBvbGRlcgorICBBbmRyb2lkIGRldmljZXMsPHdici8+IGFuZCBoYXZlIHZlcnkgbGltaXRlZCBjYXBhYmlsaXRpZXMuPHdici8+PC9saT4KKzxsaT48Y29kZT5MSU1JVEVEPC9jb2RlPiBkZXZpY2VzIHJlcHJlc2VudCB0aGUKKyAgYmFzZWxpbmUgZmVhdHVyZSBzZXQsPHdici8+IGFuZCBtYXkgYWxzbyBpbmNsdWRlIGFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzIHRoYXQgYXJlCisgIHN1YnNldHMgb2YgPGNvZGU+RlVMTDwvY29kZT4uPHdici8+PC9saT4KKzxsaT48Y29kZT5GVUxMPC9jb2RlPiBkZXZpY2VzIGFkZGl0aW9uYWxseSBzdXBwb3J0IHBlci1mcmFtZSBtYW51YWwgY29udHJvbCBvZiBzZW5zb3IsPHdici8+IGZsYXNoLDx3YnIvPiBsZW5zIGFuZAorICBwb3N0LXByb2Nlc3Npbmcgc2V0dGluZ3MsPHdici8+IGFuZCBpbWFnZSBjYXB0dXJlIGF0IGEgaGlnaCByYXRlLjx3YnIvPjwvbGk+Cis8bGk+PGNvZGU+TEVWRUxfPHdici8+MzwvY29kZT4gZGV2aWNlcyBhZGRpdGlvbmFsbHkgc3VwcG9ydCBZVVYgcmVwcm9jZXNzaW5nIGFuZCBSQVcgaW1hZ2UgY2FwdHVyZSw8d2JyLz4gYWxvbmcKKyAgd2l0aCBhZGRpdGlvbmFsIG91dHB1dCBzdHJlYW0gY29uZmlndXJhdGlvbnMuPHdici8+PC9saT4KKzwvdWw+Cis8cD5TZWUgdGhlIGluZGl2aWR1YWwgbGV2ZWwgZW51bXMgZm9yIGZ1bGwgZGVzY3JpcHRpb25zIG9mIHRoZSBzdXBwb3J0ZWQgY2FwYWJpbGl0aWVzLjx3YnIvPiAgVGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGVudHJ5IGRlc2NyaWJlcyB0aGUgZGV2aWNlJ3MgY2FwYWJpbGl0aWVzIGF0IGEKK2ZpbmVyLWdyYWluIGxldmVsLDx3YnIvPiBpZiBuZWVkZWQuPHdici8+IEluIGFkZGl0aW9uLDx3YnIvPiBtYW55IGNvbnRyb2xzIGhhdmUgdGhlaXIgYXZhaWxhYmxlIHNldHRpbmdzIG9yCityYW5nZXMgZGVmaW5lZCBpbiBpbmRpdmlkdWFsIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzLmh0bWwiPkNhbWVyYUNoYXJhY3RlcmlzdGljczwvYT4gZW50cmllcy48d2JyLz48L3A+Cis8cD5Tb21lIGZlYXR1cmVzIGFyZSBub3QgcGFydCBvZiBhbnkgcGFydGljdWxhciBoYXJkd2FyZSBsZXZlbCBvciBjYXBhYmlsaXR5IGFuZCBtdXN0IGJlCitxdWVyaWVkIHNlcGFyYXRlbHkuPHdici8+IFRoZXNlIGluY2x1ZGU6PC9wPgorPHVsPgorPGxpPkNhbGlicmF0ZWQgdGltZXN0YW1wcyAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnRpbWVzdGFtcFNvdXJjZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz50aW1lc3RhbXA8d2JyLz5Tb3VyY2U8L2E+IDxjb2RlPj09PC9jb2RlPiBSRUFMVElNRSk8L2xpPgorPGxpPlByZWNpc2lvbiBsZW5zIGNvbnRyb2wgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uZm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPHdici8+Q2FsaWJyYXRpb248L2E+IDxjb2RlPj09PC9jb2RlPiBDQUxJQlJBVEVEKTwvbGk+Cis8bGk+RmFjZSBkZXRlY3Rpb24gKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlRmFjZURldGVjdE1vZGVzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5GYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZXM8L2E+KTwvbGk+Cis8bGk+T3B0aWNhbCBvciBlbGVjdHJpY2FsIGltYWdlIHN0YWJpbGl6YXRpb24KKyAgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlT3B0aWNhbFN0YWJpbGl6YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPC9hPiw8d2JyLz4KKyAgIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVZpZGVvU3RhYmlsaXphdGlvbk1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+VmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZXM8L2E+KTwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgY2FtZXJhIDMgSEFMIGRldmljZSBjYW4gaW1wbGVtZW50IG9uZSBvZiB0aHJlZSBwb3NzaWJsZSBvcGVyYXRpb25hbCBtb2RlczsgTElNSVRFRCw8d2JyLz4KK0ZVTEwsPHdici8+IGFuZCBMRVZFTF88d2JyLz4zLjx3YnIvPjwvcD4KKzxwPkZVTEwgc3VwcG9ydCBvciBiZXR0ZXIgaXMgZXhwZWN0ZWQgZnJvbSBuZXcgaGlnaGVyLWVuZCBkZXZpY2VzLjx3YnIvPiBMaW1pdGVkCittb2RlIGhhcyBoYXJkd2FyZSByZXF1aXJlbWVudHMgcm91Z2hseSBpbiBsaW5lIHdpdGggdGhvc2UgZm9yIGEgY2FtZXJhIEhBTCBkZXZpY2UgdjEKK2ltcGxlbWVudGF0aW9uLDx3YnIvPiBhbmQgaXMgZXhwZWN0ZWQgZnJvbSBvbGRlciBvciBpbmV4cGVuc2l2ZSBkZXZpY2VzLjx3YnIvPiBFYWNoIGxldmVsIGlzIGEgc3RyaWN0CitzdXBlcnNldCBvZiB0aGUgcHJldmlvdXMgbGV2ZWwsPHdici8+IGFuZCB0aGV5IHNoYXJlIHRoZSBzYW1lIGVzc2VudGlhbCBvcGVyYXRpb25hbCBmbG93Ljx3YnIvPjwvcD4KKzxwPkZvciBmdWxsIGRldGFpbHMgcmVmZXIgdG8gIlMzLjx3YnIvPiBPcGVyYXRpb25hbCBNb2RlcyIgaW4gY2FtZXJhMy48d2JyLz5oPC9wPgorPHA+Q2FtZXJhIEhBTDMrIG11c3Qgbm90IGltcGxlbWVudCBMRUdBQ1kgbW9kZS48d2JyLz4gSXQgaXMgdGhlcmUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGluCit0aGUgPGNvZGU+YW5kcm9pZC48d2JyLz5oYXJkd2FyZS48d2JyLz5jYW1lcmEyPC9jb2RlPiB1c2VyLWZhY2luZyBBUEkgb25seSBvbiBIQUx2MSBkZXZpY2VzLDx3YnIvPiBhbmQgaXMgaW1wbGVtZW50ZWQKK2J5IHRoZSBjYW1lcmEgZnJhbWV3b3JrIGNvZGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fYmxhY2tMZXZlbCIgY2xhc3M9InNlY3Rpb24iPmJsYWNrTGV2ZWw8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5ibGFja0xldmVsLmxvY2siPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5ibGFjazx3YnIvPkxldmVsLjx3YnIvPmxvY2sKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGJsYWNrLWxldmVsIGNvbXBlbnNhdGlvbiBpcyBsb2NrZWQKK3RvIGl0cyBjdXJyZW50IHZhbHVlcyw8d2JyLz4gb3IgaXMgZnJlZSB0byB2YXJ5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfSEFMMiI+SEFMMjwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IChPTiksPHdici8+IHRoZSB2YWx1ZXMgdXNlZCBmb3IgYmxhY2stbGV2ZWwKK2NvbXBlbnNhdGlvbiB3aWxsIG5vdCBjaGFuZ2UgdW50aWwgdGhlIGxvY2sgaXMgc2V0IHRvCis8Y29kZT5mYWxzZTwvY29kZT4gKE9GRikuPHdici8+PC9wPgorPHA+U2luY2UgY2hhbmdlcyB0byBjZXJ0YWluIGNhcHR1cmUgcGFyYW1ldGVycyAoc3VjaCBhcworZXhwb3N1cmUgdGltZSkgbWF5IHJlcXVpcmUgcmVzZXR0aW5nIG9mIGJsYWNrIGxldmVsCitjb21wZW5zYXRpb24sPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG11c3QgcmVwb3J0IHdoZXRoZXIgc2V0dGluZwordGhlIGJsYWNrIGxldmVsIGxvY2sgd2FzIHN1Y2Nlc3NmdWwgaW4gdGhlIG91dHB1dCByZXN1bHQKK21ldGFkYXRhLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiBhIHNlcXVlbmNlIG9mIHJlcXVlc3RzIGlzIGFzIGZvbGxvd3M6PC9wPgorPHVsPgorPGxpPlJlcXVlc3QgMTogRXhwb3N1cmUgPSAxMG1zLDx3YnIvPiBCbGFjayBsZXZlbCBsb2NrID0gT0ZGPC9saT4KKzxsaT5SZXF1ZXN0IDI6IEV4cG9zdXJlID0gMTBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzxsaT5SZXF1ZXN0IDM6IEV4cG9zdXJlID0gMTBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzxsaT5SZXF1ZXN0IDQ6IEV4cG9zdXJlID0gMjBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzxsaT5SZXF1ZXN0IDU6IEV4cG9zdXJlID0gMjBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzxsaT5SZXF1ZXN0IDY6IEV4cG9zdXJlID0gMjBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzwvdWw+Cis8cD5BbmQgdGhlIGV4cG9zdXJlIGNoYW5nZSBpbiBSZXF1ZXN0IDQgcmVxdWlyZXMgdGhlIGNhbWVyYQorZGV2aWNlIHRvIHJlc2V0IHRoZSBibGFjayBsZXZlbCBvZmZzZXRzLDx3YnIvPiB0aGVuIHRoZSBvdXRwdXQKK3Jlc3VsdCBtZXRhZGF0YSBpcyBleHBlY3RlZCB0byBiZTo8L3A+Cis8dWw+Cis8bGk+UmVzdWx0IDE6IEV4cG9zdXJlID0gMTBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9GRjwvbGk+Cis8bGk+UmVzdWx0IDI6IEV4cG9zdXJlID0gMTBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzxsaT5SZXN1bHQgMzogRXhwb3N1cmUgPSAxMG1zLDx3YnIvPiBCbGFjayBsZXZlbCBsb2NrID0gT048L2xpPgorPGxpPlJlc3VsdCA0OiBFeHBvc3VyZSA9IDIwbXMsPHdici8+IEJsYWNrIGxldmVsIGxvY2sgPSBPRkY8L2xpPgorPGxpPlJlc3VsdCA1OiBFeHBvc3VyZSA9IDIwbXMsPHdici8+IEJsYWNrIGxldmVsIGxvY2sgPSBPTjwvbGk+Cis8bGk+UmVzdWx0IDY6IEV4cG9zdXJlID0gMjBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzwvdWw+Cis8cD5UaGlzIGluZGljYXRlcyB0byB0aGUgYXBwbGljYXRpb24gdGhhdCBvbiBmcmFtZSA0LDx3YnIvPiBibGFjaworbGV2ZWxzIHdlcmUgcmVzZXQgZHVlIHRvIGV4cG9zdXJlIHZhbHVlIGNoYW5nZXMsPHdici8+IGFuZCBwaXhlbAordmFsdWVzIG1heSBub3QgYmUgY29uc2lzdGVudCBhY3Jvc3MgY2FwdHVyZXMuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBtYWludGFpbiB0aGUgbG9jayB0byB0aGUgZXh0ZW50Citwb3NzaWJsZSw8d2JyLz4gb25seSBvdmVycmlkaW5nIHRoZSBsb2NrIHRvIE9GRiB3aGVuIGNoYW5nZXMgdG8KK290aGVyIHJlcXVlc3QgcGFyYW1ldGVycyByZXF1aXJlIGEgYmxhY2sgbGV2ZWwgcmVjYWxjdWxhdGlvbgorb3IgcmVzZXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBmb3Igc29tZSByZWFzb24gYmxhY2sgbGV2ZWwgbG9ja2luZyBpcyBubyBsb25nZXIgcG9zc2libGUKKyhmb3IgZXhhbXBsZSw8d2JyLz4gdGhlIGFuYWxvZyBnYWluIGhhcyBjaGFuZ2VkLDx3YnIvPiB3aGljaCBmb3JjZXMKK2JsYWNrIGxldmVsIG9mZnNldHMgdG8gYmUgcmVjYWxjdWxhdGVkKSw8d2JyLz4gdGhlbiB0aGUgSEFMIG11c3QKK292ZXJyaWRlIHRoaXMgcmVxdWVzdCAoYW5kIGl0IG11c3QgcmVwb3J0ICdPRkYnIHdoZW4gdGhpcworZG9lcyBoYXBwZW4pIHVudGlsIHRoZSBuZXh0IGNhcHR1cmUgZm9yIHdoaWNoIGxvY2tpbmcgaXMKK3Bvc3NpYmxlIGFnYWluLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmJsYWNrTGV2ZWwubG9jayI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmJsYWNrPHdici8+TGV2ZWwuPHdici8+bG9jaworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgYmxhY2stbGV2ZWwgY29tcGVuc2F0aW9uIGlzIGxvY2tlZAordG8gaXRzIGN1cnJlbnQgdmFsdWVzLDx3YnIvPiBvciBpcyBmcmVlIHRvIHZhcnkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19IQUwyIj5IQUwyPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB0aGUgYmxhY2sgbGV2ZWwgb2Zmc2V0IHdhcyBsb2NrZWQgZm9yIHRoaXMgZnJhbWUuPHdici8+ICBTaG91bGQgYmUKK09OIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmJsYWNrTGV2ZWwubG9jayI+YW5kcm9pZC48d2JyLz5ibGFjazx3YnIvPkxldmVsLjx3YnIvPmxvY2s8L2E+IHdhcyBPTiBpbiB0aGUgY2FwdHVyZSByZXF1ZXN0LDx3YnIvPiB1bmxlc3MKK2EgY2hhbmdlIGluIG90aGVyIGNhcHR1cmUgc2V0dGluZ3MgZm9yY2VkIHRoZSBjYW1lcmEgZGV2aWNlIHRvCitwZXJmb3JtIGEgYmxhY2sgbGV2ZWwgcmVzZXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBmb3Igc29tZSByZWFzb24gYmxhY2sgbGV2ZWwgbG9ja2luZyBpcyBubyBsb25nZXIgcG9zc2libGUKKyhmb3IgZXhhbXBsZSw8d2JyLz4gdGhlIGFuYWxvZyBnYWluIGhhcyBjaGFuZ2VkLDx3YnIvPiB3aGljaCBmb3JjZXMKK2JsYWNrIGxldmVsIG9mZnNldHMgdG8gYmUgcmVjYWxjdWxhdGVkKSw8d2JyLz4gdGhlbiB0aGUgSEFMIG11c3QKK292ZXJyaWRlIHRoaXMgcmVxdWVzdCAoYW5kIGl0IG11c3QgcmVwb3J0ICdPRkYnIHdoZW4gdGhpcworZG9lcyBoYXBwZW4pIHVudGlsIHRoZSBuZXh0IGNhcHR1cmUgZm9yIHdoaWNoIGxvY2tpbmcgaXMKK3Bvc3NpYmxlIGFnYWluLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX3N5bmMiIGNsYXNzPSJzZWN0aW9uIj5zeW5jPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN5bmMuZnJhbWVOdW1iZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPmZyYW1lPHdici8+TnVtYmVyCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT05WRVJHSU5HPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4tMTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGN1cnJlbnQgcmVzdWx0IGlzIG5vdCB5ZXQgZnVsbHkgc3luY2hyb25pemVkIHRvIGFueSByZXF1ZXN0Ljx3YnIvPjwvcD4KKzxwPlN5bmNocm9uaXphdGlvbiBpcyBpbiBwcm9ncmVzcyw8d2JyLz4gYW5kIHJlYWRpbmcgbWV0YWRhdGEgZnJvbSB0aGlzCityZXN1bHQgbWF5IGluY2x1ZGUgYSBtaXggb2YgZGF0YSB0aGF0IGhhdmUgdGFrZW4gZWZmZWN0IHNpbmNlIHRoZQorbGFzdCBzeW5jaHJvbml6YXRpb24gdGltZS48d2JyLz48L3A+Cis8cD5JbiBzb21lIGZ1dHVyZSByZXN1bHQsPHdici8+IHdpdGhpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3luYy5tYXhMYXRlbmN5Ij5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+bWF4PHdici8+TGF0ZW5jeTwvYT4gZnJhbWVzLDx3YnIvPgordGhpcyB2YWx1ZSB3aWxsIHVwZGF0ZSB0byB0aGUgYWN0dWFsIGZyYW1lIG51bWJlciBmcmFtZSBudW1iZXIKK3RoZSByZXN1bHQgaXMgZ3VhcmFudGVlZCB0byBiZSBzeW5jaHJvbml6ZWQgdG8gKGFzIGxvbmcgYXMgdGhlCityZXF1ZXN0IHNldHRpbmdzIHJlbWFpbiBjb25zdGFudCkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VU5LTk9XTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+LTI8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjdXJyZW50IHJlc3VsdCdzIHN5bmNocm9uaXphdGlvbiBzdGF0dXMgaXMgdW5rbm93bi48d2JyLz48L3A+Cis8cD5UaGUgcmVzdWx0IG1heSBoYXZlIGFscmVhZHkgY29udmVyZ2VkLDx3YnIvPiBvciBpdCBtYXkgYmUgaW4KK3Byb2dyZXNzLjx3YnIvPiAgUmVhZGluZyBmcm9tIHRoaXMgcmVzdWx0IG1heSBpbmNsdWRlIHNvbWUgbWl4CitvZiBzZXR0aW5ncyBmcm9tIHBhc3QgcmVxdWVzdHMuPHdici8+PC9wPgorPHA+QWZ0ZXIgYSBzZXR0aW5ncyBjaGFuZ2UsPHdici8+IHRoZSBuZXcgc2V0dGluZ3Mgd2lsbCBldmVudHVhbGx5IGFsbAordGFrZSBlZmZlY3QgZm9yIHRoZSBvdXRwdXQgYnVmZmVycyBhbmQgcmVzdWx0cy48d2JyLz4gSG93ZXZlciw8d2JyLz4gdGhpcwordmFsdWUgd2lsbCBub3QgY2hhbmdlIHdoZW4gdGhhdCBoYXBwZW5zLjx3YnIvPiBBbHRlcmluZyBzZXR0aW5ncworcmFwaWRseSBtYXkgcHJvdmlkZSBvdXRjb21lcyB1c2luZyBtaXhlcyBvZiBzZXR0aW5ncyBmcm9tIHJlY2VudAorcmVxdWVzdHMuPHdici8+PC9wPgorPHA+VGhpcyB2YWx1ZSBpcyBpbnRlbmRlZCBwcmltYXJpbHkgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGgKK3RoZSBvbGRlciBjYW1lcmEgaW1wbGVtZW50YXRpb25zIChmb3IgYW5kcm9pZC48d2JyLz5oYXJkd2FyZS48d2JyLz5DYW1lcmEpLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBmcmFtZSBudW1iZXIgY29ycmVzcG9uZGluZyB0byB0aGUgbGFzdCByZXF1ZXN0Cit3aXRoIHdoaWNoIHRoZSBvdXRwdXQgcmVzdWx0IChtZXRhZGF0YSArIGJ1ZmZlcnMpIGhhcyBiZWVuIGZ1bGx5CitzeW5jaHJvbml6ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+RWl0aGVyIGEgbm9uLW5lZ2F0aXZlIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gYQorPGNvZGU+ZnJhbWVfPHdici8+bnVtYmVyPC9jb2RlPiw8d2JyLz4gb3Igb25lIG9mIHRoZSB0d28gZW51bXMgKENPTlZFUkdJTkcgLzx3YnIvPiBVTktOT1dOKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBhIHJlcXVlc3QgaXMgc3VibWl0dGVkIHRvIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGVyZSBpcyB1c3VhbGx5IGEKK2RlbGF5IG9mIHNldmVyYWwgZnJhbWVzIGJlZm9yZSB0aGUgY29udHJvbHMgZ2V0IGFwcGxpZWQuPHdici8+IEEgY2FtZXJhCitkZXZpY2UgbWF5IGVpdGhlciBjaG9vc2UgdG8gYWNjb3VudCBmb3IgdGhpcyBkZWxheSBieSBpbXBsZW1lbnRpbmcgYQorcGlwZWxpbmUgYW5kIGNhcmVmdWxseSBzdWJtaXQgd2VsbC10aW1lZCBhdG9taWMgY29udHJvbCB1cGRhdGVzLDx3YnIvPiBvcgoraXQgbWF5IHN0YXJ0IHN0cmVhbWluZyBjb250cm9sIGNoYW5nZXMgdGhhdCBzcGFuIG92ZXIgc2V2ZXJhbCBmcmFtZQorYm91bmRhcmllcy48d2JyLz48L3A+Cis8cD5JbiB0aGUgbGF0dGVyIGNhc2UsPHdici8+IHdoZW5ldmVyIGEgcmVxdWVzdCdzIHNldHRpbmdzIGNoYW5nZSByZWxhdGl2ZSB0bwordGhlIHByZXZpb3VzIHN1Ym1pdHRlZCByZXF1ZXN0LDx3YnIvPiB0aGUgZnVsbCBzZXQgb2YgY2hhbmdlcyBtYXkgdGFrZQorbXVsdGlwbGUgZnJhbWUgZHVyYXRpb25zIHRvIGZ1bGx5IHRha2UgZWZmZWN0Ljx3YnIvPiBTb21lIHNldHRpbmdzIG1heQordGFrZSBlZmZlY3Qgc29vbmVyIChpbiBsZXNzIGZyYW1lIGR1cmF0aW9ucykgdGhhbiBvdGhlcnMuPHdici8+PC9wPgorPHA+V2hpbGUgYSBzZXQgb2YgY29udHJvbCBjaGFuZ2VzIGFyZSBiZWluZyBwcm9wYWdhdGVkLDx3YnIvPiB0aGlzIHZhbHVlCit3aWxsIGJlIENPTlZFUkdJTkcuPHdici8+PC9wPgorPHA+T25jZSBpdCBpcyBmdWxseSBrbm93biB0aGF0IGEgc2V0IG9mIGNvbnRyb2wgY2hhbmdlcyBoYXZlIGJlZW4KK2ZpbmlzaGVkIHByb3BhZ2F0aW5nLDx3YnIvPiBhbmQgdGhlIHJlc3VsdGluZyB1cGRhdGVkIGNvbnRyb2wgc2V0dGluZ3MKK2hhdmUgYmVlbiByZWFkIGJhY2sgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IHRoaXMgdmFsdWUgd2lsbCBiZSBzZXQKK3RvIGEgbm9uLW5lZ2F0aXZlIGZyYW1lIG51bWJlciAoY29ycmVzcG9uZGluZyB0byB0aGUgcmVxdWVzdCB0bword2hpY2ggdGhlIHJlc3VsdHMgaGF2ZSBzeW5jaHJvbml6ZWQgdG8pLjx3YnIvPjwvcD4KKzxwPk9sZGVyIGNhbWVyYSBkZXZpY2UgaW1wbGVtZW50YXRpb25zIG1heSBub3QgaGF2ZSBhIHdheSB0byBkZXRlY3QKK3doZW4gYWxsIGNhbWVyYSBjb250cm9scyBoYXZlIGJlZW4gYXBwbGllZCw8d2JyLz4gYW5kIHdpbGwgYWx3YXlzIHNldCB0aGlzCit2YWx1ZSB0byBVTktOT1dOLjx3YnIvPjwvcD4KKzxwPkZVTEwgY2FwYWJpbGl0eSBkZXZpY2VzIHdpbGwgYWx3YXlzIGhhdmUgdGhpcyB2YWx1ZSBzZXQgdG8gdGhlCitmcmFtZSBudW1iZXIgb2YgdGhlIHJlcXVlc3QgY29ycmVzcG9uZGluZyB0byB0aGlzIHJlc3VsdC48d2JyLz48L3A+Cis8cD48ZW0+RnVydGhlciBkZXRhaWxzPC9lbT46PC9wPgorPHVsPgorPGxpPldoZW5ldmVyIGEgcmVxdWVzdCBkaWZmZXJzIGZyb20gdGhlIGxhc3QgcmVxdWVzdCw8d2JyLz4gYW55IGZ1dHVyZQorcmVzdWx0cyBub3QgeWV0IHJldHVybmVkIG1heSBoYXZlIHRoaXMgdmFsdWUgc2V0IHRvIENPTlZFUkdJTkcgKHRoaXMKK2NvdWxkIGluY2x1ZGUgYW55IGluLXByb2dyZXNzIGNhcHR1cmVzIG5vdCB5ZXQgcmV0dXJuZWQgYnkgdGhlIGNhbWVyYQorZGV2aWNlLDx3YnIvPiBmb3IgbW9yZSBkZXRhaWxzIHNlZSBwaXBlbGluZSBjb25zaWRlcmF0aW9ucyBiZWxvdykuPHdici8+PC9saT4KKzxsaT5TdWJtaXR0aW5nIGEgc2VyaWVzIG9mIG11bHRpcGxlIHJlcXVlc3RzIHRoYXQgZGlmZmVyIGZyb20gdGhlCitwcmV2aW91cyByZXF1ZXN0IChlLjx3YnIvPmcuPHdici8+IHIxLDx3YnIvPiByMiw8d2JyLz4gcjMgcy48d2JyLz50Ljx3YnIvPiByMSAhPSByMiAhPSByMykKK21vdmVzIHRoZSBuZXcgc3luY2hyb25pemF0aW9uIGZyYW1lIHRvIHRoZSBsYXN0IG5vbi1yZXBlYXRpbmcKK3JlcXVlc3QgKHVzaW5nIHRoZSBzbWFsbGVzdCBmcmFtZSBudW1iZXIgZnJvbSB0aGUgY29udGlndW91cyBsaXN0IG9mCityZXBlYXRpbmcgcmVxdWVzdHMpLjx3YnIvPjwvbGk+Cis8bGk+U3VibWl0dGluZyB0aGUgc2FtZSByZXF1ZXN0IHJlcGVhdGVkbHkgd2lsbCBub3QgY2hhbmdlIHRoaXMgdmFsdWUKK3RvIENPTlZFUkdJTkcsPHdici8+IGlmIGl0IHdhcyBhbHJlYWR5IGEgbm9uLW5lZ2F0aXZlIHZhbHVlLjx3YnIvPjwvbGk+Cis8bGk+V2hlbiB0aGlzIHZhbHVlIGNoYW5nZXMgdG8gbm9uLW5lZ2F0aXZlLDx3YnIvPiB0aGF0IG1lYW5zIHRoYXQgYWxsIG9mIHRoZQorbWV0YWRhdGEgY29udHJvbHMgZnJvbSB0aGUgcmVxdWVzdCBoYXZlIGJlZW4gYXBwbGllZCw8d2JyLz4gYWxsIG9mIHRoZQorbWV0YWRhdGEgY29udHJvbHMgZnJvbSB0aGUgY2FtZXJhIGRldmljZSBoYXZlIGJlZW4gcmVhZCB0byB0aGUKK3VwZGF0ZWQgdmFsdWVzIChpbnRvIHRoZSByZXN1bHQpLDx3YnIvPiBhbmQgYWxsIG9mIHRoZSBncmFwaGljcyBidWZmZXJzCitjb3JyZXNwb25kaW5nIHRvIHRoaXMgcmVzdWx0IGFyZSBhbHNvIHN5bmNocm9uaXplZCB0byB0aGUgcmVxdWVzdC48d2JyLz48L2xpPgorPC91bD4KKzxwPjxlbT5QaXBlbGluZSBjb25zaWRlcmF0aW9uczwvZW0+OjwvcD4KKzxwPlN1Ym1pdHRpbmcgYSByZXF1ZXN0IHdpdGggdXBkYXRlZCBjb250cm9scyByZWxhdGl2ZSB0byB0aGUgcHJldmlvdXNseQorc3VibWl0dGVkIHJlcXVlc3RzIG1heSBhbHNvIGludmFsaWRhdGUgdGhlIHN5bmNocm9uaXphdGlvbiBzdGF0ZQorb2YgYWxsIHRoZSByZXN1bHRzIGNvcnJlc3BvbmRpbmcgdG8gY3VycmVudGx5IGluLWZsaWdodCByZXF1ZXN0cy48d2JyLz48L3A+Cis8cD5JbiBvdGhlciB3b3Jkcyw8d2JyLz4gcmVzdWx0cyBmb3IgdGhpcyBjdXJyZW50IHJlcXVlc3QgYW5kIHVwIHRvCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5waXBlbGluZU1heERlcHRoIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+cGlwZWxpbmU8d2JyLz5NYXg8d2JyLz5EZXB0aDwvYT4gcHJpb3IgcmVxdWVzdHMgbWF5IGhhdmUgdGhlaXIKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+YW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPmZyYW1lPHdici8+TnVtYmVyPC9hPiBjaGFuZ2UgdG8gQ09OVkVSR0lORy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlVzaW5nIFVOS05PV04gaGVyZSBpcyBpbGxlZ2FsIHVubGVzcyA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3luYy5tYXhMYXRlbmN5Ij5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+bWF4PHdici8+TGF0ZW5jeTwvYT4KK2lzIGFsc28gVU5LTk9XTi48d2JyLz48L3A+Cis8cD5GVUxMIGNhcGFiaWxpdHkgZGV2aWNlcyBzaG91bGQgc2ltcGx5IHNldCB0aGlzIHZhbHVlIHRvIHRoZQorPGNvZGU+ZnJhbWVfPHdici8+bnVtYmVyPC9jb2RlPiBvZiB0aGUgcmVxdWVzdCB0aGlzIHJlc3VsdCBjb3JyZXNwb25kcyB0by48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc3luYy5tYXhMYXRlbmN5Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3luYy48d2JyLz5tYXg8d2JyLz5MYXRlbmN5CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBFUl9GUkFNRV9DT05UUk9MPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4wPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5FdmVyeSBmcmFtZSBoYXMgdGhlIHJlcXVlc3RzIGltbWVkaWF0ZWx5IGFwcGxpZWQuPHdici8+PC9wPgorPHA+Q2hhbmdpbmcgY29udHJvbHMgb3ZlciBtdWx0aXBsZSByZXF1ZXN0cyBvbmUgYWZ0ZXIgYW5vdGhlciB3aWxsCitwcm9kdWNlIHJlc3VsdHMgdGhhdCBoYXZlIHRob3NlIGNvbnRyb2xzIGFwcGxpZWQgYXRvbWljYWxseQorZWFjaCBmcmFtZS48d2JyLz48L3A+Cis8cD5BbGwgRlVMTCBjYXBhYmlsaXR5IGRldmljZXMgd2lsbCBoYXZlIHRoaXMgYXMgdGhlaXIgbWF4TGF0ZW5jeS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5VTktOT1dOPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4tMTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RWFjaCBuZXcgZnJhbWUgaGFzIHNvbWUgc3Vic2V0IChwb3RlbnRpYWxseSB0aGUgZW50aXJlIHNldCkKK29mIHRoZSBwYXN0IHJlcXVlc3RzIGFwcGxpZWQgdG8gdGhlIGNhbWVyYSBzZXR0aW5ncy48d2JyLz48L3A+Cis8cD5CeSBzdWJtaXR0aW5nIGEgc2VyaWVzIG9mIGlkZW50aWNhbCByZXF1ZXN0cyw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UKK3dpbGwgZXZlbnR1YWxseSBoYXZlIHRoZSBjYW1lcmEgc2V0dGluZ3MgYXBwbGllZCw8d2JyLz4gYnV0IGl0IGlzCit1bmtub3duIHdoZW4gdGhhdCBleGFjdCBwb2ludCB3aWxsIGJlLjx3YnIvPjwvcD4KKzxwPkFsbCBMRUdBQ1kgY2FwYWJpbGl0eSBkZXZpY2VzIHdpbGwgaGF2ZSB0aGlzIGFzIHRoZWlyIG1heExhdGVuY3kuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG1heGltdW0gbnVtYmVyIG9mIGZyYW1lcyB0aGF0IGNhbiBvY2N1ciBhZnRlciBhIHJlcXVlc3QKKyhkaWZmZXJlbnQgdGhhbiB0aGUgcHJldmlvdXMpIGhhcyBiZWVuIHN1Ym1pdHRlZCw8d2JyLz4gYW5kIGJlZm9yZSB0aGUKK3Jlc3VsdCdzIHN0YXRlIGJlY29tZXMgc3luY2hyb25pemVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBGcmFtZSBjb3VudHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BIHBvc2l0aXZlIHZhbHVlLDx3YnIvPiBQRVJfPHdici8+RlJBTUVfPHdici8+Q09OVFJPTCw8d2JyLz4gb3IgVU5LTk9XTi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBkZWZpbmVzIHRoZSBtYXhpbXVtIGRpc3RhbmNlIChpbiBudW1iZXIgb2YgbWV0YWRhdGEgcmVzdWx0cyksPHdici8+CitiZXR3ZWVuIHRoZSBmcmFtZSBudW1iZXIgb2YgdGhlIHJlcXVlc3QgdGhhdCBoYXMgbmV3IGNvbnRyb2xzIHRvIGFwcGx5CithbmQgdGhlIGZyYW1lIG51bWJlciBvZiB0aGUgcmVzdWx0IHRoYXQgaGFzIGFsbCB0aGUgY29udHJvbHMgYXBwbGllZC48d2JyLz48L3A+Cis8cD5JbiBvdGhlciB3b3JkcyB0aGlzIGFjdHMgYXMgYW4gdXBwZXIgYm91bmRhcnkgZm9yIGhvdyBtYW55IGZyYW1lcworbXVzdCBvY2N1ciBiZWZvcmUgdGhlIGNhbWVyYSBkZXZpY2Uga25vd3MgZm9yIGEgZmFjdCB0aGF0IHRoZSBuZXcKK3N1Ym1pdHRlZCBjYW1lcmEgc2V0dGluZ3MgaGF2ZSBiZWVuIGFwcGxpZWQgaW4gb3V0Z29pbmcgZnJhbWVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIGV4YW1wbGUgaWYgbWF4TGF0ZW5jeSB3YXMgMiw8d2JyLz48L3A+Cis8cHJlPjxjb2RlPmluaXRpYWwgcmVxdWVzdCA9IFggKHJlcGVhdGluZykKK3JlcXVlc3QxID0gWAorcmVxdWVzdDIgPSBZCityZXF1ZXN0MyA9IFkKK3JlcXVlc3Q0ID0gWQorCit3aGVyZSByZXF1ZXN0TiBoYXMgZnJhbWVOdW1iZXIgTiw8d2JyLz4gYW5kIHRoZSBmaXJzdCBvZiB0aGUgcmVwZWF0aW5nCitpbml0aWFsIHJlcXVlc3QncyBoYXMgZnJhbWVOdW1iZXIgRiAoYW5kIEYgJmx0OyAxKS48d2JyLz4KKworaW5pdGlhbCByZXN1bHQgPSBYJyArIHsgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyIj5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+ZnJhbWU8d2JyLz5OdW1iZXI8L2E+ID09IEYgfQorcmVzdWx0MSA9IFgnICsgeyA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN5bmMuZnJhbWVOdW1iZXIiPmFuZHJvaWQuPHdici8+c3luYy48d2JyLz5mcmFtZTx3YnIvPk51bWJlcjwvYT4gPT0gRiB9CityZXN1bHQyID0gWCcgKyB7IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+YW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPmZyYW1lPHdici8+TnVtYmVyPC9hPiA9PSBDT05WRVJHSU5HIH0KK3Jlc3VsdDMgPSBYJyArIHsgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyIj5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+ZnJhbWU8d2JyLz5OdW1iZXI8L2E+ID09IENPTlZFUkdJTkcgfQorcmVzdWx0NCA9IFgnICsgeyA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN5bmMuZnJhbWVOdW1iZXIiPmFuZHJvaWQuPHdici8+c3luYy48d2JyLz5mcmFtZTx3YnIvPk51bWJlcjwvYT4gPT0gMiB9CisKK3doZXJlIHJlc3VsdE4gaGFzIGZyYW1lTnVtYmVyIE4uPHdici8+Cis8L2NvZGU+PC9wcmU+Cis8cD5TaW5jZSA8Y29kZT5yZXN1bHQ0PC9jb2RlPiBoYXMgYSA8Y29kZT5mcmFtZU51bWJlciA9PSA0PC9jb2RlPiBhbmQKKzxjb2RlPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+YW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPmZyYW1lPHdici8+TnVtYmVyPC9hPiA9PSAyPC9jb2RlPiw8d2JyLz4gdGhlIGRpc3RhbmNlIGlzIGNsZWFybHkKKzxjb2RlPjQgLSAyID0gMjwvY29kZT4uPHdici8+PC9wPgorPHA+VXNlIDxjb2RlPmZyYW1lXzx3YnIvPmNvdW50PC9jb2RlPiBmcm9tIGNhbWVyYTNfPHdici8+cmVxdWVzdF88d2JyLz50IGluc3RlYWQgb2YKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QuZnJhbWVDb3VudCI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmZyYW1lPHdici8+Q291bnQ8L2E+IG9yCis8Y29kZT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhcHR1cmVSZXN1bHQuaHRtbCNnZXRGcmFtZU51bWJlciI+Q2FwdHVyZVJlc3VsdCNnZXRGcmFtZU51bWJlcjwvYT48L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPkxJTUlURUQgZGV2aWNlcyBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCB0byB1c2UgYSBub24tbmVnYXRpdmUKK3ZhbHVlLjx3YnIvPiBJZiBVTktOT1dOIGlzIHVzZWQgaGVyZSB0aGVuIGFwcCBkZXZlbG9wZXJzIGRvIG5vdCBoYXZlIGEgd2F5Cit0byBrbm93IHdoZW4gc2Vuc29yIHNldHRpbmdzIGhhdmUgYmVlbiBhcHBsaWVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX3JlcHJvY2VzcyIgY2xhc3M9InNlY3Rpb24iPnJlcHJvY2VzczwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIGV4cG9zdXJlIHRpbWUgaW5jcmVhc2UgZmFjdG9yIGFwcGxpZWQgdG8gdGhlIG9yaWdpbmFsIG91dHB1dAorZnJhbWUgYnkgdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3NpbmcgYmVmb3JlIHNlbmRpbmcgZm9yIHJlcHJvY2Vzc2luZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUmVsYXRpdmUgZXhwb3N1cmUgdGltZSBpbmNyZWFzZSBmYWN0b3IuPHdici8+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMS48d2JyLz4wPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBpcyBvcHRpb25hbCw8d2JyLz4gYW5kIHdpbGwgYmUgc3VwcG9ydGVkIGlmIHRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIFlVVl88d2JyLz5SRVBST0NFU1NJTkcKK2NhcGFiaWxpdHkgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gY29udGFpbnMgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORykuPHdici8+PC9wPgorPHA+Rm9yIHNvbWUgWVVWIHJlcHJvY2Vzc2luZyB1c2UgY2FzZXMsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBtYXkgY2hvb3NlIHRvIGZpbHRlciB0aGUgb3JpZ2luYWwKK291dHB1dCBmcmFtZXMgdG8gZWZmZWN0aXZlbHkgcmVkdWNlIHRoZSBub2lzZSB0byB0aGUgc2FtZSBsZXZlbCBhcyBhIGZyYW1lIHRoYXQgd2FzCitjYXB0dXJlZCB3aXRoIGxvbmdlciBleHBvc3VyZSB0aW1lLjx3YnIvPiBUbyBiZSBtb3JlIHNwZWNpZmljLDx3YnIvPiBhc3N1bWluZyB0aGUgb3JpZ2luYWwgY2FwdHVyZWQKK2ltYWdlcyB3ZXJlIGNhcHR1cmVkIHdpdGggYSBzZW5zaXRpdml0eSBvZiBTIGFuZCBhbiBleHBvc3VyZSB0aW1lIG9mIFQsPHdici8+IHRoZSBtb2RlbCBpbgordGhlIGNhbWVyYSBkZXZpY2UgaXMgdGhhdCB0aGUgYW1vdW50IG9mIG5vaXNlIGluIHRoZSBpbWFnZSB3b3VsZCBiZSBhcHByb3hpbWF0ZWx5IHdoYXQKK3dvdWxkIGJlIGV4cGVjdGVkIGlmIHRoZSBvcmlnaW5hbCBjYXB0dXJlIHBhcmFtZXRlcnMgaGFkIGJlZW4gYSBzZW5zaXRpdml0eSBvZgorUy88d2JyLz5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciBhbmQgYW4gZXhwb3N1cmUgdGltZSBvZiBUKmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yLDx3YnIvPiByYXRoZXIKK3RoYW4gUyBhbmQgVCByZXNwZWN0aXZlbHkuPHdici8+IElmIHRoZSBjYXB0dXJlZCBpbWFnZXMgd2VyZSBwcm9jZXNzZWQgYnkgdGhlIGFwcGxpY2F0aW9uCitiZWZvcmUgYmVpbmcgc2VudCBmb3IgcmVwcm9jZXNzaW5nLDx3YnIvPiB0aGVuIHRoZSBhcHBsaWNhdGlvbiBtYXkgaGF2ZSB1c2VkIGltYWdlIHByb2Nlc3NpbmcKK2FsZ29yaXRobXMgYW5kLzx3YnIvPm9yIG11bHRpLWZyYW1lIGltYWdlIGZ1c2lvbiB0byByZWR1Y2UgdGhlIG5vaXNlIGluIHRoZQorYXBwbGljYXRpb24tcHJvY2Vzc2VkIGltYWdlcyAoaW5wdXQgaW1hZ2VzKS48d2JyLz4gQnkgdXNpbmcgdGhlIGVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yCitjb250cm9sLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gY2FuIGNvbW11bmljYXRlIHRvIHRoZSBjYW1lcmEgZGV2aWNlIHRoZSBhY3R1YWwgbm9pc2UgbGV2ZWwKK2ltcHJvdmVtZW50IGluIHRoZSBhcHBsaWNhdGlvbi1wcm9jZXNzZWQgaW1hZ2UuPHdici8+IFdpdGggdGhpcyBpbmZvcm1hdGlvbiw8d2JyLz4gdGhlIGNhbWVyYQorZGV2aWNlIGNhbiBzZWxlY3QgYXBwcm9wcmlhdGUgbm9pc2UgcmVkdWN0aW9uIGFuZCBlZGdlIGVuaGFuY2VtZW50IHBhcmFtZXRlcnMgdG8gYXZvaWQKK2V4Y2Vzc2l2ZSBub2lzZSByZWR1Y3Rpb24gKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+bW9kZTwvYT4pIGFuZCBpbnN1ZmZpY2llbnQgZWRnZQorZW5oYW5jZW1lbnQgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPm1vZGU8L2E+KSBiZWluZyBhcHBsaWVkIHRvIHRoZSByZXByb2Nlc3NlZCBmcmFtZXMuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGZvciBtdWx0aS1mcmFtZSBpbWFnZSBmdXNpb24gdXNlIGNhc2UsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBtYXkgZnVzZQorbXVsdGlwbGUgb3V0cHV0IGZyYW1lcyB0b2dldGhlciB0byBhIGZpbmFsIGZyYW1lIGZvciByZXByb2Nlc3NpbmcuPHdici8+IFdoZW4gTiBpbWFnZSBhcmUKK2Z1c2VkIGludG8gMSBpbWFnZSBmb3IgcmVwcm9jZXNzaW5nLDx3YnIvPiB0aGUgZXhwb3N1cmUgdGltZSBpbmNyZWFzZSBmYWN0b3IgY291bGQgYmUgdXAgdG8KK3NxdWFyZSByb290IG9mIE4gKGJhc2VkIG9uIGEgc2ltcGxlIHBob3RvbiBzaG90IG5vaXNlIG1vZGVsKS48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2Ugd2lsbAorYWRqdXN0IHRoZSByZXByb2Nlc3Npbmcgbm9pc2UgcmVkdWN0aW9uIGFuZCBlZGdlIGVuaGFuY2VtZW50IHBhcmFtZXRlcnMgYWNjb3JkaW5nbHkgdG8KK3Byb2R1Y2UgdGhlIGJlc3QgcXVhbGl0eSBpbWFnZXMuPHdici8+PC9wPgorPHA+VGhpcyBpcyByZWxhdGl2ZSBmYWN0b3IsPHdici8+IDEuPHdici8+MCBpbmRpY2F0ZXMgdGhlIGFwcGxpY2F0aW9uIGhhc24ndCBwcm9jZXNzZWQgdGhlIGlucHV0CitidWZmZXIgaW4gYSB3YXkgdGhhdCBhZmZlY3RzIGl0cyBlZmZlY3RpdmUgZXhwb3N1cmUgdGltZS48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgZm9yIFlVViByZXByb2Nlc3NpbmcgY2FwdHVyZSByZXF1ZXN0Ljx3YnIvPiBGb3Igbm9pc2UKK3JlZHVjdGlvbiByZXByb2Nlc3NpbmcsPHdici8+IGl0IGlzIG9ubHkgZWZmZWN0aXZlIHdoZW4gPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5tb2RlPC9hPiAhPSBPRkY8L2NvZGU+Ljx3YnIvPgorU2ltaWxhcmx5LDx3YnIvPiBmb3IgZWRnZSBlbmhhbmNlbWVudCByZXByb2Nlc3NpbmcsPHdici8+IGl0IGlzIG9ubHkgZWZmZWN0aXZlIHdoZW4KKzxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPm1vZGU8L2E+ICE9IE9GRjwvY29kZT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+ZWZmZWN0aXZlPHdici8+RXhwb3N1cmU8d2JyLz5GYWN0b3IKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbamF2YV9wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBleHBvc3VyZSB0aW1lIGluY3JlYXNlIGZhY3RvciBhcHBsaWVkIHRvIHRoZSBvcmlnaW5hbCBvdXRwdXQKK2ZyYW1lIGJ5IHRoZSBhcHBsaWNhdGlvbiBwcm9jZXNzaW5nIGJlZm9yZSBzZW5kaW5nIGZvciByZXByb2Nlc3NpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFJlbGF0aXZlIGV4cG9zdXJlIHRpbWUgaW5jcmVhc2UgZmFjdG9yLjx3YnIvPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDEuPHdici8+MDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SRVBST0MiPlJFUFJPQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgb3B0aW9uYWwsPHdici8+IGFuZCB3aWxsIGJlIHN1cHBvcnRlZCBpZiB0aGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBZVVZfPHdici8+UkVQUk9DRVNTSU5HCitjYXBhYmlsaXR5ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zIFlVVl88d2JyLz5SRVBST0NFU1NJTkcpLjx3YnIvPjwvcD4KKzxwPkZvciBzb21lIFlVViByZXByb2Nlc3NpbmcgdXNlIGNhc2VzLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gbWF5IGNob29zZSB0byBmaWx0ZXIgdGhlIG9yaWdpbmFsCitvdXRwdXQgZnJhbWVzIHRvIGVmZmVjdGl2ZWx5IHJlZHVjZSB0aGUgbm9pc2UgdG8gdGhlIHNhbWUgbGV2ZWwgYXMgYSBmcmFtZSB0aGF0IHdhcworY2FwdHVyZWQgd2l0aCBsb25nZXIgZXhwb3N1cmUgdGltZS48d2JyLz4gVG8gYmUgbW9yZSBzcGVjaWZpYyw8d2JyLz4gYXNzdW1pbmcgdGhlIG9yaWdpbmFsIGNhcHR1cmVkCitpbWFnZXMgd2VyZSBjYXB0dXJlZCB3aXRoIGEgc2Vuc2l0aXZpdHkgb2YgUyBhbmQgYW4gZXhwb3N1cmUgdGltZSBvZiBULDx3YnIvPiB0aGUgbW9kZWwgaW4KK3RoZSBjYW1lcmEgZGV2aWNlIGlzIHRoYXQgdGhlIGFtb3VudCBvZiBub2lzZSBpbiB0aGUgaW1hZ2Ugd291bGQgYmUgYXBwcm94aW1hdGVseSB3aGF0Cit3b3VsZCBiZSBleHBlY3RlZCBpZiB0aGUgb3JpZ2luYWwgY2FwdHVyZSBwYXJhbWV0ZXJzIGhhZCBiZWVuIGEgc2Vuc2l0aXZpdHkgb2YKK1MvPHdici8+ZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IgYW5kIGFuIGV4cG9zdXJlIHRpbWUgb2YgVCplZmZlY3RpdmVFeHBvc3VyZUZhY3Rvciw8d2JyLz4gcmF0aGVyCit0aGFuIFMgYW5kIFQgcmVzcGVjdGl2ZWx5Ljx3YnIvPiBJZiB0aGUgY2FwdHVyZWQgaW1hZ2VzIHdlcmUgcHJvY2Vzc2VkIGJ5IHRoZSBhcHBsaWNhdGlvbgorYmVmb3JlIGJlaW5nIHNlbnQgZm9yIHJlcHJvY2Vzc2luZyw8d2JyLz4gdGhlbiB0aGUgYXBwbGljYXRpb24gbWF5IGhhdmUgdXNlZCBpbWFnZSBwcm9jZXNzaW5nCithbGdvcml0aG1zIGFuZC88d2JyLz5vciBtdWx0aS1mcmFtZSBpbWFnZSBmdXNpb24gdG8gcmVkdWNlIHRoZSBub2lzZSBpbiB0aGUKK2FwcGxpY2F0aW9uLXByb2Nlc3NlZCBpbWFnZXMgKGlucHV0IGltYWdlcykuPHdici8+IEJ5IHVzaW5nIHRoZSBlZmZlY3RpdmVFeHBvc3VyZUZhY3RvcgorY29udHJvbCw8d2JyLz4gdGhlIGFwcGxpY2F0aW9uIGNhbiBjb21tdW5pY2F0ZSB0byB0aGUgY2FtZXJhIGRldmljZSB0aGUgYWN0dWFsIG5vaXNlIGxldmVsCitpbXByb3ZlbWVudCBpbiB0aGUgYXBwbGljYXRpb24tcHJvY2Vzc2VkIGltYWdlLjx3YnIvPiBXaXRoIHRoaXMgaW5mb3JtYXRpb24sPHdici8+IHRoZSBjYW1lcmEKK2RldmljZSBjYW4gc2VsZWN0IGFwcHJvcHJpYXRlIG5vaXNlIHJlZHVjdGlvbiBhbmQgZWRnZSBlbmhhbmNlbWVudCBwYXJhbWV0ZXJzIHRvIGF2b2lkCitleGNlc3NpdmUgbm9pc2UgcmVkdWN0aW9uICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPm1vZGU8L2E+KSBhbmQgaW5zdWZmaWNpZW50IGVkZ2UKK2VuaGFuY2VtZW50ICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5tb2RlPC9hPikgYmVpbmcgYXBwbGllZCB0byB0aGUgcmVwcm9jZXNzZWQgZnJhbWVzLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBmb3IgbXVsdGktZnJhbWUgaW1hZ2UgZnVzaW9uIHVzZSBjYXNlLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gbWF5IGZ1c2UKK211bHRpcGxlIG91dHB1dCBmcmFtZXMgdG9nZXRoZXIgdG8gYSBmaW5hbCBmcmFtZSBmb3IgcmVwcm9jZXNzaW5nLjx3YnIvPiBXaGVuIE4gaW1hZ2UgYXJlCitmdXNlZCBpbnRvIDEgaW1hZ2UgZm9yIHJlcHJvY2Vzc2luZyw8d2JyLz4gdGhlIGV4cG9zdXJlIHRpbWUgaW5jcmVhc2UgZmFjdG9yIGNvdWxkIGJlIHVwIHRvCitzcXVhcmUgcm9vdCBvZiBOIChiYXNlZCBvbiBhIHNpbXBsZSBwaG90b24gc2hvdCBub2lzZSBtb2RlbCkuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlIHdpbGwKK2FkanVzdCB0aGUgcmVwcm9jZXNzaW5nIG5vaXNlIHJlZHVjdGlvbiBhbmQgZWRnZSBlbmhhbmNlbWVudCBwYXJhbWV0ZXJzIGFjY29yZGluZ2x5IHRvCitwcm9kdWNlIHRoZSBiZXN0IHF1YWxpdHkgaW1hZ2VzLjx3YnIvPjwvcD4KKzxwPlRoaXMgaXMgcmVsYXRpdmUgZmFjdG9yLDx3YnIvPiAxLjx3YnIvPjAgaW5kaWNhdGVzIHRoZSBhcHBsaWNhdGlvbiBoYXNuJ3QgcHJvY2Vzc2VkIHRoZSBpbnB1dAorYnVmZmVyIGluIGEgd2F5IHRoYXQgYWZmZWN0cyBpdHMgZWZmZWN0aXZlIGV4cG9zdXJlIHRpbWUuPHdici8+PC9wPgorPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIGZvciBZVVYgcmVwcm9jZXNzaW5nIGNhcHR1cmUgcmVxdWVzdC48d2JyLz4gRm9yIG5vaXNlCityZWR1Y3Rpb24gcmVwcm9jZXNzaW5nLDx3YnIvPiBpdCBpcyBvbmx5IGVmZmVjdGl2ZSB3aGVuIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+bW9kZTwvYT4gIT0gT0ZGPC9jb2RlPi48d2JyLz4KK1NpbWlsYXJseSw8d2JyLz4gZm9yIGVkZ2UgZW5oYW5jZW1lbnQgcmVwcm9jZXNzaW5nLDx3YnIvPiBpdCBpcyBvbmx5IGVmZmVjdGl2ZSB3aGVuCis8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5tb2RlPC9hPiAhPSBPRkY8L2NvZGU+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnJlcHJvY2Vzcy5tYXhDYXB0dXJlU3RhbGwiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+bWF4PHdici8+Q2FwdHVyZTx3YnIvPlN0YWxsCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbWFsIGNhbWVyYSBjYXB0dXJlIHBpcGVsaW5lIHN0YWxsIChpbiB1bml0IG9mIGZyYW1lIGNvdW50KSBpbnRyb2R1Y2VkIGJ5IGEKK3JlcHJvY2VzcyBjYXB0dXJlIHJlcXVlc3QuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE51bWJlciBvZiBmcmFtZXMuPHdici8+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmx0Oz0gNDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SRVBST0MiPlJFUFJPQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBrZXkgZGVzY3JpYmVzIHRoZSBtYXhpbWFsIGludGVyZmVyZW5jZSB0aGF0IG9uZSByZXByb2Nlc3MgKGlucHV0KSByZXF1ZXN0CitjYW4gaW50cm9kdWNlIHRvIHRoZSBjYW1lcmEgc2ltdWx0YW5lb3VzIHN0cmVhbWluZyBvZiByZWd1bGFyIChvdXRwdXQpIGNhcHR1cmUKK3JlcXVlc3RzLDx3YnIvPiBpbmNsdWRpbmcgcmVwZWF0aW5nIHJlcXVlc3RzLjx3YnIvPjwvcD4KKzxwPldoZW4gYSByZXByb2Nlc3NpbmcgY2FwdHVyZSByZXF1ZXN0IGlzIHN1Ym1pdHRlZCB3aGlsZSBhIGNhbWVyYSBvdXRwdXQgcmVwZWF0aW5nIHJlcXVlc3QKKyhlLjx3YnIvPmcuPHdici8+IHByZXZpZXcpIGlzIGJlaW5nIHNlcnZlZCBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gaXQgbWF5IHByZWVtcHQgdGhlIGNhbWVyYSBjYXB0dXJlCitwaXBlbGluZSBmb3IgYXQgbGVhc3Qgb25lIGZyYW1lIGR1cmF0aW9uIHNvIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UgaXMgdW5hYmxlIHRvIHByb2Nlc3MKK3RoZSBmb2xsb3dpbmcgY2FwdHVyZSByZXF1ZXN0IGluIHRpbWUgZm9yIHRoZSBuZXh0IHNlbnNvciBzdGFydCBvZiBleHBvc3VyZSBib3VuZGFyeS48d2JyLz4KK1doZW4gdGhpcyBoYXBwZW5zLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gbWF5IG9ic2VydmUgYSBjYXB0dXJlIHRpbWUgZ2FwIChsb25nZXIgdGhhbiBvbmUgZnJhbWUKK2R1cmF0aW9uKSBiZXR3ZWVuIGFkamFjZW50IGNhcHR1cmUgb3V0cHV0IGZyYW1lcyw8d2JyLz4gd2hpY2ggdXN1YWxseSBleGhpYml0cyBhcyBwcmV2aWV3CitnbGl0Y2ggaWYgdGhlIHJlcGVhdGluZyByZXF1ZXN0IG91dHB1dCB0YXJnZXRzIGluY2x1ZGUgYSBwcmV2aWV3IHN1cmZhY2UuPHdici8+IFRoaXMga2V5IGdpdmVzCit0aGUgd29yc3QtY2FzZSBudW1iZXIgb2YgZnJhbWUgc3RhbGwgaW50cm9kdWNlZCBieSBvbmUgcmVwcm9jZXNzIHJlcXVlc3Qgd2l0aCBhbnkga2luZCBvZgorZm9ybWF0cy88d2JyLz5zaXplcyBjb21iaW5hdGlvbi48d2JyLz48L3A+Cis8cD5JZiB0aGlzIGtleSByZXBvcnRzIDAsPHdici8+IGl0IG1lYW5zIGEgcmVwcm9jZXNzIHJlcXVlc3QgZG9lc24ndCBpbnRyb2R1Y2UgYW55IGdsaXRjaCB0byB0aGUKK29uZ29pbmcgY2FtZXJhIHJlcGVhdGluZyByZXF1ZXN0IG91dHB1dHMsPHdici8+IGFzIGlmIHRoaXMgcmVwcm9jZXNzIHJlcXVlc3QgaXMgbmV2ZXIgaXNzdWVkLjx3YnIvPjwvcD4KKzxwPlRoaXMga2V5IGlzIHN1cHBvcnRlZCBpZiB0aGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBQUklWQVRFIG9yIFlVViByZXByb2Nlc3NpbmcgKAoraS48d2JyLz5lLjx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIG9yCitZVVZfPHdici8+UkVQUk9DRVNTSU5HKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX2RlcHRoIiBjbGFzcz0ic2VjdGlvbiI+ZGVwdGg8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmRlcHRoLm1heERlcHRoU2FtcGxlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmRlcHRoLjx3YnIvPm1heDx3YnIvPkRlcHRoPHdici8+U2FtcGxlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TWF4aW11bSBudW1iZXIgb2YgcG9pbnRzIHRoYXQgYSBkZXB0aCBwb2ludCBjbG91ZCBtYXkgY29udGFpbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0RFUFRIIj5ERVBUSDwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIGEgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBvdXRwdXR0aW5nIGRlcHRoIHJhbmdlIGRhdGEgaW4gdGhlIGZvcm0gb2YgYSBkZXB0aCBwb2ludAorY2xvdWQgKDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjREVQVEhfUE9JTlRfQ0xPVUQiPkltYWdlPHdici8+Rm9ybWF0I0RFUFRIXzx3YnIvPlBPSU5UXzx3YnIvPkNMT1VEPC9hPiksPHdici8+IHRoaXMgaXMgdGhlIG1heGltdW0KK251bWJlciBvZiBwb2ludHMgYW4gb3V0cHV0IGJ1ZmZlciBtYXkgY29udGFpbi48d2JyLz48L3A+Cis8cD5BbnkgZ2l2ZW4gYnVmZmVyIG1heSBjb250YWluIGJldHdlZW4gMCBhbmQgbWF4RGVwdGhTYW1wbGVzIHBvaW50cyw8d2JyLz4gaW5jbHVzaXZlLjx3YnIvPgorSWYgb3V0cHV0IGluIHRoZSBkZXB0aCBwb2ludCBjbG91ZCBmb3JtYXQgaXMgbm90IHN1cHBvcnRlZCw8d2JyLz4gdGhpcyBlbnRyeSB3aWxsCitub3QgYmUgZGVmaW5lZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoU3RyZWFtQ29uZmlndXJhdGlvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5kZXB0aC48d2JyLz5hdmFpbGFibGU8d2JyLz5EZXB0aDx3YnIvPlN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggNAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljIGFzIHN0cmVhbUNvbmZpZ3VyYXRpb25dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T1VUUFVUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JTlBVVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGF2YWlsYWJsZSBkZXB0aCBkYXRhc3BhY2Ugc3RyZWFtCitjb25maWd1cmF0aW9ucyB0aGF0IHRoaXMgY2FtZXJhIGRldmljZSBzdXBwb3J0cworKGkuPHdici8+ZS48d2JyLz4gZm9ybWF0LDx3YnIvPiB3aWR0aCw8d2JyLz4gaGVpZ2h0LDx3YnIvPiBvdXRwdXQvPHdici8+aW5wdXQgc3RyZWFtKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0RFUFRIIj5ERVBUSDwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZXNlIGFyZSBvdXRwdXQgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGZvciB1c2Ugd2l0aAorZGF0YVNwYWNlIEhBTF88d2JyLz5EQVRBU1BBQ0VfPHdici8+REVQVEguPHdici8+IFRoZSBjb25maWd1cmF0aW9ucyBhcmUKK2xpc3RlZCBhcyA8Y29kZT4oZm9ybWF0LDx3YnIvPiB3aWR0aCw8d2JyLz4gaGVpZ2h0LDx3YnIvPiBpbnB1dD8pPC9jb2RlPiB0dXBsZXMuPHdici8+PC9wPgorPHA+T25seSBkZXZpY2VzIHRoYXQgc3VwcG9ydCBkZXB0aCBvdXRwdXQgZm9yIGF0IGxlYXN0Cit0aGUgSEFMXzx3YnIvPlBJWEVMXzx3YnIvPkZPUk1BVF88d2JyLz5ZMTYgZGVuc2UgZGVwdGggbWFwIG1heSBpbmNsdWRlCit0aGlzIGVudHJ5Ljx3YnIvPjwvcD4KKzxwPkEgZGV2aWNlIHRoYXQgYWxzbyBzdXBwb3J0cyB0aGUgSEFMXzx3YnIvPlBJWEVMXzx3YnIvPkZPUk1BVF88d2JyLz5CTE9CCitzcGFyc2UgZGVwdGggcG9pbnQgY2xvdWQgbXVzdCByZXBvcnQgYSBzaW5nbGUgZW50cnkgZm9yCit0aGUgZm9ybWF0IGluIHRoaXMgbGlzdCBhcyA8Y29kZT4oSEFMXzx3YnIvPlBJWEVMXzx3YnIvPkZPUk1BVF88d2JyLz5CTE9CLDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmRlcHRoLm1heERlcHRoU2FtcGxlcyI+YW5kcm9pZC48d2JyLz5kZXB0aC48d2JyLz5tYXg8d2JyLz5EZXB0aDx3YnIvPlNhbXBsZXM8L2E+LDx3YnIvPiAxLDx3YnIvPiBPVVRQVVQpPC9jb2RlPiBpbiBhZGRpdGlvbiB0bwordGhlIGVudHJpZXMgZm9yIEhBTF88d2JyLz5QSVhFTF88d2JyLz5GT1JNQVRfPHdici8+WTE2Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhNaW5GcmFtZUR1cmF0aW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmRlcHRoLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkRlcHRoPHdici8+TWluPHdici8+RnJhbWU8d2JyLz5EdXJhdGlvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQgeCBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWMgYXMgc3RyZWFtQ29uZmlndXJhdGlvbkR1cmF0aW9uXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbGlzdHMgdGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gZm9yIGVhY2gKK2Zvcm1hdC88d2JyLz5zaXplIGNvbWJpbmF0aW9uIGZvciBkZXB0aCBvdXRwdXQgZm9ybWF0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgKGZvcm1hdCw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCw8d2JyLz4gbnMpIHggbgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBzaG91bGQgY29ycmVzcG9uZCB0byB0aGUgZnJhbWUgZHVyYXRpb24gd2hlbiBvbmx5IHRoYXQKK3N0cmVhbSBpcyBhY3RpdmUsPHdici8+IHdpdGggYWxsIHByb2Nlc3NpbmcgKHR5cGljYWxseSBpbiBhbmRyb2lkLjx3YnIvPiouPHdici8+bW9kZSkKK3NldCB0byBlaXRoZXIgT0ZGIG9yIEZBU1QuPHdici8+PC9wPgorPHA+V2hlbiBtdWx0aXBsZSBzdHJlYW1zIGFyZSB1c2VkIGluIGEgcmVxdWVzdCw8d2JyLz4gdGhlIG1pbmltdW0gZnJhbWUKK2R1cmF0aW9uIHdpbGwgYmUgbWF4KGluZGl2aWR1YWwgc3RyZWFtIG1pbiBkdXJhdGlvbnMpLjx3YnIvPjwvcD4KKzxwPlRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIG9mIGEgc3RyZWFtIChvZiBhIHBhcnRpY3VsYXIgZm9ybWF0LDx3YnIvPiBzaXplKQoraXMgdGhlIHNhbWUgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBzdHJlYW0gaXMgaW5wdXQgb3Igb3V0cHV0Ljx3YnIvPjwvcD4KKzxwPlNlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4gYW5kCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdGFsbDx3YnIvPkR1cmF0aW9uczwvYT4gZm9yIG1vcmUgZGV0YWlscyBhYm91dAorY2FsY3VsYXRpbmcgdGhlIG1heCBmcmFtZSByYXRlLjx3YnIvPjwvcD4KKzxwPihLZWVwIGluIHN5bmMgd2l0aCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uPC9hPik8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoU3RhbGxEdXJhdGlvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5kZXB0aC48d2JyLz5hdmFpbGFibGU8d2JyLz5EZXB0aDx3YnIvPlN0YWxsPHdici8+RHVyYXRpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0IHggbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljIGFzIHN0cmVhbUNvbmZpZ3VyYXRpb25EdXJhdGlvbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGlzIGxpc3RzIHRoZSBtYXhpbXVtIHN0YWxsIGR1cmF0aW9uIGZvciBlYWNoCitvdXRwdXQgZm9ybWF0Lzx3YnIvPnNpemUgY29tYmluYXRpb24gZm9yIGRlcHRoIHN0cmVhbXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIChmb3JtYXQsPHdici8+IHdpZHRoLDx3YnIvPiBoZWlnaHQsPHdici8+IG5zKSB4IG4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0RFUFRIIj5ERVBUSDwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkEgc3RhbGwgZHVyYXRpb24gaXMgaG93IG11Y2ggZXh0cmEgdGltZSB3b3VsZCBnZXQgYWRkZWQKK3RvIHRoZSBub3JtYWwgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBmb3IgYSByZXBlYXRpbmcgcmVxdWVzdAordGhhdCBoYXMgc3RyZWFtcyB3aXRoIG5vbi16ZXJvIHN0YWxsLjx3YnIvPjwvcD4KKzxwPlRoaXMgZnVuY3Rpb25zIHNpbWlsYXJseSB0bworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdGFsbER1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RhbGw8d2JyLz5EdXJhdGlvbnM8L2E+IGZvciBkZXB0aAorc3RyZWFtcy48d2JyLz48L3A+Cis8cD5BbGwgZGVwdGggb3V0cHV0IHN0cmVhbSBmb3JtYXRzIG1heSBoYXZlIGEgbm9uemVybyBzdGFsbAorZHVyYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5kZXB0aC5kZXB0aElzRXhjbHVzaXZlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+ZGVwdGguPHdici8+ZGVwdGg8d2JyLz5Jczx3YnIvPkV4Y2x1c2l2ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBTFNFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UUlVFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5JbmRpY2F0ZXMgd2hldGhlciBhIGNhcHR1cmUgcmVxdWVzdCBtYXkgdGFyZ2V0IGJvdGggYQorREVQVEgxNiAvPHdici8+IERFUFRIXzx3YnIvPlBPSU5UXzx3YnIvPkNMT1VEIG91dHB1dCw8d2JyLz4gYW5kIG5vcm1hbCBjb2xvciBvdXRwdXRzIChzdWNoIGFzCitZVVZfPHdici8+NDIwXzx3YnIvPjg4OCw8d2JyLz4gSlBFRyw8d2JyLz4gb3IgUkFXKSBzaW11bHRhbmVvdXNseS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBUUlVFLDx3YnIvPiBpbmNsdWRpbmcgYm90aCBkZXB0aCBhbmQgY29sb3Igb3V0cHV0cyBpbiBhIHNpbmdsZQorY2FwdHVyZSByZXF1ZXN0IGlzIG5vdCBzdXBwb3J0ZWQuPHdici8+IEFuIGFwcGxpY2F0aW9uIG11c3QgaW50ZXJsZWF2ZSBjb2xvcgorYW5kIGRlcHRoIHJlcXVlc3RzLjx3YnIvPiAgSWYgRkFMU0UsPHdici8+IGEgc2luZ2xlIHJlcXVlc3QgY2FuIHRhcmdldCBib3RoIHR5cGVzCitvZiBvdXRwdXQuPHdici8+PC9wPgorPHA+VHlwaWNhbGx5LDx3YnIvPiB0aGlzIHJlc3RyaWN0aW9uIGV4aXN0cyBvbiBjYW1lcmEgZGV2aWNlcyB0aGF0CituZWVkIHRvIGVtaXQgYSBzcGVjaWZpYyBwYXR0ZXJuIG9yIHdhdmVsZW5ndGggb2YgbGlnaHQgdG8KK21lYXN1cmUgZGVwdGggdmFsdWVzLDx3YnIvPiB3aGljaCBjYXVzZXMgdGhlIGNvbG9yIGltYWdlIHRvIGJlCitjb3JydXB0ZWQgZHVyaW5nIGRlcHRoIG1lYXN1cmVtZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+Cis8IS0tIDwvbmFtZXNwYWNlPiAtLT4KKyAgPC90YWJsZT4KKworICA8ZGl2IGNsYXNzPSJ0YWdzIiBpZD0idGFnX2luZGV4Ij4KKyAgICA8aDI+VGFnczwvaDI+CisgICAgPHVsPgorICAgICAgPGxpIGlkPSJ0YWdfQkMiPkJDIC0gCisgICAgICAgIE5lZWRlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgSmF2YSBBUEkKKyAgICAKKyAgICAgICAgPHVsIGNsYXNzPSJ0YWdzX2VudHJpZXMiPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlQW50aWJhbmRpbmdNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPmFuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuY29udHJvbC5hZUxvY2s8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC5jb250cm9sLmFlTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj5hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlIj5hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXI8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC5jb250cm9sLmFmTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj5hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuY29udHJvbC5hZlRyaWdnZXI8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuY29udHJvbC5hd2JMb2NrPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnM8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50PC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlIj5hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC5jb250cm9sLm1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZSI+YW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZUFudGliYW5kaW5nTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZUFudGliYW5kaW5nTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVUYXJnZXRGcHNSYW5nZXMiPmFuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZVRhcmdldEZwc1JhbmdlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblJhbmdlIj5hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25SYW5nZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPmFuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXA8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWZBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC5jb250cm9sLmFmQXZhaWxhYmxlTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlRWZmZWN0cyI+YW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUVmZmVjdHM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlU2NlbmVNb2RlcyI+YW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVNjZW5lTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlVmlkZW9TdGFiaWxpemF0aW9uTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVWaWRlb1N0YWJpbGl6YXRpb25Nb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hd2JBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC5jb250cm9sLmF3YkF2YWlsYWJsZU1vZGVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnMiPmFuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZU92ZXJyaWRlcyI+YW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZU92ZXJyaWRlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUxvY2tBdmFpbGFibGUiPmFuZHJvaWQuY29udHJvbC5hZUxvY2tBdmFpbGFibGU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXdiTG9ja0F2YWlsYWJsZSI+YW5kcm9pZC5jb250cm9sLmF3YkxvY2tBdmFpbGFibGU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZmxhc2gubW9kZSI+YW5kcm9pZC5mbGFzaC5tb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmZsYXNoLmluZm8uYXZhaWxhYmxlIj5hbmRyb2lkLmZsYXNoLmluZm8uYXZhaWxhYmxlPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzQ29vcmRpbmF0ZXMiPmFuZHJvaWQuanBlZy5ncHNDb29yZGluYXRlczwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzUHJvY2Vzc2luZ01ldGhvZCI+YW5kcm9pZC5qcGVnLmdwc1Byb2Nlc3NpbmdNZXRob2Q8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLmdwc1RpbWVzdGFtcCI+YW5kcm9pZC5qcGVnLmdwc1RpbWVzdGFtcDwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcub3JpZW50YXRpb24iPmFuZHJvaWQuanBlZy5vcmllbnRhdGlvbjwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcucXVhbGl0eSI+YW5kcm9pZC5qcGVnLnF1YWxpdHk8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLnRodW1ibmFpbFF1YWxpdHkiPmFuZHJvaWQuanBlZy50aHVtYm5haWxRdWFsaXR5PC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy50aHVtYm5haWxTaXplIj5hbmRyb2lkLmpwZWcudGh1bWJuYWlsU2l6ZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5qcGVnLmF2YWlsYWJsZVRodW1ibmFpbFNpemVzIj5hbmRyb2lkLmpwZWcuYXZhaWxhYmxlVGh1bWJuYWlsU2l6ZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRm9jYWxMZW5ndGhzIj5hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGb2NhbExlbmd0aHM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLmZvY3VzUmFuZ2UiPmFuZHJvaWQubGVucy5mb2N1c1JhbmdlPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0U3RyZWFtczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbjwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlRm9ybWF0cyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlRm9ybWF0czwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUpwZWdNaW5EdXJhdGlvbnMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUpwZWdNaW5EdXJhdGlvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVKcGVnU2l6ZXMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUpwZWdTaXplczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZU1heERpZ2l0YWxab29tIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNYXhEaWdpdGFsWm9vbTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZE1pbkR1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkTWluRHVyYXRpb25zPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkU2l6ZXMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZFNpemVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUmF3TWluRHVyYXRpb25zIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVSYXdNaW5EdXJhdGlvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGh5c2ljYWxTaXplIj5hbmRyb2lkLnNlbnNvci5pbmZvLnBoeXNpY2FsU2l6ZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcmllbnRhdGlvbiI+YW5kcm9pZC5zZW5zb3Iub3JpZW50YXRpb248L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGltZXN0YW1wIj5hbmRyb2lkLnNlbnNvci50aW1lc3RhbXA8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4RmFjZUNvdW50Ij5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhGYWNlQ291bnQ8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VJZHMiPmFuZHJvaWQuc3RhdGlzdGljcy5mYWNlSWRzPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUxhbmRtYXJrcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VMYW5kbWFya3M8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlUmVjdGFuZ2xlcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VSZWN0YW5nbGVzPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVNjb3JlcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VTY29yZXM8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5mb2NhbExlbmd0aCI+YW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2U8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPiA8IS0tIHRhZ19CQyAtLT4KKyAgICAgIDxsaSBpZD0idGFnX1YxIj5WMSAtIAorICAgICAgICBOZXcgZmVhdHVyZXMgZm9yIGZpcnN0IGNhbWVyYSAyIHJlbGVhc2UgKEFQSTEpCisgICAgCisgICAgICAgIDx1bCBjbGFzcz0idGFnc19lbnRyaWVzIj4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hdmFpbGFibGVBYmVycmF0aW9uTW9kZXMiPmFuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmF2YWlsYWJsZUFiZXJyYXRpb25Nb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9uczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuZWRnZS5tb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmVkZ2UuYXZhaWxhYmxlRWRnZU1vZGVzIj5hbmRyb2lkLmVkZ2UuYXZhaWxhYmxlRWRnZU1vZGVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmhvdFBpeGVsLm1vZGUiPmFuZHJvaWQuaG90UGl4ZWwubW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ob3RQaXhlbC5hdmFpbGFibGVIb3RQaXhlbE1vZGVzIj5hbmRyb2lkLmhvdFBpeGVsLmF2YWlsYWJsZUhvdFBpeGVsTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5hcGVydHVyZSI+YW5kcm9pZC5sZW5zLmFwZXJ0dXJlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5Ij5hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPmFuZHJvaWQubGVucy5mb2NhbExlbmd0aDwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2U8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlQXBlcnR1cmVzIj5hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVBcGVydHVyZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGaWx0ZXJEZW5zaXRpZXMiPmFuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZpbHRlckRlbnNpdGllczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZvY2FsTGVuZ3RocyI+YW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRm9jYWxMZW5ndGhzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlT3B0aWNhbFN0YWJpbGl6YXRpb24iPmFuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZU9wdGljYWxTdGFiaWxpemF0aW9uPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2UiPmFuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uc2hhZGluZ01hcFNpemUiPmFuZHJvaWQubGVucy5pbmZvLnNoYWRpbmdNYXBTaXplPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uZm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uIj5hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb248L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLnN0YXRlIj5hbmRyb2lkLmxlbnMuc3RhdGU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5hdmFpbGFibGVOb2lzZVJlZHVjdGlvbk1vZGVzIj5hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5pZCI+YW5kcm9pZC5yZXF1ZXN0LmlkPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNaW5GcmFtZUR1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWluRnJhbWVEdXJhdGlvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdGFsbER1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RhbGxEdXJhdGlvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb248L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5PC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPmFuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2U8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLm1heEZyYW1lRHVyYXRpb24iPmFuZHJvaWQuc2Vuc29yLmluZm8ubWF4RnJhbWVEdXJhdGlvbjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGh5c2ljYWxTaXplIj5hbmRyb2lkLnNlbnNvci5pbmZvLnBoeXNpY2FsU2l6ZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlIj5hbmRyb2lkLnNlbnNvci5pbmZvLnRpbWVzdGFtcFNvdXJjZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm1heEFuYWxvZ1NlbnNpdGl2aXR5Ij5hbmRyb2lkLnNlbnNvci5tYXhBbmFsb2dTZW5zaXRpdml0eTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5yb2xsaW5nU2h1dHRlclNrZXciPmFuZHJvaWQuc2Vuc29yLnJvbGxpbmdTaHV0dGVyU2tldzwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcE1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUhvdFBpeGVsTWFwTW9kZXMiPmFuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUhvdFBpeGVsTWFwTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwIj5hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXA8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+YW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3luYy5tYXhMYXRlbmN5Ij5hbmRyb2lkLnN5bmMubWF4TGF0ZW5jeTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC5lZGdlLm1vZGU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuaG90UGl4ZWwubW9kZSI+YW5kcm9pZC5ob3RQaXhlbC5tb2RlPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPmFuZHJvaWQubGVucy5hcGVydHVyZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHkiPmFuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5PC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+IDwhLS0gdGFnX1YxIC0tPgorICAgICAgPGxpIGlkPSJ0YWdfUkFXIj5SQVcgLSAKKyAgICAgICAgTmVlZGVkIGZvciB1c2VmdWwgUkFXIGltYWdlIHByb2Nlc3NpbmcgYW5kIERORyBmaWxlIHN1cHBvcnQKKyAgICAKKyAgICAgICAgPHVsIGNsYXNzPSJ0YWdzX2VudHJpZXMiPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ob3RQaXhlbC5tb2RlIj5hbmRyb2lkLmhvdFBpeGVsLm1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaG90UGl4ZWwuYXZhaWxhYmxlSG90UGl4ZWxNb2RlcyI+YW5kcm9pZC5ob3RQaXhlbC5hdmFpbGFibGVIb3RQaXhlbE1vZGVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5jb2xvckZpbHRlckFycmFuZ2VtZW50Ij5hbmRyb2lkLnNlbnNvci5pbmZvLmNvbG9yRmlsdGVyQXJyYW5nZW1lbnQ8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby53aGl0ZUxldmVsIj5hbmRyb2lkLnNlbnNvci5pbmZvLndoaXRlTGV2ZWw8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQxIj5hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQyIj5hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMSI+YW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0xPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0yIj5hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTI8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTEiPmFuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMiI+YW5kcm9pZC5zZW5zb3IuY29sb3JUcmFuc2Zvcm0yPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDEiPmFuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgxPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDIiPmFuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgyPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPmFuZHJvaWQuc2Vuc29yLmJsYWNrTGV2ZWxQYXR0ZXJuPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcERpbWVuc2lvbnMiPmFuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXBEaW1lbnNpb25zPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLm5ldXRyYWxDb2xvclBvaW50Ij5hbmRyb2lkLnNlbnNvci5uZXV0cmFsQ29sb3JQb2ludDwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3Iubm9pc2VQcm9maWxlIj5hbmRyb2lkLnNlbnNvci5ub2lzZVByb2ZpbGU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXAiPmFuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXA8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVUb25lQ3VydmUiPmFuZHJvaWQuc2Vuc29yLnByb2ZpbGVUb25lQ3VydmU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmdyZWVuU3BsaXQiPmFuZHJvaWQuc2Vuc29yLmdyZWVuU3BsaXQ8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmR5bmFtaWNCbGFja0xldmVsIj5hbmRyb2lkLnNlbnNvci5keW5hbWljQmxhY2tMZXZlbDwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZHluYW1pY1doaXRlTGV2ZWwiPmFuZHJvaWQuc2Vuc29yLmR5bmFtaWNXaGl0ZUxldmVsPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcDwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmhvdFBpeGVsLm1vZGUiPmFuZHJvaWQuaG90UGl4ZWwubW9kZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+IDwhLS0gdGFnX1JBVyAtLT4KKyAgICAgIDxsaSBpZD0idGFnX0hBTDIiPkhBTDIgLSAKKyAgICAgICAgRW50cnkgaXMgb25seSB1c2VkIGJ5IGNhbWVyYSBkZXZpY2UgSEFMIDIueAorICAgIAorICAgICAgICA8dWwgY2xhc3M9InRhZ3NfZW50cmllcyI+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QuaW5wdXRTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3QuaW5wdXRTdHJlYW1zPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3Qub3V0cHV0U3RyZWFtczwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QudHlwZSI+YW5kcm9pZC5yZXF1ZXN0LnR5cGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1SZXByb2Nlc3NTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3QubWF4TnVtUmVwcm9jZXNzU3RyZWFtczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ibGFja0xldmVsLmxvY2siPmFuZHJvaWQuYmxhY2tMZXZlbC5sb2NrPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+IDwhLS0gdGFnX0hBTDIgLS0+CisgICAgICA8bGkgaWQ9InRhZ19GVUxMIj5GVUxMIC0gCisgICAgICAgIEVudHJ5IGlzIHJlcXVpcmVkIGZvciBmdWxsIGhhcmR3YXJlIGxldmVsIGRldmljZXMsIGFuZCBvcHRpb25hbCBmb3Igb3RoZXIgaGFyZHdhcmUgbGV2ZWxzCisgICAgCisgICAgICAgIDx1bCBjbGFzcz0idGFnc19lbnRyaWVzIj4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5tYXhBbmFsb2dTZW5zaXRpdml0eSI+YW5kcm9pZC5zZW5zb3IubWF4QW5hbG9nU2Vuc2l0aXZpdHk8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+IDwhLS0gdGFnX0ZVTEwgLS0+CisgICAgICA8bGkgaWQ9InRhZ19ERVBUSCI+REVQVEggLSAKKyAgICAgICAgRW50cnkgaXMgcmVxdWlyZWQgZm9yIHRoZSBkZXB0aCBjYXBhYmlsaXR5LgorICAgIAorICAgICAgICA8dWwgY2xhc3M9InRhZ3NfZW50cmllcyI+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbiI+YW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb24iPmFuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb248L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uIj5hbmRyb2lkLmxlbnMucmFkaWFsRGlzdG9ydGlvbjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGgubWF4RGVwdGhTYW1wbGVzIj5hbmRyb2lkLmRlcHRoLm1heERlcHRoU2FtcGxlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucyI+YW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aE1pbkZyYW1lRHVyYXRpb25zIj5hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoTWluRnJhbWVEdXJhdGlvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoU3RhbGxEdXJhdGlvbnMiPmFuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhTdGFsbER1cmF0aW9uczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4gPCEtLSB0YWdfREVQVEggLS0+CisgICAgICA8bGkgaWQ9InRhZ19SRVBST0MiPlJFUFJPQyAtIAorICAgICAgICBFbnRyeSBpcyByZXF1aXJlZCBmb3IgdGhlIFlVViBvciBQUklWQVRFIHJlcHJvY2Vzc2luZyBjYXBhYmlsaXR5LgorICAgIAorICAgICAgICA8dWwgY2xhc3M9InRhZ3NfZW50cmllcyI+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC5lZGdlLm1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZWRnZS5hdmFpbGFibGVFZGdlTW9kZXMiPmFuZHJvaWQuZWRnZS5hdmFpbGFibGVFZGdlTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXMiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1JbnB1dFN0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5tYXhOdW1JbnB1dFN0cmVhbXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUlucHV0T3V0cHV0Rm9ybWF0c01hcDwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPmFuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcHJvY2Vzcy5tYXhDYXB0dXJlU3RhbGwiPmFuZHJvaWQucmVwcm9jZXNzLm1heENhcHR1cmVTdGFsbDwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC5lZGdlLm1vZGU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4gPCEtLSB0YWdfUkVQUk9DIC0tPgorICAgICAgPGxpIGlkPSJ0YWdfRlVUVVJFIj5GVVRVUkUgLSAKKyAgICAgICAgRW50cnkgaXMgIHVuZGVyLXNwZWNpZmllZCBhbmQgaXMgbm90IHJlcXVpcmVkIGZvciBub3cuIFRoaXMgaXMgZm9yIGJvb2sta2VlcGluZyBwdXJwb3NlLAorICAgICAgICBkbyBub3QgaW1wbGVtZW50IG9yIHVzZSBpdCwgaXQgbWF5IGJlIHJldmlzZWQgZm9yIGZ1dHVyZS4KKyAgICAKKyAgICAgICAgPHVsIGNsYXNzPSJ0YWdzX2VudHJpZXMiPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5kZW1vc2FpYy5tb2RlIj5hbmRyb2lkLmRlbW9zYWljLm1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLnN0cmVuZ3RoIj5hbmRyb2lkLmVkZ2Uuc3RyZW5ndGg8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5mbGFzaC5maXJpbmdQb3dlciI+YW5kcm9pZC5mbGFzaC5maXJpbmdQb3dlcjwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLmZpcmluZ1RpbWUiPmFuZHJvaWQuZmxhc2guZmlyaW5nVGltZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmNoYXJnZUR1cmF0aW9uIj5hbmRyb2lkLmZsYXNoLmluZm8uY2hhcmdlRHVyYXRpb248L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmZsYXNoLmNvbG9yVGVtcGVyYXR1cmUiPmFuZHJvaWQuZmxhc2guY29sb3JUZW1wZXJhdHVyZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2gubWF4RW5lcmd5Ij5hbmRyb2lkLmZsYXNoLm1heEVuZXJneTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcuc2l6ZSI+YW5kcm9pZC5qcGVnLnNpemU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLnN0cmVuZ3RoIj5hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLnN0cmVuZ3RoPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5tZXRhZGF0YU1vZGUiPmFuZHJvaWQucmVxdWVzdC5tZXRhZGF0YU1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmJhc2VHYWluRmFjdG9yIj5hbmRyb2lkLnNlbnNvci5iYXNlR2FpbkZhY3RvcjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci50ZW1wZXJhdHVyZSI+YW5kcm9pZC5zZW5zb3IudGVtcGVyYXR1cmU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNoYWRpbmcuc3RyZW5ndGgiPmFuZHJvaWQuc2hhZGluZy5zdHJlbmd0aDwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuaGlzdG9ncmFtTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbU1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXBNb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5oaXN0b2dyYW1CdWNrZXRDb3VudCI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uaGlzdG9ncmFtQnVja2V0Q291bnQ8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhIaXN0b2dyYW1Db3VudCI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4SGlzdG9ncmFtQ291bnQ8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhTaGFycG5lc3NNYXBWYWx1ZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4U2hhcnBuZXNzTWFwVmFsdWU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5zaGFycG5lc3NNYXBTaXplIj5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5zaGFycG5lc3NNYXBTaXplPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW0iPmFuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW08L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXAiPmFuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXA8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPiA8IS0tIHRhZ19GVVRVUkUgLS0+CisgICAgPC91bD4KKyAgPC9kaXY+CisKKyAgWyA8YSBocmVmPSIjIj50b3A8L2E+IF0KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvY2FtZXJhL21ldGFkYXRhLzMuMi90eXBlcy5oYWwgYi9jYW1lcmEvbWV0YWRhdGEvMy4yL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2QxZDVlCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL21ldGFkYXRhLzMuMi90eXBlcy5oYWwKQEAgLTAsMCArMSwxMzE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI7CisKKy8qKgorICogVG9wIGxldmVsIGhpZXJhcmNoeSBkZWZpbml0aW9ucyBmb3IgY2FtZXJhIG1ldGFkYXRhLiAqX0lORk8gc2VjdGlvbnMgYXJlIGZvcgorICogdGhlIHN0YXRpYyBtZXRhZGF0YSB0aGF0IGNhbiBiZSByZXRyaXZlZCB3aXRob3V0IG9wZW5pbmcgdGhlIGNhbWVyYSBkZXZpY2UuCisgKiBOZXcgc2VjdGlvbnMgbXVzdCBiZSBhZGRlZCByaWdodCBiZWZvcmUgQU5EUk9JRF9TRUNUSU9OX0NPVU5UIHRvIG1haW50YWluCisgKiBleGlzdGluZyBlbnVtZXJhdGlvbnMuCisgKi8KK2VudW0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTiwKKworICAgIEFORFJPSURfQ09OVFJPTCwKKworICAgIEFORFJPSURfREVNT1NBSUMsCisKKyAgICBBTkRST0lEX0VER0UsCisKKyAgICBBTkRST0lEX0ZMQVNILAorCisgICAgQU5EUk9JRF9GTEFTSF9JTkZPLAorCisgICAgQU5EUk9JRF9IT1RfUElYRUwsCisKKyAgICBBTkRST0lEX0pQRUcsCisKKyAgICBBTkRST0lEX0xFTlMsCisKKyAgICBBTkRST0lEX0xFTlNfSU5GTywKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OLAorCisgICAgQU5EUk9JRF9RVUlSS1MsCisKKyAgICBBTkRST0lEX1JFUVVFU1QsCisKKyAgICBBTkRST0lEX1NDQUxFUiwKKworICAgIEFORFJPSURfU0VOU09SLAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GTywKKworICAgIEFORFJPSURfU0hBRElORywKKworICAgIEFORFJPSURfU1RBVElTVElDUywKKworICAgIEFORFJPSURfU1RBVElTVElDU19JTkZPLAorCisgICAgQU5EUk9JRF9UT05FTUFQLAorCisgICAgQU5EUk9JRF9MRUQsCisKKyAgICBBTkRST0lEX0lORk8sCisKKyAgICBBTkRST0lEX0JMQUNLX0xFVkVMLAorCisgICAgQU5EUk9JRF9TWU5DLAorCisgICAgQU5EUk9JRF9SRVBST0NFU1MsCisKKyAgICBBTkRST0lEX0RFUFRILAorCisgICAgQU5EUk9JRF9TRUNUSU9OX0NPVU5ULAorCisgICAgVkVORE9SX1NFQ1RJT04gPSAweDgwMDAsCisKK307CisKKy8qKgorICogSGllcmFyY2h5IHBvc2l0aW9ucyBpbiBlbnVtIHNwYWNlLiBBbGwgdmVuZG9yIGV4dGVuc2lvbiB0YWdzIG11c3QgYmUKKyAqIGRlZmluZWQgd2l0aCB0YWcgPj0gVkVORE9SX1NFQ1RJT05fU1RBUlQKKyAqLworZW51bSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydCA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OIDw8IDE2LAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfQ09OVFJPTCA8PCAxNiwKKworICAgIEFORFJPSURfREVNT1NBSUNfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9ERU1PU0FJQyA8PCAxNiwKKworICAgIEFORFJPSURfRURHRV9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX0VER0UgPDwgMTYsCisKKyAgICBBTkRST0lEX0ZMQVNIX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfRkxBU0ggPDwgMTYsCisKKyAgICBBTkRST0lEX0ZMQVNIX0lORk9fU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9GTEFTSF9JTkZPIDw8IDE2LAorCisgICAgQU5EUk9JRF9IT1RfUElYRUxfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9IT1RfUElYRUwgPDwgMTYsCisKKyAgICBBTkRST0lEX0pQRUdfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9KUEVHIDw8IDE2LAorCisgICAgQU5EUk9JRF9MRU5TX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfTEVOUyA8PCAxNiwKKworICAgIEFORFJPSURfTEVOU19JTkZPX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfTEVOU19JTkZPIDw8IDE2LAorCisgICAgQU5EUk9JRF9OT0lTRV9SRURVQ1RJT05fU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9OT0lTRV9SRURVQ1RJT04gPDwgMTYsCisKKyAgICBBTkRST0lEX1FVSVJLU19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1FVSVJLUyA8PCAxNiwKKworICAgIEFORFJPSURfUkVRVUVTVF9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1JFUVVFU1QgPDwgMTYsCisKKyAgICBBTkRST0lEX1NDQUxFUl9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1NDQUxFUiA8PCAxNiwKKworICAgIEFORFJPSURfU0VOU09SX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfU0VOU09SIDw8IDE2LAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1NFTlNPUl9JTkZPIDw8IDE2LAorCisgICAgQU5EUk9JRF9TSEFESU5HX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfU0hBRElORyA8PCAxNiwKKworICAgIEFORFJPSURfU1RBVElTVElDU19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1NUQVRJU1RJQ1MgPDwgMTYsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSU5GT19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1NUQVRJU1RJQ1NfSU5GTyA8PCAxNiwKKworICAgIEFORFJPSURfVE9ORU1BUF9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1RPTkVNQVAgPDwgMTYsCisKKyAgICBBTkRST0lEX0xFRF9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX0xFRCA8PCAxNiwKKworICAgIEFORFJPSURfSU5GT19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX0lORk8gPDwgMTYsCisKKyAgICBBTkRST0lEX0JMQUNLX0xFVkVMX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfQkxBQ0tfTEVWRUwgPDwgMTYsCisKKyAgICBBTkRST0lEX1NZTkNfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9TWU5DIDw8IDE2LAorCisgICAgQU5EUk9JRF9SRVBST0NFU1NfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9SRVBST0NFU1MgPDwgMTYsCisKKyAgICBBTkRST0lEX0RFUFRIX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfREVQVEggPDwgMTYsCisKKyAgICBWRU5ET1JfU0VDVElPTl9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpWRU5ET1JfU0VDVElPTiA8PCAxNiwKKworfTsKKworLyoqCisgKiBNYWluIGVudW0gZm9yIGRlZmluaW5nIGNhbWVyYSBtZXRhZGF0YSB0YWdzLiBOZXcgZW50cmllcyBtdXN0IGFsd2F5cyBnbworICogYmVmb3JlIHRoZSBzZWN0aW9uIF9FTkQgdGFnIHRvIHByZXNlcnZlIGV4aXN0aW5nIGVudW1lcmF0aW9uIHZhbHVlcy4gSW4KKyAqIGFkZGl0aW9uLCB0aGUgbmFtZSBhbmQgdHlwZSBvZiB0aGUgdGFnIG5lZWRzIHRvIGJlIGFkZGVkIHRvCisgKiBzeXN0ZW0vbWVkaWEvY2FtZXJhL3NyYy9jYW1lcmFfbWV0YWRhdGFfdGFnX2luZm8uYworICovCitlbnVtIENhbWVyYU1ldGFkYXRhVGFnIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9NT0RFID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX1NUQVJULAorCisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX1RSQU5TRk9STSwKKworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9HQUlOUywKKworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9BQkVSUkFUSU9OX01PREUsCisKKyAgICBBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fQVZBSUxBQkxFX0FCRVJSQVRJT05fTU9ERVMsCisKKyAgICBBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fRU5ELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0FOVElCQU5ESU5HX01PREUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX0NPTlRST0xfU1RBUlQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfRVhQT1NVUkVfQ09NUEVOU0FUSU9OLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0ssCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfTU9ERSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9SRUdJT05TLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1RBUkdFVF9GUFNfUkFOR0UsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfUFJFQ0FQVFVSRV9UUklHR0VSLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX01PREUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfUkVHSU9OUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9UUklHR0VSLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9MT0NLLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9NT0RFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9SRUdJT05TLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0NBUFRVUkVfSU5URU5ULAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX01PREUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERSwKKworICAgIEFORFJPSURfQ09OVFJPTF9WSURFT19TVEFCSUxJWkFUSU9OX01PREUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfQVZBSUxBQkxFX0FOVElCQU5ESU5HX01PREVTLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0FWQUlMQUJMRV9NT0RFUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9BVkFJTEFCTEVfVEFSR0VUX0ZQU19SQU5HRVMsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfQ09NUEVOU0FUSU9OX1JBTkdFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0NPTVBFTlNBVElPTl9TVEVQLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX0FWQUlMQUJMRV9NT0RFUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BVkFJTEFCTEVfRUZGRUNUUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BVkFJTEFCTEVfU0NFTkVfTU9ERVMsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVZBSUxBQkxFX1ZJREVPX1NUQUJJTElaQVRJT05fTU9ERVMsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX0FWQUlMQUJMRV9NT0RFUywKKworICAgIEFORFJPSURfQ09OVFJPTF9NQVhfUkVHSU9OUywKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX09WRVJSSURFUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX0lELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1NUQVRFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX1NUQVRFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX1RSSUdHRVJfSUQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX1NUQVRFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9ISUdIX1NQRUVEX1ZJREVPX0NPTkZJR1VSQVRJT05TLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfQVZBSUxBQkxFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9MT0NLX0FWQUlMQUJMRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BVkFJTEFCTEVfTU9ERVMsCisKKyAgICBBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1RfUkFOR0UsCisKKyAgICBBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1QsCisKKyAgICBBTkRST0lEX0NPTlRST0xfRU5BQkxFX1pTTCwKKworICAgIEFORFJPSURfQ09OVFJPTF9FTkQsCisKKyAgICBBTkRST0lEX0RFTU9TQUlDX01PREUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX0RFTU9TQUlDX1NUQVJULAorCisgICAgQU5EUk9JRF9ERU1PU0FJQ19FTkQsCisKKyAgICBBTkRST0lEX0VER0VfTU9ERSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfRURHRV9TVEFSVCwKKworICAgIEFORFJPSURfRURHRV9TVFJFTkdUSCwKKworICAgIEFORFJPSURfRURHRV9BVkFJTEFCTEVfRURHRV9NT0RFUywKKworICAgIEFORFJPSURfRURHRV9FTkQsCisKKyAgICBBTkRST0lEX0ZMQVNIX0ZJUklOR19QT1dFUiA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfRkxBU0hfU1RBUlQsCisKKyAgICBBTkRST0lEX0ZMQVNIX0ZJUklOR19USU1FLAorCisgICAgQU5EUk9JRF9GTEFTSF9NT0RFLAorCisgICAgQU5EUk9JRF9GTEFTSF9DT0xPUl9URU1QRVJBVFVSRSwKKworICAgIEFORFJPSURfRkxBU0hfTUFYX0VORVJHWSwKKworICAgIEFORFJPSURfRkxBU0hfU1RBVEUsCisKKyAgICBBTkRST0lEX0ZMQVNIX0VORCwKKworICAgIEFORFJPSURfRkxBU0hfSU5GT19BVkFJTEFCTEUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX0ZMQVNIX0lORk9fU1RBUlQsCisKKyAgICBBTkRST0lEX0ZMQVNIX0lORk9fQ0hBUkdFX0RVUkFUSU9OLAorCisgICAgQU5EUk9JRF9GTEFTSF9JTkZPX0VORCwKKworICAgIEFORFJPSURfSE9UX1BJWEVMX01PREUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX0hPVF9QSVhFTF9TVEFSVCwKKworICAgIEFORFJPSURfSE9UX1BJWEVMX0FWQUlMQUJMRV9IT1RfUElYRUxfTU9ERVMsCisKKyAgICBBTkRST0lEX0hPVF9QSVhFTF9FTkQsCisKKyAgICBBTkRST0lEX0pQRUdfR1BTX0NPT1JESU5BVEVTID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9KUEVHX1NUQVJULAorCisgICAgQU5EUk9JRF9KUEVHX0dQU19QUk9DRVNTSU5HX01FVEhPRCwKKworICAgIEFORFJPSURfSlBFR19HUFNfVElNRVNUQU1QLAorCisgICAgQU5EUk9JRF9KUEVHX09SSUVOVEFUSU9OLAorCisgICAgQU5EUk9JRF9KUEVHX1FVQUxJVFksCisKKyAgICBBTkRST0lEX0pQRUdfVEhVTUJOQUlMX1FVQUxJVFksCisKKyAgICBBTkRST0lEX0pQRUdfVEhVTUJOQUlMX1NJWkUsCisKKyAgICBBTkRST0lEX0pQRUdfQVZBSUxBQkxFX1RIVU1CTkFJTF9TSVpFUywKKworICAgIEFORFJPSURfSlBFR19NQVhfU0laRSwKKworICAgIEFORFJPSURfSlBFR19TSVpFLAorCisgICAgQU5EUk9JRF9KUEVHX0VORCwKKworICAgIEFORFJPSURfTEVOU19BUEVSVFVSRSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfTEVOU19TVEFSVCwKKworICAgIEFORFJPSURfTEVOU19GSUxURVJfREVOU0lUWSwKKworICAgIEFORFJPSURfTEVOU19GT0NBTF9MRU5HVEgsCisKKyAgICBBTkRST0lEX0xFTlNfRk9DVVNfRElTVEFOQ0UsCisKKyAgICBBTkRST0lEX0xFTlNfT1BUSUNBTF9TVEFCSUxJWkFUSU9OX01PREUsCisKKyAgICBBTkRST0lEX0xFTlNfRkFDSU5HLAorCisgICAgQU5EUk9JRF9MRU5TX1BPU0VfUk9UQVRJT04sCisKKyAgICBBTkRST0lEX0xFTlNfUE9TRV9UUkFOU0xBVElPTiwKKworICAgIEFORFJPSURfTEVOU19GT0NVU19SQU5HRSwKKworICAgIEFORFJPSURfTEVOU19TVEFURSwKKworICAgIEFORFJPSURfTEVOU19JTlRSSU5TSUNfQ0FMSUJSQVRJT04sCisKKyAgICBBTkRST0lEX0xFTlNfUkFESUFMX0RJU1RPUlRJT04sCisKKyAgICBBTkRST0lEX0xFTlNfRU5ELAorCisgICAgQU5EUk9JRF9MRU5TX0lORk9fQVZBSUxBQkxFX0FQRVJUVVJFUyA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfTEVOU19JTkZPX1NUQVJULAorCisgICAgQU5EUk9JRF9MRU5TX0lORk9fQVZBSUxBQkxFX0ZJTFRFUl9ERU5TSVRJRVMsCisKKyAgICBBTkRST0lEX0xFTlNfSU5GT19BVkFJTEFCTEVfRk9DQUxfTEVOR1RIUywKKworICAgIEFORFJPSURfTEVOU19JTkZPX0FWQUlMQUJMRV9PUFRJQ0FMX1NUQUJJTElaQVRJT04sCisKKyAgICBBTkRST0lEX0xFTlNfSU5GT19IWVBFUkZPQ0FMX0RJU1RBTkNFLAorCisgICAgQU5EUk9JRF9MRU5TX0lORk9fTUlOSU1VTV9GT0NVU19ESVNUQU5DRSwKKworICAgIEFORFJPSURfTEVOU19JTkZPX1NIQURJTkdfTUFQX1NJWkUsCisKKyAgICBBTkRST0lEX0xFTlNfSU5GT19GT0NVU19ESVNUQU5DRV9DQUxJQlJBVElPTiwKKworICAgIEFORFJPSURfTEVOU19JTkZPX0VORCwKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OX01PREUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX05PSVNFX1JFRFVDVElPTl9TVEFSVCwKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OX1NUUkVOR1RILAorCisgICAgQU5EUk9JRF9OT0lTRV9SRURVQ1RJT05fQVZBSUxBQkxFX05PSVNFX1JFRFVDVElPTl9NT0RFUywKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OX0VORCwKKworICAgIEFORFJPSURfUVVJUktTX01FVEVSSU5HX0NST1BfUkVHSU9OID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9RVUlSS1NfU1RBUlQsCisKKyAgICBBTkRST0lEX1FVSVJLU19UUklHR0VSX0FGX1dJVEhfQVVUTywKKworICAgIEFORFJPSURfUVVJUktTX1VTRV9aU0xfRk9STUFULAorCisgICAgQU5EUk9JRF9RVUlSS1NfVVNFX1BBUlRJQUxfUkVTVUxULAorCisgICAgQU5EUk9JRF9RVUlSS1NfUEFSVElBTF9SRVNVTFQsCisKKyAgICBBTkRST0lEX1FVSVJLU19FTkQsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfRlJBTUVfQ09VTlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1JFUVVFU1RfU1RBUlQsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfSUQsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfSU5QVVRfU1RSRUFNUywKKworICAgIEFORFJPSURfUkVRVUVTVF9NRVRBREFUQV9NT0RFLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX09VVFBVVF9TVFJFQU1TLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX1RZUEUsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfTUFYX05VTV9PVVRQVVRfU1RSRUFNUywKKworICAgIEFORFJPSURfUkVRVUVTVF9NQVhfTlVNX1JFUFJPQ0VTU19TVFJFQU1TLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX01BWF9OVU1fSU5QVVRfU1RSRUFNUywKKworICAgIEFORFJPSURfUkVRVUVTVF9QSVBFTElORV9ERVBUSCwKKworICAgIEFORFJPSURfUkVRVUVTVF9QSVBFTElORV9NQVhfREVQVEgsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfUEFSVElBTF9SRVNVTFRfQ09VTlQsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFUywKKworICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfUkVRVUVTVF9LRVlTLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9SRVNVTFRfS0VZUywKKworICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0hBUkFDVEVSSVNUSUNTX0tFWVMsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfRU5ELAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQ1JPUF9SRUdJT04gPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1NDQUxFUl9TVEFSVCwKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9GT1JNQVRTLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0pQRUdfTUlOX0RVUkFUSU9OUywKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9KUEVHX1NJWkVTLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX01BWF9ESUdJVEFMX1pPT00sCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfUFJPQ0VTU0VEX01JTl9EVVJBVElPTlMsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfUFJPQ0VTU0VEX1NJWkVTLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1JBV19NSU5fRFVSQVRJT05TLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1JBV19TSVpFUywKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9JTlBVVF9PVVRQVVRfRk9STUFUU19NQVAsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfU1RSRUFNX0NPTkZJR1VSQVRJT05TLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX01JTl9GUkFNRV9EVVJBVElPTlMsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfU1RBTExfRFVSQVRJT05TLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQ1JPUFBJTkdfVFlQRSwKKworICAgIEFORFJPSURfU0NBTEVSX0VORCwKKworICAgIEFORFJPSURfU0VOU09SX0VYUE9TVVJFX1RJTUUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1NFTlNPUl9TVEFSVCwKKworICAgIEFORFJPSURfU0VOU09SX0ZSQU1FX0RVUkFUSU9OLAorCisgICAgQU5EUk9JRF9TRU5TT1JfU0VOU0lUSVZJVFksCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDEsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDIsCisKKyAgICBBTkRST0lEX1NFTlNPUl9DQUxJQlJBVElPTl9UUkFOU0ZPUk0xLAorCisgICAgQU5EUk9JRF9TRU5TT1JfQ0FMSUJSQVRJT05fVFJBTlNGT1JNMiwKKworICAgIEFORFJPSURfU0VOU09SX0NPTE9SX1RSQU5TRk9STTEsCisKKyAgICBBTkRST0lEX1NFTlNPUl9DT0xPUl9UUkFOU0ZPUk0yLAorCisgICAgQU5EUk9JRF9TRU5TT1JfRk9SV0FSRF9NQVRSSVgxLAorCisgICAgQU5EUk9JRF9TRU5TT1JfRk9SV0FSRF9NQVRSSVgyLAorCisgICAgQU5EUk9JRF9TRU5TT1JfQkFTRV9HQUlOX0ZBQ1RPUiwKKworICAgIEFORFJPSURfU0VOU09SX0JMQUNLX0xFVkVMX1BBVFRFUk4sCisKKyAgICBBTkRST0lEX1NFTlNPUl9NQVhfQU5BTE9HX1NFTlNJVElWSVRZLAorCisgICAgQU5EUk9JRF9TRU5TT1JfT1JJRU5UQVRJT04sCisKKyAgICBBTkRST0lEX1NFTlNPUl9QUk9GSUxFX0hVRV9TQVRfTUFQX0RJTUVOU0lPTlMsCisKKyAgICBBTkRST0lEX1NFTlNPUl9USU1FU1RBTVAsCisKKyAgICBBTkRST0lEX1NFTlNPUl9URU1QRVJBVFVSRSwKKworICAgIEFORFJPSURfU0VOU09SX05FVVRSQUxfQ09MT1JfUE9JTlQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9OT0lTRV9QUk9GSUxFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUFJPRklMRV9IVUVfU0FUX01BUCwKKworICAgIEFORFJPSURfU0VOU09SX1BST0ZJTEVfVE9ORV9DVVJWRSwKKworICAgIEFORFJPSURfU0VOU09SX0dSRUVOX1NQTElULAorCisgICAgQU5EUk9JRF9TRU5TT1JfVEVTVF9QQVRURVJOX0RBVEEsCisKKyAgICBBTkRST0lEX1NFTlNPUl9URVNUX1BBVFRFUk5fTU9ERSwKKworICAgIEFORFJPSURfU0VOU09SX0FWQUlMQUJMRV9URVNUX1BBVFRFUk5fTU9ERVMsCisKKyAgICBBTkRST0lEX1NFTlNPUl9ST0xMSU5HX1NIVVRURVJfU0tFVywKKworICAgIEFORFJPSURfU0VOU09SX09QVElDQUxfQkxBQ0tfUkVHSU9OUywKKworICAgIEFORFJPSURfU0VOU09SX0RZTkFNSUNfQkxBQ0tfTEVWRUwsCisKKyAgICBBTkRST0lEX1NFTlNPUl9EWU5BTUlDX1dISVRFX0xFVkVMLAorCisgICAgQU5EUk9JRF9TRU5TT1JfT1BBUVVFX1JBV19TSVpFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfRU5ELAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19BQ1RJVkVfQVJSQVlfU0laRSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfU0VOU09SX0lORk9fU1RBUlQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX1NFTlNJVElWSVRZX1JBTkdFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19DT0xPUl9GSUxURVJfQVJSQU5HRU1FTlQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX0VYUE9TVVJFX1RJTUVfUkFOR0UsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX01BWF9GUkFNRV9EVVJBVElPTiwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fUEhZU0lDQUxfU0laRSwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fUElYRUxfQVJSQVlfU0laRSwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fV0hJVEVfTEVWRUwsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX1RJTUVTVEFNUF9TT1VSQ0UsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX0xFTlNfU0hBRElOR19BUFBMSUVELAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19QUkVfQ09SUkVDVElPTl9BQ1RJVkVfQVJSQVlfU0laRSwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fRU5ELAorCisgICAgQU5EUk9JRF9TSEFESU5HX01PREUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1NIQURJTkdfU1RBUlQsCisKKyAgICBBTkRST0lEX1NIQURJTkdfU1RSRU5HVEgsCisKKyAgICBBTkRST0lEX1NIQURJTkdfQVZBSUxBQkxFX01PREVTLAorCisgICAgQU5EUk9JRF9TSEFESU5HX0VORCwKKworICAgIEFORFJPSURfU1RBVElTVElDU19GQUNFX0RFVEVDVF9NT0RFID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9TVEFUSVNUSUNTX1NUQVJULAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0hJU1RPR1JBTV9NT0RFLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1NIQVJQTkVTU19NQVBfTU9ERSwKKworICAgIEFORFJPSURfU1RBVElTVElDU19IT1RfUElYRUxfTUFQX01PREUsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfRkFDRV9JRFMsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfRkFDRV9MQU5ETUFSS1MsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfRkFDRV9SRUNUQU5HTEVTLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0ZBQ0VfU0NPUkVTLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0hJU1RPR1JBTSwKKworICAgIEFORFJPSURfU1RBVElTVElDU19TSEFSUE5FU1NfTUFQLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0xFTlNfU0hBRElOR19DT1JSRUNUSU9OX01BUCwKKworICAgIEFORFJPSURfU1RBVElTVElDU19MRU5TX1NIQURJTkdfTUFQLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1BSRURJQ1RFRF9DT0xPUl9HQUlOUywKKworICAgIEFORFJPSURfU1RBVElTVElDU19QUkVESUNURURfQ09MT1JfVFJBTlNGT1JNLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1NDRU5FX0ZMSUNLRVIsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSE9UX1BJWEVMX01BUCwKKworICAgIEFORFJPSURfU1RBVElTVElDU19MRU5TX1NIQURJTkdfTUFQX01PREUsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfRU5ELAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fQVZBSUxBQkxFX0ZBQ0VfREVURUNUX01PREVTID0KKyAgICAgICAgICAgIENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfU1RBVElTVElDU19JTkZPX1NUQVJULAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fSElTVE9HUkFNX0JVQ0tFVF9DT1VOVCwKKworICAgIEFORFJPSURfU1RBVElTVElDU19JTkZPX01BWF9GQUNFX0NPVU5ULAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fTUFYX0hJU1RPR1JBTV9DT1VOVCwKKworICAgIEFORFJPSURfU1RBVElTVElDU19JTkZPX01BWF9TSEFSUE5FU1NfTUFQX1ZBTFVFLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fU0hBUlBORVNTX01BUF9TSVpFLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fQVZBSUxBQkxFX0hPVF9QSVhFTF9NQVBfTU9ERVMsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSU5GT19BVkFJTEFCTEVfTEVOU19TSEFESU5HX01BUF9NT0RFUywKKworICAgIEFORFJPSURfU1RBVElTVElDU19JTkZPX0VORCwKKworICAgIEFORFJPSURfVE9ORU1BUF9DVVJWRV9CTFVFID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9UT05FTUFQX1NUQVJULAorCisgICAgQU5EUk9JRF9UT05FTUFQX0NVUlZFX0dSRUVOLAorCisgICAgQU5EUk9JRF9UT05FTUFQX0NVUlZFX1JFRCwKKworICAgIEFORFJPSURfVE9ORU1BUF9NT0RFLAorCisgICAgQU5EUk9JRF9UT05FTUFQX01BWF9DVVJWRV9QT0lOVFMsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfQVZBSUxBQkxFX1RPTkVfTUFQX01PREVTLAorCisgICAgQU5EUk9JRF9UT05FTUFQX0dBTU1BLAorCisgICAgQU5EUk9JRF9UT05FTUFQX1BSRVNFVF9DVVJWRSwKKworICAgIEFORFJPSURfVE9ORU1BUF9FTkQsCisKKyAgICBBTkRST0lEX0xFRF9UUkFOU01JVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfTEVEX1NUQVJULAorCisgICAgQU5EUk9JRF9MRURfQVZBSUxBQkxFX0xFRFMsCisKKyAgICBBTkRST0lEX0xFRF9FTkQsCisKKyAgICBBTkRST0lEX0lORk9fU1VQUE9SVEVEX0hBUkRXQVJFX0xFVkVMID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9JTkZPX1NUQVJULAorCisgICAgQU5EUk9JRF9JTkZPX0VORCwKKworICAgIEFORFJPSURfQkxBQ0tfTEVWRUxfTE9DSyA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfQkxBQ0tfTEVWRUxfU1RBUlQsCisKKyAgICBBTkRST0lEX0JMQUNLX0xFVkVMX0VORCwKKworICAgIEFORFJPSURfU1lOQ19GUkFNRV9OVU1CRVIgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1NZTkNfU1RBUlQsCisKKyAgICBBTkRST0lEX1NZTkNfTUFYX0xBVEVOQ1ksCisKKyAgICBBTkRST0lEX1NZTkNfRU5ELAorCisgICAgQU5EUk9JRF9SRVBST0NFU1NfRUZGRUNUSVZFX0VYUE9TVVJFX0ZBQ1RPUiA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfUkVQUk9DRVNTX1NUQVJULAorCisgICAgQU5EUk9JRF9SRVBST0NFU1NfTUFYX0NBUFRVUkVfU1RBTEwsCisKKyAgICBBTkRST0lEX1JFUFJPQ0VTU19FTkQsCisKKyAgICBBTkRST0lEX0RFUFRIX01BWF9ERVBUSF9TQU1QTEVTID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9ERVBUSF9TVEFSVCwKKworICAgIEFORFJPSURfREVQVEhfQVZBSUxBQkxFX0RFUFRIX1NUUkVBTV9DT05GSUdVUkFUSU9OUywKKworICAgIEFORFJPSURfREVQVEhfQVZBSUxBQkxFX0RFUFRIX01JTl9GUkFNRV9EVVJBVElPTlMsCisKKyAgICBBTkRST0lEX0RFUFRIX0FWQUlMQUJMRV9ERVBUSF9TVEFMTF9EVVJBVElPTlMsCisKKyAgICBBTkRST0lEX0RFUFRIX0RFUFRIX0lTX0VYQ0xVU0lWRSwKKworICAgIEFORFJPSURfREVQVEhfRU5ELAorCit9OworCisvKioKKyAqIEVudW1lcmF0aW9uIGRlZmluaXRpb25zIGZvciB0aGUgdmFyaW91cyBlbnRyaWVzIHRoYXQgbmVlZCB0aGVtCisgKi8KK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbk1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX01PREVfVFJBTlNGT1JNX01BVFJJWCwKKworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9NT0RFX0ZBU1QsCisKKyAgICBBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fTU9ERV9ISUdIX1FVQUxJVFksCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbkFiZXJyYXRpb25Nb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9BQkVSUkFUSU9OX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX0FCRVJSQVRJT05fTU9ERV9GQVNULAorCisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX0FCRVJSQVRJT05fTU9ERV9ISUdIX1FVQUxJVFksCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUFudGliYW5kaW5nTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfQU5USUJBTkRJTkdfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfQU5USUJBTkRJTkdfTU9ERV81MEhaLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0FOVElCQU5ESU5HX01PREVfNjBIWiwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9BTlRJQkFORElOR19NT0RFX0FVVE8sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2sgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfT0ZGLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZU1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0FFX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX01PREVfT04sCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfTU9ERV9PTl9BVVRPX0ZMQVNILAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX01PREVfT05fQUxXQVlTX0ZMQVNILAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX01PREVfT05fQVVUT19GTEFTSF9SRURFWUUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVByZWNhcHR1cmVUcmlnZ2VyIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVJfSURMRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVJfU1RBUlQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfUFJFQ0FQVFVSRV9UUklHR0VSX0NBTkNFTCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfTU9ERV9BVVRPLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX01PREVfTUFDUk8sCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfTU9ERV9DT05USU5VT1VTX1ZJREVPLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX01PREVfQ09OVElOVU9VU19QSUNUVVJFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX01PREVfRURPRiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmVHJpZ2dlciA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfVFJJR0dFUl9JRExFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX1RSSUdHRVJfU1RBUlQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfVFJJR0dFUl9DQU5DRUwsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTE9DS19PRkYsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX0xPQ0tfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX01PREVfQVVUTywKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9JTkNBTkRFU0NFTlQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX01PREVfRkxVT1JFU0NFTlQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX01PREVfV0FSTV9GTFVPUkVTQ0VOVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9EQVlMSUdIVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9DTE9VRFlfREFZTElHSFQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX01PREVfVFdJTElHSFQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX01PREVfU0hBREUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xDYXB0dXJlSW50ZW50IDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9DVVNUT00sCisKKyAgICBBTkRST0lEX0NPTlRST0xfQ0FQVFVSRV9JTlRFTlRfUFJFVklFVywKKworICAgIEFORFJPSURfQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9TVElMTF9DQVBUVVJFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0NBUFRVUkVfSU5URU5UX1ZJREVPX1JFQ09SRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9WSURFT19TTkFQU0hPVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9aRVJPX1NIVVRURVJfTEFHLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0NBUFRVUkVfSU5URU5UX01BTlVBTCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVmZmVjdE1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX09GRiwKKworICAgIEFORFJPSURfQ09OVFJPTF9FRkZFQ1RfTU9ERV9NT05PLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX05FR0FUSVZFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX1NPTEFSSVpFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX1NFUElBLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX1BPU1RFUklaRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9FRkZFQ1RfTU9ERV9XSElURUJPQVJELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX0JMQUNLQk9BUkQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfRUZGRUNUX01PREVfQVFVQSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbE1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9DT05UUk9MX01PREVfQVVUTywKKworICAgIEFORFJPSURfQ09OVFJPTF9NT0RFX1VTRV9TQ0VORV9NT0RFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX01PREVfT0ZGX0tFRVBfU1RBVEUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xTY2VuZU1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfRElTQUJMRUQgPSAwLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfRkFDRV9QUklPUklUWSwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0FDVElPTiwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX1BPUlRSQUlULAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfTEFORFNDQVBFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfTklHSFQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9OSUdIVF9QT1JUUkFJVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX1RIRUFUUkUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9CRUFDSCwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX1NOT1csCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9TVU5TRVQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9TVEVBRFlQSE9UTywKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0ZJUkVXT1JLUywKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX1NQT1JUUywKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX1BBUlRZLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfQ0FORExFTElHSFQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9CQVJDT0RFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfSElHSF9TUEVFRF9WSURFTywKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0hEUiwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0ZBQ0VfUFJJT1JJVFlfTE9XX0xJR0hULAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfREVWSUNFX0NVU1RPTV9TVEFSVCA9IDEwMCwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0RFVklDRV9DVVNUT01fRU5EID0gMTI3LAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sVmlkZW9TdGFiaWxpemF0aW9uTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfVklERU9fU1RBQklMSVpBVElPTl9NT0RFX09GRiwKKworICAgIEFORFJPSURfQ09OVFJPTF9WSURFT19TVEFCSUxJWkFUSU9OX01PREVfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVN0YXRlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BRV9TVEFURV9JTkFDVElWRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9TVEFURV9TRUFSQ0hJTkcsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfU1RBVEVfQ09OVkVSR0VELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1NUQVRFX0xPQ0tFRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9TVEFURV9GTEFTSF9SRVFVSVJFRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9TVEFURV9QUkVDQVBUVVJFLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZTdGF0ZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfU1RBVEVfSU5BQ1RJVkUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfU1RBVEVfUEFTU0lWRV9TQ0FOLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX1NUQVRFX1BBU1NJVkVfRk9DVVNFRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9TVEFURV9BQ1RJVkVfU0NBTiwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9TVEFURV9GT0NVU0VEX0xPQ0tFRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9TVEFURV9OT1RfRk9DVVNFRF9MT0NLRUQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfU1RBVEVfUEFTU0lWRV9VTkZPQ1VTRUQsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JTdGF0ZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX1NUQVRFX0lOQUNUSVZFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9TVEFURV9TRUFSQ0hJTkcsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX1NUQVRFX0NPTlZFUkdFRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfU1RBVEVfTE9DS0VELAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrQXZhaWxhYmxlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BRV9MT0NLX0FWQUlMQUJMRV9GQUxTRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9MT0NLX0FWQUlMQUJMRV9UUlVFLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9ja0F2YWlsYWJsZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX0xPQ0tfQVZBSUxBQkxFX0ZBTFNFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9MT0NLX0FWQUlMQUJMRV9UUlVFLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRW5hYmxlWnNsIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9FTkFCTEVfWlNMX0ZBTFNFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VOQUJMRV9aU0xfVFJVRSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVtb3NhaWNNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfREVNT1NBSUNfTU9ERV9GQVNULAorCisgICAgQU5EUk9JRF9ERU1PU0FJQ19NT0RFX0hJR0hfUVVBTElUWSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRWRnZU1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9FREdFX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9FREdFX01PREVfRkFTVCwKKworICAgIEFORFJPSURfRURHRV9NT0RFX0hJR0hfUVVBTElUWSwKKworICAgIEFORFJPSURfRURHRV9NT0RFX1pFUk9fU0hVVFRFUl9MQUcsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0ZMQVNIX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9GTEFTSF9NT0RFX1NJTkdMRSwKKworICAgIEFORFJPSURfRkxBU0hfTU9ERV9UT1JDSCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hTdGF0ZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0ZMQVNIX1NUQVRFX1VOQVZBSUxBQkxFLAorCisgICAgQU5EUk9JRF9GTEFTSF9TVEFURV9DSEFSR0lORywKKworICAgIEFORFJPSURfRkxBU0hfU1RBVEVfUkVBRFksCisKKyAgICBBTkRST0lEX0ZMQVNIX1NUQVRFX0ZJUkVELAorCisgICAgQU5EUk9JRF9GTEFTSF9TVEFURV9QQVJUSUFMLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaEluZm9BdmFpbGFibGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9GTEFTSF9JTkZPX0FWQUlMQUJMRV9GQUxTRSwKKworICAgIEFORFJPSURfRkxBU0hfSU5GT19BVkFJTEFCTEVfVFJVRSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSG90UGl4ZWxNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfSE9UX1BJWEVMX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9IT1RfUElYRUxfTU9ERV9GQVNULAorCisgICAgQU5EUk9JRF9IT1RfUElYRUxfTU9ERV9ISUdIX1FVQUxJVFksCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNPcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9MRU5TX09QVElDQUxfU1RBQklMSVpBVElPTl9NT0RFX09GRiwKKworICAgIEFORFJPSURfTEVOU19PUFRJQ0FMX1NUQUJJTElaQVRJT05fTU9ERV9PTiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0ZhY2luZyA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0xFTlNfRkFDSU5HX0ZST05ULAorCisgICAgQU5EUk9JRF9MRU5TX0ZBQ0lOR19CQUNLLAorCisgICAgQU5EUk9JRF9MRU5TX0ZBQ0lOR19FWFRFUk5BTCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc1N0YXRlIDogdWludDMyX3QgeworICAgIEFORFJPSURfTEVOU19TVEFURV9TVEFUSU9OQVJZLAorCisgICAgQU5EUk9JRF9MRU5TX1NUQVRFX01PVklORywKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0luZm9Gb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24gOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9MRU5TX0lORk9fRk9DVVNfRElTVEFOQ0VfQ0FMSUJSQVRJT05fVU5DQUxJQlJBVEVELAorCisgICAgQU5EUk9JRF9MRU5TX0lORk9fRk9DVVNfRElTVEFOQ0VfQ0FMSUJSQVRJT05fQVBQUk9YSU1BVEUsCisKKyAgICBBTkRST0lEX0xFTlNfSU5GT19GT0NVU19ESVNUQU5DRV9DQUxJQlJBVElPTl9DQUxJQlJBVEVELAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWROb2lzZVJlZHVjdGlvbk1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9OT0lTRV9SRURVQ1RJT05fTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX05PSVNFX1JFRFVDVElPTl9NT0RFX0ZBU1QsCisKKyAgICBBTkRST0lEX05PSVNFX1JFRFVDVElPTl9NT0RFX0hJR0hfUVVBTElUWSwKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OX01PREVfTUlOSU1BTCwKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OX01PREVfWkVST19TSFVUVEVSX0xBRywKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUXVpcmtzUGFydGlhbFJlc3VsdCA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1FVSVJLU19QQVJUSUFMX1JFU1VMVF9GSU5BTCwKKworICAgIEFORFJPSURfUVVJUktTX1BBUlRJQUxfUkVTVUxUX1BBUlRJQUwsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RNZXRhZGF0YU1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9SRVFVRVNUX01FVEFEQVRBX01PREVfTk9ORSwKKworICAgIEFORFJPSURfUkVRVUVTVF9NRVRBREFUQV9NT0RFX0ZVTEwsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RUeXBlIDogdWludDMyX3QgeworICAgIEFORFJPSURfUkVRVUVTVF9UWVBFX0NBUFRVUkUsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfVFlQRV9SRVBST0NFU1MsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RBdmFpbGFibGVDYXBhYmlsaXRpZXMgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfQkFDS1dBUkRfQ09NUEFUSUJMRSwKKworICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTX01BTlVBTF9TRU5TT1IsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19NQU5VQUxfUE9TVF9QUk9DRVNTSU5HLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfUkFXLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfUFJJVkFURV9SRVBST0NFU1NJTkcsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19SRUFEX1NFTlNPUl9TRVRUSU5HUywKKworICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTX0JVUlNUX0NBUFRVUkUsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19ZVVZfUkVQUk9DRVNTSU5HLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfREVQVEhfT1VUUFVULAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfQ09OU1RSQUlORURfSElHSF9TUEVFRF9WSURFTywKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlRm9ybWF0cyA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfRk9STUFUU19SQVcxNiA9IDB4MjAsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfRk9STUFUU19SQVdfT1BBUVVFID0gMHgyNCwKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9GT1JNQVRTX1lWMTIgPSAweDMyMzE1NjU5LAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0ZPUk1BVFNfWUNyQ2JfNDIwX1NQID0gMHgxMSwKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9GT1JNQVRTX0lNUExFTUVOVEFUSU9OX0RFRklORUQgPSAweDIyLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0ZPUk1BVFNfWUNiQ3JfNDIwXzg4OCA9IDB4MjMsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfRk9STUFUU19CTE9CID0gMHgyMSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1NUUkVBTV9DT05GSUdVUkFUSU9OU19PVVRQVVQsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfU1RSRUFNX0NPTkZJR1VSQVRJT05TX0lOUFVULAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJDcm9wcGluZ1R5cGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TQ0FMRVJfQ1JPUFBJTkdfVFlQRV9DRU5URVJfT05MWSwKKworICAgIEFORFJPSURfU0NBTEVSX0NST1BQSU5HX1RZUEVfRlJFRUZPUk0sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclJlZmVyZW5jZUlsbHVtaW5hbnQxIDogdWludDMyX3QgeworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9EQVlMSUdIVCA9IDEsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfRkxVT1JFU0NFTlQgPSAyLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX1RVTkdTVEVOID0gMywKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9GTEFTSCA9IDQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfRklORV9XRUFUSEVSID0gOSwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9DTE9VRFlfV0VBVEhFUiA9IDEwLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX1NIQURFID0gMTEsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfREFZTElHSFRfRkxVT1JFU0NFTlQgPSAxMiwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9EQVlfV0hJVEVfRkxVT1JFU0NFTlQgPSAxMywKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9DT09MX1dISVRFX0ZMVU9SRVNDRU5UID0gMTQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfV0hJVEVfRkxVT1JFU0NFTlQgPSAxNSwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9TVEFOREFSRF9BID0gMTcsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfU1RBTkRBUkRfQiA9IDE4LAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX1NUQU5EQVJEX0MgPSAxOSwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9ENTUgPSAyMCwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9ENjUgPSAyMSwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9ENzUgPSAyMiwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9ENTAgPSAyMywKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9JU09fU1RVRElPX1RVTkdTVEVOID0gMjQsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclRlc3RQYXR0ZXJuTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NFTlNPUl9URVNUX1BBVFRFUk5fTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX1NFTlNPUl9URVNUX1BBVFRFUk5fTU9ERV9TT0xJRF9DT0xPUiwKKworICAgIEFORFJPSURfU0VOU09SX1RFU1RfUEFUVEVSTl9NT0RFX0NPTE9SX0JBUlMsCisKKyAgICBBTkRST0lEX1NFTlNPUl9URVNUX1BBVFRFUk5fTU9ERV9DT0xPUl9CQVJTX0ZBREVfVE9fR1JBWSwKKworICAgIEFORFJPSURfU0VOU09SX1RFU1RfUEFUVEVSTl9NT0RFX1BOOSwKKworICAgIEFORFJPSURfU0VOU09SX1RFU1RfUEFUVEVSTl9NT0RFX0NVU1RPTTEgPSAyNTYsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9Db2xvckZpbHRlckFycmFuZ2VtZW50IDogdWludDMyX3QgeworICAgIEFORFJPSURfU0VOU09SX0lORk9fQ09MT1JfRklMVEVSX0FSUkFOR0VNRU5UX1JHR0IsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX0NPTE9SX0ZJTFRFUl9BUlJBTkdFTUVOVF9HUkJHLAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19DT0xPUl9GSUxURVJfQVJSQU5HRU1FTlRfR0JSRywKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fQ09MT1JfRklMVEVSX0FSUkFOR0VNRU5UX0JHR1IsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX0NPTE9SX0ZJTFRFUl9BUlJBTkdFTUVOVF9SR0IsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9UaW1lc3RhbXBTb3VyY2UgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19USU1FU1RBTVBfU09VUkNFX1VOS05PV04sCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX1RJTUVTVEFNUF9TT1VSQ0VfUkVBTFRJTUUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9MZW5zU2hhZGluZ0FwcGxpZWQgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19MRU5TX1NIQURJTkdfQVBQTElFRF9GQUxTRSwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fTEVOU19TSEFESU5HX0FQUExJRURfVFJVRSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2hhZGluZ01vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TSEFESU5HX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9TSEFESU5HX01PREVfRkFTVCwKKworICAgIEFORFJPSURfU0hBRElOR19NT0RFX0hJR0hfUVVBTElUWSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0ZhY2VEZXRlY3RNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfU1RBVElTVElDU19GQUNFX0RFVEVDVF9NT0RFX09GRiwKKworICAgIEFORFJPSURfU1RBVElTVElDU19GQUNFX0RFVEVDVF9NT0RFX1NJTVBMRSwKKworICAgIEFORFJPSURfU1RBVElTVElDU19GQUNFX0RFVEVDVF9NT0RFX0ZVTEwsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIaXN0b2dyYW1Nb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfU1RBVElTVElDU19ISVNUT0dSQU1fTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSElTVE9HUkFNX01PREVfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTaGFycG5lc3NNYXBNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfU1RBVElTVElDU19TSEFSUE5FU1NfTUFQX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1NIQVJQTkVTU19NQVBfTU9ERV9PTiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hvdFBpeGVsTWFwTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSE9UX1BJWEVMX01BUF9NT0RFX09GRiwKKworICAgIEFORFJPSURfU1RBVElTVElDU19IT1RfUElYRUxfTUFQX01PREVfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTY2VuZUZsaWNrZXIgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1NDRU5FX0ZMSUNLRVJfTk9ORSwKKworICAgIEFORFJPSURfU1RBVElTVElDU19TQ0VORV9GTElDS0VSXzUwSFosCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfU0NFTkVfRkxJQ0tFUl82MEhaLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzTGVuc1NoYWRpbmdNYXBNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfU1RBVElTVElDU19MRU5TX1NIQURJTkdfTUFQX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0xFTlNfU0hBRElOR19NQVBfTU9ERV9PTiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcE1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9UT05FTUFQX01PREVfQ09OVFJBU1RfQ1VSVkUsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfTU9ERV9GQVNULAorCisgICAgQU5EUk9JRF9UT05FTUFQX01PREVfSElHSF9RVUFMSVRZLAorCisgICAgQU5EUk9JRF9UT05FTUFQX01PREVfR0FNTUFfVkFMVUUsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfTU9ERV9QUkVTRVRfQ1VSVkUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBQcmVzZXRDdXJ2ZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1RPTkVNQVBfUFJFU0VUX0NVUlZFX1NSR0IsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfUFJFU0VUX0NVUlZFX1JFQzcwOSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkVHJhbnNtaXQgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9MRURfVFJBTlNNSVRfT0ZGLAorCisgICAgQU5EUk9JRF9MRURfVFJBTlNNSVRfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZEF2YWlsYWJsZUxlZHMgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9MRURfQVZBSUxBQkxFX0xFRFNfVFJBTlNNSVQsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEluZm9TdXBwb3J0ZWRIYXJkd2FyZUxldmVsIDogdWludDMyX3QgeworICAgIEFORFJPSURfSU5GT19TVVBQT1JURURfSEFSRFdBUkVfTEVWRUxfTElNSVRFRCwKKworICAgIEFORFJPSURfSU5GT19TVVBQT1JURURfSEFSRFdBUkVfTEVWRUxfRlVMTCwKKworICAgIEFORFJPSURfSU5GT19TVVBQT1JURURfSEFSRFdBUkVfTEVWRUxfTEVHQUNZLAorCisgICAgQU5EUk9JRF9JTkZPX1NVUFBPUlRFRF9IQVJEV0FSRV9MRVZFTF8zLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRCbGFja0xldmVsTG9jayA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0JMQUNLX0xFVkVMX0xPQ0tfT0ZGLAorCisgICAgQU5EUk9JRF9CTEFDS19MRVZFTF9MT0NLX09OLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTeW5jRnJhbWVOdW1iZXIgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TWU5DX0ZSQU1FX05VTUJFUl9DT05WRVJHSU5HID0gLTEsCisKKyAgICBBTkRST0lEX1NZTkNfRlJBTUVfTlVNQkVSX1VOS05PV04gPSAtMiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY01heExhdGVuY3kgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TWU5DX01BWF9MQVRFTkNZX1BFUl9GUkFNRV9DT05UUk9MID0gMCwKKworICAgIEFORFJPSURfU1lOQ19NQVhfTEFURU5DWV9VTktOT1dOID0gLTEsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoQXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucyA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0RFUFRIX0FWQUlMQUJMRV9ERVBUSF9TVFJFQU1fQ09ORklHVVJBVElPTlNfT1VUUFVULAorCisgICAgQU5EUk9JRF9ERVBUSF9BVkFJTEFCTEVfREVQVEhfU1RSRUFNX0NPTkZJR1VSQVRJT05TX0lOUFVULAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWREZXB0aERlcHRoSXNFeGNsdXNpdmUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9ERVBUSF9ERVBUSF9JU19FWENMVVNJVkVfRkFMU0UsCisKKyAgICBBTkRST0lEX0RFUFRIX0RFUFRIX0lTX0VYQ0xVU0lWRV9UUlVFLAorCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL21ldGFkYXRhL1JFQURNRS5tZCBiL2NhbWVyYS9tZXRhZGF0YS9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUyOTczZAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9tZXRhZGF0YS9SRUFETUUubWQKQEAgLTAsMCArMSwxOSBAQAorIyMgQ2FtZXJhIE1ldGFkYXRhIEludGVyZmFjZSAjIworLS0tCisKKyMjIE92ZXJ2aWV3OiAjIworCitUaGUgY2FtZXJhLm1ldGFkYXRhIGludGVyZmFjZSBpcyB1c2VkIGJ5IHRoZSBBbmRyb2lkIGNhbWVyYSBzZXJ2aWNlLAorY2FtZXJhIHByb3ZpZGVyIGFuZCBjYW1lcmEgZGV2aWNlcyB0byByZXRyaWV2ZSBzdGF0aWMgY2FtZXJhIGluZm9ybWF0aW9uIGFuZCBpc3N1ZQorY2FtZXJhIGNhcHR1cmUgY29udHJvbHMuCisKK1NlZSB0aGUgZG9jcy5odG1sIGZvciBlYWNoIHZlcnNpb24gZm9yIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiBlYWNoIG1ldGFkYXRhCitzcGVjaWZpY2F0aW9uLgorIyMgVmVyc2lvbiBoaXN0b3J5OiAjIworCisjIyMgQDMuMjoKKworSElETCB2ZXJzaW9uIG9mIHRoZSBiYXNlbGluZSBjYW1lcmEgbWV0YWRhdGEgaW50ZXJmYWNlLCByZXF1aXJlZCBieQorY2FtZXJhLnByb3ZpZGVyQDIuNCBhbmQgY2FtZXJhLmRldmljZUAzLjIgb253YXJkcy4KKworCmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L0FuZHJvaWQuYnAgYi9jYW1lcmEvcHJvdmlkZXIvMi40L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZhNzI2YQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci8yLjQvQW5kcm9pZC5icApAQCAtMCwwICsxLDc0IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIklDYW1lcmFQcm92aWRlci5oYWwiLAorICAgICAgICAiSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2suaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40X2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40IiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40X2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9DYW1lcmFQcm92aWRlckFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0NhbWVyYVByb3ZpZGVyQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40X2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjRfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JSHdDYW1lcmFQcm92aWRlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9Cbkh3Q2FtZXJhUHJvdmlkZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9wcm92aWRlci8yLjQvQnBId0NhbWVyYVByb3ZpZGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0JzQ2FtZXJhUHJvdmlkZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9wcm92aWRlci8yLjQvSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9wcm92aWRlci8yLjQvSUh3Q2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9Cbkh3Q2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9CcEh3Q2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9Cc0NhbWVyYVByb3ZpZGVyQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40X2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjRfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JQ2FtZXJhUHJvdmlkZXIuaGFsIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JQ2FtZXJhUHJvdmlkZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwMTViN2QKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlci5oYWwKQEAgLTAsMCArMSwxODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNDsKKworaW1wb3J0IElDYW1lcmFQcm92aWRlckNhbGxiYWNrOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA6OklDYW1lcmFEZXZpY2U7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMjo6SUNhbWVyYURldmljZTsKKworLyoqCisgKiBDYW1lcmEgcHJvdmlkZXIgSEFMLCB3aGljaCBlbnVtZXJhdGVzIHRoZSBhdmFpbGFibGUgaW5kaXZpZHVhbCBjYW1lcmEgZGV2aWNlcworICoga25vd24gdG8gdGhlIHByb3ZpZGVyLCBhbmQgcHJvdmlkZXMgdXBkYXRlcyBhYm91dCBjaGFuZ2VzIHRvIGRldmljZSBzdGF0dXMsCisgKiBzdWNoIGFzIGNvbm5lY3Rpb24sIGRpc2Nvbm5lY3Rpb24sIG9yIHRvcmNoIG1vZGUgZW5hYmxlL2Rpc2FibGUuCisgKgorICogVGhlIHByb3ZpZGVyIGlzIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIGEgbGlzdCBvZiBjYW1lcmEgZGV2aWNlIHNlcnZpY2UKKyAqIG5hbWVzIHRoYXQgY2FuIHRoZW4gYmUgb3BlbmVkIHZpYSB0aGUgaGFyZHdhcmUgc2VydmljZSBtYW5hZ2VyLgorICoKKyAqIE11bHRpcGxlIGNhbWVyYSBwcm92aWRlciBIQUxzIG1heSBiZSBwcmVzZW50IGluIGEgc2luZ2xlIHN5c3RlbS4KKyAqIEZvciBkaXNjb3ZlcnksIHRoZSBzZXJ2aWNlIG5hbWVzLCBhbmQgcHJvY2VzcyBuYW1lcywgbXVzdCBiZSBvZiB0aGUgZm9ybQorICogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDxtYWpvcj4uPG1pbm9yPi88dHlwZT4vPGluc3RhbmNlPiIKKyAqIHdoZXJlCisgKiAgIC0gPG1ham9yPi88bWlub3I+IGlzIHRoZSBwcm92aWRlciBIQUwgSElETCB2ZXJzaW9uLAorICogICAtIDx0eXBlPiBpcyB0aGUgdHlwZSBvZiBkZXZpY2VzIHRoaXMgcHJvdmlkZXIga25vd3MgYWJvdXQsIHN1Y2ggYXMKKyAqICAgICAiaW50ZXJuYWwiLCAibGVnYWN5IiwgInVzYiIsIG9yICJyZW1vdGUiCisgKiAgIC0gPGluc3RhbmNlPiBpcyBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHN0YXJ0aW5nIGZyb20gMCB0byBkaXNhbWJpZ3VhdGUKKyAqICAgICBiZXR3ZWVuIG11bHRpcGxlIEhBTHMgb2YgdGhlIHNhbWUgdHlwZS4KKyAqCisgKiBUaGUgImxlZ2FjeSIgdHlwZSBpcyBvbmx5IHVzZWQgZm9yIHBhc3N0aHJvdWdoIGxlZ2FjeSBIQUwgbW9kZSwgYW5kIG11c3QKKyAqIG5vdCBiZSB1c2VkIGJ5IGEgc3RhbmRhbG9uZSBiaW5kZXJpemVkIEhBTC4KKyAqCisgKiBUaGUgZGV2aWNlIGluc3RhbmNlIG5hbWVzIGVudW1lcmF0ZWQgYnkgdGhlIHByb3ZpZGVyIG11c3QgYmUgb2YgdGhlIGZvcm0KKyAqICJkZXZpY2VAPG1ham9yPi48bWlub3I+Lzx0eXBlPi88aWQ+IiB3aGVyZQorICogPG1ham9yPi88bWlub3I+IGlzIHRoZSBISURMIHZlcnNpb24gb2YgdGhlIGludGVyZmFjZS4gPGlkPiBpcyBlaXRoZXIgYSBzbWFsbAorICogaW5jcmVtZW50aW5nIGludGVnZXIgZm9yICJpbnRlcm5hbCIgZGV2aWNlIHR5cGVzLCB3aXRoIDAgYmVpbmcgdGhlIG1haW4KKyAqIGJhY2stZmFjaW5nIGNhbWVyYSBhbmQgMSBiZWluZyB0aGUgbWFpbiBmcm9udC1mYWNpbmcgY2FtZXJhLCBpZiB0aGV5IGV4aXN0LgorICogT3IsIGZvciBleHRlcm5hbCBkZXZpY2VzIHN1Y2ggYXMgdHlwZSAidXNiIiwgYSB1bmlxdWUgc2VyaWFsIG51bWJlciB0aGF0IGNhbgorICogYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgZGV2aWNlIHJlbGlhYmx5IHdoZW4gaXQgaXMgZGlzY29ubmVjdGVkIGFuZAorICogcmVjb25uZWN0ZWQuIE11bHRpcGxlIHByb3ZpZGVycyBtYXkgbm90IGVudW1lcmF0ZSB0aGUgc2FtZSBkZXZpY2UgSUQuCisgKgorICovCitpbnRlcmZhY2UgSUNhbWVyYVByb3ZpZGVyIHsKKworICAgIC8qKgorICAgICAqIHNldENhbGxiYWNrOgorICAgICAqCisgICAgICogUHJvdmlkZSBhIGNhbGxiYWNrIGludGVyZmFjZSB0byB0aGUgSEFMIHByb3ZpZGVyIHRvIGluZm9ybSBmcmFtZXdvcmsgb2YKKyAgICAgKiBhc3luY2hyb25vdXMgY2FtZXJhIGV2ZW50cy4gVGhlIGZyYW1ld29yayBtdXN0IGNhbGwgdGhpcyBmdW5jdGlvbiBvbmNlCisgICAgICogZHVyaW5nIGNhbWVyYSBzZXJ2aWNlIHN0YXJ0dXAsIGJlZm9yZSBhbnkgb3RoZXIgY2FsbHMgdG8gdGhlIHByb3ZpZGVyCisgICAgICogKG5vdGUgdGhhdCBpbiBjYXNlIHRoZSBjYW1lcmEgc2VydmljZSByZXN0YXJ0cywgdGhpcyBtZXRob2QgbXVzdCBiZQorICAgICAqIGludm9rZWQgYWdhaW4gZHVyaW5nIGl0cyBzdGFydHVwKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjaworICAgICAqICAgICBBIG5vbi1udWxsIGNhbGxiYWNrIGludGVyZmFjZSB0byBpbnZva2Ugd2hlbiBjYW1lcmEgZXZlbnRzIG9jY3VyLgorICAgICAqIEByZXR1cm4gc3RhdHVzCisgICAgICogICAgIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gc3VjY2VzcworICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwgZXJyb3Igb2NjdXJyZWQgd2hpbGUgc2V0dGluZyB0aGUgY2FsbGJhY2tzCisgICAgICogICAgIElMTEVHQUxfQVJHVU1FTlQ6CisgICAgICogICAgICAgICBUaGUgY2FsbGJhY2sgYXJndW1lbnQgaXMgaW52YWxpZCAoZm9yIGV4YW1wbGUsIG51bGwpLgorICAgICAqCisgICAgICovCisgICAgc2V0Q2FsbGJhY2soSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2sgY2FsbGJhY2spIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBnZXRWZW5kb3JUYWdzOgorICAgICAqCisgICAgICogUmV0cmlldmUgYWxsIHZlbmRvciB0YWdzIHN1cHBvcnRlZCBieSBkZXZpY2VzIGRpc2NvdmVyYWJsZSB0aHJvdWdoIHRoaXMKKyAgICAgKiBwcm92aWRlci4gVGhlIHRhZ3MgYXJlIGdyb3VwZWQgaW50byBzZWN0aW9ucy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzCisgICAgICogICAgIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gc3VjY2VzcworICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwgZXJyb3Igb2NjdXJyZWQgd2hpbGUgc2V0dGluZyB0aGUgY2FsbGJhY2tzCisgICAgICogQHJldHVybiBzZWN0aW9ucworICAgICAqICAgICBUaGUgc3VwcG9ydGVkIHZlbmRvciB0YWcgc2VjdGlvbnM7IGVtcHR5IGlmIHRoZXJlIGFyZSBubyBzdXBwb3J0ZWQKKyAgICAgKiAgICAgdmVuZG9yIHRhZ3MsIG9yIHN0YXR1cyBpcyBub3QgT0suCisgICAgICoKKyAgICAgKi8KKyAgICBnZXRWZW5kb3JUYWdzKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCB2ZWM8VmVuZG9yVGFnU2VjdGlvbj4gc2VjdGlvbnMpOworCisgICAgLyoqCisgICAgICogZ2V0Q2FtZXJhRGV2aWNlTGlzdDoKKyAgICAgKgorICAgICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgaW50ZXJuYWwgY2FtZXJhIGRldmljZSBpbnRlcmZhY2VzIGtub3duIHRvIHRoaXMKKyAgICAgKiBjYW1lcmEgcHJvdmlkZXIuIFRoZXNlIGRldmljZXMgY2FuIHRoZW4gYmUgYWNjZXNzZWQgdmlhIHRoZSBoYXJkd2FyZQorICAgICAqIHNlcnZpY2UgbWFuYWdlci4KKyAgICAgKgorICAgICAqIEV4dGVybmFsIGNhbWVyYSBkZXZpY2VzIChjYW1lcmEgZmFjaW5nIEVYVEVSTkFMKSBtdXN0IGJlIHJlcG9ydGVkIHRocm91Z2gKKyAgICAgKiB0aGUgZGV2aWNlIHN0YXR1cyBjaGFuZ2UgY2FsbGJhY2ssIG5vdCBpbiB0aGlzIGxpc3QuIE9ubHkgZGV2aWNlcyB3aXRoCisgICAgICogZmFjaW5nIEJBQ0sgb3IgRlJPTlQgbXVzdCBiZSBsaXN0ZWQgaGVyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNmdWwgZ2VuZXJhdGlvbiBvZiBjYW1lcmEgSUQgbGlzdAorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEEgY2FtZXJhIElEIGxpc3QgY2Fubm90IGJlIGNyZWF0ZWQuIFRoaXMgbWF5IGJlIGR1ZSB0bworICAgICAqICAgICAgICAgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUgdGhlIGNhbWVyYSBzdWJzeXN0ZW0sIGZvciBleGFtcGxlLgorICAgICAqIEByZXR1cm4gY2FtZXJhRGV2aWNlU2VydmljZU5hbWVzIFRoZSB2ZWN0b3Igb2YgaW50ZXJuYWwgY2FtZXJhIGRldmljZQorICAgICAqICAgICBuYW1lcyBrbm93biB0byB0aGlzIHByb3ZpZGVyLgorICAgICAqLworICAgIGdldENhbWVyYUlkTGlzdCgpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHZlYzxzdHJpbmc+IGNhbWVyYURldmljZU5hbWVzKTsKKworICAgIC8qKgorICAgICAqIGlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkOgorICAgICAqCisgICAgICogUmV0dXJucyBpZiB0aGUgY2FtZXJhIGRldmljZXMga25vd24gdG8gdGhpcyBjYW1lcmEgcHJvdmlkZXIgc3VwcG9ydAorICAgICAqIHNldFRvcmNoTW9kZSBBUEkgb3Igbm90LiBJZiB0aGUgcHJvdmlkZXIgZG9lcyBub3Qgc3VwcG9ydCBzZXRUb3JjaE1vZGUKKyAgICAgKiBBUEksIGNhbGxpbmcgdG8gc2V0VG9yY2hNb2RlIHdpbGwgcmV0dXJuIE1FVEhPRF9OT1RfU1VQUE9SVEVELgorICAgICAqCisgICAgICogTm90ZSB0aGF0IG5vdCBldmVyeSBjYW1lcmEgZGV2aWNlIGhhcyBhIGZsYXNoIHVuaXQsIHNvIGV2ZW4gdGhpcyBBUEkKKyAgICAgKiByZXR1cm5zIHRydWUsIHNldFRvcmNoTW9kZSBjYWxsIG1pZ2h0IHN0aWxsIGZhaWwgZHVlIHRvIHRoZSBjYW1lcmEgZGV2aWNlCisgICAgICogZG9lcyBub3QgaGF2ZSBhIGZsYXNoIHVuaXQuIEluIHN1Y2ggY2FzZSwgdGhlIHJldHVybmVkIHN0YXR1cyB3aWxsIGJlCisgICAgICogT1BFUkFUSU9OX05PVF9TVVBQT1JURUQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2VzZnVsIGNhbGwKKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBUb3JjaCBBUEkgc3VwcG9ydCBjYW5ub3QgYmUgcXVlcmllZC4gVGhpcyBtYXkgYmUgZHVlIHRvCisgICAgICogICAgICAgICBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZSB0aGUgY2FtZXJhIHN1YnN5c3RlbSwgZm9yIGV4YW1wbGUuCisgICAgICogQHJldHVybiBzdXBwb3J0IFdoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2VzIGtub3duIHRvIHRoaXMgcHJvdmlkZXIKKyAgICAgKiAgICAgc3VwcG9ydHMgc2V0VG9yY2hNb2RlIEFQSSBvciBub3QuCisgICAgICoKKyAgICAgKi8KKyAgICBpc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgYm9vbCBzdXBwb3J0KTsKKworICAgIC8qKgorICAgICAqIGdldENhbWVyYURldmljZUludGVyZmFjZV9WTl94OgorICAgICAqCisgICAgICogUmV0dXJuIGEgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQE4ueC9JQ2FtZXJhRGV2aWNlIGludGVyZmFjZSBmb3IKKyAgICAgKiB0aGUgcmVxdWVzdGVkIGRldmljZSBuYW1lLiBUaGlzIGRvZXMgbm90IHBvd2VyIG9uIHRoZSBjYW1lcmEgZGV2aWNlLCBidXQKKyAgICAgKiBzaW1wbHkgYWNxdWlyZXMgdGhlIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgdGhlIGRldmljZSBzdGF0aWMgaW5mb3JtYXRpb24sCisgICAgICogb3IgdG8gYWRkaXRpb25hbGx5IG9wZW4gdGhlIGRldmljZSBmb3IgYWN0aXZlIHVzZS4KKyAgICAgKgorICAgICAqIEEgc2VwYXJhdGUgbWV0aG9kIGlzIHJlcXVpcmVkIGZvciBlYWNoIG1ham9yIHJldmlzaW9uIG9mIHRoZSBjYW1lcmEgZGV2aWNlCisgICAgICogSEFMIGludGVyZmFjZSwgc2luY2UgdGhleSBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCBlYWNoIG90aGVyLgorICAgICAqCisgICAgICogVmFsaWQgZGV2aWNlIG5hbWVzIGZvciB0aGlzIHByb3ZpZGVyIGNhbiBiZSBvYnRhaW5lZCB2aWEgZWl0aGVyCisgICAgICogZ2V0Q2FtZXJhSWRMaXN0KCksIG9yIHZpYSBhdmFpbGFiaWxpdHkgY2FsbGJhY2tzIGZyb20KKyAgICAgKiBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6Y2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKCkuCisgICAgICoKKyAgICAgKiBUaGUgcmV0dXJuZWQgaW50ZXJmYWNlIG11c3QgYmUgb2YgdGhlIGhpZ2hlc3QgZGVmaW5lZCBtaW5vciB2ZXJzaW9uIGZvcgorICAgICAqIHRoZSBtYWpvciB2ZXJzaW9uOyBpdCdzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgSEFMIGNsaWVudCB0byBlbnN1cmUKKyAgICAgKiB0aGV5IGRvIG5vdCB1c2UgbWV0aG9kcy9ldGMgdGhhdCBhcmUgbm90IHZhbGlkIGZvciB0aGUgYWN0dWFsIG1pbm9yCisgICAgICogdmVyc2lvbiBvZiB0aGUgZGV2aWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbWVyYURldmljZU5hbWUgdGhlIG5hbWUgb2YgdGhlIGRldmljZSB0byBnZXQgYW4gaW50ZXJmYWNlIHRvLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNmdWwgZ2VuZXJhdGlvbiBvZiBjYW1lcmEgSUQgbGlzdAorICAgICAqICAgICBJTExFR0FMX0FSR1VNRU5UOgorICAgICAqICAgICAgICAgVGhpcyBkZXZpY2UgbmFtZSBpcyB1bmtub3duLCBvciBoYXMgYmVlbiBkaXNjb25uZWN0ZWQKKyAgICAgKiAgICAgT1BFUkFUSU9OX05PVF9TVVBQT1JURUQ6CisgICAgICogICAgICAgICBUaGUgc3BlY2lmaWVkIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgbWFqb3IgdmVyc2lvbiBvZiB0aGUKKyAgICAgKiAgICAgICAgIEhBTCBpbnRlcmZhY2UuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgQSBjYW1lcmEgaW50ZXJmYWNlIGNhbm5vdCBiZSByZXR1cm5lZCBkdWUgdG8gYW4gdW5leHBlY3RlZAorICAgICAqICAgICAgICAgaW50ZXJuYWwgZXJyb3IuCisgICAgICogQHJldHVybiBkZXZpY2UgVGhlIGludGVmYWNlIHRvIHRoaXMgY2FtZXJhIGRldmljZSwgb3IgbnVsbCBpbiBjYXNlIG9mCisgICAgICogICAgIGVycm9yLgorICAgICAqLworICAgIGdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KHN0cmluZyBjYW1lcmFEZXZpY2VOYW1lKSBnZW5lcmF0ZXMKKyAgICAgICAgICAgIChTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA6OklDYW1lcmFEZXZpY2UgZGV2aWNlKTsKKyAgICBnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeChzdHJpbmcgY2FtZXJhRGV2aWNlTmFtZSkgZ2VuZXJhdGVzCisgICAgICAgICAgICAoU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjpJQ2FtZXJhRGV2aWNlIGRldmljZSk7CisKK307CmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlckNhbGxiYWNrLmhhbCBiL2NhbWVyYS9wcm92aWRlci8yLjQvSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzZGQzYzUKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlckNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQ7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlczsKKworLyoqCisgKiBDYWxsYmFjayBmdW5jdGlvbnMgZm9yIGEgY2FtZXJhIHByb3ZpZGVyIEhBTCB0byB1c2UgdG8gaW5mb3JtIHRoZSBjYW1lcmEKKyAqIHNlcnZpY2Ugb2YgY2hhbmdlcyB0byB0aGUgY2FtZXJhIHN1YnN5c3RlbS4KKyAqLworaW50ZXJmYWNlIElDYW1lcmFQcm92aWRlckNhbGxiYWNrIHsKKworICAgIC8qKgorICAgICAqIGNhbWVyYURldmljZVN0YXR1c0NoYW5nZToKKyAgICAgKgorICAgICAqIENhbGxiYWNrIHRvIHRoZSBjYW1lcmEgc2VydmljZSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBzdGF0ZSBvZiBhIHNwZWNpZmljCisgICAgICogY2FtZXJhIGRldmljZSBoYXMgY2hhbmdlZC4KKyAgICAgKgorICAgICAqIE9uIGNhbWVyYSBzZXJ2aWNlIHN0YXJ0dXAsIHdoZW4gSUNhbWVyYVByb3ZpZGVyOjpzZXRDYWxsYmFjayBpcyBpbnZva2VkLAorICAgICAqIHRoZSBjYW1lcmEgc2VydmljZSBtdXN0IGFzc3VtZSB0aGF0IGFsbCBpbnRlcm5hbCBjYW1lcmEgZGV2aWNlcyBhcmUgaW4KKyAgICAgKiB0aGUgQ0FNRVJBX0RFVklDRV9TVEFUVVNfUFJFU0VOVCBzdGF0ZS4KKyAgICAgKgorICAgICAqIFRoZSBwcm92aWRlciBtdXN0IGNhbGwgdGhpcyBtZXRob2QgdG8gaW5mb3JtIHRoZSBjYW1lcmEgc2VydmljZSBvZiBhbnkKKyAgICAgKiBpbml0aWFsbHkgTk9UX1BSRVNFTlQgZGV2aWNlcywgYW5kIG9mIGFueSBleHRlcm5hbCBjYW1lcmEgZGV2aWNlcyB0aGF0CisgICAgICogYXJlIGFscmVhZHkgcHJlc2VudCwgYXMgc29vbiBhcyB0aGUgY2FsbGJhY2tzIGFyZSBhdmFpbGFibGUgdGhyb3VnaAorICAgICAqIHNldENhbGxiYWNrLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbWVyYURldmljZVNlcnZpY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSBjYW1lcmEgZGV2aWNlIHRoYXQgaGFzIGEKKyAgICAgKiAgICAgbmV3IHN0YXR1cy4KKyAgICAgKiBAcGFyYW0gbmV3U3RhdHVzIFRoZSBuZXcgc3RhdHVzIHRoYXQgZGV2aWNlIGlzIGluLgorICAgICAqCisgICAgICovCisgICAgY2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKHN0cmluZyBjYW1lcmFEZXZpY2VOYW1lLAorICAgICAgICAgICAgQ2FtZXJhRGV2aWNlU3RhdHVzIG5ld1N0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiB0b3JjaE1vZGVTdGF0dXNDaGFuZ2U6CisgICAgICoKKyAgICAgKiBDYWxsYmFjayB0byB0aGUgY2FtZXJhIHNlcnZpY2UgdG8gaW5kaWNhdGUgdGhhdCB0aGUgc3RhdGUgb2YgdGhlIHRvcmNoCisgICAgICogbW9kZSBvZiB0aGUgZmxhc2ggdW5pdCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBjYW1lcmEgZGV2aWNlIGhhcworICAgICAqIGNoYW5nZWQuIEF0IHByb3ZpZGVyIHJlZ2lzdHJhdGlvbiB0aW1lLCB0aGUgY2FtZXJhIHNlcnZpY2UgbXVzdCBhc3N1bWUKKyAgICAgKiB0aGUgdG9yY2ggbW9kZXMgYXJlIGluIHRoZSBUT1JDSF9NT0RFX1NUQVRVU19BVkFJTEFCTEVfT0ZGIHN0YXRlIGlmCisgICAgICogYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSBpcyByZXBvcnRlZCBhcyB0cnVlIHZpYSB0aGUKKyAgICAgKiBJQ2FtZXJhRGV2aWNlOjpnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MgY2FsbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYW1lcmFEZXZpY2VTZXJ2aWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgY2FtZXJhIGRldmljZSB0aGF0IGhhcyBhCisgICAgICogICAgIG5ldyBzdGF0dXMuCisgICAgICogQHBhcmFtIG5ld1N0YXR1cyBUaGUgbmV3IHN0YXR1cyB0aGF0IGRldmljZSBpcyBpbi4KKyAgICAgKgorICAgICAqLworICAgIHRvcmNoTW9kZVN0YXR1c0NoYW5nZShzdHJpbmcgY2FtZXJhRGV2aWNlTmFtZSwKKyAgICAgICAgICAgIFRvcmNoTW9kZVN0YXR1cyBuZXdTdGF0dXMpOworCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L0FuZHJvaWQuYnAgYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODk3ZmM3Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0OSBAQAorY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIkNhbWVyYVByb3ZpZGVyLmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgICAgICAiY2FtZXJhLmRldmljZUAxLjAtaW1wbCIsCisgICAgICAgICJjYW1lcmEuZGV2aWNlQDMuMi1pbXBsIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwuYWxsb2NhdG9yQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliY2FtZXJhX21ldGFkYXRhIgorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAtaGVscGVyIgorICAgIF0KK30KKworY2NfYmluYXJ5IHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40LXNlcnZpY2UiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJzZXJ2aWNlLmNwcCJdLAorICAgIGNvbXBpbGVfbXVsdGlsaWI6ICIzMiIsCisgICAgaW5pdF9yYzogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQtc2VydmljZS5yYyJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKwkibGliYmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvQ2FtZXJhUHJvdmlkZXIuY3BwIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L0NhbWVyYVByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWY3YmRkCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L0NhbWVyYVByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDUwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQ2FtUHJvdmlkZXJAMi40LWltcGwiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkNhbWVyYVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiQ2FtZXJhRGV2aWNlXzFfMC5oIgorI2luY2x1ZGUgIkNhbWVyYURldmljZV8zXzIuaCIKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBwcm92aWRlciB7CituYW1lc3BhY2UgVjJfNCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCituYW1lc3BhY2UgeworY29uc3QgY2hhciAqa0xlZ2FjeVByb3ZpZGVyTmFtZSA9ICJsZWdhY3kvMCI7CisvLyAiZGV2aWNlQDx2ZXJzaW9uPi9sZWdhY3kvPGlkPiIKK2NvbnN0IHN0ZDo6cmVnZXgga0RldmljZU5hbWVSRSgiZGV2aWNlQChbMC05XStcXC5bMC05XSspL2xlZ2FjeS8oLispIik7Citjb25zdCBjaGFyICprSEFMM18yID0gIjMuMiI7Citjb25zdCBjaGFyICprSEFMMV8wID0gIjEuMCI7Citjb25zdCBpbnQga01heENhbWVyYURldmljZU5hbWVMZW4gPSAxMjg7Citjb25zdCBpbnQga01heENhbWVyYUlkTGVuID0gMTY7CisKK2Jvb2wgbWF0Y2hEZXZpY2VOYW1lKGNvbnN0IGhpZGxfc3RyaW5nJiBkZXZpY2VOYW1lLCBzdGQ6OnN0cmluZyogZGV2aWNlVmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nKiBjYW1lcmFJZCkgeworICAgIHN0ZDo6c3RyaW5nIGRldmljZU5hbWVTdGQoZGV2aWNlTmFtZS5jX3N0cigpKTsKKyAgICBzdGQ6OnNtYXRjaCBzbTsKKyAgICBpZiAoc3RkOjpyZWdleF9tYXRjaChkZXZpY2VOYW1lU3RkLCBzbSwga0RldmljZU5hbWVSRSkpIHsKKyAgICAgICAgaWYgKGRldmljZVZlcnNpb24gIT0gbnVsbHB0cikgeworICAgICAgICAgICAgKmRldmljZVZlcnNpb24gPSBzbVsxXTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2FtZXJhSWQgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgKmNhbWVyYUlkID0gc21bMl07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpDYW1lcmFNZXRhZGF0YVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6U3RhdHVzOworCisvKioKKyAqIHN0YXRpYyBjYWxsYmFjayBmb3J3YXJkaW5nIG1ldGhvZHMgZnJvbSBIQUwgdG8gaW5zdGFuY2UKKyAqLwordm9pZCBDYW1lcmFQcm92aWRlcjo6c0NhbWVyYURldmljZVN0YXR1c0NoYW5nZSgKKyAgICAgICAgY29uc3Qgc3RydWN0IGNhbWVyYV9tb2R1bGVfY2FsbGJhY2tzKiBjYWxsYmFja3MsCisgICAgICAgIGludCBjYW1lcmFfaWQsCisgICAgICAgIGludCBuZXdfc3RhdHVzKSB7CisgICAgQ2FtZXJhUHJvdmlkZXIqIGNwID0gY29uc3RfY2FzdDxDYW1lcmFQcm92aWRlcio+KAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgQ2FtZXJhUHJvdmlkZXIqPihjYWxsYmFja3MpKTsKKworICAgIGlmIChjcCA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FsbGJhY2sgb3BzIGlzIG51bGwiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGNwLT5tQ2JMb2NrKTsKKyAgICBjaGFyIGNhbWVyYUlkW2tNYXhDYW1lcmFJZExlbl07CisgICAgc25wcmludGYoY2FtZXJhSWQsIHNpemVvZihjYW1lcmFJZCksICIlZCIsIGNhbWVyYV9pZCk7CisgICAgc3RkOjpzdHJpbmcgY2FtZXJhSWRTdHIoY2FtZXJhSWQpOworICAgIGNwLT5tQ2FtZXJhU3RhdHVzTWFwW2NhbWVyYUlkU3RyXSA9IChjYW1lcmFfZGV2aWNlX3N0YXR1c190KSBuZXdfc3RhdHVzOworICAgIGlmIChjcC0+bUNhbGxiYWNrcyAhPSBudWxscHRyKSB7CisgICAgICAgIENhbWVyYURldmljZVN0YXR1cyBzdGF0dXMgPSAoQ2FtZXJhRGV2aWNlU3RhdHVzKSBuZXdfc3RhdHVzOworICAgICAgICBmb3IgKGF1dG8gY29uc3QmIGRldmljZU5hbWVQYWlyIDogY3AtPm1DYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICAgICAgaWYgKGNhbWVyYUlkU3RyLmNvbXBhcmUoZGV2aWNlTmFtZVBhaXIuZmlyc3QpID09IDApIHsKKyAgICAgICAgICAgICAgICBjcC0+bUNhbGxiYWNrcy0+Y2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKAorICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlTmFtZVBhaXIuc2Vjb25kLCBzdGF0dXMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCit2b2lkIENhbWVyYVByb3ZpZGVyOjpzVG9yY2hNb2RlU3RhdHVzQ2hhbmdlKAorICAgICAgICBjb25zdCBzdHJ1Y3QgY2FtZXJhX21vZHVsZV9jYWxsYmFja3MqIGNhbGxiYWNrcywKKyAgICAgICAgY29uc3QgY2hhciogY2FtZXJhX2lkLAorICAgICAgICBpbnQgbmV3X3N0YXR1cykgeworICAgIENhbWVyYVByb3ZpZGVyKiBjcCA9IGNvbnN0X2Nhc3Q8Q2FtZXJhUHJvdmlkZXIqPigKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IENhbWVyYVByb3ZpZGVyKj4oY2FsbGJhY2tzKSk7CisKKyAgICBpZiAoY3AgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbGxiYWNrIG9wcyBpcyBudWxsIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE11dGV4OjpBdXRvbG9jayBfbChjcC0+bUNiTG9jayk7CisgICAgaWYgKGNwLT5tQ2FsbGJhY2tzICE9IG51bGxwdHIpIHsKKyAgICAgICAgc3RkOjpzdHJpbmcgY2FtZXJhSWRTdHIoY2FtZXJhX2lkKTsKKyAgICAgICAgVG9yY2hNb2RlU3RhdHVzIHN0YXR1cyA9IChUb3JjaE1vZGVTdGF0dXMpIG5ld19zdGF0dXM7CisgICAgICAgIGZvciAoYXV0byBjb25zdCYgZGV2aWNlTmFtZVBhaXIgOiBjcC0+bUNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgICAgICBpZiAoY2FtZXJhSWRTdHIuY29tcGFyZShkZXZpY2VOYW1lUGFpci5maXJzdCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGNwLT5tQ2FsbGJhY2tzLT50b3JjaE1vZGVTdGF0dXNDaGFuZ2UoCisgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VOYW1lUGFpci5zZWNvbmQsIHN0YXR1cyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK1N0YXR1cyBDYW1lcmFQcm92aWRlcjo6Z2V0SGlkbFN0YXR1cyhpbnQgc3RhdHVzKSB7CisgICAgc3dpdGNoIChzdGF0dXMpIHsKKyAgICAgICAgY2FzZSAwOiByZXR1cm4gU3RhdHVzOjpPSzsKKyAgICAgICAgY2FzZSAtRU5PREVWOiByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgY2FzZSAtRUlOVkFMOiByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoIiVzOiB1bmtub3duIEhBTCBzdGF0dXMgY29kZSAlZCIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0KK30KKworc3RkOjpzdHJpbmcgQ2FtZXJhUHJvdmlkZXI6OmdldExlZ2FjeUNhbWVyYUlkKGNvbnN0IGhpZGxfc3RyaW5nJiBkZXZpY2VOYW1lKSB7CisgICAgc3RkOjpzdHJpbmcgY2FtZXJhSWQ7CisgICAgbWF0Y2hEZXZpY2VOYW1lKGRldmljZU5hbWUsIG51bGxwdHIsICZjYW1lcmFJZCk7CisgICAgcmV0dXJuIGNhbWVyYUlkOworfQorCitpbnQgQ2FtZXJhUHJvdmlkZXI6OmdldENhbWVyYURldmljZVZlcnNpb24oY29uc3QgaGlkbF9zdHJpbmcmIGRldmljZU5hbWUpIHsKKyAgICBzdGQ6OnN0cmluZyBkZXZpY2VWZXJzaW9uOworICAgIGJvb2wgbWF0Y2ggPSBtYXRjaERldmljZU5hbWUoZGV2aWNlTmFtZSwgJmRldmljZVZlcnNpb24sIG51bGxwdHIpOworICAgIGlmICghbWF0Y2gpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAoZGV2aWNlVmVyc2lvbiA9PSBrSEFMM18yKSB7CisgICAgICAgIC8vIG1heWJlIHN3aXRjaGVkIHRvIDMuNCBvciBkZWZpbmUgdGhlIGhpZGwgdmVyc2lvbiBlbnVtIGxhdGVyCisgICAgICAgIHJldHVybiBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMjsKKyAgICB9IGVsc2UgaWYgKGRldmljZVZlcnNpb24gPT0ga0hBTDFfMCkgeworICAgICAgICByZXR1cm4gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzA7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdGQ6OnN0cmluZyBDYW1lcmFQcm92aWRlcjo6Z2V0SGlkbERldmljZU5hbWUoCisgICAgICAgIHN0ZDo6c3RyaW5nIGNhbWVyYUlkLCBpbnQgZGV2aWNlVmVyc2lvbikgeworICAgIC8vIE1heWJlIGNvbnNpZGVyIGNyZWF0ZSBhIHZlcnNpb24gY2hlY2sgbWV0aG9kIGFuZCBTb3J0ZWRWZWMgdG8gc3BlZWQgdXA/CisgICAgaWYgKGRldmljZVZlcnNpb24gIT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzAgJiYKKyAgICAgICAgICAgIGRldmljZVZlcnNpb24gIT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIgJiYKKyAgICAgICAgICAgIGRldmljZVZlcnNpb24gIT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzMgJiYKKyAgICAgICAgICAgIGRldmljZVZlcnNpb24gIT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzQgKSB7CisgICAgICAgIHJldHVybiBoaWRsX3N0cmluZygiIik7CisgICAgfQorICAgIGNvbnN0IGNoYXIqIHZlcnNpb25TdHIgPSAoZGV2aWNlVmVyc2lvbiA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgPyBrSEFMMV8wIDoga0hBTDNfMjsKKyAgICBjaGFyIGRldmljZU5hbWVba01heENhbWVyYURldmljZU5hbWVMZW5dOworICAgIHNucHJpbnRmKGRldmljZU5hbWUsIHNpemVvZihkZXZpY2VOYW1lKSwgImRldmljZUAlcy9sZWdhY3kvJXMiLAorICAgICAgICAgICAgdmVyc2lvblN0ciwgY2FtZXJhSWQuY19zdHIoKSk7CisgICAgcmV0dXJuIGRldmljZU5hbWU7Cit9CisKK0NhbWVyYVByb3ZpZGVyOjpDYW1lcmFQcm92aWRlcigpIDoKKyAgICAgICAgY2FtZXJhX21vZHVsZV9jYWxsYmFja3NfdCh7c0NhbWVyYURldmljZVN0YXR1c0NoYW5nZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc1RvcmNoTW9kZVN0YXR1c0NoYW5nZX0pIHsKKyAgICBtSW5pdEZhaWxlZCA9IGluaXRpYWxpemUoKTsKK30KKworQ2FtZXJhUHJvdmlkZXI6On5DYW1lcmFQcm92aWRlcigpIHt9CisKK2Jvb2wgQ2FtZXJhUHJvdmlkZXI6OmluaXRpYWxpemUoKSB7CisgICAgY2FtZXJhX21vZHVsZV90ICpyYXdNb2R1bGU7CisgICAgaW50IGVyciA9IGh3X2dldF9tb2R1bGUoQ0FNRVJBX0hBUkRXQVJFX01PRFVMRV9JRCwKKyAgICAgICAgICAgIChjb25zdCBod19tb2R1bGVfdCAqKikmcmF3TW9kdWxlKTsKKyAgICBpZiAoZXJyIDwgMCkgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IGxvYWQgY2FtZXJhIEhBTCBtb2R1bGU6ICVkICglcykiLCBlcnIsIHN0cmVycm9yKC1lcnIpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgbU1vZHVsZSA9IG5ldyBDYW1lcmFNb2R1bGUocmF3TW9kdWxlKTsKKyAgICBlcnIgPSBtTW9kdWxlLT5pbml0KCk7CisgICAgaWYgKGVyciAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IGluaXRpYWxpemUgY2FtZXJhIEhBTCBtb2R1bGU6ICVkICglcykiLCBlcnIsIHN0cmVycm9yKC1lcnIpKTsKKyAgICAgICAgbU1vZHVsZS5jbGVhcigpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgQUxPR0koIkxvYWRlZCBcIiVzXCIgY2FtZXJhIG1vZHVsZSIsIG1Nb2R1bGUtPmdldE1vZHVsZU5hbWUoKSk7CisKKyAgICAvLyBTZXR1cCB2ZW5kb3IgdGFncyBoZXJlIHNvIEhBTCBjYW4gc2V0dXAgdmVuZG9yIGtleXMgaW4gY2FtZXJhIGNoYXJhY3RlcmlzdGljcworICAgIFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmNsZWFyR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvcigpOworICAgIGlmICghc2V0VXBWZW5kb3JUYWdzKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBWZW5kb3IgdGFnIHNldHVwIGZhaWxlZCwgd2lsbCBub3QgYmUgYXZhaWxhYmxlLiIsIF9fRlVOQ1RJT05fXyk7CisgICAgfQorCisgICAgLy8gU2V0dXAgY2FsbGJhY2sgbm93IGJlY2F1c2Ugd2UgYXJlIGdvaW5nIHRvIHRyeSBvcGVuTGVnYWN5IG5leHQKKyAgICBlcnIgPSBtTW9kdWxlLT5zZXRDYWxsYmFja3ModGhpcyk7CisgICAgaWYgKGVyciAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IHNldCBjYW1lcmEgbW9kdWxlIGNhbGxiYWNrOiAlZCAoJXMpIiwgZXJyLCBzdHJlcnJvcigtZXJyKSk7CisgICAgICAgIG1Nb2R1bGUuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgbU51bWJlck9mTGVnYWN5Q2FtZXJhcyA9IG1Nb2R1bGUtPmdldE51bWJlck9mQ2FtZXJhcygpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbU51bWJlck9mTGVnYWN5Q2FtZXJhczsgaSsrKSB7CisgICAgICAgIHN0cnVjdCBjYW1lcmFfaW5mbyBpbmZvOworICAgICAgICBhdXRvIHJjID0gbU1vZHVsZS0+Z2V0Q2FtZXJhSW5mbyhpLCAmaW5mbyk7CisgICAgICAgIGlmIChyYyAhPSBOT19FUlJPUikgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmEgaW5mbyBxdWVyeSBmYWlsZWQhIiwgX19mdW5jX18pOworICAgICAgICAgICAgbU1vZHVsZS5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2hlY2tDYW1lcmFWZXJzaW9uKGksIGluZm8pICE9IE9LKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IENhbWVyYSB2ZXJzaW9uIGNoZWNrIGZhaWxlZCEiLCBfX2Z1bmNfXyk7CisgICAgICAgICAgICBtTW9kdWxlLmNsZWFyKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgY2FtZXJhSWRba01heENhbWVyYUlkTGVuXTsKKyAgICAgICAgc25wcmludGYoY2FtZXJhSWQsIHNpemVvZihjYW1lcmFJZCksICIlZCIsIGkpOworICAgICAgICBzdGQ6OnN0cmluZyBjYW1lcmFJZFN0cihjYW1lcmFJZCk7CisgICAgICAgIG1DYW1lcmFTdGF0dXNNYXBbY2FtZXJhSWRTdHJdID0gQ0FNRVJBX0RFVklDRV9TVEFUVVNfUFJFU0VOVDsKKyAgICAgICAgbUNhbWVyYUlkcy5hZGQoY2FtZXJhSWRTdHIpOworCisgICAgICAgIC8vIGluaXRpYWxpemUgbUNhbWVyYURldmljZU5hbWVzIGFuZCBtT3BlbkxlZ2FjeVN1cHBvcnRlZAorICAgICAgICBtT3BlbkxlZ2FjeVN1cHBvcnRlZFtjYW1lcmFJZFN0cl0gPSBmYWxzZTsKKyAgICAgICAgaW50IGRldmljZVZlcnNpb24gPSBtTW9kdWxlLT5nZXREZXZpY2VWZXJzaW9uKGkpOworICAgICAgICBtQ2FtZXJhRGV2aWNlTmFtZXMuYWRkKAorICAgICAgICAgICAgICAgIHN0ZDo6bWFrZV9wYWlyKGNhbWVyYUlkU3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEhpZGxEZXZpY2VOYW1lKGNhbWVyYUlkU3RyLCBkZXZpY2VWZXJzaW9uKSkpOworICAgICAgICBpZiAoZGV2aWNlVmVyc2lvbiA+PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMiAmJgorICAgICAgICAgICAgICAgIG1Nb2R1bGUtPmlzT3BlbkxlZ2FjeURlZmluZWQoKSkgeworICAgICAgICAgICAgLy8gdHJ5IG9wZW5fbGVnYWN5IHRvIHNlZSBpZiBpdCBhY3R1YWxseSB3b3JrcworICAgICAgICAgICAgc3RydWN0IGh3X2RldmljZV90KiBoYWxEZXYgPSBudWxscHRyOworICAgICAgICAgICAgaW50IHJldCA9IG1Nb2R1bGUtPm9wZW5MZWdhY3koY2FtZXJhSWQsIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wLCAmaGFsRGV2KTsKKyAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICAgICAgICAgIG1PcGVuTGVnYWN5U3VwcG9ydGVkW2NhbWVyYUlkU3RyXSA9IHRydWU7CisgICAgICAgICAgICAgICAgaGFsRGV2LT5jbG9zZShoYWxEZXYpOworICAgICAgICAgICAgICAgIG1DYW1lcmFEZXZpY2VOYW1lcy5hZGQoCisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1ha2VfcGFpcihjYW1lcmFJZFN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SGlkbERldmljZU5hbWUoY2FtZXJhSWRTdHIsIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChyZXQgPT0gLUVCVVNZIHx8IHJldCA9PSAtRVVTRVJTKSB7CisgICAgICAgICAgICAgICAgLy8gTG9va3MgbGlrZSB0aGlzIHByb3ZpZGVyIGluc3RhbmNlIGlzIG5vdCBpbml0aWFsaXplZCBkdXJpbmcKKyAgICAgICAgICAgICAgICAvLyBzeXN0ZW0gc3RhcnR1cCBhbmQgdGhlcmUgYXJlIG90aGVyIGNhbWVyYSB1c2VycyBhbHJlYWR5LgorICAgICAgICAgICAgICAgIC8vIE5vdCBhIGdvb2Qgc2lnbiBidXQgbm90IGZhdGFsLgorICAgICAgICAgICAgICAgIEFMT0dXKCIlczogb3Blbl9sZWdhY3kgdHJ5IGZhaWxlZCEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOyAvLyBtSW5pdEZhaWxlZAorfQorCisvKioKKyAqIENoZWNrIHRoYXQgdGhlIGRldmljZSBIQUwgdmVyc2lvbiBpcyBzdGlsbCBpbiBzdXBwb3J0ZWQuCisgKi8KK2ludCBDYW1lcmFQcm92aWRlcjo6Y2hlY2tDYW1lcmFWZXJzaW9uKGludCBpZCwgY2FtZXJhX2luZm8gaW5mbykgeworICAgIGlmIChtTW9kdWxlID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuIE5PX0lOSVQ7CisgICAgfQorCisgICAgLy8gZGV2aWNlX3ZlcnNpb24gdW5kZWZpbmVkIGluIENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wLAorICAgIC8vIEFsbCBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzFfMCBkZXZpY2VzIGFyZSBiYWNrd2FyZC1jb21wYXRpYmxlCisgICAgaWYgKG1Nb2R1bGUtPmdldE1vZHVsZUFwaVZlcnNpb24oKSA+PSBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzJfMCkgeworICAgICAgICAvLyBWZXJpZnkgdGhlIGRldmljZSB2ZXJzaW9uIGlzIGluIHRoZSBzdXBwb3J0ZWQgcmFuZ2UKKyAgICAgICAgc3dpdGNoIChpbmZvLmRldmljZV92ZXJzaW9uKSB7CisgICAgICAgICAgICBjYXNlIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wOgorICAgICAgICAgICAgY2FzZSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMjoKKyAgICAgICAgICAgIGNhc2UgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzM6CisgICAgICAgICAgICBjYXNlIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM180OgorICAgICAgICAgICAgICAgIC8vIGluIHN1cHBvcnQKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8yXzA6CisgICAgICAgICAgICBjYXNlIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMl8xOgorICAgICAgICAgICAgY2FzZSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMDoKKyAgICAgICAgICAgIGNhc2UgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzE6CisgICAgICAgICAgICAgICAgLy8gbm8gbG9uZ2VyIHN1cHBvcnRlZAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IERldmljZSAlZCBoYXMgSEFMIHZlcnNpb24gJXgsIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBpZCwgaW5mby5kZXZpY2VfdmVyc2lvbik7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5PX0lOSVQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gT0s7Cit9CisKK2Jvb2wgQ2FtZXJhUHJvdmlkZXI6OnNldFVwVmVuZG9yVGFncygpIHsKKyAgICBBVFJBQ0VfQ0FMTCgpOworICAgIHZlbmRvcl90YWdfb3BzX3Qgdk9wcyA9IHZlbmRvcl90YWdfb3BzX3QoKTsKKworICAgIC8vIENoZWNrIGlmIHZlbmRvciBvcGVyYXRpb25zIGhhdmUgYmVlbiBpbXBsZW1lbnRlZAorICAgIGlmICghbU1vZHVsZS0+aXNWZW5kb3JUYWdEZWZpbmVkKCkpIHsKKyAgICAgICAgQUxPR0koIiVzOiBObyB2ZW5kb3IgdGFncyBkZWZpbmVkIGZvciB0aGlzIGRldmljZS4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBtTW9kdWxlLT5nZXRWZW5kb3JUYWdPcHMoJnZPcHMpOworCisgICAgLy8gRW5zdXJlIGFsbCB2ZW5kb3Igb3BlcmF0aW9ucyBhcmUgcHJlc2VudAorICAgIGlmICh2T3BzLmdldF90YWdfY291bnQgPT0gbnVsbHB0ciB8fCB2T3BzLmdldF9hbGxfdGFncyA9PSBudWxscHRyIHx8CisgICAgICAgICAgICB2T3BzLmdldF9zZWN0aW9uX25hbWUgPT0gbnVsbHB0ciB8fCB2T3BzLmdldF90YWdfbmFtZSA9PSBudWxscHRyIHx8CisgICAgICAgICAgICB2T3BzLmdldF90YWdfdHlwZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogVmVuZG9yIHRhZyBvcGVyYXRpb25zIG5vdCBmdWxseSBkZWZpbmVkLiBJZ25vcmluZyBkZWZpbml0aW9ucy4iCisgICAgICAgICAgICAgICAsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBSZWFkIGFsbCB2ZW5kb3IgdGFnIGRlZmluaXRpb25zIGludG8gYSBkZXNjcmlwdG9yCisgICAgc3A8VmVuZG9yVGFnRGVzY3JpcHRvcj4gZGVzYzsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKChyZXMgPSBWZW5kb3JUYWdEZXNjcmlwdG9yOjpjcmVhdGVEZXNjcmlwdG9yRnJvbU9wcygmdk9wcywgLypvdXQqL2Rlc2MpKQorICAgICAgICAgICAgIT0gT0spIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDb3VsZCBub3QgZ2VuZXJhdGUgZGVzY3JpcHRvciBmcm9tIHZlbmRvciB0YWcgb3BlcmF0aW9ucywiCisgICAgICAgICAgICAgICJyZWNlaXZlZCBlcnJvciAlcyAoJWQpLiBDYW1lcmEgY2xpZW50cyB3aWxsIG5vdCBiZSBhYmxlIHRvIHVzZSIKKyAgICAgICAgICAgICAgInZlbmRvciB0YWdzIiwgX19GVU5DVElPTl9fLCBzdHJlcnJvcihyZXMpLCByZXMpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8gU2V0IHRoZSBnbG9iYWwgZGVzY3JpcHRvciB0byB1c2Ugd2l0aCBjYW1lcmEgbWV0YWRhdGEKKyAgICBWZW5kb3JUYWdEZXNjcmlwdG9yOjpzZXRBc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IoZGVzYyk7CisgICAgY29uc3QgU29ydGVkVmVjdG9yPFN0cmluZzg+KiBzZWN0aW9uTmFtZXMgPSBkZXNjLT5nZXRBbGxTZWN0aW9uTmFtZXMoKTsKKyAgICBzaXplX3QgbnVtU2VjdGlvbnMgPSBzZWN0aW9uTmFtZXMtPnNpemUoKTsKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnZlY3RvcjxWZW5kb3JUYWc+PiB0YWdzQnlTZWN0aW9uKG51bVNlY3Rpb25zKTsKKyAgICBpbnQgdGFnQ291bnQgPSBkZXNjLT5nZXRUYWdDb3VudCgpOworICAgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiB0YWdzKHRhZ0NvdW50KTsKKyAgICBkZXNjLT5nZXRUYWdBcnJheSh0YWdzLmRhdGEoKSk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdDb3VudDsgaSsrKSB7CisgICAgICAgIFZlbmRvclRhZyB2dDsKKyAgICAgICAgdnQudGFnSWQgPSB0YWdzW2ldOworICAgICAgICB2dC50YWdOYW1lID0gZGVzYy0+Z2V0VGFnTmFtZSh0YWdzW2ldKTsKKyAgICAgICAgdnQudGFnVHlwZSA9IChDYW1lcmFNZXRhZGF0YVR5cGUpIGRlc2MtPmdldFRhZ1R5cGUodGFnc1tpXSk7CisgICAgICAgIHNzaXplX3Qgc2VjdGlvbklkeCA9IGRlc2MtPmdldFNlY3Rpb25JbmRleCh0YWdzW2ldKTsKKyAgICAgICAgdGFnc0J5U2VjdGlvbltzZWN0aW9uSWR4XS5wdXNoX2JhY2sodnQpOworICAgIH0KKyAgICBtVmVuZG9yVGFnU2VjdGlvbnMucmVzaXplKG51bVNlY3Rpb25zKTsKKyAgICBmb3IgKHNpemVfdCBzID0gMDsgcyA8IG51bVNlY3Rpb25zOyBzKyspIHsKKyAgICAgICAgbVZlbmRvclRhZ1NlY3Rpb25zW3NdLnNlY3Rpb25OYW1lID0gKCpzZWN0aW9uTmFtZXMpW3NdLnN0cmluZygpOworICAgICAgICBtVmVuZG9yVGFnU2VjdGlvbnNbc10udGFncyA9IHRhZ3NCeVNlY3Rpb25bc107CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpwcm92aWRlcjo6VjJfNDo6SUNhbWVyYVByb3ZpZGVyIGZvbGxvdy4KK1JldHVybjxTdGF0dXM+IENhbWVyYVByb3ZpZGVyOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjaz4mIGNhbGxiYWNrKSAgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtQ2JMb2NrKTsKKyAgICBtQ2FsbGJhY2tzID0gY2FsbGJhY2s7CisgICAgcmV0dXJuIFN0YXR1czo6T0s7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFQcm92aWRlcjo6Z2V0VmVuZG9yVGFncyhnZXRWZW5kb3JUYWdzX2NiIF9oaWRsX2NiKSAgeworICAgIF9oaWRsX2NiKFN0YXR1czo6T0ssIG1WZW5kb3JUYWdTZWN0aW9ucyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYVByb3ZpZGVyOjpnZXRDYW1lcmFJZExpc3QoZ2V0Q2FtZXJhSWRMaXN0X2NiIF9oaWRsX2NiKSAgeworICAgIHN0ZDo6dmVjdG9yPGhpZGxfc3RyaW5nPiBkZXZpY2VOYW1lTGlzdDsKKyAgICBmb3IgKGF1dG8gY29uc3QmIGRldmljZU5hbWVQYWlyIDogbUNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChtQ2FtZXJhU3RhdHVzTWFwW2RldmljZU5hbWVQYWlyLmZpcnN0XSA9PSBDQU1FUkFfREVWSUNFX1NUQVRVU19QUkVTRU5UKSB7CisgICAgICAgICAgICBkZXZpY2VOYW1lTGlzdC5wdXNoX2JhY2soZGV2aWNlTmFtZVBhaXIuc2Vjb25kKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gaGlkbERldmljZU5hbWVMaXN0KGRldmljZU5hbWVMaXN0KTsKKyAgICBfaGlkbF9jYihTdGF0dXM6Ok9LLCBoaWRsRGV2aWNlTmFtZUxpc3QpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFQcm92aWRlcjo6aXNTZXRUb3JjaE1vZGVTdXBwb3J0ZWQoaXNTZXRUb3JjaE1vZGVTdXBwb3J0ZWRfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIHN1cHBvcnQgPSBtTW9kdWxlLT5pc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgpOworICAgIF9oaWRsX2NiIChTdGF0dXM6Ok9LLCBzdXBwb3J0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhUHJvdmlkZXI6OmdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KAorICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhRGV2aWNlTmFtZSwgZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3hfY2IgX2hpZGxfY2IpICB7CisgICAgc3RkOjpzdHJpbmcgY2FtZXJhSWQsIGRldmljZVZlcnNpb247CisgICAgYm9vbCBtYXRjaCA9IG1hdGNoRGV2aWNlTmFtZShjYW1lcmFEZXZpY2VOYW1lLCAmZGV2aWNlVmVyc2lvbiwgJmNhbWVyYUlkKTsKKyAgICBpZiAoIW1hdGNoKSB7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgZGV2aWNlTmFtZShjYW1lcmFEZXZpY2VOYW1lLmNfc3RyKCkpOworICAgIHNzaXplX3QgaW5kZXggPSBtQ2FtZXJhRGV2aWNlTmFtZXMuaW5kZXhPZihzdGQ6Om1ha2VfcGFpcihjYW1lcmFJZCwgZGV2aWNlTmFtZSkpOworICAgIGlmIChpbmRleCA9PSBOQU1FX05PVF9GT1VORCkgeyAvLyBFaXRoZXIgYW4gaWxsZWdhbCBuYW1lIG9yIGEgZGV2aWNlIHZlcnNpb24gbWlzbWF0Y2gKKyAgICAgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgICAgIHNzaXplX3QgaWR4ID0gbUNhbWVyYUlkcy5pbmRleE9mKGNhbWVyYUlkKTsKKyAgICAgICAgaWYgKGlkeCA9PSBOQU1FX05PVF9GT1VORCkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBjYW5ub3QgZmluZCBjYW1lcmEgJXMhIiwgX19GVU5DVElPTl9fLCBjYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICAgICAgfSBlbHNlIHsgLy8gaW52YWxpZCB2ZXJzaW9uCisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBkZXZpY2UgJXMgZG9lcyBub3Qgc3VwcG9ydCB2ZXJzaW9uICVzISIsCisgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgY2FtZXJhSWQuY19zdHIoKSwgZGV2aWNlVmVyc2lvbi5jX3N0cigpKTsKKyAgICAgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgICAgIH0KKyAgICAgICAgX2hpZGxfY2Ioc3RhdHVzLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpZiAobUNhbWVyYVN0YXR1c01hcC5jb3VudChjYW1lcmFJZCkgPT0gMCB8fAorICAgICAgICAgICAgbUNhbWVyYVN0YXR1c01hcFtjYW1lcmFJZF0gIT0gQ0FNRVJBX0RFVklDRV9TVEFUVVNfUFJFU0VOVCkgeworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHNwPGFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6aW1wbGVtZW50YXRpb246OkNhbWVyYURldmljZT4gZGV2aWNlID0KKyAgICAgICAgICAgIG5ldyBhbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OmltcGxlbWVudGF0aW9uOjpDYW1lcmFEZXZpY2UoCisgICAgICAgICAgICAgICAgICAgIG1Nb2R1bGUsIGNhbWVyYUlkLCBtQ2FtZXJhRGV2aWNlTmFtZXMpOworCisgICAgaWYgKGRldmljZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2Fubm90IGFsbG9jYXRlIGNhbWVyYSBkZXZpY2UgZm9yIGlkICVzIiwgX19GVU5DVElPTl9fLCBjYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaWYgKGRldmljZS0+aXNJbml0RmFpbGVkKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgZGV2aWNlICVzIGluaXQgZmFpbGVkISIsIF9fRlVOQ1RJT05fXywgY2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIGRldmljZSA9IG51bGxwdHI7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIF9oaWRsX2NiIChTdGF0dXM6Ok9LLCBkZXZpY2UpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFQcm92aWRlcjo6Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjYW1lcmFEZXZpY2VOYW1lLCBnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeF9jYiBfaGlkbF9jYikgIHsKKyAgICBzdGQ6OnN0cmluZyBjYW1lcmFJZCwgZGV2aWNlVmVyc2lvbjsKKyAgICBib29sIG1hdGNoID0gbWF0Y2hEZXZpY2VOYW1lKGNhbWVyYURldmljZU5hbWUsICZkZXZpY2VWZXJzaW9uLCAmY2FtZXJhSWQpOworICAgIGlmICghbWF0Y2gpIHsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5ULCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzdGQ6OnN0cmluZyBkZXZpY2VOYW1lKGNhbWVyYURldmljZU5hbWUuY19zdHIoKSk7CisgICAgc3NpemVfdCBpbmRleCA9IG1DYW1lcmFEZXZpY2VOYW1lcy5pbmRleE9mKHN0ZDo6bWFrZV9wYWlyKGNhbWVyYUlkLCBkZXZpY2VOYW1lKSk7CisgICAgaWYgKGluZGV4ID09IE5BTUVfTk9UX0ZPVU5EKSB7IC8vIEVpdGhlciBhbiBpbGxlZ2FsIG5hbWUgb3IgYSBkZXZpY2UgdmVyc2lvbiBtaXNtYXRjaAorICAgICAgICBTdGF0dXMgc3RhdHVzID0gU3RhdHVzOjpPSzsKKyAgICAgICAgc3NpemVfdCBpZHggPSBtQ2FtZXJhSWRzLmluZGV4T2YoY2FtZXJhSWQpOworICAgICAgICBpZiAoaWR4ID09IE5BTUVfTk9UX0ZPVU5EKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBmaW5kIGNhbWVyYSAlcyEiLCBfX0ZVTkNUSU9OX18sIGNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgICAgICB9IGVsc2UgeyAvLyBpbnZhbGlkIHZlcnNpb24KKyAgICAgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIGRldmljZSAlcyBkb2VzIG5vdCBzdXBwb3J0IHZlcnNpb24gJXMhIiwKKyAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBjYW1lcmFJZC5jX3N0cigpLCBkZXZpY2VWZXJzaW9uLmNfc3RyKCkpOworICAgICAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYihzdGF0dXMsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGlmIChtQ2FtZXJhU3RhdHVzTWFwLmNvdW50KGNhbWVyYUlkKSA9PSAwIHx8CisgICAgICAgICAgICBtQ2FtZXJhU3RhdHVzTWFwW2NhbWVyYUlkXSAhPSBDQU1FUkFfREVWSUNFX1NUQVRVU19QUkVTRU5UKSB7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgc3A8YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjppbXBsZW1lbnRhdGlvbjo6Q2FtZXJhRGV2aWNlPiBkZXZpY2UgPQorICAgICAgICAgICAgbmV3IGFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6aW1wbGVtZW50YXRpb246OkNhbWVyYURldmljZSgKKyAgICAgICAgICAgICAgICAgICAgbU1vZHVsZSwgY2FtZXJhSWQsIG1DYW1lcmFEZXZpY2VOYW1lcyk7CisKKyAgICBpZiAoZGV2aWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW5ub3QgYWxsb2NhdGUgY2FtZXJhIGRldmljZSBmb3IgaWQgJXMiLCBfX0ZVTkNUSU9OX18sIGNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpZiAoZGV2aWNlLT5pc0luaXRGYWlsZWQoKSkgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBkZXZpY2UgJXMgaW5pdCBmYWlsZWQhIiwgX19GVU5DVElPTl9fLCBjYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgZGV2aWNlID0gbnVsbHB0cjsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgX2hpZGxfY2IgKFN0YXR1czo6T0ssIGRldmljZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSUNhbWVyYVByb3ZpZGVyKiBISURMX0ZFVENIX0lDYW1lcmFQcm92aWRlcihjb25zdCBjaGFyKiBuYW1lKSB7CisgICAgaWYgKHN0cmNtcChuYW1lLCBrTGVnYWN5UHJvdmlkZXJOYW1lKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBDYW1lcmFQcm92aWRlciogcHJvdmlkZXIgPSBuZXcgQ2FtZXJhUHJvdmlkZXIoKTsKKyAgICBpZiAocHJvdmlkZXIgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBhbGxvY2F0ZSBjYW1lcmEgcHJvdmlkZXIhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGlmIChwcm92aWRlci0+aXNJbml0RmFpbGVkKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgcHJvdmlkZXIgaW5pdCBmYWlsZWQhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgZGVsZXRlIHByb3ZpZGVyOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIHByb3ZpZGVyOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzQKK30gIC8vIG5hbWVzcGFjZSBwcm92aWRlcgorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L0NhbWVyYVByb3ZpZGVyLmggYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvQ2FtZXJhUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTk3MWZhCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L0NhbWVyYVByb3ZpZGVyLmgKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX1BST1ZJREVSX1YyXzRfQ0FNRVJBUFJPVklERVJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9QUk9WSURFUl9WMl80X0NBTUVSQVBST1ZJREVSX0gKKworI2luY2x1ZGUgPHJlZ2V4PgorI2luY2x1ZGUgImhhcmR3YXJlL2NhbWVyYV9jb21tb24uaCIKKyNpbmNsdWRlICJ1dGlscy9NdXRleC5oIgorI2luY2x1ZGUgInV0aWxzL1NvcnRlZFZlY3Rvci5oIgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JQ2FtZXJhUHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSAiQ2FtZXJhTW9kdWxlLmgiCisjaW5jbHVkZSAiVmVuZG9yVGFnRGVzY3JpcHRvci5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgcHJvdmlkZXIgeworbmFtZXNwYWNlIFYyXzQgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OkNhbWVyYURldmljZVN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6VG9yY2hNb2RlU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlZlbmRvclRhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpWZW5kb3JUYWdTZWN0aW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OmhlbHBlcjo6Q2FtZXJhTW9kdWxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OmhlbHBlcjo6VmVuZG9yVGFnRGVzY3JpcHRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6cHJvdmlkZXI6OlYyXzQ6OklDYW1lcmFQcm92aWRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6cHJvdmlkZXI6OlYyXzQ6OklDYW1lcmFQcm92aWRlckNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOwordXNpbmcgOjphbmRyb2lkOjpNdXRleDsKKworc3RydWN0IENhbWVyYVByb3ZpZGVyIDogcHVibGljIElDYW1lcmFQcm92aWRlciwgcHVibGljIGNhbWVyYV9tb2R1bGVfY2FsbGJhY2tzX3QgeworICAgIENhbWVyYVByb3ZpZGVyKCk7CisgICAgfkNhbWVyYVByb3ZpZGVyKCk7CisKKyAgICAvLyBDYWxsZXIgbXVzdCB1c2UgdGhpcyBtZXRob2QgdG8gY2hlY2sgaWYgQ2FtZXJhUHJvdmlkZXIgY3RvciBmYWlsZWQKKyAgICBib29sIGlzSW5pdEZhaWxlZCgpIHsgcmV0dXJuIG1Jbml0RmFpbGVkOyB9CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpwcm92aWRlcjo6VjJfNDo6SUNhbWVyYVByb3ZpZGVyIGZvbGxvdy4KKyAgICBSZXR1cm48U3RhdHVzPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjaz4mIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0VmVuZG9yVGFncyhnZXRWZW5kb3JUYWdzX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FtZXJhSWRMaXN0KGdldENhbWVyYUlkTGlzdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKGlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3goCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhRGV2aWNlTmFtZSwKKyAgICAgICAgICAgIGdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhRGV2aWNlTmFtZSwKKyAgICAgICAgICAgIGdldENhbWVyYURldmljZUludGVyZmFjZV9WM194X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBNdXRleCBtQ2JMb2NrOworICAgIHNwPElDYW1lcmFQcm92aWRlckNhbGxiYWNrPiBtQ2FsbGJhY2tzID0gbnVsbHB0cjsKKworICAgIHNwPENhbWVyYU1vZHVsZT4gbU1vZHVsZTsKKworICAgIGludCBtTnVtYmVyT2ZMZWdhY3lDYW1lcmFzOworICAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBjYW1lcmFfZGV2aWNlX3N0YXR1c190PiBtQ2FtZXJhU3RhdHVzTWFwOyAvLyBjYW1lcmEgaWQgLT4gc3RhdHVzCisgICAgc3RkOjptYXA8c3RkOjpzdHJpbmcsIGJvb2w+IG1PcGVuTGVnYWN5U3VwcG9ydGVkOyAvLyBjYW1lcmEgaWQgLT4gb3Blbl9sZWdhY3kgSEFMMS4wIHN1cHBvcnRlZAorICAgIFNvcnRlZFZlY3RvcjxzdGQ6OnN0cmluZz4gbUNhbWVyYUlkczsgLy8gdGhlICIwIi8iMSIgbGVnYWN5IGNhbWVyYSBJZHMKKyAgICAvLyAoY2FtZXJhSWQgc3RyaW5nLCBoaWRsIGRldmljZSBuYW1lKSBwYWlycworICAgIFNvcnRlZFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPj4gbUNhbWVyYURldmljZU5hbWVzOworCisgICAgLy8gTXVzdCBiZSBxdWVyaWVkIGJlZm9yZSB1c2luZyBhbnkgQVBJcy4KKyAgICAvLyBBUElzIHdpbGwgb25seSB3b3JrIHdoZW4gdGhpcyByZXR1cm5zIHRydWUKKyAgICBib29sIG1Jbml0RmFpbGVkOworICAgIGJvb2wgaW5pdGlhbGl6ZSgpOworCisgICAgaGlkbF92ZWM8VmVuZG9yVGFnU2VjdGlvbj4gbVZlbmRvclRhZ1NlY3Rpb25zOworICAgIGJvb2wgc2V0VXBWZW5kb3JUYWdzKCk7CisgICAgaW50IGNoZWNrQ2FtZXJhVmVyc2lvbihpbnQgaWQsIGNhbWVyYV9pbmZvIGluZm8pOworCisgICAgLy8gZXh0cmFjdCBsZWdhY3kgY2FtZXJhIElEL2RldmljZSB2ZXJzaW9uIGZyb20gYSBISURMIGRldmljZSBuYW1lCisgICAgc3RhdGljIHN0ZDo6c3RyaW5nIGdldExlZ2FjeUNhbWVyYUlkKGNvbnN0IGhpZGxfc3RyaW5nJiBkZXZpY2VOYW1lKTsKKyAgICBzdGF0aWMgaW50IGdldENhbWVyYURldmljZVZlcnNpb24oY29uc3QgaGlkbF9zdHJpbmcmIGRldmljZU5hbWUpOworCisgICAgLy8gY3JlYXRlIEhJREwgZGV2aWNlIG5hbWUgZnJvbSBjYW1lcmEgSUQgYW5kIGRldmljZSB2ZXJzaW9uCisgICAgc3RhdGljIHN0ZDo6c3RyaW5nIGdldEhpZGxEZXZpY2VOYW1lKHN0ZDo6c3RyaW5nIGNhbWVyYUlkLCBpbnQgZGV2aWNlVmVyc2lvbik7CisKKyAgICAvLyBjb252ZXJ0IGNvbnZlbnRpb25hbCBIQUwgc3RhdHVzIHRvIEhJREwgU3RhdHVzCisgICAgc3RhdGljIFN0YXR1cyBnZXRIaWRsU3RhdHVzKGludCk7CisKKyAgICAvLyBzdGF0aWMgY2FsbGJhY2sgZm9yd2FyZGluZyBtZXRob2RzCisgICAgc3RhdGljIHZvaWQgc0NhbWVyYURldmljZVN0YXR1c0NoYW5nZSgKKyAgICAgICAgY29uc3Qgc3RydWN0IGNhbWVyYV9tb2R1bGVfY2FsbGJhY2tzKiBjYWxsYmFja3MsCisgICAgICAgIGludCBjYW1lcmFfaWQsCisgICAgICAgIGludCBuZXdfc3RhdHVzKTsKKyAgICBzdGF0aWMgdm9pZCBzVG9yY2hNb2RlU3RhdHVzQ2hhbmdlKAorICAgICAgICBjb25zdCBzdHJ1Y3QgY2FtZXJhX21vZHVsZV9jYWxsYmFja3MqIGNhbGxiYWNrcywKKyAgICAgICAgY29uc3QgY2hhciogY2FtZXJhX2lkLAorICAgICAgICBpbnQgbmV3X3N0YXR1cyk7Cit9OworCitleHRlcm4gIkMiIElDYW1lcmFQcm92aWRlciogSElETF9GRVRDSF9JQ2FtZXJhUHJvdmlkZXIoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzQKK30gIC8vIG5hbWVzcGFjZSBwcm92aWRlcgorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX1BST1ZJREVSX1YyXzRfQ0FNRVJBUFJPVklERVJfSApkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNC1zZXJ2aWNlLnJjIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiZjMwOWIKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40LXNlcnZpY2UucmMKQEAgLTAsMCArMSw3IEBACitzZXJ2aWNlIGNhbWVyYS1wcm92aWRlci0yLTQgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40LXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIGNhbWVyYXNlcnZlcgorICAgIGdyb3VwIGF1ZGlvIGNhbWVyYSBpbnB1dCBkcm1ycGMKKyAgICBpb3ByaW8gcnQgNAorICAgIGNhcGFiaWxpdGllcyBTWVNfTklDRQorICAgIHdyaXRlcGlkIC9kZXYvY3B1c2V0L2NhbWVyYS1kYWVtb24vdGFza3MgL2Rldi9zdHVuZS90b3AtYXBwL3Rhc2tzCmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvc2VydmljZS5jcHAgYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VlYjYzNwotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci8yLjQvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlci5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisjaW5jbHVkZSA8YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpwcm92aWRlcjo6VjJfNDo6SUNhbWVyYVByb3ZpZGVyOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKQoreworICAgIEFMT0dJKCJDYW1lcmEgcHJvdmlkZXIgU2VydmljZSBpcyBzdGFydGluZy4iKTsKKyAgICAvLyBUaGUgY2FtZXJhIEhBTCBtYXkgY29tbXVuaWNhdGUgdG8gb3RoZXIgdmVuZG9yIGNvbXBvbmVudHMgdmlhCisgICAgLy8gL2Rldi92bmRiaW5kZXIKKyAgICBhbmRyb2lkOjpQcm9jZXNzU3RhdGU6OmluaXRXaXRoRHJpdmVyKCIvZGV2L3ZuZGJpbmRlciIpOworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUNhbWVyYVByb3ZpZGVyPigibGVnYWN5LzAiLCAvKm1heFRocmVhZHMqLyA2KTsKK30KZGlmZiAtLWdpdCBhL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTMxMmMxCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDEgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxDYW1lcmFQcm92aWRlclYyXzRUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxDYW1lcmFQcm92aWRlclYyXzRUYXJnZXRUZXN0LmNwcCIsCisgICAgICAgICAgICJDYW1lcmFQYXJhbWV0ZXJzLmNwcCIgXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjAiLAorICAgICAgICAibGliY2FtZXJhX21ldGFkYXRhIiwKKyAgICAgICAgImxpYmJpbmRlciIsCisgICAgICAgICJsaWJndWkiLAorICAgICAgICAibGlidWkiCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiLCAibGliZ3JhbGxvY3VzYWdlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L3Z0cy9mdW5jdGlvbmFsL0NhbWVyYVBhcmFtZXRlcnMuY3BwIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9DYW1lcmFQYXJhbWV0ZXJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2IyNjNiCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9DYW1lcmFQYXJhbWV0ZXJzLmNwcApAQCAtMCwwICsxLDUzNyBAQAorLyoKKyoqCisqKiBDb3B5cmlnaHQgMjAwOCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKworI2RlZmluZSBMT0dfVEFHICJDYW1lcmFQYXJhbXMiCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSAiQ2FtZXJhUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPHN5c3RlbS9ncmFwaGljcy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CisvLyBQYXJhbWV0ZXIga2V5cyB0byBjb21tdW5pY2F0ZSBiZXR3ZWVuIGNhbWVyYSBhcHBsaWNhdGlvbiBhbmQgZHJpdmVyLgorY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfUFJFVklFV19TSVpFW10gPSAicHJldmlldy1zaXplIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9QUkVWSUVXX1NJWkVTW10gPSAicHJldmlldy1zaXplLXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9QUkVWSUVXX0ZPUk1BVFtdID0gInByZXZpZXctZm9ybWF0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZPUk1BVFNbXSA9ICJwcmV2aWV3LWZvcm1hdC12YWx1ZXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfUFJFVklFV19GUkFNRV9SQVRFW10gPSAicHJldmlldy1mcmFtZS1yYXRlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZSQU1FX1JBVEVTW10gPSAicHJldmlldy1mcmFtZS1yYXRlLXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9QUkVWSUVXX0ZQU19SQU5HRVtdID0gInByZXZpZXctZnBzLXJhbmdlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZQU19SQU5HRVtdID0gInByZXZpZXctZnBzLXJhbmdlLXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9QSUNUVVJFX1NJWkVbXSA9ICJwaWN0dXJlLXNpemUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BJQ1RVUkVfU0laRVNbXSA9ICJwaWN0dXJlLXNpemUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1BJQ1RVUkVfRk9STUFUW10gPSAicGljdHVyZS1mb3JtYXQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BJQ1RVUkVfRk9STUFUU1tdID0gInBpY3R1cmUtZm9ybWF0LXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9KUEVHX1RIVU1CTkFJTF9XSURUSFtdID0gImpwZWctdGh1bWJuYWlsLXdpZHRoIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0pQRUdfVEhVTUJOQUlMX0hFSUdIVFtdID0gImpwZWctdGh1bWJuYWlsLWhlaWdodCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfSlBFR19USFVNQk5BSUxfU0laRVNbXSA9ICJqcGVnLXRodW1ibmFpbC1zaXplLXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9KUEVHX1RIVU1CTkFJTF9RVUFMSVRZW10gPSAianBlZy10aHVtYm5haWwtcXVhbGl0eSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9KUEVHX1FVQUxJVFlbXSA9ICJqcGVnLXF1YWxpdHkiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfUk9UQVRJT05bXSA9ICJyb3RhdGlvbiI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9HUFNfTEFUSVRVREVbXSA9ICJncHMtbGF0aXR1ZGUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfR1BTX0xPTkdJVFVERVtdID0gImdwcy1sb25naXR1ZGUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfR1BTX0FMVElUVURFW10gPSAiZ3BzLWFsdGl0dWRlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0dQU19USU1FU1RBTVBbXSA9ICJncHMtdGltZXN0YW1wIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0dQU19QUk9DRVNTSU5HX01FVEhPRFtdID0gImdwcy1wcm9jZXNzaW5nLW1ldGhvZCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9XSElURV9CQUxBTkNFW10gPSAid2hpdGViYWxhbmNlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9XSElURV9CQUxBTkNFW10gPSAid2hpdGViYWxhbmNlLXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9FRkZFQ1RbXSA9ICJlZmZlY3QiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX0VGRkVDVFNbXSA9ICJlZmZlY3QtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0FOVElCQU5ESU5HW10gPSAiYW50aWJhbmRpbmciOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX0FOVElCQU5ESU5HW10gPSAiYW50aWJhbmRpbmctdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NDRU5FX01PREVbXSA9ICJzY2VuZS1tb2RlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9TQ0VORV9NT0RFU1tdID0gInNjZW5lLW1vZGUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0ZMQVNIX01PREVbXSA9ICJmbGFzaC1tb2RlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9GTEFTSF9NT0RFU1tdID0gImZsYXNoLW1vZGUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0ZPQ1VTX01PREVbXSA9ICJmb2N1cy1tb2RlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9GT0NVU19NT0RFU1tdID0gImZvY3VzLW1vZGUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX01BWF9OVU1fRk9DVVNfQVJFQVNbXSA9ICJtYXgtbnVtLWZvY3VzLWFyZWFzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0ZPQ1VTX0FSRUFTW10gPSAiZm9jdXMtYXJlYXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRk9DQUxfTEVOR1RIW10gPSAiZm9jYWwtbGVuZ3RoIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0hPUklaT05UQUxfVklFV19BTkdMRVtdID0gImhvcml6b250YWwtdmlldy1hbmdsZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9WRVJUSUNBTF9WSUVXX0FOR0xFW10gPSAidmVydGljYWwtdmlldy1hbmdsZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9FWFBPU1VSRV9DT01QRU5TQVRJT05bXSA9ICJleHBvc3VyZS1jb21wZW5zYXRpb24iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfTUFYX0VYUE9TVVJFX0NPTVBFTlNBVElPTltdID0gIm1heC1leHBvc3VyZS1jb21wZW5zYXRpb24iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfTUlOX0VYUE9TVVJFX0NPTVBFTlNBVElPTltdID0gIm1pbi1leHBvc3VyZS1jb21wZW5zYXRpb24iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRVhQT1NVUkVfQ09NUEVOU0FUSU9OX1NURVBbXSA9ICJleHBvc3VyZS1jb21wZW5zYXRpb24tc3RlcCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9BVVRPX0VYUE9TVVJFX0xPQ0tbXSA9ICJhdXRvLWV4cG9zdXJlLWxvY2siOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfQVVUT19FWFBPU1VSRV9MT0NLX1NVUFBPUlRFRFtdID0gImF1dG8tZXhwb3N1cmUtbG9jay1zdXBwb3J0ZWQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfQVVUT19XSElURUJBTEFOQ0VfTE9DS1tdID0gImF1dG8td2hpdGViYWxhbmNlLWxvY2siOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfQVVUT19XSElURUJBTEFOQ0VfTE9DS19TVVBQT1JURURbXSA9ICJhdXRvLXdoaXRlYmFsYW5jZS1sb2NrLXN1cHBvcnRlZCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NQVhfTlVNX01FVEVSSU5HX0FSRUFTW10gPSAibWF4LW51bS1tZXRlcmluZy1hcmVhcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NRVRFUklOR19BUkVBU1tdID0gIm1ldGVyaW5nLWFyZWFzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1pPT01bXSA9ICJ6b29tIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX01BWF9aT09NW10gPSAibWF4LXpvb20iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfWk9PTV9SQVRJT1NbXSA9ICJ6b29tLXJhdGlvcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9aT09NX1NVUFBPUlRFRFtdID0gInpvb20tc3VwcG9ydGVkIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NNT09USF9aT09NX1NVUFBPUlRFRFtdID0gInNtb290aC16b29tLXN1cHBvcnRlZCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9GT0NVU19ESVNUQU5DRVNbXSA9ICJmb2N1cy1kaXN0YW5jZXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfVklERU9fRlJBTUVfRk9STUFUW10gPSAidmlkZW8tZnJhbWUtZm9ybWF0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1ZJREVPX1NJWkVbXSA9ICJ2aWRlby1zaXplIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9WSURFT19TSVpFU1tdID0gInZpZGVvLXNpemUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1BSRUZFUlJFRF9QUkVWSUVXX1NJWkVfRk9SX1ZJREVPW10gPSAicHJlZmVycmVkLXByZXZpZXctc2l6ZS1mb3ItdmlkZW8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfTUFYX05VTV9ERVRFQ1RFRF9GQUNFU19IV1tdID0gIm1heC1udW0tZGV0ZWN0ZWQtZmFjZXMtaHciOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfTUFYX05VTV9ERVRFQ1RFRF9GQUNFU19TV1tdID0gIm1heC1udW0tZGV0ZWN0ZWQtZmFjZXMtc3ciOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfUkVDT1JESU5HX0hJTlRbXSA9ICJyZWNvcmRpbmctaGludCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9WSURFT19TTkFQU0hPVF9TVVBQT1JURURbXSA9ICJ2aWRlby1zbmFwc2hvdC1zdXBwb3J0ZWQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfVklERU9fU1RBQklMSVpBVElPTltdID0gInZpZGVvLXN0YWJpbGl6YXRpb24iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfVklERU9fU1RBQklMSVpBVElPTl9TVVBQT1JURURbXSA9ICJ2aWRlby1zdGFiaWxpemF0aW9uLXN1cHBvcnRlZCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9MSUdIVEZYW10gPSAibGlnaHQtZngiOworCitjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlRSVUVbXSA9ICJ0cnVlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RkFMU0VbXSA9ICJmYWxzZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX0RJU1RBTkNFX0lORklOSVRZW10gPSAiSW5maW5pdHkiOworCisvLyBWYWx1ZXMgZm9yIHdoaXRlIGJhbGFuY2Ugc2V0dGluZ3MuCitjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfQVVUT1tdID0gImF1dG8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpXSElURV9CQUxBTkNFX0lOQ0FOREVTQ0VOVFtdID0gImluY2FuZGVzY2VudCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfRkxVT1JFU0NFTlRbXSA9ICJmbHVvcmVzY2VudCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfV0FSTV9GTFVPUkVTQ0VOVFtdID0gIndhcm0tZmx1b3Jlc2NlbnQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpXSElURV9CQUxBTkNFX0RBWUxJR0hUW10gPSAiZGF5bGlnaHQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpXSElURV9CQUxBTkNFX0NMT1VEWV9EQVlMSUdIVFtdID0gImNsb3VkeS1kYXlsaWdodCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfVFdJTElHSFRbXSA9ICJ0d2lsaWdodCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfU0hBREVbXSA9ICJzaGFkZSI7CisKKy8vIFZhbHVlcyBmb3IgZWZmZWN0IHNldHRpbmdzLgorY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpFRkZFQ1RfTk9ORVtdID0gIm5vbmUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpFRkZFQ1RfTU9OT1tdID0gIm1vbm8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpFRkZFQ1RfTkVHQVRJVkVbXSA9ICJuZWdhdGl2ZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkVGRkVDVF9TT0xBUklaRVtdID0gInNvbGFyaXplIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RUZGRUNUX1NFUElBW10gPSAic2VwaWEiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpFRkZFQ1RfUE9TVEVSSVpFW10gPSAicG9zdGVyaXplIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RUZGRUNUX1dISVRFQk9BUkRbXSA9ICJ3aGl0ZWJvYXJkIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RUZGRUNUX0JMQUNLQk9BUkRbXSA9ICJibGFja2JvYXJkIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RUZGRUNUX0FRVUFbXSA9ICJhcXVhIjsKKworLy8gVmFsdWVzIGZvciBhbnRpYmFuZGluZyBzZXR0aW5ncy4KK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6QU5USUJBTkRJTkdfQVVUT1tdID0gImF1dG8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpBTlRJQkFORElOR181MEhaW10gPSAiNTBoeiI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkFOVElCQU5ESU5HXzYwSFpbXSA9ICI2MGh6IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6QU5USUJBTkRJTkdfT0ZGW10gPSAib2ZmIjsKKworLy8gVmFsdWVzIGZvciBmbGFzaCBtb2RlIHNldHRpbmdzLgorY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGTEFTSF9NT0RFX09GRltdID0gIm9mZiI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZMQVNIX01PREVfQVVUT1tdID0gImF1dG8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGTEFTSF9NT0RFX09OW10gPSAib24iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGTEFTSF9NT0RFX1JFRF9FWUVbXSA9ICJyZWQtZXllIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RkxBU0hfTU9ERV9UT1JDSFtdID0gInRvcmNoIjsKKworLy8gVmFsdWVzIGZvciBzY2VuZSBtb2RlIHNldHRpbmdzLgorY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX0FVVE9bXSA9ICJhdXRvIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9BQ1RJT05bXSA9ICJhY3Rpb24iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX1BPUlRSQUlUW10gPSAicG9ydHJhaXQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX0xBTkRTQ0FQRVtdID0gImxhbmRzY2FwZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfTklHSFRbXSA9ICJuaWdodCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfTklHSFRfUE9SVFJBSVRbXSA9ICJuaWdodC1wb3J0cmFpdCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfVEhFQVRSRVtdID0gInRoZWF0cmUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX0JFQUNIW10gPSAiYmVhY2giOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX1NOT1dbXSA9ICJzbm93IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9TVU5TRVRbXSA9ICJzdW5zZXQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX1NURUFEWVBIT1RPW10gPSAic3RlYWR5cGhvdG8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX0ZJUkVXT1JLU1tdID0gImZpcmV3b3JrcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfU1BPUlRTW10gPSAic3BvcnRzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9QQVJUWVtdID0gInBhcnR5IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9DQU5ETEVMSUdIVFtdID0gImNhbmRsZWxpZ2h0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9CQVJDT0RFW10gPSAiYmFyY29kZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfSERSW10gPSAiaGRyIjsKKworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfWVVWNDIyU1BbXSA9ICJ5dXY0MjJzcCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlBJWEVMX0ZPUk1BVF9ZVVY0MjBTUFtdID0gInl1djQyMHNwIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6UElYRUxfRk9STUFUX1lVVjQyMklbXSA9ICJ5dXY0MjJpLXl1eXYiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfWVVWNDIwUFtdICA9ICJ5dXY0MjBwIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6UElYRUxfRk9STUFUX1JHQjU2NVtdID0gInJnYjU2NSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlBJWEVMX0ZPUk1BVF9SR0JBODg4OFtdID0gInJnYmE4ODg4IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6UElYRUxfRk9STUFUX0pQRUdbXSA9ICJqcGVnIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6UElYRUxfRk9STUFUX0JBWUVSX1JHR0JbXSA9ICJiYXllci1yZ2diIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6UElYRUxfRk9STUFUX0FORFJPSURfT1BBUVVFW10gPSAiYW5kcm9pZC1vcGFxdWUiOworCisvLyBWYWx1ZXMgZm9yIGZvY3VzIG1vZGUgc2V0dGluZ3MuCitjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX01PREVfQVVUT1tdID0gImF1dG8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0lORklOSVRZW10gPSAiaW5maW5pdHkiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX01BQ1JPW10gPSAibWFjcm8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0ZJWEVEW10gPSAiZml4ZWQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0VET0ZbXSA9ICJlZG9mIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9DT05USU5VT1VTX1ZJREVPW10gPSAiY29udGludW91cy12aWRlbyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX01PREVfQ09OVElOVU9VU19QSUNUVVJFW10gPSAiY29udGludW91cy1waWN0dXJlIjsKKworLy8gVmFsdWVzIGZvciBsaWdodCBmeCBzZXR0aW5ncworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpMSUdIVEZYX0xPV0xJR0hUW10gPSAibG93LWxpZ2h0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6TElHSFRGWF9IRFJbXSA9ICJoaWdoLWR5bmFtaWMtcmFuZ2UiOworCitDYW1lcmFQYXJhbWV0ZXJzOjpDYW1lcmFQYXJhbWV0ZXJzKCkKKyAgICAgICAgICAgICAgICA6IG1NYXAoKQoreworfQorCitDYW1lcmFQYXJhbWV0ZXJzOjp+Q2FtZXJhUGFyYW1ldGVycygpCit7Cit9CisKK1N0cmluZzggQ2FtZXJhUGFyYW1ldGVyczo6ZmxhdHRlbigpIGNvbnN0Cit7CisgICAgU3RyaW5nOCBmbGF0dGVuZWQoIiIpOworICAgIHNpemVfdCBzaXplID0gbU1hcC5zaXplKCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICBTdHJpbmc4IGssIHY7CisgICAgICAgIGsgPSBtTWFwLmtleUF0KGkpOworICAgICAgICB2ID0gbU1hcC52YWx1ZUF0KGkpOworCisgICAgICAgIGZsYXR0ZW5lZCArPSBrOworICAgICAgICBmbGF0dGVuZWQgKz0gIj0iOworICAgICAgICBmbGF0dGVuZWQgKz0gdjsKKyAgICAgICAgaWYgKGkgIT0gc2l6ZS0xKQorICAgICAgICAgICAgZmxhdHRlbmVkICs9ICI7IjsKKyAgICB9CisKKyAgICByZXR1cm4gZmxhdHRlbmVkOworfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OnVuZmxhdHRlbihjb25zdCBTdHJpbmc4ICZwYXJhbXMpCit7CisgICAgY29uc3QgY2hhciAqYSA9IHBhcmFtcy5zdHJpbmcoKTsKKyAgICBjb25zdCBjaGFyICpiOworCisgICAgbU1hcC5jbGVhcigpOworCisgICAgZm9yICg7OykgeworICAgICAgICAvLyBGaW5kIHRoZSBib3VuZHMgb2YgdGhlIGtleSBuYW1lLgorICAgICAgICBiID0gc3RyY2hyKGEsICc9Jyk7CisgICAgICAgIGlmIChiID09IDApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBDcmVhdGUgdGhlIGtleSBzdHJpbmcuCisgICAgICAgIFN0cmluZzggayhhLCAoc2l6ZV90KShiLWEpKTsKKworICAgICAgICAvLyBGaW5kIHRoZSB2YWx1ZS4KKyAgICAgICAgYSA9IGIrMTsKKyAgICAgICAgYiA9IHN0cmNocihhLCAnOycpOworICAgICAgICBpZiAoYiA9PSAwKSB7CisgICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIHNlbWljb2xvbiwgdGhpcyBpcyB0aGUgbGFzdCBpdGVtLgorICAgICAgICAgICAgU3RyaW5nOCB2KGEpOworICAgICAgICAgICAgbU1hcC5hZGQoaywgdik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZzggdihhLCAoc2l6ZV90KShiLWEpKTsKKyAgICAgICAgbU1hcC5hZGQoaywgdik7CisgICAgICAgIGEgPSBiKzE7CisgICAgfQorfQorCisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6c2V0KGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqdmFsdWUpCit7CisgICAgLy8gaSB0aGluayBpIGNhbiBkbyB0aGlzIHdpdGggc3Ryc3BuKCkKKyAgICBpZiAoc3RyY2hyKGtleSwgJz0nKSB8fCBzdHJjaHIoa2V5LCAnOycpKSB7CisgICAgICAgIC8vIEFMT0dFKCJLZXkgXCIlc1wiY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXIgKD0gb3IgOykiLCBrZXkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHN0cmNocih2YWx1ZSwgJz0nKSB8fCBzdHJjaHIodmFsdWUsICc7JykpIHsKKyAgICAgICAgLy8gQUxPR0UoIlZhbHVlIFwiJXNcImNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVyICg9IG9yIDspIiwgdmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbU1hcC5yZXBsYWNlVmFsdWVGb3IoU3RyaW5nOChrZXkpLCBTdHJpbmc4KHZhbHVlKSk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6c2V0KGNvbnN0IGNoYXIgKmtleSwgaW50IHZhbHVlKQoreworICAgIGNoYXIgc3RyWzE2XTsKKyAgICBzcHJpbnRmKHN0ciwgIiVkIiwgdmFsdWUpOworICAgIHNldChrZXksIHN0cik7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6c2V0RmxvYXQoY29uc3QgY2hhciAqa2V5LCBmbG9hdCB2YWx1ZSkKK3sKKyAgICBjaGFyIHN0clsxNl07ICAvLyAxNCBzaG91bGQgYmUgZW5vdWdoLiBXZSBvdmVyZXN0aW1hdGUgdG8gYmUgc2FmZS4KKyAgICBzbnByaW50ZihzdHIsIHNpemVvZihzdHIpLCAiJWciLCB2YWx1ZSk7CisgICAgc2V0KGtleSwgc3RyKTsKK30KKworY29uc3QgY2hhciAqQ2FtZXJhUGFyYW1ldGVyczo6Z2V0KGNvbnN0IGNoYXIgKmtleSkgY29uc3QKK3sKKyAgICBTdHJpbmc4IHYgPSBtTWFwLnZhbHVlRm9yKFN0cmluZzgoa2V5KSk7CisgICAgaWYgKHYubGVuZ3RoKCkgPT0gMCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHYuc3RyaW5nKCk7Cit9CisKK2ludCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRJbnQoY29uc3QgY2hhciAqa2V5KSBjb25zdAoreworICAgIGNvbnN0IGNoYXIgKnYgPSBnZXQoa2V5KTsKKyAgICBpZiAodiA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgcmV0dXJuIHN0cnRvbCh2LCAwLCAwKTsKK30KKworZmxvYXQgQ2FtZXJhUGFyYW1ldGVyczo6Z2V0RmxvYXQoY29uc3QgY2hhciAqa2V5KSBjb25zdAoreworICAgIGNvbnN0IGNoYXIgKnYgPSBnZXQoa2V5KTsKKyAgICBpZiAodiA9PSAwKSByZXR1cm4gLTE7CisgICAgcmV0dXJuIHN0cnRvZih2LCAwKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpyZW1vdmUoY29uc3QgY2hhciAqa2V5KQoreworICAgIG1NYXAucmVtb3ZlSXRlbShTdHJpbmc4KGtleSkpOworfQorCisvLyBQYXJzZSBzdHJpbmcgbGlrZSAiNjQweDQ4MCIgb3IgIjEwMDAwLDIwMDAwIgorc3RhdGljIGludCBwYXJzZV9wYWlyKGNvbnN0IGNoYXIgKnN0ciwgaW50ICpmaXJzdCwgaW50ICpzZWNvbmQsIGNoYXIgZGVsaW0sCisgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKmVuZHB0ciA9IE5VTEwpCit7CisgICAgLy8gRmluZCB0aGUgZmlyc3QgaW50ZWdlci4KKyAgICBjaGFyICplbmQ7CisgICAgaW50IHcgPSAoaW50KXN0cnRvbChzdHIsICZlbmQsIDEwKTsKKyAgICAvLyBJZiBhIGRlbGltZXRlciBkb2VzIG5vdCBpbW1lZGlhdGVseSBmb2xsb3csIGdpdmUgdXAuCisgICAgaWYgKCplbmQgIT0gZGVsaW0pIHsKKyAgICAgICAgQUxPR0UoIkNhbm5vdCBmaW5kIGRlbGltZXRlciAoJWMpIGluIHN0cj0lcyIsIGRlbGltLCBzdHIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLy8gRmluZCB0aGUgc2Vjb25kIGludGVnZXIsIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBkZWxpbWV0ZXIuCisgICAgaW50IGggPSAoaW50KXN0cnRvbChlbmQrMSwgJmVuZCwgMTApOworCisgICAgKmZpcnN0ID0gdzsKKyAgICAqc2Vjb25kID0gaDsKKworICAgIGlmIChlbmRwdHIpIHsKKyAgICAgICAgKmVuZHB0ciA9IGVuZDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcGFyc2VTaXplc0xpc3QoY29uc3QgY2hhciAqc2l6ZXNTdHIsIFZlY3RvcjxTaXplPiAmc2l6ZXMpCit7CisgICAgaWYgKHNpemVzU3RyID09IDApIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNoYXIgKnNpemVTdGFydFB0ciA9IChjaGFyICopc2l6ZXNTdHI7CisKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBpbnQgd2lkdGgsIGhlaWdodDsKKyAgICAgICAgaW50IHN1Y2Nlc3MgPSBwYXJzZV9wYWlyKHNpemVTdGFydFB0ciwgJndpZHRoLCAmaGVpZ2h0LCAneCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2l6ZVN0YXJ0UHRyKTsKKyAgICAgICAgaWYgKHN1Y2Nlc3MgPT0gLTEgfHwgKCpzaXplU3RhcnRQdHIgIT0gJywnICYmICpzaXplU3RhcnRQdHIgIT0gJ1wwJykpIHsKKyAgICAgICAgICAgIEFMT0dFKCJQaWN0dXJlIHNpemVzIHN0cmluZyBcIiVzXCIgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXIuIiwgc2l6ZXNTdHIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNpemVzLnB1c2goU2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CisKKyAgICAgICAgaWYgKCpzaXplU3RhcnRQdHIgPT0gJ1wwJykgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNpemVTdGFydFB0cisrOworICAgIH0KK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpzZXRQcmV2aWV3U2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgICAgY2hhciBzdHJbMzJdOworICAgIHNwcmludGYoc3RyLCAiJWR4JWQiLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBzZXQoS0VZX1BSRVZJRVdfU0laRSwgc3RyKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRQcmV2aWV3U2l6ZShpbnQgKndpZHRoLCBpbnQgKmhlaWdodCkgY29uc3QKK3sKKyAgICAqd2lkdGggPSAqaGVpZ2h0ID0gLTE7CisgICAgLy8gR2V0IHRoZSBjdXJyZW50IHN0cmluZywgaWYgaXQgZG9lc24ndCBleGlzdCwgbGVhdmUgdGhlIC0xeC0xCisgICAgY29uc3QgY2hhciAqcCA9IGdldChLRVlfUFJFVklFV19TSVpFKTsKKyAgICBpZiAocCA9PSAwKSAgcmV0dXJuOworICAgIHBhcnNlX3BhaXIocCwgd2lkdGgsIGhlaWdodCwgJ3gnKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRQcmVmZXJyZWRQcmV2aWV3U2l6ZUZvclZpZGVvKGludCAqd2lkdGgsIGludCAqaGVpZ2h0KSBjb25zdAoreworICAgICp3aWR0aCA9ICpoZWlnaHQgPSAtMTsKKyAgICBjb25zdCBjaGFyICpwID0gZ2V0KEtFWV9QUkVGRVJSRURfUFJFVklFV19TSVpFX0ZPUl9WSURFTyk7CisgICAgaWYgKHAgPT0gMCkgIHJldHVybjsKKyAgICBwYXJzZV9wYWlyKHAsIHdpZHRoLCBoZWlnaHQsICd4Jyk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6Z2V0U3VwcG9ydGVkUHJldmlld1NpemVzKFZlY3RvcjxTaXplPiAmc2l6ZXMpIGNvbnN0Cit7CisgICAgY29uc3QgY2hhciAqcHJldmlld1NpemVzU3RyID0gZ2V0KEtFWV9TVVBQT1JURURfUFJFVklFV19TSVpFUyk7CisgICAgcGFyc2VTaXplc0xpc3QocHJldmlld1NpemVzU3RyLCBzaXplcyk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6c2V0VmlkZW9TaXplKGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBjaGFyIHN0clszMl07CisgICAgc3ByaW50ZihzdHIsICIlZHglZCIsIHdpZHRoLCBoZWlnaHQpOworICAgIHNldChLRVlfVklERU9fU0laRSwgc3RyKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRWaWRlb1NpemUoaW50ICp3aWR0aCwgaW50ICpoZWlnaHQpIGNvbnN0Cit7CisgICAgKndpZHRoID0gKmhlaWdodCA9IC0xOworICAgIGNvbnN0IGNoYXIgKnAgPSBnZXQoS0VZX1ZJREVPX1NJWkUpOworICAgIGlmIChwID09IDApIHJldHVybjsKKyAgICBwYXJzZV9wYWlyKHAsIHdpZHRoLCBoZWlnaHQsICd4Jyk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6Z2V0U3VwcG9ydGVkVmlkZW9TaXplcyhWZWN0b3I8U2l6ZT4gJnNpemVzKSBjb25zdAoreworICAgIGNvbnN0IGNoYXIgKnZpZGVvU2l6ZXNTdHIgPSBnZXQoS0VZX1NVUFBPUlRFRF9WSURFT19TSVpFUyk7CisgICAgcGFyc2VTaXplc0xpc3QodmlkZW9TaXplc1N0ciwgc2l6ZXMpOworfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OnNldFByZXZpZXdGcmFtZVJhdGUoaW50IGZwcykKK3sKKyAgICBzZXQoS0VZX1BSRVZJRVdfRlJBTUVfUkFURSwgZnBzKTsKK30KKworaW50IENhbWVyYVBhcmFtZXRlcnM6OmdldFByZXZpZXdGcmFtZVJhdGUoKSBjb25zdAoreworICAgIHJldHVybiBnZXRJbnQoS0VZX1BSRVZJRVdfRlJBTUVfUkFURSk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6Z2V0UHJldmlld0Zwc1JhbmdlKGludCAqbWluX2ZwcywgaW50ICptYXhfZnBzKSBjb25zdAoreworICAgICptaW5fZnBzID0gKm1heF9mcHMgPSAtMTsKKyAgICBjb25zdCBjaGFyICpwID0gZ2V0KEtFWV9QUkVWSUVXX0ZQU19SQU5HRSk7CisgICAgaWYgKHAgPT0gMCkgcmV0dXJuOworICAgIHBhcnNlX3BhaXIocCwgbWluX2ZwcywgbWF4X2ZwcywgJywnKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpzZXRQcmV2aWV3Rm9ybWF0KGNvbnN0IGNoYXIgKmZvcm1hdCkKK3sKKyAgICBzZXQoS0VZX1BSRVZJRVdfRk9STUFULCBmb3JtYXQpOworfQorCitjb25zdCBjaGFyICpDYW1lcmFQYXJhbWV0ZXJzOjpnZXRQcmV2aWV3Rm9ybWF0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0KEtFWV9QUkVWSUVXX0ZPUk1BVCk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6c2V0UGljdHVyZVNpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQoreworICAgIGNoYXIgc3RyWzMyXTsKKyAgICBzcHJpbnRmKHN0ciwgIiVkeCVkIiwgd2lkdGgsIGhlaWdodCk7CisgICAgc2V0KEtFWV9QSUNUVVJFX1NJWkUsIHN0cik7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6Z2V0UGljdHVyZVNpemUoaW50ICp3aWR0aCwgaW50ICpoZWlnaHQpIGNvbnN0Cit7CisgICAgKndpZHRoID0gKmhlaWdodCA9IC0xOworICAgIC8vIEdldCB0aGUgY3VycmVudCBzdHJpbmcsIGlmIGl0IGRvZXNuJ3QgZXhpc3QsIGxlYXZlIHRoZSAtMXgtMQorICAgIGNvbnN0IGNoYXIgKnAgPSBnZXQoS0VZX1BJQ1RVUkVfU0laRSk7CisgICAgaWYgKHAgPT0gMCkgcmV0dXJuOworICAgIHBhcnNlX3BhaXIocCwgd2lkdGgsIGhlaWdodCwgJ3gnKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRTdXBwb3J0ZWRQaWN0dXJlU2l6ZXMoVmVjdG9yPFNpemU+ICZzaXplcykgY29uc3QKK3sKKyAgICBjb25zdCBjaGFyICpwaWN0dXJlU2l6ZXNTdHIgPSBnZXQoS0VZX1NVUFBPUlRFRF9QSUNUVVJFX1NJWkVTKTsKKyAgICBwYXJzZVNpemVzTGlzdChwaWN0dXJlU2l6ZXNTdHIsIHNpemVzKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpzZXRQaWN0dXJlRm9ybWF0KGNvbnN0IGNoYXIgKmZvcm1hdCkKK3sKKyAgICBzZXQoS0VZX1BJQ1RVUkVfRk9STUFULCBmb3JtYXQpOworfQorCitjb25zdCBjaGFyICpDYW1lcmFQYXJhbWV0ZXJzOjpnZXRQaWN0dXJlRm9ybWF0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0KEtFWV9QSUNUVVJFX0ZPUk1BVCk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6ZHVtcCgpIGNvbnN0Cit7CisgICAgQUxPR0QoImR1bXA6IG1NYXAuc2l6ZSA9ICV6dSIsIG1NYXAuc2l6ZSgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1NYXAuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgU3RyaW5nOCBrLCB2OworICAgICAgICBrID0gbU1hcC5rZXlBdChpKTsKKyAgICAgICAgdiA9IG1NYXAudmFsdWVBdChpKTsKKyAgICAgICAgQUxPR0QoIiVzOiAlc1xuIiwgay5zdHJpbmcoKSwgdi5zdHJpbmcoKSk7CisgICAgfQorfQorCitzdGF0dXNfdCBDYW1lcmFQYXJhbWV0ZXJzOjpkdW1wKGludCBmZCwgY29uc3QgVmVjdG9yPFN0cmluZzE2PiYgLyphcmdzKi8pIGNvbnN0Cit7CisgICAgY29uc3Qgc2l6ZV90IFNJWkUgPSAyNTY7CisgICAgY2hhciBidWZmZXJbU0laRV07CisgICAgU3RyaW5nOCByZXN1bHQ7CisgICAgc25wcmludGYoYnVmZmVyLCAyNTUsICJDYW1lcmFQYXJhbWV0ZXJzOjpkdW1wOiBtTWFwLnNpemUgPSAlenVcbiIsIG1NYXAuc2l6ZSgpKTsKKyAgICByZXN1bHQuYXBwZW5kKGJ1ZmZlcik7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtTWFwLnNpemUoKTsgaSsrKSB7CisgICAgICAgIFN0cmluZzggaywgdjsKKyAgICAgICAgayA9IG1NYXAua2V5QXQoaSk7CisgICAgICAgIHYgPSBtTWFwLnZhbHVlQXQoaSk7CisgICAgICAgIHNucHJpbnRmKGJ1ZmZlciwgMjU1LCAiXHQlczogJXNcbiIsIGsuc3RyaW5nKCksIHYuc3RyaW5nKCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKGJ1ZmZlcik7CisgICAgfQorICAgIHdyaXRlKGZkLCByZXN1bHQuc3RyaW5nKCksIHJlc3VsdC5zaXplKCkpOworICAgIHJldHVybiBOT19FUlJPUjsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRTdXBwb3J0ZWRQcmV2aWV3Rm9ybWF0cyhWZWN0b3I8aW50PiYgZm9ybWF0cykgY29uc3QgeworICAgIGNvbnN0IGNoYXIqIHN1cHBvcnRlZFByZXZpZXdGb3JtYXRzID0KKyAgICAgICAgICBnZXQoQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZPUk1BVFMpOworCisgICAgaWYgKHN1cHBvcnRlZFByZXZpZXdGb3JtYXRzID09IE5VTEwpIHsKKyAgICAgICAgQUxPR1coIiVzOiBObyBzdXBwb3J0ZWQgcHJldmlldyBmb3JtYXRzLiIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmc4IGZtdFN0cihzdXBwb3J0ZWRQcmV2aWV3Rm9ybWF0cyk7CisgICAgY2hhciogcHJldkZtdHMgPSBmbXRTdHIubG9ja0J1ZmZlcihmbXRTdHIuc2l6ZSgpKTsKKworICAgIGNoYXIqIHNhdmVQdHI7CisgICAgY2hhciogZm10ID0gc3RydG9rX3IocHJldkZtdHMsICIsIiwgJnNhdmVQdHIpOworICAgIHdoaWxlIChmbXQpIHsKKyAgICAgICAgaW50IGFjdHVhbCA9IHByZXZpZXdGb3JtYXRUb0VudW0oZm10KTsKKyAgICAgICAgaWYgKGFjdHVhbCAhPSAtMSkgeworICAgICAgICAgICAgZm9ybWF0cy5hZGQoYWN0dWFsKTsKKyAgICAgICAgfQorICAgICAgICBmbXQgPSBzdHJ0b2tfcihOVUxMLCAiLCIsICZzYXZlUHRyKTsKKyAgICB9CisgICAgZm10U3RyLnVubG9ja0J1ZmZlcihmbXRTdHIuc2l6ZSgpKTsKK30KKworCitpbnQgQ2FtZXJhUGFyYW1ldGVyczo6cHJldmlld0Zvcm1hdFRvRW51bShjb25zdCBjaGFyKiBmb3JtYXQpIHsKKyAgICByZXR1cm4KKyAgICAgICAgIWZvcm1hdCA/CisgICAgICAgICAgICBIQUxfUElYRUxfRk9STUFUX1lDckNiXzQyMF9TUCA6CisgICAgICAgICFzdHJjbXAoZm9ybWF0LCBQSVhFTF9GT1JNQVRfWVVWNDIyU1ApID8KKyAgICAgICAgICAgIEhBTF9QSVhFTF9GT1JNQVRfWUNiQ3JfNDIyX1NQIDogLy8gTlYxNgorICAgICAgICAhc3RyY21wKGZvcm1hdCwgUElYRUxfRk9STUFUX1lVVjQyMFNQKSA/CisgICAgICAgICAgICBIQUxfUElYRUxfRk9STUFUX1lDckNiXzQyMF9TUCA6IC8vIE5WMjEKKyAgICAgICAgIXN0cmNtcChmb3JtYXQsIFBJWEVMX0ZPUk1BVF9ZVVY0MjJJKSA/CisgICAgICAgICAgICBIQUxfUElYRUxfRk9STUFUX1lDYkNyXzQyMl9JIDogIC8vIFlVWTIKKyAgICAgICAgIXN0cmNtcChmb3JtYXQsIFBJWEVMX0ZPUk1BVF9ZVVY0MjBQKSA/CisgICAgICAgICAgICBIQUxfUElYRUxfRk9STUFUX1lWMTIgOiAgICAgICAgIC8vIFlWMTIKKyAgICAgICAgIXN0cmNtcChmb3JtYXQsIFBJWEVMX0ZPUk1BVF9SR0I1NjUpID8KKyAgICAgICAgICAgIEhBTF9QSVhFTF9GT1JNQVRfUkdCXzU2NSA6ICAgICAgLy8gUkdCNTY1CisgICAgICAgICFzdHJjbXAoZm9ybWF0LCBQSVhFTF9GT1JNQVRfUkdCQTg4ODgpID8KKyAgICAgICAgICAgIEhBTF9QSVhFTF9GT1JNQVRfUkdCQV84ODg4IDogICAgLy8gUkdCODg4OAorICAgICAgICAhc3RyY21wKGZvcm1hdCwgUElYRUxfRk9STUFUX0JBWUVSX1JHR0IpID8KKyAgICAgICAgICAgIEhBTF9QSVhFTF9GT1JNQVRfUkFXMTYgOiAgIC8vIFJhdyBzZW5zb3IgZGF0YQorICAgICAgICAtMTsKK30KKworYm9vbCBDYW1lcmFQYXJhbWV0ZXJzOjppc0VtcHR5KCkgY29uc3QgeworICAgIHJldHVybiBtTWFwLmlzRW1wdHkoKTsKK30KKworfTsgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvQ2FtZXJhUGFyYW1ldGVycy5oIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9DYW1lcmFQYXJhbWV0ZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmEzM2ZmZQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvQ2FtZXJhUGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNjk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9QQVJBTUVURVJTX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfUEFSQU1FVEVSU19ICisKKyNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworCitzdHJ1Y3QgU2l6ZSB7CisgICAgaW50IHdpZHRoOworICAgIGludCBoZWlnaHQ7CisKKyAgICBTaXplKCkgeworICAgICAgICB3aWR0aCA9IDA7CisgICAgICAgIGhlaWdodCA9IDA7CisgICAgfQorCisgICAgU2l6ZShpbnQgdywgaW50IGgpIHsKKyAgICAgICAgd2lkdGggPSB3OworICAgICAgICBoZWlnaHQgPSBoOworICAgIH0KK307CisKK2NsYXNzIENhbWVyYVBhcmFtZXRlcnMKK3sKK3B1YmxpYzoKKyAgICBDYW1lcmFQYXJhbWV0ZXJzKCk7CisgICAgQ2FtZXJhUGFyYW1ldGVycyhjb25zdCBTdHJpbmc4ICZwYXJhbXMpIHsgdW5mbGF0dGVuKHBhcmFtcyk7IH0KKyAgICB+Q2FtZXJhUGFyYW1ldGVycygpOworCisgICAgU3RyaW5nOCBmbGF0dGVuKCkgY29uc3Q7CisgICAgdm9pZCB1bmZsYXR0ZW4oY29uc3QgU3RyaW5nOCAmcGFyYW1zKTsKKworICAgIHZvaWQgc2V0KGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqdmFsdWUpOworICAgIHZvaWQgc2V0KGNvbnN0IGNoYXIgKmtleSwgaW50IHZhbHVlKTsKKyAgICB2b2lkIHNldEZsb2F0KGNvbnN0IGNoYXIgKmtleSwgZmxvYXQgdmFsdWUpOworICAgIGNvbnN0IGNoYXIgKmdldChjb25zdCBjaGFyICprZXkpIGNvbnN0OworICAgIGludCBnZXRJbnQoY29uc3QgY2hhciAqa2V5KSBjb25zdDsKKyAgICBmbG9hdCBnZXRGbG9hdChjb25zdCBjaGFyICprZXkpIGNvbnN0OworCisgICAgdm9pZCByZW1vdmUoY29uc3QgY2hhciAqa2V5KTsKKworICAgIHZvaWQgc2V0UHJldmlld1NpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAgICB2b2lkIGdldFByZXZpZXdTaXplKGludCAqd2lkdGgsIGludCAqaGVpZ2h0KSBjb25zdDsKKyAgICB2b2lkIGdldFN1cHBvcnRlZFByZXZpZXdTaXplcyhWZWN0b3I8U2l6ZT4gJnNpemVzKSBjb25zdDsKKworICAgIC8vIFNldCB0aGUgZGltZW5zaW9ucyBpbiBwaXhlbHMgdG8gdGhlIGdpdmVuIHdpZHRoIGFuZCBoZWlnaHQKKyAgICAvLyBmb3IgdmlkZW8gZnJhbWVzLiBUaGUgZ2l2ZW4gd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIG9uZQorICAgIC8vIG9mIHRoZSBzdXBwb3J0ZWQgZGltZW5zaW9ucyByZXR1cm5lZCBmcm9tCisgICAgLy8gZ2V0U3VwcG9ydGVkVmlkZW9TaXplcygpLiBNdXN0IG5vdCBiZSBjYWxsZWQgaWYKKyAgICAvLyBnZXRTdXBwb3J0ZWRWaWRlb1NpemVzKCkgcmV0dXJucyBhbiBlbXB0eSBWZWN0b3Igb2YgU2l6ZS4KKyAgICB2b2lkIHNldFZpZGVvU2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpOworICAgIC8vIFJldHJpZXZlIHRoZSBjdXJyZW50IGRpbWVuc2lvbnMgKHdpZHRoIGFuZCBoZWlnaHQpCisgICAgLy8gaW4gcGl4ZWxzIGZvciB2aWRlbyBmcmFtZXMsIHdoaWNoIG11c3QgYmUgb25lIG9mIHRoZQorICAgIC8vIHN1cHBvcnRlZCBkaW1lbnNpb25zIHJldHVybmVkIGZyb20gZ2V0U3VwcG9ydGVkVmlkZW9TaXplcygpLgorICAgIC8vIE11c3Qgbm90IGJlIGNhbGxlZCBpZiBnZXRTdXBwb3J0ZWRWaWRlb1NpemVzKCkgcmV0dXJucyBhbgorICAgIC8vIGVtcHR5IFZlY3RvciBvZiBTaXplLgorICAgIHZvaWQgZ2V0VmlkZW9TaXplKGludCAqd2lkdGgsIGludCAqaGVpZ2h0KSBjb25zdDsKKyAgICAvLyBSZXRyaWV2ZSBhIFZlY3RvciBvZiBzdXBwb3J0ZWQgZGltZW5zaW9ucyAod2lkdGggYW5kIGhlaWdodCkKKyAgICAvLyBpbiBwaXhlbHMgZm9yIHZpZGVvIGZyYW1lcy4gSWYgc2l6ZXMgcmV0dXJuZWQgZnJvbSB0aGUgbWV0aG9kCisgICAgLy8gaXMgZW1wdHksIHRoZSBjYW1lcmEgZG9lcyBub3Qgc3VwcG9ydCBjYWxscyB0byBzZXRWaWRlb1NpemUoKQorICAgIC8vIG9yIGdldFZpZGVvU2l6ZSgpLiBJbiBhZGRkaXRpb24sIGl0IGFsc28gaW5kaWNhdGVzIHRoYXQKKyAgICAvLyB0aGUgY2FtZXJhIG9ubHkgaGFzIGEgc2luZ2xlIG91dHB1dCwgYW5kIGRvZXMgbm90IGhhdmUKKyAgICAvLyBzZXBhcmF0ZSBvdXRwdXQgZm9yIHZpZGVvIGZyYW1lcyBhbmQgcHJldmlldyBmcmFtZS4KKyAgICB2b2lkIGdldFN1cHBvcnRlZFZpZGVvU2l6ZXMoVmVjdG9yPFNpemU+ICZzaXplcykgY29uc3Q7CisgICAgLy8gUmV0cmlldmUgdGhlIHByZWZlcnJlZCBwcmV2aWV3IHNpemUgKHdpZHRoIGFuZCBoZWlnaHQpIGluIHBpeGVscworICAgIC8vIGZvciB2aWRlbyByZWNvcmRpbmcuIFRoZSBnaXZlbiB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgb25lIG9mCisgICAgLy8gc3VwcG9ydGVkIHByZXZpZXcgc2l6ZXMgcmV0dXJuZWQgZnJvbSBnZXRTdXBwb3J0ZWRQcmV2aWV3U2l6ZXMoKS4KKyAgICAvLyBNdXN0IG5vdCBiZSBjYWxsZWQgaWYgZ2V0U3VwcG9ydGVkVmlkZW9TaXplcygpIHJldHVybnMgYW4gZW1wdHkKKyAgICAvLyBWZWN0b3Igb2YgU2l6ZS4gSWYgZ2V0U3VwcG9ydGVkVmlkZW9TaXplcygpIHJldHVybnMgYW4gZW1wdHkKKyAgICAvLyBWZWN0b3Igb2YgU2l6ZSwgdGhlIHdpZHRoIGFuZCBoZWlnaHQgcmV0dXJuZWQgZnJvbSB0aGlzIG1ldGhvZAorICAgIC8vIGlzIGludmFsaWQsIGFuZCBpcyAiLTF4LTEiLgorICAgIHZvaWQgZ2V0UHJlZmVycmVkUHJldmlld1NpemVGb3JWaWRlbyhpbnQgKndpZHRoLCBpbnQgKmhlaWdodCkgY29uc3Q7CisKKyAgICB2b2lkIHNldFByZXZpZXdGcmFtZVJhdGUoaW50IGZwcyk7CisgICAgaW50IGdldFByZXZpZXdGcmFtZVJhdGUoKSBjb25zdDsKKyAgICB2b2lkIGdldFByZXZpZXdGcHNSYW5nZShpbnQgKm1pbl9mcHMsIGludCAqbWF4X2ZwcykgY29uc3Q7CisgICAgdm9pZCBzZXRQcmV2aWV3Rm9ybWF0KGNvbnN0IGNoYXIgKmZvcm1hdCk7CisgICAgY29uc3QgY2hhciAqZ2V0UHJldmlld0Zvcm1hdCgpIGNvbnN0OworICAgIHZvaWQgc2V0UGljdHVyZVNpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAgICB2b2lkIGdldFBpY3R1cmVTaXplKGludCAqd2lkdGgsIGludCAqaGVpZ2h0KSBjb25zdDsKKyAgICB2b2lkIGdldFN1cHBvcnRlZFBpY3R1cmVTaXplcyhWZWN0b3I8U2l6ZT4gJnNpemVzKSBjb25zdDsKKyAgICB2b2lkIHNldFBpY3R1cmVGb3JtYXQoY29uc3QgY2hhciAqZm9ybWF0KTsKKyAgICBjb25zdCBjaGFyICpnZXRQaWN0dXJlRm9ybWF0KCkgY29uc3Q7CisKKyAgICB2b2lkIGR1bXAoKSBjb25zdDsKKyAgICBzdGF0dXNfdCBkdW1wKGludCBmZCwgY29uc3QgVmVjdG9yPFN0cmluZzE2PiYgYXJncykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgVmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1cHBvcnRlZCBwcmV2aWV3IGZvcm1hdHMKKyAgICAgKiBhcyBlbnVtcyBnaXZlbiBpbiBncmFwaGljcy5oLgorICAgICAqLworICAgIHZvaWQgZ2V0U3VwcG9ydGVkUHJldmlld0Zvcm1hdHMoVmVjdG9yPGludD4mIGZvcm1hdHMpIGNvbnN0OworCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIG5vIGtleXMgYXJlIHByZXNlbnQKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKKworICAgIC8vIFBhcmFtZXRlciBrZXlzIHRvIGNvbW11bmljYXRlIGJldHdlZW4gY2FtZXJhIGFwcGxpY2F0aW9uIGFuZCBkcml2ZXIuCisgICAgLy8gVGhlIGFjY2VzcyAocmVhZC93cml0ZSwgcmVhZCBvbmx5LCBvciB3cml0ZSBvbmx5KSBpcyB2aWV3ZWQgZnJvbSB0aGUKKyAgICAvLyBwZXJzcGVjdGl2ZSBvZiBhcHBsaWNhdGlvbnMsIG5vdCBkcml2ZXIuCisKKyAgICAvLyBQcmV2aWV3IGZyYW1lIHNpemUgaW4gcGl4ZWxzICh3aWR0aCB4IGhlaWdodCkuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjQ4MHgzMjAiLiBSZWFkL1dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9QUkVWSUVXX1NJWkVbXTsKKyAgICAvLyBTdXBwb3J0ZWQgcHJldmlldyBmcmFtZSBzaXplcyBpbiBwaXhlbHMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjgwMHg2MDAsNDgweDMyMCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX1BSRVZJRVdfU0laRVNbXTsKKyAgICAvLyBUaGUgY3VycmVudCBtaW5pbXVtIGFuZCBtYXhpbXVtIHByZXZpZXcgZnBzLiBUaGlzIGNvbnRyb2xzIHRoZSByYXRlIG9mCisgICAgLy8gcHJldmlldyBmcmFtZXMgcmVjZWl2ZWQgKENBTUVSQV9NU0dfUFJFVklFV19GUkFNRSkuIFRoZSBtaW5pbXVtIGFuZAorICAgIC8vIG1heGltdW0gZnBzIG11c3QgYmUgb25lIG9mIHRoZSBlbGVtZW50cyBmcm9tCisgICAgLy8gS0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZQU19SQU5HRSBwYXJhbWV0ZXIuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjEwNTAwLDI2NjIzIgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9QUkVWSUVXX0ZQU19SQU5HRVtdOworICAgIC8vIFRoZSBzdXBwb3J0ZWQgcHJldmlldyBmcHMgKGZyYW1lLXBlci1zZWNvbmQpIHJhbmdlcy4gRWFjaCByYW5nZSBjb250YWlucworICAgIC8vIGEgbWluaW11bSBmcHMgYW5kIG1heGltdW0gZnBzLiBJZiBtaW5pbXVtIGZwcyBlcXVhbHMgdG8gbWF4aW11bSBmcHMsIHRoZQorICAgIC8vIGNhbWVyYSBvdXRwdXRzIGZyYW1lcyBpbiBmaXhlZCBmcmFtZSByYXRlLiBJZiBub3QsIHRoZSBjYW1lcmEgb3V0cHV0cworICAgIC8vIGZyYW1lcyBpbiBhdXRvIGZyYW1lIHJhdGUuIFRoZSBhY3R1YWwgZnJhbWUgcmF0ZSBmbHVjdHVhdGVzIGJldHdlZW4gdGhlCisgICAgLy8gbWluaW11bSBhbmQgdGhlIG1heGltdW0uIFRoZSBsaXN0IGhhcyBhdCBsZWFzdCBvbmUgZWxlbWVudC4gVGhlIGxpc3QgaXMKKyAgICAvLyBzb3J0ZWQgZnJvbSBzbWFsbCB0byBsYXJnZSAoZmlyc3QgYnkgbWF4aW11bSBmcHMgYW5kIHRoZW4gbWluaW11bSBmcHMpLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIoMTA1MDAsMjY2MjMpLCgxNTAwMCwyNjYyMyksKDMwMDAwLDMwMDAwKSIKKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX1BSRVZJRVdfRlBTX1JBTkdFW107CisgICAgLy8gVGhlIGltYWdlIGZvcm1hdCBmb3IgcHJldmlldyBmcmFtZXMuIFNlZSBDQU1FUkFfTVNHX1BSRVZJRVdfRlJBTUUgaW4KKyAgICAvLyBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvY2FtZXJhL0NhbWVyYS5oLiBUaGUgZGVmYXVsdCBpcworICAgIC8vIFBJWEVMX0ZPUk1BVF9ZVVY0MjBTUC4gRXhhbXBsZSB2YWx1ZTogInl1djQyMHNwIiBvciBQSVhFTF9GT1JNQVRfWFhYCisgICAgLy8gY29uc3RhbnRzLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9QUkVWSUVXX0ZPUk1BVFtdOworICAgIC8vIFN1cHBvcnRlZCBpbWFnZSBmb3JtYXRzIGZvciBwcmV2aWV3IGZyYW1lcy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAieXV2NDIwc3AseXV2NDIyaS15dXl2Ii4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TVVBQT1JURURfUFJFVklFV19GT1JNQVRTW107CisgICAgLy8gTnVtYmVyIG9mIHByZXZpZXcgZnJhbWVzIHBlciBzZWNvbmQuIFRoaXMgaXMgdGhlIHRhcmdldCBmcmFtZSByYXRlLiBUaGUKKyAgICAvLyBhY3R1YWwgZnJhbWUgcmF0ZSBkZXBlbmRzIG9uIHRoZSBkcml2ZXIuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjE1Ii4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfUFJFVklFV19GUkFNRV9SQVRFW107CisgICAgLy8gU3VwcG9ydGVkIG51bWJlciBvZiBwcmV2aWV3IGZyYW1lcyBwZXIgc2Vjb25kLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIyNCwxNSwxMCIuIFJlYWQuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZSQU1FX1JBVEVTW107CisgICAgLy8gVGhlIGRpbWVuc2lvbnMgZm9yIGNhcHR1cmVkIHBpY3R1cmVzIGluIHBpeGVscyAod2lkdGggeCBoZWlnaHQpLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIxMDI0eDc2OCIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1BJQ1RVUkVfU0laRVtdOworICAgIC8vIFN1cHBvcnRlZCBkaW1lbnNpb25zIGZvciBjYXB0dXJlZCBwaWN0dXJlcyBpbiBwaXhlbHMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjIwNDh4MTUzNiwxMDI0eDc2OCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX1BJQ1RVUkVfU0laRVNbXTsKKyAgICAvLyBUaGUgaW1hZ2UgZm9ybWF0IGZvciBjYXB0dXJlZCBwaWN0dXJlcy4gU2VlIENBTUVSQV9NU0dfQ09NUFJFU1NFRF9JTUFHRQorICAgIC8vIGluIGZyYW1ld29ya3MvYmFzZS9pbmNsdWRlL2NhbWVyYS9DYW1lcmEuaC4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAianBlZyIgb3IgUElYRUxfRk9STUFUX1hYWCBjb25zdGFudHMuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1BJQ1RVUkVfRk9STUFUW107CisgICAgLy8gU3VwcG9ydGVkIGltYWdlIGZvcm1hdHMgZm9yIGNhcHR1cmVkIHBpY3R1cmVzLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJqcGVnLHJnYjU2NSIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX1BJQ1RVUkVfRk9STUFUU1tdOworICAgIC8vIFRoZSB3aWR0aCAoaW4gcGl4ZWxzKSBvZiBFWElGIHRodW1ibmFpbCBpbiBKcGVnIHBpY3R1cmUuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjUxMiIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0pQRUdfVEhVTUJOQUlMX1dJRFRIW107CisgICAgLy8gVGhlIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBFWElGIHRodW1ibmFpbCBpbiBKcGVnIHBpY3R1cmUuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjM4NCIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0pQRUdfVEhVTUJOQUlMX0hFSUdIVFtdOworICAgIC8vIFN1cHBvcnRlZCBFWElGIHRodW1ibmFpbCBzaXplcyAod2lkdGggeCBoZWlnaHQpLiAweDAgbWVhbnMgbm90IHRodW1ibmFpbAorICAgIC8vIGluIEVYSUYuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjUxMngzODQsMzIweDI0MCwweDAiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NVUFBPUlRFRF9KUEVHX1RIVU1CTkFJTF9TSVpFU1tdOworICAgIC8vIFRoZSBxdWFsaXR5IG9mIHRoZSBFWElGIHRodW1ibmFpbCBpbiBKcGVnIHBpY3R1cmUuIFRoZSByYW5nZSBpcyAxIHRvIDEwMCwKKyAgICAvLyB3aXRoIDEwMCBiZWluZyB0aGUgYmVzdC4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiOTAiLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9KUEVHX1RIVU1CTkFJTF9RVUFMSVRZW107CisgICAgLy8gSnBlZyBxdWFsaXR5IG9mIGNhcHR1cmVkIHBpY3R1cmUuIFRoZSByYW5nZSBpcyAxIHRvIDEwMCwgd2l0aCAxMDAgYmVpbmcKKyAgICAvLyB0aGUgYmVzdC4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiOTAiLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9KUEVHX1FVQUxJVFlbXTsKKyAgICAvLyBUaGUgcm90YXRpb24gYW5nbGUgaW4gZGVncmVlcyByZWxhdGl2ZSB0byB0aGUgb3JpZW50YXRpb24gb2YgdGhlIGNhbWVyYS4KKyAgICAvLyBUaGlzIGFmZmVjdHMgdGhlIHBpY3R1cmVzIHJldHVybmVkIGZyb20gQ0FNRVJBX01TR19DT01QUkVTU0VEX0lNQUdFLiBUaGUKKyAgICAvLyBjYW1lcmEgZHJpdmVyIG1heSBzZXQgb3JpZW50YXRpb24gaW4gdGhlIEVYSUYgaGVhZGVyIHdpdGhvdXQgcm90YXRpbmcgdGhlCisgICAgLy8gcGljdHVyZS4gT3IgdGhlIGRyaXZlciBtYXkgcm90YXRlIHRoZSBwaWN0dXJlIGFuZCB0aGUgRVhJRiB0aHVtYm5haWwuIElmCisgICAgLy8gdGhlIEpwZWcgcGljdHVyZSBpcyByb3RhdGVkLCB0aGUgb3JpZW50YXRpb24gaW4gdGhlIEVYSUYgaGVhZGVyIHdpbGwgYmUKKyAgICAvLyBtaXNzaW5nIG9yIDEgKHJvdyAjMCBpcyB0b3AgYW5kIGNvbHVtbiAjMCBpcyBsZWZ0IHNpZGUpLgorICAgIC8vCisgICAgLy8gTm90ZSB0aGF0IHRoZSBKUEVHIHBpY3R1cmVzIG9mIGZyb250LWZhY2luZyBjYW1lcmFzIGFyZSBub3QgbWlycm9yZWQKKyAgICAvLyBhcyBpbiBwcmV2aWV3IGRpc3BsYXkuCisgICAgLy8KKyAgICAvLyBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0aGUgbmF0dXJhbCBvcmllbnRhdGlvbiBvZiB0aGUgZGV2aWNlIGlzIHBvcnRyYWl0LgorICAgIC8vIFRoZSBkZXZpY2UgaXMgcm90YXRlZCAyNzAgZGVncmVlcyBjbG9ja3dpc2UsIHNvIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24gaXMKKyAgICAvLyAyNzAuIFN1cHBvc2UgYSBiYWNrLWZhY2luZyBjYW1lcmEgc2Vuc29yIGlzIG1vdW50ZWQgaW4gbGFuZHNjYXBlIGFuZCB0aGUKKyAgICAvLyB0b3Agc2lkZSBvZiB0aGUgY2FtZXJhIHNlbnNvciBpcyBhbGlnbmVkIHdpdGggdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhlCisgICAgLy8gZGlzcGxheSBpbiBuYXR1cmFsIG9yaWVudGF0aW9uLiBTbyB0aGUgY2FtZXJhIG9yaWVudGF0aW9uIGlzIDkwLiBUaGUKKyAgICAvLyByb3RhdGlvbiBzaG91bGQgYmUgc2V0IHRvIDAgKDI3MCArIDkwKS4KKyAgICAvLworICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIwIiBvciAiOTAiIG9yICIxODAiIG9yICIyNzAiLiBXcml0ZSBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9ST1RBVElPTltdOworICAgIC8vIEdQUyBsYXRpdHVkZSBjb29yZGluYXRlLiBHUFNMYXRpdHVkZSBhbmQgR1BTTGF0aXR1ZGVSZWYgd2lsbCBiZSBzdG9yZWQgaW4KKyAgICAvLyBKUEVHIEVYSUYgaGVhZGVyLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIyNS4wMzIxNDYiIG9yICItMzMuNDYyODA5Ii4gV3JpdGUgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfR1BTX0xBVElUVURFW107CisgICAgLy8gR1BTIGxvbmdpdHVkZSBjb29yZGluYXRlLiBHUFNMb25naXR1ZGUgYW5kIEdQU0xvbmdpdHVkZVJlZiB3aWxsIGJlIHN0b3JlZAorICAgIC8vIGluIEpQRUcgRVhJRiBoZWFkZXIuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjEyMS41NjQ0NDgiIG9yICItNzAuNjYwMjg2Ii4gV3JpdGUgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfR1BTX0xPTkdJVFVERVtdOworICAgIC8vIEdQUyBhbHRpdHVkZS4gR1BTQWx0aXR1ZGUgYW5kIEdQU0FsdGl0dWRlUmVmIHdpbGwgYmUgc3RvcmVkIGluIEpQRUcgRVhJRgorICAgIC8vIGhlYWRlci4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMjEuMCIgb3IgIi01Ii4gV3JpdGUgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfR1BTX0FMVElUVURFW107CisgICAgLy8gR1BTIHRpbWVzdGFtcCAoVVRDIGluIHNlY29uZHMgc2luY2UgSmFudWFyeSAxLCAxOTcwKS4gVGhpcyBzaG91bGQgYmUKKyAgICAvLyBzdG9yZWQgaW4gSlBFRyBFWElGIGhlYWRlci4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMTI1MTE5Mjc1NyIuIFdyaXRlIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0dQU19USU1FU1RBTVBbXTsKKyAgICAvLyBHUFMgUHJvY2Vzc2luZyBNZXRob2QKKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiR1BTIiBvciAiTkVUV09SSyIuIFdyaXRlIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0dQU19QUk9DRVNTSU5HX01FVEhPRFtdOworICAgIC8vIEN1cnJlbnQgd2hpdGUgYmFsYW5jZSBzZXR0aW5nLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJhdXRvIiBvciBXSElURV9CQUxBTkNFX1hYWCBjb25zdGFudHMuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1dISVRFX0JBTEFOQ0VbXTsKKyAgICAvLyBTdXBwb3J0ZWQgd2hpdGUgYmFsYW5jZSBzZXR0aW5ncy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiYXV0byxpbmNhbmRlc2NlbnQsZGF5bGlnaHQiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NVUFBPUlRFRF9XSElURV9CQUxBTkNFW107CisgICAgLy8gQ3VycmVudCBjb2xvciBlZmZlY3Qgc2V0dGluZy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAibm9uZSIgb3IgRUZGRUNUX1hYWCBjb25zdGFudHMuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0VGRkVDVFtdOworICAgIC8vIFN1cHBvcnRlZCBjb2xvciBlZmZlY3Qgc2V0dGluZ3MuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIm5vbmUsbW9ubyxzZXBpYSIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX0VGRkVDVFNbXTsKKyAgICAvLyBDdXJyZW50IGFudGliYW5kaW5nIHNldHRpbmcuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogImF1dG8iIG9yIEFOVElCQU5ESU5HX1hYWCBjb25zdGFudHMuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0FOVElCQU5ESU5HW107CisgICAgLy8gU3VwcG9ydGVkIGFudGliYW5kaW5nIHNldHRpbmdzLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJhdXRvLDUwaHosNjBoeixvZmYiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NVUFBPUlRFRF9BTlRJQkFORElOR1tdOworICAgIC8vIEN1cnJlbnQgc2NlbmUgbW9kZS4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiYXV0byIgb3IgU0NFTkVfTU9ERV9YWFggY29uc3RhbnRzLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TQ0VORV9NT0RFW107CisgICAgLy8gU3VwcG9ydGVkIHNjZW5lIG1vZGUgc2V0dGluZ3MuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogImF1dG8sbmlnaHQsZmlyZXdvcmtzIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TVVBQT1JURURfU0NFTkVfTU9ERVNbXTsKKyAgICAvLyBDdXJyZW50IGZsYXNoIG1vZGUuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogImF1dG8iIG9yIEZMQVNIX01PREVfWFhYIGNvbnN0YW50cy4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfRkxBU0hfTU9ERVtdOworICAgIC8vIFN1cHBvcnRlZCBmbGFzaCBtb2Rlcy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiYXV0byxvbixvZmYiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NVUFBPUlRFRF9GTEFTSF9NT0RFU1tdOworICAgIC8vIEN1cnJlbnQgZm9jdXMgbW9kZS4gVGhpcyB3aWxsIG5vdCBiZSBlbXB0eS4gQXBwbGljYXRpb25zIHNob3VsZCBjYWxsCisgICAgLy8gQ2FtZXJhSGFyZHdhcmVJbnRlcmZhY2UuYXV0b0ZvY3VzIHRvIHN0YXJ0IHRoZSBmb2N1cyBpZiBmb2N1cyBtb2RlIGlzCisgICAgLy8gRk9DVVNfTU9ERV9BVVRPIG9yIEZPQ1VTX01PREVfTUFDUk8uCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogImF1dG8iIG9yIEZPQ1VTX01PREVfWFhYIGNvbnN0YW50cy4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfRk9DVVNfTU9ERVtdOworICAgIC8vIFN1cHBvcnRlZCBmb2N1cyBtb2Rlcy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiYXV0byxtYWNybyxmaXhlZCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX0ZPQ1VTX01PREVTW107CisgICAgLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIGZvY3VzIGFyZWFzIHN1cHBvcnRlZC4gVGhpcyBpcyB0aGUgbWF4aW11bSBsZW5ndGgKKyAgICAvLyBvZiBLRVlfRk9DVVNfQVJFQVMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjAiIG9yICIyIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9NQVhfTlVNX0ZPQ1VTX0FSRUFTW107CisgICAgLy8gQ3VycmVudCBmb2N1cyBhcmVhcy4KKyAgICAvLworICAgIC8vIEJlZm9yZSBhY2Nlc3NpbmcgdGhpcyBwYXJhbWV0ZXIsIGFwcHMgc2hvdWxkIGNoZWNrCisgICAgLy8gS0VZX01BWF9OVU1fRk9DVVNfQVJFQVMgZmlyc3QgdG8ga25vdyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZm9jdXMgYXJlYXMKKyAgICAvLyBmaXJzdC4gSWYgdGhlIHZhbHVlIGlzIDAsIGZvY3VzIGFyZWEgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAvLworICAgIC8vIEVhY2ggZm9jdXMgYXJlYSBpcyBhIGZpdmUtZWxlbWVudCBpbnQgYXJyYXkuIFRoZSBmaXJzdCBmb3VyIGVsZW1lbnRzIGFyZQorICAgIC8vIHRoZSByZWN0YW5nbGUgb2YgdGhlIGFyZWEgKGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSkuIFRoZSBkaXJlY3Rpb24gaXMKKyAgICAvLyByZWxhdGl2ZSB0byB0aGUgc2Vuc29yIG9yaWVudGF0aW9uLCB0aGF0IGlzLCB3aGF0IHRoZSBzZW5zb3Igc2Vlcy4gVGhlCisgICAgLy8gZGlyZWN0aW9uIGlzIG5vdCBhZmZlY3RlZCBieSB0aGUgcm90YXRpb24gb3IgbWlycm9yaW5nIG9mCisgICAgLy8gQ0FNRVJBX0NNRF9TRVRfRElTUExBWV9PUklFTlRBVElPTi4gQ29vcmRpbmF0ZXMgcmFuZ2UgZnJvbSAtMTAwMCB0byAxMDAwLgorICAgIC8vICgtMTAwMCwtMTAwMCkgaXMgdGhlIHVwcGVyIGxlZnQgcG9pbnQuICgxMDAwLCAxMDAwKSBpcyB0aGUgbG93ZXIgcmlnaHQKKyAgICAvLyBwb2ludC4gVGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgZm9jdXMgYXJlYXMgY2Fubm90IGJlIDAgb3IgbmVnYXRpdmUuCisgICAgLy8KKyAgICAvLyBUaGUgZmlmdGggZWxlbWVudCBpcyB0aGUgd2VpZ2h0LiBWYWx1ZXMgZm9yIHdlaWdodCBtdXN0IHJhbmdlIGZyb20gMSB0bworICAgIC8vIDEwMDAuICBUaGUgd2VpZ2h0IHNob3VsZCBiZSBpbnRlcnByZXRlZCBhcyBhIHBlci1waXhlbCB3ZWlnaHQgLSBhbGwKKyAgICAvLyBwaXhlbHMgaW4gdGhlIGFyZWEgaGF2ZSB0aGUgc3BlY2lmaWVkIHdlaWdodC4gVGhpcyBtZWFucyBhIHNtYWxsIGFyZWEKKyAgICAvLyB3aXRoIHRoZSBzYW1lIHdlaWdodCBhcyBhIGxhcmdlciBhcmVhIHdpbGwgaGF2ZSBsZXNzIGluZmx1ZW5jZSBvbiB0aGUKKyAgICAvLyBmb2N1c2luZyB0aGFuIHRoZSBsYXJnZXIgYXJlYS4gRm9jdXMgYXJlYXMgY2FuIHBhcnRpYWxseSBvdmVybGFwIGFuZCB0aGUKKyAgICAvLyBkcml2ZXIgd2lsbCBhZGQgdGhlIHdlaWdodHMgaW4gdGhlIG92ZXJsYXAgcmVnaW9uLgorICAgIC8vCisgICAgLy8gQSBzcGVjaWFsIGNhc2Ugb2Ygc2luZ2xlIGZvY3VzIGFyZWEgKDAsMCwwLDAsMCkgbWVhbnMgZHJpdmVyIHRvIGRlY2lkZQorICAgIC8vIHRoZSBmb2N1cyBhcmVhLiBGb3IgZXhhbXBsZSwgdGhlIGRyaXZlciBtYXkgdXNlIG1vcmUgc2lnbmFscyB0byBkZWNpZGUKKyAgICAvLyBmb2N1cyBhcmVhcyBhbmQgY2hhbmdlIHRoZW0gZHluYW1pY2FsbHkuIEFwcHMgY2FuIHNldCAoMCwwLDAsMCwwKSBpZiB0aGV5CisgICAgLy8gd2FudCB0aGUgZHJpdmVyIHRvIGRlY2lkZSBmb2N1cyBhcmVhcy4KKyAgICAvLworICAgIC8vIEZvY3VzIGFyZWFzIGFyZSByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBmaWVsZCBvZiB2aWV3IChLRVlfWk9PTSkuIE5vCisgICAgLy8gbWF0dGVyIHdoYXQgdGhlIHpvb20gbGV2ZWwgaXMsICgtMTAwMCwtMTAwMCkgcmVwcmVzZW50cyB0aGUgdG9wIG9mIHRoZQorICAgIC8vIGN1cnJlbnRseSB2aXNpYmxlIGNhbWVyYSBmcmFtZS4gVGhlIGZvY3VzIGFyZWEgY2Fubm90IGJlIHNldCB0byBiZQorICAgIC8vIG91dHNpZGUgdGhlIGN1cnJlbnQgZmllbGQgb2YgdmlldywgZXZlbiB3aGVuIHVzaW5nIHpvb20uCisgICAgLy8KKyAgICAvLyBGb2N1cyBhcmVhIG9ubHkgaGFzIGVmZmVjdCBpZiB0aGUgY3VycmVudCBmb2N1cyBtb2RlIGlzIEZPQ1VTX01PREVfQVVUTywKKyAgICAvLyBGT0NVU19NT0RFX01BQ1JPLCBGT0NVU19NT0RFX0NPTlRJTlVPVVNfVklERU8sIG9yCisgICAgLy8gRk9DVVNfTU9ERV9DT05USU5VT1VTX1BJQ1RVUkUuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIigtMTAsLTEwLDAsMCwzMDApLCgwLDAsMTAsMTAsNzAwKSIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0ZPQ1VTX0FSRUFTW107CisgICAgLy8gRm9jYWwgbGVuZ3RoIGluIG1pbGxpbWV0ZXIuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjQuMzEiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0ZPQ0FMX0xFTkdUSFtdOworICAgIC8vIEhvcml6b250YWwgYW5nbGUgb2YgdmlldyBpbiBkZWdyZWVzLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICI1NC44Ii4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9IT1JJWk9OVEFMX1ZJRVdfQU5HTEVbXTsKKyAgICAvLyBWZXJ0aWNhbCBhbmdsZSBvZiB2aWV3IGluIGRlZ3JlZXMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjQyLjUiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1ZFUlRJQ0FMX1ZJRVdfQU5HTEVbXTsKKyAgICAvLyBFeHBvc3VyZSBjb21wZW5zYXRpb24gaW5kZXguIDAgbWVhbnMgZXhwb3N1cmUgaXMgbm90IGFkanVzdGVkLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICItNSIgb3IgIjUiLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9FWFBPU1VSRV9DT01QRU5TQVRJT05bXTsKKyAgICAvLyBUaGUgbWF4aW11bSBleHBvc3VyZSBjb21wZW5zYXRpb24gaW5kZXggKD49MCkuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjYiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX01BWF9FWFBPU1VSRV9DT01QRU5TQVRJT05bXTsKKyAgICAvLyBUaGUgbWluaW11bSBleHBvc3VyZSBjb21wZW5zYXRpb24gaW5kZXggKDw9MCkuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIi02Ii4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9NSU5fRVhQT1NVUkVfQ09NUEVOU0FUSU9OW107CisgICAgLy8gVGhlIGV4cG9zdXJlIGNvbXBlbnNhdGlvbiBzdGVwLiBFeHBvc3VyZSBjb21wZW5zYXRpb24gaW5kZXggbXVsdGlwbHkgYnkKKyAgICAvLyBzdGVwIGVxYWxzIHRvIEVWLiBFeDogaWYgZXhwb3N1cmUgY29tcGVuc2F0aW9uIGluZGV4IGlzIC02IGFuZCBzdGVwIGlzCisgICAgLy8gMC4zMzMzLCBFViBpcyAtMi4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMC4zMzMzMzMzMzMiIG9yICIwLjUiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0VYUE9TVVJFX0NPTVBFTlNBVElPTl9TVEVQW107CisgICAgLy8gVGhlIHN0YXRlIG9mIHRoZSBhdXRvLWV4cG9zdXJlIGxvY2suICJ0cnVlIiBtZWFucyB0aGF0CisgICAgLy8gYXV0by1leHBvc3VyZSBpcyBsb2NrZWQgdG8gaXRzIGN1cnJlbnQgdmFsdWUgYW5kIHdpbGwgbm90CisgICAgLy8gY2hhbmdlLiAiZmFsc2UiIG1lYW5zIHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgaXMgZnJlZSB0bworICAgIC8vIGNoYW5nZSBleHBvc3VyZSB2YWx1ZXMuIElmIGF1dG8tZXhwb3N1cmUgaXMgYWxyZWFkeSBsb2NrZWQsCisgICAgLy8gc2V0dGluZyB0aGlzIHRvIHRydWUgYWdhaW4gaGFzIG5vIGVmZmVjdCAodGhlIGRyaXZlciB3aWxsIG5vdAorICAgIC8vIHJlY2FsY3VsYXRlIGV4cG9zdXJlIHZhbHVlcykuIENoYW5naW5nIGV4cG9zdXJlIGNvbXBlbnNhdGlvbgorICAgIC8vIHNldHRpbmdzIHdpbGwgc3RpbGwgYWZmZWN0IHRoZSBleHBvc3VyZSBzZXR0aW5ncyB3aGlsZQorICAgIC8vIGF1dG8tZXhwb3N1cmUgaXMgbG9ja2VkLiBTdG9wcGluZyBwcmV2aWV3IG9yIHRha2luZyBhIHN0aWxsCisgICAgLy8gaW1hZ2Ugd2lsbCBub3QgY2hhbmdlIHRoZSBsb2NrLiBJbiBjb25qdW5jdGlvbiB3aXRoCisgICAgLy8gZXhwb3N1cmUgY29tcGVuc2F0aW9uLCB0aGlzIGFsbG93cyBmb3IgY2FwdHVyaW5nIG11bHRpLWV4cG9zdXJlCisgICAgLy8gYnJhY2tldHMgd2l0aCBrbm93biByZWxhdGl2ZSBleHBvc3VyZSB2YWx1ZXMuIExvY2tpbmcKKyAgICAvLyBhdXRvLWV4cG9zdXJlIGFmdGVyIG9wZW4gYnV0IGJlZm9yZSB0aGUgZmlyc3QgY2FsbCB0bworICAgIC8vIHN0YXJ0UHJldmlldyBtYXkgcmVzdWx0IGluIHNldmVyZWx5IG92ZXItIG9yIHVuZGVyLWV4cG9zZWQKKyAgICAvLyBpbWFnZXMuICBUaGUgZHJpdmVyIHdpbGwgbm90IGNoYW5nZSB0aGUgQUUgbG9jayBhZnRlcgorICAgIC8vIGF1dG8tZm9jdXMgY29tcGxldGVzLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9BVVRPX0VYUE9TVVJFX0xPQ0tbXTsKKyAgICAvLyBXaGV0aGVyIGxvY2tpbmcgdGhlIGF1dG8tZXhwb3N1cmUgaXMgc3VwcG9ydGVkLiAidHJ1ZSIgbWVhbnMgaXQgaXMsIGFuZAorICAgIC8vICJmYWxzZSIgb3IgdGhpcyBrZXkgbm90IGV4aXN0aW5nIG1lYW5zIGl0IGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0FVVE9fRVhQT1NVUkVfTE9DS19TVVBQT1JURURbXTsKKyAgICAvLyBUaGUgc3RhdGUgb2YgdGhlIGF1dG8td2hpdGUgYmFsYW5jZSBsb2NrLiAidHJ1ZSIgbWVhbnMgdGhhdAorICAgIC8vIGF1dG8td2hpdGUgYmFsYW5jZSBpcyBsb2NrZWQgdG8gaXRzIGN1cnJlbnQgdmFsdWUgYW5kIHdpbGwgbm90CisgICAgLy8gY2hhbmdlLiAiZmFsc2UiIG1lYW5zIHRoZSBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBmcmVlIHRvCisgICAgLy8gY2hhbmdlIHdoaXRlIGJhbGFuY2UgdmFsdWVzLiBJZiBhdXRvLXdoaXRlIGJhbGFuY2UgaXMgYWxyZWFkeQorICAgIC8vIGxvY2tlZCwgc2V0dGluZyB0aGlzIHRvIHRydWUgYWdhaW4gaGFzIG5vIGVmZmVjdCAodGhlIGRyaXZlcgorICAgIC8vIHdpbGwgbm90IHJlY2FsY3VsYXRlIHdoaXRlIGJhbGFuY2UgdmFsdWVzKS4gU3RvcHBpbmcgcHJldmlldyBvcgorICAgIC8vIHRha2luZyBhIHN0aWxsIGltYWdlIHdpbGwgbm90IGNoYW5nZSB0aGUgbG9jay4gSW4gY29uanVuY3Rpb24KKyAgICAvLyB3aXRoIGV4cG9zdXJlIGNvbXBlbnNhdGlvbiwgdGhpcyBhbGxvd3MgZm9yIGNhcHR1cmluZworICAgIC8vIG11bHRpLWV4cG9zdXJlIGJyYWNrZXRzIHdpdGggZml4ZWQgd2hpdGUgYmFsYW5jZS4gTG9ja2luZworICAgIC8vIGF1dG8td2hpdGUgYmFsYW5jZSBhZnRlciBvcGVuIGJ1dCBiZWZvcmUgdGhlIGZpcnN0IGNhbGwgdG8KKyAgICAvLyBzdGFydFByZXZpZXcgbWF5IHJlc3VsdCBpbiBzZXZlcmVseSBpbmNvcnJlY3QgY29sb3IuICBUaGUKKyAgICAvLyBkcml2ZXIgd2lsbCBub3QgY2hhbmdlIHRoZSBBV0IgbG9jayBhZnRlciBhdXRvLWZvY3VzCisgICAgLy8gY29tcGxldGVzLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9BVVRPX1dISVRFQkFMQU5DRV9MT0NLW107CisgICAgLy8gV2hldGhlciBsb2NraW5nIHRoZSBhdXRvLXdoaXRlIGJhbGFuY2UgaXMgc3VwcG9ydGVkLiAidHJ1ZSIKKyAgICAvLyBtZWFucyBpdCBpcywgYW5kICJmYWxzZSIgb3IgdGhpcyBrZXkgbm90IGV4aXN0aW5nIG1lYW5zIGl0IGlzCisgICAgLy8gbm90IHN1cHBvcnRlZC4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfQVVUT19XSElURUJBTEFOQ0VfTE9DS19TVVBQT1JURURbXTsKKworICAgIC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXRlcmluZyBhcmVhcyBzdXBwb3J0ZWQuIFRoaXMgaXMgdGhlIG1heGltdW0KKyAgICAvLyBsZW5ndGggb2YgS0VZX01FVEVSSU5HX0FSRUFTLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIwIiBvciAiMiIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfTUFYX05VTV9NRVRFUklOR19BUkVBU1tdOworICAgIC8vIEN1cnJlbnQgbWV0ZXJpbmcgYXJlYXMuIENhbWVyYSBkcml2ZXIgdXNlcyB0aGVzZSBhcmVhcyB0byBkZWNpZGUKKyAgICAvLyBleHBvc3VyZS4KKyAgICAvLworICAgIC8vIEJlZm9yZSBhY2Nlc3NpbmcgdGhpcyBwYXJhbWV0ZXIsIGFwcHMgc2hvdWxkIGNoZWNrCisgICAgLy8gS0VZX01BWF9OVU1fTUVURVJJTkdfQVJFQVMgZmlyc3QgdG8ga25vdyB0aGUgbWF4aW11bSBudW1iZXIgb2YgbWV0ZXJpbmcKKyAgICAvLyBhcmVhcyBmaXJzdC4gSWYgdGhlIHZhbHVlIGlzIDAsIG1ldGVyaW5nIGFyZWEgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAvLworICAgIC8vIEVhY2ggbWV0ZXJpbmcgYXJlYSBpcyBhIHJlY3RhbmdsZSB3aXRoIHNwZWNpZmllZCB3ZWlnaHQuIFRoZSBkaXJlY3Rpb24gaXMKKyAgICAvLyByZWxhdGl2ZSB0byB0aGUgc2Vuc29yIG9yaWVudGF0aW9uLCB0aGF0IGlzLCB3aGF0IHRoZSBzZW5zb3Igc2Vlcy4gVGhlCisgICAgLy8gZGlyZWN0aW9uIGlzIG5vdCBhZmZlY3RlZCBieSB0aGUgcm90YXRpb24gb3IgbWlycm9yaW5nIG9mCisgICAgLy8gQ0FNRVJBX0NNRF9TRVRfRElTUExBWV9PUklFTlRBVElPTi4gQ29vcmRpbmF0ZXMgb2YgdGhlIHJlY3RhbmdsZSByYW5nZQorICAgIC8vIGZyb20gLTEwMDAgdG8gMTAwMC4gKC0xMDAwLCAtMTAwMCkgaXMgdGhlIHVwcGVyIGxlZnQgcG9pbnQuICgxMDAwLCAxMDAwKQorICAgIC8vIGlzIHRoZSBsb3dlciByaWdodCBwb2ludC4gVGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgbWV0ZXJpbmcgYXJlYXMgY2Fubm90CisgICAgLy8gYmUgMCBvciBuZWdhdGl2ZS4KKyAgICAvLworICAgIC8vIFRoZSBmaWZ0aCBlbGVtZW50IGlzIHRoZSB3ZWlnaHQuIFZhbHVlcyBmb3Igd2VpZ2h0IG11c3QgcmFuZ2UgZnJvbSAxIHRvCisgICAgLy8gMTAwMC4gIFRoZSB3ZWlnaHQgc2hvdWxkIGJlIGludGVycHJldGVkIGFzIGEgcGVyLXBpeGVsIHdlaWdodCAtIGFsbAorICAgIC8vIHBpeGVscyBpbiB0aGUgYXJlYSBoYXZlIHRoZSBzcGVjaWZpZWQgd2VpZ2h0LiBUaGlzIG1lYW5zIGEgc21hbGwgYXJlYQorICAgIC8vIHdpdGggdGhlIHNhbWUgd2VpZ2h0IGFzIGEgbGFyZ2VyIGFyZWEgd2lsbCBoYXZlIGxlc3MgaW5mbHVlbmNlIG9uIHRoZQorICAgIC8vIG1ldGVyaW5nIHRoYW4gdGhlIGxhcmdlciBhcmVhLiBNZXRlcmluZyBhcmVhcyBjYW4gcGFydGlhbGx5IG92ZXJsYXAgYW5kCisgICAgLy8gdGhlIGRyaXZlciB3aWxsIGFkZCB0aGUgd2VpZ2h0cyBpbiB0aGUgb3ZlcmxhcCByZWdpb24uCisgICAgLy8KKyAgICAvLyBBIHNwZWNpYWwgY2FzZSBvZiBhbGwtemVybyBzaW5nbGUgbWV0ZXJpbmcgYXJlYSBtZWFucyBkcml2ZXIgdG8gZGVjaWRlCisgICAgLy8gdGhlIG1ldGVyaW5nIGFyZWEuIEZvciBleGFtcGxlLCB0aGUgZHJpdmVyIG1heSB1c2UgbW9yZSBzaWduYWxzIHRvIGRlY2lkZQorICAgIC8vIG1ldGVyaW5nIGFyZWFzIGFuZCBjaGFuZ2UgdGhlbSBkeW5hbWljYWxseS4gQXBwcyBjYW4gc2V0IGFsbC16ZXJvIGlmIHRoZXkKKyAgICAvLyB3YW50IHRoZSBkcml2ZXIgdG8gZGVjaWRlIG1ldGVyaW5nIGFyZWFzLgorICAgIC8vCisgICAgLy8gTWV0ZXJpbmcgYXJlYXMgYXJlIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IGZpZWxkIG9mIHZpZXcgKEtFWV9aT09NKS4KKyAgICAvLyBObyBtYXR0ZXIgd2hhdCB0aGUgem9vbSBsZXZlbCBpcywgKC0xMDAwLC0xMDAwKSByZXByZXNlbnRzIHRoZSB0b3Agb2YgdGhlCisgICAgLy8gY3VycmVudGx5IHZpc2libGUgY2FtZXJhIGZyYW1lLiBUaGUgbWV0ZXJpbmcgYXJlYSBjYW5ub3QgYmUgc2V0IHRvIGJlCisgICAgLy8gb3V0c2lkZSB0aGUgY3VycmVudCBmaWVsZCBvZiB2aWV3LCBldmVuIHdoZW4gdXNpbmcgem9vbS4KKyAgICAvLworICAgIC8vIE5vIG1hdHRlciB3aGF0IG1ldGVyaW5nIGFyZWFzIGFyZSwgdGhlIGZpbmFsIGV4cG9zdXJlIGFyZSBjb21wZW5zYXRlZAorICAgIC8vIGJ5IEtFWV9FWFBPU1VSRV9DT01QRU5TQVRJT04uCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIigtMTAsLTEwLDAsMCwzMDApLCgwLDAsMTAsMTAsNzAwKSIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX01FVEVSSU5HX0FSRUFTW107CisgICAgLy8gQ3VycmVudCB6b29tIHZhbHVlLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIwIiBvciAiNiIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1pPT01bXTsKKyAgICAvLyBNYXhpbXVtIHpvb20gdmFsdWUuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjYiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX01BWF9aT09NW107CisgICAgLy8gVGhlIHpvb20gcmF0aW9zIG9mIGFsbCB6b29tIHZhbHVlcy4gVGhlIHpvb20gcmF0aW8gaXMgaW4gMS8xMDAKKyAgICAvLyBpbmNyZW1lbnRzLiBFeDogYSB6b29tIG9mIDMuMnggaXMgcmV0dXJuZWQgYXMgMzIwLiBUaGUgbnVtYmVyIG9mIGxpc3QKKyAgICAvLyBlbGVtZW50cyBpcyBLRVlfTUFYX1pPT00gKyAxLiBUaGUgZmlyc3QgZWxlbWVudCBpcyBhbHdheXMgMTAwLiBUaGUgbGFzdAorICAgIC8vIGVsZW1lbnQgaXMgdGhlIHpvb20gcmF0aW8gb2Ygem9vbSB2YWx1ZSBLRVlfTUFYX1pPT00uCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjEwMCwxNTAsMjAwLDI1MCwzMDAsMzUwLDQwMCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfWk9PTV9SQVRJT1NbXTsKKyAgICAvLyBXaGV0aGVyIHpvb20gaXMgc3VwcG9ydGVkLiBab29tIGlzIHN1cHBvcnRlZCBpZiB0aGUgdmFsdWUgaXMgInRydWUiLiBab29tCisgICAgLy8gaXMgbm90IHN1cHBvcnRlZCBpZiB0aGUgdmFsdWUgaXMgbm90ICJ0cnVlIiBvciB0aGUga2V5IGRvZXMgbm90IGV4aXN0LgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJ0cnVlIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9aT09NX1NVUFBPUlRFRFtdOworICAgIC8vIFdoZXRoZXIgaWYgc21vb3RoIHpvb20gaXMgc3VwcG9ydGVkLiBTbW9vdGggem9vbSBpcyBzdXBwb3J0ZWQgaWYgdGhlCisgICAgLy8gdmFsdWUgaXMgInRydWUiLiBJdCBpcyBub3Qgc3VwcG9ydGVkIGlmIHRoZSB2YWx1ZSBpcyBub3QgInRydWUiIG9yIHRoZQorICAgIC8vIGtleSBkb2VzIG5vdCBleGlzdC4KKyAgICAvLyBTZWUgQ0FNRVJBX0NNRF9TVEFSVF9TTU9PVEhfWk9PTSwgQ0FNRVJBX0NNRF9TVE9QX1NNT09USF9aT09NLCBhbmQKKyAgICAvLyBDQU1FUkFfTVNHX1pPT00gaW4gZnJhbWV3b3Jrcy9iYXNlL2luY2x1ZGUvY2FtZXJhL0NhbWVyYS5oLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJ0cnVlIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TTU9PVEhfWk9PTV9TVVBQT1JURURbXTsKKworICAgIC8vIFRoZSBkaXN0YW5jZXMgKGluIG1ldGVycykgZnJvbSB0aGUgY2FtZXJhIHRvIHdoZXJlIGFuIG9iamVjdCBhcHBlYXJzIHRvCisgICAgLy8gYmUgaW4gZm9jdXMuIFRoZSBvYmplY3QgaXMgc2hhcnBlc3QgYXQgdGhlIG9wdGltYWwgZm9jdXMgZGlzdGFuY2UuIFRoZQorICAgIC8vIGRlcHRoIG9mIGZpZWxkIGlzIHRoZSBmYXIgZm9jdXMgZGlzdGFuY2UgbWludXMgbmVhciBmb2N1cyBkaXN0YW5jZS4KKyAgICAvLworICAgIC8vIEZvY3VzIGRpc3RhbmNlcyBtYXkgY2hhbmdlIGFmdGVyIHN0YXJ0aW5nIGF1dG8gZm9jdXMsIGNhbmNlbGluZyBhdXRvCisgICAgLy8gZm9jdXMsIG9yIHN0YXJ0aW5nIHRoZSBwcmV2aWV3LiBBcHBsaWNhdGlvbnMgY2FuIHJlYWQgdGhpcyBhbnl0aW1lIHRvIGdldAorICAgIC8vIHRoZSBsYXRlc3QgZm9jdXMgZGlzdGFuY2VzLiBJZiB0aGUgZm9jdXMgbW9kZSBpcyBGT0NVU19NT0RFX0NPTlRJTlVPVVMsCisgICAgLy8gZm9jdXMgZGlzdGFuY2VzIG1heSBjaGFuZ2UgZnJvbSB0aW1lIHRvIHRpbWUuCisgICAgLy8KKyAgICAvLyBUaGlzIGlzIGludGVuZGVkIHRvIGVzdGltYXRlIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBjYW1lcmEgYW5kIHRoZQorICAgIC8vIHN1YmplY3QuIEFmdGVyIGF1dG9mb2N1cywgdGhlIHN1YmplY3QgZGlzdGFuY2UgbWF5IGJlIHdpdGhpbiBuZWFyIGFuZCBmYXIKKyAgICAvLyBmb2N1cyBkaXN0YW5jZS4gSG93ZXZlciwgdGhlIHByZWNpc2lvbiBkZXBlbmRzIG9uIHRoZSBjYW1lcmEgaGFyZHdhcmUsCisgICAgLy8gYXV0b2ZvY3VzIGFsZ29yaXRobSwgdGhlIGZvY3VzIGFyZWEsIGFuZCB0aGUgc2NlbmUuIFRoZSBlcnJvciBjYW4gYmUKKyAgICAvLyBsYXJnZSBhbmQgaXQgc2hvdWxkIGJlIG9ubHkgdXNlZCBhcyBhIHJlZmVyZW5jZS4KKyAgICAvLworICAgIC8vIEZhciBmb2N1cyBkaXN0YW5jZSA+IG9wdGltYWwgZm9jdXMgZGlzdGFuY2UgPiBuZWFyIGZvY3VzIGRpc3RhbmNlLiBJZgorICAgIC8vIHRoZSBmYXIgZm9jdXMgZGlzdGFuY2UgaXMgaW5maW5pdHksIHRoZSB2YWx1ZSBzaG91bGQgYmUgIkluZmluaXR5IiAoY2FzZQorICAgIC8vIHNlbnNpdGl2ZSkuIFRoZSBmb3JtYXQgaXMgdGhyZWUgZmxvYXQgdmFsdWVzIHNlcGFyYXRlZCBieSBjb21tYXMuIFRoZQorICAgIC8vIGZpcnN0IGlzIG5lYXIgZm9jdXMgZGlzdGFuY2UuIFRoZSBzZWNvbmQgaXMgb3B0aW1hbCBmb2N1cyBkaXN0YW5jZS4gVGhlCisgICAgLy8gdGhpcmQgaXMgZmFyIGZvY3VzIGRpc3RhbmNlLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIwLjk1LDEuOSxJbmZpbml0eSIgb3IgIjAuMDQ5LDAuMDUsMC4wNTEiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0ZPQ1VTX0RJU1RBTkNFU1tdOworCisgICAgLy8gVGhlIGN1cnJlbnQgZGltZW5zaW9ucyBpbiBwaXhlbHMgKHdpZHRoIHggaGVpZ2h0KSBmb3IgdmlkZW8gZnJhbWVzLgorICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgb25lIG9mIHRoZSBzdXBwb3J0ZWQgc2l6ZXMgcmV0cmlldmVkCisgICAgLy8gdmlhIEtFWV9TVVBQT1JURURfVklERU9fU0laRVMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjEyODB4NzIwIi4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfVklERU9fU0laRVtdOworICAgIC8vIEEgbGlzdCBvZiB0aGUgc3VwcG9ydGVkIGRpbWVuc2lvbnMgaW4gcGl4ZWxzICh3aWR0aCB4IGhlaWdodCkKKyAgICAvLyBmb3IgdmlkZW8gZnJhbWVzLiBTZWUgQ0FNRVJBX01TR19WSURFT19GUkFNRSBmb3IgZGV0YWlscyBpbgorICAgIC8vIGZyYW1ld29ya3MvYmFzZS9pbmNsdWRlL2NhbWVyYS9DYW1lcmEuaC4KKyAgICAvLyBFeGFtcGxlOiAiMTc2eDE0NCwxMjgweDcyMCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX1ZJREVPX1NJWkVTW107CisKKyAgICAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgZGV0ZWN0ZWQgZmFjZXMgc3VwcG9ydGVkIGJ5IGhhcmR3YXJlIGZhY2UKKyAgICAvLyBkZXRlY3Rpb24uIElmIHRoZSB2YWx1ZSBpcyAwLCBoYXJkd2FyZSBmYWNlIGRldGVjdGlvbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIEV4YW1wbGU6ICI1Ii4gUmVhZCBvbmx5CisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX01BWF9OVU1fREVURUNURURfRkFDRVNfSFdbXTsKKworICAgIC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBkZXRlY3RlZCBmYWNlcyBzdXBwb3J0ZWQgYnkgc29mdHdhcmUgZmFjZQorICAgIC8vIGRldGVjdGlvbi4gSWYgdGhlIHZhbHVlIGlzIDAsIHNvZnR3YXJlIGZhY2UgZGV0ZWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgLy8gRXhhbXBsZTogIjUiLiBSZWFkIG9ubHkKKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfTUFYX05VTV9ERVRFQ1RFRF9GQUNFU19TV1tdOworCisgICAgLy8gUHJlZmVycmVkIHByZXZpZXcgZnJhbWUgc2l6ZSBpbiBwaXhlbHMgZm9yIHZpZGVvIHJlY29yZGluZy4KKyAgICAvLyBUaGUgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIG9uZSBvZiB0aGUgc3VwcG9ydGVkIHNpemVzIHJldHJpZXZlZAorICAgIC8vIHZpYSBLRVlfU1VQUE9SVEVEX1BSRVZJRVdfU0laRVMuIFRoaXMga2V5IGNhbiBiZSB1c2VkIG9ubHkgd2hlbgorICAgIC8vIGdldFN1cHBvcnRlZFZpZGVvU2l6ZXMoKSBkb2VzIG5vdCByZXR1cm4gYW4gZW1wdHkgVmVjdG9yIG9mIFNpemUuCisgICAgLy8gQ2FtY29yZGVyIGFwcGxpY2F0aW9ucyBhcmUgcmVjb21tZW5kZWQgdG8gc2V0IHRoZSBwcmV2aWV3IHNpemUKKyAgICAvLyB0byBhIHZhbHVlIHRoYXQgaXMgbm90IGxhcmdlciB0aGFuIHRoZSBwcmVmZXJyZWQgcHJldmlldyBzaXplLgorICAgIC8vIEluIG90aGVyIHdvcmRzLCB0aGUgcHJvZHVjdCBvZiB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUKKyAgICAvLyBwcmV2aWV3IHNpemUgc2hvdWxkIG5vdCBiZSBsYXJnZXIgdGhhbiB0aGF0IG9mIHRoZSBwcmVmZXJyZWQKKyAgICAvLyBwcmV2aWV3IHNpemUuIEluIGFkZGl0aW9uLCB3ZSByZWNvbW1lbmQgdG8gY2hvb3MgYSBwcmV2aWV3IHNpemUKKyAgICAvLyB0aGF0IGhhcyB0aGUgc2FtZSBhc3BlY3QgcmF0aW8gYXMgdGhlIHJlc29sdXRpb24gb2YgdmlkZW8gdG8gYmUKKyAgICAvLyByZWNvcmRlZC4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiODAweDYwMCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfUFJFRkVSUkVEX1BSRVZJRVdfU0laRV9GT1JfVklERU9bXTsKKworICAgIC8vIFRoZSBpbWFnZSBmb3JtYXQgZm9yIHZpZGVvIGZyYW1lcy4gU2VlIENBTUVSQV9NU0dfVklERU9fRlJBTUUgaW4KKyAgICAvLyBmcmFtZXdvcmtzL2Jhc2UvaW5jbHVkZS9jYW1lcmEvQ2FtZXJhLmguCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogInl1djQyMHNwIiBvciBQSVhFTF9GT1JNQVRfWFhYIGNvbnN0YW50cy4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9WSURFT19GUkFNRV9GT1JNQVRbXTsKKworICAgIC8vIFNldHMgdGhlIGhpbnQgb2YgdGhlIHJlY29yZGluZyBtb2RlLiBJZiB0aGlzIGlzIHRydWUsIE1lZGlhUmVjb3JkZXIuc3RhcnQKKyAgICAvLyBtYXkgYmUgZmFzdGVyIG9yIGhhcyBsZXNzIGdsaXRjaGVzLiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIHN0YXJ0aW5nCisgICAgLy8gdGhlIHByZXZpZXcgZm9yIHRoZSBiZXN0IHJlc3VsdC4gQnV0IGl0IGlzIGFsbG93ZWQgdG8gY2hhbmdlIHRoZSBoaW50CisgICAgLy8gd2hpbGUgdGhlIHByZXZpZXcgaXMgYWN0aXZlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS4KKyAgICAvLworICAgIC8vIFRoZSBhcHBzIGNhbiBzdGlsbCBjYWxsIENhbWVyYS50YWtlUGljdHVyZSB3aGVuIHRoZSBoaW50IGlzIHRydWUuIFRoZQorICAgIC8vIGFwcHMgY2FuIGNhbGwgTWVkaWFSZWNvcmRlci5zdGFydCB3aGVuIHRoZSBoaW50IGlzIGZhbHNlLiBCdXQgdGhlCisgICAgLy8gcGVyZm9ybWFuY2UgbWF5IGJlIHdvcnNlLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJ0cnVlIiBvciAiZmFsc2UiLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9SRUNPUkRJTkdfSElOVFtdOworCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHZpZGVvIHNuYXBzaG90IGlzIHN1cHBvcnRlZC4gVGhhdCBpcywgYXBwbGljYXRpb25zCisgICAgLy8gY2FuIGNhbGwgQ2FtZXJhLnRha2VQaWN0dXJlIGR1cmluZyByZWNvcmRpbmcuIEFwcGxpY2F0aW9ucyBkbyBub3QgbmVlZCB0bworICAgIC8vIGNhbGwgQ2FtZXJhLnN0YXJ0UHJldmlldyBhZnRlciB0YWtpbmcgYSBwaWN0dXJlLiBUaGUgcHJldmlldyB3aWxsIGJlCisgICAgLy8gc3RpbGwgYWN0aXZlLiBPdGhlciB0aGFuIHRoYXQsIHRha2luZyBhIHBpY3R1cmUgZHVyaW5nIHJlY29yZGluZyBpcworICAgIC8vIGlkZW50aWNhbCB0byB0YWtpbmcgYSBwaWN0dXJlIG5vcm1hbGx5LiBBbGwgc2V0dGluZ3MgYW5kIG1ldGhvZHMgcmVsYXRlZAorICAgIC8vIHRvIHRha2VQaWN0dXJlIHdvcmsgaWRlbnRpY2FsbHkuIEV4OiBLRVlfUElDVFVSRV9TSVpFLAorICAgIC8vIEtFWV9TVVBQT1JURURfUElDVFVSRV9TSVpFUywgS0VZX0pQRUdfUVVBTElUWSwgS0VZX1JPVEFUSU9OLCBhbmQgZXRjLgorICAgIC8vIFRoZSBwaWN0dXJlIHdpbGwgaGF2ZSBhbiBFWElGIGhlYWRlci4gRkxBU0hfTU9ERV9BVVRPIGFuZCBGTEFTSF9NT0RFX09OCisgICAgLy8gYWxzbyBzdGlsbCB3b3JrLCBidXQgdGhlIHZpZGVvIHdpbGwgcmVjb3JkIHRoZSBmbGFzaC4KKyAgICAvLworICAgIC8vIEFwcGxpY2F0aW9ucyBjYW4gc2V0IHNodXR0ZXIgY2FsbGJhY2sgYXMgbnVsbCB0byBhdm9pZCB0aGUgc2h1dHRlcgorICAgIC8vIHNvdW5kLiBJdCBpcyBhbHNvIHJlY29tbWVuZGVkIHRvIHNldCByYXcgcGljdHVyZSBhbmQgcG9zdCB2aWV3IGNhbGxiYWNrcworICAgIC8vIHRvIG51bGwgdG8gYXZvaWQgdGhlIGludGVycnVwdCBvZiBwcmV2aWV3IGRpc3BsYXkuCisgICAgLy8KKyAgICAvLyBGaWVsZC1vZi12aWV3IG9mIHRoZSByZWNvcmRlZCB2aWRlbyBtYXkgYmUgZGlmZmVyZW50IGZyb20gdGhhdCBvZiB0aGUKKyAgICAvLyBjYXB0dXJlZCBwaWN0dXJlcy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAidHJ1ZSIgb3IgImZhbHNlIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9WSURFT19TTkFQU0hPVF9TVVBQT1JURURbXTsKKworICAgIC8vIFRoZSBzdGF0ZSBvZiB0aGUgdmlkZW8gc3RhYmlsaXphdGlvbi4gSWYgc2V0IHRvIHRydWUsIGJvdGggdGhlCisgICAgLy8gcHJldmlldyBzdHJlYW0gYW5kIHRoZSByZWNvcmRlZCB2aWRlbyBzdHJlYW0gYXJlIHN0YWJpbGl6ZWQgYnkKKyAgICAvLyB0aGUgY2FtZXJhLiBPbmx5IHZhbGlkIHRvIHNldCBpZiBLRVlfVklERU9fU1RBQklMSVpBVElPTl9TVVBQT1JURUQgaXMKKyAgICAvLyBzZXQgdG8gdHJ1ZS4KKyAgICAvLworICAgIC8vIFRoZSB2YWx1ZSBvZiB0aGlzIGtleSBjYW4gYmUgY2hhbmdlZCBhbnkgdGltZSB0aGUgY2FtZXJhIGlzCisgICAgLy8gb3Blbi4gSWYgcHJldmlldyBvciByZWNvcmRpbmcgaXMgYWN0aXZlLCBpdCBpcyBhY2NlcHRhYmxlIGZvcgorICAgIC8vIHRoZXJlIHRvIGJlIGEgc2xpZ2h0IHZpZGVvIGdsaXRjaCB3aGVuIHZpZGVvIHN0YWJpbGl6YXRpb24gaXMKKyAgICAvLyB0b2dnbGVkIG9uIGFuZCBvZmYuCisgICAgLy8KKyAgICAvLyBUaGlzIG9ubHkgc3RhYmlsaXplcyB2aWRlbyBzdHJlYW1zIChiZXR3ZWVuLWZyYW1lcyBzdGFiaWxpemF0aW9uKSwgYW5kCisgICAgLy8gaGFzIG5vIGVmZmVjdCBvbiBzdGlsbCBpbWFnZSBjYXB0dXJlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9WSURFT19TVEFCSUxJWkFUSU9OW107CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdmlkZW8gc3RhYmlsaXphdGlvbiBpcyBzdXBwb3J0ZWQuIFRoYXQgaXMsIGFwcGxpY2F0aW9ucworICAgIC8vIGNhbiBzZXQgS0VZX1ZJREVPX1NUQUJJTElaQVRJT04gdG8gdHJ1ZSBhbmQgaGF2ZSBhIHN0YWJpbGl6ZWQgcHJldmlldworICAgIC8vIHN0cmVhbSBhbmQgcmVjb3JkIHN0YWJpbGl6ZWQgdmlkZW9zLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9WSURFT19TVEFCSUxJWkFUSU9OX1NVUFBPUlRFRFtdOworCisgICAgLy8gU3VwcG9ydGVkIG1vZGVzIGZvciBzcGVjaWFsIGVmZmVjdHMgd2l0aCBsaWdodC4KKyAgICAvLyBFeGFtcGxlIHZhbHVlczogImxvd2xpZ2h0LGhkciIuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0xJR0hURlhbXTsKKworICAgIC8vIFZhbHVlIGZvciBLRVlfWk9PTV9TVVBQT1JURUQgb3IgS0VZX1NNT09USF9aT09NX1NVUFBPUlRFRC4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBUUlVFW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgRkFMU0VbXTsKKworICAgIC8vIFZhbHVlIGZvciBLRVlfRk9DVVNfRElTVEFOQ0VTLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZPQ1VTX0RJU1RBTkNFX0lORklOSVRZW107CisKKyAgICAvLyBWYWx1ZXMgZm9yIHdoaXRlIGJhbGFuY2Ugc2V0dGluZ3MuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9BVVRPW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9JTkNBTkRFU0NFTlRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBXSElURV9CQUxBTkNFX0ZMVU9SRVNDRU5UW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9XQVJNX0ZMVU9SRVNDRU5UW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9EQVlMSUdIVFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFdISVRFX0JBTEFOQ0VfQ0xPVURZX0RBWUxJR0hUW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9UV0lMSUdIVFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFdISVRFX0JBTEFOQ0VfU0hBREVbXTsKKworICAgIC8vIFZhbHVlcyBmb3IgZWZmZWN0IHNldHRpbmdzLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9OT05FW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgRUZGRUNUX01PTk9bXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfTkVHQVRJVkVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfU09MQVJJWkVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfU0VQSUFbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfUE9TVEVSSVpFW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgRUZGRUNUX1dISVRFQk9BUkRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfQkxBQ0tCT0FSRFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9BUVVBW107CisKKyAgICAvLyBWYWx1ZXMgZm9yIGFudGliYW5kaW5nIHNldHRpbmdzLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEFOVElCQU5ESU5HX0FVVE9bXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBBTlRJQkFORElOR181MEhaW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgQU5USUJBTkRJTkdfNjBIWltdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEFOVElCQU5ESU5HX09GRltdOworCisgICAgLy8gVmFsdWVzIGZvciBmbGFzaCBtb2RlIHNldHRpbmdzLgorICAgIC8vIEZsYXNoIHdpbGwgbm90IGJlIGZpcmVkLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZMQVNIX01PREVfT0ZGW107CisgICAgLy8gRmxhc2ggd2lsbCBiZSBmaXJlZCBhdXRvbWF0aWNhbGx5IHdoZW4gcmVxdWlyZWQuIFRoZSBmbGFzaCBtYXkgYmUgZmlyZWQKKyAgICAvLyBkdXJpbmcgcHJldmlldywgYXV0by1mb2N1cywgb3Igc25hcHNob3QgZGVwZW5kaW5nIG9uIHRoZSBkcml2ZXIuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRkxBU0hfTU9ERV9BVVRPW107CisgICAgLy8gRmxhc2ggd2lsbCBhbHdheXMgYmUgZmlyZWQgZHVyaW5nIHNuYXBzaG90LiBUaGUgZmxhc2ggbWF5IGFsc28gYmUKKyAgICAvLyBmaXJlZCBkdXJpbmcgcHJldmlldyBvciBhdXRvLWZvY3VzIGRlcGVuZGluZyBvbiB0aGUgZHJpdmVyLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZMQVNIX01PREVfT05bXTsKKyAgICAvLyBGbGFzaCB3aWxsIGJlIGZpcmVkIGluIHJlZC1leWUgcmVkdWN0aW9uIG1vZGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRkxBU0hfTU9ERV9SRURfRVlFW107CisgICAgLy8gQ29uc3RhbnQgZW1pc3Npb24gb2YgbGlnaHQgZHVyaW5nIHByZXZpZXcsIGF1dG8tZm9jdXMgYW5kIHNuYXBzaG90LgorICAgIC8vIFRoaXMgY2FuIGFsc28gYmUgdXNlZCBmb3IgdmlkZW8gcmVjb3JkaW5nLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZMQVNIX01PREVfVE9SQ0hbXTsKKworICAgIC8vIFZhbHVlcyBmb3Igc2NlbmUgbW9kZSBzZXR0aW5ncy4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX0FVVE9bXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX0FDVElPTltdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfUE9SVFJBSVRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX0xBTkRTQ0FQRVtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfTklHSFRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX05JR0hUX1BPUlRSQUlUW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9USEVBVFJFW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9CRUFDSFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfU05PV1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfU1VOU0VUW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9TVEVBRFlQSE9UT1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfRklSRVdPUktTW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9TUE9SVFNbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX1BBUlRZW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9DQU5ETEVMSUdIVFtdOworICAgIC8vIEFwcGxpY2F0aW9ucyBhcmUgbG9va2luZyBmb3IgYSBiYXJjb2RlLiBDYW1lcmEgZHJpdmVyIHdpbGwgYmUgb3B0aW1pemVkCisgICAgLy8gZm9yIGJhcmNvZGUgcmVhZGluZy4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX0JBUkNPREVbXTsKKyAgICAvLyBBIGhpZ2gtZHluYW1pYyByYW5nZSBtb2RlLiBJbiB0aGlzIG1vZGUsIHRoZSBIQUwgbW9kdWxlIHdpbGwgdXNlIGEKKyAgICAvLyBjYXB0dXJlIHN0cmF0ZWd5IHRoYXQgZXh0ZW5kcyB0aGUgZHluYW1pYyByYW5nZSBvZiB0aGUgY2FwdHVyZWQKKyAgICAvLyBpbWFnZSBpbiBzb21lIGZhc2hpb24uIE9ubHkgdGhlIGZpbmFsIGltYWdlIGlzIHJldHVybmVkLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfSERSW107CisKKyAgICAvLyBQaXhlbCBjb2xvciBmb3JtYXRzIGZvciBLRVlfUFJFVklFV19GT1JNQVQsIEtFWV9QSUNUVVJFX0ZPUk1BVCwKKyAgICAvLyBhbmQgS0VZX1ZJREVPX0ZSQU1FX0ZPUk1BVAorICAgIHN0YXRpYyBjb25zdCBjaGFyIFBJWEVMX0ZPUk1BVF9ZVVY0MjJTUFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFBJWEVMX0ZPUk1BVF9ZVVY0MjBTUFtdOyAvLyBOVjIxCisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX1lVVjQyMklbXTsgLy8gWVVZMgorICAgIHN0YXRpYyBjb25zdCBjaGFyIFBJWEVMX0ZPUk1BVF9ZVVY0MjBQW107IC8vIFlWMTIKKyAgICBzdGF0aWMgY29uc3QgY2hhciBQSVhFTF9GT1JNQVRfUkdCNTY1W107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX1JHQkE4ODg4W107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX0pQRUdbXTsKKyAgICAvLyBSYXcgYmF5ZXIgZm9ybWF0IHVzZWQgZm9yIGltYWdlcywgd2hpY2ggaXMgMTAgYml0IHByZWNpc2lvbiBzYW1wbGVzCisgICAgLy8gc3RvcmVkIGluIDE2IGJpdCB3b3Jkcy4gVGhlIGZpbHRlciBwYXR0ZXJuIGlzIFJHR0IuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX0JBWUVSX1JHR0JbXTsKKyAgICAvLyBQaXhlbCBmb3JtYXQgaXMgbm90IGtub3duIHRvIHRoZSBmcmFtZXdvcmsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBQSVhFTF9GT1JNQVRfQU5EUk9JRF9PUEFRVUVbXTsKKworICAgIC8vIFZhbHVlcyBmb3IgZm9jdXMgbW9kZSBzZXR0aW5ncy4KKyAgICAvLyBBdXRvLWZvY3VzIG1vZGUuIEFwcGxpY2F0aW9ucyBzaG91bGQgY2FsbAorICAgIC8vIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLmF1dG9Gb2N1cyB0byBzdGFydCB0aGUgZm9jdXMgaW4gdGhpcyBtb2RlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZPQ1VTX01PREVfQVVUT1tdOworICAgIC8vIEZvY3VzIGlzIHNldCBhdCBpbmZpbml0eS4gQXBwbGljYXRpb25zIHNob3VsZCBub3QgY2FsbAorICAgIC8vIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLmF1dG9Gb2N1cyBpbiB0aGlzIG1vZGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9JTkZJTklUWVtdOworICAgIC8vIE1hY3JvIChjbG9zZS11cCkgZm9jdXMgbW9kZS4gQXBwbGljYXRpb25zIHNob3VsZCBjYWxsCisgICAgLy8gQ2FtZXJhSGFyZHdhcmVJbnRlcmZhY2UuYXV0b0ZvY3VzIHRvIHN0YXJ0IHRoZSBmb2N1cyBpbiB0aGlzIG1vZGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9NQUNST1tdOworICAgIC8vIEZvY3VzIGlzIGZpeGVkLiBUaGUgY2FtZXJhIGlzIGFsd2F5cyBpbiB0aGlzIG1vZGUgaWYgdGhlIGZvY3VzIGlzIG5vdAorICAgIC8vIGFkanVzdGFibGUuIElmIHRoZSBjYW1lcmEgaGFzIGF1dG8tZm9jdXMsIHRoaXMgbW9kZSBjYW4gZml4IHRoZQorICAgIC8vIGZvY3VzLCB3aGljaCBpcyB1c3VhbGx5IGF0IGh5cGVyZm9jYWwgZGlzdGFuY2UuIEFwcGxpY2F0aW9ucyBzaG91bGQKKyAgICAvLyBub3QgY2FsbCBDYW1lcmFIYXJkd2FyZUludGVyZmFjZS5hdXRvRm9jdXMgaW4gdGhpcyBtb2RlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZPQ1VTX01PREVfRklYRURbXTsKKyAgICAvLyBFeHRlbmRlZCBkZXB0aCBvZiBmaWVsZCAoRURPRikuIEZvY3VzaW5nIGlzIGRvbmUgZGlnaXRhbGx5IGFuZAorICAgIC8vIGNvbnRpbnVvdXNseS4gQXBwbGljYXRpb25zIHNob3VsZCBub3QgY2FsbAorICAgIC8vIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLmF1dG9Gb2N1cyBpbiB0aGlzIG1vZGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9FRE9GW107CisgICAgLy8gQ29udGludW91cyBhdXRvIGZvY3VzIG1vZGUgaW50ZW5kZWQgZm9yIHZpZGVvIHJlY29yZGluZy4gVGhlIGNhbWVyYQorICAgIC8vIGNvbnRpbnVvdXNseSB0cmllcyB0byBmb2N1cy4gVGhpcyBpcyB0aGUgYmVzdCBjaG9pY2UgZm9yIHZpZGVvCisgICAgLy8gcmVjb3JkaW5nIGJlY2F1c2UgdGhlIGZvY3VzIGNoYW5nZXMgc21vb3RobHkgLiBBcHBsaWNhdGlvbnMgc3RpbGwgY2FuCisgICAgLy8gY2FsbCBDYW1lcmFIYXJkd2FyZUludGVyZmFjZS50YWtlUGljdHVyZSBpbiB0aGlzIG1vZGUgYnV0IHRoZSBzdWJqZWN0IG1heQorICAgIC8vIG5vdCBiZSBpbiBmb2N1cy4gQXV0byBmb2N1cyBzdGFydHMgd2hlbiB0aGUgcGFyYW1ldGVyIGlzIHNldC4KKyAgICAvLworICAgIC8vIEFwcGxpY2F0aW9ucyBjYW4gY2FsbCBDYW1lcmFIYXJkd2FyZUludGVyZmFjZS5hdXRvRm9jdXMgaW4gdGhpcyBtb2RlLiBUaGUKKyAgICAvLyBmb2N1cyBjYWxsYmFjayB3aWxsIGltbWVkaWF0ZWx5IHJldHVybiB3aXRoIGEgYm9vbGVhbiB0aGF0IGluZGljYXRlcworICAgIC8vIHdoZXRoZXIgdGhlIGZvY3VzIGlzIHNoYXJwIG9yIG5vdC4gVGhlIGZvY3VzIHBvc2l0aW9uIGlzIGxvY2tlZCBhZnRlcgorICAgIC8vIGF1dG9Gb2N1cyBjYWxsLiBJZiBhcHBsaWNhdGlvbnMgd2FudCB0byByZXN1bWUgdGhlIGNvbnRpbnVvdXMgZm9jdXMsCisgICAgLy8gY2FuY2VsQXV0b0ZvY3VzIG11c3QgYmUgY2FsbGVkLiBSZXN0YXJ0aW5nIHRoZSBwcmV2aWV3IHdpbGwgbm90IHJlc3VtZQorICAgIC8vIHRoZSBjb250aW51b3VzIGF1dG9mb2N1cy4gVG8gc3RvcCBjb250aW51b3VzIGZvY3VzLCBhcHBsaWNhdGlvbnMgc2hvdWxkCisgICAgLy8gY2hhbmdlIHRoZSBmb2N1cyBtb2RlIHRvIG90aGVyIG1vZGVzLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZPQ1VTX01PREVfQ09OVElOVU9VU19WSURFT1tdOworICAgIC8vIENvbnRpbnVvdXMgYXV0byBmb2N1cyBtb2RlIGludGVuZGVkIGZvciB0YWtpbmcgcGljdHVyZXMuIFRoZSBjYW1lcmEKKyAgICAvLyBjb250aW51b3VzbHkgdHJpZXMgdG8gZm9jdXMuIFRoZSBzcGVlZCBvZiBmb2N1cyBjaGFuZ2UgaXMgbW9yZSBhZ2dyZXNzaXZlCisgICAgLy8gdGhhbiBGT0NVU19NT0RFX0NPTlRJTlVPVVNfVklERU8uIEF1dG8gZm9jdXMgc3RhcnRzIHdoZW4gdGhlIHBhcmFtZXRlciBpcworICAgIC8vIHNldC4KKyAgICAvLworICAgIC8vIEFwcGxpY2F0aW9ucyBjYW4gY2FsbCBDYW1lcmFIYXJkd2FyZUludGVyZmFjZS5hdXRvRm9jdXMgaW4gdGhpcyBtb2RlLiBJZgorICAgIC8vIHRoZSBhdXRvZm9jdXMgaXMgaW4gdGhlIG1pZGRsZSBvZiBzY2FubmluZywgdGhlIGZvY3VzIGNhbGxiYWNrIHdpbGwKKyAgICAvLyByZXR1cm4gd2hlbiBpdCBjb21wbGV0ZXMuIElmIHRoZSBhdXRvZm9jdXMgaXMgbm90IHNjYW5uaW5nLCBmb2N1cworICAgIC8vIGNhbGxiYWNrIHdpbGwgaW1tZWRpYXRlbHkgcmV0dXJuIHdpdGggYSBib29sZWFuIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIKKyAgICAvLyB0aGUgZm9jdXMgaXMgc2hhcnAgb3Igbm90LiBUaGUgYXBwcyBjYW4gdGhlbiBkZWNpZGUgaWYgdGhleSB3YW50IHRvIHRha2UKKyAgICAvLyBhIHBpY3R1cmUgaW1tZWRpYXRlbHkgb3IgdG8gY2hhbmdlIHRoZSBmb2N1cyBtb2RlIHRvIGF1dG8sIGFuZCBydW4gYSBmdWxsCisgICAgLy8gYXV0b2ZvY3VzIGN5Y2xlLiBUaGUgZm9jdXMgcG9zaXRpb24gaXMgbG9ja2VkIGFmdGVyIGF1dG9Gb2N1cyBjYWxsLiBJZgorICAgIC8vIGFwcGxpY2F0aW9ucyB3YW50IHRvIHJlc3VtZSB0aGUgY29udGludW91cyBmb2N1cywgY2FuY2VsQXV0b0ZvY3VzIG11c3QgYmUKKyAgICAvLyBjYWxsZWQuIFJlc3RhcnRpbmcgdGhlIHByZXZpZXcgd2lsbCBub3QgcmVzdW1lIHRoZSBjb250aW51b3VzIGF1dG9mb2N1cy4KKyAgICAvLyBUbyBzdG9wIGNvbnRpbnVvdXMgZm9jdXMsIGFwcGxpY2F0aW9ucyBzaG91bGQgY2hhbmdlIHRoZSBmb2N1cyBtb2RlIHRvCisgICAgLy8gb3RoZXIgbW9kZXMuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9DT05USU5VT1VTX1BJQ1RVUkVbXTsKKworICAgIC8vIFZhbHVlcyBmb3IgbGlnaHQgc3BlY2lhbCBlZmZlY3RzCisgICAgLy8gTG93LWxpZ2h0IGVuaGFuY2VtZW50IG1vZGUKKyAgICBzdGF0aWMgY29uc3QgY2hhciBMSUdIVEZYX0xPV0xJR0hUW107CisgICAgLy8gSGlnaC1keW5hbWljIHJhbmdlIG1vZGUKKyAgICBzdGF0aWMgY29uc3QgY2hhciBMSUdIVEZYX0hEUltdOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGhlIHN1cHBvcnRlZCBwcmV2aWV3IGZvcm1hdHMgYXMgYW4gZW51bSBnaXZlbiBpbiBncmFwaGljcy5oCisgICAgICogY29ycnNwb25kaW5nIHRvIHRoZSBmb3JtYXQgZ2l2ZW4gaW4gdGhlIGlucHV0IHN0cmluZyBvciAtMSBpZiBubyBzdWNoCisgICAgICogY29udmVyc2lvbiBleGlzdHMuCisgICAgICovCisgICAgc3RhdGljIGludCBwcmV2aWV3Rm9ybWF0VG9FbnVtKGNvbnN0IGNoYXIqIGZvcm1hdCk7CisKK3ByaXZhdGU6CisgICAgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzgsU3RyaW5nOD4gICAgbU1hcDsKK307CisKK307IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9WdHNIYWxDYW1lcmFQcm92aWRlclYyXzRUYXJnZXRUZXN0LmNwcCBiL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ2FtZXJhUHJvdmlkZXJWMl80VGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhlNDRkMwotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ2FtZXJhUHJvdmlkZXJWMl80VGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSwzMjY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJjYW1lcmFfaGlkbF9oYWxfdGVzdCIKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9wcm92aWRlci8yLjQvSUNhbWVyYVByb3ZpZGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxiaW5kZXIvTWVtb3J5SGVhcEJhc2UuaD4KKyNpbmNsdWRlIDxncmFsbG9jdXNhZ2UvR3JhbGxvY1VzYWdlQ29udmVyc2lvbi5oPgorI2luY2x1ZGUgPGd1aS9CdWZmZXJJdGVtQ29uc3VtZXIuaD4KKyNpbmNsdWRlIDxndWkvQnVmZmVyUXVldWUuaD4KKyNpbmNsdWRlIDxndWkvU3VyZmFjZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dyYWxsb2MuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jMS5oPgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8c3lzdGVtL2NhbWVyYS5oPgorI2luY2x1ZGUgPHVpL0dyYXBoaWNCdWZmZXIuaD4KKyNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KKyNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHJlZ2V4PgorI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSAiQ2FtZXJhUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgInN5c3RlbS9jYW1lcmFfbWV0YWRhdGEuaCIKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6OndwOwordXNpbmcgOjphbmRyb2lkOjpHcmFwaGljQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpJR3JhcGhpY0J1ZmZlclByb2R1Y2VyOwordXNpbmcgOjphbmRyb2lkOjpJR3JhcGhpY0J1ZmZlckNvbnN1bWVyOwordXNpbmcgOjphbmRyb2lkOjpCdWZmZXJRdWV1ZTsKK3VzaW5nIDo6YW5kcm9pZDo6QnVmZmVySXRlbUNvbnN1bWVyOwordXNpbmcgOjphbmRyb2lkOjpTdXJmYWNlOwordXNpbmcgOjphbmRyb2lkOjpDYW1lcmFQYXJhbWV0ZXJzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6QnVmZmVyVXNhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6Q2FtZXJhRGV2aWNlU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlRvcmNoTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpUb3JjaE1vZGVTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OnByb3ZpZGVyOjpWMl80OjpJQ2FtZXJhUHJvdmlkZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OnByb3ZpZGVyOjpWMl80OjpJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkJ1ZmZlckNhY2hlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkNhcHR1cmVSZXF1ZXN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkNhcHR1cmVSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZUNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2VTZXNzaW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6Ok5vdGlmeU1zZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpSZXF1ZXN0VGVtcGxhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6U3RyZWFtOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OlN0cmVhbVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6U3RyZWFtUm90YXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6U3RyZWFtQ29uZmlndXJhdGlvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpTdHJlYW1Db25maWd1cmF0aW9uTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpDYW1lcmFNZXRhZGF0YTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpIYWxTdHJlYW1Db25maWd1cmF0aW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkJ1ZmZlclN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpTdHJlYW1CdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6TXNnVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpFcnJvck1zZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpFcnJvckNvZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6Q2FtZXJhRmFjaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6Ok5vdGlmeUNhbGxiYWNrTXNnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OkNvbW1hbmRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OkRhdGFDYWxsYmFja01zZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpDYW1lcmFGcmFtZU1ldGFkYXRhOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6RnJhbWVDYWxsYmFja0ZsYWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SGFuZGxlVGltZXN0YW1wTWVzc2FnZTsKKworY29uc3QgY2hhciBrQ2FtZXJhUGFzc3Rocm91Z2hTZXJ2aWNlTmFtZVtdID0gImxlZ2FjeS8wIjsKK2NvbnN0IHVpbnQzMl90IGtNYXhQcmV2aWV3V2lkdGggPSAxOTIwOworY29uc3QgdWludDMyX3Qga01heFByZXZpZXdIZWlnaHQgPSAxMDgwOworY29uc3QgdWludDMyX3Qga01heFZpZGVvV2lkdGggPSA0MDk2OworY29uc3QgdWludDMyX3Qga01heFZpZGVvSGVpZ2h0ID0gMjE2MDsKK2NvbnN0IGludDY0X3Qga1N0cmVhbUJ1ZmZlclRpbWVvdXRTZWMgPSAzOworY29uc3QgaW50NjRfdCBrQXV0b0ZvY3VzVGltZW91dFNlYyA9IDU7Citjb25zdCBpbnQ2NF90IGtUb3JjaFRpbWVvdXRTZWMgPSAxOworY29uc3QgaW50NjRfdCBrRW1wdHlGbHVzaFRpbWVvdXRNU2VjID0gMjAwOworY29uc3QgY2hhciBrRHVtcE91dHB1dFtdID0gIi9kZXYvbnVsbCI7CisKK3N0cnVjdCBBdmFpbGFibGVTdHJlYW0geworICAgIGludDMyX3Qgd2lkdGg7CisgICAgaW50MzJfdCBoZWlnaHQ7CisgICAgaW50MzJfdCBmb3JtYXQ7Cit9OworCitzdHJ1Y3QgQXZhaWxhYmxlWlNMSW5wdXRPdXRwdXQgeworICAgIGludDMyX3QgaW5wdXRGb3JtYXQ7CisgICAgaW50MzJfdCBvdXRwdXRGb3JtYXQ7Cit9OworCituYW1lc3BhY2UgeworICAgIC8vICJkZXZpY2VAPHZlcnNpb24+L2xlZ2FjeS88aWQ+IgorICAgIGNvbnN0IGNoYXIgKmtEZXZpY2VOYW1lUkUgPSAiZGV2aWNlQChbMC05XStcXC5bMC05XSspL2xlZ2FjeS8oLispIjsKKyAgICBjb25zdCBpbnQgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIgPSAweDMwMjsKKyAgICBjb25zdCBpbnQgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzAgPSAweDEwMDsKKyAgICBjb25zdCBjaGFyICprSEFMM18yID0gIjMuMiI7CisgICAgY29uc3QgY2hhciAqa0hBTDFfMCA9ICIxLjAiOworCisgICAgYm9vbCBtYXRjaERldmljZU5hbWUoY29uc3QgaGlkbF9zdHJpbmcmIGRldmljZU5hbWUsIHN0ZDo6c21hdGNoJiBzbSkgeworICAgICAgICBzdGQ6OnJlZ2V4IGUoa0RldmljZU5hbWVSRSk7CisgICAgICAgIHN0ZDo6c3RyaW5nIGRldmljZU5hbWVTdGQoZGV2aWNlTmFtZS5jX3N0cigpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6cmVnZXhfbWF0Y2goZGV2aWNlTmFtZVN0ZCwgc20sIGUpOworICAgIH0KKworICAgIGludCBnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKGNvbnN0IGhpZGxfc3RyaW5nJiBkZXZpY2VOYW1lKSB7CisgICAgICAgIHN0ZDo6c21hdGNoIHNtOworICAgICAgICBib29sIG1hdGNoID0gbWF0Y2hEZXZpY2VOYW1lKGRldmljZU5hbWUsIHNtKTsKKyAgICAgICAgaWYgKCFtYXRjaCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHN0ZDo6c3RyaW5nIHZlcnNpb24gPSBzbVsxXS5zdHIoKTsKKyAgICAgICAgaWYgKHZlcnNpb24uY29tcGFyZShrSEFMM18yKSA9PSAwKSB7CisgICAgICAgICAgICAvLyBtYXliZSBzd2l0Y2hlZCB0byAzLjQgb3IgZGVmaW5lIHRoZSBoaWRsIHZlcnNpb24gZW51bWxhdGVyCisgICAgICAgICAgICByZXR1cm4gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzI7CisgICAgICAgIH0gZWxzZSBpZiAodmVyc2lvbi5jb21wYXJlKGtIQUwxXzApID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBTdGF0dXMgbWFwVG9TdGF0dXMoOjphbmRyb2lkOjpzdGF0dXNfdCBzKSAgeworICAgICAgICBzd2l0Y2gocykgeworICAgICAgICAgICAgY2FzZSA6OmFuZHJvaWQ6Ok9LOgorICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6Ok9LIDsKKyAgICAgICAgICAgIGNhc2UgOjphbmRyb2lkOjpCQURfVkFMVUU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCA7CisgICAgICAgICAgICBjYXNlIC1FQlVTWToKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpDQU1FUkFfSU5fVVNFOworICAgICAgICAgICAgY2FzZSAtRVVTRVJTOgorICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6Ok1BWF9DQU1FUkFTX0lOX1VTRTsKKyAgICAgICAgICAgIGNhc2UgOjphbmRyb2lkOjpVTktOT1dOX1RSQU5TQUNUSU9OOgorICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOworICAgICAgICAgICAgY2FzZSA6OmFuZHJvaWQ6OklOVkFMSURfT1BFUkFUSU9OOgorICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgICAgICAgICAgY2FzZSA6OmFuZHJvaWQ6OkRFQURfT0JKRUNUOgorICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQ7CisgICAgICAgIH0KKyAgICAgICAgQUxPR1coIlVuZXhwZWN0ZWQgSEFMIHN0YXR1cyBjb2RlICVkIiwgcyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgIH0KK30KKworLy8gVGVzdCBlbnZpcm9ubWVudCBmb3IgY2FtZXJhCitjbGFzcyBDYW1lcmFIaWRsRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CitwdWJsaWM6CisgICAgLy8gZ2V0IHRoZSB0ZXN0IGVudmlyb25tZW50IHNpbmdsZXRvbgorICAgIHN0YXRpYyBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIEluc3RhbmNlKCkgeworICAgICAgICBzdGF0aWMgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBpbnN0YW5jZSA9IG5ldyBDYW1lcmFIaWRsRW52aXJvbm1lbnQ7CisgICAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZTsKKworICAgIHNwPElDYW1lcmFQcm92aWRlcj4gbVByb3ZpZGVyOworCitwcml2YXRlOgorICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCgpIHt9CisKKyAgICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKENhbWVyYUhpZGxFbnZpcm9ubWVudCk7Cit9OworCit2b2lkIENhbWVyYUhpZGxFbnZpcm9ubWVudDo6U2V0VXAoKSB7CisgICAgLy8gVE9ETzogdGVzdCB0aGUgYmluZGVyaXplZCBtb2RlCisgICAgbVByb3ZpZGVyID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUNhbWVyYVByb3ZpZGVyPihrQ2FtZXJhUGFzc3Rocm91Z2hTZXJ2aWNlTmFtZSk7CisgICAgLy8gVE9ETzogaGFuZGxlIHRoZSBkZXZpY2UgZG9lc24ndCBoYXZlIGFueSBjYW1lcmEgY2FzZQorICAgIEFMT0dJX0lGKG1Qcm92aWRlciwgInByb3ZpZGVyIGlzIG5vdCBudWxscHRyLCAlcCIsIG1Qcm92aWRlci5nZXQoKSk7CisgICAgQVNTRVJUX05FKG1Qcm92aWRlciwgbnVsbHB0cik7Cit9CisKK3ZvaWQgQ2FtZXJhSGlkbEVudmlyb25tZW50OjpUZWFyRG93bigpIHsKKyAgICBBTE9HSSgiVGVhckRvd24gQ2FtZXJhSGlkbEVudmlyb25tZW50Iik7Cit9CisKK3N0cnVjdCBCdWZmZXJJdGVtSGFuZGVyOiBwdWJsaWMgQnVmZmVySXRlbUNvbnN1bWVyOjpGcmFtZUF2YWlsYWJsZUxpc3RlbmVyIHsKKyAgICBCdWZmZXJJdGVtSGFuZGVyKHdwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gY29uc3VtZXIpIDogbUNvbnN1bWVyKGNvbnN1bWVyKSB7fQorCisgICAgdm9pZCBvbkZyYW1lQXZhaWxhYmxlKGNvbnN0IGFuZHJvaWQ6OkJ1ZmZlckl0ZW0mKSBvdmVycmlkZSB7CisgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gY29uc3VtZXIgPSBtQ29uc3VtZXIucHJvbW90ZSgpOworICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgY29uc3VtZXIuZ2V0KCkpOworCisgICAgICAgIGFuZHJvaWQ6OkJ1ZmZlckl0ZW0gYnVmZmVyOworICAgICAgICBBU1NFUlRfRVEoYW5kcm9pZDo6T0ssIGNvbnN1bWVyLT5hY3F1aXJlQnVmZmVyKCZidWZmZXIsIDApKTsKKyAgICAgICAgQVNTRVJUX0VRKGFuZHJvaWQ6Ok9LLCBjb25zdW1lci0+cmVsZWFzZUJ1ZmZlcihidWZmZXIpKTsKKyAgICB9CisKKyBwcml2YXRlOgorICAgIHdwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gbUNvbnN1bWVyOworfTsKKworc3RydWN0IFByZXZpZXdXaW5kb3dDYiA6IHB1YmxpYyBJQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrIHsKKyAgICBQcmV2aWV3V2luZG93Q2Ioc3A8QU5hdGl2ZVdpbmRvdz4gYW53KSA6IG1QcmV2aWV3V2lkdGgoMCksCisgICAgICAgICAgICBtUHJldmlld0hlaWdodCgwKSwgbUZvcm1hdCgwKSwgbVByZXZpZXdVc2FnZSgwKSwKKyAgICAgICAgICAgIG1QcmV2aWV3U3dhcEludGVydmFsKC0xKSwgbUNyb3B7LTEsIC0xLCAtMSwgLTF9LCBtQW53KGFudykge30KKworICAgIHVzaW5nIGRlcXVldWVCdWZmZXJfY2IgPQorICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKFN0YXR1cyBzdGF0dXMsIHVpbnQ2NF90IGJ1ZmZlcklkLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX2hhbmRsZSYgYnVmZmVyLCB1aW50MzJfdCBzdHJpZGUpPjsKKyAgICBSZXR1cm48dm9pZD4gZGVxdWV1ZUJ1ZmZlcihkZXF1ZXVlQnVmZmVyX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IGVucXVldWVCdWZmZXIodWludDY0X3QgYnVmZmVySWQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gY2FuY2VsQnVmZmVyKHVpbnQ2NF90IGJ1ZmZlcklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldEJ1ZmZlckNvdW50KHVpbnQzMl90IGNvdW50KSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldEJ1ZmZlcnNHZW9tZXRyeSh1aW50MzJfdCB3LAorICAgICAgICAgICAgdWludDMyX3QgaCwgUGl4ZWxGb3JtYXQgZm9ybWF0KSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldENyb3AoaW50MzJfdCBsZWZ0LCBpbnQzMl90IHRvcCwKKyAgICAgICAgICAgIGludDMyX3QgcmlnaHQsIGludDMyX3QgYm90dG9tKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldFVzYWdlKEJ1ZmZlclVzYWdlIHVzYWdlKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldFN3YXBJbnRlcnZhbChpbnQzMl90IGludGVydmFsKSBvdmVycmlkZTsKKworICAgIHVzaW5nIGdldE1pblVuZGVxdWV1ZWRCdWZmZXJDb3VudF9jYiA9CisgICAgICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoU3RhdHVzIHN0YXR1cywgdWludDMyX3QgY291bnQpPjsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TWluVW5kZXF1ZXVlZEJ1ZmZlckNvdW50KAorICAgICAgICAgICAgZ2V0TWluVW5kZXF1ZXVlZEJ1ZmZlckNvdW50X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldFRpbWVzdGFtcChpbnQ2NF90IHRpbWVzdGFtcCkgb3ZlcnJpZGU7CisKKyBwcml2YXRlOgorICAgIHN0cnVjdCBCdWZmZXJIYXNoZXIgeworICAgICAgICBzaXplX3Qgb3BlcmF0b3IoKShjb25zdCBidWZmZXJfaGFuZGxlX3QmIGJ1ZikgY29uc3QgeworICAgICAgICAgICAgaWYgKGJ1ZiA9PSBudWxscHRyKQorICAgICAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgICAgICBzaXplX3QgcmVzdWx0ID0gMTsKKyAgICAgICAgICAgIHJlc3VsdCA9IDMxICogcmVzdWx0ICsgYnVmLT5udW1GZHM7CisgICAgICAgICAgICByZXN1bHQgPSAzMSAqIHJlc3VsdCArIGJ1Zi0+bnVtSW50czsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBidWYtPm51bUZkcyArIGJ1Zi0+bnVtSW50czsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAzMSAqIHJlc3VsdCArIGJ1Zi0+ZGF0YVtpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9OworCisgICAgc3RydWN0IEJ1ZmZlckNvbXBhcmF0b3IgeworICAgICAgICBib29sIG9wZXJhdG9yKCkoY29uc3QgYnVmZmVyX2hhbmRsZV90JiBidWYxLAorICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlcl9oYW5kbGVfdCYgYnVmMikgY29uc3QgeworICAgICAgICAgICAgaWYgKChidWYxLT5udW1GZHMgPT0gYnVmMi0+bnVtRmRzKSAmJgorICAgICAgICAgICAgICAgICAgICAoYnVmMS0+bnVtSW50cyA9PSBidWYyLT5udW1JbnRzKSkgeworICAgICAgICAgICAgICAgIGludCBsZW5ndGggPSBidWYxLT5udW1GZHMgKyBidWYxLT5udW1JbnRzOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJ1ZjEtPmRhdGFbaV0gIT0gYnVmMi0+ZGF0YVtpXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfTsKKworICAgIHN0ZDo6cGFpcjxib29sLCB1aW50NjRfdD4gZ2V0QnVmZmVySWQoQU5hdGl2ZVdpbmRvd0J1ZmZlciogYW5iKTsKKyAgICB2b2lkIGNsZWFudXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKKworICAgIHN0ZDo6bXV0ZXggbUJ1ZmZlcklkTWFwTG9jazsgLy8gcHJvdGVjdGluZyBtQnVmZmVySWRNYXAgYW5kIG1OZXh0QnVmZmVySWQKKyAgICB0eXBlZGVmIHN0ZDo6dW5vcmRlcmVkX21hcDxjb25zdCBidWZmZXJfaGFuZGxlX3QsIHVpbnQ2NF90LAorICAgICAgICAgICAgQnVmZmVySGFzaGVyLCBCdWZmZXJDb21wYXJhdG9yPiBCdWZmZXJJZE1hcDsKKworICAgIEJ1ZmZlcklkTWFwIG1CdWZmZXJJZE1hcDsgLy8gc3RyZWFtIElEIC0+IHBlciBzdHJlYW0gYnVmZmVyIElEIG1hcAorICAgIHN0ZDo6dW5vcmRlcmVkX21hcDx1aW50NjRfdCwgQU5hdGl2ZVdpbmRvd0J1ZmZlcio+IG1SZXZlcnNlZEJ1Zk1hcDsKKyAgICB1aW50NjRfdCBtTmV4dEJ1ZmZlcklkID0gMTsKKworICAgIHVpbnQzMl90IG1QcmV2aWV3V2lkdGgsIG1QcmV2aWV3SGVpZ2h0OworICAgIGludCBtRm9ybWF0LCBtUHJldmlld1VzYWdlOworICAgIGludDMyX3QgbVByZXZpZXdTd2FwSW50ZXJ2YWw7CisgICAgYW5kcm9pZF9uYXRpdmVfcmVjdF90IG1Dcm9wOworICAgIHNwPEFOYXRpdmVXaW5kb3c+IG1Bbnc7ICAgICAvL05hdGl2ZSB3aW5kb3cgcmVmZXJlbmNlCit9OworCitzdGQ6OnBhaXI8Ym9vbCwgdWludDY0X3Q+IFByZXZpZXdXaW5kb3dDYjo6Z2V0QnVmZmVySWQoCisgICAgICAgIEFOYXRpdmVXaW5kb3dCdWZmZXIqIGFuYikgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1CdWZmZXJJZE1hcExvY2spOworCisgICAgYnVmZmVyX2hhbmRsZV90JiBidWYgPSBhbmItPmhhbmRsZTsKKyAgICBhdXRvIGl0ID0gbUJ1ZmZlcklkTWFwLmZpbmQoYnVmKTsKKyAgICBpZiAoaXQgPT0gbUJ1ZmZlcklkTWFwLmVuZCgpKSB7CisgICAgICAgIHVpbnQ2NF90IGJ1ZklkID0gbU5leHRCdWZmZXJJZCsrOworICAgICAgICBtQnVmZmVySWRNYXBbYnVmXSA9IGJ1ZklkOworICAgICAgICBtUmV2ZXJzZWRCdWZNYXBbYnVmSWRdID0gYW5iOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIodHJ1ZSwgYnVmSWQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihmYWxzZSwgaXQtPnNlY29uZCk7CisgICAgfQorfQorCit2b2lkIFByZXZpZXdXaW5kb3dDYjo6Y2xlYW51cENpcmN1bGF0aW5nQnVmZmVycygpIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQnVmZmVySWRNYXBMb2NrKTsKKyAgICBtQnVmZmVySWRNYXAuY2xlYXIoKTsKKyAgICBtUmV2ZXJzZWRCdWZNYXAuY2xlYXIoKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXZpZXdXaW5kb3dDYjo6ZGVxdWV1ZUJ1ZmZlcihkZXF1ZXVlQnVmZmVyX2NiIF9oaWRsX2NiKSB7CisgICAgQU5hdGl2ZVdpbmRvd0J1ZmZlciogYW5iOworICAgIGF1dG8gcmMgPSBuYXRpdmVfd2luZG93X2RlcXVldWVfYnVmZmVyX2FuZF93YWl0KG1BbncuZ2V0KCksICZhbmIpOworICAgIHVpbnQ2NF90IGJ1ZmZlcklkID0gMDsKKyAgICB1aW50MzJfdCBzdHJpZGUgPSAwOworICAgIGhpZGxfaGFuZGxlIGJ1ZiA9IG51bGxwdHI7CisgICAgaWYgKHJjID09IDo6YW5kcm9pZDo6T0spIHsKKyAgICAgICAgYXV0byBwYWlyID0gZ2V0QnVmZmVySWQoYW5iKTsKKyAgICAgICAgYnVmID0gKHBhaXIuZmlyc3QpID8gYW5iLT5oYW5kbGUgOiBudWxscHRyOworICAgICAgICBidWZmZXJJZCA9IHBhaXIuc2Vjb25kOworICAgICAgICBzdHJpZGUgPSBhbmItPnN0cmlkZTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihtYXBUb1N0YXR1cyhyYyksIGJ1ZmZlcklkLCBidWYsIHN0cmlkZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFN0YXR1cz4gUHJldmlld1dpbmRvd0NiOjplbnF1ZXVlQnVmZmVyKHVpbnQ2NF90IGJ1ZmZlcklkKSB7CisgICAgaWYgKG1SZXZlcnNlZEJ1Zk1hcC5jb3VudChidWZmZXJJZCkgPT0gMCkgeworICAgICAgICBBTE9HRSgiJXM6IGJ1ZmZlcklkICUiIFBSSXU2NCAiIG5vdCBmb3VuZCIsIF9fRlVOQ1RJT05fXywgYnVmZmVySWQpOworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKyAgICByZXR1cm4gbWFwVG9TdGF0dXMobUFudy0+cXVldWVCdWZmZXIobUFudy5nZXQoKSwKKyAgICAgICAgICAgIG1SZXZlcnNlZEJ1Zk1hcC5hdChidWZmZXJJZCksIC0xKSk7Cit9CisKK1JldHVybjxTdGF0dXM+IFByZXZpZXdXaW5kb3dDYjo6Y2FuY2VsQnVmZmVyKHVpbnQ2NF90IGJ1ZmZlcklkKSB7CisgICAgaWYgKG1SZXZlcnNlZEJ1Zk1hcC5jb3VudChidWZmZXJJZCkgPT0gMCkgeworICAgICAgICBBTE9HRSgiJXM6IGJ1ZmZlcklkICUiIFBSSXU2NCAiIG5vdCBmb3VuZCIsIF9fRlVOQ1RJT05fXywgYnVmZmVySWQpOworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKyAgICByZXR1cm4gbWFwVG9TdGF0dXMobUFudy0+Y2FuY2VsQnVmZmVyKG1BbncuZ2V0KCksCisgICAgICAgICAgICBtUmV2ZXJzZWRCdWZNYXAuYXQoYnVmZmVySWQpLCAtMSkpOworfQorCitSZXR1cm48U3RhdHVzPiBQcmV2aWV3V2luZG93Q2I6OnNldEJ1ZmZlckNvdW50KHVpbnQzMl90IGNvdW50KSB7CisgICAgaWYgKG1BbncuZ2V0KCkgIT0gbnVsbHB0cikgeworICAgICAgICAvLyBXQVIgZm9yIGIvMjcwMzk3NzUKKyAgICAgICAgbmF0aXZlX3dpbmRvd19hcGlfZGlzY29ubmVjdChtQW53LmdldCgpLCBOQVRJVkVfV0lORE9XX0FQSV9DQU1FUkEpOworICAgICAgICBuYXRpdmVfd2luZG93X2FwaV9jb25uZWN0KG1BbncuZ2V0KCksIE5BVElWRV9XSU5ET1dfQVBJX0NBTUVSQSk7CisgICAgICAgIGlmIChtUHJldmlld1dpZHRoICE9IDApIHsKKyAgICAgICAgICAgIG5hdGl2ZV93aW5kb3dfc2V0X2J1ZmZlcnNfZGltZW5zaW9ucyhtQW53LmdldCgpLAorICAgICAgICAgICAgICAgICAgICBtUHJldmlld1dpZHRoLCBtUHJldmlld0hlaWdodCk7CisgICAgICAgICAgICBuYXRpdmVfd2luZG93X3NldF9idWZmZXJzX2Zvcm1hdChtQW53LmdldCgpLCBtRm9ybWF0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAobVByZXZpZXdVc2FnZSAhPSAwKSB7CisgICAgICAgICAgICBuYXRpdmVfd2luZG93X3NldF91c2FnZShtQW53LmdldCgpLCBtUHJldmlld1VzYWdlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobVByZXZpZXdTd2FwSW50ZXJ2YWwgPj0gMCkgeworICAgICAgICAgICAgbUFudy0+c2V0U3dhcEludGVydmFsKG1BbncuZ2V0KCksIG1QcmV2aWV3U3dhcEludGVydmFsKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobUNyb3AubGVmdCA+PSAwKSB7CisgICAgICAgICAgICBuYXRpdmVfd2luZG93X3NldF9jcm9wKG1BbncuZ2V0KCksICYobUNyb3ApKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gcmMgPSBuYXRpdmVfd2luZG93X3NldF9idWZmZXJfY291bnQobUFudy5nZXQoKSwgY291bnQpOworICAgIGlmIChyYyA9PSA6OmFuZHJvaWQ6Ok9LKSB7CisgICAgICAgIGNsZWFudXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKKyAgICB9CisKKyAgICByZXR1cm4gbWFwVG9TdGF0dXMocmMpOworfQorCitSZXR1cm48U3RhdHVzPiBQcmV2aWV3V2luZG93Q2I6OnNldEJ1ZmZlcnNHZW9tZXRyeSh1aW50MzJfdCB3LCB1aW50MzJfdCBoLAorICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQpIHsKKyAgICBhdXRvIHJjID0gbmF0aXZlX3dpbmRvd19zZXRfYnVmZmVyc19kaW1lbnNpb25zKG1BbncuZ2V0KCksIHcsIGgpOworICAgIGlmIChyYyA9PSA6OmFuZHJvaWQ6Ok9LKSB7CisgICAgICAgIG1QcmV2aWV3V2lkdGggPSB3OworICAgICAgICBtUHJldmlld0hlaWdodCA9IGg7CisgICAgICAgIHJjID0gbmF0aXZlX3dpbmRvd19zZXRfYnVmZmVyc19mb3JtYXQobUFudy5nZXQoKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGZvcm1hdCkpOworICAgICAgICBpZiAocmMgPT0gOjphbmRyb2lkOjpPSykgeworICAgICAgICAgICAgbUZvcm1hdCA9IHN0YXRpY19jYXN0PGludD4oZm9ybWF0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBtYXBUb1N0YXR1cyhyYyk7Cit9CisKK1JldHVybjxTdGF0dXM+IFByZXZpZXdXaW5kb3dDYjo6c2V0Q3JvcChpbnQzMl90IGxlZnQsIGludDMyX3QgdG9wLAorICAgICAgICBpbnQzMl90IHJpZ2h0LCBpbnQzMl90IGJvdHRvbSkgeworICAgIGFuZHJvaWRfbmF0aXZlX3JlY3RfdCBjcm9wID0geyBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20gfTsKKyAgICBhdXRvIHJjID0gbmF0aXZlX3dpbmRvd19zZXRfY3JvcChtQW53LmdldCgpLCAmY3JvcCk7CisgICAgaWYgKHJjID09IDo6YW5kcm9pZDo6T0spIHsKKyAgICAgICAgbUNyb3AgPSBjcm9wOworICAgIH0KKyAgICByZXR1cm4gbWFwVG9TdGF0dXMocmMpOworfQorCitSZXR1cm48U3RhdHVzPiBQcmV2aWV3V2luZG93Q2I6OnNldFVzYWdlKEJ1ZmZlclVzYWdlIHVzYWdlKSB7CisgICAgYXV0byByYyA9IG5hdGl2ZV93aW5kb3dfc2V0X3VzYWdlKG1BbncuZ2V0KCksIHN0YXRpY19jYXN0PGludD4odXNhZ2UpKTsKKyAgICBpZiAocmMgPT0gOjphbmRyb2lkOjpPSykgeworICAgICAgICBtUHJldmlld1VzYWdlID0gIHN0YXRpY19jYXN0PGludD4odXNhZ2UpOworICAgIH0KKyAgICByZXR1cm4gbWFwVG9TdGF0dXMocmMpOworfQorCitSZXR1cm48U3RhdHVzPiBQcmV2aWV3V2luZG93Q2I6OnNldFN3YXBJbnRlcnZhbChpbnQzMl90IGludGVydmFsKSB7CisgICAgYXV0byByYyA9IG1BbnctPnNldFN3YXBJbnRlcnZhbChtQW53LmdldCgpLCBpbnRlcnZhbCk7CisgICAgaWYgKHJjID09IDo6YW5kcm9pZDo6T0spIHsKKyAgICAgICAgbVByZXZpZXdTd2FwSW50ZXJ2YWwgPSBpbnRlcnZhbDsKKyAgICB9CisgICAgcmV0dXJuIG1hcFRvU3RhdHVzKHJjKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXZpZXdXaW5kb3dDYjo6Z2V0TWluVW5kZXF1ZXVlZEJ1ZmZlckNvdW50KAorICAgICAgICBnZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnRfY2IgX2hpZGxfY2IpIHsKKyAgICBpbnQgY291bnQgPSAwOworICAgIGF1dG8gcmMgPSBtQW53LT5xdWVyeShtQW53LmdldCgpLAorICAgICAgICAgICAgTkFUSVZFX1dJTkRPV19NSU5fVU5ERVFVRVVFRF9CVUZGRVJTLCAmY291bnQpOworICAgIF9oaWRsX2NiKG1hcFRvU3RhdHVzKHJjKSwgY291bnQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxTdGF0dXM+IFByZXZpZXdXaW5kb3dDYjo6c2V0VGltZXN0YW1wKGludDY0X3QgdGltZXN0YW1wKSB7CisgICAgcmV0dXJuIG1hcFRvU3RhdHVzKG5hdGl2ZV93aW5kb3dfc2V0X2J1ZmZlcnNfdGltZXN0YW1wKG1BbncuZ2V0KCksCisgICAgICAgICAgICB0aW1lc3RhbXApKTsKK30KKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgY2FtZXJhIEhJREwgSEFMLgorY2xhc3MgQ2FtZXJhSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHt9CisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgc3RydWN0IEVtcHR5RGV2aWNlQ2IgOiBwdWJsaWMgSUNhbWVyYURldmljZUNhbGxiYWNrIHsKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gcHJvY2Vzc0NhcHR1cmVSZXN1bHQoY29uc3QgaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4mIC8qcmVzdWx0cyovKSBvdmVycmlkZSB7CisgICAgICAgICAgICBBTE9HSSgicHJvY2Vzc0NhcHR1cmVSZXN1bHQgY2FsbGJhY2siKTsKKyAgICAgICAgICAgIEFERF9GQUlMVVJFKCk7IC8vIEVtcHR5IGNhbGxiYWNrIHNob3VsZCBub3QgcmVhY2ggaGVyZQorICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG5vdGlmeShjb25zdCBoaWRsX3ZlYzxOb3RpZnlNc2c+JiAvKm1zZ3MqLykgb3ZlcnJpZGUgeworICAgICAgICAgICAgQUxPR0koIm5vdGlmeSBjYWxsYmFjayIpOworICAgICAgICAgICAgQUREX0ZBSUxVUkUoKTsgLy8gRW1wdHkgY2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCBoZXJlCisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisgICAgfTsKKworICAgIHN0cnVjdCBEZXZpY2VDYiA6IHB1YmxpYyBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sgeworICAgICAgICBEZXZpY2VDYihDYW1lcmFIaWRsVGVzdCAqcGFyZW50KSA6IG1QYXJlbnQocGFyZW50KSB7fQorICAgICAgICBSZXR1cm48dm9pZD4gcHJvY2Vzc0NhcHR1cmVSZXN1bHQoY29uc3QgaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4mIHJlc3VsdHMpIG92ZXJyaWRlOworICAgICAgICBSZXR1cm48dm9pZD4gbm90aWZ5KGNvbnN0IGhpZGxfdmVjPE5vdGlmeU1zZz4mIG1zZ3MpIG92ZXJyaWRlOworCisgICAgIHByaXZhdGU6CisgICAgICAgIENhbWVyYUhpZGxUZXN0ICptUGFyZW50OyAgICAgICAgICAgICAgIC8vIFBhcmVudCBvYmplY3QKKyAgICB9OworCisgICAgc3RydWN0IFRvcmNoUHJvdmlkZXJDYiA6IHB1YmxpYyBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjayB7CisgICAgICAgIFRvcmNoUHJvdmlkZXJDYihDYW1lcmFIaWRsVGVzdCAqcGFyZW50KSA6IG1QYXJlbnQocGFyZW50KSB7fQorICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBjYW1lcmFEZXZpY2VTdGF0dXNDaGFuZ2UoCisgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmLCBDYW1lcmFEZXZpY2VTdGF0dXMpIG92ZXJyaWRlIHsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiB0b3JjaE1vZGVTdGF0dXNDaGFuZ2UoCisgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmLCBUb3JjaE1vZGVTdGF0dXMgbmV3U3RhdHVzKSBvdmVycmlkZSB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbChtUGFyZW50LT5tVG9yY2hMb2NrKTsKKyAgICAgICAgICAgIG1QYXJlbnQtPm1Ub3JjaFN0YXR1cyA9IG5ld1N0YXR1czsKKyAgICAgICAgICAgIG1QYXJlbnQtPm1Ub3JjaENvbmQubm90aWZ5X29uZSgpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgIHByaXZhdGU6CisgICAgICAgIENhbWVyYUhpZGxUZXN0ICptUGFyZW50OyAgICAgICAgICAgICAgIC8vIFBhcmVudCBvYmplY3QKKyAgICB9OworCisgICAgc3RydWN0IENhbWVyYTFEZXZpY2VDYiA6CisgICAgICAgICAgICBwdWJsaWMgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2VDYWxsYmFjayB7CisgICAgICAgIENhbWVyYTFEZXZpY2VDYihDYW1lcmFIaWRsVGVzdCAqcGFyZW50KSA6IG1QYXJlbnQocGFyZW50KSB7fQorCisgICAgICAgIFJldHVybjx2b2lkPiBub3RpZnlDYWxsYmFjayhOb3RpZnlDYWxsYmFja01zZyBtc2dUeXBlLAorICAgICAgICAgICAgICAgIGludDMyX3QgZXh0MSwgaW50MzJfdCBleHQyKSBvdmVycmlkZTsKKworICAgICAgICBSZXR1cm48dWludDMyX3Q+IHJlZ2lzdGVyTWVtb3J5KGNvbnN0IGhpZGxfaGFuZGxlJiBkZXNjcmlwdG9yLAorICAgICAgICAgICAgICAgIHVpbnQzMl90IGJ1ZmZlclNpemUsIHVpbnQzMl90IGJ1ZmZlckNvdW50KSBvdmVycmlkZTsKKworICAgICAgICBSZXR1cm48dm9pZD4gdW5yZWdpc3Rlck1lbW9yeSh1aW50MzJfdCBtZW1JZCkgb3ZlcnJpZGU7CisKKyAgICAgICAgUmV0dXJuPHZvaWQ+IGRhdGFDYWxsYmFjayhEYXRhQ2FsbGJhY2tNc2cgbXNnVHlwZSwKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBkYXRhLCB1aW50MzJfdCBidWZmZXJJbmRleCwKKyAgICAgICAgICAgICAgICBjb25zdCBDYW1lcmFGcmFtZU1ldGFkYXRhJiBtZXRhZGF0YSkgb3ZlcnJpZGU7CisKKyAgICAgICAgUmV0dXJuPHZvaWQ+IGRhdGFDYWxsYmFja1RpbWVzdGFtcChEYXRhQ2FsbGJhY2tNc2cgbXNnVHlwZSwKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBkYXRhLCB1aW50MzJfdCBidWZmZXJJbmRleCwKKyAgICAgICAgICAgICAgICBpbnQ2NF90IHRpbWVzdGFtcCkgb3ZlcnJpZGU7CisKKyAgICAgICAgUmV0dXJuPHZvaWQ+IGhhbmRsZUNhbGxiYWNrVGltZXN0YW1wKERhdGFDYWxsYmFja01zZyBtc2dUeXBlLAorICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfaGFuZGxlJiBmcmFtZURhdGEsdWludDMyX3QgZGF0YSwKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBidWZmZXJJbmRleCwgaW50NjRfdCB0aW1lc3RhbXApIG92ZXJyaWRlOworCisgICAgICAgIFJldHVybjx2b2lkPiBoYW5kbGVDYWxsYmFja1RpbWVzdGFtcEJhdGNoKERhdGFDYWxsYmFja01zZyBtc2dUeXBlLAorICAgICAgICAgICAgICAgIGNvbnN0IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPEhhbmRsZVRpbWVzdGFtcE1lc3NhZ2U+JiBiYXRjaCkgb3ZlcnJpZGU7CisKKworICAgICBwcml2YXRlOgorICAgICAgICBDYW1lcmFIaWRsVGVzdCAqbVBhcmVudDsgICAgICAgICAgICAgICAvLyBQYXJlbnQgb2JqZWN0CisgICAgfTsKKworICAgIHZvaWQgb3BlbkNhbWVyYURldmljZShjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSxjb25zdCBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiwKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAqZGV2aWNlIC8qb3V0Ki8pOworICAgIHZvaWQgc2V0dXBQcmV2aWV3V2luZG93KAorICAgICAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UsCisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+ICpidWZmZXJJdGVtQ29uc3VtZXIgLypvdXQqLywKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+ICpidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworICAgIHZvaWQgc3RvcFByZXZpZXdBbmRDbG9zZSgKKyAgICAgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlKTsKKyAgICB2b2lkIHN0YXJ0UHJldmlldygKKyAgICAgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlKTsKKyAgICB2b2lkIGVuYWJsZU1zZ1R5cGUodW5zaWduZWQgaW50IG1zZ1R5cGUsCisgICAgICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSk7CisgICAgdm9pZCBkaXNhYmxlTXNnVHlwZSh1bnNpZ25lZCBpbnQgbXNnVHlwZSwKKyAgICAgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlKTsKKyAgICB2b2lkIGdldFBhcmFtZXRlcnMoCisgICAgICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSwKKyAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnMgKmNhbWVyYVBhcmFtcyAvKm91dCovKTsKKyAgICB2b2lkIHNldFBhcmFtZXRlcnMoCisgICAgICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSwKKyAgICAgICAgICAgIGNvbnN0IENhbWVyYVBhcmFtZXRlcnMgJmNhbWVyYVBhcmFtcyk7CisgICAgdm9pZCB3YWl0Rm9yRnJhbWVMb2NrZWQoRGF0YUNhbGxiYWNrTXNnIG1zZ0ZyYW1lLAorICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiAmbCk7CisgICAgdm9pZCBvcGVuRW1wdHlEZXZpY2VTZXNzaW9uKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLAorICAgICAgICAgICAgY29uc3QgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYsCisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gKnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV90ICoqc3RhdGljTWV0YSAvKm91dCovKTsKKyAgICB2b2lkIGNvbmZpZ3VyZVByZXZpZXdTdHJlYW0oY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsCisgICAgICAgICAgICBjb25zdCBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiwKKyAgICAgICAgICAgIGNvbnN0IEF2YWlsYWJsZVN0cmVhbSAqcHJldmlld1RocmVzaG9sZCwKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiAqc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgU3RyZWFtICpwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uICpoYWxTdHJlYW1Db25maWcgLypvdXQqLyk7CisgICAgc3RhdGljIFN0YXR1cyBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiAmb3V0cHV0U3RyZWFtcywKKyAgICAgICAgICAgIGNvbnN0IEF2YWlsYWJsZVN0cmVhbSAqdGhyZXNob2xkID0gbnVsbHB0cik7CisgICAgc3RhdGljIFN0YXR1cyBpc0NvbnN0cmFpbmVkTW9kZUF2YWlsYWJsZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSk7CisgICAgc3RhdGljIFN0YXR1cyBwaWNrQ29uc3RyYWluZWRNb2RlU2l6ZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSwKKyAgICAgICAgICAgIEF2YWlsYWJsZVN0cmVhbSAmaGZyU3RyZWFtKTsKKyAgICBzdGF0aWMgU3RhdHVzIGlzWlNMTW9kZUF2YWlsYWJsZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSk7CisgICAgc3RhdGljIFN0YXR1cyBnZXRaU0xJbnB1dE91dHB1dE1hcChjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSwKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVpTTElucHV0T3V0cHV0PiAmaW5wdXRPdXRwdXRNYXApOworICAgIHN0YXRpYyBTdGF0dXMgZmluZExhcmdlc3RTaXplKAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiAmc3RyZWFtU2l6ZXMsCisgICAgICAgICAgICBpbnQzMl90IGZvcm1hdCwgQXZhaWxhYmxlU3RyZWFtICZyZXN1bHQpOworICAgIHN0YXRpYyBTdGF0dXMgaXNBdXRvRm9jdXNNb2RlQXZhaWxhYmxlKAorICAgICAgICAgICAgOjphbmRyb2lkOjpDYW1lcmFQYXJhbWV0ZXJzICZjYW1lcmFQYXJhbXMsIGNvbnN0IGNoYXIgKm1vZGUpIDsKKworcHJvdGVjdGVkOgorICAgIHN0ZDo6bXV0ZXggbUxvY2s7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTeW5jaHJvbml6ZSBhY2Nlc3MgdG8gbWVtYmVyIHZhcmlhYmxlcworICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1SZXN1bHRDb25kaXRpb247ICAvLyBDb25kaXRpb24gdmFyaWFibGUgZm9yIGluY29taW5nIHJlc3VsdHMKKyAgICB1aW50MzJfdCBtUmVzdWx0RnJhbWVOdW1iZXI7ICAgICAgICAgICAgICAgLy8gRXhwZWN0ZWQgcmVzdWx0IGZyYW1lIG51bWJlcgorICAgIHN0ZDo6dmVjdG9yPFN0cmVhbUJ1ZmZlcj4gbVJlc3VsdEJ1ZmZlcnM7ICAvLyBIb2xkcyBzdHJlYW0gYnVmZmVycyBmcm9tIGNhcHR1cmUgcmVzdWx0CisgICAgc3RkOjp2ZWN0b3I8RXJyb3JNc2c+IG1FcnJvcnM7ICAgICAgICAgICAgIC8vIEhvbGRzIGluY29taW5nIGVycm9yIG5vdGlmaWNhdGlvbnMKKyAgICBEYXRhQ2FsbGJhY2tNc2cgbURhdGFNZXNzYWdlVHlwZVJlY2VpdmVkOyAgLy8gTW9zdCByZWNlbnQgbWVzc2FnZSB0eXBlIHJlY2VpdmVkIHRocm91Z2ggZGF0YSBjYWxsYmFja3MKKyAgICB1aW50MzJfdCBtVmlkZW9CdWZmZXJJbmRleDsgICAgICAgICAgICAgICAgLy8gQnVmZmVyIGluZGV4IG9mIHRoZSBtb3N0IHJlY2VudCB2aWRlbyBidWZmZXIKKyAgICB1aW50MzJfdCBtVmlkZW9EYXRhOyAgICAgICAgICAgICAgICAgICAgICAgLy8gQnVmZmVyIGRhdGEgb2YgdGhlIG1vc3QgcmVjZW50IHZpZGVvIGJ1ZmZlcgorICAgIGhpZGxfaGFuZGxlIG1WaWRlb05hdGl2ZUhhbmRsZTsgICAgICAgICAgICAvLyBNb3N0IHJlY2VudCB2aWRlbyBidWZmZXIgbmF0aXZlIGhhbmRsZQorICAgIE5vdGlmeUNhbGxiYWNrTXNnIG1Ob3RpZnlNZXNzYWdlOyAgICAgICAgICAvLyBDdXJyZW50IG5vdGlmaWNhdGlvbiBtZXNzYWdlCisKKyAgICBzdGQ6Om11dGV4IG1Ub3JjaExvY2s7ICAgICAgICAgICAgICAgICAgICAgLy8gU3luY2hyb25pemUgYWNjZXNzIHRvIHRvcmNoIHN0YXR1cworICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1Ub3JjaENvbmQ7ICAgICAgICAvLyBDb25kaXRpb24gdmFyaWFibGUgZm9yIHRvcmNoIHN0YXR1cworICAgIFRvcmNoTW9kZVN0YXR1cyBtVG9yY2hTdGF0dXM7ICAgICAgICAgICAgICAvLyBDdXJyZW50IHRvcmNoIHN0YXR1cworCisgICAgLy8gSG9sZHMgY2FtZXJhIHJlZ2lzdGVyZWQgYnVmZmVycworICAgIHN0ZDo6dW5vcmRlcmVkX21hcDx1aW50MzJfdCwgc3A8OjphbmRyb2lkOjpNZW1vcnlIZWFwQmFzZT4gPiBtTWVtb3J5UG9vbDsKK307CisKK1JldHVybjx2b2lkPiBDYW1lcmFIaWRsVGVzdDo6Q2FtZXJhMURldmljZUNiOjpub3RpZnlDYWxsYmFjaygKKyAgICAgICAgTm90aWZ5Q2FsbGJhY2tNc2cgbXNnVHlwZSwgaW50MzJfdCBleHQxIF9fdW51c2VkLAorICAgICAgICBpbnQzMl90IGV4dDIgX191bnVzZWQpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobVBhcmVudC0+bUxvY2spOworICAgIG1QYXJlbnQtPm1Ob3RpZnlNZXNzYWdlID0gbXNnVHlwZTsKKyAgICBtUGFyZW50LT5tUmVzdWx0Q29uZGl0aW9uLm5vdGlmeV9vbmUoKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx1aW50MzJfdD4gQ2FtZXJhSGlkbFRlc3Q6OkNhbWVyYTFEZXZpY2VDYjo6cmVnaXN0ZXJNZW1vcnkoCisgICAgICAgIGNvbnN0IGhpZGxfaGFuZGxlJiBkZXNjcmlwdG9yLCB1aW50MzJfdCBidWZmZXJTaXplLAorICAgICAgICB1aW50MzJfdCBidWZmZXJDb3VudCkgeworICAgIGlmIChkZXNjcmlwdG9yLT5udW1GZHMgIT0gMSkgeworICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJjYW1lcmEgbWVtb3J5IGRlc2NyaXB0b3IgaGFzIgorICAgICAgICAgICAgICAgICIgbnVtRmRzICIgPDwgIGRlc2NyaXB0b3ItPm51bUZkcyA8PCAiIChleHBlY3QgMSkiIDsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGlmIChkZXNjcmlwdG9yLT5kYXRhWzBdIDwgMCkgeworICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJjYW1lcmEgbWVtb3J5IGRlc2NyaXB0b3IgaGFzIgorICAgICAgICAgICAgICAgICIgRkQgIiA8PCBkZXNjcmlwdG9yLT5kYXRhWzBdIDw8ICIgKGV4cGVjdCA+PSAwKSI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHNwPDo6YW5kcm9pZDo6TWVtb3J5SGVhcEJhc2U+IHBvb2wgPSBuZXcgOjphbmRyb2lkOjpNZW1vcnlIZWFwQmFzZSgKKyAgICAgICAgICAgIGRlc2NyaXB0b3ItPmRhdGFbMF0sIGJ1ZmZlclNpemUqYnVmZmVyQ291bnQsIDAsIDApOworICAgIG1QYXJlbnQtPm1NZW1vcnlQb29sLmVtcGxhY2UocG9vbC0+Z2V0SGVhcElEKCksIHBvb2wpOworCisgICAgcmV0dXJuIHBvb2wtPmdldEhlYXBJRCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhSGlkbFRlc3Q6OkNhbWVyYTFEZXZpY2VDYjo6dW5yZWdpc3Rlck1lbW9yeSh1aW50MzJfdCBtZW1JZCkgeworICAgIGlmIChtUGFyZW50LT5tTWVtb3J5UG9vbC5jb3VudChtZW1JZCkgPT0gMCkgeworICAgICAgICBBTE9HRSgiJXM6IG1lbW9yeSBwb29sIElEICVkIG5vdCBmb3VuZCIsIF9fRlVOQ1RJT05fXywgbWVtSWQpOworICAgICAgICBBRERfRkFJTFVSRSgpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIG1QYXJlbnQtPm1NZW1vcnlQb29sLmVyYXNlKG1lbUlkKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhSGlkbFRlc3Q6OkNhbWVyYTFEZXZpY2VDYjo6ZGF0YUNhbGxiYWNrKAorICAgICAgICBEYXRhQ2FsbGJhY2tNc2cgbXNnVHlwZSBfX3VudXNlZCwgdWludDMyX3QgZGF0YSBfX3VudXNlZCwKKyAgICAgICAgdWludDMyX3QgYnVmZmVySW5kZXggX191bnVzZWQsCisgICAgICAgIGNvbnN0IENhbWVyYUZyYW1lTWV0YWRhdGEmIG1ldGFkYXRhIF9fdW51c2VkKSB7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1QYXJlbnQtPm1Mb2NrKTsKKyAgICBtUGFyZW50LT5tRGF0YU1lc3NhZ2VUeXBlUmVjZWl2ZWQgPSBtc2dUeXBlOworICAgIG1QYXJlbnQtPm1SZXN1bHRDb25kaXRpb24ubm90aWZ5X29uZSgpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYUhpZGxUZXN0OjpDYW1lcmExRGV2aWNlQ2I6OmRhdGFDYWxsYmFja1RpbWVzdGFtcCgKKyAgICAgICAgRGF0YUNhbGxiYWNrTXNnIG1zZ1R5cGUsIHVpbnQzMl90IGRhdGEsCisgICAgICAgIHVpbnQzMl90IGJ1ZmZlckluZGV4LCBpbnQ2NF90IHRpbWVzdGFtcCBfX3VudXNlZCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtUGFyZW50LT5tTG9jayk7CisgICAgbVBhcmVudC0+bURhdGFNZXNzYWdlVHlwZVJlY2VpdmVkID0gbXNnVHlwZTsKKyAgICBtUGFyZW50LT5tVmlkZW9CdWZmZXJJbmRleCA9IGJ1ZmZlckluZGV4OworICAgIGlmIChtUGFyZW50LT5tTWVtb3J5UG9vbC5jb3VudChkYXRhKSA9PSAwKSB7CisgICAgICAgIEFERF9GQUlMVVJFKCkgPDwgIm1lbW9yeSBwb29sIElEICIgPDwgZGF0YSA8PCAibm90IGZvdW5kIjsKKyAgICB9CisgICAgbVBhcmVudC0+bVZpZGVvRGF0YSA9IGRhdGE7CisgICAgbVBhcmVudC0+bVJlc3VsdENvbmRpdGlvbi5ub3RpZnlfb25lKCk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhSGlkbFRlc3Q6OkNhbWVyYTFEZXZpY2VDYjo6aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAoCisgICAgICAgIERhdGFDYWxsYmFja01zZyBtc2dUeXBlLCBjb25zdCBoaWRsX2hhbmRsZSYgZnJhbWVEYXRhLAorICAgICAgICB1aW50MzJfdCBkYXRhIF9fdW51c2VkLCB1aW50MzJfdCBidWZmZXJJbmRleCwKKyAgICAgICAgaW50NjRfdCB0aW1lc3RhbXAgX191bnVzZWQpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobVBhcmVudC0+bUxvY2spOworICAgIG1QYXJlbnQtPm1EYXRhTWVzc2FnZVR5cGVSZWNlaXZlZCA9IG1zZ1R5cGU7CisgICAgbVBhcmVudC0+bVZpZGVvQnVmZmVySW5kZXggPSBidWZmZXJJbmRleDsKKyAgICBpZiAobVBhcmVudC0+bU1lbW9yeVBvb2wuY291bnQoZGF0YSkgPT0gMCkgeworICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJtZW1vcnkgcG9vbCBJRCAiIDw8IGRhdGEgPDwgIiBub3QgZm91bmQiOworICAgIH0KKyAgICBtUGFyZW50LT5tVmlkZW9EYXRhID0gZGF0YTsKKyAgICBtUGFyZW50LT5tVmlkZW9OYXRpdmVIYW5kbGUgPSBmcmFtZURhdGE7CisgICAgbVBhcmVudC0+bVJlc3VsdENvbmRpdGlvbi5ub3RpZnlfb25lKCk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhSGlkbFRlc3Q6OkNhbWVyYTFEZXZpY2VDYjo6aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXBCYXRjaCgKKyAgICAgICAgRGF0YUNhbGxiYWNrTXNnIG1zZ1R5cGUsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPEhhbmRsZVRpbWVzdGFtcE1lc3NhZ2U+JiBiYXRjaCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtUGFyZW50LT5tTG9jayk7CisgICAgZm9yIChhdXRvJiBtc2cgOiBiYXRjaCkgeworICAgICAgICBtUGFyZW50LT5tRGF0YU1lc3NhZ2VUeXBlUmVjZWl2ZWQgPSBtc2dUeXBlOworICAgICAgICBtUGFyZW50LT5tVmlkZW9CdWZmZXJJbmRleCA9IG1zZy5idWZmZXJJbmRleDsKKyAgICAgICAgaWYgKG1QYXJlbnQtPm1NZW1vcnlQb29sLmNvdW50KG1zZy5kYXRhKSA9PSAwKSB7CisgICAgICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJtZW1vcnkgcG9vbCBJRCAiIDw8IG1zZy5kYXRhIDw8ICIgbm90IGZvdW5kIjsKKyAgICAgICAgfQorICAgICAgICBtUGFyZW50LT5tVmlkZW9EYXRhID0gbXNnLmRhdGE7CisgICAgICAgIG1QYXJlbnQtPm1WaWRlb05hdGl2ZUhhbmRsZSA9IG1zZy5mcmFtZURhdGE7CisgICAgICAgIG1QYXJlbnQtPm1SZXN1bHRDb25kaXRpb24ubm90aWZ5X29uZSgpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhSGlkbFRlc3Q6OkRldmljZUNiOjpwcm9jZXNzQ2FwdHVyZVJlc3VsdCgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4mIHJlc3VsdHMpIHsKKyAgICBpZiAobnVsbHB0ciA9PSBtUGFyZW50KSB7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1QYXJlbnQtPm1Mb2NrKTsKKyAgICBjb25zdCBDYXB0dXJlUmVzdWx0JiByZXN1bHQgPSByZXN1bHRzWzBdOworCisgICAgaWYobVBhcmVudC0+bVJlc3VsdEZyYW1lTnVtYmVyICE9IHJlc3VsdC5mcmFtZU51bWJlcikgeworICAgICAgICBBTE9HRSgiJXM6IFVuZXhwZWN0ZWQgZnJhbWUgbnVtYmVyISBFeHBlY3RlZDogJXUgcmVjZWl2ZWQ6ICV1IiwKKyAgICAgICAgICAgICAgX19mdW5jX18sIG1QYXJlbnQtPm1SZXN1bHRGcmFtZU51bWJlciwgcmVzdWx0LmZyYW1lTnVtYmVyKTsKKyAgICAgICAgQUREX0ZBSUxVUkUoKTsKKyAgICB9CisKKyAgICBzaXplX3QgcmVzdWx0TGVuZ3RoID0gcmVzdWx0Lm91dHB1dEJ1ZmZlcnMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0TGVuZ3RoOyBpKyspIHsKKyAgICAgICAgbVBhcmVudC0+bVJlc3VsdEJ1ZmZlcnMucHVzaF9iYWNrKHJlc3VsdC5vdXRwdXRCdWZmZXJzW2ldKTsKKyAgICB9CisKKyAgICAvLyBUT0RPKGVwZWV2KTogSGFuZGxlIHBhcnRpYWwgcmVzdWx0cyBpbiBjYXNlIGNsaWVudCBzdXBwb3J0cyB0aGVtIGFuZAorICAgIC8vICAgICAgICAgICAgICB2ZXJpZnkgdGhlIHJlc3VsdCBhZ2FpbnN0IHJlcXVlc3Qgc2V0dGluZ3MuCisKKyAgICBsLnVubG9jaygpOworICAgIG1QYXJlbnQtPm1SZXN1bHRDb25kaXRpb24ubm90aWZ5X29uZSgpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYUhpZGxUZXN0OjpEZXZpY2VDYjo6bm90aWZ5KAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxOb3RpZnlNc2c+JiBtZXNzYWdlcykgeworICAgIGNvbnN0IE5vdGlmeU1zZyYgbWVzc2FnZSA9IG1lc3NhZ2VzWzBdOworCisgICAgaWYgKE1zZ1R5cGU6OkVSUk9SID09IG1lc3NhZ2UudHlwZSkgeworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbChtUGFyZW50LT5tTG9jayk7CisgICAgICAgICAgICBtUGFyZW50LT5tRXJyb3JzLnB1c2hfYmFjayhtZXNzYWdlLm1zZy5lcnJvcik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKEVycm9yQ29kZTo6RVJST1JfUkVRVUVTVCA9PSBtZXNzYWdlLm1zZy5lcnJvci5lcnJvckNvZGUpCisgICAgICAgICAgICAgICAgfHwgKEVycm9yQ29kZTo6RVJST1JfQlVGRkVSID09IG1lc3NhZ2UubXNnLmVycm9yLmVycm9yQ29kZSkpIHsKKyAgICAgICAgICAgIG1QYXJlbnQtPm1SZXN1bHRDb25kaXRpb24ubm90aWZ5X29uZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworaGlkbF92ZWM8aGlkbF9zdHJpbmc+IENhbWVyYUhpZGxUZXN0OjpnZXRDYW1lcmFEZXZpY2VOYW1lcygpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXM7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhSWRMaXN0KAorICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGlkTGlzdCkgeworICAgICAgICAgICAgQUxPR0koImdldENhbWVyYUlkTGlzdCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaWRMaXN0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgQUxPR0koIkNhbWVyYSBJZFslenVdIGlzICVzIiwgaSwgaWRMaXN0W2ldLmNfc3RyKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBjYW1lcmFEZXZpY2VOYW1lcyA9IGlkTGlzdDsKKyAgICAgICAgfSk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFERF9GQUlMVVJFKCk7CisgICAgfQorICAgIHJldHVybiBjYW1lcmFEZXZpY2VOYW1lczsKK30KKworLy8gVGVzdCBpZiBJQ2FtZXJhUHJvdmlkZXI6OmlzVG9yY2hNb2RlU3VwcG9ydGVkIHJldHVybnMgU3RhdHVzOjpPSworVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBpc1RvcmNoTW9kZVN1cHBvcnRlZCkgeworICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgcmV0ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5tUHJvdmlkZXItPmlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKAorICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGJvb2wgc3VwcG9ydCkgeworICAgICAgICAgICAgQUxPR0koImlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkIHJldHVybnMgc3RhdHVzOiVkIHN1cHBvcnRlZDolZCIsCisgICAgICAgICAgICAgICAgICAgIChpbnQpc3RhdHVzLCBzdXBwb3J0KTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gVE9ETzogY29uc2lkZXIgcmVtb3ZpbmcgdGhpcyB0ZXN0IGlmIGdldENhbWVyYURldmljZU5hbWVzKCkgaGFzIHRoZSBzYW1lIGNvdmVyYWdlCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGdldENhbWVyYUlkTGlzdCkgeworICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgcmV0ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5tUHJvdmlkZXItPmdldENhbWVyYUlkTGlzdCgKKyAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBpZExpc3QpIHsKKyAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFJZExpc3QgcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlkTGlzdC5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIEFMT0dJKCJDYW1lcmEgSWRbJXp1XSBpcyAlcyIsIGksIGlkTGlzdFtpXS5jX3N0cigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgLy8gVGhpcyBpcyB0cnVlIGZvciBpbnRlcm5hbCBjYW1lcmEgcHJvdmlkZXIuCisgICAgICAgICAgICAvLyBOb3QgbmVjZXNzYXJ5IGhvbGQgZm9yIGV4dGVybmFsIGNhbWVyYXMgcHJvdmlkZXJzCisgICAgICAgICAgICBBU1NFUlRfR1QoaWRMaXN0LnNpemUoKSwgMHUpOworICAgICAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gVGVzdCBpZiBJQ2FtZXJhUHJvdmlkZXI6OmdldFZlbmRvclRhZ3MgcmV0dXJucyBTdGF0dXM6Ok9LCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGdldFZlbmRvclRhZ3MpIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0OworICAgIHJldCA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+bVByb3ZpZGVyLT5nZXRWZW5kb3JUYWdzKAorICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIHZlbmRvclRhZ1NlY3MpIHsKKyAgICAgICAgICAgIEFMT0dJKCJnZXRWZW5kb3JUYWdzIHJldHVybnMgc3RhdHVzOiVkIG51bVNlY3Rpb25zICV6dSIsCisgICAgICAgICAgICAgICAgICAgIChpbnQpc3RhdHVzLCB2ZW5kb3JUYWdTZWNzLnNpemUoKSk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlbmRvclRhZ1NlY3Muc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBBTE9HSSgiVmVuZG9yIHRhZyBzZWN0aW9uICV6dSBuYW1lICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGksIHZlbmRvclRhZ1NlY3NbaV0uc2VjdGlvbk5hbWUuY19zdHIoKSk7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCB2ZW5kb3JUYWdTZWNzW2ldLnRhZ3Muc2l6ZSgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgdGFnID0gdmVuZG9yVGFnU2Vjc1tpXS50YWdzW2pdOworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiVmVuZG9yIHRhZyBpZCAldSBuYW1lICVzIHR5cGUgJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZy50YWdJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcudGFnTmFtZS5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpIHRhZy50YWdUeXBlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIFRlc3QgaWYgSUNhbWVyYVByb3ZpZGVyOjpzZXRDYWxsYmFjayByZXR1cm5zIFN0YXR1czo6T0sKK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgc2V0Q2FsbGJhY2spIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBzdHJ1Y3QgUHJvdmlkZXJDYiA6IHB1YmxpYyBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjayB7CisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGNhbWVyYURldmljZVN0YXR1c0NoYW5nZSgKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhRGV2aWNlTmFtZSwKKyAgICAgICAgICAgICAgICBDYW1lcmFEZXZpY2VTdGF0dXMgbmV3U3RhdHVzKSBvdmVycmlkZSB7CisgICAgICAgICAgICBBTE9HSSgiY2FtZXJhIGRldmljZSBzdGF0dXMgY2FsbGJhY2sgbmFtZSAlcywgc3RhdHVzICVkIiwKKyAgICAgICAgICAgICAgICAgICAgY2FtZXJhRGV2aWNlTmFtZS5jX3N0cigpLCAoaW50KSBuZXdTdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHRvcmNoTW9kZVN0YXR1c0NoYW5nZSgKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhRGV2aWNlTmFtZSwKKyAgICAgICAgICAgICAgICBUb3JjaE1vZGVTdGF0dXMgbmV3U3RhdHVzKSBvdmVycmlkZSB7CisgICAgICAgICAgICBBTE9HSSgiVG9yY2ggbW9kZSBzdGF0dXMgY2FsbGJhY2sgbmFtZSAlcywgc3RhdHVzICVkIiwKKyAgICAgICAgICAgICAgICAgICAgY2FtZXJhRGV2aWNlTmFtZS5jX3N0cigpLCAoaW50KSBuZXdTdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorICAgIH07CisgICAgc3A8UHJvdmlkZXJDYj4gY2IgPSBuZXcgUHJvdmlkZXJDYjsKKyAgICBhdXRvIHN0YXR1cyA9IGVudi0+bVByb3ZpZGVyLT5zZXRDYWxsYmFjayhjYik7CisgICAgQVNTRVJUX1RSVUUoc3RhdHVzLmlzT2soKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7Cit9CisKKy8vIFRlc3QgaWYgSUNhbWVyYVByb3ZpZGVyOjpnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2UgcmV0dXJucyBTdGF0dXM6Ok9LIGFuZCBub24tbnVsbCBkZXZpY2UKK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WM194KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UzXzIpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WM194IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZTNfMiwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfSBlbHNlIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UxKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UxLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCB0aGUgZGV2aWNlIHJlc291cmNlIGNvc3QgY2FuIGJlIHJldHJpZXZlZCBhbmQgdGhlIHZhbHVlcyBhcmUKKy8vIHNhbmUuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGdldFJlc291cmNlQ29zdCkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgOjphbmRyb2lkOjpzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZT4gZGV2aWNlM18yOworICAgICAgICAgICAgQUxPR0koImdldFJlc291cmNlQ29zdDogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlM18yID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIHJldCA9IGRldmljZTNfMi0+Z2V0UmVzb3VyY2VDb3N0KAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgcmVzb3VyY2VDb3N0KSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRSZXNvdXJjZUNvc3QgcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiICAgIFJlc291cmNlIGNvc3QgaXMgJWQiLCByZXNvdXJjZUNvc3QucmVzb3VyY2VDb3N0KTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0xFKHJlc291cmNlQ29zdC5yZXNvdXJjZUNvc3QsIDEwMHUpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiByZXNvdXJjZUNvc3QuY29uZmxpY3RpbmdEZXZpY2VzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBTE9HSSgiICAgIENvbmZsaWN0aW5nIGRldmljZTogJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBBTE9HSSgiZ2V0UmVzb3VyY2VDb3N0OiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UxID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIHJldCA9IGRldmljZTEtPmdldFJlc291cmNlQ29zdCgKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIHJlc291cmNlQ29zdCkgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0UmVzb3VyY2VDb3N0IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koIiAgICBSZXNvdXJjZSBjb3N0IGlzICVkIiwgcmVzb3VyY2VDb3N0LnJlc291cmNlQ29zdCk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9MRShyZXNvdXJjZUNvc3QucmVzb3VyY2VDb3N0LCAxMDB1KTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogcmVzb3VyY2VDb3N0LmNvbmZsaWN0aW5nRGV2aWNlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koIiAgICBDb25mbGljdGluZyBkZXZpY2U6ICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIFZlcmlmeSB0aGF0IHRoZSBzdGF0aWMgY2FtZXJhIGluZm8gY2FuIGJlIHJldHJpZXZlZAorLy8gc3VjY2Vzc2Z1bGx5LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBnZXRDYW1lcmFJbmZvKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgQUxPR0koImdldENhbWVyYUNoYXJhY3RlcmlzdGljczogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3goCisgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3ggcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlMSA9IGRldmljZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICByZXQgPSBkZXZpY2UxLT5nZXRDYW1lcmFJbmZvKAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgaW5mbykgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhSW5mbyByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChpbmZvLm9yaWVudGF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDkwOgorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxODA6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI3MDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0V4cGVjdGVkIGNhc2VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koImNhbWVyYSBvcmllbnRhdGlvbjogJWQiLCBpbmZvLm9yaWVudGF0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGNhbWVyYSBvcmllbnRhdGlvbjoiIDw8IGluZm8ub3JpZW50YXRpb247CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGluZm8uZmFjaW5nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENhbWVyYUZhY2luZzo6QkFDSzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2FtZXJhRmFjaW5nOjpGUk9OVDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2FtZXJhRmFjaW5nOjpFWFRFUk5BTDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0V4cGVjdGVkIGNhc2VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koImNhbWVyYSBmYWNpbmc6ICVkIiwgaW5mby5mYWNpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgY2FtZXJhIGZhY2luZzoiIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaW5mby5mYWNpbmcpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gQ2hlY2sgd2hldGhlciBwcmV2aWV3IHdpbmRvdyBjYW4gYmUgY29uZmlndXJlZAorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBzZXRQcmV2aWV3V2luZG93KSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUNvbnN1bWVyPiBidWZmZXJJdGVtQ29uc3VtZXI7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtSGFuZGVyPiBidWZmZXJIYW5kbGVyOworICAgICAgICAgICAgc2V0dXBQcmV2aWV3V2luZG93KGRldmljZTEsCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJJdGVtQ29uc3VtZXIgLypvdXQqLywgJmJ1ZmZlckhhbmRsZXIgLypvdXQqLyk7CisKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIFZlcmlmeSB0aGF0IHNldHRpbmcgcHJldmlldyB3aW5kb3cgZmFpbHMgaW4gY2FzZSBkZXZpY2UgaXMgbm90IG9wZW4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgc2V0UHJldmlld1dpbmRvd0ludmFsaWQpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzOiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UxID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNldFByZXZpZXdXaW5kb3cobnVsbHB0cik7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVELCByZXR1cm5TdGF0dXMpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBTdGFydCBhbmQgc3RvcCBwcmV2aWV3IGNoZWNraW5nIHdoZXRoZXIgaXQgZ2V0cyBlbmFibGVkIGluIGJldHdlZW4uCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHN0YXJ0U3RvcFByZXZpZXcpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwKKyAgICAgICAgICAgICAgICAgICAgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLCAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworCisgICAgICAgICAgICBSZXR1cm48Ym9vbD4gcmV0dXJuQm9vbFN0YXR1cyA9IGRldmljZTEtPnByZXZpZXdFbmFibGVkKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzKTsKKworICAgICAgICAgICAgc3RvcFByZXZpZXdBbmRDbG9zZShkZXZpY2UxKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gU3RhcnQgcHJldmlldyB3aXRob3V0IGFjdGl2ZSBwcmV2aWV3IHdpbmRvdy4gUHJldmlldyBzaG91bGQgc3RhcnQgYXMgc29vbgorLy8gYXMgYSB2YWxpZCBhY3RpdmUgd2luZG93IGdldHMgY29uZmlndXJlZC4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgc3RhcnRTdG9wUHJldmlld0RlbGF5ZWQpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworCisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5zZXRQcmV2aWV3V2luZG93KG51bGxwdHIpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworCisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKworICAgICAgICAgICAgLy9QcmV2aWV3IHNob3VsZCBnZXQgZW5hYmxlZCBub3cKKyAgICAgICAgICAgIFJldHVybjxib29sPiByZXR1cm5Cb29sU3RhdHVzID0gZGV2aWNlMS0+cHJldmlld0VuYWJsZWQoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMpOworCisgICAgICAgICAgICBzdG9wUHJldmlld0FuZENsb3NlKGRldmljZTEpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCBpbWFnZSBjYXB0dXJlIGJlaGF2ZXMgYXMgZXhwZWN0ZWQgYWxvbmcgd2l0aCBwcmV2aWV3IGNhbGxiYWNrcy4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgdGFrZVBpY3R1cmUpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUNvbnN1bWVyPiBidWZmZXJJdGVtQ29uc3VtZXI7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtSGFuZGVyPiBidWZmZXJIYW5kbGVyOworICAgICAgICAgICAgc2V0dXBQcmV2aWV3V2luZG93KGRldmljZTEsICZidWZmZXJJdGVtQ29uc3VtZXIgLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmJ1ZmZlckhhbmRsZXIgLypvdXQqLyk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIG1EYXRhTWVzc2FnZVR5cGVSZWNlaXZlZCA9IERhdGFDYWxsYmFja01zZzo6UkFXX0lNQUdFX05PVElGWTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZW5hYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KURhdGFDYWxsYmFja01zZzo6UFJFVklFV19GUkFNRSwgZGV2aWNlMSk7CisgICAgICAgICAgICBzdGFydFByZXZpZXcoZGV2aWNlMSk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIHdhaXRGb3JGcmFtZUxvY2tlZChEYXRhQ2FsbGJhY2tNc2c6OlBSRVZJRVdfRlJBTUUsIGwpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkaXNhYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KURhdGFDYWxsYmFja01zZzo6UFJFVklFV19GUkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2UxKTsKKyAgICAgICAgICAgIGVuYWJsZU1zZ1R5cGUoKHVuc2lnbmVkIGludClEYXRhQ2FsbGJhY2tNc2c6OkNPTVBSRVNTRURfSU1BR0UsCisgICAgICAgICAgICAgICAgICAgIGRldmljZTEpOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICBtRGF0YU1lc3NhZ2VUeXBlUmVjZWl2ZWQgPSBEYXRhQ2FsbGJhY2tNc2c6OlJBV19JTUFHRV9OT1RJRlk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPnRha2VQaWN0dXJlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRnJhbWVMb2NrZWQoRGF0YUNhbGxiYWNrTXNnOjpDT01QUkVTU0VEX0lNQUdFLCBsKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZGlzYWJsZU1zZ1R5cGUoKHVuc2lnbmVkIGludClEYXRhQ2FsbGJhY2tNc2c6OkNPTVBSRVNTRURfSU1BR0UsCisgICAgICAgICAgICAgICAgICAgIGRldmljZTEpOworICAgICAgICAgICAgc3RvcFByZXZpZXdBbmRDbG9zZShkZXZpY2UxKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gSW1hZ2UgY2FwdHVyZSBzaG91bGQgZmFpbCBpbiBjYXNlIHByZXZpZXcgZGlkbid0IGdldCBlbmFibGVkIGZpcnN0LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCB0YWtlUGljdHVyZUZhaWwpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworCisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT50YWtlUGljdHVyZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9IGRldmljZTEtPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgaW1hZ2UgY2FwdHVyZSBjYW4gYmUgY2FuY2VsbGVkLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBjYW5jZWxQaWN0dXJlKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgIG9wZW5DYW1lcmFEZXZpY2UobmFtZSwgZW52LCAmZGV2aWNlMSAvKm91dCovKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBkZXZpY2UxLmdldCgpKTsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gYnVmZmVySXRlbUNvbnN1bWVyOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gYnVmZmVySGFuZGxlcjsKKyAgICAgICAgICAgIHNldHVwUHJldmlld1dpbmRvdyhkZXZpY2UxLCAmYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworCisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT50YWtlUGljdHVyZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+Y2FuY2VsUGljdHVyZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgc3RvcFByZXZpZXdBbmRDbG9zZShkZXZpY2UxKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gSW1hZ2UgY2FwdHVyZSBjYW5jZWwgc2hvdWxkIGZhaWwgd2hlbiBpbWFnZSBjYXB0dXJlIGlzIG5vdCBydW5uaW5nLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBjYW5jZWxQaWN0dXJlRmFpbCkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKyAgICAgICAgICAgIHN0YXJ0UHJldmlldyhkZXZpY2UxKTsKKworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+Y2FuY2VsUGljdHVyZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgc3RvcFByZXZpZXdBbmRDbG9zZShkZXZpY2UxKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVGVzdCBiYXNpYyB2aWRlbyByZWNvcmRpbmcuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHN0YXJ0U3RvcFJlY29yZGluZykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgbURhdGFNZXNzYWdlVHlwZVJlY2VpdmVkID0gRGF0YUNhbGxiYWNrTXNnOjpSQVdfSU1BR0VfTk9USUZZOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbmFibGVNc2dUeXBlKCh1bnNpZ25lZCBpbnQpRGF0YUNhbGxiYWNrTXNnOjpQUkVWSUVXX0ZSQU1FLCBkZXZpY2UxKTsKKyAgICAgICAgICAgIHN0YXJ0UHJldmlldyhkZXZpY2UxKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgd2FpdEZvckZyYW1lTG9ja2VkKERhdGFDYWxsYmFja01zZzo6UFJFVklFV19GUkFNRSwgbCk7CisgICAgICAgICAgICAgICAgbURhdGFNZXNzYWdlVHlwZVJlY2VpdmVkID0gRGF0YUNhbGxiYWNrTXNnOjpSQVdfSU1BR0VfTk9USUZZOworICAgICAgICAgICAgICAgIG1WaWRlb0J1ZmZlckluZGV4ID0gVUlOVDMyX01BWDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZGlzYWJsZU1zZ1R5cGUoKHVuc2lnbmVkIGludClEYXRhQ2FsbGJhY2tNc2c6OlBSRVZJRVdfRlJBTUUsIGRldmljZTEpOworCisgICAgICAgICAgICBib29sIHZpZGVvTWV0YUVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPnN0b3JlTWV0YURhdGFJbkJ1ZmZlcnModHJ1ZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIC8vIEl0IGlzIGFsbG93ZWQgZm9yIGRldmljZXMgdG8gbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlCisgICAgICAgICAgICBBU1NFUlRfVFJVRSgoU3RhdHVzOjpPSyA9PSByZXR1cm5TdGF0dXMpIHx8CisgICAgICAgICAgICAgICAgICAgIChTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEID09IHJldHVyblN0YXR1cykpOworICAgICAgICAgICAgaWYgKFN0YXR1czo6T0sgPT0gcmV0dXJuU3RhdHVzKSB7CisgICAgICAgICAgICAgICAgdmlkZW9NZXRhRW5hYmxlZCA9IHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGVuYWJsZU1zZ1R5cGUoKHVuc2lnbmVkIGludClEYXRhQ2FsbGJhY2tNc2c6OlZJREVPX0ZSQU1FLCBkZXZpY2UxKTsKKyAgICAgICAgICAgIFJldHVybjxib29sPiByZXR1cm5Cb29sU3RhdHVzID0gZGV2aWNlMS0+cmVjb3JkaW5nRW5hYmxlZCgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuQm9vbFN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0ZBTFNFKHJldHVybkJvb2xTdGF0dXMpOworCisgICAgICAgICAgICByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5zdGFydFJlY29yZGluZygpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgd2FpdEZvckZyYW1lTG9ja2VkKERhdGFDYWxsYmFja01zZzo6VklERU9fRlJBTUUsIGwpOworICAgICAgICAgICAgICAgIEFTU0VSVF9ORShVSU5UMzJfTUFYLCBtVmlkZW9CdWZmZXJJbmRleCk7CisgICAgICAgICAgICAgICAgZGlzYWJsZU1zZ1R5cGUoKHVuc2lnbmVkIGludClEYXRhQ2FsbGJhY2tNc2c6OlZJREVPX0ZSQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlMSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybkJvb2xTdGF0dXMgPSBkZXZpY2UxLT5yZWNvcmRpbmdFbmFibGVkKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzKTsKKworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIGlmICh2aWRlb01ldGFFbmFibGVkKSB7CisgICAgICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+cmVsZWFzZVJlY29yZGluZ0ZyYW1lSGFuZGxlKG1WaWRlb0RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICBtVmlkZW9CdWZmZXJJbmRleCwgbVZpZGVvTmF0aXZlSGFuZGxlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+cmVsZWFzZVJlY29yZGluZ0ZyYW1lKG1WaWRlb0RhdGEsIG1WaWRlb0J1ZmZlckluZGV4KTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+c3RvcFJlY29yZGluZygpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIHN0b3BQcmV2aWV3QW5kQ2xvc2UoZGV2aWNlMSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIEl0IHNob3VsZG4ndCBiZSBwb3NzaWJsZSB0byBzdGFydCByZWNvcmRpbmcgd2l0aG91dCBlbmFibGluZyBwcmV2aWV3IGZpcnN0LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBzdGFydFJlY29yZGluZ0ZhaWwpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworCisgICAgICAgICAgICBSZXR1cm48Ym9vbD4gcmV0dXJuQm9vbFN0YXR1cyA9IGRldmljZTEtPnJlY29yZGluZ0VuYWJsZWQoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9GQUxTRShyZXR1cm5Cb29sU3RhdHVzKTsKKworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c3RhcnRSZWNvcmRpbmcoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX05FKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIGF1dG9mb2N1cyBzdXBwb3J0IGlmIGF2YWlsYWJsZS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgYXV0b0ZvY3VzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBzdGQ6OnZlY3Rvcjxjb25zdCBjaGFyICo+IGZvY3VzTW9kZXMgPSB7Q2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9BVVRPLAorICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9DT05USU5VT1VTX1BJQ1RVUkUsCisgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0NPTlRJTlVPVVNfVklERU99OworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworCisgICAgICAgICAgICA6OmFuZHJvaWQ6OkNhbWVyYVBhcmFtZXRlcnMgY2FtZXJhUGFyYW1zOworICAgICAgICAgICAgZ2V0UGFyYW1ldGVycyhkZXZpY2UxLCAmY2FtZXJhUGFyYW1zIC8qb3V0Ki8pOworCisgICAgICAgICAgICBpZiAoU3RhdHVzOjpPSyAhPSBpc0F1dG9Gb2N1c01vZGVBdmFpbGFibGUoY2FtZXJhUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0FVVE8pKSB7CisgICAgICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9IGRldmljZTEtPmNsb3NlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gYnVmZmVySXRlbUNvbnN1bWVyOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gYnVmZmVySGFuZGxlcjsKKyAgICAgICAgICAgIHNldHVwUHJldmlld1dpbmRvdyhkZXZpY2UxLCAmYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworICAgICAgICAgICAgZW5hYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KU5vdGlmeUNhbGxiYWNrTXNnOjpGT0NVUywgZGV2aWNlMSk7CisKKyAgICAgICAgICAgIGZvciAoYXV0byAmaXRlciA6IGZvY3VzTW9kZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAoU3RhdHVzOjpPSyAhPSBpc0F1dG9Gb2N1c01vZGVBdmFpbGFibGUoY2FtZXJhUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgaXRlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY2FtZXJhUGFyYW1zLnNldChDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRk9DVVNfTU9ERSwgaXRlcik7CisgICAgICAgICAgICAgICAgc2V0UGFyYW1ldGVycyhkZXZpY2UxLCBjYW1lcmFQYXJhbXMpOworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgbU5vdGlmeU1lc3NhZ2UgPSBOb3RpZnlDYWxsYmFja01zZzo6RVJST1I7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+YXV0b0ZvY3VzKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChOb3RpZnlDYWxsYmFja01zZzo6Rk9DVVMgIT0gbU5vdGlmeU1lc3NhZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa0F1dG9Gb2N1c1RpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtUmVzdWx0Q29uZGl0aW9uLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkaXNhYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KU5vdGlmeUNhbGxiYWNrTXNnOjpGT0NVUywgZGV2aWNlMSk7CisgICAgICAgICAgICBzdG9wUHJldmlld0FuZENsb3NlKGRldmljZTEpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBJbiBjYXNlIGF1dG9mb2N1cyBpcyBzdXBwb3J0ZWQgdmVyaWZ5IHRoYXQgaXQgY2FuIGJlIGNhbmNlbGxlZC4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY2FuY2VsQXV0b0ZvY3VzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgIG9wZW5DYW1lcmFEZXZpY2UobmFtZSwgZW52LCAmZGV2aWNlMSAvKm91dCovKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBkZXZpY2UxLmdldCgpKTsKKworICAgICAgICAgICAgOjphbmRyb2lkOjpDYW1lcmFQYXJhbWV0ZXJzIGNhbWVyYVBhcmFtczsKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcnMoZGV2aWNlMSwgJmNhbWVyYVBhcmFtcyAvKm91dCovKTsKKworICAgICAgICAgICAgaWYgKFN0YXR1czo6T0sgIT0gaXNBdXRvRm9jdXNNb2RlQXZhaWxhYmxlKGNhbWVyYVBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9BVVRPKSkgeworICAgICAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJdCBzaG91bGQgYmUgZmluZSB0byBjYWxsIGJlZm9yZSBwcmV2aWV3IHN0YXJ0cy4KKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBkZXZpY2UxLT5jYW5jZWxBdXRvRm9jdXMoKSk7CisKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gYnVmZmVySXRlbUNvbnN1bWVyOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gYnVmZmVySGFuZGxlcjsKKyAgICAgICAgICAgIHNldHVwUHJldmlld1dpbmRvdyhkZXZpY2UxLCAmYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworCisgICAgICAgICAgICAvLyBJdCBzaG91bGQgYmUgZmluZSB0byBjYWxsIGFmdGVyIHByZXZpZXcgc3RhcnRzIHRvby4KKyAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPmNhbmNlbEF1dG9Gb2N1cygpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+YXV0b0ZvY3VzKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgICAgICAgICByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5jYW5jZWxBdXRvRm9jdXMoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIHN0b3BQcmV2aWV3QW5kQ2xvc2UoZGV2aWNlMSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIHdoZXRoZXIgZmFjZSBkZXRlY3Rpb24gaXMgYXZhaWxhYmxlIGFuZCB0cnkgdG8gZW5hYmxlJmRpc2FibGUuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHNlbmRDb21tYW5kRmFjZURldGVjdGlvbikgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6Q2FtZXJhUGFyYW1ldGVycyBjYW1lcmFQYXJhbXM7CisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJzKGRldmljZTEsICZjYW1lcmFQYXJhbXMgLypvdXQqLyk7CisKKyAgICAgICAgICAgIGludDMyX3QgaHdGYWNlcyA9IGNhbWVyYVBhcmFtcy5nZXRJbnQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NQVhfTlVNX0RFVEVDVEVEX0ZBQ0VTX0hXKTsKKyAgICAgICAgICAgIGludDMyX3Qgc3dGYWNlcyA9IGNhbWVyYVBhcmFtcy5nZXRJbnQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NQVhfTlVNX0RFVEVDVEVEX0ZBQ0VTX1NXKTsKKyAgICAgICAgICAgIGlmICgoMCA+PSBod0ZhY2VzKSAmJiAoMCA+PSBzd0ZhY2VzKSkgeworICAgICAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKyAgICAgICAgICAgIHN0YXJ0UHJldmlldyhkZXZpY2UxKTsKKworICAgICAgICAgICAgaWYgKDAgPCBod0ZhY2VzKSB7CisgICAgICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kVHlwZTo6U1RBUlRfRkFDRV9ERVRFQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICBDQU1FUkFfRkFDRV9ERVRFQ1RJT05fSFcsIDApOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgICAgIC8vIFRPRE8oZXBlZXYpIDogRW5hYmxlIGFuZCBjaGVjayBmb3IgZmFjZSBub3RpZmljYXRpb25zCisgICAgICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kVHlwZTo6U1RPUF9GQUNFX0RFVEVDVElPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgIENBTUVSQV9GQUNFX0RFVEVDVElPTl9IVywgMCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgwIDwgc3dGYWNlcykgeworICAgICAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZFR5cGU6OlNUQVJUX0ZBQ0VfREVURUNUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgQ0FNRVJBX0ZBQ0VfREVURUNUSU9OX1NXLCAwKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKyAgICAgICAgICAgICAgICAvLyBUT0RPKGVwZWV2KSA6IEVuYWJsZSBhbmQgY2hlY2sgZm9yIGZhY2Ugbm90aWZpY2F0aW9ucworICAgICAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZFR5cGU6OlNUT1BfRkFDRV9ERVRFQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICBDQU1FUkFfRkFDRV9ERVRFQ1RJT05fU1csIDApOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdG9wUHJldmlld0FuZENsb3NlKGRldmljZTEpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBDaGVjayB3aGV0aGVyIHNtb290aCB6b29tIGlzIGF2YWlsYWJsZSBhbmQgdHJ5IHRvIGVuYWJsZSZkaXNhYmxlLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBzZW5kQ29tbWFuZFNtb290aFpvb20pIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworCisgICAgICAgICAgICA6OmFuZHJvaWQ6OkNhbWVyYVBhcmFtZXRlcnMgY2FtZXJhUGFyYW1zOworICAgICAgICAgICAgZ2V0UGFyYW1ldGVycyhkZXZpY2UxLCAmY2FtZXJhUGFyYW1zIC8qb3V0Ki8pOworCisgICAgICAgICAgICBjb25zdCBjaGFyICpzbW9vdGhab29tU3RyID0gY2FtZXJhUGFyYW1zLmdldCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NNT09USF9aT09NX1NVUFBPUlRFRCk7CisgICAgICAgICAgICBib29sIHNtb290aFpvb21TdXBwb3J0ZWQgPSAoKG51bGxwdHIgIT0gc21vb3RoWm9vbVN0cikgJiYKKyAgICAgICAgICAgICAgICAgICAgKHN0cmNtcChzbW9vdGhab29tU3RyLCBDYW1lcmFQYXJhbWV0ZXJzOjpUUlVFKSA9PSAwKSkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgOiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghc21vb3RoWm9vbVN1cHBvcnRlZCkgeworICAgICAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQzMl90IG1heFpvb20gPSBjYW1lcmFQYXJhbXMuZ2V0SW50KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfTUFYX1pPT00pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoMCA8IG1heFpvb20pOworCisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKyAgICAgICAgICAgIHN0YXJ0UHJldmlldyhkZXZpY2UxKTsKKyAgICAgICAgICAgIHNldFBhcmFtZXRlcnMoZGV2aWNlMSwgY2FtZXJhUGFyYW1zKTsKKworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgIENvbW1hbmRUeXBlOjpTVEFSVF9TTU9PVEhfWk9PTSwgbWF4Wm9vbSwgMCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgLy8gVE9ETyhlcGVldikgOiBFbmFibGUgYW5kIGNoZWNrIGZvciBmYWNlIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNlbmRDb21tYW5kKENvbW1hbmRUeXBlOjpTVE9QX1NNT09USF9aT09NLAorICAgICAgICAgICAgICAgICAgICAwLCAwKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIHN0b3BQcmV2aWV3QW5kQ2xvc2UoZGV2aWNlMSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIEJhc2ljIHNhbml0eSB0ZXN0cyByZWxhdGVkIHRvIGNhbWVyYSBwYXJhbWV0ZXJzLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBnZXRTZXRQYXJhbWV0ZXJzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgIG9wZW5DYW1lcmFEZXZpY2UobmFtZSwgZW52LCAmZGV2aWNlMSAvKm91dCovKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBkZXZpY2UxLmdldCgpKTsKKworICAgICAgICAgICAgOjphbmRyb2lkOjpDYW1lcmFQYXJhbWV0ZXJzIGNhbWVyYVBhcmFtczsKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcnMoZGV2aWNlMSwgJmNhbWVyYVBhcmFtcyAvKm91dCovKTsKKworICAgICAgICAgICAgaW50MzJfdCB3aWR0aCwgaGVpZ2h0OworICAgICAgICAgICAgY2FtZXJhUGFyYW1zLmdldFBpY3R1cmVTaXplKCZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgoMCA8IHdpZHRoKSAmJiAoMCA8IGhlaWdodCkpOworICAgICAgICAgICAgY2FtZXJhUGFyYW1zLmdldFByZXZpZXdTaXplKCZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgoMCA8IHdpZHRoKSAmJiAoMCA8IGhlaWdodCkpOworICAgICAgICAgICAgaW50MzJfdCBtaW5GcHMsIG1heEZwczsKKyAgICAgICAgICAgIGNhbWVyYVBhcmFtcy5nZXRQcmV2aWV3RnBzUmFuZ2UoJm1pbkZwcywgJm1heEZwcyk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgoMCA8IG1pbkZwcykgJiYgKDAgPCBtYXhGcHMpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBjYW1lcmFQYXJhbXMuZ2V0UHJldmlld0Zvcm1hdCgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBjYW1lcmFQYXJhbXMuZ2V0UGljdHVyZUZvcm1hdCgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHN0cmNtcChDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfSlBFRywKKyAgICAgICAgICAgICAgICAgICAgY2FtZXJhUGFyYW1zLmdldFBpY3R1cmVGb3JtYXQoKSkgPT0gMCk7CisKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZsYXNoTW9kZSA9IGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9GTEFTSF9NT0RFKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKChudWxscHRyID09IGZsYXNoTW9kZSkgfHwgKHN0cmNtcCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6RkxBU0hfTU9ERV9PRkYsIGZsYXNoTW9kZSkgPT0gMCkpOworCisgICAgICAgICAgICBjb25zdCBjaGFyICp3Yk1vZGUgPSBjYW1lcmFQYXJhbXMuZ2V0KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfV0hJVEVfQkFMQU5DRSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgobnVsbHB0ciA9PSB3Yk1vZGUpIHx8IChzdHJjbXAoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfQVVUTywgd2JNb2RlKSA9PSAwKSk7CisKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVmZmVjdCA9IGNhbWVyYVBhcmFtcy5nZXQoQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0VGRkVDVCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgobnVsbHB0ciA9PSBlZmZlY3QpIHx8IChzdHJjbXAoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OkVGRkVDVF9OT05FLCBlZmZlY3QpID09IDApKTsKKworICAgICAgICAgICAgOjphbmRyb2lkOjpWZWN0b3I8OjphbmRyb2lkOjpTaXplPiBwcmV2aWV3U2l6ZXM7CisgICAgICAgICAgICBjYW1lcmFQYXJhbXMuZ2V0U3VwcG9ydGVkUHJldmlld1NpemVzKHByZXZpZXdTaXplcyk7CisgICAgICAgICAgICBBU1NFUlRfRkFMU0UocHJldmlld1NpemVzLmVtcHR5KCkpOworICAgICAgICAgICAgOjphbmRyb2lkOjpWZWN0b3I8OjphbmRyb2lkOjpTaXplPiBwaWN0dXJlU2l6ZXM7CisgICAgICAgICAgICBjYW1lcmFQYXJhbXMuZ2V0U3VwcG9ydGVkUGljdHVyZVNpemVzKHBpY3R1cmVTaXplcyk7CisgICAgICAgICAgICBBU1NFUlRfRkFMU0UocGljdHVyZVNpemVzLmVtcHR5KCkpOworICAgICAgICAgICAgY29uc3QgY2hhciAqcHJldmlld0Zvcm1hdHMgPSBjYW1lcmFQYXJhbXMuZ2V0KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BSRVZJRVdfRk9STUFUUyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgcHJldmlld0Zvcm1hdHMpOworICAgICAgICAgICAgOjphbmRyb2lkOjpTdHJpbmc4IHByZXZpZXdGb3JtYXRzU3RyaW5nKHByZXZpZXdGb3JtYXRzKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHByZXZpZXdGb3JtYXRzU3RyaW5nLmNvbnRhaW5zKAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfWVVWNDIwU1ApKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBjYW1lcmFQYXJhbXMuZ2V0KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BJQ1RVUkVfRk9STUFUUykpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfUFJFVklFV19GUkFNRV9SQVRFUykpOworICAgICAgICAgICAgY29uc3QgY2hhciAqZm9jdXNNb2RlcyA9IGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfRk9DVVNfTU9ERVMpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGZvY3VzTW9kZXMpOworICAgICAgICAgICAgOjphbmRyb2lkOjpTdHJpbmc4IGZvY3VzTW9kZXNTdHJpbmcoZm9jdXNNb2Rlcyk7CisgICAgICAgICAgICBjb25zdCBjaGFyICpmb2N1c01vZGUgPSBjYW1lcmFQYXJhbXMuZ2V0KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRk9DVVNfTU9ERSk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZm9jdXNNb2RlKTsKKyAgICAgICAgICAgIC8vIEF1dG8gZm9jdXMgbW9kZSBzaG91bGQgYmUgZGVmYXVsdAorICAgICAgICAgICAgaWYgKGZvY3VzTW9kZXNTdHJpbmcuY29udGFpbnMoQ2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9BVVRPKSkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHN0cmNtcCgKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX01PREVfQVVUTywgZm9jdXNNb2RlKSA9PSAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKDAgPCBjYW1lcmFQYXJhbXMuZ2V0SW50KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRk9DQUxfTEVOR1RIKSk7CisgICAgICAgICAgICBpbnQzMl90IGhvcml6b250YWxWaWV3QW5nbGUgPSBjYW1lcmFQYXJhbXMuZ2V0SW50KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfSE9SSVpPTlRBTF9WSUVXX0FOR0xFKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKCgwIDwgaG9yaXpvbnRhbFZpZXdBbmdsZSkgJiYgKDM2MCA+PSBob3Jpem9udGFsVmlld0FuZ2xlKSk7CisgICAgICAgICAgICBpbnQzMl90IHZlcnRpY2FsVmlld0FuZ2xlID0gY2FtZXJhUGFyYW1zLmdldEludCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1ZFUlRJQ0FMX1ZJRVdfQU5HTEUpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoKDAgPCB2ZXJ0aWNhbFZpZXdBbmdsZSkgJiYgKDM2MCA+PSB2ZXJ0aWNhbFZpZXdBbmdsZSkpOworICAgICAgICAgICAgaW50MzJfdCBqcGVnUXVhbGl0eSA9IGNhbWVyYVBhcmFtcy5nZXRJbnQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9KUEVHX1FVQUxJVFkpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoKDEgPD0ganBlZ1F1YWxpdHkpICYmICgxMDAgPj0ganBlZ1F1YWxpdHkpKTsKKyAgICAgICAgICAgIGludDMyX3QganBlZ1RodW1iUXVhbGl0eSA9IGNhbWVyYVBhcmFtcy5nZXRJbnQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9KUEVHX1RIVU1CTkFJTF9RVUFMSVRZKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKCgxIDw9IGpwZWdUaHVtYlF1YWxpdHkpICYmICgxMDAgPj0ganBlZ1RodW1iUXVhbGl0eSkpOworCisgICAgICAgICAgICBjYW1lcmFQYXJhbXMuc2V0UGljdHVyZVNpemUocGljdHVyZVNpemVzWzBdLndpZHRoLAorICAgICAgICAgICAgICAgICAgICBwaWN0dXJlU2l6ZXNbMF0uaGVpZ2h0KTsKKyAgICAgICAgICAgIGNhbWVyYVBhcmFtcy5zZXRQcmV2aWV3U2l6ZShwcmV2aWV3U2l6ZXNbMF0ud2lkdGgsCisgICAgICAgICAgICAgICAgICAgIHByZXZpZXdTaXplc1swXS5oZWlnaHQpOworCisgICAgICAgICAgICBzZXRQYXJhbWV0ZXJzKGRldmljZTEsIGNhbWVyYVBhcmFtcyk7CisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJzKGRldmljZTEsICZjYW1lcmFQYXJhbXMgLypvdXQqLyk7CisKKyAgICAgICAgICAgIGNhbWVyYVBhcmFtcy5nZXRQaWN0dXJlU2l6ZSgmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoKHBpY3R1cmVTaXplc1swXS53aWR0aCA9PSB3aWR0aCkgJiYKKyAgICAgICAgICAgICAgICAgICAgKHBpY3R1cmVTaXplc1swXS5oZWlnaHQgPT0gaGVpZ2h0KSk7CisgICAgICAgICAgICBjYW1lcmFQYXJhbXMuZ2V0UHJldmlld1NpemUoJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKChwcmV2aWV3U2l6ZXNbMF0ud2lkdGggPT0gd2lkdGgpICYmCisgICAgICAgICAgICAgICAgICAgIChwcmV2aWV3U2l6ZXNbMF0uaGVpZ2h0ID09IGhlaWdodCkpOworCisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlMS0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCB0aGUgc3RhdGljIGNhbWVyYSBjaGFyYWN0ZXJpc3RpY3MgY2FuIGJlIHJldHJpZXZlZAorLy8gc3VjY2Vzc2Z1bGx5LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2U+IGRldmljZTNfMjsKKyAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3M6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WM194KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WM194IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICByZXQgPSBkZXZpY2UzXzItPmdldENhbWVyYUNoYXJhY3RlcmlzdGljcygKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGNoYXJzKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MgcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCogbWV0YWRhdGEgPSAoY2FtZXJhX21ldGFkYXRhX3QqKSBjaGFycy5kYXRhKCk7CisgICAgICAgICAgICAgICAgICAgIHNpemVfdCBleHBlY3RlZFNpemUgPSBjaGFycy5zaXplKCk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgwLCB2YWxpZGF0ZV9jYW1lcmFfbWV0YWRhdGFfc3RydWN0dXJlKG1ldGFkYXRhLCAmZXhwZWN0ZWRTaXplKSk7CisgICAgICAgICAgICAgICAgICAgIHNpemVfdCBlbnRyeUNvdW50ID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV9lbnRyeV9jb3VudChtZXRhZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHdlIGNhbiBkbyBiZXR0ZXIgdGhhbiAwIGhlcmUuIE5lZWQgdG8gY2hlY2sgaG93IG1hbnkgcmVxdWlyZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyaXN0aWNzIGtleXMgd2UndmUgZGVmaW5lZC4KKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0dUKGVudHJ5Q291bnQsIDB1KTsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYUNoYXJhY3RlcmlzdGljcyBtZXRhZGF0YSBlbnRyeSBjb3VudCBpcyAlenUiLCBlbnRyeUNvdW50KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvL0luIGNhc2UgaXQgaXMgc3VwcG9ydGVkIHZlcmlmeSB0aGF0IHRvcmNoIGNhbiBiZSBlbmFibGVkLgorLy9DaGVjayBmb3IgY29ycmVzcG9uZGluZyB0b2NoIGNhbGxiYWNrcyBhcyB3ZWxsLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBzZXRUb3JjaE1vZGUpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIGJvb2wgdG9yY2hDb250cm9sU3VwcG9ydGVkID0gZmFsc2U7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKworICAgIHJldCA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+bVByb3ZpZGVyLT5pc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgKKyAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBib29sIHN1cHBvcnQpIHsKKyAgICAgICAgICAgIEFMT0dJKCJpc1NldFRvcmNoTW9kZVN1cHBvcnRlZCByZXR1cm5zIHN0YXR1czolZCBzdXBwb3J0ZWQ6JWQiLAorICAgICAgICAgICAgICAgICAgICAoaW50KXN0YXR1cywgc3VwcG9ydCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIHRvcmNoQ29udHJvbFN1cHBvcnRlZCA9IHN1cHBvcnQ7CisgICAgICAgIH0pOworCisKKyAgICBzcDxUb3JjaFByb3ZpZGVyQ2I+IGNiID0gbmV3IFRvcmNoUHJvdmlkZXJDYih0aGlzKTsKKyAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBlbnYtPm1Qcm92aWRlci0+c2V0Q2FsbGJhY2soY2IpOworICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2U+IGRldmljZTNfMjsKKyAgICAgICAgICAgIEFMT0dJKCJzZXRUb3JjaE1vZGU6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgICAgICAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlM18yID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIG1Ub3JjaFN0YXR1cyA9IFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRTsKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTNfMi0+c2V0VG9yY2hNb2RlKFRvcmNoTW9kZTo6T04pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBpZiAoIXRvcmNoQ29udHJvbFN1cHBvcnRlZCkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVELCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMgPT0gU3RhdHVzOjpPSyB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblN0YXR1cyA9PSBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0dXJuU3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Ub3JjaExvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRSA9PSBtVG9yY2hTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyhrVG9yY2hUaW1lb3V0U2VjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVG9yY2hDb25kLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFRvcmNoTW9kZVN0YXR1czo6QVZBSUxBQkxFX09OLCBtVG9yY2hTdGF0dXMpOworICAgICAgICAgICAgICAgICAgICAgICAgbVRvcmNoU3RhdHVzID0gVG9yY2hNb2RlU3RhdHVzOjpOT1RfQVZBSUxBQkxFOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlM18yLT5zZXRUb3JjaE1vZGUoVG9yY2hNb2RlOjpPRkYpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Ub3JjaExvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRSA9PSBtVG9yY2hTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyhrVG9yY2hUaW1lb3V0U2VjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVG9yY2hDb25kLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFRvcmNoTW9kZVN0YXR1czo6QVZBSUxBQkxFX09GRiwgbVRvcmNoU3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgQUxPR0koImR1bXBTdGF0ZTogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UxID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIG1Ub3JjaFN0YXR1cyA9IFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRTsKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNldFRvcmNoTW9kZShUb3JjaE1vZGU6Ok9OKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgaWYgKCF0b3JjaENvbnRyb2xTdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpNRVRIT0RfTk9UX1NVUFBPUlRFRCwgcmV0dXJuU3RhdHVzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzID09IFN0YXR1czo6T0sgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5TdGF0dXMgPT0gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRCk7CisgICAgICAgICAgICAgICAgaWYgKHJldHVyblN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtVG9yY2hMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChUb3JjaE1vZGVTdGF0dXM6Ok5PVF9BVkFJTEFCTEUgPT0gbVRvcmNoU3RhdHVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0aW1lb3V0ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1RvcmNoVGltZW91dFNlYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVRvcmNoQ29uZC53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShUb3JjaE1vZGVTdGF0dXM6OkFWQUlMQUJMRV9PTiwgbVRvcmNoU3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1Ub3JjaFN0YXR1cyA9IFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNldFRvcmNoTW9kZShUb3JjaE1vZGU6Ok9GRik7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobVRvcmNoTG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoVG9yY2hNb2RlU3RhdHVzOjpOT1RfQVZBSUxBQkxFID09IG1Ub3JjaFN0YXR1cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKGtUb3JjaFRpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShzdGQ6OmN2X3N0YXR1czo6dGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1Ub3JjaENvbmQud2FpdF91bnRpbChsLCB0aW1lb3V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoVG9yY2hNb2RlU3RhdHVzOjpBVkFJTEFCTEVfT0ZGLCBtVG9yY2hTdGF0dXMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuU3RhdHVzID0gZW52LT5tUHJvdmlkZXItPnNldENhbGxiYWNrKG51bGxwdHIpOworICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworfQorCisvLyBDaGVjayBkdW1wIGZ1bmN0aW9uYWxpdHkuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGR1bXBTdGF0ZSkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UzXzI7CisgICAgICAgICAgICBBTE9HSSgiZHVtcFN0YXRlOiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WM194KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WM194IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIHJhd19oYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICAgICAgICAgIHJhd19oYW5kbGUtPmRhdGFbMF0gPSBvcGVuKGtEdW1wT3V0cHV0LCBPX1JEV1IpOworICAgICAgICAgICAgQVNTRVJUX0dFKHJhd19oYW5kbGUtPmRhdGFbMF0sIDApOworICAgICAgICAgICAgaGlkbF9oYW5kbGUgaGFuZGxlID0gcmF3X2hhbmRsZTsKKyAgICAgICAgICAgIHJldD0gZGV2aWNlM18yLT5kdW1wU3RhdGUoaGFuZGxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgY2xvc2UocmF3X2hhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShyYXdfaGFuZGxlKTsKKyAgICAgICAgfSBlbHNlIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgQUxPR0koImR1bXBTdGF0ZTogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UxID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogcmF3X2hhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDEsIDApOworICAgICAgICAgICAgcmF3X2hhbmRsZS0+ZGF0YVswXSA9IG9wZW4oa0R1bXBPdXRwdXQsIE9fUkRXUik7CisgICAgICAgICAgICBBU1NFUlRfR0UocmF3X2hhbmRsZS0+ZGF0YVswXSwgMCk7CisgICAgICAgICAgICBoaWRsX2hhbmRsZSBoYW5kbGUgPSByYXdfaGFuZGxlOworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+ZHVtcFN0YXRlKGhhbmRsZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgY2xvc2UocmF3X2hhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShyYXdfaGFuZGxlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gT3BlbiwgZHVtcFN0YXRlcywgdGhlbiBjbG9zZQorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBvcGVuQ2xvc2UpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIFJldHVybjx2b2lkPiByZXQ7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgOjphbmRyb2lkOjpzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZT4gZGV2aWNlM18yOworICAgICAgICAgICAgQUxPR0koIm9wZW5DbG9zZTogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UzXzIgPSBkZXZpY2U7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3A8RW1wdHlEZXZpY2VDYj4gY2IgPSBuZXcgRW1wdHlEZXZpY2VDYjsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgcmV0ID0gZGV2aWNlM18yLT5vcGVuKAorICAgICAgICAgICAgICAgIGNiLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgbmV3U2Vzc2lvbikgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZGV2aWNlOjpvcGVuIHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKG5ld1Nlc3Npb24sIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBzZXNzaW9uID0gbmV3U2Vzc2lvbjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIHJhd19oYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICAgICAgICAgIHJhd19oYW5kbGUtPmRhdGFbMF0gPSBvcGVuKGtEdW1wT3V0cHV0LCBPX1JEV1IpOworICAgICAgICAgICAgQVNTRVJUX0dFKHJhd19oYW5kbGUtPmRhdGFbMF0sIDApOworICAgICAgICAgICAgaGlkbF9oYW5kbGUgaGFuZGxlID0gcmF3X2hhbmRsZTsKKyAgICAgICAgICAgIHJldCA9IGRldmljZTNfMi0+ZHVtcFN0YXRlKGhhbmRsZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIGNsb3NlKHJhd19oYW5kbGUtPmRhdGFbMF0pOworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUocmF3X2hhbmRsZSk7CisKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIC8vIFRPRE86IHRlc3QgYWxsIHNlc3Npb24gQVBJIGNhbGxzIHJldHVybiBJTlRFUk5BTF9FUlJPUiBhZnRlciBjbG9zZQorICAgICAgICAgICAgLy8gVE9ETzoga2VlcCBhIHdwIGNvcHkgaGVyZSBhbmQgdmVyaWZ5IHNlc3Npb24gY2Fubm90IGJlIHByb21vdGVkIG91dCBvZiB0aGlzIHNjb3BlCisgICAgICAgIH0gZWxzZSBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogcmF3X2hhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDEsIDApOworICAgICAgICAgICAgcmF3X2hhbmRsZS0+ZGF0YVswXSA9IG9wZW4oa0R1bXBPdXRwdXQsIE9fUkRXUik7CisgICAgICAgICAgICBBU1NFUlRfR0UocmF3X2hhbmRsZS0+ZGF0YVswXSwgMCk7CisgICAgICAgICAgICBoaWRsX2hhbmRsZSBoYW5kbGUgPSByYXdfaGFuZGxlOworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+ZHVtcFN0YXRlKGhhbmRsZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgY2xvc2UocmF3X2hhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShyYXdfaGFuZGxlKTsKKworICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBDaGVjayB3aGV0aGVyIGFsbCBjb21tb24gZGVmYXVsdCByZXF1ZXN0IHNldHRpbmdzIGNhbiBiZSBzdWNlc3NmdWxseQorLy8gY29uc3RydWN0ZWQuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2U+IGRldmljZTNfMjsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBBTE9HSSgiY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5nczogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UzXzIgPSBkZXZpY2U7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3A8RW1wdHlEZXZpY2VDYj4gY2IgPSBuZXcgRW1wdHlEZXZpY2VDYjsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgcmV0ID0gZGV2aWNlM18yLT5vcGVuKAorICAgICAgICAgICAgICAgIGNiLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgbmV3U2Vzc2lvbikgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZGV2aWNlOjpvcGVuIHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKG5ld1Nlc3Npb24sIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBzZXNzaW9uID0gbmV3U2Vzc2lvbjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBmb3IgKHVpbnQzMl90IHQgPSAodWludDMyX3QpIFJlcXVlc3RUZW1wbGF0ZTo6UFJFVklFVzsKKyAgICAgICAgICAgICAgICAgICAgdCA8PSAodWludDMyX3QpIFJlcXVlc3RUZW1wbGF0ZTo6TUFOVUFMOyB0KyspIHsKKyAgICAgICAgICAgICAgICBSZXF1ZXN0VGVtcGxhdGUgcmVxVGVtcGxhdGUgPSAoUmVxdWVzdFRlbXBsYXRlKSB0OworICAgICAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MoCisgICAgICAgICAgICAgICAgICAgIHJlcVRlbXBsYXRlLAorICAgICAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIHJlcSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koImNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MgcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxVGVtcGxhdGUgPT0gUmVxdWVzdFRlbXBsYXRlOjpaRVJPX1NIVVRURVJfTEFHIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcVRlbXBsYXRlID09IFJlcXVlc3RUZW1wbGF0ZTo6TUFOVUFMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3B0aW9uYWwgdGVtcGxhdGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RhdHVzID09IFN0YXR1czo6T0sgfHwgc3RhdHVzID09IFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCogbWV0YWRhdGEgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FtZXJhX21ldGFkYXRhX3QqKSByZXEuZGF0YSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBleHBlY3RlZFNpemUgPSByZXEuc2l6ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgwLCB2YWxpZGF0ZV9jYW1lcmFfbWV0YWRhdGFfc3RydWN0dXJlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEsICZleHBlY3RlZFNpemUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZW50cnlDb3VudCA9IGdldF9jYW1lcmFfbWV0YWRhdGFfZW50cnlfY291bnQobWV0YWRhdGEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHdlIGNhbiBkbyBiZXR0ZXIgdGhhbiAwIGhlcmUuIE5lZWQgdG8gY2hlY2sgaG93IG1hbnkgcmVxdWlyZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXF1ZXN0IGtleXMgd2UndmUgZGVmaW5lZCBmb3IgZWFjaCB0ZW1wbGF0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9HVChlbnRyeUNvdW50LCAwdSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koInRlbXBsYXRlICV1IG1ldGFkYXRhIGVudHJ5IGNvdW50IGlzICV6dSIsIHQsIGVudHJ5Q291bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoMHUsIHJlcS5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgYWxsIHN1cHBvcnRlZCBzdHJlYW0gZm9ybWF0cyBhbmQgc2l6ZXMgY2FuIGJlIGNvbmZpZ3VyZWQKKy8vIHN1Y2Nlc3NmdWxseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc0F2YWlsYWJsZU91dHB1dHMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0U3RyZWFtczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIG9wZW5FbXB0eURldmljZVNlc3Npb24obmFtZSwgZW52LCAmc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmc3RhdGljTWV0YSAvKm91dCovKTsKKworICAgICAgICAgICAgb3V0cHV0U3RyZWFtcy5jbGVhcigpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIGdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0U3RyZWFtcykpOworICAgICAgICAgICAgQVNTRVJUX05FKDB1LCBvdXRwdXRTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgIGludDMyX3Qgc3RyZWFtSWQgPSAwOworICAgICAgICAgICAgZm9yIChhdXRvICZpdCA6IG91dHB1dFN0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICBTdHJlYW0gc3RyZWFtID0ge3N0cmVhbUlkLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGl0LndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaXQuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoaXQuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW0+IHN0cmVhbXMgPSB7c3RyZWFtfTsKKyAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6Ok5PUk1BTF9NT0RFfTsKKyAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uIGhhbENvbmZpZykgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgxdSwgaGFsQ29uZmlnLnN0cmVhbXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKGhhbENvbmZpZy5zdHJlYW1zWzBdLmlkLCBzdHJlYW1JZCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICAgICAgc3RyZWFtSWQrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEoc3RhdGljTWV0YSk7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIGZvciBjb3JyZWN0IGhhbmRsaW5nIG9mIGludmFsaWQvaW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc0ludmFsaWRPdXRwdXRzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+IG91dHB1dFN0cmVhbXM7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGE7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBvcGVuRW1wdHlEZXZpY2VTZXNzaW9uKG5hbWUsIGVudiwgJnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJnN0YXRpY01ldGEgLypvdXQqLyk7CisKKyAgICAgICAgICAgIG91dHB1dFN0cmVhbXMuY2xlYXIoKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgIG91dHB1dFN0cmVhbXMpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgb3V0cHV0U3RyZWFtcy5zaXplKCkpOworCisgICAgICAgICAgICBpbnQzMl90IHN0cmVhbUlkID0gMDsKKyAgICAgICAgICAgIFN0cmVhbSBzdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKDApLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKDApLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKG91dHB1dFN0cmVhbXNbMF0uZm9ybWF0KSwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtPiBzdHJlYW1zID0ge3N0cmVhbX07CisgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbikgeworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKChTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQgPT0gcykgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiA9PSBzKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBzdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFVJTlQzMl9NQVgpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFVJTlQzMl9NQVgpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKG91dHB1dFN0cmVhbXNbMF0uZm9ybWF0KSwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgc3RyZWFtc1swXSA9IHN0cmVhbTsKKyAgICAgICAgICAgIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbikgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgZm9yIChhdXRvICZpdCA6IG91dHB1dFN0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICBzdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChpdC53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGl0LmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKFVJTlQzMl9NQVgpLAorICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgICAgIHN0cmVhbXNbMF0gPSBzdHJlYW07CisgICAgICAgICAgICAgICAgY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIHMpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICAgICAgc3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaXQud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChpdC5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChpdC5mb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgc3RhdGljX2Nhc3Q8U3RyZWFtUm90YXRpb24+IChVSU5UMzJfTUFYKX07CisgICAgICAgICAgICAgICAgc3RyZWFtc1swXSA9IHN0cmVhbTsKKyAgICAgICAgICAgICAgICBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOjpOT1JNQUxfTU9ERX07CisgICAgICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgcyk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyZWVfY2FtZXJhX21ldGFkYXRhKHN0YXRpY01ldGEpOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBDaGVjayB3aGV0aGVyIGFsbCBzdXBwb3J0ZWQgWlNMIG91dHB1dCBzdHJlYW0gY29tYmluYXRpb25zIGNhbiBiZQorLy8gY29uZmlndXJlZCBzdWNjZXNzZnVsbHkuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGNvbmZpZ3VyZVN0cmVhbXNaU0xJbnB1dE91dHB1dHMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gaW5wdXRTdHJlYW1zOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVpTTElucHV0T3V0cHV0PiBpbnB1dE91dHB1dE1hcDsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIG9wZW5FbXB0eURldmljZVNlc3Npb24obmFtZSwgZW52LCAmc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmc3RhdGljTWV0YSAvKm91dCovKTsKKworICAgICAgICAgICAgU3RhdHVzIHJjID0gaXNaU0xNb2RlQXZhaWxhYmxlKHN0YXRpY01ldGEpOworICAgICAgICAgICAgaWYgKFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQgPT0gcmMpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKKworICAgICAgICAgICAgaW5wdXRTdHJlYW1zLmNsZWFyKCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgZ2V0QXZhaWxhYmxlT3V0cHV0U3RyZWFtcyhzdGF0aWNNZXRhLAorICAgICAgICAgICAgICAgICAgICBpbnB1dFN0cmVhbXMpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgaW5wdXRTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgIGlucHV0T3V0cHV0TWFwLmNsZWFyKCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgZ2V0WlNMSW5wdXRPdXRwdXRNYXAoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgaW5wdXRPdXRwdXRNYXApKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgaW5wdXRPdXRwdXRNYXAuc2l6ZSgpKTsKKworICAgICAgICAgICAgaW50MzJfdCBzdHJlYW1JZCA9IDA7CisgICAgICAgICAgICBmb3IgKGF1dG8gJmlucHV0SXRlciA6IGlucHV0T3V0cHV0TWFwKSB7CisgICAgICAgICAgICAgICAgQXZhaWxhYmxlU3RyZWFtIGlucHV0OworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLAorICAgICAgICAgICAgICAgICAgICAgICAgZmluZExhcmdlc3RTaXplKGlucHV0U3RyZWFtcywgaW5wdXRJdGVyLmlucHV0Rm9ybWF0LCBpbnB1dCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgaW5wdXRTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgICAgICBBdmFpbGFibGVTdHJlYW0gb3V0cHV0VGhyZXNob2xkID0ge0lOVDMyX01BWCwgSU5UMzJfTUFYLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRJdGVyLm91dHB1dEZvcm1hdH07CisgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRTdHJlYW1zOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRTdHJlYW1zLCAmb3V0cHV0VGhyZXNob2xkKSk7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvICZvdXRwdXRJdGVyIDogb3V0cHV0U3RyZWFtcykgeworICAgICAgICAgICAgICAgICAgICBTdHJlYW0genNsU3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGlucHV0LndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGlucHV0LmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChpbnB1dC5mb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdSQUxMT0NfVVNBR0VfSFdfQ0FNRVJBX1pTTCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbSBpbnB1dFN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpJTlBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGlucHV0LndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGlucHV0LmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChpbnB1dC5mb3JtYXQpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtIG91dHB1dFN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChvdXRwdXRJdGVyLndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKG91dHB1dEl0ZXIuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKG91dHB1dEl0ZXIuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisKKyAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtPiBzdHJlYW1zID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0U3RyZWFtLCB6c2xTdHJlYW0sIG91dHB1dFN0cmVhbX07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb24gY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6Ok5PUk1BTF9NT0RFfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtzdHJlYW1JZF0gKFN0YXR1cyBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsQ29uZmlnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoM3UsIGhhbENvbmZpZy5zdHJlYW1zLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyZWVfY2FtZXJhX21ldGFkYXRhKHN0YXRpY01ldGEpOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCBhbGwgc3VwcG9ydGVkIHByZXZpZXcgKyBzdGlsbCBjYXB0dXJlIHN0cmVhbSBjb21iaW5hdGlvbnMKKy8vIGNhbiBiZSBjb25maWd1cmVkIHN1Y2Nlc3NmdWxseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc1ByZXZpZXdTdGlsbE91dHB1dHMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0QmxvYlN0cmVhbXM7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRQcmV2aWV3U3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgQXZhaWxhYmxlU3RyZWFtIGJsb2JUaHJlc2hvbGQgPSB7SU5UMzJfTUFYLCBJTlQzMl9NQVgsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihQaXhlbEZvcm1hdDo6QkxPQil9OworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgb3BlbkVtcHR5RGV2aWNlU2Vzc2lvbihuYW1lLCBlbnYsICZzZXNzaW9uIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZzdGF0aWNNZXRhIC8qb3V0Ki8pOworCisgICAgICAgICAgICBvdXRwdXRCbG9iU3RyZWFtcy5jbGVhcigpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIGdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0QmxvYlN0cmVhbXMsICZibG9iVGhyZXNob2xkKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoMHUsIG91dHB1dEJsb2JTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgIG91dHB1dFByZXZpZXdTdHJlYW1zLmNsZWFyKCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgZ2V0QXZhaWxhYmxlT3V0cHV0U3RyZWFtcyhzdGF0aWNNZXRhLAorICAgICAgICAgICAgICAgICAgICBvdXRwdXRQcmV2aWV3U3RyZWFtcywgJnByZXZpZXdUaHJlc2hvbGQpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgb3V0cHV0UHJldmlld1N0cmVhbXMuc2l6ZSgpKTsKKworICAgICAgICAgICAgaW50MzJfdCBzdHJlYW1JZCA9IDA7CisgICAgICAgICAgICBmb3IgKGF1dG8gJmJsb2JJdGVyIDogb3V0cHV0QmxvYlN0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8gJnByZXZpZXdJdGVyIDogb3V0cHV0UHJldmlld1N0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtIHByZXZpZXdTdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAocHJldmlld0l0ZXIud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAocHJldmlld0l0ZXIuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKHByZXZpZXdJdGVyLmZvcm1hdCksIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgICAgICAgICBTdHJlYW0gYmxvYlN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChibG9iSXRlci53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChibG9iSXRlci5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoYmxvYkl0ZXIuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbT4gc3RyZWFtcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3U3RyZWFtLCBibG9iU3RyZWFtfTsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbiBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxDb25maWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgydSwgaGFsQ29uZmlnLnN0cmVhbXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEoc3RhdGljTWV0YSk7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIEluIGNhc2UgY29uc3RyYWluZWQgbW9kZSBpcyBzdXBwb3J0ZWQsIHRlc3Qgd2hldGhlciBpdCBjYW4gYmUKKy8vIGNvbmZpZ3VyZWQuIEFkZGl0aW9uYWxseSBjaGVjayBmb3IgY29tbW9uIGludmFsaWQgaW5wdXRzIHdoZW4KKy8vIHVzaW5nIHRoaXMgbW9kZS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc0NvbnN0cmFpbmVkT3V0cHV0cykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGE7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBvcGVuRW1wdHlEZXZpY2VTZXNzaW9uKG5hbWUsIGVudiwgJnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJnN0YXRpY01ldGEgLypvdXQqLyk7CisKKyAgICAgICAgICAgIFN0YXR1cyByYyA9IGlzQ29uc3RyYWluZWRNb2RlQXZhaWxhYmxlKHN0YXRpY01ldGEpOworICAgICAgICAgICAgaWYgKFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQgPT0gcmMpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKKworICAgICAgICAgICAgQXZhaWxhYmxlU3RyZWFtIGhmclN0cmVhbTsKKyAgICAgICAgICAgIHJjID0gcGlja0NvbnN0cmFpbmVkTW9kZVNpemUoc3RhdGljTWV0YSwgaGZyU3RyZWFtKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByYyk7CisKKyAgICAgICAgICAgIGludDMyX3Qgc3RyZWFtSWQgPSAwOworICAgICAgICAgICAgU3RyZWFtIHN0cmVhbSA9IHtzdHJlYW1JZCwgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGhmclN0cmVhbS53aWR0aCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaGZyU3RyZWFtLmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoaGZyU3RyZWFtLmZvcm1hdCksIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbT4gc3RyZWFtcyA9IHtzdHJlYW19OworICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbiBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6OkNPTlNUUkFJTkVEX0hJR0hfU1BFRURfTU9ERX07CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsQ29uZmlnKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHMpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgxdSwgaGFsQ29uZmlnLnN0cmVhbXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoaGFsQ29uZmlnLnN0cmVhbXNbMF0uaWQsIHN0cmVhbUlkKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIHN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoMCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoMCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoaGZyU3RyZWFtLmZvcm1hdCksIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgIHN0cmVhbXNbMF0gPSBzdHJlYW07CisgICAgICAgICAgICBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6OkNPTlNUUkFJTkVEX0hJR0hfU1BFRURfTU9ERX07CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRSgoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UID09IHMpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFN0YXR1czo6SU5URVJOQUxfRVJST1IgPT0gcykpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChVSU5UMzJfTUFYKSwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChVSU5UMzJfTUFYKSwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChoZnJTdHJlYW0uZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgc3RyZWFtc1swXSA9IHN0cmVhbTsKKyAgICAgICAgICAgIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Q09OU1RSQUlORURfSElHSF9TUEVFRF9NT0RFfTsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbc3RyZWFtSWRdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbikgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChoZnJTdHJlYW0ud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGhmclN0cmVhbS5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKFVJTlQzMl9NQVgpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICBzdHJlYW1zWzBdID0gc3RyZWFtOworICAgICAgICAgICAgY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOjpDT05TVFJBSU5FRF9ISUdIX1NQRUVEX01PREV9OworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtzdHJlYW1JZF0gKFN0YXR1cyBzLAorICAgICAgICAgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgcyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBmcmVlX2NhbWVyYV9tZXRhZGF0YShzdGF0aWNNZXRhKTsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgYWxsIHN1cHBvcnRlZCB2aWRlbyArIHNuYXBzaG90IHN0cmVhbSBjb21iaW5hdGlvbnMgY2FuCisvLyBiZSBjb25maWd1cmVkIHN1Y2Nlc3NmdWxseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc1ZpZGVvU3RpbGxPdXRwdXRzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+IG91dHB1dEJsb2JTdHJlYW1zOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0VmlkZW9TdHJlYW1zOworICAgIEF2YWlsYWJsZVN0cmVhbSB2aWRlb1RocmVzaG9sZCA9IHtrTWF4VmlkZW9XaWR0aCwga01heFZpZGVvSGVpZ2h0LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQpfTsKKyAgICBBdmFpbGFibGVTdHJlYW0gYmxvYlRocmVzaG9sZCA9IHtrTWF4VmlkZW9XaWR0aCwga01heFZpZGVvSGVpZ2h0LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OkJMT0IpfTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIG9wZW5FbXB0eURldmljZVNlc3Npb24obmFtZSwgZW52LCAmc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmc3RhdGljTWV0YSAvKm91dCovKTsKKworICAgICAgICAgICAgb3V0cHV0QmxvYlN0cmVhbXMuY2xlYXIoKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgIG91dHB1dEJsb2JTdHJlYW1zLCAmYmxvYlRocmVzaG9sZCkpOworICAgICAgICAgICAgQVNTRVJUX05FKDB1LCBvdXRwdXRCbG9iU3RyZWFtcy5zaXplKCkpOworCisgICAgICAgICAgICBvdXRwdXRWaWRlb1N0cmVhbXMuY2xlYXIoKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgIG91dHB1dFZpZGVvU3RyZWFtcywgJnZpZGVvVGhyZXNob2xkKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoMHUsIG91dHB1dFZpZGVvU3RyZWFtcy5zaXplKCkpOworCisgICAgICAgICAgICBpbnQzMl90IHN0cmVhbUlkID0gMDsKKyAgICAgICAgICAgIGZvciAoYXV0byAmYmxvYkl0ZXIgOiBvdXRwdXRCbG9iU3RyZWFtcykgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byAmdmlkZW9JdGVyIDogb3V0cHV0VmlkZW9TdHJlYW1zKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbSB2aWRlb1N0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+ICh2aWRlb0l0ZXIud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAodmlkZW9JdGVyLmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+ICh2aWRlb0l0ZXIuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbSBibG9iU3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGJsb2JJdGVyLndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGJsb2JJdGVyLmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChibG9iSXRlci5mb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdSQUxMT0NfVVNBR0VfSFdfVklERU9fRU5DT0RFUiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbT4gc3RyZWFtcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb1N0cmVhbSwgYmxvYlN0cmVhbX07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb24gY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6Ok5PUk1BTF9NT0RFfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtzdHJlYW1JZF0gKFN0YXR1cyBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsQ29uZmlnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoMnUsIGhhbENvbmZpZy5zdHJlYW1zLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyZWVfY2FtZXJhX21ldGFkYXRhKHN0YXRpY01ldGEpOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBHZW5lcmF0ZSBhbmQgdmVyaWZ5IGEgY2FtZXJhIGNhcHR1cmUgcmVxdWVzdAorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3RQcmV2aWV3KSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgdWludDY0X3QgYnVmZmVySWQgPSAxOworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyID0gMTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzx1aW50OF90PiBzZXR0aW5nczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBTdHJlYW0gcHJldmlld1N0cmVhbTsKKyAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsU3RyZWFtQ29uZmlnOworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBjb25maWd1cmVQcmV2aWV3U3RyZWFtKG5hbWUsIGVudiwgJnByZXZpZXdUaHJlc2hvbGQsCisgICAgICAgICAgICAgICAgICAgICZzZXNzaW9uIC8qb3V0Ki8sICZwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZoYWxTdHJlYW1Db25maWcgLypvdXQqLyk7CisKKyAgICAgICAgICAgIFJlcXVlc3RUZW1wbGF0ZSByZXFUZW1wbGF0ZSA9IFJlcXVlc3RUZW1wbGF0ZTo6UFJFVklFVzsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzKHJlcVRlbXBsYXRlLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgcmVxKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncyA9IHJlcTsgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3A8R3JhcGhpY0J1ZmZlcj4gZ2IgPSBuZXcgR3JhcGhpY0J1ZmZlcigKKyAgICAgICAgICAgICAgICBwcmV2aWV3U3RyZWFtLndpZHRoLCBwcmV2aWV3U3RyZWFtLmhlaWdodCwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5vdmVycmlkZUZvcm1hdCksCisgICAgICAgICAgICAgICAgMSwgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZSgKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0ucHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uY29uc3VtZXJVc2FnZSkpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGdiLmdldCgpKTsKKyAgICAgICAgICAgIFN0cmVhbUJ1ZmZlciBvdXRwdXRCdWZmZXIgPSB7aGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uaWQsCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcklkLCBoaWRsX2hhbmRsZShnYi0+Z2V0TmF0aXZlQnVmZmVyKCktPmhhbmRsZSksCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6T0ssIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtQnVmZmVyPiBvdXRwdXRCdWZmZXJzID0geworICAgICAgICAgICAgICAgICAgICBvdXRwdXRCdWZmZXJ9OworICAgICAgICAgICAgU3RyZWFtQnVmZmVyIGVtcHR5SW5wdXRCdWZmZXIgPSB7LTEsIDAsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6RVJST1IsIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgQ2FwdHVyZVJlcXVlc3QgcmVxdWVzdCA9IHtmcmFtZU51bWJlciwgMCAvKiBmbXFTZXR0aW5nc1NpemUgKi8sIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICBlbXB0eUlucHV0QnVmZmVyLCBvdXRwdXRCdWZmZXJzfTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEJ1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtUmVzdWx0RnJhbWVOdW1iZXIgPSBmcmFtZU51bWJlcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgICAgICB1aW50MzJfdCBudW1SZXF1ZXN0UHJvY2Vzc2VkID0gMDsKKyAgICAgICAgICAgIGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiBjYWNoZXNUb1JlbW92ZTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXR1cm5TdGF0dXMgPSBzZXNzaW9uLT5wcm9jZXNzQ2FwdHVyZVJlcXVlc3QoCisgICAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0fSwKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgICAgICAgICAgICAgIFsmc3RhdHVzLCAmbnVtUmVxdWVzdFByb2Nlc3NlZF0gKGF1dG8gcywgdWludDMyX3QgbikgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gczsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bVJlcXVlc3RQcm9jZXNzZWQgPSBuOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobnVtUmVxdWVzdFByb2Nlc3NlZCwgMXUpOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoMCA9PSBtUmVzdWx0QnVmZmVycy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byB0aW1lb3V0ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKGtTdHJlYW1CdWZmZXJUaW1lb3V0U2VjKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1SZXN1bHRDb25kaXRpb24ud2FpdF91bnRpbChsLCB0aW1lb3V0KSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEJ1ZmZlclN0YXR1czo6T0ssIG1SZXN1bHRCdWZmZXJzWzBdLnN0YXR1cyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHByZXZpZXdTdHJlYW0uaWQsIG1SZXN1bHRCdWZmZXJzWzBdLnN0cmVhbUlkKTsKKworICAgICAgICAgICAgICAgIHJlcXVlc3QuZnJhbWVOdW1iZXIrKzsKKyAgICAgICAgICAgICAgICAvL0VtcHR5IHNldHRpbmdzIHNob3VsZCBiZSBzdXBwb3J0ZWQgYWZ0ZXIgdGhlIGZpcnN0IGNhbGwKKyAgICAgICAgICAgICAgICAvL2ZvciByZXBlYXRpbmcgcmVxdWVzdHMuCisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXR0aW5ncy5zZXRUb0V4dGVybmFsKG51bGxwdHIsIDAsIHRydWUpOworICAgICAgICAgICAgICAgIG1SZXN1bHRCdWZmZXJzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEZyYW1lTnVtYmVyKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IHNlc3Npb24tPnByb2Nlc3NDYXB0dXJlUmVxdWVzdCgKKyAgICAgICAgICAgICAgICAgICAge3JlcXVlc3R9LAorICAgICAgICAgICAgICAgICAgICBjYWNoZXNUb1JlbW92ZSwKKyAgICAgICAgICAgICAgICAgICAgWyZzdGF0dXMsICZudW1SZXF1ZXN0UHJvY2Vzc2VkXSAoYXV0byBzLCB1aW50MzJfdCBuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBzOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtUmVxdWVzdFByb2Nlc3NlZCA9IG47CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShudW1SZXF1ZXN0UHJvY2Vzc2VkLCAxdSk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIHdoaWxlICgwID09IG1SZXN1bHRCdWZmZXJzLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1N0cmVhbUJ1ZmZlclRpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEJ1ZmZlclN0YXR1czo6T0ssIG1SZXN1bHRCdWZmZXJzWzBdLnN0YXR1cyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHByZXZpZXdTdHJlYW0uaWQsIG1SZXN1bHRCdWZmZXJzWzBdLnN0cmVhbUlkKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBUZXN0IHdoZXRoZXIgYW4gaW5jb3JyZWN0IGNhcHR1cmUgcmVxdWVzdCB3aXRoIG1pc3Npbmcgc2V0dGluZ3Mgd2lsbAorLy8gYmUgcmVwb3J0ZWQgY29ycmVjdGx5LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3RJbnZhbGlkU2luZ2xlUHJldmlldykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRQcmV2aWV3U3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgdWludDY0X3QgYnVmZmVySWQgPSAxOworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyID0gMTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzx1aW50OF90PiBzZXR0aW5nczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBTdHJlYW0gcHJldmlld1N0cmVhbTsKKyAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsU3RyZWFtQ29uZmlnOworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBjb25maWd1cmVQcmV2aWV3U3RyZWFtKG5hbWUsIGVudiwgJnByZXZpZXdUaHJlc2hvbGQsCisgICAgICAgICAgICAgICAgICAgICZzZXNzaW9uIC8qb3V0Ki8sICZwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZoYWxTdHJlYW1Db25maWcgLypvdXQqLyk7CisKKyAgICAgICAgICAgIHNwPEdyYXBoaWNCdWZmZXI+IGdiID0gbmV3IEdyYXBoaWNCdWZmZXIoCisgICAgICAgICAgICAgICAgcHJldmlld1N0cmVhbS53aWR0aCwgcHJldmlld1N0cmVhbS5oZWlnaHQsCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0ub3ZlcnJpZGVGb3JtYXQpLAorICAgICAgICAgICAgICAgIDEsIGFuZHJvaWRfY29udmVydEdyYWxsb2MxVG8wVXNhZ2UoCisgICAgICAgICAgICAgICAgICAgICAgIGhhbFN0cmVhbUNvbmZpZy5zdHJlYW1zWzBdLnByb2R1Y2VyVXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgIGhhbFN0cmVhbUNvbmZpZy5zdHJlYW1zWzBdLmNvbnN1bWVyVXNhZ2UpKTsKKworICAgICAgICAgICAgU3RyZWFtQnVmZmVyIG91dHB1dEJ1ZmZlciA9IHtoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5pZCwKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVySWQsIGhpZGxfaGFuZGxlKGdiLT5nZXROYXRpdmVCdWZmZXIoKS0+aGFuZGxlKSwKKyAgICAgICAgICAgICAgICAgICAgQnVmZmVyU3RhdHVzOjpPSywgbnVsbHB0ciwgbnVsbHB0cn07CisgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW1CdWZmZXI+IG91dHB1dEJ1ZmZlcnMgPSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dEJ1ZmZlcn07CisgICAgICAgICAgICBTdHJlYW1CdWZmZXIgZW1wdHlJbnB1dEJ1ZmZlciA9IHstMSwgMCwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgQnVmZmVyU3RhdHVzOjpFUlJPUiwgbnVsbHB0ciwgbnVsbHB0cn07CisgICAgICAgICAgICBDYXB0dXJlUmVxdWVzdCByZXF1ZXN0ID0ge2ZyYW1lTnVtYmVyLCAwIC8qIGZtcVNldHRpbmdzU2l6ZSAqLywgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgIGVtcHR5SW5wdXRCdWZmZXIsIG91dHB1dEJ1ZmZlcnN9OworCisgICAgICAgICAgICAvL1NldHRpbmdzIHdlcmUgbm90IGNvcnJlY3RseSBpbml0aWFsaXplZCwgd2Ugc2hvdWxkIGZhaWwgaGVyZQorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgICAgICAgICB1aW50MzJfdCBudW1SZXF1ZXN0UHJvY2Vzc2VkID0gMDsKKyAgICAgICAgICAgIGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiBjYWNoZXNUb1JlbW92ZTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBzZXNzaW9uLT5wcm9jZXNzQ2FwdHVyZVJlcXVlc3QoCisgICAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0fSwKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgICAgICAgICAgICAgIFsmc3RhdHVzLCAmbnVtUmVxdWVzdFByb2Nlc3NlZF0gKGF1dG8gcywgdWludDMyX3QgbikgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gczsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bVJlcXVlc3RQcm9jZXNzZWQgPSBuOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobnVtUmVxdWVzdFByb2Nlc3NlZCwgMHUpOworCisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIHdoZXRoZXIgYW4gaW52YWxpZCBjYXB0dXJlIHJlcXVlc3Qgd2l0aCBtaXNzaW5nIG91dHB1dCBidWZmZXJzCisvLyB3aWxsIGJlIHJlcG9ydGVkIGNvcnJlY3RseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0SW52YWxpZEJ1ZmZlcikgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRCbG9iU3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgdWludDMyX3QgZnJhbWVOdW1iZXIgPSAxOworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPHVpbnQ4X3Q+IHNldHRpbmdzOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIFN0cmVhbSBwcmV2aWV3U3RyZWFtOworICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxTdHJlYW1Db25maWc7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIGNvbmZpZ3VyZVByZXZpZXdTdHJlYW0obmFtZSwgZW52LCAmcHJldmlld1RocmVzaG9sZCwKKyAgICAgICAgICAgICAgICAgICAgJnNlc3Npb24gLypvdXQqLywgJnByZXZpZXdTdHJlYW0gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKTsKKworICAgICAgICAgICAgUmVxdWVzdFRlbXBsYXRlIHJlcVRlbXBsYXRlID0gUmVxdWVzdFRlbXBsYXRlOjpQUkVWSUVXOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MocmVxVGVtcGxhdGUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiByZXEpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzID0gcmVxOyB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW1CdWZmZXI+IGVtcHR5T3V0cHV0QnVmZmVyczsKKyAgICAgICAgICAgIFN0cmVhbUJ1ZmZlciBlbXB0eUlucHV0QnVmZmVyID0gey0xLCAwLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICBCdWZmZXJTdGF0dXM6OkVSUk9SLCBudWxscHRyLCBudWxscHRyfTsKKyAgICAgICAgICAgIENhcHR1cmVSZXF1ZXN0IHJlcXVlc3QgPSB7ZnJhbWVOdW1iZXIsIDAvKiBmbXFTZXR0aW5nc1NpemUgKi8sIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICBlbXB0eUlucHV0QnVmZmVyLCBlbXB0eU91dHB1dEJ1ZmZlcnN9OworCisgICAgICAgICAgICAvL091dHB1dCBidWZmZXJzIGFyZSBtaXNzaW5nLCB3ZSBzaG91bGQgZmFpbCBoZXJlCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gU3RhdHVzOjpPSzsKKyAgICAgICAgICAgIHVpbnQzMl90IG51bVJlcXVlc3RQcm9jZXNzZWQgPSAwOworICAgICAgICAgICAgaGlkbF92ZWM8QnVmZmVyQ2FjaGU+IGNhY2hlc1RvUmVtb3ZlOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+cHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KAorICAgICAgICAgICAgICAgICAgICB7cmVxdWVzdH0sCisgICAgICAgICAgICAgICAgICAgIGNhY2hlc1RvUmVtb3ZlLAorICAgICAgICAgICAgICAgICAgICBbJnN0YXR1cywgJm51bVJlcXVlc3RQcm9jZXNzZWRdIChhdXRvIHMsIHVpbnQzMl90IG4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IHM7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1SZXF1ZXN0UHJvY2Vzc2VkID0gbjsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKG51bVJlcXVlc3RQcm9jZXNzZWQsIDB1KTsKKworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBHZW5lcmF0ZSwgdHJpZ2dlciBhbmQgZmx1c2ggYSBwcmV2aWV3IHJlcXVlc3QKK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgZmx1c2hQcmV2aWV3UmVxdWVzdCkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRQcmV2aWV3U3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgdWludDY0X3QgYnVmZmVySWQgPSAxOworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyID0gMTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzx1aW50OF90PiBzZXR0aW5nczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBTdHJlYW0gcHJldmlld1N0cmVhbTsKKyAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsU3RyZWFtQ29uZmlnOworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBjb25maWd1cmVQcmV2aWV3U3RyZWFtKG5hbWUsIGVudiwgJnByZXZpZXdUaHJlc2hvbGQsCisgICAgICAgICAgICAgICAgICAgICZzZXNzaW9uIC8qb3V0Ki8sICZwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZoYWxTdHJlYW1Db25maWcgLypvdXQqLyk7CisKKyAgICAgICAgICAgIFJlcXVlc3RUZW1wbGF0ZSByZXFUZW1wbGF0ZSA9IFJlcXVlc3RUZW1wbGF0ZTo6UFJFVklFVzsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzKHJlcVRlbXBsYXRlLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgcmVxKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncyA9IHJlcTsgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3A8R3JhcGhpY0J1ZmZlcj4gZ2IgPSBuZXcgR3JhcGhpY0J1ZmZlcigKKyAgICAgICAgICAgICAgICBwcmV2aWV3U3RyZWFtLndpZHRoLCBwcmV2aWV3U3RyZWFtLmhlaWdodCwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5vdmVycmlkZUZvcm1hdCksCisgICAgICAgICAgICAgICAgMSwgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZSgKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0ucHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uY29uc3VtZXJVc2FnZSkpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGdiLmdldCgpKTsKKyAgICAgICAgICAgIFN0cmVhbUJ1ZmZlciBvdXRwdXRCdWZmZXIgPSB7aGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uaWQsCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcklkLCBoaWRsX2hhbmRsZShnYi0+Z2V0TmF0aXZlQnVmZmVyKCktPmhhbmRsZSksCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6T0ssIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtQnVmZmVyPiBvdXRwdXRCdWZmZXJzID0geworICAgICAgICAgICAgICAgICAgICBvdXRwdXRCdWZmZXJ9OworICAgICAgICAgICAgY29uc3QgU3RyZWFtQnVmZmVyIGVtcHR5SW5wdXRCdWZmZXIgPSB7LTEsIDAsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6RVJST1IsIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgQ2FwdHVyZVJlcXVlc3QgcmVxdWVzdCA9IHtmcmFtZU51bWJlciwgMCAvKiBmbXFTZXR0aW5nc1NpemUgKi8sIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICBlbXB0eUlucHV0QnVmZmVyLCBvdXRwdXRCdWZmZXJzfTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEJ1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtRXJyb3JzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEZyYW1lTnVtYmVyID0gZnJhbWVOdW1iZXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICAgICAgdWludDMyX3QgbnVtUmVxdWVzdFByb2Nlc3NlZCA9IDA7CisgICAgICAgICAgICBoaWRsX3ZlYzxCdWZmZXJDYWNoZT4gY2FjaGVzVG9SZW1vdmU7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5wcm9jZXNzQ2FwdHVyZVJlcXVlc3QoCisgICAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0fSwKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgICAgICAgICAgICAgIFsmc3RhdHVzLCAmbnVtUmVxdWVzdFByb2Nlc3NlZF0gKGF1dG8gcywgdWludDMyX3QgbikgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gczsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bVJlcXVlc3RQcm9jZXNzZWQgPSBuOworICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShudW1SZXF1ZXN0UHJvY2Vzc2VkLCAxdSk7CisgICAgICAgICAgICAvL0ZsdXNoIGJlZm9yZSB3YWl0aW5nIGZvciByZXF1ZXN0IHRvIGNvbXBsZXRlLgorICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gc2Vzc2lvbi0+Zmx1c2goKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIHdoaWxlICgoMCA9PSBtUmVzdWx0QnVmZmVycy5zaXplKCkpICYmICgwID09IG1FcnJvcnMuc2l6ZSgpKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1N0cmVhbUJ1ZmZlclRpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobUVycm9ycy5lbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShCdWZmZXJTdGF0dXM6Ok9LLCBtUmVzdWx0QnVmZmVyc1swXS5zdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEocHJldmlld1N0cmVhbS5pZCwgbVJlc3VsdEJ1ZmZlcnNbMF0uc3RyZWFtSWQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoYXV0byAmZXJyb3IgOiBtRXJyb3JzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGVycm9yLmVycm9yQ29kZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9SRVFVRVNUOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9SRVNVTFQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vRXhwZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFcnJvckNvZGU6OkVSUk9SX0JVRkZFUjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9FeHBlY3RlZCBhcyB3ZWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShmcmFtZU51bWJlciwgZXJyb3IuZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEocHJldmlld1N0cmVhbS5pZCwgZXJyb3IuZXJyb3JTdHJlYW1JZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9ERVZJQ0U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFJTCgpIDw8IlVuZXhwZWN0ZWQgZXJyb3I6IiA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGVycm9yLmVycm9yQ29kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgY2FtZXJhIGZsdXNoZXMgY29ycmVjdGx5IHdpdGhvdXQgYW55IHBlbmRpbmcgcmVxdWVzdHMuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGZsdXNoRW1wdHkpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0UHJldmlld1N0cmVhbXM7CisgICAgQXZhaWxhYmxlU3RyZWFtIHByZXZpZXdUaHJlc2hvbGQgPSB7a01heFByZXZpZXdXaWR0aCwga01heFByZXZpZXdIZWlnaHQsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihQaXhlbEZvcm1hdDo6SU1QTEVNRU5UQVRJT05fREVGSU5FRCl9OworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIFN0cmVhbSBwcmV2aWV3U3RyZWFtOworICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxTdHJlYW1Db25maWc7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIGNvbmZpZ3VyZVByZXZpZXdTdHJlYW0obmFtZSwgZW52LCAmcHJldmlld1RocmVzaG9sZCwKKyAgICAgICAgICAgICAgICAgICAgJnNlc3Npb24gLypvdXQqLywgJnByZXZpZXdTdHJlYW0gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEJ1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtRXJyb3JzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEZyYW1lTnVtYmVyID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gc2Vzc2lvbi0+Zmx1c2goKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoa0VtcHR5Rmx1c2hUaW1lb3V0TVNlYyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShtRXJyb3JzLmVtcHR5KCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKG1SZXN1bHRCdWZmZXJzLmVtcHR5KCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBSZXRyaWV2ZSBhbGwgdmFsaWQgb3V0cHV0IHN0cmVhbSByZXNvbHV0aW9ucyBmcm9tIHRoZSBjYW1lcmEKKy8vIHN0YXRpYyBjaGFyYWN0ZXJpc3RpY3MuCitTdGF0dXMgQ2FtZXJhSGlkbFRlc3Q6OmdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGEsCisgICAgICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gJm91dHB1dFN0cmVhbXMsCisgICAgICAgIGNvbnN0IEF2YWlsYWJsZVN0cmVhbSAqdGhyZXNob2xkKSB7CisgICAgaWYgKG51bGxwdHIgPT0gc3RhdGljTWV0YSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSBlbnRyeTsKKyAgICBpbnQgcmMgPSBmaW5kX2NhbWVyYV9tZXRhZGF0YV9yb19lbnRyeShzdGF0aWNNZXRhLAorICAgICAgICAgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1NUUkVBTV9DT05GSUdVUkFUSU9OUywgJmVudHJ5KTsKKyAgICBpZiAoKDAgIT0gcmMpIHx8ICgwICE9IChlbnRyeS5jb3VudCAlIDQpKSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7IGkrPTQpIHsKKyAgICAgICAgaWYgKEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9TVFJFQU1fQ09ORklHVVJBVElPTlNfT1VUUFVUID09CisgICAgICAgICAgICAgICAgZW50cnkuZGF0YS5pMzJbaSArIDNdKSB7CisgICAgICAgICAgICBpZihudWxscHRyID09IHRocmVzaG9sZCkgeworICAgICAgICAgICAgICAgIEF2YWlsYWJsZVN0cmVhbSBzID0ge2VudHJ5LmRhdGEuaTMyW2krMV0sCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLmkzMltpKzJdLCBlbnRyeS5kYXRhLmkzMltpXX07CisgICAgICAgICAgICAgICAgb3V0cHV0U3RyZWFtcy5wdXNoX2JhY2socyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICgodGhyZXNob2xkLT5mb3JtYXQgPT0gZW50cnkuZGF0YS5pMzJbaV0pICYmCisgICAgICAgICAgICAgICAgICAgICAgICAodGhyZXNob2xkLT53aWR0aCA+PSBlbnRyeS5kYXRhLmkzMltpKzFdKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKHRocmVzaG9sZC0+aGVpZ2h0ID49IGVudHJ5LmRhdGEuaTMyW2krMl0pKSB7CisgICAgICAgICAgICAgICAgICAgIEF2YWlsYWJsZVN0cmVhbSBzID0ge2VudHJ5LmRhdGEuaTMyW2krMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkuZGF0YS5pMzJbaSsyXSwgdGhyZXNob2xkLT5mb3JtYXR9OworICAgICAgICAgICAgICAgICAgICBvdXRwdXRTdHJlYW1zLnB1c2hfYmFjayhzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCisvLyBDaGVjayBpZiBjb25zdHJhaW5lZCBtb2RlIGlzIHN1cHBvcnRlZCBieSB1c2luZyB0aGUgc3RhdGljCisvLyBjYW1lcmEgY2hhcmFjdGVyaXN0aWNzLgorU3RhdHVzIENhbWVyYUhpZGxUZXN0Ojppc0NvbnN0cmFpbmVkTW9kZUF2YWlsYWJsZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSkgeworICAgIFN0YXR1cyByZXQgPSBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOworICAgIGlmIChudWxscHRyID09IHN0YXRpY01ldGEpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgZW50cnk7CisgICAgaW50IHJjID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkoc3RhdGljTWV0YSwKKyAgICAgICAgICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTLCAmZW50cnkpOworICAgIGlmICgwICE9IHJjKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5jb3VudDsgaSsrKSB7CisgICAgICAgIGlmIChBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19DT05TVFJBSU5FRF9ISUdIX1NQRUVEX1ZJREVPID09CisgICAgICAgICAgICAgICAgZW50cnkuZGF0YS51OFtpXSkgeworICAgICAgICAgICAgcmV0ID0gU3RhdHVzOjpPSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworLy8gUGljayB0aGUgbGFyZ2VzdCBzdXBwb3J0ZWQgSEZSIG1vZGUgZnJvbSB0aGUgc3RhdGljIGNhbWVyYQorLy8gY2hhcmFjdGVyaXN0aWNzLgorU3RhdHVzIENhbWVyYUhpZGxUZXN0OjpwaWNrQ29uc3RyYWluZWRNb2RlU2l6ZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSwKKyAgICAgICAgQXZhaWxhYmxlU3RyZWFtICZoZnJTdHJlYW0pIHsKKyAgICBpZiAobnVsbHB0ciA9PSBzdGF0aWNNZXRhKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5IGVudHJ5OworICAgIGludCByYyA9IGZpbmRfY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5KHN0YXRpY01ldGEsCisgICAgICAgICAgICBBTkRST0lEX0NPTlRST0xfQVZBSUxBQkxFX0hJR0hfU1BFRURfVklERU9fQ09ORklHVVJBVElPTlMsICZlbnRyeSk7CisgICAgaWYgKDAgIT0gcmMpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7CisgICAgfSBlbHNlIGlmICgwICE9IChlbnRyeS5jb3VudCAlIDUpKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgaGZyU3RyZWFtID0gezAsIDAsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQpfTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVudHJ5LmNvdW50OyBpKz01KSB7CisgICAgICAgIGludDMyX3QgdyA9IGVudHJ5LmRhdGEuaTMyW2ldOworICAgICAgICBpbnQzMl90IGggPSBlbnRyeS5kYXRhLmkzMltpKzFdOworICAgICAgICBpZiAoKGhmclN0cmVhbS53aWR0aCAqIGhmclN0cmVhbS5oZWlnaHQpIDwgKHcgKmgpKSB7CisgICAgICAgICAgICBoZnJTdHJlYW0ud2lkdGggPSB3OworICAgICAgICAgICAgaGZyU3RyZWFtLmhlaWdodCA9IGg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gU3RhdHVzOjpPSzsKK30KKworLy8gQ2hlY2sgd2hldGhlciBaU0wgaXMgYXZhaWxhYmxlIHVzaW5nIHRoZSBzdGF0aWMgY2FtZXJhCisvLyBjaGFyYWN0ZXJpc3RpY3MuCitTdGF0dXMgQ2FtZXJhSGlkbFRlc3Q6OmlzWlNMTW9kZUF2YWlsYWJsZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSkgeworICAgIFN0YXR1cyByZXQgPSBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOworICAgIGlmIChudWxscHRyID09IHN0YXRpY01ldGEpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgZW50cnk7CisgICAgaW50IHJjID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkoc3RhdGljTWV0YSwKKyAgICAgICAgICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTLCAmZW50cnkpOworICAgIGlmICgwICE9IHJjKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5jb3VudDsgaSsrKSB7CisgICAgICAgIGlmICgoQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfUFJJVkFURV9SRVBST0NFU1NJTkcgPT0KKyAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLnU4W2ldKSB8fAorICAgICAgICAgICAgICAgIChBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19ZVVZfUkVQUk9DRVNTSU5HID09CisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLnU4W2ldKSApeworICAgICAgICAgICAgcmV0ID0gU3RhdHVzOjpPSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworLy8gUmV0cmlldmUgdGhlIHJlcHJvY2VzcyBpbnB1dC1vdXRwdXQgZm9ybWF0IG1hcCBmcm9tIHRoZSBzdGF0aWMKKy8vIGNhbWVyYSBjaGFyYWN0ZXJpc3RpY3MuCitTdGF0dXMgQ2FtZXJhSGlkbFRlc3Q6OmdldFpTTElucHV0T3V0cHV0TWFwKGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhLAorICAgICAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVaU0xJbnB1dE91dHB1dD4gJmlucHV0T3V0cHV0TWFwKSB7CisgICAgaWYgKG51bGxwdHIgPT0gc3RhdGljTWV0YSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSBlbnRyeTsKKyAgICBpbnQgcmMgPSBmaW5kX2NhbWVyYV9tZXRhZGF0YV9yb19lbnRyeShzdGF0aWNNZXRhLAorICAgICAgICAgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0lOUFVUX09VVFBVVF9GT1JNQVRTX01BUCwgJmVudHJ5KTsKKyAgICBpZiAoKDAgIT0gcmMpIHx8ICgwID49IGVudHJ5LmNvdW50KSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGNvbnN0IGludDMyX3QqIGNvbnRlbnRzID0gJmVudHJ5LmRhdGEuaTMyWzBdOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7ICkgeworICAgICAgICBpbnQzMl90IGlucHV0Rm9ybWF0ID0gY29udGVudHNbaSsrXTsKKyAgICAgICAgaW50MzJfdCBsZW5ndGggPSBjb250ZW50c1tpKytdOworICAgICAgICBmb3IgKGludDMyX3QgaiA9IDA7IGogPCBsZW5ndGg7IGorKykgeworICAgICAgICAgICAgaW50MzJfdCBvdXRwdXRGb3JtYXQgPSBjb250ZW50c1tpK2pdOworICAgICAgICAgICAgQXZhaWxhYmxlWlNMSW5wdXRPdXRwdXQgenNsRW50cnkgPSB7aW5wdXRGb3JtYXQsIG91dHB1dEZvcm1hdH07CisgICAgICAgICAgICBpbnB1dE91dHB1dE1hcC5wdXNoX2JhY2soenNsRW50cnkpOworICAgICAgICB9CisgICAgICAgIGkgKz0gbGVuZ3RoOworICAgIH0KKworICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCisvLyBTZWFyY2ggZm9yIHRoZSBsYXJnZXN0IHN0cmVhbSBzaXplIGZvciBhIGdpdmVuIGZvcm1hdC4KK1N0YXR1cyBDYW1lcmFIaWRsVGVzdDo6ZmluZExhcmdlc3RTaXplKAorICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+ICZzdHJlYW1TaXplcywgaW50MzJfdCBmb3JtYXQsCisgICAgICAgIEF2YWlsYWJsZVN0cmVhbSAmcmVzdWx0KSB7CisgICAgcmVzdWx0ID0gezAsIDAsIDB9OworICAgIGZvciAoYXV0byAmaXRlciA6IHN0cmVhbVNpemVzKSB7CisgICAgICAgIGlmIChmb3JtYXQgPT0gaXRlci5mb3JtYXQpIHsKKyAgICAgICAgICAgIGlmICgocmVzdWx0LndpZHRoICogcmVzdWx0LmhlaWdodCkgPCAoaXRlci53aWR0aCAqIGl0ZXIuaGVpZ2h0KSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGl0ZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gKHJlc3VsdC5mb3JtYXQgPT0gZm9ybWF0KSA/IFN0YXR1czo6T0sgOiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7Cit9CisKKy8vIENoZWNrIHdoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgc3BlY2lmaWMgZm9jdXMgbW9kZS4KK1N0YXR1cyBDYW1lcmFIaWRsVGVzdDo6aXNBdXRvRm9jdXNNb2RlQXZhaWxhYmxlKAorICAgICAgICA6OmFuZHJvaWQ6OkNhbWVyYVBhcmFtZXRlcnMgJmNhbWVyYVBhcmFtcywKKyAgICAgICAgY29uc3QgY2hhciAqbW9kZSkgeworICAgIDo6YW5kcm9pZDo6U3RyaW5nOCBmb2N1c01vZGVzKGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX0ZPQ1VTX01PREVTKSk7CisgICAgaWYgKGZvY3VzTW9kZXMuY29udGFpbnMobW9kZSkpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6T0s7CisgICAgfQorCisgICAgcmV0dXJuIFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7Cit9CisKKy8vIE9wZW4gYSBkZXZpY2Ugc2Vzc2lvbiBhbmQgY29uZmlndXJlIGEgcHJldmlldyBzdHJlYW0uCit2b2lkIENhbWVyYUhpZGxUZXN0Ojpjb25maWd1cmVQcmV2aWV3U3RyZWFtKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLAorICAgICAgICBjb25zdCBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiwKKyAgICAgICAgY29uc3QgQXZhaWxhYmxlU3RyZWFtICpwcmV2aWV3VGhyZXNob2xkLAorICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gKnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgU3RyZWFtICpwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gKmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKSB7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGVudik7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIHNlc3Npb24pOworICAgIEFTU0VSVF9ORShudWxscHRyLCBwcmV2aWV3U3RyZWFtKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgaGFsU3RyZWFtQ29uZmlnKTsKKworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0UHJldmlld1N0cmVhbXM7CisgICAgOjphbmRyb2lkOjpzcDxJQ2FtZXJhRGV2aWNlPiBkZXZpY2UzXzI7CisgICAgQUxPR0koImNvbmZpZ3VyZVN0cmVhbXM6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgIG5hbWUsCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLAorICAgICAgICAgICAgICAgICAgKGludClzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBzcDxEZXZpY2VDYj4gY2IgPSBuZXcgRGV2aWNlQ2IodGhpcyk7CisgICAgcmV0ID0gZGV2aWNlM18yLT5vcGVuKAorICAgICAgICBjYiwKKyAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBuZXdTZXNzaW9uKSB7CisgICAgICAgICAgICBBTE9HSSgiZGV2aWNlOjpvcGVuIHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobmV3U2Vzc2lvbiwgbnVsbHB0cik7CisgICAgICAgICAgICAqc2Vzc2lvbiA9IG5ld1Nlc3Npb247CisgICAgICAgIH0pOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGE7CisgICAgcmV0ID0gZGV2aWNlM18yLT5nZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MoWyZdIChTdGF0dXMgcywKKyAgICAgICAgICAgIENhbWVyYU1ldGFkYXRhIG1ldGFkYXRhKSB7CisgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzKTsKKyAgICAgICAgc3RhdGljTWV0YSA9IGNsb25lX2NhbWVyYV9tZXRhZGF0YSgKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90Kj4obWV0YWRhdGEuZGF0YSgpKSk7CisgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgc3RhdGljTWV0YSk7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBvdXRwdXRQcmV2aWV3U3RyZWFtcy5jbGVhcigpOworICAgIGF1dG8gcmMgPSBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICBvdXRwdXRQcmV2aWV3U3RyZWFtcywgcHJldmlld1RocmVzaG9sZCk7CisgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEoc3RhdGljTWV0YSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKKyAgICBBU1NFUlRfRkFMU0Uob3V0cHV0UHJldmlld1N0cmVhbXMuZW1wdHkoKSk7CisKKyAgICAqcHJldmlld1N0cmVhbSA9IHswLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKG91dHB1dFByZXZpZXdTdHJlYW1zWzBdLndpZHRoKSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAob3V0cHV0UHJldmlld1N0cmVhbXNbMF0uaGVpZ2h0KSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAob3V0cHV0UHJldmlld1N0cmVhbXNbMF0uZm9ybWF0KSwKKyAgICAgICAgICAgIDAsIDAsIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW0+IHN0cmVhbXMgPSB7KnByZXZpZXdTdHJlYW19OworICAgIFN0cmVhbUNvbmZpZ3VyYXRpb24gY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgIHJldCA9ICgqc2Vzc2lvbiktPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbJl0gKFN0YXR1cyBzLAorICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxDb25maWcpIHsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHMpOworICAgICAgICBBU1NFUlRfRVEoMXUsIGhhbENvbmZpZy5zdHJlYW1zLnNpemUoKSk7CisgICAgICAgICpoYWxTdHJlYW1Db25maWcgPSBoYWxDb25maWc7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIE9wZW4gYSBkZXZpY2Ugc2Vzc2lvbiB3aXRoIGVtcHR5IGNhbGxiYWNrcyBhbmQgcmV0dXJuIHN0YXRpYyBtZXRhZGF0YS4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6Om9wZW5FbXB0eURldmljZVNlc3Npb24oY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsCisgICAgICAgIGNvbnN0IENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52LAorICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gKnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgY2FtZXJhX21ldGFkYXRhX3QgKipzdGF0aWNNZXRhIC8qb3V0Ki8pIHsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgZW52KTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgc2Vzc2lvbik7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIHN0YXRpY01ldGEpOworCisgICAgOjphbmRyb2lkOjpzcDxJQ2FtZXJhRGV2aWNlPiBkZXZpY2UzXzI7CisgICAgQUxPR0koImNvbmZpZ3VyZVN0cmVhbXM6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgIG5hbWUsCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLAorICAgICAgICAgICAgICAgICAgKGludClzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBzcDxFbXB0eURldmljZUNiPiBjYiA9IG5ldyBFbXB0eURldmljZUNiKCk7CisgICAgcmV0ID0gZGV2aWNlM18yLT5vcGVuKGNiLCBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIG5ld1Nlc3Npb24pIHsKKyAgICAgICAgICAgIEFMT0dJKCJkZXZpY2U6Om9wZW4gcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShuZXdTZXNzaW9uLCBudWxscHRyKTsKKyAgICAgICAgICAgICpzZXNzaW9uID0gbmV3U2Vzc2lvbjsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICByZXQgPSBkZXZpY2UzXzItPmdldENhbWVyYUNoYXJhY3RlcmlzdGljcyhbJl0gKFN0YXR1cyBzLAorICAgICAgICAgICAgQ2FtZXJhTWV0YWRhdGEgbWV0YWRhdGEpIHsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHMpOworICAgICAgICAqc3RhdGljTWV0YSA9IGNsb25lX2NhbWVyYV9tZXRhZGF0YSgKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90Kj4obWV0YWRhdGEuZGF0YSgpKSk7CisgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCAqc3RhdGljTWV0YSk7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIE9wZW4gYSBwYXJ0aWN1bGFyIGNhbWVyYSBkZXZpY2UuCit2b2lkIENhbWVyYUhpZGxUZXN0OjpvcGVuQ2FtZXJhRGV2aWNlKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLAorICAgICAgICBjb25zdCBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiwKKyAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICpkZXZpY2UxIC8qb3V0Ki8pIHsKKyAgICBBU1NFUlRfVFJVRShudWxscHRyICE9IGVudik7CisgICAgQVNTRVJUX1RSVUUobnVsbHB0ciAhPSBkZXZpY2UxKTsKKworICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KAorICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3ggcmV0dXJucyBzdGF0dXM6JWQiLAorICAgICAgICAgICAgICAgICAgKGludClzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgICpkZXZpY2UxID0gZGV2aWNlOworICAgICAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHNwPENhbWVyYTFEZXZpY2VDYj4gZGV2aWNlQ2IgPSBuZXcgQ2FtZXJhMURldmljZUNiKHRoaXMpOworICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9ICgqZGV2aWNlMSktPm9wZW4oZGV2aWNlQ2IpOworICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworfQorCisvLyBJbml0aWFsaXplIGFuZCBjb25maWd1cmUgYSBwcmV2aWV3IHdpbmRvdy4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OnNldHVwUHJldmlld1dpbmRvdygKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UsCisgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gKmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICBzcDxCdWZmZXJJdGVtSGFuZGVyPiAqYnVmZmVySGFuZGxlciAvKm91dCovKSB7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZS5nZXQoKSk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGJ1ZmZlckl0ZW1Db25zdW1lcik7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGJ1ZmZlckhhbmRsZXIpOworCisgICAgc3A8SUdyYXBoaWNCdWZmZXJQcm9kdWNlcj4gcHJvZHVjZXI7CisgICAgc3A8SUdyYXBoaWNCdWZmZXJDb25zdW1lcj4gY29uc3VtZXI7CisgICAgQnVmZmVyUXVldWU6OmNyZWF0ZUJ1ZmZlclF1ZXVlKCZwcm9kdWNlciwgJmNvbnN1bWVyKTsKKyAgICAqYnVmZmVySXRlbUNvbnN1bWVyID0gbmV3IEJ1ZmZlckl0ZW1Db25zdW1lcihjb25zdW1lciwKKyAgICAgICAgICAgIEdyYXBoaWNCdWZmZXI6OlVTQUdFX0hXX1RFWFRVUkUpOyAvL1VzZSBHTENvbnN1bWVyIGRlZmF1bHQgdXNhZ2UgZmxhZ3MKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgKCpidWZmZXJJdGVtQ29uc3VtZXIpLmdldCgpKTsKKyAgICAqYnVmZmVySGFuZGxlciA9IG5ldyBCdWZmZXJJdGVtSGFuZGVyKCpidWZmZXJJdGVtQ29uc3VtZXIpOworICAgIEFTU0VSVF9ORShudWxscHRyLCAoKmJ1ZmZlckhhbmRsZXIpLmdldCgpKTsKKyAgICAoKmJ1ZmZlckl0ZW1Db25zdW1lciktPnNldEZyYW1lQXZhaWxhYmxlTGlzdGVuZXIoKmJ1ZmZlckhhbmRsZXIpOworICAgIHNwPFN1cmZhY2U+IHN1cmZhY2UgPSBuZXcgU3VyZmFjZShwcm9kdWNlcik7CisgICAgc3A8UHJldmlld1dpbmRvd0NiPiBwcmV2aWV3Q2IgPSBuZXcgUHJldmlld1dpbmRvd0NiKHN1cmZhY2UpOworCisgICAgYXV0byByYyA9IGRldmljZS0+c2V0UHJldmlld1dpbmRvdyhwcmV2aWV3Q2IpOworICAgIEFTU0VSVF9UUlVFKHJjLmlzT2soKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKK30KKworLy8gU3RvcCBjYW1lcmEgcHJldmlldyBhbmQgY2xvc2UgY2FtZXJhLgordm9pZCBDYW1lcmFIaWRsVGVzdDo6c3RvcFByZXZpZXdBbmRDbG9zZSgKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlLT5zdG9wUHJldmlldygpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgcmV0ID0gZGV2aWNlLT5jbG9zZSgpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCisvLyBFbmFibGUgYSBzcGVjaWZpYyBjYW1lcmEgbWVzc2FnZSB0eXBlLgordm9pZCBDYW1lcmFIaWRsVGVzdDo6ZW5hYmxlTXNnVHlwZSh1bnNpZ25lZCBpbnQgbXNnVHlwZSwKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlLT5lbmFibGVNc2dUeXBlKG1zZ1R5cGUpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgUmV0dXJuPGJvb2w+IHJldHVybkJvb2xTdGF0dXMgPSBkZXZpY2UtPm1zZ1R5cGVFbmFibGVkKG1zZ1R5cGUpOworICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMuaXNPaygpKTsKKyAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzKTsKK30KKworLy8gRGlzYWJsZSBhIHNwZWNpZmljIGNhbWVyYSBtZXNzYWdlIHR5cGUuCit2b2lkIENhbWVyYUhpZGxUZXN0OjpkaXNhYmxlTXNnVHlwZSh1bnNpZ25lZCBpbnQgbXNnVHlwZSwKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlLT5kaXNhYmxlTXNnVHlwZShtc2dUeXBlKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIFJldHVybjxib29sPiByZXR1cm5Cb29sU3RhdHVzID0gZGV2aWNlLT5tc2dUeXBlRW5hYmxlZChtc2dUeXBlKTsKKyAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzLmlzT2soKSk7CisgICAgQVNTRVJUX0ZBTFNFKHJldHVybkJvb2xTdGF0dXMpOworfQorCisvLyBXYWl0IHVudGlsIGEgc3BlY2lmaWMgZnJhbWUgbm90aWZpY2F0aW9uIGFycml2ZXMuCit2b2lkIENhbWVyYUhpZGxUZXN0Ojp3YWl0Rm9yRnJhbWVMb2NrZWQoRGF0YUNhbGxiYWNrTXNnIG1zZ0ZyYW1lLAorICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+ICZsKSB7CisgICAgd2hpbGUgKG1zZ0ZyYW1lICE9IG1EYXRhTWVzc2FnZVR5cGVSZWNlaXZlZCkgeworICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1N0cmVhbUJ1ZmZlclRpbWVvdXRTZWMpOworICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICB9Cit9CisKKy8vIFN0YXJ0IHByZXZpZXcgb24gYSBwYXJ0aWN1bGFyIGNhbWVyYSBkZXZpY2UKK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OnN0YXJ0UHJldmlldygKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpIHsKKyAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UtPnN0YXJ0UHJldmlldygpOworICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworfQorCisvLyBSZXRyaWV2ZSBjYW1lcmEgcGFyYW1ldGVycy4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OmdldFBhcmFtZXRlcnMoCisgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlLAorICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzICpjYW1lcmFQYXJhbXMgLypvdXQqLykgeworICAgIEFTU0VSVF9ORShudWxscHRyLCBjYW1lcmFQYXJhbXMpOworCisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBkZXZpY2UtPmdldFBhcmFtZXRlcnMoWyZdIChjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZyYgcGFyYW1zKSB7CisgICAgICAgIEFTU0VSVF9GQUxTRShwYXJhbXMuZW1wdHkoKSk7CisgICAgICAgIDo6YW5kcm9pZDo6U3RyaW5nOCBwYXJhbVN0cmluZyhwYXJhbXMuY19zdHIoKSk7CisgICAgICAgICgqY2FtZXJhUGFyYW1zKS51bmZsYXR0ZW4ocGFyYW1TdHJpbmcpOworICAgIH0pOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCisvLyBTZXQgY2FtZXJhIHBhcmFtZXRlcnMuCit2b2lkIENhbWVyYUhpZGxUZXN0OjpzZXRQYXJhbWV0ZXJzKAorICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSwKKyAgICAgICAgY29uc3QgQ2FtZXJhUGFyYW1ldGVycyAmY2FtZXJhUGFyYW1zKSB7CisgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlLT5zZXRQYXJhbWV0ZXJzKAorICAgICAgICAgICAgY2FtZXJhUGFyYW1zLmZsYXR0ZW4oKS5zdHJpbmcoKSk7CisgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCkpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyL1JFQURNRS5tZCBiL2NhbWVyYS9wcm92aWRlci9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcxOGZiMQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci9SRUFETUUubWQKQEAgLTAsMCArMSwzNyBAQAorIyMgQ2FtZXJhIFByb3ZpZGVyIEhBTCAjIworLS0tCisKKyMjIE92ZXJ2aWV3OiAjIworCitUaGUgY2FtZXJhLnByb3ZpZGVyIEhBTCBpcyB1c2VkIGJ5IHRoZSBBbmRyb2lkIGNhbWVyYSBzZXJ2aWNlIHRvIGRpc2NvdmVyLAorcXVlcnksIGFuZCBvcGVuIGluZGl2aWR1YWwgY2FtZXJhIGRldmljZXMuCisKK0l0IGFsc28gYWxsb3dzIGZvciBkaXJlY3QgY29udHJvbCBvZiB0aGUgZmxhc2ggdW5pdCBvZiBjYW1lcmEgZGV2aWNlcyB0aGF0IGhhdmUKK29uZSwgZm9yIHR1cm5pbmcgb24vb2ZmIHRvcmNoIG1vZGUuCisKK01vcmUgY29tcGxldGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEFuZHJvaWQgY2FtZXJhIEhBTCBhbmQgc3Vic3lzdGVtIGNhbiBiZSBmb3VuZCBhdAorW3NvdXJjZS5hbmRyb2lkLmNvbV0oaHR0cDovL3NvdXJjZS5hbmRyb2lkLmNvbS9kZXZpY2VzL2NhbWVyYS9pbmRleC5odG1sKS4KKworIyMgVmVyc2lvbiBoaXN0b3J5OiAjIworCisjIyB0eXBlcy5oYWw6ICMjCisKKyMjIyBAMC4wOgorCitDb21tb24gZW51bSBhbmQgc3RydWN0IGRlZmluaXRpb25zIGZvciBhbGwgY2FtZXJhIEhBTCBpbnRlcmZhY2VzLiBEb2VzIG5vdAorZGVmaW5lIGFueSBpbnRlcmZhY2VzIG9mIGl0cyBvd24uCisKKyMjIElDYW1lcmFQcm92aWRlci5oYWw6ICMjCisKKyMjIyBAMi40OgorCitGaXJzdCBISURMIHZlcnNpb24gb2YgdGhlIGNhbWVyYSBwcm92aWRlciBIQUwsIGNsb3NlbHkgbWF0Y2hpbmcgdGhlIGZlYXR1cmUgc2V0CithbmQgb3BlcmF0aW9uIG9mIHRoZSBwcmUtSElETCBjYW1lcmEgSEFMIG1vZHVsZSB2Mi40LgorCisjIyBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oYWw6ICMjCisKKyMjIyBAMi40OgorCitGaXJzdCBISURMIHZlcnNpb24gb2YgdGhlIGNhbWFyYSBwcm92aWRlciBIQUwgY2FsbGJhY2sgaW50ZXJmYWNlLCBjbG9zZWx5CittYXRjaGluZyB0aGUgZmVhdHVyZSBzZXQgYW5kIG9wZXJhdGlvbiBvZiB0aGUgcHJlLUhJREwgY2FtZXJhIEhBTCBtb2R1bGUKK2NhbGxiYWNrcyB2Mi40LgpkaWZmIC0tZ2l0IGEvY29tcGF0aWJpbGl0eV9tYXRyaXgueG1sIGIvY29tcGF0aWJpbGl0eV9tYXRyaXgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhYTU0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9jb21wYXRpYmlsaXR5X21hdHJpeC54bWwKQEAgLTAsMCArMSwzMjUgQEAKKzxjb21wYXRpYmlsaXR5LW1hdHJpeCB2ZXJzaW9uPSIxLjAiIHR5cGU9ImZyYW1ld29yayI+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYXVkaW88L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjIuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklEZXZpY2VzRmFjdG9yeTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0PC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JRWZmZWN0c0ZhY3Rvcnk8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnM8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklFdnNFbnVtZXJhdG9yPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZTwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVZlaGljbGU8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi4xPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUJpb21ldHJpY3NGaW5nZXJwcmludDwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5ibHVldG9vdGg8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklCbHVldG9vdGhIY2k8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYm9vdDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUJvb3RDb250cm9sPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQnJvYWRjYXN0UmFkaW9GYWN0b3J5PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlcjwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi40PC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUNhbWVyYVByb3ZpZGVyPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmxlZ2FjeS8wPC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmU8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMC0xPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVN1cmZhY2VGbGluZ2VyQ29uZmlnczwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQ29udGV4dGh1YjwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuZHJtPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQ3J5cHRvRmFjdG9yeTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JRHJtRmFjdG9yeTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGU8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklEdW1wc3RhdGVEZXZpY2U8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0iZmFsc2UiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklHYXRla2VlcGVyPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmduc3M8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklHbnNzPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9ImZhbHNlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3I8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjIuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklBbGxvY2F0b3I8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0iZmFsc2UiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjE8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQ29tcG9zZXI8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0iZmFsc2UiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlcjwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SU1hcHBlcjwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5oZWFsdGg8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklIZWFsdGg8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuaXI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9ImZhbHNlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjMuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklLZXltYXN0ZXJEZXZpY2U8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUubGlnaHQ8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjIuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklMaWdodDwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214PC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JT214PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklPbXhTdG9yZTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5tZW10cmFjazwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SU1lbXRyYWNrPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLm5mYzwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SU5mYzwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5wb3dlcjwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVBvd2VyPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLnJhZGlvPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JUmFkaW88L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+c2xvdDE8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklTYXA8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+c2xvdDE8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLnJhZGlvLmRlcHJlY2F0ZWQ8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklPZW1Ib29rPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPnNsb3QxPC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5yZW5kZXJzY3JpcHQ8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklEZXZpY2U8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yczwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVNlbnNvcnM8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JU291bmRUcmlnZ2VySHc8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVRoZXJtYWw8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudHYuY2VjPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JSGRtaUNlYzwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVR2SW5wdXQ8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudXNiPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JVXNiPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JVmlicmF0b3I8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudnI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklWcjwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS53aWZpPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JV2lmaTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnQ8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklTdXBwbGljYW50PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8a2VybmVsIHZlcnNpb249IjQuOS4wIiAvPgorICAgIDxrZXJuZWwgdmVyc2lvbj0iNC40LjAiIC8+CisgICAgPGtlcm5lbCB2ZXJzaW9uPSIzLjE4LjAiIC8+Cis8L2NvbXBhdGliaWxpdHktbWF0cml4PgpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvMS4wL0lTdXJmYWNlRmxpbmdlckNvbmZpZ3MuaGFsIGIvY29uZmlnc3RvcmUvMS4wL0lTdXJmYWNlRmxpbmdlckNvbmZpZ3MuaGFsCmluZGV4IDQ0MDNhOTAuLjVmOTc1YmQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlLzEuMC9JU3VyZmFjZUZsaW5nZXJDb25maWdzLmhhbAorKysgYi9jb25maWdzdG9yZS8xLjAvSVN1cmZhY2VGbGluZ2VyQ29uZmlncy5oYWwKQEAgLTE2LDYgKzE2LDEwMiBAQAogcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbmZpZ3N0b3JlQDEuMDsKIAogaW50ZXJmYWNlIElTdXJmYWNlRmxpbmdlckNvbmZpZ3MgeworICAgIC8qKgorICAgICAqIFRoZSBmb2xsb3dpbmcgdHdvIG1ldGhvZHMgZGVmaW5lIChyZXNwZWN0aXZlbHkpOgorICAgICAqCisgICAgICogLSBUaGUgcGhhc2Ugb2Zmc2V0IGJldHdlZW4gaGFyZHdhcmUgdnN5bmMgYW5kIHdoZW4gYXBwcyBhcmUgd29rZW4gdXAgYnkgdGhlCisgICAgICogICBDaG9yZW9ncmFwaGVyIGNhbGxiYWNrCisgICAgICogLSBUaGUgcGhhc2Ugb2Zmc2V0IGJldHdlZW4gaGFyZHdhcmUgdnN5bmMgYW5kIHdoZW4gU3VyZmFjZUZsaW5nZXIgd2FrZXMgdXAKKyAgICAgKiAgIHRvIGNvbnN1bWUgaW5wdXQKKyAgICAgKgorICAgICAqIFRoZWlyIHZhbHVlcyBtYXkgYmUgdHVuZWQgdG8gdHJhZGUgb2ZmIGJldHdlZW4gZGlzcGxheSBwaXBlbGluZSBsYXRlbmN5IChib3RoCisgICAgICogb3ZlcmFsbCBsYXRlbmN5IGFuZCB0aGUgbGVuZ3RocyBvZiB0aGUgYXBwIC0tPiBTRiBhbmQgU0YgLS0+IGRpc3BsYXkgcGhhc2VzKQorICAgICAqIGFuZCBmcmFtZSBkZWxpdmVyeSBqaXR0ZXIgKHdoaWNoIHR5cGljYWxseSBtYW5pZmVzdHMgYXMgImphbmsiIG9yICJqZXJraW5lc3MiCisgICAgICogd2hpbGUgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgZGV2aWNlKS4gVGhlIGRlZmF1bHQgdmFsdWVzIG11c3QgcHJvZHVjZSBhCisgICAgICogcmVsYXRpdmVseSBsb3cgYW1vdW50IG9mIGppdHRlciBhdCB0aGUgZXhwZW5zZSBvZiByb3VnaGx5IHR3byBmcmFtZXMgb2YKKyAgICAgKiBhcHAgLS0+IGRpc3BsYXkgbGF0ZW5jeSwgYW5kIHVubGVzcyBzaWduaWZpY2FudCB0ZXN0aW5nIGlzIHBlcmZvcm1lZCB0byBhdm9pZAorICAgICAqIGluY3JlYXNlZCBkaXNwbGF5IGppdHRlciAoYm90aCBtYW51YWwgaW52ZXN0aWdhdGlvbiB1c2luZyBzeXN0cmFjZSBbMV0gYW5kCisgICAgICogYXV0b21hdGVkIHRlc3RpbmcgdXNpbmcgZHVtcHN5cyBnZnhpbmZvIFsyXSBhcmUgcmVjb21tZW5kZWQpLCB0aGV5IHNob3VsZCBub3QKKyAgICAgKiBiZSBtb2RpZmllZC4KKyAgICAgKgorICAgICAqIFsxXSBodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9zdHVkaW8vcHJvZmlsZS9zeXN0cmFjZS5odG1sCisgICAgICogWzJdIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3RyYWluaW5nL3Rlc3RpbmcvcGVyZm9ybWFuY2UuaHRtbAorICAgICAqLwogICAgIHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKCkgZ2VuZXJhdGVzIChPcHRpb25hbEludDY0IHZhbHVlKTsKLSAgICB1c2VUcmlwbGVGcmFtZWJ1ZmZlcigpIGdlbmVyYXRlcyAoT3B0aW9uYWxCb29sIHZhbHVlKTsKKyAgICB2c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKCkgZ2VuZXJhdGVzIChPcHRpb25hbEludDY0IHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIEluc3RydWN0IHRoZSBSZW5kZXIgRW5naW5lIHRvIHVzZSBFR0xfSU1HX2NvbnRleHRfcHJpb3JpdHkgaGludCBpZgorICAgICAqIGF2YWlsYWJlLgorICAgICAqLworICAgIHVzZUNvbnRleHRQcmlvcml0eSgpIGdlbmVyYXRlcyhPcHRpb25hbEJvb2wgdmFsdWUpOworCisgICAgLyoqCisgICAgICogaGFzV2lkZUNvbG9yRGlzcGxheSBpbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGhhcworICAgICAqIG9yIGNhbiBzdXBwb3J0IGEgd2lkZS1jb2xvciBkaXNwbGF5LCBlLmcuIGNvbG9yIHNwYWNlCisgICAgICogZ3JlYXRlciB0aGFuIHNSR0IuIFR5cGljYWwgZGlzcGxheSBtYXkgaGF2ZSBzYW1lCisgICAgICogY29sb3IgcHJpbWFyaWVzIGFzIERDSS1QMy4KKyAgICAgKiBJbmRpY2F0ZSBzdXBwb3J0IGZvciB0aGlzIGZlYXR1cmUgYnkgc2V0dGluZworICAgICAqIFRBUkdFVF9IQVNfV0lERV9DT0xPUl9ESVNQTEFZIHRvIHRydWUgaW4gQm9hcmRDb25maWcubWsKKyAgICAgKiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZGV2aWNlIGlzIGNvbG9yIG1hbmFnZWQuCisgICAgICogQSBjb2xvciBtYW5hZ2VkIGRldmljZSB3aWxsIHVzZSB0aGUgYXBwcm9wcmlhdGUKKyAgICAgKiBkaXNwbGF5IG1vZGUgZGVwZW5kaW5nIG9uIHRoZSBjb250ZW50IG9uIHRoZSBzY3JlZW4uCisgICAgICogRGVmYXVsdCBpcyBzUkdCLgorICAgICAqLworICAgIGhhc1dpZGVDb2xvckRpc3BsYXkoKSBnZW5lcmF0ZXMgKE9wdGlvbmFsQm9vbCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBod0hkckRpc3BsYXkgaW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBoYXMKKyAgICAgKiBvciBjYW4gc3VwcG9ydCBhbiBIRFIgKEhpZ2ggRHluYW1pYyBSYW5nZSkgZGlzcGxheS4KKyAgICAgKiBUeXBpY2FsbHkgYW4gSERSIGRpc3BsYXkgaXMgYWxzbyB3aWRlLWNvbG9yLgorICAgICAqIEluZGljYXRlIHN1cHBvcnQgZm9yIHRoaXMgZmVhdHVyZSBieSBzZXR0aW5nCisgICAgICogVEFSR0VUX0hBU19IRFJfRElTUExBWSB0byB0cnVlIGluIEJvYXJkQ29uZmlnLm1rCisgICAgICovCisgICAgaGFzSERSRGlzcGxheSgpIGdlbmVyYXRlcyAoT3B0aW9uYWxCb29sIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFNwZWNpZnkgdGhlIG9mZnNldCBpbiBuYW5vc2Vjb25kcyB0byBhZGQgdG8gdnN5bmMgdGltZSB3aGVuIHRpbWVzdGFtcGluZworICAgICAqIHByZXNlbnQgZmVuY2VzLgorICAgICAqLworICAgIHByZXNlbnRUaW1lT2Zmc2V0RnJvbVZTeW5jTnMoKSBnZW5lcmF0ZXMoT3B0aW9uYWxJbnQ2NCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBTb21lIGhhcmR3YXJlIGNhbiBkbyBSR0ItPllVViBjb252ZXJzaW9uIG1vcmUgZWZmaWNpZW50bHkgaW4gaGFyZHdhcmUKKyAgICAgKiBjb250cm9sbGVkIGJ5IEhXQyB0aGFuIGluIGhhcmR3YXJlIGNvbnRyb2xsZWQgYnkgdGhlIHZpZGVvIGVuY29kZXIuCisgICAgICogVGhpcyBpbnN0cnVjdCBWaXJ0dWFsRGlzcGxheVN1cmZhY2UgdG8gdXNlIEhXQyBmb3Igc3VjaCBjb252ZXJzaW9uIG9uCisgICAgICogR0wgY29tcG9zaXRpb24uCisgICAgICovCisgICAgdXNlSHdjRm9yUkdCdG9ZVVYoKSBnZW5lcmF0ZXMoT3B0aW9uYWxCb29sIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqICBNYXhpbXVtIGRpbWVuc2lvbiBzdXBwb3J0ZWQgYnkgSFdDIGZvciB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICogIE11c3QgYmUgZXF1YWxzIHRvIG1pbihtYXhfd2lkdGgsIG1heF9oZWlnaHQpLgorICAgICAqLworICAgIG1heFZpcnR1YWxEaXNwbGF5U2l6ZSgpIGdlbmVyYXRlcyAoT3B0aW9uYWxVSW50NjQgdmFsdWUpOworCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIGlmIFN5bmMgZnJhbWV3b3JrIGlzIGF2YWlsYWJsZS4gU3luYyBmcmFtZXdvcmsgcHJvdmlkZXMgZmVuY2UKKyAgICAgKiBtZWNoYW5pc20gd2hpY2ggc2lnbmlmaWNhbnRseSByZWR1Y2VzIGJ1ZmZlciBwcm9jZXNzaW5nIGxhdGVuY3kuCisgICAgICovCisgICAgaGFzU3luY0ZyYW1ld29yaygpIGdlbmVyYXRlcyhPcHRpb25hbEJvb2wgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgc3VyZmFjZSBmbGluZ2VyIHNob3VsZCB1c2UgdnIgZmxpbmdlciBmb3IgY29tcGF0aWJsZSB2cgorICAgICAqIGFwcHMsIGZhbHNlIG90aGVyd2lzZS4gRGV2aWNlcyB0aGF0IHdpbGwgbmV2ZXIgYmUgcnVubmluZyB2ciBhcHBzIHNob3VsZAorICAgICAqIHJldHVybiBmYWxzZSB0byBhdm9pZCBleHRyYSByZXNvdXJjZSB1c2FnZS4gRGF5ZHJlYW0gcmVhZHkgZGV2aWNlcyBtdXN0CisgICAgICogcmV0dXJuIHRydWUgZm9yIGZ1bGwgdnIgc3VwcG9ydC4KKyAgICAgKi8KKyAgICB1c2VWckZsaW5nZXIoKSBnZW5lcmF0ZXMgKE9wdGlvbmFsQm9vbCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBDb250cm9scyB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgU3VyZmFjZUZsaW5nZXIgd2lsbCBhbGxvY2F0ZSBmb3IgdXNlIGluCisgICAgICogRnJhbWVidWZmZXJTdXJmYWNlLgorICAgICAqLworICAgIG1heEZyYW1lQnVmZmVyQWNxdWlyZWRCdWZmZXJzKCkgZ2VuZXJhdGVzKE9wdGlvbmFsSW50NjQgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHN1cmZhY2UgZmxpbmdlciBzaG91bGQgc3RhcnQKKyAgICAgKiBoYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wOjpJQWxsb2NhdG9yIHNlcnZpY2UuCisgICAgICovCisgICAgc3RhcnRHcmFwaGljc0FsbG9jYXRvclNlcnZpY2UoKSBnZW5lcmF0ZXMoT3B0aW9uYWxCb29sIHZhbHVlKTsKIH07CmRpZmYgLS1naXQgYS9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9TdXJmYWNlRmxpbmdlckNvbmZpZ3MuY3BwIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmNwcAppbmRleCBhY2MzZDFmLi45YzEzNGVmIDEwMDY0NAotLS0gYS9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9TdXJmYWNlRmxpbmdlckNvbmZpZ3MuY3BwCisrKyBiL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L1N1cmZhY2VGbGluZ2VyQ29uZmlncy5jcHAKQEAgLTEyLDIwICsxMiwxMTMgQEAKIFJldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSB7CiAjaWZkZWYgVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TCiAgICAgX2hpZGxfY2Ioe3RydWUsIFZTWU5DX0VWRU5UX1BIQVNFX09GRlNFVF9OU30pOwotICAgIExPRyhJTkZPKSA8PCAidnN5bmMgZXZlbnQgcGhhc2Ugb2Zmc2V0IG5zID0gICIgPDwgVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TOwogI2Vsc2UKICAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKICNlbmRpZgogICAgIHJldHVybiBWb2lkKCk7CiB9CiAKLVJldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnVzZVRyaXBsZUZyYW1lYnVmZmVyKHVzZVRyaXBsZUZyYW1lYnVmZmVyX2NiIF9oaWRsX2NiKSB7CitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjp2c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSB7CisjaWZkZWYgU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TCisgICAgX2hpZGxfY2Ioe3RydWUsIFNGX1ZTWU5DX0VWRU5UX1BIQVNFX09GRlNFVF9OU30pOworI2Vsc2UKKyAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKKyNlbmRpZgorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnVzZUNvbnRleHRQcmlvcml0eSh1c2VDb250ZXh0UHJpb3JpdHlfY2IgX2hpZGxfY2IpIHsKKyNpZmRlZiBVU0VfQ09OVEVYVF9QUklPUklUWQorICAgIF9oaWRsX2NiKHt0cnVlLCBVU0VfQ09OVEVYVF9QUklPUklUWX0pOworI2Vsc2UKKyAgICBfaGlkbF9jYih7ZmFsc2UsIGZhbHNlfSk7CisjZW5kaWYKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjptYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVycyhtYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVyc19jYiBfaGlkbF9jYikgeworI2lmZGVmIE5VTV9GUkFNRUJVRkZFUl9TVVJGQUNFX0JVRkZFUlMKKyAgICBfaGlkbF9jYih7dHJ1ZSwgTlVNX0ZSQU1FQlVGRkVSX1NVUkZBQ0VfQlVGRkVSU30pOworI2Vsc2UKKyAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKKyNlbmRpZgorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6Omhhc1dpZGVDb2xvckRpc3BsYXkoaGFzV2lkZUNvbG9yRGlzcGxheV9jYiBfaGlkbF9jYikgewogICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKLSNpZmRlZiBVU0VfVFJJUExFX0ZSQU1FQlVGRkVSCisjaWZkZWYgSEFTX1dJREVfQ09MT1JfRElTUExBWQogICAgIHZhbHVlID0gdHJ1ZTsKICNlbmRpZgogICAgIF9oaWRsX2NiKHt0cnVlLCB2YWx1ZX0pOwotICAgIExPRyhJTkZPKSA8PCAiU3VyZmFjZUZsaW5nZXIgRnJhbWVCdWZmZXI6ICIgPDwgKHZhbHVlID8gInRyaXBsZSIgOiAiZG91YmxlIik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN1cmZhY2VGbGluZ2VyQ29uZmlnczo6aGFzU3luY0ZyYW1ld29yayhoYXNTeW5jRnJhbWV3b3JrX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCB2YWx1ZSA9IHRydWU7CisjaWZkZWYgUlVOTklOR19XSVRIT1VUX1NZTkNfRlJBTUVXT1JLCisgICAgdmFsdWUgPSBmYWxzZTsKKyNlbmRpZgorICAgIF9oaWRsX2NiKHt0cnVlLCB2YWx1ZX0pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6Omhhc0hEUkRpc3BsYXkoaGFzSERSRGlzcGxheV9jYiBfaGlkbF9jYikgeworICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKKyNpZmRlZiBIQVNfSERSX0RJU1BMQVkKKyAgICB2YWx1ZSA9IHRydWU7CisjZW5kaWYKKyAgICBfaGlkbF9jYih7dHJ1ZSwgdmFsdWV9KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjpwcmVzZW50VGltZU9mZnNldEZyb21WU3luY05zKHByZXNlbnRUaW1lT2Zmc2V0RnJvbVZTeW5jTnNfY2IgX2hpZGxfY2IpIHsKKyNpZmRlZiBQUkVTRU5UX1RJTUVfT0ZGU0VUX0ZST01fVlNZTkNfTlMKKyAgICAgIF9oaWRsX2NiKHt0cnVlLCBQUkVTRU5UX1RJTUVfT0ZGU0VUX0ZST01fVlNZTkNfTlN9KTsKKyNlbHNlCisgICAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKKyNlbmRpZgorICAgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN1cmZhY2VGbGluZ2VyQ29uZmlnczo6dXNlSHdjRm9yUkdCdG9ZVVYodXNlSHdjRm9yUkdCdG9ZVVZfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIHZhbHVlID0gZmFsc2U7CisjaWZkZWYgRk9SQ0VfSFdDX0NPUFlfRk9SX1ZJUlRVQUxfRElTUExBWVMKKyAgICB2YWx1ZSA9IHRydWU7CisjZW5kaWYKKyAgICBfaGlkbF9jYih7dHJ1ZSwgdmFsdWV9KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjptYXhWaXJ0dWFsRGlzcGxheVNpemUobWF4VmlydHVhbERpc3BsYXlTaXplX2NiIF9oaWRsX2NiKSB7CisgIHVpbnQ2NF90IG1heFNpemUgPSAwOworI2lmZGVmIE1BWF9WSVJUVUFMX0RJU1BMQVlfRElNRU5TSU9OCisgIG1heFNpemUgPSBNQVhfVklSVFVBTF9ESVNQTEFZX0RJTUVOU0lPTjsKKyAgX2hpZGxfY2Ioe3RydWUsIG1heFNpemV9KTsKKyNlbHNlCisgIF9oaWRsX2NiKHtmYWxzZSwgbWF4U2l6ZX0pOworI2VuZGlmCisgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnVzZVZyRmxpbmdlcih1c2VWckZsaW5nZXJfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIHZhbHVlID0gZmFsc2U7CisgICAgYm9vbCBzcGVjaWZpZWQgPSBmYWxzZTsKKyNpZmRlZiBVU0VfVlJfRkxJTkdFUgorICAgIHZhbHVlID0gdHJ1ZTsKKyAgICBzcGVjaWZpZWQgPSB0cnVlOworI2VuZGlmCisgICAgX2hpZGxfY2Ioe3NwZWNpZmllZCwgdmFsdWV9KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjpzdGFydEdyYXBoaWNzQWxsb2NhdG9yU2VydmljZSgKKyAgICBzdGFydEdyYXBoaWNzQWxsb2NhdG9yU2VydmljZV9jYiBfaGlkbF9jYikgeworICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKKyNpZmRlZiBTVEFSVF9HUkFQSElDU19BTExPQ0FUT1JfU0VSVklDRQorICAgIHZhbHVlID0gdHJ1ZTsKKyNlbmRpZgorICAgIF9oaWRsX2NiKHt0cnVlLCB2YWx1ZX0pOwogICAgIHJldHVybiBWb2lkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L1N1cmZhY2VGbGluZ2VyQ29uZmlncy5oIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmgKaW5kZXggNWJkZjdiYi4uMTdhNDI0ZSAxMDA2NDQKLS0tIGEvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmgKKysrIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmgKQEAgLTI1LDcgKzI1LDE4IEBACiBzdHJ1Y3QgU3VyZmFjZUZsaW5nZXJDb25maWdzIDogcHVibGljIElTdXJmYWNlRmxpbmdlckNvbmZpZ3MgewogICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWdzdG9yZTo6VjFfMDo6SVN1cmZhY2VGbGluZ2VyQ29uZmlncyBmb2xsb3cuCiAgICAgUmV0dXJuPHZvaWQ+IHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKLSAgICBSZXR1cm48dm9pZD4gdXNlVHJpcGxlRnJhbWVidWZmZXIodXNlVHJpcGxlRnJhbWVidWZmZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiB2c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gdXNlQ29udGV4dFByaW9yaXR5KHVzZUNvbnRleHRQcmlvcml0eV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGhhc1dpZGVDb2xvckRpc3BsYXkoaGFzV2lkZUNvbG9yRGlzcGxheV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGhhc0hEUkRpc3BsYXkoaGFzSERSRGlzcGxheV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXNlbnRUaW1lT2Zmc2V0RnJvbVZTeW5jTnMocHJlc2VudFRpbWVPZmZzZXRGcm9tVlN5bmNOc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVzZUh3Y0ZvclJHQnRvWVVWKHVzZUh3Y0ZvclJHQnRvWVVWX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gbWF4VmlydHVhbERpc3BsYXlTaXplKG1heFZpcnR1YWxEaXNwbGF5U2l6ZV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGhhc1N5bmNGcmFtZXdvcmsoaGFzU3luY0ZyYW1ld29ya19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVzZVZyRmxpbmdlcih1c2VWckZsaW5nZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBtYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVycyhtYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVyc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHN0YXJ0R3JhcGhpY3NBbGxvY2F0b3JTZXJ2aWNlKAorICAgICAgICBzdGFydEdyYXBoaWNzQWxsb2NhdG9yU2VydmljZV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZSBmb2xsb3cuCiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmVAMS4wLXNlcnZpY2UucmMgYi9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmNvbmZpZ3N0b3JlQDEuMC1zZXJ2aWNlLnJjCmluZGV4IDg3NDFiZGQuLjU2M2Q4NTQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmVAMS4wLXNlcnZpY2UucmMKKysrIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjAtc2VydmljZS5yYwpAQCAtMSw0ICsxLDQgQEAKIHNlcnZpY2UgY29uZmlnc3RvcmUtaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmNvbmZpZ3N0b3JlQDEuMC1zZXJ2aWNlCi0gICAgY2xhc3MgaGFsCisgICAgY2xhc3MgaGFsIGFuaW1hdGlvbgogICAgIHVzZXIgc3lzdGVtCiAgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9zdXJmYWNlZmxpbmdlci5tayBiL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L3N1cmZhY2VmbGluZ2VyLm1rCmluZGV4IDVhOTQ2ZjQuLjNjZTc2OGEgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L3N1cmZhY2VmbGluZ2VyLm1rCisrKyBiL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L3N1cmZhY2VmbGluZ2VyLm1rCkBAIC01LDYgKzUsNTIgQEAKICAgICBMT0NBTF9DRkxBR1MgKz0gLURWU1lOQ19FVkVOVF9QSEFTRV9PRkZTRVRfTlM9JChWU1lOQ19FVkVOVF9QSEFTRV9PRkZTRVRfTlMpCiBlbmRpZgogCi1pZmVxICgkKE5VTV9GUkFNRUJVRkZFUl9TVVJGQUNFX0JVRkZFUlMpLDMpCi0gICAgTE9DQUxfQ0ZMQUdTICs9IC1EVVNFX1RSSVBMRV9GUkFNRUJVRkZFUgoraWZuZXEgKCQoU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TPSQoU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TKQorZW5kaWYKKworaWZlcSAoJChUQVJHRVRfQk9BUkRfUExBVEZPUk0pLG9tYXA0KQorICAgIExPQ0FMX0NGTEFHUyArPSAtRFVTRV9DT05URVhUX1BSSU9SSVRZPTEKK2VuZGlmCisKK2lmZXEgKCQoVEFSR0VUX0JPQVJEX1BMQVRGT1JNKSxzNXBjMTEwKQorICAgIExPQ0FMX0NGTEFHUyArPSAtRFVTRV9DT05URVhUX1BSSU9SSVRZPTEKK2VuZGlmCisKK2lmZXEgKCQoVEFSR0VUX0hBU19XSURFX0NPTE9SX0RJU1BMQVkpLHRydWUpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1ESEFTX1dJREVfQ09MT1JfRElTUExBWQorZW5kaWYKKworaWZlcSAoJChUQVJHRVRfSEFTX0hEUl9ESVNQTEFZKSx0cnVlKQorICAgIExPQ0FMX0NGTEFHUyArPSAtREhBU19IRFJfRElTUExBWQorZW5kaWYKKworaWZuZXEgKCQoUFJFU0VOVF9USU1FX09GRlNFVF9GUk9NX1ZTWU5DX05TKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EUFJFU0VOVF9USU1FX09GRlNFVF9GUk9NX1ZTWU5DX05TPSQoUFJFU0VOVF9USU1FX09GRlNFVF9GUk9NX1ZTWU5DX05TKQorZWxzZQorICAgIExPQ0FMX0NGTEFHUyArPSAtRFBSRVNFTlRfVElNRV9PRkZTRVRfRlJPTV9WU1lOQ19OUz0wCitlbmRpZgorCitpZmVxICgkKFRBUkdFVF9GT1JDRV9IV0NfRk9SX1ZJUlRVQUxfRElTUExBWVMpLHRydWUpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1ERk9SQ0VfSFdDX0NPUFlfRk9SX1ZJUlRVQUxfRElTUExBWVMKK2VuZGlmCisKK2lmbmVxICgkKE1BWF9WSVJUVUFMX0RJU1BMQVlfRElNRU5TSU9OKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1ETUFYX1ZJUlRVQUxfRElTUExBWV9ESU1FTlNJT049JChNQVhfVklSVFVBTF9ESVNQTEFZX0RJTUVOU0lPTikKK2VuZGlmCisKK2lmZXEgKCQoVEFSR0VUX1JVTk5JTkdfV0lUSE9VVF9TWU5DX0ZSQU1FV09SSyksdHJ1ZSkKKyAgICBMT0NBTF9DRkxBR1MgKz0gLURSVU5OSU5HX1dJVEhPVVRfU1lOQ19GUkFNRVdPUksKK2VuZGlmCisKK2lmbmVxICgkKFVTRV9WUl9GTElOR0VSKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EVVNFX1ZSX0ZMSU5HRVIKK2VuZGlmCisKK2lmbmVxICgkKE5VTV9GUkFNRUJVRkZFUl9TVVJGQUNFX0JVRkZFUlMpLCkKKyAgICBMT0NBTF9DRkxBR1MgKz0gLUROVU1fRlJBTUVCVUZGRVJfU1VSRkFDRV9CVUZGRVJTPSQoTlVNX0ZSQU1FQlVGRkVSX1NVUkZBQ0VfQlVGRkVSUykKK2VuZGlmCisKK2lmbmVxICgkKFNGX1NUQVJUX0dSQVBISUNTX0FMTE9DQVRPUl9TRVJWSUNFKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EU1RBUlRfR1JBUEhJQ1NfQUxMT0NBVE9SX1NFUlZJQ0UKIGVuZGlmCmRpZmYgLS1naXQgYS9jb25maWdzdG9yZS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2NvbmZpZ3N0b3JlLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NzU1MzgKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWdzdG9yZS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM0IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsQ29uZmlnc3RvcmVWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsQ29uZmlnc3RvcmVWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KKwpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbENvbmZpZ3N0b3JlVjFfMFRhcmdldFRlc3QuY3BwIGIvY29uZmlnc3RvcmUvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbENvbmZpZ3N0b3JlVjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1Y2QzMGIKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWdzdG9yZS8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ29uZmlnc3RvcmVWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNvbmZpZ3N0b3JlSGlkbEhhbFRlc3QiCisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY29uZmlnc3RvcmUvMS4wL0lTdXJmYWNlRmxpbmdlckNvbmZpZ3MuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NvbmZpZ3N0b3JlLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWdzdG9yZTo6VjFfMDo6SVN1cmZhY2VGbGluZ2VyQ29uZmlnczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3N0b3JlOjpWMV8wOjpPcHRpb25hbEJvb2w7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWdzdG9yZTo6VjFfMDo6T3B0aW9uYWxJbnQ2NDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3N0b3JlOjpWMV8wOjpPcHRpb25hbFVJbnQ2NDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNkZWZpbmUgQVNTRVJUX09LKHJldCkgQVNTRVJUX1RSVUUocmV0LmlzT2soKSkKKyNkZWZpbmUgRVhQRUNUX09LKHJldCkgRVhQRUNUX1RSVUUocmV0LmlzT2soKSkKKworY2xhc3MgQ29uZmlnc3RvcmVIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgc3A8SVN1cmZhY2VGbGluZ2VyQ29uZmlncz4gc2ZDb25maWdzOworCisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBzZkNvbmZpZ3MgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTwKKyAgICAgICAgICAgIElTdXJmYWNlRmxpbmdlckNvbmZpZ3M+KCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KK307CisKKy8qKgorICogRW5zdXJlIGFsbCBJU3VyZmFjZUZsaW5nZXJDb25maWdzLmhhbCBmdW5jdGlvbiBjYWxscyBhcmUgc3VjY2Vzc2Z1bC4KKyAqLworVEVTVF9GKENvbmZpZ3N0b3JlSGlkbFRlc3QsIFRlc3RGdW5jdGlvbkNhbGxzKSB7CisgICAgYm9vbCB0bXA7CisKKyAgICBSZXR1cm48dm9pZD4gc3RhdHVzID0gc2ZDb25maWdzLT52c3luY0V2ZW50UGhhc2VPZmZzZXROcygKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsSW50NjQgYXJnKSB7IHRtcCA9IGFyZy5zcGVjaWZpZWQ7IH0pOworICAgIEVYUEVDVF9PSyhzdGF0dXMpOworCisgICAgc3RhdHVzID0gc2ZDb25maWdzLT52c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxJbnQ2NCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnVzZUNvbnRleHRQcmlvcml0eSgKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPmhhc1dpZGVDb2xvckRpc3BsYXkoCisgICAgICAgIFsmdG1wXShPcHRpb25hbEJvb2wgYXJnKSB7IHRtcCA9IGFyZy5zcGVjaWZpZWQ7IH0pOworICAgIEVYUEVDVF9PSyhzdGF0dXMpOworCisgICAgc3RhdHVzID0gc2ZDb25maWdzLT5oYXNIRFJEaXNwbGF5KAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxCb29sIGFyZykgeyB0bXAgPSBhcmcuc3BlY2lmaWVkOyB9KTsKKyAgICBFWFBFQ1RfT0soc3RhdHVzKTsKKworICAgIHN0YXR1cyA9IHNmQ29uZmlncy0+cHJlc2VudFRpbWVPZmZzZXRGcm9tVlN5bmNOcygKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsSW50NjQgYXJnKSB7IHRtcCA9IGFyZy5zcGVjaWZpZWQ7IH0pOworICAgIEVYUEVDVF9PSyhzdGF0dXMpOworCisgICAgc3RhdHVzID0gc2ZDb25maWdzLT51c2VId2NGb3JSR0J0b1lVVigKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPm1heFZpcnR1YWxEaXNwbGF5U2l6ZSgKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsVUludDY0IGFyZykgeyB0bXAgPSBhcmcuc3BlY2lmaWVkOyB9KTsKKyAgICBFWFBFQ1RfT0soc3RhdHVzKTsKKworICAgIHN0YXR1cyA9IHNmQ29uZmlncy0+aGFzU3luY0ZyYW1ld29yaygKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnVzZVZyRmxpbmdlcigKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPm1heEZyYW1lQnVmZmVyQWNxdWlyZWRCdWZmZXJzKAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxJbnQ2NCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnN0YXJ0R3JhcGhpY3NBbGxvY2F0b3JTZXJ2aWNlKAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxCb29sIGFyZykgeyB0bXAgPSBhcmcuc3BlY2lmaWVkOyB9KTsKKyAgICBFWFBFQ1RfT0soc3RhdHVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgcmVwZWF0ZWQgY2FsbCB0byB0aGUgc2FtZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBzYW1lIHJlc3VsdC4KKyAqLworVEVTVF9GKENvbmZpZ3N0b3JlSGlkbFRlc3QsIFRlc3RTYW1lUmV0dXJuVmFsdWUpIHsKKyAgICBpbnQ2NF90IG9yaWdpbmFsX3JldDsKKyAgICBSZXR1cm48dm9pZD4gc3RhdHVzID0gc2ZDb25maWdzLT52c3luY0V2ZW50UGhhc2VPZmZzZXROcygKKyAgICAgICAgWyZvcmlnaW5hbF9yZXRdKE9wdGlvbmFsSW50NjQgYXJnKSB7IG9yaWdpbmFsX3JldCA9IGFyZy52YWx1ZTsgfSk7CisKKyAgICBpbnQ2NF90IG5leHRfcmV0OworICAgIGZvciAoaW50IGNudCA9IDA7IGNudCA8IDEwOyBjbnQrKykgeworICAgICAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKAorICAgICAgICAgICAgWyZuZXh0X3JldF0oT3B0aW9uYWxJbnQ2NCBhcmcpIHsgbmV4dF9yZXQgPSBhcmcudmFsdWU7IH0pOworICAgICAgICBFWFBFQ1RfRVEob3JpZ2luYWxfcmV0LCBuZXh0X3JldCk7CisgICAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICAgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvQW5kcm9pZC5icCBiL2NvbmZpZ3N0b3JlL0FuZHJvaWQuYnAKaW5kZXggNzliNjNmNi4uYmEzZTYyZSAxMDA2NDQKLS0tIGEvY29uZmlnc3RvcmUvQW5kcm9pZC5icAorKysgYi9jb25maWdzdG9yZS9BbmRyb2lkLmJwCkBAIC0xLDUgKzEsNiBAQAogLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgogc3ViZGlycyA9IFsKICAgICAiMS4wIiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKICAgICAidXRpbHMiLAogXQpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvdXRpbHMvaW5jbHVkZS9jb25maWdzdG9yZS9VdGlscy5oIGIvY29uZmlnc3RvcmUvdXRpbHMvaW5jbHVkZS9jb25maWdzdG9yZS9VdGlscy5oCmluZGV4IGVlODU1NDkuLmIxMDdhMjAgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlL3V0aWxzL2luY2x1ZGUvY29uZmlnc3RvcmUvVXRpbHMuaAorKysgYi9jb25maWdzdG9yZS91dGlscy9pbmNsdWRlL2NvbmZpZ3N0b3JlL1V0aWxzLmgKQEAgLTY3LDcgKzY3LDkgQEAKICAgICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IHZhbHVlCiAgICAgICAgICAgICByZXQuc3BlY2lmaWVkID0gZmFsc2U7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIHN0YXR1cyA9ICgqY29uZmlncy4qZnVuYykoWyZyZXRdKFYgdikgeyByZXQgPSB2OyB9KTsKKyAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gKCpjb25maWdzLipmdW5jKShbJnJldF0oViB2KSB7CisgICAgICAgICAgICAgICAgcmV0ID0gdjsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgaWYgKCFzdGF0dXMuaXNPaygpKSB7CiAgICAgICAgICAgICAgICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsKICAgICAgICAgICAgICAgICBvc3MgPDwgIkhJREwgY2FsbCBmYWlsZWQgZm9yIHJldHJpZXZpbmcgYSBjb25maWcgaXRlbSBmcm9tICIKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL0FuZHJvaWQuYnAgYi9jb250ZXh0aHViLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZDJlNWMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzAgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJQ29udGV4dGh1Yi5oYWwiLAorICAgICAgICAiSUNvbnRleHRodWJDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9Db250ZXh0aHViQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0NvbnRleHRodWJDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1Yi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvSUh3Q29udGV4dGh1Yi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQm5Id0NvbnRleHRodWIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0JwSHdDb250ZXh0aHViLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9Cc0NvbnRleHRodWIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lId0NvbnRleHRodWJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQm5Id0NvbnRleHRodWJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQnBId0NvbnRleHRodWJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQnNDb250ZXh0aHViQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC9BbmRyb2lkLm1rIGIvY29udGV4dGh1Yi8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTYxZTNiCi0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDY1OCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQXN5bmNFdmVudFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Bc3luY0V2ZW50VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkFzeW5jRXZlbnRUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb250ZXh0SHViKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvQ29udGV4dEh1Yi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkNvbnRleHRIdWIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbnRleHRIdWJNc2cpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Db250ZXh0SHViTXNnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuQ29udGV4dEh1Yk1zZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSG9zdEVuZFBvaW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSG9zdEVuZFBvaW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuSG9zdEVuZFBvaW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIdWJBcHBJbmZvKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSHViQXBwSW5mby5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkh1YkFwcEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEh1Yk1lbW9yeUZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9IdWJNZW1vcnlGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuSHViTWVtb3J5RmxhZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSHViTWVtb3J5VHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0h1Yk1lbW9yeVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5IdWJNZW1vcnlUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNZW1SYW5nZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL01lbVJhbmdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuTWVtUmFuZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE5hbm9BcHBCaW5hcnkpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9OYW5vQXBwQmluYXJ5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuTmFub0FwcEJpbmFyeQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTmFub0FwcEZsYWdzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvTmFub0FwcEZsYWdzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuTmFub0FwcEZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQaHlzaWNhbFNlbnNvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1BoeXNpY2FsU2Vuc29yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuUGh5c2ljYWxTZW5zb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1Jlc3VsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLlJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU2Vuc29yVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1NlbnNvclR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5TZW5zb3JUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUcmFuc2FjdGlvblJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1RyYW5zYWN0aW9uUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuVHJhbnNhY3Rpb25SZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQ29udGV4dGh1Yi5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0lDb250ZXh0aHViLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1Yi5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWJDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6SUNvbnRleHRodWIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSUNvbnRleHRodWJDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWJDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OklDb250ZXh0aHViQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChBc3luY0V2ZW50VHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0FzeW5jRXZlbnRUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuQXN5bmNFdmVudFR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbnRleHRIdWIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Db250ZXh0SHViLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuQ29udGV4dEh1YgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29udGV4dEh1Yk1zZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0NvbnRleHRIdWJNc2cuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5Db250ZXh0SHViTXNnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIb3N0RW5kUG9pbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Ib3N0RW5kUG9pbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5Ib3N0RW5kUG9pbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEh1YkFwcEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9IdWJBcHBJbmZvLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuSHViQXBwSW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSHViTWVtb3J5RmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0h1Yk1lbW9yeUZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5IdWJNZW1vcnlGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIdWJNZW1vcnlUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSHViTWVtb3J5VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkh1Yk1lbW9yeVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbVJhbmdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvTWVtUmFuZ2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5NZW1SYW5nZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTmFub0FwcEJpbmFyeSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL05hbm9BcHBCaW5hcnkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5OYW5vQXBwQmluYXJ5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChOYW5vQXBwRmxhZ3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9OYW5vQXBwRmxhZ3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5OYW5vQXBwRmxhZ3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBoeXNpY2FsU2Vuc29yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvUGh5c2ljYWxTZW5zb3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5QaHlzaWNhbFNlbnNvcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuUmVzdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTZW5zb3JUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvU2Vuc29yVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLlNlbnNvclR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRyYW5zYWN0aW9uUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvVHJhbnNhY3Rpb25SZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5UcmFuc2FjdGlvblJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElDb250ZXh0aHViLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSUNvbnRleHRodWIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjpJQ29udGV4dGh1YgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElDb250ZXh0aHViQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9JQ29udGV4dGh1YkNhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6SUNvbnRleHRodWJDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWJDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmhhbCBiL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGNjZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvSUNvbnRleHRodWIuaGFsCkBAIC0wLDAgKzEsMTcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOworCitpbXBvcnQgSUNvbnRleHRodWJDYWxsYmFjazsKKworLyoqCisgKiBUaGUgQ29udGV4dCBIdWIgSEFMIHByb3ZpZGVzIGFuIGludGVyZmFjZSB0byBhIHNlcGFyYXRlIGxvdy1wb3dlciBwcm9jZXNzaW5nCisgKiBkb21haW4gdGhhdCBoYXMgZGlyZWN0IGFjY2VzcyB0byBjb250ZXh0dWFsIGluZm9ybWF0aW9uLCBzdWNoIGFzIHNlbnNvcnMuCisgKiBOYXRpdmUgYXBwbGljYXRpb25zIHRoYXQgcnVuIHdpdGhpbiBhIGNvbnRleHQgaHViIGFyZSBrbm93biBhcyBuYW5vYXBwcywgYW5kCisgKiB0aGV5IGV4ZWN1dGUgd2l0aGluIHRoZSBDb250ZXh0IEh1YiBSdW50aW1lIEVudmlyb25tZW50IChDSFJFKSwgd2hpY2ggaXMKKyAqIHN0YW5kYXJkaXplZCB2aWEgdGhlIENIUkUgQVBJLCBkZWZpbmVkIGVsc2V3aGVyZS4KKyAqLworaW50ZXJmYWNlIElDb250ZXh0aHViIHsKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGUgYWxsIGF2YWlsYWJsZSBjb250ZXh0IGh1YnMgb24gdGhlIHN5c3RlbS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaHVicyBsaXN0IG9mIGh1YnMgb24gdGhpcyBzeXN0ZW0uCisgICAgICovCisgICAgZ2V0SHVicygpIGdlbmVyYXRlcyAodmVjPENvbnRleHRIdWI+IGh1YnMpOworCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBjYWxsYmFjayBmb3IgdGhlIEhBTCBpbXBsZW1lbnRhdGlvbiB0byBzZW5kIGFzeW5jaHJvbm91cworICAgICAqIG1lc3NhZ2VzIHRvIHRoZSBzZXJ2aWNlIGZyb20gYSBjb250ZXh0IGh1Yi4gVGhlcmUgY2FuIGJlIGEgbWF4aW11bSBvZgorICAgICAqIG9uZSBjYWxsYmFjayByZWdpc3RlcmVkIHdpdGggdGhlIEhBTC4gQSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gd2hlbiBhCisgICAgICogY2FsbGJhY2sgaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkIG11c3Qgb3ZlcnJpZGUgdGhlIHByZXZpb3VzCisgICAgICogcmVnaXN0cmF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGh1YklkICAgIGlkZW50aWZpZXIgZm9yIHRoZSBodWIKKyAgICAgKiAgICAgICAgY2FsbGJhY2sgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIElDb250ZXh0SHViQ2FsbGJhY2tzCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBvbiBzdWNjZXNzCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICoKKyAgICAgKi8KKyAgICAgcmVnaXN0ZXJDYWxsYmFjayh1aW50MzJfdCBodWJJZCwgSUNvbnRleHRodWJDYWxsYmFjayBjYikgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBtZXNzYWdlIHRvIGEgaHViCisgICAgICoKKyAgICAgKiBAcGFyYW0gaHViSWQgaWRlbnRpZmllciBmb3IgaHViIHRvIHNlbmQgbWVzc2FnZSB0bworICAgICAqICAgICAgICBtc2cgICBtZXNzYWdlIHRvIGJlIHNlbnQKKyAgICAgKgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHN1Y2Nlc3NmdWwsIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fRkFJTEVEIGlmIG1lc3NhZ2Ugc2VuZCBmYWlsZWQKKyAgICAgKi8KKyAgICBzZW5kTWVzc2FnZVRvSHViKHVpbnQzMl90IGh1YklkLCBDb250ZXh0SHViTXNnIG1zZykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBMb2FkcyBhIG5hbm9BcHAuIEFmdGVyIGxvYWRpbmcsIHRoZSBuYW5vQXBwJ3MgaW5pdCBtZXRob2QgbXVzdCBiZSBjYWxsZWQuCisgICAgICogQWZ0ZXIgdGhlIGluaXQgbWV0aG9kIGZvciBuYW5vQXBwIHJldHVybnMgc3VjY2VzcywgdGhpcyBtdXN0IGJlIGluZGljYXRlZAorICAgICAqIHRvIHRoZSBzZXJ2aWNlIGJ5IGFuIGFzeW5jaHJvbm91cyBjYWxsIHRvIGhhbmRsZVR4blJlc3VsdC4KKyAgICAgKgorICAgICAqIExvYWRpbmcgYSBuYW5vYXBwIG11c3Qgbm90IHRha2UgbW9yZSB0aGFuIDMwIHNlY29uZHMuCisgICAgICoKKyAgICAgKiBEZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLCBuYW5vQXBwcyBsb2FkZWQgdmlhIHRoaXMgQVBJIG1heSBvciBtYXkKKyAgICAgKiBub3QgcGVyc2lzdCBhY3Jvc3MgcmVib290cyBvZiB0aGUgaHViLiBJZiB0aGV5IGRvIHBlcnNpc3QsIHRoZQorICAgICAqIGltcGxlbWVudGF0aW9uIG11c3QgaW5pdGlhbGx5IHBsYWNlIG5hbm9BcHBzIGluIHRoZSBkaXNhYmxlZCBzdGF0ZSB1cG9uIGEKKyAgICAgKiByZWJvb3QsIGFuZCBub3Qgc3RhcnQgdGhlbSB1bnRpbCBhIGNhbGwgaXMgbWFkZSB0byBlbmFibGVOYW5vQXBwKCkuIEluCisgICAgICogdGhpcyBjYXNlLCB0aGUgYXBwIG11c3QgYWxzbyBiZSB1bmxvYWRlZCB1cG9uIGEgZmFjdG9yeSByZXNldCBvZiB0aGUKKyAgICAgKiBkZXZpY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaHViSWQgaWRlbnRpZmVyIG9mIHRoZSBjb250ZXh0SHViCisgICAgICogICAgICAgIGFwcEJpbmFyeSBjb250YWlucyB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBuYW5vQXBwLCBwbHVzCisgICAgICogICAgICAgICAgICAgICAgICBtZXRhZGF0YQorICAgICAqICAgICAgICB0cmFuc2FjdGlvbklkIHRyYW5zYWN0aW9uSWQgZm9yIHRoaXMgY2FsbAorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdHJhbnNhdGlvbiBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fUEVORElORyBpZiBodWIgaXMgYnVzeSB3aXRoIGFub3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQvdW5sb2FkIHRyYW5zYWN0aW9uCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fRkFJTEVEIGlmIGxvYWQgZmFpbGVkIHN5bmNocm9ub3VzbHkKKyAgICAgKgorICAgICAqLworICAgIGxvYWROYW5vQXBwKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgIE5hbm9BcHBCaW5hcnkgYXBwQmluYXJ5LAorICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogVW5sb2FkcyBhIG5hbm9BcHAuIEJlZm9yZSB0aGUgdW5sb2FkLCB0aGUgYXBwcyBkZWluaXQgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICAgKiBBZnRlciB0aGlzLCBzdWNjZXNzIG11c3QgYmUgaW5kaWNhdGVkIHRvIHRoZSBzZXJ2aWNlIHRocm91Z2ggYW4KKyAgICAgKiBhc3luY2hyb25vdXMgY2FsbCB0byBoYW5kbGVUeG5SZXN1bHQuCisgICAgICoKKyAgICAgKiBVbmxvYWRpbmcgYSBuYW5vYXBwIG11c3Qgbm90IHRha2UgbW9yZSB0aGFuIDUgc2Vjb25kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBodWJJZCBpZGVudGlmZXIgb2YgdGhlIGNvbnRleHRIdWIKKyAgICAgKiAgICAgICAgYXBwSWQgYXBwSWRlbnRpZmllciByZXR1cm5lZCBieSB0aGUgSEFMCisgICAgICogICAgICAgIG1zZyAgIG1lc3NhZ2UgdG8gYmUgc2VudAorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdHJhbnNhdGlvbiBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fUEVORElORyBpZiBodWIgaXMgYnVzeSB3aXRoIGFub3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQvdW5sb2FkIHRyYW5zYWN0aW9uCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fRkFJTEVEIGlmIHVubG9hZCBmYWlsZWQgc3luY2hyb25vdXNseQorICAgICAqCisgICAgICovCisgICAgdW5sb2FkTmFub0FwcCh1aW50MzJfdCBodWJJZCwgdWludDY0X3QgYXBwSWQsIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogRW5hYmxlcyBhIG5hbm9BcHAuIFRoZSBhcHAncyBpbml0IG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQWZ0ZXIgdGhpcywgc3VjY2VzcyBtdXN0IGJlIGluZGljYXRlZCB0byB0aGUgc2VydmljZSB0aHJvdWdoIGFuCisgICAgICogYXN5bmNocm9ub3VzIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBFbmFibGluZyBhIG5hbm9hcHAgbXVzdCBub3QgdGFrZSBtb3JlIHRoYW4gNSBzZWNvbmRzLgorICAgICAqCisgICAgICogQHBhcmFtIGh1YklkIGlkZW50aWZlciBvZiB0aGUgY29udGV4dEh1YgorICAgICAqICAgICAgICBhcHBJZCBhcHBJZGVudGlmaWVyIHJldHVybmVkIGJ5IHRoZSBIQUwKKyAgICAgKiAgICAgICAgbXNnICAgbWVzc2FnZSB0byBiZSBzZW50CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiB0cmFuc2F0aW9uIHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBCQURfVkFMVUUgaWYgcGFyYW1ldGVycyBhcmUgbm90IHNhbmUKKyAgICAgKiAgICAgICAgICAgICAgICBUUkFOU0FDVElPTl9QRU5ESU5HIGlmIGh1YiBpcyBidXN5IHdpdGggYW5vdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZC91bmxvYWQgdHJhbnNhY3Rpb24KKyAgICAgKiAgICAgICAgICAgICAgICBGQUlMRURfVFJBTlNBQ1RJT04gaWYgbG9hZCBmYWlscyBpbW1lZGlhdGVseQorICAgICAqCisgICAgICovCisgICAgZW5hYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwgdWludDY0X3QgYXBwSWQsIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogRGlzYWJsZXMgYSBuYW5vQXBwLiBUaGUgYXBwJ3MgZGVpbml0IG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQWZ0ZXIgdGhpcywgc3VjY2VzcyBtdXN0IGJlIGluZGljYXRlZCB0byB0aGUgc2VydmljZSB0aHJvdWdoIGFuCisgICAgICogYXN5bmNocm9ub3VzIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBEaXNhYmxpbmcgYSBuYW5vYXBwIG11c3Qgbm90IHRha2UgbW9yZSB0aGFuIDUgc2Vjb25kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBodWJJZCBpZGVudGlmZXIgb2YgdGhlIGNvbnRleHRIdWIKKyAgICAgKiAgICAgICAgYXBwSWQgYXBwSWRlbnRpZmllciByZXR1cm5lZCBieSB0aGUgSEFMCisgICAgICogICAgICAgIG1zZyAgIG1lc3NhZ2UgdG8gYmUgc2VudAorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdHJhbnNhdGlvbiBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fUEVORElORyBpZiBodWIgaXMgYnVzeSB3aXRoIGFub3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQvdW5sb2FkIHRyYW5zYWN0aW9uCisgICAgICogICAgICAgICAgICAgICAgRkFJTEVEX1RSQU5TQUNUSU9OIGlmIGxvYWQgZmFpbHMgaW1tZWRpYXRlbHkKKyAgICAgKgorICAgICAqLworICAgIGRpc2FibGVOYW5vQXBwKHVpbnQzMl90IGh1YklkLCB1aW50NjRfdCBhcHBJZCwgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBRdWVyaWVzIGZvciBMb2FkZWQgYXBwcyBvbiB0aGUgaHViCisgICAgICoKKyAgICAgKiBAcGFyYW0gaHViSWQgaWRlbnRpZmVyIG9mIHRoZSBjb250ZXh0SHViCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFwcHMgYWxsIG5hbm9BcHBzIG9uIHRoZSBodWIuCisgICAgICogICAgICAgICAgICAgIEFsbCBuYW5vQXBwcyB0aGF0IGNhbiBiZSBtb2RpZmllZCBieSB0aGUgc2VydmljZSBtdXN0CisgICAgICogICAgICAgICAgICAgIGJlIHJldHVybmVkLiBBIG5vbi1tb2RpZmlhYmxlIG5hbm9hcHBzIG11c3Qgbm90IGJlCisgICAgICogICAgICAgICAgICAgIHJldHVybmVkLiBBIG1vZGlmaWFibGUgbmFub0FwcCBpcyBvbmUgdGhhdCBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAgdW5sb2FkZWQvZGlzYWJsZWQvZW5hYmxlZCBieSB0aGUgc2VydmljZS4KKyAgICAgKgorICAgICAqLworICAgIHF1ZXJ5QXBwcyh1aW50MzJfdCBodWJJZCkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKK307CmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbCBiL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NGY4NGMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOworCitpbnRlcmZhY2UgSUNvbnRleHRodWJDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgYnkgdGhlIENvbnRleHRodWIgc2VydmljZSB0byB0aGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdGhlIEhBTCB0byBzZW5kIGFzeW5jaHJvbm91cyBtZXNzYWdlcyBiYWNrCisgICAgICogdG8gdGhlIHNlcnZpY2UgYW5kIHJlZ2lzdGVyZWQgY2xpZW50cyBvZiB0aGUgQ29udGV4dEh1YiBzZXJ2aWNlLgorICAgICAqCisgICAgICogQHBhcmFtcyBtc2cgOiBtZXNzYWdlCisgICAgICoKKyAgICAgKi8KKyAgICAgaGFuZGxlQ2xpZW50TXNnKENvbnRleHRIdWJNc2cgbXNnKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY2FsbGJhY2sgaXMgcGFzc2VkIGJ5IHRoZSBDb250ZXh0aHViIHNlcnZpY2UgdG8gdGhlIEhBTAorICAgICAqIGltcGxlbWVudGF0aW9uIHRvIGFsbG93IHRoZSBIQUwgdG8gc2VuZCB0aGUgcmVzcG9uc2UgZm9yIGEKKyAgICAgKiB0cmFuc2FjdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbXMgdHhuSWQgOiB0cmFuc2FjdGlvbiBpZCB3aG9zZSByZXN1bHQgaXMgYmVpbmcgc2VudAorICAgICAqICAgICAgICAgICAgICAgICBwYXNzZWQgaW4gYnkgdGhlIHNlcnZpY2UgYXQgc3RhcnQgb2YgdHJhbnNhY2F0aW9uLgorICAgICAqICAgICAgICAgcmVzdWx0OiByZXN1bHQgb2YgdHJhbnNhY3Rpb24uCisgICAgICoKKyAgICAgKi8KKyAgICAgaGFuZGxlVHhuUmVzdWx0KHVpbnQzMl90IHR4bklkLCBUcmFuc2FjdGlvblJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgYnkgdGhlIENvbnRleHRodWIgc2VydmljZSB0byB0aGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdGhlIEhBTCB0byBzZW5kIGFuIGFzeW5jaHJvbm91cyBldmVudAorICAgICAqIHRvIHRoZSBDb250ZXh0SHViIHNlcnZpY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW1zIG1zZyA6IG1lc3NhZ2UKKyAgICAgKgorICAgICAqLworICAgICBoYW5kbGVIdWJFdmVudChBc3luY0V2ZW50VHlwZSBldnQpOworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgYnkgdGhlIENvbnRleHRodWIgc2VydmljZSB0byB0aGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdGhlIEhBTCB0byBzZW5kIGEgbm90aWZpY2F0aW9uIHRvIHRoZSBzZXJ2aWNlCisgICAgICogdGhhdCBhIG5hbnAtYXBwIGhhcyBhYm9ydGVkLgorICAgICAqIFRoaXMgbWV0aG9kIG11c3QgYmUgY2FsbGVkIHdoZW4gYSBuYW5vYXBwIGludm9rZXMgY2hyZUFib3J0KC4uLikpLgorICAgICAqCisgICAgICogQHBhcmFtcyBhcHBJZCA6IGFwcCBpZGVudGlmaWVyCisgICAgICogICAgICAgICAgICAgICA6IGFib3J0Q29kZSBjb2RlIHBhc3NlZCBieSB0aGUgbmFub0FwcC4KKyAgICAgKgorICAgICAqIEFsc28gc2VlIGNocmVBYm9ydCguLi4pCisgICAgICoKKyAgICAgKi8KKyAgICAgaGFuZGxlQXBwQWJvcnQodWludDY0X3QgYXBwSWQsIHVpbnQzMl90IGFib3J0Q29kZSk7CisKKyAgICAgLyoqCisgICAgICAqIFRoaXMgY2FsbGJhY2sgaXMgcGFzc2VkIGJ5IHRoZSBDb250ZXh0aHViIHNlcnZpY2UgdG8gdGhlIEhBTAorICAgICAgKiBpbXBsZW1lbnRhdGlvbiB0byBhbGxvdyB0aGUgSEFMIHRvIHNlbmQgaW5mb3JtYXRpb24gYWJvdXQgdGhlCisgICAgICAqIGN1cnJlbnRseSBsb2FkZWQgYW5kIGFjdGl2ZSBuYW5vYXBwcyBvbiB0aGUgaHViLgorICAgICAgKgorICAgICAgKiBAcGFyYW1zIGFwcEluZm8gOiB2ZWN0b3Igb2YgSHViQXBwaW5mbyBzdHJ1Y3R1cmUgZm9yIGVhY2ggbmFub0FwcAorICAgICAgKiAgICAgICAgICAgICAgICAgICBvbiB0aGUgaHViIHRoYXQgY2FuIGJlIGVuYWJsZWQsIGRpc2FibGVkIGFuZAorICAgICAgKiAgICAgICAgICAgICAgICAgICB1bmxvYWRlZCBieSB0aGUgc2VydmljZS4gQW55IG5hbm9BcHBzIHRoYXQgY2Fubm90CisgICAgICAqICAgICAgICAgICAgICAgICAgIGJlIGNvbnRyb2xsZWQgYnkgdGhlIHNlcnZpY2UgbXVzdCBub3QgYmUgcmVwb3J0ZWQuCisgICAgICAqICAgICAgICAgICAgICAgICAgIEFsbCBuYW5vQXBwcyB0aGF0IGNhbiBiZSBjb250cm9sbGVkIGJ5IHRoZSBzZXJ2aWNlCisgICAgICAqICAgICAgICAgICAgICAgICAgIG11c3QgYmUgcmVwb3J0ZWQuCisgICAgICAqLworICAgICAgaGFuZGxlQXBwc0luZm8odmVjPEh1YkFwcEluZm8+IGFwcEluZm8pOworfTsKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGQyN2NjCi0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIkNvbnRleHRodWIuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxN2JmZTAKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwyMiBAQAorTE9DQUxfUEFUSDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICAgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICAgICAgbGliYmFzZSBcCisgICAgICAgIGxpYmN1dGlscyBcCisgICAgICAgIGxpYmRsIFwKKyAgICAgICAgbGliaGFyZHdhcmUgXAorICAgICAgICBsaWJoaWRsYmFzZSBcCisgICAgICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgICAgICBsaWJsb2cgXAorICAgICAgICBsaWJ1dGlscyBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQ29udGV4dGh1Yi5jcHAgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNmIzZjIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuY3BwCkBAIC0wLDAgKzEsNTUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgIkNvbnRleHRodWIuaCIKKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvY29udGV4dF9odWIuaD4KKyNpbmNsdWRlIDxzeXMvZW5kaWFuLmg+CisKKyN1bmRlZiBMT0dfVEFHCisjZGVmaW5lIExPR19UQUcgIkNvbnRleHRIdWJIYWxBZGFwdGVyIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNvbnRleHRodWIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RhdGljIGNvbnN0ZXhwciB1aW50NjRfdCBBTExfQVBQUyA9IFVJTlQ2NF9DKDB4RkZGRkZGRkZGRkZGRkZGRik7CisKK0NvbnRleHRodWI6OkNvbnRleHRodWIoKQorICAgICAgICA6IG1Jbml0Q2hlY2soTk9fSU5JVCksCisgICAgICAgICAgbUNvbnRleHRIdWJNb2R1bGUobnVsbHB0ciksCisgICAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nKGZhbHNlKSB7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKm1vZHVsZTsKKworICAgIG1Jbml0Q2hlY2sgPSBod19nZXRfbW9kdWxlKENPTlRFWFRfSFVCX01PRFVMRV9JRCwgJm1vZHVsZSk7CisKKyAgICBpZiAobUluaXRDaGVjayAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IGxvYWQgJXMgbW9kdWxlOiAlcyIsIENPTlRFWFRfSFVCX01PRFVMRV9JRCwgc3RyZXJyb3IoLW1Jbml0Q2hlY2spKTsKKyAgICB9IGVsc2UgaWYgKG1vZHVsZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJoYWwgcmV0dXJuZWQgc3VjY2VzIGJ1dCBhIG51bGwgbW9kdWxlISIpOworICAgICAgICAvLyBBc3NpZ24gYW4gZXJyb3IsIHRoaXMgc2hvdWxkIG5vdCByZWFsbHkgaGFwcGVuLi4uCisgICAgICAgIG1Jbml0Q2hlY2sgPSBVTktOT1dOX0VSUk9SOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dJKCJMb2FkZWQgQ29udGV4dCBIdWIgbW9kdWxlIik7CisgICAgICAgIG1Db250ZXh0SHViTW9kdWxlID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjb250ZXh0X2h1Yl9tb2R1bGVfdCAqPihtb2R1bGUpOworICAgIH0KK30KKworYm9vbCBDb250ZXh0aHViOjpzZXRPc0FwcEFzRGVzdGluYXRpb24oaHViX21lc3NhZ2VfdCAqbXNnLCBpbnQgaHViSWQpIHsKKyAgICBpZiAoIWlzVmFsaWRIdWJJZChodWJJZCkpIHsKKyAgICAgICAgQUxPR1coIiVzOiBIdWIgaW5mb3JtYXRpb24gaXMgbnVsbCBmb3IgaHViSGFuZGxlICVkIiwKKyAgICAgICAgICAgICAgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgICBodWJJZCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBtc2ctPmFwcF9uYW1lID0gbUNhY2hlZEh1YkluZm9baHViSWRdLm9zQXBwTmFtZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitSZXR1cm48dm9pZD4gQ29udGV4dGh1Yjo6Z2V0SHVicyhnZXRIdWJzX2NiIF9oaWRsX2NiKSB7CisgICAgc3RkOjp2ZWN0b3I8Q29udGV4dEh1Yj4gaHViczsKKyAgICBpZiAoaXNJbml0aWFsaXplZCgpKSB7CisgICAgICAgIGNvbnN0IGNvbnRleHRfaHViX3QgKmh1YkFycmF5ID0gbnVsbHB0cjsKKyAgICAgICAgc2l6ZV90IG51bUh1YnM7CisKKyAgICAgICAgLy8gRXhwbGljaXRseSBkaXNjYXJkaW5nIGNvbnN0LiBIQUwgbWV0aG9kIGRpc2NhcmRzIGl0LgorICAgICAgICBudW1IdWJzID0gbUNvbnRleHRIdWJNb2R1bGUtPmdldF9odWJzKGNvbnN0X2Nhc3Q8Y29udGV4dF9odWJfbW9kdWxlX3QgKj4obUNvbnRleHRIdWJNb2R1bGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZodWJBcnJheSk7CisgICAgICAgIEFMT0dJKCJDb250ZXh0IEh1YiBIYWwgQWRhcHRlciByZXBvcnRzICV6dSBodWJzIiwgbnVtSHVicyk7CisKKyAgICAgICAgbUNhY2hlZEh1YkluZm8uY2xlYXIoKTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUh1YnM7IGkrKykgeworICAgICAgICAgICAgQ2FjaGVkSHViSW5mb3JtYXRpb24gaW5mbzsKKyAgICAgICAgICAgIENvbnRleHRIdWIgYzsKKworICAgICAgICAgICAgYy5odWJJZCA9IGh1YkFycmF5W2ldLmh1Yl9pZDsKKyAgICAgICAgICAgIGMubmFtZSA9IGh1YkFycmF5W2ldLm5hbWU7CisgICAgICAgICAgICBjLnZlbmRvciA9IGh1YkFycmF5W2ldLnZlbmRvcjsKKyAgICAgICAgICAgIGMudG9vbGNoYWluID0gaHViQXJyYXlbaV0udG9vbGNoYWluOworICAgICAgICAgICAgYy50b29sY2hhaW5WZXJzaW9uID0gaHViQXJyYXlbaV0udG9vbGNoYWluX3ZlcnNpb247CisgICAgICAgICAgICBjLnBsYXRmb3JtVmVyc2lvbiA9IGh1YkFycmF5W2ldLnBsYXRmb3JtX3ZlcnNpb247CisgICAgICAgICAgICBjLm1heFN1cHBvcnRlZE1zZ0xlbiA9IGh1YkFycmF5W2ldLm1heF9zdXBwb3J0ZWRfbXNnX2xlbjsKKyAgICAgICAgICAgIGMucGVha01pcHMgPSBodWJBcnJheVtpXS5wZWFrX21pcHM7CisgICAgICAgICAgICBjLnBlYWtQb3dlckRyYXdNdyA9IGh1YkFycmF5W2ldLnBlYWtfcG93ZXJfZHJhd19tdzsKKyAgICAgICAgICAgIGMuc3RvcHBlZFBvd2VyRHJhd013ID0gaHViQXJyYXlbaV0uc3RvcHBlZF9wb3dlcl9kcmF3X213OworICAgICAgICAgICAgYy5zbGVlcFBvd2VyRHJhd013ID0gaHViQXJyYXlbaV0uc2xlZXBfcG93ZXJfZHJhd19tdzsKKworICAgICAgICAgICAgaW5mby5jYWxsQmFjayA9IG51bGxwdHI7CisgICAgICAgICAgICBpbmZvLm9zQXBwTmFtZSA9IGh1YkFycmF5W2ldLm9zX2FwcF9uYW1lOworICAgICAgICAgICAgbUNhY2hlZEh1YkluZm9baHViQXJyYXlbaV0uaHViX2lkXSA9IGluZm87CisKKyAgICAgICAgICAgIGh1YnMucHVzaF9iYWNrKGMpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR1coIkNvbnRleHQgSHViIEhhbCBBZGFwdGVyIG5vdCBpbml0aWFsaXplZCIpOworICAgIH0KKworICAgIF9oaWRsX2NiKGh1YnMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK2Jvb2wgQ29udGV4dGh1Yjo6aXNWYWxpZEh1YklkKHVpbnQzMl90IGh1YklkKSB7CisgICAgaWYgKCFtQ2FjaGVkSHViSW5mby5jb3VudChodWJJZCkpIHsKKyAgICAgICAgQUxPR1coIkh1YiBpbmZvcm1hdGlvbiBub3QgZm91bmQgZm9yIGh1YklkICUiIFBSSXUzMiwgaHViSWQpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiBDb250ZXh0aHViOjpnZXRDYWxsQmFja0Zvckh1YklkKHVpbnQzMl90IGh1YklkKSB7CisgICAgaWYgKCFpc1ZhbGlkSHViSWQoaHViSWQpKSB7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBtQ2FjaGVkSHViSW5mb1todWJJZF0uY2FsbEJhY2s7CisgICAgfQorfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjpzZW5kTWVzc2FnZVRvSHViKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb250ZXh0SHViTXNnICZtc2cpIHsKKyAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBpZiAoIWlzVmFsaWRIdWJJZChodWJJZCkgfHwgbXNnLm1zZy5zaXplKCkgPiBVSU5UMzJfTUFYKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OkJBRF9QQVJBTVM7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCB0eE1zZyA9IHsKKyAgICAgICAgLmFwcF9uYW1lLmlkID0gbXNnLmFwcE5hbWUsCisgICAgICAgIC5tZXNzYWdlX3R5cGUgPSBtc2cubXNnVHlwZSwKKyAgICAgICAgLm1lc3NhZ2VfbGVuID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1zZy5tc2cuc2l6ZSgpKSwgLy8gTm90ZSB0aGUgY2hlY2sgYWJvdmUKKyAgICAgICAgLm1lc3NhZ2UgPSBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90ICo+KG1zZy5tc2cuZGF0YSgpKSwKKyAgICB9OworCisgICAgQUxPR0koIlNlbmRpbmcgbXNnIG9mIHR5cGUgJSIgUFJJdTMyICIsIHNpemUgJSIgUFJJdTMyICIgdG8gYXBwIDB4JSIgUFJJeDY0LAorICAgICAgICAgIHR4TXNnLm1lc3NhZ2VfdHlwZSwKKyAgICAgICAgICB0eE1zZy5tZXNzYWdlX2xlbiwKKyAgICAgICAgICB0eE1zZy5hcHBfbmFtZS5pZCk7CisKKyAgICBpZihtQ29udGV4dEh1Yk1vZHVsZS0+c2VuZF9tZXNzYWdlKGh1YklkLCAmdHhNc2cpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0KKworICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjpyZWJvb3QodWludDMyX3QgaHViSWQpIHsKKyAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVQ7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCBtc2c7CisKKyAgICBpZiAoc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKCZtc2csIGh1YklkKSA9PSBmYWxzZSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpCQURfUEFSQU1TOworICAgIH0KKworICAgIG1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9PU19SRUJPT1Q7CisgICAgbXNnLm1lc3NhZ2VfbGVuID0gMDsKKyAgICBtc2cubWVzc2FnZSA9IG51bGxwdHI7CisKKyAgICBpZihtQ29udGV4dEh1Yk1vZHVsZS0+c2VuZF9tZXNzYWdlKGh1YklkLCAmbXNnKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX0ZBSUxFRDsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IENvbnRleHRodWI6OnJlZ2lzdGVyQ2FsbGJhY2sodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElDb250ZXh0aHViQ2FsbGJhY2s+ICZjYikgeworICAgIFJldHVybjxSZXN1bHQ+IHJldFZhbCA9IFJlc3VsdDo6QkFEX1BBUkFNUzsKKworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICAgIC8vIE5vdCBpbml0aWxhbGl6ZWQKKyAgICAgICAgQUxPR1coIkNvbnRleHQgaHViIG5vdCBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkiKTsKKyAgICAgICAgcmV0VmFsID0gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9IGVsc2UgaWYgKCFpc1ZhbGlkSHViSWQoaHViSWQpKSB7CisgICAgICAgIC8vIEluaXRpYWxpemVkLCBidXQgaHViSWQgaXMgIG5vdCB2YWxpZAorICAgICAgICByZXRWYWwgPSBSZXN1bHQ6OkJBRF9QQVJBTVM7CisgICAgfSBlbHNlIGlmIChtQ29udGV4dEh1Yk1vZHVsZS0+c3Vic2NyaWJlX21lc3NhZ2VzKGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0SHViQ2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMpID09IDApIHsKKyAgICAgICAgLy8gSW5pdGlhbGl6ZWQgJiYgdmFsaWQgaHViICYmIHN1YnNjcmlwdGlvbiBzdWNjZXNzZnVsCisgICAgICAgIHJldFZhbCA9IFJlc3VsdDo6T0s7CisgICAgICAgIG1DYWNoZWRIdWJJbmZvW2h1YklkXS5jYWxsQmFjayA9IGNiOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEluaXRhbGl6ZWQgJiYgdmFsaWQgaHViSWQgLSBidXQgc3Vic2NyaXB0aW9uIHVuc3VjY2Vzc2Z1bAorICAgICAgICAvLyBUaGlzIGlzIGxpa2VseSBhbiBpbnRlcm5hbCBlcnJvciBpbiB0aGUgSEFMIGltcGxlbWVudGF0aW9uLCBidXQgd2UKKyAgICAgICAgLy8gY2Fubm90IGFkZCBtb3JlIGluZm9ybWF0aW9uLgorICAgICAgICBBTE9HVygiQ291bGQgbm90IHN1YnNjcmliZSB0byB0aGUgaHViIGZvciBjYWxsYmFjayIpOworICAgICAgICByZXRWYWwgPSBSZXN1bHQ6OlVOS05PV05fRkFJTFVSRTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0VmFsOworfQorCitzdGF0aWMgYm9vbCBpc1ZhbGlkT3NTdGF0dXMoY29uc3QgdWludDhfdCAqbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBtc2dMZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzX3Jlc3BvbnNlX3QgKnJzcCkgeworICAgIC8vIFdvcmthcm91bmQgYSBidWcgaW4gc29tZSBIQUxzCisgICAgaWYgKG1zZ0xlbiA9PSAxKSB7CisgICAgICAgIHJzcC0+cmVzdWx0ID0gbXNnWzBdOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAobXNnID09IG51bGxwdHIgfHwgbXNnTGVuICE9IHNpemVvZigqcnNwKSkgeworICAgICAgICBBTE9HSSgiUmVjZWl2ZWQgaW52YWxpZCByZXNwb25zZSAoaXMgbnVsbCA6ICVkLCBzaXplICV6dSkiLAorICAgICAgICAgICAgICBtc2cgPT0gbnVsbHB0ciA/IDEgOiAwLAorICAgICAgICAgICAgICBtc2dMZW4pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgbWVtY3B5KHJzcCwgbXNnLCBzaXplb2YoKnJzcCkpOworCisgICAgLy8gTm8gc2FuaXR5IGNoZWNrcyBvbiByZXR1cm4gdmFsdWVzCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2ludCBDb250ZXh0aHViOjpoYW5kbGVPc01lc3NhZ2Uoc3A8SUNvbnRleHRodWJDYWxsYmFjaz4gY2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG1zZ1R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKm1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1zZ0xlbikgeworICAgIGludCByZXRWYWwgPSAtMTsKKworCisgICAgc3dpdGNoKG1zZ1R5cGUpIHsKKyAgICAgICAgY2FzZSBDT05URVhUX0hVQl9BUFBTX0VOQUJMRToKKyAgICAgICAgY2FzZSBDT05URVhUX0hVQl9BUFBTX0RJU0FCTEU6CisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfTE9BRF9BUFA6CisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfVU5MT0FEX0FQUDoKKyAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHN0YXR1c19yZXNwb25zZV90IHJzcDsKKyAgICAgICAgICAgIFRyYW5zYWN0aW9uUmVzdWx0IHJlc3VsdDsKKyAgICAgICAgICAgIGlmIChpc1ZhbGlkT3NTdGF0dXMobXNnLCBtc2dMZW4sICZyc3ApICYmIHJzcC5yZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldFZhbCA9IDA7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVHJhbnNhY3Rpb25SZXN1bHQ6OlNVQ0NFU1M7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRyYW5zYWN0aW9uUmVzdWx0OjpGQUlMVVJFOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY2IgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgIGNiLT5oYW5kbGVUeG5SZXN1bHQobVRyYW5zYWN0aW9uSWQsIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSAwOworICAgICAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfUVVFUllfQVBQUzoKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjp2ZWN0b3I8SHViQXBwSW5mbz4gYXBwczsKKyAgICAgICAgICAgIGludCBudW1BcHBzID0gbXNnTGVuIC8gc2l6ZW9mKGh1Yl9hcHBfaW5mbyk7CisgICAgICAgICAgICBjb25zdCBodWJfYXBwX2luZm8gKnVuYWxpZ25lZEluZm9BZGRyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBodWJfYXBwX2luZm8gKj4obXNnKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1BcHBzOyBpKyspIHsKKyAgICAgICAgICAgICAgICBodWJfYXBwX2luZm8gcXVlcnlfaW5mbzsKKyAgICAgICAgICAgICAgICBtZW1jcHkoJnF1ZXJ5X2luZm8sICZ1bmFsaWduZWRJbmZvQWRkcltpXSwgc2l6ZW9mKHF1ZXJ5X2luZm8pKTsKKyAgICAgICAgICAgICAgICBIdWJBcHBJbmZvIGFwcDsKKyAgICAgICAgICAgICAgICBhcHAuYXBwSWQgPSBxdWVyeV9pbmZvLmFwcF9uYW1lLmlkOworICAgICAgICAgICAgICAgIGFwcC52ZXJzaW9uID0gcXVlcnlfaW5mby52ZXJzaW9uOworICAgICAgICAgICAgICAgIC8vIFRPRE8gOjogQWRkIG1lbW9yeSByYW5nZXMKKworICAgICAgICAgICAgICAgIGFwcHMucHVzaF9iYWNrKGFwcCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjYiAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgY2ItPmhhbmRsZUFwcHNJbmZvKGFwcHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDT05URVhUX0hVQl9RVUVSWV9NRU1PUlk6CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIERlZmVycmluZyB0aGlzIHVzZQorICAgICAgICAgICAgcmV0VmFsID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDT05URVhUX0hVQl9PU19SRUJPT1Q6CisgICAgICAgIHsKKyAgICAgICAgICAgIG1Jc1RyYW5zYWN0aW9uUGVuZGluZyA9IGZhbHNlOworICAgICAgICAgICAgaWYgKGNiICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBjYi0+aGFuZGxlSHViRXZlbnQoQXN5bmNFdmVudFR5cGU6OlJFU1RBUlRFRCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICB7CisgICAgICAgICAgICByZXRWYWwgPSAtMTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIHJldHVybiByZXRWYWw7Cit9CisKK2ludCBDb250ZXh0aHViOjpjb250ZXh0SHViQ2IodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBodWJfbWVzc2FnZV90ICpyeE1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKSB7CisgICAgQ29udGV4dGh1YiAqb2JqID0gc3RhdGljX2Nhc3Q8Q29udGV4dGh1YiAqPihjb29raWUpOworCisgICAgaWYgKHJ4TXNnID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR1coIklnbm9yaW5nIE5VTEwgbWVzc2FnZSIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKCFvYmotPmlzVmFsaWRIdWJJZChodWJJZCkpIHsKKyAgICAgICAgQUxPR1coIkludmFsaWQgaHViIElkICUiIFBSSXUzMiwgaHViSWQpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgc3A8SUNvbnRleHRodWJDYWxsYmFjaz4gY2IgPSBvYmotPmdldENhbGxCYWNrRm9ySHViSWQoaHViSWQpOworCisgICAgaWYgKGNiID09IG51bGxwdHIpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGV2ZXIgaGFwcGVuCisgICAgICAgIEFMT0dXKCJObyBjYWxsYmFjayByZWdpc3RlcmVkLCByZXR1cm5pbmciKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChyeE1zZy0+bWVzc2FnZV90eXBlIDwgQ09OVEVYVF9IVUJfVFlQRV9QUklWQVRFX01TR19CQVNFKSB7CisgICAgICAgIG9iai0+aGFuZGxlT3NNZXNzYWdlKGNiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByeE1zZy0+bWVzc2FnZV90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90ICo+KHJ4TXNnLT5tZXNzYWdlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnhNc2ctPm1lc3NhZ2VfbGVuKTsKKyAgICB9IGVsc2UgeworICAgICAgICBDb250ZXh0SHViTXNnIG1zZzsKKworICAgICAgICBtc2cuYXBwTmFtZSA9IHJ4TXNnLT5hcHBfbmFtZS5pZDsKKyAgICAgICAgbXNnLm1zZ1R5cGUgPSByeE1zZy0+bWVzc2FnZV90eXBlOworICAgICAgICBtc2cubXNnID0gc3RkOjp2ZWN0b3I8dWludDhfdD4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCAqPihyeE1zZy0+bWVzc2FnZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90ICo+KHJ4TXNnLT5tZXNzYWdlKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByeE1zZy0+bWVzc2FnZV9sZW4pOworCisgICAgICAgIGNiLT5oYW5kbGVDbGllbnRNc2cobXNnKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworUmV0dXJuPFJlc3VsdD4gQ29udGV4dGh1Yjo6dW5sb2FkTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgYXBwSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpIHsKKyAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVQ7CisgICAgfQorCisgICAgaWYgKG1Jc1RyYW5zYWN0aW9uUGVuZGluZykgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpUUkFOU0FDVElPTl9QRU5ESU5HOworICAgIH0KKworICAgIGh1Yl9tZXNzYWdlX3QgbXNnOworCisgICAgaWYgKHNldE9zQXBwQXNEZXN0aW5hdGlvbigmbXNnLCBodWJJZCkgPT0gZmFsc2UpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6QkFEX1BBUkFNUzsKKyAgICB9CisKKyAgICBzdHJ1Y3QgYXBwc19kaXNhYmxlX3JlcXVlc3RfdCByZXE7CisKKyAgICBtc2cubWVzc2FnZV90eXBlID0gQ09OVEVYVF9IVUJfVU5MT0FEX0FQUDsKKyAgICBtc2cubWVzc2FnZV9sZW4gPSBzaXplb2YocmVxKTsKKyAgICBtc2cubWVzc2FnZSA9ICZyZXE7CisgICAgcmVxLmFwcF9uYW1lLmlkID0gYXBwSWQ7CisKKyAgICBpZihtQ29udGV4dEh1Yk1vZHVsZS0+c2VuZF9tZXNzYWdlKGh1YklkLCAmbXNnKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX0ZBSUxFRDsKKyAgICB9IGVsc2UgeworICAgICAgICBtVHJhbnNhY3Rpb25JZCA9IHRyYW5zYWN0aW9uSWQ7CisgICAgICAgIG1Jc1RyYW5zYWN0aW9uUGVuZGluZyA9IHRydWU7CisgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgIH0KK30KKworUmV0dXJuPFJlc3VsdD4gQ29udGV4dGh1Yjo6bG9hZE5hbm9BcHAodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBOYW5vQXBwQmluYXJ5JiBhcHBCaW5hcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0cmFuc2FjdGlvbklkKSB7CisgICAgaWYgKCFpc0luaXRpYWxpemVkKCkpIHsKKyAgICAgIHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUOworICAgIH0KKworICAgIGlmIChtSXNUcmFuc2FjdGlvblBlbmRpbmcpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fUEVORElORzsKKyAgICB9CisKKyAgICBodWJfbWVzc2FnZV90IGh1Yk1zZzsKKworICAgIGlmIChzZXRPc0FwcEFzRGVzdGluYXRpb24oJmh1Yk1zZywgaHViSWQpID09IGZhbHNlKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OkJBRF9QQVJBTVM7CisgICAgfQorCisgICAgLy8gRGF0YSBmcm9tIHRoZSBuYW5vYXBwIGhlYWRlciBpcyBwYXNzZWQgdGhyb3VnaCBISURMIGFzIGV4cGxpY2l0IGZpZWxkcywKKyAgICAvLyBidXQgdGhlIGxlZ2FjeSBIQUwgZXhwZWN0cyBpdCBwcmVwZW5kZWQgdG8gdGhlIGJpbmFyeSwgdGhlcmVmb3JlIHdlIG11c3QKKyAgICAvLyByZWNvbnN0cnVjdCBpdCBoZXJlIHByaW9yIHRvIHBhc3NpbmcgdG8gdGhlIGxlZ2FjeSBIQUwuCisgICAgdWludDMyX3QgdGFyZ2V0Q2hyZUFwaVZlcnNpb24gPQorICAgICAgICAoYXBwQmluYXJ5LnRhcmdldENocmVBcGlNYWpvclZlcnNpb24gPDwgMjQpIHwKKyAgICAgICAgKGFwcEJpbmFyeS50YXJnZXRDaHJlQXBpTWlub3JWZXJzaW9uIDw8IDE2KTsKKyAgICBjb25zdCBzdHJ1Y3QgbmFub19hcHBfYmluYXJ5X3QgaGVhZGVyID0geworICAgICAgICAuaGVhZGVyX3ZlcnNpb24gPSBodG9sZTMyKDEpLAorICAgICAgICAubWFnaWMgICAgICAgICAgPSBodG9sZTMyKE5BTk9BUFBfTUFHSUMpLAorICAgICAgICAuYXBwX2lkLmlkICAgICAgPSBodG9sZTY0KGFwcEJpbmFyeS5hcHBJZCksCisgICAgICAgIC5hcHBfdmVyc2lvbiAgICA9IGh0b2xlMzIoYXBwQmluYXJ5LmFwcFZlcnNpb24pLAorICAgICAgICAuZmxhZ3MgICAgICAgICAgPSBodG9sZTMyKGFwcEJpbmFyeS5mbGFncyksCisgICAgICAgIC5od19odWJfdHlwZSAgICA9IGh0b2xlNjQoMCksCisgICAgICAgIC5yZXNlcnZlZFswXSAgICA9IGh0b2xlMzIodGFyZ2V0Q2hyZUFwaVZlcnNpb24pLAorICAgICAgICAucmVzZXJ2ZWRbMV0gICAgPSAwLAorICAgIH07CisgICAgY29uc3QgdWludDhfdCAqaGVhZGVyQnl0ZXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QgKj4oJmhlYWRlcik7CisKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBiaW5hcnlXaXRoSGVhZGVyKGFwcEJpbmFyeS5jdXN0b21CaW5hcnkpOworICAgIGJpbmFyeVdpdGhIZWFkZXIuaW5zZXJ0KGJpbmFyeVdpdGhIZWFkZXIuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJCeXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJCeXRlcyArIHNpemVvZihoZWFkZXIpKTsKKworICAgIGh1Yk1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9MT0FEX0FQUDsKKyAgICBodWJNc2cubWVzc2FnZV9sZW4gPSBiaW5hcnlXaXRoSGVhZGVyLnNpemUoKTsKKyAgICBodWJNc2cubWVzc2FnZSA9IGJpbmFyeVdpdGhIZWFkZXIuZGF0YSgpOworCisgICAgaWYgKG1Db250ZXh0SHViTW9kdWxlLT5zZW5kX21lc3NhZ2UoaHViSWQsICZodWJNc2cpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0gZWxzZSB7CisgICAgICAgIG1UcmFuc2FjdGlvbklkID0gdHJhbnNhY3Rpb25JZDsKKyAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgfQorfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjplbmFibGVOYW5vQXBwKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBhcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkgeworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBpZiAobUlzVHJhbnNhY3Rpb25QZW5kaW5nKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX1BFTkRJTkc7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCBtc2c7CisKKyAgICBpZiAoc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKCZtc2csIGh1YklkKSA9PSBmYWxzZSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpCQURfUEFSQU1TOworICAgIH0KKworICAgIHN0cnVjdCBhcHBzX2VuYWJsZV9yZXF1ZXN0X3QgcmVxOworCisgICAgbXNnLm1lc3NhZ2VfdHlwZSA9IENPTlRFWFRfSFVCX0FQUFNfRU5BQkxFOworICAgIG1zZy5tZXNzYWdlX2xlbiA9IHNpemVvZihyZXEpOworICAgIHJlcS5hcHBfbmFtZS5pZCA9IGFwcElkOworICAgIG1zZy5tZXNzYWdlID0gJnJlcTsKKworICAgIGlmKG1Db250ZXh0SHViTW9kdWxlLT5zZW5kX21lc3NhZ2UoaHViSWQsICZtc2cpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0gZWxzZSB7CisgICAgICAgIG1UcmFuc2FjdGlvbklkID0gdHJhbnNhY3Rpb25JZDsKKyAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgfQorfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjpkaXNhYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFwcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkgeworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBpZiAobUlzVHJhbnNhY3Rpb25QZW5kaW5nKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX1BFTkRJTkc7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCBtc2c7CisKKyAgICBpZiAoc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKCZtc2csIGh1YklkKSA9PSBmYWxzZSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpCQURfUEFSQU1TOworICAgIH0KKworICAgIHN0cnVjdCBhcHBzX2Rpc2FibGVfcmVxdWVzdF90IHJlcTsKKworICAgIG1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9BUFBTX0RJU0FCTEU7CisgICAgbXNnLm1lc3NhZ2VfbGVuID0gc2l6ZW9mKHJlcSk7CisgICAgcmVxLmFwcF9uYW1lLmlkID0gYXBwSWQ7CisgICAgbXNnLm1lc3NhZ2UgPSAmcmVxOworCisgICAgaWYobUNvbnRleHRIdWJNb2R1bGUtPnNlbmRfbWVzc2FnZShodWJJZCwgJm1zZykgIT0gMCkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpUUkFOU0FDVElPTl9GQUlMRUQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbVRyYW5zYWN0aW9uSWQgPSB0cmFuc2FjdGlvbklkOworICAgICAgICBtSXNUcmFuc2FjdGlvblBlbmRpbmcgPSB0cnVlOworICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IENvbnRleHRodWI6OnF1ZXJ5QXBwcyh1aW50MzJfdCBodWJJZCkgeworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBodWJfbWVzc2FnZV90IG1zZzsKKworICAgIGlmIChzZXRPc0FwcEFzRGVzdGluYXRpb24oJm1zZywgaHViSWQpID09IGZhbHNlKSB7CisgICAgICAgIEFMT0dXKCJDb3VsZCBub3QgZmluZCBodWJJZCAlIiBQUkl1MzIsIGh1YklkKTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6QkFEX1BBUkFNUzsKKyAgICB9CisKKyAgICBxdWVyeV9hcHBzX3JlcXVlc3RfdCBwYXlsb2FkOworICAgIHBheWxvYWQuYXBwX25hbWUuaWQgPSBBTExfQVBQUzsgLy8gVE9ETyA6IFBhc3MgdGhpcyBpbiBhcyBhIHBhcmFtZXRlcgorICAgIG1zZy5tZXNzYWdlID0gJnBheWxvYWQ7CisgICAgbXNnLm1lc3NhZ2VfbGVuID0gc2l6ZW9mKHBheWxvYWQpOworICAgIG1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9RVUVSWV9BUFBTOworCisgICAgaWYobUNvbnRleHRIdWJNb2R1bGUtPnNlbmRfbWVzc2FnZShodWJJZCwgJm1zZykgIT0gMCkgeworICAgICAgICBBTE9HVygiUXVlcnkgQXBwcyBzZW5kTWVzc2FnZSBmYWlsZWQiKTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0KKworICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCitib29sIENvbnRleHRodWI6OmlzSW5pdGlhbGl6ZWQoKSB7CisgICAgcmV0dXJuIChtSW5pdENoZWNrID09IE9LICYmIG1Db250ZXh0SHViTW9kdWxlICE9IG51bGxwdHIpOworfQorCitJQ29udGV4dGh1YiAqSElETF9GRVRDSF9JQ29udGV4dGh1Yihjb25zdCBjaGFyICogaGFsTmFtZSkgeworICAgIEFMT0dJKCIlcyBDYWxsZWQgZm9yICVzIiwgX19GVU5DVElPTl9fLCBoYWxOYW1lKTsKKyAgICBDb250ZXh0aHViICpjb250ZXh0aHViID0gbmV3IENvbnRleHRodWI7CisKKyAgICBpZiAoIWNvbnRleHRodWItPmlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgICBkZWxldGUgY29udGV4dGh1YjsKKyAgICAgICAgY29udGV4dGh1YiA9IG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGNvbnRleHRodWI7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBjb250ZXh0aHViCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuaCBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQ29udGV4dGh1Yi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1ODc5MzAKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuaApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9DT05URVhUSFVCX1YxXzBfQ09OVEVYVEhVQl9IXworI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0NPTlRFWFRIVUJfVjFfMF9DT05URVhUSFVCX0hfCisKKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL21hY3Jvcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvSUNvbnRleHRodWIuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9jb250ZXh0X2h1Yi5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNvbnRleHRodWIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RydWN0IENvbnRleHRodWIgOiBwdWJsaWMgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6SUNvbnRleHRodWIgeworICAgIENvbnRleHRodWIoKTsKKworICAgIFJldHVybjx2b2lkPiBnZXRIdWJzKGdldEh1YnNfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gcmVnaXN0ZXJDYWxsYmFjayh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElDb250ZXh0aHViQ2FsbGJhY2s+ICZjYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBzZW5kTWVzc2FnZVRvSHViKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29udGV4dEh1Yk1zZyAmbXNnKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IGxvYWROYW5vQXBwKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE5hbm9BcHBCaW5hcnkmIGFwcEJpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0cmFuc2FjdGlvbklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IHVubG9hZE5hbm9BcHAodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBhcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFwcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBkaXNhYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBhcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0cmFuc2FjdGlvbklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IHF1ZXJ5QXBwcyh1aW50MzJfdCBodWJJZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiByZWJvb3QodWludDMyX3QgaHViSWQpOworCisgICAgYm9vbCBpc0luaXRpYWxpemVkKCk7CisKK3ByaXZhdGU6CisKKyAgICBzdHJ1Y3QgQ2FjaGVkSHViSW5mb3JtYXRpb257CisgICAgICAgIHN0cnVjdCBodWJfYXBwX25hbWVfdCBvc0FwcE5hbWU7CisgICAgICAgIHNwPElDb250ZXh0aHViQ2FsbGJhY2s+IGNhbGxCYWNrOworICAgIH07CisKKyAgICBzdGF0dXNfdCBtSW5pdENoZWNrOworICAgIGNvbnN0IHN0cnVjdCBjb250ZXh0X2h1Yl9tb2R1bGVfdCAqbUNvbnRleHRIdWJNb2R1bGU7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQzMl90LCBDYWNoZWRIdWJJbmZvcm1hdGlvbj4gbUNhY2hlZEh1YkluZm87CisKKyAgICBzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiBtQ2I7CisgICAgYm9vbCBtSXNUcmFuc2FjdGlvblBlbmRpbmc7CisgICAgdWludDMyX3QgbVRyYW5zYWN0aW9uSWQ7CisKKyAgICBib29sIGlzVmFsaWRIdWJJZCh1aW50MzJfdCBodWJJZCk7CisKKyAgICBzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiBnZXRDYWxsQmFja0Zvckh1YklkKHVpbnQzMl90IGh1YklkKTsKKworICAgIGludCBoYW5kbGVPc01lc3NhZ2Uoc3A8SUNvbnRleHRodWJDYWxsYmFjaz4gY2IsCisgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtc2dUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1zZ0xlbik7CisKKyAgICBzdGF0aWMgaW50IGNvbnRleHRIdWJDYih1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgaHViX21lc3NhZ2VfdCAqcnhNc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKTsKKworICAgIGJvb2wgc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKGh1Yl9tZXNzYWdlX3QgKm1zZywgaW50IGh1YklkKTsKKworICAgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihDb250ZXh0aHViKTsKK307CisKK2V4dGVybiAiQyIgSUNvbnRleHRodWIgKkhJRExfRkVUQ0hfSUNvbnRleHRodWIoY29uc3QgY2hhciAqbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBjb250ZXh0aHViCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9DT05URVhUSFVCX1YxXzBfQ09OVEVYVEhVQl9IXwpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wLXNlcnZpY2UucmMgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Njc3ZWMyCi0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGNvbnRleHRodWItaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM2NzZiNAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1Yi5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6SUNvbnRleHRodWI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElDb250ZXh0aHViPigpOworfQpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvdHlwZXMuaGFsIGIvY29udGV4dGh1Yi8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5NTA2MjcKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA7CisKK2VudW0gUmVzdWx0IDogdWludDMyX3QgeworICAgIE9LLCAgICAgICAgICAgICAgICAgIC8vIFN1Y2Nlc3MKKyAgICBVTktOT1dOX0ZBSUxVUkUsICAgICAvLyBGYWlsdXJlLCB1bmtub3duIHJlYXNvbgorICAgIEJBRF9QQVJBTVMsICAgICAgICAgIC8vIFBhcmFtZXRlcnMgbm90IHNhbmUKKyAgICBOT1RfSU5JVCwgICAgICAgICAgICAvLyBOb3QgaW5pdGlhbGl6ZWQKKyAgICBUUkFOU0FDVElPTl9GQUlMRUQsICAvLyBUcmFuc2FjdGlvbiBmYWlsZWQKKyAgICBUUkFOU0FDVElPTl9QRU5ESU5HLCAvLyBQZW5kaW5nIHRyYW5zYWN0aW9uLCBjYW5ub3QgYWNjZXB0IGEgbmV3IHJlcXVlc3QKK307CisKK2VudW0gTmFub0FwcEZsYWdzIDogdWludDMyX3QgeworICAgIFNJR05FRCAgICA9IDEgPDwgMCwKKyAgICBFTkNSWVBURUQgPSAxIDw8IDEsCit9OworCitzdHJ1Y3QgTmFub0FwcEJpbmFyeSB7CisgICAgdWludDY0X3QgYXBwSWQ7ICAgICAgICAgICAgLy8gTmFub2FwcCBpZGVudGlmaWVyCisgICAgdWludDMyX3QgYXBwVmVyc2lvbjsgICAgICAgLy8gVmVyc2lvbiBvZiB0aGUgYXBwIChzZW1hbnRpY3MgZGVmaW5lZCBieSBhcHApCisgICAgYml0ZmllbGQ8TmFub0FwcEZsYWdzPiBmbGFnczsKKworICAgIC8vIFRoZSB2ZXJzaW9uIG9mIHRoZSBDSFJFIEFQSSB0aGF0IHRoaXMgbmFub0FwcCB3YXMgY29tcGlsZWQgYWdhaW5zdC4gU2VlCisgICAgLy8gdGhlIENIUkUgQVBJIGhlYWRlciBmaWxlIGNocmUvdmVyc2lvbi5oIGZvciBtb3JlIGluZm9ybWF0aW9uLiBUaGUgaHViCisgICAgLy8gaW1wbGVtZW50YXRpb24gbXVzdCB1c2UgdGhpcyB0byBjb25maXJtIGNvbXBhdGliaWxpdHkgYmVmb3JlIGxvYWRpbmcKKyAgICAvLyB0aGlzIG5hbm9BcHAuCisgICAgdWludDhfdCB0YXJnZXRDaHJlQXBpTWFqb3JWZXJzaW9uOworICAgIHVpbnQ4X3QgdGFyZ2V0Q2hyZUFwaU1pbm9yVmVyc2lvbjsKKworICAgIC8vIEltcGxlbWVudGF0aW9uLXNwZWNpZmljIGJpbmFyeSBuYW5vYXBwIGRhdGEuIFRoaXMgZG9lcyBub3QgaW5jbHVkZSB0aGUKKyAgICAvLyBjb21tb24gbmFub2FwcCBoZWFkZXIgdGhhdCBjb250YWlucyB0aGUgYXBwIElELCBldGMuLCBhcyB0aGlzIGRhdGEgaXMKKyAgICAvLyBleHBsaWNpdGx5IHBhc3NlZCB0aHJvdWdoIHRoZSBvdGhlciBmaWVsZHMgaW4gdGhpcyBzdHJ1Y3QuCisgICAgdmVjPHVpbnQ4X3Q+IGN1c3RvbUJpbmFyeTsKK307CisKK2VudW0gU2Vuc29yVHlwZSA6IHVpbnQzMl90IHsKKyAgICBSRVNFUlZFRCwKKyAgICBBQ0NFTEVST01FVEVSLAorICAgIEdZUk9TQ09QRSwKKyAgICBNQUdORVRPTUVURVIsCisgICAgQkFST01FVEVSLAorICAgIFBST1hJTUlUWV9TRU5TT1IsCisgICAgQU1CSUVOVF9MSUdIVF9TRU5TT1IsCisgICAgU1RBVElPTkFSWV9ERVRFQ1QsCisgICAgSU5TVEFOVF9NT1RJT05fREVURUNULAorCisgICAgR1BTID0gMHgxMDAsCisgICAgLy8gUmVzZXJ2aW5nIHRoaXMgc3BhY2UgZm9yIHZhcmlhbnRzIG9uIEdQUworCisgICAgV0lGSSA9IDB4MjAwLAorICAgIC8vIFJlc2VydmluZyB0aGlzIHNwYWNlIGZvciB2YXJpYW50cyBvbiBXSUZJCisKKyAgICBBVURJTyA9IDB4MzAwLAorICAgIC8vIFJlc2VydmluZyB0aGlzIHNwYWNlIGZvciB2YXJpYW50cyBvbiBBdWRpbworCisgICAgQ0FNRVJBID0gMHg0MDAsCisgICAgLy8gUmVzZXJ2aW5nIHRoaXMgc3BhY2UgZm9yIHZhcmlhbnRzIG9uIENhbWVyYQorCisgICAgQkxFID0gMHg1MDAsCisgICAgLy8gUmVzZXJ2aW5nIHRoaXMgc3BhY2UgZm9yIHZhcmlhbnRzIG9uIEJsdWV0b290aCBMb3cgRW5lcmd5CisKKyAgICBXV0FOID0gMHg2MDAsCisgICAgLy8gUmVzZXJ2aW5nIHRoaXMgc3BhY2UgZm9yIHZhcmlhbnRzIG9uIFdXQU4KKworICAgIFBSSVZBVEVfU0VOU09SX0JBU0UgPSAweDEwMDAwLAorICAgIC8vIFNlbnNvciB0eXBlcyBiZXlvbmQgUFJJVkFURV9TRU5TT1JfQkFTRSBhcmUgY3VzdG9tIHR5cGVzCit9OworCitzdHJ1Y3QgUGh5c2ljYWxTZW5zb3J7CisgICAgU2Vuc29yVHlwZSBzZW5zb3JUeXBlOyAgICAgICAvLyBGcm9tIHRoZSBkZWZpbml0aW9ucyBhYm92ZSBlZzogMTAwCisgICAgc3RyaW5nIHR5cGU7ICAgICAgICAgICAgICAgICAvLyBUeXBlIGFzIGEgc3RyaW5nLiBlZzogIkdQUyIKKyAgICBzdHJpbmcgbmFtZTsgICAgICAgICAgICAgICAgIC8vIElkZW50aWZpZXIgZWc6ICJCb3NjaCBCTUkxNjAiCisgICAgc3RyaW5nIHZlbmRvcjsgICAgICAgICAgICAgICAvLyBWZW5kb3IgOiBlZyAiU1RNIgorICAgIHVpbnQzMl90IHZlcnNpb247ICAgICAgICAgICAgLy8gVmVyc2lvbiA6IGVnIDB4MTAwMQorICAgIHVpbnQzMl90IGZpZm9SZXNlcnZlZENvdW50OyAgLy8gQmF0Y2hpbmcgcG9zc2libGUgaW4gaGFyZHdhcmUuIFBsZWFzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90ZSB0aGF0IGhlcmUgaGFyZHdhcmUgZG9lcyBub3QgaW5jbHVkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNvbnRleHQgaHViIGl0c2VsZi4gVGh1cywgdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVmaW5pdGlvbiBtYXkgYmUgZGlmZmVyZW50IGZyb20gc2F5IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIGFkdmVydGlzZWQgaW4gdGhlIHNlbnNvcnMgSEFMCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBhbGxvd3MgZm9yIGJhdGNoaW5nIGluIGEgaHViLgorICAgIHVpbnQzMl90IGZpZm9NYXhDb3VudDsgICAgICAgLy8gTWF4aW11bSBudW1iZXIgb2YgYmF0Y2hhYmxlIGV2ZW50cy4KKyAgICB1aW50NjRfdCBtaW5EZWxheU1zOyAgICAgICAgIC8vIEluIG1pbGxpc2Vjb25kcywgY29ycmVzcG9uZGluZyB0byBoaWdoZXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzYW1wbGluZyBmcmVxLgorICAgIHVpbnQ2NF90IG1heERlbGF5TXM7ICAgICAgICAgLy8gSW4gbWlsbGlzZWNvbmRzLCBjb3JyZXNwb25kcyB0byBtaW5pbXVtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzYW1wbGluZyBmcmVxdWVuY3kKKyAgICBmbG9hdCBwZWFrUG93ZXJNdzsgICAgICAgICAgIC8vIEF0IG1heCBmcmVxdWVuY3kgJiBubyBiYXRjaGluZywgcG93ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIG1pbGxpd2F0dHMKK307CisKK3N0cnVjdCBDb250ZXh0SHViIHsKKyAgICBzdHJpbmcgbmFtZTsgICAgICAgICAgICAgICAgLy8gRGVzY3JpcHRpdmUgbmFtZSBlZzogIkF3ZXNvbWUgSHViICMxIgorICAgIHN0cmluZyB2ZW5kb3I7ICAgICAgICAgICAgICAvLyBIdWIgaGFyZHdhcmUgdmVuZG9yIGVnOiAiUXVhbGNvbW0iCisgICAgc3RyaW5nIHRvb2xjaGFpbjsgICAgICAgICAgIC8vIFRvb2xjaGFpbiB0byBtYWtlIGJpbmFyaWVzIGVnOiAiZ2NjIEFSTSIKKyAgICB1aW50MzJfdCBwbGF0Zm9ybVZlcnNpb247ICAgLy8gVmVyc2lvbiBvZiB0aGUgaGFyZHdhcmUgOiBlZyAweDIwCisgICAgdWludDMyX3QgdG9vbGNoYWluVmVyc2lvbjsgIC8vIFZlcnNpb24gb2YgdGhlIHRvb2xjaGFpbiA6IGVnOiAweDQ4NAorICAgIHVpbnQzMl90IGh1YklkOyAgICAgICAgICAgICAvLyBBIGRldmljZSB1bmlxdWUgSUQgZm9yIHRoaXMgaHViCisKKyAgICBmbG9hdCBwZWFrTWlwczsgICAgICAgICAgICAgLy8gUGVhayBNSVBTIHBsYXRmb3JtIGNhbiBkZWxpdmVyCisgICAgZmxvYXQgc3RvcHBlZFBvd2VyRHJhd013OyAgIC8vIElmIHN0b3BwZWQsIHJldGVudGlvbiBwb3dlciwgbWlsbGl3YXR0cworICAgIGZsb2F0IHNsZWVwUG93ZXJEcmF3TXc7ICAgICAvLyBJZiBzbGVlcGluZywgcmV0ZW50aW9uIHBvd2VyLCBtaWxsaXdhdHRzCisgICAgZmxvYXQgcGVha1Bvd2VyRHJhd013OyAgICAgIC8vIEZvciBhIGJ1c3kgQ1BVLCBwb3dlciBpbiBtaWxsaXdhdHRzCisKKyAgICB2ZWM8UGh5c2ljYWxTZW5zb3I+IGNvbm5lY3RlZFNlbnNvcnM7IC8vIEFycmF5IG9mIGNvbm5lY3RlZCBzZW5zb3JzCisKKyAgICB1aW50MzJfdCBtYXhTdXBwb3J0ZWRNc2dMZW47Ly8gVGhpcyBpcyB0aGUgbWF4aW11bSBzaXplIG9mIHRoZSBtZXNzYWdlIHRoYXQgY2FuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlIHNlbnQgdG8gdGhlIGh1YiBpbiBvbmUgY2h1bmsgKGluIGJ5dGVzKQorCisgICAgLy8gTWFjaGluZS1yZWFkYWJsZSBDSFJFIHBsYXRmb3JtIElELCByZXR1cm5lZCB0byBuYW5vYXBwcyBpbiB0aGUgQ0hSRSBBUEkKKyAgICAvLyBmdW5jdGlvbiBjYWxsIGNocmVHZXRQbGF0Zm9ybUlkKCkuIFRoaXMgZmllbGQgcGFpcnMgd2l0aAorICAgIC8vIGNocmVBcGlNYWpvclZlcnNpb24sIGNocmVBcGlNaW5vclZlcnNpb24sIGFuZCBjaHJlUGF0Y2hWZXJzaW9uIHRvIGZ1bGx5CisgICAgLy8gc3BlY2lmeSB0aGUgQ0hSRSBpbXBsZW1lbnRhdGlvbiB2ZXJzaW9uLiBTZWUgYWxzbyB0aGUgQ0hSRSBBUEkgaGVhZGVyCisgICAgLy8gZmlsZSBjaHJlL3ZlcnNpb24uaC4KKyAgICB1aW50NjRfdCBjaHJlUGxhdGZvcm1JZDsKKworICAgIC8vIFRoZSB2ZXJzaW9uIG9mIHRoZSBDSFJFIGltcGxlbWVudGF0aW9uIHJldHVybmVkIHRvIG5hbm9BcHBzIGluIHRoZSBDSFJFCisgICAgLy8gQVBJIGZ1bmN0aW9uIGNhbGwgY2hyZUdldFZlcnNpb24oKS4gVGhlIG1ham9yIGFuZCBtaW5vciB2ZXJzaW9uIHNwZWNpZnkKKyAgICAvLyB0aGUgaW1wbGVtZW50ZWQgdmVyc2lvbiBvZiB0aGUgQ0hSRSBBUEksIHdoaWxlIHRoZSBwYXRjaCB2ZXJzaW9uCisgICAgLy8gZGVzY3JpYmVzIHRoZSBpbXBsZW1lbnRhdGlvbiB2ZXJzaW9uIHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhlIHBsYXRmb3JtCisgICAgLy8gSUQuIFNlZSBhbHNvIHRoZSBDSFJFIEFQSSBoZWFkZXIgZmlsZSBjaHJlL3ZlcnNpb24uaC4KKyAgICB1aW50OF90IGNocmVBcGlNYWpvclZlcnNpb247CisgICAgdWludDhfdCBjaHJlQXBpTWlub3JWZXJzaW9uOworICAgIHVpbnQxNl90IGNocmVQYXRjaFZlcnNpb247Cit9OworCitlbnVtIEhvc3RFbmRQb2ludCA6IHVpbnQxNl90IHsKKyAgICBCUk9BRENBU1QgPSAweEZGRkYsIC8vIFRoZSBtZXNzYWdlIGVuZHBvaW50IGlzIGEgYnJvYWRjYXN0IGVuZCBwb2ludC4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgdmFsdWUgbXVzdCBuZXZlciBiZSB1c2VkIGZvciBhIG1lc3NhZ2UgZnJvbQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGhvc3QgdG8gdGhlIGh1Yi4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIEJST0FEQ0FTVCBpcyBzcGVjaWZpZWQgYXMgYSBkZXN0aW5hdGlvbiBmb3IgYQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWVzc2FnZSBmcm9tIHRoZSBjb250ZXh0IGh1YiB0byB0aGUgQ29udGV4dEh1YgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VydmljZSwgdGhlIG1lc3NhZ2UgbXVzdCBiZSBicm9hZGNhc3QgdG8gYWxsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWdpc3RlcmVkIGNsaWVudHMgYnkgdGhlIENvbnRleHQgSHViIHNlcnZpY2UuCisgICAgVU5TUEVDSUZJRUQgPSAweEZGRkUsIC8vIFRoZSBtZXNzYWdlIGVuZHBvaW50IGlzIHVuc3BlY2lmaWVkLiBUaGlzIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG11c3Qgbm90IGJlIHVzZWQgZm9yIG1lc3NhZ2VzIGZyb20gdGhlIGh1YiB0byBob3N0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHZhbHVlIG1heSBiZSB1c2VkIGZvciBtZXNzYWdlcyBmcm9tIHRoZSBob3N0CisgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBodWIuCit9OworCitzdHJ1Y3QgQ29udGV4dEh1Yk1zZyB7CisgICAgdWludDY0X3QgYXBwTmFtZTsgICAgICAvLyBJbnRlbmRlZCByZWNpcGllbnQgKGFwcElkKQorICAgIHVpbnQxNl90IGhvc3RFbmRQb2ludDsgLy8gaWRlbnRpZmllciBmb3IgdGhlIGVuZHBvaW50LiAoYWxzbyBzZWUgZW51bSBIb3N0RW5kUG9pbnQpCisgICAgdWludDMyX3QgbXNnVHlwZTsgICAgICAvLyBJZGVudGlmaWVyIGZvciBtZXNzYWdlCisgICAgdmVjPHVpbnQ4X3Q+IG1zZzsgICAgICAvLyBNZXNzYWdlIGJvZHkKK307CisKK2VudW0gSHViTWVtb3J5VHlwZSA6IHVpbnQzMl90IHsKKyAgICBNQUlOICAgICAgPSAwLCAvLyBNYWluIG1lbW9yeQorICAgIFNFQ09OREFSWSA9IDEsIC8vIFNlY29uZGFyeSBtZW1vcnkKKyAgICBUQ00gICAgICAgPSAyLCAvLyBUaWdodGx5IGNvdXBsZWQgbWVtb3J5Cit9OworCitlbnVtIEh1Yk1lbW9yeUZsYWcgOiB1aW50MzJfdCB7CisgICAgUkVBRCAgPSAxIDw8IDAsIC8vIFJlYWRhYmxlCisgICAgV1JJVEUgPSAxIDw8IDEsIC8vIFdyaXRhYmxlCisgICAgRVhFQyAgPSAxIDw8IDIsIC8vIEV4ZWN1dGFibGUKK307CisKK3N0cnVjdCBNZW1SYW5nZSB7CisgICAgdWludDMyX3QgdG90YWxCeXRlczsgLy8gVG90YWwgY2FwYWNpdHkgaW4gYnl0ZXMKKyAgICB1aW50MzJfdCBmcmVlQnl0ZXM7ICAvLyBGcmVlIGNhcGFjaXR5IGluIGJ5dGVzCisgICAgSHViTWVtb3J5VHlwZSB0eXBlOyAgLy8gVHlwZSBvZiBtZW1vcnksIHNlZSBIdWJNZW1vcnlUeXBlCisgICAgYml0ZmllbGQ8SHViTWVtb3J5RmxhZz4gZmxhZ3M7Cit9OworCitlbnVtIEFzeW5jRXZlbnRUeXBlIDogdWludDMyX3QgeworICAgIFJFU1RBUlRFRCA9IDEsICAgLy8gSHViIHJlc3RhcnRlZCB1bmV4cGVjdGVkbHkKK307CisKK2VudW0gVHJhbnNhY3Rpb25SZXN1bHQgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTLCAgICAgIC8vIFN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0cmFuc2FjdGlvbgorICAgIEZBSUxVUkUsICAgICAgLy8gRmFpbGVkIHRyYW5zYWN0aW9uCit9OworCitzdHJ1Y3QgSHViQXBwSW5mbyB7CisgICAgdWludDY0X3QgYXBwSWQ7ICAgICAgICAgLy8gSWRlbnRpZmllciBvZiB0aGUgYXBwCisgICAgdWludDMyX3QgdmVyc2lvbjsgICAgICAgLy8gVmVyc2lvbiBvZiB0aGUgYXBwCisgICAgdmVjPE1lbVJhbmdlPiBtZW1Vc2FnZTsgLy8gTWVtb3J5IHVzZWQgYnkgdGhpcyBhcHAKKyAgICBib29sIGVuYWJsZWQ7ICAgICAgICAgICAvLyB0cnVlIGlmIHRoZSBhcHAgaXMgY3VycmVudGx5IGVuYWJsZWQgYW5kIHJ1bm5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3IgZmFsc2UgaWYgaW4gdGhlIGxvYWRlZCBidXQgZGlzYWJsZWQgc3RhdGUKK307CisKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9jb250ZXh0aHViLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzNTM4NmQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxDb250ZXh0aHViVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbENvbnRleHRodWJWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQorCmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxDb250ZXh0aHViVjFfMFRhcmdldFRlc3QuY3BwIGIvY29udGV4dGh1Yi8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ29udGV4dGh1YlYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjcyODI0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ29udGV4dGh1YlYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDM4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiY29udGV4dGh1Yl9oaWRsX2hhbF90ZXN0IgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1YkNhbGxiYWNrLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8Y2ludHR5cGVzPgorI2luY2x1ZGUgPGZ1dHVyZT4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OkFzeW5jRXZlbnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6Q29udGV4dEh1YjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OkNvbnRleHRIdWJNc2c7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb250ZXh0aHViOjpWMV8wOjpIdWJBcHBJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6SUNvbnRleHRodWI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb250ZXh0aHViOjpWMV8wOjpJQ29udGV4dGh1YkNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6TmFub0FwcEJpbmFyeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OlRyYW5zYWN0aW9uUmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2RlZmluZSBBU1NFUlRfT0socmVzdWx0KSBBU1NFUlRfRVEocmVzdWx0LCBSZXN1bHQ6Ok9LKQorI2RlZmluZSBFWFBFQ1RfT0socmVzdWx0KSBFWFBFQ1RfRVEocmVzdWx0LCBSZXN1bHQ6Ok9LKQorCituYW1lc3BhY2UgeworCisvLyBBcHAgSUQgd2l0aCB2ZW5kb3IgIkdvb2dUIiAoR29vZ2xlIFRlc3RpbmcpLCBhcHAgaWRlbnRpZmllciAweDU1NTU1NS4gVGhpcworLy8gYXBwIElEIGlzIHJlc2VydmVkIGFuZCBtdXN0IG5ldmVyIGFwcGVhciBpbiB0aGUgbGlzdCBvZiBsb2FkZWQgYXBwcy4KK2NvbnN0ZXhwciB1aW50NjRfdCBrTm9uRXhpc3RlbnRBcHBJZCA9IDB4NDc2ZjZmNjc1NDU1NTU1NTsKKworLy8gSGVscGVyIHRoYXQgZG9lcyBleHBsaWNpdCBjb252ZXJzaW9uIG9mIGFuIGVudW0gY2xhc3MgdG8gaXRzIHVuZGVybHlpbmcvYmFzZQorLy8gdHlwZS4gVXNlZnVsIGZvciBzdHJlYW0gb3V0cHV0IG9mIGVudW0gdmFsdWVzLgordGVtcGxhdGU8dHlwZW5hbWUgRW51bVR5cGU+Citjb25zdGV4cHIgdHlwZW5hbWUgc3RkOjp1bmRlcmx5aW5nX3R5cGU8RW51bVR5cGU+Ojp0eXBlIGFzQmFzZVR5cGUoCisgICAgRW51bVR5cGUgdmFsdWUpIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6dW5kZXJseWluZ190eXBlPEVudW1UeXBlPjo6dHlwZT4odmFsdWUpOworfQorCisvLyBTeW5jaHJvbm91c2x5IHF1ZXJpZXMgSUNvbnRleHRodWI6OmdldEh1YnMoKSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0CitoaWRsX3ZlYzxDb250ZXh0SHViPiBnZXRIdWJzU3luYyhzcDxJQ29udGV4dGh1Yj4gaHViQXBpKSB7CisgIGhpZGxfdmVjPENvbnRleHRIdWI+IGh1Ykxpc3Q7CisgIHN0ZDo6cHJvbWlzZTx2b2lkPiBiYXJyaWVyOworCisgIGh1YkFwaS0+Z2V0SHVicyhbJmh1Ykxpc3QsICZiYXJyaWVyXShjb25zdCBoaWRsX3ZlYzxDb250ZXh0SHViPiYgaHVicykgeworICAgIGh1Ykxpc3QgPSBodWJzOworICAgIGJhcnJpZXIuc2V0X3ZhbHVlKCk7CisgIH0pOworICBiYXJyaWVyLmdldF9mdXR1cmUoKS53YWl0X2ZvcihzdGQ6OmNocm9ubzo6c2Vjb25kcygxKSk7CisKKyAgcmV0dXJuIGh1Ykxpc3Q7Cit9CisKKy8vIEdldHMgYSBsaXN0IG9mIHZhbGlkIGh1YiBJRHMgaW4gdGhlIHN5c3RlbQorc3RkOjp2ZWN0b3I8dWludDMyX3Q+IGdldEh1YklkcygpIHsKKyAgc3RhdGljIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBodWJJZHM7CisKKyAgaWYgKGh1Yklkcy5zaXplKCkgPT0gMCkgeworICAgIHNwPElDb250ZXh0aHViPiBodWJBcGkgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJQ29udGV4dGh1Yj4oKTsKKworICAgIGlmIChodWJBcGkgIT0gbnVsbHB0cikgeworICAgICAgZm9yIChDb250ZXh0SHViIGh1YiA6IGdldEh1YnNTeW5jKGh1YkFwaSkpIHsKKyAgICAgICAgaHViSWRzLnB1c2hfYmFjayhodWIuaHViSWQpOworICAgICAgfQorICAgIH0KKyAgfQorCisgIEFMT0dEKCJSdW5uaW5nIHRlc3RzIGFnYWluc3QgYWxsICV6dSByZXBvcnRlZCBodWJzIiwgaHViSWRzLnNpemUoKSk7CisgIHJldHVybiBodWJJZHM7Cit9CisKKy8vIEJhc2UgdGVzdCBmaXh0dXJlIHRoYXQgaW5pdGlhbGl6ZXMgdGhlIEhBTCBhbmQgbWFrZXMgdGhlIGNvbnRleHQgaHViIEFQSQorLy8gaGFuZGxlIGF2YWlsYWJsZQorY2xhc3MgQ29udGV4dGh1YkhpZGxUZXN0QmFzZSA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgaHViQXBpID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUNvbnRleHRodWI+KCk7CisgICAgQVNTRVJUX05FKGh1YkFwaSwgbnVsbHB0cik7CisKKyAgICAvLyBnZXRIdWJzKCkgbXVzdCBiZSBjYWxsZWQgYXQgbGVhc3Qgb25jZSBmb3IgcHJvcGVyIGluaXRpYWxpemF0aW9uIG9mIHRoZQorICAgIC8vIEhBTCBpbXBsZW1lbnRhdGlvbgorICAgIGdldEh1YnNTeW5jKGh1YkFwaSk7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHNwPElDb250ZXh0aHViPiBodWJBcGk7Cit9OworCisvLyBUZXN0IGZpeHR1cmUgcGFyYW1ldGVyaXplZCBieSBodWIgSUQKK2NsYXNzIENvbnRleHRodWJIaWRsVGVzdCA6IHB1YmxpYyBDb250ZXh0aHViSGlkbFRlc3RCYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPHVpbnQzMl90PiB7CisgcHVibGljOgorICB1aW50MzJfdCBnZXRIdWJJZCgpIHsKKyAgICByZXR1cm4gR2V0UGFyYW0oKTsKKyAgfQorCisgIFJlc3VsdCByZWdpc3RlckNhbGxiYWNrKHNwPElDb250ZXh0aHViQ2FsbGJhY2s+IGNiKSB7CisgICAgUmVzdWx0IHJlc3VsdCA9IGh1YkFwaS0+cmVnaXN0ZXJDYWxsYmFjayhnZXRIdWJJZCgpLCBjYik7CisgICAgQUxPR0QoIlJlZ2lzdGVyZWQgY2FsbGJhY2ssIHJlc3VsdCAlIiBQUkl1MzIsIHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgfQorfTsKKworLy8gQmFzZSBjYWxsYmFjayBpbXBsZW1lbnRhdGlvbiB0aGF0IGp1c3QgbG9ncyBhbGwgY2FsbGJhY2tzIGJ5IGRlZmF1bHQKK2NsYXNzIENvbnRleHRodWJDYWxsYmFja0Jhc2UgOiBwdWJsaWMgSUNvbnRleHRodWJDYWxsYmFjayB7CisgcHVibGljOgorICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYW5kbGVDbGllbnRNc2coY29uc3QgQ29udGV4dEh1Yk1zZyYgLyptc2cqLykgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJHb3QgY2xpZW50IG1lc3NhZ2UgY2FsbGJhY2siKTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFuZGxlVHhuUmVzdWx0KAorICAgICAgdWludDMyX3QgdHhuSWQsIFRyYW5zYWN0aW9uUmVzdWx0IHJlc3VsdCkgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJHb3QgdHJhbnNhY3Rpb24gcmVzdWx0IGNhbGxiYWNrIGZvciB0eG5JZCAlIiBQUkl1MzIgIiB3aXRoIHJlc3VsdCAlIgorICAgICAgICAgIFBSSWQzMiwgdHhuSWQsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGhhbmRsZUh1YkV2ZW50KEFzeW5jRXZlbnRUeXBlIGV2dCkgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJHb3QgaHViIGV2ZW50IGNhbGxiYWNrIGZvciBldmVudCB0eXBlICUiIFBSSXUzMiwgZXZ0KTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFuZGxlQXBwQWJvcnQodWludDY0X3QgYXBwSWQsIHVpbnQzMl90IGFib3J0Q29kZSkKKyAgICAgIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiR290IGFwcCBhYm9ydCBub3RpZmljYXRpb24gZm9yIGFwcElkIDB4JSIgUFJJeDY0ICIgd2l0aCBhYm9ydCBjb2RlICIKKyAgICAgICAgICAiMHglIiBQUkl4MzIsIGFwcElkLCBhYm9ydENvZGUpOworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYW5kbGVBcHBzSW5mbyhjb25zdCBoaWRsX3ZlYzxIdWJBcHBJbmZvPiYgLyphcHBJbmZvKi8pCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkdvdCBhcHAgaW5mbyBjYWxsYmFjayIpOworICAgIHJldHVybiBWb2lkKCk7CisgIH0KK307CisKKy8vIFdhaXQgZm9yIGEgY2FsbGJhY2sgdG8gb2NjdXIgKHNpZ25hbGVkIGJ5IHRoZSBnaXZlbiBmdXR1cmUpIHVwIHRvIHRoZQorLy8gcHJvdmlkZWQgdGltZW91dC4gSWYgdGhlIGZ1dHVyZSBpcyBpbnZhbGlkIG9yIHRoZSBjYWxsYmFjayBkb2VzIG5vdCBjb21lCisvLyB3aXRoaW4gdGhlIGdpdmVuIHRpbWUsIHJldHVybnMgZmFsc2UuCit0ZW1wbGF0ZTxjbGFzcyBSZXR1cm5UeXBlPgorYm9vbCB3YWl0Rm9yQ2FsbGJhY2soCisgICAgc3RkOjpmdXR1cmU8UmV0dXJuVHlwZT4gZnV0dXJlLAorICAgIFJldHVyblR5cGUgKnJlc3VsdCwKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSkgeworICBhdXRvIGV4cGlyYXRpb24gPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArIHRpbWVvdXQ7CisKKyAgRVhQRUNUX05FKHJlc3VsdCwgbnVsbHB0cik7CisgIEVYUEVDVF9UUlVFKGZ1dHVyZS52YWxpZCgpKTsKKyAgaWYgKHJlc3VsdCAhPSBudWxscHRyICYmIGZ1dHVyZS52YWxpZCgpKSB7CisgICAgc3RkOjpmdXR1cmVfc3RhdHVzIHN0YXR1cyA9IGZ1dHVyZS53YWl0X3VudGlsKGV4cGlyYXRpb24pOworICAgIEVYUEVDVF9ORShzdGF0dXMsIHN0ZDo6ZnV0dXJlX3N0YXR1czo6dGltZW91dCkKKyAgICAgICAgPDwgIlRpbWVkIG91dCB3YWl0aW5nIGZvciBjYWxsYmFjayI7CisKKyAgICBpZiAoc3RhdHVzID09IHN0ZDo6ZnV0dXJlX3N0YXR1czo6cmVhZHkpIHsKKyAgICAgICpyZXN1bHQgPSBmdXR1cmUuZ2V0KCk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH0KKworICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIEVuc3VyZXMgdGhhdCB0aGUgbWV0YWRhdGEgcmVwb3J0ZWQgaW4gZ2V0SHVicygpIGlzIHNhbmUKK1RFU1RfRihDb250ZXh0aHViSGlkbFRlc3RCYXNlLCBUZXN0R2V0SHVicykgeworICBoaWRsX3ZlYzxDb250ZXh0SHViPiBodWJzID0gZ2V0SHVic1N5bmMoaHViQXBpKTsKKyAgQUxPR0QoIlN5c3RlbSByZXBvcnRzICV6dSBodWJzIiwgaHVicy5zaXplKCkpOworCisgIGZvciAoQ29udGV4dEh1YiBodWIgOiBodWJzKSB7CisgICAgQUxPR0QoIkNoZWNraW5nIGh1YiBJRCAlIiBQUkl1MzIsIGh1Yi5odWJJZCk7CisKKyAgICBFWFBFQ1RfRkFMU0UoaHViLm5hbWUuZW1wdHkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGh1Yi52ZW5kb3IuZW1wdHkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGh1Yi50b29sY2hhaW4uZW1wdHkoKSk7CisgICAgRVhQRUNUX0dUKGh1Yi5wZWFrTWlwcywgMCk7CisgICAgRVhQRUNUX0dFKGh1Yi5zdG9wcGVkUG93ZXJEcmF3TXcsIDApOworICAgIEVYUEVDVF9HRShodWIuc2xlZXBQb3dlckRyYXdNdywgMCk7CisgICAgRVhQRUNUX0dUKGh1Yi5wZWFrUG93ZXJEcmF3TXcsIDApOworCisgICAgLy8gTWluaW11bSAxMjggYnl0ZSBNVFUgYXMgcmVxdWlyZWQgYnkgQ0hSRSBBUEkgdjEuMAorICAgIEVYUEVDVF9HRShodWIubWF4U3VwcG9ydGVkTXNnTGVuLCBVSU5UMzJfQygxMjgpKTsKKyAgfQorfQorCitURVNUX1AoQ29udGV4dGh1YkhpZGxUZXN0LCBUZXN0UmVnaXN0ZXJDYWxsYmFjaykgeworICBBTE9HRCgiVGVzdFJlZ2lzdGVyQ2FsbGJhY2sgY2FsbGVkLCBodWJJZCAlIiBQUkl1MzIsIGdldEh1YklkKCkpOworICBBU1NFUlRfT0socmVnaXN0ZXJDYWxsYmFjayhuZXcgQ29udGV4dGh1YkNhbGxiYWNrQmFzZSgpKSk7Cit9CisKK1RFU1RfUChDb250ZXh0aHViSGlkbFRlc3QsIFRlc3RSZWdpc3Rlck51bGxDYWxsYmFjaykgeworICBBTE9HRCgiVGVzdFJlZ2lzdGVyTnVsbENhbGxiYWNrIGNhbGxlZCwgaHViSWQgJSIgUFJJdTMyLCBnZXRIdWJJZCgpKTsKKyAgQVNTRVJUX09LKHJlZ2lzdGVyQ2FsbGJhY2sobnVsbHB0cikpOworfQorCisvLyBIZWxwZXIgY2FsbGJhY2sgdGhhdCBwdXRzIHRoZSBhc3luYyBhcHBJbmZvIGNhbGxiYWNrIGRhdGEgaW50byBhIHByb21pc2UKK2NsYXNzIFF1ZXJ5QXBwc0NhbGxiYWNrIDogcHVibGljIENvbnRleHRodWJDYWxsYmFja0Jhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFuZGxlQXBwc0luZm8oY29uc3QgaGlkbF92ZWM8SHViQXBwSW5mbz4mIGFwcEluZm8pCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkdvdCBhcHAgaW5mbyBjYWxsYmFjayB3aXRoICV6dSBhcHBzIiwgYXBwSW5mby5zaXplKCkpOworICAgIHByb21pc2Uuc2V0X3ZhbHVlKGFwcEluZm8pOworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICBzdGQ6OnByb21pc2U8aGlkbF92ZWM8SHViQXBwSW5mbz4+IHByb21pc2U7Cit9OworCisvLyBDYWxscyBxdWVyeUFwcHMoKSBhbmQgY2hlY2tzIHRoZSByZXR1cm5lZCBtZXRhZGF0YQorVEVTVF9QKENvbnRleHRodWJIaWRsVGVzdCwgVGVzdFF1ZXJ5QXBwcykgeworICBBTE9HRCgiVGVzdFF1ZXJ5QXBwcyBjYWxsZWQsIGh1YklkICV1IiwgZ2V0SHViSWQoKSk7CisgIHNwPFF1ZXJ5QXBwc0NhbGxiYWNrPiBjYiA9IG5ldyBRdWVyeUFwcHNDYWxsYmFjaygpOworICBBU1NFUlRfT0socmVnaXN0ZXJDYWxsYmFjayhjYikpOworCisgIFJlc3VsdCByZXN1bHQgPSBodWJBcGktPnF1ZXJ5QXBwcyhnZXRIdWJJZCgpKTsKKyAgQVNTRVJUX09LKHJlc3VsdCk7CisKKyAgQUxPR0QoIldhaXRpbmcgZm9yIGFwcCBpbmZvIGNhbGxiYWNrIik7CisgIGhpZGxfdmVjPEh1YkFwcEluZm8+IGFwcExpc3Q7CisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCksICZhcHBMaXN0KSk7CisgIGZvciAoY29uc3QgSHViQXBwSW5mbyAmYXBwSW5mbyA6IGFwcExpc3QpIHsKKyAgICBFWFBFQ1RfTkUoYXBwSW5mby5hcHBJZCwgVUlOVDY0X0MoMCkpOworICAgIEVYUEVDVF9ORShhcHBJbmZvLmFwcElkLCBrTm9uRXhpc3RlbnRBcHBJZCk7CisgIH0KK30KKworLy8gSGVscGVyIGNhbGxiYWNrIHRoYXQgcHV0cyB0aGUgVHJhbnNhY3Rpb25SZXN1bHQgZm9yIHRoZSBleHBlY3RlZFR4bklkIGludG8gYQorLy8gcHJvbWlzZQorY2xhc3MgVHhuUmVzdWx0Q2FsbGJhY2sgOiBwdWJsaWMgQ29udGV4dGh1YkNhbGxiYWNrQmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYW5kbGVUeG5SZXN1bHQoCisgICAgICB1aW50MzJfdCB0eG5JZCwgVHJhbnNhY3Rpb25SZXN1bHQgcmVzdWx0KSBvdmVycmlkZSB7CisgICAgQUxPR0QoIkdvdCB0cmFuc2FjdGlvbiByZXN1bHQgY2FsbGJhY2sgZm9yIHR4bklkICUiIFBSSXUzMiAiIChleHBlY3RpbmcgJSIKKyAgICAgICAgICBQUkl1MzIgIikgd2l0aCByZXN1bHQgJSIgUFJJZDMyLCB0eG5JZCwgZXhwZWN0ZWRUeG5JZCwgcmVzdWx0KTsKKyAgICBpZiAodHhuSWQgPT0gZXhwZWN0ZWRUeG5JZCkgeworICAgICAgcHJvbWlzZS5zZXRfdmFsdWUocmVzdWx0KTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHVpbnQzMl90IGV4cGVjdGVkVHhuSWQgPSAwOworICBzdGQ6OnByb21pc2U8VHJhbnNhY3Rpb25SZXN1bHQ+IHByb21pc2U7Cit9OworCisvLyBQYXJhbWV0ZXJpemVkIGZpeHR1cmUgdGhhdCBzZXRzIHRoZSBjYWxsYmFjayB0byBUeG5SZXN1bHRDYWxsYmFjaworY2xhc3MgQ29udGV4dGh1YlR4blRlc3QgOiBwdWJsaWMgQ29udGV4dGh1YkhpZGxUZXN0IHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBDb250ZXh0aHViSGlkbFRlc3Q6OlNldFVwKCk7CisgICAgQVNTRVJUX09LKHJlZ2lzdGVyQ2FsbGJhY2soY2IpKTsKKyAgfQorCisgIHNwPFR4blJlc3VsdENhbGxiYWNrPiBjYiA9IG5ldyBUeG5SZXN1bHRDYWxsYmFjaygpOworfTsKKworCisvLyBDaGVja3MgY2FzZXMgd2hlcmUgdGhlIGh1YiBpbXBsZW1lbnRhdGlvbiBpcyBleHBlY3RlZCB0byByZXR1cm4gYW4gZXJyb3IsIGJ1dAorLy8gdGhhdCBlcnJvciBjYW4gYmUgcmV0dXJuZWQgZWl0aGVyIHN5bmNocm9ub3VzbHkgb3IgaW4gdGhlIGFzeW5jaHJvbm91cworLy8gdHJhbnNhY3Rpb24gY2FsbGJhY2suIFJldHVybnMgYW4gQXNzZXJ0aW9uUmVzdWx0IHRoYXQgY2FuIGJlIHVzZWQgaW4KKy8vIEFTU0VSVC9FWFBFQ1RfVFJVRS4gQWxsb3dzIGNoZWNraW5nIHRoZSBzeW5jIHJlc3VsdCBhZ2FpbnN0IDEgYWRkaXRpb25hbAorLy8gYWxsb3dlZCBlcnJvciBjb2RlIGFwYXJ0IGZyb20gT0sgYW5kIFRSQU5TQUNUSU9OX0ZBSUxFRCwgd2hpY2ggYXJlIGFsd2F5cworLy8gYWxsb3dlZC4KKzo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGNoZWNrRmFpbHVyZVN5bmNPckFzeW5jKAorICAgIFJlc3VsdCByZXN1bHQsIFJlc3VsdCBhbGxvd2VkU3luY1Jlc3VsdCwKKyAgICBzdGQ6OmZ1dHVyZTxUcmFuc2FjdGlvblJlc3VsdD4mJiBmdXR1cmUpIHsKKyAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgLy8gTm8gZXJyb3IgcmVwb3J0ZWQgc3luY2hyb25vdXNseSAtIHRoaXMgaXMgT0ssIGJ1dCB0aGVuIHdlIHNob3VsZCBnZXQgYW4KKyAgICAvLyBhc3luYyBjYWxsYmFjayB3aXRoIGEgZmFpbHVyZSBzdGF0dXMKKyAgICBUcmFuc2FjdGlvblJlc3VsdCBhc3luY1Jlc3VsdDsKKyAgICBpZiAoIXdhaXRGb3JDYWxsYmFjayhzdGQ6OmZvcndhcmQ8c3RkOjpmdXR1cmU8VHJhbnNhY3Rpb25SZXN1bHQ+PihmdXR1cmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICZhc3luY1Jlc3VsdCkpIHsKKyAgICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAgIDw8ICJHb3Qgc3VjY2Vzc2Z1bCBzeW5jIHJlc3VsdCwgdGhlbiBmYWlsZWQgdG8gcmVjZWl2ZSBhc3luYyBjYiI7CisgICAgfSBlbHNlIGlmIChhc3luY1Jlc3VsdCA9PSBUcmFuc2FjdGlvblJlc3VsdDo6U1VDQ0VTUykgeworICAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpCisgICAgICAgICAgPDwgIkdvdCBzdWNjZXNzZnVsIHN5bmMgcmVzdWx0LCB0aGVuIHVuZXhwZWN0ZWQgc3VjY2Vzc2Z1bCBhc3luYyAiCisgICAgICAgICAgICAgInJlc3VsdCI7CisgICAgfQorICB9IGVsc2UgaWYgKHJlc3VsdCAhPSBhbGxvd2VkU3luY1Jlc3VsdCAmJgorICAgICAgICAgICAgIHJlc3VsdCAhPSBSZXN1bHQ6OlRSQU5TQUNUSU9OX0ZBSUxFRCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKSA8PCAiR290IHN5bmMgcmVzdWx0ICIKKyAgICAgICAgPDwgYXNCYXNlVHlwZShyZXN1bHQpIDw8ICIsIGV4cGVjdGVkIFRSQU5TQUNUSU9OX0ZBSUxFRCBvciAiCisgICAgICAgIDw8IGFzQmFzZVR5cGUoYWxsb3dlZFN5bmNSZXN1bHQpOworICB9CisKKyAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uU3VjY2VzcygpOworfQorCitURVNUX1AoQ29udGV4dGh1YlR4blRlc3QsIFRlc3RTZW5kTWVzc2FnZVRvTm9uRXhpc3RlbnROYW5vQXBwKSB7CisgIENvbnRleHRIdWJNc2cgbXNnOworICBtc2cuYXBwTmFtZSA9IGtOb25FeGlzdGVudEFwcElkOworICBtc2cubXNnVHlwZSA9IDE7CisgIG1zZy5tc2cucmVzaXplKDQpOworICBzdGQ6OmZpbGwobXNnLm1zZy5iZWdpbigpLCBtc2cubXNnLmVuZCgpLCAwKTsKKworICBBTE9HRCgiU2VuZGluZyBtZXNzYWdlIHRvIG5vbi1leGlzdGVudCBuYW5vYXBwIik7CisgIFJlc3VsdCByZXN1bHQgPSBodWJBcGktPnNlbmRNZXNzYWdlVG9IdWIoZ2V0SHViSWQoKSwgbXNnKTsKKyAgaWYgKHJlc3VsdCAhPSBSZXN1bHQ6Ok9LICYmCisgICAgICByZXN1bHQgIT0gUmVzdWx0OjpCQURfUEFSQU1TICYmCisgICAgICByZXN1bHQgIT0gUmVzdWx0OjpUUkFOU0FDVElPTl9GQUlMRUQpIHsKKyAgICBGQUlMKCkgPDwgIkdvdCByZXN1bHQgIiA8PCBhc0Jhc2VUeXBlKHJlc3VsdCkgPDwgIiwgZXhwZWN0ZWQgT0ssIEJBRF9QQVJBTVMiCisgICAgICAgIDw8ICIsIG9yIFRSQU5TQUNUSU9OX0ZBSUxFRCI7CisgIH0KK30KKworVEVTVF9QKENvbnRleHRodWJUeG5UZXN0LCBUZXN0TG9hZEVtcHR5TmFub0FwcCkgeworICBjYi0+ZXhwZWN0ZWRUeG5JZCA9IDAxMjM7CisgIE5hbm9BcHBCaW5hcnkgZW1wdHlBcHA7CisKKyAgZW1wdHlBcHAuYXBwSWQgPSBrTm9uRXhpc3RlbnRBcHBJZDsKKyAgZW1wdHlBcHAuYXBwVmVyc2lvbiA9IDE7CisgIGVtcHR5QXBwLmZsYWdzID0gMDsKKyAgZW1wdHlBcHAudGFyZ2V0Q2hyZUFwaU1ham9yVmVyc2lvbiA9IDE7CisgIGVtcHR5QXBwLnRhcmdldENocmVBcGlNaW5vclZlcnNpb24gPSAwOworCisgIEFMT0dEKCJMb2FkaW5nIGVtcHR5IG5hbm9hcHAiKTsKKyAgUmVzdWx0IHJlc3VsdCA9IGh1YkFwaS0+bG9hZE5hbm9BcHAoZ2V0SHViSWQoKSwgZW1wdHlBcHAsIGNiLT5leHBlY3RlZFR4bklkKTsKKyAgRVhQRUNUX1RSVUUoY2hlY2tGYWlsdXJlU3luY09yQXN5bmMocmVzdWx0LCBSZXN1bHQ6OkJBRF9QQVJBTVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworfQorCitURVNUX1AoQ29udGV4dGh1YlR4blRlc3QsIFRlc3RVbmxvYWROb25leGlzdGVudE5hbm9BcHApIHsKKyAgY2ItPmV4cGVjdGVkVHhuSWQgPSAxMjM0OworCisgIEFMT0dEKCJVbmxvYWRpbmcgbm9uZXhpc3RlbnQgbmFub2FwcCIpOworICBSZXN1bHQgcmVzdWx0ID0gaHViQXBpLT51bmxvYWROYW5vQXBwKGdldEh1YklkKCksIGtOb25FeGlzdGVudEFwcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5leHBlY3RlZFR4bklkKTsKKyAgRVhQRUNUX1RSVUUoY2hlY2tGYWlsdXJlU3luY09yQXN5bmMocmVzdWx0LCBSZXN1bHQ6OkJBRF9QQVJBTVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworfQorCitURVNUX1AoQ29udGV4dGh1YlR4blRlc3QsIFRlc3RFbmFibGVOb25leGlzdGVudE5hbm9BcHApIHsKKyAgY2ItPmV4cGVjdGVkVHhuSWQgPSAyMzQ1OworCisgIEFMT0dEKCJFbmFibGluZyBub25leGlzdGVudCBuYW5vYXBwIik7CisgIFJlc3VsdCByZXN1bHQgPSBodWJBcGktPmVuYWJsZU5hbm9BcHAoZ2V0SHViSWQoKSwga05vbkV4aXN0ZW50QXBwSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ItPmV4cGVjdGVkVHhuSWQpOworICBFWFBFQ1RfVFJVRShjaGVja0ZhaWx1cmVTeW5jT3JBc3luYyhyZXN1bHQsIFJlc3VsdDo6QkFEX1BBUkFNUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7Cit9CisKK1RFU1RfUChDb250ZXh0aHViVHhuVGVzdCwgVGVzdERpc2FibGVOb25leGlzdGVudE5hbm9BcHApIHsKKyAgY2ItPmV4cGVjdGVkVHhuSWQgPSAzNDU2OworCisgIEFMT0dEKCJEaXNhYmxpbmcgbm9uZXhpc3RlbnQgbmFub2FwcCIpOworICBSZXN1bHQgcmVzdWx0ID0gaHViQXBpLT5kaXNhYmxlTmFub0FwcChnZXRIdWJJZCgpLCBrTm9uRXhpc3RlbnRBcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ItPmV4cGVjdGVkVHhuSWQpOworICBFWFBFQ1RfVFJVRShjaGVja0ZhaWx1cmVTeW5jT3JBc3luYyhyZXN1bHQsIFJlc3VsdDo6QkFEX1BBUkFNUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7Cit9CisKKy8vIFBhcmFtZXRlcml6ZSBhbGwgU2luZ2xlQ29udGV4dGh1YlRlc3QgdGVzdHMgYWdhaW5zdCBlYWNoIHZhbGlkIGh1YiBJRAorSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoSHViSWRTcGVjaWZpY1Rlc3RzLCBDb250ZXh0aHViSGlkbFRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlc0luKGdldEh1YklkcygpKSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUChIdWJJZFNwZWNpZmljVGVzdHMsIENvbnRleHRodWJUeG5UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbihnZXRIdWJJZHMoKSkpOworCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICByZXR1cm4gUlVOX0FMTF9URVNUUygpOworfQorCmRpZmYgLS1naXQgYS9jb250ZXh0aHViL0FuZHJvaWQuYnAgYi9jb250ZXh0aHViL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxOWEzNwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRleHRodWIvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL2N1cnJlbnQudHh0IGIvY3VycmVudC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI1NGVkOQotLS0gL2Rldi9udWxsCisrKyBiL2N1cnJlbnQudHh0CkBAIC0wLDAgKzEsMTg4IEBACisjIERvIG5vdCBjaGFuZ2UgdGhpcyBmaWxlIGV4Y2VwdCB0byBhZGQgbmV3IGludGVyZmFjZXMuIENoYW5naW5nCisjIHByZS1leGlzdGluZyBpbnRlcmZhY2VzIHdpbGwgZmFpbCBWVFMgYW5kIGJyZWFrIGZyYW1ld29yay1vbmx5IE9UQXMKKworIyBIQUxzIHJlbGVhc2VkIGluIEFuZHJvaWQgTworCitmMjE5YzNiNWI4YzZjYjFkNjU5ZDRjNzMyOGY2NzI0NmFiZmUxYTg2MTNmNDY5ODI2ZmQzYjlhZDA5MDQxN2EyIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJRGV2aWNlCis0ZDU3OWNhZTFjZDg3YTc4M2ZkNDkyMzNlMTBjZTcyMGJhMTgzY2ZkMWQ1Y2NkODAxNDllNjlkZTVjMWM3MzYyIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJRGV2aWNlc0ZhY3RvcnkKKzIwM2UyM2YxODAxMTM5MGI4Y2QxMGMzMDNlMGMxNmM0ZWViYzhmYTE4N2U4MGU0MGQ2YmU0NjI0YzJiMDg0OGEgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OklQcmltYXJ5RGV2aWNlCithYWY5MzEyM2RlZWMzMzZlYjI0N2FkODA5OTg0OTQ2OWE1NDFjYTBjZjdjMjhjNWY1MzM2Y2ViZTFlZTg2NzQ4IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJU3RyZWFtCiswNDY4YzU3MjNiMGQ0NGM1YjQ1MWJkZmEwNjE1MzAwMGM2ZjM1MmZkMzMzNmUwYWQyNjk3MTI3YjA0Yjc2NmRmIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJU3RyZWFtSW4KKzcyOTZmNzA2NGZkM2FiMjQwODJiNDNhMWRhMzRjYzg3NjI2ODA2NTMxMGI3ODU0OTlmYmE1MTc4ZDA2MzY4MGEgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OklTdHJlYW1PdXQKKzE5ZDI0MWQ3MWMzZTExNDBhZmJhODE0MGRjYjU3NDQ4NDQ2MDI1YTVmYzAzNzM5Nzg4YzRjMjVlOWE5OGI2YzIgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OklTdHJlYW1PdXRDYWxsYmFjaworYzg0ZGE5ZjU4NjA4NzIyN2RhYTNiOTZkNDJiNDU3NTMyNmJjY2ZkNWJjOGEyYTVhY2Y4NmQ3NzRmOGVhMjY0OCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6dHlwZXMKKzEzMDU3ODZjMDZlMjJiOWIyNGViZGUxMzYwNTRjYzgyN2I2M2M4NmQ4YmY0YTEzNmQ2ZjdmNTQ3NTJiODU2NmIgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOjp0eXBlcworZmE4ZmJhZTNkMWRhM2MyNjRlNGYzMTEwNzI4MDc2YWJjMDliNGU2NWYxMmFmNmFlMTM2MzY3MzI4ZGU5ODhhYiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdAorY2E0NzUyNTQ1ZDU0NTQ3ZmYwNjllYWUxNjFhZjc1NTBjYjVmNWE3ZThiNjAzMTZkZGQxMzJhMzA5MDZhNjhlNyBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdAorZDJiOGFmOTg4ZGM2NmY1MTRkODg2YmNlZTQ0YjQ0MGQ4MDM0YmMyYTc2MmY3MTYxNzE3ZWYzYzk1NjA3MzA2NyBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklCYXNzQm9vc3RFZmZlY3QKKzYxMWJjMDljNzVlNzk2ZjM1MTJiMWNhNmJlNTA4YjBhOWJhOTk2NzU5YjhhMmM2MDUwNzc4NGZmNTgwNzYyMjkgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJRG93bm1peEVmZmVjdAorMzZhNTczNjlkZmRjNzUxODBlOGI2NGFlODBiMTk3MGRiOGY2ZDkwODVkYmZmNmNhOTMxNzE1MDM4Y2MwNTZlMSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklFZmZlY3QKK2QyYWEyZGY2ZDE4OWM1ODBmNWJlODQ2MGZhMGZmNDEzNGQ5YzA1YTM4M2YzMjA0NjU5YmFlZTQyNmE2ZjBlZGYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaworMjE3ZjkxNjE5ODNhNDhkM2JmM2ZhZWIxNThmODY4YWE4YmYwY2UyNTg4OWU0ZWUzZDJiYWIxYTJlOGQzM2U3NyBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklFZmZlY3RzRmFjdG9yeQorYzJiMzhiYzA3OTkxZTg4MGM4M2NhOGNiODgxODE0MTFlZWVmNzA4YjhiOTM2YWVkZDJmMmUwYWNhZGU3ZGY2OSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0CisyZmY5Zjk3MDRiZTVmMTY3NzQ1YjRkZTc5MGU5ZGFmYzNjYzQ3MTllMmY2ZTJlNTQ5NzA4NWU2Nzk4NTNjZmU3IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SUVxdWFsaXplckVmZmVjdAorYzMxNDQ3ZmIwMmRiYzhiNTZjMzU5OTQxZGFkMjJmNDE2NTExODYwMTczYzVjNWZkMjc4ZDFiZjIzMTJiMTNkZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklMb3VkbmVzc0VuaGFuY2VyRWZmZWN0Cis4MDQ4MzFjYTI1ODgwMmViM2ViNjVhMGE3YjVkNWUzZDM3ZDRhMTViYThjMjgzNmI0Mjc2ZWRhOThiNDdlMWQwIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SU5vaXNlU3VwcHJlc3Npb25FZmZlY3QKKzc3OGZkNWI5ODM3ZjQ4MWQ4ZTQ3NDI1YjNlMmEzYmQwYzYzNjJhMGI2ODcwMjkxNTE4ZTJkODYzNTMwZmRiNjEgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJUHJlc2V0UmV2ZXJiRWZmZWN0CitjOTNjYjI1YTFhOTJkMDdhYTgwYTYxN2MwMWU4ZDIyZmM5N2JmOGNlZmQzOTYyYjZhNWJlMzg2YWQ0NzA0ZDg5IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SVZpcnR1YWxpemVyRWZmZWN0Cis5MThmMzMxNzgwYzljN2IwNGYyMTUxYTJlNTYzYWFiMDg4MTk4ZWRlOGU2Zjg2NTMwMmViYWExMzkwNWJkOWNlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SVZpc3VhbGl6ZXJFZmZlY3QKKzRjYWFkMDk5ZjhmYzAwMjYyYjZjMDNiYTQxMjcxODA4YjM3Y2VhOTBhYzk4YjUzNDI5OWJiZjRlZTgyM2FmMDIgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjp0eXBlcworZjI5MDRhNGMxMDhhZDFiOTNlYjJmYTRlNDNiODJiZDAxY2UxZmYyNjE1NjMxNmU0OWQxZDlmYzgwZGZlY2FhZCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDo6SUV2c0NhbWVyYQorOTRjYmE2YWQwNGM4M2FhODQwZGUyZWQ1MmI3NGJhMjEyNmEyNmRkOTYwMjI1ZTYxYWMzNjcwMzMxNTI3OWE4MCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDo6SUV2c0NhbWVyYVN0cmVhbQorNWVhMzZmYjA0M2Q5ZTNiNDEzMjE5ZGUzZGZkN2IwNDZiNDhhZjRmZGEzOWYxNjdmMzUyODY1MmU5ODZjYjc2ZCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDo6SUV2c0Rpc3BsYXkKKzQzNjBlNDM5NmRlZTVhMzZkODU0M2UxMmIxYmJkZWI3NjU3MjRkZGRmMGRjYTAyMDRlYTFlOTQ5NmVkODQ0MWQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjA6OklFdnNFbnVtZXJhdG9yCiszYjE3YzFmZGZjMzg5ZTBhYmU2MjZjMzcwNTQ5NTRiMDcyMDExMjdkODkwYzJiYzA1ZDQ3NjEzZWMxZjRkZTRmIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOjp0eXBlcworY2RlMDc4N2U0YmY0YjQ1MGE5Y2ViOTAxMWQyNjk4YzAwNjEzMjJlYjg4MjYyMWU4OWI3MDU5NGIwYjdjNjVjNSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OklWZWhpY2xlCis4MGZiNDE1NmZhOTFjZTg2ZTQ5YmQyY2FiZTIxNTA3OGY2YjY5NTkxZDQxNmEwOWU5MTQ1MzJlYWU2NzEyMDUyIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6SVZlaGljbGVDYWxsYmFjaworMjQ4MDA0ZjA4MzJiNDgxOTk1NThiZDVkMWFhY2MyOWU3ZTY0MjNkZDBmZjYwMTJiZTE0MmUyMzYyMWYwM2Y0YiBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzCisxZmJkYzFmODUyZjhiZDJlNGE2YzVjYjMwYWMyYjc4NjY4Yzk4ZGNlMTE4YTYxNzYyZDQwMzRhZTg1OWY0M2Q4IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQKK2FhYmI1YzNjNTg1NTkyZDcxZWU1N2I3NzI5OGMxNDk5M2Q3NzkxNGRkZWFhNjRiMmM1MTA5YTYwMmIwMmVhNDcgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrCisxZWM2MGQ0ZWZkZGFlOWE3YjI0NjkyNzhhNTc2OTY3YjQ3NTFlODhkZTViOGQ3ZTlkZjZlZmY2YmMwZGE3YmM5IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzCiszNDdjZTc0NjgxNTYwNzU2N2Y1ZjNiNTNlNDgwMDk5OGNhNWFiOTM1NTE0MWYwODgwZmMwY2YwYzFmYzVjMzU1IGFuZHJvaWQuaGFyZHdhcmUuYmx1ZXRvb3RoQDEuMDo6SUJsdWV0b290aEhjaQorODM1ZjQxYmUyMjgxYmZiMjJmM2UzM2M2ZmE4NzBiZGU3YmMyMWUzN2U1Y2ZiYWY5YTM2ZmZmMTcwNjMyZjc1NCBhbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aEAxLjA6OklCbHVldG9vdGhIY2lDYWxsYmFja3MKK2E4ZGZkMGRiZTQ2M2EzY2RiY2YxZDk4NWIzOGEyOGIzZDkzYmEyYWU1YTFkMWRiNGFhZWY0YzM4YTU3ODFiOTEgYW5kcm9pZC5oYXJkd2FyZS5ibHVldG9vdGhAMS4wOjp0eXBlcworNzE5MmQ3NTZhZWJhMDBhYmEzMmY0NTA0OTgxZGY4MTcyZmZjYTgzZTIxMGM0ODM4ZGFiZjI5NWU1M2U5MzU5MCBhbmRyb2lkLmhhcmR3YXJlLmJvb3RAMS4wOjpJQm9vdENvbnRyb2wKK2NlYmFhODAzYjhlMzM4MDdhMGQ2OWY0NjY1MmI2NTBjY2I1NDllOGY5YjE5ZDZiZWNiYmYyNjY5MGU4MjhiNDkgYW5kcm9pZC5oYXJkd2FyZS5ib290QDEuMDo6dHlwZXMKK2E5OGQ0OWYyMzcxMmE3Y2MzMjdkMWUwNjAyZDA1ZjZmM2FkMzJjZmI1Yzc0NzExZDAwOWM3MjY2MTFlZTFjOTMgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjA6OklCcm9hZGNhc3RSYWRpbworZWQ4MjU3OWMwYzE2NWZlYWExMmQwZTMzYzA2YjMzNDJhYjQxZWMwYTQzOTI0N2YyMDI3NzVlODM2OWU0NmVmNiBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeQorZGE2YWIzMmVlMjc5M2QyYzg2ZDNiNjAzMDc1ZDUzODM4NTJiODlkN2VhYTIwMTg2MWFhMDQ3M2Q0MThmM2M3ZiBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDo6SVR1bmVyCiswNGQzY2EwMjJlMjVjMzA4ZDllZmQyZTdlYjc3YjNhN2EyMDY5MDdjZGMxYjllYTkzMjYzNDBiMzc3ODY4MTcyIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wOjpJVHVuZXJDYWxsYmFjaworYmQ0MmM4ZDc4MzhjZmVkMTk5OGI0OWMzOTc0NWRlYzExNmQyZDZlZGMyYzExYTRjMDM5OWI4ZjNhMWQxNjU1YSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDo6dHlwZXMKKzgxMTY0MzIzMTE1ZDY1ODhlMjU5ZTgzMTlmZGRmNzQ4N2FkZmExZjQ5Y2U2MGY3ZTgwYmE3NGUwNzgzMzkyYTQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMKK2MxNzA1ZTlkNjI0MzhhMWQ5NTUyNjk5NjVhZjkxNWFlMjhlNjkyYmQ0ODBhM2IxY2U2NzA1NmZlZjk5MmQ2MmYgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMDo6SUNhbWVyYURldmljZQorNzhlOWI0NGNmODY2MGJkYzFlOThkY2EwNzQ1MTgwNDE1MzgyNGVmY2QyOGRiMjA4YTYyZjVhZDcyOGY0NDA3NiBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wOjpJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sKKzI4ZjAzODZiYTg2ZGRmNDFlNTNhODExN2I0OGEwMzI4ZDdhNGQyNTc0MjEzZTg5ZjRhMTA2MjM5OGEyNDQ1NjYgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMDo6SUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjaworNGRiNDg0MzljZTlkZGU5N2YxY2ZiM2Q3NDA4ZjZjNzM3ZjYyMWFjMGY3NDk0YWVlYTM1ZWQ1OTliYzIzNTJhMyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wOjp0eXBlcworYjMyZjlhZWFmMWM0NDIxOTVlYjA2ZmZjNzYwMDk2OGM5MTlkMDA1YjI3MTg4NzRmMDljNTcyODdmYWU1NTkxOCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjpJQ2FtZXJhRGV2aWNlCis2M2JmYzNkYTBmMmQyMzAxZjdhMDUwOGM3YzJiOWZmYzUyMWQ0ZDU0NWVlMDM3MThkYTcwZTlkNjI3M2IzYjIxIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjI6OklDYW1lcmFEZXZpY2VDYWxsYmFjaworMGZhM2UxZTY0ODE5MjgzYjg3MzdmYzRlNWFiNzU5ZjBjYjRhYzFhOTk2ZThhNTFjYzRhYTgwMjVhNDU3MjA4ZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjpJQ2FtZXJhRGV2aWNlU2Vzc2lvbgorMDMwYmUzZDJiMTU5Y2JkZTc5MjA0ODU4MDcxNDBmNmI2MDY0ZWY0YTVkZTRhNDBhNmM0YmM4ZDJjNzJmN2NkMyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjp0eXBlcworNWJhNzk0N2NlZTUxNWQ3YTIzNTliZmNiZmI5Njc4YzFjM2E3NjhjMjg4NDcxOTE5YWMwOTViOTZhZTZmM2Q0MCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzCitmN2UyOTlkODUwMzNhYzUyZDEwOTVhMzU3ODRmY2ZlYWZmNDM2MDNmNThjNzUxZTQxNTNjODViYmFkZTNiMzMwIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNDo6SUNhbWVyYVByb3ZpZGVyCithNTAxY2ExYWVjZDA5ZjFiOWZkNzBhOWFmODQyMDU0MzBkYmQ0OWE4MDhlOGZhMzk1ZDM2M2I5OTAyZTZmNThjIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNDo6SUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2sKKzdmNWZlOGY0ZjhhMjQwMzcxNTNjNTA0ZDhiNGQzMzEzYzJjZTMzZDgxYzhjNjlmZTUxOTRkZGQyZDQwODBlNzIgYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjA6OklTdXJmYWNlRmxpbmdlckNvbmZpZ3MKKzg3YmVhY2M0ODE4OTdjZjAyZmIxNjI4ZDc1ZTY4MTMzZGU2ZDc0ZDRjZmZlNTgyY2RhMmY1ZTE2YmRkNzQ1MTYgYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjA6OnR5cGVzCithNWFlMGZlODY2N2YwYjFhZjA5YjEzZTcyZDI5NjAwZjRlYjM4NTNiMjU3MDc5YzQ1YTk5YjZmNGEzMzYwNjQ5IGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OklDb250ZXh0aHViCisyYWIzMDU0YzJkOTMwMmQ4NDE3ZWU3NDk1MzUzYTI4ODdmZTMzOGY5MTMyNzZmMmViNDFlODBmMTEzOTVlYzJlIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OklDb250ZXh0aHViQ2FsbGJhY2sKK2MzYjJiMzdkNTYxZDMxZWEwOTQ0MTFmMjUxYmY3M2JlYTMzNGY0ZmU4NDlhNDM5MGFlZjVlMjBiY2E2Y2FkYmEgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMKK2RmMTc0YzE4NzFjODY0YjRjNzljYTlmNjRhYWU3OTM2ZDI0YTI3MmVjYTMxOTFhMzA0NThjYTJiNzA2ZGVjNzkgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjpJQ3J5cHRvRmFjdG9yeQorODM2MzllOTBjYWViOTk2YjAyNzRlNDIwZGUzY2Q1NTY3NzlkZTFjYTQ4NDY0YjY4ZWVlNzk5YmVmMzJiMzRjZCBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA6OklDcnlwdG9QbHVnaW4KKzE0NDBjZmZkZmFlYjEyODMwYWMxMGVlNmZmZGIwZjEwODNlNzAxMDU3YjgwNmRmMTFmYjQ3ODdiNGM5MWU3MTggYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjpJRHJtRmFjdG9yeQorNzhiYTMzYjEwOGY2MjBlNmEwZWVjMDFlZjY1NDU0N2U2OWE4NTc1NDU3OGVhNGM5ZWYwM2VjMjA1ZjE2MTIxYyBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA6OklEcm1QbHVnaW4KKzcwMWQ5ZTUxOTUyMTcyMzY0ZTRlYTcwZGI5YzM5N2YwOGMzYjQ1NzdiYTMzMDUxZjA1MGE2Y2RkNTMyZGUxYjQgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjpJRHJtUGx1Z2luTGlzdGVuZXIKKzQyMzhkNjJhZDkwZGY2M2FhMzM4YzZmMWI2MjY0YzA5YzVhMzcwNjk0NWQ1YzQ5ZDExODljMGJlMWRjOWU5NDIgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjp0eXBlcworZjA3YjFlZTNiYTExYTJmYzlmMjAwNDIxYjJlMWFmYjdjMTg1NGVlOTg3MDAwZTQ1Yzk4N2ZiOTUwNzc5NTA1NSBhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjA6OklEdW1wc3RhdGVEZXZpY2UKK2M5ZDMxOGRmNzkyMmJkZTNiMjY1OTI3YjUyMWZmNWE5NjUwMDI4MjZmYzBjYWJmY2FlZjUyYTU2NzYwZjJkMzQgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMDo6SUdhdGVrZWVwZXIKK2RhMTNiZDY5MjgyZmIyNzU3NjdhYmIxODcwNGM1N2ZmODAzOGU2YzEzOWFkMTcxNTdkYzcwMjgxMGY3MGQwNmEgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMDo6dHlwZXMKKzM3YzdkYTRmODIzZWM5NThkZmE5Yzk2MGUyZDM0MWM0OGY4NzdlMGJmYTc1OGYzZmE5ZTJkOWMxZTFiZDY2ZDkgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzCis3ZWM5YWZkYjk2NGJmYjgzNjk4NjY5MTNjYWYwMThmMjYzNjU5Mjg4NWJjYjU1OGE2NWRlMmM1NDM2YWI0ZjYwIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zc0NhbGxiYWNrCitkMTZlNmEzNTliZTY5NjNlYTc1M2Q3MTM4ZTg0ZWNmMmI5MzA1MjA5NzkzODkzOGM0ZDM2ZDdhNDdlYTJlMmFlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zc1JpbAorMmY5MDc3MDhkNzRkOTRiMWUxMjFlZDI3NjUxYzljNzJhZjY1OTUyZDM0N2I1OGZmMDdkYWM1ZDVkN2E3ZjY3OCBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJQUduc3NSaWxDYWxsYmFjaworNWFjN2VkYWQwNmQ3NjA2NGI4ODJiZTE2MWYzZjlkOTY5MmE5OTdlYzcyZTlmMzZhZGRiN2ZlODkxOGY0OTk5MiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zcworYjA1Yzk4M2M4N2MzMzc2ZTE0NTIyMzY4OGMzYjU0MWI1ZTExYjgyN2YyMTFlMzhkNWEzMWFmMWNhM2EyZTIyMiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0JhdGNoaW5nCis0OTgxZDJkMmM0ZTcyNWM3NTQ0YmUwOTU2MDk5YTkxZmM3YmJjODA0OGM1NjMzOTQxNTgwODNmZTkyNGU2NTFlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQmF0Y2hpbmdDYWxsYmFjaworM2NkMjJkOTJjYzFmOTM1MTUwYzUwNDgzMTBlODQ4ODZmMTRlZWQyNTU2ZThmMDA2MzY3MzNkMjA0MDQ1Y2M0ZiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0NhbGxiYWNrCisxNzUxODVhNWVkYTg3NDc2MTkzY2E1NDYxZGY3NWRkMTZkMzY2NjQ1OTFlODEzMDUzMGRkOGVmMGViMmRkZjZhIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQ29uZmlndXJhdGlvbgorNDU0MjEyMmI5NmZiZjI3MTAxY2I4MjIyYmFmYjc2ZTdjOGQwMzJkOTc3ZGQxMDU4ZWRkOGU1ODgxY2E1NzUyZiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0RlYnVnCitlNmRkMGM4NDE2ZTUyM2FiOWNiZDE0ZDU2YWI2ZjAxNjQ4MWE4YWVmM2JjOGE3NTAwNTExMjJkMzEwNzVmNmM3IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzR2VvZmVuY2VDYWxsYmFjaworZjkwZTRkZGM2NTI3MDYyOTlkOGUzZDhiYTE4ZTA3NDVjM2JhZTliZjRkMWJlNmJkMDZkOWMxZjUwZWM4ZDI4YSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0dlb2ZlbmNpbmcKKzllYTg5ODdiYjEwODljOGM1ZDdiNjc4NjY1NzViODY2ZWY1MTYwNDUwMjFkOWVmY2MzN2M2MzUyYmNlMDcyYTMgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NNZWFzdXJlbWVudAorY2YyMDQ5MjY3M2Q2YTQyM2U0YzJlODdmZGZiNWE0YzRhNjAyNDMxNzIxOTc4ZGI4NTJlMjQ2ZjI1OGUyNWVkYiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc01lYXN1cmVtZW50Q2FsbGJhY2sKK2FmODVhYTBmNDhhZTk5YTM5ZjQ2ODhjMzQ0ZTQ0MTkzMDRmNjgxZjlhZjgxOGE1YzhkNzU5Mjg2ZmM0NDE4ZGUgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZQorNzZiMDg3NGVhNGMwNmIyOWY2NjQxOGM1OTgyMGY0Mjg2YjNiZTk2MjljZDg3MjkyM2QwZGZiYjYwMmNkNDMyZCBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2sKKzI0OGJjZjUxZGE0MjczZDY0ZjM2N2JmNjg3N2JhZWYyZmVlYWNhMzY1NDU5ODQyZmQzYzIxNGEyZGM2ZTAyMjQgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOaQorYzc4MWI3YjEyNWY2OGJlNWRiOGE4YzNkNDEyZDUyNmFjZGJkZjc3ZGNjNTkyYTRjMGVkNzBiOGNlNGZlNmM0OSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05pQ2FsbGJhY2sKK2MxMTQyNjU3ZGUxNmZkYjI5MmE1MDIzNzJmZTkzODYxNGQ2NTI3MGFiODM1OTIxN2Q2ZTEzNjA0ZmU0ZGJjYTQgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NYdHJhCitiZDM2NmI4M2Q4ZDU2NWQwZThiZmFiZmYzYWRmY2FiMDI1OWQ3NWI0ZTJhOWY4ZTFiOTFlMTFkMTU5M2EyZmZiIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzWHRyYUNhbGxiYWNrCis4ODFiYzJmOTQwMjY3ODRkMTk0Y2ZmYmZmMTY2YzZlOGJmOTExZGU0ZTAyYWJlOTZmYzdkODllYzc1YjA1NzRhIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzCisxNzk3MWViOGE0ODI4OTNkYWRjZmMxNmUwNTgzZjQ5MmQ0MmEwMzRlZjk1ZDliMGI3MDk0MTdhZjMwODM4Mzk2IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMDo6SUFsbG9jYXRvcgorNjBiZjQyYTQ4OThlNGZiNzBkYmQ3MjBiMjYzYWVhZmQ3ZjM1ZjVlMWE1ZWZmZWFiYjRkNWQ2NTk4NzhhNWYxOCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMDo6SUdyYXBoaWNCdWZmZXJQcm9kdWNlcgorYjhhNzU2MTdiOWVjMTJiZWE2NDFmM2E3M2Q0MDI1YTMzZThiOWEyZjkxNjlkZDQ2MDk0YWY1NmFkZjkyNDljNSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMDo6SVByb2R1Y2VyTGlzdGVuZXIKKzRmNmRlZGJjZGQyMWMzMDlkZmM2NTBhY2VhODFhMDk2ZDZiMjQyNDkzZmZlNDljOGQ2MWJkM2M0M2FhZDM1NGUgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcworYjNhYWM2YzM4MTdmMDM5OTY0ZmNkNjIyNjgyNzRiMzAzOWUxN2JkN2QwZDViNDBiNGQxZDFjN2IxOWExZjg2NiBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMTo6SUNvbXBvc2VyCitiMTlkMDBlYjhhOGIzYjAwMzRhMDMyMWYyMmU4ZjMyMTYyYmY0YzJhZWJiY2U2ZGEyMmMwMjVmNTZlNDU5ZWEyIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOjpJQ29tcG9zZXJDYWxsYmFjaworZTk5MjY4NGU2OTBkZmU2N2E4Y2JlYWI1MDA1YmZhM2ZhOWMyYmYzZDRiMGI3NTY1N2ZiMWYwYzJkNWRkMmJhZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMTo6SUNvbXBvc2VyQ2xpZW50CisxYzk4YzJmNTE1NDM0NTMxMmVjMDU0ODcxNzkyYTI5ODJlYzVmM2UyYmMyYWJmYjYxYTEwYzBiNTE3OTc4ZTIwIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOjp0eXBlcworYTY5NTg5ODU4OWUxZWYxNWIyYjI1MTBmMTFlZGQ2YWFmYWM5OTE4ZDljZjhkNzRiNGI2MTQzYjMwOWRlZTU0MiBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjA6OklNYXBwZXIKKzI4NTA3ZDM4NWEzZGQyMjRiZjNjMzJmMWJmZDlmOTYwOTJjNDcwMWI5YzFjYzY2Y2FhNTc4ZmMzZWZjOTc4NzcgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wOjp0eXBlcworOTFlMmJhMzgwNWM5MjNmMDFmYzEyMzFlYzlmZjgzODk0MmFlZTMzNDZmMmQ3NjE0ZWNjMGNhZWFkYmU1N2VkNCBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OklIZWFsdGgKKzEyNzVhYTJlODczMjkwOTEwMWIyNmFlYzQ5ZWQyMjg1NDg5ZTg5ZDk3Yjg2MTBhODkwOGI3ODY4ZTM1YTNjYzUgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcworM2E4ZDM5MjJlMDZlNmQ0ZjhlMGJlZmM2YmU3OGQwZTllMDdhZWQxNTg1YjNkYTY1MjFiZWQ0MDZkMjVhOTQ4MyBhbmRyb2lkLmhhcmR3YXJlLmlyQDEuMDo6SUNvbnN1bWVySXIKKzcwOTBiZDM3OTEyZmNmNzIzYTEyZjRiYzE3NzgzZTM1Mjc1NzdjNDk0NDgwNWEwMjhjMjk2ZmQ3YTk1YmQ2ODIgYW5kcm9pZC5oYXJkd2FyZS5pckAxLjA6OnR5cGVzCitjYzc5MjVhNzhjMGFiMDIyNTE1ZjQ4ODQwZDNkYWU3NmYzODRlZDNhMTI4N2FiYWRjYjQ2MWE1Y2Q1Mzk2MTYzIGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMDo6SUtleW1hc3RlckRldmljZQorODIyOTk4ZDdiYjc2ZjBjZDcxOWE0MDkyOTE0MzRmY2I1NmU2ZDUwYmM0NzgwNzg4YmIxNTdhMzM3NGQ2M2I4YyBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjA6OnR5cGVzCitkNGVkMmYwZTE0ZjllOTE0ZDBiMTI3NWQyZTAzNjMxOTJmZTMwYWNhOTA1OWM4NGVkYjVmYWQxNTk5NWY5ZWM0IGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjpJTGlnaHQKK2Q5NTg0YmZjYWVkZDZlNjJjZjMzNzg4MTc0ODI0NmIyM2UzNmNiYzJiYzNhYTg0YzAxYjZhMWU2MjIwNjE0MDAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzCisxNmMwY2YwZjczZGUxZTUyMDhhOTUwMjBjNmM2NDc0OTAzZTcwOTRmNzZiMmQ3ODI2NTFhZmFjYTBlNWZkODZmIGFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wOjp0eXBlcworOGJjMmY1ZmRjYWQ2ODg1NmViNjFhNjJmZTRjYzA0M2ZhMDY0YmI3ZjFkYWI5NWE3MWQxOTE4ZWMxZWVmN2I1NSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklHcmFwaGljQnVmZmVyU291cmNlCiswZDNkZTljZDg5ZDQ3MThlYTNiNzcyZjJkOGI5M2JlMDA0ZmViM2FiYjdlN2RjNTQwMmUzNzA0N2NjNzMwZDA1IGFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMDo6SU9teAorMzIwMDJlMWMzNThjNjRkZTEwNmM5NzdhNmRjNmFmN2RhMjdiZTQ4MDNhNWJiNjZmZDZmODkxYTViYTBhMTYxNyBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklPbXhCdWZmZXJTb3VyY2UKKzgxYWQ4ZDhiYjFjZjZmNDE5MjNjZjExZGQzOTM1NGE4ZmU0MzNkYjI4NGEyMzRjYzY3NWRlN2U3NWE4MjIyNGMgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOjpJT214Tm9kZQorNDk0YzBjOGJmNjA2NWVkYzgyZWMxMjcyMjhlZDE5ZGQyMjQzZGMxYzJmN2Q2MDFjN2M2YmU3YjcwMTVjMTcxMyBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklPbXhPYnNlcnZlcgorMjUyYzJmYzUwYzc4ZmQ2ZGU4MzY1ZTViNjBlNTExNTExOWFjZTEwN2RiMGI5NGIwYjI2ODE1Y2JmM2QyYjY0YSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklPbXhTdG9yZQorMTQ4YzFiNTBiMDk1ODk4ODM3MzE0NWZmZGY1ZmEwZTFiNjUzNGUwYTIwMzRhNTcwZTc0YjE1YzEyN2NmN2M1ZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OnR5cGVzCitjNjY5MDJmZTQ4ZDY4N2FjNjc0MGEzZTMyYWU1NWZiNzU1MzJjNDhjMzZjNjM4NjQ2MWMyYjQ0MTZhZDJlMGYxIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjpJTWVtdHJhY2sKKzg2MGJhY2Q4YjExYTI2OWM0MDU2NzU0MmI2MTNmZTRjYTQ0OGQ1Y2I0MzI2ZDAwNTg4OTllNjA4ZTg5ZGZjYTEgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA6OnR5cGVzCiswN2FjMmRjOTUyNzAzMjFlYzdkNGMzM2NkMjVlNTA4NWEwNTdmNDdmZTM1MGQ2NDVhZjZmN2E3YTExZTNjZjU3IGFuZHJvaWQuaGFyZHdhcmUubmZjQDEuMDo6SU5mYworZjJmZTU0NDI2YzA3ZDY3Mzg4ZDQ3NzRhNjA2NDFhZDRjMDUzOGYyMmViNmUxMTExNzIyZjIzMTc3MjY1NWRlNiBhbmRyb2lkLmhhcmR3YXJlLm5mY0AxLjA6OklOZmNDbGllbnRDYWxsYmFjaworOTYyNmZkMThkYjExM2Q3MDlmYWY1OTNhNzBjYWYxOWJkMDk4MDI5NGQyM2M0NjhjODBjMzAxODZmOWQyOThhNiBhbmRyb2lkLmhhcmR3YXJlLm5mY0AxLjA6OnR5cGVzCitkZWVlMWRjNDk0OGYzM2FmMjA3ZTEwMDhhYmEwZjZjYzA3YWZiNzkwMGVhYjUzZjMzMTkyYzhjYWMxMzdlZWZjIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjpJUG93ZXIKK2VmYzgzZGYzZjk2MmI5M2M3YzAyOTBkNjkxZDdkMzAwZGFiZTEyNjgzZTJjZGUzNTkxZmIzYzBiZWVkY2UyMGYgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzCis5YjVhYTQ5OWVjM2I0MjI2ZjE1ZjQ4ZjVlZDA4ODk2ZTJmYzA2NzZmOTc4YzllMTk5YzFkYTIxZGFhZjAwMmE2IGFuZHJvaWQuaGFyZHdhcmUucmFkaW9AMS4wOjpJUmFkaW8KKzVjOGVmYmI5YzQ1MWE1OTczN2VkMmM2YzIwMjMwYWFlNDc0NTgzOWNhMDFkODA4OGQ2ZGNjOTAyMGU1MmQyYzUgYW5kcm9pZC5oYXJkd2FyZS5yYWRpb0AxLjA6OklSYWRpb0luZGljYXRpb24KK2M1ZjIyMjY0YTMxNTYyZTAwOWJiMjg0Mjg3MDUxYjc5OThmYzQ2Y2QzMjk0ZGY2MWM5ZTZhMWQ2MjIxODQ5OTMgYW5kcm9pZC5oYXJkd2FyZS5yYWRpb0AxLjA6OklSYWRpb1Jlc3BvbnNlCitkZTNhYjlmNzNiMTA3M2NkNjc3YjE5ZDg4NmZiOTI3ZTkzODFiMzAxNjFhNzA0NzEyZDJiMzBmODc1ODczZjVjIGFuZHJvaWQuaGFyZHdhcmUucmFkaW9AMS4wOjpJU2FwCitkMTgzZTQwNmVmMDg5N2RmMjExN2E5ZGRlMzg0ZThlNmVhNGZhNmFiMWM3ZjZmMjhlNjViODcwMTEyMThjOWVhIGFuZHJvaWQuaGFyZHdhcmUucmFkaW9AMS4wOjpJU2FwQ2FsbGJhY2sKKzk2OTg2ZmJkMjJmMGU2Y2E3NTJlMWZjZGMwYTY0YmRhMjEzOTk1YTgxZjVmMzZiYzRmYWYzNTMyZDkzMDZiOTcgYW5kcm9pZC5oYXJkd2FyZS5yYWRpb0AxLjA6OnR5cGVzCiswMGY3MDA4NWQ2ZmFlMWQ0ODJmYjcwMGEzZmQ0MmVkNDc1Mzg0Yzk1YjUxYzkyNjliOWFlNTAzN2I3NGFkNGRkIGFuZHJvaWQuaGFyZHdhcmUucmFkaW8uZGVwcmVjYXRlZEAxLjA6OklPZW1Ib29rCiswNjgzN2I2ZDdlODQzY2ZhOWNkMjBmZWQ0MDcwZmVjYTdhOWI1YzgxYTllZDY0M2JmN2QwNjgwMzQ1NWE5ODE2IGFuZHJvaWQuaGFyZHdhcmUucmFkaW8uZGVwcmVjYXRlZEAxLjA6OklPZW1Ib29rSW5kaWNhdGlvbgorNmZkNDg3NGYwZWRkZDQ2MjZhMjc2NThmZDk0ZmFkNTI2YzMxN2YzNTYzNDM5ZTc5NzE4YmRiMWEzYTIzMDlkNSBhbmRyb2lkLmhhcmR3YXJlLnJhZGlvLmRlcHJlY2F0ZWRAMS4wOjpJT2VtSG9va1Jlc3BvbnNlCis2OTgzYTJjYWZlMzlkNWM1N2RmZGMxNzQzMDU1ZmIwZjc1N2EwZGY4Yzc4ZTAwNDIzZDVlMTgxMDgzNjkyN2UxIGFuZHJvaWQuaGFyZHdhcmUucmVuZGVyc2NyaXB0QDEuMDo6SUNvbnRleHQKKzdmOTQxN2EwY2NmNzhlYTA0MmVjN2E4YWM4ZTM3NTAzNDZkNGQ5ZDdlNWFlMDFiMWIzNWZkZTMwM2Y0N2MyNGQgYW5kcm9pZC5oYXJkd2FyZS5yZW5kZXJzY3JpcHRAMS4wOjpJRGV2aWNlCitmYzZmMzI1YjI2NmIzMjM1M2Y3ZDE1MzRmYmU1OGUwZDM2ODI2NWExMmI3N2ZhMzk2ZmI1NTZlOGM0NDNmNzM5IGFuZHJvaWQuaGFyZHdhcmUucmVuZGVyc2NyaXB0QDEuMDo6dHlwZXMKKzg5NTg1ZmY1NDFjMzE5ZGU0MDkxYTVhMGI2ODdkZDUyNmFjODFjNjM4MmZmZDdiOTc5YTQxNjRiM2Q3NDE5YTYgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMDo6SVNlbnNvcnMKK2UwNGFiOTc4ZmMyOGY0YzUxNWY0YTc1NjE3ZGZkYTg2MDc3MzNhNjRmMTM2NjZiZWViMGU2MDRhMDdhMzkzMzMgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMDo6dHlwZXMKKzViZWZjMDE5Y2JlOTQ5NTM2NjFlMmNkYjk1ZTNjZjY0ZjVlNTY1YzI5NDAzZTFjMmRhZWNjMmJlNDRlMGE1NWMgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wOjpJU291bmRUcmlnZ2VySHcKK2Q3ZWM1ZjYxMmE1ZTBhNTllYTRmMmI2MTMxN2UyMDhmZjU2ZGQ1MDkyMGZkNGViNDQxZTBjYmM4Zjk3ZTRmNDkgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wOjpJU291bmRUcmlnZ2VySHdDYWxsYmFjaworNWJlZTllNzBmN2U1ZWM3ZWUyNTI4ODNiMjhmOThmMTJiNTk5NjBmNGMyYTBiNGNjOWE0NTI2ZTQ2NjllYmNkNCBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjA6OnR5cGVzCis5N2YxZWM0NDYwNDNiYzVhNjY0NWI3NDUyOWE2Mjc2NDk2YmRiMzVlMGFlZTQxZWRhNTVjYjkyZDUxZWI3ODAyIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OklUaGVybWFsCis4NDk2NWE2OTA4YmNlYjRlZjUxNTQ2YmY4NzMxZjMwOWYxZWE5ZDA5YTAxNzdkY2M3OTc0MTMyZTUyM2RkNmQyIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzCis5Mzg4NTA2MjFjM2M1ZWY0MjZhNGI4OGU3NTJiYTk5YjM1NTkwMzdlNzgyYTNkOTM4NjA0ZjNhZWY1Y2MwZjFiIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6SUhkbWlDZWMKK2U3NWI2ZWVhNzExZDM2ZmFjNjc4YmNlMDcyYjNjZWM2NTQ0YjI3ZmE5ZjRjZDkwMzk5OTQwNGU1YzExMGNhMTAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjpJSGRtaUNlY0NhbGxiYWNrCis2ZTI1ZjhkYmZhZGI2NjhlMWQ0ZWM4MGViOWFjZDk1ZDhiYzllMGEyNDBjMzZkMjdlNjYyYWRiNDQwMzE0Yjk1IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMKKzBjYWZhM2M4Mzg4ZTk2MzE5MTZkMmQ4MDBmNzhkZWNiY2VjMjkwNGYxMTQxNWIzMmM3MWEzMWQ5YTUxZWJmNzkgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjA6OklUdklucHV0CitkZWU4M2U1Yzg2NGZiYmVlOGYwMjQ0OGQwODAwYmUzMmYwNjg1NjM4NmI5ZjkwN2JjNWQ5NTIyMDhjOTQzNGY5IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOjpJVHZJbnB1dENhbGxiYWNrCiswN2FhYjMwNDEwYjYxMjM4MTIzNGRjYTZkNDUzZDRhYjk2ZjJlNTM2MzY4NzE1NzE3YzZlMjgxMDFiOTg1MWI1IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOjp0eXBlcworNGVmNTc0OTkyNzNmMzhiZGJkZDBjMTVlNTZlZTdhNGJjNWYxOGE1NjQ0MDkyMTcwYTUzMWRmMzU0MWQ5ZTAxNSBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OklVc2IKKzRiZTc4ODFlNDExYmE0Mjc4NGJmNWI3MzU0YzE0YWUwY2YxNjEwMDRkMzk0MzNhYWVjYWFiMGQxOWVhOTkzNTQgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjpJVXNiQ2FsbGJhY2sKK2Y3ZTZlNzQ3OTEwYTNjZDBhMzU4NDYxNDFlM2I5OTBhNmE2MTJhMjk3YjJiNzBjY2Q1NzQwYjY0NmE0NTBhOGMgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcworMDZlYTY0Y2MzNTY1Nzc3ZjNiMjU5ZTQwMGZmYTcxMDBkMDdmMzgyN2FkOTM1N2IwYzVkM2M2NTEzODRlNTU1MyBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDo6SVZpYnJhdG9yCiswZmVjZDM0YWU2NGYzMmVmZjZhYTYxNWZkNjYyMzQ5MjQyYzBiOGI2ZTMwM2VmMDVhN2NiNTc3NmM3MzJmNDEzIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjp0eXBlcworNGI5NjI5NjhhN2RmNGFiMTA0ZDEzMTVkNjZhMGE3MzQ4YTcxM2ZlY2JiNWQyYzFiMjM2ODg0OTQ0NThmMzdjZSBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMDo6SVZyCitiOWJlMzY3MTlhOGFkNTM0MDAwYTUxZWEwN2JlOTFiZTk0YzQwNWJmMWUwMzhhZTgyNWFjZjY1MDg3ZmZkMzc4IGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpCitlZTAyMjRlZTE4ODEzNTA2ZDlkNmYxM2Q4YzhlNDY3OWYwNTNjMjkwYTQ0M2E1MmE3YzUyYTVkM2M4NTIyNjJiIGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpQXBJZmFjZQorZjNlZWNjNDg5ZGViNGM3NDg5MmY1OWViN2FkYjc2OTA2M2JkNWMzNTRhYzEzMmI2MjZhNWY0MmIzNjNkMzZiYyBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaUNoaXAKK2ExYjk4ODM3NzY0NWE1OGU1ZTI1NDJjYTJiYWQ0ZTE3YzIxYTRhMzg5MjEzZDA1ZGUyZjBlMzJkNTdiN2QzMzkgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlDaGlwRXZlbnRDYWxsYmFjaworNWVkNjc2MGNlNzdlODRiYzZjNDlkMWFjYjNmN2Q4MTE3YzkxNzZiM2YwNjUxNGJjNDRhZDNhZjg0YzgwZGNmZSBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaUV2ZW50Q2FsbGJhY2sKKzZiOWFkNDNhNWVmYmU2Y2EyMTRmNzUxZTIyY2U0M2NmNWNkNGQ1ZDVmMmNiYTgwZjI0Y2NkMzc1NWE3MjQwMWMgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlJZmFjZQorYmE1YWE3NGYxYmE3MTRmMDA5Mzg2NDIyNzkyMzQ5MjgwODc5NWJkYTYxOTljNGVhMDg5MTMyMmQyN2Y4YzkzMSBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaU5hbklmYWNlCiszMjVjOTRmM2UxYTU2NWI1NmJiYzc0ZmFkZGJkMGJhN2NiODI0ZjI2M2RjY2Y5ZGZmZjJkYWY2MmI4NmVkNzc0IGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpTmFuSWZhY2VFdmVudENhbGxiYWNrCitjMmMzZjAzNzJiNDE3ODBmYjZkZmU4M2MwMjIyOTY4MDZjMjAyNGQ3MDQ2NjgyZmQyMDFkZTVhYTliNzkxYzdhIGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpUDJwSWZhY2UKKzc2NmU5NzY1ZjVjOWM3NTliMmE3NjNjMjI4ODM1M2ZiNWRlZmYzMzg5YzJjYzI4ZjgxZDc5YzkzOTcwNGNlOGIgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlSdHRDb250cm9sbGVyCis3MmFiNmYzZTEyMGNiZjA3YWE2ZjhlODdjYTg5MTEyYmRlYjM2YjdmYmI5NmJjZTVhZjM3MTIzMjNhYjhiOGU2IGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpUnR0Q29udHJvbGxlckV2ZW50Q2FsbGJhY2sKKzNiODA5M2QzOWVmMWUxMGU0M2M1NTM4YWZiZjVmZjZlMzliOGQ4MTY4ZWJiZTE5OThkOTkzZTg5ZTI1ZjE0YTUgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlTdGFJZmFjZQorN2ZiZmM1NTFjM2UyM2M4YjQzOThjM2UxNmU0NTJiNTE2NDU3ZTY5MjE0MjRhNTM0NzRjYmYzNzNjYTMwNmZhOSBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaVN0YUlmYWNlRXZlbnRDYWxsYmFjaworZTIwZDUxMzJkNmQyM2UwNzJjMTVkZTA2NWI1ZTJhYTEzZmY5NjUwMzEyNDZhMmM4MjU4MTczMmJhZTU2YmY2ZCBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjp0eXBlcworZjdlNTVjMDgxODdkOGM4NTUwNjhhMWVlM2QwYzhkYWVlZTc1NzAyOTJkOTY1MDljMjFhODc1NmQ0ZjVjZmI5YiBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50Cis1NmI1YzcyNjdjYjNkMzMzN2Y0NGViOGIwYjM4ZmY0YzYyNjBkY2M3MGUwNzY4N2ZjYWI5NGIxY2NlYThkMTU5IGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRDYWxsYmFjaworMzViYTdiY2RmMThmMjRhODY2YTdlNTQyOTU0OGYwNjc2OGJiMjBhMjU3Zjc1YjEwYTM5N2M0ZDgyNWVmODQzOCBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50SWZhY2UKK2NkYTAxMDA4YzA2OTIyZmEzN2MxMjEzZTliYjgzMWExMDliMzE3NDUzMjgwNTYxNmZiNzE2MWVkYzQwMzg2NmYgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjpJU3VwcGxpY2FudE5ldHdvcmsKKzQ5MDc0MTAzMzhjNWU4ZGJlZWM0YjVlZGMyNjA4ZWEzMjNmNTU2MTk0NWY4ODEwYWY4MTgxMGM0N2IwMTkxODQgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjpJU3VwcGxpY2FudFAycElmYWNlCis4YjYzZjVlZmEyZTNiZTNhN2NiOGE0Mjg3NjBkODIyODVhNGFiNzliY2JkZWE2ZWY5MGFhNTQ3NTU1ZTU4MmQ0IGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRQMnBJZmFjZUNhbGxiYWNrCis1NjEyOGY3NDU2MDU3MWI2Nzc3ZDU5NDUzZjM1YzZiMzU2OTNlZTM3N2UyYTIzYzgwNzcwODkwNjkyOGYwOWRlIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRQMnBOZXR3b3JrCisyMDY3YzIyMTk3YmNhOTc0M2RhYjY2YTZmNTYxYThhODM3NWM2N2I0Zjc2YWVkMDVmNzc2ODM5NDk5YmQ0YzhmIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRQMnBOZXR3b3JrQ2FsbGJhY2sKKzc3NTJlMWRlOTNhYWY1ZmVkMzcwMTFjMjE5YWMyNDcwNjlmNmFmMzIwYjA4MTBkYWE5ODUxMDU4NGExMGU3YjQgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjpJU3VwcGxpY2FudFN0YUlmYWNlCitkNzgxYzhkN2U3YjNmZTVjY2E4Y2Y2ZTFkODgwNmU3NzA5ODJhZTUzNThjNzgxNmVkNTFiMGYwZWMyNzJlNzBkIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRTdGFJZmFjZUNhbGxiYWNrCitiMTJlZjBiZGQ4YTRkMjQ3YThhNmU5NjBiMjI3ZWQzMjM4M2YyYjAyNDFmNTVkNjdmY2VhNmVmZjZhNjczN2ZhIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRTdGFOZXR3b3JrCitkOGYwODc3YWUxZDMyMWMxZDg4NGM3NjMxZGZlMzZjYWIwZWM4YTRiMjg2M2Q0YjY4N2Y4NWQzNTQ5YTYzYmNjIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRTdGFOZXR3b3JrQ2FsbGJhY2sKK2ZlM2MzYzJmNTcyYjcyZjE1Zjg1OTRjNTM4YjA1NzdiZDVjMjg3MjJjMzE4NzljZmU2MjMxMzMwY2RkYjY3NDcgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjp0eXBlcwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9BbmRyb2lkLmJwIGIvZHJtLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4MjlkZTcKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw5MSBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUNyeXB0b0ZhY3RvcnkuaGFsIiwKKyAgICAgICAgIklDcnlwdG9QbHVnaW4uaGFsIiwKKyAgICAgICAgIklEcm1GYWN0b3J5LmhhbCIsCisgICAgICAgICJJRHJtUGx1Z2luLmhhbCIsCisgICAgICAgICJJRHJtUGx1Z2luTGlzdGVuZXIuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0NyeXB0b0ZhY3RvcnlBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9DcnlwdG9QbHVnaW5BbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Ecm1GYWN0b3J5QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvRHJtUGx1Z2luQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvRHJtUGx1Z2luTGlzdGVuZXJBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUNyeXB0b0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUh3Q3J5cHRvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cbkh3Q3J5cHRvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9CcEh3Q3J5cHRvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cc0NyeXB0b0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUNyeXB0b1BsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JSHdDcnlwdG9QbHVnaW4uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQm5Id0NyeXB0b1BsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9CcEh3Q3J5cHRvUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JzQ3J5cHRvUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lId0RybUZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQm5Id0RybUZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQnBId0RybUZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQnNEcm1GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW4uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUh3RHJtUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JuSHdEcm1QbHVnaW4uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQnBId0RybVBsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cc0RybVBsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JRHJtUGx1Z2luTGlzdGVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUh3RHJtUGx1Z2luTGlzdGVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQm5Id0RybVBsdWdpbkxpc3RlbmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JwSHdEcm1QbHVnaW5MaXN0ZW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cc0RybVBsdWdpbkxpc3RlbmVyLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9kcm0vMS4wL0lDcnlwdG9GYWN0b3J5LmhhbCBiL2RybS8xLjAvSUNyeXB0b0ZhY3RvcnkuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYWI5YmMKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL0lDcnlwdG9GYWN0b3J5LmhhbApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitpbXBvcnQgSUNyeXB0b1BsdWdpbjsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvaGFyZHdhcmUvQ3J5cHRvQVBJLmg6Q3J5cHRvRmFjdG9yeQorICoKKyAqIElDcnlwdG9GYWN0b3J5IGlzIHRoZSBtYWluIGVudHJ5IHBvaW50IGZvciBpbnRlcmFjdGluZyB3aXRoIGEgdmVuZG9yJ3MKKyAqIGNyeXB0byBIQUwgdG8gY3JlYXRlIGNyeXB0byBwbHVnaW5zLiBDcnlwdG8gcGx1Z2lucyBjcmVhdGUgY3J5cHRvIHNlc3Npb25zCisgKiB3aGljaCBhcmUgdXNlZCBieSBhIGNvZGVjIHRvIGRlY3J5cHQgcHJvdGVjdGVkIHZpZGVvIGNvbnRlbnQuCisgKi8KK2ludGVyZmFjZSBJQ3J5cHRvRmFjdG9yeSB7CisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIGlmIGEgY3J5cHRvIHNjaGVtZSBpcyBzdXBwb3J0ZWQgYnkgdGhpcyBIQUwKKyAgICAgKgorICAgICAqIEBwYXJhbSB1dWlkIGlkZW50aWZpZXMgdGhlIGNyeXB0byBzY2hlbWUgaW4gcXVlc3Rpb24KKyAgICAgKiBAcmV0dXJuIGlzU3VwcG9ydGVkIG11c3QgYmUgdHJ1ZSBvbmx5IGlmIHRoZSBzY2hlbWUgaXMgc3VwcG9ydGVkCisgICAgICovCisgICAgaXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQodWludDhfdFsxNl0gdXVpZCkgZ2VuZXJhdGVzKGJvb2wgaXNTdXBwb3J0ZWQpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgY3J5cHRvIHBsdWdpbiBmb3IgdGhlIHNwZWNpZmllZCB1dWlkIGFuZCBzY2hlbWUtc3BlY2lmaWMKKyAgICAgKiBpbml0aWFsaXphdGlvbiBkYXRhLgorICAgICAqCisgICAgICogQHBhcmFtIHV1aWQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgZHJtIHNjaGVtZS4gU2VlCisgICAgICogaHR0cDovL2Rhc2hpZi5vcmcvaWRlbnRpZmllcnMvcHJvdGVjdGlvbiBmb3IgdXVpZCBhc3NpZ25tZW50cworICAgICAqIEBwYXJhbSBpbml0RGF0YSBzY2hlbWUtc3BlY2lmaWMgaW5pdCBkYXRhLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBIQUwgaW1wbGVtZW50YXRpb24gbXVzdCByZXR1cm4KKyAgICAgKiBPSyBpZiB0aGUgcGx1Z2luIGlzIGNyZWF0ZWQgYW5kIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwbHVnaW4KKyAgICAgKiBjYW5ub3QgYmUgY3JlYXRlZC4KKyAgICAgKiBAcmV0dXJuIGNyeXB0b1BsdWdpbiB0aGUgY3JlYXRlZCBJQ3J5cHRvUGx1Z2luCisgICAgICovCisgICAgY3JlYXRlUGx1Z2luKHVpbnQ4X3RbMTZdIHV1aWQsIHZlYzx1aW50OF90PiBpbml0RGF0YSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBJQ3J5cHRvUGx1Z2luIGNyeXB0b1BsdWdpbik7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9JQ3J5cHRvUGx1Z2luLmhhbCBiL2RybS8xLjAvSUNyeXB0b1BsdWdpbi5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE3ZmQyNgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvSUNyeXB0b1BsdWdpbi5oYWwKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA6OnR5cGVzOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9oYXJkd2FyZS9DcnlwdG9BUEkuaDpDcnlwdG9QbHVnaW4KKyAqCisgKiBJQ3J5cHRvUGx1Z2luIGlzIHRoZSBIQUwgZm9yIHZlbmRvci1wcm92aWRlZCBjcnlwdG8gcGx1Z2lucy4KKyAqIEl0IGFsbG93cyBjcnlwdG8gc2Vzc2lvbnMgdG8gYmUgb3BlbmVkIGFuZCBvcGVyYXRlZCBvbiwgdG8KKyAqIGxvYWQgY3J5cHRvIGtleXMgZm9yIGEgY29kZWMgdG8gZGVjcnlwdCBwcm90ZWN0ZWQgdmlkZW8gY29udGVudC4KKyAqLworaW50ZXJmYWNlIElDcnlwdG9QbHVnaW4geworICAgIC8qKgorICAgICAqIENoZWNrIGlmIHRoZSBzcGVjaWZpZWQgbWltZS10eXBlIHJlcXVpcmVzIGEgc2VjdXJlIGRlY29kZXIKKyAgICAgKiBjb21wb25lbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWltZSBUaGUgY29udGVudCBtaW1lLXR5cGUKKyAgICAgKiBAcmV0dXJuIHNlY3VyZVJlcXVpcmVkIG11c3QgYmUgdHJ1ZSBvbmx5IGlmIGEgc2VjdXJlIGRlY29kZXIgaXMgcmVxdWlyZWQKKyAgICAgKiBmb3IgdGhlIHNwZWNpZmllZCBtaW1lLXR5cGUKKyAgICAgKi8KKyAgICByZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQoc3RyaW5nIG1pbWUpCisgICAgICAgIGdlbmVyYXRlcyhib29sIHNlY3VyZVJlcXVpcmVkKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmeSBhIHBsdWdpbiBvZiB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQgcmVzb2x1dGlvbgorICAgICAqCisgICAgICogQHBhcmFtIHdpZHRoIC0gdGhlIGRpc3BsYXkgcmVzb2x1dGlvbnMncyB3aWR0aAorICAgICAqIEBwYXJhbSBoZWlnaHQgLSB0aGUgZGlzcGxheSByZXNvbHV0aW9uJ3MgaGVpZ2h0CisgICAgICovCisgICAgbm90aWZ5UmVzb2x1dGlvbih1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0KTsKKworICAgIC8qKgorICAgICAqIEFzc29jaWF0ZSBhIG1lZGlhZHJtIHNlc3Npb24gd2l0aCB0aGlzIGNyeXB0byBzZXNzaW9uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBNZWRpYURybSBzZXNzaW9uIElEIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgY3J5cHRvCisgICAgICogc2Vzc2lvbgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwsIHN0YXR1cyBtdXN0IGJlCisgICAgICogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3Qgb3BlbmVkLCBvcgorICAgICAqIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZHJtCisgICAgICogc2NoZW1lLgorICAgICAqLworICAgIHNldE1lZGlhRHJtU2Vzc2lvbih2ZWM8dWludDhfdD4gc2Vzc2lvbklkKSBnZW5lcmF0ZXMoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBzaGFyZWQgbWVtb3J5IGJhc2UgZm9yIHN1YnNlcXVlbnQgZGVjcnlwdCBvcGVyYXRpb25zLiBUaGUgYnVmZmVyCisgICAgICogYmFzZSBpcyBhIGhpZGxfbWVtb3J5IHdoaWNoIG1hcHMgc2hhcmVkIG1lbW9yeSBpbiB0aGUgSEFMIG1vZHVsZS4KKyAgICAgKiBBZnRlciB0aGUgc2hhcmVkIGJ1ZmZlciBiYXNlIGlzIGVzdGFibGlzaGVkLCB0aGUgZGVjcnlwdCgpIG1ldGhvZAorICAgICAqIHJlY2VpdmVzIFNoYXJlZEJ1ZmZlciBpbnN0YW5jZXMgd2hpY2ggc3BlY2lmeSB0aGUgYnVmZmVyIGFkZHJlc3MgcmFuZ2UKKyAgICAgKiBmb3IgZGVjcnlwdCBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGFkZHJlc3Nlcy4KKyAgICAgKgorICAgICAqIFRoZXJlIGNhbiBiZSBtdWx0aXBsZSBzaGFyZWQgYnVmZmVycyBwZXIgY3J5cHRvIHBsdWdpbi4gVGhlIGJ1ZmZlcnMKKyAgICAgKiBhcmUgZGlzdGluZ3Vpc2hlZCBieSB0aGUgYnVmZmVySWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYmFzZSB0aGUgYmFzZSBJTWVtb3J5IG9mIHRoZSBtZW1vcnkgYnVmZmVyIGlkZW50aWZpZWQgYnkKKyAgICAgKiBidWZmZXJJZAorICAgICAqIEBwYXJhbSBidWZmZXJJZCBpZGVudGlmaWVzIHRoZSBzcGVjaWZpYyBzaGFyZWQgYnVmZmVyIGZvciB3aGljaAorICAgICAqIHRoZSBiYXNlIGlzIGJlaW5nIHNldC4KKyAgICAgKi8KKyAgICBzZXRTaGFyZWRCdWZmZXJCYXNlKG1lbW9yeSBiYXNlLCB1aW50MzJfdCBidWZmZXJJZCk7CisKKyAgICAvKioKKyAgICAgKiBEZWNyeXB0IGFuIGFycmF5IG9mIHN1YnNhbXBsZXMgZnJvbSB0aGUgc291cmNlIG1lbW9yeSBidWZmZXIgdG8gdGhlCisgICAgICogZGVzdGluYXRpb24gbWVtb3J5IGJ1ZmZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWN1cmUgYSBmbGFnIHRvIGluZGljYXRlIGlmIGEgc2VjdXJlIGRlY29kZXIgaXMgYmVpbmcgdXNlZC4gVGhpcworICAgICAqIGVuYWJsZXMgdGhlIHBsdWdpbiB0byBjb25maWd1cmUgYnVmZmVyIG1vZGVzIHRvIHdvcmsgY29uc2lzdGVudGx5IHdpdGgKKyAgICAgKiBhIHNlY3VyZSBkZWNvZGVyLgorICAgICAqIEBwYXJhbSB0aGUga2V5SWQgZm9yIHRoZSBrZXkgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkbyB0aGUKKyAgICAgKiB0aGUgZGVjcnlwdGlvbi4gVGhlIGtleUlkIHJlZmVycyB0byBhIGtleSBpbiB0aGUgYXNzb2NpYXRlZAorICAgICAqIE1lZGlhRHJtIGluc3RhbmNlLgorICAgICAqIEBwYXJhbSBpdiB0aGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yIHRvIHVzZQorICAgICAqIEBwYXJhbSBtb2RlIHRoZSBjcnlwdG8gbW9kZSB0byB1c2UKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgY3J5cHRvIHBhdHRlcm4gdG8gdXNlCisgICAgICogQHBhcmFtIHN1YlNhbXBsZXMgYSB2ZWN0b3Igb2Ygc3Vic2FtcGxlcyBpbmRpY2F0aW5nIHRoZSBudW1iZXIKKyAgICAgKiBvZiBjbGVhciBhbmQgZW5jcnlwdGVkIGJ5dGVzIHRvIHByb2Nlc3MuIFRoaXMgYWxsb3dzIHRoZSBkZWNyeXB0CisgICAgICogY2FsbCB0byBvcGVyYXRlIG9uIGEgcmFuZ2Ugb2Ygc3Vic2FtcGxlcyBpbiBhIHNpbmdsZSBjYWxsCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgaW5wdXQgYnVmZmVyIGZvciB0aGUgZGVjcnlwdGlvbgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgYnl0ZSBvZiBlbmNyeXB0ZWQgZGF0YSBmcm9tCisgICAgICogdGhlIGJhc2Ugb2YgdGhlIHNvdXJjZSBidWZmZXIKKyAgICAgKiBAcGFyYW0gZGVzdGluYXRpb24gdGhlIG91dHB1dCBidWZmZXIgZm9yIHRoZSBkZWNyeXB0aW9uCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fTk9fTElDRU5TRSBpZiBubyBsaWNlbnNlIGtleXMgaGF2ZSBiZWVuCisgICAgICogbG9hZGVkLCBFUlJPUl9EUk1fTElDRU5TRV9FWFBJUkVEIGlmIHRoZSBsaWNlbnNlIGtleXMgaGF2ZSBleHBpcmVkLAorICAgICAqIEVSUk9SX0RSTV9SRVNPVVJDRV9CVVNZIGlmIHRoZSByZXNvdXJjZXMgcmVxdWlyZWQgdG8gcGVyZm9ybSB0aGUKKyAgICAgKiBkZWNyeXB0aW9uIGFyZSBub3QgYXZhaWxhYmxlLCBFUlJPUl9EUk1fSU5TVUZGSUNJRU5UX09VVFBVVF9QUk9URUNUSU9OCisgICAgICogaWYgcmVxdWlyZWQgb3V0cHV0IHByb3RlY3Rpb25zIGFyZSBub3QgYWN0aXZlLAorICAgICAqIEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIGRlY3J5cHQgc2Vzc2lvbiBpcyBub3Qgb3BlbmVkLAorICAgICAqIEVSUk9SX0RSTV9ERUNSWVBUIGlmIHRoZSBkZWNyeXB0IG9wZXJhdGlvbiBmYWlscywgYW5kCisgICAgICogRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUgaW4gb3RoZXIgZmFpbHVyZSBjYXNlcy4KKyAgICAgKiBAcmV0dXJuIGJ5dGVzV3JpdHRlbiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG91dHB1dCBmcm9tIHRoZSBkZWNyeXB0aW9uCisgICAgICogQHJldHVybiBkZXRhaWxlZEVycm9yIGlmIHRoZSBlcnJvciBpcyBhIHZlbmRvci1zcGVjaWZpYyBlcnJvciwgdGhlCisgICAgICogdmVuZG9yJ3MgY3J5cHRvIEhBTCBtYXkgcHJvdmlkZSBhIGRldGFpbGVkIGVycm9yIHN0cmluZyB0byBoZWxwCisgICAgICogZGVzY3JpYmUgdGhlIGVycm9yLgorICAgICAqLworICAgIGRlY3J5cHQoYm9vbCBzZWN1cmUsIHVpbnQ4X3RbMTZdIGtleUlkLCB1aW50OF90WzE2XSBpdiwgTW9kZSBtb2RlLAorICAgICAgICBQYXR0ZXJuIHBhdHRlcm4sIHZlYzxTdWJTYW1wbGU+IHN1YlNhbXBsZXMsCisgICAgICAgICAgICBTaGFyZWRCdWZmZXIgc291cmNlLCB1aW50NjRfdCBvZmZzZXQsIERlc3RpbmF0aW9uQnVmZmVyIGRlc3RpbmF0aW9uKQorICAgICAgICBnZW5lcmF0ZXMoU3RhdHVzIHN0YXR1cywgdWludDMyX3QgYnl0ZXNXcml0dGVuLCBzdHJpbmcgZGV0YWlsZWRFcnJvcik7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9JRHJtRmFjdG9yeS5oYWwgYi9kcm0vMS4wL0lEcm1GYWN0b3J5LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGU0Nzc5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9JRHJtRmFjdG9yeS5oYWwKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMDsKKworaW1wb3J0IElEcm1QbHVnaW47CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL2RybS9Ecm1BUEkuaDpEcm1GYWN0b3J5CisgKgorICogSURybUZhY3RvcnkgaXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIGludGVyYWN0aW5nIHdpdGggYSB2ZW5kb3IncworICogZHJtIEhBTCB0byBjcmVhdGUgZHJtIHBsdWdpbiBpbnN0YW5jZXMuIEEgZHJtIHBsdWdpbiBpbnN0YW5jZQorICogY3JlYXRlcyBkcm0gc2Vzc2lvbnMgd2hpY2ggYXJlIHVzZWQgdG8gb2J0YWluIGtleXMgZm9yIGEgY3J5cHRvCisgKiBzZXNzaW9uIHNvIGl0IGNhbiBkZWNyeXB0KiBwcm90ZWN0ZWQgdmlkZW8gY29udGVudC4KKyAqLworCitpbnRlcmZhY2UgSURybUZhY3RvcnkgeworICAgIC8qKgorICAgICAqIERldGVybWluZSBpZiBhIGNyeXB0byBzY2hlbWUgaXMgc3VwcG9ydGVkIGJ5IHRoaXMgSEFMCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXVpZCBpZGVudGlmaWVzIHRoZSBjcnlwdG8gc2NoZW1lIGluIHF1ZXN0aW9uCisgICAgICogQHJldHVybiBpc1N1cHBvcnRlZCBtdXN0IGJlIHRydWUgb25seSBpZiB0aGUgc2NoZW1lIGlzIHN1cHBvcnRlZAorICAgICAqLworICAgIGlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKHVpbnQ4X3RbMTZdIHV1aWQpIGdlbmVyYXRlcyhib29sIGlzU3VwcG9ydGVkKTsKKworICAgIC8qKgorICAgICAqIERldGVybWluZSBpZiB0aGUgSEFMIGZhY3RvcnkgaXMgYWJsZSB0byBjb25zdHJ1Y3QgcGx1Z2lucyB0aGF0IHN1cHBvcnQgYQorICAgICAqIGdpdmVuIG1lZGlhIGNvbnRhaW5lciBmb3JtYXQgc3BlY2lmaWVkIGJ5IG1pbWVUeXBlCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWltZVR5cGUgaWRlbnRpZmllcyB0aGUgbWltZSB0eXBlIGluIHF1ZXN0aW9uCisgICAgICogQHJldHVybiBpc1N1cHBvcnRlZCBtdXN0IGJlIHRydWUgb25seSBpZiB0aGUgc2NoZW1lIGlzIHN1cHBvcnRlZAorICAgICAqLworICAgIGlzQ29udGVudFR5cGVTdXBwb3J0ZWQoc3RyaW5nIG1pbWVUeXBlKSBnZW5lcmF0ZXMoYm9vbCBpc1N1cHBvcnRlZCk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBkcm0gcGx1Z2luIGluc3RhbmNlIGZvciB0aGUgc3BlY2lmaWVkIHV1aWQgYW5kIHNjaGVtZS1zcGVjaWZpYworICAgICAqIGluaXRpYWxpemF0aW9uIGRhdGEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXVpZCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBkcm0gc2NoZW1lLiBTZWUKKyAgICAgKiBodHRwOi8vZGFzaGlmLm9yZy9pZGVudGlmaWVycy9wcm90ZWN0aW9uIGZvciB1dWlkIGFzc2lnbm1lbnRzCisgICAgICogQHBhcmFtIGFwcFBhY2thZ2VOYW1lIGlkZW50aWZpZXMgdGhlIHBhY2thZ2UgbmFtZSBvZiB0aGUgY2FsbGluZworICAgICAqIGFwcGxpY2F0aW9uLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBIQUwgaW1wbGVtZW50YXRpb24gbXVzdCByZXR1cm4KKyAgICAgKiBPSyBpZiB0aGUgcGx1Z2luIGlzIGNyZWF0ZWQgYW5kIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwbHVnaW4KKyAgICAgKiBjYW5ub3QgYmUgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBjcmVhdGVQbHVnaW4odWludDhfdFsxNl0gdXVpZCwgc3RyaW5nIGFwcFBhY2thZ2VOYW1lKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBJRHJtUGx1Z2luIGRybVBsdWdpbik7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9JRHJtUGx1Z2luLmhhbCBiL2RybS8xLjAvSURybVBsdWdpbi5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdiMDgzMgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvSURybVBsdWdpbi5oYWwKQEAgLTAsMCArMSw1NDIgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitpbXBvcnQgSURybVBsdWdpbkxpc3RlbmVyOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9kcm0vRHJtQVBJLmg6RHJtUGx1Z2luCisgKgorICogSURybVBsdWdpbiBpcyB1c2VkIHRvIGludGVyYWN0IHdpdGggYSBzcGVjaWZpYyBkcm0gcGx1Z2luIHRoYXQgd2FzCisgKiBjcmVhdGVkIGJ5IElEcm06OmNyZWF0ZVBsdWdpbi4gQSBkcm0gcGx1Z2luIHByb3ZpZGVzIG1ldGhvZHMgZm9yCisgKiBvYnRhaW5pbmcgZHJtIGtleXMgdGhhdCBtYXkgYmUgdXNlZCBieSBhIGNvZGVjIHRvIGRlY3J5cHQgcHJvdGVjdGVkCisgKiB2aWRlbyBjb250ZW50LgorICovCitpbnRlcmZhY2UgSURybVBsdWdpbiB7CisKKyAgICAvKioKKyAgICAgKiBPcGVuIGEgbmV3IHNlc3Npb24gd2l0aCB0aGUgRHJtUGx1Z2luIG9iamVjdC4gQSBzZXNzaW9uIElEIGlzIHJldHVybmVkCisgICAgICogaW4gdGhlIHNlc3Npb25JZCBwYXJhbWV0ZXIuCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fTk9UX1BST1ZJU0lPTkVEIGlmIHRoZSBkZXZpY2UgcmVxdWlyZXMKKyAgICAgKiBwcm92aXNpb25pbmcgYmVmb3JlIGl0IGNhbiBvcGVuIGEgc2Vzc2lvbiwgRVJST1JfRFJNX1JFU09VUkNFX0JVU1kgaWYKKyAgICAgKiB0aGVyZSBhcmUgaW5zdWZmaWNlbnQgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBvcGVuIGEgc2Vzc2lvbiwKKyAgICAgKiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgaWYgb3BlblNlc3Npb24gaXMgbm90IHN1cHBvcnRlZCBhdCB0aGUgdGltZSBvZgorICAgICAqIHRoZSBjYWxsIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSBhCisgICAgICogc2Vzc2lvbiBjYW5ub3QgYmUgb3BlbmVkLgorICAgICAqIEByZXR1cm4gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIElEIGZvciB0aGUgbmV3bHkgb3BlbmVkIHNlc3Npb24KKyAgICAgKi8KKyAgICBvcGVuU2Vzc2lvbigpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgU2Vzc2lvbklkIHNlc3Npb25JZCk7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZSBhIHNlc3Npb24gb24gdGhlIERybVBsdWdpbiBvYmplY3QKKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuICBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgdGhlIHNlc3Npb25JZCBpcyBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFCisgICAgICogaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBzZXNzaW9uIGNhbm5vdCBiZSBjbG9zZWQuCisgICAgICovCisgICAgY2xvc2VTZXNzaW9uKFNlc3Npb25JZCBzZXNzaW9uSWQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBBIGtleSByZXF1ZXN0L3Jlc3BvbnNlIGV4Y2hhbmdlIG9jY3VycyBiZXR3ZWVuIHRoZSBhcHAgYW5kIGEgTGljZW5zZQorICAgICAqIFNlcnZlciB0byBvYnRhaW4gdGhlIGtleXMgcmVxdWlyZWQgdG8gZGVjcnlwdCB0aGUgY29udGVudC4KKyAgICAgKiBnZXRLZXlSZXF1ZXN0KCkgaXMgdXNlZCB0byBvYnRhaW4gYW4gb3BhcXVlIGtleSByZXF1ZXN0IGJsb2IgdGhhdCBpcworICAgICAqIGRlbGl2ZXJlZCB0byB0aGUgbGljZW5zZSBzZXJ2ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2NvcGUgbWF5IGJlIGEgc2Vzc2lvbklkIG9yIGEga2V5U2V0SWQsIGRlcGVuZGluZyBvbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQga2V5VHlwZS4gV2hlbiB0aGUga2V5VHlwZSBpcyBPRkZMSU5FIG9yIFNUUkVBTUlORywKKyAgICAgKiBzY29wZSBzaG91bGQgYmUgc2V0IHRvIHRoZSBzZXNzaW9uSWQgdGhlIGtleXMgd2lsbCBiZSBwcm92aWRlZCB0by4KKyAgICAgKiBXaGVuIHRoZSBrZXlUeXBlIGlzIFJFTEVBU0UsIHNjb3BlIHNob3VsZCBiZSBzZXQgdG8gdGhlIGtleVNldElkCisgICAgICogb2YgdGhlIGtleXMgYmVpbmcgcmVsZWFzZWQuCisgICAgICogQHBhcmFtIGluaXREYXRhIGNvbnRhaW5lci1zcGVjaWZpYyBkYXRhLCBpdHMgbWVhbmluZyBpcyBpbnRlcnByZXRlZAorICAgICAqIGJhc2VkIG9uIHRoZSBtaW1lIHR5cGUgcHJvdmlkZWQgaW4gdGhlIG1pbWVUeXBlIHBhcmFtZXRlci4gSXQgY291bGQKKyAgICAgKiBjb250YWluLCBmb3IgZXhhbXBsZSwgdGhlIGNvbnRlbnQgSUQsIGtleSBJRCBvciBvdGhlciBkYXRhIG9idGFpbmVkCisgICAgICogZnJvbSB0aGUgY29udGVudCBtZXRhZGF0YSB0aGF0IGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoZSBrZXkgcmVxdWVzdC4KKyAgICAgKiBpbml0RGF0YSBtYXkgYmUgZW1wdHkgd2hlbiBrZXlUeXBlIGlzIFJFTEVBU0UuCisgICAgICogQHBhcmFtIG1pbWVUeXBlIGlkZW50aWZpZXMgdGhlIG1pbWUgdHlwZSBvZiB0aGUgY29udGVudAorICAgICAqIEBwYXJhbSBrZXlUeXBlIHNwZWNpZmllcyBpZiB0aGUga2V5cyBhcmUgdG8gYmUgdXNlZCBmb3Igc3RyZWFtaW5nLAorICAgICAqIG9mZmxpbmUgb3IgYSByZWxlYXNlCisgICAgICogQHBhcmFtIG9wdGlvbmFsUGFyYW1ldGVycyBpbmNsdWRlZCBpbiB0aGUga2V5IHJlcXVlc3QgbWVzc2FnZSB0bworICAgICAqIGFsbG93IGEgY2xpZW50IGFwcGxpY2F0aW9uIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBtZXNzYWdlIHBhcmFtZXRlcnMgdG8KKyAgICAgKiB0aGUgc2VydmVyLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEVSUk9SX0RSTV9OT1RfUFJPVklTSU9ORUQgaWYgdGhlIGRldmljZSByZXF1aXJlcyBwcm92aXNpb25pbmcKKyAgICAgKiBiZWZvcmUgaXQgY2FuIGdlbmVyYXRlIGEga2V5IHJlcXVlc3QsIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmCisgICAgICogZ2V0S2V5UmVxdWVzdCBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsLCBCQURfVkFMVUUgaWYgYW55CisgICAgICogcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUKKyAgICAgKiB3aGVyZSBhIGtleSByZXF1ZXN0IGNhbm5vdCBiZSBnZW5lcmF0ZWQuCisgICAgICogQHJldHVybiByZXF1ZXN0IGlmIHN1Y2Nlc3NmdWwsIHRoZSBvcGFxdWUga2V5IHJlcXVlc3QgYmxvYiBpcyByZXR1cm5lZAorICAgICAqIEByZXR1cm4gcmVxdWVzdFR5cGUgaW5kaWNhdGVzIHR5cGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJldHVybmVkCisgICAgICogcmVxdWVzdC4gVGhlIHR5cGUgbWF5IGJlIG9uZSBvZiBJTklUSUFMLCBSRU5FV0FMIG9yIFJFTEVBU0UuIEFuCisgICAgICogSU5JVElBTCByZXF1ZXN0IGlzIHRoZSBmaXJzdCBrZXkgcmVxdWVzdCBmb3IgYSBsaWNlbnNlLiBSRU5FV0FMIGlzIGEKKyAgICAgKiBzdWJzZXF1ZW50IGtleSByZXF1ZXN0IHVzZWQgdG8gcmVmcmVzaCB0aGUga2V5cyBpbiBhIGxpY2Vuc2UuIFJFTEVBU0UKKyAgICAgKiBjb3JyZXNwb25kcyB0byBhIGtleVR5cGUgb2YgUkVMRUFTRSwgd2hpY2ggaW5kaWNhdGVzIGtleXMgYXJlIGJlaW5nCisgICAgICogcmVsZWFzZWQuCisgICAgICogQHJldHVybiBkZWZhdWx0VXJsIHRoZSBVUkwgdGhhdCB0aGUgcmVxdWVzdCBtYXkgYmUgc2VudCB0bywgaWYKKyAgICAgKiBwcm92aWRlZCBieSB0aGUgZHJtIEhBTC4gVGhlIGFwcCBtYXkgY2hvb3NlIHRvIG92ZXJyaWRlIHRoaXMKKyAgICAgKiBVUkwuCisgICAgICovCisgICAgZ2V0S2V5UmVxdWVzdCh2ZWM8dWludDhfdD4gc2NvcGUsIHZlYzx1aW50OF90PiBpbml0RGF0YSwKKyAgICAgICAgICAgIHN0cmluZyBtaW1lVHlwZSwgS2V5VHlwZSBrZXlUeXBlLCBLZXllZFZlY3RvciBvcHRpb25hbFBhcmFtZXRlcnMpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHJlcXVlc3QsCisgICAgICAgICAgICAgICAgS2V5UmVxdWVzdFR5cGUgcmVxdWVzdFR5cGUsIHN0cmluZyBkZWZhdWx0VXJsKTsKKworICAgIC8qKgorICAgICAqIEFmdGVyIGEga2V5IHJlc3BvbnNlIGlzIHJlY2VpdmVkIGJ5IHRoZSBhcHAsIGl0IGlzIHByb3ZpZGVkIHRvIHRoZQorICAgICAqIERybSBwbHVnaW4gdXNpbmcgcHJvdmlkZUtleVJlc3BvbnNlLgorICAgICAqCisgICAgICogQHBhcmFtIHNjb3BlIG1heSBiZSBhIHNlc3Npb25JZCBvciBhIGtleVNldElkIGRlcGVuZGluZyBvbiB0aGUgdHlwZQorICAgICAqIG9mIHRoZSByZXNwb25zZS4gU2NvcGUgc2hvdWxkIGJlIHNldCB0byB0aGUgc2Vzc2lvbklkIHdoZW4gdGhlIHJlc3BvbnNlCisgICAgICogaXMgZm9yIGVpdGhlciBzdHJlYW1pbmcgb3Igb2ZmbGluZSBrZXkgcmVxdWVzdHMuIFNjb3BlIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgKiB0aGUga2V5U2V0SWQgd2hlbiB0aGUgcmVzcG9uc2UgaXMgZm9yIGEgcmVsZWFzZSByZXF1ZXN0LgorICAgICAqIEBwYXJhbSByZXNwb25zZSB0aGUgcmVzcG9uc2UgZnJvbSB0aGUga2V5IHNlcnZlciB0aGF0IGlzIGJlaW5nCisgICAgICogcHJvdmlkZWQgdG8gdGhlIGRybSBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiAgVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdAorICAgICAqIG9wZW5lZCwgRVJST1JfRFJNX05PVF9QUk9WSVNJT05FRCBpZiB0aGUgZGV2aWNlIHJlcXVpcmVzIHByb3Zpc2lvbmluZworICAgICAqIGJlZm9yZSBpdCBjYW4gaGFuZGxlIHRoZSBrZXkgcmVzcG9uc2UsIEVSUk9SX0RSTV9ERVZJQ0VfUkVWT0tFRCBpZiB0aGUKKyAgICAgKiBkZXZpY2UgaGFzIGJlZW4gZGlzYWJsZWQgYnkgdGhlIGxpY2Vuc2UgcG9saWN5LCBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRQorICAgICAqIGlmIHByb3ZpZGVLZXlSZXNwb25zZSBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsLCBCQURfVkFMVUUKKyAgICAgKiBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzCisgICAgICogaW4gYSBzdGF0ZSB3aGVyZSBhIGtleSByZXNwb25zZSBjYW5ub3QgYmUgaGFuZGxlZC4KKyAgICAgKiBAcmV0dXJuIGtleVNldElkIHdoZW4gdGhlIHJlc3BvbnNlIGlzIGZvciBhbiBvZmZsaW5lIGtleSByZXF1ZXN0LCBhCisgICAgICoga2V5U2V0SWQgaXMgcmV0dXJuZWQgaW4gdGhlIGtleVNldElkIHZlY3RvciBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgdXNlZAorICAgICAqIHRvIGxhdGVyIHJlc3RvcmUgdGhlIGtleXMgdG8gYSBuZXcgc2Vzc2lvbiB3aXRoIHRoZSBtZXRob2QgcmVzdG9yZUtleXMuCisgICAgICogV2hlbiB0aGUgcmVzcG9uc2UgaXMgZm9yIGEgc3RyZWFtaW5nIG9yIHJlbGVhc2UgcmVxdWVzdCwgbm8ga2V5U2V0SWQgaXMKKyAgICAgKiByZXR1cm5lZC4KKyAgICAgKi8KKyAgICBwcm92aWRlS2V5UmVzcG9uc2UodmVjPHVpbnQ4X3Q+IHNjb3BlLCB2ZWM8dWludDhfdD4gcmVzcG9uc2UpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IGtleVNldElkKTsKKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgY3VycmVudCBrZXlzIGZyb20gYSBzZXNzaW9uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiAgVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdAorICAgICAqIG9wZW5lZCwgQkFEX1ZBTFVFIGlmIHRoZSBzZXNzaW9uSWQgaXMgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUga2V5cyBjYW5ub3QgYmUgcmVtb3ZlZC4KKyAgICAgKi8KKyAgICByZW1vdmVLZXlzKFNlc3Npb25JZCBzZXNzaW9uSWQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZXN0b3JlIHBlcnNpc3RlZCBvZmZsaW5lIGtleXMgaW50byBhIG5ldyBzZXNzaW9uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0ga2V5U2V0SWQgaWRlbnRpZmllcyB0aGUga2V5cyB0byBsb2FkLCBvYnRhaW5lZCBmcm9tIGEgcHJpb3IKKyAgICAgKiBjYWxsIHRvIHByb3ZpZGVLZXlSZXNwb25zZSgpLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSBrZXlzIGNhbm5vdCBiZSByZXN0b3JlZC4KKyAgICAgKi8KKyAgICByZXN0b3JlS2V5cyhTZXNzaW9uSWQgc2Vzc2lvbklkLAorICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGtleVNldElkKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmVxdWVzdCBhbiBpbmZvcm1hdGl2ZSBkZXNjcmlwdGlvbiBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIHNlc3Npb24uIFRoZQorICAgICAqIHN0YXR1cyBpcyBpbiB0aGUgZm9ybSBvZiB7bmFtZSwgdmFsdWV9IHBhaXJzLiBTaW5jZSBEUk0gbGljZW5zZSBwb2xpY2llcworICAgICAqIHZhcnkgYnkgdmVuZG9yLCB0aGUgc3BlY2lmaWMgc3RhdHVzIGZpZWxkIG5hbWVzIGFyZSBkZXRlcm1pbmVkIGJ5IGVhY2gKKyAgICAgKiBEUk0gdmVuZG9yLiBSZWZlciB0byB5b3VyIERSTSBwcm92aWRlciBkb2N1bWVudGF0aW9uIGZvciBkZWZpbml0aW9ucyBvZgorICAgICAqIHRoZSBmaWVsZCBuYW1lcyBmb3IgYSBwYXJ0aWN1bGFyIGRybSBzY2hlbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgdGhlIHNlc3Npb25JZCBpcyBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFCisgICAgICogaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIGtleSBzdGF0dXMgY2Fubm90IGJlIHF1ZXJpZWQuCisgICAgICogQHJldHVybiBpbmZvTGlzdCBhIGxpc3Qgb2YgbmFtZSB2YWx1ZSBwYWlycyBkZXNjcmliaW5nIHRoZSBsaWNlbnNlCisgICAgICovCisgICAgcXVlcnlLZXlTdGF0dXMoU2Vzc2lvbklkIHNlc3Npb25JZCkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBLZXllZFZlY3RvciBpbmZvTGlzdCk7CisKKyAgICAvKioKKyAgICAgKiBBIHByb3Zpc2lvbiByZXF1ZXN0L3Jlc3BvbnNlIGV4Y2hhbmdlIG9jY3VycyBiZXR3ZWVuIHRoZSBhcHAgYW5kIGEKKyAgICAgKiBwcm92aXNpb25pbmcgc2VydmVyIHRvIHJldHJpZXZlIGEgZGV2aWNlIGNlcnRpZmljYXRlLiBnZXRQcm92aXNpb25SZXF1ZXN0CisgICAgICogaXMgdXNlZCB0byBvYnRhaW4gYW4gb3BhcXVlIHByb3Zpc2lvbmluZyByZXF1ZXN0IGJsb2IgdGhhdCBpcyBkZWxpdmVyZWQKKyAgICAgKiB0byB0aGUgcHJvdmlzaW9uaW5nIHNlcnZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjZXJ0aWZpY2F0ZVR5cGUgdGhlIHR5cGUgb2YgY2VydGlmaWNhdGUgcmVxdWVzdGVkLCBlLmcuICJYLjUwOSIKKyAgICAgKiBAcGFyYW0gY2VydGlmaWNhdGVBdXRob3JpdHkgaWRlbnRpZmllcyB0aGUgY2VydGlmaWNhdGUgYXV0aG9yaXR5LiBBCisgICAgICogY2VydGlmaWNhdGUgYXV0aG9yaXR5IChDQSkgaXMgYW4gZW50aXR5IHdoaWNoIGlzc3VlcyBkaWdpdGFsIGNlcnRpZmljYXRlcworICAgICAqIGZvciB1c2UgYnkgb3RoZXIgcGFydGllcy4gSXQgaXMgYW4gZXhhbXBsZSBvZiBhIHRydXN0ZWQgdGhpcmQgcGFydHkuCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSBpZiB0aGUgZHJtIHNjaGVtZSBkb2VzIG5vdAorICAgICAqIHJlcXVpcmUgcHJvdmlzaW9uaW5nIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZQorICAgICAqIHdoZXJlIHRoZSBwcm92aXNpb24gcmVxdWVzdCBjYW5ub3QgYmUgZ2VuZXJhdGVkLgorICAgICAqIEByZXR1cm4gcmVxdWVzdCBpZiBzdWNjZXNzZnVsIHRoZSBvcGFxdWUgY2VydGlmaWNhdGUgcmVxdWVzdCBibG9iCisgICAgICogaXMgcmV0dXJuZWQKKyAgICAgKiBAcmV0dXJuIGRlZmF1bHRVcmwgVVJMIHRoYXQgdGhlIHByb3Zpc2lvbmluZyByZXF1ZXN0IHNob3VsZCBiZQorICAgICAqIHNlbnQgdG8sIGlmIGtub3duIGJ5IHRoZSBIQUwgaW1wbGVtZW50YXRpb24uICBJZiB0aGUgSEFMIGltcGxlbWVudGF0aW9uCisgICAgICogZG9lcyBub3QgcHJvdmlkZSBhIGRlZmF1bHRVcmwsIHRoZSByZXR1cm5lZCBzdHJpbmcgbXVzdCBiZSBlbXB0eS4KKyAgICAgKi8KKyAgICBnZXRQcm92aXNpb25SZXF1ZXN0KHN0cmluZyBjZXJ0aWZpY2F0ZVR5cGUsIHN0cmluZyBjZXJ0aWZpY2F0ZUF1dGhvcml0eSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCB2ZWM8dWludDhfdD4gcmVxdWVzdCwgc3RyaW5nIGRlZmF1bHRVcmwpOworCisgICAgLyoqCisgICAgICogQWZ0ZXIgYSBwcm92aXNpb24gcmVzcG9uc2UgaXMgcmVjZWl2ZWQgYnkgdGhlIGFwcCBmcm9tIGEgcHJvdmlzaW9uaW5nCisgICAgICogc2VydmVyLCBpdCBpcyBwcm92aWRlZCB0byB0aGUgRHJtIEhBTCB1c2luZyBwcm92aWRlUHJvdmlzaW9uUmVzcG9uc2UuCisgICAgICogVGhlIEhBTCBpbXBsZW1lbnRhdGlvbiBtdXN0IHJlY2VpdmUgdGhlIHByb3Zpc2lvbiByZXF1ZXN0IGFuZAorICAgICAqIHN0b3JlIHRoZSBwcm92aXNpb25lZCBjcmVkZW50aWFscy4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXNwb25zZSB0aGUgb3BhcXVlIHByb3Zpc2lvbmluZyByZXNwb25zZSByZWNlaXZlZCBieSB0aGUKKyAgICAgKiBhcHAgZnJvbSBhIHByb3Zpc2lvbmluZyBzZXJ2ZXIuCisKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9ERVZJQ0VfUkVWT0tFRCBpZiB0aGUgZGV2aWNlIGhhcyBiZWVuCisgICAgICogZGlzYWJsZWQgYnkgdGhlIGxpY2Vuc2UgcG9saWN5LCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQKKyAgICAgKiBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHByb3Zpc2lvbgorICAgICAqIHJlc3BvbnNlIGNhbm5vdCBiZSBoYW5kbGVkLgorICAgICAqIEByZXR1cm4gY2VydGlmaWNhdGUgdGhlIHB1YmxpYyBjZXJ0aWZpY2F0ZSByZXN1bHRpbmcgZnJvbSB0aGUgcHJvdmlzaW9uaW5nCisgICAgICogb3BlcmF0aW9uLCBpZiBhbnkuIEFuIGVtcHR5IHZlY3RvciBpbmRpY2F0ZXMgdGhhdCBubyBjZXJ0aWZpY2F0ZSB3YXMKKyAgICAgKiByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHdyYXBwZWRLZXkgYW4gb3BhcXVlIG9iamVjdCBjb250YWluaW5nIGVuY3J5cHRlZCBwcml2YXRlIGtleQorICAgICAqIG1hdGVyaWFsIHRvIGJlIHVzZWQgYnkgc2lnblJTQSB3aGVuIGNvbXB1dGluZyBhbiBSU0Egc2lnbmF0dXJlIG9uIGEKKyAgICAgKiBtZXNzYWdlLCBzZWUgdGhlIHNpZ25SU0EgbWV0aG9kLgorICAgICAqLworICAgIHByb3ZpZGVQcm92aXNpb25SZXNwb25zZSh2ZWM8dWludDhfdD4gcmVzcG9uc2UpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIHZlYzx1aW50OF90PiBjZXJ0aWZpY2F0ZSwgdmVjPHVpbnQ4X3Q+IHdyYXBwZWRLZXkpOworCisgICAgLyoqCisgICAgICogU2VjdXJlU3RvcCBpcyBhIHdheSBvZiBlbmZvcmNpbmcgdGhlIGNvbmN1cnJlbnQgc3RyZWFtIGxpbWl0IHBlcgorICAgICAqIHN1YnNjcmliZXIuIEl0IGNhbiBzZWN1cmVseSBtb25pdG9yIHRoZSBsaWZldGltZSBvZiBzZXNzaW9ucyBhY3Jvc3MKKyAgICAgKiBkZXZpY2UgcmVib290cyBieSBwZXJpb2RpY2FsbHkgcGVyc2lzdGluZyB0aGUgc2Vzc2lvbiBsaWZldGltZQorICAgICAqIHN0YXR1cyBpbiBzZWN1cmUgc3RvcmFnZS4KKyAgICAgKgorICAgICAqIEEgc2lnbmVkIHZlcnNpb24gb2YgdGhlIHNlc3Npb25JRCBpcyB3cml0dGVuIHRvIHBlcnNpc3RlbnQgc3RvcmFnZSBvbiB0aGUKKyAgICAgKiBkZXZpY2Ugd2hlbiBlYWNoIE1lZGlhQ3J5cHRvIG9iamVjdCBpcyBjcmVhdGVkIGFuZCBwZXJpb2RpY2FsbHkgZHVyaW5nCisgICAgICogcGxheWJhY2suIFRoZSBzZXNzaW9uSUQgaXMgc2lnbmVkIGJ5IHRoZSBkZXZpY2UgcHJpdmF0ZSBrZXkgdG8gcHJldmVudAorICAgICAqIHRhbXBlcmluZy4KKyAgICAgKgorICAgICAqIFdoZW4gcGxheWJhY2sgaXMgY29tcGxldGVkIHRoZSBzZXNzaW9uIGlzIGRlc3Ryb3llZCwgYW5kIHRoZSBzZWN1cmUKKyAgICAgKiBzdG9wcyBhcmUgcXVlcmllZCBieSB0aGUgYXBwLiBUaGUgYXBwIHRoZW4gZGVsaXZlcnMgdGhlIHNlY3VyZSBzdG9wCisgICAgICogbWVzc2FnZSB0byBhIHNlcnZlciB3aGljaCB2ZXJpZmllcyB0aGUgc2lnbmF0dXJlIHRvIGNvbmZpcm0gdGhhdCB0aGUKKyAgICAgKiBzZXNzaW9uIGFuZCBpdHMga2V5cyBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBkZXZpY2UuIFRoZSBwZXJzaXN0ZWQKKyAgICAgKiByZWNvcmQgb24gdGhlIGRldmljZSBpcyByZW1vdmVkIGFmdGVyIHJlY2VpdmluZyBhbmQgdmVyaWZ5aW5nIHRoZQorICAgICAqIHNpZ25lZCByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBHZXQgYWxsIHNlY3VyZSBzdG9wcyBvbiB0aGUgZGV2aWNlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHNlY3VyZSBzdG9wcworICAgICAqIGNhbm5vdCBiZSByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHNlY3VyZVN0b3BzIGEgbGlzdCBvZiB0aGUgc2VjdXJlIHN0b3Agb3BhcXVlIG9iamVjdHMKKyAgICAgKi8KKyAgICBnZXRTZWN1cmVTdG9wcygpIGdlbmVyYXRlcworICAgICAgICAoU3RhdHVzIHN0YXR1cywgdmVjPFNlY3VyZVN0b3A+IHNlY3VyZVN0b3BzKTsKKworICAgIC8qKgorICAgICAqIEdldCBhbGwgc2VjdXJlIHN0b3BzIGJ5IHNlY3VyZSBzdG9wIElECisgICAgICoKKyAgICAgKiBAcGFyYW0gc2VjdXJlU3RvcElkIHRoZSBJRCBvZiB0aGUgc2VjdXJlIHN0b3AgdG8gcmV0dXJuLiBUaGUKKyAgICAgKiBzZWN1cmUgc3RvcCBJRCBpcyBkZWxpdmVyZWQgYnkgdGhlIGtleSBzZXJ2ZXIgYXMgcGFydCBvZiB0aGUga2V5CisgICAgICogcmVzcG9uc2UgYW5kIG11c3QgYWxzbyBiZSBrbm93biBieSB0aGUgYXBwLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBCQURfVkFMVUUgaWYgdGhlIHNlY3VyZVN0b3BJZCBpcyBpbnZhbGlkIG9yCisgICAgICogRVJST1JfRFJNX0lOVkFMSURfU1RBVEUgaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBzZWN1cmUgc3RvcAorICAgICAqIGNhbm5vdCBiZSByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHNlY3VyZVN0b3AgdGhlIHNlY3VyZSBzdG9wIG9wYXF1ZSBvYmplY3QKKyAgICAgKi8KKworICAgIGdldFNlY3VyZVN0b3AoU2VjdXJlU3RvcElkIHNlY3VyZVN0b3BJZCkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBTZWN1cmVTdG9wIHNlY3VyZVN0b3ApOworCisgICAgLyoqCisgICAgICogUmVsZWFzZSBhbGwgc2VjdXJlIHN0b3BzIG9uIHRoZSBkZXZpY2UKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgc2VjdXJlCisgICAgICogc3RvcHMgY2Fubm90IGJlIHJlbGVhc2VkLgorICAgICAqLworICAgIHJlbGVhc2VBbGxTZWN1cmVTdG9wcygpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGEgc2VjdXJlIHN0b3AgYnkgc2VjdXJlIHN0b3AgSUQKKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWN1cmVTdG9wSWQgdGhlIElEIG9mIHRoZSBzZWN1cmUgc3RvcCB0byByZWxlYXNlLiBUaGUKKyAgICAgKiBzZWN1cmUgc3RvcCBJRCBpcyBkZWxpdmVyZWQgYnkgdGhlIGtleSBzZXJ2ZXIgYXMgcGFydCBvZiB0aGUga2V5CisgICAgICogcmVzcG9uc2UgYW5kIG11c3QgYWxzbyBiZSBrbm93biBieSB0aGUgYXBwLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBCQURfVkFMVUUgaWYgdGhlIHNlY3VyZVN0b3BJZCBpcyBpbnZhbGlkIG9yCisgICAgICogRVJST1JfRFJNX0lOVkFMSURfU1RBVEUgaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBzZWN1cmUgc3RvcAorICAgICAqIGNhbm5vdCBiZSByZWxlYXNlZC4KKyAgICAgKi8KKyAgICByZWxlYXNlU2VjdXJlU3RvcCh2ZWM8dWludDhfdD4gc2VjdXJlU3RvcElkKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQSBkcm0gc2NoZW1lIGNhbiBoYXZlIHByb3BlcnRpZXMgdGhhdCBhcmUgc2V0dGFibGUgYW5kIHJlYWRhYmxlCisgICAgICogYnkgYW4gYXBwLiBUaGVyZSBhcmUgYSBmZXcgZm9ybXMgb2YgcHJvcGVydHkgYWNjZXNzIG1ldGhvZHMsCisgICAgICogZGVwZW5kaW5nIG9uIHRoZSBkYXRhIHR5cGUgb2YgdGhlIHByb3BlcnR5LgorICAgICAqCisgICAgICogUHJvcGVydHkgdmFsdWVzIGRlZmluZWQgYnkgdGhlIHB1YmxpYyBBUEkgYXJlOgorICAgICAqICAgInZlbmRvciIgW3N0cmluZ10gaWRlbnRpZmllcyB0aGUgbWFrZXIgb2YgdGhlIGRybSBzY2hlbWUKKyAgICAgKiAgICJ2ZXJzaW9uIiBbc3RyaW5nXSBpZGVudGlmaWVzIHRoZSB2ZXJzaW9uIG9mIHRoZSBkcm0gc2NoZW1lCisgICAgICogICAiZGVzY3JpcHRpb24iIFtzdHJpbmddIGRlc2NyaWJlcyB0aGUgZHJtIHNjaGVtZQorICAgICAqICAgJ2RldmljZVVuaXF1ZUlkJyBbYnl0ZSBhcnJheV0gVGhlIGRldmljZSB1bmlxdWUgaWRlbnRpZmllciBpcworICAgICAqICAgZXN0YWJsaXNoZWQgZHVyaW5nIGRldmljZSBwcm92aXNpb25pbmcgYW5kIHByb3ZpZGVzIGEgbWVhbnMgb2YKKyAgICAgKiAgIHVuaXF1ZWx5IGlkZW50aWZ5aW5nIGVhY2ggZGV2aWNlLgorICAgICAqCisgICAgICogU2luY2UgZHJtIHNjaGVtZSBwcm9wZXJ0aWVzIG1heSB2YXJ5LCBhZGRpdGlvbmFsIGZpZWxkIG5hbWVzIG1heSBiZQorICAgICAqIGRlZmluZWQgYnkgZWFjaCBEUk0gdmVuZG9yLiBSZWZlciB0byB5b3VyIERSTSBwcm92aWRlciBkb2N1bWVudGF0aW9uCisgICAgICogZm9yIGRlZmluaXRpb25zIG9mIGl0cyBhZGRpdGlvbmFsIGZpZWxkIG5hbWVzLgorICAgICAqLworCisgICAgLyoqCisgICAgICogUmVhZCBhIHN0cmluZyBwcm9wZXJ0eSB2YWx1ZSBnaXZlbiB0aGUgcHJvcGVydHkgbmFtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5CisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBCQURfVkFMVUUgaWYgdGhlIHByb3BlcnR5IG5hbWUgaXMgaW52YWxpZCwKKyAgICAgKiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSBpZiB0aGUgcHJvcGVydHkgaXMgbm90IHN1cHBvcnRlZCwgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHByb3BlcnR5CisgICAgICogY2Fubm90IGJlIG9idGFpbmVkLgorICAgICAqIEByZXR1cm4gdmFsdWUgdGhlIHByb3BlcnR5IHZhbHVlIHN0cmluZworICAgICAqLworICAgIGdldFByb3BlcnR5U3RyaW5nKHN0cmluZyBwcm9wZXJ0eU5hbWUpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgc3RyaW5nIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFJlYWQgYSBieXRlIGFycmF5IHByb3BlcnR5IHZhbHVlIGdpdmVuIHRoZSBwcm9wZXJ0eSBuYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5TmFtZSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEJBRF9WQUxVRSBpZiB0aGUgcHJvcGVydHkgbmFtZSBpcyBpbnZhbGlkLAorICAgICAqIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc3VwcG9ydGVkLCBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgcHJvcGVydHkKKyAgICAgKiBjYW5ub3QgYmUgb2J0YWluZWQuCisgICAgICogQHJldHVybiB2YWx1ZSB0aGUgcHJvcGVydHkgdmFsdWUgYnl0ZSBhcnJheQorICAgICAqLworICAgIGdldFByb3BlcnR5Qnl0ZUFycmF5KHN0cmluZyBwcm9wZXJ0eU5hbWUpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFdyaXRlIGEgcHJvcGVydHkgc3RyaW5nIHZhbHVlIGdpdmVuIHRoZSBwcm9wZXJ0eSBuYW1lCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gd3JpdGUKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEJBRF9WQUxVRSBpZiB0aGUgcHJvcGVydHkgbmFtZSBpcyBpbnZhbGlkLAorICAgICAqIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc3VwcG9ydGVkLCBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgcHJvcGVydHkKKyAgICAgKiBjYW5ub3QgYmUgc2V0LgorICAgICAqLworICAgIHNldFByb3BlcnR5U3RyaW5nKHN0cmluZyBwcm9wZXJ0eU5hbWUsIHN0cmluZyB2YWx1ZSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFdyaXRlIGEgcHJvcGVydHkgYnl0ZSBhcnJheSB2YWx1ZSBnaXZlbiB0aGUgcHJvcGVydHkgbmFtZQorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5TmFtZSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIHdyaXRlCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBCQURfVkFMVUUgaWYgdGhlIHByb3BlcnR5IG5hbWUgaXMgaW52YWxpZCwKKyAgICAgKiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSBpZiB0aGUgcHJvcGVydHkgaXMgbm90IHN1cHBvcnRlZCwgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHByb3BlcnR5CisgICAgICogY2Fubm90IGJlIHNldC4KKyAgICAgKi8KKyAgICBzZXRQcm9wZXJ0eUJ5dGVBcnJheShzdHJpbmcgcHJvcGVydHlOYW1lLCB2ZWM8dWludDhfdD4gdmFsdWUgKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhlIGZvbGxvd2luZyBtZXRob2RzIGltcGxlbWVudCBvcGVyYXRpb25zIG9uIGEgQ3J5cHRvU2Vzc2lvbiB0byBzdXBwb3J0CisgICAgICogZW5jcnlwdCwgZGVjcnlwdCwgc2lnbiB2ZXJpZnkgb3BlcmF0aW9ucyBvbiBvcGVyYXRvci1wcm92aWRlZAorICAgICAqIHNlc3Npb24ga2V5cy4KKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2lwaGVyIGFsZ29yaXRobSB0byBiZSB1c2VkIGZvciB0aGUgc3BlY2lmaWVkIHNlc3Npb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0gYWxnb3JpdGhtIHRoZSBhbGdvcml0aG0gdG8gdXNlLiBUaGUgc3RyaW5nIGNvbmZvcm1zIHRvIEpDQQorICAgICAqIFN0YW5kYXJkIE5hbWVzIGZvciBDaXBoZXIgVHJhbnNmb3JtcyBhbmQgaXMgY2FzZSBpbnNlbnNpdGl2ZS4gQW4KKyAgICAgKiBleGFtcGxlIGFsZ29yaXRobSBpcyAiQUVTL0NCQy9QS0NTNVBhZGRpbmciLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgYWxnb3JpdGhtIGNhbm5vdCBiZSBzZXQuCisgICAgICovCisgICAgc2V0Q2lwaGVyQWxnb3JpdGhtKFNlc3Npb25JZCBzZXNzaW9uSWQsIHN0cmluZyBhbGdvcml0aG0pCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIE1BQyBhbGdvcml0aG0gdG8gYmUgdXNlZCBmb3IgY29tcHV0aW5nIGhhc2hlcyBpbiBhIHNlc3Npb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0gYWxnb3JpdGhtIHRoZSBhbGdvcml0aG0gdG8gdXNlLiBUaGUgc3RyaW5nIGNvbmZvcm1zIHRvIEpDQQorICAgICAqIFN0YW5kYXJkIE5hbWVzIGZvciBNYWMgQWxnb3JpdGhtcyBhbmQgaXMgY2FzZSBpbnNlbnNpdGl2ZS4gQW4gZXhhbXBsZSBNQUMKKyAgICAgKiBhbGdvcml0aG0gc3RyaW5nIGlzICJIbWFjU0hBMjU2Ii4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mIHRoZQorICAgICAqIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIGFsZ29yaXRobSBjYW5ub3QgYmUgc2V0LgorICAgICAqLworICAgIHNldE1hY0FsZ29yaXRobShTZXNzaW9uSWQgc2Vzc2lvbklkLCBzdHJpbmcgYWxnb3JpdGhtKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogRW5jcnlwdCB0aGUgcHJvdmlkZWQgaW5wdXQgYnVmZmVyIHdpdGggdGhlIGNpcGhlciBhbGdvcml0aG0gc3BlY2lmaWVkIGJ5CisgICAgICogc2V0Q2lwaGVyQWxnb3JpdGhtIGFuZCB0aGUga2V5IHNlbGVjdGVkIGJ5IGtleUlkLCBhbmQgcmV0dXJuIHRoZQorICAgICAqIGVuY3J5cHRlZCBkYXRhLgorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCB0aGUgc2Vzc2lvbiBpZCB0aGUgY2FsbCBhcHBsaWVzIHRvCisgICAgICogQHBhcmFtIGtleUlkIHRoZSBJRCBvZiB0aGUga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGlvbgorICAgICAqIEBwYXJhbSBpbnB1dCB0aGUgaW5wdXQgZGF0YSB0byBlbmNyeXB0CisgICAgICogQHBhcmFtIGl2IHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgdG8gdXNlIGZvciBlbmNyeXB0aW9uCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZiB0aGUKKyAgICAgKiBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdCBvcGVuZWQsCisgICAgICogQkFEX1ZBTFVFIGlmIGFueSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFCisgICAgICogaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBlbmNyeXB0IG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkLgorICAgICAqIEByZXR1cm4gb3V0cHV0IHRoZSBkZWNyeXB0ZWQgZGF0YQorICAgICAqLworICAgIGVuY3J5cHQoU2Vzc2lvbklkIHNlc3Npb25JZCwgdmVjPHVpbnQ4X3Q+IGtleUlkLCB2ZWM8dWludDhfdD4gaW5wdXQsCisgICAgICAgICAgICB2ZWM8dWludDhfdD4gaXYpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IG91dHB1dCk7CisKKyAgICAvKioKKyAgICAgKiBEZWNyeXB0IHRoZSBwcm92aWRlZCBpbnB1dCBidWZmZXIgd2l0aCB0aGUgY2lwaGVyIGFsZ29yaXRobQorICAgICAqIHNwZWNpZmllZCBieSBzZXRDaXBoZXJBbGdvcml0aG0gYW5kIHRoZSBrZXkgc2VsZWN0ZWQgYnkga2V5SWQsCisgICAgICogYW5kIHJldHVybiB0aGUgZGVjcnlwdGVkIGRhdGEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0ga2V5SWQgdGhlIElEIG9mIHRoZSBrZXkgdG8gdXNlIGZvciBkZWNyeXB0aW9uCisgICAgICogQHBhcmFtIGlucHV0IHRoZSBpbnB1dCBkYXRhIHRvIGRlY3J5cHQKKyAgICAgKiBAcGFyYW0gaXYgdGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciB0byB1c2UgZm9yIGRlY3J5cHRpb24KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIGRlY3J5cHQgb3BlcmF0aW9uIGNhbm5vdCBiZQorICAgICAqIHBlcmZvcm1lZC4KKyAgICAgKiBAcmV0dXJuIG91dHB1dCB0aGUgZGVjcnlwdGVkIGRhdGEKKyAgICAgKi8KKyAgICBkZWNyeXB0KFNlc3Npb25JZCBzZXNzaW9uSWQsIHZlYzx1aW50OF90PiBrZXlJZCwgdmVjPHVpbnQ4X3Q+IGlucHV0LAorICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGl2KSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHZlYzx1aW50OF90PiBvdXRwdXQpOworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIHNpZ25hdHVyZSBvdmVyIHRoZSBwcm92aWRlZCBtZXNzYWdlIHVzaW5nIHRoZSBtYWMgYWxnb3JpdGhtCisgICAgICogc3BlY2lmaWVkIGJ5IHNldE1hY0FsZ29yaXRobSBhbmQgdGhlIGtleSBzZWxlY3RlZCBieSBrZXlJZCBhbmQgcmV0dXJuCisgICAgICogdGhlIHNpZ25hdHVyZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEBwYXJhbSBrZXlJZCB0aGUgSUQgb2YgdGhlIGtleSB0byB1c2UgZm9yIGRlY3J5cHRpb24KKyAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSB0byBjb21wdXRlIGEgc2lnbmF0dXJlIG92ZXIKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHNpZ24gb3BlcmF0aW9uIGNhbm5vdCBiZQorICAgICAqIHBlcmZvcm1lZC4KKyAgICAgKiBAcmV0dXJuIHNpZ25hdHVyZSB0aGUgY29tcHV0ZWQgc2lnbmF0dXJlCisgICAgICovCisgICAgc2lnbihTZXNzaW9uSWQgc2Vzc2lvbklkLCB2ZWM8dWludDhfdD4ga2V5SWQsIHZlYzx1aW50OF90PiBtZXNzYWdlKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHZlYzx1aW50OF90PiBzaWduYXR1cmUpOworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2ggb2YgdGhlIHByb3ZpZGVkIG1lc3NhZ2UgdXNpbmcgdGhlIG1hYyBhbGdvcml0aG0gc3BlY2lmaWVkCisgICAgICogYnkgc2V0TWFjQWxnb3JpdGhtIGFuZCB0aGUga2V5IHNlbGVjdGVkIGJ5IGtleUlkLCBhbmQgY29tcGFyZSB3aXRoIHRoZQorICAgICAqIGV4cGVjdGVkIHJlc3VsdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEBwYXJhbSBrZXlJZCB0aGUgSUQgb2YgdGhlIGtleSB0byB1c2UgZm9yIGRlY3J5cHRpb24KKyAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSB0byBjb21wdXRlIGEgaGFzaCBvZgorICAgICAqIEBwYXJhbSBzaWduYXR1cmUgdGhlIHNpZ25hdHVyZSB0byB2ZXJpZnkKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHZlcmlmeSBvcGVyYXRpb24gY2Fubm90IGJlCisgICAgICogcGVyZm9ybWVkLgorICAgICAqIEByZXR1cm4gbWF0Y2ggdHJ1ZSBpZiB0aGUgc2lnbmF0dXJlIGlzIHZlcmlmaWVkIHBvc2l0aXZlbHksCisgICAgICogZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHZlcmlmeShTZXNzaW9uSWQgc2Vzc2lvbklkLCB2ZWM8dWludDhfdD4ga2V5SWQsIHZlYzx1aW50OF90PiBtZXNzYWdlLAorICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBib29sIG1hdGNoKTsKKworICAgIC8qKgorICAgICAqIENvbXB1dGUgYW4gUlNBIHNpZ25hdHVyZSBvbiB0aGUgcHJvdmlkZWQgbWVzc2FnZSB1c2luZyB0aGUgc3BlY2lmaWVkCisgICAgICogYWxnb3JpdGhtLgorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCB0aGUgc2Vzc2lvbiBpZCB0aGUgY2FsbCBhcHBsaWVzIHRvCisgICAgICogQHBhcmFtIGFsZ29yaXRobSB0aGUgc2lnbmluZyBhbGdvcml0aG0sIHN1Y2ggYXMgIlJTQVNTQS1QU1MtU0hBMSIKKyAgICAgKiBvciAiUEtDUzEtQmxvY2tUeXBlMSIKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSB0byBjb21wdXRlIHRoZSBzaWduYXR1cmUgb24KKyAgICAgKiBAcGFyYW0gd3JhcHBlZEtleSB0aGUgcHJpdmF0ZSBrZXkgcmV0dXJuZWQgZHVyaW5nIHByb3Zpc2lvbmluZyBhcworICAgICAqIHJldHVybmVkIGJ5IHByb3ZpZGVQcm92aXNpb25SZXNwb25zZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMKKyAgICAgKiBub3Qgb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHNpZ25SU0EKKyAgICAgKiBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZC4KKyAgICAgKiBAcmV0dXJuIHNpZ25hdHVyZSB0aGUgUlNBIHNpZ25hdHVyZSBjb21wdXRlZCBvdmVyIHRoZSBtZXNzYWdlCisgICAgICovCisgICAgc2lnblJTQShTZXNzaW9uSWQgc2Vzc2lvbklkLCBzdHJpbmcgYWxnb3JpdGhtLCB2ZWM8dWludDhfdD4gbWVzc2FnZSwKKyAgICAgICAgdmVjPHVpbnQ4X3Q+IHdyYXBwZWRrZXkpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSk7CisKKyAgICAvKioKKyAgICAgKiBQbHVnaW5zIGNhbGwgdGhlIGZvbGxvd2luZyBtZXRob2RzIHRvIGRlbGl2ZXIgZXZlbnRzIHRvIHRoZQorICAgICAqIGphdmEgYXBwLgorICAgICAqLworCisgICAgLyoqCisgICAgICogU2V0IGEgbGlzdGVuZXIgZm9yIGEgZHJtIHNlc3Npb24uIFRoaXMgYWxsb3dzIHRoZSBkcm0gSEFMIHRvCisgICAgICogbWFrZSBhc3luY2hyb25vdXMgY2FsbHMgYmFjayB0byB0aGUgY2xpZW50IG9mIElEcm0uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgaW5zdGFuY2Ugb2YgSURybVBsdWdpbkxpc3RlbmVyIHRvIHJlY2VpdmUgdGhlIGV2ZW50cworICAgICAqLworICAgIHNldExpc3RlbmVyKElEcm1QbHVnaW5MaXN0ZW5lciBsaXN0ZW5lcik7CisKKyAgICAvKioKKyAgICAgKiBMZWdhY3kgZXZlbnQgc2VuZGluZyBtZXRob2QsIGl0IHNlbmRzIGV2ZW50cyBvZiB2YXJpb3VzIHR5cGVzIHVzaW5nIGEKKyAgICAgKiBzaW5nbGUgb3ZlcmxvYWRlZCBzZXQgb2YgcGFyYW1ldGVycy4gVGhpcyBmb3JtIGlzIGRlcHJlY2F0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnRUeXBlIHRoZSB0eXBlIG9mIHRoZSBldmVudAorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGRhdGEgZXZlbnQtc3BlY2lmaWMgZGF0YSBibG9iCisgICAgICovCisgICAgc2VuZEV2ZW50KEV2ZW50VHlwZSBldmVudFR5cGUsIFNlc3Npb25JZCBzZXNzaW9uSWQsIHZlYzx1aW50OF90PiBkYXRhKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBsaWNlbnNlIGV4cGlyYXRpb24gdXBkYXRlIHRvIHRoZSBsaXN0ZW5lci4gVGhlIGV4cGlyYXRpb24KKyAgICAgKiB1cGRhdGUgaW5kaWNhdGVzIGhvdyBsb25nIHRoZSBjdXJyZW50IGxpY2Vuc2UgaXMgdmFsaWQgYmVmb3JlIGl0CisgICAgICogbmVlZHMgdG8gYmUgcmVuZXdlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGV4cGlyeVRpbWVJbk1TIHRoZSB0aW1lIHdoZW4gdGhlIGtleXMgbmVlZCB0byBiZSByZW5ld2VkLgorICAgICAqIFRoZSB0aW1lIGlzIGluIG1pbGxpc2Vjb25kcywgcmVsYXRpdmUgdG8gdGhlIFVuaXggZXBvY2guIEEgdGltZSBvZiAwCisgICAgICogaW5kaWNhdGVzIHRoYXQgdGhlIGtleXMgbmV2ZXIgZXhwaXJlLgorICAgICAqLworICAgICBzZW5kRXhwaXJhdGlvblVwZGF0ZShTZXNzaW9uSWQgc2Vzc2lvbklkLCBpbnQ2NF90IGV4cGlyeVRpbWVJbk1TKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBrZXlzIGNoYW5nZSBldmVudCB0byB0aGUgbGlzdGVuZXIuIFRoZSBrZXlzIGNoYW5nZSBldmVudAorICAgICAqIGluZGljYXRlcyB0aGUgc3RhdHVzIG9mIGVhY2gga2V5IGluIHRoZSBzZXNzaW9uLiBLZXlzIGNhbiBiZQorICAgICAqIGluZGljYXRlZCBhcyBiZWluZyB1c2FibGUsIGV4cGlyZWQsIG91dHB1dG5vdGFsbG93ZWQgb3Igc3RhdHVzcGVuZGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGtleVN0YXR1c0xpc3QgaW5kaWNhdGVzIHRoZSBzdGF0dXMgZm9yIGVhY2gga2V5IElEIGluIHRoZQorICAgICAqIHNlc3Npb24uCisgICAgICogQHBhcmFtIGhhc05ld1VzYWJsZUtleSBpbmRpY2F0ZXMgaWYgdGhlIGV2ZW50IGluY2x1ZGVzIGF0IGxlYXN0IG9uZQorICAgICAqIGtleSB0aGF0IGhhcyBiZWNvbWUgdXNhYmxlLgorICAgICAqLworICAgIHNlbmRLZXlzQ2hhbmdlKFNlc3Npb25JZCBzZXNzaW9uSWQsIHZlYzxLZXlTdGF0dXM+IGtleVN0YXR1c0xpc3QsCisgICAgICAgICAgICBib29sIGhhc05ld1VzYWJsZUtleSk7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9JRHJtUGx1Z2luTGlzdGVuZXIuaGFsIGIvZHJtLzEuMC9JRHJtUGx1Z2luTGlzdGVuZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1Y2UwMDgKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL0lEcm1QbHVnaW5MaXN0ZW5lci5oYWwKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjp0eXBlczsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvZHJtL0RybUFQSS5oOkRybVBsdWdpbkxpc3RlbmVyCisgKi8KKworLyoqCisgKiBJRHJtUGx1Z2luTGlzdGVuZXIgaXMgYSBsaXN0ZW5lciBpbnRlcmZhY2UgZm9yIERybSBldmVudHMgc2VudCBmcm9tIGFuCisgKiBJRHJtUGx1Z2luIGluc3RhbmNlLgorICovCitpbnRlcmZhY2UgSURybVBsdWdpbkxpc3RlbmVyIHsKKworICAgIC8qKgorICAgICAqIExlZ2FjeSBldmVudCBzZW5kaW5nIG1ldGhvZCwgaXQgc2VuZHMgZXZlbnRzIG9mIHZhcmlvdXMgdHlwZXMgdXNpbmcgYQorICAgICAqIHNpbmdsZSBvdmVybG9hZGVkIHNldCBvZiBwYXJhbWV0ZXJzLiBUaGlzIGZvcm0gaXMgZGVwcmVjYXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBldmVudFR5cGUgdGhlIHR5cGUgb2YgdGhlIGV2ZW50CisgICAgICogQHBhcmFtIHNlc3Npb25JZCBpZGVudGlmaWVzIHRoZSBzZXNzaW9uIHRoZSBldmVudCBvcmlnaW5hdGVkIGZyb20KKyAgICAgKiBAcGFyYW0gZGF0YSBldmVudC1zcGVjaWZpYyBkYXRhIGJsb2IKKyAgICAgKi8KKyAgICBvbmV3YXkgc2VuZEV2ZW50KEV2ZW50VHlwZSBldmVudFR5cGUsIFNlc3Npb25JZCBzZXNzaW9uSWQsCisgICAgICAgICAgICB2ZWM8dWludDhfdD4gZGF0YSk7CisKKyAgICAvKioKKyAgICAgKiBTZW5kIGEgbGljZW5zZSBleHBpcmF0aW9uIHVwZGF0ZSB0byB0aGUgbGlzdGVuZXIuIFRoZSBleHBpcmF0aW9uCisgICAgICogdXBkYXRlIGluZGljYXRlcyBob3cgbG9uZyB0aGUgY3VycmVudCBrZXlzIGFyZSB2YWxpZCBiZWZvcmUgdGhleQorICAgICAqIG5lZWQgdG8gYmUgcmVuZXdlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGV4cGlyeVRpbWVJbk1TIHRoZSB0aW1lIHdoZW4gdGhlIGtleXMgbmVlZCB0byBiZSByZW5ld2VkLgorICAgICAqIFRoZSB0aW1lIGlzIGluIG1pbGxpc2Vjb25kcywgcmVsYXRpdmUgdG8gdGhlIFVuaXggZXBvY2guIEEgdGltZQorICAgICAqIG9mIDAgaW5kaWNhdGVzIHRoYXQgdGhlIGtleXMgbmV2ZXIgZXhwaXJlLgorICAgICAqLworICAgIG9uZXdheSBzZW5kRXhwaXJhdGlvblVwZGF0ZShTZXNzaW9uSWQgc2Vzc2lvbklkLCBpbnQ2NF90IGV4cGlyeVRpbWVJbk1TKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBrZXlzIGNoYW5nZSBldmVudCB0byB0aGUgbGlzdGVuZXIuIFRoZSBrZXlzIGNoYW5nZSBldmVudAorICAgICAqIGluZGljYXRlcyB0aGUgc3RhdHVzIG9mIGVhY2gga2V5IGluIHRoZSBzZXNzaW9uLiBLZXlzIGNhbiBiZQorICAgICAqIGluZGljYXRlZCBhcyBiZWluZyB1c2FibGUsIGV4cGlyZWQsIG91dHB1dG5vdGFsbG93ZWQgb3Igc3RhdHVzcGVuZGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGtleVN0YXR1c0xpc3QgaW5kaWNhdGVzIHRoZSBzdGF0dXMgZm9yIGVhY2gga2V5IElEIGluIHRoZQorICAgICAqIHNlc3Npb24uCisgICAgICogQHBhcmFtIGhhc05ld1VzYWJsZUtleSBpbmRpY2F0ZXMgaWYgdGhlIGV2ZW50IGluY2x1ZGVzIGF0IGxlYXN0IG9uZQorICAgICAqIGtleSB0aGF0IGhhcyBiZWNvbWUgdXNhYmxlLgorICAgICAqLworICAgIG9uZXdheSBzZW5kS2V5c0NoYW5nZShTZXNzaW9uSWQgc2Vzc2lvbklkLCB2ZWM8S2V5U3RhdHVzPiBrZXlTdGF0dXNMaXN0LAorICAgICAgICAgICAgYm9vbCBoYXNOZXdVc2FibGVLZXkpOworfTsKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvZHJtLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMwNWRhOAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsOTAgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworIyMjIyMjIyMjIyMjIyBCdWlsZCBsZWdhY3kgZHJtIHNlcnZpY2UgIyMjIyMjIyMjIyMjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wIFwKKyAgYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAgXAorICBsaWJoaWRsYmFzZSBcCisgIGxpYmhpZGx0cmFuc3BvcnQgXAorICBsaWJoYXJkd2FyZSBcCisgIGxpYmxvZyBcCisgIGxpYnV0aWxzIFwKKyAgbGliYmluZGVyIFwKKworTE9DQUxfQ19JTkNMVURFUyA6PSBcCisgIGhhcmR3YXJlL2ludGVyZmFjZXMvZHJtCisKKyMgVE9ETyhiLzE4OTQ4OTA5KSBTb21lIGxlZ2FjeSBEUk0gcGx1Z2lucyBvbmx5IHN1cHBvcnQgMzItYml0LiBUaGV5IG5lZWQgdG8gYmUKKyMgbWlncmF0ZWQgdG8gNjQtYml0LiBPbmNlIGFsbCBvZiBhIGRldmljZSdzIGxlZ2FjeSBEUk0gcGx1Z2lucyBzdXBwb3J0IDY0LWJpdCwKKyMgdGhhdCBkZXZpY2UgY2FuIHR1cm4gb24gVEFSR0VUX0VOQUJMRV9NRURJQURSTV82NCB0byBidWlsZCB0aGlzIHNlcnZpY2UgYXMKKyMgNjQtYml0LgoraWZuZXEgKCQoVEFSR0VUX0VOQUJMRV9NRURJQURSTV82NCksIHRydWUpCitMT0NBTF8zMl9CSVRfT05MWSA6PSB0cnVlCitlbmRpZgorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKKworIyMjIyMjIyMjIyMjIyBCdWlsZCBsZWdhY3kgZHJtIGltcGwgbGlicmFyeSAjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBEcm1GYWN0b3J5LmNwcCBcCisgICAgRHJtUGx1Z2luLmNwcCBcCisgICAgQ3J5cHRvRmFjdG9yeS5jcHAgXAorICAgIENyeXB0b1BsdWdpbi5jcHAgXAorICAgIExlZ2FjeVBsdWdpblBhdGguY3BwIFwKKyAgICBUeXBlQ29udmVydC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAgXAorICAgIGFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsbWVtb3J5IFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYm1lZGlhZHJtIFwKKyAgICBsaWJzdGFnZWZyaWdodF9mb3VuZGF0aW9uIFwKKyAgICBsaWJ1dGlscyBcCisKK0xPQ0FMX0NfSU5DTFVERVMgOj0gXAorICAgIGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUgXAorICAgIGZyYW1ld29ya3MvYXYvaW5jbHVkZQorCisjIFRPRE86IFNvbWUgbGVnYWN5IERSTSBwbHVnaW5zIG9ubHkgc3VwcG9ydCAzMi1iaXQuIFRoZXkgbmVlZCB0byBiZSBtaWdyYXRlZCB0bworIyA2NC1iaXQuIChiLzE4OTQ4OTA5KSBPbmNlIGFsbCBvZiBhIGRldmljZSdzIGxlZ2FjeSBEUk0gcGx1Z2lucyBzdXBwb3J0IDY0LWJpdCwKKyMgdGhhdCBkZXZpY2UgY2FuIHR1cm4gb24gVEFSR0VUX0VOQUJMRV9NRURJQURSTV82NCB0byBidWlsZCB0aGlzIGltcGwgYXMKKyMgNjQtYml0LgoraWZuZXEgKCQoVEFSR0VUX0VOQUJMRV9NRURJQURSTV82NCksIHRydWUpCitMT0NBTF8zMl9CSVRfT05MWSA6PSB0cnVlCitlbmRpZgorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvRmFjdG9yeS5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvRmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FhYjgzYgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5LmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLWltcGwiCisKKyNpbmNsdWRlICJDcnlwdG9GYWN0b3J5LmgiCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgIkNyeXB0b1BsdWdpbi5oIgorI2luY2x1ZGUgIkxlZ2FjeVBsdWdpblBhdGguaCIKKyNpbmNsdWRlICJUeXBlQ29udmVydC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisgICAgQ3J5cHRvRmFjdG9yeTo6Q3J5cHRvRmFjdG9yeSgpIDoKKyAgICAgICAgbG9hZGVyKGdldERybVBsdWdpblBhdGgoKSwgImNyZWF0ZUNyeXB0b0ZhY3RvcnkiKSB7CisgICAgfQorCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SUNyeXB0b0ZhY3RvcnkgZm9sbG93LgorICAgIFJldHVybjxib29sPiBDcnlwdG9GYWN0b3J5Ojppc0NyeXB0b1NjaGVtZVN1cHBvcnRlZCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiB1dWlkKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbG9hZGVyLmZhY3RvcnlDb3VudCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChsb2FkZXIuZ2V0RmFjdG9yeShpKS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQodXVpZC5kYXRhKCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBDcnlwdG9GYWN0b3J5OjpjcmVhdGVQbHVnaW4oY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIHV1aWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5pdERhdGEsIGNyZWF0ZVBsdWdpbl9jYiBfaGlkbF9jYikgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxvYWRlci5mYWN0b3J5Q291bnQoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAobG9hZGVyLmdldEZhY3RvcnkoaSktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKHV1aWQuZGF0YSgpKSkgeworICAgICAgICAgICAgICAgIGFuZHJvaWQ6OkNyeXB0b1BsdWdpbiAqbGVnYWN5UGx1Z2luID0gTlVMTDsKKyAgICAgICAgICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBsb2FkZXIuZ2V0RmFjdG9yeShpKS0+Y3JlYXRlUGx1Z2luKHV1aWQuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5pdERhdGEuZGF0YSgpLCBpbml0RGF0YS5zaXplKCksICZsZWdhY3lQbHVnaW4pOworICAgICAgICAgICAgICAgIENyeXB0b1BsdWdpbiAqbmV3UGx1Z2luID0gTlVMTDsKKyAgICAgICAgICAgICAgICBpZiAobGVnYWN5UGx1Z2luID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIkNyeXB0byBsZWdhY3kgSEFMOiBmYWlsZWQgdG8gY3JlYXRlIGNyeXB0byBwbHVnaW4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBuZXdQbHVnaW4gPSBuZXcgQ3J5cHRvUGx1Z2luKGxlZ2FjeVBsdWdpbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIG5ld1BsdWdpbik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBJQ3J5cHRvRmFjdG9yeSogSElETF9GRVRDSF9JQ3J5cHRvRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgICAgIHJldHVybiBuZXcgQ3J5cHRvRmFjdG9yeSgpOworICAgIH0KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b0ZhY3RvcnkuaCBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEyYjU1NwotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5LmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT0ZBQ1RPUllfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19DUllQVE9GQUNUT1JZX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8bWVkaWEvaGFyZHdhcmUvQ3J5cHRvQVBJLmg+CisjaW5jbHVkZSA8bWVkaWEvUGx1Z2luTG9hZGVyLmg+CisjaW5jbHVkZSA8bWVkaWEvU2hhcmVkTGlicmFyeS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9GYWN0b3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IENyeXB0b0ZhY3RvcnkgOiBwdWJsaWMgSUNyeXB0b0ZhY3RvcnkgeworICAgIENyeXB0b0ZhY3RvcnkoKTsKKyAgICB2aXJ0dWFsIH5DcnlwdG9GYWN0b3J5KCkge30KKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9GYWN0b3J5IGZvbGxvdy4KKworICAgIFJldHVybjxib29sPiBpc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgdXVpZCkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZVBsdWdpbihjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgdXVpZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbml0RGF0YSwgY3JlYXRlUGx1Z2luX2NiIF9oaWRsX2NiKQorICAgICAgICAgICAgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgYW5kcm9pZDo6UGx1Z2luTG9hZGVyPGFuZHJvaWQ6OkNyeXB0b0ZhY3Rvcnk+IGxvYWRlcjsKKworICAgIENyeXB0b0ZhY3RvcnkoY29uc3QgQ3J5cHRvRmFjdG9yeSAmKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBDcnlwdG9GYWN0b3J5ICYpID0gZGVsZXRlOworfTsKKworZXh0ZXJuICJDIiBJQ3J5cHRvRmFjdG9yeSogSElETF9GRVRDSF9JQ3J5cHRvRmFjdG9yeShjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT0ZBQ1RPUllfSApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b1BsdWdpbi5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvUGx1Z2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTE4NjFhCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b1BsdWdpbi5jcHAKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAtaW1wbCIKKworI2luY2x1ZGUgIkNyeXB0b1BsdWdpbi5oIgorI2luY2x1ZGUgIlR5cGVDb252ZXJ0LmgiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG1lZGlhL3N0YWdlZnJpZ2h0L2ZvdW5kYXRpb24vQVN0cmluZy5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnk7Cit1c2luZyBhbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luIGZvbGxvdworICAgIFJldHVybjxib29sPiBDcnlwdG9QbHVnaW46OnJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBtaW1lKSB7CisgICAgICAgIHJldHVybiBtTGVnYWN5UGx1Z2luLT5yZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQobWltZS5jX3N0cigpKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gQ3J5cHRvUGx1Z2luOjpub3RpZnlSZXNvbHV0aW9uKHVpbnQzMl90IHdpZHRoLAorICAgICAgICAgICAgdWludDMyX3QgaGVpZ2h0KSB7CisgICAgICAgIG1MZWdhY3lQbHVnaW4tPm5vdGlmeVJlc29sdXRpb24od2lkdGgsIGhlaWdodCk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gQ3J5cHRvUGx1Z2luOjpzZXRNZWRpYURybVNlc3Npb24oCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkKSB7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhtTGVnYWN5UGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24odG9WZWN0b3Ioc2Vzc2lvbklkKSkpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBDcnlwdG9QbHVnaW46OnNldFNoYXJlZEJ1ZmZlckJhc2UoY29uc3QgaGlkbF9tZW1vcnkmIGJhc2UsCisgICAgICAgICAgICB1aW50MzJfdCBidWZmZXJJZCkgeworICAgICAgICBtU2hhcmVkQnVmZmVyTWFwW2J1ZmZlcklkXSA9IG1hcE1lbW9yeShiYXNlKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gQ3J5cHRvUGx1Z2luOjpkZWNyeXB0KGJvb2wgc2VjdXJlLAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIGtleUlkLAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIGl2LCBNb2RlIG1vZGUsCisgICAgICAgICAgICBjb25zdCBQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLAorICAgICAgICAgICAgY29uc3QgU2hhcmVkQnVmZmVyJiBzb3VyY2UsIHVpbnQ2NF90IG9mZnNldCwKKyAgICAgICAgICAgIGNvbnN0IERlc3RpbmF0aW9uQnVmZmVyJiBkZXN0aW5hdGlvbiwKKyAgICAgICAgICAgIGRlY3J5cHRfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBpZiAobVNoYXJlZEJ1ZmZlck1hcC5maW5kKHNvdXJjZS5idWZmZXJJZCkgPT0gbVNoYXJlZEJ1ZmZlck1hcC5lbmQoKSkgeworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgMCwgInNvdXJjZSBkZWNyeXB0IGJ1ZmZlciBiYXNlIG5vdCBzZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGVzdGluYXRpb24udHlwZSA9PSBCdWZmZXJUeXBlOjpTSEFSRURfTUVNT1JZKSB7CisgICAgICAgICAgICBjb25zdCBTaGFyZWRCdWZmZXImIGRlc3QgPSBkZXN0aW5hdGlvbi5ub25zZWN1cmVNZW1vcnk7CisgICAgICAgICAgICBpZiAobVNoYXJlZEJ1ZmZlck1hcC5maW5kKGRlc3QuYnVmZmVySWQpID09IG1TaGFyZWRCdWZmZXJNYXAuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCAwLCAiZGVzdGluYXRpb24gZGVjcnlwdCBidWZmZXIgYmFzZSBub3Qgc2V0Iik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6TW9kZSBsZWdhY3lNb2RlOworICAgICAgICBzd2l0Y2gobW9kZSkgeworICAgICAgICBjYXNlIE1vZGU6OlVORU5DUllQVEVEOgorICAgICAgICAgICAgbGVnYWN5TW9kZSA9IGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6a01vZGVfVW5lbmNyeXB0ZWQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNb2RlOjpBRVNfQ1RSOgorICAgICAgICAgICAgbGVnYWN5TW9kZSA9IGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6a01vZGVfQUVTX0NUUjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1vZGU6OkFFU19DQkNfQ1RTOgorICAgICAgICAgICAgbGVnYWN5TW9kZSA9IGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6a01vZGVfQUVTX1dWOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTW9kZTo6QUVTX0NCQzoKKyAgICAgICAgICAgIGxlZ2FjeU1vZGUgPSBhbmRyb2lkOjpDcnlwdG9QbHVnaW46OmtNb2RlX0FFU19DQkM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBhbmRyb2lkOjpDcnlwdG9QbHVnaW46OlBhdHRlcm4gbGVnYWN5UGF0dGVybjsKKyAgICAgICAgbGVnYWN5UGF0dGVybi5tRW5jcnlwdEJsb2NrcyA9IHBhdHRlcm4uZW5jcnlwdEJsb2NrczsKKyAgICAgICAgbGVnYWN5UGF0dGVybi5tU2tpcEJsb2NrcyA9IHBhdHRlcm4uc2tpcEJsb2NrczsKKworICAgICAgICBhbmRyb2lkOjpDcnlwdG9QbHVnaW46OlN1YlNhbXBsZSAqbGVnYWN5U3ViU2FtcGxlcyA9CisgICAgICAgICAgICBuZXcgYW5kcm9pZDo6Q3J5cHRvUGx1Z2luOjpTdWJTYW1wbGVbc3ViU2FtcGxlcy5zaXplKCldOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3ViU2FtcGxlcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgbGVnYWN5U3ViU2FtcGxlc1tpXS5tTnVtQnl0ZXNPZkNsZWFyRGF0YQorICAgICAgICAgICAgICAgID0gc3ViU2FtcGxlc1tpXS5udW1CeXRlc09mQ2xlYXJEYXRhOworICAgICAgICAgICAgbGVnYWN5U3ViU2FtcGxlc1tpXS5tTnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEKKyAgICAgICAgICAgICAgICA9IHN1YlNhbXBsZXNbaV0ubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGE7CisgICAgICAgIH0KKworICAgICAgICBBU3RyaW5nIGRldGFpbE1lc3NhZ2U7CisgICAgICAgIHNwPElNZW1vcnk+IHNvdXJjZUJhc2UgPSBtU2hhcmVkQnVmZmVyTWFwW3NvdXJjZS5idWZmZXJJZF07CisKKyAgICAgICAgaWYgKHNvdXJjZS5vZmZzZXQgKyBvZmZzZXQgKyBzb3VyY2Uuc2l6ZSA+IHNvdXJjZUJhc2UtPmdldFNpemUoKSkgeworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgMCwgImludmFsaWQgYnVmZmVyIHNpemUiKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB1aW50OF90ICpiYXNlID0gc3RhdGljX2Nhc3Q8dWludDhfdCAqPgorICAgICAgICAgICAgICAgIChzdGF0aWNfY2FzdDx2b2lkICo+KHNvdXJjZUJhc2UtPmdldFBvaW50ZXIoKSkpOworICAgICAgICB2b2lkICpzcmNQdHIgPSBzdGF0aWNfY2FzdDx2b2lkICo+KGJhc2UgKyBzb3VyY2Uub2Zmc2V0ICsgb2Zmc2V0KTsKKworICAgICAgICB2b2lkICpkZXN0UHRyID0gTlVMTDsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uLnR5cGUgPT0gQnVmZmVyVHlwZTo6U0hBUkVEX01FTU9SWSkgeworICAgICAgICAgICAgY29uc3QgU2hhcmVkQnVmZmVyJiBkZXN0QnVmZmVyID0gZGVzdGluYXRpb24ubm9uc2VjdXJlTWVtb3J5OworICAgICAgICAgICAgc3A8SU1lbW9yeT4gZGVzdEJhc2UgPSBtU2hhcmVkQnVmZmVyTWFwW2Rlc3RCdWZmZXIuYnVmZmVySWRdOworICAgICAgICAgICAgaWYgKGRlc3RCdWZmZXIub2Zmc2V0ICsgZGVzdEJ1ZmZlci5zaXplID4gZGVzdEJhc2UtPmdldFNpemUoKSkgeworICAgICAgICAgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIDAsICJpbnZhbGlkIGJ1ZmZlciBzaXplIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlc3RQdHIgPSBzdGF0aWNfY2FzdDx2b2lkICo+KGJhc2UgKyBkZXN0aW5hdGlvbi5ub25zZWN1cmVNZW1vcnkub2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIGlmIChkZXN0aW5hdGlvbi50eXBlID09IEJ1ZmZlclR5cGU6Ok5BVElWRV9IQU5ETEUpIHsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCAqaGFuZGxlID0gY29uc3RfY2FzdDxuYXRpdmVfaGFuZGxlX3QgKj4oCisgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLnNlY3VyZU1lbW9yeS5nZXROYXRpdmVIYW5kbGUoKSk7CisgICAgICAgICAgICBkZXN0UHRyID0gc3RhdGljX2Nhc3Q8dm9pZCAqPihoYW5kbGUpOworICAgICAgICB9CisgICAgICAgIHNzaXplX3QgcmVzdWx0ID0gbUxlZ2FjeVBsdWdpbi0+ZGVjcnlwdChzZWN1cmUsIGtleUlkLmRhdGEoKSwgaXYuZGF0YSgpLAorICAgICAgICAgICAgICAgIGxlZ2FjeU1vZGUsIGxlZ2FjeVBhdHRlcm4sIHNyY1B0ciwgbGVnYWN5U3ViU2FtcGxlcywKKyAgICAgICAgICAgICAgICBzdWJTYW1wbGVzLnNpemUoKSwgZGVzdFB0ciwgJmRldGFpbE1lc3NhZ2UpOworCisgICAgICAgIGRlbGV0ZVtdIGxlZ2FjeVN1YlNhbXBsZXM7CisKKyAgICAgICAgdWludDMyX3Qgc3RhdHVzOworICAgICAgICB1aW50MzJfdCBieXRlc1dyaXR0ZW47CisKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICBzdGF0dXMgPSBhbmRyb2lkOjpPSzsKKyAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiA9IHJlc3VsdDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IHJlc3VsdDsKKyAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiA9IDA7CisgICAgICAgIH0KKworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCBieXRlc1dyaXR0ZW4sIGRldGFpbE1lc3NhZ2UuY19zdHIoKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkcm0KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9QbHVnaW4uaCBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9QbHVnaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWNjMmFhCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b1BsdWdpbi5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT1BMVUdJTl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT1BMVUdJTl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lDcnlwdG9QbHVnaW4uaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPG1lZGlhL2hhcmR3YXJlL0NyeXB0b0FQSS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OkRlc3RpbmF0aW9uQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpQYXR0ZXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTdWJTYW1wbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBDcnlwdG9QbHVnaW4gOiBwdWJsaWMgSUNyeXB0b1BsdWdpbiB7CisgICAgQ3J5cHRvUGx1Z2luKGFuZHJvaWQ6OkNyeXB0b1BsdWdpbiAqcGx1Z2luKSA6IG1MZWdhY3lQbHVnaW4ocGx1Z2luKSB7fQorCisgICAgfkNyeXB0b1BsdWdpbigpIHtkZWxldGUgbUxlZ2FjeVBsdWdpbjt9CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luCisgICAgLy8gZm9sbG93LgorCisgICAgUmV0dXJuPGJvb2w+IHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudChjb25zdCBoaWRsX3N0cmluZyYgbWltZSkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IG5vdGlmeVJlc29sdXRpb24odWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiBzZXRNZWRpYURybVNlc3Npb24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNldFNoYXJlZEJ1ZmZlckJhc2UoY29uc3QgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkmIGJhc2UsCisgICAgICAgIHVpbnQzMl90IGJ1ZmZlcklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBkZWNyeXB0KGJvb2wgc2VjdXJlLCBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYga2V5SWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgaXYsIE1vZGUgbW9kZSwgY29uc3QgUGF0dGVybiYgcGF0dGVybiwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IFNoYXJlZEJ1ZmZlciYgc291cmNlLAorICAgICAgICAgICAgdWludDY0X3Qgb2Zmc2V0LCBjb25zdCBEZXN0aW5hdGlvbkJ1ZmZlciYgZGVzdGluYXRpb24sCisgICAgICAgICAgICBkZWNyeXB0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBhbmRyb2lkOjpDcnlwdG9QbHVnaW4gKm1MZWdhY3lQbHVnaW47CisgICAgc3RkOjptYXA8dWludDMyX3QsIHNwPElNZW1vcnk+ID4gbVNoYXJlZEJ1ZmZlck1hcDsKKworICAgIENyeXB0b1BsdWdpbigpID0gZGVsZXRlOworICAgIENyeXB0b1BsdWdpbihjb25zdCBDcnlwdG9QbHVnaW4gJikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ3J5cHRvUGx1Z2luICYpID0gZGVsZXRlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT1BMVUdJTl9ICmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvRHJtRmFjdG9yeS5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvRHJtRmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U1ZDk5OAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9Ecm1GYWN0b3J5LmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKK2AgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1pbXBsIgorCisjaW5jbHVkZSAiRHJtRmFjdG9yeS5oIgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlICJEcm1QbHVnaW4uaCIKKyNpbmNsdWRlICJMZWdhY3lQbHVnaW5QYXRoLmgiCisjaW5jbHVkZSAiVHlwZUNvbnZlcnQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworICAgIERybUZhY3Rvcnk6OkRybUZhY3RvcnkoKSA6CisgICAgICAgIGxvYWRlcihnZXREcm1QbHVnaW5QYXRoKCksICJjcmVhdGVEcm1GYWN0b3J5IikgeworICAgIH0KKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1GYWN0b3J5IGZvbGxvdy4KKyAgICBSZXR1cm48Ym9vbD4gRHJtRmFjdG9yeTo6aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQgKAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIHV1aWQpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsb2FkZXIuZmFjdG9yeUNvdW50KCk7IGkrKykgeworICAgICAgICAgICAgaWYgKGxvYWRlci5nZXRGYWN0b3J5KGkpLT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZCh1dWlkLmRhdGEoKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmV0dXJuPGJvb2w+IERybUZhY3Rvcnk6OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQgKAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIG1pbWVUeXBlKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbG9hZGVyLmZhY3RvcnlDb3VudCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChsb2FkZXIuZ2V0RmFjdG9yeShpKS0+aXNDb250ZW50VHlwZVN1cHBvcnRlZChTdHJpbmc4KG1pbWVUeXBlLmNfc3RyKCkpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtRmFjdG9yeTo6Y3JlYXRlUGx1Z2luKGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiB1dWlkLAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIC8qIGFwcFBhY2thZ2VOYW1lICovLCBjcmVhdGVQbHVnaW5fY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxvYWRlci5mYWN0b3J5Q291bnQoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAobG9hZGVyLmdldEZhY3RvcnkoaSktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKHV1aWQuZGF0YSgpKSkgeworICAgICAgICAgICAgICAgIGFuZHJvaWQ6OkRybVBsdWdpbiAqbGVnYWN5UGx1Z2luID0gTlVMTDsKKyAgICAgICAgICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBsb2FkZXIuZ2V0RmFjdG9yeShpKS0+Y3JlYXRlRHJtUGx1Z2luKAorICAgICAgICAgICAgICAgICAgICAgICAgdXVpZC5kYXRhKCksICZsZWdhY3lQbHVnaW4pOworICAgICAgICAgICAgICAgIERybVBsdWdpbiAqbmV3UGx1Z2luID0gTlVMTDsKKyAgICAgICAgICAgICAgICBpZiAobGVnYWN5UGx1Z2luID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIkRybSBsZWdhY3kgSEFMOiBmYWlsZWQgdG8gY3JlYXRlIGRybSBwbHVnaW4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBuZXdQbHVnaW4gPSBuZXcgRHJtUGx1Z2luKGxlZ2FjeVBsdWdpbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIG5ld1BsdWdpbik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBJRHJtRmFjdG9yeSogSElETF9GRVRDSF9JRHJtRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgICAgIHJldHVybiBuZXcgRHJtRmFjdG9yeSgpOworICAgIH0KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0RybUZhY3RvcnkuaCBiL2RybS8xLjAvZGVmYXVsdC9Ecm1GYWN0b3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAwODg0NAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9Ecm1GYWN0b3J5LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0RSTUZBQ1RPUllfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19EUk1GQUNUT1JZX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JRHJtRmFjdG9yeS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8bWVkaWEvZHJtL0RybUFQSS5oPgorI2luY2x1ZGUgPG1lZGlhL1BsdWdpbkxvYWRlci5oPgorI2luY2x1ZGUgPG1lZGlhL1NoYXJlZExpYnJhcnkuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybVBsdWdpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBEcm1GYWN0b3J5IDogcHVibGljIElEcm1GYWN0b3J5IHsKKyAgICBEcm1GYWN0b3J5KCk7CisgICAgdmlydHVhbCB+RHJtRmFjdG9yeSgpIHt9CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtRmFjdG9yeSBmb2xsb3cuCisKKyAgICBSZXR1cm48Ym9vbD4gaXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIHV1aWQpCisgICAgICAgICAgICBvdmVycmlkZTsKKworICAgIFJldHVybjxib29sPiBpc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbnN0IGhpZGxfc3RyaW5nICZtaW1lVHlwZSkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZVBsdWdpbihjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgdXVpZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBhcHBQYWNrYWdlTmFtZSwgY3JlYXRlUGx1Z2luX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBhbmRyb2lkOjpQbHVnaW5Mb2FkZXI8YW5kcm9pZDo6RHJtRmFjdG9yeT4gbG9hZGVyOworCisgICAgRHJtRmFjdG9yeShjb25zdCBEcm1GYWN0b3J5ICYpID0gZGVsZXRlOworICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IERybUZhY3RvcnkgJikgPSBkZWxldGU7Cit9OworCitleHRlcm4gIkMiIElEcm1GYWN0b3J5KiBISURMX0ZFVENIX0lEcm1GYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHJtCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9fRFJNRkFDVE9SWV9ICmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvRHJtUGx1Z2luLmNwcCBiL2RybS8xLjAvZGVmYXVsdC9Ecm1QbHVnaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2OTVlZjcKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvRHJtUGx1Z2luLmNwcApAQCAtMCwwICsxLDQzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1pbXBsIgorCisjaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+CisKKyNpbmNsdWRlICJEcm1QbHVnaW4uaCIKKyNpbmNsdWRlICJUeXBlQ29udmVydC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybVBsdWdpbiBmb2xsb3cuCisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpvcGVuU2Vzc2lvbihvcGVuU2Vzc2lvbl9jYiBfaGlkbF9jYikgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5U2Vzc2lvbklkOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5vcGVuU2Vzc2lvbihsZWdhY3lTZXNzaW9uSWQpOworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMobGVnYWN5U2Vzc2lvbklkKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpjbG9zZVNlc3Npb24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCkgeworICAgICAgICByZXR1cm4gdG9TdGF0dXMobUxlZ2FjeVBsdWdpbi0+Y2xvc2VTZXNzaW9uKHRvVmVjdG9yKHNlc3Npb25JZCkpKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRLZXlSZXF1ZXN0KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzY29wZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbml0RGF0YSwgY29uc3QgaGlkbF9zdHJpbmcmIG1pbWVUeXBlLAorICAgICAgICAgICAgS2V5VHlwZSBrZXlUeXBlLCBjb25zdCBoaWRsX3ZlYzxLZXlWYWx1ZT4mIG9wdGlvbmFsUGFyYW1ldGVycywKKyAgICAgICAgICAgIGdldEtleVJlcXVlc3RfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBhbmRyb2lkOjpPSzsKKworICAgICAgICBhbmRyb2lkOjpEcm1QbHVnaW46OktleVR5cGUgbGVnYWN5S2V5VHlwZTsKKyAgICAgICAgc3dpdGNoKGtleVR5cGUpIHsKKyAgICAgICAgY2FzZSBLZXlUeXBlOjpPRkZMSU5FOgorICAgICAgICAgICAgbGVnYWN5S2V5VHlwZSA9IGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVR5cGVfT2ZmbGluZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleVR5cGU6OlNUUkVBTUlORzoKKyAgICAgICAgICAgIGxlZ2FjeUtleVR5cGUgPSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlUeXBlX1N0cmVhbWluZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleVR5cGU6OlJFTEVBU0U6CisgICAgICAgICAgICBsZWdhY3lLZXlUeXBlID0gYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5VHlwZV9SZWxlYXNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdGF0dXMgPSBhbmRyb2lkOjpCQURfVkFMVUU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBsZWdhY3lSZXF1ZXN0OworICAgICAgICBLZXlSZXF1ZXN0VHlwZSByZXF1ZXN0VHlwZSA9IEtleVJlcXVlc3RUeXBlOjpVTktOT1dOOworICAgICAgICBTdHJpbmc4IGRlZmF1bHRVcmw7CisKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBhbmRyb2lkOjpPSykgeworICAgICAgICAgICAgYW5kcm9pZDo6S2V5ZWRWZWN0b3I8U3RyaW5nOCwgU3RyaW5nOD4gbGVnYWN5T3B0aW9uYWxQYXJhbWV0ZXJzOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcHRpb25hbFBhcmFtZXRlcnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBsZWdhY3lPcHRpb25hbFBhcmFtZXRlcnMuYWRkKFN0cmluZzgob3B0aW9uYWxQYXJhbWV0ZXJzW2ldLmtleS5jX3N0cigpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgob3B0aW9uYWxQYXJhbWV0ZXJzW2ldLnZhbHVlLmNfc3RyKCkpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYW5kcm9pZDo6RHJtUGx1Z2luOjpLZXlSZXF1ZXN0VHlwZSBsZWdhY3lSZXF1ZXN0VHlwZSA9CisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVJlcXVlc3RUeXBlX1Vua25vd247CisKKyAgICAgICAgICAgIHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldEtleVJlcXVlc3QodG9WZWN0b3Ioc2NvcGUpLAorICAgICAgICAgICAgICAgICAgICB0b1ZlY3Rvcihpbml0RGF0YSksIFN0cmluZzgobWltZVR5cGUuY19zdHIoKSksIGxlZ2FjeUtleVR5cGUsCisgICAgICAgICAgICAgICAgICAgIGxlZ2FjeU9wdGlvbmFsUGFyYW1ldGVycywgbGVnYWN5UmVxdWVzdCwgZGVmYXVsdFVybCwKKyAgICAgICAgICAgICAgICAgICAgJmxlZ2FjeVJlcXVlc3RUeXBlKTsKKworICAgICAgICAgICAgc3dpdGNoKGxlZ2FjeVJlcXVlc3RUeXBlKSB7CisgICAgICAgICAgICBjYXNlIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVJlcXVlc3RUeXBlX0luaXRpYWw6CisgICAgICAgICAgICAgICAgcmVxdWVzdFR5cGUgPSBLZXlSZXF1ZXN0VHlwZTo6SU5JVElBTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5UmVxdWVzdFR5cGVfUmVuZXdhbDoKKyAgICAgICAgICAgICAgICByZXF1ZXN0VHlwZSA9IEtleVJlcXVlc3RUeXBlOjpSRU5FV0FMOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlSZXF1ZXN0VHlwZV9SZWxlYXNlOgorICAgICAgICAgICAgICAgIHJlcXVlc3RUeXBlID0gS2V5UmVxdWVzdFR5cGU6OlJFTEVBU0U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVJlcXVlc3RUeXBlX1Vua25vd246CisgICAgICAgICAgICAgICAgcmVxdWVzdFR5cGUgPSBLZXlSZXF1ZXN0VHlwZTo6VU5LTk9XTjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMobGVnYWN5UmVxdWVzdCksIHJlcXVlc3RUeXBlLAorICAgICAgICAgICAgICAgICBkZWZhdWx0VXJsLnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpwcm92aWRlS2V5UmVzcG9uc2UoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNjb3BlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlc3BvbnNlLCBwcm92aWRlS2V5UmVzcG9uc2VfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4ga2V5U2V0SWQ7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPnByb3ZpZGVLZXlSZXNwb25zZSh0b1ZlY3RvcihzY29wZSksCisgICAgICAgICAgICAgICAgdG9WZWN0b3IocmVzcG9uc2UpLCBrZXlTZXRJZCk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhrZXlTZXRJZCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjxTdGF0dXM+IERybVBsdWdpbjo6cmVtb3ZlS2V5cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkKSB7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhtTGVnYWN5UGx1Z2luLT5yZW1vdmVLZXlzKHRvVmVjdG9yKHNlc3Npb25JZCkpKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OnJlc3RvcmVLZXlzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5U2V0SWQpIHsKKyAgICAgICAgc3RhdHVzX3QgbGVnYWN5U3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+cmVzdG9yZUtleXModG9WZWN0b3Ioc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICB0b1ZlY3RvcihrZXlTZXRJZCkpOworICAgICAgICByZXR1cm4gdG9TdGF0dXMobGVnYWN5U3RhdHVzKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpxdWVyeUtleVN0YXR1cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgcXVlcnlLZXlTdGF0dXNfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBhbmRyb2lkOjpLZXllZFZlY3RvcjxTdHJpbmc4LCBTdHJpbmc4PiBsZWdhY3lJbmZvTWFwOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5xdWVyeUtleVN0YXR1cyh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIGxlZ2FjeUluZm9NYXApOworCisgICAgICAgIFZlY3RvcjxLZXlWYWx1ZT4gaW5mb01hcFZlYzsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZWdhY3lJbmZvTWFwLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBLZXlWYWx1ZSBrZXlWYWx1ZVBhaXI7CisgICAgICAgICAgICBrZXlWYWx1ZVBhaXIua2V5ID0gU3RyaW5nOChsZWdhY3lJbmZvTWFwLmtleUF0KGkpKTsKKyAgICAgICAgICAgIGtleVZhbHVlUGFpci52YWx1ZSA9IFN0cmluZzgobGVnYWN5SW5mb01hcC52YWx1ZUF0KGkpKTsKKyAgICAgICAgICAgIGluZm9NYXBWZWMucHVzaF9iYWNrKGtleVZhbHVlUGFpcik7CisgICAgICAgIH0KKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGluZm9NYXBWZWMpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRQcm92aXNpb25SZXF1ZXN0KAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGNlcnRpZmljYXRlVHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjZXJ0aWZpY2F0ZUF1dGhvcml0eSwKKyAgICAgICAgICAgIGdldFByb3Zpc2lvblJlcXVlc3RfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5UmVxdWVzdDsKKyAgICAgICAgU3RyaW5nOCBsZWdhY3lEZWZhdWx0VXJsOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5nZXRQcm92aXNpb25SZXF1ZXN0KAorICAgICAgICAgICAgICAgIFN0cmluZzgoY2VydGlmaWNhdGVUeXBlLmNfc3RyKCkpLCBTdHJpbmc4KGNlcnRpZmljYXRlQXV0aG9yaXR5LmNfc3RyKCkpLAorICAgICAgICAgICAgICAgIGxlZ2FjeVJlcXVlc3QsIGxlZ2FjeURlZmF1bHRVcmwpOworCisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhsZWdhY3lSZXF1ZXN0KSwKKyAgICAgICAgICAgICAgICBoaWRsX3N0cmluZyhsZWdhY3lEZWZhdWx0VXJsKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6cHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlc3BvbnNlLAorICAgICAgICAgICAgcHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlX2NiIF9oaWRsX2NiKSB7CisKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNlcnRpZmljYXRlOworICAgICAgICBWZWN0b3I8dWludDhfdD4gd3JhcHBlZEtleTsKKworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5wcm92aWRlUHJvdmlzaW9uUmVzcG9uc2UoCisgICAgICAgICAgICAgICAgdG9WZWN0b3IocmVzcG9uc2UpLCBjZXJ0aWZpY2F0ZSwgd3JhcHBlZEtleSk7CisKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMobGVnYWN5U3RhdHVzKSwgdG9IaWRsVmVjKGNlcnRpZmljYXRlKSwKKyAgICAgICAgICAgICAgICB0b0hpZGxWZWMod3JhcHBlZEtleSkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OmdldFNlY3VyZVN0b3BzKGdldFNlY3VyZVN0b3BzX2NiIF9oaWRsX2NiKSB7CisgICAgICAgIExpc3Q8VmVjdG9yPHVpbnQ4X3Q+ID4gbGVnYWN5U2VjdXJlU3RvcHM7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldFNlY3VyZVN0b3BzKGxlZ2FjeVNlY3VyZVN0b3BzKTsKKworICAgICAgICBWZWN0b3I8U2VjdXJlU3RvcD4gc2VjdXJlU3RvcHNWZWM7CisgICAgICAgIExpc3Q8VmVjdG9yPHVpbnQ4X3Q+ID46Oml0ZXJhdG9yIGl0ZXIgPSBsZWdhY3lTZWN1cmVTdG9wcy5iZWdpbigpOworCisgICAgICAgIHdoaWxlIChpdGVyICE9IGxlZ2FjeVNlY3VyZVN0b3BzLmVuZCgpKSB7CisgICAgICAgICAgICBTZWN1cmVTdG9wIHNlY3VyZVN0b3A7CisgICAgICAgICAgICBzZWN1cmVTdG9wLm9wYXF1ZURhdGEgPSB0b0hpZGxWZWMoKml0ZXIrKyk7CisgICAgICAgICAgICBzZWN1cmVTdG9wc1ZlYy5wdXNoX2JhY2soc2VjdXJlU3RvcCk7CisgICAgICAgIH0KKworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMoc2VjdXJlU3RvcHNWZWMpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRTZWN1cmVTdG9wKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZWN1cmVTdG9wSWQsCisgICAgICAgICAgICBnZXRTZWN1cmVTdG9wX2NiIF9oaWRsX2NiKSB7CisKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxlZ2FjeVNlY3VyZVN0b3A7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldFNlY3VyZVN0b3AodG9WZWN0b3Ioc2VjdXJlU3RvcElkKSwKKyAgICAgICAgICAgICAgICBsZWdhY3lTZWN1cmVTdG9wKTsKKworICAgICAgICBTZWN1cmVTdG9wIHNlY3VyZVN0b3A7CisgICAgICAgIHNlY3VyZVN0b3Aub3BhcXVlRGF0YSA9IHRvSGlkbFZlYyhsZWdhY3lTZWN1cmVTdG9wKTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgc2VjdXJlU3RvcCk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpyZWxlYXNlQWxsU2VjdXJlU3RvcHMoKSB7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhtTGVnYWN5UGx1Z2luLT5yZWxlYXNlQWxsU2VjdXJlU3RvcHMoKSk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpyZWxlYXNlU2VjdXJlU3RvcCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZWN1cmVTdG9wSWQpIHsKKyAgICAgICAgc3RhdHVzX3QgbGVnYWN5U3RhdHVzID0KKyAgICAgICAgICAgIG1MZWdhY3lQbHVnaW4tPnJlbGVhc2VTZWN1cmVTdG9wcyh0b1ZlY3RvcihzZWN1cmVTdG9wSWQpKTsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKGxlZ2FjeVN0YXR1cyk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6Z2V0UHJvcGVydHlTdHJpbmcoY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGdldFByb3BlcnR5U3RyaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgICAgIFN0cmluZzggbGVnYWN5VmFsdWU7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgICAgIFN0cmluZzgocHJvcGVydHlOYW1lLmNfc3RyKCkpLCBsZWdhY3lWYWx1ZSk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIGxlZ2FjeVZhbHVlLnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRQcm9wZXJ0eUJ5dGVBcnJheShjb25zdCBoaWRsX3N0cmluZyYgcHJvcGVydHlOYW1lLAorICAgICAgICAgICAgZ2V0UHJvcGVydHlCeXRlQXJyYXlfY2IgX2hpZGxfY2IpIHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxlZ2FjeVZhbHVlOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5nZXRQcm9wZXJ0eUJ5dGVBcnJheSgKKyAgICAgICAgICAgICAgICBTdHJpbmc4KHByb3BlcnR5TmFtZS5jX3N0cigpKSwgbGVnYWN5VmFsdWUpOworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMobGVnYWN5VmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OnNldFByb3BlcnR5U3RyaW5nKGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgc3RhdHVzX3QgbGVnYWN5U3RhdHVzID0KKyAgICAgICAgICAgIG1MZWdhY3lQbHVnaW4tPnNldFByb3BlcnR5U3RyaW5nKFN0cmluZzgocHJvcGVydHlOYW1lLmNfc3RyKCkpLAorICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHZhbHVlLmNfc3RyKCkpKTsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKGxlZ2FjeVN0YXR1cyk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpzZXRQcm9wZXJ0eUJ5dGVBcnJheSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgeworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPQorICAgICAgICAgICAgbUxlZ2FjeVBsdWdpbi0+c2V0UHJvcGVydHlCeXRlQXJyYXkoU3RyaW5nOChwcm9wZXJ0eU5hbWUuY19zdHIoKSksCisgICAgICAgICAgICAgICAgICAgIHRvVmVjdG9yKHZhbHVlKSk7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhsZWdhY3lTdGF0dXMpOworICAgIH0KKworICAgIFJldHVybjxTdGF0dXM+IERybVBsdWdpbjo6c2V0Q2lwaGVyQWxnb3JpdGhtKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwgY29uc3QgaGlkbF9zdHJpbmcmIGFsZ29yaXRobSkgeworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPQorICAgICAgICAgICAgbUxlZ2FjeVBsdWdpbi0+c2V0Q2lwaGVyQWxnb3JpdGhtKHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgU3RyaW5nOChhbGdvcml0aG0uY19zdHIoKSkpOworICAgICAgICByZXR1cm4gdG9TdGF0dXMobGVnYWN5U3RhdHVzKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OnNldE1hY0FsZ29yaXRobSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsIGNvbnN0IGhpZGxfc3RyaW5nJiBhbGdvcml0aG0pIHsKKyAgICAgICAgc3RhdHVzX3QgbGVnYWN5U3RhdHVzID0KKyAgICAgICAgICAgIG1MZWdhY3lQbHVnaW4tPnNldE1hY0FsZ29yaXRobSh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIFN0cmluZzgoYWxnb3JpdGhtLmNfc3RyKCkpKTsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKGxlZ2FjeVN0YXR1cyk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6ZW5jcnlwdChjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5wdXQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaXYsIGVuY3J5cHRfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5T3V0cHV0OworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5lbmNyeXB0KHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgdG9WZWN0b3Ioa2V5SWQpLCB0b1ZlY3RvcihpbnB1dCksIHRvVmVjdG9yKGl2KSwgbGVnYWN5T3V0cHV0KTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGxlZ2FjeU91dHB1dCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OmRlY3J5cHQoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGl2LCBkZWNyeXB0X2NiIF9oaWRsX2NiKSB7CisKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxlZ2FjeU91dHB1dDsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+ZGVjcnlwdCh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIHRvVmVjdG9yKGtleUlkKSwgdG9WZWN0b3IoaW5wdXQpLCB0b1ZlY3RvcihpdiksIGxlZ2FjeU91dHB1dCk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhsZWdhY3lPdXRwdXQpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpzaWduKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5SWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBtZXNzYWdlLAorICAgICAgICAgICAgc2lnbl9jYiBfaGlkbF9jYikgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5U2lnbmF0dXJlOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5zaWduKHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgdG9WZWN0b3Ioa2V5SWQpLCB0b1ZlY3RvcihtZXNzYWdlKSwgbGVnYWN5U2lnbmF0dXJlKTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGxlZ2FjeVNpZ25hdHVyZSkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OnZlcmlmeShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgbWVzc2FnZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzaWduYXR1cmUsIHZlcmlmeV9jYiBfaGlkbF9jYikgeworCisgICAgICAgIGJvb2wgbWF0Y2g7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPnZlcmlmeSh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIHRvVmVjdG9yKGtleUlkKSwgdG9WZWN0b3IobWVzc2FnZSksIHRvVmVjdG9yKHNpZ25hdHVyZSksCisgICAgICAgICAgICAgICAgbWF0Y2gpOworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCBtYXRjaCk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6c2lnblJTQShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGFsZ29yaXRobSwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG1lc3NhZ2UsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgd3JhcHBlZEtleSwgc2lnblJTQV9jYiBfaGlkbF9jYikgeworCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBsZWdhY3lTaWduYXR1cmU7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPnNpZ25SU0EodG9WZWN0b3Ioc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICBTdHJpbmc4KGFsZ29yaXRobS5jX3N0cigpKSwgdG9WZWN0b3IobWVzc2FnZSksIHRvVmVjdG9yKHdyYXBwZWRLZXkpLAorICAgICAgICAgICAgICAgIGxlZ2FjeVNpZ25hdHVyZSk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhsZWdhY3lTaWduYXR1cmUpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpzZXRMaXN0ZW5lcihjb25zdCBzcDxJRHJtUGx1Z2luTGlzdGVuZXI+JiBsaXN0ZW5lcikgeworICAgICAgICBtTGlzdGVuZXIgPSBsaXN0ZW5lcjsKKyAgICAgICAgbUxlZ2FjeVBsdWdpbi0+c2V0TGlzdGVuZXIobGlzdGVuZXIgPT0gTlVMTCA/IE5VTEwgOiB0aGlzKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpzZW5kRXZlbnQoRXZlbnRUeXBlIGV2ZW50VHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhKSB7CisgICAgICAgIGlmIChtTGlzdGVuZXIgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgbUxpc3RlbmVyLT5zZW5kRXZlbnQoZXZlbnRUeXBlLCBzZXNzaW9uSWQsIGRhdGEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6c2VuZEV4cGlyYXRpb25VcGRhdGUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLCBpbnQ2NF90IGV4cGlyeVRpbWVJbk1TKSB7CisgICAgICAgIGlmIChtTGlzdGVuZXIgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgbUxpc3RlbmVyLT5zZW5kRXhwaXJhdGlvblVwZGF0ZShzZXNzaW9uSWQsIGV4cGlyeVRpbWVJbk1TKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OnNlbmRLZXlzQ2hhbmdlKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlTdGF0dXM+JiBrZXlTdGF0dXNMaXN0LCBib29sIGhhc05ld1VzYWJsZUtleSkgeworICAgICAgICBpZiAobUxpc3RlbmVyICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIG1MaXN0ZW5lci0+c2VuZEtleXNDaGFuZ2Uoc2Vzc2lvbklkLCBrZXlTdGF0dXNMaXN0LCBoYXNOZXdVc2FibGVLZXkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisKKyAgICAvLyBNZXRob2RzIGZyb20gYW5kcm9pZDo6RHJtUGx1Z2luTGlzdGVuZXIKKworICAgIHZvaWQgRHJtUGx1Z2luOjpzZW5kRXZlbnQoYW5kcm9pZDo6RHJtUGx1Z2luOjpFdmVudFR5cGUgbGVnYWN5RXZlbnRUeXBlLAorICAgICAgICAgICAgaW50IC8qdW51c2VkKi8sIFZlY3Rvcjx1aW50OF90PiBjb25zdCAqc2Vzc2lvbklkLAorICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0ICpkYXRhKSB7CisKKyAgICAgICAgRXZlbnRUeXBlIGV2ZW50VHlwZTsKKyAgICAgICAgYm9vbCBzZW5kRXZlbnQgPSB0cnVlOworICAgICAgICBzd2l0Y2gobGVnYWN5RXZlbnRUeXBlKSB7CisgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprRHJtUGx1Z2luRXZlbnRQcm92aXNpb25SZXF1aXJlZDoKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IEV2ZW50VHlwZTo6UFJPVklTSU9OX1JFUVVJUkVEOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprRHJtUGx1Z2luRXZlbnRLZXlOZWVkZWQ6CisgICAgICAgICAgICBldmVudFR5cGUgPSBFdmVudFR5cGU6OktFWV9ORUVERUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtEcm1QbHVnaW5FdmVudEtleUV4cGlyZWQ6CisgICAgICAgICAgICBldmVudFR5cGUgPSBFdmVudFR5cGU6OktFWV9FWFBJUkVEOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprRHJtUGx1Z2luRXZlbnRWZW5kb3JEZWZpbmVkOgorICAgICAgICAgICAgZXZlbnRUeXBlID0gRXZlbnRUeXBlOjpWRU5ET1JfREVGSU5FRDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0RybVBsdWdpbkV2ZW50U2Vzc2lvblJlY2xhaW1lZDoKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IEV2ZW50VHlwZTo6U0VTU0lPTl9SRUNMQUlNRUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHNlbmRFdmVudCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlbmRFdmVudCkgeworICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGVtcHR5VmVjdG9yOworICAgICAgICAgICAgbUxpc3RlbmVyLT5zZW5kRXZlbnQoZXZlbnRUeXBlLAorICAgICAgICAgICAgICAgICAgICB0b0hpZGxWZWMoc2Vzc2lvbklkID09IE5VTEwgPyBlbXB0eVZlY3RvcjogKnNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgICAgIHRvSGlkbFZlYyhkYXRhID09IE5VTEwgPyBlbXB0eVZlY3RvcjogKmRhdGEpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgRHJtUGx1Z2luOjpzZW5kRXhwaXJhdGlvblVwZGF0ZShWZWN0b3I8dWludDhfdD4gY29uc3QgKnNlc3Npb25JZCwKKyAgICAgICAgICAgIGludDY0X3QgZXhwaXJ5VGltZUluTVMpIHsKKyAgICAgICAgbUxpc3RlbmVyLT5zZW5kRXhwaXJhdGlvblVwZGF0ZSh0b0hpZGxWZWMoKnNlc3Npb25JZCksIGV4cGlyeVRpbWVJbk1TKTsKKyAgICB9CisKKyAgICB2b2lkIERybVBsdWdpbjo6c2VuZEtleXNDaGFuZ2UoVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0ICpzZXNzaW9uSWQsCisgICAgICAgICAgICBWZWN0b3I8YW5kcm9pZDo6RHJtUGx1Z2luOjpLZXlTdGF0dXM+IGNvbnN0ICpsZWdhY3lLZXlTdGF0dXNMaXN0LAorICAgICAgICAgICAgYm9vbCBoYXNOZXdVc2FibGVLZXkpIHsKKworICAgICAgICBWZWN0b3I8S2V5U3RhdHVzPiBrZXlTdGF0dXNWZWM7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVnYWN5S2V5U3RhdHVzTGlzdC0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGNvbnN0IGFuZHJvaWQ6OkRybVBsdWdpbjo6S2V5U3RhdHVzICZsZWdhY3lLZXlTdGF0dXMgPQorICAgICAgICAgICAgICAgIGxlZ2FjeUtleVN0YXR1c0xpc3QtPml0ZW1BdChpKTsKKworICAgICAgICAgICAgS2V5U3RhdHVzIGtleVN0YXR1czsKKworICAgICAgICAgICAgc3dpdGNoKGxlZ2FjeUtleVN0YXR1cy5tVHlwZSkgeworICAgICAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlTdGF0dXNUeXBlX1VzYWJsZToKKyAgICAgICAgICAgICAgICBrZXlTdGF0dXMudHlwZSA9IEtleVN0YXR1c1R5cGU6OlVTQUJMRTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5U3RhdHVzVHlwZV9FeHBpcmVkOgorICAgICAgICAgICAgICAgIGtleVN0YXR1cy50eXBlID0gS2V5U3RhdHVzVHlwZTo6RVhQSVJFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5U3RhdHVzVHlwZV9PdXRwdXROb3RBbGxvd2VkOgorICAgICAgICAgICAgICAgIGtleVN0YXR1cy50eXBlID0gS2V5U3RhdHVzVHlwZTo6T1VUUFVUTk9UQUxMT1dFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5U3RhdHVzVHlwZV9TdGF0dXNQZW5kaW5nOgorICAgICAgICAgICAgICAgIGtleVN0YXR1cy50eXBlID0gS2V5U3RhdHVzVHlwZTo6U1RBVFVTUEVORElORzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5U3RhdHVzVHlwZV9JbnRlcm5hbEVycm9yOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBrZXlTdGF0dXMudHlwZSA9IEtleVN0YXR1c1R5cGU6OklOVEVSTkFMRVJST1I7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGtleVN0YXR1cy5rZXlJZCA9IHRvSGlkbFZlYyhsZWdhY3lLZXlTdGF0dXMubUtleUlkKTsKKyAgICAgICAgICAgIGtleVN0YXR1c1ZlYy5wdXNoX2JhY2soa2V5U3RhdHVzKTsKKyAgICAgICAgfQorICAgICAgICBtTGlzdGVuZXItPnNlbmRLZXlzQ2hhbmdlKHRvSGlkbFZlYygqc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICB0b0hpZGxWZWMoa2V5U3RhdHVzVmVjKSwgaGFzTmV3VXNhYmxlS2V5KTsKKyAgICB9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkcm0KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9Ecm1QbHVnaW4uaCBiL2RybS8xLjAvZGVmYXVsdC9Ecm1QbHVnaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2U2YzBjCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0RybVBsdWdpbi5oCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19EUk1QTFVHSU5fSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19EUk1QTFVHSU5fSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW4uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybVBsdWdpbkxpc3RlbmVyLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxtZWRpYS9kcm0vRHJtQVBJLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6RXZlbnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtUGx1Z2luOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtUGx1Z2luTGlzdGVuZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVJlcXVlc3RUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpLZXlTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTZWN1cmVTdG9wOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IERybVBsdWdpbiA6IHB1YmxpYyBJRHJtUGx1Z2luLCBhbmRyb2lkOjpEcm1QbHVnaW5MaXN0ZW5lciB7CisKKyAgICBEcm1QbHVnaW4oYW5kcm9pZDo6RHJtUGx1Z2luICpwbHVnaW4pIDogbUxlZ2FjeVBsdWdpbihwbHVnaW4pIHt9CisgICAgfkRybVBsdWdpbigpIHtkZWxldGUgbUxlZ2FjeVBsdWdpbjt9CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtUGx1Z2luIGZvbGxvdy4KKworICAgIFJldHVybjx2b2lkPiBvcGVuU2Vzc2lvbihvcGVuU2Vzc2lvbl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiBjbG9zZVNlc3Npb24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0S2V5UmVxdWVzdChjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2NvcGUsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5pdERhdGEsIGNvbnN0IGhpZGxfc3RyaW5nJiBtaW1lVHlwZSwKKyAgICAgICAgICAgIEtleVR5cGUga2V5VHlwZSwgY29uc3QgaGlkbF92ZWM8S2V5VmFsdWU+JiBvcHRpb25hbFBhcmFtZXRlcnMsCisgICAgICAgICAgICBnZXRLZXlSZXF1ZXN0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBwcm92aWRlS2V5UmVzcG9uc2UoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNjb3BlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlc3BvbnNlLCBwcm92aWRlS2V5UmVzcG9uc2VfY2IgX2hpZGxfY2IpCisgICAgICAgICAgICBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHJlbW92ZUtleXMoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiByZXN0b3JlS2V5cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVNldElkKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBxdWVyeUtleVN0YXR1cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgcXVlcnlLZXlTdGF0dXNfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGdldFByb3Zpc2lvblJlcXVlc3QoY29uc3QgaGlkbF9zdHJpbmcmIGNlcnRpZmljYXRlVHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjZXJ0aWZpY2F0ZUF1dGhvcml0eSwKKyAgICAgICAgICAgIGdldFByb3Zpc2lvblJlcXVlc3RfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHByb3ZpZGVQcm92aXNpb25SZXNwb25zZShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcmVzcG9uc2UsCisgICAgICAgICAgICBwcm92aWRlUHJvdmlzaW9uUmVzcG9uc2VfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGdldFNlY3VyZVN0b3BzKGdldFNlY3VyZVN0b3BzX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBnZXRTZWN1cmVTdG9wKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZWN1cmVTdG9wSWQsCisgICAgICAgICAgICBnZXRTZWN1cmVTdG9wX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHJlbGVhc2VBbGxTZWN1cmVTdG9wcygpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gcmVsZWFzZVNlY3VyZVN0b3AoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlY3VyZVN0b3BJZCkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGdldFByb3BlcnR5U3RyaW5nKGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICBnZXRQcm9wZXJ0eVN0cmluZ19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJvcGVydHlCeXRlQXJyYXkoY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGdldFByb3BlcnR5Qnl0ZUFycmF5X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldFByb3BlcnR5U3RyaW5nKGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0UHJvcGVydHlCeXRlQXJyYXkoY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiBzZXRDaXBoZXJBbGdvcml0aG0oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBhbGdvcml0aG0pIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0TWFjQWxnb3JpdGhtKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgYWxnb3JpdGhtKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBlbmNyeXB0KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5SWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbnB1dCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpdiwgZW5jcnlwdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gZGVjcnlwdChjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5wdXQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaXYsIGRlY3J5cHRfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNpZ24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG1lc3NhZ2UsCisgICAgICAgICAgICBzaWduX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiB2ZXJpZnkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG1lc3NhZ2UsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2lnbmF0dXJlLCB2ZXJpZnlfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNpZ25SU0EoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBhbGdvcml0aG0sIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBtZXNzYWdlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHdyYXBwZWRrZXksIHNpZ25SU0FfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNldExpc3RlbmVyKGNvbnN0IHNwPElEcm1QbHVnaW5MaXN0ZW5lcj4mIGxpc3RlbmVyKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBzZW5kRXZlbnQoRXZlbnRUeXBlIGV2ZW50VHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhKQorICAgICAgICAgICAgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gc2VuZEV4cGlyYXRpb25VcGRhdGUoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGludDY0X3QgZXhwaXJ5VGltZUluTVMpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNlbmRLZXlzQ2hhbmdlKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlTdGF0dXM+JiBrZXlTdGF0dXNMaXN0LCBib29sIGhhc05ld1VzYWJsZUtleSkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIGFuZHJvaWQ6OkRybVBsdWdpbkxpc3RlbmVyIGZvbGxvdworCisgICAgdmlydHVhbCB2b2lkIHNlbmRFdmVudChhbmRyb2lkOjpEcm1QbHVnaW46OkV2ZW50VHlwZSBldmVudFR5cGUsIGludCBleHRyYSwKKyAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBjb25zdCAqc2Vzc2lvbklkLCBWZWN0b3I8dWludDhfdD4gY29uc3QgKmRhdGEpOworCisgICAgdmlydHVhbCB2b2lkIHNlbmRFeHBpcmF0aW9uVXBkYXRlKFZlY3Rvcjx1aW50OF90PiBjb25zdCAqc2Vzc2lvbklkLAorICAgICAgICAgICAgaW50NjRfdCBleHBpcnlUaW1lSW5NUyk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2VuZEtleXNDaGFuZ2UoVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0ICpzZXNzaW9uSWQsCisgICAgICAgICAgICBWZWN0b3I8YW5kcm9pZDo6RHJtUGx1Z2luOjpLZXlTdGF0dXM+IGNvbnN0ICprZXlTdGF0dXNMaXN0LAorICAgICAgICAgICAgYm9vbCBoYXNOZXdVc2FibGVLZXkpOworCitwcml2YXRlOgorICAgIGFuZHJvaWQ6OkRybVBsdWdpbiAqbUxlZ2FjeVBsdWdpbjsKKyAgICBzcDxJRHJtUGx1Z2luTGlzdGVuZXI+IG1MaXN0ZW5lcjsKKworICAgIERybVBsdWdpbigpID0gZGVsZXRlOworICAgIERybVBsdWdpbihjb25zdCBEcm1QbHVnaW4gJikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgRHJtUGx1Z2luICYpID0gZGVsZXRlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0RSTVBMVUdJTl9ICmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvTGVnYWN5UGx1Z2luUGF0aC5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvTGVnYWN5UGx1Z2luUGF0aC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzY5MDU5ZAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9MZWdhY3lQbHVnaW5QYXRoLmNwcApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgIkxlZ2FjeVBsdWdpblBhdGguaCIKKworI2luY2x1ZGUgPGN1dGlscy9wcm9wZXJ0aWVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NvbnN0IGNoYXIqIGdldERybVBsdWdpblBhdGgoKSB7CisgICAgaWYgKHByb3BlcnR5X2dldF9ib29sKCJkcm0uNjRiaXQuZW5hYmxlZCIsIGZhbHNlKSkgeworICAgICAgICByZXR1cm4gIi92ZW5kb3IvbGliNjQvbWVkaWFkcm0iOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiAiL3ZlbmRvci9saWIvbWVkaWFkcm0iOworICAgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0xlZ2FjeVBsdWdpblBhdGguaCBiL2RybS8xLjAvZGVmYXVsdC9MZWdhY3lQbHVnaW5QYXRoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE0NWYyZQotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9MZWdhY3lQbHVnaW5QYXRoLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgTEVHQUNZX1BMVUdJTl9QQVRIX0hfCisKKyNkZWZpbmUgTEVHQUNZX1BMVUdJTl9QQVRIX0hfCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NvbnN0IGNoYXIqIGdldERybVBsdWdpblBhdGgoKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIExFR0FDWV9QTFVHSU5fUEFUSF9IXwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L1R5cGVDb252ZXJ0LmNwcCBiL2RybS8xLjAvZGVmYXVsdC9UeXBlQ29udmVydC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2EyNjJjMwotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9UeXBlQ29udmVydC5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1pbXBsIgorCisjaW5jbHVkZSAiVHlwZUNvbnZlcnQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworU3RhdHVzIHRvU3RhdHVzKHN0YXR1c190IGxlZ2FjeVN0YXR1cykgeworICAgIFN0YXR1cyBzdGF0dXM7CisgICAgc3dpdGNoKGxlZ2FjeVN0YXR1cykgeworICAgIGNhc2UgYW5kcm9pZDo6T0s6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX05PX0xJQ0VOU0U6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX05PX0xJQ0VOU0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX0xJQ0VOU0VfRVhQSVJFRDoKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fTElDRU5TRV9FWFBJUkVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQ6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBhbmRyb2lkOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRToKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBhbmRyb2lkOjpFUlJPUl9EUk1fVEFNUEVSX0RFVEVDVEVEOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9JTlZBTElEX1NUQVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkJBRF9WQUxVRToKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpCQURfVkFMVUU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX05PVF9QUk9WSVNJT05FRDoKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fTk9UX1BST1ZJU0lPTkVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9SRVNPVVJDRV9CVVNZOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9SRVNPVVJDRV9CVVNZOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9JTlNVRkZJQ0lFTlRfT1VUUFVUX1BST1RFQ1RJT046CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX0lOU1VGRklDSUVOVF9PVVRQVVRfUFJPVEVDVElPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBhbmRyb2lkOjpFUlJPUl9EUk1fREVWSUNFX1JFVk9LRUQ6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX0RFVklDRV9SRVZPS0VEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9ERUNSWVBUOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9ERUNSWVBUOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBTE9HVygiVW5hYmxlIHRvIGNvbnZlcnQgbGVnYWN5IHN0YXR1czogJWQsIGRlZmF1bHRpbmcgdG8gVU5LTk9XTiIsCisgICAgICAgICAgICBsZWdhY3lTdGF0dXMpOworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9VTktOT1dOOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L1R5cGVDb252ZXJ0LmggYi9kcm0vMS4wL2RlZmF1bHQvVHlwZUNvbnZlcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDdmZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L1R5cGVDb252ZXJ0LmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9UWVBFQ09OVkVSVAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX1RZUEVDT05WRVJUCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxtZWRpYS9zdGFnZWZyaWdodC9NZWRpYUVycm9ycy5oPgorI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3QgaGlkbF92ZWM8VD4gdG9IaWRsVmVjKGNvbnN0IFZlY3RvcjxUPiAmVmVjdG9yKSB7CisgICAgaGlkbF92ZWM8VD4gdmVjOworICAgIHZlYy5zZXRUb0V4dGVybmFsKGNvbnN0X2Nhc3Q8VCAqPihWZWN0b3IuYXJyYXkoKSksIFZlY3Rvci5zaXplKCkpOworICAgIHJldHVybiB2ZWM7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGhpZGxfdmVjPFQ+IHRvSGlkbFZlYyhWZWN0b3I8VD4gJlZlY3RvcikgeworICAgIGhpZGxfdmVjPFQ+IHZlYzsKKyAgICB2ZWMuc2V0VG9FeHRlcm5hbChWZWN0b3IuZWRpdEFycmF5KCksIFZlY3Rvci5zaXplKCkpOworICAgIHJldHVybiB2ZWM7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0IFZlY3RvcjxUPiB0b1ZlY3Rvcihjb25zdCBoaWRsX3ZlYzxUPiAmdmVjKSB7CisgICAgVmVjdG9yPFQ+IHZlY3RvcjsKKyAgICB2ZWN0b3IuYXBwZW5kQXJyYXkodmVjLmRhdGEoKSwgdmVjLnNpemUoKSk7CisgICAgcmV0dXJuICpjb25zdF9jYXN0PGNvbnN0IFZlY3RvcjxUPiAqPigmdmVjdG9yKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gVmVjdG9yPFQ+IHRvVmVjdG9yKGhpZGxfdmVjPFQ+ICZ2ZWMpIHsKKyAgICBWZWN0b3I8VD4gdmVjdG9yOworICAgIHZlY3Rvci5hcHBlbmRBcnJheSh2ZWMuZGF0YSgpLCB2ZWMuc2l6ZSgpKTsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgU0laRT4gY29uc3QgVmVjdG9yPFQ+IHRvVmVjdG9yKAorICAgICAgICBjb25zdCBoaWRsX2FycmF5PFQsIFNJWkU+ICZhcnJheSkgeworICAgIFZlY3RvcjxUPiB2ZWN0b3I7CisgICAgdmVjdG9yLmFwcGVuZEFycmF5KGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgU0laRT4gVmVjdG9yPFQ+IHRvVmVjdG9yKAorICAgICAgICBoaWRsX2FycmF5PFQsIFNJWkU+ICZhcnJheSkgeworICAgIFZlY3RvcjxUPiB2ZWN0b3I7CisgICAgdmVjdG9yLmFwcGVuZEFycmF5KGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCitTdGF0dXMgdG9TdGF0dXMoc3RhdHVzX3QgbGVnYWN5U3RhdHVzKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9UWVBFQ09OVkVSVApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1zZXJ2aWNlLnJjIGIvZHJtLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3YmVjYTMKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw2IEBACitzZXJ2aWNlIGRybS1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBtZWRpYQorICAgIGdyb3VwIG1lZGlhZHJtIGRybXJwYworICAgIGlvcHJpbyBydCA0CisgICAgd3JpdGVwaWQgL2Rldi9jcHVzZXQvZm9yZWdyb3VuZC90YXNrcwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvZHJtLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhNDRjZTIKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDwxLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5Lmg+CisjaW5jbHVkZSA8MS4wL2RlZmF1bHQvRHJtRmFjdG9yeS5oPgorCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisjaW5jbHVkZSA8YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpyZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvRmFjdG9yeTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1GYWN0b3J5OworCitpbnQgbWFpbigpIHsKKyAgICBBTE9HRCgiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2Ugc3RhcnRpbmcuLi4iKTsKKworICAgIC8vIFRoZSBEUk0gSEFMIG1heSBjb21tdW5pY2F0ZSB0byBvdGhlciB2ZW5kb3IgY29tcG9uZW50cyB2aWEKKyAgICAvLyAvZGV2L3ZuZGJpbmRlcgorICAgIGFuZHJvaWQ6OlByb2Nlc3NTdGF0ZTo6aW5pdFdpdGhEcml2ZXIoIi9kZXYvdm5kYmluZGVyIik7CisKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDgsIHRydWUgLyogY2FsbGVyV2lsbEpvaW4gKi8pOworICAgIGFuZHJvaWQ6OnN0YXR1c190IHN0YXR1cyA9CisgICAgICAgIHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SURybUZhY3Rvcnk+KCk7CisgICAgTE9HX0FMV0FZU19GQVRBTF9JRigKKyAgICAgICAgc3RhdHVzICE9IGFuZHJvaWQ6Ok9LLAorICAgICAgICAiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgZHJtIHNlcnZpY2U6ICVkIiwgc3RhdHVzKTsKKyAgICBzdGF0dXMgPSByZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElDcnlwdG9GYWN0b3J5PigpOworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoCisgICAgICAgIHN0YXR1cyAhPSBhbmRyb2lkOjpPSywKKyAgICAgICAgIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIGNyeXB0byBzZXJ2aWNlOiAlZCIsIHN0YXR1cyk7CisgICAgam9pblJwY1RocmVhZHBvb2woKTsKK30KZGlmZiAtLWdpdCBhL2RybS8xLjAvdHlwZXMuaGFsIGIvZHJtLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2VhNWIxNgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMzQ4IEBACisvKioKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitlbnVtIFN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBPSyB3aGVuIGFuIG9wZXJhdGlvbiBjb21wbGV0ZXMgd2l0aG91dCBhbnkKKyAgICAgKiBlcnJvcnMuCisgICAgICovCisgICAgT0ssCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBFUlJPUl9EUk1fTk9fTElDRU5TRSwgd2hlbiBkZWNyeXB0aW9uIGlzCisgICAgICogYXR0ZW1wdGVkIGFuZCBubyBsaWNlbnNlIGtleXMgaGF2ZSBiZWVuIHByb3ZpZGVkLgorICAgICAqLworICAgIEVSUk9SX0RSTV9OT19MSUNFTlNFLAorCisgICAgLyoqCisgICAgICogRVJST1JfRFJNX0xJQ0VOU0VfRVhQSVJFRCBtdXN0IGJlIHJldHVybmVkIHdoZW4gYW4gYXR0ZW1wdCBpcyBtYWRlCisgICAgICogdG8gdXNlIGEgbGljZW5zZSBhbmQgdGhlIGtleXMgaW4gdGhhdCBsaWNlbnNlIGhhdmUgZXhwaXJlZC4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fTElDRU5TRV9FWFBJUkVELAorCisgICAgLyoqCisgICAgICogVGhlIERSTSBwbHVnaW4gbXVzdCByZXR1cm4gRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCB3aGVuIGFuCisgICAgICogYXR0ZW1wdCBpcyBtYWRlIHRvIHVzZSBhIHNlc3Npb24gdGhhdCBoYXMgbm90IGJlZW4gb3BlbmVkLgorICAgICAqLworICAgIEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQsCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSB3aGVuIGFuIHVuc3VwcG9ydGVkCisgICAgICogZGF0YSBmb3JtYXQgb3Igb3BlcmF0aW9uIGlzIGF0dGVtcHRlZC4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKworICAgIC8qKgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIG11c3QgYmUgcmV0dXJuZWQgd2hlbiB0aGUgZGV2aWNlIGlzIGluIGEgc3RhdGUKKyAgICAgKiB3aGVyZSBpdCBpcyBub3QgYWJsZSB0byBwZXJmb3JtIGRlY3J5cHRpb24uCisgICAgICovCisgICAgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUsCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBCQURfVkFMVUUgd2hlbmV2ZXIgYW4gaWxsZWdhbCBwYXJhbWV0ZXIgaXMKKyAgICAgKiBwYXNzZWQgdG8gb25lIG9mIHRoZSBpbnRlcmZhY2UgZnVuY3Rpb25zLgorICAgICAqLworICAgIEJBRF9WQUxVRSwKKworICAgIC8qKgorICAgICAqIFRoZSBEUk0gcGx1Z2luIG11c3QgcmV0dXJuIEVSUk9SX0RSTV9OT1RfUFJPVklTSU9ORUQgZnJvbSBnZXRLZXlSZXF1ZXN0LAorICAgICAqIG9wZW5TZXNzaW9uIG9yIHByb3ZpZGVLZXlSZXNwb25zZSB3aGVuIHRoZSBkZXZpY2UgaGFzIG5vdCB5ZXQgYmVlbgorICAgICAqIHByb3Zpc2lvbmVkLgorICAgICAqLworICAgIEVSUk9SX0RSTV9OT1RfUFJPVklTSU9ORUQsCisKKyAgICAvKioKKyAgICAgKiBFUlJPUl9EUk1fUkVTT1VSQ0VfQlVTWSBtdXN0IGJlIHJldHVybmVkIHdoZW4gcmVzb3VyY2VzLCBzdWNoIGFzIGRybQorICAgICAqIHNlc3Npb25zIG9yIHNlY3VyZSBidWZmZXJzIGFyZSBub3QgYXZhaWxhYmxlIHRvIHBlcmZvcm0gYSByZXF1ZXN0ZWQKKyAgICAgKiBvcGVyYXRpb24gYmVjYXVzZSB0aGV5IGFyZSBhbHJlYWR5IGluIHVzZS4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fUkVTT1VSQ0VfQlVTWSwKKworICAgIC8qKgorICAgICAqIFRoZSBEUk0gUGx1Z2luIG11c3QgcmV0dXJuIEVSUk9SX0RSTV9JTlNVRkZJQ0lFTlRfT1VUUFVUX1BST1RFQ1RJT04KKyAgICAgKiB3aGVuIHRoZSBvdXRwdXQgcHJvdGVjdGlvbiBsZXZlbCBlbmFibGVkIG9uIHRoZSBkZXZpY2UgaXMgbm90CisgICAgICogc3VmZmljaWVudCB0byBtZWV0IHRoZSByZXF1aXJlbWVudHMgaW4gdGhlIGxpY2Vuc2UgcG9saWN5LiAgSERDUCBpcyBhbgorICAgICAqIGV4YW1wbGUgb2YgYSBmb3JtIG9mIG91dHB1dCBwcm90ZWN0aW9uLgorICAgICAqLworICAgIEVSUk9SX0RSTV9JTlNVRkZJQ0lFTlRfT1VUUFVUX1BST1RFQ1RJT04sCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIFBsdWdpbiBtdXN0IHJldHVybiBFUlJPUl9EUk1fREVWSUNFX1JFVk9LRUQgZnJvbQorICAgICAqIHByb3ZpZGVQcm92aXNpb25SZXNwb25zZSBhbmQgcHJvdmlkZUtleVJlc3BvbnNlIGlmIHRoZSByZXNwb25zZSBpbmRpY2F0ZXMKKyAgICAgKiB0aGF0IHRoZSBkZXZpY2UgaGFzIGJlZW4gcmV2b2tlZC4gRGV2aWNlIHJldm9jYXRpb24gbWVhbnMgdGhhdCB0aGUgZGV2aWNlCisgICAgICogaXMgbm8gbG9uZ2VyIHBlcm1pdHRlZCB0byBwbGF5IGNvbnRlbnQuCisgICAgICovCisgICAgRVJST1JfRFJNX0RFVklDRV9SRVZPS0VELAorCisgICAgLyoqCisgICAgICogVGhlIERSTSBQbHVnaW4gbXVzdCByZXR1cm4gRVJST1JfRFJNX0RFQ1JZUFQgaWYgdGhlIENyeXB0b1BsdWdpbgorICAgICAqIGRlY3J5cHQgb3BlcmF0aW9uIGZhaWxzLgorICAgICAqLworICAgIEVSUk9SX0RSTV9ERUNSWVBULAorCisgICAgLyoqCisgICAgICogRVJST1JfRFJNX1VOS05PV04gbXVzdCBiZSByZXR1cm5lZCB3aGVuIGEgZmF0YWwgZmFpbHVyZSBvY2N1cnMgYW5kIG5vCisgICAgICogb3RoZXIgZGVmaW5lZCBlcnJvciBpcyBhcHByb3ByaWF0ZS4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fVU5LTk9XTiwKK307CisKKworLyoqCisgKiBFdmVudFR5cGUgZW51bWVyYXRlcyB0aGUgZXZlbnRzIHRoYXQgY2FuIGJlIGRlbGl2ZXJlZCBieSBzZW5kRXZlbnQKKyAqLworZW51bSBFdmVudFR5cGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogVGhpcyBldmVudCB0eXBlIGluZGljYXRlcyB0aGF0IHRoZSBhcHAgbmVlZHMgdG8gcmVxdWVzdCBhIGNlcnRpZmljYXRlCisgICAgICogZnJvbSB0aGUgcHJvdmlzaW9uaW5nIHNlcnZlci4gVGhlIHJlcXVlc3QgbWVzc2FnZSBkYXRhIGlzIG9idGFpbmVkIHVzaW5nCisgICAgICogZ2V0UHJvdmlzaW9uUmVxdWVzdCgpLgorICAgICAqLworICAgIFBST1ZJU0lPTl9SRVFVSVJFRCwKKworICAgICAvKioKKyAgICAgKiBUaGlzIGV2ZW50IHR5cGUgaW5kaWNhdGVzIHRoYXQgdGhlIGFwcCBuZWVkcyB0byByZXF1ZXN0IGtleXMgZnJvbSBhCisgICAgICogbGljZW5zZSBzZXJ2ZXIuIFRoZSByZXF1ZXN0IG1lc3NhZ2UgZGF0YSBpcyBvYnRhaW5lZCB1c2luZyBnZXRLZXlSZXF1ZXN0LgorICAgICAqLworICAgIEtFWV9ORUVERUQsCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV2ZW50IHR5cGUgaW5kaWNhdGVzIHRoYXQgdGhlIGxpY2Vuc2VkIHVzYWdlIGR1cmF0aW9uIGZvciBrZXlzIGluIGEKKyAgICAgKiBzZXNzaW9uIGhhcyBleHBpcmVkLiBUaGUga2V5cyBhcmUgbm8gbG9uZ2VyIHZhbGlkLgorICAgICAqLworICAgIEtFWV9FWFBJUkVELAorCisgICAgLyoqCisgICAgICogVGhpcyBldmVudCBtYXkgaW5kaWNhdGUgc29tZSBzcGVjaWZpYyB2ZW5kb3ItZGVmaW5lZCBjb25kaXRpb24sIHNlZSB5b3VyCisgICAgICogRFJNIHByb3ZpZGVyIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCisgICAgICovCisgICAgVkVORE9SX0RFRklORUQsCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV2ZW50IGluZGljYXRlcyB0aGF0IGEgc2Vzc2lvbiBvcGVuZWQgYnkgdGhlIGFwcCBoYXMgYmVlbiByZWNsYWltZWQKKyAgICAgKiBieSB0aGUgcmVzb3VyY2UgbWFuYWdlci4KKyAgICAgKi8KKyAgICBTRVNTSU9OX1JFQ0xBSU1FRCwKK307CisKK2VudW0gS2V5VHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBEcm0ga2V5cyBjYW4gYmUgZm9yIG9mZmxpbmUgY29udGVudCBvciBmb3Igb25saW5lIHN0cmVhbWluZy4KKyAgICAgKiBPZmZsaW5lIGtleXMgYXJlIHBlcnNpc3RlZCBvbiB0aGUgZGV2aWNlIGFuZCBtYXkgYmUgdXNlZCB3aGVuIHRoZSBkZXZpY2UKKyAgICAgKiBpcyBkaXNjb25uZWN0ZWQgZnJvbSB0aGUgbmV0d29yay4KKyAgICAgKi8KKyAgICBPRkZMSU5FLAorCisgICAgLyoqCisgICAgICogS2V5cyBmb3Igc3RyZWFtaW5nIGFyZSBub3QgcGVyc2lzdGVkIGFuZCByZXF1aXJlIHRoZSBkZXZpY2UgdG8gYmUKKyAgICAgKiBjb25uZWN0ZWQgdG8gdGhlIG5ldHdvcmsgZm9yIHBlcmlvZGljIHJlbmV3YWwuCisgICAgICovCisgICAgU1RSRUFNSU5HLAorCisgICAgLyoqCisgICAgICogVGhlIFJlbGVhc2UgdHlwZSBpcyB1c2VkIHRvIHJlcXVlc3QgdGhhdCBvZmZsaW5lIGtleXMgYmUgbm8gbG9uZ2VyCisgICAgICogcmVzdHJpY3RlZCB0byBvZmZsaW5lIHVzZS4KKyAgICAgKi8KKyAgICBSRUxFQVNFLAorfTsKKworLyoqCisgKiBFbnVtZXJhdGUgS2V5UmVxdWVzdFR5cGVzIHRvIGFsbG93IGFuIGFwcCB0byBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgYSBrZXkKKyAqIHJlcXVlc3QgcmV0dXJuZWQgZnJvbSBnZXRLZXlSZXF1ZXN0LgorICovCitlbnVtIEtleVJlcXVlc3RUeXBlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIEtleSByZXF1ZXN0IHR5cGUgaXMgZm9yIGFuIGluaXRpYWwgbGljZW5zZSByZXF1ZXN0CisgICAgICovCisgICAgSU5JVElBTCwKKworICAgIC8qKgorICAgICAqIEtleSByZXF1ZXN0IHR5cGUgaXMgZm9yIGxpY2Vuc2UgcmVuZXdhbC4gUmVuZXdhbCByZXF1ZXN0cyBhcmUgdXNlZAorICAgICAqIHRvIGV4dGVuZCB0aGUgdmFsaWRpdHkgcGVyaW9kIGZvciBzdHJlYW1pbmcga2V5cy4KKyAgICAgKi8KKyAgICBSRU5FV0FMLAorCisgICAgLyoqCisgICAgICogS2V5IHJlcXVlc3QgdHlwZSBpcyBhIHJlbGVhc2UuIEEga2V5IHJlbGVhc2UgY2F1c2VzIG9mZmxpbmUga2V5cworICAgICAqIHRvIGJlY29tZSBhdmFpbGFibGUgZm9yIHN0cmVhbWluZy4KKyAgICAgKi8KKyAgICBSRUxFQVNFLAorCisgICAgLyoqCisgICAgICogS2V5IHJlcXVlc3QgdHlwZSBpcyB1bmtub3duIGR1ZSB0byBzb21lIGVycm9yIGNvbmRpdGlvbi4KKyAgICAgKi8KKyAgICBVTktOT1dOLAorfTsKKworLyoqCisgKiBFbnVtZXJhdGUgS2V5U3RhdHVzVHlwZXMgd2hpY2ggaW5kaWNhdGUgdGhlIHN0YXRlIG9mIGEga2V5CisgKi8KK2VudW0gS2V5U3RhdHVzVHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBUaGUga2V5IGlzIGN1cnJlbnRseSB1c2FibGUgdG8gZGVjcnlwdCBtZWRpYSBkYXRhLgorICAgICAqLworICAgIFVTQUJMRSwKKworICAgIC8qKgorICAgICAqIFRoZSBrZXkgaXMgbm8gbG9uZ2VyIHVzYWJsZSB0byBkZWNyeXB0IG1lZGlhIGRhdGEgYmVjYXVzZSBpdHMgZXhwaXJhdGlvbgorICAgICAqIHRpbWUgaGFzIHBhc3NlZC4KKyAgICAgKi8KKyAgICBFWFBJUkVELAorCisgICAgLyoqCisgICAgICogVGhlIGtleSBpcyBub3QgY3VycmVudGx5IHVzYWJsZSB0byBkZWNyeXB0IG1lZGlhIGRhdGEgYmVjYXVzZSBpdHMgb3V0cHV0CisgICAgICogcmVxdWlyZW1lbnRzIGNhbm5vdCBjdXJyZW50bHkgYmUgbWV0LgorICAgICAqLworICAgIE9VVFBVVE5PVEFMTE9XRUQsCisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBrZXkgaXMgbm90IHlldCBrbm93biBhbmQgaXMgYmVpbmcgZGV0ZXJtaW5lZC4KKyAgICAgKi8KKyAgICBTVEFUVVNQRU5ESU5HLAorCisgICAgLyoqCisgICAgICogVGhlIGtleSBpcyBub3QgY3VycmVudGx5IHVzYWJsZSB0byBkZWNyeXB0IG1lZGlhIGRhdGEgYmVjYXVzZSBvZiBhbgorICAgICAqIGludGVybmFsIGVycm9yIGluIHByb2Nlc3NpbmcgdW5yZWxhdGVkIHRvIGlucHV0IHBhcmFtZXRlcnMuCisgICAgICovCisgICAgSU5URVJOQUxFUlJPUiwKK307CisKK3R5cGVkZWYgdmVjPHVpbnQ4X3Q+IFNlc3Npb25JZDsKKworLyoqCisgKiBVc2VkIGJ5IHNlbmRLZXlzQ2hhbmdlIHRvIHJlcG9ydCB0aGUgdXNhYmlsaXR5IHN0YXR1cyBvZiBlYWNoIGtleSB0byB0aGUKKyAqIGFwcC4KKyAqLworc3RydWN0IEtleVN0YXR1cworeworICAgIHZlYzx1aW50OF90PiBrZXlJZDsKKyAgICBLZXlTdGF0dXNUeXBlIHR5cGU7Cit9OworCisvKioKKyAqIFNpbXVsYXRlcyBhIEtleWVkVmVjdG9yPFN0cmluZzgsIFN0cmluZzg+CisgKi8KK3N0cnVjdCBLZXlWYWx1ZSB7CisgICAgc3RyaW5nIGtleTsKKyAgICBzdHJpbmcgdmFsdWU7Cit9OworCit0eXBlZGVmIHZlYzxLZXlWYWx1ZT4gS2V5ZWRWZWN0b3I7CisKKy8qKgorICogRW5jYXBzdWxhdGVzIGEgc2VjdXJlIHN0b3Agb3BhcXVlIG9iamVjdAorICovCitzdHJ1Y3QgU2VjdXJlU3RvcCB7CisgICAgdmVjPHVpbnQ4X3Q+IG9wYXF1ZURhdGE7Cit9OworCit0eXBlZGVmIHZlYzx1aW50OF90PiBTZWN1cmVTdG9wSWQ7CisKKworLyoqCisgKiBFbnVtZXJhdGUgdGhlIHN1cHBvcnRlZCBjcnlwdG8gbW9kZXMKKyAqLworZW51bSBNb2RlIDogdWludDMyX3QgeworICAgIFVORU5DUllQVEVEID0gMCwgLy8gU2FtcGxlcyBhcmUgdW5lbmNyeXB0ZWQKKyAgICBBRVNfQ1RSICAgICA9IDEsIC8vIFNhbXBsZXMgYXJlIGVuY3J5cHRlZCB3aXRoIEFFUyBDVFIgbW9kZQorICAgIEFFU19DQkNfQ1RTID0gMiwgLy8gU2FtcGxlcyBhcmUgZW5jcnlwdGVkIHdpdGggQUVTIENCQyBDVFMgbW9kZQorICAgIEFFU19DQkMgICAgID0gMywgLy8gU2FtcGxlcyBhcmUgZW5jcnlwdGVkIHdpdGggQUVTIENCQyBtb2RlCit9OworCisvKioKKyAqIEEgc3Vic2FtcGxlIGNvbnNpc3RzIG9mIHNvbWUgbnVtYmVyIG9mIGJ5dGVzIG9mIGNsZWFyICh1bmVuY3J5cHRlZCkKKyAqIGRhdGEgZm9sbG93ZWQgYnkgYSBudW1iZXIgb2YgYnl0ZXMgb2YgZW5jcnlwdGVkIGRhdGEuCisgKi8KK3N0cnVjdCBTdWJTYW1wbGUgeworICAgIHVpbnQzMl90IG51bUJ5dGVzT2ZDbGVhckRhdGE7CisgICAgdWludDMyX3QgbnVtQnl0ZXNPZkVuY3J5cHRlZERhdGE7Cit9OworCisvKioKKyAqIEEgY3J5cHRvIFBhdHRlcm4gaXMgYSByZXBlYXRpbmcgc2VxdWVuY2Ugb2YgZW5jcnlwdGVkIGFuZCBjbGVhciBibG9ja3MKKyAqIG9jY3VyaW5nIHdpdGhpbiB0aGUgYnl0ZXMgaW5kaWNhdGVkIGJ5IG1OdW1CeXRlc09mRW5jcnlwdGVkRGF0YWQgYnl0ZXMKKyAqIG9mIGEgc3Vic2FtcGxlLiBQYXR0ZXJucyBhcmUgdXNlZCB0byByZWR1Y2UgdGhlIENQVSBvdmVyaGVhZCBvZgorICogZGVjcnlwdGluZyBzYW1wbGVzLiBBcyBhbiBleGFtcGxlLCBITFMgdXNlcyAxOjkgcGF0dGVybnMgd2hlcmUgZXZlcnkKKyAqIDEwdGggYmxvY2sgaXMgZW5jcnlwdGVkLgorICovCitzdHJ1Y3QgUGF0dGVybiB7CisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBibG9ja3MgdG8gYmUgZW5jcnlwdGVkIGluIHRoZSBwYXR0ZXJuLiBJZiB6ZXJvLAorICAgICAqIHBhdHRlcm4gZW5jcnlwdGlvbiBpcyBpbm9wZXJhdGl2ZS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBlbmNyeXB0QmxvY2tzOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBibG9ja3MgdG8gYmUgc2tpcHBlZCAobGVmdCBjbGVhcikgaW4gdGhlIHBhdHRlcm4uIElmCisgICAgICogemVybywgcGF0dGVybiBlbmNyeXB0aW9uIGlzIGlub3BlcmF0aXZlLgorICAgICAqLworICAgIHVpbnQzMl90IHNraXBCbG9ja3M7Cit9OworCitlbnVtIEJ1ZmZlclR5cGUgOiB1aW50MzJfdCB7CisgICAgU0hBUkVEX01FTU9SWSA9IDAsCisgICAgTkFUSVZFX0hBTkRMRSA9IDEsCit9OworCisvKioKKyAqIFNoYXJlZEJ1ZmZlciBkZXNjcmliZXMgYSBkZWNyeXB0IGJ1ZmZlciB3aGljaCBpcyBkZWZpbmVkIGJ5IGEgYnVmZmVySWQsIGFuCisgKiBvZmZzZXQgYW5kIGEgc2l6ZS4gIFRoZSBvZmZzZXQgaXMgcmVsYXRpdmUgdG8gdGhlIHNoYXJlZCBtZW1vcnkgYmFzZSBmb3IgdGhlCisgKiBtZW1vcnkgcmVnaW9uIGlkZW50aWZpZWQgYnkgYnVmZmVySWQsIHdoaWNoIGlzIGVzdGFibGlzaGVkIGJ5CisgKiBzZXRTaGFyZWRNZW1vcnlCYXNlKCkuCisgKi8KK3N0cnVjdCBTaGFyZWRCdWZmZXIgeworICAgIC8qKgorICAgICAqIFRoZSB1bmlxdWUgYnVmZmVyIGlkZW50aWZpZXIKKyAgICAgKi8KKyAgICB1aW50MzJfdCBidWZmZXJJZDsKKworICAgIC8qKgorICAgICAqIFRoZSBvZmZzZXQgZnJvbSB0aGUgc2hhcmVkIG1lbW9yeSBiYXNlCisgICAgICovCisgICAgdWludDY0X3Qgb2Zmc2V0OworCisgICAgLyoqCisgICAgICogVGhlIHNpemUgb2YgdGhlIHNoYXJlZCBidWZmZXIgaW4gYnl0ZXMKKyAgICAgKi8KKyAgICB1aW50NjRfdCBzaXplOworfTsKKworCisvKioKKyAqIEEgZGVjcnlwdCBkZXN0aW5hdGlvbiBidWZmZXIgY2FuIGJlIGVpdGhlciBub3JtYWwgdXNlci1zcGFjZSBzaGFyZWQKKyAqIG1lbW9yeSBmb3IgdGhlIG5vbi1zZWN1cmUgZGVjcnlwdCBjYXNlLCBvciBpdCBjYW4gYmUgYSBzZWN1cmUgYnVmZmVyCisgKiB3aGljaCBpcyByZWZlcmVuY2VkIGJ5IGEgbmF0aXZlLWhhbmRsZS4gVGhlIG5hdGl2ZSBoYW5kbGUgaXMgYWxsb2NhdGVkCisgKiBieSB0aGUgdmVuZG9yJ3MgYnVmZmVyIGFsbG9jYXRvci4KKyAqLworc3RydWN0IERlc3RpbmF0aW9uQnVmZmVyIHsKKyAgICAvKioKKyAgICAgKiBUaGUgdHlwZSBvZiB0aGUgYnVmZmVyCisgICAgICovCisgICAgQnVmZmVyVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogSWYgdHlwZSA9PSBTSEFSRURfTUVNT1JZLCB0aGUgZGVjcnlwdGVkIGRhdGEgbXVzdCBiZSB3cml0dGVuCisgICAgICogdG8gdXNlci1zcGFjZSBub24tc2VjdXJlIHNoYXJlZCBtZW1vcnkuCisgICAgICovCisgICAgU2hhcmVkQnVmZmVyIG5vbnNlY3VyZU1lbW9yeTsKKworICAgIC8qKgorICAgICAqIElmIHR5cGUgPT0gTkFUSVZFX0hBTkRMRSwgdGhlIGRlY3J5cHRlZCBkYXRhIG11c3QgYmUgd3JpdHRlbgorICAgICAqIHRvIHNlY3VyZSBtZW1vcnkgcmVmZXJlbmNlZCBieSB0aGUgdmVuZG9yJ3MgYnVmZmVyIGFsbG9jYXRvci4KKyAgICAgKi8KKyAgICBoYW5kbGUgc2VjdXJlTWVtb3J5OworfTsKZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2RvYy9Ecm1fVmVuZG9yX01vZHVsZXNfdjEucGRmIGIvZHJtLzEuMC92dHMvZG9jL0RybV9WZW5kb3JfTW9kdWxlc192MS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0NGU0ZgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2RvYy9Ecm1fVmVuZG9yX01vZHVsZXNfdjEucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2VhMzcyCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDggQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxEcm1WMV8wVGFyZ2V0VGVzdCIsCisgICAgc3JjczogWworICAgICAgICAiZHJtX2hhbF9jbGVhcmtleV90ZXN0LmNwcCIsCisgICAgICAgICJkcm1faGFsX3ZlbmRvcl90ZXN0LmNwcCIsCisgICAgICAgICJzaGFyZWRfbGlicmFyeS5jcHAiLAorICAgICAgICAidmVuZG9yX21vZHVsZXMuY3BwIgorICAgICAgICBdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbG1lbW9yeSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlic3NsIiwKKyAgICAgICAgImxpYmNyeXB0byIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIgorICAgIF0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfY2xlYXJrZXlfdGVzdC5jcHAgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfY2xlYXJrZXlfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRmMjY1OAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvZHJtX2hhbF9jbGVhcmtleV90ZXN0LmNwcApAQCAtMCwwICsxLDExNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImRybV9oYWxfY2xlYXJrZXlfdGVzdEAxLjAiCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvUGx1Z2luLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1GYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW4uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG9wZW5zc2wvYWVzLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHJhbmRvbT4KKworI2luY2x1ZGUgIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oIgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OkJ1ZmZlclR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OkRlc3RpbmF0aW9uQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SUNyeXB0b1BsdWdpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybUZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1QbHVnaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleWVkVmVjdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpLZXlWYWx1ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5UmVxdWVzdFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6Ok1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlBhdHRlcm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNlY3VyZVN0b3A7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNlY3VyZVN0b3BJZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U2Vzc2lvbklkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTaGFyZWRCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U3ViU2FtcGxlOworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjphbGxvY2F0b3I6OlYxXzA6OklBbGxvY2F0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3VzaW5nIHN0ZDo6c3RyaW5nOwordXNpbmcgc3RkOjp1bmlxdWVfcHRyOwordXNpbmcgc3RkOjpyYW5kb21fZGV2aWNlOwordXNpbmcgc3RkOjptYXA7Cit1c2luZyBzdGQ6Om10MTk5Mzc7Cit1c2luZyBzdGQ6OnZlY3RvcjsKKworLyoqCisgKiBUaGVzZSBjbGVhcmtleSB0ZXN0cyB1c2Ugd2hpdGUgYm94IGtub3dsZWRnZSBvZiB0aGUgbGVnYWN5IGNsZWFya2V5CisgKiBwbHVnaW4gdG8gdmVyaWZ5IHRoYXQgdGhlIEhJREwgSEFMIHNlcnZpY2VzIGFuZCBpbnRlcmZhY2VzIGFyZSB3b3JraW5nLgorICogSXQgaXMgbm90IGludGVuZGVkIHRvIHZlcmlmeSBhbnkgdmVuZG9yJ3MgSEFMIGltcGxlbWVudGF0aW9uLiBJZiB5b3UKKyAqIGFyZSBsb29raW5nIGZvciB2ZW5kb3IgSEFMIHRlc3RzLCBzZWUgZHJtX2hhbF92ZW5kb3JfdGVzdC5jcHAKKyAqLworI2RlZmluZSBBU1NFUlRfT0socmV0KSBBU1NFUlRfVFJVRShyZXQuaXNPaygpKQorI2RlZmluZSBFWFBFQ1RfT0socmV0KSBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKQorCitzdGF0aWMgY29uc3QgdWludDhfdCBrQ2xlYXJLZXlVVUlEWzE2XSA9IHsKKyAgICAweDEwLCAweDc3LCAweEVGLCAweEVDLCAweEMwLCAweEIyLCAweDRELCAweDAyLAorICAgIDB4QUMsIDB4RTMsIDB4M0MsIDB4MUUsIDB4NTIsIDB4RTIsIDB4RkIsIDB4NEJ9OworCitzdGF0aWMgY29uc3QgdWludDhfdCBrSW52YWxpZFVVSURbMTZdID0geworICAgIDB4MTAsIDB4MjAsIDB4MzAsIDB4NDAsIDB4NTAsIDB4NjAsIDB4NzAsIDB4ODAsCisgICAgMHgxMCwgMHgyMCwgMHgzMCwgMHg0MCwgMHg1MCwgMHg2MCwgMHg3MCwgMHg4MH07CisKK2NsYXNzIERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0KKyAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOworICAgICAgICBBTE9HRCgiUnVubmluZyB0ZXN0ICVzLiVzIiwgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpLAorICAgICAgICAgICAgICB0ZXN0X2luZm8tPm5hbWUoKSk7CisKKyAgICAgICAgZHJtRmFjdG9yeSA9CisgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SURybUZhY3Rvcnk+KCk7CisgICAgICAgIEFTU0VSVF9ORShkcm1GYWN0b3J5LCBudWxscHRyKTsKKyAgICAgICAgY3J5cHRvRmFjdG9yeSA9CisgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUNyeXB0b0ZhY3Rvcnk+KCk7CisgICAgICAgIEFTU0VSVF9ORShjcnlwdG9GYWN0b3J5LCBudWxscHRyKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgICBwcm90ZWN0ZWQ6CisgICAgc3A8SURybUZhY3Rvcnk+IGRybUZhY3Rvcnk7CisgICAgc3A8SUNyeXB0b0ZhY3Rvcnk+IGNyeXB0b0ZhY3Rvcnk7Cit9OworCisvKioKKyAqIEVuc3VyZSB0aGUgZmFjdG9yeSBzdXBwb3J0cyB0aGUgY2xlYXJrZXkgc2NoZW1lIFVVSUQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIENsZWFyS2V5UGx1Z2luU3VwcG9ydGVkKSB7CisgICAgRVhQRUNUX1RSVUUoZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoa0NsZWFyS2V5VVVJRCkpOworICAgIEVYUEVDVF9UUlVFKGNyeXB0b0ZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGtDbGVhcktleVVVSUQpKTsKK30KKworLyoqCisgKiBFbnN1cmUgdGhlIGZhY3RvcnkgZG9lc24ndCBzdXBwb3J0IGFuIGludmFsaWQgc2NoZW1lIFVVSUQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIEludmFsaWRQbHVnaW5Ob3RTdXBwb3J0ZWQpIHsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoa0ludmFsaWRVVUlEKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b0ZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGtJbnZhbGlkVVVJRCkpOworfQorCisvKioKKyAqIEVuc3VyZSB0aGUgZmFjdG9yeSBkb2Vzbid0IHN1cHBvcnQgYW4gZW1wdHkgVVVJRAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgRW1wdHlQbHVnaW5VVUlETm90U3VwcG9ydGVkKSB7CisgICAgaGlkbF9hcnJheTx1aW50OF90LCAxNj4gZW1wdHlVVUlEOworICAgIG1lbXNldChlbXB0eVVVSUQuZGF0YSgpLCAwLCAxNik7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGVtcHR5VVVJRCkpOworICAgIEVYUEVDVF9GQUxTRShjcnlwdG9GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChlbXB0eVVVSUQpKTsKK30KKworLyoqCisgKiBFbnN1cmUgZW1wdHkgY29udGVudCB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIEVtcHR5Q29udGVudFR5cGVOb3RTdXBwb3J0ZWQpIHsKKyAgICBoaWRsX3N0cmluZyBlbXB0eTsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDb250ZW50VHlwZVN1cHBvcnRlZChlbXB0eSkpOworfQorCisvKioKKyAqIEVuc3VyZSBpbnZhbGlkIGNvbnRlbnQgdHlwZSBpcyBub3Qgc3VwcG9ydGVkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleUZhY3RvcnlUZXN0LCBJbnZhbGlkQ29udGVudFR5cGVOb3RTdXBwb3J0ZWQpIHsKKyAgICBoaWRsX3N0cmluZyBpbnZhbGlkKCJhYmNkYWJjZCIpOworICAgIEVYUEVDVF9GQUxTRShkcm1GYWN0b3J5LT5pc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGludmFsaWQpKTsKK30KKworLyoqCisgKiBFbnN1cmUgdmFsaWQgY29udGVudCB0eXBlIGlzIHN1cHBvcnRlZAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgVmFsaWRDb250ZW50VHlwZVN1cHBvcnRlZCkgeworICAgIGhpZGxfc3RyaW5nIGNlbmNUeXBlKCJjZW5jIik7CisgICAgRVhQRUNUX1RSVUUoZHJtRmFjdG9yeS0+aXNDb250ZW50VHlwZVN1cHBvcnRlZChjZW5jVHlwZSkpOworfQorCisvKioKKyAqIEVuc3VyZSBjbGVhcmtleSBkcm0gcGx1Z2luIGNhbiBiZSBjcmVhdGVkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleUZhY3RvcnlUZXN0LCBDcmVhdGVDbGVhcktleURybVBsdWdpbikgeworICAgIGhpZGxfc3RyaW5nIHBhY2thZ2VOYW1lKCJhbmRyb2lkLmhhcmR3YXJlLmRybS50ZXN0Iik7CisgICAgYXV0byByZXMgPSBkcm1GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICBrQ2xlYXJLZXlVVUlELCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgY2xlYXJrZXkgY3J5cHRvIHBsdWdpbiBjYW4gYmUgY3JlYXRlZAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgQ3JlYXRlQ2xlYXJLZXlDcnlwdG9QbHVnaW4pIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgIGF1dG8gcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0NsZWFyS2V5VVVJRCwgaW5pdFZlYywKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJQ3J5cHRvUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgaW52YWxpZCBkcm0gcGx1Z2luIGNhbid0IGJlIGNyZWF0ZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIENyZWF0ZUludmFsaWREcm1QbHVnaW4pIHsKKyAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgIGF1dG8gcmVzID0gZHJtRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0ludmFsaWRVVUlELCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgaW52YWxpZCBjcnlwdG8gcGx1Z2luIGNhbid0IGJlIGNyZWF0ZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIENyZWF0ZUludmFsaWRDcnlwdG9QbHVnaW4pIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgIGF1dG8gcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0ludmFsaWRVVUlELCBpbml0VmVjLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElDcnlwdG9QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitjbGFzcyBEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QgOiBwdWJsaWMgRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICAvLyBDcmVhdGUgZmFjdG9yaWVzCisgICAgICAgIERybUhhbENsZWFya2V5RmFjdG9yeVRlc3Q6OlNldFVwKCk7CisKKyAgICAgICAgQVNTRVJUX05FKGRybUZhY3RvcnksIG51bGxwdHIpOworICAgICAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgICAgICBhdXRvIHJlcyA9IGRybUZhY3RvcnktPmNyZWF0ZVBsdWdpbigKKyAgICAgICAgICAgICAgICBrQ2xlYXJLZXlVVUlELCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgICAgICBbdGhpc10oU3RhdHVzIHN0YXR1cywgY29uc3Qgc3A8SURybVBsdWdpbj4mIHBsdWdpbikgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRybVBsdWdpbiA9IHBsdWdpbjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgQVNTRVJUX09LKHJlcyk7CisKKyAgICAgICAgaGlkbF92ZWM8dWludDhfdD4gaW5pdFZlYzsKKyAgICAgICAgcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAgICAgIGtDbGVhcktleVVVSUQsIGluaXRWZWMsCisgICAgICAgICAgICAgICAgW3RoaXNdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElDcnlwdG9QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShwbHVnaW4sIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBjcnlwdG9QbHVnaW4gPSBwbHVnaW47CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEFTU0VSVF9PSyhyZXMpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgICBTZXNzaW9uSWQgb3BlblNlc3Npb24oKTsKKyAgICB2b2lkIGNsb3NlU2Vzc2lvbihjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCk7CisgICAgaGlkbF92ZWM8dWludDhfdD4gbG9hZEtleXMoY29uc3QgU2Vzc2lvbklkJiBzZXNzaW9uSWQsIGNvbnN0IEtleVR5cGUmIHR5cGUpOworICAgIHNwPElNZW1vcnk+IGdldERlY3J5cHRNZW1vcnkoc2l6ZV90IHNpemUsIHNpemVfdCBpbmRleCk7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzcDxJRHJtUGx1Z2luPiBkcm1QbHVnaW47CisgICAgc3A8SUNyeXB0b1BsdWdpbj4gY3J5cHRvUGx1Z2luOworfTsKKworLyoqCisgKiAgRHJtUGx1Z2luIHRlc3RzCisgKi8KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIHBsdWdpbiBjYW4gcmV0dXJuIGEgcHJvdmlzaW9uIHJlcXVlc3QuICBTaW5jZQorICogdGhlIGNsZWFya2V5IHBsdWdpbiBkb2Vzbid0IHN1cHBvcnQgcHJvdmlzaW9uaW5nLCBpdCBpcworICogZXhwZWN0ZWQgdG8gcmV0dXJuIFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldFByb3Zpc2lvblJlcXVlc3QpIHsKKyAgICBoaWRsX3N0cmluZyBjZXJ0aWZpY2F0ZVR5cGU7CisgICAgaGlkbF9zdHJpbmcgY2VydGlmaWNhdGVBdXRob3JpdHk7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3Zpc2lvblJlcXVlc3QoCisgICAgICAgICAgICBjZXJ0aWZpY2F0ZVR5cGUsIGNlcnRpZmljYXRlQXV0aG9yaXR5LAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiwgY29uc3QgaGlkbF9zdHJpbmcmKSB7CisgICAgICAgICAgICAgICAgLy8gY2xlYXJrZXkgZG9lc24ndCByZXF1aXJlIHByb3Zpc2lvbmluZworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGhlIERSTSBIQUwgc2hvdWxkIHJldHVybiBCQURfVkFMVUUgaWYgYW4gZW1wdHkgcHJvdmlzaW9uaW5nCisgKiByZXNwb25zZSBpcyBwcm92aWRlZC4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgUHJvdmlkZUVtcHR5UHJvdmlzaW9uUmVzcG9uc2UpIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXNwb25zZTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2UsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEhlbHBlciBtZXRob2QgdG8gb3BlbiBhIHNlc3Npb24gYW5kIHZlcmlmeSB0aGF0IGEgbm9uLWVtcHR5CisgKiBzZXNzaW9uIElEIGlzIHJldHVybmVkCisgKi8KK1Nlc3Npb25JZCBEcm1IYWxDbGVhcmtleVBsdWdpblRlc3Q6Om9wZW5TZXNzaW9uKCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQ7CisKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+b3BlblNlc3Npb24oCisgICAgICAgICAgICBbJnNlc3Npb25JZF0oU3RhdHVzIHN0YXR1cywgY29uc3QgU2Vzc2lvbklkJiBpZCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9ORSgwdSwgaWQuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSBpZDsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIHJldHVybiBzZXNzaW9uSWQ7Cit9CisKKy8qKgorICogSGVscGVyIG1ldGhvZCB0byBjbG9zZSBhIHNlc3Npb24KKyAqLwordm9pZCBEcm1IYWxDbGVhcmtleVBsdWdpblRlc3Q6OmNsb3NlU2Vzc2lvbihjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCkgeworICAgIGF1dG8gcmVzdWx0ID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgcmVzdWx0KTsKK30KKworLyoqCisgKiBIZWxwZXIgbWV0aG9kIHRvIGxvYWQga2V5cyBmb3Igc3Vic2VxdWVudCBkZWNyeXB0IHRlc3RzLgorICogVGhlc2UgdGVzdHMgdXNlIHByZWRldGVybWluZWQga2V5IHJlcXVlc3QvcmVzcG9uc2UgdG8KKyAqIGF2b2lkIHJlcXVpcmluZyBhIHJvdW5kIHRyaXAgdG8gYSBsaWNlbnNlIHNlcnZlci4KKyAqLworaGlkbF92ZWM8dWludDhfdD4gRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0Ojpsb2FkS2V5cygKKyAgICBjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCwgY29uc3QgS2V5VHlwZSYgdHlwZSA9IEtleVR5cGU6OlNUUkVBTUlORykgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhID0geworICAgICAgICAvLyBCTUZGIGJveCBoZWFkZXIgKDQgYnl0ZXMgc2l6ZSArICdwc3NoJykKKyAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgzNCwgMHg3MCwgMHg3MywgMHg3MywgMHg2OCwKKyAgICAgICAgLy8gZnVsbCBib3ggaGVhZGVyICh2ZXJzaW9uID0gMSBmbGFncyA9IDApCisgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAgIC8vIHN5c3RlbSBpZAorICAgICAgICAweDEwLCAweDc3LCAweGVmLCAweGVjLCAweGMwLCAweGIyLCAweDRkLCAweDAyLCAweGFjLCAweGUzLCAweDNjLCAweDFlLAorICAgICAgICAweDUyLCAweGUyLCAweGZiLCAweDRiLAorICAgICAgICAvLyBudW1iZXIgb2Yga2V5IGlkcworICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAxLAorICAgICAgICAvLyBrZXkgaWQKKyAgICAgICAgMHg2MCwgMHgwNiwgMHgxZSwgMHgwMSwgMHg3ZSwgMHg0NywgMHg3ZSwgMHg4NywgMHg3ZSwgMHg1NywgMHhkMCwgMHgwZCwKKyAgICAgICAgMHgxZSwgMHhkMCwgMHgwZCwgMHgxZSwKKyAgICAgICAgLy8gc2l6ZSBvZiBkYXRhLCBtdXN0IGJlIHplcm8KKyAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH07CisKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBleHBlY3RlZEtleVJlcXVlc3QgPSB7CisgICAgICAgIDB4N2IsIDB4MjIsIDB4NmIsIDB4NjksIDB4NjQsIDB4NzMsIDB4MjIsIDB4M2EsIDB4NWIsIDB4MjIsIDB4NTksCisgICAgICAgIDB4NDEsIDB4NTksIDB4NjUsIDB4NDEsIDB4NTgsIDB4MzUsIDB4NDgsIDB4NjYsIDB4NmYsIDB4NjQsIDB4MmIsCisgICAgICAgIDB4NTYsIDB4MzksIDB4NDEsIDB4NGUsIDB4NDgsIDB4NzQsIDB4NDEsIDB4NGUsIDB4NDgsIDB4NjcsIDB4MjIsCisgICAgICAgIDB4NWQsIDB4MmMsIDB4MjIsIDB4NzQsIDB4NzksIDB4NzAsIDB4NjUsIDB4MjIsIDB4M2EsIDB4MjIsIDB4NzQsCisgICAgICAgIDB4NjUsIDB4NmQsIDB4NzAsIDB4NmYsIDB4NzIsIDB4NjEsIDB4NzIsIDB4NzksIDB4MjIsIDB4N2R9OworCisgICAgaGlkbF92ZWM8dWludDhfdD4ga25vd25LZXlSZXNwb25zZSA9IHsKKyAgICAgICAgMHg3YiwgMHgyMiwgMHg2YiwgMHg2NSwgMHg3OSwgMHg3MywgMHgyMiwgMHgzYSwgMHg1YiwgMHg3YiwgMHgyMiwKKyAgICAgICAgMHg2YiwgMHg3NCwgMHg3OSwgMHgyMiwgMHgzYSwgMHgyMiwgMHg2ZiwgMHg2MywgMHg3NCwgMHgyMiwgMHgyYywKKyAgICAgICAgMHgyMiwgMHg2YiwgMHg2OSwgMHg2NCwgMHgyMiwgMHgzYSwgMHgyMiwgMHg1OSwgMHg0MSwgMHg1OSwgMHg2NSwKKyAgICAgICAgMHg0MSwgMHg1OCwgMHgzNSwgMHg0OCwgMHg2NiwgMHg2ZiwgMHg2NCwgMHgyYiwgMHg1NiwgMHgzOSwgMHg0MSwKKyAgICAgICAgMHg0ZSwgMHg0OCwgMHg3NCwgMHg0MSwgMHg0ZSwgMHg0OCwgMHg2NywgMHgyMiwgMHgyYywgMHgyMiwgMHg2YiwKKyAgICAgICAgMHgyMiwgMHgzYSwgMHgyMiwgMHg0NywgMHg2ZiwgMHg2ZiwgMHg2NywgMHg2YywgMHg2NSwgMHg1NCwgMHg2NSwKKyAgICAgICAgMHg3MywgMHg3NCwgMHg0YiwgMHg2NSwgMHg3OSwgMHg0MiwgMHg2MSwgMHg3MywgMHg2NSwgMHgzNiwgMHgzNCwKKyAgICAgICAgMHg2NywgMHg2NywgMHg2NywgMHgyMiwgMHg3ZCwgMHg1ZCwgMHg3ZCwgMHgwYX07CisKKyAgICBoaWRsX3N0cmluZyBtaW1lVHlwZSA9ICJ2aWRlby9tcDQiOworICAgIEtleWVkVmVjdG9yIG9wdGlvbmFsUGFyYW1ldGVyczsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0S2V5UmVxdWVzdCgKKyAgICAgICAgc2Vzc2lvbklkLCBpbml0RGF0YSwgbWltZVR5cGUsIHR5cGUsIG9wdGlvbmFsUGFyYW1ldGVycywKKyAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiByZXF1ZXN0LAorICAgICAgICAgICAgS2V5UmVxdWVzdFR5cGUgcmVxdWVzdFR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJikgeworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoS2V5UmVxdWVzdFR5cGU6OklOSVRJQUwsIHJlcXVlc3RUeXBlKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShyZXF1ZXN0LCBleHBlY3RlZEtleVJlcXVlc3QpOworICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVNldElkOworICAgIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICBzZXNzaW9uSWQsIGtub3duS2V5UmVzcG9uc2UsCisgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgbXlLZXlTZXRJZCkgeworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoMHUsIG15S2V5U2V0SWQuc2l6ZSgpKTsKKyAgICAgICAgICAgIGtleVNldElkID0gbXlLZXlTZXRJZDsKKyAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgcmV0dXJuIGtleVNldElkOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhIHNlc3Npb24gY2FuIGJlIG9wZW5lZCBhbmQgY2xvc2VkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIE9wZW5DbG9zZVNlc3Npb24pIHsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGF0dGVtcHRpbmcgdG8gY2xvc2UgYW4gaW52YWxpZCAoZW1wdHkpIHNlc3Npb25JZAorICogaXMgcHJvaGliaXRlZCB3aXRoIHRoZSBkb2N1bWVudGVkIGVycm9yIGNvZGUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIENsb3NlSW52YWxpZFNlc3Npb24pIHsKKyAgICBTZXNzaW9uSWQgaW52YWxpZFNlc3Npb25JZDsKKyAgICBTdGF0dXMgcmVzdWx0ID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oaW52YWxpZFNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCByZXN1bHQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhdHRlbXB0aW5nIHRvIGNsb3NlIGEgc2Vzc2lvbiB0aGF0IGlzIGFscmVhZHkgY2xvc2VkCisgKiBpcyBwcm9oaWJpdGVkIHdpdGggdGhlIGRvY3VtZW50ZWQgZXJyb3IgY29kZS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgQ2xvc2VDbG9zZWRTZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgU3RhdHVzIHJlc3VsdCA9IGRybVBsdWdpbi0+Y2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgcmVzdWx0KTsKK30KKworLyoqCisgKiBBIGdldCBrZXkgcmVxdWVzdCBzaG91bGQgZmFpbCBpZiBubyBzZXNzaW9uSWQgaXMgcHJvdmlkZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0S2V5UmVxdWVzdE5vU2Vzc2lvbikgeworICAgIFNlc3Npb25JZCBpbnZhbGlkU2Vzc2lvbklkOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhOworICAgIGhpZGxfc3RyaW5nIG1pbWVUeXBlID0gInZpZGVvL21wNCI7CisgICAgS2V5ZWRWZWN0b3Igb3B0aW9uYWxQYXJhbWV0ZXJzOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRLZXlSZXF1ZXN0KAorICAgICAgICAgICAgaW52YWxpZFNlc3Npb25JZCwgaW5pdERhdGEsIG1pbWVUeXBlLCBLZXlUeXBlOjpTVFJFQU1JTkcsCisgICAgICAgICAgICBvcHRpb25hbFBhcmFtZXRlcnMsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mLCBLZXlSZXF1ZXN0VHlwZSwKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYpIHsgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOyB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUaGUgY2xlYXJrZXkgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBvZmZsaW5lIGtleSByZXF1ZXN0cy4KKyAqIFRlc3QgdGhhdCB0aGUgcGx1Z2luIHJldHVybnMgdGhlIGV4cGVjdGVkIGVycm9yIGNvZGUgaW4KKyAqIHRoaXMgY2FzZS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0S2V5UmVxdWVzdE9mZmxpbmVLZXlUeXBlTm90U3VwcG9ydGVkKSB7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhOworICAgIGhpZGxfc3RyaW5nIG1pbWVUeXBlID0gInZpZGVvL21wNCI7CisgICAgS2V5ZWRWZWN0b3Igb3B0aW9uYWxQYXJhbWV0ZXJzOworCisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldEtleVJlcXVlc3QoCisgICAgICAgICAgICBzZXNzaW9uSWQsIGluaXREYXRhLCBtaW1lVHlwZSwgS2V5VHlwZTo6T0ZGTElORSwgb3B0aW9uYWxQYXJhbWV0ZXJzLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiwgS2V5UmVxdWVzdFR5cGUsCisgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmKSB7CisgICAgICAgICAgICAgICAgLy8gQ2xlYXJrZXkgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBvZmZsaW5lIGtleSB0eXBlCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIHBsdWdpbiByZXR1cm5zIHRoZSBkb2N1bWVudGVkIGVycm9yIGZvciB0aGUKKyAqIGNhc2Ugb2YgYXR0ZW1wdGluZyB0byBnZW5lcmF0ZSBhIGtleSByZXF1ZXN0IHVzaW5nIGFuCisgKiBpbnZhbGlkIG1pbWUgdHlwZQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZXRLZXlSZXF1ZXN0QmFkTWltZSkgeworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0RGF0YTsKKyAgICBoaWRsX3N0cmluZyBtaW1lVHlwZSA9ICJ2aWRlby91bmtub3duIjsKKyAgICBLZXllZFZlY3RvciBvcHRpb25hbFBhcmFtZXRlcnM7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldEtleVJlcXVlc3QoCisgICAgICAgICAgICBzZXNzaW9uSWQsIGluaXREYXRhLCBtaW1lVHlwZSwgS2V5VHlwZTo6U1RSRUFNSU5HLAorICAgICAgICAgICAgb3B0aW9uYWxQYXJhbWV0ZXJzLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5UmVxdWVzdFR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGEgY2xvc2VkIHNlc3Npb25JRCByZXR1cm5zIFNFU1NJT05fTk9UX09QRU5FRAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBQcm92aWRlS2V5UmVzcG9uc2VDbG9zZWRTZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKKworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVJlc3BvbnNlID0gezB4N2IsIDB4MjIsIDB4NmIsIDB4NjUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3OSwgMHg3MywgMHgyMiwgMHgzYX07CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnByb3ZpZGVLZXlSZXNwb25zZSgKKyAgICAgICAgICAgIHNlc3Npb24sIGtleVJlc3BvbnNlLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlTZXRJZCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCBrZXlTZXRJZC5zaXplKCkpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGFuIGVtcHR5IHNlc3Npb25JRCByZXR1cm5zIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBQcm92aWRlS2V5UmVzcG9uc2VJbnZhbGlkU2Vzc2lvbklkKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlSZXNwb25zZSA9IHsweDdiLCAweDIyLCAweDZiLCAweDY1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzksIDB4NzMsIDB4MjIsIDB4M2F9OworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5wcm92aWRlS2V5UmVzcG9uc2UoCisgICAgICAgICAgICBzZXNzaW9uLCBrZXlSZXNwb25zZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5U2V0SWQpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCBrZXlTZXRJZC5zaXplKCkpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGFuIGVtcHR5IGtleSByZXNwb25zZSByZXR1cm5zIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBQcm92aWRlS2V5UmVzcG9uc2VFbXB0eVJlc3BvbnNlKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGVtcHR5UmVzcG9uc2U7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnByb3ZpZGVLZXlSZXNwb25zZSgKKyAgICAgICAgICAgIHNlc3Npb24sIGVtcHR5UmVzcG9uc2UsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVNldElkKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgwdSwga2V5U2V0SWQuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgYSByZW1vdmVLZXlzIG9uIGFuIGVtcHR5IHNlc3Npb25JRCByZXR1cm5zIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBSZW1vdmVLZXlzRW1wdHlTZXNzaW9uSWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlbW92ZUtleXMoc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpCQURfVkFMVUUpOworfQorCisvKioKKyAqIFJlbW92ZSBrZXlzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGNsZWFya2V5LgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBSZW1vdmVLZXlzTmV3U2Vzc2lvbikgeworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlbW92ZUtleXMoc2Vzc2lvbklkKTsKKyAgICAvLyBDbGVhcmtleSBwbHVnaW4gZG9lc24ndCBzdXBwb3J0IHJlbW92ZSBrZXlzCisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IENsZWFyS2V5IGNhbm5vdCBoYW5kbGUga2V5IHJlc3RvcmluZy4KKyAqIEV4cGVjdGVkIG1lc3NhZ2UgaXMgU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgUmVzdG9yZUtleXNDYW5ub3RIYW5kbGUpIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlTZXRJZCA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxfTsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZXN0b3JlS2V5cyhzZXNzaW9uSWQsIGtleVNldElkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgcmVzdG9yZUtleXMgZmFpbHMgd2l0aCBhIG51bGwga2V5IHNldCBJRC4KKyAqIEVycm9yIG1lc3NhZ2UgaXMgZXhwZWN0ZWQgdG8gYmUgU3RhdHVzOjpCQURfVkFMVUUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFJlc3RvcmVLZXlzTnVsbCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IG51bGxLZXlTZXRJZDsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZXN0b3JlS2V5cyhzZXNzaW9uSWQsIG51bGxLZXlTZXRJZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCB0aGUgY2xlYXJrZXkgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBnZXR0aW5nCisgKiBzZWN1cmUgc3RvcHMuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldFNlY3VyZVN0b3BzKSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFNlY3VyZVN0b3BzKAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPFNlY3VyZVN0b3A+JikgeworICAgICAgICAgICAgICAgIC8vIENsZWFya2V5IHBsdWdpbiBkb2Vzbid0IHN1cHBvcnQgc2VjdXJlIHN0b3BzCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIGNsZWFya2V5IHBsdWdpbiByZXR1cm5zIEJBRF9WQUxVRSBpZgorICogYW4gZW1wdHkgc3NpZCBpcyBwcm92aWRlZC4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0U2VjdXJlU3RvcEVtcHR5U1NJRCkgeworICAgIFNlY3VyZVN0b3BJZCBzc2lkOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRTZWN1cmVTdG9wKAorICAgICAgICAgICAgc3NpZCwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IFNlY3VyZVN0b3AmKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHJlbGVhc2luZyBhbGwgc2VjdXJlIHN0b3BzIGlzbid0IGhhbmRsZWQgYnkKKyAqIGNsZWFya2V5LgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBSZWxlYXNlQWxsU2VjdXJlU3RvcHMpIHsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgZHJtUGx1Z2luLT5yZWxlYXNlQWxsU2VjdXJlU3RvcHMoKSk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHJlbGVhc2luZyBhIHNwZWNpZmljIHNlY3VyZSBzdG9wIHdpdGggYW4gZW1wdHkKKyAqIFNTSUQgcmV0dXJucyBCQURfVkFMVUUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFJlbGVhc2VTZWN1cmVTdG9wRW1wdHlTU0lEKSB7CisgICAgU2VjdXJlU3RvcElkIHNzaWQ7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVsZWFzZVNlY3VyZVN0b3Aoc3NpZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworfQorCisvKioKKyAqIFRoZSBmb2xsb3dpbmcgZm91ciB0ZXN0cyB2ZXJpZnkgdGhhdCB0aGUgcHJvcGVydGllcworICogZGVmaW5lZCBpbiB0aGUgTWVkaWFEcm0gQVBJIGFyZSBzdXBwb3J0ZWQgYnkKKyAqIHRoZSBwbHVnaW4uCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldFZlbmRvclByb3BlcnR5KSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgInZlbmRvciIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoIkdvb2dsZSIsIHZhbHVlKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZXRWZXJzaW9uUHJvcGVydHkpIHsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0UHJvcGVydHlTdHJpbmcoCisgICAgICAgICAgICAidmVyc2lvbiIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoIjEuMCIsIHZhbHVlKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZXREZXNjcmlwdGlvblByb3BlcnR5KSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgiQ2xlYXJLZXkgQ0RNIiwgdmFsdWUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldEFsZ29yaXRobXNQcm9wZXJ0eSkgeworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJhbGdvcml0aG1zIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgiIiwgdmFsdWUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGF0dGVtcHRpbmcgdG8gcmVhZCBpbnZhbGlkIHN0cmluZyBhbmQgYnl0ZSBhcnJheQorICogcHJvcGVydGllcyByZXR1cm5zIHRoZSBkb2N1bWVudGVkIGVycm9yIGNvZGUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldEludmFsaWRTdHJpbmdQcm9wZXJ0eSkgeworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJpbnZhbGlkIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldEJ5dGVBcnJheVByb3BlcnR5Tm90U3VwcG9ydGVkKSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5Qnl0ZUFycmF5KAorICAgICAgICAgICAgImRldmljZVVuaXF1ZUlkIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogQ2xlYXJrZXkgZG9lc24ndCBzdXBwb3J0IHNldHRpbmcgc3RyaW5nIG9yIGJ5dGUgYXJyYXkgcHJvcGVydGllcywKKyAqIHBhcnRpY3VsYXJseSBhbiB1bmRlZmluZWQgb25lLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRTdHJpbmdQcm9wZXJ0eU5vdFN1cHBvcnRlZCkgeworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldFByb3BlcnR5U3RyaW5nKCJwcm9wZXJ0eSIsICJ2YWx1ZSIpOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRCeXRlQXJyYXlQcm9wZXJ0eU5vdFN1cHBvcnRlZCkgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHZhbHVlOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldFByb3BlcnR5Qnl0ZUFycmF5KCJwcm9wZXJ0eSIsIHZhbHVlKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKK30KKworLyoqCisgKiBDbGVhcmtleSBkb2Vzbid0IHN1cHBvcnQgc2V0dGluZyBjaXBoZXIgYWxnb3JpdGhtcywgdmVyaWZ5IGl0CisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldENpcGhlckFsZ29yaXRobU5vdFN1cHBvcnRlZCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiQUVTL0NCQy9Ob1BhZGRpbmciOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldENpcGhlckFsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBTZXR0aW5nIGFuIGVtcHR5IGFsZ29yaXRobSBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRDaXBoZXJFbXB0eUFsZ29yaXRobSkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG07CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0Q2lwaGVyQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBTZXR0aW5nIGEgY2lwaGVyIGFsZ29yaXRobSB3aXRoIG5vIHNlc3Npb24gcmV0dXJucyBCQURfVkFMVUUKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgU2V0Q2lwaGVyQWxnb3JpdGhtTm9TZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkFFUy9DQkMvTm9QYWRkaW5nIjsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRDaXBoZXJBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogQ2xlYXJrZXkgZG9lc24ndCBzdXBwb3J0IHNldHRpbmcgbWFjIGFsZ29yaXRobXMsIHZlcmlmeSBpdAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRNYWNBbGdvcml0aG1Ob3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkhtYWNTSEEyNTYiOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldE1hY0FsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBTZXR0aW5nIGFuIGVtcHR5IGFsZ29yaXRobSBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRNYWNFbXB0eUFsZ29yaXRobSkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG07CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0TWFjQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBTZXR0aW5nIGEgbWFjIGFsZ29yaXRobSB3aXRoIG5vIHNlc3Npb24gc2hvdWxkIHJldHVybiBCQURfVkFMVUUKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgU2V0TWFjQWxnb3JpdGhtTm9TZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkhtYWNTSEEyNTYiOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldE1hY0FsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKK30KKworLyoqCisgKiBUaGUgR2VuZXJpYyogbWV0aG9kcyBwcm92aWRlIGdlbmVyYWwgcHVycG9zZSBjcnlwdG8gb3BlcmF0aW9ucworICogdGhhdCBtYXkgYmUgdXNlZCBmb3IgYXBwbGljYXRpb25zIG90aGVyIHRoYW4gRFJNLiBUaGV5IGxldmVyYWdlCisgKiB0aGUgaGFyZHdhcmUgcm9vdCBvZiB0cnVzdCBhbmQgc2VjdXJlIGtleSBkaXN0cmlidXRpb24gbWVjaGFuaXNtcworICogb2YgYSBEUk0gc3lzdGVtIHRvIGVuYWJsZSBhcHAtc3BlY2lmaWMgY3J5cHRvIGZ1bmN0aW9uYWxpdHkgd2hlcmUKKyAqIHRoZSBjcnlwdG8ga2V5cyBhcmUgbm90IGV4cG9zZWQgb3V0c2lkZSBvZiB0aGUgdHJ1c3RlZCBleGVjdXRpb24KKyAqIGVudmlyb25tZW50LgorICoKKyAqIENsZWFya2V5IGRvZXNuJ3Qgc3VwcG9ydCBnZW5lcmljIGVuY3J5cHQvZGVjcnlwdC9zaWduL3ZlcmlmeS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2VuZXJpY0VuY3J5cHROb3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDF9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGlucHV0ID0gezEsIDIsIDMsIDQsIDV9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGl2ID0gc3RkOjp2ZWN0b3I8dWludDhfdD4oQUVTX0JMT0NLX1NJWkUsIDApOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5lbmNyeXB0KHNlc3Npb24sIGtleUlkLCBpbnB1dCwgaXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZW5lcmljRGVjcnlwdE5vdFN1cHBvcnRlZCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlJZCA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxfTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbnB1dCA9IHsxLCAyLCAzLCA0LCA1fTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpdiA9IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KEFFU19CTE9DS19TSVpFLCAwKTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+ZGVjcnlwdChzZXNzaW9uLCBrZXlJZCwgaW5wdXQsIGl2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2VuZXJpY1NpZ25Ob3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDF9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IG1lc3NhZ2UgPSB7MSwgMiwgMywgNCwgNX07CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnNpZ24oc2Vzc2lvbiwga2V5SWQsIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZW5lcmljVmVyaWZ5Tm90U3VwcG9ydGVkKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlJZCA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxfTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBtZXNzYWdlID0gezEsIDIsIDMsIDQsIDV9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+dmVyaWZ5KAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5SWQsIG1lc3NhZ2UsIHNpZ25hdHVyZSwgWyZdKFN0YXR1cyBzdGF0dXMsIGJvb2wpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2VuZXJpY1NpZ25SU0FOb3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIlJTQVNTQS1QU1MtU0hBMSI7CisgICAgaGlkbF92ZWM8dWludDhfdD4gbWVzc2FnZSA9IHsxLCAyLCAzLCA0LCA1fTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiB3cmFwcGVkS2V5ID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+c2lnblJTQShzZXNzaW9uLCBhbGdvcml0aG0sIG1lc3NhZ2UsIHdyYXBwZWRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqICBDcnlwdG9QbHVnaW4gdGVzdHMKKyAqLworCisvKioKKyAqIENsZWFya2V5IGRvZXNuJ3Qgc3VwcG9ydCBzZWN1cmUgZGVjb2RlciBhbmQgaXMgZXhwZWN0ZWQgdG8KKyAqIHJldHVybiBmYWxzZS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgUmVxdWlyZXNTZWN1cmVEZWNvZGVyKSB7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b1BsdWdpbi0+cmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50KCJjZW5jIikpOworfQorCisvKioKKyAqIFZlcmlmeSB0aGF0IHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCBoYW5kbGVzIGVtcHR5IG1pbWV0eXBlCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFJlcXVpcmVzU2VjdXJlRGVjb2RlckVtcHR5TWltZVR5cGUpIHsKKyAgICBFWFBFQ1RfRkFMU0UoY3J5cHRvUGx1Z2luLT5yZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQoIiIpKTsKK30KKworLyoqCisgKiBFeGVyY2lzZSB0aGUgTm90aWZ5UmVzb2x1dGlvbiBBUEkuIFRoZXJlIGlzIG5vIG9ic2VydmFibGUgcmVzdWx0LAorICoganVzdCBjYWxsIHRoZSBtZXRob2QgZm9yIGNvdmVyYWdlLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBOb3RpZnlSZXNvbHV0aW9uKSB7CisgICAgY3J5cHRvUGx1Z2luLT5ub3RpZnlSZXNvbHV0aW9uKDE5MjAsIDEwODApOworfQorCisvKioKKyAqIGdldERlY3J5cHRNZW1vcnkgYWxsb2NhdGVzIG1lbW9yeSBmb3IgZGVjcnlwdGlvbiwgdGhlbiBzZXRzIGl0CisgKiBhcyBhIHNoYXJlZCBidWZmZXIgYmFzZSBpbiB0aGUgY3J5cHRvIGhhbC4gIFRoZSBhbGxvY2F0ZWQgYW5kCisgKiBtYXBwZWQgSU1lbW9yeSBpcyByZXR1cm5lZC4KKyAqCisgKiBAcGFyYW0gc2l6ZSB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IHNlZ21lbnQgdG8gYWxsb2NhdGUKKyAqIEBwYXJhbSB0aGUgaW5kZXggb2YgdGhlIG1lbW9yeSBzZWdtZW50IHdoaWNoIHdpbGwgYmUgdXNlZAorICogdG8gcmVmZXIgdG8gaXQgZm9yIGRlY3J5cHRpb24uCisgKi8KK3NwPElNZW1vcnk+IERybUhhbENsZWFya2V5UGx1Z2luVGVzdDo6Z2V0RGVjcnlwdE1lbW9yeShzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgpIHsKKyAgICBzcDxJQWxsb2NhdG9yPiBhc2htZW1BbGxvY2F0b3IgPSBJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCJhc2htZW0iKTsKKyAgICBFWFBFQ1RfTkUoYXNobWVtQWxsb2NhdG9yLCBudWxscHRyKTsKKworICAgIGhpZGxfbWVtb3J5IGhpZGxNZW1vcnk7CisgICAgYXV0byByZXMgPSBhc2htZW1BbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICAgICAgc2l6ZSwgWyZdKGJvb2wgc3VjY2VzcywgY29uc3QgaGlkbF9tZW1vcnkmIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSh0cnVlLCBzdWNjZXNzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfT0soY3J5cHRvUGx1Z2luLT5zZXRTaGFyZWRCdWZmZXJCYXNlKG1lbW9yeSwgaW5kZXgpKTsKKyAgICAgICAgICAgICAgICBoaWRsTWVtb3J5ID0gbWVtb3J5OworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICBzcDxJTWVtb3J5PiBtYXBwZWRNZW1vcnkgPSBtYXBNZW1vcnkoaGlkbE1lbW9yeSk7CisgICAgRVhQRUNUX09LKGNyeXB0b1BsdWdpbi0+c2V0U2hhcmVkQnVmZmVyQmFzZShoaWRsTWVtb3J5LCBpbmRleCkpOworICAgIHJldHVybiBtYXBwZWRNZW1vcnk7Cit9CisKKy8qKgorICogRXhlcmNpc2UgdGhlIHNldE1lZGlhRHJtU2Vzc2lvbiBtZXRob2QuIHNldE1lZGlhRHJtU2Vzc2lvbgorICogaXMgdXNlZCB0byBhc3NvY2lhdGUgYSBkcm0gc2Vzc2lvbiB3aXRoIGEgY3J5cHRvIHNlc3Npb24uCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldE1lZGlhRHJtU2Vzc2lvbikgeworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBzZXRNZWRpYURybVNlc3Npb24gd2l0aCBhIGNsb3NlZCBzZXNzaW9uIGlkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldE1lZGlhRHJtU2Vzc2lvbkNsb3NlZFNlc3Npb24pIHsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKK30KKworLyoqCisgKiBzZXRNZWRpYURybVNlc3Npb24gd2l0aCBhbiBlbXB0eSBzZXNzaW9uIGlkOiBCQURfVkFMVUUuICBBbgorICogZW1wdHkgc2Vzc2lvbiBjbGVhcnMgdGhlIHByZXZpb3VzbHkgc2V0IHNlc3Npb24gYW5kIHNob3VsZAorICogcmV0dXJuIE9LLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRNZWRpYURybVNlc3Npb25FbXB0eVNlc3Npb24pIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworfQorCisvKioKKyAqIERlY3J5cHQgdGVzdHMKKyAqLworCitjbGFzcyBEcm1IYWxDbGVhcmtleURlY3J5cHRUZXN0IDogcHVibGljIERybUhhbENsZWFya2V5UGx1Z2luVGVzdCB7CisgICBwdWJsaWM6CisgICAgdm9pZCBmaWxsUmFuZG9tKGNvbnN0IHNwPElNZW1vcnk+JiBtZW1vcnkpOworICAgIGhpZGxfYXJyYXk8dWludDhfdCwgMTY+IHRvSGlkbEFycmF5KGNvbnN0IHZlY3Rvcjx1aW50OF90PiYgdmVjKSB7CisgICAgICAgIEVYUEVDVF9FUSgxNnUsIHZlYy5zaXplKCkpOworICAgICAgICByZXR1cm4gaGlkbF9hcnJheTx1aW50OF90LCAxNj4oJnZlY1swXSk7CisgICAgfQorICAgIHVpbnQzMl90IGRlY3J5cHQoTW9kZSBtb2RlLCB1aW50OF90KiBpdiwgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywKKyAgICAgICAgICAgIGNvbnN0IFBhdHRlcm4mIHBhdHRlcm4sIFN0YXR1cyBzdGF0dXMpOworICAgIHZvaWQgYWVzX2N0cl9kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywgdWludDhfdCogaXYsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLCBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSk7CisgICAgdm9pZCBhZXNfY2JjX2RlY3J5cHQodWludDhfdCogZGVzdCwgdWludDhfdCogc3JjLCB1aW50OF90KiBpdiwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5KTsKK307CisKK3ZvaWQgRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdDo6ZmlsbFJhbmRvbShjb25zdCBzcDxJTWVtb3J5PiYgbWVtb3J5KSB7CisgICAgcmFuZG9tX2RldmljZSByZDsKKyAgICBtdDE5OTM3IHJhbmQocmQoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtZW1vcnktPmdldFNpemUoKSAvIHNpemVvZih1aW50MzJfdCk7IGkrKykgeworICAgICAgICBhdXRvIHAgPSBzdGF0aWNfY2FzdDx1aW50MzJfdCo+KAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPihtZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICBwW2ldID0gcmFuZCgpOworICAgIH0KK30KKwordWludDMyX3QgRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdDo6ZGVjcnlwdChNb2RlIG1vZGUsCisgICAgICAgIHVpbnQ4X3QqIGl2LCBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLAorICAgICAgICBjb25zdCBQYXR0ZXJuJiBwYXR0ZXJuLCBTdGF0dXMgZXhwZWN0ZWRTdGF0dXMpIHsKKyAgICBjb25zdCBzaXplX3Qga1NlZ21lbnRJbmRleCA9IDA7CisgICAgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+IGtleUlkID0gezB4NjAsIDB4MDYsIDB4MWUsIDB4MDEsIDB4N2UsIDB4NDcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2UsIDB4ODcsIDB4N2UsIDB4NTcsIDB4ZDAsIDB4MGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUsIDB4ZDAsIDB4MGQsIDB4MWV9OworICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiBjb250ZW50S2V5ID0gezB4MWEsIDB4OGEsIDB4MjAsIDB4OTUsIDB4ZTQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkZSwgMHhiMiwgMHhkMiwgMHg5ZSwgMHhjOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2LCAweGFjLCAweDdiLCAweGFlLCAweDIwLCAweDgyfTsKKyAgICB1aW50OF90IGxvY2FsSXZbQUVTX0JMT0NLX1NJWkVdOworICAgIG1lbWNweShsb2NhbEl2LCBpdiwgQUVTX0JMT0NLX1NJWkUpOworCisgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWJTYW1wbGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIHRvdGFsU2l6ZSArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisgICAgICAgIHRvdGFsU2l6ZSArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhOworICAgIH0KKworICAgIC8vIFRoZSBmaXJzdCB0b3RhbFNpemUgYnl0ZXMgb2Ygc2hhcmVkIG1lbW9yeSBpcyB0aGUgZW5jcnlwdGVkCisgICAgLy8gaW5wdXQsIHRoZSBzZWNvbmQgdG90YWxTaXplIGJ5dGVzIGlzIHRoZSBkZWNyeXB0ZWQgb3V0cHV0LgorICAgIHNwPElNZW1vcnk+IHNoYXJlZE1lbW9yeSA9CisgICAgICAgICAgICBnZXREZWNyeXB0TWVtb3J5KHRvdGFsU2l6ZSAqIDIsIGtTZWdtZW50SW5kZXgpOworCisgICAgY29uc3QgU2hhcmVkQnVmZmVyIHNvdXJjZUJ1ZmZlciA9IHsKKyAgICAgICAgLmJ1ZmZlcklkID0ga1NlZ21lbnRJbmRleCwgLm9mZnNldCA9IDAsIC5zaXplID0gdG90YWxTaXplfTsKKyAgICBmaWxsUmFuZG9tKHNoYXJlZE1lbW9yeSk7CisKKyAgICBjb25zdCBEZXN0aW5hdGlvbkJ1ZmZlciBkZXN0QnVmZmVyID0gey50eXBlID0gQnVmZmVyVHlwZTo6U0hBUkVEX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuYnVmZmVySWQgPSBrU2VnbWVudEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vZmZzZXQgPSB0b3RhbFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNpemUgPSB0b3RhbFNpemV9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNlY3VyZU1lbW9yeSA9IG51bGxwdHJ9OworICAgIGNvbnN0IHVpbnQ2NF90IG9mZnNldCA9IDA7CisgICAgY29uc3QgYm9vbCBrTm90U2VjdXJlID0gZmFsc2U7CisgICAgdWludDMyX3QgYnl0ZXNXcml0dGVuID0gMDsKKyAgICBhdXRvIHJlcyA9IGNyeXB0b1BsdWdpbi0+ZGVjcnlwdChrTm90U2VjdXJlLCB0b0hpZGxBcnJheShrZXlJZCksIGxvY2FsSXYsIG1vZGUsCisgICAgICAgICAgICBwYXR0ZXJuLCBzdWJTYW1wbGVzLCBzb3VyY2VCdWZmZXIsIG9mZnNldCwgZGVzdEJ1ZmZlciwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCB1aW50MzJfdCBjb3VudCwgc3RyaW5nIGRldGFpbGVkRXJyb3IpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRTdGF0dXMsIHN0YXR1cykgPDwgIlVuZXhwZWN0ZWQgZGVjcnlwdCBzdGF0dXMgIiA8PAorICAgICAgICAgICAgICAgIGRldGFpbGVkRXJyb3I7CisgICAgICAgICAgICAgICAgYnl0ZXNXcml0dGVuID0gY291bnQ7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIGlmIChieXRlc1dyaXR0ZW4gIT0gdG90YWxTaXplKSB7CisgICAgICAgIHJldHVybiBieXRlc1dyaXR0ZW47CisgICAgfQorICAgIHVpbnQ4X3QqIGJhc2UgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oc2hhcmVkTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKworICAgIC8vIGdlbmVyYXRlIHJlZmVyZW5jZSB2ZWN0b3IKKyAgICB2ZWN0b3I8dWludDhfdD4gcmVmZXJlbmNlKHRvdGFsU2l6ZSk7CisKKyAgICBtZW1jcHkobG9jYWxJdiwgaXYsIEFFU19CTE9DS19TSVpFKTsKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIE1vZGU6OlVORU5DUllQVEVEOgorICAgICAgICBtZW1jcHkoJnJlZmVyZW5jZVswXSwgYmFzZSwgdG90YWxTaXplKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb2RlOjpBRVNfQ1RSOgorICAgICAgICBhZXNfY3RyX2RlY3J5cHQoJnJlZmVyZW5jZVswXSwgYmFzZSwgbG9jYWxJdiwgc3ViU2FtcGxlcywgY29udGVudEtleSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NCQzoKKyAgICAgICAgYWVzX2NiY19kZWNyeXB0KCZyZWZlcmVuY2VbMF0sIGJhc2UsIGxvY2FsSXYsIHN1YlNhbXBsZXMsIGNvbnRlbnRLZXkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vZGU6OkFFU19DQkNfQ1RTOgorICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSkgPDwgIkFFU19DQkNfQ1RTIG1vZGUgbm90IHN1cHBvcnRlZCI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIC8vIGNvbXBhcmUgcmVmZXJlbmNlIHRvIGRlY3J5cHRlZCBkYXRhIHdoaWNoIGlzIGF0IGJhc2UgKyB0b3RhbCBzaXplCisgICAgRVhQRUNUX0VRKDAsIG1lbWNtcChzdGF0aWNfY2FzdDx2b2lkICo+KCZyZWZlcmVuY2VbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KGJhc2UgKyB0b3RhbFNpemUpLCB0b3RhbFNpemUpKQorICAgICAgICAgICAgPDwgImRlY3J5cHQgZGF0YSBtaXNtYXRjaCI7CisgICAgcmV0dXJuIHRvdGFsU2l6ZTsKK30KKworLyoqCisgKiBEZWNyeXB0IGEgbGlzdCBvZiBjbGVhcitlbmNyeXB0ZWQgc3Vic2FtcGxlcyB1c2luZyB0aGUgc3BlY2lmaWVkIGtleQorICogaW4gQUVTLUNUUiBtb2RlCisgKi8KK3ZvaWQgRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdDo6YWVzX2N0cl9kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywKKyAgICAgICAgdWludDhfdCogaXYsIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsCisgICAgICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5KSB7CisgICAgQUVTX0tFWSBkZWNyeXB0aW9uS2V5OworICAgIEFFU19zZXRfZW5jcnlwdF9rZXkoJmtleVswXSwgMTI4LCAmZGVjcnlwdGlvbktleSk7CisKKyAgICBzaXplX3Qgb2Zmc2V0ID0gMDsKKyAgICB1bnNpZ25lZCBpbnQgYmxvY2tPZmZzZXQgPSAwOworICAgIHVpbnQ4X3QgcHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyW0FFU19CTE9DS19TSVpFXTsKKyAgICBtZW1zZXQocHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyLCAwLCBBRVNfQkxPQ0tfU0laRSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN1YlNhbXBsZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgY29uc3QgU3ViU2FtcGxlJiBzdWJTYW1wbGUgPSBzdWJTYW1wbGVzW2ldOworCisgICAgICAgIGlmIChzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YSA+IDApIHsKKyAgICAgICAgICAgIG1lbWNweShkZXN0ICsgb2Zmc2V0LCBzcmMgKyBvZmZzZXQsIHN1YlNhbXBsZS5udW1CeXRlc09mQ2xlYXJEYXRhKTsKKyAgICAgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEgPiAwKSB7CisgICAgICAgICAgICBBRVNfY3RyMTI4X2VuY3J5cHQoc3JjICsgb2Zmc2V0LCBkZXN0ICsgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICBzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEsICZkZWNyeXB0aW9uS2V5LAorICAgICAgICAgICAgICAgICAgICBpdiwgcHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyLCAmYmxvY2tPZmZzZXQpOworICAgICAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBEZWNyeXB0IGEgbGlzdCBvZiBjbGVhcitlbmNyeXB0ZWQgc3Vic2FtcGxlcyB1c2luZyB0aGUgc3BlY2lmaWVkIGtleQorICogaW4gQUVTLUNCQyBtb2RlCisgKi8KK3ZvaWQgRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdDo6YWVzX2NiY19kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywKKyAgICAgICAgdWludDhfdCogaXYsIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsCisgICAgICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5KSB7CisgICAgQUVTX0tFWSBkZWNyeXB0aW9uS2V5OworICAgIEFFU19zZXRfZW5jcnlwdF9rZXkoJmtleVswXSwgMTI4LCAmZGVjcnlwdGlvbktleSk7CisKKyAgICBzaXplX3Qgb2Zmc2V0ID0gMDsKKyAgICBzaXplX3QgbnVtID0gMDsKKyAgICBzaXplX3QgZWNvdW50X2J1ZiA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWJTYW1wbGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIG1lbWNweShkZXN0ICsgb2Zmc2V0LCBzcmMgKyBvZmZzZXQsIHN1YlNhbXBsZXNbaV0ubnVtQnl0ZXNPZkNsZWFyRGF0YSk7CisgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisKKyAgICAgICAgQUVTX2NiY19lbmNyeXB0KHNyYyArIG9mZnNldCwgZGVzdCArIG9mZnNldCwgc3ViU2FtcGxlc1tpXS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSwKKyAgICAgICAgICAgICAgICAmZGVjcnlwdGlvbktleSwgaXYsIDAgLyogZGVjcnlwdCAqLyk7CisgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhOworICAgIH0KK30KKworLyoqCisgKiBUZXN0IHF1ZXJ5IGtleSBzdGF0dXMKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RGVjcnlwdFRlc3QsIFRlc3RRdWVyeUtleVN0YXR1cykgeworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cXVlcnlLZXlTdGF0dXMoc2Vzc2lvbklkLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIEtleWVkVmVjdG9yIC8qIGluZm8gKi8pIHsKKyAgICAgICAgICAgICAgICAvLyBjbGVhcmtleSBkb2Vzbid0IHN1cHBvcnQgdGhpcyBtZXRob2QKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisKKy8qKgorICogUG9zaXRpdmUgZGVjcnlwdCB0ZXN0LiAgIkRlY3J5cHQiIGEgc2luZ2xlIGNsZWFyIHNlZ21lbnQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RGVjcnlwdFRlc3QsIENsZWFyU2VnbWVudFRlc3QpIHsKKyAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgIGNvbnN0IFBhdHRlcm4gbm9QYXR0ZXJuID0gezAsIDB9OworICAgIGNvbnN0IHVpbnQzMl90IGtCeXRlQ291bnQgPSAyNTY7CisgICAgY29uc3QgdmVjdG9yPFN1YlNhbXBsZT4gc3ViU2FtcGxlcyA9IHsKKyAgICAgICAgey5udW1CeXRlc09mQ2xlYXJEYXRhID0ga0J5dGVDb3VudCwKKyAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDB9fTsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgbG9hZEtleXMoc2Vzc2lvbklkKTsKKworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgY29uc3QgYm9vbCBrTm90U2VjdXJlID0gZmFsc2U7CisgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpVTkVOQ1JZUFRFRCwgJml2WzBdLCBzdWJTYW1wbGVzLAorICAgICAgICAgICAgbm9QYXR0ZXJuLCBTdGF0dXM6Ok9LKTsKKyAgICBFWFBFQ1RfRVEoa0J5dGVDb3VudCwgYnl0ZUNvdW50KTsKKworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFBvc2l0aXZlIGRlY3J5cHQgdGVzdC4gIERlY3J5cHQgYSBzaW5nbGUgc2VnbWVudCB1c2luZyBBRVNfQ1RSLgorICogVmVyaWZ5IGRhdGEgbWF0Y2hlcy4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RGVjcnlwdFRlc3QsIEVuY3J5cHRlZEFlc0N0clNlZ21lbnRUZXN0KSB7CisgICAgdmVjdG9yPHVpbnQ4X3Q+IGl2KEFFU19CTE9DS19TSVpFLCAwKTsKKyAgICBjb25zdCBQYXR0ZXJuIG5vUGF0dGVybiA9IHswLCAwfTsKKyAgICBjb25zdCB1aW50MzJfdCBrQ2xlYXJCeXRlcyA9IDUxMjsKKyAgICBjb25zdCB1aW50MzJfdCBrRW5jcnlwdGVkQnl0ZXMgPSA1MTI7CisgICAgY29uc3QgdmVjdG9yPFN1YlNhbXBsZT4gc3ViU2FtcGxlcyA9IHsKKyAgICAgICAgey5udW1CeXRlc09mQ2xlYXJEYXRhID0ga0NsZWFyQnl0ZXMsCisgICAgICAgICAubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEgPSBrRW5jcnlwdGVkQnl0ZXMKKyAgICAgICAgfX07CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGxvYWRLZXlzKHNlc3Npb25JZCk7CisKKyAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKworICAgIGNvbnN0IGJvb2wga05vdFNlY3VyZSA9IGZhbHNlOworICAgIHVpbnQzMl90IGJ5dGVDb3VudCA9IGRlY3J5cHQoTW9kZTo6QUVTX0NUUiwgJml2WzBdLCBzdWJTYW1wbGVzLAorICAgICAgICAgICAgbm9QYXR0ZXJuLCBTdGF0dXM6Ok9LKTsKKyAgICBFWFBFQ1RfRVEoa0NsZWFyQnl0ZXMgKyBrRW5jcnlwdGVkQnl0ZXMsIGJ5dGVDb3VudCk7CisKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKy8qKgorICogTmVnYXRpdmUgZGVjcnlwdCB0ZXN0LiBEZWNyeXB0IHdpdGhvdXQgbG9hZGluZyBrZXlzLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdCwgRW5jcnlwdGVkQWVzQ3RyU2VnbWVudFRlc3ROb0tleXMpIHsKKyAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgIGNvbnN0IFBhdHRlcm4gbm9QYXR0ZXJuID0gezAsIDB9OworICAgIGNvbnN0IHZlY3RvcjxTdWJTYW1wbGU+IHN1YlNhbXBsZXMgPSB7CisgICAgICAgIHsubnVtQnl0ZXNPZkNsZWFyRGF0YSA9IDI1NiwKKyAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDI1Nn19OworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgY29uc3QgYm9vbCBrTm90U2VjdXJlID0gZmFsc2U7CisgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpBRVNfQ1RSLCAmaXZbMF0sIHN1YlNhbXBsZXMsCisgICAgICAgICAgICBub1BhdHRlcm4sIFN0YXR1czo6RVJST1JfRFJNX05PX0xJQ0VOU0UpOworICAgIEVYUEVDVF9FUSgwdSwgYnl0ZUNvdW50KTsKKworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQpkaWZmIC0tZ2l0IGEvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9kcm1faGFsX3ZlbmRvcl9tb2R1bGVfYXBpLmggYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfdmVuZG9yX21vZHVsZV9hcGkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGIyMDUyCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9kcm1faGFsX3ZlbmRvcl9tb2R1bGVfYXBpLmgKQEAgLTAsMCArMSwyMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIERSTV9IQUxfVkVORE9SX01PRFVMRV9BUElfSAorI2RlZmluZSBEUk1fSEFMX1ZFTkRPUl9NT0RVTEVfQVBJX0gKKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dmVjdG9yPgorCisvKioKKyAqIFRoZSBEUk0gYW5kIENyeXB0byBIQUxzIGludGVyYWN0IHdpdGggdmVuZG9yLXByb3ZpZGVkIEhBTCBpbXBsZW1lbnRhdGlvbnMKKyAqIHRoYXQgaGF2ZSBEUk0tc3BlY2lmaWMgY2FwYWJpbGl0aWVzLiBTaW5jZSB0aGUgVlRTIHRlc3RzIGNhbm5vdCBjb250YWluCisgKiBEUk0tc3BlY2lmaWMgZnVuY3Rpb25hbGl0eSwgc3VwcG9ydGluZyBtb2R1bGVzIGFyZSByZXF1aXJlZCB0byBlbmFibGUgVlRTCisgKiB0byB2YWxpZGF0ZSBIQUwgaW1wbGVtZW50YXRpb25zIGluIGEgZ2VuZXJpYyB3YXkuICBJZiB0aGUgdmVuZG9yLXNwZWNpZmljCisgKiBWVFMgbW9kdWxlIGlzIG5vdCBwcm92aWRlZCBmb3IgYSBnaXZlbiBkcm0gSEFMIGltcGxlbWVudGF0aW9uLCBvbmx5IHZlcnkKKyAqIHNtYWxsIHN1YnNldCBvZiBmdW5jdGlvbmFsaXR5IGNhbiBiZSB2ZXJpZmllZC4KKyAqCisgKiBBcyBhbiBleGFtcGxlLCBhIERSTSBIQUwgaW1wbGVtZW50YXRpb24gaW50ZXJhY3RzIHdpdGggYSBEUk0tc3BlY2lmaWMKKyAqIGxpY2Vuc2Ugc2VydmVyIHRvIG9idGFpbiBsaWNlbnNlcyBmb3IgZGVjcnlwdGluZyBjb250ZW50LiAgVGhlIERSTSBIQUwKKyAqIGltcGxlbWVudGF0aW9uIGdlbmVyYXRlcyBhIGtleSByZXF1ZXN0IG1lc3NhZ2UsIGRlbGl2ZXJzIGl0IHRvIHRoZSBzZXJ2ZXIKKyAqIGFuZCByZWNlaXZlcyBhIGtleSByZXNwb25zZSBtZXNzYWdlIHdoaWNoIGlzIHRoZW4gbG9hZGVkIGludG8gdGhlIEhBTC4gT25jZQorICogdGhlIGtleXMgYXJlIGxvYWRlZCwgdGhlIENyeXB0byBIQUwgZGVjcnlwdGlvbiBmdW5jdGlvbmFsaXR5IGFuZCBwZXJmb3JtYW5jZQorICogYW5kIG90aGVyIGFzc29jaWF0ZWQgQVBJcyBjYW4gYmUgdGVzdGVkIGJ5IHRoZSBjb21tb24gVlRTIHRlc3Qgc3VpdGUuCisgKgorICogVmVuZG9yLXNwZWNpZmljIFZUUyBtb2R1bGVzIGFyZSBzaGFyZWQgbGlicmFyaWVzIHVzZWQgYnkgdGhlIERSTSBWVFMgdGVzdC4KKyAqIFRoZXkgcHJvdmlkZSBhIHNldCBvZiBmdW5jdGlvbnMgdG8gc3VwcG9ydCBWVFMgdGVzdGluZyBvZiB0aGUgRFJNIEhBTCBtb2R1bGUuCisgKgorICogVGhlIG1vZHVsZXMgYXJlIHBsYWNlZCBpbiBhIGNvbW1vbiBsb2NhdGlvbiBvbiB0aGUgZmlsZSBzeXN0ZW0uIFRoZSBWVFMgdGVzdAorICogc2NhbnMgdGhyb3VnaCBhbGwgdmVuZG9yLXByb3ZpZGVkIHN1cHBvcnQgbGlicmFyaWVzIGFuZCBydW5zIHRoZSBWVFMgdGVzdAorICogc3VpdGUgb24gZWFjaCBsaWJyYXJ5IHRoYXQgaXMgZm91bmQuCisgKgorICogVGhlIHZlbmRvci1zcGVjaWZpYyBtb2R1bGUgZXhwb3NlcyBhbiBleHRlcm4g4oCcQ+KAnSB2ZW5kb3JNb2R1bGVGYWN0b3J5KCkKKyAqIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIERybUhhbFZUU1ZlbmRvck1vZHVsZSBpbnN0YW5jZS4gRHJtSGFsVlRTVmVuZG9yTW9kdWxlCisgKiBpbnN0YW5jZXMgYXJlIHZlcnNpb25lZCwgd2hlcmUgZWFjaCB2ZXJzaW9uIGlzIHJlcHJlc2VudGVkIGJ5IHN1YmNsYXNzIG9mCisgKiBEcm1IYWxWVFNWZW5kb3JNb2R1bGUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgQVBJIHZlcnNpb24uIEZvciBleGFtcGxlLCBhCisgKiB2ZW5kb3Itc3BlY2lmaWMgbW9kdWxlIHRoYXQgaW1wbGVtZW50cyB2ZXJzaW9uIDEgb2YgdGhlIEFQSSB3b3VsZCByZXR1cm4gYQorICogRHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxIGZyb20gdGhlIHZlbmRvck1vZHVsZUZhY3RvcnkoKSBmdW5jdGlvbi4KKyAqLworCitjbGFzcyBEcm1IYWxWVFNWZW5kb3JNb2R1bGU7CisKK2V4dGVybiAiQyIgeworLyoqCisgKiBUaGUgZmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0aW5nIERybUhhbFZUU1ZlbmRvck1vZHVsZSBpbnN0YW5jZXMuIFRoZSByZXR1cm5lZAorICogaW5zdGFuY2Ugd2lsbCBiZSBhIHN1YmNsYXNzIG9mIERybUhhbFZUU1ZlbmRvck1vZHVsZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZQorICogc3VwcG9ydGVkIEFQSSB2ZXJzaW9uLgorICovCitEcm1IYWxWVFNWZW5kb3JNb2R1bGUqIHZlbmRvck1vZHVsZUZhY3RvcnkoKTsKK307CisKK2NsYXNzIERybUhhbFZUU1ZlbmRvck1vZHVsZSB7CisgICBwdWJsaWM6CisgICAgRHJtSGFsVlRTVmVuZG9yTW9kdWxlKCkgOiBpbnN0YWxsZWQodHJ1ZSkge30KKyAgICB2aXJ0dWFsIH5Ecm1IYWxWVFNWZW5kb3JNb2R1bGUoKSB7fQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB2ZW5kb3Itc3BlY2lmaWMgbW9kdWxlIEFQSSB2ZXJzaW9uLiBUaGUgdmVyc2lvbiBpcyBhbiBpbnRlZ2VyCisgICAgICogdmFsdWUgd2l0aCBpbml0aWFsIHZlcnNpb24gMS4gVGhlIEFQSSB2ZXJzaW9uIGluZGljYXRlcyB3aGljaCBzdWJjbGFzcworICAgICAqIHZlcnNpb24gRHJtSGFsVlRTVmVuZG9yTW9kdWxlIHRoaXMgaW5zdGFuY2UgaXMuCisgICAgICovCisgICAgdmlydHVhbCB1aW50MzJfdCBnZXRBUElWZXJzaW9uKCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBVVUlEIGZvciB0aGUgRFJNIEhBTCBpbXBsZW1lbnRhdGlvbi4gUHJvdGVjdGlvbiBTeXN0ZW0KKyAgICAgKiBTcGVjaWZpYworICAgICAqIFVVSUQgKHNlZSBodHRwOi8vZGFzaGlmLm9yZy9pZGVudGlmaWVycy9wcm90ZWN0aW9uLykKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGdldFVVSUQoKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNlcnZpY2UgbmFtZSBmb3IgdGhlIERSTSBIQUwgaW1wbGVtZW50YXRpb24uIElmIHRoZSBoYWwgaXMgYQorICAgICAqIGxlZ2FjeQorICAgICAqIGRybSBwbHVnaW4sIGkuZS4gbm90IHJ1bm5pbmcgYXMgYSBISURMIHNlcnZpY2UsIHJldHVybiB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqLworICAgIHZpcnR1YWwgc3RkOjpzdHJpbmcgZ2V0U2VydmljZU5hbWUoKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBmbGFnIGluIHRoZSB2ZW5kb3IgbW9kdWxlIHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IHRoZSBkcm0KKyAgICAgKiBzY2hlbWUgY29ycmVzcG9uZGluZyB0byB0aGlzIG1vZHVsZSBpcyBpbnN0YWxsZWQgb24gdGhlIGRldmljZS4KKyAgICAgKi8KKyAgICB2b2lkIHNldEluc3RhbGxlZChib29sIGZsYWcpIHtpbnN0YWxsZWQgPSBmbGFnO30KKyAgICBib29sIGlzSW5zdGFsbGVkKCkgY29uc3Qge3JldHVybiBpbnN0YWxsZWQ7fQorCisgICBwcml2YXRlOgorICAgIGJvb2wgaW5zdGFsbGVkOworICAgIERybUhhbFZUU1ZlbmRvck1vZHVsZShjb25zdCBEcm1IYWxWVFNWZW5kb3JNb2R1bGUmKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBEcm1IYWxWVFNWZW5kb3JNb2R1bGUmKSA9IGRlbGV0ZTsKK307CisKKy8qKgorICogQVBJIFZlcnNpb24gMS4gIFRoaXMgaXMgdGhlIGJhc2VsaW5lIHZlcnNpb24gdGhhdCBzdXBwb3J0cyBhIG1pbmltYWwgc2V0CisgKiBvZiBWVFMgdGVzdHMuCisgKi8KK2NsYXNzIERybUhhbFZUU1ZlbmRvck1vZHVsZV9WMSA6IHB1YmxpYyBEcm1IYWxWVFNWZW5kb3JNb2R1bGUgeworICAgcHVibGljOgorICAgIERybUhhbFZUU1ZlbmRvck1vZHVsZV9WMSgpIHt9CisgICAgdmlydHVhbCB+RHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxKCkge30KKworICAgIHZpcnR1YWwgdWludDMyX3QgZ2V0QVBJVmVyc2lvbigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KKworICAgIC8qKgorICAgICAqIEhhbmRsZSBhIHByb3Zpc2lvbmluZyByZXF1ZXN0LiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGlmIHRoZSBIQUwKKyAgICAgKiBtb2R1bGUncyBnZXRQcm92aXNpb25SZXF1ZXN0IHJldHVybnMgYSBwcm92aXNpb24gcmVxdWVzdC4gIFRoZSB2ZW5kb3IKKyAgICAgKiBtb2R1bGUgc2hvdWxkIHByb2Nlc3MgdGhlIHByb3Zpc2lvbmluZyByZXF1ZXN0LCBlaXRoZXIgYnkgc2VuZGluZyBpdAorICAgICAqIHRvIGEgcHJvdmlzaW9uaW5nIHNlcnZlciwgb3IgZ2VuZXJhdGluZyBhIG1vY2sgcmVzcG9uc2UuICBUaGUgcmVzdWx0aW5nCisgICAgICogcHJvdmlzaW9uaW5nIHJlc3BvbnNlIGlzIHJldHVybmVkIHRvIHRoZSBWVFMgdGVzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm92aXNpb25pbmdSZXF1ZXN0IHRoZSBwcm92aXNpb25pbmcgcmVxdWVzdCByZWNpZXZlZCBmcm9tCisgICAgICogdGhlIERSTSBIQUwKKyAgICAgKiBAcGFyYW0gdXJsIHRoZSBkZWZhdWx0IHVybCB0aGUgSEFMIGltcGxlbWVudGF0aW9uIHByb3ZpZGVkIHdpdGggdGhlCisgICAgICogcHJvdmlzaW9uaW5nIHJlcXVlc3QKKyAgICAgKiBAcmV0dXJuIHRoZSBnZW5lcmF0ZWQgcHJvdmlzaW9uaW5nIHJlc3BvbnNlCisgICAgICovCisgICAgdmlydHVhbCBzdGQ6OnZlY3Rvcjx1aW50OF90PiBoYW5kbGVQcm92aXNpb25pbmdSZXF1ZXN0KAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHByb3Zpc2lvbmluZ1JlcXVlc3QsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgdXJsKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb250ZW50IGNvbmZpZ3VyYXRpb24gc3BlY2lmaWVzIGNvbnRlbnQtc3BlY2lmaWMgcGFyYW1ldGVycyBhc3NvY2lhdGVkCisgICAgICogd2l0aCBhIGtleSByZXF1ZXN0L3Jlc3BvbnNlIHRyYW5zYWN0aW9uLiBJdCBhbGxvd3MgdGhlIFZUUyB0ZXN0IHRvCisgICAgICogcmVxdWVzdCBrZXlzIGFuZCB1c2UgdGhlbSB0byBwZXJmb3JtIGRlY3J5cHRpb24uCisgICAgICovCisgICAgc3RydWN0IENvbnRlbnRDb25maWd1cmF0aW9uIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFzc2lnbiBhIG5hbWUgZm9yIHRoaXMgY29uZmlndXJhdGlvbiB0aGF0IHdpbGwgYmUgcmVmZXJyZWQgdG8KKyAgICAgICAgICogaW4gbG9nIG1lc3NhZ2VzLgorICAgICAgICAgKi8KKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgbmFtZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogU2VydmVyIHRvIHVzZSB3aGVuIHJlcXVlc3RpbmcgYSBrZXkgcmVzcG9uc2UuICBUaGlzIHVybCB3aWxsIGJlCisgICAgICAgICAqIHBhc3NlZCBhcyBhIHBhcmFtZXRlciB0byB0aGUgdmVuZG9yIHZ0cyBtb2R1bGUgYWxvbmcgd2l0aCB0aGUKKyAgICAgICAgICoga2V5IHJlcXVlc3QgdG8gcGVyZm9ybSB0aGUga2V5IHJlcXVlc3QgdHJhbnNhY3Rpb24uCisgICAgICAgICAqLworICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBzZXJ2ZXJVcmw7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEluaXRpYWxpemF0aW9uIGRhdGEgcHJvdmlkZWQgdG8gZ2V0S2V5UmVxdWVzdCwgZS5nLiBQU1NIIGZvciBDRU5DCisgICAgICAgICAqIGNvbnRlbnQKKyAgICAgICAgICovCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGluaXREYXRhOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAgTWltZSB0eXBlIHByb3ZpZGVkIHRvIGdldEtleVJlcXVlc3QsIGUuZy4gInZpZGVvL21wNCIsIG9yICJjZW5jIgorICAgICAgICAgKi8KKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgbWltZVR5cGU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE9wdGlvbmFsIHBhcmFtZXRlcnMgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkgcmVxdWVzdAorICAgICAgICAgKi8KKyAgICAgICAgY29uc3Qgc3RkOjptYXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPiBvcHRpb25hbFBhcmFtZXRlcnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqICBEZWZpbmUgbGljZW5zZSBwb2xpY3kgYXR0cmlidXRlcyBmb3IgdGhlIGNvbnRlbnQgY29uZmlndXJhdGlvbi4KKyAgICAgICAgICogIFRoZXNlIGF0dHJpYnV0ZXMgY2FuIGFmZmVjdCB3aGljaCB0ZXN0cyBhcmUgYWJsZSB0byBiZSBhcHBsaWVkLgorICAgICAgICAgKi8KKyAgICAgICAgc3RydWN0IFBvbGljeSB7CisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIEluZGljYXRlIGlmIHRoZSBsaWNlbnNlIHBvbGljeSBhbGxvd3Mgb2ZmbGluZSBwbGF5YmFjay4KKyAgICAgICAgICAgICAqIENvbnRlbnQgY29uZmlndXJhdGVkIHdpdGggdGhpcyBwb2xpY3kgc3VwcG9ydHMgS2V5VHlwZTo6T0ZGTElORQorICAgICAgICAgICAgICoga2V5IHJlcXVlc3RzL3Jlc3BvbnNlcy4gQSB2ZW5kb3IgbW9kdWxlIHNob3VsZCBwcm92aWRlIGF0IGxlYXN0CisgICAgICAgICAgICAgKiBvbmUgY29udGVudCBjb25maWd1cmF0aW9uIHdoZXJlIGFsbG93T2ZmbGluZSBpcyB0cnVlIGlmIHRoZSBkcm0KKyAgICAgICAgICAgICAqIHNjaGVtZSBzdXBwb3J0cyBvZmZsaW5lIGNvbnRlbnQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGJvb2wgYWxsb3dPZmZsaW5lOworICAgICAgICB9IHBvbGljeTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGtleXMgdGhhdCB3aWxsIGJlIGF2YWlsYWJsZSBvbmNlIHRoZSBrZXlzIGFyZSBsb2FkZWQKKyAgICAgICAgICovCisgICAgICAgIHN0cnVjdCBLZXkgeworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBJbmRpY2F0ZSBpZiB0aGUga2V5IGNvbnRlbnQgaXMgY29uZmlndXJlZCB0byByZXF1aXJlIHNlY3VyZQorICAgICAgICAgICAgICogYnVmZmVycywgd2hlcmUgdGhlIG91dHB1dCBidWZmZXJzIGFyZSBwcm90ZWN0ZWQgYW5kIGNhbm5vdCBiZQorICAgICAgICAgICAgICogYWNjZXNzZWQgYnkgdGhlIG5vbi1zZWN1cmUgY3B1LiBBIHZlbmRvciBtb2R1bGUgc2hvdWxkIHByb3ZpZGUKKyAgICAgICAgICAgICAqIGF0IGxlYXN0IG9uZSBjb250ZW50IGNvbmZpZ3VyYXRpb25zIHdoZXJlIGlzU2VjdXJlIGlzIGZhbHNlLCB0bworICAgICAgICAgICAgICogYWxsb3cgZGVjcnlwdCByZXN1bHQgdmVyaWZpY2F0aW9uIHRlc3RzIHRvIGJlIHJ1bi4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgYm9vbCBpc1NlY3VyZTsKKworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBBIGtleSBJRCBpZGVudGlmaWVzIGEga2V5IHRvIHVzZSBmb3IgZGVjcnlwdGlvbgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiBrZXlJZDsKKworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBUaGUgY2xlYXIgY29udGVudCBrZXkgaXMgcHJvdmlkZWQgdG8gZ2VuZXJhdGUgZXhwZWN0ZWQgdmFsdWVzIGZvcgorICAgICAgICAgICAgICogdmFsaWRhdGluZyBkZWNyeXB0aW9uLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiBjbGVhckNvbnRlbnRLZXk7CisgICAgICAgIH07CisgICAgICAgIHN0ZDo6dmVjdG9yPEtleT4ga2V5czsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbGlzdCBvZiBjb250ZW50IGNvbmZpZ3VyYXRpb25zIHRoYXQgY2FuIGJlIGV4ZXJjaXNlZCBieSB0aGUKKyAgICAgKiBWVFMgdGVzdC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIHN0ZDo6dmVjdG9yPENvbnRlbnRDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgZ2V0Q29udGVudENvbmZpZ3VyYXRpb25zKCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogSGFuZGxlIGEga2V5IHJlcXVlc3QuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgaWYgdGhlIEhBTAorICAgICAqIG1vZHVsZSdzIGdldEtleVJlcXVlc3QgcmV0dXJucyBhIGtleSByZXF1ZXN0LiAgVGhlIHZlbmRvcgorICAgICAqIG1vZHVsZSBzaG91bGQgcHJvY2VzcyB0aGUga2V5IHJlcXVlc3QsIGVpdGhlciBieSBzZW5kaW5nIGl0CisgICAgICogdG8gYSBsaWNlbnNlIHNlcnZlciwgb3IgYnkgZ2VuZXJhdGluZyBhIG1vY2sgcmVzcG9uc2UuICBUaGUgcmVzdWx0aW5nCisgICAgICoga2V5IHJlc3BvbnNlIGlzIHJldHVybmVkIHRvIHRoZSBWVFMgdGVzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlSZXF1ZXN0IHRoZSBrZXkgcmVxdWVzdCByZWNpZXZlZCBmcm9tIHRoZSBEUk0gSEFMCisgICAgICogQHBhcmFtIHNlcnZlclVybCB0aGUgdXJsIG9mIHRoZSBrZXkgc2VydmVyIHRoYXQgd2FzIHN1cHBsaWVkCisgICAgICogYnkgdGhlIENvbnRlbnRDb25maWd1cmF0aW9uCisgICAgICogQHJldHVybiB0aGUgZ2VuZXJhdGVkIGtleSByZXNwb25zZQorICAgICAqLworICAgIHZpcnR1YWwgc3RkOjp2ZWN0b3I8dWludDhfdD4gaGFuZGxlS2V5UmVxdWVzdCgKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBrZXlSZXF1ZXN0LAorICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIHNlcnZlclVybCkgPSAwOworfTsKKworI2VuZGlmICAvLyBEUk1fSEFMX1ZFTkRPUl9NT0RVTEVfQVBJX0gKZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvZHJtX2hhbF92ZW5kb3JfdGVzdC5jcHAgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfdmVuZG9yX3Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZmI2ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfdmVuZG9yX3Rlc3QuY3BwCkBAIC0wLDAgKzEsMTYwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiZHJtX2hhbF92ZW5kb3JfdGVzdEAxLjAiCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvUGx1Z2luLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1GYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW4uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybVBsdWdpbkxpc3RlbmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG9wZW5zc2wvYWVzLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHJhbmRvbT4KKworI2luY2x1ZGUgImRybV9oYWxfdmVuZG9yX21vZHVsZV9hcGkuaCIKKyNpbmNsdWRlICJ2ZW5kb3JfbW9kdWxlcy5oIgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRDYWxsYmFja0Jhc2UuaD4KKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpCdWZmZXJUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpEZXN0aW5hdGlvbkJ1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6RXZlbnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SUNyeXB0b1BsdWdpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybUZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1QbHVnaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1QbHVnaW5MaXN0ZW5lcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5ZWRWZWN0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVJlcXVlc3RUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpLZXlTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVN0YXR1c1R5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpQYXR0ZXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTZWN1cmVTdG9wOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTZWN1cmVTdG9wSWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNlc3Npb25JZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U2hhcmVkQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlN1YlNhbXBsZTsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpzcDsKKwordXNpbmcgc3RkOjpzdHJpbmc7Cit1c2luZyBzdGQ6OnVuaXF1ZV9wdHI7Cit1c2luZyBzdGQ6OnJhbmRvbV9kZXZpY2U7Cit1c2luZyBzdGQ6Om1hcDsKK3VzaW5nIHN0ZDo6bXQxOTkzNzsKK3VzaW5nIHN0ZDo6dmVjdG9yOworCit1c2luZyBDb250ZW50Q29uZmlndXJhdGlvbiA9IDo6RHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxOjpDb250ZW50Q29uZmlndXJhdGlvbjsKK3VzaW5nIEtleSA9IDo6RHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxOjpDb250ZW50Q29uZmlndXJhdGlvbjo6S2V5OwordXNpbmcgVnRzVGVzdEJhc2UgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTsKKworI2RlZmluZSBBU1NFUlRfT0socmV0KSBBU1NFUlRfVFJVRShyZXQuaXNPaygpKQorI2RlZmluZSBFWFBFQ1RfT0socmV0KSBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKQorCisjZGVmaW5lIFJFVFVSTl9JRl9TS0lQUEVEIFwKKyAgICBpZiAoIXZlbmRvck1vZHVsZS0+aXNJbnN0YWxsZWQoKSkgeyBcCisgICAgICAgIHN0ZDo6Y291dCA8PCAiWyAgU0tJUFBFRCBdIFRoaXMgZHJtIHNjaGVtZSBub3Qgc3VwcG9ydGVkLiIgPDwgXAorICAgICAgICAgICAgICAgICIgbGlicmFyeToiIDw8IEdldFBhcmFtKCkgPDwgIiBzZXJ2aWNlLW5hbWU6IiA8PCBcCisgICAgICAgICAgICAgICAgdmVuZG9yTW9kdWxlLT5nZXRTZXJ2aWNlTmFtZSgpIDw8IHN0ZDo6ZW5kbDsgXAorICAgICAgICByZXR1cm47IFwKKyAgICB9CisKK3N0YXRpYyBjb25zdCB1aW50OF90IGtJbnZhbGlkVVVJRFsxNl0gPSB7CisgICAgICAgIDB4MTAsIDB4MjAsIDB4MzAsIDB4NDAsIDB4NTAsIDB4NjAsIDB4NzAsIDB4ODAsCisgICAgICAgIDB4MTAsIDB4MjAsIDB4MzAsIDB4NDAsIDB4NTAsIDB4NjAsIDB4NzAsIDB4ODAsCit9OworCitzdGF0aWMgZHJtX3Z0czo6VmVuZG9yTW9kdWxlcyogZ1ZlbmRvck1vZHVsZXMgPSBudWxscHRyOworCitjbGFzcyBEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPHN0ZDo6c3RyaW5nPiB7CisgICBwdWJsaWM6CisgICAgRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QoKQorICAgICAgICA6IHZlbmRvck1vZHVsZShzdGF0aWNfY2FzdDxEcm1IYWxWVFNWZW5kb3JNb2R1bGVfVjEqPigKKyAgICAgICAgICAgICAgICAgICAgICAgIGdWZW5kb3JNb2R1bGVzLT5nZXRNb2R1bGUoR2V0UGFyYW0oKSkpKSwKKyAgICAgICAgICBjb250ZW50Q29uZmlndXJhdGlvbnModmVuZG9yTW9kdWxlLT5nZXRDb250ZW50Q29uZmlndXJhdGlvbnMoKSkge30KKworICAgIHZpcnR1YWwgfkRybUhhbFZlbmRvckZhY3RvcnlUZXN0KCkge30KKworICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0KKyAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOworICAgICAgICBBTE9HRCgiUnVubmluZyB0ZXN0ICVzLiVzIGZyb20gdmVuZG9yIG1vZHVsZSAlcyIsCisgICAgICAgICAgICAgIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSwgdGVzdF9pbmZvLT5uYW1lKCksCisgICAgICAgICAgICAgIEdldFBhcmFtKCkuY19zdHIoKSk7CisKKyAgICAgICAgQVNTRVJUX05FKHZlbmRvck1vZHVsZSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gRmlyc3QgdHJ5IHRoZSBiaW5kZXJpemVkIHNlcnZpY2UgbmFtZSBwcm92aWRlZCBieSB0aGUgdmVuZG9yIG1vZHVsZS4KKyAgICAgICAgLy8gSWYgdGhhdCBmYWlscywgd2hpY2ggaXQgY2FuIG9uIG5vbi1iaW5kZXJpemVkIGRldmljZXMsIHRyeSB0aGUgZGVmYXVsdAorICAgICAgICAvLyBzZXJ2aWNlLgorICAgICAgICBzdHJpbmcgbmFtZSA9IHZlbmRvck1vZHVsZS0+Z2V0U2VydmljZU5hbWUoKTsKKyAgICAgICAgZHJtRmFjdG9yeSA9IFZ0c1Rlc3RCYXNlOjpnZXRTZXJ2aWNlPElEcm1GYWN0b3J5PihuYW1lKTsKKyAgICAgICAgaWYgKGRybUZhY3RvcnkgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgZHJtRmFjdG9yeSA9IFZ0c1Rlc3RCYXNlOjpnZXRTZXJ2aWNlPElEcm1GYWN0b3J5PigpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9ORShkcm1GYWN0b3J5LCBudWxscHRyKTsKKworICAgICAgICAvLyBEbyB0aGUgc2FtZSBmb3IgdGhlIGNyeXB0byBmYWN0b3J5CisgICAgICAgIGNyeXB0b0ZhY3RvcnkgPSBWdHNUZXN0QmFzZTo6Z2V0U2VydmljZTxJQ3J5cHRvRmFjdG9yeT4obmFtZSk7CisgICAgICAgIGlmIChjcnlwdG9GYWN0b3J5ID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIFZ0c1Rlc3RCYXNlOjpnZXRTZXJ2aWNlPElDcnlwdG9GYWN0b3J5PigpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9ORShjcnlwdG9GYWN0b3J5LCBudWxscHRyKTsKKworICAgICAgICAvLyBJZiBkcm0gc2NoZW1lIG5vdCBpbnN0YWxsZWQgc2tpcCBzdWJzZXF1ZW50IHRlc3RzCisgICAgICAgIGlmICghZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoZ2V0VmVuZG9yVVVJRCgpKSkgeworICAgICAgICAgICAgdmVuZG9yTW9kdWxlLT5zZXRJbnN0YWxsZWQoZmFsc2UpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICAgcHJvdGVjdGVkOgorICAgIGhpZGxfYXJyYXk8dWludDhfdCwgMTY+IGdldFZlbmRvclVVSUQoKSB7CisgICAgICAgIHZlY3Rvcjx1aW50OF90PiB1dWlkID0gdmVuZG9yTW9kdWxlLT5nZXRVVUlEKCk7CisgICAgICAgIHJldHVybiBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PigmdXVpZFswXSk7CisgICAgfQorCisgICAgc3A8SURybUZhY3Rvcnk+IGRybUZhY3Rvcnk7CisgICAgc3A8SUNyeXB0b0ZhY3Rvcnk+IGNyeXB0b0ZhY3Rvcnk7CisgICAgdW5pcXVlX3B0cjxEcm1IYWxWVFNWZW5kb3JNb2R1bGVfVjE+IHZlbmRvck1vZHVsZTsKKyAgICBjb25zdCB2ZWN0b3I8Q29udGVudENvbmZpZ3VyYXRpb24+IGNvbnRlbnRDb25maWd1cmF0aW9uczsKK307CisKK1RFU1RfUChEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCwgVmFsaWRhdGVDb25maWd1cmF0aW9ucykgeworICAgIGNvbnN0IGNoYXIqIGtWZW5kb3JTdHIgPSAiVmVuZG9yIG1vZHVsZSAiOworICAgIHNpemVfdCBjb3VudCA9IDA7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBBU1NFUlRfVFJVRShjb25maWcubmFtZS5zaXplKCkgPiAwKSA8PCBrVmVuZG9yU3RyIDw8ICJoYXMgbm8gbmFtZSI7CisgICAgICAgIEFTU0VSVF9UUlVFKGNvbmZpZy5zZXJ2ZXJVcmwuc2l6ZSgpID4gMCkgPDwga1ZlbmRvclN0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJoYXMgbm8gc2VydmVyVXJsIjsKKyAgICAgICAgQVNTRVJUX1RSVUUoY29uZmlnLmluaXREYXRhLnNpemUoKSA+IDApIDw8IGtWZW5kb3JTdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJoYXMgbm8gaW5pdCBkYXRhIjsKKyAgICAgICAgQVNTRVJUX1RSVUUoY29uZmlnLm1pbWVUeXBlLnNpemUoKSA+IDApIDw8IGtWZW5kb3JTdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJoYXMgbm8gbWltZSB0eXBlIjsKKyAgICAgICAgQVNTRVJUX1RSVUUoY29uZmlnLmtleXMuc2l6ZSgpID49IDEpIDw8IGtWZW5kb3JTdHIgPDwgImhhcyBubyBrZXlzIjsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShrZXkua2V5SWQuc2l6ZSgpID4gMCkgPDwga1ZlbmRvclN0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgaGFzIHplcm8gbGVuZ3RoIGtleUlkIjsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGtleS5rZXlJZC5zaXplKCkgPiAwKSA8PCBrVmVuZG9yU3RyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIiBoYXMgemVybyBsZW5ndGgga2V5IHZhbHVlIjsKKyAgICAgICAgfQorICAgICAgICBjb3VudCsrOworICAgIH0KKyAgICBFWFBFQ1RfTkUoMHUsIGNvdW50KTsKK30KKworLyoqCisgKiBFbnN1cmUgdGhlIGZhY3RvcnkgZG9lc24ndCBzdXBwb3J0IGFuIGludmFsaWQgc2NoZW1lIFVVSUQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBJbnZhbGlkUGx1Z2luTm90U3VwcG9ydGVkKSB7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGtJbnZhbGlkVVVJRCkpOworICAgIEVYUEVDVF9GQUxTRShjcnlwdG9GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChrSW52YWxpZFVVSUQpKTsKK30KKworLyoqCisgKiBFbnN1cmUgdGhlIGZhY3RvcnkgZG9lc24ndCBzdXBwb3J0IGFuIGVtcHR5IFVVSUQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBFbXB0eVBsdWdpblVVSUROb3RTdXBwb3J0ZWQpIHsKKyAgICBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiBlbXB0eVVVSUQ7CisgICAgbWVtc2V0KGVtcHR5VVVJRC5kYXRhKCksIDAsIDE2KTsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoZW1wdHlVVUlEKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b0ZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGVtcHR5VVVJRCkpOworfQorCisvKioKKyAqIENoZWNrIGlmIHRoZSBmYWN0b3J5IHN1cHBvcnRzIHRoZSBzY2hlbWUgdXVpZCBpbiB0aGUgY29uZmlnLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIFBsdWdpbkNvbmZpZ1VVSURTdXBwb3J0ZWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBFWFBFQ1RfVFJVRShkcm1GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChnZXRWZW5kb3JVVUlEKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShjcnlwdG9GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChnZXRWZW5kb3JVVUlEKCkpKTsKK30KKworLyoqCisgKiBFbnN1cmUgZW1wdHkgY29udGVudCB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBFbXB0eUNvbnRlbnRUeXBlTm90U3VwcG9ydGVkKSB7CisgICAgaGlkbF9zdHJpbmcgZW1wdHk7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoZW1wdHkpKTsKK30KKworLyoqCisgKiBFbnN1cmUgaW52YWxpZCBjb250ZW50IHR5cGUgaXMgbm90IHN1cHBvcnRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIEludmFsaWRDb250ZW50VHlwZU5vdFN1cHBvcnRlZCkgeworICAgIGhpZGxfc3RyaW5nIGludmFsaWQoImFiY2RhYmNkIik7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoaW52YWxpZCkpOworfQorCisvKioKKyAqIEVuc3VyZSB2YWxpZCBjb250ZW50IHR5cGVzIGluIHRoZSBjb25maWdzIGFyZSBzdXBwb3J0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBWYWxpZENvbnRlbnRUeXBlU3VwcG9ydGVkKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBFWFBFQ1RfVFJVRShkcm1GYWN0b3J5LT5pc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbmZpZy5taW1lVHlwZSkpOworICAgIH0KK30KKworLyoqCisgKiBFbnN1cmUgdmVuZG9yIGRybSBwbHVnaW4gY2FuIGJlIGNyZWF0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBDcmVhdGVWZW5kb3JEcm1QbHVnaW4pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgIGF1dG8gcmVzID0gZHJtRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAgZ2V0VmVuZG9yVVVJRCgpLCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgdmVuZG9yIGNyeXB0byBwbHVnaW4gY2FuIGJlIGNyZWF0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBDcmVhdGVWZW5kb3JDcnlwdG9QbHVnaW4pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgIGF1dG8gcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAgZ2V0VmVuZG9yVVVJRCgpLCBpbml0VmVjLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElDcnlwdG9QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEVuc3VyZSBpbnZhbGlkIGRybSBwbHVnaW4gY2FuJ3QgYmUgY3JlYXRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIENyZWF0ZUludmFsaWREcm1QbHVnaW4pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgIGF1dG8gcmVzID0gZHJtRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0ludmFsaWRVVUlELCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgaW52YWxpZCBjcnlwdG8gcGx1Z2luIGNhbid0IGJlIGNyZWF0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBDcmVhdGVJbnZhbGlkQ3J5cHRvUGx1Z2luKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgaGlkbF92ZWM8dWludDhfdD4gaW5pdFZlYzsKKyAgICBhdXRvIHJlcyA9IGNyeXB0b0ZhY3RvcnktPmNyZWF0ZVBsdWdpbigKKyAgICAgICAgICAgIGtJbnZhbGlkVVVJRCwgaW5pdFZlYywKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJQ3J5cHRvUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworY2xhc3MgRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCA6IHB1YmxpYyBEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB+RHJtSGFsVmVuZG9yUGx1Z2luVGVzdCgpIHt9CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICAvLyBDcmVhdGUgZmFjdG9yaWVzCisgICAgICAgIERybUhhbFZlbmRvckZhY3RvcnlUZXN0OjpTZXRVcCgpOworICAgICAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKworICAgICAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgICAgICBhdXRvIHJlcyA9IGRybUZhY3RvcnktPmNyZWF0ZVBsdWdpbigKKyAgICAgICAgICAgICAgICBnZXRWZW5kb3JVVUlEKCksIHBhY2thZ2VOYW1lLAorICAgICAgICAgICAgICAgIFt0aGlzXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZHJtUGx1Z2luID0gcGx1Z2luOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfT0socmVzKTsKKworICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgICAgICByZXMgPSBjcnlwdG9GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICAgICAgZ2V0VmVuZG9yVVVJRCgpLCBpbml0VmVjLAorICAgICAgICAgICAgICAgIFt0aGlzXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJQ3J5cHRvUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgY3J5cHRvUGx1Z2luID0gcGx1Z2luOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfT0socmVzKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgICAgU2Vzc2lvbklkIG9wZW5TZXNzaW9uKCk7CisgICAgdm9pZCBjbG9zZVNlc3Npb24oY29uc3QgU2Vzc2lvbklkJiBzZXNzaW9uSWQpOworICAgIHNwPElNZW1vcnk+IGdldERlY3J5cHRNZW1vcnkoc2l6ZV90IHNpemUsIHNpemVfdCBpbmRleCk7CisgICAgS2V5ZWRWZWN0b3IgdG9IaWRsS2V5ZWRWZWN0b3IoY29uc3QgbWFwPHN0cmluZywgc3RyaW5nPiYgcGFyYW1zKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBsb2FkS2V5cyhjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb250ZW50Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBLZXlUeXBlJiB0eXBlKTsKKworICAgcHJvdGVjdGVkOgorICAgIHNwPElEcm1QbHVnaW4+IGRybVBsdWdpbjsKKyAgICBzcDxJQ3J5cHRvUGx1Z2luPiBjcnlwdG9QbHVnaW47Cit9OworCisvKioKKyAqICBEcm1QbHVnaW4gdGVzdHMKKyAqLworCisvKioKKyAqIFRlc3QgdGhhdCBhIERSTSBwbHVnaW4gY2FuIGhhbmRsZSBwcm92aXNpb25pbmcuICBXaGlsZQorICogaXQgaXMgbm90IHJlcXVpcmVkIHRoYXQgYSBEUk0gc2NoZW1lIHJlcXVpcmUgcHJvdmlzaW9uaW5nLAorICogaXQgc2hvdWxkIGF0IGxlYXN0IHJldHVybiBhcHByb3ByaWF0ZSBzdGF0dXMgdmFsdWVzLiBJZgorICogYSBwcm92aXNpb25pbmcgcmVxdWVzdCBpcyByZXR1cm5lZCwgaXQgaXMgcGFzc2VkIHRvIHRoZQorICogdmVuZG9yIG1vZHVsZSB3aGljaCBzaG91bGQgcHJvdmlkZSBhIHByb3Zpc2lvbmluZyByZXNwb25zZQorICogdGhhdCBpcyBkZWxpdmVyZWQgYmFjayB0byB0aGUgSEFMLgorICovCisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBEb1Byb3Zpc2lvbmluZykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGhpZGxfc3RyaW5nIGNlcnRpZmljYXRlVHlwZTsKKyAgICBoaWRsX3N0cmluZyBjZXJ0aWZpY2F0ZUF1dGhvcml0eTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBwcm92aXNpb25SZXF1ZXN0OworICAgIGhpZGxfc3RyaW5nIGRlZmF1bHRVcmw7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3Zpc2lvblJlcXVlc3QoCisgICAgICAgICAgICBjZXJ0aWZpY2F0ZVR5cGUsIGNlcnRpZmljYXRlQXV0aG9yaXR5LAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiByZXF1ZXN0LAorICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiB1cmwpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX05FKHJlcXVlc3Quc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICAgICAgICAgIHByb3Zpc2lvblJlcXVlc3QgPSByZXF1ZXN0OworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VXJsID0gdXJsOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09IFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUpIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCByZXF1ZXN0LnNpemUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICBpZiAocHJvdmlzaW9uUmVxdWVzdC5zaXplKCkgPiAwKSB7CisgICAgICAgIHZlY3Rvcjx1aW50OF90PiByZXNwb25zZSA9IHZlbmRvck1vZHVsZS0+aGFuZGxlUHJvdmlzaW9uaW5nUmVxdWVzdCgKKyAgICAgICAgICAgICAgICBwcm92aXNpb25SZXF1ZXN0LCBkZWZhdWx0VXJsKTsKKyAgICAgICAgQVNTRVJUX05FKDB1LCByZXNwb25zZS5zaXplKCkpOworCisgICAgICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5wcm92aWRlUHJvdmlzaW9uUmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9uc2UsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9PSyhyZXMpOworICAgIH0KK30KKworLyoqCisgKiBUaGUgRFJNIEhBTCBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRSBpZiBhbiBlbXB0eSBwcm92aXNpb25pbmcKKyAqIHJlc3BvbnNlIGlzIHByb3ZpZGVkLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUHJvdmlkZUVtcHR5UHJvdmlzaW9uUmVzcG9uc2UpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXNwb25zZTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2UsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEhlbHBlciBtZXRob2QgdG8gb3BlbiBhIHNlc3Npb24gYW5kIHZlcmlmeSB0aGF0IGEgbm9uLWVtcHR5CisgKiBzZXNzaW9uIElEIGlzIHJldHVybmVkCisgKi8KK1Nlc3Npb25JZCBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0OjpvcGVuU2Vzc2lvbigpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworCisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPm9wZW5TZXNzaW9uKFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBTZXNzaW9uSWQmIGlkKSB7CisgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICBFWFBFQ1RfTkUoaWQuc2l6ZSgpLCAwdSk7CisgICAgICAgIHNlc3Npb25JZCA9IGlkOworICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIHJldHVybiBzZXNzaW9uSWQ7Cit9CisKKy8qKgorICogSGVscGVyIG1ldGhvZCB0byBjbG9zZSBhIHNlc3Npb24KKyAqLwordm9pZCBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0OjpjbG9zZVNlc3Npb24oY29uc3QgU2Vzc2lvbklkJiBzZXNzaW9uSWQpIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKK30KKworS2V5ZWRWZWN0b3IgRHJtSGFsVmVuZG9yUGx1Z2luVGVzdDo6dG9IaWRsS2V5ZWRWZWN0b3IoCisgICAgY29uc3QgbWFwPHN0cmluZywgc3RyaW5nPiYgcGFyYW1zKSB7CisgICAgc3RkOjp2ZWN0b3I8S2V5VmFsdWU+IHN0ZEtleWVkVmVjdG9yOworICAgIGZvciAoYXV0byBpdCA9IHBhcmFtcy5iZWdpbigpOyBpdCAhPSBwYXJhbXMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgS2V5VmFsdWUga2V5VmFsdWU7CisgICAgICAgIGtleVZhbHVlLmtleSA9IGl0LT5maXJzdDsKKyAgICAgICAga2V5VmFsdWUudmFsdWUgPSBpdC0+c2Vjb25kOworICAgICAgICBzdGRLZXllZFZlY3Rvci5wdXNoX2JhY2soa2V5VmFsdWUpOworICAgIH0KKyAgICByZXR1cm4gS2V5ZWRWZWN0b3Ioc3RkS2V5ZWRWZWN0b3IpOworfQorCisvKioKKyAqIEhlbHBlciBtZXRob2QgdG8gbG9hZCBrZXlzIGZvciBzdWJzZXF1ZW50IGRlY3J5cHQgdGVzdHMuCisgKiBUaGVzZSB0ZXN0cyB1c2UgcHJlZGV0ZXJtaW5lZCBrZXkgcmVxdWVzdC9yZXNwb25zZSB0bworICogYXZvaWQgcmVxdWlyaW5nIGEgcm91bmQgdHJpcCB0byBhIGxpY2Vuc2Ugc2VydmVyLgorICovCitoaWRsX3ZlYzx1aW50OF90PiBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0Ojpsb2FkS2V5cygKKyAgICBjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCwgY29uc3QgQ29udGVudENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24sCisgICAgY29uc3QgS2V5VHlwZSYgdHlwZSA9IEtleVR5cGU6OlNUUkVBTUlORykgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVJlcXVlc3Q7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldEtleVJlcXVlc3QoCisgICAgICAgIHNlc3Npb25JZCwgY29uZmlndXJhdGlvbi5pbml0RGF0YSwgY29uZmlndXJhdGlvbi5taW1lVHlwZSwgdHlwZSwKKyAgICAgICAgdG9IaWRsS2V5ZWRWZWN0b3IoY29uZmlndXJhdGlvbi5vcHRpb25hbFBhcmFtZXRlcnMpLAorICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlcXVlc3QsCisgICAgICAgICAgICBLZXlSZXF1ZXN0VHlwZSB0eXBlLCBjb25zdCBoaWRsX3N0cmluZyYpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpIDw8ICJGYWlsZWQgdG8gZ2V0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrZXkgcmVxdWVzdCBmb3IgY29uZmlndXJhdGlvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBjb25maWd1cmF0aW9uLm5hbWU7CisgICAgICAgICAgICBFWFBFQ1RfRVEodHlwZSwgS2V5UmVxdWVzdFR5cGU6OklOSVRJQUwpOworICAgICAgICAgICAgRVhQRUNUX05FKHJlcXVlc3Quc2l6ZSgpLCAwdSkgPDwgIkV4cGVjdGVkIGtleSByZXF1ZXN0IHNpemUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHRvIGhhdmUgbGVuZ3RoID4gMCBieXRlcyI7CisgICAgICAgICAgICBrZXlSZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICAvKioKKyAgICAgKiBHZXQga2V5IHJlc3BvbnNlIGZyb20gdmVuZG9yIG1vZHVsZQorICAgICAqLworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVJlc3BvbnNlID0KKyAgICAgICAgdmVuZG9yTW9kdWxlLT5oYW5kbGVLZXlSZXF1ZXN0KGtleVJlcXVlc3QsIGNvbmZpZ3VyYXRpb24uc2VydmVyVXJsKTsKKworICAgIEVYUEVDVF9ORShrZXlSZXNwb25zZS5zaXplKCksIDB1KSA8PCAiRXhwZWN0ZWQga2V5IHJlc3BvbnNlIHNpemUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG8gaGF2ZSBsZW5ndGggPiAwIGJ5dGVzIjsKKworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVNldElkOworICAgIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICBzZXNzaW9uSWQsIGtleVJlc3BvbnNlLAorICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG15S2V5U2V0SWQpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpIDw8ICJGYWlsdXJlIHByb3ZpZGluZyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia2V5IHJlc3BvbnNlIGZvciBjb25maWd1cmF0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGNvbmZpZ3VyYXRpb24ubmFtZTsKKyAgICAgICAgICAgIGtleVNldElkID0gbXlLZXlTZXRJZDsKKyAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgcmV0dXJuIGtleVNldElkOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhIHNlc3Npb24gY2FuIGJlIG9wZW5lZCBhbmQgY2xvc2VkCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBPcGVuQ2xvc2VTZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhdHRlbXB0aW5nIHRvIGNsb3NlIGFuIGludmFsaWQgKGVtcHR5KSBzZXNzaW9uSWQKKyAqIGlzIHByb2hpYml0ZWQgd2l0aCB0aGUgZG9jdW1lbnRlZCBlcnJvciBjb2RlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgQ2xvc2VJbnZhbGlkU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBpbnZhbGlkU2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPmNsb3NlU2Vzc2lvbihpbnZhbGlkU2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGF0dGVtcHRpbmcgdG8gY2xvc2UgYSB2YWxpZCBzZXNzaW9uIHR3aWNlCisgKiBpcyBwcm9oaWJpdGVkIHdpdGggdGhlIGRvY3VtZW50ZWQgZXJyb3IgY29kZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIENsb3NlQ2xvc2VkU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCBzdGF0dXMpOworfQorCisvKioKKyAqIEEgZ2V0IGtleSByZXF1ZXN0IHNob3VsZCBmYWlsIGlmIG5vIHNlc3Npb25JZCBpcyBwcm92aWRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0S2V5UmVxdWVzdE5vU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBpbnZhbGlkU2Vzc2lvbklkOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhOworICAgIGhpZGxfc3RyaW5nIG1pbWVUeXBlID0gInZpZGVvL21wNCI7CisgICAgS2V5ZWRWZWN0b3Igb3B0aW9uYWxQYXJhbWV0ZXJzOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRLZXlSZXF1ZXN0KAorICAgICAgICAgICAgaW52YWxpZFNlc3Npb25JZCwgaW5pdERhdGEsIG1pbWVUeXBlLCBLZXlUeXBlOjpTVFJFQU1JTkcsCisgICAgICAgICAgICBvcHRpb25hbFBhcmFtZXRlcnMsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mLCBLZXlSZXF1ZXN0VHlwZSwKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYpIHsgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOyB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgYW4gZW1wdHkgc2Vzc2lvbklEIHJldHVybnMgQkFEX1ZBTFVFCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBQcm92aWRlS2V5UmVzcG9uc2VFbXB0eVNlc3Npb25JZCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uOworCisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5UmVzcG9uc2UgPSB7MHg3YiwgMHgyMiwgMHg2YiwgMHg2NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc5LCAweDczLCAweDIyLCAweDNhfTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5UmVzcG9uc2UsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVNldElkKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShrZXlTZXRJZC5zaXplKCksIDB1KTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhbiBlbXB0eSBrZXkgcmVzcG9uc2UgcmV0dXJucyBCQURfVkFMVUUKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFByb3ZpZGVLZXlSZXNwb25zZUVtcHR5UmVzcG9uc2UpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF92ZWM8dWludDhfdD4gZW1wdHlSZXNwb25zZTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICAgICAgc2Vzc2lvbiwgZW1wdHlSZXNwb25zZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5U2V0SWQpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKGtleVNldElkLnNpemUoKSwgMHUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhIHJlbW92ZUtleXMgb24gYW4gZW1wdHkgc2Vzc2lvbklEIHJldHVybnMgQkFEX1ZBTFVFCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZW1vdmVLZXlzRW1wdHlTZXNzaW9uSWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlbW92ZUtleXMoc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpCQURfVkFMVUUpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCByZW1vdmUga2V5cyByZXR1cm5zIG9rYXkgb24gYW4gaW5pdGlhbGl6ZWQgc2Vzc2lvbgorICogdGhhdCBoYXMgbm8ga2V5cy4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlbW92ZUtleXNOZXdTZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVtb3ZlS2V5cyhzZXNzaW9uSWQpOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQga2V5cyBhcmUgc3VjY2Vzc2Z1bGx5IHJlc3RvcmVkIHRvIGEgbmV3IHNlc3Npb24KKyAqIGZvciBhbGwgY29udGVudCBoYXZpbmcgYSBwb2xpY3kgdGhhdCBhbGxvd3Mgb2ZmbGluZSB1c2UuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZXN0b3JlS2V5cykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgaWYgKGNvbmZpZy5wb2xpY3kuYWxsb3dPZmZsaW5lKSB7CisgICAgICAgICAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlTZXRJZCA9CisgICAgICAgICAgICAgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnLCBLZXlUeXBlOjpPRkZMSU5FKTsKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICAgICAgc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICAgICAgICAgIEVYUEVDVF9ORSgwdSwga2V5U2V0SWQuc2l6ZSgpKTsKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlc3RvcmVLZXlzKHNlc3Npb25JZCwga2V5U2V0SWQpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBUZXN0IHRoYXQgcmVzdG9yZUtleXMgZmFpbHMgd2l0aCBhIG51bGwga2V5IHNldCBJRC4KKyAqIEVycm9yIG1lc3NhZ2UgaXMgZXhwZWN0ZWQgdG8gYmUgU3RhdHVzOjpCQURfVkFMVUUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZXN0b3JlS2V5c051bGwpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBudWxsS2V5U2V0SWQ7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVzdG9yZUtleXMoc2Vzc2lvbklkLCBudWxsS2V5U2V0SWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgcmVzdG9yZUtleXMgZmFpbHMgdG8gcmVzdG9yZSBrZXlzIHRvIGEgY2xvc2VkCisgKiBzZXNzaW9uLiBFcnJvciBtZXNzYWdlIGlzIGV4cGVjdGVkIHRvIGJlCisgKiBTdGF0dXM6OkVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZXN0b3JlS2V5c0Nsb3NlZFNlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBmb3IgKGF1dG8gY29uZmlnIDogY29udGVudENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIGlmIChjb25maWcucG9saWN5LmFsbG93T2ZmbGluZSkgeworICAgICAgICAgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgICAgICAgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5U2V0SWQgPQorICAgICAgICAgICAgICAgICAgICBsb2FkS2V5cyhzZXNzaW9uSWQsIGNvbmZpZywgS2V5VHlwZTo6T0ZGTElORSk7CisgICAgICAgICAgICBFWFBFQ1RfTkUoMHUsIGtleVNldElkLnNpemUoKSk7CisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlc3RvcmVLZXlzKHNlc3Npb25JZCwga2V5U2V0SWQpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIHBsdWdpbiBlaXRoZXIgZG9lc24ndCBzdXBwb3J0IGdldHRpbmcKKyAqIHNlY3VyZSBzdG9wcywgb3IgaGFzIG5vIHNlY3VyZSBzdG9wcyBhdmFpbGFibGUgYWZ0ZXIKKyAqIGNsZWFyaW5nIHRoZW0uCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZXRTZWN1cmVTdG9wcykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIC8vIFRoZXJlIG1heSBiZSBzZWN1cmUgc3RvcHMsIGRlcGVuZGluZyBvbiBpZiB0aGVyZSB3ZXJlIGtleXMKKyAgICAvLyBsb2FkZWQgYW5kIHVubG9hZGVkIHByZXZpb3VzbHkuIENsZWFyIHRoZW0gdG8gZ2V0IHRvIGEga25vd24KKyAgICAvLyBzdGF0ZSwgdGhlbiBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vbmUuCisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFNlY3VyZVN0b3BzKAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPFNlY3VyZVN0b3A+JikgeworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIHJlcyA9IGRybVBsdWdpbi0+Z2V0U2VjdXJlU3RvcHMoCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8U2VjdXJlU3RvcD4mIHNlY3VyZVN0b3BzKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShzZWN1cmVTdG9wcy5zaXplKCksIDB1KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIGNsZWFya2V5IHBsdWdpbiByZXR1cm5zIEJBRF9WQUxVRSBpZgorICogYW4gZW1wdHkgc3NpZCBpcyBwcm92aWRlZC4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldFNlY3VyZVN0b3BFbXB0eVNTSUQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZWN1cmVTdG9wSWQgc3NpZDsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0U2VjdXJlU3RvcCgKKyAgICAgICAgICAgIHNzaWQsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBTZWN1cmVTdG9wJikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCByZWxlYXNpbmcgYWxsIHNlY3VyZSBzdG9wcyBlaXRoZXIgaXNuJ3Qgc3VwcG9ydGVkCisgKiBvciBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5CisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZWxlYXNlQWxsU2VjdXJlU3RvcHMpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZWxlYXNlQWxsU2VjdXJlU3RvcHMoKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpPSyB8fAorICAgICAgICAgICAgICAgIHN0YXR1cyA9PSBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFKTsKK30KKworLyoqCisgKiBSZWxlYXNpbmcgYSBzZWN1cmUgc3RvcCB3aXRob3V0IGZpcnN0IGdldHRpbmcgb25lIGFuZCBzZW5kaW5nIGl0IHRvIHRoZQorICogc2VydmVyIHRvIGdldCBhIHZhbGlkIFNTSUQgc2hvdWxkIHJldHVybiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURS4KKyAqIFRoaXMgaXMgYW4gb3B0aW9uYWwgQVBJIHNvIGl0IGNhbiBhbHNvIHJldHVybiBDQU5OT1RfSEFORExFLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUmVsZWFzZVNlY3VyZVN0b3BTZXF1ZW5jZUVycm9yKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2VjdXJlU3RvcElkIHNzaWQgPSB7MSwgMiwgMywgNH07CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVsZWFzZVNlY3VyZVN0b3Aoc3NpZCk7CisgICAgRVhQRUNUX1RSVUUoc3RhdHVzID09IFN0YXR1czo6RVJST1JfRFJNX0lOVkFMSURfU1RBVEUgfHwKKyAgICAgICAgICAgICAgICBzdGF0dXMgPT0gU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHJlbGVhc2luZyBhIHNwZWNpZmljIHNlY3VyZSBzdG9wIHdpdGggYW4gZW1wdHkgc3NpZAorICogcmV0dXJuIEJBRF9WQUxVRS4gVGhpcyBpcyBhbiBvcHRpb25hbCBBUEkgc28gaXQgY2FuIGFsc28gcmV0dXJuCisgKiBDQU5OT1RfSEFORExFLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUmVsZWFzZVNlY3VyZVN0b3BFbXB0eVNTSUQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZWN1cmVTdG9wSWQgc3NpZDsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZWxlYXNlU2VjdXJlU3RvcChzc2lkKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpCQURfVkFMVUUgfHwKKyAgICAgICAgICAgICAgICBzdGF0dXMgPT0gU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSk7Cit9CisKKy8qKgorICogVGhlIGZvbGxvd2luZyBmaXZlIHRlc3RzIHZlcmlmeSB0aGF0IHRoZSBwcm9wZXJ0aWVzCisgKiBkZWZpbmVkIGluIHRoZSBNZWRpYURybSBBUEkgYXJlIHN1cHBvcnRlZCBieQorICogdGhlIHBsdWdpbi4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldFZlbmRvclByb3BlcnR5KSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgInZlbmRvciIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTkUodmFsdWUuc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldFZlcnNpb25Qcm9wZXJ0eSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJ2ZXJzaW9uIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9ORSh2YWx1ZS5zaXplKCksIDB1KTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0RGVzY3JpcHRpb25Qcm9wZXJ0eSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTkUodmFsdWUuc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldEFsZ29yaXRobXNQcm9wZXJ0eSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJhbGdvcml0aG1zIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTkUodmFsdWUuc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZXRQcm9wZXJ0eVVuaXF1ZURldmljZUlEKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5Qnl0ZUFycmF5KAorICAgICAgICAgICAgImRldmljZVVuaXF1ZUlkIiwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX05FKHZhbHVlLnNpemUoKSwgMHUpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhdHRlbXB0aW5nIHRvIHJlYWQgaW52YWxpZCBzdHJpbmcgYW5kIGJ5dGUgYXJyYXkKKyAqIHByb3BlcnRpZXMgcmV0dXJucyB0aGUgZG9jdW1lbnRlZCBlcnJvciBjb2RlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0SW52YWxpZFN0cmluZ1Byb3BlcnR5KSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgImludmFsaWQiLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF9zdHJpbmcmKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldEludmFsaWRCeXRlQXJyYXlQcm9wZXJ0eSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eUJ5dGVBcnJheSgKKyAgICAgICAgICAgICJpbnZhbGlkIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgaW52YWxpZCBzdHJpbmcgYW5kIGJ5dGUgYXJyYXkgcHJvcGVydGllcyByZXR1cm5zCisgKiB0aGUgZXhwZWN0ZWQgc3RhdHVzIHZhbHVlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0U3RyaW5nUHJvcGVydHlOb3RTdXBwb3J0ZWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBFWFBFQ1RfRVEoZHJtUGx1Z2luLT5zZXRQcm9wZXJ0eVN0cmluZygiYXdlZmlqYWVmbGlqd2VmIiwgInZhbHVlIiksCisgICAgICAgICAgICAgIFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0Qnl0ZUFycmF5UHJvcGVydHlOb3RTdXBwb3J0ZWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiB2YWx1ZTsKKyAgICBFWFBFQ1RfRVEoZHJtUGx1Z2luLT5zZXRQcm9wZXJ0eUJ5dGVBcnJheSgiYXdlZmlqYWVmbGlqd2VmIiwgdmFsdWUpLAorICAgICAgICAgICAgICBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgc2V0dGluZyBhbiBpbnZhbGlkIGNpcGhlciBhbGdvcml0aG0gcmV0dXJucworICogdGhlIGV4cGVjdGVkIHN0YXR1cyB2YWx1ZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldENpcGhlckludmFsaWRBbGdvcml0aG0pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldENpcGhlckFsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbik7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgYSBjaXBoZXIgYWxnb3JpdGhtIHdpdGggbm8gc2Vzc2lvbiByZXR1cm5zCisgKiB0aGUgZXhwZWN0ZWQgc3RhdHVzIHZhbHVlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0Q2lwaGVyQWxnb3JpdGhtTm9TZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkFFUy9DQkMvTm9QYWRkaW5nIjsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRDaXBoZXJBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgYSB2YWxpZCBjaXBoZXIgYWxnb3JpdGhtIHJldHVybnMKKyAqIHRoZSBleHBlY3RlZCBzdGF0dXMgdmFsdWUuIEl0IGlzIG5vdCByZXF1aXJlZCB0aGF0IGFsbAorICogdmVuZG9yIG1vZHVsZXMgc3VwcG9ydCB0aGlzIGFsZ29yaXRobSwgYnV0IHRoZXkgbXVzdAorICogZWl0aGVyIGFjY2VwdCBpdCBvciByZXR1cm4gRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldENpcGhlckFsZ29yaXRobSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICA7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkFFUy9DQkMvTm9QYWRkaW5nIjsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRDaXBoZXJBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpPSyB8fAorICAgICAgICAgICAgICAgIHN0YXR1cyA9PSBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbik7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgYW4gaW52YWxpZCBtYWMgYWxnb3JpdGhtIHJldHVybnMKKyAqIHRoZSBleHBlY3RlZCBzdGF0dXMgdmFsdWUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBTZXRNYWNJbnZhbGlkQWxnb3JpdGhtKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfc3RyaW5nIGFsZ29yaXRobTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRNYWNBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBzZXR0aW5nIGEgbWFjIGFsZ29yaXRobSB3aXRoIG5vIHNlc3Npb24gcmV0dXJucworICogdGhlIGV4cGVjdGVkIHN0YXR1cyB2YWx1ZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldE1hY051bGxBbGdvcml0aG1Ob1Nlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiSG1hY1NIQTI1NiI7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0TWFjQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBzZXR0aW5nIGEgdmFsaWQgbWFjIGFsZ29yaXRobSByZXR1cm5zCisgKiB0aGUgZXhwZWN0ZWQgc3RhdHVzIHZhbHVlLiBJdCBpcyBub3QgcmVxdWlyZWQgdGhhdCBhbGwKKyAqIHZlbmRvciBtb2R1bGVzIHN1cHBvcnQgdGhpcyBhbGdvcml0aG0sIGJ1dCB0aGV5IG11c3QKKyAqIGVpdGhlciBhY2NlcHQgaXQgb3IgcmV0dXJuIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBTZXRNYWNBbGdvcml0aG0pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkhtYWNTSEEyNTYiOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldE1hY0FsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6Ok9LIHx8CisgICAgICAgICAgICAgICAgc3RhdHVzID09IFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBUaGUgR2VuZXJpYyogbWV0aG9kcyBwcm92aWRlIGdlbmVyYWwgcHVycG9zZSBjcnlwdG8gb3BlcmF0aW9ucworICogdGhhdCBtYXkgYmUgdXNlZCBmb3IgYXBwbGljYXRpb25zIG90aGVyIHRoYW4gRFJNLiBUaGV5IGxldmVyYWdlCisgKiB0aGUgaGFyZHdhcmUgcm9vdCBvZiB0cnVzdCBhbmQgc2VjdXJlIGtleSBkaXN0cmlidXRpb24gbWVjaGFuaXNtcworICogb2YgYSBEUk0gc3lzdGVtIHRvIGVuYWJsZSBhcHAtc3BlY2lmaWMgY3J5cHRvIGZ1bmN0aW9uYWxpdHkgd2hlcmUKKyAqIHRoZSBjcnlwdG8ga2V5cyBhcmUgbm90IGV4cG9zZWQgb3V0c2lkZSBvZiB0aGUgdHJ1c3RlZCBleGVjdXRpb24KKyAqIGVudmlyb25tZW50LgorICoKKyAqIEdlbmVyaWMgZW5jcnlwdC9kZWNyeXB0L3NpZ24vdmVyaWZ5IHNob3VsZCBmYWlsIG9uIGludmFsaWQKKyAqIGlucHV0cywgZS5nLiBlbXB0eSBzZXNzaW9uSWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdlbmVyaWNFbmNyeXB0Tm9TZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5SWQsIGlucHV0LCBpdjsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+ZW5jcnlwdCgKKyAgICAgICAgICAgIHNlc3Npb24sIGtleUlkLCBpbnB1dCwgaXYsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2VuZXJpY0RlY3J5cHROb1Nlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlJZCwgaW5wdXQsIGl2OworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5kZWNyeXB0KAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5SWQsIGlucHV0LCBpdiwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZW5lcmljU2lnbk5vU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkLCBtZXNzYWdlOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5zaWduKAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5SWQsIG1lc3NhZ2UsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2VuZXJpY1ZlcmlmeU5vU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkLCBtZXNzYWdlLCBzaWduYXR1cmU7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnZlcmlmeSgKKyAgICAgICAgICAgIHNlc3Npb24sIGtleUlkLCBtZXNzYWdlLCBzaWduYXR1cmUsIFsmXShTdGF0dXMgc3RhdHVzLCBib29sKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2VuZXJpY1NpZ25SU0FOb1Nlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG07CisgICAgaGlkbF92ZWM8dWludDhfdD4gbWVzc2FnZSwgd3JhcHBlZEtleTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+c2lnblJTQShzZXNzaW9uLCBhbGdvcml0aG0sIG1lc3NhZ2UsIHdyYXBwZWRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogRXhlcmNpc2UgdGhlIHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCBtZXRob2QuIEFkZGl0aW9uYWwgdGVzdHMKKyAqIHdpbGwgdmVyaWZ5IHBvc2l0aXZlIGNhc2VzIHdpdGggc3BlY2lmaWMgdmVuZG9yIGNvbnRlbnQgY29uZmlndXJhdGlvbnMuCisgKiBCZWxvdyB3ZSBqdXN0IHRlc3QgdGhlIG5lZ2F0aXZlIGNhc2VzLgorICovCisKKy8qKgorICogVmVyaWZ5IHRoYXQgcmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50IGhhbmRsZXMgZW1wdHkgbWltZXR5cGUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZXF1aXJlc1NlY3VyZURlY29kZXJFbXB0eU1pbWVUeXBlKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b1BsdWdpbi0+cmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50KCIiKSk7Cit9CisKKy8qKgorICogVmVyaWZ5IHRoYXQgcmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50IGhhbmRsZXMgaW52YWxpZCBtaW1ldHlwZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlcXVpcmVzU2VjdXJlRGVjb2RlckludmFsaWRNaW1lVHlwZSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIEVYUEVDVF9GQUxTRShjcnlwdG9QbHVnaW4tPnJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCgiYmFkIikpOworfQorCisvKioKKyAqIFZlcmlmeSB0aGF0IHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCByZXR1cm5zIHRydWUgZm9yIHNlY3VyZQorICogY29uZmlndXJhdGlvbnMKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbmZpZykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICBpZiAoa2V5LmlzU2VjdXJlKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY3J5cHRvUGx1Z2luLT5yZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQoY29uZmlnLm1pbWVUeXBlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qKgorICogIEV2ZW50IEhhbmRsaW5nIHRlc3RzCisgKi8KK3N0cnVjdCBMaXN0ZW5lckV2ZW50QXJncyB7CisgICAgRXZlbnRUeXBlIGV2ZW50VHlwZTsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGRhdGE7CisgICAgaW50NjRfdCBleHBpcnlUaW1lSW5NUzsKKyAgICBoaWRsX3ZlYzxLZXlTdGF0dXM+IGtleVN0YXR1c0xpc3Q7CisgICAgYm9vbCBoYXNOZXdVc2FibGVLZXk7Cit9OworCitjb25zdCBjaGFyICprQ2FsbGJhY2tFdmVudCA9ICJTZW5kRXZlbnQiOworY29uc3QgY2hhciAqa0NhbGxiYWNrRXhwaXJhdGlvblVwZGF0ZSA9ICJTZW5kRXhwaXJhdGlvblVwZGF0ZSI7Citjb25zdCBjaGFyICprQ2FsbGJhY2tLZXlzQ2hhbmdlID0gIlNlbmRLZXlzQ2hhbmdlIjsKKworY2xhc3MgVGVzdERybVBsdWdpbkxpc3RlbmVyCisgICAgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0Q2FsbGJhY2tCYXNlPExpc3RlbmVyRXZlbnRBcmdzPiwKKyAgICAgIHB1YmxpYyBJRHJtUGx1Z2luTGlzdGVuZXIgeworcHVibGljOgorICAgIFRlc3REcm1QbHVnaW5MaXN0ZW5lcigpIHsKKyAgICAgICAgU2V0V2FpdFRpbWVvdXREZWZhdWx0KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTAwKSk7CisgICAgfQorICAgIHZpcnR1YWwgflRlc3REcm1QbHVnaW5MaXN0ZW5lcigpIHt9CisKKyAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBzZW5kRXZlbnQoRXZlbnRUeXBlIGV2ZW50VHlwZSwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhKSBvdmVycmlkZSB7CisgICAgICAgIExpc3RlbmVyRXZlbnRBcmdzIGFyZ3M7CisgICAgICAgIGFyZ3MuZXZlbnRUeXBlID0gZXZlbnRUeXBlOworICAgICAgICBhcmdzLnNlc3Npb25JZCA9IHNlc3Npb25JZDsKKyAgICAgICAgYXJncy5kYXRhID0gZGF0YTsKKyAgICAgICAgTm90aWZ5RnJvbUNhbGxiYWNrKGtDYWxsYmFja0V2ZW50LCBhcmdzKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBzZW5kRXhwaXJhdGlvblVwZGF0ZShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgaW50NjRfdCBleHBpcnlUaW1lSW5NUykgb3ZlcnJpZGUgeworICAgICAgICBMaXN0ZW5lckV2ZW50QXJncyBhcmdzOworICAgICAgICBhcmdzLnNlc3Npb25JZCA9IHNlc3Npb25JZDsKKyAgICAgICAgYXJncy5leHBpcnlUaW1lSW5NUyA9IGV4cGlyeVRpbWVJbk1TOworICAgICAgICBOb3RpZnlGcm9tQ2FsbGJhY2soa0NhbGxiYWNrRXhwaXJhdGlvblVwZGF0ZSwgYXJncyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gc2VuZEtleXNDaGFuZ2UoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVN0YXR1cz4mIGtleVN0YXR1c0xpc3QsIGJvb2wgaGFzTmV3VXNhYmxlS2V5KSBvdmVycmlkZSB7CisgICAgICAgIExpc3RlbmVyRXZlbnRBcmdzIGFyZ3M7CisgICAgICAgIGFyZ3Muc2Vzc2lvbklkID0gc2Vzc2lvbklkOworICAgICAgICBhcmdzLmtleVN0YXR1c0xpc3QgPSBrZXlTdGF0dXNMaXN0OworICAgICAgICBhcmdzLmhhc05ld1VzYWJsZUtleSA9IGhhc05ld1VzYWJsZUtleTsKKyAgICAgICAgTm90aWZ5RnJvbUNhbGxiYWNrKGtDYWxsYmFja0tleXNDaGFuZ2UsIGFyZ3MpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KK307CisKKworLyoqCisgKiBTaW11bGF0ZSB0aGUgcGx1Z2luIHNlbmRpbmcgZXZlbnRzLiBNYWtlIHN1cmUgdGhlIGxpc3RlbmVyCisgKiBnZXRzIHRoZW0uCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBMaXN0ZW5lckV2ZW50cykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIHNwPFRlc3REcm1QbHVnaW5MaXN0ZW5lcj4gbGlzdGVuZXIgPSBuZXcgVGVzdERybVBsdWdpbkxpc3RlbmVyKCk7CisgICAgZHJtUGx1Z2luLT5zZXRMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGRhdGEgPSB7MCwgMSwgMn07CisgICAgRXZlbnRUeXBlIGV2ZW50VHlwZXNbXSA9IHtFdmVudFR5cGU6OlBST1ZJU0lPTl9SRVFVSVJFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50VHlwZTo6S0VZX05FRURFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50VHlwZTo6S0VZX0VYUElSRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudFR5cGU6OlZFTkRPUl9ERUZJTkVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRUeXBlOjpTRVNTSU9OX1JFQ0xBSU1FRH07CisgICAgZm9yIChhdXRvIGV2ZW50VHlwZSA6IGV2ZW50VHlwZXMpIHsKKyAgICAgICAgZHJtUGx1Z2luLT5zZW5kRXZlbnQoZXZlbnRUeXBlLCBzZXNzaW9uSWQsIGRhdGEpOworICAgICAgICBhdXRvIHJlc3VsdCA9IGxpc3RlbmVyLT5XYWl0Rm9yQ2FsbGJhY2soa0NhbGxiYWNrRXZlbnQpOworICAgICAgICBFWFBFQ1RfVFJVRShyZXN1bHQubm9fdGltZW91dCk7CisgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5hcmdzKTsKKyAgICAgICAgRVhQRUNUX0VRKGV2ZW50VHlwZSwgcmVzdWx0LmFyZ3MtPmV2ZW50VHlwZSk7CisgICAgICAgIEVYUEVDVF9FUShzZXNzaW9uSWQsIHJlc3VsdC5hcmdzLT5zZXNzaW9uSWQpOworICAgICAgICBFWFBFQ1RfRVEoZGF0YSwgcmVzdWx0LmFyZ3MtPmRhdGEpOworICAgIH0KKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBTaW11bGF0ZSB0aGUgcGx1Z2luIHNlbmRpbmcgZXhwaXJhdGlvbiB1cGRhdGVzIGFuZCBtYWtlIHN1cmUKKyAqIHRoZSBsaXN0ZW5lciBnZXRzIHRoZW0uCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBMaXN0ZW5lckV4cGlyYXRpb25VcGRhdGUpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBzcDxUZXN0RHJtUGx1Z2luTGlzdGVuZXI+IGxpc3RlbmVyID0gbmV3IFRlc3REcm1QbHVnaW5MaXN0ZW5lcigpOworICAgIGRybVBsdWdpbi0+c2V0TGlzdGVuZXIobGlzdGVuZXIpOworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBkcm1QbHVnaW4tPnNlbmRFeHBpcmF0aW9uVXBkYXRlKHNlc3Npb25JZCwgMTAwKTsKKyAgICBhdXRvIHJlc3VsdCA9IGxpc3RlbmVyLT5XYWl0Rm9yQ2FsbGJhY2soa0NhbGxiYWNrRXhwaXJhdGlvblVwZGF0ZSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0Lm5vX3RpbWVvdXQpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5hcmdzKTsKKyAgICBFWFBFQ1RfRVEoc2Vzc2lvbklkLCByZXN1bHQuYXJncy0+c2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoMTAwLCByZXN1bHQuYXJncy0+ZXhwaXJ5VGltZUluTVMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFNpbXVsYXRlIHRoZSBwbHVnaW4gc2VuZGluZyBrZXlzIGNoYW5nZSBhbmQgbWFrZSBzdXJlCisgKiB0aGUgbGlzdGVuZXIgZ2V0cyB0aGVtLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgTGlzdGVuZXJLZXlzQ2hhbmdlKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgc3A8VGVzdERybVBsdWdpbkxpc3RlbmVyPiBsaXN0ZW5lciA9IG5ldyBUZXN0RHJtUGx1Z2luTGlzdGVuZXIoKTsKKyAgICBkcm1QbHVnaW4tPnNldExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY29uc3QgaGlkbF92ZWM8S2V5U3RhdHVzPiBrZXlTdGF0dXNMaXN0ID0geworICAgICAgICB7ezF9LCBLZXlTdGF0dXNUeXBlOjpVU0FCTEV9LAorICAgICAgICB7ezJ9LCBLZXlTdGF0dXNUeXBlOjpFWFBJUkVEfSwKKyAgICAgICAge3szfSwgS2V5U3RhdHVzVHlwZTo6T1VUUFVUTk9UQUxMT1dFRH0sCisgICAgICAgIHt7NH0sIEtleVN0YXR1c1R5cGU6OlNUQVRVU1BFTkRJTkd9LAorICAgICAgICB7ezV9LCBLZXlTdGF0dXNUeXBlOjpJTlRFUk5BTEVSUk9SfSwKKyAgICB9OworCisgICAgZHJtUGx1Z2luLT5zZW5kS2V5c0NoYW5nZShzZXNzaW9uSWQsIGtleVN0YXR1c0xpc3QsIHRydWUpOworICAgIGF1dG8gcmVzdWx0ID0gbGlzdGVuZXItPldhaXRGb3JDYWxsYmFjayhrQ2FsbGJhY2tLZXlzQ2hhbmdlKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQubm9fdGltZW91dCk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0LmFyZ3MpOworICAgIEVYUEVDVF9FUShzZXNzaW9uSWQsIHJlc3VsdC5hcmdzLT5zZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShrZXlTdGF0dXNMaXN0LCByZXN1bHQuYXJncy0+a2V5U3RhdHVzTGlzdCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogTmVnYXRpdmUgbGlzdGVuZXIgdGVzdHMuIENhbGwgc2VuZCBtZXRob2RzIHdpdGggbm8KKyAqIGxpc3RlbmVyIHNldC4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIE5vdExpc3RlbmluZykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIHNwPFRlc3REcm1QbHVnaW5MaXN0ZW5lcj4gbGlzdGVuZXIgPSBuZXcgVGVzdERybVBsdWdpbkxpc3RlbmVyKCk7CisgICAgZHJtUGx1Z2luLT5zZXRMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgZHJtUGx1Z2luLT5zZXRMaXN0ZW5lcihudWxscHRyKTsKKworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQ7CisgICAgaGlkbF92ZWM8dWludDhfdD4gZGF0YTsKKyAgICBoaWRsX3ZlYzxLZXlTdGF0dXM+IGtleVN0YXR1c0xpc3Q7CisgICAgZHJtUGx1Z2luLT5zZW5kRXZlbnQoRXZlbnRUeXBlOjpQUk9WSVNJT05fUkVRVUlSRUQsIHNlc3Npb25JZCwgZGF0YSk7CisgICAgZHJtUGx1Z2luLT5zZW5kRXhwaXJhdGlvblVwZGF0ZShzZXNzaW9uSWQsIDEwMCk7CisgICAgZHJtUGx1Z2luLT5zZW5kS2V5c0NoYW5nZShzZXNzaW9uSWQsIGtleVN0YXR1c0xpc3QsIHRydWUpOworICAgIGF1dG8gcmVzdWx0ID0gbGlzdGVuZXItPldhaXRGb3JDYWxsYmFja0FueSgKKyAgICAgICAgICAgIHtrQ2FsbGJhY2tFdmVudCwga0NhbGxiYWNrRXhwaXJhdGlvblVwZGF0ZSwga0NhbGxiYWNrS2V5c0NoYW5nZX0pOworICAgIEVYUEVDVF9GQUxTRShyZXN1bHQubm9fdGltZW91dCk7Cit9CisKKworLyoqCisgKiAgQ3J5cHRvUGx1Z2luIHRlc3RzCisgKi8KKworLyoqCisgKiBFeGVyY2lzZSB0aGUgTm90aWZ5UmVzb2x1dGlvbiBBUEkuIFRoZXJlIGlzIG5vIG9ic2VydmFibGUgcmVzdWx0LAorICoganVzdCBjYWxsIHRoZSBtZXRob2QgZm9yIGNvdmVyYWdlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgTm90aWZ5UmVzb2x1dGlvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGNyeXB0b1BsdWdpbi0+bm90aWZ5UmVzb2x1dGlvbigxOTIwLCAxMDgwKTsKK30KKworLyoqCisgKiBnZXREZWNyeXB0TWVtb3J5IGFsbG9jYXRlcyBtZW1vcnkgZm9yIGRlY3J5cHRpb24sIHRoZW4gc2V0cyBpdAorICogYXMgYSBzaGFyZWQgYnVmZmVyIGJhc2UgaW4gdGhlIGNyeXB0byBoYWwuICBUaGUgYWxsb2NhdGVkIGFuZAorICogbWFwcGVkIElNZW1vcnkgaXMgcmV0dXJuZWQuCisgKgorICogQHBhcmFtIHNpemUgdGhlIHNpemUgb2YgdGhlIG1lbW9yeSBzZWdtZW50IHRvIGFsbG9jYXRlCisgKiBAcGFyYW0gdGhlIGluZGV4IG9mIHRoZSBtZW1vcnkgc2VnbWVudCB3aGljaCB3aWxsIGJlIHVzZWQKKyAqIHRvIHJlZmVyIHRvIGl0IGZvciBkZWNyeXB0aW9uLgorICovCitzcDxJTWVtb3J5PiBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0OjpnZXREZWNyeXB0TWVtb3J5KHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgpIHsKKyAgICBzcDxJQWxsb2NhdG9yPiBhc2htZW1BbGxvY2F0b3IgPSBJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCJhc2htZW0iKTsKKyAgICBFWFBFQ1RfTkUoYXNobWVtQWxsb2NhdG9yLCBudWxscHRyKTsKKworICAgIGhpZGxfbWVtb3J5IGhpZGxNZW1vcnk7CisgICAgYXV0byByZXMgPSBhc2htZW1BbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICAgICAgc2l6ZSwgWyZdKGJvb2wgc3VjY2VzcywgY29uc3QgaGlkbF9tZW1vcnkmIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShzdWNjZXNzLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEobWVtb3J5LnNpemUoKSwgc2l6ZSk7CisgICAgICAgICAgICAgICAgaGlkbE1lbW9yeSA9IG1lbW9yeTsKKyAgICAgICAgICAgIH0pOworCisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICBzcDxJTWVtb3J5PiBtYXBwZWRNZW1vcnkgPSBtYXBNZW1vcnkoaGlkbE1lbW9yeSk7CisgICAgRVhQRUNUX05FKG1hcHBlZE1lbW9yeSwgbnVsbHB0cik7CisgICAgcmVzID0gY3J5cHRvUGx1Z2luLT5zZXRTaGFyZWRCdWZmZXJCYXNlKGhpZGxNZW1vcnksIGluZGV4KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICByZXR1cm4gbWFwcGVkTWVtb3J5OworfQorCisvKioKKyAqIEV4ZXJjaXNlIHRoZSBzZXRNZWRpYURybVNlc3Npb24gbWV0aG9kLiBzZXRNZWRpYURybVNlc3Npb24KKyAqIGlzIHVzZWQgdG8gYXNzb2NpYXRlIGEgZHJtIHNlc3Npb24gd2l0aCBhIGNyeXB0byBzZXNzaW9uLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0TWVkaWFEcm1TZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIHNldE1lZGlhRHJtU2Vzc2lvbiB3aXRoIGEgY2xvc2VkIHNlc3Npb24gaWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldE1lZGlhRHJtU2Vzc2lvbkNsb3NlZFNlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKK30KKworLyoqCisgKiBzZXRNZWRpYURybVNlc3Npb24gd2l0aCBhIGVtcHR5IHNlc3Npb24gaWQ6IEJBRF9WQUxVRQorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0TWVkaWFEcm1TZXNzaW9uRW1wdHlTZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb25JZDsKKyAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogRGVjcnlwdCB0ZXN0cworICovCisKK2NsYXNzIERybUhhbFZlbmRvckRlY3J5cHRUZXN0IDogcHVibGljIERybUhhbFZlbmRvclBsdWdpblRlc3QgeworICAgcHVibGljOgorICAgIERybUhhbFZlbmRvckRlY3J5cHRUZXN0KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfkRybUhhbFZlbmRvckRlY3J5cHRUZXN0KCkge30KKworICAgcHJvdGVjdGVkOgorICAgIHZvaWQgZmlsbFJhbmRvbShjb25zdCBzcDxJTWVtb3J5PiYgbWVtb3J5KTsKKyAgICBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiB0b0hpZGxBcnJheShjb25zdCB2ZWN0b3I8dWludDhfdD4mIHZlYykgeworICAgICAgICBFWFBFQ1RfRVEodmVjLnNpemUoKSwgMTZ1KTsKKyAgICAgICAgcmV0dXJuIGhpZGxfYXJyYXk8dWludDhfdCwgMTY+KCZ2ZWNbMF0pOworICAgIH0KKyAgICBoaWRsX3ZlYzxLZXlWYWx1ZT4gcXVlcnlLZXlTdGF0dXMoU2Vzc2lvbklkIHNlc3Npb25JZCk7CisgICAgdm9pZCByZW1vdmVLZXlzKFNlc3Npb25JZCBzZXNzaW9uSWQpOworICAgIHVpbnQzMl90IGRlY3J5cHQoTW9kZSBtb2RlLCBib29sIGlzU2VjdXJlLAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIGtleUlkLCB1aW50OF90KiBpdiwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IFBhdHRlcm4mIHBhdHRlcm4sCisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSwgU3RhdHVzIGV4cGVjdGVkU3RhdHVzKTsKKyAgICB2b2lkIGFlc19jdHJfZGVjcnlwdCh1aW50OF90KiBkZXN0LCB1aW50OF90KiBzcmMsIHVpbnQ4X3QqIGl2LAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+JiBrZXkpOworICAgIHZvaWQgYWVzX2NiY19kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywgdWludDhfdCogaXYsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLCBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSk7Cit9OworCit2b2lkIERybUhhbFZlbmRvckRlY3J5cHRUZXN0OjpmaWxsUmFuZG9tKGNvbnN0IHNwPElNZW1vcnk+JiBtZW1vcnkpIHsKKyAgICByYW5kb21fZGV2aWNlIHJkOworICAgIG10MTk5MzcgcmFuZChyZCgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lbW9yeS0+Z2V0U2l6ZSgpIC8gc2l6ZW9mKHVpbnQzMl90KTsgaSsrKSB7CisgICAgICAgIGF1dG8gcCA9IHN0YXRpY19jYXN0PHVpbnQzMl90Kj4oCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KG1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgIHBbaV0gPSByYW5kKCk7CisgICAgfQorfQorCitoaWRsX3ZlYzxLZXlWYWx1ZT4gRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3Q6OnF1ZXJ5S2V5U3RhdHVzKFNlc3Npb25JZCBzZXNzaW9uSWQpIHsKKyAgICBoaWRsX3ZlYzxLZXlWYWx1ZT4ga2V5U3RhdHVzOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5xdWVyeUtleVN0YXR1cyhzZXNzaW9uSWQsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgS2V5ZWRWZWN0b3IgaW5mbykgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIGtleVN0YXR1cyA9IGluZm87CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICByZXR1cm4ga2V5U3RhdHVzOworfQorCit2b2lkIERybUhhbFZlbmRvckRlY3J5cHRUZXN0OjpyZW1vdmVLZXlzKFNlc3Npb25JZCBzZXNzaW9uSWQpIHsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cmVtb3ZlS2V5cyhzZXNzaW9uSWQpOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCit1aW50MzJfdCBEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdDo6ZGVjcnlwdChNb2RlIG1vZGUsIGJvb2wgaXNTZWN1cmUsCisgICAgICAgIGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiBrZXlJZCwgdWludDhfdCogaXYsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IFBhdHRlcm4mIHBhdHRlcm4sCisgICAgICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5LCBTdGF0dXMgZXhwZWN0ZWRTdGF0dXMpIHsKKyAgICBjb25zdCBzaXplX3Qga1NlZ21lbnRJbmRleCA9IDA7CisKKyAgICB1aW50OF90IGxvY2FsSXZbQUVTX0JMT0NLX1NJWkVdOworICAgIG1lbWNweShsb2NhbEl2LCBpdiwgQUVTX0JMT0NLX1NJWkUpOworCisgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWJTYW1wbGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIHRvdGFsU2l6ZSArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisgICAgICAgIHRvdGFsU2l6ZSArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhOworICAgIH0KKworICAgIC8vIFRoZSBmaXJzdCB0b3RhbFNpemUgYnl0ZXMgb2Ygc2hhcmVkIG1lbW9yeSBpcyB0aGUgZW5jcnlwdGVkCisgICAgLy8gaW5wdXQsIHRoZSBzZWNvbmQgdG90YWxTaXplIGJ5dGVzIGlzIHRoZSBkZWNyeXB0ZWQgb3V0cHV0LgorICAgIHNwPElNZW1vcnk+IHNoYXJlZE1lbW9yeSA9CisgICAgICAgICAgICBnZXREZWNyeXB0TWVtb3J5KHRvdGFsU2l6ZSAqIDIsIGtTZWdtZW50SW5kZXgpOworCisgICAgU2hhcmVkQnVmZmVyIHNvdXJjZUJ1ZmZlciA9IHsKKyAgICAgICAgICAgIC5idWZmZXJJZCA9IGtTZWdtZW50SW5kZXgsIC5vZmZzZXQgPSAwLCAuc2l6ZSA9IHRvdGFsU2l6ZX07CisgICAgZmlsbFJhbmRvbShzaGFyZWRNZW1vcnkpOworCisgICAgRGVzdGluYXRpb25CdWZmZXIgZGVzdEJ1ZmZlciA9IHsudHlwZSA9IEJ1ZmZlclR5cGU6OlNIQVJFRF9NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LmJ1ZmZlcklkID0ga1NlZ21lbnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2Zmc2V0ID0gdG90YWxTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zaXplID0gdG90YWxTaXplfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZWN1cmVNZW1vcnkgPSBudWxscHRyfTsKKyAgICB1aW50NjRfdCBvZmZzZXQgPSAwOworICAgIHVpbnQzMl90IGJ5dGVzV3JpdHRlbiA9IDA7CisgICAgYXV0byByZXMgPSBjcnlwdG9QbHVnaW4tPmRlY3J5cHQoaXNTZWN1cmUsIGtleUlkLCBsb2NhbEl2LCBtb2RlLCBwYXR0ZXJuLAorICAgICAgICAgICAgc3ViU2FtcGxlcywgc291cmNlQnVmZmVyLCBvZmZzZXQsIGRlc3RCdWZmZXIsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgdWludDMyX3QgY291bnQsIHN0cmluZyBkZXRhaWxlZEVycm9yKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkU3RhdHVzLCBzdGF0dXMpIDw8ICJVbmV4cGVjdGVkIGRlY3J5cHQgc3RhdHVzICIgPDwKKyAgICAgICAgICAgICAgICBkZXRhaWxlZEVycm9yOworICAgICAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiA9IGNvdW50OworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICBpZiAoYnl0ZXNXcml0dGVuICE9IHRvdGFsU2l6ZSkgeworICAgICAgICByZXR1cm4gYnl0ZXNXcml0dGVuOworICAgIH0KKyAgICB1aW50OF90KiBiYXNlID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KHNoYXJlZE1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisKKyAgICAvLyBnZW5lcmF0ZSByZWZlcmVuY2UgdmVjdG9yCisgICAgdmVjdG9yPHVpbnQ4X3Q+IHJlZmVyZW5jZSh0b3RhbFNpemUpOworCisgICAgbWVtY3B5KGxvY2FsSXYsIGl2LCBBRVNfQkxPQ0tfU0laRSk7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBNb2RlOjpVTkVOQ1JZUFRFRDoKKyAgICAgICAgbWVtY3B5KCZyZWZlcmVuY2VbMF0sIGJhc2UsIHRvdGFsU2l6ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NUUjoKKyAgICAgICAgYWVzX2N0cl9kZWNyeXB0KCZyZWZlcmVuY2VbMF0sIGJhc2UsIGxvY2FsSXYsIHN1YlNhbXBsZXMsIGtleSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NCQzoKKyAgICAgICAgYWVzX2NiY19kZWNyeXB0KCZyZWZlcmVuY2VbMF0sIGJhc2UsIGxvY2FsSXYsIHN1YlNhbXBsZXMsIGtleSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NCQ19DVFM6CisgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKSA8PCAiQUVTX0NCQ19DVFMgbW9kZSBub3Qgc3VwcG9ydGVkIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gY29tcGFyZSByZWZlcmVuY2UgdG8gZGVjcnlwdGVkIGRhdGEgd2hpY2ggaXMgYXQgYmFzZSArIHRvdGFsIHNpemUKKyAgICBFWFBFQ1RfRVEoMCwgbWVtY21wKHN0YXRpY19jYXN0PHZvaWQqPigmcmVmZXJlbmNlWzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPihiYXNlICsgdG90YWxTaXplKSwgdG90YWxTaXplKSkKKyAgICAgICAgICAgIDw8ICJkZWNyeXB0IGRhdGEgbWlzbWF0Y2giOworICAgIHJldHVybiB0b3RhbFNpemU7Cit9CisKKy8qKgorICogRGVjcnlwdCBhIGxpc3Qgb2YgY2xlYXIrZW5jcnlwdGVkIHN1YnNhbXBsZXMgdXNpbmcgdGhlIHNwZWNpZmllZCBrZXkKKyAqIGluIEFFUy1DVFIgbW9kZQorICovCit2b2lkIERybUhhbFZlbmRvckRlY3J5cHRUZXN0OjphZXNfY3RyX2RlY3J5cHQodWludDhfdCogZGVzdCwgdWludDhfdCogc3JjLAorICAgICAgICB1aW50OF90KiBpdiwgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywKKyAgICAgICAgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+JiBrZXkpIHsKKworICAgIEFFU19LRVkgZGVjcnlwdGlvbktleTsKKyAgICBBRVNfc2V0X2VuY3J5cHRfa2V5KCZrZXlbMF0sIDEyOCwgJmRlY3J5cHRpb25LZXkpOworCisgICAgc2l6ZV90IG9mZnNldCA9IDA7CisgICAgdW5zaWduZWQgYmxvY2tPZmZzZXQgPSAwOworICAgIHVpbnQ4X3QgcHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyW0FFU19CTE9DS19TSVpFXTsKKyAgICBtZW1zZXQocHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyLCAwLCBBRVNfQkxPQ0tfU0laRSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN1YlNhbXBsZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgY29uc3QgU3ViU2FtcGxlJiBzdWJTYW1wbGUgPSBzdWJTYW1wbGVzW2ldOworCisgICAgICAgIGlmIChzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YSA+IDApIHsKKyAgICAgICAgICAgIG1lbWNweShkZXN0ICsgb2Zmc2V0LCBzcmMgKyBvZmZzZXQsIHN1YlNhbXBsZS5udW1CeXRlc09mQ2xlYXJEYXRhKTsKKyAgICAgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEgPiAwKSB7CisgICAgICAgICAgICBBRVNfY3RyMTI4X2VuY3J5cHQoc3JjICsgb2Zmc2V0LCBkZXN0ICsgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICBzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEsICZkZWNyeXB0aW9uS2V5LAorICAgICAgICAgICAgICAgICAgICBpdiwgcHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyLCAmYmxvY2tPZmZzZXQpOworICAgICAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBEZWNyeXB0IGEgbGlzdCBvZiBjbGVhcitlbmNyeXB0ZWQgc3Vic2FtcGxlcyB1c2luZyB0aGUgc3BlY2lmaWVkIGtleQorICogaW4gQUVTLUNCQyBtb2RlCisgKi8KK3ZvaWQgRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3Q6OmFlc19jYmNfZGVjcnlwdCh1aW50OF90KiBkZXN0LCB1aW50OF90KiBzcmMsCisgICAgICAgIHVpbnQ4X3QqIGl2LCBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLAorICAgICAgICBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSkgeworICAgIEFFU19LRVkgZGVjcnlwdGlvbktleTsKKyAgICBBRVNfc2V0X2VuY3J5cHRfa2V5KCZrZXlbMF0sIDEyOCwgJmRlY3J5cHRpb25LZXkpOworCisgICAgc2l6ZV90IG9mZnNldCA9IDA7CisgICAgc2l6ZV90IG51bSA9IDA7CisgICAgc2l6ZV90IGVjb3VudF9idWYgPSAwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3ViU2FtcGxlcy5zaXplKCk7IGkrKykgeworICAgICAgICBjb25zdCBTdWJTYW1wbGUmIHN1YlNhbXBsZSA9IHN1YlNhbXBsZXNbaV07CisKKyAgICAgICAgbWVtY3B5KGRlc3QgKyBvZmZzZXQsIHNyYyArIG9mZnNldCwgc3ViU2FtcGxlLm51bUJ5dGVzT2ZDbGVhckRhdGEpOworICAgICAgICBvZmZzZXQgKz0gc3ViU2FtcGxlLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisKKyAgICAgICAgQUVTX2NiY19lbmNyeXB0KHNyYyArIG9mZnNldCwgZGVzdCArIG9mZnNldCwgc3ViU2FtcGxlLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhLAorICAgICAgICAgICAgICAgICZkZWNyeXB0aW9uS2V5LCBpdiwgMCAvKiBkZWNyeXB0ICovKTsKKyAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YTsKKyAgICB9Cit9CisKKworLyoqCisgKiBUZXN0IGtleSBzdGF0dXMgd2l0aCBlbXB0eSBzZXNzaW9uIGlkLCBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRQorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QsIFF1ZXJ5S2V5U3RhdHVzSW52YWxpZFNlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5xdWVyeUtleVN0YXR1cyhzZXNzaW9uSWQsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgS2V5ZWRWZWN0b3IgLyogaW5mbyAqLykgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisKKy8qKgorICogVGVzdCBrZXkgc3RhdHVzLiAgVGhlcmUgc2hvdWxkIGJlIG5vIGtleSBzdGF0dXMgcHJpb3IgdG8gbG9hZGluZyBrZXlzCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdCwgUXVlcnlLZXlTdGF0dXNXaXRoTm9LZXlzKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGF1dG8ga2V5U3RhdHVzID0gcXVlcnlLZXlTdGF0dXMoc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoMHUsIGtleVN0YXR1cy5zaXplKCkpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisKKy8qKgorICogVGVzdCBrZXkgc3RhdHVzLiAgVGhlcmUgc2hvdWxkIGJlIGtleSBzdGF0dXMgYWZ0ZXIgbG9hZGluZyBrZXlzLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QsIFF1ZXJ5S2V5U3RhdHVzKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnKTsKKyAgICAgICAgYXV0byBrZXlTdGF0dXMgPSBxdWVyeUtleVN0YXR1cyhzZXNzaW9uSWQpOworICAgICAgICBFWFBFQ1RfTkUoMHUsIGtleVN0YXR1cy5zaXplKCkpOworICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICB9Cit9CisKKy8qKgorICogUG9zaXRpdmUgZGVjcnlwdCB0ZXN0LiAiRGVjcnlwdCIgYSBzaW5nbGUgY2xlYXIgc2VnbWVudCBhbmQgdmVyaWZ5LgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QsIENsZWFyU2VnbWVudFRlc3QpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBmb3IgKGF1dG8gY29uZmlnIDogY29udGVudENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIGZvciAoYXV0byBrZXkgOiBjb25maWcua2V5cykgeworICAgICAgICAgICAgY29uc3Qgc2l6ZV90IGtTZWdtZW50U2l6ZSA9IDEwMjQ7CisgICAgICAgICAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgICAgICAgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0ge3subnVtQnl0ZXNPZkNsZWFyRGF0YSA9IGtTZWdtZW50U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDB9fTsKKyAgICAgICAgICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICAgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnKTsKKworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKworICAgICAgICAgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpVTkVOQ1JZUFRFRCwga2V5LmlzU2VjdXJlLCB0b0hpZGxBcnJheShrZXkua2V5SWQpLAorICAgICAgICAgICAgICAgICAgICAmaXZbMF0sIHN1YlNhbXBsZXMsIG5vUGF0dGVybiwga2V5LmNsZWFyQ29udGVudEtleSwgU3RhdHVzOjpPSyk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoa1NlZ21lbnRTaXplLCBieXRlQ291bnQpOworCisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBQb3NpdGl2ZSBkZWNyeXB0IHRlc3QuICBEZWNyeXB0IGEgc2luZ2xlIHNlZ21lbnQgdXNpbmcgYWVzX2N0ci4KKyAqIFZlcmlmeSBkYXRhIG1hdGNoZXMuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdCwgRW5jcnlwdGVkQWVzQ3RyU2VnbWVudFRlc3QpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBmb3IgKGF1dG8gY29uZmlnIDogY29udGVudENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIGZvciAoYXV0byBrZXkgOiBjb25maWcua2V5cykgeworICAgICAgICAgICAgY29uc3Qgc2l6ZV90IGtTZWdtZW50U2l6ZSA9IDEwMjQ7CisgICAgICAgICAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgICAgICAgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0ge3subnVtQnl0ZXNPZkNsZWFyRGF0YSA9IGtTZWdtZW50U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDB9fTsKKyAgICAgICAgICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICAgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnKTsKKworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKworICAgICAgICAgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpBRVNfQ1RSLCBrZXkuaXNTZWN1cmUsIHRvSGlkbEFycmF5KGtleS5rZXlJZCksCisgICAgICAgICAgICAgICAgICAgICZpdlswXSwgc3ViU2FtcGxlcywgbm9QYXR0ZXJuLCBrZXkuY2xlYXJDb250ZW50S2V5LCBTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShrU2VnbWVudFNpemUsIGJ5dGVDb3VudCk7CisKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIE5lZ2F0aXZlIGRlY3J5cHQgdGVzdC4gRGVjcnlwdCB3aXRob3V0IGxvYWRpbmcga2V5cy4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvckRlY3J5cHRUZXN0LCBFbmNyeXB0ZWRBZXNDdHJTZWdtZW50VGVzdE5vS2V5cykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgICAgICAgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0ge3subnVtQnl0ZXNPZkNsZWFyRGF0YSA9IDI1NiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDI1Nn19OworICAgICAgICAgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgICAgICAgICB1aW50MzJfdCBieXRlQ291bnQgPSBkZWNyeXB0KE1vZGU6OkFFU19DVFIsIGtleS5pc1NlY3VyZSwKKyAgICAgICAgICAgICAgICAgICAgdG9IaWRsQXJyYXkoa2V5LmtleUlkKSwgJml2WzBdLCBzdWJTYW1wbGVzLCBub1BhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgIGtleS5jbGVhckNvbnRlbnRLZXksIFN0YXR1czo6RVJST1JfRFJNX05PX0xJQ0VOU0UpOworICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCBieXRlQ291bnQpOworCisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBUZXN0IGtleSByZW1vdmFsLiAgTG9hZCBrZXlzIHRoZW4gcmVtb3ZlIHRoZW0gYW5kIHZlcmlmeSB0aGF0CisgKiBkZWNyeXB0aW9uIGNhbid0IGJlIHBlcmZvcm1lZC4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvckRlY3J5cHRUZXN0LCBBdHRlbXB0RGVjcnlwdFdpdGhLZXlzUmVtb3ZlZCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgICAgICAgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0ge3subnVtQnl0ZXNPZkNsZWFyRGF0YSA9IDI1NiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDI1Nn19OworICAgICAgICAgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgICAgICAgICBsb2FkS2V5cyhzZXNzaW9uSWQsIGNvbmZpZyk7CisgICAgICAgICAgICByZW1vdmVLZXlzKHNlc3Npb25JZCk7CisKKyAgICAgICAgICAgIHVpbnQzMl90IGJ5dGVDb3VudCA9IGRlY3J5cHQoTW9kZTo6QUVTX0NUUiwga2V5LmlzU2VjdXJlLAorICAgICAgICAgICAgICAgICAgICB0b0hpZGxBcnJheShrZXkua2V5SWQpLCAmaXZbMF0sIHN1YlNhbXBsZXMsIG5vUGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAga2V5LmNsZWFyQ29udGVudEtleSwgU3RhdHVzOjpFUlJPUl9EUk1fTk9fTElDRU5TRSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoMHUsIGJ5dGVDb3VudCk7CisKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICB9CisgICAgfQorfQorCisKKy8qKgorICogSW5zdGFudGlhdGUgdGhlIHNldCBvZiB0ZXN0IGNhc2VzIGZvciBlYWNoIHZlbmRvciBtb2R1bGUKKyAqLworCitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICAgICAgRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3RDYXNlcywgRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsCisgICAgICAgIHRlc3Rpbmc6OlZhbHVlc0luKGdWZW5kb3JNb2R1bGVzLT5nZXRQYXRoTGlzdCgpKSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgICAgICBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0Q2FzZXMsIERybUhhbFZlbmRvclBsdWdpblRlc3QsCisgICAgICAgIHRlc3Rpbmc6OlZhbHVlc0luKGdWZW5kb3JNb2R1bGVzLT5nZXRQYXRoTGlzdCgpKSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgICAgICBEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdENhc2VzLCBEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdCwKKyAgICAgICAgdGVzdGluZzo6VmFsdWVzSW4oZ1ZlbmRvck1vZHVsZXMtPmdldFBhdGhMaXN0KCkpKTsKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisjaWYgZGVmaW5lZChfX0xQNjRfXykKKyAgICBjb25zdCBjaGFyKiBrTW9kdWxlUGF0aCA9ICIvZGF0YS9sb2NhbC90bXAvNjQvbGliIjsKKyNlbHNlCisgICAgY29uc3QgY2hhcioga01vZHVsZVBhdGggPSAiL2RhdGEvbG9jYWwvdG1wLzMyL2xpYiI7CisjZW5kaWYKKyAgICBnVmVuZG9yTW9kdWxlcyA9IG5ldyBkcm1fdnRzOjpWZW5kb3JNb2R1bGVzKGtNb2R1bGVQYXRoKTsKKyAgICBpZiAoZ1ZlbmRvck1vZHVsZXMtPmdldFBhdGhMaXN0KCkuc2l6ZSgpID09IDApIHsKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJObyB2ZW5kb3IgbW9kdWxlcyBmb3VuZCBpbiAiIDw8IGtNb2R1bGVQYXRoIDw8CisgICAgICAgICAgICAgICAgIiwgZXhpdGluZyIgPDwgc3RkOjplbmRsOworICAgICAgICBleGl0KC0xKTsKKyAgICB9CisgICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgICAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKK30KZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvc2hhcmVkX2xpYnJhcnkuY3BwIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9zaGFyZWRfbGlicmFyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY1ODE1MAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvc2hhcmVkX2xpYnJhcnkuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImRybS12dHMtc2hhcmVkLWxpYnJhcnkiCisKKyNpbmNsdWRlIDxkbGZjbi5oPgorI2luY2x1ZGUgPHNoYXJlZF9saWJyYXJ5Lmg+CisKK3VzaW5nIHN0ZDo6c3RyaW5nOworCituYW1lc3BhY2UgZHJtX3Z0cyB7CisKK1NoYXJlZExpYnJhcnk6OlNoYXJlZExpYnJhcnkoY29uc3Qgc3RyaW5nJiBwYXRoKSB7CisgICAgbUxpYkhhbmRsZSA9IGRsb3BlbihwYXRoLmNfc3RyKCksIFJUTERfTk9XKTsKK30KKworU2hhcmVkTGlicmFyeTo6flNoYXJlZExpYnJhcnkoKSB7CisgICAgaWYgKG1MaWJIYW5kbGUgIT0gTlVMTCkgeworICAgICAgICBkbGNsb3NlKG1MaWJIYW5kbGUpOworICAgICAgICBtTGliSGFuZGxlID0gTlVMTDsKKyAgICB9Cit9CisKK2Jvb2wgU2hhcmVkTGlicmFyeTo6b3BlcmF0b3IhKCkgY29uc3QgeworICAgIHJldHVybiBtTGliSGFuZGxlID09IE5VTEw7Cit9CisKK3ZvaWQqIFNoYXJlZExpYnJhcnk6Omxvb2t1cChjb25zdCBjaGFyKiBzeW1ib2wpIGNvbnN0IHsKKyAgICBpZiAoIW1MaWJIYW5kbGUpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLy8gQ2xlYXIgbGFzdCBlcnJvciBiZWZvcmUgd2UgbG9hZCB0aGUgc3ltYm9sIGFnYWluLAorICAgIC8vIGluIGNhc2UgdGhlIGNhbGxlciBkaWRuJ3QgcmV0cmlldmUgaXQuCisgICAgKHZvaWQpZGxlcnJvcigpOworICAgIHJldHVybiBkbHN5bShtTGliSGFuZGxlLCBzeW1ib2wpOworfQorCitjb25zdCBjaGFyKiBTaGFyZWRMaWJyYXJ5OjpsYXN0RXJyb3IoKSBjb25zdCB7CisgICAgY29uc3QgY2hhciogZXJyb3IgPSBkbGVycm9yKCk7CisgICAgcmV0dXJuIGVycm9yID8gZXJyb3IgOiAiTm8gZXJyb3JzIG9yIHVua25vd24gZXJyb3IiOworfQorfTsKZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvc2hhcmVkX2xpYnJhcnkuaCBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvc2hhcmVkX2xpYnJhcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjMyMjQzCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9zaGFyZWRfbGlicmFyeS5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIFNIQVJFRF9MSUJSQVJZX0hfCisjZGVmaW5lIFNIQVJFRF9MSUJSQVJZX0hfCisKKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgZHJtX3Z0cyB7CitjbGFzcyBTaGFyZWRMaWJyYXJ5IHsKKyAgIHB1YmxpYzoKKyAgICBleHBsaWNpdCBTaGFyZWRMaWJyYXJ5KGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKTsKKyAgICB+U2hhcmVkTGlicmFyeSgpOworCisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdDsKKyAgICB2b2lkKiBsb29rdXAoY29uc3QgY2hhciogc3ltYm9sKSBjb25zdDsKKyAgICBjb25zdCBjaGFyKiBsYXN0RXJyb3IoKSBjb25zdDsKKworICAgcHJpdmF0ZToKKyAgICB2b2lkKiBtTGliSGFuZGxlOworCisgICAgU2hhcmVkTGlicmFyeShjb25zdCBTaGFyZWRMaWJyYXJ5JikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgU2hhcmVkTGlicmFyeSYpID0gZGVsZXRlOworfTsKK307CisKKyNlbmRpZiAgLy8gU0hBUkVEX0xJQlJBUllfSF8KZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvdmVuZG9yX21vZHVsZXMuY3BwIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC92ZW5kb3JfbW9kdWxlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJmMGIyOAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvdmVuZG9yX21vZHVsZXMuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImRybS12dHMtdmVuZG9yLW1vZHVsZXMiCisKKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxkbGZjbi5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlICJzaGFyZWRfbGlicmFyeS5oIgorI2luY2x1ZGUgInZlbmRvcl9tb2R1bGVzLmgiCisKK3VzaW5nIHN0ZDo6c3RyaW5nOwordXNpbmcgc3RkOjp2ZWN0b3I7Cit1c2luZyBzdGQ6OnVuaXF1ZV9wdHI7CisKK25hbWVzcGFjZSBkcm1fdnRzIHsKK3ZvaWQgVmVuZG9yTW9kdWxlczo6c2Nhbk1vZHVsZXMoY29uc3Qgc3RkOjpzdHJpbmcgJmRpcmVjdG9yeSkgeworICAgIERJUiogZGlyID0gb3BlbmRpcihkaXJlY3RvcnkuY19zdHIoKSk7CisgICAgaWYgKGRpciA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCJVbmFibGUgdG8gb3BlbiBkcm0gVlRTIHZlbmRvciBkaXJlY3RvcnkgJXMiLCBkaXJlY3RvcnkuY19zdHIoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RydWN0IGRpcmVudCogZW50cnk7CisgICAgICAgIHdoaWxlICgoZW50cnkgPSByZWFkZGlyKGRpcikpKSB7CisgICAgICAgICAgICBBTE9HRCgiY2hlY2tpbmcgZmlsZSAlcyIsIGVudHJ5LT5kX25hbWUpOworICAgICAgICAgICAgc3RyaW5nIGZ1bGxwYXRoID0gZGlyZWN0b3J5ICsgIi8iICsgZW50cnktPmRfbmFtZTsKKyAgICAgICAgICAgIGlmIChlbmRzV2l0aChmdWxscGF0aCwgIi5zbyIpKSB7CisgICAgICAgICAgICAgICAgbVBhdGhMaXN0LnB1c2hfYmFjayhmdWxscGF0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2xvc2VkaXIoZGlyKTsKKyAgICB9Cit9CisKK0RybUhhbFZUU1ZlbmRvck1vZHVsZSogVmVuZG9yTW9kdWxlczo6Z2V0TW9kdWxlKGNvbnN0IHN0cmluZyYgcGF0aCkgeworICAgIGlmIChtT3BlbkxpYnJhcmllcy5maW5kKHBhdGgpID09IG1PcGVuTGlicmFyaWVzLmVuZCgpKSB7CisgICAgICAgIGF1dG8gbGlicmFyeSA9IHN0ZDo6bWFrZV91bmlxdWU8U2hhcmVkTGlicmFyeT4ocGF0aCk7CisgICAgICAgIGlmICghbGlicmFyeSkgeworICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBtYXAgc2hhcmVkIGxpYnJhcnkgJXMiLCBwYXRoLmNfc3RyKCkpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgbU9wZW5MaWJyYXJpZXNbcGF0aF0gPSBzdGQ6Om1vdmUobGlicmFyeSk7CisgICAgfQorICAgIGNvbnN0IHVuaXF1ZV9wdHI8U2hhcmVkTGlicmFyeT4mIGxpYnJhcnkgPSBtT3BlbkxpYnJhcmllc1twYXRoXTsKKyAgICB2b2lkKiBzeW1ib2wgPSBsaWJyYXJ5LT5sb29rdXAoInZlbmRvck1vZHVsZUZhY3RvcnkiKTsKKyAgICBpZiAoc3ltYm9sID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoImdldFZlbmRvck1vZHVsZSBmYWlsZWQgdG8gbG9va3VwICd2ZW5kb3JNb2R1bGVGYWN0b3J5JyBpbiAlczogIgorICAgICAgICAgICAgICAiJXMiLCBwYXRoLmNfc3RyKCksIGxpYnJhcnktPmxhc3RFcnJvcigpKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHR5cGVkZWYgRHJtSGFsVlRTVmVuZG9yTW9kdWxlKiAoKk1vZHVsZUZhY3RvcnkpKCk7CisgICAgTW9kdWxlRmFjdG9yeSBtb2R1bGVGYWN0b3J5ID0gcmVpbnRlcnByZXRfY2FzdDxNb2R1bGVGYWN0b3J5PihzeW1ib2wpOworICAgIHJldHVybiAoKm1vZHVsZUZhY3RvcnkpKCk7Cit9Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC92ZW5kb3JfbW9kdWxlcy5oIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC92ZW5kb3JfbW9kdWxlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhNTM4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL3ZlbmRvcl9tb2R1bGVzLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgVkVORE9SX01PRFVMRVNfSAorI2RlZmluZSBWRU5ET1JfTU9EVUxFU19ICisKKyNpbmNsdWRlIDxtYXA+CisKKyNpbmNsdWRlICJzaGFyZWRfbGlicmFyeS5oIgorCitjbGFzcyBEcm1IYWxWVFNWZW5kb3JNb2R1bGU7CisKK25hbWVzcGFjZSBkcm1fdnRzIHsKK2NsYXNzIFZlbmRvck1vZHVsZXMgeworICAgcHVibGljOgorICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgd2l0aCBhIGZpbGUgc3lzdGVtIHBhdGggd2hlcmUgdGhlIHNoYXJlZCBsaWJyYXJpZXMKKyAgICAgKiBhcmUgdG8gYmUgZm91bmQuCisgICAgICovCisgICAgZXhwbGljaXQgVmVuZG9yTW9kdWxlcyhjb25zdCBzdGQ6OnN0cmluZyYgZGlyKSB7CisgICAgICAgIHNjYW5Nb2R1bGVzKGRpcik7CisgICAgfQorICAgIH5WZW5kb3JNb2R1bGVzKCkge30KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGEgRHJtSGFsVlRTVmVuZG9yTW9kdWxlIGdpdmVuIGl0cyBmdWxsIHBhdGguICBUaGUKKyAgICAgKiBnZXRBUElWZXJzaW9uIG1ldGhvZCBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZlcnNpb25lZAorICAgICAqIHN1YmNsYXNzIHR5cGUuCisgICAgICovCisgICAgRHJtSGFsVlRTVmVuZG9yTW9kdWxlKiBnZXRNb2R1bGUoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsaXN0IG9mIHBhdGhzIHRvIGF2YWlsYWJsZSB2ZW5kb3IgbW9kdWxlcy4KKyAgICAgKi8KKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZ2V0UGF0aExpc3QoKSBjb25zdCB7cmV0dXJuIG1QYXRoTGlzdDt9CisKKyAgIHByaXZhdGU6CisgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG1QYXRoTGlzdDsKKyAgICBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFNoYXJlZExpYnJhcnk+PiBtT3BlbkxpYnJhcmllczsKKworICAgIC8qKgorICAgICAqIFNjYW4gdGhlIGxpc3Qgb2YgcGF0aHMgdG8gYXZhaWxhYmxlIHZlbmRvciBtb2R1bGVzLgorICAgICAqLworICAgIHZvaWQgc2Nhbk1vZHVsZXMoY29uc3Qgc3RkOjpzdHJpbmcmIGRpcik7CisKKyAgICBpbmxpbmUgYm9vbCBlbmRzV2l0aChjb25zdCBzdGQ6OnN0cmluZyYgc3RyLCBjb25zdCBzdGQ6OnN0cmluZyYgc3VmZml4KSBjb25zdCB7CisgICAgICAgIGlmIChzdWZmaXguc2l6ZSgpID4gc3RyLnNpemUoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gc3RkOjplcXVhbChzdWZmaXgucmJlZ2luKCksIHN1ZmZpeC5yZW5kKCksIHN0ci5yYmVnaW4oKSk7CisgICAgfQorCisgICAgVmVuZG9yTW9kdWxlcyhjb25zdCBWZW5kb3JNb2R1bGVzJikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmVuZG9yTW9kdWxlcyYpID0gZGVsZXRlOworfTsKK307CisKKyNlbmRpZiAgLy8gVkVORE9SX01PRFVMRVNfSApkaWZmIC0tZ2l0IGEvZHJtL0FuZHJvaWQuYnAgYi9kcm0vQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2Y3MGViCi0tLSAvZGV2L251bGwKKysrIGIvZHJtL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvZHVtcHN0YXRlLzEuMC9BbmRyb2lkLmJwIGIvZHVtcHN0YXRlLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0MjRjMzMKLS0tIC9kZXYvbnVsbAorKysgYi9kdW1wc3RhdGUvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1OSBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJJRHVtcHN0YXRlRGV2aWNlLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2R1bXBzdGF0ZS8xLjAvRHVtcHN0YXRlRGV2aWNlQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHVtcHN0YXRlLzEuMC9JRHVtcHN0YXRlRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kdW1wc3RhdGUvMS4wL0lId0R1bXBzdGF0ZURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHVtcHN0YXRlLzEuMC9Cbkh3RHVtcHN0YXRlRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kdW1wc3RhdGUvMS4wL0JwSHdEdW1wc3RhdGVEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2R1bXBzdGF0ZS8xLjAvQnNEdW1wc3RhdGVEZXZpY2UuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2R1bXBzdGF0ZS8xLjAvSUR1bXBzdGF0ZURldmljZS5oYWwgYi9kdW1wc3RhdGUvMS4wL0lEdW1wc3RhdGVEZXZpY2UuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNmMxMzkKLS0tIC9kZXYvbnVsbAorKysgYi9kdW1wc3RhdGUvMS4wL0lEdW1wc3RhdGVEZXZpY2UuaGFsCkBAIC0wLDAgKzEsMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMDsKKworaW50ZXJmYWNlIElEdW1wc3RhdGVEZXZpY2UgeworICAgIC8qKgorICAgICAqIER1bXBzIGRldmljZS1zcGVjaWZpYyBzdGF0ZSBpbnRvIHRoZSBnaXZlbiBmaWxlIGRlc2NyaXB0b3IuCisgICAgICovCisgICAgZHVtcHN0YXRlQm9hcmQoaGFuZGxlIGgpOworfTsKZGlmZiAtLWdpdCBhL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvZHVtcHN0YXRlLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGIwN2Y0OQotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjIgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBEdW1wc3RhdGVEZXZpY2UuY3BwIFwKKyAgICBzZXJ2aWNlLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZHVtcHN0YXRldXRpbCBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvRHVtcHN0YXRlRGV2aWNlLmNwcCBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9EdW1wc3RhdGVEZXZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxM2ZjNjIKLS0tIC9kZXYvbnVsbAorKysgYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvRHVtcHN0YXRlRGV2aWNlLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJkdW1wc3RhdGUiCisKKyNpbmNsdWRlICJEdW1wc3RhdGVEZXZpY2UuaCIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkR1bXBzdGF0ZVV0aWwuaCIKKwordXNpbmcgYW5kcm9pZDo6b3M6OmR1bXBzdGF0ZTo6RHVtcEZpbGVUb0ZkOwordXNpbmcgYW5kcm9pZDo6b3M6OmR1bXBzdGF0ZTo6UnVuQ29tbWFuZFRvRmQ7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHVtcHN0YXRlIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OklEdW1wc3RhdGVEZXZpY2UgZm9sbG93LgorUmV0dXJuPHZvaWQ+IER1bXBzdGF0ZURldmljZTo6ZHVtcHN0YXRlQm9hcmQoY29uc3QgaGlkbF9oYW5kbGUmIGhhbmRsZSkgeworICAgIC8vIE5PVEU6IHRoaXMgaXMganVzdCBhbiBleGFtcGxlIG9uIGhvdyB0byB1c2UgdGhlIER1bXBzdGF0ZVV0aWwuaCBmdW5jdGlvbnMgdG8gaW1wbGVtZW50CisgICAgLy8gdGhpcyBpbnRlcmZhY2UgLSBzaW5jZSBISURMX0ZFVENIX0lEdW1wc3RhdGVEZXZpY2UoKSBpcyBub3QgZGVmaW5lZCwgdGhpcyBmdW5jdGlvbiB3aWxsIG5ldmVyCisgICAgLy8gYmUgY2FsbGVkIGJ5IGR1bXBzdGF0ZS4KKworICAgIGlmIChoYW5kbGUtPm51bUZkcyA8IDEpIHsKKyAgICAgICAgQUxPR0UoIm5vIEZEc1xuIik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaW50IGZkID0gaGFuZGxlLT5kYXRhWzBdOworICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgRkQ6ICVkXG4iLCBoYW5kbGUtPmRhdGFbMF0pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBBTE9HRCgiRHVtcHN0YXRlRGV2aWNlOjpkdW1wc3RhdGVCb2FyZCgpIEZEOiAlZFxuIiwgZmQpOworICAgIEFMT0dJKCJEdW1wc3RhdGUgSElETCBub3QgcHJvdmlkZWQgYnkgZGV2aWNlXG4iKTsKKyAgICBkcHJpbnRmKGZkLCAiRHVtcHN0YXRlIEhJREwgbm90IHByb3ZpZGVkIGJ5IGRldmljZTsgcHJvdmlkaW5nIGJvZ3VzIGRhdGEuXG4iKTsKKworICAgIC8vIFNob3dzIHNvbWUgZXhhbXBsZXMgb24gaG93IHRvIHVzZSB0aGUgbGliZHVtcHN0YXRldXRpbCBBUEkuCisgICAgUnVuQ29tbWFuZFRvRmQoZmQsICJEQVRFIiwgeyIvdmVuZG9yL2Jpbi9kYXRlIn0pOworICAgIER1bXBGaWxlVG9GZChmZCwgIkhPU1RTIiwgIi9zeXN0ZW0vZXRjL2hvc3RzIik7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHVtcHN0YXRlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvRHVtcHN0YXRlRGV2aWNlLmggYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvRHVtcHN0YXRlRGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg1ODVmNQotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9EdW1wc3RhdGVEZXZpY2UuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9EVU1QU1RBVEVfVjFfMF9EVU1QU1RBVEVERVZJQ0VfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RVTVBTVEFURV9WMV8wX0RVTVBTVEFURURFVklDRV9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2R1bXBzdGF0ZS8xLjAvSUR1bXBzdGF0ZURldmljZS5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkdW1wc3RhdGUgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHVtcHN0YXRlOjpWMV8wOjpJRHVtcHN0YXRlRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgRHVtcHN0YXRlRGV2aWNlIDogcHVibGljIElEdW1wc3RhdGVEZXZpY2UgeworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OklEdW1wc3RhdGVEZXZpY2UgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBkdW1wc3RhdGVCb2FyZChjb25zdCBoaWRsX2hhbmRsZSYgaCkgb3ZlcnJpZGU7CisKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkdW1wc3RhdGUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0RVTVBTVEFURV9WMV8wX0RVTVBTVEFURURFVklDRV9ICmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UucmMgYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGYyNzI0OAotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgZHVtcHN0YXRlLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYyNzZiNwotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorCisjaW5jbHVkZSAiRHVtcHN0YXRlRGV2aWNlLmgiCisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3VyZVJwY1RocmVhZHBvb2w7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OklEdW1wc3RhdGVEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OmltcGxlbWVudGF0aW9uOjpEdW1wc3RhdGVEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKK3VzaW5nIDo6YW5kcm9pZDo6T0s7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitpbnQgbWFpbihpbnQgLyogYXJnYyAqLywgY2hhciogLyogYXJndiAqLyBbXSkgeworICAgIHNwPElEdW1wc3RhdGVEZXZpY2U+IGR1bXBzdGF0ZSA9IG5ldyBEdW1wc3RhdGVEZXZpY2U7CisgICAgY29uZmlndXJlUnBjVGhyZWFkcG9vbCgxLCB0cnVlIC8qIHdpbGwgam9pbiAqLyk7CisgICAgaWYgKGR1bXBzdGF0ZS0+cmVnaXN0ZXJBc1NlcnZpY2UoKSAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IHJlZ2lzdGVyIHNlcnZpY2UuIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworCisgICAgQUxPR0UoIlNlcnZpY2UgZXhpdGVkISIpOworICAgIHJldHVybiAxOworfQpkaWZmIC0tZ2l0IGEvZHVtcHN0YXRlL0FuZHJvaWQuYnAgYi9kdW1wc3RhdGUvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmIzZTRiCi0tLSAvZGV2L251bGwKKysrIGIvZHVtcHN0YXRlL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorXQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvQW5kcm9pZC5icCBiL2dhdGVrZWVwZXIvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI3MGMwOQotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklHYXRla2VlcGVyLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL0dhdGVrZWVwZXJBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL0lId0dhdGVrZWVwZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL0JuSHdHYXRla2VlcGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC9CcEh3R2F0ZWtlZXBlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvQnNHYXRla2VlcGVyLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvQW5kcm9pZC5tayBiL2dhdGVrZWVwZXIvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc2ZjcyOQotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxNTYgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlci1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEdhdGVrZWVwZXJSZXNwb25zZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci9WMV8wL0dhdGVrZWVwZXJSZXNwb25zZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA6OnR5cGVzLkdhdGVrZWVwZXJSZXNwb25zZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR2F0ZWtlZXBlclN0YXR1c0NvZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvVjFfMC9HYXRla2VlcGVyU3RhdHVzQ29kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA6OnR5cGVzLkdhdGVrZWVwZXJTdGF0dXNDb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUdhdGVrZWVwZXIuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvVjFfMC9JR2F0ZWtlZXBlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUdhdGVrZWVwZXIuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOjpJR2F0ZWtlZXBlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUdhdGVrZWVwZXIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHYXRla2VlcGVyUmVzcG9uc2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvVjFfMC9HYXRla2VlcGVyUmVzcG9uc2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOjp0eXBlcy5HYXRla2VlcGVyUmVzcG9uc2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEdhdGVrZWVwZXJTdGF0dXNDb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyL1YxXzAvR2F0ZWtlZXBlclN0YXR1c0NvZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOjp0eXBlcy5HYXRla2VlcGVyU3RhdHVzQ29kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHYXRla2VlcGVyLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyL1YxXzAvSUdhdGVrZWVwZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHYXRla2VlcGVyLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMDo6SUdhdGVrZWVwZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHYXRla2VlcGVyLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaGFsIGIvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5ZGQ3ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC9JR2F0ZWtlZXBlci5oYWwKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOworCitpbnRlcmZhY2UgSUdhdGVrZWVwZXIgeworCisvKioKKyAqIEVucm9sbHMgZGVzaXJlZFBhc3N3b3JkLCB3aGljaCBtYXkgYmUgZGVyaXZlZCBmcm9tIGEgdXNlciBzZWxlY3RlZCBwaW4KKyAqIG9yIHBhc3N3b3JkLCB3aXRoIHRoZSBwcml2YXRlIGtleSB1c2VkIG9ubHkgZm9yIGVucm9sbGluZyBhdXRoZW50aWNhdGlvbgorICogZmFjdG9yIGRhdGEuCisgKgorICogSWYgdGhlcmUgd2FzIGFscmVhZHkgYSBwYXNzd29yZCBlbnJvbGxlZCwgY3VycmVudCBwYXNzd29yZCBoYW5kbGUgbXVzdCBiZQorICogcGFzc2VkIGluIGN1cnJlbnRQYXNzd29yZEhhbmRsZSwgYW5kIGN1cnJlbnQgcGFzc3dvcmQgbXVzdCBiZSBwYXNzZWQgaW4KKyAqIGN1cnJlbnRQYXNzd29yZC4gVmFsaWQgY3VycmVudFBhc3N3b3JkIG11c3QgdmVyaWZ5KCkgYWdhaW5zdAorICogY3VycmVudFBhc3N3b3JkSGFuZGxlLgorICoKKyAqIEBwYXJhbSB1aWQgVGhlIEFuZHJvaWQgdXNlciBpZGVudGlmaWVyCisgKgorICogQHBhcmFtIGN1cnJlbnRQYXNzd29yZEhhbmRsZSBUaGUgY3VycmVudGx5IGVucm9sbGVkIHBhc3N3b3JkIGhhbmRsZSB0aGUgdXNlcgorICogICAgd2FudHMgdG8gcmVwbGFjZS4gTWF5IGJlIGVtcHR5IG9ubHkgaWYgdGhlcmUncyBubyBjdXJyZW50bHkgZW5yb2xsZWQKKyAqICAgIHBhc3N3b3JkLiBPdGhlcndpc2UgbXVzdCBiZSBub24tZW1wdHkuCisgKgorICogQHBhcmFtIGN1cnJlbnRQYXNzd29yZCBUaGUgdXNlcidzIGN1cnJlbnQgcGFzc3dvcmQgaW4gcGxhaW4gdGV4dC4KKyAqICAgIGl0IE1VU1QgdmVyaWZ5IGFnYWluc3QgY3VycmVudF9wYXNzd29yZF9oYW5kbGUgaWYgdGhlIGxhdHRlciBpcyBub3QtZW1wdHkKKyAqCisgKiBAcGFyYW0gZGVzaXJlZFBhc3N3b3JkIFRoZSBuZXcgcGFzc3dvcmQgdGhlIHVzZXIgd2lzaGVzIHRvIGVucm9sbCBpbgorICogICAgcGxhaW50ZXh0LgorICoKKyAqIEByZXR1cm4gcmVzcG9uc2UKKyAqICAgIE9uIHN1Y2Nlc3MsIGRhdGEgYnVmZmVyIG11c3QgY29udGFpbiB0aGUgbmV3IHBhc3N3b3JkIGhhbmRsZSByZWZlcmVuY2luZworICogICAgdGhlIHBhc3N3b3JkIHByb3ZpZGVkIGluIGRlc2lyZWRQYXNzd29yZC4KKyAqICAgIFRoaXMgYnVmZmVyIGNhbiBiZSB1c2VkIG9uIHN1YnNlcXVlbnQgY2FsbHMgdG8gZW5yb2xsIG9yCisgKiAgICB2ZXJpZnkuIE9uIGVycm9yLCB0aGlzIGJ1ZmZlciBtdXN0IGJlIGVtcHR5LgorICogICAgcmVzcG9uc2UuY29kZSBtdXN0IGFsd2F5cyBjb250YWluIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAqICAgIFRoaXMgbWV0aG9kIG1heSByZXR1cm4gRVJST1JfR0VORVJBTF9GQUlMVVJFIG9yIEVSUk9SX1JFVFJZX1RJTUVPVVQgb24KKyAqICAgIGZhaWx1cmUuIEl0IG11c3QgcmV0dXJuIFNUQVRVU19PSyBvbiBzdWNjZXNzLgorICogICAgSWYgRVJST1JfUkVUUllfVElNRU9VVCBpcyByZXR1cm5lZCwgcmVzcG9uc2UudGltZW91dCBtdXN0IGJlIG5vbi16ZXJvLgorICovCitlbnJvbGwodWludDMyX3QgdWlkLAorICAgICAgIHZlYzx1aW50OF90PiBjdXJyZW50UGFzc3dvcmRIYW5kbGUsCisgICAgICAgdmVjPHVpbnQ4X3Q+IGN1cnJlbnRQYXNzd29yZCwKKyAgICAgICB2ZWM8dWludDhfdD4gZGVzaXJlZFBhc3N3b3JkKQorICAgIGdlbmVyYXRlcyAoR2F0ZWtlZXBlclJlc3BvbnNlIHJlc3BvbnNlKTsKKworLyoqCisgKiBWZXJpZmllcyB0aGF0IHByb3ZpZGVkUGFzc3dvcmQgbWF0Y2hlcyBlbnJvbGxlZFBhc3N3b3JkSGFuZGxlLgorICoKKyAqIEltcGxlbWVudGF0aW9ucyBvZiB0aGlzIG1vZHVsZSBtYXkgcmV0YWluIHRoZSByZXN1bHQgb2YgdGhpcyBjYWxsCisgKiB0byBhdHRlc3QgdG8gdGhlIHJlY2VuY3kgb2YgYXV0aGVudGljYXRpb24uCisgKgorICogT24gc3VjY2VzcywgcmV0dXJucyB2ZXJpZmljYXRpb24gdG9rZW4gaW4gcmVzcG9uc2UuZGF0YSwgd2hpY2ggc2hhbGwgYmUKKyAqIHVzYWJsZSB0byBhdHRlc3QgcGFzc3dvcmQgdmVyaWZpY2F0aW9uIHRvIG90aGVyIHRydXN0ZWQgc2VydmljZXMuCisgKgorICogQHBhcmFtIHVpZCBUaGUgQW5kcm9pZCB1c2VyIGlkZW50aWZpZXIKKyAqCisgKiBAcGFyYW0gY2hhbGxlbmdlIEFuIG9wdGlvbmFsIGNoYWxsZW5nZSB0byBhdXRoZW50aWNhdGUgYWdhaW5zdCwgb3IgMC4KKyAqICAgIFVzZWQgd2hlbiBhIHNlcGFyYXRlIGF1dGhlbnRpY2F0b3IgcmVxdWVzdHMgcGFzc3dvcmQgdmVyaWZpY2F0aW9uLAorICogICAgb3IgZm9yIHRyYW5zYWN0aW9uYWwgcGFzc3dvcmQgYXV0aGVudGljYXRpb24uCisgKgorICogQHBhcmFtIGVucm9sbGVkUGFzc3dvcmRIYW5kbGUgVGhlIGN1cnJlbnRseSBlbnJvbGxlZCBwYXNzd29yZCBoYW5kbGUgdGhhdAorICogICAgdXNlciB3aXNoZXMgdG8gdmVyaWZ5IGFnYWluc3QuIE11c3QgYmUgbm9uLWVtcHR5LgorICoKKyAqIEBwYXJhbSBwcm92aWRlZFBhc3N3b3JkIFRoZSBwbGFpbnRleHQgcGFzc3dvcmQgdG8gYmUgdmVyaWZpZWQgYWdhaW5zdCB0aGUKKyAqICAgIGVucm9sbGVkUGFzc3dvcmRIYW5kbGUKKyAqCisgKiBAcmV0dXJuIHJlc3BvbnNlCisgKiAgICBPbiBzdWNjZXNzLCBhIG5vbi1lbXB0eSBkYXRhIGJ1ZmZlciBjb250YWluaW5nIHRoZQorICogICAgYXV0aGVudGljYXRpb24gdG9rZW4gcmVzdWx0aW5nIGZyb20gdGhpcyB2ZXJpZmljYXRpb24gaXMgcmV0dXJuZWQuCisgKiAgICBPbiBlcnJvciwgZGF0YSBidWZmZXIgbXVzdCBiZSBlbXB0eS4KKyAqICAgIHJlc3BvbnNlLmNvZGUgbXVzdCBhbHdheXMgY29udGFpbiBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgKiAgICBUaGlzIG1ldGhvZCBtYXkgcmV0dXJuIEVSUk9SX0dFTkVSQUxfRkFJTFVSRSBvciBFUlJPUl9SRVRSWV9USU1FT1VUIG9uCisgKiAgICBmYWlsdXJlLiBJdCBtdXN0IHJldHVybiBTVEFUVVNfT0sgb24gc3VjY2Vzcy4KKyAqICAgIElmIHBhc3N3b3JkIHJlLWVucm9sbG1lbnQgaXMgbmVjZXNzYXJ5LCBpdCBtdXN0IHJldHVybiBTVEFUVVNfUkVFTlJPTEwuCisgKiAgICBJZiBFUlJPUl9SRVRSWV9USU1FT1VUIGlzIHJldHVybmVkLCByZXNwb25zZS50aW1lb3V0IG11c3QgYmUgbm9uLXplcm8uCisgKi8KK3ZlcmlmeSh1aW50MzJfdCB1aWQsIHVpbnQ2NF90IGNoYWxsZW5nZSwKKyAgICAgICB2ZWM8dWludDhfdD4gZW5yb2xsZWRQYXNzd29yZEhhbmRsZSwKKyAgICAgICB2ZWM8dWludDhfdD4gcHJvdmlkZWRQYXNzd29yZCkKKyAgICBnZW5lcmF0ZXMgKEdhdGVrZWVwZXJSZXNwb25zZSByZXNwb25zZSk7CisKKy8qKgorICogRGVsZXRlcyB0aGUgZW5yb2xsZWRQYXNzd29yZEhhbmRsZSBhc3NvY2lhdGVkIHdpdGggdGhlIHVpZC4gT25jZSBkZWxldGVkCisgKiB0aGUgdXNlciBjYW5ub3QgYmUgdmVyaWZpZWQgYW55bW9yZS4KKyAqIFRoaXMgaXMgYW4gb3B0aW9uYWwgbWV0aG9kLgorICoKKyAqIEBwYXJhbSB1aWQgVGhlIEFuZHJvaWQgdXNlciBpZGVudGlmaWVyCisgKgorICogQHJldHVybiByZXNwb25zZQorICogICAgcmVzcG9uc2UuY29kZSBtdXN0IGFsd2F5cyBjb250YWluIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAqICAgIFRoaXMgbWV0aG9kIG1heSByZXR1cm4gRVJST1JfR0VORVJBTF9GQUlMVVJFIG9yIEVSUk9SX1JFVFJZX1RJTUVPVVQgb24KKyAqICAgIGZhaWx1cmUuIEl0IG11c3QgcmV0dXJuIFNUQVRVU19PSyBvbiBzdWNjZXNzLgorICogICAgSWYgbm90IGltcGxlbWVudGVkLCBpdCBtdXN0IHJldHVybiBFUlJPUl9OT1RfSU1QTEVNRU5URUQuCisgKiAgICBJZiBFUlJPUl9SRVRSWV9USU1FT1VUIGlzIHJldHVybmVkLCByZXNwb25zZS50aW1lb3V0IG11c3QgYmUgbm9uLXplcm8uCisgKi8KK2RlbGV0ZVVzZXIodWludDMyX3QgdWlkKSBnZW5lcmF0ZXMgKEdhdGVrZWVwZXJSZXNwb25zZSByZXNwb25zZSk7CisKKy8qKgorICogRGVsZXRlcyBhbGwgdGhlIGVucm9sbGVkX3Bhc3N3b3JkX2hhbmRsZXMgZm9yIGFsbCB1aWQncy4gT25jZSBjYWxsZWQsCisgKiBubyB1c2VycyBtdXN0IGJlIGVucm9sbGVkIG9uIHRoZSBkZXZpY2UuCisgKiBUaGlzIGlzIGFuIG9wdGlvbmFsIG1ldGhvZC4KKyAqCisgKiBAcmV0dXJuIHJlc3BvbnNlCisgKiAgICByZXNwb25zZS5jb2RlIG11c3QgYWx3YXlzIGNvbnRhaW4gb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICogICAgVGhpcyBtZXRob2QgbWF5IHJldHVybiBFUlJPUl9HRU5FUkFMX0ZBSUxVUkUgb3IgRVJST1JfUkVUUllfVElNRU9VVCBvbgorICogICAgZmFpbHVyZS4gSXQgbXVzdCByZXR1cm4gU1RBVFVTX09LIG9uIHN1Y2Nlc3MuCisgKiAgICBJZiBub3QgaW1wbGVtZW50ZWQsIGl0IG11c3QgcmV0dXJuIEVSUk9SX05PVF9JTVBMRU1FTlRFRC4KKyAqICAgIElmIEVSUk9SX1JFVFJZX1RJTUVPVVQgaXMgcmV0dXJuZWQsIHJlc3BvbnNlLnRpbWVvdXQgbXVzdCBiZSBub24temVyby4KKyAqLworZGVsZXRlQWxsVXNlcnMoKSBnZW5lcmF0ZXMgKEdhdGVrZWVwZXJSZXNwb25zZSByZXNwb25zZSk7Cit9OwpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwODQ1MzUKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSw0MCBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1pbXBsCisKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgR2F0ZWtlZXBlci5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJsb2cgXAorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlLnJjCisKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAgICAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJsb2cgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvR2F0ZWtlZXBlci5jcHAgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0dhdGVrZWVwZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjZTA2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0dhdGVrZWVwZXIuY3BwCkBAIC0wLDAgKzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8ZGxmY24uaD4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkdhdGVrZWVwZXIuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnYXRla2VlcGVyIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0dhdGVrZWVwZXI6OkdhdGVrZWVwZXIoKQoreworICAgIGludCByZXQgPSBod19nZXRfbW9kdWxlX2J5X2NsYXNzKEdBVEVLRUVQRVJfSEFSRFdBUkVfTU9EVUxFX0lELCBOVUxMLCAmbW9kdWxlKTsKKyAgICBkZXZpY2UgPSBOVUxMOworCisgICAgaWYgKCFyZXQpIHsKKyAgICAgICAgcmV0ID0gZ2F0ZWtlZXBlcl9vcGVuKG1vZHVsZSwgJmRldmljZSk7CisgICAgfQorICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUxfSUYocmV0IDwgMCwgIlVuYWJsZSB0byBvcGVuIEdhdGVLZWVwZXIgSEFMIik7CisgICAgfQorfQorCitHYXRla2VlcGVyOjp+R2F0ZWtlZXBlcigpCit7CisgICAgaWYgKGRldmljZSAhPSBudWxscHRyKSB7CisgICAgICAgIGludCByZXQgPSBnYXRla2VlcGVyX2Nsb3NlKGRldmljZSk7CisgICAgICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgICAgICBBTE9HRSgiVW5hYmxlIHRvIGNsb3NlIEdhdGVLZWVwZXIgSEFMIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZGxjbG9zZShtb2R1bGUtPmRzbyk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnYXRla2VlcGVyOjpWMV8wOjpJR2F0ZWtlZXBlciBmb2xsb3cuCitSZXR1cm48dm9pZD4gR2F0ZWtlZXBlcjo6ZW5yb2xsKHVpbnQzMl90IHVpZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGN1cnJlbnRQYXNzd29yZEhhbmRsZSwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGN1cnJlbnRQYXNzd29yZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRlc2lyZWRQYXNzd29yZCwKKyAgICAgICAgZW5yb2xsX2NiIGNiKQoreworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisgICAgdWludDhfdCAqZW5yb2xsZWRfcGFzc3dvcmRfaGFuZGxlID0gbnVsbHB0cjsKKyAgICB1aW50MzJfdCBlbnJvbGxlZF9wYXNzd29yZF9oYW5kbGVfbGVuZ3RoID0gMDsKKworICAgIGludCByZXQgPSBkZXZpY2UtPmVucm9sbChkZXZpY2UsIHVpZCwKKyAgICAgICAgICAgIGN1cnJlbnRQYXNzd29yZEhhbmRsZS5kYXRhKCksIGN1cnJlbnRQYXNzd29yZEhhbmRsZS5zaXplKCksCisgICAgICAgICAgICBjdXJyZW50UGFzc3dvcmQuZGF0YSgpLCBjdXJyZW50UGFzc3dvcmQuc2l6ZSgpLAorICAgICAgICAgICAgZGVzaXJlZFBhc3N3b3JkLmRhdGEoKSwgZGVzaXJlZFBhc3N3b3JkLnNpemUoKSwKKyAgICAgICAgICAgICZlbnJvbGxlZF9wYXNzd29yZF9oYW5kbGUsICZlbnJvbGxlZF9wYXNzd29yZF9oYW5kbGVfbGVuZ3RoKTsKKyAgICBpZiAoIXJldCkgeworICAgICAgICByc3AuZGF0YS5zZXRUb0V4dGVybmFsKGVucm9sbGVkX3Bhc3N3b3JkX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnJvbGxlZF9wYXNzd29yZF9oYW5kbGVfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfT0s7CisgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisgICAgICAgIHJzcC50aW1lb3V0ID0gcmV0OworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9SRVRSWV9USU1FT1VUOworICAgIH0gZWxzZSB7CisgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX0dFTkVSQUxfRkFJTFVSRTsKKyAgICB9CisgICAgY2IocnNwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR2F0ZWtlZXBlcjo6dmVyaWZ5KHVpbnQzMl90IHVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgY2hhbGxlbmdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZW5yb2xsZWRQYXNzd29yZEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHByb3ZpZGVkUGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmeV9jYiBjYikKK3sKKyAgICBHYXRla2VlcGVyUmVzcG9uc2UgcnNwOworICAgIHVpbnQ4X3QgKmF1dGhfdG9rZW4gPSBudWxscHRyOworICAgIHVpbnQzMl90IGF1dGhfdG9rZW5fbGVuZ3RoID0gMDsKKyAgICBib29sIHJlcXVlc3RfcmVlbnJvbGwgPSBmYWxzZTsKKworICAgIGludCByZXQgPSBkZXZpY2UtPnZlcmlmeShkZXZpY2UsIHVpZCwgY2hhbGxlbmdlLAorICAgICAgICAgICAgZW5yb2xsZWRQYXNzd29yZEhhbmRsZS5kYXRhKCksIGVucm9sbGVkUGFzc3dvcmRIYW5kbGUuc2l6ZSgpLAorICAgICAgICAgICAgcHJvdmlkZWRQYXNzd29yZC5kYXRhKCksIHByb3ZpZGVkUGFzc3dvcmQuc2l6ZSgpLAorICAgICAgICAgICAgJmF1dGhfdG9rZW4sICZhdXRoX3Rva2VuX2xlbmd0aCwKKyAgICAgICAgICAgICZyZXF1ZXN0X3JlZW5yb2xsKTsKKyAgICBpZiAoIXJldCkgeworICAgICAgICByc3AuZGF0YS5zZXRUb0V4dGVybmFsKGF1dGhfdG9rZW4sIGF1dGhfdG9rZW5fbGVuZ3RoLCB0cnVlKTsKKyAgICAgICAgaWYgKHJlcXVlc3RfcmVlbnJvbGwpIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19SRUVOUk9MTDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSzsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocmV0ID4gMCkgeworICAgICAgICByc3AudGltZW91dCA9IHJldDsKKyAgICAgICAgcnNwLmNvZGUgPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVDsKKyAgICB9IGVsc2UgeworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkU7CisgICAgfQorICAgIGNiKHJzcCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEdhdGVrZWVwZXI6OmRlbGV0ZVVzZXIodWludDMyX3QgdWlkLCBkZWxldGVVc2VyX2NiIGNiKSAgeworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisKKyAgICBpZiAoZGV2aWNlLT5kZWxldGVfdXNlciAhPSBudWxscHRyKSB7CisgICAgICAgIGludCByZXQgPSBkZXZpY2UtPmRlbGV0ZV91c2VyKGRldmljZSwgdWlkKTsKKyAgICAgICAgaWYgKCFyZXQpIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSzsKKyAgICAgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisgICAgICAgICAgICByc3AudGltZW91dCA9IHJldDsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX1JFVFJZX1RJTUVPVVQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkU7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9OT1RfSU1QTEVNRU5URUQ7CisgICAgfQorICAgIGNiKHJzcCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEdhdGVrZWVwZXI6OmRlbGV0ZUFsbFVzZXJzKGRlbGV0ZUFsbFVzZXJzX2NiIGNiKSAgeworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisgICAgaWYgKGRldmljZS0+ZGVsZXRlX2FsbF91c2VycyAhPSBudWxscHRyKSB7CisgICAgICAgIGludCByZXQgPSBkZXZpY2UtPmRlbGV0ZV9hbGxfdXNlcnMoZGV2aWNlKTsKKyAgICAgICAgaWYgKCFyZXQpIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSzsKKyAgICAgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisgICAgICAgICAgICByc3AudGltZW91dCA9IHJldDsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX1JFVFJZX1RJTUVPVVQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkU7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9OT1RfSU1QTEVNRU5URUQ7CisgICAgfQorICAgIGNiKHJzcCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSUdhdGVrZWVwZXIqIEhJRExfRkVUQ0hfSUdhdGVrZWVwZXIoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIHJldHVybiBuZXcgR2F0ZWtlZXBlcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnYXRla2VlcGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0dhdGVrZWVwZXIuaCBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvR2F0ZWtlZXBlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjYzAxZjYKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0dhdGVrZWVwZXIuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HQVRFS0VFUEVSX1YxXzBfR0FURUtFRVBFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR0FURUtFRVBFUl9WMV8wX0dBVEVLRUVQRVJfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC9JR2F0ZWtlZXBlci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9nYXRla2VlcGVyLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ2F0ZWtlZXBlciB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnYXRla2VlcGVyOjpWMV8wOjpHYXRla2VlcGVyUmVzcG9uc2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnYXRla2VlcGVyOjpWMV8wOjpJR2F0ZWtlZXBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworY2xhc3MgR2F0ZWtlZXBlciA6IHB1YmxpYyBJR2F0ZWtlZXBlciB7CitwdWJsaWM6CisgICAgR2F0ZWtlZXBlcigpOworICAgIH5HYXRla2VlcGVyKCk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z2F0ZWtlZXBlcjo6VjFfMDo6SUdhdGVrZWVwZXIgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBlbnJvbGwodWludDMyX3QgdWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGN1cnJlbnRQYXNzd29yZEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjdXJyZW50UGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGVzaXJlZFBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgZW5yb2xsX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHZlcmlmeSh1aW50MzJfdCB1aWQsCisgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZW5yb2xsZWRQYXNzd29yZEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwcm92aWRlZFBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlbGV0ZVVzZXIodWludDMyX3QgdWlkLCBkZWxldGVVc2VyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlbGV0ZUFsbFVzZXJzKGRlbGV0ZUFsbFVzZXJzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7Citwcml2YXRlOgorICAgIGdhdGVrZWVwZXJfZGV2aWNlX3QgKmRldmljZTsKKyAgICBjb25zdCBod19tb2R1bGVfdCAqbW9kdWxlOworfTsKKworZXh0ZXJuICJDIiBJR2F0ZWtlZXBlciogSElETF9GRVRDSF9JR2F0ZWtlZXBlcihjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGdhdGVrZWVwZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0dBVEVLRUVQRVJfVjFfMF9HQVRFS0VFUEVSX0gKZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlLnJjIGIvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDNmNWU5ZAotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBnYXRla2VlcGVyLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNiZGFmYgotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaD4KKworI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisvLyBHZW5lcmF0ZWQgSElETCBmaWxlcwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdhdGVrZWVwZXI6OlYxXzA6OklHYXRla2VlcGVyOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJR2F0ZWtlZXBlcj4oKTsKK30KZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmhhbCBiL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjQzNjc1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2F0ZWtlZXBlci8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOworCisvKioKKyAqIEdhdGVrZWVwZXIgcmVzcG9uc2UgY29kZXM7IHN1Y2Nlc3MgPj0gMDsgZXJyb3IgPCAwCisgKi8KK2VudW0gR2F0ZWtlZXBlclN0YXR1c0NvZGUgOiBpbnQzMl90IHsKKyAgU1RBVFVTX1JFRU5ST0xMICAgICAgID0gIDEsICAvLyBzdWNjZXNzLCBidXQgdXBwZXIgbGF5ZXJzIHNob3VsZCByZS1lbnJvbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgdmVyaWZpZWQgcGFzc3dvcmQgZHVlIHRvIGEgdmVyc2lvbiBjaGFuZ2UKKyAgU1RBVFVTX09LICAgICAgICAgICAgID0gIDAsICAvLyBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bAorICBFUlJPUl9HRU5FUkFMX0ZBSUxVUkUgPSAtMSwgIC8vIG9wZXJhdGlvbiBmYWlsZWQKKyAgRVJST1JfUkVUUllfVElNRU9VVCAgID0gLTIsICAvLyBvcGVyYXRpb24gc2hvdWxkIGJlIHJldHJpZWQgYWZ0ZXIgdGltZW91dAorICBFUlJPUl9OT1RfSU1QTEVNRU5URUQgPSAtMywgIC8vIG9wZXJhdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQKK307CisKKy8qKgorICogR2F0ZWtlZXBlciByZXNwb25zZSB0byBhbnkvYWxsIHJlcXVlc3RzIGhhcyB0aGlzIHN0cnVjdHVyZSBhcyBtYW5kYXRvcnkgcGFydAorICovCitzdHJ1Y3QgR2F0ZWtlZXBlclJlc3BvbnNlIHsKKyAgICAvKiogcmVxdWVzdCBjb21wbGV0aW9uIHN0YXR1cyAqLworICAgIEdhdGVrZWVwZXJTdGF0dXNDb2RlIGNvZGU7CisgICAgLyoqCisgICAgICogcmV0cnkgdGltZW91dCBpbiBtcywgaWYgY29kZSA9PSBFUlJPUl9SRVRSWV9USU1FT1VUCisgICAgICogb3RoZXJ3aXNlIHVudXNlZCAoMCkKKyAgICAgKi8KKyAgICB1aW50MzJfdCB0aW1lb3V0OworICAgIC8qKiBvcHRpb25hbCBjcnlwdG8gYmxvYi4gT3BhcXVlIHRvIEFuZHJvaWQgc3lzdGVtLiAqLworICAgIHZlYzx1aW50OF90PiBkYXRhOworfTsKZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9nYXRla2VlcGVyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwY2I2MTUKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxHYXRla2VlcGVyVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEdhdGVrZWVwZXJWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdhdGVrZWVwZXJWMV8wVGFyZ2V0VGVzdC5jcHAgYi9nYXRla2VlcGVyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHYXRla2VlcGVyVjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YTQ0ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHYXRla2VlcGVyVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsNDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJnYXRla2VlcGVyX2hpZGxfaGFsX3Rlc3QiCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8Y21hdGg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9od19hdXRoX3Rva2VuLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdhdGVrZWVwZXI6OlYxXzA6OklHYXRla2VlcGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z2F0ZWtlZXBlcjo6VjFfMDo6R2F0ZWtlZXBlclJlc3BvbnNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z2F0ZWtlZXBlcjo6VjFfMDo6R2F0ZWtlZXBlclN0YXR1c0NvZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEdhdGVrZWVwZXJSZXF1ZXN0IHsKKyAgdWludDMyX3QgdWlkOworICB1aW50NjRfdCBjaGFsbGVuZ2U7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IGN1clB3ZEhhbmRsZTsKKyAgaGlkbF92ZWM8dWludDhfdD4gY3VyUHdkOworICBoaWRsX3ZlYzx1aW50OF90PiBuZXdQd2Q7CisgIEdhdGVrZWVwZXJSZXF1ZXN0KCkgOiB1aWQoMCksIGNoYWxsZW5nZSgwKSB7fQorfTsKKworLy8gQVNTRVJUXyogbWFjcm9zIGdlbmVyYXRlIHJldHVybiAidm9pZCIgaW50ZXJuYWxseQorLy8gd2UgaGF2ZSB0byB1c2UgRVhQRUNUXyogaWYgd2UgcmV0dXJuIGFueXRoaW5nIGJ1dCAidm9pZCIKK3N0YXRpYyBjb25zdCBod19hdXRoX3Rva2VuX3QgKnRvQXV0aFRva2VuKEdhdGVrZWVwZXJSZXNwb25zZSAmcnNwKSB7CisgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqYXV0aF90b2tlbiA9CisgICAgICByZWludGVycHJldF9jYXN0PGh3X2F1dGhfdG9rZW5fdCAqPihyc3AuZGF0YS5kYXRhKCkpOworICBjb25zdCBzaXplX3QgYXV0aF90b2tlbl9zaXplID0gcnNwLmRhdGEuc2l6ZSgpOworCisgIEVYUEVDVF9ORShudWxscHRyLCBhdXRoX3Rva2VuKTsKKyAgRVhQRUNUX0VRKHNpemVvZihod19hdXRoX3Rva2VuX3QpLCBhdXRoX3Rva2VuX3NpemUpOworCisgIGlmIChhdXRoX3Rva2VuICE9IG51bGxwdHIgJiYgYXV0aF90b2tlbl9zaXplID49IHNpemVvZigqYXV0aF90b2tlbikpIHsKKyAgICAvLyB0aGVzZSBhcmUgaW4gbmV0d29yayBvcmRlcjogdHJhbnNsYXRlIHRvIGhvc3QKKyAgICB1aW50MzJfdCBhdXRoX3R5cGUgPSBudG9obChhdXRoX3Rva2VuLT5hdXRoZW50aWNhdG9yX3R5cGUpOworICAgIHVpbnQ2NF90IGF1dGhfdHN0YW1wID0gbnRvaHEoYXV0aF90b2tlbi0+dGltZXN0YW1wKTsKKworICAgIEVYUEVDVF9FUShIV19BVVRIX1BBU1NXT1JELCBhdXRoX3R5cGUpOworICAgIEVYUEVDVF9ORShVSU5UNjRfQyh+MCksIGF1dGhfdHN0YW1wKTsKKyAgICBFWFBFQ1RfRVEoSFdfQVVUSF9UT0tFTl9WRVJTSU9OLCBhdXRoX3Rva2VuLT52ZXJzaW9uKTsKKyAgICAvLyAgICAgICAgRVhQRUNUX05FKFVJTlQ2NF9DKDApLCBhdXRoX3Rva2VuLT5hdXRoZW50aWNhdG9yX2lkKTsKKyAgICBBTE9HSSgiQXV0aGVudGljYXRvciBJRDogJTAxNiIgUFJJWDY0LCBhdXRoX3Rva2VuLT5hdXRoZW50aWNhdG9yX2lkKTsKKyAgICBFWFBFQ1RfTkUoVUlOVDMyX0MoMCksIGF1dGhfdG9rZW4tPnVzZXJfaWQpOworICB9CisgIHJldHVybiBhdXRoX3Rva2VuOworfQorCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBHYXRla2VlcGVyIEhJREwgSEFMLgorY2xhc3MgR2F0ZWtlZXBlckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwcm90ZWN0ZWQ6CisgIHZvaWQgc2V0VWlkKHVpbnQzMl90IHVpZCkgeyB1aWRfID0gdWlkOyB9CisKKyAgdm9pZCBkb0Vucm9sbChHYXRla2VlcGVyUmVxdWVzdCAmcmVxLCBHYXRla2VlcGVyUmVzcG9uc2UgJnJzcCkgeworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICBhdXRvIHJldCA9IGdhdGVrZWVwZXJfLT5lbnJvbGwoCisgICAgICAgICAgdWlkXywgcmVxLmN1clB3ZEhhbmRsZSwgcmVxLmN1clB3ZCwgcmVxLm5ld1B3ZCwKKyAgICAgICAgICBbJnJzcF0oY29uc3QgR2F0ZWtlZXBlclJlc3BvbnNlICZjYlJzcCkgeyByc3AgPSBjYlJzcDsgfSk7CisgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgIGlmIChyc3AuY29kZSAhPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVCkgYnJlYWs7CisgICAgICBBTE9HSSgiJXM6IGdvdCByZXRyeSBjb2RlOyByZXRyeWluZyBpbiAxIHNlYyIsIF9fZnVuY19fKTsKKyAgICAgIHNsZWVwKDEpOworICAgIH0KKyAgfQorCisgIHZvaWQgZG9WZXJpZnkoR2F0ZWtlZXBlclJlcXVlc3QgJnJlcSwgR2F0ZWtlZXBlclJlc3BvbnNlICZyc3ApIHsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgYXV0byByZXQgPSBnYXRla2VlcGVyXy0+dmVyaWZ5KAorICAgICAgICAgIHVpZF8sIHJlcS5jaGFsbGVuZ2UsIHJlcS5jdXJQd2RIYW5kbGUsIHJlcS5uZXdQd2QsCisgICAgICAgICAgWyZyc3BdKGNvbnN0IEdhdGVrZWVwZXJSZXNwb25zZSAmY2JfcnNwKSB7IHJzcCA9IGNiX3JzcDsgfSk7CisgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgIGlmIChyc3AuY29kZSAhPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVCkgYnJlYWs7CisgICAgICBBTE9HSSgiJXM6IGdvdCByZXRyeSBjb2RlOyByZXRyeWluZyBpbiAxIHNlYyIsIF9fZnVuY19fKTsKKyAgICAgIHNsZWVwKDEpOworICAgIH0KKyAgfQorCisgIHZvaWQgZG9EZWxldGVVc2VyKEdhdGVrZWVwZXJSZXNwb25zZSAmcnNwKSB7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgIGF1dG8gcmV0ID0gZ2F0ZWtlZXBlcl8tPmRlbGV0ZVVzZXIoCisgICAgICAgICAgdWlkXywgWyZyc3BdKGNvbnN0IEdhdGVrZWVwZXJSZXNwb25zZSAmY2JfcnNwKSB7IHJzcCA9IGNiX3JzcDsgfSk7CisgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgIGlmIChyc3AuY29kZSAhPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVCkgYnJlYWs7CisgICAgICBBTE9HSSgiJXM6IGdvdCByZXRyeSBjb2RlOyByZXRyeWluZyBpbiAxIHNlYyIsIF9fZnVuY19fKTsKKyAgICAgIHNsZWVwKDEpOworICAgIH0KKyAgfQorCisgIHZvaWQgZG9EZWxldGVBbGxVc2VycyhHYXRla2VlcGVyUmVzcG9uc2UgJnJzcCkgeworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICBhdXRvIHJldCA9IGdhdGVrZWVwZXJfLT5kZWxldGVBbGxVc2VycygKKyAgICAgICAgICBbJnJzcF0oY29uc3QgR2F0ZWtlZXBlclJlc3BvbnNlICZjYl9yc3ApIHsgcnNwID0gY2JfcnNwOyB9KTsKKyAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgaWYgKHJzcC5jb2RlICE9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9SRVRSWV9USU1FT1VUKSBicmVhazsKKyAgICAgIEFMT0dJKCIlczogZ290IHJldHJ5IGNvZGU7IHJldHJ5aW5nIGluIDEgc2VjIiwgX19mdW5jX18pOworICAgICAgc2xlZXAoMSk7CisgICAgfQorICB9CisKKyAgdm9pZCBnZW5lcmF0ZVBhc3N3b3JkKGhpZGxfdmVjPHVpbnQ4X3Q+ICZwYXNzd29yZCwgdWludDhfdCBzZWVkKSB7CisgICAgcGFzc3dvcmQucmVzaXplKDE2KTsKKyAgICBtZW1zZXQocGFzc3dvcmQuZGF0YSgpLCBzZWVkLCBwYXNzd29yZC5zaXplKCkpOworICB9CisKKyAgdm9pZCBjaGVja0Vucm9sbChHYXRla2VlcGVyUmVzcG9uc2UgJnJzcCwgYm9vbCBleHBlY3RTdWNjZXNzKSB7CisgICAgaWYgKGV4cGVjdFN1Y2Nlc3MpIHsKKyAgICAgIEVYUEVDVF9FUShHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LLCByc3AuY29kZSk7CisgICAgICBFWFBFQ1RfTkUobnVsbHB0ciwgcnNwLmRhdGEuZGF0YSgpKTsKKyAgICAgIEVYUEVDVF9HVChyc3AuZGF0YS5zaXplKCksIFVJTlQzMl9DKDApKTsKKyAgICB9IGVsc2UgeworICAgICAgRVhQRUNUX0VRKEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkUsIHJzcC5jb2RlKTsKKyAgICAgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgcnNwLmRhdGEuc2l6ZSgpKTsKKyAgICB9CisgIH0KKworICB2b2lkIGNoZWNrVmVyaWZ5KEdhdGVrZWVwZXJSZXNwb25zZSAmcnNwLCB1aW50NjRfdCBjaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgYm9vbCBleHBlY3RTdWNjZXNzKSB7CisgICAgaWYgKGV4cGVjdFN1Y2Nlc3MpIHsKKyAgICAgIEVYUEVDVF9HRShyc3AuY29kZSwgR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSyk7CisgICAgICBFWFBFQ1RfTEUocnNwLmNvZGUsIEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfUkVFTlJPTEwpOworCisgICAgICBjb25zdCBod19hdXRoX3Rva2VuX3QgKmF1dGhfdG9rZW4gPSB0b0F1dGhUb2tlbihyc3ApOworICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGF1dGhfdG9rZW4pOworICAgICAgRVhQRUNUX0VRKGNoYWxsZW5nZSwgYXV0aF90b2tlbi0+Y2hhbGxlbmdlKTsKKyAgICB9IGVsc2UgeworICAgICAgRVhQRUNUX0VRKEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkUsIHJzcC5jb2RlKTsKKyAgICAgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgcnNwLmRhdGEuc2l6ZSgpKTsKKyAgICB9CisgIH0KKworICB2b2lkIGVucm9sbE5ld1Bhc3N3b3JkKGhpZGxfdmVjPHVpbnQ4X3Q+ICZwYXNzd29yZCwgR2F0ZWtlZXBlclJlc3BvbnNlICZyc3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBleHBlY3RTdWNjZXNzKSB7CisgICAgR2F0ZWtlZXBlclJlcXVlc3QgcmVxOworICAgIHJlcS5uZXdQd2Quc2V0VG9FeHRlcm5hbChwYXNzd29yZC5kYXRhKCksIHBhc3N3b3JkLnNpemUoKSk7CisgICAgZG9FbnJvbGwocmVxLCByc3ApOworICAgIGNoZWNrRW5yb2xsKHJzcCwgZXhwZWN0U3VjY2Vzcyk7CisgIH0KKworICB2b2lkIHZlcmlmeVBhc3N3b3JkKGhpZGxfdmVjPHVpbnQ4X3Q+ICZwYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiAmcGFzc3dvcmRIYW5kbGUsIHVpbnQ2NF90IGNoYWxsZW5nZSwKKyAgICAgICAgICAgICAgICAgICAgICBHYXRla2VlcGVyUmVzcG9uc2UgJnZlcmlmeVJzcCwgYm9vbCBleHBlY3RTdWNjZXNzKSB7CisgICAgR2F0ZWtlZXBlclJlcXVlc3QgdmVyaWZ5UmVxOworCisgICAgLy8gYnVpbGQgdmVyaWZ5IHJlcXVlc3QgZm9yIHRoZSBzYW1lIHBhc3N3b3JkICh3ZSB3YW50IGl0IHRvIHN1Y2NlZWQpCisgICAgdmVyaWZ5UmVxLm5ld1B3ZCA9IHBhc3N3b3JkOworICAgIC8vIHVzZSBlbnJvbGxlZCBwYXNzd29yZCBoYW5kbGUgd2UndmUgZ290CisgICAgdmVyaWZ5UmVxLmN1clB3ZEhhbmRsZSA9IHBhc3N3b3JkSGFuZGxlOworICAgIHZlcmlmeVJlcS5jaGFsbGVuZ2UgPSBjaGFsbGVuZ2U7CisgICAgZG9WZXJpZnkodmVyaWZ5UmVxLCB2ZXJpZnlSc3ApOworICAgIGNoZWNrVmVyaWZ5KHZlcmlmeVJzcCwgY2hhbGxlbmdlLCBleHBlY3RTdWNjZXNzKTsKKyAgfQorCisgcHJvdGVjdGVkOgorICBzcDxJR2F0ZWtlZXBlcj4gZ2F0ZWtlZXBlcl87CisgIHVpbnQzMl90IHVpZF87CisKKyBwdWJsaWM6CisgIEdhdGVrZWVwZXJIaWRsVGVzdCgpIDogdWlkXygwKSB7fQorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgR2F0ZWtlZXBlclJlc3BvbnNlIHJzcDsKKyAgICBnYXRla2VlcGVyXyA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElHYXRla2VlcGVyPigpOworICAgIEFTU0VSVF9ORShudWxscHRyLCBnYXRla2VlcGVyXy5nZXQoKSk7CisgICAgZG9EZWxldGVBbGxVc2Vycyhyc3ApOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisgICAgZG9EZWxldGVBbGxVc2Vycyhyc3ApOworICB9Cit9OworCisvKioKKyAqIEVuc3VyZSB3ZSBjYW4gZW5yb2xsIG5ldyBwYXNzd29yZAorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBFbnJvbGxTdWNjZXNzKSB7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBHYXRla2VlcGVyUmVzcG9uc2UgcnNwOworICBBTE9HSSgiVGVzdGluZyBFbnJvbGwgKGV4cGVjdGVkIHN1Y2Nlc3MpIik7CisgIGdlbmVyYXRlUGFzc3dvcmQocGFzc3dvcmQsIDApOworICBlbnJvbGxOZXdQYXNzd29yZChwYXNzd29yZCwgcnNwLCB0cnVlKTsKKyAgQUxPR0koIlRlc3RpbmcgRW5yb2xsIGRvbmUiKTsKK30KKworLyoqCisgKiBFbnN1cmUgd2UgY2FuIG5vdCBlbnJvbGwgZW1wdHkgcGFzc3dvcmQKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgRW5yb2xsTm9QYXNzd29yZCkgeworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHJzcDsKKyAgQUxPR0koIlRlc3RpbmcgRW5yb2xsIChleHBlY3RlZCBmYWlsdXJlKSIpOworICBlbnJvbGxOZXdQYXNzd29yZChwYXNzd29yZCwgcnNwLCBmYWxzZSk7CisgIEFMT0dJKCJUZXN0aW5nIEVucm9sbCBkb25lIik7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBzdWNjZXNzZnVsbHkgdmVyaWZ5IHByZXZpb3VzbHkgZW5yb2xsZWQgcGFzc3dvcmQKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgVmVyaWZ5U3VjY2VzcykgeworICBHYXRla2VlcGVyUmVzcG9uc2UgZW5yb2xsUnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgdmVyaWZ5UnNwOworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKworICBBTE9HSSgiVGVzdGluZyBFbnJvbGwrVmVyaWZ5IChleHBlY3RlZCBzdWNjZXNzKSIpOworICBnZW5lcmF0ZVBhc3N3b3JkKHBhc3N3b3JkLCAwKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcCwgdHJ1ZSk7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMSwgdmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIlRlc3RpbmcgRW5yb2xsK1ZlcmlmeSBkb25lIik7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBzZWN1cmVseSB1cGRhdGUgcGFzc3dvcmQgKGtlZXAgdGhlIHNhbWUKKyAqIHNlY3VyZSB1c2VyX2lkKSBpZiB3ZSBwcm92ZSB3ZSBrbm93IG9sZCBwYXNzd29yZAorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBUcnVzdGVkUmVlbnJvbGwpIHsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlcXVlc3QgcmVlbnJvbGxSZXE7CisgIEdhdGVrZWVwZXJSZXNwb25zZSByZWVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHJlZW5yb2xsVmVyaWZ5UnNwOworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKyAgaGlkbF92ZWM8dWludDhfdD4gbmV3UGFzc3dvcmQ7CisKKyAgZ2VuZXJhdGVQYXNzd29yZChwYXNzd29yZCwgMCk7CisKKyAgQUxPR0koIlRlc3RpbmcgVHJ1c3RlZCBSZWVucm9sbCAoZXhwZWN0ZWQgc3VjY2VzcykiKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcCwgdHJ1ZSk7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMCwgdmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIlByaW1hcnkgRW5yb2xsK1ZlcmlmeSBkb25lIik7CisKKyAgZ2VuZXJhdGVQYXNzd29yZChuZXdQYXNzd29yZCwgMSk7CisgIHJlZW5yb2xsUmVxLm5ld1B3ZC5zZXRUb0V4dGVybmFsKG5ld1Bhc3N3b3JkLmRhdGEoKSwgbmV3UGFzc3dvcmQuc2l6ZSgpKTsKKyAgcmVlbnJvbGxSZXEuY3VyUHdkLnNldFRvRXh0ZXJuYWwocGFzc3dvcmQuZGF0YSgpLCBwYXNzd29yZC5zaXplKCkpOworICByZWVucm9sbFJlcS5jdXJQd2RIYW5kbGUuc2V0VG9FeHRlcm5hbChlbnJvbGxSc3AuZGF0YS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVucm9sbFJzcC5kYXRhLnNpemUoKSk7CisKKyAgZG9FbnJvbGwocmVlbnJvbGxSZXEsIHJlZW5yb2xsUnNwKTsKKyAgY2hlY2tFbnJvbGwocmVlbnJvbGxSc3AsIHRydWUpOworICB2ZXJpZnlQYXNzd29yZChuZXdQYXNzd29yZCwgcmVlbnJvbGxSc3AuZGF0YSwgMCwgcmVlbnJvbGxWZXJpZnlSc3AsIHRydWUpOworICBBTE9HSSgiVHJ1c3RlZCBSZUVucm9sbCtWZXJpZnkgZG9uZSIpOworCisgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqZmlyc3QgPSB0b0F1dGhUb2tlbih2ZXJpZnlSc3ApOworICBjb25zdCBod19hdXRoX3Rva2VuX3QgKnNlY29uZCA9IHRvQXV0aFRva2VuKHJlZW5yb2xsVmVyaWZ5UnNwKTsKKyAgaWYgKGZpcnN0ICE9IG51bGxwdHIgJiYgc2Vjb25kICE9IG51bGxwdHIpIHsKKyAgICBFWFBFQ1RfRVEoZmlyc3QtPnVzZXJfaWQsIHNlY29uZC0+dXNlcl9pZCk7CisgIH0KKyAgQUxPR0koIlRlc3RpbmcgVHJ1c3RlZCBSZWVucm9sbCBkb25lIik7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiB1cGRhdGUgcGFzc3dvcmQgKGFuZCBnZXQgbmV3CisgKiBzZWN1cmUgdXNlcl9pZCkgaWYgd2UgZG9uJ3Qga25vdyBvbGQgcGFzc3dvcmQKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgVW50cnVzdGVkUmVlbnJvbGwpIHsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHJlZW5yb2xsUnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgdmVyaWZ5UnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgcmVlbnJvbGxWZXJpZnlSc3A7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBoaWRsX3ZlYzx1aW50OF90PiBuZXdQYXNzd29yZDsKKworICBBTE9HSSgiVGVzdGluZyBVbnRydXN0ZWQgUmVlbnJvbGwgKGV4cGVjdGVkIHN1Y2Nlc3MpIik7CisgIGdlbmVyYXRlUGFzc3dvcmQocGFzc3dvcmQsIDApOworICBlbnJvbGxOZXdQYXNzd29yZChwYXNzd29yZCwgZW5yb2xsUnNwLCB0cnVlKTsKKyAgdmVyaWZ5UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcC5kYXRhLCAwLCB2ZXJpZnlSc3AsIHRydWUpOworICBBTE9HSSgiUHJpbWFyeSBFbnJvbGwrVmVyaWZ5IGRvbmUiKTsKKworICBnZW5lcmF0ZVBhc3N3b3JkKG5ld1Bhc3N3b3JkLCAxKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQobmV3UGFzc3dvcmQsIHJlZW5yb2xsUnNwLCB0cnVlKTsKKyAgdmVyaWZ5UGFzc3dvcmQobmV3UGFzc3dvcmQsIHJlZW5yb2xsUnNwLmRhdGEsIDAsIHJlZW5yb2xsVmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIlVudHJ1c3RlZCBSZUVucm9sbCtWZXJpZnkgZG9uZSIpOworCisgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqZmlyc3QgPSB0b0F1dGhUb2tlbih2ZXJpZnlSc3ApOworICBjb25zdCBod19hdXRoX3Rva2VuX3QgKnNlY29uZCA9IHRvQXV0aFRva2VuKHJlZW5yb2xsVmVyaWZ5UnNwKTsKKyAgaWYgKGZpcnN0ICE9IG51bGxwdHIgJiYgc2Vjb25kICE9IG51bGxwdHIpIHsKKyAgICBFWFBFQ1RfTkUoZmlyc3QtPnVzZXJfaWQsIHNlY29uZC0+dXNlcl9pZCk7CisgIH0KKyAgQUxPR0koIlRlc3RpbmcgVW50cnVzdGVkIFJlZW5yb2xsIGRvbmUiKTsKK30KKworLyoqCisgKiBFbnN1cmUgd2UgZG9udCBnZXQgc3VjY2Vzc2Z1bCB2ZXJpZnkgd2l0aCBpbnZhbGlkIGRhdGEKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgVmVyaWZ5Tm9EYXRhKSB7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZEhhbmRsZTsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKworICBBTE9HSSgiVGVzdGluZyBWZXJpZnkgKGV4cGVjdGVkIGZhaWx1cmUpIik7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBwYXNzd29yZEhhbmRsZSwgMCwgdmVyaWZ5UnNwLCBmYWxzZSk7CisgIEVYUEVDVF9FUShHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfR0VORVJBTF9GQUlMVVJFLCB2ZXJpZnlSc3AuY29kZSk7CisgIEFMT0dJKCJUZXN0aW5nIFZlcmlmeSBkb25lIik7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBub3QgdmVyaWZ5IHBhc3N3b3JkIGFmdGVyIHdlIGVucm9sbGVkIGl0IGFuZCB0aGVuIGRlbGV0ZWQgdXNlcgorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBEZWxldGVVc2VyVGVzdCkgeworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGRlbFJzcDsKKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlVXNlciAoZXhwZWN0ZWQgc3VjY2VzcykiKTsKKyAgc2V0VWlkKDEwMDAxKTsKKyAgZ2VuZXJhdGVQYXNzd29yZChwYXNzd29yZCwgMCk7CisgIGVucm9sbE5ld1Bhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AsIHRydWUpOworICB2ZXJpZnlQYXNzd29yZChwYXNzd29yZCwgZW5yb2xsUnNwLmRhdGEsIDAsIHZlcmlmeVJzcCwgdHJ1ZSk7CisgIEFMT0dJKCJFbnJvbGwrVmVyaWZ5IGRvbmUiKTsKKyAgZG9EZWxldGVVc2VyKGRlbFJzcCk7CisgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgZGVsUnNwLmRhdGEuc2l6ZSgpKTsKKyAgRVhQRUNUX1RSVUUoZGVsUnNwLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX05PVF9JTVBMRU1FTlRFRCB8fAorICAgICAgICAgICAgICBkZWxSc3AuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LKTsKKyAgQUxPR0koIkRlbGV0ZVVzZXIgZG9uZSIpOworICBpZiAoZGVsUnNwLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSykgeworICAgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMCwgdmVyaWZ5UnNwLCBmYWxzZSk7CisgICAgRVhQRUNUX0VRKEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkUsIHZlcmlmeVJzcC5jb2RlKTsKKyAgICBBTE9HSSgiVmVyaWZ5IGFmdGVyIERlbGV0ZSBkb25lIChtdXN0IGZhaWwpIik7CisgIH0KKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlVXNlciBkb25lOiByc3A9JSIgUFJJaTMyLCBkZWxSc3AuY29kZSk7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBub3QgZGVsZXRlIGEgdXNlciB0aGF0IGRvZXMgbm90IGV4aXN0CisgKi8KK1RFU1RfRihHYXRla2VlcGVySGlkbFRlc3QsIERlbGV0ZUludmFsaWRVc2VyVGVzdCkgeworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGRlbFJzcDE7CisgIEdhdGVrZWVwZXJSZXNwb25zZSBkZWxSc3AyOworICBBTE9HSSgiVGVzdGluZyBkZWxldGVVc2VyIChleHBlY3RlZCBmYWlsdXJlKSIpOworICBzZXRVaWQoMTAwMDIpOworICBnZW5lcmF0ZVBhc3N3b3JkKHBhc3N3b3JkLCAwKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcCwgdHJ1ZSk7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMCwgdmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIkVucm9sbCtWZXJpZnkgZG9uZSIpOworCisgIC8vIERlbGV0ZSB0aGUgdXNlcgorICBkb0RlbGV0ZVVzZXIoZGVsUnNwMSk7CisgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgZGVsUnNwMS5kYXRhLnNpemUoKSk7CisgIEVYUEVDVF9UUlVFKGRlbFJzcDEuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfTk9UX0lNUExFTUVOVEVEIHx8CisgICAgICAgICAgICAgIGRlbFJzcDEuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LKTsKKworICAvLyBEZWxldGUgdGhlIHVzZXIgYWdhaW4KKyAgZG9EZWxldGVVc2VyKGRlbFJzcDIpOworICBFWFBFQ1RfRVEoVUlOVDMyX0MoMCksIGRlbFJzcDIuZGF0YS5zaXplKCkpOworICBFWFBFQ1RfVFJVRShkZWxSc3AyLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX05PVF9JTVBMRU1FTlRFRCB8fAorICAgICAgICAgICAgICBkZWxSc3AyLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX0dFTkVSQUxfRkFJTFVSRSk7CisgIEFMT0dJKCJEZWxldGVVc2VyIGRvbmUiKTsKKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlVXNlciBkb25lOiByc3A9JSIgUFJJaTMyLCBkZWxSc3AyLmNvZGUpOworfQorCisvKioKKyAqIEVuc3VyZSB3ZSBjYW4gbm90IHZlcmlmeSBwYXNzd29yZHMgYWZ0ZXIgd2UgZW5yb2xsZWQgdGhlbSBhbmQgdGhlbiBkZWxldGVkCisgKiBhbGwgdXNlcnMKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgRGVsZXRlQWxsVXNlcnNUZXN0KSB7CisgIHN0cnVjdCBVc2VyRGF0YSB7CisgICAgdWludDMyX3QgdXNlcklkOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICAgIEdhdGVrZWVwZXJSZXNwb25zZSBlbnJvbGxSc3A7CisgICAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKyAgICBVc2VyRGF0YShpbnQgaWQpIHsgdXNlcklkID0gaWQ7IH0KKyAgfSB1c2Vyc1szXXsxMDAwMSwgMTAwMDIsIDEwMDAzfTsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGRlbEFsbFJzcDsKKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlQWxsVXNlcnMgKGV4cGVjdGVkIHN1Y2Nlc3MpIik7CisKKyAgLy8gZW5yb2xsIG11bHRpcGxlIHVzZXJzCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHVzZXJzKSAvIHNpemVvZih1c2Vyc1swXSk7ICsraSkgeworICAgIHNldFVpZCh1c2Vyc1tpXS51c2VySWQpOworICAgIGdlbmVyYXRlUGFzc3dvcmQodXNlcnNbaV0ucGFzc3dvcmQsIChpICUgMjU1KSArIDEpOworICAgIGVucm9sbE5ld1Bhc3N3b3JkKHVzZXJzW2ldLnBhc3N3b3JkLCB1c2Vyc1tpXS5lbnJvbGxSc3AsIHRydWUpOworICB9CisgIEFMT0dJKCJNdWx0aXBsZSB1c2VycyBlbnJvbGxlZCIpOworCisgIC8vIHZlcmlmeSBtdWx0aXBsZSB1c2VycworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZih1c2VycykgLyBzaXplb2YodXNlcnNbMF0pOyArK2kpIHsKKyAgICBzZXRVaWQodXNlcnNbaV0udXNlcklkKTsKKyAgICB2ZXJpZnlQYXNzd29yZCh1c2Vyc1tpXS5wYXNzd29yZCwgdXNlcnNbaV0uZW5yb2xsUnNwLmRhdGEsIDAsCisgICAgICAgICAgICAgICAgICAgdXNlcnNbaV0udmVyaWZ5UnNwLCB0cnVlKTsKKyAgfQorICBBTE9HSSgiTXVsdGlwbGUgdXNlcnMgdmVyaWZpZWQiKTsKKworICBkb0RlbGV0ZUFsbFVzZXJzKGRlbEFsbFJzcCk7CisgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgZGVsQWxsUnNwLmRhdGEuc2l6ZSgpKTsKKyAgRVhQRUNUX1RSVUUoZGVsQWxsUnNwLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX05PVF9JTVBMRU1FTlRFRCB8fAorICAgICAgICAgICAgICBkZWxBbGxSc3AuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LKTsKKyAgQUxPR0koIkFsbCB1c2VycyBkZWxldGVkIik7CisKKyAgaWYgKGRlbEFsbFJzcC5jb2RlID09IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfT0spIHsKKyAgICAvLyB2ZXJpZnkgbXVsdGlwbGUgdXNlcnMgYWZ0ZXIgdGhleSBhcmUgZGVsZXRlZDsgYWxsIG11c3QgZmFpbAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHVzZXJzKSAvIHNpemVvZih1c2Vyc1swXSk7ICsraSkgeworICAgICAgc2V0VWlkKHVzZXJzW2ldLnVzZXJJZCk7CisgICAgICB2ZXJpZnlQYXNzd29yZCh1c2Vyc1tpXS5wYXNzd29yZCwgdXNlcnNbaV0uZW5yb2xsUnNwLmRhdGEsIDAsCisgICAgICAgICAgICAgICAgICAgICB1c2Vyc1tpXS52ZXJpZnlSc3AsIGZhbHNlKTsKKyAgICAgIEVYUEVDVF9FUShHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfR0VORVJBTF9GQUlMVVJFLAorICAgICAgICAgICAgICAgIHVzZXJzW2ldLnZlcmlmeVJzcC5jb2RlKTsKKyAgICB9CisgICAgQUxPR0koIk11bHRpcGxlIHVzZXJzIHZlcmlmaWVkIGFmdGVyIGRlbGV0ZSAoYWxsIG11c3QgZmFpbCkiKTsKKyAgfQorCisgIEFMT0dJKCJUZXN0aW5nIGRlbGV0ZUFsbFVzZXJzIGRvbmU6IHJzcD0lIiBQUklpMzIsIGRlbEFsbFJzcC5jb2RlKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9nYXRla2VlcGVyL0FuZHJvaWQuYnAgYi9nYXRla2VlcGVyL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNmNzBlYgotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9BbmRyb2lkLmJwIGIvZ25zcy8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjk4OGRlCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDE5NiBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklBR25zcy5oYWwiLAorICAgICAgICAiSUFHbnNzQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklBR25zc1JpbC5oYWwiLAorICAgICAgICAiSUFHbnNzUmlsQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzLmhhbCIsCisgICAgICAgICJJR25zc0JhdGNoaW5nLmhhbCIsCisgICAgICAgICJJR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzQ29uZmlndXJhdGlvbi5oYWwiLAorICAgICAgICAiSUduc3NEZWJ1Zy5oYWwiLAorICAgICAgICAiSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbCIsCisgICAgICAgICJJR25zc0dlb2ZlbmNpbmcuaGFsIiwKKyAgICAgICAgIklHbnNzTWVhc3VyZW1lbnQuaGFsIiwKKyAgICAgICAgIklHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oYWwiLAorICAgICAgICAiSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbCIsCisgICAgICAgICJJR25zc05pLmhhbCIsCisgICAgICAgICJJR25zc05pQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzWHRyYS5oYWwiLAorICAgICAgICAiSUduc3NYdHJhQ2FsbGJhY2suaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQUduc3NBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQUduc3NDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9BR25zc1JpbEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9BR25zc1JpbENhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc0JhdGNoaW5nQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NCYXRjaGluZ0NhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzQ29uZmlndXJhdGlvbkFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzRGVidWdBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc0dlb2ZlbmNlQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc0dlb2ZlbmNpbmdBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc01lYXN1cmVtZW50QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NNZWFzdXJlbWVudENhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NOYXZpZ2F0aW9uTWVzc2FnZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzTmlBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc05pQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc1h0cmFBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc1h0cmFDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JQUduc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0FHbnNzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3QUduc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdBR25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNBR25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUFHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0FHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdBR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3QUduc3NDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNBR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JQUduc3NSaWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0FHbnNzUmlsLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3QUduc3NSaWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdBR25zc1JpbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNBR25zc1JpbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUFHbnNzUmlsQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0FHbnNzUmlsQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdBR25zc1JpbENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3QUduc3NSaWxDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNBR25zc1JpbENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NCYXRjaGluZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NCYXRjaGluZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NCYXRjaGluZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzQmF0Y2hpbmcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc0JhdGNoaW5nQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzQmF0Y2hpbmdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NCYXRjaGluZ0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NCYXRjaGluZ0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc0NvbmZpZ3VyYXRpb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NDb25maWd1cmF0aW9uLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc0NvbmZpZ3VyYXRpb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzQ29uZmlndXJhdGlvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzQ29uZmlndXJhdGlvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NEZWJ1Zy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc0RlYnVnLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc0RlYnVnLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc0RlYnVnLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NEZWJ1Zy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzR2VvZmVuY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NHZW9mZW5jZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc0dlb2ZlbmNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc0dlb2ZlbmNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzR2VvZmVuY2luZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc0dlb2ZlbmNpbmcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzR2VvZmVuY2luZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NHZW9mZW5jaW5nLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NHZW9mZW5jaW5nLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzTWVhc3VyZW1lbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzTWVhc3VyZW1lbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzTWVhc3VyZW1lbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc01lYXN1cmVtZW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NNZWFzdXJlbWVudENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc01lYXN1cmVtZW50Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc05hdmlnYXRpb25NZXNzYWdlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc05hdmlnYXRpb25NZXNzYWdlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc05hdmlnYXRpb25NZXNzYWdlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzTmkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NOaS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NOaS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NOaS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzTmkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzTmlDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc05pQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzTmlDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NOaUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NOaUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc1h0cmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NYdHJhLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc1h0cmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzWHRyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzWHRyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NYdHJhQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NYdHJhQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzWHRyYUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc1h0cmFDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzWHRyYUNhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvQW5kcm9pZC5tayBiL2duc3MvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIxYjc2NQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxMTAzIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmduc3MtVjEuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzQ29uc3RlbGxhdGlvblR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzQ29uc3RlbGxhdGlvblR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjp0eXBlcy5HbnNzQ29uc3RlbGxhdGlvblR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEduc3NMb2NhdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0duc3NMb2NhdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NMb2NhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR25zc0xvY2F0aW9uRmxhZ3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzTG9jYXRpb25GbGFncy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NMb2NhdGlvbkZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzTWF4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvR25zc01heC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NNYXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3MuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JQUduc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc0NhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NSaWwuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JQUduc3NSaWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zc1JpbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NSaWxDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc1JpbENhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQUduc3NSaWxDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzUmlsQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbENhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zcy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTmkuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NCYXRjaGluZy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQmF0Y2hpbmcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQmF0Y2hpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NCYXRjaGluZ0NhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NDb25maWd1cmF0aW9uLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NDb25maWd1cmF0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQ29uZmlndXJhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDb25maWd1cmF0aW9uLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc0RlYnVnLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NEZWJ1Zy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzRGVidWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzR2VvZmVuY2VDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzR2VvZmVuY2VDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NHZW9mZW5jZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzR2VvZmVuY2luZy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzR2VvZmVuY2luZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0dlb2ZlbmNpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NNZWFzdXJlbWVudC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTWVhc3VyZW1lbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTWVhc3VyZW1lbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NNZWFzdXJlbWVudENhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05hdmlnYXRpb25NZXNzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmkuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05pLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05pCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc05pQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05pQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOaUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzWHRyYS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzWHRyYS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NYdHJhCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzWHRyYUNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NYdHJhQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc1h0cmFDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmduc3MtVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzQ29uc3RlbGxhdGlvblR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzQ29uc3RlbGxhdGlvblR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjp0eXBlcy5HbnNzQ29uc3RlbGxhdGlvblR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEduc3NMb2NhdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0duc3NMb2NhdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NMb2NhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR25zc0xvY2F0aW9uRmxhZ3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzTG9jYXRpb25GbGFncy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NMb2NhdGlvbkZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzTWF4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvR25zc01heC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NNYXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3MuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JQUduc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc0NhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NSaWwuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JQUduc3NSaWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zc1JpbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NSaWxDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc1JpbENhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQUduc3NSaWxDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzUmlsQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbENhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zcy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTmkuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NCYXRjaGluZy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQmF0Y2hpbmcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQmF0Y2hpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NCYXRjaGluZ0NhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NDb25maWd1cmF0aW9uLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NDb25maWd1cmF0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQ29uZmlndXJhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDb25maWd1cmF0aW9uLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc0RlYnVnLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NEZWJ1Zy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzRGVidWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzR2VvZmVuY2VDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzR2VvZmVuY2VDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NHZW9mZW5jZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzR2VvZmVuY2luZy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzR2VvZmVuY2luZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0dlb2ZlbmNpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NNZWFzdXJlbWVudC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTWVhc3VyZW1lbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTWVhc3VyZW1lbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NNZWFzdXJlbWVudENhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05hdmlnYXRpb25NZXNzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmkuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05pLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05pCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc05pQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05pQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOaUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzWHRyYS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzWHRyYS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NYdHJhCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzWHRyYUNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NYdHJhQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc1h0cmFDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5nbnNzLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3MuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbENhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDb25maWd1cmF0aW9uLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhQ2FsbGJhY2suaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+IHRoaXMtbGlicmFyeSAtPiBmcmFtZXdvcmsuamFyCitMT0NBTF9OT19TVEFOREFSRF9MSUJSQVJJRVMgOj0gdHJ1ZQorTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gY29yZS1vagorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lBR25zcy5oYWwgYi9nbnNzLzEuMC9JQUduc3MuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMGY2MDYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JQUduc3MuaGFsCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJQUduc3NDYWxsYmFjazsKKworLyoqCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEFHTlNTIHN1cHBvcnQuCisgKi8KK2ludGVyZmFjZSBJQUduc3MgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBUE5fSVBfIikKKyAgICBlbnVtIEFwbklwVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBJTlZBTElEICA9IDAsCisgICAgICAgIElQVjQgICAgID0gMSwKKyAgICAgICAgSVBWNiAgICAgPSAyLAorICAgICAgICBJUFY0VjYgICA9IDMKKyAgICB9OworCisgICAgLyoqCisgICAgICogT3BlbnMgdGhlIEFHTlNTIGludGVyZmFjZSBhbmQgcHJvdmlkZXMgdGhlIGNhbGxiYWNrIHJvdXRpbmVzIHRvIHRoZQorICAgICAqIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIEhhbmRsZSB0byB0aGUgQUdOU1Mgc3RhdHVzIGNhbGxiYWNrIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBzZXRDYWxsYmFjayhJQUduc3NDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBOb3RpZmllcyB0aGF0IHRoZSBBR05TUyBkYXRhIGNvbm5lY3Rpb24gaGFzIGJlZW4gY2xvc2VkLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqLworICAgIGRhdGFDb25uQ2xvc2VkKCkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdGhhdCBhIGRhdGEgY29ubmVjdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciBBR05TUy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBkYXRhQ29ubkZhaWxlZCgpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGhvc3RuYW1lIGFuZCBwb3J0IGZvciB0aGUgQUdOU1Mgc2VydmVyLgorICAgICAqCisgICAgICogQHBhcmFtIHR5cGUgU3BlY2lmaWVzIGlmIFNVUEwgb3IgQzJLLgorICAgICAqIEBwYXJhbSBob3N0bmFtZSBIb3N0bmFtZSBvZiB0aGUgQUdOU1Mgc2VydmVyLgorICAgICAqIEBwYXJhbSBwb3J0IFBvcnQgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VydmVyLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqLworICAgIHNldFNlcnZlcihBR25zc1R5cGUgdHlwZSwgc3RyaW5nIGhvc3RuYW1lLCBpbnQzMl90IHBvcnQpCisgICAgICAgIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoYXQgYSBkYXRhIGNvbm5lY3Rpb24gaXMgYXZhaWxhYmxlIGFuZCBzZXRzIHRoZSBuYW1lIG9mIHRoZQorICAgICAqIEFQTiwgYW5kIGl0cyBJUCB0eXBlLCB0byBiZSB1c2VkIGZvciBTVVBMIGNvbm5lY3Rpb25zLgorICAgICAqCisgICAgICogQHBhcmFtIGFwbiBBY2Nlc3MgUG9pbnQgTmFtZShmb2xsb3dzIHJlZ3VsYXIgQVBOIG5hbWluZyBjb252ZW50aW9uKS4KKyAgICAgKiBAcGFyYW0gYXBuSXBUeXBlIFNwZWNpZmllcyBpZiBTVVBMIG9yIEMySy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBkYXRhQ29ubk9wZW4oc3RyaW5nIGFwbiwgQXBuSXBUeXBlIGFwbklwVHlwZSkKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lBR25zc0NhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lBR25zc0NhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWYxNjg5Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUFHbnNzQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBDYWxsYmFjayBzdHJ1Y3R1cmUgZm9yIHRoZSBBR05TUyBpbnRlcmZhY2UuICovCitpbnRlcmZhY2UgSUFHbnNzQ2FsbGJhY2sgeworICAgIC8qKiBBR05TUyB0eXBlICoqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTXyIpCisgICAgZW51bSBBR25zc1R5cGUgOiB1aW50OF90IHsKKyAgICAgICAgVFlQRV9TVVBMICAgICAgICAgPSAxLAorICAgICAgICBUWVBFX0MySyAgICAgICAgICA9IDIKKyAgICB9OworCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdOU1NfIikKKyAgICBlbnVtIEFHbnNzU3RhdHVzVmFsdWUgOiB1aW50OF90IHsKKyAgICAgICAgLyoqIEdOU1MgcmVxdWVzdHMgZGF0YSBjb25uZWN0aW9uIGZvciBBR05TUy4gKi8KKyAgICAgICAgUkVRVUVTVF9BR05TU19EQVRBX0NPTk4gID0gMSwKKyAgICAgICAgLyoqIEdOU1MgcmVsZWFzZXMgdGhlIEFHTlNTIGRhdGEgY29ubmVjdGlvbi4gKi8KKyAgICAgICAgUkVMRUFTRV9BR05TU19EQVRBX0NPTk4gID0gMiwKKyAgICAgICAgLyoqIEFHTlNTIGRhdGEgY29ubmVjdGlvbiBpbml0aWF0ZWQgKi8KKyAgICAgICAgQUdOU1NfREFUQV9DT05ORUNURUQgICAgID0gMywKKyAgICAgICAgLyoqIEFHTlNTIGRhdGEgY29ubmVjdGlvbiBjb21wbGV0ZWQgKi8KKyAgICAgICAgQUdOU1NfREFUQV9DT05OX0RPTkUgICAgID0gNCwKKyAgICAgICAgLyoqIEFHTlNTIGRhdGEgY29ubmVjdGlvbiBmYWlsZWQgKi8KKyAgICAgICAgQUdOU1NfREFUQV9DT05OX0ZBSUxFRCAgID0gNQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgQUdOU1MgYXVnbWVudGVkIHRvIHN1cHBvcnQgSVB2NC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTXyIpCisgICAgc3RydWN0IEFHbnNzU3RhdHVzSXBWNCB7CisgICAgICAgIEFHbnNzVHlwZSB0eXBlOworICAgICAgICBBR25zc1N0YXR1c1ZhbHVlIHN0YXR1czsKKyAgICAgICAgLyoqCisgICAgICAgICAqIDMyLWJpdCBJUHY0IGFkZHJlc3MuCisgICAgICAgICAqLworICAgICAgICB1aW50MzJfdCBpcFY0QWRkcjsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIEFHTlNTIGF1Z21lbnRlZCB0byBzdXBwb3J0IElQdjYuCisgICAgICovCisgICAgc3RydWN0IEFHbnNzU3RhdHVzSXBWNiB7CisgICAgICAgIEFHbnNzVHlwZSB0eXBlOworICAgICAgICBBR25zc1N0YXR1c1ZhbHVlIHN0YXR1czsKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEyOC1iaXQgSVB2NiBhZGRyZXNzLgorICAgICAgICAgKi8KKyAgICAgICAgdWludDhfdFsxNl0gaXBWNkFkZHI7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENhbGxiYWNrIHdpdGggQUdOU1MoSXBWNCkgc3RhdHVzIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyBXaWxsIGJlIG9mIHR5cGUgQUduc3NTdGF0dXNJcFY0LgorICAgICAqLworICAgIGFnbnNzU3RhdHVzSXBWNENiKEFHbnNzU3RhdHVzSXBWNCBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgd2l0aCBBR05TUyhJcFY2KSBzdGF0dXMgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIFdpbGwgYmUgb2YgdHlwZSBBR25zc1N0YXR1c0lwVjYuCisgICAgICovCisgICAgYWduc3NTdGF0dXNJcFY2Q2IoQUduc3NTdGF0dXNJcFY2IHN0YXR1cyk7CisKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JQUduc3NSaWwuaGFsIGIvZ25zcy8xLjAvSUFHbnNzUmlsLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjI4OWY2Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUFHbnNzUmlsLmhhbApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworaW1wb3J0IElBR25zc1JpbENhbGxiYWNrOworCisvKioKKyAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgQUdOU1MgUklMIHN1cHBvcnQuIEFuIEFzc2lzdGVkIEdOU1MgUmFkaW8gSW50ZXJmYWNlCisgKiBMYXllciBpbnRlcmZhY2UgYWxsb3dzIHRoZSBHTlNTIGNoaXBzZXQgdG8gcmVxdWVzdCByYWRpbyBpbnRlcmZhY2UgbGF5ZXIKKyAqIGluZm9ybWF0aW9uIGZyb20gQW5kcm9pZCBwbGF0Zm9ybS4gRXhhbXBsZXMgb2Ygc3VjaCBpbmZvcm1hdGlvbiBhcmUgcmVmZXJlbmNlCisgKiBsb2NhdGlvbiwgdW5pcXVlIHN1YnNjcmliZXIgSUQsIHBob25lIG51bWJlciBzdHJpbmcgYW5kIG5ldHdvcmsgYXZhaWxhYmlsaXR5IGNoYW5nZXMuCisgKi8KK2ludGVyZmFjZSBJQUduc3NSaWwgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTX1NFVElEX1RZUEVfIikKKyAgICBlbnVtIFNldElEVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBOT05FICAgID0gMCwKKyAgICAgICAgSU1TSSAgICA9IDEsCisgICAgICAgIE1TSVNETSAgPSAyCisgICAgfTsKKworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTX1JJTF9ORVRXT1JLX1RZUEVfIikKKyAgICBlbnVtIE5ldHdvcmtUeXBlIDogdWludDhfdCB7CisgICAgICAgIE1PQklMRSAgPSAwLAorICAgICAgICBXSUZJICAgID0gMSwKKyAgICAgICAgTU1TICAgICA9IDIsCisgICAgICAgIFNVUEwgICAgPSAzLAorICAgICAgICBEVU4gICAgID0gNCwKKyAgICAgICAgSElQUkkgICA9IDUsCisgICAgICAgIFdJTUFYICAgPSA2LAorICAgIH07CisKKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQUdQU19SRUZfTE9DQVRJT05fVFlQRV8iKQorICAgIGVudW0gQUduc3NSZWZMb2NhdGlvblR5cGUgOiB1aW50OF90IHsKKyAgICAgICAgR1NNX0NFTExJRCAgID0gMSwKKyAgICAgICAgVU1UU19DRUxMSUQgID0gMiwKKyAgICAgICAgTFRFX0NFTExJRCAgID0gNCwKKyAgICB9OworCisgICAgLyoqIENlbGxJRCBmb3IgMkcsIDNHIGFuZCBMVEUsIHVzZWQgaW4gQUdOU1MuICovCisgICAgc3RydWN0IEFHbnNzUmVmTG9jYXRpb25DZWxsSUQgeworICAgICAgICBBR25zc1JlZkxvY2F0aW9uVHlwZSB0eXBlOworCisgICAgICAgIC8qKiBNb2JpbGUgQ291bnRyeSBDb2RlLiAqLworICAgICAgICB1aW50MTZfdCBtY2M7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE1vYmlsZSBOZXR3b3JrIENvZGUgLiovCisgICAgICAgIHVpbnQxNl90IG1uYzsKKworICAgICAgICAvKioKKyAgICAgICAgICogTG9jYXRpb24gQXJlYSBDb2RlIGluIDJHLCAzRyBhbmQgTFRFLiBJbiAzRyBsYWMgaXMgZGlzY2FyZGVkLiBJbiBMVEUsCisgICAgICAgICAqIGxhYyBpcyBwb3B1bGF0ZWQgd2l0aCB0YWMsIHRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IGJyZWFrIG9sZCBjbGllbnRzIHRoYXQKKyAgICAgICAgICogbWlnaHQgcmVseSBpbiB0aGUgb2xkICh3cm9uZykgYmVoYXZpb3IuCisgICAgICAgICAqLworICAgICAgICB1aW50MTZfdCBsYWM7CisKKyAgICAgICAgLyoqIENlbGwgaWQgaW4gMkcuIFV0cmFuIENlbGwgaWQgaW4gM0cuIENlbGwgR2xvYmFsIElkIEVVVFJBIGluIExURS4gKi8KKyAgICAgICAgdWludDMyX3QgY2lkOworCisgICAgICAgIC8qKiBUcmFja2luZyBBcmVhIENvZGUgaW4gTFRFLiAqLworICAgICAgICB1aW50MTZfdCB0YWM7CisKKyAgICAgICAgLyoqIFBoeXNpY2FsIENlbGwgaWQgaW4gTFRFIChub3QgdXNlZCBpbiAyRyBhbmQgM0cpICovCisgICAgICAgIHVpbnQxNl90IHBjaWQ7CisgICAgfTsKKworICAgIC8qKiBSZXByZXNlbnRzIHJlZiBsb2NhdGlvbnMgKi8KKyAgICBzdHJ1Y3QgQUduc3NSZWZMb2NhdGlvbiB7CisgICAgICAgIEFHbnNzUmVmTG9jYXRpb25UeXBlIHR5cGU7CisKKyAgICAgICAgQUduc3NSZWZMb2NhdGlvbkNlbGxJRCBjZWxsSUQ7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBBR05TUyBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBJbnRlcmZhY2UgZm9yIEFHbnNzUmlsIGNhbGxiYWNrcy4KKyAgICAgKi8KKyAgICBzZXRDYWxsYmFjayhJQUduc3NSaWxDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByZWZlcmVuY2UgbG9jYXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gYWduc3NSZWZsb2NhdGlvbiBBR05TUyByZWZlcmVuY2UgbG9jYXRpb24gQ2VsbElELgorICAgICAqLworICAgIHNldFJlZkxvY2F0aW9uKEFHbnNzUmVmTG9jYXRpb24gYWduc3NSZWZsb2NhdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBTRVQgSUQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdHlwZSBNdXN0IGJlIHBvcHVsYXRlZCB3aXRoIGVpdGhlciBJTVNJIG9yIE1TSVNETiBvciBOT05FLgorICAgICAqIEBwYXJhbSBzZXRpZCBJZiB0eXBlIGlzIElNU0kgdGhlbiBzZXRpZCBpcyBwb3B1bGF0ZWQgd2l0aAorICAgICAqIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgdW5pcXVlIFN1YnNjcmliZXIgSUQsIGZvciBleGFtcGxlLCB0aGUgSU1TSSBmb3IKKyAgICAgKiBhIEdNUyBwaG9uZS4gSWYgdHlwZSBpcyBNU0lTRE4sIHRoZW4gc2V0aWQgbXVzdCBjb250YWluCisgICAgICogdGhlIHBob25lIG51bWJlciBzdHJpbmcgZm9yIGxpbmUgMS4gRm9yIGV4YW1wbGUsIHRoZSBNU0lTRE4gZm9yIGEgR1NNIHBob25lLgorICAgICAqIElmIHRoZSB0eXBlIGlzIE5PTkUsIHRoZW4gdGhlIHN0cmluZyBtdXN0IGJlIGVtcHR5LgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgYWxsIHBhcmFtZXRlcnMgd2VyZSB2YWxpZCBhbmQgb3BlcmF0aW9uIHdhcworICAgICAqIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgc2V0U2V0SWQoU2V0SURUeXBlIHR5cGUsIHN0cmluZyBzZXRpZCkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogTm90aWZ5IEdOU1Mgb2YgbmV0d29yayBzdGF0dXMgY2hhbmdlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb25uZWN0ZWQgSW5kaWNhdGVzIHdoZXRoZXIgbmV0d29yayBjb25uZWN0aXZpdHkgZXhpc3RzIGFuZAorICAgICAqIGl0IGlzIHBvc3NpYmxlIHRvIGVzdGFibGlzaCBjb25uZWN0aW9ucyBhbmQgcGFzcyBkYXRhLgorICAgICAqIEBwYXJhbSB0eXBlIEluZGljYXRlcyB0aGUga2luZCBvZiBuZXR3b3JrLCBmb3IgZWcuIG1vYmlsZSwgd2lmaSBldGMuCisgICAgICogQHBhcmFtIHJvYW1pbmcgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGRldmljZSBpcyBjdXJyZW50bHkgcm9hbWluZyBvbgorICAgICAqIHRoaXMgbmV0d29yay4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlzIGFsbCBwYXJhbWV0ZXJzIHdlcmUgdmFsaWQgYW5kIG9wZXJhdGlvbiB3YXMKKyAgICAgKiBzdWNjZXNzZnVsLgorICAgICAqLworICAgIHVwZGF0ZU5ldHdvcmtTdGF0ZShib29sIGNvbm5lY3RlZCwgTmV0d29ya1R5cGUgdHlwZSwgYm9vbCByb2FtaW5nKQorICAgICAgICBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBOb3RpZnkgR05TUyBvZiBuZXR3b3JrIHN0YXR1cyBjaGFuZ2VzIGFuZCBjdXJyZW50IEFQTi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhdmFpbGFibGUgSW5kaWNhdGVzIHdoZXRoZXIgbmV0d29yayBjb25uZWN0aXZpdHkgaXMgYXZhaWxhYmxlLgorICAgICAqIEBwYXJhbSBhcG4gU3RyaW5nIGNvbnRhaW5pbmcgdGhlIHRlbGVwaG9ueSBwcmVmZXJyZWQgQWNjZXNzIFBvaW50IE5hbWUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBhbGwgcGFyYW1ldGVycyB3ZXJlIHZhbGlkIGFuZCB0aGUgb3BlcmF0aW9uIHdhcworICAgICAqIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgdXBkYXRlTmV0d29ya0F2YWlsYWJpbGl0eShib29sIGF2YWlsYWJsZSwgc3RyaW5nIGFwbikgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUFHbnNzUmlsQ2FsbGJhY2suaGFsIGIvZ25zcy8xLjAvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyYTFhM2YKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JQUduc3NSaWxDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqCisgKiBDYWxsYmFjayBmb3IgSUFHbnNzUmlsIGludGVyZmFjZS4gVXNlZCB0byByZXF1ZXN0IFNFVCBJRCBhbmQKKyAqIFJlZmVyZW5jZSBMb2NhdGlvbi4KKyAqLworaW50ZXJmYWNlIElBR25zc1JpbENhbGxiYWNrIHsKKyAgICAvKiogS2luZHMgb2YgU0VUIElEIHRoYXQgY2FuIGJlIHJlcXVlc3RlZCAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTX1JJTF9SRVFVRVNUX1NFVElEXyIpCisgICAgZW51bSBJRCA6IHVpbnQzMl90IHsKKyAgICAgICAgSU1TSSAgICA9IDEgPDwgMEwsCisgICAgICAgIE1TSVNETiAgPSAxIDw8IDFMLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgSGFsIHVzZXMgdGhpcyBBUEkgdG8gcmVxdWVzdCBhIFNFVCBJRC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXRJZGZsYWcgU3BlY2lmaWVzIHRoZSBraW5kIG9mIFNFVCBJRCB0aGF0IGlzIHJlcXVpcmVkIGJ5IHRoZSBIQUwuCisgICAgICovCisgICAgcmVxdWVzdFNldElkQ2IoYml0ZmllbGQ8SUQ+IHNldElkZmxhZyk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgSGFsIHVzZXMgdGhpcyBBUEkgdG8gcmVxdWVzdCBhIHJlZmVyZW5jZSBsb2NhdGlvbi4KKyAgICAgKgorICAgICAqLworICAgIHJlcXVlc3RSZWZMb2NDYigpOworCit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3MuaGFsIGIvZ25zcy8xLjAvSUduc3MuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwMmM2MTUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zcy5oYWwKQEAgLTAsMCArMSwyMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJQUduc3M7CitpbXBvcnQgSUFHbnNzUmlsOworaW1wb3J0IElHbnNzQmF0Y2hpbmc7CitpbXBvcnQgSUduc3NDYWxsYmFjazsKK2ltcG9ydCBJR25zc0NvbmZpZ3VyYXRpb247CitpbXBvcnQgSUduc3NEZWJ1ZzsKK2ltcG9ydCBJR25zc01lYXN1cmVtZW50OworaW1wb3J0IElHbnNzTmF2aWdhdGlvbk1lc3NhZ2U7CitpbXBvcnQgSUduc3NHZW9mZW5jaW5nOworaW1wb3J0IElHbnNzTmk7CitpbXBvcnQgSUduc3NYdHJhOworCisvKiogUmVwcmVzZW50cyB0aGUgc3RhbmRhcmQgR05TUyAoR2xvYmFsIE5hdmlnYXRpb24gU2F0ZWxsaXRlIFN5c3RlbSkgaW50ZXJmYWNlLiAqLworaW50ZXJmYWNlIElHbnNzIHsKKyAgICAvKiogUmVxdWVzdGVkIG9wZXJhdGlvbmFsIG1vZGUgZm9yIEdOU1Mgb3BlcmF0aW9uLiAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfUE9TSVRJT05fTU9ERV8iKQorICAgIGVudW0gR25zc1Bvc2l0aW9uTW9kZSA6IHVpbnQ4X3QgeworICAgICAgICAvKiogTW9kZSBmb3IgcnVubmluZyBHTlNTIHN0YW5kYWxvbmUgKG5vIGFzc2lzdGFuY2UpLiAqLworICAgICAgICBTVEFOREFMT05FICA9IDAsCisgICAgICAgIC8qKiBBR05TUyBNUy1CYXNlZCBtb2RlLiAqLworICAgICAgICBNU19CQVNFRCAgICA9IDEsCisgICAgICAgIC8qKgorICAgICAgICAgKiBBR05TUyBNUy1Bc3Npc3RlZCBtb2RlLiBUaGlzIG1vZGUgaXMgbm90IG1haW50YWluZWQgYnkgdGhlIHBsYXRmb3JtIGFueW1vcmUuCisgICAgICAgICAqIEl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHVzZSBNU19CQVNFRCBpbnN0ZWFkLgorICAgICAgICAgKi8KKyAgICAgICAgTVNfQVNTSVNURUQgPSAyLAorICAgIH07CisKKyAgICAvKiogUmVxdWVzdGVkIHJlY3VycmVuY2UgbW9kZSBmb3IgR05TUyBvcGVyYXRpb24uICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19QT1NJVElPTl8iKQorICAgIGVudW0gR25zc1Bvc2l0aW9uUmVjdXJyZW5jZSA6IHVpbnQzMl90IHsKKyAgICAgICAgLyoqIFJlY2VpdmUgR05TUyBmaXhlcyBvbiBhIHJlY3VycmluZyBiYXNpcyBhdCBhIHNwZWNpZmllZCBwZXJpb2QuICovCisgICAgICAgIFJFQ1VSUkVOQ0VfUEVSSU9ESUMgID0gMCwKKyAgICAgICAgLyoqIFJlcXVlc3QgYSBzaW5nbGUgc2hvdCBHTlNTIGZpeC4gKi8KKyAgICAgICAgUkVDVVJSRU5DRV9TSU5HTEUgICAgPSAxCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZsYWdzIHVzZWQgdG8gc3BlY2lmeSB3aGljaCBhaWRpbmcgZGF0YSB0byBkZWxldGUgd2hlbiBjYWxsaW5nCisgICAgICogZGVsZXRlQWlkaW5nRGF0YSgpLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfIikKKyAgICBlbnVtIEduc3NBaWRpbmdEYXRhIDogdWludDE2X3QgeworICAgICAgICBERUxFVEVfRVBIRU1FUklTICAgID0gMHgwMDAxLAorICAgICAgICBERUxFVEVfQUxNQU5BQyAgICAgID0gMHgwMDAyLAorICAgICAgICBERUxFVEVfUE9TSVRJT04gICAgID0gMHgwMDA0LAorICAgICAgICBERUxFVEVfVElNRSAgICAgICAgID0gMHgwMDA4LAorICAgICAgICBERUxFVEVfSU9OTyAgICAgICAgID0gMHgwMDEwLAorICAgICAgICBERUxFVEVfVVRDICAgICAgICAgID0gMHgwMDIwLAorICAgICAgICBERUxFVEVfSEVBTFRIICAgICAgID0gMHgwMDQwLAorICAgICAgICBERUxFVEVfU1ZESVIgICAgICAgID0gMHgwMDgwLAorICAgICAgICBERUxFVEVfU1ZTVEVFUiAgICAgID0gMHgwMTAwLAorICAgICAgICBERUxFVEVfU0FEQVRBICAgICAgID0gMHgwMjAwLAorICAgICAgICBERUxFVEVfUlRJICAgICAgICAgID0gMHgwNDAwLAorICAgICAgICBERUxFVEVfQ0VMTERCX0lORk8gID0gMHg4MDAwLAorICAgICAgICBERUxFVEVfQUxMICAgICAgICAgID0gMHhGRkZGCisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayBpbnRlcmZhY2UgZm9yIElHbnNzLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElHbnNzQ2FsbGJhY2sgY2FsbGJhY2spIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0cyBhIGxvY2F0aW9uIG91dHB1dCBzdHJlYW0gdXNpbmcgdGhlIElHbnNzQ2FsbGJhY2sKKyAgICAgKiBnbnNzTG9jYXRpb25DYigpLCBmb2xsb3dpbmcgdGhlIHNldHRpbmdzIGZyb20gdGhlIG1vc3QgcmVjZW50IGNhbGwgdG8KKyAgICAgKiBzZXRQb3NpdGlvbk1vZGUoKS4KKyAgICAgKgorICAgICAqIFRoaXMgb3V0cHV0IG11c3Qgb3BlcmF0ZSBpbmRlcGVuZGVudGx5IG9mIGFueSBHTlNTIGxvY2F0aW9uIGJhdGNoaW5nCisgICAgICogb3BlcmF0aW9ucywgc2VlIHRoZSBJR25zc0JhdGNoaW5nLmhhbCBmb3IgZGV0YWlscy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KKyAgICAgKi8KKyAgICBzdGFydCgpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFN0b3BzIHRoZSBsb2NhdGlvbiBvdXRwdXQgc3RyZWFtLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgorICAgICAqLworICAgIHN0b3AoKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZXMgdGhlIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBjbGVhbnVwKCk7CisKKyAgICAvKioKKyAgICAgKiBJbmplY3RzIHRoZSBjdXJyZW50IHRpbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZU1zIFRoaXMgaXMgdGhlIFVUQyB0aW1lIHJlY2VpdmVkIGZyb20gdGhlIE5UUCBzZXJ2ZXIsIGl0cyB2YWx1ZQorICAgICAqIGlzIGdpdmVuIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAuCisgICAgICogQHBhcmFtIHRpbWVSZWZlcmVuY2VNcyBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBvZgorICAgICAqIFN5c3RlbUNsb2NrLmVsYXBzZWRSZWFsdGltZSgpIGZyb20gdGhlIGRldmljZSB3aGVuIHRoZSBOVFAgcmVzcG9uc2Ugd2FzCisgICAgICogcmVjZWl2ZWQgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqIEBwYXJhbSB1bmNlcnRhaW50eU1zIFVuY2VydGFpbnR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgdmFsdWUgcmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aW1lLiBSZXByZXNlbnRlZCBpbiBtaWxsaXNlY29uZHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBpbmplY3RUaW1lKEduc3NVdGNUaW1lIHRpbWVNcywgaW50NjRfdCB0aW1lUmVmZXJlbmNlTXMsIGludDMyX3QgdW5jZXJ0YWludHlNcykKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogSW5qZWN0cyBjdXJyZW50IGxvY2F0aW9uIGZyb20gYW5vdGhlciBsb2NhdGlvbiBwcm92aWRlciAodHlwaWNhbGx5IGNlbGwKKyAgICAgKiBJRCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGF0aXR1ZGVEZWdyZWVzIE1lYXN1cmVkIGluIERlZ3JlZXMuCisgICAgICogQHBhcmFtIGxvbmdpdHVkZURlZ3JlZXMgTWVhc3VyZWQgaW4gRGVncmVlcy4KKyAgICAgKiBAcGFyYW0gYWNjdXJhY3lNZXRlcnMgTWVhc3VyZWQgaW4gbWV0ZXJzLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLgorICAgICAqLworICAgIGluamVjdExvY2F0aW9uKGRvdWJsZSBsYXRpdHVkZURlZ3JlZXMsIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzLCBmbG9hdCBhY2N1cmFjeU1ldGVycykKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogU3BlY2lmaWVzIHRoYXQgdGhlIG5leHQgY2FsbCB0byBzdGFydCB3aWxsIG5vdCB1c2UgdGhlCisgICAgICogaW5mb3JtYXRpb24gZGVmaW5lZCBpbiB0aGUgZmxhZ3MuIEduc3NBaWRpbmdEYXRhIHZhbHVlIG9mIERFTEVURV9BTEwgaXMKKyAgICAgKiBwYXNzZWQgZm9yIGEgY29sZCBzdGFydC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhaWRpbmdEYXRhRmxhZ3MgRmxhZ3Mgc3BlY2lmeWluZyB0aGUgYWlkaW5nIGRhdGEgdG8gYmUgZGVsZXRlZC4KKyAgICAgKi8KKyAgICBkZWxldGVBaWRpbmdEYXRhKEduc3NBaWRpbmdEYXRhIGFpZGluZ0RhdGFGbGFncyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBHbnNzUG9zaXRpb25Nb2RlIHBhcmFtZXRlcixpdHMgYXNzb2NpYXRlZCByZWN1cnJlbmNlIHZhbHVlLAorICAgICAqIHRoZSB0aW1lIGJldHdlZW4gZml4ZXMscmVxdWVzdGVkIGZpeCBhY2N1cmFjeSBhbmQgdGltZSB0byBmaXJzdCBmaXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9kZSAgUGFyYW1ldGVyIG11c3QgYmUgb25lIG9mIE1TX0JBU0VEIG9yIFNUQU5EQUxPTkUuCisgICAgICogSXQgaXMgYWxsb3dlZCBieSB0aGUgcGxhdGZvcm0gKGFuZCBpdCBpcyByZWNvbW1lbmRlZCkgdG8gZmFsbGJhY2sgdG8KKyAgICAgKiBNU19CQVNFRCBpZiBNU19BU1NJU1RFRCBpcyBwYXNzZWQgaW4sIGFuZCBNU19CQVNFRCBpcyBzdXBwb3J0ZWQuCisgICAgICogQHJlY3VycmVuY2UgR05TUyBwb3N0aW9uIHJlY3VycmVuY2UgdmFsdWUsIGVpdGhlciBwZXJpb2RpYyBvciBzaW5nbGUuCisgICAgICogQHBhcmFtIG1pbkludGVydmFsTXMgUmVwcmVzZW50cyB0aGUgdGltZSBiZXR3ZWVuIGZpeGVzIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKiBAcGFyYW0gcHJlZmVycmVkQWNjdXJhY3lNZXRlcnMgUmVwcmVzZW50cyB0aGUgcmVxdWVzdGVkIGZpeCBhY2N1cmFjeSBpbiBtZXRlcnMuCisgICAgICogQHBhcmFtIHByZWZlcnJlZFRpbWVNcyBSZXByZXNlbnRzIHRoZSByZXF1ZXN0ZWQgdGltZSB0byBmaXJzdCBmaXggaW4gbWlsbGlzZWNvbmRzLgorCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLgorICAgICAqLworICAgIHNldFBvc2l0aW9uTW9kZShHbnNzUG9zaXRpb25Nb2RlIG1vZGUsIEduc3NQb3NpdGlvblJlY3VycmVuY2UgcmVjdXJyZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbWluSW50ZXJ2YWxNcywgdWludDMyX3QgcHJlZmVycmVkQWNjdXJhY3lNZXRlcnMsCisgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHByZWZlcnJlZFRpbWVNcykKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUFHbnNzUmlsIEludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYUduc3NSaWxJZmFjZSBIYW5kbGUgdG8gdGhlIElBR25zc1JpbCBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uQUduc3NSaWwoKSBnZW5lcmF0ZXMgKElBR25zc1JpbCBhR25zc1JpbElmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzR2VvZmVuY2luZyBJbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGduc3NHZW9mZW5jaW5nSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc0dlb2ZlbmNpbmcgaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkduc3NHZW9mZW5jaW5nKCkgZ2VuZXJhdGVzKElHbnNzR2VvZmVuY2luZyBnbnNzR2VvZmVuY2luZ0lmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElBR25zcyBJbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFHbnNzSWZhY2UgSGFuZGxlIHRvIHRoZSBJQUduc3MgaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkFHbnNzKCkgZ2VuZXJhdGVzIChJQUduc3MgYUduc3NJZmFjZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBJR25zc05pIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZ25zc05pSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc05pIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25HbnNzTmkoKSBnZW5lcmF0ZXMgKElHbnNzTmkgZ25zc05pSWZhY2UpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUduc3NNZWFzdXJlbWVudCBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGduc3NNZWFzdXJlbWVudElmYWNlIEhhbmRsZSB0byB0aGUgSUduc3NNZWFzdXJlbWVudCBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uR25zc01lYXN1cmVtZW50KCkgZ2VuZXJhdGVzIChJR25zc01lYXN1cmVtZW50IGduc3NNZWFzdXJlbWVudElmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBnbnNzTmF2aWdhdGlvbklmYWNlIGduc3NOYXZpZ2F0aW9uSWZhY2UgdG8gdGhlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkduc3NOYXZpZ2F0aW9uTWVzc2FnZSgpIGdlbmVyYXRlcyAoSUduc3NOYXZpZ2F0aW9uTWVzc2FnZSBnbnNzTmF2aWdhdGlvbklmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzWHRyYSBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHh0cmFJZmFjZSBIYW5kbGUgdG8gdGhlIElHbnNzWHRyYSBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uWHRyYSgpIGdlbmVyYXRlcyAoSUduc3NYdHJhIHh0cmFJZmFjZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBJR25zc0NvbmZpZ3VyYXRpb24gaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBnbnNzQ29uZmlnSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc0NvbmZpZ3VyYXRpb24gaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkduc3NDb25maWd1cmF0aW9uKCkgZ2VuZXJhdGVzIChJR25zc0NvbmZpZ3VyYXRpb24gZ25zc0NvbmZpZ0lmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzRGVidWcgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBkZWJ1Z0lmYWNlIEhhbmRsZSB0byB0aGUgSUduc3NEZWJ1ZyBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uR25zc0RlYnVnKCkgZ2VuZXJhdGVzIChJR25zc0RlYnVnIGRlYnVnSWZhY2UpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUduc3NCYXRjaGluZyBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJhdGNoaW5nSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc0JhdGNoaW5nIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25HbnNzQmF0Y2hpbmcoKSBnZW5lcmF0ZXMgKElHbnNzQmF0Y2hpbmcgYmF0Y2hpbmdJZmFjZSk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NCYXRjaGluZy5oYWwgYi9nbnNzLzEuMC9JR25zc0JhdGNoaW5nLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNWUwMWUzCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NCYXRjaGluZy5oYWwKQEAgLTAsMCArMSwxNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJR25zc0JhdGNoaW5nQ2FsbGJhY2s7CisKKy8qKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBHTlNTIEJhdGNoaW5nIHN1cHBvcnQuCisgKgorICogSWYgdGhpcyBpbnRlcmZhY2UgaXMgc3VwcG9ydGVkLCB0aGlzIGJhdGNoaW5nIHJlcXVlc3QgbXVzdCBiZSBhYmxlIHRvIHJ1biBpbgorICogcGFyYWxsZWwgd2l0aCwgb3Igd2l0aG91dCwgbm9uLWJhdGNoZWQgbG9jYXRpb24gcmVxdWVzdGVkIGJ5IHRoZQorICogSUduc3Mgc3RhcnQoKSAmIHN0b3AoKSAtIGkuZS4gYm90aCByZXF1ZXN0cyBtdXN0IGJlIGhhbmRsZWQgaW5kZXBlbmRlbnRseSwKKyAqIGFuZCBub3QgaW50ZXJmZXJlIHdpdGggZWFjaCBvdGhlci4KKyAqCisgKiBGb3IgZXhhbXBsZSwgaWYgYSAxSHogY29udGludW91cyBvdXRwdXQgaXMgdW5kZXJ3YXkgb24gdGhlIElHbnNzQ2FsbGJhY2ssCisgKiBkdWUgdG8gYW4gSUduc3Mgc3RhcnQoKSBvcGVyYXRpb24sCisgKiBhbmQgdGhlbiBhIElHbnNzQmF0Y2hpbmcgc3RhcnQoKSBpcyBjYWxsZWQgZm9yIGEgbG9jYXRpb24gZXZlcnkgMTAKKyAqIHNlY29uZHMsIHRoZSBuZXdseSBhZGRlZCBiYXRjaGluZyByZXF1ZXN0IG11c3Qgbm90IGRpc3J1cHQgdGhlIDFIegorICogY29udGludW91cyBsb2NhdGlvbiBvdXRwdXQgb24gdGhlIElHbnNzQ2FsbGJhY2suCisgKgorICogQXMgd2l0aCBHTlNTIExvY2F0aW9uIG91dHB1dHMsIHNvdXJjZSBvZiBsb2NhdGlvbiBtdXN0IGJlIEdOU1Mgc2F0ZWxsaXRlCisgKiBtZWFzdXJlbWVudHMsIG9wdGlvbmFsbHkgdXNpbmcgaW50ZXJpYWwgYW5kIGJhcm8gc2Vuc29ycyB0byBpbXByb3ZlCisgKiByZWxhdGl2ZSBtb3Rpb24gZmlsdGVyaW5nLiBObyBhZGRpdGlvbmFsIGFic29sdXRlIHBvc2l0aW9uaW5nIGluZm9ybWF0aW9uLAorICogc3VjaCBhcyBXaUZpIGRlcml2ZWQgbG9jYXRpb24sIG1heSBiZSBtaXhlZCB3aXRoIHRoZSBHTlNTIGluZm9ybWF0aW9uLgorICovCisKK2ludGVyZmFjZSBJR25zc0JhdGNoaW5nIHsKKyAgICAvKioKKyAgICAgKiBFbnVtIHdoaWNoIGhvbGRzIHRoZSBiaXQgbWFza3MgZm9yIGJhdGNoaW5nIGNvbnRyb2wuCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkZMUF9CQVRDSF8iKQorICAgIGVudW0gRmxhZyA6IHVpbnQ4X3QgeworICAgICAgICAvKioKKyAgICAgICAgICogSWYgdGhpcyBmbGFnIGlzIHNldCwgdGhlIGhhcmR3YXJlIGltcGxlbWVudGF0aW9uCisgICAgICAgICAqIG11c3Qgd2FrZSB1cCB0aGUgYXBwbGljYXRpb24gcHJvY2Vzc29yIHdoZW4gdGhlIEZJRk8gaXMgZnVsbCwgYW5kCisgICAgICAgICAqIGNhbGwgSUduc3NCYXRjaGluZ0NhbGxiYWNrIHRvIHJldHVybiB0aGUgbG9jYXRpb25zLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZmxhZyBpcyBub3Qgc2V0LCB0aGUgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24gbXVzdCBkcm9wCisgICAgICAgICAqIHRoZSBvbGRlc3QgZGF0YSB3aGVuIHRoZSBGSUZPIGlzIGZ1bGwuCisgICAgICAgICAqLworICAgICAgICBXQUtFVVBfT05fRklGT19GVUxMID0gMHgwMQorICAgIH07CisKKyAgICBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaW1lIGludGVydmFsIGJldHdlZW4gc2FtcGxlcyBpbiB0aGUgbG9jYXRpb24gYmF0Y2gsIGluIG5hbm8KKyAgICAgICAgICogc2Vjb25kcy4KKyAgICAgICAgICovCisgICAgICAgIGludDY0X3QgcGVyaW9kTmFub3M7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZsYWdzIGNvbnRyb2xsaW5nIGhvdyBiYXRjaGluZyBzaG91bGQgYmVoYXZlLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8RmxhZz4gZmxhZ3M7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayBpbnRlcmZhY2UgZm9yIElHbnNzQmF0Y2hpbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgaW5pdChJR25zc0JhdGNoaW5nQ2FsbGJhY2sgY2FsbGJhY2spIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmF0Y2ggc2l6ZSAoaW4gbnVtYmVyIG9mIEduc3NMb2NhdGlvbiBvYmplY3RzKQorICAgICAqIGF2YWlsYWJsZSBpbiB0aGlzIGhhcmR3YXJlIGltcGxlbWVudGF0aW9uLgorICAgICAqCisgICAgICogSWYgdGhlIGF2YWlsYWJsZSBzaXplIGlzIHZhcmlhYmxlLCBmb3IgZXhhbXBsZSwgYmFzZWQgb24gb3RoZXIgb3BlcmF0aW9ucworICAgICAqIGNvbnN1bWluZyBtZW1vcnksIHRoaXMgaXMgdGhlIG1pbmltdW0gc2l6ZSBndWFyYW50ZWVkIHRvIGJlIGF2YWlsYWJsZQorICAgICAqIGZvciBiYXRjaGluZyBvcGVyYXRpb25zLgorICAgICAqCisgICAgICogVGhpcyBtYXksIGZvciBleGFtcGxlLCBiZSB1c2VkIGJ5IHRoZSB1cHBlciBsYXllciwgdG8gZGVjaWRlIG9uIHRoZQorICAgICAqIGJhdGNoaW5nIGludGVydmFsIGFuZCB3aGV0aGVyIHRoZSBBUCBzaG91bGQgYmUgd29rZW4gdXAgb3Igbm90LgorICAgICAqCisgICAgICogQHJldHVybiBiYXRjaFNpemUgbnVtYmVyIG9mIGxvY2F0aW9uIG9iamVjdHMgc3VwcG9ydGVkIHBlciBiYXRjaAorICAgICAqLworICAgIGdldEJhdGNoU2l6ZSgpIGdlbmVyYXRlcyAodWludDE2X3QgYmF0Y2hTaXplKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0IGJhdGNoaW5nIGxvY2F0aW9ucy4gVGhpcyBBUEkgaXMgcHJpbWFyaWx5IHVzZWQgd2hlbiB0aGUgQVAgaXMKKyAgICAgKiBhc2xlZXAgYW5kIHRoZSBkZXZpY2UgY2FuIGJhdGNoIGxvY2F0aW9ucyBpbiB0aGUgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiBJR25zc0JhdGNoaW5nQ2FsbGJhY2sgaXMgdXNlZCB0byByZXR1cm4gdGhlIGxvY2F0aW9ucy4KKyAgICAgKgorICAgICAqIFdoZW4gdGhlIGJ1ZmZlciBpcyBmdWxsIGFuZCBXQUtFVVBfT05fRklGT19GVUxMIGlzIHVzZWQsCisgICAgICogSUduc3NCYXRjaGluZ0NhbGxiYWNrIG11c3QgYmUgY2FsbGVkIHRvIHJldHVybiB0aGUgbG9jYXRpb25zLgorICAgICAqCisgICAgICogV2hlbiB0aGUgYnVmZmVyIGlzIGZ1bGwgYW5kIFdBS0VVUF9PTl9GSUZPX0ZVTEwgaXMgbm90IHNldCwKKyAgICAgKiB0aGUgb2xkZXN0IGxvY2F0aW9uIG9iamVjdCBpcyBkcm9wcGVkLiBJbiB0aGlzIGNhc2UgdGhlIEFQIG11c3Qgbm90IGJlCisgICAgICogd29rZW4gdXAuIFRoZSBBUCB3b3VsZCB0aGVuIGdlbmVyYWxseSBiZSByZXNwb25zaWJsZSBmb3IgdXNpbmcKKyAgICAgKiBmbHVzaEJhdGNoZWRMb2NhdGlvbiB0byBleHBsaWNpdGx5IGFzayBmb3IgdGhlIGxvY2F0aW9uIGFzIG5lZWRlZCwKKyAgICAgKiB0byBhdm9pZCBpdCBiZWluZyBkcm9wcGVkLgorICAgICAqCisgICAgICogQHBhcmFtIG9wdGlvbnMgU2VlIHN0cnVjdCBPcHRpb25zIGRlZmluaXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgc3RhcnQoT3B0aW9ucyBvcHRpb25zKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBhbGwgYmF0Y2hlZCBsb2NhdGlvbnMgY3VycmVudGx5IHN0b3JlZC4KKyAgICAgKgorICAgICAqIElHbnNzQmF0Y2hpbmdDYWxsYmFjayBpcyB1c2VkIHRvIHJldHVybiB0aGUgbG9jYXRpb24uCisgICAgICoKKyAgICAgKiBJR25zc0JhdGNoaW5nQ2FsbGJhY2sgbXVzdCBiZSBjYWxsZWQgaW4gcmVzcG9uc2UsIGV2ZW4gaWYgdGhlcmUgYXJlCisgICAgICogbm8gbG9jYXRpb25zIHRvIGZsdXNoIChpbiB3aGljaCBjYXNlIHRoZSBMb2NhdGlvbiB2ZWN0b3IgbXVzdCBiZSBlbXB0eSkuCisgICAgICoKKyAgICAgKiBTdWJzZXF1ZW50IGNhbGxzIHRvIGZsdXNoQmF0Y2hlZExvY2F0aW9uCisgICAgICogbXVzdCBub3QgcmV0dXJuIGFueSBvZiB0aGUgbG9jYXRpb25zIHJldHVybmVkIGluIHRoaXMgY2FsbC4KKyAgICAgKi8KKyAgICBmbHVzaCgpOworCisgICAgLyoqCisgICAgICogU3RvcCBiYXRjaGluZy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KKyAgICAgKi8KKyAgICBzdG9wKCkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogQ2xvc2VzIHRoZSBpbnRlcmZhY2UuIElmIGFueSBiYXRjaCBvcGVyYXRpb25zIGFyZSBpbiBwcm9ncmVzcywKKyAgICAgKiB0aGV5IG11c3QgYmUgc3RvcHBlZC4gIElmIGFueSBsb2NhdGlvbnMgYXJlIGluIHRoZSBoYXJkd2FyZSBiYXRjaCwgdGhleQorICAgICAqIG11c3QgYmUgZGVsZXRlZCAoYW5kIG5vdCBzZW50IHZpYSBjYWxsYmFjay4pCisgICAgICoKKyAgICAgKiBpbml0KCkgbWF5IGJlIGNhbGxlZCBhZ2FpbiwgYWZ0ZXIgdGhpcywgaWYgdGhlIGludGVyZmFjZSBpcyB0byBiZSByZXN0b3JlZAorICAgICAqLworICAgIGNsZWFudXAoKTsKKworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwgYi9nbnNzLzEuMC9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2OTdjYzQKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBUaGUgY2FsbGJhY2sgaW50ZXJmYWNlIHRvIHJlcG9ydCBtZWFzdXJlbWVudHMgZnJvbSB0aGUgSEFMLiAqLworaW50ZXJmYWNlIElHbnNzQmF0Y2hpbmdDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogQ2FsbGVkIHdoZW4gYSBiYXRjaCBvZiBsb2NhdGlvbnMgaXMgb3V0cHV0LCBieSB2YXJpb3VzIG1lYW5zLCBpbmNsdWRpbmcKKyAgICAgKiBhIGZsdXNoIHJlcXVlc3QsIGFzIHdlbGwgYXMgdGhlIGJ1ZmZlciBiZWNvbWluZyBmdWxsIChpZiBhcHByb3ByaWF0ZSBvcHRpb24KKyAgICAgKiBpcyBzZXQuKQorICAgICAqCisgICAgICogQWxsIGxvY2F0aW9ucyByZXR1cm5lZCBieSB0aGlzIGNhbGxiYWNrIG11c3QgYmUgY2xlYXJlZCBmcm9tIHRoZSBoYXJkd2FyZQorICAgICAqIGJ1ZmZlciwgc3VjaCB0aGUgc2VxdWVudGlhbCBjYWxscyBvZiB0aGlzIGNhbGxiYWNrIGRvIG5vdCByZXR1cm4gYW55CisgICAgICogcmVkdW5kYW50IGxvY2F0aW9ucy4gIChTYW1lIGxhdC9sb24sIGF0IGEgbmV3IHRpbWUsIGlzIGFjY2VwdGFibGUuKQorICAgICAqCisgICAgICogQHBhcmFtIGxvY2F0aW9ucyBHTlNTIExvY2F0aW9uIGluZm9ybWF0aW9uIGZyb20gSEFMLgorICAgICAqLworICAgIGduc3NMb2NhdGlvbkJhdGNoQ2IodmVjPEduc3NMb2NhdGlvbj4gbG9jYXRpb25zKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc0NhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lHbnNzQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZTVlMGUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc0NhbGxiYWNrLmhhbApAQCAtMCwwICsxLDI0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqCisgKiBUaGUgaW50ZXJmYWNlIGlzIHJlcXVpcmVkIGZvciB0aGUgSEFMIHRvIGNvbW11bmljYXRlIGNlcnRhaW4gaW5mb3JtYXRpb24KKyAqIGxpa2Ugc3RhdHVzIGFuZCBsb2NhdGlvbiBpbmZvIGJhY2sgdG8gdGhlIHBsYXRmb3JtLCB0aGUgcGxhdGZvcm0gaW1wbGVtZW50cworICogdGhlIGludGVyZmFjZXMgYW5kIHBhc3NlcyBhIGhhbmRsZSB0byB0aGUgSEFMLgorICovCitpbnRlcmZhY2UgSUduc3NDYWxsYmFjayB7CisgICAgLyoqIEZsYWdzIGZvciB0aGUgZ25zc1NldENhcGFiaWxpdGllcyBjYWxsYmFjay4gKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX0NBUEFCSUxJVFlfIikKKyAgICBlbnVtIENhcGFiaWxpdGllcyA6IHVpbnQzMl90IHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEdOU1MgSEFMIHNjaGVkdWxlcyBmaXhlcyBmb3IgUkVDVVJSRU5DRV9QRVJJT0RJQyBtb2RlLgorICAgICAgICAgKiBJZiB0aGlzIGlzIG5vdCBzZXQsIHRoZW4gdGhlIGZyYW1ld29yayB3aWxsIHVzZSAxMDAwbXMgZm9yCisgICAgICAgICAqIG1pbkludGVydmFsIGFuZCB3aWxsIGNhbGwgc3RhcnQoKSBhbmQgc3RvcCgpIHRvIHNjaGVkdWxlIHRoZSBHTlNTLgorICAgICAgICAgKi8KKyAgICAgICAgU0NIRURVTElORyAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgLyoqIEdOU1Mgc3VwcG9ydHMgTVMtQmFzZWQgQUdOU1MgbW9kZSAqLworICAgICAgICBNU0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxLAorICAgICAgICAvKiogR05TUyBzdXBwb3J0cyBNUy1Bc3Npc3RlZCBBR05TUyBtb2RlICovCisgICAgICAgIE1TQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIC8qKiBHTlNTIHN1cHBvcnRzIHNpbmdsZS1zaG90IGZpeGVzICovCisgICAgICAgIFNJTkdMRV9TSE9UICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDMsCisgICAgICAgIC8qKiBHTlNTIHN1cHBvcnRzIG9uIGRlbWFuZCB0aW1lIGluamVjdGlvbiAqLworICAgICAgICBPTl9ERU1BTkRfVElNRSAgICAgICAgICAgICAgICAgID0gMSA8PCA0LAorICAgICAgICAvKiogR05TUyBzdXBwb3J0cyBHZW9mZW5jaW5nICAqLworICAgICAgICBHRU9GRU5DSU5HICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCA1LAorICAgICAgICAvKiogR05TUyBzdXBwb3J0cyBNZWFzdXJlbWVudHMgZm9yIGF0IGxlYXN0IEdQUy4gKi8KKyAgICAgICAgTUVBU1VSRU1FTlRTICAgICAgICAgICAgICAgICAgICA9IDEgPDwgNiwKKyAgICAgICAgLyoqIEdOU1Mgc3VwcG9ydHMgTmF2aWdhdGlvbiBNZXNzYWdlcyAqLworICAgICAgICBOQVZfTUVTU0FHRVMgICAgICAgICAgICAgICAgICAgID0gMSA8PCA3CisgICAgfTsKKworICAgIC8qKiBHTlNTIHN0YXR1cyBldmVudCB2YWx1ZXMuICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19TVEFUVVNfIikKKyAgICBlbnVtIEduc3NTdGF0dXNWYWx1ZSA6IHVpbnQ4X3QgeworICAgICAgICAvKiogR05TUyBzdGF0dXMgdW5rbm93bi4gKi8KKyAgICAgICAgTk9ORSAgICAgICAgICAgPSAwLAorICAgICAgICAvKiogR05TUyBoYXMgYmVndW4gbmF2aWdhdGluZy4gKi8KKyAgICAgICAgU0VTU0lPTl9CRUdJTiAgPSAxLAorICAgICAgICAvKiogR05TUyBoYXMgc3RvcHBlZCBuYXZpZ2F0aW5nLiAqLworICAgICAgICBTRVNTSU9OX0VORCAgICA9IDIsCisgICAgICAgIC8qKiBHTlNTIGhhcyBwb3dlcmVkIG9uIGJ1dCBpcyBub3QgbmF2aWdhdGluZy4gKi8KKyAgICAgICAgRU5HSU5FX09OICAgICAgPSAzLAorICAgICAgICAvKiogR05TUyBpcyBwb3dlcmVkIG9mZi4gKi8KKyAgICAgICAgRU5HSU5FX09GRiAgICAgPSA0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZsYWdzIHRoYXQgaW5kaWNhdGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNhdGVsbGl0ZQorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX1NWX0ZMQUdTXyIpCisgICAgZW51bSBHbnNzU3ZGbGFncyA6IHVpbnQ4X3QgeworICAgICAgICBOT05FICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgICBIQVNfRVBIRU1FUklTX0RBVEEgICAgPSAxIDw8IDAsCisgICAgICAgIEhBU19BTE1BTkFDX0RBVEEgICAgICA9IDEgPDwgMSwKKyAgICAgICAgVVNFRF9JTl9GSVggICAgICAgICAgID0gMSA8PCAyLAorICAgICAgICBIQVNfQ0FSUklFUl9GUkVRVUVOQ1kgPSAxIDw8IDMKKyAgICB9OworCisgICAgc3RydWN0IEduc3NTdkluZm8geworICAgICAgICAvKioKKyAgICAgICAgICogUHNldWRvLXJhbmRvbSBudW1iZXIgZm9yIHRoZSBTViwgb3IgRkNOL09TTiBudW1iZXIgZm9yIEdsb25hc3MuIFRoZQorICAgICAgICAgKiBkaXN0aW5jdGlvbiBpcyBtYWRlIGJ5IGxvb2tpbmcgYXQgY29uc3RlbGxhdGlvbiBmaWVsZC4gVmFsdWVzIG11c3QgYmUKKyAgICAgICAgICogaW4gdGhlIHJhbmdlIG9mOgorICAgICAgICAgKgorICAgICAgICAgKiAtIEdOU1M6ICAgIDEtMzIKKyAgICAgICAgICogLSBTQkFTOiAgICAxMjAtMTUxLCAxODMtMTkyCisgICAgICAgICAqIC0gR0xPTkFTUzogMS0yNCwgdGhlIG9yYml0YWwgc2xvdCBudW1iZXIgKE9TTiksIGlmIGtub3duLiAgT3IsIGlmIG5vdDoKKyAgICAgICAgICogICAgICAgICAgICA5My0xMDYsIHRoZSBmcmVxdWVuY3kgY2hhbm5lbCBudW1iZXIgKEZDTikgKC03IHRvICs2KSBvZmZzZXQgYnkKKyAgICAgICAgICogICAgICAgICAgICArIDEwMAorICAgICAgICAgKiAgICAgICAgICAgIGkuZS4gcmVwb3J0IGFuIEZDTiBvZiAtNyBhcyA5MywgRkNOIG9mIDAgYXMgMTAwLCBhbmQgRkNOIG9mICs2CisgICAgICAgICAqICAgICAgICAgICAgYXMgMTA2LgorICAgICAgICAgKiAtIFFaU1M6ICAgIDE5My0yMDAKKyAgICAgICAgICogLSBHYWxpbGVvOiAxLTM2CisgICAgICAgICAqIC0gQmVpZG91OiAgMS0zNworICAgICAgICAgKi8KKyAgICAgICAgaW50MTZfdCBzdmlkOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZpbmVzIHRoZSBjb25zdGVsbGF0aW9uIG9mIHRoZSBnaXZlbiBTVi4KKyAgICAgICAgICovCisgICAgICAgIEduc3NDb25zdGVsbGF0aW9uVHlwZSBjb25zdGVsbGF0aW9uOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDYXJyaWVyLXRvLW5vaXNlIGRlbnNpdHkgaW4gZEItSHosIHR5cGljYWxseSBpbiB0aGUgcmFuZ2UgWzAsIDYzXS4KKyAgICAgICAgICogSXQgY29udGFpbnMgdGhlIG1lYXN1cmVkIEMvTjAgdmFsdWUgZm9yIHRoZSBzaWduYWwgYXQgdGhlIGFudGVubmEgcG9ydC4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGZsb2F0IGNOMERiaHo7CisKKyAgICAgICAgLyoqIEVsZXZhdGlvbiBvZiBTViBpbiBkZWdyZWVzLiAqLworICAgICAgICBmbG9hdCBlbGV2YXRpb25EZWdyZWVzOworCisgICAgICAgIC8qKiBBemltdXRoIG9mIFNWIGluIGRlZ3JlZXMuICovCisgICAgICAgIGZsb2F0IGF6aW11dGhEZWdyZWVzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDYXJyaWVyIGZyZXF1ZW5jeSBvZiB0aGUgc2lnbmFsIHRyYWNrZWQsIGZvciBleGFtcGxlIGl0IGNhbiBiZSB0aGUKKyAgICAgICAgICogR1BTIGNlbnRyYWwgZnJlcXVlbmN5IGZvciBMMSA9IDE1NzUuNDUgTUh6LCBvciBMMiA9IDEyMjcuNjAgTUh6LCBMNSA9CisgICAgICAgICAqIDExNzYuNDUgTUh6LCB2YXJ5aW5nIEdMTyBjaGFubmVscywgZXRjLiBJZiB0aGUgZmllbGQgaXMgbm90IHNldCwgaXQKKyAgICAgICAgICogaXMgdGhlIHByaW1hcnkgY29tbW9uIHVzZSBjZW50cmFsIGZyZXF1ZW5jeSwgZS5nLiBMMSA9IDE1NzUuNDUgTUh6CisgICAgICAgICAqIGZvciBHUFMuCisgICAgICAgICAqCisgICAgICAgICAqIEZvciBhbiBMMSwgTDUgcmVjZWl2ZXIgdHJhY2tpbmcgYSBzYXRlbGxpdGUgb24gTDEgYW5kIEw1IGF0IHRoZSBzYW1lCisgICAgICAgICAqIHRpbWUsIHR3byBHbnNzU3ZJbmZvIHN0cnVjdHMgbXVzdCBiZSByZXBvcnRlZCBmb3IgdGhpcyBzYW1lCisgICAgICAgICAqIHNhdGVsbGl0ZSwgaW4gb25lIG9mIHRoZSBzdHJ1Y3RzLCBhbGwgdGhlIHZhbHVlcyByZWxhdGVkCisgICAgICAgICAqIHRvIEwxIG11c3QgYmUgZmlsbGVkLCBhbmQgaW4gdGhlIG90aGVyIGFsbCBvZiB0aGUgdmFsdWVzIHJlbGF0ZWQgdG8KKyAgICAgICAgICogTDUgbXVzdCBiZSBmaWxsZWQuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19DQVJSSUVSX0ZSRVFVRU5DWS4KKyAgICAgICAgICovCisgICAgICAgIGZsb2F0IGNhcnJpZXJGcmVxdWVuY3lIejsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29udGFpbnMgYWRkaXRpb25hbCBkYXRhIGFib3V0IHRoZSBnaXZlbiBTVi4KKyAgICAgICAgICovCisgICAgICAgIGJpdGZpZWxkPEduc3NTdkZsYWdzPiBzdkZsYWc7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgU1Ygc3RhdHVzLgorICAgICAqLworICAgIHN0cnVjdCBHbnNzU3ZTdGF0dXMgeworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIEdOU1MgU1ZzIGN1cnJlbnRseSB2aXNpYmxlLCByZWZlcnMgdG8gdGhlIFNWcyBzdG9yZWQgaW4gc3ZfbGlzdAorICAgICAgICAgKi8KKyAgICAgICAgdWludDMyX3QgbnVtU3ZzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBQb2ludGVyIHRvIGFuIGFycmF5IG9mIFNWcyBpbmZvcm1hdGlvbiBmb3IgYWxsIEdOU1MgY29uc3RlbGxhdGlvbnMsCisgICAgICAgICAqIGV4Y2VwdCBHTlNTLCB3aGljaCBpcyByZXBvcnRlZCB1c2luZyBzdkxpc3QKKyAgICAgICAgICovCisgICAgICAgIEduc3NTdkluZm9bR25zc01heDpTVlNfQ09VTlRdIGduc3NTdkxpc3Q7CisKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ2FsbGVkIHdoZW4gYSBHTlNTIGxvY2F0aW9uIGlzIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhdGlvbiBMb2NhdGlvbiBpbmZvcm1hdGlvbiBmcm9tIEhBTC4KKyAgICAgKi8KKyAgICBnbnNzTG9jYXRpb25DYihHbnNzTG9jYXRpb24gbG9jYXRpb24pOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIHRvIGNvbW11bmljYXRlIHRoZSBzdGF0dXMgb2YgdGhlIEdOU1MgZW5naW5lLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyBTdGF0dXMgaW5mb3JtYXRpb24gZnJvbSBIQUwuCisgICAgICovCisgICAgZ25zc1N0YXR1c0NiKEduc3NTdGF0dXNWYWx1ZSBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQHBhcmFtIHN2SW5mbyBTViBzdGF0dXMgaW5mb3JtYXRpb24gZnJvbSBIQUwuCisgICAgICovCisgICAgZ25zc1N2U3RhdHVzQ2IoR25zc1N2U3RhdHVzIHN2SW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgd2hlbiBOTUVBIGRhdGEgaXMgYXZhaWxhYmxlLgorICAgICAqIENhbGxiYWNrIGZvciByZXBvcnRpbmcgTk1FQSBzZW50ZW5jZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIE1hcmtzIHRoZSBpbnN0YW5jZSBvZiByZXBvcnRpbmcuCisgICAgICogQHBhcmFtIG5tZWEgRm9sbG93cyBzdGFuZGFyZCBOTUVBIDAxODMuIEVhY2ggc2VudGVuY2UgYmVnaW5zIHdpdGggYSAnJCcKKyAgICAgKiBhbmQgZW5kcyB3aXRoIGEgY2FycmlhZ2UgcmV0dXJuL2xpbmUgZmVlZCBzZXF1ZW5jZSBhbmQgY2FuIGJlIG5vIGxvbmdlcgorICAgICAqIHRoYW4gODAgY2hhcmFjdGVycyBvZiB2aXNpYmxlIHRleHQgKHBsdXMgdGhlIGxpbmUgdGVybWluYXRvcnMpLiBUaGUgZGF0YQorICAgICAqIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhpcyBzaW5nbGUgbGluZSB3aXRoIGRhdGEgaXRlbXMgc2VwYXJhdGVkIGJ5IGNvbW1hcy4KKyAgICAgKiBUaGUgZGF0YSBpdHNlbGYgaXMganVzdCBhc2NpaSB0ZXh0IGFuZCBtYXkgZXh0ZW5kIG92ZXIgbXVsdGlwbGUgc2VudGVuY2VzCisgICAgICogaW4gY2VydGFpbiBzcGVjaWFsaXplZCBpbnN0YW5jZXMgYnV0IGlzIG5vcm1hbGx5IGZ1bGx5IGNvbnRhaW5lZCBpbiBvbmUKKyAgICAgKiB2YXJpYWJsZSBsZW5ndGggc2VudGVuY2UuIFRoZSBkYXRhIG1heSB2YXJ5IGluIHRoZSBhbW91bnQgb2YgcHJlY2lzaW9uCisgICAgICogY29udGFpbmVkIGluIHRoZSBtZXNzYWdlLiBGb3IgZXhhbXBsZSB0aW1lIG1pZ2h0IGJlIGluZGljYXRlZCB0byBkZWNpbWFsCisgICAgICogcGFydHMgb2YgYSBzZWNvbmQgb3IgbG9jYXRpb24gbWF5IGJlIHNob3duIHdpdGggMyBvciBldmVuIDQgZGlnaXRzIGFmdGVyCisgICAgICogdGhlIGRlY2ltYWwgcG9pbnQuIFByb2dyYW1zIHRoYXQgcmVhZCB0aGUgZGF0YSBtdXN0IG9ubHkgdXNlIHRoZSBjb21tYXMKKyAgICAgKiB0byBkZXRlcm1pbmUgdGhlIGZpZWxkIGJvdW5kYXJpZXMgYW5kIG5vdCBkZXBlbmQgb24gY29sdW1uIHBvc2l0aW9ucy4KKyAgICAgKiBUaGVyZSBpcyBhIHByb3Zpc2lvbiBmb3IgYSBjaGVja3N1bSBhdCB0aGUgZW5kIG9mIGVhY2ggc2VudGVuY2Ugd2hpY2ggbWF5CisgICAgICogb3IgbWF5IG5vdCBiZSBjaGVja2VkIGJ5IHRoZSB1bml0IHRoYXQgcmVhZHMgdGhlIGRhdGEuIFRoZSBjaGVja3N1bSBmaWVsZAorICAgICAqIGNvbnNpc3RzIG9mIGEgJyonIGFuZCB0d28gaGV4IGRpZ2l0cyByZXByZXNlbnRpbmcgYW4gOCBiaXQgZXhjbHVzaXZlIE9SCisgICAgICogb2YgYWxsIGNoYXJhY3RlcnMgYmV0d2VlbiwgYnV0IG5vdCBpbmNsdWRpbmcsIHRoZSAnJCcgYW5kICcqJy4KKyAgICAgKi8KKyAgICBnbnNzTm1lYUNiKEduc3NVdGNUaW1lIHRpbWVzdGFtcCwgc3RyaW5nIG5tZWEpOworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgdG8gaW5mb3JtIGZyYW1ld29yayBvZiB0aGUgR05TUyBlbmdpbmUncyBjYXBhYmlsaXRpZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FwYWJpbGl0aWVzIENhcGFiaWxpdHkgcGFyYW1ldGVyIGlzIGEgYml0IGZpZWxkIG9mCisgICAgICogdGhlIENhcGFiaWxpdGllcyBlbnVtLgorICAgICAqLworICAgIGduc3NTZXRDYXBhYmlsaXRlc0NiKGJpdGZpZWxkPENhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKTsKKworICAgIC8qKgorICAgICAqIENhbGxiYWNrIHV0aWxpdHkgZm9yIGFjcXVpcmluZyB0aGUgR05TUyB3YWtlbG9jay4gVGhpcyBjYW4gYmUgdXNlZCB0byBwcmV2ZW50CisgICAgICogdGhlIENQVSBmcm9tIHN1c3BlbmRpbmcgd2hpbGUgaGFuZGxpbmcgR05TUyBldmVudHMuCisgICAgICovCisgICAgZ25zc0FjcXVpcmVXYWtlbG9ja0NiKCk7CisKKyAgICAvKiogQ2FsbGJhY2sgdXRpbGl0eSBmb3IgcmVsZWFzaW5nIHRoZSBHTlNTIHdha2Vsb2NrLiAqLworICAgIGduc3NSZWxlYXNlV2FrZWxvY2tDYigpOworCisgICAgLyoqIENhbGxiYWNrIGZvciByZXF1ZXN0aW5nIE5UUCB0aW1lICovCisgICAgZ25zc1JlcXVlc3RUaW1lQ2IoKTsKKworICAgIC8qKgorICAgICAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IGhvdyBuZXcgdGhlIHVuZGVybHlpbmcgR1BTL0dOU1MgaGFyZHdhcmUgYW5kCisgICAgICogc29mdHdhcmUgaXMuCisgICAgICoKKyAgICAgKiBUaGlzIGluZm9ybWF0aW9uIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBBbmRyb2lkIFRlc3QgQXBwbGljYXRpb25zLiBJZiBhIEdOU1MKKyAgICAgKiBIQUwgZG9lcyBub3QgcHJvdmlkZSB0aGlzIGluZm9ybWF0aW9uLCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgIjIwMTUgb3IKKyAgICAgKiBlYXJsaWVyIi4KKyAgICAgKgorICAgICAqIElmIGEgR05TUyBIQUwgZG9lcyBwcm92aWRlIHRoaXMgaW5mb3JtYXRpb24sIHRoZW4gbmV3ZXIgeWVhcnMgd2lsbCBuZWVkIHRvCisgICAgICogbWVldCBuZXdlciBDVFMgc3RhbmRhcmRzLiBFLmcuIGlmIHRoZSBkYXRlIGFyZSAyMDE2IG9yIGFib3ZlLCB0aGVuIE4rIGxldmVsCisgICAgICogR25zc01lYXN1cmVtZW50IHN1cHBvcnQgd2lsbCBiZSB2ZXJpZmllZC4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgR25zc1N5c3RlbUluZm97CisgICAgICAgIC8qKgorICAgICAgICAgKiB5ZWFyIGluIHdoaWNoIHRoZSBsYXN0IHVwZGF0ZSB3YXMgbWFkZSB0byB0aGUgdW5kZXJseWluZyBoYXJkd2FyZS9maXJtd2FyZQorICAgICAgICAgKiB1c2VkIHRvIGNhcHR1cmUgR05TUyBzaWduYWxzLCBlLmcuIDIwMTYKKyAgICAgICAgICovCisgICAgICAgIHVpbnQxNl90IHllYXJPZkh3OworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayB0byBpbmZvcm0gZnJhbWV3b3JrIG9mIHRoZSBlbmdpbmUncyBoYXJkd2FyZSB2ZXJzaW9uIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGluZm8gR25zc1N5c3RlbUluZm8gYWJvdXQgdGhlIEdQUy9HTlNTIGhhcmR3YXJlLgorICAgICAqLworICAgIGduc3NTZXRTeXN0ZW1JbmZvQ2IoR25zc1N5c3RlbUluZm8gaW5mbyk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NDb25maWd1cmF0aW9uLmhhbCBiL2duc3MvMS4wL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMxNTI4NgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKQEAgLTAsMCArMSwxNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKgorICogSW50ZXJmYWNlIGZvciBwYXNzaW5nIEdOU1MgY29uZmlndXJhdGlvbiBpbmZvIGZyb20gcGxhdGZvcm0gdG8gSEFMLgorICovCitpbnRlcmZhY2UgSUduc3NDb25maWd1cmF0aW9uIHsKKyAgICAvKioKKyAgICAgKiBFbnVtIHdoaWNoIGhvbGRzIHRoZSBiaXQgbWFza3MgZm9yIFNVUExfTU9ERSBjb25maWd1cmF0aW9uIHBhcmFtZXRlci4KKyAgICAgKi8KKyAgICBlbnVtIFN1cGxNb2RlIDogdWludDhfdCB7CisgICAgICAgIC8qKiBNb2JpbGUgU3RhdGlvbiBCYXNlZCAqLworICAgICAgICBNU0IgPSAweDAxLAorCisgICAgICAgIC8qKiBNb2JpbGUgU3RhdGlvbiBBc3Npc3RlZCAqLworICAgICAgICBNU0EgPSAweDAyCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEVudW0gd2hpY2ggaG9sZHMgdGhlIGJpdCBtYXNrcyBmb3IgR1BTX0xPQ0sgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuCisgICAgICovCisgICAgZW51bSBHcHNMb2NrIDogdWludDhfdCB7CisgICAgICAgIC8qKiBMb2NrIE1vYmlsZSBPcmlnaW5hdGVkIEdQUyBmdW5jdGlvbmFsaXR1ZXMuICovCisgICAgICAgIE1PICAgID0gIDB4MDEsCisKKyAgICAgICAgLyoqIExvY2sgTmV0d29yayBpbml0aWF0ZWQgR1BTIGZ1bmN0aW9uYWxpdGllcy4gKi8KKyAgICAgICAgTkkgICAgPSAgMHgwMgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBFbnVtIHRoYXQgaG9sZCB0aGUgYml0IG1hc2tzIGZvciB2YXJpb3VzIExURSBQb3NpdGlvbmluZyBQcm9maWxlIHNldHRpbmdzIChMUFBfUFJPRklMRQorICAgICAqIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyKS4gSWYgbm9uZSBvZiB0aGUgYml0cyBpbiB0aGUgZW51bSBhcmUgc2V0LCB0aGUgZGVmYXVsdCBzZXR0aW5nIGlzCisgICAgICogUmFkaW8gUmVzb3VyY2UgTG9jYXRpb24gUHJvdG9jb2woUlJMUCkuCisgICAgICovCisgICAgZW51bSBMcHBQcm9maWxlIDogdWludDhfdCB7CisgICAgICAgIC8qKiBFbmFibGUgTFRFIFBvc2l0aW9uaW5nIFByb3RvY29sIHVzZXIgcGxhbmUgKi8KKyAgICAgICAgVVNFUl9QTEFORSAgICAgICAgICA9IDB4MDEsCisKKyAgICAgICAgLyoqIEVuYWJsZSBMVEUgUG9zaXRpb25pbmcgUHJvdG9jb2wgQ29udHJvbCBwbGFuZSAqLworICAgICAgICBDT05UUk9MX1BMQU5FICAgICAgID0gMHgwMgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBFbnVtIHdoaWNoIGhvbGRzIHRoZSBiaXQgbWFza3MgZm9yIEFfR0xPTkFTU19QT1NfUFJPVE9DT0xfU0VMRUNUCisgICAgICogY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuCisgICAgICovCisgICAgZW51bSBHbG9uYXNzUG9zUHJvdG9jb2wgOiB1aW50OF90IHsKKyAgICAgICAgLyoqIFJhZGlvIFJlc291cmNlIENvbnRyb2woUlJDKSBjb250cm9sLXBsYW5lLiAqLworICAgICAgICBSUkNfQ1BMQU5FICAgICAgICAgICAgICAgICAgPSAweDAxLAorCisgICAgICAgIC8qKiBSYWRpbyBSZXNvdXJjZSBMb2NhdGlvbiB1c2VyLXBsYW5lLiAqLworICAgICAgICBSUkxQX0NQTEFORSAgICAgICAgICAgICAgICAgPSAweDAyLAorCisgICAgICAgIC8qKiBMVEUgUG9zaXRpb25pbmcgUHJvdG9jb2wgVXNlciBwbGFuZSAqLworICAgICAgICBMUFBfVVBMQU5FICAgICAgICAgICAgICAgICAgPSAweDA0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIElNUE9SVEFOVDogR05TUyBIQUwgbXVzdCBleHBlY3QgdGhlIGJlbG93IG1ldGhvZHMgdG8gYmUgY2FsbGVkIG11bHRpcGxlCisgICAgICogdGltZXMuIFRoZXkgY2FuIGJlIGNhbGxlZCBldmVuIHdoZW4gR25zc0xvY2F0aW9uUHJvdmlkZXIgaXMgYWxyZWFkeQorICAgICAqIGNvbnN0cnVjdGVkIGFuZCBlbmFibGVkLiBHTlNTIEhBTCBtdXN0IG1haW50YWluIHRoZSBleGlzdGluZyByZXF1ZXN0cworICAgICAqIGZvciB2YXJpb3VzIGNhbGxiYWNrcyByZWdhcmRsZXNzIHRoZSBjaGFuZ2UgaW4gY29uZmlndXJhdGlvbiBkYXRhLgorICAgICAqLworCisgICAgIC8qKgorICAgICAgKiBUaGlzIG1ldGhvZCBlbmFibGVzIG9yIGRpc2FibGVzIGVtZXJnZW5jeSBTVVBMLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gZW5hYmxlZCBUcnVlIGlmIGVtZXJnZW5jeSBTVVBMIGlzIHRvIGJlIGVuYWJsZWQuCisgICAgICAqCisgICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICovCisgICAgIHNldFN1cGxFcyhib29sIGVuYWJsZWQpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgICAvKioKKyAgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgU1VQTCB2ZXJzaW9uIHJlcXVlc3RlZCBieSBDYXJyaWVyLiBUaGUgR05TUyBIQUwKKyAgICAgICogbXVzdCB1c2UgdGhpcyB2ZXJzaW9uIG9mIHRoZSBTVVBMIHByb3RvY29sIGlmIHN1cHBvcnRlZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIHZlcnNpb24gU1VQTCB2ZXJzaW9uIHJlcXVlc3RlZCBieSBjYXJyaWVyLiBUaGlzIGlzIGEgYml0IG1hc2sKKyAgICAgICogd2l0aCBiaXRzIDA6NyByZXByZXNlbnRpbmcgYSBzZXJ2aWNlIGluZGljYXRvciBmaWVsZCwgYml0cyA4OjE1CisgICAgICAqIHJlcHJlc2VudGluZyB0aGUgbWlub3IgdmVyc2lvbiBhbmQgYml0cyAxNjoyMyByZXByZXNlbnRpbmcgdGhlCisgICAgICAqIG1ham9yIHZlcnNpb24uCisgICAgICAqCisgICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICovCisgICAgIHNldFN1cGxWZXJzaW9uKHVpbnQzMl90IHZlcnNpb24pIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgICAvKioKKyAgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgU1VQTCBtb2RlLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gbW9kZSBCaXQgbWFzayB0aGF0IHNwZWNpZmllcyB0aGUgU1VQTCBtb2RlIHdoaWNoIGlzIHNldCB3aXRoIHRoZSBTdXBsTW9kZSBlbnVtLgorICAgICAgKgorICAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAgICAqLworICAgICBzZXRTdXBsTW9kZShiaXRmaWVsZDxTdXBsTW9kZT4gbW9kZSkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgIC8qKgorICAgICAgKiBUaGlzIHNldHRpbmcgY29uZmlndXJlcyBob3cgR1BTIGZ1bmN0aW9uYWxpdGllcyBzaG91bGQgYmUgbG9ja2VkIHdoZW4KKyAgICAgICogdXNlciB0dXJucyBvZmYgR1BTIE9uIHNldHRpbmcuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBsb2NrIEJpdG1hc2sgdGhhdCBzcGVjaWZpZXMgdGhlIEdQUyBmdW5jdGlvbmFsaXRpZXMgdG8gYmUgYmUKKyAgICAgICogbG9ja2VkIGFzIHBlciB0aGUgR3BzTG9jayBlbnVtLgorICAgICAgKgorICAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAgICAqLworICAgICBzZXRHcHNMb2NrKGJpdGZpZWxkPEdwc0xvY2s+IGxvY2spIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgICAvKioKKyAgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgTFRFIFBvc2l0aW9uaW5nIFByb2ZpbGUgY29uZmlndXJhdGlvbi4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGxwcFByb2ZpbGUgQml0bWFzayB0aGF0IHNwZWNpZmllcyB0aGUgTFRFIFBvc2l0aW9uaW5nIFByb2ZpbGUKKyAgICAgICogY29uZmlndXJhdGlvbiB0byBiZSBzZXQgYXMgcGVyIHRoZSBMcHBQcm9maWxlIGVudW0uCisgICAgICAqCisgICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICovCisgICAgIHNldExwcFByb2ZpbGUoYml0ZmllbGQ8THBwUHJvZmlsZT4gbHBwUHJvZmlsZSkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgIC8qKgorICAgICAgKiBUaGlzIG1ldGhvZCBzZWxlY3RzIHBvc2l0aW9uaW5nIHByb3RvY29sIG9uIEEtR2xvbmFzcyBzeXN0ZW0uCisgICAgICAqCisgICAgICAqIEBwYXJhbSBwcm90b2NvbCBCaXRtYXNrIHRoYXQgc3BlY2lmaWVzIHRoZSBwb3NpdGlvbmluZyBwcm90b2NvbCB0byBiZQorICAgICAgKiBzZXQgYXMgcGVyIEdsb25hc3NQb3NQcm90b2NvbCBlbnVtLgorICAgICAgKgorICAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAgICAqLworICAgICBzZXRHbG9uYXNzUG9zaXRpb25pbmdQcm90b2NvbChiaXRmaWVsZDxHbG9uYXNzUG9zUHJvdG9jb2w+IHByb3RvY29sKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAgLyoqCisgICAgICAqIFRoaXMgbWV0aG9kIGNvbmZpZ3VyZXMgd2hpY2ggUEROIHRvIHVzZS4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGVuYWJsZSBVc2UgZW1lcmdlbmN5IFBETiBpZiB0cnVlIGFuZCByZWd1bGFyIFBETiBpZiBmYWxzZS4KKyAgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLgorICAgICAgKi8KKyAgICAgc2V0RW1lcmdlbmN5U3VwbFBkbihib29sIGVuYWJsZSkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzRGVidWcuaGFsIGIvZ25zcy8xLjAvSUduc3NEZWJ1Zy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM0Y2ZiOAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzRGVidWcuaGFsCkBAIC0wLDAgKzEsMTg4IEBACitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIERFQlVHIHN1cHBvcnQuICovCitpbnRlcmZhY2UgSUduc3NEZWJ1ZyB7CisgICAgZW51bSBTYXRlbGxpdGVFcGhlbWVyaXNUeXBlIDogdWludDhfdCB7CisgICAgICAgIC8qKiBFcGhlbWVyaXMgaXMga25vd24gZm9yIHRoaXMgc2F0ZWxsaXRlLiAqLworICAgICAgICBFUEhFTUVSSVMsCisgICAgICAgIC8qKgorICAgICAgICAgKiBFcGhlbWVyaXMgaXMgbm90IGtub3duLCBidXQgQWxtYW5hYyAoYXBwcm94aW1hdGUgbG9jYXRpb24pIGlzIGtub3duLgorICAgICAgICAgKi8KKyAgICAgICAgQUxNQU5BQ19PTkxZLAorICAgICAgICAvKioKKyAgICAgICAgICogQm90aCBlcGhlbWVyaXMgJiBhbG1hbmFjIGFyZSBub3Qga25vd24gKGUuZy4gZHVyaW5nIGEgY29sZCBzdGFydAorICAgICAgICAgKiBibGluZCBzZWFyY2guKQorICAgICAgICAgKi8KKyAgICAgICAgTk9UX0FWQUlMQUJMRQorICAgIH07CisKKyAgICBlbnVtIFNhdGVsbGl0ZUVwaGVtZXJpc1NvdXJjZSA6IHVpbnQ4X3QgeworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVwaGVtZXJpcyAob3IgYWxtYW5hYyBvbmx5KSBpbmZvcm1hdGlvbiB3YXMgZGVtb2R1bGF0ZWQgZnJvbSB0aGUKKyAgICAgICAgICogc2lnbmFsIHJlY2VpdmVkIG9uIHRoZSBkZXZpY2UKKyAgICAgICAgICovCisgICAgICAgIERFTU9EVUxBVEVELAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVwaGVtZXJpcyAob3IgYWxtYW5hYyBvbmx5KSBpbmZvcm1hdGlvbiB3YXMgcmVjZWl2ZWQgZnJvbSBhIFNVUEwKKyAgICAgICAgICogc2VydmVyLgorICAgICAgICAgKi8KKyAgICAgICAgU1VQTF9QUk9WSURFRCwKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBlcGhlbWVyaXMgKG9yIGFsbWFuYWMgb25seSkgaW5mb3JtYXRpb24gd2FzIHByb3ZpZGVkIGJ5IGFub3RoZXIKKyAgICAgICAgICogc2VydmVyLgorICAgICAgICAgKi8KKyAgICAgICAgT1RIRVJfU0VSVkVSX1BST1ZJREVELAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVwaGVtZXJpcyAob3IgYWxtYW5hYyBvbmx5KSBpbmZvcm1hdGlvbiB3YXMgcHJvdmlkZWQgYnkgYW5vdGhlcgorICAgICAgICAgKiBtZXRob2QsIGUuZy4gaW5qZWN0ZWQgdmlhIGEgbG9jYWwgZGVidWcgdG9vbCwgZnJvbSBidWlsZCBkZWZhdWx0cworICAgICAgICAgKiAoZS5nLiBhbG1hbmFjKSwgb3IgaXMgZnJvbSBhIHNhdGVsbGl0ZQorICAgICAgICAgKiB3aXRoIFNhdGVsbGl0ZUVwaGVtZXJpc1R5cGU6Ok5PVF9BVkFJTEFCTEUuCisgICAgICAgICAqLworICAgICAgICBPVEhFUgorICAgIH07CisKKyAgICBlbnVtIFNhdGVsbGl0ZUVwaGVtZXJpc0hlYWx0aCA6IHVpbnQ4X3QgeworICAgICAgICAvKiogVGhlIGVwaGVtZXJpcyBpcyBrbm93biBnb29kLiAqLworICAgICAgICBHT09ELAorICAgICAgICAvKiogVGhlIGVwaGVtZXJpcyBpcyBrbm93biBiYWQuICovCisgICAgICAgIEJBRCwKKyAgICAgICAgLyoqIFRoZSBlcGhlbWVyaXMgaXMgdW5rbm93biB0byBiZSBnb29kIG9yIGJhZC4gKi8KKyAgICAgICAgVU5LTk9XTgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyB0aGUgY3VycmVudCBiZXN0IGtub3duIHBvc2l0aW9uIGZyb20gYW55CisgICAgICogc291cmNlIChHTlNTIG9yIGluamVjdGVkIGFzc2lzdGFuY2UpLgorICAgICAqLworICAgIHN0cnVjdCBQb3NpdGlvbkRlYnVnIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbGlkaXR5IG9mIHRoZSBkYXRhIGluIHRoaXMgc3RydWN0LiBGYWxzZSBvbmx5IGlmIG5vCisgICAgICAgICAqIGxhdGl0dWRlL2xvbmdpdHVkZSBpbmZvcm1hdGlvbiBpcyBrbm93bi4KKyAgICAgICAgICovCisgICAgICAgIGJvb2wgdmFsaWQ7CisgICAgICAgIC8qKiBMYXRpdHVkZSBleHByZXNzZWQgaW4gZGVncmVlcyAqLworICAgICAgICBkb3VibGUgbGF0aXR1ZGVEZWdyZWVzOworICAgICAgICAvKiogTG9uZ2l0dWRlIGV4cHJlc3NlZCBpbiBkZWdyZWVzICovCisgICAgICAgIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzOworICAgICAgICAvKiogQWx0aXR1ZGUgYWJvdmUgZWxsaXBzb2lkIGV4cHJlc3NlZCBpbiBtZXRlcnMgKi8KKyAgICAgICAgZmxvYXQgYWx0aXR1ZGVNZXRlcnM7CisgICAgICAgIC8qKiBSZXByZXNlbnRzIGhvcml6b250YWwgc3BlZWQgaW4gbWV0ZXJzIHBlciBzZWNvbmQuICovCisgICAgICAgIGZsb2F0IHNwZWVkTWV0ZXJzUGVyU2VjOworICAgICAgICAvKiogUmVwcmVzZW50cyBoZWFkaW5nIGluIGRlZ3JlZXMuICovCisgICAgICAgIGZsb2F0IGJlYXJpbmdEZWdyZWVzOworICAgICAgICAvKioKKyAgICAgICAgICogRXN0aW1hdGVkIGhvcml6b250YWwgYWNjdXJhY3kgb2YgcG9zaXRpb24gZXhwcmVzc2VkIGluIG1ldGVycywKKyAgICAgICAgICogcmFkaWFsLCA2OCUgY29uZmlkZW5jZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBob3Jpem9udGFsQWNjdXJhY3lNZXRlcnM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBFc3RpbWF0ZWQgdmVydGljYWwgYWNjdXJhY3kgb2YgcG9zaXRpb24gZXhwcmVzc2VkIGluIG1ldGVycywgd2l0aAorICAgICAgICAgKiA2OCUgY29uZmlkZW5jZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSB2ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzOworICAgICAgICAvKioKKyAgICAgICAgICogRXN0aW1hdGVkIHNwZWVkIGFjY3VyYWN5IGluIG1ldGVycyBwZXIgc2Vjb25kIHdpdGggNjglIGNvbmZpZGVuY2UuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgc3BlZWRBY2N1cmFjeU1ldGVyc1BlclNlY29uZDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIGVzdGltYXRlZCBiZWFyaW5nIGFjY3VyYWN5IGRlZ3JlZXMgd2l0aCA2OCUgY29uZmlkZW5jZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBiZWFyaW5nQWNjdXJhY3lEZWdyZWVzOworICAgICAgICAvKioKKyAgICAgICAgICogVGltZSBkdXJhdGlvbiBiZWZvcmUgdGhpcyByZXBvcnQgdGhhdCB0aGlzIHBvc2l0aW9uIGluZm9ybWF0aW9uIHdhcworICAgICAgICAgKiB2YWxpZC4gIFRoaXMgY2FuLCBmb3IgZXhhbXBsZSwgYmUgYSBwcmV2aW91cyBpbmplY3RlZCBsb2NhdGlvbiB3aXRoCisgICAgICAgICAqIGFuIGFnZSBwb3RlbnRpYWxseSB0aG91c2FuZHMgb2Ygc2Vjb25kcyBvbGQsIG9yCisgICAgICAgICAqIGV4dHJhcG9sYXRlZCB0byB0aGUgY3VycmVudCB0aW1lICh3aXRoIGFwcHJvcHJpYXRlbHkgaW5jcmVhc2VkCisgICAgICAgICAqIGFjY3VyYWN5IGVzdGltYXRlcyksIHdpdGggYSAobmVhcikgemVybyBhZ2UuCisgICAgICAgICAqLworICAgICAgICBmbG9hdCBhZ2VTZWNvbmRzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyB0aGUgY3VycmVudCBiZXN0IGtub3duIFVUQyB0aW1lIGVzdGltYXRlLgorICAgICAqIElmIG5vIGZyZXNoIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSwgZS5nLiBhZnRlciBhIGRlbGV0ZSBhbGwsCisgICAgICogdGhlbiB3aGF0ZXZlciB0aGUgZWZmZWN0aXZlIGRlZmF1bHRzIGFyZSBvbiB0aGUgZGV2aWNlIG11c3QgYmUKKyAgICAgKiBwcm92aWRlZCAoZS5nLiBKYW4uIDEsIDIwMTcsIHdpdGggYW4gdW5jZXJ0YWludHkgb2YgNSB5ZWFycykgZXhwcmVzc2VkCisgICAgICogaW4gdGhlIHNwZWNpZmllZCB1bml0cy4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgVGltZURlYnVnIHsKKyAgICAgICAgLyoqIFVUQyB0aW1lIGVzdGltYXRlLiAqLworICAgICAgICBHbnNzVXRjVGltZSB0aW1lRXN0aW1hdGU7CisgICAgICAgIC8qKiA2OCUgZXJyb3IgZXN0aW1hdGUgaW4gdGltZS4gKi8KKyAgICAgICAgZmxvYXQgdGltZVVuY2VydGFpbnR5TnM7CisgICAgICAgIC8qKgorICAgICAgICAgKiA2OCUgZXJyb3IgZXN0aW1hdGUgaW4gbG9jYWwgY2xvY2sgZHJpZnQsCisgICAgICAgICAqIGluIG5hbm9zZWNvbmRzIHBlciBzZWNvbmQgKGFsc28ga25vd24gYXMgcGFydHMgcGVyIGJpbGxpb24gLSBwcGIuKQorICAgICAgICAgKi8KKyAgICAgICAgZmxvYXQgZnJlcXVlbmN5VW5jZXJ0YWludHlOc1BlclNlYzsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUHJvdmlkZXMgYSBzaW5nbGUgc2F0ZWxsaXRlIGluZm8gdGhhdCBoYXMgZGVjb2RlZCBuYXZpZ2F0aW9uIGRhdGEuCisgICAgICovCisgICAgc3RydWN0IFNhdGVsbGl0ZURhdGEgeworICAgICAgICAvKiogU2F0ZWxsaXRlIHZlaGljbGUgSUQgbnVtYmVyICovCisgICAgICAgIGludDE2X3Qgc3ZpZDsKKyAgICAgICAgLyoqIERlZmluZXMgdGhlIGNvbnN0ZWxsYXRpb24gdHlwZSBvZiB0aGUgZ2l2ZW4gU1YuICovCisgICAgICAgIEduc3NDb25zdGVsbGF0aW9uVHlwZSBjb25zdGVsbGF0aW9uOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZpbmVzIHRoZSBzdGFuZGFyZCBicm9hZGNhc3QgZXBoZW1lcmlzIG9yIGFsbWFuYWMgYXZhaWxhYmlsaXR5IGZvcgorICAgICAgICAgKiB0aGUgc2F0ZWxsaXRlLiAgVG8gcmVwb3J0IHN0YXR1cyBvZiBwcmVkaWN0ZWQgb3JiaXQgYW5kIGNsb2NrCisgICAgICAgICAqIGluZm9ybWF0aW9uLCBzZWUgdGhlIHNlcnZlclByZWRpY3Rpb24gZmllbGRzIGJlbG93LgorICAgICAgICAgKi8KKyAgICAgICAgU2F0ZWxsaXRlRXBoZW1lcmlzVHlwZSBlcGhlbWVyaXNUeXBlOworICAgICAgICAvKiogRGVmaW5lcyB0aGUgZXBoZW1lcmlzIHNvdXJjZSBvZiB0aGUgc2F0ZWxsaXRlLiAqLworICAgICAgICBTYXRlbGxpdGVFcGhlbWVyaXNTb3VyY2UgZXBoZW1lcmlzU291cmNlOworICAgICAgICAvKioKKyAgICAgICAgICogRGVmaW5lcyB3aGV0aGVyIHRoZSBzYXRlbGxpdGUgaXMga25vd24gaGVhbHRoeQorICAgICAgICAgKiAoc2FmZSBmb3IgdXNlIGluIGxvY2F0aW9uIGNhbGN1bGF0aW9uLikKKyAgICAgICAgICovCisgICAgICAgIFNhdGVsbGl0ZUVwaGVtZXJpc0hlYWx0aCBlcGhlbWVyaXNIZWFsdGg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaW1lIGR1cmF0aW9uIGZyb20gdGhpcyByZXBvcnQgKGN1cnJlbnQgdGltZSksIG1pbnVzIHRoZQorICAgICAgICAgKiBlZmZlY3RpdmUgdGltZSBvZiB0aGUgZXBoZW1lcmlzIHNvdXJjZSAoZS5nLiBUT0UsIFRPQS4pCisgICAgICAgICAqIFNldCB0byAwIHdoZW4gZXBoZW1lcmlzVHlwZSBpcyBOT1RfQVZBSUxBQkxFLgorICAgICAgICAgKi8KKyAgICAgICAgZmxvYXQgZXBoZW1lcmlzQWdlU2Vjb25kczsKKworICAgICAgICAvKioKKyAgICAgICAgICogVHJ1ZSBpZiBhIHNlcnZlciBoYXMgcHJvdmlkZWQgYSBwcmVkaWN0ZWQgb3JiaXQgYW5kIGNsb2NrIG1vZGVsIGZvcgorICAgICAgICAgKiB0aGlzIHNhdGVsbGl0ZS4KKyAgICAgICAgICovCisgICAgICAgIGJvb2wgc2VydmVyUHJlZGljdGlvbklzQXZhaWxhYmxlOworICAgICAgICAvKioKKyAgICAgICAgICogVGltZSBkdXJhdGlvbiBmcm9tIHRoaXMgcmVwb3J0IChjdXJyZW50IHRpbWUpIG1pbnVzIHRoZSB0aW1lIG9mIHRoZQorICAgICAgICAgKiBzdGFydCBvZiB0aGUgc2VydmVyIHByZWRpY3RlZCBpbmZvcm1hdGlvbi4gIEZvciBleGFtcGxlLCBhIDEgZGF5CisgICAgICAgICAqIG9sZCBwcmVkaWN0aW9uIHdvdWxkIGJlIHJlcG9ydGVkIGFzIDg2NDAwIHNlY29uZHMgaGVyZS4KKyAgICAgICAgICovCisgICAgICAgIGZsb2F0IHNlcnZlclByZWRpY3Rpb25BZ2VTZWNvbmRzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyBhIHNldCBvZiBkZWJ1ZyBpbmZvcm1hdGlvbiB0aGF0IGlzIGZpbGxlZCBieSB0aGUgR05TUyBjaGlwc2V0CisgICAgICogd2hlbiB0aGUgbWV0aG9kIGdldERlYnVnRGF0YSgpIGlzIGludm9rZWQuCisgICAgICovCisgICAgc3RydWN0IERlYnVnRGF0YSB7CisgICAgICAgIC8qKiBDdXJyZW50IGJlc3Qga25vd24gcG9zaXRpb24uICovCisgICAgICAgIFBvc2l0aW9uRGVidWcgcG9zaXRpb247CisgICAgICAgIC8qKiBDdXJyZW50IGJlc3Qga25vdyB0aW1lIGVzdGltYXRlICovCisgICAgICAgIFRpbWVEZWJ1ZyB0aW1lOworICAgICAgICAvKioKKyAgICAgICAgICogUHJvdmlkZXMgYSBsaXN0IG9mIHRoZSBhdmFpbGFibGUgc2F0ZWxsaXRlIGRhdGEsIGZvciBhbGwKKyAgICAgICAgICogc2F0ZWxsaXRlcyBhbmQgY29uc3RlbGxhdGlvbnMgdGhlIGRldmljZSBjYW4gdHJhY2ssCisgICAgICAgICAqIGluY2x1ZGluZyBHbnNzQ29uc3RlbGxhdGlvblR5cGUgVU5LTk9XTi4KKyAgICAgICAgICovCisgICAgICAgIHZlYzxTYXRlbGxpdGVEYXRhPiBzYXRlbGxpdGVEYXRhQXJyYXk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kcyByZXF1ZXN0cyBwb3NpdGlvbiwgdGltZSBhbmQgc2F0ZWxsaXRlIGVwaGVtZXJpcyBkZWJ1ZyBpbmZvcm1hdGlvbgorICAgICAqIGZyb20gdGhlIEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0IGRlYnVnRGF0YSBpbmZvcm1hdGlvbiBmcm9tIEdOU1MgSGFsIHRoYXQgY29udGFpbnMgdGhlIGN1cnJlbnQgYmVzdAorICAgICAqIGtub3duIHBvc2l0aW9uLCBiZXN0IGtub3duIHRpbWUgZXN0aW1hdGUgYW5kIGEgY29tcGxldGUgbGlzdCBvZgorICAgICAqIGNvbnN0ZWxsYXRpb25zIHRoYXQgdGhlIGRldmljZSBjYW4gdHJhY2suCisgICAgICovCisgICAgZ2V0RGVidWdEYXRhKCkgZ2VuZXJhdGVzIChEZWJ1Z0RhdGEgZGVidWdEYXRhKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsIGIvZ25zcy8xLjAvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzM3OTBhCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqCisgKiBHTlNTIEdlb2ZlbmNlLgorICogVGhlcmUgYXJlIDMgc3RhdGVzIGFzc29jaWF0ZWQgd2l0aCBhIEdlb2ZlbmNlOiBJbnNpZGUsIE91dHNpZGUsIFVua25vd24uCisgKiBUaGVyZSBhcmUgMyB0cmFuc2l0aW9uczogRU5URVJFRCwgRVhJVEVELCBVTkNFUlRBSU4uCisgKgorICogQW4gZXhhbXBsZSBzdGF0ZSBkaWFncmFtIHdpdGggY29uZmlkZW5jZSBsZXZlbDogOTUlIGFuZCBVbmtub3duIHRpbWUgbGltaXQKKyAqIHNldCBhcyAzMCBzZWNzIGlzIHNob3duIGJlbG93LiAoY29uZmlkZW5jZSBsZXZlbCBhbmQgVW5rbm93biB0aW1lIGxpbWl0IGFyZQorICogZXhwbGFpbmVkIGxhdHRlcikuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgKiAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgVW5rbm93biAoMzAgc2VjcykgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIHwgICAgICAgICAgICAgICAgICB8ICBeCisgKiAgICAgICAgICAgICAgICAgICBVTkNFUlRBSU58IHxFTlRFUkVEICAgICBFWElURUR8ICB8VU5DRVJUQUlOCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHYgICAgICAgICAgICAgICAgICB2ICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgIF9fX19fX19fICAgIEVYSVRFRCAgICAgX19fX19fX19fCisgKiAgICAgICAgICAgICAgICAgICAgICAgfCBJbnNpZGUgfCAtLS0tLS0tLS0tLT4gfCBPdXRzaWRlIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICB8IDwtLS0tLS0tLS0tLSB8ICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAiIiIiIiIiIiAgICBFTlRFUkVEICAgICIiIiIiIiIiIgorICoKKyAqIEluc2lkZSBzdGF0ZTogV2UgYXJlIDk1JSBjb25maWRlbnQgdGhhdCB0aGUgdXNlciBpcyBpbnNpZGUgdGhlIGdlb2ZlbmNlLgorICogT3V0c2lkZSBzdGF0ZTogV2UgYXJlIDk1JSBjb25maWRlbnQgdGhhdCB0aGUgdXNlciBpcyBvdXRzaWRlIHRoZSBnZW9mZW5jZQorICogVW5rbm93biBzdGF0ZTogUmVzdCBvZiB0aGUgdGltZS4KKyAqCisgKiBUaGUgVW5rbm93biBzdGF0ZSBpcyBiZXR0ZXIgZXhwbGFpbmVkIHdpdGggYW4gZXhhbXBsZToKKyAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX19fX19fX19fCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBjfAorICogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBfX18gICAgIHwgICAgX19fX19fXworICogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB8YXwgICAgIHwgICB8ICAgYiAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIiIiICAgICB8ICAgICIiIiIiIiIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiIiIiIiIiIiCisgKiBJbiB0aGUgZGlhZ3JhbSBhYm92ZSwgImEiIGFuZCAiYiIgYXJlIDIgZ2VvZmVuY2VzIGFuZCAiYyIgaXMgdGhlIGFjY3VyYWN5CisgKiBjaXJjbGUgcmVwb3J0ZWQgYnkgdGhlIEdOU1Mgc3Vic3lzdGVtLiBOb3cgd2l0aCByZWdhcmQgdG8gImIiLCB0aGUgc3lzdGVtIGlzCisgKiBjb25maWRlbnQgdGhhdCB0aGUgdXNlciBpcyBvdXRzaWRlLiBCdXQgd2l0aCByZWdhcmQgdG8gImEiIGlzIG5vdCBjb25maWRlbnQKKyAqIHdoZXRoZXIgaXQgaXMgaW5zaWRlIG9yIG91dHNpZGUgdGhlIGdlb2ZlbmNlLiBJZiB0aGUgYWNjdXJhY3kgcmVtYWlucyB0aGUKKyAqIHNhbWUgZm9yIGEgc3VmZmljaWVudCBwZXJpb2Qgb2YgdGltZSwgdGhlIFVOQ0VSVEFJTiB0cmFuc2l0aW9uIG11c3QgYmUKKyAqIHRyaWdnZXJlZCB3aXRoIHRoZSBzdGF0ZSBzZXQgdG8gVW5rbm93bi4gSWYgdGhlIGFjY3VyYWN5IGltcHJvdmVzIGxhdGVyLCBhbgorICogYXBwcm9wcmlhdGUgdHJhbnNpdGlvbiBtdXN0IGJlIHRyaWdnZXJlZC4gIFRoaXMgInN1ZmZpY2llbnQgcGVyaW9kIG9mIHRpbWUiCisgKiBpcyBkZWZpbmVkIGJ5IHRoZSBwYXJhbWV0ZXIgaW4gdGhlIGFkZEdlb2ZlbmNlQXJlYSBBUEkuCisgKiBJbiBvdGhlciB3b3JkcywgVW5rbm93biBzdGF0ZSBjYW4gYmUgaW50ZXJwcmV0ZWQgYXMgYSBzdGF0ZSBpbiB3aGljaCB0aGUKKyAqIEdOU1Mgc3Vic3lzdGVtIGlzbid0IGNvbmZpZGVudCBlbm91Z2ggdGhhdCB0aGUgdXNlciBpcyBlaXRoZXIgaW5zaWRlIG9yCisgKiBvdXRzaWRlIHRoZSBHZW9mZW5jZS4gSXQgbW92ZXMgdG8gVW5rbm93biBzdGF0ZSBvbmx5IGFmdGVyIHRoZSBleHBpcnkgb2YgdGhlCisgKiB0aW1lb3V0LgorICoKKyAqIFRoZSBnZW9mZW5jZSBjYWxsYmFjayBuZWVkcyB0byBiZSB0cmlnZ2VyZWQgZm9yIHRoZSBFTlRFUkVEIGFuZCBFWElURUQKKyAqIHRyYW5zaXRpb25zLCB3aGVuIHRoZSBHTlNTIHN5c3RlbSBpcyBjb25maWRlbnQgdGhhdCB0aGUgdXNlciBoYXMgZW50ZXJlZAorICogKEluc2lkZSBzdGF0ZSkgb3IgZXhpdGVkIChPdXRzaWRlIHN0YXRlKSB0aGUgR2VvZmVuY2UuIEFuIGltcGxlbWVudGF0aW9uCisgKiB3aGljaCB1c2VzIGEgdmFsdWUgb2YgOTUlIGFzIHRoZSBjb25maWRlbmNlIGlzIHJlY29tbWVuZGVkLiBUaGUgY2FsbGJhY2sKKyAqIG11c3QgYmUgdHJpZ2dlcmVkIG9ubHkgZm9yIHRoZSB0cmFuc2l0aW9ucyByZXF1ZXN0ZWQgYnkgdGhlCisgKiBhZGRHZW9mZW5jZUFyZWEgbWV0aG9kLgorICoKKyAqIEV2ZW4gdGhvdWdoIHRoZSBkaWFncmFtIGFuZCBleHBsYW5hdGlvbiB0YWxrcyBhYm91dCBzdGF0ZXMgYW5kIHRyYW5zaXRpb25zLAorICogdGhlIGNhbGxlZSBpcyBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIHRyYW5zaXRpb25zLiBUaGUgc3RhdGVzIGFyZSBtZW50aW9uZWQKKyAqIGhlcmUgZm9yIGlsbHVzdHJhdGl2ZSBwdXJwb3Nlcy4KKyAqCisgKiBTdGFydHVwIFNjZW5hcmlvOiBXaGVuIHRoZSBkZXZpY2UgYm9vdHMgdXAsIGlmIGFuIGFwcGxpY2F0aW9uIGFkZHMgZ2VvZmVuY2VzLAorICogYW5kIHRoZW4gd2UgZ2V0IGFuIGFjY3VyYXRlIEdOU1MgbG9jYXRpb24gZml4LCBpdCBuZWVkcyB0byB0cmlnZ2VyIHRoZQorICogYXBwcm9wcmlhdGUgKEVOVEVSRUQgb3IgRVhJVEVEKSB0cmFuc2l0aW9uIGZvciBldmVyeSBHZW9mZW5jZSBpdCBrbm93cyBhYm91dC4KKyAqIEJ5IGRlZmF1bHQsIGFsbCB0aGUgR2VvZmVuY2VzIHdpbGwgYmUgaW4gdGhlIFVua25vd24gc3RhdGUuCisgKgorICogV2hlbiB0aGUgR05TUyBzeXN0ZW0gaXMgdW5hdmFpbGFibGUsIGduc3NHZW9mZW5jZVN0YXR1c0NiIG11c3QgYmUKKyAqIGNhbGxlZCB0byBpbmZvcm0gdGhlIHVwcGVyIGxheWVycyBvZiB0aGUgc2FtZS4gU2ltaWxhcmx5LCB3aGVuIGl0IGJlY29tZXMKKyAqIGF2YWlsYWJsZSB0aGUgY2FsbGJhY2sgbXVzdCBiZSBjYWxsZWQuIFRoaXMgaXMgYSBnbG9iYWwgc3RhdGUgd2hpbGUgdGhlCisgKiBVTktOT1dOIHRyYW5zaXRpb24gZGVzY3JpYmVkIGFib3ZlIGlzIHBlciBnZW9mZW5jZS4KKyAqCisgKiBBbiBpbXBvcnRhbnQgYXNwZWN0IHRvIG5vdGUgaXMgdGhhdCB1c2VycyBvZiB0aGlzIEFQSSAoZnJhbWV3b3JrKSwgd2lsbCB1c2UKKyAqIG90aGVyIHN1YnN5c3RlbXMgbGlrZSB3aWZpLCBzZW5zb3JzLCBjZWxsIHRvIGhhbmRsZSBVbmtub3duIGNhc2UgYW5kCisgKiBob3BlZnVsbHkgcHJvdmlkZSBhIGRlZmluaXRpdmUgc3RhdGUgdHJhbnNpdGlvbiB0byB0aGUgdGhpcmQgcGFydHkKKyAqIGFwcGxpY2F0aW9uLiBHTlNTIEdlb2ZlbmNlIHdpbGwganVzdCBiZSBhIHNpZ25hbCBpbmRpY2F0aW5nIHdoYXQgdGhlIEdOU1MKKyAqIHN1YnN5c3RlbSBrbm93cyBhYm91dCB0aGUgR2VvZmVuY2UuCisgKgorICovCisKK2ludGVyZmFjZSBJR25zc0dlb2ZlbmNlQ2FsbGJhY2sgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfR0VPRkVOQ0VfIikKKyAgICBlbnVtIEdlb2ZlbmNlVHJhbnNpdGlvbiA6IGludDMyX3QgeworICAgICAgICBFTlRFUkVEICAgPSAoMSA8PCAwTCksCisgICAgICAgIEVYSVRFRCAgICA9ICgxIDw8IDFMKSwKKyAgICAgICAgVU5DRVJUQUlOID0gKDEgPDwgMkwpLAorICAgIH07CisKKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX0dFT0ZFTkNFXyIpCisgICAgZW51bSBHZW9mZW5jZUF2YWlsYWJpbGl0eSA6IGludDMyX3QgeworICAgICAgICBVTkFWQUlMQUJMRSA9ICgxIDw8IDBMKSwKKyAgICAgICAgQVZBSUxBQkxFICAgPSAoMSA8PCAxTCksCisgICAgfTsKKworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfR0VPRkVOQ0VfIikKKyAgICBlbnVtIEdlb2ZlbmNlU3RhdHVzIDogaW50MzJfdCB7CisgICAgICAgIE9QRVJBVElPTl9TVUNDRVNTICAgICAgICA9IDAsCisgICAgICAgIEVSUk9SX1RPT19NQU5ZX0dFT0ZFTkNFUyA9IC0xMDAsCisgICAgICAgIEVSUk9SX0lEX0VYSVNUUyAgICAgICAgICA9IC0xMDEsCisgICAgICAgIEVSUk9SX0lEX1VOS05PV04gICAgICAgICA9IC0xMDIsCisgICAgICAgIEVSUk9SX0lOVkFMSURfVFJBTlNJVElPTiA9IC0xMDMsCisgICAgICAgIEVSUk9SX0dFTkVSSUMgICAgICAgICAgICA9IC0xNDkKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2VvZmVuY2UgdHJhbnNpdGlvbi4KKyAgICAgKiBUaGUgY2FsbGJhY2sgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBjYWxsZXIgaXMgaW50ZXJlc3RlZCBpbiB0aGF0CisgICAgICogcGFydGljdWxhciB0cmFuc2l0aW9uLiBGb3IgaW5zdGFuY2UsIGlmIHRoZSBjYWxsZXIgaXMgaW50ZXJlc3RlZCBvbmx5IGluCisgICAgICogRU5URVJFRCB0cmFuc2l0aW9uLCB0aGVuIHRoZSBjYWxsYmFjayBtdXN0IG5vdCBiZSBjYWxsZWQgd2l0aCB0aGUgRVhJVEVECisgICAgICogdHJhbnNpdGlvbi4KKyAgICAgKgorICAgICAqIElNUE9SVEFOVDogSWYgYSB0cmFuc2l0aW9uIGlzIHRyaWdnZXJlZCByZXN1bHRpbmcgaW4gdGhpcyBjYWxsYmFjaywgdGhlCisgICAgICogR05TUyBzdWJzeXN0ZW0gd2lsbCB3YWtlIHVwIHRoZSBhcHBsaWNhdGlvbiBwcm9jZXNzb3IsIGlmIGl0cyBpbiBzdXNwZW5kCisgICAgICogc3RhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCBUaGUgaWQgYXNzb2NpYXRlZCB3aXRoIHRoZSBhZGRHZW9mZW5jZUFyZWEuCisgICAgICogQHBhcmFtIGxvY2F0aW9uIFRoZSBjdXJyZW50IEdOU1MgbG9jYXRpb24uCisgICAgICogQHBhcmFtIHRyYW5zaXRpb24gQ2FuIGJlIG9uZSBvZiBFTlRFUkVELCBFWElURUQgb3IgVU5DRVJUQUlOLgorICAgICAqIEBwYXJhbSB0aW1lc3RhbXAgVGltZXN0YW1wIHdoZW4gdGhlIHRyYW5zaXRpb24gd2FzIGRldGVjdGVkLgorICAgICAqCisgICAgICovCisgICAgZ25zc0dlb2ZlbmNlVHJhbnNpdGlvbkNiKGludDMyX3QgZ2VvZmVuY2VJZCwgR25zc0xvY2F0aW9uIGxvY2F0aW9uLAorICAgICAgICBHZW9mZW5jZVRyYW5zaXRpb24gdHJhbnNpdGlvbiwgR25zc1V0Y1RpbWUgdGltZXN0YW1wKTsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBhc3NvY2lhdGVkIHdpdGggdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgR05TUyBzeXN0ZW0gZm9yCisgICAgICogZ2VvZmVuY2luZyBtb25pdG9yaW5nLiBJZiB0aGUgR05TUyBzeXN0ZW0gZGV0ZXJtaW5lcyB0aGF0IGl0IGNhbm5vdCBtb25pdG9yCisgICAgICogZ2VvZmVuY2VzIGJlY2F1c2Ugb2YgbGFjayBvZiByZWxpYWJpbGl0eSBvciB1bmF2YWlsYWJpbGl0eSBvZiB0aGUgR05TUworICAgICAqIHNpZ25hbHMsIGl0IHdpbGwgY2FsbCB0aGlzIGNhbGxiYWNrIHdpdGggVU5BVkFJTEFCTEUgcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyAtIFVOQVZBSUxBQkxFIG9yIEFWQUlMQUJMRS4KKyAgICAgKiBAcGFyYW0gbGFzdExvY2F0aW9uIC0gTGFzdCBrbm93biBsb2NhdGlvbi4KKyAgICAgKi8KKyAgICBnbnNzR2VvZmVuY2VTdGF0dXNDYihHZW9mZW5jZUF2YWlsYWJpbGl0eSBzdGF0dXMsIEduc3NMb2NhdGlvbiBsYXN0TG9jYXRpb24pOworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWRkR2VvZmVuY2UgY2FsbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBnZW9mZW5jZUlkIElkIG9mIHRoZSBnZW9mZW5jZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFdpbGwgYmUgT1BFUkFUSU9OX1NVQ0NFU1MgaWYgdGhlIGdlb2ZlbmNlCisgICAgICogYWRkIHdhcyBzdWNjZXNzZnVsLiBXaWxsIGJlIEVSUk9SX1RPT19NQU5ZX0dFT0ZFTkNFUyBpZiB0aGUKKyAgICAgKiBnZW9mZW5jZSBsaW1pdCBoYXMgYmVlbiByZWFjaGVkLgorICAgICAqIFdpbGwgYmUgRVJST1JfSURfRVhJU1RTIGlmIGdlb2ZlbmNlIHdpdGggaWQgYWxyZWFkeSBleGlzdHMuCisgICAgICogV2lsbCBiZSBFUlJPUl9JTlZBTElEX1RSQU5TSVRJT04gaWYgdGhlIG1vbml0b3JUcmFuc2l0aW9uIGNvbnRhaW5zIGFuCisgICAgICogaW52YWxpZCB0cmFuc2l0aW9uLgorICAgICAqIFdpbGwgYmUgRVJST1JfR0VORVJJQyBmb3Igb3RoZXIgZXJyb3JzLgorICAgICAqLworICAgIGduc3NHZW9mZW5jZUFkZENiKGludDMyX3QgZ2VvZmVuY2VJZCwgR2VvZmVuY2VTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBhc3NvY2lhdGVkIHdpdGggdGhlIHJlbW92ZUdlb2ZlbmNlIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCBJZCBvZiB0aGUgZ2VvZmVuY2UuCisgICAgICogQHBhcmFtIHN0YXR1cyBXaWxsIHJldHVybiBPUEVSQVRJT05fU1VDQ0VTUyBpZiBzdWNjZXNzZnVsLgorICAgICAqIFdpbGwgYmUgRVJST1JfSURfVU5LTk9XTiBmb3IgaW52YWxpZCBpZCBhbmQKKyAgICAgKiBFUlJPUl9HRU5FUklDIGZvciBvdGhlcnMuCisgICAgICovCisgICAgZ25zc0dlb2ZlbmNlUmVtb3ZlQ2IoaW50MzJfdCBnZW9mZW5jZUlkLCBHZW9mZW5jZVN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGF1c2VHZW9mZW5jZSBjYWxsLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgSWQgb2YgdGhlIGdlb2ZlbmNlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgV2lsbCBiZSBPUEVSQVRJT05fU1VDQ0VTUyBpZiBzdWNjZXNzLgorICAgICAqIFdpbGwgYmUgRVJST1JfSURfVU5LTk9XTiBmb3IgaW52YWxpZCBpZC4gV2lsbCBiZQorICAgICAqIEVSUk9SX0lOVkFMSURfVFJBTlNJVElPTiB3aGVuIG1vbml0b3JUcmFuc2l0aW9ucyBpcyBpbnZhbGlkLgorICAgICAqIFdpbGwgYmUgRVJST1JfR0VORVJJQyBmb3Igb3RoZXIgZXJyIGVycm9ycy4KKyAgICAgKi8KKyAgICBnbnNzR2VvZmVuY2VQYXVzZUNiKGludDMyX3QgZ2VvZmVuY2VJZCwgR2VvZmVuY2VTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBhc3NvY2lhdGVkIHdpdGggdGhlIHJlc3VtZUdlb2ZlbmNlIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCAtIElkIG9mIHRoZSBnZW9mZW5jZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFdpbGwgYmUgT1BFUkFUSU9OX1NVQ0NFU1MgaWYgc3VjY2Vzc2Z1bC4KKyAgICAgKiBXaWxsIGJlIEVSUk9SX0lEX1VOS05PV04gZm9yIGludmFsaWQgaWQgYW5kIEVSUk9SX0dFTkVSSUMgZm9yIG90aGVycy4KKyAgICAgKi8KKyAgICBnbnNzR2VvZmVuY2VSZXN1bWVDYihpbnQzMl90IGdlb2ZlbmNlSWQsIEdlb2ZlbmNlU3RhdHVzIHN0YXR1cyk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NHZW9mZW5jaW5nLmhhbCBiL2duc3MvMS4wL0lHbnNzR2VvZmVuY2luZy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYyMzU1YQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzR2VvZmVuY2luZy5oYWwKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworaW1wb3J0IElHbnNzR2VvZmVuY2VDYWxsYmFjazsKKworLyoqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgR05TUyBHZW9mZW5jaW5nIHN1cHBvcnQgKi8KK2ludGVyZmFjZSBJR25zc0dlb2ZlbmNpbmcgeworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBnZW9mZW5jZSBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSGFuZGxlIHRvIHRoZSBJR25zc0dlb2ZlbmNlQ2FsbGJhY2sgaW50ZXJmYWNlLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElHbnNzR2VvZmVuY2VDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBBZGQgYSBnZW9mZW5jZSBhcmVhLiBUaGlzIGFwaSBjdXJyZW50bHkgc3VwcG9ydHMgY2lyY3VsYXIgZ2VvZmVuY2VzLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgVGhlIGlkIGZvciB0aGUgZ2VvZmVuY2UuIElmIGEgZ2VvZmVuY2Ugd2l0aCB0aGlzIGlkCisgICAgICogYWxyZWFkeSBleGlzdHMsIGFuIGVycm9yIHZhbHVlIChFUlJPUl9JRF9FWElTVFMpIG11c3QgYmUgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIGxhdGl0dWRlRGVncmVlcyBUaGUgbGF0aXR1ZGUoaW4gZGVncmVlcykgZm9yIHRoZSBnZW9mZW5jZSBsYXN0VHJhbnNpdGlvbi4KKyAgICAgKiBAcGFyYW0gbG9uZ3RpdHVkZURlZ3JlZXMgVGhlIGxvbmdpdHVkZShpbiBkZWdyZWVzKSBmb3IgdGhlIGdlb2ZlbmNlIGxhc3RUcmFuc2l0aW9uLgorICAgICAqIEBwYXJhbSByYWRpdXNNZXRlcnMgVGhlIHJhZGl1cyhpbiBtZXRlcnMpIGZvciB0aGUgZ2VvZmVuY2UgbGFzdFRyYW5zaXRpb24uCisgICAgICogQHBhcmFtIGxhc3RUcmFuc2l0aW9uIFRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBnZW9mZW5jZS4gRm9yIGV4YW1wbGUsIGlmCisgICAgICogdGhlIHN5c3RlbSBhbHJlYWR5IGtub3dzIHRoYXQgdGhlIHVzZXIgaXMgaW5zaWRlIHRoZSBnZW9mZW5jZSwgdGhpcyB3aWxsCisgICAgICogYmUgc2V0IHRvIEVOVEVSRUQuIEluIG1vc3QgY2FzZXMsIGl0IHdpbGwgYmUgVU5DRVJUQUlOLgorICAgICAqIEBwYXJhbSBtb25pdG9yVHJhbnNpdGlvbnMgLSBXaGljaCB0cmFuc2l0aW9ucyB0byBtb25pdG9yLiBCaXR3aXNlIE9SIG9mCisgICAgICogRU5URVJFRCwgRVhJVEVEIGFuZCBVTkNFUlRBSU4uCisgICAgICogQHBhcmFtIG5vdGlmaWNhdGlvblJlc3BvbnNpdmVuZXNzTXMgLSBEZWZpbmVzIHRoZSBiZXN0LWVmZm9ydCBkZXNjcmlwdGlvbgorICAgICAqIG9mIGhvdyBzb29uIG11c3QgdGhlIGNhbGxiYWNrIGJlIGNhbGxlZCB3aGVuIHRoZSB0cmFuc2l0aW9uIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIHRoZSBHZW9mZW5jZSBpcyB0cmlnZ2VyZWQuIEZvciBpbnN0YW5jZSwgaWYgc2V0IHRvIDEwMDAgbWlsbHNlY29uZHMKKyAgICAgKiB3aXRoIEVOVEVSRUQsIHRoZSBjYWxsYmFjayBtdXN0IGJlIGNhbGxlZCAxMDAwIG1pbGxpc2Vjb25kcyB3aXRoaW4gZW50ZXJpbmcKKyAgICAgKiB0aGUgZ2VvZmVuY2UuIFRoaXMgcGFyYW1ldGVyIGlzIGRlZmluZWQgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqIE5PVEU6IFRoaXMgaXMgbm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggdGhlIHJhdGUgdGhhdCB0aGUgR05TUyBpcyBwb2xsZWQgYXQuCisgICAgICogSXQgaXMgYWNjZXB0YWJsZSB0byBkeW5hbWljYWxseSB2YXJ5IHRoZSByYXRlIG9mIHNhbXBsaW5nIHRoZSBHTlNTIGZvcgorICAgICAqIHBvd2VyLXNhdmluZyByZWFzb25zOyB0aHVzIHRoZSByYXRlIG9mIHNhbXBsaW5nIG1heSBiZSBmYXN0ZXIgb3Igc2xvd2VyCisgICAgICogdGhhbiB0aGlzLgorICAgICAqIEBwYXJhbSB1bmtub3duVGltZXJNcyAtIFRoZSB0aW1lIGxpbWl0IGFmdGVyIHdoaWNoIHRoZSBVTkNFUlRBSU4gdHJhbnNpdGlvbgorICAgICAqIG11c3QgYmUgdHJpZ2dlcmVkLiBUaGlzIHBhcmFtZXRlciBpcyBkZWZpbmVkIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKi8KKyAgICBhZGRHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQsIGRvdWJsZSBsYXRpdHVkZURlZ3JlZXMsIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgZG91YmxlIHJhZGl1c01ldGVycywgR2VvZmVuY2VUcmFuc2l0aW9uIGxhc3RUcmFuc2l0aW9uLAorICAgICAgICAgICAgYml0ZmllbGQ8SUduc3NHZW9mZW5jZUNhbGxiYWNrLkdlb2ZlbmNlVHJhbnNpdGlvbj4gbW9uaXRvclRyYW5zaXRpb25zLAorICAgICAgICAgICAgdWludDMyX3Qgbm90aWZpY2F0aW9uUmVzcG9uc2l2ZW5lc3NNcywKKyAgICAgICAgICAgIHVpbnQzMl90IHVua25vd25UaW1lck1zKTsKKworICAgIC8qKgorICAgICAqIFBhdXNlIG1vbml0b3JpbmcgYSBwYXJ0aWN1bGFyIGdlb2ZlbmNlLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgVGhlIGlkIGZvciB0aGUgZ2VvZmVuY2UuCisgICAgICovCisgICAgcGF1c2VHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQpOworCisgICAgLyoqCisgICAgICogUmVzdW1lIG1vbml0b3JpbmcgYSBwYXJ0aWN1bGFyIGdlb2ZlbmNlLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgLSBUaGUgaWQgZm9yIHRoZSBnZW9mZW5jZS4KKyAgICAgKiBAcGFyYW0gbW9uaXRvclRyYW5zaXRpb25zIFNwZWNpZmllcyB3aGljaCB0cmFuc2l0aW9ucyB0byBtb25pdG9yLgorICAgICAqIEl0IGNhbiBiZSBhIGJpdHdpc2UgT1Igb2YgRU5URVJFRCwgRVhJVEVEIGFuZAorICAgICAqIFVOQ0VSVEFJTi4gVGhpcyBzdXBlcnNlZGVzIHRoZSB2YWx1ZSBhc3NvY2lhdGVkCisgICAgICogcHJvdmlkZWQgaW4gdGhlIGFkZEdlb2ZlbmNlQXJlYSBjYWxsLgorICAgICAqLworICAgIHJlc3VtZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCwKKyAgICAgICAgICAgIGJpdGZpZWxkPElHbnNzR2VvZmVuY2VDYWxsYmFjay5HZW9mZW5jZVRyYW5zaXRpb24+IG1vbml0b3JUcmFuc2l0aW9ucyk7CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYSBnZW9mZW5jZSBhcmVhLiBBZnRlciB0aGUgZnVuY3Rpb24gcmV0dXJucywgbm8gbm90aWZpY2F0aW9ucworICAgICAqIG11c3QgYmUgc2VudC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBnZW9mZW5jZUlkIFRoZSBpZCBvZiB0aGUgZ2VvZmVuY2UuCisgICAgICovCisgICAgcmVtb3ZlR2VvZmVuY2UoaW50MzJfdCBnZW9mZW5jZUlkKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50LmhhbCBiL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhZDgzZDIKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50LmhhbApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOworCitpbXBvcnQgSUduc3NNZWFzdXJlbWVudENhbGxiYWNrOworCisvKioKKyAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgR05TUyBNZWFzdXJlbWVudHMgc3VwcG9ydC4KKyAqLworaW50ZXJmYWNlIElHbnNzTWVhc3VyZW1lbnQgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfTUVBU1VSRU1FTlRfIikKKyAgICBlbnVtIEduc3NNZWFzdXJlbWVudFN0YXR1cyA6IGludDMyX3QgeworICAgICAgICBTVUNDRVNTID0gMCwKKyAgICAgICAgRVJST1JfQUxSRUFEWV9JTklUID0gLTEwMCwKKyAgICAgICAgRVJST1JfR0VORVJJQyA9IC0xMDEKKyAgICB9OworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGludGVyZmFjZSBhbmQgcmVnaXN0ZXJzIHRoZSBjYWxsYmFjayByb3V0aW5lcyB3aXRoIHRoZSBIQUwuCisgICAgICogQWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgdG8gJ3NldENhbGxiYWNrJyB0aGUgSEFMIG11c3QgYmVnaW4gdG8gcHJvdmlkZSB1cGRhdGVzIGF0CisgICAgICogYW4gYXZlcmFnZSBvdXRwdXQgcmF0ZSBvZiAxSHogKG9jY2FzaW9uYWwKKyAgICAgKiBpbnRyYS1tZWFzdXJlbWVudCB0aW1lIG9mZnNldHMgaW4gdGhlIHJhbmdlIGZyb20gMC0yMDAwbXNlYyBjYW4gYmUKKyAgICAgKiB0b2xlcmF0ZWQuKQorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIEhhbmRsZSB0byBHbnNzTWVhc3VyZW1lbnQgY2FsbGJhY2sgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBpbml0UmV0IFJldHVybnMgU1VDQ0VTUyBpZiBzdWNjZXNzZnVsLgorICAgICAqIFJldHVybnMgRVJST1JfQUxSRUFEWV9JTklUIGlmIGEgY2FsbGJhY2sgaGFzIGFscmVhZHkgYmVlbgorICAgICAqIHJlZ2lzdGVyZWQgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgY2FsbCB0byAnY2xvc2UnLgorICAgICAqIFJldHVybnMgRVJST1JfR0VORVJJQyBmb3IgYW55IG90aGVyIGVycm9yLiBUaGUgSEFMIG11c3QKKyAgICAgKiBub3QgZ2VuZXJhdGUgYW55IG90aGVyIHVwZGF0ZXMgdXBvbiByZXR1cm5pbmcgdGhpcyBlcnJvciBjb2RlLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChHbnNzTWVhc3VyZW1lbnRTdGF0dXMgaW5pdFJldCk7CisKKyAgICAvKioKKyAgICAgKiBTdG9wcyB1cGRhdGVzIGZyb20gdGhlIEhBTCwgYW5kIHVucmVnaXN0ZXJzIHRoZSBjYWxsYmFjayByb3V0aW5lcy4KKyAgICAgKiBBZnRlciBhIGNhbGwgdG8gY2xvc2UoKSwgdGhlIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBjYWxsYmFja3MgbXVzdCBiZQorICAgICAqIGNvbnNpZGVyZWQgaW52YWxpZCBieSB0aGUgSEFMLgorICAgICAqIElmIGNsb3NlKCkgaXMgaW52b2tlZCB3aXRob3V0IGEgcHJldmlvdXMgc2V0Q2FsbGJhY2ssIHRoaXMgZnVuY3Rpb24gbXVzdCBwZXJmb3JtCisgICAgICogbm8gd29yay4KKyAgICAgKi8KKyAgICBjbG9zZSgpOworCit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDAzMTY2NAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw2MDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBUaGUgY2FsbGJhY2sgaW50ZXJmYWNlIHRvIHJlcG9ydCBtZWFzdXJlbWVudHMgZnJvbSB0aGUgSEFMLiAqLworaW50ZXJmYWNlIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogRmxhZ3MgdG8gaW5kaWNhdGUgd2hhdCBmaWVsZHMgaW4gR25zc0Nsb2NrIGFyZSB2YWxpZC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19DTE9DS18iKQorICAgIGVudW0gR25zc0Nsb2NrRmxhZ3MgOiB1aW50MTZfdCB7CisgICAgICAgIC8qKiBBIHZhbGlkICdsZWFwIHNlY29uZCcgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0xFQVBfU0VDT05EICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ3RpbWUgdW5jZXJ0YWludHknIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19USU1FX1VOQ0VSVEFJTlRZICAgPSAxIDw8IDEsCisgICAgICAgIC8qKiBBIHZhbGlkICdmdWxsIGJpYXMnIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19GVUxMX0JJQVMgICAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIC8qKiBBIHZhbGlkICdiaWFzJyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfQklBUyAgICAgICAgICAgICAgID0gMSA8PCAzLAorICAgICAgICAvKiogQSB2YWxpZCAnYmlhcyB1bmNlcnRhaW50eScgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0JJQVNfVU5DRVJUQUlOVFkgICA9IDEgPDwgNCwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2RyaWZ0JyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfRFJJRlQgICAgICAgICAgICAgID0gMSA8PCA1LAorICAgICAgICAvKiogQSB2YWxpZCAnZHJpZnQgdW5jZXJ0YWludHknIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19EUklGVF9VTkNFUlRBSU5UWSAgPSAxIDw8IDYKKyAgICB9OworCisgICAgLyoqCisgICAgICogRmxhZ3MgdG8gaW5kaWNhdGUgd2hhdCBmaWVsZHMgaW4gR25zc01lYXN1cmVtZW50IGFyZSB2YWxpZC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19NRUFTVVJFTUVOVF8iKQorICAgIGVudW0gR25zc01lYXN1cmVtZW50RmxhZ3MgOiB1aW50MzJfdCB7CisgICAgICAgIC8qKiBBIHZhbGlkICdzbnInIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19TTlIgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2NhcnJpZXIgZnJlcXVlbmN5JyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfQ0FSUklFUl9GUkVRVUVOQ1kgICAgICAgICAgPSAxIDw8IDksCisgICAgICAgIC8qKiBBIHZhbGlkICdjYXJyaWVyIGN5Y2xlcycgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0NBUlJJRVJfQ1lDTEVTICAgICAgICAgICAgID0gMSA8PCAxMCwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2NhcnJpZXIgcGhhc2UnIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19DQVJSSUVSX1BIQVNFICAgICAgICAgICAgICA9IDEgPDwgMTEsCisgICAgICAgIC8qKiBBIHZhbGlkICdjYXJyaWVyIHBoYXNlIHVuY2VydGFpbnR5JyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfQ0FSUklFUl9QSEFTRV9VTkNFUlRBSU5UWSAgPSAxIDw8IDEyLAorICAgICAgICAvKiogQSB2YWxpZCBhdXRvbWF0aWMgZ2FpbiBjb250cm9sIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19BVVRPTUFUSUNfR0FJTl9DT05UUk9MICAgICA9IDEgPDwgMTMKKyAgICB9OworCisgICAgLyoqCisgICAgICogRW51bWVyYXRpb24gb2YgYXZhaWxhYmxlIHZhbHVlcyBmb3IgdGhlIEdOU1MgTWVhc3VyZW1lbnQncyBtdWx0aXBhdGgKKyAgICAgKiBpbmRpY2F0b3IuCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdOU1NfTVVMVElQQVRIXyIpCisgICAgZW51bSBHbnNzTXVsdGlwYXRoSW5kaWNhdG9yIDogdWludDhfdCB7CisgICAgICAgIC8qKiBUaGUgaW5kaWNhdG9yIGlzIG5vdCBhdmFpbGFibGUgb3IgdW5rbm93bi4gKi8KKyAgICAgICAgSU5ESUNBVE9SX1VOS05PV04gICAgICA9IDAsCisgICAgICAgIC8qKiBUaGUgbWVhc3VyZW1lbnQgaXMgaW5kaWNhdGVkIHRvIGJlIGFmZmVjdGVkIGJ5IG11bHRpcGF0aC4gKi8KKyAgICAgICAgSU5ESUNBVE9SX1BSRVNFTlQgICAgICA9IDEsCisgICAgICAgIC8qKiBUaGUgbWVhc3VyZW1lbnQgaXMgaW5kaWNhdGVkIHRvIGJlIG5vdCBhZmZlY3RlZCBieSBtdWx0aXBhdGguICovCisgICAgICAgIElORElDQVRJT1JfTk9UX1BSRVNFTlQgPSAyCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZsYWdzIGluZGljYXRpbmcgdGhlIEdOU1MgbWVhc3VyZW1lbnQgc3RhdGUuCisgICAgICoKKyAgICAgKiBUaGUgZXhwZWN0ZWQgYmVoYXZpb3IgaGVyZSBpcyBmb3IgR05TUyBIQUwgdG8gc2V0IGFsbCB0aGUgZmxhZ3MgdGhhdCBhcHBsaWVzLgorICAgICAqIEZvciBleGFtcGxlLCBpZiB0aGUgc3RhdGUgZm9yIGEgc2F0ZWxsaXRlIGlzIG9ubHkgQy9BIGNvZGUgbG9ja2VkIGFuZCBiaXQKKyAgICAgKiBzeW5jaHJvbml6ZWQsIGFuZCB0aGVyZSBpcyBzdGlsbCBtaWxsaXNlY29uZCBhbWJpZ3VpdHksIHRoZSBzdGF0ZSBtdXN0IGJlCisgICAgICogc2V0IGFzOgorICAgICAqCisgICAgICogU1RBVEVfQ09ERV9MT0NLIHwgU1RBVEVfQklUX1NZTkMgfCAgU1RBVEVfTVNFQ19BTUJJR1VPVVMKKyAgICAgKgorICAgICAqIElmIEdOU1MgaXMgc3RpbGwgc2VhcmNoaW5nIGZvciBhIHNhdGVsbGl0ZSwgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGUgbXVzdCBiZQorICAgICAqIHNldCB0byBTVEFURV9VTktOT1dOKDApLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX01FQVNVUkVNRU5UXyIpCisgICAgZW51bSBHbnNzTWVhc3VyZW1lbnRTdGF0ZSA6IHVpbnQzMl90IHsKKyAgICAgICAgU1RBVEVfVU5LTk9XTiAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgIFNUQVRFX0NPREVfTE9DSyAgICAgICAgICAgICAgPSAxIDw8IDAsCisgICAgICAgIFNUQVRFX0JJVF9TWU5DICAgICAgICAgICAgICAgPSAxIDw8IDEsCisgICAgICAgIFNUQVRFX1NVQkZSQU1FX1NZTkMgICAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIFNUQVRFX1RPV19ERUNPREVEICAgICAgICAgICAgPSAxIDw8IDMsCisgICAgICAgIFNUQVRFX01TRUNfQU1CSUdVT1VTICAgICAgICAgPSAxIDw8IDQsCisgICAgICAgIFNUQVRFX1NZTUJPTF9TWU5DICAgICAgICAgICAgPSAxIDw8IDUsCisgICAgICAgIFNUQVRFX0dMT19TVFJJTkdfU1lOQyAgICAgICAgPSAxIDw8IDYsCisgICAgICAgIFNUQVRFX0dMT19UT0RfREVDT0RFRCAgICAgICAgPSAxIDw8IDcsCisgICAgICAgIFNUQVRFX0JEU19EMl9CSVRfU1lOQyAgICAgICAgPSAxIDw8IDgsCisgICAgICAgIFNUQVRFX0JEU19EMl9TVUJGUkFNRV9TWU5DICAgPSAxIDw8IDksCisgICAgICAgIFNUQVRFX0dBTF9FMUJDX0NPREVfTE9DSyAgICAgPSAxIDw8IDEwLAorICAgICAgICBTVEFURV9HQUxfRTFDXzJORF9DT0RFX0xPQ0sgID0gMSA8PCAxMSwKKyAgICAgICAgU1RBVEVfR0FMX0UxQl9QQUdFX1NZTkMgICAgICA9IDEgPDwgMTIsCisgICAgICAgIFNUQVRFX1NCQVNfU1lOQyAgICAgICAgICAgICAgPSAxIDw8IDEzLAorICAgICAgICBTVEFURV9UT1dfS05PV04gICAgICAgICAgICAgID0gMSA8PCAxNCwKKyAgICAgICAgU1RBVEVfR0xPX1RPRF9LTk9XTiAgICAgICAgICA9IDEgPDwgMTUsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZsYWdzIGluZGljYXRpbmcgdGhlIEFjY3VtdWxhdGVkIERlbHRhIFJhbmdlJ3Mgc3RhdGVzLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTXyIpCisgICAgZW51bSBHbnNzQWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGUgOiB1aW50MTZfdCB7CisgICAgICAgIEFEUl9TVEFURV9VTktOT1dOICAgID0gMCwKKyAgICAgICAgQURSX1NUQVRFX1ZBTElEICAgICAgPSAxIDw8IDAsCisgICAgICAgIEFEUl9TVEFURV9SRVNFVCAgICAgID0gMSA8PCAxLAorICAgICAgICBBRFJfU1RBVEVfQ1lDTEVfU0xJUCA9IDEgPDwgMiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBhbiBlc3RpbWF0ZSBvZiB0aGUgR05TUyBjbG9jayB0aW1lLgorICAgICAqLworICAgIHN0cnVjdCBHbnNzQ2xvY2sgeworICAgICAgICAvKioKKyAgICAgICAgICogQSBzZXQgb2YgZmxhZ3MgaW5kaWNhdGluZyB0aGUgdmFsaWRpdHkgb2YgdGhlIGZpZWxkcyBpbiB0aGlzIGRhdGEKKyAgICAgICAgICogc3RydWN0dXJlLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8R25zc0Nsb2NrRmxhZ3M+IGduc3NDbG9ja0ZsYWdzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBMZWFwIHNlY29uZCBkYXRhLgorICAgICAgICAgKiBUaGUgc2lnbiBvZiB0aGUgdmFsdWUgaXMgZGVmaW5lZCBieSB0aGUgZm9sbG93aW5nIGVxdWF0aW9uOgorICAgICAgICAgKiAgICAgIHV0Y1RpbWVOcyA9IHRpbWVOcyAtIChmdWxsQmlhc05zICsgYmlhc05zKSAtIGxlYXBTZWNvbmQgKgorICAgICAgICAgKiAgICAgIDEsMDAwLDAwMCwwMDAKKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhpcyBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19MRUFQX1NFQ09ORC4KKyAgICAgICAgICovCisgICAgICAgIGludDE2X3QgbGVhcFNlY29uZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIEdOU1MgcmVjZWl2ZXIgaW50ZXJuYWwgY2xvY2sgdmFsdWUuIFRoaXMgaXMgdGhlIGxvY2FsIGhhcmR3YXJlIGNsb2NrCisgICAgICAgICAqIHZhbHVlLgorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgbG9jYWwgaGFyZHdhcmUgY2xvY2ssIHRoaXMgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gYmUgbW9ub3RvbmljYWxseQorICAgICAgICAgKiBpbmNyZWFzaW5nIHdoaWxlIHRoZSBoYXJkd2FyZSBjbG9jayByZW1haW5zIHBvd2VyZWQgb24uIChGb3IgdGhlIGNhc2Ugb2YgYQorICAgICAgICAgKiBIVyBjbG9jayB0aGF0IGlzIG5vdCBjb250aW51b3VzbHkgb24sIHNlZSB0aGUKKyAgICAgICAgICogaHdDbG9ja0Rpc2NvbnRpbnVpdHlDb3VudCBmaWVsZCkuIFRoZSByZWNlaXZlcidzIGVzdGltYXRlIG9mIEdOU1MgdGltZQorICAgICAgICAgKiBjYW4gYmUgZGVyaXZlZCBieSBzdWJ0cmFjdGluZyB0aGUgc3VtIG9mIGZ1bGxCaWFzTnMgYW5kIGJpYXNOcyAod2hlbgorICAgICAgICAgKiBhdmFpbGFibGUpIGZyb20gdGhpcyB2YWx1ZS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBHTlNTIHRpbWUgbXVzdCBiZSB0aGUgYmVzdCBlc3RpbWF0ZSBvZiBjdXJyZW50IEdOU1MgdGltZQorICAgICAgICAgKiB0aGF0IEdOU1MgcmVjZWl2ZXIgY2FuIGFjaGlldmUuCisgICAgICAgICAqCisgICAgICAgICAqIFN1Yi1uYW5vc2Vjb25kIGFjY3VyYWN5IGNhbiBiZSBwcm92aWRlZCBieSBtZWFucyBvZiB0aGUgJ2JpYXNOcycgZmllbGQuCisgICAgICAgICAqIFRoZSB2YWx1ZSBjb250YWlucyB0aGUgdGltZVVuY2VydGFpbnR5TnMgaW4gaXQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgZmllbGQgaXMgbWFuZGF0b3J5LgorICAgICAgICAgKi8KKyAgICAgICAgaW50NjRfdCB0aW1lTnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEtU2lnbWEgdW5jZXJ0YWludHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbG9jaydzIHRpbWUgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqIFRoZSB1bmNlcnRhaW50eSBpcyByZXByZXNlbnRlZCBhcyBhbiBhYnNvbHV0ZSAoc2luZ2xlIHNpZGVkKSB2YWx1ZS4KKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlLCBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4KKyAgICAgICAgICogSEFTX1RJTUVfVU5DRVJUQUlOVFkuIFRocyB2YWx1ZSBpcyBpZGVhbGx5IHplcm8sIGFzIHRoZSB0aW1lCisgICAgICAgICAqICdsYXRjaGVkJyBieSB0aW1lTnMgaXMgZGVmaW5lZCBhcyB0aGUgcmVmZXJlbmNlIGNsb2NrIHZzLiB3aGljaCBhbGwKKyAgICAgICAgICogb3RoZXIgdGltZXMgKGFuZCBjb3JyZXNwb25kaW5nIHVuY2VydGFpbnRpZXMpIGFyZSBtZWFzdXJlZC4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSB0aW1lVW5jZXJ0YWludHlOczsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBoYXJkd2FyZSBjbG9jayAoJ3RpbWUnIGZpZWxkKSBpbnNpZGUgR05TUyByZWNlaXZlcgorICAgICAgICAgKiBhbmQgdGhlIHRydWUgR05TUyB0aW1lIHNpbmNlIDAwMDBaLCBKYW51YXJ5IDYsIDE5ODAsIGluIG5hbm9zZWNvbmRzLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgc2lnbiBvZiB0aGUgdmFsdWUgaXMgZGVmaW5lZCBieSB0aGUgZm9sbG93aW5nIGVxdWF0aW9uOgorICAgICAgICAgKiAgICAgIGxvY2FsIGVzdGltYXRlIG9mIEdOU1MgdGltZSA9IHRpbWVOcyAtIChmdWxsQmlhc05zICsgYmlhc05zKQorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIHZhbHVlIGlzIG1hbmRhdG9yeSBpZiB0aGUgcmVjZWl2ZXIgaGFzIGVzdGltYXRlZCBHTlNTIHRpbWUuIElmIHRoZQorICAgICAgICAgKiBjb21wdXRlZCB0aW1lIGlzIGZvciBhIG5vbi1HTlNTIGNvbnN0ZWxsYXRpb24sIHRoZSB0aW1lIG9mZnNldCBvZiB0aGF0CisgICAgICAgICAqIGNvbnN0ZWxsYXRpb24gdG8gR05TUyBoYXMgdG8gYmUgYXBwbGllZCB0byBmaWxsIHRoaXMgdmFsdWUuIFRoZSBlcnJvcgorICAgICAgICAgKiBlc3RpbWF0ZSBmb3IgdGhlIHN1bSBvZiB0aGlzIGFuZCB0aGUgYmlhc05zIGlzIHRoZSBiaWFzVW5jZXJ0YWludHlOcywKKyAgICAgICAgICogYW5kIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHVzaW5nIHRoaXMgdW5jZXJ0YWludHkgKGl0IGNhbiBiZSB2ZXJ5CisgICAgICAgICAqIGxhcmdlIGJlZm9yZSB0aGUgR05TUyB0aW1lIGhhcyBiZWVuIHNvbHZlZCBmb3IuKSBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUKKyAgICAgICAgICogZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluIEhBU19GVUxMX0JJQVMuCisgICAgICAgICAqLworICAgICAgICBpbnQ2NF90IGZ1bGxCaWFzTnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN1Yi1uYW5vc2Vjb25kIGJpYXMuCisgICAgICAgICAqIFRoZSBlcnJvciBlc3RpbWF0ZSBmb3IgdGhlIHN1bSBvZiB0aGlzIGFuZCB0aGUgZnVsbEJpYXNOcyBpcyB0aGUKKyAgICAgICAgICogYmlhc1VuY2VydGFpbnR5TnMuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4gSEFTX0JJQVMuIElmIEdOU1MKKyAgICAgICAgICogaGFzIGNvbXB1dGVkIGEgcG9zaXRpb24gZml4LiBUaGlzIHZhbHVlIGlzIG1hbmRhdG9yeSBpZiB0aGUgcmVjZWl2ZXIgaGFzCisgICAgICAgICAqIGVzdGltYXRlZCBHTlNTIHRpbWUuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgYmlhc05zOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAxLVNpZ21hIHVuY2VydGFpbnR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9jYWwgZXN0aW1hdGUgb2YgR05TUyB0aW1lIChjbG9jaworICAgICAgICAgKiBiaWFzKSBpbiBuYW5vc2Vjb25kcy4gVGhlIHVuY2VydGFpbnR5IGlzIHJlcHJlc2VudGVkIGFzIGFuIGFic29sdXRlCisgICAgICAgICAqIChzaW5nbGUgc2lkZWQpIHZhbHVlLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19CSUFTX1VOQ0VSVEFJTlRZLiBUaGlzIHZhbHVlIGlzIG1hbmRhdG9yeSBpZiB0aGUgcmVjZWl2ZXIKKyAgICAgICAgICogaGFzIGVzdGltYXRlZCBHTlNTIHRpbWUuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgYmlhc1VuY2VydGFpbnR5TnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjbG9jaydzIGRyaWZ0IGluIG5hbm9zZWNvbmRzIChwZXIgc2Vjb25kKS4KKyAgICAgICAgICoKKyAgICAgICAgICogQSBwb3NpdGl2ZSB2YWx1ZSBtZWFucyB0aGF0IHRoZSBmcmVxdWVuY3kgaXMgaGlnaGVyIHRoYW4gdGhlIG5vbWluYWwKKyAgICAgICAgICogZnJlcXVlbmN5LCBhbmQgdGhhdCB0aGUgKGZ1bGxCaWFzTnMgKyBiaWFzTnMpIGlzIGdyb3dpbmcgbW9yZSBwb3NpdGl2ZQorICAgICAgICAgKiBvdmVyIHRpbWUuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSB2YWx1ZSBjb250YWlucyB0aGUgJ2RyaWZ0IHVuY2VydGFpbnR5JyBpbiBpdC4KKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlIGduc3NDbG9ja0ZsYWdzIG11c3QgY29udGFpbiBIQVNfRFJJRlQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgdmFsdWUgaXMgbWFuZGF0b3J5IGlmIHRoZSByZWNlaXZlciBoYXMgZXN0aW1hdGVkIEdOU1MgdGltZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBkcmlmdE5zcHM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEtU2lnbWEgdW5jZXJ0YWludHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbG9jaydzIGRyaWZ0IGluIG5hbm9zZWNvbmRzIChwZXIKKyAgICAgICAgICogc2Vjb25kKS4KKyAgICAgICAgICogVGhlIHVuY2VydGFpbnR5IGlzIHJlcHJlc2VudGVkIGFzIGFuIGFic29sdXRlIChzaW5nbGUgc2lkZWQpIHZhbHVlLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19EUklGVF9VTkNFUlRBSU5UWS4gSWYgR05TUyBoYXMgY29tcHV0ZWQgYSBwb3NpdGlvbiBmaXggdGhpcworICAgICAgICAgKiBmaWVsZCBpcyBtYW5kYXRvcnkgYW5kIG11c3QgYmUgcG9wdWxhdGVkLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGRyaWZ0VW5jZXJ0YWludHlOc3BzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBXaGVuIHRoZXJlIGFyZSBhbnkgZGlzY29udGludWl0aWVzIGluIHRoZSBIVyBjbG9jaywgdGhpcyBmaWVsZCBpcworICAgICAgICAgKiBtYW5kYXRvcnkuCisgICAgICAgICAqCisgICAgICAgICAqIEEgImRpc2NvbnRpbnVpdHkiIGlzIG1lYW50IHRvIGNvdmVyIHRoZSBjYXNlIG9mIGEgc3dpdGNoIGZyb20gb25lIHNvdXJjZQorICAgICAgICAgKiBvZiBjbG9jayB0byBhbm90aGVyLiAgQSBzaW5nbGUgZnJlZS1ydW5uaW5nIGNyeXN0YWwgb3NjaWxsYXRvciAoWE8pCisgICAgICAgICAqIHdpbGwgZ2VuZXJhbGx5IG5vdCBoYXZlIGFueSBkaXNjb250aW51aXRpZXMsIGFuZCB0aGlzIGNhbiBiZSBzZXQgYW5kCisgICAgICAgICAqIGxlZnQgYXQgMC4KKyAgICAgICAgICoKKyAgICAgICAgICogSWYsIGhvd2V2ZXIsIHRoZSB0aW1lTnMgdmFsdWUgKEhXIGNsb2NrKSBpcyBkZXJpdmVkIGZyb20gYSBjb21wb3NpdGUgb2YKKyAgICAgICAgICogc291cmNlcywgdGhhdCBpcyBub3QgYXMgc21vb3RoIGFzIGEgdHlwaWNhbCBYTywgb3IgaXMgb3RoZXJ3aXNlIHN0b3BwZWQgJgorICAgICAgICAgKiByZXN0YXJ0ZWQsIHRoZW4gdGhpcyB2YWx1ZSBzaGFsbCBiZSBpbmNyZW1lbnRlZCBlYWNoIHRpbWUgYSBkaXNjb250aW51aXR5CisgICAgICAgICAqIG9jY3Vycy4gIChFLmcuIHRoaXMgdmFsdWUgY2FuIHN0YXJ0IGF0IHplcm8gYXQgZGV2aWNlIGJvb3QtdXAgYW5kCisgICAgICAgICAqIGluY3JlbWVudCBlYWNoIHRpbWUgdGhlcmUgaXMgYSBjaGFuZ2UgaW4gY2xvY2sgY29udGludWl0eS4gSW4gdGhlCisgICAgICAgICAqIHVubGlrZWx5IGV2ZW50IHRoYXQgdGhpcyB2YWx1ZSByZWFjaGVzIGZ1bGwgc2NhbGUsIHJvbGxvdmVyIChub3QKKyAgICAgICAgICogY2xhbXBpbmcpIGlzIHJlcXVpcmVkLCBzdWNoIHRoYXQgdGhpcyB2YWx1ZSBjb250aW51ZXMgdG8gY2hhbmdlLCBkdXJpbmcKKyAgICAgICAgICogc3Vic2VxdWVudCBkaXNjb250aW51aXR5IGV2ZW50cy4pCisgICAgICAgICAqCisgICAgICAgICAqIFdoaWxlIHRoaXMgbnVtYmVyIHN0YXlzIHRoZSBzYW1lLCBiZXR3ZWVuIEduc3NDbG9jayByZXBvcnRzLCBpdCBjYW4gYmUKKyAgICAgICAgICogc2FmZWx5IGFzc3VtZWQgdGhhdCB0aGUgdGltZU5zIHZhbHVlIGhhcyBiZWVuIHJ1bm5pbmcgY29udGludW91c2x5LCBlLmcuCisgICAgICAgICAqIGRlcml2ZWQgZnJvbSBhIHNpbmdsZSwgaGlnaCBxdWFsaXR5IGNsb2NrIChYTyBsaWtlLCBvciBiZXR0ZXIsIHRoYXQgaXMKKyAgICAgICAgICogdHlwaWNhbGx5IHVzZWQgZHVyaW5nIGNvbnRpbnVvdXMgR05TUyBzaWduYWwgc2FtcGxpbmcuKQorICAgICAgICAgKgorICAgICAgICAgKiBJdCBpcyBleHBlY3RlZCwgZXNwLiBkdXJpbmcgcGVyaW9kcyB3aGVyZSB0aGVyZSBhcmUgZmV3IEdOU1Mgc2lnbmFscworICAgICAgICAgKiBhdmFpbGFibGUsIHRoYXQgdGhlIEhXIGNsb2NrIGJlIGRpc2NvbnRpbnVpdHktZnJlZSBhcyBsb25nIGFzIHBvc3NpYmxlLAorICAgICAgICAgKiBhcyB0aGlzIGF2b2lkcyB0aGUgbmVlZCB0byB1c2UgKHdhc3RlKSBhIEdOU1MgbWVhc3VyZW1lbnQgdG8gZnVsbHkKKyAgICAgICAgICogcmUtc29sdmUgZm9yIHRoZSBHTlNTIGNsb2NrIGJpYXMgYW5kIGRyaWZ0LCB3aGVuIHVzaW5nIHRoZSBhY2NvbXBhbnlpbmcKKyAgICAgICAgICogbWVhc3VyZW1lbnRzLCBmcm9tIGNvbnNlY3V0aXZlIEduc3NEYXRhIHJlcG9ydHMuCisgICAgICAgICAqLworICAgICAgICB1aW50MzJfdCBod0Nsb2NrRGlzY29udGludWl0eUNvdW50OworCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgYSBHTlNTIE1lYXN1cmVtZW50LCBpdCBjb250YWlucyByYXcgYW5kIGNvbXB1dGVkIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQWxsIHNpZ25hbCBtZWFzdXJlbWVudCBpbmZvcm1hdGlvbiAoZS5nLiBzdlRpbWUsCisgICAgICogcHNldWRvcmFuZ2VSYXRlLCBtdWx0aXBhdGhJbmRpY2F0b3IpIHJlcG9ydGVkIGluIHRoaXMgc3RydWN0IG11c3QgYmUKKyAgICAgKiBiYXNlZCBvbiBHTlNTIHNpZ25hbCBtZWFzdXJlbWVudHMgb25seS4gWW91IG11c3Qgbm90IHN5bnRoZXNpemUgbWVhc3VyZW1lbnRzCisgICAgICogYnkgY2FsY3VsYXRpbmcgb3IgcmVwb3J0aW5nIGV4cGVjdGVkIG1lYXN1cmVtZW50cyBiYXNlZCBvbiBrbm93biBvciBlc3RpbWF0ZWQKKyAgICAgKiBwb3NpdGlvbiwgdmVsb2NpdHksIG9yIHRpbWUuCisgICAgICovCisgICAgc3RydWN0IEduc3NNZWFzdXJlbWVudHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgc2V0IG9mIGZsYWdzIGluZGljYXRpbmcgdGhlIHZhbGlkaXR5IG9mIHRoZSBmaWVsZHMgaW4gdGhpcyBkYXRhCisgICAgICAgICAqIHN0cnVjdHVyZS4KKyAgICAgICAgICovCisgICAgICAgIGJpdGZpZWxkPEduc3NNZWFzdXJlbWVudEZsYWdzPiBmbGFnczsKKworICAgICAgICAvKioKKyAgICAgICAgICogU2F0ZWxsaXRlIHZlaGljbGUgSUQgbnVtYmVyLCBhcyBkZWZpbmVkIGluIEduc3NTdkluZm86OnN2aWQKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGludDE2X3Qgc3ZpZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGVmaW5lcyB0aGUgY29uc3RlbGxhdGlvbiBvZiB0aGUgZ2l2ZW4gU1YuCisgICAgICAgICAqLworICAgICAgICBHbnNzQ29uc3RlbGxhdGlvblR5cGUgY29uc3RlbGxhdGlvbjsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGltZSBvZmZzZXQgYXQgd2hpY2ggdGhlIG1lYXN1cmVtZW50IHdhcyB0YWtlbiBpbiBuYW5vc2Vjb25kcy4KKyAgICAgICAgICogVGhlIHJlZmVyZW5jZSByZWNlaXZlcidzIHRpbWUgaXMgc3BlY2lmaWVkIGJ5IEduc3NEYXRhOjpjbG9jazo6dGltZU5zLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgc2lnbiBvZiB0aW1lT2Zmc2V0TnMgaXMgZ2l2ZW4gYnkgdGhlIGZvbGxvd2luZyBlcXVhdGlvbjoKKyAgICAgICAgICogICAgICBtZWFzdXJlbWVudCB0aW1lID0gR25zc0Nsb2NrOjp0aW1lTnMgKyB0aW1lT2Zmc2V0TnMKKyAgICAgICAgICoKKyAgICAgICAgICogSXQgcHJvdmlkZXMgYW4gaW5kaXZpZHVhbCB0aW1lLXN0YW1wIGZvciB0aGUgbWVhc3VyZW1lbnQsIGFuZCBhbGxvd3MKKyAgICAgICAgICogc3ViLW5hbm9zZWNvbmQgYWNjdXJhY3kuCisgICAgICAgICAqIFRoaXMgaXMgYSBtYW5kYXRvcnkgdmFsdWUuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgdGltZU9mZnNldE5zOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBQZXIgc2F0ZWxsaXRlIHN5bmMgc3RhdGUuIEl0IHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgc3luYyBzdGF0ZSBmb3IgdGhlCisgICAgICAgICAqIGFzc29jaWF0ZWQgc2F0ZWxsaXRlLgorICAgICAgICAgKiBCYXNlZCBvbiB0aGUgc3luYyBzdGF0ZSwgdGhlICdyZWNlaXZlZCBHTlNTIHRvdycgZmllbGQgbXVzdCBiZSBpbnRlcnByZXRlZAorICAgICAgICAgKiBhY2NvcmRpbmdseS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGJpdGZpZWxkPEduc3NNZWFzdXJlbWVudFN0YXRlPiBzdGF0ZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHJlY2VpdmVkIEdOU1MgVGltZS1vZi1XZWVrIGF0IHRoZSBtZWFzdXJlbWVudCB0aW1lLCBpbiBuYW5vc2Vjb25kcy4KKyAgICAgICAgICogRm9yIEdOU1MgJiBRWlNTLCB0aGlzIGlzIHRoZSByZWNlaXZlZCBHTlNTIFRpbWUtb2YtV2VlayBhdCB0aGUKKyAgICAgICAgICogbWVhc3VyZW1lbnQgdGltZSwgaW4gbmFub3NlY29uZHMuIFRoZSB2YWx1ZSBpcyByZWxhdGl2ZSB0byB0aGUKKyAgICAgICAgICogYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IEdOU1Mgd2Vlay4KKyAgICAgICAgICoKKyAgICAgICAgICogR2l2ZW4gdGhlIGhpZ2hlc3Qgc3luYyBzdGF0ZSB0aGF0IGNhbiBiZSBhY2hpZXZlZCwgcGVyIGVhY2ggc2F0ZWxsaXRlLAorICAgICAgICAgKiB2YWxpZCByYW5nZSBmb3IgdGhpcyBmaWVsZCBjYW4gYmU6CisgICAgICAgICAqIFNlYXJjaGluZyAgICAgICA6IFsgMCAgICAgICBdIDogU1RBVEVfVU5LTk9XTgorICAgICAgICAgKiBDL0EgY29kZSBsb2NrICAgOiBbIDAgMW1zICAgXSA6IFNUQVRFX0NPREVfTE9DSyBzZXQKKyAgICAgICAgICogQml0IHN5bmMgICAgICAgIDogWyAwIDIwbXMgIF0gOiBTVEFURV9CSVRfU1lOQyBzZXQKKyAgICAgICAgICogU3ViZnJhbWUgc3luYyAgIDogWyAwICA2cyAgIF0gOiBTVEFURV9TVUJGUkFNRV9TWU5DIHNldAorICAgICAgICAgKiBUT1cgZGVjb2RlZCAgICAgOiBbIDAgMXdlZWsgXSA6IFNUQVRFX1RPV19ERUNPREVEIHNldAorICAgICAgICAgKiBUT1cgS25vd24gICAgICAgOiBbIDAgMXdlZWsgXSA6IFNUQVRFX1RPV19LTk9XTiBzZXQKKyAgICAgICAgICoKKyAgICAgICAgICogTm90ZTogVE9XIEtub3duIHJlZmVycyB0byB0aGUgY2FzZSB3aGVyZSBUT1cgaXMgcG9zc2libHkgbm90IGRlY29kZWQKKyAgICAgICAgICogb3ZlciB0aGUgYWlyIGJ1dCBoYXMgYmVlbiBkZXRlcm1pbmVkIGZyb20gb3RoZXIgc291cmNlcy4gSWYgVE9XCisgICAgICAgICAqIGRlY29kZWQgaXMgc2V0IHRoZW4gVE9XIEtub3duIG11c3QgYWxzbyBiZSBzZXQuCisgICAgICAgICAqCisgICAgICAgICAqIE5vdGU6IElmIHRoZXJlIGlzIGFueSBhbWJpZ3VpdHkgaW4gaW50ZWdlciBtaWxsaXNlY29uZCwKKyAgICAgICAgICogR05TU19NRUFTVVJFTUVOVF9TVEFURV9NU0VDX0FNQklHVU9VUyBtdXN0IGJlIHNldCBhY2NvcmRpbmdseSwgaW4gdGhlCisgICAgICAgICAqICdzdGF0ZScgZmllbGQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgdmFsdWUgbXVzdCBiZSBwb3B1bGF0ZWQgaWYgJ3N0YXRlJyAhPSBTVEFURV9VTktOT1dOLgorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgR2xvbmFzcywgdGhpcyBpcyB0aGUgcmVjZWl2ZWQgR2xvbmFzcyB0aW1lIG9mIGRheSwgYXQgdGhlCisgICAgICAgICAqIG1lYXN1cmVtZW50IHRpbWUgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqCisgICAgICAgICAqIEdpdmVuIHRoZSBoaWdoZXN0IHN5bmMgc3RhdGUgdGhhdCBjYW4gYmUgYWNoaWV2ZWQsIHBlciBlYWNoIHNhdGVsbGl0ZSwKKyAgICAgICAgICogdmFsaWQgcmFuZ2UgZm9yIHRoaXMgZmllbGQgY2FuIGJlOgorICAgICAgICAgKiBTZWFyY2hpbmcgICAgICAgICAgIDogWyAwICAgICAgIF0gOiBTVEFURV9VTktOT1dOIHNldAorICAgICAgICAgKiBDL0EgY29kZSBsb2NrICAgICAgIDogWyAwICAgMW1zIF0gOiBTVEFURV9DT0RFX0xPQ0sgc2V0CisgICAgICAgICAqIFN5bWJvbCBzeW5jICAgICAgICAgOiBbIDAgIDEwbXMgXSA6IFNUQVRFX1NZTUJPTF9TWU5DIHNldAorICAgICAgICAgKiBCaXQgc3luYyAgICAgICAgICAgIDogWyAwICAyMG1zIF0gOiBTVEFURV9CSVRfU1lOQyBzZXQKKyAgICAgICAgICogU3RyaW5nIHN5bmMgICAgICAgICA6IFsgMCAgICAycyBdIDogU1RBVEVfR0xPX1NUUklOR19TWU5DIHNldAorICAgICAgICAgKiBUaW1lIG9mIGRheSBkZWNvZGVkIDogWyAwICAxZGF5IF0gOiBTVEFURV9HTE9fVE9EX0RFQ09ERUQgc2V0CisgICAgICAgICAqIFRpbWUgb2YgZGF5IGtub3duICAgOiBbIDAgIDFkYXkgXSA6IFNUQVRFX0dMT19UT0RfS05PV04gc2V0CisgICAgICAgICAqCisgICAgICAgICAqIE5vdGU6IFRpbWUgb2YgZGF5IGtub3duIHJlZmVycyB0byB0aGUgY2FzZSB3aGVyZSBpdCBpcyBwb3NzaWJseSBub3QKKyAgICAgICAgICogZGVjb2RlZCBvdmVyIHRoZSBhaXIgYnV0IGhhcyBiZWVuIGRldGVybWluZWQgZnJvbSBvdGhlciBzb3VyY2VzLiBJZgorICAgICAgICAgKiBUaW1lIG9mIGRheSBkZWNvZGVkIGlzIHNldCB0aGVuIFRpbWUgb2YgZGF5IGtub3duIG11c3QgYWxzbyBiZSBzZXQuCisgICAgICAgICAqCisgICAgICAgICAqIEZvciBCZWlkb3UsIHRoaXMgaXMgdGhlIHJlY2VpdmVkIEJlaWRvdSB0aW1lIG9mIHdlZWssCisgICAgICAgICAqIGF0IHRoZSBtZWFzdXJlbWVudCB0aW1lIGluIG5hbm9zZWNvbmRzLgorICAgICAgICAgKgorICAgICAgICAgKiBHaXZlbiB0aGUgaGlnaGVzdCBzeW5jIHN0YXRlIHRoYXQgY2FuIGJlIGFjaGlldmVkLCBwZXIgZWFjaCBzYXRlbGxpdGUsCisgICAgICAgICAqIHZhbGlkIHJhbmdlIGZvciB0aGlzIGZpZWxkIGNhbiBiZToKKyAgICAgICAgICogU2VhcmNoaW5nICAgICAgICAgICAgOiBbIDAgICAgICAgXSA6IFNUQVRFX1VOS05PV04gc2V0LgorICAgICAgICAgKiBDL0EgY29kZSBsb2NrICAgICAgICA6IFsgMCAgIDFtcyBdIDogU1RBVEVfQ09ERV9MT0NLIHNldC4KKyAgICAgICAgICogQml0IHN5bmMgKEQyKSAgICAgICAgOiBbIDAgICAybXMgXSA6IFNUQVRFX0JEU19EMl9CSVRfU1lOQyBzZXQuCisgICAgICAgICAqIEJpdCBzeW5jIChEMSkgICAgICAgIDogWyAwICAyMG1zIF0gOiBTVEFURV9CSVRfU1lOQyBzZXQuCisgICAgICAgICAqIFN1YmZyYW1lIChEMikgICAgICAgIDogWyAwICAwLjZzIF0gOiBTVEFURV9CRFNfRDJfU1VCRlJBTUVfU1lOQyBzZXQuCisgICAgICAgICAqIFN1YmZyYW1lIChEMSkgICAgICAgIDogWyAwICAgIDZzIF0gOiBTVEFURV9TVUJGUkFNRV9TWU5DIHNldC4KKyAgICAgICAgICogVGltZSBvZiB3ZWVrIGRlY29kZWQgOiBbIDAgMXdlZWsgXSA6IFNUQVRFX1RPV19ERUNPREVEIHNldC4KKyAgICAgICAgICogVGltZSBvZiB3ZWVrIGtub3duICAgOiBbIDAgMXdlZWsgXSA6IFNUQVRFX1RPV19LTk9XTiBzZXQKKyAgICAgICAgICoKKyAgICAgICAgICogTm90ZTogVE9XIEtub3duIHJlZmVycyB0byB0aGUgY2FzZSB3aGVyZSBUT1cgaXMgcG9zc2libHkgbm90IGRlY29kZWQKKyAgICAgICAgICogb3ZlciB0aGUgYWlyIGJ1dCBoYXMgYmVlbiBkZXRlcm1pbmVkIGZyb20gb3RoZXIgc291cmNlcy4gSWYgVE9XCisgICAgICAgICAqIGRlY29kZWQgaXMgc2V0IHRoZW4gVE9XIEtub3duIG11c3QgYWxzbyBiZSBzZXQuCisgICAgICAgICAqCisgICAgICAgICAqIEZvciBHYWxpbGVvLCB0aGlzIGlzIHRoZSByZWNlaXZlZCBHYWxpbGVvIHRpbWUgb2Ygd2VlaywKKyAgICAgICAgICogYXQgdGhlIG1lYXN1cmVtZW50IHRpbWUgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqCisgICAgICAgICAqIEUxQkMgY29kZSBsb2NrICAgICAgIDogWyAwICA0bXMgXSA6IFNUQVRFX0dBTF9FMUJDX0NPREVfTE9DSyBzZXQuCisgICAgICAgICAqIEUxQyAybmQgY29kZSBsb2NrICAgIDogWyAwIDEwMG1zXSA6IFNUQVRFX0dBTF9FMUNfMk5EX0NPREVfTE9DSyBzZXQuCisgICAgICAgICAqIEUxQiBwYWdlICAgICAgICAgICAgIDogWyAwICAgMnMgXSA6IFNUQVRFX0dBTF9FMUJfUEFHRV9TWU5DIHNldC4KKyAgICAgICAgICogVGltZSBvZiB3ZWVrIGRlY29kZWQgOiBbIDAgMXdlZWtdIDogU1RBVEVfVE9XX0RFQ09ERUQgaXMgc2V0LgorICAgICAgICAgKiBUaW1lIG9mIHdlZWsga25vd24gICA6IFsgMCAxd2Vla10gOiBTVEFURV9UT1dfS05PV04gc2V0CisgICAgICAgICAqCisgICAgICAgICAqIE5vdGU6IFRPVyBLbm93biByZWZlcnMgdG8gdGhlIGNhc2Ugd2hlcmUgVE9XIGlzIHBvc3NpYmx5IG5vdCBkZWNvZGVkCisgICAgICAgICAqIG92ZXIgdGhlIGFpciBidXQgaGFzIGJlZW4gZGV0ZXJtaW5lZCBmcm9tIG90aGVyIHNvdXJjZXMuIElmIFRPVworICAgICAgICAgKiBkZWNvZGVkIGlzIHNldCB0aGVuIFRPVyBLbm93biBtdXN0IGFsc28gYmUgc2V0LgorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgU0JBUywgdGhpcyBpcyByZWNlaXZlZCBTQkFTIHRpbWUsIGF0IHRoZSBtZWFzdXJlbWVudCB0aW1lIGluCisgICAgICAgICAqIG5hbm9zZWNvbmRzLgorICAgICAgICAgKgorICAgICAgICAgKiBHaXZlbiB0aGUgaGlnaGVzdCBzeW5jIHN0YXRlIHRoYXQgY2FuIGJlIGFjaGlldmVkLCBwZXIgZWFjaCBzYXRlbGxpdGUsCisgICAgICAgICAqIHZhbGlkIHJhbmdlIGZvciB0aGlzIGZpZWxkIGNhbiBiZToKKyAgICAgICAgICogU2VhcmNoaW5nICAgIDogWyAwICAgICBdIDogU1RBVEVfVU5LTk9XTgorICAgICAgICAgKiBDL0EgY29kZSBsb2NrOiBbIDAgMW1zIF0gOiBTVEFURV9DT0RFX0xPQ0sgaXMgc2V0CisgICAgICAgICAqIFN5bWJvbCBzeW5jICA6IFsgMCAybXMgXSA6IFNUQVRFX1NZTUJPTF9TWU5DIGlzIHNldAorICAgICAgICAgKiBNZXNzYWdlICAgICAgOiBbIDAgIDFzIF0gOiBTVEFURV9TQkFTX1NZTkMgaXMgc2V0CisgICAgICAgICAqLworICAgICAgICBpbnQ2NF90IHJlY2VpdmVkU3ZUaW1lSW5OczsKKworICAgICAgICAvKioKKyAgICAgICAgICogMS1TaWdtYSB1bmNlcnRhaW50eSBvZiB0aGUgUmVjZWl2ZWQgR05TUyBUaW1lLW9mLVdlZWsgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgdmFsdWUgbXVzdCBiZSBwb3B1bGF0ZWQgaWYgJ3N0YXRlJyAhPSBTVEFURV9VTktOT1dOLgorICAgICAgICAgKi8KKyAgICAgICAgaW50NjRfdCByZWNlaXZlZFN2VGltZVVuY2VydGFpbnR5SW5OczsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2Fycmllci10by1ub2lzZSBkZW5zaXR5IGluIGRCLUh6LCB0eXBpY2FsbHkgaW4gdGhlIHJhbmdlIFswLCA2M10uCisgICAgICAgICAqIEl0IGNvbnRhaW5zIHRoZSBtZWFzdXJlZCBDL04wIHZhbHVlIGZvciB0aGUgc2lnbmFsIGF0IHRoZSBhbnRlbm5hIHBvcnQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgaXMgYSBtYW5kYXRvcnkgdmFsdWUuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgY04wRGJIejsKKworICAgICAgICAvKioKKyAgICAgICAgICogUHNldWRvcmFuZ2UgcmF0ZSBhdCB0aGUgdGltZXN0YW1wIGluIG0vcy4gVGhlIGNvcnJlY3Rpb24gb2YgYSBnaXZlbgorICAgICAgICAgKiBQc2V1ZG9yYW5nZSBSYXRlIHZhbHVlIGluY2x1ZGVzIGNvcnJlY3Rpb25zIGZvciByZWNlaXZlciBhbmQgc2F0ZWxsaXRlCisgICAgICAgICAqIGNsb2NrIGZyZXF1ZW5jeSBlcnJvcnMuIEVuc3VyZSB0aGF0IHRoaXMgZmllbGQgaXMgaW5kZXBlbmRlbnQgKHNlZQorICAgICAgICAgKiBjb21tZW50IGF0IHRvcCBvZiBHbnNzTWVhc3VyZW1lbnQgc3RydWN0LikKKyAgICAgICAgICoKKyAgICAgICAgICogSXQgaXMgbWFuZGF0b3J5IHRvIHByb3ZpZGUgdGhlICd1bmNvcnJlY3RlZCcgJ3BzZXVkb3JhbmdlIHJhdGUnLCBhbmQKKyAgICAgICAgICogcHJvdmlkZSBHbnNzQ2xvY2sncyAnZHJpZnQnIGZpZWxkIGFzIHdlbGwuIFdoZW4gcHJvdmlkaW5nIHRoZQorICAgICAgICAgKiB1bmNvcnJlY3RlZCBwc2V1ZG9yYW5nZSByYXRlLCBkbyBub3QgYXBwbHkgdGhlIGNvcnJlY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4pCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSB2YWx1ZSBpbmNsdWRlcyB0aGUgJ3BzZXVkb3JhbmdlIHJhdGUgdW5jZXJ0YWludHknIGluIGl0LgorICAgICAgICAgKiBBIHBvc2l0aXZlICd1bmNvcnJlY3RlZCcgdmFsdWUgaW5kaWNhdGVzIHRoYXQgdGhlIFNWIGlzIG1vdmluZyBhd2F5IGZyb20KKyAgICAgICAgICogdGhlIHJlY2VpdmVyLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgc2lnbiBvZiB0aGUgJ3VuY29ycmVjdGVkJyAncHNldWRvcmFuZ2UgcmF0ZScgYW5kIGl0cyByZWxhdGlvbiB0byB0aGUKKyAgICAgICAgICogc2lnbiBvZiAnZG9wcGxlciBzaGlmdCcgaXMgZ2l2ZW4gYnkgdGhlIGVxdWF0aW9uOgorICAgICAgICAgKiAgICAgIHBzZXVkb3JhbmdlIHJhdGUgPSAtayAqIGRvcHBsZXIgc2hpZnQgICAod2hlcmUgayBpcyBhIGNvbnN0YW50KQorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIG11c3QgYmUgdGhlIG1vc3QgYWNjdXJhdGUgcHNldWRvcmFuZ2UgcmF0ZSBhdmFpbGFibGUsIGJhc2VkIG9uCisgICAgICAgICAqIGZyZXNoIHNpZ25hbCBtZWFzdXJlbWVudHMgZnJvbSB0aGlzIGNoYW5uZWwuCisgICAgICAgICAqCisgICAgICAgICAqIEl0IGlzIG1hbmRhdG9yeSB0aGF0IHRoaXMgdmFsdWUgYmUgcHJvdmlkZWQgYXQgdHlwaWNhbCBjYXJyaWVyIHBoYXNlIFBSUgorICAgICAgICAgKiBxdWFsaXR5IChmZXcgY20vc2VjIHBlciBzZWNvbmQgb2YgdW5jZXJ0YWludHksIG9yIGJldHRlcikgLSB3aGVuIHNpZ25hbHMKKyAgICAgICAgICogYXJlIHN1ZmZpY2llbnRseSBzdHJvbmcgJiBzdGFibGUsIGUuZy4gc2lnbmFscyBmcm9tIGEgR05TUyBzaW11bGF0b3IgYXQgPj0KKyAgICAgICAgICogMzUgZEItSHouCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgcHNldWRvcmFuZ2VSYXRlTXBzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAxLVNpZ21hIHVuY2VydGFpbnR5IG9mIHRoZSBwc2V1ZG9yYW5nZVJhdGVNcHMuCisgICAgICAgICAqIFRoZSB1bmNlcnRhaW50eSBpcyByZXByZXNlbnRlZCBhcyBhbiBhYnNvbHV0ZSAoc2luZ2xlIHNpZGVkKSB2YWx1ZS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBwc2V1ZG9yYW5nZVJhdGVVbmNlcnRhaW50eU1wczsKKworICAgICAgICAvKioKKyAgICAgICAgICogQWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2UncyBzdGF0ZS4gSXQgaW5kaWNhdGVzIHdoZXRoZXIgQURSIGlzIHJlc2V0IG9yCisgICAgICAgICAqIHRoZXJlIGlzIGEgY3ljbGUgc2xpcChpbmRpY2F0aW5nIGxvc3Mgb2YgbG9jaykuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgaXMgYSBtYW5kYXRvcnkgdmFsdWUuCisgICAgICAgICAqLworICAgICAgICBiaXRmaWVsZDxHbnNzQWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGU+IGFjY3VtdWxhdGVkRGVsdGFSYW5nZVN0YXRlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBY2N1bXVsYXRlZCBkZWx0YSByYW5nZSBzaW5jZSB0aGUgbGFzdCBjaGFubmVsIHJlc2V0IGluIG1ldGVycy4KKyAgICAgICAgICogQSBwb3NpdGl2ZSB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgU1YgaXMgbW92aW5nIGF3YXkgZnJvbSB0aGUgcmVjZWl2ZXIuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSBzaWduIG9mIHRoZSAnYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2UnIGFuZCBpdHMgcmVsYXRpb24gdG8gdGhlIHNpZ24gb2YKKyAgICAgICAgICogJ2NhcnJpZXIgcGhhc2UnIGlzIGdpdmVuIGJ5IHRoZSBlcXVhdGlvbjoKKyAgICAgICAgICogYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2UgPSAtayAqIGNhcnJpZXIgcGhhc2UgKHdoZXJlIGsgaXMgYSBjb25zdGFudCkKKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyB2YWx1ZSBtdXN0IGJlIHBvcHVsYXRlZCBpZiAnYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2Ugc3RhdGUnICE9CisgICAgICAgICAqIEFEUl9TVEFURV9VTktOT1dOLgorICAgICAgICAgKiBIb3dldmVyLCBpdCBpcyBleHBlY3RlZCB0aGF0IHRoZSBkYXRhIGlzIG9ubHkgYWNjdXJhdGUgd2hlbjoKKyAgICAgICAgICogICAgICAnYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2Ugc3RhdGUnID09IEFEUl9TVEFURV9WQUxJRC4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBhY2N1bXVsYXRlZERlbHRhUmFuZ2VNOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAxLVNpZ21hIHVuY2VydGFpbnR5IG9mIHRoZSBhY2N1bXVsYXRlZCBkZWx0YSByYW5nZSBpbiBtZXRlcnMuCisgICAgICAgICAqIFRoaXMgdmFsdWUgbXVzdCBiZSBwb3B1bGF0ZWQgaWYgJ2FjY3VtdWxhdGVkIGRlbHRhIHJhbmdlIHN0YXRlJyAhPQorICAgICAgICAgKiBBRFJfU1RBVEVfVU5LTk9XTi4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBhY2N1bXVsYXRlZERlbHRhUmFuZ2VVbmNlcnRhaW50eU07CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENhcnJpZXIgZnJlcXVlbmN5IG9mIHRoZSBzaWduYWwgdHJhY2tlZCwgZm9yIGV4YW1wbGUgaXQgY2FuIGJlIHRoZQorICAgICAgICAgKiBHUFMgY2VudHJhbCBmcmVxdWVuY3kgZm9yIEwxID0gMTU3NS40NSBNSHosIG9yIEwyID0gMTIyNy42MCBNSHosIEw1ID0KKyAgICAgICAgICogMTE3Ni40NSBNSHosIHZhcnlpbmcgR0xPIGNoYW5uZWxzLCBldGMuIElmIHRoZSBmaWVsZCBpcyBub3Qgc2V0LCBpdAorICAgICAgICAgKiBpcyB0aGUgcHJpbWFyeSBjb21tb24gdXNlIGNlbnRyYWwgZnJlcXVlbmN5LCBlLmcuIEwxID0gMTU3NS40NSBNSHoKKyAgICAgICAgICogZm9yIEdQUy4KKyAgICAgICAgICoKKyAgICAgICAgICogRm9yIGFuIEwxLCBMNSByZWNlaXZlciB0cmFja2luZyBhIHNhdGVsbGl0ZSBvbiBMMSBhbmQgTDUgYXQgdGhlIHNhbWUKKyAgICAgICAgICogdGltZSwgdHdvIHJhdyBtZWFzdXJlbWVudCBzdHJ1Y3RzIG11c3QgYmUgcmVwb3J0ZWQgZm9yIHRoaXMgc2FtZQorICAgICAgICAgKiBzYXRlbGxpdGUsIGluIG9uZSBvZiB0aGUgbWVhc3VyZW1lbnQgc3RydWN0cywgYWxsIHRoZSB2YWx1ZXMgcmVsYXRlZAorICAgICAgICAgKiB0byBMMSBtdXN0IGJlIGZpbGxlZCwgYW5kIGluIHRoZSBvdGhlciBhbGwgb2YgdGhlIHZhbHVlcyByZWxhdGVkIHRvCisgICAgICAgICAqIEw1IG11c3QgYmUgZmlsbGVkLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUsIGduc3NDbG9ja0ZsYWdzIG11c3QgY29udGFpbgorICAgICAgICAgKiBIQVNfQ0FSUklFUl9GUkVRVUVOQ1kuCisgICAgICAgICAqLworICAgICAgICBmbG9hdCBjYXJyaWVyRnJlcXVlbmN5SHo7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBudW1iZXIgb2YgZnVsbCBjYXJyaWVyIGN5Y2xlcyBiZXR3ZWVuIHRoZSBzYXRlbGxpdGUgYW5kIHRoZQorICAgICAgICAgKiByZWNlaXZlci4gVGhlIHJlZmVyZW5jZSBmcmVxdWVuY3kgaXMgZ2l2ZW4gYnkgdGhlIGZpZWxkCisgICAgICAgICAqICdjYXJyaWVyRnJlcXVlbmN5SHonLiBJbmRpY2F0aW9ucyBvZiBwb3NzaWJsZSBjeWNsZSBzbGlwcyBhbmQKKyAgICAgICAgICogcmVzZXRzIGluIHRoZSBhY2N1bXVsYXRpb24gb2YgdGhpcyB2YWx1ZSBjYW4gYmUgaW5mZXJyZWQgZnJvbSB0aGUKKyAgICAgICAgICogYWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGUgZmxhZ3MuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19DQVJSSUVSX0NZQ0xFUy4KKyAgICAgICAgICovCisgICAgICAgIGludDY0X3QgY2FycmllckN5Y2xlczsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIFJGIHBoYXNlIGRldGVjdGVkIGJ5IHRoZSByZWNlaXZlciwgaW4gdGhlIHJhbmdlIFswLjAsIDEuMF0uCisgICAgICAgICAqIFRoaXMgaXMgdXN1YWxseSB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBjb21wbGV0ZSBjYXJyaWVyIHBoYXNlCisgICAgICAgICAqIG1lYXN1cmVtZW50LgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgcmVmZXJlbmNlIGZyZXF1ZW5jeSBpcyBnaXZlbiBieSB0aGUgZmllbGQgJ2NhcnJpZXJGcmVxdWVuY3lIeicuCisgICAgICAgICAqIFRoZSB2YWx1ZSBjb250YWlucyB0aGUgJ2NhcnJpZXItcGhhc2UgdW5jZXJ0YWludHknIGluIGl0LgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUsIGduc3NDbG9ja0ZsYWdzIG11c3QgY29udGFpbgorICAgICAgICAgKiBIQVNfQ0FSUklFUl9QSEFTRS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBjYXJyaWVyUGhhc2U7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEtU2lnbWEgdW5jZXJ0YWludHkgb2YgdGhlIGNhcnJpZXItcGhhc2UuCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19DQVJSSUVSX1BIQVNFX1VOQ0VSVEFJTlRZLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGNhcnJpZXJQaGFzZVVuY2VydGFpbnR5OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBbiBlbnVtZXJhdGlvbiB0aGF0IGluZGljYXRlcyB0aGUgJ211bHRpcGF0aCcgc3RhdGUgb2YgdGhlIGV2ZW50LgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgbXVsdGlwYXRoIEluZGljYXRvciBpcyBpbnRlbmRlZCB0byByZXBvcnQgdGhlIHByZXNlbmNlIG9mIG92ZXJsYXBwaW5nCisgICAgICAgICAqIHNpZ25hbHMgdGhhdCBtYW5pZmVzdCBhcyBkaXN0b3J0ZWQgY29ycmVsYXRpb24gcGVha3MuCisgICAgICAgICAqCisgICAgICAgICAqIC0gaWYgdGhlcmUgaXMgYSBkaXN0b3J0ZWQgY29ycmVsYXRpb24gcGVhayBzaGFwZSwgcmVwb3J0IHRoYXQgbXVsdGlwYXRoCisgICAgICAgICAqICAgaXMgTVVMVElQQVRIX0lORElDQVRPUl9QUkVTRU5ULgorICAgICAgICAgKiAtIGlmIHRoZXJlIGlzIG5vIGRpc3RvcnRlZCBjb3JyZWxhdGlvbiBwZWFrIHNoYXBlLCByZXBvcnQKKyAgICAgICAgICogICBNVUxUSVBBVEhfSU5ESUNBVE9SX05PVF9QUkVTRU5UCisgICAgICAgICAqIC0gaWYgc2lnbmFscyBhcmUgdG9vIHdlYWsgdG8gZGlzY2VybiB0aGlzIGluZm9ybWF0aW9uLCByZXBvcnQKKyAgICAgICAgICogICBNVUxUSVBBVEhfSU5ESUNBVE9SX1VOS05PV04KKyAgICAgICAgICoKKyAgICAgICAgICogRXhhbXBsZTogd2hlbiBkb2luZyB0aGUgc3RhbmRhcmRpemVkIG92ZXJsYXBwaW5nIE11bHRpcGF0aCBQZXJmb3JtYW5jZQorICAgICAgICAgKiB0ZXN0ICgzR1BQIFRTIDM0LjE3MSkgdGhlIE11bHRpcGF0aCBpbmRpY2F0b3IgbXVzdCByZXBvcnQKKyAgICAgICAgICogTVVMVElQQVRIX0lORElDQVRPUl9QUkVTRU5UIGZvciB0aG9zZSBzaWduYWxzIHRoYXQgYXJlIHRyYWNrZWQsIGFuZAorICAgICAgICAgKiBjb250YWluIG11bHRpcGF0aCwgYW5kIE1VTFRJUEFUSF9JTkRJQ0FUT1JfTk9UX1BSRVNFTlQgZm9yIHRob3NlCisgICAgICAgICAqIHNpZ25hbHMgdGhhdCBhcmUgdHJhY2tlZCBhbmQgZG8gbm90IGNvbnRhaW4gbXVsdGlwYXRoLgorICAgICAgICAgKi8KKyAgICAgICAgR25zc011bHRpcGF0aEluZGljYXRvciBtdWx0aXBhdGhJbmRpY2F0b3I7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNpZ25hbC10by1ub2lzZSByYXRpbyBhdCBjb3JyZWxhdG9yIG91dHB1dCBpbiBkQi4KKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlLCBHbnNzTWVhc3VyZW1lbnRGbGFncyBtdXN0IGNvbnRhaW4gSEFTX1NOUi4KKyAgICAgICAgICogVGhpcyBpcyB0aGUgcG93ZXIgcmF0aW8gb2YgdGhlICJjb3JyZWxhdGlvbiBwZWFrIGhlaWdodCBhYm92ZSB0aGUKKyAgICAgICAgICogb2JzZXJ2ZWQgbm9pc2UgZmxvb3IiIHRvICJ0aGUgbm9pc2UgUk1TIi4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBzbnJEYjsKKworICAgICAgICAvKioKKyAgICAgICAgICogQXV0b21hdGljIGdhaW4gY29udHJvbCAoQUdDKSBsZXZlbC4gQUdDIGFjdHMgYXMgYSB2YXJpYWJsZSBnYWluCisgICAgICAgICAqIGFtcGxpZmllciBhZGp1c3RpbmcgdGhlIHBvd2VyIG9mIHRoZSBpbmNvbWluZyBzaWduYWwuIFRoZSBBR0MgbGV2ZWwKKyAgICAgICAgICogbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgcG90ZW50aWFsIGludGVyZmVyZW5jZS4gV2hlbiBBR0MgaXMgYXQgYQorICAgICAgICAgKiBub21pbmFsIGxldmVsLCB0aGlzIHZhbHVlIG11c3QgYmUgc2V0IGFzIDAuIEhpZ2hlciBnYWluIChhbmQvb3IgbG93ZXIKKyAgICAgICAgICogaW5wdXQgcG93ZXIpIG11c3QgYmUgb3V0cHV0IGFzIGEgcG9zaXRpdmUgbnVtYmVyLiBIZW5jZSBpbiBjYXNlcyBvZgorICAgICAgICAgKiBzdHJvbmcgamFtbWluZywgaW4gdGhlIGJhbmQgb2YgdGhpcyBzaWduYWwsIHRoaXMgdmFsdWUgbXVzdCBnbyBtb3JlCisgICAgICAgICAqIG5lZ2F0aXZlLgorICAgICAgICAgKgorICAgICAgICAgKiBOb3RlOiBEaWZmZXJlbnQgaGFyZHdhcmUgZGVzaWducyAoZS5nLiBhbnRlbm5hLCBwcmUtYW1wbGlmaWNhdGlvbiwgb3IKKyAgICAgICAgICogb3RoZXIgUkYgSFcgY29tcG9uZW50cykgbWF5IGFsc28gYWZmZWN0IHRoZSB0eXBpY2FsIG91dHB1dCBvZiBvZiB0aGlzCisgICAgICAgICAqIHZhbHVlIG9uIGFueSBnaXZlbiBoYXJkd2FyZSBkZXNpZ24gaW4gYW4gb3BlbiBza3kgdGVzdCAtIHRoZQorICAgICAgICAgKiBpbXBvcnRhbnQgYXNwZWN0IG9mIHRoaXMgb3V0cHV0IGlzIHRoYXQgY2hhbmdlcyBpbiB0aGlzIHZhbHVlIGFyZQorICAgICAgICAgKiBpbmRpY2F0aXZlIG9mIGNoYW5nZXMgb24gaW5wdXQgc2lnbmFsIHBvd2VyIGluIHRoZSBmcmVxdWVuY3kgYmFuZCBmb3IKKyAgICAgICAgICogdGhpcyBtZWFzdXJlbWVudC4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBhZ2NMZXZlbERiOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIGEgcmVhZGluZyBvZiBHTlNTIG1lYXN1cmVtZW50cy4gRm9yIGRldmljZXMgd2hlcmUgR25zc1N5c3RlbUluZm8ncworICAgICAqIHllYXJPZkh3IGlzIHNldCB0byAyMDE2KywgaXQgaXMgbWFuZGF0b3J5IHRoYXQgdGhlc2UgYmUgcHJvdmlkZWQsIG9uCisgICAgICogcmVxdWVzdCwgd2hlbiB0aGUgR05TUyByZWNlaXZlciBpcyBzZWFyY2hpbmcvdHJhY2tpbmcgc2lnbmFscy4KKyAgICAgKgorICAgICAqIC0gUmVwb3J0aW5nIG9mIEdOU1MgY29uc3RlbGxhdGlvbiBtZWFzdXJlbWVudHMgaXMgbWFuZGF0b3J5LgorICAgICAqIC0gUmVwb3J0aW5nIG9mIGFsbCB0cmFja2VkIGNvbnN0ZWxsYXRpb25zIGFyZSBlbmNvdXJhZ2VkLgorICAgICAqLworICAgIHN0cnVjdCBHbnNzRGF0YSB7CisgICAgICAgIC8qKiBOdW1iZXIgb2YgR25zc01lYXN1cmVtZW50IGVsZW1lbnRzLiAqLworICAgICAgICB1aW50MzJfdCBtZWFzdXJlbWVudENvdW50OworCisgICAgICAgIC8qKiBUaGUgYXJyYXkgb2YgbWVhc3VyZW1lbnRzLiAqLworICAgICAgICBHbnNzTWVhc3VyZW1lbnRbR25zc01heDpTVlNfQ09VTlRdIG1lYXN1cmVtZW50czsKKworICAgICAgICAvKiogVGhlIEdOU1MgY2xvY2sgdGltZSByZWFkaW5nLiAqLworICAgICAgICBHbnNzQ2xvY2sgY2xvY2s7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENhbGxiYWNrIGZvciB0aGUgaGFsIHRvIHBhc3MgYSBHbnNzRGF0YSBzdHJ1Y3R1cmUgYmFjayB0byB0aGUgY2xpZW50LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGEgQ29udGFpbnMgYSByZWFkaW5nIG9mIEdOU1MgbWVhc3VyZW1lbnRzLgorICAgICAqLworICAgIEduc3NNZWFzdXJlbWVudENiKEduc3NEYXRhIGRhdGEpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsIGIvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI0NmQxMQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2s7CisKKy8qKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBHTlNTIG5hdmlnYXRpb24gbWVzc2FnZSByZXBvcnRpbmcgc3VwcG9ydC4KKyAqLworaW50ZXJmYWNlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfTkFWSUdBVElPTl9NRVNTQUdFXyIpCisgICAgZW51bSBHbnNzTmF2aWdhdGlvbk1lc3NhZ2VTdGF0dXMgOiBpbnQzMl90IHsKKyAgICAgICAgU1VDQ0VTUyA9IDAsCisgICAgICAgIEVSUk9SX0FMUkVBRFlfSU5JVCA9IC0xMDAsCisgICAgICAgIEVSUk9SX0dFTkVSSUMgPSAtMTAxCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpbnRlcmZhY2UgYW5kIHJlZ2lzdGVycyB0aGUgY2FsbGJhY2sgcm91dGluZXMgd2l0aCB0aGUgSEFMLgorICAgICAqIEFmdGVyIGEgc3VjY2Vzc2Z1bCBjYWxsIHRvICdzZXRDYWxsYmFjaycgdGhlIEhBTCBtdXN0IGJlZ2luIHRvIHByb3ZpZGUgdXBkYXRlcyBhcworICAgICAqIHRoZXkgYmVjb21lIGF2YWlsYWJsZS4KKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgaGFuZGxlIHRvIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYWNrIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW5pdFJldCBSZXR1cm5zIFNVQ0NFU1MgaWYgdGhlIG9wZXJhdGlvbgorICAgICAqIGlzIHN1Y2Nlc3NmdWwuCisgICAgICogUmV0dXJucyBFUlJPUl9BTFJFQURZX0lOSVQgaWYgYSBjYWxsYmFjayBoYXMKKyAgICAgKiBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZCB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBjYWxsIHRvIGNsb3NlKCkuCisgICAgICogUmV0dXJucyBFUlJPUl9HRU5FUklDIGlmIGFueSBvdGhlciBlcnJvciBvY2N1cnJlZC4gSXQgaXMKKyAgICAgKiBleHBlY3RlZCB0aGF0IHRoZSBIQUwgd2lsbCBub3QgZ2VuZXJhdGUgYW55IHVwZGF0ZXMgdXBvbiByZXR1cm5pbmcKKyAgICAgKiB0aGlzIGVycm9yIGNvZGUuCisgICAgICovCisgICAgIHNldENhbGxiYWNrKElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChHbnNzTmF2aWdhdGlvbk1lc3NhZ2VTdGF0dXMgaW5pdFJldCk7CisKKyAgICAvKioKKyAgICAgKiBTdG9wcyB1cGRhdGVzIGZyb20gdGhlIEhBTCwgYW5kIHVucmVnaXN0ZXJzIHRoZSBjYWxsYmFjayByb3V0aW5lcy4KKyAgICAgKiBBZnRlciBhIGNhbGwgdG8gY2xvc2UoKSwgdGhlIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBjYWxsYmFja3MgbXVzdCBiZQorICAgICAqIGNvbnNpZGVyZWQgaW52YWxpZCBieSB0aGUgSEFMLgorICAgICAqIElmIGNsb3NlKCkgaXMgaW52b2tlZCB3aXRob3V0IGEgcHJldmlvdXMgc2V0Q2FsbGJhY2ssIHRoaXMgZnVuY3Rpb24gbXVzdCBwZXJmb3JtCisgICAgICogbm8gd29yay4KKyAgICAgKi8KKyAgICBjbG9zZSgpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwgYi9nbnNzLzEuMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmZGFlOWYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOworCisvKiogUmVwcmVzZW50cyBhIEdOU1MgbmF2aWdhdGlvbiBtZXNzYWdlIChvciBhIGZyYWdtZW50IG9mIGl0KS4gKi8KK2ludGVyZmFjZSBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIEVudW1lcmF0aW9uIG9mIGF2YWlsYWJsZSB2YWx1ZXMgdG8gaW5kaWNhdGUgdGhlIEdOU1MgTmF2aWdhdGlvbiBtZXNzYWdlCisgICAgICogdHlwZXMuCisgICAgICoKKyAgICAgKiBGb3IgY29udmVuaWVuY2UsIGZpcnN0IGJ5dGUgaXMgdGhlIEduc3NDb25zdGVsbGF0aW9uVHlwZSBvbiB3aGljaCB0aGF0IHNpZ25hbAorICAgICAqIGlzIHR5cGljYWxseSB0cmFuc21pdHRlZC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19OQVZJR0FUSU9OX01FU1NBR0VfVFlQRV8iKQorICAgIGVudW0gR25zc05hdmlnYXRpb25NZXNzYWdlVHlwZSA6IGludDE2X3QgeworICAgICAgICBVTktOT1dOICAgID0gMCwKKyAgICAgICAgLyoqIEdQUyBMMSBDL0EgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gICovCisgICAgICAgIEdQU19MMUNBICAgICAgID0gMHgwMTAxLAorICAgICAgICAvKiogR1BTIEwyLUNOQVYgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgR1BTX0wyQ05BViAgICAgPSAweDAxMDIsCisgICAgICAgIC8qKiBHUFMgTDUtQ05BViBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAqLworICAgICAgICBHUFNfTDVDTkFWICAgICA9IDB4MDEwMywKKyAgICAgICAgLyoqIEdQUyBDTkFWLTIgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgR1BTX0NOQVYyICAgICAgPSAweDAxMDQsCisgICAgICAgIC8qKiBHbG9uYXNzIEwxIENBIG1lc3NhZ2UgY29udGFpbmVkIGluIHRoZSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEdMT19MMUNBICAgICAgICA9IDB4MDMwMSwKKyAgICAgICAgLyoqIEJlaWRvdSBEMSBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAqLworICAgICAgICBCRFNfRDEgICAgICAgICAgPSAweDA1MDEsCisgICAgICAgIC8qKiBCZWlkb3UgRDIgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgQkRTX0QyICAgICAgICAgID0gMHgwNTAyLAorICAgICAgICAvKiogR2FsaWxlbyBJL05BViBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAqLworICAgICAgICBHQUxfSSAgICAgICAgICAgPSAweDA2MDEsCisgICAgICAgIC8qKiBHYWxpbGVvIEYvTkFWIG1lc3NhZ2UgY29udGFpbmVkIGluIHRoZSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEdBTF9GICAgICAgICAgICA9IDB4MDYwMgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTdGF0dXMgb2YgTmF2aWdhdGlvbiBNZXNzYWdlCisgICAgICogV2hlbiBhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQgcHJvcGVybHkgd2l0aG91dCBhbnkgcGFyaXR5IGVycm9yIGluIGl0cworICAgICAqIG5hdmlnYXRpb24gd29yZHMsIHRoZSBzdGF0dXMgbXVzdCBiZSBzZXQgdG8gUEFSSVRZX1BBU1NFRC4KKyAgICAgKiBJZiBhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQgd2l0aCB3b3JkcyB0aGF0IGZhaWxlZCBhIHBhcml0eSBjaGVjaywgYnV0IHRoZSBHTlNTCisgICAgICogcmVjZWl2ZXIgaGFzIGNvcnJlY3RlZCB0aG9zZSB3b3JkcywgdGhlIHN0YXR1cyBtdXN0IGJlIHNldCB0byBQQVJJVFlfUkVCVUlMVC4KKyAgICAgKiBEbyBub3Qgc2VuZCBhbnkgbmF2aWdhdGlvbiBtZXNzYWdlIHRoYXQgY29udGFpbnMgd29yZHMgd2l0aCBwYXJpdHkgZXJyb3JzCisgICAgICogdGhhdCBjYW5ub3QgYmUgY29ycmVjdGVkLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0ibmF2aWdhdGlvbl9tZXNzYWdlX3N0YXR1cyIsIHZhbHVlX3ByZWZpeD0iTkFWX01FU1NBR0VfU1RBVFVTXyIpCisgICAgZW51bSBOYXZpZ2F0aW9uTWVzc2FnZVN0YXR1cyA6IHVpbnQxNl90IHsKKyAgICAgICAgUEFSSVRZX1BBU1NFRCAgPSAoMSA8PCAwKSwKKyAgICAgICAgUEFSSVRZX1JFQlVJTFQgPSAoMSA8PCAxKSwKKyAgICAgICAgVU5LTk9XTiAgPSAwCisgICAgfTsKKworICAgIHN0cnVjdCBHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgeworICAgICAgICAvKioKKyAgICAgICAgICogU2F0ZWxsaXRlIHZlaGljbGUgSUQgbnVtYmVyLCBhcyBkZWZpbmVkIGluIEduc3NTdkluZm86OnN2aWQKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGludDE2X3Qgc3ZpZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHR5cGUgb2YgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4KKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIEduc3NOYXZpZ2F0aW9uTWVzc2FnZVR5cGUgdHlwZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHN0YXR1cyBvZiB0aGUgcmVjZWl2ZWQgbmF2aWdhdGlvbiBtZXNzYWdlLgorICAgICAgICAgKiBObyBuZWVkIHRvIHNlbmQgYW55IG5hdmlnYXRpb24gbWVzc2FnZSB0aGF0IGNvbnRhaW5zIHdvcmRzIHdpdGggcGFyaXR5CisgICAgICAgICAqIGVycm9ycyB0aGF0IGNhbm5vdCBiZSBjb3JyZWN0ZWQuCisgICAgICAgICAqLworICAgICAgICBiaXRmaWVsZDxOYXZpZ2F0aW9uTWVzc2FnZVN0YXR1cz4gc3RhdHVzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBNZXNzYWdlIGlkZW50aWZpZXIuIEl0IHByb3ZpZGVzIGFuIGluZGV4IHNvIHRoZSBjb21wbGV0ZSBOYXZpZ2F0aW9uCisgICAgICAgICAqIE1lc3NhZ2UgY2FuIGJlIGFzc2VtYmxlZC4KKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR05TUyBMMSBDL0Egc3ViZnJhbWUgNCBhbmQgNSwgdGhpcyB2YWx1ZSBjb3JyZXNwb25kcyB0byB0aGUgJ2ZyYW1lCisgICAgICAgICAqICAgaWQnIG9mIHRoZSBuYXZpZ2F0aW9uIG1lc3NhZ2UsIGluIHRoZSByYW5nZSBvZiAxLTI1IChTdWJmcmFtZSAxLCAyLCAzCisgICAgICAgICAqICAgZG9lcyBub3QgY29udGFpbiBhICdmcmFtZSBpZCcgYW5kIHRoaXMgdmFsdWUgY2FuIGJlIHNldCB0byAtMS4pCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdsb25hc3MgTDEgQy9BLCB0aGlzIHJlZmVycyB0byB0aGUgZnJhbWUgSUQsIGluIHRoZSByYW5nZSBvZiAxLTUuCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEJlaURvdSBEMSwgdGhpcyByZWZlcnMgdG8gdGhlIGZyYW1lIG51bWJlciBpbiB0aGUgcmFuZ2Ugb2YgMS0yNAorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBCZWlkb3UgRDIsIHRoaXMgcmVmZXJzIHRvIHRoZSBmcmFtZSBudW1iZXIsIGluIHRoZSByYW5nZSBvZiAxLTEyMAorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHYWxpbGVvIEYvTkFWIG5vbWluYWwgZnJhbWUgc3RydWN0dXJlLCB0aGlzIHJlZmVycyB0byB0aGUgc3ViZnJhbWUKKyAgICAgICAgICogICBudW1iZXIsIGluIHRoZSByYW5nZSBvZiAxLTEyCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdhbGlsZW8gSS9OQVYgbm9taW5hbCBmcmFtZSBzdHJ1Y3R1cmUsIHRoaXMgcmVmZXJzIHRvIHRoZSBzdWJmcmFtZQorICAgICAgICAgKiAgIG51bWJlciBpbiB0aGUgcmFuZ2Ugb2YgMS0yNAorICAgICAgICAgKi8KKyAgICAgICAgaW50MTZfdCBtZXNzYWdlSWQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN1Yi1tZXNzYWdlIGlkZW50aWZpZXIuIElmIHJlcXVpcmVkIGJ5IHRoZSBtZXNzYWdlICd0eXBlJywgdGhpcyB2YWx1ZQorICAgICAgICAgKiBjb250YWlucyBhIHN1Yi1pbmRleCB3aXRoaW4gdGhlIGN1cnJlbnQgbWVzc2FnZSAob3IgZnJhbWUpIHRoYXQgaXMgYmVpbmcKKyAgICAgICAgICogdHJhbnNtaXR0ZWQuCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdOU1MgTDEgQy9BLCBCZWlEb3UgRDEgJiBCZWlEb3UgRDIsIHRoZSBzdWJtZXNzYWdlIGlkIGNvcnJlc3BvbmRzIHRvCisgICAgICAgICAqICAgdGhlIHN1YmZyYW1lIG51bWJlciBvZiB0aGUgbmF2aWdhdGlvbiBtZXNzYWdlLCBpbiB0aGUgcmFuZ2Ugb2YgMS01LgorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHbG9uYXNzIEwxIEMvQSwgdGhpcyByZWZlcnMgdG8gdGhlIFN0cmluZyBudW1iZXIsIGluIHRoZSByYW5nZSBmcm9tCisgICAgICAgICAqICAgMS0xNQorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHYWxpbGVvIEYvTkFWLCB0aGlzIHJlZmVycyB0byB0aGUgcGFnZSB0eXBlIGluIHRoZSByYW5nZSAxLTYKKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR2FsaWxlbyBJL05BViwgdGhpcyByZWZlcnMgdG8gdGhlIHdvcmQgdHlwZSBpbiB0aGUgcmFuZ2UgMS0xMCsKKyAgICAgICAgICovCisgICAgICAgIGludDE2X3Qgc3VibWVzc2FnZUlkOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZGF0YSBvZiB0aGUgcmVwb3J0ZWQgR05TUyBtZXNzYWdlLiBUaGUgYnl0ZXMgKG9yIHdvcmRzKSBhcmUgc3BlY2lmaWVkCisgICAgICAgICAqIHVzaW5nIGJpZyBlbmRpYW4gZm9ybWF0IChNU0IgZmlyc3QpLgorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHTlNTIEwxIEMvQSwgQmVpZG91IEQxICYgQmVpZG91IEQyLCBlYWNoIHN1YmZyYW1lIGNvbnRhaW5zIDEwIDMwLWJpdAorICAgICAgICAgKiAgIHdvcmRzLiBFYWNoIHdvcmQgKDMwIGJpdHMpIG11c3QgZml0IGludG8gdGhlIGxhc3QgMzAgYml0cyBpbiBhCisgICAgICAgICAqICAgNC1ieXRlIHdvcmQgKHNraXAgQjMxIGFuZCBCMzIpLCB3aXRoIE1TQiBmaXJzdCwgZm9yIGEgdG90YWwgb2YgNDAKKyAgICAgICAgICogICBieXRlcywgY292ZXJpbmcgYSB0aW1lIHBlcmlvZCBvZiA2LCA2LCBhbmQgMC42IHNlY29uZHMsIHJlc3BlY3RpdmVseS4KKyAgICAgICAgICogICBUaGUgc3RhbmRhcmQgZm9sbG93ZWQgaXMgMTk5NSBTUFMgU2lnbmFsIHNwZWNpZmljYXRpb24uCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdsb25hc3MgTDEgQy9BLCBlYWNoIHN0cmluZyBjb250YWlucyA4NSBkYXRhIGJpdHMsIGluY2x1ZGluZyB0aGUKKyAgICAgICAgICogICBjaGVja3N1bS4gIFRoZXNlIGJpdHMgbXVzdCBmaXQgaW50byAxMSBieXRlcywgd2l0aCBNU0IgZmlyc3QgKHNraXAKKyAgICAgICAgICogICBCODYtQjg4KSwgY292ZXJpbmcgYSB0aW1lIHBlcmlvZCBvZiAyIHNlY29uZHMuCisgICAgICAgICAqICAgVGhlIHN0YW5kYXJkIGZvbGxvd2VkIGlzIEdsb25hc3MgSW50ZXJmYWNlIENvbnRyb2wgRG9jdW1lbnQgRWRpdGlvbiA1LjEuCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdhbGlsZW8gRi9OQVYsIGVhY2ggd29yZCBjb25zaXN0cyBvZiAyMzgtYml0IChzeW5jICYgdGFpbCBzeW1ib2xzCisgICAgICAgICAqICAgZXhjbHVkZWQpLiBFYWNoIHdvcmQgbXVzdCBmaXQgaW50byAzMC1ieXRlcywgd2l0aCBNU0IgZmlyc3QgKHNraXAKKyAgICAgICAgICogICBCMjM5LCBCMjQwKSwgY292ZXJpbmcgYSB0aW1lIHBlcmlvZCBvZiAxMCBzZWNvbmRzLiBUaGUgc3RhbmRhcmQKKyAgICAgICAgICogICBmb2xsb3dlZCBpcyBFdXJvcGVhbiBHTlNTKEdhbGlsZW8pIFNpZ25hbCBpbiBTcGFjZSBJbnRlcmZhY2UKKyAgICAgICAgICogICBDb250cm9sIERvY3VtZW50IElzc3VlIDEuMi4KKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR2FsaWxlbyBJL05BViwgZWFjaCBwYWdlIGNvbnRhaW5zIDIgcGFnZSBwYXJ0cywgZXZlbiBhbmQgb2RkLCB3aXRoCisgICAgICAgICAqICAgYSB0b3RhbCBvZiAyeDExNCA9IDIyOCBiaXRzLCAoc3luYyAmIHRhaWwgZXhjbHVkZWQpIHRoYXQgbXVzdCBmaXQKKyAgICAgICAgICogICBpbnRvIDI5IGJ5dGVzLCB3aXRoIE1TQiBmaXJzdCAoc2tpcCBCMjI5LUIyMzIpLiBUaGUgc3RhbmRhcmQgZm9sbG93ZWQKKyAgICAgICAgICogICBpcyBzYW1lIGFzIGFib3ZlLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgZGF0YSByZXBvcnRlZCBoZXJlIG11c3QgYmUgdGhlIHJhdyBkYXRhIGFzIGRlbW9kdWxhdGVkIGJ5IHRoZSBHTlNTCisgICAgICAgICAqIHJlY2VpdmVyLCBub3QgZGF0YSByZWNlaXZlZCBmcm9tIGFuIGV4dGVybmFsIHNvdXJjZSAoaS5lLiBub3QgZnJvbSBhIHNlcnZlcgorICAgICAgICAgKiBkb3dubG9hZC4pCisgICAgICAgICAqLworICAgICAgICB2ZWM8dWludDhfdD4gZGF0YTsKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIHRvIHJlcG9ydCBhbiBhdmFpbGFibGUgZnJhZ21lbnQgb2YgYSBHTlNTIG5hdmlnYXRpb24gbWVzc2FnZXMKKyAgICAgKiBmcm9tIHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBHTlNTIG5hdmlnYXRpb24gc3VibWVzc2FnZS9zdWJmcmFtZSByZXByZXNlbnRhdGlvbi4KKyAgICAgKi8KKyAgICAgZ25zc05hdmlnYXRpb25NZXNzYWdlQ2IoR25zc05hdmlnYXRpb25NZXNzYWdlIG1lc3NhZ2UpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzTmkuaGFsIGIvZ25zcy8xLjAvSUduc3NOaS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE5OGFiMAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTmkuaGFsCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CitpbXBvcnQgSUduc3NOaUNhbGxiYWNrOworCisvKioKKyAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgTmV0d29yay1pbml0aWF0ZWQgKE5JKSBzdXBwb3J0LiBUaGlzIGludGVyZmFjZSBpcyB1c2VkCisgKiB0byByZXNwb25kIHRvIE5JIG5vdGlmaWNhdGlvbnMgb3JpZ2luYXRpbmcgZnJvbSB0aGUgSEFMLgorICovCitpbnRlcmZhY2UgSUduc3NOaSB7CisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIHRoZSBjYWxsYmFja3MgZm9yIEhBTCB0byB1c2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgaGFuZGxlIHRvIElHbnNzTmlDYWxsYmFjayBpbnRlcmZhY2UuCisgICAgICovCisgICAgc2V0Q2FsbGJhY2soSUduc3NOaUNhbGxiYWNrIGNhbGxiYWNrKTsKKworICAgIC8qKgorICAgICAqIFNlbmRzIGEgcmVzcG9uc2UgdG8gSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIG5vdGlmSWQgQW4gSUQgZ2VuZXJhdGVkIGJ5IEhBTCB0byBhc3NvY2lhdGUgTkkgbm90aWZpY2F0aW9ucyBhbmQKKyAgICAgKiBmcmFtZXdvcmsgcmVzcG9uc2VzLgorICAgICAqIEBwYXJhbSB1c2VyUmVzcG9uc2UgQSBHTlNTIE5pIHJlc3BvbnNlIGluZGljYXRpbmcgaWYgdGhlIG5vdGlmaWNhdGlvbiB3YXMKKyAgICAgKiBhY2NlcHRlZCwgZGVuaWVkIG9yIG5vdCByZXNwb25kZWQgdG8uCisgICAgICovCisgICAgcmVzcG9uZChpbnQzMl90IG5vdGlmSWQsIEduc3NVc2VyUmVzcG9uc2VUeXBlIHVzZXJSZXNwb25zZSk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NOaUNhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lHbnNzTmlDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2UzMDcxYQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTmlDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBHTlNTIE5ldHdvcmsgSW5pdGlhdGVkIGNhbGxiYWNrIGludGVyZmFjZS4gKi8KK2ludGVyZmFjZSBJR25zc05pQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIEduc3NOaVR5cGUgY29uc3RhbnRzCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19OSV9UWVBFXyIpCisgICAgZW51bSBHbnNzTmlUeXBlIDogdWludDhfdCB7CisgICAgICAgIFZPSUNFICAgICAgICAgICA9IDEsCisgICAgICAgIFVNVFNfU1VQTCAgICAgICA9IDIsCisgICAgICAgIFVNVFNfQ1RSTF9QTEFORSA9IDMsCisgICAgICAgIEVNRVJHRU5DWV9TVVBMICA9IDQKKyAgICB9OworCisgICAgLyoqCisgICAgICogR25zc05pTm90aWZ5RmxhZ3MgY29uc3RhbnRzCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19OSV8iKQorICAgIGVudW0gR25zc05pTm90aWZ5RmxhZ3MgOiB1aW50MzJfdCB7CisgICAgICAgIC8qKiBOSSByZXF1aXJlcyBub3RpZmljYXRpb24gKi8KKyAgICAgICAgTkVFRF9OT1RJRlkgICAgICA9IDB4MDAwMSwKKyAgICAgICAgLyoqIE5JIHJlcXVpcmVzIHZlcmlmaWNhdGlvbiAqLworICAgICAgICBORUVEX1ZFUklGWSAgICAgID0gMHgwMDAyLAorICAgICAgICAvKiogTkkgcmVxdWlyZXMgcHJpdmFjeSBvdmVycmlkZSwgbm8gbm90aWZpY2F0aW9uL21pbmltYWwgdHJhY2UgKi8KKyAgICAgICAgUFJJVkFDWV9PVkVSUklERSA9IDB4MDAwNCwKKyAgICB9OworCisgICAgLyoqCisgICAgICogR05TUyBOSSByZXNwb25zZXMsIHVzZWQgdG8gZGVmaW5lIHRoZSByZXNwb25zZSBpbgorICAgICAqIE5JIHN0cnVjdHVyZXMKKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX05JXyIpCisgICAgZW51bSBHbnNzVXNlclJlc3BvbnNlVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBSRVNQT05TRV9BQ0NFUFQgID0gMSwKKyAgICAgICAgUkVTUE9OU0VfREVOWSAgICA9IDIsCisgICAgICAgIFJFU1BPTlNFX05PUkVTUCAgPSAzLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBOSSBkYXRhIGVuY29kaW5nIHNjaGVtZQorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfIikKKyAgICBlbnVtIEduc3NOaUVuY29kaW5nVHlwZSA6IGludDMyX3QgeworICAgICAgICBFTkNfTk9ORSAgICAgICAgICAgICAgPSAwLAorICAgICAgICBFTkNfU1VQTF9HU01fREVGQVVMVCAgPSAxLAorICAgICAgICBFTkNfU1VQTF9VVEY4ICAgICAgICAgPSAyLAorICAgICAgICBFTkNfU1VQTF9VQ1MyICAgICAgICAgPSAzLAorICAgICAgICBFTkNfVU5LTk9XTiAgICAgICAgICAgPSAtMSwKKyAgICB9OworCisgICAgLyoqIFJlcHJlc2VudHMgYW4gTkkgcmVxdWVzdCAqLworICAgIHN0cnVjdCBHbnNzTmlOb3RpZmljYXRpb257CisgICAgICAgIC8qKgorICAgICAgICAgKiBBbiBJRCBnZW5lcmF0ZWQgYnkgSEFMIHRvIGFzc29jaWF0ZSBOSSBub3RpZmljYXRpb25zIGFuZCBVSQorICAgICAgICAgKiByZXNwb25zZXMuCisgICAgICAgICAqLworICAgICAgICBpbnQzMl90IG5vdGlmaWNhdGlvbklkOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBIHR5cGUgdXNlZCB0byBkaXN0aW5ndWlzaCBkaWZmZXJlbnQgY2F0ZWdvcmllcyBvZiBOSQorICAgICAgICAgKiBldmVudHMsIHN1Y2ggYXMgVk9JQ0UsIFVNVFNfU1VQTCBldGMuCisgICAgICAgICAqLworICAgICAgICBHbnNzTmlUeXBlIG5pVHlwZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogTm90aWZpY2F0aW9uL3ZlcmlmaWNhdGlvbiBvcHRpb25zLCBjb21iaW5hdGlvbnMgb2YgR25zc05pTm90aWZ5RmxhZ3MKKyAgICAgICAgICogY29uc3RhbnRzLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8R25zc05pTm90aWZ5RmxhZ3M+IG5vdGlmeUZsYWdzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaW1lb3V0IHBlcmlvZCB0byB3YWl0IGZvciB1c2VyIHJlc3BvbnNlLgorICAgICAgICAgKiBTZXQgdG8gMCBmb3Igbm8gdGltZW91dCBsaW1pdC4gU3BlY2lmaWVkIGluIHNlY29uZHMuCisgICAgICAgICAqLworICAgICAgICB1aW50MzJfdCB0aW1lb3V0U2VjOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZhdWx0IHJlc3BvbnNlIHdoZW4gdGltZW91dC4KKyAgICAgICAgICovCisgICAgICAgIEduc3NVc2VyUmVzcG9uc2VUeXBlIGRlZmF1bHRSZXNwb25zZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogU3RyaW5nIHJlcHJlc2VudGluZyB0aGUgcmVxdWVzdGVyIG9mIHRoZSBuZXR3b3JrIGluaXRpdGF0ZWQgbG9jYXRpb24KKyAgICAgICAgICogcmVxdWVzdC4KKyAgICAgICAgICovCisgICAgICAgIHN0cmluZyByZXF1ZXN0b3JJZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogTm90aWZpY2F0aW9uIG1lc3NhZ2UuIFN0cmluZyByZXByZXNlbnRpbmcgdGhlIHNlcnZpY2UoZm9yIGVnLiBTVVBMLXNlcnZpY2UpCisgICAgICAgICAqIHdobyBzZW50IHRoZSBuZXR3b3JrIGluaXRpYXRlZCBsb2NhdGlvbiByZXF1ZXN0LgorICAgICAgICAgKi8KKyAgICAgICAgc3RyaW5nIG5vdGlmaWNhdGlvbk1lc3NhZ2U7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIHJlcXVlc3RvcklkIGRlY29kaW5nIHNjaGVtZS4KKyAgICAgICAgICovCisgICAgICAgIEduc3NOaUVuY29kaW5nVHlwZSByZXF1ZXN0b3JJZEVuY29kaW5nOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBub3RpZmljYXRpb25JZCBkZWNvZGluZyBzY2hlbWUKKyAgICAgICAgICovCisgICAgICAgIEduc3NOaUVuY29kaW5nVHlwZSBub3RpZmljYXRpb25JZEVuY29kaW5nOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayB3aXRoIGEgbmV0d29yayBpbml0aWF0ZWQgcmVxdWVzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBub3RpZmljYXRpb24gbmV0d29yayBpbml0aWF0ZWQgcmVxdWVzdC4KKyAgICAgKi8KKyAgICBuaU5vdGlmeUNiKEduc3NOaU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzWHRyYS5oYWwgYi9nbnNzLzEuMC9JR25zc1h0cmEuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyYzhmMzkKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc1h0cmEuaGFsCkBAIC0wLDAgKzEsMjcgQEAKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKK2ltcG9ydCBJR25zc1h0cmFDYWxsYmFjazsKKworLyoqCisgKiBUaGlzIGludGVyZmFjZSBpcyB1c2VkIGJ5IHRoZSBHTlNTIEhBTCB0byByZXF1ZXN0IHRoZSBmcmFtZXdvcmsKKyAqIHRvIGRvd25sb2FkIFhUUkEgZGF0YS4KKyAqLworaW50ZXJmYWNlIElHbnNzWHRyYSB7CisgICAgLyoqCisgICAgICogT3BlbnMgdGhlIFhUUkEgaW50ZXJmYWNlIGFuZCBwcm92aWRlcyB0aGUgY2FsbGJhY2sgcm91dGluZXMKKyAgICAgKiB0byB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSGFuZGxlIHRvIHRoZSBJR25zc1h0cmFDYWxsYmFjayBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiB0aGUgb3BlcmF0aW9uIGlzIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgc2V0Q2FsbGJhY2soSUduc3NYdHJhQ2FsbGJhY2sgY2FsbGJhY2spIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIEluamVjdCB0aGUgZG93bmxvYWRlZCBYVFJBIGRhdGEgaW50byB0aGUgR05TUyByZWNlaXZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB4dHJhRGF0YSBHTlNTIFhUUkEgZGF0YS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBpbmplY3RYdHJhRGF0YShzdHJpbmcgeHRyYURhdGEpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc1h0cmFDYWxsYmFjay5oYWwgYi9nbnNzLzEuMC9JR25zc1h0cmFDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM4ZjFhZAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzWHRyYUNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDEyIEBACitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKgorICogVGhpcyBpbnRlcmZhY2UgaXMgdXNlZCBieSB0aGUgR05TUyBIQUwgdG8gcmVxdWVzdCBkb3dubG9hZCBvZiBYVFJBIGRhdGEuCisgKi8KK2ludGVyZmFjZSBJR25zc1h0cmFDYWxsYmFjayB7CisgICAvKioKKyAgICAqIENhbGxiYWNrIHRvIHJlcXVlc3QgdGhlIGNsaWVudCB0byBkb3dubG9hZCBYVFJBIGRhdGEuIFRoZSBjbGllbnQgc2hvdWxkCisgICAgKiBkb3dubG9hZCBYVFJBIGRhdGEgYW5kIGluamVjdCBpdCBieSBjYWxsaW5nIGluamVjdFh0cmFEYXRhKCkuCisgICAgKi8KKyAgIGRvd25sb2FkUmVxdWVzdENiKCk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9BR25zcy5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWM2ZGRkCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9BR25zcy5jcHAKQEAgLTAsMCArMSwxOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfQUduc3NJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJBR25zcy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gQUduc3M6OnNUaHJlYWRGdW5jQXJnc0xpc3Q7CitzcDxJQUduc3NDYWxsYmFjaz4gQUduc3M6OnNBR25zc0NiSWZhY2UgPSBudWxscHRyOworYm9vbCBBR25zczo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworCitBR3BzQ2FsbGJhY2tzIEFHbnNzOjpzQUduc3NDYiA9IHsKKyAgICAuc3RhdHVzX2NiID0gc3RhdHVzQ2IsCisgICAgLmNyZWF0ZV90aHJlYWRfY2IgPSBjcmVhdGVUaHJlYWRDYgorfTsKKworQUduc3M6OkFHbnNzKGNvbnN0IEFHcHNJbnRlcmZhY2UqIGFHcHNJZmFjZSkgOiBtQUduc3NJZmFjZShhR3BzSWZhY2UpIHsKKyAgICAvKiBFcnJvciBvdXQgaWYgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVyZmFjZSBhbHJlYWR5IGV4aXN0cy4gKi8KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKHNJbnRlcmZhY2VFeGlzdHMpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSB0cnVlOworfQorCitBR25zczo6fkFHbnNzKCkgeworICAgIHNUaHJlYWRGdW5jQXJnc0xpc3QuY2xlYXIoKTsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7Cit9CisKK3ZvaWQgQUduc3M6OnN0YXR1c0NiKEFHcHNTdGF0dXMqIHN0YXR1cykgeworICAgIGlmIChzQUduc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR05TUyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChzdGF0dXMgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiQUdOU1Mgc3RhdHVzIGlzIGludmFsaWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qCisgICAgICogTG9naWMgYmFzZWQgb24gQUduc3NTdGF0dXMgcHJvY2Vzc2luZyBieSBHbnNzTG9jYXRpb25Qcm92aWRlci4gU2l6ZSBvZgorICAgICAqIEFHcHNTdGF0dXMgaXMgY2hlY2tlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBzaW5jZSBzb21lIGRldmljZXMgbWF5CisgICAgICogYmUgc2VuZGluZyBvdXQgYW4gb2xkZXIgdmVyc2lvbiBvZiBBR3BzU3RhdHVzIHRoYXQgb25seSBzdXBwb3J0cyBJUHY0LgorICAgICAqLworICAgIHNpemVfdCBzdGF0dXNTaXplID0gc3RhdHVzLT5zaXplOworICAgIGlmIChzdGF0dXMtPnNpemUgPT0gc2l6ZW9mKEFHcHNTdGF0dXMpKSB7CisgICAgICAgIHN3aXRjaCAoc3RhdHVzLT5hZGRyLnNzX2ZhbWlseSkKKyAgICAgICAgeworICAgICAgICAgICAgY2FzZSBBRl9JTkVUOgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogc3NfZmFtaWx5IGluZGljYXRlcyBJUHY0LgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyX2luKiBpbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8c3RydWN0IHNvY2thZGRyX2luKj4oJihzdGF0dXMtPmFkZHIpKTsKKyAgICAgICAgICAgICAgICAgICAgSUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzSXBWNCBhR25zc1N0YXR1c0lwVjQgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAudHlwZSA9IHN0YXRpY19jYXN0PElBR25zc0NhbGxiYWNrOjpBR25zc1R5cGU+KHN0YXR1cy0+dHlwZSksCisgICAgICAgICAgICAgICAgICAgICAgICAuc3RhdHVzID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzVmFsdWU+KHN0YXR1cy0+c3RhdHVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pcFY0QWRkciA9IGluLT5zaW5fYWRkci5zX2FkZHIsCisgICAgICAgICAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogQ2FsbGJhY2sgdG8gY2xpZW50IHdpdGggYWduc3NTdGF0dXNJcFY0Q2IuCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBhdXRvIHJldCA9IHNBR25zc0NiSWZhY2UtPmFnbnNzU3RhdHVzSXBWNENiKGFHbnNzU3RhdHVzSXBWNCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQUZfSU5FVDY6CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBzc19mYW1pbHkgaW5kaWNhdGVzIElQdjYuIENhbGxiYWNrIHRvIGNsaWVudCB3aXRoIGFnbnNzU3RhdHVzSXBWNkNiLgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgSUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzSXBWNiBhR25zc1N0YXR1c0lwVjY7CisKKyAgICAgICAgICAgICAgICAgICAgYUduc3NTdGF0dXNJcFY2LnR5cGUgPSBzdGF0aWNfY2FzdDxJQUduc3NDYWxsYmFjazo6QUduc3NUeXBlPihzdGF0dXMtPnR5cGUpOworICAgICAgICAgICAgICAgICAgICBhR25zc1N0YXR1c0lwVjYuc3RhdHVzID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzVmFsdWU+KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy0+c3RhdHVzKTsKKworICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW42KiBpbjYgPSByZWludGVycHJldF9jYXN0PHN0cnVjdCBzb2NrYWRkcl9pbjYgKj4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJihzdGF0dXMtPmFkZHIpKTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KCYoYUduc3NTdGF0dXNJcFY2LmlwVjZBZGRyWzBdKSwgaW42LT5zaW42X2FkZHIuczZfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFHbnNzU3RhdHVzSXBWNi5pcFY2QWRkci5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvIHJldCA9IHNBR25zc0NiSWZhY2UtPmFnbnNzU3RhdHVzSXBWNkNiKGFHbnNzU3RhdHVzSXBWNik7CisgICAgICAgICAgICAgICAgICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBBTE9HRSgiSW52YWxpZCBzc19mYW1pbHkgZm91bmQ6ICVkIiwgc3RhdHVzLT5hZGRyLnNzX2ZhbWlseSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHN0YXR1c1NpemUgPj0gc2l6ZW9mKEFHcHNTdGF0dXNfdjIpKSB7CisgICAgICAgIEFHcHNTdGF0dXNfdjIqIHN0YXR1c1YyID0gcmVpbnRlcnByZXRfY2FzdDxBR3BzU3RhdHVzX3YyKj4oc3RhdHVzKTsKKyAgICAgICAgdWludDMyX3QgaXBWNEFkZHIgPSBzdGF0dXNWMi0+aXBhZGRyOworICAgICAgICBJQUduc3NDYWxsYmFjazo6QUduc3NTdGF0dXNJcFY0IGFHbnNzU3RhdHVzSXBWNCA9IHsKKyAgICAgICAgICAgIC50eXBlID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzVHlwZT4oQUZfSU5FVCksCisgICAgICAgICAgICAuc3RhdHVzID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzVmFsdWU+KHN0YXR1cy0+c3RhdHVzKSwKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBGb3Igb2xkZXIgdmVyc2lvbnMgb2YgQUdwc1N0YXR1cywgY2hhbmdlIElQIGFkZHIgdG8gbmV0IG9yZGVyLiBUaGlzCisgICAgICAgICAgICAgKiB3YXMgZWFybGllciBiZWluZyBkb25lIGluIEduc3NMb2NhdGlvblByb3ZpZGVyLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICAuaXBWNEFkZHIgPSBodG9ubChpcFY0QWRkcikKKyAgICAgICAgfTsKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2FsbGJhY2sgdG8gY2xpZW50IHdpdGggYWduc3NTdGF0dXNJcFY0Q2IuCisgICAgICAgICAqLworICAgICAgICBhdXRvIHJldCA9IHNBR25zc0NiSWZhY2UtPmFnbnNzU3RhdHVzSXBWNENiKGFHbnNzU3RhdHVzSXBWNCk7CisgICAgICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIHNpemUgZm9yIEFHUFMgU3RhdHVzIiwgX19mdW5jX18pOworICAgIH0KK30KKworcHRocmVhZF90IEFHbnNzOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCisvKgorICogSW1wbGVtZW50YXRpb24gb2YgbWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zcyBmb2xsb3cuCisgKi8KK1JldHVybjx2b2lkPiBBR25zczo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SUFHbnNzQ2FsbGJhY2s+JiBjYWxsYmFjaykgeworICAgIGlmIChtQUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHNBR25zc0NiSWZhY2UgPSBjYWxsYmFjazsKKworICAgIG1BR25zc0lmYWNlLT5pbml0KCZzQUduc3NDYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IEFHbnNzOjpkYXRhQ29ubkNsb3NlZCgpICB7CisgICAgaWYgKG1BR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1BR25zc0lmYWNlLT5kYXRhX2Nvbm5fY2xvc2VkKCkgPT0gMCk7Cit9CisKK1JldHVybjxib29sPiBBR25zczo6ZGF0YUNvbm5GYWlsZWQoKSAgeworICAgIGlmIChtQUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtQUduc3NJZmFjZS0+ZGF0YV9jb25uX2ZhaWxlZCgpID09IDApOworfQorCitSZXR1cm48Ym9vbD4gQUduc3M6OnNldFNlcnZlcihJQUduc3NDYWxsYmFjazo6QUduc3NUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgaG9zdG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHBvcnQpIHsKKyAgICBpZiAobUFHbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiAobUFHbnNzSWZhY2UtPnNldF9zZXJ2ZXIoc3RhdGljX2Nhc3Q8QUdwc1R5cGU+KHR5cGUpLCBob3N0bmFtZS5jX3N0cigpLCBwb3J0KSA9PSAwKTsKK30KKworUmV0dXJuPGJvb2w+IEFHbnNzOjpkYXRhQ29ubk9wZW4oY29uc3QgaGlkbF9zdHJpbmcmIGFwbiwgSUFHbnNzOjpBcG5JcFR5cGUgYXBuSXBUeXBlKSB7CisgICAgaWYgKG1BR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1BR25zc0lmYWNlLT5kYXRhX2Nvbm5fb3Blbl93aXRoX2Fwbl9pcF90eXBlKGFwbi5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MTZfdD4oYXBuSXBUeXBlKSkgPT0gMCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzLmggYi9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE4ZWVkMAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvQUduc3MuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9BR25zc19IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9BR25zc19IXworCisjaW5jbHVkZSA8VGhyZWFkQ3JlYXRpb25XcmFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JQUduc3MuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHNfaW50ZXJuYWwuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zc0NhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBBR05TUyBzdXBwb3J0LiBBbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcyB0byBhbGxvdworICogbWV0aG9kcyBmcm9tIElBR25zc0NhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsCisgKiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgR05TUyBIQUwuCisgKi8KK3N0cnVjdCBBR25zcyA6IHB1YmxpYyBJQUduc3MgeworICAgIEFHbnNzKGNvbnN0IEFHcHNJbnRlcmZhY2UqIGFncHNJZmFjZSk7CisgICAgfkFHbnNzKCk7CisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzIGludGVyZmFjZSBmb2xsb3cuCisgICAgICogVGhlc2UgZGVjbGFyYXRpb25zIHdlcmUgZ2VuZXJhdGVkIGZyb20gSUFHbnNzLmhhbC4KKyAgICAgKi8KKyAgICBSZXR1cm48dm9pZD4gc2V0Q2FsbGJhY2soY29uc3Qgc3A8SUFHbnNzQ2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IGRhdGFDb25uQ2xvc2VkKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IGRhdGFDb25uRmFpbGVkKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHNldFNlcnZlcihJQUduc3NDYWxsYmFjazo6QUduc3NUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGhvc3RuYW1lLCBpbnQzMl90IHBvcnQpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBkYXRhQ29ubk9wZW4oY29uc3QgaGlkbF9zdHJpbmcmIGFwbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQUduc3M6OkFwbklwVHlwZSBhcG5JcFR5cGUpIG92ZXJyaWRlOworCisgICAgLyoKKyAgICAgKiBDYWxsYmFjayBtZXRob2RzIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi4gVGhlc2UgbWV0aG9kcyBhcmUgbm90IHBhcnQgb2YgdGhlIElBR25zcyBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyBwdGhyZWFkX3QgY3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZyk7CisgICAgc3RhdGljIHZvaWQgc3RhdHVzQ2IoQUdwc1N0YXR1cyogc3RhdHVzKTsKKworICAgIC8qCisgICAgICogSG9sZHMgZnVuY3Rpb24gcG9pbnRlcnMgdG8gdGhlIGNhbGxiYWNrIG1ldGhvZHMuCisgICAgICovCisgICAgc3RhdGljIEFHcHNDYWxsYmFja3Mgc0FHbnNzQ2I7CisKKyBwcml2YXRlOgorICAgIGNvbnN0IEFHcHNJbnRlcmZhY2UqIG1BR25zc0lmYWNlID0gbnVsbHB0cjsKKyAgICBzdGF0aWMgc3A8SUFHbnNzQ2FsbGJhY2s+IHNBR25zc0NiSWZhY2U7CisgICAgc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IHNUaHJlYWRGdW5jQXJnc0xpc3Q7CisgICAgc3RhdGljIGJvb2wgc0ludGVyZmFjZUV4aXN0czsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfQUduc3NfSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvQUduc3NSaWwuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9BR25zc1JpbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ1ODMyNwotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvQUduc3NSaWwuY3BwCkBAIC0wLDAgKzEsMTUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0FHbnNzUmlsSW50ZXJmYWNlIgorCisjaW5jbHVkZSAiQUduc3NSaWwuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IEFHbnNzUmlsOjpzVGhyZWFkRnVuY0FyZ3NMaXN0Oworc3A8SUFHbnNzUmlsQ2FsbGJhY2s+IEFHbnNzUmlsOjpzQUduc3NSaWxDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgQUduc3NSaWw6OnNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKKworQUdwc1JpbENhbGxiYWNrcyBBR25zc1JpbDo6c0FHbnNzUmlsQ2IgPSB7CisgICAgLnJlcXVlc3Rfc2V0aWQgPSBBR25zc1JpbDo6cmVxdWVzdFNldElkLAorICAgIC5yZXF1ZXN0X3JlZmxvYyA9IEFHbnNzUmlsOjpyZXF1ZXN0UmVmTG9jLAorICAgIC5jcmVhdGVfdGhyZWFkX2NiID0gQUduc3NSaWw6OmNyZWF0ZVRocmVhZENiCit9OworCitBR25zc1JpbDo6QUduc3NSaWwoY29uc3QgQUdwc1JpbEludGVyZmFjZSogYUdwc1JpbElmYWNlKSA6IG1BR25zc1JpbElmYWNlKGFHcHNSaWxJZmFjZSkgeworICAgIC8qIEVycm9yIG91dCBpZiBhbiBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlIGFscmVhZHkgZXhpc3RzLiAqLworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc0ludGVyZmFjZUV4aXN0cyk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IHRydWU7Cit9CisKK0FHbnNzUmlsOjp+QUduc3NSaWwoKSB7CisgICAgc1RocmVhZEZ1bmNBcmdzTGlzdC5jbGVhcigpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKK30KKwordm9pZCBBR25zc1JpbDo6cmVxdWVzdFNldElkKHVpbnQzMl90IGZsYWdzKSB7CisgICAgaWYgKHNBR25zc1JpbENiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHTlNTUmlsIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBzQUduc3NSaWxDYklmYWNlLT5yZXF1ZXN0U2V0SWRDYihmbGFncyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgQUduc3NSaWw6OnJlcXVlc3RSZWZMb2ModWludDMyX3QgLypmbGFncyovKSB7CisgICAgaWYgKHNBR25zc1JpbENiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHTlNTUmlsIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBzQUduc3NSaWxDYklmYWNlLT5yZXF1ZXN0UmVmTG9jQ2IoKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKworcHRocmVhZF90IEFHbnNzUmlsOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzUmlsIGZvbGxvdy4KK1JldHVybjx2b2lkPiBBR25zc1JpbDo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SUFHbnNzUmlsQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUFHbnNzUmlsSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzUmlsIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzQUduc3NSaWxDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICBtQUduc3NSaWxJZmFjZS0+aW5pdCgmc0FHbnNzUmlsQ2IpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBBR25zc1JpbDo6c2V0UmVmTG9jYXRpb24oY29uc3QgSUFHbnNzUmlsOjpBR25zc1JlZkxvY2F0aW9uJiBhR25zc1JlZkxvY2F0aW9uKSAgeworICAgIGlmIChtQUduc3NSaWxJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUduc3NSaWwgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEFHcHNSZWZMb2NhdGlvbiBhR25zc1JlZmxvYzsKKyAgICBhR25zc1JlZmxvYy50eXBlID0gc3RhdGljX2Nhc3Q8dWludDE2X3Q+KGFHbnNzUmVmTG9jYXRpb24udHlwZSk7CisKKyAgICBhdXRvJiBjZWxsSUQgPSBhR25zc1JlZkxvY2F0aW9uLmNlbGxJRDsKKyAgICBhR25zc1JlZmxvYy51LmNlbGxJRCA9IHsKKyAgICAgICAgLnR5cGUgPSBzdGF0aWNfY2FzdDx1aW50MTZfdD4oY2VsbElELnR5cGUpLAorICAgICAgICAubWNjID0gY2VsbElELm1jYywKKyAgICAgICAgLm1uYyA9IGNlbGxJRC5tbmMsCisgICAgICAgIC5sYWMgPSBjZWxsSUQubGFjLAorICAgICAgICAuY2lkID0gY2VsbElELmNpZCwKKyAgICAgICAgLnRhYyA9IGNlbGxJRC50YWMsCisgICAgICAgIC5wY2lkID0gY2VsbElELnBjaWQKKyAgICB9OworCisgICAgbUFHbnNzUmlsSWZhY2UtPnNldF9yZWZfbG9jYXRpb24oJmFHbnNzUmVmbG9jLCBzaXplb2YoYUduc3NSZWZsb2MpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gQUduc3NSaWw6OnNldFNldElkKElBR25zc1JpbDo6U2V0SURUeXBlIHR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJiBzZXRpZCkgIHsKKyAgICBpZiAobUFHbnNzUmlsSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzUmlsIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1BR25zc1JpbElmYWNlLT5zZXRfc2V0X2lkKHN0YXRpY19jYXN0PHVpbnQxNl90Pih0eXBlKSwgc2V0aWQuY19zdHIoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JldHVybjxib29sPiBBR25zc1JpbDo6dXBkYXRlTmV0d29ya1N0YXRlKGJvb2wgY29ubmVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUFHbnNzUmlsOjpOZXR3b3JrVHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByb2FtaW5nKSB7CisgICAgaWYgKG1BR25zc1JpbElmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zc1JpbCBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBtQUduc3NSaWxJZmFjZS0+dXBkYXRlX25ldHdvcmtfc3RhdGUoY29ubmVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHR5cGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2FtaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyIC8qIGV4dHJhX2luZm8gKi8pOworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48Ym9vbD4gQUduc3NSaWw6OnVwZGF0ZU5ldHdvcmtBdmFpbGFiaWxpdHkoYm9vbCBhdmFpbGFibGUsIGNvbnN0IGhpZGxfc3RyaW5nJiBhcG4pICB7CisgICAgaWYgKG1BR25zc1JpbElmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zc1JpbCBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBtQUduc3NSaWxJZmFjZS0+dXBkYXRlX25ldHdvcmtfYXZhaWxhYmlsaXR5KGF2YWlsYWJsZSwgYXBuLmNfc3RyKCkpOworICAgIHJldHVybiB0cnVlOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9BR25zc1JpbC5oIGIvZ25zcy8xLjAvZGVmYXVsdC9BR25zc1JpbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyMTVhOWUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzUmlsLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfQUduc3NSaWxfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfQUduc3NSaWxfSF8KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUFHbnNzUmlsLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zc1JpbDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zc1JpbENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBBR05TUyBSSUwgc3VwcG9ydC4gQW4gQXNzaXN0ZWQgR05TUyBSYWRpbyBJbnRlcmZhY2UgTGF5ZXIgaW50ZXJmYWNlCisgKiBhbGxvd3MgdGhlIEdOU1MgY2hpcHNldCB0byByZXF1ZXN0IHJhZGlvIGludGVyZmFjZSBsYXllciBpbmZvcm1hdGlvbiBmcm9tIEFuZHJvaWQgcGxhdGZvcm0uCisgKiBFeGFtcGxlcyBvZiBzdWNoIGluZm9ybWF0aW9uIGFyZSByZWZlcmVuY2UgbG9jYXRpb24sIHVuaXF1ZSBzdWJzY3JpYmVyIElELCBwaG9uZSBudW1iZXIgc3RyaW5nCisgKiBhbmQgbmV0d29yayBhdmFpbGFiaWxpdHkgY2hhbmdlcy4gQWxzbyBjb250YWlucyB3cmFwcGVyIG1ldGhvZHMgdG8gYWxsb3cgbWV0aG9kcyBmcm9tCisgKiBJQUduc3NpUmlsQ2FsbGJhY2sgaW50ZXJmYWNlIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitzdHJ1Y3QgQUduc3NSaWwgOiBwdWJsaWMgSUFHbnNzUmlsIHsKKyAgICBBR25zc1JpbChjb25zdCBBR3BzUmlsSW50ZXJmYWNlKiBhR3BzUmlsSWZhY2UpOworICAgIH5BR25zc1JpbCgpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzUmlsIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJQUduc3NSaWwuaGFsLgorICAgICAqLworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJQUduc3NSaWxDYWxsYmFjaz4mIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0UmVmTG9jYXRpb24oY29uc3QgSUFHbnNzUmlsOjpBR25zc1JlZkxvY2F0aW9uJiBhZ25zc1JlZmxvY2F0aW9uKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0U2V0SWQoSUFHbnNzUmlsOjpTZXRJRFR5cGUgdHlwZSwgY29uc3QgaGlkbF9zdHJpbmcmIHNldGlkKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gdXBkYXRlTmV0d29ya1N0YXRlKGJvb2wgY29ubmVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUFHbnNzUmlsOjpOZXR3b3JrVHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByb2FtaW5nKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gdXBkYXRlTmV0d29ya0F2YWlsYWJpbGl0eShib29sIGF2YWlsYWJsZSwgY29uc3QgaGlkbF9zdHJpbmcmIGFwbikgb3ZlcnJpZGU7CisgICAgc3RhdGljIHZvaWQgcmVxdWVzdFNldElkKHVpbnQzMl90IGZsYWdzKTsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UmVmTG9jKHVpbnQzMl90IGZsYWdzKTsKKworICAgIC8qCisgICAgICogQ2FsbGJhY2sgbWV0aG9kIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi4gVGhpcyBtZXRob2QgaXMgbm90IHBhcnQgb2YgdGhlIElBR25zc1JpbCBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyBwdGhyZWFkX3QgY3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZyk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBBR3BzUmlsQ2FsbGJhY2tzIHNBR25zc1JpbENiOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBBR3BzUmlsSW50ZXJmYWNlKiBtQUduc3NSaWxJZmFjZSA9IG51bGxwdHI7CisgICAgc3RhdGljIHNwPElBR25zc1JpbENhbGxiYWNrPiBzQUduc3NSaWxDYklmYWNlOworICAgIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBzVGhyZWFkRnVuY0FyZ3NMaXN0OworICAgIHN0YXRpYyBib29sIHNJbnRlcmZhY2VFeGlzdHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0FHbnNzUmlsX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi9nbnNzLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRkYTY0ZQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDU2IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtaW1wbAorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIFRocmVhZENyZWF0aW9uV3JhcHBlci5jcHAgXAorICAgIEFHbnNzLmNwcCBcCisgICAgQUduc3NSaWwuY3BwIFwKKyAgICBHbnNzLmNwcCBcCisgICAgR25zc0JhdGNoaW5nLmNwcCBcCisgICAgR25zc0RlYnVnLmNwcCBcCisgICAgR25zc0dlb2ZlbmNpbmcuY3BwIFwKKyAgICBHbnNzTWVhc3VyZW1lbnQuY3BwIFwKKyAgICBHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuY3BwIFwKKyAgICBHbnNzTmkuY3BwIFwKKyAgICBHbnNzWHRyYS5jcHAgXAorICAgIEduc3NDb25maWd1cmF0aW9uLmNwcCBcCisgICAgR25zc1V0aWxzLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJ1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMCBcCisgICAgbGliaGFyZHdhcmUKKworTE9DQUxfQ0ZMQUdTICs9IC1XZXJyb3IKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZGwgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliYmluZGVyIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyArPSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zcy5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmY2VlMjQKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3MuY3BwCkBAIC0wLDAgKzEsNzYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0duc3NJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJHbnNzLmgiCisjaW5jbHVkZSA8R25zc1V0aWxzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBHbnNzOjpzVGhyZWFkRnVuY0FyZ3NMaXN0Oworc3A8SUduc3NDYWxsYmFjaz4gR25zczo6c0duc3NDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgR25zczo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworYm9vbCBHbnNzOjpzV2FrZWxvY2tIZWxkR25zcyA9IGZhbHNlOworYm9vbCBHbnNzOjpzV2FrZWxvY2tIZWxkRnVzZWQgPSBmYWxzZTsKKworR3BzQ2FsbGJhY2tzIEduc3M6OnNHbnNzQ2IgPSB7CisgICAgLnNpemUgPSBzaXplb2YoR3BzQ2FsbGJhY2tzKSwKKyAgICAubG9jYXRpb25fY2IgPSBsb2NhdGlvbkNiLAorICAgIC5zdGF0dXNfY2IgPSBzdGF0dXNDYiwKKyAgICAuc3Zfc3RhdHVzX2NiID0gZ3BzU3ZTdGF0dXNDYiwKKyAgICAubm1lYV9jYiA9IG5tZWFDYiwKKyAgICAuc2V0X2NhcGFiaWxpdGllc19jYiA9IHNldENhcGFiaWxpdGllc0NiLAorICAgIC5hY3F1aXJlX3dha2Vsb2NrX2NiID0gYWNxdWlyZVdha2Vsb2NrQ2IsCisgICAgLnJlbGVhc2Vfd2FrZWxvY2tfY2IgPSByZWxlYXNlV2FrZWxvY2tDYiwKKyAgICAuY3JlYXRlX3RocmVhZF9jYiA9IGNyZWF0ZVRocmVhZENiLAorICAgIC5yZXF1ZXN0X3V0Y190aW1lX2NiID0gcmVxdWVzdFV0Y1RpbWVDYiwKKyAgICAuc2V0X3N5c3RlbV9pbmZvX2NiID0gc2V0U3lzdGVtSW5mb0NiLAorICAgIC5nbnNzX3N2X3N0YXR1c19jYiA9IGduc3NTdlN0YXR1c0NiLAorfTsKKwordWludDMyX3QgR25zczo6c0NhcGFiaWxpdGllc0NhY2hlZCA9IDA7Cit1aW50MTZfdCBHbnNzOjpzWWVhck9mSHdDYWNoZWQgPSAwOworCitHbnNzOjpHbnNzKGdwc19kZXZpY2VfdCogZ25zc0RldmljZSkgOgorICAgICAgICBtRGVhdGhSZWNpcGllbnQobmV3IEduc3NIaWRsRGVhdGhSZWNpcGllbnQodGhpcykpIHsKKyAgICAvKiBFcnJvciBvdXQgaWYgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVyZmFjZSBhbHJlYWR5IGV4aXN0cy4gKi8KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKHNJbnRlcmZhY2VFeGlzdHMpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSB0cnVlOworCisgICAgaWYgKGduc3NEZXZpY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgZGV2aWNlX3QgaGFuZGxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbUduc3NJZmFjZSA9IGduc3NEZXZpY2UtPmdldF9ncHNfaW50ZXJmYWNlKGduc3NEZXZpY2UpOworfQorCitHbnNzOjp+R25zcygpIHsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7CisgICAgc1RocmVhZEZ1bmNBcmdzTGlzdC5jbGVhcigpOworfQorCit2b2lkIEduc3M6OmxvY2F0aW9uQ2IoR3BzTG9jYXRpb24qIGxvY2F0aW9uKSB7CisgICAgaWYgKHNHbnNzQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbiA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBsb2NhdGlvbiBmcm9tIEdOU1MgSEFMIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6Okduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb24gPSBjb252ZXJ0VG9HbnNzTG9jYXRpb24obG9jYXRpb24pOworICAgIGF1dG8gcmV0ID0gc0duc3NDYklmYWNlLT5nbnNzTG9jYXRpb25DYihnbnNzTG9jYXRpb24pOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3M6OnN0YXR1c0NiKEdwc1N0YXR1cyogZ25zc1N0YXR1cykgeworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZ25zc1N0YXR1cyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBHcHNTdGF0dXMgZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTdGF0dXNWYWx1ZSBzdGF0dXMgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SUduc3NDYWxsYmFjazo6R25zc1N0YXR1c1ZhbHVlPihnbnNzU3RhdHVzLT5zdGF0dXMpOworCisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NTdGF0dXNDYihzdGF0dXMpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3M6Omduc3NTdlN0YXR1c0NiKEduc3NTdlN0YXR1cyogc3RhdHVzKSB7CisgICAgaWYgKHNHbnNzQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChzdGF0dXMgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiSW52YWxpZCBzdGF0dXMgZnJvbSBHTlNTIEhBTCAlcyIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTdlN0YXR1cyBzdlN0YXR1czsKKyAgICBzdlN0YXR1cy5udW1TdnMgPSBzdGF0dXMtPm51bV9zdnM7CisKKyAgICBpZiAoc3ZTdGF0dXMubnVtU3ZzID4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KEduc3NNYXg6OlNWU19DT1VOVCkpIHsKKyAgICAgICAgQUxPR1coIlRvbyBtYW55IHNhdGVsbGl0ZXMgJXpkLiBDbGFtcHMgdG8gJWQuIiwgc3ZTdGF0dXMubnVtU3ZzLCBHbnNzTWF4OjpTVlNfQ09VTlQpOworICAgICAgICBzdlN0YXR1cy5udW1TdnMgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oR25zc01heDo6U1ZTX0NPVU5UKTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN2U3RhdHVzLm51bVN2czsgaSsrKSB7CisgICAgICAgIGF1dG8gc3ZJbmZvID0gc3RhdHVzLT5nbnNzX3N2X2xpc3RbaV07CisgICAgICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTdkluZm8gZ25zc1N2SW5mbyA9IHsKKyAgICAgICAgICAgIC5zdmlkID0gc3ZJbmZvLnN2aWQsCisgICAgICAgICAgICAuY29uc3RlbGxhdGlvbiA9IHN0YXRpY19jYXN0PAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpHbnNzQ29uc3RlbGxhdGlvblR5cGU+KAorICAgICAgICAgICAgICAgIHN2SW5mby5jb25zdGVsbGF0aW9uKSwKKyAgICAgICAgICAgIC5jTjBEYmh6ID0gc3ZJbmZvLmNfbjBfZGJoeiwKKyAgICAgICAgICAgIC5lbGV2YXRpb25EZWdyZWVzID0gc3ZJbmZvLmVsZXZhdGlvbiwKKyAgICAgICAgICAgIC5hemltdXRoRGVncmVlcyA9IHN2SW5mby5hemltdXRoLAorICAgICAgICAgICAgLy8gT2xkZXIgY2hpcHNldHMgZG8gbm90IHByb3ZpZGUgY2FycmllciBmcmVxdWVuY3ksIGhlbmNlCisgICAgICAgICAgICAvLyBIQVNfQ0FSUklFUl9GUkVRVUVOQ1kgZmxhZyBhbmQgdGhlIGNhcnJpZXJGcmVxdWVuY3lIeiBmaWVsZHMKKyAgICAgICAgICAgIC8vIGFyZSBub3Qgc2V0LiBTbyB3ZSBhcmUgcmVzZXR0aW5nIGJvdGggZmllbGRzIGhlcmUuCisgICAgICAgICAgICAuc3ZGbGFnID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oCisgICAgICAgICAgICAgICAgc3ZJbmZvLmZsYWdzICY9IH4oc3RhdGljX2Nhc3Q8dWludDhfdD4oCisgICAgICAgICAgICAgICAgICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTdkZsYWdzOjpIQVNfQ0FSUklFUl9GUkVRVUVOQ1kpKSksCisgICAgICAgICAgICAuY2FycmllckZyZXF1ZW5jeUh6ID0gMH07CisgICAgICAgIHN2U3RhdHVzLmduc3NTdkxpc3RbaV0gPSBnbnNzU3ZJbmZvOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gc0duc3NDYklmYWNlLT5nbnNzU3ZTdGF0dXNDYihzdlN0YXR1cyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKKy8qCisgKiBUaGlzIGVudW0gaXMgdXNlZCBieSBncHNTdlN0YXR1c0NiKCkgbWV0aG9kIGJlbG93IHRvIGNvbnZlcnQgR3BzU3ZTdGF0dXMKKyAqIHRvIEduc3NTdlN0YXR1cyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gSXQgaXMgb25seSB1c2VkIGJ5IHRoZSBkZWZhdWx0CisgKiBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgbm90IHBhcnQgb2YgdGhlIEdOU1MgaW50ZXJmYWNlLgorICovCitlbnVtIFN2aWRWYWx1ZXMgOiB1aW50MTZfdCB7CisgICAgR0xPTkFTU19TVklEX09GRlNFVCA9IDY0LAorICAgIEdMT05BU1NfU1ZJRF9DT1VOVCA9IDI0LAorICAgIEJFSURPVV9TVklEX09GRlNFVCA9IDIwMCwKKyAgICBCRUlET1VfU1ZJRF9DT1VOVCA9IDM1LAorICAgIFNCQVNfU1ZJRF9NSU4gPSAzMywKKyAgICBTQkFTX1NWSURfTUFYID0gNjQsCisgICAgU0JBU19TVklEX0FERCA9IDg3LAorICAgIFFaU1NfU1ZJRF9NSU4gPSAxOTMsCisgICAgUVpTU19TVklEX01BWCA9IDIwMAorfTsKKworLyoKKyAqIFRoZSBmb2xsb3dpbmcgY29kZSB0aGF0IGNvbnZlcnRzIEdwc1N2U3RhdHVzIHRvIEduc3NTdlN0YXR1cyBpcyBtb3ZlZCBoZXJlIGZyb20KKyAqIEduc3NMb2NhdGlvblByb3ZpZGVyLiBHbnNzTG9jYXRpb25Qcm92aWRlciBkb2VzIG5vdCByZXF1aXJlIGl0IGFueW1vcmUgc2luY2UgR3BzU3ZTdGF0dXMgaXMKKyAqIGJlaW5nIGRlcHJlY2F0ZWQgYW5kIGlzIG5vIGxvbmdlciBwYXJ0IG9mIHRoZSBHTlNTIGludGVyZmFjZS4KKyAqLwordm9pZCBHbnNzOjpncHNTdlN0YXR1c0NiKEdwc1N2U3RhdHVzKiBzdkluZm8pIHsKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHN2SW5mbyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJJbnZhbGlkIHN0YXR1cyBmcm9tIEdOU1MgSEFMICVzIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSUduc3NDYWxsYmFjazo6R25zc1N2U3RhdHVzIHN2U3RhdHVzOworICAgIHN2U3RhdHVzLm51bVN2cyA9IHN2SW5mby0+bnVtX3N2czsKKyAgICAvKgorICAgICAqIENsYW1wIHRoZSBsaXN0IHNpemUgc2luY2UgR25zc1N2U3RhdHVzIGNhbiBzdXBwb3J0IGEgbWF4aW11bSBvZgorICAgICAqIEduc3NNYXg6OlNWU19DT1VOVCBlbnRyaWVzLgorICAgICAqLworICAgIGlmIChzdlN0YXR1cy5udW1TdnMgPiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oR25zc01heDo6U1ZTX0NPVU5UKSkgeworICAgICAgICBBTE9HVygiVG9vIG1hbnkgc2F0ZWxsaXRlcyAlemQuIENsYW1wcyB0byAlZC4iLCBzdlN0YXR1cy5udW1TdnMsIEduc3NNYXg6OlNWU19DT1VOVCk7CisgICAgICAgIHN2U3RhdHVzLm51bVN2cyA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihHbnNzTWF4OjpTVlNfQ09VTlQpOworICAgIH0KKworICAgIHVpbnQzMl90IGVwaGVtZXJpc01hc2sgPSBzdkluZm8tPmVwaGVtZXJpc19tYXNrOworICAgIHVpbnQzMl90IGFsbWFuYWNNYXNrID0gc3ZJbmZvLT5hbG1hbmFjX21hc2s7CisgICAgdWludDMyX3QgdXNlZEluRml4TWFzayA9IHN2SW5mby0+dXNlZF9pbl9maXhfbWFzazsKKyAgICAvKgorICAgICAqIENvbnZlcnNpb24gZnJvbSBHcHNTdkluZm8gdG8gSUduc3NDYWxsYmFjazo6R25zc1N2SW5mbyBoYXBwZW5zIGJlbG93LgorICAgICAqLworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3ZTdGF0dXMubnVtU3ZzOyBpKyspIHsKKyAgICAgICAgSUduc3NDYWxsYmFjazo6R25zc1N2SW5mbyYgaW5mbyA9IHN2U3RhdHVzLmduc3NTdkxpc3RbaV07CisgICAgICAgIGluZm8uc3ZpZCA9IHN2SW5mby0+c3ZfbGlzdFtpXS5wcm47CisgICAgICAgIGlmIChpbmZvLnN2aWQgPj0gMSAmJiBpbmZvLnN2aWQgPD0gMzIpIHsKKyAgICAgICAgICAgIGluZm8uY29uc3RlbGxhdGlvbiA9IEduc3NDb25zdGVsbGF0aW9uVHlwZTo6R1BTOworICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3ZpZCA+IEdMT05BU1NfU1ZJRF9PRkZTRVQgJiYKKyAgICAgICAgICAgICAgICAgICBpbmZvLnN2aWQgPD0gR0xPTkFTU19TVklEX09GRlNFVCArIEdMT05BU1NfU1ZJRF9DT1VOVCkgeworICAgICAgICAgICAgaW5mby5jb25zdGVsbGF0aW9uID0gR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpHTE9OQVNTOworICAgICAgICAgICAgaW5mby5zdmlkIC09IEdMT05BU1NfU1ZJRF9PRkZTRVQ7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zdmlkID4gQkVJRE9VX1NWSURfT0ZGU0VUICYmCisgICAgICAgICAgICAgICAgIGluZm8uc3ZpZCA8PSBCRUlET1VfU1ZJRF9PRkZTRVQgKyBCRUlET1VfU1ZJRF9DT1VOVCkgeworICAgICAgICAgICAgaW5mby5jb25zdGVsbGF0aW9uID0gR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpCRUlET1U7CisgICAgICAgICAgICBpbmZvLnN2aWQgLT0gQkVJRE9VX1NWSURfT0ZGU0VUOworICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3ZpZCA+PSBTQkFTX1NWSURfTUlOICYmIGluZm8uc3ZpZCA8PSBTQkFTX1NWSURfTUFYKSB7CisgICAgICAgICAgICBpbmZvLmNvbnN0ZWxsYXRpb24gPSBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OlNCQVM7CisgICAgICAgICAgICBpbmZvLnN2aWQgKz0gU0JBU19TVklEX0FERDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnN2aWQgPj0gUVpTU19TVklEX01JTiAmJiBpbmZvLnN2aWQgPD0gUVpTU19TVklEX01BWCkgeworICAgICAgICAgICAgaW5mby5jb25zdGVsbGF0aW9uID0gR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpRWlNTOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0QoIlVua25vd24gY29uc3RlbGxhdGlvbiB0eXBlIHdpdGggU3ZpZCA9ICVkLiIsIGluZm8uc3ZpZCk7CisgICAgICAgICAgICBpbmZvLmNvbnN0ZWxsYXRpb24gPSBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OlVOS05PV047CisgICAgICAgIH0KKworICAgICAgICBpbmZvLmNOMERiaHogPSBzdkluZm8tPnN2X2xpc3RbaV0uc25yOworICAgICAgICBpbmZvLmVsZXZhdGlvbkRlZ3JlZXMgPSBzdkluZm8tPnN2X2xpc3RbaV0uZWxldmF0aW9uOworICAgICAgICBpbmZvLmF6aW11dGhEZWdyZWVzID0gc3ZJbmZvLT5zdl9saXN0W2ldLmF6aW11dGg7CisgICAgICAgIC8vIFRPRE86IGIvMzE3MDIyMzYKKyAgICAgICAgaW5mby5zdkZsYWcgPSBzdGF0aWNfY2FzdDx1aW50OF90PihJR25zc0NhbGxiYWNrOjpHbnNzU3ZGbGFnczo6Tk9ORSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogT25seSBHUFMgaW5mbyBpcyB2YWxpZCBmb3IgdGhlc2UgZmllbGRzLCBhcyB0aGVzZSBtYXNrcyBhcmUganVzdCAzMgorICAgICAgICAgKiBiaXRzLCBieSBHUFMgcHJuLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGluZm8uY29uc3RlbGxhdGlvbiA9PSBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OkdQUykgeworICAgICAgICAgICAgaW50MzJfdCBzdmlkTWFzayA9ICgxIDw8IChpbmZvLnN2aWQgLSAxKSk7CisgICAgICAgICAgICBpZiAoKGVwaGVtZXJpc01hc2sgJiBzdmlkTWFzaykgIT0gMCkgeworICAgICAgICAgICAgICAgIGluZm8uc3ZGbGFnIHw9IElHbnNzQ2FsbGJhY2s6Okduc3NTdkZsYWdzOjpIQVNfRVBIRU1FUklTX0RBVEE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGFsbWFuYWNNYXNrICYgc3ZpZE1hc2spICE9IDApIHsKKyAgICAgICAgICAgICAgICBpbmZvLnN2RmxhZyB8PSBJR25zc0NhbGxiYWNrOjpHbnNzU3ZGbGFnczo6SEFTX0FMTUFOQUNfREFUQTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgodXNlZEluRml4TWFzayAmIHN2aWRNYXNrKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW5mby5zdkZsYWcgfD0gSUduc3NDYWxsYmFjazo6R25zc1N2RmxhZ3M6OlVTRURfSU5fRklYOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NTdlN0YXR1c0NiKHN2U3RhdHVzKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzOjpubWVhQ2IoR3BzVXRjVGltZSB0aW1lc3RhbXAsIGNvbnN0IGNoYXIqIG5tZWEsIGludCBsZW5ndGgpIHsKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nIG5tZWFTdHJpbmc7CisgICAgbm1lYVN0cmluZy5zZXRUb0V4dGVybmFsKG5tZWEsIGxlbmd0aCk7CisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NObWVhQ2IodGltZXN0YW1wLCBubWVhU3RyaW5nKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzOjpzZXRDYXBhYmlsaXRpZXNDYih1aW50MzJfdCBjYXBhYmlsaXRpZXMpIHsKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NTZXRDYXBhYmlsaXRlc0NiKGNhcGFiaWxpdGllcyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9CisKKyAgICAvLyBTYXZlIGZvciByZWNvbm5lY3Rpb24gd2hlbiBzb21lIGxlZ2FjeSBoYWwncyBkb24ndCByZXNlbmQgdGhpcyBpbmZvCisgICAgc0NhcGFiaWxpdGllc0NhY2hlZCA9IGNhcGFiaWxpdGllczsKK30KKwordm9pZCBHbnNzOjphY3F1aXJlV2FrZWxvY2tDYigpIHsKKyAgICBhY3F1aXJlV2FrZWxvY2tHbnNzKCk7Cit9CisKK3ZvaWQgR25zczo6cmVsZWFzZVdha2Vsb2NrQ2IoKSB7CisgICAgcmVsZWFzZVdha2Vsb2NrR25zcygpOworfQorCisKK3ZvaWQgR25zczo6YWNxdWlyZVdha2Vsb2NrR25zcygpIHsKKyAgICBzV2FrZWxvY2tIZWxkR25zcyA9IHRydWU7CisgICAgdXBkYXRlV2FrZWxvY2soKTsKK30KKwordm9pZCBHbnNzOjpyZWxlYXNlV2FrZWxvY2tHbnNzKCkgeworICAgIHNXYWtlbG9ja0hlbGRHbnNzID0gZmFsc2U7CisgICAgdXBkYXRlV2FrZWxvY2soKTsKK30KKwordm9pZCBHbnNzOjphY3F1aXJlV2FrZWxvY2tGdXNlZCgpIHsKKyAgICBzV2FrZWxvY2tIZWxkRnVzZWQgPSB0cnVlOworICAgIHVwZGF0ZVdha2Vsb2NrKCk7Cit9CisKK3ZvaWQgR25zczo6cmVsZWFzZVdha2Vsb2NrRnVzZWQoKSB7CisgICAgc1dha2Vsb2NrSGVsZEZ1c2VkID0gZmFsc2U7CisgICAgdXBkYXRlV2FrZWxvY2soKTsKK30KKwordm9pZCBHbnNzOjp1cGRhdGVXYWtlbG9jaygpIHsKKyAgICAvLyBUcmFjayB0aGUgc3RhdGUgb2YgdGhlIGxhc3QgcmVxdWVzdCAtIGluIGNhc2UgdGhlIHdha2UgbG9jayBpbiB0aGUgbGF5ZXIgYWJvdmUgaXMgcmVmZXJlbmNlCisgICAgLy8gY291bnRlZC4KKyAgICBzdGF0aWMgYm9vbCBzV2FrZWxvY2tIZWxkID0gZmFsc2U7CisKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHNXYWtlbG9ja0hlbGRHbnNzIHx8IHNXYWtlbG9ja0hlbGRGdXNlZCkgeworICAgICAgICBpZiAoIXNXYWtlbG9ja0hlbGQpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlczogR05TUyBIQUwgV2FrZWxvY2sgYWNxdWlyZWQgZHVlIHRvIGdwczogJWQsIGZ1c2VkOiAlZCIsIF9fZnVuY19fLAorICAgICAgICAgICAgICAgICAgICBzV2FrZWxvY2tIZWxkR25zcywgc1dha2Vsb2NrSGVsZEZ1c2VkKTsKKyAgICAgICAgICAgIHNXYWtlbG9ja0hlbGQgPSB0cnVlOworICAgICAgICAgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NBY3F1aXJlV2FrZWxvY2tDYigpOworICAgICAgICAgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHNXYWtlbG9ja0hlbGQpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlczogR05TUyBIQUwgV2FrZWxvY2sgcmVsZWFzZWQiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSAgeworICAgICAgICAgICAgLy8gVG8gYXZvaWQgYnVybmluZyBwb3dlciwgYWx3YXlzIHJlbGVhc2UsIGV2ZW4gaWYgbG9naWMgZ290IGhlcmUgd2l0aCBzV2FrZWxvY2sgZmFsc2UKKyAgICAgICAgICAgIC8vIHdoaWNoIGl0IHNob3VsZG4ndCwgdW5sZXNzIHVuZGVybHlpbmcgKi5oIGltcGxlbWVudGF0aW9uIG1ha2VzIGR1cGxpY2F0ZSByZXF1ZXN0cy4KKyAgICAgICAgICAgIEFMT0dXKCIlczogR05TUyBIQUwgV2FrZWxvY2sgcmVsZWFzZWQsIGR1cGxpY2F0ZSByZXF1ZXN0IiwgX19mdW5jX18pOworICAgICAgICB9CisgICAgICAgIHNXYWtlbG9ja0hlbGQgPSBmYWxzZTsKKyAgICAgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NSZWxlYXNlV2FrZWxvY2tDYigpOworICAgICAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBHbnNzOjpyZXF1ZXN0VXRjVGltZUNiKCkgeworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IHNHbnNzQ2JJZmFjZS0+Z25zc1JlcXVlc3RUaW1lQ2IoKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3B0aHJlYWRfdCBHbnNzOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCit2b2lkIEduc3M6OnNldFN5c3RlbUluZm9DYihjb25zdCBMZWdhY3lHbnNzU3lzdGVtSW5mbyogaW5mbykgeworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaW5mbyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJJbnZhbGlkIEduc3NTeXN0ZW1JbmZvIGZyb20gR05TUyBIQUwgJXMiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJR25zc0NhbGxiYWNrOjpHbnNzU3lzdGVtSW5mbyBnbnNzSW5mbyA9IHsKKyAgICAgICAgLnllYXJPZkh3ID0gaW5mby0+eWVhcl9vZl9odworICAgIH07CisKKyAgICBhdXRvIHJldCA9IHNHbnNzQ2JJZmFjZS0+Z25zc1NldFN5c3RlbUluZm9DYihnbnNzSW5mbyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorCisgICAgLy8gU2F2ZSBmb3IgcmVjb25uZWN0aW9uIHdoZW4gc29tZSBsZWdhY3kgaGFsJ3MgZG9uJ3QgcmVzZW5kIHRoaXMgaW5mbworICAgIHNZZWFyT2ZId0NhY2hlZCA9IGluZm8tPnllYXJfb2ZfaHc7Cit9CisKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzIGZvbGxvdy4KK1JldHVybjxib29sPiBHbnNzOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc0NhbGxiYWNrPiYgY2FsbGJhY2spICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGNhbGxiYWNrID09IG51bGxwdHIpICB7CisgICAgICAgIEFMT0dFKCIlczogTnVsbCBjYWxsYmFjayBpZ25vcmVkIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKHNHbnNzQ2JJZmFjZSAhPSBOVUxMKSB7CisgICAgICAgIEFMT0dXKCIlcyBjYWxsZWQgbW9yZSB0aGFuIG9uY2UuIFVuZXhwZWN0ZWQgdW5sZXNzIHRlc3QuIiwgX19mdW5jX18pOworICAgICAgICBzR25zc0NiSWZhY2UtPnVubGlua1RvRGVhdGgobURlYXRoUmVjaXBpZW50KTsKKyAgICB9CisKKyAgICBzR25zc0NiSWZhY2UgPSBjYWxsYmFjazsKKyAgICBjYWxsYmFjay0+bGlua1RvRGVhdGgobURlYXRoUmVjaXBpZW50LCAwIC8qY29va2llKi8pOworCisgICAgLy8gSWYgdGhpcyB3YXMgcmVjZWl2ZWQgaW4gdGhlIHBhc3QsIHNlbmQgaXQgdXAgYWdhaW4gdG8gcmVmcmVzaCBjYWxsZXIuCisgICAgLy8gbUduc3NJZmFjZSB3aWxsIG92ZXJyaWRlIGFmdGVyIGluaXQoKSBpcyBjYWxsZWQgYmVsb3csIGlmIG5lZWRlZAorICAgIC8vICh0aG91Z2ggaXQncyB1bmxpa2VseSB0aGUgZ3BzLmggY2FwYWJpbGl0aWVzIG9yIHN5c3RlbSBpbmZvIHdpbGwgY2hhbmdlLikKKyAgICBpZiAoc0NhcGFiaWxpdGllc0NhY2hlZCAhPSAwKSB7CisgICAgICAgIHNldENhcGFiaWxpdGllc0NiKHNDYXBhYmlsaXRpZXNDYWNoZWQpOworICAgIH0KKyAgICBpZiAoc1llYXJPZkh3Q2FjaGVkICE9IDApIHsKKyAgICAgICAgTGVnYWN5R25zc1N5c3RlbUluZm8gaW5mbzsKKyAgICAgICAgaW5mby55ZWFyX29mX2h3ID0gc1llYXJPZkh3Q2FjaGVkOworICAgICAgICBzZXRTeXN0ZW1JbmZvQ2IoJmluZm8pOworICAgIH0KKworICAgIHJldHVybiAobUduc3NJZmFjZS0+aW5pdCgmc0duc3NDYikgPT0gMCk7Cit9CisKK1JldHVybjxib29sPiBHbnNzOjpzdGFydCgpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtR25zc0lmYWNlLT5zdGFydCgpID09IDApOworfQorCitSZXR1cm48Ym9vbD4gR25zczo6c3RvcCgpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtR25zc0lmYWNlLT5zdG9wKCkgPT0gMCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzOjpjbGVhbnVwKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUduc3NJZmFjZS0+Y2xlYW51cCgpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gR25zczo6aW5qZWN0TG9jYXRpb24oZG91YmxlIGxhdGl0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbG9uZ2l0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBhY2N1cmFjeU1ldGVycykgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1HbnNzSWZhY2UtPmluamVjdF9sb2NhdGlvbihsYXRpdHVkZURlZ3JlZXMsIGxvbmdpdHVkZURlZ3JlZXMsIGFjY3VyYWN5TWV0ZXJzKSA9PSAwKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3M6OmluamVjdFRpbWUoaW50NjRfdCB0aW1lTXMsIGludDY0X3QgdGltZVJlZmVyZW5jZU1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB1bmNlcnRhaW50eU1zKSB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtR25zc0lmYWNlLT5pbmplY3RfdGltZSh0aW1lTXMsIHRpbWVSZWZlcmVuY2VNcywgdW5jZXJ0YWludHlNcykgPT0gMCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzOjpkZWxldGVBaWRpbmdEYXRhKElHbnNzOjpHbnNzQWlkaW5nRGF0YSBhaWRpbmdEYXRhRmxhZ3MpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzSWZhY2UtPmRlbGV0ZV9haWRpbmdfZGF0YShzdGF0aWNfY2FzdDxHcHNBaWRpbmdEYXRhPihhaWRpbmdEYXRhRmxhZ3MpKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3M6OnNldFBvc2l0aW9uTW9kZShJR25zczo6R25zc1Bvc2l0aW9uTW9kZSBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJR25zczo6R25zc1Bvc2l0aW9uUmVjdXJyZW5jZSByZWN1cnJlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtaW5JbnRlcnZhbE1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBwcmVmZXJyZWRBY2N1cmFjeU1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcHJlZmVycmVkVGltZU1zKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiAobUduc3NJZmFjZS0+c2V0X3Bvc2l0aW9uX21vZGUoc3RhdGljX2Nhc3Q8R3BzUG9zaXRpb25Nb2RlPihtb2RlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEdwc1Bvc2l0aW9uUmVjdXJyZW5jZT4ocmVjdXJyZW5jZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5JbnRlcnZhbE1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZmVycmVkQWNjdXJhY3lNZXRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmZXJyZWRUaW1lTXMpID09IDApOworfQorCitSZXR1cm48c3A8SUFHbnNzUmlsPj4gR25zczo6Z2V0RXh0ZW5zaW9uQUduc3NSaWwoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzUmlsID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgQUdwc1JpbEludGVyZmFjZSogYWdwc1JpbElmYWNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgQUdwc1JpbEludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgIG1HbnNzSWZhY2UtPmdldF9leHRlbnNpb24oQUdQU19SSUxfSU5URVJGQUNFKSk7CisgICAgICAgIGlmIChhZ3BzUmlsSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEduc3NSaWwgaW50ZXJmYWNlIG5vdCBpbXBsZW1lbnRlZCBieSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzUmlsID0gbmV3IEFHbnNzUmlsKGFncHNSaWxJZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG1HbnNzUmlsOworfQorCitSZXR1cm48c3A8SUduc3NDb25maWd1cmF0aW9uPj4gR25zczo6Z2V0RXh0ZW5zaW9uR25zc0NvbmZpZ3VyYXRpb24oKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzQ29uZmlnID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgR25zc0NvbmZpZ3VyYXRpb25JbnRlcmZhY2UqIGduc3NDb25maWdJZmFjZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgR25zc0NvbmZpZ3VyYXRpb25JbnRlcmZhY2UqPigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1HbnNzSWZhY2UtPmdldF9leHRlbnNpb24oR05TU19DT05GSUdVUkFUSU9OX0lOVEVSRkFDRSkpOworCisgICAgICAgIGlmIChnbnNzQ29uZmlnSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEduc3NDb25maWd1cmF0aW9uIGludGVyZmFjZSBub3QgaW1wbGVtZW50ZWQgYnkgR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtR25zc0NvbmZpZyA9IG5ldyBHbnNzQ29uZmlndXJhdGlvbihnbnNzQ29uZmlnSWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtR25zc0NvbmZpZzsKK30KKworUmV0dXJuPHNwPElHbnNzR2VvZmVuY2luZz4+IEduc3M6OmdldEV4dGVuc2lvbkduc3NHZW9mZW5jaW5nKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIGNvbnN0IEdwc0dlb2ZlbmNpbmdJbnRlcmZhY2UqIGdwc0dlb2ZlbmNpbmdJZmFjZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgR3BzR2VvZmVuY2luZ0ludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfR0VPRkVOQ0lOR19JTlRFUkZBQ0UpKTsKKworICAgICAgICBpZiAoZ3BzR2VvZmVuY2luZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzR2VvZmVuY2luZyBpbnRlcmZhY2Ugbm90IGltcGxlbWVudGVkIGJ5IEdOU1MgSEFMIiwgX19mdW5jX18pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUduc3NHZW9mZW5jaW5nSWZhY2UgPSBuZXcgR25zc0dlb2ZlbmNpbmcoZ3BzR2VvZmVuY2luZ0lmYWNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBtR25zc0dlb2ZlbmNpbmdJZmFjZTsKK30KKworUmV0dXJuPHNwPElBR25zcz4+IEduc3M6OmdldEV4dGVuc2lvbkFHbnNzKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtQUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIGNvbnN0IEFHcHNJbnRlcmZhY2UqIGFncHNJZmFjZSA9IHN0YXRpY19jYXN0PGNvbnN0IEFHcHNJbnRlcmZhY2UqPigKKyAgICAgICAgICAgICAgICBtR25zc0lmYWNlLT5nZXRfZXh0ZW5zaW9uKEFHUFNfSU5URVJGQUNFKSk7CisgICAgICAgIGlmIChhZ3BzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEFHbnNzIGludGVyZmFjZSBub3QgaW1wbGVtZW50ZWQgYnkgR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtQUduc3NJZmFjZSA9IG5ldyBBR25zcyhhZ3BzSWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtQUduc3NJZmFjZTsKK30KKworUmV0dXJuPHNwPElHbnNzTmk+PiBHbnNzOjpnZXRFeHRlbnNpb25HbnNzTmkoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzTmkgPT0gbnVsbHB0cikgeworICAgICAgICBjb25zdCBHcHNOaUludGVyZmFjZSogZ3BzTmlJZmFjZSA9IHN0YXRpY19jYXN0PGNvbnN0IEdwc05pSW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfTklfSU5URVJGQUNFKSk7CisgICAgICAgIGlmIChncHNOaUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzTmkgaW50ZXJmYWNlIG5vdCBpbXBsZW1lbnRlZCBieSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzTmkgPSBuZXcgR25zc05pKGdwc05pSWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtR25zc05pOworfQorCitSZXR1cm48c3A8SUduc3NNZWFzdXJlbWVudD4+IEduc3M6OmdldEV4dGVuc2lvbkduc3NNZWFzdXJlbWVudCgpIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtR25zc01lYXN1cmVtZW50ID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgR3BzTWVhc3VyZW1lbnRJbnRlcmZhY2UqIGdwc01lYXN1cmVtZW50SWZhY2UgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEdwc01lYXN1cmVtZW50SW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgICAgICAgICBtR25zc0lmYWNlLT5nZXRfZXh0ZW5zaW9uKEdQU19NRUFTVVJFTUVOVF9JTlRFUkZBQ0UpKTsKKworICAgICAgICBpZiAoZ3BzTWVhc3VyZW1lbnRJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiJXMgR25zc01lYXN1cmVtZW50IGludGVyZmFjZSBub3QgaW1wbGVtZW50ZWQgYnkgR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtR25zc01lYXN1cmVtZW50ID0gbmV3IEduc3NNZWFzdXJlbWVudChncHNNZWFzdXJlbWVudElmYWNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbUduc3NNZWFzdXJlbWVudDsKK30KKworUmV0dXJuPHNwPElHbnNzTmF2aWdhdGlvbk1lc3NhZ2U+PiBHbnNzOjpnZXRFeHRlbnNpb25HbnNzTmF2aWdhdGlvbk1lc3NhZ2UoKSB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobUduc3NOYXZpZ2F0aW9uTWVzc2FnZSA9PSBudWxscHRyKSB7CisgICAgICAgIGNvbnN0IEdwc05hdmlnYXRpb25NZXNzYWdlSW50ZXJmYWNlKiBncHNOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBHcHNOYXZpZ2F0aW9uTWVzc2FnZUludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfTkFWSUdBVElPTl9NRVNTQUdFX0lOVEVSRkFDRSkpOworCisgICAgICAgIGlmIChncHNOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgaW50ZXJmYWNlIG5vdCBpbXBsZW1lbnRlZCBieSBHTlNTIEhBTCIsCisgICAgICAgICAgICAgICAgICBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtR25zc05hdmlnYXRpb25NZXNzYWdlID0gbmV3IEduc3NOYXZpZ2F0aW9uTWVzc2FnZShncHNOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBtR25zc05hdmlnYXRpb25NZXNzYWdlOworfQorCitSZXR1cm48c3A8SUduc3NYdHJhPj4gR25zczo6Z2V0RXh0ZW5zaW9uWHRyYSgpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobUduc3NYdHJhSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBjb25zdCBHcHNYdHJhSW50ZXJmYWNlKiBncHNYdHJhSWZhY2UgPSBzdGF0aWNfY2FzdDxjb25zdCBHcHNYdHJhSW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfWFRSQV9JTlRFUkZBQ0UpKTsKKworICAgICAgICBpZiAoZ3BzWHRyYUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzWHRyYSBpbnRlcmZhY2Ugbm90IGltcGxlbWVudGVkIGJ5IEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzWHRyYUlmYWNlID0gbmV3IEduc3NYdHJhKGdwc1h0cmFJZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbUduc3NYdHJhSWZhY2U7Cit9CisKK1JldHVybjxzcDxJR25zc0RlYnVnPj4gR25zczo6Z2V0RXh0ZW5zaW9uR25zc0RlYnVnKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtR25zc0RlYnVnID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgR3BzRGVidWdJbnRlcmZhY2UqIGdwc0RlYnVnSWZhY2UgPSBzdGF0aWNfY2FzdDxjb25zdCBHcHNEZWJ1Z0ludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgIG1HbnNzSWZhY2UtPmdldF9leHRlbnNpb24oR1BTX0RFQlVHX0lOVEVSRkFDRSkpOworCisgICAgICAgIGlmIChncHNEZWJ1Z0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogR25zc0RlYnVnIGludGVyZmFjZSBpcyBub3QgaW1wbGVtZW50ZWQgYnkgSEFMIiwgX19mdW5jX18pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUduc3NEZWJ1ZyA9IG5ldyBHbnNzRGVidWcoZ3BzRGVidWdJZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbUduc3NEZWJ1ZzsKK30KKworUmV0dXJuPHNwPElHbnNzQmF0Y2hpbmc+PiBHbnNzOjpnZXRFeHRlbnNpb25HbnNzQmF0Y2hpbmcoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzQmF0Y2hpbmcgPT0gbnVsbHB0cikgeworICAgICAgICBod19tb2R1bGVfdCogbW9kdWxlOworICAgICAgICBjb25zdCBGbHBMb2NhdGlvbkludGVyZmFjZSogZmxwTG9jYXRpb25JZmFjZSA9IG51bGxwdHI7CisgICAgICAgIGludCBlcnIgPSBod19nZXRfbW9kdWxlKEZVU0VEX0xPQ0FUSU9OX0hBUkRXQVJFX01PRFVMRV9JRCwgKGh3X21vZHVsZV90IGNvbnN0KiopJm1vZHVsZSk7CisKKyAgICAgICAgaWYgKGVyciAhPSAwKSB7CisgICAgICAgICAgICBBTE9HRSgiZ25zcyBmbHAgaHdfZ2V0X21vZHVsZSBmYWlsZWQ6ICVkIiwgZXJyKTsKKyAgICAgICAgfSBlbHNlIGlmIChtb2R1bGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIkZ1c2VkIExvY2F0aW9uIGh3X2dldF9tb2R1bGUgcmV0dXJuZWQgbnVsbCBtb2R1bGUiKTsKKyAgICAgICAgfSBlbHNlIGlmIChtb2R1bGUtPm1ldGhvZHMgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIkZ1c2VkIExvY2F0aW9uIGh3X2dldF9tb2R1bGUgcmV0dXJuZWQgbnVsbCBtZXRob2RzIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBod19kZXZpY2VfdCogZGV2aWNlOworICAgICAgICAgICAgZXJyID0gbW9kdWxlLT5tZXRob2RzLT5vcGVuKG1vZHVsZSwgRlVTRURfTE9DQVRJT05fSEFSRFdBUkVfTU9EVUxFX0lELCAmZGV2aWNlKTsKKyAgICAgICAgICAgIGlmIChlcnIgIT0gMCkgeworICAgICAgICAgICAgICAgIEFMT0dFKCJmbHBEZXZpY2Ugb3BlbiBmYWlsZWQ6ICVkIiwgZXJyKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZmxwX2RldmljZV90ICogZmxwRGV2aWNlID0gcmVpbnRlcnByZXRfY2FzdDxmbHBfZGV2aWNlX3QqPihkZXZpY2UpOworICAgICAgICAgICAgICAgIGZscExvY2F0aW9uSWZhY2UgPSBmbHBEZXZpY2UtPmdldF9mbHBfaW50ZXJmYWNlKGZscERldmljZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZmxwTG9jYXRpb25JZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IEduc3NCYXRjaGluZyBpbnRlcmZhY2UgaXMgbm90IGltcGxlbWVudGVkIGJ5IEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzQmF0Y2hpbmcgPSBuZXcgR25zc0JhdGNoaW5nKGZscExvY2F0aW9uSWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtR25zc0JhdGNoaW5nOworfQorCit2b2lkIEduc3M6OmhhbmRsZUhpZGxEZWF0aCgpIHsKKyAgICBBTE9HVygiR05TUyBzZXJ2aWNlIG5vdGljZWQgSElETCBkZWF0aC4gU3RvcHBpbmcgYWxsIEdOU1Mgb3BlcmF0aW9ucy4iKTsKKworICAgIC8vIGNvbW1hbmRzIGRvd24gdG8gdGhlIEhBTCBpbXBsZW1lbnRhdGlvbgorICAgIHN0b3AoKTsgLy8gc3RvcCBvbmdvaW5nIEdQUyB0cmFja2luZworICAgIGlmIChtR25zc01lYXN1cmVtZW50ICE9IG51bGxwdHIpIHsKKyAgICAgICAgbUduc3NNZWFzdXJlbWVudC0+Y2xvc2UoKTsKKyAgICB9CisgICAgaWYgKG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2UgIT0gbnVsbHB0cikgeworICAgICAgICBtR25zc05hdmlnYXRpb25NZXNzYWdlLT5jbG9zZSgpOworICAgIH0KKyAgICBpZiAobUduc3NCYXRjaGluZyAhPSBudWxscHRyKSB7CisgICAgICAgIG1HbnNzQmF0Y2hpbmctPnN0b3AoKTsKKyAgICAgICAgbUduc3NCYXRjaGluZy0+Y2xlYW51cCgpOworICAgIH0KKyAgICBjbGVhbnVwKCk7CisKKyAgICAvKgorICAgICAqIFRoaXMgaGFzIGRpZWQsIHNvIGNsb3NlIGl0IG9mZiBpbiBjYXNlIChyYWNlIGNvbmRpdGlvbikgY2FsbGJhY2tzIGhhcHBlbgorICAgICAqIGJlZm9yZSBIQUwgcHJvY2Vzc2VzIGFib3ZlIG1lc3NhZ2VzLgorICAgICAqLworICAgIHNHbnNzQ2JJZmFjZSA9IG51bGxwdHI7Cit9CisKK0lHbnNzKiBISURMX0ZFVENIX0lHbnNzKGNvbnN0IGNoYXIqIC8qIGhhbCAqLykgeworICAgIGh3X21vZHVsZV90KiBtb2R1bGU7CisgICAgSUduc3MqIGlmYWNlID0gbnVsbHB0cjsKKyAgICBpbnQgZXJyID0gaHdfZ2V0X21vZHVsZShHUFNfSEFSRFdBUkVfTU9EVUxFX0lELCAoaHdfbW9kdWxlX3QgY29uc3QqKikmbW9kdWxlKTsKKworICAgIGlmIChlcnIgPT0gMCkgeworICAgICAgICBod19kZXZpY2VfdCogZGV2aWNlOworICAgICAgICBlcnIgPSBtb2R1bGUtPm1ldGhvZHMtPm9wZW4obW9kdWxlLCBHUFNfSEFSRFdBUkVfTU9EVUxFX0lELCAmZGV2aWNlKTsKKyAgICAgICAgaWYgKGVyciA9PSAwKSB7CisgICAgICAgICAgICBpZmFjZSA9IG5ldyBHbnNzKHJlaW50ZXJwcmV0X2Nhc3Q8Z3BzX2RldmljZV90Kj4oZGV2aWNlKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiZ25zc0RldmljZSBvcGVuICVzIGZhaWxlZDogJWQiLCBHUFNfSEFSRFdBUkVfTU9EVUxFX0lELCBlcnIpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIEFMT0dFKCJnbnNzIGh3X2dldF9tb2R1bGUgJXMgZmFpbGVkOiAlZCIsIEdQU19IQVJEV0FSRV9NT0RVTEVfSUQsIGVycik7CisgICAgfQorICAgIHJldHVybiBpZmFjZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zcy5oIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFmOTAzYwotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zcy5oCkBAIC0wLDAgKzEsMTg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NfSF8KKworI2luY2x1ZGUgPEFHbnNzLmg+CisjaW5jbHVkZSA8QUduc3NSaWwuaD4KKyNpbmNsdWRlIDxHbnNzQmF0Y2hpbmcuaD4KKyNpbmNsdWRlIDxHbnNzQ29uZmlndXJhdGlvbi5oPgorI2luY2x1ZGUgPEduc3NEZWJ1Zy5oPgorI2luY2x1ZGUgPEduc3NHZW9mZW5jaW5nLmg+CisjaW5jbHVkZSA8R25zc01lYXN1cmVtZW50Lmg+CisjaW5jbHVkZSA8R25zc05hdmlnYXRpb25NZXNzYWdlLmg+CisjaW5jbHVkZSA8R25zc05pLmg+CisjaW5jbHVkZSA8R25zc1h0cmEuaD4KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3MuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9mdXNlZF9sb2NhdGlvbi5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwcy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3VzaW5nIExlZ2FjeUduc3NTeXN0ZW1JbmZvID0gOjpHbnNzU3lzdGVtSW5mbzsKKworLyoKKyAqIFJlcHJlc2VudHMgdGhlIHN0YW5kYXJkIEdOU1MgaW50ZXJmYWNlLiBBbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcyB0byBhbGxvdyBtZXRob2RzIGZyb20KKyAqIElHbnNzQ2FsbGJhY2sgaW50ZXJmYWNlIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitjbGFzcyBHbnNzIDogcHVibGljIElHbnNzIHsKKyAgcHVibGljOgorICAgIEduc3MoZ3BzX2RldmljZV90KiBnbnNzX2RldmljZSk7CisgICAgfkduc3MoKTsKKworICAgIC8qCisgICAgICogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBHbnNzLmhhbC4KKyAgICAgKi8KKyAgICBSZXR1cm48Ym9vbD4gc2V0Q2FsbGJhY2soY29uc3Qgc3A8SUduc3NDYWxsYmFjaz4mIGNhbGxiYWNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHN0YXJ0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzdG9wKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbGVhbnVwKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBpbmplY3RMb2NhdGlvbihkb3VibGUgbGF0aXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbG9uZ2l0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgYWNjdXJhY3lNZXRlcnMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gaW5qZWN0VGltZShpbnQ2NF90IHRpbWVNcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHRpbWVSZWZlcmVuY2VNcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHVuY2VydGFpbnR5TXMpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkZWxldGVBaWRpbmdEYXRhKElHbnNzOjpHbnNzQWlkaW5nRGF0YSBhaWRpbmdEYXRhRmxhZ3MpICBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0UG9zaXRpb25Nb2RlKElHbnNzOjpHbnNzUG9zaXRpb25Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJR25zczo6R25zc1Bvc2l0aW9uUmVjdXJyZW5jZSByZWN1cnJlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbWluSW50ZXJ2YWxNcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHByZWZlcnJlZEFjY3VyYWN5TWV0ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcHJlZmVycmVkVGltZU1zKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElBR25zc1JpbD4+IGdldEV4dGVuc2lvbkFHbnNzUmlsKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElHbnNzR2VvZmVuY2luZz4+IGdldEV4dGVuc2lvbkduc3NHZW9mZW5jaW5nKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElBR25zcz4+IGdldEV4dGVuc2lvbkFHbnNzKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElHbnNzTmk+PiBnZXRFeHRlbnNpb25HbnNzTmkoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUduc3NNZWFzdXJlbWVudD4+IGdldEV4dGVuc2lvbkduc3NNZWFzdXJlbWVudCgpIG92ZXJyaWRlOworICAgIFJldHVybjxzcDxJR25zc05hdmlnYXRpb25NZXNzYWdlPj4gZ2V0RXh0ZW5zaW9uR25zc05hdmlnYXRpb25NZXNzYWdlKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElHbnNzWHRyYT4+IGdldEV4dGVuc2lvblh0cmEoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUduc3NDb25maWd1cmF0aW9uPj4gZ2V0RXh0ZW5zaW9uR25zc0NvbmZpZ3VyYXRpb24oKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUduc3NEZWJ1Zz4+IGdldEV4dGVuc2lvbkduc3NEZWJ1ZygpIG92ZXJyaWRlOworICAgIFJldHVybjxzcDxJR25zc0JhdGNoaW5nPj4gZ2V0RXh0ZW5zaW9uR25zc0JhdGNoaW5nKCkgb3ZlcnJpZGU7CisKKyAgICAvKgorICAgICAqIENhbGxiYWNrIG1ldGhvZHMgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBHTlNTIEhBTCBieSB0aGUgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9uLiBUaGVzZSBtZXRob2RzIGFyZSBub3QgcGFydCBvZiB0aGUgSUduc3MgYmFzZSBjbGFzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBsb2NhdGlvbkNiKEdwc0xvY2F0aW9uKiBsb2NhdGlvbik7CisgICAgc3RhdGljIHZvaWQgc3RhdHVzQ2IoR3BzU3RhdHVzKiBnbnNzX3N0YXR1cyk7CisgICAgc3RhdGljIHZvaWQgbm1lYUNiKEdwc1V0Y1RpbWUgdGltZXN0YW1wLCBjb25zdCBjaGFyKiBubWVhLCBpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRDYXBhYmlsaXRpZXNDYih1aW50MzJfdCBjYXBhYmlsaXRpZXMpOworICAgIHN0YXRpYyB2b2lkIGFjcXVpcmVXYWtlbG9ja0NiKCk7CisgICAgc3RhdGljIHZvaWQgcmVsZWFzZVdha2Vsb2NrQ2IoKTsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0VXRjVGltZUNiKCk7CisgICAgc3RhdGljIHB0aHJlYWRfdCBjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKTsKKyAgICBzdGF0aWMgdm9pZCBnbnNzU3ZTdGF0dXNDYihHbnNzU3ZTdGF0dXMqIHN0YXR1cyk7CisgICAgLyoKKyAgICAgKiBEZXByZWNhdGVkIGNhbGxiYWNrIGFkZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvIGRldmljZXMgdGhhdCBkbworICAgICAqIG5vdCBzdXBwb3J0IEduc3NTdlN0YXR1cy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBncHNTdlN0YXR1c0NiKEdwc1N2U3RhdHVzKiBzdGF0dXMpOworICAgIHN0YXRpYyB2b2lkIHNldFN5c3RlbUluZm9DYihjb25zdCBMZWdhY3lHbnNzU3lzdGVtSW5mbyogaW5mbyk7CisKKyAgICAvKgorICAgICAqIFdha2Vsb2NrIGNvbnNvbGlkYXRpb24sIG9ubHkgbmVlZGVkIGZvciBkdWFsIHVzZSBvZiBhIGdwcy5oICYgZnVzZWRfbG9jYXRpb24uaCBIQUwKKyAgICAgKgorICAgICAqIEVuc3VyZXMgdGhhdCBpZiB0aGUgbGFzdCBjYWxsIGZyb20gZWl0aGVyIGxlZ2FjeSAuaCB3YXMgdG8gYWNxdWlyZSBhIHdha2Vsb2NrLCB0aGF0IGEKKyAgICAgKiB3YWtlbG9jayBpcyBoZWxkLiAgT3RoZXJ3aXNlIHJlbGVhc2VzIGl0LgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGFjcXVpcmVXYWtlbG9ja0Z1c2VkKCk7CisgICAgc3RhdGljIHZvaWQgcmVsZWFzZVdha2Vsb2NrRnVzZWQoKTsKKworICAgIC8qCisgICAgICogSG9sZHMgZnVuY3Rpb24gcG9pbnRlcnMgdG8gdGhlIGNhbGxiYWNrIG1ldGhvZHMuCisgICAgICovCisgICAgc3RhdGljIEdwc0NhbGxiYWNrcyBzR25zc0NiOworCisgcHJpdmF0ZToKKyAgICAvKgorICAgICAqIEZvciBoYW5kbGluZyBzeXN0ZW0tc2VydmVyIGRlYXRoIHdoaWxlIEdOU1Mgc2VydmljZSBsaXZlcyBvbi4KKyAgICAgKi8KKyAgICBjbGFzcyBHbnNzSGlkbERlYXRoUmVjaXBpZW50IDogcHVibGljIGhpZGxfZGVhdGhfcmVjaXBpZW50IHsKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgR25zc0hpZGxEZWF0aFJlY2lwaWVudChjb25zdCBzcDxHbnNzPiBnbnNzKSA6IG1HbnNzKGduc3MpIHsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlRGllZCh1aW50NjRfdCAvKmNvb2tpZSovLAorICAgICAgICAgICAgICAgIGNvbnN0IHdwPDo6YW5kcm9pZDo6aGlkbDo6YmFzZTo6VjFfMDo6SUJhc2U+JiAvKndobyovKSB7CisgICAgICAgICAgICBtR25zcy0+aGFuZGxlSGlkbERlYXRoKCk7CisgICAgICAgIH0KKyAgICAgIHByaXZhdGU6CisgICAgICAgIHNwPEduc3M+IG1HbnNzOworICAgIH07CisKKyAgICAvLyBmb3Igd2FrZWxvY2sgY29uc29saWRhdGlvbiwgc2VlIGFib3ZlCisgICAgc3RhdGljIHZvaWQgYWNxdWlyZVdha2Vsb2NrR25zcygpOworICAgIHN0YXRpYyB2b2lkIHJlbGVhc2VXYWtlbG9ja0duc3MoKTsKKyAgICBzdGF0aWMgdm9pZCB1cGRhdGVXYWtlbG9jaygpOworICAgIHN0YXRpYyBib29sIHNXYWtlbG9ja0hlbGRHbnNzOworICAgIHN0YXRpYyBib29sIHNXYWtlbG9ja0hlbGRGdXNlZDsKKworICAgIC8qCisgICAgICogQ2xlYW51cCBmb3IgZGVhdGggbm90aWZpY2F0aW9uCisgICAgICovCisgICAgdm9pZCBoYW5kbGVIaWRsRGVhdGgoKTsKKworICAgIHNwPEduc3NYdHJhPiBtR25zc1h0cmFJZmFjZSA9IG51bGxwdHI7CisgICAgc3A8QUduc3NSaWw+IG1HbnNzUmlsID0gbnVsbHB0cjsKKyAgICBzcDxHbnNzR2VvZmVuY2luZz4gbUduc3NHZW9mZW5jaW5nSWZhY2UgPSBudWxscHRyOworICAgIHNwPEFHbnNzPiBtQUduc3NJZmFjZSA9IG51bGxwdHI7CisgICAgc3A8R25zc05pPiBtR25zc05pID0gbnVsbHB0cjsKKyAgICBzcDxHbnNzTWVhc3VyZW1lbnQ+IG1HbnNzTWVhc3VyZW1lbnQgPSBudWxscHRyOworICAgIHNwPEduc3NOYXZpZ2F0aW9uTWVzc2FnZT4gbUduc3NOYXZpZ2F0aW9uTWVzc2FnZSA9IG51bGxwdHI7CisgICAgc3A8R25zc0RlYnVnPiBtR25zc0RlYnVnID0gbnVsbHB0cjsKKyAgICBzcDxHbnNzQ29uZmlndXJhdGlvbj4gbUduc3NDb25maWcgPSBudWxscHRyOworICAgIHNwPEduc3NCYXRjaGluZz4gbUduc3NCYXRjaGluZyA9IG51bGxwdHI7CisKKyAgICBzcDxHbnNzSGlkbERlYXRoUmVjaXBpZW50PiBtRGVhdGhSZWNpcGllbnQ7CisKKyAgICBjb25zdCBHcHNJbnRlcmZhY2UqIG1HbnNzSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc0NhbGxiYWNrPiBzR25zc0NiSWZhY2U7CisgICAgc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IHNUaHJlYWRGdW5jQXJnc0xpc3Q7CisgICAgc3RhdGljIGJvb2wgc0ludGVyZmFjZUV4aXN0czsKKworICAgIC8vIFZhbHVlcyBzYXZlZCBmb3IgcmVzZW5kCisgICAgc3RhdGljIHVpbnQzMl90IHNDYXBhYmlsaXRpZXNDYWNoZWQ7CisgICAgc3RhdGljIHVpbnQxNl90IHNZZWFyT2ZId0NhY2hlZDsKK307CisKK2V4dGVybiAiQyIgSUduc3MqIEhJRExfRkVUQ0hfSUduc3MoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc19IXwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQmF0Y2hpbmcuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQmF0Y2hpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyYjM4Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NCYXRjaGluZy5jcHAKQEAgLTAsMCArMSwyMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfR25zc0JhdGNoaW5nSW50ZXJmYWNlIgorCisjaW5jbHVkZSAiR25zc0JhdGNoaW5nLmgiCisjaW5jbHVkZSA8R25zcy5oPiAvLyBmb3Igd2FrZWxvY2sgY29uc29saWRhdGlvbgorI2luY2x1ZGUgPEduc3NVdGlscy5oPgorCisjaW5jbHVkZSA8Y3V0aWxzL2xvZy5oPiAgLy8gZm9yIEFMT0dFCisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3A8SUduc3NCYXRjaGluZ0NhbGxiYWNrPiBHbnNzQmF0Y2hpbmc6OnNHbnNzQmF0Y2hpbmdDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgR25zc0JhdGNoaW5nOjpzRmxwU3VwcG9ydHNCYXRjaGluZyA9IGZhbHNlOworCitGbHBDYWxsYmFja3MgR25zc0JhdGNoaW5nOjpzRmxwQ2IgPSB7CisgICAgLnNpemUgPSBzaXplb2YoRmxwQ2FsbGJhY2tzKSwKKyAgICAubG9jYXRpb25fY2IgPSBsb2NhdGlvbkNiLAorICAgIC5hY3F1aXJlX3dha2Vsb2NrX2NiID0gYWNxdWlyZVdha2Vsb2NrQ2IsCisgICAgLnJlbGVhc2Vfd2FrZWxvY2tfY2IgPSByZWxlYXNlV2FrZWxvY2tDYiwKKyAgICAuc2V0X3RocmVhZF9ldmVudF9jYiA9IHNldFRocmVhZEV2ZW50Q2IsCisgICAgLmZscF9jYXBhYmlsaXRpZXNfY2IgPSBmbHBDYXBhYmlsaXRpZXNDYiwKKyAgICAuZmxwX3N0YXR1c19jYiA9IGZscFN0YXR1c0NiLAorfTsKKworR25zc0JhdGNoaW5nOjpHbnNzQmF0Y2hpbmcoY29uc3QgRmxwTG9jYXRpb25JbnRlcmZhY2UqIGZscExvY2F0aW9uSWZhY2UpIDoKKyAgICBtRmxwTG9jYXRpb25JZmFjZShmbHBMb2NhdGlvbklmYWNlKSB7Cit9CisKKy8qCisgKiBUaGlzIGVudW0gaXMgdXNlZCBsb2NhbGx5IGJ5IHZhcmlvdXMgbWV0aG9kcyBiZWxvdy4gSXQgaXMgb25seSB1c2VkIGJ5IHRoZSBkZWZhdWx0CisgKiBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgbm90IHBhcnQgb2YgdGhlIEdOU1MgaW50ZXJmYWNlLgorICovCitlbnVtIEJhdGNoaW5nVmFsdWVzIDogdWludDE2X3QgeworICAgIC8vIE51bWJlcnMgMC0zIHdlcmUgdXNlZCBpbiBlYXJsaWVyIGltcGxlbWVudGF0aW9ucyAtIHVzaW5nIDQgdG8gYmUgZGlzdGluY3QgdG8gdGhlIEhBTAorICAgIEZMUF9HTlNTX0JBVENISU5HX0NMSUVOVF9JRCA9IDQsCisgICAgLy8gVGVjaC4gbWFzayBvZiBHTlNTLCBhbmQgc2Vuc29yIGFpZGluZywgZm9yIGxlZ2FjeSBIQUwgdG8gZml0IHdpdGggR25zc0JhdGNoaW5nIEFQSQorICAgIEZMUF9URUNIX01BU0tfR05TU19BTkRfU0VOU09SUyA9IEZMUF9URUNIX01BU0tfR05TUyB8IEZMUF9URUNIX01BU0tfU0VOU09SUywKKyAgICAvLyBQdXR0aW5nIGEgY2FwIHRvIGF2b2lkIHBvc3NpYmxlIG1lbW9yeSBpc3N1ZXMuICBVbmxpa2VseSB2YWx1ZXMgdGhpcyBoaWdoIGFyZSBzdXBwb3J0ZWQuCisgICAgTUFYX0xPQ0FUSU9OU19QRVJfQkFUQ0ggPSAxMDAwCit9OworCit2b2lkIEduc3NCYXRjaGluZzo6bG9jYXRpb25DYihpbnQzMl90IGxvY2F0aW9uc0NvdW50LCBGbHBMb2NhdGlvbioqIGxvY2F0aW9ucykgeworICAgIGlmIChzR25zc0JhdGNoaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBCYXRjaGluZyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbnMgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgbG9jYXRpb25zIGZyb20gR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobG9jYXRpb25zQ291bnQgPCAwKSB7CisgICAgICAgIEFMT0dFKCIlczogTmVnYXRpdmUgbG9jYXRpb24gY291bnQ6ICVkIHNldCB0byAwIiwgX19mdW5jX18sIGxvY2F0aW9uc0NvdW50KTsKKyAgICAgICAgbG9jYXRpb25zQ291bnQgPSAwOworICAgIH0gZWxzZSBpZiAobG9jYXRpb25zQ291bnQgPiBNQVhfTE9DQVRJT05TX1BFUl9CQVRDSCkgeworICAgICAgICBBTE9HVygiJXM6IFVuZXhwZWN0ZWQgaGlnaCBsb2NhdGlvbiBjb3VudDogJWQgc2V0IHRvICVkIiwgX19mdW5jX18sIGxvY2F0aW9uc0NvdW50LAorICAgICAgICAgICAgICAgIE1BWF9MT0NBVElPTlNfUEVSX0JBVENIKTsKKyAgICAgICAgbG9jYXRpb25zQ291bnQgPSBNQVhfTE9DQVRJT05TX1BFUl9CQVRDSDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3RlOgorICAgICAqIFNvbWUgZXhpc3RpbmcgaW1wbGVtZW50YXRpb25zIG1heSBkcm9wIGR1cGxpY2F0ZSBsb2NhdGlvbnMuICBUaGVzZSBjb3VsZCBiZSBleHBhbmRlZCBoZXJlCisgICAgICogYnV0IGFzIHRoZXJlJ3MgYW1iaWd1aXR5IGJldHdlZW4gbm8tR1BTLWZpeCB2cy4gZHJvcHBlZCBkdXBsaWNhdGVzIGluIHRoYXQgaW1wbGVtZW50YXRpb24sCisgICAgICogYW5kIHRoYXQncyBub3Qgc3BlY2lmaWVkIGJ5IHRoZSBmdXNlZF9sb2NhdGlvbi5oLCB0aGF0IGlzbid0IHNhZmUgdG8gZG8gaGVyZS4KKyAgICAgKiBGb3J0dW5hdGVseSwgdGhpcyBzaG91bGRuJ3QgYmUgYSBtYWpvciBpc3N1ZSBpbiBjYXNlcyB3aGVyZSBHTlNTIGJhdGNoaW5nIGlzIHR5cGljYWxseQorICAgICAqIHVzZWQgKGUuZy4gd2hlbiB1c2VyIGlzIGxpa2VseSBpbiB2ZWhpY2xlL2JpY3ljbGUuKQorICAgICAqLworICAgIHN0ZDo6dmVjdG9yPGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpHbnNzTG9jYXRpb24+IGduc3NMb2NhdGlvbnM7CisgICAgZm9yIChpbnQgaUxvY2F0aW9uID0gMDsgaUxvY2F0aW9uIDwgbG9jYXRpb25zQ291bnQ7IGlMb2NhdGlvbisrKSB7CisgICAgICAgIGlmIChsb2NhdGlvbnNbaUxvY2F0aW9uXSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IE51bGwgbG9jYXRpb24gYXQgc2xvdDogJWQgb2YgJWQsIHNraXBwaW5nIiwgX19mdW5jX18sIGlMb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25zQ291bnQpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKChsb2NhdGlvbnNbaUxvY2F0aW9uXS0+c291cmNlc191c2VkICYgfkZMUF9URUNIX01BU0tfR05TU19BTkRfU0VOU09SUykgIT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBVbnJlcXVlc3RlZCBsb2NhdGlvbiB0eXBlICVkIGF0IHNsb3Q6ICVkIG9mICVkLCBza2lwcGluZyIsIF9fZnVuY19fLAorICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbnNbaUxvY2F0aW9uXS0+c291cmNlc191c2VkLCBpTG9jYXRpb24sIGxvY2F0aW9uc0NvdW50KTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGduc3NMb2NhdGlvbnMucHVzaF9iYWNrKGNvbnZlcnRUb0duc3NMb2NhdGlvbihsb2NhdGlvbnNbaUxvY2F0aW9uXSkpOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gc0duc3NCYXRjaGluZ0NiSWZhY2UtPmduc3NMb2NhdGlvbkJhdGNoQ2IoZ25zc0xvY2F0aW9ucyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0JhdGNoaW5nOjphY3F1aXJlV2FrZWxvY2tDYigpIHsKKyAgICBHbnNzOjphY3F1aXJlV2FrZWxvY2tGdXNlZCgpOworfQorCit2b2lkIEduc3NCYXRjaGluZzo6cmVsZWFzZVdha2Vsb2NrQ2IoKSB7CisgICAgR25zczo6cmVsZWFzZVdha2Vsb2NrRnVzZWQoKTsKK30KKworLy8gdGhpcyBjYW4ganVzdCByZXR1cm4gc3VjY2VzcywgYmVjYXVzZSB0aHJlYWRzIGFyZSBub3cgc2V0IHVwIG9uIGRlbWFuZCBpbiB0aGUgam5pIGxheWVyCitpbnQzMl90IEduc3NCYXRjaGluZzo6c2V0VGhyZWFkRXZlbnRDYihUaHJlYWRFdmVudCAvKmV2ZW50Ki8pIHsKKyAgICByZXR1cm4gRkxQX1JFU1VMVF9TVUNDRVNTOworfQorCit2b2lkIEduc3NCYXRjaGluZzo6ZmxwQ2FwYWJpbGl0aWVzQ2IoaW50MzJfdCBjYXBhYmlsaXRpZXMpIHsKKyAgICBBTE9HRCgiJXMgY2FwYWJpbGl0aWVzICVkIiwgX19mdW5jX18sIGNhcGFiaWxpdGllcyk7CisKKyAgICBpZiAoY2FwYWJpbGl0aWVzICYgQ0FQQUJJTElUWV9HTlNTKSB7CisgICAgICAgIC8vIG9uY2UgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgYW5kIGNhcGFiaWxpdGllcyBoaWdoIGVub3VnaCwgd2Uga25vdyB2ZXJzaW9uIGlzCisgICAgICAgIC8vIGhpZ2ggZW5vdWdoIGZvciBmbHVzaCgpCisgICAgICAgIHNGbHBTdXBwb3J0c0JhdGNoaW5nID0gdHJ1ZTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0JhdGNoaW5nOjpmbHBTdGF0dXNDYihpbnQzMl90IHN0YXR1cykgeworICAgIEFMT0dEKCIlcyAoZGVmYXVsdCBpbXBsZW1lbnRhdGlvbikgbm90IGZvcndhcmRpbmcgc3RhdHVzOiAlZCIsIF9fZnVuY19fLCBzdGF0dXMpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NCYXRjaGluZyBmb2xsb3cuCitSZXR1cm48Ym9vbD4gR25zc0JhdGNoaW5nOjppbml0KGNvbnN0IHNwPElHbnNzQmF0Y2hpbmdDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisgICAgaWYgKG1GbHBMb2NhdGlvbklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBGbHAgYmF0Y2hpbmcgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzR25zc0JhdGNoaW5nQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgcmV0dXJuIChtRmxwTG9jYXRpb25JZmFjZS0+aW5pdCgmc0ZscENiKSA9PSAwKTsKK30KKworUmV0dXJuPHVpbnQxNl90PiBHbnNzQmF0Y2hpbmc6OmdldEJhdGNoU2l6ZSgpIHsKKyAgICBpZiAobUZscExvY2F0aW9uSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEZscCBiYXRjaGluZyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiBtRmxwTG9jYXRpb25JZmFjZS0+Z2V0X2JhdGNoX3NpemUoKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NCYXRjaGluZzo6c3RhcnQoY29uc3QgSUduc3NCYXRjaGluZzo6T3B0aW9ucyYgb3B0aW9ucykgeworICAgIGlmIChtRmxwTG9jYXRpb25JZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogRmxwIGJhdGNoaW5nIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghc0ZscFN1cHBvcnRzQmF0Y2hpbmcpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBGbHAgYmF0Y2hpbmcgaW50ZXJmYWNlIG5vdCBzdXBwb3J0ZWQsIG5vIGNhcGFiaWxpdGllcyBjYWxsYmFjayByZWNlaXZlZCIsCisgICAgICAgICAgICAgICAgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgRmxwQmF0Y2hPcHRpb25zIG9wdGlvbnNIdzsKKyAgICAvLyBMZWdhY3kgY29kZSB1c2VkIDk5OTkgbVcgZm9yIEhpZ2ggYWNjdXJhY3ksIGFuZCAyMSBtVyBmb3IgYmFsYW5jZWQuCisgICAgLy8gTmV3IEdOU1MgQVBJIGp1c3QgZXhwZWN0cyByZWFzb25hYmxlIEdOU1MgY2hpcHNldCBiZWhhdmlvciAtIGRvIHNvbWV0aGluZyBlZmZpY2llbnQKKyAgICAvLyBnaXZlbiB0aGUgaW50ZXJ2YWwuICBUaGlzIDEwMCBtVyBsaW1pdCBzaG91bGQgYmUgcXVpdGUgc3VmZmljaWVudCAoZXNwLiBnaXZlbiBsZWdhY3kgY29kZQorICAgIC8vIGltcGxlbWVudGF0aW9ucyBtYXkgbm90IGV2ZW4gdXNlIHRoaXMgdmFsdWUuKQorICAgIG9wdGlvbnNIdy5tYXhfcG93ZXJfYWxsb2NhdGlvbl9tVyA9IDEwMDsKKyAgICBvcHRpb25zSHcuc291cmNlc190b191c2UgPSBGTFBfVEVDSF9NQVNLX0dOU1NfQU5EX1NFTlNPUlM7CisgICAgb3B0aW9uc0h3LmZsYWdzID0gMDsKKyAgICBpZiAob3B0aW9ucy5mbGFncyAmIEZsYWc6OldBS0VVUF9PTl9GSUZPX0ZVTEwpIHsKKyAgICAgICAgb3B0aW9uc0h3LmZsYWdzIHw9IEZMUF9CQVRDSF9XQUtFVVBfT05fRklGT19GVUxMOworICAgIH0KKyAgICBvcHRpb25zSHcucGVyaW9kX25zID0gb3B0aW9ucy5wZXJpb2ROYW5vczsKKyAgICBvcHRpb25zSHcuc21hbGxlc3RfZGlzcGxhY2VtZW50X21ldGVycyA9IDA7IC8vIFplcm8gb2Zmc2V0IC0ganVzdCB1c2UgdGltZSBpbnRlcnZhbAorCisgICAgcmV0dXJuIChtRmxwTG9jYXRpb25JZmFjZS0+c3RhcnRfYmF0Y2hpbmcoRkxQX0dOU1NfQkFUQ0hJTkdfQ0xJRU5UX0lELCAmb3B0aW9uc0h3KQorICAgICAgICAgICAgPT0gRkxQX1JFU1VMVF9TVUNDRVNTKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NCYXRjaGluZzo6Zmx1c2goKSB7CisgICAgaWYgKG1GbHBMb2NhdGlvbklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBGbHAgYmF0Y2hpbmcgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIG1GbHBMb2NhdGlvbklmYWNlLT5mbHVzaF9iYXRjaGVkX2xvY2F0aW9ucygpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NCYXRjaGluZzo6c3RvcCgpIHsKKyAgICBpZiAobUZscExvY2F0aW9uSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEZscCBiYXRjaGluZyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1GbHBMb2NhdGlvbklmYWNlLT5zdG9wX2JhdGNoaW5nKEZMUF9HTlNTX0JBVENISU5HX0NMSUVOVF9JRCkgPT0gRkxQX1JFU1VMVF9TVUNDRVNTKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NCYXRjaGluZzo6Y2xlYW51cCgpIHsKKyAgICBpZiAobUZscExvY2F0aW9uSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEZscCBiYXRjaGluZyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbUZscExvY2F0aW9uSWZhY2UtPmNsZWFudXAoKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NCYXRjaGluZy5oIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQmF0Y2hpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDFjMjdkCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQmF0Y2hpbmcuaApAQCAtMCwwICsxLDY3IEBACisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR05TU19WMV8wX0dOU1NCQVRDSElOR19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR05TU19WMV8wX0dOU1NCQVRDSElOR19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmcuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9mdXNlZF9sb2NhdGlvbi5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzQmF0Y2hpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0JhdGNoaW5nQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmJhc2U6OlYxXzA6OklCYXNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgR25zc0JhdGNoaW5nIDogcHVibGljIElHbnNzQmF0Y2hpbmcgeworICAgIEduc3NCYXRjaGluZyhjb25zdCBGbHBMb2NhdGlvbkludGVyZmFjZSogZmxwTG9jYXRpb25JZmFjZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NCYXRjaGluZyBmb2xsb3cuCisgICAgUmV0dXJuPGJvb2w+IGluaXQoY29uc3Qgc3A8SUduc3NCYXRjaGluZ0NhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50MTZfdD4gZ2V0QmF0Y2hTaXplKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHN0YXJ0KGNvbnN0IElHbnNzQmF0Y2hpbmc6Ok9wdGlvbnMmIG9wdGlvbnMgKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZmx1c2goKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc3RvcCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbGVhbnVwKCkgb3ZlcnJpZGU7CisKKyAgICAvKgorICAgICAqIENhbGxiYWNrIG1ldGhvZHMgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBGTFAgSEFMIGJ5IHRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24uIFRoZXNlIG1ldGhvZHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBJR25zc0JhdGNoaW5nIGJhc2UgY2xhc3MuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgbG9jYXRpb25DYihpbnQzMl90IGxvY2F0aW9uc0NvdW50LCBGbHBMb2NhdGlvbioqIGxvY2F0aW9ucyk7CisgICAgc3RhdGljIHZvaWQgYWNxdWlyZVdha2Vsb2NrQ2IoKTsKKyAgICBzdGF0aWMgdm9pZCByZWxlYXNlV2FrZWxvY2tDYigpOworICAgIHN0YXRpYyBpbnQzMl90IHNldFRocmVhZEV2ZW50Q2IoVGhyZWFkRXZlbnQgZXZlbnQpOworICAgIHN0YXRpYyB2b2lkIGZscENhcGFiaWxpdGllc0NiKGludDMyX3QgY2FwYWJpbGl0aWVzKTsKKyAgICBzdGF0aWMgdm9pZCBmbHBTdGF0dXNDYihpbnQzMl90IHN0YXR1cyk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBGbHBDYWxsYmFja3Mgc0ZscENiOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBGbHBMb2NhdGlvbkludGVyZmFjZSogbUZscExvY2F0aW9uSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc0JhdGNoaW5nQ2FsbGJhY2s+IHNHbnNzQmF0Y2hpbmdDYklmYWNlOworICAgIHN0YXRpYyBib29sIHNGbHBTdXBwb3J0c0JhdGNoaW5nOworfTsKKworZXh0ZXJuICJDIiBJR25zc0JhdGNoaW5nKiBISURMX0ZFVENIX0lHbnNzQmF0Y2hpbmcoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HTlNTX1YxXzBfR05TU0JBVENISU5HX0gKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc0NvbmZpZ3VyYXRpb24uY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQ29uZmlndXJhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMxYWE4NgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0NvbmZpZ3VyYXRpb24uY3BwCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0duc3NDb25maWd1cmF0aW9uSW50ZXJmYWNlIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiR25zc0NvbmZpZ3VyYXRpb24uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0duc3NDb25maWd1cmF0aW9uOjpHbnNzQ29uZmlndXJhdGlvbihjb25zdCBHbnNzQ29uZmlndXJhdGlvbkludGVyZmFjZSogZ25zc0NvbmZpZ0luZmMpCisgICAgOiBtR25zc0NvbmZpZ0lmYWNlKGduc3NDb25maWdJbmZjKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3BzOjpWMV8wOjpJR25zc0NvbmZpZ3VyYXRpb24gZm9sbG93LgorUmV0dXJuPGJvb2w+IEduc3NDb25maWd1cmF0aW9uOjpzZXRTdXBsRXMoYm9vbCBlbmFibGVkKSAgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIlNVUExfRVM9IiArIHN0ZDo6dG9fc3RyaW5nKGVuYWJsZWQgPyAxIDogMCkgKyAiXG4iOworICAgIG1HbnNzQ29uZmlnSWZhY2UtPmNvbmZpZ3VyYXRpb25fdXBkYXRlKGNvbmZpZy5jX3N0cigpLCBjb25maWcuc2l6ZSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NDb25maWd1cmF0aW9uOjpzZXRTdXBsVmVyc2lvbih1aW50MzJfdCB2ZXJzaW9uKSAgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIlNVUExfVkVSPSIgKyBzdGQ6OnRvX3N0cmluZyh2ZXJzaW9uKSArICJcbiI7CisgICAgbUduc3NDb25maWdJZmFjZS0+Y29uZmlndXJhdGlvbl91cGRhdGUoY29uZmlnLmNfc3RyKCksIGNvbmZpZy5zaXplKCkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JldHVybjxib29sPiBHbnNzQ29uZmlndXJhdGlvbjo6c2V0U3VwbE1vZGUodWludDhfdCBtb2RlKSAgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIlNVUExfTU9ERT0iICsgc3RkOjp0b19zdHJpbmcobW9kZSkgKyAiXG4iOworICAgIG1HbnNzQ29uZmlnSWZhY2UtPmNvbmZpZ3VyYXRpb25fdXBkYXRlKGNvbmZpZy5jX3N0cigpLCBjb25maWcuc2l6ZSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NDb25maWd1cmF0aW9uOjpzZXRMcHBQcm9maWxlKHVpbnQ4X3QgbHBwUHJvZmlsZSkgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIkxQUF9QUk9GSUxFPSIgKyBzdGQ6OnRvX3N0cmluZyhscHBQcm9maWxlKSArICJcbiI7CisgICAgbUduc3NDb25maWdJZmFjZS0+Y29uZmlndXJhdGlvbl91cGRhdGUoY29uZmlnLmNfc3RyKCksIGNvbmZpZy5zaXplKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48Ym9vbD4gR25zc0NvbmZpZ3VyYXRpb246OnNldEdsb25hc3NQb3NpdGlvbmluZ1Byb3RvY29sKHVpbnQ4X3QgcHJvdG9jb2wpIHsKKyAgICBpZiAobUduc3NDb25maWdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDb25maWd1cmF0aW9uIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlLiIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0ZDo6c3RyaW5nIGNvbmZpZyA9ICJBX0dMT05BU1NfUE9TX1BST1RPQ09MX1NFTEVDVD0iICsKKyAgICAgICAgICAgIHN0ZDo6dG9fc3RyaW5nKHByb3RvY29sKSArICJcbiI7CisgICAgbUduc3NDb25maWdJZmFjZS0+Y29uZmlndXJhdGlvbl91cGRhdGUoY29uZmlnLmNfc3RyKCksIGNvbmZpZy5zaXplKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48Ym9vbD4gR25zc0NvbmZpZ3VyYXRpb246OnNldEdwc0xvY2sodWludDhfdCBsb2NrKSB7CisgICAgaWYgKG1HbnNzQ29uZmlnSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ29uZmlndXJhdGlvbiBpbnRlcmZhY2UgaXMgbm90IGF2YWlsYWJsZS4iLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzdGQ6OnN0cmluZyBjb25maWcgPSAiR1BTX0xPQ0s9IiArIHN0ZDo6dG9fc3RyaW5nKGxvY2spICsgIlxuIjsKKyAgICBtR25zc0NvbmZpZ0lmYWNlLT5jb25maWd1cmF0aW9uX3VwZGF0ZShjb25maWcuY19zdHIoKSwgY29uZmlnLnNpemUoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JldHVybjxib29sPiBHbnNzQ29uZmlndXJhdGlvbjo6c2V0RW1lcmdlbmN5U3VwbFBkbihib29sIGVuYWJsZWQpIHsKKyAgICBpZiAobUduc3NDb25maWdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDb25maWd1cmF0aW9uIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlLiIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0ZDo6c3RyaW5nIGNvbmZpZyA9ICJVU0VfRU1FUkdFTkNZX1BETl9GT1JfRU1FUkdFTkNZX1NVUEw9IiArIHN0ZDo6dG9fc3RyaW5nKGVuYWJsZWQgPyAxIDogMCkKKyAgICAgICAgICAgICsgIlxuIjsKKyAgICBtR25zc0NvbmZpZ0lmYWNlLT5jb25maWd1cmF0aW9uX3VwZGF0ZShjb25maWcuY19zdHIoKSwgY29uZmlnLnNpemUoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NDb25maWd1cmF0aW9uLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NDb25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZlY2E4OAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0NvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NDb25maWd1cmF0aW9uX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NDb25maWd1cmF0aW9uX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQ29uZmlndXJhdGlvbi5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwcy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0NvbmZpZ3VyYXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qCisgKiBJbnRlcmZhY2UgZm9yIHBhc3NpbmcgR05TUyBjb25maWd1cmF0aW9uIGluZm8gZnJvbSBwbGF0Zm9ybSB0byBIQUwuCisgKi8KK3N0cnVjdCBHbnNzQ29uZmlndXJhdGlvbiA6IHB1YmxpYyBJR25zc0NvbmZpZ3VyYXRpb24geworICAgIEduc3NDb25maWd1cmF0aW9uKGNvbnN0IEduc3NDb25maWd1cmF0aW9uSW50ZXJmYWNlKiBnbnNzQ29uZmlnSWZhY2UpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NDb25maWd1cmF0aW9uIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJR25zc0NvbmZpZ3VyYXRpb24uaGFsLgorICAgICAqLworICAgIFJldHVybjxib29sPiBzZXRTdXBsVmVyc2lvbih1aW50MzJfdCB2ZXJzaW9uKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0U3VwbE1vZGUodWludDhfdCBtb2RlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0U3VwbEVzKGJvb2wgZW5hYmxlZCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHNldExwcFByb2ZpbGUodWludDhfdCBscHBQcm9maWxlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0R2xvbmFzc1Bvc2l0aW9uaW5nUHJvdG9jb2wodWludDhfdCBwcm90b2NvbCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHNldEVtZXJnZW5jeVN1cGxQZG4oYm9vbCBlbmFibGUpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzZXRHcHNMb2NrKHVpbnQ4X3QgbG9jaykgb3ZlcnJpZGU7CisKKyBwcml2YXRlOgorICAgIGNvbnN0IEduc3NDb25maWd1cmF0aW9uSW50ZXJmYWNlKiBtR25zc0NvbmZpZ0lmYWNlID0gbnVsbHB0cjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0NvbmZpZ3VyYXRpb25fSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc0RlYnVnLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0RlYnVnLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmMzOGNhCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzRGVidWcuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfR25zc0RlYnVnSW50ZXJmYWNlIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiR25zc0RlYnVnLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitHbnNzRGVidWc6Okduc3NEZWJ1Zyhjb25zdCBHcHNEZWJ1Z0ludGVyZmFjZSogZ3BzRGVidWdJZmFjZSkgOiBtR25zc0RlYnVnSWZhY2UoZ3BzRGVidWdJZmFjZSkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzRGVidWcgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEduc3NEZWJ1Zzo6Z2V0RGVidWdEYXRhKGdldERlYnVnRGF0YV9jYiBfaGlkbF9jYikgIHsKKyAgICAvKgorICAgICAqIFRoaXMgaXMgYSBuZXcgaW50ZXJmYWNlIGFuZCBoZW5jZSB0aGVyZSBpcyBubyB3YXkgdG8gcmV0cmlldmUgdGhlCisgICAgICogZGVidWcgZGF0YSBmcm9tIHRoZSBIQUwuCisgICAgICovCisgICAgRGVidWdEYXRhIGRhdGEgPSB7fTsKKworICAgIF9oaWRsX2NiKGRhdGEpOworCisgICAgLyoKKyAgICAgKiBMb2cgdGhlIGRlYnVnIGRhdGEgc2VudCBmcm9tIHRoZSBjb252ZW50aW9uYWwgR25zcyBIQUwuIFRoaXMgY29kZSBpcworICAgICAqIG1vdmVkIGhlcmUgZnJvbSBHbnNzTG9jYXRpb25Qcm92aWRlci4KKyAgICAgKi8KKyAgICBpZiAobUduc3NEZWJ1Z0lmYWNlKSB7CisgICAgICAgIGNoYXIgYnVmZmVyW2tNYXhEZWJ1Z1N0ckxlbiArIDFdOworICAgICAgICBzaXplX3QgbGVuZ3RoID0gbUduc3NEZWJ1Z0lmYWNlLT5nZXRfaW50ZXJuYWxfc3RhdGUoYnVmZmVyLCBrTWF4RGVidWdTdHJMZW4pOworICAgICAgICBsZW5ndGggPSBzdGQ6Om1heChsZW5ndGgsIGtNYXhEZWJ1Z1N0ckxlbik7CisgICAgICAgIGJ1ZmZlcltsZW5ndGhdID0gJ1wwJzsKKyAgICAgICAgQUxPR0QoIkduc3MgRGVidWcgRGF0YTogJXMiLCBidWZmZXIpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzRGVidWcuaCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0RlYnVnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWExN2RkZQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0RlYnVnLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0RlYnVnX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NEZWJ1Z19IXworCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc0RlYnVnLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzRGVidWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qIEludGVyZmFjZSBmb3IgR05TUyBEZWJ1ZyBzdXBwb3J0LiAqLworc3RydWN0IEduc3NEZWJ1ZyA6IHB1YmxpYyBJR25zc0RlYnVnIHsKKyAgICBHbnNzRGVidWcoY29uc3QgR3BzRGVidWdJbnRlcmZhY2UqIGdwc0RlYnVnSWZhY2UpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NEZWJ1ZyBmb2xsb3cuCisgICAgICogVGhlc2UgZGVjbGFyYXRpb25zIHdlcmUgZ2VuZXJhdGVkIGZyb20gSUduc3NEZWJ1Zy5oYWwuCisgICAgICovCisgICAgUmV0dXJuPHZvaWQ+IGdldERlYnVnRGF0YShnZXREZWJ1Z0RhdGFfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworIHByaXZhdGU6CisgICAgLyoKKyAgICAgKiBDb25zdGFudCBhZGRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB0byBjb252ZW50aW9uYWwgR1BTIEhhbHMgd2hpY2gKKyAgICAgKiByZXR1cm5lZCBhIGRlYnVnIHN0cmluZy4KKyAgICAgKi8KKyAgICBjb25zdCBzaXplX3Qga01heERlYnVnU3RyTGVuID0gMjA0NzsKKyAgICBjb25zdCBHcHNEZWJ1Z0ludGVyZmFjZSogbUduc3NEZWJ1Z0lmYWNlID0gbnVsbHB0cjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0RlYnVnX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NHZW9mZW5jaW5nLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0dlb2ZlbmNpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0YzRhYWEKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NHZW9mZW5jaW5nLmNwcApAQCAtMCwwICsxLDIyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hhbF9HbnNzR2VvZmVuY2luZyIKKworI2luY2x1ZGUgIkduc3NHZW9mZW5jaW5nLmgiCisjaW5jbHVkZSA8R25zc1V0aWxzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBHbnNzR2VvZmVuY2luZzo6c1RocmVhZEZ1bmNBcmdzTGlzdDsKK3NwPElHbnNzR2VvZmVuY2VDYWxsYmFjaz4gR25zc0dlb2ZlbmNpbmc6Om1HbnNzR2VvZmVuY2luZ0NiSWZhY2UgPSBudWxscHRyOworYm9vbCBHbnNzR2VvZmVuY2luZzo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworCitHcHNHZW9mZW5jZUNhbGxiYWNrcyBHbnNzR2VvZmVuY2luZzo6c0duc3NHZkNiID0geworICAgIC5nZW9mZW5jZV90cmFuc2l0aW9uX2NhbGxiYWNrID0gZ25zc0dmVHJhbnNpdGlvbkNiLAorICAgIC5nZW9mZW5jZV9zdGF0dXNfY2FsbGJhY2sgPSBnbnNzR2ZTdGF0dXNDYiwKKyAgICAuZ2VvZmVuY2VfYWRkX2NhbGxiYWNrID0gZ25zc0dmQWRkQ2IsCisgICAgLmdlb2ZlbmNlX3JlbW92ZV9jYWxsYmFjayA9IGduc3NHZlJlbW92ZUNiLAorICAgIC5nZW9mZW5jZV9wYXVzZV9jYWxsYmFjayA9IGduc3NHZlBhdXNlQ2IsCisgICAgLmdlb2ZlbmNlX3Jlc3VtZV9jYWxsYmFjayA9IGduc3NHZlJlc3VtZUNiLAorICAgIC5jcmVhdGVfdGhyZWFkX2NiID0gY3JlYXRlVGhyZWFkQ2IKK307CisKK0duc3NHZW9mZW5jaW5nOjpHbnNzR2VvZmVuY2luZyhjb25zdCBHcHNHZW9mZW5jaW5nSW50ZXJmYWNlKiBncHNHZW9mZW5jaW5nSWZhY2UpCisgICAgOiBtR25zc0dlb2ZlbmNpbmdJZmFjZShncHNHZW9mZW5jaW5nSWZhY2UpIHsKKyAgICAvKiBFcnJvciBvdXQgaWYgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVyZmFjZSBhbHJlYWR5IGV4aXN0cy4gKi8KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKHNJbnRlcmZhY2VFeGlzdHMpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSB0cnVlOworfQorCitHbnNzR2VvZmVuY2luZzo6fkduc3NHZW9mZW5jaW5nKCkgeworICAgIHNUaHJlYWRGdW5jQXJnc0xpc3QuY2xlYXIoKTsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7Cit9Cit2b2lkIEduc3NHZW9mZW5jaW5nOjpnbnNzR2ZUcmFuc2l0aW9uQ2IoaW50MzJfdCBnZW9mZW5jZUlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdwc0xvY2F0aW9uKiBsb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRyYW5zaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3BzVXRjVGltZSB0aW1lc3RhbXApIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBHZW9mZW5jZSBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbiA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlcyA6IEludmFsaWQgbG9jYXRpb24gZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb24gPSBjb252ZXJ0VG9HbnNzTG9jYXRpb24obG9jYXRpb24pOworICAgIGF1dG8gcmV0ID0gbUduc3NHZW9mZW5jaW5nQ2JJZmFjZS0+Z25zc0dlb2ZlbmNlVHJhbnNpdGlvbkNiKAorICAgICAgICAgICAgZ2VvZmVuY2VJZCwKKyAgICAgICAgICAgIGduc3NMb2NhdGlvbiwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VUcmFuc2l0aW9uPih0cmFuc2l0aW9uKSwKKyAgICAgICAgICAgIHRpbWVzdGFtcCk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0dlb2ZlbmNpbmc6Omduc3NHZlN0YXR1c0NiKGludDMyX3Qgc3RhdHVzLCBHcHNMb2NhdGlvbiogbG9jYXRpb24pIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBHZW9mZW5jZSBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb247CisKKyAgICBpZiAobG9jYXRpb24gIT0gbnVsbHB0cikgeworICAgICAgICBnbnNzTG9jYXRpb24gPSBjb252ZXJ0VG9HbnNzTG9jYXRpb24obG9jYXRpb24pOworICAgIH0gZWxzZSB7CisgICAgICAgIGduc3NMb2NhdGlvbiA9IHt9OworICAgIH0KKworICAgIGF1dG8gcmV0ID0gbUduc3NHZW9mZW5jaW5nQ2JJZmFjZS0+Z25zc0dlb2ZlbmNlU3RhdHVzQ2IoCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlQXZhaWxhYmlsaXR5PihzdGF0dXMpLCBnbnNzTG9jYXRpb24pOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3NHZW9mZW5jaW5nOjpnbnNzR2ZBZGRDYihpbnQzMl90IGdlb2ZlbmNlSWQsIGludDMyX3Qgc3RhdHVzKSB7CisgICAgaWYgKG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgR2VvZmVuY2UgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UtPmduc3NHZW9mZW5jZUFkZENiKAorICAgICAgICAgICAgZ2VvZmVuY2VJZCwgc3RhdGljX2Nhc3Q8SUduc3NHZW9mZW5jZUNhbGxiYWNrOjpHZW9mZW5jZVN0YXR1cz4oc3RhdHVzKSk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0dlb2ZlbmNpbmc6Omduc3NHZlJlbW92ZUNiKGludDMyX3QgZ2VvZmVuY2VJZCwgaW50MzJfdCBzdGF0dXMpIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBHZW9mZW5jZSBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gbUduc3NHZW9mZW5jaW5nQ2JJZmFjZS0+Z25zc0dlb2ZlbmNlUmVtb3ZlQ2IoCisgICAgICAgICAgICBnZW9mZW5jZUlkLCBzdGF0aWNfY2FzdDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlU3RhdHVzPihzdGF0dXMpKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzR2VvZmVuY2luZzo6Z25zc0dmUGF1c2VDYihpbnQzMl90IGdlb2ZlbmNlSWQsIGludDMyX3Qgc3RhdHVzKSB7CisgICAgaWYgKG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgR2VvZmVuY2UgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UtPmduc3NHZW9mZW5jZVBhdXNlQ2IoCisgICAgICAgICAgICBnZW9mZW5jZUlkLCBzdGF0aWNfY2FzdDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlU3RhdHVzPihzdGF0dXMpKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzR2VvZmVuY2luZzo6Z25zc0dmUmVzdW1lQ2IoaW50MzJfdCBnZW9mZW5jZUlkLCBpbnQzMl90IHN0YXR1cykgeworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIEdlb2ZlbmNlIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBtR25zc0dlb2ZlbmNpbmdDYklmYWNlLT5nbnNzR2VvZmVuY2VSZXN1bWVDYigKKyAgICAgICAgICAgIGdlb2ZlbmNlSWQsIHN0YXRpY19jYXN0PElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VTdGF0dXM+KHN0YXR1cykpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCitwdGhyZWFkX3QgR25zc0dlb2ZlbmNpbmc6OmNyZWF0ZVRocmVhZENiKGNvbnN0IGNoYXIqIG5hbWUsIHZvaWQgKCpzdGFydCkodm9pZCopLCB2b2lkKiBhcmcpIHsKKyAgICByZXR1cm4gY3JlYXRlUHRocmVhZChuYW1lLCBzdGFydCwgYXJnLCAmc1RocmVhZEZ1bmNBcmdzTGlzdCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0dlb2ZlbmNpbmcgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEduc3NHZW9mZW5jaW5nOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBtR25zc0dlb2ZlbmNpbmdDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NHZW9mZW5jaW5nIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzR2VvZmVuY2luZ0lmYWNlLT5pbml0KCZzR25zc0dmQ2IpOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzR2VvZmVuY2luZzo6YWRkR2VvZmVuY2UoCisgICAgICAgIGludDMyX3QgZ2VvZmVuY2VJZCwKKyAgICAgICAgZG91YmxlIGxhdGl0dWRlRGVncmVlcywKKyAgICAgICAgZG91YmxlIGxvbmdpdHVkZURlZ3JlZXMsCisgICAgICAgIGRvdWJsZSByYWRpdXNNZXRlcnMsCisgICAgICAgIElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VUcmFuc2l0aW9uIGxhc3RUcmFuc2l0aW9uLAorICAgICAgICBpbnQzMl90IG1vbml0b3JUcmFuc2l0aW9ucywKKyAgICAgICAgdWludDMyX3Qgbm90aWZpY2F0aW9uUmVzcG9uc2l2ZW5lc3NNcywKKyAgICAgICAgdWludDMyX3QgdW5rbm93blRpbWVyTXMpICB7CisgICAgaWYgKG1HbnNzR2VvZmVuY2luZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzR2VvZmVuY2luZyBpbnRlcmZhY2UgaXMgbm90IGF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtR25zc0dlb2ZlbmNpbmdJZmFjZS0+YWRkX2dlb2ZlbmNlX2FyZWEoCisgICAgICAgICAgICAgICAgZ2VvZmVuY2VJZCwKKyAgICAgICAgICAgICAgICBsYXRpdHVkZURlZ3JlZXMsCisgICAgICAgICAgICAgICAgbG9uZ2l0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICByYWRpdXNNZXRlcnMsCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4obGFzdFRyYW5zaXRpb24pLAorICAgICAgICAgICAgICAgIG1vbml0b3JUcmFuc2l0aW9ucywKKyAgICAgICAgICAgICAgICBub3RpZmljYXRpb25SZXNwb25zaXZlbmVzc01zLAorICAgICAgICAgICAgICAgIHVua25vd25UaW1lck1zKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NHZW9mZW5jaW5nOjpwYXVzZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCkgIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NHZW9mZW5jaW5nIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzR2VvZmVuY2luZ0lmYWNlLT5wYXVzZV9nZW9mZW5jZShnZW9mZW5jZUlkKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NHZW9mZW5jaW5nOjpyZXN1bWVHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQsIGludDMyX3QgbW9uaXRvclRyYW5zaXRpb25zKSAgeworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zc0dlb2ZlbmNpbmcgaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUduc3NHZW9mZW5jaW5nSWZhY2UtPnJlc3VtZV9nZW9mZW5jZShnZW9mZW5jZUlkLCBtb25pdG9yVHJhbnNpdGlvbnMpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR25zc0dlb2ZlbmNpbmc6OnJlbW92ZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCkgIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NHZW9mZW5jaW5nIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzR2VvZmVuY2luZ0lmYWNlLT5yZW1vdmVfZ2VvZmVuY2VfYXJlYShnZW9mZW5jZUlkKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc0dlb2ZlbmNpbmcuaCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0dlb2ZlbmNpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjRiODkzCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzR2VvZmVuY2luZy5oCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NHZW9mZW5jaW5nX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NHZW9mZW5jaW5nX0hfCisKKyNpbmNsdWRlIDxUaHJlYWRDcmVhdGlvbldyYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzR2VvZmVuY2luZy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0dlb2ZlbmNlQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0dlb2ZlbmNpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qCisgKiBJbnRlcmZhY2UgZm9yIEdOU1MgR2VvZmVuY2luZyBzdXBwb3J0LiBJdCBhbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcyB0byBhbGxvdworICogbWV0aG9kcyBmcm9tIElHbnNzR2VvZmVuY2VDYWxsYmFjayBpbnRlcmZhY2UgdG8gYmUgcGFzc2VkIGludG8gdGhlCisgKiBjb252ZW50aW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitzdHJ1Y3QgR25zc0dlb2ZlbmNpbmcgOiBwdWJsaWMgSUduc3NHZW9mZW5jaW5nIHsKKyAgICBHbnNzR2VvZmVuY2luZyhjb25zdCBHcHNHZW9mZW5jaW5nSW50ZXJmYWNlKiBncHNHZW9mZW5jaW5nSWZhY2UpOworICAgIH5HbnNzR2VvZmVuY2luZygpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NHZW9mZW5jaW5nIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJR25zc0dlb2ZlbmNpbmcuaGFsLgorICAgICAqLworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s+JiBjYWxsYmFjaykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBhZGRHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBsYXRpdHVkZURlZ3JlZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgcmFkaXVzTWV0ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlVHJhbnNpdGlvbiBsYXN0VHJhbnNpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBtb25pdG9yVHJhbnNpdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG5vdGlmaWNhdGlvblJlc3BvbnNpdmVuZXNzTXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHVua25vd25UaW1lck1zKSAgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gcGF1c2VHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcmVzdW1lR2VvZmVuY2UoaW50MzJfdCBnZW9mZW5jZUlkLCBpbnQzMl90IG1vbml0b3JUcmFuc2l0aW9ucykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiByZW1vdmVHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQpICBvdmVycmlkZTsKKworICAgIC8qCisgICAgICogQ2FsbGJhY2sgbWV0aG9kcyB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIEdOU1MgSEFMIGJ5IHRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24uIFRoZXNlIG1ldGhvZHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBJR25zc0dlb2ZlbmNpbmcgYmFzZSBjbGFzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBnbnNzR2ZUcmFuc2l0aW9uQ2IoaW50MzJfdCBnZW9mZW5jZV9pZCwgR3BzTG9jYXRpb24qIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRyYW5zaXRpb24sIEdwc1V0Y1RpbWUgdGltZXN0YW1wKTsKKyAgICBzdGF0aWMgdm9pZCBnbnNzR2ZTdGF0dXNDYihpbnQzMl90IHN0YXR1cywgR3BzTG9jYXRpb24qIGxhc3RfbG9jYXRpb24pOworICAgIHN0YXRpYyB2b2lkIGduc3NHZkFkZENiKGludDMyX3QgZ2VvZmVuY2VfaWQsIGludDMyX3Qgc3RhdHVzKTsKKyAgICBzdGF0aWMgdm9pZCBnbnNzR2ZSZW1vdmVDYihpbnQzMl90IGdlb2ZlbmNlX2lkLCBpbnQzMl90IHN0YXR1cyk7CisgICAgc3RhdGljIHZvaWQgZ25zc0dmUGF1c2VDYihpbnQzMl90IGdlb2ZlbmNlX2lkLCBpbnQzMl90IHN0YXR1cyk7CisgICAgc3RhdGljIHZvaWQgZ25zc0dmUmVzdW1lQ2IoaW50MzJfdCBnZW9mZW5jZV9pZCwgaW50MzJfdCBzdGF0dXMpOworICAgIHN0YXRpYyBwdGhyZWFkX3QgY3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZyk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBHcHNHZW9mZW5jZUNhbGxiYWNrcyBzR25zc0dmQ2I7CisKKyBwcml2YXRlOgorICAgIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBzVGhyZWFkRnVuY0FyZ3NMaXN0OworICAgIHN0YXRpYyBzcDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s+IG1HbnNzR2VvZmVuY2luZ0NiSWZhY2U7CisgICAgY29uc3QgR3BzR2VvZmVuY2luZ0ludGVyZmFjZSogbUduc3NHZW9mZW5jaW5nSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBib29sIHNJbnRlcmZhY2VFeGlzdHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NHZW9mZW5jaW5nX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NNZWFzdXJlbWVudC5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NNZWFzdXJlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM5YjgzOAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc01lYXN1cmVtZW50LmNwcApAQCAtMCwwICsxLDI2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hBTF9HbnNzTWVhc3VyZW1lbnRJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJHbnNzTWVhc3VyZW1lbnQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3NwPElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjaz4gR25zc01lYXN1cmVtZW50OjpzR25zc01lYXN1cmVDYklmYWNlID0gbnVsbHB0cjsKK0dwc01lYXN1cmVtZW50Q2FsbGJhY2tzIEduc3NNZWFzdXJlbWVudDo6c0duc3NNZWFzdXJlbWVudENicyA9IHsKKyAgICAuc2l6ZSA9IHNpemVvZihHcHNNZWFzdXJlbWVudENhbGxiYWNrcyksCisgICAgLm1lYXN1cmVtZW50X2NhbGxiYWNrID0gZ3BzTWVhc3VyZW1lbnRDYiwKKyAgICAuZ25zc19tZWFzdXJlbWVudF9jYWxsYmFjayA9IGduc3NNZWFzdXJlbWVudENiCit9OworCitHbnNzTWVhc3VyZW1lbnQ6Okduc3NNZWFzdXJlbWVudChjb25zdCBHcHNNZWFzdXJlbWVudEludGVyZmFjZSogZ3BzTWVhc3VyZW1lbnRJZmFjZSkKKyAgICA6IG1HbnNzTWVhc3VyZUlmYWNlKGdwc01lYXN1cmVtZW50SWZhY2UpIHt9CisKK3ZvaWQgR25zc01lYXN1cmVtZW50OjpnbnNzTWVhc3VyZW1lbnRDYihMZWdhY3lHbnNzRGF0YSogbGVnYWN5R25zc0RhdGEpIHsKKyAgICBpZiAoc0duc3NNZWFzdXJlQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TU01lYXN1cmVtZW50IENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGxlZ2FjeUduc3NEYXRhID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIEduc3NEYXRhIGZyb20gR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s6Okduc3NEYXRhIGduc3NEYXRhOworICAgIGduc3NEYXRhLm1lYXN1cmVtZW50Q291bnQgPSBzdGQ6Om1pbihsZWdhY3lHbnNzRGF0YS0+bWVhc3VyZW1lbnRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oR25zc01heDo6U1ZTX0NPVU5UKSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGduc3NEYXRhLm1lYXN1cmVtZW50Q291bnQ7IGkrKykgeworICAgICAgICBhdXRvIGVudHJ5ID0gbGVnYWN5R25zc0RhdGEtPm1lYXN1cmVtZW50c1tpXTsKKyAgICAgICAgYXV0byBzdGF0ZSA9IHN0YXRpY19jYXN0PEduc3NNZWFzdXJlbWVudFN0YXRlPihlbnRyeS5zdGF0ZSk7CisgICAgICAgIGlmIChzdGF0ZSAmIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc01lYXN1cmVtZW50U3RhdGU6OlNUQVRFX1RPV19ERUNPREVEKSB7CisgICAgICAgICAgc3RhdGUgfD0gSUduc3NNZWFzdXJlbWVudENhbGxiYWNrOjpHbnNzTWVhc3VyZW1lbnRTdGF0ZTo6U1RBVEVfVE9XX0tOT1dOOworICAgICAgICB9CisgICAgICAgIGlmIChzdGF0ZSAmIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc01lYXN1cmVtZW50U3RhdGU6OlNUQVRFX0dMT19UT0RfREVDT0RFRCkgeworICAgICAgICAgIHN0YXRlIHw9IElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc01lYXN1cmVtZW50U3RhdGU6OlNUQVRFX0dMT19UT0RfS05PV047CisgICAgICAgIH0KKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldID0geworICAgICAgICAgICAgLmZsYWdzID0gZW50cnkuZmxhZ3MsCisgICAgICAgICAgICAuc3ZpZCA9IGVudHJ5LnN2aWQsCisgICAgICAgICAgICAuY29uc3RlbGxhdGlvbiA9IHN0YXRpY19jYXN0PEduc3NDb25zdGVsbGF0aW9uVHlwZT4oZW50cnkuY29uc3RlbGxhdGlvbiksCisgICAgICAgICAgICAudGltZU9mZnNldE5zID0gZW50cnkudGltZV9vZmZzZXRfbnMsCisgICAgICAgICAgICAuc3RhdGUgPSBzdGF0ZSwKKyAgICAgICAgICAgIC5yZWNlaXZlZFN2VGltZUluTnMgPSBlbnRyeS5yZWNlaXZlZF9zdl90aW1lX2luX25zLAorICAgICAgICAgICAgLnJlY2VpdmVkU3ZUaW1lVW5jZXJ0YWludHlJbk5zID0gZW50cnkucmVjZWl2ZWRfc3ZfdGltZV91bmNlcnRhaW50eV9pbl9ucywKKyAgICAgICAgICAgIC5jTjBEYkh6ID0gZW50cnkuY19uMF9kYmh6LAorICAgICAgICAgICAgLnBzZXVkb3JhbmdlUmF0ZU1wcyA9IGVudHJ5LnBzZXVkb3JhbmdlX3JhdGVfbXBzLAorICAgICAgICAgICAgLnBzZXVkb3JhbmdlUmF0ZVVuY2VydGFpbnR5TXBzID0gZW50cnkucHNldWRvcmFuZ2VfcmF0ZV91bmNlcnRhaW50eV9tcHMsCisgICAgICAgICAgICAuYWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGUgPSBlbnRyeS5hY2N1bXVsYXRlZF9kZWx0YV9yYW5nZV9zdGF0ZSwKKyAgICAgICAgICAgIC5hY2N1bXVsYXRlZERlbHRhUmFuZ2VNID0gZW50cnkuYWNjdW11bGF0ZWRfZGVsdGFfcmFuZ2VfbSwKKyAgICAgICAgICAgIC5hY2N1bXVsYXRlZERlbHRhUmFuZ2VVbmNlcnRhaW50eU0gPSBlbnRyeS5hY2N1bXVsYXRlZF9kZWx0YV9yYW5nZV91bmNlcnRhaW50eV9tLAorICAgICAgICAgICAgLmNhcnJpZXJGcmVxdWVuY3lIeiA9IGVudHJ5LmNhcnJpZXJfZnJlcXVlbmN5X2h6LAorICAgICAgICAgICAgLmNhcnJpZXJDeWNsZXMgPSBlbnRyeS5jYXJyaWVyX2N5Y2xlcywKKyAgICAgICAgICAgIC5jYXJyaWVyUGhhc2UgPSBlbnRyeS5jYXJyaWVyX3BoYXNlLAorICAgICAgICAgICAgLmNhcnJpZXJQaGFzZVVuY2VydGFpbnR5ID0gZW50cnkuY2Fycmllcl9waGFzZV91bmNlcnRhaW50eSwKKyAgICAgICAgICAgIC5tdWx0aXBhdGhJbmRpY2F0b3IgPSBzdGF0aWNfY2FzdDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s6Okduc3NNdWx0aXBhdGhJbmRpY2F0b3I+KAorICAgICAgICAgICAgICAgICAgICBlbnRyeS5tdWx0aXBhdGhfaW5kaWNhdG9yKSwKKyAgICAgICAgICAgIC5zbnJEYiA9IGVudHJ5LnNucl9kYgorICAgICAgICB9OworICAgIH0KKworICAgIGF1dG8gY2xvY2tWYWwgPSBsZWdhY3lHbnNzRGF0YS0+Y2xvY2s7CisgICAgZ25zc0RhdGEuY2xvY2sgPSB7CisgICAgICAgIC5nbnNzQ2xvY2tGbGFncyA9IGNsb2NrVmFsLmZsYWdzLAorICAgICAgICAubGVhcFNlY29uZCA9IGNsb2NrVmFsLmxlYXBfc2Vjb25kLAorICAgICAgICAudGltZU5zID0gY2xvY2tWYWwudGltZV9ucywKKyAgICAgICAgLnRpbWVVbmNlcnRhaW50eU5zID0gY2xvY2tWYWwudGltZV91bmNlcnRhaW50eV9ucywKKyAgICAgICAgLmZ1bGxCaWFzTnMgPSBjbG9ja1ZhbC5mdWxsX2JpYXNfbnMsCisgICAgICAgIC5iaWFzTnMgPSBjbG9ja1ZhbC5iaWFzX25zLAorICAgICAgICAuYmlhc1VuY2VydGFpbnR5TnMgPSBjbG9ja1ZhbC5iaWFzX3VuY2VydGFpbnR5X25zLAorICAgICAgICAuZHJpZnROc3BzID0gY2xvY2tWYWwuZHJpZnRfbnNwcywKKyAgICAgICAgLmRyaWZ0VW5jZXJ0YWludHlOc3BzID0gY2xvY2tWYWwuZHJpZnRfdW5jZXJ0YWludHlfbnNwcywKKyAgICAgICAgLmh3Q2xvY2tEaXNjb250aW51aXR5Q291bnQgPSBjbG9ja1ZhbC5od19jbG9ja19kaXNjb250aW51aXR5X2NvdW50CisgICAgfTsKKworICAgIGF1dG8gcmV0ID0gc0duc3NNZWFzdXJlQ2JJZmFjZS0+R25zc01lYXN1cmVtZW50Q2IoZ25zc0RhdGEpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCisvKgorICogVGhlIGNvZGUgaW4gdGhlIGZvbGxvd2luZyBtZXRob2QgaGFzIGJlZW4gbW92ZWQgaGVyZSBmcm9tIEduc3NMb2NhdGlvblByb3ZpZGVyLgorICogSXQgY29udmVydHMgR3BzRGF0YSB0byBHbnNzRGF0YS4gVGhpcyBjb2RlIGlzIG5vIGxvbmdlciByZXF1aXJlZCBpbgorICogR25zc0xvY2F0aW9uUHJvdmlkZXIgc2luY2UgR3BzRGF0YSBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgcGFydCBvZiB0aGUKKyAqIEdOU1MgaW50ZXJmYWNlLgorICovCit2b2lkIEduc3NNZWFzdXJlbWVudDo6Z3BzTWVhc3VyZW1lbnRDYihHcHNEYXRhKiBncHNEYXRhKSB7CisgICAgaWYgKHNHbnNzTWVhc3VyZUNiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1NNZWFzdXJlbWVudCBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChncHNEYXRhID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIEdwc0RhdGEgZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc0RhdGEgZ25zc0RhdGE7CisgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRDb3VudCA9IHN0ZDo6bWluKGdwc0RhdGEtPm1lYXN1cmVtZW50X2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KEduc3NNYXg6OlNWU19DT1VOVCkpOworCisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGduc3NEYXRhLm1lYXN1cmVtZW50Q291bnQ7IGkrKykgeworICAgICAgICBhdXRvIGVudHJ5ID0gZ3BzRGF0YS0+bWVhc3VyZW1lbnRzW2ldOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uZmxhZ3MgPSBlbnRyeS5mbGFnczsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnN2aWQgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihlbnRyeS5wcm4pOworICAgICAgICBpZiAoZW50cnkucHJuID49IDEgJiYgZW50cnkucHJuIDw9IDMyKSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY29uc3RlbGxhdGlvbiA9IEduc3NDb25zdGVsbGF0aW9uVHlwZTo6R1BTOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNvbnN0ZWxsYXRpb24gPQorICAgICAgICAgICAgICAgICAgR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpVTktOT1dOOworICAgICAgICB9CisKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnRpbWVPZmZzZXROcyA9IGVudHJ5LnRpbWVfb2Zmc2V0X25zOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uc3RhdGUgPSBlbnRyeS5zdGF0ZTsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnJlY2VpdmVkU3ZUaW1lSW5OcyA9IGVudHJ5LnJlY2VpdmVkX2dwc190b3dfbnM7CisgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5yZWNlaXZlZFN2VGltZVVuY2VydGFpbnR5SW5OcyA9CisgICAgICAgICAgICBlbnRyeS5yZWNlaXZlZF9ncHNfdG93X3VuY2VydGFpbnR5X25zOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY04wRGJIeiA9IGVudHJ5LmNfbjBfZGJoejsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnBzZXVkb3JhbmdlUmF0ZU1wcyA9IGVudHJ5LnBzZXVkb3JhbmdlX3JhdGVfbXBzOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0ucHNldWRvcmFuZ2VSYXRlVW5jZXJ0YWludHlNcHMgPQorICAgICAgICAgICAgICAgIGVudHJ5LnBzZXVkb3JhbmdlX3JhdGVfdW5jZXJ0YWludHlfbXBzOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uYWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGUgPQorICAgICAgICAgICAgICAgIGVudHJ5LmFjY3VtdWxhdGVkX2RlbHRhX3JhbmdlX3N0YXRlOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uYWNjdW11bGF0ZWREZWx0YVJhbmdlTSA9CisgICAgICAgICAgICAgICAgZW50cnkuYWNjdW11bGF0ZWRfZGVsdGFfcmFuZ2VfbTsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmFjY3VtdWxhdGVkRGVsdGFSYW5nZVVuY2VydGFpbnR5TSA9CisgICAgICAgICAgICAgICAgZW50cnkuYWNjdW11bGF0ZWRfZGVsdGFfcmFuZ2VfdW5jZXJ0YWludHlfbTsKKworICAgICAgICBpZiAoZW50cnkuZmxhZ3MgJiBHTlNTX01FQVNVUkVNRU5UX0hBU19DQVJSSUVSX0ZSRVFVRU5DWSkgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNhcnJpZXJGcmVxdWVuY3lIeiA9IGVudHJ5LmNhcnJpZXJfZnJlcXVlbmN5X2h6OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNhcnJpZXJGcmVxdWVuY3lIeiA9IDA7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZW50cnkuZmxhZ3MgJiBHTlNTX01FQVNVUkVNRU5UX0hBU19DQVJSSUVSX1BIQVNFKSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY2FycmllclBoYXNlID0gZW50cnkuY2Fycmllcl9waGFzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5jYXJyaWVyUGhhc2UgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVudHJ5LmZsYWdzICYgR05TU19NRUFTVVJFTUVOVF9IQVNfQ0FSUklFUl9QSEFTRV9VTkNFUlRBSU5UWSkgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNhcnJpZXJQaGFzZVVuY2VydGFpbnR5ID0gZW50cnkuY2Fycmllcl9waGFzZV91bmNlcnRhaW50eTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5jYXJyaWVyUGhhc2VVbmNlcnRhaW50eSA9IDA7CisgICAgICAgIH0KKworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0ubXVsdGlwYXRoSW5kaWNhdG9yID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s6Okduc3NNdWx0aXBhdGhJbmRpY2F0b3I+KAorICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkubXVsdGlwYXRoX2luZGljYXRvcik7CisKKyAgICAgICAgaWYgKGVudHJ5LmZsYWdzICYgR05TU19NRUFTVVJFTUVOVF9IQVNfU05SKSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uc25yRGIgPSBlbnRyeS5zbnJfZGI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uc25yRGIgPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBjbG9ja1ZhbCA9IGdwc0RhdGEtPmNsb2NrOworICAgIHN0YXRpYyB1aW50MzJfdCBkaXNjb250aW51aXR5X2NvdW50X3RvX2hhbmRsZV9vbGRfY2xvY2tfdHlwZSA9IDA7CisgICAgYXV0byBmbGFncyA9IGNsb2NrVmFsLmZsYWdzOworCisgICAgZ25zc0RhdGEuY2xvY2subGVhcFNlY29uZCA9IGNsb2NrVmFsLmxlYXBfc2Vjb25kOworICAgIC8qCisgICAgICogR25zc0Nsb2NrIG9ubHkgc3VwcG9ydHMgdGhlIG1vcmUgZWZmZWN0aXZlIEhXX0NMT0NLIHR5cGUsIHNvIHR5cGUKKyAgICAgKiBoYW5kbGluZyBhbmQgZG9jdW1lbnRhdGlvbiBjb21wbGV4aXR5IGhhcyBiZWVuIHJlbW92ZWQuICBUbyBjb252ZXJ0IHRoZQorICAgICAqIG9sZCBHUFNfQ0xPQ0sgdHlwZXMgKGFjdGl2ZSBvbmx5IGluIGEgbGltaXRlZCBudW1iZXIgb2Ygb2xkZXIgZGV2aWNlcyksCisgICAgICogdGhlIEdQUyB0aW1lIGluZm9ybWF0aW9uIGlzIGhhbmRsZWQgYXMgYW4gYWx3YXlzIGRpc2NvbnRpbnVvdXMgSFcgY2xvY2ssCisgICAgICogd2l0aCB0aGUgR1BTIHRpbWUgaW5mb3JtYXRpb24gcHV0IGludG8gdGhlIGZ1bGxfYmlhc19ucyBpbnN0ZWFkIC0gc28gdGhhdAorICAgICAqIHRpbWVfbnMgLSBmdWxsX2JpYXNfbnMgPSBsb2NhbCBlc3RpbWF0ZSBvZiBHUFMgdGltZS4gQWRkaXRpb25hbGx5LCB0aGUKKyAgICAgKiBzaWduIG9mIGZ1bGxfYmlhc19ucyBhbmQgYmlhc19ucyBoYXMgZmxpcHBlZCBiZXR3ZWVuIEdwc0Nsb2NrICYKKyAgICAgKiBHbnNzQ2xvY2ssIHNvIHRoYXQgaXMgYWxzbyBoYW5kbGVkIGJlbG93LgorICAgICAqLworICAgIHN3aXRjaCAoY2xvY2tWYWwudHlwZSkgeworICAgICAgICBjYXNlIEdQU19DTE9DS19UWVBFX1VOS05PV046CisgICAgICAgICAgICAvLyBDbG9jayB0eXBlIHVuc3VwcG9ydGVkLgorICAgICAgICAgICAgQUxPR0UoIlVua25vd24gY2xvY2sgdHlwZSBwcm92aWRlZC4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEdQU19DTE9DS19UWVBFX0xPQ0FMX0hXX1RJTUU6CisgICAgICAgICAgICAvLyBBbHJlYWR5IGxvY2FsIGhhcmR3YXJlIHRpbWUuIE5vIG5lZWQgdG8gZG8gYW55dGhpbmcuCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHUFNfQ0xPQ0tfVFlQRV9HUFNfVElNRToKKyAgICAgICAgICAgIC8vIEdQUyB0aW1lLCBuZWVkIHRvIGNvbnZlcnQuCisgICAgICAgICAgICBmbGFncyB8PSBHUFNfQ0xPQ0tfSEFTX0ZVTExfQklBUzsKKyAgICAgICAgICAgIGNsb2NrVmFsLmZ1bGxfYmlhc19ucyA9IGNsb2NrVmFsLnRpbWVfbnM7CisgICAgICAgICAgICBjbG9ja1ZhbC50aW1lX25zID0gMDsKKyAgICAgICAgICAgIGduc3NEYXRhLmNsb2NrLmh3Q2xvY2tEaXNjb250aW51aXR5Q291bnQgPQorICAgICAgICAgICAgICAgICAgICBkaXNjb250aW51aXR5X2NvdW50X3RvX2hhbmRsZV9vbGRfY2xvY2tfdHlwZSsrOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgZ25zc0RhdGEuY2xvY2sudGltZU5zID0gY2xvY2tWYWwudGltZV9uczsKKyAgICBnbnNzRGF0YS5jbG9jay50aW1lVW5jZXJ0YWludHlOcyA9IGNsb2NrVmFsLnRpbWVfdW5jZXJ0YWludHlfbnM7CisgICAgLyoKKyAgICAgKiBEZWZpbml0aW9uIG9mIHNpZ24gZm9yIGZ1bGxfYmlhc19ucyAmIGJpYXNfbnMgaGFzIGJlZW4gY2hhbmdlZCBzaW5jZSBOLAorICAgICAqIHNvIGZsaXAgc2lnbnMgaGVyZS4KKyAgICAgKi8KKyAgICBnbnNzRGF0YS5jbG9jay5mdWxsQmlhc05zID0gLShjbG9ja1ZhbC5mdWxsX2JpYXNfbnMpOworICAgIGduc3NEYXRhLmNsb2NrLmJpYXNOcyA9IC0oY2xvY2tWYWwuYmlhc19ucyk7CisgICAgZ25zc0RhdGEuY2xvY2suYmlhc1VuY2VydGFpbnR5TnMgPSBjbG9ja1ZhbC5iaWFzX3VuY2VydGFpbnR5X25zOworICAgIGduc3NEYXRhLmNsb2NrLmRyaWZ0TnNwcyA9IGNsb2NrVmFsLmRyaWZ0X25zcHM7CisgICAgZ25zc0RhdGEuY2xvY2suZHJpZnRVbmNlcnRhaW50eU5zcHMgPSBjbG9ja1ZhbC5kcmlmdF91bmNlcnRhaW50eV9uc3BzOworICAgIGduc3NEYXRhLmNsb2NrLmduc3NDbG9ja0ZsYWdzID0gY2xvY2tWYWwuZmxhZ3M7CisKKyAgICBhdXRvIHJldCA9IHNHbnNzTWVhc3VyZUNiSWZhY2UtPkduc3NNZWFzdXJlbWVudENiKGduc3NEYXRhKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTWVhc3VyZW1lbnQgZm9sbG93LgorUmV0dXJuPEduc3NNZWFzdXJlbWVudDo6R25zc01lYXN1cmVtZW50U3RhdHVzPiBHbnNzTWVhc3VyZW1lbnQ6OnNldENhbGxiYWNrKAorICAgICAgICBjb25zdCBzcDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUduc3NNZWFzdXJlSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NNZWFzdXJlIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIEduc3NNZWFzdXJlbWVudFN0YXR1czo6RVJST1JfR0VORVJJQzsKKyAgICB9CisgICAgc0duc3NNZWFzdXJlQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEduc3NNZWFzdXJlbWVudDo6R25zc01lYXN1cmVtZW50U3RhdHVzPigKKyAgICAgICAgICAgIG1HbnNzTWVhc3VyZUlmYWNlLT5pbml0KCZzR25zc01lYXN1cmVtZW50Q2JzKSk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzTWVhc3VyZW1lbnQ6OmNsb3NlKCkgIHsKKyAgICBpZiAobUduc3NNZWFzdXJlSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NNZWFzdXJlIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtR25zc01lYXN1cmVJZmFjZS0+Y2xvc2UoKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc01lYXN1cmVtZW50LmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NNZWFzdXJlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmZjE0MzUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NNZWFzdXJlbWVudC5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NNZWFzdXJlbWVudF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTWVhc3VyZW1lbnRfSF8KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NNZWFzdXJlbWVudC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc01lYXN1cmVtZW50OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NNZWFzdXJlbWVudENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCit1c2luZyBMZWdhY3lHbnNzRGF0YSA9IDo6R25zc0RhdGE7CisKKy8qCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEdOU1MgTWVhc3VyZW1lbnRzIHN1cHBvcnQuIEFsc28gY29udGFpbnMgd3JhcHBlciBtZXRob2RzIHRvIGFsbG93IG1ldGhvZHMKKyAqIGZyb20gSUduc3NNZWFzdXJlbWVudENhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIGltcGxlbWVudGF0aW9uIG9mIHRoZQorICogR05TUyBIQUwuCisgKi8KK3N0cnVjdCBHbnNzTWVhc3VyZW1lbnQgOiBwdWJsaWMgSUduc3NNZWFzdXJlbWVudCB7CisgICAgR25zc01lYXN1cmVtZW50KGNvbnN0IEdwc01lYXN1cmVtZW50SW50ZXJmYWNlKiBncHNNZWFzdXJlbWVudElmYWNlKTsKKworICAgIC8qCisgICAgICogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTWVhc3VyZW1lbnQgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElHbnNzTWVhc3VyZW1lbnQuaGFsLgorICAgICAqLworICAgIFJldHVybjxHbnNzTWVhc3VyZW1lbnRTdGF0dXM+IHNldENhbGxiYWNrKAorICAgICAgICBjb25zdCBzcDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsb3NlKCkgb3ZlcnJpZGU7CisKKyAgICAvKgorICAgICAqIENhbGxiYWNrIG1ldGhvZHMgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBHTlNTIEhBTCBieSB0aGUgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9uLiBUaGVzZSBtZXRob2RzIGFyZSBub3QgcGFydCBvZiB0aGUgSUduc3NNZWFzdXJlbWVudCBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGduc3NNZWFzdXJlbWVudENiKExlZ2FjeUduc3NEYXRhKiBkYXRhKTsKKyAgICAgLyoKKyAgICAgICogRGVwcmVjYXRlZCBjYWxsYmFjayBhZGRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpdHkgZm9yIGRldmljZXMgdGhhdCBkbworICAgICAgKiBub3Qgc3VwcG9ydCBHbnNzRGF0YSBtZWFzdXJlbWVudHMuCisgICAgICAqLworICAgIHN0YXRpYyB2b2lkIGdwc01lYXN1cmVtZW50Q2IoR3BzRGF0YSogZGF0YSk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBHcHNNZWFzdXJlbWVudENhbGxiYWNrcyBzR25zc01lYXN1cmVtZW50Q2JzOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBHcHNNZWFzdXJlbWVudEludGVyZmFjZSogbUduc3NNZWFzdXJlSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s+IHNHbnNzTWVhc3VyZUNiSWZhY2U7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NNZWFzdXJlbWVudF9IXwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2UuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNTA5ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hBTF9HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJbnRlcmZhY2UiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlICJHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3NwPElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjaz4gR25zc05hdmlnYXRpb25NZXNzYWdlOjpzR25zc05hdmlnYXRpb25Nc2dDYklmYWNlID0gbnVsbHB0cjsKKworR3BzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFja3MgR25zc05hdmlnYXRpb25NZXNzYWdlOjpzR25zc05hdmlnYXRpb25NZXNzYWdlQ2IgPSB7CisgICAgLnNpemUgPSBzaXplb2YoR3BzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFja3MpLAorICAgIC5uYXZpZ2F0aW9uX21lc3NhZ2VfY2FsbGJhY2sgPSBudWxscHRyLAorICAgIC5nbnNzX25hdmlnYXRpb25fbWVzc2FnZV9jYWxsYmFjayA9IGduc3NOYXZpZ2F0aW9uTWVzc2FnZUNiCit9OworCitHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6Okduc3NOYXZpZ2F0aW9uTWVzc2FnZSgKKyAgICAgICAgY29uc3QgR3BzTmF2aWdhdGlvbk1lc3NhZ2VJbnRlcmZhY2UqIGdwc05hdmlnYXRpb25NZXNzYWdlSWZhY2UpIDoKKyAgICBtR25zc05hdmlnYXRpb25NZXNzYWdlSWZhY2UoZ3BzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSkge30KKwordm9pZCBHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6Omduc3NOYXZpZ2F0aW9uTWVzc2FnZUNiKExlZ2FjeUduc3NOYXZpZ2F0aW9uTWVzc2FnZSogbWVzc2FnZSkgeworICAgIGlmIChzR25zc05hdmlnYXRpb25Nc2dDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzTmF2aWdhdGlvbiBNZXNzYWdlIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1lc3NhZ2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXMsIHJlY2VpdmVkIGludmFsaWQgR25zc05hdmlnYXRpb25NZXNzYWdlIGZyb20gR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2s6Okduc3NOYXZpZ2F0aW9uTWVzc2FnZSBuYXZpZ2F0aW9uTXNnOworCisgICAgbmF2aWdhdGlvbk1zZy5zdmlkID0gbWVzc2FnZS0+c3ZpZDsKKyAgICBuYXZpZ2F0aW9uTXNnLnR5cGUgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrOjpHbnNzTmF2aWdhdGlvbk1lc3NhZ2VUeXBlPihtZXNzYWdlLT50eXBlKTsKKyAgICBuYXZpZ2F0aW9uTXNnLnN0YXR1cyA9IG1lc3NhZ2UtPnN0YXR1czsKKyAgICBuYXZpZ2F0aW9uTXNnLm1lc3NhZ2VJZCA9IG1lc3NhZ2UtPm1lc3NhZ2VfaWQ7CisgICAgbmF2aWdhdGlvbk1zZy5zdWJtZXNzYWdlSWQgPSBtZXNzYWdlLT5zdWJtZXNzYWdlX2lkOworICAgIG5hdmlnYXRpb25Nc2cuZGF0YS5zZXRUb0V4dGVybmFsKG1lc3NhZ2UtPmRhdGEsIG1lc3NhZ2UtPmRhdGFfbGVuZ3RoKTsKKworICAgIGF1dG8gcmV0ID0gc0duc3NOYXZpZ2F0aW9uTXNnQ2JJZmFjZS0+Z25zc05hdmlnYXRpb25NZXNzYWdlQ2IobmF2aWdhdGlvbk1zZyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlIGZvbGxvdy4KK1JldHVybjxHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6Okduc3NOYXZpZ2F0aW9uTWVzc2FnZVN0YXR1cz4gR25zc05hdmlnYXRpb25NZXNzYWdlOjpzZXRDYWxsYmFjaygKKyAgICAgICAgY29uc3Qgc3A8SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrPiYgY2FsbGJhY2spICB7CisgICAgaWYgKG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zc05hdmlnYXRpb25NZXNzYWdlIG5vdCBhdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBHbnNzTmF2aWdhdGlvbk1lc3NhZ2VTdGF0dXM6OkVSUk9SX0dFTkVSSUM7CisgICAgfQorCisgICAgc0duc3NOYXZpZ2F0aW9uTXNnQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEduc3NOYXZpZ2F0aW9uTWVzc2FnZTo6R25zc05hdmlnYXRpb25NZXNzYWdlU3RhdHVzPigKKyAgICAgICAgICAgIG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZS0+aW5pdCgmc0duc3NOYXZpZ2F0aW9uTWVzc2FnZUNiKSk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6OmNsb3NlKCkgIHsKKyAgICBpZiAobUduc3NOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzTmF2aWdhdGlvbk1lc3NhZ2Ugbm90IGF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtR25zc05hdmlnYXRpb25NZXNzYWdlSWZhY2UtPmNsb3NlKCk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5oIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODI4NTRiCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTmF2aWdhdGlvbk1lc3NhZ2VfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc05hdmlnYXRpb25NZXNzYWdlX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwcy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKwordXNpbmcgTGVnYWN5R25zc05hdmlnYXRpb25NZXNzYWdlID0gOjpHbnNzTmF2aWdhdGlvbk1lc3NhZ2U7CisKKy8qCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEdOU1MgbmF2aWdhdGlvbiBtZXNzYWdlIHJlcG9ydGluZyBzdXBwb3J0LiBBbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcworICogdG8gYWxsb3cgbWV0aG9kcyBmcm9tIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjayBpbnRlcmZhY2UgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbAorICogaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitzdHJ1Y3QgR25zc05hdmlnYXRpb25NZXNzYWdlIDogcHVibGljIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgeworICAgIEduc3NOYXZpZ2F0aW9uTWVzc2FnZShjb25zdCBHcHNOYXZpZ2F0aW9uTWVzc2FnZUludGVyZmFjZSogZ3BzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSk7CisKKyAgICAvKgorICAgICAqIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbC4KKyAgICAgKi8KKyAgICBSZXR1cm48R25zc05hdmlnYXRpb25NZXNzYWdlU3RhdHVzPiBzZXRDYWxsYmFjaygKKyAgICAgICAgY29uc3Qgc3A8SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbG9zZSgpIG92ZXJyaWRlOworCisgICAgLyoKKyAgICAgKiBDYWxsYmFjayBtZXRob2RzIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCisgICAgICogVGhlc2UgbWV0aG9kcyBhcmUgbm90IHBhcnQgb2YgdGhlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgYmFzZSBjbGFzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBnbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYihMZWdhY3lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UqIG1lc3NhZ2UpOworCisgICAgLyoKKyAgICAgKiBIb2xkcyBmdW5jdGlvbiBwb2ludGVycyB0byB0aGUgY2FsbGJhY2sgbWV0aG9kcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgR3BzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFja3Mgc0duc3NOYXZpZ2F0aW9uTWVzc2FnZUNiOworIHByaXZhdGU6CisgICAgY29uc3QgR3BzTmF2aWdhdGlvbk1lc3NhZ2VJbnRlcmZhY2UqIG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSA9IG51bGxwdHI7CisgICAgc3RhdGljIHNwPElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjaz4gc0duc3NOYXZpZ2F0aW9uTXNnQ2JJZmFjZTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc05hdmlnYXRpb25NZXNzYWdlX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NOaS5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOaS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE3ODkxZAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc05pLmNwcApAQCAtMCwwICsxLDEwOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hBTF9HbnNzTmlJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJHbnNzTmkuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IEduc3NOaTo6c1RocmVhZEZ1bmNBcmdzTGlzdDsKK3NwPElHbnNzTmlDYWxsYmFjaz4gR25zc05pOjpzR25zc05pQ2JJZmFjZSA9IG51bGxwdHI7Citib29sIEduc3NOaTo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworCitHcHNOaUNhbGxiYWNrcyBHbnNzTmk6OnNHbnNzTmlDYiA9IHsKKyAgICAubm90aWZ5X2NiID0gbmlOb3RpZnlDYiwKKyAgICAuY3JlYXRlX3RocmVhZF9jYiA9IGNyZWF0ZVRocmVhZENiCit9OworCitHbnNzTmk6Okduc3NOaShjb25zdCBHcHNOaUludGVyZmFjZSogZ3BzTmlJZmFjZSkgOiBtR25zc05pSWZhY2UoZ3BzTmlJZmFjZSkgeworICAgIC8qIEVycm9yIG91dCBpZiBhbiBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlIGFscmVhZHkgZXhpc3RzLiAqLworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc0ludGVyZmFjZUV4aXN0cyk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IHRydWU7Cit9CisKK0duc3NOaTo6fkduc3NOaSgpIHsKKyAgICBzVGhyZWFkRnVuY0FyZ3NMaXN0LmNsZWFyKCk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworfQorCitwdGhyZWFkX3QgR25zc05pOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCit2b2lkIEduc3NOaTo6bmlOb3RpZnlDYihHcHNOaU5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKSB7CisgICAgaWYgKHNHbnNzTmlDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIE5JIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBHcHNOb3RpZmljYXRpb24gY2FsbGJhY2sgZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzTmlDYWxsYmFjazo6R25zc05pTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbkduc3MgPSB7CisgICAgICAgIC5ub3RpZmljYXRpb25JZCA9ICBub3RpZmljYXRpb24tPm5vdGlmaWNhdGlvbl9pZCwKKyAgICAgICAgLm5pVHlwZSA9IHN0YXRpY19jYXN0PElHbnNzTmlDYWxsYmFjazo6R25zc05pVHlwZT4obm90aWZpY2F0aW9uLT5uaV90eXBlKSwKKyAgICAgICAgLm5vdGlmeUZsYWdzID0gbm90aWZpY2F0aW9uLT5ub3RpZnlfZmxhZ3MsCisgICAgICAgIC50aW1lb3V0U2VjID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG5vdGlmaWNhdGlvbi0+dGltZW91dCksCisgICAgICAgIC5kZWZhdWx0UmVzcG9uc2UgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElHbnNzTmlDYWxsYmFjazo6R25zc1VzZXJSZXNwb25zZVR5cGU+KG5vdGlmaWNhdGlvbi0+ZGVmYXVsdF9yZXNwb25zZSksCisgICAgICAgIC5yZXF1ZXN0b3JJZCA9IG5vdGlmaWNhdGlvbi0+cmVxdWVzdG9yX2lkLAorICAgICAgICAubm90aWZpY2F0aW9uTWVzc2FnZSA9IG5vdGlmaWNhdGlvbi0+dGV4dCwKKyAgICAgICAgLnJlcXVlc3RvcklkRW5jb2RpbmcgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElHbnNzTmlDYWxsYmFjazo6R25zc05pRW5jb2RpbmdUeXBlPihub3RpZmljYXRpb24tPnJlcXVlc3Rvcl9pZF9lbmNvZGluZyksCisgICAgICAgIC5ub3RpZmljYXRpb25JZEVuY29kaW5nID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJR25zc05pQ2FsbGJhY2s6Okduc3NOaUVuY29kaW5nVHlwZT4obm90aWZpY2F0aW9uLT50ZXh0X2VuY29kaW5nKQorICAgIH07CisKKyAgICBhdXRvIHJldCA9IHNHbnNzTmlDYklmYWNlLT5uaU5vdGlmeUNiKG5vdGlmaWNhdGlvbkduc3MpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NOaSBmb2xsb3cuCitSZXR1cm48dm9pZD4gR25zc05pOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc05pQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUduc3NOaUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICBBTE9HRSgiJXM6IEduc3NOaSBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzR25zc05pQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgbUduc3NOaUlmYWNlLT5pbml0KCZzR25zc05pQ2IpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzTmk6OnJlc3BvbmQoaW50MzJfdCBub3RpZklkLCBJR25zc05pQ2FsbGJhY2s6Okduc3NVc2VyUmVzcG9uc2VUeXBlIHVzZXJSZXNwb25zZSkgIHsKKyAgICBpZiAobUduc3NOaUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzTmkgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzTmlJZmFjZS0+cmVzcG9uZChub3RpZklkLCBzdGF0aWNfY2FzdDxHcHNVc2VyUmVzcG9uc2VUeXBlPih1c2VyUmVzcG9uc2UpKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc05pLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlODUwYjEKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOaS5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NOaV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTmlfSF8KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NOaS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc05pOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NOaUNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBOZXR3b3JrLWluaXRpYXRlZCAoTkkpIHN1cHBvcnQuIFRoaXMgaW50ZXJmYWNlIGlzIHVzZWQgdG8gcmVzcG9uZCB0bworICogTkkgbm90aWZpY2F0aW9ucyBvcmlnaW5hdGluZyBmcm9tIHRoZSBIQUwuIEFsc28gY29udGFpbnMgd3JhcHBlciBtZXRob2RzIHRvIGFsbG93IG1ldGhvZHMgZnJvbQorICogSUduc3NOaUNhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBHTlNTIEhBTC4KKyAqLworc3RydWN0IEduc3NOaSA6IHB1YmxpYyBJR25zc05pIHsKKyAgICBHbnNzTmkoY29uc3QgR3BzTmlJbnRlcmZhY2UqIGdwc05pSWZhY2UpOworICAgIH5HbnNzTmkoKTsKKworICAgIC8qCisgICAgICogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTmkgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElHbnNzTmkuaGFsLgorICAgICAqLworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc05pQ2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHJlc3BvbmQoaW50MzJfdCBub3RpZklkLAorICAgICAgICAgICAgICAgICAgICAgICAgIElHbnNzTmlDYWxsYmFjazo6R25zc1VzZXJSZXNwb25zZVR5cGUgdXNlclJlc3BvbnNlKSBvdmVycmlkZTsKKworICAgIC8qCisgICAgICogQ2FsbGJhY2sgbWV0aG9kcyB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIEdOU1MgSEFMIGJ5IHRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24uIFRoZXNlIG1ldGhvZHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBJR25zc05pIGJhc2UgY2xhc3MuCisgICAgICovCisgICAgc3RhdGljIHB0aHJlYWRfdCBjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKTsKKyAgICBzdGF0aWMgdm9pZCBuaU5vdGlmeUNiKEdwc05pTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pOworCisgICAgLyoKKyAgICAgKiBIb2xkcyBmdW5jdGlvbiBwb2ludGVycyB0byB0aGUgY2FsbGJhY2sgbWV0aG9kcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgR3BzTmlDYWxsYmFja3Mgc0duc3NOaUNiOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBHcHNOaUludGVyZmFjZSogbUduc3NOaUlmYWNlID0gbnVsbHB0cjsKKyAgICBzdGF0aWMgc3A8SUduc3NOaUNhbGxiYWNrPiBzR25zc05pQ2JJZmFjZTsKKyAgICBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gc1RocmVhZEZ1bmNBcmdzTGlzdDsKKyAgICBzdGF0aWMgYm9vbCBzSW50ZXJmYWNlRXhpc3RzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTmlfSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc1V0aWxzLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1V0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTk1NmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzVXRpbHMuY3BwCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiR25zc1V0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6R25zc0xvY2F0aW9uOworCitHbnNzTG9jYXRpb24gY29udmVydFRvR25zc0xvY2F0aW9uKEdwc0xvY2F0aW9uKiBsb2NhdGlvbikgeworICAgIEduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb24gPSB7fTsKKyAgICBpZiAobG9jYXRpb24gIT0gbnVsbHB0cikgeworICAgICAgICBnbnNzTG9jYXRpb24gPSB7CisgICAgICAgICAgICAvLyBCaXQgb3BlcmF0aW9uIEFORCB3aXRoIDFmIGJlbG93IGlzIG5lZWRlZCB0byBjbGVhciB2ZXJ0aWNhbCBhY2N1cmFjeSwKKyAgICAgICAgICAgIC8vIHNwZWVkIGFjY3VyYWN5IGFuZCBiZWFyaW5nIGFjY3VyYWN5IGZsYWdzIGFzIHNvbWUgdmVuZG9ycyBhcmUgZm91bmQKKyAgICAgICAgICAgIC8vIHRvIGJlIHNldHRpbmcgdGhlc2UgYml0cyBpbiBwcmUtQW5kcm9pZC1PIGRldmljZXMKKyAgICAgICAgICAgIC5nbnNzTG9jYXRpb25GbGFncyA9IHN0YXRpY19jYXN0PHVpbnQxNl90Pihsb2NhdGlvbi0+ZmxhZ3MgJiAweDFmKSwKKyAgICAgICAgICAgIC5sYXRpdHVkZURlZ3JlZXMgPSBsb2NhdGlvbi0+bGF0aXR1ZGUsCisgICAgICAgICAgICAubG9uZ2l0dWRlRGVncmVlcyA9IGxvY2F0aW9uLT5sb25naXR1ZGUsCisgICAgICAgICAgICAuYWx0aXR1ZGVNZXRlcnMgPSBsb2NhdGlvbi0+YWx0aXR1ZGUsCisgICAgICAgICAgICAuc3BlZWRNZXRlcnNQZXJTZWMgPSBsb2NhdGlvbi0+c3BlZWQsCisgICAgICAgICAgICAuYmVhcmluZ0RlZ3JlZXMgPSBsb2NhdGlvbi0+YmVhcmluZywKKyAgICAgICAgICAgIC5ob3Jpem9udGFsQWNjdXJhY3lNZXRlcnMgPSBsb2NhdGlvbi0+YWNjdXJhY3ksCisgICAgICAgICAgICAvLyBPbGRlciBjaGlwc2V0cyBkbyBub3QgcHJvdmlkZSB0aGUgZm9sbG93aW5nIDMgZmllbGRzLCBoZW5jZSB0aGUgZmxhZ3MKKyAgICAgICAgICAgIC8vIEhBU19WRVJUSUNBTF9BQ0NVUkFDWSwgSEFTX1NQRUVEX0FDQ1VSQUNZIGFuZCBIQVNfQkVBUklOR19BQ0NVUkFDWSBhcmUKKyAgICAgICAgICAgIC8vIG5vdCBzZXQgYW5kIHRoZSBmaWVsZCBhcmUgc2V0IHRvIHplcm9zLgorICAgICAgICAgICAgLnZlcnRpY2FsQWNjdXJhY3lNZXRlcnMgPSAwLAorICAgICAgICAgICAgLnNwZWVkQWNjdXJhY3lNZXRlcnNQZXJTZWNvbmQgPSAwLAorICAgICAgICAgICAgLmJlYXJpbmdBY2N1cmFjeURlZ3JlZXMgPSAwLAorICAgICAgICAgICAgLnRpbWVzdGFtcCA9IGxvY2F0aW9uLT50aW1lc3RhbXAKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICByZXR1cm4gZ25zc0xvY2F0aW9uOworfQorCitHbnNzTG9jYXRpb24gY29udmVydFRvR25zc0xvY2F0aW9uKEZscExvY2F0aW9uKiBsb2NhdGlvbikgeworICAgIEduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb24gPSB7fTsKKyAgICBpZiAobG9jYXRpb24gIT0gbnVsbHB0cikgeworICAgICAgICBnbnNzTG9jYXRpb24gPSB7CisgICAgICAgICAgICAvLyBCaXQgbWFzayBhcHBsaWVkIChhbmQgMCdzIGJlbG93KSBmb3Igc2FtZSByZWFzb24gYXMgYWJvdmUgd2l0aCBHcHNMb2NhdGlvbgorICAgICAgICAgICAgLmduc3NMb2NhdGlvbkZsYWdzID0gc3RhdGljX2Nhc3Q8dWludDE2X3Q+KGxvY2F0aW9uLT5mbGFncyAmIDB4MWYpLAorICAgICAgICAgICAgLmxhdGl0dWRlRGVncmVlcyA9IGxvY2F0aW9uLT5sYXRpdHVkZSwKKyAgICAgICAgICAgIC5sb25naXR1ZGVEZWdyZWVzID0gbG9jYXRpb24tPmxvbmdpdHVkZSwKKyAgICAgICAgICAgIC5hbHRpdHVkZU1ldGVycyA9IGxvY2F0aW9uLT5hbHRpdHVkZSwKKyAgICAgICAgICAgIC5zcGVlZE1ldGVyc1BlclNlYyA9IGxvY2F0aW9uLT5zcGVlZCwKKyAgICAgICAgICAgIC5iZWFyaW5nRGVncmVlcyA9IGxvY2F0aW9uLT5iZWFyaW5nLAorICAgICAgICAgICAgLmhvcml6b250YWxBY2N1cmFjeU1ldGVycyA9IGxvY2F0aW9uLT5hY2N1cmFjeSwKKyAgICAgICAgICAgIC52ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzID0gMCwKKyAgICAgICAgICAgIC5zcGVlZEFjY3VyYWN5TWV0ZXJzUGVyU2Vjb25kID0gMCwKKyAgICAgICAgICAgIC5iZWFyaW5nQWNjdXJhY3lEZWdyZWVzID0gMCwKKyAgICAgICAgICAgIC50aW1lc3RhbXAgPSBsb2NhdGlvbi0+dGltZXN0YW1wCisgICAgICAgIH07CisgICAgfQorCisgICAgcmV0dXJuIGduc3NMb2NhdGlvbjsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc1V0aWxzLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ZDRiMmQKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NVdGlscy5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzVXRpbF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzVXRpbF9IXworCisjaW5jbHVkZSA8aGFyZHdhcmUvZnVzZWRfbG9jYXRpb24uaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL3R5cGVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvKgorICogVGhpcyBtZXRob2QgY29udmVydHMgYSBHcHNMb2NhdGlvbiBzdHJ1Y3QgdG8gYSBHbnNzTG9jYXRpb24KKyAqIHN0cnVjdC4KKyAqLworR25zc0xvY2F0aW9uIGNvbnZlcnRUb0duc3NMb2NhdGlvbihHcHNMb2NhdGlvbiogbG9jYXRpb24pOworCisvKgorICogVGhpcyBtZXRob2QgY29udmVydHMgYW4gRmxwTG9jYXRpb24gc3RydWN0IHRvIGEgR25zc0xvY2F0aW9uCisgKiBzdHJ1Y3QuCisgKi8KK0duc3NMb2NhdGlvbiBjb252ZXJ0VG9HbnNzTG9jYXRpb24oRmxwTG9jYXRpb24qIGxvY2F0aW9uKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NYdHJhLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1h0cmEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxMjRjZTEKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NYdHJhLmNwcApAQCAtMCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0duc3NYdHJhSW50ZXJmYWNlIgorCisjaW5jbHVkZSAiR25zc1h0cmEuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IEduc3NYdHJhOjpzVGhyZWFkRnVuY0FyZ3NMaXN0Oworc3A8SUduc3NYdHJhQ2FsbGJhY2s+IEduc3NYdHJhOjpzR25zc1h0cmFDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgR25zc1h0cmE6OnNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKKworR3BzWHRyYUNhbGxiYWNrcyBHbnNzWHRyYTo6c0duc3NYdHJhQ2IgPSB7CisgICAgLmRvd25sb2FkX3JlcXVlc3RfY2IgPSBnbnNzWHRyYURvd25sb2FkUmVxdWVzdENiLAorICAgIC5jcmVhdGVfdGhyZWFkX2NiID0gY3JlYXRlVGhyZWFkQ2IsCit9OworCitHbnNzWHRyYTo6fkduc3NYdHJhKCkgeworICAgIHNUaHJlYWRGdW5jQXJnc0xpc3QuY2xlYXIoKTsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7Cit9CisKK3B0aHJlYWRfdCBHbnNzWHRyYTo6Y3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZykgeworICAgIHJldHVybiBjcmVhdGVQdGhyZWFkKG5hbWUsIHN0YXJ0LCBhcmcsICZzVGhyZWFkRnVuY0FyZ3NMaXN0KTsKK30KKworR25zc1h0cmE6Okduc3NYdHJhKGNvbnN0IEdwc1h0cmFJbnRlcmZhY2UqIHh0cmFJZmFjZSkgOiBtR25zc1h0cmFJZmFjZSh4dHJhSWZhY2UpIHsKKyAgICAvKiBFcnJvciBvdXQgaWYgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVyZmFjZSBhbHJlYWR5IGV4aXN0cy4gKi8KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKHNJbnRlcmZhY2VFeGlzdHMpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSB0cnVlOworfQorCit2b2lkIEduc3NYdHJhOjpnbnNzWHRyYURvd25sb2FkUmVxdWVzdENiKCkgeworICAgIGlmIChzR25zc1h0cmFDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBzR25zc1h0cmFDYklmYWNlLT5kb3dubG9hZFJlcXVlc3RDYigpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NYdHJhIGZvbGxvdy4KK1JldHVybjxib29sPiBHbnNzWHRyYTo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SUduc3NYdHJhQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUduc3NYdHJhSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgWHRyYSBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzR25zc1h0cmFDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICByZXR1cm4gKG1HbnNzWHRyYUlmYWNlLT5pbml0KCZzR25zc1h0cmFDYikgPT0gMCk7Cit9CisKK1JldHVybjxib29sPiBHbnNzWHRyYTo6aW5qZWN0WHRyYURhdGEoY29uc3QgaGlkbF9zdHJpbmcmIHh0cmFEYXRhKSAgeworICAgIGlmIChtR25zc1h0cmFJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBYdHJhIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGNoYXIqIGJ1ZiA9IG5ldyBjaGFyW3h0cmFEYXRhLnNpemUoKV07CisgICAgY29uc3QgY2hhciogZGF0YSA9IHh0cmFEYXRhLmNfc3RyKCk7CisKKyAgICBtZW1jcHkoYnVmLCBkYXRhLCB4dHJhRGF0YS5zaXplKCkpOworCisgICAgaW50IHJldCA9IG1HbnNzWHRyYUlmYWNlLT5pbmplY3RfeHRyYV9kYXRhKGJ1ZiwgeHRyYURhdGEuc2l6ZSgpKTsKKyAgICBkZWxldGVbXSBidWY7CisgICAgcmV0dXJuIChyZXQgPT0gMCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NYdHJhLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NYdHJhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2EwNzMzYQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1h0cmEuaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzWHRyYV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzWHRyYV9IXworCisjaW5jbHVkZSA8VGhyZWFkQ3JlYXRpb25XcmFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc1h0cmEuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NYdHJhOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NYdHJhQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qCisgKiBUaGlzIGludGVyZmFjZSBpcyB1c2VkIGJ5IHRoZSBHTlNTIEhBTCB0byByZXF1ZXN0IHRoZSBmcmFtZXdvcmsgdG8gZG93bmxvYWQgWFRSQSBkYXRhLgorICogQWxzbyBjb250YWlucyB3cmFwcGVyIG1ldGhvZHMgdG8gYWxsb3cgbWV0aG9kcyBmcm9tIElHbnNzWHRyYUNhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQKKyAqIGludG8gdGhlIGNvbnZlbnRpb25hbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgR05TUyBIQUwuCisgKi8KK3N0cnVjdCBHbnNzWHRyYSA6IHB1YmxpYyBJR25zc1h0cmEgeworICAgIEduc3NYdHJhKGNvbnN0IEdwc1h0cmFJbnRlcmZhY2UqIHh0cmFJZmFjZSk7CisgICAgfkduc3NYdHJhKCk7CisKKyAgICAvKgorICAgICAqIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc1h0cmEgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElHbnNzWHRyYS5oYWwuCisgICAgICovCisgICAgUmV0dXJuPGJvb2w+IHNldENhbGxiYWNrKGNvbnN0IHNwPElHbnNzWHRyYUNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBpbmplY3RYdHJhRGF0YShjb25zdCBoaWRsX3N0cmluZyYgeHRyYURhdGEpIG92ZXJyaWRlOworCisgICAgLyoKKyAgICAgKiBDYWxsYmFjayBtZXRob2RzIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCisgICAgICogVGhlc2UgbWV0aG9kcyBhcmUgbm90IHBhcnQgb2YgdGhlIElHbnNzWHRyYSBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyBwdGhyZWFkX3QgY3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZyk7CisgICAgc3RhdGljIHZvaWQgZ25zc1h0cmFEb3dubG9hZFJlcXVlc3RDYigpOworCisgICAgLyoKKyAgICAgKiBIb2xkcyBmdW5jdGlvbiBwb2ludGVycyB0byB0aGUgY2FsbGJhY2sgbWV0aG9kcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgR3BzWHRyYUNhbGxiYWNrcyBzR25zc1h0cmFDYjsKKworIHByaXZhdGU6CisgICAgY29uc3QgR3BzWHRyYUludGVyZmFjZSogbUduc3NYdHJhSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc1h0cmFDYWxsYmFjaz4gc0duc3NYdHJhQ2JJZmFjZTsKKyAgICBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gc1RocmVhZEZ1bmNBcmdzTGlzdDsKKyAgICBzdGF0aWMgYm9vbCBzSW50ZXJmYWNlRXhpc3RzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzWHRyYV9IXwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9UaHJlYWRDcmVhdGlvbldyYXBwZXIuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9UaHJlYWRDcmVhdGlvbldyYXBwZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTYzOGYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L1RocmVhZENyZWF0aW9uV3JhcHBlci5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxUaHJlYWRDcmVhdGlvbldyYXBwZXIuaD4KKwordm9pZCogdGhyZWFkRnVuYyh2b2lkKiBhcmcpIHsKKyAgICBUaHJlYWRGdW5jQXJncyogdGhyZWFkQXJncyA9IHJlaW50ZXJwcmV0X2Nhc3Q8VGhyZWFkRnVuY0FyZ3MqPihhcmcpOworICAgIHRocmVhZEFyZ3MtPmZwdHIodGhyZWFkQXJncy0+YXJncyk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3B0aHJlYWRfdCBjcmVhdGVQdGhyZWFkKGNvbnN0IGNoYXIqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqc3RhcnQpKHZvaWQqKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZywgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gKiBsaXN0QXJncykgeworICAgIHB0aHJlYWRfdCB0aHJlYWRJZDsKKyAgICBhdXRvIHRocmVhZEFyZ3MgPSBuZXcgVGhyZWFkRnVuY0FyZ3Moc3RhcnQsIGFyZyk7CisgICAgYXV0byBhcmdQdHIgPSBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+KHRocmVhZEFyZ3MpOworCisgICAgbGlzdEFyZ3MtPnB1c2hfYmFjayhzdGQ6Om1vdmUoYXJnUHRyKSk7CisKKyAgICBpbnQgcmV0ID0gcHRocmVhZF9jcmVhdGUoJnRocmVhZElkLCBudWxscHRyLCB0aHJlYWRGdW5jLCByZWludGVycHJldF9jYXN0PHZvaWQqPigKKyAgICAgICAgICAgIHRocmVhZEFyZ3MpKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgQUxPR0UoInB0aHJlYWQgY3JlYXRpb24gdW5zdWNjZXNzZnVsIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHRocmVhZF9zZXRuYW1lX25wKHRocmVhZElkLCBuYW1lKTsKKyAgICB9CisgICAgcmV0dXJuIHRocmVhZElkOworfQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9UaHJlYWRDcmVhdGlvbldyYXBwZXIuaCBiL2duc3MvMS4wL2RlZmF1bHQvVGhyZWFkQ3JlYXRpb25XcmFwcGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGYwYTllNAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvVGhyZWFkQ3JlYXRpb25XcmFwcGVyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HTlNTX1RIUkVBRENSRUFUSU9OV1JBUFBFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR05TU19USFJFQURDUkVBVElPTldSQVBQRVJfSAorCisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlIDxjdXRpbHMvbG9nLmg+CisKK3R5cGVkZWYgdm9pZCAoKnRocmVhZEVudHJ5RnVuYykodm9pZCogcmV0KTsKKworLyoKKyAqIFRoaXMgY2xhc3MgZmFjaWxpdGF0ZXMgY3JlYXRlVGhyZWFkQ2IgbWV0aG9kcyBpbiB2YXJpb3VzIEdOU1MgaW50ZXJmYWNlcyB0byB3cmFwCisgKiBwdGhyZWFkX2NyZWF0ZSgpIGZyb20gbGliYyBzaW5jZSBpdHMgZnVuY3Rpb24gc2lnbmF0dXJlIGRpZmZlcnMgZnJvbSB3aGF0IGlzIHJlcXVpcmVkIGJ5IHRoZQorICogY29udmVudGlvbmFsIEdOU1MgSEFMLiBUaGUgYXJndW1lbnRzIHBhc3NlZCB0byBwdGhyZWFkX2NyZWF0ZSgpIG5lZWQgdG8gYmUgb24gaGVhcCBhbmQgbm90IG9uCisgKiB0aGUgc3RhY2sgb2YgY3JlYXRlVGhyZWFkQ2IuCisgKi8KK3N0cnVjdCBUaHJlYWRGdW5jQXJncyB7CisgICAgVGhyZWFkRnVuY0FyZ3Modm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZykgOiBmcHRyKHN0YXJ0KSwgYXJncyhhcmcpIHt9CisKKyAgICAvKiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiBvZiB0eXBlIHZvaWQoKSh2b2lkKikgdGhhdCBuZWVkcyB0byBiZSB3cmFwcGVkICovCisgICAgdGhyZWFkRW50cnlGdW5jIGZwdHI7CisgICAgLyogYXJndW1lbnQgZm9yIGZwdHIgdG8gYmUgY2FsbGVkIHdpdGggKi8KKyAgICB2b2lkKiBhcmdzOworfTsKKworLyoKKyAqIFRoaXMgbWV0aG9kIGlzIHNpbXBseSBhIHdyYXBwZXIuIEl0IGlzIHJlcXVpcmVkIHNpbmNlIHB0aHJlYWRfY3JlYXRlKCkgcmVxdWlyZXMgYW4gZW50cnkKKyAqIGZ1bmN0aW9uIHBvaW50ZXIgb2YgdHlwZSB2b2lkKigpKHZvaWQqKSBhbmQgdGhlIEdOU1MgaGFsIHJlcXVpcmVzIGFzIGlucHV0IGEgZnVuY3Rpb24gcG9pbnRlciBvZgorICogdHlwZSB2b2lkKCkodm9pZCopLgorICovCit2b2lkKiB0aHJlYWRGdW5jKHZvaWQqIGFyZyk7CisKKy8qCisgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgY3JlYXRlVGhyZWFkQ2Igd2l0aCBhIHBvaW50ZXIgdG8gdGhlIHZlY3RvciB0aGF0CisgKiBob2xkcyB0aGUgcG9pbnRlcnMgdG8gdGhlIHRocmVhZCBhcmd1bWVudHMuIFRoZSBhcmcgYW5kIHN0YXJ0IHBhcmFtZXRlcnMgYXJlCisgKiBmaXJzdCB1c2VkIHRvIGNyZWF0ZSBhIFRocmVhZEZ1bmNBcmdzIG9iamVjdCB3aGljaCBpcyB0aGVuIHNhdmVkIGluIHRoZQorICogbGlzdEFyZ3MgcGFyYW1ldGVycy4gVGhlIGNyZWF0ZWQgVGhyZWFkRnVuY0FyZ3Mgb2JqZWN0IGlzIHRoZW4gdXNlZCB0byBpbnZva2UKKyAqIHRocmVhZEZ1bmMoKSBtZXRob2Qgd2hpY2ggaW4tdHVybiBpbnZva2VzIHB0aHJlYWRfY3JlYXRlLgorICovCitwdGhyZWFkX3QgY3JlYXRlUHRocmVhZChjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gKiBsaXN0QXJncyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wLXNlcnZpY2UucmMgYi9nbnNzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjYzOGEzCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGduc3Nfc2VydmljZSAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBtYWluCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0gZ3BzCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzA0ZTdmCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDE3IEBACisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3MuaD4KKworI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisjaW5jbHVkZSA8YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3M7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICAvLyBUaGUgR05TUyBIQUwgbWF5IGNvbW11bmljYXRlIHRvIG90aGVyIHZlbmRvciBjb21wb25lbnRzIHZpYQorICAgIC8vIC9kZXYvdm5kYmluZGVyCisgICAgYW5kcm9pZDo6UHJvY2Vzc1N0YXRlOjppbml0V2l0aERyaXZlcigiL2Rldi92bmRiaW5kZXIiKTsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElHbnNzPigpOworfQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvdHlwZXMuaGFsIGIvZ25zcy8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMmM3NTYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX01BWF8iKQorZW51bSBHbnNzTWF4IDogdWludDMyX3QgeworLyoqIE1heGltdW0gbnVtYmVyIG9mIFNWcyBmb3IgZ25zc1N2U3RhdHVzQ2IoKS4gKi8KKyAgICBTVlNfQ09VTlQgPSA2NCwKK307CisKKy8qKiBNaWxsaXNlY29uZHMgc2luY2UgSmFudWFyeSAxLCAxOTcwICovCit0eXBlZGVmIGludDY0X3QgR25zc1V0Y1RpbWU7CisKKy8qKgorICogQ29uc3RlbGxhdGlvbiB0eXBlIG9mIEduc3NTdkluZm8KKyAqLworCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19DT05TVEVMTEFUSU9OXyIpCitlbnVtIEduc3NDb25zdGVsbGF0aW9uVHlwZSA6IHVpbnQ4X3QgeworICAgIFVOS05PV04gPSAwLAorICAgIEdQUyAgICAgPSAxLAorICAgIFNCQVMgICAgPSAyLAorICAgIEdMT05BU1MgPSAzLAorICAgIFFaU1MgICAgPSA0LAorICAgIEJFSURPVSAgPSA1LAorICAgIEdBTElMRU8gPSA2LAorfTsKKworLyoqIEJpdCBtYXNrIHRvIGluZGljYXRlIHdoaWNoIHZhbHVlcyBhcmUgdmFsaWQgaW4gYSBHbnNzTG9jYXRpb24gb2JqZWN0LiAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19MT0NBVElPTl8iKQorZW51bSBHbnNzTG9jYXRpb25GbGFncyA6IHVpbnQxNl90IHsKKyAgICAvKiogR25zc0xvY2F0aW9uIGhhcyB2YWxpZCBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlLiAqLworICAgIEhBU19MQVRfTE9ORyAgICAgICAgICAgICAgPSAweDAwMDEsCisgICAgLyoqIEduc3NMb2NhdGlvbiBoYXMgdmFsaWQgYWx0aXR1ZGUuICovCisgICAgSEFTX0FMVElUVURFICAgICAgICAgICAgICA9IDB4MDAwMiwKKyAgICAvKiogR25zc0xvY2F0aW9uIGhhcyB2YWxpZCBzcGVlZC4gKi8KKyAgICBIQVNfU1BFRUQgICAgICAgICAgICAgICAgID0gMHgwMDA0LAorICAgIC8qKiBHbnNzTG9jYXRpb24gaGFzIHZhbGlkIGJlYXJpbmcuICovCisgICAgSEFTX0JFQVJJTkcgICAgICAgICAgICAgICA9IDB4MDAwOCwKKyAgICAvKiogR3BzTG9jYXRpb24gaGFzIHZhbGlkIGhvcml6b250YWwgYWNjdXJhY3kuICovCisgICAgSEFTX0hPUklaT05UQUxfQUNDVVJBQ1kgICA9IDB4MDAxMCwKKyAgICAvKiogR3BzTG9jYXRpb24gaGFzIHZhbGlkIHZlcnRpY2FsIGFjY3VyYWN5LiAqLworICAgIEhBU19WRVJUSUNBTF9BQ0NVUkFDWSAgICAgPSAweDAwMjAsCisgICAgLyoqIEdwc0xvY2F0aW9uIGhhcyB2YWxpZCBzcGVlZCBhY2N1cmFjeS4gKi8KKyAgICBIQVNfU1BFRURfQUNDVVJBQ1kgICAgICAgID0gMHgwMDQwLAorICAgIC8qKiBHcHNMb2NhdGlvbiBoYXMgdmFsaWQgYmVhcmluZyBhY2N1cmFjeS4gKi8KKyAgICBIQVNfQkVBUklOR19BQ0NVUkFDWSAgICAgID0gMHgwMDgwCit9OworCisvKiogUmVwcmVzZW50cyBhIGxvY2F0aW9uLiAqLworc3RydWN0IEduc3NMb2NhdGlvbiB7CisgICAgLyoqIENvbnRhaW5zIEduc3NMb2NhdGlvbkZsYWdzIGJpdHMuICovCisgICAgYml0ZmllbGQ8R25zc0xvY2F0aW9uRmxhZ3M+IGduc3NMb2NhdGlvbkZsYWdzOworCisgICAgLyoqIFJlcHJlc2VudHMgbGF0aXR1ZGUgaW4gZGVncmVlcy4gKi8KKyAgICBkb3VibGUgbGF0aXR1ZGVEZWdyZWVzOworCisgICAgLyoqIFJlcHJlc2VudHMgbG9uZ2l0dWRlIGluIGRlZ3JlZXMuICovCisgICAgZG91YmxlIGxvbmdpdHVkZURlZ3JlZXM7CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIGFsdGl0dWRlIGluIG1ldGVycyBhYm92ZSB0aGUgV0dTIDg0IHJlZmVyZW5jZSBlbGxpcHNvaWQuCisgICAgICovCisgICAgZG91YmxlIGFsdGl0dWRlTWV0ZXJzOworCisgICAgLyoqIFJlcHJlc2VudHMgc3BlZWQgaW4gbWV0ZXJzIHBlciBzZWNvbmQuICovCisgICAgZmxvYXQgc3BlZWRNZXRlcnNQZXJTZWM7CisKKyAgICAvKiogUmVwcmVzZW50cyBoZWFkaW5nIGluIGRlZ3JlZXMuICovCisgICAgZmxvYXQgYmVhcmluZ0RlZ3JlZXM7CisKKyAgICAvKioKKyAgICAqIFJlcHJlc2VudHMgZXhwZWN0ZWQgaG9yaXpvbnRhbCBwb3NpdGlvbiBhY2N1cmFjeSwgcmFkaWFsLCBpbiBtZXRlcnMKKyAgICAqICg2OCUgY29uZmlkZW5jZSkuCisgICAgKi8KKyAgICBmbG9hdCBob3Jpem9udGFsQWNjdXJhY3lNZXRlcnM7CisKKyAgICAvKioKKyAgICAqIFJlcHJlc2VudHMgZXhwZWN0ZWQgdmVydGljYWwgcG9zaXRpb24gYWNjdXJhY3kgaW4gbWV0ZXJzCisgICAgKiAoNjglIGNvbmZpZGVuY2UpLgorICAgICovCisgICAgZmxvYXQgdmVydGljYWxBY2N1cmFjeU1ldGVyczsKKworICAgIC8qKgorICAgICogUmVwcmVzZW50cyBleHBlY3RlZCBzcGVlZCBhY2N1cmFjeSBpbiBtZXRlciBwZXIgc2Vjb25kcworICAgICogKDY4JSBjb25maWRlbmNlKS4KKyAgICAqLworICAgIGZsb2F0IHNwZWVkQWNjdXJhY3lNZXRlcnNQZXJTZWNvbmQ7CisKKyAgICAvKioKKyAgICAqIFJlcHJlc2VudHMgZXhwZWN0ZWQgYmVhcmluZyBhY2N1cmFjeSBpbiBkZWdyZWVzCisgICAgKiAoNjglIGNvbmZpZGVuY2UpLgorICAgICovCisgICAgZmxvYXQgYmVhcmluZ0FjY3VyYWN5RGVncmVlczsKKworICAgIC8qKiBUaW1lc3RhbXAgZm9yIHRoZSBsb2NhdGlvbiBmaXguICovCisgICAgR25zc1V0Y1RpbWUgdGltZXN0YW1wOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9nbnNzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkOTYwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxHbnNzVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMCIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR25zc1YxXzBUYXJnZXRUZXN0LmNwcCBiL2duc3MvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRlMzE3MQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw0NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPG11dGV4PgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpHbnNzTG9jYXRpb247Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6R25zc0xvY2F0aW9uRmxhZ3M7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3M7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NDYWxsYmFjazsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0RlYnVnOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTWVhc3VyZW1lbnQ7Cit1c2luZyBhbmRyb2lkOjpzcDsKKworI2RlZmluZSBUSU1FT1VUX1NFQyAyICAvLyBmb3IgYmFzaWMgY29tbWFuZHMvcmVzcG9uc2VzCisKKy8vIGZvciBjb21tYW5kIGxpbmUgYXJndW1lbnQgb24gaG93IHN0cmljdGx5IHRvIHJ1biB0aGUgdGVzdAorYm9vbCBzQWdwc0lzUHJlc2VudCA9IGZhbHNlOyAgLy8gaWYgU1VQTCBvciBYVFJBIGFzc2lzdGFuY2UgYXZhaWxhYmxlCitib29sIHNTaWduYWxJc1dlYWsgPSBmYWxzZTsgIC8vIGlmIEdOU1Mgc2lnbmFscyBhcmUgd2VhayAoZS5nLiBsaWdodCBpbmRvb3IpCisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIEdOU1MgSEFMLgorY2xhc3MgR25zc0hhbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIC8vIENsZWFuIGJldHdlZW4gdGVzdHMKKyAgICBjYXBhYmlsaXRpZXNfY2FsbGVkX2NvdW50XyA9IDA7CisgICAgbG9jYXRpb25fY2FsbGVkX2NvdW50XyA9IDA7CisgICAgaW5mb19jYWxsZWRfY291bnRfID0gMDsKKworICAgIGduc3NfaGFsXyA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElHbnNzPigpOworICAgIEFTU0VSVF9ORShnbnNzX2hhbF8sIG51bGxwdHIpOworCisgICAgZ25zc19jYl8gPSBuZXcgR25zc0NhbGxiYWNrKCp0aGlzKTsKKyAgICBBU1NFUlRfTkUoZ25zc19jYl8sIG51bGxwdHIpOworCisgICAgYXV0byByZXN1bHQgPSBnbnNzX2hhbF8tPnNldENhbGxiYWNrKGduc3NfY2JfKTsKKyAgICBpZiAoIXJlc3VsdC5pc09rKCkpIHsKKyAgICAgIEFMT0dFKCJyZXN1bHQgb2YgZmFpbGVkIHNldENhbGxiYWNrICVzIiwgcmVzdWx0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgfQorCisgICAgQVNTRVJUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgICAgQVNTRVJUX1RSVUUocmVzdWx0KTsKKworICAgIC8qCisgICAgICogQXQgbGVhc3Qgb25lIGNhbGxiYWNrIHNob3VsZCB0cmlnZ2VyIC0gaXQgbWF5IGJlIGNhcGFiaWxpdGVzLCBvcgorICAgICAqIHN5c3RlbSBpbmZvIGZpcnN0LCBzbyB3YWl0IGFnYWluIGlmIGNhcGFiaWxpdGllcyBub3QgcmVjZWl2ZWQuCisgICAgICovCisgICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KFRJTUVPVVRfU0VDKSk7CisgICAgaWYgKGNhcGFiaWxpdGllc19jYWxsZWRfY291bnRfID09IDApIHsKKyAgICAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdChUSU1FT1VUX1NFQykpOworICAgIH0KKworICAgIC8qCisgICAgICogR2VuZXJhbGx5IHNob3VsZCBiZSAxIGNhcGFiaWxpdGVzIGNhbGxiYWNrIC0KKyAgICAgKiBvciBwb3NzaWJseSAyIGluIHNvbWUgcmVjb3ZlcnkgY2FzZXMgKGRlZmF1bHQgY2FjaGVkICYgcmVmcmVzaGVkKQorICAgICAqLworICAgIEVYUEVDVF9HRShjYXBhYmlsaXRpZXNfY2FsbGVkX2NvdW50XywgMSk7CisgICAgRVhQRUNUX0xFKGNhcGFiaWxpdGllc19jYWxsZWRfY291bnRfLCAyKTsKKworICAgIC8qCisgICAgICogQ2xlYXIgbm90aWZ5L3dhaXRpbmcgY291bnRlciwgYWxsb3dpbmcgdXAgdGlsbCB0aGUgdGltZW91dCBhZnRlcgorICAgICAqIHRoZSBsYXN0IHJlcGx5IGZvciBmaW5hbCBzdGFydHVwIG1lc3NhZ2VzIHRvIGFycml2ZSAoZXNwLiBzeXN0ZW0KKyAgICAgKiBpbmZvLikKKyAgICAgKi8KKyAgICB3aGlsZSAod2FpdChUSU1FT1VUX1NFQykgPT0gc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQpIHsKKyAgICB9CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgaWYgKGduc3NfaGFsXyAhPSBudWxscHRyKSB7CisgICAgICBnbnNzX2hhbF8tPmNsZWFudXAoKTsKKyAgICB9CisgIH0KKworICAvKiBVc2VkIGFzIGEgbWVjaGFuaXNtIHRvIGluZm9ybSB0aGUgdGVzdCB0aGF0IGEgY2FsbGJhY2sgaGFzIG9jY3VycmVkICovCisgIGlubGluZSB2b2lkIG5vdGlmeSgpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXR4Xyk7CisgICAgY291bnQrKzsKKyAgICBjdl8ubm90aWZ5X29uZSgpOworICB9CisKKyAgLyogVGVzdCBjb2RlIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8gd2FpdCBmb3IgYSBjYWxsYmFjayAqLworICBpbmxpbmUgc3RkOjpjdl9zdGF0dXMgd2FpdChpbnQgdGltZW91dFNlY29uZHMpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXR4Xyk7CisKKyAgICBzdGQ6OmN2X3N0YXR1cyBzdGF0dXMgPSBzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dDsKKyAgICBhdXRvIG5vdyA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpOworICAgIHdoaWxlIChjb3VudCA9PSAwKSB7CisgICAgICBzdGF0dXMgPSBjdl8ud2FpdF91bnRpbChsb2NrLCBub3cgKyBzdGQ6OmNocm9ubzo6c2Vjb25kcyh0aW1lb3V0U2Vjb25kcykpOworICAgICAgaWYgKHN0YXR1cyA9PSBzdGQ6OmN2X3N0YXR1czo6dGltZW91dCkgcmV0dXJuIHN0YXR1czsKKyAgICB9CisgICAgY291bnQtLTsKKyAgICByZXR1cm4gc3RhdHVzOworICB9CisKKyAgLyogQ2FsbGJhY2sgY2xhc3MgZm9yIGRhdGEgJiBFdmVudC4gKi8KKyAgY2xhc3MgR25zc0NhbGxiYWNrIDogcHVibGljIElHbnNzQ2FsbGJhY2sgeworICAgcHVibGljOgorICAgIEduc3NIYWxUZXN0JiBwYXJlbnRfOworCisgICAgR25zc0NhbGxiYWNrKEduc3NIYWxUZXN0JiBwYXJlbnQpIDogcGFyZW50XyhwYXJlbnQpe307CisKKyAgICB2aXJ0dWFsIH5HbnNzQ2FsbGJhY2soKSA9IGRlZmF1bHQ7CisKKyAgICAvLyBEdW1teSBjYWxsYmFjayBoYW5kbGVycworICAgIFJldHVybjx2b2lkPiBnbnNzU3RhdHVzQ2IoCisgICAgICAgIGNvbnN0IElHbnNzQ2FsbGJhY2s6Okduc3NTdGF0dXNWYWx1ZSAvKiBzdGF0dXMgKi8pIG92ZXJyaWRlIHsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIFJldHVybjx2b2lkPiBnbnNzU3ZTdGF0dXNDYigKKyAgICAgICAgY29uc3QgSUduc3NDYWxsYmFjazo6R25zc1N2U3RhdHVzJiAvKiBzdlN0YXR1cyAqLykgb3ZlcnJpZGUgeworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgUmV0dXJuPHZvaWQ+IGduc3NObWVhQ2IoCisgICAgICAgIGludDY0X3QgLyogdGltZXN0YW1wICovLAorICAgICAgICBjb25zdCBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmcmIC8qIG5tZWEgKi8pIG92ZXJyaWRlIHsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIFJldHVybjx2b2lkPiBnbnNzQWNxdWlyZVdha2Vsb2NrQ2IoKSBvdmVycmlkZSB7IHJldHVybiBWb2lkKCk7IH0KKyAgICBSZXR1cm48dm9pZD4gZ25zc1JlbGVhc2VXYWtlbG9ja0NiKCkgb3ZlcnJpZGUgeyByZXR1cm4gVm9pZCgpOyB9CisgICAgUmV0dXJuPHZvaWQ+IGduc3NSZXF1ZXN0VGltZUNiKCkgb3ZlcnJpZGUgeyByZXR1cm4gVm9pZCgpOyB9CisKKyAgICAvLyBBY3R1YWwgKHRlc3QpIGNhbGxiYWNrIGhhbmRsZXJzCisgICAgUmV0dXJuPHZvaWQ+IGduc3NMb2NhdGlvbkNiKGNvbnN0IEduc3NMb2NhdGlvbiYgbG9jYXRpb24pIG92ZXJyaWRlIHsKKyAgICAgIEFMT0dJKCJMb2NhdGlvbiByZWNlaXZlZCIpOworICAgICAgcGFyZW50Xy5sb2NhdGlvbl9jYWxsZWRfY291bnRfKys7CisgICAgICBwYXJlbnRfLmxhc3RfbG9jYXRpb25fID0gbG9jYXRpb247CisgICAgICBwYXJlbnRfLm5vdGlmeSgpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gZ25zc1NldENhcGFiaWxpdGVzQ2IodWludDMyX3QgY2FwYWJpbGl0aWVzKSBvdmVycmlkZSB7CisgICAgICBBTE9HSSgiQ2FwYWJpbGl0aWVzIHJlY2VpdmVkICVkIiwgY2FwYWJpbGl0aWVzKTsKKyAgICAgIHBhcmVudF8uY2FwYWJpbGl0aWVzX2NhbGxlZF9jb3VudF8rKzsKKyAgICAgIHBhcmVudF8ubGFzdF9jYXBhYmlsaXRpZXNfID0gY2FwYWJpbGl0aWVzOworICAgICAgcGFyZW50Xy5ub3RpZnkoKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IGduc3NTZXRTeXN0ZW1JbmZvQ2IoCisgICAgICAgIGNvbnN0IElHbnNzQ2FsbGJhY2s6Okduc3NTeXN0ZW1JbmZvJiBpbmZvKSBvdmVycmlkZSB7CisgICAgICBBTE9HSSgiSW5mbyByZWNlaXZlZCwgeWVhciAlZCIsIGluZm8ueWVhck9mSHcpOworICAgICAgcGFyZW50Xy5pbmZvX2NhbGxlZF9jb3VudF8rKzsKKyAgICAgIHBhcmVudF8ubGFzdF9pbmZvXyA9IGluZm87CisgICAgICBwYXJlbnRfLm5vdGlmeSgpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgIH07CisKKyAgc3A8SUduc3M+IGduc3NfaGFsXzsgICAgICAgICAvLyBHTlNTIEhBTCB0byBjYWxsIGludG8KKyAgc3A8SUduc3NDYWxsYmFjaz4gZ25zc19jYl87ICAvLyBQcmltYXJ5IGNhbGxiYWNrIGludGVyZmFjZQorCisgIC8qIENvdW50IG9mIGNhbGxzIHRvIHNldCB0aGUgZm9sbG93aW5nIGl0ZW1zLCBhbmQgdGhlIGxhdGVzdCBpdGVtICh1c2VkIGJ5CisgICAqIHRlc3QuKQorICAgKi8KKyAgaW50IGNhcGFiaWxpdGllc19jYWxsZWRfY291bnRfOworICB1aW50MzJfdCBsYXN0X2NhcGFiaWxpdGllc187CisKKyAgaW50IGxvY2F0aW9uX2NhbGxlZF9jb3VudF87CisgIEduc3NMb2NhdGlvbiBsYXN0X2xvY2F0aW9uXzsKKworICBpbnQgaW5mb19jYWxsZWRfY291bnRfOworICBJR25zc0NhbGxiYWNrOjpHbnNzU3lzdGVtSW5mbyBsYXN0X2luZm9fOworCisgcHJpdmF0ZToKKyAgc3RkOjptdXRleCBtdHhfOworICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBjdl87CisgIGludCBjb3VudDsKK307CisKKy8qCisgKiBTZXRDYWxsYmFja0NhcGFiaWxpdGllc0NsZWFudXA6CisgKiBTZXRzIHVwIHRoZSBjYWxsYmFjaywgYXdhaXRzIHRoZSBjYXBhYmlsaXRpZXMsIGFuZCBjYWxscyBjbGVhbnVwCisgKgorICogU2luY2UgdGhpcyBpcyBqdXN0IHRoZSBiYXNpYyBvcGVyYXRpb24gb2YgU2V0VXAoKSBhbmQgVGVhckRvd24oKSwKKyAqIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGlzIGludGVudGlvbmFsbHkgZW1wdHkKKyAqLworVEVTVF9GKEduc3NIYWxUZXN0LCBTZXRDYWxsYmFja0NhcGFiaWxpdGllc0NsZWFudXApIHt9CisKKy8qCisgKiBDaGVja0xvY2F0aW9uOgorICogSGVscGVyIGZ1bmN0aW9uIHRvIHZldCBMb2NhdGlvbiBmaWVsZHMKKyAqLwordm9pZCBDaGVja0xvY2F0aW9uKEduc3NMb2NhdGlvbiYgbG9jYXRpb24sIGJvb2wgY2hlY2tBY2N1cmFjaWVzKSB7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19MQVRfTE9ORyk7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19BTFRJVFVERSk7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19TUEVFRCk7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYKKyAgICAgICAgICAgICAgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19IT1JJWk9OVEFMX0FDQ1VSQUNZKTsKKyAgLy8gTmV3IHVuY2VydGFpbnRpZXMgYXZhaWxhYmxlIGluIE8gbXVzdCBiZSBwcm92aWRlZCwKKyAgLy8gYXQgbGVhc3Qgd2hlbiBwYWlyZWQgd2l0aCBtb2Rlcm4gaGFyZHdhcmUgKDIwMTcrKQorICBpZiAoY2hlY2tBY2N1cmFjaWVzKSB7CisgICAgRVhQRUNUX1RSVUUobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJgorICAgICAgICAgICAgICAgIEduc3NMb2NhdGlvbkZsYWdzOjpIQVNfVkVSVElDQUxfQUNDVVJBQ1kpOworICAgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYKKyAgICAgICAgICAgICAgICBHbnNzTG9jYXRpb25GbGFnczo6SEFTX1NQRUVEX0FDQ1VSQUNZKTsKKyAgICBpZiAobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJiBHbnNzTG9jYXRpb25GbGFnczo6SEFTX0JFQVJJTkcpIHsKKyAgICAgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYKKyAgICAgICAgICAgICAgICAgIEduc3NMb2NhdGlvbkZsYWdzOjpIQVNfQkVBUklOR19BQ0NVUkFDWSk7CisgICAgfQorICB9CisgIEVYUEVDVF9HRShsb2NhdGlvbi5sYXRpdHVkZURlZ3JlZXMsIC05MC4wKTsKKyAgRVhQRUNUX0xFKGxvY2F0aW9uLmxhdGl0dWRlRGVncmVlcywgOTAuMCk7CisgIEVYUEVDVF9HRShsb2NhdGlvbi5sb25naXR1ZGVEZWdyZWVzLCAtMTgwLjApOworICBFWFBFQ1RfTEUobG9jYXRpb24ubG9uZ2l0dWRlRGVncmVlcywgMTgwLjApOworICBFWFBFQ1RfR0UobG9jYXRpb24uYWx0aXR1ZGVNZXRlcnMsIC0xMDAwLjApOworICBFWFBFQ1RfTEUobG9jYXRpb24uYWx0aXR1ZGVNZXRlcnMsIDMwMDAwLjApOworICBFWFBFQ1RfR0UobG9jYXRpb24uc3BlZWRNZXRlcnNQZXJTZWMsIDAuMCk7CisgIEVYUEVDVF9MRShsb2NhdGlvbi5zcGVlZE1ldGVyc1BlclNlYywgNS4wKTsgIC8vIFZUUyB0ZXN0cyBhcmUgc3RhdGlvbmFyeS4KKworICAvLyBOb24temVybyBzcGVlZHMgbXVzdCBiZSByZXBvcnRlZCB3aXRoIGFuIGFzc29jaWF0ZWQgYmVhcmluZworICBpZiAobG9jYXRpb24uc3BlZWRNZXRlcnNQZXJTZWMgPiAwLjApIHsKKyAgICBFWFBFQ1RfVFJVRShsb2NhdGlvbi5nbnNzTG9jYXRpb25GbGFncyAmIEduc3NMb2NhdGlvbkZsYWdzOjpIQVNfQkVBUklORyk7CisgIH0KKworICAvKgorICAgKiBUb2xlcmF0aW5nIHNvbWUgZXNwZWNpYWxseSBoaWdoIHZhbHVlcyBmb3IgYWNjdXJhY3kgZXN0aW1hdGUsIGluIGNhc2Ugb2YKKyAgICogZmlyc3QgZml4IHdpdGggZXNwZWNpYWxseSBwb29yIGdlb21ldHJ5IChoYXBwZW5zIG9jY2FzaW9uYWxseSkKKyAgICovCisgIEVYUEVDVF9HVChsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3lNZXRlcnMsIDAuMCk7CisgIEVYUEVDVF9MRShsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3lNZXRlcnMsIDI1MC4wKTsKKworICAvKgorICAgKiBTb21lIGRldmljZXMgbWF5IGRlZmluZSBiZWFyaW5nIGFzIC0xODAgdG8gKzE4MCwgb3RoZXJzIGFzIDAgdG8gMzYwLgorICAgKiBCb3RoIGFyZSBva2F5ICYgdW5kZXJzdGFuZGFibGUuCisgICAqLworICBpZiAobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJiBHbnNzTG9jYXRpb25GbGFnczo6SEFTX0JFQVJJTkcpIHsKKyAgICBFWFBFQ1RfR0UobG9jYXRpb24uYmVhcmluZ0RlZ3JlZXMsIC0xODAuMCk7CisgICAgRVhQRUNUX0xFKGxvY2F0aW9uLmJlYXJpbmdEZWdyZWVzLCAzNjAuMCk7CisgIH0KKyAgaWYgKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19WRVJUSUNBTF9BQ0NVUkFDWSkgeworICAgIEVYUEVDVF9HVChsb2NhdGlvbi52ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzLCAwLjApOworICAgIEVYUEVDVF9MRShsb2NhdGlvbi52ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzLCA1MDAuMCk7CisgIH0KKyAgaWYgKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19TUEVFRF9BQ0NVUkFDWSkgeworICAgIEVYUEVDVF9HVChsb2NhdGlvbi5zcGVlZEFjY3VyYWN5TWV0ZXJzUGVyU2Vjb25kLCAwLjApOworICAgIEVYUEVDVF9MRShsb2NhdGlvbi5zcGVlZEFjY3VyYWN5TWV0ZXJzUGVyU2Vjb25kLCA1MC4wKTsKKyAgfQorICBpZiAobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJiBHbnNzTG9jYXRpb25GbGFnczo6SEFTX0JFQVJJTkdfQUNDVVJBQ1kpIHsKKyAgICBFWFBFQ1RfR1QobG9jYXRpb24uYmVhcmluZ0FjY3VyYWN5RGVncmVlcywgMC4wKTsKKyAgICBFWFBFQ1RfTEUobG9jYXRpb24uYmVhcmluZ0FjY3VyYWN5RGVncmVlcywgMzYwLjApOworICB9CisKKyAgLy8gQ2hlY2sgdGltZXN0YW1wID4gMS40OGUxMiAoNDcgeWVhcnMgaW4gbXNlYyAtIDE5NzAtPjIwMTcrKQorICBFWFBFQ1RfR1QobG9jYXRpb24udGltZXN0YW1wLCAxLjQ4ZTEyKTsKK30KKworLyoKKyAqIFN0YXJ0QW5kR2V0U2luZ2xlTG9jYXRpb246CisgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IG9uZSBMb2NhdGlvbiBhbmQgY2hlY2sgZmllbGRzCisgKgorICogcmV0dXJucyAgdHJ1ZSBpZiBhIGxvY2F0aW9uIHdhcyBzdWNjZXNzZnVsbHkgZ2VuZXJhdGVkCisgKi8KK2Jvb2wgU3RhcnRBbmRHZXRTaW5nbGVMb2NhdGlvbihHbnNzSGFsVGVzdCogdGVzdCwgYm9vbCBjaGVja0FjY3VyYWNpZXMpIHsKKyAgYXV0byByZXN1bHQgPSB0ZXN0LT5nbnNzX2hhbF8tPnN0YXJ0KCk7CisKKyAgRVhQRUNUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHJlc3VsdCk7CisKKyAgLyoKKyAgICogR1BTIHNpZ25hbHMgaW5pdGlhbGx5IG9wdGlvbmFsIGZvciB0aGlzIHRlc3QsIHNvIGRvbid0IGV4cGVjdCBmYXN0IGZpeCwKKyAgICogb3Igbm8gdGltZW91dCwgdW5sZXNzIHNpZ25hbCBpcyBwcmVzZW50CisgICAqLworICBpbnQgZmlyc3RHbnNzTG9jYXRpb25UaW1lb3V0U2Vjb25kcyA9IHNBZ3BzSXNQcmVzZW50ID8gMTUgOiA0NTsKKyAgaWYgKHNTaWduYWxJc1dlYWspIHsKKyAgICAvLyBhbGxvdyBtb3JlIHRpbWUgZm9yIHdlYWsgc2lnbmFscworICAgIGZpcnN0R25zc0xvY2F0aW9uVGltZW91dFNlY29uZHMgKz0gMzA7CisgIH0KKworICB0ZXN0LT53YWl0KGZpcnN0R25zc0xvY2F0aW9uVGltZW91dFNlY29uZHMpOworICBpZiAoc0FncHNJc1ByZXNlbnQpIHsKKyAgICBFWFBFQ1RfRVEodGVzdC0+bG9jYXRpb25fY2FsbGVkX2NvdW50XywgMSk7CisgIH0KKyAgaWYgKHRlc3QtPmxvY2F0aW9uX2NhbGxlZF9jb3VudF8gPiAwKSB7CisgICAgQ2hlY2tMb2NhdGlvbih0ZXN0LT5sYXN0X2xvY2F0aW9uXywgY2hlY2tBY2N1cmFjaWVzKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKKy8qCisgKiBHZXRMb2NhdGlvbjoKKyAqIFR1cm5zIG9uIGxvY2F0aW9uLCB3YWl0cyA0NSBzZWNvbmQgZm9yIGF0IGxlYXN0IDUgbG9jYXRpb25zLAorICogYW5kIGNoZWNrcyB0aGVtIGZvciByZWFzb25hYmxlIHZhbGlkaXR5LgorICovCitURVNUX0YoR25zc0hhbFRlc3QsIEdldExvY2F0aW9uKSB7CisjZGVmaW5lIE1JTl9JTlRFUlZBTF9NU0VDIDUwMAorI2RlZmluZSBQUkVGRVJSRURfQUNDVVJBQ1kgMCAgIC8vIElkZWFsbHkgcGVyZmVjdCAobWF0Y2hlcyBHbnNzTG9jYXRpb25Qcm92aWRlcikKKyNkZWZpbmUgUFJFRkVSUkVEX1RJTUVfTVNFQyAwICAvLyBJZGVhbGx5IGltbWVkaWF0ZQorCisjZGVmaW5lIExPQ0FUSU9OX1RJTUVPVVRfU1VCU0VRVUVOVF9TRUMgMworI2RlZmluZSBMT0NBVElPTlNfVE9fQ0hFQ0sgNQorCisgIGJvb2wgY2hlY2tNb3JlQWNjdXJhY2llcyA9CisgICAgICAoaW5mb19jYWxsZWRfY291bnRfID4gMCAmJiBsYXN0X2luZm9fLnllYXJPZkh3ID49IDIwMTcpOworCisgIGF1dG8gcmVzdWx0ID0gZ25zc19oYWxfLT5zZXRQb3NpdGlvbk1vZGUoCisgICAgICBJR25zczo6R25zc1Bvc2l0aW9uTW9kZTo6TVNfQkFTRUQsCisgICAgICBJR25zczo6R25zc1Bvc2l0aW9uUmVjdXJyZW5jZTo6UkVDVVJSRU5DRV9QRVJJT0RJQywgTUlOX0lOVEVSVkFMX01TRUMsCisgICAgICBQUkVGRVJSRURfQUNDVVJBQ1ksIFBSRUZFUlJFRF9USU1FX01TRUMpOworCisgIEFTU0VSVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICBFWFBFQ1RfVFJVRShyZXN1bHQpOworCisgIC8qCisgICAqIEdQUyBzaWduYWxzIGluaXRpYWxseSBvcHRpb25hbCBmb3IgdGhpcyB0ZXN0LCBzbyBkb24ndCBleHBlY3Qgbm8gdGltZW91dAorICAgKiB5ZXQKKyAgICovCisgIGJvb2wgZ290TG9jYXRpb24gPSBTdGFydEFuZEdldFNpbmdsZUxvY2F0aW9uKHRoaXMsIGNoZWNrTW9yZUFjY3VyYWNpZXMpOworCisgIGlmIChnb3RMb2NhdGlvbikgeworICAgIGZvciAoaW50IGkgPSAxOyBpIDwgTE9DQVRJT05TX1RPX0NIRUNLOyBpKyspIHsKKyAgICAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwKKyAgICAgICAgICB3YWl0KExPQ0FUSU9OX1RJTUVPVVRfU1VCU0VRVUVOVF9TRUMpKTsKKyAgICAgIEVYUEVDVF9FUShsb2NhdGlvbl9jYWxsZWRfY291bnRfLCBpICsgMSk7CisgICAgICBDaGVja0xvY2F0aW9uKGxhc3RfbG9jYXRpb25fLCBjaGVja01vcmVBY2N1cmFjaWVzKTsKKyAgICB9CisgIH0KKworICByZXN1bHQgPSBnbnNzX2hhbF8tPnN0b3AoKTsKKworICBBU1NFUlRfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgQVNTRVJUX1RSVUUocmVzdWx0KTsKK30KKworLyoKKyAqIEluamVjdERlbGV0ZToKKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBpbmplY3QgYW5kL29yIGRlbGV0ZSBpbmZvcm1hdGlvbiBzdGF0ZSBhcmUgaGFuZGxlZC4KKyAqLworVEVTVF9GKEduc3NIYWxUZXN0LCBJbmplY3REZWxldGUpIHsKKyAgLy8gY29uZmlkZW50bHksIHdlbGwgbm9ydGggb2YgQWxhc2thCisgIGF1dG8gcmVzdWx0ID0gZ25zc19oYWxfLT5pbmplY3RMb2NhdGlvbig4MC4wLCAtMTcwLjAsIDEwMDAuMCk7CisKKyAgQVNTRVJUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHJlc3VsdCk7CisKKyAgLy8gZmFrZSB0aW1lLCBidXQgZ2VuZXJhbGx5IHJlYXNvbmFibGUgdmFsdWVzICh0aW1lIGluIEF1Zy4gMjAxOCkKKyAgcmVzdWx0ID0gZ25zc19oYWxfLT5pbmplY3RUaW1lKDE1MzQ1Njc4OTAxMjNMLCAxMjM0NTZMLCAxMDAwMEwpOworCisgIEFTU0VSVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICBFWFBFQ1RfVFJVRShyZXN1bHQpOworCisgIGF1dG8gcmVzdWx0Vm9pZCA9IGduc3NfaGFsXy0+ZGVsZXRlQWlkaW5nRGF0YShJR25zczo6R25zc0FpZGluZ0RhdGE6OkRFTEVURV9BTEwpOworCisgIEFTU0VSVF9UUlVFKHJlc3VsdFZvaWQuaXNPaygpKTsKKworICAvLyBFbnN1cmUgd2UgY2FuIGdldCBhIGdvb2QgbG9jYXRpb24gYWZ0ZXIgYSBiYWQgaW5qZWN0aW9uIGhhcyBiZWVuIGRlbGV0ZWQKKyAgU3RhcnRBbmRHZXRTaW5nbGVMb2NhdGlvbih0aGlzLCBmYWxzZSk7Cit9CisKKy8qCisgKiBHZXRBbGxFeHRlbnRpb25zOgorICogVHJpZXMgZ2V0dGluZyBhbGwgb3B0aW9uYWwgZXh0ZW5zaW9ucywgYW5kIGVuc3VyZXMgYSB2YWxpZCByZXR1cm4KKyAqICAgbnVsbCBvciBhY3R1YWwgZXh0ZW5zaW9uLCBubyBjcmFzaC4KKyAqIENvbmZpcm1zIHllYXItYmFzZWQgcmVxdWlyZWQgZXh0ZW5zaW9ucyAoTWVhc3VyZW1lbnQgJiBEZWJ1ZykgYXJlIHByZXNlbnQKKyAqLworVEVTVF9GKEduc3NIYWxUZXN0LCBHZXRBbGxFeHRlbnNpb25zKSB7CisgIC8vIEJhc2ljIGNhbGwtaXMtaGFuZGxlZCBjaGVja3MKKyAgYXV0byBnbnNzWHRyYSA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uWHRyYSgpOworICBBU1NFUlRfVFJVRShnbnNzWHRyYS5pc09rKCkpOworCisgIGF1dG8gZ25zc1JpbCA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uQUduc3NSaWwoKTsKKyAgQVNTRVJUX1RSVUUoZ25zc1JpbC5pc09rKCkpOworCisgIGF1dG8gZ25zc0FnbnNzID0gZ25zc19oYWxfLT5nZXRFeHRlbnNpb25BR25zcygpOworICBBU1NFUlRfVFJVRShnbnNzQWduc3MuaXNPaygpKTsKKworICBhdXRvIGduc3NOaSA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uR25zc05pKCk7CisgIEFTU0VSVF9UUlVFKGduc3NOaS5pc09rKCkpOworCisgIGF1dG8gZ25zc05hdmlnYXRpb25NZXNzYWdlID0gZ25zc19oYWxfLT5nZXRFeHRlbnNpb25HbnNzTmF2aWdhdGlvbk1lc3NhZ2UoKTsKKyAgQVNTRVJUX1RSVUUoZ25zc05hdmlnYXRpb25NZXNzYWdlLmlzT2soKSk7CisKKyAgYXV0byBnbnNzQ29uZmlndXJhdGlvbiA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uR25zc0NvbmZpZ3VyYXRpb24oKTsKKyAgQVNTRVJUX1RSVUUoZ25zc0NvbmZpZ3VyYXRpb24uaXNPaygpKTsKKworICBhdXRvIGduc3NHZW9mZW5jaW5nID0gZ25zc19oYWxfLT5nZXRFeHRlbnNpb25HbnNzR2VvZmVuY2luZygpOworICBBU1NFUlRfVFJVRShnbnNzR2VvZmVuY2luZy5pc09rKCkpOworCisgIGF1dG8gZ25zc0JhdGNoaW5nID0gZ25zc19oYWxfLT5nZXRFeHRlbnNpb25HbnNzQmF0Y2hpbmcoKTsKKyAgQVNTRVJUX1RSVUUoZ25zc0JhdGNoaW5nLmlzT2soKSk7CisKKyAgLy8gVmVyaWZ5aW5nLCBpbiBzb21lIGNhc2VzLCB0aGF0IHRoZXNlIHJldHVybiBhY3R1YWwgZXh0ZW5zaW9ucworICBhdXRvIGduc3NNZWFzdXJlbWVudCA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uR25zc01lYXN1cmVtZW50KCk7CisgIEFTU0VSVF9UUlVFKGduc3NNZWFzdXJlbWVudC5pc09rKCkpOworICBpZiAobGFzdF9jYXBhYmlsaXRpZXNfICYgSUduc3NDYWxsYmFjazo6Q2FwYWJpbGl0aWVzOjpNRUFTVVJFTUVOVFMpIHsKKyAgICBzcDxJR25zc01lYXN1cmVtZW50PiBpR25zc01lYXMgPSBnbnNzTWVhc3VyZW1lbnQ7CisgICAgRVhQRUNUX05FKGlHbnNzTWVhcywgbnVsbHB0cik7CisgIH0KKworICBhdXRvIGduc3NEZWJ1ZyA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uR25zc0RlYnVnKCk7CisgIEFTU0VSVF9UUlVFKGduc3NEZWJ1Zy5pc09rKCkpOworICBpZiAoaW5mb19jYWxsZWRfY291bnRfID4gMCAmJiBsYXN0X2luZm9fLnllYXJPZkh3ID49IDIwMTcpIHsKKyAgICBzcDxJR25zc0RlYnVnPiBpR25zc0RlYnVnID0gZ25zc0RlYnVnOworICAgIEVYUEVDVF9ORShpR25zc0RlYnVnLCBudWxscHRyKTsKKyAgfQorfQorCisvKgorICogTWVhc3VyZW1lbnRDYXBhYmlsaXRpZXM6CisgKiBWZXJpZmllcyB0aGF0IG1vZGVybiBoYXJkd2FyZSBzdXBwb3J0cyBtZWFzdXJlbWVudCBjYXBhYmlsaXRpZXMuCisgKi8KK1RFU1RfRihHbnNzSGFsVGVzdCwgTWVhc3VyZW1lbnRDYXBhYmlsaXRlcykgeworICBpZiAoaW5mb19jYWxsZWRfY291bnRfID4gMCAmJiBsYXN0X2luZm9fLnllYXJPZkh3ID49IDIwMTYpIHsKKyAgICBFWFBFQ1RfVFJVRShsYXN0X2NhcGFiaWxpdGllc18gJiBJR25zc0NhbGxiYWNrOjpDYXBhYmlsaXRpZXM6Ok1FQVNVUkVNRU5UUyk7CisgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAvKgorICAgKiBUaGVzZSBhcmd1bWVudHMgbm90IHVzZWQgYnkgYXV0b21hdGVkIFZUUyB0ZXN0aW5nLgorICAgKiBPbmx5IGZvciB1c2UgaW4gbWFudWFsIHRlc3RpbmcsIHdoZW4gd2FudGluZyB0byBydW4KKyAgICogc3Ryb25nZXIgdGVzdHMgdGhhdCByZXF1aXJlIHRoZSBwcmVzZW5jZSBvZiBHUFMgc2lnbmFsLgorICAgKi8KKyAgZm9yIChpbnQgaSA9IDE7IGkgPCBhcmdjOyBpKyspIHsKKyAgICBpZiAoc3RyY21wKGFyZ3ZbaV0sIi1hZ3BzIikgPT0gMCkgeworICAgICAgc0FncHNJc1ByZXNlbnQgPSB0cnVlOworICAgIH0gZWxzZSBpZiAoc3RyY21wKGFyZ3ZbaV0sIi13ZWFrIikgPT0gMCkgeworICAgICAgc1NpZ25hbElzV2VhayA9IHRydWU7CisgICAgfQorICB9CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9nbnNzL0FuZHJvaWQuYnAgYi9nbnNzL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNmNzBlYgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9ncmFwaGljcy9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWVhODVmCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvQW5kcm9pZC5icApAQCAtMCwwICsxLDEzIEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICJhbGxvY2F0b3IvMi4wIiwKKyAgICAiYWxsb2NhdG9yLzIuMC9kZWZhdWx0IiwKKyAgICAiYnVmZmVycXVldWUvMS4wIiwKKyAgICAiY29tbW9uLzEuMCIsCisgICAgImNvbXBvc2VyLzIuMSIsCisgICAgImNvbXBvc2VyLzIuMS9kZWZhdWx0IiwKKyAgICAiY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsIiwKKyAgICAibWFwcGVyLzIuMCIsCisgICAgIm1hcHBlci8yLjAvZGVmYXVsdCIsCisgICAgIm1hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjMmEzZGEKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJJQWxsb2NhdG9yLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvQWxsb2NhdG9yQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9JQWxsb2NhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0lId0FsbG9jYXRvci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9Cbkh3QWxsb2NhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0JwSHdBbGxvY2F0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvQnNBbGxvY2F0b3IuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0FuZHJvaWQubWsgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9JQWxsb2NhdG9yLmhhbCBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDNhMzkxNgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oYWwKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wOworCitpbnRlcmZhY2UgSUFsbG9jYXRvciB7CisgICAgLyoqCisgICAgICogUmV0cmlldmVzIGltcGxlbWVudGF0aW9uLWRlZmluZWQgZGVidWcgaW5mb3JtYXRpb24sIHdoaWNoIHdpbGwgYmUKKyAgICAgKiBkaXNwbGF5ZWQgZHVyaW5nLCBmb3IgZXhhbXBsZSwgYGR1bXBzeXMgU3VyZmFjZUZsaW5nZXJgLgorICAgICAqCisgICAgICogQHJldHVybiBkZWJ1Z0luZm8gaXMgYSBzdHJpbmcgb2YgZGVidWcgaW5mb3JtYXRpb24uCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZHVtcERlYnVnSW5mbygpIGdlbmVyYXRlcyAoc3RyaW5nIGRlYnVnSW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBBbGxvY2F0ZXMgYnVmZmVycyB3aXRoIHRoZSBwcm9wZXJ0aWVzIHNwZWNpZmllZCBieSB0aGUgZGVzY3JpcHRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZXNjcmlwdG9yIHNwZWNpZmllcyB0aGUgcHJvcGVydGllcyBvZiB0aGUgYnVmZmVycyB0byBhbGxvY2F0ZS4KKyAgICAgKiBAcGFyYW0gY291bnQgaXMgdGhlIG51bWJlciBvZiBidWZmZXJzIHRvIGFsbG9jYXRlLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ERVNDUklQVE9SIHdoZW4gdGhlIGRlc2NyaXB0b3IgaXMgaW52YWxpZC4KKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSBhbGxvY2F0aW9uIGNhbm5vdCBiZSBmdWxmaWxsZWQgYXQgdGhpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgIHRpbWUuCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIGFueSBvZiB0aGUgcHJvcGVydHkgZW5jb2RlZCBpbiB0aGUgZGVzY3JpcHRvcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgKiBAcmV0dXJuIHN0cmlkZSBpcyB0aGUgbnVtYmVyIG9mIHBpeGVscyBiZXR3ZWVuIHR3byBjb25zZWN1dGl2ZSByb3dzIG9mCisgICAgICogICAgICAgICB0aGUgYnVmZmVycywgd2hlbiB0aGUgY29uY2VwdCBvZiBjb25zZWN1dGl2ZSByb3dzIGlzIGRlZmluZWQuCisgICAgICogICAgICAgICBPdGhlcndpc2UsIGl0IGhhcyBubyBtZWFuaW5nLgorICAgICAqIEByZXR1cm4gYnVmZmVycyBpcyBhbiBhcnJheSBvZiByYXcgaGFuZGxlcyB0byB0aGUgbmV3bHkgYWxsb2NhdGVkCisgICAgICogICAgICAgICBidWZmZXJzLgorICAgICAqLworICAgIEBlbnRyeQorICAgIEBleGl0CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGFsbG9jYXRlKEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvciwgdWludDMyX3QgY291bnQpCisgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc3RyaWRlLAorICAgICAgICAgICAgICAgICAgIHZlYzxoYW5kbGU+IGJ1ZmZlcnMpOworfTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTk2OGY0MQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDggQEAKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wLWltcGwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJHcmFsbG9jLmNwcCIsICJHcmFsbG9jMEFsbG9jYXRvci5jcHAiLCAiR3JhbGxvYzFBbGxvY2F0b3IuY3BwIl0sCisgICAgY3BwZmxhZ3M6IFsiLVdhbGwiLCAiLVdleHRyYSJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCisgICAgaGVhZGVyX2xpYnM6IFsKKyAgICAgICAgImxpYmdyYWxsb2NtYXBwZXJpbmNsdWRlcyIsCisgICAgXSwKK30KKworY2NfYmluYXJ5IHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wLXNlcnZpY2UiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJzZXJ2aWNlLmNwcCJdLAorICAgIGluaXRfcmM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wLXNlcnZpY2UucmMiXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc3RhdGljIHsKKyAgICBuYW1lOiAibGliZ3JhbGxvYzEtYWRhcHRlciIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiZ3JhbGxvYzEtYWRhcHRlci5jcHAiLCAiR3JhbGxvYzFPbjBBZGFwdGVyLmNwcCJdLAorICAgIGluY2x1ZGVfZGlyczogWyJzeXN0ZW0vY29yZS9saWJzeW5jL2luY2x1ZGUiXSwKKyAgICBjZmxhZ3M6IFsiLVdhbGwiLCAiLVdleHRyYSJdLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnM6IFsiLiJdLAorICAgIHdob2xlX3N0YXRpY19saWJzOiBbImxpYmdyYWxsb2N1c2FnZSJdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MuY3BwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3M2QzZjUKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYy5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHcmFsbG9jUGFzc3Rocm91Z2giCisKKyNpbmNsdWRlICJHcmFsbG9jLmgiCisjaW5jbHVkZSAiR3JhbGxvYzBBbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJHcmFsbG9jMUFsbG9jYXRvci5oIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBhbGxvY2F0b3IgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworSUFsbG9jYXRvciogSElETF9GRVRDSF9JQWxsb2NhdG9yKGNvbnN0IGNoYXIqIC8qIG5hbWUgKi8pIHsKKyAgICBjb25zdCBod19tb2R1bGVfdCogbW9kdWxlID0gbnVsbHB0cjsKKyAgICBpbnQgZXJyID0gaHdfZ2V0X21vZHVsZShHUkFMTE9DX0hBUkRXQVJFX01PRFVMRV9JRCwgJm1vZHVsZSk7CisgICAgaWYgKGVycikgeworICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGdldCBncmFsbG9jIG1vZHVsZSIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICB1aW50OF90IG1ham9yID0gKG1vZHVsZS0+bW9kdWxlX2FwaV92ZXJzaW9uID4+IDgpICYgMHhmZjsKKyAgICBzd2l0Y2ggKG1ham9yKSB7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiBuZXcgR3JhbGxvYzFBbGxvY2F0b3IobW9kdWxlKTsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBHcmFsbG9jMEFsbG9jYXRvcihtb2R1bGUpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoInVua25vd24gZ3JhbGxvYyBtb2R1bGUgbWFqb3IgdmVyc2lvbiAlZCIsIG1ham9yKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gLy8gbmFtZXNwYWNlIFYyXzAKK30gLy8gbmFtZXNwYWNlIGFsbG9jYXRvcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYy5oIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzllZWFhCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQUxMT0NBVE9SX1YyXzBfR1JBTExPQ19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQUxMT0NBVE9SX1YyXzBfR1JBTExPQ19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBhbGxvY2F0b3IgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworZXh0ZXJuICJDIiBJQWxsb2NhdG9yKiBISURMX0ZFVENIX0lBbGxvY2F0b3IoY29uc3QgY2hhciogbmFtZSk7CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8wCit9IC8vIG5hbWVzcGFjZSBhbGxvY2F0b3IKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19BTExPQ0FUT1JfVjJfMF9HUkFMTE9DX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9HcmFsbG9jMEFsbG9jYXRvci5jcHAgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzBBbGxvY2F0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiNjJiYjMKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzBBbGxvY2F0b3IuY3BwCkBAIC0wLDAgKzEsMTQ0IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkdyYWxsb2MwQWxsb2NhdG9yIgorCisjaW5jbHVkZSAiR3JhbGxvYzBBbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJHcmFsbG9jQnVmZmVyRGVzY3JpcHRvci5oIgorCisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIGFsbG9jYXRvciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6aW1wbGVtZW50YXRpb246OgorICAgIGdyYWxsb2NEZWNvZGVCdWZmZXJEZXNjcmlwdG9yOworCitHcmFsbG9jMEFsbG9jYXRvcjo6R3JhbGxvYzBBbGxvY2F0b3IoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSkgeworICAgIGludCByZXN1bHQgPSBncmFsbG9jX29wZW4obW9kdWxlLCAmbURldmljZSk7CisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMKCJmYWlsZWQgdG8gb3BlbiBncmFsbG9jMCBkZXZpY2U6ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcigtcmVzdWx0KSk7CisgICAgfQorfQorCitHcmFsbG9jMEFsbG9jYXRvcjo6fkdyYWxsb2MwQWxsb2NhdG9yKCkgeworICAgIGdyYWxsb2NfY2xvc2UobURldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBHcmFsbG9jMEFsbG9jYXRvcjo6ZHVtcERlYnVnSW5mbyhkdW1wRGVidWdJbmZvX2NiIGhpZGxfY2IpIHsKKyAgICBjaGFyIGJ1Zls0MDk2XSA9IHt9OworICAgIGlmIChtRGV2aWNlLT5kdW1wKSB7CisgICAgICAgIG1EZXZpY2UtPmR1bXAobURldmljZSwgYnVmLCBzaXplb2YoYnVmKSk7CisgICAgICAgIGJ1ZltzaXplb2YoYnVmKSAtIDFdID0gJ1wwJzsKKyAgICB9CisKKyAgICBoaWRsX2NiKGhpZGxfc3RyaW5nKGJ1ZikpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEdyYWxsb2MwQWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBjb3VudCwgYWxsb2NhdGVfY2IgaGlkbF9jYikgeworICAgIElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvIGRlc2NyaXB0b3JJbmZvOworICAgIGlmICghZ3JhbGxvY0RlY29kZUJ1ZmZlckRlc2NyaXB0b3IoZGVzY3JpcHRvciwgJmRlc2NyaXB0b3JJbmZvKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfREVTQ1JJUFRPUiwgMCwgaGlkbF92ZWM8aGlkbF9oYW5kbGU+KCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEVycm9yIGVycm9yID0gRXJyb3I6Ok5PTkU7CisgICAgdWludDMyX3Qgc3RyaWRlID0gMDsKKyAgICBzdGQ6OnZlY3RvcjxoaWRsX2hhbmRsZT4gYnVmZmVyczsKKyAgICBidWZmZXJzLnJlc2VydmUoY291bnQpOworCisgICAgLy8gYWxsb2NhdGUgdGhlIGJ1ZmZlcnMKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICBidWZmZXJfaGFuZGxlX3QgdG1wQnVmZmVyOworICAgICAgICB1aW50MzJfdCB0bXBTdHJpZGU7CisgICAgICAgIGVycm9yID0gYWxsb2NhdGVPbmUoZGVzY3JpcHRvckluZm8sICZ0bXBCdWZmZXIsICZ0bXBTdHJpZGUpOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0cmlkZSA9PSAwKSB7CisgICAgICAgICAgICBzdHJpZGUgPSB0bXBTdHJpZGU7CisgICAgICAgIH0gZWxzZSBpZiAoc3RyaWRlICE9IHRtcFN0cmlkZSkgeworICAgICAgICAgICAgLy8gbm9uLXVuaWZvcm0gc3RyaWRlcworICAgICAgICAgICAgbURldmljZS0+ZnJlZShtRGV2aWNlLCB0bXBCdWZmZXIpOworICAgICAgICAgICAgc3RyaWRlID0gMDsKKyAgICAgICAgICAgIGVycm9yID0gRXJyb3I6OlVOU1VQUE9SVEVEOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBidWZmZXJzLmVtcGxhY2VfYmFjayhoaWRsX2hhbmRsZSh0bXBCdWZmZXIpKTsKKyAgICB9CisKKyAgICAvLyByZXR1cm4gdGhlIGJ1ZmZlcnMKKyAgICBoaWRsX3ZlYzxoaWRsX2hhbmRsZT4gaGlkbF9idWZmZXJzOworICAgIGlmIChlcnJvciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBoaWRsX2J1ZmZlcnMuc2V0VG9FeHRlcm5hbChidWZmZXJzLmRhdGEoKSwgYnVmZmVycy5zaXplKCkpOworICAgIH0KKyAgICBoaWRsX2NiKGVycm9yLCBzdHJpZGUsIGhpZGxfYnVmZmVycyk7CisKKyAgICAvLyBmcmVlIHRoZSBidWZmZXJzCisgICAgZm9yIChjb25zdCBhdXRvJiBidWZmZXIgOiBidWZmZXJzKSB7CisgICAgICAgIG1EZXZpY2UtPmZyZWUobURldmljZSwgYnVmZmVyLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitFcnJvciBHcmFsbG9jMEFsbG9jYXRvcjo6YWxsb2NhdGVPbmUoY29uc3QgSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8mIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIG91dFN0cmlkZSkgeworICAgIGlmIChpbmZvLmxheWVyQ291bnQgPiAxIHx8IChpbmZvLnVzYWdlID4+IDMyKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX1ZBTFVFOworICAgIH0KKworICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIgPSBudWxscHRyOworICAgIGludCBzdHJpZGUgPSAwOworICAgIGludCByZXN1bHQgPSBtRGV2aWNlLT5hbGxvYyhtRGV2aWNlLCBpbmZvLndpZHRoLCBpbmZvLmhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihpbmZvLmZvcm1hdCksIGluZm8udXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZidWZmZXIsICZzdHJpZGUpOworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgc3dpdGNoIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNhc2UgLUVJTlZBTDoKKyAgICAgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9WQUxVRTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAqb3V0QnVmZmVyID0gYnVmZmVyOworICAgICpvdXRTdHJpZGUgPSBzdHJpZGU7CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhbGxvY2F0b3IKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MwQWxsb2NhdG9yLmggYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzBBbGxvY2F0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTkwNTI3Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MwQWxsb2NhdG9yLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0FMTE9DQVRPUl9WMl8wX0dSQUxMT0MwQUxMT0NBVE9SX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19BTExPQ0FUT1JfVjJfMF9HUkFMTE9DMEFMTE9DQVRPUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBhbGxvY2F0b3IgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6QnVmZmVyRGVzY3JpcHRvcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjsKKworY2xhc3MgR3JhbGxvYzBBbGxvY2F0b3IgOiBwdWJsaWMgSUFsbG9jYXRvciB7CisgICBwdWJsaWM6CisgICAgR3JhbGxvYzBBbGxvY2F0b3IoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgdmlydHVhbCB+R3JhbGxvYzBBbGxvY2F0b3IoKTsKKworICAgIC8vIElBbGxvY2F0b3IgaW50ZXJmYWNlCisgICAgUmV0dXJuPHZvaWQ+IGR1bXBEZWJ1Z0luZm8oZHVtcERlYnVnSW5mb19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gYWxsb2NhdGUoY29uc3QgQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgdWludDMyX3QgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRlX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworCisgICBwcml2YXRlOgorICAgIEVycm9yIGFsbG9jYXRlT25lKGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBpbmZvLAorICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogb3V0QnVmZmVyLCB1aW50MzJfdCogb3V0U3RyaWRlKTsKKworICAgIGFsbG9jX2RldmljZV90KiBtRGV2aWNlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGFsbG9jYXRvcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19BTExPQ0FUT1JfVjJfMF9HUkFMTE9DMEFMTE9DQVRPUl9ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFBbGxvY2F0b3IuY3BwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxQWxsb2NhdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGE1ZTFlCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxQWxsb2NhdG9yLmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHcmFsbG9jMUFsbG9jYXRvciIKKworI2luY2x1ZGUgIkdyYWxsb2MxQWxsb2NhdG9yLmgiCisjaW5jbHVkZSAiR3JhbGxvY0J1ZmZlckRlc2NyaXB0b3IuaCIKKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBhbGxvY2F0b3IgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OmltcGxlbWVudGF0aW9uOjoKKyAgICBncmFsbG9jRGVjb2RlQnVmZmVyRGVzY3JpcHRvcjsKKworR3JhbGxvYzFBbGxvY2F0b3I6OkdyYWxsb2MxQWxsb2NhdG9yKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpCisgICAgOiBtRGV2aWNlKG51bGxwdHIpLCBtQ2FwYWJpbGl0aWVzKCksIG1EaXNwYXRjaCgpIHsKKyAgICBpbnQgcmVzdWx0ID0gZ3JhbGxvYzFfb3Blbihtb2R1bGUsICZtRGV2aWNlKTsKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUwoImZhaWxlZCB0byBvcGVuIGdyYWxsb2MxIGRldmljZTogJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVycm9yKC1yZXN1bHQpKTsKKyAgICB9CisKKyAgICBpbml0Q2FwYWJpbGl0aWVzKCk7CisgICAgaW5pdERpc3BhdGNoKCk7Cit9CisKK0dyYWxsb2MxQWxsb2NhdG9yOjp+R3JhbGxvYzFBbGxvY2F0b3IoKSB7CisgICAgZ3JhbGxvYzFfY2xvc2UobURldmljZSk7Cit9CisKK3ZvaWQgR3JhbGxvYzFBbGxvY2F0b3I6OmluaXRDYXBhYmlsaXRpZXMoKSB7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIG1EZXZpY2UtPmdldENhcGFiaWxpdGllcyhtRGV2aWNlLCAmY291bnQsIG51bGxwdHIpOworCisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gY2FwYWJpbGl0aWVzKGNvdW50KTsKKyAgICBtRGV2aWNlLT5nZXRDYXBhYmlsaXRpZXMobURldmljZSwgJmNvdW50LCBjYXBhYmlsaXRpZXMuZGF0YSgpKTsKKyAgICBjYXBhYmlsaXRpZXMucmVzaXplKGNvdW50KTsKKworICAgIGZvciAoYXV0byBjYXBhYmlsaXR5IDogY2FwYWJpbGl0aWVzKSB7CisgICAgICAgIGlmIChjYXBhYmlsaXR5ID09IEdSQUxMT0MxX0NBUEFCSUxJVFlfTEFZRVJFRF9CVUZGRVJTKSB7CisgICAgICAgICAgICBtQ2FwYWJpbGl0aWVzLmxheWVyZWRCdWZmZXJzID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3ZvaWQgR3JhbGxvYzFBbGxvY2F0b3I6OmluaXREaXNwYXRjaChncmFsbG9jMV9mdW5jdGlvbl9kZXNjcmlwdG9yX3QgZGVzYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUKiBvdXRQZm4pIHsKKyAgICBhdXRvIHBmbiA9IG1EZXZpY2UtPmdldEZ1bmN0aW9uKG1EZXZpY2UsIGRlc2MpOworICAgIGlmICghcGZuKSB7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUwoImZhaWxlZCB0byBnZXQgZ3JhbGxvYzEgZnVuY3Rpb24gJWQiLCBkZXNjKTsKKyAgICB9CisKKyAgICAqb3V0UGZuID0gcmVpbnRlcnByZXRfY2FzdDxUPihwZm4pOworfQorCit2b2lkIEdyYWxsb2MxQWxsb2NhdG9yOjppbml0RGlzcGF0Y2goKSB7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX0RVTVAsICZtRGlzcGF0Y2guZHVtcCk7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX0NSRUFURV9ERVNDUklQVE9SLAorICAgICAgICAgICAgICAgICAmbURpc3BhdGNoLmNyZWF0ZURlc2NyaXB0b3IpOworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9ERVNUUk9ZX0RFU0NSSVBUT1IsCisgICAgICAgICAgICAgICAgICZtRGlzcGF0Y2guZGVzdHJveURlc2NyaXB0b3IpOworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9TRVRfRElNRU5TSU9OUywgJm1EaXNwYXRjaC5zZXREaW1lbnNpb25zKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fU0VUX0ZPUk1BVCwgJm1EaXNwYXRjaC5zZXRGb3JtYXQpOworICAgIGlmIChtQ2FwYWJpbGl0aWVzLmxheWVyZWRCdWZmZXJzKSB7CisgICAgICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9TRVRfTEFZRVJfQ09VTlQsCisgICAgICAgICAgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyQ291bnQpOworICAgIH0KKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fU0VUX0NPTlNVTUVSX1VTQUdFLAorICAgICAgICAgICAgICAgICAmbURpc3BhdGNoLnNldENvbnN1bWVyVXNhZ2UpOworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9TRVRfUFJPRFVDRVJfVVNBR0UsCisgICAgICAgICAgICAgICAgICZtRGlzcGF0Y2guc2V0UHJvZHVjZXJVc2FnZSk7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX0dFVF9TVFJJREUsICZtRGlzcGF0Y2guZ2V0U3RyaWRlKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fQUxMT0NBVEUsICZtRGlzcGF0Y2guYWxsb2NhdGUpOworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9SRUxFQVNFLCAmbURpc3BhdGNoLnJlbGVhc2UpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvYzFBbGxvY2F0b3I6OmR1bXBEZWJ1Z0luZm8oZHVtcERlYnVnSW5mb19jYiBoaWRsX2NiKSB7CisgICAgdWludDMyX3QgbGVuID0gMDsKKyAgICBtRGlzcGF0Y2guZHVtcChtRGV2aWNlLCAmbGVuLCBudWxscHRyKTsKKworICAgIHN0ZDo6dmVjdG9yPGNoYXI+IGJ1ZihsZW4gKyAxKTsKKyAgICBtRGlzcGF0Y2guZHVtcChtRGV2aWNlLCAmbGVuLCBidWYuZGF0YSgpKTsKKyAgICBidWYucmVzaXplKGxlbiArIDEpOworICAgIGJ1ZltsZW5dID0gJ1wwJzsKKworICAgIGhpZGxfc3RyaW5nIHJlcGx5OworICAgIHJlcGx5LnNldFRvRXh0ZXJuYWwoYnVmLmRhdGEoKSwgbGVuKTsKKyAgICBoaWRsX2NiKHJlcGx5KTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHcmFsbG9jMUFsbG9jYXRvcjo6YWxsb2NhdGUoY29uc3QgQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY291bnQsIGFsbG9jYXRlX2NiIGhpZGxfY2IpIHsKKyAgICBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyBkZXNjcmlwdG9ySW5mbzsKKyAgICBpZiAoIWdyYWxsb2NEZWNvZGVCdWZmZXJEZXNjcmlwdG9yKGRlc2NyaXB0b3IsICZkZXNjcmlwdG9ySW5mbykpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6QkFEX0RFU0NSSVBUT1IsIDAsIGhpZGxfdmVjPGhpZGxfaGFuZGxlPigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2M7CisgICAgRXJyb3IgZXJyb3IgPSBjcmVhdGVEZXNjcmlwdG9yKGRlc2NyaXB0b3JJbmZvLCAmZGVzYyk7CisgICAgaWYgKGVycm9yICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIGhpZGxfY2IoZXJyb3IsIDAsIGhpZGxfdmVjPGhpZGxfaGFuZGxlPigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICB1aW50MzJfdCBzdHJpZGUgPSAwOworICAgIHN0ZDo6dmVjdG9yPGhpZGxfaGFuZGxlPiBidWZmZXJzOworICAgIGJ1ZmZlcnMucmVzZXJ2ZShjb3VudCk7CisKKyAgICAvLyBhbGxvY2F0ZSB0aGUgYnVmZmVycworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCB0bXBCdWZmZXI7CisgICAgICAgIHVpbnQzMl90IHRtcFN0cmlkZTsKKyAgICAgICAgZXJyb3IgPSBhbGxvY2F0ZU9uZShkZXNjLCAmdG1wQnVmZmVyLCAmdG1wU3RyaWRlKTsKKyAgICAgICAgaWYgKGVycm9yICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdHJpZGUgPT0gMCkgeworICAgICAgICAgICAgc3RyaWRlID0gdG1wU3RyaWRlOworICAgICAgICB9IGVsc2UgaWYgKHN0cmlkZSAhPSB0bXBTdHJpZGUpIHsKKyAgICAgICAgICAgIC8vIG5vbi11bmlmb3JtIHN0cmlkZXMKKyAgICAgICAgICAgIG1EaXNwYXRjaC5yZWxlYXNlKG1EZXZpY2UsIHRtcEJ1ZmZlcik7CisgICAgICAgICAgICBzdHJpZGUgPSAwOworICAgICAgICAgICAgZXJyb3IgPSBFcnJvcjo6VU5TVVBQT1JURUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGJ1ZmZlcnMuZW1wbGFjZV9iYWNrKGhpZGxfaGFuZGxlKHRtcEJ1ZmZlcikpOworICAgIH0KKworICAgIG1EaXNwYXRjaC5kZXN0cm95RGVzY3JpcHRvcihtRGV2aWNlLCBkZXNjKTsKKworICAgIC8vIHJldHVybiB0aGUgYnVmZmVycworICAgIGhpZGxfdmVjPGhpZGxfaGFuZGxlPiBoaWRsX2J1ZmZlcnM7CisgICAgaWYgKGVycm9yID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIGhpZGxfYnVmZmVycy5zZXRUb0V4dGVybmFsKGJ1ZmZlcnMuZGF0YSgpLCBidWZmZXJzLnNpemUoKSk7CisgICAgfQorICAgIGhpZGxfY2IoZXJyb3IsIHN0cmlkZSwgaGlkbF9idWZmZXJzKTsKKworICAgIC8vIGZyZWUgdGhlIGJ1ZmZlcnMKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJ1ZmZlciA6IGJ1ZmZlcnMpIHsKKyAgICAgICAgbURpc3BhdGNoLnJlbGVhc2UobURldmljZSwgYnVmZmVyLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitFcnJvciBHcmFsbG9jMUFsbG9jYXRvcjo6dG9FcnJvcihpbnQzMl90IGVycm9yKSB7CisgICAgc3dpdGNoIChlcnJvcikgeworICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX05PTkU6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfQkFEX0RFU0NSSVBUT1I6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9ERVNDUklQVE9SOworICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX0JBRF9IQU5ETEU6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9CVUZGRVI7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfQkFEX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfVkFMVUU7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfTk9UX1NIQVJFRDoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9ORTsgIC8vIHRoaXMgaXMgZmluZQorICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX05PX1JFU09VUkNFUzoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX1VOREVGSU5FRDoKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6VU5TVVBQT1JURUQ7CisgICAgfQorfQorCit1aW50NjRfdCBHcmFsbG9jMUFsbG9jYXRvcjo6dG9Qcm9kdWNlclVzYWdlKHVpbnQ2NF90IHVzYWdlKSB7CisgICAgLy8gdGhpcyBpcyBwb3RlbnRpYWxseSBicm9rZW4gYXMgd2UgaGF2ZSBubyBpZGVhIHdoaWNoIHByaXZhdGUgZmxhZ3MKKyAgICAvLyBzaG91bGQgYmUgZmlsdGVyZWQgb3V0CisgICAgdWludDY0X3QgcHJvZHVjZXJVc2FnZSA9CisgICAgICAgIHVzYWdlICYKKyAgICAgICAgfnN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1JFQURfTUFTSyB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyVXNhZ2U6OkNQVV9XUklURV9NQVNLKTsKKworICAgIHN3aXRjaCAodXNhZ2UgJiBCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX01BU0spIHsKKyAgICAgICAgY2FzZSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQnVmZmVyVXNhZ2U6OkNQVV9XUklURV9SQVJFTFkpOgorICAgICAgICAgICAgcHJvZHVjZXJVc2FnZSB8PSBHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9DUFVfV1JJVEU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQnVmZmVyVXNhZ2U6OkNQVV9XUklURV9PRlRFTik6CisgICAgICAgICAgICBwcm9kdWNlclVzYWdlIHw9IEdSQUxMT0MxX1BST0RVQ0VSX1VTQUdFX0NQVV9XUklURV9PRlRFTjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoICh1c2FnZSAmIEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9NQVNLKSB7CisgICAgICAgIGNhc2Ugc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9SQVJFTFkpOgorICAgICAgICAgICAgcHJvZHVjZXJVc2FnZSB8PSBHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9DUFVfUkVBRDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1JFQURfT0ZURU4pOgorICAgICAgICAgICAgcHJvZHVjZXJVc2FnZSB8PSBHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9DUFVfUkVBRF9PRlRFTjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHByb2R1Y2VyVXNhZ2U7Cit9CisKK3VpbnQ2NF90IEdyYWxsb2MxQWxsb2NhdG9yOjp0b0NvbnN1bWVyVXNhZ2UodWludDY0X3QgdXNhZ2UpIHsKKyAgICAvLyB0aGlzIGlzIHBvdGVudGlhbGx5IGJyb2tlbiBhcyB3ZSBoYXZlIG5vIGlkZWEgd2hpY2ggcHJpdmF0ZSBmbGFncworICAgIC8vIHNob3VsZCBiZSBmaWx0ZXJlZCBvdXQKKyAgICB1aW50NjRfdCBjb25zdW1lclVzYWdlID0KKyAgICAgICAgdXNhZ2UgJgorICAgICAgICB+c3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9NQVNLIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX01BU0spOworCisgICAgc3dpdGNoICh1c2FnZSAmIEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9NQVNLKSB7CisgICAgICAgIGNhc2Ugc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9SQVJFTFkpOgorICAgICAgICAgICAgY29uc3VtZXJVc2FnZSB8PSBHUkFMTE9DMV9DT05TVU1FUl9VU0FHRV9DUFVfUkVBRDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1JFQURfT0ZURU4pOgorICAgICAgICAgICAgY29uc3VtZXJVc2FnZSB8PSBHUkFMTE9DMV9DT05TVU1FUl9VU0FHRV9DUFVfUkVBRF9PRlRFTjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGNvbnN1bWVyVXNhZ2U7Cit9CisKK0Vycm9yIEdyYWxsb2MxQWxsb2NhdG9yOjpjcmVhdGVEZXNjcmlwdG9yKAorICAgIGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBpbmZvLAorICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIG91dERlc2NyaXB0b3IpIHsKKyAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3I7CisKKyAgICBpbnQzMl90IGVycm9yID0gbURpc3BhdGNoLmNyZWF0ZURlc2NyaXB0b3IobURldmljZSwgJmRlc2NyaXB0b3IpOworCisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgZXJyb3IgPSBtRGlzcGF0Y2guc2V0RGltZW5zaW9ucyhtRGV2aWNlLCBkZXNjcmlwdG9yLCBpbmZvLndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uaGVpZ2h0KTsKKyAgICB9CisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgZXJyb3IgPSBtRGlzcGF0Y2guc2V0Rm9ybWF0KG1EZXZpY2UsIGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihpbmZvLmZvcm1hdCkpOworICAgIH0KKyAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICBpZiAobUNhcGFiaWxpdGllcy5sYXllcmVkQnVmZmVycykgeworICAgICAgICAgICAgZXJyb3IgPQorICAgICAgICAgICAgICAgIG1EaXNwYXRjaC5zZXRMYXllckNvdW50KG1EZXZpY2UsIGRlc2NyaXB0b3IsIGluZm8ubGF5ZXJDb3VudCk7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5sYXllckNvdW50ID4gMSkgeworICAgICAgICAgICAgZXJyb3IgPSBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICBlcnJvciA9IG1EaXNwYXRjaC5zZXRQcm9kdWNlclVzYWdlKG1EZXZpY2UsIGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9Qcm9kdWNlclVzYWdlKGluZm8udXNhZ2UpKTsKKyAgICB9CisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgZXJyb3IgPSBtRGlzcGF0Y2guc2V0Q29uc3VtZXJVc2FnZShtRGV2aWNlLCBkZXNjcmlwdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvQ29uc3VtZXJVc2FnZShpbmZvLnVzYWdlKSk7CisgICAgfQorCisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgKm91dERlc2NyaXB0b3IgPSBkZXNjcmlwdG9yOworICAgIH0gZWxzZSB7CisgICAgICAgIG1EaXNwYXRjaC5kZXN0cm95RGVzY3JpcHRvcihtRGV2aWNlLCBkZXNjcmlwdG9yKTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9FcnJvcihlcnJvcik7Cit9CisKK0Vycm9yIEdyYWxsb2MxQWxsb2NhdG9yOjphbGxvY2F0ZU9uZShncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIG91dFN0cmlkZSkgeworICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIgPSBudWxscHRyOworICAgIGludDMyX3QgZXJyb3IgPSBtRGlzcGF0Y2guYWxsb2NhdGUobURldmljZSwgMSwgJmRlc2NyaXB0b3IsICZidWZmZXIpOworICAgIGlmIChlcnJvciAhPSBHUkFMTE9DMV9FUlJPUl9OT05FICYmIGVycm9yICE9IEdSQUxMT0MxX0VSUk9SX05PVF9TSEFSRUQpIHsKKyAgICAgICAgcmV0dXJuIHRvRXJyb3IoZXJyb3IpOworICAgIH0KKworICAgIHVpbnQzMl90IHN0cmlkZSA9IDA7CisgICAgZXJyb3IgPSBtRGlzcGF0Y2guZ2V0U3RyaWRlKG1EZXZpY2UsIGJ1ZmZlciwgJnN0cmlkZSk7CisgICAgaWYgKGVycm9yICE9IEdSQUxMT0MxX0VSUk9SX05PTkUgJiYgZXJyb3IgIT0gR1JBTExPQzFfRVJST1JfVU5ERUZJTkVEKSB7CisgICAgICAgIG1EaXNwYXRjaC5yZWxlYXNlKG1EZXZpY2UsIGJ1ZmZlcik7CisgICAgICAgIHJldHVybiB0b0Vycm9yKGVycm9yKTsKKyAgICB9CisKKyAgICAqb3V0QnVmZmVyID0gYnVmZmVyOworICAgICpvdXRTdHJpZGUgPSBzdHJpZGU7CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhbGxvY2F0b3IKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxQWxsb2NhdG9yLmggYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFBbGxvY2F0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjVhOTY2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxQWxsb2NhdG9yLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0FMTE9DQVRPUl9WMl8wX0dSQUxMT0MxQUxMT0NBVE9SX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19BTExPQ0FUT1JfVjJfMF9HUkFMTE9DMUFMTE9DQVRPUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYzEuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgYWxsb2NhdG9yIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpJTWFwcGVyOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkJ1ZmZlckRlc2NyaXB0b3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I7CisKK2NsYXNzIEdyYWxsb2MxQWxsb2NhdG9yIDogcHVibGljIElBbGxvY2F0b3IgeworICAgcHVibGljOgorICAgIEdyYWxsb2MxQWxsb2NhdG9yKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpOworICAgIHZpcnR1YWwgfkdyYWxsb2MxQWxsb2NhdG9yKCk7CisKKyAgICAvLyBJQWxsb2NhdG9yIGludGVyZmFjZQorICAgIFJldHVybjx2b2lkPiBkdW1wRGVidWdJbmZvKGR1bXBEZWJ1Z0luZm9fY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGFsbG9jYXRlKGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHVpbnQzMl90IGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0ZV9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKworICAgcHJpdmF0ZToKKyAgICB2b2lkIGluaXRDYXBhYmlsaXRpZXMoKTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIHZvaWQgaW5pdERpc3BhdGNoKGdyYWxsb2MxX2Z1bmN0aW9uX2Rlc2NyaXB0b3JfdCBkZXNjLCBUKiBvdXRQZm4pOworICAgIHZvaWQgaW5pdERpc3BhdGNoKCk7CisKKyAgICBzdGF0aWMgRXJyb3IgdG9FcnJvcihpbnQzMl90IGVycm9yKTsKKyAgICBzdGF0aWMgdWludDY0X3QgdG9Qcm9kdWNlclVzYWdlKHVpbnQ2NF90IHVzYWdlKTsKKyAgICBzdGF0aWMgdWludDY0X3QgdG9Db25zdW1lclVzYWdlKHVpbnQ2NF90IHVzYWdlKTsKKworICAgIEVycm9yIGNyZWF0ZURlc2NyaXB0b3IoY29uc3QgSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8mIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90KiBvdXREZXNjcmlwdG9yKTsKKyAgICBFcnJvciBhbGxvY2F0ZU9uZShncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXIsIHVpbnQzMl90KiBvdXRTdHJpZGUpOworCisgICAgZ3JhbGxvYzFfZGV2aWNlX3QqIG1EZXZpY2U7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBib29sIGxheWVyZWRCdWZmZXJzOworICAgIH0gbUNhcGFiaWxpdGllczsKKworICAgIHN0cnVjdCB7CisgICAgICAgIEdSQUxMT0MxX1BGTl9EVU1QIGR1bXA7CisgICAgICAgIEdSQUxMT0MxX1BGTl9DUkVBVEVfREVTQ1JJUFRPUiBjcmVhdGVEZXNjcmlwdG9yOworICAgICAgICBHUkFMTE9DMV9QRk5fREVTVFJPWV9ERVNDUklQVE9SIGRlc3Ryb3lEZXNjcmlwdG9yOworICAgICAgICBHUkFMTE9DMV9QRk5fU0VUX0RJTUVOU0lPTlMgc2V0RGltZW5zaW9uczsKKyAgICAgICAgR1JBTExPQzFfUEZOX1NFVF9GT1JNQVQgc2V0Rm9ybWF0OworICAgICAgICBHUkFMTE9DMV9QRk5fU0VUX0xBWUVSX0NPVU5UIHNldExheWVyQ291bnQ7CisgICAgICAgIEdSQUxMT0MxX1BGTl9TRVRfQ09OU1VNRVJfVVNBR0Ugc2V0Q29uc3VtZXJVc2FnZTsKKyAgICAgICAgR1JBTExPQzFfUEZOX1NFVF9QUk9EVUNFUl9VU0FHRSBzZXRQcm9kdWNlclVzYWdlOworICAgICAgICBHUkFMTE9DMV9QRk5fR0VUX1NUUklERSBnZXRTdHJpZGU7CisgICAgICAgIEdSQUxMT0MxX1BGTl9BTExPQ0FURSBhbGxvY2F0ZTsKKyAgICAgICAgR1JBTExPQzFfUEZOX1JFTEVBU0UgcmVsZWFzZTsKKyAgICB9IG1EaXNwYXRjaDsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhbGxvY2F0b3IKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQUxMT0NBVE9SX1YyXzBfR1JBTExPQzFBTExPQ0FUT1JfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxT24wQWRhcHRlci5jcHAgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFPbjBBZGFwdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDFjZTc3Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxT24wQWRhcHRlci5jcHAKQEAgLTAsMCArMSw1NjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyN1bmRlZiBMT0dfVEFHCisjZGVmaW5lIExPR19UQUcgIkdyYWxsb2MxT24wQWRhcHRlciIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgIkdyYWxsb2MxT24wQWRhcHRlci5oIgorI2luY2x1ZGUgImdyYWxsb2MxLWFkYXB0ZXIuaCIKKworI2luY2x1ZGUgPGdyYWxsb2N1c2FnZS9HcmFsbG9jVXNhZ2VDb252ZXJzaW9uLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8c3luYy9zeW5jLmg+CisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUEZOLCB0eXBlbmFtZSBUPgorc3RhdGljIGdyYWxsb2MxX2Z1bmN0aW9uX3BvaW50ZXJfdCBhc0ZQKFQgZnVuY3Rpb24pCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8UEZOLCBUPjo6dmFsdWUsICJJbmNvbXBhdGlibGUgZnVuY3Rpb24gcG9pbnRlciIpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGdyYWxsb2MxX2Z1bmN0aW9uX3BvaW50ZXJfdD4oZnVuY3Rpb24pOworfQorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworCitHcmFsbG9jMU9uMEFkYXB0ZXI6OkdyYWxsb2MxT24wQWRhcHRlcihjb25zdCBod19tb2R1bGVfdCogbW9kdWxlKQorICA6IGdyYWxsb2MxX2RldmljZV90KCksCisgICAgbU1vZHVsZShyZWludGVycHJldF9jYXN0PGNvbnN0IGdyYWxsb2NfbW9kdWxlX3QqPihtb2R1bGUpKSwKKyAgICBtRGV2aWNlKG51bGxwdHIpCit7CisgICAgQUxPR1YoIkNvbnN0cnVjdGluZyIpOworCisgICAgaW50IG1pbm9yID0gMDsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsCisgICAgICAgICAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX1JFQUxfTU9EVUxFX0FQSV9WRVJTSU9OX01JTk9SLAorICAgICAgICAgICAgJm1pbm9yKTsKKyAgICBtTWlub3JWZXJzaW9uID0gbWlub3I7CisKKyAgICBjb21tb24udGFnID0gSEFSRFdBUkVfREVWSUNFX1RBRywKKyAgICBjb21tb24udmVyc2lvbiA9IEhBUkRXQVJFX0RFVklDRV9BUElfVkVSU0lPTigwLCAwKSwKKyAgICBjb21tb24ubW9kdWxlID0gY29uc3RfY2FzdDxzdHJ1Y3QgaHdfbW9kdWxlX3QqPihtb2R1bGUpLAorICAgIGNvbW1vbi5jbG9zZSA9IGNsb3NlSG9vaywKKworICAgIGdldENhcGFiaWxpdGllcyA9IGdldENhcGFiaWxpdGllc0hvb2s7CisgICAgZ2V0RnVuY3Rpb24gPSBnZXRGdW5jdGlvbkhvb2s7CisgICAgaW50IGVycm9yID0gOjpncmFsbG9jX29wZW4oJihtTW9kdWxlLT5jb21tb24pLCAmbURldmljZSk7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gb3BlbiBncmFsbG9jMCBtb2R1bGU6ICVkIiwgZXJyb3IpOworICAgIH0KKyAgICBBTE9HVigiT3BlbmVkIGdyYWxsb2MwIGRldmljZSAlcCIsIG1EZXZpY2UpOworfQorCitHcmFsbG9jMU9uMEFkYXB0ZXI6On5HcmFsbG9jMU9uMEFkYXB0ZXIoKQoreworICAgIEFMT0dWKCJEZXN0cnVjdGluZyIpOworICAgIGlmIChtRGV2aWNlKSB7CisgICAgICAgIEFMT0dWKCJDbG9zaW5nIGdyYWxsb2MwIGRldmljZSAlcCIsIG1EZXZpY2UpOworICAgICAgICA6OmdyYWxsb2NfY2xvc2UobURldmljZSk7CisgICAgfQorfQorCit2b2lkIEdyYWxsb2MxT24wQWRhcHRlcjo6ZG9HZXRDYXBhYmlsaXRpZXModWludDMyX3QqIG91dENvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QqIC8qb3V0Q2FwYWJpbGl0aWVzKi8pIHsKKyAgICAqb3V0Q291bnQgPSAwOworfQorCitncmFsbG9jMV9mdW5jdGlvbl9wb2ludGVyX3QgR3JhbGxvYzFPbjBBZGFwdGVyOjpkb0dldEZ1bmN0aW9uKAorICAgICAgICBpbnQzMl90IGludERlc2NyaXB0b3IpCit7CisgICAgY29uc3RleHByIGF1dG8gbGFzdERlc2NyaXB0b3IgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oR1JBTExPQzFfTEFTVF9GVU5DVElPTik7CisgICAgaWYgKGludERlc2NyaXB0b3IgPCAwIHx8IGludERlc2NyaXB0b3IgPiBsYXN0RGVzY3JpcHRvcikgeworICAgICAgICBBTE9HRSgiSW52YWxpZCBmdW5jdGlvbiBkZXNjcmlwdG9yIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGF1dG8gZGVzY3JpcHRvciA9CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxncmFsbG9jMV9mdW5jdGlvbl9kZXNjcmlwdG9yX3Q+KGludERlc2NyaXB0b3IpOworICAgIHN3aXRjaCAoZGVzY3JpcHRvcikgeworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0RVTVA6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fRFVNUD4oZHVtcEhvb2spOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0NSRUFURV9ERVNDUklQVE9SOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0NSRUFURV9ERVNDUklQVE9SPihjcmVhdGVEZXNjcmlwdG9ySG9vayk7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fREVTVFJPWV9ERVNDUklQVE9SOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0RFU1RST1lfREVTQ1JJUFRPUj4oZGVzdHJveURlc2NyaXB0b3JIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9TRVRfQ09OU1VNRVJfVVNBR0U6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fU0VUX0NPTlNVTUVSX1VTQUdFPihzZXRDb25zdW1lclVzYWdlSG9vayk7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fU0VUX0RJTUVOU0lPTlM6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fU0VUX0RJTUVOU0lPTlM+KHNldERpbWVuc2lvbnNIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9TRVRfRk9STUFUOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX1NFVF9GT1JNQVQ+KHNldEZvcm1hdEhvb2spOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX1NFVF9MQVlFUl9DT1VOVDoKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9TRVRfTEFZRVJfQ09VTlQ+KHNldExheWVyQ291bnRIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9TRVRfUFJPRFVDRVJfVVNBR0U6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fU0VUX1BST0RVQ0VSX1VTQUdFPihzZXRQcm9kdWNlclVzYWdlSG9vayk7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fR0VUX0JBQ0tJTkdfU1RPUkU6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fR0VUX0JBQ0tJTkdfU1RPUkU+KAorICAgICAgICAgICAgICAgICAgICBidWZmZXJIb29rPGRlY2x0eXBlKCZCdWZmZXI6OmdldEJhY2tpbmdTdG9yZSksCisgICAgICAgICAgICAgICAgICAgICZCdWZmZXI6OmdldEJhY2tpbmdTdG9yZSwgZ3JhbGxvYzFfYmFja2luZ19zdG9yZV90Kj4pOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0dFVF9DT05TVU1FUl9VU0FHRToKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9HRVRfQ09OU1VNRVJfVVNBR0U+KGdldENvbnN1bWVyVXNhZ2VIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9HRVRfRElNRU5TSU9OUzoKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9HRVRfRElNRU5TSU9OUz4oCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhvb2s8ZGVjbHR5cGUoJkJ1ZmZlcjo6Z2V0RGltZW5zaW9ucyksCisgICAgICAgICAgICAgICAgICAgICZCdWZmZXI6OmdldERpbWVuc2lvbnMsIHVpbnQzMl90KiwgdWludDMyX3QqPik7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fR0VUX0ZPUk1BVDoKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9HRVRfRk9STUFUPigKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVySG9vazxkZWNsdHlwZSgmQnVmZmVyOjpnZXRGb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAmQnVmZmVyOjpnZXRGb3JtYXQsIGludDMyX3QqPik7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fR0VUX0xBWUVSX0NPVU5UOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0dFVF9MQVlFUl9DT1VOVD4oCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhvb2s8ZGVjbHR5cGUoJkJ1ZmZlcjo6Z2V0TGF5ZXJDb3VudCksCisgICAgICAgICAgICAgICAgICAgICZCdWZmZXI6OmdldExheWVyQ291bnQsIHVpbnQzMl90Kj4pOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0dFVF9QUk9EVUNFUl9VU0FHRToKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9HRVRfUFJPRFVDRVJfVVNBR0U+KGdldFByb2R1Y2VyVXNhZ2VIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9HRVRfU1RSSURFOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0dFVF9TVFJJREU+KAorICAgICAgICAgICAgICAgICAgICBidWZmZXJIb29rPGRlY2x0eXBlKCZCdWZmZXI6OmdldFN0cmlkZSksCisgICAgICAgICAgICAgICAgICAgICZCdWZmZXI6OmdldFN0cmlkZSwgdWludDMyX3QqPik7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fQUxMT0NBVEU6CisgICAgICAgICAgICBpZiAobURldmljZSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0FMTE9DQVRFPihhbGxvY2F0ZUhvb2spOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9SRVRBSU46CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fUkVUQUlOPihyZXRhaW5Ib29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9SRUxFQVNFOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX1JFTEVBU0U+KHJlbGVhc2VIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9HRVRfTlVNX0ZMRVhfUExBTkVTOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0dFVF9OVU1fRkxFWF9QTEFORVM+KAorICAgICAgICAgICAgICAgICAgICBidWZmZXJIb29rPGRlY2x0eXBlKCZCdWZmZXI6OmdldE51bUZsZXhQbGFuZXMpLAorICAgICAgICAgICAgICAgICAgICAmQnVmZmVyOjpnZXROdW1GbGV4UGxhbmVzLCB1aW50MzJfdCo+KTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9MT0NLOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0xPQ0s+KAorICAgICAgICAgICAgICAgICAgICBsb2NrSG9vazx2b2lkKiwgJkdyYWxsb2MxT24wQWRhcHRlcjo6bG9jaz4pOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0xPQ0tfRkxFWDoKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9MT0NLX0ZMRVg+KAorICAgICAgICAgICAgICAgICAgICBsb2NrSG9vazxzdHJ1Y3QgYW5kcm9pZF9mbGV4X2xheW91dCwKKyAgICAgICAgICAgICAgICAgICAgJkdyYWxsb2MxT24wQWRhcHRlcjo6bG9ja0ZsZXg+KTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9VTkxPQ0s6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fVU5MT0NLPih1bmxvY2tIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9JTlZBTElEOgorICAgICAgICAgICAgQUxPR0UoIkludmFsaWQgZnVuY3Rpb24gZGVzY3JpcHRvciIpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgQUxPR0UoIlVua25vd24gZnVuY3Rpb24gZGVzY3JpcHRvcjogJWQiLCBpbnREZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBHcmFsbG9jMU9uMEFkYXB0ZXI6OmR1bXAodWludDMyX3QqIG91dFNpemUsIGNoYXIqIG91dEJ1ZmZlcikKK3sKKyAgICBBTE9HVigiZHVtcCgldSAoJXApLCAlcCIsIG91dFNpemUgPyAqb3V0U2l6ZSA6IDAsIG91dFNpemUsIG91dEJ1ZmZlcik7CisKKyAgICBpZiAoIW1EZXZpY2UtPmR1bXApIHsKKyAgICAgICAgLy8gZHVtcCBpcyBvcHRpb25hbCBvbiBncmFsbG9jMCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgKm91dFNpemUgPSAwOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFvdXRCdWZmZXIpIHsKKyAgICAgICAgY29uc3RleHByIGludDMyX3QgQlVGRkVSX0xFTkdUSCA9IDQwOTY7CisgICAgICAgIGNoYXIgYnVmZmVyW0JVRkZFUl9MRU5HVEhdID0ge307CisgICAgICAgIG1EZXZpY2UtPmR1bXAobURldmljZSwgYnVmZmVyLCBCVUZGRVJfTEVOR1RIKTsKKyAgICAgICAgYnVmZmVyW0JVRkZFUl9MRU5HVEggLSAxXSA9IDA7IC8vIEVuc3VyZSB0aGUgYnVmZmVyIGlzIG51bGwtdGVybWluYXRlZAorICAgICAgICBzaXplX3QgYWN0dWFsTGVuZ3RoID0gc3RkOjpzdHJsZW4oYnVmZmVyKTsKKyAgICAgICAgbUNhY2hlZER1bXAucmVzaXplKGFjdHVhbExlbmd0aCk7CisgICAgICAgIHN0ZDo6Y29weV9uKGJ1ZmZlciwgYWN0dWFsTGVuZ3RoLCBtQ2FjaGVkRHVtcC5iZWdpbigpKTsKKyAgICAgICAgKm91dFNpemUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYWN0dWFsTGVuZ3RoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAqb3V0U2l6ZSA9IHN0ZDo6bWluKCpvdXRTaXplLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PihtQ2FjaGVkRHVtcC5zaXplKCkpKTsKKyAgICAgICAgb3V0QnVmZmVyID0gc3RkOjpjb3B5X24obUNhY2hlZER1bXAuY2JlZ2luKCksICpvdXRTaXplLCBvdXRCdWZmZXIpOworICAgIH0KK30KKworZ3JhbGxvYzFfZXJyb3JfdCBHcmFsbG9jMU9uMEFkYXB0ZXI6OmNyZWF0ZURlc2NyaXB0b3IoCisgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIG91dERlc2NyaXB0b3IpCit7CisgICAgYXV0byBkZXNjcmlwdG9ySWQgPSBzTmV4dEJ1ZmZlckRlc2NyaXB0b3JJZCsrOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EZXNjcmlwdG9yTXV0ZXgpOworICAgIG1EZXNjcmlwdG9ycy5lbXBsYWNlKGRlc2NyaXB0b3JJZCwgc3RkOjptYWtlX3NoYXJlZDxEZXNjcmlwdG9yPigpKTsKKworICAgIEFMT0dWKCJDcmVhdGVkIGRlc2NyaXB0b3IgJSIgUFJJdTY0LCBkZXNjcmlwdG9ySWQpOworCisgICAgKm91dERlc2NyaXB0b3IgPSBkZXNjcmlwdG9ySWQ7CisgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7Cit9CisKK2dyYWxsb2MxX2Vycm9yX3QgR3JhbGxvYzFPbjBBZGFwdGVyOjpkZXN0cm95RGVzY3JpcHRvcigKKyAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9yKQoreworICAgIEFMT0dWKCJEZXN0cm95aW5nIGRlc2NyaXB0b3IgJSIgUFJJdTY0LCBkZXNjcmlwdG9yKTsKKworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EZXNjcmlwdG9yTXV0ZXgpOworICAgIGlmIChtRGVzY3JpcHRvcnMuY291bnQoZGVzY3JpcHRvcikgPT0gMCkgeworICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfQkFEX0RFU0NSSVBUT1I7CisgICAgfQorCisgICAgbURlc2NyaXB0b3JzLmVyYXNlKGRlc2NyaXB0b3IpOworICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitHcmFsbG9jMU9uMEFkYXB0ZXI6OkJ1ZmZlcjo6QnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUsCisgICAgICAgIGdyYWxsb2MxX2JhY2tpbmdfc3RvcmVfdCBzdG9yZSwgY29uc3QgRGVzY3JpcHRvciYgZGVzY3JpcHRvciwKKyAgICAgICAgdWludDMyX3Qgc3RyaWRlLCB1aW50MzJfdCBudW1GbGV4UGxhbmVzLCBib29sIHdhc0FsbG9jYXRlZCkKKyAgOiBtSGFuZGxlKGhhbmRsZSksCisgICAgbVJlZmVyZW5jZUNvdW50KDEpLAorICAgIG1TdG9yZShzdG9yZSksCisgICAgbURlc2NyaXB0b3IoZGVzY3JpcHRvciksCisgICAgbVN0cmlkZShzdHJpZGUpLAorICAgIG1OdW1GbGV4UGxhbmVzKG51bUZsZXhQbGFuZXMpLAorICAgIG1XYXNBbGxvY2F0ZWQod2FzQWxsb2NhdGVkKSB7fQorCitncmFsbG9jMV9lcnJvcl90IEdyYWxsb2MxT24wQWRhcHRlcjo6YWxsb2NhdGUoCisgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QgaWQsCisgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxEZXNjcmlwdG9yPiYgZGVzY3JpcHRvciwKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXJIYW5kbGUpCit7CisgICAgQUxPR1YoImFsbG9jYXRlKCUiIFBSSXU2NCAiKSIsIGlkKTsKKworICAgIC8vIElmIHRoaXMgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkLCBpdCdzIGJlY2F1c2Ugd2UgaGFuZGVkIG91dCBpdHMgZnVuY3Rpb24KKyAgICAvLyBwb2ludGVyLCB3aGljaCBvbmx5IG9jY3VycyB3aGVuIG1EZXZpY2UgaGFzIGJlZW4gbG9hZGVkIHN1Y2Nlc3NmdWxseSBhbmQKKyAgICAvLyB3ZSBhcmUgcGVybWl0dGVkIHRvIGFsbG9jYXRlCisKKyAgICBpbnQgdXNhZ2UgPSBhbmRyb2lkX2NvbnZlcnRHcmFsbG9jMVRvMFVzYWdlKAorICAgICAgICAgICAgZGVzY3JpcHRvci0+cHJvZHVjZXJVc2FnZSwgZGVzY3JpcHRvci0+Y29uc3VtZXJVc2FnZSk7CisgICAgYnVmZmVyX2hhbmRsZV90IGhhbmRsZSA9IG51bGxwdHI7CisgICAgaW50IHN0cmlkZSA9IDA7CisgICAgQUxPR1YoIkNhbGxpbmcgYWxsb2MoJXAsICV1LCAldSwgJWksICV1KSIsIG1EZXZpY2UsIGRlc2NyaXB0b3ItPndpZHRoLAorICAgICAgICAgICAgZGVzY3JpcHRvci0+aGVpZ2h0LCBkZXNjcmlwdG9yLT5mb3JtYXQsIHVzYWdlKTsKKyAgICBhdXRvIGVycm9yID0gbURldmljZS0+YWxsb2MobURldmljZSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oZGVzY3JpcHRvci0+d2lkdGgpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihkZXNjcmlwdG9yLT5oZWlnaHQpLCBkZXNjcmlwdG9yLT5mb3JtYXQsCisgICAgICAgICAgICB1c2FnZSwgJmhhbmRsZSwgJnN0cmlkZSk7CisgICAgaWYgKGVycm9yICE9IDApIHsKKyAgICAgICAgQUxPR0UoImdyYWxsb2MwIGFsbG9jYXRpb24gZmFpbGVkOiAlZCAoJXMpIiwgZXJyb3IsCisgICAgICAgICAgICAgICAgc3RyZXJyb3IoLWVycm9yKSk7CisgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT19SRVNPVVJDRVM7CisgICAgfQorCisgICAgbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLCBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fU0VUX1VTQUdFUywKKyAgICAgICAgICAgIGhhbmRsZSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oZGVzY3JpcHRvci0+cHJvZHVjZXJVc2FnZSksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGRlc2NyaXB0b3ItPmNvbnN1bWVyVXNhZ2UpKTsKKworICAgIHVpbnQ2NF90IGJhY2tpbmdTdG9yZSA9IDA7CisgICAgbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLCBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX0JBQ0tJTkdfU1RPUkUsCisgICAgICAgICAgICBoYW5kbGUsICZiYWNraW5nU3RvcmUpOworICAgIGludCBudW1GbGV4UGxhbmVzID0gMDsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfTlVNX0ZMRVhfUExBTkVTLAorICAgICAgICAgICAgaGFuZGxlLCAmbnVtRmxleFBsYW5lcyk7CisKKyAgICAqb3V0QnVmZmVySGFuZGxlID0gaGFuZGxlOworICAgIGF1dG8gYnVmZmVyID0gc3RkOjptYWtlX3NoYXJlZDxCdWZmZXI+KGhhbmRsZSwgYmFja2luZ1N0b3JlLAorICAgICAgICAgICAgKmRlc2NyaXB0b3IsIHN0cmlkZSwgbnVtRmxleFBsYW5lcywgdHJ1ZSk7CisKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQnVmZmVyTXV0ZXgpOworICAgIG1CdWZmZXJzLmVtcGxhY2UoaGFuZGxlLCBzdGQ6Om1vdmUoYnVmZmVyKSk7CisKKyAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKK30KKworaW50MzJfdCBHcmFsbG9jMU9uMEFkYXB0ZXI6OmFsbG9jYXRlSG9vayhncmFsbG9jMV9kZXZpY2UqIGRldmljZSwKKyAgICAgICAgdWludDMyX3QgbnVtRGVzY3JpcHRvcnMsCisgICAgICAgIGNvbnN0IGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIGRlc2NyaXB0b3JzLAorICAgICAgICBidWZmZXJfaGFuZGxlX3QqIG91dEJ1ZmZlcnMpCit7CisgICAgaWYgKCFvdXRCdWZmZXJzKSB7CisgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9VTkRFRklORUQ7CisgICAgfQorCisgICAgYXV0byBhZGFwdGVyID0gZ2V0QWRhcHRlcihkZXZpY2UpOworCisgICAgZ3JhbGxvYzFfZXJyb3JfdCBlcnJvciA9IEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgdWludDMyX3QgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtRGVzY3JpcHRvcnM7IGkrKykgeworICAgICAgICBhdXRvIGRlc2NyaXB0b3IgPSBhZGFwdGVyLT5nZXREZXNjcmlwdG9yKGRlc2NyaXB0b3JzW2ldKTsKKyAgICAgICAgaWYgKCFkZXNjcmlwdG9yKSB7CisgICAgICAgICAgICBlcnJvciA9IEdSQUxMT0MxX0VSUk9SX0JBRF9ERVNDUklQVE9SOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlID0gbnVsbHB0cjsKKyAgICAgICAgZXJyb3IgPSBhZGFwdGVyLT5hbGxvY2F0ZShkZXNjcmlwdG9yc1tpXSwgZGVzY3JpcHRvciwgJmJ1ZmZlckhhbmRsZSk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUkFMTE9DMV9FUlJPUl9OT05FKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIG91dEJ1ZmZlcnNbaV0gPSBidWZmZXJIYW5kbGU7CisgICAgfQorCisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgaWYgKG51bURlc2NyaXB0b3JzID4gMSkgeworICAgICAgICAgICAgZXJyb3IgPSBHUkFMTE9DMV9FUlJPUl9OT1RfU0hBUkVEOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yICh1aW50MzJfdCBqID0gMDsgaiA8IGk7IGorKykgeworICAgICAgICAgICAgYWRhcHRlci0+cmVsZWFzZShhZGFwdGVyLT5nZXRCdWZmZXIob3V0QnVmZmVyc1tqXSkpOworICAgICAgICAgICAgb3V0QnVmZmVyc1tqXSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZXJyb3I7Cit9CisKK2dyYWxsb2MxX2Vycm9yX3QgR3JhbGxvYzFPbjBBZGFwdGVyOjpyZXRhaW4oCisgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+JiBidWZmZXIpCit7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUJ1ZmZlck11dGV4KTsKKyAgICBidWZmZXItPnJldGFpbigpOworICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitncmFsbG9jMV9lcnJvcl90IEdyYWxsb2MxT24wQWRhcHRlcjo6cmVsZWFzZSgKKyAgICAgICAgY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlcikKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQnVmZmVyTXV0ZXgpOworICAgIGlmICghYnVmZmVyLT5yZWxlYXNlKCkpIHsKKyAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgfQorCisgICAgYnVmZmVyX2hhbmRsZV90IGhhbmRsZSA9IGJ1ZmZlci0+Z2V0SGFuZGxlKCk7CisgICAgaWYgKGJ1ZmZlci0+d2FzQWxsb2NhdGVkKCkpIHsKKyAgICAgICAgQUxPR1YoIkNhbGxpbmcgZnJlZSglcCkiLCBoYW5kbGUpOworICAgICAgICBpbnQgcmVzdWx0ID0gbURldmljZS0+ZnJlZShtRGV2aWNlLCBoYW5kbGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIEFMT0dFKCJncmFsbG9jMCBmcmVlIGZhaWxlZDogJWQiLCByZXN1bHQpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR1YoIkNhbGxpbmcgdW5yZWdpc3RlckJ1ZmZlciglcCkiLCBoYW5kbGUpOworICAgICAgICBpbnQgcmVzdWx0ID0gbU1vZHVsZS0+dW5yZWdpc3RlckJ1ZmZlcihtTW9kdWxlLCBoYW5kbGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIEFMT0dFKCJncmFsbG9jMCB1bnJlZ2lzdGVyIGZhaWxlZDogJWQiLCByZXN1bHQpOworICAgICAgICB9CisgICAgfQorCisgICAgbUJ1ZmZlcnMuZXJhc2UoaGFuZGxlKTsKKyAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKK30KKworZ3JhbGxvYzFfZXJyb3JfdCBHcmFsbG9jMU9uMEFkYXB0ZXI6OnJldGFpbihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKQoreworICAgIEFMT0dWKCJyZXRhaW4oJXApIiwgYnVmZmVySGFuZGxlKTsKKworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1CdWZmZXJNdXRleCk7CisKKyAgICBpZiAobUJ1ZmZlcnMuY291bnQoYnVmZmVySGFuZGxlKSAhPSAwKSB7CisgICAgICAgIG1CdWZmZXJzW2J1ZmZlckhhbmRsZV0tPnJldGFpbigpOworICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKKyAgICB9CisKKyAgICBBTE9HVigiQ2FsbGluZyByZWdpc3RlckJ1ZmZlciglcCkiLCBidWZmZXJIYW5kbGUpOworICAgIGludCByZXN1bHQgPSBtTW9kdWxlLT5yZWdpc3RlckJ1ZmZlcihtTW9kdWxlLCBidWZmZXJIYW5kbGUpOworICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICBBTE9HRSgiZ3JhbGxvYzAgcmVnaXN0ZXIgZmFpbGVkOiAlZCIsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT19SRVNPVVJDRVM7CisgICAgfQorCisgICAgdWludDY0X3QgYmFja2luZ1N0b3JlID0gMDsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfQkFDS0lOR19TVE9SRSwKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgJmJhY2tpbmdTdG9yZSk7CisKKyAgICBpbnQgbnVtRmxleFBsYW5lcyA9IDA7CisgICAgbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLCBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX05VTV9GTEVYX1BMQU5FUywKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgJm51bUZsZXhQbGFuZXMpOworCisgICAgaW50IHN0cmlkZSA9IDA7CisgICAgbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLCBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX1NUUklERSwKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgJnN0cmlkZSk7CisKKyAgICBpbnQgd2lkdGggPSAwOworICAgIGludCBoZWlnaHQgPSAwOworICAgIGludCBmb3JtYXQgPSBIQUxfUElYRUxfRk9STUFUX0lNUExFTUVOVEFUSU9OX0RFRklORUQ7CisgICAgaW50IHByb2R1Y2VyVXNhZ2UgPSAwOworICAgIGludCBjb25zdW1lclVzYWdlID0gMDsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfRElNRU5TSU9OUywKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfRk9STUFULAorICAgICAgICAgICAgYnVmZmVySGFuZGxlLCAmZm9ybWF0KTsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfUFJPRFVDRVJfVVNBR0UsCisgICAgICAgICAgICBidWZmZXJIYW5kbGUsICZwcm9kdWNlclVzYWdlKTsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfQ09OU1VNRVJfVVNBR0UsCisgICAgICAgICAgICBidWZmZXJIYW5kbGUsICZjb25zdW1lclVzYWdlKTsKKworICAgIERlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBkZXNjcmlwdG9yLnNldERpbWVuc2lvbnMod2lkdGgsIGhlaWdodCk7CisgICAgZGVzY3JpcHRvci5zZXRGb3JtYXQoZm9ybWF0KTsKKyAgICBkZXNjcmlwdG9yLnNldFByb2R1Y2VyVXNhZ2UoCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxncmFsbG9jMV9wcm9kdWNlcl91c2FnZV90Pihwcm9kdWNlclVzYWdlKSk7CisgICAgZGVzY3JpcHRvci5zZXRDb25zdW1lclVzYWdlKAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Z3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdD4oY29uc3VtZXJVc2FnZSkpOworCisgICAgYXV0byBidWZmZXIgPSBzdGQ6Om1ha2Vfc2hhcmVkPEJ1ZmZlcj4oYnVmZmVySGFuZGxlLCBiYWNraW5nU3RvcmUsCisgICAgICAgICAgICBkZXNjcmlwdG9yLCBzdHJpZGUsIG51bUZsZXhQbGFuZXMsIGZhbHNlKTsKKyAgICBtQnVmZmVycy5lbXBsYWNlKGJ1ZmZlckhhbmRsZSwgc3RkOjptb3ZlKGJ1ZmZlcikpOworICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitzdGF0aWMgdm9pZCBzeW5jV2FpdEZvcmV2ZXIoaW50IGZkLCBjb25zdCBjaGFyKiBsb2duYW1lKQoreworICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGludCB3YXJuaW5nVGltZW91dCA9IDM1MDA7CisgICAgY29uc3QgaW50IGVycm9yID0gc3luY193YWl0KGZkLCB3YXJuaW5nVGltZW91dCk7CisgICAgaWYgKGVycm9yIDwgMCAmJiBlcnJubyA9PSBFVElNRSkgeworICAgICAgICBBTE9HRSgiJXM6IGZlbmNlICVkIGRpZG4ndCBzaWduYWwgaW4gJXUgbXMiLCBsb2duYW1lLCBmZCwKKyAgICAgICAgICAgICAgICB3YXJuaW5nVGltZW91dCk7CisgICAgICAgIHN5bmNfd2FpdChmZCwgLTEpOworICAgIH0KK30KKworZ3JhbGxvYzFfZXJyb3JfdCBHcmFsbG9jMU9uMEFkYXB0ZXI6OmxvY2soCisgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+JiBidWZmZXIsCisgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZSwKKyAgICAgICAgZ3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdCBjb25zdW1lclVzYWdlLAorICAgICAgICBjb25zdCBncmFsbG9jMV9yZWN0X3QmIGFjY2Vzc1JlZ2lvbiwgdm9pZCoqIG91dERhdGEsCisgICAgICAgIGludCBhY3F1aXJlRmVuY2UpCit7CisgICAgaWYgKG1NaW5vclZlcnNpb24gPj0gMykgeworICAgICAgICBpbnQgcmVzdWx0ID0gbU1vZHVsZS0+bG9ja0FzeW5jKG1Nb2R1bGUsIGJ1ZmZlci0+Z2V0SGFuZGxlKCksCisgICAgICAgICAgICAgICAgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZShwcm9kdWNlclVzYWdlLCBjb25zdW1lclVzYWdlKSwKKyAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwgYWNjZXNzUmVnaW9uLndpZHRoLAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsIG91dERhdGEsIGFjcXVpcmVGZW5jZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX1VOU1VQUE9SVEVEOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3luY1dhaXRGb3JldmVyKGFjcXVpcmVGZW5jZSwgIkdyYWxsb2MxT24wQWRhcHRlcjo6bG9jayIpOworCisgICAgICAgIGludCByZXN1bHQgPSBtTW9kdWxlLT5sb2NrKG1Nb2R1bGUsIGJ1ZmZlci0+Z2V0SGFuZGxlKCksCisgICAgICAgICAgICAgICAgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZShwcm9kdWNlclVzYWdlLCBjb25zdW1lclVzYWdlKSwKKyAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwgYWNjZXNzUmVnaW9uLndpZHRoLAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsIG91dERhdGEpOworICAgICAgICBBTE9HVigiZ3JhbGxvYzAgbG9jayByZXR1cm5lZCAlZCIsIHJlc3VsdCk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX1VOU1VQUE9SVEVEOworICAgICAgICB9IGVsc2UgaWYgKGFjcXVpcmVGZW5jZSA+PSAwKSB7CisgICAgICAgICAgICBjbG9zZShhY3F1aXJlRmVuY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitncmFsbG9jMV9lcnJvcl90IEdyYWxsb2MxT24wQWRhcHRlcjo6bG9ja0ZsZXgoCisgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+JiBidWZmZXIsCisgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZSwKKyAgICAgICAgZ3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdCBjb25zdW1lclVzYWdlLAorICAgICAgICBjb25zdCBncmFsbG9jMV9yZWN0X3QmIGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgc3RydWN0IGFuZHJvaWRfZmxleF9sYXlvdXQqIG91dEZsZXgsCisgICAgICAgIGludCBhY3F1aXJlRmVuY2UpCit7CisgICAgaWYgKG1NaW5vclZlcnNpb24gPj0gMykgeworICAgICAgICBpbnQgcmVzdWx0ID0gbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLAorICAgICAgICAgICAgICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9MT0NLX0ZMRVgsCisgICAgICAgICAgICAgICAgYnVmZmVyLT5nZXRIYW5kbGUoKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHByb2R1Y2VyVXNhZ2UpLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oY29uc3VtZXJVc2FnZSksCisgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmxlZnQsCisgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLnRvcCwKKyAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ud2lkdGgsCisgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmhlaWdodCwKKyAgICAgICAgICAgICAgICBvdXRGbGV4LCBhY3F1aXJlRmVuY2UpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHN5bmNXYWl0Rm9yZXZlcihhY3F1aXJlRmVuY2UsICJHcmFsbG9jMU9uMEFkYXB0ZXI6OmxvY2tGbGV4Iik7CisKKyAgICAgICAgaW50IHJlc3VsdCA9IG1Nb2R1bGUtPnBlcmZvcm0obU1vZHVsZSwKKyAgICAgICAgICAgICAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fTE9DS19GTEVYLAorICAgICAgICAgICAgICAgIGJ1ZmZlci0+Z2V0SGFuZGxlKCksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50Pihwcm9kdWNlclVzYWdlKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGNvbnN1bWVyVXNhZ2UpLAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5sZWZ0LAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi50b3AsCisgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLndpZHRoLAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsCisgICAgICAgICAgICAgICAgb3V0RmxleCwgLTEpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDsKKyAgICAgICAgfSBlbHNlIGlmIChhY3F1aXJlRmVuY2UgPj0gMCkgeworICAgICAgICAgICAgY2xvc2UoYWNxdWlyZUZlbmNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitncmFsbG9jMV9lcnJvcl90IEdyYWxsb2MxT24wQWRhcHRlcjo6dW5sb2NrKAorICAgICAgICBjb25zdCBzdGQ6OnNoYXJlZF9wdHI8QnVmZmVyPiYgYnVmZmVyLAorICAgICAgICBpbnQqIG91dFJlbGVhc2VGZW5jZSkKK3sKKyAgICBpZiAobU1pbm9yVmVyc2lvbiA+PSAzKSB7CisgICAgICAgIGludCBmZW5jZUZkID0gLTE7CisgICAgICAgIGludCByZXN1bHQgPSBtTW9kdWxlLT51bmxvY2tBc3luYyhtTW9kdWxlLCBidWZmZXItPmdldEhhbmRsZSgpLAorICAgICAgICAgICAgICAgICZmZW5jZUZkKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBjbG9zZShmZW5jZUZkKTsKKyAgICAgICAgICAgIEFMT0dFKCJncmFsbG9jMCB1bmxvY2tBc3luYyBmYWlsZWQ6ICVkIiwgcmVzdWx0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICpvdXRSZWxlYXNlRmVuY2UgPSBmZW5jZUZkOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IG1Nb2R1bGUtPnVubG9jayhtTW9kdWxlLCBidWZmZXItPmdldEhhbmRsZSgpKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBBTE9HRSgiZ3JhbGxvYzAgdW5sb2NrIGZhaWxlZDogJWQiLCByZXN1bHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgKm91dFJlbGVhc2VGZW5jZSA9IC0xOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitzdGQ6OnNoYXJlZF9wdHI8R3JhbGxvYzFPbjBBZGFwdGVyOjpEZXNjcmlwdG9yPgorR3JhbGxvYzFPbjBBZGFwdGVyOjpnZXREZXNjcmlwdG9yKGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QgZGVzY3JpcHRvcklkKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EZXNjcmlwdG9yTXV0ZXgpOworICAgIGlmIChtRGVzY3JpcHRvcnMuY291bnQoZGVzY3JpcHRvcklkKSA9PSAwKSB7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBtRGVzY3JpcHRvcnNbZGVzY3JpcHRvcklkXTsKK30KKworc3RkOjpzaGFyZWRfcHRyPEdyYWxsb2MxT24wQWRhcHRlcjo6QnVmZmVyPiBHcmFsbG9jMU9uMEFkYXB0ZXI6OmdldEJ1ZmZlcigKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQnVmZmVyTXV0ZXgpOworICAgIGlmIChtQnVmZmVycy5jb3VudChidWZmZXJIYW5kbGUpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIG1CdWZmZXJzW2J1ZmZlckhhbmRsZV07Cit9CisKK3N0ZDo6YXRvbWljPGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3Q+CisgICAgICAgIEdyYWxsb2MxT24wQWRhcHRlcjo6c05leHRCdWZmZXJEZXNjcmlwdG9ySWQoMSk7CisKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFPbjBBZGFwdGVyLmggYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFPbjBBZGFwdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgwMDE1ZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9HcmFsbG9jMU9uMEFkYXB0ZXIuaApAQCAtMCwwICsxLDQ1OCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQUxMT0NfMV9PTl8wX0FEQVBURVJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0dSQUxMT0NfMV9PTl8wX0FEQVBURVJfSAorCisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYzEuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPHV0aWxpdHk+CisKK3N0cnVjdCBncmFsbG9jX21vZHVsZV90Oworc3RydWN0IGFsbG9jX2RldmljZV90OworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworCitjbGFzcyBHcmFsbG9jMU9uMEFkYXB0ZXIgOiBwdWJsaWMgZ3JhbGxvYzFfZGV2aWNlX3QKK3sKK3B1YmxpYzoKKyAgICBHcmFsbG9jMU9uMEFkYXB0ZXIoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgfkdyYWxsb2MxT24wQWRhcHRlcigpOworCisgICAgZ3JhbGxvYzFfZGV2aWNlX3QqIGdldERldmljZSgpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGdyYWxsb2MxX2RldmljZV90Kj4odGhpcyk7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0YXRpYyBpbmxpbmUgR3JhbGxvYzFPbjBBZGFwdGVyKiBnZXRBZGFwdGVyKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdyYWxsb2MxT24wQWRhcHRlcio+KGRldmljZSk7CisgICAgfQorCisgICAgc3RhdGljIGludCBjbG9zZUhvb2soc3RydWN0IGh3X2RldmljZV90KiBkZXZpY2UpIHsKKyAgICAgICAgZGVsZXRlIGdldEFkYXB0ZXIocmVpbnRlcnByZXRfY2FzdDxncmFsbG9jMV9kZXZpY2VfdCo+KGRldmljZSkpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvLyBnZXRDYXBhYmlsaXRpZXMKKworICAgIHZvaWQgZG9HZXRDYXBhYmlsaXRpZXModWludDMyX3QqIG91dENvdW50LAorICAgICAgICAgICAgaW50MzJfdCogLypncmFsbG9jMV9jYXBhYmlsaXR5X3QqLyBvdXRDYXBhYmlsaXRpZXMpOworICAgIHN0YXRpYyB2b2lkIGdldENhcGFiaWxpdGllc0hvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIHVpbnQzMl90KiBvdXRDb3VudCwKKyAgICAgICAgICAgIGludDMyX3QqIC8qZ3JhbGxvYzFfY2FwYWJpbGl0eV90Ki8gb3V0Q2FwYWJpbGl0aWVzKSB7CisgICAgICAgIGdldEFkYXB0ZXIoZGV2aWNlKS0+ZG9HZXRDYXBhYmlsaXRpZXMob3V0Q291bnQsIG91dENhcGFiaWxpdGllcyk7CisgICAgfQorCisgICAgLy8gZ2V0RnVuY3Rpb24KKworICAgIGdyYWxsb2MxX2Z1bmN0aW9uX3BvaW50ZXJfdCBkb0dldEZ1bmN0aW9uKAorICAgICAgICAgICAgaW50MzJfdCAvKmdyYWxsb2MxX2Z1bmN0aW9uX2Rlc2NyaXB0b3JfdCovIGRlc2NyaXB0b3IpOworICAgIHN0YXRpYyBncmFsbG9jMV9mdW5jdGlvbl9wb2ludGVyX3QgZ2V0RnVuY3Rpb25Ib29rKAorICAgICAgICAgICAgZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGludDMyX3QgLypncmFsbG9jMV9mdW5jdGlvbl9kZXNjcmlwdG9yX3QqLyBkZXNjcmlwdG9yKSB7CisgICAgICAgIHJldHVybiBnZXRBZGFwdGVyKGRldmljZSktPmRvR2V0RnVuY3Rpb24oZGVzY3JpcHRvcik7CisgICAgfQorCisgICAgLy8gZHVtcAorCisgICAgdm9pZCBkdW1wKHVpbnQzMl90KiBvdXRTaXplLCBjaGFyKiBvdXRCdWZmZXIpOworICAgIHN0YXRpYyB2b2lkIGR1bXBIb29rKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsIHVpbnQzMl90KiBvdXRTaXplLAorICAgICAgICAgICAgY2hhciogb3V0QnVmZmVyKSB7CisgICAgICAgIHJldHVybiBnZXRBZGFwdGVyKGRldmljZSktPmR1bXAob3V0U2l6ZSwgb3V0QnVmZmVyKTsKKyAgICB9CisgICAgc3RkOjpzdHJpbmcgbUNhY2hlZER1bXA7CisKKyAgICAvLyBCdWZmZXIgZGVzY3JpcHRvciBsaWZlY3ljbGUgZnVuY3Rpb25zCisKKyAgICBzdHJ1Y3QgRGVzY3JpcHRvcjsKKworICAgIGdyYWxsb2MxX2Vycm9yX3QgY3JlYXRlRGVzY3JpcHRvcigKKyAgICAgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIG91dERlc2NyaXB0b3IpOworICAgIHN0YXRpYyBpbnQzMl90IGNyZWF0ZURlc2NyaXB0b3JIb29rKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90KiBvdXREZXNjcmlwdG9yKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBnZXRBZGFwdGVyKGRldmljZSktPmNyZWF0ZURlc2NyaXB0b3Iob3V0RGVzY3JpcHRvcik7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihlcnJvcik7CisgICAgfQorCisgICAgZ3JhbGxvYzFfZXJyb3JfdCBkZXN0cm95RGVzY3JpcHRvcihncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3IpOworICAgIHN0YXRpYyBpbnQzMl90IGRlc3Ryb3lEZXNjcmlwdG9ySG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9yKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBnZXRBZGFwdGVyKGRldmljZSktPmRlc3Ryb3lEZXNjcmlwdG9yKGRlc2NyaXB0b3IpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZXJyb3IpOworICAgIH0KKworICAgIC8vIEJ1ZmZlciBkZXNjcmlwdG9yIG1vZGlmaWNhdGlvbiBmdW5jdGlvbnMKKworICAgIHN0cnVjdCBEZXNjcmlwdG9yIDogcHVibGljIHN0ZDo6ZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXM8RGVzY3JpcHRvcj4geworICAgICAgICBEZXNjcmlwdG9yKCkKKyAgICAgICAgICA6IHdpZHRoKDApLAorICAgICAgICAgICAgaGVpZ2h0KDApLAorICAgICAgICAgICAgZm9ybWF0KEhBTF9QSVhFTF9GT1JNQVRfSU1QTEVNRU5UQVRJT05fREVGSU5FRCksCisgICAgICAgICAgICBsYXllckNvdW50KDEpLAorICAgICAgICAgICAgcHJvZHVjZXJVc2FnZShHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9OT05FKSwKKyAgICAgICAgICAgIGNvbnN1bWVyVXNhZ2UoR1JBTExPQzFfQ09OU1VNRVJfVVNBR0VfTk9ORSkge30KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IHNldERpbWVuc2lvbnModWludDMyX3QgdywgdWludDMyX3QgaCkgeworICAgICAgICAgICAgd2lkdGggPSB3OworICAgICAgICAgICAgaGVpZ2h0ID0gaDsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworICAgICAgICB9CisKKyAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCBzZXRGb3JtYXQoaW50MzJfdCBmKSB7CisgICAgICAgICAgICBmb3JtYXQgPSBmOworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IHNldExheWVyQ291bnQodWludDMyX3QgbGMpIHsKKyAgICAgICAgICAgIGxheWVyQ291bnQgPSBsYzsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworICAgICAgICB9CisKKyAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCBzZXRQcm9kdWNlclVzYWdlKGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgdXNhZ2UpIHsKKyAgICAgICAgICAgIHByb2R1Y2VyVXNhZ2UgPSB1c2FnZTsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworICAgICAgICB9CisKKyAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCBzZXRDb25zdW1lclVzYWdlKGdyYWxsb2MxX2NvbnN1bWVyX3VzYWdlX3QgdXNhZ2UpIHsKKyAgICAgICAgICAgIGNvbnN1bWVyVXNhZ2UgPSB1c2FnZTsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworICAgICAgICB9CisKKyAgICAgICAgdWludDMyX3Qgd2lkdGg7CisgICAgICAgIHVpbnQzMl90IGhlaWdodDsKKyAgICAgICAgaW50MzJfdCBmb3JtYXQ7CisgICAgICAgIHVpbnQzMl90IGxheWVyQ291bnQ7CisgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZTsKKyAgICAgICAgZ3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdCBjb25zdW1lclVzYWdlOworICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgLi4uQXJncz4KKyAgICBzdGF0aWMgaW50MzJfdCBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3JJZCwKKyAgICAgICAgICAgIGdyYWxsb2MxX2Vycm9yX3QgKERlc2NyaXB0b3I6OiptZW1iZXIpKEFyZ3MuLi4pLCBBcmdzLi4uIGFyZ3MpIHsKKyAgICAgICAgYXV0byBkZXNjcmlwdG9yID0gZ2V0QWRhcHRlcihkZXZpY2UpLT5nZXREZXNjcmlwdG9yKGRlc2NyaXB0b3JJZCk7CisgICAgICAgIGlmICghZGVzY3JpcHRvcikgeworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KEdSQUxMT0MxX0VSUk9SX0JBRF9ERVNDUklQVE9SKTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGVycm9yID0gKCgqZGVzY3JpcHRvcikuKm1lbWJlcikoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KGVycm9yKTsKKyAgICB9CisKKyAgICBzdGF0aWMgaW50MzJfdCBzZXRDb25zdW1lclVzYWdlSG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9ySWQsIHVpbnQ2NF90IGludFVzYWdlKSB7CisgICAgICAgIGF1dG8gdXNhZ2UgPSBzdGF0aWNfY2FzdDxncmFsbG9jMV9jb25zdW1lcl91c2FnZV90PihpbnRVc2FnZSk7CisgICAgICAgIHJldHVybiBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGRldmljZSwgZGVzY3JpcHRvcklkLAorICAgICAgICAgICAgICAgICZEZXNjcmlwdG9yOjpzZXRDb25zdW1lclVzYWdlLCB1c2FnZSk7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3Qgc2V0RGltZW5zaW9uc0hvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QgZGVzY3JpcHRvcklkLCB1aW50MzJfdCB3aWR0aCwKKyAgICAgICAgICAgIHVpbnQzMl90IGhlaWdodCkgeworICAgICAgICByZXR1cm4gY2FsbERlc2NyaXB0b3JGdW5jdGlvbihkZXZpY2UsIGRlc2NyaXB0b3JJZCwKKyAgICAgICAgICAgICAgICAmRGVzY3JpcHRvcjo6c2V0RGltZW5zaW9ucywgd2lkdGgsIGhlaWdodCk7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3Qgc2V0Rm9ybWF0SG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9ySWQsIGludDMyX3QgZm9ybWF0KSB7CisgICAgICAgIHJldHVybiBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGRldmljZSwgZGVzY3JpcHRvcklkLAorICAgICAgICAgICAgICAgICZEZXNjcmlwdG9yOjpzZXRGb3JtYXQsIGZvcm1hdCk7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3Qgc2V0TGF5ZXJDb3VudEhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QgZGVzY3JpcHRvcklkLCB1aW50MzJfdCBsYXllckNvdW50KSB7CisgICAgICAgIHJldHVybiBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGRldmljZSwgZGVzY3JpcHRvcklkLAorICAgICAgICAgICAgICAgICZEZXNjcmlwdG9yOjpzZXRMYXllckNvdW50LCBsYXllckNvdW50KTsKKyAgICB9CisKKyAgICBzdGF0aWMgaW50MzJfdCBzZXRQcm9kdWNlclVzYWdlSG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9ySWQsIHVpbnQ2NF90IGludFVzYWdlKSB7CisgICAgICAgIGF1dG8gdXNhZ2UgPSBzdGF0aWNfY2FzdDxncmFsbG9jMV9wcm9kdWNlcl91c2FnZV90PihpbnRVc2FnZSk7CisgICAgICAgIHJldHVybiBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGRldmljZSwgZGVzY3JpcHRvcklkLAorICAgICAgICAgICAgICAgICZEZXNjcmlwdG9yOjpzZXRQcm9kdWNlclVzYWdlLCB1c2FnZSk7CisgICAgfQorCisgICAgLy8gQnVmZmVyIGhhbmRsZSBxdWVyeSBmdW5jdGlvbnMKKworICAgIGNsYXNzIEJ1ZmZlciB7CisgICAgcHVibGljOgorICAgICAgICBCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGhhbmRsZSwgZ3JhbGxvYzFfYmFja2luZ19zdG9yZV90IHN0b3JlLAorICAgICAgICAgICAgICAgIGNvbnN0IERlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHVpbnQzMl90IHN0cmlkZSwKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBudW1GbGV4UGxhbmVzLCBib29sIHdhc0FsbG9jYXRlZCk7CisKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGdldEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1IYW5kbGU7IH0KKworICAgICAgICB2b2lkIHJldGFpbigpIHsgKyttUmVmZXJlbmNlQ291bnQ7IH0KKworICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHJlZmVyZW5jZSBjb3VudCBoYXMgZHJvcHBlZCB0byAwLCBpbmRpY2F0aW5nIHRoYXQKKyAgICAgICAgLy8gdGhlIGJ1ZmZlciBuZWVkcyB0byBiZSByZWxlYXNlZAorICAgICAgICBib29sIHJlbGVhc2UoKSB7IHJldHVybiAtLW1SZWZlcmVuY2VDb3VudCA9PSAwOyB9CisKKyAgICAgICAgYm9vbCB3YXNBbGxvY2F0ZWQoKSBjb25zdCB7IHJldHVybiBtV2FzQWxsb2NhdGVkOyB9CisKKyAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCBnZXRCYWNraW5nU3RvcmUoCisgICAgICAgICAgICAgICAgZ3JhbGxvYzFfYmFja2luZ19zdG9yZV90KiBvdXRTdG9yZSkgY29uc3QgeworICAgICAgICAgICAgKm91dFN0b3JlID0gbVN0b3JlOworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IGdldENvbnN1bWVyVXNhZ2UoCisgICAgICAgICAgICAgICAgZ3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdCogb3V0VXNhZ2UpIGNvbnN0IHsKKyAgICAgICAgICAgICpvdXRVc2FnZSA9IG1EZXNjcmlwdG9yLmNvbnN1bWVyVXNhZ2U7CisgICAgICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKKyAgICAgICAgfQorCisgICAgICAgIGdyYWxsb2MxX2Vycm9yX3QgZ2V0RGltZW5zaW9ucyh1aW50MzJfdCogb3V0V2lkdGgsCisgICAgICAgICAgICAgICAgdWludDMyX3QqIG91dEhlaWdodCkgY29uc3QgeworICAgICAgICAgICAgKm91dFdpZHRoID0gbURlc2NyaXB0b3Iud2lkdGg7CisgICAgICAgICAgICAqb3V0SGVpZ2h0ID0gbURlc2NyaXB0b3IuaGVpZ2h0OworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IGdldEZvcm1hdChpbnQzMl90KiBvdXRGb3JtYXQpIGNvbnN0IHsKKyAgICAgICAgICAgICpvdXRGb3JtYXQgPSBtRGVzY3JpcHRvci5mb3JtYXQ7CisgICAgICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKKyAgICAgICAgfQorCisgICAgICAgIGdyYWxsb2MxX2Vycm9yX3QgZ2V0TGF5ZXJDb3VudCh1aW50MzJfdCogb3V0TGF5ZXJDb3VudCkgY29uc3QgeworICAgICAgICAgICAgKm91dExheWVyQ291bnQgPSBtRGVzY3JpcHRvci5sYXllckNvdW50OworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IGdldE51bUZsZXhQbGFuZXModWludDMyX3QqIG91dE51bVBsYW5lcykgY29uc3QgeworICAgICAgICAgICAgKm91dE51bVBsYW5lcyA9IG1OdW1GbGV4UGxhbmVzOworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IGdldFByb2R1Y2VyVXNhZ2UoCisgICAgICAgICAgICAgICAgZ3JhbGxvYzFfcHJvZHVjZXJfdXNhZ2VfdCogb3V0VXNhZ2UpIGNvbnN0IHsKKyAgICAgICAgICAgICpvdXRVc2FnZSA9IG1EZXNjcmlwdG9yLnByb2R1Y2VyVXNhZ2U7CisgICAgICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKKyAgICAgICAgfQorCisgICAgICAgIGdyYWxsb2MxX2Vycm9yX3QgZ2V0U3RyaWRlKHVpbnQzMl90KiBvdXRTdHJpZGUpIGNvbnN0IHsKKyAgICAgICAgICAgICpvdXRTdHJpZGUgPSBtU3RyaWRlOworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisKKyAgICAgICAgY29uc3QgYnVmZmVyX2hhbmRsZV90IG1IYW5kbGU7CisgICAgICAgIHNpemVfdCBtUmVmZXJlbmNlQ291bnQ7CisKKyAgICAgICAgY29uc3QgZ3JhbGxvYzFfYmFja2luZ19zdG9yZV90IG1TdG9yZTsKKyAgICAgICAgY29uc3QgRGVzY3JpcHRvciBtRGVzY3JpcHRvcjsKKyAgICAgICAgY29uc3QgdWludDMyX3QgbVN0cmlkZTsKKyAgICAgICAgY29uc3QgdWludDMyX3QgbU51bUZsZXhQbGFuZXM7CisKKyAgICAgICAgLy8gV2hldGhlciB0aGlzIGJ1ZmZlciBhbGxvY2F0ZWQgaW4gdGhpcyBwcm9jZXNzIChhcyBvcHBvc2VkIHRvIGp1c3QKKyAgICAgICAgLy8gYmVpbmcgcmV0YWluZWQgaGVyZSksIHdoaWNoIGRldGVybWluZXMgd2hldGhlciB0byBmcmVlIG9yIHVucmVnaXN0ZXIKKyAgICAgICAgLy8gdGhlIGJ1ZmZlciB3aGVuIHRoaXMgQnVmZmVyIGlzIHJlbGVhc2VkCisgICAgICAgIGNvbnN0IGJvb2wgbVdhc0FsbG9jYXRlZDsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIC4uLkFyZ3M+CisgICAgc3RhdGljIGludDMyX3QgY2FsbEJ1ZmZlckZ1bmN0aW9uKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCAoQnVmZmVyOjoqbWVtYmVyKShBcmdzLi4uKSBjb25zdCwgQXJncy4uLiBhcmdzKSB7CisgICAgICAgIGF1dG8gYnVmZmVyID0gZ2V0QWRhcHRlcihkZXZpY2UpLT5nZXRCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfSEFORExFKTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGVycm9yID0gKCgqYnVmZmVyKS4qbWVtYmVyKShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZXJyb3IpOworICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBNRiwgTUYgbWVtRnVuYywgdHlwZW5hbWUgLi4uQXJncz4KKyAgICBzdGF0aWMgaW50MzJfdCBidWZmZXJIb29rKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCBBcmdzLi4uIGFyZ3MpIHsKKyAgICAgICAgcmV0dXJuIEdyYWxsb2MxT24wQWRhcHRlcjo6Y2FsbEJ1ZmZlckZ1bmN0aW9uKGRldmljZSwgYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgICAgIG1lbUZ1bmMsIHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3QgZ2V0Q29uc3VtZXJVc2FnZUhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90KiBvdXRVc2FnZSkgeworICAgICAgICBhdXRvIHVzYWdlID0gR1JBTExPQzFfQ09OU1VNRVJfVVNBR0VfTk9ORTsKKyAgICAgICAgYXV0byBlcnJvciA9IGNhbGxCdWZmZXJGdW5jdGlvbihkZXZpY2UsIGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAmQnVmZmVyOjpnZXRDb25zdW1lclVzYWdlLCAmdXNhZ2UpOworICAgICAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICAgICAgKm91dFVzYWdlID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHVzYWdlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3QgZ2V0UHJvZHVjZXJVc2FnZUhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90KiBvdXRVc2FnZSkgeworICAgICAgICBhdXRvIHVzYWdlID0gR1JBTExPQzFfUFJPRFVDRVJfVVNBR0VfTk9ORTsKKyAgICAgICAgYXV0byBlcnJvciA9IGNhbGxCdWZmZXJGdW5jdGlvbihkZXZpY2UsIGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAmQnVmZmVyOjpnZXRQcm9kdWNlclVzYWdlLCAmdXNhZ2UpOworICAgICAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICAgICAgKm91dFVzYWdlID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHVzYWdlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgLy8gQnVmZmVyIG1hbmFnZW1lbnQgZnVuY3Rpb25zCisKKyAgICBncmFsbG9jMV9lcnJvcl90IGFsbG9jYXRlKAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBpZCwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxEZXNjcmlwdG9yPiYgZGVzY3JpcHRvciwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogb3V0QnVmZmVySGFuZGxlKTsKKyAgICBzdGF0aWMgaW50MzJfdCBhbGxvY2F0ZUhvb2soZ3JhbGxvYzFfZGV2aWNlKiBkZXZpY2UsCisgICAgICAgICAgICB1aW50MzJfdCBudW1EZXNjcmlwdG9ycywKKyAgICAgICAgICAgIGNvbnN0IGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIGRlc2NyaXB0b3JzLAorICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXJzKTsKKworICAgIGdyYWxsb2MxX2Vycm9yX3QgcmV0YWluKGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+JiBidWZmZXIpOworICAgIGdyYWxsb2MxX2Vycm9yX3QgcmV0YWluKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpOworICAgIHN0YXRpYyBpbnQzMl90IHJldGFpbkhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpCisgICAgeworICAgICAgICBhdXRvIGFkYXB0ZXIgPSBnZXRBZGFwdGVyKGRldmljZSk7CisgICAgICAgIHJldHVybiBhZGFwdGVyLT5yZXRhaW4oYnVmZmVySGFuZGxlKTsKKyAgICB9CisKKyAgICBncmFsbG9jMV9lcnJvcl90IHJlbGVhc2UoY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlcik7CisgICAgc3RhdGljIGludDMyX3QgcmVsZWFzZUhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIHsKKyAgICAgICAgYXV0byBhZGFwdGVyID0gZ2V0QWRhcHRlcihkZXZpY2UpOworCisgICAgICAgIGF1dG8gYnVmZmVyID0gYWRhcHRlci0+Z2V0QnVmZmVyKGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIGlmICghYnVmZmVyKSB7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oR1JBTExPQzFfRVJST1JfQkFEX0hBTkRMRSk7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIGVycm9yID0gYWRhcHRlci0+cmVsZWFzZShidWZmZXIpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZXJyb3IpOworICAgIH0KKworICAgIC8vIEJ1ZmZlciBhY2Nlc3MgZnVuY3Rpb25zCisKKyAgICBncmFsbG9jMV9lcnJvcl90IGxvY2soY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlciwKKyAgICAgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgIGdyYWxsb2MxX2NvbnN1bWVyX3VzYWdlX3QgY29uc3VtZXJVc2FnZSwKKyAgICAgICAgICAgIGNvbnN0IGdyYWxsb2MxX3JlY3RfdCYgYWNjZXNzUmVnaW9uLCB2b2lkKiogb3V0RGF0YSwKKyAgICAgICAgICAgIGludCBhY3F1aXJlRmVuY2UpOworICAgIGdyYWxsb2MxX2Vycm9yX3QgbG9ja0ZsZXgoY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlciwKKyAgICAgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgIGdyYWxsb2MxX2NvbnN1bWVyX3VzYWdlX3QgY29uc3VtZXJVc2FnZSwKKyAgICAgICAgICAgIGNvbnN0IGdyYWxsb2MxX3JlY3RfdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgc3RydWN0IGFuZHJvaWRfZmxleF9sYXlvdXQqIG91dEZsZXgsCisgICAgICAgICAgICBpbnQgYWNxdWlyZUZlbmNlKTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBPVVQsIGdyYWxsb2MxX2Vycm9yX3QgKEdyYWxsb2MxT24wQWRhcHRlcjo6Km1lbWJlcikoCisgICAgICAgICAgICBjb25zdCBzdGQ6OnNoYXJlZF9wdHI8QnVmZmVyPiYsIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QsCisgICAgICAgICAgICBncmFsbG9jMV9jb25zdW1lcl91c2FnZV90LCBjb25zdCBncmFsbG9jMV9yZWN0X3QmLCBPVVQqLAorICAgICAgICAgICAgaW50KT4KKyAgICBzdGF0aWMgaW50MzJfdCBsb2NrSG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgIHVpbnQ2NF90IC8qZ3JhbGxvYzFfcHJvZHVjZXJfdXNhZ2VfdCovIHVpbnRQcm9kdWNlclVzYWdlLAorICAgICAgICAgICAgdWludDY0X3QgLypncmFsbG9jMV9jb25zdW1lcl91c2FnZV90Ki8gdWludENvbnN1bWVyVXNhZ2UsCisgICAgICAgICAgICBjb25zdCBncmFsbG9jMV9yZWN0X3QqIGFjY2Vzc1JlZ2lvbiwgT1VUKiBvdXREYXRhLAorICAgICAgICAgICAgaW50MzJfdCBhY3F1aXJlRmVuY2VGZCkgeworICAgICAgICBhdXRvIGFkYXB0ZXIgPSBnZXRBZGFwdGVyKGRldmljZSk7CisKKyAgICAgICAgLy8gRXhhY3RseSBvbmUgb2YgcHJvZHVjZXIgYW5kIGNvbnN1bWVyIHVzYWdlIG11c3QgYmUgKl9VU0FHRV9OT05FLAorICAgICAgICAvLyBidXQgd2UgY2FuJ3QgY2hlY2sgdGhpcyB1bnRpbCB0aGUgdXBwZXIgbGV2ZWxzIG9mIHRoZSBmcmFtZXdvcmsKKyAgICAgICAgLy8gY29ycmVjdGx5IGRpc3Rpbmd1aXNoIGJldHdlZW4gcHJvZHVjZXIgYW5kIGNvbnN1bWVyIHVzYWdlCisgICAgICAgIC8qCisgICAgICAgIGJvb2wgaGFzUHJvZHVjZXJVc2FnZSA9CisgICAgICAgICAgICAgICAgdWludFByb2R1Y2VyVXNhZ2UgIT0gR1JBTExPQzFfUFJPRFVDRVJfVVNBR0VfTk9ORTsKKyAgICAgICAgYm9vbCBoYXNDb25zdW1lclVzYWdlID0KKyAgICAgICAgICAgICAgICB1aW50Q29uc3VtZXJVc2FnZSAhPSBHUkFMTE9DMV9DT05TVU1FUl9VU0FHRV9OT05FOworICAgICAgICBpZiAoaGFzUHJvZHVjZXJVc2FnZSAmJiBoYXNDb25zdW1lclVzYWdlIHx8CisgICAgICAgICAgICAgICAgIWhhc1Byb2R1Y2VyVXNhZ2UgJiYgIWhhc0NvbnN1bWVyVXNhZ2UpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfVkFMVUUpOworICAgICAgICB9CisgICAgICAgICovCisKKyAgICAgICAgYXV0byBwcm9kdWNlclVzYWdlID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxncmFsbG9jMV9wcm9kdWNlcl91c2FnZV90Pih1aW50UHJvZHVjZXJVc2FnZSk7CisgICAgICAgIGF1dG8gY29uc3VtZXJVc2FnZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Z3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdD4odWludENvbnN1bWVyVXNhZ2UpOworCisgICAgICAgIGlmICghb3V0RGF0YSkgeworICAgICAgICAgICAgY29uc3QgYXV0byBwcm9kdWNlckNwdVVzYWdlID0gR1JBTExPQzFfUFJPRFVDRVJfVVNBR0VfQ1BVX1JFQUQgfAorICAgICAgICAgICAgICAgICAgICBHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9DUFVfV1JJVEU7CisgICAgICAgICAgICBpZiAoKHByb2R1Y2VyVXNhZ2UgJiBwcm9kdWNlckNwdVVzYWdlKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KEdSQUxMT0MxX0VSUk9SX0JBRF9WQUxVRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGNvbnN1bWVyVXNhZ2UgJiBHUkFMTE9DMV9DT05TVU1FUl9VU0FHRV9DUFVfUkVBRCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfVkFMVUUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYXV0byBidWZmZXIgPSBhZGFwdGVyLT5nZXRCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfSEFORExFKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghYWNjZXNzUmVnaW9uKSB7CisgICAgICAgICAgICBBTE9HRSgiYWNjZXNzUmVnaW9uIGlzIG51bGwiKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfVkFMVUUpOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBlcnJvciA9ICgoKmFkYXB0ZXIpLiptZW1iZXIpKGJ1ZmZlciwgcHJvZHVjZXJVc2FnZSwgY29uc3VtZXJVc2FnZSwKKyAgICAgICAgICAgICAgICAqYWNjZXNzUmVnaW9uLCBvdXREYXRhLCBhY3F1aXJlRmVuY2VGZCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihlcnJvcik7CisgICAgfQorCisgICAgZ3JhbGxvYzFfZXJyb3JfdCB1bmxvY2soY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlciwKKyAgICAgICAgICAgIGludCogb3V0UmVsZWFzZUZlbmNlKTsKKyAgICBzdGF0aWMgaW50MzJfdCB1bmxvY2tIb29rKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCBpbnQzMl90KiBvdXRSZWxlYXNlRmVuY2VGZCkgeworICAgICAgICBhdXRvIGFkYXB0ZXIgPSBnZXRBZGFwdGVyKGRldmljZSk7CisKKyAgICAgICAgYXV0byBidWZmZXIgPSBhZGFwdGVyLT5nZXRCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfSEFORExFKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCByZWxlYXNlRmVuY2UgPSAtMTsKKyAgICAgICAgYXV0byBlcnJvciA9IGFkYXB0ZXItPnVubG9jayhidWZmZXIsICZyZWxlYXNlRmVuY2UpOworICAgICAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICAgICAgKm91dFJlbGVhc2VGZW5jZUZkID0gcmVsZWFzZUZlbmNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihlcnJvcik7CisgICAgfQorCisgICAgLy8gQWRhcHRlciBpbnRlcm5hbHMKKyAgICBjb25zdCBncmFsbG9jX21vZHVsZV90KiBtTW9kdWxlOworICAgIHVpbnQ4X3QgbU1pbm9yVmVyc2lvbjsKKyAgICBhbGxvY19kZXZpY2VfdCogbURldmljZTsKKworICAgIHN0ZDo6c2hhcmVkX3B0cjxEZXNjcmlwdG9yPiBnZXREZXNjcmlwdG9yKAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9ySWQpOworICAgIHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+IGdldEJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKTsKKworICAgIHN0YXRpYyBzdGQ6OmF0b21pYzxncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90PiBzTmV4dEJ1ZmZlckRlc2NyaXB0b3JJZDsKKyAgICBzdGQ6Om11dGV4IG1EZXNjcmlwdG9yTXV0ZXg7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QsCisgICAgICAgICAgICBzdGQ6OnNoYXJlZF9wdHI8RGVzY3JpcHRvcj4+IG1EZXNjcmlwdG9yczsKKyAgICBzdGQ6Om11dGV4IG1CdWZmZXJNdXRleDsKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8YnVmZmVyX2hhbmRsZV90LCBzdGQ6OnNoYXJlZF9wdHI8QnVmZmVyPj4gbUJ1ZmZlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFMTE9DXzFfT05fMF9BREFQVEVSX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAtc2VydmljZS5yYyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGYyZWY4Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNiBAQAorc2VydmljZSBncmFsbG9jLTItMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAtc2VydmljZQorICAgIGNsYXNzIGhhbCBhbmltYXRpb24KKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIGdyYXBoaWNzIGRybXJwYworICAgIGNhcGFiaWxpdGllcyBTWVNfTklDRQorICAgIG9ucmVzdGFydCByZXN0YXJ0IHN1cmZhY2VmbGluZ2VyCmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvZ3JhbGxvYzEtYWRhcHRlci5jcHAgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvZ3JhbGxvYzEtYWRhcHRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNjNTljZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9ncmFsbG9jMS1hZGFwdGVyLmNwcApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiR3JhbGxvYzFPbjBBZGFwdGVyLmgiCisjaW5jbHVkZSAiZ3JhbGxvYzEtYWRhcHRlci5oIgorCitpbnQgZ3JhbGxvYzFfYWRhcHRlcl9kZXZpY2Vfb3Blbihjb25zdCBzdHJ1Y3QgaHdfbW9kdWxlX3QqIG1vZHVsZSwKKyAgICAgICAgY29uc3QgY2hhciogaWQsIHN0cnVjdCBod19kZXZpY2VfdCoqIGRldmljZSkKK3sKKyAgICBpZiAoc3RyY21wKGlkLCBHUkFMTE9DX0hBUkRXQVJFX01PRFVMRV9JRCkgIT0gMCkgeworICAgICAgICBBTE9HRSgidW5rbm93biBncmFsbG9jMSBkZXZpY2UgaWQ6ICVzIiwgaWQpOworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICBhdXRvIGFkYXB0ZXJfZGV2aWNlID0gbmV3IGFuZHJvaWQ6OmhhcmR3YXJlOjpHcmFsbG9jMU9uMEFkYXB0ZXIobW9kdWxlKTsKKyAgICAqZGV2aWNlID0gJmFkYXB0ZXJfZGV2aWNlLT5jb21tb247CisKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9ncmFsbG9jMS1hZGFwdGVyLmggYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvZ3JhbGxvYzEtYWRhcHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5MTJlZjYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvZ3JhbGxvYzEtYWRhcHRlci5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR1JBTExPQzFfQURBUFRFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBTExPQzFfQURBUFRFUl9ICisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorCitfX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgR1JBTExPQzFfQURBUFRFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wIFwKKyAgICBIQVJEV0FSRV9NT0RVTEVfQVBJX1ZFUlNJT04oMSwgMCkKKworZW51bSB7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUID0gMTAwMDAsCisKKyAgICAvLyB2b2lkIGdldFJlYWxNb2R1bGVBcGlWZXJzaW9uTWlub3IoLi4uLCBpbnQqIG91dE1pbm9yVmVyc2lvbik7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0dFVF9SRUFMX01PRFVMRV9BUElfVkVSU0lPTl9NSU5PUiA9CisgICAgICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9GSVJTVCwKKworICAgIC8vIHZvaWQgc2V0VXNhZ2VzKC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgIGludCBwcm9kdWNlclVzYWdlLAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgaW50IGNvbnN1bWVyVXNhZ2UpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9TRVRfVVNBR0VTID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgMSwKKworICAgIC8vIHZvaWQgZ2V0RGltZW5zaW9ucyguLi4sIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgaW50KiBvdXRXaWR0aCwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIG91dEhlaWdodCk7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0dFVF9ESU1FTlNJT05TID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgMiwKKworICAgIC8vIHZvaWQgZ2V0Rm9ybWF0KC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwgaW50KiBvdXRGb3JtYXQpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfRk9STUFUID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgMywKKworICAgIC8vIHZvaWQgZ2V0UHJvZHVjZXJVc2FnZSguLi4sIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsIGludCogb3V0VXNhZ2UpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfUFJPRFVDRVJfVVNBR0UgPQorICAgICAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fRklSU1QgKyA0LAorCisgICAgLy8gdm9pZCBnZXRDb25zdW1lclVzYWdlKC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwgaW50KiBvdXRVc2FnZSk7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0dFVF9DT05TVU1FUl9VU0FHRSA9CisgICAgICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9GSVJTVCArIDUsCisKKyAgICAvLyB2b2lkIGdldEJhY2tpbmdTdG9yZSguLi4sIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCogb3V0QmFja2luZ1N0b3JlKTsKKyAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX0JBQ0tJTkdfU1RPUkUgPQorICAgICAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fRklSU1QgKyA2LAorCisgICAgLy8gdm9pZCBnZXROdW1GbGV4UGxhbmVzKC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIG91dE51bUZsZXhQbGFuZXMpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfTlVNX0ZMRVhfUExBTkVTID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgNywKKworICAgIC8vIHZvaWQgZ2V0U3RyaWRlKC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwgaW50KiBvdXRTdHJpZGUpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfU1RSSURFID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgOCwKKworICAgIC8vIHZvaWQgbG9ja0ZsZXgoLi4uLCBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLAorICAgIC8vICAgICAgICAgICAgICAgICAgICBpbnQgcHJvZHVjZXJVc2FnZSwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgaW50IGNvbnN1bWVyVXNhZ2UsCisgICAgLy8gICAgICAgICAgICAgICAgICAgIGludCBsZWZ0LAorICAgIC8vICAgICAgICAgICAgICAgICAgICBpbnQgdG9wLAorICAgIC8vICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgsCisgICAgLy8gICAgICAgICAgICAgICAgICAgIGludCBoZWlnaHQsCisgICAgLy8gICAgICAgICAgICAgICAgICAgIGFuZHJvaWRfZmxleF9sYXlvdXQqIG91dExheW91dCwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgaW50IGFjcXVpcmVGZW5jZSk7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0xPQ0tfRkxFWCA9CisgICAgICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9GSVJTVCArIDksCit9OworCitpbnQgZ3JhbGxvYzFfYWRhcHRlcl9kZXZpY2Vfb3Blbihjb25zdCBzdHJ1Y3QgaHdfbW9kdWxlX3QqIG1vZHVsZSwKKyAgICAgICAgY29uc3QgY2hhciogaWQsIHN0cnVjdCBod19kZXZpY2VfdCoqIGRldmljZSk7CisKK19fRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBBTkRST0lEX0hBUkRXQVJFX0dSQUxMT0MxX0FEQVBURVJfSCAqLwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0Mzc0MGMKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9JQWxsb2NhdG9yLmg+CisKKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjphbGxvY2F0b3I6OlYyXzA6OklBbGxvY2F0b3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElBbGxvY2F0b3I+KCk7Cit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvQW5kcm9pZC5tayBiL2dyYXBoaWNzL2FsbG9jYXRvci9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0FuZHJvaWQuYnAgYi9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzczOTYzCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3MCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIklHcmFwaGljQnVmZmVyUHJvZHVjZXIuaGFsIiwKKyAgICAgICAgIklQcm9kdWNlckxpc3RlbmVyLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9HcmFwaGljQnVmZmVyUHJvZHVjZXJBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL1Byb2R1Y2VyTGlzdGVuZXJBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSUdyYXBoaWNCdWZmZXJQcm9kdWNlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lId0dyYXBoaWNCdWZmZXJQcm9kdWNlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0JuSHdHcmFwaGljQnVmZmVyUHJvZHVjZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9CcEh3R3JhcGhpY0J1ZmZlclByb2R1Y2VyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvQnNHcmFwaGljQnVmZmVyUHJvZHVjZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9JUHJvZHVjZXJMaXN0ZW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lId1Byb2R1Y2VyTGlzdGVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9Cbkh3UHJvZHVjZXJMaXN0ZW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0JwSHdQcm9kdWNlckxpc3RlbmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvQnNQcm9kdWNlckxpc3RlbmVyLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lHcmFwaGljQnVmZmVyUHJvZHVjZXIuaGFsIGIvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lHcmFwaGljQnVmZmVyUHJvZHVjZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3YmI4MTQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSUdyYXBoaWNCdWZmZXJQcm9kdWNlci5oYWwKQEAgLTAsMCArMSw3MTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOiAqd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OkZlbmNlOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wOjpBbndCdWZmZXI7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OlJlY3Q7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OlJlZ2lvbjsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6RGF0YXNwYWNlOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6UGl4ZWxGb3JtYXQ7CisKK2ltcG9ydCBJUHJvZHVjZXJMaXN0ZW5lcjsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvZ3VpL0lHcmFwaGljQnVmZmVyUHJvZHVjZXIuaDoKKyAqICAgICAgSUdyYXBoaWNCdWZmZXJQcm9kdWNlcgorICogVGhpcyBpcyBhIHdyYXBwZXIvd3JhcHBlZCBIQUwgaW50ZXJmYWNlIGZvciB0aGUgYWN0dWFsIGJpbmRlciBpbnRlcmZhY2UuCisgKi8KK2ludGVyZmFjZSBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyIHsKKworICAgIC8qKgorICAgICAqIFR5cGUgZm9yIHJldHVybiB2YWx1ZXMgb2YgZnVuY3Rpb25zIGluIElHcmFwaGljQnVmZmVyUHJvZHVjZXIuCisgICAgICovCisgICAgdHlwZWRlZiBpbnQzMl90IFN0YXR1czsKKworICAgIC8qKgorICAgICAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS91aS9GZW5jZVRpbWUuaDogRmVuY2VUaW1lOjpTbmFwc2hvdAorICAgICAqCisgICAgICogQW4gYXRvbWljIHNuYXBzaG90IG9mIHRoZSBGZW5jZVRpbWUgdGhhdCBpcyBmbGF0dGVuYWJsZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgRmVuY2VUaW1lU25hcHNob3QgeworICAgICAgICBlbnVtIFN0YXRlIDogaW50MzJfdCB7CisgICAgICAgICAgICBFTVBUWSwKKyAgICAgICAgICAgIEZFTkNFLAorICAgICAgICAgICAgU0lHTkFMX1RJTUUsCisgICAgICAgIH07CisgICAgICAgIFN0YXRlIHN0YXRlOworICAgICAgICBGZW5jZSBmZW5jZTsKKyAgICAgICAgaW50NjRfdCBzaWduYWxUaW1lTnM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9ndWkvRnJhbWVUaW1lc3RhbXAuaDogRnJhbWVFdmVudHNEZWx0YQorICAgICAqCisgICAgICogQSBzaW5nbGUgZnJhbWUgdXBkYXRlIGZyb20gdGhlIGNvbnN1bWVyIHRvIHByb2R1Y2VyIHRoYXQgY2FuIGJlIHNlbnQKKyAgICAgKiB0aHJvdWdoIGEgSElETCBpbnRlcmZhY2UuIEFsdGhvdWdoIHRoaXMgbWF5IGJlIHNlbnQgbXVsdGlwbGUgdGltZXMgZm9yCisgICAgICogdGhlIHNhbWUgZnJhbWUgYXMgbmV3IHRpbWVzdGFtcHMgYXJlIHNldCwgRmVuY2VzIG9ubHkgbmVlZCB0byBiZSBzZW50CisgICAgICogb25jZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgRnJhbWVFdmVudHNEZWx0YSB7CisgICAgICAgIHVpbnQzMl90IGluZGV4OworICAgICAgICB1aW50NjRfdCBmcmFtZU51bWJlcjsKKyAgICAgICAgYm9vbCBhZGRQb3N0Q29tcG9zaXRlQ2FsbGVkOworICAgICAgICBib29sIGFkZFJldGlyZUNhbGxlZDsKKyAgICAgICAgYm9vbCBhZGRSZWxlYXNlQ2FsbGVkOworICAgICAgICBpbnQ2NF90IHBvc3RlZFRpbWVOczsKKyAgICAgICAgaW50NjRfdCByZXF1ZXN0ZWRQcmVzZW50VGltZU5zOworICAgICAgICBpbnQ2NF90IGxhdGNoVGltZU5zOworICAgICAgICBpbnQ2NF90IGZpcnN0UmVmcmVzaFN0YXJ0VGltZU5zOworICAgICAgICBpbnQ2NF90IGxhc3RSZWZyZXNoU3RhcnRUaW1lTnM7CisgICAgICAgIGludDY0X3QgZGVxdWV1ZVJlYWR5VGltZTsKKyAgICAgICAgRmVuY2VUaW1lU25hcHNob3QgZ3B1Q29tcG9zaXRpb25Eb25lRmVuY2U7CisgICAgICAgIEZlbmNlVGltZVNuYXBzaG90IGRpc3BsYXlQcmVzZW50RmVuY2U7CisgICAgICAgIEZlbmNlVGltZVNuYXBzaG90IGRpc3BsYXlSZXRpcmVGZW5jZTsKKyAgICAgICAgRmVuY2VUaW1lU25hcHNob3QgcmVsZWFzZUZlbmNlOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvZ3VpL0ZyYW1lVGltZXN0YW1wLmg6IENvbXBvc2l0b3JUaW1pbmcKKyAgICAgKgorICAgICAqIFRoZSBtb3N0IHJlY2VudCBjb21wb3NpdG9yIHRpbWluZyBpbmZvIHNlbnQgZnJvbSBjb25zdW1lciB0byBwcm9kdWNlcgorICAgICAqIHRocm91Z2ggYSBISURMIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgQ29tcG9zaXRvclRpbWluZyB7CisgICAgICAgIGludDY0X3QgZGVhZGxpbmVOczsKKyAgICAgICAgaW50NjRfdCBpbnRlcnZhbE5zOworICAgICAgICBpbnQ2NF90IHByZXNlbnRMYXRlbmN5TnM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9ndWkvRnJhbWVUaW1lc3RhbXAuaDogRnJhbWVFdmVudEhpc3RvcnlEZWx0YQorICAgICAqCisgICAgICogQSBjb2xsZWN0aW9uIG9mIHVwZGF0ZXMgZnJvbSBjb25zdW1lciB0byBwcm9kdWNlciB0aGF0IGNhbiBiZSBzZW50CisgICAgICogdGhyb3VnaCBhIEhJREwgaW50ZXJmYWNlLgorICAgICAqLworICAgIHN0cnVjdCBGcmFtZUV2ZW50SGlzdG9yeURlbHRhIHsKKyAgICAgICAgdmVjPEZyYW1lRXZlbnRzRGVsdGE+IGRlbHRhczsKKyAgICAgICAgQ29tcG9zaXRvclRpbWluZyBjb21wb3NpdG9yVGltaW5nOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBNb2RlcyBmb3IgZGlzY29ubmVjdGlvbi4KKyAgICAgKi8KKyAgICBlbnVtIERpc2Nvbm5lY3RNb2RlIDogaW50MzJfdCB7CisgICAgICAgIC8qKiBEaXNjb25uZWN0IG9ubHkgdGhlIHNwZWNpZmllZCBBUEkuICovCisgICAgICAgIEFQSSwKKyAgICAgICAgLyoqIERpc2Nvbm5lY3QgYW55IEFQSSBvcmlnaW5hbGx5IGNvbm5lY3RlZCBmcm9tIHRoZSBwcm9jZXNzIGNhbGxpbmcKKyAgICAgICAgICogIGRpc2Nvbm5lY3QuICovCisgICAgICAgIEFMTF9MT0NBTAorICAgIH07CisKKyAgICBzdHJ1Y3QgUXVldWVCdWZmZXJJbnB1dCB7CisgICAgICAgIC8qKiBBIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyB2YWx1ZSBpbiBuYW5vc2Vjb25kcy4gKi8KKyAgICAgICAgaW50NjRfdCB0aW1lc3RhbXA7CisgICAgICAgIC8qKiBXaGV0aGVyIHRoZSB0aW1lc3RhbXAgd2FzIHN5bnRoZXNpemVkIGF0IHF1ZXVlIHRpbWUuICovCisgICAgICAgIGludDMyX3QgaXNBdXRvVGltZXN0YW1wOworICAgICAgICAvKiogRGVzY3JpcHRpb24gb2YgdGhlIGNvbnRlbnRzLCBpbnRlcnByZXRhdGlvbiBkZXBlbmRzIG9uIGZvcm1hdC4gKi8KKyAgICAgICAgRGF0YXNwYWNlIGRhdGFTcGFjZTsKKyAgICAgICAgLyoqIEEgY3JvcCByZWN0YW5nbGUgdGhhdCdzIHVzZWQgYXMgYSBoaW50IHRvIHRoZSBjb25zdW1lci4gKi8KKyAgICAgICAgUmVjdCBjcm9wOworICAgICAgICAvKiogQSBzZXQgb2YgZmxhZ3MgZnJvbSBOQVRJVkVfV0lORE9XX1NDQUxJTkdfKiBpbiA8d2luZG93Lmg+LiAqLworICAgICAgICBpbnQzMl90IHNjYWxpbmdNb2RlOworICAgICAgICAvKiogQSBzZXQgb2YgZmxhZ3MgZnJvbSBOQVRJVkVfV0lORE9XX1RSQU5TRk9STV8qIGluIDx3aW5kb3cuaD4uICovCisgICAgICAgIHVpbnQzMl90IHRyYW5zZm9ybTsKKyAgICAgICAgLyoqIFRoZSBzdGlja3kgdHJhbnNmb3JtIHNldCBpbiBTdXJmYWNlIChvbmx5IHVzZWQgYnkgdGhlIExFR0FDWSBjYW1lcmEKKyAgICAgICAgICogIG1vZGUpLiAqLworICAgICAgICB1aW50MzJfdCBzdGlja3lUcmFuc2Zvcm07CisgICAgICAgIC8qKiBBIGZlbmNlIHRoYXQgdGhlIGNvbnN1bWVyIG11c3Qgd2FpdCBvbiBiZWZvcmUgcmVhZGluZyB0aGUgYnVmZmVyOworICAgICAgICAgKiAgc2V0IHRoaXMgdG8gRmVuY2U6Ok5PX0ZFTkNFIGlmIHRoZSBidWZmZXIgaXMgcmVhZHkgaW1tZWRpYXRlbHkuICovCisgICAgICAgIEZlbmNlIGZlbmNlOworICAgICAgICBSZWdpb24gc3VyZmFjZURhbWFnZTsKKyAgICAgICAgLyoqIFdoZXRoZXIgb3Igbm90IHRoZSBsYXRlc3QgZnJhbWUgdGltZXN0YW1wcyBzaG91bGQgYmUgcmV0cmlldmVkIGZyb20KKyAgICAgICAgICogIHRoZSBjb25zdW1lci4gKi8KKyAgICAgICAgYm9vbCBnZXRGcmFtZVRpbWVzdGFtcHM7CisgICAgfTsKKworICAgIHN0cnVjdCBRdWV1ZUJ1ZmZlck91dHB1dCB7CisgICAgICAgIHVpbnQzMl90IHdpZHRoOworICAgICAgICB1aW50MzJfdCBoZWlnaHQ7CisgICAgICAgIHVpbnQzMl90IHRyYW5zZm9ybUhpbnQ7CisgICAgICAgIHVpbnQzMl90IG51bVBlbmRpbmdCdWZmZXJzOworICAgICAgICB1aW50NjRfdCBuZXh0RnJhbWVOdW1iZXI7CisgICAgICAgIGJvb2wgYnVmZmVyUmVwbGFjZWQ7CisgICAgICAgIEZyYW1lRXZlbnRIaXN0b3J5RGVsdGEgZnJhbWVUaW1lc3RhbXBzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiByZXF1ZXN0QnVmZmVyIHJlcXVlc3RzIGEgbmV3IGJ1ZmZlciBmb3IgdGhlIGdpdmVuIGluZGV4LiBUaGUgc2VydmVyIChpLmUuCisgICAgICogdGhlIElQcm9kdWNlckxpc3RlbmVyIGltcGxlbWVudGF0aW9uKSBhc3NpZ25zIHRoZSBuZXdseSBjcmVhdGVkCisgICAgICogYnVmZmVyIHRvIHRoZSBnaXZlbiBzbG90IGluZGV4LCBhbmQgdGhlIGNsaWVudCBpcyBleHBlY3RlZCB0byBtaXJyb3IgdGhlCisgICAgICogc2xvdC0+YnVmZmVyIG1hcHBpbmcgc28gdGhhdCBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gdHJhbnNmZXIgYW4KKyAgICAgKiBBbndCdWZmZXIgZm9yIGV2ZXJ5IGRlcXVldWUgb3BlcmF0aW9uLgorICAgICAqCisgICAgICogVGhlIHNsb3QgbXVzdCBiZSBpbiB0aGUgcmFuZ2Ugb2YgWzAsIE5VTV9CVUZGRVJfU0xPVFMpLgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQgb3IgdGhlIHByb2R1Y2VyIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIGNvbm5lY3RlZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIG9uZSBvZiB0aGUgdHdvIGNvbmRpdGlvbnMgb2NjdXJyZWQ6CisgICAgICogICAgICAgICAgICAgICogc2xvdCB3YXMgb3V0IG9mIHJhbmdlIChzZWUgYWJvdmUpCisgICAgICogICAgICAgICAgICAgICogYnVmZmVyIHNwZWNpZmllZCBieSB0aGUgc2xvdCBpcyBub3QgZGVxdWV1ZWQKKyAgICAgKi8KKyAgICByZXF1ZXN0QnVmZmVyKAorICAgICAgICAgICAgaW50MzJfdCBzbG90CisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBBbndCdWZmZXIgYnVmZmVyCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBzZXRNYXhEZXF1ZXVlZEJ1ZmZlckNvdW50IHNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ1ZmZlcnMgdGhhdCBjYW4gYmUKKyAgICAgKiBkZXF1ZXVlZCBieSB0aGUgcHJvZHVjZXIgYXQgb25lIHRpbWUuIElmIHRoaXMgbWV0aG9kIHN1Y2NlZWRzLCBhbnkgbmV3CisgICAgICogYnVmZmVyIHNsb3RzIHdpbGwgYmUgYm90aCB1bmFsbG9jYXRlZCBhbmQgb3duZWQgYnkgdGhlIEJ1ZmZlclF1ZXVlIG9iamVjdAorICAgICAqIChpLmUuIHRoZXkgYXJlIG5vdCBvd25lZCBieSB0aGUgcHJvZHVjZXIgb3IgY29uc3VtZXIpLiBDYWxsaW5nIHRoaXMgbWF5CisgICAgICogYWxzbyBjYXVzZSBzb21lIGJ1ZmZlciBzbG90cyB0byBiZSBlbXB0aWVkLiBJZiB0aGUgY2FsbGVyIGlzIGNhY2hpbmcgdGhlCisgICAgICogY29udGVudHMgb2YgdGhlIGJ1ZmZlciBzbG90cywgaXQgc2hvdWxkIGVtcHR5IHRoYXQgY2FjaGUgYWZ0ZXIgY2FsbGluZworICAgICAqIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgdmFsdWUgb2YgbWF4RGVxdWV1ZWRCdWZmZXJzCisgICAgICogdGhhdCBpcyBsZXNzIHRoYW4gdGhlIG51bWJlciBvZiBjdXJyZW50bHkgZGVxdWV1ZWQgYnVmZmVyIHNsb3RzLiBEb2luZyBzbworICAgICAqIHdpbGwgcmVzdWx0IGluIGEgQkFEX1ZBTFVFIGVycm9yLgorICAgICAqCisgICAgICogVGhlIGJ1ZmZlciBjb3VudCBzaG91bGQgYmUgYXQgbGVhc3QgMSAoaW5jbHVzaXZlKSwgYnV0IGF0IG1vc3QKKyAgICAgKiAoTlVNX0JVRkZFUl9TTE9UUyAtIHRoZSBtaW5pbXVtIHVuZGVxdWV1ZWQgYnVmZmVyIGNvdW50KSAoZXhjbHVzaXZlKS4gVGhlCisgICAgICogbWluaW11bSB1bmRlcXVldWVkIGJ1ZmZlciBjb3VudCBjYW4gYmUgb2J0YWluZWQgYnkgY2FsbGluZworICAgICAqIHF1ZXJ5KE5BVElWRV9XSU5ET1dfTUlOX1VOREVRVUVVRURfQlVGRkVSUykuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSB2YWx1ZSBvdGhlciB0aGFuIE5PX0VSUk9SIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIE5PX0lOSVQgLSB0aGUgYnVmZmVyIHF1ZXVlIGhhcyBiZWVuIGFiYW5kb25lZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIG9uZSBvZiB0aGUgYmVsb3cgY29uZGl0aW9ucyBvY2N1cnJlZDoKKyAgICAgKiAgICAgKiBidWZmZXJDb3VudCB3YXMgb3V0IG9mIHJhbmdlIChzZWUgYWJvdmUpLgorICAgICAqICAgICAqIGNsaWVudCB3b3VsZCBoYXZlIG1vcmUgdGhhbiB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBkZXF1ZXVlZAorICAgICAqICAgICAgIGJ1ZmZlcnMgYWZ0ZXIgdGhpcyBjYWxsLgorICAgICAqICAgICAqIHRoaXMgY2FsbCB3b3VsZCBjYXVzZSB0aGUgbWF4QnVmZmVyQ291bnQgdmFsdWUgdG8gYmUgZXhjZWVkZWQuCisgICAgICogICAgICogZmFpbHVyZSB0byBhZGp1c3QgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgc2xvdHMuCisgICAgICovCisgICAgc2V0TWF4RGVxdWV1ZWRCdWZmZXJDb3VudCgKKyAgICAgICAgICAgIGludDMyX3QgbWF4RGVxdWV1ZWRCdWZmZXJzCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgYXN5bmMgZmxhZyBpZiB0aGUgcHJvZHVjZXIgaW50ZW5kcyB0byBhc3luY2hyb25vdXNseSBxdWV1ZQorICAgICAqIGJ1ZmZlcnMgd2l0aG91dCBibG9ja2luZy4gVHlwaWNhbGx5IHRoaXMgaXMgdXNlZCBmb3IgdHJpcGxlLWJ1ZmZlcmluZworICAgICAqIGFuZC9vciB3aGVuIHRoZSBzd2FwIGludGVydmFsIGlzIHNldCB0byB6ZXJvLgorICAgICAqCisgICAgICogRW5hYmxpbmcgYXN5bmMgbW9kZSB3aWxsIGludGVybmFsbHkgYWxsb2NhdGUgYW4gYWRkaXRpb25hbCBidWZmZXIgdG8KKyAgICAgKiBhbGxvdyBmb3IgdGhlIGFzeW5jaHJvbm91cyBiZWhhdmlvci4gSWYgaXQgaXMgbm90IGVuYWJsZWQgcXVldWUvZGVxdWV1ZQorICAgICAqIGNhbGxzIG1heSBibG9jay4KKyAgICAgKgorICAgICAqIFJldHVybiBvZiBhIHZhbHVlIG90aGVyIHRoYW4gTk9fRVJST1IgbWVhbnMgYW4gZXJyb3IgaGFzIG9jY3VycmVkOgorICAgICAqICogTk9fSU5JVCAtIHRoZSBidWZmZXIgcXVldWUgaGFzIGJlZW4gYWJhbmRvbmVkLgorICAgICAqICogQkFEX1ZBTFVFIC0gb25lIG9mIHRoZSBmb2xsb3dpbmcgaGFzIG9jY3VycmVkOgorICAgICAqICAgICAgICAgICAgICogdGhpcyBjYWxsIHdvdWxkIGNhdXNlIHRoZSBtYXhCdWZmZXJDb3VudCB2YWx1ZSB0byBiZQorICAgICAqICAgICAgICAgICAgICAgZXhjZWVkZWQKKyAgICAgKiAgICAgICAgICAgICAqIGZhaWx1cmUgdG8gYWRqdXN0IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHNsb3RzLgorICAgICAqLworICAgIHNldEFzeW5jTW9kZSgKKyAgICAgICAgICAgIGJvb2wgYXN5bmMKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogZGVxdWV1ZUJ1ZmZlciByZXF1ZXN0cyBhIG5ldyBidWZmZXIgc2xvdCBmb3IgdGhlIGNsaWVudCB0byB1c2UuIE93bmVyc2hpcAorICAgICAqIG9mIHRoZSBzbG90IGlzIHRyYW5zZmVyZWQgdG8gdGhlIGNsaWVudCwgbWVhbmluZyB0aGF0IHRoZSBzZXJ2ZXIgd2lsbCBub3QKKyAgICAgKiB1c2UgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoYXQgc2xvdC4KKyAgICAgKgorICAgICAqIFRoZSBzbG90IGluZGV4IHJldHVybmVkIG1heSBvciBtYXkgbm90IGNvbnRhaW4gYSBidWZmZXIgKGNsaWVudC1zaWRlKS4KKyAgICAgKiBJZiB0aGUgc2xvdCBpcyBlbXB0eSB0aGUgY2xpZW50IHNob3VsZCBjYWxsIHJlcXVlc3RCdWZmZXIgdG8gYXNzaWduIGEgbmV3CisgICAgICogYnVmZmVyIHRvIHRoYXQgc2xvdC4KKyAgICAgKgorICAgICAqIE9uY2UgdGhlIGNsaWVudCBpcyBkb25lIGZpbGxpbmcgdGhpcyBidWZmZXIsIGl0IGlzIGV4cGVjdGVkIHRvIHRyYW5zZmVyCisgICAgICogYnVmZmVyIG93bmVyc2hpcCBiYWNrIHRvIHRoZSBzZXJ2ZXIgd2l0aCBlaXRoZXIgY2FuY2VsQnVmZmVyIG9uCisgICAgICogdGhlIGRlcXVldWVkIHNsb3Qgb3IgdG8gZmlsbCBpbiB0aGUgY29udGVudHMgb2YgaXRzIGFzc29jaWF0ZWQgYnVmZmVyCisgICAgICogY29udGVudHMgYW5kIGNhbGwgcXVldWVCdWZmZXIuCisgICAgICoKKyAgICAgKiBJZiBkZXF1ZXVlQnVmZmVyIHJldHVybnMgdGhlIEJVRkZFUl9ORUVEU19SRUFMTE9DQVRJT04gZmxhZywgdGhlIGNsaWVudCBpcworICAgICAqIGV4cGVjdGVkIHRvIGNhbGwgcmVxdWVzdEJ1ZmZlciBpbW1lZGlhdGVseS4KKyAgICAgKgorICAgICAqIElmIGRlcXVldWVCdWZmZXIgcmV0dXJucyB0aGUgUkVMRUFTRV9BTExfQlVGRkVSUyBmbGFnLCB0aGUgY2xpZW50IGlzCisgICAgICogZXhwZWN0ZWQgdG8gcmVsZWFzZSBhbGwgb2YgdGhlIG1pcnJvcmVkIHNsb3QtPmJ1ZmZlciBtYXBwaW5ncy4KKyAgICAgKgorICAgICAqIFRoZSBmZW5jZSBwYXJhbWV0ZXIgd2lsbCBiZSB1cGRhdGVkIHRvIGhvbGQgdGhlIGZlbmNlIGFzc29jaWF0ZWQgd2l0aAorICAgICAqIHRoZSBidWZmZXIuIFRoZSBjb250ZW50cyBvZiB0aGUgYnVmZmVyIG11c3Qgbm90IGJlIG92ZXJ3cml0dGVuIHVudGlsIHRoZQorICAgICAqIGZlbmNlIHNpZ25hbHMuIElmIHRoZSBmZW5jZSBpcyBGZW5jZTo6Tk9fRkVOQ0UsIHRoZSBidWZmZXIgbWF5IGJlIHdyaXR0ZW4KKyAgICAgKiBpbW1lZGlhdGVseS4KKyAgICAgKgorICAgICAqIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMgbXVzdCBiZSBubyBncmVhdGVyIHRoYW4gdGhlIG1pbmltdW0gb2YKKyAgICAgKiBHTF9NQVhfVklFV1BPUlRfRElNUyBhbmQgR0xfTUFYX1RFWFRVUkVfU0laRSAoc2VlOiBnbEdldEludGVnZXJ2KS4KKyAgICAgKiBBbiBlcnJvciBkdWUgdG8gaW52YWxpZCBkaW1lbnNpb25zIG1pZ2h0IG5vdCBiZSByZXBvcnRlZCB1bnRpbAorICAgICAqIHVwZGF0ZVRleEltYWdlKCkgaXMgY2FsbGVkLiAgSWYgd2lkdGggYW5kIGhlaWdodCBhcmUgYm90aCB6ZXJvLCB0aGUKKyAgICAgKiBkZWZhdWx0IHZhbHVlcyBzcGVjaWZpZWQgYnkgc2V0RGVmYXVsdEJ1ZmZlclNpemUoKSBhcmUgdXNlZCBpbnN0ZWFkLgorICAgICAqCisgICAgICogSWYgdGhlIGZvcm1hdCBpcyAwLCB0aGUgZGVmYXVsdCBmb3JtYXQgd2lsbCBiZSB1c2VkLgorICAgICAqCisgICAgICogVGhlIHVzYWdlIGFyZ3VtZW50IHNwZWNpZmllcyBncmFsbG9jIGJ1ZmZlciB1c2FnZSBmbGFncy4gIFRoZSB2YWx1ZXMKKyAgICAgKiBhcmUgZW51bWVyYXRlZCBpbiA8Z3JhbGxvYy5oPiwgZS5nLiBHUkFMTE9DX1VTQUdFX0hXX1JFTkRFUi4gIFRoZXNlCisgICAgICogd2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgdXNhZ2UgZmxhZ3Mgc3BlY2lmaWVkIGJ5CisgICAgICogSUdyYXBoaWNCdWZmZXJDb25zdW1lcjo6c2V0Q29uc3VtZXJVc2FnZUJpdHMuCisgICAgICoKKyAgICAgKiBUaGlzIGNhbGwgd2lsbCBibG9jayB1bnRpbCBhIGJ1ZmZlciBpcyBhdmFpbGFibGUgdG8gYmUgZGVxdWV1ZWQuIElmCisgICAgICogYm90aCB0aGUgcHJvZHVjZXIgYW5kIGNvbnN1bWVyIGFyZSBjb250cm9sbGVkIGJ5IHRoZSBhcHAsIHRoZW4gdGhpcyBjYWxsCisgICAgICogY2FuIG5ldmVyIGJsb2NrIGFuZCB3aWxsIHJldHVybiBXT1VMRF9CTE9DSyBpZiBubyBidWZmZXIgaXMgYXZhaWxhYmxlLgorICAgICAqCisgICAgICogQSBub24tbmVnYXRpdmUgdmFsdWUgd2l0aCBmbGFncyBzZXQgKHNlZSBhYm92ZSkgd2lsbCBiZSByZXR1cm5lZCB1cG9uCisgICAgICogc3VjY2VzcyBhcyBzdGF0dXMuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSBuZWdhdGl2ZSBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQgb3IgdGhlIHByb2R1Y2VyIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIGNvbm5lY3RlZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIGJvdGggaW4gYXN5bmMgbW9kZSBhbmQgYnVmZmVyIGNvdW50IHdhcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgICBtYXggbnVtYmVycyBvZiBidWZmZXJzIHRoYXQgY2FuIGJlIGFsbG9jYXRlZCBhdCBvbmNlLgorICAgICAqICogSU5WQUxJRF9PUEVSQVRJT04gLSBjYW5ub3QgYXR0YWNoIHRoZSBidWZmZXIgYmVjYXVzZSBpdCB3b3VsZCBjYXVzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICB0b28gbWFueSBidWZmZXJzIHRvIGJlIGRlcXVldWVkLCBlaXRoZXIgYmVjYXVzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICB0aGUgcHJvZHVjZXIgYWxyZWFkeSBoYXMgYSBzaW5nbGUgYnVmZmVyIGRlcXVldWVkCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGFuZCBkaWQgbm90IHNldCBhIGJ1ZmZlciBjb3VudCwgb3IgYmVjYXVzZSBhCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBjb3VudCB3YXMgc2V0IGFuZCB0aGlzIGNhbGwgd291bGQgY2F1c2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgaXQgdG8gYmUgZXhjZWVkZWQuCisgICAgICogKiBXT1VMRF9CTE9DSyAtIG5vIGJ1ZmZlciBpcyBjdXJyZW50bHkgYXZhaWxhYmxlLCBhbmQgYmxvY2tpbmcgaXMgZGlzYWJsZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgc2luY2UgYm90aCB0aGUgcHJvZHVjZXIvY29uc3VtZXIgYXJlIGNvbnRyb2xsZWQgYnkgYXBwCisgICAgICogKiBOT19NRU1PUlkgLSBvdXQgb2YgbWVtb3J5LCBjYW5ub3QgYWxsb2NhdGUgdGhlIGdyYXBoaWNzIGJ1ZmZlci4KKyAgICAgKiAqIFRJTUVEX09VVCAtIHRoZSB0aW1lb3V0IHNldCBieSBzZXREZXF1ZXVlVGltZW91dCB3YXMgZXhjZWVkZWQgd2hpbGUKKyAgICAgKiAgICAgICAgICAgICAgIHdhaXRpbmcgZm9yIGEgYnVmZmVyIHRvIGJlY29tZSBhdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBBbGwgb3RoZXIgbmVnYXRpdmUgdmFsdWVzIGFyZSBhbiB1bmtub3duIGVycm9yIHJldHVybmVkIGRvd25zdHJlYW0KKyAgICAgKiBmcm9tIHRoZSBncmFwaGljcyBhbGxvY2F0b3IgKHR5cGljYWxseSBlcnJubykuCisgICAgICovCisgICAgZGVxdWV1ZUJ1ZmZlcigKKyAgICAgICAgICAgIHVpbnQzMl90IHdpZHRoLAorICAgICAgICAgICAgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0LAorICAgICAgICAgICAgdWludDMyX3QgdXNhZ2UsCisgICAgICAgICAgICBib29sIGdldEZyYW1lVGltZXN0YW1wcworICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgaW50MzJfdCBzbG90LAorICAgICAgICAgICAgRmVuY2UgZmVuY2UsCisgICAgICAgICAgICBGcmFtZUV2ZW50SGlzdG9yeURlbHRhIG91dFRpbWVzdGFtcHMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIGRldGFjaEJ1ZmZlciBhdHRlbXB0cyB0byByZW1vdmUgYWxsIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyIGluIHRoZSBnaXZlbgorICAgICAqIHNsb3QgZnJvbSB0aGUgYnVmZmVyIHF1ZXVlLiBJZiB0aGlzIGNhbGwgc3VjY2VlZHMsIHRoZSBzbG90IHdpbGwgYmUKKyAgICAgKiBmcmVlZCwgYW5kIHRoZXJlIHdpbGwgYmUgbm8gd2F5IHRvIG9idGFpbiB0aGUgYnVmZmVyIGZyb20gdGhpcyBpbnRlcmZhY2UuCisgICAgICogVGhlIGZyZWVkIHNsb3Qgd2lsbCByZW1haW4gdW5hbGxvY2F0ZWQgdW50aWwgZWl0aGVyIGl0IGlzIHNlbGVjdGVkIHRvCisgICAgICogaG9sZCBhIGZyZXNobHkgYWxsb2NhdGVkIGJ1ZmZlciBpbiBkZXF1ZXVlQnVmZmVyIG9yIGEgYnVmZmVyIGlzIGF0dGFjaGVkCisgICAgICogdG8gdGhlIHNsb3QuIFRoZSBidWZmZXIgbXVzdCBoYXZlIGFscmVhZHkgYmVlbiBkZXF1ZXVlZCwgYW5kIHRoZSBjYWxsZXIKKyAgICAgKiBtdXN0IGFscmVhZHkgcG9zc2Vzc2VzIHRoZSBzcDxBbndCdWZmZXI+IChpLmUuLCBtdXN0IGhhdmUgY2FsbGVkCisgICAgICogcmVxdWVzdEJ1ZmZlcikuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSB2YWx1ZSBvdGhlciB0aGFuIE5PX0VSUk9SIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIE5PX0lOSVQgLSB0aGUgYnVmZmVyIHF1ZXVlIGhhcyBiZWVuIGFiYW5kb25lZCBvciB0aGUgcHJvZHVjZXIgaXMgbm90CisgICAgICogICAgICAgICAgICAgY29ubmVjdGVkLgorICAgICAqICogQkFEX1ZBTFVFIC0gdGhlIGdpdmVuIHNsb3QgbnVtYmVyIGlzIGludmFsaWQsIGVpdGhlciBiZWNhdXNlIGl0IGlzCisgICAgICogICAgICAgICAgICAgICBvdXQgb2YgdGhlIHJhbmdlIFswLCBOVU1fQlVGRkVSX1NMT1RTKSwgb3IgYmVjYXVzZSB0aGUgc2xvdAorICAgICAqICAgICAgICAgICAgICAgaXQgcmVmZXJzIHRvIGlzIG5vdCBjdXJyZW50bHkgZGVxdWV1ZWQgYW5kIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBkZXRhY2hCdWZmZXIoCisgICAgICAgICAgICBpbnQzMl90IHNsb3QKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogZGV0YWNoTmV4dEJ1ZmZlciBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgZGVxdWV1ZUJ1ZmZlciwgcmVxdWVzdEJ1ZmZlciwKKyAgICAgKiBhbmQgZGV0YWNoQnVmZmVyIGluIHNlcXVlbmNlLCBleGNlcHQgZm9yIHR3byB0aGluZ3M6CisgICAgICoKKyAgICAgKiAxKSBJdCBpcyB1bm5lY2Vzc2FyeSB0byBrbm93IHRoZSBkaW1lbnNpb25zLCBmb3JtYXQsIG9yIHVzYWdlIG9mIHRoZQorICAgICAqICAgIG5leHQgYnVmZmVyLgorICAgICAqIDIpIEl0IHdpbGwgbm90IGJsb2NrLCBzaW5jZSBpZiBpdCBjYW5ub3QgZmluZCBhbiBhcHByb3ByaWF0ZSBidWZmZXIgdG8KKyAgICAgKiAgICByZXR1cm4sIGl0IHdpbGwgcmV0dXJuIGFuIGVycm9yIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBPbmx5IHNsb3RzIHRoYXQgYXJlIGZyZWUgYnV0IHN0aWxsIGNvbnRhaW4gYW4gQW53QnVmZmVyIHdpbGwgYmUKKyAgICAgKiBjb25zaWRlcmVkLCBhbmQgdGhlIG9sZGVzdCBvZiB0aG9zZSB3aWxsIGJlIHJldHVybmVkLiBidWZmZXIgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIGJ1ZmZlciBmcm9tIHRoZSByZXF1ZXN0QnVmZmVyIGNhbGwsIGFuZCBmZW5jZSBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gZmVuY2UgZnJvbSB0aGUgZGVxdWV1ZUJ1ZmZlciBjYWxsLgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQgb3IgdGhlIHByb2R1Y2VyIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIGNvbm5lY3RlZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIGVpdGhlciBvdXRCdWZmZXIgb3Igb3V0RmVuY2Ugd2VyZSBOVUxMLgorICAgICAqICogTk9fTUVNT1JZIC0gbm8gc2xvdHMgd2VyZSBmb3VuZCB0aGF0IHdlcmUgYm90aCBmcmVlIGFuZCBjb250YWluZWQgYQorICAgICAqICAgICAgICAgICAgICAgQW53QnVmZmVyLgorICAgICAqLworICAgIGRldGFjaE5leHRCdWZmZXIoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBBbndCdWZmZXIgYnVmZmVyLAorICAgICAgICAgICAgRmVuY2UgZmVuY2UKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIGF0dGFjaEJ1ZmZlciBhdHRlbXB0cyB0byB0cmFuc2ZlciBvd25lcnNoaXAgb2YgYSBidWZmZXIgdG8gdGhlIGJ1ZmZlcgorICAgICAqIHF1ZXVlLiBJZiB0aGlzIGNhbGwgc3VjY2VlZHMsIGl0IHdpbGwgYmUgYXMgaWYgdGhpcyBidWZmZXIgd2FzIGRlcXVldWVkCisgICAgICogZnJvbSB0aGUgcmV0dXJuZWQgc2xvdCBudW1iZXIuIEFzIHN1Y2gsIHRoaXMgY2FsbCB3aWxsIGZhaWwgaWYgYXR0YWNoaW5nCisgICAgICogdGhpcyBidWZmZXIgd291bGQgY2F1c2UgdG9vIG1hbnkgYnVmZmVycyB0byBiZSBzaW11bHRhbmVvdXNseSBkZXF1ZXVlZC4KKyAgICAgKgorICAgICAqIElmIGF0dGFjaEJ1ZmZlciByZXR1cm5zIHRoZSBSRUxFQVNFX0FMTF9CVUZGRVJTIGZsYWcsIHRoZSBjYWxsZXIgaXMKKyAgICAgKiBleHBlY3RlZCB0byByZWxlYXNlIGFsbCBvZiB0aGUgbWlycm9yZWQgc2xvdC0+YnVmZmVyIG1hcHBpbmdzLgorICAgICAqCisgICAgICogQSBub24tbmVnYXRpdmUgdmFsdWUgd2l0aCBmbGFncyBzZXQgKHNlZSBhYm92ZSkgd2lsbCBiZSByZXR1cm5lZCB1cG9uCisgICAgICogc3VjY2Vzcy4KKyAgICAgKgorICAgICAqIFJldHVybiBvZiBhIG5lZ2F0aXZlIHZhbHVlIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIE5PX0lOSVQgLSB0aGUgYnVmZmVyIHF1ZXVlIGhhcyBiZWVuIGFiYW5kb25lZCBvciB0aGUgcHJvZHVjZXIgaXMgbm90CisgICAgICogICAgICAgICAgICAgY29ubmVjdGVkLgorICAgICAqICogQkFEX1ZBTFVFIC0gb3V0U2xvdCBvciBidWZmZXIgd2VyZSBOVUxMLCBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mCisgICAgICogICAgICAgICAgICAgICBhc3luYyBtb2RlIGFuZCBidWZmZXIgY291bnQgb3ZlcnJpZGUsIG9yIHRoZSBnZW5lcmF0aW9uCisgICAgICogICAgICAgICAgICAgICBudW1iZXIgb2YgdGhlIGJ1ZmZlciBkaWQgbm90IG1hdGNoIHRoZSBidWZmZXIgcXVldWUuCisgICAgICogKiBJTlZBTElEX09QRVJBVElPTiAtIGNhbm5vdCBhdHRhY2ggdGhlIGJ1ZmZlciBiZWNhdXNlIGl0IHdvdWxkIGNhdXNlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIHRvbyBtYW55IGJ1ZmZlcnMgdG8gYmUgZGVxdWV1ZWQsIGVpdGhlciBiZWNhdXNlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIHRoZSBwcm9kdWNlciBhbHJlYWR5IGhhcyBhIHNpbmdsZSBidWZmZXIgZGVxdWV1ZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRpZCBub3Qgc2V0IGEgYnVmZmVyIGNvdW50LCBvciBiZWNhdXNlIGEKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIGNvdW50IHdhcyBzZXQgYW5kIHRoaXMgY2FsbCB3b3VsZCBjYXVzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBpdCB0byBiZSBleGNlZWRlZC4KKyAgICAgKiAqIFdPVUxEX0JMT0NLIC0gbm8gYnVmZmVyIHNsb3QgaXMgY3VycmVudGx5IGF2YWlsYWJsZSwgYW5kIGJsb2NraW5nIGlzCisgICAgICogICAgICAgICAgICAgICAgIGRpc2FibGVkIHNpbmNlIGJvdGggdGhlIHByb2R1Y2VyL2NvbnN1bWVyIGFyZQorICAgICAqICAgICAgICAgICAgICAgICBjb250cm9sbGVkIGJ5IHRoZSBhcHAuCisgICAgICogKiBUSU1FRF9PVVQgLSB0aGUgdGltZW91dCBzZXQgYnkgc2V0RGVxdWV1ZVRpbWVvdXQgd2FzIGV4Y2VlZGVkIHdoaWxlCisgICAgICogICAgICAgICAgICAgICB3YWl0aW5nIGZvciBhIHNsb3QgdG8gYmVjb21lIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBhdHRhY2hCdWZmZXIoCisgICAgICAgICAgICBBbndCdWZmZXIgYnVmZmVyCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBpbnQzMl90IHNsb3QKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIHF1ZXVlQnVmZmVyIGluZGljYXRlcyB0aGF0IHRoZSBjbGllbnQgaGFzIGZpbmlzaGVkIGZpbGxpbmcgaW4gdGhlCisgICAgICogY29udGVudHMgb2YgdGhlIGJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggc2xvdCBhbmQgdHJhbnNmZXJzIG93bmVyc2hpcCBvZgorICAgICAqIHRoYXQgc2xvdCBiYWNrIHRvIHRoZSBzZXJ2ZXIuCisgICAgICoKKyAgICAgKiBJdCBpcyBub3QgdmFsaWQgdG8gY2FsbCBxdWV1ZUJ1ZmZlciBvbiBhIHNsb3QgdGhhdCBpcyBub3Qgb3duZWQKKyAgICAgKiBieSB0aGUgY2xpZW50IG9yIG9uZSBmb3Igd2hpY2ggYSBidWZmZXIgYXNzb2NpYXRlZCB2aWEgcmVxdWVzdEJ1ZmZlcgorICAgICAqIChhbiBhdHRlbXB0IHRvIGRvIHNvIHdpbGwgZmFpbCB3aXRoIGEgcmV0dXJuIHZhbHVlIG9mIEJBRF9WQUxVRSkuCisgICAgICoKKyAgICAgKiBJbiBhZGRpdGlvbiwgdGhlIGlucHV0IG11c3QgYmUgZGVzY3JpYmVkIGJ5IHRoZSBjbGllbnQgKGFzIGRvY3VtZW50ZWQKKyAgICAgKiBiZWxvdykuIEFueSBvdGhlciBwcm9wZXJ0aWVzICh6ZXJvIHBvaW50LCBldGMpCisgICAgICogYXJlIGNsaWVudC1kZXBlbmRlbnQsIGFuZCBzaG91bGQgYmUgZG9jdW1lbnRlZCBieSB0aGUgY2xpZW50LgorICAgICAqCisgICAgICogVGhlIHNsb3QgbXVzdCBiZSBpbiB0aGUgcmFuZ2Ugb2YgWzAsIE5VTV9CVUZGRVJfU0xPVFMpLgorICAgICAqCisgICAgICogVXBvbiBzdWNjZXNzLCB0aGUgb3V0cHV0IHdpbGwgYmUgZmlsbGVkIHdpdGggbWVhbmluZ2Z1bCB2YWx1ZXMKKyAgICAgKiAocmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gYmVsb3cpLgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQgb3IgdGhlIHByb2R1Y2VyIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIGNvbm5lY3RlZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIG9uZSBvZiB0aGUgYmVsb3cgY29uZGl0aW9ucyBvY2N1cnJlZDoKKyAgICAgKiAgICAgICAgICAgICAgKiBmZW5jZSB3YXMgTlVMTAorICAgICAqICAgICAgICAgICAgICAqIHNjYWxpbmcgbW9kZSB3YXMgdW5rbm93bgorICAgICAqICAgICAgICAgICAgICAqIGJvdGggaW4gYXN5bmMgbW9kZSBhbmQgYnVmZmVyIGNvdW50IHdhcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgICAgbWF4IG51bWJlcnMgb2YgYnVmZmVycyB0aGF0IGNhbiBiZSBhbGxvY2F0ZWQgYXQgb25jZQorICAgICAqICAgICAgICAgICAgICAqIHNsb3QgaW5kZXggd2FzIG91dCBvZiByYW5nZSAoc2VlIGFib3ZlKS4KKyAgICAgKiAgICAgICAgICAgICAgKiB0aGUgc2xvdCB3YXMgbm90IGluIHRoZSBkZXF1ZXVlZCBzdGF0ZQorICAgICAqICAgICAgICAgICAgICAqIHRoZSBzbG90IHdhcyBlbnF1ZXVlZCB3aXRob3V0IHJlcXVlc3RpbmcgYSBidWZmZXIKKyAgICAgKiAgICAgICAgICAgICAgKiBjcm9wIHJlY3QgaXMgb3V0IG9mIGJvdW5kcyBvZiB0aGUgYnVmZmVyIGRpbWVuc2lvbnMKKyAgICAgKi8KKyAgICBxdWV1ZUJ1ZmZlcigKKyAgICAgICAgICAgIGludDMyX3Qgc2xvdCwKKyAgICAgICAgICAgIFF1ZXVlQnVmZmVySW5wdXQgaW5wdXQKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIFF1ZXVlQnVmZmVyT3V0cHV0IG91dHB1dAorICAgICAgICApOworCisgICAgLyoqCisgICAgICogY2FuY2VsQnVmZmVyIGluZGljYXRlcyB0aGF0IHRoZSBjbGllbnQgZG9lcyBub3Qgd2lzaCB0byBmaWxsIGluIHRoZQorICAgICAqIGJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggc2xvdCBhbmQgdHJhbnNmZXJzIG93bmVyc2hpcCBvZiB0aGUgc2xvdCBiYWNrIHRvCisgICAgICogdGhlIHNlcnZlci4KKyAgICAgKgorICAgICAqIFRoZSBidWZmZXIgaXMgbm90IHF1ZXVlZCBmb3IgdXNlIGJ5IHRoZSBjb25zdW1lci4KKyAgICAgKgorICAgICAqIFRoZSBzbG90IG11c3QgYmUgaW4gdGhlIHJhbmdlIG9mIFswLCBOVU1fQlVGRkVSX1NMT1RTKS4KKyAgICAgKgorICAgICAqIFRoZSBidWZmZXIgd2lsbCBub3QgYmUgb3ZlcndyaXR0ZW4gdW50aWwgdGhlIGZlbmNlIHNpZ25hbHMuICBUaGUgZmVuY2UKKyAgICAgKiB3aWxsIHVzdWFsbHkgYmUgdGhlIG9uZSBvYnRhaW5lZCBmcm9tIGRlcXVldWVCdWZmZXIuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSB2YWx1ZSBvdGhlciB0aGFuIE5PX0VSUk9SIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIE5PX0lOSVQgLSB0aGUgYnVmZmVyIHF1ZXVlIGhhcyBiZWVuIGFiYW5kb25lZCBvciB0aGUgcHJvZHVjZXIgaXMgbm90CisgICAgICogICAgICAgICAgICAgY29ubmVjdGVkLgorICAgICAqICogQkFEX1ZBTFVFIC0gb25lIG9mIHRoZSBiZWxvdyBjb25kaXRpb25zIG9jY3VycmVkOgorICAgICAqICAgICAgICAgICAgICAqIGZlbmNlIHdhcyBOVUxMCisgICAgICogICAgICAgICAgICAgICogc2xvdCBpbmRleCB3YXMgb3V0IG9mIHJhbmdlIChzZWUgYWJvdmUpLgorICAgICAqICAgICAgICAgICAgICAqIHRoZSBzbG90IHdhcyBub3QgaW4gdGhlIGRlcXVldWVkIHN0YXRlCisgICAgICovCisgICAgY2FuY2VsQnVmZmVyKAorICAgICAgICAgICAgaW50MzJfdCBzbG90LAorICAgICAgICAgICAgRmVuY2UgZmVuY2UKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogcXVlcnkgcmV0cmlldmVzIHNvbWUgaW5mb3JtYXRpb24gZm9yIHRoaXMgc3VyZmFjZQorICAgICAqICd3aGF0JyB0b2tlbnMgYWxsb3dlZCBhcmUgdGhhdCBvZiBOQVRJVkVfV0lORE9XXyogaW4gPHdpbmRvdy5oPgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQuCisgICAgICogKiBCQURfVkFMVUUgLSB3aGF0IHdhcyBvdXQgb2YgcmFuZ2UKKyAgICAgKi8KKyAgICBxdWVyeSgKKyAgICAgICAgICAgIGludDMyX3Qgd2hhdAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBpbnQzMl90IHJlc3VsdCwKKyAgICAgICAgICAgIGludDMyX3QgdmFsdWUKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIGNvbm5lY3QgYXR0ZW1wdHMgdG8gY29ubmVjdCBhIGNsaWVudCBBUEkgdG8gdGhlIElHcmFwaGljQnVmZmVyUHJvZHVjZXIuCisgICAgICogVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIElHcmFwaGljQnVmZmVyUHJvZHVjZXIgbWV0aG9kcyBhcmUKKyAgICAgKiBjYWxsZWQgZXhjZXB0IGZvciBnZXRBbGxvY2F0b3IuIEEgY29uc3VtZXIgbXVzdCBiZSBhbHJlYWR5IGNvbm5lY3RlZC4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgZmFpbCBpZiB0aGUgY29ubmVjdCB3YXMgcHJldmlvdXNseSBjYWxsZWQgb24gdGhlCisgICAgICogSUdyYXBoaWNCdWZmZXJQcm9kdWNlciBhbmQgbm8gY29ycmVzcG9uZGluZyBkaXNjb25uZWN0IGNhbGwgd2FzIG1hZGUuCisgICAgICoKKyAgICAgKiBUaGUgbGlzdGVuZXIgaXMgYW4gb3B0aW9uYWwgYmluZGVyIGNhbGxiYWNrIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIGlmCisgICAgICogdGhlIHByb2R1Y2VyIHdhbnRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGNvbnN1bWVyIHJlbGVhc2VzIGEgYnVmZmVyCisgICAgICogYmFjayB0byB0aGUgQnVmZmVyUXVldWUuIEl0IGlzIGFsc28gdXNlZCB0byBkZXRlY3QgdGhlIGRlYXRoIG9mIHRoZQorICAgICAqIHByb2R1Y2VyLiBJZiBvbmx5IHRoZSBsYXR0ZXIgZnVuY3Rpb25hbGl0eSBpcyBkZXNpcmVkLCB0aGVyZSBpcyBhCisgICAgICogRHVtbXlQcm9kdWNlckxpc3RlbmVyIGNsYXNzIGluIElQcm9kdWNlckxpc3RlbmVyLmggdGhhdCBjYW4gYmUgdXNlZC4KKyAgICAgKgorICAgICAqIFRoZSBhcGkgc2hvdWxkIGJlIG9uZSBvZiB0aGUgTkFUSVZFX1dJTkRPV19BUElfKiB2YWx1ZXMgaW4gPHdpbmRvdy5oPgorICAgICAqCisgICAgICogVGhlIHByb2R1Y2VyQ29udHJvbGxlZEJ5QXBwIHNob3VsZCBiZSBzZXQgdG8gdHJ1ZSBpZiB0aGUgcHJvZHVjZXIgaXMgaG9zdGVkCisgICAgICogYnkgYW4gdW50cnVzdGVkIHByb2Nlc3MgKHR5cGljYWxseSBhcHBfcHJvY2Vzcy1mb3JrZWQgcHJvY2Vzc2VzKS4gSWYgYm90aAorICAgICAqIHRoZSBwcm9kdWNlciBhbmQgdGhlIGNvbnN1bWVyIGFyZSBhcHAtY29udHJvbGxlZCB0aGVuIGFsbCBidWZmZXIgcXVldWVzCisgICAgICogd2lsbCBvcGVyYXRlIGluIGFzeW5jIG1vZGUgcmVnYXJkbGVzcyBvZiB0aGUgYXN5bmMgZmxhZy4KKyAgICAgKgorICAgICAqIFVwb24gc3VjY2VzcywgdGhlIG91dHB1dCB3aWxsIGJlIGZpbGxlZCB3aXRoIG1lYW5pbmdmdWwgZGF0YQorICAgICAqIChyZWZlciB0byBRdWV1ZUJ1ZmZlck91dHB1dCBkb2N1bWVudGF0aW9uIGFib3ZlKS4KKyAgICAgKgorICAgICAqIFJldHVybiBvZiBhIHZhbHVlIG90aGVyIHRoYW4gTk9fRVJST1IgbWVhbnMgYW4gZXJyb3IgaGFzIG9jY3VycmVkOgorICAgICAqICogTk9fSU5JVCAtIG9uZSBvZiB0aGUgZm9sbG93aW5nIG9jY3VycmVkOgorICAgICAqICAgICAgICAgICAgICogdGhlIGJ1ZmZlciBxdWV1ZSB3YXMgYWJhbmRvbmVkCisgICAgICogICAgICAgICAgICAgKiBubyBjb25zdW1lciBoYXMgeWV0IGNvbm5lY3RlZAorICAgICAqICogQkFEX1ZBTFVFIC0gb25lIG9mIHRoZSBmb2xsb3dpbmcgaGFzIG9jY3VycmVkOgorICAgICAqICAgICAgICAgICAgICogdGhlIHByb2R1Y2VyIGlzIGFscmVhZHkgY29ubmVjdGVkCisgICAgICogICAgICAgICAgICAgKiBhcGkgd2FzIG91dCBvZiByYW5nZSAoc2VlIGFib3ZlKS4KKyAgICAgKiAgICAgICAgICAgICAqIG91dHB1dCB3YXMgTlVMTC4KKyAgICAgKiAgICAgICAgICAgICAqIEZhaWx1cmUgdG8gYWRqdXN0IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHNsb3RzLiBUaGlzIGNhbgorICAgICAqICAgICAgICAgICAgICAgaGFwcGVuIGJlY2F1c2Ugb2YgdHJ5aW5nIHRvIGFsbG9jYXRlL2RlYWxsb2NhdGUgdGhlIGFzeW5jCisgICAgICogICAgICAgICAgICAgICBidWZmZXIgaW4gcmVzcG9uc2UgdG8gdGhlIHZhbHVlIG9mIHByb2R1Y2VyQ29udHJvbGxlZEJ5QXBwLgorICAgICAqICogREVBRF9PQkpFQ1QgLSB0aGUgdG9rZW4gaXMgaG9zdGVkIGJ5IGFuIGFscmVhZHktZGVhZCBwcm9jZXNzCisgICAgICoKKyAgICAgKiBBZGRpdGlvbmFsIG5lZ2F0aXZlIGVycm9ycyBtYXkgYmUgcmV0dXJuZWQgYnkgdGhlIGludGVybmFscywgdGhleQorICAgICAqIHNob3VsZCBiZSB0cmVhdGVkIGFzIG9wYXF1ZSBmYXRhbCB1bnJlY292ZXJhYmxlIGVycm9ycy4KKyAgICAgKi8KKyAgICBjb25uZWN0KAorICAgICAgICAgICAgSVByb2R1Y2VyTGlzdGVuZXIgbGlzdGVuZXIsCisgICAgICAgICAgICBpbnQzMl90IGFwaSwKKyAgICAgICAgICAgIGJvb2wgcHJvZHVjZXJDb250cm9sbGVkQnlBcHAKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIFF1ZXVlQnVmZmVyT3V0cHV0IG91dHB1dAorICAgICAgICApOworCisgICAgLyoqCisgICAgICogZGlzY29ubmVjdCBhdHRlbXB0cyB0byBkaXNjb25uZWN0IGEgY2xpZW50IEFQSSBmcm9tIHRoZQorICAgICAqIElHcmFwaGljQnVmZmVyUHJvZHVjZXIuICBDYWxsaW5nIHRoaXMgbWV0aG9kIHdpbGwgY2F1c2UgYW55IHN1YnNlcXVlbnQKKyAgICAgKiBjYWxscyB0byBvdGhlciBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyIG1ldGhvZHMgdG8gZmFpbCBleGNlcHQgZm9yCisgICAgICogZ2V0QWxsb2NhdG9yIGFuZCBjb25uZWN0LiAgU3VjY2Vzc2Z1bGx5IGNhbGxpbmcgY29ubmVjdCBhZnRlciB0aGlzIHdpbGwKKyAgICAgKiBhbGxvdyB0aGUgb3RoZXIgbWV0aG9kcyB0byBzdWNjZWVkIGFnYWluLgorICAgICAqCisgICAgICogVGhlIGFwaSBzaG91bGQgYmUgb25lIG9mIHRoZSBOQVRJVkVfV0lORE9XX0FQSV8qIHZhbHVlcyBpbiA8d2luZG93Lmg+CisgICAgICoKKyAgICAgKiBBbHRlcm5hdGl2ZWx5IGlmIG1vZGUgaXMgQWxsTG9jYWwsIHRoZW4gdGhlIEFQSSB2YWx1ZSBpcyBpZ25vcmVkLCBhbmQgYW55IEFQSQorICAgICAqIGNvbm5lY3RlZCBmcm9tIHRoZSBzYW1lIFBJRCBjYWxsaW5nIGRpc2Nvbm5lY3Qgd2lsbCBiZSBkaXNjb25uZWN0ZWQuCisgICAgICoKKyAgICAgKiBEaXNjb25uZWN0aW5nIGZyb20gYW4gYWJhbmRvbmVkIElHcmFwaGljQnVmZmVyUHJvZHVjZXIgaXMgbGVnYWwgYW5kCisgICAgICogaXMgY29uc2lkZXJlZCBhIG5vLW9wLgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBCQURfVkFMVUUgLSBvbmUgb2YgdGhlIGZvbGxvd2luZyBoYXMgb2NjdXJyZWQ6CisgICAgICogICAgICAgICAgICAgKiB0aGUgYXBpIHNwZWNpZmllZCBkb2VzIG5vdCBtYXRjaCB0aGUgb25lIHRoYXQgd2FzIGNvbm5lY3RlZAorICAgICAqICAgICAgICAgICAgICogYXBpIHdhcyBvdXQgb2YgcmFuZ2UgKHNlZSBhYm92ZSkuCisgICAgICogKiBERUFEX09CSkVDVCAtIHRoZSB0b2tlbiBpcyBob3N0ZWQgYnkgYW4gYWxyZWFkeS1kZWFkIHByb2Nlc3MKKyAgICAgKi8KKyAgICBkaXNjb25uZWN0KAorICAgICAgICAgICAgaW50MzJfdCBhcGksCisgICAgICAgICAgICBEaXNjb25uZWN0TW9kZSBtb2RlIC8qKiA9IERpc2Nvbm5lY3RNb2RlOjpBUEkgKi8KKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQXR0YWNoZXMgYSBzaWRlYmFuZCBidWZmZXIgc3RyZWFtIHRvIHRoZSBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyLgorICAgICAqCisgICAgICogQSBzaWRlYmFuZCBzdHJlYW0gaXMgYSBkZXZpY2Utc3BlY2lmaWMgbWVjaGFuaXNtIGZvciBwYXNzaW5nIGJ1ZmZlcnMKKyAgICAgKiBmcm9tIHRoZSBwcm9kdWNlciB0byB0aGUgY29uc3VtZXIgd2l0aG91dCB1c2luZyBkZXF1ZXVlQnVmZmVyLworICAgICAqIHF1ZXVlQnVmZmVyLiBJZiBhIHNpZGViYW5kIHN0cmVhbSBpcyBwcmVzZW50LCB0aGUgY29uc3VtZXIgY2FuIGNob29zZQorICAgICAqIHdoZXRoZXIgdG8gYWNxdWlyZSBidWZmZXJzIGZyb20gdGhlIHNpZGViYW5kIHN0cmVhbSBvciBmcm9tIHRoZSBxdWV1ZWQKKyAgICAgKiBidWZmZXJzLgorICAgICAqCisgICAgICogUGFzc2luZyBOVUxMIG9yIGEgZGlmZmVyZW50IHN0cmVhbSBoYW5kbGUgd2lsbCBkZXRhY2ggdGhlIHByZXZpb3VzCisgICAgICogaGFuZGxlIGlmIGFueS4KKyAgICAgKi8KKyAgICBzZXRTaWRlYmFuZFN0cmVhbSgKKyAgICAgICAgICAgIGhhbmRsZSBzdHJlYW0KKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQWxsb2NhdGVzIGJ1ZmZlcnMgYmFzZWQgb24gdGhlIGdpdmVuIGRpbWVuc2lvbnMvZm9ybWF0LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGFsbG9jYXRlIHVwIHRvIHRoZSBtYXhpbXVtIG51bWJlciBvZiBidWZmZXJzCisgICAgICogcGVybWl0dGVkIGJ5IHRoZSBjdXJyZW50IEJ1ZmZlclF1ZXVlIGNvbmZpZ3VyYXRpb24uIEl0IHdpbGwgdXNlIHRoZQorICAgICAqIGdpdmVuIGZvcm1hdCwgZGltZW5zaW9ucywgYW5kIHVzYWdlIGJpdHMsIHdoaWNoIGFyZSBpbnRlcnByZXRlZCBpbiB0aGUKKyAgICAgKiBzYW1lIHdheSBhcyBmb3IgZGVxdWV1ZUJ1ZmZlciwgYW5kIHRoZSBhc3luYyBmbGFnIG11c3QgYmUgc2V0IHRoZSBzYW1lCisgICAgICogd2F5IGFzIGZvciBkZXF1ZXVlQnVmZmVyIHRvIGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IG51bWJlciBvZiBidWZmZXJzIGFyZQorICAgICAqIGFsbG9jYXRlZC4gVGhpcyBpcyBtb3N0IHVzZWZ1bCB0byBhdm9pZCBhbiBhbGxvY2F0aW9uIGRlbGF5IGR1cmluZworICAgICAqIGRlcXVldWVCdWZmZXIuIElmIHRoZXJlIGFyZSBhbHJlYWR5IHRoZSBtYXhpbXVtIG51bWJlciBvZiBidWZmZXJzCisgICAgICogYWxsb2NhdGVkLCB0aGlzIGZ1bmN0aW9uIGhhcyBubyBlZmZlY3QuCisgICAgICovCisgICAgYWxsb2NhdGVCdWZmZXJzKAorICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsCisgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICB1aW50MzJfdCB1c2FnZQorICAgICAgICApOworCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIGRlcXVldWVCdWZmZXIgaXMgYWxsb3dlZCB0byBhbGxvY2F0ZSBuZXcgYnVmZmVycy4KKyAgICAgKgorICAgICAqIE5vcm1hbGx5IGRlcXVldWVCdWZmZXIgZG9lcyBub3QgZGlzY3JpbWluYXRlIGJldHdlZW4gZnJlZSBzbG90cyB3aGljaAorICAgICAqIGFscmVhZHkgaGF2ZSBhbiBhbGxvY2F0ZWQgYnVmZmVyIGFuZCB0aG9zZSB3aGljaCBkbyBub3QsIGFuZCB3aWxsCisgICAgICogYWxsb2NhdGUgYSBuZXcgYnVmZmVyIGlmIHRoZSBzbG90IGRvZXNuJ3QgaGF2ZSBhIGJ1ZmZlciBvciBpZiB0aGUgc2xvdCdzCisgICAgICogYnVmZmVyIGRvZXNuJ3QgbWF0Y2ggdGhlIHJlcXVlc3RlZCBzaXplLCBmb3JtYXQsIG9yIHVzYWdlLiBUaGlzIG1ldGhvZAorICAgICAqIGFsbG93cyB0aGUgcHJvZHVjZXIgdG8gcmVzdHJpY3QgdGhlIGVsaWdpYmxlIHNsb3RzIHRvIHRob3NlIHdoaWNoIGFscmVhZHkKKyAgICAgKiBoYXZlIGFuIGFsbG9jYXRlZCBidWZmZXIgb2YgdGhlIGNvcnJlY3Qgc2l6ZSwgZm9ybWF0LCBhbmQgdXNhZ2UuIElmIG5vCisgICAgICogZWxpZ2libGUgc2xvdCBpcyBhdmFpbGFibGUsIGRlcXVldWVCdWZmZXIgd2lsbCBibG9jayBvciByZXR1cm4gYW4gZXJyb3IKKyAgICAgKiBhcyB1c3VhbC4KKyAgICAgKi8KKyAgICBhbGxvd0FsbG9jYXRpb24oCisgICAgICAgICAgICBib29sIGFsbG93CisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgZ2VuZXJhdGlvbiBudW1iZXIgb2YgdGhlIEJ1ZmZlclF1ZXVlLgorICAgICAqCisgICAgICogVGhpcyBnZW5lcmF0aW9uIG51bWJlciB3aWxsIGJlIGluc2VydGVkIGludG8gYW55IGJ1ZmZlcnMgYWxsb2NhdGVkIGJ5IHRoZQorICAgICAqIEJ1ZmZlclF1ZXVlLCBhbmQgYW55IGF0dGVtcHRzIHRvIGF0dGFjaCBhIGJ1ZmZlciB3aXRoIGEgZGlmZmVyZW50CisgICAgICogZ2VuZXJhdGlvbiBudW1iZXIgd2lsbCBmYWlsLiBCdWZmZXJzIGFscmVhZHkgaW4gdGhlIHF1ZXVlIGFyZSBub3QKKyAgICAgKiBhZmZlY3RlZCBhbmQgd2lsbCByZXRhaW4gdGhlaXIgY3VycmVudCBnZW5lcmF0aW9uIG51bWJlci4gVGhlIGdlbmVyYXRpb24KKyAgICAgKiBudW1iZXIgZGVmYXVsdHMgdG8gMC4KKyAgICAgKi8KKyAgICBzZXRHZW5lcmF0aW9uTnVtYmVyKAorICAgICAgICAgICAgdWludDMyX3QgZ2VuZXJhdGlvbk51bWJlcgorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBjb25uZWN0ZWQgY29uc3VtZXIuCisgICAgICovCisgICAgZ2V0Q29uc3VtZXJOYW1lKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBzdHJpbmcgbmFtZQorICAgICAgICApOworCisgICAgLyoqCisgICAgICogVXNlZCB0byBlbmFibGUvZGlzYWJsZSBzaGFyZWQgYnVmZmVyIG1vZGUuCisgICAgICoKKyAgICAgKiBXaGVuIHNoYXJlZCBidWZmZXIgbW9kZSBpcyBlbmFibGVkIHRoZSBmaXJzdCBidWZmZXIgdGhhdCBpcyBxdWV1ZWQgb3IKKyAgICAgKiBkZXF1ZXVlZCB3aWxsIGJlIGNhY2hlZCBhbmQgcmV0dXJuZWQgdG8gYWxsIHN1YnNlcXVlbnQgY2FsbHMgdG8KKyAgICAgKiBkZXF1ZXVlQnVmZmVyIGFuZCBhY3F1aXJlQnVmZmVyLiBUaGlzIGFsbG93cyB0aGUgcHJvZHVjZXIgYW5kIGNvbnN1bWVyIHRvCisgICAgICogc2ltdWx0YW5lb3VzbHkgYWNjZXNzIHRoZSBzYW1lIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBzZXRTaGFyZWRCdWZmZXJNb2RlKAorICAgICAgICAgICAgYm9vbCBzaGFyZWRCdWZmZXJNb2RlCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFVzZWQgdG8gZW5hYmxlL2Rpc2FibGUgYXV0by1yZWZyZXNoLgorICAgICAqCisgICAgICogQXV0byByZWZyZXNoIGhhcyBubyBlZmZlY3Qgb3V0c2lkZSBvZiBzaGFyZWQgYnVmZmVyIG1vZGUuIEluIHNoYXJlZAorICAgICAqIGJ1ZmZlciBtb2RlLCB3aGVuIGVuYWJsZWQsIGl0IGluZGljYXRlcyB0byB0aGUgY29uc3VtZXIgdGhhdCBpdCBzaG91bGQKKyAgICAgKiBhdHRlbXB0IHRvIGFjcXVpcmUgYnVmZmVycyBldmVuIGlmIGl0IGlzIG5vdCBhd2FyZSBvZiBhbnkgYmVpbmcKKyAgICAgKiBhdmFpbGFibGUuCisgICAgICovCisgICAgc2V0QXV0b1JlZnJlc2goCisgICAgICAgICAgICBib29sIGF1dG9SZWZyZXNoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldHMgaG93IGxvbmcgZGVxdWV1ZUJ1ZmZlciB3aWxsIHdhaXQgZm9yIGEgYnVmZmVyIHRvIGJlY29tZSBhdmFpbGFibGUKKyAgICAgKiBiZWZvcmUgcmV0dXJuaW5nIGFuIGVycm9yIChUSU1FRF9PVVQpLgorICAgICAqCisgICAgICogVGhpcyB0aW1lb3V0IGFsc28gYWZmZWN0cyB0aGUgYXR0YWNoQnVmZmVyIGNhbGwsIHdoaWNoIHdpbGwgYmxvY2sgaWYKKyAgICAgKiB0aGVyZSBpcyBub3QgYSBmcmVlIHNsb3QgYXZhaWxhYmxlIGludG8gd2hpY2ggdGhlIGF0dGFjaGVkIGJ1ZmZlciBjYW4gYmUKKyAgICAgKiBwbGFjZWQuCisgICAgICoKKyAgICAgKiBCeSBkZWZhdWx0LCB0aGUgQnVmZmVyUXVldWUgd2lsbCB3YWl0IGZvcmV2ZXIsIHdoaWNoIGlzIGluZGljYXRlZCBieSBhCisgICAgICogdGltZW91dCBvZiAtMS4gSWYgc2V0ICh0byBhIHZhbHVlIG90aGVyIHRoYW4gLTEpLCB0aGlzIHdpbGwgZGlzYWJsZQorICAgICAqIG5vbi1ibG9ja2luZyBtb2RlIGFuZCBpdHMgY29ycmVzcG9uZGluZyBzcGFyZSBidWZmZXIgKHdoaWNoIGlzIHVzZWQgdG8KKyAgICAgKiBlbnN1cmUgYSBidWZmZXIgaXMgYWx3YXlzIGF2YWlsYWJsZSkuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSB2YWx1ZSBvdGhlciB0aGFuIE5PX0VSUk9SIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIEJBRF9WQUxVRSAtIEZhaWx1cmUgdG8gYWRqdXN0IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHNsb3RzLiBUaGlzIGNhbgorICAgICAqICAgICAgICAgICAgICAgaGFwcGVuIGJlY2F1c2Ugb2YgdHJ5aW5nIHRvIGFsbG9jYXRlL2RlYWxsb2NhdGUgdGhlIGFzeW5jCisgICAgICogICAgICAgICAgICAgICBidWZmZXIuCisgICAgICovCisgICAgc2V0RGVxdWV1ZVRpbWVvdXQoCisgICAgICAgICAgICBpbnQ2NF90IHRpbWVvdXROcworICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsYXN0IHF1ZXVlZCBidWZmZXIgYWxvbmcgd2l0aCBhIGZlbmNlIHdoaWNoIG11c3Qgc2lnbmFsCisgICAgICogYmVmb3JlIHRoZSBjb250ZW50cyBvZiB0aGUgYnVmZmVyIGFyZSByZWFkLiBJZiB0aGVyZSBhcmUgbm8gYnVmZmVycyBpbgorICAgICAqIHRoZSBxdWV1ZSwgYnVmZmVyLm5hdGl2ZUhhbmRsZSBhbmQgZmVuY2Ugd2lsbCBiZSBudWxsIGhhbmRsZXMuCisgICAgICoKKyAgICAgKiB0cmFuc2Zvcm1NYXRyaXggaXMgbWVhbmluZ2xlc3MgaWYgYnVmZmVyLm5hdGl2ZUhhbmRsZSBpcyBudWxsLgorICAgICAqLworICAgIGdldExhc3RRdWV1ZWRCdWZmZXIoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBBbndCdWZmZXIgYnVmZmVyLAorICAgICAgICAgICAgRmVuY2UgZmVuY2UsCisgICAgICAgICAgICBmbG9hdFsxNl0gdHJhbnNmb3JtTWF0cml4CisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBmcmFtZSBldmVudHMgdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiByZXRyaWV2ZWQuCisgICAgICovCisgICAgZ2V0RnJhbWVUaW1lc3RhbXBzKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBGcmFtZUV2ZW50SGlzdG9yeURlbHRhIHRpbWVTdGFtcHMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB1bmlxdWUgaWQgZm9yIHRoaXMgQnVmZmVyUXVldWUuCisgICAgICovCisgICAgZ2V0VW5pcXVlSWQoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICB1aW50NjRfdCBvdXRJZAorICAgICAgICApOworCit9OworCisKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9JUHJvZHVjZXJMaXN0ZW5lci5oYWwgYi9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSVByb2R1Y2VyTGlzdGVuZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNmE1MDAKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSVByb2R1Y2VyTGlzdGVuZXIuaGFsCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9ndWkvSVByb2R1Y2VyTGlzdGVuZXIuaDogSVByb2R1Y2VyTGlzdGVuZXIKKyAqIFRoaXMgaXMgYSB3cmFwcGVyL3dyYXBwZWQgSEFMIGludGVyZmFjZSBmb3IgdGhlIGFjdHVhbCBiaW5kZXIgaW50ZXJmYWNlLgorICovCitpbnRlcmZhY2UgSVByb2R1Y2VyTGlzdGVuZXIgeworICAgIG9uZXdheSBvbkJ1ZmZlclJlbGVhc2VkKCk7CisgICAgbmVlZHNSZWxlYXNlTm90aWZ5KCkgZ2VuZXJhdGVzIChib29sIHJlc3VsdCk7Cit9OworCmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21tb24vMS4wL0FuZHJvaWQuYnAgYi9ncmFwaGljcy9jb21tb24vMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Q5YWE5MAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbW1vbi8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDU2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi8xLjAvdHlwZXMuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vMS4wL2h3dHlwZXMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbW1vbi8xLjAvQW5kcm9pZC5tayBiL2dyYXBoaWNzL2NvbW1vbi8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjlhNWY0Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tbW9uLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzI5IEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbi1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEJ1ZmZlclVzYWdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9CdWZmZXJVc2FnZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXMuQnVmZmVyVXNhZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbG9yTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uL1YxXzAvQ29sb3JNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5Db2xvck1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbG9yVHJhbnNmb3JtKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9Db2xvclRyYW5zZm9ybS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXMuQ29sb3JUcmFuc2Zvcm0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKERhdGFzcGFjZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uL1YxXzAvRGF0YXNwYWNlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5EYXRhc3BhY2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhkcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uL1YxXzAvSGRyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5IZHIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBpeGVsRm9ybWF0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9QaXhlbEZvcm1hdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXMuUGl4ZWxGb3JtYXQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRyYW5zZm9ybSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uL1YxXzAvVHJhbnNmb3JtLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5UcmFuc2Zvcm0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb24tVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQnVmZmVyVXNhZ2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi9WMV8wL0J1ZmZlclVzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5CdWZmZXJVc2FnZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29sb3JNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9Db2xvck1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzLkNvbG9yTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29sb3JUcmFuc2Zvcm0pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi9WMV8wL0NvbG9yVHJhbnNmb3JtLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5Db2xvclRyYW5zZm9ybQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRGF0YXNwYWNlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9EYXRhc3BhY2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzLkRhdGFzcGFjZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGRyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9IZHIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzLkhkcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUGl4ZWxGb3JtYXQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi9WMV8wL1BpeGVsRm9ybWF0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5QaXhlbEZvcm1hdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVHJhbnNmb3JtKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9UcmFuc2Zvcm0uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzLlRyYW5zZm9ybQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb24tVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9Db25zdGFudHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tbW9uLzEuMC90eXBlcy5oYWwgYi9ncmFwaGljcy9jb21tb24vMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzY5ZmFkCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tbW9uLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxNDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA7CisKKy8qKgorICogQ29tbW9uIGVudW1lcmF0aW9uIGFuZCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMgZm9yIGFsbCBncmFwaGljcyBIQUxzLgorICovCisKKy8qKgorICogUGl4ZWwgZm9ybWF0cyBmb3IgZ3JhcGhpY3MgYnVmZmVycy4KKyAqLworQGV4cG9ydChuYW1lPSJhbmRyb2lkX3BpeGVsX2Zvcm1hdF90IiwgdmFsdWVfcHJlZml4PSJIQUxfUElYRUxfRk9STUFUXyIpCitlbnVtIFBpeGVsRm9ybWF0IDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogMzItYml0IGZvcm1hdCB0aGF0IGhhcyA4LWJpdCBSLCBHLCBCLCBhbmQgQSBjb21wb25lbnRzLCBpbiB0aGF0IG9yZGVyLAorICAgICAqIGZyb20gdGhlIGxvd2VzdCBtZW1vcnkgYWRkcmVzcyB0byB0aGUgaGlnaGVzdCBtZW1vcnkgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIFRoZSBjb21wb25lbnQgdmFsdWVzIGFyZSB1bnNpZ25lZCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSBbMCwgMV0sIHdob3NlCisgICAgICogaW50ZXJwcmV0YXRpb24gaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIFJHQkFfODg4OCAgICAgICAgICA9IDB4MSwKKworICAgIC8qKgorICAgICAqIDMyLWJpdCBmb3JtYXQgdGhhdCBoYXMgOC1iaXQgUiwgRywgQiwgYW5kIHVudXNlZCBjb21wb25lbnRzLCBpbiB0aGF0CisgICAgICogb3JkZXIsIGZyb20gdGhlIGxvd2VzdCBtZW1vcnkgYWRkcmVzcyB0byB0aGUgaGlnaGVzdCBtZW1vcnkgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIFRoZSBjb21wb25lbnQgdmFsdWVzIGFyZSB1bnNpZ25lZCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSBbMCwgMV0sIHdob3NlCisgICAgICogaW50ZXJwcmV0YXRpb24gaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIFJHQlhfODg4OCAgICAgICAgICA9IDB4MiwKKworICAgIC8qKgorICAgICAqIDI0LWJpdCBmb3JtYXQgdGhhdCBoYXMgOC1iaXQgUiwgRywgYW5kIEIgY29tcG9uZW50cywgaW4gdGhhdCBvcmRlciwKKyAgICAgKiBmcm9tIHRoZSBsb3dlc3QgbWVtb3J5IGFkZHJlc3MgdG8gdGhlIGhpZ2hlc3QgbWVtb3J5IGFkZHJlc3MuCisgICAgICoKKyAgICAgKiBUaGUgY29tcG9uZW50IHZhbHVlcyBhcmUgdW5zaWduZWQgbm9ybWFsaXplZCB0byB0aGUgcmFuZ2UgWzAsIDFdLCB3aG9zZQorICAgICAqIGludGVycHJldGF0aW9uIGlzIGRlZmluZWQgYnkgdGhlIGRhdGFzcGFjZS4KKyAgICAgKi8KKyAgICBSR0JfODg4ICAgICAgICAgICAgPSAweDMsCisKKyAgICAvKioKKyAgICAgKiAxNi1iaXQgcGFja2VkIGZvcm1hdCB0aGF0IGhhcyA1LWJpdCBSLCA2LWJpdCBHLCBhbmQgNS1iaXQgQiBjb21wb25lbnRzLAorICAgICAqIGluIHRoYXQgb3JkZXIsIGZyb20gdGhlIG1vc3Qtc2lnZmluaWNhbnQgYml0cyB0byB0aGUgbGVhc3Qtc2lnbmlmaWNhbnQKKyAgICAgKiBiaXRzLgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIFswLCAxXSwgd2hvc2UKKyAgICAgKiBpbnRlcnByZXRhdGlvbiBpcyBkZWZpbmVkIGJ5IHRoZSBkYXRhc3BhY2UuCisgICAgICovCisgICAgUkdCXzU2NSAgICAgICAgICAgID0gMHg0LAorCisgICAgLyoqCisgICAgICogMzItYml0IGZvcm1hdCB0aGF0IGhhcyA4LWJpdCBCLCBHLCBSLCBhbmQgQSBjb21wb25lbnRzLCBpbiB0aGF0IG9yZGVyLAorICAgICAqIGZyb20gdGhlIGxvd2VzdCBtZW1vcnkgYWRkcmVzcyB0byB0aGUgaGlnaGVzdCBtZW1vcnkgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIFRoZSBjb21wb25lbnQgdmFsdWVzIGFyZSB1bnNpZ25lZCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSBbMCwgMV0sIHdob3NlCisgICAgICogaW50ZXJwcmV0YXRpb24gaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIEJHUkFfODg4OCAgICAgICAgICA9IDB4NSwKKworICAgIC8qKgorICAgICAqIExlZ2FjeSBmb3JtYXRzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgWUNCQ1JfNDIwXzg4OC4KKyAgICAgKi8KKyAgICBZQ0JDUl80MjJfU1AgICAgICAgPSAweDEwLCAgLy8gTlYxNgorICAgIFlDUkNCXzQyMF9TUCAgICAgICA9IDB4MTEsICAvLyBOVjIxCisgICAgWUNCQ1JfNDIyX0kgICAgICAgID0gMHgxNCwgIC8vIFlVWTIKKworICAgIC8qKgorICAgICAqIDY0LWJpdCBmb3JtYXQgdGhhdCBoYXMgMTYtYml0IFIsIEcsIEIsIGFuZCBBIGNvbXBvbmVudHMsIGluIHRoYXQgb3JkZXIsCisgICAgICogZnJvbSB0aGUgbG93ZXN0IG1lbW9yeSBhZGRyZXNzIHRvIHRoZSBoaWdoZXN0IG1lbW9yeSBhZGRyZXNzLgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHNpZ25lZCBmbG9hdHMsIHdob3NlIGludGVycHJldGF0aW9uIGlzIGRlZmluZWQKKyAgICAgKiBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIFJHQkFfRlAxNiAgICAgICAgICA9IDB4MTYsCisKKyAgICAvKioKKyAgICAgKiBSQVcxNiBpcyBhIHNpbmdsZS1jaGFubmVsLCAxNi1iaXQsIGxpdHRsZSBlbmRpYW4gZm9ybWF0LCB0eXBpY2FsbHkKKyAgICAgKiByZXByZXNlbnRpbmcgcmF3IEJheWVyLXBhdHRlcm4gaW1hZ2VzIGZyb20gYW4gaW1hZ2Ugc2Vuc29yLCB3aXRoIG1pbmltYWwKKyAgICAgKiBwcm9jZXNzaW5nLgorICAgICAqCisgICAgICogVGhlIGV4YWN0IHBpeGVsIGxheW91dCBvZiB0aGUgZGF0YSBpbiB0aGUgYnVmZmVyIGlzIHNlbnNvci1kZXBlbmRlbnQsIGFuZAorICAgICAqIG5lZWRzIHRvIGJlIHF1ZXJpZWQgZnJvbSB0aGUgY2FtZXJhIGRldmljZS4KKyAgICAgKgorICAgICAqIEdlbmVyYWxseSwgbm90IGFsbCAxNiBiaXRzIGFyZSB1c2VkOyBtb3JlIGNvbW1vbiB2YWx1ZXMgYXJlIDEwIG9yIDEyCisgICAgICogYml0cy4gSWYgbm90IGFsbCBiaXRzIGFyZSB1c2VkLCB0aGUgbG93ZXItb3JkZXIgYml0cyBhcmUgZmlsbGVkIGZpcnN0LgorICAgICAqIEFsbCBwYXJhbWV0ZXJzIHRvIGludGVycHJldCB0aGUgcmF3IGRhdGEgKGJsYWNrIGFuZCB3aGl0ZSBwb2ludHMsCisgICAgICogY29sb3Igc3BhY2UsIGV0YykgbXVzdCBiZSBxdWVyaWVkIGZyb20gdGhlIGNhbWVyYSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBhc3N1bWVzCisgICAgICogLSBhbiBldmVuIHdpZHRoCisgICAgICogLSBhbiBldmVuIGhlaWdodAorICAgICAqIC0gYSBob3Jpem9udGFsIHN0cmlkZSBtdWx0aXBsZSBvZiAxNiBwaXhlbHMKKyAgICAgKiAtIGEgdmVydGljYWwgc3RyaWRlIGVxdWFsIHRvIHRoZSBoZWlnaHQKKyAgICAgKiAtIHN0cmlkZXMgYXJlIHNwZWNpZmllZCBpbiBwaXhlbHMsIG5vdCBpbiBieXRlcworICAgICAqCisgICAgICogICBzaXplID0gc3RyaWRlICogaGVpZ2h0ICogMgorICAgICAqCisgICAgICogVGhpcyBmb3JtYXQgbXVzdCBiZSBhY2NlcHRlZCBieSB0aGUgYWxsb2NhdG9yIHdoZW4gdXNlZCB3aXRoIHRoZQorICAgICAqIGZvbGxvd2luZyB1c2FnZSBmbGFnczoKKyAgICAgKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OkNBTUVSQV8qCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q1BVXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpSRU5ERVJTQ1JJUFQKKyAgICAgKgorICAgICAqIFRoZSBtYXBwaW5nIG9mIHRoZSBkYXRhc3BhY2UgdG8gYnVmZmVyIGNvbnRlbnRzIGZvciBSQVcxNiBpcyBhcworICAgICAqIGZvbGxvd3M6CisgICAgICoKKyAgICAgKiAgRGF0YXNwYWNlIHZhbHVlICAgICAgICAgICAgICAgfCBCdWZmZXIgY29udGVudHMKKyAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICogIERhdGFzcGFjZTo6QVJCSVRSQVJZICAgICAgICAgIHwgUmF3IGltYWdlIHNlbnNvciBkYXRhLCBsYXlvdXQgaXMgYXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkZWZpbmVkIGFib3ZlLgorICAgICAqICBEYXRhc3BhY2U6OkRFUFRIICAgICAgICAgICAgICB8IFVucHJvY2Vzc2VkIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCByYXcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkZXB0aCBtZWFzdXJlbWVudHMsIG9wYXF1ZSB3aXRoIDE2IGJpdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNhbXBsZXMuCisgICAgICogIE90aGVyICAgICAgICAgICAgICAgICAgICAgICAgIHwgVW5zdXBwb3J0ZWQKKyAgICAgKi8KKyAgICBSQVcxNiAgICAgICAgICAgICAgPSAweDIwLAorCisgICAgLyoqCisgICAgICogQkxPQiBpcyB1c2VkIHRvIGNhcnJ5IHRhc2stc3BlY2lmaWMgZGF0YSB3aGljaCBkb2VzIG5vdCBoYXZlIGEgc3RhbmRhcmQKKyAgICAgKiBpbWFnZSBzdHJ1Y3R1cmUuIFRoZSBkZXRhaWxzIG9mIHRoZSBmb3JtYXQgYXJlIGxlZnQgdG8gdGhlIHR3bworICAgICAqIGVuZHBvaW50cy4KKyAgICAgKgorICAgICAqIEEgdHlwaWNhbCB1c2UgY2FzZSBpcyBmb3IgdHJhbnNwb3J0aW5nIEpQRUctY29tcHJlc3NlZCBpbWFnZXMgZnJvbSB0aGUKKyAgICAgKiBDYW1lcmEgSEFMIHRvIHRoZSBmcmFtZXdvcmsgb3IgdG8gYXBwbGljYXRpb25zLgorICAgICAqCisgICAgICogQnVmZmVycyBvZiB0aGlzIGZvcm1hdCBtdXN0IGhhdmUgYSBoZWlnaHQgb2YgMSwgYW5kIHdpZHRoIGVxdWFsIHRvIHRoZWlyCisgICAgICogc2l6ZSBpbiBieXRlcy4KKyAgICAgKgorICAgICAqIFRoZSBtYXBwaW5nIG9mIHRoZSBkYXRhc3BhY2UgdG8gYnVmZmVyIGNvbnRlbnRzIGZvciBCTE9CIGlzIGFzCisgICAgICogZm9sbG93czoKKyAgICAgKgorICAgICAqICBEYXRhc3BhY2UgdmFsdWUgICAgICAgICAgICAgICB8IEJ1ZmZlciBjb250ZW50cworICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKiAgRGF0YXNwYWNlOjpKRklGICAgICAgICAgICAgICAgfCBBbiBlbmNvZGVkIEpQRUcgaW1hZ2UKKyAgICAgKiAgRGF0YXNwYWNlOjpERVBUSCAgICAgICAgICAgICAgfCBBbiBhbmRyb2lkX2RlcHRoX3BvaW50cyBidWZmZXIKKyAgICAgKiAgRGF0YXNwYWNlOjpTRU5TT1IgICAgICAgICAgICAgfCBTZW5zb3IgZXZlbnQgZGF0YS4KKyAgICAgKiAgT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgfCBVbnN1cHBvcnRlZAorICAgICAqLworICAgIEJMT0IgICAgICAgICAgICAgICA9IDB4MjEsCisKKyAgICAvKioKKyAgICAgKiBBIGZvcm1hdCBpbmRpY2F0aW5nIHRoYXQgdGhlIGNob2ljZSBvZiBmb3JtYXQgaXMgZW50aXJlbHkgdXAgdG8gdGhlCisgICAgICogYWxsb2NhdG9yLgorICAgICAqCisgICAgICogVGhlIGFsbG9jYXRvciBzaG91bGQgZXhhbWluZSB0aGUgdXNhZ2UgYml0cyBwYXNzZWQgaW4gd2hlbiBhbGxvY2F0aW5nIGEKKyAgICAgKiBidWZmZXIgd2l0aCB0aGlzIGZvcm1hdCwgYW5kIGl0IHNob3VsZCBkZXJpdmUgdGhlIHBpeGVsIGZvcm1hdCBmcm9tCisgICAgICogdGhvc2UgdXNhZ2UgZmxhZ3MuIFRoaXMgZm9ybWF0IG11c3QgbmV2ZXIgYmUgdXNlZCB3aXRoIGFueSBvZiB0aGUKKyAgICAgKiBCdWZmZXJVc2FnZTo6Q1BVXyogdXNhZ2UgZmxhZ3MuCisgICAgICoKKyAgICAgKiBFdmVuIHdoZW4gdGhlIGludGVybmFsbHkgY2hvc2VuIGZvcm1hdCBoYXMgYW4gYWxwaGEgY29tcG9uZW50LCB0aGUKKyAgICAgKiBjbGllbnRzIG11c3QgYXNzdW1lIHRoZSBhbHBoYSB2bGF1ZSB0byBiZSAxLjAuCisgICAgICoKKyAgICAgKiBUaGUgaW50ZXJwcmV0YXRpb24gb2YgdGhlIGNvbXBvbmVudCB2YWx1ZXMgaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIElNUExFTUVOVEFUSU9OX0RFRklORUQgPSAweDIyLAorCisgICAgLyoqCisgICAgICogVGhpcyBmb3JtYXQgYWxsb3dzIHBsYXRmb3JtcyB0byB1c2UgYW4gZWZmaWNpZW50IFlDYkNyL1lDckNiIDQ6MjowCisgICAgICogYnVmZmVyIGxheW91dCwgd2hpbGUgc3RpbGwgZGVzY3JpYmluZyB0aGUgZ2VuZXJhbCBmb3JtYXQgaW4gYQorICAgICAqIGxheW91dC1pbmRlcGVuZGVudCBtYW5uZXIuIFdoaWxlIGNhbGxlZCBZQ2JDciwgaXQgY2FuIGJlIHVzZWQgdG8KKyAgICAgKiBkZXNjcmliZSBmb3JtYXRzIHdpdGggZWl0aGVyIGNocm9tYXRpYyBvcmRlcmluZywgYXMgd2VsbCBhcworICAgICAqIHdob2xlIHBsYW5hciBvciBzZW1pcGxhbmFyIGxheW91dHMuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiBCdWZmZXJVc2FnZTo6Q1BVXyoKKyAgICAgKiBhcmUgc2V0LgorICAgICAqCisgICAgICogQnVmZmVycyB3aXRoIHRoaXMgZm9ybWF0IG11c3QgYmUgbG9ja2VkIHdpdGggSU1hcHBlcjo6bG9ja1lDYkNyLgorICAgICAqIExvY2tpbmcgd2l0aCBJTWFwcGVyOjpsb2NrIG11c3QgcmV0dXJuIGFuIGVycm9yLgorICAgICAqCisgICAgICogVGhlIGludGVycHJldGF0aW9uIG9mIHRoZSBjb21wb25lbnQgdmFsdWVzIGlzIGRlZmluZWQgYnkgdGhlIGRhdGFzcGFjZS4KKyAgICAgKi8KKyAgICBZQ0JDUl80MjBfODg4ICAgICAgPSAweDIzLAorCisgICAgLyoqCisgICAgICogUkFXX09QQVFVRSBpcyBhIGZvcm1hdCBmb3IgdW5wcm9jZXNzZWQgcmF3IGltYWdlIGJ1ZmZlcnMgY29taW5nIGZyb20gYW4KKyAgICAgKiBpbWFnZSBzZW5zb3IuIFRoZSBhY3R1YWwgc3RydWN0dXJlIG9mIGJ1ZmZlcnMgb2YgdGhpcyBmb3JtYXQgaXMKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiB1c2VkIHdpdGggdGhlCisgICAgICogZm9sbG93aW5nIHVzYWdlIGZsYWdzOgorICAgICAqCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q0FNRVJBXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDUFVfKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OlJFTkRFUlNDUklQVAorICAgICAqCisgICAgICogVGhlIG1hcHBpbmcgb2YgdGhlIGRhdGFzcGFjZSB0byBidWZmZXIgY29udGVudHMgZm9yIFJBV19PUEFRVUUgaXMgYXMKKyAgICAgKiBmb2xsb3dzOgorICAgICAqCisgICAgICogIERhdGFzcGFjZSB2YWx1ZSAgICAgICAgICAgICAgIHwgQnVmZmVyIGNvbnRlbnRzCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqICBEYXRhc3BhY2U6OkFSQklUUkFSWSAgICAgICAgICB8IFJhdyBpbWFnZSBzZW5zb3IgZGF0YS4KKyAgICAgKiAgT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgfCBVbnN1cHBvcnRlZAorICAgICAqLworICAgIFJBV19PUEFRVUUgICAgICAgICA9IDB4MjQsCisKKyAgICAvKioKKyAgICAgKiBSQVcxMCBpcyBhIHNpbmdsZS1jaGFubmVsLCAxMC1iaXQgcGVyIHBpeGVsLCBkZW5zZWx5IHBhY2tlZCBpbiBlYWNoIHJvdywKKyAgICAgKiB1bnByb2Nlc3NlZCBmb3JtYXQsIHVzdWFsbHkgcmVwcmVzZW50aW5nIHJhdyBCYXllci1wYXR0ZXJuIGltYWdlcyBjb21pbmcgZnJvbQorICAgICAqIGFuIGltYWdlIHNlbnNvci4KKyAgICAgKgorICAgICAqIEluIGFuIGltYWdlIGJ1ZmZlciB3aXRoIHRoaXMgZm9ybWF0LCBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCBwaXhlbCBvZiBlYWNoCisgICAgICogcm93LCBlYWNoIDQgY29uc2VjdXRpdmUgcGl4ZWxzIGFyZSBwYWNrZWQgaW50byA1IGJ5dGVzICg0MCBiaXRzKS4gRWFjaCBvbmUKKyAgICAgKiBvZiB0aGUgZmlyc3QgNCBieXRlcyBjb250YWlucyB0aGUgdG9wIDggYml0cyBvZiBlYWNoIHBpeGVsLCBUaGUgZmlmdGggYnl0ZQorICAgICAqIGNvbnRhaW5zIHRoZSAyIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgdGhlIDQgcGl4ZWxzLCB0aGUgZXhhY3QgbGF5b3V0IGRhdGEKKyAgICAgKiBmb3IgZWFjaCA0IGNvbnNlY3V0aXZlIHBpeGVscyBpcyBpbGx1c3RyYXRlZCBiZWxvdyAoUGlbal0gc3RhbmRzIGZvciB0aGUganRoCisgICAgICogYml0IG9mIHRoZSBpdGggcGl4ZWwpOgorICAgICAqCisgICAgICogICAgICAgICAgYml0IDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0IDAKKyAgICAgKiAgICAgICAgICA9PT09PXw9PT09PXw9PT09PXw9PT09PXw9PT09PXw9PT09PXw9PT09PXw9PT09PXwKKyAgICAgKiBCeXRlIDA6IHxQMFs5XXxQMFs4XXxQMFs3XXxQMFs2XXxQMFs1XXxQMFs0XXxQMFszXXxQMFsyXXwKKyAgICAgKiAgICAgICAgIHwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwKKyAgICAgKiBCeXRlIDE6IHxQMVs5XXxQMVs4XXxQMVs3XXxQMVs2XXxQMVs1XXxQMVs0XXxQMVszXXxQMVsyXXwKKyAgICAgKiAgICAgICAgIHwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwKKyAgICAgKiBCeXRlIDI6IHxQMls5XXxQMls4XXxQMls3XXxQMls2XXxQMls1XXxQMls0XXxQMlszXXxQMlsyXXwKKyAgICAgKiAgICAgICAgIHwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwKKyAgICAgKiBCeXRlIDM6IHxQM1s5XXxQM1s4XXxQM1s3XXxQM1s2XXxQM1s1XXxQM1s0XXxQM1szXXxQM1syXXwKKyAgICAgKiAgICAgICAgIHwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwKKyAgICAgKiBCeXRlIDQ6IHxQM1sxXXxQM1swXXxQMlsxXXxQMlswXXxQMVsxXXxQMVswXXxQMFsxXXxQMFswXXwKKyAgICAgKiAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAqCisgICAgICogVGhpcyBmb3JtYXQgYXNzdW1lcworICAgICAqIC0gYSB3aWR0aCBtdWx0aXBsZSBvZiA0IHBpeGVscworICAgICAqIC0gYW4gZXZlbiBoZWlnaHQKKyAgICAgKiAtIGEgdmVydGljYWwgc3RyaWRlIGVxdWFsIHRvIHRoZSBoZWlnaHQKKyAgICAgKiAtIHN0cmlkZXMgYXJlIHNwZWNpZmllZCBpbiBieXRlcywgbm90IGluIHBpeGVscworICAgICAqCisgICAgICogICBzaXplID0gc3RyaWRlICogaGVpZ2h0CisgICAgICoKKyAgICAgKiBXaGVuIHN0cmlkZSBpcyBlcXVhbCB0byB3aWR0aCAqICgxMCAvIDgpLCB0aGVyZSB3aWxsIGJlIG5vIHBhZGRpbmcgYnl0ZXMgYXQKKyAgICAgKiB0aGUgZW5kIG9mIGVhY2ggcm93LCB0aGUgZW50aXJlIGltYWdlIGRhdGEgaXMgZGVuc2VseSBwYWNrZWQuIFdoZW4gc3RyaWRlIGlzCisgICAgICogbGFyZ2VyIHRoYW4gd2lkdGggKiAoMTAgLyA4KSwgcGFkZGluZyBieXRlcyB3aWxsIGJlIHByZXNlbnQgYXQgdGhlIGVuZCBvZiBlYWNoCisgICAgICogcm93IChpbmNsdWRpbmcgdGhlIGxhc3Qgcm93KS4KKyAgICAgKgorICAgICAqIFRoaXMgZm9ybWF0IG11c3QgYmUgYWNjZXB0ZWQgYnkgdGhlIGFsbG9jYXRvciB3aGVuIHVzZWQgd2l0aCB0aGUKKyAgICAgKiBmb2xsb3dpbmcgdXNhZ2UgZmxhZ3M6CisgICAgICoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDQU1FUkFfKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OkNQVV8qCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6UkVOREVSU0NSSVBUCisgICAgICoKKyAgICAgKiBUaGUgbWFwcGluZyBvZiB0aGUgZGF0YXNwYWNlIHRvIGJ1ZmZlciBjb250ZW50cyBmb3IgUkFXMTAgaXMgYXMKKyAgICAgKiBmb2xsb3dzOgorICAgICAqCisgICAgICogIERhdGFzcGFjZSB2YWx1ZSAgICAgICAgICAgICAgIHwgQnVmZmVyIGNvbnRlbnRzCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqICBEYXRhc3BhY2U6OkFSQklUUkFSWSAgICAgICAgICB8IFJhdyBpbWFnZSBzZW5zb3IgZGF0YS4KKyAgICAgKiAgT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgfCBVbnN1cHBvcnRlZAorICAgICAqLworICAgIFJBVzEwICAgICAgICAgICAgICA9IDB4MjUsCisKKyAgICAvKioKKyAgICAgKiBSQVcxMiBpcyBhIHNpbmdsZS1jaGFubmVsLCAxMi1iaXQgcGVyIHBpeGVsLCBkZW5zZWx5IHBhY2tlZCBpbiBlYWNoIHJvdywKKyAgICAgKiB1bnByb2Nlc3NlZCBmb3JtYXQsIHVzdWFsbHkgcmVwcmVzZW50aW5nIHJhdyBCYXllci1wYXR0ZXJuIGltYWdlcyBjb21pbmcgZnJvbQorICAgICAqIGFuIGltYWdlIHNlbnNvci4KKyAgICAgKgorICAgICAqIEluIGFuIGltYWdlIGJ1ZmZlciB3aXRoIHRoaXMgZm9ybWF0LCBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCBwaXhlbCBvZiBlYWNoCisgICAgICogcm93LCBlYWNoIHR3byBjb25zZWN1dGl2ZSBwaXhlbHMgYXJlIHBhY2tlZCBpbnRvIDMgYnl0ZXMgKDI0IGJpdHMpLiBUaGUgZmlyc3QKKyAgICAgKiBhbmQgc2Vjb25kIGJ5dGUgY29udGFpbnMgdGhlIHRvcCA4IGJpdHMgb2YgZmlyc3QgYW5kIHNlY29uZCBwaXhlbC4gVGhlIHRoaXJkCisgICAgICogYnl0ZSBjb250YWlucyB0aGUgNCBsZWFzdCBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSB0d28gcGl4ZWxzLCB0aGUgZXhhY3QgbGF5b3V0CisgICAgICogZGF0YSBmb3IgZWFjaCB0d28gY29uc2VjdXRpdmUgcGl4ZWxzIGlzIGlsbHVzdHJhdGVkIGJlbG93IChQaVtqXSBzdGFuZHMgZm9yCisgICAgICogdGhlIGp0aCBiaXQgb2YgdGhlIGl0aCBwaXhlbCk6CisgICAgICoKKyAgICAgKiAgICAgICAgICAgYml0IDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdCAwCisgICAgICogICAgICAgICAgPT09PT09fD09PT09PXw9PT09PT18PT09PT09fD09PT09PXw9PT09PT18PT09PT09fD09PT09PXwKKyAgICAgKiBCeXRlIDA6IHxQMFsxMV18UDBbMTBdfFAwWyA5XXxQMFsgOF18UDBbIDddfFAwWyA2XXxQMFsgNV18UDBbIDRdfAorICAgICAqICAgICAgICAgfC0tLS0tLXwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18CisgICAgICogQnl0ZSAxOiB8UDFbMTFdfFAxWzEwXXxQMVsgOV18UDFbIDhdfFAxWyA3XXxQMVsgNl18UDFbIDVdfFAxWyA0XXwKKyAgICAgKiAgICAgICAgIHwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18LS0tLS0tfAorICAgICAqIEJ5dGUgMjogfFAxWyAzXXxQMVsgMl18UDFbIDFdfFAxWyAwXXxQMFsgM118UDBbIDJdfFAwWyAxXXxQMFsgMF18CisgICAgICogICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAqCisgICAgICogVGhpcyBmb3JtYXQgYXNzdW1lczoKKyAgICAgKiAtIGEgd2lkdGggbXVsdGlwbGUgb2YgNCBwaXhlbHMKKyAgICAgKiAtIGFuIGV2ZW4gaGVpZ2h0CisgICAgICogLSBhIHZlcnRpY2FsIHN0cmlkZSBlcXVhbCB0byB0aGUgaGVpZ2h0CisgICAgICogLSBzdHJpZGVzIGFyZSBzcGVjaWZpZWQgaW4gYnl0ZXMsIG5vdCBpbiBwaXhlbHMKKyAgICAgKgorICAgICAqICAgc2l6ZSA9IHN0cmlkZSAqIGhlaWdodAorICAgICAqCisgICAgICogV2hlbiBzdHJpZGUgaXMgZXF1YWwgdG8gd2lkdGggKiAoMTIgLyA4KSwgdGhlcmUgd2lsbCBiZSBubyBwYWRkaW5nIGJ5dGVzIGF0CisgICAgICogdGhlIGVuZCBvZiBlYWNoIHJvdywgdGhlIGVudGlyZSBpbWFnZSBkYXRhIGlzIGRlbnNlbHkgcGFja2VkLiBXaGVuIHN0cmlkZSBpcworICAgICAqIGxhcmdlciB0aGFuIHdpZHRoICogKDEyIC8gOCksIHBhZGRpbmcgYnl0ZXMgd2lsbCBiZSBwcmVzZW50IGF0IHRoZSBlbmQgb2YKKyAgICAgKiBlYWNoIHJvdyAoaW5jbHVkaW5nIHRoZSBsYXN0IHJvdykuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiB1c2VkIHdpdGggdGhlCisgICAgICogZm9sbG93aW5nIHVzYWdlIGZsYWdzOgorICAgICAqCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q0FNRVJBXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDUFVfKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OlJFTkRFUlNDUklQVAorICAgICAqCisgICAgICogVGhlIG1hcHBpbmcgb2YgdGhlIGRhdGFzcGFjZSB0byBidWZmZXIgY29udGVudHMgZm9yIFJBVzEyIGlzIGFzCisgICAgICogZm9sbG93czoKKyAgICAgKgorICAgICAqICBEYXRhc3BhY2UgdmFsdWUgICAgICAgICAgICAgICB8IEJ1ZmZlciBjb250ZW50cworICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKiAgRGF0YXNwYWNlOjpBUkJJVFJBUlkgICAgICAgICAgfCBSYXcgaW1hZ2Ugc2Vuc29yIGRhdGEuCisgICAgICogIE90aGVyICAgICAgICAgICAgICAgICAgICAgICAgIHwgVW5zdXBwb3J0ZWQKKyAgICAgKi8KKyAgICBSQVcxMiAgICAgICAgICAgICAgPSAweDI2LAorCisgICAgLyoqIDB4MjcgdG8gMHgyQSBhcmUgcmVzZXJ2ZWQgZm9yIGZsZXhpYmxlIGZvcm1hdHMgKi8KKworICAgIC8qKgorICAgICAqIDMyLWJpdCBwYWNrZWQgZm9ybWF0IHRoYXQgaGFzIDItYml0IEEsIDEwLWJpdCBCLCBHLCBhbmQgUiBjb21wb25lbnRzLAorICAgICAqIGluIHRoYXQgb3JkZXIsIGZyb20gdGhlIG1vc3Qtc2lnZmluaWNhbnQgYml0cyB0byB0aGUgbGVhc3Qtc2lnbmlmaWNhbnQKKyAgICAgKiBiaXRzLgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIFswLCAxXSwgd2hvc2UKKyAgICAgKiBpbnRlcnByZXRhdGlvbiBpcyBkZWZpbmVkIGJ5IHRoZSBkYXRhc3BhY2UuCisgICAgICovCisgICAgUkdCQV8xMDEwMTAyICAgICAgID0gMHgyQiwKKworICAgIC8qKgorICAgICAqIDB4MTAwIC0gMHgxRkYKKyAgICAgKgorICAgICAqIFRoaXMgcmFuZ2UgaXMgcmVzZXJ2ZWQgZm9yIHZlbmRvciBleHRlbnNpb25zLiBGb3JtYXRzIGluIHRoaXMgcmFuZ2UKKyAgICAgKiBtdXN0IHN1cHBvcnQgQnVmZmVyVXNhZ2U6OkdQVV9URVhUVVJFLiBDbGllbnRzIG11c3QgYXNzdW1lIHRoZXkgZG8gbm90CisgICAgICogaGF2ZSBhbiBhbHBoYSBjb21wb25lbnQuCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBZOCBpcyBhIFlVViBwbGFuYXIgZm9ybWF0IGNvbXByaXNlZCBvZiBhIFd4SCBZIHBsYW5lLCB3aXRoIGVhY2ggcGl4ZWwKKyAgICAgKiBiZWluZyByZXByZXNlbnRlZCBieSA4IGJpdHMuIEl0IGlzIGVxdWl2YWxlbnQgdG8ganVzdCB0aGUgWSBwbGFuZSBmcm9tCisgICAgICogWVYxMi4KKyAgICAgKgorICAgICAqIFRoaXMgZm9ybWF0IGFzc3VtZXMKKyAgICAgKiAtIGFuIGV2ZW4gd2lkdGgKKyAgICAgKiAtIGFuIGV2ZW4gaGVpZ2h0CisgICAgICogLSBhIGhvcml6b250YWwgc3RyaWRlIG11bHRpcGxlIG9mIDE2IHBpeGVscworICAgICAqIC0gYSB2ZXJ0aWNhbCBzdHJpZGUgZXF1YWwgdG8gdGhlIGhlaWdodAorICAgICAqCisgICAgICogICBzaXplID0gc3RyaWRlICogaGVpZ2h0CisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiB1c2VkIHdpdGggdGhlCisgICAgICogZm9sbG93aW5nIHVzYWdlIGZsYWdzOgorICAgICAqCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q0FNRVJBXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDUFVfKgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIFswLCAxXSwgd2hvc2UKKyAgICAgKiBpbnRlcnByZXRhdGlvbiBpcyBkZWZpbmVkIGJ5IHRoZSBkYXRhc3BhY2UuCisgICAgICovCisgICAgWTggICAgICAgICAgICAgICAgID0gMHgyMDIwMzg1OSwKKworICAgIC8qKgorICAgICAqIFkxNiBpcyBhIFlVViBwbGFuYXIgZm9ybWF0IGNvbXByaXNlZCBvZiBhIFd4SCBZIHBsYW5lLCB3aXRoIGVhY2ggcGl4ZWwKKyAgICAgKiBiZWluZyByZXByZXNlbnRlZCBieSAxNiBiaXRzLiBJdCBpcyBqdXN0IGxpa2UgWTgsIGJ1dCBoYXMgZG91YmxlIHRoZQorICAgICAqIGJpdHMgcGVyIHBpeGVsIChsaXR0bGUgZW5kaWFuKS4KKyAgICAgKgorICAgICAqIFRoaXMgZm9ybWF0IGFzc3VtZXMKKyAgICAgKiAtIGFuIGV2ZW4gd2lkdGgKKyAgICAgKiAtIGFuIGV2ZW4gaGVpZ2h0CisgICAgICogLSBhIGhvcml6b250YWwgc3RyaWRlIG11bHRpcGxlIG9mIDE2IHBpeGVscworICAgICAqIC0gYSB2ZXJ0aWNhbCBzdHJpZGUgZXF1YWwgdG8gdGhlIGhlaWdodAorICAgICAqIC0gc3RyaWRlcyBhcmUgc3BlY2lmaWVkIGluIHBpeGVscywgbm90IGluIGJ5dGVzCisgICAgICoKKyAgICAgKiAgIHNpemUgPSBzdHJpZGUgKiBoZWlnaHQgKiAyCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiB1c2VkIHdpdGggdGhlCisgICAgICogZm9sbG93aW5nIHVzYWdlIGZsYWdzOgorICAgICAqCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q0FNRVJBXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDUFVfKgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIFswLCAxXSwgd2hvc2UKKyAgICAgKiBpbnRlcnByZXRhdGlvbiBpcyBkZWZpbmVkIGJ5IHRoZSBkYXRhc3BhY2UuIFdoZW4gdGhlIGRhdGFzcGFjZSBpcworICAgICAqIERhdGFzcGFjZTo6REVQVEgsIGVhY2ggcGl4ZWwgaXMgYSBkaXN0YW5jZSB2YWx1ZSBtZWFzdXJlZCBieSBhIGRlcHRoCisgICAgICogY2FtZXJhLCBwbHVzIGFuIGFzc29jaWF0ZWQgY29uZmlkZW5jZSB2YWx1ZS4KKyAgICAgKi8KKyAgICBZMTYgICAgICAgICAgICAgICAgPSAweDIwMzYzMTU5LAorCisgICAgLyoqCisgICAgICogWVYxMiBpcyBhIDQ6MjowIFlDckNiIHBsYW5hciBmb3JtYXQgY29tcHJpc2VkIG9mIGEgV3hIIFkgcGxhbmUgZm9sbG93ZWQKKyAgICAgKiBieSAoVy8yKSB4IChILzIpIENyIGFuZCBDYiBwbGFuZXMuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBhc3N1bWVzCisgICAgICogLSBhbiBldmVuIHdpZHRoCisgICAgICogLSBhbiBldmVuIGhlaWdodAorICAgICAqIC0gYSBob3Jpem9udGFsIHN0cmlkZSBtdWx0aXBsZSBvZiAxNiBwaXhlbHMKKyAgICAgKiAtIGEgdmVydGljYWwgc3RyaWRlIGVxdWFsIHRvIHRoZSBoZWlnaHQKKyAgICAgKgorICAgICAqICAgeV9zaXplID0gc3RyaWRlICogaGVpZ2h0CisgICAgICogICBjX3N0cmlkZSA9IEFMSUdOKHN0cmlkZS8yLCAxNikKKyAgICAgKiAgIGNfc2l6ZSA9IGNfc3RyaWRlICogaGVpZ2h0LzIKKyAgICAgKiAgIHNpemUgPSB5X3NpemUgKyBjX3NpemUgKiAyCisgICAgICogICBjcl9vZmZzZXQgPSB5X3NpemUKKyAgICAgKiAgIGNiX29mZnNldCA9IHlfc2l6ZSArIGNfc2l6ZQorICAgICAqCisgICAgICogVGhpcyByYW5nZSBpcyByZXNlcnZlZCBmb3IgdmVuZG9yIGV4dGVuc2lvbnMuIEZvcm1hdHMgaW4gdGhpcyByYW5nZQorICAgICAqIG11c3Qgc3VwcG9ydCBCdWZmZXJVc2FnZTo6R1BVX1RFWFRVUkUuIENsaWVudHMgbXVzdCBhc3N1bWUgdGhleSBkbyBub3QKKyAgICAgKiBoYXZlIGFuIGFscGhhIGNvbXBvbmVudC4KKyAgICAgKgorICAgICAqIFRoaXMgZm9ybWF0IG11c3QgYmUgYWNjZXB0ZWQgYnkgdGhlIGFsbG9jYXRvciB3aGVuIHVzZWQgd2l0aCB0aGUKKyAgICAgKiBmb2xsb3dpbmcgdXNhZ2UgZmxhZ3M6CisgICAgICoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDQU1FUkFfKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OkNQVV8qCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6R1BVX1RFWFRVUkUKKyAgICAgKgorICAgICAqIFRoZSBjb21wb25lbnQgdmFsdWVzIGFyZSB1bnNpZ25lZCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSBbMCwgMV0sIHdob3NlCisgICAgICogaW50ZXJwcmV0YXRpb24gaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIFlWMTIgICAgICAgICAgICAgICA9IDB4MzIzMTU2NTksIC8vIFlDckNiIDQ6MjowIFBsYW5hcgorfTsKKworLyoqCisgKiBCdWZmZXIgdXNhZ2UgZGVmaW5pdGlvbnMuCisgKi8KK2VudW0gQnVmZmVyVXNhZ2UgOiB1aW50NjRfdCB7CisgICAgLyoqIGJpdCAwLTMgaXMgYW4gZW51bSAqLworICAgIENQVV9SRUFEX01BU0sgICA9IDB4ZlVMTCwKKyAgICAvKiogYnVmZmVyIGlzIG5ldmVyIHJlYWQgYnkgQ1BVICovCisgICAgQ1BVX1JFQURfTkVWRVIgID0gMCwKKyAgICAvKiogYnVmZmVyIGlzIHJhcmVseSByZWFkIGJ5IENQVSAqLworICAgIENQVV9SRUFEX1JBUkVMWSA9IDIsCisgICAgLyoqIGJ1ZmZlciBpcyBvZnRlbiByZWFkIGJ5IENQVSAqLworICAgIENQVV9SRUFEX09GVEVOICA9IDMsCisKKyAgICAvKiogYml0IDQtNyBpcyBhbiBlbnVtICovCisgICAgQ1BVX1dSSVRFX01BU0sgICA9IDB4ZlVMTCA8PCA0LAorICAgIC8qKiBidWZmZXIgaXMgbmV2ZXIgd3JpdHRlbiBieSBDUFUgKi8KKyAgICBDUFVfV1JJVEVfTkVWRVIgID0gMCA8PCA0LAorICAgIC8qKiBidWZmZXIgaXMgcmFyZWx5IHdyaXR0ZW4gYnkgQ1BVICovCisgICAgQ1BVX1dSSVRFX1JBUkVMWSA9IDIgPDwgNCwKKyAgICAvKiogYnVmZmVyIGlzIG9mdGVuIHdyaXR0ZW4gYnkgQ1BVICovCisgICAgQ1BVX1dSSVRFX09GVEVOICA9IDMgPDwgNCwKKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIEdQVSB0ZXh0dXJlICovCisgICAgR1BVX1RFWFRVUkUgICAgICAgPSAxVUxMIDw8IDgsCisKKyAgICAvKiogYnVmZmVyIGlzIHVzZWQgYXMgYSBHUFUgcmVuZGVyIHRhcmdldCAqLworICAgIEdQVV9SRU5ERVJfVEFSR0VUID0gMVVMTCA8PCA5LAorCisgICAgLyoqIGJpdCAxMCBtdXN0IGJlIHplcm8gKi8KKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIGNvbXBvc2VyIEhBTCBvdmVybGF5IGxheWVyICovCisgICAgQ09NUE9TRVJfT1ZFUkxBWSAgPSAxVUxMIDw8IDExLAorICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIGNvbXBvc2VyIEhBTCBjbGllbnQgdGFyZ2V0ICovCisgICAgQ09NUE9TRVJfQ0xJRU5UX1RBUkdFVCA9IDFVTEwgPDwgMTIsCisKKyAgICAvKiogYml0IDEzIG11c3QgYmUgemVybyAqLworCisgICAgLyoqCisgICAgICogQnVmZmVyIGlzIGFsbG9jYXRlZCB3aXRoIGhhcmR3YXJlLWxldmVsIHByb3RlY3Rpb24gYWdhaW5zdCBjb3B5aW5nIHRoZQorICAgICAqIGNvbnRlbnRzIChvciBpbmZvcm1hdGlvbiBkZXJpdmVkIGZyb20gdGhlIGNvbnRlbnRzKSBpbnRvIHVucHJvdGVjdGVkCisgICAgICogbWVtb3J5LgorICAgICAqLworICAgIFBST1RFQ1RFRCAgICAgICAgID0gMVVMTCA8PCAxNCwKKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIGh3Y29tcG9zZXIgSEFMIGN1cnNvciBsYXllciAqLworICAgIENPTVBPU0VSX0NVUlNPUiAgID0gMVVMTCA8PCAxNSwKKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIHZpZGVvIGVuY29kZXIgaW5wdXQgKi8KKyAgICBWSURFT19FTkNPREVSICAgICA9IDFVTEwgPDwgMTYsCisKKyAgICAvKiogYnVmZmVyIGlzIHVzZWQgYXMgYSBjYW1lcmEgSEFMIG91dHB1dCAqLworICAgIENBTUVSQV9PVVRQVVQgICAgID0gMVVMTCA8PCAxNywKKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIGNhbWVyYSBIQUwgaW5wdXQgKi8KKyAgICBDQU1FUkFfSU5QVVQgICAgICA9IDFVTEwgPDwgMTgsCisKKyAgICAvKiogYml0IDE5IG11c3QgYmUgemVybyAqLworCisgICAgLyoqIGJ1ZmZlciBpcyB1c2VkIGFzIGEgcmVuZGVyc2NyaXB0IGFsbG9jYXRpb24gKi8KKyAgICBSRU5ERVJTQ1JJUFQgICAgICA9IDFVTEwgPDwgMjAsCisKKyAgICAvKiogYml0IDIxIG11c3QgYmUgemVybyAqLworCisgICAgLyoqIGJ1ZmZlciBpcyB1c2VkIGFzIGEgdmlkZW8gZGVjb2RlciBvdXRwdXQgKi8KKyAgICBWSURFT19ERUNPREVSICAgICA9IDFVTEwgPDwgMjIsCisKKyAgICAvKiogYnVmZmVyIGlzIHVzZWQgYXMgYSBzZW5zb3IgZGlyZWN0IHJlcG9ydCBvdXRwdXQgKi8KKyAgICBTRU5TT1JfRElSRUNUX0RBVEEgPSAxVUxMIDw8IDIzLAorCisgICAgLyoqCisgICAgICogYnVmZmVyIGlzIHVzZWQgYXMgYXMgYW4gT3BlbkdMIHNoYWRlciBzdG9yYWdlIG9yIHVuaWZvcm0KKyAgICAgKiBidWZmZXIgb2JqZWN0CisgICAgICovCisgICAgR1BVX0RBVEFfQlVGRkVSICAgPSAxVUxMIDw8IDI0LAorCisgICAgLyoqIGJpdHMgMjUtMjcgbXVzdCBiZSB6ZXJvIGFuZCBhcmUgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB2ZXJzaW9ucyAqLworICAgIC8qKiBiaXRzIDI4LTMxIGFyZSByZXNlcnZlZCBmb3IgdmVuZG9yIGV4dGVuc2lvbnMgKi8KKyAgICBWRU5ET1JfTUFTSyAgICAgICA9IDB4ZlVMTCA8PCAyOCwKKworICAgIC8qKiBiaXRzIDMyLTQ3IG11c3QgYmUgemVybyBhbmQgYXJlIHJlc2VydmVkIGZvciBmdXR1cmUgdmVyc2lvbnMgKi8KKyAgICAvKiogYml0cyA0OC02MyBhcmUgcmVzZXJ2ZWQgZm9yIHZlbmRvciBleHRlbnNpb25zICovCisgICAgVkVORE9SX01BU0tfSEkgICAgPSAweGZmZmZVTEwgPDwgNDgsCit9OworCisvKioKKyAqIFRyYW5zZm9ybWF0aW9uIGRlZmluaXRpb25zCisgKi8KK0BleHBvcnQobmFtZT0iYW5kcm9pZF90cmFuc2Zvcm1fdCIsIHZhbHVlX3ByZWZpeD0iSEFMX1RSQU5TRk9STV8iKQorZW51bSBUcmFuc2Zvcm0gOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBIb3Jpem9udGFsIGZsaXAuIEZMSVBfSC9GTElQX1YgaXMgYXBwbGllZCBiZWZvcmUgUk9UXzkwLgorICAgICAqLworICAgIEZMSVBfSCAgICA9IDEgPDwgMCwKKworICAgIC8qKgorICAgICAqIFZlcnRpY2FsIGZsaXAuIEZMSVBfSC9GTElQX1YgaXMgYXBwbGllZCBiZWZvcmUgUk9UXzkwLgorICAgICAqLworICAgIEZMSVBfViAgICA9IDEgPDwgMSwKKworICAgIC8qKgorICAgICAqIDkwIGRlZ3JlZSBjbG9ja3dpc2Ugcm90YXRpb24uIEZMSVBfSC9GTElQX1YgaXMgYXBwbGllZCBiZWZvcmUgUk9UXzkwLgorICAgICAqLworICAgIFJPVF85MCAgICA9IDEgPDwgMiwKKworICAgIC8qKgorICAgICAqIENvbW1vbmx5IHVzZWQgY29tYmluYXRpb25zLgorICAgICAqLworICAgIFJPVF8xODAgICA9IEZMSVBfSCB8IEZMSVBfViwKKyAgICBST1RfMjcwICAgPSBGTElQX0ggfCBGTElQX1YgfCBST1RfOTAsCit9OworCisvKioKKyAqIERhdGFzcGFjZSBEZWZpbml0aW9ucworICogPT09PT09PT09PT09PT09PT09PT09PQorICoKKyAqIERhdGFzcGFjZSBpcyB0aGUgZGVmaW5pdGlvbiBvZiBob3cgcGl4ZWwgdmFsdWVzIHNob3VsZCBiZSBpbnRlcnByZXRlZC4KKyAqCisgKiBGb3IgbWFueSBmb3JtYXRzLCB0aGlzIGlzIHRoZSBjb2xvcnNwYWNlIG9mIHRoZSBpbWFnZSBkYXRhLCB3aGljaCBpbmNsdWRlcworICogcHJpbWFyaWVzIChpbmNsdWRpbmcgd2hpdGUgcG9pbnQpIGFuZCB0aGUgdHJhbnNmZXIgY2hhcmFjdGVyaXN0aWMgZnVuY3Rpb24sCisgKiB3aGljaCBkZXNjcmliZXMgYm90aCBnYW1tYSBjdXJ2ZSBhbmQgbnVtZXJpYyByYW5nZSAod2l0aGluIHRoZSBiaXQgZGVwdGgpLgorICoKKyAqIE90aGVyIGRhdGFzcGFjZXMgaW5jbHVkZSBkZXB0aCBtZWFzdXJlbWVudCBkYXRhIGZyb20gYSBkZXB0aCBjYW1lcmEuCisgKgorICogQSBkYXRhc3BhY2UgaXMgY29tcHJpc2VkIG9mIGEgbnVtYmVyIG9mIGZpZWxkcy4KKyAqCisgKiBWZXJzaW9uCisgKiAtLS0tLS0tLQorICogVGhlIHRvcCAyIGJpdHMgcmVwcmVzZW50IHRoZSByZXZpc2lvbiBvZiB0aGUgZmllbGQgc3BlY2lmaWNhdGlvbi4gVGhpcyBpcworICogY3VycmVudGx5IGFsd2F5cyAwLgorICoKKyAqCisgKiBiaXRzICAgIDMxLTMwIDI5ICAgICAgICAgICAgICAgICAgICAgIC0gICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyAqICAgICAgICArLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqIGZpZWxkcyB8IFJldiB8ICAgICAgICAgICAgUmV2aXNpb24gc3BlY2lmaWMgZmllbGRzICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICArLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBGaWVsZCBsYXlvdXQgZm9yIHZlcnNpb24gPSAwOgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEEgZGF0YXNwYWNlIGlzIGNvbXByaXNlZCBvZiB0aGUgZm9sbG93aW5nIGZpZWxkczoKKyAqICAgICAgU3RhbmRhcmQKKyAqICAgICAgVHJhbnNmZXIgZnVuY3Rpb24KKyAqICAgICAgUmFuZ2UKKyAqCisgKiBiaXRzICAgIDMxLTMwIDI5LTI3IDI2IC0gIDIyIDIxIC0gIDE2IDE1ICAgICAgICAgICAgIC0gICAgICAgICAgIDAKKyAqICAgICAgICArLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqIGZpZWxkcyB8ICAwICB8UmFuZ2V8VHJhbnNmZXJ8U3RhbmRhcmR8ICAgIExlZ2FjeSBhbmQgY3VzdG9tICAgICAgIHwKKyAqICAgICAgICArLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAgICAgIFZWICAgIFJSUiAgIFRUVFRUICAgIFNTU1NTUyAgICBMTExMTExMTCAgICAgICBMTExMTExMTAorICoKKyAqIElmIHJhbmdlLCB0cmFuc2ZlciBhbmQgc3RhbmRhcmQgZmllbGRzIGFyZSBhbGwgMCAoZS5nLiB0b3AgMTYgYml0cyBhcmUKKyAqIGFsbCB6ZXJvZXMpLCB0aGUgYm90dG9tIDE2IGJpdHMgY29udGFpbiBlaXRoZXIgYSBsZWdhY3kgZGF0YXNwYWNlIHZhbHVlLAorICogb3IgYSBjdXN0b20gdmFsdWUuCisgKi8KK0BleHBvcnQobmFtZT0iYW5kcm9pZF9kYXRhc3BhY2VfdCIsIHZhbHVlX3ByZWZpeD0iSEFMX0RBVEFTUEFDRV8iKQorZW51bSBEYXRhc3BhY2UgOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0LWFzc3VtcHRpb24gZGF0YSBzcGFjZSwgd2hlbiBub3QgZXhwbGljaXRseSBzcGVjaWZpZWQuCisgICAgICoKKyAgICAgKiBJdCBpcyBzYWZlc3QgdG8gYXNzdW1lIHRoZSBidWZmZXIgaXMgYW4gaW1hZ2Ugd2l0aCBzUkdCIHByaW1hcmllcyBhbmQKKyAgICAgKiBlbmNvZGluZyByYW5nZXMsIGJ1dCB0aGUgY29uc3VtZXIgYW5kL29yIHRoZSBwcm9kdWNlciBvZiB0aGUgZGF0YSBtYXkKKyAgICAgKiBzaW1wbHkgYmUgdXNpbmcgZGVmYXVsdHMuIE5vIGF1dG9tYXRpYyBnYW1tYSB0cmFuc2Zvcm0gc2hvdWxkIGJlCisgICAgICogZXhwZWN0ZWQsIGV4Y2VwdCBmb3IgYSBwb3NzaWJsZSBkaXNwbGF5IGdhbW1hIHRyYW5zZm9ybSB3aGVuIGRyYXduIHRvIGEKKyAgICAgKiBzY3JlZW4uCisgICAgICovCisgICAgVU5LTk9XTiA9IDB4MCwKKworICAgIC8qKgorICAgICAqIEFyYml0cmFyeSBkYXRhc3BhY2Ugd2l0aCBtYW51YWxseSBkZWZpbmVkIGNoYXJhY3RlcmlzdGljcy4gIERlZmluaXRpb24KKyAgICAgKiBmb3IgY29sb3JzcGFjZXMgb3Igb3RoZXIgbWVhbmluZyBtdXN0IGJlIGNvbW11bmljYXRlZCBzZXBhcmF0ZWx5LgorICAgICAqCisgICAgICogVGhpcyBpcyB1c2VkIHdoZW4gc3BlY2lmeWluZyBwcmltYXJpZXMsIHRyYW5zZmVyIGNoYXJhY3RlcmlzdGljcywKKyAgICAgKiBldGMuIHNlcGFyYXRlbHkuCisgICAgICoKKyAgICAgKiBBIHR5cGljYWwgdXNlIGNhc2UgaXMgaW4gdmlkZW8gZW5jb2RpbmcgcGFyYW1ldGVycyAoZS5nLiBmb3IgSC4yNjQpLAorICAgICAqIHdoZXJlIGEgY29sb3JzcGFjZSBjYW4gaGF2ZSBzZXBhcmF0ZWx5IGRlZmluZWQgcHJpbWFyaWVzLCB0cmFuc2ZlcgorICAgICAqIGNoYXJhY3RlcmlzdGljcywgZXRjLgorICAgICAqLworICAgIEFSQklUUkFSWSA9IDB4MSwKKworICAgIC8qKgorICAgICAqIENvbG9yLWRlc2NyaXB0aW9uIGFzcGVjdHMKKyAgICAgKgorICAgICAqIFRoZSBmb2xsb3dpbmcgYXNwZWN0cyBkZWZpbmUgdmFyaW91cyBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGNvbG9yCisgICAgICogc3BlY2lmaWNhdGlvbi4gVGhlc2UgcmVwcmVzZW50IGJpdGZpZWxkcywgc28gdGhhdCBhIGRhdGEgc3BhY2UgdmFsdWUKKyAgICAgKiBjYW4gc3BlY2lmeSBlYWNoIG9mIHRoZW0gaW5kZXBlbmRlbnRseS4KKyAgICAgKi8KKworICAgIFNUQU5EQVJEX1NISUZUID0gMTYsCisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBhc3BlY3QKKyAgICAgKgorICAgICAqIERlZmluZXMgdGhlIGNocm9tYXRpY2l0eSBjb29yZGluYXRlcyBvZiB0aGUgc291cmNlIHByaW1hcmllcyBpbiB0ZXJtcyBvZgorICAgICAqIHRoZSBDSUUgMTkzMSBkZWZpbml0aW9uIG9mIHggYW5kIHkgc3BlY2lmaWVkIGluIElTTyAxMTY2NC0xLgorICAgICAqLworICAgIFNUQU5EQVJEX01BU0sgPSA2MyA8PCBTVEFOREFSRF9TSElGVCwgIC8vIDB4M0YKKworICAgIC8qKgorICAgICAqIENocm9tYWNpdHkgY29vcmRpbmF0ZXMgYXJlIHVua25vd24gb3IgYXJlIGRldGVybWluZWQgYnkgdGhlIGFwcGxpY2F0aW9uLgorICAgICAqIEltcGxlbWVudGF0aW9ucyBzaGFsbCB1c2UgdGhlIGZvbGxvd2luZyBzdWdnZXN0ZWQgc3RhbmRhcmRzOgorICAgICAqCisgICAgICogQWxsIFlDYkNyIGZvcm1hdHM6IEJUNzA5IGlmIHNpemUgaXMgNzIwcCBvciBsYXJnZXIgKHNpbmNlIG1vc3QgdmlkZW8KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgY29udGVudCBpcyBsZXR0ZXJib3hlZCB0aGlzIGNvcnJlc3BvbmRzIHRvIHdpZHRoIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgIDEyODAgb3IgZ3JlYXRlciwgb3IgaGVpZ2h0IGlzIDcyMCBvciBncmVhdGVyKS4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgQlQ2MDFfNjI1IGlmIHNpemUgaXMgc21hbGxlciB0aGFuIDcyMHAgb3IgaXMgSlBFRy4KKyAgICAgKiBBbGwgUkdCIGZvcm1hdHM6ICAgQlQ3MDkuCisgICAgICoKKyAgICAgKiBGb3IgYWxsIG90aGVyIGZvcm1hdHMgc3RhbmRhcmQgaXMgdW5kZWZpbmVkLCBhbmQgaW1wbGVtZW50YXRpb25zIHNob3VsZCB1c2UKKyAgICAgKiBhbiBhcHByb3ByaWF0ZSBzdGFuZGFyZCBmb3IgdGhlIGRhdGEgcmVwcmVzZW50ZWQuCisgICAgICovCisgICAgU1RBTkRBUkRfVU5TUEVDSUZJRUQgPSAwIDw8IFNUQU5EQVJEX1NISUZULAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOiAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzAwICAgMC42MDAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjQwICAgMC4zMzAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBVc2UgdGhlIHVuYWRqdXN0ZWQgS1IgPSAwLjIxMjYsIEtCID0gMC4wNzIyIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDcwOSA9IDEgPDwgU1RBTkRBUkRfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yOTAgICAwLjYwMAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42NDAgICAwLjMzMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqICBLUiA9IDAuMjk5LCBLQiA9IDAuMTE0LiBUaGlzIGFkanVzdHMgdGhlIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqICBmb3IgUkdCIGNvbnZlcnNpb24gZnJvbSB0aGUgb25lIHB1cmVseSBkZXRlcm1pbmVkIGJ5IHRoZSBwcmltYXJpZXMKKyAgICAgKiAgdG8gbWluaW1pemUgdGhlIGNvbG9yIHNoaWZ0IGludG8gUkdCIHNwYWNlIHRoYXQgdXNlcyBCVC43MDkKKyAgICAgKiAgcHJpbWFyaWVzLgorICAgICAqLworICAgIFNUQU5EQVJEX0JUNjAxXzYyNSA9IDIgPDwgU1RBTkRBUkRfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yOTAgICAwLjYwMAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42NDAgICAwLjMzMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjIyLCBLQiA9IDAuMDcxIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV82MjVfVU5BREpVU1RFRCA9IDMgPDwgU1RBTkRBUkRfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4zMTAgICAwLjU5NQorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTUgICAwLjA3MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42MzAgICAwLjM0MAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqICBLUiA9IDAuMjk5LCBLQiA9IDAuMTE0LiBUaGlzIGFkanVzdHMgdGhlIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqICBmb3IgUkdCIGNvbnZlcnNpb24gZnJvbSB0aGUgb25lIHB1cmVseSBkZXRlcm1pbmVkIGJ5IHRoZSBwcmltYXJpZXMKKyAgICAgKiAgdG8gbWluaW1pemUgdGhlIGNvbG9yIHNoaWZ0IGludG8gUkdCIHNwYWNlIHRoYXQgdXNlcyBCVC43MDkKKyAgICAgKiAgcHJpbWFyaWVzLgorICAgICAqLworICAgIFNUQU5EQVJEX0JUNjAxXzUyNSA9IDQgPDwgU1RBTkRBUkRfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4zMTAgICAwLjU5NQorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTUgICAwLjA3MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42MzAgICAwLjM0MAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjEyLCBLQiA9IDAuMDg3IGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbiAoYXMgaW4gU01QVEUgMjQwTSkuCisgICAgICovCisgICAgU1RBTkRBUkRfQlQ2MDFfNTI1X1VOQURKVVNURUQgPSA1IDw8IFNUQU5EQVJEX1NISUZULAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOiAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMTcwICAgMC43OTcKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTMxICAgMC4wNDYKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNzA4ICAgMC4yOTIKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBVc2UgdGhlIHVuYWRqdXN0ZWQgS1IgPSAwLjI2MjcsIEtCID0gMC4wNTkzIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDIwMjAgPSA2IDw8IFNUQU5EQVJEX1NISUZULAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOiAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMTcwICAgMC43OTcKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTMxICAgMC4wNDYKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNzA4ICAgMC4yOTIKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBVc2UgdGhlIHVuYWRqdXN0ZWQgS1IgPSAwLjI2MjcsIEtCID0gMC4wNTkzIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbiB1c2luZyB0aGUgbGluZWFyIGRvbWFpbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDIwMjBfQ09OU1RBTlRfTFVNSU5BTkNFID0gNyA8PCBTVEFOREFSRF9TSElGVCwKKworICAgIC8qKgorICAgICAqIFByaW1hcmllczogICAgICAgeCAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjEgICAwLjcxCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE0ICAgMC4wOAorICAgICAqICByZWQgICAgICAgICAgICAgMC42NyAgIDAuMzMKKyAgICAgKiAgd2hpdGUgKEMpICAgICAgIDAuMzEwICAwLjMxNgorICAgICAqCisgICAgICogVXNlIHRoZSB1bmFkanVzdGVkIEtSID0gMC4zMCwgS0IgPSAwLjExIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDQ3ME0gPSA4IDw8IFNUQU5EQVJEX1NISUZULAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOiAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjQzICAgMC42OTIKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTQ1ICAgMC4wNDkKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjgxICAgMC4zMTkKKyAgICAgKiAgd2hpdGUgKEMpICAgICAgIDAuMzEwICAgMC4zMTYKKyAgICAgKgorICAgICAqIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjU0LCBLQiA9IDAuMDY4IGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9GSUxNID0gOSA8PCBTVEFOREFSRF9TSElGVCwKKworICAgIC8qKgorICAgICAqIFNNUFRFIEVHIDQzMi0xIGFuZCBTTVBURSBSUCA0MzEtMi4gKERDSS1QMykKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yNjUgICAwLjY5MAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42ODAgICAwLjMyMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKi8KKyAgICBTVEFOREFSRF9EQ0lfUDMgPSAxMCA8PCBTVEFOREFSRF9TSElGVCwKKworICAgIC8qKgorICAgICAqIEFkb2JlIFJHQgorICAgICAqIFByaW1hcmllczogICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjIxMCAgIDAuNzEwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqLworICAgIFNUQU5EQVJEX0FET0JFX1JHQiA9IDExIDw8IFNUQU5EQVJEX1NISUZULAorCisKKworICAgIFRSQU5TRkVSX1NISUZUID0gMjIsCisKKyAgICAvKioKKyAgICAgKiBUcmFuc2ZlciBhc3BlY3QKKyAgICAgKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljcyBhcmUgdGhlIG9wdG8tZWxlY3Ryb25pYyB0cmFuc2ZlciBjaGFyYWN0ZXJpc3RpYworICAgICAqIGF0IHRoZSBzb3VyY2UgYXMgYSBmdW5jdGlvbiBvZiBsaW5lYXIgb3B0aWNhbCBpbnRlbnNpdHkgKGx1bWluYW5jZSkuCisgICAgICoKKyAgICAgKiBGb3IgZGlnaXRhbCBzaWduYWxzLCBFIGNvcnJlc3BvbmRzIHRvIHRoZSByZWNvcmRlZCB2YWx1ZS4gTm9ybWFsbHksIHRoZQorICAgICAqIHRyYW5zZmVyIGZ1bmN0aW9uIGlzIGFwcGxpZWQgaW4gUkdCIHNwYWNlIHRvIGVhY2ggb2YgdGhlIFIsIEcgYW5kIEIKKyAgICAgKiBjb21wb25lbnRzIGluZGVwZW5kZW50bHkuIFRoaXMgbWF5IHJlc3VsdCBpbiBjb2xvciBzaGlmdCB0aGF0IGNhbiBiZQorICAgICAqIG1pbml6ZWQgYnkgYXBwbHlpbmcgdGhlIHRyYW5zZmVyIGZ1bmN0aW9uIGluIExhYiBzcGFjZSBvbmx5IGZvciB0aGUgTAorICAgICAqIGNvbXBvbmVudC4gSW1wbGVtZW50YXRpb24gbWF5IGFwcGx5IHRoZSB0cmFuc2ZlciBmdW5jdGlvbiBpbiBSR0Igc3BhY2UKKyAgICAgKiBmb3IgYWxsIHBpeGVsIGZvcm1hdHMgaWYgZGVzaXJlZC4KKyAgICAgKi8KKworICAgIFRSQU5TRkVSX01BU0sgPSAzMSA8PCBUUkFOU0ZFUl9TSElGVCwgIC8vIDB4MUYKKworICAgIC8qKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljcyBhcmUgdW5rbm93biBvciBhcmUgZGV0ZXJtaW5lZCBieSB0aGUKKyAgICAgKiBhcHBsaWNhdGlvbi4KKyAgICAgKgorICAgICAqIEltcGxlbWVudGF0aW9ucyBzaG91bGQgdXNlIHRoZSBmb2xsb3dpbmcgdHJhbnNmZXIgZnVuY3Rpb25zOgorICAgICAqCisgICAgICogRm9yIFlDYkNyIGZvcm1hdHM6IHVzZSBUUkFOU0ZFUl9TTVBURV8xNzBNCisgICAgICogRm9yIFJHQiBmb3JtYXRzOiB1c2UgVFJBTlNGRVJfU1JHQgorICAgICAqCisgICAgICogRm9yIGFsbCBvdGhlciBmb3JtYXRzIHRyYW5zZmVyIGZ1bmN0aW9uIGlzIHVuZGVmaW5lZCwgYW5kIGltcGxlbWVudGF0aW9ucworICAgICAqIHNob3VsZCB1c2UgYW4gYXBwcm9wcmlhdGUgc3RhbmRhcmQgZm9yIHRoZSBkYXRhIHJlcHJlc2VudGVkLgorICAgICAqLworICAgIFRSQU5TRkVSX1VOU1BFQ0lGSUVEID0gMCA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIC8qKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljIGN1cnZlOgorICAgICAqICBFID0gTAorICAgICAqICAgICAgTCAtIGx1bWluYW5jZSBvZiBpbWFnZSAwIDw9IEwgPD0gMSBmb3IgY29udmVudGlvbmFsIGNvbG9yaW1ldHJ5CisgICAgICogICAgICBFIC0gY29ycmVzcG9uZGluZyBlbGVjdHJpY2FsIHNpZ25hbAorICAgICAqLworICAgIFRSQU5TRkVSX0xJTkVBUiA9IDEgPDwgVFJBTlNGRVJfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBUcmFuc2ZlciBjaGFyYWN0ZXJpc3RpYyBjdXJ2ZToKKyAgICAgKgorICAgICAqIEUgPSAxLjA1NSAqIExeKDEvMi40KSAtIDAuMDU1ICBmb3IgMC4wMDMxMzA4IDw9IEwgPD0gMQorICAgICAqICAgPSAxMi45MiAqIEwgICAgICAgICAgICAgICAgICBmb3IgMCA8PSBMIDwgMC4wMDMxMzA4CisgICAgICogICAgIEwgLSBsdW1pbmFuY2Ugb2YgaW1hZ2UgMCA8PSBMIDw9IDEgZm9yIGNvbnZlbnRpb25hbCBjb2xvcmltZXRyeQorICAgICAqICAgICBFIC0gY29ycmVzcG9uZGluZyBlbGVjdHJpY2FsIHNpZ25hbAorICAgICAqLworICAgIFRSQU5TRkVSX1NSR0IgPSAyIDw8IFRSQU5TRkVSX1NISUZULAorCisgICAgLyoqCisgICAgICogQlQuNjAxIDUyNSwgQlQuNjAxIDYyNSwgQlQuNzA5LCBCVC4yMDIwCisgICAgICoKKyAgICAgKiBUcmFuc2ZlciBjaGFyYWN0ZXJpc3RpYyBjdXJ2ZToKKyAgICAgKiAgRSA9IDEuMDk5ICogTCBeIDAuNDUgLSAwLjA5OSAgZm9yIDAuMDE4IDw9IEwgPD0gMQorICAgICAqICAgID0gNC41MDAgKiBMICAgICAgICAgICAgICAgICBmb3IgMCA8PSBMIDwgMC4wMTgKKyAgICAgKiAgICAgIEwgLSBsdW1pbmFuY2Ugb2YgaW1hZ2UgMCA8PSBMIDw9IDEgZm9yIGNvbnZlbnRpb25hbCBjb2xvcmltZXRyeQorICAgICAqICAgICAgRSAtIGNvcnJlc3BvbmRpbmcgZWxlY3RyaWNhbCBzaWduYWwKKyAgICAgKi8KKyAgICBUUkFOU0ZFUl9TTVBURV8xNzBNID0gMyA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIC8qKgorICAgICAqIEFzc3VtZWQgZGlzcGxheSBnYW1tYSAyLjIuCisgICAgICoKKyAgICAgKiBUcmFuc2ZlciBjaGFyYWN0ZXJpc3RpYyBjdXJ2ZToKKyAgICAgKiAgRSA9IEwgXiAoMS8yLjIpCisgICAgICogICAgICBMIC0gbHVtaW5hbmNlIG9mIGltYWdlIDAgPD0gTCA8PSAxIGZvciBjb252ZW50aW9uYWwgY29sb3JpbWV0cnkKKyAgICAgKiAgICAgIEUgLSBjb3JyZXNwb25kaW5nIGVsZWN0cmljYWwgc2lnbmFsCisgICAgICovCisgICAgVFJBTlNGRVJfR0FNTUEyXzIgPSA0IDw8IFRSQU5TRkVSX1NISUZULAorCisgICAgLyoqCisgICAgICogIGRpc3BsYXkgZ2FtbWEgMi42LgorICAgICAqCisgICAgICogVHJhbnNmZXIgY2hhcmFjdGVyaXN0aWMgY3VydmU6CisgICAgICogIEUgPSBMIF4gKDEvMi42KQorICAgICAqICAgICAgTCAtIGx1bWluYW5jZSBvZiBpbWFnZSAwIDw9IEwgPD0gMSBmb3IgY29udmVudGlvbmFsIGNvbG9yaW1ldHJ5CisgICAgICogICAgICBFIC0gY29ycmVzcG9uZGluZyBlbGVjdHJpY2FsIHNpZ25hbAorICAgICAqLworICAgIFRSQU5TRkVSX0dBTU1BMl82ID0gNSA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIC8qKgorICAgICAqICBkaXNwbGF5IGdhbW1hIDIuOC4KKyAgICAgKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljIGN1cnZlOgorICAgICAqICBFID0gTCBeICgxLzIuOCkKKyAgICAgKiAgICAgIEwgLSBsdW1pbmFuY2Ugb2YgaW1hZ2UgMCA8PSBMIDw9IDEgZm9yIGNvbnZlbnRpb25hbCBjb2xvcmltZXRyeQorICAgICAqICAgICAgRSAtIGNvcnJlc3BvbmRpbmcgZWxlY3RyaWNhbCBzaWduYWwKKyAgICAgKi8KKyAgICBUUkFOU0ZFUl9HQU1NQTJfOCA9IDYgPDwgVFJBTlNGRVJfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBTTVBURSBTVCAyMDg0IChEb2xieSBQZXJjZXB0dWFsIFF1YW50aXplcikKKyAgICAgKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljIGN1cnZlOgorICAgICAqICBFID0gKChjMSArIGMyICogTF5uKSAvICgxICsgYzMgKiBMXm4pKSBeIG0KKyAgICAgKiAgYzEgPSBjMyAtIGMyICsgMSA9IDM0MjQgLyA0MDk2ID0gMC44MzU5Mzc1CisgICAgICogIGMyID0gMzIgKiAyNDEzIC8gNDA5NiA9IDE4Ljg1MTU2MjUKKyAgICAgKiAgYzMgPSAzMiAqIDIzOTIgLyA0MDk2ID0gMTguNjg3NQorICAgICAqICBtID0gMTI4ICogMjUyMyAvIDQwOTYgPSA3OC44NDM3NQorICAgICAqICBuID0gMC4yNSAqIDI2MTAgLyA0MDk2ID0gMC4xNTkzMDE3NTc4MTI1CisgICAgICogICAgICBMIC0gbHVtaW5hbmNlIG9mIGltYWdlIDAgPD0gTCA8PSAxIGZvciBIRFIgY29sb3JpbWV0cnkuCisgICAgICogICAgICAgICAgTCA9IDEgY29ycmVzcG9uZHMgdG8gMTAwMDAgY2QvbTIKKyAgICAgKiAgICAgIEUgLSBjb3JyZXNwb25kaW5nIGVsZWN0cmljYWwgc2lnbmFsCisgICAgICovCisgICAgVFJBTlNGRVJfU1QyMDg0ID0gNyA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIC8qKgorICAgICAqIEFSSUIgU1RELUI2NyBIeWJyaWQgTG9nIEdhbW1hCisgICAgICoKKyAgICAgKiBUcmFuc2ZlciBjaGFyYWN0ZXJpc3RpYyBjdXJ2ZToKKyAgICAgKiAgRSA9IHIgKiBMXjAuNSAgICAgICAgICAgICAgICAgZm9yIDAgPD0gTCA8PSAxCisgICAgICogICAgPSBhICogbG4oTCAtIGIpICsgYyAgICAgICAgIGZvciAxIDwgTAorICAgICAqICBhID0gMC4xNzg4MzI3NworICAgICAqICBiID0gMC4yODQ2Njg5MgorICAgICAqICBjID0gMC41NTk5MTA3MworICAgICAqICByID0gMC41CisgICAgICogICAgICBMIC0gbHVtaW5hbmNlIG9mIGltYWdlIDAgPD0gTCBmb3IgSERSIGNvbG9yaW1ldHJ5LiBMID0gMSBjb3JyZXNwb25kcworICAgICAqICAgICAgICAgIHRvIHJlZmVyZW5jZSB3aGl0ZSBsZXZlbCBvZiAxMDAgY2QvbTIKKyAgICAgKiAgICAgIEUgLSBjb3JyZXNwb25kaW5nIGVsZWN0cmljYWwgc2lnbmFsCisgICAgICovCisgICAgVFJBTlNGRVJfSExHID0gOCA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIFJBTkdFX1NISUZUID0gMjcsCisKKyAgICAvKioKKyAgICAgKiBSYW5nZSBhc3BlY3QKKyAgICAgKgorICAgICAqIERlZmluZXMgdGhlIHJhbmdlIG9mIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSB1bml0IHJhbmdlIG9mIDAtMS4KKyAgICAgKiBUaGlzIGlzIGRlZmluZWQgZm9yIFlDYkNyIG9ubHksIGJ1dCBjYW4gYmUgZXhwYW5kZWQgdG8gUkdCIHNwYWNlLgorICAgICAqLworICAgIFJBTkdFX01BU0sgPSA3IDw8IFJBTkdFX1NISUZULCAgLy8gMHg3CisKKyAgICAvKioKKyAgICAgKiBSYW5nZSBpcyB1bmtub3duIG9yIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4gIEltcGxlbWVudGF0aW9ucworICAgICAqIHNoYWxsIHVzZSB0aGUgZm9sbG93aW5nIHN1Z2dlc3RlZCByYW5nZXM6CisgICAgICoKKyAgICAgKiBBbGwgWUNiQ3IgZm9ybWF0czogbGltaXRlZCByYW5nZS4KKyAgICAgKiBBbGwgUkdCIG9yIFJHQkEgZm9ybWF0cyAoaW5jbHVkaW5nIFJBVyBhbmQgQmF5ZXIpOiBmdWxsIHJhbmdlLgorICAgICAqIEFsbCBZIGZvcm1hdHM6IGZ1bGwgcmFuZ2UKKyAgICAgKgorICAgICAqIEZvciBhbGwgb3RoZXIgZm9ybWF0cyByYW5nZSBpcyB1bmRlZmluZWQsIGFuZCBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIHVzZQorICAgICAqIGFuIGFwcHJvcHJpYXRlIHJhbmdlIGZvciB0aGUgZGF0YSByZXByZXNlbnRlZC4KKyAgICAgKi8KKyAgICBSQU5HRV9VTlNQRUNJRklFRCA9IDAgPDwgUkFOR0VfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBGdWxsIHJhbmdlIHVzZXMgYWxsIHZhbHVlcyBmb3IgWSwgQ2IgYW5kIENyIGZyb20KKyAgICAgKiAwIHRvIDJeYi0xLCB3aGVyZSBiIGlzIHRoZSBiaXQgZGVwdGggb2YgdGhlIGNvbG9yIGZvcm1hdC4KKyAgICAgKi8KKyAgICBSQU5HRV9GVUxMID0gMSA8PCBSQU5HRV9TSElGVCwKKworICAgIC8qKgorICAgICAqIExpbWl0ZWQgcmFuZ2UgdXNlcyB2YWx1ZXMgMTYvMjU2KjJeYiB0byAyMzUvMjU2KjJeYiBmb3IgWSwgYW5kCisgICAgICogMS8xNioyXmIgdG8gMTUvMTYqMl5iIGZvciBDYiwgQ3IsIFIsIEcgYW5kIEIsIHdoZXJlIGIgaXMgdGhlIGJpdCBkZXB0aCBvZgorICAgICAqIHRoZSBjb2xvciBmb3JtYXQuCisgICAgICoKKyAgICAgKiBFLmcuIEZvciA4LWJpdC1kZXB0aCBmb3JtYXRzOgorICAgICAqIEx1bWEgKFkpIHNhbXBsZXMgc2hvdWxkIHJhbmdlIGZyb20gMTYgdG8gMjM1LCBpbmNsdXNpdmUKKyAgICAgKiBDaHJvbWEgKENiLCBDcikgc2FtcGxlcyBzaG91bGQgcmFuZ2UgZnJvbSAxNiB0byAyNDAsIGluY2x1c2l2ZQorICAgICAqCisgICAgICogRm9yIDEwLWJpdC1kZXB0aCBmb3JtYXRzOgorICAgICAqIEx1bWEgKFkpIHNhbXBsZXMgc2hvdWxkIHJhbmdlIGZyb20gNjQgdG8gOTQwLCBpbmNsdXNpdmUKKyAgICAgKiBDaHJvbWEgKENiLCBDcikgc2FtcGxlcyBzaG91bGQgcmFuZ2UgZnJvbSA2NCB0byA5NjAsIGluY2x1c2l2ZQorICAgICAqLworICAgIFJBTkdFX0xJTUlURUQgPSAyIDw8IFJBTkdFX1NISUZULAorCisgICAgLyoqCisgICAgICogRXh0ZW5kZWQgcmFuZ2UgaXMgdXNlZCBmb3Igc2NSR0IuIEludGVuZGVkIGZvciB1c2Ugd2l0aAorICAgICAqIGZsb2F0aW5nIHBvaW50IHBpeGVsIGZvcm1hdHMuIFswLjAgLSAxLjBdIGlzIHRoZSBzdGFuZGFyZAorICAgICAqIHNSR0Igc3BhY2UuIFZhbHVlcyBvdXRzaWRlIHRoZSByYW5nZSAwLjAgLSAxLjAgY2FuIGVuY29kZQorICAgICAqIGNvbG9yIG91dHNpZGUgdGhlIHNSR0IgZ2FtdXQuCisgICAgICogVXNlZCB0byBibGVuZCAvIG1lcmdlIG11bHRpcGxlIGRhdGFzcGFjZXMgb24gYSBzaW5nbGUgZGlzcGxheS4KKyAgICAgKi8KKyAgICBSQU5HRV9FWFRFTkRFRCA9IDMgPDwgUkFOR0VfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBMZWdhY3kgZGF0YXNwYWNlcworICAgICAqLworCisgICAgLyoqCisgICAgICogc1JHQiBsaW5lYXIgZW5jb2Rpbmc6CisgICAgICoKKyAgICAgKiBUaGUgcmVkLCBncmVlbiwgYW5kIGJsdWUgY29tcG9uZW50cyBhcmUgc3RvcmVkIGluIHNSR0Igc3BhY2UsIGJ1dAorICAgICAqIGFyZSBsaW5lYXIsIG5vdCBnYW1tYS1lbmNvZGVkLgorICAgICAqIFRoZSBSR0IgcHJpbWFyaWVzIGFuZCB0aGUgd2hpdGUgcG9pbnQgYXJlIHRoZSBzYW1lIGFzIEJULjcwOS4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZXMgYXJlIGVuY29kZWQgdXNpbmcgdGhlIGZ1bGwgcmFuZ2UgKFswLDI1NV0gZm9yIDgtYml0KSBmb3IgYWxsCisgICAgICogY29tcG9uZW50cy4KKyAgICAgKi8KKyAgICBTUkdCX0xJTkVBUiA9IDB4MjAwLCAvLyBkZXByZWNhdGVkLCB1c2UgVjBfU1JHQl9MSU5FQVIKKworICAgIFYwX1NSR0JfTElORUFSID0gU1RBTkRBUkRfQlQ3MDkgfCBUUkFOU0ZFUl9MSU5FQVIgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBzY1JHQiBsaW5lYXIgZW5jb2Rpbmc6CisgICAgICoKKyAgICAgKiBUaGUgcmVkLCBncmVlbiwgYW5kIGJsdWUgY29tcG9uZW50cyBhcmUgc3RvcmVkIGluIGV4dGVuZGVkIHNSR0Igc3BhY2UsCisgICAgICogYnV0IGFyZSBsaW5lYXIsIG5vdCBnYW1tYS1lbmNvZGVkLgorICAgICAqIFRoZSBSR0IgcHJpbWFyaWVzIGFuZCB0aGUgd2hpdGUgcG9pbnQgYXJlIHRoZSBzYW1lIGFzIEJULjcwOS4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZXMgYXJlIGZsb2F0aW5nIHBvaW50LgorICAgICAqIEEgcGl4ZWwgdmFsdWUgb2YgMS4wLCAxLjAsIDEuMCBjb3JyZXNwb25kcyB0byBzUkdCIHdoaXRlIChENjUpIGF0IDgwIG5pdHMuCisgICAgICogVmFsdWVzIGJleW9uZCB0aGUgcmFuZ2UgWzAuMCAtIDEuMF0gd291bGQgY29ycmVzcG9uZCB0byBvdGhlciBjb2xvcnMKKyAgICAgKiBzcGFjZXMgYW5kL29yIEhEUiBjb250ZW50LgorICAgICAqLworICAgIFYwX1NDUkdCX0xJTkVBUiA9IFNUQU5EQVJEX0JUNzA5IHwgVFJBTlNGRVJfTElORUFSIHwgUkFOR0VfRVhURU5ERUQsCisKKworICAgIC8qKgorICAgICAqIHNSR0IgZ2FtbWEgZW5jb2Rpbmc6CisgICAgICoKKyAgICAgKiBUaGUgcmVkLCBncmVlbiBhbmQgYmx1ZSBjb21wb25lbnRzIGFyZSBzdG9yZWQgaW4gc1JHQiBzcGFjZSwgYW5kCisgICAgICogY29udmVydGVkIHRvIGxpbmVhciBzcGFjZSB3aGVuIHJlYWQsIHVzaW5nIHRoZSBTUkdCIHRyYW5zZmVyIGZ1bmN0aW9uCisgICAgICogZm9yIGVhY2ggb2YgdGhlIFIsIEcgYW5kIEIgY29tcG9uZW50cy4gV2hlbiB3cml0dGVuLCB0aGUgaW52ZXJzZQorICAgICAqIHRyYW5zZm9ybWF0aW9uIGlzIHBlcmZvcm1lZC4KKyAgICAgKgorICAgICAqIFRoZSBhbHBoYSBjb21wb25lbnQsIGlmIHByZXNlbnQsIGlzIGFsd2F5cyBzdG9yZWQgaW4gbGluZWFyIHNwYWNlIGFuZAorICAgICAqIGlzIGxlZnQgdW5tb2RpZmllZCB3aGVuIHJlYWQgb3Igd3JpdHRlbi4KKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlIGFuZCBCVC43MDkgc3RhbmRhcmQuCisgICAgICovCisgICAgU1JHQiA9IDB4MjAxLCAvLyBkZXByZWNhdGVkLCB1c2UgVjBfU1JHQgorCisgICAgVjBfU1JHQiA9IFNUQU5EQVJEX0JUNzA5IHwgVFJBTlNGRVJfU1JHQiB8IFJBTkdFX0ZVTEwsCisKKworICAgIC8qKgorICAgICAqIHNjUkdCOgorICAgICAqCisgICAgICogVGhlIHJlZCwgZ3JlZW4sIGFuZCBibHVlIGNvbXBvbmVudHMgYXJlIHN0b3JlZCBpbiBleHRlbmRlZCBzUkdCIHNwYWNlLAorICAgICAqIGJ1dCBhcmUgbGluZWFyLCBub3QgZ2FtbWEtZW5jb2RlZC4KKyAgICAgKiBUaGUgUkdCIHByaW1hcmllcyBhbmQgdGhlIHdoaXRlIHBvaW50IGFyZSB0aGUgc2FtZSBhcyBCVC43MDkuCisgICAgICoKKyAgICAgKiBUaGUgdmFsdWVzIGFyZSBmbG9hdGluZyBwb2ludC4KKyAgICAgKiBBIHBpeGVsIHZhbHVlIG9mIDEuMCwgMS4wLCAxLjAgY29ycmVzcG9uZHMgdG8gc1JHQiB3aGl0ZSAoRDY1KSBhdCA4MCBuaXRzLgorICAgICAqIFZhbHVlcyBiZXlvbmQgdGhlIHJhbmdlIFswLjAgLSAxLjBdIHdvdWxkIGNvcnJlc3BvbmQgdG8gb3RoZXIgY29sb3JzCisgICAgICogc3BhY2VzIGFuZC9vciBIRFIgY29udGVudC4KKyAgICAgKi8KKyAgICBWMF9TQ1JHQiA9IFNUQU5EQVJEX0JUNzA5IHwgVFJBTlNGRVJfU1JHQiB8IFJBTkdFX0VYVEVOREVELAorCisgICAgLyoqCisgICAgICogWUNiQ3IgQ29sb3JzcGFjZXMKKyAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLQorICAgICAqCisgICAgICogUHJpbWFyaWVzIGFyZSBnaXZlbiB1c2luZyAoeCx5KSBjb29yZGluYXRlcyBpbiB0aGUgQ0lFIDE5MzEgZGVmaW5pdGlvbgorICAgICAqIG9mIHggYW5kIHkgc3BlY2lmaWVkIGJ5IElTTyAxMTY2NC0xLgorICAgICAqCisgICAgICogVHJhbnNmZXIgY2hhcmFjdGVyaXN0aWNzIGFyZSB0aGUgb3B0by1lbGVjdHJvbmljIHRyYW5zZmVyIGNoYXJhY3RlcmlzdGljCisgICAgICogYXQgdGhlIHNvdXJjZSBhcyBhIGZ1bmN0aW9uIG9mIGxpbmVhciBvcHRpY2FsIGludGVuc2l0eSAobHVtaW5hbmNlKS4KKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIEpQRUcgRmlsZSBJbnRlcmNoYW5nZSBGb3JtYXQgKEpGSUYpCisgICAgICoKKyAgICAgKiBTYW1lIG1vZGVsIGFzIEJULjYwMS02MjUsIGJ1dCBhbGwgdmFsdWVzIChZLCBDYiwgQ3IpIHJhbmdlIGZyb20gMCB0byAyNTUKKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlLCBCVC42MDEgdHJhbnNmZXIgYW5kIEJULjYwMV82MjUgc3RhbmRhcmQuCisgICAgICovCisgICAgSkZJRiA9IDB4MTAxLCAvLyBkZXByZWNhdGVkLCB1c2UgVjBfSkZJRgorCisgICAgVjBfSkZJRiA9IFNUQU5EQVJEX0JUNjAxXzYyNSB8IFRSQU5TRkVSX1NNUFRFXzE3ME0gfCBSQU5HRV9GVUxMLAorCisgICAgLyoqCisgICAgICogSVRVLVIgUmVjb21tZW5kYXRpb24gNjAxIChCVC42MDEpIC0gNjI1LWxpbmUKKyAgICAgKgorICAgICAqIFN0YW5kYXJkLWRlZmluaXRpb24gdGVsZXZpc2lvbiwgNjI1IExpbmVzIChQQUwpCisgICAgICoKKyAgICAgKiBVc2UgbGltaXRlZCByYW5nZSwgQlQuNjAxIHRyYW5zZmVyIGFuZCBCVC42MDFfNjI1IHN0YW5kYXJkLgorICAgICAqLworICAgIEJUNjAxXzYyNSA9IDB4MTAyLCAvLyBkZXByZWNhdGVkLCB1c2UgVjBfQlQ2MDFfNjI1CisKKyAgICBWMF9CVDYwMV82MjUgPSBTVEFOREFSRF9CVDYwMV82MjUgfCBUUkFOU0ZFUl9TTVBURV8xNzBNIHwgUkFOR0VfTElNSVRFRCwKKworCisgICAgLyoqCisgICAgICogSVRVLVIgUmVjb21tZW5kYXRpb24gNjAxIChCVC42MDEpIC0gNTI1LWxpbmUKKyAgICAgKgorICAgICAqIFN0YW5kYXJkLWRlZmluaXRpb24gdGVsZXZpc2lvbiwgNTI1IExpbmVzIChOVFNDKQorICAgICAqCisgICAgICogVXNlIGxpbWl0ZWQgcmFuZ2UsIEJULjYwMSB0cmFuc2ZlciBhbmQgQlQuNjAxXzUyNSBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBCVDYwMV81MjUgPSAweDEwMywgLy8gZGVwcmVjYXRlZCwgdXNlIFYwX0JUNjAxXzUyNQorCisgICAgVjBfQlQ2MDFfNTI1ID0gU1RBTkRBUkRfQlQ2MDFfNTI1IHwgVFJBTlNGRVJfU01QVEVfMTcwTSB8IFJBTkdFX0xJTUlURUQsCisKKyAgICAvKioKKyAgICAgKiBJVFUtUiBSZWNvbW1lbmRhdGlvbiA3MDkgKEJULjcwOSkKKyAgICAgKgorICAgICAqIEhpZ2gtZGVmaW5pdGlvbiB0ZWxldmlzaW9uCisgICAgICoKKyAgICAgKiBVc2UgbGltaXRlZCByYW5nZSwgQlQuNzA5IHRyYW5zZmVyIGFuZCBCVC43MDkgc3RhbmRhcmQuCisgICAgICovCisgICAgQlQ3MDkgPSAweDEwNCwgLy8gZGVwcmVjYXRlZCwgdXNlIFYwX0JUNzA5CisKKyAgICBWMF9CVDcwOSA9IFNUQU5EQVJEX0JUNzA5IHwgVFJBTlNGRVJfU01QVEVfMTcwTSB8IFJBTkdFX0xJTUlURUQsCisKKworICAgIC8qKgorICAgICAqIFNNUFRFIEVHIDQzMi0xIGFuZCBTTVBURSBSUCA0MzEtMi4KKyAgICAgKgorICAgICAqIERpZ2l0YWwgQ2luZW1hIERDSS1QMworICAgICAqCisgICAgICogVXNlIGZ1bGwgcmFuZ2UsIGxpbmVhciB0cmFuc2ZlciBhbmQgRDY1IERDSS1QMyBzdGFuZGFyZAorICAgICAqLworICAgIERDSV9QM19MSU5FQVIgPSBTVEFOREFSRF9EQ0lfUDMgfCBUUkFOU0ZFUl9MSU5FQVIgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBTTVBURSBFRyA0MzItMSBhbmQgU01QVEUgUlAgNDMxLTIuCisgICAgICoKKyAgICAgKiBEaWdpdGFsIENpbmVtYSBEQ0ktUDMKKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlLCBnYW1tYSAyLjYgdHJhbnNmZXIgYW5kIEQ2NSBEQ0ktUDMgc3RhbmRhcmQKKyAgICAgKiBOb3RlOiBBcHBsaWNhdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgZ2FtbWEgZW5jb2RpbmcgdGhlIGRhdGEgYXMKKyAgICAgKiBhIDIuNiBnYW1tYSBlbmNvZGluZyBpcyBub3Qgc3VwcG9ydGVkIGluIEhXLgorICAgICAqLworICAgIERDSV9QMyA9IFNUQU5EQVJEX0RDSV9QMyB8IFRSQU5TRkVSX0dBTU1BMl82IHwgUkFOR0VfRlVMTCwKKworCisgICAgLyoqCisgICAgICogRGlzcGxheSBQMworICAgICAqCisgICAgICogRGlzcGxheSBQMyB1c2VzIHNhbWUgcHJpbWFyaWVzIGFuZCB3aGl0ZS1wb2ludCBhcyBEQ0ktUDMKKyAgICAgKiBsaW5lYXIgdHJhbnNmZXIgZnVuY3Rpb24gbWFrZXMgdGhpcyB0aGUgc2FtZSBhcyBEQ0lfUDNfTElORUFSLgorICAgICAqLworICAgIERJU1BMQVlfUDNfTElORUFSID0gU1RBTkRBUkRfRENJX1AzIHwgVFJBTlNGRVJfTElORUFSIHwgUkFOR0VfRlVMTCwKKworCisgICAgLyoqCisgICAgICogRGlzcGxheSBQMworICAgICAqCisgICAgICogVXNlIHNhbWUgcHJpbWFyaWVzIGFuZCB3aGl0ZS1wb2ludCBhcyBEQ0ktUDMKKyAgICAgKiBidXQgc1JHQiB0cmFuc2ZlciBmdW5jdGlvbi4KKyAgICAgKi8KKyAgICBESVNQTEFZX1AzID0gU1RBTkRBUkRfRENJX1AzIHwgVFJBTlNGRVJfU1JHQiB8IFJBTkdFX0ZVTEwsCisKKworICAgIC8qKgorICAgICAqIEFkb2JlIFJHQgorICAgICAqCisgICAgICogVXNlIGZ1bGwgcmFuZ2UsIGdhbW1hIDIuMiB0cmFuc2ZlciBhbmQgQWRvYmUgUkdCIHByaW1hcmllcworICAgICAqIE5vdGU6IEFwcGxpY2F0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBnYW1tYSBlbmNvZGluZyB0aGUgZGF0YSBhcworICAgICAqIGEgMi4yIGdhbW1hIGVuY29kaW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gSFcuCisgICAgICovCisgICAgQURPQkVfUkdCID0gU1RBTkRBUkRfQURPQkVfUkdCIHwgVFJBTlNGRVJfR0FNTUEyXzIgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBJVFUtUiBSZWNvbW1lbmRhdGlvbiAyMDIwIChCVC4yMDIwKQorICAgICAqCisgICAgICogVWx0cmEgSGlnaC1kZWZpbml0aW9uIHRlbGV2aXNpb24KKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlLCBsaW5lYXIgdHJhbnNmZXIgYW5kIEJUMjAyMCBzdGFuZGFyZAorICAgICAqLworICAgIEJUMjAyMF9MSU5FQVIgPSBTVEFOREFSRF9CVDIwMjAgfCBUUkFOU0ZFUl9MSU5FQVIgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBJVFUtUiBSZWNvbW1lbmRhdGlvbiAyMDIwIChCVC4yMDIwKQorICAgICAqCisgICAgICogVWx0cmEgSGlnaC1kZWZpbml0aW9uIHRlbGV2aXNpb24KKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlLCBCVC43MDkgdHJhbnNmZXIgYW5kIEJUMjAyMCBzdGFuZGFyZAorICAgICAqLworICAgIEJUMjAyMCA9IFNUQU5EQVJEX0JUMjAyMCB8IFRSQU5TRkVSX1NNUFRFXzE3ME0gfCBSQU5HRV9GVUxMLAorCisgICAgLyoqCisgICAgICogSVRVLVIgUmVjb21tZW5kYXRpb24gMjAyMCAoQlQuMjAyMCkKKyAgICAgKgorICAgICAqIFVsdHJhIEhpZ2gtZGVmaW5pdGlvbiB0ZWxldmlzaW9uCisgICAgICoKKyAgICAgKiBVc2UgZnVsbCByYW5nZSwgU01QVEUgMjA4NCAoUFEpIHRyYW5zZmVyIGFuZCBCVDIwMjAgc3RhbmRhcmQKKyAgICAgKi8KKyAgICBCVDIwMjBfUFEgPSBTVEFOREFSRF9CVDIwMjAgfCBUUkFOU0ZFUl9TVDIwODQgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBEYXRhIHNwYWNlcyBmb3Igbm9uLWNvbG9yIGZvcm1hdHMKKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIFRoZSBidWZmZXIgY29udGFpbnMgZGVwdGggcmFuZ2luZyBtZWFzdXJlbWVudHMgZnJvbSBhIGRlcHRoIGNhbWVyYS4KKyAgICAgKiBUaGlzIHZhbHVlIGlzIHZhbGlkIHdpdGggZm9ybWF0czoKKyAgICAgKiAgICBIQUxfUElYRUxfRk9STUFUX1kxNjogMTYtYml0IHNhbXBsZXMsIGNvbnNpc3Rpbmcgb2YgYSBkZXB0aCBtZWFzdXJlbWVudAorICAgICAqICAgICAgIGFuZCBhbiBhc3NvY2lhdGVkIGNvbmZpZGVuY2UgdmFsdWUuIFRoZSAzIE1TQnMgb2YgdGhlIHNhbXBsZSBtYWtlCisgICAgICogICAgICAgdXAgdGhlIGNvbmZpZGVuY2UgdmFsdWUsIGFuZCB0aGUgbG93IDEzIExTQnMgb2YgdGhlIHNhbXBsZSBtYWtlIHVwCisgICAgICogICAgICAgdGhlIGRlcHRoIG1lYXN1cmVtZW50LgorICAgICAqICAgICAgIEZvciB0aGUgY29uZmlkZW5jZSBzZWN0aW9uLCAwIG1lYW5zIDEwMCUgY29uZmlkZW5jZSwgMSBtZWFucyAwJQorICAgICAqICAgICAgIGNvbmZpZGVuY2UuIFRoZSBtYXBwaW5nIHRvIGEgbGluZWFyIGZsb2F0IGNvbmZpZGVuY2UgdmFsdWUgYmV0d2VlbgorICAgICAqICAgICAgIDAuZiBhbmQgMS5mIGNhbiBiZSBvYnRhaW5lZCB3aXRoCisgICAgICogICAgICAgICBmbG9hdCBjb25maWRlbmNlID0gKCgoZGVwdGhTYW1wbGUgPj4gMTMpIC0gMSkgJiAweDcpIC8gNy4wZjsKKyAgICAgKiAgICAgICBUaGUgZGVwdGggbWVhc3VyZW1lbnQgY2FuIGJlIGV4dHJhY3RlZCBzaW1wbHkgd2l0aAorICAgICAqICAgICAgICAgdWludDE2X3QgcmFuZ2UgPSAoZGVwdGhTYW1wbGUgJiAweDFGRkYpOworICAgICAqICAgIEhBTF9QSVhFTF9GT1JNQVRfQkxPQjogQSBkZXB0aCBwb2ludCBjbG91ZCwgYXMKKyAgICAgKiAgICAgICBhIHZhcmlhYmxlLWxlbmd0aCBmbG9hdCAoeCx5LHosIGNvbmZpZGVuY2UpIGNvb3JkaW5hdGUgcG9pbnQgbGlzdC4KKyAgICAgKiAgICAgICBUaGUgcG9pbnQgY2xvdWQgd2lsbCBiZSByZXByZXNlbnRlZCB3aXRoIHRoZSBhbmRyb2lkX2RlcHRoX3BvaW50cworICAgICAqICAgICAgIHN0cnVjdHVyZS4KKyAgICAgKi8KKyAgICBERVBUSCA9IDB4MTAwMCwKKworCisgICAgLyoqCisgICAgICogVGhlIGJ1ZmZlciBjb250YWlucyBzZW5zb3IgZXZlbnRzIGZyb20gc2Vuc29yIGRpcmVjdCByZXBvcnQuCisgICAgICogVGhpcyB2YWx1ZSBpcyB2YWxpZCB3aXRoIGZvcm1hdHM6CisgICAgICogICAgSEFMX1BJWEVMX0ZPUk1BVF9CTE9COiBhbiBhcnJheSBvZiBzZW5zb3IgZXZlbnQgc3RydWN0dXJlIHRoYXQgZm9ybXMKKyAgICAgKiAgICAgICBhIGxvY2sgZnJlZSBxdWV1ZS4gRm9ybWF0IG9mIHNlbnNvciBldmVudCBzdHJ1Y3R1cmUgaXMgc3BlY2lmaWVkCisgICAgICogICAgICAgaW4gU2Vuc29ycyBIQUwuCisgICAgICovCisgICAgU0VOU09SID0gMHgxMDAxCit9OworCisvKioKKyAqIENvbG9yIG1vZGVzIHRoYXQgbWF5IGJlIHN1cHBvcnRlZCBieSBhIGRpc3BsYXkuCisgKgorICogRGVmaW5pdGlvbnM6CisgKiBSZW5kZXJpbmcgaW50ZW50IGdlbmVyYWxseSBkZWZpbmVzIHRoZSBnb2FsIGluIG1hcHBpbmcgYSBzb3VyY2UgKGlucHV0KQorICogY29sb3IgdG8gYSBkZXN0aW5hdGlvbiBkZXZpY2UgY29sb3IgZm9yIGEgZ2l2ZW4gY29sb3IgbW9kZS4KKyAqCisgKiAgSXQgaXMgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCB0aHJlZSBjYXNlcyB3aGVyZSBtYXBwaW5nIG1heSBiZSBhcHBsaWVkOgorICogIDEuIFRoZSBzb3VyY2UgZ2FtdXQgaXMgbXVjaCBzbWFsbGVyIHRoYW4gdGhlIGRlc3RpbmF0aW9uIChkaXNwbGF5KSBnYW11dAorICogIDIuIFRoZSBzb3VyY2UgZ2FtdXQgaXMgbXVjaCBsYXJnZXIgdGhhbiB0aGUgZGVzdGluYXRpb24gZ2FtdXQgKHRoaXMgd2lsbAorICogIG9yZGluYXJpbHkgYmUgaGFuZGxlZCB1c2luZyBjb2xvcmltZXRyaWMgcmVuZGVyaW5nLCBiZWxvdykKKyAqICAzLiBUaGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBnYW11dHMgYXJlIHJvdWdobHkgZXF1YWwsIGFsdGhvdWdoIG5vdAorICogIGNvbXBsZXRlbHkgb3ZlcmxhcHBpbmcKKyAqICBBbHNvLCBhIGNvbW1vbiByZXF1aXJlbWVudCBmb3IgbWFwcGluZ3MgaXMgdGhhdCBza2luIHRvbmVzIHNob3VsZCBiZQorICogIHByZXNlcnZlZCwgb3IgYXQgbGVhc3QgcmVtYWluIG5hdHVyYWwgaW4gYXBwZWFyYW5jZS4KKyAqCisgKiAgQ29sb3JpbWV0cmljIFJlbmRlcmluZyBJbnRlbnQgKEFsbCBjYXNlcyk6CisgKiAgQ29sb3JpbWV0cmljIGluZGljYXRlcyB0aGF0IGNvbG9ycyBzaG91bGQgYmUgcHJlc2VydmVkLiBJbiB0aGUgY2FzZQorICogIHRoYXQgdGhlIHNvdXJjZSBnYW11dCBsaWVzIHdob2xseSB3aXRoaW4gdGhlIGRlc3RpbmF0aW9uIGdhbXV0IG9yIGlzCisgKiAgYWJvdXQgdGhlIHNhbWUgKCMxLCAjMyksIHRoaXMgd2lsbCBzaW1wbHkgbWVhbiB0aGF0IG5vIG1hbmlwdWxhdGlvbnMKKyAqICAobm8gc2F0dXJhdGlvbiBib29zdCwgZm9yIGV4YW1wbGUpIGFyZSBhcHBsaWVkLiBJbiB0aGUgY2FzZSB3aGVyZSBzb21lCisgKiAgc291cmNlIGNvbG9ycyBsaWUgb3V0c2lkZSB0aGUgZGVzdGluYXRpb24gZ2FtdXQgKCMyLCAjMyksIHRob3NlIHdpbGwKKyAqICBuZWVkIHRvIGJlIG1hcHBlZCB0byBjb2xvcnMgdGhhdCBhcmUgd2l0aGluIHRoZSBkZXN0aW5hdGlvbiBnYW11dCwKKyAqICB3aGlsZSB0aGUgYWxyZWFkeSBpbi1nYW11dCBjb2xvcnMgcmVtYWluIHVuY2hhbmdlZC4KKyAqCisgKiAgTm9uLWNvbG9yaW1ldHJpYyB0cmFuc2Zvcm1zIGNhbiB0YWtlIG1hbnkgZm9ybXMuIFRoZXJlIGFyZSBubyBoYXJkCisgKiAgcnVsZXMgYW5kIGl0J3MgbGVmdCB0byB0aGUgaW1wbGVtZW50YXRpb24gdG8gZGVmaW5lLgorICogIFR3byBjb21tb24gaW50ZW50cyBhcmUgZGVzY3JpYmVkIGJlbG93LgorICoKKyAqICBTdHJldGNoZWQtR2FtdXQgRW5oYW5jZW1lbnQgSW50ZW50IChTb3VyY2UgPCBEZXN0aW5hdGlvbik6CisgKiAgV2hlbiB0aGUgZGVzdGluYXRpb24gZ2FtdXQgaXMgbXVjaCBsYXJnZXIgdGhhbiB0aGUgc291cmNlIGdhbXV0ICgjMSksIHRoZQorICogIHNvdXJjZSBwcmltYXJpZXMgbWF5IGJlIHJlZGVmaW5lZCB0byByZWZsZWN0IHRoZSBmdWxsIGV4dGVudCBvZiB0aGUKKyAqICBkZXN0aW5hdGlvbiBzcGFjZSwgb3IgdG8gcmVmbGVjdCBhbiBpbnRlcm1lZGlhdGUgZ2FtdXQuCisgKiAgU2tpbi10b25lIHByZXNlcnZhdGlvbiB3b3VsZCBsaWtlbHkgYmUgYXBwbGllZC4gQW4gZXhhbXBsZSBtaWdodCBiZSBzUkdCCisgKiAgaW5wdXQgZGlzcGxheWVkIG9uIGEgRENJLVAzIGNhcGFibGUgZGV2aWNlLCB3aXRoIHNraW4tdG9uZSBwcmVzZXJ2YXRpb24uCisgKgorICogIFdpdGhpbi1HYW11dCBFbmhhbmNlbWVudCBJbnRlbnQgKFNvdXJjZSA+PSBEZXN0aW5hdGlvbik6CisgKiAgV2hlbiB0aGUgZGV2aWNlIChkZXN0aW5hdGlvbikgZ2FtdXQgaXMgbm90IGxhcmdlciB0aGFuIHRoZSBzb3VyY2UgZ2FtdXQKKyAqICAoIzIgb3IgIzMpLCBidXQgdGhlIGFwcGVhcmFuY2Ugb2YgYSBsYXJnZXIgZ2FtdXQgaXMgZGVzaXJlZCwgdGVjaG5pcXVlcworICogIHN1Y2ggYXMgc2F0dXJhdGlvbiBib29zdCBtYXkgYmUgYXBwbGllZCB0byB0aGUgc291cmNlIGNvbG9ycy4gU2tpbi10b25lCisgKiAgcHJlc2VydmF0aW9uIG1heSBiZSBhcHBsaWVkLiBUaGVyZSBpcyBubyB1bmlxdWUgbWV0aG9kIGZvciB3aXRoaW4tZ2FtdXQKKyAqICBlbmhhbmNlbWVudDsgaXQgd291bGQgYmUgZGVmaW5lZCB3aXRoaW4gYSBmbGV4aWJsZSBjb2xvciBtb2RlLgorICoKKyAqLworQGV4cG9ydChuYW1lPSJhbmRyb2lkX2NvbG9yX21vZGVfdCIsIHZhbHVlX3ByZWZpeD0iSEFMX0NPTE9SX01PREVfIikKK2VudW0gQ29sb3JNb2RlIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogREVGQVVMVCBpcyB0aGUgIm5hdGl2ZSIgZ2FtdXQgb2YgdGhlIGRpc3BsYXkuCisgICAgICogV2hpdGUgUG9pbnQ6IFZlbmRvci9PRU0gZGVmaW5lZAorICAgICAqIFBhbmVsIEdhbW1hOiBWZW5kb3IvT0VNIGRlZmluZWQgKHR5cGljYWxseSAyLjIpCisgICAgICogUmVuZGVyaW5nIEludGVudDogVmVuZG9yL09FTSBkZWZpbmVkICh0eXBpY2FsbHkgJ2VuaGFuY2VkJykKKyAgICAgKi8KKyAgICBOQVRJVkUgPSAwLAorCisgICAgLyoqCisgICAgICogU1RBTkRBUkRfQlQ2MDFfNjI1IGNvcnJlc3BvbmRzIHdpdGggZGlzcGxheQorICAgICAqIHNldHRpbmdzIHRoYXQgaW1wbGVtZW50IHRoZSBJVFUtUiBSZWNvbW1lbmRhdGlvbiBCVC42MDEKKyAgICAgKiBvciBSZWMgNjAxLiBVc2luZyA2MjUgbGluZSB2ZXJzaW9uCisgICAgICogUmVuZGVyaW5nIEludGVudDogQ29sb3JpbWV0cmljCisgICAgICogUHJpbWFyaWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjI5MCAgIDAuNjAwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqCisgICAgICogIEtSID0gMC4yOTksIEtCID0gMC4xMTQuIFRoaXMgYWRqdXN0cyB0aGUgbHVtaW5hbmNlIGludGVycHJldGF0aW9uCisgICAgICogIGZvciBSR0IgY29udmVyc2lvbiBmcm9tIHRoZSBvbmUgcHVyZWx5IGRldGVybWluZWQgYnkgdGhlIHByaW1hcmllcworICAgICAqICB0byBtaW5pbWl6ZSB0aGUgY29sb3Igc2hpZnQgaW50byBSR0Igc3BhY2UgdGhhdCB1c2VzIEJULjcwOQorICAgICAqICBwcmltYXJpZXMuCisgICAgICoKKyAgICAgKiBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciA8IDAuMDE4CisgICAgICogICAgVm5vbmxpbmVhciA9IDQuNTAwICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDk5ICogKFZsaW5lYXIpXigwLjQ1KSDigJMgMC4wOTkKKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV82MjUgPSAxLAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjI5MCAgIDAuNjAwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqCisgICAgICogIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjIyLCBLQiA9IDAuMDcxIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqICBmb3IgUkdCIGNvbnZlcnNpb24uCisgICAgICoKKyAgICAgKiBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciA8IDAuMDE4CisgICAgICogICAgVm5vbmxpbmVhciA9IDQuNTAwICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDk5ICogKFZsaW5lYXIpXigwLjQ1KSDigJMgMC4wOTkKKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV82MjVfVU5BREpVU1RFRCA9IDIsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzEwICAgMC41OTUKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTU1ICAgMC4wNzAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjMwICAgMC4zNDAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiAgS1IgPSAwLjI5OSwgS0IgPSAwLjExNC4gVGhpcyBhZGp1c3RzIHRoZSBsdW1pbmFuY2UgaW50ZXJwcmV0YXRpb24KKyAgICAgKiAgZm9yIFJHQiBjb252ZXJzaW9uIGZyb20gdGhlIG9uZSBwdXJlbHkgZGV0ZXJtaW5lZCBieSB0aGUgcHJpbWFyaWVzCisgICAgICogIHRvIG1pbmltaXplIHRoZSBjb2xvciBzaGlmdCBpbnRvIFJHQiBzcGFjZSB0aGF0IHVzZXMgQlQuNzA5CisgICAgICogIHByaW1hcmllcy4KKyAgICAgKgorICAgICAqIEdhbW1hIENvcnJlY3Rpb24gKEdDKToKKyAgICAgKgorICAgICAqICBpZiBWbGluZWFyIDwgMC4wMTgKKyAgICAgKiAgICBWbm9ubGluZWFyID0gNC41MDAgKiBWbGluZWFyCisgICAgICogIGVsc2UKKyAgICAgKiAgICBWbm9ubGluZWFyID0gMS4wOTkgKiAoVmxpbmVhcileKDAuNDUpIOKAkyAwLjA5OQorICAgICAqLworICAgIFNUQU5EQVJEX0JUNjAxXzUyNSA9IDMsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzEwICAgMC41OTUKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTU1ICAgMC4wNzAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjMwICAgMC4zNDAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiAgVXNlIHRoZSB1bmFkanVzdGVkIEtSID0gMC4yMTIsIEtCID0gMC4wODcgbHVtaW5hbmNlIGludGVycHJldGF0aW9uCisgICAgICogIGZvciBSR0IgY29udmVyc2lvbiAoYXMgaW4gU01QVEUgMjQwTSkuCisgICAgICoKKyAgICAgKiBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciA8IDAuMDE4CisgICAgICogICAgVm5vbmxpbmVhciA9IDQuNTAwICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDk5ICogKFZsaW5lYXIpXigwLjQ1KSDigJMgMC4wOTkKKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV81MjVfVU5BREpVU1RFRCA9IDQsCisKKyAgICAvKioKKyAgICAgKiBSRUM3MDkgY29ycmVzcG9uZHMgd2l0aCBkaXNwbGF5IHNldHRpbmdzIHRoYXQgaW1wbGVtZW50CisgICAgICogdGhlIElUVS1SIFJlY29tbWVuZGF0aW9uIEJULjcwOSAvIFJlYy4gNzA5IGZvciBoaWdoLWRlZmluaXRpb24gdGVsZXZpc2lvbi4KKyAgICAgKiBSZW5kZXJpbmcgSW50ZW50OiBDb2xvcmltZXRyaWMKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzAwICAgMC42MDAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjQwICAgMC4zMzAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBIRFRWIFJFQzcwOSBJbnZlcnNlIEdhbW1hIENvcnJlY3Rpb24gKElHQyk6IFYgcmVwcmVzZW50cyBub3JtYWxpemVkCisgICAgICogKHdpdGggWzAgdG8gMV0gcmFuZ2UpIHZhbHVlIG9mIFIsIEcsIG9yIEIuCisgICAgICoKKyAgICAgKiAgaWYgVm5vbmxpbmVhciA8IDAuMDgxCisgICAgICogICAgVmxpbmVhciA9IFZub25saW5lYXIgLyA0LjUKKyAgICAgKiAgZWxzZQorICAgICAqICAgIFZsaW5lYXIgPSAoKFZub25saW5lYXIgKyAwLjA5OSkgLyAxLjA5OSkgXiAoMS8wLjQ1KQorICAgICAqCisgICAgICogSERUViBSRUM3MDkgR2FtbWEgQ29ycmVjdGlvbiAoR0MpOgorICAgICAqCisgICAgICogIGlmIFZsaW5lYXIgPCAwLjAxOAorICAgICAqICAgIFZub25saW5lYXIgPSA0LjUgKiBWbGluZWFyCisgICAgICogIGVsc2UKKyAgICAgKiAgICBWbm9ubGluZWFyID0gMS4wOTkgKiAoVmxpbmVhcikgXiAwLjQ1IOKAkyAwLjA5OQorICAgICAqLworICAgIFNUQU5EQVJEX0JUNzA5ID0gNSwKKworICAgIC8qKgorICAgICAqIERDSV9QMyBjb3JyZXNwb25kcyB3aXRoIGRpc3BsYXkgc2V0dGluZ3MgdGhhdCBpbXBsZW1lbnQKKyAgICAgKiBTTVBURSBFRyA0MzItMSBhbmQgU01QVEUgUlAgNDMxLTIKKyAgICAgKiBSZW5kZXJpbmcgSW50ZW50OiBDb2xvcmltZXRyaWMKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjY1ICAgMC42OTAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjgwICAgMC4zMjAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBHYW1tYTogMi42CisgICAgICovCisgICAgRENJX1AzID0gNiwKKworICAgIC8qKgorICAgICAqIFNSR0IgY29ycmVzcG9uZHMgd2l0aCBkaXNwbGF5IHNldHRpbmdzIHRoYXQgaW1wbGVtZW50CisgICAgICogdGhlIHNSR0IgY29sb3Igc3BhY2UuIFVzZXMgdGhlIHNhbWUgcHJpbWFyaWVzIGFzIElUVS1SIFJlY29tbWVuZGF0aW9uCisgICAgICogQlQuNzA5CisgICAgICogUmVuZGVyaW5nIEludGVudDogQ29sb3JpbWV0cmljCisgICAgICogUHJpbWFyaWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjMwMCAgIDAuNjAwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqCisgICAgICogUEMvSW50ZXJuZXQgKHNSR0IpIEludmVyc2UgR2FtbWEgQ29ycmVjdGlvbiAoSUdDKToKKyAgICAgKgorICAgICAqICBpZiBWbm9ubGluZWFyIOKJpCAwLjAzOTI4CisgICAgICogICAgVmxpbmVhciA9IFZub25saW5lYXIgLyAxMi45MgorICAgICAqICBlbHNlCisgICAgICogICAgVmxpbmVhciA9ICgoVm5vbmxpbmVhciArIDAuMDU1KS8xLjA1NSkgXiAyLjQKKyAgICAgKgorICAgICAqIFBDL0ludGVybmV0IChzUkdCKSBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciDiiaQgMC4wMDMxMzA4CisgICAgICogICAgVm5vbmxpbmVhciA9IDEyLjkyICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDU1ICogKFZsaW5lYXIpXigxLzIuNCkg4oCTIDAuMDU1CisgICAgICovCisgICAgU1JHQiA9IDcsCisKKyAgICAvKioKKyAgICAgKiBBRE9CRV9SR0IgY29ycmVzcG9uZHMgd2l0aCB0aGUgUkdCIGNvbG9yIHNwYWNlIGRldmVsb3BlZAorICAgICAqIGJ5IEFkb2JlIFN5c3RlbXMsIEluYy4gaW4gMTk5OC4KKyAgICAgKiBSZW5kZXJpbmcgSW50ZW50OiBDb2xvcmltZXRyaWMKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjEwICAgMC43MTAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjQwICAgMC4zMzAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBHYW1tYTogMi4yCisgICAgICovCisgICAgQURPQkVfUkdCID0gOCwKKworICAgIC8qKgorICAgICAqIERJU1BMQVlfUDMgaXMgYSBjb2xvciBzcGFjZSB0aGF0IHVzZXMgdGhlIERDSV9QMyBwcmltYXJpZXMsCisgICAgICogdGhlIEQ2NSB3aGl0ZSBwb2ludCBhbmQgdGhlIFNSR0IgdHJhbnNmZXIgZnVuY3Rpb25zLgorICAgICAqIFJlbmRlcmluZyBJbnRlbnQ6IENvbG9yaW1ldHJpYworICAgICAqIFByaW1hcmllczoKKyAgICAgKiAgICAgICAgICAgICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yNjUgICAwLjY5MAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42ODAgICAwLjMyMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqIFBDL0ludGVybmV0IChzUkdCKSBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciDiiaQgMC4wMDMwMTg2CisgICAgICogICAgVm5vbmxpbmVhciA9IDEyLjkyICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDU1ICogKFZsaW5lYXIpXigxLzIuNCkg4oCTIDAuMDU1CisgICAgICoKKyAgICAgKiBOb3RlOiBJbiBtb3N0IGNhc2VzIHNSR0IgdHJhbnNmZXIgZnVuY3Rpb24gd2lsbCBiZSBmaW5lLgorICAgICAqLworICAgIERJU1BMQVlfUDMgPSA5Cit9OworCisvKioKKyAqIENvbG9yIHRyYW5zZm9ybXMgdGhhdCBtYXkgYmUgYXBwbGllZCBieSBoYXJkd2FyZSBjb21wb3NlciB0byB0aGUgd2hvbGUKKyAqIGRpc3BsYXkuCisgKi8KK0BleHBvcnQobmFtZT0iYW5kcm9pZF9jb2xvcl90cmFuc2Zvcm1fdCIsIHZhbHVlX3ByZWZpeD0iSEFMX0NPTE9SX1RSQU5TRk9STV8iKQorZW51bSBDb2xvclRyYW5zZm9ybSA6IGludDMyX3QgeworICAgIC8qKiBBcHBsaWVzIG5vIHRyYW5zZm9ybSB0byB0aGUgb3V0cHV0IGNvbG9yICovCisgICAgSURFTlRJVFkgPSAwLAorCisgICAgLyoqIEFwcGxpZXMgYW4gYXJiaXRyYXJ5IHRyYW5zZm9ybSBkZWZpbmVkIGJ5IGEgNHg0IGFmZmluZSBtYXRyaXggKi8KKyAgICBBUkJJVFJBUllfTUFUUklYID0gMSwKKworICAgIC8qKgorICAgICAqIEFwcGxpZXMgYSB0cmFuc2Zvcm0gdGhhdCBpbnZlcnRzIHRoZSB2YWx1ZSBvciBsdW1pbmFuY2Ugb2YgdGhlIGNvbG9yLCBidXQKKyAgICAgKiBkb2VzIG5vdCBtb2RpZnkgaHVlIG9yIHNhdHVyYXRpb24gKi8KKyAgICBWQUxVRV9JTlZFUlNFID0gMiwKKworICAgIC8qKiBBcHBsaWVzIGEgdHJhbnNmb3JtIHRoYXQgbWFwcyBhbGwgY29sb3JzIHRvIHNoYWRlcyBvZiBncmF5ICovCisgICAgR1JBWVNDQUxFID0gMywKKworICAgIC8qKiBBcHBsaWVzIGEgdHJhbnNmb3JtIHdoaWNoIGNvcnJlY3RzIGZvciBwcm90YW5vcGljIGNvbG9yIGJsaW5kbmVzcyAqLworICAgIENPUlJFQ1RfUFJPVEFOT1BJQSA9IDQsCisKKyAgICAvKiogQXBwbGllcyBhIHRyYW5zZm9ybSB3aGljaCBjb3JyZWN0cyBmb3IgZGV1dGVyYW5vcGljIGNvbG9yIGJsaW5kbmVzcyAqLworICAgIENPUlJFQ1RfREVVVEVSQU5PUElBID0gNSwKKworICAgIC8qKiBBcHBsaWVzIGEgdHJhbnNmb3JtIHdoaWNoIGNvcnJlY3RzIGZvciB0cml0YW5vcGljIGNvbG9yIGJsaW5kbmVzcyAqLworICAgIENPUlJFQ1RfVFJJVEFOT1BJQSA9IDYKK307CisKKy8qKgorICogU3VwcG9ydGVkIEhEUiBmb3JtYXRzLiBNdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIGVxdWl2YWxlbnRzIGluIERpc3BsYXkuamF2YS4KKyAqLworQGV4cG9ydChuYW1lPSJhbmRyb2lkX2hkcl90IiwgdmFsdWVfcHJlZml4PSJIQUxfSERSXyIpCitlbnVtIEhkciA6IGludDMyX3QgeworICAgIC8qKiBEZXZpY2Ugc3VwcG9ydHMgRG9sYnkgVmlzaW9uIEhEUiAqLworICAgIERPTEJZX1ZJU0lPTiA9IDEsCisKKyAgICAvKiogRGV2aWNlIHN1cHBvcnRzIEhEUjEwICovCisgICAgSERSMTAgPSAyLAorCisgICAgLyoqIERldmljZSBzdXBwb3J0cyBoeWJyaWQgbG9nLWdhbW1hIEhEUiAqLworICAgIEhMRyA9IDMKK307CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvQW5kcm9pZC5icCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5OTU3MGQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvQW5kcm9pZC5icApAQCAtMCwwICsxLDc5IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklDb21wb3Nlci5oYWwiLAorICAgICAgICAiSUNvbXBvc2VyQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklDb21wb3NlckNsaWVudC5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMV9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0NvbXBvc2VyQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Db21wb3NlckNhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Db21wb3NlckNsaWVudEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMV9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMV9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JSHdDb21wb3Nlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JuSHdDb21wb3Nlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JwSHdDb21wb3Nlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JzQ29tcG9zZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0lId0NvbXBvc2VyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Cbkh3Q29tcG9zZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JwSHdDb21wb3NlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvQnNDb21wb3NlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2xpZW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUh3Q29tcG9zZXJDbGllbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Cbkh3Q29tcG9zZXJDbGllbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9CcEh3Q29tcG9zZXJDbGllbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Cc0NvbXBvc2VyQ2xpZW50LmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0FuZHJvaWQubWsgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaGFsIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0lDb21wb3Nlci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJhYTVjZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaGFsCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOworCitpbXBvcnQgSUNvbXBvc2VyQ2xpZW50OworCitpbnRlcmZhY2UgSUNvbXBvc2VyIHsKKyAgICAvKioKKyAgICAgKiBPcHRpb25hbCBjYXBhYmlsaXRpZXMgd2hpY2ggbWF5IGJlIHN1cHBvcnRlZCBieSBzb21lIGRldmljZXMuIFRoZQorICAgICAqIHBhcnRpY3VsYXIgc2V0IG9mIHN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgZm9yIGEgZ2l2ZW4gZGV2aWNlIG1heSBiZQorICAgICAqIHJldHJpZXZlZCB1c2luZyBnZXRDYXBhYmlsaXRpZXMuCisgICAgICovCisgICAgZW51bSBDYXBhYmlsaXR5IDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTcGVjaWZpZXMgdGhhdCB0aGUgZGV2aWNlIHN1cHBvcnRzIHNpZGViYW5kIHN0cmVhbSBsYXllcnMsIGZvcgorICAgICAgICAgKiB3aGljaCBidWZmZXIgY29udGVudCB1cGRhdGVzIGFuZCBvdGhlciBzeW5jaHJvbml6YXRpb24gd2lsbCBub3QgYmUKKyAgICAgICAgICogcHJvdmlkZWQgdGhyb3VnaCB0aGUgdXN1YWwgdmFsaWRhdGUvcHJlc2VudCBjeWNsZSBhbmQgbXVzdCBiZQorICAgICAgICAgKiBoYW5kbGVkIGJ5IGFuIGV4dGVybmFsIGltcGxlbWVudGF0aW9uLWRlZmluZWQgbWVjaGFuaXNtLiBPbmx5CisgICAgICAgICAqIGNoYW5nZXMgdG8gbGF5ZXIgc3RhdGUgKHN1Y2ggYXMgcG9zaXRpb24sIHNpemUsIGV0Yy4pIG5lZWQgdG8gYmUKKyAgICAgICAgICogcGVyZm9ybWVkIHRocm91Z2ggdGhlIHZhbGlkYXRlL3ByZXNlbnQgY3ljbGUuCisgICAgICAgICAqLworICAgICAgICBTSURFQkFORF9TVFJFQU0gPSAxLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTcGVjaWZpZXMgdGhhdCB0aGUgZGV2aWNlIHdpbGwgYXBwbHkgYSBjb2xvciB0cmFuc2Zvcm0gZXZlbiB3aGVuCisgICAgICAgICAqIGVpdGhlciB0aGUgY2xpZW50IG9yIHRoZSBkZXZpY2UgaGFzIGNob3NlbiB0aGF0IGFsbCBsYXllcnMgc2hvdWxkCisgICAgICAgICAqIGJlIGNvbXBvc2VkIGJ5IHRoZSBjbGllbnQuIFRoaXMgd2lsbCBwcmV2ZW50IHRoZSBjbGllbnQgZnJvbQorICAgICAgICAgKiBhcHBseWluZyB0aGUgY29sb3IgdHJhbnNmb3JtIGR1cmluZyBpdHMgY29tcG9zaXRpb24gc3RlcC4KKyAgICAgICAgICovCisgICAgICAgIFNLSVBfQ0xJRU5UX0NPTE9SX1RSQU5TRk9STSA9IDIsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNwZWNpZmllcyB0aGF0IHRoZSBwcmVzZW50IGZlbmNlIG11c3Qgbm90IGJlIHVzZWQgYXMgYW4gYWNjdXJhdGUKKyAgICAgICAgICogcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBwcmVzZW50IHRpbWUgb2YgYSBmcmFtZS4KKyAgICAgICAgICovCisgICAgICAgIFBSRVNFTlRfRkVOQ0VfSVNfTk9UX1JFTElBQkxFID0gMywKKyAgICB9OworCisgICAgLyoqCisgICAgICogUHJvdmlkZXMgYSBsaXN0IG9mIHN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgKGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgKiBkZWZpbml0aW9uIG9mIENhcGFiaWxpdHkgYWJvdmUpLiBUaGlzIGxpc3QgbXVzdCBub3QgY2hhbmdlIGFmdGVyCisgICAgICogaW5pdGlhbGl6YXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGNhcGFiaWxpdGllcyBpcyBhIGxpc3Qgb2Ygc3VwcG9ydGVkIGNhcGFiaWxpdGllcy4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAZXhpdAorICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXRDYXBhYmlsaXRpZXMoKSBnZW5lcmF0ZXMgKHZlYzxDYXBhYmlsaXR5PiBjYXBhYmlsaXRpZXMpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIGltcGxlbWVudGF0aW9uLWRlZmluZWQgZGVidWcgaW5mb3JtYXRpb24sIHdoaWNoIHdpbGwgYmUKKyAgICAgKiBkaXNwbGF5ZWQgZHVyaW5nLCBmb3IgZXhhbXBsZSwgYGR1bXBzeXMgU3VyZmFjZUZsaW5nZXJgLgorICAgICAqCisgICAgICogQHJldHVybiBkZWJ1Z0luZm8gaXMgYSBzdHJpbmcgb2YgZGVidWcgaW5mb3JtYXRpb24uCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZHVtcERlYnVnSW5mbygpIGdlbmVyYXRlcyAoc3RyaW5nIGRlYnVnSW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY2xpZW50IG9mIHRoZSBjb21wb3Nlci4gQWxsIHJlc291cmNlcyBjcmVhdGVkIGJ5IHRoZSBjbGllbnQKKyAgICAgKiBhcmUgb3duZWQgYnkgdGhlIGNsaWVudCBhbmQgYXJlIG9ubHkgdmlzaWJsZSB0byB0aGUgY2xpZW50LgorICAgICAqCisgICAgICogVGhlcmUgY2FuIG9ubHkgYmUgb25lIGNsaWVudCBhdCBhbnkgdGltZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIG5vIG1vcmUgY2xpZW50IGNhbiBiZSBjcmVhdGVkIGN1cnJlbnRseS4KKyAgICAgKiBAcmV0dXJuIGNsaWVudCBpcyB0aGUgbmV3bHkgY3JlYXRlZCBjbGllbnQuCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGNyZWF0ZUNsaWVudCgpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsIElDb21wb3NlckNsaWVudCBjbGllbnQpOworfTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXJDYWxsYmFjay5oYWwgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiNzRjMzAKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOworCitpbnRlcmZhY2UgSUNvbXBvc2VyQ2FsbGJhY2sgeworICAgIGVudW0gQ29ubmVjdGlvbiA6IGludDMyX3QgeworICAgICAgICBJTlZBTElEID0gMCwKKworICAgICAgICAvKiogVGhlIGRpc3BsYXkgaGFzIGJlZW4gY29ubmVjdGVkICovCisgICAgICAgIENPTk5FQ1RFRCA9IDEsCisgICAgICAgIC8qKiBUaGUgZGlzcGxheSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQgKi8KKyAgICAgICAgRElTQ09OTkVDVEVEID0gMiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBnaXZlbiBkaXNwbGF5IGhhcyBlaXRoZXIgYmVlbiBjb25uZWN0ZWQgb3IKKyAgICAgKiBkaXNjb25uZWN0ZWQuIEV2ZXJ5IGFjdGl2ZSBkaXNwbGF5IChldmVuIGEgYnVpbHQtaW4gcGh5c2ljYWwgZGlzcGxheSkKKyAgICAgKiBtdXN0IHRyaWdnZXIgYXQgbGVhc3Qgb25lIGhvdHBsdWcgbm90aWZpY2F0aW9uLCBldmVuIGlmIGl0IG9ubHkgb2NjdXJzCisgICAgICogaW1tZWRpYXRlbHkgYWZ0ZXIgY2FsbGJhY2sgcmVnaXN0cmF0aW9uLgorICAgICAqCisgICAgICogRGlzcGxheXMgd2hpY2ggaGF2ZSBiZWVuIGNvbm5lY3RlZCBhcmUgYXNzdW1lZCB0byBiZSBpbiBQb3dlck1vZGU6Ok9GRiwKKyAgICAgKiBhbmQgdGhlIG9uVnN5bmMgY2FsbGJhY2sgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIGEgZGlzcGxheSB1bnRpbCB2c3luYworICAgICAqIGhhcyBiZWVuIGVuYWJsZWQgd2l0aCBzZXRWc3luY0VuYWJsZWQuCisgICAgICoKKyAgICAgKiBUaGUgY2xpZW50IG1heSBjYWxsIGJhY2sgaW50byB0aGUgZGV2aWNlIHdoaWxlIHRoZSBjYWxsYmFjayBpcyBpbgorICAgICAqIHByb2dyZXNzLiBUaGUgZGV2aWNlIG11c3Qgc2VyaWFsaXplIGNhbGxzIHRvIHRoaXMgY2FsbGJhY2sgc3VjaCB0aGF0CisgICAgICogb25seSBvbmUgdGhyZWFkIGlzIGNhbGxpbmcgaXQgYXQgYSB0aW1lLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdGhhdCB0cmlnZ2VycyB0aGUgaG90cGx1ZyBldmVudC4KKyAgICAgKiBAcGFyYW0gY29ubmVjdGVkIGluZGljYXRlcyB3aGV0aGVyIHRoZSBkaXNwbGF5IGlzIGNvbm5lY3RlZCBvcgorICAgICAqICAgICAgICBkaXNjb25uZWN0ZWQuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIG9uSG90cGx1ZyhEaXNwbGF5IGRpc3BsYXksIENvbm5lY3Rpb24gY29ubmVjdGVkKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBjbGllbnQgdG8gdHJpZ2dlciBhIHNjcmVlbiByZWZyZXNoLiBUaGlzIGZvcmNlcyBhbGwgbGF5ZXIKKyAgICAgKiBzdGF0ZSBmb3IgdGhpcyBkaXNwbGF5IHRvIGJlIHJlc2VudCwgYW5kIHRoZSBkaXNwbGF5IHRvIGJlIHZhbGlkYXRlZAorICAgICAqIGFuZCBwcmVzZW50ZWQsIGV2ZW4gaWYgdGhlcmUgaGF2ZSBiZWVuIG5vIGNoYW5nZXMuCisKKyAgICAgKiBUaGlzIHJlZnJlc2ggd2lsbCBvY2N1ciBzb21lIHRpbWUgYWZ0ZXIgdGhlIGNhbGxiYWNrIGlzIGluaXRpYXRlZCwgYnV0CisgICAgICogbm90IG5lY2Vzc2FyaWx5IGJlZm9yZSBpdCByZXR1cm5zLiAgSXQgaXMgc2FmZSB0byB0cmlnZ2VyIHRoaXMgY2FsbGJhY2sKKyAgICAgKiBmcm9tIG90aGVyIGZ1bmN0aW9ucyB3aGljaCBjYWxsIGludG8gdGhlIGRldmljZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHJlZnJlc2guCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIG9uZXdheSBvblJlZnJlc2goRGlzcGxheSBkaXNwbGF5KTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBjbGllbnQgdGhhdCBhIHZzeW5jIGV2ZW50IGhhcyBvY2N1cnJlZC4gVGhpcyBjYWxsYmFjayBtdXN0CisgICAgICogb25seSBiZSB0cmlnZ2VyZWQgd2hlbiB2c3luYyBpcyBlbmFibGVkIGZvciB0aGlzIGRpc3BsYXkgKHRocm91Z2gKKyAgICAgKiBzZXRWc3luY0VuYWJsZWQpLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgd2hpY2ggaGFzIHJlY2VpdmVkIGEgdnN5bmMgZXZlbnQKKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIGlzIHRoZSBDTE9DS19NT05PVE9OSUMgdGltZSBhdCB3aGljaCB0aGUgdnN5bmMgZXZlbnQKKyAgICAgKiAgICAgICAgb2NjdXJyZWQsIGluIG5hbm9zZWNvbmRzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBvbmV3YXkgb25Wc3luYyhEaXNwbGF5IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKTsKK307CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2xpZW50LmhhbCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXJDbGllbnQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NTcyZDQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2xpZW50LmhhbApAQCAtMCwwICsxLDExNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOworaW1wb3J0IElDb21wb3NlckNhbGxiYWNrOworCitpbnRlcmZhY2UgSUNvbXBvc2VyQ2xpZW50IHsKKyAgICAvKiogRGlzcGxheSBhdHRyaWJ1dGVzIHF1ZXJ5YWJsZSB0aHJvdWdoIGdldERpc3BsYXlBdHRyaWJ1dGUuICovCisgICAgZW51bSBBdHRyaWJ1dGUgOiBpbnQzMl90IHsKKyAgICAgICAgSU5WQUxJRCA9IDAsCisKKyAgICAgICAgLyoqIERpbWVuc2lvbnMgaW4gcGl4ZWxzICovCisgICAgICAgIFdJRFRIID0gMSwKKyAgICAgICAgSEVJR0hUID0gMiwKKworICAgICAgICAvKiogVnN5bmMgcGVyaW9kIGluIG5hbm9zZWNvbmRzICovCisgICAgICAgIFZTWU5DX1BFUklPRCA9IDMsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERvdHMgcGVyIHRob3VzYW5kIGluY2hlcyAoRFBJICogMTAwMCkuIFNjYWxpbmcgYnkgMTAwMCBhbGxvd3MgdGhlc2UKKyAgICAgICAgICogbnVtYmVycyB0byBiZSBzdG9yZWQgaW4gYW4gaW50MzJfdCB3aXRob3V0IGxvc2luZyB0b28gbXVjaAorICAgICAgICAgKiBwcmVjaXNpb24uIElmIHRoZSBEUEkgZm9yIGEgY29uZmlndXJhdGlvbiBpcyB1bmF2YWlsYWJsZSBvciBpcworICAgICAgICAgKiBjb25zaWRlcmVkIHVucmVsaWFibGUsIHRoZSBkZXZpY2UgbWF5IHJldHVybiBVTlNVUFBPUlRFRCBpbnN0ZWFkLgorICAgICAgICAgKi8KKyAgICAgICAgRFBJX1ggPSA0LAorICAgICAgICBEUElfWSA9IDUsCisgICAgfTsKKworICAgIC8qKiBEaXNwbGF5IHJlcXVlc3RzIHJldHVybmVkIGJ5IGdldERpc3BsYXlSZXF1ZXN0cy4gKi8KKyAgICBlbnVtIERpc3BsYXlSZXF1ZXN0IDogdWludDMyX3QgeworICAgICAgICAvKioKKyAgICAgICAgICogSW5zdHJ1Y3RzIHRoZSBjbGllbnQgdG8gcHJvdmlkZSBhIG5ldyBjbGllbnQgdGFyZ2V0IGJ1ZmZlciwgZXZlbiBpZgorICAgICAgICAgKiBubyBsYXllcnMgYXJlIG1hcmtlZCBmb3IgY2xpZW50IGNvbXBvc2l0aW9uLgorICAgICAgICAgKi8KKyAgICAgICAgRkxJUF9DTElFTlRfVEFSR0VUID0gMSA8PCAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbnN0cnVjdHMgdGhlIGNsaWVudCB0byB3cml0ZSB0aGUgcmVzdWx0IG9mIGNsaWVudCBjb21wb3NpdGlvbgorICAgICAgICAgKiBkaXJlY3RseSBpbnRvIHRoZSB2aXJ0dWFsIGRpc3BsYXkgb3V0cHV0IGJ1ZmZlci4gSWYgYW55IG9mIHRoZQorICAgICAgICAgKiBsYXllcnMgYXJlIG5vdCBtYXJrZWQgYXMgQ29tcG9zaXRpb246OkNMSUVOVCBvciB0aGUgZ2l2ZW4gZGlzcGxheQorICAgICAgICAgKiBpcyBub3QgYSB2aXJ0dWFsIGRpc3BsYXksIHRoaXMgcmVxdWVzdCBoYXMgbm8gZWZmZWN0LgorICAgICAgICAgKi8KKyAgICAgICAgV1JJVEVfQ0xJRU5UX1RBUkdFVF9UT19PVVRQVVQgPSAxIDw8IDEsCisgICAgfTsKKworICAgIC8qKiBMYXllciByZXF1ZXN0cyByZXR1cm5lZCBmcm9tIGdldERpc3BsYXlSZXF1ZXN0cy4gKi8KKyAgICBlbnVtIExheWVyUmVxdWVzdCA6IHVpbnQzMl90IHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjbGllbnQgbXVzdCBjbGVhciBpdHMgdGFyZ2V0IHdpdGggdHJhbnNwYXJlbnQgcGl4ZWxzIHdoZXJlCisgICAgICAgICAqIHRoaXMgbGF5ZXIgd291bGQgYmUuIFRoZSBjbGllbnQgbWF5IGlnbm9yZSB0aGlzIHJlcXVlc3QgaWYgdGhlCisgICAgICAgICAqIGxheWVyIG11c3QgYmUgYmxlbmRlZC4KKyAgICAgICAgICovCisgICAgICAgIENMRUFSX0NMSUVOVF9UQVJHRVQgPSAxIDw8IDAsCisgICAgfTsKKworICAgIC8qKiBQb3dlciBtb2RlcyBmb3IgdXNlIHdpdGggc2V0UG93ZXJNb2RlLiAqLworICAgIGVudW0gUG93ZXJNb2RlIDogaW50MzJfdCB7CisgICAgICAgIC8qKiBUaGUgZGlzcGxheSBpcyBmdWxseSBvZmYgKGJsYW5rZWQpLiAqLworICAgICAgICBPRkYgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGVzZSBhcmUgb3B0aW9uYWwgbG93IHBvd2VyIG1vZGVzLiBnZXREb3plU3VwcG9ydCBtYXkgYmUgY2FsbGVkIHRvCisgICAgICAgICAqIGRldGVybWluZSB3aGV0aGVyIGEgZ2l2ZW4gZGlzcGxheSBzdXBwb3J0cyB0aGVzZSBtb2Rlcy4KKyAgICAgICAgICovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkaXNwbGF5IGlzIHR1cm5lZCBvbiBhbmQgY29uZmlndXJlZCBpbiBhIGxvdyBwb3dlciBzdGF0ZSB0aGF0CisgICAgICAgICAqIGlzIHN1aXRhYmxlIGZvciBwcmVzZW50aW5nIGFtYmllbnQgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIsCisgICAgICAgICAqIHBvc3NpYmx5IHdpdGggbG93ZXIgZmlkZWxpdHkgdGhhbiBPTiwgYnV0IHdpdGggZ3JlYXRlciBlZmZpY2llbmN5LgorICAgICAgICAgKi8KKyAgICAgICAgRE9aRSA9IDEsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkaXNwbGF5IGlzIGNvbmZpZ3VyZWQgYXMgaW4gRE9aRSBidXQgbWF5IHN0b3AgYXBwbHlpbmcgZGlzcGxheQorICAgICAgICAgKiB1cGRhdGVzIGZyb20gdGhlIGNsaWVudC4gVGhpcyBpcyBlZmZlY3RpdmVseSBhIGhpbnQgdG8gdGhlIGRldmljZQorICAgICAgICAgKiB0aGF0IGRyYXdpbmcgdG8gdGhlIGRpc3BsYXkgaGFzIGJlZW4gc3VzcGVuZGVkIGFuZCB0aGF0IHRoZSB0aGUKKyAgICAgICAgICogZGV2aWNlIG11c3QgcmVtYWluIG9uIGluIGEgbG93IHBvd2VyIHN0YXRlIGFuZCBjb250aW51ZQorICAgICAgICAgKiBkaXNwbGF5aW5nIGl0cyBjdXJyZW50IGNvbnRlbnRzIGluZGVmaW5pdGVseSB1bnRpbCB0aGUgcG93ZXIgbW9kZQorICAgICAgICAgKiBjaGFuZ2VzLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIG1vZGUgbWF5IGFsc28gYmUgdXNlZCBhcyBhIHNpZ25hbCB0byBlbmFibGUgaGFyZHdhcmUtYmFzZWQKKyAgICAgICAgICogZG96ZSBmdW5jdGlvbmFsaXR5LiBJbiB0aGlzIGNhc2UsIHRoZSBkZXZpY2UgaXMgZnJlZSB0byB0YWtlIG92ZXIKKyAgICAgICAgICogdGhlIGRpc3BsYXkgYW5kIG1hbmFnZSBpdCBhdXRvbm9tb3VzbHkgdG8gaW1wbGVtZW50IGEgbG93IHBvd2VyCisgICAgICAgICAqIGFsd2F5cy1vbiBkaXNwbGF5LgorICAgICAgICAgKi8KKyAgICAgICAgRE9aRV9TVVNQRU5EID0gMywKKworICAgICAgICAvKiogVGhlIGRpc3BsYXkgaXMgZnVsbHkgb24uICovCisgICAgICAgIE9OID0gMiwKKyAgICB9OworCisgICAgLyoqIFZzeW5jIHZhbHVlcyBwYXNzZWQgdG8gc2V0VnN5bmNFbmFibGVkLiAqLworICAgIGVudW0gVnN5bmMgOiBpbnQzMl90IHsKKyAgICAgICAgSU5WQUxJRCA9IDAsCisKKyAgICAgICAgLyoqIEVuYWJsZSB2c3luYy4gKi8KKyAgICAgICAgRU5BQkxFID0gMSwKKworICAgICAgICAvKiogRGlzYWJsZSB2c3luYy4gKi8KKyAgICAgICAgRElTQUJMRSA9IDIsCisgICAgfTsKKworICAgIC8qKiBCbGVuZCBtb2Rlcywgc2V0dGFibGUgcGVyIGxheWVyLiAqLworICAgIGVudW0gQmxlbmRNb2RlIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKiBjb2xvck91dCA9IGNvbG9yU3JjICovCisgICAgICAgIE5PTkUgPSAxLAorCisgICAgICAgIC8qKiBjb2xvck91dCA9IGNvbG9yU3JjICsgY29sb3JEc3QgKiAoMSAtIGFscGhhU3JjKSAqLworICAgICAgICBQUkVNVUxUSVBMSUVEID0gMiwKKworICAgICAgICAvKiogY29sb3JPdXQgPSBjb2xvclNyYyAqIGFscGhhU3JjICsgY29sb3JEc3QgKiAoMSAtIGFscGhhU3JjKSAqLworICAgICAgICBDT1ZFUkFHRSA9IDMsCisgICAgfTsKKworICAgIC8qKiBQb3NzaWJsZSBjb21wb3NpdGlvbiB0eXBlcyBmb3IgYSBnaXZlbiBsYXllci4gKi8KKyAgICBlbnVtIENvbXBvc2l0aW9uIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgY2xpZW50IG11c3QgY29tcG9zaXRlIHRoaXMgbGF5ZXIgaW50byB0aGUgY2xpZW50IHRhcmdldCBidWZmZXIKKyAgICAgICAgICogKHByb3ZpZGVkIHRvIHRoZSBkZXZpY2UgdGhyb3VnaCBzZXRDbGllbnRUYXJnZXQpLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgZGV2aWNlIG11c3Qgbm90IHJlcXVlc3QgYW55IGNvbXBvc2l0aW9uIHR5cGUgY2hhbmdlcyBmb3IgbGF5ZXJzCisgICAgICAgICAqIG9mIHRoaXMgdHlwZS4KKyAgICAgICAgICovCisgICAgICAgIENMSUVOVCA9IDEsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkZXZpY2UgbXVzdCBoYW5kbGUgdGhlIGNvbXBvc2l0aW9uIG9mIHRoaXMgbGF5ZXIgdGhyb3VnaCBhCisgICAgICAgICAqIGhhcmR3YXJlIG92ZXJsYXkgb3Igb3RoZXIgc2ltaWxhciBtZWFucy4KKyAgICAgICAgICoKKyAgICAgICAgICogVXBvbiB2YWxpZGF0ZURpc3BsYXksIHRoZSBkZXZpY2UgbWF5IHJlcXVlc3QgYSBjaGFuZ2UgZnJvbSB0aGlzCisgICAgICAgICAqIHR5cGUgdG8gQ0xJRU5ULgorICAgICAgICAgKi8KKyAgICAgICAgREVWSUNFID0gMiwKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGRldmljZSBtdXN0IHJlbmRlciB0aGlzIGxheWVyIHVzaW5nIHRoZSBjb2xvciBzZXQgdGhyb3VnaAorICAgICAgICAgKiBzZXRMYXllckNvbG9yLiBJZiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IHN1cHBvcnRlZCBvbiBhIGxheWVyCisgICAgICAgICAqIHRoYXQgdGhlIGNsaWVudCBzZXRzIHRvIFNPTElEX0NPTE9SLCB0aGUgZGV2aWNlIG11c3QgcmVxdWVzdCB0aGF0CisgICAgICAgICAqIHRoZSBjb21wb3NpdGlvbiB0eXBlIG9mIHRoYXQgbGF5ZXIgaXMgY2hhbmdlZCB0byBDTElFTlQgdXBvbiB0aGUKKyAgICAgICAgICogbmV4dCBjYWxsIHRvIHZhbGlkYXRlRGlzcGxheS4KKyAgICAgICAgICoKKyAgICAgICAgICogVXBvbiB2YWxpZGF0ZURpc3BsYXksIHRoZSBkZXZpY2UgbWF5IHJlcXVlc3QgYSBjaGFuZ2UgZnJvbSB0aGlzCisgICAgICAgICAqIHR5cGUgdG8gQ0xJRU5ULgorICAgICAgICAgKi8KKyAgICAgICAgU09MSURfQ09MT1IgPSAzLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTaW1pbGFyIHRvIERFVklDRSwgYnV0IHRoZSBwb3NpdGlvbiBvZiB0aGlzIGxheWVyIG1heSBhbHNvIGJlIHNldAorICAgICAgICAgKiBhc3luY2hyb25vdXNseSB0aHJvdWdoIHNldEN1cnNvclBvc2l0aW9uLiBJZiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMKKyAgICAgICAgICogbm90IHN1cHBvcnRlZCBvbiBhIGxheWVyIHRoYXQgdGhlIGNsaWVudCBzZXRzIHRvIENVUlNPUiwgdGhlIGRldmljZQorICAgICAgICAgKiBtdXN0IHJlcXVlc3QgdGhhdCB0aGUgY29tcG9zaXRpb24gdHlwZSBvZiB0aGF0IGxheWVyIGlzIGNoYW5nZWQgdG8KKyAgICAgICAgICogQ0xJRU5UIHVwb24gdGhlIG5leHQgY2FsbCB0byB2YWxpZGF0ZURpc3BsYXkuCisgICAgICAgICAqCisgICAgICAgICAqIFVwb24gdmFsaWRhdGVEaXNwbGF5LCB0aGUgZGV2aWNlIG1heSByZXF1ZXN0IGEgY2hhbmdlIGZyb20gdGhpcworICAgICAgICAgKiB0eXBlIHRvIGVpdGhlciBERVZJQ0Ugb3IgQ0xJRU5ULiAgQ2hhbmdpbmcgdG8gREVWSUNFIHdpbGwgcHJldmVudAorICAgICAgICAgKiB0aGUgdXNlIG9mIHNldEN1cnNvclBvc2l0aW9uIGJ1dCBzdGlsbCBwZXJtaXQgdGhlIGRldmljZSB0bworICAgICAgICAgKiBjb21wb3NpdGUgdGhlIGxheWVyLgorICAgICAgICAgKi8KKyAgICAgICAgQ1VSU09SID0gNCwKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGRldmljZSBtdXN0IGhhbmRsZSB0aGUgY29tcG9zaXRpb24gb2YgdGhpcyBsYXllciwgYXMgd2VsbCBhcworICAgICAgICAgKiBpdHMgYnVmZmVyIHVwZGF0ZXMgYW5kIGNvbnRlbnQgc3luY2hyb25pemF0aW9uLiBPbmx5IHN1cHBvcnRlZCBvbgorICAgICAgICAgKiBkZXZpY2VzIHdoaWNoIHByb3ZpZGUgQ2FwYWJpbGl0eTo6U0lERUJBTkRfU1RSRUFNLgorICAgICAgICAgKgorICAgICAgICAgKiBVcG9uIHZhbGlkYXRlRGlzcGxheSwgdGhlIGRldmljZSBtYXkgcmVxdWVzdCBhIGNoYW5nZSBmcm9tIHRoaXMKKyAgICAgICAgICogdHlwZSB0byBlaXRoZXIgREVWSUNFIG9yIENMSUVOVCwgYnV0IGl0IGlzIHVubGlrZWx5IHRoYXQgY29udGVudAorICAgICAgICAgKiB3aWxsIGRpc3BsYXkgY29ycmVjdGx5IGluIHRoZXNlIGNhc2VzLgorICAgICAgICAgKi8KKyAgICAgICAgU0lERUJBTkQgPSA1LAorICAgIH07CisKKyAgICAvKiogRGlzcGxheSB0eXBlcyByZXR1cm5lZCBieSBnZXREaXNwbGF5VHlwZS4gKi8KKyAgICBlbnVtIERpc3BsYXlUeXBlIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBbGwgcGh5c2ljYWwgZGlzcGxheXMsIGluY2x1ZGluZyBib3RoIGludGVybmFsIGRpc3BsYXlzIGFuZAorICAgICAgICAgKiBob3RwbHVnZ2FibGUgZXh0ZXJuYWwgZGlzcGxheXMuCisgICAgICAgICAqLworICAgICAgICBQSFlTSUNBTCA9IDEsCisKKyAgICAgICAgLyoqIFZpcnR1YWwgZGlzcGxheXMgY3JlYXRlZCBieSBjcmVhdGVWaXJ0dWFsRGlzcGxheS4gKi8KKyAgICAgICAgVklSVFVBTCA9IDIsCisgICAgfTsKKworICAgIC8qKiBTcGVjaWFsIGluZGV4IHZhbHVlcyAoYWx3YXlzIG5lZ2F0aXZlKSBmb3IgY29tbWFuZCBxdWV1ZSBjb21tYW5kcy4gKi8KKyAgICBlbnVtIEhhbmRsZUluZGV4IDogaW50MzJfdCB7CisgICAgICAgIC8qKiBObyBoYW5kbGUgKi8KKyAgICAgICAgRU1QVFkgPSAtMSwKKworICAgICAgICAvKiogVXNlIGNhY2hlZCBoYW5kbGUgKi8KKyAgICAgICAgQ0FDSEVEID0gLTIsCisgICAgfTsKKworICAgIHN0cnVjdCBSZWN0IHsKKyAgICAgICAgaW50MzJfdCBsZWZ0OworICAgICAgICBpbnQzMl90IHRvcDsKKyAgICAgICAgaW50MzJfdCByaWdodDsKKyAgICAgICAgaW50MzJfdCBib3R0b207CisgICAgfTsKKworICAgIHN0cnVjdCBGUmVjdCB7CisgICAgICAgIGZsb2F0IGxlZnQ7CisgICAgICAgIGZsb2F0IHRvcDsKKyAgICAgICAgZmxvYXQgcmlnaHQ7CisgICAgICAgIGZsb2F0IGJvdHRvbTsKKyAgICB9OworCisgICAgc3RydWN0IENvbG9yIHsKKyAgICAgICAgdWludDhfdCByOworICAgICAgICB1aW50OF90IGc7CisgICAgICAgIHVpbnQ4X3QgYjsKKyAgICAgICAgdWludDhfdCBhOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyBhIElDb21wb3NlckNhbGxiYWNrIG9iamVjdCBmb3IgdGhlIGRldmljZSB0byBjYWxsLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBvbmx5IG9uY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgaXMgdGhlIElDb21wb3NlckNhbGxiYWNrIG9iamVjdC4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgcmVnaXN0ZXJDYWxsYmFjayhJQ29tcG9zZXJDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2aXJ0dWFsIGRpc3BsYXlzIHN1cHBvcnRlZCBieSB0aGlzIGRldmljZQorICAgICAqICh3aGljaCBtYXkgYmUgMCkuIFRoZSBjbGllbnQgbXVzdCBub3QgYXR0ZW1wdCB0byBjcmVhdGUgbW9yZSB0aGFuIHRoaXMKKyAgICAgKiBtYW55IHZpcnR1YWwgZGlzcGxheXMgb24gdGhpcyBkZXZpY2UuIFRoaXMgbnVtYmVyIG11c3Qgbm90IGNoYW5nZSBmb3IKKyAgICAgKiB0aGUgbGlmZXRpbWUgb2YgdGhlIGRldmljZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gY291bnQgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZpcnR1YWwgZGlzcGxheXMgc3VwcG9ydGVkLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgZ2VuZXJhdGVzICh1aW50MzJfdCBjb3VudCk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IHZpcnR1YWwgZGlzcGxheSB3aXRoIHRoZSBnaXZlbiB3aWR0aCBhbmQgaGVpZ2h0LiBUaGUKKyAgICAgKiBmb3JtYXQgcGFzc2VkIGludG8gdGhpcyBmdW5jdGlvbiBpcyB0aGUgZGVmYXVsdCBmb3JtYXQgcmVxdWVzdGVkIGJ5IHRoZQorICAgICAqIGNvbnN1bWVyIG9mIHRoZSB2aXJ0dWFsIGRpc3BsYXkgb3V0cHV0IGJ1ZmZlcnMuCisgICAgICoKKyAgICAgKiBUaGUgZGlzcGxheSBtdXN0IGJlIGFzc3VtZWQgdG8gYmUgb24gZnJvbSB0aGUgdGltZSB0aGUgZmlyc3QgZnJhbWUgaXMKKyAgICAgKiBwcmVzZW50ZWQgdW50aWwgdGhlIGRpc3BsYXkgaXMgZGVzdHJveWVkLgorICAgICAqCisgICAgICogQHBhcmFtIHdpZHRoIGlzIHRoZSB3aWR0aCBpbiBwaXhlbHMuCisgICAgICogQHBhcmFtIGhlaWdodCBpcyB0aGUgaGVpZ2h0IGluIHBpeGVscy4KKyAgICAgKiBAcGFyYW0gZm9ybWF0SGludCBpcyB0aGUgZGVmYXVsdCBvdXRwdXQgYnVmZmVyIGZvcm1hdCBzZWxlY3RlZCBieQorICAgICAqICAgICAgICB0aGUgY29uc3VtZXIuCisgICAgICogQHBhcmFtIG91dHB1dEJ1ZmZlclNsb3RDb3VudCBpcyB0aGUgbnVtYmVyIG9mIG91dHB1dCBidWZmZXIgc2xvdHMgdG8gYmUKKyAgICAgKiAgICAgICAgcmVzZXJ2ZWQuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgVU5TVVBQT1JURUQgd2hlbiB0aGUgd2lkdGggb3IgaGVpZ2h0IGlzIHRvbyBsYXJnZSBmb3IgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICBkZXZpY2UgdG8gYmUgYWJsZSB0byBjcmVhdGUgYSB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICogICAgICAgICBOT19SRVNPVVJDRVMgd2hlbiB0aGUgZGV2aWNlIGlzIHVuYWJsZSB0byBjcmVhdGUgYSBuZXcgdmlydHVhbAorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgYXQgdGhpcyB0aW1lLgorICAgICAqIEByZXR1cm4gZGlzcGxheSBpcyB0aGUgbmV3bHktY3JlYXRlZCB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICogQHJldHVybiBmb3JtYXQgaXMgdGhlIGZvcm1hdCBvZiB0aGUgYnVmZmVyIHRoZSBkZXZpY2Ugd2lsbCBwcm9kdWNlLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0SGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvdXRwdXRCdWZmZXJTbG90Q291bnQpCisgICAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCk7CisKKyAgICAvKioKKyAgICAgKiBEZXN0cm95cyBhIHZpcnR1YWwgZGlzcGxheS4gQWZ0ZXIgdGhpcyBjYWxsIGFsbCByZXNvdXJjZXMgY29uc3VtZWQgYnkKKyAgICAgKiB0aGlzIGRpc3BsYXkgbWF5IGJlIGZyZWVkIGJ5IHRoZSBkZXZpY2UgYW5kIGFueSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAqIHRoaXMgZGlzcGxheSBtdXN0IGZhaWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgdmlydHVhbCBkaXNwbGF5IHRvIGRlc3Ryb3kuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfUEFSQU1FVEVSIHdoZW4gdGhlIGRpc3BsYXkgaGFuZGxlIHdoaWNoIHdhcyBwYXNzZWQgaW4gZG9lcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICBub3QgcmVmZXIgdG8gYSB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIG5ldyBsYXllciBvbiB0aGUgZ2l2ZW4gZGlzcGxheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IG9uIHdoaWNoIHRvIGNyZWF0ZSB0aGUgbGF5ZXIuCisgICAgICogQHBhcmFtIGJ1ZmZlclNsb3RDb3VudCBpcyB0aGUgbnVtYmVyIG9mIGJ1ZmZlciBzbG90IHRvIGJlIHJlc2VydmVkLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqICAgICAgICAgTk9fUkVTT1VSQ0VTIHdoZW4gdGhlIGRldmljZSB3YXMgdW5hYmxlIHRvIGNyZWF0ZSBhIGxheWVyIHRoaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aW1lLgorICAgICAqIEByZXR1cm4gbGF5ZXIgaXMgdGhlIGhhbmRsZSBvZiB0aGUgbmV3IGxheWVyLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBjcmVhdGVMYXllcihEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICAgICAgdWludDMyX3QgYnVmZmVyU2xvdENvdW50KQorICAgICBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLAorICAgICAgICAgICAgICAgIExheWVyIGxheWVyKTsKKworICAgIC8qKgorICAgICAqIERlc3Ryb3lzIHRoZSBnaXZlbiBsYXllci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IG9uIHdoaWNoIHRoZSBsYXllciB3YXMgY3JlYXRlZC4KKyAgICAgKiBAcGFyYW0gbGF5ZXIgaXMgdGhlIGxheWVyIHRvIGRlc3Ryb3kuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfTEFZRVIgd2hlbiBhbiBpbnZhbGlkIGxheWVyIGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBkZXN0cm95TGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllcikgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgd2hpY2ggZGlzcGxheSBjb25maWd1cmF0aW9uIGlzIGN1cnJlbnRseSBhY3RpdmUuCisgICAgICoKKyAgICAgKiBJZiBubyBkaXNwbGF5IGNvbmZpZ3VyYXRpb24gaXMgY3VycmVudGx5IGFjdGl2ZSwgdGhpcyBmdW5jdGlvbiBtdXN0CisgICAgICogcmV0dXJuIEJBRF9DT05GSUcuIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2xpZW50IHRvIGNhbGwKKyAgICAgKiBzZXRBY3RpdmVDb25maWcgd2l0aCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gYmVmb3JlIGF0dGVtcHRpbmcgdG8gcHJlc2VudAorICAgICAqIGFueXRoaW5nIG9uIHRoZSBkaXNwbGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIGFjdGl2ZSBjb25maWcgaXMgcXVlcmllZC4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiAgICAgICAgIEJBRF9DT05GSUcgd2hlbiBubyBjb25maWd1cmF0aW9uIGlzIGN1cnJlbnRseSBhY3RpdmUuCisgICAgICogQHJldHVybiBjb25maWcgaXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgZGlzcGxheSBjb25maWd1cmF0aW9uLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5KSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLCBDb25maWcgY29uZmlnKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciBhIGNsaWVudCB0YXJnZXQgd2l0aCB0aGUgZ2l2ZW4gcHJvcGVydGllcyBjYW4gYmUKKyAgICAgKiBoYW5kbGVkIGJ5IHRoZSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgcmV0dXJuIHRydWUgZm9yIGEgY2xpZW50IHRhcmdldCB3aXRoIHdpZHRoIGFuZAorICAgICAqIGhlaWdodCBlcXVhbCB0byB0aGUgYWN0aXZlIGRpc3BsYXkgY29uZmlndXJhdGlvbiBkaW1lbnNpb25zLAorICAgICAqIFBpeGVsRm9ybWF0OjpSR0JBXzg4ODgsIGFuZCBEYXRhc3BhY2U6OlVOS05PV04uIEl0IGlzIG5vdCByZXF1aXJlZCB0bworICAgICAqIHJldHVybiB0cnVlIGZvciBhbnkgb3RoZXIgY29uZmlndXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEBwYXJhbSB3aWR0aCBpcyB0aGUgY2xpZW50IHRhcmdldCB3aWR0aCBpbiBwaXhlbHMuCisgICAgICogQHBhcmFtIGhlaWdodCBpcyB0aGUgY2xpZW50IHRhcmdldCBoZWlnaHQgaW4gcGl4ZWxzLgorICAgICAqIEBwYXJhbSBmb3JtYXQgaXMgdGhlIGNsaWVudCB0YXJnZXQgZm9ybWF0LgorICAgICAqIEBwYXJhbSBkYXRhc3BhY2UgaXMgdGhlIGNsaWVudCB0YXJnZXQgZGF0YXNwYWNlLCBhcyBkZXNjcmliZWQgaW4KKyAgICAgKiAgICAgICAgc2V0TGF5ZXJEYXRhc3BhY2UuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIHRoZSBnaXZlbiBjb25maWd1cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhc3BhY2UgZGF0YXNwYWNlKQorICAgICAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29sb3IgbW9kZXMgc3VwcG9ydGVkIG9uIHRoaXMgZGlzcGxheS4KKyAgICAgKgorICAgICAqIEFsbCBkZXZpY2VzIG11c3Qgc3VwcG9ydCBhdCBsZWFzdCBDb2xvck1vZGU6Ok5BVElWRS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gbW9kZXMgaXMgYW4gYXJyYXkgb2YgY29sb3IgbW9kZXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5KQorICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICB2ZWM8Q29sb3JNb2RlPiBtb2Rlcyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZGlzcGxheSBhdHRyaWJ1dGUgdmFsdWUgZm9yIGEgcGFydGljdWxhciBkaXNwbGF5CisgICAgICogY29uZmlndXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEBwYXJhbSBjb25maWcgaXMgdGhlIGRpc3BsYXkgY29uZmlndXJhdGlvbiBmb3Igd2hpY2ggdG8gcmV0dXJuCisgICAgICogICAgICAgIGF0dHJpYnV0ZSB2YWx1ZXMuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfQ09ORklHIHdoZW4gY29uZmlnIGRvZXMgbm90IG5hbWUgYSB2YWxpZCBjb25maWd1cmF0aW9uIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgICB0aGlzIGRpc3BsYXkuCisgICAgICogICAgICAgICBCQURfUEFSQU1FVEVSIHdoZW4gYXR0cmlidXRlIGlzIHVucmVjb2duaXplZC4KKyAgICAgKiAgICAgICAgIFVOU1VQUE9SVEVEIHdoZW4gYXR0cmlidXRlIGNhbm5vdCBiZSBxdWVyaWVkIGZvciB0aGUgY29uZmlnLgorICAgICAqIEByZXR1cm4gdmFsdWUgaXMgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldERpc3BsYXlBdHRyaWJ1dGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZSBhdHRyaWJ1dGUpCisgICAgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBoYW5kbGVzIGZvciBhbGwgb2YgdGhlIHZhbGlkIGRpc3BsYXkgY29uZmlndXJhdGlvbnMgb24gdGhpcworICAgICAqIGRpc3BsYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgZGlzcGxheSB0byBxdWVyeS4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIGNvbmZpZ3MgaXMgYW4gYXJyYXkgb2YgY29uZmlndXJhdGlvbiBoYW5kbGVzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXkpCisgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgdmVjPENvbmZpZz4gY29uZmlncyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgdmVyc2lvbiBvZiB0aGUgZGlzcGxheSdzIG5hbWUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIG5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSkgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwgc3RyaW5nIG5hbWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBkaXNwbGF5IGlzIGEgcGh5c2ljYWwgb3IgdmlydHVhbCBkaXNwbGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gcXVlcnkuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogQHJldHVybiB0eXBlIGlzIHRoZSB0eXBlIG9mIHRoZSBkaXNwbGF5LgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXkpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsIERpc3BsYXlUeXBlIHR5cGUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBkaXNwbGF5IHN1cHBvcnRzIFBvd2VyTW9kZTo6RE9aRSBhbmQKKyAgICAgKiBQb3dlck1vZGU6OkRPWkVfU1VTUEVORC4gRE9aRV9TVVNQRU5EIG1heSBub3QgcHJvdmlkZSBhbnkgYmVuZWZpdCBvdmVyCisgICAgICogRE9aRSAoc2VlIHRoZSBkZWZpbml0aW9uIG9mIFBvd2VyTW9kZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiksIGJ1dCBpZgorICAgICAqIGJvdGggRE9aRSBhbmQgRE9aRV9TVVNQRU5EIGFyZSBubyBkaWZmZXJlbnQgZnJvbSBQb3dlck1vZGU6Ok9OLCB0aGUKKyAgICAgKiBkZXZpY2UgbXVzdCBub3QgY2xhaW0gc3VwcG9ydC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gc3VwcG9ydCBpcyB0cnVlIG9ubHkgd2hlbiB0aGUgZGlzcGxheSBzdXBwb3J0cyBkb3plIG1vZGVzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXREb3plU3VwcG9ydChEaXNwbGF5IGRpc3BsYXkpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsIGJvb2wgc3VwcG9ydCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBoaWdoIGR5bmFtaWMgcmFuZ2UgKEhEUikgY2FwYWJpbGl0aWVzIG9mIHRoZSBnaXZlbiBkaXNwbGF5LAorICAgICAqIHdoaWNoIGFyZSBpbnZhcmlhbnQgd2l0aCByZWdhcmQgdG8gdGhlIGFjdGl2ZSBjb25maWd1cmF0aW9uLgorICAgICAqCisgICAgICogRGlzcGxheXMgd2hpY2ggYXJlIG5vdCBIRFItY2FwYWJsZSBtdXN0IHJldHVybiBubyB0eXBlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gdHlwZXMgaXMgYW4gYXJyYXkgb2YgSERSIHR5cGVzLCBtYXkgaGF2ZSAwIGVsZW1lbnRzIGlmIHRoZQorICAgICAqICAgICAgICAgZGlzcGxheSBpcyBub3QgSERSLWNhcGFibGUuCisgICAgICogQHJldHVybiBtYXhMdW1pbmFuY2UgaXMgdGhlIGRlc2lyZWQgY29udGVudCBtYXhpbXVtIGx1bWluYW5jZSBmb3IgdGhpcworICAgICAqICAgICAgICAgZGlzcGxheSBpbiBjZC9tXjIuCisgICAgICogQHJldHVybiBtYXhBdmVyYWdlTHVtaW5hbmNlIC0gdGhlIGRlc2lyZWQgY29udGVudCBtYXhpbXVtIGZyYW1lLWF2ZXJhZ2UKKyAgICAgKiAgICAgICAgIGx1bWluYW5jZSBmb3IgdGhpcyBkaXNwbGF5IGluIGNkL21eMi4KKyAgICAgKiBAcmV0dXJuIG1pbkx1bWluYW5jZSBpcyB0aGUgZGVzaXJlZCBjb250ZW50IG1pbmltdW0gbHVtaW5hbmNlIGZvciB0aGlzCisgICAgICogICAgICAgICBkaXNwbGF5IGluIGNkL21eMi4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZ2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgIHZlYzxIZHI+IHR5cGVzLAorICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBtYXhMdW1pbmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IG1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IG1pbkx1bWluYW5jZSk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBjbGllbnQgdGFyZ2V0IHNsb3RzIHRvIGJlIHJlc2VydmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIHNsb3RzIGFyZSByZXNlcnZlZC4KKyAgICAgKiBAcGFyYW0gY2xpZW50VGFyZ2V0U2xvdENvdW50IGlzIHRoZSBzbG90IGNvdW50IGZvciBjbGllbnQgdGFyZ2V0cy4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHVuYWJsZSB0byByZXNlcnZlIHRoZSBzbG90cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KQorICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBhY3RpdmUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkaXNwbGF5LiBVcG9uIHJldHVybmluZywgdGhlCisgICAgICogZ2l2ZW4gZGlzcGxheSBjb25maWd1cmF0aW9uIG11c3QgYmUgYWN0aXZlIGFuZCByZW1haW4gc28gdW50aWwgZWl0aGVyCisgICAgICogdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYWdhaW4gb3IgdGhlIGRpc3BsYXkgaXMgZGlzY29ubmVjdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIGFjdGl2ZSBjb25maWcgaXMgc2V0LgorICAgICAqIEBwYXJhbSBjb25maWcgaXMgdGhlIG5ldyBkaXNwbGF5IGNvbmZpZ3VyYXRpb24uCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfQ09ORklHIHdoZW4gdGhlIGNvbmZpZ3VyYXRpb24gaGFuZGxlIHBhc3NlZCBpbiBpcyBub3QgdmFsaWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZGlzcGxheS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZykgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjb2xvciBtb2RlIG9mIHRoZSBnaXZlbiBkaXNwbGF5LgorICAgICAqCisgICAgICogVXBvbiByZXR1cm5pbmcgZnJvbSB0aGlzIGZ1bmN0aW9uLCB0aGUgY29sb3IgbW9kZSBjaGFuZ2UgbXVzdCBoYXZlCisgICAgICogZnVsbHkgdGFrZW4gZWZmZWN0LgorICAgICAqCisgICAgICogQWxsIGRldmljZXMgbXVzdCBzdXBwb3J0IGF0IGxlYXN0IENvbG9yTW9kZTo6TkFUSVZFLCBhbmQgZGlzcGxheXMgYXJlCisgICAgICogYXNzdW1lZCB0byBiZSBpbiB0aGlzIG1vZGUgdXBvbiBob3RwbHVnLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIGNvbG9yIG1vZGUgaXMgc2V0LgorICAgICAqIEBwYXJhbSBtb2RlIGlzIHRoZSBtb2RlIHRvIHNldCB0by4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiAgICAgICAgIEJBRF9QQVJBTUVURVIgd2hlbiBtb2RlIGlzIG5vdCBhIHZhbGlkIGNvbG9yIG1vZGUuCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIG1vZGUgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIHNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvd2VyIG1vZGUgb2YgdGhlIGdpdmVuIGRpc3BsYXkuIFRoZSB0cmFuc2l0aW9uIG11c3QgYmUKKyAgICAgKiBjb21wbGV0ZSB3aGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4gSXQgaXMgdmFsaWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uCisgICAgICogbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBwb3dlciBtb2RlLgorICAgICAqCisgICAgICogQWxsIGRpc3BsYXlzIG11c3Qgc3VwcG9ydCBQb3dlck1vZGU6Ok9OIGFuZCBQb3dlck1vZGU6Ok9GRi4gIFdoZXRoZXIgYQorICAgICAqIGRpc3BsYXkgc3VwcG9ydHMgUG93ZXJNb2RlOjpET1pFIG9yIFBvd2VyTW9kZTo6RE9aRV9TVVNQRU5EIG1heSBiZQorICAgICAqIHF1ZXJpZWQgdXNpbmcgZ2V0RG96ZVN1cHBvcnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgZGlzcGxheSB0byB3aGljaCB0aGUgcG93ZXIgbW9kZSBpcyBzZXQuCisgICAgICogQHBhcmFtIG1vZGUgaXMgdGhlIG5ldyBwb3dlciBtb2RlLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqICAgICAgICAgQkFEX1BBUkFNRVRFUiB3aGVuIG1vZGUgd2FzIG5vdCBhIHZhbGlkIHBvd2VyIG1vZGUuCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIG1vZGUgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIHNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIFBvd2VyTW9kZSBtb2RlKSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIHZzeW5jIHNpZ25hbCBmb3IgdGhlIGdpdmVuIGRpc3BsYXkuIFZpcnR1YWwKKyAgICAgKiBkaXNwbGF5cyBuZXZlciBnZW5lcmF0ZSB2c3luYyBjYWxsYmFja3MsIGFuZCBhbnkgYXR0ZW1wdCB0byBlbmFibGUKKyAgICAgKiB2c3luYyBmb3IgYSB2aXJ0dWFsIGRpc3BsYXkgdGhvdWdoIHRoaXMgZnVuY3Rpb24gbXVzdCBzdWNjZWVkIGFuZCBoYXZlCisgICAgICogbm8gb3RoZXIgZWZmZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIHZzeW5jIG1vZGUgaXMgc2V0LgorICAgICAqIEBwYXJhbSBlbmFibGVkIGluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZzeW5jCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfUEFSQU1FVEVSIHdoZW4gZW5hYmxlZCB3YXMgYW4gaW52YWxpZCB2YWx1ZS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwgVnN5bmMgZW5hYmxlZCkgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpbnB1dCBjb21tYW5kIG1lc3NhZ2UgcXVldWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRvciBpcyB0aGUgZGVzY3JpcHRvciBvZiB0aGUgaW5wdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIGZhaWxlZCB0byBzZXQgdGhlIHF1ZXVlIHRlbXBvcmFyaWx5LgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBzZXRJbnB1dENvbW1hbmRRdWV1ZShmbXFfc3luYzx1aW50MzJfdD4gZGVzY3JpcHRvcikKKyAgICAgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBvdXRwdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IG9ubHkgYmUgY2FsbGVkIGluc2lkZSBleGVjdXRlQ29tbWFuZHMgY2xvc3VyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIGZhaWxlZCB0byBnZXQgdGhlIHF1ZXVlIHRlbXBvcmFyaWx5LgorICAgICAqIEByZXR1cm4gZGVzY3JpcHRvciBpcyB0aGUgZGVzY3JpcHRvciBvZiB0aGUgb3V0cHV0IGNvbW1hbmQgcXVldWUuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldE91dHB1dENvbW1hbmRRdWV1ZSgpCisgICAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgZm1xX3N5bmM8dWludDMyX3Q+IGRlc2NyaXB0b3IpOworCisgICAgLyoqCisgICAgICogRXhlY3V0ZXMgY29tbWFuZHMgZnJvbSB0aGUgaW5wdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLiBSZXR1cm4gdmFsdWVzCisgICAgICogZ2VuZXJhdGVkIGJ5IHRoZSBpbnB1dCBjb21tYW5kcyBhcmUgd3JpdHRlbiB0byB0aGUgb3V0cHV0IGNvbW1hbmQKKyAgICAgKiBtZXNzYWdlIHF1ZXVlIGluIHRoZSBmb3JtIG9mIHZhbHVlIGNvbW1hbmRzLgorICAgICAqCisgICAgICogQHBhcmFtIGluTGVuZ3RoIGlzIHRoZSBsZW5ndGggb2YgaW5wdXQgY29tbWFuZHMuCisgICAgICogQHBhcmFtIGluSGFuZGxlcyBpcyBhbiBhcnJheSBvZiBoYW5kbGVzIHJlZmVyZW5jZWQgYnkgdGhlIGlucHV0CisgICAgICogICAgICAgIGNvbW1hbmRzLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9QQVJBTUVURVIgd2hlbiBpbkxlbmd0aCBpcyBub3QgZXF1YWwgdG8gdGhlIGxlbmd0aCBvZgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kcyBpbiB0aGUgaW5wdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLgorICAgICAqICAgICAgICAgTk9fUkVTT1VSQ0VTIHdoZW4gdGhlIG91dHB1dCBjb21tYW5kIG1lc3NhZ2UgcXVldWUgd2FzIG5vdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHByb3Blcmx5IGRyYWluZWQuCisgICAgICogQHBhcmFtIG91dFF1ZXVlQ2hhbmdlZCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgb3V0cHV0IGNvbW1hbmQgbWVzc2FnZQorICAgICAqICAgICAgICBxdWV1ZSBoYXMgY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gb3V0TGVuZ3RoIGlzIHRoZSBsZW5ndGggb2Ygb3V0cHV0IGNvbW1hbmRzLgorICAgICAqIEBwYXJhbSBvdXRIYW5kbGVzIGlzIGFuIGFycmF5IG9mIGhhbmRsZXMgcmVmZXJlbmNlZCBieSB0aGUgb3V0cHV0CisgICAgICogICAgICAgIGNvbW1hbmRzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBleGVjdXRlQ29tbWFuZHModWludDMyX3QgaW5MZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIHZlYzxoYW5kbGU+IGluSGFuZGxlcykKKyAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgIGJvb2wgb3V0UXVldWVDaGFuZ2VkLAorICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvdXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIHZlYzxoYW5kbGU+IG91dEhhbmRsZXMpOworCisgICAgLyoqCisgICAgICogU0VMRUNUX0RJU1BMQVkgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZWxlY3REaXNwbGF5KERpc3BsYXkgZGlzcGxheSk7CisgICAgICoKKyAgICAgKiBTZWxlY3RzIHRoZSBjdXJyZW50IGRpc3BsYXkgaW1wbGllZCBieSBhbGwgb3RoZXIgY29tbWFuZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgbmV3bHkgc2VsZWN0ZWQgZGlzcGxheS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VMRUNUX0xBWUVSIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2VsZWN0TGF5ZXIoTGF5ZXIgbGF5ZXIpOworICAgICAqCisgICAgICogU2VsZWN0cyB0aGUgY3VycmVudCBsYXllciBpbXBsaWVkIGJ5IGFsbCBpbXBsaWNpdCBsYXllciBjb21tYW5kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXllciBpcyB0aGUgbmV3bHkgc2VsZWN0ZWQgbGF5ZXIuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9FUlJPUiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldEVycm9yKHVpbnQzMl90IGxvY2F0aW9uLCBFcnJvciBlcnJvcik7CisgICAgICoKKyAgICAgKiBJbmRpY2F0ZXMgYW4gZXJyb3IgZ2VuZXJhdGVkIGJ5IGEgY29tbWFuZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhdGlvbiBpcyB0aGUgb2Zmc2V0IG9mIHRoZSBjb21tYW5kIGluIHRoZSBpbnB1dCBjb21tYW5kCisgICAgICogICAgICAgIG1lc3NhZ2UgcXVldWUuCisgICAgICogQHBhcmFtIGVycm9yIGlzIHRoZSBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlIGNvbW1hbmQuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9DSEFOR0VEX0NPTVBPU0lUSU9OX1RZUEVTIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0Q2hhbmdlZENvbXBvc2l0aW9uVHlwZXModmVjPExheWVyPiBsYXllcnMsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWM8Q29tcG9zaXRpb24+IHR5cGVzKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGxheWVycyBmb3Igd2hpY2ggdGhlIGRldmljZSByZXF1aXJlcyBhIGRpZmZlcmVudCBjb21wb3NpdGlvbgorICAgICAqIHR5cGUgdGhhbiBoYWQgYmVlbiBzZXQgcHJpb3IgdG8gdGhlIGxhc3QgY2FsbCB0byBWQUxJREFURV9ESVNQTEFZLiBUaGUKKyAgICAgKiBjbGllbnQgbXVzdCBlaXRoZXIgdXBkYXRlIGl0cyBzdGF0ZSB3aXRoIHRoZXNlIHR5cGVzIGFuZCBjYWxsCisgICAgICogQUNDRVBUX0RJU1BMQVlfQ0hBTkdFUywgb3IgbXVzdCBzZXQgbmV3IHR5cGVzIGFuZCBhdHRlbXB0IHRvIHZhbGlkYXRlCisgICAgICogdGhlIGRpc3BsYXkgYWdhaW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGF5ZXJzIGlzIGFuIGFycmF5IG9mIGxheWVyIGhhbmRsZXMuCisgICAgICogQHBhcmFtIHR5cGVzIGlzIGFuIGFycmF5IG9mIGNvbXBvc2l0aW9uIHR5cGVzLCBlYWNoIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiAgICAgICAgIGFuIGVsZW1lbnQgb2YgbGF5ZXJzLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfRElTUExBWV9SRVFVRVNUUyBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldERpc3BsYXlSZXF1ZXN0cyh1aW50MzJfdCBkaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdmVjPExheWVyPiBsYXllcnMsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdmVjPHVpbnQzMl90PiBsYXllclJlcXVlc3RNYXNrcyk7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBkaXNwbGF5IHJlcXVlc3RzIGFuZCB0aGUgbGF5ZXIgcmVxdWVzdHMgcmVxdWlyZWQgZm9yIHRoZSBsYXN0CisgICAgICogdmFsaWRhdGVkIGNvbmZpZ3VyYXRpb24uCisgICAgICoKKyAgICAgKiBEaXNwbGF5IHJlcXVlc3RzIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRoZSBjbGllbnQgbXVzdCBoYW5kbGUKKyAgICAgKiB0aGUgY2xpZW50IHRhcmdldC4gTGF5ZXIgcmVxdWVzdHMgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgdGhlCisgICAgICogY2xpZW50IG11c3QgaGFuZGxlIGFuIGluZGl2aWR1YWwgbGF5ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheVJlcXVlc3RNYXNrIGlzIHRoZSBkaXNwbGF5IHJlcXVlc3RzIGZvciB0aGUgY3VycmVudAorICAgICAqICAgICAgICB2YWxpZGF0ZWQgc3RhdGUuCisgICAgICogQHBhcmFtIGxheWVycyBpcyBhbiBhcnJheSBvZiBsYXllcnMgd2hpY2ggYWxsIGhhdmUgYXQgbGVhc3Qgb25lCisgICAgICogICAgICAgIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGxheWVyUmVxdWVzdE1hc2tzIGlzIHRoZSByZXF1ZXN0cyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggZWxlbWVudAorICAgICAqICAgICAgICBvZiBsYXllcnMuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9QUkVTRU5UX0ZFTkNFIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0UHJlc2VudEZlbmNlKGludDMyX3QgcHJlc2VudEZlbmNlSW5kZXgpOworICAgICAqCisgICAgICogU2V0cyB0aGUgcHJlc2VudCBmZW5jZSBhcyBhIHJlc3VsdCBvZiBQUkVTRU5UX0RJU1BMQVkuIEZvciBwaHlzaWNhbAorICAgICAqIGRpc3BsYXlzLCB0aGlzIGZlbmNlIG11c3QgYmUgc2lnbmFsZWQgYXQgdGhlIHZzeW5jIHdoZW4gdGhlIHJlc3VsdAorICAgICAqIG9mIGNvbXBvc2l0aW9uIG9mIHRoaXMgZnJhbWUgc3RhcnRzIHRvIGFwcGVhciAoZm9yIHZpZGVvLW1vZGUgcGFuZWxzKQorICAgICAqIG9yIHN0YXJ0cyB0byB0cmFuc2ZlciB0byBwYW5lbCBtZW1vcnkgKGZvciBjb21tYW5kLW1vZGUgcGFuZWxzKS4gRm9yCisgICAgICogdmlydHVhbCBkaXNwbGF5cywgdGhpcyBmZW5jZSBtdXN0IGJlIHNpZ25hbGVkIHdoZW4gd3JpdGVzIHRvIHRoZSBvdXRwdXQKKyAgICAgKiBidWZmZXIgaGF2ZSBjb21wbGV0ZWQgYW5kIGl0IGlzIHNhZmUgdG8gcmVhZCBmcm9tIGl0LgorICAgICAqCisgICAgICogQHBhcmFtIHByZXNlbnRGZW5jZUluZGV4IGlzIGFuIGluZGV4IGludG8gb3V0SGFuZGxlcyBhcnJheS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX1JFTEVBU0VfRkVOQ0VTIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0UmVsZWFzZUZlbmNlcyh2ZWM8TGF5ZXI+IGxheWVycywKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgdmVjPGludDMyX3Q+IHJlbGVhc2VGZW5jZUluZGljZXMpOworICAgICAqCisgICAgICogU2V0cyB0aGUgcmVsZWFzZSBmZW5jZXMgZm9yIGRldmljZSBsYXllcnMgb24gdGhpcyBkaXNwbGF5IHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIG5ldyBidWZmZXIgY29udGVudHMgdGhpcyBmcmFtZS4KKyAgICAgKgorICAgICAqIEEgcmVsZWFzZSBmZW5jZSBpcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSBzeW5jIGZlbmNlIG9iamVjdAorICAgICAqIHdoaWNoIG11c3QgYmUgc2lnbmFsZWQgYWZ0ZXIgdGhlIGRldmljZSBoYXMgZmluaXNoZWQgcmVhZGluZyBmcm9tIHRoZQorICAgICAqIGJ1ZmZlciBwcmVzZW50ZWQgaW4gdGhlIHByaW9yIGZyYW1lLiBUaGlzIGluZGljYXRlcyB0aGF0IGl0IGlzIHNhZmUgdG8KKyAgICAgKiBzdGFydCB3cml0aW5nIHRvIHRoZSBidWZmZXIgYWdhaW4uIElmIGEgZ2l2ZW4gbGF5ZXIncyBmZW5jZSBpcyBub3QKKyAgICAgKiByZXR1cm5lZCBmcm9tIHRoaXMgZnVuY3Rpb24sIGl0IG11c3QgYmUgYXNzdW1lZCB0aGF0IHRoZSBidWZmZXIKKyAgICAgKiBwcmVzZW50ZWQgb24gdGhlIHByZXZpb3VzIGZyYW1lIGlzIHJlYWR5IHRvIGJlIHdyaXR0ZW4uCisgICAgICoKKyAgICAgKiBUaGUgZmVuY2VzIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gbXVzdCBiZSB1bmlxdWUgZm9yIGVhY2ggbGF5ZXIKKyAgICAgKiAoZXZlbiBpZiB0aGV5IHBvaW50IHRvIHRoZSBzYW1lIHVuZGVybHlpbmcgc3luYyBvYmplY3QpLgorICAgICAqCisgICAgICogQHBhcmFtIGxheWVycyBpcyBhbiBhcnJheSBvZiBsYXllciBoYW5kbGVzLgorICAgICAqIEBwYXJhbSByZWxlYXNlRmVuY2VJbmRpY2VzIGFyZSBpbmRpY2VzIGludG8gb3V0SGFuZGxlcyBhcnJheSwgZWFjaAorICAgICAqICAgICAgICBjb3JyZXNwb25kaW5nIHRvIGFuIGVsZW1lbnQgb2YgbGF5ZXJzLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfQ09MT1JfVFJBTlNGT1JNIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0Q29sb3JUcmFuc2Zvcm0oZmxvYXRbMTZdIG1hdHJpeCwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIENvbG9yVHJhbnNmb3JtIGhpbnQpOworICAgICAqCisgICAgICogU2V0cyBhIGNvbG9yIHRyYW5zZm9ybSB3aGljaCB3aWxsIGJlIGFwcGxpZWQgYWZ0ZXIgY29tcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBJZiBoaW50IGlzIG5vdCBDb2xvclRyYW5zZm9ybTo6QVJCSVRSQVJZLCB0aGVuIHRoZSBkZXZpY2UgbWF5IHVzZSB0aGUKKyAgICAgKiBoaW50IHRvIGFwcGx5IHRoZSBkZXNpcmVkIGNvbG9yIHRyYW5zZm9ybSBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBjb2xvcgorICAgICAqIG1hdHJpeCBkaXJlY3RseS4KKyAgICAgKgorICAgICAqIElmIHRoZSBkZXZpY2UgaXMgbm90IGNhcGFibGUgb2YgZWl0aGVyIHVzaW5nIHRoZSBoaW50IG9yIHRoZSBtYXRyaXggdG8KKyAgICAgKiBhcHBseSB0aGUgZGVzaXJlZCBjb2xvciB0cmFuc2Zvcm0sIGl0IG11c3QgZm9yY2UgYWxsIGxheWVycyB0byBjbGllbnQKKyAgICAgKiBjb21wb3NpdGlvbiBkdXJpbmcgVkFMSURBVEVfRElTUExBWS4KKyAgICAgKgorICAgICAqIElmIElDb21wb3Nlcjo6Q2FwYWJpbGl0eTo6U0tJUF9DTElFTlRfQ09MT1JfVFJBTlNGT1JNIGlzIHByZXNlbnQsIHRoZW4KKyAgICAgKiB0aGUgY2xpZW50IG11c3QgbmV2ZXIgYXBwbHkgdGhlIGNvbG9yIHRyYW5zZm9ybSBkdXJpbmcgY2xpZW50CisgICAgICogY29tcG9zaXRpb24sIGV2ZW4gaWYgYWxsIGxheWVycyBhcmUgYmVpbmcgY29tcG9zZWQgYnkgdGhlIGNsaWVudC4KKyAgICAgKgorICAgICAqIFRoZSBtYXRyaXggcHJvdmlkZWQgaXMgYW4gYWZmaW5lIGNvbG9yIHRyYW5zZm9ybWF0aW9uIG9mIHRoZSBmb2xsb3dpbmcKKyAgICAgKiBmb3JtOgorICAgICAqCisgICAgICogfHIuciByLmcgci5iIDB8CisgICAgICogfGcuciBnLmcgZy5iIDB8CisgICAgICogfGIuciBiLmcgYi5iIDB8CisgICAgICogfFRyICBUZyAgVGIgIDF8CisgICAgICoKKyAgICAgKiBUaGlzIG1hdHJpeCBtdXN0IGJlIHByb3ZpZGVkIGluIHJvdy1tYWpvciBmb3JtOgorICAgICAqCisgICAgICoge3Iuciwgci5nLCByLmIsIDAsIGcuciwgLi4ufS4KKyAgICAgKgorICAgICAqIEdpdmVuIGEgbWF0cml4IG9mIHRoaXMgZm9ybSBhbmQgYW4gaW5wdXQgY29sb3IgW1JfaW4sIEdfaW4sIEJfaW5dLCB0aGUKKyAgICAgKiBvdXRwdXQgY29sb3IgW1Jfb3V0LCBHX291dCwgQl9vdXRdIHdpbGwgYmU6CisgICAgICoKKyAgICAgKiBSX291dCA9IFJfaW4gKiByLnIgKyBHX2luICogZy5yICsgQl9pbiAqIGIuciArIFRyCisgICAgICogR19vdXQgPSBSX2luICogci5nICsgR19pbiAqIGcuZyArIEJfaW4gKiBiLmcgKyBUZworICAgICAqIEJfb3V0ID0gUl9pbiAqIHIuYiArIEdfaW4gKiBnLmIgKyBCX2luICogYi5iICsgVGIKKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXRyaXggaXMgYSA0eDQgdHJhbnNmb3JtIG1hdHJpeCAoMTYgZmxvYXRzKSBhcyBkZXNjcmliZWQgYWJvdmUuCisgICAgICogQHBhcmFtIGhpbnQgaXMgYSBoaW50IHZhbHVlIHdoaWNoIG1heSBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGdpdmVuCisgICAgICogICAgICAgIG1hdHJpeCB1bmxlc3MgaXQgaXMgQ29sb3JUcmFuc2Zvcm06OkFSQklUUkFSWS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0NMSUVOVF9UQVJHRVQgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRDbGllbnRUYXJnZXQodWludDMyX3QgdGFyZ2V0U2xvdCwKKyAgICAgKiAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRhcmdldEluZGV4LAorICAgICAqICAgICAgICAgICAgICAgICAgIGludDMyX3QgYWNxdWlyZUZlbmNlSW5kZXgsCisgICAgICogICAgICAgICAgICAgICAgICAgRGF0YXNwYWNlIGRhdGFzcGFjZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgICB2ZWM8UmVjdD4gZGFtYWdlKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGJ1ZmZlciBoYW5kbGUgd2hpY2ggd2lsbCByZWNlaXZlIHRoZSBvdXRwdXQgb2YgY2xpZW50CisgICAgICogY29tcG9zaXRpb24uICBMYXllcnMgbWFya2VkIGFzIENvbXBvc2l0aW9uOjpDTElFTlQgbXVzdCBiZSBjb21wb3NpdGVkCisgICAgICogaW50byB0aGlzIGJ1ZmZlciBwcmlvciB0byB0aGUgY2FsbCB0byBQUkVTRU5UX0RJU1BMQVksIGFuZCBsYXllcnMgbm90CisgICAgICogbWFya2VkIGFzIENvbXBvc2l0aW9uOjpDTElFTlQgbXVzdCBiZSBjb21wb3NpdGVkIHdpdGggdGhpcyBidWZmZXIgYnkKKyAgICAgKiB0aGUgZGV2aWNlLgorICAgICAqCisgICAgICogVGhlIGJ1ZmZlciBoYW5kbGUgcHJvdmlkZWQgbWF5IGJlIGVtcHR5IGlmIG5vIGxheWVycyBhcmUgYmVpbmcKKyAgICAgKiBjb21wb3NpdGVkIGJ5IHRoZSBjbGllbnQuIFRoaXMgbXVzdCBub3QgcmVzdWx0IGluIGFuIGVycm9yICh1bmxlc3MgYW4KKyAgICAgKiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIGlzIGFsc28gcHJvdmlkZWQpLgorICAgICAqCisgICAgICogQWxzbyBwcm92aWRlcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYW4gYWNxdWlyZSBzeW5jIGZlbmNlCisgICAgICogb2JqZWN0LCB3aGljaCBtdXN0IGJlIHNpZ25hbGVkIHdoZW4gaXQgaXMgc2FmZSB0byByZWFkIGZyb20gdGhlIGNsaWVudAorICAgICAqIHRhcmdldCBidWZmZXIuICBJZiBpdCBpcyBhbHJlYWR5IHNhZmUgdG8gcmVhZCBmcm9tIHRoaXMgYnVmZmVyLCBhbgorICAgICAqIGVtcHR5IGhhbmRsZSBtYXkgYmUgcGFzc2VkIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBGb3IgbW9yZSBhYm91dCBkYXRhc3BhY2VzLCBzZWUgU0VUX0xBWUVSX0RBVEFTUEFDRS4KKyAgICAgKgorICAgICAqIFRoZSBkYW1hZ2UgcGFyYW1ldGVyIGRlc2NyaWJlcyBhIHN1cmZhY2UgZGFtYWdlIHJlZ2lvbiBhcyBkZWZpbmVkIGluCisgICAgICogdGhlIGRlc2NyaXB0aW9uIG9mIFNFVF9MQVlFUl9TVVJGQUNFX0RBTUFHRS4KKyAgICAgKgorICAgICAqIFdpbGwgYmUgY2FsbGVkIGJlZm9yZSBQUkVTRU5UX0RJU1BMQVkgaWYgYW55IG9mIHRoZSBsYXllcnMgYXJlIG1hcmtlZAorICAgICAqIGFzIENvbXBvc2l0aW9uOjpDTElFTlQuIElmIG5vIGxheWVycyBhcmUgc28gbWFya2VkLCB0aGVuIGl0IGlzIG5vdAorICAgICAqIG5lY2Vzc2FyeSB0byBjYWxsIHRoaXMgZnVuY3Rpb24uIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY2FsbAorICAgICAqIHZhbGlkYXRlRGlzcGxheSBhZnRlciBjaGFuZ2luZyB0aGUgdGFyZ2V0IHRocm91Z2ggdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXJnZXRTbG90IGlzIHRoZSBjbGllbnQgdGFyZ2V0IGJ1ZmZlciBzbG90IHRvIHVzZS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0SW5kZXggaXMgYW4gaW5kZXggaW50byBpbkhhbmRsZXMgZm9yIHRoZSBuZXcgdGFyZ2V0CisgICAgICogICAgICAgIGJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gYWNxdWlyZUZlbmNlSW5kZXggaXMgYW4gaW5kZXggaW50byBpbkhhbmRsZXMgZm9yIGEgc3luYyBmZW5jZQorICAgICAqICAgICAgICBmaWxlIGRlc2NyaXB0b3IgYXMgZGVzY3JpYmVkIGFib3ZlLgorICAgICAqIEBwYXJhbSBkYXRhc3BhY2UgaXMgdGhlIGRhdGFzcGFjZSBvZiB0aGUgYnVmZmVyLCBhcyBkZXNjcmliZWQgaW4KKyAgICAgKiAgICAgICAgc2V0TGF5ZXJEYXRhc3BhY2UuCisgICAgICogQHBhcmFtIGRhbWFnZSBpcyB0aGUgc3VyZmFjZSBkYW1hZ2UgcmVnaW9uLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfT1VUUFVUX0JVRkZFUiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldE91dHB1dEJ1ZmZlcih1aW50MzJfdCBidWZmZXJTbG90LAorICAgICAqICAgICAgICAgICAgICAgICAgIGludDMyX3QgYnVmZmVySW5kZXgsCisgICAgICogICAgICAgICAgICAgICAgICAgaW50MzJfdCByZWxlYXNlRmVuY2VJbmRleCk7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBvdXRwdXQgYnVmZmVyIGZvciBhIHZpcnR1YWwgZGlzcGxheS4gVGhhdCBpcywgdGhlIGJ1ZmZlciB0bworICAgICAqIHdoaWNoIHRoZSBjb21wb3NpdGlvbiByZXN1bHQgd2lsbCBiZSB3cml0dGVuLgorICAgICAqCisgICAgICogQWxzbyBwcm92aWRlcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSByZWxlYXNlIHN5bmMgZmVuY2UKKyAgICAgKiBvYmplY3QsIHdoaWNoIG11c3QgYmUgc2lnbmFsZWQgd2hlbiBpdCBpcyBzYWZlIHRvIHdyaXRlIHRvIHRoZSBvdXRwdXQKKyAgICAgKiBidWZmZXIuIElmIGl0IGlzIGFscmVhZHkgc2FmZSB0byB3cml0ZSB0byB0aGUgb3V0cHV0IGJ1ZmZlciwgYW4gZW1wdHkKKyAgICAgKiBoYW5kbGUgbWF5IGJlIHBhc3NlZCBpbnN0ZWFkLgorICAgICAqCisgICAgICogTXVzdCBiZSBjYWxsZWQgYXQgbGVhc3Qgb25jZSBiZWZvcmUgUFJFU0VOVF9ESVNQTEFZLCBidXQgZG9lcyBub3QgaGF2ZQorICAgICAqIGFueSBpbnRlcmFjdGlvbiB3aXRoIGxheWVyIHN0YXRlIG9yIGRpc3BsYXkgdmFsaWRhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXJTbG90IGlzIHRoZSBuZXcgb3V0cHV0IGJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gYnVmZmVySW5kZXggaXMgdGhlIG5ldyBvdXRwdXQgYnVmZmVyLgorICAgICAqIEBwYXJhbSByZWxlYXNlRmVuY2VJbmRleCBpcyBhIHN5bmMgZmVuY2UgZmlsZSBkZXNjcmlwdG9yIGFzIGRlc2NyaWJlZAorICAgICAqICAgICAgICBhYm92ZS4KKyAgICAgKgorICAgICAqCisgICAgICogVkFMSURBVEVfRElTUExBWSBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHZhbGlkYXRlRGlzcGxheSgpOworICAgICAqCisgICAgICogSW5zdHJ1Y3RzIHRoZSBkZXZpY2UgdG8gaW5zcGVjdCBhbGwgb2YgdGhlIGxheWVyIHN0YXRlIGFuZCBkZXRlcm1pbmUgaWYKKyAgICAgKiB0aGVyZSBhcmUgYW55IGNvbXBvc2l0aW9uIHR5cGUgY2hhbmdlcyBuZWNlc3NhcnkgYmVmb3JlIHByZXNlbnRpbmcgdGhlCisgICAgICogZGlzcGxheS4gUGVybWl0dGVkIGNoYW5nZXMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgZGVmaW5pdGlvbiBvZgorICAgICAqIENvbXBvc2l0aW9uIGFib3ZlLgorICAgICAqCisgICAgICoKKyAgICAgKiBBQ0NFUFRfRElTUExBWV9DSEFOR0VTIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgYWNjZXB0RGlzcGxheUNoYW5nZXMoKTsKKyAgICAgKgorICAgICAqIEFjY2VwdHMgdGhlIGNoYW5nZXMgcmVxdWlyZWQgYnkgdGhlIGRldmljZSBmcm9tIHRoZSBwcmV2aW91cworICAgICAqIHZhbGlkYXRlRGlzcGxheSBjYWxsICh3aGljaCBtYXkgYmUgcXVlcmllZCB1c2luZworICAgICAqIGdldENoYW5nZWRDb21wb3NpdGlvblR5cGVzKSBhbmQgcmV2YWxpZGF0ZXMgdGhlIGRpc3BsYXkuIFRoaXMgZnVuY3Rpb24KKyAgICAgKiBpcyBlcXVpdmFsZW50IHRvIHJlcXVlc3RpbmcgdGhlIGNoYW5nZWQgdHlwZXMgZnJvbQorICAgICAqIGdldENoYW5nZWRDb21wb3NpdGlvblR5cGVzLCBzZXR0aW5nIHRob3NlIHR5cGVzIG9uIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICogbGF5ZXJzLCBhbmQgdGhlbiBjYWxsaW5nIHZhbGlkYXRlRGlzcGxheSBhZ2Fpbi4KKyAgICAgKgorICAgICAqIEFmdGVyIHRoaXMgY2FsbCBpdCBtdXN0IGJlIHZhbGlkIHRvIHByZXNlbnQgdGhpcyBkaXNwbGF5LiBDYWxsaW5nIHRoaXMKKyAgICAgKiBhZnRlciB2YWxpZGF0ZURpc3BsYXkgcmV0dXJucyAwIGNoYW5nZXMgbXVzdCBzdWNjZWVkIHdpdGggTk9ORSwgYnV0CisgICAgICogbXVzdCBoYXZlIG5vIG90aGVyIGVmZmVjdC4KKyAgICAgKgorICAgICAqCisgICAgICogUFJFU0VOVF9ESVNQTEFZIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgcHJlc2VudERpc3BsYXkoKTsKKyAgICAgKgorICAgICAqIFByZXNlbnRzIHRoZSBjdXJyZW50IGRpc3BsYXkgY29udGVudHMgb24gdGhlIHNjcmVlbiAob3IgaW4gdGhlIGNhc2Ugb2YKKyAgICAgKiB2aXJ0dWFsIGRpc3BsYXlzLCBpbnRvIHRoZSBvdXRwdXQgYnVmZmVyKS4KKyAgICAgKgorICAgICAqIFByaW9yIHRvIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgdGhlIGRpc3BsYXkgbXVzdCBiZSBzdWNjZXNzZnVsbHkKKyAgICAgKiB2YWxpZGF0ZWQgd2l0aCB2YWxpZGF0ZURpc3BsYXkuIE5vdGUgdGhhdCBzZXRMYXllckJ1ZmZlciBhbmQKKyAgICAgKiBzZXRMYXllclN1cmZhY2VEYW1hZ2Ugc3BlY2lmaWNhbGx5IGRvIG5vdCBjb3VudCBhcyBsYXllciBzdGF0ZSwgc28gaWYKKyAgICAgKiB0aGVyZSBhcmUgbm8gb3RoZXIgY2hhbmdlcyB0byB0aGUgbGF5ZXIgc3RhdGUgKG9yIHRvIHRoZSBidWZmZXIncworICAgICAqIHByb3BlcnRpZXMgYXMgZGVzY3JpYmVkIGluIHNldExheWVyQnVmZmVyKSwgdGhlbiBpdCBpcyBzYWZlIHRvIGNhbGwKKyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpdGhvdXQgZmlyc3QgdmFsaWRhdGluZyB0aGUgZGlzcGxheS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX0NVUlNPUl9QT1NJVElPTiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldExheWVyQ3Vyc29yUG9zaXRpb24oaW50MzJfdCB4LCBpbnQzMl90IHkpOworICAgICAqCisgICAgICogQXN5bmNocm9ub3VzbHkgc2V0cyB0aGUgcG9zaXRpb24gb2YgYSBjdXJzb3IgbGF5ZXIuCisgICAgICoKKyAgICAgKiBQcmlvciB0byB2YWxpZGF0ZURpc3BsYXksIGEgbGF5ZXIgbWF5IGJlIG1hcmtlZCBhcyBDb21wb3NpdGlvbjo6Q1VSU09SLgorICAgICAqIElmIHZhbGlkYXRpb24gc3VjY2VlZHMgKGkuZS4sIHRoZSBkZXZpY2UgZG9lcyBub3QgcmVxdWVzdCBhIGNvbXBvc2l0aW9uCisgICAgICogY2hhbmdlIGZvciB0aGF0IGxheWVyKSwgdGhlbiBvbmNlIGEgYnVmZmVyIGhhcyBiZWVuIHNldCBmb3IgdGhlIGxheWVyCisgICAgICogYW5kIGl0IGhhcyBiZWVuIHByZXNlbnRlZCwgaXRzIHBvc2l0aW9uIG1heSBiZSBzZXQgYnkgdGhpcyBmdW5jdGlvbiBhdAorICAgICAqIGFueSB0aW1lIGJldHdlZW4gcHJlc2VudERpc3BsYXkgYW5kIGFueSBzdWJzZXF1ZW50IHZhbGlkYXRlRGlzcGxheQorICAgICAqIGNhbGxzIGZvciB0aGlzIGRpc3BsYXkuCisgICAgICoKKyAgICAgKiBPbmNlIHZhbGlkYXRlRGlzcGxheSBpcyBjYWxsZWQsIHRoaXMgZnVuY3Rpb24gbXVzdCBub3QgYmUgY2FsbGVkIGFnYWluCisgICAgICogdW50aWwgdGhlIHZhbGlkYXRlL3ByZXNlbnQgc2VxdWVuY2UgaXMgY29tcGxldGVkLgorICAgICAqCisgICAgICogTWF5IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQgc28gbG9uZyBhcyBpdCBpcyBub3QgaW50ZXJsZWF2ZWQgd2l0aCB0aGUKKyAgICAgKiB2YWxpZGF0ZS9wcmVzZW50IHNlcXVlbmNlIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXllciBpcyB0aGUgbGF5ZXIgdG8gd2hpY2ggdGhlIHBvc2l0aW9uIGlzIHNldC4KKyAgICAgKiBAcGFyYW0geCBpcyB0aGUgbmV3IHggY29vcmRpbmF0ZSAoaW4gcGl4ZWxzIGZyb20gdGhlIGxlZnQgb2YgdGhlCisgICAgICogICAgICAgIHNjcmVlbikuCisgICAgICogQHBhcmFtIHkgaXMgdGhlIG5ldyB5IGNvb3JkaW5hdGUgKGluIHBpeGVscyBmcm9tIHRoZSB0b3Agb2YgdGhlCisgICAgICogICAgICAgIHNjcmVlbikuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9CVUZGRVIgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckJ1ZmZlcih1aW50MzJfdCBidWZmZXJTbG90LAorICAgICAqICAgICAgICAgICAgICAgICAgaW50MzJfdCBidWZmZXJJbmRleCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIGludDMyX3QgYWNxdWlyZUZlbmNlSW5kZXgpOworICAgICAqCisgICAgICogU2V0cyB0aGUgYnVmZmVyIGhhbmRsZSB0byBiZSBkaXNwbGF5ZWQgZm9yIHRoaXMgbGF5ZXIuIElmIHRoZSBidWZmZXIKKyAgICAgKiBwcm9wZXJ0aWVzIHNldCBhdCBhbGxvY2F0aW9uIHRpbWUgKHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgYW5kIHVzYWdlKQorICAgICAqIGhhdmUgbm90IGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIGZyYW1lLCBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNhbGwKKyAgICAgKiB2YWxpZGF0ZURpc3BsYXkgYmVmb3JlIGNhbGxpbmcgcHJlc2VudERpc3BsYXkgdW5sZXNzIG5ldyBzdGF0ZSBuZWVkcyB0bworICAgICAqIGJlIHZhbGlkYXRlZCBpbiB0aGUgaW50ZXJpbS4KKyAgICAgKgorICAgICAqIEFsc28gcHJvdmlkZXMgYSBmaWxlIGRlc2NyaXB0b3IgcmVmZXJyaW5nIHRvIGFuIGFjcXVpcmUgc3luYyBmZW5jZQorICAgICAqIG9iamVjdCwgd2hpY2ggbXVzdCBiZSBzaWduYWxlZCB3aGVuIGl0IGlzIHNhZmUgdG8gcmVhZCBmcm9tIHRoZSBnaXZlbgorICAgICAqIGJ1ZmZlci4gSWYgaXQgaXMgYWxyZWFkeSBzYWZlIHRvIHJlYWQgZnJvbSB0aGUgYnVmZmVyLCBhbiBlbXB0eSBoYW5kbGUKKyAgICAgKiBtYXkgYmUgcGFzc2VkIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgcmV0dXJuIE5PTkUgYW5kIGhhdmUgbm8gb3RoZXIgZWZmZWN0IGlmIGNhbGxlZCBmb3IgYQorICAgICAqIGxheWVyIHdpdGggYSBjb21wb3NpdGlvbiB0eXBlIG9mIENvbXBvc2l0aW9uOjpTT0xJRF9DT0xPUiAoYmVjYXVzZSBpdAorICAgICAqIGhhcyBubyBidWZmZXIpIG9yIENvbXBvc2l0aW9uOjpTSURFQkFORCBvciBDb21wb3NpdGlvbjo6Q0xJRU5UIChiZWNhdXNlCisgICAgICogc3luY2hyb25pemF0aW9uIGFuZCBidWZmZXIgdXBkYXRlcyBmb3IgdGhlc2UgbGF5ZXJzIGFyZSBoYW5kbGVkCisgICAgICogZWxzZXdoZXJlKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXllciBpcyB0aGUgbGF5ZXIgdG8gd2hpY2ggdGhlIGJ1ZmZlciBpcyBzZXQuCisgICAgICogQHBhcmFtIGJ1ZmZlclNsb3QgaXMgdGhlIGJ1ZmZlciBzbG90IHRvIHVzZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVySW5kZXggaXMgdGhlIGJ1ZmZlciBoYW5kbGUgdG8gc2V0LgorICAgICAqIEBwYXJhbSBhY3F1aXJlRmVuY2VJbmRleCBpcyBhIHN5bmMgZmVuY2UgZmlsZSBkZXNjcmlwdG9yIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX1NVUkZBQ0VfREFNQUdFIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0TGF5ZXJTdXJmYWNlRGFtYWdlKHZlYzxSZWN0PiBkYW1hZ2UpOworICAgICAqCisgICAgICogUHJvdmlkZXMgdGhlIHJlZ2lvbiBvZiB0aGUgc291cmNlIGJ1ZmZlciB3aGljaCBoYXMgYmVlbiBtb2RpZmllZCBzaW5jZQorICAgICAqIHRoZSBsYXN0IGZyYW1lLiBUaGlzIHJlZ2lvbiBkb2VzIG5vdCBuZWVkIHRvIGJlIHZhbGlkYXRlZCBiZWZvcmUKKyAgICAgKiBjYWxsaW5nIHByZXNlbnREaXNwbGF5LgorICAgICAqCisgICAgICogT25jZSBzZXQgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uLCB0aGUgZGFtYWdlIHJlZ2lvbiByZW1haW5zIHRoZSBzYW1lCisgICAgICogdW50aWwgYSBzdWJzZXF1ZW50IGNhbGwgdG8gdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIElmIGRhbWFnZSBpcyBub24tZW1wdHksIHRoZW4gaXQgbWF5IGJlIGFzc3VtZWQgdGhhdCBhbnkgcG9ydGlvbiBvZiB0aGUKKyAgICAgKiBzb3VyY2UgYnVmZmVyIG5vdCBjb3ZlcmVkIGJ5IG9uZSBvZiB0aGUgcmVjdHMgaGFzIG5vdCBiZWVuIG1vZGlmaWVkCisgICAgICogdGhpcyBmcmFtZS4gSWYgZGFtYWdlIGlzIGVtcHR5LCB0aGVuIHRoZSB3aG9sZSBzb3VyY2UgYnVmZmVyIG11c3QgYmUKKyAgICAgKiB0cmVhdGVkIGFzIGlmIGl0IGhhcyBiZWVuIG1vZGlmaWVkLgorICAgICAqCisgICAgICogSWYgdGhlIGxheWVyJ3MgY29udGVudHMgYXJlIG5vdCBtb2RpZmllZCByZWxhdGl2ZSB0byB0aGUgcHJpb3IgZnJhbWUsCisgICAgICogZGFtYWdlIG11c3QgY29udGFpbiBleGFjdGx5IG9uZSBlbXB0eSByZWN0KFswLCAwLCAwLCAwXSkuCisgICAgICoKKyAgICAgKiBUaGUgZGFtYWdlIHJlY3RzIGFyZSByZWxhdGl2ZSB0byB0aGUgcHJlLXRyYW5zZm9ybWVkIGJ1ZmZlciwgYW5kIHRoZWlyCisgICAgICogb3JpZ2luIGlzIHRoZSB0b3AtbGVmdCBjb3JuZXIuIFRoZXkgbXVzdCBub3QgZXhjZWVkIHRoZSBkaW1lbnNpb25zIG9mCisgICAgICogdGhlIGxhdGNoZWQgYnVmZmVyLgorICAgICAqCisgICAgICogQHBhcmFtIGxheWVyIGlzIHRoZSBsYXllciB0byB3aGljaCB0aGUgZGFtYWdlIHJlZ2lvbiBpcyBzZXQuCisgICAgICogQHBhcmFtIGRhbWFnZSBpcyB0aGUgbmV3IHN1cmZhY2UgZGFtYWdlIHJlZ2lvbi4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX0JMRU5EX01PREUgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckJsZW5kTW9kZShCbGVuZE1vZGUgbW9kZSkKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGJsZW5kIG1vZGUgb2YgdGhlIGdpdmVuIGxheWVyLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgaXMgdGhlIG5ldyBibGVuZCBtb2RlLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfQ09MT1IgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckNvbG9yKENvbG9yIGNvbG9yKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGNvbG9yIG9mIHRoZSBnaXZlbiBsYXllci4gSWYgdGhlIGNvbXBvc2l0aW9uIHR5cGUgb2YgdGhlIGxheWVyCisgICAgICogaXMgbm90IENvbXBvc2l0aW9uOjpTT0xJRF9DT0xPUiwgdGhpcyBjYWxsIG11c3Qgc3VjY2VlZCBhbmQgaGF2ZSBubworICAgICAqIG90aGVyIGVmZmVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb2xvciBpcyB0aGUgbmV3IGNvbG9yLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfQ09NUE9TSVRJT05fVFlQRSBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldExheWVyQ29tcG9zaXRpb25UeXBlKENvbXBvc2l0aW9uIHR5cGUpOworICAgICAqCisgICAgICogU2V0cyB0aGUgZGVzaXJlZCBjb21wb3NpdGlvbiB0eXBlIG9mIHRoZSBnaXZlbiBsYXllci4gRHVyaW5nCisgICAgICogdmFsaWRhdGVEaXNwbGF5LCB0aGUgZGV2aWNlIG1heSByZXF1ZXN0IGNoYW5nZXMgdG8gdGhlIGNvbXBvc2l0aW9uCisgICAgICogdHlwZXMgb2YgYW55IG9mIHRoZSBsYXllcnMgYXMgZGVzY3JpYmVkIGluIHRoZSBkZWZpbml0aW9uIG9mCisgICAgICogQ29tcG9zaXRpb24gYWJvdmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdHlwZSBpcyB0aGUgbmV3IGNvbXBvc2l0aW9uIHR5cGUuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9EQVRBU1BBQ0UgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckRhdGFzcGFjZShEYXRhc3BhY2UgZGF0YXNwYWNlKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGRhdGFzcGFjZSB0aGF0IHRoZSBjdXJyZW50IGJ1ZmZlciBvbiB0aGlzIGxheWVyIGlzIGluLgorICAgICAqCisgICAgICogVGhlIGRhdGFzcGFjZSBwcm92aWRlcyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0byBpbnRlcnByZXQgdGhlCisgICAgICogYnVmZmVyIGNvbnRlbnRzLCBzdWNoIGFzIHRoZSBlbmNvZGluZyBzdGFuZGFyZCBhbmQgY29sb3IgdHJhbnNmb3JtLgorICAgICAqCisgICAgICogU2VlIHRoZSB2YWx1ZXMgb2YgRGF0YXNwYWNlIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGFzcGFjZSBpcyB0aGUgbmV3IGRhdGFzcGFjZS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckRpc3BsYXlGcmFtZShSZWN0IGZyYW1lKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGRpc3BsYXkgZnJhbWUgKHRoZSBwb3J0aW9uIG9mIHRoZSBkaXNwbGF5IGNvdmVyZWQgYnkgYSBsYXllcikKKyAgICAgKiBvZiB0aGUgZ2l2ZW4gbGF5ZXIuIFRoaXMgZnJhbWUgbXVzdCBub3QgZXhjZWVkIHRoZSBkaXNwbGF5IGRpbWVuc2lvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZnJhbWUgaXMgdGhlIG5ldyBkaXNwbGF5IGZyYW1lLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfUExBTkVfQUxQSEEgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllclBsYW5lQWxwaGEoZmxvYXQgYWxwaGEpOworICAgICAqCisgICAgICogU2V0cyBhbiBhbHBoYSB2YWx1ZSAoYSBmbG9hdGluZyBwb2ludCB2YWx1ZSBpbiB0aGUgcmFuZ2UgWzAuMCwgMS4wXSkKKyAgICAgKiB3aGljaCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIHdob2xlIGxheWVyLiBJdCBjYW4gYmUgY29uY2VwdHVhbGl6ZWQgYXMgYQorICAgICAqIHByZXByb2Nlc3Npbmcgc3RlcCB3aGljaCBhcHBsaWVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246CisgICAgICogICBpZiAoYmxlbmRNb2RlID09IEJsZW5kTW9kZTo6UFJFTVVMVElQTElFRCkKKyAgICAgKiAgICAgICBvdXQucmdiID0gaW4ucmdiICogcGxhbmVBbHBoYQorICAgICAqICAgb3V0LmEgPSBpbi5hICogcGxhbmVBbHBoYQorICAgICAqCisgICAgICogSWYgdGhlIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9uIG9uIGEgbGF5ZXIgd2hpY2ggaXMKKyAgICAgKiBtYXJrZWQgQ29tcG9zaXRpb246OkRFVklDRSwgaXQgbXVzdCByZXF1ZXN0IGEgY29tcG9zaXRpb24gdHlwZSBjaGFuZ2UKKyAgICAgKiB0byBDb21wb3NpdGlvbjo6Q0xJRU5UIHVwb24gdGhlIG5leHQgdmFsaWRhdGVEaXNwbGF5IGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYWxwaGEgaXMgdGhlIHBsYW5lIGFscGhhIHZhbHVlIHRvIGFwcGx5LgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfU0lERUJBTkRfU1RSRUFNIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShpbnQzMl90IHN0cmVhbUluZGV4KQorICAgICAqCisgICAgICogU2V0cyB0aGUgc2lkZWJhbmQgc3RyZWFtIGZvciB0aGlzIGxheWVyLiBJZiB0aGUgY29tcG9zaXRpb24gdHlwZSBvZiB0aGUKKyAgICAgKiBnaXZlbiBsYXllciBpcyBub3QgQ29tcG9zaXRpb246OlNJREVCQU5ELCB0aGlzIGNhbGwgbXVzdCBzdWNjZWVkIGFuZAorICAgICAqIGhhdmUgbm8gb3RoZXIgZWZmZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmVhbUluZGV4IGlzIHRoZSBuZXcgc2lkZWJhbmQgc3RyZWFtLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfU09VUkNFX0NST1AgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllclNvdXJjZUNyb3AoRlJlY3QgY3JvcCk7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBzb3VyY2UgY3JvcCAodGhlIHBvcnRpb24gb2YgdGhlIHNvdXJjZSBidWZmZXIgd2hpY2ggd2lsbCBmaWxsCisgICAgICogdGhlIGRpc3BsYXkgZnJhbWUpIG9mIHRoZSBnaXZlbiBsYXllci4gVGhpcyBjcm9wIHJlY3RhbmdsZSBtdXN0IG5vdAorICAgICAqIGV4Y2VlZCB0aGUgZGltZW5zaW9ucyBvZiB0aGUgbGF0Y2hlZCBidWZmZXIuCisgICAgICoKKyAgICAgKiBJZiB0aGUgZGV2aWNlIGlzIG5vdCBjYXBhYmxlIG9mIHN1cHBvcnRpbmcgYSB0cnVlIGZsb2F0IHNvdXJjZSBjcm9wCisgICAgICogKGkuZS4sIGl0IHdpbGwgdHJ1bmNhdGUgb3Igcm91bmQgdGhlIGZsb2F0cyB0byBpbnRlZ2VycyksIGl0IG11c3Qgc2V0CisgICAgICogdGhpcyBsYXllciB0byBDb21wb3NpdGlvbjo6Q0xJRU5UIHdoZW4gY3JvcCBpcyBub24taW50ZWdyYWwgZm9yIHRoZQorICAgICAqIG1vc3QgYWNjdXJhdGUgcmVuZGVyaW5nLgorICAgICAqCisgICAgICogSWYgdGhlIGRldmljZSBjYW5ub3Qgc3VwcG9ydCBmbG9hdCBzb3VyY2UgY3JvcHMsIGJ1dCBzdGlsbCB3YW50cyB0bworICAgICAqIGhhbmRsZSB0aGUgbGF5ZXIsIGl0IG11c3QgdXNlIHRoZSBmb2xsb3dpbmcgY29kZSAob3Igc2ltaWxhcikgdG8KKyAgICAgKiBjb252ZXJ0IHRvIGFuIGludGVnZXIgY3JvcDoKKyAgICAgKiAgIGludENyb3AubGVmdCA9IChpbnQpIGNlaWxmKGNyb3AubGVmdCk7CisgICAgICogICBpbnRDcm9wLnRvcCA9IChpbnQpIGNlaWxmKGNyb3AudG9wKTsKKyAgICAgKiAgIGludENyb3AucmlnaHQgPSAoaW50KSBmbG9vcmYoY3JvcC5yaWdodCk7CisgICAgICogICBpbnRDcm9wLmJvdHRvbSA9IChpbnQpIGZsb29yZihjcm9wLmJvdHRvbSk7CisgICAgICoKKyAgICAgKiBAcGFyYW0gY3JvcCBpcyB0aGUgbmV3IHNvdXJjZSBjcm9wLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfVFJBTlNGT1JNIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqIFNldHMgdGhlIHRyYW5zZm9ybSAocm90YXRpb24vZmxpcCkgb2YgdGhlIGdpdmVuIGxheWVyLgorICAgICAqCisgICAgICogICBzZXRMYXllclRyYW5zZm9ybShUcmFuc2Zvcm0gdHJhbnNmb3JtKTsKKyAgICAgKgorICAgICAqIEBwYXJhbSB0cmFuc2Zvcm0gaXMgdGhlIG5ldyB0cmFuc2Zvcm0uCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9WSVNJQkxFX1JFR0lPTiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldExheWVyVmlzaWJsZVJlZ2lvbih2ZWM8UmVjdD4gdmlzaWJsZSk7CisgICAgICoKKyAgICAgKiBTcGVjaWZpZXMgdGhlIHBvcnRpb24gb2YgdGhlIGxheWVyIHRoYXQgaXMgdmlzaWJsZSwgaW5jbHVkaW5nIHBvcnRpb25zCisgICAgICogdW5kZXIgdHJhbnNsdWNlbnQgYXJlYXMgb2Ygb3RoZXIgbGF5ZXJzLiBUaGUgcmVnaW9uIGlzIGluIHNjcmVlbiBzcGFjZSwKKyAgICAgKiBhbmQgbXVzdCBub3QgZXhjZWVkIHRoZSBkaW1lbnNpb25zIG9mIHRoZSBzY3JlZW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmlzaWJsZSBpcyB0aGUgbmV3IHZpc2libGUgcmVnaW9uLCBpbiBzY3JlZW4gc3BhY2UuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9aX09SREVSIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0TGF5ZXJaT3JkZXIodWludDMyX3Qgeik7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBkZXNpcmVkIFogb3JkZXIgKGhlaWdodCkgb2YgdGhlIGdpdmVuIGxheWVyLiBBIGxheWVyIHdpdGggYQorICAgICAqIGdyZWF0ZXIgWiB2YWx1ZSBvY2NsdWRlcyBhIGxheWVyIHdpdGggYSBsZXNzZXIgWiB2YWx1ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6IGlzIHRoZSBuZXcgWiBvcmRlci4KKyAgICAgKi8KKyAgICBlbnVtIENvbW1hbmQgOiBpbnQzMl90IHsKKyAgICAgICAgTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICA9IDB4ZmZmZiwKKyAgICAgICAgT1BDT0RFX1NISUZUICAgICAgICAgICAgICAgICAgICAgICA9IDE2LAorICAgICAgICBPUENPREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgID0gMHhmZmZmIDw8IE9QQ09ERV9TSElGVCwKKworICAgICAgICAvKiogc3BlY2lhbCBjb21tYW5kcyAqLworICAgICAgICBTRUxFQ1RfRElTUExBWSAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAgPDwgT1BDT0RFX1NISUZULAorICAgICAgICBTRUxFQ1RfTEFZRVIgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDEgPDwgT1BDT0RFX1NISUZULAorCisgICAgICAgIC8qKiB2YWx1ZSBjb21tYW5kcyAoZm9yIHJldHVybiB2YWx1ZXMpICovCisgICAgICAgIFNFVF9FUlJPUiAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDEwMCA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9DSEFOR0VEX0NPTVBPU0lUSU9OX1RZUEVTICAgICAgPSAweDEwMSA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9ESVNQTEFZX1JFUVVFU1RTICAgICAgICAgICAgICAgPSAweDEwMiA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9QUkVTRU5UX0ZFTkNFICAgICAgICAgICAgICAgICAgPSAweDEwMyA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9SRUxFQVNFX0ZFTkNFUyAgICAgICAgICAgICAgICAgPSAweDEwNCA8PCBPUENPREVfU0hJRlQsCisKKyAgICAgICAgLyoqIGRpc3BsYXkgY29tbWFuZHMgKi8KKyAgICAgICAgU0VUX0NPTE9SX1RSQU5TRk9STSAgICAgICAgICAgICAgICA9IDB4MjAwIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0NMSUVOVF9UQVJHRVQgICAgICAgICAgICAgICAgICA9IDB4MjAxIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX09VVFBVVF9CVUZGRVIgICAgICAgICAgICAgICAgICA9IDB4MjAyIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgVkFMSURBVEVfRElTUExBWSAgICAgICAgICAgICAgICAgICA9IDB4MjAzIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgQUNDRVBUX0RJU1BMQVlfQ0hBTkdFUyAgICAgICAgICAgICA9IDB4MjA0IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgUFJFU0VOVF9ESVNQTEFZICAgICAgICAgICAgICAgICAgICA9IDB4MjA1IDw8IE9QQ09ERV9TSElGVCwKKworICAgICAgICAvKiogbGF5ZXIgY29tbWFuZHMgKFZBTElEQVRFX0RJU1BMQVkgbm90IHJlcXVpcmVkKSAqLworICAgICAgICBTRVRfTEFZRVJfQ1VSU09SX1BPU0lUSU9OICAgICAgICAgID0gMHgzMDAgPDwgT1BDT0RFX1NISUZULAorICAgICAgICBTRVRfTEFZRVJfQlVGRkVSICAgICAgICAgICAgICAgICAgID0gMHgzMDEgPDwgT1BDT0RFX1NISUZULAorICAgICAgICBTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UgICAgICAgICAgID0gMHgzMDIgPDwgT1BDT0RFX1NISUZULAorCisgICAgICAgIC8qKiBsYXllciBzdGF0ZSBjb21tYW5kcyAoVkFMSURBVEVfRElTUExBWSByZXF1aXJlZCkgKi8KKyAgICAgICAgU0VUX0xBWUVSX0JMRU5EX01PREUgICAgICAgICAgICAgICA9IDB4NDAwIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0NPTE9SICAgICAgICAgICAgICAgICAgICA9IDB4NDAxIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEUgICAgICAgICA9IDB4NDAyIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0RBVEFTUEFDRSAgICAgICAgICAgICAgICA9IDB4NDAzIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUgICAgICAgICAgICA9IDB4NDA0IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1BMQU5FX0FMUEhBICAgICAgICAgICAgICA9IDB4NDA1IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1NJREVCQU5EX1NUUkVBTSAgICAgICAgICA9IDB4NDA2IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1NPVVJDRV9DUk9QICAgICAgICAgICAgICA9IDB4NDA3IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1RSQU5TRk9STSAgICAgICAgICAgICAgICA9IDB4NDA4IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1ZJU0lCTEVfUkVHSU9OICAgICAgICAgICA9IDB4NDA5IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1pfT1JERVIgICAgICAgICAgICAgICAgICA9IDB4NDBhIDw8IE9QQ09ERV9TSElGVCwKKworICAgICAgICAvKiogMHg4MDAgLSAweGZmZiBhcmUgcmVzZXJ2ZWQgZm9yIHZlbmRvciBleHRlbnNpb25zICovCisgICAgICAgIC8qKiAweDEwMDAgLSAweGZmZmYgYXJlIHJlc2VydmVkICovCisgICAgfTsKK307CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzdmODEwCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDczIEBACitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogImxpYmh3Y29tcG9zZXItY2xpZW50IiwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXSwKKyAgICBzcmNzOiBbIkNvbXBvc2VyQ2xpZW50LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMSIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliZm1xIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnN5bmMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIkh3Yy5jcHAiXSwKKyAgICBzdGF0aWNfbGliczogWyJsaWJod2NvbXBvc2VyLWNsaWVudCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMSIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliZm1xIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnN5bmMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaHdjMm9uMWFkYXB0ZXIiCisgICAgXSwKK30KKworY2NfYmluYXJ5IHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEtc2VydmljZSIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbInNlcnZpY2UuY3BwIl0sCisgICAgaW5pdF9yYzogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMS1zZXJ2aWNlLnJjIl0sCisgICAgc3RhdGljX2xpYnM6IFsibGliaHdjb21wb3Nlci1jbGllbnQiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJiaW5kZXIiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmZtcSIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJzeW5jIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogImxpYmh3Y29tcG9zZXItY29tbWFuZC1idWZmZXIiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzaGFyZWRfbGliczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMSJdLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnM6IFsiLiJdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJCYXNlLmggYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Db21wb3NlckJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWIxYTRkCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJCYXNlLmgKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0NPTVBPU0VSX0JBU0VfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX1YyXzFfQ09NUE9TRVJfQkFTRV9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9od2NvbXBvc2VyMi5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6VHJhbnNmb3JtOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkRhdGFzcGFjZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpDb2xvck1vZGU7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6Q29sb3JUcmFuc2Zvcm07Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6SGRyOworCitjbGFzcyBDb21wb3NlckJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgfkNvbXBvc2VyQmFzZSgpIHt9OworCisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlQ2FsbGJhY2soYm9vbCBlbmFibGUpID0gMDsKKyAgICB2aXJ0dWFsIHVpbnQzMl90IGdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQoKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICBQaXhlbEZvcm1hdCogZm9ybWF0LCBEaXNwbGF5KiBvdXREaXNwbGF5KSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBkZXN0cm95VmlydHVhbERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBjcmVhdGVMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyKiBvdXRMYXllcikgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZGVzdHJveUxheWVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIpID0gMDsKKworICAgIHZpcnR1YWwgRXJyb3IgZ2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnKiBvdXRDb25maWcpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCwgRGF0YXNwYWNlIGRhdGFzcGFjZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZ2V0Q29sb3JNb2RlcyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBoaWRsX3ZlYzxDb2xvck1vZGU+KiBvdXRNb2RlcykgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZ2V0RGlzcGxheUF0dHJpYnV0ZShEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcsCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZSBhdHRyaWJ1dGUsIGludDMyX3QqIG91dFZhbHVlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBoaWRsX3ZlYzxDb25maWc+KiBvdXRDb25maWdzKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXREaXNwbGF5TmFtZShEaXNwbGF5IGRpc3BsYXksIGhpZGxfc3RyaW5nKiBvdXROYW1lKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkRpc3BsYXlUeXBlKiBvdXRUeXBlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXREb3plU3VwcG9ydChEaXNwbGF5IGRpc3BsYXksIGJvb2wqIG91dFN1cHBvcnQpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIGdldEhkckNhcGFiaWxpdGllcyhEaXNwbGF5IGRpc3BsYXksIGhpZGxfdmVjPEhkcj4qIG91dFR5cGVzLAorICAgICAgICAgICAgZmxvYXQqIG91dE1heEx1bWluYW5jZSwgZmxvYXQqIG91dE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgICBmbG9hdCogb3V0TWluTHVtaW5hbmNlKSA9IDA7CisKKyAgICB2aXJ0dWFsIEVycm9yIHNldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRQb3dlck1vZGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGUgbW9kZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6VnN5bmMgZW5hYmxlZCkgPSAwOworCisgICAgdmlydHVhbCBFcnJvciBzZXRDb2xvclRyYW5zZm9ybShEaXNwbGF5IGRpc3BsYXksIGNvbnN0IGZsb2F0KiBtYXRyaXgsCisgICAgICAgICAgICBpbnQzMl90IGhpbnQpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldENsaWVudFRhcmdldChEaXNwbGF5IGRpc3BsYXksIGJ1ZmZlcl9oYW5kbGVfdCB0YXJnZXQsCisgICAgICAgICAgICBpbnQzMl90IGFjcXVpcmVGZW5jZSwgaW50MzJfdCBkYXRhc3BhY2UsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgZGFtYWdlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRPdXRwdXRCdWZmZXIoRGlzcGxheSBkaXNwbGF5LCBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLAorICAgICAgICAgICAgaW50MzJfdCByZWxlYXNlRmVuY2UpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHZhbGlkYXRlRGlzcGxheShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dENoYW5nZWRMYXllcnMsCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OkNvbXBvc2l0aW9uPiogb3V0Q29tcG9zaXRpb25UeXBlcywKKyAgICAgICAgICAgIHVpbnQzMl90KiBvdXREaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dFJlcXVlc3RlZExheWVycywKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQzMl90Piogb3V0UmVxdWVzdE1hc2tzKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBhY2NlcHREaXNwbGF5Q2hhbmdlcyhEaXNwbGF5IGRpc3BsYXkpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHByZXNlbnREaXNwbGF5KERpc3BsYXkgZGlzcGxheSwgaW50MzJfdCogb3V0UHJlc2VudEZlbmNlLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+KiBvdXRMYXllcnMsCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxpbnQzMl90Piogb3V0UmVsZWFzZUZlbmNlcykgPSAwOworCisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllckN1cnNvclBvc2l0aW9uKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IHgsIGludDMyX3QgeSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0TGF5ZXJCdWZmZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsIGludDMyX3QgYWNxdWlyZUZlbmNlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclN1cmZhY2VEYW1hZ2UoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiBkYW1hZ2UpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyQmxlbmRNb2RlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyQ29sb3IoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6Q29sb3IgY29sb3IpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyQ29tcG9zaXRpb25UeXBlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IHR5cGUpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyRGF0YXNwYWNlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IGRhdGFzcGFjZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0TGF5ZXJEaXNwbGF5RnJhbWUoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IGh3Y19yZWN0X3QmIGZyYW1lKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclBsYW5lQWxwaGEoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGZsb2F0IGFscGhhKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclNpZGViYW5kU3RyZWFtKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3Qgc3RyZWFtKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclNvdXJjZUNyb3AoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IGh3Y19mcmVjdF90JiBjcm9wKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclRyYW5zZm9ybShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCB0cmFuc2Zvcm0pID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyVmlzaWJsZVJlZ2lvbihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4mIHZpc2libGUpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyWk9yZGVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB6KSA9IDA7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgY29tcG9zZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfVjJfMV9DT01QT1NFUl9CQVNFX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0NvbXBvc2VyQ2xpZW50LmNwcCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0NvbXBvc2VyQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTRlMTdmCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJDbGllbnQuY3BwCkBAIC0wLDAgKzEsMTE0NSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJId2NQYXNzdGhyb3VnaCIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiQ29tcG9zZXJDbGllbnQuaCIKKyNpbmNsdWRlICJDb21wb3NlckJhc2UuaCIKKyNpbmNsdWRlICJJQ29tcG9zZXJDb21tYW5kQnVmZmVyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIGNvbXBvc2VyIHsKK25hbWVzcGFjZSBWMl8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK25hbWVzcGFjZSB7CisKK3VzaW5nIE1hcHBlckVycm9yID0gYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI7CisKK2NsYXNzIEhhbmRsZUltcG9ydGVyIHsKK3B1YmxpYzoKKyAgICBib29sIGluaXRpYWxpemUoKQorICAgIHsKKyAgICAgICAgLy8gYWxsb3cgb25seSBvbmUgY2xpZW50CisgICAgICAgIGlmIChtSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIG1NYXBwZXIgPSBJTWFwcGVyOjpnZXRTZXJ2aWNlKCk7CisKKyAgICAgICAgbUluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCBjbGVhbnVwKCkKKyAgICB7CisgICAgICAgIG1NYXBwZXIuY2xlYXIoKTsKKyAgICAgICAgbUluaXRpYWxpemVkID0gZmFsc2U7CisgICAgfQorCisgICAgLy8gSW4gSUNvbXBvc2VyLCBhbnkgYnVmZmVyX2hhbmRsZV90IGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIgYW5kIHdlIG5lZWQgdG8KKyAgICAvLyBtYWtlIGEgY2xvbmUgZm9yIGh3Y29tcG9zZXIyLiAgV2UgYWxzbyBuZWVkIHRvIHRyYW5zbGF0ZSBlbXB0eSBoYW5kbGUKKyAgICAvLyB0byBudWxscHRyLiAgVGhpcyBmdW5jdGlvbiBkb2VzIHRoYXQsIGluLXBsYWNlLgorICAgIGJvb2wgaW1wb3J0QnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCYgaGFuZGxlKQorICAgIHsKKyAgICAgICAgaWYgKCFoYW5kbGUpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFoYW5kbGUtPm51bUZkcyAmJiAhaGFuZGxlLT5udW1JbnRzKSB7CisgICAgICAgICAgICBoYW5kbGUgPSBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBNYXBwZXJFcnJvciBlcnJvcjsKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGltcG9ydGVkSGFuZGxlOworICAgICAgICBtTWFwcGVyLT5pbXBvcnRCdWZmZXIoCisgICAgICAgICAgICBoaWRsX2hhbmRsZShoYW5kbGUpLAorICAgICAgICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBCdWZmZXJIYW5kbGUpIHsKKyAgICAgICAgICAgICAgICBlcnJvciA9IHRtcEVycm9yOworICAgICAgICAgICAgICAgIGltcG9ydGVkSGFuZGxlID0gc3RhdGljX2Nhc3Q8YnVmZmVyX2hhbmRsZV90Pih0bXBCdWZmZXJIYW5kbGUpOworICAgICAgICAgICAgfSk7CisgICAgICAgIGlmIChlcnJvciAhPSBNYXBwZXJFcnJvcjo6Tk9ORSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaGFuZGxlID0gaW1wb3J0ZWRIYW5kbGU7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCBmcmVlQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUpCisgICAgeworICAgICAgICBpZiAoIWhhbmRsZSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbU1hcHBlci0+ZnJlZUJ1ZmZlcihjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGhhbmRsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyBib29sIG1Jbml0aWFsaXplZCA9IGZhbHNlOworIHNwPElNYXBwZXI+IG1NYXBwZXI7Cit9OworCitIYW5kbGVJbXBvcnRlciBzSGFuZGxlSW1wb3J0ZXI7CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitCdWZmZXJDYWNoZUVudHJ5OjpCdWZmZXJDYWNoZUVudHJ5KCkKKyAgICA6IG1IYW5kbGUobnVsbHB0cikKK3sKK30KKworQnVmZmVyQ2FjaGVFbnRyeTo6QnVmZmVyQ2FjaGVFbnRyeShCdWZmZXJDYWNoZUVudHJ5JiYgb3RoZXIpCit7CisgICAgbUhhbmRsZSA9IG90aGVyLm1IYW5kbGU7CisgICAgb3RoZXIubUhhbmRsZSA9IG51bGxwdHI7Cit9CisKK0J1ZmZlckNhY2hlRW50cnkmIEJ1ZmZlckNhY2hlRW50cnk6Om9wZXJhdG9yPShidWZmZXJfaGFuZGxlX3QgaGFuZGxlKQoreworICAgIGNsZWFyKCk7CisgICAgbUhhbmRsZSA9IGhhbmRsZTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0J1ZmZlckNhY2hlRW50cnk6On5CdWZmZXJDYWNoZUVudHJ5KCkKK3sKKyAgICBjbGVhcigpOworfQorCit2b2lkIEJ1ZmZlckNhY2hlRW50cnk6OmNsZWFyKCkKK3sKKyAgICBpZiAobUhhbmRsZSkgeworICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuZnJlZUJ1ZmZlcihtSGFuZGxlKTsKKyAgICB9Cit9CisKK0NvbXBvc2VyQ2xpZW50OjpDb21wb3NlckNsaWVudChDb21wb3NlckJhc2UmIGhhbCkKKyAgICA6IG1IYWwoaGFsKSwgbVdyaXRlcihrV3JpdGVySW5pdGlhbFNpemUpCit7Cit9CisKK0NvbXBvc2VyQ2xpZW50Ojp+Q29tcG9zZXJDbGllbnQoKQoreworICAgIC8vIFdlIHdhbnQgdG8gY2FsbCBod2MyX2Nsb3NlIGhlcmUgKGFuZCBtb3ZlIGh3YzJfb3BlbiB0byB0aGUKKyAgICAvLyBjb25zdHJ1Y3RvciksIHdpdGggdGhlIGFzc3VtcHRpb24gdGhhdCBod2MyX2Nsb3NlIHdvdWxkCisgICAgLy8KKyAgICAvLyAgLSBjbGVhbiB1cCBhbGwgcmVzb3VyY2VzIG93bmVkIGJ5IHRoZSBjbGllbnQKKyAgICAvLyAgLSBtYWtlIHN1cmUgYWxsIGRpc3BsYXlzIGFyZSBibGFuayAoc2luY2UgdGhlcmUgaXMgbm8gbGF5ZXIpCisgICAgLy8KKyAgICAvLyBCdXQgc2luY2UgU0YgdXNlZCB0byBjcmFzaCBhdCB0aGlzIHBvaW50LCBkaWZmZXJlbnQgaHdjb21wb3NlcjIKKyAgICAvLyBpbXBsZW1lbnRhdGlvbnMgYmVoYXZlIGRpZmZlcmVudGx5IG9uIGh3YzJfY2xvc2UuICBPdXIgb25seSBwb3J0YWJsZQorICAgIC8vIGNob2ljZSByZWFsbHkgaXMgdG8gYWJvcnQoKS4gIEJ1dCB0aGF0IGlzIG5vdCBhbiBvcHRpb24gYW55bW9yZQorICAgIC8vIGJlY2F1c2Ugd2UgbWlnaHQgYWxzbyBoYXZlIFZUUyBvciBWUiBhcyBjbGllbnRzIHRoYXQgY2FuIGNvbWUgYW5kIGdvLgorICAgIC8vCisgICAgLy8gQmVsb3cgd2UgbWFudWFsbHkgY2xlYW4gYWxsIHJlc291cmNlcyAobGF5ZXJzIGFuZCB2aXJ0dWFsCisgICAgLy8gZGlzcGxheXMpLCBhbmQgcGVyZm9ybSBhIHByZXNlbnREaXNwbGF5IGFmdGVyd2FyZHMuCisgICAgQUxPR1coImRlc3Ryb3lpbmcgY29tcG9zZXIgY2xpZW50Iik7CisKKyAgICBtSGFsLmVuYWJsZUNhbGxiYWNrKGZhbHNlKTsKKworICAgIC8vIG5vIG5lZWQgdG8gZ3JhYiB0aGUgbXV0ZXggYXMgYW55IGluLWZsaWdodCBod2JpbmRlciBjYWxsIHdvdWxkIGhhdmUKKyAgICAvLyBrZXB0IHRoZSBjbGllbnQgYWxpdmUKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGRweSA6IG1EaXNwbGF5RGF0YSkgeworICAgICAgICBBTE9HVygiZGVzdHJveWluZyBjbGllbnQgcmVzb3VyY2VzIGZvciBkaXNwbGF5ICUiIFBSSXU2NCwgZHB5LmZpcnN0KTsKKworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGx5IDogZHB5LnNlY29uZC5MYXllcnMpIHsKKyAgICAgICAgICAgIG1IYWwuZGVzdHJveUxheWVyKGRweS5maXJzdCwgbHkuZmlyc3QpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRweS5zZWNvbmQuSXNWaXJ0dWFsKSB7CisgICAgICAgICAgICBtSGFsLmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShkcHkuZmlyc3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR1coInBlcmZvcm1pbmcgYSBmaW5hbCBwcmVzZW50RGlzcGxheSIpOworCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4gY2hhbmdlZExheWVyczsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb24+IGNvbXBvc2l0aW9uVHlwZXM7CisgICAgICAgICAgICB1aW50MzJfdCBkaXNwbGF5UmVxdWVzdE1hc2sgPSAwOworICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+IHJlcXVlc3RlZExheWVyczsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiByZXF1ZXN0TWFza3M7CisgICAgICAgICAgICBtSGFsLnZhbGlkYXRlRGlzcGxheShkcHkuZmlyc3QsICZjaGFuZ2VkTGF5ZXJzLCAmY29tcG9zaXRpb25UeXBlcywKKyAgICAgICAgICAgICAgICAgICAgJmRpc3BsYXlSZXF1ZXN0TWFzaywgJnJlcXVlc3RlZExheWVycywgJnJlcXVlc3RNYXNrcyk7CisKKyAgICAgICAgICAgIG1IYWwuYWNjZXB0RGlzcGxheUNoYW5nZXMoZHB5LmZpcnN0KTsKKworICAgICAgICAgICAgaW50MzJfdCBwcmVzZW50RmVuY2UgPSAtMTsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPExheWVyPiByZWxlYXNlZExheWVyczsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IHJlbGVhc2VGZW5jZXM7CisgICAgICAgICAgICBtSGFsLnByZXNlbnREaXNwbGF5KGRweS5maXJzdCwgJnByZXNlbnRGZW5jZSwgJnJlbGVhc2VkTGF5ZXJzLCAmcmVsZWFzZUZlbmNlcyk7CisgICAgICAgICAgICBpZiAocHJlc2VudEZlbmNlID49IDApIHsKKyAgICAgICAgICAgICAgICBjbG9zZShwcmVzZW50RmVuY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChhdXRvIGZlbmNlIDogcmVsZWFzZUZlbmNlcykgeworICAgICAgICAgICAgICAgIGlmIChmZW5jZSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNsb3NlKGZlbmNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtRGlzcGxheURhdGEuY2xlYXIoKTsKKworICAgIHNIYW5kbGVJbXBvcnRlci5jbGVhbnVwKCk7CisKKyAgICBtSGFsLnJlbW92ZUNsaWVudCgpOworCisgICAgQUxPR1coInJlbW92ZWQgY29tcG9zZXIgY2xpZW50Iik7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OmluaXRpYWxpemUoKQoreworICAgIG1SZWFkZXIgPSBjcmVhdGVDb21tYW5kUmVhZGVyKCk7CisgICAgaWYgKCFzSGFuZGxlSW1wb3J0ZXIuaW5pdGlhbGl6ZSgpKSB7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUwoImZhaWxlZCB0byBpbml0aWFsaXplIGhhbmRsZSBpbXBvcnRlciIpOworICAgIH0KK30KKwordm9pZCBDb21wb3NlckNsaWVudDo6b25Ib3RwbHVnKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb24gY29ubmVjdGVkKQoreworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobURpc3BsYXlEYXRhTXV0ZXgpOworCisgICAgICAgIGlmIChjb25uZWN0ZWQgPT0gSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb246OkNPTk5FQ1RFRCkgeworICAgICAgICAgICAgbURpc3BsYXlEYXRhLmVtcGxhY2UoZGlzcGxheSwgRGlzcGxheURhdGEoZmFsc2UpKTsKKyAgICAgICAgfSBlbHNlIGlmIChjb25uZWN0ZWQgPT0gSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb246OkRJU0NPTk5FQ1RFRCkgeworICAgICAgICAgICAgbURpc3BsYXlEYXRhLmVyYXNlKGRpc3BsYXkpOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byByZXQgPSBtQ2FsbGJhY2stPm9uSG90cGx1ZyhkaXNwbGF5LCBjb25uZWN0ZWQpOworICAgIEFMT0dFX0lGKCFyZXQuaXNPaygpLCAiZmFpbGVkIHRvIHNlbmQgb25Ib3RwbHVnOiAlcyIsCisgICAgICAgICAgICByZXQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKK30KKwordm9pZCBDb21wb3NlckNsaWVudDo6b25SZWZyZXNoKERpc3BsYXkgZGlzcGxheSkKK3sKKyAgICBhdXRvIHJldCA9IG1DYWxsYmFjay0+b25SZWZyZXNoKGRpc3BsYXkpOworICAgIEFMT0dFX0lGKCFyZXQuaXNPaygpLCAiZmFpbGVkIHRvIHNlbmQgb25SZWZyZXNoOiAlcyIsCisgICAgICAgICAgICByZXQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKK30KKwordm9pZCBDb21wb3NlckNsaWVudDo6b25Wc3luYyhEaXNwbGF5IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKQoreworICAgIGF1dG8gcmV0ID0gbUNhbGxiYWNrLT5vblZzeW5jKGRpc3BsYXksIHRpbWVzdGFtcCk7CisgICAgQUxPR0VfSUYoIXJldC5pc09rKCksICJmYWlsZWQgdG8gc2VuZCBvblZzeW5jOiAlcyIsCisgICAgICAgICAgICByZXQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpyZWdpc3RlckNhbGxiYWNrKAorICAgICAgICBjb25zdCBzcDxJQ29tcG9zZXJDYWxsYmFjaz4mIGNhbGxiYWNrKQoreworICAgIC8vIG5vIGxvY2tpbmcgYXMgd2UgcmVxdWlyZSB0aGlzIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbmx5IG9uY2UKKyAgICBtQ2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICBtSGFsLmVuYWJsZUNhbGxiYWNrKGNhbGxiYWNrICE9IG51bGxwdHIpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBDb21wb3NlckNsaWVudDo6Z2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpCit7CisgICAgcmV0dXJuIG1IYWwuZ2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpOworfQorCitSZXR1cm48dm9pZD4gQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZVZpcnR1YWxEaXNwbGF5KHVpbnQzMl90IHdpZHRoLAorICAgICAgICB1aW50MzJfdCBoZWlnaHQsIFBpeGVsRm9ybWF0IGZvcm1hdEhpbnQsIHVpbnQzMl90IG91dHB1dEJ1ZmZlclNsb3RDb3VudCwKKyAgICAgICAgY3JlYXRlVmlydHVhbERpc3BsYXlfY2IgaGlkbF9jYikKK3sKKyAgICBEaXNwbGF5IGRpc3BsYXkgPSAwOworICAgIEVycm9yIGVyciA9IG1IYWwuY3JlYXRlVmlydHVhbERpc3BsYXkod2lkdGgsIGhlaWdodCwKKyAgICAgICAgICAgICZmb3JtYXRIaW50LCAmZGlzcGxheSk7CisgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtRGlzcGxheURhdGFNdXRleCk7CisKKyAgICAgICAgYXV0byBkcHkgPSBtRGlzcGxheURhdGEuZW1wbGFjZShkaXNwbGF5LCBEaXNwbGF5RGF0YSh0cnVlKSkuZmlyc3Q7CisgICAgICAgIGRweS0+c2Vjb25kLk91dHB1dEJ1ZmZlcnMucmVzaXplKG91dHB1dEJ1ZmZlclNsb3RDb3VudCk7CisgICAgfQorCisgICAgaGlkbF9jYihlcnIsIGRpc3BsYXksIGZvcm1hdEhpbnQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxFcnJvcj4gQ29tcG9zZXJDbGllbnQ6OmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5kZXN0cm95VmlydHVhbERpc3BsYXkoZGlzcGxheSk7CisgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtRGlzcGxheURhdGFNdXRleCk7CisKKyAgICAgICAgbURpc3BsYXlEYXRhLmVyYXNlKGRpc3BsYXkpOworICAgIH0KKworICAgIHJldHVybiBlcnI7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Y3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICB1aW50MzJfdCBidWZmZXJTbG90Q291bnQsIGNyZWF0ZUxheWVyX2NiIGhpZGxfY2IpCit7CisgICAgTGF5ZXIgbGF5ZXIgPSAwOworICAgIEVycm9yIGVyciA9IG1IYWwuY3JlYXRlTGF5ZXIoZGlzcGxheSwgJmxheWVyKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EaXNwbGF5RGF0YU11dGV4KTsKKworICAgICAgICBhdXRvIGRweSA9IG1EaXNwbGF5RGF0YS5maW5kKGRpc3BsYXkpOworICAgICAgICBhdXRvIGx5ID0gZHB5LT5zZWNvbmQuTGF5ZXJzLmVtcGxhY2UobGF5ZXIsIExheWVyQnVmZmVycygpKS5maXJzdDsKKyAgICAgICAgbHktPnNlY29uZC5CdWZmZXJzLnJlc2l6ZShidWZmZXJTbG90Q291bnQpOworICAgIH0KKworICAgIGhpZGxfY2IoZXJyLCBsYXllcik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6ZGVzdHJveUxheWVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5kZXN0cm95TGF5ZXIoZGlzcGxheSwgbGF5ZXIpOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobURpc3BsYXlEYXRhTXV0ZXgpOworCisgICAgICAgIGF1dG8gZHB5ID0gbURpc3BsYXlEYXRhLmZpbmQoZGlzcGxheSk7CisgICAgICAgIGRweS0+c2Vjb25kLkxheWVycy5lcmFzZShsYXllcik7CisgICAgfQorCisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBnZXRBY3RpdmVDb25maWdfY2IgaGlkbF9jYikKK3sKKyAgICBDb25maWcgY29uZmlnID0gMDsKKyAgICBFcnJvciBlcnIgPSBtSGFsLmdldEFjdGl2ZUNvbmZpZyhkaXNwbGF5LCAmY29uZmlnKTsKKworICAgIGhpZGxfY2IoZXJyLCBjb25maWcpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxFcnJvcj4gQ29tcG9zZXJDbGllbnQ6OmdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICB1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsIERhdGFzcGFjZSBkYXRhc3BhY2UpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5nZXRDbGllbnRUYXJnZXRTdXBwb3J0KGRpc3BsYXksCisgICAgICAgICAgICB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIGRhdGFzcGFjZSk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXRDb2xvck1vZGVzKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICBnZXRDb2xvck1vZGVzX2NiIGhpZGxfY2IpCit7CisgICAgaGlkbF92ZWM8Q29sb3JNb2RlPiBtb2RlczsKKyAgICBFcnJvciBlcnIgPSBtSGFsLmdldENvbG9yTW9kZXMoZGlzcGxheSwgJm1vZGVzKTsKKworICAgIGhpZGxfY2IoZXJyLCBtb2Rlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5QXR0cmlidXRlKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgQ29uZmlnIGNvbmZpZywgQXR0cmlidXRlIGF0dHJpYnV0ZSwKKyAgICAgICAgZ2V0RGlzcGxheUF0dHJpYnV0ZV9jYiBoaWRsX2NiKQoreworICAgIGludDMyX3QgdmFsdWUgPSAwOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RGlzcGxheUF0dHJpYnV0ZShkaXNwbGF5LCBjb25maWcsIGF0dHJpYnV0ZSwgJnZhbHVlKTsKKworICAgIGhpZGxfY2IoZXJyLCB2YWx1ZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIGdldERpc3BsYXlDb25maWdzX2NiIGhpZGxfY2IpCit7CisgICAgaGlkbF92ZWM8Q29uZmlnPiBjb25maWdzOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RGlzcGxheUNvbmZpZ3MoZGlzcGxheSwgJmNvbmZpZ3MpOworCisgICAgaGlkbF9jYihlcnIsIGNvbmZpZ3MpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBnZXREaXNwbGF5TmFtZV9jYiBoaWRsX2NiKQoreworICAgIGhpZGxfc3RyaW5nIG5hbWU7CisgICAgRXJyb3IgZXJyID0gbUhhbC5nZXREaXNwbGF5TmFtZShkaXNwbGF5LCAmbmFtZSk7CisKKyAgICBoaWRsX2NiKGVyciwgbmFtZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIGdldERpc3BsYXlUeXBlX2NiIGhpZGxfY2IpCit7CisgICAgRGlzcGxheVR5cGUgdHlwZSA9IERpc3BsYXlUeXBlOjpJTlZBTElEOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RGlzcGxheVR5cGUoZGlzcGxheSwgJnR5cGUpOworCisgICAgaGlkbF9jYihlcnIsIHR5cGUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0RG96ZVN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBnZXREb3plU3VwcG9ydF9jYiBoaWRsX2NiKQoreworICAgIGJvb2wgc3VwcG9ydCA9IGZhbHNlOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RG96ZVN1cHBvcnQoZGlzcGxheSwgJnN1cHBvcnQpOworCisgICAgaGlkbF9jYihlcnIsIHN1cHBvcnQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgZ2V0SGRyQ2FwYWJpbGl0aWVzX2NiIGhpZGxfY2IpCit7CisgICAgaGlkbF92ZWM8SGRyPiB0eXBlczsKKyAgICBmbG9hdCBtYXhfbHVtaSA9IDAuMGY7CisgICAgZmxvYXQgbWF4X2F2Z19sdW1pID0gMC4wZjsKKyAgICBmbG9hdCBtaW5fbHVtaSA9IDAuMGY7CisgICAgRXJyb3IgZXJyID0gbUhhbC5nZXRIZHJDYXBhYmlsaXRpZXMoZGlzcGxheSwgJnR5cGVzLAorICAgICAgICAgICAgJm1heF9sdW1pLCAmbWF4X2F2Z19sdW1pLCAmbWluX2x1bWkpOworCisgICAgaGlkbF9jYihlcnIsIHR5cGVzLCBtYXhfbHVtaSwgbWF4X2F2Z19sdW1pLCBtaW5fbHVtaSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EaXNwbGF5RGF0YU11dGV4KTsKKworICAgIGF1dG8gZHB5ID0gbURpc3BsYXlEYXRhLmZpbmQoZGlzcGxheSk7CisgICAgaWYgKGRweSA9PSBtRGlzcGxheURhdGEuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfRElTUExBWTsKKyAgICB9CisKKyAgICBkcHktPnNlY29uZC5DbGllbnRUYXJnZXRzLnJlc2l6ZShjbGllbnRUYXJnZXRTbG90Q291bnQpOworCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCitSZXR1cm48RXJyb3I+IENvbXBvc2VyQ2xpZW50OjpzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKQoreworICAgIEVycm9yIGVyciA9IG1IYWwuc2V0QWN0aXZlQ29uZmlnKGRpc3BsYXksIGNvbmZpZyk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0Q29sb3JNb2RlKERpc3BsYXkgZGlzcGxheSwgQ29sb3JNb2RlIG1vZGUpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5zZXRDb2xvck1vZGUoZGlzcGxheSwgbW9kZSk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0UG93ZXJNb2RlKERpc3BsYXkgZGlzcGxheSwgUG93ZXJNb2RlIG1vZGUpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5zZXRQb3dlck1vZGUoZGlzcGxheSwgbW9kZSk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwgVnN5bmMgZW5hYmxlZCkKK3sKKyAgICBFcnJvciBlcnIgPSBtSGFsLnNldFZzeW5jRW5hYmxlZChkaXNwbGF5LCBlbmFibGVkKTsKKyAgICByZXR1cm4gZXJyOworfQorCitSZXR1cm48RXJyb3I+IENvbXBvc2VyQ2xpZW50OjpzZXRJbnB1dENvbW1hbmRRdWV1ZSgKKyAgICAgICAgY29uc3QgTVFEZXNjcmlwdG9yU3luYzx1aW50MzJfdD4mIGRlc2NyaXB0b3IpCit7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNvbW1hbmRNdXRleCk7CisgICAgcmV0dXJuIG1SZWFkZXItPnNldE1RRGVzY3JpcHRvcihkZXNjcmlwdG9yKSA/CisgICAgICAgIEVycm9yOjpOT05FIDogRXJyb3I6Ok5PX1JFU09VUkNFUzsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXRPdXRwdXRDb21tYW5kUXVldWUoCisgICAgICAgIGdldE91dHB1dENvbW1hbmRRdWV1ZV9jYiBoaWRsX2NiKQoreworICAgIC8vIG5vIGxvY2tpbmcgYXMgd2UgcmVxdWlyZSB0aGlzIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBpbnNpZGUKKyAgICAvLyBleGVjdXRlQ29tbWFuZHNfY2IKKworICAgIGF1dG8gb3V0RGVzY3JpcHRvciA9IG1Xcml0ZXIuZ2V0TVFEZXNjcmlwdG9yKCk7CisgICAgaWYgKG91dERlc2NyaXB0b3IpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6Tk9ORSwgKm91dERlc2NyaXB0b3IpOworICAgIH0gZWxzZSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6Ok5PX1JFU09VUkNFUywgQ29tbWFuZFF1ZXVlVHlwZTo6RGVzY3JpcHRvcigpKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ29tcG9zZXJDbGllbnQ6OmV4ZWN1dGVDb21tYW5kcyh1aW50MzJfdCBpbkxlbmd0aCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9oYW5kbGU+JiBpbkhhbmRsZXMsCisgICAgICAgIGV4ZWN1dGVDb21tYW5kc19jYiBoaWRsX2NiKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1Db21tYW5kTXV0ZXgpOworCisgICAgYm9vbCBvdXRDaGFuZ2VkID0gZmFsc2U7CisgICAgdWludDMyX3Qgb3V0TGVuZ3RoID0gMDsKKyAgICBoaWRsX3ZlYzxoaWRsX2hhbmRsZT4gb3V0SGFuZGxlczsKKworICAgIGlmICghbVJlYWRlci0+cmVhZFF1ZXVlKGluTGVuZ3RoLCBpbkhhbmRsZXMpKSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6OkJBRF9QQVJBTUVURVIsIG91dENoYW5nZWQsIG91dExlbmd0aCwgb3V0SGFuZGxlcyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgRXJyb3IgZXJyID0gbVJlYWRlci0+cGFyc2UoKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FICYmCisgICAgICAgICAgICAhbVdyaXRlci53cml0ZVF1ZXVlKCZvdXRDaGFuZ2VkLCAmb3V0TGVuZ3RoLCAmb3V0SGFuZGxlcykpIHsKKyAgICAgICAgZXJyID0gRXJyb3I6Ok5PX1JFU09VUkNFUzsKKyAgICB9CisKKyAgICBoaWRsX2NiKGVyciwgb3V0Q2hhbmdlZCwgb3V0TGVuZ3RoLCBvdXRIYW5kbGVzKTsKKworICAgIG1SZWFkZXItPnJlc2V0KCk7CisgICAgbVdyaXRlci5yZXNldCgpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyPgorQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZUNvbW1hbmRSZWFkZXIoKQoreworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI+KAorICAgICAgICBuZXcgQ29tbWFuZFJlYWRlcigqdGhpcykpOworfQorCitDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6Q29tbWFuZFJlYWRlcihDb21wb3NlckNsaWVudCYgY2xpZW50KQorICAgIDogbUNsaWVudChjbGllbnQpLCBtSGFsKGNsaWVudC5tSGFsKSwgbVdyaXRlcihjbGllbnQubVdyaXRlcikKK3sKK30KKworQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6On5Db21tYW5kUmVhZGVyKCkKK3sKK30KKworRXJyb3IgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlKCkKK3sKKyAgICBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQgY29tbWFuZDsKKyAgICB1aW50MTZfdCBsZW5ndGggPSAwOworCisgICAgd2hpbGUgKCFpc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKCFiZWdpbkNvbW1hbmQoJmNvbW1hbmQsICZsZW5ndGgpKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgcGFyc2VkID0gcGFyc2VDb21tYW5kKGNvbW1hbmQsIGxlbmd0aCk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKworICAgICAgICBpZiAoIXBhcnNlZCkgeworICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBwYXJzZSBjb21tYW5kIDB4JXgsIGxlbmd0aCAlIiBQUkl1MTYsCisgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQsIGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAoaXNFbXB0eSgpKSA/IEVycm9yOjpOT05FIDogRXJyb3I6OkJBRF9QQVJBTUVURVI7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlQ29tbWFuZCgKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kIGNvbW1hbmQsIHVpbnQxNl90IGxlbmd0aCkgeworICAgIHN3aXRjaCAoY29tbWFuZCkgeworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRUxFQ1RfRElTUExBWToKKyAgICAgICAgcmV0dXJuIHBhcnNlU2VsZWN0RGlzcGxheShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRUxFQ1RfTEFZRVI6CisgICAgICAgIHJldHVybiBwYXJzZVNlbGVjdExheWVyKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DT0xPUl9UUkFOU0ZPUk06CisgICAgICAgIHJldHVybiBwYXJzZVNldENvbG9yVHJhbnNmb3JtKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DTElFTlRfVEFSR0VUOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRDbGllbnRUYXJnZXQobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX09VVFBVVF9CVUZGRVI6CisgICAgICAgIHJldHVybiBwYXJzZVNldE91dHB1dEJ1ZmZlcihsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpWQUxJREFURV9ESVNQTEFZOgorICAgICAgICByZXR1cm4gcGFyc2VWYWxpZGF0ZURpc3BsYXkobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6QUNDRVBUX0RJU1BMQVlfQ0hBTkdFUzoKKyAgICAgICAgcmV0dXJuIHBhcnNlQWNjZXB0RGlzcGxheUNoYW5nZXMobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6UFJFU0VOVF9ESVNQTEFZOgorICAgICAgICByZXR1cm4gcGFyc2VQcmVzZW50RGlzcGxheShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQ1VSU09SX1BPU0lUSU9OOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckN1cnNvclBvc2l0aW9uKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9CVUZGRVI6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyQnVmZmVyKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9TVVJGQUNFX0RBTUFHRToKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJTdXJmYWNlRGFtYWdlKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9CTEVORF9NT0RFOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckJsZW5kTW9kZShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQ09MT1I6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyQ29sb3IobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEU6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyQ29tcG9zaXRpb25UeXBlKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9EQVRBU1BBQ0U6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyRGF0YXNwYWNlKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9ESVNQTEFZX0ZSQU1FOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckRpc3BsYXlGcmFtZShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfUExBTkVfQUxQSEE6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyUGxhbmVBbHBoYShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU0lERUJBTkRfU1RSRUFNOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllclNpZGViYW5kU3RyZWFtKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9TT1VSQ0VfQ1JPUDoKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJTb3VyY2VDcm9wKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9UUkFOU0ZPUk06CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyVHJhbnNmb3JtKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9WSVNJQkxFX1JFR0lPTjoKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJWaXNpYmxlUmVnaW9uKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9aX09SREVSOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllclpPcmRlcihsZW5ndGgpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2VsZWN0RGlzcGxheSh1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NlbGVjdERpc3BsYXlMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1EaXNwbGF5ID0gcmVhZDY0KCk7CisgICAgbVdyaXRlci5zZWxlY3REaXNwbGF5KG1EaXNwbGF5KTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNlbGVjdExheWVyKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2VsZWN0TGF5ZXJMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1MYXllciA9IHJlYWQ2NCgpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0Q29sb3JUcmFuc2Zvcm0odWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRDb2xvclRyYW5zZm9ybUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZmxvYXQgbWF0cml4WzE2XTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDE2OyBpKyspIHsKKyAgICAgICAgbWF0cml4W2ldID0gcmVhZEZsb2F0KCk7CisgICAgfQorICAgIGF1dG8gdHJhbnNmb3JtID0gcmVhZFNpZ25lZCgpOworCisgICAgYXV0byBlcnIgPSBtSGFsLnNldENvbG9yVHJhbnNmb3JtKG1EaXNwbGF5LCBtYXRyaXgsIHRyYW5zZm9ybSk7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRDbGllbnRUYXJnZXQodWludDE2X3QgbGVuZ3RoKQoreworICAgIC8vIDQgcGFyYW1ldGVycyBmb2xsb3dlZCBieSBOIHJlY3RhbmdsZXMKKyAgICBpZiAoKGxlbmd0aCAtIDQpICUgNCAhPSAwKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBib29sIHVzZUNhY2hlID0gZmFsc2U7CisgICAgYXV0byBzbG90ID0gcmVhZCgpOworICAgIGF1dG8gY2xpZW50VGFyZ2V0ID0gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIGF1dG8gZmVuY2UgPSByZWFkRmVuY2UoKTsKKyAgICBhdXRvIGRhdGFzcGFjZSA9IHJlYWRTaWduZWQoKTsKKyAgICBhdXRvIGRhbWFnZSA9IHJlYWRSZWdpb24oKGxlbmd0aCAtIDQpIC8gNCk7CisgICAgYm9vbCBjbG9zZUZlbmNlID0gdHJ1ZTsKKworICAgIGF1dG8gZXJyID0gbG9va3VwQnVmZmVyKEJ1ZmZlckNhY2hlOjpDTElFTlRfVEFSR0VUUywKKyAgICAgICAgICAgIHNsb3QsIHVzZUNhY2hlLCBjbGllbnRUYXJnZXQsICZjbGllbnRUYXJnZXQpOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgZXJyID0gbUhhbC5zZXRDbGllbnRUYXJnZXQobURpc3BsYXksIGNsaWVudFRhcmdldCwgZmVuY2UsCisgICAgICAgICAgICAgICAgZGF0YXNwYWNlLCBkYW1hZ2UpOworICAgICAgICBhdXRvIHVwZGF0ZUJ1ZkVyciA9IHVwZGF0ZUJ1ZmZlcihCdWZmZXJDYWNoZTo6Q0xJRU5UX1RBUkdFVFMsIHNsb3QsCisgICAgICAgICAgICAgICAgdXNlQ2FjaGUsIGNsaWVudFRhcmdldCk7CisgICAgICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgICAgIGNsb3NlRmVuY2UgPSBmYWxzZTsKKyAgICAgICAgICAgIGVyciA9IHVwZGF0ZUJ1ZkVycjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoY2xvc2VGZW5jZSkgeworICAgICAgICBjbG9zZShmZW5jZSk7CisgICAgfQorICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0T3V0cHV0QnVmZmVyKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0T3V0cHV0QnVmZmVyTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBib29sIHVzZUNhY2hlID0gZmFsc2U7CisgICAgYXV0byBzbG90ID0gcmVhZCgpOworICAgIGF1dG8gb3V0cHV0QnVmZmVyID0gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIGF1dG8gZmVuY2UgPSByZWFkRmVuY2UoKTsKKyAgICBib29sIGNsb3NlRmVuY2UgPSB0cnVlOworCisgICAgYXV0byBlcnIgPSBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGU6Ok9VVFBVVF9CVUZGRVJTLAorICAgICAgICAgICAgc2xvdCwgdXNlQ2FjaGUsIG91dHB1dEJ1ZmZlciwgJm91dHB1dEJ1ZmZlcik7CisgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBlcnIgPSBtSGFsLnNldE91dHB1dEJ1ZmZlcihtRGlzcGxheSwgb3V0cHV0QnVmZmVyLCBmZW5jZSk7CisgICAgICAgIGF1dG8gdXBkYXRlQnVmRXJyID0gdXBkYXRlQnVmZmVyKEJ1ZmZlckNhY2hlOjpPVVRQVVRfQlVGRkVSUywKKyAgICAgICAgICAgICAgICBzbG90LCB1c2VDYWNoZSwgb3V0cHV0QnVmZmVyKTsKKyAgICAgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICAgICAgY2xvc2VGZW5jZSA9IGZhbHNlOworICAgICAgICAgICAgZXJyID0gdXBkYXRlQnVmRXJyOworICAgICAgICB9CisgICAgfQorICAgIGlmIChjbG9zZUZlbmNlKSB7CisgICAgICAgIGNsb3NlKGZlbmNlKTsKKyAgICB9CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VWYWxpZGF0ZURpc3BsYXkodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtWYWxpZGF0ZURpc3BsYXlMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPExheWVyPiBjaGFuZ2VkTGF5ZXJzOworICAgIHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb24+IGNvbXBvc2l0aW9uVHlwZXM7CisgICAgdWludDMyX3QgZGlzcGxheVJlcXVlc3RNYXNrID0gMHgwOworICAgIHN0ZDo6dmVjdG9yPExheWVyPiByZXF1ZXN0ZWRMYXllcnM7CisgICAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+IHJlcXVlc3RNYXNrczsKKworICAgIGF1dG8gZXJyID0gbUhhbC52YWxpZGF0ZURpc3BsYXkobURpc3BsYXksICZjaGFuZ2VkTGF5ZXJzLAorICAgICAgICAgICAgJmNvbXBvc2l0aW9uVHlwZXMsICZkaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICAgICAgICAmcmVxdWVzdGVkTGF5ZXJzLCAmcmVxdWVzdE1hc2tzKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0Q2hhbmdlZENvbXBvc2l0aW9uVHlwZXMoY2hhbmdlZExheWVycywKKyAgICAgICAgICAgICAgICBjb21wb3NpdGlvblR5cGVzKTsKKyAgICAgICAgbVdyaXRlci5zZXREaXNwbGF5UmVxdWVzdHMoZGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgICAgIHJlcXVlc3RlZExheWVycywgcmVxdWVzdE1hc2tzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VBY2NlcHREaXNwbGF5Q2hhbmdlcyh1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a0FjY2VwdERpc3BsYXlDaGFuZ2VzTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuYWNjZXB0RGlzcGxheUNoYW5nZXMobURpc3BsYXkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlUHJlc2VudERpc3BsYXkodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtQcmVzZW50RGlzcGxheUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaW50IHByZXNlbnRGZW5jZSA9IC0xOworICAgIHN0ZDo6dmVjdG9yPExheWVyPiBsYXllcnM7CisgICAgc3RkOjp2ZWN0b3I8aW50PiBmZW5jZXM7CisgICAgYXV0byBlcnIgPSBtSGFsLnByZXNlbnREaXNwbGF5KG1EaXNwbGF5LCAmcHJlc2VudEZlbmNlLCAmbGF5ZXJzLCAmZmVuY2VzKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0UHJlc2VudEZlbmNlKHByZXNlbnRGZW5jZSk7CisgICAgICAgIG1Xcml0ZXIuc2V0UmVsZWFzZUZlbmNlcyhsYXllcnMsIGZlbmNlcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJDdXJzb3JQb3NpdGlvbih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQ3Vyc29yUG9zaXRpb25MZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckN1cnNvclBvc2l0aW9uKG1EaXNwbGF5LCBtTGF5ZXIsCisgICAgICAgICAgICByZWFkU2lnbmVkKCksIHJlYWRTaWduZWQoKSk7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllckJ1ZmZlcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQnVmZmVyTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBib29sIHVzZUNhY2hlID0gZmFsc2U7CisgICAgYXV0byBzbG90ID0gcmVhZCgpOworICAgIGF1dG8gYnVmZmVyID0gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIGF1dG8gZmVuY2UgPSByZWFkRmVuY2UoKTsKKyAgICBib29sIGNsb3NlRmVuY2UgPSB0cnVlOworCisgICAgYXV0byBlcnIgPSBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGU6OkxBWUVSX0JVRkZFUlMsCisgICAgICAgICAgICBzbG90LCB1c2VDYWNoZSwgYnVmZmVyLCAmYnVmZmVyKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIGVyciA9IG1IYWwuc2V0TGF5ZXJCdWZmZXIobURpc3BsYXksIG1MYXllciwgYnVmZmVyLCBmZW5jZSk7CisgICAgICAgIGF1dG8gdXBkYXRlQnVmRXJyID0gdXBkYXRlQnVmZmVyKEJ1ZmZlckNhY2hlOjpMQVlFUl9CVUZGRVJTLCBzbG90LAorICAgICAgICAgICAgICAgIHVzZUNhY2hlLCBidWZmZXIpOworICAgICAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgICAgICBjbG9zZUZlbmNlID0gZmFsc2U7CisgICAgICAgICAgICBlcnIgPSB1cGRhdGVCdWZFcnI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGNsb3NlRmVuY2UpIHsKKyAgICAgICAgY2xvc2UoZmVuY2UpOworICAgIH0KKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyU3VyZmFjZURhbWFnZSh1aW50MTZfdCBsZW5ndGgpCit7CisgICAgLy8gTiByZWN0YW5nbGVzCisgICAgaWYgKGxlbmd0aCAlIDQgIT0gMCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBkYW1hZ2UgPSByZWFkUmVnaW9uKGxlbmd0aCAvIDQpOworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllclN1cmZhY2VEYW1hZ2UobURpc3BsYXksIG1MYXllciwgZGFtYWdlKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyQmxlbmRNb2RlKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0TGF5ZXJCbGVuZE1vZGVMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckJsZW5kTW9kZShtRGlzcGxheSwgbUxheWVyLCByZWFkU2lnbmVkKCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJDb2xvcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQ29sb3JMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckNvbG9yKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRDb2xvcigpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyQ29tcG9zaXRpb25UeXBlKAorICAgICAgICB1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQ29tcG9zaXRpb25UeXBlTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJDb21wb3NpdGlvblR5cGUobURpc3BsYXksIG1MYXllciwgcmVhZFNpZ25lZCgpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyRGF0YXNwYWNlKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0TGF5ZXJEYXRhc3BhY2VMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckRhdGFzcGFjZShtRGlzcGxheSwgbUxheWVyLCByZWFkU2lnbmVkKCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJEaXNwbGF5RnJhbWUodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllckRpc3BsYXlGcmFtZUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBlcnIgPSBtSGFsLnNldExheWVyRGlzcGxheUZyYW1lKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRSZWN0KCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJQbGFuZUFscGhhKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0TGF5ZXJQbGFuZUFscGhhTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJQbGFuZUFscGhhKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRGbG9hdCgpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyU2lkZWJhbmRTdHJlYW0odWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllclNpZGViYW5kU3RyZWFtTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIHN0cmVhbSA9IHJlYWRIYW5kbGUoKTsKKworICAgIGF1dG8gZXJyID0gbG9va3VwTGF5ZXJTaWRlYmFuZFN0cmVhbShzdHJlYW0sICZzdHJlYW0pOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgZXJyID0gbUhhbC5zZXRMYXllclNpZGViYW5kU3RyZWFtKG1EaXNwbGF5LCBtTGF5ZXIsIHN0cmVhbSk7CisgICAgICAgIGF1dG8gdXBkYXRlRXJyID0gdXBkYXRlTGF5ZXJTaWRlYmFuZFN0cmVhbShzdHJlYW0pOworICAgICAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgICAgICBlcnIgPSB1cGRhdGVFcnI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllclNvdXJjZUNyb3AodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllclNvdXJjZUNyb3BMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllclNvdXJjZUNyb3AobURpc3BsYXksIG1MYXllciwgcmVhZEZSZWN0KCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJUcmFuc2Zvcm0odWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllclRyYW5zZm9ybUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBlcnIgPSBtSGFsLnNldExheWVyVHJhbnNmb3JtKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRTaWduZWQoKSk7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllclZpc2libGVSZWdpb24odWludDE2X3QgbGVuZ3RoKQoreworICAgIC8vIE4gcmVjdGFuZ2xlcworICAgIGlmIChsZW5ndGggJSA0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gcmVnaW9uID0gcmVhZFJlZ2lvbihsZW5ndGggLyA0KTsKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJWaXNpYmxlUmVnaW9uKG1EaXNwbGF5LCBtTGF5ZXIsIHJlZ2lvbik7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllclpPcmRlcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyWk9yZGVyTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJaT3JkZXIobURpc3BsYXksIG1MYXllciwgcmVhZCgpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitod2NfcmVjdF90IENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpyZWFkUmVjdCgpCit7CisgICAgcmV0dXJuIGh3Y19yZWN0X3R7CisgICAgICAgIHJlYWRTaWduZWQoKSwKKyAgICAgICAgcmVhZFNpZ25lZCgpLAorICAgICAgICByZWFkU2lnbmVkKCksCisgICAgICAgIHJlYWRTaWduZWQoKSwKKyAgICB9OworfQorCitzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cmVhZFJlZ2lvbihzaXplX3QgY291bnQpCit7CisgICAgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4gcmVnaW9uOworICAgIHJlZ2lvbi5yZXNlcnZlKGNvdW50KTsKKyAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgIHJlZ2lvbi5lbXBsYWNlX2JhY2socmVhZFJlY3QoKSk7CisgICAgICAgIGNvdW50LS07CisgICAgfQorCisgICAgcmV0dXJuIHJlZ2lvbjsKK30KKworaHdjX2ZyZWN0X3QgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnJlYWRGUmVjdCgpCit7CisgICAgcmV0dXJuIGh3Y19mcmVjdF90eworICAgICAgICByZWFkRmxvYXQoKSwKKyAgICAgICAgcmVhZEZsb2F0KCksCisgICAgICAgIHJlYWRGbG9hdCgpLAorICAgICAgICByZWFkRmxvYXQoKSwKKyAgICB9OworfQorCitFcnJvciBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6bG9va3VwQnVmZmVyQ2FjaGVFbnRyeUxvY2tlZCgKKyAgICAgICAgQnVmZmVyQ2FjaGUgY2FjaGUsIHVpbnQzMl90IHNsb3QsIEJ1ZmZlckNhY2hlRW50cnkqKiBvdXRFbnRyeSkKK3sKKyAgICBhdXRvIGRweSA9IG1DbGllbnQubURpc3BsYXlEYXRhLmZpbmQobURpc3BsYXkpOworICAgIGlmIChkcHkgPT0gbUNsaWVudC5tRGlzcGxheURhdGEuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfRElTUExBWTsKKyAgICB9CisKKyAgICBCdWZmZXJDYWNoZUVudHJ5KiBlbnRyeSA9IG51bGxwdHI7CisgICAgc3dpdGNoIChjYWNoZSkgeworICAgIGNhc2UgQnVmZmVyQ2FjaGU6OkNMSUVOVF9UQVJHRVRTOgorICAgICAgICBpZiAoc2xvdCA8IGRweS0+c2Vjb25kLkNsaWVudFRhcmdldHMuc2l6ZSgpKSB7CisgICAgICAgICAgICBlbnRyeSA9ICZkcHktPnNlY29uZC5DbGllbnRUYXJnZXRzW3Nsb3RdOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnVmZmVyQ2FjaGU6Ok9VVFBVVF9CVUZGRVJTOgorICAgICAgICBpZiAoc2xvdCA8IGRweS0+c2Vjb25kLk91dHB1dEJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgICAgICBlbnRyeSA9ICZkcHktPnNlY29uZC5PdXRwdXRCdWZmZXJzW3Nsb3RdOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnVmZmVyQ2FjaGU6OkxBWUVSX0JVRkZFUlM6CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbHkgPSBkcHktPnNlY29uZC5MYXllcnMuZmluZChtTGF5ZXIpOworICAgICAgICAgICAgaWYgKGx5ID09IGRweS0+c2Vjb25kLkxheWVycy5lbmQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0xBWUVSOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNsb3QgPCBseS0+c2Vjb25kLkJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgZW50cnkgPSAmbHktPnNlY29uZC5CdWZmZXJzW3Nsb3RdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnVmZmVyQ2FjaGU6OkxBWUVSX1NJREVCQU5EX1NUUkVBTVM6CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbHkgPSBkcHktPnNlY29uZC5MYXllcnMuZmluZChtTGF5ZXIpOworICAgICAgICAgICAgaWYgKGx5ID09IGRweS0+c2Vjb25kLkxheWVycy5lbmQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0xBWUVSOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNsb3QgPT0gMCkgeworICAgICAgICAgICAgICAgIGVudHJ5ID0gJmx5LT5zZWNvbmQuU2lkZWJhbmRTdHJlYW07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKCFlbnRyeSkgeworICAgICAgICBBTE9HVygiaW52YWxpZCBidWZmZXIgc2xvdCAlIiBQUkl1MzIsIHNsb3QpOworICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9QQVJBTUVURVI7CisgICAgfQorCisgICAgKm91dEVudHJ5ID0gZW50cnk7CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGUgY2FjaGUsCisgICAgICAgIHVpbnQzMl90IHNsb3QsIGJvb2wgdXNlQ2FjaGUsIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUsCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogb3V0SGFuZGxlKQoreworICAgIGlmICh1c2VDYWNoZSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQ2xpZW50Lm1EaXNwbGF5RGF0YU11dGV4KTsKKworICAgICAgICBCdWZmZXJDYWNoZUVudHJ5KiBlbnRyeTsKKyAgICAgICAgRXJyb3IgZXJyb3IgPSBsb29rdXBCdWZmZXJDYWNoZUVudHJ5TG9ja2VkKGNhY2hlLCBzbG90LCAmZW50cnkpOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlucHV0IGhhbmRsZSBpcyBpZ25vcmVkCisgICAgICAgICpvdXRIYW5kbGUgPSBlbnRyeS0+Z2V0SGFuZGxlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFzSGFuZGxlSW1wb3J0ZXIuaW1wb3J0QnVmZmVyKGhhbmRsZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICB9CisKKyAgICAgICAgKm91dEhhbmRsZSA9IGhhbmRsZTsKKyAgICB9CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjp1cGRhdGVCdWZmZXIoQnVmZmVyQ2FjaGUgY2FjaGUsCisgICAgICAgIHVpbnQzMl90IHNsb3QsIGJvb2wgdXNlQ2FjaGUsIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUpCit7CisgICAgLy8gaGFuZGxlIHdhcyBsb29rZWQgdXAgZnJvbSBjYWNoZQorICAgIGlmICh1c2VDYWNoZSkgeworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorCisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNsaWVudC5tRGlzcGxheURhdGFNdXRleCk7CisKKyAgICBCdWZmZXJDYWNoZUVudHJ5KiBlbnRyeSA9IG51bGxwdHI7CisgICAgRXJyb3IgZXJyb3IgPSBsb29rdXBCdWZmZXJDYWNoZUVudHJ5TG9ja2VkKGNhY2hlLCBzbG90LCAmZW50cnkpOworICAgIGlmIChlcnJvciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgICplbnRyeSA9IGhhbmRsZTsKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8xCit9IC8vIG5hbWVzcGFjZSBjb21wb3NlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Db21wb3NlckNsaWVudC5oIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDEwZjgwCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJDbGllbnQuaApAQCAtMCwwICsxLDIyMyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX1YyXzFfQ09NUE9TRVJfQ0xJRU5UX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0NPTVBPU0VSX0NMSUVOVF9ICisKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2h3Y29tcG9zZXIyLmg+CisjaW5jbHVkZSAiSUNvbXBvc2VyQ29tbWFuZEJ1ZmZlci5oIgorI2luY2x1ZGUgIkNvbXBvc2VyQmFzZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitjbGFzcyBCdWZmZXJDYWNoZUVudHJ5IHsKK3B1YmxpYzoKKyAgICBCdWZmZXJDYWNoZUVudHJ5KCk7CisgICAgQnVmZmVyQ2FjaGVFbnRyeShCdWZmZXJDYWNoZUVudHJ5JiYgb3RoZXIpOworCisgICAgQnVmZmVyQ2FjaGVFbnRyeShjb25zdCBCdWZmZXJDYWNoZUVudHJ5JiBvdGhlcikgPSBkZWxldGU7CisgICAgQnVmZmVyQ2FjaGVFbnRyeSYgb3BlcmF0b3I9KGNvbnN0IEJ1ZmZlckNhY2hlRW50cnkmIG90aGVyKSA9IGRlbGV0ZTsKKworICAgIEJ1ZmZlckNhY2hlRW50cnkmIG9wZXJhdG9yPShidWZmZXJfaGFuZGxlX3QgaGFuZGxlKTsKKyAgICB+QnVmZmVyQ2FjaGVFbnRyeSgpOworCisgICAgYnVmZmVyX2hhbmRsZV90IGdldEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1IYW5kbGU7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGNsZWFyKCk7CisKKyAgICBidWZmZXJfaGFuZGxlX3QgbUhhbmRsZTsKK307CisKK2NsYXNzIENvbXBvc2VyQ2xpZW50IDogcHVibGljIElDb21wb3NlckNsaWVudCB7CitwdWJsaWM6CisgICAgQ29tcG9zZXJDbGllbnQoQ29tcG9zZXJCYXNlJiBoYWwpOworICAgIHZpcnR1YWwgfkNvbXBvc2VyQ2xpZW50KCk7CisKKyAgICB2b2lkIGluaXRpYWxpemUoKTsKKworICAgIHZvaWQgb25Ib3RwbHVnKERpc3BsYXkgZGlzcGxheSwgSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb24gY29ubmVjdGVkKTsKKyAgICB2b2lkIG9uUmVmcmVzaChEaXNwbGF5IGRpc3BsYXkpOworICAgIHZvaWQgb25Wc3luYyhEaXNwbGF5IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKTsKKworICAgIC8vIElDb21wb3NlckNsaWVudCBpbnRlcmZhY2UKKyAgICBSZXR1cm48dm9pZD4gcmVnaXN0ZXJDYWxsYmFjaygKKyAgICAgICAgICAgIGNvbnN0IHNwPElDb21wb3NlckNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50MzJfdD4gZ2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0SGludCwgdWludDMyX3Qgb3V0cHV0QnVmZmVyU2xvdENvdW50LAorICAgICAgICAgICAgY3JlYXRlVmlydHVhbERpc3BsYXlfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yPiBkZXN0cm95VmlydHVhbERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCB1aW50MzJfdCBidWZmZXJTbG90Q291bnQsCisgICAgICAgICAgICBjcmVhdGVMYXllcl9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IGRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIGdldEFjdGl2ZUNvbmZpZ19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCwgRGF0YXNwYWNlIGRhdGFzcGFjZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgZ2V0Q29sb3JNb2Rlc19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlzcGxheUF0dHJpYnV0ZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBDb25maWcgY29uZmlnLCBBdHRyaWJ1dGUgYXR0cmlidXRlLAorICAgICAgICAgICAgZ2V0RGlzcGxheUF0dHJpYnV0ZV9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgZ2V0RGlzcGxheUNvbmZpZ3NfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIGdldERpc3BsYXlOYW1lX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBnZXREaXNwbGF5VHlwZV9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RG96ZVN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgZ2V0RG96ZVN1cHBvcnRfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEhkckNhcGFiaWxpdGllcyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBnZXRIZHJDYXBhYmlsaXRpZXNfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yPiBzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IHNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IHNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIFBvd2VyTW9kZSBtb2RlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IHNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksIFZzeW5jIGVuYWJsZWQpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvcj4gc2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIHVpbnQzMl90IGNsaWVudFRhcmdldFNsb3RDb3VudCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yPiBzZXRJbnB1dENvbW1hbmRRdWV1ZSgKKyAgICAgICAgICAgIGNvbnN0IE1RRGVzY3JpcHRvclN5bmM8dWludDMyX3Q+JiBkZXNjcmlwdG9yKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0T3V0cHV0Q29tbWFuZFF1ZXVlKAorICAgICAgICAgICAgZ2V0T3V0cHV0Q29tbWFuZFF1ZXVlX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBleGVjdXRlQ29tbWFuZHModWludDMyX3QgaW5MZW5ndGgsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxoaWRsX2hhbmRsZT4mIGluSGFuZGxlcywKKyAgICAgICAgICAgIGV4ZWN1dGVDb21tYW5kc19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKworcHJvdGVjdGVkOgorICAgIHN0cnVjdCBMYXllckJ1ZmZlcnMgeworICAgICAgICBzdGQ6OnZlY3RvcjxCdWZmZXJDYWNoZUVudHJ5PiBCdWZmZXJzOworICAgICAgICBCdWZmZXJDYWNoZUVudHJ5IFNpZGViYW5kU3RyZWFtOworICAgIH07CisKKyAgICBzdHJ1Y3QgRGlzcGxheURhdGEgeworICAgICAgICBib29sIElzVmlydHVhbDsKKworICAgICAgICBzdGQ6OnZlY3RvcjxCdWZmZXJDYWNoZUVudHJ5PiBDbGllbnRUYXJnZXRzOworICAgICAgICBzdGQ6OnZlY3RvcjxCdWZmZXJDYWNoZUVudHJ5PiBPdXRwdXRCdWZmZXJzOworCisgICAgICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxMYXllciwgTGF5ZXJCdWZmZXJzPiBMYXllcnM7CisKKyAgICAgICAgRGlzcGxheURhdGEoYm9vbCBpc1ZpcnR1YWwpIDogSXNWaXJ0dWFsKGlzVmlydHVhbCkge30KKyAgICB9OworCisgICAgY2xhc3MgQ29tbWFuZFJlYWRlciA6IHB1YmxpYyBDb21tYW5kUmVhZGVyQmFzZSB7CisgICAgcHVibGljOgorICAgICAgICBDb21tYW5kUmVhZGVyKENvbXBvc2VyQ2xpZW50JiBjbGllbnQpOworICAgICAgICB2aXJ0dWFsIH5Db21tYW5kUmVhZGVyKCk7CisKKyAgICAgICAgRXJyb3IgcGFyc2UoKTsKKworICAgIHByb3RlY3RlZDoKKyAgICAgICAgdmlydHVhbCBib29sIHBhcnNlQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQgY29tbWFuZCwKKyAgICAgICAgICAgICAgICB1aW50MTZfdCBsZW5ndGgpOworCisgICAgICAgIGJvb2wgcGFyc2VTZWxlY3REaXNwbGF5KHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZWxlY3RMYXllcih1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0Q29sb3JUcmFuc2Zvcm0odWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldENsaWVudFRhcmdldCh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0T3V0cHV0QnVmZmVyKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VWYWxpZGF0ZURpc3BsYXkodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZUFjY2VwdERpc3BsYXlDaGFuZ2VzKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VQcmVzZW50RGlzcGxheSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJDdXJzb3JQb3NpdGlvbih1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJCdWZmZXIodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyU3VyZmFjZURhbWFnZSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJCbGVuZE1vZGUodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyQ29sb3IodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyQ29tcG9zaXRpb25UeXBlKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllckRhdGFzcGFjZSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJEaXNwbGF5RnJhbWUodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyUGxhbmVBbHBoYSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJTaWRlYmFuZFN0cmVhbSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJTb3VyY2VDcm9wKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllclRyYW5zZm9ybSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJWaXNpYmxlUmVnaW9uKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllclpPcmRlcih1aW50MTZfdCBsZW5ndGgpOworCisgICAgICAgIGh3Y19yZWN0X3QgcmVhZFJlY3QoKTsKKyAgICAgICAgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4gcmVhZFJlZ2lvbihzaXplX3QgY291bnQpOworICAgICAgICBod2NfZnJlY3RfdCByZWFkRlJlY3QoKTsKKworICAgICAgICBlbnVtIGNsYXNzIEJ1ZmZlckNhY2hlIHsKKyAgICAgICAgICAgIENMSUVOVF9UQVJHRVRTLAorICAgICAgICAgICAgT1VUUFVUX0JVRkZFUlMsCisgICAgICAgICAgICBMQVlFUl9CVUZGRVJTLAorICAgICAgICAgICAgTEFZRVJfU0lERUJBTkRfU1RSRUFNUywKKyAgICAgICAgfTsKKyAgICAgICAgRXJyb3IgbG9va3VwQnVmZmVyQ2FjaGVFbnRyeUxvY2tlZChCdWZmZXJDYWNoZSBjYWNoZSwgdWludDMyX3Qgc2xvdCwKKyAgICAgICAgICAgICAgICBCdWZmZXJDYWNoZUVudHJ5Kiogb3V0RW50cnkpOworICAgICAgICBFcnJvciBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGUgY2FjaGUsIHVpbnQzMl90IHNsb3QsCisgICAgICAgICAgICAgICAgYm9vbCB1c2VDYWNoZSwgYnVmZmVyX2hhbmRsZV90IGhhbmRsZSwKKyAgICAgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QqIG91dEhhbmRsZSk7CisgICAgICAgIEVycm9yIHVwZGF0ZUJ1ZmZlcihCdWZmZXJDYWNoZSBjYWNoZSwgdWludDMyX3Qgc2xvdCwKKyAgICAgICAgICAgICAgICBib29sIHVzZUNhY2hlLCBidWZmZXJfaGFuZGxlX3QgaGFuZGxlKTsKKworICAgICAgICBFcnJvciBsb29rdXBMYXllclNpZGViYW5kU3RyZWFtKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUsCisgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRIYW5kbGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGU6OkxBWUVSX1NJREVCQU5EX1NUUkVBTVMsCisgICAgICAgICAgICAgICAgICAgIDAsIGZhbHNlLCBoYW5kbGUsIG91dEhhbmRsZSk7CisgICAgICAgIH0KKyAgICAgICAgRXJyb3IgdXBkYXRlTGF5ZXJTaWRlYmFuZFN0cmVhbShidWZmZXJfaGFuZGxlX3QgaGFuZGxlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdXBkYXRlQnVmZmVyKEJ1ZmZlckNhY2hlOjpMQVlFUl9TSURFQkFORF9TVFJFQU1TLAorICAgICAgICAgICAgICAgICAgICAwLCBmYWxzZSwgaGFuZGxlKTsKKyAgICAgICAgfQorCisgICAgICAgIENvbXBvc2VyQ2xpZW50JiBtQ2xpZW50OworICAgICAgICBDb21wb3NlckJhc2UmIG1IYWw7CisgICAgICAgIENvbW1hbmRXcml0ZXJCYXNlJiBtV3JpdGVyOworCisgICAgICAgIERpc3BsYXkgbURpc3BsYXk7CisgICAgICAgIExheWVyIG1MYXllcjsKKyAgICB9OworCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZFJlYWRlcj4gY3JlYXRlQ29tbWFuZFJlYWRlcigpOworCisgICAgQ29tcG9zZXJCYXNlJiBtSGFsOworCisgICAgLy8gNjRLaUIgbWludXMgYSBzbWFsbCBzcGFjZSBmb3IgbWV0YWRhdGEgc3VjaCBhcyByZWFkL3dyaXRlIHBvaW50ZXJzCisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qga1dyaXRlckluaXRpYWxTaXplID0KKyAgICAgICAgNjQgKiAxMDI0IC8gc2l6ZW9mKHVpbnQzMl90KSAtIDE2OworICAgIHN0ZDo6bXV0ZXggbUNvbW1hbmRNdXRleDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZFJlYWRlcj4gbVJlYWRlcjsKKyAgICBDb21tYW5kV3JpdGVyQmFzZSBtV3JpdGVyOworCisgICAgc3A8SUNvbXBvc2VyQ2FsbGJhY2s+IG1DYWxsYmFjazsKKworICAgIHN0ZDo6bXV0ZXggbURpc3BsYXlEYXRhTXV0ZXg7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPERpc3BsYXksIERpc3BsYXlEYXRhPiBtRGlzcGxheURhdGE7Cit9OworCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjJfMQorfSAvLyBuYW1lc3BhY2UgY29tcG9zZXIKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfVjJfMV9DT01QT1NFUl9DTElFTlRfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvSHdjLmNwcCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0h3Yy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNhMGViMwotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0h3Yy5jcHAKQEAgLTAsMCArMSw3NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiSHdjUGFzc3Rocm91Z2giCisKKyNpbmNsdWRlICJId2MuaCIKKworI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkNvbXBvc2VyQ2xpZW50LmgiCisjaW5jbHVkZSAiaGFyZHdhcmUvaHdjb21wb3Nlci5oIgorI2luY2x1ZGUgImh3YzJvbjFhZGFwdGVyL0hXQzJPbjFBZGFwdGVyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIGNvbXBvc2VyIHsKK25hbWVzcGFjZSBWMl8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKworSHdjSGFsOjpId2NIYWwoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSkKKyAgICA6IG1EZXZpY2UobnVsbHB0ciksIG1EaXNwYXRjaCgpLCBtQWRhcHRlcigpCit7CisgICAgLy8gRGV0ZXJtaW5lIHdoYXQga2luZCBvZiBtb2R1bGUgaXMgYXZhaWxhYmxlIChIV0MyIHZzIEhXQzEuWCkuCisgICAgaHdfZGV2aWNlX3QqIGRldmljZSA9IG51bGxwdHI7CisgICAgaW50IGVycm9yID0gbW9kdWxlLT5tZXRob2RzLT5vcGVuKG1vZHVsZSwgSFdDX0hBUkRXQVJFX0NPTVBPU0VSLCAmZGV2aWNlKTsKKyAgICBpZiAoZXJyb3IgIT0gMCkgeworICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIG9wZW4gSFdDIGRldmljZSAoJXMpLCBhYm9ydGluZyIsIHN0cmVycm9yKC1lcnJvcikpOworICAgICAgICBhYm9ydCgpOworICAgIH0KKyAgICB1aW50MzJfdCBtYWpvclZlcnNpb24gPSAoZGV2aWNlLT52ZXJzaW9uID4+IDI0KSAmIDB4RjsKKworICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBIV0MyLCB3ZSBuZWVkIHRvIHdyYXAgd2hhdGV2ZXIgd2UgaGF2ZSBpbiBhbiBhZGFwdGVyLgorICAgIGlmIChtYWpvclZlcnNpb24gIT0gMikgeworICAgICAgICB1aW50MzJfdCBtaW5vclZlcnNpb24gPSBkZXZpY2UtPnZlcnNpb24gJiBIQVJEV0FSRV9BUElfVkVSU0lPTl8yX01BSl9NSU5fTUFTSzsKKyAgICAgICAgbWlub3JWZXJzaW9uID0gKG1pbm9yVmVyc2lvbiA+PiAxNikgJiAweEY7CisgICAgICAgIEFMT0dJKCJGb3VuZCBIV0MgaW1wbGVtZW50YXRpb24gdiVkLiVkIiwgbWFqb3JWZXJzaW9uLCBtaW5vclZlcnNpb24pOworICAgICAgICBpZiAobWlub3JWZXJzaW9uIDwgMSkgeworICAgICAgICAgICAgQUxPR0UoIkNhbm5vdCBhZGFwdCB0byBIV0MgdmVyc2lvbiAlZC4lZC4gTWluaW11bSBzdXBwb3J0ZWQgaXMgMS4xIiwKKyAgICAgICAgICAgICAgICAgIG1ham9yVmVyc2lvbiwgbWlub3JWZXJzaW9uKTsKKyAgICAgICAgICAgIGFib3J0KCk7CisgICAgICAgIH0KKyAgICAgICAgbUFkYXB0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEhXQzJPbjFBZGFwdGVyPigKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGh3Y19jb21wb3Nlcl9kZXZpY2VfMSo+KGRldmljZSkpOworCisgICAgICAgIC8vIFBsYWNlIHRoZSBhZGFwdGVyIGluIGZyb250IG9mIHRoZSBkZXZpY2UgbW9kdWxlLgorICAgICAgICBtRGV2aWNlID0gbUFkYXB0ZXIuZ2V0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbURldmljZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8aHdjMl9kZXZpY2VfdCo+KGRldmljZSk7CisgICAgfQorCisgICAgaW5pdENhcGFiaWxpdGllcygpOworICAgIGlmIChtYWpvclZlcnNpb24gPj0gMiAmJgorICAgICAgICBoYXNDYXBhYmlsaXR5KENhcGFiaWxpdHk6OlBSRVNFTlRfRkVOQ0VfSVNfTk9UX1JFTElBQkxFKSkgeworICAgICAgICBBTE9HRSgiUHJlc2VudCBmZW5jZSBtdXN0IGJlIHJlbGlhYmxlIGZyb20gSFdDMiBvbi4iKTsKKyAgICAgICAgYWJvcnQoKTsKKyAgICB9CisKKyAgICBpbml0RGlzcGF0Y2goKTsKK30KKworSHdjSGFsOjp+SHdjSGFsKCkKK3sKKyAgICBod2MyX2Nsb3NlKG1EZXZpY2UpOworfQorCit2b2lkIEh3Y0hhbDo6aW5pdENhcGFiaWxpdGllcygpCit7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIG1EZXZpY2UtPmdldENhcGFiaWxpdGllcyhtRGV2aWNlLCAmY291bnQsIG51bGxwdHIpOworCisgICAgc3RkOjp2ZWN0b3I8Q2FwYWJpbGl0eT4gY2Fwcyhjb3VudCk7CisgICAgbURldmljZS0+Z2V0Q2FwYWJpbGl0aWVzKG1EZXZpY2UsICZjb3VudCwgcmVpbnRlcnByZXRfY2FzdDwKKyAgICAgICAgICAgICAgc3RkOjp1bmRlcmx5aW5nX3R5cGU8Q2FwYWJpbGl0eT46OnR5cGUqPihjYXBzLmRhdGEoKSkpOworICAgIGNhcHMucmVzaXplKGNvdW50KTsKKworICAgIG1DYXBhYmlsaXRpZXMuaW5zZXJ0KGNhcHMuY2JlZ2luKCksIGNhcHMuY2VuZCgpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgSHdjSGFsOjppbml0RGlzcGF0Y2goaHdjMl9mdW5jdGlvbl9kZXNjcmlwdG9yX3QgZGVzYywgVCogb3V0UGZuKQoreworICAgIGF1dG8gcGZuID0gbURldmljZS0+Z2V0RnVuY3Rpb24obURldmljZSwgZGVzYyk7CisgICAgaWYgKCFwZm4pIHsKKyAgICAgICAgTE9HX0FMV0FZU19GQVRBTCgiZmFpbGVkIHRvIGdldCBod2NvbXBvc2VyMiBmdW5jdGlvbiAlZCIsIGRlc2MpOworICAgIH0KKworICAgICpvdXRQZm4gPSByZWludGVycHJldF9jYXN0PFQ+KHBmbik7Cit9CisKK3ZvaWQgSHdjSGFsOjppbml0RGlzcGF0Y2goKQoreworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0FDQ0VQVF9ESVNQTEFZX0NIQU5HRVMsCisgICAgICAgICAgICAmbURpc3BhdGNoLmFjY2VwdERpc3BsYXlDaGFuZ2VzKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9DUkVBVEVfTEFZRVIsICZtRGlzcGF0Y2guY3JlYXRlTGF5ZXIpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0NSRUFURV9WSVJUVUFMX0RJU1BMQVksCisgICAgICAgICAgICAmbURpc3BhdGNoLmNyZWF0ZVZpcnR1YWxEaXNwbGF5KTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9ERVNUUk9ZX0xBWUVSLCAmbURpc3BhdGNoLmRlc3Ryb3lMYXllcik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fREVTVFJPWV9WSVJUVUFMX0RJU1BMQVksCisgICAgICAgICAgICAmbURpc3BhdGNoLmRlc3Ryb3lWaXJ0dWFsRGlzcGxheSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fRFVNUCwgJm1EaXNwYXRjaC5kdW1wKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9HRVRfQUNUSVZFX0NPTkZJRywgJm1EaXNwYXRjaC5nZXRBY3RpdmVDb25maWcpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9DSEFOR0VEX0NPTVBPU0lUSU9OX1RZUEVTLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlcyk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0NMSUVOVF9UQVJHRVRfU1VQUE9SVCwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guZ2V0Q2xpZW50VGFyZ2V0U3VwcG9ydCk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0NPTE9SX01PREVTLCAmbURpc3BhdGNoLmdldENvbG9yTW9kZXMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ESVNQTEFZX0FUVFJJQlVURSwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guZ2V0RGlzcGxheUF0dHJpYnV0ZSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0RJU1BMQVlfQ09ORklHUywKKyAgICAgICAgICAgICZtRGlzcGF0Y2guZ2V0RGlzcGxheUNvbmZpZ3MpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ESVNQTEFZX05BTUUsICZtRGlzcGF0Y2guZ2V0RGlzcGxheU5hbWUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ESVNQTEFZX1JFUVVFU1RTLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXREaXNwbGF5UmVxdWVzdHMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ESVNQTEFZX1RZUEUsICZtRGlzcGF0Y2guZ2V0RGlzcGxheVR5cGUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ET1pFX1NVUFBPUlQsICZtRGlzcGF0Y2guZ2V0RG96ZVN1cHBvcnQpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9IRFJfQ0FQQUJJTElUSUVTLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXRIZHJDYXBhYmlsaXRpZXMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9NQVhfVklSVFVBTF9ESVNQTEFZX0NPVU5ULAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9HRVRfUkVMRUFTRV9GRU5DRVMsCisgICAgICAgICAgICAmbURpc3BhdGNoLmdldFJlbGVhc2VGZW5jZXMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1BSRVNFTlRfRElTUExBWSwgJm1EaXNwYXRjaC5wcmVzZW50RGlzcGxheSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fUkVHSVNURVJfQ0FMTEJBQ0ssCisgICAgICAgICAgICAmbURpc3BhdGNoLnJlZ2lzdGVyQ2FsbGJhY2spOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9BQ1RJVkVfQ09ORklHLCAmbURpc3BhdGNoLnNldEFjdGl2ZUNvbmZpZyk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0NMSUVOVF9UQVJHRVQsICZtRGlzcGF0Y2guc2V0Q2xpZW50VGFyZ2V0KTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfQ09MT1JfTU9ERSwgJm1EaXNwYXRjaC5zZXRDb2xvck1vZGUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9DT0xPUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldENvbG9yVHJhbnNmb3JtKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfQ1VSU09SX1BPU0lUSU9OLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5zZXRDdXJzb3JQb3NpdGlvbik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX0JMRU5EX01PREUsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyQmxlbmRNb2RlKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfQlVGRkVSLCAmbURpc3BhdGNoLnNldExheWVyQnVmZmVyKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfQ09MT1IsICZtRGlzcGF0Y2guc2V0TGF5ZXJDb2xvcik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEUsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyQ29tcG9zaXRpb25UeXBlKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfREFUQVNQQUNFLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5zZXRMYXllckRhdGFzcGFjZSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyRGlzcGxheUZyYW1lKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfUExBTkVfQUxQSEEsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyUGxhbmVBbHBoYSk7CisKKyAgICBpZiAoaGFzQ2FwYWJpbGl0eShDYXBhYmlsaXR5OjpTSURFQkFORF9TVFJFQU0pKSB7CisgICAgICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9MQVlFUl9TSURFQkFORF9TVFJFQU0sCisgICAgICAgICAgICAgICAgJm1EaXNwYXRjaC5zZXRMYXllclNpZGViYW5kU3RyZWFtKTsKKyAgICB9CisKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfU09VUkNFX0NST1AsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyU291cmNlQ3JvcCk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX1NVUkZBQ0VfREFNQUdFLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5zZXRMYXllclN1cmZhY2VEYW1hZ2UpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9MQVlFUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyVHJhbnNmb3JtKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfVklTSUJMRV9SRUdJT04sCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyVmlzaWJsZVJlZ2lvbik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX1pfT1JERVIsICZtRGlzcGF0Y2guc2V0TGF5ZXJaT3JkZXIpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9PVVRQVVRfQlVGRkVSLCAmbURpc3BhdGNoLnNldE91dHB1dEJ1ZmZlcik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX1BPV0VSX01PREUsICZtRGlzcGF0Y2guc2V0UG93ZXJNb2RlKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfVlNZTkNfRU5BQkxFRCwgJm1EaXNwYXRjaC5zZXRWc3luY0VuYWJsZWQpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1ZBTElEQVRFX0RJU1BMQVksICZtRGlzcGF0Y2gudmFsaWRhdGVEaXNwbGF5KTsKK30KKworYm9vbCBId2NIYWw6Omhhc0NhcGFiaWxpdHkoQ2FwYWJpbGl0eSBjYXBhYmlsaXR5KSBjb25zdAoreworICAgIHJldHVybiAobUNhcGFiaWxpdGllcy5jb3VudChjYXBhYmlsaXR5KSA+IDApOworfQorCitSZXR1cm48dm9pZD4gSHdjSGFsOjpnZXRDYXBhYmlsaXRpZXMoZ2V0Q2FwYWJpbGl0aWVzX2NiIGhpZGxfY2IpCit7CisgICAgc3RkOjp2ZWN0b3I8Q2FwYWJpbGl0eT4gY2FwcygKKyAgICAgICAgICAgIG1DYXBhYmlsaXRpZXMuY2JlZ2luKCksIG1DYXBhYmlsaXRpZXMuY2VuZCgpKTsKKworICAgIGhpZGxfdmVjPENhcGFiaWxpdHk+IGNhcHNfcmVwbHk7CisgICAgY2Fwc19yZXBseS5zZXRUb0V4dGVybmFsKGNhcHMuZGF0YSgpLCBjYXBzLnNpemUoKSk7CisgICAgaGlkbF9jYihjYXBzX3JlcGx5KTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBId2NIYWw6OmR1bXBEZWJ1Z0luZm8oZHVtcERlYnVnSW5mb19jYiBoaWRsX2NiKQoreworICAgIHVpbnQzMl90IGxlbiA9IDA7CisgICAgbURpc3BhdGNoLmR1bXAobURldmljZSwgJmxlbiwgbnVsbHB0cik7CisKKyAgICBzdGQ6OnZlY3RvcjxjaGFyPiBidWYobGVuICsgMSk7CisgICAgbURpc3BhdGNoLmR1bXAobURldmljZSwgJmxlbiwgYnVmLmRhdGEoKSk7CisgICAgYnVmLnJlc2l6ZShsZW4gKyAxKTsKKyAgICBidWZbbGVuXSA9ICdcMCc7CisKKyAgICBoaWRsX3N0cmluZyBidWZfcmVwbHk7CisgICAgYnVmX3JlcGx5LnNldFRvRXh0ZXJuYWwoYnVmLmRhdGEoKSwgbGVuKTsKKyAgICBoaWRsX2NiKGJ1Zl9yZXBseSk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gSHdjSGFsOjpjcmVhdGVDbGllbnQoY3JlYXRlQ2xpZW50X2NiIGhpZGxfY2IpCit7CisgICAgRXJyb3IgZXJyID0gRXJyb3I6Ok5PTkU7CisgICAgc3A8Q29tcG9zZXJDbGllbnQ+IGNsaWVudDsKKworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNsaWVudE11dGV4KTsKKworICAgICAgICAvLyBvbmx5IG9uZSBjbGllbnQgaXMgYWxsb3dlZAorICAgICAgICBpZiAobUNsaWVudCA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBjbGllbnQgPSBuZXcgQ29tcG9zZXJDbGllbnQoKnRoaXMpOworICAgICAgICAgICAgY2xpZW50LT5pbml0aWFsaXplKCk7CisgICAgICAgICAgICBtQ2xpZW50ID0gY2xpZW50OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJyID0gRXJyb3I6Ok5PX1JFU09VUkNFUzsKKyAgICAgICAgfQorICAgIH0KKworICAgIGhpZGxfY2IoZXJyLCBjbGllbnQpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworc3A8Q29tcG9zZXJDbGllbnQ+IEh3Y0hhbDo6Z2V0Q2xpZW50KCkKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQ2xpZW50TXV0ZXgpOworICAgIHJldHVybiAobUNsaWVudCAhPSBudWxscHRyKSA/IG1DbGllbnQucHJvbW90ZSgpIDogbnVsbHB0cjsKK30KKwordm9pZCBId2NIYWw6OnJlbW92ZUNsaWVudCgpCit7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNsaWVudE11dGV4KTsKKyAgICBtQ2xpZW50ID0gbnVsbHB0cjsKK30KKwordm9pZCBId2NIYWw6OmhvdHBsdWdIb29rKGh3YzJfY2FsbGJhY2tfZGF0YV90IGNhbGxiYWNrRGF0YSwKKyAgICAgICAgaHdjMl9kaXNwbGF5X3QgZGlzcGxheSwgaW50MzJfdCBjb25uZWN0ZWQpCit7CisgICAgYXV0byBoYWwgPSByZWludGVycHJldF9jYXN0PEh3Y0hhbCo+KGNhbGxiYWNrRGF0YSk7CisgICAgYXV0byBjbGllbnQgPSBoYWwtPmdldENsaWVudCgpOworICAgIGlmIChjbGllbnQgIT0gbnVsbHB0cikgeworICAgICAgICBjbGllbnQtPm9uSG90cGx1ZyhkaXNwbGF5LAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElDb21wb3NlckNhbGxiYWNrOjpDb25uZWN0aW9uPihjb25uZWN0ZWQpKTsKKyAgICB9Cit9CisKK3ZvaWQgSHdjSGFsOjpyZWZyZXNoSG9vayhod2MyX2NhbGxiYWNrX2RhdGFfdCBjYWxsYmFja0RhdGEsCisgICAgICAgIGh3YzJfZGlzcGxheV90IGRpc3BsYXkpCit7CisgICAgYXV0byBoYWwgPSByZWludGVycHJldF9jYXN0PEh3Y0hhbCo+KGNhbGxiYWNrRGF0YSk7CisgICAgYXV0byBjbGllbnQgPSBoYWwtPmdldENsaWVudCgpOworICAgIGlmIChjbGllbnQgIT0gbnVsbHB0cikgeworICAgICAgICBjbGllbnQtPm9uUmVmcmVzaChkaXNwbGF5KTsKKyAgICB9Cit9CisKK3ZvaWQgSHdjSGFsOjp2c3luY0hvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5LCBpbnQ2NF90IHRpbWVzdGFtcCkKK3sKKyAgICBhdXRvIGhhbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SHdjSGFsKj4oY2FsbGJhY2tEYXRhKTsKKyAgICBhdXRvIGNsaWVudCA9IGhhbC0+Z2V0Q2xpZW50KCk7CisgICAgaWYgKGNsaWVudCAhPSBudWxscHRyKSB7CisgICAgICAgIGNsaWVudC0+b25Wc3luYyhkaXNwbGF5LCB0aW1lc3RhbXApOworICAgIH0KK30KKwordm9pZCBId2NIYWw6OmVuYWJsZUNhbGxiYWNrKGJvb2wgZW5hYmxlKQoreworICAgIGlmIChlbmFibGUpIHsKKyAgICAgICAgbURpc3BhdGNoLnJlZ2lzdGVyQ2FsbGJhY2sobURldmljZSwgSFdDMl9DQUxMQkFDS19IT1RQTFVHLCB0aGlzLAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdjMl9mdW5jdGlvbl9wb2ludGVyX3Q+KGhvdHBsdWdIb29rKSk7CisgICAgICAgIG1EaXNwYXRjaC5yZWdpc3RlckNhbGxiYWNrKG1EZXZpY2UsIEhXQzJfQ0FMTEJBQ0tfUkVGUkVTSCwgdGhpcywKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGh3YzJfZnVuY3Rpb25fcG9pbnRlcl90PihyZWZyZXNoSG9vaykpOworICAgICAgICBtRGlzcGF0Y2gucmVnaXN0ZXJDYWxsYmFjayhtRGV2aWNlLCBIV0MyX0NBTExCQUNLX1ZTWU5DLCB0aGlzLAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdjMl9mdW5jdGlvbl9wb2ludGVyX3Q+KHZzeW5jSG9vaykpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1EaXNwYXRjaC5yZWdpc3RlckNhbGxiYWNrKG1EZXZpY2UsIEhXQzJfQ0FMTEJBQ0tfSE9UUExVRywgdGhpcywKKyAgICAgICAgICAgICAgICBudWxscHRyKTsKKyAgICAgICAgbURpc3BhdGNoLnJlZ2lzdGVyQ2FsbGJhY2sobURldmljZSwgSFdDMl9DQUxMQkFDS19SRUZSRVNILCB0aGlzLAorICAgICAgICAgICAgICAgIG51bGxwdHIpOworICAgICAgICBtRGlzcGF0Y2gucmVnaXN0ZXJDYWxsYmFjayhtRGV2aWNlLCBIV0MyX0NBTExCQUNLX1ZTWU5DLCB0aGlzLAorICAgICAgICAgICAgICAgIG51bGxwdHIpOworICAgIH0KK30KKwordWludDMyX3QgSHdjSGFsOjpnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkKK3sKKyAgICByZXR1cm4gbURpc3BhdGNoLmdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQobURldmljZSk7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Y3JlYXRlVmlydHVhbERpc3BsYXkodWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICBQaXhlbEZvcm1hdCogZm9ybWF0LCBEaXNwbGF5KiBvdXREaXNwbGF5KQoreworICAgIGludDMyX3QgaHdjX2Zvcm1hdCA9IHN0YXRpY19jYXN0PGludDMyX3Q+KCpmb3JtYXQpOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmNyZWF0ZVZpcnR1YWxEaXNwbGF5KG1EZXZpY2UsIHdpZHRoLCBoZWlnaHQsCisgICAgICAgICAgICAmaHdjX2Zvcm1hdCwgb3V0RGlzcGxheSk7CisgICAgKmZvcm1hdCA9IHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0Pihod2NfZm9ybWF0KTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpkZXN0cm95VmlydHVhbERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShtRGV2aWNlLCBkaXNwbGF5KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Y3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciogb3V0TGF5ZXIpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guY3JlYXRlTGF5ZXIobURldmljZSwgZGlzcGxheSwgb3V0TGF5ZXIpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpkZXN0cm95TGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllcikKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5kZXN0cm95TGF5ZXIobURldmljZSwgZGlzcGxheSwgbGF5ZXIpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpnZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcqIG91dENvbmZpZykKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXRBY3RpdmVDb25maWcobURldmljZSwgZGlzcGxheSwgb3V0Q29uZmlnKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydChEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCwgRGF0YXNwYWNlIGRhdGFzcGFjZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXRDbGllbnRUYXJnZXRTdXBwb3J0KG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICB3aWR0aCwgaGVpZ2h0LCBzdGF0aWNfY2FzdDxpbnQzMl90Pihmb3JtYXQpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oZGF0YXNwYWNlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OmdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3ZlYzxDb2xvck1vZGU+KiBvdXRNb2RlcykKK3sKKyAgICB1aW50MzJfdCBjb3VudCA9IDA7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guZ2V0Q29sb3JNb2RlcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsIG51bGxwdHIpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICBvdXRNb2Rlcy0+cmVzaXplKGNvdW50KTsKKyAgICBlcnIgPSBtRGlzcGF0Y2guZ2V0Q29sb3JNb2RlcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHN0ZDo6dW5kZXJseWluZ190eXBlPENvbG9yTW9kZT46OnR5cGUqPigKKyAgICAgICAgICAgICAgICBvdXRNb2Rlcy0+ZGF0YSgpKSk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgKm91dE1vZGVzID0gaGlkbF92ZWM8Q29sb3JNb2RlPigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCitFcnJvciBId2NIYWw6OmdldERpc3BsYXlBdHRyaWJ1dGUoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnLAorICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZSBhdHRyaWJ1dGUsIGludDMyX3QqIG91dFZhbHVlKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlBdHRyaWJ1dGUobURldmljZSwgZGlzcGxheSwgY29uZmlnLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oYXR0cmlidXRlKSwgb3V0VmFsdWUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXksIGhpZGxfdmVjPENvbmZpZz4qIG91dENvbmZpZ3MpCit7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlDb25maWdzKG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICAmY291bnQsIG51bGxwdHIpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICBvdXRDb25maWdzLT5yZXNpemUoY291bnQpOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXREaXNwbGF5Q29uZmlncyhtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgJmNvdW50LCBvdXRDb25maWdzLT5kYXRhKCkpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgICpvdXRDb25maWdzID0gaGlkbF92ZWM8Q29uZmlnPigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCitFcnJvciBId2NIYWw6OmdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSwgaGlkbF9zdHJpbmcqIG91dE5hbWUpCit7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlOYW1lKG1EZXZpY2UsIGRpc3BsYXksICZjb3VudCwgbnVsbHB0cik7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPGNoYXI+IGJ1Zihjb3VudCArIDEpOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXREaXNwbGF5TmFtZShtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsIGJ1Zi5kYXRhKCkpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisgICAgYnVmLnJlc2l6ZShjb3VudCArIDEpOworICAgIGJ1Zltjb3VudF0gPSAnXDAnOworCisgICAgKm91dE5hbWUgPSBidWYuZGF0YSgpOworCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCitFcnJvciBId2NIYWw6OmdldERpc3BsYXlUeXBlKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSogb3V0VHlwZSkKK3sKKyAgICBpbnQzMl90IGh3Y190eXBlID0gSFdDMl9ESVNQTEFZX1RZUEVfSU5WQUxJRDsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXREaXNwbGF5VHlwZShtRGV2aWNlLCBkaXNwbGF5LCAmaHdjX3R5cGUpOworICAgICpvdXRUeXBlID0gc3RhdGljX2Nhc3Q8SUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZT4oaHdjX3R5cGUpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OmdldERvemVTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwgYm9vbCogb3V0U3VwcG9ydCkKK3sKKyAgICBpbnQzMl90IGh3Y19zdXBwb3J0ID0gMDsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXREb3plU3VwcG9ydChtRGV2aWNlLCBkaXNwbGF5LCAmaHdjX3N1cHBvcnQpOworICAgICpvdXRTdXBwb3J0ID0gaHdjX3N1cHBvcnQ7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Z2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSwgaGlkbF92ZWM8SGRyPiogb3V0VHlwZXMsCisgICAgICAgIGZsb2F0KiBvdXRNYXhMdW1pbmFuY2UsIGZsb2F0KiBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgICAgICBmbG9hdCogb3V0TWluTHVtaW5hbmNlKQoreworICAgIHVpbnQzMl90IGNvdW50ID0gMDsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXRIZHJDYXBhYmlsaXRpZXMobURldmljZSwgZGlzcGxheSwgJmNvdW50LAorICAgICAgICAgICAgbnVsbHB0ciwgb3V0TWF4THVtaW5hbmNlLCBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgICAgICAgICAgb3V0TWluTHVtaW5hbmNlKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgb3V0VHlwZXMtPnJlc2l6ZShjb3VudCk7CisgICAgZXJyID0gbURpc3BhdGNoLmdldEhkckNhcGFiaWxpdGllcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHN0ZDo6dW5kZXJseWluZ190eXBlPEhkcj46OnR5cGUqPigKKyAgICAgICAgICAgICAgICBvdXRUeXBlcy0+ZGF0YSgpKSwgb3V0TWF4THVtaW5hbmNlLAorICAgICAgICAgICAgb3V0TWF4QXZlcmFnZUx1bWluYW5jZSwgb3V0TWluTHVtaW5hbmNlKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICAqb3V0VHlwZXMgPSBoaWRsX3ZlYzxIZHI+KCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZykKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRBY3RpdmVDb25maWcobURldmljZSwgZGlzcGxheSwgY29uZmlnKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0Q29sb3JNb2RlKERpc3BsYXkgZGlzcGxheSwgQ29sb3JNb2RlIG1vZGUpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0Q29sb3JNb2RlKG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90Pihtb2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlIG1vZGUpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0UG93ZXJNb2RlKG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90Pihtb2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksIElDb21wb3NlckNsaWVudDo6VnN5bmMgZW5hYmxlZCkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRWc3luY0VuYWJsZWQobURldmljZSwgZGlzcGxheSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KGVuYWJsZWQpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0Q29sb3JUcmFuc2Zvcm0oRGlzcGxheSBkaXNwbGF5LCBjb25zdCBmbG9hdCogbWF0cml4LAorICAgICAgICBpbnQzMl90IGhpbnQpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0Q29sb3JUcmFuc2Zvcm0obURldmljZSwgZGlzcGxheSwgbWF0cml4LCBoaW50KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0Q2xpZW50VGFyZ2V0KERpc3BsYXkgZGlzcGxheSwgYnVmZmVyX2hhbmRsZV90IHRhcmdldCwKKyAgICAgICAgaW50MzJfdCBhY3F1aXJlRmVuY2UsIGludDMyX3QgZGF0YXNwYWNlLAorICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgZGFtYWdlKQoreworICAgIGh3Y19yZWdpb24gcmVnaW9uID0geyBkYW1hZ2Uuc2l6ZSgpLCBkYW1hZ2UuZGF0YSgpIH07CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0Q2xpZW50VGFyZ2V0KG1EZXZpY2UsIGRpc3BsYXksIHRhcmdldCwKKyAgICAgICAgICAgIGFjcXVpcmVGZW5jZSwgZGF0YXNwYWNlLCByZWdpb24pOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRPdXRwdXRCdWZmZXIoRGlzcGxheSBkaXNwbGF5LCBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLAorICAgICAgICBpbnQzMl90IHJlbGVhc2VGZW5jZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRPdXRwdXRCdWZmZXIobURldmljZSwgZGlzcGxheSwgYnVmZmVyLAorICAgICAgICAgICAgcmVsZWFzZUZlbmNlKTsKKyAgICAvLyB1bmxpa2UgaW4gc2V0Q2xpZW50VGFyZ2V0LCByZWxlYXNlRmVuY2UgaXMgb3duZWQgYnkgdXMKKyAgICBpZiAoZXJyID09IEhXQzJfRVJST1JfTk9ORSAmJiByZWxlYXNlRmVuY2UgPj0gMCkgeworICAgICAgICBjbG9zZShyZWxlYXNlRmVuY2UpOworICAgIH0KKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjp2YWxpZGF0ZURpc3BsYXkoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dENoYW5nZWRMYXllcnMsCisgICAgICAgIHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb24+KiBvdXRDb21wb3NpdGlvblR5cGVzLAorICAgICAgICB1aW50MzJfdCogb3V0RGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dFJlcXVlc3RlZExheWVycywKKyAgICAgICAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+KiBvdXRSZXF1ZXN0TWFza3MpCit7CisgICAgdWludDMyX3QgdHlwZXNfY291bnQgPSAwOworICAgIHVpbnQzMl90IHJlcXNfY291bnQgPSAwOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnZhbGlkYXRlRGlzcGxheShtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgJnR5cGVzX2NvdW50LCAmcmVxc19jb3VudCk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUgJiYgZXJyICE9IEhXQzJfRVJST1JfSEFTX0NIQU5HRVMpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKworICAgIGVyciA9IG1EaXNwYXRjaC5nZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlcyhtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgJnR5cGVzX2NvdW50LCBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgb3V0Q2hhbmdlZExheWVycy0+cmVzaXplKHR5cGVzX2NvdW50KTsKKyAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5yZXNpemUodHlwZXNfY291bnQpOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlcyhtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgJnR5cGVzX2NvdW50LCBvdXRDaGFuZ2VkTGF5ZXJzLT5kYXRhKCksCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PAorICAgICAgICAgICAgc3RkOjp1bmRlcmx5aW5nX3R5cGU8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj46OnR5cGUqPigKKyAgICAgICAgICAgICAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5kYXRhKCkpKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBvdXRDaGFuZ2VkTGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5jbGVhcigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgaW50MzJfdCBkaXNwbGF5X3JlcXMgPSAwOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXREaXNwbGF5UmVxdWVzdHMobURldmljZSwgZGlzcGxheSwgJmRpc3BsYXlfcmVxcywKKyAgICAgICAgICAgICZyZXFzX2NvdW50LCBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBvdXRDaGFuZ2VkTGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5jbGVhcigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgb3V0UmVxdWVzdGVkTGF5ZXJzLT5yZXNpemUocmVxc19jb3VudCk7CisgICAgb3V0UmVxdWVzdE1hc2tzLT5yZXNpemUocmVxc19jb3VudCk7CisgICAgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlSZXF1ZXN0cyhtRGV2aWNlLCBkaXNwbGF5LCAmZGlzcGxheV9yZXFzLAorICAgICAgICAgICAgJnJlcXNfY291bnQsIG91dFJlcXVlc3RlZExheWVycy0+ZGF0YSgpLAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4ob3V0UmVxdWVzdE1hc2tzLT5kYXRhKCkpKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBvdXRDaGFuZ2VkTGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5jbGVhcigpOworCisgICAgICAgIG91dFJlcXVlc3RlZExheWVycy0+Y2xlYXIoKTsKKyAgICAgICAgb3V0UmVxdWVzdE1hc2tzLT5jbGVhcigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgKm91dERpc3BsYXlSZXF1ZXN0TWFzayA9IGRpc3BsYXlfcmVxczsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjphY2NlcHREaXNwbGF5Q2hhbmdlcyhEaXNwbGF5IGRpc3BsYXkpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guYWNjZXB0RGlzcGxheUNoYW5nZXMobURldmljZSwgZGlzcGxheSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnByZXNlbnREaXNwbGF5KERpc3BsYXkgZGlzcGxheSwgaW50MzJfdCogb3V0UHJlc2VudEZlbmNlLAorICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dExheWVycywgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIG91dFJlbGVhc2VGZW5jZXMpCit7CisgICAgKm91dFByZXNlbnRGZW5jZSA9IC0xOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnByZXNlbnREaXNwbGF5KG1EZXZpY2UsIGRpc3BsYXksIG91dFByZXNlbnRGZW5jZSk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKworICAgIHVpbnQzMl90IGNvdW50ID0gMDsKKyAgICBlcnIgPSBtRGlzcGF0Y2guZ2V0UmVsZWFzZUZlbmNlcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsCisgICAgICAgICAgICBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBBTE9HVygiZmFpbGVkIHRvIGdldCByZWxlYXNlIGZlbmNlcyIpOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorCisgICAgb3V0TGF5ZXJzLT5yZXNpemUoY291bnQpOworICAgIG91dFJlbGVhc2VGZW5jZXMtPnJlc2l6ZShjb3VudCk7CisgICAgZXJyID0gbURpc3BhdGNoLmdldFJlbGVhc2VGZW5jZXMobURldmljZSwgZGlzcGxheSwgJmNvdW50LAorICAgICAgICAgICAgb3V0TGF5ZXJzLT5kYXRhKCksIG91dFJlbGVhc2VGZW5jZXMtPmRhdGEoKSk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBnZXQgcmVsZWFzZSBmZW5jZXMiKTsKKyAgICAgICAgb3V0TGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRSZWxlYXNlRmVuY2VzLT5jbGVhcigpOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyQ3Vyc29yUG9zaXRpb24oRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgaW50MzJfdCB4LCBpbnQzMl90IHkpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0Q3Vyc29yUG9zaXRpb24obURldmljZSwgZGlzcGxheSwgbGF5ZXIsIHgsIHkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllckJ1ZmZlcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLCBpbnQzMl90IGFjcXVpcmVGZW5jZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllckJ1ZmZlcihtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIGJ1ZmZlciwgYWNxdWlyZUZlbmNlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0TGF5ZXJTdXJmYWNlRGFtYWdlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiBkYW1hZ2UpCit7CisgICAgaHdjX3JlZ2lvbiByZWdpb24gPSB7IGRhbWFnZS5zaXplKCksIGRhbWFnZS5kYXRhKCkgfTsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclN1cmZhY2VEYW1hZ2UobURldmljZSwgZGlzcGxheSwgbGF5ZXIsCisgICAgICAgICAgICByZWdpb24pOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllckJsZW5kTW9kZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLCBpbnQzMl90IG1vZGUpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0TGF5ZXJCbGVuZE1vZGUobURldmljZSwgZGlzcGxheSwgbGF5ZXIsIG1vZGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllckNvbG9yKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIElDb21wb3NlckNsaWVudDo6Q29sb3IgY29sb3IpCit7CisgICAgaHdjX2NvbG9yX3QgaHdjX2NvbG9ye2NvbG9yLnIsIGNvbG9yLmcsIGNvbG9yLmIsIGNvbG9yLmF9OworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyQ29sb3IobURldmljZSwgZGlzcGxheSwgbGF5ZXIsIGh3Y19jb2xvcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyQ29tcG9zaXRpb25UeXBlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGludDMyX3QgdHlwZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllckNvbXBvc2l0aW9uVHlwZShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIHR5cGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllckRhdGFzcGFjZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBpbnQzMl90IGRhdGFzcGFjZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllckRhdGFzcGFjZShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIGRhdGFzcGFjZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyRGlzcGxheUZyYW1lKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGNvbnN0IGh3Y19yZWN0X3QmIGZyYW1lKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyRGlzcGxheUZyYW1lKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLAorICAgICAgICAgICAgZnJhbWUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclBsYW5lQWxwaGEoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwgZmxvYXQgYWxwaGEpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0TGF5ZXJQbGFuZUFscGhhKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLAorICAgICAgICAgICAgYWxwaGEpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclNpZGViYW5kU3RyZWFtKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBzdHJlYW0pCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIHN0cmVhbSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyU291cmNlQ3JvcChEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBjb25zdCBod2NfZnJlY3RfdCYgY3JvcCkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclNvdXJjZUNyb3AobURldmljZSwgZGlzcGxheSwgbGF5ZXIsIGNyb3ApOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclRyYW5zZm9ybShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBpbnQzMl90IHRyYW5zZm9ybSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclRyYW5zZm9ybShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIHRyYW5zZm9ybSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyVmlzaWJsZVJlZ2lvbihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgdmlzaWJsZSkKK3sKKyAgICBod2NfcmVnaW9uX3QgcmVnaW9uID0geyB2aXNpYmxlLnNpemUoKSwgdmlzaWJsZS5kYXRhKCkgfTsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclZpc2libGVSZWdpb24obURldmljZSwgZGlzcGxheSwgbGF5ZXIsCisgICAgICAgICAgICByZWdpb24pOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclpPcmRlcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLCB1aW50MzJfdCB6KQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyWk9yZGVyKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLCB6KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0lDb21wb3NlciogSElETF9GRVRDSF9JQ29tcG9zZXIoY29uc3QgY2hhciopCit7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSA9IG51bGxwdHI7CisgICAgaW50IGVyciA9IGh3X2dldF9tb2R1bGUoSFdDX0hBUkRXQVJFX01PRFVMRV9JRCwgJm1vZHVsZSk7CisgICAgaWYgKGVycikgeworICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGdldCBod2NvbXBvc2VyIG1vZHVsZSIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gbmV3IEh3Y0hhbChtb2R1bGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjJfMQorfSAvLyBuYW1lc3BhY2UgY29tcG9zZXIKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvSHdjLmggYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Id2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDUzODlhCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvSHdjLmgKQEAgLTAsMCArMSwyMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0hXQ19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfVjJfMV9IV0NfSAorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyLmg+CisjZGVmaW5lIEhXQzJfSU5DTFVERV9TVFJJTkdJRklDQVRJT04KKyNkZWZpbmUgSFdDMl9VU0VfQ1BQMTEKKyNpbmNsdWRlIDxoYXJkd2FyZS9od2NvbXBvc2VyMi5oPgorI3VuZGVmIEhXQzJfSU5DTFVERV9TVFJJTkdJRklDQVRJT04KKyN1bmRlZiBIV0MyX1VTRV9DUFAxMQorI2luY2x1ZGUgIkNvbXBvc2VyQmFzZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CisgICAgY2xhc3MgSFdDMk9uMUFkYXB0ZXI7Cit9CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIGNvbXBvc2VyIHsKK25hbWVzcGFjZSBWMl8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpUcmFuc2Zvcm07Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6RGF0YXNwYWNlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkNvbG9yTW9kZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpDb2xvclRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpIZHI7CisKK2NsYXNzIENvbXBvc2VyQ2xpZW50OworCitjbGFzcyBId2NIYWwgOiBwdWJsaWMgSUNvbXBvc2VyLCBwdWJsaWMgQ29tcG9zZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBId2NIYWwoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgdmlydHVhbCB+SHdjSGFsKCk7CisKKyAgICBib29sIGhhc0NhcGFiaWxpdHkoQ2FwYWJpbGl0eSBjYXBhYmlsaXR5KSBjb25zdDsKKworICAgIC8vIElDb21wb3NlciBpbnRlcmZhY2UKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FwYWJpbGl0aWVzKGdldENhcGFiaWxpdGllc19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZHVtcERlYnVnSW5mbyhkdW1wRGVidWdJbmZvX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVDbGllbnQoY3JlYXRlQ2xpZW50X2NiIGhpZGxfY2IpIG92ZXJyaWRlOworCisgICAgLy8gQ29tcG9zZXJCYXNlIGludGVyZmFjZQorICAgIHZvaWQgcmVtb3ZlQ2xpZW50KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmFibGVDYWxsYmFjayhib29sIGVuYWJsZSkgb3ZlcnJpZGU7CisgICAgdWludDMyX3QgZ2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpIG92ZXJyaWRlOworICAgIEVycm9yIGNyZWF0ZVZpcnR1YWxEaXNwbGF5KHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgIFBpeGVsRm9ybWF0KiBmb3JtYXQsIERpc3BsYXkqIG91dERpc3BsYXkpIG92ZXJyaWRlOworICAgIEVycm9yIGRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpIG92ZXJyaWRlOworCisgICAgRXJyb3IgY3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciogb3V0TGF5ZXIpIG92ZXJyaWRlOworICAgIEVycm9yIGRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKSBvdmVycmlkZTsKKworICAgIEVycm9yIGdldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXksIENvbmZpZyogb3V0Q29uZmlnKSBvdmVycmlkZTsKKyAgICBFcnJvciBnZXRDbGllbnRUYXJnZXRTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsIERhdGFzcGFjZSBkYXRhc3BhY2UpIG92ZXJyaWRlOworICAgIEVycm9yIGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgaGlkbF92ZWM8Q29sb3JNb2RlPiogb3V0TW9kZXMpIG92ZXJyaWRlOworICAgIEVycm9yIGdldERpc3BsYXlBdHRyaWJ1dGUoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnLAorICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGUgYXR0cmlidXRlLCBpbnQzMl90KiBvdXRWYWx1ZSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgaGlkbF92ZWM8Q29uZmlnPiogb3V0Q29uZmlncykgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3N0cmluZyogb3V0TmFtZSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RGlzcGxheVR5cGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSogb3V0VHlwZSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RG96ZVN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LCBib29sKiBvdXRTdXBwb3J0KSBvdmVycmlkZTsKKyAgICBFcnJvciBnZXRIZHJDYXBhYmlsaXRpZXMoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3ZlYzxIZHI+KiBvdXRUeXBlcywKKyAgICAgICAgICAgIGZsb2F0KiBvdXRNYXhMdW1pbmFuY2UsIGZsb2F0KiBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgICAgICAgICAgZmxvYXQqIG91dE1pbkx1bWluYW5jZSkgb3ZlcnJpZGU7CisKKyAgICBFcnJvciBzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRDb2xvck1vZGUoRGlzcGxheSBkaXNwbGF5LCBDb2xvck1vZGUgbW9kZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0UG93ZXJNb2RlKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlIG1vZGUpIG92ZXJyaWRlOworICAgIEVycm9yIHNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OlZzeW5jIGVuYWJsZWQpIG92ZXJyaWRlOworCisgICAgRXJyb3Igc2V0Q29sb3JUcmFuc2Zvcm0oRGlzcGxheSBkaXNwbGF5LCBjb25zdCBmbG9hdCogbWF0cml4LAorICAgICAgICAgICAgaW50MzJfdCBoaW50KSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRDbGllbnRUYXJnZXQoRGlzcGxheSBkaXNwbGF5LCBidWZmZXJfaGFuZGxlX3QgdGFyZ2V0LAorICAgICAgICAgICAgaW50MzJfdCBhY3F1aXJlRmVuY2UsIGludDMyX3QgZGF0YXNwYWNlLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4mIGRhbWFnZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0T3V0cHV0QnVmZmVyKERpc3BsYXkgZGlzcGxheSwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwKKyAgICAgICAgICAgIGludDMyX3QgcmVsZWFzZUZlbmNlKSBvdmVycmlkZTsKKyAgICBFcnJvciB2YWxpZGF0ZURpc3BsYXkoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+KiBvdXRDaGFuZ2VkTGF5ZXJzLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj4qIG91dENvbXBvc2l0aW9uVHlwZXMsCisgICAgICAgICAgICB1aW50MzJfdCogb3V0RGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+KiBvdXRSZXF1ZXN0ZWRMYXllcnMsCisgICAgICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4qIG91dFJlcXVlc3RNYXNrcykgb3ZlcnJpZGU7CisgICAgRXJyb3IgYWNjZXB0RGlzcGxheUNoYW5nZXMoRGlzcGxheSBkaXNwbGF5KSBvdmVycmlkZTsKKyAgICBFcnJvciBwcmVzZW50RGlzcGxheShEaXNwbGF5IGRpc3BsYXksIGludDMyX3QqIG91dFByZXNlbnRGZW5jZSwKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPExheWVyPiogb3V0TGF5ZXJzLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIG91dFJlbGVhc2VGZW5jZXMpIG92ZXJyaWRlOworCisgICAgRXJyb3Igc2V0TGF5ZXJDdXJzb3JQb3NpdGlvbihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCB4LCBpbnQzMl90IHkpIG92ZXJyaWRlOworICAgIEVycm9yIHNldExheWVyQnVmZmVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLCBpbnQzMl90IGFjcXVpcmVGZW5jZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJTdXJmYWNlRGFtYWdlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgZGFtYWdlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllckJsZW5kTW9kZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCBtb2RlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllckNvbG9yKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkNvbG9yIGNvbG9yKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllckNvbXBvc2l0aW9uVHlwZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCB0eXBlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllckRhdGFzcGFjZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCBkYXRhc3BhY2UpIG92ZXJyaWRlOworICAgIEVycm9yIHNldExheWVyRGlzcGxheUZyYW1lKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBjb25zdCBod2NfcmVjdF90JiBmcmFtZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJQbGFuZUFscGhhKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBmbG9hdCBhbHBoYSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90IHN0cmVhbSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJTb3VyY2VDcm9wKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBjb25zdCBod2NfZnJlY3RfdCYgY3JvcCkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJUcmFuc2Zvcm0oRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGludDMyX3QgdHJhbnNmb3JtKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllclZpc2libGVSZWdpb24oRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiB2aXNpYmxlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllclpPcmRlcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLCB1aW50MzJfdCB6KSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGluaXRDYXBhYmlsaXRpZXMoKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBpbml0RGlzcGF0Y2goaHdjMl9mdW5jdGlvbl9kZXNjcmlwdG9yX3QgZGVzYywgVCogb3V0UGZuKTsKKyAgICB2b2lkIGluaXREaXNwYXRjaCgpOworCisgICAgc3A8Q29tcG9zZXJDbGllbnQ+IGdldENsaWVudCgpOworCisgICAgc3RhdGljIHZvaWQgaG90cGx1Z0hvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5LCBpbnQzMl90IGNvbm5lY3RlZCk7CisgICAgc3RhdGljIHZvaWQgcmVmcmVzaEhvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5KTsKKyAgICBzdGF0aWMgdm9pZCB2c3luY0hvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5LCBpbnQ2NF90IHRpbWVzdGFtcCk7CisKKyAgICBod2MyX2RldmljZV90KiBtRGV2aWNlOworCisgICAgc3RkOjp1bm9yZGVyZWRfc2V0PENhcGFiaWxpdHk+IG1DYXBhYmlsaXRpZXM7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBIV0MyX1BGTl9BQ0NFUFRfRElTUExBWV9DSEFOR0VTIGFjY2VwdERpc3BsYXlDaGFuZ2VzOworICAgICAgICBIV0MyX1BGTl9DUkVBVEVfTEFZRVIgY3JlYXRlTGF5ZXI7CisgICAgICAgIEhXQzJfUEZOX0NSRUFURV9WSVJUVUFMX0RJU1BMQVkgY3JlYXRlVmlydHVhbERpc3BsYXk7CisgICAgICAgIEhXQzJfUEZOX0RFU1RST1lfTEFZRVIgZGVzdHJveUxheWVyOworICAgICAgICBIV0MyX1BGTl9ERVNUUk9ZX1ZJUlRVQUxfRElTUExBWSBkZXN0cm95VmlydHVhbERpc3BsYXk7CisgICAgICAgIEhXQzJfUEZOX0RVTVAgZHVtcDsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0FDVElWRV9DT05GSUcgZ2V0QWN0aXZlQ29uZmlnOworICAgICAgICBIV0MyX1BGTl9HRVRfQ0hBTkdFRF9DT01QT1NJVElPTl9UWVBFUyBnZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlczsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0NMSUVOVF9UQVJHRVRfU1VQUE9SVCBnZXRDbGllbnRUYXJnZXRTdXBwb3J0OworICAgICAgICBIV0MyX1BGTl9HRVRfQ09MT1JfTU9ERVMgZ2V0Q29sb3JNb2RlczsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0RJU1BMQVlfQVRUUklCVVRFIGdldERpc3BsYXlBdHRyaWJ1dGU7CisgICAgICAgIEhXQzJfUEZOX0dFVF9ESVNQTEFZX0NPTkZJR1MgZ2V0RGlzcGxheUNvbmZpZ3M7CisgICAgICAgIEhXQzJfUEZOX0dFVF9ESVNQTEFZX05BTUUgZ2V0RGlzcGxheU5hbWU7CisgICAgICAgIEhXQzJfUEZOX0dFVF9ESVNQTEFZX1JFUVVFU1RTIGdldERpc3BsYXlSZXF1ZXN0czsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0RJU1BMQVlfVFlQRSBnZXREaXNwbGF5VHlwZTsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0RPWkVfU1VQUE9SVCBnZXREb3plU3VwcG9ydDsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0hEUl9DQVBBQklMSVRJRVMgZ2V0SGRyQ2FwYWJpbGl0aWVzOworICAgICAgICBIV0MyX1BGTl9HRVRfTUFYX1ZJUlRVQUxfRElTUExBWV9DT1VOVCBnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50OworICAgICAgICBIV0MyX1BGTl9HRVRfUkVMRUFTRV9GRU5DRVMgZ2V0UmVsZWFzZUZlbmNlczsKKyAgICAgICAgSFdDMl9QRk5fUFJFU0VOVF9ESVNQTEFZIHByZXNlbnREaXNwbGF5OworICAgICAgICBIV0MyX1BGTl9SRUdJU1RFUl9DQUxMQkFDSyByZWdpc3RlckNhbGxiYWNrOworICAgICAgICBIV0MyX1BGTl9TRVRfQUNUSVZFX0NPTkZJRyBzZXRBY3RpdmVDb25maWc7CisgICAgICAgIEhXQzJfUEZOX1NFVF9DTElFTlRfVEFSR0VUIHNldENsaWVudFRhcmdldDsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0NPTE9SX01PREUgc2V0Q29sb3JNb2RlOworICAgICAgICBIV0MyX1BGTl9TRVRfQ09MT1JfVFJBTlNGT1JNIHNldENvbG9yVHJhbnNmb3JtOworICAgICAgICBIV0MyX1BGTl9TRVRfQ1VSU09SX1BPU0lUSU9OIHNldEN1cnNvclBvc2l0aW9uOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfQkxFTkRfTU9ERSBzZXRMYXllckJsZW5kTW9kZTsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX0JVRkZFUiBzZXRMYXllckJ1ZmZlcjsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX0NPTE9SIHNldExheWVyQ29sb3I7CisgICAgICAgIEhXQzJfUEZOX1NFVF9MQVlFUl9DT01QT1NJVElPTl9UWVBFIHNldExheWVyQ29tcG9zaXRpb25UeXBlOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfREFUQVNQQUNFIHNldExheWVyRGF0YXNwYWNlOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfRElTUExBWV9GUkFNRSBzZXRMYXllckRpc3BsYXlGcmFtZTsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX1BMQU5FX0FMUEhBIHNldExheWVyUGxhbmVBbHBoYTsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX1NJREVCQU5EX1NUUkVBTSBzZXRMYXllclNpZGViYW5kU3RyZWFtOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfU09VUkNFX0NST1Agc2V0TGF5ZXJTb3VyY2VDcm9wOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0Ugc2V0TGF5ZXJTdXJmYWNlRGFtYWdlOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfVFJBTlNGT1JNIHNldExheWVyVHJhbnNmb3JtOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfVklTSUJMRV9SRUdJT04gc2V0TGF5ZXJWaXNpYmxlUmVnaW9uOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfWl9PUkRFUiBzZXRMYXllclpPcmRlcjsKKyAgICAgICAgSFdDMl9QRk5fU0VUX09VVFBVVF9CVUZGRVIgc2V0T3V0cHV0QnVmZmVyOworICAgICAgICBIV0MyX1BGTl9TRVRfUE9XRVJfTU9ERSBzZXRQb3dlck1vZGU7CisgICAgICAgIEhXQzJfUEZOX1NFVF9WU1lOQ19FTkFCTEVEIHNldFZzeW5jRW5hYmxlZDsKKyAgICAgICAgSFdDMl9QRk5fVkFMSURBVEVfRElTUExBWSB2YWxpZGF0ZURpc3BsYXk7CisgICAgfSBtRGlzcGF0Y2g7CisKKyAgICBzdGQ6Om11dGV4IG1DbGllbnRNdXRleDsKKyAgICB3cDxDb21wb3NlckNsaWVudD4gbUNsaWVudDsKKworICAgIC8vIElmIHRoZSBIV0MgaW1wbGVtZW50YXRpb24gdmVyc2lvbiBpcyA8IDIuMCwgdXNlIGFuIGFkYXB0ZXIgdG8gaW50ZXJmYWNlCisgICAgLy8gYmV0d2VlbiBIV0MgMi4wIDwtPiBIV0MgMS5YLgorICAgIHN0ZDo6dW5pcXVlX3B0cjxIV0MyT24xQWRhcHRlcj4gbUFkYXB0ZXI7Cit9OworCitleHRlcm4gIkMiIElDb21wb3NlciogSElETF9GRVRDSF9JQ29tcG9zZXIoY29uc3QgY2hhciogbmFtZSk7CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8xCit9IC8vIG5hbWVzcGFjZSBjb21wb3NlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0hXQ19ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9JQ29tcG9zZXJDb21tYW5kQnVmZmVyLmggYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9JQ29tcG9zZXJDb21tYW5kQnVmZmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI3OGVmOAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0lDb21wb3NlckNvbW1hbmRCdWZmZXIuaApAQCAtMCwwICsxLDg0OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX0NPTU1BTkRfQlVGRkVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9DT01NQU5EX0JVRkZFUl9ICisKKyNpZm5kZWYgTE9HX1RBRworI3dhcm4gIklDb21wb3NlckNvbW1hbmRCdWZmZXIuaCBpbmNsdWRlZCB3aXRob3V0IExPR19UQUciCisjZW5kaWYKKworI3VuZGVmIExPR19OREVCVUcKKyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHN5bmMvc3luYy5oPgorI2luY2x1ZGUgPGZtcS9NZXNzYWdlUXVldWUuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgY29tcG9zZXIgeworbmFtZXNwYWNlIFYyXzEgeworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6Q29sb3JUcmFuc2Zvcm07Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6RGF0YXNwYWNlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpNZXNzYWdlUXVldWU7CisKK3VzaW5nIENvbW1hbmRRdWV1ZVR5cGUgPSBNZXNzYWdlUXVldWU8dWludDMyX3QsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+OworCisvLyBUaGlzIGNsYXNzIGhlbHBzIGJ1aWxkIGEgY29tbWFuZCBxdWV1ZS4gIE5vdGUgdGhhdCBhbGwgc2l6ZXMvbGVuZ3RocyBhcmUgaW4KKy8vIHVuaXRzIG9mIHVpbnQzMl90J3MuCitjbGFzcyBDb21tYW5kV3JpdGVyQmFzZSB7CitwdWJsaWM6CisgICAgQ29tbWFuZFdyaXRlckJhc2UodWludDMyX3QgaW5pdGlhbE1heFNpemUpCisgICAgICAgIDogbURhdGFNYXhTaXplKGluaXRpYWxNYXhTaXplKQorICAgIHsKKyAgICAgICAgbURhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPHVpbnQzMl90W10+KG1EYXRhTWF4U2l6ZSk7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorCisgICAgdmlydHVhbCB+Q29tbWFuZFdyaXRlckJhc2UoKQorICAgIHsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1EYXRhV3JpdHRlbiA9IDA7CisgICAgICAgIG1Db21tYW5kRW5kID0gMDsKKworICAgICAgICAvLyBoYW5kbGVzIGluIG1EYXRhSGFuZGxlcyBhcmUgb3duZWQgYnkgdGhlIGNhbGxlcgorICAgICAgICBtRGF0YUhhbmRsZXMuY2xlYXIoKTsKKworICAgICAgICAvLyBoYW5kbGVzIGluIG1UZW1wb3JhcnlIYW5kbGVzIGFyZSBvd25lZCBieSB0aGUgd3JpdGVyCisgICAgICAgIGZvciAoYXV0byBoYW5kbGUgOiBtVGVtcG9yYXJ5SGFuZGxlcykgeworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShoYW5kbGUpOworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoaGFuZGxlKTsKKyAgICAgICAgfQorICAgICAgICBtVGVtcG9yYXJ5SGFuZGxlcy5jbGVhcigpOworICAgIH0KKworICAgIElDb21wb3NlckNsaWVudDo6Q29tbWFuZCBnZXRDb21tYW5kKHVpbnQzMl90IG9mZnNldCkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IHZhbCA9IChvZmZzZXQgPCBtRGF0YVdyaXR0ZW4pID8gbURhdGFbb2Zmc2V0XSA6IDA7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ+KHZhbCAmCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6T1BDT0RFX01BU0spKTsKKyAgICB9CisKKyAgICBib29sIHdyaXRlUXVldWUoYm9vbCogb3V0UXVldWVDaGFuZ2VkLCB1aW50MzJfdCogb3V0Q29tbWFuZExlbmd0aCwKKyAgICAgICAgICAgIGhpZGxfdmVjPGhpZGxfaGFuZGxlPiogb3V0Q29tbWFuZEhhbmRsZXMpCisgICAgeworICAgICAgICAvLyB3cml0ZSBkYXRhIHRvIHF1ZXVlLCBvcHRpb25hbGx5IHJlc2l6aW5nIGl0CisgICAgICAgIGlmIChtUXVldWUgJiYgKG1EYXRhTWF4U2l6ZSA8PSBtUXVldWUtPmdldFF1YW50dW1Db3VudCgpKSkgeworICAgICAgICAgICAgaWYgKCFtUXVldWUtPndyaXRlKG1EYXRhLmdldCgpLCBtRGF0YVdyaXR0ZW4pKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byB3cml0ZSBjb21tYW5kcyB0byBtZXNzYWdlIHF1ZXVlIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAqb3V0UXVldWVDaGFuZ2VkID0gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhdXRvIG5ld1F1ZXVlID0gc3RkOjptYWtlX3VuaXF1ZTxDb21tYW5kUXVldWVUeXBlPihtRGF0YU1heFNpemUpOworICAgICAgICAgICAgaWYgKCFuZXdRdWV1ZS0+aXNWYWxpZCgpIHx8CisgICAgICAgICAgICAgICAgICAgICFuZXdRdWV1ZS0+d3JpdGUobURhdGEuZ2V0KCksIG1EYXRhV3JpdHRlbikpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIHByZXBhcmUgYSBuZXcgbWVzc2FnZSBxdWV1ZSAiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1RdWV1ZSA9IHN0ZDo6bW92ZShuZXdRdWV1ZSk7CisgICAgICAgICAgICAqb3V0UXVldWVDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgICpvdXRDb21tYW5kTGVuZ3RoID0gbURhdGFXcml0dGVuOworICAgICAgICBvdXRDb21tYW5kSGFuZGxlcy0+c2V0VG9FeHRlcm5hbCgKKyAgICAgICAgICAgICAgICBjb25zdF9jYXN0PGhpZGxfaGFuZGxlKj4obURhdGFIYW5kbGVzLmRhdGEoKSksCisgICAgICAgICAgICAgICAgbURhdGFIYW5kbGVzLnNpemUoKSk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgY29uc3QgTVFEZXNjcmlwdG9yU3luYzx1aW50MzJfdD4qIGdldE1RRGVzY3JpcHRvcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gKG1RdWV1ZSkgPyBtUXVldWUtPmdldERlc2MoKSA6IG51bGxwdHI7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2VsZWN0RGlzcGxheUxlbmd0aCA9IDI7CisgICAgdm9pZCBzZWxlY3REaXNwbGF5KERpc3BsYXkgZGlzcGxheSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFTEVDVF9ESVNQTEFZLAorICAgICAgICAgICAgICAgIGtTZWxlY3REaXNwbGF5TGVuZ3RoKTsKKyAgICAgICAgd3JpdGU2NChkaXNwbGF5KTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NlbGVjdExheWVyTGVuZ3RoID0gMjsKKyAgICB2b2lkIHNlbGVjdExheWVyKExheWVyIGxheWVyKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VMRUNUX0xBWUVSLAorICAgICAgICAgICAgICAgIGtTZWxlY3RMYXllckxlbmd0aCk7CisgICAgICAgIHdyaXRlNjQobGF5ZXIpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0RXJyb3JMZW5ndGggPSAyOworICAgIHZvaWQgc2V0RXJyb3IodWludDMyX3QgbG9jYXRpb24sIEVycm9yIGVycm9yKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0VSUk9SLCBrU2V0RXJyb3JMZW5ndGgpOworICAgICAgICB3cml0ZShsb2NhdGlvbik7CisgICAgICAgIHdyaXRlU2lnbmVkKHN0YXRpY19jYXN0PGludDMyX3Q+KGVycm9yKSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldENoYW5nZWRDb21wb3NpdGlvblR5cGVzKGNvbnN0IHN0ZDo6dmVjdG9yPExheWVyPiYgbGF5ZXJzLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj4mIHR5cGVzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsTGF5ZXJzID0gc3RkOjptaW4obGF5ZXJzLnNpemUoKSwgdHlwZXMuc2l6ZSgpKTsKKyAgICAgICAgc2l6ZV90IGN1cnJlbnRMYXllciA9IDA7CisKKyAgICAgICAgd2hpbGUgKGN1cnJlbnRMYXllciA8IHRvdGFsTGF5ZXJzKSB7CisgICAgICAgICAgICBzaXplX3QgY291bnQgPSBzdGQ6Om1pbih0b3RhbExheWVycyAtIGN1cnJlbnRMYXllciwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihrTWF4TGVuZ3RoKSAvIDMpOworCisgICAgICAgICAgICBiZWdpbkNvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0NIQU5HRURfQ09NUE9TSVRJT05fVFlQRVMsCisgICAgICAgICAgICAgICAgICAgIGNvdW50ICogMyk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZTY0KGxheWVyc1tjdXJyZW50TGF5ZXIgKyBpXSk7CisgICAgICAgICAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4odHlwZXNbY3VycmVudExheWVyICsgaV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVuZENvbW1hbmQoKTsKKworICAgICAgICAgICAgY3VycmVudExheWVyICs9IGNvdW50OworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBzZXREaXNwbGF5UmVxdWVzdHModWludDMyX3QgZGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8TGF5ZXI+JiBsYXllcnMsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4mIGxheWVyUmVxdWVzdE1hc2tzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsTGF5ZXJzID0gc3RkOjptaW4obGF5ZXJzLnNpemUoKSwKKyAgICAgICAgICAgICAgICBsYXllclJlcXVlc3RNYXNrcy5zaXplKCkpOworICAgICAgICBzaXplX3QgY3VycmVudExheWVyID0gMDsKKworICAgICAgICB3aGlsZSAoY3VycmVudExheWVyIDwgdG90YWxMYXllcnMpIHsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9IHN0ZDo6bWluKHRvdGFsTGF5ZXJzIC0gY3VycmVudExheWVyLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGtNYXhMZW5ndGggLSAxKSAvIDMpOworCisgICAgICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfRElTUExBWV9SRVFVRVNUUywKKyAgICAgICAgICAgICAgICAgICAgMSArIGNvdW50ICogMyk7CisgICAgICAgICAgICB3cml0ZShkaXNwbGF5UmVxdWVzdE1hc2spOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGU2NChsYXllcnNbY3VycmVudExheWVyICsgaV0pOworICAgICAgICAgICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PGludDMyX3Q+KGxheWVyUmVxdWVzdE1hc2tzW2N1cnJlbnRMYXllciArIGldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbmRDb21tYW5kKCk7CisKKyAgICAgICAgICAgIGN1cnJlbnRMYXllciArPSBjb3VudDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldFByZXNlbnRGZW5jZUxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRQcmVzZW50RmVuY2UoaW50IHByZXNlbnRGZW5jZSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9QUkVTRU5UX0ZFTkNFLAorICAgICAgICAgICAgICAgIGtTZXRQcmVzZW50RmVuY2VMZW5ndGgpOworICAgICAgICB3cml0ZUZlbmNlKHByZXNlbnRGZW5jZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldFJlbGVhc2VGZW5jZXMoY29uc3Qgc3RkOjp2ZWN0b3I8TGF5ZXI+JiBsYXllcnMsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiByZWxlYXNlRmVuY2VzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsTGF5ZXJzID0gc3RkOjptaW4obGF5ZXJzLnNpemUoKSwgcmVsZWFzZUZlbmNlcy5zaXplKCkpOworICAgICAgICBzaXplX3QgY3VycmVudExheWVyID0gMDsKKworICAgICAgICB3aGlsZSAoY3VycmVudExheWVyIDwgdG90YWxMYXllcnMpIHsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9IHN0ZDo6bWluKHRvdGFsTGF5ZXJzIC0gY3VycmVudExheWVyLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGtNYXhMZW5ndGgpIC8gMyk7CisKKyAgICAgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9SRUxFQVNFX0ZFTkNFUywKKyAgICAgICAgICAgICAgICAgICAgY291bnQgKiAzKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlNjQobGF5ZXJzW2N1cnJlbnRMYXllciArIGldKTsKKyAgICAgICAgICAgICAgICB3cml0ZUZlbmNlKHJlbGVhc2VGZW5jZXNbY3VycmVudExheWVyICsgaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZW5kQ29tbWFuZCgpOworCisgICAgICAgICAgICBjdXJyZW50TGF5ZXIgKz0gY291bnQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRDb2xvclRyYW5zZm9ybUxlbmd0aCA9IDE3OworICAgIHZvaWQgc2V0Q29sb3JUcmFuc2Zvcm0oY29uc3QgZmxvYXQqIG1hdHJpeCwgQ29sb3JUcmFuc2Zvcm0gaGludCkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DT0xPUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAgICAga1NldENvbG9yVHJhbnNmb3JtTGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxNjsgaSsrKSB7CisgICAgICAgICAgICB3cml0ZUZsb2F0KG1hdHJpeFtpXSk7CisgICAgICAgIH0KKyAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaGludCkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgdm9pZCBzZXRDbGllbnRUYXJnZXQodWludDMyX3Qgc2xvdCwgY29uc3QgbmF0aXZlX2hhbmRsZV90KiB0YXJnZXQsCisgICAgICAgICAgICBpbnQgYWNxdWlyZUZlbmNlLCBEYXRhc3BhY2UgZGF0YXNwYWNlLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpSZWN0PiYgZGFtYWdlKQorICAgIHsKKyAgICAgICAgYm9vbCBkb1dyaXRlID0gKGRhbWFnZS5zaXplKCkgPD0gKGtNYXhMZW5ndGggLSA0KSAvIDQpOworICAgICAgICBzaXplX3QgbGVuZ3RoID0gNCArICgoZG9Xcml0ZSkgPyBkYW1hZ2Uuc2l6ZSgpICogNCA6IDApOworCisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DTElFTlRfVEFSR0VULCBsZW5ndGgpOworICAgICAgICB3cml0ZShzbG90KTsKKyAgICAgICAgd3JpdGVIYW5kbGUodGFyZ2V0LCB0cnVlKTsKKyAgICAgICAgd3JpdGVGZW5jZShhY3F1aXJlRmVuY2UpOworICAgICAgICB3cml0ZVNpZ25lZChzdGF0aWNfY2FzdDxpbnQzMl90PihkYXRhc3BhY2UpKTsKKyAgICAgICAgLy8gV2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVjdGFuZ2xlcyBpbiB0aGUgZGFtYWdlIHJlZ2lvbiBhbmQgZG9Xcml0ZQorICAgICAgICAvLyBpcyBmYWxzZSwgd2Ugd3JpdGUgbm8gcmVjdGFuZ2xlIGF0IGFsbCB3aGljaCBtZWFucyB0aGUgZW50aXJlCisgICAgICAgIC8vIGNsaWVudCB0YXJnZXQgaXMgZGFtYWdlZC4KKyAgICAgICAgaWYgKGRvV3JpdGUpIHsKKyAgICAgICAgICAgIHdyaXRlUmVnaW9uKGRhbWFnZSk7CisgICAgICAgIH0KKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldE91dHB1dEJ1ZmZlckxlbmd0aCA9IDM7CisgICAgdm9pZCBzZXRPdXRwdXRCdWZmZXIodWludDMyX3Qgc2xvdCwgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXIsCisgICAgICAgICAgICBpbnQgcmVsZWFzZUZlbmNlKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX09VVFBVVF9CVUZGRVIsCisgICAgICAgICAgICAgICAga1NldE91dHB1dEJ1ZmZlckxlbmd0aCk7CisgICAgICAgIHdyaXRlKHNsb3QpOworICAgICAgICB3cml0ZUhhbmRsZShidWZmZXIsIHRydWUpOworICAgICAgICB3cml0ZUZlbmNlKHJlbGVhc2VGZW5jZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtWYWxpZGF0ZURpc3BsYXlMZW5ndGggPSAwOworICAgIHZvaWQgdmFsaWRhdGVEaXNwbGF5KCkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlZBTElEQVRFX0RJU1BMQVksCisgICAgICAgICAgICAgICAga1ZhbGlkYXRlRGlzcGxheUxlbmd0aCk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtBY2NlcHREaXNwbGF5Q2hhbmdlc0xlbmd0aCA9IDA7CisgICAgdm9pZCBhY2NlcHREaXNwbGF5Q2hhbmdlcygpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpBQ0NFUFRfRElTUExBWV9DSEFOR0VTLAorICAgICAgICAgICAgICAgIGtBY2NlcHREaXNwbGF5Q2hhbmdlc0xlbmd0aCk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtQcmVzZW50RGlzcGxheUxlbmd0aCA9IDA7CisgICAgdm9pZCBwcmVzZW50RGlzcGxheSgpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpQUkVTRU5UX0RJU1BMQVksCisgICAgICAgICAgICAgICAga1ByZXNlbnREaXNwbGF5TGVuZ3RoKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyQ3Vyc29yUG9zaXRpb25MZW5ndGggPSAyOworICAgIHZvaWQgc2V0TGF5ZXJDdXJzb3JQb3NpdGlvbihpbnQzMl90IHgsIGludDMyX3QgeSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9DVVJTT1JfUE9TSVRJT04sCisgICAgICAgICAgICAgICAga1NldExheWVyQ3Vyc29yUG9zaXRpb25MZW5ndGgpOworICAgICAgICB3cml0ZVNpZ25lZCh4KTsKKyAgICAgICAgd3JpdGVTaWduZWQoeSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllckJ1ZmZlckxlbmd0aCA9IDM7CisgICAgdm9pZCBzZXRMYXllckJ1ZmZlcih1aW50MzJfdCBzbG90LCBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlciwKKyAgICAgICAgICAgIGludCBhY3F1aXJlRmVuY2UpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQlVGRkVSLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckJ1ZmZlckxlbmd0aCk7CisgICAgICAgIHdyaXRlKHNsb3QpOworICAgICAgICB3cml0ZUhhbmRsZShidWZmZXIsIHRydWUpOworICAgICAgICB3cml0ZUZlbmNlKGFjcXVpcmVGZW5jZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldExheWVyU3VyZmFjZURhbWFnZSgKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4mIGRhbWFnZSkKKyAgICB7CisgICAgICAgIGJvb2wgZG9Xcml0ZSA9IChkYW1hZ2Uuc2l6ZSgpIDw9IGtNYXhMZW5ndGggLyA0KTsKKyAgICAgICAgc2l6ZV90IGxlbmd0aCA9IChkb1dyaXRlKSA/IGRhbWFnZS5zaXplKCkgKiA0IDogMDsKKworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UsCisgICAgICAgICAgICAgICAgbGVuZ3RoKTsKKyAgICAgICAgLy8gV2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVjdGFuZ2xlcyBpbiB0aGUgZGFtYWdlIHJlZ2lvbiBhbmQgZG9Xcml0ZQorICAgICAgICAvLyBpcyBmYWxzZSwgd2Ugd3JpdGUgbm8gcmVjdGFuZ2xlIGF0IGFsbCB3aGljaCBtZWFucyB0aGUgZW50aXJlCisgICAgICAgIC8vIGxheWVyIGlzIGRhbWFnZWQuCisgICAgICAgIGlmIChkb1dyaXRlKSB7CisgICAgICAgICAgICB3cml0ZVJlZ2lvbihkYW1hZ2UpOworICAgICAgICB9CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllckJsZW5kTW9kZUxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRMYXllckJsZW5kTW9kZShJQ29tcG9zZXJDbGllbnQ6OkJsZW5kTW9kZSBtb2RlKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0JMRU5EX01PREUsCisgICAgICAgICAgICAgICAga1NldExheWVyQmxlbmRNb2RlTGVuZ3RoKTsKKyAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4obW9kZSkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJDb2xvckxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRMYXllckNvbG9yKElDb21wb3NlckNsaWVudDo6Q29sb3IgY29sb3IpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQ09MT1IsCisgICAgICAgICAgICAgICAga1NldExheWVyQ29sb3JMZW5ndGgpOworICAgICAgICB3cml0ZUNvbG9yKGNvbG9yKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyQ29tcG9zaXRpb25UeXBlTGVuZ3RoID0gMTsKKyAgICB2b2lkIHNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb24gdHlwZSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9DT01QT1NJVElPTl9UWVBFLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckNvbXBvc2l0aW9uVHlwZUxlbmd0aCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHN0YXRpY19jYXN0PGludDMyX3Q+KHR5cGUpKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyRGF0YXNwYWNlTGVuZ3RoID0gMTsKKyAgICB2b2lkIHNldExheWVyRGF0YXNwYWNlKERhdGFzcGFjZSBkYXRhc3BhY2UpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfREFUQVNQQUNFLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckRhdGFzcGFjZUxlbmd0aCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHN0YXRpY19jYXN0PGludDMyX3Q+KGRhdGFzcGFjZSkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJEaXNwbGF5RnJhbWVMZW5ndGggPSA0OworICAgIHZvaWQgc2V0TGF5ZXJEaXNwbGF5RnJhbWUoY29uc3QgSUNvbXBvc2VyQ2xpZW50OjpSZWN0JiBmcmFtZSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9ESVNQTEFZX0ZSQU1FLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckRpc3BsYXlGcmFtZUxlbmd0aCk7CisgICAgICAgIHdyaXRlUmVjdChmcmFtZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllclBsYW5lQWxwaGFMZW5ndGggPSAxOworICAgIHZvaWQgc2V0TGF5ZXJQbGFuZUFscGhhKGZsb2F0IGFscGhhKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1BMQU5FX0FMUEhBLAorICAgICAgICAgICAgICAgIGtTZXRMYXllclBsYW5lQWxwaGFMZW5ndGgpOworICAgICAgICB3cml0ZUZsb2F0KGFscGhhKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyU2lkZWJhbmRTdHJlYW1MZW5ndGggPSAxOworICAgIHZvaWQgc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIHN0cmVhbSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9TSURFQkFORF9TVFJFQU0sCisgICAgICAgICAgICAgICAga1NldExheWVyU2lkZWJhbmRTdHJlYW1MZW5ndGgpOworICAgICAgICB3cml0ZUhhbmRsZShzdHJlYW0pOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJTb3VyY2VDcm9wTGVuZ3RoID0gNDsKKyAgICB2b2lkIHNldExheWVyU291cmNlQ3JvcChjb25zdCBJQ29tcG9zZXJDbGllbnQ6OkZSZWN0JiBjcm9wKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1NPVVJDRV9DUk9QLAorICAgICAgICAgICAgICAgIGtTZXRMYXllclNvdXJjZUNyb3BMZW5ndGgpOworICAgICAgICB3cml0ZUZSZWN0KGNyb3ApOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJUcmFuc2Zvcm1MZW5ndGggPSAxOworICAgIHZvaWQgc2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtIHRyYW5zZm9ybSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAgICAga1NldExheWVyVHJhbnNmb3JtTGVuZ3RoKTsKKyAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4odHJhbnNmb3JtKSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldExheWVyVmlzaWJsZVJlZ2lvbigKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4mIHZpc2libGUpCisgICAgeworICAgICAgICBib29sIGRvV3JpdGUgPSAodmlzaWJsZS5zaXplKCkgPD0ga01heExlbmd0aCAvIDQpOworICAgICAgICBzaXplX3QgbGVuZ3RoID0gKGRvV3JpdGUpID8gdmlzaWJsZS5zaXplKCkgKiA0IDogMDsKKworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfVklTSUJMRV9SRUdJT04sCisgICAgICAgICAgICAgICAgbGVuZ3RoKTsKKyAgICAgICAgLy8gV2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVjdGFuZ2xlcyBpbiB0aGUgdmlzaWJsZSByZWdpb24gYW5kCisgICAgICAgIC8vIGRvV3JpdGUgaXMgZmFsc2UsIHdlIHdyaXRlIG5vIHJlY3RhbmdsZSBhdCBhbGwgd2hpY2ggbWVhbnMgdGhlCisgICAgICAgIC8vIGVudGlyZSBsYXllciBpcyB2aXNpYmxlLgorICAgICAgICBpZiAoZG9Xcml0ZSkgeworICAgICAgICAgICAgd3JpdGVSZWdpb24odmlzaWJsZSk7CisgICAgICAgIH0KKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyWk9yZGVyTGVuZ3RoID0gMTsKKyAgICB2b2lkIHNldExheWVyWk9yZGVyKHVpbnQzMl90IHopCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfWl9PUkRFUiwKKyAgICAgICAgICAgICAgICBrU2V0TGF5ZXJaT3JkZXJMZW5ndGgpOworICAgICAgICB3cml0ZSh6KTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIHZvaWQgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZCBjb21tYW5kLCB1aW50MTZfdCBsZW5ndGgpCisgICAgeworICAgICAgICBpZiAobUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgIExPR19GQVRBTCgiZW5kQ29tbWFuZCB3YXMgbm90IGNhbGxlZCBiZWZvcmUgY29tbWFuZCAweCV4IiwKKyAgICAgICAgICAgICAgICAgICAgY29tbWFuZCk7CisgICAgICAgIH0KKworICAgICAgICBncm93RGF0YSgxICsgbGVuZ3RoKTsKKyAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGNvbW1hbmQpIHwgbGVuZ3RoKTsKKworICAgICAgICBtQ29tbWFuZEVuZCA9IG1EYXRhV3JpdHRlbiArIGxlbmd0aDsKKyAgICB9CisKKyAgICB2b2lkIGVuZENvbW1hbmQoKQorICAgIHsKKyAgICAgICAgaWYgKCFtQ29tbWFuZEVuZCkgeworICAgICAgICAgICAgTE9HX0ZBVEFMKCJiZWdpbkNvbW1hbmQgd2FzIG5vdCBjYWxsZWQiKTsKKyAgICAgICAgfSBlbHNlIGlmIChtRGF0YVdyaXR0ZW4gPiBtQ29tbWFuZEVuZCkgeworICAgICAgICAgICAgTE9HX0ZBVEFMKCJ0b28gbXVjaCBkYXRhIHdyaXR0ZW4iKTsKKyAgICAgICAgICAgIG1EYXRhV3JpdHRlbiA9IG1Db21tYW5kRW5kOworICAgICAgICB9IGVsc2UgaWYgKG1EYXRhV3JpdHRlbiA8IG1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICBMT0dfRkFUQUwoInRvbyBsaXR0bGUgZGF0YSB3cml0dGVuIik7CisgICAgICAgICAgICB3aGlsZSAobURhdGFXcml0dGVuIDwgbUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgICAgICB3cml0ZSgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG1Db21tYW5kRW5kID0gMDsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlKHVpbnQzMl90IHZhbCkKKyAgICB7CisgICAgICAgIG1EYXRhW21EYXRhV3JpdHRlbisrXSA9IHZhbDsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlU2lnbmVkKGludDMyX3QgdmFsKQorICAgIHsKKyAgICAgICAgbWVtY3B5KCZtRGF0YVttRGF0YVdyaXR0ZW4rK10sICZ2YWwsIHNpemVvZih2YWwpKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlRmxvYXQoZmxvYXQgdmFsKQorICAgIHsKKyAgICAgICAgbWVtY3B5KCZtRGF0YVttRGF0YVdyaXR0ZW4rK10sICZ2YWwsIHNpemVvZih2YWwpKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlNjQodWludDY0X3QgdmFsKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgbG8gPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsICYgMHhmZmZmZmZmZik7CisgICAgICAgIHVpbnQzMl90IGhpID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbCA+PiAzMik7CisgICAgICAgIHdyaXRlKGxvKTsKKyAgICAgICAgd3JpdGUoaGkpOworICAgIH0KKworICAgIHZvaWQgd3JpdGVSZWN0KGNvbnN0IElDb21wb3NlckNsaWVudDo6UmVjdCYgcmVjdCkKKyAgICB7CisgICAgICAgIHdyaXRlU2lnbmVkKHJlY3QubGVmdCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHJlY3QudG9wKTsKKyAgICAgICAgd3JpdGVTaWduZWQocmVjdC5yaWdodCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHJlY3QuYm90dG9tKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlUmVnaW9uKGNvbnN0IHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4mIHJlZ2lvbikKKyAgICB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcmVjdCA6IHJlZ2lvbikgeworICAgICAgICAgICAgd3JpdGVSZWN0KHJlY3QpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3cml0ZUZSZWN0KGNvbnN0IElDb21wb3NlckNsaWVudDo6RlJlY3QmIHJlY3QpCisgICAgeworICAgICAgICB3cml0ZUZsb2F0KHJlY3QubGVmdCk7CisgICAgICAgIHdyaXRlRmxvYXQocmVjdC50b3ApOworICAgICAgICB3cml0ZUZsb2F0KHJlY3QucmlnaHQpOworICAgICAgICB3cml0ZUZsb2F0KHJlY3QuYm90dG9tKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlQ29sb3IoY29uc3QgSUNvbXBvc2VyQ2xpZW50OjpDb2xvciYgY29sb3IpCisgICAgeworICAgICAgICB3cml0ZSgoY29sb3IuciA8PCAgMCkgfAorICAgICAgICAgICAgICAoY29sb3IuZyA8PCAgOCkgfAorICAgICAgICAgICAgICAoY29sb3IuYiA8PCAxNikgfAorICAgICAgICAgICAgICAoY29sb3IuYSA8PCAyNCkpOworICAgIH0KKworICAgIC8vIG93bmVyc2hpcCBvZiBoYW5kbGUgaXMgbm90IHRyYW5zZmVycmVkCisgICAgdm9pZCB3cml0ZUhhbmRsZShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSwgYm9vbCB1c2VDYWNoZSkKKyAgICB7CisgICAgICAgIGlmICghaGFuZGxlKSB7CisgICAgICAgICAgICB3cml0ZVNpZ25lZChzdGF0aWNfY2FzdDxpbnQzMl90PigodXNlQ2FjaGUpID8KKyAgICAgICAgICAgICAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6SGFuZGxlSW5kZXg6OkNBQ0hFRCA6CisgICAgICAgICAgICAgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkhhbmRsZUluZGV4OjpFTVBUWSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbURhdGFIYW5kbGVzLnB1c2hfYmFjayhoYW5kbGUpOworICAgICAgICB3cml0ZVNpZ25lZChtRGF0YUhhbmRsZXMuc2l6ZSgpIC0gMSk7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUhhbmRsZShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSkKKyAgICB7CisgICAgICAgIHdyaXRlSGFuZGxlKGhhbmRsZSwgZmFsc2UpOworICAgIH0KKworICAgIC8vIG93bmVyc2hpcCBvZiBmZW5jZSBpcyB0cmFuc2ZlcnJlZAorICAgIHZvaWQgd3JpdGVGZW5jZShpbnQgZmVuY2UpCisgICAgeworICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IG51bGxwdHI7CisgICAgICAgIGlmIChmZW5jZSA+PSAwKSB7CisgICAgICAgICAgICBoYW5kbGUgPSBnZXRUZW1wb3JhcnlIYW5kbGUoMSwgMCk7CisgICAgICAgICAgICBpZiAoaGFuZGxlKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlLT5kYXRhWzBdID0gZmVuY2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dXKCJmYWlsZWQgdG8gZ2V0IHRlbXBvcmFyeSBoYW5kbGUgZm9yIGZlbmNlICVkIiwgZmVuY2UpOworICAgICAgICAgICAgICAgIHN5bmNfd2FpdChmZW5jZSwgLTEpOworICAgICAgICAgICAgICAgIGNsb3NlKGZlbmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHdyaXRlSGFuZGxlKGhhbmRsZSk7CisgICAgfQorCisgICAgbmF0aXZlX2hhbmRsZV90KiBnZXRUZW1wb3JhcnlIYW5kbGUoaW50IG51bUZkcywgaW50IG51bUludHMpCisgICAgeworICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKG51bUZkcywgbnVtSW50cyk7CisgICAgICAgIGlmIChoYW5kbGUpIHsKKyAgICAgICAgICAgIG1UZW1wb3JhcnlIYW5kbGVzLnB1c2hfYmFjayhoYW5kbGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBoYW5kbGU7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrTWF4TGVuZ3RoID0KKyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czx1aW50MTZfdD46Om1heCgpOworCitwcml2YXRlOgorICAgIHZvaWQgZ3Jvd0RhdGEodWludDMyX3QgZ3JvdykKKyAgICB7CisgICAgICAgIHVpbnQzMl90IG5ld1dyaXR0ZW4gPSBtRGF0YVdyaXR0ZW4gKyBncm93OworICAgICAgICBpZiAobmV3V3JpdHRlbiA8IG1EYXRhV3JpdHRlbikgeworICAgICAgICAgICAgTE9HX0FMV0FZU19GQVRBTCgiYnVmZmVyIG92ZXJmbG93ZWQ7IGRhdGEgd3JpdHRlbiAlIiBQUkl1MzIKKyAgICAgICAgICAgICAgICAgICAgIiwgZ3Jvd2luZyBieSAlIiBQUkl1MzIsIG1EYXRhV3JpdHRlbiwgZ3Jvdyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobmV3V3JpdHRlbiA8PSBtRGF0YU1heFNpemUpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHVpbnQzMl90IG5ld01heFNpemUgPSBtRGF0YU1heFNpemUgPDwgMTsKKyAgICAgICAgaWYgKG5ld01heFNpemUgPCBuZXdXcml0dGVuKSB7CisgICAgICAgICAgICBuZXdNYXhTaXplID0gbmV3V3JpdHRlbjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gbmV3RGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8dWludDMyX3RbXT4obmV3TWF4U2l6ZSk7CisgICAgICAgIHN0ZDo6Y29weV9uKG1EYXRhLmdldCgpLCBtRGF0YVdyaXR0ZW4sIG5ld0RhdGEuZ2V0KCkpOworICAgICAgICBtRGF0YU1heFNpemUgPSBuZXdNYXhTaXplOworICAgICAgICBtRGF0YSA9IHN0ZDo6bW92ZShuZXdEYXRhKTsKKyAgICB9CisKKyAgICB1aW50MzJfdCBtRGF0YU1heFNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQzMl90W10+IG1EYXRhOworCisgICAgdWludDMyX3QgbURhdGFXcml0dGVuOworICAgIC8vIGVuZCBvZmZzZXQgb2YgdGhlIGN1cnJlbnQgY29tbWFuZAorICAgIHVpbnQzMl90IG1Db21tYW5kRW5kOworCisgICAgc3RkOjp2ZWN0b3I8aGlkbF9oYW5kbGU+IG1EYXRhSGFuZGxlczsKKyAgICBzdGQ6OnZlY3RvcjxuYXRpdmVfaGFuZGxlX3QgKj4gbVRlbXBvcmFyeUhhbmRsZXM7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZFF1ZXVlVHlwZT4gbVF1ZXVlOworfTsKKworLy8gVGhpcyBjbGFzcyBoZWxwcyBwYXJzZSBhIGNvbW1hbmQgcXVldWUuICBOb3RlIHRoYXQgYWxsIHNpemVzL2xlbmd0aHMgYXJlIGluCisvLyB1bml0cyBvZiB1aW50MzJfdCdzLgorY2xhc3MgQ29tbWFuZFJlYWRlckJhc2UgeworcHVibGljOgorICAgIENvbW1hbmRSZWFkZXJCYXNlKCkgOiBtRGF0YU1heFNpemUoMCkKKyAgICB7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorCisgICAgYm9vbCBzZXRNUURlc2NyaXB0b3IoY29uc3QgTVFEZXNjcmlwdG9yU3luYzx1aW50MzJfdD4mIGRlc2NyaXB0b3IpCisgICAgeworICAgICAgICBtUXVldWUgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbW1hbmRRdWV1ZVR5cGU+KGRlc2NyaXB0b3IsIGZhbHNlKTsKKyAgICAgICAgaWYgKG1RdWV1ZS0+aXNWYWxpZCgpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1RdWV1ZSA9IG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBib29sIHJlYWRRdWV1ZSh1aW50MzJfdCBjb21tYW5kTGVuZ3RoLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9oYW5kbGU+JiBjb21tYW5kSGFuZGxlcykKKyAgICB7CisgICAgICAgIGlmICghbVF1ZXVlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIHF1YW50dW1Db3VudCA9IG1RdWV1ZS0+Z2V0UXVhbnR1bUNvdW50KCk7CisgICAgICAgIGlmIChtRGF0YU1heFNpemUgPCBxdWFudHVtQ291bnQpIHsKKyAgICAgICAgICAgIG1EYXRhTWF4U2l6ZSA9IHF1YW50dW1Db3VudDsKKyAgICAgICAgICAgIG1EYXRhID0gc3RkOjptYWtlX3VuaXF1ZTx1aW50MzJfdFtdPihtRGF0YU1heFNpemUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvbW1hbmRMZW5ndGggPiBtRGF0YU1heFNpemUgfHwKKyAgICAgICAgICAgICAgICAhbVF1ZXVlLT5yZWFkKG1EYXRhLmdldCgpLCBjb21tYW5kTGVuZ3RoKSkgeworICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byByZWFkIGNvbW1hbmRzIGZyb20gbWVzc2FnZSBxdWV1ZSIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgbURhdGFTaXplID0gY29tbWFuZExlbmd0aDsKKyAgICAgICAgbURhdGFSZWFkID0gMDsKKyAgICAgICAgbUNvbW1hbmRCZWdpbiA9IDA7CisgICAgICAgIG1Db21tYW5kRW5kID0gMDsKKyAgICAgICAgbURhdGFIYW5kbGVzLnNldFRvRXh0ZXJuYWwoCisgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxoaWRsX2hhbmRsZSo+KGNvbW1hbmRIYW5kbGVzLmRhdGEoKSksCisgICAgICAgICAgICAgICAgY29tbWFuZEhhbmRsZXMuc2l6ZSgpKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1EYXRhU2l6ZSA9IDA7CisgICAgICAgIG1EYXRhUmVhZCA9IDA7CisgICAgICAgIG1Db21tYW5kQmVnaW4gPSAwOworICAgICAgICBtQ29tbWFuZEVuZCA9IDA7CisgICAgICAgIG1EYXRhSGFuZGxlcy5zZXRUb0V4dGVybmFsKG51bGxwdHIsIDApOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gKG1EYXRhUmVhZCA+PSBtRGF0YVNpemUpOworICAgIH0KKworICAgIGJvb2wgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZCogb3V0Q29tbWFuZCwKKyAgICAgICAgICAgIHVpbnQxNl90KiBvdXRMZW5ndGgpCisgICAgeworICAgICAgICBpZiAobUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgIExPR19GQVRBTCgiZW5kQ29tbWFuZCB3YXMgbm90IGNhbGxlZCBmb3IgbGFzdCBjb21tYW5kIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdGV4cHIgdWludDMyX3Qgb3Bjb2RlX21hc2sgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6T1BDT0RFX01BU0spOworICAgICAgICBjb25zdGV4cHIgdWludDMyX3QgbGVuZ3RoX21hc2sgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6TEVOR1RIX01BU0spOworCisgICAgICAgIHVpbnQzMl90IHZhbCA9IHJlYWQoKTsKKyAgICAgICAgKm91dENvbW1hbmQgPSBzdGF0aWNfY2FzdDxJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ+KAorICAgICAgICAgICAgICAgIHZhbCAmIG9wY29kZV9tYXNrKTsKKyAgICAgICAgKm91dExlbmd0aCA9IHN0YXRpY19jYXN0PHVpbnQxNl90Pih2YWwgJiBsZW5ndGhfbWFzayk7CisKKyAgICAgICAgaWYgKG1EYXRhUmVhZCArICpvdXRMZW5ndGggPiBtRGF0YVNpemUpIHsKKyAgICAgICAgICAgIEFMT0dFKCJjb21tYW5kIDB4JXggaGFzIGludmFsaWQgY29tbWFuZCBsZW5ndGggJSIgUFJJdTE2LAorICAgICAgICAgICAgICAgICAgICAqb3V0Q29tbWFuZCwgKm91dExlbmd0aCk7CisgICAgICAgICAgICAvLyB1bmRvIHRoZSByZWFkKCkgYWJvdmUKKyAgICAgICAgICAgIG1EYXRhUmVhZC0tOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgbUNvbW1hbmRFbmQgPSBtRGF0YVJlYWQgKyAqb3V0TGVuZ3RoOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZvaWQgZW5kQ29tbWFuZCgpCisgICAgeworICAgICAgICBpZiAoIW1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICBMT0dfRkFUQUwoImJlZ2luQ29tbWFuZCB3YXMgbm90IGNhbGxlZCIpOworICAgICAgICB9IGVsc2UgaWYgKG1EYXRhUmVhZCA+IG1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICBMT0dfRkFUQUwoInRvbyBtdWNoIGRhdGEgcmVhZCIpOworICAgICAgICAgICAgbURhdGFSZWFkID0gbUNvbW1hbmRFbmQ7CisgICAgICAgIH0gZWxzZSBpZiAobURhdGFSZWFkIDwgbUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgIExPR19GQVRBTCgidG9vIGxpdHRsZSBkYXRhIHJlYWQiKTsKKyAgICAgICAgICAgIG1EYXRhUmVhZCA9IG1Db21tYW5kRW5kOworICAgICAgICB9CisKKyAgICAgICAgbUNvbW1hbmRCZWdpbiA9IG1Db21tYW5kRW5kOworICAgICAgICBtQ29tbWFuZEVuZCA9IDA7CisgICAgfQorCisgICAgdWludDMyX3QgZ2V0Q29tbWFuZExvYygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbUNvbW1hbmRCZWdpbjsKKyAgICB9CisKKyAgICB1aW50MzJfdCByZWFkKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtRGF0YVttRGF0YVJlYWQrK107CisgICAgfQorCisgICAgaW50MzJfdCByZWFkU2lnbmVkKCkKKyAgICB7CisgICAgICAgIGludDMyX3QgdmFsOworICAgICAgICBtZW1jcHkoJnZhbCwgJm1EYXRhW21EYXRhUmVhZCsrXSwgc2l6ZW9mKHZhbCkpOworICAgICAgICByZXR1cm4gdmFsOworICAgIH0KKworICAgIGZsb2F0IHJlYWRGbG9hdCgpCisgICAgeworICAgICAgICBmbG9hdCB2YWw7CisgICAgICAgIG1lbWNweSgmdmFsLCAmbURhdGFbbURhdGFSZWFkKytdLCBzaXplb2YodmFsKSk7CisgICAgICAgIHJldHVybiB2YWw7CisgICAgfQorCisgICAgdWludDY0X3QgcmVhZDY0KCkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGxvID0gcmVhZCgpOworICAgICAgICB1aW50MzJfdCBoaSA9IHJlYWQoKTsKKyAgICAgICAgcmV0dXJuIChzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGkpIDw8IDMyKSB8IGxvOworICAgIH0KKworICAgIElDb21wb3NlckNsaWVudDo6Q29sb3IgcmVhZENvbG9yKCkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IHZhbCA9IHJlYWQoKTsKKyAgICAgICAgcmV0dXJuIElDb21wb3NlckNsaWVudDo6Q29sb3J7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50OF90PigodmFsID4+ICAwKSAmIDB4ZmYpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4oKHZhbCA+PiAgOCkgJiAweGZmKSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KCh2YWwgPj4gMTYpICYgMHhmZiksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50OF90PigodmFsID4+IDI0KSAmIDB4ZmYpLAorICAgICAgICB9OworICAgIH0KKworICAgIC8vIG93bmVyc2hpcCBvZiBoYW5kbGUgaXMgbm90IHRyYW5zZmVycmVkCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiByZWFkSGFuZGxlKGJvb2wqIG91dFVzZUNhY2hlKQorICAgIHsKKyAgICAgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBudWxscHRyOworCisgICAgICAgIGludDMyX3QgaW5kZXggPSByZWFkU2lnbmVkKCk7CisgICAgICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQzMl90PihJQ29tcG9zZXJDbGllbnQ6OkhhbmRsZUluZGV4OjpFTVBUWSk6CisgICAgICAgICAgICAqb3V0VXNlQ2FjaGUgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHN0YXRpY19jYXN0PGludDMyX3Q+KElDb21wb3NlckNsaWVudDo6SGFuZGxlSW5kZXg6OkNBQ0hFRCk6CisgICAgICAgICAgICAqb3V0VXNlQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPCBtRGF0YUhhbmRsZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlID0gbURhdGFIYW5kbGVzW2luZGV4XS5nZXROYXRpdmVIYW5kbGUoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQUxPR0UoImludmFsaWQgaGFuZGxlIGluZGV4ICV6dSIsIHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICpvdXRVc2VDYWNoZSA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaGFuZGxlOworICAgIH0KKworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogcmVhZEhhbmRsZSgpCisgICAgeworICAgICAgICBib29sIHVzZUNhY2hlOworICAgICAgICByZXR1cm4gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIH0KKworICAgIC8vIG93bmVyc2hpcCBvZiBmZW5jZSBpcyB0cmFuc2ZlcnJlZAorICAgIGludCByZWFkRmVuY2UoKQorICAgIHsKKyAgICAgICAgYXV0byBoYW5kbGUgPSByZWFkSGFuZGxlKCk7CisgICAgICAgIGlmICghaGFuZGxlIHx8IGhhbmRsZS0+bnVtRmRzID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYW5kbGUtPm51bUZkcyAhPSAxKSB7CisgICAgICAgICAgICBBTE9HRSgiaW52YWxpZCBmZW5jZSBoYW5kbGUgd2l0aCAlZCBmZHMiLCBoYW5kbGUtPm51bUZkcyk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZmQgPSBkdXAoaGFuZGxlLT5kYXRhWzBdKTsKKyAgICAgICAgaWYgKGZkIDwgMCkgeworICAgICAgICAgICAgQUxPR1coImZhaWxlZCB0byBkdXAgZmVuY2UgJWQiLCBoYW5kbGUtPmRhdGFbMF0pOworICAgICAgICAgICAgc3luY193YWl0KGhhbmRsZS0+ZGF0YVswXSwgLTEpOworICAgICAgICAgICAgZmQgPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmZDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRRdWV1ZVR5cGU+IG1RdWV1ZTsKKyAgICB1aW50MzJfdCBtRGF0YU1heFNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQzMl90W10+IG1EYXRhOworCisgICAgdWludDMyX3QgbURhdGFTaXplOworICAgIHVpbnQzMl90IG1EYXRhUmVhZDsKKworICAgIC8vIGJlZ2luL2VuZCBvZmZzZXRzIG9mIHRoZSBjdXJyZW50IGNvbW1hbmQKKyAgICB1aW50MzJfdCBtQ29tbWFuZEJlZ2luOworICAgIHVpbnQzMl90IG1Db21tYW5kRW5kOworCisgICAgaGlkbF92ZWM8aGlkbF9oYW5kbGU+IG1EYXRhSGFuZGxlczsKK307CisKK30gLy8gbmFtZXNwYWNlIFYyXzEKK30gLy8gbmFtZXNwYWNlIGNvbXBvc2VyCit9IC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfQ09NTUFORF9CVUZGRVJfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEtc2VydmljZS5yYyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTFiMGUzYgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xLXNlcnZpY2UucmMKQEAgLTAsMCArMSw2IEBACitzZXJ2aWNlIGh3Y29tcG9zZXItMi0xIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwgYW5pbWF0aW9uCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBncmFwaGljcyBkcm1ycGMKKyAgICBjYXBhYmlsaXRpZXMgU1lTX05JQ0UKKyAgICBvbnJlc3RhcnQgcmVzdGFydCBzdXJmYWNlZmxpbmdlcgpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmEzM2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMS1zZXJ2aWNlIgorCisjaW5jbHVkZSA8c2NoZWQuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0lDb21wb3Nlci5oPgorCisjaW5jbHVkZSA8YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbXBvc2VyOjpWMl8xOjpJQ29tcG9zZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICAvLyB0aGUgY29udmVudGlvbmFsIEhBTCBtaWdodCBzdGFydCBiaW5kZXIgc2VydmljZXMKKyAgICBhbmRyb2lkOjpQcm9jZXNzU3RhdGU6OmluaXRXaXRoRHJpdmVyKCIvZGV2L3ZuZGJpbmRlciIpOworICAgIGFuZHJvaWQ6OlByb2Nlc3NTdGF0ZTo6c2VsZigpLT5zZXRUaHJlYWRQb29sTWF4VGhyZWFkQ291bnQoNCk7CisgICAgYW5kcm9pZDo6UHJvY2Vzc1N0YXRlOjpzZWxmKCktPnN0YXJ0VGhyZWFkUG9vbCgpOworCisgICAgLy8gc2FtZSBhcyBTRiBtYWluIHRocmVhZAorICAgIHN0cnVjdCBzY2hlZF9wYXJhbSBwYXJhbSA9IHswfTsKKyAgICBwYXJhbS5zY2hlZF9wcmlvcml0eSA9IDI7CisgICAgaWYgKHNjaGVkX3NldHNjaGVkdWxlcigwLCBTQ0hFRF9GSUZPIHwgU0NIRURfUkVTRVRfT05fRk9SSywKKyAgICAgICAgICAgICAgICAmcGFyYW0pICE9IDApIHsKKyAgICAgICAgQUxPR0UoIkNvdWxkbid0IHNldCBTQ0hFRF9GSUZPOiAlZCIsIGVycm5vKTsKKyAgICB9CisKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElDb21wb3Nlcj4oNCk7Cit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdHlwZXMuaGFsIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjBkZDhiCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3R5cGVzLmhhbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMTsKKworLyoqIFJldHVybiBjb2RlcyBmcm9tIGFsbCBmdW5jdGlvbnMuICovCitlbnVtIEVycm9yIDogaW50MzJfdCB7CisgICAgTk9ORSAgICAgICAgICAgID0gMCwgLyoqIG5vIGVycm9yICovCisgICAgQkFEX0NPTkZJRyAgICAgID0gMSwgLyoqIGludmFsaWQgQ29uZmlnICovCisgICAgQkFEX0RJU1BMQVkgICAgID0gMiwgLyoqIGludmFsaWQgRGlzcGxheSAqLworICAgIEJBRF9MQVlFUiAgICAgICA9IDMsIC8qKiBpbnZhbGlkIExheWVyICovCisgICAgQkFEX1BBUkFNRVRFUiAgID0gNCwgLyoqIGludmFsaWQgd2lkdGgsIGhlaWdodCwgZXRjLiAqLworICAgIC8qKiA1IGlzIHJlc2VydmVkICovCisgICAgTk9fUkVTT1VSQ0VTICAgID0gNiwgLyoqIHRlbXBvcmFyeSBmYWlsdXJlIGR1ZSB0byByZXNvdXJjZSBjb250ZW50aW9uICovCisgICAgTk9UX1ZBTElEQVRFRCAgID0gNywgLyoqIHZhbGlkYXRlRGlzcGxheSBoYXMgbm90IGJlZW4gY2FsbGVkICovCisgICAgVU5TVVBQT1JURUQgICAgID0gOCwgLyoqIHBlcm1hbmVudCBmYWlsdXJlICovCit9OworCit0eXBlZGVmIHVpbnQzMl90IENvbmZpZzsKK3R5cGVkZWYgdWludDY0X3QgRGlzcGxheTsKK3R5cGVkZWYgdWludDY0X3QgTGF5ZXI7CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2MzIzZDQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDY2IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogImxpYlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIiwKKyAgICBdLAorICAgIGNmbGFnczogWworICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdleHRyYSIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXSwKK30KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJWMl8xVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsR3JhcGhpY3NDb21wb3NlclYyXzFUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmZtcSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlic3luYyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAibGliaHdjb21wb3Nlci1jb21tYW5kLWJ1ZmZlciIsCisgICAgICAgICJsaWJWdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzIiwKKyAgICAgICAgImxpYlZ0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzIiwKKyAgICAgICAgIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSIsCisgICAgXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1XYWxsIiwKKyAgICAgICAgIi1XZXh0cmEiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmNwcCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2NmODRjCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuY3BwCkBAIC0wLDAgKzEsMzAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCisjaW5jbHVkZSAiVnRzSGFsR3JhcGhpY3NDb21wb3NlclRlc3RVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgdGVzdHMgeworCitDb21wb3Nlcjo6Q29tcG9zZXIoKSB7IGluaXQoKTsgfQorCit2b2lkIENvbXBvc2VyOjppbml0KCkgeworICBtQ29tcG9zZXIgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJQ29tcG9zZXI+KCk7CisgIEFTU0VSVF9ORShudWxscHRyLCBtQ29tcG9zZXIuZ2V0KCkpIDw8ICJmYWlsZWQgdG8gZ2V0IGNvbXBvc2VyIHNlcnZpY2UiOworCisgIHN0ZDo6dmVjdG9yPElDb21wb3Nlcjo6Q2FwYWJpbGl0eT4gY2FwYWJpbGl0aWVzID0gZ2V0Q2FwYWJpbGl0aWVzKCk7CisgIG1DYXBhYmlsaXRpZXMuaW5zZXJ0KGNhcGFiaWxpdGllcy5iZWdpbigpLCBjYXBhYmlsaXRpZXMuZW5kKCkpOworfQorCitzcDxJQ29tcG9zZXI+IENvbXBvc2VyOjpnZXRSYXcoKSBjb25zdCB7IHJldHVybiBtQ29tcG9zZXI7IH0KKworYm9vbCBDb21wb3Nlcjo6aGFzQ2FwYWJpbGl0eShJQ29tcG9zZXI6OkNhcGFiaWxpdHkgY2FwYWJpbGl0eSkgY29uc3QgeworICByZXR1cm4gbUNhcGFiaWxpdGllcy5jb3VudChjYXBhYmlsaXR5KSA+IDA7Cit9CisKK3N0ZDo6dmVjdG9yPElDb21wb3Nlcjo6Q2FwYWJpbGl0eT4gQ29tcG9zZXI6OmdldENhcGFiaWxpdGllcygpIHsKKyAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyOjpDYXBhYmlsaXR5PiBjYXBhYmlsaXRpZXM7CisgIG1Db21wb3Nlci0+Z2V0Q2FwYWJpbGl0aWVzKAorICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcENhcGFiaWxpdGllcykgeyBjYXBhYmlsaXRpZXMgPSB0bXBDYXBhYmlsaXRpZXM7IH0pOworCisgIHJldHVybiBjYXBhYmlsaXRpZXM7Cit9CisKK3N0ZDo6c3RyaW5nIENvbXBvc2VyOjpkdW1wRGVidWdJbmZvKCkgeworICBzdGQ6OnN0cmluZyBkZWJ1Z0luZm87CisgIG1Db21wb3Nlci0+ZHVtcERlYnVnSW5mbygKKyAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBEZWJ1Z0luZm8pIHsgZGVidWdJbmZvID0gdG1wRGVidWdJbmZvLmNfc3RyKCk7IH0pOworCisgIHJldHVybiBkZWJ1Z0luZm87Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxDb21wb3NlckNsaWVudD4gQ29tcG9zZXI6OmNyZWF0ZUNsaWVudCgpIHsKKyAgc3RkOjp1bmlxdWVfcHRyPENvbXBvc2VyQ2xpZW50PiBjbGllbnQ7CisgIG1Db21wb3Nlci0+Y3JlYXRlQ2xpZW50KFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wQ2xpZW50KSB7CisgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBjcmVhdGUgY2xpZW50IjsKKyAgICBjbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbXBvc2VyQ2xpZW50Pih0bXBDbGllbnQpOworICB9KTsKKworICByZXR1cm4gY2xpZW50OworfQorCitDb21wb3NlckNsaWVudDo6Q29tcG9zZXJDbGllbnQoY29uc3Qgc3A8SUNvbXBvc2VyQ2xpZW50PiYgY2xpZW50KQorICAgIDogbUNsaWVudChjbGllbnQpIHt9CisKK0NvbXBvc2VyQ2xpZW50Ojp+Q29tcG9zZXJDbGllbnQoKSB7CisgIGZvciAoYXV0byBpdCA6IG1EaXNwbGF5UmVzb3VyY2VzKSB7CisgICAgRGlzcGxheSBkaXNwbGF5ID0gaXQuZmlyc3Q7CisgICAgRGlzcGxheVJlc291cmNlJiByZXNvdXJjZSA9IGl0LnNlY29uZDsKKworICAgIGZvciAoYXV0byBsYXllciA6IHJlc291cmNlLmxheWVycykgeworICAgICAgRVhQRUNUX0VRKEVycm9yOjpOT05FLCBtQ2xpZW50LT5kZXN0cm95TGF5ZXIoZGlzcGxheSwgbGF5ZXIpKQorICAgICAgICAgIDw8ICJmYWlsZWQgdG8gZGVzdHJveSBsYXllciAiIDw8IGxheWVyOworICAgIH0KKworICAgIGlmIChyZXNvdXJjZS5pc1ZpcnR1YWwpIHsKKyAgICAgIEVYUEVDVF9FUShFcnJvcjo6Tk9ORSwgbUNsaWVudC0+ZGVzdHJveVZpcnR1YWxEaXNwbGF5KGRpc3BsYXkpKQorICAgICAgICAgIDw8ICJmYWlsZWQgdG8gZGVzdHJveSB2aXJ0dWFsIGRpc3BsYXkgIiA8PCBkaXNwbGF5OworICAgIH0KKyAgfQorICBtRGlzcGxheVJlc291cmNlcy5jbGVhcigpOworfQorCitzcDxJQ29tcG9zZXJDbGllbnQ+IENvbXBvc2VyQ2xpZW50OjpnZXRSYXcoKSBjb25zdCB7IHJldHVybiBtQ2xpZW50OyB9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OnJlZ2lzdGVyQ2FsbGJhY2soY29uc3Qgc3A8SUNvbXBvc2VyQ2FsbGJhY2s+JiBjYWxsYmFjaykgeworICBtQ2xpZW50LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrKTsKK30KKwordWludDMyX3QgQ29tcG9zZXJDbGllbnQ6OmdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQoKSB7CisgIHJldHVybiBtQ2xpZW50LT5nZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCk7Cit9CisKK0Rpc3BsYXkgQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZVZpcnR1YWxEaXNwbGF5KHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXRIaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb3V0cHV0QnVmZmVyU2xvdENvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQqIG91dEZvcm1hdCkgeworICBEaXNwbGF5IGRpc3BsYXkgPSAwOworICBtQ2xpZW50LT5jcmVhdGVWaXJ0dWFsRGlzcGxheSgKKyAgICAgIHdpZHRoLCBoZWlnaHQsIGZvcm1hdEhpbnQsIG91dHB1dEJ1ZmZlclNsb3RDb3VudCwKKyAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wRGlzcGxheSwgY29uc3QgYXV0byYgdG1wRm9ybWF0KSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gY3JlYXRlIHZpcnR1YWwgZGlzcGxheSI7CisgICAgICAgIGRpc3BsYXkgPSB0bXBEaXNwbGF5OworICAgICAgICAqb3V0Rm9ybWF0ID0gdG1wRm9ybWF0OworCisgICAgICAgIEFTU0VSVF9UUlVFKAorICAgICAgICAgICAgbURpc3BsYXlSZXNvdXJjZXMuaW5zZXJ0KHtkaXNwbGF5LCBEaXNwbGF5UmVzb3VyY2UodHJ1ZSl9KS5zZWNvbmQpCisgICAgICAgICAgICA8PCAiZHVwbGljYXRlZCB2aXJ0dWFsIGRpc3BsYXkgaWQgIiA8PCBkaXNwbGF5OworICAgICAgfSk7CisKKyAgcmV0dXJuIGRpc3BsYXk7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpIHsKKyAgRXJyb3IgZXJyb3IgPSBtQ2xpZW50LT5kZXN0cm95VmlydHVhbERpc3BsYXkoZGlzcGxheSk7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpCisgICAgICA8PCAiZmFpbGVkIHRvIGRlc3Ryb3kgdmlydHVhbCBkaXNwbGF5ICIgPDwgZGlzcGxheTsKKworICBtRGlzcGxheVJlc291cmNlcy5lcmFzZShkaXNwbGF5KTsKK30KKworTGF5ZXIgQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZUxheWVyKERpc3BsYXkgZGlzcGxheSwgdWludDMyX3QgYnVmZmVyU2xvdENvdW50KSB7CisgIExheWVyIGxheWVyID0gMDsKKyAgbUNsaWVudC0+Y3JlYXRlTGF5ZXIoCisgICAgICBkaXNwbGF5LCBidWZmZXJTbG90Q291bnQsCisgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcExheWVyKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gY3JlYXRlIGxheWVyIjsKKyAgICAgICAgbGF5ZXIgPSB0bXBMYXllcjsKKworICAgICAgICBhdXRvIHJlc291cmNlSXQgPSBtRGlzcGxheVJlc291cmNlcy5maW5kKGRpc3BsYXkpOworICAgICAgICBpZiAocmVzb3VyY2VJdCA9PSBtRGlzcGxheVJlc291cmNlcy5lbmQoKSkgeworICAgICAgICAgIHJlc291cmNlSXQgPQorICAgICAgICAgICAgICBtRGlzcGxheVJlc291cmNlcy5pbnNlcnQoe2Rpc3BsYXksIERpc3BsYXlSZXNvdXJjZShmYWxzZSl9KS5maXJzdDsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVF9UUlVFKHJlc291cmNlSXQtPnNlY29uZC5sYXllcnMuaW5zZXJ0KGxheWVyKS5zZWNvbmQpCisgICAgICAgICAgICA8PCAiZHVwbGljYXRlZCBsYXllciBpZCAiIDw8IGxheWVyOworICAgICAgfSk7CisKKyAgcmV0dXJuIGxheWVyOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpkZXN0cm95TGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllcikgeworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPmRlc3Ryb3lMYXllcihkaXNwbGF5LCBsYXllcik7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpIDw8ICJmYWlsZWQgdG8gZGVzdHJveSBsYXllciAiIDw8IGxheWVyOworCisgIGF1dG8gcmVzb3VyY2VJdCA9IG1EaXNwbGF5UmVzb3VyY2VzLmZpbmQoZGlzcGxheSk7CisgIEFTU0VSVF9ORShtRGlzcGxheVJlc291cmNlcy5lbmQoKSwgcmVzb3VyY2VJdCk7CisgIHJlc291cmNlSXQtPnNlY29uZC5sYXllcnMuZXJhc2UobGF5ZXIpOworfQorCitDb25maWcgQ29tcG9zZXJDbGllbnQ6OmdldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXkpIHsKKyAgQ29uZmlnIGNvbmZpZyA9IDA7CisgIG1DbGllbnQtPmdldEFjdGl2ZUNvbmZpZygKKyAgICAgIGRpc3BsYXksIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wQ29uZmlnKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IGFjdGl2ZSBjb25maWciOworICAgICAgICBjb25maWcgPSB0bXBDb25maWc7CisgICAgICB9KTsKKworICByZXR1cm4gY29uZmlnOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpnZXRDbGllbnRUYXJnZXRTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwgdWludDMyX3Qgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGhlaWdodCwgUGl4ZWxGb3JtYXQgZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhc3BhY2UgZGF0YXNwYWNlKSB7CisgIEVycm9yIGVycm9yID0gbUNsaWVudC0+Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydChkaXNwbGF5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhc3BhY2UpOworICByZXR1cm4gZXJyb3IgPT0gRXJyb3I6Ok5PTkU7Cit9CisKK3N0ZDo6dmVjdG9yPENvbG9yTW9kZT4gQ29tcG9zZXJDbGllbnQ6OmdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5KSB7CisgIHN0ZDo6dmVjdG9yPENvbG9yTW9kZT4gbW9kZXM7CisgIG1DbGllbnQtPmdldENvbG9yTW9kZXMoCisgICAgICBkaXNwbGF5LCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcE1vZGUpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBnZXQgY29sb3IgbW9kZSI7CisgICAgICAgIG1vZGVzID0gdG1wTW9kZTsKKyAgICAgIH0pOworCisgIHJldHVybiBtb2RlczsKK30KKworaW50MzJfdCBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheUF0dHJpYnV0ZSgKKyAgICBEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcsIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlIGF0dHJpYnV0ZSkgeworICBpbnQzMl90IHZhbHVlID0gMDsKKyAgbUNsaWVudC0+Z2V0RGlzcGxheUF0dHJpYnV0ZShkaXNwbGF5LCBjb25maWcsIGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcFZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJmYWlsZWQgdG8gZ2V0IGRpc3BsYXkgYXR0cmlidXRlIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdG1wVmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgcmV0dXJuIHZhbHVlOworfQorCitzdGQ6OnZlY3RvcjxDb25maWc+IENvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXkpIHsKKyAgc3RkOjp2ZWN0b3I8Q29uZmlnPiBjb25maWdzOworICBtQ2xpZW50LT5nZXREaXNwbGF5Q29uZmlncygKKyAgICAgIGRpc3BsYXksIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wQ29uZmlncykgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIGdldCBkaXNwbGF5IGNvbmZpZ3MiOworICAgICAgICBjb25maWdzID0gdG1wQ29uZmlnczsKKyAgICAgIH0pOworCisgIHJldHVybiBjb25maWdzOworfQorCitzdGQ6OnN0cmluZyBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5KSB7CisgIHN0ZDo6c3RyaW5nIG5hbWU7CisgIG1DbGllbnQtPmdldERpc3BsYXlOYW1lKAorICAgICAgZGlzcGxheSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBOYW1lKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IGRpc3BsYXkgbmFtZSI7CisgICAgICAgIG5hbWUgPSB0bXBOYW1lLmNfc3RyKCk7CisgICAgICB9KTsKKworICByZXR1cm4gbmFtZTsKK30KKworSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheVR5cGUoRGlzcGxheSBkaXNwbGF5KSB7CisgIElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGUgdHlwZSA9IElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGU6OklOVkFMSUQ7CisgIG1DbGllbnQtPmdldERpc3BsYXlUeXBlKAorICAgICAgZGlzcGxheSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBUeXBlKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IGRpc3BsYXkgdHlwZSI7CisgICAgICAgIHR5cGUgPSB0bXBUeXBlOworICAgICAgfSk7CisKKyAgcmV0dXJuIHR5cGU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OmdldERvemVTdXBwb3J0KERpc3BsYXkgZGlzcGxheSkgeworICBib29sIHN1cHBvcnQgPSBmYWxzZTsKKyAgbUNsaWVudC0+Z2V0RG96ZVN1cHBvcnQoCisgICAgICBkaXNwbGF5LCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcFN1cHBvcnQpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBnZXQgZG96ZSBzdXBwb3J0IjsKKyAgICAgICAgc3VwcG9ydCA9IHRtcFN1cHBvcnQ7CisgICAgICB9KTsKKworICByZXR1cm4gc3VwcG9ydDsKK30KKworc3RkOjp2ZWN0b3I8SGRyPiBDb21wb3NlckNsaWVudDo6Z2V0SGRyQ2FwYWJpbGl0aWVzKAorICAgIERpc3BsYXkgZGlzcGxheSwgZmxvYXQqIG91dE1heEx1bWluYW5jZSwgZmxvYXQqIG91dE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgZmxvYXQqIG91dE1pbkx1bWluYW5jZSkgeworICBzdGQ6OnZlY3RvcjxIZHI+IHR5cGVzOworICBtQ2xpZW50LT5nZXRIZHJDYXBhYmlsaXRpZXMoCisgICAgICBkaXNwbGF5LAorICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBUeXBlcywKKyAgICAgICAgICBjb25zdCBhdXRvJiB0bXBNYXhMdW1pbmFuY2UsIGNvbnN0IGF1dG8mIHRtcE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgY29uc3QgYXV0byYgdG1wTWluTHVtaW5hbmNlKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IEhEUiBjYXBhYmlsaXRpZXMiOworICAgICAgICB0eXBlcyA9IHRtcFR5cGVzOworICAgICAgICAqb3V0TWF4THVtaW5hbmNlID0gdG1wTWF4THVtaW5hbmNlOworICAgICAgICAqb3V0TWF4QXZlcmFnZUx1bWluYW5jZSA9IHRtcE1heEF2ZXJhZ2VMdW1pbmFuY2U7CisgICAgICAgICpvdXRNaW5MdW1pbmFuY2UgPSB0bXBNaW5MdW1pbmFuY2U7CisgICAgICB9KTsKKworICByZXR1cm4gdHlwZXM7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OnNldENsaWVudFRhcmdldFNsb3RDb3VudChEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KSB7CisgIEVycm9yIGVycm9yID0KKyAgICAgIG1DbGllbnQtPnNldENsaWVudFRhcmdldFNsb3RDb3VudChkaXNwbGF5LCBjbGllbnRUYXJnZXRTbG90Q291bnQpOworICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIGVycm9yKSA8PCAiZmFpbGVkIHRvIHNldCBjbGllbnQgdGFyZ2V0IHNsb3QgY291bnQiOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKSB7CisgIEVycm9yIGVycm9yID0gbUNsaWVudC0+c2V0QWN0aXZlQ29uZmlnKGRpc3BsYXksIGNvbmZpZyk7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpIDw8ICJmYWlsZWQgdG8gc2V0IGFjdGl2ZSBjb25maWciOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpzZXRDb2xvck1vZGUoRGlzcGxheSBkaXNwbGF5LCBDb2xvck1vZGUgbW9kZSkgeworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPnNldENvbG9yTW9kZShkaXNwbGF5LCBtb2RlKTsKKyAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCBlcnJvcikgPDwgImZhaWxlZCB0byBzZXQgY29sb3IgbW9kZSI7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OnNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGUgbW9kZSkgeworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPnNldFBvd2VyTW9kZShkaXNwbGF5LCBtb2RlKTsKKyAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCBlcnJvcikgPDwgImZhaWxlZCB0byBzZXQgcG93ZXIgbW9kZSI7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OnNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksIGJvb2wgZW5hYmxlZCkgeworICBJQ29tcG9zZXJDbGllbnQ6OlZzeW5jIHZzeW5jID0gKGVuYWJsZWQpID8gSUNvbXBvc2VyQ2xpZW50OjpWc3luYzo6RU5BQkxFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBJQ29tcG9zZXJDbGllbnQ6OlZzeW5jOjpESVNBQkxFOworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPnNldFZzeW5jRW5hYmxlZChkaXNwbGF5LCB2c3luYyk7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpIDw8ICJmYWlsZWQgdG8gc2V0IHZzeW5jIG1vZGUiOworfQorCit9ICAvLyBuYW1lc3BhY2UgdGVzdHMKK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgY29tcG9zZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuaCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGI1NzI2NAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIFZUU19IQUxfR1JBUEhJQ1NfQ09NUE9TRVJfVVRJTFMKKyNkZWZpbmUgVlRTX0hBTF9HUkFQSElDU19DT01QT1NFUl9VVElMUworCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyLmg+CisjaW5jbHVkZSA8dXRpbHMvU3Ryb25nUG9pbnRlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgdGVzdHMgeworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6Q29sb3JNb2RlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkRhdGFzcGFjZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpIZHI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7CisKK2NsYXNzIENvbXBvc2VyQ2xpZW50OworCisvLyBBIHdyYXBwZXIgdG8gSUNvbXBvc2VyLgorY2xhc3MgQ29tcG9zZXIgeworIHB1YmxpYzoKKyAgQ29tcG9zZXIoKTsKKworICBzcDxJQ29tcG9zZXI+IGdldFJhdygpIGNvbnN0OworCisgIC8vIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBjb21wb3NlciBzdXBwb3J0cyB0aGUgc3BlY2lmaWVkIGNhcGFiaWxpdHkuCisgIGJvb2wgaGFzQ2FwYWJpbGl0eShJQ29tcG9zZXI6OkNhcGFiaWxpdHkgY2FwYWJpbGl0eSkgY29uc3Q7CisKKyAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyOjpDYXBhYmlsaXR5PiBnZXRDYXBhYmlsaXRpZXMoKTsKKyAgc3RkOjpzdHJpbmcgZHVtcERlYnVnSW5mbygpOworICBzdGQ6OnVuaXF1ZV9wdHI8Q29tcG9zZXJDbGllbnQ+IGNyZWF0ZUNsaWVudCgpOworCisgcHJpdmF0ZToKKyAgdm9pZCBpbml0KCk7CisKKyAgc3A8SUNvbXBvc2VyPiBtQ29tcG9zZXI7CisgIHN0ZDo6dW5vcmRlcmVkX3NldDxJQ29tcG9zZXI6OkNhcGFiaWxpdHk+IG1DYXBhYmlsaXRpZXM7Cit9OworCisvLyBBIHdyYXBwZXIgdG8gSUNvbXBvc2VyQ2xpZW50LgorY2xhc3MgQ29tcG9zZXJDbGllbnQgeworIHB1YmxpYzoKKyAgQ29tcG9zZXJDbGllbnQoY29uc3Qgc3A8SUNvbXBvc2VyQ2xpZW50PiYgY2xpZW50KTsKKyAgfkNvbXBvc2VyQ2xpZW50KCk7CisKKyAgc3A8SUNvbXBvc2VyQ2xpZW50PiBnZXRSYXcoKSBjb25zdDsKKworICB2b2lkIHJlZ2lzdGVyQ2FsbGJhY2soY29uc3Qgc3A8SUNvbXBvc2VyQ2FsbGJhY2s+JiBjYWxsYmFjayk7CisgIHVpbnQzMl90IGdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQoKTsKKworICBEaXNwbGF5IGNyZWF0ZVZpcnR1YWxEaXNwbGF5KHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0SGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvdXRwdXRCdWZmZXJTbG90Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQqIG91dEZvcm1hdCk7CisgIHZvaWQgZGVzdHJveVZpcnR1YWxEaXNwbGF5KERpc3BsYXkgZGlzcGxheSk7CisKKyAgTGF5ZXIgY3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCB1aW50MzJfdCBidWZmZXJTbG90Q291bnQpOworICB2b2lkIGRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKTsKKworICBDb25maWcgZ2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSk7CisgIGJvb2wgZ2V0Q2xpZW50VGFyZ2V0U3VwcG9ydChEaXNwbGF5IGRpc3BsYXksIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsIERhdGFzcGFjZSBkYXRhc3BhY2UpOworICBzdGQ6OnZlY3RvcjxDb2xvck1vZGU+IGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5KTsKKyAgaW50MzJfdCBnZXREaXNwbGF5QXR0cmlidXRlKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlIGF0dHJpYnV0ZSk7CisgIHN0ZDo6dmVjdG9yPENvbmZpZz4gZ2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5KTsKKyAgc3RkOjpzdHJpbmcgZ2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5KTsKKyAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXkpOworICBib29sIGdldERvemVTdXBwb3J0KERpc3BsYXkgZGlzcGxheSk7CisgIHN0ZDo6dmVjdG9yPEhkcj4gZ2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSwgZmxvYXQqIG91dE1heEx1bWluYW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQqIG91dE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0KiBvdXRNaW5MdW1pbmFuY2UpOworCisgIHZvaWQgc2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KTsKKyAgdm9pZCBzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKTsKKyAgdm9pZCBzZXRDb2xvck1vZGUoRGlzcGxheSBkaXNwbGF5LCBDb2xvck1vZGUgbW9kZSk7CisgIHZvaWQgc2V0UG93ZXJNb2RlKERpc3BsYXkgZGlzcGxheSwgSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGUgbW9kZSk7CisgIHZvaWQgc2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwgYm9vbCBlbmFibGVkKTsKKworIHByaXZhdGU6CisgIHNwPElDb21wb3NlckNsaWVudD4gbUNsaWVudDsKKworICAvLyBLZWVwIHRyYWNrIG9mIGFsbCB2aXJ0dWFsIGRpc3BsYXlzIGFuZCBsYXllcnMuICBXaGVuIGEgdGVzdCBmYWlscyB3aXRoCisgIC8vIEFTU0VSVF8qLCB0aGUgZGVzdHJ1Y3RvciB3aWxsIGNsZWFuIHVwIHRoZSByZXNvdXJjZXMgZm9yIHRoZSB0ZXN0LgorICBzdHJ1Y3QgRGlzcGxheVJlc291cmNlIHsKKyAgICBEaXNwbGF5UmVzb3VyY2UoYm9vbCBpc1ZpcnR1YWxfKSA6IGlzVmlydHVhbChpc1ZpcnR1YWxfKSB7fQorCisgICAgYm9vbCBpc1ZpcnR1YWw7CisgICAgc3RkOjp1bm9yZGVyZWRfc2V0PExheWVyPiBsYXllcnM7CisgIH07CisgIHN0ZDo6dW5vcmRlcmVkX21hcDxEaXNwbGF5LCBEaXNwbGF5UmVzb3VyY2U+IG1EaXNwbGF5UmVzb3VyY2VzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHRlc3RzCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIGNvbXBvc2VyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBWVFNfSEFMX0dSQVBISUNTX0NPTVBPU0VSX1VUSUxTCmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NDb21wb3NlclYyXzFUYXJnZXRUZXN0LmNwcCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVjJfMVRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NzIyMmYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NDb21wb3NlclYyXzFUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDgzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiZ3JhcGhpY3NfY29tcG9zZXJfaGlkbF9oYWxfdGVzdCIKKworI2luY2x1ZGUgPElDb21wb3NlckNvbW1hbmRCdWZmZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgIlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuaCIKKyNpbmNsdWRlICJWdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oIgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8YXJyYXk+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgdGVzdHMgeworbmFtZXNwYWNlIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkNvbG9yTW9kZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpDb2xvclRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpEYXRhc3BhY2U7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6VHJhbnNmb3JtOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6dGVzdHM6OkdyYWxsb2M7Cit1c2luZyBHcmFsbG9jRXJyb3IgPSBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I7CisKKy8vIElDb21wb3NlckNhbGxiYWNrIHRvIGJlIGluc3RhbGxlZCB3aXRoIElDb21wb3NlckNsaWVudDo6cmVnaXN0ZXJDYWxsYmFjay4KK2NsYXNzIEdyYXBoaWNzQ29tcG9zZXJDYWxsYmFjayA6IHB1YmxpYyBJQ29tcG9zZXJDYWxsYmFjayB7CisgcHVibGljOgorICB2b2lkIHNldFZzeW5jQWxsb3dlZChib29sIGFsbG93ZWQpIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgIG1Wc3luY0FsbG93ZWQgPSBhbGxvd2VkOworICB9CisKKyAgc3RkOjp2ZWN0b3I8RGlzcGxheT4gZ2V0RGlzcGxheXMoKSBjb25zdCB7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICByZXR1cm4gc3RkOjp2ZWN0b3I8RGlzcGxheT4obURpc3BsYXlzLmJlZ2luKCksIG1EaXNwbGF5cy5lbmQoKSk7CisgIH0KKworICBpbnQgZ2V0SW52YWxpZEhvdHBsdWdDb3VudCgpIGNvbnN0IHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgIHJldHVybiBtSW52YWxpZEhvdHBsdWdDb3VudDsKKyAgfQorCisgIGludCBnZXRJbnZhbGlkUmVmcmVzaENvdW50KCkgY29uc3QgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgcmV0dXJuIG1JbnZhbGlkUmVmcmVzaENvdW50OworICB9CisKKyAgaW50IGdldEludmFsaWRWc3luY0NvdW50KCkgY29uc3QgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgcmV0dXJuIG1JbnZhbGlkVnN5bmNDb3VudDsKKyAgfQorCisgcHJpdmF0ZToKKyAgUmV0dXJuPHZvaWQ+IG9uSG90cGx1ZyhEaXNwbGF5IGRpc3BsYXksIENvbm5lY3Rpb24gY29ubmVjdGlvbikgb3ZlcnJpZGUgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisKKyAgICBpZiAoY29ubmVjdGlvbiA9PSBDb25uZWN0aW9uOjpDT05ORUNURUQpIHsKKyAgICAgIGlmICghbURpc3BsYXlzLmluc2VydChkaXNwbGF5KS5zZWNvbmQpIHsKKyAgICAgICAgbUludmFsaWRIb3RwbHVnQ291bnQrKzsKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGNvbm5lY3Rpb24gPT0gQ29ubmVjdGlvbjo6RElTQ09OTkVDVEVEKSB7CisgICAgICBpZiAoIW1EaXNwbGF5cy5lcmFzZShkaXNwbGF5KSkgeworICAgICAgICBtSW52YWxpZEhvdHBsdWdDb3VudCsrOworICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICBSZXR1cm48dm9pZD4gb25SZWZyZXNoKERpc3BsYXkgZGlzcGxheSkgb3ZlcnJpZGUgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisKKyAgICBpZiAobURpc3BsYXlzLmNvdW50KGRpc3BsYXkpID09IDApIHsKKyAgICAgIG1JbnZhbGlkUmVmcmVzaENvdW50Kys7CisgICAgfQorCisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIFJldHVybjx2b2lkPiBvblZzeW5jKERpc3BsYXkgZGlzcGxheSwgaW50NjRfdCkgb3ZlcnJpZGUgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisKKyAgICBpZiAoIW1Wc3luY0FsbG93ZWQgfHwgbURpc3BsYXlzLmNvdW50KGRpc3BsYXkpID09IDApIHsKKyAgICAgIG1JbnZhbGlkVnN5bmNDb3VudCsrOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICBtdXRhYmxlIHN0ZDo6bXV0ZXggbU11dGV4OworICAvLyB0aGUgc2V0IG9mIGFsbCBjdXJyZW50bHkgY29ubmVjdGVkIGRpc3BsYXlzCisgIHN0ZDo6dW5vcmRlcmVkX3NldDxEaXNwbGF5PiBtRGlzcGxheXM7CisgIC8vIHRydWUgb25seSB3aGVuIHZzeW5jIGlzIGVuYWJsZWQKKyAgYm9vbCBtVnN5bmNBbGxvd2VkID0gZmFsc2U7CisKKyAgLy8gdHJhY2sgaW52YWxpZCBjYWxsYmFja3MKKyAgaW50IG1JbnZhbGlkSG90cGx1Z0NvdW50ID0gMDsKKyAgaW50IG1JbnZhbGlkUmVmcmVzaENvdW50ID0gMDsKKyAgaW50IG1JbnZhbGlkVnN5bmNDb3VudCA9IDA7Cit9OworCitjbGFzcyBHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHByb3RlY3RlZDoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtQ29tcG9zZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbXBvc2VyPigpKTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtQ29tcG9zZXJDbGllbnQgPSBtQ29tcG9zZXItPmNyZWF0ZUNsaWVudCgpKTsKKworICAgIG1Db21wb3NlckNhbGxiYWNrID0gbmV3IEdyYXBoaWNzQ29tcG9zZXJDYWxsYmFjazsKKyAgICBtQ29tcG9zZXJDbGllbnQtPnJlZ2lzdGVyQ2FsbGJhY2sobUNvbXBvc2VyQ2FsbGJhY2spOworCisgICAgLy8gYXNzdW1lIHRoZSBmaXJzdCBkaXNwbGF5IGlzIHByaW1hcnkgYW5kIGlzIG5ldmVyIHJlbW92ZWQKKyAgICBtUHJpbWFyeURpc3BsYXkgPSB3YWl0Rm9yRmlyc3REaXNwbGF5KCk7CisgIH0KKworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgIGlmIChtQ29tcG9zZXJDYWxsYmFjayAhPSBudWxscHRyKSB7CisgICAgICBFWFBFQ1RfRVEoMCwgbUNvbXBvc2VyQ2FsbGJhY2stPmdldEludmFsaWRIb3RwbHVnQ291bnQoKSk7CisgICAgICBFWFBFQ1RfRVEoMCwgbUNvbXBvc2VyQ2FsbGJhY2stPmdldEludmFsaWRSZWZyZXNoQ291bnQoKSk7CisgICAgICBFWFBFQ1RfRVEoMCwgbUNvbXBvc2VyQ2FsbGJhY2stPmdldEludmFsaWRWc3luY0NvdW50KCkpOworICAgIH0KKyAgfQorCisgIC8vIHVzZSB0aGUgc2xvdCBjb3VudCB1c3VhbGx5IHNldCBieSBTRgorICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IGtCdWZmZXJTbG90Q291bnQgPSA2NDsKKworICBzdGQ6OnVuaXF1ZV9wdHI8Q29tcG9zZXI+IG1Db21wb3NlcjsKKyAgc3RkOjp1bmlxdWVfcHRyPENvbXBvc2VyQ2xpZW50PiBtQ29tcG9zZXJDbGllbnQ7CisgIHNwPEdyYXBoaWNzQ29tcG9zZXJDYWxsYmFjaz4gbUNvbXBvc2VyQ2FsbGJhY2s7CisgIC8vIHRoZSBmaXJzdCBkaXNwbGF5IGFuZCBpcyBhc3N1bWVkIG5ldmVyIHRvIGJlIHJlbW92ZWQKKyAgRGlzcGxheSBtUHJpbWFyeURpc3BsYXk7CisKKyBwcml2YXRlOgorICBEaXNwbGF5IHdhaXRGb3JGaXJzdERpc3BsYXkoKSB7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgIHN0ZDo6dmVjdG9yPERpc3BsYXk+IGRpc3BsYXlzID0gbUNvbXBvc2VyQ2FsbGJhY2stPmdldERpc3BsYXlzKCk7CisgICAgICBpZiAoZGlzcGxheXMuZW1wdHkoKSkgeworICAgICAgICB1c2xlZXAoNSAqIDEwMDApOworICAgICAgICBjb250aW51ZTsKKyAgICAgIH0KKworICAgICAgcmV0dXJuIGRpc3BsYXlzWzBdOworICAgIH0KKyAgfQorfTsKKworLyoqCisgKiBUZXN0IElDb21wb3Nlcjo6Z2V0Q2FwYWJpbGl0aWVzLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXI6OmdldENhcGFiaWxpdGllcyByZXR1cm5zIG5vIGludmFsaWQgY2FwYWJpbGl0aWVzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBHZXRDYXBhYmlsaXRpZXMpIHsKKyAgYXV0byBjYXBhYmlsaXRpZXMgPSBtQ29tcG9zZXItPmdldENhcGFiaWxpdGllcygpOworICBBU1NFUlRfRVEoY2FwYWJpbGl0aWVzLmVuZCgpLAorICAgICAgICAgICAgc3RkOjpmaW5kKGNhcGFiaWxpdGllcy5iZWdpbigpLCBjYXBhYmlsaXRpZXMuZW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgSUNvbXBvc2VyOjpDYXBhYmlsaXR5OjpJTlZBTElEKSk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXI6OmR1bXBEZWJ1Z0luZm8uCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIER1bXBEZWJ1Z0luZm8pIHsgbUNvbXBvc2VyLT5kdW1wRGVidWdJbmZvKCk7IH0KKworLyoqCisgKiBUZXN0IElDb21wb3Nlcjo6Y3JlYXRlQ2xpZW50LgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQgaXMgYSBzaW5nbGV0b24uCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIENyZWF0ZUNsaWVudFNpbmdsZXRvbikgeworICBtQ29tcG9zZXItPmdldFJhdygpLT5jcmVhdGVDbGllbnQoWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJikgeworICAgIEVYUEVDVF9FUShFcnJvcjo6Tk9fUkVTT1VSQ0VTLCB0bXBFcnJvcik7CisgIH0pOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpjcmVhdGVWaXJ0dWFsRGlzcGxheSBhbmQKKyAqIElDb21wb3NlckNsaWVudDo6ZGVzdHJveVZpcnR1YWxEaXNwbGF5LgorICoKKyAqIFRlc3QgdGhhdCB2aXJ0dWFsIGRpc3BsYXlzIGNhbiBiZSBjcmVhdGVkIGFuZCBoYXMgdGhlIGNvcnJlY3QgZGlzcGxheSB0eXBlLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBDcmVhdGVWaXJ0dWFsRGlzcGxheSkgeworICBpZiAobUNvbXBvc2VyQ2xpZW50LT5nZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgPT0gMCkgeworICAgIEdURVNUX1NVQ0NFRUQoKSA8PCAibm8gdmlydHVhbCBkaXNwbGF5IHN1cHBvcnQiOworICAgIHJldHVybjsKKyAgfQorCisgIERpc3BsYXkgZGlzcGxheTsKKyAgUGl4ZWxGb3JtYXQgZm9ybWF0OworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShkaXNwbGF5ID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVWaXJ0dWFsRGlzcGxheSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0LCA2NCwgUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQnVmZmVyU2xvdENvdW50LCAmZm9ybWF0KSk7CisKKyAgLy8gdGVzdCBkaXNwbGF5IHR5cGUKKyAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSB0eXBlID0gbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5VHlwZShkaXNwbGF5KTsKKyAgRVhQRUNUX0VRKElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGU6OlZJUlRVQUwsIHR5cGUpOworCisgIG1Db21wb3NlckNsaWVudC0+ZGVzdHJveVZpcnR1YWxEaXNwbGF5KGRpc3BsYXkpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpjcmVhdGVMYXllciBhbmQgSUNvbXBvc2VyQ2xpZW50OjpkZXN0cm95TGF5ZXIuCisgKgorICogVGVzdCB0aGF0IGxheWVycyBjYW4gYmUgY3JlYXRlZCBhbmQgZGVzdHJveWVkLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBDcmVhdGVMYXllcikgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbUNvbXBvc2VyQ2xpZW50LT5kZXN0cm95TGF5ZXIobVByaW1hcnlEaXNwbGF5LCBsYXllcik7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlOYW1lLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBHZXREaXNwbGF5TmFtZSkgeworICBtQ29tcG9zZXJDbGllbnQtPmdldERpc3BsYXlOYW1lKG1QcmltYXJ5RGlzcGxheSk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlUeXBlLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlUeXBlIHJldHVybnMgdGhlIGNvcnJlY3QgZGlzcGxheSB0eXBlCisgKiBmb3IgdGhlIHByaW1hcnkgZGlzcGxheS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgR2V0RGlzcGxheVR5cGUpIHsKKyAgQVNTRVJUX0VRKElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGU6OlBIWVNJQ0FMLAorICAgICAgICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5VHlwZShtUHJpbWFyeURpc3BsYXkpKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydC4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpnZXRDbGllbnRUYXJnZXRTdXBwb3J0IHJldHVybnMgdHJ1ZSBmb3IgdGhlCisgKiByZXF1aXJlZCBjbGllbnQgdGFyZ2V0cy4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgR2V0Q2xpZW50VGFyZ2V0U3VwcG9ydCkgeworICBzdGQ6OnZlY3RvcjxDb25maWc+IGNvbmZpZ3MgPQorICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5Q29uZmlncyhtUHJpbWFyeURpc3BsYXkpOworICBmb3IgKGF1dG8gY29uZmlnIDogY29uZmlncykgeworICAgIGludDMyX3Qgd2lkdGggPSBtQ29tcG9zZXJDbGllbnQtPmdldERpc3BsYXlBdHRyaWJ1dGUoCisgICAgICAgIG1QcmltYXJ5RGlzcGxheSwgY29uZmlnLCBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZTo6V0lEVEgpOworICAgIGludDMyX3QgaGVpZ2h0ID0gbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5QXR0cmlidXRlKAorICAgICAgICBtUHJpbWFyeURpc3BsYXksIGNvbmZpZywgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OkhFSUdIVCk7CisgICAgQVNTRVJUX0xUKDAsIHdpZHRoKTsKKyAgICBBU1NFUlRfTFQoMCwgaGVpZ2h0KTsKKworICAgIG1Db21wb3NlckNsaWVudC0+c2V0QWN0aXZlQ29uZmlnKG1QcmltYXJ5RGlzcGxheSwgY29uZmlnKTsKKworICAgIEFTU0VSVF9UUlVFKG1Db21wb3NlckNsaWVudC0+Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydCgKKyAgICAgICAgbVByaW1hcnlEaXNwbGF5LCB3aWR0aCwgaGVpZ2h0LCBQaXhlbEZvcm1hdDo6UkdCQV84ODg4LAorICAgICAgICBEYXRhc3BhY2U6OlVOS05PV04pKTsKKyAgfQorfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5QXR0cmlidXRlLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlBdHRyaWJ1dGUgc3VjY2VlZHMgZm9yIHRoZSByZXF1aXJlZAorICogZm9ybWF0cywgYW5kIHN1Y2NlZWRzIG9yIGZhaWxzIGNvcnJlY3RseSBmb3Igb3B0aW9uYWwgYXR0cmlidXRlcy4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgR2V0RGlzcGxheUF0dHJpYnV0ZSkgeworICBzdGQ6OnZlY3RvcjxDb25maWc+IGNvbmZpZ3MgPQorICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5Q29uZmlncyhtUHJpbWFyeURpc3BsYXkpOworICBmb3IgKGF1dG8gY29uZmlnIDogY29uZmlncykgeworICAgIGNvbnN0IHN0ZDo6YXJyYXk8SUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGUsIDM+IHJlcXVpcmVkQXR0cmlidXRlcyA9IHt7CisgICAgICAgIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlOjpXSURUSCwgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OkhFSUdIVCwKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OlZTWU5DX1BFUklPRCwKKyAgICB9fTsKKyAgICBmb3IgKGF1dG8gYXR0cmlidXRlIDogcmVxdWlyZWRBdHRyaWJ1dGVzKSB7CisgICAgICBtQ29tcG9zZXJDbGllbnQtPmdldERpc3BsYXlBdHRyaWJ1dGUobVByaW1hcnlEaXNwbGF5LCBjb25maWcsIGF0dHJpYnV0ZSk7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjphcnJheTxJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZSwgMj4gb3B0aW9uYWxBdHRyaWJ1dGVzID0ge3sKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OkRQSV9YLCBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZTo6RFBJX1ksCisgICAgfX07CisgICAgZm9yIChhdXRvIGF0dHJpYnV0ZSA6IG9wdGlvbmFsQXR0cmlidXRlcykgeworICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXRSYXcoKS0+Z2V0RGlzcGxheUF0dHJpYnV0ZSgKKyAgICAgICAgICBtUHJpbWFyeURpc3BsYXksIGNvbmZpZywgYXR0cmlidXRlLAorICAgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRtcEVycm9yID09IEVycm9yOjpOT05FIHx8CisgICAgICAgICAgICAgICAgICAgICAgICB0bXBFcnJvciA9PSBFcnJvcjo6VU5TVVBQT1JURUQpOworICAgICAgICAgIH0pOworICAgIH0KKyAgfQorfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpnZXRIZHJDYXBhYmlsaXRpZXMuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIEdldEhkckNhcGFiaWxpdGllcykgeworICBmbG9hdCBtYXhMdW1pbmFuY2U7CisgIGZsb2F0IG1heEF2ZXJhZ2VMdW1pbmFuY2U7CisgIGZsb2F0IG1pbkx1bWluYW5jZTsKKyAgbUNvbXBvc2VyQ2xpZW50LT5nZXRIZHJDYXBhYmlsaXRpZXMobVByaW1hcnlEaXNwbGF5LCAmbWF4THVtaW5hbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWF4QXZlcmFnZUx1bWluYW5jZSwgJm1pbkx1bWluYW5jZSk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OnNldENsaWVudFRhcmdldFNsb3RDb3VudC4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgU2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KSB7CisgIG1Db21wb3NlckNsaWVudC0+c2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OnNldEFjdGl2ZUNvbmZpZy4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpzZXRBY3RpdmVDb25maWcgc3VjY2VlZHMgZm9yIGFsbCBkaXNwbGF5CisgKiBjb25maWdzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBTZXRBY3RpdmVDb25maWcpIHsKKyAgc3RkOjp2ZWN0b3I8Q29uZmlnPiBjb25maWdzID0KKyAgICAgIG1Db21wb3NlckNsaWVudC0+Z2V0RGlzcGxheUNvbmZpZ3MobVByaW1hcnlEaXNwbGF5KTsKKyAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbmZpZ3MpIHsKKyAgICBtQ29tcG9zZXJDbGllbnQtPnNldEFjdGl2ZUNvbmZpZyhtUHJpbWFyeURpc3BsYXksIGNvbmZpZyk7CisgICAgQVNTRVJUX0VRKGNvbmZpZywgbUNvbXBvc2VyQ2xpZW50LT5nZXRBY3RpdmVDb25maWcobVByaW1hcnlEaXNwbGF5KSk7CisgIH0KK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6c2V0Q29sb3JNb2RlLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQ6OnNldENvbG9yTW9kZSBzdWNjZWVkcyBmb3IgYWxsIGNvbG9yIG1vZGVzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBTZXRDb2xvck1vZGUpIHsKKyAgc3RkOjp2ZWN0b3I8Q29sb3JNb2RlPiBtb2RlcyA9CisgICAgICBtQ29tcG9zZXJDbGllbnQtPmdldENvbG9yTW9kZXMobVByaW1hcnlEaXNwbGF5KTsKKyAgZm9yIChhdXRvIG1vZGUgOiBtb2RlcykgeworICAgIG1Db21wb3NlckNsaWVudC0+c2V0Q29sb3JNb2RlKG1QcmltYXJ5RGlzcGxheSwgbW9kZSk7CisgIH0KK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6c2V0UG93ZXJNb2RlLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQ6OnNldFBvd2VyTW9kZSBzdWNjZWVkcyBmb3IgYWxsIHBvd2VyIG1vZGVzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBTZXRQb3dlck1vZGUpIHsKKyAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGU+IG1vZGVzOworICBtb2Rlcy5wdXNoX2JhY2soSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGU6Ok9GRik7CisKKyAgaWYgKG1Db21wb3NlckNsaWVudC0+Z2V0RG96ZVN1cHBvcnQobVByaW1hcnlEaXNwbGF5KSkgeworICAgIG1vZGVzLnB1c2hfYmFjayhJQ29tcG9zZXJDbGllbnQ6OlBvd2VyTW9kZTo6RE9aRSk7CisgICAgbW9kZXMucHVzaF9iYWNrKElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlOjpET1pFX1NVU1BFTkQpOworICB9CisKKyAgLy8gcHVzaCBPTiBsYXN0CisgIG1vZGVzLnB1c2hfYmFjayhJQ29tcG9zZXJDbGllbnQ6OlBvd2VyTW9kZTo6T04pOworCisgIGZvciAoYXV0byBtb2RlIDogbW9kZXMpIHsKKyAgICBtQ29tcG9zZXJDbGllbnQtPnNldFBvd2VyTW9kZShtUHJpbWFyeURpc3BsYXksIG1vZGUpOworICB9Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OnNldFZzeW5jRW5hYmxlZC4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpzZXRWc3luY0VuYWJsZWQgc3VjY2VlZHMgYW5kIHRoZXJlIGlzIG5vCisgKiBzcHVyaW91cyB2c3luYyBldmVudHMuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIFNldFZzeW5jRW5hYmxlZCkgeworICBtQ29tcG9zZXJDYWxsYmFjay0+c2V0VnN5bmNBbGxvd2VkKHRydWUpOworCisgIG1Db21wb3NlckNsaWVudC0+c2V0VnN5bmNFbmFibGVkKG1QcmltYXJ5RGlzcGxheSwgdHJ1ZSk7CisgIHVzbGVlcCg2MCAqIDEwMDApOworICBtQ29tcG9zZXJDbGllbnQtPnNldFZzeW5jRW5hYmxlZChtUHJpbWFyeURpc3BsYXksIGZhbHNlKTsKKworICBtQ29tcG9zZXJDYWxsYmFjay0+c2V0VnN5bmNBbGxvd2VkKGZhbHNlKTsKK30KKworLy8gVGVzdHMgZm9yIElDb21wb3NlckNsaWVudDo6Q29tbWFuZC4KK2NsYXNzIEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QgOiBwdWJsaWMgR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0IHsKKyBwcm90ZWN0ZWQ6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0OjpTZXRVcCgpKTsKKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jID0gc3RkOjptYWtlX3VuaXF1ZTxHcmFsbG9jPigpKTsKKworICAgIG1Xcml0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbW1hbmRXcml0ZXJCYXNlPigxMDI0KTsKKyAgICBtUmVhZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxDb21tYW5kUmVhZGVyPigpOworICB9CisKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShHcmFwaGljc0NvbXBvc2VySGlkbFRlc3Q6OlRlYXJEb3duKCkpOworICB9CisKKyAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBhbGxvY2F0ZSgpIHsKKyAgICAgIElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvIGluZm97fTsKKyAgICAgIGluZm8ud2lkdGggPSA2NDsKKyAgICAgIGluZm8uaGVpZ2h0ID0gNjQ7CisgICAgICBpbmZvLmxheWVyQ291bnQgPSAxOworICAgICAgaW5mby5mb3JtYXQgPSBQaXhlbEZvcm1hdDo6UkdCQV84ODg4OworICAgICAgaW5mby51c2FnZSA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX09GVEVOIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyVXNhZ2U6OkNQVV9SRUFEX09GVEVOKTsKKworICAgICAgcmV0dXJuIG1HcmFsbG9jLT5hbGxvY2F0ZShpbmZvKTsKKyAgfQorCisgIHZvaWQgZXhlY3V0ZSgpIHsKKyAgICBib29sIHF1ZXVlQ2hhbmdlZCA9IGZhbHNlOworICAgIHVpbnQzMl90IGNvbW1hbmRMZW5ndGggPSAwOworICAgIGhpZGxfdmVjPGhpZGxfaGFuZGxlPiBjb21tYW5kSGFuZGxlczsKKyAgICBBU1NFUlRfVFJVRSgKKyAgICAgICAgbVdyaXRlci0+d3JpdGVRdWV1ZSgmcXVldWVDaGFuZ2VkLCAmY29tbWFuZExlbmd0aCwgJmNvbW1hbmRIYW5kbGVzKSk7CisKKyAgICBpZiAocXVldWVDaGFuZ2VkKSB7CisgICAgICBhdXRvIHJldCA9IG1Db21wb3NlckNsaWVudC0+Z2V0UmF3KCktPnNldElucHV0Q29tbWFuZFF1ZXVlKAorICAgICAgICAgICptV3JpdGVyLT5nZXRNUURlc2NyaXB0b3IoKSk7CisgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHN0YXRpY19jYXN0PEVycm9yPihyZXQpKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtQ29tcG9zZXJDbGllbnQtPmdldFJhdygpLT5leGVjdXRlQ29tbWFuZHMoCisgICAgICAgIGNvbW1hbmRMZW5ndGgsIGNvbW1hbmRIYW5kbGVzLAorICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcE91dFF1ZXVlQ2hhbmdlZCwKKyAgICAgICAgICAgIGNvbnN0IGF1dG8mIHRtcE91dExlbmd0aCwgY29uc3QgYXV0byYgdG1wT3V0SGFuZGxlcykgeworICAgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpOworCisgICAgICAgICAgaWYgKHRtcE91dFF1ZXVlQ2hhbmdlZCkgeworICAgICAgICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXRSYXcoKS0+Z2V0T3V0cHV0Q29tbWFuZFF1ZXVlKAorICAgICAgICAgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wRGVzY3JpcHRvcikgeworICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcik7CisgICAgICAgICAgICAgICAgICBtUmVhZGVyLT5zZXRNUURlc2NyaXB0b3IodG1wRGVzY3JpcHRvcik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfQorCisgICAgICAgICAgQVNTRVJUX1RSVUUobVJlYWRlci0+cmVhZFF1ZXVlKHRtcE91dExlbmd0aCwgdG1wT3V0SGFuZGxlcykpOworICAgICAgICAgIG1SZWFkZXItPnBhcnNlKCk7CisgICAgICAgIH0pOworICB9CisKKyAgLy8gQSBjb21tYW5kIHBhcnNlciB0aGF0IGNoZWNrcyB0aGF0IG5vIGVycm9yIG5vciB1bmV4cGVjdGVkIGNvbW1hbmRzIGFyZQorICAvLyByZXR1cm5lZC4KKyAgY2xhc3MgQ29tbWFuZFJlYWRlciA6IHB1YmxpYyBDb21tYW5kUmVhZGVyQmFzZSB7CisgICBwdWJsaWM6CisgICAgLy8gUGFyc2UgYWxsIGNvbW1hbmRzIGluIHRoZSByZXR1cm4gY29tbWFuZCBxdWV1ZS4gIENhbGwgR1RFU1RfRkFJTCgpIGZvcgorICAgIC8vIHVuZXhwZWN0ZWQgZXJyb3JzIG9yIGNvbW1hbmRzLgorICAgIHZvaWQgcGFyc2UoKSB7CisgICAgICB3aGlsZSAoIWlzRW1wdHkoKSkgeworICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQgY29tbWFuZDsKKyAgICAgICAgdWludDE2X3QgbGVuZ3RoOworICAgICAgICBBU1NFUlRfVFJVRShiZWdpbkNvbW1hbmQoJmNvbW1hbmQsICZsZW5ndGgpKTsKKworICAgICAgICBzd2l0Y2ggKGNvbW1hbmQpIHsKKyAgICAgICAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0VSUk9SOiB7CisgICAgICAgICAgICBBU1NFUlRfRVEoMiwgbGVuZ3RoKTsKKyAgICAgICAgICAgIGF1dG8gbG9jID0gcmVhZCgpOworICAgICAgICAgICAgYXV0byBlcnIgPSByZWFkU2lnbmVkKCk7CisgICAgICAgICAgICBHVEVTVF9GQUlMKCkgPDwgInVuZXhwZWN0ZWQgZXJyb3IgIiA8PCBlcnIgPDwgIiBhdCBsb2NhdGlvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgPDwgbG9jOworICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFTEVDVF9ESVNQTEFZOgorICAgICAgICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfQ0hBTkdFRF9DT01QT1NJVElPTl9UWVBFUzoKKyAgICAgICAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0RJU1BMQVlfUkVRVUVTVFM6CisgICAgICAgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9QUkVTRU5UX0ZFTkNFOgorICAgICAgICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfUkVMRUFTRV9GRU5DRVM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgR1RFU1RfRkFJTCgpIDw8ICJ1bmV4cGVjdGVkIHJldHVybiBjb21tYW5kICIgPDwgc3RkOjpoZXgKKyAgICAgICAgICAgICAgICAgICAgICAgICA8PCBzdGF0aWNfY2FzdDxpbnQ+KGNvbW1hbmQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgICB9CisgICAgfQorICB9OworCisgIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kV3JpdGVyQmFzZT4gbVdyaXRlcjsKKyAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRSZWFkZXI+IG1SZWFkZXI7CisKKyBwcml2YXRlOgorICBzdGQ6OnVuaXF1ZV9wdHI8R3JhbGxvYz4gbUdyYWxsb2M7Cit9OworCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfQ09MT1JfVFJBTlNGT1JNLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0NPTE9SX1RSQU5TRk9STSkgeworICBjb25zdCBzdGQ6OmFycmF5PGZsb2F0LCAxNj4gaWRlbnRpdHkgPSB7eworICAgICAgMS4wZiwgMC4wZiwgMC4wZiwgMC4wZiwgMC4wZiwgMS4wZiwgMC4wZiwgMC4wZiwgMC4wZiwgMC4wZiwgMS4wZiwgMC4wZiwKKyAgICAgIDAuMGYsIDAuMGYsIDAuMGYsIDEuMGYsCisgIH19OworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2V0Q29sb3JUcmFuc2Zvcm0oaWRlbnRpdHkuZGF0YSgpLCBDb2xvclRyYW5zZm9ybTo6SURFTlRJVFkpOworCisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0NMSUVOVF9UQVJHRVQuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfQ0xJRU5UX1RBUkdFVCkgeworICBtQ29tcG9zZXJDbGllbnQtPnNldENsaWVudFRhcmdldFNsb3RDb3VudChtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2V0Q2xpZW50VGFyZ2V0KDAsIG51bGxwdHIsIC0xLCBEYXRhc3BhY2U6OlVOS05PV04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KCkpOworCisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX09VVFBVVF9CVUZGRVIuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfT1VUUFVUX0JVRkZFUikgeworICBpZiAobUNvbXBvc2VyQ2xpZW50LT5nZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgPT0gMCkgeworICAgIEdURVNUX1NVQ0NFRUQoKSA8PCAibm8gdmlydHVhbCBkaXNwbGF5IHN1cHBvcnQiOworICAgIHJldHVybjsKKyAgfQorCisgIERpc3BsYXkgZGlzcGxheTsKKyAgUGl4ZWxGb3JtYXQgZm9ybWF0OworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShkaXNwbGF5ID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVWaXJ0dWFsRGlzcGxheSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0LCA2NCwgUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQnVmZmVyU2xvdENvdW50LCAmZm9ybWF0KSk7CisKKyAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGU7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGhhbmRsZSA9IGFsbG9jYXRlKCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkoZGlzcGxheSk7CisgIG1Xcml0ZXItPnNldE91dHB1dEJ1ZmZlcigwLCBoYW5kbGUsIC0xKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpWQUxJREFURV9ESVNQTEFZLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgVkFMSURBVEVfRElTUExBWSkgeworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnZhbGlkYXRlRGlzcGxheSgpOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OkFDQ0VQVF9ESVNQTEFZX0NIQU5HRVMuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBBQ0NFUFRfRElTUExBWV9DSEFOR0VTKSB7CisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+dmFsaWRhdGVEaXNwbGF5KCk7CisgIG1Xcml0ZXItPmFjY2VwdERpc3BsYXlDaGFuZ2VzKCk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6UFJFU0VOVF9ESVNQTEFZLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgUFJFU0VOVF9ESVNQTEFZKSB7CisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+dmFsaWRhdGVEaXNwbGF5KCk7CisgIG1Xcml0ZXItPnByZXNlbnREaXNwbGF5KCk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0NVUlNPUl9QT1NJVElPTi4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9DVVJTT1JfUE9TSVRJT04pIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllckN1cnNvclBvc2l0aW9uKDEsIDEpOworICBtV3JpdGVyLT5zZXRMYXllckN1cnNvclBvc2l0aW9uKDAsIDApOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9CVUZGRVIuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfQlVGRkVSKSB7CisgIGF1dG8gaGFuZGxlID0gYWxsb2NhdGUoKTsKKyAgQVNTRVJUX05FKG51bGxwdHIsIGhhbmRsZSk7CisKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllckJ1ZmZlcigwLCBoYW5kbGUsIC0xKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UpIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIElDb21wb3NlckNsaWVudDo6UmVjdCBlbXB0eXswLCAwLCAwLCAwfTsKKyAgSUNvbXBvc2VyQ2xpZW50OjpSZWN0IHVuaXR7MCwgMCwgMSwgMX07CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyU3VyZmFjZURhbWFnZShzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KDEsIGVtcHR5KSk7CisgIG1Xcml0ZXItPnNldExheWVyU3VyZmFjZURhbWFnZShzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KDEsIHVuaXQpKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJTdXJmYWNlRGFtYWdlKHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4oKSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0JMRU5EX01PREUuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfQkxFTkRfTU9ERSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyQmxlbmRNb2RlKElDb21wb3NlckNsaWVudDo6QmxlbmRNb2RlOjpOT05FKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJCbGVuZE1vZGUoSUNvbXBvc2VyQ2xpZW50OjpCbGVuZE1vZGU6OlBSRU1VTFRJUExJRUQpOworICBtV3JpdGVyLT5zZXRMYXllckJsZW5kTW9kZShJQ29tcG9zZXJDbGllbnQ6OkJsZW5kTW9kZTo6Q09WRVJBR0UpOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9DT0xPUi4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9DT0xPUikgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyQ29sb3IoSUNvbXBvc2VyQ2xpZW50OjpDb2xvcnsweGZmLCAweGZmLCAweGZmLCAweGZmfSk7CisgIG1Xcml0ZXItPnNldExheWVyQ29sb3IoSUNvbXBvc2VyQ2xpZW50OjpDb2xvcnswLCAwLCAwLCAwfSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEUuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfQ09NUE9TSVRJT05fVFlQRSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb246OkNMSUVOVCk7CisgIG1Xcml0ZXItPnNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb246OkRFVklDRSk7CisgIG1Xcml0ZXItPnNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb246OlNPTElEX0NPTE9SKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJDb21wb3NpdGlvblR5cGUoSUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbjo6Q1VSU09SKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfREFUQVNQQUNFLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX0RBVEFTUEFDRSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyRGF0YXNwYWNlKERhdGFzcGFjZTo6VU5LTk9XTik7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfRElTUExBWV9GUkFNRSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyRGlzcGxheUZyYW1lKElDb21wb3NlckNsaWVudDo6UmVjdHswLCAwLCAxLCAxfSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1BMQU5FX0FMUEhBLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX1BMQU5FX0FMUEhBKSB7CisgIExheWVyIGxheWVyOworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgIGxheWVyID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVMYXllcihtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpKTsKKworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnNlbGVjdExheWVyKGxheWVyKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJQbGFuZUFscGhhKDAuMGYpOworICBtV3JpdGVyLT5zZXRMYXllclBsYW5lQWxwaGEoMS4wZik7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1NJREVCQU5EX1NUUkVBTS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9TSURFQkFORF9TVFJFQU0pIHsKKyAgaWYgKCFtQ29tcG9zZXItPmhhc0NhcGFiaWxpdHkoSUNvbXBvc2VyOjpDYXBhYmlsaXR5OjpTSURFQkFORF9TVFJFQU0pKSB7CisgICAgR1RFU1RfU1VDQ0VFRCgpIDw8ICJubyBzaWRlYmFuZCBzdHJlYW0gc3VwcG9ydCI7CisgICAgcmV0dXJuOworICB9CisKKyAgYXV0byBoYW5kbGUgPSBhbGxvY2F0ZSgpOworICBBU1NFUlRfTkUobnVsbHB0ciwgaGFuZGxlKTsKKworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyU2lkZWJhbmRTdHJlYW0oaGFuZGxlKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU09VUkNFX0NST1AuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfU09VUkNFX0NST1ApIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllclNvdXJjZUNyb3AoSUNvbXBvc2VyQ2xpZW50OjpGUmVjdHswLjBmLCAwLjBmLCAxLjBmLCAxLjBmfSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1RSQU5TRk9STS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9UUkFOU0ZPUk0pIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllclRyYW5zZm9ybShzdGF0aWNfY2FzdDxUcmFuc2Zvcm0+KDApKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtOjpGTElQX0gpOworICBtV3JpdGVyLT5zZXRMYXllclRyYW5zZm9ybShUcmFuc2Zvcm06OkZMSVBfVik7CisgIG1Xcml0ZXItPnNldExheWVyVHJhbnNmb3JtKFRyYW5zZm9ybTo6Uk9UXzkwKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtOjpST1RfMTgwKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtOjpST1RfMjcwKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oCisgICAgICBzdGF0aWNfY2FzdDxUcmFuc2Zvcm0+KFRyYW5zZm9ybTo6RkxJUF9IIHwgVHJhbnNmb3JtOjpST1RfOTApKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oCisgICAgICBzdGF0aWNfY2FzdDxUcmFuc2Zvcm0+KFRyYW5zZm9ybTo6RkxJUF9WIHwgVHJhbnNmb3JtOjpST1RfOTApKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfVklTSUJMRV9SRUdJT04uCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfVklTSUJMRV9SRUdJT04pIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIElDb21wb3NlckNsaWVudDo6UmVjdCBlbXB0eXswLCAwLCAwLCAwfTsKKyAgSUNvbXBvc2VyQ2xpZW50OjpSZWN0IHVuaXR7MCwgMCwgMSwgMX07CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyVmlzaWJsZVJlZ2lvbihzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KDEsIGVtcHR5KSk7CisgIG1Xcml0ZXItPnNldExheWVyVmlzaWJsZVJlZ2lvbihzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KDEsIHVuaXQpKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJWaXNpYmxlUmVnaW9uKHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4oKSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1pfT1JERVIuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfWl9PUkRFUikgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyWk9yZGVyKDEwKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJaT3JkZXIoMCk7CisgIGV4ZWN1dGUoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGFub255bW91cworfSAgLy8gbmFtZXNwYWNlIHRlc3RzCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIGNvbXBvc2VyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworCisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvQW5kcm9pZC5tayBiL2dyYXBoaWNzL2NvbXBvc2VyL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvQW5kcm9pZC5icCBiL2dyYXBoaWNzL21hcHBlci8yLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDhkNThmCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjUgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklNYXBwZXIuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL01hcHBlckFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0lId01hcHBlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9Cbkh3TWFwcGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0JwSHdNYXBwZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvQnNNYXBwZXIuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC9BbmRyb2lkLm1rIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvSU1hcHBlci5oYWwgYi9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlZTIwNmIKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaGFsCkBAIC0wLDAgKzEsMjMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA7CisKK2ludGVyZmFjZSBJTWFwcGVyIHsKKyAgICBzdHJ1Y3QgQnVmZmVyRGVzY3JpcHRvckluZm8geworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHdpZHRoIHNwZWNpZmllcyBob3cgbWFueSBjb2x1bW5zIG9mIHBpeGVscyBtdXN0IGJlIGluIHRoZQorICAgICAgICAgKiBhbGxvY2F0ZWQgYnVmZmVyLCBidXQgZG9lcyBub3QgbmVjZXNzYXJpbHkgcmVwcmVzZW50IHRoZSBvZmZzZXQgaW4KKyAgICAgICAgICogY29sdW1ucyBiZXR3ZWVuIHRoZSBzYW1lIGNvbHVtbiBpbiBhZGphY2VudCByb3dzLiBUaGUgcm93cyBtYXkgYmUKKyAgICAgICAgICogcGFkZGVkLgorICAgICAgICAgKi8KKyAgICAgICAgdWludDMyX3Qgd2lkdGg7CisKKyAgICAgICAvKioKKyAgICAgICAgKiBUaGUgaGVpZ2h0IHNwZWNpZmllcyBob3cgbWFueSByb3dzIG9mIHBpeGVscyBtdXN0IGJlIGluIHRoZQorICAgICAgICAqIGFsbG9jYXRlZCBidWZmZXIuCisgICAgICAgICovCisgICAgICAgIHVpbnQzMl90IGhlaWdodDsKKworICAgICAgIC8qKgorICAgICAgICAqIFRoZSBudW1iZXIgb2YgaW1hZ2UgbGF5ZXJzIHRoYXQgbXVzdCBiZSBpbiB0aGUgYWxsb2NhdGVkIGJ1ZmZlci4KKyAgICAgICAgKi8KKyAgICAgICAgdWludDMyX3QgbGF5ZXJDb3VudDsKKworICAgICAgICAvKiogQnVmZmVyIHBpeGVsIGZvcm1hdC4gKi8KKyAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBCdWZmZXIgdXNhZ2UgbWFzazsgdmFsaWQgZmxhZ3MgY2FuIGJlIGZvdW5kIGluIHRoZSBkZWZpbml0aW9uIG9mCisgICAgICAgICAqIEJ1ZmZlclVzYWdlLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8QnVmZmVyVXNhZ2U+IHVzYWdlOworICAgIH07CisKKyAgICBzdHJ1Y3QgUmVjdCB7CisgICAgICAgIGludDMyX3QgbGVmdDsKKyAgICAgICAgaW50MzJfdCB0b3A7CisgICAgICAgIGludDMyX3Qgd2lkdGg7CisgICAgICAgIGludDMyX3QgaGVpZ2h0OworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgYnVmZmVyIGRlc2NyaXB0b3IuIFRoZSBkZXNjcmlwdG9yIGNhbiBiZSB1c2VkIHdpdGggSUFsbG9jYXRvcgorICAgICAqIHRvIGFsbG9jYXRlIGJ1ZmZlcnMuCisgICAgICoKKyAgICAgKiBTaW5jZSB0aGUgYnVmZmVyIGRlc2NyaXB0b3IgZnVsbHkgZGVzY3JpYmVzIGEgYnVmZmVyLCBhbnkgZGV2aWNlCisgICAgICogZGVwZW5kZW50IG9yIGRldmljZSBpbmRlcGVuZGVudCBjaGVja3MgbXVzdCBiZSBwZXJmb3JtZWQgaGVyZSB3aGVuZXZlcgorICAgICAqIHBvc3NpYmxlLiBTcGVjaWZpY2FsbHksIHdoZW4gbGF5ZXJlZCBidWZmZXJzIGFyZSBub3Qgc3VwcG9ydGVkLCB0aGlzCisgICAgICogZnVuY3Rpb24gbXVzdCByZXR1cm4gVU5TVVBQT1JURUQgaWYgbGF5ZXJDb3VudCBpcyBncmVhdCB0aGFuIDEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRvckluZm8gc3BlY2lmaWVzIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBkZXNjcmlwdG9yLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9WQUxVRSB3aGVuIGFueSBvZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZXMgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkIG9yIGNvbmZsaWN0aW5nLgorICAgICAqICAgICAgICAgICAgICAgICAgTk9fUkVTT1VSQ0VTIHdoZW4gdGhlIGNyZWF0aW9uIGNhbm5vdCBiZSBmdWxsZmlsbGVkIGF0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyB0aW1lLgorICAgICAqICAgICAgICAgICAgICAgICAgVU5TVVBQT1JURUQgd2hlbiBhbnkgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Qgc3VwcG9ydGVkLgorICAgICAqIEByZXR1cm4gZGVzY3JpcHRvciBpcyB0aGUgbmV3bHkgY3JlYXRlZCBidWZmZXIgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgY3JlYXRlRGVzY3JpcHRvcihCdWZmZXJEZXNjcmlwdG9ySW5mbyBkZXNjcmlwdG9ySW5mbykKKyAgICAgICAgICBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLAorICAgICAgICAgICAgICAgICAgICAgQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKworICAgIC8qKgorICAgICAqIEltcG9ydHMgYSByYXcgYnVmZmVyIGhhbmRsZSB0byBjcmVhdGUgYW4gaW1wb3J0ZWQgYnVmZmVyIGhhbmRsZSBmb3IgdXNlCisgICAgICogd2l0aCB0aGUgcmVzdCBvZiB0aGUgbWFwcGVyIG9yIHdpdGggb3RoZXIgaW4tcHJvY2VzcyBsaWJyYXJpZXMuCisgICAgICoKKyAgICAgKiBBIGJ1ZmZlciBoYW5kbGUgaXMgY29uc2lkZXJlZCByYXcgd2hlbiBpdCBpcyBjbG9uZWQgKGUuZy4sIHdpdGgKKyAgICAgKiBuYXRpdmVfaGFuZGxlX2Nsb25lKSBmcm9tIGFub3RoZXIgYnVmZmVyIGhhbmRsZSBsb2NhbGx5LCBvciB3aGVuIGl0IGlzCisgICAgICogcmVjZWl2ZWQgZnJvbSBhbm90aGVyIEhBTCBzZXJ2ZXIvY2xpZW50IG9yIGFub3RoZXIgcHJvY2Vzcy4gQSByYXcKKyAgICAgKiBidWZmZXIgaGFuZGxlIG11c3Qgbm90IGJlIHVzZWQgdG8gYWNjZXNzIHRoZSB1bmRlcmx5aW5nIGdyYXBoaWNzCisgICAgICogYnVmZmVyLiBJdCBtdXN0IGJlIGltcG9ydGVkIHRvIGNyZWF0ZSBhbiBpbXBvcnRlZCBoYW5kbGUgZmlyc3QuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYXQgbGVhc3QgdmFsaWRhdGUgdGhlIHJhdyBoYW5kbGUgYmVmb3JlIGNyZWF0aW5nIHRoZQorICAgICAqIGltcG9ydGVkIGhhbmRsZS4gSXQgbXVzdCBhbHNvIHN1cHBvcnQgaW1wb3J0aW5nIHRoZSBzYW1lIHJhdyBoYW5kbGUKKyAgICAgKiBtdWx0aXBsZSB0aW1lcyB0byBjcmVhdGUgbXVsdGlwbGUgaW1wb3J0ZWQgaGFuZGxlcy4gVGhlIGltcG9ydGVkIGhhbmRsZQorICAgICAqIG11c3QgYmUgY29uc2lkZXJlZCB2YWxpZCBldmVyeXdoZXJlIGluIHRoZSBwcm9jZXNzLCBpbmNsdWRpbmcgaW4KKyAgICAgKiBhbm90aGVyIGluc3RhbmNlIG9mIHRoZSBtYXBwZXIuCisgICAgICoKKyAgICAgKiBCZWNhdXNlIG9mIHBhc3N0aHJvdWdoIEhBTHMsIGEgcmF3IGJ1ZmZlciBoYW5kbGUgcmVjZWl2ZWQgZnJvbSBhIEhBTAorICAgICAqIG1heSBhY3R1YWxseSBoYXZlIGJlZW4gaW1wb3J0ZWQgaW4gdGhlIHByb2Nlc3MuIGltcG9ydEJ1ZmZlciBtdXN0IHRyZWF0CisgICAgICogc3VjaCBhIGhhbmRsZSBhcyBpZiBpdCBpcyByYXcgYW5kIG11c3Qgbm90IHJldHVybiBCQURfQlVGRkVSLiBUaGUKKyAgICAgKiByZXR1cm5lZCBoYW5kbGUgaXMgaW5kZXBlbmRlbnQgZnJvbSB0aGUgaW5wdXQgaGFuZGxlIGFzIHVzdWFsLCBhbmQKKyAgICAgKiBmcmVlQnVmZmVyIG11c3QgYmUgY2FsbGVkIG9uIGl0IHdoZW4gaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSByYXdIYW5kbGUgaXMgdGhlIHJhdyBidWZmZXIgaGFuZGxlIHRvIGltcG9ydC4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICAgICAgICAgICBCQURfQlVGRkVSIHdoZW4gdGhlIHJhdyBoYW5kbGUgaXMgaW52YWxpZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSByYXcgaGFuZGxlIGNhbm5vdCBiZSBpbXBvcnRlZCBhdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgdGltZS4KKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBpcyB0aGUgaW1wb3J0ZWQgYnVmZmVyIGhhbmRsZSBhbmQgaGFzIHRoZSB0eXBlCisgICAgICogICAgICAgICBidWZmZXJfaGFuZGxlX3QuCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGltcG9ydEJ1ZmZlcihoYW5kbGUgcmF3SGFuZGxlKSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLCBwb2ludGVyIGJ1ZmZlcik7CisKKyAgICAvKioKKyAgICAgKiBGcmVlcyBhIGJ1ZmZlciBoYW5kbGUuIEJ1ZmZlciBoYW5kbGVzIHJldHVybmVkIGJ5IGltcG9ydEJ1ZmZlciBtdXN0IGJlCisgICAgICogZnJlZWQgd2l0aCB0aGlzIGZ1bmN0aW9uIHdoZW4gbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gbXVzdCBmcmVlIHVwIGFsbCByZXNvdXJjZXMgYWxsb2NhdGVkIGJ5IGltcG9ydEJ1ZmZlciBmb3IKKyAgICAgKiB0aGUgaW1wb3J0ZWQgaGFuZGxlLiBGb3IgZXhhbXBsZSwgaWYgdGhlIGltcG9ydGVkIGhhbmRsZSB3YXMgY3JlYXRlZAorICAgICAqIHdpdGggbmF0aXZlX2hhbmRsZV9jcmVhdGUsIHRoaXMgZnVuY3Rpb24gbXVzdCBjYWxsIG5hdGl2ZV9oYW5kbGVfY2xvc2UKKyAgICAgKiBhbmQgbmF0aXZlX2hhbmRsZV9kZWxldGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICAgICAgICAgICBCQURfQlVGRkVSIHdoZW4gdGhlIGJ1ZmZlciBpcyBpbnZhbGlkLgorICAgICAqLworICAgIEBleGl0CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGZyZWVCdWZmZXIocG9pbnRlciBidWZmZXIpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IpOworCisgICAgLyoqCisgICAgICogTG9ja3MgdGhlIGdpdmVuIGJ1ZmZlciBmb3IgdGhlIHNwZWNpZmllZCBDUFUgdXNhZ2UuCisgICAgICoKKyAgICAgKiBMb2NraW5nIHRoZSBzYW1lIGJ1ZmZlciBzaW11bHRhbmVvdXNseSBmcm9tIG11bHRpcGxlIHRocmVhZHMgaXMKKyAgICAgKiBwZXJtaXR0ZWQsIGJ1dCBpZiBhbnkgb2YgdGhlIHRocmVhZHMgYXR0ZW1wdCB0byBsb2NrIHRoZSBidWZmZXIgZm9yCisgICAgICogd3JpdGluZywgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCwgZXhjZXB0IHRoYXQgaXQgbXVzdCBub3QgY2F1c2UKKyAgICAgKiBwcm9jZXNzIHRlcm1pbmF0aW9uIG9yIGJsb2NrIHRoZSBjbGllbnQgaW5kZWZpbml0ZWx5LiBMZWF2aW5nIHRoZQorICAgICAqIGJ1ZmZlciBjb250ZW50IGluIGFuIGluZGV0ZXJtaW5hdGUgc3RhdGUgb3IgcmV0dXJuaW5nIGFuIGVycm9yIGFyZSBib3RoCisgICAgICogYWNjZXB0YWJsZS4KKyAgICAgKgorICAgICAqIFRoZSBjbGllbnQgbXVzdCBub3QgbW9kaWZ5IHRoZSBjb250ZW50IG9mIHRoZSBidWZmZXIgb3V0c2lkZSBvZgorICAgICAqIGFjY2Vzc1JlZ2lvbiwgYW5kIHRoZSBkZXZpY2UgbmVlZCBub3QgZ3VhcmFudGVlIHRoYXQgY29udGVudCBvdXRzaWRlIG9mCisgICAgICogYWNjZXNzUmVnaW9uIGlzIHZhbGlkIGZvciByZWFkaW5nLiBUaGUgcmVzdWx0IG9mIHJlYWRpbmcgb3Igd3JpdGluZworICAgICAqIG91dHNpZGUgb2YgYWNjZXNzUmVnaW9uIGlzIHVuZGVmaW5lZCwgZXhjZXB0IHRoYXQgaXQgbXVzdCBub3QgY2F1c2UKKyAgICAgKiBwcm9jZXNzIHRlcm1pbmF0aW9uLgorICAgICAqCisgICAgICogZGF0YSB3aWxsIGJlIGZpbGxlZCB3aXRoIGEgcG9pbnRlciB0byB0aGUgbG9ja2VkIGJ1ZmZlciBtZW1vcnkuIFRoaXMKKyAgICAgKiBhZGRyZXNzIHdpbGwgcmVwcmVzZW50IHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIGVudGlyZSBidWZmZXIsIGV2ZW4KKyAgICAgKiBpZiBhY2Nlc3NSZWdpb24gZG9lcyBub3QgYmVnaW4gYXQgdGhlIHRvcC1sZWZ0IGNvcm5lci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgaXMgdGhlIGJ1ZmZlciB0byBsb2NrLgorICAgICAqIEBwYXJhbSBjcHVVc2FnZSBzcGVjaWZpZXMgb25lIG9yIG1vcmUgQ1BVIHVzYWdlIGZsYWdzIHRvIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGFjY2Vzc1JlZ2lvbiBpcyB0aGUgcG9ydGlvbiBvZiB0aGUgYnVmZmVyIHRoYXQgdGhlIGNsaWVudAorICAgICAqICAgICAgICBpbnRlbmRzIHRvIGFjY2Vzcy4KKyAgICAgKiBAcGFyYW0gYWNxdWlyZUZlbmNlLCB3aGVuIG5vbi1lbXB0eSwgaXMgYSBoYW5kbGUgY29udGFpbmluZyBhIGZpbGUKKyAgICAgKiAgICAgICAgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSBzeW5jIGZlbmNlIG9iamVjdCwgd2hpY2ggd2lsbCBiZQorICAgICAqICAgICAgICBzaWduYWxlZCB3aGVuIGl0IGlzIHNhZmUgZm9yIHRoZSBtYXBwZXIgdG8gbG9jayB0aGUgYnVmZmVyLiBJZgorICAgICAqICAgICAgICBpdCBpcyBhbHJlYWR5IHNhZmUgdG8gbG9jaywgYWNxdWlyZUZlbmNlIGlzIGVtcHR5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9CVUZGRVIgd2hlbiB0aGUgYnVmZmVyIGlzIGludmFsaWQgb3IgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jb21wYXRpYmxlIHdpdGggdGhpcyBmdW5jdGlvbi4KKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9WQUxVRSB3aGVuIGNwdVVzYWdlIGlzIDAsIGNvbnRhaW5zIG5vbi1DUFUgdXNhZ2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgb3IgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGJ1ZmZlci4KKyAgICAgKiAgICAgICAgICAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSBidWZmZXIgY2Fubm90IGJlIGxvY2tlZCBhdCB0aGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSwgYnV0IGxvY2tpbmcgbWF5IHN1Y2NlZWQgYXQgYSBmdXR1cmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLgorICAgICAqIEByZXR1cm4gZGF0YSBpcyBhIENQVS1hY2Nlc3NpYmxlIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciBkYXRhLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSJ1bmxvY2siKQorICAgIGxvY2socG9pbnRlciBidWZmZXIsCisgICAgICAgICBiaXRmaWVsZDxCdWZmZXJVc2FnZT4gY3B1VXNhZ2UsCisgICAgICAgICBSZWN0IGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgIGhhbmRsZSBhY3F1aXJlRmVuY2UpCisgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgcG9pbnRlciBkYXRhKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgbGFyZ2VseSB0aGUgc2FtZSBhcyBsb2NrKCksIGV4Y2VwdCB0aGF0IGluc3RlYWQgb2YgcmV0dXJuaW5nIGEKKyAgICAgKiBwb2ludGVyIGRpcmVjdGx5IHRvIHRoZSBidWZmZXIgZGF0YSwgaXQgcmV0dXJucyBhbiBZQ2JDckxheW91dCBzdHJ1Y3QKKyAgICAgKiBkZXNjcmliaW5nIGhvdyB0byBhY2Nlc3MgdGhlIGRhdGEgcGxhbmVzLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IHdvcmsgb24gYnVmZmVycyB3aXRoIFBpeGVsRm9ybWF0OjpZQ2JDcl8qXzg4OCBpZgorICAgICAqIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlLCBhcyB3ZWxsIGFzIHdpdGggYW55IG90aGVyIGZvcm1hdHMgcmVxdWVzdGVkIGJ5CisgICAgICogbXVsdGltZWRpYSBjb2RlY3Mgd2hlbiB0aGV5IGFyZSBjb25maWd1cmVkIHdpdGggYQorICAgICAqIGZsZXhpYmxlLVlVVi1jb21wYXRpYmxlIGNvbG9yIGZvcm1hdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgaXMgdGhlIGJ1ZmZlciB0byBsb2NrLgorICAgICAqIEBwYXJhbSBjcHVVc2FnZSBzcGVjaWZpZXMgb25lIG9yIG1vcmUgQ1BVIHVzYWdlIGZsYWdzIHRvIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGFjY2Vzc1JlZ2lvbiBpcyB0aGUgcG9ydGlvbiBvZiB0aGUgYnVmZmVyIHRoYXQgdGhlIGNsaWVudAorICAgICAqICAgICAgICBpbnRlbmRzIHRvIGFjY2Vzcy4KKyAgICAgKiBAcGFyYW0gYWNxdWlyZUZlbmNlLCB3aGVuIG5vbi1lbXB0eSwgaXMgYSBoYW5kbGUgY29udGFpbmluZyBhIGZpbGUKKyAgICAgKiAgICAgICAgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSBzeW5jIGZlbmNlIG9iamVjdCwgd2hpY2ggd2lsbCBiZQorICAgICAqICAgICAgICBzaWduYWxlZCB3aGVuIGl0IGlzIHNhZmUgZm9yIHRoZSBtYXBwZXIgdG8gbG9jayB0aGUgYnVmZmVyLiBJZgorICAgICAqICAgICAgICBpdCBpcyBhbHJlYWR5IHNhZmUgdG8gbG9jaywgYWNxdWlyZUZlbmNlIGlzIGVtcHR5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9CVUZGRVIgd2hlbiB0aGUgYnVmZmVyIGlzIGludmFsaWQgb3IgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jb21wYXRpYmxlIHdpdGggdGhpcyBmdW5jdGlvbi4KKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9WQUxVRSB3aGVuIGNwdVVzYWdlIGlzIDAsIGNvbnRhaW5zIG5vbi1DUFUgdXNhZ2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgb3IgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGJ1ZmZlci4KKyAgICAgKiAgICAgICAgICAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSBidWZmZXIgY2Fubm90IGJlIGxvY2tlZCBhdCB0aGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSwgYnV0IGxvY2tpbmcgbWF5IHN1Y2NlZWQgYXQgYSBmdXR1cmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLgorICAgICAqIEByZXR1cm4gbGF5b3V0IGlzIHRoZSBkYXRhIGxheW91dCBvZiB0aGUgYnVmZmVyLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSJ1bmxvY2siKQorICAgIGxvY2tZQ2JDcihwb2ludGVyIGJ1ZmZlciwKKyAgICAgICAgICAgICAgYml0ZmllbGQ8QnVmZmVyVXNhZ2U+IGNwdVVzYWdlLAorICAgICAgICAgICAgICBSZWN0IGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgICAgICAgaGFuZGxlIGFjcXVpcmVGZW5jZSkKKyAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwKKyAgICAgICAgICAgICAgICAgICBZQ2JDckxheW91dCBsYXlvdXQpOworCisgICAgLyoqCisgICAgICogVW5sb2NrcyBhIGJ1ZmZlciB0byBpbmRpY2F0ZSBhbGwgQ1BVIGFjY2Vzc2VzIHRvIHRoZSBidWZmZXIgaGF2ZQorICAgICAqIGNvbXBsZXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgaXMgdGhlIGJ1ZmZlciB0byB1bmxvY2suCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgICAgICAgICAgQkFEX0JVRkZFUiB3aGVuIHRoZSBidWZmZXIgaXMgaW52YWxpZCBvciBub3QgbG9ja2VkLgorICAgICAqIEByZXR1cm4gcmVsZWFzZUZlbmNlLCB3aGVuIG5vbi1lbXB0eSwgaXMgYSBoYW5kbGUgY29udGFpbmluZyBhIGZpbGUKKyAgICAgKiAgICAgICAgIGRlc2NyaXB0b3IgcmVmZXJyaW5nIHRvIGEgc3luYyBmZW5jZSBvYmplY3QuIFRoZSBzeW5jIGZlbmNlCisgICAgICogICAgICAgICBvYmplY3Qgd2lsbCBiZSBzaWduYWxlZCB3aGVuIHRoZSBtYXBwZXIgaGFzIGNvbXBsZXRlZCBhbnkKKyAgICAgKiAgICAgICAgIHBlbmRpbmcgd29yay4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgdW5sb2NrKHBvaW50ZXIgYnVmZmVyKQorICAgICAgICBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLAorICAgICAgICAgICAgICAgICAgIGhhbmRsZSByZWxlYXNlRmVuY2UpOworfTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc3ZDk2NgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDAgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHZlbmRvcjogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJHcmFsbG9jTWFwcGVyLmNwcCIsICJHcmFsbG9jME1hcHBlci5jcHAiLCAiR3JhbGxvYzFNYXBwZXIuY3BwIl0sCisgICAgY3BwZmxhZ3M6IFsiLVdhbGwiLCAiLVdleHRyYSJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlic3luYyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9oZWFkZXJzIHsKKyAgICBuYW1lOiAibGliZ3JhbGxvY21hcHBlcmluY2x1ZGVzIiwKKyAgICB2ZW5kb3I6IHRydWUsCisgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyIuIl0sCit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzBNYXBwZXIuY3BwIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MwTWFwcGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGY1MDE2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MwTWFwcGVyLmNwcApAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR3JhbGxvYzBNYXBwZXIiCisKKyNpbmNsdWRlICJHcmFsbG9jME1hcHBlci5oIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworR3JhbGxvYzBNYXBwZXI6OkdyYWxsb2MwTWFwcGVyKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpCisgICAgOiBtTW9kdWxlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3JhbGxvY19tb2R1bGVfdCo+KG1vZHVsZSkpLAorICAgICAgbU1pbm9yKG1vZHVsZS0+bW9kdWxlX2FwaV92ZXJzaW9uICYgMHhmZikgeworICAgIG1DYXBhYmlsaXRpZXMuaGlnaFVzYWdlQml0cyA9IGZhbHNlOworICAgIG1DYXBhYmlsaXRpZXMubGF5ZXJlZEJ1ZmZlcnMgPSBmYWxzZTsKKyAgICBtQ2FwYWJpbGl0aWVzLnVucmVnaXN0ZXJJbXBseURlbGV0ZSA9IGZhbHNlOworfQorCitFcnJvciBHcmFsbG9jME1hcHBlcjo6cmVnaXN0ZXJCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkgeworICAgIGludCByZXN1bHQgPSBtTW9kdWxlLT5yZWdpc3RlckJ1ZmZlcihtTW9kdWxlLCBidWZmZXJIYW5kbGUpOworICAgIHJldHVybiByZXN1bHQgPyBFcnJvcjo6QkFEX0JVRkZFUiA6IEVycm9yOjpOT05FOworfQorCit2b2lkIEdyYWxsb2MwTWFwcGVyOjp1bnJlZ2lzdGVyQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIHsKKyAgICBtTW9kdWxlLT51bnJlZ2lzdGVyQnVmZmVyKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSk7Cit9CisKK0Vycm9yIEdyYWxsb2MwTWFwcGVyOjpsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiogb3V0RGF0YSkgeworICAgIGludCByZXN1bHQ7CisgICAgdm9pZCogZGF0YSA9IG51bGxwdHI7CisgICAgaWYgKG1NaW5vciA+PSAzICYmIG1Nb2R1bGUtPmxvY2tBc3luYykgeworICAgICAgICAvLyBEdXAgZmVuY2VGZCBhcyBpdCBpcyBnb2luZyB0byBiZSBvd25lZCBieSBncmFsbG9jLiAgTm90ZSB0aGF0IGl0IGlzCisgICAgICAgIC8vIGdyYWxsb2MncyByZXNwb25zaWJpbGl0eSB0byBjbG9zZSBpdCwgZXZlbiBvbiBsb2NraW5nIGVycm9ycy4KKyAgICAgICAgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICAgICAgZmVuY2VGZCA9IGR1cChmZW5jZUZkKTsKKyAgICAgICAgICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+bG9ja0FzeW5jKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSwgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi53aWR0aCwgYWNjZXNzUmVnaW9uLmhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRhLCBmZW5jZUZkKTsKKyAgICB9IGVsc2UgeworICAgICAgICB3YWl0RmVuY2VGZChmZW5jZUZkLCAiR3JhbGxvYzBNYXBwZXI6OmxvY2siKTsKKworICAgICAgICByZXN1bHQgPSBtTW9kdWxlLT5sb2NrKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSwgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmxlZnQsIGFjY2Vzc1JlZ2lvbi50b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLndpZHRoLCBhY2Nlc3NSZWdpb24uaGVpZ2h0LCAmZGF0YSk7CisgICAgfQorCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9WQUxVRTsKKyAgICB9IGVsc2UgeworICAgICAgICAqb3V0RGF0YSA9IGRhdGE7CisgICAgICAgIHJldHVybiBFcnJvcjo6Tk9ORTsKKyAgICB9Cit9CisKK0Vycm9yIEdyYWxsb2MwTWFwcGVyOjpsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZQ2JDckxheW91dCogb3V0TGF5b3V0KSB7CisgICAgaW50IHJlc3VsdDsKKyAgICBhbmRyb2lkX3ljYmNyIHljYmNyID0ge307CisgICAgaWYgKG1NaW5vciA+PSAzICYmIG1Nb2R1bGUtPmxvY2tBc3luY195Y2JjcikgeworICAgICAgICAvLyBEdXAgZmVuY2VGZCBhcyBpdCBpcyBnb2luZyB0byBiZSBvd25lZCBieSBncmFsbG9jLiAgTm90ZSB0aGF0IGl0IGlzCisgICAgICAgIC8vIGdyYWxsb2MncyByZXNwb25zaWJpbGl0eSB0byBjbG9zZSBpdCwgZXZlbiBvbiBsb2NraW5nIGVycm9ycy4KKyAgICAgICAgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICAgICAgZmVuY2VGZCA9IGR1cChmZW5jZUZkKTsKKyAgICAgICAgICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+bG9ja0FzeW5jX3ljYmNyKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSwgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi53aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsICZ5Y2JjciwgZmVuY2VGZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgd2FpdEZlbmNlRmQoZmVuY2VGZCwgIkdyYWxsb2MwTWFwcGVyOjpsb2NrWUNiQ3IiKTsKKworICAgICAgICBpZiAobU1vZHVsZS0+bG9ja195Y2JjcikgeworICAgICAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+bG9ja195Y2JjcihtTW9kdWxlLCBidWZmZXJIYW5kbGUsIGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24uaGVpZ2h0LCAmeWNiY3IpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gLUVJTlZBTDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfVkFMVUU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb3V0TGF5b3V0LT55ID0geWNiY3IueTsKKyAgICAgICAgb3V0TGF5b3V0LT5jYiA9IHljYmNyLmNiOworICAgICAgICBvdXRMYXlvdXQtPmNyID0geWNiY3IuY3I7CisgICAgICAgIG91dExheW91dC0+eVN0cmlkZSA9IHljYmNyLnlzdHJpZGU7CisgICAgICAgIG91dExheW91dC0+Y1N0cmlkZSA9IHljYmNyLmNzdHJpZGU7CisgICAgICAgIG91dExheW91dC0+Y2hyb21hU3RlcCA9IHljYmNyLmNocm9tYV9zdGVwOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorfQorCitFcnJvciBHcmFsbG9jME1hcHBlcjo6dW5sb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCogb3V0RmVuY2VGZCkgeworICAgIGludCByZXN1bHQ7CisgICAgaW50IGZlbmNlRmQgPSAtMTsKKyAgICBpZiAobU1pbm9yID49IDMgJiYgbU1vZHVsZS0+dW5sb2NrQXN5bmMpIHsKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+dW5sb2NrQXN5bmMobU1vZHVsZSwgYnVmZmVySGFuZGxlLCAmZmVuY2VGZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+dW5sb2NrKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSk7CisgICAgfQorCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICAvLyB3ZSBhbHdheXMgb3duIHRoZSBmZW5jZUZkIGV2ZW4gd2hlbiB1bmxvY2sgZmFpbGVkCisgICAgICAgIGlmIChmZW5jZUZkID49IDApIHsKKyAgICAgICAgICAgIGNsb3NlKGZlbmNlRmQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfVkFMVUU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgKm91dEZlbmNlRmQgPSBmZW5jZUZkOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbWFwcGVyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jME1hcHBlci5oIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MwTWFwcGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc5MmE2OQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jME1hcHBlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQzBNQVBQRVJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0MwTUFQUEVSX0gKKworI2luY2x1ZGUgIkdyYWxsb2NNYXBwZXIuaCIKKworI2luY2x1ZGUgPGhhcmR3YXJlL2dyYWxsb2MuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NsYXNzIEdyYWxsb2MwTWFwcGVyIDogcHVibGljIEdyYWxsb2NNYXBwZXIgeworICAgcHVibGljOgorICAgIEdyYWxsb2MwTWFwcGVyKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpOworCisgICBwcml2YXRlOgorICAgIEVycm9yIHJlZ2lzdGVyQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIG92ZXJyaWRlOworICAgIHZvaWQgdW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSBvdmVycmlkZTsKKyAgICBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgIHZvaWQqKiBvdXREYXRhKSBvdmVycmlkZTsKKyAgICBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgIFlDYkNyTGF5b3V0KiBvdXRMYXlvdXQpIG92ZXJyaWRlOworICAgIEVycm9yIHVubG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCBpbnQqIG91dEZlbmNlRmQpIG92ZXJyaWRlOworCisgICAgY29uc3QgZ3JhbGxvY19tb2R1bGVfdCogbU1vZHVsZTsKKyAgICB1aW50OF90IG1NaW5vcjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQzBNQVBQRVJfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MxTWFwcGVyLmNwcCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jMU1hcHBlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFlNWFkYwotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jMU1hcHBlci5jcHAKQEAgLTAsMCArMSwyNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkdyYWxsb2MxTWFwcGVyIgorCisjaW5jbHVkZSAiR3JhbGxvYzFNYXBwZXIuaCIKKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpCdWZmZXJVc2FnZTsKKworR3JhbGxvYzFNYXBwZXI6OkdyYWxsb2MxTWFwcGVyKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpCisgICAgOiBtRGV2aWNlKG51bGxwdHIpLCBtRGlzcGF0Y2goKSB7CisgICAgaW50IHJlc3VsdCA9IGdyYWxsb2MxX29wZW4obW9kdWxlLCAmbURldmljZSk7CisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMKCJmYWlsZWQgdG8gb3BlbiBncmFsbG9jMSBkZXZpY2U6ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcigtcmVzdWx0KSk7CisgICAgfQorCisgICAgaW5pdENhcGFiaWxpdGllcygpOworICAgIGluaXREaXNwYXRjaCgpOworfQorCitHcmFsbG9jMU1hcHBlcjo6fkdyYWxsb2MxTWFwcGVyKCkgeworICAgIGdyYWxsb2MxX2Nsb3NlKG1EZXZpY2UpOworfQorCit2b2lkIEdyYWxsb2MxTWFwcGVyOjppbml0Q2FwYWJpbGl0aWVzKCkgeworICAgIG1DYXBhYmlsaXRpZXMuaGlnaFVzYWdlQml0cyA9IHRydWU7CisgICAgbUNhcGFiaWxpdGllcy5sYXllcmVkQnVmZmVycyA9IGZhbHNlOworICAgIG1DYXBhYmlsaXRpZXMudW5yZWdpc3RlckltcGx5RGVsZXRlID0gZmFsc2U7CisKKyAgICB1aW50MzJfdCBjb3VudCA9IDA7CisgICAgbURldmljZS0+Z2V0Q2FwYWJpbGl0aWVzKG1EZXZpY2UsICZjb3VudCwgbnVsbHB0cik7CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBjYXBhYmlsaXRpZXMoY291bnQpOworICAgIG1EZXZpY2UtPmdldENhcGFiaWxpdGllcyhtRGV2aWNlLCAmY291bnQsIGNhcGFiaWxpdGllcy5kYXRhKCkpOworICAgIGNhcGFiaWxpdGllcy5yZXNpemUoY291bnQpOworCisgICAgZm9yIChhdXRvIGNhcGFiaWxpdHkgOiBjYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgc3dpdGNoIChjYXBhYmlsaXR5KSB7CisgICAgICAgICAgICBjYXNlIEdSQUxMT0MxX0NBUEFCSUxJVFlfTEFZRVJFRF9CVUZGRVJTOgorICAgICAgICAgICAgICAgIG1DYXBhYmlsaXRpZXMubGF5ZXJlZEJ1ZmZlcnMgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBHUkFMTE9DMV9DQVBBQklMSVRZX1JFTEVBU0VfSU1QTFlfREVMRVRFOgorICAgICAgICAgICAgICAgIG1DYXBhYmlsaXRpZXMudW5yZWdpc3RlckltcGx5RGVsZXRlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit2b2lkIEdyYWxsb2MxTWFwcGVyOjppbml0RGlzcGF0Y2goZ3JhbGxvYzFfZnVuY3Rpb25fZGVzY3JpcHRvcl90IGRlc2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVCogb3V0UGZuKSB7CisgICAgYXV0byBwZm4gPSBtRGV2aWNlLT5nZXRGdW5jdGlvbihtRGV2aWNlLCBkZXNjKTsKKyAgICBpZiAoIXBmbikgeworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMKCJmYWlsZWQgdG8gZ2V0IGdyYWxsb2MxIGZ1bmN0aW9uICVkIiwgZGVzYyk7CisgICAgfQorCisgICAgKm91dFBmbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8VD4ocGZuKTsKK30KKwordm9pZCBHcmFsbG9jMU1hcHBlcjo6aW5pdERpc3BhdGNoKCkgeworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9SRVRBSU4sICZtRGlzcGF0Y2gucmV0YWluKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fUkVMRUFTRSwgJm1EaXNwYXRjaC5yZWxlYXNlKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fR0VUX05VTV9GTEVYX1BMQU5FUywKKyAgICAgICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXROdW1GbGV4UGxhbmVzKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fTE9DSywgJm1EaXNwYXRjaC5sb2NrKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fTE9DS19GTEVYLCAmbURpc3BhdGNoLmxvY2tGbGV4KTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fVU5MT0NLLCAmbURpc3BhdGNoLnVubG9jayk7Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjp0b0Vycm9yKGludDMyX3QgZXJyb3IpIHsKKyAgICBzd2l0Y2ggKGVycm9yKSB7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfTk9ORToKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9ORTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9CQURfREVTQ1JJUFRPUjoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0RFU0NSSVBUT1I7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfQkFEX0hBTkRMRToKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0JVRkZFUjsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9CQURfVkFMVUU6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9WQUxVRTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9OT1RfU0hBUkVEOgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT05FOyAgLy8gdGhpcyBpcyBmaW5lCisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfTk9fUkVTT1VSQ0VTOgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfVU5ERUZJTkVEOgorICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX1VOU1VQUE9SVEVEOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpVTlNVUFBPUlRFRDsKKyAgICB9Cit9CisKK2Jvb2wgR3JhbGxvYzFNYXBwZXI6OnRvWUNiQ3JMYXlvdXQoY29uc3QgYW5kcm9pZF9mbGV4X2xheW91dCYgZmxleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUNiQ3JMYXlvdXQqIG91dExheW91dCkgeworICAgIC8vIG11c3QgYmUgWUNiQ3IKKyAgICBpZiAoZmxleC5mb3JtYXQgIT0gRkxFWF9GT1JNQVRfWUNiQ3IgfHwgZmxleC5udW1fcGxhbmVzIDwgMykgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgY29uc3QgYXV0byYgcGxhbmUgPSBmbGV4LnBsYW5lc1tpXTsKKyAgICAgICAgLy8gbXVzdCBoYXZlIDgtYml0IGRlcHRoCisgICAgICAgIGlmIChwbGFuZS5iaXRzX3Blcl9jb21wb25lbnQgIT0gOCB8fCBwbGFuZS5iaXRzX3VzZWQgIT0gOCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBsYW5lLmNvbXBvbmVudCA9PSBGTEVYX0NPTVBPTkVOVF9ZKSB7CisgICAgICAgICAgICAvLyBZIG11c3Qgbm90IGJlIGludGVybGVhdmVkCisgICAgICAgICAgICBpZiAocGxhbmUuaF9pbmNyZW1lbnQgIT0gMSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIENiIGFuZCBDciBjYW4gYmUgaW50ZXJsZWF2ZWQKKyAgICAgICAgICAgIGlmIChwbGFuZS5oX2luY3JlbWVudCAhPSAxICYmIHBsYW5lLmhfaW5jcmVtZW50ICE9IDIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXBsYW5lLnZfaW5jcmVtZW50KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZmxleC5wbGFuZXNbMF0uY29tcG9uZW50ICE9IEZMRVhfQ09NUE9ORU5UX1kgfHwKKyAgICAgICAgZmxleC5wbGFuZXNbMV0uY29tcG9uZW50ICE9IEZMRVhfQ09NUE9ORU5UX0NiIHx8CisgICAgICAgIGZsZXgucGxhbmVzWzJdLmNvbXBvbmVudCAhPSBGTEVYX0NPTVBPTkVOVF9DcikgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgY29uc3QgYXV0byYgeSA9IGZsZXgucGxhbmVzWzBdOworICAgIGNvbnN0IGF1dG8mIGNiID0gZmxleC5wbGFuZXNbMV07CisgICAgY29uc3QgYXV0byYgY3IgPSBmbGV4LnBsYW5lc1syXTsKKworICAgIGlmIChjYi5oX2luY3JlbWVudCAhPSBjci5oX2luY3JlbWVudCB8fCBjYi52X2luY3JlbWVudCAhPSBjci52X2luY3JlbWVudCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgb3V0TGF5b3V0LT55ID0geS50b3BfbGVmdDsKKyAgICBvdXRMYXlvdXQtPmNiID0gY2IudG9wX2xlZnQ7CisgICAgb3V0TGF5b3V0LT5jciA9IGNyLnRvcF9sZWZ0OworICAgIG91dExheW91dC0+eVN0cmlkZSA9IHkudl9pbmNyZW1lbnQ7CisgICAgb3V0TGF5b3V0LT5jU3RyaWRlID0gY2Iudl9pbmNyZW1lbnQ7CisgICAgb3V0TGF5b3V0LT5jaHJvbWFTdGVwID0gY2IuaF9pbmNyZW1lbnQ7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZ3JhbGxvYzFfcmVjdF90IEdyYWxsb2MxTWFwcGVyOjphc0dyYWxsb2MxUmVjdChjb25zdCBJTWFwcGVyOjpSZWN0JiByZWN0KSB7CisgICAgcmV0dXJuIGdyYWxsb2MxX3JlY3RfdHtyZWN0LmxlZnQsIHJlY3QudG9wLCByZWN0LndpZHRoLCByZWN0LmhlaWdodH07Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjpyZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSB7CisgICAgcmV0dXJuIHRvRXJyb3IobURpc3BhdGNoLnJldGFpbihtRGV2aWNlLCBidWZmZXJIYW5kbGUpKTsKK30KKwordm9pZCBHcmFsbG9jMU1hcHBlcjo6dW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSB7CisgICAgbURpc3BhdGNoLnJlbGVhc2UobURldmljZSwgYnVmZmVySGFuZGxlKTsKK30KKworRXJyb3IgR3JhbGxvYzFNYXBwZXI6OmxvY2tCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqKiBvdXREYXRhKSB7CisgICAgLy8gRHVwIGZlbmNlRmQgYXMgaXQgaXMgZ29pbmcgdG8gYmUgb3duZWQgYnkgZ3JhbGxvYy4gIE5vdGUgdGhhdCBpdCBpcworICAgIC8vIGdyYWxsb2MncyByZXNwb25zaWJpbGl0eSB0byBjbG9zZSBpdCwgZXZlbiBvbiBsb2NraW5nIGVycm9ycy4KKyAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgIGZlbmNlRmQgPSBkdXAoZmVuY2VGZCk7CisgICAgICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjb25zdCB1aW50NjRfdCBjb25zdW1lclVzYWdlID0KKyAgICAgICAgY3B1VXNhZ2UgJiB+c3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfTUFTSyk7CisgICAgY29uc3QgYXV0byBhY2Nlc3NSZWN0ID0gYXNHcmFsbG9jMVJlY3QoYWNjZXNzUmVnaW9uKTsKKyAgICB2b2lkKiBkYXRhID0gbnVsbHB0cjsKKyAgICBpbnQzMl90IGVycm9yID0gbURpc3BhdGNoLmxvY2sobURldmljZSwgYnVmZmVySGFuZGxlLCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtZXJVc2FnZSwgJmFjY2Vzc1JlY3QsICZkYXRhLCBmZW5jZUZkKTsKKworICAgIGlmIChlcnJvciA9PSBHUkFMTE9DMV9FUlJPUl9OT05FKSB7CisgICAgICAgICpvdXREYXRhID0gZGF0YTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9FcnJvcihlcnJvcik7Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjpsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZQ2JDckxheW91dCogb3V0TGF5b3V0KSB7CisgICAgLy8gcHJlcGFyZSBmbGV4IGxheW91dAorICAgIGFuZHJvaWRfZmxleF9sYXlvdXQgZmxleCA9IHt9OworICAgIGludDMyX3QgZXJyb3IgPQorICAgICAgICBtRGlzcGF0Y2guZ2V0TnVtRmxleFBsYW5lcyhtRGV2aWNlLCBidWZmZXJIYW5kbGUsICZmbGV4Lm51bV9wbGFuZXMpOworICAgIGlmIChlcnJvciAhPSBHUkFMTE9DMV9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiB0b0Vycm9yKGVycm9yKTsKKyAgICB9CisgICAgc3RkOjp2ZWN0b3I8YW5kcm9pZF9mbGV4X3BsYW5lX3Q+IGZsZXhQbGFuZXMoZmxleC5udW1fcGxhbmVzKTsKKyAgICBmbGV4LnBsYW5lcyA9IGZsZXhQbGFuZXMuZGF0YSgpOworCisgICAgLy8gRHVwIGZlbmNlRmQgYXMgaXQgaXMgZ29pbmcgdG8gYmUgb3duZWQgYnkgZ3JhbGxvYy4gIE5vdGUgdGhhdCBpdCBpcworICAgIC8vIGdyYWxsb2MncyByZXNwb25zaWJpbGl0eSB0byBjbG9zZSBpdCwgZXZlbiBvbiBsb2NraW5nIGVycm9ycy4KKyAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgIGZlbmNlRmQgPSBkdXAoZmVuY2VGZCk7CisgICAgICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjb25zdCB1aW50NjRfdCBjb25zdW1lclVzYWdlID0KKyAgICAgICAgY3B1VXNhZ2UgJiB+c3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfTUFTSyk7CisgICAgY29uc3QgYXV0byBhY2Nlc3NSZWN0ID0gYXNHcmFsbG9jMVJlY3QoYWNjZXNzUmVnaW9uKTsKKyAgICBlcnJvciA9IG1EaXNwYXRjaC5sb2NrRmxleChtRGV2aWNlLCBidWZmZXJIYW5kbGUsIGNwdVVzYWdlLCBjb25zdW1lclVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhY2Nlc3NSZWN0LCAmZmxleCwgZmVuY2VGZCk7CisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUgJiYgIXRvWUNiQ3JMYXlvdXQoZmxleCwgb3V0TGF5b3V0KSkgeworICAgICAgICBBTE9HRCgidW5hYmxlIHRvIGNvbnZlcnQgYW5kcm9pZF9mbGV4X2xheW91dCB0byBZQ2JDckxheW91dCIpOworCisgICAgICAgIC8vIHVuZG8gdGhlIGxvY2sKKyAgICAgICAgZmVuY2VGZCA9IC0xOworICAgICAgICBtRGlzcGF0Y2gudW5sb2NrKG1EZXZpY2UsIGJ1ZmZlckhhbmRsZSwgJmZlbmNlRmQpOworICAgICAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgICAgICBjbG9zZShmZW5jZUZkKTsKKyAgICAgICAgfQorCisgICAgICAgIGVycm9yID0gR1JBTExPQzFfRVJST1JfQkFEX0hBTkRMRTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9FcnJvcihlcnJvcik7Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjp1bmxvY2tCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KiBvdXRGZW5jZUZkKSB7CisgICAgaW50IGZlbmNlRmQgPSAtMTsKKyAgICBpbnQzMl90IGVycm9yID0gbURpc3BhdGNoLnVubG9jayhtRGV2aWNlLCBidWZmZXJIYW5kbGUsICZmZW5jZUZkKTsKKworICAgIGlmIChlcnJvciA9PSBHUkFMTE9DMV9FUlJPUl9OT05FKSB7CisgICAgICAgICpvdXRGZW5jZUZkID0gZmVuY2VGZDsKKyAgICB9IGVsc2UgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICAvLyB3ZSBhbHdheXMgb3duIHRoZSBmZW5jZUZkIGV2ZW4gd2hlbiB1bmxvY2sgZmFpbGVkCisgICAgICAgIGNsb3NlKGZlbmNlRmQpOworICAgIH0KKworICAgIHJldHVybiB0b0Vycm9yKGVycm9yKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIG1hcHBlcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzFNYXBwZXIuaCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jMU1hcHBlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1MmFmZGYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzFNYXBwZXIuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0MxTUFQUEVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DMU1BUFBFUl9ICisKKyNpbmNsdWRlICJHcmFsbG9jTWFwcGVyLmgiCisKKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jMS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworY2xhc3MgR3JhbGxvYzFNYXBwZXIgOiBwdWJsaWMgR3JhbGxvY01hcHBlciB7CisgICBwdWJsaWM6CisgICAgR3JhbGxvYzFNYXBwZXIoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgfkdyYWxsb2MxTWFwcGVyKCk7CisKKyAgIHByaXZhdGU6CisgICAgdm9pZCBpbml0Q2FwYWJpbGl0aWVzKCk7CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGluaXREaXNwYXRjaChncmFsbG9jMV9mdW5jdGlvbl9kZXNjcmlwdG9yX3QgZGVzYywgVCogb3V0UGZuKTsKKyAgICB2b2lkIGluaXREaXNwYXRjaCgpOworCisgICAgc3RhdGljIEVycm9yIHRvRXJyb3IoaW50MzJfdCBlcnJvcik7CisgICAgc3RhdGljIGJvb2wgdG9ZQ2JDckxheW91dChjb25zdCBhbmRyb2lkX2ZsZXhfbGF5b3V0JiBmbGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUNiQ3JMYXlvdXQqIG91dExheW91dCk7CisgICAgc3RhdGljIGdyYWxsb2MxX3JlY3RfdCBhc0dyYWxsb2MxUmVjdChjb25zdCBJTWFwcGVyOjpSZWN0JiByZWN0KTsKKworICAgIEVycm9yIHJlZ2lzdGVyQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIG92ZXJyaWRlOworICAgIHZvaWQgdW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSBvdmVycmlkZTsKKyAgICBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgIHZvaWQqKiBvdXREYXRhKSBvdmVycmlkZTsKKyAgICBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgIFlDYkNyTGF5b3V0KiBvdXRMYXlvdXQpIG92ZXJyaWRlOworICAgIEVycm9yIHVubG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCBpbnQqIG91dEZlbmNlRmQpIG92ZXJyaWRlOworCisgICAgZ3JhbGxvYzFfZGV2aWNlX3QqIG1EZXZpY2U7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBHUkFMTE9DMV9QRk5fUkVUQUlOIHJldGFpbjsKKyAgICAgICAgR1JBTExPQzFfUEZOX1JFTEVBU0UgcmVsZWFzZTsKKyAgICAgICAgR1JBTExPQzFfUEZOX0dFVF9OVU1fRkxFWF9QTEFORVMgZ2V0TnVtRmxleFBsYW5lczsKKyAgICAgICAgR1JBTExPQzFfUEZOX0xPQ0sgbG9jazsKKyAgICAgICAgR1JBTExPQzFfUEZOX0xPQ0tfRkxFWCBsb2NrRmxleDsKKyAgICAgICAgR1JBTExPQzFfUEZOX1VOTE9DSyB1bmxvY2s7CisgICAgfSBtRGlzcGF0Y2g7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbWFwcGVyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0MxTUFQUEVSX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jQnVmZmVyRGVzY3JpcHRvci5oIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2NCdWZmZXJEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI1YWIwNAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DQlVGRkVSREVTQ1JJUFRPUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQ0JVRkZFUkRFU0NSSVBUT1JfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKKworLyoqCisgKiBCdWZmZXJEZXNjcmlwdG9yIGlzIGNyZWF0ZWQgYnkgSU1hcHBlciBhbmQgY29uc3VtZWQgYnkgSUFsbG9jYXRvci4gSXQgaXMKKyAqIHZlcnNpb25lZCBzbyB0aGF0IElNYXBwZXIgYW5kIElBbGxvY2F0b3IgY2FuIGJlIHVwZGF0ZWQgaW5kZXBlbmRlbnRseS4KKyAqLworY29uc3RleHByIHVpbnQzMl90IGdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yU2l6ZSA9IDc7Citjb25zdGV4cHIgdWludDMyX3QgZ3JhbGxvY0J1ZmZlckRlc2NyaXB0b3JNYWdpY1ZlcnNpb24gPSAoKDB4OTQ4NyA8PCAxNikgfCAwKTsKKworaW5saW5lIEJ1ZmZlckRlc2NyaXB0b3IgZ3JhbGxvY0VuY29kZUJ1ZmZlckRlc2NyaXB0b3IoCisgICAgY29uc3QgSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvKSB7CisgICAgQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yOworICAgIGRlc2NyaXB0b3IucmVzaXplKGdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yU2l6ZSk7CisgICAgZGVzY3JpcHRvclswXSA9IGdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yTWFnaWNWZXJzaW9uOworICAgIGRlc2NyaXB0b3JbMV0gPSBkZXNjcmlwdG9ySW5mby53aWR0aDsKKyAgICBkZXNjcmlwdG9yWzJdID0gZGVzY3JpcHRvckluZm8uaGVpZ2h0OworICAgIGRlc2NyaXB0b3JbM10gPSBkZXNjcmlwdG9ySW5mby5sYXllckNvdW50OworICAgIGRlc2NyaXB0b3JbNF0gPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZGVzY3JpcHRvckluZm8uZm9ybWF0KTsKKyAgICBkZXNjcmlwdG9yWzVdID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRlc2NyaXB0b3JJbmZvLnVzYWdlKTsKKyAgICBkZXNjcmlwdG9yWzZdID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRlc2NyaXB0b3JJbmZvLnVzYWdlID4+IDMyKTsKKworICAgIHJldHVybiBkZXNjcmlwdG9yOworfQorCitpbmxpbmUgYm9vbCBncmFsbG9jRGVjb2RlQnVmZmVyRGVzY3JpcHRvcigKKyAgICBjb25zdCBCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLAorICAgIElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvKiBvdXREZXNjcmlwdG9ySW5mbykgeworICAgIGlmIChkZXNjcmlwdG9yLnNpemUoKSAhPSBncmFsbG9jQnVmZmVyRGVzY3JpcHRvclNpemUgfHwKKyAgICAgICAgZGVzY3JpcHRvclswXSAhPSBncmFsbG9jQnVmZmVyRGVzY3JpcHRvck1hZ2ljVmVyc2lvbikgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgKm91dERlc2NyaXB0b3JJbmZvID0gSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm97CisgICAgICAgIGRlc2NyaXB0b3JbMV0sCisgICAgICAgIGRlc2NyaXB0b3JbMl0sCisgICAgICAgIGRlc2NyaXB0b3JbM10sCisgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PihkZXNjcmlwdG9yWzRdKSwKKyAgICAgICAgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihkZXNjcmlwdG9yWzZdKSA8PCAzMikgfCBkZXNjcmlwdG9yWzVdLAorICAgIH07CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIG1hcHBlcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DQlVGRkVSREVTQ1JJUFRPUl9ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvY01hcHBlci5jcHAgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvY01hcHBlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE2MTQzZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jTWFwcGVyLmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR3JhbGxvY01hcHBlclBhc3N0aHJvdWdoIgorCisjaW5jbHVkZSAiR3JhbGxvY01hcHBlci5oIgorCisjaW5jbHVkZSAiR3JhbGxvYzBNYXBwZXIuaCIKKyNpbmNsdWRlICJHcmFsbG9jMU1hcHBlci5oIgorI2luY2x1ZGUgIkdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yLmgiCisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHN5bmMvc3luYy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OworCituYW1lc3BhY2UgeworCitjbGFzcyBSZWdpc3RlcmVkSGFuZGxlUG9vbCB7CisgICBwdWJsaWM6CisgICAgYm9vbCBhZGQoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICByZXR1cm4gbUhhbmRsZXMuaW5zZXJ0KGJ1ZmZlckhhbmRsZSkuc2Vjb25kOworICAgIH0KKworICAgIG5hdGl2ZV9oYW5kbGVfdCogcG9wKHZvaWQqIGJ1ZmZlcikgeworICAgICAgICBhdXRvIGJ1ZmZlckhhbmRsZSA9IHN0YXRpY19jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlcik7CisKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgcmV0dXJuIG1IYW5kbGVzLmVyYXNlKGJ1ZmZlckhhbmRsZSkgPT0gMSA/IGJ1ZmZlckhhbmRsZSA6IG51bGxwdHI7CisgICAgfQorCisgICAgYnVmZmVyX2hhbmRsZV90IGdldChjb25zdCB2b2lkKiBidWZmZXIpIHsKKyAgICAgICAgYXV0byBidWZmZXJIYW5kbGUgPSBzdGF0aWNfY2FzdDxidWZmZXJfaGFuZGxlX3Q+KGJ1ZmZlcik7CisKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgcmV0dXJuIG1IYW5kbGVzLmNvdW50KGJ1ZmZlckhhbmRsZSkgPT0gMSA/IGJ1ZmZlckhhbmRsZSA6IG51bGxwdHI7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIHN0ZDo6bXV0ZXggbU11dGV4OworICAgIHN0ZDo6dW5vcmRlcmVkX3NldDxidWZmZXJfaGFuZGxlX3Q+IG1IYW5kbGVzOworfTsKKworLy8gR3JhcGhpY0J1ZmZlck1hcHBlciBpcyBleHBlY3RlZCB0byBiZSB2YWxpZCAoYW5kIGxlYWtlZCkgZHVyaW5nIHByb2Nlc3MKKy8vIHRlcm1pbmF0aW9uLiAgV2UgbmVlZCB0byBtYWtlIHN1cmUgSU1hcHBlciwgYW5kIGluIHR1cm4sIGdSZWdpc3RlcmVkSGFuZGxlcworLy8gYXJlIHZhbGlkIGFzIHdlbGwuICBDcmVhdGUgdGhlIHJlZ2lzdGVyZWQgaGFuZGxlIHBvb2wgb24gdGhlIGhlYXAsIGFuZCBsZXQKKy8vIGl0IGxlYWsgZm9yIHNpbXBsaWNpdHkuCisvLworLy8gSG93ZXZlciwgdGhlcmUgaXMgbm8gd2F5IHRvIG1ha2Ugc3VyZSBncmFsbG9jMC9ncmFsbG9jMSBhcmUgdmFsaWQuICBBbnkgdXNlCisvLyBvZiBzdGF0aWMvZ2xvYmFsIG9iamVjdCBpbiBncmFsbG9jMC9ncmFsbG9jMSB0aGF0IG1heSBoYXZlIGJlZW4gZGVzdHJ1Y3RlZAorLy8gaXMgcG90ZW50aWFsbHkgYnJva2VuLgorUmVnaXN0ZXJlZEhhbmRsZVBvb2wqIGdSZWdpc3RlcmVkSGFuZGxlcyA9IG5ldyBSZWdpc3RlcmVkSGFuZGxlUG9vbDsKKworfSAgLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitib29sIEdyYWxsb2NNYXBwZXI6OnZhbGlkYXRlRGVzY3JpcHRvckluZm8oCisgICAgY29uc3QgQnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvKSBjb25zdCB7CisgICAgY29uc3QgdWludDY0X3QgdmFsaWRVc2FnZUJpdHMgPQorICAgICAgICBCdWZmZXJVc2FnZTo6Q1BVX1JFQURfTUFTSyB8IEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfTUFTSyB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpHUFVfVEVYVFVSRSB8IEJ1ZmZlclVzYWdlOjpHUFVfUkVOREVSX1RBUkdFVCB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpDT01QT1NFUl9PVkVSTEFZIHwgQnVmZmVyVXNhZ2U6OkNPTVBPU0VSX0NMSUVOVF9UQVJHRVQgfAorICAgICAgICBCdWZmZXJVc2FnZTo6UFJPVEVDVEVEIHwgQnVmZmVyVXNhZ2U6OkNPTVBPU0VSX0NVUlNPUiB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpWSURFT19FTkNPREVSIHwgQnVmZmVyVXNhZ2U6OkNBTUVSQV9PVVRQVVQgfAorICAgICAgICBCdWZmZXJVc2FnZTo6Q0FNRVJBX0lOUFVUIHwgQnVmZmVyVXNhZ2U6OlJFTkRFUlNDUklQVCB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpWSURFT19ERUNPREVSIHwgQnVmZmVyVXNhZ2U6OlNFTlNPUl9ESVJFQ1RfREFUQSB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpHUFVfREFUQV9CVUZGRVIgfCBCdWZmZXJVc2FnZTo6VkVORE9SX01BU0sgfAorICAgICAgICAobUNhcGFiaWxpdGllcy5oaWdoVXNhZ2VCaXRzID8gQnVmZmVyVXNhZ2U6OlZFTkRPUl9NQVNLX0hJCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDxCdWZmZXJVc2FnZT4oMCkpOworCisgICAgaWYgKCFkZXNjcmlwdG9ySW5mby53aWR0aCB8fCAhZGVzY3JpcHRvckluZm8uaGVpZ2h0IHx8CisgICAgICAgICFkZXNjcmlwdG9ySW5mby5sYXllckNvdW50KSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIW1DYXBhYmlsaXRpZXMubGF5ZXJlZEJ1ZmZlcnMgJiYgZGVzY3JpcHRvckluZm8ubGF5ZXJDb3VudCA+IDEpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmIChkZXNjcmlwdG9ySW5mby5mb3JtYXQgPT0gc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+KDApKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoZGVzY3JpcHRvckluZm8udXNhZ2UgJiB+dmFsaWRVc2FnZUJpdHMpIHsKKyAgICAgICAgLy8gY291bGQgbm90IGZhaWwgYXMgZ3JhbGxvYyBtYXkgdXNlIHRoZSByZXNlcnZlZCBiaXRzLi4uCisgICAgICAgIEFMT0dXKCJidWZmZXIgZGVzY3JpcHRvciB3aXRoIGludmFsaWQgdXNhZ2UgYml0cyAweCUiIFBSSXg2NCwKKyAgICAgICAgICAgICAgZGVzY3JpcHRvckluZm8udXNhZ2UgJiB+dmFsaWRVc2FnZUJpdHMpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6Y3JlYXRlRGVzY3JpcHRvcigKKyAgICBjb25zdCBCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8sIGNyZWF0ZURlc2NyaXB0b3JfY2IgaGlkbF9jYikgeworICAgIGlmICh2YWxpZGF0ZURlc2NyaXB0b3JJbmZvKGRlc2NyaXB0b3JJbmZvKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpOT05FLCBncmFsbG9jRW5jb2RlQnVmZmVyRGVzY3JpcHRvcihkZXNjcmlwdG9ySW5mbykpOworICAgIH0gZWxzZSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6OkJBRF9WQUxVRSwgQnVmZmVyRGVzY3JpcHRvcigpKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6aW1wb3J0QnVmZmVyKGNvbnN0IGhpZGxfaGFuZGxlJiByYXdIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydEJ1ZmZlcl9jYiBoaWRsX2NiKSB7CisgICAgLy8gYmVjYXVzZSBvZiBwYXNzdGhyb3VnaCBIQUxzLCB3ZSBtdXN0IG5vdCBnZW5lcmF0ZSBhbiBlcnJvciB3aGVuCisgICAgLy8gcmF3SGFuZGxlIGhhcyBiZWVuIGltcG9ydGVkCisKKyAgICBpZiAoIXJhd0hhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfQlVGRkVSLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSA9CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvbmUocmF3SGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICBpZiAoIWJ1ZmZlckhhbmRsZSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpOT19SRVNPVVJDRVMsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEVycm9yIGVycm9yID0gcmVnaXN0ZXJCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICBpZiAoZXJyb3IgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShidWZmZXJIYW5kbGUpOworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShidWZmZXJIYW5kbGUpOworCisgICAgICAgIGhpZGxfY2IoZXJyb3IsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIC8vIFRoZSBuZXdseSBjbG9uZWQgaGFuZGxlIGlzIGFscmVhZHkgcmVnaXN0ZXJlZD8gIFRoaXMgY2FuIG9ubHkgaGFwcGVuCisgICAgLy8gd2hlbiBhIGhhbmRsZSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgd2FzIG5hdGl2ZV9oYW5kbGVfZGVsZXRlJ2QgaW5zdGVhZAorICAgIC8vIG9mIGZyZWVCdWZmZXInZC4KKyAgICBpZiAoIWdSZWdpc3RlcmVkSGFuZGxlcy0+YWRkKGJ1ZmZlckhhbmRsZSkpIHsKKyAgICAgICAgQUxPR0UoImhhbmRsZSAlcCBoYXMgYWxyZWFkeSBiZWVuIGltcG9ydGVkOyBwb3RlbnRpYWwgZmQgbGVha2luZyIsCisgICAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIHVucmVnaXN0ZXJCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgaWYgKCFtQ2FwYWJpbGl0aWVzLnVucmVnaXN0ZXJJbXBseURlbGV0ZSkgeworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShidWZmZXJIYW5kbGUpOworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgfQorCisgICAgICAgIGhpZGxfY2IoRXJyb3I6Ok5PX1JFU09VUkNFUywgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaGlkbF9jYihFcnJvcjo6Tk9ORSwgYnVmZmVySGFuZGxlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48RXJyb3I+IEdyYWxsb2NNYXBwZXI6OmZyZWVCdWZmZXIodm9pZCogYnVmZmVyKSB7CisgICAgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUgPSBnUmVnaXN0ZXJlZEhhbmRsZXMtPnBvcChidWZmZXIpOworICAgIGlmICghYnVmZmVySGFuZGxlKSB7CisgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0JVRkZFUjsKKyAgICB9CisKKyAgICB1bnJlZ2lzdGVyQnVmZmVyKGJ1ZmZlckhhbmRsZSk7CisgICAgaWYgKCFtQ2FwYWJpbGl0aWVzLnVucmVnaXN0ZXJJbXBseURlbGV0ZSkgeworICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGJ1ZmZlckhhbmRsZSk7CisgICAgfQorCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCit2b2lkIEdyYWxsb2NNYXBwZXI6OndhaXRGZW5jZUZkKGludCBmZW5jZUZkLCBjb25zdCBjaGFyKiBsb2duYW1lKSB7CisgICAgaWYgKGZlbmNlRmQgPCAwKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBpbnQgd2FybmluZ1RpbWVvdXQgPSAzNTAwOworICAgIGNvbnN0IGludCBlcnJvciA9IHN5bmNfd2FpdChmZW5jZUZkLCB3YXJuaW5nVGltZW91dCk7CisgICAgaWYgKGVycm9yIDwgMCAmJiBlcnJubyA9PSBFVElNRSkgeworICAgICAgICBBTE9HRSgiJXM6IGZlbmNlICVkIGRpZG4ndCBzaWduYWwgaW4gJXUgbXMiLCBsb2duYW1lLCBmZW5jZUZkLAorICAgICAgICAgICAgICB3YXJuaW5nVGltZW91dCk7CisgICAgICAgIHN5bmNfd2FpdChmZW5jZUZkLCAtMSk7CisgICAgfQorfQorCitib29sIEdyYWxsb2NNYXBwZXI6OmdldEZlbmNlRmQoY29uc3QgaGlkbF9oYW5kbGUmIGZlbmNlSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCogb3V0RmVuY2VGZCkgeworICAgIGF1dG8gaGFuZGxlID0gZmVuY2VIYW5kbGUuZ2V0TmF0aXZlSGFuZGxlKCk7CisgICAgaWYgKGhhbmRsZSAmJiBoYW5kbGUtPm51bUZkcyA+IDEpIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgZmVuY2UgaGFuZGxlIHdpdGggJWQgZmRzIiwgaGFuZGxlLT5udW1GZHMpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgKm91dEZlbmNlRmQgPSAoaGFuZGxlICYmIGhhbmRsZS0+bnVtRmRzID09IDEpID8gaGFuZGxlLT5kYXRhWzBdIDogLTE7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2hpZGxfaGFuZGxlIEdyYWxsb2NNYXBwZXI6OmdldEZlbmNlSGFuZGxlKGludCBmZW5jZUZkLCBjaGFyKiBoYW5kbGVTdG9yYWdlKSB7CisgICAgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBudWxscHRyOworICAgIGlmIChmZW5jZUZkID49IDApIHsKKyAgICAgICAgaGFuZGxlID0gbmF0aXZlX2hhbmRsZV9pbml0KGhhbmRsZVN0b3JhZ2UsIDEsIDApOworICAgICAgICBoYW5kbGUtPmRhdGFbMF0gPSBmZW5jZUZkOworICAgIH0KKworICAgIHJldHVybiBoaWRsX2hhbmRsZShoYW5kbGUpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6bG9jayh2b2lkKiBidWZmZXIsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9oYW5kbGUmIGFjcXVpcmVGZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tfY2IgaGlkbF9jYikgeworICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUgPSBnUmVnaXN0ZXJlZEhhbmRsZXMtPmdldChidWZmZXIpOworICAgIGlmICghYnVmZmVySGFuZGxlKSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6OkJBRF9CVUZGRVIsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGludCBmZW5jZUZkOworICAgIGlmICghZ2V0RmVuY2VGZChhY3F1aXJlRmVuY2UsICZmZW5jZUZkKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfVkFMVUUsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHZvaWQqIGRhdGEgPSBudWxscHRyOworICAgIEVycm9yIGVycm9yID0KKyAgICAgICAgbG9ja0J1ZmZlcihidWZmZXJIYW5kbGUsIGNwdVVzYWdlLCBhY2Nlc3NSZWdpb24sIGZlbmNlRmQsICZkYXRhKTsKKworICAgIGhpZGxfY2IoZXJyb3IsIGRhdGEpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHcmFsbG9jTWFwcGVyOjpsb2NrWUNiQ3Iodm9pZCogYnVmZmVyLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX2hhbmRsZSYgYWNxdWlyZUZlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NrWUNiQ3JfY2IgaGlkbF9jYikgeworICAgIFlDYkNyTGF5b3V0IGxheW91dCA9IHt9OworCisgICAgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSA9IGdSZWdpc3RlcmVkSGFuZGxlcy0+Z2V0KGJ1ZmZlcik7CisgICAgaWYgKCFidWZmZXJIYW5kbGUpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6QkFEX0JVRkZFUiwgbGF5b3V0KTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpbnQgZmVuY2VGZDsKKyAgICBpZiAoIWdldEZlbmNlRmQoYWNxdWlyZUZlbmNlLCAmZmVuY2VGZCkpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6QkFEX1ZBTFVFLCBsYXlvdXQpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEVycm9yIGVycm9yID0KKyAgICAgICAgbG9ja0J1ZmZlcihidWZmZXJIYW5kbGUsIGNwdVVzYWdlLCBhY2Nlc3NSZWdpb24sIGZlbmNlRmQsICZsYXlvdXQpOworCisgICAgaGlkbF9jYihlcnJvciwgbGF5b3V0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6dW5sb2NrKHZvaWQqIGJ1ZmZlciwgdW5sb2NrX2NiIGhpZGxfY2IpIHsKKyAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlID0gZ1JlZ2lzdGVyZWRIYW5kbGVzLT5nZXQoYnVmZmVyKTsKKyAgICBpZiAoIWJ1ZmZlckhhbmRsZSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfQlVGRkVSLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpbnQgZmVuY2VGZDsKKyAgICBFcnJvciBlcnJvciA9IHVubG9ja0J1ZmZlcihidWZmZXJIYW5kbGUsICZmZW5jZUZkKTsKKyAgICBpZiAoZXJyb3IgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgTkFUSVZFX0hBTkRMRV9ERUNMQVJFX1NUT1JBR0UoZmVuY2VTdG9yYWdlLCAxLCAwKTsKKworICAgICAgICBoaWRsX2NiKGVycm9yLCBnZXRGZW5jZUhhbmRsZShmZW5jZUZkLCBmZW5jZVN0b3JhZ2UpKTsKKworICAgICAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgICAgICBjbG9zZShmZW5jZUZkKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGhpZGxfY2IoZXJyb3IsIG51bGxwdHIpOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK0lNYXBwZXIqIEhJRExfRkVUQ0hfSU1hcHBlcihjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSA9IG51bGxwdHI7CisgICAgaW50IGVyciA9IGh3X2dldF9tb2R1bGUoR1JBTExPQ19IQVJEV0FSRV9NT0RVTEVfSUQsICZtb2R1bGUpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAgQUxPR0UoImZhaWxlZCB0byBnZXQgZ3JhbGxvYyBtb2R1bGUiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgdWludDhfdCBtYWpvciA9IChtb2R1bGUtPm1vZHVsZV9hcGlfdmVyc2lvbiA+PiA4KSAmIDB4ZmY7CisgICAgc3dpdGNoIChtYWpvcikgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gbmV3IEdyYWxsb2MxTWFwcGVyKG1vZHVsZSk7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBuZXcgR3JhbGxvYzBNYXBwZXIobW9kdWxlKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dFKCJ1bmtub3duIGdyYWxsb2MgbW9kdWxlIG1ham9yIHZlcnNpb24gJWQiLCBtYWpvcik7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8wCit9IC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2NNYXBwZXIuaCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jTWFwcGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWExYWVhYQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jTWFwcGVyLmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0NfTUFQUEVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DX01BUFBFUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPHN5c3RlbS93aW5kb3cuaD4KKworI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIG1hcHBlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitjbGFzcyBHcmFsbG9jTWFwcGVyIDogcHVibGljIElNYXBwZXIgeworICAgcHVibGljOgorICAgIC8vIElNYXBwZXIgaW50ZXJmYWNlCisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZURlc2NyaXB0b3IoY29uc3QgQnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURlc2NyaXB0b3JfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGltcG9ydEJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0QnVmZmVyX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvcj4gZnJlZUJ1ZmZlcih2b2lkKiBidWZmZXIpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBsb2NrKHZvaWQqIGJ1ZmZlciwgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfaGFuZGxlJiBhY3F1aXJlRmVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgbG9ja19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gbG9ja1lDYkNyKHZvaWQqIGJ1ZmZlciwgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX2hhbmRsZSYgYWNxdWlyZUZlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9ja1lDYkNyX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiB1bmxvY2sodm9pZCogYnVmZmVyLCB1bmxvY2tfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCB3YWl0RmVuY2VGZChpbnQgZmVuY2VGZCwgY29uc3QgY2hhciogbG9nbmFtZSk7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBib29sIGhpZ2hVc2FnZUJpdHM7CisgICAgICAgIGJvb2wgbGF5ZXJlZEJ1ZmZlcnM7CisgICAgICAgIGJvb2wgdW5yZWdpc3RlckltcGx5RGVsZXRlOworICAgIH0gbUNhcGFiaWxpdGllcyA9IHt9OworCisgICBwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCB2YWxpZGF0ZURlc2NyaXB0b3JJbmZvKAorICAgICAgICBjb25zdCBCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8pIGNvbnN0OworCisgICAgLy8gUmVnaXN0ZXIgYSBidWZmZXIuICBUaGUgaGFuZGxlIGlzIGFscmVhZHkgY2xvbmVkIGJ5IHRoZSBjYWxsZXIuCisgICAgdmlydHVhbCBFcnJvciByZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSA9IDA7CisKKyAgICAvLyBVbnJlZ2lzdGVyIGEgYnVmZmVyLiAgVGhlIGhhbmRsZSBpcyBjbG9zZWQgYW5kIGRlbGV0ZWQgYnkgdGhlCisgICAgLy8gY2FsbGVlIGlmIGFuZCBvbmx5IGlmIG1DYXBhYmlsaXRpZXMudW5yZWdpc3RlckltcGx5RGVsZXRlIGlzIHNldC4KKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSA9IDA7CisKKyAgICAvLyBMb2NrIGEgYnVmZmVyLiAgVGhlIGZlbmNlIGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIuCisgICAgdmlydHVhbCBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sIGludCBmZW5jZUZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiogb3V0RGF0YSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgbG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUNiQ3JMYXlvdXQqIG91dExheW91dCkgPSAwOworCisgICAgLy8gVW5sb2NrIGEgYnVmZmVyLiAgVGhlIHJldHVybmVkIGZlbmNlIGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIuCisgICAgdmlydHVhbCBFcnJvciB1bmxvY2tCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIG91dEZlbmNlRmQpID0gMDsKKworICAgIHN0YXRpYyBib29sIGdldEZlbmNlRmQoY29uc3QgaGlkbF9oYW5kbGUmIGZlbmNlSGFuZGxlLCBpbnQqIG91dEZlbmNlRmQpOworICAgIHN0YXRpYyBoaWRsX2hhbmRsZSBnZXRGZW5jZUhhbmRsZShpbnQgZmVuY2VGZCwgY2hhciogaGFuZGxlU3RvcmFnZSk7Cit9OworCitleHRlcm4gIkMiIElNYXBwZXIqIEhJRExfRkVUQ0hfSU1hcHBlcihjb25zdCBjaGFyKiBuYW1lKTsKKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gLy8gbmFtZXNwYWNlIFYyXzAKK30gLy8gbmFtZXNwYWNlIG1hcHBlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0NfTUFQUEVSX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuaGFsIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTliMmYzYQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMDsKKworZW51bSBFcnJvciA6IGludDMyX3QgeworICAgIE5PTkUgICAgICAgICAgICA9IDAsIC8qKiBubyBlcnJvciAqLworICAgIEJBRF9ERVNDUklQVE9SICA9IDEsIC8qKiBpbnZhbGlkIEJ1ZmZlckRlc2NyaXB0b3IgKi8KKyAgICBCQURfQlVGRkVSICAgICAgPSAyLCAvKiogaW52YWxpZCBidWZmZXIgaGFuZGxlICovCisgICAgQkFEX1ZBTFVFICAgICAgID0gMywgLyoqIGludmFsaWQgd2lkdGgsIGhlaWdodCwgZXRjLiAqLworICAgIC8qIDQgaXMgcmVzZXJ2ZWQgKi8KKyAgICBOT19SRVNPVVJDRVMgICAgPSA1LCAvKiogdGVtcG9yYXJ5IGZhaWx1cmUgZHVlIHRvIHJlc291cmNlIGNvbnRlbnRpb24gKi8KKyAgICAvKiA2IGlzIHJlc2VydmVkICovCisgICAgVU5TVVBQT1JURUQgICAgID0gNywgLyoqIHBlcm1hbmVudCBmYWlsdXJlICovCit9OworCisvKioKKyAqIEEgYnVmZmVyIGRlc2NyaXB0b3IgaXMgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCBvcGFxdWUgZGF0YSByZXR1cm5lZCBieQorICogY3JlYXRlRGVzY3JpcHRvci4gSXQgZGVzY3JpYmVzIHRoZSBwcm9wZXJ0aWVzIG9mIGEgYnVmZmVyIGFuZCBpcyBjb25zdW1lZAorICogYnkgdGhlIGFsbG9jYXRvci4KKyAqLwordHlwZWRlZiB2ZWM8dWludDMyX3Q+IEJ1ZmZlckRlc2NyaXB0b3I7CisKKy8qKgorICogU3RydWN0dXJlIGZvciBkZXNjcmliaW5nIFlDYkNyIGZvcm1hdHMgZm9yIGNvbnN1bXB0aW9uIGJ5IGFwcGxpY2F0aW9ucy4KKyAqIFRoaXMgaXMgdXNlZCB3aXRoIFBpeGVsRm9ybWF0OjpZQ0JDUl8qXzg4OC4KKyAqCisgKiBCdWZmZXIgY2hyb21hIHN1YnNhbXBsaW5nIGlzIGRlZmluZWQgaW4gdGhlIGZvcm1hdC4KKyAqIGUuZy4gUGl4ZWxGb3JtYXQ6OllDQkNSXzQyMF84ODggaGFzIHN1YnNhbXBsaW5nIDQ6MjowLgorICoKKyAqIEJ1ZmZlcnMgbXVzdCBoYXZlIGEgOCBiaXQgZGVwdGguCisgKgorICogeSwgY2IsIGFuZCBjciBwb2ludCB0byB0aGUgZmlyc3QgYnl0ZSBvZiB0aGVpciByZXNwZWN0aXZlIHBsYW5lcy4KKyAqCisgKiBTdHJpZGUgZGVzY3JpYmVzIHRoZSBkaXN0YW5jZSBpbiBieXRlcyBmcm9tIHRoZSBmaXJzdCB2YWx1ZSBvZiBvbmUgcm93IG9mCisgKiB0aGUgaW1hZ2UgdG8gdGhlIGZpcnN0IHZhbHVlIG9mIHRoZSBuZXh0IHJvdy4gSXQgaW5jbHVkZXMgdGhlIHdpZHRoIG9mIHRoZQorICogaW1hZ2UgcGx1cyBwYWRkaW5nLgorICogeVN0cmlkZSBpcyB0aGUgc3RyaWRlIG9mIHRoZSBsdW1hIHBsYW5lLgorICogY1N0cmlkZSBpcyB0aGUgc3RyaWRlIG9mIHRoZSBjaHJvbWEgcGxhbmVzLgorICoKKyAqIGNocm9tYVN0ZXAgaXMgdGhlIGRpc3RhbmNlIGluIGJ5dGVzIGZyb20gb25lIGNocm9tYSBwaXhlbCB2YWx1ZSB0byB0aGUKKyAqIG5leHQuIFRoaXMgaXMgMiBieXRlcyBmb3Igc2VtaXBsYW5hciAoYmVjYXVzZSBjaHJvbWEgdmFsdWVzIGFyZSBpbnRlcmxlYXZlZAorICogYW5kIGVhY2ggY2hyb21hIHZhbHVlIGlzIG9uZSBieXRlKSBhbmQgMSBmb3IgcGxhbmFyLgorICovCitzdHJ1Y3QgWUNiQ3JMYXlvdXQgeworICAgIHBvaW50ZXIgeTsKKyAgICBwb2ludGVyIGNiOworICAgIHBvaW50ZXIgY3I7CisgICAgdWludDMyX3QgeVN0cmlkZTsKKyAgICB1aW50MzJfdCBjU3RyaWRlOworICAgIHVpbnQzMl90IGNocm9tYVN0ZXA7Cit9OwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMGU0YzUKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2NiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfbGlicmFyeV9zdGF0aWMgeworICAgIG5hbWU6ICJsaWJWdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscyIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSIsCisgICAgXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1XYWxsIiwKKyAgICAgICAgIi1XZXh0cmEiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCisgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyIuIl0sCit9CisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxHcmFwaGljc01hcHBlclYyXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxHcmFwaGljc01hcHBlclYyXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlic3luYyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAibGliVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMiLAorICAgICAgICAiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIiwKKyAgICBdLAorICAgIGNmbGFnczogWworICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdleHRyYSIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5jcHAgYi9ncmFwaGljcy9tYXBwZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTM0ODg5Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5jcHAKQEAgLTAsMCArMSwyNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlICJWdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIHRlc3RzIHsKKworR3JhbGxvYzo6R3JhbGxvYygpIHsKKyAgICBpbml0KCk7Cit9CisKK3ZvaWQgR3JhbGxvYzo6aW5pdCgpIHsKKyAgICBtQWxsb2NhdG9yID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUFsbG9jYXRvcj4oKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgbUFsbG9jYXRvci5nZXQoKSkgPDwgImZhaWxlZCB0byBnZXQgYWxsb2NhdG9yIHNlcnZpY2UiOworCisgICAgbU1hcHBlciA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElNYXBwZXI+KCk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIG1NYXBwZXIuZ2V0KCkpIDw8ICJmYWlsZWQgdG8gZ2V0IG1hcHBlciBzZXJ2aWNlIjsKKyAgICBBU1NFUlRfRkFMU0UobU1hcHBlci0+aXNSZW1vdGUoKSkgPDwgIm1hcHBlciBpcyBub3QgaW4gcGFzc3Rocm91Z2ggbW9kZSI7Cit9CisKK0dyYWxsb2M6On5HcmFsbG9jKCkgeworICAgIGZvciAoYXV0byBidWZmZXJIYW5kbGUgOiBtQ2xvbmVkQnVmZmVycykgeworICAgICAgICBhdXRvIGJ1ZmZlciA9IGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oYnVmZmVySGFuZGxlKTsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShidWZmZXIpOworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShidWZmZXIpOworICAgIH0KKyAgICBtQ2xvbmVkQnVmZmVycy5jbGVhcigpOworCisgICAgZm9yIChhdXRvIGJ1ZmZlckhhbmRsZSA6IG1JbXBvcnRlZEJ1ZmZlcnMpIHsKKyAgICAgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIEVYUEVDVF9FUShFcnJvcjo6Tk9ORSwgbU1hcHBlci0+ZnJlZUJ1ZmZlcihidWZmZXIpKQorICAgICAgICAgICAgPDwgImZhaWxlZCB0byBmcmVlIGJ1ZmZlciAiIDw8IGJ1ZmZlcjsKKyAgICB9CisgICAgbUltcG9ydGVkQnVmZmVycy5jbGVhcigpOworfQorCitzcDxJQWxsb2NhdG9yPiBHcmFsbG9jOjpnZXRBbGxvY2F0b3IoKSBjb25zdCB7CisgICAgcmV0dXJuIG1BbGxvY2F0b3I7Cit9CisKK3N0ZDo6c3RyaW5nIEdyYWxsb2M6OmR1bXBEZWJ1Z0luZm8oKSB7CisgICAgc3RkOjpzdHJpbmcgZGVidWdJbmZvOworICAgIG1BbGxvY2F0b3ItPmR1bXBEZWJ1Z0luZm8oCisgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBEZWJ1Z0luZm8pIHsgZGVidWdJbmZvID0gdG1wRGVidWdJbmZvLmNfc3RyKCk7IH0pOworCisgICAgcmV0dXJuIGRlYnVnSW5mbzsKK30KKworY29uc3QgbmF0aXZlX2hhbmRsZV90KiBHcmFsbG9jOjpjbG9uZUJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlKSB7CisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUgPQorICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb25lKHJhd0hhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSk7CisgICAgRVhQRUNUX05FKG51bGxwdHIsIGJ1ZmZlckhhbmRsZSk7CisKKyAgICBpZiAoYnVmZmVySGFuZGxlKSB7CisgICAgICAgIG1DbG9uZWRCdWZmZXJzLmluc2VydChidWZmZXJIYW5kbGUpOworICAgIH0KKworICAgIHJldHVybiBidWZmZXJIYW5kbGU7Cit9CisKK3N0ZDo6dmVjdG9yPGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCo+IEdyYWxsb2M6OmFsbG9jYXRlKAorICAgIGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHVpbnQzMl90IGNvdW50LCBib29sIGltcG9ydCwKKyAgICB1aW50MzJfdCogb3V0U3RyaWRlKSB7CisgICAgc3RkOjp2ZWN0b3I8Y29uc3QgbmF0aXZlX2hhbmRsZV90Kj4gYnVmZmVySGFuZGxlczsKKyAgICBidWZmZXJIYW5kbGVzLnJlc2VydmUoY291bnQpOworICAgIG1BbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICBkZXNjcmlwdG9yLCBjb3VudCwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBTdHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgdG1wQnVmZmVycykgeworICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBhbGxvY2F0ZSBidWZmZXJzIjsKKyAgICAgICAgICAgIEFTU0VSVF9FUShjb3VudCwgdG1wQnVmZmVycy5zaXplKCkpIDw8ICJpbnZhbGlkIGJ1ZmZlciBhcnJheSI7CisKKyAgICAgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGltcG9ydCkgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhhbmRsZXMucHVzaF9iYWNrKGltcG9ydEJ1ZmZlcih0bXBCdWZmZXJzW2ldKSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVySGFuZGxlcy5wdXNoX2JhY2soY2xvbmVCdWZmZXIodG1wQnVmZmVyc1tpXSkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChvdXRTdHJpZGUpIHsKKyAgICAgICAgICAgICAgICAqb3V0U3RyaWRlID0gdG1wU3RyaWRlOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgIGlmICg6OnRlc3Rpbmc6OlRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSB7CisgICAgICAgIGJ1ZmZlckhhbmRsZXMuY2xlYXIoKTsKKyAgICB9CisKKyAgICByZXR1cm4gYnVmZmVySGFuZGxlczsKK30KKworY29uc3QgbmF0aXZlX2hhbmRsZV90KiBHcmFsbG9jOjphbGxvY2F0ZSgKKyAgICBjb25zdCBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8sIGJvb2wgaW1wb3J0LAorICAgIHVpbnQzMl90KiBvdXRTdHJpZGUpIHsKKyAgICBCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IgPSBjcmVhdGVEZXNjcmlwdG9yKGRlc2NyaXB0b3JJbmZvKTsKKyAgICBpZiAoOjp0ZXN0aW5nOjpUZXN0OjpIYXNGYXRhbEZhaWx1cmUoKSkgeworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBhdXRvIGJ1ZmZlcnMgPSBhbGxvY2F0ZShkZXNjcmlwdG9yLCAxLCBpbXBvcnQsIG91dFN0cmlkZSk7CisgICAgaWYgKDo6dGVzdGluZzo6VGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGJ1ZmZlcnNbMF07Cit9CisKK3NwPElNYXBwZXI+IEdyYWxsb2M6OmdldE1hcHBlcigpIGNvbnN0IHsKKyAgICByZXR1cm4gbU1hcHBlcjsKK30KKworQnVmZmVyRGVzY3JpcHRvciBHcmFsbG9jOjpjcmVhdGVEZXNjcmlwdG9yKAorICAgIGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBkZXNjcmlwdG9ySW5mbykgeworICAgIEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBtTWFwcGVyLT5jcmVhdGVEZXNjcmlwdG9yKAorICAgICAgICBkZXNjcmlwdG9ySW5mbywgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBEZXNjcmlwdG9yKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIGNyZWF0ZSBkZXNjcmlwdG9yIjsKKyAgICAgICAgICAgIGRlc2NyaXB0b3IgPSB0bXBEZXNjcmlwdG9yOworICAgICAgICB9KTsKKworICAgIHJldHVybiBkZXNjcmlwdG9yOworfQorCitjb25zdCBuYXRpdmVfaGFuZGxlX3QqIEdyYWxsb2M6OmltcG9ydEJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlKSB7CisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUgPSBudWxscHRyOworICAgIG1NYXBwZXItPmltcG9ydEJ1ZmZlcigKKyAgICAgICAgcmF3SGFuZGxlLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcEJ1ZmZlcikgeworICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBpbXBvcnQgYnVmZmVyICVwIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgcmF3SGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpOworICAgICAgICAgICAgYnVmZmVySGFuZGxlID0gc3RhdGljX2Nhc3Q8Y29uc3QgbmF0aXZlX2hhbmRsZV90Kj4odG1wQnVmZmVyKTsKKyAgICAgICAgfSk7CisKKyAgICBpZiAoYnVmZmVySGFuZGxlKSB7CisgICAgICAgIG1JbXBvcnRlZEJ1ZmZlcnMuaW5zZXJ0KGJ1ZmZlckhhbmRsZSk7CisgICAgfQorCisgICAgcmV0dXJuIGJ1ZmZlckhhbmRsZTsKK30KKwordm9pZCBHcmFsbG9jOjpmcmVlQnVmZmVyKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlKSB7CisgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisKKyAgICBpZiAobUltcG9ydGVkQnVmZmVycy5lcmFzZShidWZmZXJIYW5kbGUpKSB7CisgICAgICAgIEVycm9yIGVycm9yID0gbU1hcHBlci0+ZnJlZUJ1ZmZlcihidWZmZXIpOworICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIGVycm9yKSA8PCAiZmFpbGVkIHRvIGZyZWUgYnVmZmVyICIgPDwgYnVmZmVyOworICAgIH0gZWxzZSB7CisgICAgICAgIG1DbG9uZWRCdWZmZXJzLmVyYXNlKGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoYnVmZmVyKTsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoYnVmZmVyKTsKKyAgICB9Cit9CisKK3ZvaWQqIEdyYWxsb2M6OmxvY2soY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sIGludCBhY3F1aXJlRmVuY2UpIHsKKyAgICBhdXRvIGJ1ZmZlciA9IGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oYnVmZmVySGFuZGxlKTsKKworICAgIE5BVElWRV9IQU5ETEVfREVDTEFSRV9TVE9SQUdFKGFjcXVpcmVGZW5jZVN0b3JhZ2UsIDEsIDApOworICAgIGhpZGxfaGFuZGxlIGFjcXVpcmVGZW5jZUhhbmRsZTsKKyAgICBpZiAoYWNxdWlyZUZlbmNlID49IDApIHsKKyAgICAgICAgYXV0byBoID0gbmF0aXZlX2hhbmRsZV9pbml0KGFjcXVpcmVGZW5jZVN0b3JhZ2UsIDEsIDApOworICAgICAgICBoLT5kYXRhWzBdID0gYWNxdWlyZUZlbmNlOworICAgICAgICBhY3F1aXJlRmVuY2VIYW5kbGUgPSBoOworICAgIH0KKworICAgIHZvaWQqIGRhdGEgPSBudWxscHRyOworICAgIG1NYXBwZXItPmxvY2soYnVmZmVyLCBjcHVVc2FnZSwgYWNjZXNzUmVnaW9uLCBhY3F1aXJlRmVuY2VIYW5kbGUsCisgICAgICAgICAgICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcERhdGEpIHsKKyAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiZmFpbGVkIHRvIGxvY2sgYnVmZmVyICIgPDwgYnVmZmVyOworICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSB0bXBEYXRhOworICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICBpZiAoYWNxdWlyZUZlbmNlID49IDApIHsKKyAgICAgICAgY2xvc2UoYWNxdWlyZUZlbmNlKTsKKyAgICB9CisKKyAgICByZXR1cm4gZGF0YTsKK30KKworWUNiQ3JMYXlvdXQgR3JhbGxvYzo6bG9ja1lDYkNyKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWNxdWlyZUZlbmNlKSB7CisgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisKKyAgICBOQVRJVkVfSEFORExFX0RFQ0xBUkVfU1RPUkFHRShhY3F1aXJlRmVuY2VTdG9yYWdlLCAxLCAwKTsKKyAgICBoaWRsX2hhbmRsZSBhY3F1aXJlRmVuY2VIYW5kbGU7CisgICAgaWYgKGFjcXVpcmVGZW5jZSA+PSAwKSB7CisgICAgICAgIGF1dG8gaCA9IG5hdGl2ZV9oYW5kbGVfaW5pdChhY3F1aXJlRmVuY2VTdG9yYWdlLCAxLCAwKTsKKyAgICAgICAgaC0+ZGF0YVswXSA9IGFjcXVpcmVGZW5jZTsKKyAgICAgICAgYWNxdWlyZUZlbmNlSGFuZGxlID0gaDsKKyAgICB9CisKKyAgICBZQ2JDckxheW91dCBsYXlvdXQgPSB7fTsKKyAgICBtTWFwcGVyLT5sb2NrWUNiQ3IoYnVmZmVyLCBjcHVVc2FnZSwgYWNjZXNzUmVnaW9uLCBhY3F1aXJlRmVuY2VIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wTGF5b3V0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJmYWlsZWQgdG8gbG9ja1lDYkNyIGJ1ZmZlciAiIDw8IGJ1ZmZlcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dCA9IHRtcExheW91dDsKKyAgICAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICBpZiAoYWNxdWlyZUZlbmNlID49IDApIHsKKyAgICAgICAgY2xvc2UoYWNxdWlyZUZlbmNlKTsKKyAgICB9CisKKyAgICByZXR1cm4gbGF5b3V0OworfQorCitpbnQgR3JhbGxvYzo6dW5sb2NrKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlKSB7CisgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisKKyAgICBpbnQgcmVsZWFzZUZlbmNlID0gLTE7CisgICAgbU1hcHBlci0+dW5sb2NrKAorICAgICAgICBidWZmZXIsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wUmVsZWFzZUZlbmNlKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIHVubG9jayBidWZmZXIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgYnVmZmVyOworCisgICAgICAgICAgICBhdXRvIGZlbmNlSGFuZGxlID0gdG1wUmVsZWFzZUZlbmNlLmdldE5hdGl2ZUhhbmRsZSgpOworICAgICAgICAgICAgaWYgKGZlbmNlSGFuZGxlKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDAsIGZlbmNlSGFuZGxlLT5udW1JbnRzKSA8PCAiaW52YWxpZCBmZW5jZSBoYW5kbGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZmVuY2VIYW5kbGU7CisgICAgICAgICAgICAgICAgaWYgKGZlbmNlSGFuZGxlLT5udW1GZHMgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICByZWxlYXNlRmVuY2UgPSBkdXAoZmVuY2VIYW5kbGUtPmRhdGFbMF0pOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTFQoMCwgcmVsZWFzZUZlbmNlKSA8PCAiZmFpbGVkIHRvIGR1cCBmZW5jZSBmZCI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDAsIGZlbmNlSGFuZGxlLT5udW1GZHMpCisgICAgICAgICAgICAgICAgICAgICAgICA8PCAiIGludmFsaWQgZmVuY2UgaGFuZGxlICIgPDwgZmVuY2VIYW5kbGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgIHJldHVybiByZWxlYXNlRmVuY2U7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB0ZXN0cworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1N2YyMGIKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzLmgKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgVlRTX0hBTF9HUkFQSElDU19NQVBQRVJfVVRJTFMKKyNkZWZpbmUgVlRTX0hBTF9HUkFQSElDU19NQVBQRVJfVVRJTFMKKworI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8dXRpbHMvU3Ryb25nUG9pbnRlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIHRlc3RzIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjphbGxvY2F0b3I6OlYyXzA6OklBbGxvY2F0b3I7CisKKy8vIEEgd3JhcHBlciB0byBJQWxsb2NhdG9yIGFuZCBJTWFwcGVyLgorY2xhc3MgR3JhbGxvYyB7CisgICBwdWJsaWM6CisgICAgR3JhbGxvYygpOworICAgIH5HcmFsbG9jKCk7CisKKyAgICAvLyBJQWxsb2NhdG9yIG1ldGhvZHMKKworICAgIHNwPElBbGxvY2F0b3I+IGdldEFsbG9jYXRvcigpIGNvbnN0OworCisgICAgc3RkOjpzdHJpbmcgZHVtcERlYnVnSW5mbygpOworCisgICAgLy8gV2hlbiBpbXBvcnQgaXMgZmFsc2UsIHRoaXMgc2ltcGx5IGNhbGxzIElBbGxvY2F0b3I6OmFsbG9jYXRlLiBXaGVuIGltcG9ydAorICAgIC8vIGlzIHRydWUsIHRoZSByZXR1cm5lZCBidWZmZXJzIGFyZSBhbHNvIGltcG9ydGVkIGludG8gdGhlIG1hcHBlci4KKyAgICAvLworICAgIC8vIEVpdGhlciBjYXNlLCB0aGUgcmV0dXJuZWQgYnVmZmVycyBtdXN0IGJlIGZyZWVkIHdpdGggZnJlZUJ1ZmZlci4KKyAgICBzdGQ6OnZlY3Rvcjxjb25zdCBuYXRpdmVfaGFuZGxlX3QqPiBhbGxvY2F0ZSgKKyAgICAgICAgY29uc3QgQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgdWludDMyX3QgY291bnQsIGJvb2wgaW1wb3J0ID0gdHJ1ZSwKKyAgICAgICAgdWludDMyX3QqIG91dFN0cmlkZSA9IG51bGxwdHIpOworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYWxsb2NhdGUoCisgICAgICAgIGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBkZXNjcmlwdG9ySW5mbywgYm9vbCBpbXBvcnQgPSB0cnVlLAorICAgICAgICB1aW50MzJfdCogb3V0U3RyaWRlID0gbnVsbHB0cik7CisKKyAgICAvLyBJTWFwcGVyIG1ldGhvZHMKKworICAgIHNwPElNYXBwZXI+IGdldE1hcHBlcigpIGNvbnN0OworCisgICAgQnVmZmVyRGVzY3JpcHRvciBjcmVhdGVEZXNjcmlwdG9yKAorICAgICAgICBjb25zdCBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8pOworCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBpbXBvcnRCdWZmZXIoY29uc3QgaGlkbF9oYW5kbGUmIHJhd0hhbmRsZSk7CisgICAgdm9pZCBmcmVlQnVmZmVyKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlKTsKKworICAgIC8vIFdlIHVzZSBmZCBpbnN0ZWFkIG9mIGhpZGxfaGFuZGxlIGluIHRoZXNlIGZ1bmN0aW9ucyB0byBwYXNzIGZlbmNlcworICAgIC8vIGluIGFuZCBvdXQgb2YgdGhlIG1hcHBlci4gIFRoZSBvd25lcnNoaXAgb2YgdGhlIGZkIGlzIGFsd2F5cyB0cmFuc2ZlcnJlZAorICAgIC8vIHdpdGggZWFjaCBvZiB0aGVzZSBmdW5jdGlvbnMuCisgICAgdm9pZCogbG9jayhjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSwgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sIGludCBhY3F1aXJlRmVuY2UpOworICAgIFlDYkNyTGF5b3V0IGxvY2tZQ2JDcihjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgY3B1VXNhZ2UsIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFjcXVpcmVGZW5jZSk7CisgICAgaW50IHVubG9jayhjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSk7CisKKyAgIHByaXZhdGU6CisgICAgdm9pZCBpbml0KCk7CisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBjbG9uZUJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlKTsKKworICAgIHNwPElBbGxvY2F0b3I+IG1BbGxvY2F0b3I7CisgICAgc3A8SU1hcHBlcj4gbU1hcHBlcjsKKworICAgIC8vIEtlZXAgdHJhY2sgb2YgYWxsIGNsb25lZCBhbmQgaW1wb3J0ZWQgaGFuZGxlcy4gIFdoZW4gYSB0ZXN0IGZhaWxzIHdpdGgKKyAgICAvLyBBU1NFUlRfKiwgdGhlIGRlc3RydWN0b3Igd2lsbCBmcmVlIHRoZSBoYW5kbGVzIGZvciB0aGUgdGVzdC4KKyAgICBzdGQ6OnVub3JkZXJlZF9zZXQ8Y29uc3QgbmF0aXZlX2hhbmRsZV90Kj4gbUNsb25lZEJ1ZmZlcnM7CisgICAgc3RkOjp1bm9yZGVyZWRfc2V0PGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCo+IG1JbXBvcnRlZEJ1ZmZlcnM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgdGVzdHMKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbWFwcGVyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBWVFNfSEFMX0dSQVBISUNTX01BUFBFUl9VVElMUwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclYyXzBUYXJnZXRUZXN0LmNwcCBiL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NNYXBwZXJWMl8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc0MDEzYgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NNYXBwZXJWMl8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw0MTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbEdyYXBoaWNzTWFwcGVyVjJfMFRhcmdldFRlc3QiCisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPHN5bmMvc3luYy5oPgorI2luY2x1ZGUgIlZ0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIG1hcHBlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgdGVzdHMgeworbmFtZXNwYWNlIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OworCitjbGFzcyBHcmFwaGljc01hcHBlckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwcm90ZWN0ZWQ6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYyA9IHN0ZDo6bWFrZV91bmlxdWU8R3JhbGxvYz4oKSk7CisKKyAgICAgIG1EdW1teURlc2NyaXB0b3JJbmZvLndpZHRoID0gNjQ7CisgICAgICBtRHVtbXlEZXNjcmlwdG9ySW5mby5oZWlnaHQgPSA2NDsKKyAgICAgIG1EdW1teURlc2NyaXB0b3JJbmZvLmxheWVyQ291bnQgPSAxOworICAgICAgbUR1bW15RGVzY3JpcHRvckluZm8uZm9ybWF0ID0gUGl4ZWxGb3JtYXQ6OlJHQkFfODg4ODsKKyAgICAgIG1EdW1teURlc2NyaXB0b3JJbmZvLnVzYWdlID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KAorICAgICAgICAgIEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfT0ZURU4gfCBCdWZmZXJVc2FnZTo6Q1BVX1JFQURfT0ZURU4pOworICB9CisKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgc3RkOjp1bmlxdWVfcHRyPEdyYWxsb2M+IG1HcmFsbG9jOworICBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyBtRHVtbXlEZXNjcmlwdG9ySW5mb3t9OworfTsKKworLyoqCisgKiBUZXN0IElBbGxvY2F0b3I6OmR1bXBEZWJ1Z0luZm8gYnkgY2FsbGluZyBpdC4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEFsbG9jYXRvckR1bXBEZWJ1Z0luZm8pIHsKKyAgICBtR3JhbGxvYy0+ZHVtcERlYnVnSW5mbygpOworfQorCisvKioKKyAqIFRlc3QgSUFsbG9jYXRvcjo6YWxsb2NhdGUgd2l0aCB2YWxpZCBidWZmZXIgZGVzY3JpcHRvcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBBbGxvY2F0b3JBbGxvY2F0ZSkgeworICAgIEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgZGVzY3JpcHRvciA9IG1HcmFsbG9jLT5jcmVhdGVEZXNjcmlwdG9yKG1EdW1teURlc2NyaXB0b3JJbmZvKSk7CisKKyAgICBmb3IgKHVpbnQzMl90IGNvdW50ID0gMDsgY291bnQgPCA1OyBjb3VudCsrKSB7CisgICAgICAgIHN0ZDo6dmVjdG9yPGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCo+IGJ1ZmZlckhhbmRsZXM7CisgICAgICAgIHVpbnQzMl90IHN0cmlkZTsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoYnVmZmVySGFuZGxlcyA9IG1HcmFsbG9jLT5hbGxvY2F0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IsIGNvdW50LCBmYWxzZSwgJnN0cmlkZSkpOworCisgICAgICAgIGlmIChjb3VudCA+PSAxKSB7CisgICAgICAgICAgICBFWFBFQ1RfTEUobUR1bW15RGVzY3JpcHRvckluZm8ud2lkdGgsIHN0cmlkZSkKKyAgICAgICAgICAgICAgICA8PCAiaW52YWxpZCBidWZmZXIgc3RyaWRlIjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoYXV0byBidWZmZXJIYW5kbGUgOiBidWZmZXJIYW5kbGVzKSB7CisgICAgICAgICAgICBtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihidWZmZXJIYW5kbGUpOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIFRlc3QgSUFsbG9jYXRvcjo6YWxsb2NhdGUgd2l0aCBpbnZhbGlkIGJ1ZmZlciBkZXNjcmlwdG9ycy4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEFsbG9jYXRvckFsbG9jYXRlTmVnYXRpdmUpIHsKKyAgICAvLyB0aGlzIGFzc3VtZXMgYW55IHZhbGlkIGRlc2NyaXB0b3IgaXMgbm9uLWVtcHR5CisgICAgQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yOworICAgIG1HcmFsbG9jLT5nZXRBbGxvY2F0b3IoKS0+YWxsb2NhdGUoCisgICAgICAgIGRlc2NyaXB0b3IsIDEsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYsIGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9ERVNDUklQVE9SLCB0bXBFcnJvcik7CisgICAgICAgIH0pOworfQorCisvKioKKyAqIFRlc3QgSUFsbG9jYXRvcjo6YWxsb2NhdGUgZG9lcyBub3QgbGVhay4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEFsbG9jYXRvckFsbG9jYXRlTm9MZWFrKSB7CisgICAgYXV0byBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisgICAgaW5mby53aWR0aCA9IDEwMjQ7CisgICAgaW5mby5oZWlnaHQgPSAxMDI0OworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyMDQ4OyBpKyspIHsKKyAgICAgICAgYXV0byBidWZmZXJIYW5kbGUgPSBtR3JhbGxvYy0+YWxsb2NhdGUoaW5mbywgZmFsc2UpOworICAgICAgICBtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihidWZmZXJIYW5kbGUpOworICAgIH0KK30KKworLyoqCisgKiBUZXN0IElNYXBwZXI6OmNyZWF0ZURlc2NyaXB0b3Igd2l0aCB2YWxpZCBkZXNjcmlwdG9yIGluZm8uCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBDcmVhdGVEZXNjcmlwdG9yQmFzaWMpIHsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYy0+Y3JlYXRlRGVzY3JpcHRvcihtRHVtbXlEZXNjcmlwdG9ySW5mbykpOworfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6Y3JlYXRlRGVzY3JpcHRvciB3aXRoIGludmFsaWQgZGVzY3JpcHRvciBpbmZvLgorICovCitURVNUX0YoR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCwgQ3JlYXRlRGVzY3JpcHRvck5lZ2F0aXZlKSB7CisgICAgYXV0byBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisgICAgaW5mby53aWR0aCA9IDA7CisgICAgbUdyYWxsb2MtPmdldE1hcHBlcigpLT5jcmVhdGVEZXNjcmlwdG9yKAorICAgICAgICBpbmZvLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9WQUxVRSwgdG1wRXJyb3IpCisgICAgICAgICAgICAgICAgPDwgImNyZWF0ZURlc2NyaXB0b3IgZGlkIG5vdCBmYWlsIHdpdGggQkFEX1ZBTFVFIjsKKyAgICAgICAgfSk7Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjppbXBvcnRCdWZmZXIgYW5kIElNYXBwZXI6OmZyZWVCdWZmZXIgd2l0aCBhbGxvY2F0ZWQgYnVmZmVycy4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEltcG9ydEZyZWVCdWZmZXJCYXNpYykgeworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGJ1ZmZlckhhbmRsZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1HcmFsbG9jLT5hbGxvY2F0ZShtRHVtbXlEZXNjcmlwdG9ySW5mbywgdHJ1ZSkpOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jLT5mcmVlQnVmZmVyKGJ1ZmZlckhhbmRsZSkpOworfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6aW1wb3J0QnVmZmVyIGFuZCBJTWFwcGVyOjpmcmVlQnVmZmVyIHdpdGggY2xvbmVkIGJ1ZmZlcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBJbXBvcnRGcmVlQnVmZmVyQ2xvbmUpIHsKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGNsb25lZEJ1ZmZlckhhbmRsZTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgY2xvbmVkQnVmZmVySGFuZGxlID0gbUdyYWxsb2MtPmFsbG9jYXRlKG1EdW1teURlc2NyaXB0b3JJbmZvLCBmYWxzZSkpOworCisgICAgLy8gQSBjbG9uZWQgaGFuZGxlIGlzIGEgcmF3IGhhbmRsZS4gQ2hlY2sgdGhhdCB3ZSBjYW4gaW1wb3J0IGl0IG11bHRpcGxlCisgICAgLy8gdGltZXMuCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBpbXBvcnRlZEJ1ZmZlckhhbmRsZXNbMl07CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoaW1wb3J0ZWRCdWZmZXJIYW5kbGVzWzBdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUdyYWxsb2MtPmltcG9ydEJ1ZmZlcihjbG9uZWRCdWZmZXJIYW5kbGUpKTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShpbXBvcnRlZEJ1ZmZlckhhbmRsZXNbMV0gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtR3JhbGxvYy0+aW1wb3J0QnVmZmVyKGNsb25lZEJ1ZmZlckhhbmRsZSkpOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jLT5mcmVlQnVmZmVyKGltcG9ydGVkQnVmZmVySGFuZGxlc1swXSkpOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jLT5mcmVlQnVmZmVyKGltcG9ydGVkQnVmZmVySGFuZGxlc1sxXSkpOworCisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUobUdyYWxsb2MtPmZyZWVCdWZmZXIoY2xvbmVkQnVmZmVySGFuZGxlKSk7Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjppbXBvcnRCdWZmZXIgYW5kIElNYXBwZXI6OmZyZWVCdWZmZXIgY3Jvc3MgbWFwcGVyIGluc3RhbmNlcy4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEltcG9ydEZyZWVCdWZmZXJTaW5nbGV0b24pIHsKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIHJhd0hhbmRsZTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgcmF3SGFuZGxlID0gbUdyYWxsb2MtPmFsbG9jYXRlKG1EdW1teURlc2NyaXB0b3JJbmZvLCBmYWxzZSkpOworCisgICAgbmF0aXZlX2hhbmRsZV90KiBpbXBvcnRlZEhhbmRsZSA9IG51bGxwdHI7CisgICAgbUdyYWxsb2MtPmdldE1hcHBlcigpLT5pbXBvcnRCdWZmZXIoCisgICAgICAgIHJhd0hhbmRsZSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiBidWZmZXIpIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpOworICAgICAgICAgICAgaW1wb3J0ZWRIYW5kbGUgPSBzdGF0aWNfY2FzdDxuYXRpdmVfaGFuZGxlX3QqPihidWZmZXIpOworICAgICAgICB9KTsKKworICAgIC8vIGZyZWUgdGhlIGltcG9ydGVkIGhhbmRsZSB3aXRoIGFub3RoZXIgbWFwcGVyCisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYWxsb2M+IGFub3RoZXJHcmFsbG9jOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGFub3RoZXJHcmFsbG9jID0gc3RkOjptYWtlX3VuaXF1ZTxHcmFsbG9jPigpKTsKKyAgICBFcnJvciBlcnJvciA9IG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+ZnJlZUJ1ZmZlcihpbXBvcnRlZEhhbmRsZSk7CisgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCBlcnJvcik7CisKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihyYXdIYW5kbGUpKTsKK30KKworLyoqCisgKiBUZXN0IElNYXBwZXI6OmltcG9ydEJ1ZmZlciBhbmQgSU1hcHBlcjo6ZnJlZUJ1ZmZlciBkbyBub3QgbGVhay4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEltcG9ydEZyZWVCdWZmZXJOb0xlYWspIHsKKyAgICBhdXRvIGluZm8gPSBtRHVtbXlEZXNjcmlwdG9ySW5mbzsKKyAgICBpbmZvLndpZHRoID0gMTAyNDsKKyAgICBpbmZvLmhlaWdodCA9IDEwMjQ7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwNDg7IGkrKykgeworICAgICAgICBhdXRvIGJ1ZmZlckhhbmRsZSA9IG1HcmFsbG9jLT5hbGxvY2F0ZShpbmZvLCB0cnVlKTsKKyAgICAgICAgbUdyYWxsb2MtPmZyZWVCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICB9Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjppbXBvcnRCdWZmZXIgd2l0aCBpbnZhbGlkIGJ1ZmZlcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBJbXBvcnRCdWZmZXJOZWdhdGl2ZSkgeworICAgIG5hdGl2ZV9oYW5kbGVfdCogaW52YWxpZEhhbmRsZSA9IG51bGxwdHI7CisgICAgbUdyYWxsb2MtPmdldE1hcHBlcigpLT5pbXBvcnRCdWZmZXIoCisgICAgICAgIGludmFsaWRIYW5kbGUsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvcjo6QkFEX0JVRkZFUiwgdG1wRXJyb3IpCisgICAgICAgICAgICAgICAgPDwgImltcG9ydEJ1ZmZlciB3aXRoIG51bGxwdHIgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisgICAgICAgIH0pOworCisgICAgaW52YWxpZEhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDAsIDApOworICAgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+aW1wb3J0QnVmZmVyKGludmFsaWRIYW5kbGUsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYpIHsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCB0bXBFcnJvcikKKyAgICAgICAgICAgIDw8ICJpbXBvcnRCdWZmZXIgd2l0aCBpbnZhbGlkIGhhbmRsZSBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKyAgICB9KTsKKyAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShpbnZhbGlkSGFuZGxlKTsKK30KKworLyoqCisgKiBUZXN0IElNYXBwZXI6OmZyZWVCdWZmZXIgd2l0aCBpbnZhbGlkIGJ1ZmZlcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBGcmVlQnVmZmVyTmVnYXRpdmUpIHsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGludmFsaWRIYW5kbGUgPSBudWxscHRyOworICAgIEVycm9yIGVycm9yID0gbUdyYWxsb2MtPmdldE1hcHBlcigpLT5mcmVlQnVmZmVyKGludmFsaWRIYW5kbGUpOworICAgIEVYUEVDVF9FUShFcnJvcjo6QkFEX0JVRkZFUiwgZXJyb3IpCisgICAgICAgIDw8ICJmcmVlQnVmZmVyIHdpdGggbnVsbHB0ciBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKworICAgIGludmFsaWRIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgwLCAwKTsKKyAgICBlcnJvciA9IG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+ZnJlZUJ1ZmZlcihpbnZhbGlkSGFuZGxlKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIGVycm9yKQorICAgICAgICA8PCAiZnJlZUJ1ZmZlciB3aXRoIGludmFsaWQgaGFuZGxlIGRpZCBub3QgZmFpbCB3aXRoIEJBRF9CVUZGRVIiOworICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGludmFsaWRIYW5kbGUpOworCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBjbG9uZWRCdWZmZXJIYW5kbGU7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICAgIGNsb25lZEJ1ZmZlckhhbmRsZSA9IG1HcmFsbG9jLT5hbGxvY2F0ZShtRHVtbXlEZXNjcmlwdG9ySW5mbywgZmFsc2UpKTsKKyAgICBlcnJvciA9IG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+ZnJlZUJ1ZmZlcihpbnZhbGlkSGFuZGxlKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIGVycm9yKQorICAgICAgICA8PCAiZnJlZUJ1ZmZlciB3aXRoIHVuLWltcG9ydGVkIGhhbmRsZSBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKworICAgIG1HcmFsbG9jLT5mcmVlQnVmZmVyKGNsb25lZEJ1ZmZlckhhbmRsZSk7Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjpsb2NrIGFuZCBJTWFwcGVyOjp1bmxvY2suCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBMb2NrVW5sb2NrQmFzaWMpIHsKKyAgICBjb25zdCBhdXRvJiBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZTsKKyAgICB1aW50MzJfdCBzdHJpZGU7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoYnVmZmVySGFuZGxlID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUdyYWxsb2MtPmFsbG9jYXRlKGluZm8sIHRydWUsICZzdHJpZGUpKTsKKworICAgIC8vIGxvY2sgYnVmZmVyIGZvciB3cml0aW5nCisgICAgY29uc3QgSU1hcHBlcjo6UmVjdCByZWdpb257MCwgMCwgc3RhdGljX2Nhc3Q8aW50MzJfdD4oaW5mby53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oaW5mby5oZWlnaHQpfTsKKyAgICBpbnQgZmVuY2UgPSAtMTsKKyAgICB1aW50OF90KiBkYXRhOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obUdyYWxsb2MtPmxvY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgaW5mby51c2FnZSwgcmVnaW9uLCBmZW5jZSkpKTsKKworICAgIC8vIFJHQkFfODg4OAorICAgIHNpemVfdCBzdHJpZGVJbkJ5dGVzID0gc3RyaWRlICogNDsKKyAgICBzaXplX3Qgd3JpdGVJbkJ5dGVzID0gaW5mby53aWR0aCAqIDQ7CisKKyAgICBmb3IgKHVpbnQzMl90IHkgPSAwOyB5IDwgaW5mby5oZWlnaHQ7IHkrKykgeworICAgICAgICBtZW1zZXQoZGF0YSwgeSwgd3JpdGVJbkJ5dGVzKTsKKyAgICAgICAgZGF0YSArPSBzdHJpZGVJbkJ5dGVzOworICAgIH0KKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGZlbmNlID0gbUdyYWxsb2MtPnVubG9jayhidWZmZXJIYW5kbGUpKTsKKworICAgIC8vIGxvY2sgYWdhaW4gZm9yIHJlYWRpbmcKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShkYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1HcmFsbG9jLT5sb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJIYW5kbGUsIGluZm8udXNhZ2UsIHJlZ2lvbiwgZmVuY2UpKSk7CisgICAgZm9yICh1aW50MzJfdCB5ID0gMDsgeSA8IGluZm8uaGVpZ2h0OyB5KyspIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3cml0ZUluQnl0ZXM7IGkrKykgeworICAgICAgICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHkpLCBkYXRhW2ldKTsKKyAgICAgICAgfQorICAgICAgICBkYXRhICs9IHN0cmlkZUluQnl0ZXM7CisgICAgfQorCisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoZmVuY2UgPSBtR3JhbGxvYy0+dW5sb2NrKGJ1ZmZlckhhbmRsZSkpOworICAgIGlmIChmZW5jZSA+PSAwKSB7CisgICAgICAgIGNsb3NlKGZlbmNlKTsKKyAgICB9Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjpsb2NrWUNiQ3IuICBUaGlzIGxvY2tzIGEgWVYxMiBidWZmZXIsIGFuZCBtYWtlcyBzdXJlIHdlIGNhbgorICogd3JpdGUgdG8gYW5kIHJlYWQgZnJvbSBpdC4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIExvY2tZQ2JDckJhc2ljKSB7CisgICAgYXV0byBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisgICAgaW5mby5mb3JtYXQgPSBQaXhlbEZvcm1hdDo6WVYxMjsKKworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlOworICAgIHVpbnQzMl90IHN0cmlkZTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShidWZmZXJIYW5kbGUgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtR3JhbGxvYy0+YWxsb2NhdGUoaW5mbywgdHJ1ZSwgJnN0cmlkZSkpOworCisgICAgLy8gbG9jayBidWZmZXIgZm9yIHdyaXRpbmcKKyAgICBjb25zdCBJTWFwcGVyOjpSZWN0IHJlZ2lvbnswLCAwLCBzdGF0aWNfY2FzdDxpbnQzMl90PihpbmZvLndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihpbmZvLmhlaWdodCl9OworICAgIGludCBmZW5jZSA9IC0xOworICAgIFlDYkNyTGF5b3V0IGxheW91dDsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgbGF5b3V0ID0gbUdyYWxsb2MtPmxvY2tZQ2JDcihidWZmZXJIYW5kbGUsIGluZm8udXNhZ2UsIHJlZ2lvbiwgZmVuY2UpKTsKKworICAgIGF1dG8geURhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obGF5b3V0LnkpOworICAgIGF1dG8gY2JEYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGxheW91dC5jYik7CisgICAgYXV0byBjckRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obGF5b3V0LmNyKTsKKyAgICBmb3IgKHVpbnQzMl90IHkgPSAwOyB5IDwgaW5mby5oZWlnaHQ7IHkrKykgeworICAgICAgICBmb3IgKHVpbnQzMl90IHggPSAwOyB4IDwgaW5mby53aWR0aDsgeCsrKSB7CisgICAgICAgICAgICBhdXRvIHZhbCA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGluZm8uaGVpZ2h0ICogeSArIHgpOworCisgICAgICAgICAgICB5RGF0YVtsYXlvdXQueVN0cmlkZSAqIHkgKyB4XSA9IHZhbDsKKyAgICAgICAgICAgIGlmICh5ICUgMiA9PSAwICYmIHggJSAyID09IDApIHsKKyAgICAgICAgICAgICAgICBjYkRhdGFbbGF5b3V0LmNTdHJpZGUgKiB5IC8gMiArIHggLyAyXSA9IHZhbDsKKyAgICAgICAgICAgICAgICBjckRhdGFbbGF5b3V0LmNTdHJpZGUgKiB5IC8gMiArIHggLyAyXSA9IHZhbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGZlbmNlID0gbUdyYWxsb2MtPnVubG9jayhidWZmZXJIYW5kbGUpKTsKKworICAgIC8vIGxvY2sgYWdhaW4gZm9yIHJlYWRpbmcKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgbGF5b3V0ID0gbUdyYWxsb2MtPmxvY2tZQ2JDcihidWZmZXJIYW5kbGUsIGluZm8udXNhZ2UsIHJlZ2lvbiwgZmVuY2UpKTsKKworICAgIHlEYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGxheW91dC55KTsKKyAgICBjYkRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obGF5b3V0LmNiKTsKKyAgICBjckRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obGF5b3V0LmNyKTsKKyAgICBmb3IgKHVpbnQzMl90IHkgPSAwOyB5IDwgaW5mby5oZWlnaHQ7IHkrKykgeworICAgICAgICBmb3IgKHVpbnQzMl90IHggPSAwOyB4IDwgaW5mby53aWR0aDsgeCsrKSB7CisgICAgICAgICAgICBhdXRvIHZhbCA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGluZm8uaGVpZ2h0ICogeSArIHgpOworCisgICAgICAgICAgICBFWFBFQ1RfRVEodmFsLCB5RGF0YVtsYXlvdXQueVN0cmlkZSAqIHkgKyB4XSk7CisgICAgICAgICAgICBpZiAoeSAlIDIgPT0gMCAmJiB4ICUgMiA9PSAwKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHZhbCwgY2JEYXRhW2xheW91dC5jU3RyaWRlICogeSAvIDIgKyB4IC8gMl0pOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSh2YWwsIGNyRGF0YVtsYXlvdXQuY1N0cmlkZSAqIHkgLyAyICsgeCAvIDJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGZlbmNlID0gbUdyYWxsb2MtPnVubG9jayhidWZmZXJIYW5kbGUpKTsKKyAgICBpZiAoZmVuY2UgPj0gMCkgeworICAgICAgICBjbG9zZShmZW5jZSk7CisgICAgfQorfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6dW5sb2NrIHdpdGggaW52YWxpZCBidWZmZXJzLgorICovCitURVNUX0YoR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCwgVW5sb2NrTmVnYXRpdmUpIHsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGludmFsaWRIYW5kbGUgPSBudWxscHRyOworICAgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+dW5sb2NrKAorICAgICAgICBpbnZhbGlkSGFuZGxlLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgIDw8ICJ1bmxvY2sgd2l0aCBudWxscHRyIGRpZCBub3QgZmFpbCB3aXRoIEJBRF9CVUZGRVIiOworICAgICAgICB9KTsKKworICAgIGludmFsaWRIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgwLCAwKTsKKyAgICBtR3JhbGxvYy0+Z2V0TWFwcGVyKCktPnVubG9jaygKKyAgICAgICAgaW52YWxpZEhhbmRsZSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJikgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCB0bXBFcnJvcikKKyAgICAgICAgICAgICAgICA8PCAidW5sb2NrIHdpdGggaW52YWxpZCBoYW5kbGUgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisgICAgICAgIH0pOworICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGludmFsaWRIYW5kbGUpOworCisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoaW52YWxpZEhhbmRsZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4obUdyYWxsb2MtPmFsbG9jYXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUR1bW15RGVzY3JpcHRvckluZm8sIGZhbHNlKSkpOworICAgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+dW5sb2NrKGludmFsaWRIYW5kbGUsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYpIHsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCB0bXBFcnJvcikKKyAgICAgICAgICAgIDw8ICJ1bmxvY2sgd2l0aCB1bi1pbXBvcnRlZCBoYW5kbGUgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisgICAgfSk7CisgICAgbUdyYWxsb2MtPmZyZWVCdWZmZXIoaW52YWxpZEhhbmRsZSk7CisKKy8vIGRpc2FibGVkIGFzIGl0IGZhaWxzIG9uIG1hbnkgZXhpc3RpbmcgZHJpdmVycworI2lmIDAKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoaW52YWxpZEhhbmRsZSA9IGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtR3JhbGxvYy0+YWxsb2NhdGUobUR1bW15RGVzY3JpcHRvckluZm8sIHRydWUpKSk7CisgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+dW5sb2NrKAorICAgICAgaW52YWxpZEhhbmRsZSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJikgeworICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIHRtcEVycm9yKQorICAgICAgICAgICAgPDwgInVubG9jayB3aXRoIHVubG9ja2VkIGhhbmRsZSBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKyAgICAgIH0pOworICBtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihpbnZhbGlkSGFuZGxlKTsKKyNlbmRpZgorfQorCit9ICAvLyBuYW1lc3BhY2UKK30gIC8vIG5hbWVzcGFjZSB0ZXN0cworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgTE9HKElORk8pIDw8ICJUZXN0IHJlc3VsdCA9ICIgPDwgc3RhdHVzOworCisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvQW5kcm9pZC5tayBiL2dyYXBoaWNzL21hcHBlci9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9BbmRyb2lkLmJwIGIvaGVhbHRoLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmYjJkN2IKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUhlYWx0aC5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSGVhbHRoQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL0lIZWFsdGguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUh3SGVhbHRoLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL0JuSHdIZWFsdGguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvQnBId0hlYWx0aC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC9Cc0hlYWx0aC5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9BbmRyb2lkLm1rIGIvaGVhbHRoLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwM2I4NjgKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwzMDQgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQmF0dGVyeUhlYWx0aCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvQmF0dGVyeUhlYWx0aC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6dHlwZXMuQmF0dGVyeUhlYWx0aAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQmF0dGVyeVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvQmF0dGVyeVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6dHlwZXMuQmF0dGVyeVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGVhbHRoQ29uZmlnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9IZWFsdGhDb25maWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkhlYWx0aENvbmZpZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGVhbHRoSW5mbykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvSGVhbHRoSW5mby5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6dHlwZXMuSGVhbHRoSW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9SZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLlJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElIZWFsdGguaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0lIZWFsdGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lIZWFsdGguaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OklIZWFsdGgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZWFsdGguaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aC1WMS4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEJhdHRlcnlIZWFsdGgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0JhdHRlcnlIZWFsdGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkJhdHRlcnlIZWFsdGgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEJhdHRlcnlTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0JhdHRlcnlTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkJhdHRlcnlTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhlYWx0aENvbmZpZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvSGVhbHRoQ29uZmlnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcy5IZWFsdGhDb25maWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhlYWx0aEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0hlYWx0aEluZm8uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkhlYWx0aEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcy5SZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJSGVhbHRoLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9JSGVhbHRoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JSGVhbHRoLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjpJSGVhbHRoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGVhbHRoLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZWFsdGguaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9JSGVhbHRoLmhhbCBiL2hlYWx0aC8xLjAvSUhlYWx0aC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgyODU4OQotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvSUhlYWx0aC5oYWwKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOworCitpbnRlcmZhY2UgSUhlYWx0aCB7CisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBsZXRzIHlvdSBjaGFuZ2UgaGVhbHRoZCBjb25maWd1cmF0aW9uIGZyb20gZGVmYXVsdCBpZgorICAgICAqIGRlc2lyZWQuIEl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBhdCBzdGFydHVwIHRpbWUuCisgICAgICoKKyAgICAgKiBUaGUgY29uZmlndXJhdGlvbiB2YWx1ZXMgYXJlIGRlc2NyaWJlZCBpbiAnc3RydWN0IEhlYWx0aENvbmZpZycuCisgICAgICogVG8gdXNlIGRlZmF1bHQgY29uZmlndXJhdGlvbiwgc2ltcGx5IHJldHVybiB3aXRob3V0IG1vZGlmeWluZyB0aGUKKyAgICAgKiBmaWVsZHMgb2YgdGhlIGNvbmZpZyBwYXJhbWV0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVmYXVsdCBoZWFsdGhkIGNvbmZpZ3VyYXRpb24uCisgICAgICovCisgICAgaW5pdChIZWFsdGhDb25maWcgY29uZmlnKSBnZW5lcmF0ZXMgKEhlYWx0aENvbmZpZyBjb25maWdPdXQpOworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBhIGhvb2sgdG8gdXBkYXRlL2NoYW5nZSBkZXZpY2UncyBIZWFsdGhJbmZvIChhcyBkZXNjcmliZWQKKyAgICAgKiBpbiAnc3RydWN0IEhlYWx0aEluZm8nKS4KKyAgICAgKgorICAgICAqICdIZWFsdGhJbmZvJyBkZXNjcmliZXMgZGV2aWNlJ3MgYmF0dGVyeSBhbmQgY2hhcmdpbmcgc3RhdHVzLCB0eXBpY2FsbHkKKyAgICAgKiByZWFkIGZyb20ga2VybmVsLiBUaGVzZSB2YWx1ZXMgbWF5IGJlIG1vZGlmaWVkIGluIHRoaXMgY2FsbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAgIERldmljZSBIZWFsdGggaW5mbyBhcyBkZXNjcmliZWQgaW4gJ3N0cnVjdCBIZWFsdGhJbmZvJy4KKyAgICAgKiBAcmV0dXJuICBza2lwTG9nZ2luZyBJbmRpY2F0aW9uIHRvIHRoZSBjYWxsZXIgdG8gYWRkICdvcicgc2tpcCBsb2dnaW5nIHRoZSBoZWFsdGgKKyAgICAgKiAgICAgICAgICBpbmZvcm1hdGlvbi4gUmV0dXJuICd0cnVlJyB0byBza2lwIGxvZ2dpbmcgdGhlIHVwZGF0ZS4KKyAgICAgKiBAcmV0dXJuICBpbmZvT3V0IEhlYWx0aEluZm8gdG8gYmUgc2VudCB0byBjbGllbnQgY29kZS4gKE1heSBvciBtYXkKKyAgICAgKiAgICAgICAgICBub3QgYmUgbW9kaWZpZWQpLgorICAgICAqLworICAgIHVwZGF0ZShIZWFsdGhJbmZvIGluZm8pIGdlbmVyYXRlcyAoYm9vbCBza2lwTG9nZ2luZywgSGVhbHRoSW5mbyBpbmZvT3V0KTsKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGhlYWx0aGQgd2hlbiBmcmFtZXdvcmsgcXVlcmllcyBmb3IgcmVtYWluaW5nCisgICAgICogZW5lcmd5IGluIHRoZSBCYXR0ZXJ5IHRocm91Z2ggQmF0dGVyeU1hbmFnZXIgQVBJcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIHJlc3VsdCBSZXN1bHQgb2YgcXVlcnlpbmcgZW5lcnkgY291bnRlciBmb3IgdGhlIGJhdHRlcnkuCisgICAgICogQHJldHVybiAgZW5lcmd5IEJhdHRlcnkgcmVtYWluaW5nIGVuZXJneSBpbiBuYW5vd2F0dC1ob3Vycy4KKyAgICAgKiAgICAgICAgICBNdXN0IGJlICcwJyBpZiByZXN1bHQgaXMgYW55dGhpbmcgb3RoZXIgdGhhbiBSZXN1bHQ6OlNVQ0NFU1MuCisgICAgICovCisgICAgZW5lcmd5Q291bnRlcigpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCwgaW50NjRfdCBlbmVyZ3kpOworfTsKZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvaGVhbHRoLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZmZjkxZgotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNTkgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfQ19JTkNMVURFUyA6PSBzeXN0ZW0vY29yZS9oZWFsdGhkL2luY2x1ZGUgc3lzdGVtL2NvcmUvYmFzZS9pbmNsdWRlCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIEhlYWx0aC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAgXAorCitMT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1jb252ZXJ0CisKK0xPQ0FMX0hBTF9TVEFUSUNfTElCUkFSSUVTIDo9IGxpYmhlYWx0aGQKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAtY29udmVydAorTE9DQUxfU1JDX0ZJTEVTIDo9IGNvbnZlcnQuY3BwCitMT0NBTF9DX0lOQ0xVREVTIDo9IHN5c3RlbS9jb3JlL2hlYWx0aGQvaW5jbHVkZSBzeXN0ZW0vY29yZS9iYXNlL2luY2x1ZGUKK0xPQ0FMX0VYUE9SVF9DX0lOQ0xVREVfRElSUyA6PSAkKExPQ0FMX1BBVEgpL2luY2x1ZGUKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0xJQlJBUlkpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgSGVhbHRoU2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZGwgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCisKK2luY2x1ZGUgJChjYWxsIGZpcnN0LW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L0hlYWx0aC5jcHAgYi9oZWFsdGgvMS4wL2RlZmF1bHQvSGVhbHRoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTAyOTU2Ci0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC9kZWZhdWx0L0hlYWx0aC5jcHAKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiaGVhbHRoLWhhbCIKKworI2luY2x1ZGUgPEhlYWx0aC5oPgorI2luY2x1ZGUgPGluY2x1ZGUvaGFsX2NvbnZlcnNpb24uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBoZWFsdGggeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpoYWxfY29udmVyc2lvbjo6Y29udmVydFRvSGVhbHRoQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpoYWxfY29udmVyc2lvbjo6Y29udmVydEZyb21IZWFsdGhDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoZWFsdGg6OlYxXzA6OmhhbF9jb252ZXJzaW9uOjpjb252ZXJ0VG9IZWFsdGhJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpoYWxfY29udmVyc2lvbjo6Y29udmVydEZyb21IZWFsdGhJbmZvOworCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpJSGVhbHRoIGZvbGxvdy4KK1JldHVybjx2b2lkPiBIZWFsdGg6OmluaXQoY29uc3QgSGVhbHRoQ29uZmlnJiBjb25maWcsIGluaXRfY2IgX2hpZGxfY2IpICB7CisgICAgc3RydWN0IGhlYWx0aGRfY29uZmlnIGhlYWx0aGRfY29uZmlnID0ge307CisgICAgSGVhbHRoQ29uZmlnIGNvbmZpZ091dDsKKworICAgIC8vIFRvIGtlZXAgd29ya2luZyB3aXRoIGV4aXN0aW5nIGhlYWx0aGQgc3RhdGljIEhBTHMsCisgICAgLy8gY29udmVydCB0aGUgbmV3IEhlYWx0aENvbmZpZyB0byB0aGUgb2xkIGhlYWx0aGRfY29uZmlnCisgICAgLy8gYW5kIGJhY2suCisKKyAgICBjb252ZXJ0RnJvbUhlYWx0aENvbmZpZyhjb25maWcsICZoZWFsdGhkX2NvbmZpZyk7CisgICAgaGVhbHRoZF9ib2FyZF9pbml0KCZoZWFsdGhkX2NvbmZpZyk7CisgICAgbUdldEVuZXJneUNvdW50ZXIgPSBoZWFsdGhkX2NvbmZpZy5lbmVyZ3lDb3VudGVyOworICAgIGNvbnZlcnRUb0hlYWx0aENvbmZpZygmaGVhbHRoZF9jb25maWcsIGNvbmZpZ091dCk7CisKKyAgICBfaGlkbF9jYihjb25maWdPdXQpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEhlYWx0aDo6dXBkYXRlKGNvbnN0IEhlYWx0aEluZm8mIGluZm8sIHVwZGF0ZV9jYiBfaGlkbF9jYikgIHsKKyAgICBzdHJ1Y3QgYW5kcm9pZDo6QmF0dGVyeVByb3BlcnRpZXMgcCA9IHt9OworICAgIEhlYWx0aEluZm8gaW5mb091dDsKKworICAgIC8vIFRvIGtlZXAgd29ya2luZyB3aXRoIGV4aXN0aW5nIGhlYWx0aGQgc3RhdGljIEhBTHMsCisgICAgLy8gY29udmVydCB0aGUgbmV3IEhlYWx0aEluZm8gdG8gYW5kcm9pZDo6QmF0dGVyeXByb3BlcnRpZXMKKyAgICAvLyBhbmQgYmFjay4KKworICAgIGNvbnZlcnRGcm9tSGVhbHRoSW5mbyhpbmZvLCAmcCk7CisgICAgaW50IHNraXBMb2dnaW5nID0gaGVhbHRoZF9ib2FyZF9iYXR0ZXJ5X3VwZGF0ZSgmcCk7CisgICAgY29udmVydFRvSGVhbHRoSW5mbygmcCwgaW5mb091dCk7CisKKyAgICBfaGlkbF9jYighIXNraXBMb2dnaW5nLCBpbmZvT3V0KTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBIZWFsdGg6OmVuZXJneUNvdW50ZXIoZW5lcmd5Q291bnRlcl9jYiBfaGlkbF9jYikgeworICAgIGludDY0X3QgZW5lcmd5ID0gMDsKKyAgICBSZXN1bHQgcmVzdWx0ID0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworCisgICAgaWYgKG1HZXRFbmVyZ3lDb3VudGVyKSB7CisgICAgICAgIGludCBzdGF0dXMgPSBtR2V0RW5lcmd5Q291bnRlcigmZW5lcmd5KTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBSZXN1bHQ6OlNVQ0NFU1M7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGlkbF9jYihyZXN1bHQsIGVuZXJneSk7CisKKyAgIHJldHVybiBWb2lkKCk7Cit9CisKK0lIZWFsdGgqIEhJRExfRkVUQ0hfSUhlYWx0aChjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBIZWFsdGgoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgaGVhbHRoCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9oZWFsdGgvMS4wL2RlZmF1bHQvSGVhbHRoLmggYi9oZWFsdGgvMS4wL2RlZmF1bHQvSGVhbHRoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQzNjRjMQotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9IZWFsdGguaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9IRUFMVEhfVjFfMF9IRUFMVEhfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0hFQUxUSF9WMV8wX0hFQUxUSF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUhlYWx0aC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxoZWFsdGhkL2hlYWx0aGQuaD4KKyNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgaGVhbHRoIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SGVhbHRoSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SGVhbHRoQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpJSGVhbHRoOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgSGVhbHRoIDogcHVibGljIElIZWFsdGggeworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoZWFsdGg6OlYxXzA6OklIZWFsdGggZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBpbml0KGNvbnN0IEhlYWx0aENvbmZpZyYgY29uZmlnLCBpbml0X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVwZGF0ZShjb25zdCBIZWFsdGhJbmZvJiBpbmZvLCB1cGRhdGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZW5lcmd5Q291bnRlcihlbmVyZ3lDb3VudGVyX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKK3ByaXZhdGU6CisgICAgc3RkOjpmdW5jdGlvbjxpbnQoaW50NjRfdCAqKT4gbUdldEVuZXJneUNvdW50ZXI7Cit9OworCitleHRlcm4gIkMiIElIZWFsdGgqIEhJRExfRkVUQ0hfSUhlYWx0aChjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGhlYWx0aAorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfSEVBTFRIX1YxXzBfSEVBTFRIX0gKZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9IZWFsdGhTZXJ2aWNlLmNwcCBiL2hlYWx0aC8xLjAvZGVmYXVsdC9IZWFsdGhTZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTg0OGQyCi0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC9kZWZhdWx0L0hlYWx0aFNlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUhlYWx0aC5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpJSGVhbHRoOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJSGVhbHRoPigpOworfQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlLnJjIGIvaGVhbHRoLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzY2Q3YTUKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGhlYWx0aC1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9jb252ZXJ0LmNwcCBiL2hlYWx0aC8xLjAvZGVmYXVsdC9jb252ZXJ0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjFlM2M0Ci0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC9kZWZhdWx0L2NvbnZlcnQuY3BwCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgImluY2x1ZGUvaGFsX2NvbnZlcnNpb24uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBoZWFsdGggeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGhhbF9jb252ZXJzaW9uIHsKKwordm9pZCBjb252ZXJ0VG9IZWFsdGhDb25maWcoY29uc3Qgc3RydWN0IGhlYWx0aGRfY29uZmlnICpoYywgSGVhbHRoQ29uZmlnJiBjb25maWcpIHsKKyAgICBjb25maWcucGVyaW9kaWNDaG9yZXNJbnRlcnZhbEZhc3QgPSBoYy0+cGVyaW9kaWNfY2hvcmVzX2ludGVydmFsX2Zhc3Q7CisgICAgY29uZmlnLnBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxTbG93ID0gaGMtPnBlcmlvZGljX2Nob3Jlc19pbnRlcnZhbF9zbG93OworCisgICAgY29uZmlnLmJhdHRlcnlTdGF0dXNQYXRoICAgICAgICA9IGhjLT5iYXR0ZXJ5U3RhdHVzUGF0aC5zdHJpbmcoKTsKKyAgICBjb25maWcuYmF0dGVyeUhlYWx0aFBhdGggICAgICAgID0gaGMtPmJhdHRlcnlIZWFsdGhQYXRoLnN0cmluZygpOworICAgIGNvbmZpZy5iYXR0ZXJ5UHJlc2VudFBhdGggICAgICAgPSBoYy0+YmF0dGVyeVByZXNlbnRQYXRoLnN0cmluZygpOworICAgIGNvbmZpZy5iYXR0ZXJ5Q2FwYWNpdHlQYXRoICAgICAgPSBoYy0+YmF0dGVyeUNhcGFjaXR5UGF0aC5zdHJpbmcoKTsKKyAgICBjb25maWcuYmF0dGVyeVZvbHRhZ2VQYXRoICAgICAgID0gaGMtPmJhdHRlcnlWb2x0YWdlUGF0aC5zdHJpbmcoKTsKKyAgICBjb25maWcuYmF0dGVyeVRlbXBlcmF0dXJlUGF0aCAgID0gaGMtPmJhdHRlcnlUZW1wZXJhdHVyZVBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlUZWNobm9sb2d5UGF0aCAgICA9IGhjLT5iYXR0ZXJ5VGVjaG5vbG9neVBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlDdXJyZW50Tm93UGF0aCAgICA9IGhjLT5iYXR0ZXJ5Q3VycmVudE5vd1BhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlDdXJyZW50QXZnUGF0aCAgICA9IGhjLT5iYXR0ZXJ5Q3VycmVudEF2Z1BhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlDaGFyZ2VDb3VudGVyUGF0aCA9IGhjLT5iYXR0ZXJ5Q2hhcmdlQ291bnRlclBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlGdWxsQ2hhcmdlUGF0aCAgICA9IGhjLT5iYXR0ZXJ5RnVsbENoYXJnZVBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlDeWNsZUNvdW50UGF0aCAgICA9IGhjLT5iYXR0ZXJ5Q3ljbGVDb3VudFBhdGguc3RyaW5nKCk7CisKK30KKwordm9pZCBjb252ZXJ0RnJvbUhlYWx0aENvbmZpZyhjb25zdCBIZWFsdGhDb25maWcmIGMsIHN0cnVjdCBoZWFsdGhkX2NvbmZpZyAqaGMpIHsKKyAgICBoYy0+cGVyaW9kaWNfY2hvcmVzX2ludGVydmFsX2Zhc3QgPSBjLnBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxGYXN0OworICAgIGhjLT5wZXJpb2RpY19jaG9yZXNfaW50ZXJ2YWxfc2xvdyA9IGMucGVyaW9kaWNDaG9yZXNJbnRlcnZhbFNsb3c7CisKKyAgICBoYy0+YmF0dGVyeVN0YXR1c1BhdGggPQorICAgICAgICBhbmRyb2lkOjpTdHJpbmc4KGMuYmF0dGVyeVN0YXR1c1BhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlTdGF0dXNQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUhlYWx0aFBhdGggPQorICAgICAgICBhbmRyb2lkOjpTdHJpbmc4KGMuYmF0dGVyeUhlYWx0aFBhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlIZWFsdGhQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeVByZXNlbnRQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlQcmVzZW50UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeVByZXNlbnRQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUNhcGFjaXR5UGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5Q2FwYWNpdHlQYXRoLmNfc3RyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgYy5iYXR0ZXJ5Q2FwYWNpdHlQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeVZvbHRhZ2VQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlWb2x0YWdlUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeVZvbHRhZ2VQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeVRlbXBlcmF0dXJlUGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5VGVtcGVyYXR1cmVQYXRoLmNfc3RyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgYy5iYXR0ZXJ5VGVtcGVyYXR1cmVQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeVRlY2hub2xvZ3lQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlUZWNobm9sb2d5UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeVRlY2hub2xvZ3lQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUN1cnJlbnROb3dQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlDdXJyZW50Tm93UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUN1cnJlbnROb3dQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUN1cnJlbnRBdmdQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlDdXJyZW50QXZnUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUN1cnJlbnROb3dQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUNoYXJnZUNvdW50ZXJQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlDaGFyZ2VDb3VudGVyUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUNoYXJnZUNvdW50ZXJQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUZ1bGxDaGFyZ2VQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlGdWxsQ2hhcmdlUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUZ1bGxDaGFyZ2VQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUN5Y2xlQ291bnRQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlDeWNsZUNvdW50UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUN5Y2xlQ291bnRQYXRoLnNpemUoKSk7CisKKyAgICAvLyBlbmVyZ3lDb3VudGVyIGlzIGhhbmRsZWQgdGhyb3VnaCBzcGVjaWFsIG1lYW5zIHNvIGFsbCBjYWxscyB0bworICAgIC8vIHRoZSBmdW5jdGlvbiBnbyBhY3Jvc3MgdGhlIEhBTHMKKworICAgIC8vIGJvb3RfbWluX2NhcCAtIG5ldmVyIHVzZWQgaW4gQW5kcm9pZCAob25seSBpbiBjaGFyZ2VyLW1vZGUpLgorCisgICAgLy8gc2NyZWVuX29uIC0gbmV2ZXIgdXNlZCBpbiBBbmRyb2lkIChvbmx5IGluIGNoYXJnZXIgbW9kZSkuCit9CisKK3ZvaWQgY29udmVydFRvSGVhbHRoSW5mbyhjb25zdCBzdHJ1Y3QgYW5kcm9pZDo6QmF0dGVyeVByb3BlcnRpZXMgKnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFsdGhJbmZvJiBpbmZvKSB7CisgICAgaW5mby5jaGFyZ2VyQWNPbmxpbmUgICAgICAgID0gcC0+Y2hhcmdlckFjT25saW5lOworICAgIGluZm8uY2hhcmdlclVzYk9ubGluZSAgICAgICA9IHAtPmNoYXJnZXJVc2JPbmxpbmU7CisgICAgaW5mby5jaGFyZ2VyV2lyZWxlc3NPbmxpbmUgID0gcC0+Y2hhcmdlcldpcmVsZXNzT25saW5lOworICAgIGluZm8ubWF4Q2hhcmdpbmdDdXJyZW50ICAgICA9IHAtPm1heENoYXJnaW5nQ3VycmVudDsKKyAgICBpbmZvLm1heENoYXJnaW5nVm9sdGFnZSAgICAgPSBwLT5tYXhDaGFyZ2luZ1ZvbHRhZ2U7CisgICAgaW5mby5iYXR0ZXJ5U3RhdHVzICAgICAgICAgID0gc3RhdGljX2Nhc3Q8QmF0dGVyeVN0YXR1cz4ocC0+YmF0dGVyeVN0YXR1cyk7CisgICAgaW5mby5iYXR0ZXJ5SGVhbHRoICAgICAgICAgID0gc3RhdGljX2Nhc3Q8QmF0dGVyeUhlYWx0aD4ocC0+YmF0dGVyeUhlYWx0aCk7CisgICAgaW5mby5iYXR0ZXJ5UHJlc2VudCAgICAgICAgID0gcC0+YmF0dGVyeVByZXNlbnQ7CisgICAgaW5mby5iYXR0ZXJ5TGV2ZWwgICAgICAgICAgID0gcC0+YmF0dGVyeUxldmVsOworICAgIGluZm8uYmF0dGVyeVZvbHRhZ2UgICAgICAgICA9IHAtPmJhdHRlcnlWb2x0YWdlOworICAgIGluZm8uYmF0dGVyeVRlbXBlcmF0dXJlICAgICA9IHAtPmJhdHRlcnlUZW1wZXJhdHVyZTsKKyAgICBpbmZvLmJhdHRlcnlDdXJyZW50ICAgICAgICAgPSBwLT5iYXR0ZXJ5Q3VycmVudDsKKyAgICBpbmZvLmJhdHRlcnlDeWNsZUNvdW50ICAgICAgPSBwLT5iYXR0ZXJ5Q3ljbGVDb3VudDsKKyAgICBpbmZvLmJhdHRlcnlGdWxsQ2hhcmdlICAgICAgPSBwLT5iYXR0ZXJ5RnVsbENoYXJnZTsKKyAgICBpbmZvLmJhdHRlcnlDaGFyZ2VDb3VudGVyICAgPSBwLT5iYXR0ZXJ5Q2hhcmdlQ291bnRlcjsKKyAgICBpbmZvLmJhdHRlcnlUZWNobm9sb2d5ICAgICAgPSBwLT5iYXR0ZXJ5VGVjaG5vbG9neTsKK30KKwordm9pZCBjb252ZXJ0RnJvbUhlYWx0aEluZm8oY29uc3QgSGVhbHRoSW5mbyYgaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzICpwKSB7CisgICAgcC0+Y2hhcmdlckFjT25saW5lICAgICAgICAgID0gaW5mby5jaGFyZ2VyQWNPbmxpbmU7CisgICAgcC0+Y2hhcmdlclVzYk9ubGluZSAgICAgICAgID0gaW5mby5jaGFyZ2VyVXNiT25saW5lOworICAgIHAtPmNoYXJnZXJXaXJlbGVzc09ubGluZSAgICA9IGluZm8uY2hhcmdlcldpcmVsZXNzT25saW5lOworICAgIHAtPm1heENoYXJnaW5nQ3VycmVudCAgICAgICA9IGluZm8ubWF4Q2hhcmdpbmdDdXJyZW50OworICAgIHAtPm1heENoYXJnaW5nVm9sdGFnZSAgICAgICA9IGluZm8ubWF4Q2hhcmdpbmdWb2x0YWdlOworICAgIHAtPmJhdHRlcnlTdGF0dXMgICAgICAgICAgICA9IHN0YXRpY19jYXN0PGludD4oaW5mby5iYXR0ZXJ5U3RhdHVzKTsKKyAgICBwLT5iYXR0ZXJ5SGVhbHRoICAgICAgICAgICAgPSBzdGF0aWNfY2FzdDxpbnQ+KGluZm8uYmF0dGVyeUhlYWx0aCk7CisgICAgcC0+YmF0dGVyeVByZXNlbnQgICAgICAgICAgID0gaW5mby5iYXR0ZXJ5UHJlc2VudDsKKyAgICBwLT5iYXR0ZXJ5TGV2ZWwgICAgICAgICAgICAgPSBpbmZvLmJhdHRlcnlMZXZlbDsKKyAgICBwLT5iYXR0ZXJ5Vm9sdGFnZSAgICAgICAgICAgPSBpbmZvLmJhdHRlcnlWb2x0YWdlOworICAgIHAtPmJhdHRlcnlUZW1wZXJhdHVyZSAgICAgICA9IGluZm8uYmF0dGVyeVRlbXBlcmF0dXJlOworICAgIHAtPmJhdHRlcnlDdXJyZW50ICAgICAgICAgICA9IGluZm8uYmF0dGVyeUN1cnJlbnQ7CisgICAgcC0+YmF0dGVyeUN5Y2xlQ291bnQgICAgICAgID0gaW5mby5iYXR0ZXJ5Q3ljbGVDb3VudDsKKyAgICBwLT5iYXR0ZXJ5RnVsbENoYXJnZSAgICAgICAgPSBpbmZvLmJhdHRlcnlGdWxsQ2hhcmdlOworICAgIHAtPmJhdHRlcnlDaGFyZ2VDb3VudGVyICAgICA9IGluZm8uYmF0dGVyeUNoYXJnZUNvdW50ZXI7CisgICAgcC0+YmF0dGVyeVRlY2hub2xvZ3kgICAgICAgID0gYW5kcm9pZDo6U3RyaW5nOChpbmZvLmJhdHRlcnlUZWNobm9sb2d5LmNfc3RyKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBoYWxfY29udmVyc2lvbgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgaGVhbHRoCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L2luY2x1ZGUvaGFsX2NvbnZlcnNpb24uaCBiL2hlYWx0aC8xLjAvZGVmYXVsdC9pbmNsdWRlL2hhbF9jb252ZXJzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkyYjIwOAotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9pbmNsdWRlL2hhbF9jb252ZXJzaW9uLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgSEFSRFdBUkVfSU5URVJGQUNFU19IRUFMVEhfVjFfMF9ERUZBVUxUX0lOQ0xVREVfSEFMX0NPTlZFUlNJT05fSF8KKyNkZWZpbmUgSEFSRFdBUkVfSU5URVJGQUNFU19IRUFMVEhfVjFfMF9ERUZBVUxUX0lOQ0xVREVfSEFMX0NPTlZFUlNJT05fSF8KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC9JSGVhbHRoLmg+CisjaW5jbHVkZSA8aGVhbHRoZC9oZWFsdGhkLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgaGVhbHRoIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBoYWxfY29udmVyc2lvbiB7CisKK3ZvaWQgY29udmVydFRvSGVhbHRoQ29uZmlnKGNvbnN0IHN0cnVjdCBoZWFsdGhkX2NvbmZpZyAqaGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhbHRoQ29uZmlnJiBjb25maWcpOwordm9pZCBjb252ZXJ0RnJvbUhlYWx0aENvbmZpZyhjb25zdCBIZWFsdGhDb25maWcmIGMsIHN0cnVjdCBoZWFsdGhkX2NvbmZpZyAqaGMpOworCit2b2lkIGNvbnZlcnRUb0hlYWx0aEluZm8oY29uc3Qgc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzICpwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhbHRoSW5mbyYgaW5mbyk7Cit2b2lkIGNvbnZlcnRGcm9tSGVhbHRoSW5mbyhjb25zdCBIZWFsdGhJbmZvJiBpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzICpwKTsKKworfSAgLy8gbmFtZXNwYWNlIGhhbF9jb252ZXJzaW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHNlbnNvcnMKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBIQVJEV0FSRV9JTlRFUkZBQ0VTX0hFQUxUSF9WMV8wX0RFRkFVTFRfSU5DTFVERV9IQUxfQ09OVkVSU0lPTl9IXwpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L2xpYmhlYWx0aGQvQW5kcm9pZC5tayBiL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVmNDQ0NQotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxMCBAQAorIyBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9TUkNfRklMRVMgOj0gaGVhbHRoZF9ib2FyZF9kZWZhdWx0LmNwcAorTE9DQUxfTU9EVUxFIDo9IGxpYmhlYWx0aGQuZGVmYXVsdAorTE9DQUxfQ0ZMQUdTIDo9IC1XZXJyb3IKK0xPQ0FMX0NfSU5DTFVERVMgOj0gc3lzdGVtL2NvcmUvaGVhbHRoZC9pbmNsdWRlIHN5c3RlbS9jb3JlL2Jhc2UvaW5jbHVkZQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L2xpYmhlYWx0aGQvaGVhbHRoZF9ib2FyZF9kZWZhdWx0LmNwcCBiL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL2hlYWx0aGRfYm9hcmRfZGVmYXVsdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3Zjk4ZQotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL2hlYWx0aGRfYm9hcmRfZGVmYXVsdC5jcHAKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxoZWFsdGhkL2hlYWx0aGQuaD4KKwordm9pZCBoZWFsdGhkX2JvYXJkX2luaXQoc3RydWN0IGhlYWx0aGRfY29uZmlnKikKK3sKKyAgICAvLyB1c2UgZGVmYXVsdHMKK30KKworaW50IGhlYWx0aGRfYm9hcmRfYmF0dGVyeV91cGRhdGUoc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzKikKK3sKKyAgICAvLyByZXR1cm4gMCB0byBsb2cgcGVyaW9kaWMgcG9sbGVkIGJhdHRlcnkgc3RhdHVzIHRvIGtlcm5lbCBsb2cKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvdHlwZXMuaGFsIGIvaGVhbHRoLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc3ZDFiZAotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMjEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA7CisKKy8qKgorICogUG9zc2libGUgcmV0dXJuIHZhbHVlcyBmb3Igb3B0aW9uYWwgSEFMIG1ldGhvZChzKSBsaWtlCisgKiBJSGVhbHRoOjplbmVyZ3lDb3VudGVyKCkKKyAqLworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTLAorICAgIE5PVF9TVVBQT1JURUQsCisgICAgVU5LTk9XTiwKK307CisKKy8qKgorICogUG9zc2libGUgdmFsdWVzIGZvciBCYXR0ZXJ5IFN0YXR1cy4KKyAqIE5vdGU6IFRoZXNlIGFyZSBjdXJyZW50bHkgaW4gc3luYyB3aXRoIEJhdHRlcnlNYW5hZ2VyIGFuZCBtdXN0IG5vdAorICogYmUgZXh0ZW5kZWQgLyBhbHRlcmVkLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQkFUVEVSWV9TVEFUVVNfIikKK2VudW0gQmF0dGVyeVN0YXR1cyA6IGludDMyX3QgeworICAgIFVOS05PV04gPSAxLAorICAgIENIQVJHSU5HID0gMiwKKyAgICBESVNDSEFSR0lORyA9IDMsCisgICAgLyoqCisgICAgICogQmF0dGVyeSBpcyAqbm90KiBjaGFyZ2luZyAtIHNwZWNpYWwgY2FzZSB3aGVuIGNoYXJnZXIgaXMgcHJlc2VudAorICAgICAqIGJ1dCBiYXR0ZXJ5IGlzbid0IGNoYXJnaW5nCisgICAgICovCisgICAgTk9UX0NIQVJHSU5HID0gNCwKKyAgICBGVUxMID0gNSwKK307CisKKy8qKgorICogUG9zc2libGUgdmFsdWVzIGZvciBCYXR0ZXJ5IEhlYWx0aC4KKyAqIE5vdGU6IFRoZXNlIGFyZSBjdXJyZW50bHkgaW4gc3luYyB3aXRoIEJhdHRlcnlNYW5hZ2VyIGFuZCBtdXN0IG5vdAorICogYmUgZXh0ZW5kZWQgLyBhbHRlcmVkLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQkFUVEVSWV9IRUFMVEhfIikKK2VudW0gQmF0dGVyeUhlYWx0aCA6IGludDMyX3QgeworICAgIFVOS05PV04gPSAxLAorICAgIEdPT0QgPSAyLAorICAgIE9WRVJIRUFUID0gMywKKyAgICBERUFEID0gNCwKKyAgICBPVkVSX1ZPTFRBR0UgPSA1LAorICAgIC8qKgorICAgICAqIEJhdHRlcnkgZXhwZXJpZW5jZWQgYW4gdW5rbm93bi91bnNwZWNpZmlkIGZhaWx1cmUuCisgICAgICovCisgICAgVU5TUEVDSUZJRURfRkFJTFVSRSA9IDYsCisgICAgQ09MRCA9IDcsCit9OworCitzdHJ1Y3QgSGVhbHRoQ29uZmlnIHsKKworICAgIC8qKgorICAgICAqIHBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxGYXN0IGlzIHVzZWQgd2hpbGUgdGhlIGRldmljZSBpcyBub3QgaW4KKyAgICAgKiBzdXNwZW5kLCBvciBpbiBzdXNwZW5kIGFuZCBjb25uZWN0ZWQgdG8gYSBjaGFyZ2VyICh0byB3YXRjaCBmb3IgYmF0dGVyeQorICAgICAqIG92ZXJoZWF0IGR1ZSB0byBjaGFyZ2luZykKKyAgICAgKi8KKyAgICBpbnQzMl90IHBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxGYXN0OworCisgICAgLyoqCisgICAgICogcGVyaW9kaWNDaG9yZXNJbnRlcnZhbFNsb3cgaXMgdXNlZCB3aGVuIHRoZSBkZXZpY2UgaXMgaW4gc3VzcGVuZCBhbmQKKyAgICAgKiBub3QgY29ubmVjdGVkIHRvIGEgY2hhcmdlciAodG8gd2F0Y2ggZm9yIGEgYmF0dGVyeSBkcmFpbmVkIHRvIHplcm8KKyAgICAgKiByZW1haW5pbmcgY2FwYWNpdHkpLgorICAgICAqLworICAgIGludDMyX3QgcGVyaW9kaWNDaG9yZXNJbnRlcnZhbFNsb3c7CisKKyAgICAvKioKKyAgICAgKiBwb3dlcl9zdXBwbHkgc3lzZnMgYXR0cmlidXRlIGZpbGUgcGF0aHMuIFNldCB0aGVzZSB0byBzcGVjaWZpYyBwYXRocworICAgICAqIHRvIHVzZSBmb3IgdGhlIGFzc29jaWF0ZWQgYmF0dGVyeSBwYXJhbWV0ZXJzLiBDbGllbnRzIG11c3Qgc2VhcmNoCisgICAgICogZm9yIGFwcHJvcHJpYXRlIHBvd2VyX3N1cHBseSBhdHRyaWJ1dGUgZmlsZXMgdG8gdXNlLCBmb3IgYW55IHBhdGhzCisgICAgICogbGVmdCBlbXB0eSBhZnRlciB0aGUgSEFMIGlzIGluaXRpYWxpemVkLgorICAgICAqLworCisgICAgLyoqCisgICAgICogYmF0dGVyeVN0YXR1c1BhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IGNoYXJnaW5nIHN0YXR1cy4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfU1RBVFVTKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5U3RhdHVzUGF0aDsKKworCisgICAgLyoqCisgICAgICogYmF0dGVyeUhlYWx0aFBhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IGhlYWx0aC4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfSEVBTFRIKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5SGVhbHRoUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlQcmVzZW50UGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgcHJlc2VudCBzdGF0dXMuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX1BSRVNFTlQpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlQcmVzZW50UGF0aDsKKworCisgICAgLyoqCisgICAgICogYmF0dGVyeUNhcGFjaXR5UGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIHJlbWFpbmluZyBiYXR0ZXJ5IGNhcGFjaXR5LgorICAgICAqIChQT1dFUl9TVVBQTFlfUFJPUF9DQVBBQ0lUWSkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeUNhcGFjaXR5UGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlWb2x0YWdlUGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgdm9sdGFnZS4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfVk9MVEFHRV9OT1cpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlWb2x0YWdlUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlUZW1wZXJhdHVyZVBhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IHRlbXBlcmF0dXJlIGluIHRlbnRocworICAgICAqIG9mIGRlZ3JlZSBjZWxjaXVzLiAoUE9XRVJfU1VQUExZX1BST1BfVEVNUCkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeVRlbXBlcmF0dXJlUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlUZWNobm9sb2d5UGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgdGVjaG5vbG9neS4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfVEVDSE5PTE9HWSkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeVRlY2hub2xvZ3lQYXRoOworCisgICAgLyoqCisgICAgICogYmF0dGVyeUN1cnJlbnROb3dQYXRoIC0gZmlsZSBwYXRoIHRvIHJlYWQgYmF0dGVyeSBpbnN0YW50YW5lb3VzIGN1cnJlbnQuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX0NVUlJFTlRfTk9XKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5Q3VycmVudE5vd1BhdGg7CisKKyAgICAvKioKKyAgICAgKiBiYXR0ZXJ5Q3VycmVudEF2Z1BhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IGF2ZXJhZ2UgY3VycmVudC4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfQ1VSUkVOVF9BVkcpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlDdXJyZW50QXZnUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlDaGFyZ2VDb3VudGVyUGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgYWNjdW11bGF0ZWQgY2hhcmdlLgorICAgICAqIChQT1dFUl9TVVBQTFlfUFJPUF9DSEFSR0VfQ09VTlRFUikKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeUNoYXJnZUNvdW50ZXJQYXRoOworCisgICAgLyoqCisgICAgICogYmF0dGVyeUZ1bGxDaGFyZ2VyUGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgY2hhcmdlIHZhbHVlIHdoZW4gaXQKKyAgICAgKiBpcyBjb25zaWRlcmVkIHRvIGJlIGZ1bGwuIChQT1dFUl9TVVBQTFlfUFJPUF9DSEFSR0VfRlVMTCkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeUZ1bGxDaGFyZ2VQYXRoOworCisgICAgLyoqCisgICAgICogYmF0dGVyeUN5Y2xlQ291bnRQYXRoIC0gZmlsZSBwYXRoIHRvIHJlYWQgYmF0dGVyeSBjaGFyZ2UgY3ljbGUgY291bnQuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX0NZQ0xFX0NPVU5UKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5Q3ljbGVDb3VudFBhdGg7Cit9OworCisvKioKKyAqIFRoZSBwYXJhbWV0ZXIgdG8gaGVhbHRoZCBtYWlubG9vcCB1cGRhdGUgY2FsbHMKKyAqLworc3RydWN0IEhlYWx0aEluZm8geworICAgIC8qKiBBQyBjaGFyZ2VyIHN0YXRlIC0gJ3RydWUnIGlmIG9ubGluZSAqLworICAgIGJvb2wgY2hhcmdlckFjT25saW5lOworCisgICAgLyoqIFVTQiBjaGFyZ2VyIHN0YXRlIC0gJ3RydWUnIGlmIG9ubGluZSAqLworICAgIGJvb2wgY2hhcmdlclVzYk9ubGluZTsKKworICAgIC8qKiBXaXJlbGVzcyBjaGFyZ2VyIHN0YXRlIC0gJ3RydWUnIGlmIG9ubGluZSAqLworICAgIGJvb2wgY2hhcmdlcldpcmVsZXNzT25saW5lOworCisgICAgLyoqIE1heGltdW0gY2hhcmdpbmcgY3VycmVudCBzdXBwb3J0ZWQgYnkgY2hhcmdlciBpbiB1QSAqLworICAgIGludDMyX3QgbWF4Q2hhcmdpbmdDdXJyZW50OworCisgICAgLyoqIE1heGltdW0gY2hhcmdpbmcgdm9sdGFnZSBzdXBwb3J0ZWQgYnkgY2hhcmdlciBpbiB1ViAqLworICAgIGludDMyX3QgbWF4Q2hhcmdpbmdWb2x0YWdlOworCisgICAgQmF0dGVyeVN0YXR1cyBiYXR0ZXJ5U3RhdHVzOworCisgICAgQmF0dGVyeUhlYWx0aCBiYXR0ZXJ5SGVhbHRoOworCisgICAgLyoqICd0cnVlJyBpZiBiYXR0ZXJ5IGlzIHByZXNlbnQgKi8KKyAgICBib29sIGJhdHRlcnlQcmVzZW50OworCisgICAgLyoqIFJlbWFpbmluZyBiYXR0ZXJ5IGNhcGFjaXR5IGluIHBlcmNlbnQgKi8KKyAgICBpbnQzMl90IGJhdHRlcnlMZXZlbDsKKworICAgIC8qKiBJbnN0YW50YW5lb3VzIGJhdHRlcnkgdm9sdGFnZSBpbiB1ViAqLworICAgIGludDMyX3QgYmF0dGVyeVZvbHRhZ2U7CisKKyAgICAvKiogSW5zdGFudGFuZW91cyBiYXR0ZXJ5IHRlbXBlcmF0dXJlIGluIHRlbnRocyBvZiBkZWdyZWUgY2VsY2l1cyAqLworICAgIGludDMyX3QgYmF0dGVyeVRlbXBlcmF0dXJlOworCisgICAgLyoqIEluc3RhbnRhbmVvdXMgYmF0dGVyeSBjdXJyZW50IGluIHVBICovCisgICAgaW50MzJfdCBiYXR0ZXJ5Q3VycmVudDsKKworICAgIC8qKiBCYXR0ZXJ5IGNoYXJnZSBjeWNsZSBjb3VudCAqLworICAgIGludDMyX3QgYmF0dGVyeUN5Y2xlQ291bnQ7CisKKyAgICAvKiogQmF0dGVyeSBjaGFyZ2UgdmFsdWUgd2hlbiBpdCBpcyBjb25zaWRlcmVkIHRvIGJlICJmdWxsIiBpbiB1QS1oICovCisgICAgaW50MzJfdCBiYXR0ZXJ5RnVsbENoYXJnZTsKKworICAgIC8qKiBJbnN0YW50YW5lb3VzIGJhdHRlcnkgY2FwYWNpdHkgaW4gdUEtaCAqLworICAgIGludDMyX3QgYmF0dGVyeUNoYXJnZUNvdW50ZXI7CisKKyAgICAvKiogQmF0dGVyeSB0ZWNobm9sb2d5LCBlLmcuICJMaS1pb24sIExpLVBvbHkiIGV0Yy4gKi8KKyAgICBzdHJpbmcgYmF0dGVyeVRlY2hub2xvZ3k7Cit9OwpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhNGM4YzgKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzMiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEhlYWx0aFYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxIZWFsdGhWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxIZWFsdGhWMV8wVGFyZ2V0VGVzdC5jcHAgYi9oZWFsdGgvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEhlYWx0aFYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjRlYjlmCi0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxIZWFsdGhWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiaGVhbHRoX2hpZGxfaGFsX3Rlc3QiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUhlYWx0aC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKwordXNpbmcgSGVhbHRoQ29uZmlnID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpIZWFsdGhDb25maWc7Cit1c2luZyBIZWFsdGhJbmZvID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpIZWFsdGhJbmZvOwordXNpbmcgSUhlYWx0aCA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SUhlYWx0aDsKK3VzaW5nIFJlc3VsdCA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6UmVzdWx0OworCit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitjbGFzcyBIZWFsdGhIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBoZWFsdGggPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJSGVhbHRoPigpOworICAgICAgICBBU1NFUlRfTkUoaGVhbHRoLCBudWxscHRyKTsKKyAgICAgICAgaGVhbHRoLT5pbml0KGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgIFsmXShjb25zdCBhdXRvJiBoYWxDb25maWdPdXQpIHsgY29uZmlnID0gaGFsQ29uZmlnT3V0OyB9KTsKKyAgICB9CisKKyAgICBzcDxJSGVhbHRoPiBoZWFsdGg7CisgICAgSGVhbHRoQ29uZmlnIGNvbmZpZzsKK307CisKKy8qKgorICogRW5zdXJlIEVuZXJneUNvdW50ZXIgY2FsbCByZXR1cm5zIHBvc2l0aXZlIGVuZXJneSBjb3VudGVyIG9yIE5PVF9TVVBQT1JURUQKKyAqLworVEVTVF9GKEhlYWx0aEhpZGxUZXN0LCBUZXN0RW5lcmd5Q291bnRlcikgeworICAgIFJlc3VsdCByZXN1bHQ7CisgICAgaW50NjRfdCBlbmVyZ3kgPSAwOworICAgIGhlYWx0aC0+ZW5lcmd5Q291bnRlcihbJl0oUmVzdWx0IHJldCwgaW50NjRfdCBlbmVyZ3lPdXQpIHsKKyAgICAgICAgcmVzdWx0ID0gcmV0OworICAgICAgICBlbmVyZ3kgPSBlbmVyZ3lPdXQ7CisgICAgfSk7CisKKyAgICBBU1NFUlRfVFJVRShyZXN1bHQgPT0gUmVzdWx0OjpTVUNDRVNTIHx8IHJlc3VsdCA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIEFTU0VSVF9UUlVFKHJlc3VsdCAhPSBSZXN1bHQ6OlNVQ0NFU1MgfHwgZW5lcmd5ID4gMCk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9oZWFsdGgvQW5kcm9pZC5icCBiL2hlYWx0aC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZjcwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL0FuZHJvaWQuYnAgYi9rZXltYXN0ZXIvMy4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg0NjIwMAotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDYzIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJS2V5bWFzdGVyRGV2aWNlLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9LZXltYXN0ZXJEZXZpY2VBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvSUtleW1hc3RlckRldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9JSHdLZXltYXN0ZXJEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvQm5Id0tleW1hc3RlckRldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9CcEh3S2V5bWFzdGVyRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL0JzS2V5bWFzdGVyRGV2aWNlLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL0lLZXltYXN0ZXJEZXZpY2UuaGFsIGIva2V5bWFzdGVyLzMuMC9JS2V5bWFzdGVyRGV2aWNlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjY0NzY1Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC9JS2V5bWFzdGVyRGV2aWNlLmhhbApAQCAtMCwwICsxLDM0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wOworCisvKioKKyAqIEtleW1hc3RlciBkZXZpY2UgZGVmaW5pdGlvbi4gIEZvciB0aG9yb3VnaCBkb2N1bWVudGF0aW9uIHNlZSB0aGUgaW1wbGVtZW50ZXIncyByZWZlcmVuY2UsIGF0CisgKiBodHRwczovL3NvdXJjZS5hbmRyb2lkLmNvbS9zZWN1cml0eS9rZXlzdG9yZS9pbXBsZW1lbnRlci1yZWYuaHRtbAorICovCitpbnRlcmZhY2UgSUtleW1hc3RlckRldmljZSB7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1bmRlcmx5aW5nIGtleW1hc3RlciBoYXJkd2FyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaXNTZWN1cmUgaXMgdHJ1ZSBpZiBrZXlzIGFyZSBzdG9yZWQgYW5kIG5ldmVyIGxlYXZlIHNlY3VyZSBoYXJkd2FyZSAoVHJ1c3RlZAorICAgICAqICAgICAgICAgICAgIEV4ZWN1dGlvbiBFbnZpcm9ubWVudCBvciBzaW1pbGFyKS4gQ0REIHJlcXVpcmVzIHRoYXQgYWxsIGRldmljZXMgaW5pdGlhbGx5CisgICAgICogICAgICAgICAgICAgbGF1bmNoZWQgd2l0aCBNYXJzaG1hbGxvdyBvciBsYXRlciBtdXN0IGhhdmUgc2VjdXJlIGhhcmR3YXJlLgorICAgICAqCisgICAgICogQHJldHVybiBzdXBwb3J0c0VsbGlwdGljQ3VydmUgaXMgdHJ1ZSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgRWxsaXB0aWMgQ3VydmUgY3J5cHRvZ3JhcGh5CisgICAgICogICAgICAgICAgICAgd2l0aCB0aGUgTklTVCBjdXJ2ZXMgKFAtMjI0LCBQLTI1NiwgUC0zODQsIGFuZCBQLTUyMSkuIENERCByZXF1aXJlcyB0aGF0IGFsbAorICAgICAqICAgICAgICAgICAgIGRldmljZXMgaW5pdGlhbGx5IGxhdW5jaGVkIHdpdGggTm91Z2F0IG9yIGxhdGVyIG11c3Qgc3VwcG9ydCBFbGxpcHRpYyBDdXJ2ZQorICAgICAqICAgICAgICAgICAgIGNyeXB0b2dyYXBoeS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNTeW1tZXRyaWNDcnlwdG9ncmFwaHkgaXMgdHJ1ZSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgc3ltbWV0cmljCisgICAgICogICAgICAgICAgICAgY3J5cHRvZ3JhcGh5LCBpbmNsdWRpbmcgQUVTIGFuZCBITUFDLiBDREQgcmVxdWlyZXMgdGhhdCBhbGwgZGV2aWNlcyBpbml0aWFsbHkKKyAgICAgKiAgICAgICAgICAgICBsYXVuY2hlZCB3aXRoIE5vdWdhdCBvciBsYXRlciBtdXN0IHN1cHBvcnQgaGFyZHdhcmUgZW5mb3JjZW1lbnQgb2YgS2V5bWFzdGVyCisgICAgICogICAgICAgICAgICAgYXV0aG9yaXphdGlvbnMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1cHBvcnRzQXR0ZXN0YXRpb24gaXMgdHJ1ZSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgZ2VuZXJhdGlvbiBvZiBLZXltYXN0ZXIgcHVibGljCisgICAgICogICAgICAgICAgICAga2V5IGF0dGVzdGF0aW9uIGNlcnRpZmljYXRlcywgc2lnbmVkIHdpdGggYSBrZXkgaW5qZWN0ZWQgaW4gYSBzZWN1cmUKKyAgICAgKiAgICAgICAgICAgICBlbnZpcm9ubWVudC4gQ0REIHJlcXVpcmVzIHRoYXQgYWxsIGRldmljZXMgaW5pdGlhbGx5IGxhdW5jaGVkIHdpdGggQW5kcm9pZCBPIG9yCisgICAgICogICAgICAgICAgICAgbGF0ZXIgbXVzdCBzdXBwb3J0IGhhcmR3YXJlIGF0dGVzdGF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBzdXBwb3J0c0FsbERpZ2VzdHMgaXMgdHJ1ZSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgYWxsIGtleW1hc3RlciBkaWdlc3QgZnVuY3Rpb25zLAorICAgICAqICAgICAgICAgICAgIG5hbWVseSBORC01LCBTSEEtMSwgU0hBLTIyNCwgU0hBLTI1NiwgU0hBLTM4NCBhbmQgU0hBLTUxMi4gQ0REIHJlcXVpcmVzIHRoYXQgYWxsCisgICAgICogICAgICAgICAgICAgZGV2aWNlcyBsYXVuY2hlZCBpbml0aWFsbHkgd2l0aCBBbmRyb2lkIE8gb3IgbGF0ZXIgbXVzdCBzdXBwb3J0IGFsbCBkaWdlc3RzLgorICAgICAqCisgICAgICogQHJldHVybiBrZXltYXN0ZXJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBrZXltYXN0ZXIgaW1wbGVtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleW1hc3RlckF1dGhvck5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGF1dGhvciBvZiB0aGUga2V5bWFzdGVyIGltcGxlbWVudGF0aW9uCisgICAgICogICAgICAgICAgICAgKGdlbmVyYWxseSB0aGlzIHNob3VsZCBiZSB0aGUgbmFtZSBvZiBhbiBvcmdhbml6YXRpb24sIG5vdCBhbiBpbmRpdmlkdWFsLikKKyAgICAgKi8KKyAgICBnZXRIYXJkd2FyZUZlYXR1cmVzKCkKKyAgICAgICAgZ2VuZXJhdGVzKGJvb2wgaXNTZWN1cmUsIGJvb2wgc3VwcG9ydHNFbGxpcHRpY0N1cnZlLCBib29sIHN1cHBvcnRzU3ltbWV0cmljQ3J5cHRvZ3JhcGh5LAorICAgICAgICAgICAgICAgICAgYm9vbCBzdXBwb3J0c0F0dGVzdGF0aW9uLCBib29sIHN1cHBvcnRzQWxsRGlnZXN0cywgc3RyaW5nIGtleW1hc3Rlck5hbWUsCisgICAgICAgICAgICAgICAgICBzdHJpbmcga2V5bWFzdGVyQXV0aG9yTmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGVudHJvcHkgdG8gdGhlIFJORyB1c2VkIGJ5IGtleW1hc3Rlci4gRW50cm9weSBhZGRlZCB0aHJvdWdoIHRoaXMgbWV0aG9kIGlzIGd1YXJhbnRlZWQKKyAgICAgKiBub3QgdG8gYmUgdGhlIG9ubHkgc291cmNlIG9mIGVudHJvcHkgdXNlZCwgYW5kIHRoZSBtaXhpbmcgZnVuY3Rpb24gaXMgcmVxdWlyZWQgdG8gYmUgc2VjdXJlLAorICAgICAqIGluIHRoZSBzZW5zZSB0aGF0IGlmIHRoZSBSTkcgaXMgc2VlZGVkIChmcm9tIGFueSBzb3VyY2UpIHdpdGggYW55IGRhdGEgdGhlIGF0dGFja2VyIGNhbm5vdAorICAgICAqIHByZWRpY3QgKG9yIGNvbnRyb2wpLCB0aGVuIHRoZSBSTkcgb3V0cHV0IGlzIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gcmFuZG9tLiBUaHVzLCBpZiB0aGUKKyAgICAgKiBlbnRyb3B5IGZyb20gYW55IHNvdXJjZSBpcyBnb29kLCB0aGUgb3V0cHV0IG11c3QgYmUgZ29vZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRhIEJ5dGVzIHRvIGJlIG1peGVkIGludG8gdGhlIFJORy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICovCisgICAgYWRkUm5nRW50cm9weSh2ZWM8dWludDhfdD4gZGF0YSkgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBrZXksIG9yIGtleSBwYWlyLCByZXR1cm5pbmcgYSBrZXkgYmxvYiBhbmQvb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUga2V5LgorICAgICAqCisgICAgICogQHBhcmFtIGtleVBhcmFtcyBLZXkgZ2VuZXJhdGlvbiBwYXJhbWV0ZXJzIGFyZSBkZWZpbmVkIGFzIGtleW1hc3RlciB0YWcvdmFsdWUgcGFpcnMsIHByb3ZpZGVkCisgICAgICogICAgICAgICAgICAgaW4gcGFyYW1zLiBTZWUgVGFnIGluIHR5cGVzLmhhbCBmb3IgdGhlIGZ1bGwgbGlzdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleUJsb2IgT3BhcXVlLCBlbmNyeXB0ZWQgZGVzY3JpcHRvciBvZiB0aGUgZ2VuZXJhdGVkIGtleSwgd2hpY2ggZ2VuZXJhbGx5IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgICAgICBjb3B5IG9mIHRoZSBrZXkgbWF0ZXJpYWwsIHdyYXBwZWQgaW4gYSBrZXkgdW5hdmFpbGFibGUgb3V0c2lkZSBzZWN1cmUgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleUNoYXJhY3RlcmlzdGljcyBEZXNjcmlwdGlvbiBvZiB0aGUgZ2VuZXJhdGVkIGtleS4gIFNlZSBLZXlDaGFyYWN0ZXJpc3RpcyBpbgorICAgICAqICAgICAgICAgICAgIHR5cGVzLmhhbC4KKyAgICAgKi8KKyAgICBnZW5lcmF0ZUtleSh2ZWM8S2V5UGFyYW1ldGVyPiBrZXlQYXJhbXMpCisgICAgICAgIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHZlYzx1aW50OF90PiBrZXlCbG9iLCBLZXlDaGFyYWN0ZXJpc3RpY3Mga2V5Q2hhcmFjdGVyaXN0aWNzKTsKKworICAgIC8qKgorICAgICAqIEltcG9ydHMgYSBrZXksIG9yIGtleSBwYWlyLCByZXR1cm5pbmcgYSBrZXkgYmxvYiBhbmQvb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUga2V5LgorICAgICAqCisgICAgICogQHBhcmFtIGtleVBhcmFtcyBLZXkgZ2VuZXJhdGlvbiBwYXJhbWV0ZXJzIGFyZSBkZWZpbmVkIGFzIGtleW1hc3RlciB0YWcvdmFsdWUgcGFpcnMsIHByb3ZpZGVkCisgICAgICogICAgICAgICAgICAgaW4gcGFyYW1zLiAgU2VlIFRhZyBmb3IgdGhlIGZ1bGwgbGlzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlGb3JtYXQgVGhlIGZvcm1hdCBvZiB0aGUga2V5IG1hdGVyaWFsIHRvIGltcG9ydC4gU2VlIEtleUZvcm1hdCBpbiB0eXBlcy5oYWwuCisgICAgICoKKyAgICAgKiBAcHJhbSBrZXlEYXRhIFRoZSBrZXkgbWF0ZXJpYWwgdG8gaW1wb3J0LCBpbiB0aGUgZm9ybWF0IHNwZWNpZmVkIGluIGtleUZvcm1hdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bS4KKyAgICAgKgorICAgICAqIEByZXR1cm4ga2V5QmxvYiBPcGFxdWUsIGVuY3J5cHRlZCBkZXNjcmlwdG9yIG9mIHRoZSBnZW5lcmF0ZWQga2V5LCB3aGljaCB3aWxsIGdlbmVyYWxseQorICAgICAqICAgICAgICAgICAgIGNvbnRhaW4gYSBjb3B5IG9mIHRoZSBrZXkgbWF0ZXJpYWwsIHdyYXBwZWQgaW4gYSBrZXkgdW5hdmFpbGFibGUgb3V0c2lkZSBzZWN1cmUKKyAgICAgKiAgICAgICAgICAgICBoYXJkd2FyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4ga2V5Q2hhcmFjdGVyaXN0aWNzIERlY3JpcHRpb24gb2YgdGhlIGdlbmVyYXRlZCBrZXkuICBTZWUgS2V5Q2hhcmFjdGVyaXN0aXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0uCisgICAgICovCisgICAgaW1wb3J0S2V5KHZlYzxLZXlQYXJhbWV0ZXI+IHBhcmFtcywgS2V5Rm9ybWF0IGtleUZvcm1hdCwgdmVjPHVpbnQ4X3Q+IGtleURhdGEpCisgICAgICAgIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHZlYzx1aW50OF90PiBrZXlCbG9iLCBLZXlDaGFyYWN0ZXJpc3RpY3Mga2V5Q2hhcmFjdGVyaXN0aWNzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgc3BlY2lmaWVkIGtleSwgaWYgdGhlIGtleUJsb2IgaXMgdmFsaWQgKGltcGxlbWVudGF0aW9ucworICAgICAqIG11c3QgZnVsbHkgdmFsaWRhdGUgdGhlIGludGVncml0eSBvZiB0aGUga2V5KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlCbG9iIFRoZSBvcGFxdWUgZGVzY3JpcHRvciByZXR1cm5lZCBieSBnZW5lcmF0ZUtleSgpIG9yIGltcG9ydEtleSgpOworICAgICAqCisgICAgICogQHBhcmFtIGNsaWVudElkIEFuIG9wYXF1ZSBieXRlIHN0cmluZyBpZGVudGlmeWluZyB0aGUgY2xpZW50LiBUaGlzIHZhbHVlIG11c3QgbWF0Y2ggdGhlCisgICAgICogICAgICAgICAgICAgVGFnOjpBUFBMSUNBVElPTl9JRCBkYXRhIHByb3ZpZGVkIGR1cmluZyBrZXkgZ2VuZXJhdGlvbi9pbXBvcnQuICBXaXRob3V0IHRoZQorICAgICAqICAgICAgICAgICAgIGNvcnJlY3QgdmFsdWUgaXQgbXVzdCBiZSBjcnlwdG9ncmFwaGljYWxseSBpbXBvc3NpYmxlIGZvciB0aGUgc2VjdXJlIGhhcmR3YXJlIHRvCisgICAgICogICAgICAgICAgICAgb2J0YWluIHRoZSBrZXkgbWF0ZXJpYWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXBwRGF0YSBBbiBvcGFxdWUgYnl0ZSBzdHJpbmcgcHJvdmlkZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHZhbHVlIG11c3QgbWF0Y2ggdGhlCisgICAgICogICAgICAgICAgICAgVGFnOjpBUFBMSUNBVElPTl9EQVRBIGRhdGEgcHJvdmlkZWQgZHVyaW5nIGtleSBnZW5lcmF0aW9uL2ltcG9ydC4gIFdpdGhvdXQgdGhlCisgICAgICogICAgICAgICAgICAgY29ycmVjdCB2YWx1ZSBpdCBtdXN0IGJlIGNyeXB0b2dyYXBoaWNhbGx5IGltcG9zc2libGUgZm9yIHRoZSBzZWN1cmUgaGFyZHdhcmUgdG8KKyAgICAgKiAgICAgICAgICAgICBvYnRhaW4gdGhlIGtleSBtYXRlcmlhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleUNoYXJhY3RlcmlzdGljcyBEZWNyaXB0aW9uIG9mIHRoZSBnZW5lcmF0ZWQga2V5LiAgU2VlIEtleUNoYXJhY3RlcmlzdGlzIGluCisgICAgICogICAgICAgICAgICAgdHlwZXMuaGFsLgorICAgICAqLworICAgIGdldEtleUNoYXJhY3RlcmlzdGljcyh2ZWM8dWludDhfdD4ga2V5QmxvYiwgdmVjPHVpbnQ4X3Q+IGNsaWVudElkLCB2ZWM8dWludDhfdD4gYXBwRGF0YSkKKyAgICAgICAgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvciwgS2V5Q2hhcmFjdGVyaXN0aWNzIGtleUNoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvKioKKyAgICAgKiBFeHBvcnRzIGEgcHVibGljIGtleSwgcmV0dXJuaW5nIHRoZSBrZXkgaW4gdGhlIHNwZWNpZmllZCBmb3JtYXQuCisgICAgICoKKyAgICAgKiBAcGFybSBrZXlGb3JtYXQgVGhlIGZvcm1hdCB1c2VkIGZvciBleHBvcnQuIFNlZSBLZXlGb3JtYXQgaW4gdHlwZXMuaGFsLgorICAgICAqCisgICAgICogQHBhcmFtIGtleUJsb2IgVGhlIG9wYXF1ZSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IGdlbmVyYXRlS2V5KCkgb3IgaW1wb3J0S2V5KCkuICBUaGUKKyAgICAgKiAgICAgICAgICAgICByZWZlcmVuY2VkIGtleSBtdXN0IGJlIGFzeW1tZXRyaWMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2xpZW50SWQgQW4gb3BhcXVlIGJ5dGUgc3RyaW5nIGlkZW50aWZ5aW5nIHRoZSBjbGllbnQuIFRoaXMgdmFsdWUgbXVzdCBtYXRjaCB0aGUKKyAgICAgKiAgICAgICAgICAgICBUYWc6OkFQUExJQ0FUSU9OX0lEIGRhdGEgcHJvdmlkZWQgZHVyaW5nIGtleSBnZW5lcmF0aW9uL2ltcG9ydC4gIFdpdGhvdXQgdGhlCisgICAgICogICAgICAgICAgICAgY29ycmVjdCB2YWx1ZSBpdCBtdXN0IGJlIGNyeXB0b2dyYXBoaWNhbGx5IGltcG9zc2libGUgZm9yIHRoZSBzZWN1cmUgaGFyZHdhcmUgdG8KKyAgICAgKiAgICAgICAgICAgICBvYnRhaW4gdGhlIGtleSBtYXRlcmlhbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhcHBEYXRhIEFuIG9wYXF1ZSBieXRlIHN0cmluZyBwcm92aWRlZCBieSB0aGUgYXBwbGljYXRpb24uIFRoaXMgdmFsdWUgbXVzdCBtYXRjaCB0aGUKKyAgICAgKiAgICAgICAgICAgICBUYWc6OkFQUExJQ0FUSU9OX0RBVEEgZGF0YSBwcm92aWRlZCBkdXJpbmcga2V5IGdlbmVyYXRpb24vaW1wb3J0LiAgV2l0aG91dCB0aGUKKyAgICAgKiAgICAgICAgICAgICBjb3JyZWN0IHZhbHVlIGl0IG11c3QgYmUgY3J5cHRvZ3JhcGhpY2FsbHkgaW1wb3NzaWJsZSBmb3IgdGhlIHNlY3VyZSBoYXJkd2FyZSB0bworICAgICAqICAgICAgICAgICAgIG9idGFpbiB0aGUga2V5IG1hdGVyaWFsLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4ga2V5TWF0ZXJpYWwgVGhlIHB1YmxpYyBrZXkgbWF0ZXJpYWwgaW4gUEtDUyM4IGZvcm1hdC4KKyAgICAgKi8KKyAgICBleHBvcnRLZXkoS2V5Rm9ybWF0IGtleUZvcm1hdCwgdmVjPHVpbnQ4X3Q+IGtleUJsb2IsIHZlYzx1aW50OF90PiBjbGllbnRJZCwKKyAgICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGFwcERhdGEpIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHZlYzx1aW50OF90PiBrZXlNYXRlcmlhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBzaWduZWQgWC41MDkgY2VydGlmaWNhdGUgY2hhaW4gYXR0ZXN0aW5nIHRvIHRoZSBwcmVzZW5jZSBvZiBrZXlUb0F0dGVzdCBpbgorICAgICAqIGtleW1hc3Rlci4gVGhlIGNlcnRpZmljYXRlIHdpbGwgY29udGFpbiBhbiBleHRlbnNpb24gd2l0aCBPSUQgMS4zLjYuMS40LjEuMTExMjkuMi4xLjE3IGFuZAorICAgICAqIHZhbHVlIGRlZmluZWQgaW46CisgICAgICoKKyAgICAgKiAgICAgaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vdHJhaW5pbmcvYXJ0aWNsZXMvc2VjdXJpdHkta2V5LWF0dGVzdGF0aW9uLmh0bWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5VG9BdHRlc3QgVGhlIG9wYXF1ZSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IGdlbmVyYXRlS2V5KCkgb3IgaW1wb3J0S2V5KCkuICBUaGUKKyAgICAgKiAgICAgICAgICAgICByZWZlcmVuY2VkIGtleSBtdXN0IGJlIGFzeW1tZXRyaWMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXR0ZXN0UGFyYW1zIFBhcmFtZXRlcnMgZm9yIHRoZSBhdHRlc3RhdGlvbiwgbm90YWJseSBUYWc6OkFUVEVTVEFUSU9OX0NIQUxMRU5HRS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICovCisgICAgYXR0ZXN0S2V5KHZlYzx1aW50OF90PiBrZXlUb0F0dGVzdCwgdmVjPEtleVBhcmFtZXRlcj4gYXR0ZXN0UGFyYW1zKQorICAgICAgICBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yLCB2ZWM8dmVjPHVpbnQ4X3Q+PiBjZXJ0Q2hhaW4pOworCisgICAgLyoqCisgICAgICogVXBncmFkZXMgYW4gb2xkIGtleS4gS2V5cyBjYW4gYmVjb21lICJvbGQiIGluIHR3byB3YXlzOiBLZXltYXN0ZXIgY2FuIGJlIHVwZ3JhZGVkIHRvIGEgbmV3CisgICAgICogdmVyc2lvbiwgb3IgdGhlIHN5c3RlbSBjYW4gYmUgdXBkYXRlZCB0byBpbnZhbGlkYXRlIHRoZSBPUyB2ZXJzaW9uIGFuZC9vciBwYXRjaCBsZXZlbC4gSW4KKyAgICAgKiBlaXRoZXIgY2FzZSwgYXR0ZW1wdHMgdG8gdXNlIGFuIG9sZCBrZXkgd2l0aCBnZXRLZXlDaGFyYWN0ZXJpc3RpY3MoKSwgZXhwb3J0S2V5KCksCisgICAgICogYXR0ZXN0S2V5KCkgb3IgYmVnaW4oKSB3aWxsIHJlc3VsdCBpbiBrZXltYXN0ZXIgcmV0dXJuaW5nCisgICAgICogRXJyb3JDb2RlOjpLRVlfUkVRVUlSRVNfVVBHUkFERS4gVGhpcyBtZXRob2QgbXVzdCB0aGVuIGJlIGNhbGxlZCB0byB1cGdyYWRlIHRoZSBrZXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5QmxvYlRvVXBncmFkZSBUaGUgb3BhcXVlIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgZ2VuZXJhdGVLZXkoKSBvciBpbXBvcnRLZXkoKTsKKyAgICAgKgorICAgICAqIEBwYXJhbSB1cGdyYWRlUGFyYW1zIEEgcGFyYW1ldGVyIGxpc3QgY29udGFpbmluZyBhbnkgcGFyYW1ldGVycyBuZWVkZWQgdG8gY29tcGxldGUgdGhlCisgICAgICogICAgICAgICAgICAgdXBncmFkZSwgaW5jbHVkaW5nIFRhZzo6QVBQTElDQVRJT05fSUQgYW5kIFRhZzo6QVBQTElDQVRJT05fREFUQS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bS4KKyAgICAgKi8KKyAgICB1cGdyYWRlS2V5KHZlYzx1aW50OF90PiBrZXlCbG9iVG9VcGdyYWRlLCB2ZWM8S2V5UGFyYW1ldGVyPiB1cGdyYWRlUGFyYW1zKQorICAgICAgICBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yLCB2ZWM8dWludDhfdD4gdXBncmFkZWRLZXlCbG9iKTsKKworICAgIC8qKgorICAgICAqIERlbGV0ZXMgdGhlIGtleSwgb3Iga2V5IHBhaXIsIGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5IGJsb2IuIEFmdGVyIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpdAorICAgICAqIHdpbGwgYmUgaW1wb3NzaWJsZSB0byB1c2UgdGhlIGtleSBmb3IgYW55IG90aGVyIG9wZXJhdGlvbnMuIE1heSBiZSBhcHBsaWVkIHRvIGtleXMgZnJvbQorICAgICAqIGZvcmVpZ24gcm9vdHMgb2YgdHJ1c3QgKGtleXMgbm90IHVzYWJsZSB1bmRlciB0aGUgY3VycmVudCByb290IG9mIHRydXN0KS4KKyAgICAgKgorICAgICAqIFRoaXMgaXMgYSBOT1AgZm9yIGtleXMgdGhhdCBkb24ndCBoYXZlIHJvbGxiYWNrIHByb3RlY3Rpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5QmxvYlRvVXBncmFkZSBUaGUgb3BhcXVlIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgZ2VuZXJhdGVLZXkoKSBvciBpbXBvcnRLZXkoKTsKKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bS4KKyAgICAgKi8KKyAgICBkZWxldGVLZXkodmVjPHVpbnQ4X3Q+IGtleUJsb2IpIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IpOworCisgICAgLyoqCisgICAgICogRGVsZXRlcyBhbGwga2V5cyBpbiB0aGUgaGFyZHdhcmUga2V5c3RvcmUuIFVzZWQgd2hlbiBrZXlzdG9yZSBpcyByZXNldCBjb21wbGV0ZWx5LiBBZnRlcgorICAgICAqIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpdCB3aWxsIGJlIGltcG9zc2libGUgdG8gdXNlIGFueSBwcmV2aW91c2x5IGdlbmVyYXRlZCBvciBpbXBvcnRlZCBrZXkKKyAgICAgKiBibG9icyBmb3IgYW55IG9wZXJhdGlvbnMuCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGEgTk9QIGlmIGtleXMgZG9uJ3QgaGF2ZSByb2xsYmFjayBwcm90ZWN0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtLgorICAgICAqLworICAgIGRlbGV0ZUFsbEtleXMoKSBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIERlc3Ryb3lzIGtub3dsZWRnZSBvZiB0aGUgZGV2aWNlJ3MgaWRzLiBUaGlzIHByZXZlbnRzIGFsbCBkZXZpY2UgaWQgYXR0ZXN0YXRpb24gaW4gdGhlCisgICAgICogZnV0dXJlLiBUaGUgZGVzdHJ1Y3Rpb24gbXVzdCBiZSBwZXJtYW5lbnQgc28gdGhhdCBub3QgZXZlbiBhIGZhY3RvcnkgcmVzZXQgd2lsbCByZXN0b3JlIHRoZQorICAgICAqIGRldmljZSBpZHMuCisgICAgICoKKyAgICAgKiBEZXZpY2UgaWQgYXR0ZXN0YXRpb24gbWF5IGJlIHByb3ZpZGVkIG9ubHkgaWYgdGhpcyBtZXRob2QgaXMgZnVsbHkgaW1wbGVtZW50ZWQsIGFsbG93aW5nIHRoZQorICAgICAqIHVzZXIgdG8gcGVybWFuZW50bHkgZGlzYWJsZSBkZXZpY2UgaWQgYXR0ZXN0YXRpb24uIElmIHRoaXMgY2Fubm90IGJlIGd1YXJhbnRlZWQsIHRoZSBkZXZpY2UKKyAgICAgKiBtdXN0IG5ldmVyIGF0dGVzdCBhbnkgZGV2aWNlIGlkcy4KKyAgICAgKgorICAgICAqIFRoaXMgaXMgYSBOT1AgaWYgZGV2aWNlIGlkIGF0dGVzdGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0uCisgICAgICovCisgICAgZGVzdHJveUF0dGVzdGF0aW9uSWRzKCkgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBCZWdpbnMgYSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbiB1c2luZyB0aGUgc3BlY2lmaWVkIGtleS4gSWYgYWxsIGlzIHdlbGwsIGJlZ2luKCkgd2lsbCByZXR1cm4KKyAgICAgKiBFcnJvckNvZGU6Ok9LIGFuZCBjcmVhdGUgYW4gb3BlcmF0aW9uIGhhbmRsZSB3aGljaCBtdXN0IGJlIHBhc3NlZCB0byBzdWJzZXF1ZW50IGNhbGxzIHRvCisgICAgICogdXBkYXRlKCksIGZpbmlzaCgpIG9yIGFib3J0KCkuCisgICAgICoKKyAgICAgKiBJdCBpcyBjcml0aWNhbCB0aGF0IGVhY2ggY2FsbCB0byBiZWdpbigpIGJlIHBhaXJlZCB3aXRoIGEgc3Vic2VxdWVudCBjYWxsIHRvIGZpbmlzaCgpIG9yCisgICAgICogYWJvcnQoKSwgdG8gYWxsb3cgdGhlIGtleW1hc3RlciBpbXBsZW1lbnRhdGlvbiB0byBjbGVhbiB1cCBhbnkgaW50ZXJuYWwgb3BlcmF0aW9uIHN0YXRlLgorICAgICAqIEZhaWx1cmUgdG8gZG8gdGhpcyBtYXkgbGVhayBpbnRlcm5hbCBzdGF0ZSBzcGFjZSBvciBvdGhlciBpbnRlcm5hbCByZXNvdXJjZXMgYW5kIG1heQorICAgICAqIGV2ZW50dWFsbHkgY2F1c2UgYmVnaW4oKSB0byByZXR1cm4gRXJyb3JDb2RlOjpUT09fTUFOWV9PUEVSQVRJT05TIHdoZW4gaXQgcnVucyBvdXQgb2Ygc3BhY2UKKyAgICAgKiBmb3Igb3BlcmF0aW9ucy4gQW55IHJlc3VsdCBvdGhlciB0aGFuIEVycm9yQ29kZTo6T0sgZnJvbSBiZWdpbigpLCB1cGRhdGUoKSBvciBmaW5pc2goKQorICAgICAqIGltcGxpY2l0bHkgYWJvcnRzIHRoZSBvcGVyYXRpb24sIGluIHdoaWNoIGNhc2UgYWJvcnQoKSBuZWVkIG5vdCBiZSBjYWxsZWQgKGFuZCB3aWxsIHJldHVybgorICAgICAqIEVycm9yQ29kZTo6SU5WQUxJRF9PUEVSQVRJT05fSEFORExFIGlmIGNhbGxlZCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHVycG9zZSBUaGUgcHVycG9zZSBvZiB0aGUgb3BlcmF0aW9uLCBvbmUgb2YgS2V5UHVycG9zZTo6RU5DUllQVCwgS2V5UHVycG9zZTo6REVDUllQVCwKKyAgICAgKiAgICAgICAgICAgICBLZXlQdXJwb3NlOjpTSUdOIG9yIEtleVB1cnBvc2U6OlZFUklGWS4gTm90ZSB0aGF0IGZvciBBRUFEIG1vZGVzLCBlbmNyeXB0aW9uIGFuZAorICAgICAqICAgICAgICAgICAgIGRlY3J5cHRpb24gaW1wbHkgc2lnbmluZyBhbmQgdmVyaWZpY2F0aW9uLCByZXNwZWN0aXZlbHksIGJ1dCBtdXN0IGJlIHNwZWNpZmllZCBhcworICAgICAqICAgICAgICAgICAgIEtleVB1cnBvc2U6OkVOQ1JZUFQgYW5kIEtleVB1cnBvc2U6OkRFQ1JZUFQuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5QmxvYiBUaGUgb3BhcXVlIGtleSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IGdlbmVyYXRlS2V5KCkgb3IgaW1wb3J0S2V5KCkuICBUaGUga2V5CisgICAgICogICAgICAgICAgICAgbXVzdCBoYXZlIGEgcHVycG9zZSBjb21wYXRpYmxlIHdpdGggcHVycG9zZSBhbmQgYWxsIG9mIGl0cyB1c2FnZSByZXF1aXJlbWVudHMKKyAgICAgKiAgICAgICAgICAgICBtdXN0IGJlIHNhdGlzZmllZCwgb3IgYmVnaW4oKSB3aWxsIHJldHVybiBhbiBhcHByb3ByaWF0ZSBlcnJvciBjb2RlLgorICAgICAqCisgICAgICogQHBhcmFtIGluUGFyYW1zIEFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIG9wZXJhdGlvbi4gVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB0byBwcm92aWRlCisgICAgICogICAgICAgICAgICAgYXV0aGVudGljYXRpb24gZGF0YSwgd2l0aCBUYWc6OkFVVEhfVE9LRU4uIElmIFRhZzo6QVBQTElDQVRJT05fSUQgb3IKKyAgICAgKiAgICAgICAgICAgICBUYWc6OkFQUExJQ0FUSU9OX0RBVEEgd2VyZSBwcm92aWRlZCBkdXJpbmcgZ2VuZXJhdGlvbiwgdGhleSBtdXN0IGJlIHByb3ZpZGVkCisgICAgICogICAgICAgICAgICAgaGVyZSwgb3IgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBFcnJvckNvZGU6OklOVkFMSURfS0VZX0JMT0IuIEZvciBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgdGhhdCByZXF1aXJlIGEgbm9uY2Ugb3IgSVYsIG9uIGtleXMgdGhhdCB3ZXJlIGdlbmVyYXRlZCB3aXRoIFRhZzo6Q0FMTEVSX05PTkNFLAorICAgICAqICAgICAgICAgICAgIGluUGFyYW1zIG1heSBjb250YWluIGEgdGFnIFRhZzo6Tk9OQ0UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0gaW4gdHlwZXMuaGFsLgorICAgICAqCisgICAgICogQHJldHVybiBvdXRQYXJhbXMgT3V0cHV0IHBhcmFtZXRlcnMuIFVzZWQgdG8gcmV0dXJuIGFkZGl0aW9uYWwgZGF0YSBmcm9tIHRoZSBvcGVyYXRpb24KKyAgICAgKiAgICAgICAgICAgICBpbml0aWFsaXphdGlvbiwgbm90YWJseSB0byByZXR1cm4gdGhlIElWIG9yIG5vbmNlIGZyb20gb3BlcmF0aW9ucyB0aGF0IGdlbmVyYXRlCisgICAgICogICAgICAgICAgICAgYW4gSVYgb3Igbm9uY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG9wZXJhdGlvbkhhbmRsZSBUaGUgbmV3bHktY3JlYXRlZCBvcGVyYXRpb24gaGFuZGxlIHdoaWNoIG11c3QgYmUgcGFzc2VkIHRvIHVwZGF0ZSgpLAorICAgICAqICAgICAgICAgICAgIGZpbmlzaCgpIG9yIGFib3J0KCkuCisgICAgICovCisgICAgYmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCB2ZWM8dWludDhfdD4ga2V5LCB2ZWM8S2V5UGFyYW1ldGVyPiBpblBhcmFtcykKKyAgICAgICAgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvciwgdmVjPEtleVBhcmFtZXRlcj4gb3V0UGFyYW1zLCBPcGVyYXRpb25IYW5kbGUgb3BlcmF0aW9uSGFuZGxlKTsKKworICAgIC8qKgorICAgICAqIFByb3ZpZGVzIGRhdGEgdG8sIGFuZCBwb3NzaWJseSByZWNlaXZlcyBvdXRwdXQgZnJvbSwgYW4gb25nb2luZyBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbiBiZWd1bgorICAgICAqIHdpdGggYmVnaW4oKS4KKyAgICAgKgorICAgICAqIElmIG9wZXJhdGlvbkhhbmRsZSBpcyBpbnZhbGlkLCB1cGRhdGUoKSB3aWxsIHJldHVybiBFcnJvckNvZGU6OklOVkFMSURfT1BFUkFUSU9OX0hBTkRMRS4KKyAgICAgKgorICAgICAqIHVwZGF0ZSgpIG1heSBub3QgY29uc3VtZSBhbGwgb2YgdGhlIGRhdGEgcHJvdmlkZWQgaW4gdGhlIGRhdGEgYnVmZmVyLiB1cGRhdGUoKSB3aWxsIHJldHVybgorICAgICAqIHRoZSBhbW91bnQgY29uc3VtZWQgaW4gaW5wdXRDb25zdW1lZC4gVGhlIGNhbGxlciBtYXkgcHJvdmlkZSB0aGUgdW5jb25zdW1lZCBkYXRhIGluIGEKKyAgICAgKiBzdWJzZXF1ZW50IGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3BlcmF0aW9uSGFuZGxlIFRoZSBvcGVyYXRpb24gaGFuZGxlIHJldHVybmVkIGJ5IGJlZ2luKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5QYXJhbXMgQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlcmF0aW9uLiBGb3IgQUVBRCBtb2RlcywgdGhpcyBpcyB1c2VkIHRvCisgICAgICogICAgICAgICAgICAgc3BlY2lmeSBUYWc6OkFERElUSU9OQUxfREFUQS4gTm90ZSB0aGF0IGFkZGl0aW9uYWwgZGF0YSBtYXkgYmUgcHJvdmlkZWQgaW4KKyAgICAgKiAgICAgICAgICAgICBtdWx0aXBsZSBjYWxscyB0byB1cGRhdGUoKSwgYnV0IG9ubHkgdW50aWwgaW5wdXQgZGF0YSBoYXMgYmVlbiBwcm92aWRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnB1dCBEYXRhIHRvIGJlIHByb2Nlc3NlZCwgcGVyIHRoZSBwYXJhbWV0ZXJzIGVzdGFibGlzaGVkIGluIHRoZSBjYWxsIHRvIGJlZ2luKCkuCisgICAgICogICAgICAgICAgICAgTm90ZSB0aGF0IHVwZGF0ZSgpIG1heSBvciBtYXkgbm90IGNvbnN1bWUgYWxsIG9mIHRoZSBkYXRhIHByb3ZpZGVkLiBTZWUKKyAgICAgKiAgICAgICAgICAgICBpbnB1dENvbnN1bWVkLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW5wdXRDb25zdW1lZCBBbW91bnQgb2YgZGF0YSB0aGF0IHdhcyBjb25zdW1lZCBieSB1cGRhdGUoKS4gSWYgdGhpcyBpcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgYW1vdW50IHByb3ZpZGVkLCB0aGUgY2FsbGVyIG1heSBwcm92aWRlIHRoZSByZW1haW5kZXIgaW4gYSBzdWJzZXF1ZW50IGNhbGwgdG8KKyAgICAgKiAgICAgICAgICAgICB1cGRhdGUoKSBvciBmaW5pc2goKS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gb3V0UGFyYW1zIE91dHB1dCBwYXJhbWV0ZXJzLCB1c2VkIHRvIHJldHVybiBhZGRpdGlvbmFsIGRhdGEgZnJvbSB0aGUgb3BlcmF0aW9uIFRoZQorICAgICAqICAgICAgICAgICAgIGNhbGxlciB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIG91dHB1dCBwYXJhbWV0ZXJzIGFycmF5IGFuZCBtdXN0IGZyZWUgaXQgd2l0aAorICAgICAqICAgICAgICAgICAgIGtleW1hc3Rlcl9mcmVlX3BhcmFtX3NldCgpLgorICAgICAqCisgICAgICogQHJldHVybiBvdXRwdXQgVGhlIG91dHB1dCBkYXRhLCBpZiBhbnkuCisgICAgICovCisgICAgdXBkYXRlKE9wZXJhdGlvbkhhbmRsZSBvcGVyYXRpb25IYW5kbGUsIHZlYzxLZXlQYXJhbWV0ZXI+IGluUGFyYW1zLCB2ZWM8dWludDhfdD4gaW5wdXQpCisgICAgICAgIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHVpbnQzMl90IGlucHV0Q29uc3VtZWQsIHZlYzxLZXlQYXJhbWV0ZXI+IG91dFBhcmFtcywKKyAgICAgICAgICAgICAgICAgIHZlYzx1aW50OF90PiBvdXRwdXQpOworCisgICAgLyoqCisgICAgICogRmluYWxpemVzIGEgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb24gYmVndW4gd2l0aCBiZWdpbigpIGFuZCBpbnZhbGlkYXRlcyBvcGVyYXRpb25IYW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3BlcmF0aW9uSGFuZGxlIFRoZSBvcGVyYXRpb24gaGFuZGxlIHJldHVybmVkIGJ5IGJlZ2luKCkuIFRoaXMgaGFuZGxlIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICBpbnZhbGlkIHdoZW4gZmluaXNoKCkgcmV0dXJucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpblBhcmFtcyBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBvcGVyYXRpb24uIEZvciBBRUFEIG1vZGVzLCB0aGlzIGlzIHVzZWQgdG8KKyAgICAgKiAgICAgICAgICAgICBzcGVjaWZ5IFRhZzo6QURESVRJT05BTF9EQVRBLCBidXQgb25seSBpZiBubyBpbnB1dCBkYXRhIHdhcyBwcm92aWRlZCB0byB1cGRhdGUoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnB1dCBEYXRhIHRvIGJlIHByb2Nlc3NlZCwgcGVyIHRoZSBwYXJhbWV0ZXJzIGVzdGFibGlzaGVkIGluIHRoZSBjYWxsIHRvCisgICAgICogICAgICAgICAgICAgYmVnaW4oKS4gZmluaXNoKCkgbXVzdCBjb25zdW1lIGFsbCBwcm92aWRlZCBkYXRhIG9yIHJldHVybgorICAgICAqICAgICAgICAgICAgIEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEguCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2lnbmF0dXJlIFRoZSBzaWduYXR1cmUgdG8gYmUgdmVyaWZpZWQgaWYgdGhlIHB1cnBvc2Ugc3BlY2lmaWVkIGluIHRoZSBiZWdpbigpIGNhbGwKKyAgICAgKiAgICAgICAgICAgICB3YXMgS2V5UHVycG9zZTo6VkVSSUZZLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gb3V0UGFyYW1zIEFueSBvdXRwdXQgcGFyYW1ldGVycyBnZW5lcmF0ZWQgYnkgZmluaXNoKCkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG91dHB1dCBUaGUgb3V0cHV0IGRhdGEsIGlmIGFueS4KKyAgICAgKi8KKyAgICBmaW5pc2goT3BlcmF0aW9uSGFuZGxlIG9wZXJhdGlvbkhhbmRsZSwgdmVjPEtleVBhcmFtZXRlcj4gaW5QYXJhbXMsIHZlYzx1aW50OF90PiBpbnB1dCwKKyAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSkKKyAgICAgICAgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvciwgdmVjPEtleVBhcmFtZXRlcj4gb3V0UGFyYW1zLCB2ZWM8dWludDhfdD4gb3V0cHV0KTsKKworICAgIC8qKgorICAgICAqIEFib3J0cyBhIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9uIGJlZ3VuIHdpdGggYmVnaW4oKSwgZnJlZWluZyBhbGwgaW50ZXJuYWwgcmVzb3VyY2VzIGFuZAorICAgICAqIGludmFsaWRhdGluZyBvcGVyYXRpb25IYW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3BlcmF0aW9uSGFuZGxlIFRoZSBvcGVyYXRpb24gaGFuZGxlIHJldHVybmVkIGJ5IGJlZ2luKCkuIFRoaXMgaGFuZGxlIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICBpbnZhbGlkIHdoZW4gYWJvcnQoKSByZXR1cm5zLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKi8KKyAgICBhYm9ydChPcGVyYXRpb25IYW5kbGUgb3BlcmF0aW9uSGFuZGxlKSBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yKTsKK307CmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZjViZjgKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQyIEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgS2V5bWFzdGVyRGV2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmxvZyBcCisgICAgbGlic29mdGtleW1hc3RlcmRldmljZSBcCisgICAgbGliY3J5cHRvIFwKKyAgICBsaWJrZXltYXN0ZXIxIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIHNlcnZpY2UuY3BwCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmxvZyBcCisgICAgbGliY3V0aWxzIFwKKyAgICBsaWJkbCBcCisgICAgbGliYmFzZSBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5jcHAgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvS2V5bWFzdGVyRGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2RkMzI5Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5jcHAKQEAgLTAsMCArMSw3NTEgQEAKKy8qCisgKioKKyAqKiBDb3B5cmlnaHQgMjAxNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoqCisgKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoqCisgKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoqCisgKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wLWltcGwiCisKKyNpbmNsdWRlICJLZXltYXN0ZXJEZXZpY2UuaCIKKworI2luY2x1ZGUgPGN1dGlscy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2tleW1hc3Rlcl9kZWZzLmg+CisjaW5jbHVkZSA8a2V5bWFzdGVyL2tleW1hc3Rlcl9jb25maWd1cmF0aW9uLmg+CisjaW5jbHVkZSA8a2V5bWFzdGVyL3NvZnRfa2V5bWFzdGVyX2RldmljZS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmtleW1hc3Rlcjo6U29mdEtleW1hc3RlckRldmljZTsKKworY2xhc3MgU29mdHdhcmVPbmx5SGlkbEtleW1hc3RlckVuZm9yY2VtZW50IDogcHVibGljIDo6a2V5bWFzdGVyOjpLZXltYXN0ZXJFbmZvcmNlbWVudCB7CisgIHB1YmxpYzoKKyAgICBTb2Z0d2FyZU9ubHlIaWRsS2V5bWFzdGVyRW5mb3JjZW1lbnQoKSA6IEtleW1hc3RlckVuZm9yY2VtZW50KDY0LCA2NCkge30KKworICAgIHVpbnQzMl90IGdldF9jdXJyZW50X3RpbWUoKSBjb25zdCBvdmVycmlkZSB7CisgICAgICAgIHN0cnVjdCB0aW1lc3BlYyB0cDsKKyAgICAgICAgaW50IGVyciA9IGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHApOworICAgICAgICBpZiAoZXJyIHx8IHRwLnR2X3NlYyA8IDApIHJldHVybiAwOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRwLnR2X3NlYyk7CisgICAgfQorCisgICAgYm9vbCBhY3RpdmF0aW9uX2RhdGVfdmFsaWQodWludDY0X3QpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGV4cGlyYXRpb25fZGF0ZV9wYXNzZWQodWludDY0X3QpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBhdXRoX3Rva2VuX3RpbWVkX291dChjb25zdCBod19hdXRoX3Rva2VuX3QmLCB1aW50MzJfdCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIFZhbGlkYXRlVG9rZW5TaWduYXR1cmUoY29uc3QgaHdfYXV0aF90b2tlbl90JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKworY2xhc3MgU29mdHdhcmVPbmx5SGlkbEtleW1hc3RlckNvbnRleHQgOiBwdWJsaWMgOjprZXltYXN0ZXI6OlNvZnRLZXltYXN0ZXJDb250ZXh0IHsKKyAgcHVibGljOgorICAgIFNvZnR3YXJlT25seUhpZGxLZXltYXN0ZXJDb250ZXh0KCkgOiBlbmZvcmNlbWVudF8obmV3IFNvZnR3YXJlT25seUhpZGxLZXltYXN0ZXJFbmZvcmNlbWVudCkge30KKworICAgIDo6a2V5bWFzdGVyOjpLZXltYXN0ZXJFbmZvcmNlbWVudCogZW5mb3JjZW1lbnRfcG9saWN5KCkgb3ZlcnJpZGUgeyByZXR1cm4gZW5mb3JjZW1lbnRfLmdldCgpOyB9CisKKyAgcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8OjprZXltYXN0ZXI6OktleW1hc3RlckVuZm9yY2VtZW50PiBlbmZvcmNlbWVudF87Cit9OworCitzdGF0aWMgaW50IGtleW1hc3RlcjBfZGV2aWNlX2luaXRpYWxpemUoY29uc3QgaHdfbW9kdWxlX3QqIG1vZCwga2V5bWFzdGVyMl9kZXZpY2VfdCoqIGRldikgeworICAgIGFzc2VydChtb2QtPm1vZHVsZV9hcGlfdmVyc2lvbiA8IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wKTsKKyAgICBBTE9HSSgiRm91bmQga2V5bWFzdGVyMCBtb2R1bGUgJXMsIHZlcnNpb24gJXgiLCBtb2QtPm5hbWUsIG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uKTsKKworICAgIFVuaXF1ZVB0cjxTb2Z0S2V5bWFzdGVyRGV2aWNlPiBzb2Z0X2tleW1hc3RlcihuZXcgU29mdEtleW1hc3RlckRldmljZSk7CisgICAga2V5bWFzdGVyMF9kZXZpY2VfdCoga20wX2RldmljZSA9IE5VTEw7CisgICAga2V5bWFzdGVyX2Vycm9yX3QgZXJyb3IgPSBLTV9FUlJPUl9PSzsKKworICAgIGludCByYyA9IGtleW1hc3RlcjBfb3Blbihtb2QsICZrbTBfZGV2aWNlKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0UoIkVycm9yIG9wZW5pbmcga2V5c3RvcmUga2V5bWFzdGVyMCBkZXZpY2UuIik7CisgICAgICAgIGdvdG8gZXJyOworICAgIH0KKworICAgIGlmIChrbTBfZGV2aWNlLT5mbGFncyAmIEtFWU1BU1RFUl9TT0ZUV0FSRV9PTkxZKSB7CisgICAgICAgIEFMT0dJKCJLZXltYXN0ZXIwIG1vZHVsZSBpcyBzb2Z0d2FyZS1vbmx5LiAgVXNpbmcgU29mdEtleW1hc3RlckRldmljZSBpbnN0ZWFkLiIpOworICAgICAgICBrbTBfZGV2aWNlLT5jb21tb24uY2xvc2UoJmttMF9kZXZpY2UtPmNvbW1vbik7CisgICAgICAgIGttMF9kZXZpY2UgPSBOVUxMOworICAgICAgICAvLyBTb2Z0S2V5bWFzdGVyRGV2aWNlIHdpbGwgYmUgZGVsZXRlZCBieSBrZXltYXN0ZXJfZGV2aWNlX3JlbGVhc2UoKQorICAgICAgICAqZGV2ID0gc29mdF9rZXltYXN0ZXIucmVsZWFzZSgpLT5rZXltYXN0ZXIyX2RldmljZSgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBBTE9HRCgiV3JhcHBpbmcga2V5bWFzdGVyMCBtb2R1bGUgJXMgd2l0aCBTb2Z0S2V5bWFzdGVyRGV2aWNlIiwgbW9kLT5uYW1lKTsKKyAgICBlcnJvciA9IHNvZnRfa2V5bWFzdGVyLT5TZXRIYXJkd2FyZURldmljZShrbTBfZGV2aWNlKTsKKyAgICBrbTBfZGV2aWNlID0gTlVMTDsgIC8vIFNvZnRLZXltYXN0ZXJEZXZpY2UgaGFzIHRha2VuIG93bmVyc2hpcC4KKyAgICBpZiAoZXJyb3IgIT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgQUxPR0UoIkdvdCBlcnJvciAlZCBmcm9tIFNldEhhcmR3YXJlRGV2aWNlIiwgZXJyb3IpOworICAgICAgICByYyA9IGVycm9yOworICAgICAgICBnb3RvIGVycjsKKyAgICB9CisKKyAgICAvLyBTb2Z0S2V5bWFzdGVyRGV2aWNlIHdpbGwgYmUgZGVsZXRlZCBieSAga2V5bWFzdGVyX2RldmljZV9yZWxlYXNlKCkKKyAgICAqZGV2ID0gc29mdF9rZXltYXN0ZXIucmVsZWFzZSgpLT5rZXltYXN0ZXIyX2RldmljZSgpOworICAgIHJldHVybiAwOworCitlcnI6CisgICAgaWYgKGttMF9kZXZpY2UpIGttMF9kZXZpY2UtPmNvbW1vbi5jbG9zZSgma20wX2RldmljZS0+Y29tbW9uKTsKKyAgICAqZGV2ID0gTlVMTDsKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQga2V5bWFzdGVyMV9kZXZpY2VfaW5pdGlhbGl6ZShjb25zdCBod19tb2R1bGVfdCogbW9kLCBrZXltYXN0ZXIyX2RldmljZV90KiogZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHN1cHBvcnRzX2FsbF9kaWdlc3RzKSB7CisgICAgYXNzZXJ0KG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uID49IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wKTsKKyAgICBBTE9HSSgiRm91bmQga2V5bWFzdGVyMSBtb2R1bGUgJXMsIHZlcnNpb24gJXgiLCBtb2QtPm5hbWUsIG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uKTsKKworICAgIFVuaXF1ZVB0cjxTb2Z0S2V5bWFzdGVyRGV2aWNlPiBzb2Z0X2tleW1hc3RlcihuZXcgU29mdEtleW1hc3RlckRldmljZSk7CisgICAga2V5bWFzdGVyMV9kZXZpY2VfdCoga20xX2RldmljZSA9IG51bGxwdHI7CisgICAga2V5bWFzdGVyX2Vycm9yX3QgZXJyb3IgPSBLTV9FUlJPUl9PSzsKKworICAgIGludCByYyA9IGtleW1hc3RlcjFfb3Blbihtb2QsICZrbTFfZGV2aWNlKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0UoIkVycm9yICVkIG9wZW5pbmcga2V5c3RvcmUga2V5bWFzdGVyMSBkZXZpY2UiLCByYyk7CisgICAgICAgIGdvdG8gZXJyOworICAgIH0KKworICAgIEFMT0dEKCJXcmFwcGluZyBrZXltYXN0ZXIxIG1vZHVsZSAlcyB3aXRoIFNvZktleW1hc3RlckRldmljZSIsIG1vZC0+bmFtZSk7CisgICAgZXJyb3IgPSBzb2Z0X2tleW1hc3Rlci0+U2V0SGFyZHdhcmVEZXZpY2Uoa20xX2RldmljZSk7CisgICAga20xX2RldmljZSA9IG51bGxwdHI7ICAvLyBTb2Z0S2V5bWFzdGVyRGV2aWNlIGhhcyB0YWtlbiBvd25lcnNoaXAuCisgICAgaWYgKGVycm9yICE9IEtNX0VSUk9SX09LKSB7CisgICAgICAgIEFMT0dFKCJHb3QgZXJyb3IgJWQgZnJvbSBTZXRIYXJkd2FyZURldmljZSIsIGVycm9yKTsKKyAgICAgICAgcmMgPSBlcnJvcjsKKyAgICAgICAgZ290byBlcnI7CisgICAgfQorCisgICAgLy8gU29mdEtleW1hc3RlckRldmljZSB3aWxsIGJlIGRlbGV0ZWQgYnkga2V5bWFzdGVyX2RldmljZV9yZWxlYXNlKCkKKyAgICAqc3VwcG9ydHNfYWxsX2RpZ2VzdHMgPSBzb2Z0X2tleW1hc3Rlci0+c3VwcG9ydHNfYWxsX2RpZ2VzdHMoKTsKKyAgICAqZGV2ID0gc29mdF9rZXltYXN0ZXIucmVsZWFzZSgpLT5rZXltYXN0ZXIyX2RldmljZSgpOworICAgIHJldHVybiAwOworCitlcnI6CisgICAgaWYgKGttMV9kZXZpY2UpIGttMV9kZXZpY2UtPmNvbW1vbi5jbG9zZSgma20xX2RldmljZS0+Y29tbW9uKTsKKyAgICAqZGV2ID0gTlVMTDsKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQga2V5bWFzdGVyMl9kZXZpY2VfaW5pdGlhbGl6ZShjb25zdCBod19tb2R1bGVfdCogbW9kLCBrZXltYXN0ZXIyX2RldmljZV90KiogZGV2KSB7CisgICAgYXNzZXJ0KG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uID49IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMl8wKTsKKyAgICBBTE9HSSgiRm91bmQga2V5bWFzdGVyMiBtb2R1bGUgJXMsIHZlcnNpb24gJXgiLCBtb2QtPm5hbWUsIG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uKTsKKworICAgIGtleW1hc3RlcjJfZGV2aWNlX3QqIGttMl9kZXZpY2UgPSBudWxscHRyOworCisgICAgaW50IHJjID0ga2V5bWFzdGVyMl9vcGVuKG1vZCwgJmttMl9kZXZpY2UpOworICAgIGlmIChyYykgeworICAgICAgICBBTE9HRSgiRXJyb3IgJWQgb3BlbmluZyBrZXlzdG9yZSBrZXltYXN0ZXIyIGRldmljZSIsIHJjKTsKKyAgICAgICAgZ290byBlcnI7CisgICAgfQorCisgICAgKmRldiA9IGttMl9kZXZpY2U7CisgICAgcmV0dXJuIDA7CisKK2VycjoKKyAgICBpZiAoa20yX2RldmljZSkga20yX2RldmljZS0+Y29tbW9uLmNsb3NlKCZrbTJfZGV2aWNlLT5jb21tb24pOworICAgICpkZXYgPSBudWxscHRyOworICAgIHJldHVybiByYzsKK30KKworc3RhdGljIGludCBrZXltYXN0ZXJfZGV2aWNlX2luaXRpYWxpemUoa2V5bWFzdGVyMl9kZXZpY2VfdCoqIGRldiwgdWludDMyX3QqIHZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiBzdXBwb3J0c19lYywgYm9vbCogc3VwcG9ydHNfYWxsX2RpZ2VzdHMpIHsKKyAgICBjb25zdCBod19tb2R1bGVfdCogbW9kOworCisgICAgKnN1cHBvcnRzX2VjID0gdHJ1ZTsKKworICAgIGludCByYyA9IGh3X2dldF9tb2R1bGVfYnlfY2xhc3MoS0VZU1RPUkVfSEFSRFdBUkVfTU9EVUxFX0lELCBOVUxMLCAmbW9kKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0koIkNvdWxkIG5vdCBmaW5kIGFueSBrZXlzdG9yZSBtb2R1bGUsIHVzaW5nIHNvZnR3YXJlLW9ubHkgaW1wbGVtZW50YXRpb24uIik7CisgICAgICAgIC8vIFNvZnRLZXltYXN0ZXJEZXZpY2Ugd2lsbCBiZSBkZWxldGVkIGJ5IGtleW1hc3Rlcl9kZXZpY2VfcmVsZWFzZSgpCisgICAgICAgICpkZXYgPSAobmV3IFNvZnRLZXltYXN0ZXJEZXZpY2UobmV3IFNvZnR3YXJlT25seUhpZGxLZXltYXN0ZXJDb250ZXh0KSktPmtleW1hc3RlcjJfZGV2aWNlKCk7CisgICAgICAgICp2ZXJzaW9uID0gLTE7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmIChtb2QtPm1vZHVsZV9hcGlfdmVyc2lvbiA8IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICp2ZXJzaW9uID0gMDsKKyAgICAgICAgKnN1cHBvcnRzX2FsbF9kaWdlc3RzID0gZmFsc2U7CisgICAgICAgIGludCByYyA9IGtleW1hc3RlcjBfZGV2aWNlX2luaXRpYWxpemUobW9kLCBkZXYpOworICAgICAgICBpZiAocmMgPT0gMCAmJiAoKCpkZXYpLT5mbGFncyAmIEtFWU1BU1RFUl9TVVBQT1JUU19FQykgPT0gMCkgeworICAgICAgICAgICAgKnN1cHBvcnRzX2VjID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJjOworICAgIH0gZWxzZSBpZiAobW9kLT5tb2R1bGVfYXBpX3ZlcnNpb24gPT0gS0VZTUFTVEVSX01PRFVMRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgKnZlcnNpb24gPSAxOworICAgICAgICByZXR1cm4ga2V5bWFzdGVyMV9kZXZpY2VfaW5pdGlhbGl6ZShtb2QsIGRldiwgc3VwcG9ydHNfYWxsX2RpZ2VzdHMpOworICAgIH0gZWxzZSB7CisgICAgICAgICp2ZXJzaW9uID0gMjsKKyAgICAgICAgKnN1cHBvcnRzX2FsbF9kaWdlc3RzID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGtleW1hc3RlcjJfZGV2aWNlX2luaXRpYWxpemUobW9kLCBkZXYpOworICAgIH0KK30KKworS2V5bWFzdGVyRGV2aWNlOjp+S2V5bWFzdGVyRGV2aWNlKCkgeworICAgIGlmIChrZXltYXN0ZXJfZGV2aWNlXykga2V5bWFzdGVyX2RldmljZV8tPmNvbW1vbi5jbG9zZSgma2V5bWFzdGVyX2RldmljZV8tPmNvbW1vbik7Cit9CisKK3N0YXRpYyBpbmxpbmUga2V5bWFzdGVyX3RhZ190eXBlX3QgdHlwZUZyb21UYWcoY29uc3Qga2V5bWFzdGVyX3RhZ190IHRhZykgeworICAgIHJldHVybiBrZXltYXN0ZXJfdGFnX2dldF90eXBlKHRhZyk7Cit9CisKKy8qKgorICogbGVnYWN5X2VudW1fY29udmVyc2lvbiBjb252ZXJ0cyBlbnVtcyBmcm9tIGhpZGwgdG8ga2V5bWFzdGVyIGFuZCBiYWNrLiBDdXJyZW50bHksIHRoaXMgaXMganVzdCBhCisgKiBjYXN0IHRvIG1ha2UgdGhlIGNvbXBpbGVyIGhhcHB5LiBPbmUgb2YgdHdvIHRoaWdzIHNob3VsZCBoYXBwZW4gdGhvdWdoOgorICogVE9ETyBUaGUga2V5bWFzdGVyIGVudW1zIHNob3VsZCBiZWNvbWUgYWxpYXNlcyBmb3IgdGhlIGhpZGwgZ2VuZXJhdGVkIGVudW1zIHNvIHRoYXQgd2UgaGF2ZSBhCisgKiAgICAgIHNpbmdsZSBwb2ludCBvZiB0cnV0aC4gVGhlbiB0aGlzIGNhc3QgZnVuY3Rpb24gY2FuIGdvIGF3YXkuCisgKi8KK2lubGluZSBzdGF0aWMga2V5bWFzdGVyX3RhZ190IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oY29uc3QgVGFnIHZhbHVlKSB7CisgICAgcmV0dXJuIGtleW1hc3Rlcl90YWdfdCh2YWx1ZSk7Cit9CitpbmxpbmUgc3RhdGljIFRhZyBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGNvbnN0IGtleW1hc3Rlcl90YWdfdCB2YWx1ZSkgeworICAgIHJldHVybiBUYWcodmFsdWUpOworfQoraW5saW5lIHN0YXRpYyBrZXltYXN0ZXJfcHVycG9zZV90IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oY29uc3QgS2V5UHVycG9zZSB2YWx1ZSkgeworICAgIHJldHVybiBrZXltYXN0ZXJfcHVycG9zZV90KHZhbHVlKTsKK30KK2lubGluZSBzdGF0aWMga2V5bWFzdGVyX2tleV9mb3JtYXRfdCBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGNvbnN0IEtleUZvcm1hdCB2YWx1ZSkgeworICAgIHJldHVybiBrZXltYXN0ZXJfa2V5X2Zvcm1hdF90KHZhbHVlKTsKK30KK2lubGluZSBzdGF0aWMgRXJyb3JDb2RlIGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oY29uc3Qga2V5bWFzdGVyX2Vycm9yX3QgdmFsdWUpIHsKKyAgICByZXR1cm4gRXJyb3JDb2RlKHZhbHVlKTsKK30KKworY2xhc3MgS21QYXJhbVNldCA6IHB1YmxpYyBrZXltYXN0ZXJfa2V5X3BhcmFtX3NldF90IHsKKyAgcHVibGljOgorICAgIEttUGFyYW1TZXQoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYga2V5UGFyYW1zKSB7CisgICAgICAgIHBhcmFtcyA9IG5ldyBrZXltYXN0ZXJfa2V5X3BhcmFtX3Rba2V5UGFyYW1zLnNpemUoKV07CisgICAgICAgIGxlbmd0aCA9IGtleVBhcmFtcy5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5UGFyYW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBhdXRvIHRhZyA9IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oa2V5UGFyYW1zW2ldLnRhZyk7CisgICAgICAgICAgICBzd2l0Y2ggKHR5cGVGcm9tVGFnKHRhZykpIHsKKyAgICAgICAgICAgIGNhc2UgS01fRU5VTToKKyAgICAgICAgICAgIGNhc2UgS01fRU5VTV9SRVA6CisgICAgICAgICAgICAgICAgcGFyYW1zW2ldID0ga2V5bWFzdGVyX3BhcmFtX2VudW0odGFnLCBrZXlQYXJhbXNbaV0uZi5pbnRlZ2VyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS01fVUlOVDoKKyAgICAgICAgICAgIGNhc2UgS01fVUlOVF9SRVA6CisgICAgICAgICAgICAgICAgcGFyYW1zW2ldID0ga2V5bWFzdGVyX3BhcmFtX2ludCh0YWcsIGtleVBhcmFtc1tpXS5mLmludGVnZXIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLTV9VTE9ORzoKKyAgICAgICAgICAgIGNhc2UgS01fVUxPTkdfUkVQOgorICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IGtleW1hc3Rlcl9wYXJhbV9sb25nKHRhZywga2V5UGFyYW1zW2ldLmYubG9uZ0ludGVnZXIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLTV9EQVRFOgorICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IGtleW1hc3Rlcl9wYXJhbV9kYXRlKHRhZywga2V5UGFyYW1zW2ldLmYuZGF0ZVRpbWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLTV9CT09MOgorICAgICAgICAgICAgICAgIGlmIChrZXlQYXJhbXNbaV0uZi5ib29sVmFsdWUpCisgICAgICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IGtleW1hc3Rlcl9wYXJhbV9ib29sKHRhZyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBwYXJhbXNbaV0udGFnID0gS01fVEFHX0lOVkFMSUQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtNX0JJR05VTToKKyAgICAgICAgICAgIGNhc2UgS01fQllURVM6CisgICAgICAgICAgICAgICAgcGFyYW1zW2ldID0KKyAgICAgICAgICAgICAgICAgICAga2V5bWFzdGVyX3BhcmFtX2Jsb2IodGFnLCAma2V5UGFyYW1zW2ldLmJsb2JbMF0sIGtleVBhcmFtc1tpXS5ibG9iLnNpemUoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtNX0lOVkFMSUQ6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHBhcmFtc1tpXS50YWcgPSBLTV9UQUdfSU5WQUxJRDsKKyAgICAgICAgICAgICAgICAvKiBqdXN0IHNraXAgKi8KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBLbVBhcmFtU2V0KEttUGFyYW1TZXQmJiBvdGhlcikgOiBrZXltYXN0ZXJfa2V5X3BhcmFtX3NldF90e290aGVyLnBhcmFtcywgb3RoZXIubGVuZ3RofSB7CisgICAgICAgIG90aGVyLmxlbmd0aCA9IDA7CisgICAgICAgIG90aGVyLnBhcmFtcyA9IG51bGxwdHI7CisgICAgfQorICAgIEttUGFyYW1TZXQoY29uc3QgS21QYXJhbVNldCYpID0gZGVsZXRlOworICAgIH5LbVBhcmFtU2V0KCkgeyBkZWxldGVbXSBwYXJhbXM7IH0KK307CisKK2lubGluZSBzdGF0aWMgS21QYXJhbVNldCBoaWRsUGFyYW1zMkttUGFyYW1TZXQoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgcGFyYW1zKSB7CisgICAgcmV0dXJuIEttUGFyYW1TZXQocGFyYW1zKTsKK30KKworaW5saW5lIHN0YXRpYyBrZXltYXN0ZXJfYmxvYl90IGhpZGxWZWMyS21CbG9iKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBibG9iKSB7CisgICAgLyogaGlkbCB1bm1hcnNoYWxzIGZ1bm55IHBvaW50ZXJzIGlmIHRoZSB0aGUgYmxvYiBpcyBlbXB0eSAqLworICAgIGlmIChibG9iLnNpemUoKSkgcmV0dXJuIHsmYmxvYlswXSwgYmxvYi5zaXplKCl9OworICAgIHJldHVybiB7bnVsbHB0ciwgMH07Cit9CisKK2lubGluZSBzdGF0aWMga2V5bWFzdGVyX2tleV9ibG9iX3QgaGlkbFZlYzJLbUtleUJsb2IoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGJsb2IpIHsKKyAgICAvKiBoaWRsIHVubWFyc2hhbHMgZnVubnkgcG9pbnRlcnMgaWYgdGhlIHRoZSBibG9iIGlzIGVtcHR5ICovCisgICAgaWYgKGJsb2Iuc2l6ZSgpKSByZXR1cm4geyZibG9iWzBdLCBibG9iLnNpemUoKX07CisgICAgcmV0dXJuIHtudWxscHRyLCAwfTsKK30KKworaW5saW5lIHN0YXRpYyBoaWRsX3ZlYzx1aW50OF90PiBrbUJsb2IyaGlkbFZlYyhjb25zdCBrZXltYXN0ZXJfa2V5X2Jsb2JfdCYgYmxvYikgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdDsKKyAgICByZXN1bHQuc2V0VG9FeHRlcm5hbChjb25zdF9jYXN0PHVuc2lnbmVkIGNoYXIqPihibG9iLmtleV9tYXRlcmlhbCksIGJsb2Iua2V5X21hdGVyaWFsX3NpemUpOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbmxpbmUgc3RhdGljIGhpZGxfdmVjPHVpbnQ4X3Q+IGttQmxvYjJoaWRsVmVjKGNvbnN0IGtleW1hc3Rlcl9ibG9iX3QmIGJsb2IpIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXN1bHQ7CisgICAgcmVzdWx0LnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4oYmxvYi5kYXRhKSwgYmxvYi5kYXRhX2xlbmd0aCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworaW5saW5lIHN0YXRpYyBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4KK2ttQ2VydENoYWluMkhpZGwoY29uc3Qga2V5bWFzdGVyX2NlcnRfY2hhaW5fdCogY2VydF9jaGFpbikgeworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiByZXN1bHQ7CisgICAgaWYgKCFjZXJ0X2NoYWluIHx8IGNlcnRfY2hhaW4tPmVudHJ5X2NvdW50ID09IDAgfHwgIWNlcnRfY2hhaW4tPmVudHJpZXMpIHJldHVybiByZXN1bHQ7CisKKyAgICByZXN1bHQucmVzaXplKGNlcnRfY2hhaW4tPmVudHJ5X2NvdW50KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNlcnRfY2hhaW4tPmVudHJ5X2NvdW50OyArK2kpIHsKKyAgICAgICAgYXV0byYgZW50cnkgPSBjZXJ0X2NoYWluLT5lbnRyaWVzW2ldOworICAgICAgICByZXN1bHRbaV0gPSBrbUJsb2IyaGlkbFZlYyhlbnRyeSk7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IGttUGFyYW1TZXQySGlkbChjb25zdCBrZXltYXN0ZXJfa2V5X3BhcmFtX3NldF90JiBzZXQpIHsKKyAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IHJlc3VsdDsKKyAgICBpZiAoc2V0Lmxlbmd0aCA9PSAwIHx8IHNldC5wYXJhbXMgPT0gbnVsbHB0cikgcmV0dXJuIHJlc3VsdDsKKworICAgIHJlc3VsdC5yZXNpemUoc2V0Lmxlbmd0aCk7CisgICAga2V5bWFzdGVyX2tleV9wYXJhbV90KiBwYXJhbXMgPSBzZXQucGFyYW1zOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2V0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIGF1dG8gdGFnID0gcGFyYW1zW2ldLnRhZzsKKyAgICAgICAgcmVzdWx0W2ldLnRhZyA9IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24odGFnKTsKKyAgICAgICAgc3dpdGNoICh0eXBlRnJvbVRhZyh0YWcpKSB7CisgICAgICAgIGNhc2UgS01fRU5VTToKKyAgICAgICAgY2FzZSBLTV9FTlVNX1JFUDoKKyAgICAgICAgICAgIHJlc3VsdFtpXS5mLmludGVnZXIgPSBwYXJhbXNbaV0uZW51bWVyYXRlZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtNX1VJTlQ6CisgICAgICAgIGNhc2UgS01fVUlOVF9SRVA6CisgICAgICAgICAgICByZXN1bHRbaV0uZi5pbnRlZ2VyID0gcGFyYW1zW2ldLmludGVnZXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLTV9VTE9ORzoKKyAgICAgICAgY2FzZSBLTV9VTE9OR19SRVA6CisgICAgICAgICAgICByZXN1bHRbaV0uZi5sb25nSW50ZWdlciA9IHBhcmFtc1tpXS5sb25nX2ludGVnZXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLTV9EQVRFOgorICAgICAgICAgICAgcmVzdWx0W2ldLmYuZGF0ZVRpbWUgPSBwYXJhbXNbaV0uZGF0ZV90aW1lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS01fQk9PTDoKKyAgICAgICAgICAgIHJlc3VsdFtpXS5mLmJvb2xWYWx1ZSA9IHBhcmFtc1tpXS5ib29sZWFuOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS01fQklHTlVNOgorICAgICAgICBjYXNlIEtNX0JZVEVTOgorICAgICAgICAgICAgcmVzdWx0W2ldLmJsb2Iuc2V0VG9FeHRlcm5hbChjb25zdF9jYXN0PHVuc2lnbmVkIGNoYXIqPihwYXJhbXNbaV0uYmxvYi5kYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zW2ldLmJsb2IuZGF0YV9sZW5ndGgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS01fSU5WQUxJRDoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHBhcmFtc1tpXS50YWcgPSBLTV9UQUdfSU5WQUxJRDsKKyAgICAgICAgICAgIC8qIGp1c3Qgc2tpcCAqLworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6SUtleW1hc3RlckRldmljZSBmb2xsb3cuCitSZXR1cm48dm9pZD4gS2V5bWFzdGVyRGV2aWNlOjpnZXRIYXJkd2FyZUZlYXR1cmVzKGdldEhhcmR3YXJlRmVhdHVyZXNfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIGlzX3NlY3VyZSA9ICEoa2V5bWFzdGVyX2RldmljZV8tPmZsYWdzICYgS0VZTUFTVEVSX1NPRlRXQVJFX09OTFkpOworICAgIGJvb2wgc3VwcG9ydHNfc3ltbWV0cmljX2NyeXB0b2dyYXBoeSA9IGZhbHNlOworICAgIGJvb2wgc3VwcG9ydHNfYXR0ZXN0YXRpb24gPSBmYWxzZTsKKworICAgIHN3aXRjaCAoaGFyZHdhcmVfdmVyc2lvbl8pIHsKKyAgICBjYXNlIDI6CisgICAgICAgIHN1cHBvcnRzX2F0dGVzdGF0aW9uID0gdHJ1ZTsKKyAgICAvKiBGYWxscyB0aHJvdWdoICovCisgICAgY2FzZSAxOgorICAgICAgICBzdXBwb3J0c19zeW1tZXRyaWNfY3J5cHRvZ3JhcGh5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfTsKKworICAgIF9oaWRsX2NiKGlzX3NlY3VyZSwgaGFyZHdhcmVfc3VwcG9ydHNfZWNfLCBzdXBwb3J0c19zeW1tZXRyaWNfY3J5cHRvZ3JhcGh5LAorICAgICAgICAgICAgIHN1cHBvcnRzX2F0dGVzdGF0aW9uLCBoYXJkd2FyZV9zdXBwb3J0c19hbGxfZGlnZXN0c18sCisgICAgICAgICAgICAga2V5bWFzdGVyX2RldmljZV8tPmNvbW1vbi5tb2R1bGUtPm5hbWUsIGtleW1hc3Rlcl9kZXZpY2VfLT5jb21tb24ubW9kdWxlLT5hdXRob3IpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxFcnJvckNvZGU+IEtleW1hc3RlckRldmljZTo6YWRkUm5nRW50cm9weShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSkgeworICAgIGlmICghZGF0YS5zaXplKCkpIHJldHVybiBFcnJvckNvZGU6Ok9LOworICAgIHJldHVybiBsZWdhY3lfZW51bV9jb252ZXJzaW9uKAorICAgICAgICBrZXltYXN0ZXJfZGV2aWNlXy0+YWRkX3JuZ19lbnRyb3B5KGtleW1hc3Rlcl9kZXZpY2VfLCAmZGF0YVswXSwgZGF0YS5zaXplKCkpKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6Z2VuZXJhdGVLZXkoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYga2V5UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVLZXlfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIEtleUNoYXJhY3RlcmlzdGljcyByZXN1bHRDaGFyYWN0ZXJpc3RpY3M7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0S2V5QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBrZXltYXN0ZXJfa2V5X2Jsb2JfdCBrZXlfYmxvYntudWxscHRyLCAwfTsKKyAgICBrZXltYXN0ZXJfa2V5X2NoYXJhY3RlcmlzdGljc190IGtleV9jaGFyYWN0ZXJpc3RpY3N7e251bGxwdHIsIDB9LCB7bnVsbHB0ciwgMH19OworCisgICAgLy8gY29udmVydCB0aGUgcGFyYW1ldGVyIHNldCB0byBzb21ldGhpbmcgb3VyIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBhdXRvIGttUGFyYW1zID0gaGlkbFBhcmFtczJLbVBhcmFtU2V0KGtleVBhcmFtcyk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmdlbmVyYXRlX2tleShrZXltYXN0ZXJfZGV2aWNlXywgJmttUGFyYW1zLCAma2V5X2Jsb2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleV9jaGFyYWN0ZXJpc3RpY3MpOworCisgICAgaWYgKHJjID09IEtNX0VSUk9SX09LKSB7CisgICAgICAgIC8vIG9uIHN1Y2Nlc3MgY29udmVydCB0aGUgcmVzdWx0IHRvIHdpcmUgZm9ybWF0CisgICAgICAgIHJlc3VsdEtleUJsb2IgPSBrbUJsb2IyaGlkbFZlYyhrZXlfYmxvYik7CisgICAgICAgIHJlc3VsdENoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkID0ga21QYXJhbVNldDJIaWRsKGtleV9jaGFyYWN0ZXJpc3RpY3Muc3dfZW5mb3JjZWQpOworICAgICAgICByZXN1bHRDaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQgPSBrbVBhcmFtU2V0MkhpZGwoa2V5X2NoYXJhY3RlcmlzdGljcy5od19lbmZvcmNlZCk7CisgICAgfQorCisgICAgLy8gc2VuZCByZXN1bHRzIG9mZiB0byB0aGUgY2xpZW50CisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdEtleUJsb2IsIHJlc3VsdENoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvLyBmcmVlIGJ1ZmZlcnMgdGhhdCB3ZSBhcmUgcmVzcG9uc2libGUgZm9yCisgICAgaWYgKGtleV9ibG9iLmtleV9tYXRlcmlhbCkgZnJlZShjb25zdF9jYXN0PHVpbnQ4X3QqPihrZXlfYmxvYi5rZXlfbWF0ZXJpYWwpKTsKKyAgICBrZXltYXN0ZXJfZnJlZV9jaGFyYWN0ZXJpc3RpY3MoJmtleV9jaGFyYWN0ZXJpc3RpY3MpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6Z2V0S2V5Q2hhcmFjdGVyaXN0aWNzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlCbG9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjbGllbnRJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgYXBwRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRLZXlDaGFyYWN0ZXJpc3RpY3NfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIEtleUNoYXJhY3RlcmlzdGljcyByZXN1bHRDaGFyYWN0ZXJpc3RpY3M7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2tleV9jaGFyYWN0ZXJpc3RpY3NfdCBrZXlfY2hhcmFjdGVyaXN0aWNze3tudWxscHRyLCAwfSwge251bGxwdHIsIDB9fTsKKworICAgIGF1dG8ga21LZXlCbG9iID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5QmxvYik7CisgICAgYXV0byBrbUNsaWVudElkID0gaGlkbFZlYzJLbUJsb2IoY2xpZW50SWQpOworICAgIGF1dG8ga21BcHBEYXRhID0gaGlkbFZlYzJLbUJsb2IoYXBwRGF0YSk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmdldF9rZXlfY2hhcmFjdGVyaXN0aWNzKAorICAgICAgICBrZXltYXN0ZXJfZGV2aWNlXywga2V5QmxvYi5zaXplKCkgPyAma21LZXlCbG9iIDogbnVsbHB0ciwKKyAgICAgICAgY2xpZW50SWQuc2l6ZSgpID8gJmttQ2xpZW50SWQgOiBudWxscHRyLCBhcHBEYXRhLnNpemUoKSA/ICZrbUFwcERhdGEgOiBudWxscHRyLAorICAgICAgICAma2V5X2NoYXJhY3RlcmlzdGljcyk7CisKKyAgICBpZiAocmMgPT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgcmVzdWx0Q2hhcmFjdGVyaXN0aWNzLnNvZnR3YXJlRW5mb3JjZWQgPSBrbVBhcmFtU2V0MkhpZGwoa2V5X2NoYXJhY3RlcmlzdGljcy5zd19lbmZvcmNlZCk7CisgICAgICAgIHJlc3VsdENoYXJhY3RlcmlzdGljcy50ZWVFbmZvcmNlZCA9IGttUGFyYW1TZXQySGlkbChrZXlfY2hhcmFjdGVyaXN0aWNzLmh3X2VuZm9yY2VkKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihsZWdhY3lfZW51bV9jb252ZXJzaW9uKHJjKSwgcmVzdWx0Q2hhcmFjdGVyaXN0aWNzKTsKKworICAgIGtleW1hc3Rlcl9mcmVlX2NoYXJhY3RlcmlzdGljcygma2V5X2NoYXJhY3RlcmlzdGljcyk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gS2V5bWFzdGVyRGV2aWNlOjppbXBvcnRLZXkoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgcGFyYW1zLCBLZXlGb3JtYXQga2V5Rm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlEYXRhLCBpbXBvcnRLZXlfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIEtleUNoYXJhY3RlcmlzdGljcyByZXN1bHRDaGFyYWN0ZXJpc3RpY3M7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0S2V5QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBrZXltYXN0ZXJfa2V5X2Jsb2JfdCBrZXlfYmxvYntudWxscHRyLCAwfTsKKyAgICBrZXltYXN0ZXJfa2V5X2NoYXJhY3RlcmlzdGljc190IGtleV9jaGFyYWN0ZXJpc3RpY3N7e251bGxwdHIsIDB9LCB7bnVsbHB0ciwgMH19OworCisgICAgYXV0byBrbVBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChwYXJhbXMpOworICAgIGF1dG8ga21LZXlEYXRhID0gaGlkbFZlYzJLbUJsb2Ioa2V5RGF0YSk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmltcG9ydF9rZXkoa2V5bWFzdGVyX2RldmljZV8sICZrbVBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWN5X2VudW1fY29udmVyc2lvbihrZXlGb3JtYXQpLCAma21LZXlEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5X2Jsb2IsICZrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgIGlmIChyYyA9PSBLTV9FUlJPUl9PSykgeworICAgICAgICAvLyBvbiBzdWNjZXNzIGNvbnZlcnQgdGhlIHJlc3VsdCB0byB3aXJlIGZvcm1hdAorICAgICAgICAvLyAoQ2FuIHdlIGFzc3VtZSB0aGF0IGtleV9ibG9iIGlzIHtudWxscHRyLCAwfSBvciBhIHZhbGlkIGJ1ZmZlciBkZXNjcmlwdGlvbj8pCisgICAgICAgIHJlc3VsdEtleUJsb2IgPSBrbUJsb2IyaGlkbFZlYyhrZXlfYmxvYik7CisgICAgICAgIHJlc3VsdENoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkID0ga21QYXJhbVNldDJIaWRsKGtleV9jaGFyYWN0ZXJpc3RpY3Muc3dfZW5mb3JjZWQpOworICAgICAgICByZXN1bHRDaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQgPSBrbVBhcmFtU2V0MkhpZGwoa2V5X2NoYXJhY3RlcmlzdGljcy5od19lbmZvcmNlZCk7CisgICAgfQorCisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdEtleUJsb2IsIHJlc3VsdENoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvLyBmcmVlIGJ1ZmZlcnMgdGhhdCB3ZSBhcmUgcmVzcG9uc2libGUgZm9yCisgICAgaWYgKGtleV9ibG9iLmtleV9tYXRlcmlhbCkgZnJlZShjb25zdF9jYXN0PHVpbnQ4X3QqPihrZXlfYmxvYi5rZXlfbWF0ZXJpYWwpKTsKKyAgICBrZXltYXN0ZXJfZnJlZV9jaGFyYWN0ZXJpc3RpY3MoJmtleV9jaGFyYWN0ZXJpc3RpY3MpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6ZXhwb3J0S2V5KEtleUZvcm1hdCBleHBvcnRGb3JtYXQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlCbG9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjbGllbnRJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgYXBwRGF0YSwgZXhwb3J0S2V5X2NiIF9oaWRsX2NiKSB7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdEtleUJsb2I7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2Jsb2JfdCBvdXRfYmxvYntudWxscHRyLCAwfTsKKworICAgIGF1dG8ga21LZXlCbG9iID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5QmxvYik7CisgICAgYXV0byBrbUNsaWVudElkID0gaGlkbFZlYzJLbUJsb2IoY2xpZW50SWQpOworICAgIGF1dG8ga21BcHBEYXRhID0gaGlkbFZlYzJLbUJsb2IoYXBwRGF0YSk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmV4cG9ydF9rZXkoa2V5bWFzdGVyX2RldmljZV8sIGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oZXhwb3J0Rm9ybWF0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5QmxvYi5zaXplKCkgPyAma21LZXlCbG9iIDogbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SWQuc2l6ZSgpID8gJmttQ2xpZW50SWQgOiBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBEYXRhLnNpemUoKSA/ICZrbUFwcERhdGEgOiBudWxscHRyLCAmb3V0X2Jsb2IpOworCisgICAgaWYgKHJjID09IEtNX0VSUk9SX09LKSB7CisgICAgICAgIC8vIG9uIHN1Y2Nlc3MgY29udmVydCB0aGUgcmVzdWx0IHRvIHdpcmUgZm9ybWF0CisgICAgICAgIC8vIChDYW4gd2UgYXNzdW1lIHRoYXQga2V5X2Jsb2IgaXMge251bGxwdHIsIDB9IG9yIGEgdmFsaWQgYnVmZmVyIGRlc2NyaXB0aW9uPykKKyAgICAgICAgcmVzdWx0S2V5QmxvYiA9IGttQmxvYjJoaWRsVmVjKG91dF9ibG9iKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihsZWdhY3lfZW51bV9jb252ZXJzaW9uKHJjKSwgcmVzdWx0S2V5QmxvYik7CisKKyAgICAvLyBmcmVlIGJ1ZmZlcnMgdGhhdCB3ZSBhcmUgcmVzcG9uc2libGUgZm9yCisgICAgaWYgKG91dF9ibG9iLmRhdGEpIGZyZWUoY29uc3RfY2FzdDx1aW50OF90Kj4ob3V0X2Jsb2IuZGF0YSkpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6YXR0ZXN0S2V5KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlUb0F0dGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBhdHRlc3RQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0S2V5X2NiIF9oaWRsX2NiKSB7CisKKyAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4gcmVzdWx0Q2VydENoYWluOworCisgICAgYm9vbCBmb3VuZEF0dGVzdGF0aW9uQXBwbGljYXRpb25JZCA9IGZhbHNlOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXR0ZXN0UGFyYW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgIHN3aXRjaCAoYXR0ZXN0UGFyYW1zW2ldLnRhZykgeworICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfQlJBTkQ6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9ERVZJQ0U6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9QUk9EVUNUOgorICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfU0VSSUFMOgorICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfSU1FSToKKyAgICAgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX01FSUQ6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NQU5VRkFDVFVSRVI6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NT0RFTDoKKyAgICAgICAgICAgIC8vIERldmljZSBpZCBhdHRlc3RhdGlvbiBtYXkgb25seSBiZSBzdXBwb3J0ZWQgaWYgdGhlIGRldmljZSBpcyBhYmxlIHRvIHBlcm1hbmVudGx5CisgICAgICAgICAgICAvLyBkZXN0cm95IGl0cyBrbm93bGVkZ2Ugb2YgdGhlIGlkcy4gVGhpcyBkZXZpY2UgaXMgdW5hYmxlIHRvIGRvIHRoaXMsIHNvIGl0IG11c3QKKyAgICAgICAgICAgIC8vIG5ldmVyIHBlcmZvcm0gYW55IGRldmljZSBpZCBhdHRlc3RhdGlvbi4KKyAgICAgICAgICAgIF9oaWRsX2NiKEVycm9yQ29kZTo6Q0FOTk9UX0FUVEVTVF9JRFMsIHJlc3VsdENlcnRDaGFpbik7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworCisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRDoKKyAgICAgICAgICAgIGZvdW5kQXR0ZXN0YXRpb25BcHBsaWNhdGlvbklkID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEtNMyBkZXZpY2VzIHJlamVjdCBtaXNzaW5nIGF0dGVzdCBhcHBsaWNhdGlvbiBJRHMuIEtNMiBkZXZpY2VzIGRvIG5vdC4KKyAgICBpZiAoIWZvdW5kQXR0ZXN0YXRpb25BcHBsaWNhdGlvbklkKSB7CisgICAgICAgIF9oaWRsX2NiKEVycm9yQ29kZTo6QVRURVNUQVRJT05fQVBQTElDQVRJT05fSURfTUlTU0lORywKKyAgICAgICAgICAgICAgICAgcmVzdWx0Q2VydENoYWluKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBrZXltYXN0ZXJfY2VydF9jaGFpbl90IGNlcnRfY2hhaW57bnVsbHB0ciwgMH07CisKKyAgICBhdXRvIGttS2V5VG9BdHRlc3QgPSBoaWRsVmVjMkttS2V5QmxvYihrZXlUb0F0dGVzdCk7CisgICAgYXV0byBrbUF0dGVzdFBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChhdHRlc3RQYXJhbXMpOworCisgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfLT5hdHRlc3Rfa2V5KGtleW1hc3Rlcl9kZXZpY2VfLCAma21LZXlUb0F0dGVzdCwgJmttQXR0ZXN0UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2VydF9jaGFpbik7CisKKyAgICBpZiAocmMgPT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgcmVzdWx0Q2VydENoYWluID0ga21DZXJ0Q2hhaW4ySGlkbCgmY2VydF9jaGFpbik7CisgICAgfQorCisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdENlcnRDaGFpbik7CisKKyAgICBrZXltYXN0ZXJfZnJlZV9jZXJ0X2NoYWluKCZjZXJ0X2NoYWluKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OnVwZ3JhZGVLZXkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUJsb2JUb1VwZ3JhZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIHVwZ3JhZGVQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZ3JhZGVLZXlfY2IgX2hpZGxfY2IpIHsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgZm9yIHRoZSB3aXJlCisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0S2V5QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBrZXltYXN0ZXJfa2V5X2Jsb2JfdCBrZXlfYmxvYntudWxscHRyLCAwfTsKKworICAgIGF1dG8ga21LZXlCbG9iVG9VcGdyYWRlID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5QmxvYlRvVXBncmFkZSk7CisgICAgYXV0byBrbVVwZ3JhZGVQYXJhbXMgPSBoaWRsUGFyYW1zMkttUGFyYW1TZXQodXBncmFkZVBhcmFtcyk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPnVwZ3JhZGVfa2V5KGtleW1hc3Rlcl9kZXZpY2VfLCAma21LZXlCbG9iVG9VcGdyYWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmttVXBncmFkZVBhcmFtcywgJmtleV9ibG9iKTsKKworICAgIGlmIChyYyA9PSBLTV9FUlJPUl9PSykgeworICAgICAgICAvLyBvbiBzdWNjZXNzIGNvbnZlcnQgdGhlIHJlc3VsdCB0byB3aXJlIGZvcm1hdAorICAgICAgICByZXN1bHRLZXlCbG9iID0ga21CbG9iMmhpZGxWZWMoa2V5X2Jsb2IpOworICAgIH0KKworICAgIF9oaWRsX2NiKGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24ocmMpLCByZXN1bHRLZXlCbG9iKTsKKworICAgIGlmIChrZXlfYmxvYi5rZXlfbWF0ZXJpYWwpIGZyZWUoY29uc3RfY2FzdDx1aW50OF90Kj4oa2V5X2Jsb2Iua2V5X21hdGVyaWFsKSk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48RXJyb3JDb2RlPiBLZXltYXN0ZXJEZXZpY2U6OmRlbGV0ZUtleShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYikgeworICAgIGlmIChrZXltYXN0ZXJfZGV2aWNlXy0+ZGVsZXRlX2tleSA9PSBudWxscHRyKSB7CisgICAgICAgIHJldHVybiBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQ7CisgICAgfQorICAgIGF1dG8ga21LZXlCbG9iID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5QmxvYik7CisgICAgYXV0byByYyA9IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oCisgICAgICAgIGtleW1hc3Rlcl9kZXZpY2VfLT5kZWxldGVfa2V5KGtleW1hc3Rlcl9kZXZpY2VfLCAma21LZXlCbG9iKSk7CisgICAgLy8gS2V5bWFzdGVyIDMuMCByZXF1aXJlcyBkZWxldGVLZXkgdG8gcmV0dXJuIEVycm9yQ29kZTo6T0sgaWYgdGhlIGtleQorICAgIC8vIGJsb2IgaXMgdW51c2FibGUgYWZ0ZXIgdGhlIGNhbGwuIFRoaXMgaXMgZXF1YWxseSB0cnVlIGlmIHRoZSBrZXkgYmxvYiB3YXMKKyAgICAvLyB1bnVzYWJsZSBiZWZvcmUuCisgICAgaWYgKHJjID09IEVycm9yQ29kZTo6SU5WQUxJRF9LRVlfQkxPQikgcmV0dXJuIEVycm9yQ29kZTo6T0s7CisgICAgcmV0dXJuIHJjOworfQorCitSZXR1cm48RXJyb3JDb2RlPiBLZXltYXN0ZXJEZXZpY2U6OmRlbGV0ZUFsbEtleXMoKSB7CisgICAgaWYgKGtleW1hc3Rlcl9kZXZpY2VfLT5kZWxldGVfYWxsX2tleXMgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm4gRXJyb3JDb2RlOjpVTklNUExFTUVOVEVEOworICAgIH0KKyAgICByZXR1cm4gbGVnYWN5X2VudW1fY29udmVyc2lvbihrZXltYXN0ZXJfZGV2aWNlXy0+ZGVsZXRlX2FsbF9rZXlzKGtleW1hc3Rlcl9kZXZpY2VfKSk7Cit9CisKK1JldHVybjxFcnJvckNvZGU+IEtleW1hc3RlckRldmljZTo6ZGVzdHJveUF0dGVzdGF0aW9uSWRzKCkgeworICAgIHJldHVybiBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQ7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OmJlZ2luKEtleVB1cnBvc2UgcHVycG9zZSwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGluUGFyYW1zLCBiZWdpbl9jYiBfaGlkbF9jYikgeworCisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyBmb3IgdGhlIHdpcmUKKyAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IHJlc3VsdFBhcmFtczsKKyAgICB1aW50NjRfdCByZXN1bHRPcEhhbmRsZSA9IDA7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2tleV9wYXJhbV9zZXRfdCBvdXRfcGFyYW1ze251bGxwdHIsIDB9OworICAgIGtleW1hc3Rlcl9vcGVyYXRpb25faGFuZGxlX3QmIG9wZXJhdGlvbl9oYW5kbGUgPSByZXN1bHRPcEhhbmRsZTsKKworICAgIGF1dG8ga21LZXkgPSBoaWRsVmVjMkttS2V5QmxvYihrZXkpOworICAgIGF1dG8ga21JblBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChpblBhcmFtcyk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmJlZ2luKGtleW1hc3Rlcl9kZXZpY2VfLCBsZWdhY3lfZW51bV9jb252ZXJzaW9uKHB1cnBvc2UpLCAma21LZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma21JblBhcmFtcywgJm91dF9wYXJhbXMsICZvcGVyYXRpb25faGFuZGxlKTsKKworICAgIGlmIChyYyA9PSBLTV9FUlJPUl9PSykgcmVzdWx0UGFyYW1zID0ga21QYXJhbVNldDJIaWRsKG91dF9wYXJhbXMpOworCisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdFBhcmFtcywgcmVzdWx0T3BIYW5kbGUpOworCisgICAga2V5bWFzdGVyX2ZyZWVfcGFyYW1fc2V0KCZvdXRfcGFyYW1zKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OnVwZGF0ZSh1aW50NjRfdCBvcGVyYXRpb25IYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaW5QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LCB1cGRhdGVfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIHVpbnQzMl90IHJlc3VsdENvbnN1bWVkID0gMDsKKyAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IHJlc3VsdFBhcmFtczsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXN1bHRCbG9iOworCisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyB0aGUgYmFja2VuZCB1bmRlcnN0YW5kcworICAgIHNpemVfdCBjb25zdW1lZCA9IDA7CisgICAga2V5bWFzdGVyX2tleV9wYXJhbV9zZXRfdCBvdXRfcGFyYW1ze251bGxwdHIsIDB9OworICAgIGtleW1hc3Rlcl9ibG9iX3Qgb3V0X2Jsb2J7bnVsbHB0ciwgMH07CisKKyAgICBhdXRvIGttSW5QYXJhbXMgPSBoaWRsUGFyYW1zMkttUGFyYW1TZXQoaW5QYXJhbXMpOworICAgIGF1dG8ga21JbnB1dCA9IGhpZGxWZWMyS21CbG9iKGlucHV0KTsKKworICAgIGF1dG8gcmMgPSBrZXltYXN0ZXJfZGV2aWNlXy0+dXBkYXRlKGtleW1hc3Rlcl9kZXZpY2VfLCBvcGVyYXRpb25IYW5kbGUsICZrbUluUGFyYW1zLCAma21JbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29uc3VtZWQsICZvdXRfcGFyYW1zLCAmb3V0X2Jsb2IpOworCisgICAgaWYgKHJjID09IEtNX0VSUk9SX09LKSB7CisgICAgICAgIHJlc3VsdENvbnN1bWVkID0gY29uc3VtZWQ7CisgICAgICAgIHJlc3VsdFBhcmFtcyA9IGttUGFyYW1TZXQySGlkbChvdXRfcGFyYW1zKTsKKyAgICAgICAgcmVzdWx0QmxvYiA9IGttQmxvYjJoaWRsVmVjKG91dF9ibG9iKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihsZWdhY3lfZW51bV9jb252ZXJzaW9uKHJjKSwgcmVzdWx0Q29uc3VtZWQsIHJlc3VsdFBhcmFtcywgcmVzdWx0QmxvYik7CisKKyAgICBrZXltYXN0ZXJfZnJlZV9wYXJhbV9zZXQoJm91dF9wYXJhbXMpOworICAgIGlmIChvdXRfYmxvYi5kYXRhKSBmcmVlKGNvbnN0X2Nhc3Q8dWludDhfdCo+KG91dF9ibG9iLmRhdGEpKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OmZpbmlzaCh1aW50NjRfdCBvcGVyYXRpb25IYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaW5QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzaWduYXR1cmUsIGZpbmlzaF9jYiBfaGlkbF9jYikgeworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgZm9yIHRoZSB3aXJlCisgICAgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiByZXN1bHRQYXJhbXM7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBrZXltYXN0ZXJfa2V5X3BhcmFtX3NldF90IG91dF9wYXJhbXN7bnVsbHB0ciwgMH07CisgICAga2V5bWFzdGVyX2Jsb2JfdCBvdXRfYmxvYntudWxscHRyLCAwfTsKKworICAgIGF1dG8ga21JblBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChpblBhcmFtcyk7CisgICAgYXV0byBrbUlucHV0ID0gaGlkbFZlYzJLbUJsb2IoaW5wdXQpOworICAgIGF1dG8ga21TaWduYXR1cmUgPSBoaWRsVmVjMkttQmxvYihzaWduYXR1cmUpOworCisgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfLT5maW5pc2goa2V5bWFzdGVyX2RldmljZV8sIG9wZXJhdGlvbkhhbmRsZSwgJmttSW5QYXJhbXMsICZrbUlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrbVNpZ25hdHVyZSwgJm91dF9wYXJhbXMsICZvdXRfYmxvYik7CisKKyAgICBpZiAocmMgPT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgcmVzdWx0UGFyYW1zID0ga21QYXJhbVNldDJIaWRsKG91dF9wYXJhbXMpOworICAgICAgICByZXN1bHRCbG9iID0ga21CbG9iMmhpZGxWZWMob3V0X2Jsb2IpOworICAgIH0KKworICAgIF9oaWRsX2NiKGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24ocmMpLCByZXN1bHRQYXJhbXMsIHJlc3VsdEJsb2IpOworCisgICAga2V5bWFzdGVyX2ZyZWVfcGFyYW1fc2V0KCZvdXRfcGFyYW1zKTsKKyAgICBpZiAob3V0X2Jsb2IuZGF0YSkgZnJlZShjb25zdF9jYXN0PHVpbnQ4X3QqPihvdXRfYmxvYi5kYXRhKSk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48RXJyb3JDb2RlPiBLZXltYXN0ZXJEZXZpY2U6OmFib3J0KHVpbnQ2NF90IG9wZXJhdGlvbkhhbmRsZSkgeworICAgIHJldHVybiBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGtleW1hc3Rlcl9kZXZpY2VfLT5hYm9ydChrZXltYXN0ZXJfZGV2aWNlXywgb3BlcmF0aW9uSGFuZGxlKSk7Cit9CisKK0lLZXltYXN0ZXJEZXZpY2UqIEhJRExfRkVUQ0hfSUtleW1hc3RlckRldmljZShjb25zdCBjaGFyKiBuYW1lKSB7CisgICAga2V5bWFzdGVyMl9kZXZpY2VfdCogZGV2ID0gbnVsbHB0cjsKKworICAgIEFMT0dJKCJGZXRjaGluZyBrZXltYXN0ZXIgZGV2aWNlIG5hbWUgJXMiLCBuYW1lKTsKKworICAgIHVpbnQzMl90IHZlcnNpb24gPSAtMTsKKyAgICBib29sIHN1cHBvcnRzX2VjID0gZmFsc2U7CisgICAgYm9vbCBzdXBwb3J0c19hbGxfZGlnZXN0cyA9IGZhbHNlOworCisgICAgaWYgKG5hbWUgJiYgc3RyY21wKG5hbWUsICJzb2Z0d2FyZW9ubHkiKSA9PSAwKSB7CisgICAgICAgIGRldiA9IChuZXcgU29mdEtleW1hc3RlckRldmljZShuZXcgU29mdHdhcmVPbmx5SGlkbEtleW1hc3RlckNvbnRleHQpKS0+a2V5bWFzdGVyMl9kZXZpY2UoKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgJiYgc3RyY21wKG5hbWUsICJkZWZhdWx0IikgPT0gMCkgeworICAgICAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV9pbml0aWFsaXplKCZkZXYsICZ2ZXJzaW9uLCAmc3VwcG9ydHNfZWMsICZzdXBwb3J0c19hbGxfZGlnZXN0cyk7CisgICAgICAgIGlmIChyYykgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgYXV0byBrbXJjID0gOjprZXltYXN0ZXI6OkNvbmZpZ3VyZURldmljZShkZXYpOworICAgIGlmIChrbXJjICE9IEtNX0VSUk9SX09LKSB7CisgICAgICAgIGRldi0+Y29tbW9uLmNsb3NlKCZkZXYtPmNvbW1vbik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBuZXcgS2V5bWFzdGVyRGV2aWNlKGRldiwgdmVyc2lvbiwgc3VwcG9ydHNfZWMsIHN1cHBvcnRzX2FsbF9kaWdlc3RzKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5oIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNDhkNWIKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvS2V5bWFzdGVyRGV2aWNlLmgKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKioKKyAqKiBDb3B5cmlnaHQgMjAxNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoqCisgKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoqCisgKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoqCisgKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgSElETF9HRU5FUkFURURfYW5kcm9pZF9oYXJkd2FyZV9rZXltYXN0ZXJfVjNfMF9LZXltYXN0ZXJEZXZpY2VfSF8KKyNkZWZpbmUgSElETF9HRU5FUkFURURfYW5kcm9pZF9oYXJkd2FyZV9rZXltYXN0ZXJfVjNfMF9LZXltYXN0ZXJEZXZpY2VfSF8KKworI2luY2x1ZGUgPGhhcmR3YXJlL2tleW1hc3RlcjIuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9JS2V5bWFzdGVyRGV2aWNlLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OkVycm9yQ29kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6SUtleW1hc3RlckRldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6S2V5Q2hhcmFjdGVyaXN0aWNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpLZXlGb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OktleVBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6S2V5UHVycG9zZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworY2xhc3MgS2V5bWFzdGVyRGV2aWNlIDogcHVibGljIElLZXltYXN0ZXJEZXZpY2UgeworICBwdWJsaWM6CisgICAgS2V5bWFzdGVyRGV2aWNlKGtleW1hc3RlcjJfZGV2aWNlX3QqIGRldiwgdWludDMyX3QgaGFyZHdhcmVfdmVyc2lvbiwgYm9vbCBoYXJkd2FyZV9zdXBwb3J0c19lYywKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBoYXJkd2FyZV9zdXBwb3J0c19hbGxfZGlnZXN0cykKKyAgICAgICAgOiBrZXltYXN0ZXJfZGV2aWNlXyhkZXYpLCBoYXJkd2FyZV92ZXJzaW9uXyhoYXJkd2FyZV92ZXJzaW9uKSwKKyAgICAgICAgICBoYXJkd2FyZV9zdXBwb3J0c19lY18oaGFyZHdhcmVfc3VwcG9ydHNfZWMpLAorICAgICAgICAgIGhhcmR3YXJlX3N1cHBvcnRzX2FsbF9kaWdlc3RzXyhoYXJkd2FyZV9zdXBwb3J0c19hbGxfZGlnZXN0cykge30KKyAgICB2aXJ0dWFsIH5LZXltYXN0ZXJEZXZpY2UoKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OklLZXltYXN0ZXJEZXZpY2UgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBnZXRIYXJkd2FyZUZlYXR1cmVzKGdldEhhcmR3YXJlRmVhdHVyZXNfY2IgX2hpZGxfY2IpOworICAgIFJldHVybjxFcnJvckNvZGU+IGFkZFJuZ0VudHJvcHkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZW5lcmF0ZUtleShjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBrZXlQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlS2V5X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0S2V5Q2hhcmFjdGVyaXN0aWNzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlCbG9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNsaWVudElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGFwcERhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRLZXlDaGFyYWN0ZXJpc3RpY3NfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBpbXBvcnRLZXkoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgcGFyYW1zLCBLZXlGb3JtYXQga2V5Rm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleURhdGEsIGltcG9ydEtleV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGV4cG9ydEtleShLZXlGb3JtYXQgZXhwb3J0Rm9ybWF0LCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjbGllbnRJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGFwcERhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvcnRLZXlfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBhdHRlc3RLZXkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVRvQXR0ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgYXR0ZXN0UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0S2V5X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gdXBncmFkZUtleShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYlRvVXBncmFkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiB1cGdyYWRlUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZ3JhZGVLZXlfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvckNvZGU+IGRlbGV0ZUtleShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yQ29kZT4gZGVsZXRlQWxsS2V5cygpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvckNvZGU+IGRlc3Ryb3lBdHRlc3RhdGlvbklkcygpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBiZWdpbihLZXlQdXJwb3NlIHB1cnBvc2UsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXksCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGluUGFyYW1zLCBiZWdpbl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVwZGF0ZSh1aW50NjRfdCBvcGVyYXRpb25IYW5kbGUsIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGluUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LCB1cGRhdGVfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBmaW5pc2godWludDY0X3Qgb3BlcmF0aW9uSGFuZGxlLCBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBpblBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbnB1dCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yQ29kZT4gYWJvcnQodWludDY0X3Qgb3BlcmF0aW9uSGFuZGxlKSBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIGtleW1hc3RlcjJfZGV2aWNlX3QqIGtleW1hc3Rlcl9kZXZpY2VfOworICAgIHVpbnQzMl90IGhhcmR3YXJlX3ZlcnNpb25fOworICAgIGJvb2wgaGFyZHdhcmVfc3VwcG9ydHNfZWNfOworICAgIGJvb2wgaGFyZHdhcmVfc3VwcG9ydHNfYWxsX2RpZ2VzdHNfOworfTsKKworZXh0ZXJuICJDIiBJS2V5bWFzdGVyRGV2aWNlKiBISURMX0ZFVENIX0lLZXltYXN0ZXJEZXZpY2UoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBISURMX0dFTkVSQVRFRF9hbmRyb2lkX2hhcmR3YXJlX2tleW1hc3Rlcl9WM18wX0tleW1hc3RlckRldmljZV9IXwpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlLnJjIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0OWQyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGtleW1hc3Rlci0zLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wLXNlcnZpY2UKKyAgICBjbGFzcyBlYXJseV9oYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbSBkcm1ycGMKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmE5YTkzCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMTYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvSUtleW1hc3RlckRldmljZS5oPgorCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6SUtleW1hc3RlckRldmljZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUtleW1hc3RlckRldmljZT4oKTsKK30KZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdHlwZXMuaGFsIGIva2V5bWFzdGVyLzMuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRhZDIzZQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjA7CisKK2VudW0gVGFnVHlwZSA6IHVpbnQzMl90IHsKKyAgICBJTlZBTElEID0gMCA8PCAyOCwgLyoqIEludmFsaWQgdHlwZSwgdXNlZCB0byBkZXNpZ25hdGUgYSB0YWcgYXMgdW5pbml0aWFsaXplZCAqLworICAgIEVOVU0gPSAxIDw8IDI4LAorICAgIEVOVU1fUkVQID0gMiA8PCAyOCwgLyoqIFJlcGVhdGFibGUgZW51bWVyYXRpb24gdmFsdWUuICovCisgICAgVUlOVCA9IDMgPDwgMjgsCisgICAgVUlOVF9SRVAgPSA0IDw8IDI4LCAvKiogUmVwZWF0YWJsZSBpbnRlZ2VyIHZhbHVlICovCisgICAgVUxPTkcgPSA1IDw8IDI4LAorICAgIERBVEUgPSA2IDw8IDI4LAorICAgIEJPT0wgPSA3IDw8IDI4LAorICAgIEJJR05VTSA9IDggPDwgMjgsCisgICAgQllURVMgPSA5IDw8IDI4LAorICAgIFVMT05HX1JFUCA9IDEwIDw8IDI4LCAvKiogUmVwZWF0YWJsZSBsb25nIHZhbHVlICovCit9OworCitlbnVtIFRhZyA6IHVpbnQzMl90IHsKKyAgICBJTlZBTElEID0gVGFnVHlwZTpJTlZBTElEIHwgMCwKKworICAgIC8qKgorICAgICAqIFRhZ3MgdGhhdCBtdXN0IGJlIHNlbWFudGljYWxseSBlbmZvcmNlZCBieSBoYXJkd2FyZSBhbmQgc29mdHdhcmUgaW1wbGVtZW50YXRpb25zLgorICAgICAqLworCisgICAgLyoqIENyeXB0byBwYXJhbWV0ZXJzICovCisgICAgUFVSUE9TRSA9IFRhZ1R5cGU6RU5VTV9SRVAgfCAxLCAgICAvKiogS2V5UHVycG9zZS4gKi8KKyAgICBBTEdPUklUSE0gPSBUYWdUeXBlOkVOVU0gfCAyLCAgICAgIC8qKiBBbGdvcml0aG0uICovCisgICAgS0VZX1NJWkUgPSBUYWdUeXBlOlVJTlQgfCAzLCAgICAgICAvKiogS2V5IHNpemUgaW4gYml0cy4gKi8KKyAgICBCTE9DS19NT0RFID0gVGFnVHlwZTpFTlVNX1JFUCB8IDQsIC8qKiBCbG9ja01vZGUuICovCisgICAgRElHRVNUID0gVGFnVHlwZTpFTlVNX1JFUCB8IDUsICAgICAvKiogRGlnZXN0LiAqLworICAgIFBBRERJTkcgPSBUYWdUeXBlOkVOVU1fUkVQIHwgNiwgICAgLyoqIFBhZGRpbmdNb2RlLiAqLworICAgIENBTExFUl9OT05DRSA9IFRhZ1R5cGU6Qk9PTCB8IDcsICAgLyoqIEFsbG93IGNhbGxlciB0byBzcGVjaWZ5IG5vbmNlIG9yIElWLiAqLworICAgIE1JTl9NQUNfTEVOR1RIID0gVGFnVHlwZTpVSU5UIHwgOCwgLyogTWluaW11bSBsZW5ndGggb2YgTUFDIG9yIEFFQUQgYXV0aGVudGljYXRpb24gdGFnIGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBiaXRzLiAqLworICAgIEtERiA9IFRhZ1R5cGU6RU5VTV9SRVAgfCA5LCAgICAgICAgLyoqIEtleURlcml2YXRpb25GdW5jdGlvbi4gKi8KKyAgICBFQ19DVVJWRSA9IFRhZ1R5cGU6RU5VTSB8IDEwLCAgICAgIC8qKiBFY0N1cnZlLiAqLworCisgICAgLyoqIEFsZ29yaXRobS1zcGVjaWZpYy4gKi8KKyAgICBSU0FfUFVCTElDX0VYUE9ORU5UID0gVGFnVHlwZTpVTE9ORyB8IDIwMCwKKyAgICBFQ0lFU19TSU5HTEVfSEFTSF9NT0RFID0gVGFnVHlwZTpCT09MIHwgMjAxLCAvKiBXaGV0aGVyIHRoZSBlcGhlbWVyYWwgcHVibGljIGtleSBpcyBmZWQgaW50byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBLREYuICovCisgICAgSU5DTFVERV9VTklRVUVfSUQgPSBUYWdUeXBlOkJPT0wgfCAyMDIsICAgICAgLyogSWYgdHJ1ZSwgYXR0ZXN0YXRpb24gY2VydGlmaWNhdGVzIGZvciB0aGlzIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHdpbGwgY29udGFpbiBhbiBhcHBsaWNhdGlvbi1zY29wZWQgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGltZS1ib3VuZGVkIGRldmljZS11bmlxdWUgSUQuKi8KKworICAgIC8qKiBPdGhlciBoYXJkd2FyZS1lbmZvcmNlZC4gKi8KKyAgICBCTE9CX1VTQUdFX1JFUVVJUkVNRU5UUyA9IFRhZ1R5cGU6RU5VTSB8IDMwMSwgLyoqIEtleUJsb2JVc2FnZVJlcXVpcmVtZW50cy4gKi8KKyAgICBCT09UTE9BREVSX09OTFkgPSBUYWdUeXBlOkJPT0wgfCAzMDIsICAgICAgICAgLyoqIFVzYWJsZSBvbmx5IGJ5IGJvb3Rsb2FkZXIuICovCisKKyAgICAvKioKKyAgICAgKiBUYWdzIHRoYXQgc2hvdWxkIGJlIHNlbWFudGljYWxseSBlbmZvcmNlZCBieSBoYXJkd2FyZSBpZiBwb3NzaWJsZSBhbmQgd2lsbCBvdGhlcndpc2UgYmUKKyAgICAgKiBlbmZvcmNlZCBieSBzb2Z0d2FyZSAoa2V5c3RvcmUpLgorICAgICAqLworCisgICAgLyoqIEtleSB2YWxpZGl0eSBwZXJpb2QgKi8KKyAgICBBQ1RJVkVfREFURVRJTUUgPSBUYWdUeXBlOkRBVEUgfCA0MDAsICAgICAgICAgICAgIC8qKiBTdGFydCBvZiB2YWxpZGl0eS4gKi8KKyAgICBPUklHSU5BVElPTl9FWFBJUkVfREFURVRJTUUgPSBUYWdUeXBlOkRBVEUgfCA0MDEsIC8qIERhdGUgd2hlbiBuZXcgIm1lc3NhZ2VzIiBzaG91bGQgbm8gbG9uZ2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBiZSBjcmVhdGVkLiAqLworICAgIFVTQUdFX0VYUElSRV9EQVRFVElNRSA9IFRhZ1R5cGU6REFURSB8IDQwMiwgICAgICAgLyogRGF0ZSB3aGVuIGV4aXN0aW5nICJtZXNzYWdlcyIgc2hvdWxkIG5vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBsb25nZXIgYmUgdHJ1c3RlZC4gKi8KKyAgICBNSU5fU0VDT05EU19CRVRXRUVOX09QUyA9IFRhZ1R5cGU6VUlOVCB8IDQwMywgICAgIC8qIE1pbmltdW0gZWxhcHNlZCB0aW1lIGJldHdlZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyB3aXRoIHRoZSBrZXkuICovCisgICAgTUFYX1VTRVNfUEVSX0JPT1QgPSBUYWdUeXBlOlVJTlQgfCA0MDQsICAgICAgICAgICAvKiBOdW1iZXIgb2YgdGltZXMgdGhlIGtleSBjYW4gYmUgdXNlZCBwZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJvb3QuICovCisKKyAgICAvKiogVXNlciBhdXRoZW50aWNhdGlvbiAqLworICAgIEFMTF9VU0VSUyA9IFRhZ1R5cGU6Qk9PTCB8IDUwMCwgICAgICAgICAgIC8qKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSAtLSBpZ25vcmUuICovCisgICAgVVNFUl9JRCA9IFRhZ1R5cGU6VUlOVCB8IDUwMSwgICAgICAgICAgICAgLyoqIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIC0tIGlnbm9yZS4gKi8KKyAgICBVU0VSX1NFQ1VSRV9JRCA9IFRhZ1R5cGU6VUxPTkdfUkVQIHwgNTAyLCAvKiBTZWN1cmUgSUQgb2YgYXV0aG9yaXplZCB1c2VyIG9yIGF1dGhlbnRpY2F0b3IocykuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogRGlzYWxsb3dlZCBpZiBBTExfVVNFUlMgb3IgTk9fQVVUSF9SRVFVSVJFRCBpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHByZXNlbnQuICovCisgICAgTk9fQVVUSF9SRVFVSVJFRCA9IFRhZ1R5cGU6Qk9PTCB8IDUwMywgICAgLyoqIElmIGtleSBpcyB1c2FibGUgd2l0aG91dCBhdXRoZW50aWNhdGlvbi4gKi8KKyAgICBVU0VSX0FVVEhfVFlQRSA9IFRhZ1R5cGU6RU5VTSB8IDUwNCwgICAgICAvKiBCaXRtYXNrIG9mIGF1dGhlbnRpY2F0b3IgdHlwZXMgYWxsb3dlZCB3aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVVNFUl9TRUNVUkVfSUQgY29udGFpbnMgYSBzZWN1cmUgdXNlciBJRCwgcmF0aGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhhbiBhIHNlY3VyZSBhdXRoZW50aWNhdG9yIElELiAgRGVmaW5lZCBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEhhcmR3YXJlQXV0aGVudGljYXRvclR5cGUuICovCisgICAgQVVUSF9USU1FT1VUID0gVGFnVHlwZTpVSU5UIHwgNTA1LCAgICAgICAgLyogUmVxdWlyZWQgZnJlc2huZXNzIG9mIHVzZXIgYXV0aGVudGljYXRpb24gZm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcHJpdmF0ZS9zZWNyZXQga2V5IG9wZXJhdGlvbnMsIGluIHNlY29uZHMuICBQdWJsaWMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBrZXkgb3BlcmF0aW9ucyByZXF1aXJlIG5vIGF1dGhlbnRpY2F0aW9uLiAgSWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBhYnNlbnQsIGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBldmVyeSB1c2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQXV0aGVudGljYXRpb24gc3RhdGUgaXMgbG9zdCB3aGVuIHRoZSBkZXZpY2UgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBwb3dlcmVkIG9mZi4gKi8KKyAgICBBTExPV19XSElMRV9PTl9CT0RZID0gVGFnVHlwZTpCT09MIHwgNTA2LCAvKiBBbGxvdyBrZXkgdG8gYmUgdXNlZCBhZnRlciBhdXRoZW50aWNhdGlvbiB0aW1lb3V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaWYgZGV2aWNlIGlzIHN0aWxsIG9uLWJvZHkgKHJlcXVpcmVzIHNlY3VyZSBvbi1ib2R5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc2Vuc29yLiAqLworCisgICAgLyoqIEFwcGxpY2F0aW9uIGFjY2VzcyBjb250cm9sICovCisgICAgQUxMX0FQUExJQ0FUSU9OUyA9IFRhZ1R5cGU6Qk9PTCB8IDYwMCwgLyogU3BlY2lmaWVkIHRvIGluZGljYXRlIGtleSBpcyB1c2FibGUgYnkgYWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYXBwbGljYXRpb25zLiAqLworICAgIEFQUExJQ0FUSU9OX0lEID0gVGFnVHlwZTpCWVRFUyB8IDYwMSwgIC8qKiBCeXRlIHN0cmluZyBpZGVudGlmeWluZyB0aGUgYXV0aG9yaXplZCBhcHBsaWNhdGlvbi4gKi8KKyAgICBFWFBPUlRBQkxFID0gVGFnVHlwZTpCT09MIHwgNjAyLCAgICAgICAvKiBJZiB0cnVlLCBwcml2YXRlL3NlY3JldCBrZXkgY2FuIGJlIGV4cG9ydGVkLCBidXQgb25seQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGlmIGFsbCBhY2Nlc3MgY29udHJvbCByZXF1aXJlbWVudHMgZm9yIHVzZSBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBtZXQuIChrZXltYXN0ZXIyKSAqLworCisgICAgLyoqCisgICAgICogU2VtYW50aWNhbGx5IHVuZW5mb3JjZWFibGUgdGFncywgZWl0aGVyIGJlY2F1c2UgdGhleSBoYXZlIG5vIHNwZWNpZmljIG1lYW5pbmcgb3IgYmVjYXVzZQorICAgICAqIHRoZXkncmUgaW5mb3JtYXRpb25hbCBvbmx5LgorICAgICAqLworICAgIEFQUExJQ0FUSU9OX0RBVEEgPSBUYWdUeXBlOkJZVEVTIHwgNzAwLCAgICAgIC8qKiBEYXRhIHByb3ZpZGVkIGJ5IGF1dGhvcml6ZWQgYXBwbGljYXRpb24uICovCisgICAgQ1JFQVRJT05fREFURVRJTUUgPSBUYWdUeXBlOkRBVEUgfCA3MDEsICAgICAgLyoqIEtleSBjcmVhdGlvbiB0aW1lICovCisgICAgT1JJR0lOID0gVGFnVHlwZTpFTlVNIHwgNzAyLCAgICAgICAgICAgICAgICAgLyoqIGtleW1hc3Rlcl9rZXlfb3JpZ2luX3QuICovCisgICAgUk9MTEJBQ0tfUkVTSVNUQU5UID0gVGFnVHlwZTpCT09MIHwgNzAzLCAgICAgLyoqIFdoZXRoZXIga2V5IGlzIHJvbGxiYWNrLXJlc2lzdGFudC4gKi8KKyAgICBST09UX09GX1RSVVNUID0gVGFnVHlwZTpCWVRFUyB8IDcwNCwgICAgICAgICAvKiogUm9vdCBvZiB0cnVzdCBJRC4gKi8KKyAgICBPU19WRVJTSU9OID0gVGFnVHlwZTpVSU5UIHwgNzA1LCAgICAgICAgICAgICAvKiogVmVyc2lvbiBvZiBzeXN0ZW0gKGtleW1hc3RlcjIpICovCisgICAgT1NfUEFUQ0hMRVZFTCA9IFRhZ1R5cGU6VUlOVCB8IDcwNiwgICAgICAgICAgLyoqIFBhdGNoIGxldmVsIG9mIHN5c3RlbSAoa2V5bWFzdGVyMikgKi8KKyAgICBVTklRVUVfSUQgPSBUYWdUeXBlOkJZVEVTIHwgNzA3LCAgICAgICAgICAgICAvKiogVXNlZCB0byBwcm92aWRlIHVuaXF1ZSBJRCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0NIQUxMRU5HRSA9IFRhZ1R5cGU6QllURVMgfCA3MDgsIC8qKiBVc2VkIHRvIHByb3ZpZGUgY2hhbGxlbmdlIGluIGF0dGVzdGF0aW9uICovCisgICAgQVRURVNUQVRJT05fQVBQTElDQVRJT05fSUQgPSBUYWdUeXBlOkJZVEVTIHwgNzA5LCAvKiBVc2VkIHRvIGlkZW50aWZ5IHRoZSBzZXQgb2YgcG9zc2libGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGFwcGxpY2F0aW9ucyBvZiB3aGljaCBvbmUgaGFzIGluaXRpYXRlZCBhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBrZXkgYXR0ZXN0YXRpb24gKi8KKyAgICBBVFRFU1RBVElPTl9JRF9CUkFORCA9IFRhZ1R5cGU6QllURVMgfCA3MTAsICAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIGJyYW5kIG5hbWUgdG8gYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX0RFVklDRSA9IFRhZ1R5cGU6QllURVMgfCA3MTEsIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3MgZGV2aWNlIG5hbWUgdG8gYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX1BST0RVQ1QgPSBUYWdUeXBlOkJZVEVTIHwgNzEyLCAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIHByb2R1Y3QgbmFtZSB0byBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX1NFUklBTCA9IFRhZ1R5cGU6QllURVMgfCA3MTMsIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3Mgc2VyaWFsIG51bWJlciB0byBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVkIGluIGF0dGVzdGF0aW9uICovCisgICAgQVRURVNUQVRJT05fSURfSU1FSSA9IFRhZ1R5cGU6QllURVMgfCA3MTQsICAgLyogVXNlZCB0byBwcm92aWRlIHRoZSBkZXZpY2UncyBJTUVJIHRvIGJlIGluY2x1ZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYXR0ZXN0YXRpb24gKi8KKyAgICBBVFRFU1RBVElPTl9JRF9NRUlEID0gVGFnVHlwZTpCWVRFUyB8IDcxNSwgICAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIE1FSUQgdG8gYmUgaW5jbHVkZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX01BTlVGQUNUVVJFUiA9IFRhZ1R5cGU6QllURVMgfCA3MTYsIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3MgbWFudWZhY3R1cmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSB0byBiZSBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX01PREVMID0gVGFnVHlwZTpCWVRFUyB8IDcxNywgIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3MgbW9kZWwgbmFtZSB0byBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVkIGluIGF0dGVzdGF0aW9uICovCisKKyAgICAvKiogVGFncyB1c2VkIG9ubHkgdG8gcHJvdmlkZSBkYXRhIHRvIG9yIHJlY2VpdmUgZGF0YSBmcm9tIG9wZXJhdGlvbnMgKi8KKyAgICBBU1NPQ0lBVEVEX0RBVEEgPSBUYWdUeXBlOkJZVEVTIHwgMTAwMCwgLyoqIFVzZWQgdG8gcHJvdmlkZSBhc3NvY2lhdGVkIGRhdGEgZm9yIEFFQUQgbW9kZXMuICovCisgICAgTk9OQ0UgPSBUYWdUeXBlOkJZVEVTIHwgMTAwMSwgICAgICAgICAgIC8qKiBOb25jZSBvciBJbml0aWFsaXphdGlvbiBWZWN0b3IgKi8KKyAgICBBVVRIX1RPS0VOID0gVGFnVHlwZTpCWVRFUyB8IDEwMDIsICAgICAgLyogQXV0aGVudGljYXRpb24gdG9rZW4gdGhhdCBwcm92ZXMgc2VjdXJlIHVzZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYXV0aGVudGljYXRpb24gaGFzIGJlZW4gcGVyZm9ybWVkLiAgU3RydWN0dXJlIGRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaW4gaHdfYXV0aF90b2tlbl90IGluIGh3X2F1dGhfdG9rZW4uaC4gKi8KKyAgICBNQUNfTEVOR1RIID0gVGFnVHlwZTpVSU5UIHwgMTAwMywgICAgICAgLyoqIE1BQyBvciBBRUFEIGF1dGhlbnRpY2F0aW9uIHRhZyBsZW5ndGggaW4gYml0cy4gKi8KKworICAgIFJFU0VUX1NJTkNFX0lEX1JPVEFUSU9OID0gVGFnVHlwZTpCT09MIHwgMTAwNCwgLyogV2hldGhlciB0aGUgZGV2aWNlIGhhcyBiZWVlbiBmYWN0b3J5IHJlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzaW5jZSB0aGUgbGFzdCB1bmlxdWUgSUQgcm90YXRpb24uICBVc2VkIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoga2V5IGF0dGVzdGF0aW9uLiAqLworfTsKKworZW51bSBBbGdvcml0aG0gOiB1aW50MzJfdCB7CisgICAgLyoqIEFzeW1tZXRyaWMgYWxnb3JpdGhtcy4gKi8KKyAgICBSU0EgPSAxLAorICAgIC8vIERTQSA9IDIsIC0tIFJlbW92ZWQsIGRvIG5vdCByZS11c2UgdmFsdWUgMi4KKyAgICBFQyA9IDMsCisKKyAgICAvKiogQmxvY2sgY2lwaGVycyBhbGdvcml0aG1zICovCisgICAgQUVTID0gMzIsCisKKyAgICAvKiogTUFDIGFsZ29yaXRobXMgKi8KKyAgICBITUFDID0gMTI4LAorfTsKKworLyoqCisgKiBTeW1tZXRyaWMgYmxvY2sgY2lwaGVyIG1vZGVzIHByb3ZpZGVkIGJ5IGtleW1hc3RlciBpbXBsZW1lbnRhdGlvbnMuCisgKi8KK2VudW0gQmxvY2tNb2RlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFVuYXV0aGVudGljYXRlZCBtb2RlcywgdXNhYmxlIG9ubHkgZm9yIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBhbmQgbm90IGdlbmVyYWxseSByZWNvbW1lbmRlZAorICAgICAqIGV4Y2VwdCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIG90aGVyIHByb3RvY29scy4gKi8KKyAgICBFQ0IgPSAxLAorICAgIENCQyA9IDIsCisgICAgQ1RSID0gMywKKworICAgIC8qKgorICAgICAqIEF1dGhlbnRpY2F0ZWQgbW9kZXMsIHVzYWJsZSBmb3IgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIGFuZCBzaWduaW5nL3ZlcmlmaWNhdGlvbi4gIFJlY29tbWVuZGVkCisgICAgICogb3ZlciB1bmF1dGhlbnRpY2F0ZWQgbW9kZXMgZm9yIGFsbCBwdXJwb3Nlcy4gKi8KKyAgICBHQ00gPSAzMiwKK307CisKKy8qKgorICogUGFkZGluZyBtb2RlcyB0aGF0IG1heSBiZSBhcHBsaWVkIHRvIHBsYWludGV4dCBmb3IgZW5jcnlwdGlvbiBvcGVyYXRpb25zLiAgVGhpcyBsaXN0IGluY2x1ZGVzCisgKiBwYWRkaW5nIG1vZGVzIGZvciBib3RoIHN5bW1ldHJpYyBhbmQgYXN5bW1ldHJpYyBhbGdvcml0aG1zLiAgTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBzaG91bGQgbm90CisgKiBwcm92aWRlIGFsbCBwb3NzaWJsZSBjb21iaW5hdGlvbnMgb2YgYWxnb3JpdGhtIGFuZCBwYWRkaW5nLCBvbmx5IHRoZQorICogY3J5cHRvZ3JhcGhpY2FsbHktYXBwcm9wcmlhdGUgcGFpcnMuCisgKi8KK2VudW0gUGFkZGluZ01vZGUgOiB1aW50MzJfdCB7CisgICAgTk9ORSA9IDEsIC8qKiBkZXByZWNhdGVkICovCisgICAgUlNBX09BRVAgPSAyLAorICAgIFJTQV9QU1MgPSAzLAorICAgIFJTQV9QS0NTMV8xXzVfRU5DUllQVCA9IDQsCisgICAgUlNBX1BLQ1MxXzFfNV9TSUdOID0gNSwKKyAgICBQS0NTNyA9IDY0LAorfTsKKworLyoqCisgKiBEaWdlc3RzIHByb3ZpZGVkIGJ5IGtleW1hc3RlciBpbXBsZW1lbnRhdGlvbnMuCisgKi8KK2VudW0gRGlnZXN0IDogdWludDMyX3QgeworICAgIE5PTkUgPSAwLAorICAgIE1ENSA9IDEsIC8qIE9wdGlvbmFsLCBtYXkgbm90IGJlIGltcGxlbWVudGVkIGluIGhhcmR3YXJlLCB3aWxsIGJlIGhhbmRsZWQgaW4gc29mdHdhcmUgaWYKKyAgICAgICAgICAgICAgKiBuZWVkZWQuICovCisgICAgU0hBMSA9IDIsCisgICAgU0hBXzJfMjI0ID0gMywKKyAgICBTSEFfMl8yNTYgPSA0LAorICAgIFNIQV8yXzM4NCA9IDUsCisgICAgU0hBXzJfNTEyID0gNiwKK307CisKKy8qKgorICogU3VwcG9ydGVkIEVDIGN1cnZlcywgdXNlZCBpbiBFQ0RTQQorICovCitlbnVtIEVjQ3VydmUgOiB1aW50MzJfdCB7CisgICAgUF8yMjQgPSAwLAorICAgIFBfMjU2ID0gMSwKKyAgICBQXzM4NCA9IDIsCisgICAgUF81MjEgPSAzLAorfTsKKworLyoqCisgKiBUaGUgb3JpZ2luIG9mIGEga2V5IChvciBwYWlyKSwgaS5lLiB3aGVyZSBpdCB3YXMgZ2VuZXJhdGVkLiAgTm90ZSB0aGF0IE9SSUdJTiBjYW4gYmUgZm91bmQgaW4KKyAqIGVpdGhlciB0aGUgaGFyZHdhcmUtZW5mb3JjZWQgb3Igc29mdHdhcmUtZW5mb3JjZWQgbGlzdCBmb3IgYSBrZXksIGluZGljYXRpbmcgd2hldGhlciB0aGUga2V5IGlzCisgKiBoYXJkd2FyZSBvciBzb2Z0d2FyZS1iYXNlZC4gIFNwZWNpZmljYWxseSwgYSBrZXkgd2l0aCBHRU5FUkFURUQgaW4gdGhlIGhhcmR3YXJlLWVuZm9yY2VkIGxpc3QgaXMKKyAqIGd1YXJhbnRlZWQgbmV2ZXIgdG8gaGF2ZSBleGlzdGVkIG91dGlkZSB0aGUgc2VjdXJlIGhhcmR3YXJlLgorICovCitlbnVtIEtleU9yaWdpbiA6IHVpbnQzMl90IHsKKyAgICBHRU5FUkFURUQgPSAwLCAvKiogR2VuZXJhdGVkIGluIGtleW1hc3Rlci4gIFNob3VsZCBub3QgZXhpc3Qgb3V0c2lkZSB0aGUgVEVFLiAqLworICAgIERFUklWRUQgPSAxLCAgIC8qKiBEZXJpdmVkIGluc2lkZSBrZXltYXN0ZXIuICBMaWtlbHkgZXhpc3RzIG9mZi1kZXZpY2UuICovCisgICAgSU1QT1JURUQgPSAyLCAgLyoqIEltcG9ydGVkIGludG8ga2V5bWFzdGVyLiAgRXhpc3RlZCBhcyBjbGVhcnRleHQgaW4gQW5kcm9pZC4gKi8KKyAgICBVTktOT1dOID0gMywgICAvKiBLZXltYXN0ZXIgZGlkIG5vdCByZWNvcmQgb3JpZ2luLiAgVGhpcyB2YWx1ZSBjYW4gb25seSBiZSBzZWVuIG9uIGtleXMgaW4gYQorICAgICAgICAgICAgICAgICAgICAqIGtleW1hc3RlcjAgaW1wbGVtZW50YXRpb24uICBUaGUga2V5bWFzdGVyMCBhZGFwdGVyIHVzZXMgdGhpcyB2YWx1ZSB0byBkb2N1bWVudAorICAgICAgICAgICAgICAgICAgICAqIHRoZSBmYWN0IHRoYXQgaXQgaXMgdW5rb3duIHdoZXRoZXIgdGhlIGtleSB3YXMgZ2VuZXJhdGVkIGluc2lkZSBvciBpbXBvcnRlZAorICAgICAgICAgICAgICAgICAgICAqIGludG8ga2V5bWFzdGVyLiAqLworfTsKKworLyoqCisgKiBVc2FiaWxpdHkgcmVxdWlyZW1lbnRzIG9mIGtleSBibG9icy4gIFRoaXMgZGVmaW5lcyB3aGF0IHN5c3RlbSBmdW5jdGlvbmFsaXR5IG11c3QgYmUgYXZhaWxhYmxlCisgKiBmb3IgdGhlIGtleSB0byBmdW5jdGlvbi4gIEZvciBleGFtcGxlLCBrZXkgImJsb2JzIiB3aGljaCBhcmUgYWN0dWFsbHkgaGFuZGxlcyByZWZlcmVuY2luZworICogZW5jcnlwdGVkIGtleSBtYXRlcmlhbCBzdG9yZWQgaW4gdGhlIGZpbGUgc3lzdGVtIGNhbm5vdCBiZSB1c2VkIHVudGlsIHRoZSBmaWxlIHN5c3RlbSBpcworICogYXZhaWxhYmxlLCBhbmQgc2hvdWxkIGhhdmUgQkxPQl9SRVFVSVJFU19GSUxFX1NZU1RFTS4gIE90aGVyIHJlcXVpcmVtZW50cyBlbnRyaWVzIHdpbGwgYmUgYWRkZWQKKyAqIGFzIG5lZWRlZCBmb3IgaW1wbGVtZW50YXRpb25zLgorICovCitlbnVtIEtleUJsb2JVc2FnZVJlcXVpcmVtZW50cyA6IHVpbnQzMl90IHsKKyAgICBTVEFOREFMT05FID0gMCwKKyAgICBSRVFVSVJFU19GSUxFX1NZU1RFTSA9IDEsCit9OworCisvKioKKyAqIFBvc3NpYmxlIHB1cnBvc2VzIG9mIGEga2V5IChvciBwYWlyKS4KKyAqLworZW51bSBLZXlQdXJwb3NlIDogdWludDMyX3QgeworICAgIEVOQ1JZUFQgPSAwLCAgICAvKiogVXNhYmxlIHdpdGggUlNBLCBFQyBhbmQgQUVTIGtleXMuICovCisgICAgREVDUllQVCA9IDEsICAgIC8qKiBVc2FibGUgd2l0aCBSU0EsIEVDIGFuZCBBRVMga2V5cy4gKi8KKyAgICBTSUdOID0gMiwgICAgICAgLyoqIFVzYWJsZSB3aXRoIFJTQSwgRUMgYW5kIEhNQUMga2V5cy4gKi8KKyAgICBWRVJJRlkgPSAzLCAgICAgLyoqIFVzYWJsZSB3aXRoIFJTQSwgRUMgYW5kIEhNQUMga2V5cy4gKi8KKyAgICBERVJJVkVfS0VZID0gNCwgLyoqIFVzYWJsZSB3aXRoIEVDIGtleXMuICovCisgICAgV1JBUF9LRVkgPSA1LCAgIC8qKiBVc2FibGUgd2l0aCB3cmFwcGluZyBrZXlzLiAqLworfTsKKworLyoqCisgKiBLZXltYXN0ZXIgZXJyb3IgY29kZXMuCisgKi8KK2VudW0gRXJyb3JDb2RlIDogdWludDMyX3QgeworICAgIE9LID0gMCwKKyAgICBST09UX09GX1RSVVNUX0FMUkVBRFlfU0VUID0gLTEsCisgICAgVU5TVVBQT1JURURfUFVSUE9TRSA9IC0yLAorICAgIElOQ09NUEFUSUJMRV9QVVJQT1NFID0gLTMsCisgICAgVU5TVVBQT1JURURfQUxHT1JJVEhNID0gLTQsCisgICAgSU5DT01QQVRJQkxFX0FMR09SSVRITSA9IC01LAorICAgIFVOU1VQUE9SVEVEX0tFWV9TSVpFID0gLTYsCisgICAgVU5TVVBQT1JURURfQkxPQ0tfTU9ERSA9IC03LAorICAgIElOQ09NUEFUSUJMRV9CTE9DS19NT0RFID0gLTgsCisgICAgVU5TVVBQT1JURURfTUFDX0xFTkdUSCA9IC05LAorICAgIFVOU1VQUE9SVEVEX1BBRERJTkdfTU9ERSA9IC0xMCwKKyAgICBJTkNPTVBBVElCTEVfUEFERElOR19NT0RFID0gLTExLAorICAgIFVOU1VQUE9SVEVEX0RJR0VTVCA9IC0xMiwKKyAgICBJTkNPTVBBVElCTEVfRElHRVNUID0gLTEzLAorICAgIElOVkFMSURfRVhQSVJBVElPTl9USU1FID0gLTE0LAorICAgIElOVkFMSURfVVNFUl9JRCA9IC0xNSwKKyAgICBJTlZBTElEX0FVVEhPUklaQVRJT05fVElNRU9VVCA9IC0xNiwKKyAgICBVTlNVUFBPUlRFRF9LRVlfRk9STUFUID0gLTE3LAorICAgIElOQ09NUEFUSUJMRV9LRVlfRk9STUFUID0gLTE4LAorICAgIFVOU1VQUE9SVEVEX0tFWV9FTkNSWVBUSU9OX0FMR09SSVRITSA9IC0xOSwgICAvKiogRm9yIFBLQ1M4ICYgUEtDUzEyICovCisgICAgVU5TVVBQT1JURURfS0VZX1ZFUklGSUNBVElPTl9BTEdPUklUSE0gPSAtMjAsIC8qKiBGb3IgUEtDUzggJiBQS0NTMTIgKi8KKyAgICBJTlZBTElEX0lOUFVUX0xFTkdUSCA9IC0yMSwKKyAgICBLRVlfRVhQT1JUX09QVElPTlNfSU5WQUxJRCA9IC0yMiwKKyAgICBERUxFR0FUSU9OX05PVF9BTExPV0VEID0gLTIzLAorICAgIEtFWV9OT1RfWUVUX1ZBTElEID0gLTI0LAorICAgIEtFWV9FWFBJUkVEID0gLTI1LAorICAgIEtFWV9VU0VSX05PVF9BVVRIRU5USUNBVEVEID0gLTI2LAorICAgIE9VVFBVVF9QQVJBTUVURVJfTlVMTCA9IC0yNywKKyAgICBJTlZBTElEX09QRVJBVElPTl9IQU5ETEUgPSAtMjgsCisgICAgSU5TVUZGSUNJRU5UX0JVRkZFUl9TUEFDRSA9IC0yOSwKKyAgICBWRVJJRklDQVRJT05fRkFJTEVEID0gLTMwLAorICAgIFRPT19NQU5ZX09QRVJBVElPTlMgPSAtMzEsCisgICAgVU5FWFBFQ1RFRF9OVUxMX1BPSU5URVIgPSAtMzIsCisgICAgSU5WQUxJRF9LRVlfQkxPQiA9IC0zMywKKyAgICBJTVBPUlRFRF9LRVlfTk9UX0VOQ1JZUFRFRCA9IC0zNCwKKyAgICBJTVBPUlRFRF9LRVlfREVDUllQVElPTl9GQUlMRUQgPSAtMzUsCisgICAgSU1QT1JURURfS0VZX05PVF9TSUdORUQgPSAtMzYsCisgICAgSU1QT1JURURfS0VZX1ZFUklGSUNBVElPTl9GQUlMRUQgPSAtMzcsCisgICAgSU5WQUxJRF9BUkdVTUVOVCA9IC0zOCwKKyAgICBVTlNVUFBPUlRFRF9UQUcgPSAtMzksCisgICAgSU5WQUxJRF9UQUcgPSAtNDAsCisgICAgTUVNT1JZX0FMTE9DQVRJT05fRkFJTEVEID0gLTQxLAorICAgIElNUE9SVF9QQVJBTUVURVJfTUlTTUFUQ0ggPSAtNDQsCisgICAgU0VDVVJFX0hXX0FDQ0VTU19ERU5JRUQgPSAtNDUsCisgICAgT1BFUkFUSU9OX0NBTkNFTExFRCA9IC00NiwKKyAgICBDT05DVVJSRU5UX0FDQ0VTU19DT05GTElDVCA9IC00NywKKyAgICBTRUNVUkVfSFdfQlVTWSA9IC00OCwKKyAgICBTRUNVUkVfSFdfQ09NTVVOSUNBVElPTl9GQUlMRUQgPSAtNDksCisgICAgVU5TVVBQT1JURURfRUNfRklFTEQgPSAtNTAsCisgICAgTUlTU0lOR19OT05DRSA9IC01MSwKKyAgICBJTlZBTElEX05PTkNFID0gLTUyLAorICAgIE1JU1NJTkdfTUFDX0xFTkdUSCA9IC01MywKKyAgICBLRVlfUkFURV9MSU1JVF9FWENFRURFRCA9IC01NCwKKyAgICBDQUxMRVJfTk9OQ0VfUFJPSElCSVRFRCA9IC01NSwKKyAgICBLRVlfTUFYX09QU19FWENFRURFRCA9IC01NiwKKyAgICBJTlZBTElEX01BQ19MRU5HVEggPSAtNTcsCisgICAgTUlTU0lOR19NSU5fTUFDX0xFTkdUSCA9IC01OCwKKyAgICBVTlNVUFBPUlRFRF9NSU5fTUFDX0xFTkdUSCA9IC01OSwKKyAgICBVTlNVUFBPUlRFRF9LREYgPSAtNjAsCisgICAgVU5TVVBQT1JURURfRUNfQ1VSVkUgPSAtNjEsCisgICAgS0VZX1JFUVVJUkVTX1VQR1JBREUgPSAtNjIsCisgICAgQVRURVNUQVRJT05fQ0hBTExFTkdFX01JU1NJTkcgPSAtNjMsCisgICAgS0VZTUFTVEVSX05PVF9DT05GSUdVUkVEID0gLTY0LAorICAgIEFUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lEX01JU1NJTkcgPSAtNjUsCisgICAgQ0FOTk9UX0FUVEVTVF9JRFMgPSAtNjYsCisKKyAgICBVTklNUExFTUVOVEVEID0gLTEwMCwKKyAgICBWRVJTSU9OX01JU01BVENIID0gLTEwMSwKKworICAgIFVOS05PV05fRVJST1IgPSAtMTAwMCwKK307CisKKy8qKgorICogS2V5IGRlcml2YXRpb24gZnVuY3Rpb25zLCBtb3N0bHkgdXNlZCBpbiBFQ0lFUy4KKyAqLworZW51bSBLZXlEZXJpdmF0aW9uRnVuY3Rpb24gOiB1aW50MzJfdCB7CisgICAgLyoqIERvIG5vdCBhcHBseSBhIGtleSBkZXJpdmF0aW9uIGZ1bmN0aW9uOyB1c2UgdGhlIHJhdyBhZ3JlZWQga2V5ICovCisgICAgTk9ORSA9IDAsCisgICAgLyoqIEhLREYgZGVmaW5lZCBpbiBSRkMgNTg2OSB3aXRoIFNIQTI1NiAqLworICAgIFJGQzU4NjlfU0hBMjU2ID0gMSwKKyAgICAvKiogS0RGMSBkZWZpbmVkIGluIElTTyAxODAzMy0yIHdpdGggU0hBMSAqLworICAgIElTTzE4MDMzXzJfS0RGMV9TSEExID0gMiwKKyAgICAvKiogS0RGMSBkZWZpbmVkIGluIElTTyAxODAzMy0yIHdpdGggU0hBMjU2ICovCisgICAgSVNPMTgwMzNfMl9LREYxX1NIQTI1NiA9IDMsCisgICAgLyoqIEtERjIgZGVmaW5lZCBpbiBJU08gMTgwMzMtMiB3aXRoIFNIQTEgKi8KKyAgICBJU08xODAzM18yX0tERjJfU0hBMSA9IDQsCisgICAgLyoqIEtERjIgZGVmaW5lZCBpbiBJU08gMTgwMzMtMiB3aXRoIFNIQTI1NiAqLworICAgIElTTzE4MDMzXzJfS0RGMl9TSEEyNTYgPSA1LAorfTsKKworLyoqCisgKiBIYXJkd2FyZSBhdXRoZW50aWNhdGlvbiB0eXBlLCB1c2VkIGJ5IEhhcmR3YXJlQXV0aFRva2VucyB0byBzcGVjaWZ5IHRoZSBtZWNoYW5pc20gdXNlZCB0bworICogYXV0aGVudGlhdGUgdGhlIHVzZXIsIGFuZCBpbiBLZXlDaGFyYWN0ZXJpc3RpY3MgdG8gc3BlY2lmeSB0aGUgYWxsb3dhYmxlIG1lY2hhbmlzbXMgZm9yCisgKiBhdXRoZW50aWNhdGluZyB0byBhY3RpdmF0ZSBhIGtleS4KKyAqLworZW51bSBIYXJkd2FyZUF1dGhlbnRpY2F0b3JUeXBlIDogdWludDMyX3QgeworICAgIE5PTkUgPSAwLAorICAgIFBBU1NXT1JEID0gMSA8PCAwLAorICAgIEZJTkdFUlBSSU5UID0gMSA8PCAxLAorICAgIC8vIEFkZGl0aW9uYWwgZW50cmllcyBtdXN0IGJlIHBvd2VycyBvZiAyLgorICAgIEFOWSA9IDB4RkZGRkZGRkYsCit9OworCitzdHJ1Y3QgS2V5UGFyYW1ldGVyIHsKKyAgICAvKioKKyAgICAgKiBEaXNjcmltaW5hdGVzIHRoZSB1aW5vbi9ibG9iIGZpZWxkIHVzZWQuICBUaGUgYmxvYiBjYW5ub3QgYmUgY29pbmNpZGVkIHdpdGggdGhlIHVuaW9uLCBidXQKKyAgICAgKiBvbmx5IG9uZSBvZiAiZiIgYW5kICJibG9iIiBpcyBldmVyIHVzZWQgYXQgYSB0aW1lLiAqLworICAgIFRhZyB0YWc7CisgICAgdW5pb24gSW50ZWdlclBhcmFtcyB7CisgICAgICAgIC8qKiBFbnVtIHR5cGVzICovCisgICAgICAgIEFsZ29yaXRobSBhbGdvcml0aG07CisgICAgICAgIEJsb2NrTW9kZSBibG9ja01vZGU7CisgICAgICAgIFBhZGRpbmdNb2RlIHBhZGRpbmdNb2RlOworICAgICAgICBEaWdlc3QgZGlnZXN0OworICAgICAgICBFY0N1cnZlIGVjQ3VydmU7CisgICAgICAgIEtleU9yaWdpbiBvcmlnaW47CisgICAgICAgIEtleUJsb2JVc2FnZVJlcXVpcmVtZW50cyBrZXlCbG9iVXNhZ2VSZXF1aXJlbWVudHM7CisgICAgICAgIEtleVB1cnBvc2UgcHVycG9zZTsKKyAgICAgICAgS2V5RGVyaXZhdGlvbkZ1bmN0aW9uIGtleURlcml2YXRpb25GdW5jdGlvbjsKKyAgICAgICAgSGFyZHdhcmVBdXRoZW50aWNhdG9yVHlwZSBoYXJkd2FyZUF1dGhlbnRpY2F0b3JUeXBlOworCisgICAgICAgIC8qKiBPdGhlciB0eXBlcyAqLworICAgICAgICBib29sIGJvb2xWYWx1ZTsgIC8vIEFsd2F5cyB0cnVlLCBpZiBhIGJvb2xlYW4gdGFnIGlzIHByZXNlbnQuCisgICAgICAgIHVpbnQzMl90IGludGVnZXI7CisgICAgICAgIHVpbnQ2NF90IGxvbmdJbnRlZ2VyOworICAgICAgICB1aW50NjRfdCBkYXRlVGltZTsKKyAgICB9OworICAgIEludGVnZXJQYXJhbXMgZjsgIC8vIEhpZGwgZG9lcyBub3Qgc3VwcG9ydCBhbm9ueW1vdXMgdW5pb25zLCBzbyB3ZSBoYXZlIHRvIG5hbWUgaXQuCisgICAgdmVjPHVpbnQ4X3Q+IGJsb2I7Cit9OworCitzdHJ1Y3QgS2V5Q2hhcmFjdGVyaXN0aWNzIHsKKyAgICB2ZWM8S2V5UGFyYW1ldGVyPiBzb2Z0d2FyZUVuZm9yY2VkOworICAgIHZlYzxLZXlQYXJhbWV0ZXI+IHRlZUVuZm9yY2VkOworfTsKKworLyoqCisgKiBEYXRhIHVzZWQgdG8gcHJvdmUgc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbi4KKyAqLworc3RydWN0IEhhcmR3YXJlQXV0aFRva2VuIHsKKyAgICB1aW50NjRfdCBjaGFsbGVuZ2U7CisgICAgdWludDY0X3QgdXNlcklkOyAgICAgICAgICAgICAvLyBTZWN1cmUgVXNlciBJRCwgbm90IEFuZHJvaWQgdXNlciBJRC4KKyAgICB1aW50NjRfdCBhdXRoZW50aWNhdG9ySWQ7ICAgIC8vIFNlY3VyZSBhdXRoZW50aWNhdG9yIElELgorICAgIHVpbnQzMl90IGF1dGhlbnRpY2F0b3JUeXBlOyAgLy8gSGFyZHdhcmVBdXRoZW50aWNhdG9yVHlwZSwgaW4gbmV0d29yayBvcmRlci4KKyAgICB1aW50NjRfdCB0aW1lc3RhbXA7ICAgICAgICAgIC8vIEluIG5ldHdvcmsgb3JkZXIuCisgICAgdWludDhfdFszMl0gaG1hYzsgICAgICAgICAgICAvLyBITUFDIGlzIGNvbXB1dGVkIG92ZXIgMCB8fCBjaGFsbGVuZ2UgfHwgdXNlcl9pZCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXV0aGVudGljYXRvcl9pZCB8fCBhdXRoZW50aWNhdG9yX3R5cGUgfHwgdGltZXN0YW1wLCB3aXRoIGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByZWZpeGVkIDAgYnl0ZSAod2hpY2ggd2FzIGEgdmVyc2lvbiBmaWVsZCBpbiBLZXltYXN0ZXIxIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gS2V5bWFzdGVyMikgYW5kIHRoZSBmaWVsZHMgcGFja2VkIChubyBwYWRkaW5nOyBzbyB5b3UgcHJvYmFibHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbid0IGp1c3QgY29tcHV0ZSBvdmVyIHRoZSBieXRlcyBvZiB0aGUgc3RydWN0KS4KK307CisKK2VudW0gU2VjdXJpdHlMZXZlbCA6IHVpbnQzMl90IHsKKyAgICBTT0ZUV0FSRSA9IDAsCisgICAgVFJVU1RFRF9FTlZJUk9OTUVOVCA9IDEsCit9OworCisvKioKKyAqIEZvcm1hdHMgZm9yIGtleSBpbXBvcnQgYW5kIGV4cG9ydC4KKyAqLworZW51bSBLZXlGb3JtYXQgOiB1aW50MzJfdCB7CisgICAgWDUwOSA9IDAsICAvKiogZm9yIHB1YmxpYyBrZXkgZXhwb3J0ICovCisgICAgUEtDUzggPSAxLCAvKiogZm9yIGFzeW1tZXRyaWMga2V5IHBhaXIgaW1wb3J0ICovCisgICAgUkFXID0gMywgICAvKiBmb3Igc3ltbWV0cmljIGtleSBpbXBvcnQgYW5kIGV4cG9ydCovCit9OworCit0eXBlZGVmIHVpbnQ2NF90IE9wZXJhdGlvbkhhbmRsZTsKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5tayBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDk4NjY0Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gVnRzSGFsS2V5bWFzdGVyVjNfMFRhcmdldFRlc3QKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgICAgIGF1dGhvcml6YXRpb25fc2V0LmNwcCBcCisgICAgICAgIGF0dGVzdGF0aW9uX3JlY29yZC5jcHAgXAorICAgICAgICBrZXlfcGFyYW1fb3V0cHV0LmNwcCBcCisgICAgICAgIGtleW1hc3Rlcl9oaWRsX2hhbF90ZXN0LmNwcCBcCisgICAgICAgIGtleXN0b3JlX3RhZ3NfdXRpbHMuY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMCBcCisgICAgICAgIGxpYmNyeXB0byBcCisgICAgICAgIGxpYmhpZGxiYXNlIFwKKyAgICAgICAgbGlibG9nIFwKKyAgICAgICAgbGlic29mdGtleW1hc3RlcmRldmljZSBcCisgICAgICAgIGxpYnV0aWxzIFwKKworTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBcCisgICAgICAgIFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSBcCisKK0xPQ0FMX0NGTEFHUyA6PSAtV2FsbCAtV2Vycm9yCisKK2luY2x1ZGUgJChCVUlMRF9OQVRJVkVfVEVTVCkKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXR0ZXN0YXRpb25fcmVjb3JkLmNwcCBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXR0ZXN0YXRpb25fcmVjb3JkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDk2ZmZmCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdHRlc3RhdGlvbl9yZWNvcmQuY3BwCkBAIC0wLDAgKzEsMjkxIEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiYXR0ZXN0YXRpb25fcmVjb3JkLmgiCisKKyNpbmNsdWRlIDxhc3NlcnQuaD4KKworI2luY2x1ZGUgPG9wZW5zc2wvYXNuMXQuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL3g1MDkuaD4KKworI2luY2x1ZGUgIm9wZW5zc2xfdXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCitzdHJ1Y3Qgc3RhY2tfc3RfQVNOMV9UWVBFX0RlbGV0ZSB7CisgICAgdm9pZCBvcGVyYXRvcigpKHN0YWNrX3N0X0FTTjFfVFlQRSogcCkgeyBza19BU04xX1RZUEVfZnJlZShwKTsgfQorfTsKKworc3RydWN0IEFTTjFfU1RSSU5HX0RlbGV0ZSB7CisgICAgdm9pZCBvcGVyYXRvcigpKEFTTjFfU1RSSU5HKiBwKSB7IEFTTjFfU1RSSU5HX2ZyZWUocCk7IH0KK307CisKK3N0cnVjdCBBU04xX1RZUEVfRGVsZXRlIHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoQVNOMV9UWVBFKiBwKSB7IEFTTjFfVFlQRV9mcmVlKHApOyB9Cit9OworCisjZGVmaW5lIEFTTjFfSU5URUdFUl9TRVQgU1RBQ0tfT0YoQVNOMV9JTlRFR0VSKQorCit0eXBlZGVmIHN0cnVjdCBrbV9yb290X29mX3RydXN0IHsKKyAgICBBU04xX09DVEVUX1NUUklORyogdmVyaWZpZWRfYm9vdF9rZXk7CisgICAgQVNOMV9CT09MRUFOKiBkZXZpY2VfbG9ja2VkOworICAgIEFTTjFfRU5VTUVSQVRFRCogdmVyaWZpZWRfYm9vdF9zdGF0ZTsKK30gS01fUk9PVF9PRl9UUlVTVDsKKworQVNOMV9TRVFVRU5DRShLTV9ST09UX09GX1RSVVNUKSA9IHsKKyAgICBBU04xX1NJTVBMRShLTV9ST09UX09GX1RSVVNULCB2ZXJpZmllZF9ib290X2tleSwgQVNOMV9PQ1RFVF9TVFJJTkcpLAorICAgIEFTTjFfU0lNUExFKEtNX1JPT1RfT0ZfVFJVU1QsIGRldmljZV9sb2NrZWQsIEFTTjFfQk9PTEVBTiksCisgICAgQVNOMV9TSU1QTEUoS01fUk9PVF9PRl9UUlVTVCwgdmVyaWZpZWRfYm9vdF9zdGF0ZSwgQVNOMV9FTlVNRVJBVEVEKSwKK30gQVNOMV9TRVFVRU5DRV9FTkQoS01fUk9PVF9PRl9UUlVTVCk7CitJTVBMRU1FTlRfQVNOMV9GVU5DVElPTlMoS01fUk9PVF9PRl9UUlVTVCk7CisKK3R5cGVkZWYgc3RydWN0IGttX2F1dGhfbGlzdCB7CisgICAgQVNOMV9JTlRFR0VSX1NFVCogcHVycG9zZTsKKyAgICBBU04xX0lOVEVHRVIqIGFsZ29yaXRobTsKKyAgICBBU04xX0lOVEVHRVIqIGtleV9zaXplOworICAgIEFTTjFfSU5URUdFUl9TRVQqIGRpZ2VzdDsKKyAgICBBU04xX0lOVEVHRVJfU0VUKiBwYWRkaW5nOworICAgIEFTTjFfSU5URUdFUl9TRVQqIGtkZjsKKyAgICBBU04xX0lOVEVHRVIqIGVjX2N1cnZlOworICAgIEFTTjFfSU5URUdFUiogcnNhX3B1YmxpY19leHBvbmVudDsKKyAgICBBU04xX0lOVEVHRVIqIGFjdGl2ZV9kYXRlX3RpbWU7CisgICAgQVNOMV9JTlRFR0VSKiBvcmlnaW5hdGlvbl9leHBpcmVfZGF0ZV90aW1lOworICAgIEFTTjFfSU5URUdFUiogdXNhZ2VfZXhwaXJlX2RhdGVfdGltZTsKKyAgICBBU04xX05VTEwqIG5vX2F1dGhfcmVxdWlyZWQ7CisgICAgQVNOMV9JTlRFR0VSKiB1c2VyX2F1dGhfdHlwZTsKKyAgICBBU04xX0lOVEVHRVIqIGF1dGhfdGltZW91dDsKKyAgICBBU04xX05VTEwqIGFsbG93X3doaWxlX29uX2JvZHk7CisgICAgQVNOMV9OVUxMKiBhbGxfYXBwbGljYXRpb25zOworICAgIEFTTjFfT0NURVRfU1RSSU5HKiBhcHBsaWNhdGlvbl9pZDsKKyAgICBBU04xX0lOVEVHRVIqIGNyZWF0aW9uX2RhdGVfdGltZTsKKyAgICBBU04xX0lOVEVHRVIqIG9yaWdpbjsKKyAgICBBU04xX05VTEwqIHJvbGxiYWNrX3Jlc2lzdGFudDsKKyAgICBLTV9ST09UX09GX1RSVVNUKiByb290X29mX3RydXN0OworICAgIEFTTjFfSU5URUdFUiogb3NfdmVyc2lvbjsKKyAgICBBU04xX0lOVEVHRVIqIG9zX3BhdGNobGV2ZWw7CisgICAgQVNOMV9PQ1RFVF9TVFJJTkcqIGF0dGVzdGF0aW9uX2FwcGxpY2F0aW9uX2lkOworfSBLTV9BVVRIX0xJU1Q7CisKK0FTTjFfU0VRVUVOQ0UoS01fQVVUSF9MSVNUKSA9IHsKKyAgICBBU04xX0VYUF9TRVRfT0ZfT1BUKEtNX0FVVEhfTElTVCwgcHVycG9zZSwgQVNOMV9JTlRFR0VSLCBUQUdfUFVSUE9TRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgYWxnb3JpdGhtLCBBU04xX0lOVEVHRVIsIFRBR19BTEdPUklUSE0ubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGtleV9zaXplLCBBU04xX0lOVEVHRVIsIFRBR19LRVlfU0laRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfU0VUX09GX09QVChLTV9BVVRIX0xJU1QsIGRpZ2VzdCwgQVNOMV9JTlRFR0VSLCBUQUdfRElHRVNULm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9TRVRfT0ZfT1BUKEtNX0FVVEhfTElTVCwgcGFkZGluZywgQVNOMV9JTlRFR0VSLCBUQUdfUEFERElORy5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfU0VUX09GX09QVChLTV9BVVRIX0xJU1QsIGtkZiwgQVNOMV9JTlRFR0VSLCBUQUdfS0RGLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBlY19jdXJ2ZSwgQVNOMV9JTlRFR0VSLCBUQUdfRUNfQ1VSVkUubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIHJzYV9wdWJsaWNfZXhwb25lbnQsIEFTTjFfSU5URUdFUiwKKyAgICAgICAgICAgICAgICAgVEFHX1JTQV9QVUJMSUNfRVhQT05FTlQubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFjdGl2ZV9kYXRlX3RpbWUsIEFTTjFfSU5URUdFUiwgVEFHX0FDVElWRV9EQVRFVElNRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgb3JpZ2luYXRpb25fZXhwaXJlX2RhdGVfdGltZSwgQVNOMV9JTlRFR0VSLAorICAgICAgICAgICAgICAgICBUQUdfT1JJR0lOQVRJT05fRVhQSVJFX0RBVEVUSU1FLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCB1c2FnZV9leHBpcmVfZGF0ZV90aW1lLCBBU04xX0lOVEVHRVIsCisgICAgICAgICAgICAgICAgIFRBR19VU0FHRV9FWFBJUkVfREFURVRJTUUubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIG5vX2F1dGhfcmVxdWlyZWQsIEFTTjFfTlVMTCwgVEFHX05PX0FVVEhfUkVRVUlSRUQubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIHVzZXJfYXV0aF90eXBlLCBBU04xX0lOVEVHRVIsIFRBR19VU0VSX0FVVEhfVFlQRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgYXV0aF90aW1lb3V0LCBBU04xX0lOVEVHRVIsIFRBR19BVVRIX1RJTUVPVVQubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFsbG93X3doaWxlX29uX2JvZHksIEFTTjFfTlVMTCwgVEFHX0FMTE9XX1dISUxFX09OX0JPRFkubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFsbF9hcHBsaWNhdGlvbnMsIEFTTjFfTlVMTCwgVEFHX0FMTF9BUFBMSUNBVElPTlMubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFwcGxpY2F0aW9uX2lkLCBBU04xX09DVEVUX1NUUklORywgVEFHX0FQUExJQ0FUSU9OX0lELm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBjcmVhdGlvbl9kYXRlX3RpbWUsIEFTTjFfSU5URUdFUiwgVEFHX0NSRUFUSU9OX0RBVEVUSU1FLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBvcmlnaW4sIEFTTjFfSU5URUdFUiwgVEFHX09SSUdJTi5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgcm9sbGJhY2tfcmVzaXN0YW50LCBBU04xX05VTEwsIFRBR19ST0xMQkFDS19SRVNJU1RBTlQubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIHJvb3Rfb2ZfdHJ1c3QsIEtNX1JPT1RfT0ZfVFJVU1QsIFRBR19ST09UX09GX1RSVVNULm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBvc192ZXJzaW9uLCBBU04xX0lOVEVHRVIsIFRBR19PU19WRVJTSU9OLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBvc19wYXRjaGxldmVsLCBBU04xX0lOVEVHRVIsIFRBR19PU19QQVRDSExFVkVMLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBhdHRlc3RhdGlvbl9hcHBsaWNhdGlvbl9pZCwgQVNOMV9PQ1RFVF9TVFJJTkcsCisgICAgICAgICAgICAgICAgIFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRC5tYXNrZWRUYWcoKSksCit9IEFTTjFfU0VRVUVOQ0VfRU5EKEtNX0FVVEhfTElTVCk7CitJTVBMRU1FTlRfQVNOMV9GVU5DVElPTlMoS01fQVVUSF9MSVNUKTsKKwordHlwZWRlZiBzdHJ1Y3Qga21fa2V5X2Rlc2NyaXB0aW9uIHsKKyAgICBBU04xX0lOVEVHRVIqIGF0dGVzdGF0aW9uX3ZlcnNpb247CisgICAgQVNOMV9FTlVNRVJBVEVEKiBhdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbDsKKyAgICBBU04xX0lOVEVHRVIqIGtleW1hc3Rlcl92ZXJzaW9uOworICAgIEFTTjFfRU5VTUVSQVRFRCoga2V5bWFzdGVyX3NlY3VyaXR5X2xldmVsOworICAgIEFTTjFfT0NURVRfU1RSSU5HKiBhdHRlc3RhdGlvbl9jaGFsbGVuZ2U7CisgICAgS01fQVVUSF9MSVNUKiBzb2Z0d2FyZV9lbmZvcmNlZDsKKyAgICBLTV9BVVRIX0xJU1QqIHRlZV9lbmZvcmNlZDsKKyAgICBBU04xX0lOVEVHRVIqIHVuaXF1ZV9pZDsKK30gS01fS0VZX0RFU0NSSVBUSU9OOworCitBU04xX1NFUVVFTkNFKEtNX0tFWV9ERVNDUklQVElPTikgPSB7CisgICAgQVNOMV9TSU1QTEUoS01fS0VZX0RFU0NSSVBUSU9OLCBhdHRlc3RhdGlvbl92ZXJzaW9uLCBBU04xX0lOVEVHRVIpLAorICAgIEFTTjFfU0lNUExFKEtNX0tFWV9ERVNDUklQVElPTiwgYXR0ZXN0YXRpb25fc2VjdXJpdHlfbGV2ZWwsIEFTTjFfRU5VTUVSQVRFRCksCisgICAgQVNOMV9TSU1QTEUoS01fS0VZX0RFU0NSSVBUSU9OLCBrZXltYXN0ZXJfdmVyc2lvbiwgQVNOMV9JTlRFR0VSKSwKKyAgICBBU04xX1NJTVBMRShLTV9LRVlfREVTQ1JJUFRJT04sIGtleW1hc3Rlcl9zZWN1cml0eV9sZXZlbCwgQVNOMV9FTlVNRVJBVEVEKSwKKyAgICBBU04xX1NJTVBMRShLTV9LRVlfREVTQ1JJUFRJT04sIGF0dGVzdGF0aW9uX2NoYWxsZW5nZSwgQVNOMV9PQ1RFVF9TVFJJTkcpLAorICAgIEFTTjFfU0lNUExFKEtNX0tFWV9ERVNDUklQVElPTiwgdW5pcXVlX2lkLCBBU04xX09DVEVUX1NUUklORyksCisgICAgQVNOMV9TSU1QTEUoS01fS0VZX0RFU0NSSVBUSU9OLCBzb2Z0d2FyZV9lbmZvcmNlZCwgS01fQVVUSF9MSVNUKSwKKyAgICBBU04xX1NJTVBMRShLTV9LRVlfREVTQ1JJUFRJT04sIHRlZV9lbmZvcmNlZCwgS01fQVVUSF9MSVNUKSwKK30gQVNOMV9TRVFVRU5DRV9FTkQoS01fS0VZX0RFU0NSSVBUSU9OKTsKK0lNUExFTUVOVF9BU04xX0ZVTkNUSU9OUyhLTV9LRVlfREVTQ1JJUFRJT04pOworCit0ZW1wbGF0ZSA8VGFnIHRhZz4KK3ZvaWQgY29weUF1dGhUYWcoY29uc3Qgc3RhY2tfc3RfQVNOMV9JTlRFR0VSKiBzdGFjaywgVHlwZWRUYWc8VGFnVHlwZTo6RU5VTV9SRVAsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUeXBlZFRhZzJWYWx1ZVR5cGU8ZGVjbHR5cGUodHRhZyk+Ojp0eXBlIFZhbHVlVDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNrX0FTTjFfSU5URUdFUl9udW0oc3RhY2spOyArK2kpIHsKKyAgICAgICAgYXV0aF9saXN0LT5wdXNoX2JhY2soCisgICAgICAgICAgICB0dGFnLCBzdGF0aWNfY2FzdDxWYWx1ZVQ+KEFTTjFfSU5URUdFUl9nZXQoc2tfQVNOMV9JTlRFR0VSX3ZhbHVlKHN0YWNrLCBpKSkpKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlIDxUYWcgdGFnPgordm9pZCBjb3B5QXV0aFRhZyhjb25zdCBBU04xX0lOVEVHRVIqIGFzbjFfaW50LCBUeXBlZFRhZzxUYWdUeXBlOjpFTlVNLCB0YWc+IHR0YWcsCisgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIGF1dGhfbGlzdCkgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVHlwZWRUYWcyVmFsdWVUeXBlPGRlY2x0eXBlKHR0YWcpPjo6dHlwZSBWYWx1ZVQ7CisgICAgaWYgKCFhc24xX2ludCkgcmV0dXJuOworICAgIGF1dGhfbGlzdC0+cHVzaF9iYWNrKHR0YWcsIHN0YXRpY19jYXN0PFZhbHVlVD4oQVNOMV9JTlRFR0VSX2dldChhc24xX2ludCkpKTsKK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfSU5URUdFUiogYXNuMV9pbnQsIFR5cGVkVGFnPFRhZ1R5cGU6OlVJTlQsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFhc24xX2ludCkgcmV0dXJuOworICAgIGF1dGhfbGlzdC0+cHVzaF9iYWNrKHR0YWcsIEFTTjFfSU5URUdFUl9nZXQoYXNuMV9pbnQpKTsKK30KKworQklHTlVNKiBjb25zdHJ1Y3RfdWludF9tYXgoKSB7CisgICAgQklHTlVNKiB2YWx1ZSA9IEJOX25ldygpOworICAgIEJJR05VTV9QdHIgb25lKEJOX25ldygpKTsKKyAgICBCTl9vbmUob25lLmdldCgpKTsKKyAgICBCTl9sc2hpZnQodmFsdWUsIG9uZS5nZXQoKSwgMzIpOworICAgIHJldHVybiB2YWx1ZTsKK30KKwordWludDY0X3QgQmlnbnVtVG9VaW50NjQoQklHTlVNKiBudW0pIHsKKyAgICBzdGF0aWNfYXNzZXJ0KChzaXplb2YoQk5fVUxPTkcpID09IHNpemVvZih1aW50MzJfdCkpIHx8IChzaXplb2YoQk5fVUxPTkcpID09IHNpemVvZih1aW50NjRfdCkpLAorICAgICAgICAgICAgICAgICAgIlRoaXMgaW1wbGVtZW50YXRpb24gb25seSBzdXBwb3J0cyAzMiBhbmQgNjQtYml0IEJOX1VMT05HIik7CisgICAgaWYgKHNpemVvZihCTl9VTE9ORykgPT0gc2l6ZW9mKHVpbnQzMl90KSkgeworICAgICAgICBCSUdOVU1fUHRyIHVpbnRfbWF4KGNvbnN0cnVjdF91aW50X21heCgpKTsKKyAgICAgICAgQklHTlVNX1B0ciBoaShCTl9uZXcoKSksIGxvKEJOX25ldygpKTsKKyAgICAgICAgQk5fQ1RYX1B0ciBjdHgoQk5fQ1RYX25ldygpKTsKKyAgICAgICAgQk5fZGl2KGhpLmdldCgpLCBsby5nZXQoKSwgbnVtLCB1aW50X21heC5nZXQoKSwgY3R4LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PihCTl9nZXRfd29yZChoaS5nZXQoKSkpIDw8IDMyIHwgQk5fZ2V0X3dvcmQobG8uZ2V0KCkpOworICAgIH0gZWxzZSBpZiAoc2l6ZW9mKEJOX1VMT05HKSA9PSBzaXplb2YodWludDY0X3QpKSB7CisgICAgICAgIHJldHVybiBCTl9nZXRfd29yZChudW0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfSU5URUdFUiogYXNuMV9pbnQsIFR5cGVkVGFnPFRhZ1R5cGU6OlVMT05HLCB0YWc+IHR0YWcsCisgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIGF1dGhfbGlzdCkgeworICAgIGlmICghYXNuMV9pbnQpIHJldHVybjsKKyAgICBCSUdOVU1fUHRyIG51bShBU04xX0lOVEVHRVJfdG9fQk4oYXNuMV9pbnQsIG51bGxwdHIpKTsKKyAgICBhdXRoX2xpc3QtPnB1c2hfYmFjayh0dGFnLCBCaWdudW1Ub1VpbnQ2NChudW0uZ2V0KCkpKTsKK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfSU5URUdFUiogYXNuMV9pbnQsIFR5cGVkVGFnPFRhZ1R5cGU6OkRBVEUsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFhc24xX2ludCkgcmV0dXJuOworICAgIEJJR05VTV9QdHIgbnVtKEFTTjFfSU5URUdFUl90b19CTihhc24xX2ludCwgbnVsbHB0cikpOworICAgIGF1dGhfbGlzdC0+cHVzaF9iYWNrKHR0YWcsIEJpZ251bVRvVWludDY0KG51bS5nZXQoKSkpOworfQorCit0ZW1wbGF0ZSA8VGFnIHRhZz4KK3ZvaWQgY29weUF1dGhUYWcoY29uc3QgQVNOMV9OVUxMKiBhc24xX251bGwsIFR5cGVkVGFnPFRhZ1R5cGU6OkJPT0wsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFhc24xX251bGwpIHJldHVybjsKKyAgICBhdXRoX2xpc3QtPnB1c2hfYmFjayh0dGFnKTsKK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfT0NURVRfU1RSSU5HKiBhc24xX3N0cmluZywgVHlwZWRUYWc8VGFnVHlwZTo6QllURVMsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFhc24xX3N0cmluZykgcmV0dXJuOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGJ1ZjsKKyAgICBidWYuc2V0VG9FeHRlcm5hbChhc24xX3N0cmluZy0+ZGF0YSwgYXNuMV9zdHJpbmctPmxlbmd0aCk7CisgICAgYXV0aF9saXN0LT5wdXNoX2JhY2sodHRhZywgYnVmKTsKK30KKworLy8gRXh0cmFjdCB0aGUgdmFsdWVzIGZyb20gdGhlIHNwZWNpZmllZCBBU04uMSByZWNvcmQgYW5kIHBsYWNlIHRoZW0gaW4gYXV0aF9saXN0Lgorc3RhdGljIEVycm9yQ29kZSBleHRyYWN0X2F1dGhfbGlzdChjb25zdCBLTV9BVVRIX0xJU1QqIHJlY29yZCwgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFyZWNvcmQpIHJldHVybiBFcnJvckNvZGU6Ok9LOworCisgICAgY29weUF1dGhUYWcocmVjb3JkLT5hY3RpdmVfZGF0ZV90aW1lLCBUQUdfQUNUSVZFX0RBVEVUSU1FLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+YWxnb3JpdGhtLCBUQUdfQUxHT1JJVEhNLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+YWxsX2FwcGxpY2F0aW9ucywgVEFHX0FMTF9BUFBMSUNBVElPTlMsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5hcHBsaWNhdGlvbl9pZCwgVEFHX0FQUExJQ0FUSU9OX0lELCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+YXV0aF90aW1lb3V0LCBUQUdfQVVUSF9USU1FT1VULCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+Y3JlYXRpb25fZGF0ZV90aW1lLCBUQUdfQ1JFQVRJT05fREFURVRJTUUsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5kaWdlc3QsIFRBR19ESUdFU1QsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5lY19jdXJ2ZSwgVEFHX0VDX0NVUlZFLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+a2V5X3NpemUsIFRBR19LRVlfU0laRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPm5vX2F1dGhfcmVxdWlyZWQsIFRBR19OT19BVVRIX1JFUVVJUkVELCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+b3JpZ2luLCBUQUdfT1JJR0lOLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+b3JpZ2luYXRpb25fZXhwaXJlX2RhdGVfdGltZSwgVEFHX09SSUdJTkFUSU9OX0VYUElSRV9EQVRFVElNRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPm9zX3BhdGNobGV2ZWwsIFRBR19PU19QQVRDSExFVkVMLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+b3NfdmVyc2lvbiwgVEFHX09TX1ZFUlNJT04sIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5wYWRkaW5nLCBUQUdfUEFERElORywgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPnB1cnBvc2UsIFRBR19QVVJQT1NFLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+cm9sbGJhY2tfcmVzaXN0YW50LCBUQUdfUk9MTEJBQ0tfUkVTSVNUQU5ULCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+cnNhX3B1YmxpY19leHBvbmVudCwgVEFHX1JTQV9QVUJMSUNfRVhQT05FTlQsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT51c2FnZV9leHBpcmVfZGF0ZV90aW1lLCBUQUdfVVNBR0VfRVhQSVJFX0RBVEVUSU1FLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+dXNlcl9hdXRoX3R5cGUsIFRBR19VU0VSX0FVVEhfVFlQRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPmF0dGVzdGF0aW9uX2FwcGxpY2F0aW9uX2lkLAorICAgICAgICAgICAgICAgIFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwgYXV0aF9saXN0KTsKKworICAgIHJldHVybiBFcnJvckNvZGU6Ok9LOworfQorCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoS01fS0VZX0RFU0NSSVBUSU9OKQorCisvLyBQYXJzZSB0aGUgREVSLWVuY29kZWQgYXR0ZXN0YXRpb24gcmVjb3JkLCBwbGFjaW5nIHRoZSByZXN1bHRzIGluIGtleW1hc3Rlcl92ZXJzaW9uLAorLy8gYXR0ZXN0YXRpb25fY2hhbGxlbmdlLCBzb2Z0d2FyZV9lbmZvcmNlZCwgdGVlX2VuZm9yY2VkIGFuZCB1bmlxdWVfaWQuCitFcnJvckNvZGUgcGFyc2VfYXR0ZXN0YXRpb25fcmVjb3JkKGNvbnN0IHVpbnQ4X3QqIGFzbjFfa2V5X2Rlc2MsIHNpemVfdCBhc24xX2tleV9kZXNjX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGF0dGVzdGF0aW9uX3ZlcnNpb24sICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eUxldmVsKiBhdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGtleW1hc3Rlcl92ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eUxldmVsKiBrZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+KiBhdHRlc3RhdGlvbl9jaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIHNvZnR3YXJlX2VuZm9yY2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiB0ZWVfZW5mb3JjZWQsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiogdW5pcXVlX2lkKSB7CisgICAgY29uc3QgdWludDhfdCogcCA9IGFzbjFfa2V5X2Rlc2M7CisgICAgS01fS0VZX0RFU0NSSVBUSU9OX1B0ciByZWNvcmQoZDJpX0tNX0tFWV9ERVNDUklQVElPTihudWxscHRyLCAmcCwgYXNuMV9rZXlfZGVzY19sZW4pKTsKKyAgICBpZiAoIXJlY29yZC5nZXQoKSkgcmV0dXJuIEVycm9yQ29kZTo6VU5LTk9XTl9FUlJPUjsKKworICAgICphdHRlc3RhdGlvbl92ZXJzaW9uID0gQVNOMV9JTlRFR0VSX2dldChyZWNvcmQtPmF0dGVzdGF0aW9uX3ZlcnNpb24pOworICAgICphdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCA9CisgICAgICAgIHN0YXRpY19jYXN0PFNlY3VyaXR5TGV2ZWw+KEFTTjFfRU5VTUVSQVRFRF9nZXQocmVjb3JkLT5hdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCkpOworICAgICprZXltYXN0ZXJfdmVyc2lvbiA9IEFTTjFfSU5URUdFUl9nZXQocmVjb3JkLT5rZXltYXN0ZXJfdmVyc2lvbik7CisgICAgKmtleW1hc3Rlcl9zZWN1cml0eV9sZXZlbCA9CisgICAgICAgIHN0YXRpY19jYXN0PFNlY3VyaXR5TGV2ZWw+KEFTTjFfRU5VTUVSQVRFRF9nZXQocmVjb3JkLT5rZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwpKTsKKworICAgIGF0dGVzdGF0aW9uX2NoYWxsZW5nZS0+c2V0VG9FeHRlcm5hbChyZWNvcmQtPmF0dGVzdGF0aW9uX2NoYWxsZW5nZS0+ZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLT5hdHRlc3RhdGlvbl9jaGFsbGVuZ2UtPmxlbmd0aCk7CisKKyAgICB1bmlxdWVfaWQtPnNldFRvRXh0ZXJuYWwocmVjb3JkLT51bmlxdWVfaWQtPmRhdGEsIHJlY29yZC0+dW5pcXVlX2lkLT5sZW5ndGgpOworCisgICAgRXJyb3JDb2RlIGVycm9yID0gZXh0cmFjdF9hdXRoX2xpc3QocmVjb3JkLT5zb2Z0d2FyZV9lbmZvcmNlZCwgc29mdHdhcmVfZW5mb3JjZWQpOworICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSByZXR1cm4gZXJyb3I7CisKKyAgICByZXR1cm4gZXh0cmFjdF9hdXRoX2xpc3QocmVjb3JkLT50ZWVfZW5mb3JjZWQsIHRlZV9lbmZvcmNlZCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWM18wCit9ICAvLyBuYW1lc3BhY2Uga2V5bWFzdGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F0dGVzdGF0aW9uX3JlY29yZC5oIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdHRlc3RhdGlvbl9yZWNvcmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDQyMDU1Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdHRlc3RhdGlvbl9yZWNvcmQuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEhBUkRXQVJFX0lOVEVSRkFDRVNfS0VZTUFTVEVSXzMwX1ZUU19GVU5DVElPTkFMX0FUVEVTVEFUSU9OX1JFQ09SRF9IXworI2RlZmluZSBIQVJEV0FSRV9JTlRFUkZBQ0VTX0tFWU1BU1RFUl8zMF9WVFNfRlVOQ1RJT05BTF9BVFRFU1RBVElPTl9SRUNPUkRfSF8KKworI2luY2x1ZGUgImF1dGhvcml6YXRpb25fc2V0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKworLyoqCisgKiBUaGUgT0lEIGZvciBBbmRyb2lkIGF0dGVzdGF0aW9uIHJlY29yZHMuICBGb3IgdGhlIGN1cmlvdXMsIGl0IGJyZWFrcyBkb3duIGFzIGZvbGxvd3M6CisgKgorICogMSA9IElTTworICogMyA9IG9yZworICogNiA9IERvRCAoSHVoPyBPSURzIGFyZSB3ZWlyZC4pCisgKiAxID0gSUFOQQorICogNCA9IFByaXZhdGUKKyAqIDEgPSBFbnRlcnByaXNlcworICogMTExMjkgPSBHb29nbGUKKyAqIDIgPSBHb29nbGUgc2VjdXJpdHkKKyAqIDEgPSBjZXJ0aWZpY2F0ZSBleHRlbnNpb24KKyAqIDE3ID0gQW5kcm9pZCBhdHRlc3RhdGlvbiBleHRlbnNpb24uCisgKi8KK3N0YXRpYyBjb25zdCBjaGFyIGtBdHRlc3Rpb25SZWNvcmRPaWRbXSA9ICIxLjMuNi4xLjQuMS4xMTEyOS4yLjEuMTciOworCitFcnJvckNvZGUgcGFyc2VfYXR0ZXN0YXRpb25fcmVjb3JkKGNvbnN0IHVpbnQ4X3QqIGFzbjFfa2V5X2Rlc2MsIHNpemVfdCBhc24xX2tleV9kZXNjX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGF0dGVzdGF0aW9uX3ZlcnNpb24sICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eUxldmVsKiBhdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGtleW1hc3Rlcl92ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eUxldmVsKiBrZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+KiBhdHRlc3RhdGlvbl9jaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIHNvZnR3YXJlX2VuZm9yY2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiB0ZWVfZW5mb3JjZWQsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiogdW5pcXVlX2lkKTsKK30gIC8vIG5hbWVzcGFjZSBWM18wCit9ICAvLyBuYW1lc3BhY2Uga2V5bWFzdGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gSEFSRFdBUkVfSU5URVJGQUNFU19LRVlNQVNURVJfMzBfVlRTX0ZVTkNUSU9OQUxfQVRURVNUQVRJT05fUkVDT1JEX0hfCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmNwcCBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXV0aG9yaXphdGlvbl9zZXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwM2Y3ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmNwcApAQCAtMCwwICsxLDQyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJhdXRob3JpemF0aW9uX3NldC5oIgorCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8aXN0cmVhbT4KKyNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8b3N0cmVhbT4KKyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPG5ldz4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCitpbmxpbmUgYm9vbCBrZXlQYXJhbUxlc3MoY29uc3QgS2V5UGFyYW1ldGVyJiBhLCBjb25zdCBLZXlQYXJhbWV0ZXImIGIpIHsKKyAgICBpZiAoYS50YWcgIT0gYi50YWcpIHJldHVybiBhLnRhZyA8IGIudGFnOworICAgIGludCByZXR2YWw7CisgICAgc3dpdGNoICh0eXBlRnJvbVRhZyhhLnRhZykpIHsKKyAgICBjYXNlIFRhZ1R5cGU6OklOVkFMSUQ6CisgICAgY2FzZSBUYWdUeXBlOjpCT09MOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBUYWdUeXBlOjpFTlVNOgorICAgIGNhc2UgVGFnVHlwZTo6RU5VTV9SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpVSU5UOgorICAgIGNhc2UgVGFnVHlwZTo6VUlOVF9SRVA6CisgICAgICAgIHJldHVybiBhLmYuaW50ZWdlciA8IGIuZi5pbnRlZ2VyOworICAgIGNhc2UgVGFnVHlwZTo6VUxPTkc6CisgICAgY2FzZSBUYWdUeXBlOjpVTE9OR19SRVA6CisgICAgICAgIHJldHVybiBhLmYubG9uZ0ludGVnZXIgPCBiLmYubG9uZ0ludGVnZXI7CisgICAgY2FzZSBUYWdUeXBlOjpEQVRFOgorICAgICAgICByZXR1cm4gYS5mLmRhdGVUaW1lIDwgYi5mLmRhdGVUaW1lOworICAgIGNhc2UgVGFnVHlwZTo6QklHTlVNOgorICAgIGNhc2UgVGFnVHlwZTo6QllURVM6CisgICAgICAgIC8vIEhhbmRsZSB0aGUgZW1wdHkgY2FzZXMuCisgICAgICAgIGlmIChhLmJsb2Iuc2l6ZSgpID09IDApIHJldHVybiBiLmJsb2Iuc2l6ZSgpICE9IDA7CisgICAgICAgIGlmIChiLmJsb2Iuc2l6ZSgpID09IDApIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR2YWwgPSBtZW1jbXAoJmEuYmxvYlswXSwgJmIuYmxvYlswXSwgc3RkOjptaW4oYS5ibG9iLnNpemUoKSwgYi5ibG9iLnNpemUoKSkpOworICAgICAgICBpZiAocmV0dmFsID09IDApIHsKKyAgICAgICAgICAgIC8vIE9uZSBpcyB0aGUgcHJlZml4IG9mIHRoZSBvdGhlciwgc28gdGhlIGxvbmdlciB3aW5zCisgICAgICAgICAgICByZXR1cm4gYS5ibG9iLnNpemUoKSA8IGIuYmxvYi5zaXplKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gcmV0dmFsIDwgMDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lubGluZSBib29sIGtleVBhcmFtRXF1YWwoY29uc3QgS2V5UGFyYW1ldGVyJiBhLCBjb25zdCBLZXlQYXJhbWV0ZXImIGIpIHsKKyAgICBpZiAoYS50YWcgIT0gYi50YWcpIHJldHVybiBmYWxzZTsKKworICAgIHN3aXRjaCAodHlwZUZyb21UYWcoYS50YWcpKSB7CisgICAgY2FzZSBUYWdUeXBlOjpJTlZBTElEOgorICAgIGNhc2UgVGFnVHlwZTo6Qk9PTDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBUYWdUeXBlOjpFTlVNOgorICAgIGNhc2UgVGFnVHlwZTo6RU5VTV9SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpVSU5UOgorICAgIGNhc2UgVGFnVHlwZTo6VUlOVF9SRVA6CisgICAgICAgIHJldHVybiBhLmYuaW50ZWdlciA9PSBiLmYuaW50ZWdlcjsKKyAgICBjYXNlIFRhZ1R5cGU6OlVMT05HOgorICAgIGNhc2UgVGFnVHlwZTo6VUxPTkdfUkVQOgorICAgICAgICByZXR1cm4gYS5mLmxvbmdJbnRlZ2VyID09IGIuZi5sb25nSW50ZWdlcjsKKyAgICBjYXNlIFRhZ1R5cGU6OkRBVEU6CisgICAgICAgIHJldHVybiBhLmYuZGF0ZVRpbWUgPT0gYi5mLmRhdGVUaW1lOworICAgIGNhc2UgVGFnVHlwZTo6QklHTlVNOgorICAgIGNhc2UgVGFnVHlwZTo6QllURVM6CisgICAgICAgIGlmIChhLmJsb2Iuc2l6ZSgpICE9IGIuYmxvYi5zaXplKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGEuYmxvYi5zaXplKCkgPT0gMCB8fCBtZW1jbXAoJmEuYmxvYlswXSwgJmIuYmxvYlswXSwgYS5ibG9iLnNpemUoKSkgPT0gMDsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OlNvcnQoKSB7CisgICAgc3RkOjpzb3J0KGRhdGFfLmJlZ2luKCksIGRhdGFfLmVuZCgpLCBrZXlQYXJhbUxlc3MpOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OkRlZHVwbGljYXRlKCkgeworICAgIGlmIChkYXRhXy5lbXB0eSgpKSByZXR1cm47CisKKyAgICBTb3J0KCk7CisgICAgc3RkOjp2ZWN0b3I8S2V5UGFyYW1ldGVyPiByZXN1bHQ7CisKKyAgICBhdXRvIGN1cnIgPSBkYXRhXy5iZWdpbigpOworICAgIGF1dG8gcHJldiA9IGN1cnIrKzsKKyAgICBmb3IgKDsgY3VyciAhPSBkYXRhXy5lbmQoKTsgKytwcmV2LCArK2N1cnIpIHsKKyAgICAgICAgaWYgKHByZXYtPnRhZyA9PSBUYWc6OklOVkFMSUQpIGNvbnRpbnVlOworCisgICAgICAgIGlmICgha2V5UGFyYW1FcXVhbCgqcHJldiwgKmN1cnIpKSB7CisgICAgICAgICAgICByZXN1bHQuZW1wbGFjZV9iYWNrKHN0ZDo6bW92ZSgqcHJldikpOworICAgICAgICB9CisgICAgfQorICAgIHJlc3VsdC5lbXBsYWNlX2JhY2soc3RkOjptb3ZlKCpwcmV2KSk7CisKKyAgICBzdGQ6OnN3YXAoZGF0YV8sIHJlc3VsdCk7Cit9CisKK3ZvaWQgQXV0aG9yaXphdGlvblNldDo6VW5pb24oY29uc3QgQXV0aG9yaXphdGlvblNldCYgb3RoZXIpIHsKKyAgICBkYXRhXy5pbnNlcnQoZGF0YV8uZW5kKCksIG90aGVyLmRhdGFfLmJlZ2luKCksIG90aGVyLmRhdGFfLmVuZCgpKTsKKyAgICBEZWR1cGxpY2F0ZSgpOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OlN1YnRyYWN0KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIG90aGVyKSB7CisgICAgRGVkdXBsaWNhdGUoKTsKKworICAgIGF1dG8gaSA9IG90aGVyLmJlZ2luKCk7CisgICAgd2hpbGUgKGkgIT0gb3RoZXIuZW5kKCkpIHsKKyAgICAgICAgaW50IHBvcyA9IC0xOworICAgICAgICBkbyB7CisgICAgICAgICAgICBwb3MgPSBmaW5kKGktPnRhZywgcG9zKTsKKyAgICAgICAgICAgIGlmIChwb3MgIT0gLTEgJiYga2V5UGFyYW1FcXVhbCgqaSwgZGF0YV9bcG9zXSkpIHsKKyAgICAgICAgICAgICAgICBkYXRhXy5lcmFzZShkYXRhXy5iZWdpbigpICsgcG9zKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSAocG9zICE9IC0xKTsKKyAgICAgICAgKytpOworICAgIH0KK30KKworaW50IEF1dGhvcml6YXRpb25TZXQ6OmZpbmQoVGFnIHRhZywgaW50IGJlZ2luKSBjb25zdCB7CisgICAgYXV0byBpdGVyID0gZGF0YV8uYmVnaW4oKSArICgxICsgYmVnaW4pOworCisgICAgd2hpbGUgKGl0ZXIgIT0gZGF0YV8uZW5kKCkgJiYgaXRlci0+dGFnICE9IHRhZykKKyAgICAgICAgKytpdGVyOworCisgICAgaWYgKGl0ZXIgIT0gZGF0YV8uZW5kKCkpIHJldHVybiBpdGVyIC0gZGF0YV8uYmVnaW4oKTsKKyAgICByZXR1cm4gLTE7Cit9CisKK2Jvb2wgQXV0aG9yaXphdGlvblNldDo6ZXJhc2UoaW50IGluZGV4KSB7CisgICAgYXV0byBwb3MgPSBkYXRhXy5iZWdpbigpICsgaW5kZXg7CisgICAgaWYgKHBvcyAhPSBkYXRhXy5lbmQoKSkgeworICAgICAgICBkYXRhXy5lcmFzZShwb3MpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitLZXlQYXJhbWV0ZXImIEF1dGhvcml6YXRpb25TZXQ6Om9wZXJhdG9yW10oaW50IGF0KSB7CisgICAgcmV0dXJuIGRhdGFfW2F0XTsKK30KKworY29uc3QgS2V5UGFyYW1ldGVyJiBBdXRob3JpemF0aW9uU2V0OjpvcGVyYXRvcltdKGludCBhdCkgY29uc3QgeworICAgIHJldHVybiBkYXRhX1thdF07Cit9CisKK3ZvaWQgQXV0aG9yaXphdGlvblNldDo6Q2xlYXIoKSB7CisgICAgZGF0YV8uY2xlYXIoKTsKK30KKworc2l6ZV90IEF1dGhvcml6YXRpb25TZXQ6OkdldFRhZ0NvdW50KFRhZyB0YWcpIGNvbnN0IHsKKyAgICBzaXplX3QgY291bnQgPSAwOworICAgIGZvciAoaW50IHBvcyA9IC0xOyAocG9zID0gZmluZCh0YWcsIHBvcykpICE9IC0xOykKKyAgICAgICAgKytjb3VudDsKKyAgICByZXR1cm4gY291bnQ7Cit9CisKK051bGxPcjxjb25zdCBLZXlQYXJhbWV0ZXImPiBBdXRob3JpemF0aW9uU2V0OjpHZXRFbnRyeShUYWcgdGFnKSBjb25zdCB7CisgICAgaW50IHBvcyA9IGZpbmQodGFnKTsKKyAgICBpZiAocG9zID09IC0xKSByZXR1cm4ge307CisgICAgcmV0dXJuIGRhdGFfW3Bvc107Cit9CisKKy8qKgorICogUGVyc2lzdGVudCBmb3JtYXQgaXM6CisgKiB8IDMyIGJpdCBpbmRpcmVjdF9zaXplICAgICAgICAgfAorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgaW5kaXJlY3Rfc2l6ZSBieXRlcyBvZiBkYXRhICB8IHRoaXMgaXMgd2hlcmUgdGhlIGJsb2IgZGF0YSBpcyBzdG9yZWQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IDMyIGJpdCBlbGVtZW50X2NvdW50ICAgICAgICAgfCBudW1iZXIgb2YgZW50cmllcworICogfCAzMiBiaXQgZWxlbWVudHNfc2l6ZSAgICAgICAgIHwgdG90YWwgYnl0ZXMgdXNlZCBieSBlbnRyaWVzIChlbnRyaWVzIGhhdmUgdmFyaWFibGUgbGVuZ3RoKQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgZWxlbWVudGVzX3NpemUgYnl0ZXMgb2YgZGF0YSB8IHdoZXJlIHRoZSBlbGVtZW50cyBhcmUgc3RvcmVkCisgKi8KKworLyoqCisgKiBQZXJzaXN0ZW50IGZvcm1hdCBvZiBibG9icyBhbmQgYmlnbnVtczoKKyAqIHwgMzIgYml0IHRhZyAgICAgICAgICAgICB8CisgKiB8IDMyIGJpdCBibG9iX2xlbmd0aCAgICAgfAorICogfCAzMiBiaXQgaW5kaXJlY3Rfb2Zmc2V0IHwKKyAqLworCitzdHJ1Y3QgT3V0U3RyZWFtcyB7CisgICAgc3RkOjpvc3RyZWFtJiBpbmRpcmVjdDsKKyAgICBzdGQ6Om9zdHJlYW0mIGVsZW1lbnRzOworfTsKKworT3V0U3RyZWFtcyYgc2VyaWFsaXplUGFyYW1WYWx1ZShPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBibG9iKSB7CisgICAgdWludDMyX3QgYnVmZmVyOworCisgICAgLy8gd3JpdGUgYmxvYl9sZW5ndGgKKyAgICBhdXRvIGJsb2JfbGVuZ3RoID0gYmxvYi5zaXplKCk7CisgICAgaWYgKGJsb2JfbGVuZ3RoID4gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKSB7CisgICAgICAgIG91dC5lbGVtZW50cy5zZXRzdGF0ZShzdGQ6Omlvc19iYXNlOjpiYWRiaXQpOworICAgICAgICByZXR1cm4gb3V0OworICAgIH0KKyAgICBidWZmZXIgPSBibG9iX2xlbmd0aDsKKyAgICBvdXQuZWxlbWVudHMud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmJ1ZmZlciksIHNpemVvZih1aW50MzJfdCkpOworCisgICAgLy8gd3JpdGUgaW5kaXJlY3Rfb2Zmc2V0CisgICAgYXV0byBvZmZzZXQgPSBvdXQuaW5kaXJlY3QudGVsbHAoKTsKKyAgICBpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkgfHwKKyAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KChzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkgLSBvZmZzZXQpKSA8CisgICAgICAgICAgICBibG9iX2xlbmd0aCkgeyAgLy8gb3ZlcmZsb3cgY2hlY2sKKyAgICAgICAgb3V0LmVsZW1lbnRzLnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIGJ1ZmZlciA9IG9mZnNldDsKKyAgICBvdXQuZWxlbWVudHMud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmJ1ZmZlciksIHNpemVvZih1aW50MzJfdCkpOworCisgICAgLy8gd3JpdGUgYmxvYiB0byBpbmRpcmVjdCBzdHJlYW0KKyAgICBpZiAoYmxvYl9sZW5ndGgpIG91dC5pbmRpcmVjdC53cml0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPigmYmxvYlswXSksIGJsb2JfbGVuZ3RoKTsKKworICAgIHJldHVybiBvdXQ7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBPdXRTdHJlYW1zJiBzZXJpYWxpemVQYXJhbVZhbHVlKE91dFN0cmVhbXMmIG91dCwgY29uc3QgVCYgdmFsdWUpIHsKKyAgICBvdXQuZWxlbWVudHMud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJnZhbHVlKSwgc2l6ZW9mKFQpKTsKKyAgICByZXR1cm4gb3V0OworfQorCitPdXRTdHJlYW1zJiBzZXJpYWxpemUoVEFHX0lOVkFMSURfdCYmLCBPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IEtleVBhcmFtZXRlciYpIHsKKyAgICAvLyBza2lwIGludmFsaWQgZW50cmllcy4KKyAgICByZXR1cm4gb3V0OworfQordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IE91dFN0cmVhbXMmIHNlcmlhbGl6ZShUIHR0YWcsIE91dFN0cmVhbXMmIG91dCwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgIG91dC5lbGVtZW50cy53cml0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPigmcGFyYW0udGFnKSwgc2l6ZW9mKGludDMyX3QpKTsKKyAgICByZXR1cm4gc2VyaWFsaXplUGFyYW1WYWx1ZShvdXQsIGFjY2Vzc1RhZ1ZhbHVlKHR0YWcsIHBhcmFtKSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPiBzdHJ1Y3QgY2hvb3NlX3NlcmlhbGl6ZXI7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVGFncz4gc3RydWN0IGNob29zZV9zZXJpYWxpemVyPE1ldGFMaXN0PFRhZ3MuLi4+PiB7CisgICAgc3RhdGljIE91dFN0cmVhbXMmIHNlcmlhbGl6ZShPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICAgICAgcmV0dXJuIGNob29zZV9zZXJpYWxpemVyPFRhZ3MuLi4+OjpzZXJpYWxpemUob3V0LCBwYXJhbSk7CisgICAgfQorfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBjaG9vc2Vfc2VyaWFsaXplcjw+IHsKKyAgICBzdGF0aWMgT3V0U3RyZWFtcyYgc2VyaWFsaXplKE91dFN0cmVhbXMmIG91dCwgY29uc3QgS2V5UGFyYW1ldGVyJikgeyByZXR1cm4gb3V0OyB9Cit9OwordGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lLi4uIFRhaWw+CitzdHJ1Y3QgY2hvb3NlX3NlcmlhbGl6ZXI8VHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4sIFRhaWwuLi4+IHsKKyAgICBzdGF0aWMgT3V0U3RyZWFtcyYgc2VyaWFsaXplKE91dFN0cmVhbXMmIG91dCwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgICAgICBpZiAocGFyYW0udGFnID09IHRhZykgeworICAgICAgICAgICAgcmV0dXJuIFYzXzA6OnNlcmlhbGl6ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPigpLCBvdXQsIHBhcmFtKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBjaG9vc2Vfc2VyaWFsaXplcjxUYWlsLi4uPjo6c2VyaWFsaXplKG91dCwgcGFyYW0pOworICAgICAgICB9CisgICAgfQorfTsKKworT3V0U3RyZWFtcyYgc2VyaWFsaXplKE91dFN0cmVhbXMmIG91dCwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBjaG9vc2Vfc2VyaWFsaXplcjxhbGxfdGFnc190Pjo6c2VyaWFsaXplKG91dCwgcGFyYW0pOworfQorCitzdGQ6Om9zdHJlYW0mIHNlcmlhbGl6ZShzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3Qgc3RkOjp2ZWN0b3I8S2V5UGFyYW1ldGVyPiYgcGFyYW1zKSB7CisgICAgc3RkOjpzdHJpbmdzdHJlYW0gaW5kaXJlY3Q7CisgICAgc3RkOjpzdHJpbmdzdHJlYW0gZWxlbWVudHM7CisgICAgT3V0U3RyZWFtcyBzdHJlYW1zID0ge2luZGlyZWN0LCBlbGVtZW50c307CisgICAgZm9yIChjb25zdCBhdXRvJiBwYXJhbSA6IHBhcmFtcykgeworICAgICAgICBzZXJpYWxpemUoc3RyZWFtcywgcGFyYW0pOworICAgIH0KKyAgICBpZiAoaW5kaXJlY3QuYmFkKCkgfHwgZWxlbWVudHMuYmFkKCkpIHsKKyAgICAgICAgb3V0LnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIGF1dG8gcG9zID0gaW5kaXJlY3QudGVsbHAoKTsKKyAgICBpZiAocG9zIDwgMCB8fCBwb3MgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIHsKKyAgICAgICAgb3V0LnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIHVpbnQzMl90IGluZGlyZWN0X3NpemUgPSBwb3M7CisgICAgcG9zID0gZWxlbWVudHMudGVsbHAoKTsKKyAgICBpZiAocG9zIDwgMCB8fCBwb3MgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIHsKKyAgICAgICAgb3V0LnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIHVpbnQzMl90IGVsZW1lbnRzX3NpemUgPSBwb3M7CisgICAgdWludDMyX3QgZWxlbWVudF9jb3VudCA9IHBhcmFtcy5zaXplKCk7CisKKyAgICBvdXQud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmluZGlyZWN0X3NpemUpLCBzaXplb2YodWludDMyX3QpKTsKKworICAgIHBvcyA9IG91dC50ZWxscCgpOworICAgIGlmIChpbmRpcmVjdF9zaXplKSBvdXQgPDwgaW5kaXJlY3QucmRidWYoKTsKKyAgICBhc3NlcnQob3V0LnRlbGxwKCkgLSBwb3MgPT0gaW5kaXJlY3Rfc2l6ZSk7CisKKyAgICBvdXQud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmVsZW1lbnRfY291bnQpLCBzaXplb2YodWludDMyX3QpKTsKKyAgICBvdXQud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmVsZW1lbnRzX3NpemUpLCBzaXplb2YodWludDMyX3QpKTsKKworICAgIHBvcyA9IG91dC50ZWxscCgpOworICAgIGlmIChlbGVtZW50c19zaXplKSBvdXQgPDwgZWxlbWVudHMucmRidWYoKTsKKyAgICBhc3NlcnQob3V0LnRlbGxwKCkgLSBwb3MgPT0gZWxlbWVudHNfc2l6ZSk7CisKKyAgICByZXR1cm4gb3V0OworfQorCitzdHJ1Y3QgSW5TdHJlYW1zIHsKKyAgICBzdGQ6OmlzdHJlYW0mIGluZGlyZWN0OworICAgIHN0ZDo6aXN0cmVhbSYgZWxlbWVudHM7Cit9OworCitJblN0cmVhbXMmIGRlc2VyaWFsaXplUGFyYW1WYWx1ZShJblN0cmVhbXMmIGluLCBoaWRsX3ZlYzx1aW50OF90PiogYmxvYikgeworICAgIHVpbnQzMl90IGJsb2JfbGVuZ3RoID0gMDsKKyAgICB1aW50MzJfdCBvZmZzZXQgPSAwOworICAgIGluLmVsZW1lbnRzLnJlYWQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJmJsb2JfbGVuZ3RoKSwgc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgYmxvYi0+cmVzaXplKGJsb2JfbGVuZ3RoKTsKKyAgICBpbi5lbGVtZW50cy5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZvZmZzZXQpLCBzaXplb2YodWludDMyX3QpKTsKKyAgICBpbi5pbmRpcmVjdC5zZWVrZyhvZmZzZXQpOworICAgIGluLmluZGlyZWN0LnJlYWQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJigqYmxvYilbMF0pLCBibG9iLT5zaXplKCkpOworICAgIHJldHVybiBpbjsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEluU3RyZWFtcyYgZGVzZXJpYWxpemVQYXJhbVZhbHVlKEluU3RyZWFtcyYgaW4sIFQqIHZhbHVlKSB7CisgICAgaW4uZWxlbWVudHMucmVhZChyZWludGVycHJldF9jYXN0PGNoYXIqPih2YWx1ZSksIHNpemVvZihUKSk7CisgICAgcmV0dXJuIGluOworfQorCitJblN0cmVhbXMmIGRlc2VyaWFsaXplKFRBR19JTlZBTElEX3QmJiwgSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKikgeworICAgIC8vIHRoZXJlIHNob3VsZCBiZSBubyBpbnZhbGlkIEtleVBhcmFtYXRlcnMgYnV0IGlmIGhhbmRsZSB0aGVtIGFzIHplcm8gc2l6ZWQuCisgICAgcmV0dXJuIGluOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gSW5TdHJlYW1zJiBkZXNlcmlhbGl6ZShUJiYgdHRhZywgSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKiBwYXJhbSkgeworICAgIHJldHVybiBkZXNlcmlhbGl6ZVBhcmFtVmFsdWUoaW4sICZhY2Nlc3NUYWdWYWx1ZSh0dGFnLCAqcGFyYW0pKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFQ+IHN0cnVjdCBjaG9vc2VfZGVzZXJpYWxpemVyOwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFRhZ3M+IHN0cnVjdCBjaG9vc2VfZGVzZXJpYWxpemVyPE1ldGFMaXN0PFRhZ3MuLi4+PiB7CisgICAgc3RhdGljIEluU3RyZWFtcyYgZGVzZXJpYWxpemUoSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKiBwYXJhbSkgeworICAgICAgICByZXR1cm4gY2hvb3NlX2Rlc2VyaWFsaXplcjxUYWdzLi4uPjo6ZGVzZXJpYWxpemUoaW4sIHBhcmFtKTsKKyAgICB9Cit9OwordGVtcGxhdGUgPD4gc3RydWN0IGNob29zZV9kZXNlcmlhbGl6ZXI8PiB7CisgICAgc3RhdGljIEluU3RyZWFtcyYgZGVzZXJpYWxpemUoSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKikgeworICAgICAgICAvLyBlbmNvdW50ZXJlZCBhbiB1bmtub3duIHRhZyAtPiBmYWlsIHBhcnNpbmcKKyAgICAgICAgaW4uZWxlbWVudHMuc2V0c3RhdGUoc3RkOjppb3NfYmFzZTo6YmFkYml0KTsKKyAgICAgICAgcmV0dXJuIGluOworICAgIH0KK307Cit0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUuLi4gVGFpbD4KK3N0cnVjdCBjaG9vc2VfZGVzZXJpYWxpemVyPFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+LCBUYWlsLi4uPiB7CisgICAgc3RhdGljIEluU3RyZWFtcyYgZGVzZXJpYWxpemUoSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKiBwYXJhbSkgeworICAgICAgICBpZiAocGFyYW0tPnRhZyA9PSB0YWcpIHsKKyAgICAgICAgICAgIHJldHVybiBWM18wOjpkZXNlcmlhbGl6ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPigpLCBpbiwgcGFyYW0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGNob29zZV9kZXNlcmlhbGl6ZXI8VGFpbC4uLj46OmRlc2VyaWFsaXplKGluLCBwYXJhbSk7CisgICAgICAgIH0KKyAgICB9Cit9OworCitJblN0cmVhbXMmIGRlc2VyaWFsaXplKEluU3RyZWFtcyYgaW4sIEtleVBhcmFtZXRlciogcGFyYW0pIHsKKyAgICBpbi5lbGVtZW50cy5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZwYXJhbS0+dGFnKSwgc2l6ZW9mKFRhZykpOworICAgIHJldHVybiBjaG9vc2VfZGVzZXJpYWxpemVyPGFsbF90YWdzX3Q+OjpkZXNlcmlhbGl6ZShpbiwgcGFyYW0pOworfQorCitzdGQ6OmlzdHJlYW0mIGRlc2VyaWFsaXplKHN0ZDo6aXN0cmVhbSYgaW4sIHN0ZDo6dmVjdG9yPEtleVBhcmFtZXRlcj4qIHBhcmFtcykgeworICAgIHVpbnQzMl90IGluZGlyZWN0X3NpemUgPSAwOworICAgIGluLnJlYWQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJmluZGlyZWN0X3NpemUpLCBzaXplb2YodWludDMyX3QpKTsKKyAgICBzdGQ6OnN0cmluZyBpbmRpcmVjdF9idWZmZXIoaW5kaXJlY3Rfc2l6ZSwgJ1wwJyk7CisgICAgaWYgKGluZGlyZWN0X2J1ZmZlci5zaXplKCkgIT0gaW5kaXJlY3Rfc2l6ZSkgeworICAgICAgICBpbi5zZXRzdGF0ZShzdGQ6Omlvc19iYXNlOjpiYWRiaXQpOworICAgICAgICByZXR1cm4gaW47CisgICAgfQorICAgIGluLnJlYWQoJmluZGlyZWN0X2J1ZmZlclswXSwgaW5kaXJlY3RfYnVmZmVyLnNpemUoKSk7CisKKyAgICB1aW50MzJfdCBlbGVtZW50X2NvdW50ID0gMDsKKyAgICBpbi5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZlbGVtZW50X2NvdW50KSwgc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgdWludDMyX3QgZWxlbWVudHNfc2l6ZSA9IDA7CisgICAgaW4ucmVhZChyZWludGVycHJldF9jYXN0PGNoYXIqPigmZWxlbWVudHNfc2l6ZSksIHNpemVvZih1aW50MzJfdCkpOworCisgICAgc3RkOjpzdHJpbmcgZWxlbWVudHNfYnVmZmVyKGVsZW1lbnRzX3NpemUsICdcMCcpOworICAgIGlmIChlbGVtZW50c19idWZmZXIuc2l6ZSgpICE9IGVsZW1lbnRzX3NpemUpIHsKKyAgICAgICAgaW4uc2V0c3RhdGUoc3RkOjppb3NfYmFzZTo6YmFkYml0KTsKKyAgICAgICAgcmV0dXJuIGluOworICAgIH0KKyAgICBpbi5yZWFkKCZlbGVtZW50c19idWZmZXJbMF0sIGVsZW1lbnRzX2J1ZmZlci5zaXplKCkpOworCisgICAgaWYgKGluLmJhZCgpKSByZXR1cm4gaW47CisKKyAgICAvLyBUT0RPIHdyaXRlIG9uZS1zaG90IHN0cmVhbSBidWZmZXIgdG8gYXZvaWQgY29weWluZyBoZXJlCisgICAgc3RkOjpzdHJpbmdzdHJlYW0gaW5kaXJlY3QoaW5kaXJlY3RfYnVmZmVyKTsKKyAgICBzdGQ6OnN0cmluZ3N0cmVhbSBlbGVtZW50cyhlbGVtZW50c19idWZmZXIpOworICAgIEluU3RyZWFtcyBzdHJlYW1zID0ge2luZGlyZWN0LCBlbGVtZW50c307CisKKyAgICBwYXJhbXMtPnJlc2l6ZShlbGVtZW50X2NvdW50KTsKKworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBlbGVtZW50X2NvdW50OyArK2kpIHsKKyAgICAgICAgZGVzZXJpYWxpemUoc3RyZWFtcywgJigqcGFyYW1zKVtpXSk7CisgICAgfQorICAgIHJldHVybiBpbjsKK30KKwordm9pZCBBdXRob3JpemF0aW9uU2V0OjpTZXJpYWxpemUoc3RkOjpvc3RyZWFtKiBvdXQpIGNvbnN0IHsKKyAgICBzZXJpYWxpemUoKm91dCwgZGF0YV8pOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OkRlc2VyaWFsaXplKHN0ZDo6aXN0cmVhbSogaW4pIHsKKyAgICBkZXNlcmlhbGl6ZSgqaW4sICZkYXRhXyk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWM18wCit9ICAvLyBuYW1lc3BhY2Uga2V5bWFzdGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmggYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY5MmQ4MQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXV0aG9yaXphdGlvbl9zZXQuaApAQCAtMCwwICsxLDQyMCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBIQVJEV0FSRV9JTlRFUkZBQ0VTX0tFWU1BU1RFUl8zMF9WVFNfRlVOQ1RJT05BTF9BVVRIT1JJWkFUSU9OX1NFVF9IXworI2RlZmluZSBIQVJEV0FSRV9JTlRFUkZBQ0VTX0tFWU1BU1RFUl8zMF9WVFNfRlVOQ1RJT05BTF9BVVRIT1JJWkFUSU9OX1NFVF9IXworCisjaW5jbHVkZSAia2V5bWFzdGVyX3RhZ3MuaCIKKworI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CisKK2NsYXNzIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOworCisvKioKKyAqIEFuIG9yZGVyZWQgY29sbGVjdGlvbiBvZiBLZXlQYXJhbWV0ZXJzLiBJdCBwcm92aWRlcyBtZW1vcnkgb3duZXJzaGlwIGFuZCBzb21lIGNvbnZlbmllbnQKKyAqIGZ1bmN0aW9uYWxpdHkgZm9yIHNvcnRpbmcsIGRlZHVwbGljYXRpbmcsIGpvaW5pbmcsIGFuZCBzdWJ0cmFjdGluZyBzZXRzIG9mIEtleVBhcmFtZXRlcnMuCisgKiBGb3Igc2VyaWFsaXphdGlvbiwgd3JhcCB0aGUgYmFja2luZyBzdG9yZSBvZiB0aGlzIHN0cnVjdHVyZSBpbiBhIGhpZGxfdmVjPEtleVBhcmFtZXRlcj4uCisgKi8KK2NsYXNzIEF1dGhvcml6YXRpb25TZXQgeworICBwdWJsaWM6CisgICAgdHlwZWRlZiBLZXlQYXJhbWV0ZXIgdmFsdWVfdHlwZTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhbiBlbXB0eSwgZHluYW1pY2FsbHktYWxsb2NhdGVkLCBncm93YWJsZSBBdXRob3JpemF0aW9uU2V0LgorICAgICAqLworICAgIEF1dGhvcml6YXRpb25TZXQoKXt9OworCisgICAgLy8gQ29weSBjb25zdHJ1Y3Rvci4KKyAgICBBdXRob3JpemF0aW9uU2V0KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIG90aGVyKSA6IGRhdGFfKG90aGVyLmRhdGFfKSB7fQorCisgICAgLy8gTW92ZSBjb25zdHJ1Y3Rvci4KKyAgICBBdXRob3JpemF0aW9uU2V0KEF1dGhvcml6YXRpb25TZXQmJiBvdGhlcikgOiBkYXRhXyhzdGQ6Om1vdmUob3RoZXIuZGF0YV8pKSB7fQorCisgICAgLy8gQ29uc3RydWN0b3IgZnJvbSBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+CisgICAgQXV0aG9yaXphdGlvblNldChjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBvdGhlcikgeyAqdGhpcyA9IG90aGVyOyB9CisKKyAgICAvLyBDb3B5IGFzc2lnbm1lbnQuCisgICAgQXV0aG9yaXphdGlvblNldCYgb3BlcmF0b3I9KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIG90aGVyKSB7CisgICAgICAgIGRhdGFfID0gb3RoZXIuZGF0YV87CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICAvLyBNb3ZlIGFzc2lnbm1lbnQuCisgICAgQXV0aG9yaXphdGlvblNldCYgb3BlcmF0b3I9KEF1dGhvcml6YXRpb25TZXQmJiBvdGhlcikgeworICAgICAgICBkYXRhXyA9IHN0ZDo6bW92ZShvdGhlci5kYXRhXyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBBdXRob3JpemF0aW9uU2V0JiBvcGVyYXRvcj0oY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgb3RoZXIpIHsKKyAgICAgICAgaWYgKG90aGVyLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgIGRhdGFfLnJlc2l6ZShvdGhlci5zaXplKCkpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYXRhXy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIC8qIFRoaXMgbWFrZXMgYSBkZWVwIGNvcHkgZXZlbiBvZiBlbWJlZGRlZCBibG9icy4KKyAgICAgICAgICAgICAgICAgKiBTZWUgYXNzaWdubWVudCBvcGVyYXRvci9jb3B5IGNvbnN0cnVjdG9yIG9mIGhpZGxfdmVjLiovCisgICAgICAgICAgICAgICAgZGF0YV9baV0gPSBvdGhlcltpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xlYXIgZXhpc3RpbmcgYXV0aG9yaXphdGlvbiBzZXQgZGF0YQorICAgICAqLworICAgIHZvaWQgQ2xlYXIoKTsKKworICAgIH5BdXRob3JpemF0aW9uU2V0KCkgPSBkZWZhdWx0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgc2V0LgorICAgICAqLworICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gZGF0YV8uc2l6ZSgpOyB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNldCBpcyBlbXB0eS4KKyAgICAgKi8KKyAgICBib29sIGVtcHR5KCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpID09IDA7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRhdGEgaW4gdGhlIHNldCwgZGlyZWN0bHkuIEJlIGNhcmVmdWwgd2l0aCB0aGlzLgorICAgICAqLworICAgIGNvbnN0IEtleVBhcmFtZXRlciogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIGRhdGFfLmRhdGEoKTsgfQorCisgICAgLyoqCisgICAgICogU29ydHMgdGhlIHNldAorICAgICAqLworICAgIHZvaWQgU29ydCgpOworCisgICAgLyoqCisgICAgICogU29ydHMgdGhlIHNldCBhbmQgcmVtb3ZlcyBkdXBsaWNhdGVzIChpbmFkdmVydGVudGx5IGR1cGxpY2F0aW5nIHRhZ3MgaXMgZWFzeSB0byBkbyB3aXRoIHRoZQorICAgICAqIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKS4KKyAgICAgKi8KKyAgICB2b2lkIERlZHVwbGljYXRlKCk7CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGFsbCBlbGVtZW50cyBmcm9tIFxwIHNldCB0aGF0IGFyZSBub3QgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgQXV0aG9yaXphdGlvblNldC4gIEFzIGEKKyAgICAgKiBzaWRlLWVmZmVjdCwgaWYgXHAgc2V0IGlzIG5vdCBudWxsIHRoaXMgQXV0aG9yaXphdGlvblNldCB3aWxsIGVuZCB1cCBzb3J0ZWQuCisgICAgICovCisgICAgdm9pZCBVbmlvbihjb25zdCBBdXRob3JpemF0aW9uU2V0JiBzZXQpOworCisgICAgLyoqCisgICAgICogUmVtb3ZlcyBhbGwgZWxlbWVudHMgaW4gXHAgc2V0IGZyb20gdGhpcyBBdXRob3JpemF0aW9uU2V0LgorICAgICAqLworICAgIHZvaWQgU3VidHJhY3QoY29uc3QgQXV0aG9yaXphdGlvblNldCYgc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG9mZnNldCBvZiB0aGUgbmV4dCBlbnRyeSB0aGF0IG1hdGNoZXMgXHAgdGFnLCBzdGFydGluZyBmcm9tIHRoZSBlbGVtZW50IGFmdGVyIFxwCisgICAgICogYmVnaW4uICBJZiBub3QgZm91bmQsIHJldHVybnMgLTEuCisgICAgICovCisgICAgaW50IGZpbmQoVGFnIHRhZywgaW50IGJlZ2luID0gLTEpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgZW50cnkgYXQgdGhlIHNwZWNpZmllZCBpbmRleC4gUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwsIGZhbHNlIGlmIHRoZSBpbmRleCB3YXMKKyAgICAgKiBvdXQgb2YgYm91bmRzLgorICAgICAqLworICAgIGJvb2wgZXJhc2UoaW50IGluZGV4KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgaXRlcmF0b3IgKHBvaW50ZXIpIHRvIGJlZ2lubmluZyBvZiBlbGVtcyBhcnJheSwgdG8gZW5hYmxlIFNUTC1zdHlsZSBpdGVyYXRpb24KKyAgICAgKi8KKyAgICBzdGQ6OnZlY3RvcjxLZXlQYXJhbWV0ZXI+Ojpjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGRhdGFfLmJlZ2luKCk7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgaXRlcmF0b3IgKHBvaW50ZXIpIG9uZSBwYXN0IGVuZCBvZiBlbGVtcyBhcnJheSwgdG8gZW5hYmxlIFNUTC1zdHlsZSBpdGVyYXRpb24KKyAgICAgKi8KKyAgICBzdGQ6OnZlY3RvcjxLZXlQYXJhbWV0ZXI+Ojpjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBkYXRhXy5lbmQoKTsgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnRoIGVsZW1lbnQgb2YgdGhlIHNldC4KKyAgICAgKiBMaWtlIGZvciBzdGQ6OnZlY3Rvcjo6b3BlcmF0b3JbXSB0aGVyZSBpcyBubyByYW5nZSBjaGVjayBwZXJmb3JtZWQuIFVzZSBvZiBvdXQgb2YgcmFuZ2UKKyAgICAgKiBpbmRpY2VzIGlzIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBLZXlQYXJhbWV0ZXImIG9wZXJhdG9yW10oaW50IG4pOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnRoIGVsZW1lbnQgb2YgdGhlIHNldC4KKyAgICAgKiBMaWtlIGZvciBzdGQ6OnZlY3Rvcjo6b3BlcmF0b3JbXSB0aGVyZSBpcyBubyByYW5nZSBjaGVjayBwZXJmb3JtZWQuIFVzZSBvZiBvdXQgb2YgcmFuZ2UKKyAgICAgKiBpbmRpY2VzIGlzIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBjb25zdCBLZXlQYXJhbWV0ZXImIG9wZXJhdG9yW10oaW50IG4pIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzZXQgY29udGFpbnMgYXQgbGVhc3Qgb25lIGluc3RhbmNlIG9mIFxwIHRhZworICAgICAqLworICAgIGJvb2wgQ29udGFpbnMoVGFnIHRhZykgY29uc3QgeyByZXR1cm4gZmluZCh0YWcpICE9IC0xOyB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYm9vbCBDb250YWlucyhUIHRhZykgY29uc3QgeyByZXR1cm4gZmluZCh0YWcpICE9IC0xOyB9CisKKyAgICB0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUgVmFsdWVUPgorICAgIGJvb2wgQ29udGFpbnMoVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgY29uc3QgVmFsdWVUJiB2YWx1ZSkgY29uc3QgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhcmFtIDogZGF0YV8pIHsKKyAgICAgICAgICAgIGF1dG8gZW50cnkgPSBhdXRob3JpemF0aW9uVmFsdWUodHRhZywgcGFyYW0pOworICAgICAgICAgICAgaWYgKGVudHJ5LmlzT2soKSAmJiBzdGF0aWNfY2FzdDxWYWx1ZVQ+KGVudHJ5LnZhbHVlKCkpID09IHZhbHVlKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBccCB0YWcgZW50cmllcy4KKyAgICAgKi8KKyAgICBzaXplX3QgR2V0VGFnQ291bnQoVGFnIHRhZykgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgTnVsbE9yPGNvbnN0IHR5cGVuYW1lIFR5cGVkVGFnMlZhbHVlVHlwZTxUPjo6dHlwZSY+IEdldFRhZ1ZhbHVlKFQgdGFnKSBjb25zdCB7CisgICAgICAgIGF1dG8gZW50cnkgPSBHZXRFbnRyeSh0YWcpOworICAgICAgICBpZiAoZW50cnkuaXNPaygpKSByZXR1cm4gYXV0aG9yaXphdGlvblZhbHVlKHRhZywgZW50cnkudmFsdWUoKSk7CisgICAgICAgIHJldHVybiB7fTsKKyAgICB9CisKKyAgICB2b2lkIHB1c2hfYmFjayhjb25zdCBLZXlQYXJhbWV0ZXImIHBhcmFtKSB7IGRhdGFfLnB1c2hfYmFjayhwYXJhbSk7IH0KKyAgICB2b2lkIHB1c2hfYmFjayhLZXlQYXJhbWV0ZXImJiBwYXJhbSkgeyBkYXRhXy5wdXNoX2JhY2soc3RkOjptb3ZlKHBhcmFtKSk7IH0KKworICAgIHZvaWQgcHVzaF9iYWNrKGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCkgeworICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogc2V0KSB7CisgICAgICAgICAgICBwdXNoX2JhY2soZW50cnkpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBwdXNoX2JhY2soQXV0aG9yaXphdGlvblNldCYmIHNldCkgeworICAgICAgICBtb3ZlKHNldC5iZWdpbigpLCBzZXQuZW5kKCkpOworICAgICAgICBzZXQuQ2xlYXIoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8VGFnIHRhZz4KKyAgICB2b2lkIHB1c2hfYmFjayhUeXBlZFRhZzxUYWdUeXBlOjpCWVRFUywgdGFnPiB0dGFnLCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgZGF0YV9sZW5ndGgpIHsKKyAgICAgICAgaGlkbF92ZWM8dWludDhfdD4gbmV3X2Jsb2I7CisgICAgICAgIG5ld19ibG9iLnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1aW50OF90Kj4oZGF0YSksIGRhdGFfbGVuZ3RoKTsKKyAgICAgICAgcHVzaF9iYWNrKHR0YWcsIHN0ZDo6bW92ZShuZXdfYmxvYikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgdGFnIGFuZCBlbnVtZXJhdGVkIHZhbHVlIHRvIHRoZSBzZXQuCisgICAgICogInZhbCIgbWF5IGJlIGV4YWN0bHkgb25lIHBhcmFtZXRlciB1bmxlc3MgYSBib29sZWFuIHBhcmFtZXRlciBpcyBhZGRlZC4KKyAgICAgKiBJbiB0aGlzIGNhc2UgInZhbCIgaXMgb21pdHRlZC4gVGhpcyBjb25kaXRpb24gaXMgY2hlY2tlZCBhdCBjb21waWxlIHRpbWUgYnkgQXV0aG9yaXphdGlvbigpCisgICAgICovCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGVkVGFnVCwgdHlwZW5hbWUuLi4gVmFsdWU+IHZvaWQgcHVzaF9iYWNrKFR5cGVkVGFnVCB0YWcsIFZhbHVlJiYuLi4gdmFsKSB7CisgICAgICAgIHB1c2hfYmFjayhBdXRob3JpemF0aW9uKHRhZywgc3RkOjpmb3J3YXJkPFZhbHVlPih2YWwpLi4uKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEl0ZXJhdG9yPiB2b2lkIHB1c2hfYmFjayhJdGVyYXRvciBiZWdpbiwgSXRlcmF0b3IgZW5kKSB7CisgICAgICAgIHdoaWxlIChiZWdpbiAhPSBlbmQpIHsKKyAgICAgICAgICAgIHB1c2hfYmFjaygqYmVnaW4pOworICAgICAgICAgICAgKytiZWdpbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBJdGVyYXRvcj4gdm9pZCBtb3ZlKEl0ZXJhdG9yIGJlZ2luLCBJdGVyYXRvciBlbmQpIHsKKyAgICAgICAgc3RkOjptb3ZlKGJlZ2luLCBlbmQsIHN0ZDo6YmFja19pbnNlcnRlcihkYXRhXykpOworICAgIH0KKworICAgIGhpZGxfdmVjPEtleVBhcmFtZXRlcj4gaGlkbF9kYXRhKCkgY29uc3QgeworICAgICAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IHJlc3VsdDsKKyAgICAgICAgcmVzdWx0LnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDxLZXlQYXJhbWV0ZXIqPihkYXRhKCkpLCBzaXplKCkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHZvaWQgU2VyaWFsaXplKHN0ZDo6b3N0cmVhbSogb3V0KSBjb25zdDsKKyAgICB2b2lkIERlc2VyaWFsaXplKHN0ZDo6aXN0cmVhbSogaW4pOworCisgIHByaXZhdGU6CisgICAgTnVsbE9yPGNvbnN0IEtleVBhcmFtZXRlciY+IEdldEVudHJ5KFRhZyB0YWcpIGNvbnN0OworCisgICAgc3RkOjp2ZWN0b3I8S2V5UGFyYW1ldGVyPiBkYXRhXzsKK307CisKK2NsYXNzIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyIDogcHVibGljIEF1dGhvcml6YXRpb25TZXQgeworICBwdWJsaWM6CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFRhZ1R5cGUsIHR5cGVuYW1lLi4uIFZhbHVlVHlwZT4KKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvbihUYWdUeXBlIHR0YWcsIFZhbHVlVHlwZSYmLi4uIHZhbHVlKSB7CisgICAgICAgIHB1c2hfYmFjayh0dGFnLCBzdGQ6OmZvcndhcmQ8VmFsdWVUeXBlPih2YWx1ZSkuLi4pOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZyB0YWc+CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb24oVHlwZWRUYWc8VGFnVHlwZTo6QllURVMsIHRhZz4gdHRhZywgY29uc3QgdWludDhfdCogZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpIHsKKyAgICAgICAgaGlkbF92ZWM8dWludDhfdD4gbmV3X2Jsb2I7CisgICAgICAgIG5ld19ibG9iLnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1aW50OF90Kj4oZGF0YSksIGRhdGFfbGVuZ3RoKTsKKyAgICAgICAgcHVzaF9iYWNrKHR0YWcsIHN0ZDo6bW92ZShuZXdfYmxvYikpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZyB0YWc+CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb24oVHlwZWRUYWc8VGFnVHlwZTo6QllURVMsIHRhZz4gdHRhZywgY29uc3QgY2hhciogZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIEF1dGhvcml6YXRpb24odHRhZywgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGRhdGFfbGVuZ3RoKTsKKyAgICB9CisKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvbnMoQXV0aG9yaXphdGlvblNldCYmIHNldCk7CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25zKGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgUnNhS2V5KHVpbnQzMl90IGtleV9zaXplLCB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2RzYUtleSh1aW50MzJfdCBrZXlfc2l6ZSk7CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEVjZHNhS2V5KEVjQ3VydmUgY3VydmUpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBZXNLZXkodWludDMyX3Qga2V5X3NpemUpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBIbWFjS2V5KHVpbnQzMl90IGtleV9zaXplKTsKKworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBSc2FTaWduaW5nS2V5KHVpbnQzMl90IGtleV9zaXplLCB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBSc2FFbmNyeXB0aW9uS2V5KHVpbnQzMl90IGtleV9zaXplLCB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2RzYVNpZ25pbmdLZXkodWludDMyX3Qga2V5X3NpemUpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2RzYVNpZ25pbmdLZXkoRWNDdXJ2ZSBjdXJ2ZSk7CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEFlc0VuY3J5cHRpb25LZXkodWludDMyX3Qga2V5X3NpemUpOworCisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIFNpZ25pbmdLZXkoKTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgRW5jcnlwdGlvbktleSgpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBOb0RpZ2VzdE9yUGFkZGluZygpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2JNb2RlKCk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQmxvY2tNb2RlKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxCbG9ja01vZGU+IGJsb2NrX21vZGVzKTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgRGlnZXN0KHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxEaWdlc3Q+IGRpZ2VzdHMpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBQYWRkaW5nKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxQYWRkaW5nTW9kZT4gcGFkZGluZ19tb2Rlcyk7CisKKyAgICAvLyBUaGUgZm9sbG93aW5nIGZvcndhcmRpbmcgdGVtcGxhdGVzIGVuYWJsZSBCbG9ja01vZGUsRGlnZXN0IGFuZCBQYWRkaW5nIHRvIGJlIGNhbGxlZCB3aXRoIGEKKyAgICAvLyB2YXJpYWJsZSBudW1iZXIgb2YgYXJndW1lbnRzOyBubyBuZWVkIHRvIHdyYXAgdGhlbSBpbiBicmFjZXMgdG8gbWFrZSB0aGVtIGFuIGluaXRhbGl6ZXJfbGlzdC4KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVD4gQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEJsb2NrTW9kZShUJiYuLi4gYSkgeworICAgICAgICByZXR1cm4gQmxvY2tNb2RlKHtzdGQ6OmZvcndhcmQ8VD4oYSkuLi59KTsKKyAgICB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lLi4uIFQ+IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBEaWdlc3QoVCYmLi4uIGEpIHsKKyAgICAgICAgcmV0dXJuIERpZ2VzdCh7c3RkOjpmb3J3YXJkPFQ+KGEpLi4ufSk7CisgICAgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPiBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgUGFkZGluZyhUJiYuLi4gYSkgeworICAgICAgICByZXR1cm4gUGFkZGluZyh7c3RkOjpmb3J3YXJkPFQ+KGEpLi4ufSk7CisgICAgfQorfTsKKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6QXV0aG9yaXphdGlvbnMoQXV0aG9yaXphdGlvblNldCYmIHNldCkgeworICAgIG1vdmUoc2V0LmJlZ2luKCksIHNldC5lbmQoKSk7CisgICAgc2V0LkNsZWFyKCk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImCitBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6QXV0aG9yaXphdGlvbnMoY29uc3QgQXV0aG9yaXphdGlvblNldCYgc2V0KSB7CisgICAgcHVzaF9iYWNrKHNldC5iZWdpbigpLCBzZXQuZW5kKCkpOworICAgIHJldHVybiAqdGhpczsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6UnNhS2V5KHVpbnQzMl90IGtleV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHB1YmxpY19leHBvbmVudCkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpSU0EpOworICAgIEF1dGhvcml6YXRpb24oVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSk7CisgICAgQXV0aG9yaXphdGlvbihUQUdfUlNBX1BVQkxJQ19FWFBPTkVOVCwgcHVibGljX2V4cG9uZW50KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkVjZHNhS2V5KHVpbnQzMl90IGtleV9zaXplKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkVDKTsKKyAgICBBdXRob3JpemF0aW9uKFRBR19LRVlfU0laRSwga2V5X3NpemUpOworICAgIHJldHVybiAqdGhpczsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6RWNkc2FLZXkoRWNDdXJ2ZSBjdXJ2ZSkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpFQyk7CisgICAgQXV0aG9yaXphdGlvbihUQUdfRUNfQ1VSVkUsIGN1cnZlKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkFlc0tleSh1aW50MzJfdCBrZXlfc2l6ZSkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpBRVMpOworICAgIHJldHVybiBBdXRob3JpemF0aW9uKFRBR19LRVlfU0laRSwga2V5X3NpemUpOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpIbWFjS2V5KHVpbnQzMl90IGtleV9zaXplKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkhNQUMpOworICAgIEF1dGhvcml6YXRpb24oVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSk7CisgICAgcmV0dXJuIFNpZ25pbmdLZXkoKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6UnNhU2lnbmluZ0tleSh1aW50MzJfdCBrZXlfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgcHVibGljX2V4cG9uZW50KSB7CisgICAgUnNhS2V5KGtleV9zaXplLCBwdWJsaWNfZXhwb25lbnQpOworICAgIHJldHVybiBTaWduaW5nS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYKK0F1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpSc2FFbmNyeXB0aW9uS2V5KHVpbnQzMl90IGtleV9zaXplLCB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpIHsKKyAgICBSc2FLZXkoa2V5X3NpemUsIHB1YmxpY19leHBvbmVudCk7CisgICAgcmV0dXJuIEVuY3J5cHRpb25LZXkoKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6RWNkc2FTaWduaW5nS2V5KHVpbnQzMl90IGtleV9zaXplKSB7CisgICAgRWNkc2FLZXkoa2V5X3NpemUpOworICAgIHJldHVybiBTaWduaW5nS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkVjZHNhU2lnbmluZ0tleShFY0N1cnZlIGN1cnZlKSB7CisgICAgRWNkc2FLZXkoY3VydmUpOworICAgIHJldHVybiBTaWduaW5nS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkFlc0VuY3J5cHRpb25LZXkodWludDMyX3Qga2V5X3NpemUpIHsKKyAgICBBZXNLZXkoa2V5X3NpemUpOworICAgIHJldHVybiBFbmNyeXB0aW9uS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OlNpZ25pbmdLZXkoKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfUFVSUE9TRSwgS2V5UHVycG9zZTo6U0lHTik7CisgICAgcmV0dXJuIEF1dGhvcml6YXRpb24oVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OlZFUklGWSk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkVuY3J5cHRpb25LZXkoKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfUFVSUE9TRSwgS2V5UHVycG9zZTo6RU5DUllQVCk7CisgICAgcmV0dXJuIEF1dGhvcml6YXRpb24oVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OkRFQ1JZUFQpOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpOb0RpZ2VzdE9yUGFkZGluZygpIHsKKyAgICBBdXRob3JpemF0aW9uKFRBR19ESUdFU1QsIERpZ2VzdDo6Tk9ORSk7CisgICAgcmV0dXJuIEF1dGhvcml6YXRpb24oVEFHX1BBRERJTkcsIFBhZGRpbmdNb2RlOjpOT05FKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6RWNiTW9kZSgpIHsKKyAgICByZXR1cm4gQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJgorQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkJsb2NrTW9kZShzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VjNfMDo6QmxvY2tNb2RlPiBibG9ja19tb2RlcykgeworICAgIGZvciAoYXV0byBibG9ja19tb2RlIDogYmxvY2tfbW9kZXMpIHsKKyAgICAgICAgQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgYmxvY2tfbW9kZSk7CisgICAgfQorICAgIHJldHVybiAqdGhpczsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJgorQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkRpZ2VzdChzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VjNfMDo6RGlnZXN0PiBkaWdlc3RzKSB7CisgICAgZm9yIChhdXRvIGRpZ2VzdCA6IGRpZ2VzdHMpIHsKKyAgICAgICAgQXV0aG9yaXphdGlvbihUQUdfRElHRVNULCBkaWdlc3QpOworICAgIH0KKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYKK0F1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpQYWRkaW5nKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxWM18wOjpQYWRkaW5nTW9kZT4gcGFkZGluZ19tb2RlcykgeworICAgIGZvciAoYXV0byBwYWRkaW5nIDogcGFkZGluZ19tb2RlcykgeworICAgICAgICBBdXRob3JpemF0aW9uKFRBR19QQURESU5HLCBwYWRkaW5nKTsKKyAgICB9CisgICAgcmV0dXJuICp0aGlzOworfQorCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEhBUkRXQVJFX0lOVEVSRkFDRVNfS0VZTUFTVEVSXzMwX1ZUU19GVU5DVElPTkFMX0FVVEhPUklaQVRJT05fU0VUX0hfCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleV9wYXJhbV9vdXRwdXQuY3BwIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzlmNjg1Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJrZXlfcGFyYW1fb3V0cHV0LmgiCisKKyNpbmNsdWRlIDxpb21hbmlwPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworCituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBzZXQpIHsKKyAgICBpZiAoc2V0LnNpemUoKSA9PSAwKSB7CisgICAgICAgIG9zIDw8ICIoRW1wdHkpIiA8PCA6OnN0ZDo6ZW5kbDsKKyAgICB9IGVsc2UgeworICAgICAgICBvcyA8PCAiXG4iOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNldC5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIG9zIDw8IHNldFtpXSA8PCA6OnN0ZDo6ZW5kbDsKKyAgICB9CisgICAgcmV0dXJuIG9zOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEVycm9yQ29kZSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCAoaW50KXZhbHVlOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIERpZ2VzdCB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEFsZ29yaXRobSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEJsb2NrTW9kZSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIFBhZGRpbmdNb2RlIHZhbHVlKSB7CisgICAgcmV0dXJuIG9zIDw8IHN0cmluZ2lmeSh2YWx1ZSk7Cit9CisKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgS2V5T3JpZ2luIHZhbHVlKSB7CisgICAgcmV0dXJuIG9zIDw8IHN0cmluZ2lmeSh2YWx1ZSk7Cit9CisKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgS2V5UHVycG9zZSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEVjQ3VydmUgdmFsdWUpIHsKKyAgICByZXR1cm4gb3MgPDwgc3RyaW5naWZ5KHZhbHVlKTsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBLZXlQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgb3MgPDwgc3RyaW5naWZ5VGFnKHBhcmFtLnRhZykgPDwgIjogIjsKKyAgICBzd2l0Y2ggKHR5cGVGcm9tVGFnKHBhcmFtLnRhZykpIHsKKyAgICBjYXNlIFRhZ1R5cGU6OklOVkFMSUQ6CisgICAgICAgIHJldHVybiBvcyA8PCAiIEludmFsaWQiOworICAgIGNhc2UgVGFnVHlwZTo6VUlOVF9SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpVSU5UOgorICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5pbnRlZ2VyOworICAgIGNhc2UgVGFnVHlwZTo6RU5VTV9SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpFTlVNOgorICAgICAgICBzd2l0Y2ggKHBhcmFtLnRhZykgeworICAgICAgICBjYXNlIFRhZzo6QUxHT1JJVEhNOgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYuYWxnb3JpdGhtOworICAgICAgICBjYXNlIFRhZzo6QkxPQ0tfTU9ERToKKyAgICAgICAgICAgIHJldHVybiBvcyA8PCBwYXJhbS5mLmJsb2NrTW9kZTsKKyAgICAgICAgY2FzZSBUYWc6OlBBRERJTkc6CisgICAgICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5wYWRkaW5nTW9kZTsKKyAgICAgICAgY2FzZSBUYWc6OkRJR0VTVDoKKyAgICAgICAgICAgIHJldHVybiBvcyA8PCBwYXJhbS5mLmRpZ2VzdDsKKyAgICAgICAgY2FzZSBUYWc6OkVDX0NVUlZFOgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8IChpbnQpcGFyYW0uZi5lY0N1cnZlOworICAgICAgICBjYXNlIFRhZzo6T1JJR0lOOgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYub3JpZ2luOworICAgICAgICBjYXNlIFRhZzo6QkxPQl9VU0FHRV9SRVFVSVJFTUVOVFM6CisgICAgICAgICAgICByZXR1cm4gb3MgPDwgKGludClwYXJhbS5mLmtleUJsb2JVc2FnZVJlcXVpcmVtZW50czsKKyAgICAgICAgY2FzZSBUYWc6OlBVUlBPU0U6CisgICAgICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5wdXJwb3NlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8ICIgVU5LTk9XTiBFTlVNICIgPDwgcGFyYW0uZi5pbnRlZ2VyOworICAgICAgICB9CisgICAgY2FzZSBUYWdUeXBlOjpVTE9OR19SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpVTE9ORzoKKyAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYubG9uZ0ludGVnZXI7CisgICAgY2FzZSBUYWdUeXBlOjpEQVRFOgorICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5kYXRlVGltZTsKKyAgICBjYXNlIFRhZ1R5cGU6OkJPT0w6CisgICAgICAgIHJldHVybiBvcyA8PCAidHJ1ZSI7CisgICAgY2FzZSBUYWdUeXBlOjpCSUdOVU06CisgICAgICAgIG9zIDw8ICIgQmlnbnVtOiAiOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhcmFtLmJsb2Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIG9zIDw8IDo6c3RkOjpoZXggPDwgOjpzdGQ6OnNldHcoMikgPDwgc3RhdGljX2Nhc3Q8aW50PihwYXJhbS5ibG9iW2ldKSA8PCA6OnN0ZDo6ZGVjOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvczsKKyAgICBjYXNlIFRhZ1R5cGU6OkJZVEVTOgorICAgICAgICBvcyA8PCAiIEJ5dGVzOiAiOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhcmFtLmJsb2Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIG9zIDw8IDo6c3RkOjpoZXggPDwgOjpzdGQ6OnNldHcoMikgPDwgc3RhdGljX2Nhc3Q8aW50PihwYXJhbS5ibG9iW2ldKSA8PCA6OnN0ZDo6ZGVjOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvczsKKyAgICB9CisgICAgcmV0dXJuIG9zIDw8ICJVTktOT1dOIFRBRyBUWVBFISI7Cit9CisKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBjaGFycykgeworICAgIHJldHVybiBvcyA8PCAiU1c6ICIgPDwgY2hhcnMuc29mdHdhcmVFbmZvcmNlZCA8PCA6OnN0ZDo6ZW5kbAorICAgICAgICAgICAgICA8PCAiVEVFOiAiIDw8IGNoYXJzLnRlZUVuZm9yY2VkIDw8IDo6c3RkOjplbmRsOworfQorCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmggYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleV9wYXJhbV9vdXRwdXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWRlYzJkCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxpb3N0cmVhbT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC90eXBlcy5oPgorCisjaW5jbHVkZSAia2V5bWFzdGVyX3RhZ3MuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVmFsdWVUPgorOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBOdWxsT3I8VmFsdWVUPiYgdmFsdWUpIHsKKyAgICBpZiAoIXZhbHVlLmlzT2soKSkgeworICAgICAgICBvcyA8PCAiKHZhbHVlIG5vdCBwcmVzZW50KSI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb3MgPDwgdmFsdWUudmFsdWUoKTsKKyAgICB9CisgICAgcmV0dXJuIG9zOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIHNldCk7Cis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEJsb2NrTW9kZSB2YWx1ZSk7Cis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIERpZ2VzdCB2YWx1ZSk7Cis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEVjQ3VydmUgdmFsdWUpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBFcnJvckNvZGUgdmFsdWUpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBQYWRkaW5nTW9kZSB2YWx1ZSk7Cis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IEtleUNoYXJhY3RlcmlzdGljcyYgdmFsdWUpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBLZXlQYXJhbWV0ZXImIHZhbHVlKTsKKworfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5bWFzdGVyX2hpZGxfaGFsX3Rlc3QuY3BwIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXltYXN0ZXJfaGlkbF9oYWxfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNkNGRlYwotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5bWFzdGVyX2hpZGxfaGFsX3Rlc3QuY3BwCkBAIC0wLDAgKzEsNDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAia2V5bWFzdGVyX2hpZGxfaGFsX3Rlc3QiCisjaW5jbHVkZSA8Y3V0aWxzL2xvZy5oPgorCisjaW5jbHVkZSA8aW9zdHJlYW0+CisKKyNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgorI2luY2x1ZGUgPG9wZW5zc2wveDUwOS5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL0lLZXltYXN0ZXJEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvdHlwZXMuaD4KKworI2luY2x1ZGUgPGN1dGlscy9wcm9wZXJ0aWVzLmg+CisKKyNpbmNsdWRlIDxrZXltYXN0ZXIva2V5bWFzdGVyX2NvbmZpZ3VyYXRpb24uaD4KKworI2luY2x1ZGUgImF1dGhvcml6YXRpb25fc2V0LmgiCisjaW5jbHVkZSAia2V5X3BhcmFtX291dHB1dC5oIgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlICJhdHRlc3RhdGlvbl9yZWNvcmQuaCIKKyNpbmNsdWRlICJvcGVuc3NsX3V0aWxzLmgiCisKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3VzaW5nIDo6c3RkOjpzdHJpbmc7CisKKy8vIFRoaXMgc2VydmljZV9uYW1lIHdpbGwgYmUgcGFzc2VkIHRvIGdldFNlcnZpY2Ugd2hlbiByZXRyaWV2aW5nIHRoZSBrZXltYXN0ZXIgc2VydmljZSB0byB0ZXN0LiAgVG8KKy8vIGNoYW5nZSBpdCBmcm9tICJkZWZhdWx0IiBzcGVjaWZ5IHRoZSBzZWxlY3RlZCBzZXJ2aWNlIG5hbWUgb24gdGhlIGNvbW1hbmQgbGluZS4gIFRoZSBmaXJzdAorLy8gbm9uLWd0ZXN0IGFyZ3VtZW50IHdpbGwgYmUgdXNlZCBhcyB0aGUgc2VydmljZSBuYW1lLgorc3RyaW5nIHNlcnZpY2VfbmFtZSA9ICJkZWZhdWx0IjsKKworc3RhdGljIGJvb2wgYXJtX2RlbGV0ZUFsbEtleXMgPSBmYWxzZTsKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGJvb2wgb3BlcmF0b3I9PShjb25zdCBoaWRsX3ZlYzxUPiYgYSwgY29uc3QgaGlkbF92ZWM8VD4mIGIpIHsKKyAgICBpZiAoYS5zaXplKCkgIT0gYi5zaXplKCkpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGEuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKGFbaV0gIT0gYltpXSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKworYm9vbCBvcGVyYXRvcj09KGNvbnN0IEtleVBhcmFtZXRlciYgYSwgY29uc3QgS2V5UGFyYW1ldGVyJiBiKSB7CisgICAgaWYgKGEudGFnICE9IGIudGFnKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzd2l0Y2ggKGEudGFnKSB7CisKKyAgICAvKiBCb29sZWFuIHRhZ3MgKi8KKyAgICBjYXNlIFRhZzo6SU5WQUxJRDoKKyAgICBjYXNlIFRhZzo6Q0FMTEVSX05PTkNFOgorICAgIGNhc2UgVGFnOjpJTkNMVURFX1VOSVFVRV9JRDoKKyAgICBjYXNlIFRhZzo6RUNJRVNfU0lOR0xFX0hBU0hfTU9ERToKKyAgICBjYXNlIFRhZzo6Qk9PVExPQURFUl9PTkxZOgorICAgIGNhc2UgVGFnOjpOT19BVVRIX1JFUVVJUkVEOgorICAgIGNhc2UgVGFnOjpBTExPV19XSElMRV9PTl9CT0RZOgorICAgIGNhc2UgVGFnOjpFWFBPUlRBQkxFOgorICAgIGNhc2UgVGFnOjpBTExfQVBQTElDQVRJT05TOgorICAgIGNhc2UgVGFnOjpST0xMQkFDS19SRVNJU1RBTlQ6CisgICAgY2FzZSBUYWc6OlJFU0VUX1NJTkNFX0lEX1JPVEFUSU9OOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8qIEludGVnZXIgdGFncyAqLworICAgIGNhc2UgVGFnOjpLRVlfU0laRToKKyAgICBjYXNlIFRhZzo6TUlOX01BQ19MRU5HVEg6CisgICAgY2FzZSBUYWc6Ok1JTl9TRUNPTkRTX0JFVFdFRU5fT1BTOgorICAgIGNhc2UgVGFnOjpNQVhfVVNFU19QRVJfQk9PVDoKKyAgICBjYXNlIFRhZzo6QUxMX1VTRVJTOgorICAgIGNhc2UgVGFnOjpVU0VSX0lEOgorICAgIGNhc2UgVGFnOjpPU19WRVJTSU9OOgorICAgIGNhc2UgVGFnOjpPU19QQVRDSExFVkVMOgorICAgIGNhc2UgVGFnOjpNQUNfTEVOR1RIOgorICAgIGNhc2UgVGFnOjpBVVRIX1RJTUVPVVQ6CisgICAgICAgIHJldHVybiBhLmYuaW50ZWdlciA9PSBiLmYuaW50ZWdlcjsKKworICAgIC8qIExvbmcgaW50ZWdlciB0YWdzICovCisgICAgY2FzZSBUYWc6OlJTQV9QVUJMSUNfRVhQT05FTlQ6CisgICAgY2FzZSBUYWc6OlVTRVJfU0VDVVJFX0lEOgorICAgICAgICByZXR1cm4gYS5mLmxvbmdJbnRlZ2VyID09IGIuZi5sb25nSW50ZWdlcjsKKworICAgIC8qIERhdGUtdGltZSB0YWdzICovCisgICAgY2FzZSBUYWc6OkFDVElWRV9EQVRFVElNRToKKyAgICBjYXNlIFRhZzo6T1JJR0lOQVRJT05fRVhQSVJFX0RBVEVUSU1FOgorICAgIGNhc2UgVGFnOjpVU0FHRV9FWFBJUkVfREFURVRJTUU6CisgICAgY2FzZSBUYWc6OkNSRUFUSU9OX0RBVEVUSU1FOgorICAgICAgICByZXR1cm4gYS5mLmRhdGVUaW1lID09IGIuZi5kYXRlVGltZTsKKworICAgIC8qIEJ5dGVzIHRhZ3MgKi8KKyAgICBjYXNlIFRhZzo6QVBQTElDQVRJT05fSUQ6CisgICAgY2FzZSBUYWc6OkFQUExJQ0FUSU9OX0RBVEE6CisgICAgY2FzZSBUYWc6OlJPT1RfT0ZfVFJVU1Q6CisgICAgY2FzZSBUYWc6OlVOSVFVRV9JRDoKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fQ0hBTExFTkdFOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRDoKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfQlJBTkQ6CisgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX0RFVklDRToKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfUFJPRFVDVDoKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfU0VSSUFMOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9JTUVJOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NRUlEOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NQU5VRkFDVFVSRVI6CisgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX01PREVMOgorICAgIGNhc2UgVGFnOjpBU1NPQ0lBVEVEX0RBVEE6CisgICAgY2FzZSBUYWc6Ok5PTkNFOgorICAgIGNhc2UgVGFnOjpBVVRIX1RPS0VOOgorICAgICAgICByZXR1cm4gYS5ibG9iID09IGIuYmxvYjsKKworICAgIC8qIEVudW0gdGFncyAqLworICAgIGNhc2UgVGFnOjpQVVJQT1NFOgorICAgICAgICByZXR1cm4gYS5mLnB1cnBvc2UgPT0gYi5mLnB1cnBvc2U7CisgICAgY2FzZSBUYWc6OkFMR09SSVRITToKKyAgICAgICAgcmV0dXJuIGEuZi5hbGdvcml0aG0gPT0gYi5mLmFsZ29yaXRobTsKKyAgICBjYXNlIFRhZzo6QkxPQ0tfTU9ERToKKyAgICAgICAgcmV0dXJuIGEuZi5ibG9ja01vZGUgPT0gYi5mLmJsb2NrTW9kZTsKKyAgICBjYXNlIFRhZzo6RElHRVNUOgorICAgICAgICByZXR1cm4gYS5mLmRpZ2VzdCA9PSBiLmYuZGlnZXN0OworICAgIGNhc2UgVGFnOjpQQURESU5HOgorICAgICAgICByZXR1cm4gYS5mLnBhZGRpbmdNb2RlID09IGIuZi5wYWRkaW5nTW9kZTsKKyAgICBjYXNlIFRhZzo6RUNfQ1VSVkU6CisgICAgICAgIHJldHVybiBhLmYuZWNDdXJ2ZSA9PSBiLmYuZWNDdXJ2ZTsKKyAgICBjYXNlIFRhZzo6QkxPQl9VU0FHRV9SRVFVSVJFTUVOVFM6CisgICAgICAgIHJldHVybiBhLmYua2V5QmxvYlVzYWdlUmVxdWlyZW1lbnRzID09IGIuZi5rZXlCbG9iVXNhZ2VSZXF1aXJlbWVudHM7CisgICAgY2FzZSBUYWc6OlVTRVJfQVVUSF9UWVBFOgorICAgICAgICByZXR1cm4gYS5mLmludGVnZXIgPT0gYi5mLmludGVnZXI7CisgICAgY2FzZSBUYWc6Ok9SSUdJTjoKKyAgICAgICAgcmV0dXJuIGEuZi5vcmlnaW4gPT0gYi5mLm9yaWdpbjsKKworICAgIC8qIFVuc3VwcG9ydGVkIHRhZ3MgKi8KKyAgICBjYXNlIFRhZzo6S0RGOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitib29sIG9wZXJhdG9yPT0oY29uc3QgQXV0aG9yaXphdGlvblNldCYgYSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgYikgeworICAgIHJldHVybiBhLnNpemUoKSA9PSBiLnNpemUoKSAmJiBzdGQ6OmVxdWFsKGEuYmVnaW4oKSwgYS5lbmQoKSwgYi5iZWdpbigpKTsKK30KKworYm9vbCBvcGVyYXRvcj09KGNvbnN0IEtleUNoYXJhY3RlcmlzdGljcyYgYSwgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBiKSB7CisgICAgLy8gVGhpcyBpc24ndCB2ZXJ5IGVmZmljaWVudC4gT2gsIHdlbGwuCisgICAgQXV0aG9yaXphdGlvblNldCBhX3N3KGEuc29mdHdhcmVFbmZvcmNlZCk7CisgICAgQXV0aG9yaXphdGlvblNldCBiX3N3KGIuc29mdHdhcmVFbmZvcmNlZCk7CisgICAgQXV0aG9yaXphdGlvblNldCBhX3RlZShiLnRlZUVuZm9yY2VkKTsKKyAgICBBdXRob3JpemF0aW9uU2V0IGJfdGVlKGIudGVlRW5mb3JjZWQpOworCisgICAgYV9zdy5Tb3J0KCk7CisgICAgYl9zdy5Tb3J0KCk7CisgICAgYV90ZWUuU29ydCgpOworICAgIGJfdGVlLlNvcnQoKTsKKworICAgIHJldHVybiBhX3N3ID09IGJfc3cgJiYgYV90ZWUgPT0gYl9zdzsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBzZXQpIHsKKyAgICBpZiAoc2V0LnNpemUoKSA9PSAwKQorICAgICAgICBvcyA8PCAiKEVtcHR5KSIgPDwgOjpzdGQ6OmVuZGw7CisgICAgZWxzZSB7CisgICAgICAgIG9zIDw8ICJcbiI7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2V0LnNpemUoKTsgKytpKQorICAgICAgICAgICAgb3MgPDwgc2V0W2ldIDw8IDo6c3RkOjplbmRsOworICAgIH0KKyAgICByZXR1cm4gb3M7Cit9CisKK25hbWVzcGFjZSB0ZXN0IHsKK25hbWVzcGFjZSB7CisKK3RlbXBsYXRlIDxUYWdUeXBlIHRhZ190eXBlLCBUYWcgdGFnLCB0eXBlbmFtZSBWYWx1ZVQ+Citib29sIGNvbnRhaW5zKGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIHNldCwgVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUIGV4cGVjdGVkX3ZhbHVlKSB7CisgICAgc2l6ZV90IGNvdW50ID0gc3RkOjpjb3VudF9pZihzZXQuYmVnaW4oKSwgc2V0LmVuZCgpLCBbJl0oY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgICAgICByZXR1cm4gcGFyYW0udGFnID09IHRhZyAmJiBhY2Nlc3NUYWdWYWx1ZSh0dGFnLCBwYXJhbSkgPT0gZXhwZWN0ZWRfdmFsdWU7CisgICAgfSk7CisgICAgcmV0dXJuIGNvdW50ID09IDE7Cit9CisKK3RlbXBsYXRlIDxUYWdUeXBlIHRhZ190eXBlLCBUYWcgdGFnPgorYm9vbCBjb250YWlucyhoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBzZXQsIFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+KSB7CisgICAgc2l6ZV90IGNvdW50ID0gc3RkOjpjb3VudF9pZihzZXQuYmVnaW4oKSwgc2V0LmVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsgcmV0dXJuIHBhcmFtLnRhZyA9PSB0YWc7IH0pOworICAgIHJldHVybiBjb3VudCA+IDA7Cit9CisKK2NvbnN0ZXhwciBjaGFyIGhleF92YWx1ZVsyNTZdID0gezAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsICAyLCAgMywgIDQsICA1LCAgNiwgIDcsIDgsIDksIDAsIDAsIDAsIDAsIDAsIDAsICAvLyAnMCcuLic5JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vICdBJy4uJ0YnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLyAnYScuLidmJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworCitzdHJpbmcgaGV4MnN0cihzdHJpbmcgYSkgeworICAgIHN0cmluZyBiOworICAgIHNpemVfdCBudW0gPSBhLnNpemUoKSAvIDI7CisgICAgYi5yZXNpemUobnVtKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bTsgaSsrKSB7CisgICAgICAgIGJbaV0gPSAoaGV4X3ZhbHVlW2FbaSAqIDJdICYgMHhGRl0gPDwgNCkgKyAoaGV4X3ZhbHVlW2FbaSAqIDIgKyAxXSAmIDB4RkZdKTsKKyAgICB9CisgICAgcmV0dXJuIGI7Cit9CisKK3N0cmluZyByc2Ffa2V5ID0gaGV4MnN0cigiMzA4MjAyNzUwMjAxMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDI1ZjMwODIwMjViIgorICAgICAgICAgICAgICAgICAgICAgICAgICIwMjAxMDAwMjgxODEwMGM2MDk1NDA5MDQ3ZDg2MzQ4MTJkNWEyMTgxNzZlNDVjNDFkNjBhNzViMTM5MDEiCisgICAgICAgICAgICAgICAgICAgICAgICAgImYyMzQyMjZjZmZlNzc2NTIxYzVhNzdiOWUzODk0MTdiNzFjMGI2YTQ0ZDEzYWZlNGU0YTI4MDVkNDZjOSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZGEyOTM1YWRiMWZmMGMxZjI0ZWEwNmU2MmIyMGQ3NzY0MzBhNGQ0MzUxNTcyMzNjNmY5MTY3ODNjMzBlIgorICAgICAgICAgICAgICAgICAgICAgICAgICIzMTBmY2JkODliODVjMmQ1Njc3MTE2OTc4NWFjMTJiY2EyNDRhYmRhNzJiZmIxOWZjNDRkMjdjODFlMWQiCisgICAgICAgICAgICAgICAgICAgICAgICAgIjkyZGUyODRmNDA2MWVkZmQ5OTI4MDc0NWVhNmQyNTAyMDMwMTAwMDEwMjgxODAxYmUwZjA0ZDljYWUzNyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMTg2OTFmMDM1MzM4MzA4ZTkxNTY0YjU1ODk5ZmZiNTA4NGQyNDYwZTY2MzAyNTdlMDViM2NlYWIwMjk3IgorICAgICAgICAgICAgICAgICAgICAgICAgICIyZGZhYmNkNmNlNWY2ZWUyNTg5ZWI2NzkxMWVkMGZhYzE2ZTQzYTQ0NGI4Yzg2MWU1NDRhMDU5MzM2NTciCisgICAgICAgICAgICAgICAgICAgICAgICAgIjcyZjhiYWY2YjIyZmM5ZTNjNWYxMDI0YjA2M2FjMDgwYTdiMjIzNGNmOGFlZThmNmM0N2JiZjRmZDNhYyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZTcyNDAyOTBiZWYxNmMwYjNmN2YzY2RkNjRjZTNhYjU5MTJjZjZlMzJmMzlhYjE4ODM1OGFmY2NjZDgwIgorICAgICAgICAgICAgICAgICAgICAgICAgICI4MTAyNDEwMGU0YjQ5ZWY1MGY3NjVkM2IyNGRkZTAxYWNlYWFmMTMwZjJjNzY2NzBhOTFhNjFhZTA4YWYiCisgICAgICAgICAgICAgICAgICAgICAgICAgIjQ5N2I0YTgyYmU2ZGVlOGZjZGQ1ZTNmN2JhMWNmYjFmMGM5MjZiODhmODhjOTJiZmFiMTM3ZmJhMjI4NSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMjI3YjgzYzM0MmZmN2M1NTAyNDEwMGRkYWJiNTgzOWM0YzdmNmJmM2Q0MTgzMjMxZjAwNWIzMWFhNThhIgorICAgICAgICAgICAgICAgICAgICAgICAgICJmZmRkYTVjNzllNGNjZTIxN2Y2YmM5MzBkYmU1NjNkNDgwNzA2YzI0ZTllYmZjYWIyOGE2Y2RlZmQzMjQiCisgICAgICAgICAgICAgICAgICAgICAgICAgImI3N2UxYmY3MjUxYjcwOTA5MmMyNGZmNTAxZmQ5MTAyNDAyM2Q0MzQwZWRhMzQ0NWQ4Y2QyNmMxNDQxMSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZGE2ZmRjYTYzYzFjY2Q0YjgwYTk4YWQ1MmI3OGNjOGFkOGJlYjI4NDJjMWQyODA0MDViYzJmNmMxYmVhIgorICAgICAgICAgICAgICAgICAgICAgICAgICIyMTRhMWQ3NDJhYjk5NmIzNWI2M2E4MmE1ZTQ3MGZhODhkYmY4MjNjZGQwMjQwMWI3YjU3NDQ5YWQzMGQiCisgICAgICAgICAgICAgICAgICAgICAgICAgIjE1MTgyNDlhNWY1NmJiOTgyOTRkNGI2YWMxMmZmYzg2OTQwNDk3YTVhNTgzN2E2Y2Y5NDYyNjJiNDk0NSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMjZkMzI4YzExZTExMjYzODBmZGUwNGMyNGY5MTZkZWMyNTA4OTJkYjA5YTZkNzdjZGJhMzUxMDI0MDc3IgorICAgICAgICAgICAgICAgICAgICAgICAgICI2MmNkOGY0ZDA1MGRhNTZiZDU5MWFkYjUxNWQyNGQ3Y2NkMzJjY2EwZDA1Zjg2NmQ1ODM1MTRiZDczMjQiCisgICAgICAgICAgICAgICAgICAgICAgICAgImQ1ZjMzNjQ1ZThlZDhiNGExY2IzY2M0YTFkNjc5ODczOTlmMmEwOWY1YjNmYjY4Yzg4ZDVlNWQ5MGFjMyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMzQ5MmQ2Iik7CisKK3N0cmluZyBlY19rZXkgPSBoZXgyc3RyKCIzMDgxODcwMjAxMDAzMDEzMDYwNzJhODY0OGNlM2QwMjAxMDYwODJhODY0OGNlM2QwMzAxMDcwNDZkMzAiCisgICAgICAgICAgICAgICAgICAgICAgICAiNmIwMjAxMDEwNDIwNzM3YzJlY2Q3YjhkMTk0MGJmMjkzMGFhOWI0ZWQzZmY5NDFlZWQwOTM2NmJjMDMyIgorICAgICAgICAgICAgICAgICAgICAgICAgIjk5OTg2NDgxZjNhNGQ4NTlhMTQ0MDM0MjAwMDRiZjg1ZDc3MjBkMDdjMjU0NjE2ODNiYzY0OGI0Nzc4YSIKKyAgICAgICAgICAgICAgICAgICAgICAgICI5YTE0ZGQ4YTAyNGUzYmRkOGM3ZGRkOWFiMmI1MjhiYmM3YWExYjUxZjE0ZWJiYmIwYmQwY2UyMWJjYzQiCisgICAgICAgICAgICAgICAgICAgICAgICAiMWM2ZWIwMDA4M2NmMzM3NmQxMWZkNDQ5NDllMGIyMTgzYmZlIik7CisKK3N0cnVjdCBSU0FfRGVsZXRlIHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoUlNBKiBwKSB7IFJTQV9mcmVlKHApOyB9Cit9OworCitYNTA5KiBwYXJzZV9jZXJ0X2Jsb2IoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGJsb2IpIHsKKyAgICBjb25zdCB1aW50OF90KiBwID0gYmxvYi5kYXRhKCk7CisgICAgcmV0dXJuIGQyaV9YNTA5KG51bGxwdHIsICZwLCBibG9iLnNpemUoKSk7Cit9CisKK2Jvb2wgdmVyaWZ5X2NoYWluKGNvbnN0IGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiYgY2hhaW4pIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoYWluLnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICBhdXRvJiBrZXlfY2VydF9ibG9iID0gY2hhaW5baV07CisgICAgICAgIGF1dG8mIHNpZ25pbmdfY2VydF9ibG9iID0gY2hhaW5baSArIDFdOworCisgICAgICAgIFg1MDlfUHRyIGtleV9jZXJ0KHBhcnNlX2NlcnRfYmxvYihrZXlfY2VydF9ibG9iKSk7CisgICAgICAgIFg1MDlfUHRyIHNpZ25pbmdfY2VydChwYXJzZV9jZXJ0X2Jsb2Ioc2lnbmluZ19jZXJ0X2Jsb2IpKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoISFrZXlfY2VydC5nZXQoKSAmJiAhIXNpZ25pbmdfY2VydC5nZXQoKSk7CisgICAgICAgIGlmICgha2V5X2NlcnQuZ2V0KCkgfHwgIXNpZ25pbmdfY2VydC5nZXQoKSkgcmV0dXJuIGZhbHNlOworCisgICAgICAgIEVWUF9QS0VZX1B0ciBzaWduaW5nX3B1YmtleShYNTA5X2dldF9wdWJrZXkoc2lnbmluZ19jZXJ0LmdldCgpKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKCEhc2lnbmluZ19wdWJrZXkuZ2V0KCkpOworICAgICAgICBpZiAoIXNpZ25pbmdfcHVia2V5LmdldCgpKSByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgRVhQRUNUX0VRKDEsIFg1MDlfdmVyaWZ5KGtleV9jZXJ0LmdldCgpLCBzaWduaW5nX3B1YmtleS5nZXQoKSkpCisgICAgICAgICAgICA8PCAiVmVyaWZpY2F0aW9uIG9mIGNlcnRpZmljYXRlICIgPDwgaSA8PCAiIGZhaWxlZCI7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vIEV4dHJhY3QgYXR0ZXN0YXRpb24gcmVjb3JkIGZyb20gY2VydC4gUmV0dXJuZWQgb2JqZWN0IGlzIHN0aWxsIHBhcnQgb2YgY2VydDsgZG9uJ3QgZnJlZSBpdAorLy8gc2VwYXJhdGVseS4KK0FTTjFfT0NURVRfU1RSSU5HKiBnZXRfYXR0ZXN0YXRpb25fcmVjb3JkKFg1MDkqIGNlcnRpZmljYXRlKSB7CisgICAgQVNOMV9PQkpFQ1RfUHRyIG9pZChPQkpfdHh0Mm9iaihrQXR0ZXN0aW9uUmVjb3JkT2lkLCAxIC8qIGRvdHRlZCBzdHJpbmcgZm9ybWF0ICovKSk7CisgICAgRVhQRUNUX1RSVUUoISFvaWQuZ2V0KCkpOworICAgIGlmICghb2lkLmdldCgpKSByZXR1cm4gbnVsbHB0cjsKKworICAgIGludCBsb2NhdGlvbiA9IFg1MDlfZ2V0X2V4dF9ieV9PQkooY2VydGlmaWNhdGUsIG9pZC5nZXQoKSwgLTEgLyogc2VhcmNoIGZyb20gYmVnaW5uaW5nICovKTsKKyAgICBFWFBFQ1RfTkUoLTEsIGxvY2F0aW9uKTsKKyAgICBpZiAobG9jYXRpb24gPT0gLTEpIHJldHVybiBudWxscHRyOworCisgICAgWDUwOV9FWFRFTlNJT04qIGF0dGVzdF9yZWNfZXh0ID0gWDUwOV9nZXRfZXh0KGNlcnRpZmljYXRlLCBsb2NhdGlvbik7CisgICAgRVhQRUNUX1RSVUUoISFhdHRlc3RfcmVjX2V4dCk7CisgICAgaWYgKCFhdHRlc3RfcmVjX2V4dCkgcmV0dXJuIG51bGxwdHI7CisKKyAgICBBU04xX09DVEVUX1NUUklORyogYXR0ZXN0X3JlYyA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGF0dGVzdF9yZWNfZXh0KTsKKyAgICBFWFBFQ1RfVFJVRSghIWF0dGVzdF9yZWMpOworICAgIHJldHVybiBhdHRlc3RfcmVjOworfQorCitib29sIHRhZ19pbl9saXN0KGNvbnN0IEtleVBhcmFtZXRlciYgZW50cnkpIHsKKyAgICAvLyBBdHRlc3RhdGlvbnMgZG9uJ3QgY29udGFpbiBldmVyeXRoaW5nIGluIGtleSBhdXRob3JpemF0aW9uIGxpc3RzLCBzbyB3ZSBuZWVkIHRvIGZpbHRlcgorICAgIC8vIHRoZSBrZXkgbGlzdHMgdG8gcHJvZHVjZSB0aGUgbGlzdHMgdGhhdCB3ZSBleHBlY3QgdG8gbWF0Y2ggdGhlIGF0dGVzdGF0aW9ucy4KKyAgICBhdXRvIHRhZ19saXN0ID0geworICAgICAgICBUYWc6OlVTRVJfSUQsIFRhZzo6SU5DTFVERV9VTklRVUVfSUQsIFRhZzo6QkxPQl9VU0FHRV9SRVFVSVJFTUVOVFMsCisgICAgICAgIFRhZzo6RUNfQ1VSVkUgLyogVGFnOjpFQ19DVVJWRSB3aWxsIGJlIGluY2x1ZGVkIGJ5IEtNMiBpbXBsZW1lbnRhdGlvbnMgKi8sCisgICAgfTsKKyAgICByZXR1cm4gc3RkOjpmaW5kKHRhZ19saXN0LmJlZ2luKCksIHRhZ19saXN0LmVuZCgpLCBlbnRyeS50YWcpICE9IHRhZ19saXN0LmVuZCgpOworfQorCitBdXRob3JpemF0aW9uU2V0IGZpbHRlcl90YWdzKGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCkgeworICAgIEF1dGhvcml6YXRpb25TZXQgZmlsdGVyZWQ7CisgICAgc3RkOjpyZW1vdmVfY29weV9pZihzZXQuYmVnaW4oKSwgc2V0LmVuZCgpLCBzdGQ6OmJhY2tfaW5zZXJ0ZXIoZmlsdGVyZWQpLCB0YWdfaW5fbGlzdCk7CisgICAgcmV0dXJuIGZpbHRlcmVkOworfQorCitzdGQ6OnN0cmluZyBtYWtlX3N0cmluZyhjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKSB7CisgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBsZW5ndGgpOworfQorCit0ZW1wbGF0ZSA8c2l6ZV90IE4+IHN0ZDo6c3RyaW5nIG1ha2Vfc3RyaW5nKGNvbnN0IHVpbnQ4X3QgKCZhKVtOXSkgeworICAgIHJldHVybiBtYWtlX3N0cmluZyhhLCBOKTsKK30KKworY2xhc3MgSGlkbEJ1ZiA6IHB1YmxpYyBoaWRsX3ZlYzx1aW50OF90PiB7CisgICAgdHlwZWRlZiBoaWRsX3ZlYzx1aW50OF90PiBzdXBlcjsKKworICBwdWJsaWM6CisgICAgSGlkbEJ1ZigpIHt9CisgICAgSGlkbEJ1Zihjb25zdCBzdXBlciYgb3RoZXIpIDogc3VwZXIob3RoZXIpIHt9CisgICAgSGlkbEJ1ZihzdXBlciYmIG90aGVyKSA6IHN1cGVyKHN0ZDo6bW92ZShvdGhlcikpIHt9CisgICAgZXhwbGljaXQgSGlkbEJ1Zihjb25zdCBzdGQ6OnN0cmluZyYgb3RoZXIpIDogSGlkbEJ1ZigpIHsgKnRoaXMgPSBvdGhlcjsgfQorCisgICAgSGlkbEJ1ZiYgb3BlcmF0b3I9KGNvbnN0IHN1cGVyJiBvdGhlcikgeworICAgICAgICBzdXBlcjo6b3BlcmF0b3I9KG90aGVyKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIEhpZGxCdWYmIG9wZXJhdG9yPShzdXBlciYmIG90aGVyKSB7CisgICAgICAgIHN1cGVyOjpvcGVyYXRvcj0oc3RkOjptb3ZlKG90aGVyKSk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBIaWRsQnVmJiBvcGVyYXRvcj0oY29uc3Qgc3RyaW5nJiBvdGhlcikgeworICAgICAgICByZXNpemUob3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdGhlci5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgKCp0aGlzKVtpXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KG90aGVyW2ldKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgc3RyaW5nIHRvX3N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKCkpLCBzaXplKCkpOyB9Cit9OworCitjb25zdGV4cHIgdWludDY0X3Qga09wSGFuZGxlU2VudGluZWwgPSAweEZGRkZGRkZGRkZGRkZGRkY7CisKK30gIC8vIG5hbWVzcGFjZQorCitjbGFzcyBLZXltYXN0ZXJIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgIHB1YmxpYzoKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAoa2V5X2Jsb2JfLnNpemUoKSkgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgpKTsKKyAgICAgICAgfQorICAgICAgICBBYm9ydElmTmVlZGVkKCk7CisgICAgfQorCisgICAgLy8gU2V0VXBUZXN0Q2FzZSBydW5zIG9ubHkgb25jZSBwZXIgdGVzdCBjYXNlLCBub3Qgb25jZSBwZXIgdGVzdC4KKyAgICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgeworICAgICAgICBrZXltYXN0ZXJfID0gSUtleW1hc3RlckRldmljZTo6Z2V0U2VydmljZShzZXJ2aWNlX25hbWUpOworICAgICAgICBBU1NFUlRfTkUoa2V5bWFzdGVyXywgbnVsbHB0cik7CisKKyAgICAgICAgQVNTRVJUX1RSVUUoCisgICAgICAgICAgICBrZXltYXN0ZXJfCisgICAgICAgICAgICAgICAgLT5nZXRIYXJkd2FyZUZlYXR1cmVzKFsmXShib29sIGlzU2VjdXJlLCBib29sIHN1cHBvcnRzRWMsIGJvb2wgc3VwcG9ydHNTeW1tZXRyaWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHN1cHBvcnRzQXR0ZXN0YXRpb24sIGJvb2wgc3VwcG9ydHNBbGxEaWdlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIG5hbWUsIGNvbnN0IGhpZGxfc3RyaW5nJiBhdXRob3IpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNfc2VjdXJlXyA9IGlzU2VjdXJlOworICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c19lY18gPSBzdXBwb3J0c0VjOworICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c19zeW1tZXRyaWNfID0gc3VwcG9ydHNTeW1tZXRyaWM7CisgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzX2F0dGVzdGF0aW9uXyA9IHN1cHBvcnRzQXR0ZXN0YXRpb247CisgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzX2FsbF9kaWdlc3RzXyA9IHN1cHBvcnRzQWxsRGlnZXN0czsKKyAgICAgICAgICAgICAgICAgICAgbmFtZV8gPSBuYW1lOworICAgICAgICAgICAgICAgICAgICBhdXRob3JfID0gYXV0aG9yOworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLmlzT2soKSk7CisKKyAgICAgICAgb3NfdmVyc2lvbl8gPSA6OmtleW1hc3Rlcjo6R2V0T3NWZXJzaW9uKCk7CisgICAgICAgIG9zX3BhdGNoX2xldmVsXyA9IDo6a2V5bWFzdGVyOjpHZXRPc1BhdGNobGV2ZWwoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeyBrZXltYXN0ZXJfLmNsZWFyKCk7IH0KKworICAgIHN0YXRpYyBJS2V5bWFzdGVyRGV2aWNlJiBrZXltYXN0ZXIoKSB7IHJldHVybiAqa2V5bWFzdGVyXzsgfQorICAgIHN0YXRpYyB1aW50MzJfdCBvc192ZXJzaW9uKCkgeyByZXR1cm4gb3NfdmVyc2lvbl87IH0KKyAgICBzdGF0aWMgdWludDMyX3Qgb3NfcGF0Y2hfbGV2ZWwoKSB7IHJldHVybiBvc19wYXRjaF9sZXZlbF87IH0KKworICAgIEF1dGhvcml6YXRpb25TZXQgVXNlckF1dGhzKCkgeyByZXR1cm4gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19VU0VSX0lELCA3KTsgfQorCisgICAgRXJyb3JDb2RlIEdlbmVyYXRlS2V5KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGtleV9kZXNjLCBIaWRsQnVmKiBrZXlfYmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Q2hhcmFjdGVyaXN0aWNzKiBrZXlfY2hhcmFjdGVyaXN0aWNzKSB7CisgICAgICAgIEVYUEVDVF9ORShrZXlfYmxvYiwgbnVsbHB0cik7CisgICAgICAgIEVYUEVDVF9ORShrZXlfY2hhcmFjdGVyaXN0aWNzLCBudWxscHRyKTsKKyAgICAgICAgRVhQRUNUX0VRKDBVLCBrZXlfYmxvYi0+c2l6ZSgpKTsKKworICAgICAgICBFcnJvckNvZGUgZXJyb3I7CisgICAgICAgIEVYUEVDVF9UUlVFKGtleW1hc3Rlcl8KKyAgICAgICAgICAgICAgICAgICAgICAgIC0+Z2VuZXJhdGVLZXkoa2V5X2Rlc2MuaGlkbF9kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgSGlkbEJ1ZiYgaGlkbF9rZXlfYmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEtleUNoYXJhY3RlcmlzdGljcyYgaGlkbF9rZXlfY2hhcmFjdGVyaXN0aWNzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqa2V5X2Jsb2IgPSBoaWRsX2tleV9ibG9iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmtleV9jaGFyYWN0ZXJpc3RpY3MgPSBoaWRsX2tleV9jaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgLy8gT24gZXJyb3IsIGJsb2IgJiBjaGFyYWN0ZXJpc3RpY3Mgc2hvdWxkIGJlIGVtcHR5LgorICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCBrZXlfYmxvYi0+c2l6ZSgpKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUSgwVSwgKGtleV9jaGFyYWN0ZXJpc3RpY3MtPnNvZnR3YXJlRW5mb3JjZWQuc2l6ZSgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9jaGFyYWN0ZXJpc3RpY3MtPnRlZUVuZm9yY2VkLnNpemUoKSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgR2VuZXJhdGVLZXkoY29uc3QgQXV0aG9yaXphdGlvblNldCYga2V5X2Rlc2MpIHsKKyAgICAgICAgcmV0dXJuIEdlbmVyYXRlS2V5KGtleV9kZXNjLCAma2V5X2Jsb2JfLCAma2V5X2NoYXJhY3RlcmlzdGljc18pOworICAgIH0KKworICAgIEVycm9yQ29kZSBJbXBvcnRLZXkoY29uc3QgQXV0aG9yaXphdGlvblNldCYga2V5X2Rlc2MsIEtleUZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGtleV9tYXRlcmlhbCwgSGlkbEJ1Zioga2V5X2Jsb2IsCisgICAgICAgICAgICAgICAgICAgICAgICBLZXlDaGFyYWN0ZXJpc3RpY3MqIGtleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yOworICAgICAgICBFWFBFQ1RfVFJVRShrZXltYXN0ZXJfCisgICAgICAgICAgICAgICAgICAgICAgICAtPmltcG9ydEtleShrZXlfZGVzYy5oaWRsX2RhdGEoKSwgZm9ybWF0LCBIaWRsQnVmKGtleV9tYXRlcmlhbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oRXJyb3JDb2RlIGhpZGxfZXJyb3IsIGNvbnN0IEhpZGxCdWYmIGhpZGxfa2V5X2Jsb2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBoaWRsX2tleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmtleV9ibG9iID0gaGlkbF9rZXlfYmxvYjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqa2V5X2NoYXJhY3RlcmlzdGljcyA9IGhpZGxfa2V5X2NoYXJhY3RlcmlzdGljczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgLy8gT24gZXJyb3IsIGJsb2IgJiBjaGFyYWN0ZXJpc3RpY3Mgc2hvdWxkIGJlIGVtcHR5LgorICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCBrZXlfYmxvYi0+c2l6ZSgpKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUSgwVSwgKGtleV9jaGFyYWN0ZXJpc3RpY3MtPnNvZnR3YXJlRW5mb3JjZWQuc2l6ZSgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9jaGFyYWN0ZXJpc3RpY3MtPnRlZUVuZm9yY2VkLnNpemUoKSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgSW1wb3J0S2V5KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGtleV9kZXNjLCBLZXlGb3JtYXQgZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBrZXlfbWF0ZXJpYWwpIHsKKyAgICAgICAgcmV0dXJuIEltcG9ydEtleShrZXlfZGVzYywgZm9ybWF0LCBrZXlfbWF0ZXJpYWwsICZrZXlfYmxvYl8sICZrZXlfY2hhcmFjdGVyaXN0aWNzXyk7CisgICAgfQorCisgICAgRXJyb3JDb2RlIEV4cG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3QgSGlkbEJ1ZiYgY2xpZW50X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSGlkbEJ1ZiYgYXBwX2RhdGEsIEhpZGxCdWYqIGtleV9tYXRlcmlhbCkgeworICAgICAgICBFcnJvckNvZGUgZXJyb3I7CisgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAga2V5bWFzdGVyXworICAgICAgICAgICAgICAgIC0+ZXhwb3J0S2V5KGZvcm1hdCwga2V5X2Jsb2IsIGNsaWVudF9pZCwgYXBwX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKEVycm9yQ29kZSBoaWRsX2Vycm9yX2NvZGUsIGNvbnN0IEhpZGxCdWYmIGhpZGxfa2V5X21hdGVyaWFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gaGlkbF9lcnJvcl9jb2RlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqa2V5X21hdGVyaWFsID0gaGlkbF9rZXlfbWF0ZXJpYWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgLy8gT24gZXJyb3IsIGJsb2Igc2hvdWxkIGJlIGVtcHR5LgorICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCBrZXlfbWF0ZXJpYWwtPnNpemUoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBFeHBvcnRLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgSGlkbEJ1Zioga2V5X21hdGVyaWFsKSB7CisgICAgICAgIEhpZGxCdWYgY2xpZW50X2lkLCBhcHBfZGF0YTsKKyAgICAgICAgcmV0dXJuIEV4cG9ydEtleShmb3JtYXQsIGtleV9ibG9iXywgY2xpZW50X2lkLCBhcHBfZGF0YSwga2V5X21hdGVyaWFsKTsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgRGVsZXRlS2V5KEhpZGxCdWYqIGtleV9ibG9iLCBib29sIGtlZXBfa2V5X2Jsb2IgPSBmYWxzZSkgeworICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBrZXltYXN0ZXJfLT5kZWxldGVLZXkoKmtleV9ibG9iKTsKKyAgICAgICAgaWYgKCFrZWVwX2tleV9ibG9iKSAqa2V5X2Jsb2IgPSBIaWRsQnVmKCk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgRGVsZXRlS2V5KGJvb2wga2VlcF9rZXlfYmxvYiA9IGZhbHNlKSB7CisgICAgICAgIHJldHVybiBEZWxldGVLZXkoJmtleV9ibG9iXywga2VlcF9rZXlfYmxvYik7CisgICAgfQorCisgICAgRXJyb3JDb2RlIERlbGV0ZUFsbEtleXMoKSB7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IGtleW1hc3Rlcl8tPmRlbGV0ZUFsbEtleXMoKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBHZXRDaGFyYWN0ZXJpc3RpY3MoY29uc3QgSGlkbEJ1ZiYga2V5X2Jsb2IsIGNvbnN0IEhpZGxCdWYmIGNsaWVudF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhpZGxCdWYmIGFwcF9kYXRhLCBLZXlDaGFyYWN0ZXJpc3RpY3MqIGtleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yOworICAgICAgICBrZXltYXN0ZXJfLT5nZXRLZXlDaGFyYWN0ZXJpc3RpY3MoCisgICAgICAgICAgICBrZXlfYmxvYiwgY2xpZW50X2lkLCBhcHBfZGF0YSwKKyAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBoaWRsX2tleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3IsICprZXlfY2hhcmFjdGVyaXN0aWNzID0gaGlkbF9rZXlfY2hhcmFjdGVyaXN0aWNzOworICAgICAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgR2V0Q2hhcmFjdGVyaXN0aWNzKGNvbnN0IEhpZGxCdWYmIGtleV9ibG9iLCBLZXlDaGFyYWN0ZXJpc3RpY3MqIGtleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgSGlkbEJ1ZiBjbGllbnRfaWQsIGFwcF9kYXRhOworICAgICAgICByZXR1cm4gR2V0Q2hhcmFjdGVyaXN0aWNzKGtleV9ibG9iLCBjbGllbnRfaWQsIGFwcF9kYXRhLCBrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCBjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgaW5fcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zLCBPcGVyYXRpb25IYW5kbGUqIG9wX2hhbmRsZSkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkJlZ2luIik7CisgICAgICAgIEVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAgT3BlcmF0aW9uSGFuZGxlIHNhdmVkX2hhbmRsZSA9ICpvcF9oYW5kbGU7CisgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAga2V5bWFzdGVyXworICAgICAgICAgICAgICAgIC0+YmVnaW4ocHVycG9zZSwga2V5X2Jsb2IsIGluX3BhcmFtcy5oaWRsX2RhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaGlkbF9vdXRfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGhpZGxfb3BfaGFuZGxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBoaWRsX2Vycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvdXRfcGFyYW1zID0gaGlkbF9vdXRfcGFyYW1zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvcF9oYW5kbGUgPSBoaWRsX29wX2hhbmRsZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICAvLyBTb21lIGltcGxlbWVudGF0aW9ucyBtYXkgbW9kaWZ5ICpvcF9oYW5kbGUgb24gZXJyb3IuCisgICAgICAgICAgICAqb3BfaGFuZGxlID0gc2F2ZWRfaGFuZGxlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJCZWdpbiIpOworICAgICAgICBFWFBFQ1RfRVEoa09wSGFuZGxlU2VudGluZWwsIG9wX2hhbmRsZV8pOworICAgICAgICByZXR1cm4gQmVnaW4ocHVycG9zZSwga2V5X2Jsb2JfLCBpbl9wYXJhbXMsIG91dF9wYXJhbXMsICZvcF9oYW5kbGVfKTsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJCZWdpbiIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IEJlZ2luKHB1cnBvc2UsIGluX3BhcmFtcywgJm91dF9wYXJhbXMpOworICAgICAgICBFWFBFQ1RfVFJVRShvdXRfcGFyYW1zLmVtcHR5KCkpOworICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgRXJyb3JDb2RlIFVwZGF0ZShPcGVyYXRpb25IYW5kbGUgb3BfaGFuZGxlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGlucHV0LCBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zLCBzdHJpbmcqIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgIHNpemVfdCogaW5wdXRfY29uc3VtZWQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJVcGRhdGUiKTsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yOworICAgICAgICBFWFBFQ1RfVFJVRShrZXltYXN0ZXJfCisgICAgICAgICAgICAgICAgICAgICAgICAtPnVwZGF0ZShvcF9oYW5kbGUsIGluX3BhcmFtcy5oaWRsX2RhdGEoKSwgSGlkbEJ1ZihpbnB1dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oRXJyb3JDb2RlIGhpZGxfZXJyb3IsIHVpbnQzMl90IGhpZGxfaW5wdXRfY29uc3VtZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaGlkbF9vdXRfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhpZGxCdWYmIGhpZGxfb3V0cHV0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBoaWRsX2Vycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9wYXJhbXMtPnB1c2hfYmFjayhBdXRob3JpemF0aW9uU2V0KGhpZGxfb3V0X3BhcmFtcykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC0+YXBwZW5kKGhpZGxfb3V0cHV0LnRvX3N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqaW5wdXRfY29uc3VtZWQgPSBoaWRsX2lucHV0X2NvbnN1bWVkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgRXJyb3JDb2RlIFVwZGF0ZShjb25zdCBzdHJpbmcmIGlucHV0LCBzdHJpbmcqIG91dCwgc2l6ZV90KiBpbnB1dF9jb25zdW1lZCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIlVwZGF0ZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IFVwZGF0ZShvcF9oYW5kbGVfLCBBdXRob3JpemF0aW9uU2V0KCkgLyogaW5fcGFyYW1zICovLCBpbnB1dCwgJm91dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQsIGlucHV0X2NvbnN1bWVkKTsKKyAgICAgICAgRVhQRUNUX1RSVUUob3V0X3BhcmFtcy5lbXB0eSgpKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBGaW5pc2goT3BlcmF0aW9uSGFuZGxlIG9wX2hhbmRsZSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgaW5fcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBpbnB1dCwgY29uc3Qgc3RyaW5nJiBzaWduYXR1cmUsIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICBzdHJpbmcqIG91dHB1dCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkZpbmlzaCIpOworICAgICAgICBFcnJvckNvZGUgZXJyb3I7CisgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAga2V5bWFzdGVyXworICAgICAgICAgICAgICAgIC0+ZmluaXNoKG9wX2hhbmRsZSwgaW5fcGFyYW1zLmhpZGxfZGF0YSgpLCBIaWRsQnVmKGlucHV0KSwgSGlkbEJ1ZihzaWduYXR1cmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaGlkbF9vdXRfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBIaWRsQnVmJiBoaWRsX291dHB1dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvdXRfcGFyYW1zID0gaGlkbF9vdXRfcGFyYW1zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQtPmFwcGVuZChoaWRsX291dHB1dC50b19zdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgb3BfaGFuZGxlXyA9IGtPcEhhbmRsZVNlbnRpbmVsOyAgLy8gU28gZHRvciBkb2Vzbid0IEFib3J0KCkuCisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgRmluaXNoKGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgc3RyaW5nKiBvdXRwdXQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJGaW5pc2giKTsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBvdXRfcGFyYW1zOworICAgICAgICBzdHJpbmcgZmluaXNoX291dHB1dDsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gRmluaXNoKG9wX2hhbmRsZV8sIEF1dGhvcml6YXRpb25TZXQoKSAvKiBpbl9wYXJhbXMgKi8sIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiAvKiBzaWduYXR1cmUgKi8sICZvdXRfcGFyYW1zLCBvdXRwdXQpOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgcmV0dXJuIGVycm9yOworICAgICAgICB9CisgICAgICAgIEVYUEVDVF9FUSgwVSwgb3V0X3BhcmFtcy5zaXplKCkpOworICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgRXJyb3JDb2RlIEZpbmlzaChjb25zdCBzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IHN0cmluZyYgc2lnbmF0dXJlLCBzdHJpbmcqIG91dHB1dCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkZpbmlzaCIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IEZpbmlzaChvcF9oYW5kbGVfLCBBdXRob3JpemF0aW9uU2V0KCkgLyogaW5fcGFyYW1zICovLCBtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0X3BhcmFtcywgb3V0cHV0KTsKKyAgICAgICAgb3BfaGFuZGxlXyA9IGtPcEhhbmRsZVNlbnRpbmVsOyAgLy8gU28gZHRvciBkb2Vzbid0IEFib3J0KCkuCisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgRVhQRUNUX0VRKDBVLCBvdXRfcGFyYW1zLnNpemUoKSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQWJvcnQoT3BlcmF0aW9uSGFuZGxlIG9wX2hhbmRsZSkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkFib3J0Iik7CisgICAgICAgIGF1dG8gcmV0dmFsID0ga2V5bWFzdGVyXy0+YWJvcnQob3BfaGFuZGxlKTsKKyAgICAgICAgRVhQRUNUX1RSVUUocmV0dmFsLmlzT2soKSk7CisgICAgICAgIHJldHVybiByZXR2YWw7CisgICAgfQorCisgICAgdm9pZCBBYm9ydElmTmVlZGVkKCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkFib3J0SWZOZWVkZWQiKTsKKyAgICAgICAgaWYgKG9wX2hhbmRsZV8gIT0ga09wSGFuZGxlU2VudGluZWwpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBBYm9ydChvcF9oYW5kbGVfKSk7CisgICAgICAgICAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBFcnJvckNvZGUgQXR0ZXN0S2V5KGNvbnN0IEhpZGxCdWYmIGtleV9ibG9iLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBhdHRlc3RfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgaGlkbF92ZWM8aGlkbF92ZWM8dWludDhfdD4+KiBjZXJ0X2NoYWluKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQXR0ZXN0S2V5Iik7CisgICAgICAgIEVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAga2V5bWFzdGVyXy0+YXR0ZXN0S2V5KAorICAgICAgICAgICAga2V5X2Jsb2IsIGF0dGVzdF9wYXJhbXMuaGlkbF9kYXRhKCksCisgICAgICAgICAgICBbJl0oRXJyb3JDb2RlIGhpZGxfZXJyb3IsIGNvbnN0IGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiYgaGlkbF9jZXJ0X2NoYWluKSB7CisgICAgICAgICAgICAgICAgZXJyb3IgPSBoaWRsX2Vycm9yOworICAgICAgICAgICAgICAgICpjZXJ0X2NoYWluID0gaGlkbF9jZXJ0X2NoYWluOworICAgICAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQXR0ZXN0S2V5KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGF0dGVzdF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4qIGNlcnRfY2hhaW4pIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJBdHRlc3RLZXkiKTsKKyAgICAgICAgcmV0dXJuIEF0dGVzdEtleShrZXlfYmxvYl8sIGF0dGVzdF9wYXJhbXMsIGNlcnRfY2hhaW4pOworICAgIH0KKworICAgIHN0cmluZyBQcm9jZXNzTWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgS2V5UHVycG9zZSBvcGVyYXRpb24sIGNvbnN0IHN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXV0aG9yaXphdGlvblNldCYgaW5fcGFyYW1zLCBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiUHJvY2Vzc01lc3NhZ2UiKTsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgICAgIEJlZ2luKG9wZXJhdGlvbiwga2V5X2Jsb2IsIGluX3BhcmFtcywgJmJlZ2luX291dF9wYXJhbXMsICZvcF9oYW5kbGVfKSk7CisKKyAgICAgICAgc3RyaW5nIHVudXNlZDsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBmaW5pc2hfcGFyYW1zOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9vdXRfcGFyYW1zOworICAgICAgICBzdHJpbmcgb3V0cHV0OworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgICAgIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBtZXNzYWdlLCB1bnVzZWQsICZmaW5pc2hfb3V0X3BhcmFtcywgJm91dHB1dCkpOworICAgICAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7CisKKyAgICAgICAgb3V0X3BhcmFtcy0+cHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworICAgICAgICBvdXRfcGFyYW1zLT5wdXNoX2JhY2soZmluaXNoX291dF9wYXJhbXMpOworICAgICAgICByZXR1cm4gb3V0cHV0OworICAgIH0KKworICAgIHN0cmluZyBTaWduTWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBwYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJTaWduTWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBzaWduYXR1cmUgPSBQcm9jZXNzTWVzc2FnZShrZXlfYmxvYiwgS2V5UHVycG9zZTo6U0lHTiwgbWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgICAgIEVYUEVDVF9UUlVFKG91dF9wYXJhbXMuZW1wdHkoKSk7CisgICAgICAgIHJldHVybiBzaWduYXR1cmU7CisgICAgfQorCisgICAgc3RyaW5nIFNpZ25NZXNzYWdlKGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiU2lnbk1lc3NhZ2UiKTsKKyAgICAgICAgcmV0dXJuIFNpZ25NZXNzYWdlKGtleV9ibG9iXywgbWVzc2FnZSwgcGFyYW1zKTsKKyAgICB9CisKKyAgICBzdHJpbmcgTWFjTWVzc2FnZShjb25zdCBzdHJpbmcmIG1lc3NhZ2UsIERpZ2VzdCBkaWdlc3QsIHNpemVfdCBtYWNfbGVuZ3RoKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiTWFjTWVzc2FnZSIpOworICAgICAgICByZXR1cm4gU2lnbk1lc3NhZ2UoCisgICAgICAgICAgICBrZXlfYmxvYl8sIG1lc3NhZ2UsCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIG1hY19sZW5ndGgpKTsKKyAgICB9CisKKyAgICB2b2lkIENoZWNrSG1hY1Rlc3RWZWN0b3IoY29uc3Qgc3RyaW5nJiBrZXksIGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgRGlnZXN0IGRpZ2VzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBleHBlY3RlZF9tYWMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja0htYWNUZXN0VmVjdG9yIik7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgSW1wb3J0S2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KGtleS5zaXplKCkgKiA4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIGV4cGVjdGVkX21hYy5zaXplKCkgKiA4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KGRpZ2VzdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpSQVcsIGtleSkpOworICAgICAgICBzdHJpbmcgc2lnbmF0dXJlID0gTWFjTWVzc2FnZShtZXNzYWdlLCBkaWdlc3QsIGV4cGVjdGVkX21hYy5zaXplKCkgKiA4KTsKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkX21hYywgc2lnbmF0dXJlKSA8PCAiVGVzdCB2ZWN0b3IgZGlkbid0IG1hdGNoIGZvciBkaWdlc3QgIiA8PCAoaW50KWRpZ2VzdDsKKyAgICAgICAgRGVsZXRlS2V5KCk7CisgICAgfQorCisgICAgdm9pZCBDaGVja0Flc0N0clRlc3RWZWN0b3IoY29uc3Qgc3RyaW5nJiBrZXksIGNvbnN0IHN0cmluZyYgbm9uY2UsIGNvbnN0IHN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGV4cGVjdGVkX2NpcGhlcnRleHQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja0Flc0N0clRlc3RWZWN0b3IiKTsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleShrZXkuc2l6ZSgpICogOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0NBTExFUl9OT05DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UkFXLCBrZXkpKTsKKworICAgICAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBub25jZS5kYXRhKCksIG5vbmNlLnNpemUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2Uoa2V5X2Jsb2JfLCBtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkX2NpcGhlcnRleHQsIGNpcGhlcnRleHQpOworICAgIH0KKworICAgIHZvaWQgVmVyaWZ5TWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBzdHJpbmcmIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiVmVyaWZ5TWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLCBrZXlfYmxvYiwgcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKworICAgICAgICBzdHJpbmcgdW51c2VkOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9wYXJhbXM7CisgICAgICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBvdXRwdXQ7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgbWVzc2FnZSwgc2lnbmF0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJm91dHB1dCkpOworICAgICAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7CisgICAgICAgIEVYUEVDVF9UUlVFKG91dHB1dC5lbXB0eSgpKTsKKyAgICB9CisKKyAgICB2b2lkIFZlcmlmeU1lc3NhZ2UoY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBzdHJpbmcmIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiVmVyaWZ5TWVzc2FnZSIpOworICAgICAgICBWZXJpZnlNZXNzYWdlKGtleV9ibG9iXywgbWVzc2FnZSwgc2lnbmF0dXJlLCBwYXJhbXMpOworICAgIH0KKworICAgIHN0cmluZyBFbmNyeXB0TWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJFbmNyeXB0TWVzc2FnZSIpOworICAgICAgICByZXR1cm4gUHJvY2Vzc01lc3NhZ2Uoa2V5X2Jsb2IsIEtleVB1cnBvc2U6OkVOQ1JZUFQsIG1lc3NhZ2UsIGluX3BhcmFtcywgb3V0X3BhcmFtcyk7CisgICAgfQorCisgICAgc3RyaW5nIEVuY3J5cHRNZXNzYWdlKGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiRW5jcnlwdE1lc3NhZ2UiKTsKKyAgICAgICAgcmV0dXJuIEVuY3J5cHRNZXNzYWdlKGtleV9ibG9iXywgbWVzc2FnZSwgcGFyYW1zLCBvdXRfcGFyYW1zKTsKKyAgICB9CisKKyAgICBzdHJpbmcgRW5jcnlwdE1lc3NhZ2UoY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBwYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJFbmNyeXB0TWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgICAgIEVYUEVDVF9UUlVFKG91dF9wYXJhbXMuZW1wdHkoKSkKKyAgICAgICAgICAgIDw8ICJPdXRwdXQgcGFyYW1zIHNob3VsZCBiZSBlbXB0eS4gQ29udGFpbmVkOiAiIDw8IG91dF9wYXJhbXM7CisgICAgICAgIHJldHVybiBjaXBoZXJ0ZXh0OworICAgIH0KKworICAgIHN0cmluZyBEZWNyeXB0TWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBjaXBoZXJ0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBwYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJEZWNyeXB0TWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBwbGFpbnRleHQgPQorICAgICAgICAgICAgUHJvY2Vzc01lc3NhZ2Uoa2V5X2Jsb2IsIEtleVB1cnBvc2U6OkRFQ1JZUFQsIGNpcGhlcnRleHQsIHBhcmFtcywgJm91dF9wYXJhbXMpOworICAgICAgICBFWFBFQ1RfVFJVRShvdXRfcGFyYW1zLmVtcHR5KCkpOworICAgICAgICByZXR1cm4gcGxhaW50ZXh0OworICAgIH0KKworICAgIHN0cmluZyBEZWNyeXB0TWVzc2FnZShjb25zdCBzdHJpbmcmIGNpcGhlcnRleHQsIGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHBhcmFtcykgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkRlY3J5cHRNZXNzYWdlIik7CisgICAgICAgIHJldHVybiBEZWNyeXB0TWVzc2FnZShrZXlfYmxvYl8sIGNpcGhlcnRleHQsIHBhcmFtcyk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lIFZhbHVlVD4KKyAgICB2b2lkIENoZWNrS20wQ3J5cHRvUGFyYW0oVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUIGV4cGVjdGVkKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQ2hlY2tLbTBDcnlwdG9QYXJhbSIpOworICAgICAgICBpZiAoaXNfc2VjdXJlXykgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQsIHR0YWcsIGV4cGVjdGVkKSk7CisgICAgICAgICAgICBFWFBFQ1RfRkFMU0UoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgdHRhZykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgdHRhZywgZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgdHRhZykpOworICAgICAgICB9CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lIFZhbHVlVD4KKyAgICB2b2lkIENoZWNrS20xQ3J5cHRvUGFyYW0oVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUIGV4cGVjdGVkKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQ2hlY2tLbTFDcnlwdG9QYXJhbSIpOworICAgICAgICBpZiAoaXNfc2VjdXJlXyAmJiBzdXBwb3J0c19zeW1tZXRyaWNfKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgdHRhZywgZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy5zb2Z0d2FyZUVuZm9yY2VkLCB0dGFnKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy5zb2Z0d2FyZUVuZm9yY2VkLCB0dGFnLCBleHBlY3RlZCkpOworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCB0dGFnKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUgVmFsdWVUPgorICAgIHZvaWQgQ2hlY2tLbTJDcnlwdG9QYXJhbShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiB0dGFnLCBWYWx1ZVQgZXhwZWN0ZWQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja0ttMkNyeXB0b1BhcmFtIik7CisgICAgICAgIGlmIChzdXBwb3J0c19hdHRlc3RhdGlvbl8pIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCB0dGFnLCBleHBlY3RlZCkpOworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQsIHR0YWcpKTsKKyAgICAgICAgfSBlbHNlIGlmICghc3VwcG9ydHNfc3ltbWV0cmljXyAvKiBLTSB2ZXJzaW9uIDwgMSBvciBTVyAqLykgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgdHRhZywgZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgdHRhZykpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBDaGVja09yaWdpbigpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja09yaWdpbiIpOworICAgICAgICBpZiAoaXNfc2VjdXJlXyAmJiBzdXBwb3J0c19zeW1tZXRyaWNfKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSgKKyAgICAgICAgICAgICAgICBjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgVEFHX09SSUdJTiwgS2V5T3JpZ2luOjpJTVBPUlRFRCkpOworICAgICAgICB9IGVsc2UgaWYgKGlzX3NlY3VyZV8pIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCBUQUdfT1JJR0lOLCBLZXlPcmlnaW46OlVOS05PV04pKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAgICAgIGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQsIFRBR19PUklHSU4sIEtleU9yaWdpbjo6SU1QT1JURUQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBib29sIElzU2VjdXJlKCkgeyByZXR1cm4gaXNfc2VjdXJlXzsgfQorICAgIHN0YXRpYyBib29sIFN1cHBvcnRzRWMoKSB7IHJldHVybiBzdXBwb3J0c19lY187IH0KKyAgICBzdGF0aWMgYm9vbCBTdXBwb3J0c1N5bW1ldHJpYygpIHsgcmV0dXJuIHN1cHBvcnRzX3N5bW1ldHJpY187IH0KKyAgICBzdGF0aWMgYm9vbCBTdXBwb3J0c0FsbERpZ2VzdHMoKSB7IHJldHVybiBzdXBwb3J0c19hbGxfZGlnZXN0c187IH0KKyAgICBzdGF0aWMgYm9vbCBTdXBwb3J0c0F0dGVzdGF0aW9uKCkgeyByZXR1cm4gc3VwcG9ydHNfYXR0ZXN0YXRpb25fOyB9CisKKyAgICBzdGF0aWMgYm9vbCBLbTJQcm9maWxlKCkgeworICAgICAgICByZXR1cm4gU3VwcG9ydHNBdHRlc3RhdGlvbigpICYmIFN1cHBvcnRzQWxsRGlnZXN0cygpICYmIFN1cHBvcnRzU3ltbWV0cmljKCkgJiYKKyAgICAgICAgICAgICAgIFN1cHBvcnRzRWMoKSAmJiBJc1NlY3VyZSgpOworICAgIH0KKworICAgIHN0YXRpYyBib29sIEttMVByb2ZpbGUoKSB7CisgICAgICAgIHJldHVybiAhU3VwcG9ydHNBdHRlc3RhdGlvbigpICYmIFN1cHBvcnRzU3ltbWV0cmljKCkgJiYgU3VwcG9ydHNFYygpICYmIElzU2VjdXJlKCk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgS20wUHJvZmlsZSgpIHsKKyAgICAgICAgcmV0dXJuICFTdXBwb3J0c0F0dGVzdGF0aW9uKCkgJiYgIVN1cHBvcnRzQWxsRGlnZXN0cygpICYmICFTdXBwb3J0c1N5bW1ldHJpYygpICYmCisgICAgICAgICAgICAgICBJc1NlY3VyZSgpOworICAgIH0KKworICAgIHN0YXRpYyBib29sIFN3T25seVByb2ZpbGUoKSB7CisgICAgICAgIHJldHVybiAhU3VwcG9ydHNBdHRlc3RhdGlvbigpICYmICFTdXBwb3J0c0FsbERpZ2VzdHMoKSAmJiAhU3VwcG9ydHNTeW1tZXRyaWMoKSAmJgorICAgICAgICAgICAgICAgIVN1cHBvcnRzRWMoKSAmJiAhSXNTZWN1cmUoKTsKKyAgICB9CisKKyAgICBIaWRsQnVmIGtleV9ibG9iXzsKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3Mga2V5X2NoYXJhY3RlcmlzdGljc187CisgICAgT3BlcmF0aW9uSGFuZGxlIG9wX2hhbmRsZV8gPSBrT3BIYW5kbGVTZW50aW5lbDsKKworICBwcml2YXRlOgorICAgIHN0YXRpYyBzcDxJS2V5bWFzdGVyRGV2aWNlPiBrZXltYXN0ZXJfOworICAgIHN0YXRpYyB1aW50MzJfdCBvc192ZXJzaW9uXzsKKyAgICBzdGF0aWMgdWludDMyX3Qgb3NfcGF0Y2hfbGV2ZWxfOworCisgICAgc3RhdGljIGJvb2wgaXNfc2VjdXJlXzsKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c19lY187CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNfc3ltbWV0cmljXzsKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c19hdHRlc3RhdGlvbl87CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNfYWxsX2RpZ2VzdHNfOworICAgIHN0YXRpYyBoaWRsX3N0cmluZyBuYW1lXzsKKyAgICBzdGF0aWMgaGlkbF9zdHJpbmcgYXV0aG9yXzsKK307CisKK2Jvb2wgdmVyaWZ5X2F0dGVzdGF0aW9uX3JlY29yZChjb25zdCBzdHJpbmcmIGNoYWxsZW5nZSwgY29uc3Qgc3RyaW5nJiBhcHBfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCBleHBlY3RlZF9zd19lbmZvcmNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0IGV4cGVjdGVkX3RlZV9lbmZvcmNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgYXR0ZXN0YXRpb25fY2VydCkgeworICAgIFg1MDlfUHRyIGNlcnQocGFyc2VfY2VydF9ibG9iKGF0dGVzdGF0aW9uX2NlcnQpKTsKKyAgICBFWFBFQ1RfVFJVRSghIWNlcnQuZ2V0KCkpOworICAgIGlmICghY2VydC5nZXQoKSkgcmV0dXJuIGZhbHNlOworCisgICAgQVNOMV9PQ1RFVF9TVFJJTkcqIGF0dGVzdF9yZWMgPSBnZXRfYXR0ZXN0YXRpb25fcmVjb3JkKGNlcnQuZ2V0KCkpOworICAgIEVYUEVDVF9UUlVFKCEhYXR0ZXN0X3JlYyk7CisgICAgaWYgKCFhdHRlc3RfcmVjKSByZXR1cm4gZmFsc2U7CisKKyAgICBBdXRob3JpemF0aW9uU2V0IGF0dF9zd19lbmZvcmNlZDsKKyAgICBBdXRob3JpemF0aW9uU2V0IGF0dF90ZWVfZW5mb3JjZWQ7CisgICAgdWludDMyX3QgYXR0X2F0dGVzdGF0aW9uX3ZlcnNpb247CisgICAgdWludDMyX3QgYXR0X2tleW1hc3Rlcl92ZXJzaW9uOworICAgIFNlY3VyaXR5TGV2ZWwgYXR0X2F0dGVzdGF0aW9uX3NlY3VyaXR5X2xldmVsOworICAgIFNlY3VyaXR5TGV2ZWwgYXR0X2tleW1hc3Rlcl9zZWN1cml0eV9sZXZlbDsKKyAgICBIaWRsQnVmIGF0dF9jaGFsbGVuZ2U7CisgICAgSGlkbEJ1ZiBhdHRfdW5pcXVlX2lkOworICAgIEhpZGxCdWYgYXR0X2FwcF9pZDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgcGFyc2VfYXR0ZXN0YXRpb25fcmVjb3JkKGF0dGVzdF9yZWMtPmRhdGEsICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0X3JlYy0+bGVuZ3RoLCAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0X2F0dGVzdGF0aW9uX3ZlcnNpb24sICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRfYXR0ZXN0YXRpb25fc2VjdXJpdHlfbGV2ZWwsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmF0dF9rZXltYXN0ZXJfdmVyc2lvbiwgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0X2tleW1hc3Rlcl9zZWN1cml0eV9sZXZlbCwgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRfY2hhbGxlbmdlLCAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmF0dF9zd19lbmZvcmNlZCwgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0X3RlZV9lbmZvcmNlZCwgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRfdW5pcXVlX2lkKSk7CisKKyAgICBpZiAoYXR0X2tleW1hc3Rlcl92ZXJzaW9uID09IDMpIHsKKyAgICAgICAgRVhQRUNUX0VRKDJVLCBhdHRfYXR0ZXN0YXRpb25fdmVyc2lvbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgRVhQRUNUX0VRKDFVLCBhdHRfYXR0ZXN0YXRpb25fdmVyc2lvbik7CisgICAgfQorCisgICAgZXhwZWN0ZWRfc3dfZW5mb3JjZWQucHVzaF9iYWNrKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlkbEJ1ZihhcHBfaWQpKTsKKworICAgIGlmICghS2V5bWFzdGVySGlkbFRlc3Q6OklzU2VjdXJlKCkpIHsKKyAgICAgICAgLy8gU1cgaXMgS00yCisgICAgICAgIEVYUEVDVF9FUShhdHRfa2V5bWFzdGVyX3ZlcnNpb24sIDJVKTsKKyAgICB9CisKKyAgICBpZiAoS2V5bWFzdGVySGlkbFRlc3Q6OlN1cHBvcnRzU3ltbWV0cmljKCkpIHsKKyAgICAgICAgRVhQRUNUX0dFKGF0dF9rZXltYXN0ZXJfdmVyc2lvbiwgMVUpOworICAgIH0KKworICAgIGlmIChLZXltYXN0ZXJIaWRsVGVzdDo6U3VwcG9ydHNBdHRlc3RhdGlvbigpKSB7CisgICAgICAgIEVYUEVDVF9HRShhdHRfa2V5bWFzdGVyX3ZlcnNpb24sIDJVKTsKKyAgICB9CisKKyAgICBFWFBFQ1RfRVEoS2V5bWFzdGVySGlkbFRlc3Q6OklzU2VjdXJlKCkgPyBTZWN1cml0eUxldmVsOjpUUlVTVEVEX0VOVklST05NRU5UCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU2VjdXJpdHlMZXZlbDo6U09GVFdBUkUsCisgICAgICAgICAgICAgIGF0dF9rZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwpOworICAgIEVYUEVDVF9FUShLZXltYXN0ZXJIaWRsVGVzdDo6U3VwcG9ydHNBdHRlc3RhdGlvbigpID8gU2VjdXJpdHlMZXZlbDo6VFJVU1RFRF9FTlZJUk9OTUVOVAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU2VjdXJpdHlMZXZlbDo6U09GVFdBUkUsCisgICAgICAgICAgICAgIGF0dF9hdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCk7CisKKyAgICBFWFBFQ1RfRVEoY2hhbGxlbmdlLmxlbmd0aCgpLCBhdHRfY2hhbGxlbmdlLnNpemUoKSk7CisgICAgRVhQRUNUX0VRKDAsIG1lbWNtcChjaGFsbGVuZ2UuZGF0YSgpLCBhdHRfY2hhbGxlbmdlLmRhdGEoKSwgY2hhbGxlbmdlLmxlbmd0aCgpKSk7CisKKyAgICBhdHRfc3dfZW5mb3JjZWQuU29ydCgpOworICAgIGV4cGVjdGVkX3N3X2VuZm9yY2VkLlNvcnQoKTsKKyAgICBFWFBFQ1RfRVEoZmlsdGVyX3RhZ3MoZXhwZWN0ZWRfc3dfZW5mb3JjZWQpLCBmaWx0ZXJfdGFncyhhdHRfc3dfZW5mb3JjZWQpKTsKKworICAgIGF0dF90ZWVfZW5mb3JjZWQuU29ydCgpOworICAgIGV4cGVjdGVkX3RlZV9lbmZvcmNlZC5Tb3J0KCk7CisgICAgRVhQRUNUX0VRKGZpbHRlcl90YWdzKGV4cGVjdGVkX3RlZV9lbmZvcmNlZCksIGZpbHRlcl90YWdzKGF0dF90ZWVfZW5mb3JjZWQpKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitzcDxJS2V5bWFzdGVyRGV2aWNlPiBLZXltYXN0ZXJIaWRsVGVzdDo6a2V5bWFzdGVyXzsKK3VpbnQzMl90IEtleW1hc3RlckhpZGxUZXN0Ojpvc192ZXJzaW9uXzsKK3VpbnQzMl90IEtleW1hc3RlckhpZGxUZXN0Ojpvc19wYXRjaF9sZXZlbF87Citib29sIEtleW1hc3RlckhpZGxUZXN0Ojppc19zZWN1cmVfOworYm9vbCBLZXltYXN0ZXJIaWRsVGVzdDo6c3VwcG9ydHNfZWNfOworYm9vbCBLZXltYXN0ZXJIaWRsVGVzdDo6c3VwcG9ydHNfc3ltbWV0cmljXzsKK2Jvb2wgS2V5bWFzdGVySGlkbFRlc3Q6OnN1cHBvcnRzX2FsbF9kaWdlc3RzXzsKK2Jvb2wgS2V5bWFzdGVySGlkbFRlc3Q6OnN1cHBvcnRzX2F0dGVzdGF0aW9uXzsKK2hpZGxfc3RyaW5nIEtleW1hc3RlckhpZGxUZXN0OjpuYW1lXzsKK2hpZGxfc3RyaW5nIEtleW1hc3RlckhpZGxUZXN0OjphdXRob3JfOworCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEtleW1hc3RlclZlcnNpb25UZXN0OworCisvKgorICogS2V5bWFzdGVyVmVyc2lvblRlc3QuU2Vuc2libGVGZWF0dXJlczoKKyAqCisgKiBRdWVyaWVzIGtleW1hc3RlciB0byBmaW5kIHRoZSBzZXQgb2YgZmVhdHVyZXMgaXQgc3VwcG9ydHMuIEZhaWxzIGlmIHRoZSBjb21iaW5hdGlvbiBkb2Vzbid0CisgKiBjb3JyZXNwb25kIHRvIGFueSB3ZWxsLWRlZmluZWQga2V5bWFzdGVyIHZlcnNpb24uCisgKi8KK1RFU1RfRihLZXltYXN0ZXJWZXJzaW9uVGVzdCwgU2Vuc2libGVGZWF0dXJlcykgeworICAgIEVYUEVDVF9UUlVFKEttMlByb2ZpbGUoKSB8fCBLbTFQcm9maWxlKCkgfHwgS20wUHJvZmlsZSgpIHx8IFN3T25seVByb2ZpbGUoKSkKKyAgICAgICAgPDwgIktleW1hc3RlciBmZWF0dXJlIHNldCBkb2Vzbid0IGZpdCBhbnkgcmVhc29uYWJsZSBwcm9maWxlLiAgUmVwb3J0ZWQgZmVhdHVyZXM6IgorICAgICAgICA8PCAiU3VwcG9ydHNBdHRlc3RhdGlvbiBbIiA8PCBTdXBwb3J0c0F0dGVzdGF0aW9uKCkgPDwgIl0sICIKKyAgICAgICAgPDwgIlN1cHBvcnRzU3ltbWV0cmljIFsiIDw8IFN1cHBvcnRzU3ltbWV0cmljKCkgPDwgIl0sICIKKyAgICAgICAgPDwgIlN1cHBvcnRzQWxsRGlnZXN0cyBbIiA8PCBTdXBwb3J0c0FsbERpZ2VzdHMoKSA8PCAiXSwgIgorICAgICAgICA8PCAiU3VwcG9ydHNFYyBbIiA8PCBTdXBwb3J0c0VjKCkgPDwgIl0sICIKKyAgICAgICAgPDwgIklzU2VjdXJlIFsiIDw8IElzU2VjdXJlKCkgPDwgIl0iOworfQorCitjbGFzcyBOZXdLZXlHZW5lcmF0aW9uVGVzdCA6IHB1YmxpYyBLZXltYXN0ZXJIaWRsVGVzdCB7CisgIHByb3RlY3RlZDoKKyAgICB2b2lkIENoZWNrQmFzZVBhcmFtcyhjb25zdCBLZXlDaGFyYWN0ZXJpc3RpY3MmIGtleUNoYXJhY3RlcmlzdGljcykgeworICAgICAgICAvLyBUT0RPKHN3aWxsZGVuKTogRGlzdGluZ3Vpc2ggd2hpY2ggcGFyYW1zIHNob3VsZCBiZSBpbiB3aGljaCBhdXRoIGxpc3QuCisKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBhdXRocyhrZXlDaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQpOworICAgICAgICBhdXRocy5wdXNoX2JhY2soQXV0aG9yaXphdGlvblNldChrZXlDaGFyYWN0ZXJpc3RpY3Muc29mdHdhcmVFbmZvcmNlZCkpOworCisgICAgICAgIEVYUEVDVF9UUlVFKGF1dGhzLkNvbnRhaW5zKFRBR19PUklHSU4sIEtleU9yaWdpbjo6R0VORVJBVEVEKSk7CisKKyAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OlNJR04pKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OlZFUklGWSkpOworICAgICAgICBFWFBFQ1RfVFJVRShhdXRocy5Db250YWlucyhUQUdfVVNFUl9JRCwgNykpCisgICAgICAgICAgICA8PCAiVXNlciBJRCBzaG91bGQgYmUgNywgd2FzICIgPDwgYXV0aHMuR2V0VGFnVmFsdWUoVEFHX1VTRVJfSUQpOworCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IEFwcCBJRCwgQXBwIGRhdGEgYW5kIFJPVCBhcmUgTk9UIGluY2x1ZGVkLgorICAgICAgICBFWFBFQ1RfRkFMU0UoYXV0aHMuQ29udGFpbnMoVEFHX1JPT1RfT0ZfVFJVU1QpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGF1dGhzLkNvbnRhaW5zKFRBR19BUFBMSUNBVElPTl9JRCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoYXV0aHMuQ29udGFpbnMoVEFHX0FQUExJQ0FUSU9OX0RBVEEpKTsKKworICAgICAgICAvLyBDaGVjayB0aGF0IHNvbWUgdW5leHBlY3RlZCB0YWdzL3ZhbHVlcyBhcmUgTk9UIHByZXNlbnQuCisgICAgICAgIEVYUEVDVF9GQUxTRShhdXRocy5Db250YWlucyhUQUdfUFVSUE9TRSwgS2V5UHVycG9zZTo6RU5DUllQVCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoYXV0aHMuQ29udGFpbnMoVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OkRFQ1JZUFQpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGF1dGhzLkNvbnRhaW5zKFRBR19BVVRIX1RJTUVPVVQsIDMwMSkpOworCisgICAgICAgIC8vIE5vdyBjaGVjayB0aGF0IHVuc3BlY2lmaWVkLCBkZWZhdWx0ZWQgdGFncyBhcmUgY29ycmVjdC4KKyAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX0NSRUFUSU9OX0RBVEVUSU1FKSk7CisKKyAgICAgICAgaWYgKFN1cHBvcnRzQXR0ZXN0YXRpb24oKSkgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX09TX1ZFUlNJT04sIG9zX3ZlcnNpb24oKSkpCisgICAgICAgICAgICAgICAgPDwgIk9TIHZlcnNpb24gaXMgIiA8PCBvc192ZXJzaW9uKCkgPDwgIiBrZXkgcmVwb3J0ZWQgIgorICAgICAgICAgICAgICAgIDw8IGF1dGhzLkdldFRhZ1ZhbHVlKFRBR19PU19WRVJTSU9OKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGF1dGhzLkNvbnRhaW5zKFRBR19PU19QQVRDSExFVkVMLCBvc19wYXRjaF9sZXZlbCgpKSkKKyAgICAgICAgICAgICAgICA8PCAiT1MgcGF0Y2ggbGV2ZWwgaXMgIiA8PCBvc19wYXRjaF9sZXZlbCgpIDw8ICIga2V5IHJlcG9ydGVkICIKKyAgICAgICAgICAgICAgICA8PCBhdXRocy5HZXRUYWdWYWx1ZShUQUdfT1NfUEFUQ0hMRVZFTCk7CisgICAgICAgIH0KKyAgICB9Cit9OworCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuUnNhCisgKgorICogVmVyaWZpZXMgdGhhdCBrZXltYXN0ZXIgY2FuIGdlbmVyYXRlIGFsbCByZXF1aXJlZCBSU0Ega2V5IHNpemVzLCBhbmQgdGhhdCB0aGUgcmVzdWx0aW5nIGtleXMgaGF2ZQorICogY29ycmVjdCBjaGFyYWN0ZXJpc3RpY3MuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgUnNhKSB7CisgICAgZm9yIChhdXRvIGtleV9zaXplIDogezEwMjQsIDIwNDgsIDMwNzIsIDQwOTZ9KSB7CisgICAgICAgIEhpZGxCdWYga2V5X2Jsb2I7CisgICAgICAgIEtleUNoYXJhY3RlcmlzdGljcyBrZXlfY2hhcmFjdGVyaXN0aWNzOworICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KGtleV9zaXplLCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9ucyhVc2VyQXV0aHMoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5X2Jsb2IsICZrZXlfY2hhcmFjdGVyaXN0aWNzKSk7CisKKyAgICAgICAgQVNTRVJUX0dUKGtleV9ibG9iLnNpemUoKSwgMFUpOworICAgICAgICBDaGVja0Jhc2VQYXJhbXMoa2V5X2NoYXJhY3RlcmlzdGljcyk7CisKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBjcnlwdG9fcGFyYW1zOworICAgICAgICBpZiAoSXNTZWN1cmUoKSkgeworICAgICAgICAgICAgY3J5cHRvX3BhcmFtcyA9IGtleV9jaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjcnlwdG9fcGFyYW1zID0ga2V5X2NoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkOworICAgICAgICB9CisKKyAgICAgICAgRVhQRUNUX1RSVUUoY3J5cHRvX3BhcmFtcy5Db250YWlucyhUQUdfQUxHT1JJVEhNLCBLTV9BTEdPUklUSE1fUlNBKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNyeXB0b19wYXJhbXMuQ29udGFpbnMoVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSkpOworICAgICAgICBFWFBFQ1RfVFJVRShjcnlwdG9fcGFyYW1zLkNvbnRhaW5zKFRBR19SU0FfUFVCTElDX0VYUE9ORU5ULCAzKSk7CisKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgma2V5X2Jsb2IpKTsKKyAgICB9Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5Sc2FOb0RlZmF1bHRTaXplCisgKgorICogVmVyaWZpZXMgdGhhdCBmYWlsaW5nIHRvIHNwZWNpZnkgYSBrZXkgc2l6ZSBmb3IgUlNBIGtleSBnZW5lcmF0aW9uIHJldHVybnMgVU5TVVBQT1JURURfS0VZX1NJWkUuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgUnNhTm9EZWZhdWx0U2l6ZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX0tFWV9TSVpFLAorICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OlJTQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19SU0FfUFVCTElDX0VYUE9ORU5ULCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlNpZ25pbmdLZXkoKSkpOworfQorCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuRWNkc2EKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBjYW4gZ2VuZXJhdGUgYWxsIHJlcXVpcmVkIEVDIGtleSBzaXplcywgYW5kIHRoYXQgdGhlIHJlc3VsdGluZyBrZXlzIGhhdmUKKyAqIGNvcnJlY3QgY2hhcmFjdGVyaXN0aWNzLgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEVjZHNhKSB7CisgICAgZm9yIChhdXRvIGtleV9zaXplIDogezIyNCwgMjU2LCAzODQsIDUyMX0pIHsKKyAgICAgICAgSGlkbEJ1ZiBrZXlfYmxvYjsKKyAgICAgICAgS2V5Q2hhcmFjdGVyaXN0aWNzIGtleV9jaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShrZXlfc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbnMoVXNlckF1dGhzKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleV9ibG9iLCAma2V5X2NoYXJhY3RlcmlzdGljcykpOworICAgICAgICBBU1NFUlRfR1Qoa2V5X2Jsb2Iuc2l6ZSgpLCAwVSk7CisgICAgICAgIENoZWNrQmFzZVBhcmFtcyhrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGNyeXB0b19wYXJhbXM7CisgICAgICAgIGlmIChJc1NlY3VyZSgpKSB7CisgICAgICAgICAgICBjcnlwdG9fcGFyYW1zID0ga2V5X2NoYXJhY3RlcmlzdGljcy50ZWVFbmZvcmNlZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNyeXB0b19wYXJhbXMgPSBrZXlfY2hhcmFjdGVyaXN0aWNzLnNvZnR3YXJlRW5mb3JjZWQ7CisgICAgICAgIH0KKworICAgICAgICBFWFBFQ1RfVFJVRShjcnlwdG9fcGFyYW1zLkNvbnRhaW5zKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6RUMpKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY3J5cHRvX3BhcmFtcy5Db250YWlucyhUQUdfS0VZX1NJWkUsIGtleV9zaXplKSk7CisKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgma2V5X2Jsb2IpKTsKKyAgICB9Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5FY2RzYURlZmF1bHRTaXplCisgKgorICogVmVyaWZpZXMgdGhhdCBmYWlsaW5nIHRvIHNwZWNpZnkgYSBrZXkgc2l6ZSBmb3IgRUMga2V5IGdlbmVyYXRpb24gcmV0dXJucyBVTlNVUFBPUlRFRF9LRVlfU0laRS4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBFY2RzYURlZmF1bHRTaXplKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX1NJWkUsCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6RUMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuU2lnbmluZ0tleSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpKTsKK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkVjZHNhSW52YWxpZFNpemUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGZhaWxpbmcgdG8gc3BlY2lmeSBhbiBpbnZhbGlkIGtleSBzaXplIGZvciBFQyBrZXkgZ2VuZXJhdGlvbiByZXR1cm5zCisgKiBVTlNVUFBPUlRFRF9LRVlfU0laRS4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBFY2RzYUludmFsaWRTaXplKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX1NJWkUsCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRWNkc2FTaWduaW5nS2V5KDE5MCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpKTsKK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkVjZHNhTWlzbWF0Y2hLZXlTaXplCisgKgorICogVmVyaWZpZXMgdGhhdCBzcGVjaWZ5aW5nIG1pc21hdGNoZWQga2V5IHNpemUgYW5kIGN1cnZlIGZvciBFQyBrZXkgZ2VuZXJhdGlvbiByZXR1cm5zCisgKiBJTlZBTElEX0FSR1VNRU5ULgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEVjZHNhTWlzbWF0Y2hLZXlTaXplKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9BUkdVTUVOVCwKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleSgyMjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfRUNfQ1VSVkUsIEVjQ3VydmU6OlBfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzM2MjMzMzQzKSI7Cit9CisKK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgRWNkc2FBbGxWYWxpZFNpemVzKSB7CisgICAgc2l6ZV90IHZhbGlkX3NpemVzW10gPSB7MjI0LCAyNTYsIDM4NCwgNTIxfTsKKyAgICBmb3IgKHNpemVfdCBzaXplIDogdmFsaWRfc2l6ZXMpIHsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkVjZHNhU2lnbmluZ0tleShzaXplKS5EaWdlc3QoRGlnZXN0OjpOT05FKSkpCisgICAgICAgICAgICA8PCAiRmFpbGVkIHRvIGdlbmVyYXRlIHNpemU6ICIgPDwgc2l6ZTsKKyAgICAgICAgRGVsZXRlS2V5KCk7CisgICAgfQorfQorCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuRWNkc2FBbGxWYWxpZEN1cnZlcworICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIHN1cHBvcnRzIGFsbCByZXF1aXJlZCBFQyBjdXJ2ZXMuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgRWNkc2FBbGxWYWxpZEN1cnZlcykgeworICAgIEVjQ3VydmUgY3VydmVzW10gPSB7RWNDdXJ2ZTo6UF8yMjQsIEVjQ3VydmU6OlBfMjU2LCBFY0N1cnZlOjpQXzM4NCwgRWNDdXJ2ZTo6UF81MjF9OworICAgIGZvciAoYXV0byBjdXJ2ZSA6IGN1cnZlcykgeworICAgICAgICBFWFBFQ1RfRVEoCisgICAgICAgICAgICBFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5FY2RzYVNpZ25pbmdLZXkoY3VydmUpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzUxMikpKQorICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBnZW5lcmF0ZSBrZXkgb24gY3VydmU6ICIgPDwgY3VydmU7CisgICAgICAgIERlbGV0ZUtleSgpOworICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWMKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBzdXBwb3J0cyBhbGwgcmVxdWlyZWQgZGlnZXN0cywgYW5kIHRoYXQgdGhlIHJlc3VsdGluZyBrZXlzIGhhdmUgY29ycmVjdAorICogY2hhcmFjdGVyaXN0aWNzLgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEhtYWMpIHsKKyAgICBmb3IgKGF1dG8gZGlnZXN0IDoge0RpZ2VzdDo6TUQ1LCBEaWdlc3Q6OlNIQTEsIERpZ2VzdDo6U0hBXzJfMjI0LCBEaWdlc3Q6OlNIQV8yXzI1NiwKKyAgICAgICAgICAgICAgICAgICAgICAgIERpZ2VzdDo6U0hBXzJfMzg0LCBEaWdlc3Q6OlNIQV8yXzUxMn0pIHsKKyAgICAgICAgSGlkbEJ1ZiBrZXlfYmxvYjsKKyAgICAgICAgS2V5Q2hhcmFjdGVyaXN0aWNzIGtleV9jaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgIGNvbnN0ZXhwciBzaXplX3Qga2V5X3NpemUgPSAxMjg7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoa2V5X3NpemUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChkaWdlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb25zKFVzZXJBdXRocygpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrZXlfYmxvYiwgJmtleV9jaGFyYWN0ZXJpc3RpY3MpKTsKKworICAgICAgICBBU1NFUlRfR1Qoa2V5X2Jsb2Iuc2l6ZSgpLCAwVSk7CisgICAgICAgIENoZWNrQmFzZVBhcmFtcyhrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgICAgICBBdXRob3JpemF0aW9uU2V0IHRlZUVuZm9yY2VkID0ga2V5X2NoYXJhY3RlcmlzdGljcy50ZWVFbmZvcmNlZDsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBzb2Z0d2FyZUVuZm9yY2VkID0ga2V5X2NoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkOworICAgICAgICBpZiAoU3VwcG9ydHNBdHRlc3RhdGlvbigpIHx8IFN1cHBvcnRzQWxsRGlnZXN0cygpKSB7CisgICAgICAgICAgICAvLyBFaXRoZXIgS00yLCB3aGljaCBtdXN0IHN1cHBvcnQgYWxsLCBvciBLTTEgdGhhdCBjbGFpbXMgZnVsbCBzdXBwb3J0CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSh0ZWVFbmZvcmNlZC5Db250YWlucyhUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkhNQUMpKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKyAgICAgICAgfSBlbHNlIGlmIChTdXBwb3J0c1N5bW1ldHJpYygpKSB7CisgICAgICAgICAgICBpZiAoZGlnZXN0ID09IERpZ2VzdDo6U0hBMSB8fCBkaWdlc3QgPT0gRGlnZXN0OjpTSEFfMl8yNTYpIHsKKyAgICAgICAgICAgICAgICAvLyBLTTEgbXVzdCBzdXBwb3J0IFNIQTEgYW5kIFNIQTI1NiBpbiBoYXJkd2FyZQorICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6SE1BQykpOworICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gT3RoZXJlIGRpZ2VzdHMgbWF5IG9yIG1heSBub3QgYmUgc3VwcG9ydGVkCisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUodGVlRW5mb3JjZWQuQ29udGFpbnMoVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvZnR3YXJlRW5mb3JjZWQuQ29udGFpbnMoVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKSk7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUodGVlRW5mb3JjZWQuQ29udGFpbnMoVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2Z0d2FyZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEtNMCBhbmQgU1cgS00gZG8gYWxsIGRpZ2VzdHMgaW4gU1cuCisgICAgICAgICAgICBFWFBFQ1RfVFJVRShzb2Z0d2FyZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6SE1BQykpOworICAgICAgICAgICAgRVhQRUNUX1RSVUUoc29mdHdhcmVFbmZvcmNlZC5Db250YWlucyhUQUdfS0VZX1NJWkUsIGtleV9zaXplKSk7CisgICAgICAgIH0KKworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRGVsZXRlS2V5KCZrZXlfYmxvYikpOworICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWNDaGVja0tleVNpemVzCisgKgorICogVmVyaWZpZXMgdGhhdCBrZXltYXN0ZXIgc3VwcG9ydHMgYWxsIGtleSBzaXplcywgYW5kIHJlamVjdHMgYWxsIGludmFsaWQga2V5IHNpemVzLgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEhtYWNDaGVja0tleVNpemVzKSB7CisgICAgZm9yIChzaXplX3Qga2V5X3NpemUgPSAwOyBrZXlfc2l6ZSA8PSA1MTI7ICsra2V5X3NpemUpIHsKKyAgICAgICAgaWYgKGtleV9zaXplIDwgNjQgfHwga2V5X3NpemUgJSA4ICE9IDApIHsKKyAgICAgICAgICAgIC8vIFRvIGtlZXAgdGhpcyB0ZXN0IGZyb20gYmVpbmcgdmVyeSBzbG93LCB3ZSBvbmx5IHRlc3QgYSByYW5kb20gZnJhY3Rpb24gb2Ygbm9uLWJ5dGUKKyAgICAgICAgICAgIC8vIGtleSBzaXplcy4gIFdlIHRlc3Qgb25seSB+MTAlIG9mIHN1Y2ggY2FzZXMuIFNpbmNlIHRoZXJlIGFyZSAzOTIgb2YgdGhlbSwgd2UgZXhwZWN0CisgICAgICAgICAgICAvLyB0byBydW4gfjQwIG9mIHRoZW0gaW4gZWFjaCBydW4uCisgICAgICAgICAgICBpZiAoa2V5X3NpemUgJSA4ID09IDAgfHwgcmFuZG9tKCkgJSAxMCA9PSAwKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KGtleV9zaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMjU2KSkpCisgICAgICAgICAgICAgICAgICAgIDw8ICJITUFDIGtleSBzaXplICIgPDwga2V5X3NpemUgPDwgIiBpbnZhbGlkIChQb3NzaWJseSBiLzMzNDYyMzQ2KSI7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleShrZXlfc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAyNTYpKSk7CisgICAgICAgICAgICBEZWxldGVLZXkoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWNDaGVja01pbk1hY0xlbmd0aHMKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBzdXBwb3J0cyBhbGwgcmVxdWlyZWQgTUFDIGxlbmd0aHMgYW5kIHJlamVjdHMgYWxsIGludmFsaWQgbGVuZ3Rocy4gIFRoaXMKKyAqIHRlc3QgaXMgcHJvYmFiaWxpc3RpYyBpbiBvcmRlciB0byBrZWVwIHRoZSBydW50aW1lIGRvd24sIGJ1dCBhbnkgZmFpbHVyZSBwcmludHMgb3V0IHRoZSBzcGVjaWZpYworICogTUFDIGxlbmd0aCB0aGF0IGZhaWxlZCwgc28gcmVwcm9kdWNpbmcgYSBmYWlsZWQgcnVuIHdpbGwgYmUgZWFzeS4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBIbWFjQ2hlY2tNaW5NYWNMZW5ndGhzKSB7CisgICAgZm9yIChzaXplX3QgbWluX21hY19sZW5ndGggPSAwOyBtaW5fbWFjX2xlbmd0aCA8PSAyNTY7ICsrbWluX21hY19sZW5ndGgpIHsKKyAgICAgICAgaWYgKG1pbl9tYWNfbGVuZ3RoIDwgNjQgfHwgbWluX21hY19sZW5ndGggJSA4ICE9IDApIHsKKyAgICAgICAgICAgIC8vIFRvIGtlZXAgdGhpcyB0ZXN0IGZyb20gYmVpbmcgdmVyeSBsb25nLCB3ZSBvbmx5IHRlc3QgYSByYW5kb20gZnJhY3Rpb24gb2Ygbm9uLWJ5dGUKKyAgICAgICAgICAgIC8vIGxlbmd0aHMuICBXZSB0ZXN0IG9ubHkgfjEwJSBvZiBzdWNoIGNhc2VzLiBTaW5jZSB0aGVyZSBhcmUgMTcyIG9mIHRoZW0sIHdlIGV4cGVjdCB0bworICAgICAgICAgICAgLy8gcnVuIH4xNyBvZiB0aGVtIGluIGVhY2ggcnVuLgorICAgICAgICAgICAgaWYgKG1pbl9tYWNfbGVuZ3RoICUgOCA9PSAwIHx8IHJhbmRvbSgpICUgMTAgPT0gMCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX01JTl9NQUNfTEVOR1RILAorICAgICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCBtaW5fbWFjX2xlbmd0aCkpKQorICAgICAgICAgICAgICAgICAgICA8PCAiSE1BQyBtaW4gbWFjIGxlbmd0aCAiIDw8IG1pbl9tYWNfbGVuZ3RoIDw8ICIgaW52YWxpZC4iOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgbWluX21hY19sZW5ndGgpKSk7CisgICAgICAgICAgICBEZWxldGVLZXkoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWNNdWx0aXBsZURpZ2VzdHMKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciByZWplY3RzIEhNQUMga2V5IGdlbmVyYXRpb24gd2l0aCBtdWx0aXBsZSBzcGVjaWZpZWQgZGlnZXN0IGFsZ29yaXRobXMuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgSG1hY011bHRpcGxlRGlnZXN0cykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX0RJR0VTVCwKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQTEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5IbWFjRGlnZXN0Tm9uZQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIHJlamVjdHMgSE1BQyBrZXkgZ2VuZXJhdGlvbiB3aXRoIG5vIGRpZ2VzdCBvciBEaWdlc3Q6Ok5PTkUKKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBIbWFjRGlnZXN0Tm9uZSkgeworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9ESUdFU1QsCisgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuSG1hY0tleSgxMjgpLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9ESUdFU1QsCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7Cit9CisKK3R5cGVkZWYgS2V5bWFzdGVySGlkbFRlc3QgR2V0S2V5Q2hhcmFjdGVyaXN0aWNzVGVzdDsKKworLyoKKyAqIEdldEtleUNoYXJhY3RlcmlzdGljc1Rlc3QuSG1hY0RpZ2VzdE5vbmUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGdldEtleUNoYXJhY3RlcmlzdGljcyBmdW5jdGlvbnMsIGFuZCB0aGF0IGdlbmVyYXRlZCBhbmQgcmV0cmlldmVkIGtleQorICogY2hhcmFjdGVyaXN0aWNzIG1hdGNoLgorICovCitURVNUX0YoR2V0S2V5Q2hhcmFjdGVyaXN0aWNzVGVzdCwgU2ltcGxlUnNhKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDI1NiwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3MgcmV0cmlldmVkX2NoYXJzOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZXRDaGFyYWN0ZXJpc3RpY3Moa2V5X2Jsb2JfLCAmcmV0cmlldmVkX2NoYXJzKSk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0IGdlbl9zdyA9IGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQ7CisgICAgQXV0aG9yaXphdGlvblNldCBnZW5fdGVlID0ga2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQ7CisgICAgQXV0aG9yaXphdGlvblNldCByZXRyaWV2ZWRfc3cgPSByZXRyaWV2ZWRfY2hhcnMuc29mdHdhcmVFbmZvcmNlZDsKKyAgICBBdXRob3JpemF0aW9uU2V0IHJldHJpZXZlZF90ZWUgPSByZXRyaWV2ZWRfY2hhcnMudGVlRW5mb3JjZWQ7CisKKyAgICBFWFBFQ1RfRVEoZ2VuX3N3LCByZXRyaWV2ZWRfc3cpOworICAgIEVYUEVDVF9FUShnZW5fdGVlLCByZXRyaWV2ZWRfdGVlKTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBTaWduaW5nT3BlcmF0aW9uc1Rlc3Q7CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgcmF3IFJTQSBzaWduYXR1cmUgb3BlcmF0aW9ucyBzdWNjZWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhUHNzU2hhMjU2U3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBLVBTUyBzaWduYXR1cmUgb3BlcmF0aW9ucyBzdWNjZWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FQc3NTaGEyNTZTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkpKTsKKyAgICAvLyBVc2UgbGFyZ2UgbWVzc2FnZSwgd2hpY2ggd29uJ3Qgd29yayB3aXRob3V0IGRpZ2VzdGluZy4KKyAgICBzdHJpbmcgbWVzc2FnZSgxMDI0LCAnYScpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQYWRkaW5nTm9uZURvZXNOb3RBbGxvd090aGVyCisgKgorICogVmVyaWZpZXMgdGhhdCBrZXltYXN0ZXIgcmVqZWN0cyBzaWduYXR1cmUgb3BlcmF0aW9ucyB0aGF0IHNwZWNpZnkgYSBwYWRkaW5nIG1vZGUgd2hlbiB0aGUga2V5CisgKiBzdXBwb3J0cyBvbmx5IHVucGFkZGVkIG9wZXJhdGlvbnMuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYVBhZGRpbmdOb25lRG9lc05vdEFsbG93T3RoZXIpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMiI7CisgICAgc3RyaW5nIHNpZ25hdHVyZTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOQ09NUEFUSUJMRV9QQURESU5HX01PREUsCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTikpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQa2NzMVNoYTI1NlN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGRpZ2VzdGVkIFJTQS1QS0NTMSBzaWduYXR1cmUgb3BlcmF0aW9ucyBzdWNjZWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FQa2NzMVNoYTI1NlN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCwgJ2EnKTsKKyAgICBzdHJpbmcgc2lnbmF0dXJlID0gU2lnbk1lc3NhZ2UobWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQa2NzMU5vRGlnZXN0U3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgdW5kaWdlc3RlZCBSU0EtUEtDUzEgc2lnbmF0dXJlIG9wZXJhdGlvbnMgc3VjY2VlZC4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhUGtjczFOb0RpZ2VzdFN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworICAgIHN0cmluZyBtZXNzYWdlKDUzLCAnYScpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQa2NzMU5vRGlnZXN0VG9vTGFyZ2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IHVuZGlnZXN0ZWQgUlNBLVBLQ1MxIHNpZ25hdHVyZSBvcGVyYXRpb25zIGZhaWwgd2l0aCB0aGUgY29ycmVjdCBlcnJvciBjb2RlIHdoZW4KKyAqIGdpdmVuIGEgdG9vLWxvbmcgbWVzc2FnZS4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhUGtjczFOb0RpZ2VzdFRvb0xvbmcpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworICAgIHN0cmluZyBtZXNzYWdlKDEyOSwgJ2EnKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisgICAgc3RyaW5nIHNpZ25hdHVyZTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0lOUFVUX0xFTkdUSCwgRmluaXNoKG1lc3NhZ2UsICZzaWduYXR1cmUpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQc3NTaGE1MTJUb29TbWFsbEtleQorICoKKyAqIFZlcmlmaWVzIHRoYXQgdW5kaWdlc3RlZCBSU0EtUFNTIHNpZ25hdHVyZSBvcGVyYXRpb25zIGZhaWwgd2l0aCB0aGUgY29ycmVjdCBlcnJvciBjb2RlIHdoZW4KKyAqIHVzZWQgd2l0aCBhIGtleSB0aGF0IGlzIHRvbyBzbWFsbCBmb3IgdGhlIG1lc3NhZ2UuCisgKgorICogQSBQU1MtcGFkZGVkIG1lc3NhZ2UgaXMgb2YgbGVuZ3RoIHNhbHRfc2l6ZSArIGRpZ2VzdF9zaXplICsgMTYgKHNpemVzIGluIGJpdHMpLCBhbmQgdGhlIGtleW1hc3RlcgorICogc3BlY2lmaWNhdGlvbiByZXF1aXJlcyB0aGF0IHNhbHRfc2l6ZSA9PSBkaWdlc3Rfc2l6ZSwgc28gdGhlIG1lc3NhZ2Ugd2lsbCBiZSBkaWdlc3Rfc2l6ZSAqIDIgKworICogMTYuIFN1Y2ggYSBtZXNzYWdlIGNhbiBvbmx5IGJlIHNpZ25lZCBieSBhIGdpdmVuIGtleSBpZiB0aGUga2V5IGlzIGF0IGxlYXN0IHRoYXQgc2l6ZS4gVGhpcyB0ZXN0CisgKiB1c2VzIFNIQTUxMiwgd2hpY2ggaGFzIGEgZGlnZXN0X3NpemUgPT0gNTEyLCBzbyB0aGUgbWVzc2FnZSBzaXplIGlzIDEwNDAgYml0cywgdG9vIGxhcmdlIGZvciBhCisgKiAxMDI0LWJpdCBrZXkuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYVBzc1NoYTUxMlRvb1NtYWxsS2V5KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfNTEyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BTUykpKTsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX0RJR0VTVCwKKyAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwKKyAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl81MTIpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzMzMzQ2NzUwKSI7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhTm9QYWRkaW5nVG9vTG9uZworICoKKyAqIFZlcmlmaWVzIHRoYXQgcmF3IFJTQSBzaWduYXR1cmUgb3BlcmF0aW9ucyBmYWlsIHdpdGggdGhlIGNvcnJlY3QgZXJyb3IgY29kZSB3aGVuCisgKiBnaXZlbiBhIHRvby1sb25nIG1lc3NhZ2UuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYU5vUGFkZGluZ1Rvb0xvbmcpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworICAgIC8vIE9uZSBieXRlIHRvbyBsb25nCisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCAvIDggKyAxLCAnYScpOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0lOUFVUX0xFTkdUSCwgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKKworICAgIC8vIFZlcnkgbGFyZ2UgbWVzc2FnZSB0aGF0IHNob3VsZCBleGNlZWQgdGhlIHRyYW5zZmVyIGJ1ZmZlciBzaXplIG9mIGFueSByZWFzb25hYmxlIFRFRS4KKyAgICBtZXNzYWdlID0gc3RyaW5nKDEyOCAqIDEwMjQsICdhJyk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTikpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0lOUFVUX0xFTkdUSCwgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FBYm9ydAorICoKKyAqIFZlcmlmaWVzIHRoYXQgb3BlcmF0aW9ucyBjYW4gYmUgYWJvcnRlZCBjb3JyZWN0bHkuICBVc2VzIGFuIFJTQSBzaWduaW5nIG9wZXJhdGlvbiBmb3IgdGhlIHRlc3QsCisgKiBidXQgdGhlIGJlaGF2aW9yIHNob3VsZCBiZSBhbGdvcml0aG0gYW5kIHB1cnBvc2UtaW5kZXBlbmRlbnQuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYUFib3J0KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwKKyAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBBYm9ydChvcF9oYW5kbGVfKSk7CisKKyAgICAvLyBBbm90aGVyIGFib3J0IHNob3VsZCBmYWlsCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9PUEVSQVRJT05fSEFORExFLCBBYm9ydChvcF9oYW5kbGVfKSk7CisKKyAgICAvLyBTZXQgdG8gc2VudGluZWwsIHNvIFRlYXJEb3duKCkgZG9lc24ndCB0cnkgdG8gYWJvcnQgYWdhaW4uCisgICAgb3BfaGFuZGxlXyA9IGtPcEhhbmRsZVNlbnRpbmVsOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LlJzYVVuc3VwcG9ydGVkUGFkZGluZworICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBIG9wZXJhdGlvbnMgZmFpbCB3aXRoIHRoZSBjb3JyZWN0IGVycm9yIChidXQga2V5IGdlbiBzdWNjZWVkcykgd2hlbiB1c2VkIHdpdGggYQorICogcGFkZGluZyBtb2RlIGluYXBwcm9wcmlhdGUgZm9yIFJTQS4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhVW5zdXBwb3J0ZWRQYWRkaW5nKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYgLyogc3VwcG9ydGVkIGRpZ2VzdCAqLykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNykpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIEVycm9yQ29kZTo6VU5TVVBQT1JURURfUEFERElOR19NT0RFLAorICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLAorICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikuUGFkZGluZyhQYWRkaW5nTW9kZTo6UEtDUzcpKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhUHNzTm9EaWdlc3QKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBQU1Mgb3BlcmF0aW9ucyBmYWlsIHdoZW4gbm8gZGlnZXN0IGlzIHVzZWQuICBQU1MgcmVxdWlyZXMgYSBkaWdlc3QuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYU5vRGlnZXN0KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKSk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX0RJR0VTVCwKKyAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwKKyAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUFNTKSkpOworCisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfRElHRVNULAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhUHNzTm9EaWdlc3QKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBvcGVyYXRpb25zIGZhaWwgd2hlbiBubyBwYWRkaW5nIG1vZGUgaXMgc3BlY2lmaWVkLiAgUGFkZGluZ01vZGU6Ok5PTkUgaXMKKyAqIHN1cHBvcnRlZCBpbiBzb21lIGNhc2VzIChhcyB2YWxpZGF0ZWQgaW4gb3RoZXIgdGVzdHMpLCBidXQgYSBtb2RlIG11c3QgYmUgc3BlY2lmaWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FOb1BhZGRpbmcpIHsKKyAgICAvLyBQYWRkaW5nIG11c3QgYmUgc3BlY2lmaWVkCisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlNpZ25pbmdLZXkoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfUEFERElOR19NT0RFLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhU2hvcnRNZXNzYWdlCisgKgorICogVmVyaWZpZXMgdGhhdCByYXcgUlNBIHNpZ25hdHVyZXMgc3VjY2VlZCB3aXRoIGEgbWVzc2FnZSBzaG9ydGVyIHRoYW4gdGhlIGtleSBzaXplLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FUb29TaG9ydE1lc3NhZ2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIC8vIEJhcmVseSBzaG9ydGVyCisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCAvIDggLSAxLCAnYScpOworICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpOworCisgICAgLy8gTXVjaCBzaG9ydGVyCisgICAgbWVzc2FnZSA9ICJhIjsKKyAgICBTaWduTWVzc2FnZShtZXNzYWdlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FTaWduV2l0aEVuY3J5cHRpb25LZXkKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBlbmNyeXB0aW9uIGtleXMgY2Fubm90IGJlIHVzZWQgdG8gc2lnbi4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhU2lnbldpdGhFbmNyeXB0aW9uS2V5KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX1BVUlBPU0UsCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sCisgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FTaWduVG9vTGFyZ2VNZXNzYWdlCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIGEgcmF3IHNpZ25hdHVyZSBvZiBhIG1lc3NhZ2Ugd2hpY2ggaXMgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBrZXksIGJ1dAorICogbnVtZXJpY2FsbHkgbGFyZ2VyIHRoYW4gdGhlIHB1YmxpYyBtb2R1bHVzLCBmYWlscyB3aXRoIHRoZSBjb3JyZWN0IGVycm9yLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FTaWduVG9vTGFyZ2VNZXNzYWdlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICAvLyBMYXJnZXN0IHBvc3NpYmxlIG1lc3NhZ2Ugd2lsbCBhbHdheXMgYmUgbGFyZ2VyIHRoYW4gdGhlIHB1YmxpYyBtb2R1bHVzLgorICAgIHN0cmluZyBtZXNzYWdlKDEwMjQgLyA4LCBzdGF0aWNfY2FzdDxjaGFyPigweGZmKSk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKyAgICBzdHJpbmcgc2lnbmF0dXJlOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OklOVkFMSURfQVJHVU1FTlQsIEZpbmlzaChtZXNzYWdlLCAmc2lnbmF0dXJlKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuRWNkc2FBbGxTaXplc0FuZEhhc2hlcworICoKKyAqIFZlcmlmaWVzIHRoYXQgRUNEU0Egb3BlcmF0aW9ucyBzdWNjZWVkIHdpdGggYWxsIHBvc3NpYmxlIGtleSBzaXplcyBhbmQgaGFzaGVzLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBFY2RzYUFsbFNpemVzQW5kSGFzaGVzKSB7CisgICAgZm9yIChhdXRvIGtleV9zaXplIDogezIyNCwgMjU2LCAzODQsIDUyMX0pIHsKKyAgICAgICAgZm9yIChhdXRvIGRpZ2VzdCA6IHsKKyAgICAgICAgICAgICAgICAgRGlnZXN0OjpTSEExLCBEaWdlc3Q6OlNIQV8yXzIyNCwgRGlnZXN0OjpTSEFfMl8yNTYsIERpZ2VzdDo6U0hBXzJfMzg0LAorICAgICAgICAgICAgICAgICBEaWdlc3Q6OlNIQV8yXzUxMiwKKyAgICAgICAgICAgICB9KSB7CisgICAgICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShrZXlfc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KGRpZ2VzdCkpOworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIGVycm9yKSA8PCAiRmFpbGVkIHRvIGdlbmVyYXRlIEVDRFNBIGtleSB3aXRoIHNpemUgIiA8PCBrZXlfc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiIGFuZCBkaWdlc3QgIiA8PCBkaWdlc3Q7CisgICAgICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgY29udGludWU7CisKKyAgICAgICAgICAgIHN0cmluZyBtZXNzYWdlKDEwMjQsICdhJyk7CisgICAgICAgICAgICBpZiAoZGlnZXN0ID09IERpZ2VzdDo6Tk9ORSkgbWVzc2FnZS5yZXNpemUoa2V5X3NpemUgLyA4KTsKKyAgICAgICAgICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkpOworICAgICAgICAgICAgRGVsZXRlS2V5KCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuRWNkc2FBbGxDdXJ2ZXMKKyAqCisgKiBWZXJpZmllcyB0aGF0IEVDRFNBIG9wZXJhdGlvbnMgc3VjY2VlZCB3aXRoIGFsbCBwb3NzaWJsZSBjdXJ2ZXMuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIEVjZHNhQWxsQ3VydmVzKSB7CisgICAgZm9yIChhdXRvIGN1cnZlIDoge0VjQ3VydmU6OlBfMjI0LCBFY0N1cnZlOjpQXzI1NiwgRWNDdXJ2ZTo6UF8zODQsIEVjQ3VydmU6OlBfNTIxfSkgeworICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoY3VydmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KSk7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBlcnJvcikgPDwgIkZhaWxlZCB0byBnZW5lcmF0ZSBFQ0RTQSBrZXkgd2l0aCBjdXJ2ZSAiIDw8IGN1cnZlOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgY29udGludWU7CisKKyAgICAgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCwgJ2EnKTsKKyAgICAgICAgU2lnbk1lc3NhZ2UobWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpKTsKKyAgICAgICAgRGVsZXRlS2V5KCk7CisgICAgfQorfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkVjZHNhTm9EaWdlc3RIdWdlRGF0YQorICoKKyAqIFZlcmlmaWVzIHRoYXQgRUNEU0Egb3BlcmF0aW9ucyBzdXBwb3J0IHZlcnkgbGFyZ2UgbWVzc2FnZXMsIGV2ZW4gd2l0aG91dCBkaWdlc3RpbmcuICBUaGlzIHNob3VsZAorICogd29yayBiZWNhdXNlIEVDRFNBIGFjdHVhbGx5IG9ubHkgc2lnbnMgdGhlIGxlZnRtb3N0IExfbiBiaXRzIG9mIHRoZSBtZXNzYWdlLCBob3dldmVyIGxhcmdlIGl0IG1heQorICogYmUuICBOb3QgdXNpbmcgZGlnZXN0aW5nIGlzIGEgYmFkIGlkZWEsIGJ1dCBpbiBzb21lIGNhc2VzIGRpZ2VzdGluZyBpcyBkb25lIGJ5IHRoZSBmcmFtZXdvcmsuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIEVjZHNhTm9EaWdlc3RIdWdlRGF0YSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoMjI0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UoNjQgKiAxMDI0LCAnYScpOworICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkFlc0VjYlNpZ24KKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVtcHRzIHRvIHVzZSBBRVMga2V5cyB0byBzaWduIGZhaWwgaW4gdGhlIGNvcnJlY3Qgd2F5LgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBBZXNFY2JTaWduKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlNpZ25pbmdLZXkoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6RUNCKSkpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zNjI1Mjk1NykiOworCisgICAgQXV0aG9yaXphdGlvblNldCBvdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX1BVUlBPU0UsCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXQoKSAvKiBpbl9wYXJhbXMgKi8sICZvdXRfcGFyYW1zKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzM2MjMzMTg3KSI7CisKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QVVJQT1NFLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpWRVJJRlksIEF1dGhvcml6YXRpb25TZXQoKSAvKiBpbl9wYXJhbXMgKi8sICZvdXRfcGFyYW1zKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzM2MjMzMTg3KSI7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuSG1hY0FsbERpZ2VzdHMKKyAqCisgKiBWZXJpZmllcyB0aGF0IEhNQUMgd29ya3Mgd2l0aCBhbGwgZGlnZXN0cy4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY0FsbERpZ2VzdHMpIHsKKyAgICBmb3IgKGF1dG8gZGlnZXN0IDoge0RpZ2VzdDo6U0hBMSwgRGlnZXN0OjpTSEFfMl8yMjQsIERpZ2VzdDo6U0hBXzJfMjU2LCBEaWdlc3Q6OlNIQV8yXzM4NCwKKyAgICAgICAgICAgICAgICAgICAgICAgIERpZ2VzdDo6U0hBXzJfNTEyfSkgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KGRpZ2VzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDE2MCkpKQorICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBjcmVhdGUgSE1BQyBrZXkgd2l0aCBkaWdlc3QgIiA8PCBkaWdlc3Q7CisgICAgICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICAgICAgc3RyaW5nIHNpZ25hdHVyZSA9IE1hY01lc3NhZ2UobWVzc2FnZSwgZGlnZXN0LCAxNjApOworICAgICAgICBFWFBFQ1RfRVEoMTYwVSAvIDhVLCBzaWduYXR1cmUuc2l6ZSgpKQorICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBzaWduIHdpdGggSE1BQyBrZXkgd2l0aCBkaWdlc3QgIiA8PCBkaWdlc3Q7CisgICAgICAgIERlbGV0ZUtleSgpOworICAgIH0KK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5IbWFjU2hhMjU2VG9vTGFyZ2VNYWNMZW5ndGgKKyAqCisgKiBWZXJpZmllcyB0aGF0IEhNQUMgZmFpbHMgaW4gdGhlIGNvcnJlY3Qgd2F5IHdoZW4gYXNrZWQgdG8gZ2VuZXJhdGUgYSBNQUMgbGFyZ2VyIHRoYW4gdGhlIGRpZ2VzdAorICogc2l6ZS4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY1NoYTI1NlRvb0xhcmdlTWFjTGVuZ3RoKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMjU2KSkpOworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0cHV0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIEVycm9yQ29kZTo6VU5TVVBQT1JURURfTUFDX0xFTkdUSCwKKyAgICAgICAgQmVnaW4oCisgICAgICAgICAgICBLZXlQdXJwb3NlOjpTSUdOLCBrZXlfYmxvYl8sCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMjY0KSwKKyAgICAgICAgICAgICZvdXRwdXRfcGFyYW1zLCAmb3BfaGFuZGxlXykpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkhtYWNTaGEyNTZUb29TbWFsbE1hY0xlbmd0aAorICoKKyAqIFZlcmlmaWVzIHRoYXQgSE1BQyBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBhc2tlZCB0byBnZW5lcmF0ZSBhIE1BQyBzbWFsbGVyIHRoYW4gdGhlCisgKiBzcGVjaWZpZWQgbWluaW11bSBNQUMgbGVuZ3RoLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBIbWFjU2hhMjU2VG9vU21hbGxNYWNMZW5ndGgpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisgICAgQXV0aG9yaXphdGlvblNldCBvdXRwdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpJTlZBTElEX01BQ19MRU5HVEgsCisgICAgICAgIEJlZ2luKAorICAgICAgICAgICAgS2V5UHVycG9zZTo6U0lHTiwga2V5X2Jsb2JfLAorICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyMCksCisgICAgICAgICAgICAmb3V0cHV0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5IbWFjUmZjNDIzMVRlc3RDYXNlMworICoKKyAqIFZhbGlkYXRlcyBhZ2FpbnN0IHRoZSB0ZXN0IHZlY3RvcnMgZnJvbSBSRkMgNDIzMSB0ZXN0IGNhc2UgMy4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY1JmYzQyMzFUZXN0Q2FzZTMpIHsKKyAgICBzdHJpbmcga2V5KDIwLCAweGFhKTsKKyAgICBzdHJpbmcgbWVzc2FnZSg1MCwgMHhkZCk7CisgICAgdWludDhfdCBzaGFfMjI0X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4N2YsIDB4YjMsIDB4Y2IsIDB4MzUsIDB4ODgsIDB4YzYsIDB4YzEsIDB4ZjYsIDB4ZmYsIDB4YTksIDB4NjksIDB4NGQsIDB4N2QsIDB4NmEsCisgICAgICAgIDB4ZDIsIDB4NjQsIDB4OTMsIDB4NjUsIDB4YjAsIDB4YzEsIDB4ZjYsIDB4NWQsIDB4NjksIDB4ZDEsIDB4ZWMsIDB4ODMsIDB4MzMsIDB4ZWEsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV8yNTZfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHg3NywgMHgzZSwgMHhhOSwgMHgxZSwgMHgzNiwgMHg4MCwgMHgwZSwgMHg0NiwgMHg4NSwgMHg0ZCwgMHhiOCwKKyAgICAgICAgMHhlYiwgMHhkMCwgMHg5MSwgMHg4MSwgMHhhNywgMHgyOSwgMHg1OSwgMHgwOSwgMHg4YiwgMHgzZSwgMHhmOCwKKyAgICAgICAgMHhjMSwgMHgyMiwgMHhkOSwgMHg2MywgMHg1NSwgMHgxNCwgMHhjZSwgMHhkNSwgMHg2NSwgMHhmZSwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzM4NF9leHBlY3RlZFtdID0geworICAgICAgICAweDg4LCAweDA2LCAweDI2LCAweDA4LCAweGQzLCAweGU2LCAweGFkLCAweDhhLCAweDBhLCAweGEyLCAweGFjLCAweGUwLAorICAgICAgICAweDE0LCAweGM4LCAweGE4LCAweDZmLCAweDBhLCAweGE2LCAweDM1LCAweGQ5LCAweDQ3LCAweGFjLCAweDlmLCAweGViLAorICAgICAgICAweGU4LCAweDNlLCAweGY0LCAweGU1LCAweDU5LCAweDY2LCAweDE0LCAweDRiLCAweDJhLCAweDVhLCAweGIzLCAweDlkLAorICAgICAgICAweGMxLCAweDM4LCAweDE0LCAweGI5LCAweDRlLCAweDNhLCAweGI2LCAweGUxLCAweDAxLCAweGEzLCAweDRmLCAweDI3LAorICAgIH07CisgICAgdWludDhfdCBzaGFfNTEyX2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4ZmEsIDB4NzMsIDB4YjAsIDB4MDgsIDB4OWQsIDB4NTYsIDB4YTIsIDB4ODQsIDB4ZWYsIDB4YjAsIDB4ZjAsIDB4NzUsIDB4NmMsCisgICAgICAgIDB4ODksIDB4MGIsIDB4ZTksIDB4YjEsIDB4YjUsIDB4ZGIsIDB4ZGQsIDB4OGUsIDB4ZTgsIDB4MWEsIDB4MzYsIDB4NTUsIDB4ZjgsCisgICAgICAgIDB4M2UsIDB4MzMsIDB4YjIsIDB4MjcsIDB4OWQsIDB4MzksIDB4YmYsIDB4M2UsIDB4ODQsIDB4ODIsIDB4NzksIDB4YTcsIDB4MjIsCisgICAgICAgIDB4YzgsIDB4MDYsIDB4YjQsIDB4ODUsIDB4YTQsIDB4N2UsIDB4NjcsIDB4YzgsIDB4MDcsIDB4YjksIDB4NDYsIDB4YTMsIDB4MzcsCisgICAgICAgIDB4YmUsIDB4ZTgsIDB4OTQsIDB4MjYsIDB4NzQsIDB4MjcsIDB4ODgsIDB4NTksIDB4ZTEsIDB4MzIsIDB4OTIsIDB4ZmIsCisgICAgfTsKKworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzIyNCwgbWFrZV9zdHJpbmcoc2hhXzIyNF9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzI1NiwgbWFrZV9zdHJpbmcoc2hhXzI1Nl9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzM4NCwgbWFrZV9zdHJpbmcoc2hhXzM4NF9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzUxMiwgbWFrZV9zdHJpbmcoc2hhXzUxMl9leHBlY3RlZCkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkhtYWNSZmM0MjMxVGVzdENhc2U1CisgKgorICogVmFsaWRhdGVzIGFnYWluc3QgdGhlIHRlc3QgdmVjdG9ycyBmcm9tIFJGQyA0MjMxIHRlc3QgY2FzZSA1LgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBIbWFjUmZjNDIzMVRlc3RDYXNlNSkgeworICAgIHN0cmluZyBrZXkoMjAsIDB4MGMpOworICAgIHN0cmluZyBtZXNzYWdlID0gIlRlc3QgV2l0aCBUcnVuY2F0aW9uIjsKKworICAgIHVpbnQ4X3Qgc2hhXzIyNF9leHBlY3RlZFtdID0geworICAgICAgICAweDBlLCAweDJhLCAweGVhLCAweDY4LCAweGE5LCAweDBjLCAweDhkLCAweDM3LAorICAgICAgICAweGM5LCAweDg4LCAweGJjLCAweGRiLCAweDlmLCAweGNhLCAweDZmLCAweGE4LAorICAgIH07CisgICAgdWludDhfdCBzaGFfMjU2X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4YTMsIDB4YjYsIDB4MTYsIDB4NzQsIDB4NzMsIDB4MTAsIDB4MGUsIDB4ZTAsCisgICAgICAgIDB4NmUsIDB4MGMsIDB4NzksIDB4NmMsIDB4MjksIDB4NTUsIDB4NTUsIDB4MmIsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV8zODRfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHgzYSwgMHhiZiwgMHgzNCwgMHhjMywgMHg1MCwgMHgzYiwgMHgyYSwgMHgyMywKKyAgICAgICAgMHhhNCwgMHg2ZSwgMHhmYywgMHg2MSwgMHg5YiwgMHhhZSwgMHhmOCwgMHg5NywKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzUxMl9leHBlY3RlZFtdID0geworICAgICAgICAweDQxLCAweDVmLCAweGFkLCAweDYyLCAweDcxLCAweDU4LCAweDBhLCAweDUzLAorICAgICAgICAweDFkLCAweDQxLCAweDc5LCAweGJjLCAweDg5LCAweDFkLCAweDg3LCAweGE2LAorICAgIH07CisKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yMjQsIG1ha2Vfc3RyaW5nKHNoYV8yMjRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yNTYsIG1ha2Vfc3RyaW5nKHNoYV8yNTZfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8zODQsIG1ha2Vfc3RyaW5nKHNoYV8zODRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl81MTIsIG1ha2Vfc3RyaW5nKHNoYV81MTJfZXhwZWN0ZWQpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5IbWFjUmZjNDIzMVRlc3RDYXNlNgorICoKKyAqIFZhbGlkYXRlcyBhZ2FpbnN0IHRoZSB0ZXN0IHZlY3RvcnMgZnJvbSBSRkMgNDIzMSB0ZXN0IGNhc2UgNi4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY1JmYzQyMzFUZXN0Q2FzZTYpIHsKKyAgICBzdHJpbmcga2V5KDEzMSwgMHhhYSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiVGVzdCBVc2luZyBMYXJnZXIgVGhhbiBCbG9jay1TaXplIEtleSAtIEhhc2ggS2V5IEZpcnN0IjsKKworICAgIHVpbnQ4X3Qgc2hhXzIyNF9leHBlY3RlZFtdID0geworICAgICAgICAweDk1LCAweGU5LCAweGEwLCAweGRiLCAweDk2LCAweDIwLCAweDk1LCAweGFkLCAweGFlLCAweGJlLCAweDliLCAweDJkLCAweDZmLCAweDBkLAorICAgICAgICAweGJjLCAweGUyLCAweGQ0LCAweDk5LCAweGYxLCAweDEyLCAweGYyLCAweGQyLCAweGI3LCAweDI3LCAweDNmLCAweGE2LCAweDg3LCAweDBlLAorICAgIH07CisgICAgdWludDhfdCBzaGFfMjU2X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4NjAsIDB4ZTQsIDB4MzEsIDB4NTksIDB4MWUsIDB4ZTAsIDB4YjYsIDB4N2YsIDB4MGQsIDB4OGEsIDB4MjYsCisgICAgICAgIDB4YWEsIDB4Y2IsIDB4ZjUsIDB4YjcsIDB4N2YsIDB4OGUsIDB4MGIsIDB4YzYsIDB4MjEsIDB4MzcsIDB4MjgsCisgICAgICAgIDB4YzUsIDB4MTQsIDB4MDUsIDB4NDYsIDB4MDQsIDB4MGYsIDB4MGUsIDB4ZTMsIDB4N2YsIDB4NTQsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV8zODRfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHg0ZSwgMHhjZSwgMHgwOCwgMHg0NCwgMHg4NSwgMHg4MSwgMHgzZSwgMHg5MCwgMHg4OCwgMHhkMiwgMHhjNiwgMHgzYSwKKyAgICAgICAgMHgwNCwgMHgxYiwgMHhjNSwgMHhiNCwgMHg0ZiwgMHg5ZSwgMHhmMSwgMHgwMSwgMHgyYSwgMHgyYiwgMHg1OCwgMHg4ZiwKKyAgICAgICAgMHgzYywgMHhkMSwgMHgxZiwgMHgwNSwgMHgwMywgMHgzYSwgMHhjNCwgMHhjNiwgMHgwYywgMHgyZSwgMHhmNiwgMHhhYiwKKyAgICAgICAgMHg0MCwgMHgzMCwgMHhmZSwgMHg4MiwgMHg5NiwgMHgyNCwgMHg4ZCwgMHhmMSwgMHg2MywgMHhmNCwgMHg0OSwgMHg1MiwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzUxMl9leHBlY3RlZFtdID0geworICAgICAgICAweDgwLCAweGIyLCAweDQyLCAweDYzLCAweGM3LCAweGMxLCAweGEzLCAweGViLCAweGI3LCAweDE0LCAweDkzLCAweGMxLCAweGRkLAorICAgICAgICAweDdiLCAweGU4LCAweGI0LCAweDliLCAweDQ2LCAweGQxLCAweGY0LCAweDFiLCAweDRhLCAweGVlLCAweGMxLCAweDEyLCAweDFiLAorICAgICAgICAweDAxLCAweDM3LCAweDgzLCAweGY4LCAweGYzLCAweDUyLCAweDZiLCAweDU2LCAweGQwLCAweDM3LCAweGUwLCAweDVmLCAweDI1LAorICAgICAgICAweDk4LCAweGJkLCAweDBmLCAweGQyLCAweDIxLCAweDVkLCAweDZhLCAweDFlLCAweDUyLCAweDk1LCAweGU2LCAweDRmLCAweDczLAorICAgICAgICAweGY2LCAweDNmLCAweDBhLCAweGVjLCAweDhiLCAweDkxLCAweDVhLCAweDk4LCAweDVkLCAweDc4LCAweDY1LCAweDk4LAorICAgIH07CisKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yMjQsIG1ha2Vfc3RyaW5nKHNoYV8yMjRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yNTYsIG1ha2Vfc3RyaW5nKHNoYV8yNTZfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8zODQsIG1ha2Vfc3RyaW5nKHNoYV8zODRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl81MTIsIG1ha2Vfc3RyaW5nKHNoYV81MTJfZXhwZWN0ZWQpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5IbWFjUmZjNDIzMVRlc3RDYXNlNworICoKKyAqIFZhbGlkYXRlcyBhZ2FpbnN0IHRoZSB0ZXN0IHZlY3RvcnMgZnJvbSBSRkMgNDIzMSB0ZXN0IGNhc2UgNy4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY1JmYzQyMzFUZXN0Q2FzZTcpIHsKKyAgICBzdHJpbmcga2V5KDEzMSwgMHhhYSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiVGhpcyBpcyBhIHRlc3QgdXNpbmcgYSBsYXJnZXIgdGhhbiBibG9jay1zaXplIGtleSBhbmQgYSBsYXJnZXIgdGhhbiAiCisgICAgICAgICAgICAgICAgICAgICAiYmxvY2stc2l6ZSBkYXRhLiBUaGUga2V5IG5lZWRzIHRvIGJlIGhhc2hlZCBiZWZvcmUgYmVpbmcgdXNlZCBieSB0aGUgSE1BQyAiCisgICAgICAgICAgICAgICAgICAgICAiYWxnb3JpdGhtLiI7CisKKyAgICB1aW50OF90IHNoYV8yMjRfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHgzYSwgMHg4NSwgMHg0MSwgMHg2NiwgMHhhYywgMHg1ZCwgMHg5ZiwgMHgwMiwgMHgzZiwgMHg1NCwgMHhkNSwgMHgxNywgMHhkMCwgMHhiMywKKyAgICAgICAgMHg5ZCwgMHhiZCwgMHg5NCwgMHg2NywgMHg3MCwgMHhkYiwgMHg5YywgMHgyYiwgMHg5NSwgMHhjOSwgMHhmNiwgMHhmNSwgMHg2NSwgMHhkMSwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzI1Nl9leHBlY3RlZFtdID0geworICAgICAgICAweDliLCAweDA5LCAweGZmLCAweGE3LCAweDFiLCAweDk0LCAweDJmLCAweGNiLCAweDI3LCAweDYzLCAweDVmLAorICAgICAgICAweGJjLCAweGQ1LCAweGIwLCAweGU5LCAweDQ0LCAweGJmLCAweGRjLCAweDYzLCAweDY0LCAweDRmLCAweDA3LAorICAgICAgICAweDEzLCAweDkzLCAweDhhLCAweDdmLCAweDUxLCAweDUzLCAweDVjLCAweDNhLCAweDM1LCAweGUyLAorICAgIH07CisgICAgdWludDhfdCBzaGFfMzg0X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4NjYsIDB4MTcsIDB4MTcsIDB4OGUsIDB4OTQsIDB4MWYsIDB4MDIsIDB4MGQsIDB4MzUsIDB4MWUsIDB4MmYsIDB4MjUsCisgICAgICAgIDB4NGUsIDB4OGYsIDB4ZDMsIDB4MmMsIDB4NjAsIDB4MjQsIDB4MjAsIDB4ZmUsIDB4YjAsIDB4YjgsIDB4ZmIsIDB4OWEsCisgICAgICAgIDB4ZGMsIDB4Y2UsIDB4YmIsIDB4ODIsIDB4NDYsIDB4MWUsIDB4OTksIDB4YzUsIDB4YTYsIDB4NzgsIDB4Y2MsIDB4MzEsCisgICAgICAgIDB4ZTcsIDB4OTksIDB4MTcsIDB4NmQsIDB4MzgsIDB4NjAsIDB4ZTYsIDB4MTEsIDB4MGMsIDB4NDYsIDB4NTIsIDB4M2UsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV81MTJfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHhlMywgMHg3YiwgMHg2YSwgMHg3NywgMHg1ZCwgMHhjOCwgMHg3ZCwgMHhiYSwgMHhhNCwgMHhkZiwgMHhhOSwgMHhmOSwgMHg2ZSwKKyAgICAgICAgMHg1ZSwgMHgzZiwgMHhmZCwgMHhkZSwgMHhiZCwgMHg3MSwgMHhmOCwgMHg4NiwgMHg3MiwgMHg4OSwgMHg4NiwgMHg1ZCwgMHhmNSwKKyAgICAgICAgMHhhMywgMHgyZCwgMHgyMCwgMHhjZCwgMHhjOSwgMHg0NCwgMHhiNiwgMHgwMiwgMHgyYywgMHhhYywgMHgzYywgMHg0OSwgMHg4MiwKKyAgICAgICAgMHhiMSwgMHgwZCwgMHg1ZSwgMHhlYiwgMHg1NSwgMHhjMywgMHhlNCwgMHhkZSwgMHgxNSwgMHgxMywgMHg0NiwgMHg3NiwgMHhmYiwKKyAgICAgICAgMHg2ZCwgMHhlMCwgMHg0NCwgMHg2MCwgMHg2NSwgMHhjOSwgMHg3NCwgMHg0MCwgMHhmYSwgMHg4YywgMHg2YSwgMHg1OCwKKyAgICB9OworCisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMjI0LCBtYWtlX3N0cmluZyhzaGFfMjI0X2V4cGVjdGVkKSk7CisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMjU2LCBtYWtlX3N0cmluZyhzaGFfMjU2X2V4cGVjdGVkKSk7CisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMzg0LCBtYWtlX3N0cmluZyhzaGFfMzg0X2V4cGVjdGVkKSk7CisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfNTEyLCBtYWtlX3N0cmluZyhzaGFfNTEyX2V4cGVjdGVkKSk7Cit9CisKK3R5cGVkZWYgS2V5bWFzdGVySGlkbFRlc3QgVmVyaWZpY2F0aW9uT3BlcmF0aW9uc1Rlc3Q7CisKKy8qCisgKiBWZXJpZmljYXRpb25PcGVyYXRpb25zVGVzdC5Sc2FTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCBhIHNpbXBsZSBSU0Egc2lnbmF0dXJlL3ZlcmlmaWNhdGlvbiBzZXF1ZW5jZSBzdWNjZWVkcy4KKyAqLworVEVTVF9GKFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSk7CisgICAgVmVyaWZ5TWVzc2FnZShtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKTsKK30KKworLyoKKyAqIFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LlJzYVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyBSU0Egc2lnbmF0dXJlL3ZlcmlmaWNhdGlvbiBmb3IgYWxsIHBhZGRpbmcgbW9kZXMgYW5kIGRpZ2VzdHMuCisgKi8KK1RFU1RfRihWZXJpZmljYXRpb25PcGVyYXRpb25zVGVzdCwgUnNhQWxsUGFkZGluZ3NBbmREaWdlc3RzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMjA0OCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FLCBEaWdlc3Q6Ok1ENSwgRGlnZXN0OjpTSEExLCBEaWdlc3Q6OlNIQV8yXzIyNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlnZXN0OjpTSEFfMl8yNTYsIERpZ2VzdDo6U0hBXzJfMzg0LCBEaWdlc3Q6OlNIQV8yXzUxMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UoMTI4LCAnYScpOworICAgIHN0cmluZyBjb3JydXB0X21lc3NhZ2UobWVzc2FnZSk7CisgICAgKytjb3JydXB0X21lc3NhZ2VbY29ycnVwdF9tZXNzYWdlLnNpemUoKSAvIDJdOworCisgICAgZm9yIChhdXRvIHBhZGRpbmcgOgorICAgICAgICAge1BhZGRpbmdNb2RlOjpOT05FLCBQYWRkaW5nTW9kZTo6UlNBX1BTUywgUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTn0pIHsKKworICAgICAgICBmb3IgKGF1dG8gZGlnZXN0IDoge0RpZ2VzdDo6Tk9ORSwgRGlnZXN0OjpNRDUsIERpZ2VzdDo6U0hBMSwgRGlnZXN0OjpTSEFfMl8yMjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlnZXN0OjpTSEFfMl8yNTYsIERpZ2VzdDo6U0hBXzJfMzg0LCBEaWdlc3Q6OlNIQV8yXzUxMn0pIHsKKyAgICAgICAgICAgIGlmIChwYWRkaW5nID09IFBhZGRpbmdNb2RlOjpOT05FICYmIGRpZ2VzdCAhPSBEaWdlc3Q6Ok5PTkUpIHsKKyAgICAgICAgICAgICAgICAvLyBEaWdlc3Rpbmcgb25seSBtYWtlcyBzZW5zZSB3aXRoIHBhZGRpbmcuCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChwYWRkaW5nID09IFBhZGRpbmdNb2RlOjpSU0FfUFNTICYmIGRpZ2VzdCA9PSBEaWdlc3Q6Ok5PTkUpIHsKKyAgICAgICAgICAgICAgICAvLyBQU1MgcmVxdWlyZXMgZGlnZXN0aW5nLgorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdHJpbmcgc2lnbmF0dXJlID0KKyAgICAgICAgICAgICAgICBTaWduTWVzc2FnZShtZXNzYWdlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpLlBhZGRpbmcocGFkZGluZykpOworICAgICAgICAgICAgVmVyaWZ5TWVzc2FnZShtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkuUGFkZGluZyhwYWRkaW5nKSk7CisKKyAgICAgICAgICAgIGlmIChkaWdlc3QgIT0gRGlnZXN0OjpOT05FKSB7CisgICAgICAgICAgICAgICAgLy8gVmVyaWZ5IHdpdGggT3BlblNTTC4KKyAgICAgICAgICAgICAgICBIaWRsQnVmIHB1YmtleTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgRXhwb3J0S2V5KEtleUZvcm1hdDo6WDUwOSwgJnB1YmtleSkpOworCisgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcCA9IHB1YmtleS5kYXRhKCk7CisgICAgICAgICAgICAgICAgRVZQX1BLRVlfUHRyIHBrZXkoZDJpX1BVQktFWShudWxscHRyIC8qIGFsbG9jIG5ldyAqLywgJnAsIHB1YmtleS5zaXplKCkpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShwa2V5LmdldCgpKTsKKworICAgICAgICAgICAgICAgIEVWUF9NRF9DVFggZGlnZXN0X2N0eDsKKyAgICAgICAgICAgICAgICBFVlBfTURfQ1RYX2luaXQoJmRpZ2VzdF9jdHgpOworICAgICAgICAgICAgICAgIEVWUF9QS0VZX0NUWCogcGtleV9jdHg7CisgICAgICAgICAgICAgICAgY29uc3QgRVZQX01EKiBtZCA9IG9wZW5zc2xfZGlnZXN0KGRpZ2VzdCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX05FKG1kLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMSwgRVZQX0RpZ2VzdFZlcmlmeUluaXQoJmRpZ2VzdF9jdHgsICZwa2V5X2N0eCwgbWQsIG51bGxwdHIgLyogZW5naW5lICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwa2V5LmdldCgpKSk7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHBhZGRpbmcpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFBhZGRpbmdNb2RlOjpSU0FfUFNTOgorICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfR1QoRVZQX1BLRVlfQ1RYX3NldF9yc2FfcGFkZGluZyhwa2V5X2N0eCwgUlNBX1BLQ1MxX1BTU19QQURESU5HKSwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9HVChFVlBfUEtFWV9DVFhfc2V0X3JzYV9wc3Nfc2FsdGxlbihwa2V5X2N0eCwgRVZQX01EX3NpemUobWQpKSwgMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTjoKKyAgICAgICAgICAgICAgICAgICAgLy8gUEtDUzEgaXMgdGhlIGRlZmF1bHQ7IGRvbid0IG5lZWQgdG8gc2V0IGFueXRoaW5nLgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBGQUlMKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgxLCBFVlBfRGlnZXN0VmVyaWZ5VXBkYXRlKCZkaWdlc3RfY3R4LCBtZXNzYWdlLmRhdGEoKSwgbWVzc2FnZS5zaXplKCkpKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMSwgRVZQX0RpZ2VzdFZlcmlmeUZpbmFsKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRpZ2VzdF9jdHgsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNpZ25hdHVyZS5kYXRhKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlLnNpemUoKSkpOworICAgICAgICAgICAgICAgIEVWUF9NRF9DVFhfY2xlYW51cCgmZGlnZXN0X2N0eCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIENvcnJ1cHQgc2lnbmF0dXJlIHNob3VsZG4ndCB2ZXJpZnkuCisgICAgICAgICAgICBzdHJpbmcgY29ycnVwdF9zaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgICAgICAgICsrY29ycnVwdF9zaWduYXR1cmVbY29ycnVwdF9zaWduYXR1cmUuc2l6ZSgpIC8gMl07CisKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlZFUklGWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpLlBhZGRpbmcocGFkZGluZykpKTsKKyAgICAgICAgICAgIHN0cmluZyByZXN1bHQ7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELCBGaW5pc2gobWVzc2FnZSwgY29ycnVwdF9zaWduYXR1cmUsICZyZXN1bHQpKTsKKworICAgICAgICAgICAgLy8gQ29ycnVwdCBtZXNzYWdlIHNob3VsZG4ndCB2ZXJpZnkKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlZFUklGWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpLlBhZGRpbmcocGFkZGluZykpKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlZFUklGSUNBVElPTl9GQUlMRUQsIEZpbmlzaChjb3JydXB0X21lc3NhZ2UsIHNpZ25hdHVyZSwgJnJlc3VsdCkpOworICAgICAgICB9CisgICAgfQorfQorCisvKgorICogVmVyaWZpY2F0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIEVDRFNBIHNpZ25hdHVyZS92ZXJpZmljYXRpb24gZm9yIGFsbCBkaWdlc3RzIGFuZCBjdXJ2ZXMuCisgKi8KK1RFU1RfRihWZXJpZmljYXRpb25PcGVyYXRpb25zVGVzdCwgRWNkc2FBbGxEaWdlc3RzQW5kQ3VydmVzKSB7CisgICAgYXV0byBkaWdlc3RzID0geworICAgICAgICBEaWdlc3Q6Ok5PTkUsICAgICAgRGlnZXN0OjpTSEExLCAgICAgIERpZ2VzdDo6U0hBXzJfMjI0LAorICAgICAgICBEaWdlc3Q6OlNIQV8yXzI1NiwgRGlnZXN0OjpTSEFfMl8zODQsIERpZ2VzdDo6U0hBXzJfNTEyLAorICAgIH07CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwIjsKKyAgICBzdHJpbmcgY29ycnVwdF9tZXNzYWdlID0gIjIyMzQ1Njc4OTAiOworICAgIGZvciAoYXV0byBjdXJ2ZSA6IHtFY0N1cnZlOjpQXzIyNCwgRWNDdXJ2ZTo6UF8yNTYsIEVjQ3VydmU6OlBfMzg0LCBFY0N1cnZlOjpQXzUyMX0pIHsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KGN1cnZlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChkaWdlc3RzKSk7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBlcnJvcikgPDwgIkZhaWxlZCB0byBnZW5lcmF0ZSBrZXkgZm9yIEVDIGN1cnZlICIgPDwgY3VydmU7CisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoYXV0byBkaWdlc3QgOiBkaWdlc3RzKSB7CisgICAgICAgICAgICBzdHJpbmcgc2lnbmF0dXJlID0gU2lnbk1lc3NhZ2UobWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoZGlnZXN0KSk7CisgICAgICAgICAgICBWZXJpZnlNZXNzYWdlKG1lc3NhZ2UsIHNpZ25hdHVyZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoZGlnZXN0KSk7CisKKyAgICAgICAgICAgIC8vIFZlcmlmeSB3aXRoIE9wZW5TU0wKKyAgICAgICAgICAgIGlmIChkaWdlc3QgIT0gRGlnZXN0OjpOT05FKSB7CisgICAgICAgICAgICAgICAgSGlkbEJ1ZiBwdWJrZXk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEV4cG9ydEtleShLZXlGb3JtYXQ6Olg1MDksICZwdWJrZXkpKQorICAgICAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcCA9IHB1YmtleS5kYXRhKCk7CisgICAgICAgICAgICAgICAgRVZQX1BLRVlfUHRyIHBrZXkoZDJpX1BVQktFWShudWxscHRyIC8qIGFsbG9jIG5ldyAqLywgJnAsIHB1YmtleS5zaXplKCkpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShwa2V5LmdldCgpKTsKKworICAgICAgICAgICAgICAgIEVWUF9NRF9DVFggZGlnZXN0X2N0eDsKKyAgICAgICAgICAgICAgICBFVlBfTURfQ1RYX2luaXQoJmRpZ2VzdF9jdHgpOworICAgICAgICAgICAgICAgIEVWUF9QS0VZX0NUWCogcGtleV9jdHg7CisgICAgICAgICAgICAgICAgY29uc3QgRVZQX01EKiBtZCA9IG9wZW5zc2xfZGlnZXN0KGRpZ2VzdCk7CisKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMSwgRVZQX0RpZ2VzdFZlcmlmeUluaXQoJmRpZ2VzdF9jdHgsICZwa2V5X2N0eCwgbWQsIG51bGxwdHIgLyogZW5naW5lICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwa2V5LmdldCgpKSkKKyAgICAgICAgICAgICAgICAgICAgPDwgY3VydmUgPDwgJyAnIDw8IGRpZ2VzdDsKKworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgxLCBFVlBfRGlnZXN0VmVyaWZ5VXBkYXRlKCZkaWdlc3RfY3R4LCBtZXNzYWdlLmRhdGEoKSwgbWVzc2FnZS5zaXplKCkpKQorICAgICAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDEsIEVWUF9EaWdlc3RWZXJpZnlGaW5hbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkaWdlc3RfY3R4LCByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihzaWduYXR1cmUuZGF0YSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZS5zaXplKCkpKQorICAgICAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAgICAgRVZQX01EX0NUWF9jbGVhbnVwKCZkaWdlc3RfY3R4KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ29ycnVwdCBzaWduYXR1cmUgc2hvdWxkbid0IHZlcmlmeS4KKyAgICAgICAgICAgIHN0cmluZyBjb3JydXB0X3NpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgICAgICAgKytjb3JydXB0X3NpZ25hdHVyZVtjb3JydXB0X3NpZ25hdHVyZS5zaXplKCkgLyAyXTsKKworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpKSkKKyAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICBzdHJpbmcgcmVzdWx0OworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VkVSSUZJQ0FUSU9OX0ZBSUxFRCwgRmluaXNoKG1lc3NhZ2UsIGNvcnJ1cHRfc2lnbmF0dXJlLCAmcmVzdWx0KSkKKyAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAvLyBDb3JydXB0IG1lc3NhZ2Ugc2hvdWxkbid0IHZlcmlmeQorICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpKSkKKyAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELCBGaW5pc2goY29ycnVwdF9tZXNzYWdlLCBzaWduYXR1cmUsICZyZXN1bHQpKQorICAgICAgICAgICAgICAgIDw8IGN1cnZlIDw8ICcgJyA8PCBkaWdlc3Q7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgRGVsZXRlS2V5KCkpOworICAgIH0KK30KKworLyoKKyAqIFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LkhtYWNTaWduaW5nS2V5Q2Fubm90VmVyaWZ5CisgKgorICogVmVyaWZpZXMgSE1BQyBzaWduaW5nIGFuZCB2ZXJpZmljYXRpb24sIGJ1dCB0aGF0IGEgc2lnbmluZyBrZXkgY2Fubm90IGJlIHVzZWQgdG8gdmVyaWZ5LgorICovCitURVNUX0YoVmVyaWZpY2F0aW9uT3BlcmF0aW9uc1Rlc3QsIEhtYWNTaWduaW5nS2V5Q2Fubm90VmVyaWZ5KSB7CisgICAgc3RyaW5nIGtleV9tYXRlcmlhbCA9ICJIZWxsb1RoaXNJc0FLZXkiOworCisgICAgSGlkbEJ1ZiBzaWduaW5nX2tleSwgdmVyaWZpY2F0aW9uX2tleTsKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3Mgc2lnbmluZ19rZXlfY2hhcnMsIHZlcmlmaWNhdGlvbl9rZXlfY2hhcnM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19QVVJQT1NFLCBLZXlQdXJwb3NlOjpTSUdOKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEExKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTYwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UkFXLCBrZXlfbWF0ZXJpYWwsICZzaWduaW5nX2tleSwgJnNpZ25pbmdfa2V5X2NoYXJzKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19QVVJQT1NFLCBLZXlQdXJwb3NlOjpWRVJJRlkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQTEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxNjApLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpSQVcsIGtleV9tYXRlcmlhbCwgJnZlcmlmaWNhdGlvbl9rZXksICZ2ZXJpZmljYXRpb25fa2V5X2NoYXJzKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJUaGlzIGlzIGEgbWVzc2FnZS4iOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgc2lnbmluZ19rZXksIG1lc3NhZ2UsCisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6U0hBMSkuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTYwKSk7CisKKyAgICAvLyBTaWduaW5nIGtleSBzaG91bGQgbm90IHdvcmsuCisgICAgQXV0aG9yaXphdGlvblNldCBvdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOQ09NUEFUSUJMRV9QVVJQT1NFLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpWRVJJRlksIHNpZ25pbmdfa2V5LCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQTEpLAorICAgICAgICAgICAgICAgICAgICAmb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKworICAgIC8vIFZlcmlmaWNhdGlvbiBrZXkgc2hvdWxkIHdvcmsuCisgICAgVmVyaWZ5TWVzc2FnZSh2ZXJpZmljYXRpb25fa2V5LCBtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQTEpKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBEZWxldGVLZXkoJnNpZ25pbmdfa2V5KSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgmdmVyaWZpY2F0aW9uX2tleSkpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEV4cG9ydEtleVRlc3Q7CisKKy8qCisgKiBFeHBvcnRLZXlUZXN0LlJzYVVuc3VwcG9ydGVkS2V5Rm9ybWF0CisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIGV4cG9ydCBSU0Ega2V5cyBpbiBQS0NTIzggZm9ybWF0IGZhaWxzIHdpdGggdGhlIGNvcnJlY3QgZXJyb3IuCisgKi8KK1RFU1RfRihFeHBvcnRLZXlUZXN0LCBSc2FVbnN1cHBvcnRlZEtleUZvcm1hdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgyNTYsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX0ZPUk1BVCwgRXhwb3J0S2V5KEtleUZvcm1hdDo6UEtDUzgsICZleHBvcnRfZGF0YSkpOworfQorCisvKgorICogRXhwb3J0S2V5VGVzdC5Sc2FDb3JydXB0ZWRLZXlCbG9iCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIGV4cG9ydCBSU0Ega2V5cyBmcm9tIGNvcnJ1cHRlZCBrZXkgYmxvYnMgZmFpbHMuICBUaGlzIGlzIGVzc2VudGlhbGx5CisgKiBhIHBvb3ItbWFuJ3Mga2V5IGJsb2IgZnV6emVyLgorICovCisvLyBEaXNhYmxlZCBkdWUgdG8gYi8zMzM4NTIwNgorVEVTVF9GKEV4cG9ydEtleVRlc3QsIERJU0FCTEVEX1JzYUNvcnJ1cHRlZEtleUJsb2IpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgyNTYsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5X2Jsb2JfLnNpemUoKTsgKytpKSB7CisgICAgICAgIEhpZGxCdWYgY29ycnVwdGVkKGtleV9ibG9iXyk7CisgICAgICAgICsrY29ycnVwdGVkW2ldOworCisgICAgICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfS0VZX0JMT0IsCisgICAgICAgICAgICAgICAgICBFeHBvcnRLZXkoS2V5Rm9ybWF0OjpYNTA5LCBjb3JydXB0ZWQsIEhpZGxCdWYoKSwgSGlkbEJ1ZigpLCAmZXhwb3J0X2RhdGEpKQorICAgICAgICAgICAgPDwgIkJsb2IgY29ycnVwdGVkIGF0IG9mZnNldCAiIDw8IGkgPDwgIiBlcnJvbmVvdXNseSBhY2NlcHRlZCBhcyB2YWxpZCI7CisgICAgfQorfQorCisvKgorICogRXhwb3J0S2V5VGVzdC5Sc2FDb3JydXB0ZWRLZXlCbG9iCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIGV4cG9ydCBFQ0RTQSBrZXlzIGZyb20gY29ycnVwdGVkIGtleSBibG9icyBmYWlscy4gIFRoaXMgaXMKKyAqIGVzc2VudGlhbGx5IGEgcG9vci1tYW4ncyBrZXkgYmxvYiBmdXp6ZXIuCisgKi8KKy8vIERpc2FibGVkIGR1ZSB0byBiLzMzMzg1MjA2CitURVNUX0YoRXhwb3J0S2V5VGVzdCwgRElTQUJMRURfRWNDb3JydXB0ZWRLZXlCbG9iKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShFY0N1cnZlOjpQXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5X2Jsb2JfLnNpemUoKTsgKytpKSB7CisgICAgICAgIEhpZGxCdWYgY29ycnVwdGVkKGtleV9ibG9iXyk7CisgICAgICAgICsrY29ycnVwdGVkW2ldOworCisgICAgICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfS0VZX0JMT0IsCisgICAgICAgICAgICAgICAgICBFeHBvcnRLZXkoS2V5Rm9ybWF0OjpYNTA5LCBjb3JydXB0ZWQsIEhpZGxCdWYoKSwgSGlkbEJ1ZigpLCAmZXhwb3J0X2RhdGEpKQorICAgICAgICAgICAgPDwgIkJsb2IgY29ycnVwdGVkIGF0IG9mZnNldCAiIDw8IGkgPDwgIiBlcnJvbmVvdXNseSBhY2NlcHRlZCBhcyB2YWxpZCI7CisgICAgfQorfQorCisvKgorICogRXhwb3J0S2V5VGVzdC5BZXNLZXlVbmV4cG9ydGFibGUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVtcHRpbmcgdG8gZXhwb3J0IEFFUyBrZXlzIGZhaWxzIGluIHRoZSBleHBlY3RlZCB3YXkuCisgKi8KK1RFU1RfRihFeHBvcnRLZXlUZXN0LCBBZXNLZXlVbmV4cG9ydGFibGUpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNiTW9kZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX0ZPUk1BVCwgRXhwb3J0S2V5KEtleUZvcm1hdDo6WDUwOSwgJmV4cG9ydF9kYXRhKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX0ZPUk1BVCwgRXhwb3J0S2V5KEtleUZvcm1hdDo6UEtDUzgsICZleHBvcnRfZGF0YSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX0tFWV9GT1JNQVQsIEV4cG9ydEtleShLZXlGb3JtYXQ6OlJBVywgJmV4cG9ydF9kYXRhKSk7Cit9Cit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEltcG9ydEtleVRlc3Q7CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LlJzYVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gUlNBIGtleSBwYWlyIHdvcmtzIGNvcnJlY3RseS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIFJzYVN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgSW1wb3J0S2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCA2NTUzNykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUFNTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UEtDUzgsIHJzYV9rZXkpKTsKKworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpSU0EpOworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0tFWV9TSVpFLCAxMDI0VSk7CisgICAgQ2hlY2tLbTBDcnlwdG9QYXJhbShUQUdfUlNBX1BVQkxJQ19FWFBPTkVOVCwgNjU1MzdVKTsKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19ESUdFU1QsIERpZ2VzdDo6U0hBXzJfMjU2KTsKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19QQURESU5HLCBQYWRkaW5nTW9kZTo6UlNBX1BTUyk7CisgICAgQ2hlY2tPcmlnaW4oKTsKKworICAgIHN0cmluZyBtZXNzYWdlKDEwMjQgLyA4LCAnYScpOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIFZlcmlmeU1lc3NhZ2UobWVzc2FnZSwgc2lnbmF0dXJlLCBwYXJhbXMpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5Sc2FLZXlTaXplTWlzbWF0Y2gKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbiBSU0Ega2V5IHBhaXIgd2l0aCBhIHNpemUgdGhhdCBkb2Vzbid0IG1hdGNoIHRoZSBrZXkgZmFpbHMgaW4gdGhlCisgKiBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIFJzYUtleVNpemVNaXNtYXRjaCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OklNUE9SVF9QQVJBTUVURVJfTUlTTUFUQ0gsCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMjA0OCAvKiBEb2Vzbid0IG1hdGNoIGtleSAqLywgNjU1MzcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgcnNhX2tleSkpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5Sc2FQdWJsaWNFeHBvbmVudE1pc21hdGNoCisgKgorICogVmVyaWZpZXMgdGhhdCBpbXBvcnRpbmcgYW4gUlNBIGtleSBwYWlyIHdpdGggYSBwdWJsaWMgZXhwb25lbnQgdGhhdCBkb2Vzbid0IG1hdGNoIHRoZSBrZXkgZmFpbHMKKyAqIGluIHRoZSBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIFJzYVB1YmxpY0V4cG9uZW50TWlzbWF0Y2gpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpJTVBPUlRfUEFSQU1FVEVSX01JU01BVENILAorICAgICAgICAgICAgICBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMgLyogRG9lc24ndCBtYXRjaCBrZXkgKi8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgcnNhX2tleSkpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5FY2RzYVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gRUNEU0Ega2V5IHBhaXIgd29ya3MgY29ycmVjdGx5LgorICovCitURVNUX0YoSW1wb3J0S2V5VGVzdCwgRWNkc2FTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleSgyNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlGb3JtYXQ6OlBLQ1M4LCBlY19rZXkpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzM5NDUxMTQpIjsKKworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpFQyk7CisgICAgQ2hlY2tLbTBDcnlwdG9QYXJhbShUQUdfS0VZX1NJWkUsIDI1NlUpOworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX0RJR0VTVCwgRGlnZXN0OjpTSEFfMl8yNTYpOworICAgIENoZWNrS20yQ3J5cHRvUGFyYW0oVEFHX0VDX0NVUlZFLCBFY0N1cnZlOjpQXzI1Nik7CisKKyAgICBDaGVja09yaWdpbigpOworCisgICAgc3RyaW5nIG1lc3NhZ2UoMzIsICdhJyk7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1Nik7CisgICAgc3RyaW5nIHNpZ25hdHVyZSA9IFNpZ25NZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgVmVyaWZ5TWVzc2FnZShtZXNzYWdlLCBzaWduYXR1cmUsIHBhcmFtcyk7Cit9CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LkVjZHNhU2l6ZU1pc21hdGNoCisgKgorICogVmVyaWZpZXMgdGhhdCBpbXBvcnRpbmcgYW4gRUNEU0Ega2V5IHBhaXIgd2l0aCBhIHNpemUgdGhhdCBkb2Vzbid0IG1hdGNoIHRoZSBrZXkgZmFpbHMgaW4gdGhlCisgKiBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIEVjZHNhU2l6ZU1pc21hdGNoKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU1QT1JUX1BBUkFNRVRFUl9NSVNNQVRDSCwKKyAgICAgICAgICAgICAgSW1wb3J0S2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KDIyNCAvKiBEb2Vzbid0IG1hdGNoIGtleSAqLykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSksCisgICAgICAgICAgICAgICAgICAgICAgICBLZXlGb3JtYXQ6OlBLQ1M4LCBlY19rZXkpKTsKK30KKworLyoKKyAqIEltcG9ydEtleVRlc3QuRWNkc2FDdXJ2ZU1pc21hdGNoCisgKgorICogVmVyaWZpZXMgdGhhdCBpbXBvcnRpbmcgYW4gRUNEU0Ega2V5IHBhaXIgd2l0aCBhIGN1cnZlIHRoYXQgZG9lc24ndCBtYXRjaCB0aGUga2V5IGZhaWxzIGluIHRoZQorICogY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihJbXBvcnRLZXlUZXN0LCBFY2RzYUN1cnZlTWlzbWF0Y2gpIHsKKyAgICBpZiAoU3VwcG9ydHNTeW1tZXRyaWMoKSAmJiAhU3VwcG9ydHNBdHRlc3RhdGlvbigpKSB7CisgICAgICAgIC8vIEtNMSBoYXJkd2FyZSBkb2Vzbid0IGtub3cgYWJvdXQgY3VydmVzCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpJTVBPUlRfUEFSQU1FVEVSX01JU01BVENILAorICAgICAgICAgICAgICBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoRWNDdXJ2ZTo6UF8yMjQgLyogRG9lc24ndCBtYXRjaCBrZXkgKi8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgZWNfa2V5KSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzM2MjMzMjQxKSI7Cit9CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LkFlc1N1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gQUVTIGtleSB3b3Jrcy4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIEFlc1N1Y2Nlc3MpIHsKKyAgICBzdHJpbmcga2V5ID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KGtleS5zaXplKCkgKiA4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2JNb2RlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UEtDUzcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpSQVcsIGtleSkpOworCisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkFFUyk7CisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfS0VZX1NJWkUsIDEyOFUpOworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX1BBRERJTkcsIFBhZGRpbmdNb2RlOjpQS0NTNyk7CisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpFQ0IpOworICAgIENoZWNrT3JpZ2luKCk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dCA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LkFlc1N1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gSE1BQyBrZXkgd29ya3MuCisgKi8KK1RFU1RfRihJbXBvcnRLZXlUZXN0LCBIbWFjS2V5U3VjY2VzcykgeworICAgIHN0cmluZyBrZXkgPSB7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMH07CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoa2V5LnNpemUoKSAqIDgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDI1NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlGb3JtYXQ6OlJBVywga2V5KSk7CisKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6SE1BQyk7CisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfS0VZX1NJWkUsIDEyOFUpOworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX0RJR0VTVCwgRGlnZXN0OjpTSEFfMl8yNTYpOworICAgIENoZWNrT3JpZ2luKCk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBNYWNNZXNzYWdlKG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMjU2LCAyNTYpOworICAgIFZlcmlmeU1lc3NhZ2UobWVzc2FnZSwgc2lnbmF0dXJlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdDsKKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FOb1BhZGRpbmdTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCByYXcgUlNBIGVuY3J5cHRpb24gd29ya3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYU5vUGFkZGluZ1N1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9IHN0cmluZygxMDI0IC8gOCwgJ2EnKTsKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisgICAgc3RyaW5nIGNpcGhlcnRleHQxID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTAyNFUgLyA4LCBjaXBoZXJ0ZXh0MS5zaXplKCkpOworCisgICAgc3RyaW5nIGNpcGhlcnRleHQyID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTAyNFUgLyA4LCBjaXBoZXJ0ZXh0Mi5zaXplKCkpOworCisgICAgLy8gVW5wYWRkZWQgUlNBIGlzIGRldGVybWluaXN0aWMKKyAgICBFWFBFQ1RfRVEoY2lwaGVydGV4dDEsIGNpcGhlcnRleHQyKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FOb1BhZGRpbmdTaG9ydE1lc3NhZ2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IHJhdyBSU0EgZW5jcnlwdGlvbiBvZiBzaG9ydCBtZXNzYWdlcyB3b3Jrcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgUnNhTm9QYWRkaW5nU2hvcnRNZXNzYWdlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMSI7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworCisgICAgc3RyaW5nIGNpcGhlcnRleHQgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUSgxMDI0VSAvIDgsIGNpcGhlcnRleHQuc2l6ZSgpKTsKKworICAgIHN0cmluZyBleHBlY3RlZF9wbGFpbnRleHQgPSBzdHJpbmcoMTAyNCAvIDggLSAxLCAwKSArIG1lc3NhZ2U7CisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQsIHBhcmFtcyk7CisKKyAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRfcGxhaW50ZXh0LCBwbGFpbnRleHQpOworCisgICAgLy8gRGVnZW5lcmF0ZSBjYXNlLCBlbmNyeXB0aW5nIGEgbnVtZXJpYyAxIHlpZWxkcyAweDAwLi4wMSBhcyB0aGUgY2lwaGVydGV4dC4KKyAgICBtZXNzYWdlID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMSk7CisgICAgY2lwaGVydGV4dCA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKDEwMjRVIC8gOCwgY2lwaGVydGV4dC5zaXplKCkpOworICAgIEVYUEVDVF9FUShjaXBoZXJ0ZXh0LCBzdHJpbmcoMTAyNCAvIDggLSAxLCAwKSArIG1lc3NhZ2UpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYU5vUGFkZGluZ1Rvb0xvbmcKKyAqCisgKiBWZXJpZmllcyB0aGF0IHJhdyBSU0EgZW5jcnlwdGlvbiBvZiB0b28tbG9uZyBtZXNzYWdlcyBmYWlscyBpbiB0aGUgZXhwZWN0ZWQgd2F5LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FOb1BhZGRpbmdUb29Mb25nKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCAvIDggKyAxLCAnYScpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKworICAgIHN0cmluZyByZXN1bHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmcmVzdWx0KSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhTm9QYWRkaW5nVG9vTG9uZworICoKKyAqIFZlcmlmaWVzIHRoYXQgcmF3IFJTQSBlbmNyeXB0aW9uIG9mIHRvby1sYXJnZSAobnVtZXJpY2FsbHkpIG1lc3NhZ2VzIGZhaWxzIGluIHRoZSBleHBlY3RlZCB3YXkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYU5vUGFkZGluZ1Rvb0xhcmdlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgSGlkbEJ1ZiBleHBvcnRlZDsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgRXhwb3J0S2V5KEtleUZvcm1hdDo6WDUwOSwgJmV4cG9ydGVkKSk7CisKKyAgICBjb25zdCB1aW50OF90KiBwID0gZXhwb3J0ZWQuZGF0YSgpOworICAgIEVWUF9QS0VZX1B0ciBwa2V5KGQyaV9QVUJLRVkobnVsbHB0ciAvKiBhbGxvYyBuZXcgKi8sICZwLCBleHBvcnRlZC5zaXplKCkpKTsKKyAgICBSU0FfUHRyIHJzYShFVlBfUEtFWV9nZXQxX1JTQShwa2V5LmdldCgpKSk7CisKKyAgICBzaXplX3QgbW9kdWx1c19sZW4gPSBCTl9udW1fYnl0ZXMocnNhLT5uKTsKKyAgICBBU1NFUlRfRVEoMTAyNFUgLyA4LCBtb2R1bHVzX2xlbik7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gbW9kdWx1c19idWYobmV3IHVpbnQ4X3RbbW9kdWx1c19sZW5dKTsKKyAgICBCTl9ibjJiaW4ocnNhLT5uLCBtb2R1bHVzX2J1Zi5nZXQoKSk7CisKKyAgICAvLyBUaGUgbW9kdWx1cyBpcyB0b28gYmlnIHRvIGVuY3J5cHQuCisgICAgc3RyaW5nIG1lc3NhZ2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4obW9kdWx1c19idWYuZ2V0KCkpLCBtb2R1bHVzX2xlbik7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworCisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0FSR1VNRU5ULCBGaW5pc2gobWVzc2FnZSwgJnJlc3VsdCkpOworCisgICAgLy8gT25lIHNtYWxsZXIgdGhhbiB0aGUgbW9kdWx1cyBpcyBva2F5LgorICAgIEJOX3N1Yihyc2EtPm4sIHJzYS0+biwgQk5fdmFsdWVfb25lKCkpOworICAgIG1vZHVsdXNfbGVuID0gQk5fbnVtX2J5dGVzKHJzYS0+bik7CisgICAgQVNTRVJUX0VRKDEwMjRVIC8gOCwgbW9kdWx1c19sZW4pOworICAgIEJOX2JuMmJpbihyc2EtPm4sIG1vZHVsdXNfYnVmLmdldCgpKTsKKyAgICBtZXNzYWdlID0gc3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KG1vZHVsdXNfYnVmLmdldCgpKSwgbW9kdWx1c19sZW4pOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FPYWVwU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBLU9BRVAgZW5jcnlwdGlvbiBvcGVyYXRpb25zIHdvcmssIHdpdGggYWxsIGRpZ2VzdHMuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYU9hZXBTdWNjZXNzKSB7CisgICAgYXV0byBkaWdlc3RzID0ge0RpZ2VzdDo6TUQ1LCAgICAgICBEaWdlc3Q6OlNIQTEsICAgICAgRGlnZXN0OjpTSEFfMl8yMjQsCisgICAgICAgICAgICAgICAgICAgIERpZ2VzdDo6U0hBXzJfMjU2LCBEaWdlc3Q6OlNIQV8yXzM4NCwgRGlnZXN0OjpTSEFfMl81MTJ9OworCisgICAgc2l6ZV90IGtleV9zaXplID0gMjA0ODsgIC8vIE5lZWQgbGFyZ2lzaCBrZXkgZm9yIFNIQS01MTIgdGVzdC4KKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleShrZXlfc2l6ZSwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfT0FFUCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoZGlnZXN0cykpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIkhlbGxvIjsKKworICAgIGZvciAoYXV0byBkaWdlc3QgOiBkaWdlc3RzKSB7CisgICAgICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoZGlnZXN0KS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfT0FFUCk7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0MSA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgICAgIGlmIChIYXNOb25mYXRhbEZhaWx1cmUoKSkgc3RkOjpjb3V0IDw8ICItLT4iIDw8IGRpZ2VzdCA8PCBzdGQ6OmVuZGw7CisgICAgICAgIEVYUEVDVF9FUShrZXlfc2l6ZSAvIDgsIGNpcGhlcnRleHQxLnNpemUoKSk7CisKKyAgICAgICAgc3RyaW5nIGNpcGhlcnRleHQyID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKGtleV9zaXplIC8gOCwgY2lwaGVydGV4dDIuc2l6ZSgpKTsKKworICAgICAgICAvLyBPQUVQIHJhbmRvbWl6ZXMgcGFkZGluZyBzbyBldmVyeSByZXN1bHQgc2hvdWxkIGJlIGRpZmZlcmVudCAod2l0aCBhc3Ryb25vbWljYWxseSBoaWdoCisgICAgICAgIC8vIHByb2JhYmlsaXR5KS4KKyAgICAgICAgRVhQRUNUX05FKGNpcGhlcnRleHQxLCBjaXBoZXJ0ZXh0Mik7CisKKyAgICAgICAgc3RyaW5nIHBsYWludGV4dDEgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MSwgcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dDEpIDw8ICJSU0EtT0FFUCBmYWlsZWQgd2l0aCBkaWdlc3QgIiA8PCBkaWdlc3Q7CisgICAgICAgIHN0cmluZyBwbGFpbnRleHQyID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dDIsIHBhcmFtcyk7CisgICAgICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQyKSA8PCAiUlNBLU9BRVAgZmFpbGVkIHdpdGggZGlnZXN0ICIgPDwgZGlnZXN0OworCisgICAgICAgIC8vIERlY3J5cHRpbmcgY29ycnVwdGVkIGNpcGhlcnRleHQgc2hvdWxkIGZhaWwuCisgICAgICAgIHNpemVfdCBvZmZzZXRfdG9fY29ycnVwdCA9IHJhbmRvbSgpICUgY2lwaGVydGV4dDEuc2l6ZSgpOworICAgICAgICBjaGFyIGNvcnJ1cHRfYnl0ZTsKKyAgICAgICAgZG8geworICAgICAgICAgICAgY29ycnVwdF9ieXRlID0gc3RhdGljX2Nhc3Q8Y2hhcj4ocmFuZG9tKCkgJSAyNTYpOworICAgICAgICB9IHdoaWxlIChjb3JydXB0X2J5dGUgPT0gY2lwaGVydGV4dDFbb2Zmc2V0X3RvX2NvcnJ1cHRdKTsKKyAgICAgICAgY2lwaGVydGV4dDFbb2Zmc2V0X3RvX2NvcnJ1cHRdID0gY29ycnVwdF9ieXRlOworCisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBwYXJhbXMpKTsKKyAgICAgICAgc3RyaW5nIHJlc3VsdDsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5LTk9XTl9FUlJPUiwgRmluaXNoKGNpcGhlcnRleHQxLCAmcmVzdWx0KSk7CisgICAgICAgIEVYUEVDVF9FUSgwVSwgcmVzdWx0LnNpemUoKSk7CisgICAgfQorfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYU9hZXBJbnZhbGlkRGlnZXN0CisgKgorICogVmVyaWZpZXMgdGhhdCBSU0EtT0FFUCBlbmNyeXB0aW9uIG9wZXJhdGlvbnMgZmFpbCBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBhc2tlZCB0byBvcGVyYXRlCisgKiB3aXRob3V0IGEgZGlnZXN0LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FPYWVwSW52YWxpZERpZ2VzdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FFbmNyeXB0aW9uS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9PQUVQKS5EaWdlc3QoRGlnZXN0OjpOT05FKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfRElHRVNULCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FPYWVwSW52YWxpZERpZ2VzdAorICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBLU9BRVAgZW5jcnlwdGlvbiBvcGVyYXRpb25zIGZhaWwgaW4gdGhlIGNvcnJlY3Qgd2F5IHdoZW4gYXNrZWQgdG8gZGVjcnlwdCB3aXRoIGEKKyAqIGRpZmZlcmVudCBkaWdlc3QgdGhhbiB3YXMgdXNlZCB0byBlbmNyeXB0LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FPYWVwRGVjcnlwdFdpdGhXcm9uZ0RpZ2VzdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FFbmNyeXB0aW9uS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2LCBEaWdlc3Q6OlNIQV8yXzIyNCkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UoCisgICAgICAgIG1lc3NhZ2UsCisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjI0KS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfT0FFUCkpOworCisgICAgRVhQRUNUX0VRKAorICAgICAgICBFcnJvckNvZGU6Ok9LLAorICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULAorICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApKSk7CisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpVTktOT1dOX0VSUk9SLCBGaW5pc2goY2lwaGVydGV4dCwgJnJlc3VsdCkpOworICAgIEVYUEVDVF9FUSgwVSwgcmVzdWx0LnNpemUoKSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhT2FlcFRvb0xhcmdlCisgKgorICogVmVyaWZpZXMgdGhhdCBSU0EtT0FFUCBlbmNyeXB0aW9uIG9wZXJhdGlvbnMgZmFpbCBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBhc2tlZCB0byBlbmNyeXB0IGEKKyAqIHRvby1sYXJnZSBtZXNzYWdlLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FPYWVwVG9vTGFyZ2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9PQUVQKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQTEpKSk7CisgICAgY29uc3RleHByIHNpemVfdCBkaWdlc3Rfc2l6ZSA9IDE2MCAvKiBTSEExICovIC8gODsKKyAgICBjb25zdGV4cHIgc2l6ZV90IG9hZXBfb3ZlcmhlYWQgPSAyICogZGlnZXN0X3NpemUgKyAyOworICAgIHN0cmluZyBtZXNzYWdlKDEwMjQgLyA4IC0gb2FlcF9vdmVyaGVhZCArIDEsICdhJyk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsCisgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApLkRpZ2VzdChEaWdlc3Q6OlNIQTEpKSk7CisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0lOUFVUX0xFTkdUSCwgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIHJlc3VsdC5zaXplKCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYVBrY3MxU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBIFBLQ1MgZW5jcnlwdGlvbi9kZWNyeXB0cyB3b3Jrcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgUnNhUGtjczFTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X0VOQ1JZUFQpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X0VOQ1JZUFQpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0MSA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKDEwMjRVIC8gOCwgY2lwaGVydGV4dDEuc2l6ZSgpKTsKKworICAgIHN0cmluZyBjaXBoZXJ0ZXh0MiA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKDEwMjRVIC8gOCwgY2lwaGVydGV4dDIuc2l6ZSgpKTsKKworICAgIC8vIFBLQ1MxIHYxLjUgcmFuZG9taXplcyBwYWRkaW5nIHNvIGV2ZXJ5IHJlc3VsdCBzaG91bGQgYmUgZGlmZmVyZW50LgorICAgIEVYUEVDVF9ORShjaXBoZXJ0ZXh0MSwgY2lwaGVydGV4dDIpOworCisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQxLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworCisgICAgLy8gRGVjcnlwdGluZyBjb3JydXB0ZWQgY2lwaGVydGV4dCBzaG91bGQgZmFpbC4KKyAgICBzaXplX3Qgb2Zmc2V0X3RvX2NvcnJ1cHQgPSByYW5kb20oKSAlIGNpcGhlcnRleHQxLnNpemUoKTsKKyAgICBjaGFyIGNvcnJ1cHRfYnl0ZTsKKyAgICBkbyB7CisgICAgICAgIGNvcnJ1cHRfYnl0ZSA9IHN0YXRpY19jYXN0PGNoYXI+KHJhbmRvbSgpICUgMjU2KTsKKyAgICB9IHdoaWxlIChjb3JydXB0X2J5dGUgPT0gY2lwaGVydGV4dDFbb2Zmc2V0X3RvX2NvcnJ1cHRdKTsKKyAgICBjaXBoZXJ0ZXh0MVtvZmZzZXRfdG9fY29ycnVwdF0gPSBjb3JydXB0X2J5dGU7CisKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpVTktOT1dOX0VSUk9SLCBGaW5pc2goY2lwaGVydGV4dDEsICZyZXN1bHQpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIHJlc3VsdC5zaXplKCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYVBrY3MxVG9vTGFyZ2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBQS0NTIGVuY3J5cHRpb24gZmFpbHMgaW4gdGhlIGNvcnJlY3Qgd2F5IHdoZW4gdGhlIG1zc2FnZSBpcyB0b28gbGFyZ2UuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYVBrY3MxVG9vTGFyZ2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfRU5DUllQVCkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSgxMDI0IC8gOCAtIDEwLCAnYScpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfRU5DUllQVCk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworICAgIHN0cmluZyByZXN1bHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmcmVzdWx0KSk7CisgICAgRVhQRUNUX0VRKDBVLCByZXN1bHQuc2l6ZSgpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5FY2RzYUVuY3J5cHQKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVtcHRpbmcgdG8gdXNlIEVDRFNBIGtleXMgdG8gZW5jcnlwdCBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEVjZHNhRW5jcnlwdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoMjI0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX1BVUlBPU0UsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zMzU0MzYyNSkiOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX1BVUlBPU0UsIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIHBhcmFtcykpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zMzU0MzYyNSkiOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkhtYWNFbmNyeXB0CisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIHVzZSBITUFDIGtleXMgdG8gZW5jcnlwdCBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEhtYWNFbmNyeXB0KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KTsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QVVJQT1NFLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzM1NDM2MjUpIjsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QVVJQT1NFLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBwYXJhbXMpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzM1NDM2MjUpIjsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNFY2JSb3VuZFRyaXBTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgRUNCIG1vZGUgd29ya3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0VjYlJvdW5kVHJpcFN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpFQ0IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworCisgICAgLy8gVHdvLWJsb2NrIG1lc3NhZ2UuCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0MSA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBjaXBoZXJ0ZXh0MS5zaXplKCkpOworCisgICAgc3RyaW5nIGNpcGhlcnRleHQyID0gRW5jcnlwdE1lc3NhZ2Uoc3RyaW5nKG1lc3NhZ2UpLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dDIuc2l6ZSgpKTsKKworICAgIC8vIEVDQiBpcyBkZXRlcm1pbmlzdGljLgorICAgIEVYUEVDVF9FUShjaXBoZXJ0ZXh0MSwgY2lwaGVydGV4dDIpOworCisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQxLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0VjYlJvdW5kVHJpcFN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBlbmNyeXB0aW9uIGZhaWxzIGluIHRoZSBjb3JyZWN0IHdheSB3aGVuIGFuIHVuYXV0aG9yaXplZCBtb2RlIGlzIHNwZWNpZmllZC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzV3JvbmdNb2RlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgLy8gVHdvLWJsb2NrIG1lc3NhZ2UuCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfQkxPQ0tfTU9ERSwKKyAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwKKyAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzRWNiTm9QYWRkaW5nV3JvbmdJbnB1dFNpemUKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBlbmNyeXB0aW9uIGZhaWxzIGluIHRoZSBjb3JyZWN0IHdheSB3aGVuIHByb3ZpZGVkIGFuIGlucHV0IHRoYXQgaXMgbm90IGEKKyAqIG11bHRpcGxlIG9mIHRoZSBibG9jayBzaXplIGFuZCBubyBwYWRkaW5nIGlzIHNwZWNpZmllZC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzRWNiTm9QYWRkaW5nV3JvbmdJbnB1dFNpemUpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpFQ0IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKyAgICAvLyBNZXNzYWdlIGlzIHNsaWdodGx5IHNob3J0ZXIgdGhhbiB0d28gYmxvY2tzLgorICAgIHN0cmluZyBtZXNzYWdlKDE2ICogMiAtIDEsICdhJyk7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zKSk7CisgICAgc3RyaW5nIGNpcGhlcnRleHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmY2lwaGVydGV4dCkpOworICAgIEVYUEVDVF9FUSgwVSwgY2lwaGVydGV4dC5zaXplKCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0VjYlBrY3M3UGFkZGluZworICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIFBLQ1M3IHBhZGRpbmcgd29ya3MgZm9yIGFueSBtZXNzYWdlIGxlbmd0aC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzRWNiUGtjczdQYWRkaW5nKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6RUNCKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KSkpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkJsb2NrTW9kZShCbG9ja01vZGU6OkVDQikuUGFkZGluZyhQYWRkaW5nTW9kZTo6UEtDUzcpOworCisgICAgLy8gVHJ5IHZhcmlvdXMgbWVzc2FnZSBsZW5ndGhzOyBhbGwgc2hvdWxkIHdvcmsuCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAzMjsgKytpKSB7CisgICAgICAgIHN0cmluZyBtZXNzYWdlKGksICdhJyk7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKGkgKyAxNiAtIChpICUgMTYpLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0LCBwYXJhbXMpOworICAgICAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKKyAgICB9Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzRWNiV3JvbmdQYWRkaW5nCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgZW5yeXB0aW9uIGZhaWxzIGluIHRoZSBjb3JyZWN0IHdheSB3aGVuIGFuIHVuYXV0aG9yaXplZCBwYWRkaW5nIG1vZGUgaXMKKyAqIHNwZWNpZmllZC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzRWNiV3JvbmdQYWRkaW5nKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6RUNCKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNyk7CisKKyAgICAvLyBUcnkgdmFyaW91cyBtZXNzYWdlIGxlbmd0aHM7IGFsbCBzaG91bGQgZmFpbAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMzI7ICsraSkgeworICAgICAgICBzdHJpbmcgbWVzc2FnZShpLCAnYScpOworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfUEFERElOR19NT0RFLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKyAgICB9Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzRWNiUGtjczdQYWRkaW5nQ29ycnVwdGVkCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgZGVjcnlwdGlvbiBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiB0aGUgcGFkZGluZyBpcyBjb3JydXB0ZWQuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0VjYlBrY3M3UGFkZGluZ0NvcnJ1cHRlZCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkVDQikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNykpKTsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gImEiOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX05FKGNpcGhlcnRleHQsIG1lc3NhZ2UpOworICAgICsrY2lwaGVydGV4dFtjaXBoZXJ0ZXh0LnNpemUoKSAvIDJdOworCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIHBhcmFtcykpOworICAgIHN0cmluZyBwbGFpbnRleHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmcGxhaW50ZXh0KSk7Cit9CisKK0hpZGxCdWYgQ29weUl2KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCkgeworICAgIGF1dG8gaXYgPSBzZXQuR2V0VGFnVmFsdWUoVEFHX05PTkNFKTsKKyAgICBFWFBFQ1RfVFJVRShpdi5pc09rKCkpOworICAgIHJldHVybiBpdi52YWx1ZSgpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0N0clJvdW5kVHJpcFN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBDVFIgbW9kZSB3b3Jrcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzQ3RyUm91bmRUcmlwU3VjY2VzcykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjMiOworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDEgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBIaWRsQnVmIGl2MSA9IENvcHlJdihvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBpdjEuc2l6ZSgpKTsKKworICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dDEuc2l6ZSgpKTsKKworICAgIG91dF9wYXJhbXMuQ2xlYXIoKTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDIgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBIaWRsQnVmIGl2MiA9IENvcHlJdihvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBpdjIuc2l6ZSgpKTsKKworICAgIC8vIElWcyBzaG91bGQgYmUgcmFuZG9tLCBzbyBjaXBoZXJ0ZXh0cyBzaG91bGQgZGlmZmVyLgorICAgIEVYUEVDVF9ORShjaXBoZXJ0ZXh0MSwgY2lwaGVydGV4dDIpOworCisgICAgYXV0byBwYXJhbXNfaXYxID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9ucyhwYXJhbXMpLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBpdjEpOworICAgIGF1dG8gcGFyYW1zX2l2MiA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbnMocGFyYW1zKS5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgaXYyKTsKKworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MSwgcGFyYW1zX2l2MSk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7CisgICAgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dDIsIHBhcmFtc19pdjIpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworCisgICAgLy8gVXNpbmcgdGhlIHdyb25nIElWIHdpbGwgcmVzdWx0IGluIGEgInZhbGlkIiBkZWNyeXB0aW9uLCBidXQgdGhlIGRhdGEgd2lsbCBiZSBnYXJiYWdlLgorICAgIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQxLCBwYXJhbXNfaXYyKTsKKyAgICBFWFBFQ1RfTkUobWVzc2FnZSwgcGxhaW50ZXh0KTsKKyAgICBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MiwgcGFyYW1zX2l2MSk7CisgICAgRVhQRUNUX05FKG1lc3NhZ2UsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzSW5jcmVtZW50YWwKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyB3b3JrcywgYWxsIG1vZGVzLCB3aGVuIHByb3ZpZGVkIGRhdGEgaW4gdmFyaW91cyBzaXplIGluY3JlbWVudHMuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0luY3JlbWVudGFsKSB7CisgICAgYXV0byBibG9ja19tb2RlcyA9IHsKKyAgICAgICAgQmxvY2tNb2RlOjpFQ0IsIEJsb2NrTW9kZTo6Q0JDLCBCbG9ja01vZGU6OkNUUiwgQmxvY2tNb2RlOjpHQ00sCisgICAgfTsKKworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoYmxvY2tfbW9kZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgZm9yIChpbnQgaW5jcmVtZW50ID0gMTsgaW5jcmVtZW50IDw9IDI0MDsgKytpbmNyZW1lbnQpIHsKKyAgICAgICAgZm9yIChhdXRvIGJsb2NrX21vZGUgOiBibG9ja19tb2RlcykgeworICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2UoMjQwLCAnYScpOworICAgICAgICAgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKGJsb2NrX21vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpIC8qIGZvciBHQ00gKi87CisKKyAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQgb3V0cHV0X3BhcmFtczsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMsICZvdXRwdXRfcGFyYW1zKSk7CisKKyAgICAgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgICAgICAgICAgc2l6ZV90IGlucHV0X2NvbnN1bWVkOworICAgICAgICAgICAgc3RyaW5nIHRvX3NlbmQ7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lc3NhZ2Uuc2l6ZSgpOyBpICs9IGluY3JlbWVudCkgeworICAgICAgICAgICAgICAgIHRvX3NlbmQuYXBwZW5kKG1lc3NhZ2Uuc3Vic3RyKGksIGluY3JlbWVudCkpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBVcGRhdGUodG9fc2VuZCwgJmNpcGhlcnRleHQsICZpbnB1dF9jb25zdW1lZCkpOworICAgICAgICAgICAgICAgIHRvX3NlbmQgPSB0b19zZW5kLnN1YnN0cihpbnB1dF9jb25zdW1lZCk7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGJsb2NrX21vZGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6RUNCOgorICAgICAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpDQkM6CisgICAgICAgICAgICAgICAgICAgIC8vIEltcGxlbWVudGF0aW9ucyBtdXN0IHRha2UgYXMgbWFueSBibG9ja3MgYXMgcG9zc2libGUsIGxlYXZpbmcgbGVzcyB0aGFuCisgICAgICAgICAgICAgICAgICAgIC8vIGEgYmxvY2suCisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9MRSh0b19zZW5kLmxlbmd0aCgpLCAxNlUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6R0NNOgorICAgICAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpDVFI6CisgICAgICAgICAgICAgICAgICAgIC8vIEltcGxlbWVudGF0aW9ucyBtdXN0IGFsd2F5cyB0YWtlIGFsbCB0aGUgZGF0YS4KKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCB0b19zZW5kLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaCh0b19zZW5kLCAmY2lwaGVydGV4dCkpIDw8ICJFcnJvciBzZW5kaW5nICIgPDwgdG9fc2VuZDsKKworICAgICAgICAgICAgc3dpdGNoIChibG9ja19tb2RlKSB7CisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6R0NNOgorICAgICAgICAgICAgICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSArIDE2LCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6Q1RSOgorICAgICAgICAgICAgICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dC5zaXplKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBCbG9ja01vZGU6OkNCQzoKKyAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpFQ0I6CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpICsgbWVzc2FnZS5zaXplKCkgJSAxNiwgY2lwaGVydGV4dC5zaXplKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhdXRvIGl2ID0gb3V0cHV0X3BhcmFtcy5HZXRUYWdWYWx1ZShUQUdfTk9OQ0UpOworICAgICAgICAgICAgc3dpdGNoIChibG9ja19tb2RlKSB7CisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6Q0JDOgorICAgICAgICAgICAgY2FzZSBCbG9ja01vZGU6OkdDTToKKyAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpDVFI6CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoaXYuaXNPaygpKSA8PCAiTm8gSVYgZm9yIGJsb2NrIG1vZGUgIiA8PCBibG9ja19tb2RlOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShibG9ja19tb2RlID09IEJsb2NrTW9kZTo6R0NNID8gMTJVIDogMTZVLCBpdi52YWx1ZSgpLnNpemUoKSk7CisgICAgICAgICAgICAgICAgcGFyYW1zLnB1c2hfYmFjayhUQUdfTk9OQ0UsIGl2LnZhbHVlKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6RUNCOgorICAgICAgICAgICAgICAgIEVYUEVDVF9GQUxTRShpdi5pc09rKCkpIDw8ICJFQ0IgbW9kZSBzaG91bGQgbm90IGdlbmVyYXRlIElWIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIHBhcmFtcykpCisgICAgICAgICAgICAgICAgPDwgIkRlY3J5cHQgYmVnaW4oKSBmYWlsZWQgZm9yIGJsb2NrIG1vZGUgIiA8PCBibG9ja19tb2RlOworCisgICAgICAgICAgICBzdHJpbmcgcGxhaW50ZXh0OworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaXBoZXJ0ZXh0LnNpemUoKTsgaSArPSBpbmNyZW1lbnQpIHsKKyAgICAgICAgICAgICAgICB0b19zZW5kLmFwcGVuZChjaXBoZXJ0ZXh0LnN1YnN0cihpLCBpbmNyZW1lbnQpKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgVXBkYXRlKHRvX3NlbmQsICZwbGFpbnRleHQsICZpbnB1dF9jb25zdW1lZCkpOworICAgICAgICAgICAgICAgIHRvX3NlbmQgPSB0b19zZW5kLnN1YnN0cihpbnB1dF9jb25zdW1lZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBGaW5pc2godG9fc2VuZCwgJnBsYWludGV4dCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgZXJyb3IpCisgICAgICAgICAgICAgICAgPDwgIkRlY3J5cHRpb24gZmFpbGVkIGZvciBibG9jayBtb2RlICIgPDwgYmxvY2tfbW9kZSA8PCAiIGFuZCBpbmNyZW1lbnQgIgorICAgICAgICAgICAgICAgIDw8IGluY3JlbWVudCA8PCAiIChQb3NzaWJseSBiLzMzNTg0NjIyKSI7CisgICAgICAgICAgICBpZiAoZXJyb3IgPT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpIDw8ICJEZWNyeXB0aW9uIGRpZG4ndCBtYXRjaCBmb3IgYmxvY2sgbW9kZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgYmxvY2tfbW9kZSA8PCAiIGFuZCBpbmNyZW1lbnQgIiA8PCBpbmNyZW1lbnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0cnVjdCBBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3IgeworICAgIGNvbnN0IGNoYXIqIGtleTsKKyAgICBjb25zdCBjaGFyKiBub25jZTsKKyAgICBjb25zdCBjaGFyKiBwbGFpbnRleHQ7CisgICAgY29uc3QgY2hhciogY2lwaGVydGV4dDsKK307CisKKy8vIFRoZXNlIHRlc3QgdmVjdG9ycyBhcmUgdGFrZW4gZnJvbQorLy8gaHR0cDovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL25pc3RwdWJzLzgwMC0zOGEvc3A4MDAtMzhhLnBkZiwgc2VjdGlvbiBGLjUuCitzdGF0aWMgY29uc3QgQWVzQ3RyU3A4MDAzOGFUZXN0VmVjdG9yIGtBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3JzW10gPSB7CisgICAgLy8gQUVTLTEyOAorICAgIHsKKyAgICAgICAgIjJiN2UxNTE2MjhhZWQyYTZhYmY3MTU4ODA5Y2Y0ZjNjIiwgImYwZjFmMmYzZjRmNWY2ZjdmOGY5ZmFmYmZjZmRmZWZmIiwKKyAgICAgICAgIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEiCisgICAgICAgICIzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIiwKKyAgICAgICAgIjg3NGQ2MTkxYjYyMGUzMjYxYmVmNjg2NDk5MGRiNmNlOTgwNmY2NmI3OTcwZmRmZjg2MTcxODdiYjlmZmZkZmYiCisgICAgICAgICI1YWU0ZGYzZWRiZDVkMzVlNWI0ZjA5MDIwZGIwM2VhYjFlMDMxZGRhMmZiZTAzZDE3OTIxNzBhMGYzMDA5Y2VlIiwKKyAgICB9LAorICAgIC8vIEFFUy0xOTIKKyAgICB7CisgICAgICAgICI4ZTczYjBmN2RhMGU2NDUyYzgxMGYzMmI4MDkwNzllNTYyZjhlYWQyNTIyYzZiN2IiLCAiZjBmMWYyZjNmNGY1ZjZmN2Y4ZjlmYWZiZmNmZGZlZmYiLAorICAgICAgICAiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MSIKKyAgICAgICAgIjMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiLAorICAgICAgICAiMWFiYzkzMjQxNzUyMWNhMjRmMmIwNDU5ZmU3ZTZlMGIwOTAzMzllYzBhYTZmYWVmZDVjY2MyYzZmNGNlOGU5NCIKKyAgICAgICAgIjFlMzZiMjZiZDFlYmM2NzBkMWJkMWQ2NjU2MjBhYmY3NGY3OGE3ZjZkMjk4MDk1ODVhOTdkYWVjNThjNmIwNTAiLAorICAgIH0sCisgICAgLy8gQUVTLTI1NgorICAgIHsKKyAgICAgICAgIjYwM2RlYjEwMTVjYTcxYmUyYjczYWVmMDg1N2Q3NzgxMWYzNTJjMDczYjYxMDhkNzJkOTgxMGEzMDkxNGRmZjQiLAorICAgICAgICAiZjBmMWYyZjNmNGY1ZjZmN2Y4ZjlmYWZiZmNmZGZlZmYiLAorICAgICAgICAiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MSIKKyAgICAgICAgIjMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiLAorICAgICAgICAiNjAxZWMzMTM3NzU3ODlhNWI3YTdmNTA0YmJmM2QyMjhmNDQzZTNjYTRkNjJiNTlhY2E4NGU5OTBjYWNhZjVjNSIKKyAgICAgICAgIjJiMDkzMGRhYTIzZGU5NGNlODcwMTdiYTJkODQ5ODhkZGZjOWM1OGRiNjdhYWRhNjEzYzJkZDA4NDU3OTQxYTYiLAorICAgIH0sCit9OworCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0N0clNwODAwMzhhVGVzdFZlY3RvcgorICoKKyAqIFZlcmlmaWVzIEFFUyBDVFIgaW1wbGVtZW50YXRpb24gYWdhaW5zdCBTUDgwMC0zOEEgdGVzdCB2ZWN0b3JzLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3IpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDM7IGkrKykgeworICAgICAgICBjb25zdCBBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3ImIHRlc3Qoa0Flc0N0clNwODAwMzhhVGVzdFZlY3RvcnNbaV0pOworICAgICAgICBjb25zdCBzdHJpbmcga2V5ID0gaGV4MnN0cih0ZXN0LmtleSk7CisgICAgICAgIGNvbnN0IHN0cmluZyBub25jZSA9IGhleDJzdHIodGVzdC5ub25jZSk7CisgICAgICAgIGNvbnN0IHN0cmluZyBwbGFpbnRleHQgPSBoZXgyc3RyKHRlc3QucGxhaW50ZXh0KTsKKyAgICAgICAgY29uc3Qgc3RyaW5nIGNpcGhlcnRleHQgPSBoZXgyc3RyKHRlc3QuY2lwaGVydGV4dCk7CisgICAgICAgIENoZWNrQWVzQ3RyVGVzdFZlY3RvcihrZXksIG5vbmNlLCBwbGFpbnRleHQsIGNpcGhlcnRleHQpOworICAgIH0KK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDdHJJbmNvbXBhdGlibGVQYWRkaW5nTW9kZQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIHJlamVjdHMgdXNlIG9mIENUUiBtb2RlIHdpdGggUEtDUzcgcGFkZGluZyBpbiB0aGUgY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0N0ckluY29tcGF0aWJsZVBhZGRpbmdNb2RlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KSkpOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpDVFIpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOQ09NUEFUSUJMRV9QQURESU5HX01PREUsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0N0ckludmFsaWRDYWxsZXJOb25jZQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSB1c2VyIHN1cHBsaWVzIGFuIGluY29ycmVjdC1zaXplIG5vbmNlLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDdHJJbnZhbGlkQ2FsbGVyTm9uY2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpDVFIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQ0FMTEVSX05PTkNFKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgSGlkbEJ1ZihzdHJpbmcoMSwgJ2EnKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTk9OQ0UsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBIaWRsQnVmKHN0cmluZygxNSwgJ2EnKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTk9OQ0UsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBIaWRsQnVmKHN0cmluZygxNywgJ2EnKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTk9OQ0UsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0N0ckludmFsaWRDYWxsZXJOb25jZQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSB1c2VyIHN1cHBsaWVzIGFuIGluY29ycmVjdC1zaXplIG5vbmNlLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDYmNSb3VuZFRyaXBTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgLy8gVHdvLWJsb2NrIG1lc3NhZ2UuCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpDQkMpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDEgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBIaWRsQnVmIGl2MSA9IENvcHlJdihvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQxLnNpemUoKSk7CisKKyAgICBvdXRfcGFyYW1zLkNsZWFyKCk7CisKKyAgICBzdHJpbmcgY2lwaGVydGV4dDIgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBIaWRsQnVmIGl2MiA9IENvcHlJdihvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQyLnNpemUoKSk7CisKKyAgICAvLyBJVnMgc2hvdWxkIGJlIHJhbmRvbSwgc28gY2lwaGVydGV4dHMgc2hvdWxkIGRpZmZlci4KKyAgICBFWFBFQ1RfTkUoY2lwaGVydGV4dDEsIGNpcGhlcnRleHQyKTsKKworICAgIHBhcmFtcy5wdXNoX2JhY2soVEFHX05PTkNFLCBpdjEpOworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDYWxsZXJOb25jZQorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIGNhbGxlci1wcm92aWRlZCBub25jZXMgd29yayBjb3JyZWN0bHkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0NhbGxlck5vbmNlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0NBTExFUl9OT05DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworCisgICAgLy8gRG9uJ3Qgc3BlY2lmeSBub25jZSwgc2hvdWxkIGdldCBhIHJhbmRvbSBvbmUuCisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIgcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpDQkMpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICBzdHJpbmcgY2lwaGVydGV4dCA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcywgJm91dF9wYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dC5zaXplKCkpOworICAgIEVYUEVDVF9FUSgxNlUsIG91dF9wYXJhbXMuR2V0VGFnVmFsdWUoVEFHX05PTkNFKS52YWx1ZSgpLnNpemUoKSk7CisKKyAgICBwYXJhbXMucHVzaF9iYWNrKFRBR19OT05DRSwgb3V0X3BhcmFtcy5HZXRUYWdWYWx1ZShUQUdfTk9OQ0UpLnZhbHVlKCkpOworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0LCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworCisgICAgLy8gTm93IHNwZWNpZnkgYSBub25jZSwgc2hvdWxkIGFsc28gd29yay4KKyAgICBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpDQkMpCisgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9OQ0UsIEhpZGxCdWYoImFiY2RlZmdoaWprbG1ub3AiKSk7CisgICAgb3V0X3BhcmFtcy5DbGVhcigpOworICAgIGNpcGhlcnRleHQgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKworICAgIC8vIERlY3J5cHQgd2l0aCBjb3JyZWN0IG5vbmNlLgorICAgIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7CisKKyAgICAvLyBUcnkgd2l0aCB3cm9uZyBub25jZS4KKyAgICBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpDQkMpCisgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9OQ0UsIEhpZGxCdWYoImFhYWFhYWFhYWFhYWFhYWEiKSk7CisgICAgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dCwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfTkUobWVzc2FnZSwgcGxhaW50ZXh0KTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDYWxsZXJOb25jZVByb2hpYml0ZWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IGNhbGxlci1wcm92aWRlZCBub25jZXMgYXJlIG5vdCBwZXJtaXR0ZWQgd2hlbiBub3Qgc3BlY2lmaWVkIGluIHRoZSBrZXkKKyAqIGF1dGhvcml6YXRpb25zLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDYWxsZXJOb25jZVByb2hpYml0ZWQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpDQkMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKworICAgIC8vIERvbid0IHNwZWNpZnkgbm9uY2UsIHNob3VsZCBnZXQgYSByYW5kb20gb25lLgorICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyIHBhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q0JDKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKyAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgc3RyaW5nIGNpcGhlcnRleHQgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBvdXRfcGFyYW1zLkdldFRhZ1ZhbHVlKFRBR19OT05DRSkudmFsdWUoKS5zaXplKCkpOworCisgICAgcGFyYW1zLnB1c2hfYmFjayhUQUdfTk9OQ0UsIG91dF9wYXJhbXMuR2V0VGFnVmFsdWUoVEFHX05PTkNFKS52YWx1ZSgpKTsKKyAgICBzdHJpbmcgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dCwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKKworICAgIC8vIE5vdyBzcGVjaWZ5IGEgbm9uY2UsIHNob3VsZCBmYWlsCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBIaWRsQnVmKCJhYmNkZWZnaGlqa2xtbm9wIikpOworICAgIG91dF9wYXJhbXMuQ2xlYXIoKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpDQUxMRVJfTk9OQ0VfUFJPSElCSVRFRCwgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zLCAmb3V0X3BhcmFtcykpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbVJvdW5kVHJpcFN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gbW9kZSB3b3Jrcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtUm91bmRUcmlwU3VjY2VzcykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBzdHJpbmcgYWFkID0gImZvb2JhciI7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2IjsKKworICAgIGF1dG8gYmVnaW5fcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyOCk7CisKKyAgICBhdXRvIHVwZGF0ZV9wYXJhbXMgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX0FTU09DSUFURURfREFUQSwgYWFkLmRhdGEoKSwgYWFkLnNpemUoKSk7CisKKyAgICAvLyBFbmNyeXB0CisgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSkKKyAgICAgICAgPDwgIkJlZ2luIGVuY3J5cHQiOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEF1dGhvcml6YXRpb25TZXQgdXBkYXRlX291dF9wYXJhbXM7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEZpbmlzaChvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCBtZXNzYWdlLCAiIiwgJnVwZGF0ZV9vdXRfcGFyYW1zLCAmY2lwaGVydGV4dCkpOworCisgICAgLy8gR3JhYiBub25jZQorICAgIGJlZ2luX3BhcmFtcy5wdXNoX2JhY2soYmVnaW5fb3V0X3BhcmFtcyk7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBiZWdpbl9wYXJhbXMpKSA8PCAiQmVnaW4gZGVjcnlwdCI7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBzaXplX3QgaW5wdXRfY29uc3VtZWQ7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIFVwZGF0ZShvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCBjaXBoZXJ0ZXh0LCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGxhaW50ZXh0LCAmaW5wdXRfY29uc3VtZWQpKTsKKyAgICBFWFBFQ1RfRVEoY2lwaGVydGV4dC5zaXplKCksIGlucHV0X2NvbnN1bWVkKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKCIiLCAmcGxhaW50ZXh0KSk7CisKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNHY21Ub29TaG9ydFRhZworICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIGZhaWxzIGNvcnJlY3RseSB3aGVuIGEgdG9vLXNob3J0IHRhZyBsZW5ndGggaXMgc3BlY2lmaWVkLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21Ub29TaG9ydFRhZykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1NiI7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgOTYpOworCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9NQUNfTEVOR1RILCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNHY21Ub29TaG9ydFRhZ09uRGVjcnlwdAorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIGZhaWxzIGNvcnJlY3RseSB3aGVuIGEgdG9vLXNob3J0IHRhZyBpcyBwcm92aWRlZCB0byBkZWNyeXB0aW9uLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21Ub29TaG9ydFRhZ09uRGVjcnlwdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworICAgIHN0cmluZyBhYWQgPSAiZm9vYmFyIjsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTYiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyOCk7CisKKyAgICBhdXRvIGZpbmlzaF9wYXJhbXMgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX0FTU09DSUFURURfREFUQSwgYWFkLmRhdGEoKSwgYWFkLnNpemUoKSk7CisKKyAgICAvLyBFbmNyeXB0CisgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisgICAgRVhQRUNUX0VRKDFVLCBiZWdpbl9vdXRfcGFyYW1zLnNpemUoKSk7CisgICAgQVNTRVJUX1RSVUUoYmVnaW5fb3V0X3BhcmFtcy5HZXRUYWdWYWx1ZShUQUdfTk9OQ0UpLmlzT2soKSk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9vdXRfcGFyYW1zOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgbWVzc2FnZSwgIiIgLyogc2lnbmF0dXJlICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpbmlzaF9vdXRfcGFyYW1zLCAmY2lwaGVydGV4dCkpOworCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbnMoYmVnaW5fb3V0X3BhcmFtcykKKyAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCA5Nik7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTUFDX0xFTkdUSCwgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtQ29ycnVwdEtleQorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSBkZWNyeXB0aW9uIGtleSBpcyBpbmNvcnJlY3QuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0djbUNvcnJ1cHRLZXkpIHsKKyAgICBjb25zdCB1aW50OF90IG5vbmNlX2J5dGVzW10gPSB7CisgICAgICAgIDB4YjcsIDB4OTQsIDB4MzcsIDB4YWUsIDB4MDgsIDB4ZmYsIDB4MzUsIDB4NWQsIDB4N2QsIDB4OGEsIDB4NGQsIDB4MGYsCisgICAgfTsKKyAgICBzdHJpbmcgbm9uY2UgPSBtYWtlX3N0cmluZyhub25jZV9ieXRlcyk7CisgICAgY29uc3QgdWludDhfdCBjaXBoZXJ0ZXh0X2J5dGVzW10gPSB7CisgICAgICAgIDB4YjMsIDB4ZjYsIDB4NzksIDB4OWUsIDB4OGYsIDB4OTMsIDB4MjYsIDB4ZjIsIDB4ZGYsIDB4MWUsIDB4ODAsIDB4ZmMsIDB4ZDIsIDB4Y2IsIDB4MTYsCisgICAgICAgIDB4ZDcsIDB4OGMsIDB4OWQsIDB4YzcsIDB4Y2MsIDB4MTQsIDB4YmIsIDB4NjcsIDB4NzgsIDB4NjIsIDB4ZGMsIDB4NmMsIDB4NjMsIDB4OWIsIDB4M2EsCisgICAgICAgIDB4NjMsIDB4MzgsIDB4ZDIsIDB4NGIsIDB4MzEsIDB4MmQsIDB4MzksIDB4ODksIDB4ZTUsIDB4OTIsIDB4MGIsIDB4NWQsIDB4YmYsIDB4YzksIDB4NzYsCisgICAgICAgIDB4NzYsIDB4NWUsIDB4ZmIsIDB4ZmUsIDB4NTcsIDB4YmIsIDB4MzgsIDB4NTksIDB4NDAsIDB4YTcsIDB4YTQsIDB4M2IsIDB4ZGYsIDB4MDUsIDB4YmQsCisgICAgICAgIDB4ZGEsIDB4ZTMsIDB4YzksIDB4ZDYsIDB4YTIsIDB4ZmIsIDB4YmQsIDB4ZmMsIDB4YzAsIDB4Y2IsIDB4YTAsCisgICAgfTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dCA9IG1ha2Vfc3RyaW5nKGNpcGhlcnRleHRfYnl0ZXMpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KQorICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgbm9uY2UuZGF0YSgpLCBub25jZS5zaXplKCkpOworCisgICAgYXV0byBpbXBvcnRfcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0NBTExFUl9OT05DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpOworCisgICAgLy8gSW1wb3J0IGNvcnJlY3Qga2V5IGFuZCBkZWNyeXB0CisgICAgY29uc3QgdWludDhfdCBrZXlfYnl0ZXNbXSA9IHsKKyAgICAgICAgMHhiYSwgMHg3NiwgMHgzNSwgMHg0ZiwgMHgwYSwgMHhlZCwgMHg2ZSwgMHg4ZCwKKyAgICAgICAgMHg5MSwgMHhmNCwgMHg1YywgMHg0ZiwgMHhmNSwgMHhhMCwgMHg2MiwgMHhkYiwKKyAgICB9OworICAgIHN0cmluZyBrZXkgPSBtYWtlX3N0cmluZyhrZXlfYnl0ZXMpOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBJbXBvcnRLZXkoaW1wb3J0X3BhcmFtcywgS2V5Rm9ybWF0OjpSQVcsIGtleSkpOworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0LCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBEZWxldGVLZXkoKSk7CisKKyAgICAvLyBDb3JydXB0IGtleSBhbmQgYXR0ZW1wdCB0byBkZWNyeXB0CisgICAga2V5WzBdID0gMDsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgSW1wb3J0S2V5KGltcG9ydF9wYXJhbXMsIEtleUZvcm1hdDo6UkFXLCBrZXkpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VkVSSUZJQ0FUSU9OX0ZBSUxFRCwgRmluaXNoKGNpcGhlcnRleHQsICZwbGFpbnRleHQpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRGVsZXRlS2V5KCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbUFhZE5vRGF0YQorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIHdvcmtzIHdoZW4gcHJvdmlkZWQgYWRkaXRpb25hbCBhdXRoZW50aWNhdGVkIGRhdGEsIGJ1dCBubyBkYXRhIHRvCisgKiBlbmNyeXB0LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21BYWROb0RhdGEpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKworICAgIHN0cmluZyBhYWQgPSAiMTIzNDU2Nzg5MDEyMzQ1NiI7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KTsKKworICAgIGF1dG8gZmluaXNoX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCBhYWQuZGF0YSgpLCBhYWQuc2l6ZSgpKTsKKworICAgIC8vIEVuY3J5cHQKKyAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcywgJmJlZ2luX291dF9wYXJhbXMpKTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgIiIgLyogaW5wdXQgKi8sICIiIC8qIHNpZ25hdHVyZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJmNpcGhlcnRleHQpKTsKKyAgICBFWFBFQ1RfVFJVRShmaW5pc2hfb3V0X3BhcmFtcy5lbXB0eSgpKTsKKworICAgIC8vIEdyYWIgbm9uY2UKKyAgICBwYXJhbXMucHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworCisgICAgLy8gRGVjcnlwdC4KKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKG9wX2hhbmRsZV8sIGZpbmlzaF9wYXJhbXMsIGNpcGhlcnRleHQsICIiIC8qIHNpZ25hdHVyZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJnBsYWludGV4dCkpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zMzYxNTAzMikiOworCisgICAgRVhQRUNUX1RSVUUoZmluaXNoX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICBFWFBFQ1RfRVEoIiIsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtTXVsdGlQYXJ0QWFkCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgR0NNIG1vZGUgd29ya3Mgd2hlbiBwcm92aWRlZCBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0ZWQgZGF0YSBpbiBtdWx0aXBsZSBjaHVua3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0djbU11bHRpUGFydEFhZCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2IjsKKyAgICBhdXRvIGJlZ2luX3BhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKworICAgIGF1dG8gdXBkYXRlX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCAiZm9vIiwgKHNpemVfdCkzKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisKKyAgICAvLyBObyBkYXRhLCBBQUQgb25seS4KKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBzaXplX3QgaW5wdXRfY29uc3VtZWQ7CisgICAgQXV0aG9yaXphdGlvblNldCB1cGRhdGVfb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgVXBkYXRlKG9wX2hhbmRsZV8sIHVwZGF0ZV9wYXJhbXMsICIiIC8qIGlucHV0ICovLCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVydGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKDBVLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKDBVLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICAvLyBBQUQgYW5kIGRhdGEuCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIFVwZGF0ZShvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCBtZXNzYWdlLCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVydGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKCIiIC8qIGlucHV0ICovLCAmY2lwaGVydGV4dCkpOworCisgICAgLy8gR3JhYiBub25jZS4KKyAgICBiZWdpbl9wYXJhbXMucHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworCisgICAgLy8gRGVjcnlwdAorICAgIHVwZGF0ZV9wYXJhbXMgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX0FTU09DSUFURURfREFUQSwgImZvb2ZvbyIsIChzaXplX3QpNik7CisKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgYmVnaW5fcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKG9wX2hhbmRsZV8sIHVwZGF0ZV9wYXJhbXMsIGNpcGhlcnRleHQsICIiIC8qIHNpZ25hdHVyZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1cGRhdGVfb3V0X3BhcmFtcywgJnBsYWludGV4dCkpOworICAgIEVYUEVDVF9UUlVFKHVwZGF0ZV9vdXRfcGFyYW1zLmVtcHR5KCkpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbUFhZE91dE9mT3JkZXIKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gbW9kZSBmYWlscyBjb3JyZWN0bHkgd2hlbiBnaXZlbiBBQUQgYWZ0ZXIgZGF0YSB0byBlbmNpcGhlci4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtQWFkT3V0T2ZPcmRlcikgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2IjsKKyAgICBhdXRvIGJlZ2luX3BhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKworICAgIGF1dG8gdXBkYXRlX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCAiZm9vIiwgKHNpemVfdCkzKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisKKyAgICAvLyBObyBkYXRhLCBBQUQgb25seS4KKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBzaXplX3QgaW5wdXRfY29uc3VtZWQ7CisgICAgQXV0aG9yaXphdGlvblNldCB1cGRhdGVfb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgVXBkYXRlKG9wX2hhbmRsZV8sIHVwZGF0ZV9wYXJhbXMsICIiIC8qIGlucHV0ICovLCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVydGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKDBVLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKDBVLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICAvLyBBQUQgYW5kIGRhdGEuCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIFVwZGF0ZShvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCBtZXNzYWdlLCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVydGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICAvLyBNb3JlIEFBRAorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfVEFHLCBVcGRhdGUob3BfaGFuZGxlXywgdXBkYXRlX3BhcmFtcywgIiIsICZ1cGRhdGVfb3V0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjaXBoZXJ0ZXh0LCAmaW5wdXRfY29uc3VtZWQpKTsKKworICAgIG9wX2hhbmRsZV8gPSBrT3BIYW5kbGVTZW50aW5lbDsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNHY21CYWRBYWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gZGVjcnlwdGlvbiBmYWlscyBjb3JyZWN0bHkgd2hlbiBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0ZWQgZGF0ZSBpcyB3cm9uZy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtQmFkQWFkKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMiI7CisgICAgYXV0byBiZWdpbl9wYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KTsKKworICAgIGF1dG8gZmluaXNoX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCAiZm9vYmFyIiwgKHNpemVfdCk2KTsKKworICAgIC8vIEVuY3J5cHQKKyAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIGJlZ2luX3BhcmFtcywgJmJlZ2luX291dF9wYXJhbXMpKTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgbWVzc2FnZSwgIiIgLyogc2lnbmF0dXJlICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpbmlzaF9vdXRfcGFyYW1zLCAmY2lwaGVydGV4dCkpOworCisgICAgLy8gR3JhYiBub25jZQorICAgIGJlZ2luX3BhcmFtcy5wdXNoX2JhY2soYmVnaW5fb3V0X3BhcmFtcyk7CisKKyAgICBmaW5pc2hfcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFyZm9vIiAvKiBXcm9uZyBBQUQgKi8sIChzaXplX3QpNik7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELAorICAgICAgICAgICAgICBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgY2lwaGVydGV4dCwgIiIgLyogc2lnbmF0dXJlICovLCAmZmluaXNoX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAmcGxhaW50ZXh0KSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtV3JvbmdOb25jZQorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBkZWNyeXB0aW9uIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSBub25jZSBpcyBpbmNvcnJlY3QuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0djbVdyb25nTm9uY2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICBhdXRvIGJlZ2luX3BhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworCisgICAgYXV0byBmaW5pc2hfcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsICJmb29iYXIiLCAoc2l6ZV90KTYpOworCisgICAgLy8gRW5jcnlwdAorICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgYmVnaW5fcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcykpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBtZXNzYWdlLCAiIiAvKiBzaWduYXR1cmUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmluaXNoX291dF9wYXJhbXMsICZjaXBoZXJ0ZXh0KSk7CisKKyAgICAvLyBXcm9uZyBub25jZQorICAgIGJlZ2luX3BhcmFtcy5wdXNoX2JhY2soVEFHX05PTkNFLCBIaWRsQnVmKCIxMjM0NTY3ODkwMTIiKSk7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELAorICAgICAgICAgICAgICBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgY2lwaGVydGV4dCwgIiIgLyogc2lnbmF0dXJlICovLCAmZmluaXNoX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAmcGxhaW50ZXh0KSk7CisKKyAgICAvLyBXaXRoIHdyb25nIG5vbmNlLCBzaG91bGQgaGF2ZSBnb3R0ZW4gZ2FyYmFnZSBwbGFpbnRleHQgKG9yIG5vbmUpLgorICAgIEVYUEVDVF9ORShtZXNzYWdlLCBwbGFpbnRleHQpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbUNvcnJ1cHRUYWcKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gZGVjcnlwdGlvbiBmYWlscyBjb3JyZWN0bHkgd2hlbiB0aGUgdGFnIGlzIHdyb25nLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21Db3JydXB0VGFnKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBzdHJpbmcgYWFkID0gIjEyMzQ1Njc4OTAxMjM0NTYiOworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1NiI7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworCisgICAgYXV0byBmaW5pc2hfcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsIGFhZC5kYXRhKCksIGFhZC5zaXplKCkpOworCisgICAgLy8gRW5jcnlwdAorICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcykpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBtZXNzYWdlLCAiIiAvKiBzaWduYXR1cmUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmluaXNoX291dF9wYXJhbXMsICZjaXBoZXJ0ZXh0KSk7CisgICAgRVhQRUNUX1RSVUUoZmluaXNoX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICAvLyBDb3JydXB0IHRhZworICAgICsrKCpjaXBoZXJ0ZXh0LnJiZWdpbigpKTsKKworICAgIC8vIEdyYWIgbm9uY2UKKyAgICBwYXJhbXMucHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworCisgICAgLy8gRGVjcnlwdC4KKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELAorICAgICAgICAgICAgICBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgY2lwaGVydGV4dCwgIiIgLyogc2lnbmF0dXJlICovLCAmZmluaXNoX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAmcGxhaW50ZXh0KSk7CisgICAgRVhQRUNUX1RSVUUoZmluaXNoX291dF9wYXJhbXMuZW1wdHkoKSk7Cit9CisKK3R5cGVkZWYgS2V5bWFzdGVySGlkbFRlc3QgTWF4T3BlcmF0aW9uc1Rlc3Q7CisKKy8qCisgKiBNYXhPcGVyYXRpb25zVGVzdC5UZXN0TGltaXRBZXMKKyAqCisgKiBWZXJpZmllcyB0aGF0IHRoZSBtYXggdXNlcyBwZXIgYm9vdCB0YWcgd29ya3MgY29ycmVjdGx5IHdpdGggQUVTIGtleXMuCisgKi8KK1RFU1RfRihNYXhPcGVyYXRpb25zVGVzdCwgVGVzdExpbWl0QWVzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjYk1vZGUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFYX1VTRVNfUEVSX0JPT1QsIDMpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2IjsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5FY2JNb2RlKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisKKyAgICBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKworICAgIC8vIEZvdXJ0aCB0aW1lIHNob3VsZCBmYWlsLgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OktFWV9NQVhfT1BTX0VYQ0VFREVELCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKK30KKworLyoKKyAqIE1heE9wZXJhdGlvbnNUZXN0LlRlc3RMaW1pdEFlcworICoKKyAqIFZlcmlmaWVzIHRoYXQgdGhlIG1heCB1c2VzIHBlciBib290IHRhZyB3b3JrcyBjb3JyZWN0bHkgd2l0aCBSU0Ega2V5cy4KKyAqLworVEVTVF9GKE1heE9wZXJhdGlvbnNUZXN0LCBUZXN0TGltaXRSc2EpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLk5vRGlnZXN0T3JQYWRkaW5nKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQVhfVVNFU19QRVJfQk9PVCwgMykpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTYiOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLk5vRGlnZXN0T3JQYWRkaW5nKCk7CisKKyAgICBTaWduTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgU2lnbk1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKworICAgIC8vIEZvdXJ0aCB0aW1lIHNob3VsZCBmYWlsLgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OktFWV9NQVhfT1BTX0VYQ0VFREVELCBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBwYXJhbXMpKTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBBZGRFbnRyb3B5VGVzdDsKKworLyoKKyAqIEFkZEVudHJvcHlUZXN0LkFkZEVudHJvcHkKKyAqCisgKiBWZXJpZmllcyB0aGF0IHRoZSBhZGRSbmdFbnRyb3B5IG1ldGhvZCBkb2Vzbid0IGJsb3cgdXAuICBUaGVyZSdzIG5vIHdheSB0byB0ZXN0IHRoYXQgZW50cm9weSBpcworICogYWN0dWFsbHkgYWRkZWQuCisgKi8KK1RFU1RfRihBZGRFbnRyb3B5VGVzdCwgQWRkRW50cm9weSkgeworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBrZXltYXN0ZXIoKS5hZGRSbmdFbnRyb3B5KEhpZGxCdWYoImZvbyIpKSk7Cit9CisKKy8qCisgKiBBZGRFbnRyb3B5VGVzdC5BZGRFbXB0eUVudHJvcHkKKyAqCisgKiBWZXJpZmllcyB0aGF0IHRoZSBhZGRSbmdFbnRyb3B5IG1ldGhvZCBkb2Vzbid0IGJsb3cgdXAgd2hlbiBnaXZlbiBhbiBlbXB0eSBidWZmZXIuCisgKi8KK1RFU1RfRihBZGRFbnRyb3B5VGVzdCwgQWRkRW1wdHlFbnRyb3B5KSB7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIGtleW1hc3RlcigpLmFkZFJuZ0VudHJvcHkoSGlkbEJ1ZigpKSk7Cit9CisKKy8qCisgKiBBZGRFbnRyb3B5VGVzdC5BZGRMYXJnZUVudHJvcHkKKyAqCisgKiBWZXJpZmllcyB0aGF0IHRoZSBhZGRSbmdFbnRyb3B5IG1ldGhvZCBkb2Vzbid0IGJsb3cgdXAgd2hlbiBnaXZlbiBhIGxhcmdpc2ggYW1vdW50IG9mIGRhdGEuCisgKi8KK1RFU1RfRihBZGRFbnRyb3B5VGVzdCwgQWRkTGFyZ2VFbnRyb3B5KSB7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIGtleW1hc3RlcigpLmFkZFJuZ0VudHJvcHkoSGlkbEJ1ZihzdHJpbmcoMTYgKiAxMDI0LCAnYScpKSkpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEF0dGVzdGF0aW9uVGVzdDsKKworLyoKKyAqIEF0dGVzdGF0aW9uVGVzdC5Sc2FBdHRlc3RhdGlvbgorICoKKyAqIFZlcmlmaWVzIHRoYXQgYXR0ZXN0aW5nIHRvIFJTQSBrZXlzIHdvcmtzIGFuZCBnZW5lcmF0ZXMgdGhlIGV4cGVjdGVkIG91dHB1dC4KKyAqLworVEVTVF9GKEF0dGVzdGF0aW9uVGVzdCwgUnNhQXR0ZXN0YXRpb24pIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19JTkNMVURFX1VOSVFVRV9JRCkpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpPSywKKyAgICAgICAgQXR0ZXN0S2V5KAorICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0UsIEhpZGxCdWYoImNoYWxsZW5nZSIpKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwgSGlkbEJ1ZigiZm9vIikpLAorICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKKyAgICBFWFBFQ1RfR0UoY2VydF9jaGFpbi5zaXplKCksIDJVKTsKKyAgICBFWFBFQ1RfVFJVRSh2ZXJpZnlfY2hhaW4oY2VydF9jaGFpbikpOworICAgIEVYUEVDVF9UUlVFKAorICAgICAgICB2ZXJpZnlfYXR0ZXN0YXRpb25fcmVjb3JkKCJjaGFsbGVuZ2UiLCAiZm9vIiwgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRfY2hhaW5bMF0pKTsKK30KKworLyoKKyAqIEF0dGVzdGF0aW9uVGVzdC5Sc2FBdHRlc3RhdGlvblJlcXVpcmVzQXBwSWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVzdGluZyB0byBSU0EgcmVxdWlyZXMgYXBwIElELgorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBSc2FBdHRlc3RhdGlvblJlcXVpcmVzQXBwSWQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19JTkNMVURFX1VOSVFVRV9JRCkpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OkFUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lEX01JU1NJTkcsCisgICAgICAgICAgICAgIEF0dGVzdEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRSwgSGlkbEJ1ZigiY2hhbGxlbmdlIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKK30KKworLyoKKyAqIEF0dGVzdGF0aW9uVGVzdC5FY0F0dGVzdGF0aW9uCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlc3RpbmcgdG8gRUMga2V5cyB3b3JrcyBhbmQgZ2VuZXJhdGVzIHRoZSBleHBlY3RlZCBvdXRwdXQuCisgKi8KK1RFU1RfRihBdHRlc3RhdGlvblRlc3QsIEVjQXR0ZXN0YXRpb24pIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KEVjQ3VydmU6OlBfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19JTkNMVURFX1VOSVFVRV9JRCkpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpPSywKKyAgICAgICAgQXR0ZXN0S2V5KAorICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0UsIEhpZGxCdWYoImNoYWxsZW5nZSIpKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwgSGlkbEJ1ZigiZm9vIikpLAorICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKKyAgICBFWFBFQ1RfR0UoY2VydF9jaGFpbi5zaXplKCksIDJVKTsKKyAgICBFWFBFQ1RfVFJVRSh2ZXJpZnlfY2hhaW4oY2VydF9jaGFpbikpOworCisgICAgRVhQRUNUX1RSVUUoCisgICAgICAgIHZlcmlmeV9hdHRlc3RhdGlvbl9yZWNvcmQoImNoYWxsZW5nZSIsICJmb28iLCAgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQsICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydF9jaGFpblswXSkpOworfQorCisvKgorICogQXR0ZXN0YXRpb25UZXN0LkVjQXR0ZXN0YXRpb25SZXF1aXJlc0F0dGVzdGF0aW9uQXBwSWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVzdGluZyB0byBFQyBrZXlzIHJlcXVpcmVzIGFwcCBJRAorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBFY0F0dGVzdGF0aW9uUmVxdWlyZXNBdHRlc3RhdGlvbkFwcElkKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShFY0N1cnZlOjpQXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfSU5DTFVERV9VTklRVUVfSUQpKSk7CisKKyAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4gY2VydF9jaGFpbjsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRF9NSVNTSU5HLAorICAgICAgICAgICAgICBBdHRlc3RLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0UsIEhpZGxCdWYoImNoYWxsZW5nZSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICZjZXJ0X2NoYWluKSk7Cit9CisKKy8qCisgKiBBdHRlc3RhdGlvblRlc3QuQWVzQXR0ZXN0YXRpb24KKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVzdGluZyB0byBBRVMga2V5cyBmYWlscyBpbiB0aGUgZXhwZWN0ZWQgd2F5LgorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBBZXNBdHRlc3RhdGlvbikgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2JNb2RlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNykpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfQUxHT1JJVEhNLAorICAgICAgICBBdHRlc3RLZXkoCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRSwgSGlkbEJ1ZigiY2hhbGxlbmdlIikpCisgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lELCBIaWRsQnVmKCJmb28iKSksCisgICAgICAgICAgICAmY2VydF9jaGFpbikpOworfQorCisvKgorICogQXR0ZXN0YXRpb25UZXN0LkhtYWNBdHRlc3RhdGlvbgorICoKKyAqIFZlcmlmaWVzIHRoYXQgYXR0ZXN0aW5nIHRvIEhNQUMga2V5cyBmYWlscyBpbiB0aGUgZXhwZWN0ZWQgd2F5LgorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBIbWFjQXR0ZXN0YXRpb24pIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNiTW9kZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4gY2VydF9jaGFpbjsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX0FMR09SSVRITSwKKyAgICAgICAgQXR0ZXN0S2V5KAorICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0UsIEhpZGxCdWYoImNoYWxsZW5nZSIpKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwgSGlkbEJ1ZigiZm9vIikpLAorICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBLZXlEZWxldGlvblRlc3Q7CisKKy8qKgorICogS2V5RGVsZXRpb25UZXN0LkRlbGV0ZUtleQorICoKKyAqIFRoaXMgdGVzdCBjaGVja3MgdGhhdCBpZiByb2xsYmFjayBwcm90ZWN0aW9uIGlzIGltcGxlbWVudGVkLCBEZWxldGVLZXkgaW52YWxpZGF0ZXMgYSBmb3JtZXJseQorICogdmFsaWQga2V5IGJsb2IuCisgKi8KK1RFU1RfRihLZXlEZWxldGlvblRlc3QsIERlbGV0ZUtleSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKSkpOworCisgICAgLy8gRGVsZXRlIG11c3Qgd29yayBpZiByb2xsYmFjayBwcm90ZWN0aW9uIGlzIGltcGxlbWVudGVkCisgICAgQXV0aG9yaXphdGlvblNldCB0ZWVFbmZvcmNlZChrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCk7CisgICAgYm9vbCByb2xsYmFja19wcm90ZWN0ZWQgPSB0ZWVFbmZvcmNlZC5Db250YWlucyhUQUdfUk9MTEJBQ0tfUkVTSVNUQU5UKTsKKworICAgIGlmIChyb2xsYmFja19wcm90ZWN0ZWQpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSh0cnVlIC8qIGtlZXAga2V5IGJsb2IgKi8pKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGRlbGV0ZV9yZXN1bHQgPSBEZWxldGVLZXkodHJ1ZSAvKiBrZWVwIGtleSBibG9iICovKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoZGVsZXRlX3Jlc3VsdCA9PSBFcnJvckNvZGU6Ok9LIHwgZGVsZXRlX3Jlc3VsdCA9PSBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQpOworICAgIH0KKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisKKyAgICBpZiAocm9sbGJhY2tfcHJvdGVjdGVkKSB7CisgICAgICAgIEVYUEVDVF9FUSgKKyAgICAgICAgICAgIEVycm9yQ29kZTo6SU5WQUxJRF9LRVlfQkxPQiwKKyAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIGtleV9ibG9iXywgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSksCisgICAgICAgICAgICAgICAgICAmYmVnaW5fb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKyAgICB9IGVsc2UgeworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwga2V5X2Jsb2JfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZiZWdpbl9vdXRfcGFyYW1zLCAmb3BfaGFuZGxlXykpOworICAgIH0KKyAgICBBYm9ydElmTmVlZGVkKCk7CisgICAga2V5X2Jsb2JfID0gSGlkbEJ1ZigpOworfQorCisvKioKKyAqIEtleURlbGV0aW9uVGVzdC5EZWxldGVJbnZhbGlkS2V5CisgKgorICogVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSBIQUwgZXhjZXB0cyBpbnZhbGlkIGtleSBibG9icy4KKyAqLworVEVTVF9GKEtleURlbGV0aW9uVGVzdCwgRGVsZXRlSW52YWxpZEtleSkgeworICAgIC8vIEdlbmVyYXRlIGtleSBqdXN0IHRvIGNoZWNrIGlmIHJvbGxiYWNrIHByb3RlY3Rpb24gaXMgaW1wbGVtZW50ZWQKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkpKTsKKworICAgIC8vIERlbGV0ZSBtdXN0IHdvcmsgaWYgcm9sbGJhY2sgcHJvdGVjdGlvbiBpcyBpbXBsZW1lbnRlZAorICAgIEF1dGhvcml6YXRpb25TZXQgdGVlRW5mb3JjZWQoa2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQpOworICAgIGJvb2wgcm9sbGJhY2tfcHJvdGVjdGVkID0gdGVlRW5mb3JjZWQuQ29udGFpbnMoVEFHX1JPTExCQUNLX1JFU0lTVEFOVCk7CisKKyAgICAvLyBEZWxldGUgdGhlIGtleSB3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSByZXN1bHQgYXQgdGhpcyBwb2ludC4KKyAgICBEZWxldGVLZXkoKTsKKworICAgIC8vIE5vdyBjcmVhdGUgYW4gaW52YWxpZCBrZXkgYmxvYiBhbmQgZGVsZXRlIGl0LgorICAgIGtleV9ibG9iXyA9IEhpZGxCdWYoImp1c3Qgc29tZSBnYXJiYWdlIGRhdGEgd2hpY2ggaXMgbm90IGEgdmFsaWQga2V5IGJsb2IiKTsKKworICAgIGlmIChyb2xsYmFja19wcm90ZWN0ZWQpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGRlbGV0ZV9yZXN1bHQgPSBEZWxldGVLZXkoKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoZGVsZXRlX3Jlc3VsdCA9PSBFcnJvckNvZGU6Ok9LIHwgZGVsZXRlX3Jlc3VsdCA9PSBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQpOworICAgIH0KK30KKworLyoqCisgKiBLZXlEZWxldGlvblRlc3QuRGVsZXRlQWxsS2V5cworICoKKyAqIFRoaXMgdGVzdCBpcyBkaXNhcm1lZCBieSBkZWZhdWx0LiBUbyBhcm0gaXQgdXNlIC0tYXJtX2RlbGV0ZUFsbEtleXMuCisgKgorICogQkVXQVJFOiBUaGlzIHRlc3QgaGFzIHNlcmlvdXMgc2lkZSBlZmZlY3RzLiBBbGwgdXNlciBrZXlzIHdpbGwgYmUgbG9zdCEgVGhpcyBpbmNsdWRlcworICogRkJFL0ZERSBlbmNyeXB0aW9uIGtleXMsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGRldmljZSB3aWxsIG5vdCBldmVuIGJvb3QgdW50aWwgYWZ0ZXIgdGhlCisgKiBkZXZpY2UgaGFzIGJlZW4gd2lwZWQgbWFudWFsbHkgKGUuZy4sIGZhc3Rib290IGZsYXNoYWxsIC13KSwgYW5kIG5ldyBGQkUvRkRFIGtleXMgaGF2ZQorICogYmVlbiBwcm92aXNpb25lZC4gVXNlIHRoaXMgdGVzdCBvbmx5IG9uIGRlZGljYXRlZCB0ZXN0aW5nIGRldmljZXMgdGhhdCBoYXZlIG5vIHZhbHVhYmxlCisgKiBjcmVkZW50aWFscyBzdG9yZWQgaW4gS2V5c3RvcmUvS2V5bWFzdGVyLgorICovCitURVNUX0YoS2V5RGVsZXRpb25UZXN0LCBEZWxldGVBbGxLZXlzKSB7CisgICAgaWYgKCFhcm1fZGVsZXRlQWxsS2V5cykgcmV0dXJuOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKSkpOworCisgICAgLy8gRGVsZXRlIG11c3Qgd29yayBpZiByb2xsYmFjayBwcm90ZWN0aW9uIGlzIGltcGxlbWVudGVkCisgICAgQXV0aG9yaXphdGlvblNldCB0ZWVFbmZvcmNlZChrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCk7CisgICAgYm9vbCByb2xsYmFja19wcm90ZWN0ZWQgPSB0ZWVFbmZvcmNlZC5Db250YWlucyhUQUdfUk9MTEJBQ0tfUkVTSVNUQU5UKTsKKworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBEZWxldGVBbGxLZXlzKCkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKworICAgIGlmIChyb2xsYmFja19wcm90ZWN0ZWQpIHsKKyAgICAgICAgRVhQRUNUX0VRKAorICAgICAgICAgICAgRXJyb3JDb2RlOjpJTlZBTElEX0tFWV9CTE9CLAorICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwga2V5X2Jsb2JfLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSwKKyAgICAgICAgICAgICAgICAgICZiZWdpbl9vdXRfcGFyYW1zLCAmb3BfaGFuZGxlXykpOworICAgIH0gZWxzZSB7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBrZXlfYmxvYl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJlZ2luX291dF9wYXJhbXMsICZvcF9oYW5kbGVfKSk7CisgICAgfQorICAgIEFib3J0SWZOZWVkZWQoKTsKKyAgICBrZXlfYmxvYl8gPSBIaWRsQnVmKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB0ZXN0Cit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gcG9zaXRpb25hbF9hcmdzOworICAgIGZvciAoaW50IGkgPSAxOyBpIDwgYXJnYzsgKytpKSB7CisgICAgICAgIGlmIChhcmd2W2ldWzBdID09ICctJykgeworICAgICAgICAgICAgaWYgKHN0ZDo6c3RyaW5nKGFyZ3ZbaV0pID09ICItLWFybV9kZWxldGVBbGxLZXlzIikgeworICAgICAgICAgICAgICAgIGFybV9kZWxldGVBbGxLZXlzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBvc2l0aW9uYWxfYXJncy5wdXNoX2JhY2soYXJndltpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHBvc2l0aW9uYWxfYXJncy5zaXplKCkpIHsKKyAgICAgICAgQUxPR0koIlJ1bm5pbmcga2V5bWFzdGVyIFZUUyBhZ2FpbnN0IHNlcnZpY2UgXCIlc1wiIiwgcG9zaXRpb25hbF9hcmdzWzBdLmNfc3RyKCkpOworICAgICAgICBzZXJ2aWNlX25hbWUgPSBwb3NpdGlvbmFsX2FyZ3NbMF07CisgICAgfQorICAgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleW1hc3Rlcl90YWdzLmggYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleW1hc3Rlcl90YWdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI0MWVmMQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5bWFzdGVyX3RhZ3MuaApAQCAtMCwwICsxLDQ1MCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE0IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBTWVNURU1fU0VDVVJJVFlfS0VZU1RPUkVfS0VZTUFTVEVSX1RBR1NfSF8KKyNkZWZpbmUgU1lTVEVNX1NFQ1VSSVRZX0tFWVNUT1JFX0tFWU1BU1RFUl9UQUdTX0hfCisKKy8qKgorICogVGhpcyBoZWFkZXIgY29udGFpbnMgdmFyaW91cyBkZWZpbml0aW9ucyB0aGF0IG1ha2Ugd29ya2luZyB3aXRoIGtleW1hc3RlciB0YWdzIHNhZmVyIGFuZCBlYXNpZXIuCisgKgorICogSXQgbWFrZXMgdXNlIG9mIGEgZmFpciBhbW91bnQgb2YgdGVtcGxhdGUgbWV0YXByb2dyYW1taW5nLiBUaGUgbWV0YXByb2dyYW1taW5nIHNlcnZlcyB0aGUgcHVycG9zZQorICogb2YgbWFraW5nIGl0IGltcG9zc2libGUgdG8gbWFrZSBjZXJ0YWluIGNsYXNzZXMgb2YgbWlzdGFrZXMgd2hlbiBvcGVyYXRpbmcgb24ga2V5bWFzdGVyCisgKiBhdXRob3JpemF0aW9ucy4gIEZvciBleGFtcGxlLCBpdCdzIGFuIGVycm9yIHRvIGNyZWF0ZSBhIEtleVBhcmFtZXRlciB3aXRoIHRhZyA9PSBUYWc6OlBVUlBPU0UKKyAqIGFuZCB0aGVuIHRvIGFzc2lnbiBBbGdvcml0aG06OlJTQSB0byBhbGdvcml0aG0gZWxlbWVudCBvZiBpdHMgdW5pb24uIEJ1dCBiZWNhdXNlIHRoZSB1c2VyCisgKiBtdXN0IGNob29zZSB0aGUgdW5pb24gZmllbGQsIHRoZXJlIGNvdWxkIGJlIGEgbWlzbWF0Y2ggd2hpY2ggdGhlIGNvbXBpbGVyIGhhcyBub3cgd2F5IHRvCisgKiBkaWFnbm9zZS4KKyAqCisgKiBUaGUgbWFjaGluZXJ5IGluIHRoaXMgaGVhZGVyIHNvbHZlcyB0aGVzZSBwcm9ibGVtcyBieSBkZXNjcmliaW5nIHdoaWNoIHVuaW9uIGZpZWxkIGNvcnJlc3BvbmRzCisgKiB0byB3aGljaCBUYWcuIENlbnRyYWwgdG8gdGhpcyBtZWNoYW5pc20gaXMgdGhlIHRlbXBsYXRlIFR5cGVkVGFnLiBJdCBoYXMgemVybyBzaXplIGFuZCBiaW5kcyBhCisgKiBudW1lcmljIFRhZyB0byBhIHR5cGUgdGhhdCB0aGUgY29tcGlsZXIgdW5kZXJzdGFuZHMuIEJ5IG1lYW5zIG9mIHRoZSBtYWNybyBERUNMQVJFX1RZUEVEX1RBRywKKyAqIHdlIGRlY2xhcmUgdHlwZXMgZm9yIGVhY2ggb2YgdGhlIHRhZ3MgZGVmaW5lZCBpbiBoYXJkd2FyZS9pbnRlcmZhY2VzL2tleW1hc3Rlci8yLjAvdHlwZXMuaGFsLgorICoKKyAqIFRoZSBtYWNybyBERUNMQVJFX1RZUEVEX1RBRyhuYW1lKSBnZW5lcmF0ZXMgYSB0eXBlbmFtZSBUQUdfbmFtZV90IGFuZCBhIHplcm8gc2l6ZWQgaW5zdGFuY2UKKyAqIFRBR19uYW1lLiBPbmNlIHRoZXNlIHR5cGVkIHRhZ3MgaGF2ZSBiZWVuIGRlY2xhcmVkIHdlIGRlZmluZSBtZXRhZnVuY3Rpb25zIG1hcHBpbmcgdGhlIGVhY2ggdGFnCisgKiB0byBpdHMgdmFsdWUgYysrIHR5cGUgYW5kIHRoZSBjb3JyZWN0IHVuaW9uIGVsZW1lbnQgb2YgS2V5UGFyYW1ldGVyLiBUaGlzIGlzIGRvbmUgYnkgbWVhbnMgb2YKKyAqIHRoZSBtYWNyb3MgTUFLRV9UQUdfKlZBTFVFX0FDQ0VTU09SLCB3aGljaCBnZW5lcmF0ZXMgVHlwZWRUYWcyVmFsdWVUeXBlLCBhIG1ldGFmdW5jdGlvbiBtYXBwaW5nCisgKiBhIHR5cGVkIHRhZyB0byB0aGUgY29ycmVzcG9uZGluZyBjKysgdHlwZSwgYW5kIGFjY2VzcyBmdW5jdGlvbiwgYWNjZXNzVGFnVmFsdWUgcmV0dXJuaW5nIGEKKyAqIHJlZmVyZW5jZSB0byB0aGUgY29ycmVjdCBlbGVtZW50IG9mIEtleVBhcmFtZXRlci4KKyAqIEUuZy46CisgKiAgICAgIGdpdmVuICJLZXlQYXJhbWV0ZXIgcGFyYW07IiB0aGVuICJhY2Nlc3NUYWdWYWx1ZShUQUdfUFVSUE9TRSwgcGFyYW0pIgorICogICAgICB5aWVsZHMgYSByZWZlcmVuY2UgdG8gcGFyYW0uZi5wdXJwb3NlCisgKiBJZiB1c2VkIGluIGFuIGFzc2lnbm1lbnQgdGhlIGNvbXBpbGVyIGNhbiBub3cgY2hlY2sgdGhlIGNvbXBhdGliaWxpdHkgb2YgdGhlIGFzc2lnbmVkIHZhbHVlLgorICoKKyAqIEZvciBjb252ZW5pZW5jZSB3ZSBhbHNvIHByb3ZpZGUgdGhlIGNvbnN0cnVjdG9yIGxpa2UgZnVuY3Rpb24gQXV0aG9yaXphdGlvbigpLgorICogQXV0aG9yaXphdGlvbiB0YWtlcyBhIHR5cGVkIHRhZyBhbmQgYSB2YWx1ZSBhbmQgY2hlY2tzIGF0IGNvbXBpbGUgdGltZSB3aGV0aGVyIHRoZSB2YWx1ZSBnaXZlbgorICogaXMgc3VpdGFibGUgZm9yIHRoZSBnaXZlbiB0YWcuIEF0IHJ1bnRpbWUgaXQgY3JlYXRlcyBhIG5ldyBLZXlQYXJhbWV0ZXIgaW5pdGlhbGl6ZWQgd2l0aCB0aGUKKyAqIGdpdmVuIHRhZyBhbmQgdmFsdWUgYW5kIHJldHVybnMgaXQgYnkgdmFsdWUuCisgKgorICogVGhlIHNlY29uZCBjb252ZW5pZW5jZSBmdW5jdGlvbiwgYXV0aG9yaXphdGlvblZhbHVlLCBhbGxvd3MgYWNjZXNzIHRvIHRoZSBLZXlQYXJhbWV0ZXIgdmFsdWUgaW4KKyAqIGEgc2FmZSB3YXkuIEl0IHRha2VzIGEgdHlwZWQgdGFnIGFuZCBhIEtleVBhcmFtZXRlciBhbmQgcmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFsdWUgd3JhcHBlZAorICogYnkgTnVsbE9yLiBOdWxsT3IgaGFzIG91dC1vZi1iYW5kIGluZm9ybWF0aW9uIGFib3V0IHdoZXRoZXIgaXQgaXMgc2F2ZSB0byBhY2Nlc3MgdGhlIHdyYXBwZWQKKyAqIHJlZmVyZW5jZS4KKyAqIEUuZy46CisgKiAgICAgIGF1dG8gcGFyYW0gPSBBdXRob3JpemF0aW9uKFRBR19BTEdPUklUTSwgQWxnb3JpdGhtOjpSU0EpOworICogICAgICBhdXRvIHZhbHVlMSA9IGF1dGhvcml6YXRpb25WYWx1ZShUQUdfUFVSUE9TRSwgcGFyYW0pOworICogICAgICBhdXRvIHZhbHVlMiA9IGF1dGhvcml6YXRpb25WYWx1ZShUQUdfQUxHT1JJVE0sIHBhcmFtKTsKKyAqIHZhbHVlMS5pc09rKCkgeWllbGRzIGZhbHNlLCBidXQgdmFsdWUyLmlzT2soKSB5aWVsZHMgdHJ1ZSwgdGh1cyB2YWx1ZTIudmFsdWUoKSBpcyBzYXZlIHRvIGFjY2Vzcy4KKyAqLworCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL0lId0tleW1hc3RlckRldmljZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2h3X2F1dGhfdG9rZW4uaD4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCisvLyBUaGUgZm9sbG93aW5nIGNyZWF0ZSB0aGUgbnVtZXJpYyB2YWx1ZXMgdGhhdCBLTV9UQUdfUEFERElORyBhbmQgS01fVEFHX0RJR0VTVCB1c2VkIHRvIGhhdmUuICBXZQorLy8gbmVlZCB0aGVzZSBvbGQgdmFsdWVzIHRvIGJlIGFibGUgdG8gc3VwcG9ydCBvbGQga2V5cyB0aGF0IHVzZSB0aGVtLgorc3RhdGljIGNvbnN0IGludDMyX3QgS01fVEFHX0RJR0VTVF9PTEQgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihUYWdUeXBlOjpFTlVNKSB8IDU7CitzdGF0aWMgY29uc3QgaW50MzJfdCBLTV9UQUdfUEFERElOR19PTEQgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihUYWdUeXBlOjpFTlVNKSB8IDc7CisKK2NvbnN0ZXhwciBUYWdUeXBlIHR5cGVGcm9tVGFnKFRhZyB0YWcpIHsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGFnVHlwZT4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRhZykgJiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oMHhmMDAwMDAwMCkpOworfQorCisvKioKKyAqIFR5cGVkVGFnIGlzIGEgdGVtcGxhdGl6ZWQgdmVyc2lvbiBvZiBUYWcsIHdoaWNoIHByb3ZpZGVzIGNvbXBpbGUtdGltZSBjaGVja2luZyBvZiBrZXltYXN0ZXIgdGFnCisgKiB0eXBlcy4gSW5zdGFuY2VzIGFyZSBjb252ZXJ0aWJsZSB0byBUYWcsIHNvIHRoZXkgY2FuIGJlIHVzZWQgd2hlcmV2ZXIgVGFnIGlzIGV4cGVjdGVkLCBhbmQKKyAqIGJlY2F1c2UgdGhleSBlbmNvZGUgdGhlIHRhZyB0eXBlIGl0J3MgcG9zc2libGUgdG8gY3JlYXRlIGZ1bmN0aW9uIG92ZXJsb2FkcyB0aGF0IG9ubHkgb3BlcmF0ZSBvbgorICogdGFncyB3aXRoIGEgcGFydGljdWxhciB0eXBlLgorICovCit0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZz4gc3RydWN0IFR5cGVkVGFnIHsKKyAgICBpbmxpbmUgVHlwZWRUYWcoKSB7CisgICAgICAgIC8vIEVuc3VyZSB0aGF0IGl0J3MgaW1wb3NzaWJsZSB0byBjcmVhdGUgYSBUeXBlZFRhZyBpbnN0YW5jZSB3aG9zZSAndGFnJyBkb2Vzbid0IGhhdmUgdHlwZQorICAgICAgICAvLyAndGFnX3R5cGUnLiAgQXR0ZW1wdGluZyB0byBpbnN0YW50aWF0ZSBhIHRhZyB3aXRoIHRoZSB3cm9uZyB0eXBlIHdpbGwgcmVzdWx0IGluIGEgY29tcGlsZQorICAgICAgICAvLyBlcnJvciAobm8gbWF0Y2ggZm9yIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uIFN0YXRpY0Fzc2VydDxmYWxzZT4pLCB3aXRoIG5vIHJ1bi10aW1lIGNvc3QuCisgICAgICAgIHN0YXRpY19hc3NlcnQodHlwZUZyb21UYWcodGFnKSA9PSB0YWdfdHlwZSwgIm1pc21hdGNoIGJldHdlZW4gdGFnIGFuZCB0YWdfdHlwZSIpOworICAgIH0KKyAgICBjb25zdGV4cHIgb3BlcmF0b3IgVGFnKCkgeyByZXR1cm4gdGFnOyB9CisgICAgY29uc3RleHByIGxvbmcgbWFza2VkVGFnKCkgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZz4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRhZykgJiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oMHgwZmZmZmZmZikpOworICAgIH0KK307CisKK3RlbXBsYXRlIDxUYWcgdGFnPiBzdHJ1Y3QgVGFnMlR5cGVkVGFnIHsgdHlwZWRlZiBUeXBlZFRhZzx0eXBlRnJvbVRhZyh0YWcpLCB0YWc+IHR5cGU7IH07CisKK3RlbXBsYXRlIDxUYWcgdGFnPiBzdHJ1Y3QgVGFnMlN0cmluZzsKKworI2RlZmluZSBfVEFHU19TVFJJTkdJRlkoeCkgI3gKKyNkZWZpbmUgVEFHU19TVFJJTkdJRlkoeCkgX1RBR1NfU1RSSU5HSUZZKHgpCisKKyNkZWZpbmUgREVDTEFSRV9UWVBFRF9UQUcobmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFRhZzJUeXBlZFRhZzxUYWc6Om5hbWU+Ojp0eXBlIFRBR18jI25hbWUjI190OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBleHRlcm4gVEFHXyMjbmFtZSMjX3QgVEFHXyMjbmFtZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgVGFnMlN0cmluZzxUYWc6Om5hbWU+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHZhbHVlKCkgeyByZXR1cm4gIlRhZzo6IiBUQUdTX1NUUklOR0lGWShuYW1lKTsgfSAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKK0RFQ0xBUkVfVFlQRURfVEFHKElOVkFMSUQpOworREVDTEFSRV9UWVBFRF9UQUcoS0VZX1NJWkUpOworREVDTEFSRV9UWVBFRF9UQUcoTUFDX0xFTkdUSCk7CitERUNMQVJFX1RZUEVEX1RBRyhDQUxMRVJfTk9OQ0UpOworREVDTEFSRV9UWVBFRF9UQUcoTUlOX01BQ19MRU5HVEgpOworREVDTEFSRV9UWVBFRF9UQUcoUlNBX1BVQkxJQ19FWFBPTkVOVCk7CitERUNMQVJFX1RZUEVEX1RBRyhFQ0lFU19TSU5HTEVfSEFTSF9NT0RFKTsKK0RFQ0xBUkVfVFlQRURfVEFHKElOQ0xVREVfVU5JUVVFX0lEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFDVElWRV9EQVRFVElNRSk7CitERUNMQVJFX1RZUEVEX1RBRyhPUklHSU5BVElPTl9FWFBJUkVfREFURVRJTUUpOworREVDTEFSRV9UWVBFRF9UQUcoVVNBR0VfRVhQSVJFX0RBVEVUSU1FKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE1JTl9TRUNPTkRTX0JFVFdFRU5fT1BTKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE1BWF9VU0VTX1BFUl9CT09UKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFMTF9VU0VSUyk7CitERUNMQVJFX1RZUEVEX1RBRyhVU0VSX0lEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFVTRVJfU0VDVVJFX0lEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE5PX0FVVEhfUkVRVUlSRUQpOworREVDTEFSRV9UWVBFRF9UQUcoQVVUSF9USU1FT1VUKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFMTE9XX1dISUxFX09OX0JPRFkpOworREVDTEFSRV9UWVBFRF9UQUcoQUxMX0FQUExJQ0FUSU9OUyk7CitERUNMQVJFX1RZUEVEX1RBRyhBUFBMSUNBVElPTl9JRCk7CitERUNMQVJFX1RZUEVEX1RBRyhBUFBMSUNBVElPTl9EQVRBKTsKK0RFQ0xBUkVfVFlQRURfVEFHKENSRUFUSU9OX0RBVEVUSU1FKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFJPTExCQUNLX1JFU0lTVEFOVCk7CitERUNMQVJFX1RZUEVEX1RBRyhST09UX09GX1RSVVNUKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFTU09DSUFURURfREFUQSk7CitERUNMQVJFX1RZUEVEX1RBRyhOT05DRSk7CitERUNMQVJFX1RZUEVEX1RBRyhBVVRIX1RPS0VOKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEJPT1RMT0FERVJfT05MWSk7CitERUNMQVJFX1RZUEVEX1RBRyhPU19WRVJTSU9OKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE9TX1BBVENITEVWRUwpOworREVDTEFSRV9UWVBFRF9UQUcoVU5JUVVFX0lEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFUVEVTVEFUSU9OX0NIQUxMRU5HRSk7CitERUNMQVJFX1RZUEVEX1RBRyhBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCk7CitERUNMQVJFX1RZUEVEX1RBRyhSRVNFVF9TSU5DRV9JRF9ST1RBVElPTik7CisKK0RFQ0xBUkVfVFlQRURfVEFHKFBVUlBPU0UpOworREVDTEFSRV9UWVBFRF9UQUcoQUxHT1JJVEhNKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEJMT0NLX01PREUpOworREVDTEFSRV9UWVBFRF9UQUcoRElHRVNUKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFBBRERJTkcpOworREVDTEFSRV9UWVBFRF9UQUcoQkxPQl9VU0FHRV9SRVFVSVJFTUVOVFMpOworREVDTEFSRV9UWVBFRF9UQUcoT1JJR0lOKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFVTRVJfQVVUSF9UWVBFKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEtERik7CitERUNMQVJFX1RZUEVEX1RBRyhFQ19DVVJWRSk7CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBFbGVtcz4gc3RydWN0IE1ldGFMaXN0IHt9OworCit1c2luZyBhbGxfdGFnc190ID0gTWV0YUxpc3Q8CisgICAgVEFHX0lOVkFMSURfdCwgVEFHX0tFWV9TSVpFX3QsIFRBR19NQUNfTEVOR1RIX3QsIFRBR19DQUxMRVJfTk9OQ0VfdCwgVEFHX01JTl9NQUNfTEVOR1RIX3QsCisgICAgVEFHX1JTQV9QVUJMSUNfRVhQT05FTlRfdCwgVEFHX0VDSUVTX1NJTkdMRV9IQVNIX01PREVfdCwgVEFHX0lOQ0xVREVfVU5JUVVFX0lEX3QsCisgICAgVEFHX0FDVElWRV9EQVRFVElNRV90LCBUQUdfT1JJR0lOQVRJT05fRVhQSVJFX0RBVEVUSU1FX3QsIFRBR19VU0FHRV9FWFBJUkVfREFURVRJTUVfdCwKKyAgICBUQUdfTUlOX1NFQ09ORFNfQkVUV0VFTl9PUFNfdCwgVEFHX01BWF9VU0VTX1BFUl9CT09UX3QsIFRBR19BTExfVVNFUlNfdCwgVEFHX1VTRVJfSURfdCwKKyAgICBUQUdfVVNFUl9TRUNVUkVfSURfdCwgVEFHX05PX0FVVEhfUkVRVUlSRURfdCwgVEFHX0FVVEhfVElNRU9VVF90LCBUQUdfQUxMT1dfV0hJTEVfT05fQk9EWV90LAorICAgIFRBR19BTExfQVBQTElDQVRJT05TX3QsIFRBR19BUFBMSUNBVElPTl9JRF90LCBUQUdfQVBQTElDQVRJT05fREFUQV90LCBUQUdfQ1JFQVRJT05fREFURVRJTUVfdCwKKyAgICBUQUdfUk9MTEJBQ0tfUkVTSVNUQU5UX3QsIFRBR19ST09UX09GX1RSVVNUX3QsIFRBR19BU1NPQ0lBVEVEX0RBVEFfdCwgVEFHX05PTkNFX3QsCisgICAgVEFHX0FVVEhfVE9LRU5fdCwgVEFHX0JPT1RMT0FERVJfT05MWV90LCBUQUdfT1NfVkVSU0lPTl90LCBUQUdfT1NfUEFUQ0hMRVZFTF90LCBUQUdfVU5JUVVFX0lEX3QsCisgICAgVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRV90LCBUQUdfQVRURVNUQVRJT05fQVBQTElDQVRJT05fSURfdCwgVEFHX1JFU0VUX1NJTkNFX0lEX1JPVEFUSU9OX3QsCisgICAgVEFHX1BVUlBPU0VfdCwgVEFHX0FMR09SSVRITV90LCBUQUdfQkxPQ0tfTU9ERV90LCBUQUdfRElHRVNUX3QsIFRBR19QQURESU5HX3QsCisgICAgVEFHX0JMT0JfVVNBR0VfUkVRVUlSRU1FTlRTX3QsIFRBR19PUklHSU5fdCwgVEFHX1VTRVJfQVVUSF9UWVBFX3QsIFRBR19LREZfdCwgVEFHX0VDX0NVUlZFX3Q+OworCisvKiBpbXBsZW1lbnRhdGlvbiBpbiBrZXlzdG9yZV91dGlscy5jcHAgKi8KK2V4dGVybiBjb25zdCBjaGFyKiBzdHJpbmdpZnlUYWcoVGFnIHRhZyk7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUeXBlZFRhZ1R5cGU+IHN0cnVjdCBUeXBlZFRhZzJWYWx1ZVR5cGU7CisKKyNkZWZpbmUgTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IodGFnX3R5cGUsIGZpZWxkX25hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8VGFnIHRhZz4gc3RydWN0IFR5cGVkVGFnMlZhbHVlVHlwZTxUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPj4geyAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdHlwZWRlZiBkZWNsdHlwZShzdGF0aWNfY2FzdDxLZXlQYXJhbWV0ZXIqPihudWxscHRyKS0+ZmllbGRfbmFtZSkgdHlwZTsgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8VGFnIHRhZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpbmxpbmUgYXV0byBhY2Nlc3NUYWdWYWx1ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLT5jb25zdCBkZWNsdHlwZShwYXJhbS5maWVsZF9uYW1lKSYgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIHBhcmFtLmZpZWxkX25hbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8VGFnIHRhZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpbmxpbmUgYXV0byBhY2Nlc3NUYWdWYWx1ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiwgS2V5UGFyYW1ldGVyJiBwYXJhbSkgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLT5kZWNsdHlwZShwYXJhbS5maWVsZF9uYW1lKSYgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIHBhcmFtLmZpZWxkX25hbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OlVMT05HLCBmLmxvbmdJbnRlZ2VyKQorTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IoVGFnVHlwZTo6VUxPTkdfUkVQLCBmLmxvbmdJbnRlZ2VyKQorTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IoVGFnVHlwZTo6REFURSwgZi5kYXRlVGltZSkKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OlVJTlQsIGYuaW50ZWdlcikKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OlVJTlRfUkVQLCBmLmludGVnZXIpCitNQUtFX1RBR19WQUxVRV9BQ0NFU1NPUihUYWdUeXBlOjpCT09MLCBmLmJvb2xWYWx1ZSkKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OkJZVEVTLCBibG9iKQorTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IoVGFnVHlwZTo6QklHTlVNLCBibG9iKQorCisjZGVmaW5lIE1BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IodHlwZWRfdGFnLCBmaWVsZF9uYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPD4gc3RydWN0IFR5cGVkVGFnMlZhbHVlVHlwZTxkZWNsdHlwZSh0eXBlZF90YWcpPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHR5cGVkZWYgZGVjbHR5cGUoc3RhdGljX2Nhc3Q8S2V5UGFyYW1ldGVyKj4obnVsbHB0ciktPmZpZWxkX25hbWUpIHR5cGU7ICAgICAgICAgICAgICAgICAgICBcCisgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaW5saW5lIGF1dG8gYWNjZXNzVGFnVmFsdWUoZGVjbHR5cGUodHlwZWRfdGFnKSwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC0+Y29uc3QgZGVjbHR5cGUocGFyYW0uZmllbGRfbmFtZSkmIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBwYXJhbS5maWVsZF9uYW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaW5saW5lIGF1dG8gYWNjZXNzVGFnVmFsdWUoZGVjbHR5cGUodHlwZWRfdGFnKSwgS2V5UGFyYW1ldGVyJiBwYXJhbSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC0+ZGVjbHR5cGUocGFyYW0uZmllbGRfbmFtZSkmIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBwYXJhbS5maWVsZF9uYW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCitNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKFRBR19BTEdPUklUSE0sIGYuYWxnb3JpdGhtKQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfQkxPQl9VU0FHRV9SRVFVSVJFTUVOVFMsIGYua2V5QmxvYlVzYWdlUmVxdWlyZW1lbnRzKQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfQkxPQ0tfTU9ERSwgZi5ibG9ja01vZGUpCitNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKFRBR19ESUdFU1QsIGYuZGlnZXN0KQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfRUNfQ1VSVkUsIGYuZWNDdXJ2ZSkKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX0tERiwgZi5rZXlEZXJpdmF0aW9uRnVuY3Rpb24pCitNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKFRBR19PUklHSU4sIGYub3JpZ2luKQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfUEFERElORywgZi5wYWRkaW5nTW9kZSkKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX1BVUlBPU0UsIGYucHVycG9zZSkKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX1VTRVJfQVVUSF9UWVBFLCBmLmhhcmR3YXJlQXV0aGVudGljYXRvclR5cGUpCisKK3RlbXBsYXRlIDxUYWdUeXBlIHRhZ190eXBlLCBUYWcgdGFnLCB0eXBlbmFtZSBWYWx1ZVQ+CitpbmxpbmUgS2V5UGFyYW1ldGVyIG1ha2VLZXlQYXJhbWV0ZXIoVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUJiYgdmFsdWUpIHsKKyAgICBLZXlQYXJhbWV0ZXIgcGFyYW07CisgICAgcGFyYW0udGFnID0gdGFnOworICAgIHBhcmFtLmYubG9uZ0ludGVnZXIgPSAwOworICAgIGFjY2Vzc1RhZ1ZhbHVlKHR0YWcsIHBhcmFtKSA9IHN0ZDo6Zm9yd2FyZDxWYWx1ZVQ+KHZhbHVlKTsKKyAgICByZXR1cm4gcGFyYW07Cit9CisKKy8vIHRoZSBib29sZWFuIGNhc2UKK3RlbXBsYXRlIDxUYWcgdGFnPiBpbmxpbmUgS2V5UGFyYW1ldGVyIG1ha2VLZXlQYXJhbWV0ZXIoVHlwZWRUYWc8VGFnVHlwZTo6Qk9PTCwgdGFnPikgeworICAgIEtleVBhcmFtZXRlciBwYXJhbTsKKyAgICBwYXJhbS50YWcgPSB0YWc7CisgICAgcGFyYW0uZi5ib29sVmFsdWUgPSB0cnVlOworICAgIHJldHVybiBwYXJhbTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFBhY2s+IHN0cnVjdCBGaXJzdE9yTm9uZUhlbHBlcjsKK3RlbXBsYXRlIDx0eXBlbmFtZSBGaXJzdD4gc3RydWN0IEZpcnN0T3JOb25lSGVscGVyPEZpcnN0PiB7IHR5cGVkZWYgRmlyc3QgdHlwZTsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBGaXJzdE9yTm9uZUhlbHBlcjw+IHsKKyAgICBzdHJ1Y3QgdHlwZSB7fTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBQYWNrPiB1c2luZyBGaXJzdE9yTm9uZSA9IHR5cGVuYW1lIEZpcnN0T3JOb25lSGVscGVyPFBhY2suLi4+Ojp0eXBlOworCit0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUuLi4gQXJncz4KK2lubGluZSBLZXlQYXJhbWV0ZXIgQXV0aG9yaXphdGlvbihUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiB0dGFnLCBBcmdzJiYuLi4gYXJncykgeworICAgIHN0YXRpY19hc3NlcnQodGFnX3R5cGUgIT0gVGFnVHlwZTo6Qk9PTCB8fCAoc2l6ZW9mLi4uKGFyZ3MpID09IDApLAorICAgICAgICAgICAgICAgICAgIlRhZ1R5cGU6OkJPT0wgQXV0aG9yaXphdGlvbnMgZG8gbm90IHRha2UgcGFyYW1ldGVycy4gUHJlc2VuY2UgaXMgdHJ1dGguIik7CisgICAgc3RhdGljX2Fzc2VydCh0YWdfdHlwZSA9PSBUYWdUeXBlOjpCT09MIHx8IChzaXplb2YuLi4oYXJncykgPT0gMSksCisgICAgICAgICAgICAgICAgICAiQXV0aG9yaXphdGlvbiBvdGhlciB0aGVuIFRhZ1R5cGU6OkJPT0wgdGFrZSBleGFjdGx5IG9uZSBwYXJhbWV0ZXIuIik7CisgICAgc3RhdGljX2Fzc2VydCgKKyAgICAgICAgdGFnX3R5cGUgPT0gVGFnVHlwZTo6Qk9PTCB8fAorICAgICAgICAgICAgc3RkOjppc19jb252ZXJ0aWJsZTxzdGQ6OnJlbW92ZV9jdl90PHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PEZpcnN0T3JOb25lPEFyZ3MuLi4+Pj4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGVkVGFnMlZhbHVlVHlwZTxUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPj46OnR5cGU+Ojp2YWx1ZSwKKyAgICAgICAgIkludmFsaWQgYXJndW1lbnQgdHlwZSBmb3IgZ2l2ZW4gdGFnLiIpOworCisgICAgcmV0dXJuIG1ha2VLZXlQYXJhbWV0ZXIodHRhZywgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKK30KKworLyoqCisgKiBUaGlzIGNsYXNzIHdyYXBzIGEgKG1vc3RseSByZXR1cm4pIHZhbHVlIGFuZCBzdG9yZXMgd2hldGhlciBvciBub3QgdGhlIHdyYXBwZWQgdmFsdWUgaXMgdmFsaWQgb3V0CisgKiBvZiBiYW5kLiBOb3RlIHRoYXQgaWYgdGhlIHdyYXBwZWQgdmFsdWUgaXMgYSByZWZlcmVuY2UgaXQgaXMgdW5zYWZlIHRvIGFjY2VzcyB0aGUgdmFsdWUgaWYKKyAqICFpc09rKCkuIElmIHRoZSB3cmFwcGVkIHR5cGUgaXMgYSBwb2ludGVyIG9yIHZhbHVlIGFuZCAhaXNPaygpLCBpdCBpcyBzdGlsbCBzYWZlIHRvIGFjY2VzcyB0aGUKKyAqIHdyYXBwZWQgdmFsdWUuIEluIHRoaXMgY2FzZSB0aGUgcG9pbnRlciB3aWxsIGJlIE5VTEwgdGhvdWdoLCBhbmQgdGhlIHZhbHVlIHdpbGwgYmUgZGVmYXVsdAorICogY29uc3RydWN0ZWQuCisgKi8KK3RlbXBsYXRlIDx0eXBlbmFtZSBWYWx1ZVQ+IGNsYXNzIE51bGxPciB7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCByZWZlcmVuY2VfaW5pdGlhbGl6ZXIgeworICAgICAgICBzdGF0aWMgVCYmIGluaXQoKSB7IHJldHVybiAqc3RhdGljX2Nhc3Q8c3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8VD4qPihudWxscHRyKTsgfQorICAgIH07CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBwb2ludGVyX2luaXRpYWxpemVyIHsKKyAgICAgICAgc3RhdGljIFQgaW5pdCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB9OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgdmFsdWVfaW5pdGlhbGl6ZXIgeworICAgICAgICBzdGF0aWMgVCBpbml0KCkgeyByZXR1cm4gVCgpOyB9CisgICAgfTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICB1c2luZyBpbml0aWFsaXplcl90ID0KKyAgICAgICAgc3RkOjpjb25kaXRpb25hbF90PHN0ZDo6aXNfbHZhbHVlX3JlZmVyZW5jZTxUPjo6dmFsdWUsIHJlZmVyZW5jZV9pbml0aWFsaXplcjxUPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y29uZGl0aW9uYWxfdDxzdGQ6OmlzX3BvaW50ZXI8VD46OnZhbHVlLCBwb2ludGVyX2luaXRpYWxpemVyPFQ+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlX2luaXRpYWxpemVyPFQ+Pj47CisKKyAgcHVibGljOgorICAgIE51bGxPcigpIDogdmFsdWVfKGluaXRpYWxpemVyX3Q8VmFsdWVUPjo6aW5pdCgpKSwgbnVsbF8odHJ1ZSkge30KKyAgICBOdWxsT3IoVmFsdWVUJiYgdmFsdWUpIDogdmFsdWVfKHN0ZDo6Zm9yd2FyZDxWYWx1ZVQ+KHZhbHVlKSksIG51bGxfKGZhbHNlKSB7fQorCisgICAgYm9vbCBpc09rKCkgY29uc3QgeyByZXR1cm4gIW51bGxfOyB9CisKKyAgICBjb25zdCBWYWx1ZVQmIHZhbHVlKCkgY29uc3QgJiB7IHJldHVybiB2YWx1ZV87IH0KKyAgICBWYWx1ZVQmIHZhbHVlKCkgJiB7IHJldHVybiB2YWx1ZV87IH0KKyAgICBWYWx1ZVQmJiB2YWx1ZSgpICYmIHsgcmV0dXJuIHN0ZDo6bW92ZSh2YWx1ZV8pOyB9CisKKyAgcHJpdmF0ZToKKyAgICBWYWx1ZVQgdmFsdWVfOworICAgIGJvb2wgbnVsbF87Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8VD4gTnVsbE9yT3IoTnVsbE9yPFQ+JiYgdikgeworICAgIGlmICh2LmlzT2soKSkgcmV0dXJuIHY7CisgICAgcmV0dXJuIHt9OworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgSGVhZCwgdHlwZW5hbWUuLi4gVGFpbD4KK3N0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PEhlYWQ+IE51bGxPck9yKEhlYWQmJiBoZWFkLCBUYWlsJiYuLi4gdGFpbCkgeworICAgIGlmIChoZWFkLmlzT2soKSkgcmV0dXJuIGhlYWQ7CisgICAgcmV0dXJuIE51bGxPck9yKHN0ZDo6Zm9yd2FyZDxUYWlsPih0YWlsKS4uLik7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBEZWZhdWx0LCB0eXBlbmFtZSBXcmFwcGVkPgorc3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8V3JhcHBlZD4gZGVmYXVsdE9yKE51bGxPcjxXcmFwcGVkPiYmIG9wdGlvbmFsLCBEZWZhdWx0JiYgZGVmKSB7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2NvbnZlcnRpYmxlPHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PERlZmF1bHQ+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnJlbW92ZV9yZWZlcmVuY2VfdDxXcmFwcGVkPj46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgIlR5cGUgb2YgZGVmYXVsdCB2YWx1ZSBtdXN0IG1hdGNoIHRoZSB0eXBlIHdyYXBwZWQgYnkgTnVsbE9yIik7CisgICAgaWYgKG9wdGlvbmFsLmlzT2soKSkgcmV0dXJuIG9wdGlvbmFsLnZhbHVlKCk7CisgICAgcmV0dXJuIGRlZjsKK30KKwordGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWc+CitpbmxpbmUgTnVsbE9yPGNvbnN0IHR5cGVuYW1lIFR5cGVkVGFnMlZhbHVlVHlwZTxUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPj46OnR5cGUmPgorYXV0aG9yaXphdGlvblZhbHVlKFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+IHR0YWcsIGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICBpZiAodGFnICE9IHBhcmFtLnRhZykgcmV0dXJuIHt9OworICAgIHJldHVybiBhY2Nlc3NUYWdWYWx1ZSh0dGFnLCBwYXJhbSk7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoRGlnZXN0IGRpZ2VzdCkgeworICAgIHN3aXRjaCAoZGlnZXN0KSB7CisgICAgY2FzZSBEaWdlc3Q6Ok5PTkU6CisgICAgICAgIHJldHVybiAiTm9uZSI7CisgICAgY2FzZSBEaWdlc3Q6Ok1ENToKKyAgICAgICAgcmV0dXJuICJNZDUiOworICAgIGNhc2UgRGlnZXN0OjpTSEExOgorICAgICAgICByZXR1cm4gIlNoYTEiOworICAgIGNhc2UgRGlnZXN0OjpTSEFfMl8yMjQ6CisgICAgICAgIHJldHVybiAiU2hhMjI0IjsKKyAgICBjYXNlIERpZ2VzdDo6U0hBXzJfMjU2OgorICAgICAgICByZXR1cm4gIlNoYTI1NiI7CisgICAgY2FzZSBEaWdlc3Q6OlNIQV8yXzM4NDoKKyAgICAgICAgcmV0dXJuICJTaGEzODQiOworICAgIGNhc2UgRGlnZXN0OjpTSEFfMl81MTI6CisgICAgICAgIHJldHVybiAiU2hhNTEyIjsKKyAgICB9CisgICAgcmV0dXJuICJVTktOT1dOIERJR0VTVCEiOworfQorCitpbmxpbmUgY29uc3QgY2hhciogc3RyaW5naWZ5KEFsZ29yaXRobSBhbGdvcml0aG0pIHsKKyAgICBzd2l0Y2ggKGFsZ29yaXRobSkgeworICAgIGNhc2UgQWxnb3JpdGhtOjpSU0E6CisgICAgICAgIHJldHVybiAiUnNhIjsKKyAgICBjYXNlIEFsZ29yaXRobTo6RUM6CisgICAgICAgIHJldHVybiAiRWMiOworICAgIGNhc2UgQWxnb3JpdGhtOjpBRVM6CisgICAgICAgIHJldHVybiAiQWVzIjsKKyAgICBjYXNlIEFsZ29yaXRobTo6SE1BQzoKKyAgICAgICAgcmV0dXJuICJIbWFjIjsKKyAgICB9CisgICAgcmV0dXJuICJVTktOT1dOIEFMR09SSVRITSI7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoQmxvY2tNb2RlIGJsb2NrX21vZGUpIHsKKyAgICBzd2l0Y2ggKGJsb2NrX21vZGUpIHsKKyAgICBjYXNlIEJsb2NrTW9kZTo6RUNCOgorICAgICAgICByZXR1cm4gIkVjYiI7CisgICAgY2FzZSBCbG9ja01vZGU6OkNCQzoKKyAgICAgICAgcmV0dXJuICJDYmMiOworICAgIGNhc2UgQmxvY2tNb2RlOjpDVFI6CisgICAgICAgIHJldHVybiAiQ3RyIjsKKyAgICBjYXNlIEJsb2NrTW9kZTo6R0NNOgorICAgICAgICByZXR1cm4gIkdjbSI7CisgICAgfQorICAgIHJldHVybiAiVU5LTk9XTiBCTE9DSyBNT0RFIjsKK30KKworaW5saW5lIGNvbnN0IGNoYXIqIHN0cmluZ2lmeShQYWRkaW5nTW9kZSBwYWRkaW5nKSB7CisgICAgc3dpdGNoIChwYWRkaW5nKSB7CisgICAgY2FzZSBQYWRkaW5nTW9kZTo6Tk9ORToKKyAgICAgICAgcmV0dXJuICJOb25lIjsKKyAgICBjYXNlIFBhZGRpbmdNb2RlOjpSU0FfT0FFUDoKKyAgICAgICAgcmV0dXJuICJSc2FPYWVwIjsKKyAgICBjYXNlIFBhZGRpbmdNb2RlOjpSU0FfUFNTOgorICAgICAgICByZXR1cm4gIlJzYVBzcyI7CisgICAgY2FzZSBQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9FTkNSWVBUOgorICAgICAgICByZXR1cm4gIlJzYVBrY3MxMTVFbmNyeXB0IjsKKyAgICBjYXNlIFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR046CisgICAgICAgIHJldHVybiAiUnNhUGtjczExNVNpZ24iOworICAgIGNhc2UgUGFkZGluZ01vZGU6OlBLQ1M3OgorICAgICAgICByZXR1cm4gIlBrY3M3IjsKKyAgICB9CisgICAgcmV0dXJuICJVTktOT1dOIFBBRERJTkcgTU9ERSI7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoS2V5T3JpZ2luIG9yaWdpbikgeworICAgIHN3aXRjaCAob3JpZ2luKSB7CisgICAgY2FzZSBLZXlPcmlnaW46OkdFTkVSQVRFRDoKKyAgICAgICAgcmV0dXJuICJHZW5lcmF0ZWQiOworICAgIGNhc2UgS2V5T3JpZ2luOjpERVJJVkVEOgorICAgICAgICByZXR1cm4gIkRlcml2ZWQiOworICAgIGNhc2UgS2V5T3JpZ2luOjpJTVBPUlRFRDoKKyAgICAgICAgcmV0dXJuICJJbXBvcnRlZCI7CisgICAgY2FzZSBLZXlPcmlnaW46OlVOS05PV046CisgICAgICAgIHJldHVybiAiVU5LTk9XTiAoa2V5bWFzdGVyMCBkaWRuJ3QgcmVjb3JkIGl0KSI7CisgICAgfQorICAgIHJldHVybiAiVU5LT1dOIEtFWSBPUklHSU4gVkFMVUUiOworfQorCitpbmxpbmUgY29uc3QgY2hhciogc3RyaW5naWZ5KEtleVB1cnBvc2UgcHVycG9zZSkgeworICAgIHN3aXRjaCAocHVycG9zZSkgeworICAgIGNhc2UgS2V5UHVycG9zZTo6RU5DUllQVDoKKyAgICAgICAgcmV0dXJuICJFbmNyeXB0IjsKKyAgICBjYXNlIEtleVB1cnBvc2U6OkRFQ1JZUFQ6CisgICAgICAgIHJldHVybiAiRGVjcnlwdCI7CisgICAgY2FzZSBLZXlQdXJwb3NlOjpTSUdOOgorICAgICAgICByZXR1cm4gIlNpZ24iOworICAgIGNhc2UgS2V5UHVycG9zZTo6VkVSSUZZOgorICAgICAgICByZXR1cm4gIlZlcmlmeSI7CisgICAgY2FzZSBLZXlQdXJwb3NlOjpERVJJVkVfS0VZOgorICAgICAgICByZXR1cm4gIkRlcml2ZUtleSI7CisgICAgY2FzZSBLZXlQdXJwb3NlOjpXUkFQX0tFWToKKyAgICAgICAgcmV0dXJuICJXcmFwS2V5IjsKKyAgICB9OworICAgIHJldHVybiAiVU5LTk9XTiBLRVkgUFVSUE9TRSI7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoRWNDdXJ2ZSBjdXJ2ZSkgeworICAgIHN3aXRjaCAoY3VydmUpIHsKKyAgICBjYXNlIEVjQ3VydmU6OlBfMjI0OgorICAgICAgICByZXR1cm4gIlBfMjI0IjsKKyAgICBjYXNlIEVjQ3VydmU6OlBfMjU2OgorICAgICAgICByZXR1cm4gIlBfMjU2IjsKKyAgICBjYXNlIEVjQ3VydmU6OlBfMzg0OgorICAgICAgICByZXR1cm4gIlBfMzg0IjsKKyAgICBjYXNlIEVjQ3VydmU6OlBfNTIxOgorICAgICAgICByZXR1cm4gIlBfNTIxIjsKKyAgICB9CisgICAgcmV0dXJuICJVTktOT1dOIEVDIENVUlZFIjsKK30KKworfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBTWVNURU1fU0VDVVJJVFlfS0VZU1RPUkVfS0VZTUFTVEVSX1RBR1NfSF8KZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5c3RvcmVfdGFnc191dGlscy5jcHAgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleXN0b3JlX3RhZ3NfdXRpbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkZDk5ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleXN0b3JlX3RhZ3NfdXRpbHMuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMTYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisKKyNpbmNsdWRlICJrZXltYXN0ZXJfdGFncy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUYWdMaXN0PiBzdHJ1Y3QgVGFnU3RyaW5naWZpZXI7CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUYWdzPiBzdHJ1Y3QgVGFnU3RyaW5naWZpZXI8TWV0YUxpc3Q8VGFncy4uLj4+IHsKKyAgICB0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZz4KKyAgICBzdGF0aWMgVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gY2hvb3NlU3RyaW5nKFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+IHR0YWcsIFRhZyBydW50aW1lX3RhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqKiByZXN1bHQpIHsKKyAgICAgICAgaWYgKHRhZyA9PSBydW50aW1lX3RhZykgeworICAgICAgICAgICAgKnJlc3VsdCA9IFRhZzJTdHJpbmc8dGFnPjo6dmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHRhZzsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN0cmluZ2lmeShUYWcgdGFnKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIHJlc3VsdCA9ICJ1bmtub3duIHRhZyI7CisgICAgICAgIFtdKFRhZ3MmJi4uLikge30oY2hvb3NlU3RyaW5nKFRhZ3MoKSwgdGFnLCAmcmVzdWx0KS4uLik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfTsKKworY29uc3QgY2hhciogc3RyaW5naWZ5VGFnKFRhZyB0YWcpIHsKKyAgICByZXR1cm4gVGFnU3RyaW5naWZpZXI8YWxsX3RhZ3NfdD46OnN0cmluZ2lmeSh0YWcpOworfQorCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9vcGVuc3NsX3V0aWxzLmggYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL29wZW5zc2xfdXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZWJhOWJhCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9vcGVuc3NsX3V0aWxzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHZvaWQgKCpGKShUKik+IHN0cnVjdCBVbmlxdWVQdHJEZWxldGVyIHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoVCogcCkgY29uc3QgeyBGKHApOyB9Cit9OworCit0eXBlZGVmIFVuaXF1ZVB0ckRlbGV0ZXI8RVZQX1BLRVksIEVWUF9QS0VZX2ZyZWU+IEVWUF9QS0VZX0RlbGV0ZTsKKworI2RlZmluZSBNQUtFX09QRU5TU0xfUFRSX1RZUEUodHlwZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPHR5cGUsIFVuaXF1ZVB0ckRlbGV0ZXI8dHlwZSwgdHlwZSMjX2ZyZWU+PiB0eXBlIyNfUHRyOworCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoQVNOMV9PQkpFQ1QpCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoRVZQX1BLRVkpCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoUlNBKQorTUFLRV9PUEVOU1NMX1BUUl9UWVBFKFg1MDkpCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoQk5fQ1RYKQorCit0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxCSUdOVU0sIFVuaXF1ZVB0ckRlbGV0ZXI8QklHTlVNLCBCTl9mcmVlPj4gQklHTlVNX1B0cjsKKworaW5saW5lIGNvbnN0IEVWUF9NRCogb3BlbnNzbF9kaWdlc3QoYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0IGRpZ2VzdCkgeworICAgIHN3aXRjaCAoZGlnZXN0KSB7CisgICAgY2FzZSBhbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpEaWdlc3Q6Ok5PTkU6CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNhc2UgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0OjpNRDU6CisgICAgICAgIHJldHVybiBFVlBfbWQ1KCk7CisgICAgY2FzZSBhbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpEaWdlc3Q6OlNIQTE6CisgICAgICAgIHJldHVybiBFVlBfc2hhMSgpOworICAgIGNhc2UgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0OjpTSEFfMl8yMjQ6CisgICAgICAgIHJldHVybiBFVlBfc2hhMjI0KCk7CisgICAgY2FzZSBhbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpEaWdlc3Q6OlNIQV8yXzI1NjoKKyAgICAgICAgcmV0dXJuIEVWUF9zaGEyNTYoKTsKKyAgICBjYXNlIGFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OkRpZ2VzdDo6U0hBXzJfMzg0OgorICAgICAgICByZXR1cm4gRVZQX3NoYTM4NCgpOworICAgIGNhc2UgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0OjpTSEFfMl81MTI6CisgICAgICAgIHJldHVybiBFVlBfc2hhNTEyKCk7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyL0FuZHJvaWQuYnAgYi9rZXltYXN0ZXIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWI4Y2IyCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIzLjAiLAorXQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL0FuZHJvaWQuYnAgYi9saWdodC8yLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmZkYmUwCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJTGlnaHQuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9MaWdodEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JTGlnaHQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JSHdMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL0JuSHdMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL0JwSHdMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL0JzTGlnaHQuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL0FuZHJvaWQubWsgYi9saWdodC8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGQ3YWIxCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwyNzAgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUubGlnaHQtVjIuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChCcmlnaHRuZXNzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0JyaWdodG5lc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6dHlwZXMuQnJpZ2h0bmVzcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmxhc2gpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvRmxhc2guamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6dHlwZXMuRmxhc2gKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKExpZ2h0U3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvTGlnaHRTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5MaWdodFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbGlnaHQvVjJfMC9UeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLlR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJTGlnaHQuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvSUxpZ2h0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JTGlnaHQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6SUxpZ2h0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTGlnaHQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0LVYyLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQnJpZ2h0bmVzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbGlnaHQvVjJfMC9CcmlnaHRuZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLkJyaWdodG5lc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZsYXNoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0ZsYXNoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLkZsYXNoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChMaWdodFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0xpZ2h0U3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6dHlwZXMuTGlnaHRTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5UeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUxpZ2h0LmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0lMaWdodC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUxpZ2h0LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OklMaWdodAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUxpZ2h0LmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL0lMaWdodC5oYWwgYi9saWdodC8yLjAvSUxpZ2h0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2NkNjg0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL0lMaWdodC5oYWwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA7CisKK2ludGVyZmFjZSBJTGlnaHQgeworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwcm92aWRlZCBsaWdodHMgdG8gdGhlIHByb3ZpZGVkIHZhbHVlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlIGxvZ2ljYWwgbGlnaHQgdG8gc2V0CisgICAgICogQHBhcmFtIHN0YXRlIGRlc2NyaWJlcyB3aGF0IHRoZSBsaWdodCBzaG91bGQgbG9vayBsaWtlLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHJlc3VsdCBvZiBhcHBseWluZyBzdGF0ZSB0cmFuc2Zvcm1hdGlvbi4KKyAgICAgKi8KKyAgICBzZXRMaWdodChUeXBlIHR5cGUsIExpZ2h0U3RhdGUgc3RhdGUpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBEaXNjb3ZlciB3aGF0IGluZGljYXRvciBsaWdodHMgYXJlIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdHlwZXMgbGlzdCBvZiBhdmFpbGFibGUgbGlnaHRzCisgICAgICovCisgICAgZ2V0U3VwcG9ydGVkVHlwZXMoKSBnZW5lcmF0ZXMgKHZlYzxUeXBlPiB0eXBlcyk7CisKK307CmRpZmYgLS1naXQgYS9saWdodC8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjQ0ZTY2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQ0IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBMaWdodC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmxvZyBcCisgICAgbGliY3V0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliYmFzZSBcCisgICAgbGliY3V0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wLXNlcnZpY2UucmMKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZGwgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgKz0gXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwIGIvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkZTE1MzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC8yLjAvZGVmYXVsdC9MaWdodC5jcHAKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImxpZ2h0IgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiTGlnaHQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBsaWdodCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGF0aWNfYXNzZXJ0KExJR0hUX0ZMQVNIX05PTkUgPT0gc3RhdGljX2Nhc3Q8aW50PihGbGFzaDo6Tk9ORSksCisgICAgIkZsYXNoOjpOT05FIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChMSUdIVF9GTEFTSF9USU1FRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KEZsYXNoOjpUSU1FRCksCisgICAgIkZsYXNoOjpUSU1FRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoTElHSFRfRkxBU0hfSEFSRFdBUkUgPT0gc3RhdGljX2Nhc3Q8aW50PihGbGFzaDo6SEFSRFdBUkUpLAorICAgICJGbGFzaDo6SEFSRFdBUkUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3N0YXRpY19hc3NlcnQoQlJJR0hUTkVTU19NT0RFX1VTRVIgPT0gc3RhdGljX2Nhc3Q8aW50PihCcmlnaHRuZXNzOjpVU0VSKSwKKyAgICAiQnJpZ2h0bmVzczo6VVNFUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQlJJR0hUTkVTU19NT0RFX1NFTlNPUiA9PSBzdGF0aWNfY2FzdDxpbnQ+KEJyaWdodG5lc3M6OlNFTlNPUiksCisgICAgIkJyaWdodG5lc3M6OlNFTlNPUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQlJJR0hUTkVTU19NT0RFX0xPV19QRVJTSVNURU5DRSA9PQorICAgIHN0YXRpY19jYXN0PGludD4oQnJpZ2h0bmVzczo6TE9XX1BFUlNJU1RFTkNFKSwKKyAgICAiQnJpZ2h0bmVzczo6TE9XX1BFUlNJU1RFTkNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitMaWdodDo6TGlnaHQoc3RkOjptYXA8VHlwZSwgbGlnaHRfZGV2aWNlX3QqPiAmJmxpZ2h0cykKKyAgOiBtTGlnaHRzKHN0ZDo6bW92ZShsaWdodHMpKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OklMaWdodCBmb2xsb3cuCitSZXR1cm48U3RhdHVzPiBMaWdodDo6c2V0TGlnaHQoVHlwZSB0eXBlLCBjb25zdCBMaWdodFN0YXRlJiBzdGF0ZSkgIHsKKyAgICBhdXRvIGl0ID0gbUxpZ2h0cy5maW5kKHR5cGUpOworCisgICAgaWYgKGl0ID09IG1MaWdodHMuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6TElHSFRfTk9UX1NVUFBPUlRFRDsKKyAgICB9CisKKyAgICBsaWdodF9kZXZpY2VfdCogaHdMaWdodCA9IGl0LT5zZWNvbmQ7CisKKyAgICBsaWdodF9zdGF0ZV90IGxlZ2FjeVN0YXRlIHsKKyAgICAgICAgLmNvbG9yID0gc3RhdGUuY29sb3IsCisgICAgICAgIC5mbGFzaE1vZGUgPSBzdGF0aWNfY2FzdDxpbnQ+KHN0YXRlLmZsYXNoTW9kZSksCisgICAgICAgIC5mbGFzaE9uTVMgPSBzdGF0ZS5mbGFzaE9uTXMsCisgICAgICAgIC5mbGFzaE9mZk1TID0gc3RhdGUuZmxhc2hPZmZNcywKKyAgICAgICAgLmJyaWdodG5lc3NNb2RlID0gc3RhdGljX2Nhc3Q8aW50PihzdGF0ZS5icmlnaHRuZXNzTW9kZSksCisgICAgfTsKKworICAgIGludCByZXQgPSBod0xpZ2h0LT5zZXRfbGlnaHQoaHdMaWdodCwgJmxlZ2FjeVN0YXRlKTsKKworICAgIHN3aXRjaCAocmV0KSB7CisgICAgICAgIGNhc2UgLUVOT1NZUzoKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OkJSSUdIVE5FU1NfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6U1VDQ0VTUzsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OlVOS05PV047CisgICAgfQorfQorCitSZXR1cm48dm9pZD4gTGlnaHQ6OmdldFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzX2NiIF9oaWRsX2NiKSAgeworICAgIFR5cGUgKnR5cGVzID0gbmV3IFR5cGVbbUxpZ2h0cy5zaXplKCldOworCisgICAgaW50IGlkeCA9IDA7CisgICAgZm9yKGF1dG8gY29uc3QgJnBhaXIgOiBtTGlnaHRzKSB7CisgICAgICAgIFR5cGUgdHlwZSA9IHBhaXIuZmlyc3Q7CisKKyAgICAgICAgdHlwZXNbaWR4KytdID0gdHlwZTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGhpZGxfdmVjPFR5cGU+IGhpZGxfdHlwZXN7fTsKKyAgICAgICAgaGlkbF90eXBlcy5zZXRUb0V4dGVybmFsKHR5cGVzLCBtTGlnaHRzLnNpemUoKSk7CisKKyAgICAgICAgX2hpZGxfY2IoaGlkbF90eXBlcyk7CisgICAgfQorCisgICAgZGVsZXRlW10gdHlwZXM7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitjb25zdCBzdGF0aWMgc3RkOjptYXA8VHlwZSwgY29uc3QgY2hhcio+IGtMb2dpY2FsTGlnaHRzID0geworICAgIHtUeXBlOjpCQUNLTElHSFQsICAgICBMSUdIVF9JRF9CQUNLTElHSFR9LAorICAgIHtUeXBlOjpLRVlCT0FSRCwgICAgICBMSUdIVF9JRF9LRVlCT0FSRH0sCisgICAge1R5cGU6OkJVVFRPTlMsICAgICAgIExJR0hUX0lEX0JVVFRPTlN9LAorICAgIHtUeXBlOjpCQVRURVJZLCAgICAgICBMSUdIVF9JRF9CQVRURVJZfSwKKyAgICB7VHlwZTo6Tk9USUZJQ0FUSU9OUywgTElHSFRfSURfTk9USUZJQ0FUSU9OU30sCisgICAge1R5cGU6OkFUVEVOVElPTiwgICAgIExJR0hUX0lEX0FUVEVOVElPTn0sCisgICAge1R5cGU6OkJMVUVUT09USCwgICAgIExJR0hUX0lEX0JMVUVUT09USH0sCisgICAge1R5cGU6OldJRkksICAgICAgICAgIExJR0hUX0lEX1dJRkl9Cit9OworCitsaWdodF9kZXZpY2VfdCogZ2V0TGlnaHREZXZpY2UoY29uc3QgY2hhciogbmFtZSkgeworICAgIGxpZ2h0X2RldmljZV90KiBsaWdodERldmljZTsKKyAgICBjb25zdCBod19tb2R1bGVfdCogaHdNb2R1bGUgPSBOVUxMOworCisgICAgaW50IHJldCA9IGh3X2dldF9tb2R1bGUgKExJR0hUU19IQVJEV0FSRV9NT0RVTEVfSUQsICZod01vZHVsZSk7CisgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgIHJldCA9IGh3TW9kdWxlLT5tZXRob2RzLT5vcGVuKGh3TW9kdWxlLCBuYW1lLAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod19kZXZpY2VfdCoqPigmbGlnaHREZXZpY2UpKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBBTE9HRSgibGlnaHRfb3BlbiAlcyAlcyBmYWlsZWQ6ICVkIiwgTElHSFRTX0hBUkRXQVJFX01PRFVMRV9JRCwgbmFtZSwgcmV0KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJod19nZXRfbW9kdWxlICVzICVzIGZhaWxlZDogJWQiLCBMSUdIVFNfSEFSRFdBUkVfTU9EVUxFX0lELCBuYW1lLCByZXQpOworICAgIH0KKworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXR1cm4gbGlnaHREZXZpY2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoIkxpZ2h0IHBhc3N0aHJvdWdoIGZhaWxlZCB0byBsb2FkIGxlZ2FjeSBIQUwuIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KK30KKworSUxpZ2h0KiBISURMX0ZFVENIX0lMaWdodChjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgc3RkOjptYXA8VHlwZSwgbGlnaHRfZGV2aWNlX3QqPiBsaWdodHM7CisKKyAgICBmb3IoYXV0byBjb25zdCAmcGFpciA6IGtMb2dpY2FsTGlnaHRzKSB7CisgICAgICAgIFR5cGUgdHlwZSA9IHBhaXIuZmlyc3Q7CisgICAgICAgIGNvbnN0IGNoYXIqIG5hbWUgPSBwYWlyLnNlY29uZDsKKworICAgICAgICBsaWdodF9kZXZpY2VfdCogbGlnaHQgPSBnZXRMaWdodERldmljZShuYW1lKTsKKworICAgICAgICBpZiAobGlnaHQgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgbGlnaHRzW3R5cGVdID0gbGlnaHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobGlnaHRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgIC8vIExvZyBpbmZvcm1hdGlvbiwgYnV0IHN0aWxsIHJldHVybiBuZXcgTGlnaHQuCisgICAgICAgIC8vIFNvbWUgZGV2aWNlcyBtYXkgbm90IGhhdmUgYW55IGxpZ2h0cy4KKyAgICAgICAgQUxPR0koIkNvdWxkIG5vdCBvcGVuIGFueSBsaWdodHMuIik7CisgICAgfQorCisgICAgcmV0dXJuIG5ldyBMaWdodChzdGQ6Om1vdmUobGlnaHRzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGxpZ2h0Cit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9saWdodC8yLjAvZGVmYXVsdC9MaWdodC5oIGIvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTg3MDM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9MSUdIVF9WMl8wX0xJR0hUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9MSUdIVF9WMl8wX0xJR0hUX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL0lMaWdodC5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvbGlnaHRzLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPG1hcD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBsaWdodCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6SUxpZ2h0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OkxpZ2h0U3RhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OlR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBMaWdodCA6IHB1YmxpYyBJTGlnaHQgeworICAgIExpZ2h0KHN0ZDo6bWFwPFR5cGUsIGxpZ2h0X2RldmljZV90Kj4gJiZsaWdodHMpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQgZm9sbG93LgorICAgIFJldHVybjxTdGF0dXM+IHNldExpZ2h0KFR5cGUgdHlwZSwgY29uc3QgTGlnaHRTdGF0ZSYgc3RhdGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkVHlwZXMoZ2V0U3VwcG9ydGVkVHlwZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdGQ6Om1hcDxUeXBlLCBsaWdodF9kZXZpY2VfdCo+IG1MaWdodHM7Cit9OworCitleHRlcm4gIkMiIElMaWdodCogSElETF9GRVRDSF9JTGlnaHQoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBsaWdodAorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfTElHSFRfVjJfMF9MSUdIVF9ICmRpZmYgLS1naXQgYS9saWdodC8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMC1zZXJ2aWNlLnJjIGIvbGlnaHQvMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzI4NGM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgbGlnaHQtaGFsLTItMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2xpZ2h0LzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwYWU1NjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JTGlnaHQuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElMaWdodD4oKTsKK30KZGlmZiAtLWdpdCBhL2xpZ2h0LzIuMC90eXBlcy5oYWwgYi9saWdodC8yLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3YjY3ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDsKKworZW51bSBTdGF0dXMgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTLAorICAgIExJR0hUX05PVF9TVVBQT1JURUQsCisgICAgQlJJR0hUTkVTU19OT1RfU1VQUE9SVEVELAorICAgIFVOS05PV04sCit9OworCitlbnVtIEZsYXNoIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogS2VlcCB0aGUgbGlnaHQgc3RlYWR5IG9uIG9yIG9mZi4KKyAgICAgKi8KKyAgICBOT05FLAorCisgICAgLyoqCisgICAgICogRmxhc2ggdGhlIGxpZ2h0IGF0IHNwZWNpZmllZCByYXRlLgorICAgICAqLworICAgIFRJTUVELAorCisgICAgLyoqCisgICAgICogRmxhc2ggdGhlIGxpZ2h0IHVzaW5nIGhhcmR3YXJlIGFzc2lzdC4KKyAgICAgKi8KKyAgICBIQVJEV0FSRSwKK307CisKK2VudW0gQnJpZ2h0bmVzcyA6IGludDMyX3QgeworICAgIC8qKgorICAgICAqIExpZ2h0IGJyaWdodG5lc3MgaXMgbWFuYWdlZCBieSBhIHVzZXIgc2V0dGluZy4KKyAgICAgKi8KKyAgICBVU0VSLAorCisgICAgLyoqCisgICAgICogTGlnaHQgYnJpZ2h0bmVzcyBpcyBtYW5hZ2VkIGJ5IGEgbGlnaHQgc2Vuc29yLgorICAgICAqLworICAgIFNFTlNPUiwKKworICAgIC8qKgorICAgICAqIFVzZSBhIGxvdy1wZXJzaXN0ZW5jZSBtb2RlIGZvciBkaXNwbGF5IGJhY2tsaWdodHMuCisgICAgICoKKyAgICAgKiBXaGVuIHNldCwgdGhlIGRldmljZSBkcml2ZXIgbXVzdCBzd2l0Y2ggdG8gYSBtb2RlIG9wdGltaXplZCBmb3IgbG93IGRpc3BsYXkKKyAgICAgKiBwZXJzaXN0ZW5jZSB0aGF0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2hlbiB0aGUgZGV2aWNlIGlzIGJlaW5nIHRyZWF0ZWQgYXMgYQorICAgICAqIGhlYWQgbW91bnRlZCBkaXNwbGF5IChITUQpLiBUaGUgYWN0dWFsIGRpc3BsYXkgYnJpZ2h0bmVzcyBpbiB0aGlzIG1vZGUgaXMKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQsIGFuZCBhbnkgdmFsdWUgc2V0IGZvciBjb2xvciBpbiBMaWdodFN0YXRlIG1heSBiZQorICAgICAqIG92ZXJyaWRkZW4gYnkgdGhlIEhBTCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKgorICAgICAqIEZvciBhbiBvcHRpbWFsIEhNRCB2aWV3aW5nIGV4cGVyaWVuY2UsIHRoZSBkaXNwbGF5IG11c3QgbWVldCB0aGUgZm9sbG93aW5nCisgICAgICogY3JpdGVyaWEgaW4gdGhpcyBtb2RlOgorICAgICAqIC0gR3JheS10by1HcmF5LCBXaGl0ZS10by1CbGFjaywgYW5kIEJsYWNrLXRvLVdoaXRlIHN3aXRjaGluZyB0aW1lIG11c3QgYmUg4omkIDMgbXMuCisgICAgICogLSBUaGUgZGlzcGxheSBtdXN0IHN1cHBvcnQgbG93LXBlcnNpc3RlbmNlIHdpdGgg4omkIDMuNSBtcyBwZXJzaXN0ZW5jZS4KKyAgICAgKiAgIFBlcnNpc3RlbmNlIGlzIGRlZmluZWQgYXMgdGhlIGFtb3VudCBvZiB0aW1lIGZvciB3aGljaCBhIHBpeGVsIGlzCisgICAgICogICBlbWl0dGluZyBsaWdodCBmb3IgYSBzaW5nbGUgZnJhbWUuCisgICAgICogLSBBbnkgInNtYXJ0IHBhbmVsIiBvciBvdGhlciBmcmFtZSBidWZmZXJpbmcgb3B0aW9ucyB0aGF0IGluY3JlYXNlIGRpc3BsYXkKKyAgICAgKiAgIGxhdGVuY3kgYXJlIGRpc2FibGVkLgorICAgICAqIC0gRGlzcGxheSBicmlnaHRuZXNzIGlzIHNldCBzbyB0aGF0IHRoZSBkaXNwbGF5IGlzIHN0aWxsIHZpc2libGUgdG8gdGhlIHVzZXIKKyAgICAgKiAgIHVuZGVyIG5vcm1hbCBpbmRvb3IgbGlnaHRpbmcuCisgICAgICogLSBUaGUgZGlzcGxheSBtdXN0IHVwZGF0ZSBhdCA2MCBIeiBhdCBsZWFzdCwgYnV0IGhpZ2hlciByZWZyZXNoIHJhdGVzIGFyZQorICAgICAqICAgcmVjb21tZW5kZWQgZm9yIGxvdyBsYXRlbmN5LgorICAgICAqCisgICAgICovCisgICAgTE9XX1BFUlNJU1RFTkNFLAorfTsKKworLyoqCisgKiBUaGVzZSBsaWdodCBJRHMgY29ycmVzcG9uZCB0byBsb2dpY2FsIGxpZ2h0cywgbm90IHBoeXNpY2FsLgorICogU28gZm9yIGV4YW1wbGUsIGlmIHlvdXIgSU5ESUNBVE9SIGxpZ2h0IGlzIGluIGxpbmUgd2l0aCB5b3VyCisgKiBCVVRUT05TLCBpdCBtaWdodCBtYWtlIHNlbnNlIHRvIGFsc28gbGlnaHQgdGhlIElORElDQVRPUgorICogbGlnaHQgdG8gYSByZWFzb25hYmxlIGNvbG9yIHdoZW4gdGhlIEJVVFRPTlMgYXJlIGxpdC4KKyAqLworZW51bSBUeXBlIDogaW50MzJfdCB7CisgICAgQkFDS0xJR0hULAorICAgIEtFWUJPQVJELAorICAgIEJVVFRPTlMsCisgICAgQkFUVEVSWSwKKyAgICBOT1RJRklDQVRJT05TLAorICAgIEFUVEVOVElPTiwKKyAgICBCTFVFVE9PVEgsCisgICAgV0lGSSwKKworICAgIENPVU5ULAorfTsKKworLyoqCisgKiBUaGUgcGFyYW1ldGVycyB0aGF0IGNhbiBiZSBzZXQgZm9yIGEgZ2l2ZW4gbGlnaHQuCisgKgorICogTm90IGFsbCBsaWdodHMgbXVzdCBzdXBwb3J0IGFsbCBwYXJhbWV0ZXJzLiBJZiB5b3UKKyAqIGNhbiBkbyBzb21ldGhpbmcgYmFja3dhcmQtY29tcGF0aWJsZSwgZG8gaXQuCisgKi8KK3N0cnVjdCBMaWdodFN0YXRlIHsKKyAgICAvKioKKyAgICAgKiBUaGUgY29sb3Igb2YgdGhlIExFRCBpbiBBUkdCLgorICAgICAqCisgICAgICogRG8geW91ciBiZXN0IGhlcmUuCisgICAgICogICAtIElmIHlvdXIgbGlnaHQgY2FuIG9ubHkgZG8gcmVkIG9yIGdyZWVuLCBpZiB0aGV5IGFzayBmb3IgYmx1ZSwKKyAgICAgKiAgICAgeW91IHNob3VsZCBkbyBncmVlbi4KKyAgICAgKiAgIC0gSWYgeW91IGNhbiBvbmx5IGRvIGEgYnJpZ2h0bmVzcyByYW1wLCB0aGVuIHVzZSB0aGlzIGZvcm11bGE6CisgICAgICogICAgICB1bnNpZ25lZCBjaGFyIGJyaWdodG5lc3MgPSAoKDc3KigoY29sb3I+PjE2KSYweDAwZmYpKQorICAgICAqICAgICAgICAgICAgICArICgxNTAqKChjb2xvcj4+OCkmMHgwMGZmKSkgKyAoMjkqKGNvbG9yJjB4MDBmZikpKSA+PiA4OworICAgICAqICAgLSBJZiB5b3UgY2FuIG9ubHkgZG8gb24gb3Igb2ZmLCAwIGlzIG9mZiwgYW55dGhpbmcgZWxzZSBpcyBvbi4KKyAgICAgKgorICAgICAqIFRoZSBoaWdoIGJ5dGUgc2hvdWxkIGJlIGlnbm9yZWQuIENhbGxlcnMgd2lsbCBzZXQgaXQgdG8gMHhmZiAod2hpY2gKKyAgICAgKiB3b3VsZCBjb3JyZXNwb25kIHRvIDI1NSBhbHBoYSkuCisgICAgICovCisgICAgdWludDMyX3QgY29sb3I7CisKKyAgICAvKioKKyAgICAgKiBUbyBmbGFzaCB0aGUgbGlnaHQgYXQgYSBnaXZlbiByYXRlLCBzZXQgZmxhc2hNb2RlIHRvIExJR0hUX0ZMQVNIX1RJTUVELAorICAgICAqIGFuZCB0aGVuIGZsYXNoT25NUyBzaG91bGQgYmUgc2V0IHRvIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHR1cm4KKyAgICAgKiB0aGUgbGlnaHQgb24sIGZvbGxvd2VkIGJ5IHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHR1cm4gdGhlIGxpZ2h0CisgICAgICogb2ZmLgorICAgICAqLworICAgIEZsYXNoIGZsYXNoTW9kZTsKKworICAgIGludDMyX3QgZmxhc2hPbk1zOworICAgIGludDMyX3QgZmxhc2hPZmZNczsKKworICAgIEJyaWdodG5lc3MgYnJpZ2h0bmVzc01vZGU7Cit9OwpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL3Z0cy9BbmRyb2lkLm1rIGIvbGlnaHQvMi4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4OTUwM2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC8yLjAvdnRzL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9saWdodC8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTU4ZmYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNCBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbExpZ2h0VjJfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbExpZ2h0VjJfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CisKZGlmZiAtLWdpdCBhL2xpZ2h0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxMaWdodFYyXzBUYXJnZXRUZXN0LmNwcCBiL2xpZ2h0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxMaWdodFYyXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDA1NDIyCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbExpZ2h0VjJfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJsaWdodF9oaWRsX2hhbF90ZXN0IgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JTGlnaHQuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OkJyaWdodG5lc3M7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6Rmxhc2g7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6SUxpZ2h0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OkxpZ2h0U3RhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OlR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisjZGVmaW5lIEFTU0VSVF9PSyhyZXQpIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpCisjZGVmaW5lIEVYUEVDVF9PSyhyZXQpIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpCisKK2NvbnN0IHN0YXRpYyBMaWdodFN0YXRlIGtXaGl0ZSA9IHsKKyAgICAuY29sb3IgPSAweEZGRkZGRkZGLAorICAgIC5mbGFzaE1vZGUgPSBGbGFzaDo6VElNRUQsCisgICAgLmZsYXNoT25NcyA9IDEwMCwKKyAgICAuZmxhc2hPZmZNcyA9IDUwLAorICAgIC5icmlnaHRuZXNzTW9kZSA9IEJyaWdodG5lc3M6OlVTRVIsCit9OworCitjb25zdCBzdGF0aWMgTGlnaHRTdGF0ZSBrTG93UGVyc2lzdGFuY2UgPSB7CisgICAgLmNvbG9yID0gMHhGRjEyMzQ1NiwKKyAgICAuZmxhc2hNb2RlID0gRmxhc2g6OlRJTUVELAorICAgIC5mbGFzaE9uTXMgPSAxMDAsCisgICAgLmZsYXNoT2ZmTXMgPSA1MCwKKyAgICAuYnJpZ2h0bmVzc01vZGUgPSBCcmlnaHRuZXNzOjpMT1dfUEVSU0lTVEVOQ0UsCit9OworCitjb25zdCBzdGF0aWMgTGlnaHRTdGF0ZSBrT2ZmID0geworICAgIC5jb2xvciA9IDB4MDAwMDAwMDAsCisgICAgLmZsYXNoTW9kZSA9IEZsYXNoOjpOT05FLAorICAgIC5mbGFzaE9uTXMgPSAwLAorICAgIC5mbGFzaE9mZk1zID0gMCwKKyAgICAuYnJpZ2h0bmVzc01vZGUgPSBCcmlnaHRuZXNzOjpVU0VSLAorfTsKKworY29uc3Qgc3RhdGljIHN0ZDo6c2V0PFR5cGU+IGtBbGxUeXBlcyA9IHsKKyAgICBUeXBlOjpCQUNLTElHSFQsCisgICAgVHlwZTo6S0VZQk9BUkQsCisgICAgVHlwZTo6QlVUVE9OUywKKyAgICBUeXBlOjpCQVRURVJZLAorICAgIFR5cGU6Ok5PVElGSUNBVElPTlMsCisgICAgVHlwZTo6QVRURU5USU9OLAorICAgIFR5cGU6OkJMVUVUT09USCwKKyAgICBUeXBlOjpXSUZJCit9OworCitjbGFzcyBMaWdodEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGxpZ2h0ID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUxpZ2h0PigpOworCisgICAgICAgIEFTU0VSVF9ORShsaWdodCwgbnVsbHB0cik7CisgICAgICAgIExPRyhJTkZPKSA8PCAiVGVzdCBpcyByZW1vdGUgIiA8PCBsaWdodC0+aXNSZW1vdGUoKTsKKworICAgICAgICBBU1NFUlRfT0sobGlnaHQtPmdldFN1cHBvcnRlZFR5cGVzKFt0aGlzXShjb25zdCBoaWRsX3ZlYzxUeXBlPiAmdHlwZXMpIHsKKyAgICAgICAgICAgIHN1cHBvcnRlZFR5cGVzID0gdHlwZXM7CisgICAgICAgIH0pKTsKKyAgICB9CisKKyAgICBzcDxJTGlnaHQ+IGxpZ2h0OworICAgIHN0ZDo6dmVjdG9yPFR5cGU+IHN1cHBvcnRlZFR5cGVzOworCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBmb3IgKGNvbnN0IFR5cGUmIHR5cGU6IHN1cHBvcnRlZFR5cGVzKSB7CisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXQgPSBsaWdodC0+c2V0TGlnaHQodHlwZSwga09mZik7CisgICAgICAgICAgICBFWFBFQ1RfT0socmV0KTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OlNVQ0NFU1MsIHN0YXRpY19jYXN0PFN0YXR1cz4ocmV0KSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBtdXN0IGxlYXZlIHRoZSBkZXZpY2UgaW4gYSB1c2VhYmxlIGNvbmRpdGlvbgorICAgICAgICBpZiAoc3RkOjpmaW5kKHN1cHBvcnRlZFR5cGVzLmJlZ2luKCksCisgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkVHlwZXMuZW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgVHlwZTo6QkFDS0xJR0hUKSAhPSBzdXBwb3J0ZWRUeXBlcy5lbmQoKSkgeworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0ID0gbGlnaHQtPnNldExpZ2h0KFR5cGU6OkJBQ0tMSUdIVCwga1doaXRlKTsKKyAgICAgICAgICAgIEVYUEVDVF9PSyhyZXQpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6U1VDQ0VTUywgc3RhdGljX2Nhc3Q8U3RhdHVzPihyZXQpKTsKKyAgICAgICAgfQorICAgIH0KKworfTsKKworLyoqCisgKiBFbnN1cmUgYWxsIGxpZ2h0cyB3aGljaCBhcmUgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkIHdvcmsuCisgKi8KK1RFU1RfRihMaWdodEhpZGxUZXN0LCBUZXN0U3VwcG9ydGVkKSB7CisgICAgZm9yIChjb25zdCBUeXBlJiB0eXBlOiBzdXBwb3J0ZWRUeXBlcykgeworICAgICAgICBSZXR1cm48U3RhdHVzPiByZXQgPSBsaWdodC0+c2V0TGlnaHQodHlwZSwga1doaXRlKTsKKyAgICAgICAgRVhQRUNUX09LKHJldCk7CisgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OlNVQ0NFU1MsIHN0YXRpY19jYXN0PFN0YXR1cz4ocmV0KSk7CisgICAgfQorfQorCisvKioKKyAqIEVuc3VyZSBCUklHSFRORVNTX05PVF9TVVBQT1JURUQgaXMgcmV0dXJuZWQgaWYgTE9XX1BFUlNJU1RBTkNFIGlzIG5vdCBzdXBwb3J0ZWQuCisgKi8KK1RFU1RfRihMaWdodEhpZGxUZXN0LCBUZXN0TG93UGVyc2lzdGFuY2UpIHsKKyAgICBmb3IgKGNvbnN0IFR5cGUmIHR5cGU6IHN1cHBvcnRlZFR5cGVzKSB7CisgICAgICAgIFJldHVybjxTdGF0dXM+IHJldCA9IGxpZ2h0LT5zZXRMaWdodCh0eXBlLCBrTG93UGVyc2lzdGFuY2UpOworICAgICAgICBFWFBFQ1RfT0socmV0KTsKKworICAgICAgICBTdGF0dXMgc3RhdHVzID0gcmV0OworICAgICAgICBFWFBFQ1RfVFJVRShTdGF0dXM6OlNVQ0NFU1MgPT0gc3RhdHVzIHx8CisgICAgICAgICAgICAgICAgICAgIFN0YXR1czo6QlJJR0hUTkVTU19OT1RfU1VQUE9SVEVEID09IHN0YXR1cyk7CisgICAgfQorfQorCisvKioKKyAqIEVuc3VyZSBsaWdodHMgd2hpY2ggYXJlIG5vdCBzdXBwb3J0ZWQgcmV0dXJuIExJR0hUX05PVF9TVVBQT1JURUQKKyAqLworVEVTVF9GKExpZ2h0SGlkbFRlc3QsIFRlc3RVbnN1cHBvcnRlZCkgeworICAgIHN0ZDo6c2V0PFR5cGU+IHVuc3VwcG9ydGVkVHlwZXMgPSBrQWxsVHlwZXM7CisgICAgZm9yIChjb25zdCBUeXBlJiB0eXBlOiBzdXBwb3J0ZWRUeXBlcykgeworICAgICAgICB1bnN1cHBvcnRlZFR5cGVzLmVyYXNlKHR5cGUpOworICAgIH0KKworICAgIGZvciAoY29uc3QgVHlwZSYgdHlwZTogdW5zdXBwb3J0ZWRUeXBlcykgeworICAgICAgICBSZXR1cm48U3RhdHVzPiByZXQgPSBsaWdodC0+c2V0TGlnaHQodHlwZSwga1doaXRlKTsKKyAgICAgICAgRVhQRUNUX09LKHJldCk7CisgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkxJR0hUX05PVF9TVVBQT1JURUQsIHN0YXRpY19jYXN0PFN0YXR1cz4ocmV0KSk7CisgICAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICAgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvbGlnaHQvQW5kcm9pZC5icCBiL2xpZ2h0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQyYzk4NgotLS0gL2Rldi9udWxsCisrKyBiL2xpZ2h0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIyLjAiLAorICAgICIyLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvbWVkaWEvMS4wL0FuZHJvaWQuYnAgYi9tZWRpYS8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWVlYjNmCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1OCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhLzEuMC90eXBlcy5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvMS4wL2h3dHlwZXMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9tZWRpYS8xLjAvQW5kcm9pZC5tayBiL21lZGlhLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjNDRiOWUKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE0IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBtZWRpYV9wcm9maWxlc19WMV8wLmR0ZAorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFIDo9IG1lZGlhX3Byb2ZpbGVzX1YxXzAuZHRkCitMT0NBTF9TUkNfRklMRVMgOj0gbWVkaWFfcHJvZmlsZXMuZHRkCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gRVRDCitMT0NBTF9NT0RVTEVfUEFUSCA6PSAkKFRBUkdFVF9PVVRfRVRDKQorCitpbmNsdWRlICQoQlVJTERfUFJFQlVJTFQpCisKZGlmZiAtLWdpdCBhL21lZGlhLzEuMC9tZWRpYV9wcm9maWxlcy5kdGQgYi9tZWRpYS8xLjAvbWVkaWFfcHJvZmlsZXMuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwOTAwZTAKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS8xLjAvbWVkaWFfcHJvZmlsZXMuZHRkCkBAIC0wLDAgKzEsNTYgQEAKKzwhRUxFTUVOVCBNZWRpYVNldHRpbmdzIChDYW1jb3JkZXJQcm9maWxlcyssCisgICAgICAgICAgICAgICAgICAgICAgICAgRW5jb2Rlck91dHB1dEZpbGVGb3JtYXQrLAorICAgICAgICAgICAgICAgICAgICAgICAgIFZpZGVvRW5jb2RlckNhcCssCisgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9FbmNvZGVyQ2FwKywKKyAgICAgICAgICAgICAgICAgICAgICAgICBWaWRlb0RlY29kZXJDYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9EZWNvZGVyQ2FwKT4KKzwhRUxFTUVOVCBDYW1jb3JkZXJQcm9maWxlcyAoRW5jb2RlclByb2ZpbGV8SW1hZ2VFbmNvZGluZ3xJbWFnZURlY29kaW5nfENhbWVyYSkrPgorPCFBVFRMSVNUIENhbWNvcmRlclByb2ZpbGVzIGNhbWVyYUlkICgwfDEpICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBFbmNvZGVyUHJvZmlsZSAoVmlkZW8sIEF1ZGlvKT4KKzwhQVRUTElTVCBFbmNvZGVyUHJvZmlsZSBxdWFsaXR5IENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBFbmNvZGVyUHJvZmlsZSBmaWxlRm9ybWF0IChtcDR8M2dwKSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgRW5jb2RlclByb2ZpbGUgZHVyYXRpb24gKDMwfDYwKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgVmlkZW8gRU1QVFk+Cis8IUFUVExJU1QgVmlkZW8gY29kZWMgKGgyNjR8aDI2M3xtNHYpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlbyBiaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlbyB3aWR0aCBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW8gaGVpZ2h0IENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlbyBmcmFtZVJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFFTEVNRU5UIEF1ZGlvIEVNUFRZPgorPCFBVFRMSVNUIEF1ZGlvIGNvZGVjIChhbXJuYnxhbXJ3YnxhYWMpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpbyBiaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpbyBzYW1wbGVSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpbyBjaGFubmVscyAoMXwyKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgSW1hZ2VFbmNvZGluZyBFTVBUWT4KKzwhQVRUTElTVCBJbWFnZUVuY29kaW5nIHF1YWxpdHkgKDk1fDkwfDgwfDcwfDYwfDUwfDQwKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgSW1hZ2VEZWNvZGluZyBFTVBUWT4KKzwhQVRUTElTVCBJbWFnZURlY29kaW5nIG1lbUNhcCBDREFUQSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgQ2FtZXJhIEVNUFRZPgorPCFFTEVNRU5UIEVuY29kZXJPdXRwdXRGaWxlRm9ybWF0IEVNUFRZPgorPCFBVFRMSVNUIEVuY29kZXJPdXRwdXRGaWxlRm9ybWF0IG5hbWUgKG1wNHwzZ3ApICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBWaWRlb0VuY29kZXJDYXAgRU1QVFk+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG5hbWUgKGhldmN8aDI2NHxoMjYzfG00dnx3bXYpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0VuY29kZXJDYXAgZW5hYmxlZCAodHJ1ZXxmYWxzZSkgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBtaW5CaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0VuY29kZXJDYXAgbWF4Qml0UmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG1pbkZyYW1lV2lkdGggQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBtYXhGcmFtZVdpZHRoIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0VuY29kZXJDYXAgbWluRnJhbWVIZWlnaHQgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBtYXhGcmFtZUhlaWdodCBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG1pbkZyYW1lUmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG1heEZyYW1lUmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgQXVkaW9FbmNvZGVyQ2FwIEVNUFRZPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBuYW1lIChhbXJuYnxhbXJ3YnxhYWN8d21hfGhlYWFjfGFhY2VsZCkgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBlbmFibGVkICh0cnVlfGZhbHNlKSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW9FbmNvZGVyQ2FwIG1pbkJpdFJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBtYXhCaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpb0VuY29kZXJDYXAgbWluU2FtcGxlUmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW9FbmNvZGVyQ2FwIG1heFNhbXBsZVJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBtaW5DaGFubmVscyAoMXwyKSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW9FbmNvZGVyQ2FwIG1heENoYW5uZWxzICgxfDIpICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBWaWRlb0RlY29kZXJDYXAgRU1QVFk+Cis8IUFUVExJU1QgVmlkZW9EZWNvZGVyQ2FwIG5hbWUgKHdtdikgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRGVjb2RlckNhcCBlbmFibGVkICh0cnVlfGZhbHNlKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgQXVkaW9EZWNvZGVyQ2FwIEVNUFRZPgorPCFBVFRMSVNUIEF1ZGlvRGVjb2RlckNhcCBuYW1lICh3bWEpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpb0RlY29kZXJDYXAgZW5hYmxlZCAodHJ1ZXxmYWxzZSkgI1JFUVVJUkVEPgpkaWZmIC0tZ2l0IGEvbWVkaWEvMS4wL3R5cGVzLmhhbCBiL21lZGlhLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIxYTczYgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OlBpeGVsRm9ybWF0OworCisvKioKKyAqIEFsaWFzZXMKKyAqLwordHlwZWRlZiBoYW5kbGUgRmlsZURlc2NyaXB0b3I7IC8vIFRoaXMgbXVzdCBoYXZlIG5vIG1vcmUgdGhhbiBvbmUgZmQuCit0eXBlZGVmIEZpbGVEZXNjcmlwdG9yIEZlbmNlOwordHlwZWRlZiB2ZWM8dWludDhfdD4gQnl0ZXM7CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL3VpL0dyYXBoaWNCdWZmZXIuaAorICogUmVmOiBzeXN0ZW0vY29yZS9pbmNsdWRlL3N5c3RlbS93aW5kb3cuaDogQU5hdGl2ZVdpbmRvd0J1ZmZlcgorICovCisKKy8qKgorICogVGhpcyBzdHJ1Y3QgY29udGFpbnMgYXR0cmlidXRlcyBmb3IgYSBncmFsbG9jIGJ1ZmZlciB0aGF0IGNhbiBiZSBwdXQgaW50byBhCisgKiB1bmlvbi4KKyAqLworc3RydWN0IEFud0J1ZmZlckF0dHJpYnV0ZXMgeworICAgIHVpbnQzMl90IHdpZHRoOworICAgIHVpbnQzMl90IGhlaWdodDsKKyAgICB1aW50MzJfdCBzdHJpZGU7CisgICAgUGl4ZWxGb3JtYXQgZm9ybWF0OworICAgIHVpbnQzMl90IHVzYWdlOyAvLyBUT0RPOiBjb252ZXJ0IHRvIGFuIGVudW0KKyAgICB1aW50MzJfdCBnZW5lcmF0aW9uTnVtYmVyOworICAgIHVpbnQ2NF90IGxheWVyQ291bnQ7CisgICAgdWludDY0X3QgaWQ7Cit9OworCisvKioKKyAqIEFuIEFud0J1ZmZlciBpcyBzaW1wbHkgQW53QnVmZmVyQXR0cmlidXRlcyBwbHVzIGEgbmF0aXZlIGhhbmRsZS4KKyAqLworc3RydWN0IEFud0J1ZmZlciB7CisgICAgaGFuZGxlIG5hdGl2ZUhhbmRsZTsKKyAgICBBbndCdWZmZXJBdHRyaWJ1dGVzIGF0dHI7Cit9OworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9hbmRyb2lkL3JlY3QuaAorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL3VpL1JlY3QuaAorICovCitzdHJ1Y3QgUmVjdCB7CisgICAgaW50MzJfdCBsZWZ0OworICAgIGludDMyX3QgdG9wOworICAgIGludDMyX3QgcmlnaHQ7CisgICAgaW50MzJfdCBib3R0b207Cit9OworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS91aS9SZWdpb24uaAorICovCit0eXBlZGVmIHZlYzxSZWN0PiBSZWdpb247CisKZGlmZiAtLWdpdCBhL21lZGlhL0FuZHJvaWQuYnAgYi9tZWRpYS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNWE2MDkKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsOSBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMS4wIiwKKyAgICAib214LzEuMCIsCisgICAgIm9teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8iLAorICAgICJvbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbXBvbmVudCIsCisgICAgIm9teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyIiwKKyAgICAib214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlbyIsCitdCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL0FuZHJvaWQuYnAgYi9tZWRpYS9vbXgvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU1NTI3ZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDEwNCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUdyYXBoaWNCdWZmZXJTb3VyY2UuaGFsIiwKKyAgICAgICAgIklPbXguaGFsIiwKKyAgICAgICAgIklPbXhCdWZmZXJTb3VyY2UuaGFsIiwKKyAgICAgICAgIklPbXhOb2RlLmhhbCIsCisgICAgICAgICJJT214T2JzZXJ2ZXIuaGFsIiwKKyAgICAgICAgIklPbXhTdG9yZS5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvR3JhcGhpY0J1ZmZlclNvdXJjZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL09teEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL09teEJ1ZmZlclNvdXJjZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL09teE5vZGVBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9PbXhPYnNlcnZlckFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL09teFN0b3JlQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lHcmFwaGljQnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lId0dyYXBoaWNCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQm5Id0dyYXBoaWNCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnBId0dyYXBoaWNCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnNHcmFwaGljQnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSUh3T214LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JuSHdPbXguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnBId09teC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cc09teC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214QnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lId09teEJ1ZmZlclNvdXJjZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cbkh3T214QnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JwSHdPbXhCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnNPbXhCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSUh3T214Tm9kZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cbkh3T214Tm9kZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9CcEh3T214Tm9kZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cc09teE5vZGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lId09teE9ic2VydmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JuSHdPbXhPYnNlcnZlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9CcEh3T214T2JzZXJ2ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnNPbXhPYnNlcnZlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214U3RvcmUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSUh3T214U3RvcmUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQm5Id09teFN0b3JlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JwSHdPbXhTdG9yZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cc09teFN0b3JlLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvSUdyYXBoaWNCdWZmZXJTb3VyY2UuaGFsIGIvbWVkaWEvb214LzEuMC9JR3JhcGhpY0J1ZmZlclNvdXJjZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0ZDBjYgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSUdyYXBoaWNCdWZmZXJTb3VyY2UuaGFsCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6RGF0YXNwYWNlOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OnR5cGVzOworCitpbXBvcnQgSU9teE5vZGU7CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL2F2L21lZGlhL2xpYm1lZGlhL2FpZGwvYW5kcm9pZC9JR3JhcGhpY0J1ZmZlclNvdXJjZS5haWRsCisgKgorICogVE9ETzogQWRkIGRvY3VtZW50YXRpb25zLgorICovCitpbnRlcmZhY2UgSUdyYXBoaWNCdWZmZXJTb3VyY2UgeworCisgICAgY29uZmlndXJlKElPbXhOb2RlIG9teE5vZGUsIERhdGFzcGFjZSBkYXRhc3BhY2UpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICBzZXRTdXNwZW5kKGJvb2wgc3VzcGVuZCwgaW50NjRfdCB0aW1lVXMpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICBzZXRSZXBlYXRQcmV2aW91c0ZyYW1lRGVsYXlVcyhpbnQ2NF90IHJlcGVhdEFmdGVyVXMpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICBzZXRNYXhGcHMoZmxvYXQgbWF4RnBzKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgc2V0VGltZUxhcHNlQ29uZmlnKGRvdWJsZSBmcHMsIGRvdWJsZSBjYXB0dXJlRnBzKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgc2V0U3RhcnRUaW1lVXMoaW50NjRfdCBzdGFydFRpbWVVcykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIHNldFN0b3BUaW1lVXMoaW50NjRfdCBzdG9wVGltZVVzKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgZ2V0U3RvcFRpbWVPZmZzZXRVcygpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgaW50NjRfdCBzdG9wVGltZU9mZnNldFVzKTsKKworICAgIHNldENvbG9yQXNwZWN0cyhDb2xvckFzcGVjdHMgYXNwZWN0cykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIHNldFRpbWVPZmZzZXRVcyhpbnQ2NF90IHRpbWVPZmZzZXRVcykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIHNpZ25hbEVuZE9mSW5wdXRTdHJlYW0oKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCit9OworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL0lPbXguaGFsIGIvbWVkaWEvb214LzEuMC9JT214LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWZjNDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC9JT214LmhhbApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMDo6SUdyYXBoaWNCdWZmZXJQcm9kdWNlcjsKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMDo6dHlwZXM7CisKK2ltcG9ydCBJT214Tm9kZTsKK2ltcG9ydCBJT214T2JzZXJ2ZXI7CitpbXBvcnQgSUdyYXBoaWNCdWZmZXJTb3VyY2U7CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvbWVkaWEvSU9NWC5oOiBJT01YCisgKgorICogSU9teCBoYXMgdGhlIGFiaWxpdHkgdG8gY3JlYXRlIE9NWCBub2Rlcy4KKyAqLworaW50ZXJmYWNlIElPbXggeworCisgICAgLyoqCisgICAgICogSW5mb3JtYXRpb24gZm9yIGFuIElPbXhOb2RlIGNvbXBvbmVudC4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgQ29tcG9uZW50SW5mbyB7CisgICAgICAgIHN0cmluZyBtTmFtZTsKKyAgICAgICAgdmVjPHN0cmluZz4gbVJvbGVzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBMaXN0IGF2YWlsYWJsZSBjb21wb25lbnRzLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIG5vZGVMaXN0IFRoZSBsaXN0IG9mIENvbXBvbmVudEluZm8uCisgICAgICovCisgICAgbGlzdE5vZGVzKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgdmVjPENvbXBvbmVudEluZm8+IG5vZGVMaXN0CisgICAgICAgICk7CisKKworICAgIC8qKgorICAgICAqIEFsbG9jYXRlIGFuIElPbXhOb2RlIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBub2RlIG5hbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgbm9kZSB0byBjcmVhdGUuCisgICAgICogQHBhcmFtIG9ic2VydmVyIEFuIG9ic2VydmVyIG9iamVjdCB0aGF0IHdpbGwgcmVjZWl2ZSBtZXNzYWdlcyBmcm9tCisgICAgICogdGhlIGNyZWF0ZWQgaW5zdGFuY2UuCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIG9teE5vZGUgVGhlIGFsbG9jYXRlZCBpbnN0YW5jZSBvZiBgSU9teE5vZGVgLgorICAgICAqLworICAgIGFsbG9jYXRlTm9kZSgKKyAgICAgICAgICAgIHN0cmluZyBuYW1lLAorICAgICAgICAgICAgSU9teE9ic2VydmVyIG9ic2VydmVyCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBJT214Tm9kZSBvbXhOb2RlCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gaW5wdXQgc3VyZmFjZSBmb3IgcmVjb3JkaW5nLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIHByb2R1Y2VyIFRoZSBhc3NvY2lhdGVkIHByb2R1Y2VyIGVuZCBvZiB0aGUgYnVmZmVyIHF1ZXVlLgorICAgICAqIEByZXR1cm4gc291cmNlIFRoZSBhc3NvY2lhdGVkIGBJR3JhcGhpY0J1ZmZlclNvdXJjZWAuCisgICAgICovCisgICAgY3JlYXRlSW5wdXRTdXJmYWNlKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgSUdyYXBoaWNCdWZmZXJQcm9kdWNlciBwcm9kdWNlciwKKyAgICAgICAgICAgIElHcmFwaGljQnVmZmVyU291cmNlIHNvdXJjZQorICAgICAgICApOworfTsKKwpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC9JT214QnVmZmVyU291cmNlLmhhbCBiL21lZGlhL29teC8xLjAvSU9teEJ1ZmZlclNvdXJjZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRjNDNmYwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSU9teEJ1ZmZlclNvdXJjZS5oYWwKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OnR5cGVzOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9tZWRpYS9saWJtZWRpYS9haWRsL2FuZHJvaWQvSU9NWEJ1ZmZlclNvdXJjZS5haWRsCisgKgorICogSU9teEJ1ZmZlclNvdXJjZSBpcyBhbiBpbnRlcmZhY2UgZm9yIGEgbGlzdGVuZXIgZm9yIGNlcnRhaW4gZXZlbnRzIGZyb20gYW4KKyAqIElPbXhOb2RlIGluc3RhbmNlLiBVc2UgSU9teE5vZGU6OnNldElucHV0U3VyZmFjZSgpIHRvIGF0dGFjaCBhbgorICogSU9teEJ1ZmZlclNvdXJjZSBpbnN0YW5jZSB0byBhbiBJT214Tm9kZSBpbnN0YW5jZS4KKyAqCisgKiBAc2VlIE9NWF9TVEFURVRZUEUgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgKi8KK2ludGVyZmFjZSBJT214QnVmZmVyU291cmNlIHsKKworICAgIC8qKgorICAgICAqIG9uT214RXhlY3V0aW5nKCkgaXMgaW52b2tlZCB3aGVuIHRoZSBub2RlIHN0YXRlIGNoYW5nZXMgdG8KKyAgICAgKiBPTVhfU3RhdGVFeGVjdXRpbmcgc3RhdGUuCisgICAgICovCisgICAgb25ld2F5IG9uT214RXhlY3V0aW5nKCk7CisKKyAgICAvKioKKyAgICAgKiBvbk9teElkbGUoKSBpcyBpbnZva2VkIHdoZW4gdGhlIG5vZGUgdHJhbnNpdGlvbnMgZnJvbSBPTVhfU3RhdGVFeGVjdXRpbmcKKyAgICAgKiB0byBPTVhfU3RhdGVJZGxlLgorICAgICAqLworICAgIG9uZXdheSBvbk9teElkbGUoKTsKKworICAgIC8qKgorICAgICAqIG9uT214TG9hZGVkKCkgaXMgaW52b2tlZCB3aGVuIHRoZSBub2RlIHRyYW5zaXRpb25zIGZyb20gT01YX1N0YXRlSWRsZSBvcgorICAgICAqIE9NWF9TdGF0ZUV4ZWN1dGluZyB0byBPTVhfU3RhdGVMb2FkZWQuCisgICAgICovCisgICAgb25ld2F5IG9uT214TG9hZGVkKCk7CisKKyAgICAvKioKKyAgICAgKiBvbklucHV0QnVmZmVyQWRkZWQoKSBpcyBpbnZva2VkIGFmdGVyIGEgbmV3IGlucHV0IGJ1ZmZlciBpcyBhZGRlZCB0byB0aGUKKyAgICAgKiBub2RlLiBUaGlzIG1heSBoYXBwZW4gd2l0aGluIElPbXhOb2RlOjphbGxvY2F0ZVNlY3VyZUJ1ZmZlcigpIG9yCisgICAgICogSU9teE5vZGU6OnVzZUJ1ZmZlcigpLgorICAgICAqCisgICAgICogQHBhcmFtW2luXSBidWZmZXIgaXMgdGhlIGlkIG9mIHRoZSBhZGRlZCBidWZmZXIuCisgICAgICovCisgICAgb25ld2F5IG9uSW5wdXRCdWZmZXJBZGRlZChCdWZmZXJJZCBidWZmZXIpOworCisgICAgLyoqCisgICAgICogb25JbnB1dEJ1ZmZlckVtcHRpZWQoKSBpcyBpbnZva2VkIGFmdGVyIGFuIGlucHV0IGJ1ZmZlciBpcyBlbXB0aWVkLiBUaGlzCisgICAgICogbWF5IGhhcHBlbiB3aXRoaW4gSU9teE5vZGU6OmVtcHR5QnVmZmVyKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW1baW5dIGJ1ZmZlciBpcyB0aGUgaWQgb2YgdGhlIGVtcHRpZWQgYnVmZmVyLgorICAgICAqIEBwYXJhbVtpbl0gZmVuY2UgaXMgdGhlIGZlbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgYnVmZmVyLgorICAgICAqLworICAgIG9uZXdheSBvbklucHV0QnVmZmVyRW1wdGllZChCdWZmZXJJZCBidWZmZXIsIEZlbmNlIGZlbmNlKTsKK307CisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvSU9teE5vZGUuaGFsIGIvbWVkaWEvb214LzEuMC9JT214Tm9kZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFjMGRhMwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSU9teE5vZGUuaGFsCkBAIC0wLDAgKzEsMzU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA7CisKK2ltcG9ydCBJT214QnVmZmVyU291cmNlOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OnR5cGVzOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9pbmNsdWRlL21lZGlhL0lPTVguaDogSU9NWE5vZGUKKyAqIFJlZjogaHR0cHM6Ly93d3cua2hyb25vcy5vcmcvcmVnaXN0cnkvb214aWwvc3BlY3MvT3Blbk1BWF9JTF8xXzFfMl9TcGVjaWZpY2F0aW9uLnBkZgorICovCisKKy8qKgorICogSU9teE5vZGUgaXMgYW4gaW50ZXJmYWNlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggYW4gT01YIGNvbXBvbmVudCAoY2FsbGVkCisgKiAibm9kZSIgaGVyZSkgdGhhdCBoYXMgYmVlbiBwcmV2aW91c2x5IG9idGFpbmVkIGJ5IGNhbGxpbmcKKyAqIElPbXg6OmFsbG9jYXRlTm9kZSgpLgorICovCitpbnRlcmZhY2UgSU9teE5vZGUgeworCisgICAgLyoqCisgICAgICogRnJlZSB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKi8KKyAgICBmcmVlTm9kZSgKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogSW52b2tlIGEgY29tbWFuZCBvbiB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjbWQgVHlwZSBvZiB0aGUgY29tbWFuZC4KKyAgICAgKiBAcGFyYW0gcGFyYW0gUGFyYW1ldGVyIGZvciB0aGUgY29tbWFuZC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9TZW5kQ29tbWFuZCgpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIHNlbmRDb21tYW5kKAorICAgICAgICAgICAgdWludDMyX3QgY21kLAorICAgICAgICAgICAgaW50MzJfdCBwYXJhbQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBhIHBhcmFtZXRlciBzZXR0aW5nIGZyb20gdGhlIG5vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5kZXggVHlwZSBvZiB0aGUgcGFyYW1ldGVyIHRvIHJldHJpZXZlLgorICAgICAqIEBwYXJhbSBpblBhcmFtcyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgcmV0cmlldmFsLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIG91dFBhcmFtcyBDdXJyZW50IHBhcmFtZXRlciBzZXR0aW5nLgorICAgICAqCisgICAgICogQHNlZSBPTVhfR2V0UGFyYW1ldGVyKCkgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgICAgICovCisgICAgZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgdWludDMyX3QgaW5kZXgsCisgICAgICAgICAgICBCeXRlcyBpblBhcmFtcworICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgQnl0ZXMgb3V0UGFyYW1zCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgYSBwYXJhbWV0ZXIgc2V0dGluZyBvZiB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCBUeXBlIG9mIHRoZSBwYXJhbWV0ZXIgdG8gY2hhbmdlLgorICAgICAqIEBwYXJhbSBwYXJhbXMgTmV3IHBhcmFtZXRlciBzZXR0aW5nLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX1NldFBhcmFtZXRlcigpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIHNldFBhcmFtZXRlcigKKyAgICAgICAgICAgIHVpbnQzMl90IGluZGV4LAorICAgICAgICAgICAgQnl0ZXMgcGFyYW1zCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGEgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBub2RlLgorICAgICAqCisgICAgICogQHBhcmFtIGluZGV4IFR5cGUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gdG8gcmV0cmlldmUuCisgICAgICogQHBhcmFtIGluQ29uZmlnIEluZm9ybWF0aW9uIGFib3V0IHRoZSByZXRyaWV2YWwuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqIEByZXR1cm4gb3V0Q29uZmlnIEN1cnJlbnQgY29uZmlndXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX0dldENvbmZpZygpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIGdldENvbmZpZygKKyAgICAgICAgICAgIHVpbnQzMl90IGluZGV4LAorICAgICAgICAgICAgQnl0ZXMgaW5Db25maWcKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIEJ5dGVzIG91dENvbmZpZworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQ2hhbmdlIGEgY29uZmlndXJhdGlvbiBvZiB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCBUeXBlIG9mIHRoZSBjb25maWd1cmF0aW9uIHRvIGNoYW5nZS4KKyAgICAgKiBAcGFyYW0gY29uZmlnIE5ldyBjb25maWd1cmF0aW9uLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX1NldENvbmZpZygpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIHNldENvbmZpZygKKyAgICAgICAgICAgIHVpbnQzMl90IGluZGV4LAorICAgICAgICAgICAgQnl0ZXMgY29uZmlnCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbW9kZSBvZiBhIHBvcnQgb24gdGhlIG5vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSBtb2RlIFRhcmdldCBtb2RlIG9uIHRoZSBzcGVjaWZpZWQgcG9ydC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICovCisgICAgc2V0UG9ydE1vZGUoCisgICAgICAgICAgICB1aW50MzJfdCBwb3J0SW5kZXgsCisgICAgICAgICAgICBQb3J0TW9kZSBtb2RlCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFByZXBhcmUgYSBwb3J0IGZvciBhZGFwdGl2ZSBwbGF5YmFjay4gVGhpcyBpcyBiYXNlZCBvbiB0aGUgZXh0ZW5zaW9uCisgICAgICogIk9NWC5nb29nbGUuYW5kcm9pZC5pbmRleC5wcmVwYXJlRm9yQWRhcHRpdmVQbGF5YmFjayIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSBlbmFibGUgV2hldGhlciB0aGUgYWRhcHRpdmUgcGxheWJhY2sgaXMgZW5hYmxlZCBvciBub3QuCisgICAgICogQHBhcmFtIG1heEZyYW1lV2lkdGggTWF4aW11bSBmcmFtZSB3aWR0aC4KKyAgICAgKiBAcGFyYW0gbWF4RnJhbWVIZWlnaHQgTWF4aW11bSBmcmFtZSBoZWlnaHQuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqLworICAgIHByZXBhcmVGb3JBZGFwdGl2ZVBsYXliYWNrKAorICAgICAgICAgICAgdWludDMyX3QgcG9ydEluZGV4LAorICAgICAgICAgICAgYm9vbCBlbmFibGUsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhGcmFtZVdpZHRoLAorICAgICAgICAgICAgdWludDMyX3QgbWF4RnJhbWVIZWlnaHQKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQ29uZmlndXJlIGEgcG9ydCBmb3IgYSB0dW5uZWxlZCBwbGF5YmFjayBtb2RlLiBUaGlzIGlzIGJhc2VkIG9uIHRoZQorICAgICAqIGV4dGVuc2lvbiAiT01YLmdvb2dsZS5hbmRyb2lkLmluZGV4LmNvbmZpZ3VyZVZpZGVvVHVubmVsTW9kZSIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSB0dW5uZWxlZCBXaGV0aGVyIHRoZSB0dW5uZWxlZCBtb2RlIGlzIHVzZWQgb3Igbm90LgorICAgICAqIEBwYXJhbSBhdWRpb0h3U3luYyBIVyBTWU5DIElEIG9mIHRoZSBhdWRpbyBIQUwgb3V0cHV0IHN0cmVhbSB0byBzeW5jCisgICAgICogdGhlIHZpZGVvIHdpdGguCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqIEByZXR1cm4gc2lkZWJhbmRIYW5kbGUgQ29kZWMtYWxsb2NhdGVkIHNpZGViYW5kIHdpbmRvdyBoYW5kbGUuCisgICAgICovCisgICAgY29uZmlndXJlVmlkZW9UdW5uZWxNb2RlKAorICAgICAgICAgICAgdWludDMyX3QgcG9ydEluZGV4LAorICAgICAgICAgICAgYm9vbCB0dW5uZWxlZCwKKyAgICAgICAgICAgIHVpbnQzMl90IGF1ZGlvSHdTeW5jCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBoYW5kbGUgc2lkZWJhbmRIYW5kbGUKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBidWZmZXIgdXNhZ2Ugb24gYSBwb3J0LiBUaGlzIGlzIGJhc2VkIG9uIHRoZSBleHRlbnNpb24KKyAgICAgKiAiT01YLmdvb2dsZS5hbmRyb2lkLmluZGV4LmdldEFuZHJvaWROYXRpdmVCdWZmZXJVc2FnZSIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIHVzYWdlIEN1cnJlbnQgZ3JhcGhpYyBidWZmZXIgdXNhZ2UuCisgICAgICovCisgICAgZ2V0R3JhcGhpY0J1ZmZlclVzYWdlKAorICAgICAgICAgICAgdWludDMyX3QgcG9ydEluZGV4CisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICB1aW50MzJfdCB1c2FnZQorICAgICAgICApOworCisgICAgLyoqCisgICAgICogU2V0IHVwIGEgbGlzdGVuZXIgdG8gZXZlbnRzIHJlbGF0ZWQgdG8gdGhlIGlucHV0IHN1cmZhY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmZmVyU291cmNlIExpc3RlbmVyIG9iamVjdCB0aGF0IGltcGxlbWVudHMKKyAgICAgKiBJT214QnVmZmVyU291cmNlLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgSU9teEJ1ZmZlclNvdXJjZS4KKyAgICAgKi8KKyAgICBzZXRJbnB1dFN1cmZhY2UoCisgICAgICAgICAgICBJT214QnVmZmVyU291cmNlIGJ1ZmZlclNvdXJjZQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBBbGxvY2F0ZSBhbiBvcGFxdWUgYnVmZmVyIG9uIGEgcG9ydCBhcyBhIG5hdGl2ZSBoYW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSBzaXplIERlc2lyZWQgc2l6ZSBvZiB0aGUgYnVmZmVyLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBJZCBvZiB0aGUgYWxsb2NhdGVkIGJ1ZmZlciwgd2hpY2ggd2lsbCBiZSBuZWVkZWQgaW4KKyAgICAgKiBvdGhlciBidWZmZXItcmVsYXRlZCBmdW5jdGlvbnMuCisgICAgICogQHJldHVybiBuYXRpdmVIYW5kbGUgTmF0aXZlIGhhbmRsZSBvZiB0aGUgYWxsb2NhdGVkIGJ1ZmZlci4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX0FsbG9jYXRlQnVmZmVyKCkgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgICAgICovCisgICAgYWxsb2NhdGVTZWN1cmVCdWZmZXIoCisgICAgICAgICAgICB1aW50MzJfdCBwb3J0SW5kZXgsCisgICAgICAgICAgICB1aW50NjRfdCBzaXplCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBCdWZmZXJJZCBidWZmZXIsCisgICAgICAgICAgICBoYW5kbGUgbmF0aXZlSGFuZGxlCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBBc3NpZ24gYSBidWZmZXIgdG8gYSBwb3J0LgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJbmRleCBJbmRleCBvZiB0aGUgcG9ydC4KKyAgICAgKiBAcGFyYW0gb214QnVmZmVyIEJ1ZmZlciB0byBiZSBhc3NpZ25lZCB0byB0aGUgcG9ydC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICogQHJldHVybiBidWZmZXIgSWQgb2YgdGhlIGFzc2lnbmVkIGJ1ZmZlciwgd2hpY2ggd2lsbCBiZSBuZWVkZWQgaW4KKyAgICAgKiBvdGhlciBidWZmZXItcmVsYXRlZCBmdW5jdGlvbnMuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9Vc2VCdWZmZXIoKSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICB1c2VCdWZmZXIoCisgICAgICAgICAgICB1aW50MzJfdCBwb3J0SW5kZXgsCisgICAgICAgICAgICBDb2RlY0J1ZmZlciBvbXhCdWZmZXIKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIEJ1ZmZlcklkIGJ1ZmZlcgorICAgICAgICApOworCisgICAgLyoqCisgICAgICogRnJlZSBhIGJ1ZmZlciBwcmV2aW91c2x5IGFzc2lnbmVkIHRvIGEgcG9ydCBieSBhbGxvY2F0ZVNlY3VyZUJ1ZmZlcigpIG9yCisgICAgICogdXNlQnVmZmVyKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSBidWZmZXIgSWQgb2YgdGhlIGJ1ZmZlciB0byBiZSBmcmVlZC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9GcmVlQnVmZmVyKCkgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgICAgICovCisgICAgZnJlZUJ1ZmZlcigKKyAgICAgICAgICAgIHVpbnQzMl90IHBvcnRJbmRleCwKKyAgICAgICAgICAgIEJ1ZmZlcklkIGJ1ZmZlcgorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBQYXNzIFxwIGZlbmNlIHRvIHRoZSBub2RlIGlmIGl0IHN1cHBvcnRzIGZlbmNlcy4gT3RoZXJ3aXNlLCBpdCB3YWl0cyBvbgorICAgICAqIFxwIGZlbmNlIGJlZm9yZSBjYWxsaW5nIE9NWF9GaWxsVGhpc0J1ZmZlcigpLiBUaGUgbm9kZSB3aWxsIHRha2UKKyAgICAgKiBvd25lcnNoaXAgb2YgdGhlIGZlbmNlIGV2ZW4gaWYgdGhpcyBjYWxsIGZhaWxzLgorICAgICAqCisgICAgICogSWYgdGhlIHBvcnQgaXMgaW4gbWV0YWRhdGEgbW9kZSwgdGhlIGJ1ZmZlciB3aWxsIGJlIHVwZGF0ZWQgdG8gcG9pbnQgdG8KKyAgICAgKiB0aGUgbmV3IGJ1ZmZlciBwYXNzZWQgaW4gdmlhIFxwIG9teEJ1ZmZlciBiZWZvcmUgT01YX0ZpbGxUaGlzQnVmZmVyKCkgaXMKKyAgICAgKiBjYWxsZWQuIE90aGVyd2lzZSwgXHAgb214QnVmZmVyIGlzIG5vdCB1c2VkLgorICAgICAqCisgICAgICogQHBhcmFtIGJ1ZmZlciBJZCBvZiB0aGUgYnVmZmVyIHRvIGZpbGwuCisgICAgICogQHBhcmFtIG9teEJ1ZmZlciBOZXcgYnVmZmVyIGluZm9ybWF0aW9uIChpbiBtZXRhZGF0YSBtb2RlKS4KKyAgICAgKiBAcGFyYW0gZmVuY2UgRmVuY2UgdG8gd2FpdCBmb3IgKGlmIG5vdCBudWxsKS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9GaWxsVGhpc0J1ZmZlcigpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIGZpbGxCdWZmZXIoCisgICAgICAgICAgICBCdWZmZXJJZCBidWZmZXIsCisgICAgICAgICAgICBDb2RlY0J1ZmZlciBvbXhCdWZmZXIsCisgICAgICAgICAgICBGZW5jZSBmZW5jZQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBQYXNzIFxwIGZlbmNlIHRvIHRoZSBub2RlIGlmIGl0IHN1cHBvcnRzIGZlbmNlcy4gT3RoZXJ3aXNlLCB3YWl0IG9uCisgICAgICogXHAgZmVuY2UgYmVmb3JlIGNhbGxpbmcgT01YX0VtcHR5VGhpc0J1ZmZlcigpLiBUaGUgbm9kZSB3aWxsIHRha2UKKyAgICAgKiBvd25lcnNoaXAgb2YgdGhlIGZlbmNlIGV2ZW4gaWYgdGhpcyBjYWxsIGZhaWxzLgorICAgICAqCisgICAgICogSWYgdGhlIHBvcnQgaXMgaW4gbWV0YWRhdGEgbW9kZSwgdGhlIGJ1ZmZlciB3aWxsIGJlIHVwZGF0ZWQgdG8gcG9pbnQgdG8KKyAgICAgKiB0aGUgbmV3IGJ1ZmZlciBwYXNzZWQgaW4gdmlhIFxwIG9teEJ1ZmZlciBiZWZvcmUgT01YX0VtcHR5VGhpc0J1ZmZlcigpIGlzCisgICAgICogY2FsbGVkLiBPdGhlcndpc2UsIFxwIG9teEJ1ZmZlciBpcyBub3QgdXNlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgSWQgb2YgdGhlIGJ1ZmZlciB0byBmaWxsLgorICAgICAqIEBwYXJhbSBvbXhCdWZmZXIgTmV3IGJ1ZmZlciBpbmZvcm1hdGlvbiAoaW4gbWV0YWRhdGEgbW9kZSkuCisgICAgICogQHBhcmFtIGZsYWdzIEZsYWdzIHRvIGJlIHBhc3NlZCB0byBPTVhfRW1wdHlCdWZmZXIoKS4KKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wVXMgVGltZXN0YW1wIE9NWF9FbXB0eUJ1ZmZlcigpLgorICAgICAqIEBwYXJhbSBmZW5jZSBGZW5jZSB0byB3YWl0IGZvciAoaWYgbm90IG51bGwpLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX0VtcHR5VGhpc0J1ZmZlcigpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIGVtcHR5QnVmZmVyKAorICAgICAgICAgICAgQnVmZmVySWQgYnVmZmVyLAorICAgICAgICAgICAgQ29kZWNCdWZmZXIgb214QnVmZmVyLAorICAgICAgICAgICAgdWludDMyX3QgZmxhZ3MsCisgICAgICAgICAgICB1aW50NjRfdCB0aW1lc3RhbXBVcywKKyAgICAgICAgICAgIEZlbmNlIGZlbmNlCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFJlcXVlc3QgdGhlIG5vZGUgdG8gdHJhbnNsYXRlIGFuIGV4dGVuc2lvbiBzdHJpbmcgdG8gYW4gaW5kZXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW1ldGVyTmFtZSBSZXF1ZXN0ZWQgZXh0ZW5zaW9uIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICogQHJldHVybiBpbmRleCBUcmFuc2xhdGVkIGluZGV4LgorICAgICAqCisgICAgICogQHNlZSBPTVhfR2V0RXh0ZW5zaW9uSW5kZXgoKSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25JbmRleCgKKyAgICAgICAgICAgIHN0cmluZyBwYXJhbWV0ZXJOYW1lCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICB1aW50MzJfdCBpbmRleAorICAgICAgICApOworCisgICAgLyoqCisgICAgICogQWRkIGFuIE9NWCBtZXNzYWdlIG9uIHRoZSBub2RlJ3MgbWVzc2FnZSBxdWV1ZS4gVGhlIGluc3RhbmNlIG9mCisgICAgICogSU9teE9ic2VydmVyIHRoYXQgd2FzIG9idGFpbmVkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIG5vZGUgd2lsbAorICAgICAqIHJlY2VpdmUgdGhlIG1lc3NhZ2UgaW4gYmF0Y2hlcyBieSB0aGUgY2FsbGJhY2sKKyAgICAgKiBJT214T2JzZXJ2ZXI6Om9uTWVzc2FnZXMoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtc2cgTWVzc2FnZSB0byBzZW5kLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgSU9teE9ic2VydmVyOjpvbk1lc3NhZ2VzKCkuCisgICAgICovCisgICAgZGlzcGF0Y2hNZXNzYWdlKAorICAgICAgICAgICAgTWVzc2FnZSBtc2cKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworfTsKKwpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaGFsIGIvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyNmE5MzcKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oYWwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9pbmNsdWRlL21lZGlhL0lPTVguaDogSU9NWE9ic2VydmVyCisgKi8KKworLyoqCisgKiBJT214T2JzZXJ2ZXIgaXMgYSBsaXN0ZW5lciBpbnRlcmZhY2UgZm9yIE9NWCBtZXNzYWdlcyBzZW50IGZyb20gYW4gSU9teE5vZGUKKyAqIHN0YW5jZS4KKyAqLworaW50ZXJmYWNlIElPbXhPYnNlcnZlciB7CisKKyAgICAvKioKKyAgICAgKiBJbnZva2VkIHRvIHByb2Nlc3MgbWVzc2FnZXMgZnJvbSBhbiBJT214Tm9kZSBpbnN0YW5jZS4gTm90ZSB0aGF0IG1lc3NhZ2VzCisgICAgICogY29tZSBpbiBiYXRjaGVzLgorICAgICAqLworICAgIG9uZXdheSBvbk1lc3NhZ2VzKHZlYzxNZXNzYWdlPiBtZXNzYWdlcyk7Cit9OworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL0lPbXhTdG9yZS5oYWwgYi9tZWRpYS9vbXgvMS4wL0lPbXhTdG9yZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIyNGIwZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSU9teFN0b3JlLmhhbApAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOworCitpbXBvcnQgSU9teDsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvaW5jbHVkZS9tZWRpYS9JT01YLmg6IElPTVgKKyAqCisgKiBUaGVyZSB3aWxsIGJlIHR3byBpbnN0YW5jZXMgb2YgSU9teFN0b3JlOiAicGxhdGZvcm0iIGFuZCAidmVuZG9yIi4KKyAqCisgKiBUaGUgSU9teFN0b3JlIHNlcnZpY2UgcHJvdmlkZWQgYnkgdGhlIHBsYXRmb3JtIG11c3QgcHJlc2VudCAicGxhdGZvcm0iIGFzIHRoZQorICogaW50ZXJmYWNlIG5hbWUuCisgKgorICogVGhlIElPbXhTdG9yZSBzZXJ2aWNlIHByb3ZpZGVkIGJ5IHRoZSB2ZW5kb3IgbXVzdCBwcmVzZW50ICJ2ZW5kb3IiIGFzIHRoZQorICogaW5zdGFuY2UgbmFtZS4KKyAqLworaW50ZXJmYWNlIElPbXhTdG9yZSB7CisKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGUgaXMgYSBrZXktdmFsdWUgcGFpciBvZiBzdHJpbmdzLiBUaGUgYHZhbHVlYCBtZW1iZXIgaXMgZ2VuZXJhbGx5CisgICAgICogYSBzdHJpbmdpZmllZCB2YWx1ZSBvZiB0aGUgZm9sbG93aW5nOgorICAgICAqICAgZW51bTx2MSx2MiwuLi4sdm4+OiAgICB2MSB8IHYyIHwgLi4uIHwgdm4KKyAgICAgKiAgIG51bTogICAgICAgICAgICAgICAgICAgMCB8IFsxLTldWzAtOV0qCisgICAgICogICBzdHJpbmc6ICAgICAgICAgICAgICAgIGFyYml0cmFyeSBzdHJpbmcKKyAgICAgKiAgIHNpemU6ICAgICAgICAgICAgICAgICAgPG51bT54PG51bT4KKyAgICAgKiAgIHJhdGlvOiAgICAgICAgICAgICAgICAgPG51bT46PG51bT4KKyAgICAgKiAgIHJhbmdlPHR5cGU+OiAgICAgICAgICAgPHR5cGU+LTx0eXBlPgorICAgICAqICAgbGlzdDx0eXBlPjogICAgICAgICAgICA8dHlwZT4gfCA8dHlwZT4sPGxpc3Q8dHlwZT4+CisgICAgICovCisgICAgc3RydWN0IEF0dHJpYnV0ZSB7CisgICAgICAgIHN0cmluZyBrZXk7CisgICAgICAgIHN0cmluZyB2YWx1ZTsKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2VydmljZSBhdHRyaWJ1dGUKKyAgICAgKgorICAgICAqIE9wdGlvbmFsIHNlcnZpY2UgYXR0cmlidXRlczoKKyAgICAgKiAgIGtleTogJ21heC12aWRlby1lbmNvZGVyLWlucHV0LWJ1ZmZlcnMnLCB2YWx1ZS10eXBlOiBudW0KKyAgICAgKiAgIGtleTogJ3N1cHBvcnRzLW11bHRpcGxlLXNlY3VyZS1jb2RlY3MnLCB2YWx1ZS10eXBlOiBlbnVtPDAsMT4KKyAgICAgKiAgIGtleTogJ3N1cHBvcnRzLXNlY3VyZS13aXRoLW5vbi1zZWN1cmUtY29kZWMnLCB2YWx1ZS10eXBlOiBlbnVtPDAsMT4KKyAgICAgKgorICAgICAqIEZvciBrZXlzIHdpdGggcHJlZml4ICdzdXBwb3J0cy0nLCB0aGUgdmFsdWUgb2YgMCBtZWFucyAibm8iIChub3QKKyAgICAgKiBzdXBwb3J0ZWQpIHdoaWxlIHRoZSB2YWx1ZSBvZiAxIG1lYW5zICJ5ZXMiIChzdXBwb3J0ZWQpLgorICAgICAqLworICAgIHR5cGVkZWYgQXR0cmlidXRlIFNlcnZpY2VBdHRyaWJ1dGU7CisKKyAgICAvKioKKyAgICAgKiBMaXN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VydmljZS1zcGVjaWZpYyAobm90IG5vZGUtc3BlY2lmaWMpLgorICAgICAqCisgICAgICogQHJldHVybiBhdHRyaWJ1dGVzIFRoZSBsaXN0IG9mIGBBdHRyaWJ1dGVgcyB0aGF0IGFyZSBzcGVjaWZpYyB0byB0aGlzCisgICAgICogICAgICAgICAgICAgICAgICAgIHNlcnZpY2UuCisgICAgICovCisgICAgbGlzdFNlcnZpY2VBdHRyaWJ1dGVzKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgdmVjPFNlcnZpY2VBdHRyaWJ1dGU+IGF0dHJpYnV0ZXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIE5vZGUgYXR0cmlidXRlCisgICAgICoKKyAgICAgKiBPcHRpb25hbCBub2RlIGF0dHJpYnV0ZXMgdG8gZGVzY3JpYmUgc3VwcG9ydGVkIHZhbHVlczoKKyAgICAgKiAgIGtleTogJ2JpdHJhdGUtcmFuZ2UnLCB2YWx1ZS10eXBlOiByYW5nZTxudW0+CisgICAgICogICBrZXk6ICdtYXgtY29uY3VycmVudC1pbnN0YW5jZXMnLCB2YWx1ZS10eXBlOiBudW0KKyAgICAgKiAgIGtleTogJ21heC1zdXBwb3J0ZWQtaW5zdGFuY2VzJywgdmFsdWUtdHlwZTogbnVtCisgICAgICoKKyAgICAgKiBPcHRpb25hbCBub2RlIGF0dHJpYnV0ZXMgZm9yIGF1ZGlvIG5vZGVzIHRvIGRlc2NyaWJlIHN1cHBvcnRlZCB2YWx1ZXM6CisgICAgICogICBrZXk6ICdtYXgtY2hhbm5lbC1jb3VudCcsIHZhbHVlLXR5cGU6IG51bQorICAgICAqICAga2V5OiAnc2FtcGxlLXJhdGUtcmFuZ2VzJywgdmFsdWUtdHlwZTogbGlzdDxyYW5nZTxudW0+PgorICAgICAqCisgICAgICogT3B0aW9uYWwgbm9kZSBhdHRyaWJ1dGVzIGZvciB2aWRlbyBub2RlcyB0byBkZXNjcmliZSBzdXBwb3J0ZWQgdmFsdWVzOgorICAgICAqICAga2V5OiAnYWxpZ25tZW50JywgdmFsdWUtdHlwZTogc2l6ZQorICAgICAqICAga2V5OiAnYmxvY2stYXNwZWN0LXJhdGlvLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8cmF0aW8+CisgICAgICogICBrZXk6ICdibG9jay1jb3VudC1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPG51bT4KKyAgICAgKiAgIGtleTogJ2Jsb2NrLXNpemUnLCB2YWx1ZS10eXBlOiBzaXplCisgICAgICogICBrZXk6ICdibG9ja3MtcGVyLXNlY29uZC1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPG51bT4KKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtY2FuLXN3YXAtd2lkdGgtaGVpZ2h0JywgdmFsdWUtdHlwZTogZW51bTwwLDE+CisgICAgICogICBrZXk6ICdmcmFtZS1yYXRlLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8bnVtPgorICAgICAqICAga2V5OiAncGl4ZWwtYXNwZWN0LXJhdGlvLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8cmF0aW8+CisgICAgICogICBrZXk6ICdzaXplLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8c2l6ZT4KKyAgICAgKgorICAgICAqIFJlcXVpcmVkIG5vZGUgYXR0cmlidXRlcyBmb3IgdmlkZW8gbm9kZXMgdGhhdCBhcmUgcmVxdWlyZWQgYnkgQW5kcm9pZCB0bworICAgICAqIGRlc2NyaWJlIG1lYXN1cmVkIHZhbHVlcyBmb3IgdGhpcyBkZXZpY2U6CisgICAgICogICBrZXk6ICdtZWFzdXJlZC1mcmFtZS1yYXRlLTx3aWR0aD4tPGhlaWdodD4tcmFuZ2UnLAorICAgICAqICAgICB2YWx1ZS10eXBlOiByYW5nZTxudW0+OyB3aGVyZSB3aWR0aDogbnVtLCBoZWlnaHQ6IG51bQorICAgICAqCisgICAgICogT3B0aW9uYWwgbm9kZSBhdHRyaWJ1dGVzIGZvciBkZWNvZGVycyB0byBkZXNjcmliZSBzdXBwb3J0ZWQgdmFsdWVzOgorICAgICAqICAga2V5OiAnZmVhdHVyZS1hZGFwdGl2ZS1wbGF5YmFjaycsIHZhbHVlOiBlbnVtPDAsMT4KKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtc2VjdXJlLXBsYXliYWNrJywgdmFsdWU6IGVudW08MCwxPgorICAgICAqICAga2V5OiAnZmVhdHVyZS10dW5uZWxlZC1wbGF5YmFjaycsIHZhbHVlOiBlbnVtPDAsMT4KKyAgICAgKgorICAgICAqIE9wdGlvbmFsIG5vZGUgYXR0cmlidXRlcyBmb3IgdmlkZW8gZGVjb2RlcnMgdG8gZGVzY3JpYmUgc3VwcG9ydGVkIHZhbHVlczoKKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtcGFydGlhbC1mcmFtZScsIHZhbHVlOiBlbnVtPDAsMT4KKyAgICAgKgorICAgICAqIE9wdGlvbmFsIG5vZGUgYXR0cmlidXRlcyBmb3IgZW5jb2RlcnMgdG8gZGVzY3JpYmUgc3VwcG9ydGVkIHZhbHVlczoKKyAgICAgKiAgIGtleTogJ2NvbXBsZXhpdHktZGVmYXVsdCcsIHZhbHVlLXR5cGU6IG51bQorICAgICAqICAga2V5OiAnY29tcGxleGl0eS1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPG51bT4KKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtYml0cmF0ZS1jb250cm9sJywgdmFsdWUtdHlwZTogbGlzdDxlbnVtPFZCUixDQlIsQ1E+PgorICAgICAqICAga2V5OiAnZmVhdHVyZS1pbnRyYS1yZWZyZXNoJywgdmFsdWUtdHlwZTogZW51bTwwLDE+CisgICAgICogICBrZXk6ICdxdWFsaXR5LWRlZmF1bHQnLCB2YWx1ZS10eXBlOiBudW0KKyAgICAgKiAgIGtleTogJ3F1YWxpdHktcmFuZ2UnLCB2YWx1ZS10eXBlOiByYW5nZTxudW0+CisgICAgICogICBrZXk6ICdxdWFsaXR5LXNjYWxlJywgdmFsdWUtdHlwZTogc3RyaW5nCisgICAgICoKKyAgICAgKiBGb3Iga2V5cyB3aXRoIHByZWZpeCAnZmVhdHVyZS0nIGFuZCB2YWx1ZSB0eXBlIGVudW08MCwxPiwgdGhlIHZhbHVlIG9mIDAKKyAgICAgKiBtZWFucyAib3B0aW9uYWwiLCB3aGlsZSB0aGUgdmFsdWUgb2YgMSBtZWFucyAicmVxdWlyZWQiLgorICAgICAqLworICAgIHR5cGVkZWYgQXR0cmlidXRlIE5vZGVBdHRyaWJ1dGU7CisKKyAgICAvKioKKyAgICAgKiBJbmZvcm1hdGlvbiBmb3IgYW4gSU9teE5vZGUgbm9kZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgTm9kZUluZm8geworICAgICAgICAvKioKKyAgICAgICAgICogTmFtZSBvZiB0aGlzIG5vZGUuCisgICAgICAgICAqCisgICAgICAgICAqIGBuYW1lYCBjYW4gYmUgc3VwcGxpZWQgdG8gYElPbXg6OmFsbG9jYXRlTm9kZWAgb2YgYQorICAgICAgICAgKiBjb3JyZXNwb25kaW5nIGBJT214YCBpbnN0YW5jZSB0byBjcmVhdGUgdGhlIG5vZGUuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgbmFtZTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIE5hbWUgb2YgdGhlIGBJT214YCBpbnN0YW5jZSB0aGF0IGNhbiBjcmVhdGUgdGhpcyBub2RlLgorICAgICAgICAgKgorICAgICAgICAgKiBUbyBvYnRhaW4gdGhlIGBJT214YCBpbnN0YW5jZSwgY2FsbCBgZ2V0T214KG93bmVyKWAuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgb3duZXI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBMaXN0IG9mIG5vZGUgYXR0cmlidXRlcy4KKyAgICAgICAgICovCisgICAgICAgIHZlYzxOb2RlQXR0cmlidXRlPiBhdHRyaWJ1dGVzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBJbmZvcm1hdGlvbiBhYm91dCBub2RlcyBwcm92aWRlZCBmb3IgYSBzdXBwb3J0ZWQgbm9kZSByb2xlCisgICAgICovCisgICAgc3RydWN0IFJvbGVJbmZvIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN0YW5kYXJkIE9NWCBub2RlIHJvbGUuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgcm9sZTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvcnJlc3BvbmRpbmcgbWVkaWEgdHlwZSAoYXMgZGVmaW5lZCBpbiBNZWRpYUZvcm1hdC5NSU1FVFlQRV8qCisgICAgICAgICAqIGNvbnN0YW50cyBmb3IgdHlwZXMgcmVxdWlyZWQgYnkgQW5kcm9pZCkuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgdHlwZTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFdoZXRoZXIgdGhpcyByb2xlIGlzIGZvciBhbiBlbmNvZGVyIG9yIGEgZGVjb2Rlci4KKyAgICAgICAgICovCisgICAgICAgIGJvb2wgaXNFbmNvZGVyOworICAgICAgICAvKioKKyAgICAgICAgICogV2hldGhlciB0byBwcmVmZXIgcGxhdGZvcm0gbm9kZXMgZm9yIHRoaXMgcm9sZS4KKyAgICAgICAgICovCisgICAgICAgIGJvb2wgcHJlZmVyUGxhdGZvcm1Ob2RlczsKKyAgICAgICAgLyoqCisgICAgICAgICAqIExpc3Qgb2Ygbm9kZXMgdGhhdCBzdXBwb3J0IHRoaXMgcm9sZSwgb3JkZXJlZCBieSBwcmVmZXJlbmNlLgorICAgICAgICAgKi8KKyAgICAgICAgdmVjPE5vZGVJbmZvPiBub2RlczsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBwcmVmaXggb2YgbmFtZXMgb2Ygc3VwcG9ydGVkIG5vZGVzLgorICAgICAqCisgICAgICogQHJldHVybiBwcmVmaXggVGhlIHByZWZpeCBvZiB0aGUgbmFtZXMgb2YgYWxsIG5vZGVzIHN1cHBvcnRlZCBieSB0aGlzCisgICAgICogICAgICAgICAgICAgICAgc2VydmljZS4KKyAgICAgKi8KKyAgICBnZXROb2RlUHJlZml4KAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBzdHJpbmcgcHJlZml4CisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBMaXN0IHJvbGVzIG9mIHN1cHBvcnRlZCBub2Rlcy4KKyAgICAgKgorICAgICAqIFRoZSBuYW1lIG9mIGVhY2ggbm9kZSBpbnNpZGUgYE5vZGVJbmZvYCBtdXN0IHN0YXJ0IHdpdGggdGhlIHByZWZpeAorICAgICAqIHJldHVybmVkIGJ5IGBnZXROb2RlUHJlZml4KClgLgorICAgICAqCisgICAgICogQHJldHVybiByb2xlTGlzdCBUaGUgbGlzdCBvZiBgUm9sZUluZm9gcy4KKyAgICAgKgorICAgICAqIEBzZWUgUm9sZUluZm8KKyAgICAgKi8KKyAgICBsaXN0Um9sZXMoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIHZlYzxSb2xlSW5mbz4gcm9sZUxpc3QKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIE9idGFpbiBhbiBgSU9teGAgaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCBuYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGluc3RhbmNlLgorICAgICAqIEByZXR1cm4gb214IFRoZSBgSU9teGAgaW50ZXJmYWNlIGFzc29jaWF0ZWQgd2l0aCBgbmFtZWAuIFRoaXMgbXVzdCBiZQorICAgICAqIG51bGwgaWYgdGhlIG5hbWUgaXMgbm90IGZvdW5kLgorICAgICAqLworICAgIGdldE9teCgKKyAgICAgICAgICAgIHN0cmluZyBuYW1lCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIElPbXggb214CisgICAgICAgICk7CisKK307CisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdHlwZXMuaGFsIGIvbWVkaWEvb214LzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZhNjAwNwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMjc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMDo6dHlwZXM7CisKKy8vIEFsaWFzZXMKK3R5cGVkZWYgdWludDMyX3QgQnVmZmVySWQ7CisKKy8qKgorICogUmVmOiBzeXN0ZW0vY29yZS9pbmNsdWRlL3V0aWxzL0Vycm9ycy5oCisgKiBSZWY6IGJpb25pYy9saWJjL2tlcm5lbC91YXBpL2FzbS1nZW5lcmljL2Vycm5vLWJhc2UuaAorICogUmVmOiBiaW9uaWMvbGliYy9rZXJuZWwvdWFwaS9hc20tZ2VuZXJpYy9lcnJuby5oCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvaW5jbHVkZS9tZWRpYS9zdGFnZWZyaWdodC9NZWRpYUVycm9yLmgKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9tZWRpYS9saWJzdGFnZWZyaWdodC9vbXgvT01YVXRpbHMuY3BwOiBTdGF0dXNGcm9tT01YRXJyb3IKKyAqLworZW51bSBTdGF0dXMgOiBpbnQzMl90IHsKKyAgICBPSyAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgTk9fRVJST1IgICAgICAgICAgICAgICAgPSAwLAorCisgICAgTkFNRV9OT1RfRk9VTkQgICAgICAgICAgPSAtMiwKKyAgICBXT1VMRF9CTE9DSyAgICAgICAgICAgICA9IC0xMSwKKyAgICBOT19NRU1PUlkgICAgICAgICAgICAgICA9IC0xMiwKKyAgICBBTFJFQURZX0VYSVNUUyAgICAgICAgICA9IC0xNywKKyAgICBOT19JTklUICAgICAgICAgICAgICAgICA9IC0xOSwKKyAgICBCQURfVkFMVUUgICAgICAgICAgICAgICA9IC0yMiwKKyAgICBERUFEX09CSkVDVCAgICAgICAgICAgICA9IC0zMiwKKyAgICBJTlZBTElEX09QRVJBVElPTiAgICAgICA9IC0zOCwKKyAgICBUSU1FRF9PVVQgICAgICAgICAgICAgICA9IC0xMTAsCisgICAgRVJST1JfVU5TVVBQT1JURUQgICAgICAgPSAtMTAxMCwKKyAgICBVTktOT1dOX0VSUk9SICAgICAgICAgICA9IC0yMTQ3NDgzNjQ4LAorCisgICAgQlVGRkVSX05FRURTX1JFQUxMT0NBVElPTiA9IDB4MSwKKyAgICBSRUxFQVNFX0FMTF9CVUZGRVJTICAgICAgID0gMHgyLAorfTsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvaW5jbHVkZS9tZWRpYS9JT01YLmg6IG9teF9tZXNzYWdlCisgKgorICogRGF0YSBzdHJ1Y3R1cmUgZm9yIGFuIE9NWCBtZXNzYWdlLiBUaGlzIGlzIGVzc2VudGlhbGx5IGEgdW5pb24gb2YgZGlmZmVyZW50CisgKiBtZXNzYWdlIHR5cGVzLgorICovCitzdHJ1Y3QgTWVzc2FnZSB7CisKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgZm91ciBtYWluIHR5cGVzIG9mIG1lc3NhZ2VzLgorICAgICAqLworICAgIGVudW0gVHlwZSA6IHVpbnQzMl90IHsKKyAgICAgICAgRVZFTlQsCisgICAgICAgIEVNUFRZX0JVRkZFUl9ET05FLAorICAgICAgICBGSUxMX0JVRkZFUl9ET05FLAorICAgICAgICBGUkFNRV9SRU5ERVJFRCwKKyAgICB9OworCisgICAgLyoqCisgICAgICogQHNlZSBPTVhfRVZFTlRUWVBFIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIHN0cnVjdCBFdmVudERhdGEgeworICAgICAgICB1aW50MzJfdCBldmVudDsgLy8gVE9ETzogaWYgdGhlcmUgYXJlIGNvbW1vbiBjb3JlIGV2ZW50cywgY29udmVydCB0byBhbiBlbnVtIG9yIHBvaW50IHRvIHN0ZAorICAgICAgICB1aW50MzJfdCBkYXRhMTsKKyAgICAgICAgdWludDMyX3QgZGF0YTI7CisgICAgICAgIHVpbnQzMl90IGRhdGEzOworICAgICAgICB1aW50MzJfdCBkYXRhNDsKKyAgICB9OworCisgICAgc3RydWN0IEJ1ZmZlckRhdGEgeworICAgICAgICBCdWZmZXJJZCBidWZmZXI7CisgICAgfTsKKworICAgIHN0cnVjdCBFeHRlbmRlZEJ1ZmZlckRhdGEgeworICAgICAgICBCdWZmZXJJZCBidWZmZXI7CisgICAgICAgIHVpbnQzMl90IHJhbmdlT2Zmc2V0OworICAgICAgICB1aW50MzJfdCByYW5nZUxlbmd0aDsKKyAgICAgICAgdWludDMyX3QgZmxhZ3M7IC8vIFRPRE86IGlmIGNvbW1vbiBmbGFncyBleGlzdCwgZGVmaW5lIGFuIGVudW0gb2YgcG9pbnQgdG8gc3RkCisgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcFVzOworICAgIH07CisKKyAgICBzdHJ1Y3QgUmVuZGVyRGF0YSB7CisgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcFVzOworICAgICAgICBpbnQ2NF90IHN5c3RlbVRpbWVOczsKKyAgICB9OworCisgICAgdW5pb24gRGF0YSB7CisgICAgICAgIC8vIGlmIHR5cGUgPT0gRVZFTlQKKyAgICAgICAgRXZlbnREYXRhIGV2ZW50RGF0YTsKKworICAgICAgICAvLyBpZiB0eXBlID09IEVNUFRZX0JVRkZFUl9ET05FCisgICAgICAgIEJ1ZmZlckRhdGEgYnVmZmVyRGF0YTsKKworICAgICAgICAvLyBpZiB0eXBlID09IEZJTExfQlVGRkVSX0RPTkUKKyAgICAgICAgRXh0ZW5kZWRCdWZmZXJEYXRhIGV4dGVuZGVkQnVmZmVyRGF0YTsKKworICAgICAgICAvLyBpZiB0eXBlID09IEZSQU1FX1JFTkRFUkVECisgICAgICAgIFJlbmRlckRhdGEgcmVuZGVyRGF0YTsKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2UuCisgICAgICovCisgICAgVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogVGhlIGZlbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWVzc2FnZS4KKyAgICAgKi8KKyAgICBGZW5jZSBmZW5jZTsKKworICAgIC8qKgorICAgICAqIFRoZSB1bmlvbiBvZiBkYXRhLCBkaXNjcmltaW5hdGVkIGJ5IHR5cGUuCisgICAgICovCisgICAgRGF0YSBkYXRhOworfTsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvdWkvR3JhcGhpY0J1ZmZlci5oCisgKiBSZWY6IHN5c3RlbS9jb3JlL2luY2x1ZGUvc3lzdGVtL3dpbmRvdy5oCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvYmluZGVyL0lNZW1vcnkuaAorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9saWJzL2JpbmRlci9JTWVtb3J5LmNwcAorICogUmVmOiBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvbWVkaWEvT01YQnVmZmVyLmgKKyAqCisgKiBEYXRhIHN0cnVjdHVyZSBmb3IgYnVmZmVyIGluZm9ybWF0aW9uLiBUaGlzIGlzIGVzc2VudGlhbGx5IGEgdW5pb24gb2YKKyAqIGRpZmZlcmVudCBidWZmZXIgdHlwZXMuCisgKi8KK3N0cnVjdCBDb2RlY0J1ZmZlciB7CisKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgZm91ciBtYWluIHR5cGVzIG9mIGJ1ZmZlcnMuCisgICAgICovCisgICAgZW51bSBUeXBlIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorICAgICAgICBQUkVTRVQsCisgICAgICAgIFNIQVJFRF9NRU0sCisgICAgICAgIEFOV19CVUZGRVIsCisgICAgICAgIE5BVElWRV9IQU5ETEUsCisgICAgfTsKKworICAgIHN0cnVjdCBQcmVzZXRBdHRyaWJ1dGVzIHsKKyAgICAgICAgdWludDMyX3QgcmFuZ2VPZmZzZXQ7CisgICAgICAgIHVpbnQzMl90IHJhbmdlTGVuZ3RoOworICAgIH07CisKKyAgICB1bmlvbiBBdHRyaWJ1dGVzIHsKKyAgICAgICAgLy8gaWYgYnVmZmVyVHlwZSA9PSBQUkVTRVQKKyAgICAgICAgUHJlc2V0QXR0cmlidXRlcyBwcmVzZXQ7CisKKyAgICAgICAgLy8gaWYgYnVmZmVyVHlwZSA9PSBTSEFSRURfTUVNCisgICAgICAgIC8vIE5vIGFkZGl0aW9uYWwgYXR0cmlidXRlcy4KKworICAgICAgICAvLyBpZiBidWZmZXJUeXBlID09IEFOV19CVUZGRVIKKyAgICAgICAgQW53QnVmZmVyQXR0cmlidXRlcyBhbndCdWZmZXI7CisKKyAgICAgICAgLy8gaWYgYnVmZmVyVHlwZSA9PSBOQVRJVkVfSEFORExFCisgICAgICAgIC8vIE5vIGFkZGl0aW9uYWwgYXR0cmlidXRlcy4KKyAgICB9OworCisgICAgLyoqCisgICAgICogVHlwZSBvZiB0aGUgYnVmZmVyLgorICAgICAqLworICAgIFR5cGUgdHlwZTsKKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZXMgdGhhdCBjYW4gYmUgcHV0IGludG8gYSB1bmlvbi4KKyAgICAgKi8KKyAgICBBdHRyaWJ1dGVzIGF0dHI7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIG9ubHkgZm9yIHR5cGVzIEFOV19CVUZGRVIgYW5kIE5BVElWRV9IQU5ETEUuCisgICAgICoKKyAgICAgKiAoQSBuYXRpdmUgaGFuZGxlIGNhbm5vdCBiZSBwdXQgaW50byBhIHVuaW9uIGFzIEhJREwgY3VycmVudGx5IGRvZXMgbm90CisgICAgICogc3VwcG9ydCBkaXNjcmltaW5hdGVkIHVuaW9ucy4pCisgICAgICovCisgICAgaGFuZGxlIG5hdGl2ZUhhbmRsZTsKKworICAgIC8qKgorICAgICAqIFVzZWQgb25seSBmb3IgdHlwZSBTSEFSRURfTUVNLgorICAgICAqLworICAgIG1lbW9yeSBzaGFyZWRNZW1vcnk7CisKK307CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvbWVkaWEvSU9NWC5oCisgKgorICogRW51bWVyYXRpb24gb2YgcG9ydCBtb2Rlcy4KKyAqLworZW51bSBQb3J0TW9kZSA6IGludDMyX3QgeworICAgIFBSRVNFVF9TVEFSVCA9IDAsCisgICAgUFJFU0VUX0JZVEVfQlVGRkVSLAorICAgIFBSRVNFVF9BTldfQlVGRkVSLAorICAgIFBSRVNFVF9TRUNVUkVfQlVGRkVSLAorICAgIFBSRVNFVF9FTkQsCisgICAgRFlOQU1JQ19TVEFSVCA9IDEwMCwKKyAgICBEWU5BTUlDX0FOV19CVUZGRVIsCisgICAgRFlOQU1JQ19OQVRJVkVfSEFORExFLAorICAgIERZTkFNSUNfRU5ECit9OworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9oYXJkd2FyZS9WaWRlb0FQSS5oCisgKgorICogRnJhbWV3b3JrIGRlZmluZWQgY29sb3IgYXNwZWN0cy4gVGhlc2UgYXJlIGJhc2VkIG1haW5seSBvbiBJU08gMjMwMDEtOCBzcGVjLiBBcyB0aGlzIHN0YW5kYXJkCisgKiBjb250aW51ZXMgdG8gZXZvbHZlLCBuZXcgdmFsdWVzIG1heSBiZSBkZWZpbmVkIGluIHRoZSBmdXR1cmUuIFVzZSBPVEhFUiBmb3IgdGhlc2UgZnV0dXJlIHZhbHVlcworICogYXMgd2VsbCBhcyBmb3IgdmFsdWVzIG5vdCBsaXN0ZWQgaGVyZSwgYXMgdGhvc2UgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGZyYW1ld29yay4KKyAqLworc3RydWN0IENvbG9yQXNwZWN0cyB7CisgICAgZW51bSBSYW5nZSA6IHVpbnQzMl90IHsKKyAgICAgICAgVU5TUEVDSUZJRUQsICAvLyBVbnNwZWNpZmllZAorICAgICAgICBGVUxMLCAgICAgICAgIC8vIEZ1bGwgcmFuZ2UKKyAgICAgICAgTElNSVRFRCwgICAgICAvLyBMaW1pdGVkIHJhbmdlIChpZiBkZWZpbmVkKSwgb3Igbm90IGZ1bGwgcmFuZ2UKKworICAgICAgICBPVEhFUiA9IDB4ZmYsIC8vIE5vdCBvbmUgb2YgdGhlIGFib3ZlIHZhbHVlcworICAgIH07CisKKyAgICAvLyBDb2xvciBwcmltYXJpZXMKKyAgICBlbnVtIFByaW1hcmllcyA6IHVpbnQzMl90IHsKKyAgICAgICAgVU5TUEVDSUZJRUQsICAvLyBVbnNwZWNpZmllZAorICAgICAgICBCVDcwOV81LCAgICAgIC8vIFJlYy5JVFUtUiBCVC43MDktNSBvciBlcXVpdmFsZW50CisgICAgICAgIEJUNDcwXzZNLCAgICAgLy8gUmVjLklUVS1SIEJULjQ3MC02IFN5c3RlbSBNIG9yIGVxdWl2YWxlbnQKKyAgICAgICAgQlQ2MDFfNl82MjUsICAvLyBSZWMuSVRVLVIgQlQuNjAxLTYgNjI1IG9yIGVxdWl2YWxlbnQKKyAgICAgICAgQlQ2MDFfNl81MjUsICAvLyBSZWMuSVRVLVIgQlQuNjAxLTYgNTI1IG9yIGVxdWl2YWxlbnQKKyAgICAgICAgR0VORVJJQ19GSUxNLCAvLyBHZW5lcmljIEZpbG0KKyAgICAgICAgQlQyMDIwLCAgICAgICAvLyBSZWMuSVRVLVIgQlQuMjAyMCBvciBlcXVpdmFsZW50CisKKyAgICAgICAgT1RIRVIgPSAweGZmLCAvLyBOb3Qgb25lIG9mIHRoZSBhYm92ZSB2YWx1ZXMKKyAgICB9OworCisgICAgLy8gVHJhbnNmZXIgY2hhcmFjdGVyaXN0aWNzCisgICAgZW51bSBUcmFuc2ZlciA6IHVpbnQzMl90IHsKKyAgICAgICAgVU5TUEVDSUZJRUQsICAvLyBVbnNwZWNpZmllZAorICAgICAgICBMSU5FQVIsICAgICAgIC8vIExpbmVhciB0cmFuc2ZlciBjaGFyYWN0ZXJpc3RpY3MKKyAgICAgICAgU1JHQiwgICAgICAgICAvLyBzUkdCIG9yIGVxdWl2YWxlbnQKKyAgICAgICAgU01QVEUxNzBNLCAgICAvLyBTTVBURSAxNzBNIG9yIGVxdWl2YWxlbnQgKGUuZy4gQlQuNjAxLzcwOS8yMDIwKQorICAgICAgICBHQU1NQTIyLCAgICAgIC8vIEFzc3VtZWQgZGlzcGxheSBnYW1tYSAyLjIKKyAgICAgICAgR0FNTUEyOCwgICAgICAvLyBBc3N1bWVkIGRpc3BsYXkgZ2FtbWEgMi44CisgICAgICAgIFNUMjA4NCwgICAgICAgLy8gU01QVEUgU1QgMjA4NCBmb3IgMTAvMTIvMTQvMTYgYml0IHN5c3RlbXMKKyAgICAgICAgSExHLCAgICAgICAgICAvLyBBUklCIFNURC1CNjcgaHlicmlkLWxvZy1nYW1tYQorCisgICAgICAgIC8vIHZhbHVlcyB1bmxpa2VseSB0byBiZSByZXF1aXJlZCBieSBBbmRyb2lkIGZvbGxvdyBoZXJlCisgICAgICAgIFNNUFRFMjQwTSA9IDB4NDAsIC8vIFNNUFRFIDI0ME0KKyAgICAgICAgWFZZQ0MsICAgICAgICAvLyBJRUMgNjE5NjYtMi00CisgICAgICAgIEJUMTM2MSwgICAgICAgLy8gUmVjLklUVS1SIEJULjEzNjEgZXh0ZW5kZWQgZ2FtdXQKKyAgICAgICAgU1Q0MjgsICAgICAgICAvLyBTTVBURSBTVCA0MjgtMQorCisgICAgICAgIE9USEVSID0gMHhmZiwgLy8gTm90IG9uZSBvZiB0aGUgYWJvdmUgdmFsdWVzCisgICAgfTsKKworICAgIC8vIFlVViA8LT4gUkdCIGNvbnZlcnNpb24KKyAgICBlbnVtIE1hdHJpeENvZWZmcyA6IHVpbnQzMl90IHsKKyAgICAgICAgVU5TUEVDSUZJRUQsICAgIC8vIFVuc3BlY2lmaWVkCisgICAgICAgIEJUNzA5XzUsICAgICAgICAvLyBSZWMuSVRVLVIgQlQuNzA5LTUgb3IgZXF1aXZhbGVudAorICAgICAgICBCVDQ3MF82TSwgICAgICAgLy8gS1I9MC4zMCwgS0I9MC4xMSBvciBlcXVpdmFsZW50CisgICAgICAgIEJUNjAxXzYsICAgICAgICAvLyBSZWMuSVRVLVIgQlQuNjAxLTYgNjI1IG9yIGVxdWl2YWxlbnQKKyAgICAgICAgU01QVEUyNDBNLCAgICAgIC8vIFNNUFRFIDI0ME0gb3IgZXF1aXZhbGVudAorICAgICAgICBCVDIwMjAsICAgICAgICAgLy8gUmVjLklUVS1SIEJULjIwMjAgbm9uLWNvbnN0YW50IGx1bWluYW5jZQorICAgICAgICBCVDIwMjBDT05TVEFOVCwgLy8gUmVjLklUVS1SIEJULjIwMjAgY29uc3RhbnQgbHVtaW5hbmNlCisKKyAgICAgICAgT1RIRVIgPSAweGZmLCAgIC8vIE5vdCBvbmUgb2YgdGhlIGFib3ZlIHZhbHVlcworICAgIH07CisKKyAgICBSYW5nZSByYW5nZTsKKyAgICBQcmltYXJpZXMgcHJpbWFyaWVzOworICAgIFRyYW5zZmVyIHRyYW5zZmVyOworICAgIE1hdHJpeENvZWZmcyBtYXRyaXhDb2VmZnM7Cit9OworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL1JFQURNRS5tZCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhODg4MTEKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL1JFQURNRS5tZApAQCAtMCwwICsxLDMzIEBACisjIyBPbXggSGFsIEAgMS4wIHRlc3RzICMjCistLS0KKyMjIE92ZXJ2aWV3IDoKK1RoZSBzY29wZSBvZiB0aGUgdGVzdHMgcHJlc2VudGVkIGhlcmUgaXMgbm90IHJlc3RyaWN0ZWQgc29sZWx5IHRvIHRlc3Rpbmcgb214IGhhbCBAIDEuMCBBUEkgYnV0IGFsc28gdGVzdCB0byBvbXggY29yZSBmdW5jdGlvbmFsaXR5IGFuZCB0byBhbiBleHRlbnQgb214IGNvbXBvbmVudHMgYXMgd2VsbC4gVGhlIGN1cnJlbnQgZGlyZWN0b3J5IGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgZm9sZGVyczogYXVkaW8sIGNvbW1vbiwgY29tcG9uZW50LCBtYXN0ZXIgYW5kIHZpZGVvLiBCZXNpZGVzIGNvbW1vbiBhbGwgb3RoZXIgZm9sZGVycyBjb250YWluIHRlc3QgZml4dHVyZXMgZm9yIHRlc3RpbmcgQVYgZGVjb2RlciwgZW5jb2RlciBjb21wb25lbnRzLiBDb21tb24gY29uc3RpdHV0ZXMgZmlsZXMgdGhhdCBhcmUgdXNlZCBhY3Jvc3MgYnkgdGhlc2UgdGVzdCBhcHBsaWNhdGlvbnMuCisKKyMjIyMgbWFzdGVyIDoKK0Z1bmN0aW9uYWxpdHkgb2YgbWFzdGVyIGlzIHRvIGVudW1lcmF0ZSBhbGwgdGhlIG9teCBjb21wb25lbnRzIChhbmQgdGhlIHJvbGVzIGl0IHN1cHBvcnRzKSBhdmFpbGFibGUgaW4gYW5kcm9pZCBtZWRpYSBmcmFtZXdvcmsuCisKK3VzYWdlOiBWdHNIYWxNZWRpYU9teFYxXF8wVGFyZ2V0TWFzdGVyVGVzdCAtSSBkZWZhdWx0CisKKyMjIyMgY29tcG9uZW50IDoKK1RoaXMgZm9sZGVyIGluY2x1ZGVzIHRlc3QgZml4dHVyZXMgdGhhdCB0ZXN0cyBhc3BlY3RzIGNvbW1vbiB0byBhbGwgb214IGNvbXBhdGlibGUgY29tcG9uZW50cy4gRm9yIGluc3RhbmNlLCBwb3J0IGVuYWJsaW5nL2Rpc2FibGluZywgZW51bWVyYXRpbmcgcG9ydCBmb3JtYXRzLCBzdGF0ZSB0cmFuc2l0aW9ucywgZmx1c2gsIC4uLiwgc3RheSBjb21tb24gdG8gYWxsIGNvbXBvbmVudHMgaXJyZXNwZWN0aXZlIG9mIHRoZSBzZXJ2aWNlIHRoZXkgb2ZmZXIuIFRlc3QgZml4dHVyZXMgYXJlIGRpcmVjdGVkIHRvd2FyZHMgdGVzdGluZyB0aGUgb214IGNvcmUuIEV2ZXJ5IHN0YW5kYXJkIE9NWCBjb21wYXRpYmxlIGNvbXBvbmVudCBpcyBleHBlY3RlZCB0byBwYXNzIHRoZXNlIHRlc3RzLgorCit1c2FnZTogVnRzSGFsTWVkaWFPbXhWMVxfMFRhcmdldENvbXBvbmVudFRlc3QgLUkgZGVmYXVsdCAtQyA8Y29tcCBuYW1lPiAtUiA8Y29tcCByb2xlPgorCisjIyMjIGF1ZGlvIDoKK1RoaXMgZm9sZGVyIGluY2x1ZGVzIHRlc3QgZml4dHVyZXMgYXNzb2NpYXRlZCB3aXRoIHRlc3RpbmcgYXVkaW8gZW5jb2RlciBhbmQgZGVjb2RlciBjb21wb25lbnRzIHN1Y2ggYXMgc2ltcGxlIGVuY29kaW5nIG9mIGEgcmF3IGNsaXAgb3IgZGVjb2Rpbmcgb2YgYW4gZWxlbWVudGFyeSBzdHJlYW0sIGVuZCBvZiBzdHJlYW0gdGVzdCwgdGltZXN0YW1wIGRldmlhdGlvbnMgdGVzdCwgZmx1c2ggdGVzdCBhbmQgc28gb24uIFRoZXNlIHRlc3RzIGFyZSBhaW1lZCB0b3dhcmRzIHRlc3RpbmcgdGhlIHBsdWdpbiB0aGF0IGNvbm5lY3RzIHRoZSBjb21wb25lbnQgdG8gdGhlIG9teCBjb3JlLgorCit1c2FnZToKKworVnRzSGFsTWVkaWFPbXhWMVxfMFRhcmdldEF1ZGlvRGVjVGVzdCAtSSBkZWZhdWx0IC1DIDxjb21wIG5hbWU+IC1SIGF1ZGlvX2RlY29kZXIuPGNvbXAgY2xhc3M+IC1QIC9zZGNhcmQvbWVkaWEvCisKK1Z0c0hhbE1lZGlhT214VjFcXzBUYXJnZXRBdWRpb0VuY1Rlc3QgLUkgZGVmYXVsdCAtQyA8Y29tcCBuYW1lPiAtUiBhdWRpb19lbmNvZGVyLjxjb21wIGNsYXNzPiAtUCAvc2RjYXJkL21lZGlhLworCisjIyMjIHZpZGVvIDoKK1RoaXMgZm9sZGVyIGluY2x1ZGVzIHRlc3QgZml4dHVyZXMgYXNzb2NpYXRlZCB3aXRoIHRlc3RpbmcgdmlkZW8gZW5jb2RlciBhbmQgZGVjb2RlciBjb21wb25lbnRzIHN1Y2ggYXMgc2ltcGxlIGVuY29kaW5nIG9mIGEgcmF3IGNsaXAgb3IgZGVjb2Rpbmcgb2YgYW4gZWxlbWVudGFyeSBzdHJlYW0sIGVuZCBvZiBzdHJlYW0gdGVzdCwgdGltZXN0YW1wIGRldmlhdGlvbnMgdGVzdCwgZmx1c2ggdGVzdCBhbmQgc28gb24uIFRoZXNlIHRlc3RzIGFyZSBhaW1lZCB0b3dhcmRzIHRlc3RpbmcgdGhlIHBsdWdpbiB0aGF0IGNvbm5lY3RzIHRoZSBjb21wb25lbnQgdG8gdGhlIG9teCBjb3JlLgorCit1c2FnZToKKworVnRzSGFsTWVkaWFPbXhWMVxfMFRhcmdldFZpZGVvRGVjVGVzdCAtSSBkZWZhdWx0IC1DIDxjb21wIG5hbWU+IC1SIHZpZGVvX2RlY29kZXIuPGNvbXAgY2xhc3M+IC1QIC9zZGNhcmQvbWVkaWEvCisKK1Z0c0hhbE1lZGlhT214VjFcXzBUYXJnZXRWaWRlb0VuY1Rlc3QgLUkgZGVmYXVsdCAtQyA8Y29tcCBuYW1lPiAtUiB2aWRlb19lbmNvZGVyLjxjb21wIGNsYXNzPiAtUCAvc2RjYXJkL21lZGlhLworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL0FuZHJvaWQuYnAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZjNzNjZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vQW5kcm9pZC5icApAQCAtMCwwICsxLDc5IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9FbmNUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0VuY1Rlc3QuY3BwIiwKKyAgICAgICAgICAgIm1lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsbWVtb3J5IiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYnN0YWdlZnJpZ2h0X2ZvdW5kYXRpb24iLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorICAgIGluY2x1ZGVfZGlyczogWworICAgICAgICAiZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9vcGVubWF4LyIsCisgICAgICAgICJoYXJkd2FyZS9pbnRlcmZhY2VzL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tbW9uIiwKKyAgICBdLAorfQorCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9EZWNUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0RlY1Rlc3QuY3BwIiwKKyAgICAgICAgICAgIm1lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsbWVtb3J5IiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYnN0YWdlZnJpZ2h0X2ZvdW5kYXRpb24iLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorICAgIGluY2x1ZGVfZGlyczogWworICAgICAgICAiZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9vcGVubWF4LyIsCisgICAgICAgICJoYXJkd2FyZS9pbnRlcmZhY2VzL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tbW9uIiwKKyAgICBdLAorfQorCisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9EZWNUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9EZWNUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2MxODE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0RlY1Rlc3QuY3BwCkBAIC0wLDAgKzEsMTEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibWVkaWFfb214X2hpZGxfYXVkaW9fZGVjX3Rlc3QiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9hbGxvY2F0b3IvMS4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE9ic2VydmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE5vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpNZXNzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6Q29kZWNCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNYXBwZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxtZWRpYV9hdWRpb19oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8bWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPGZzdHJlYW0+CisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAKK2NsYXNzIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9CisKKyAgICBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKSA6IGluc3RhbmNlKCJkZWZhdWx0IiksIHJlcygiL3NkY2FyZC9tZWRpYS8iKSB7fQorCisgICAgdm9pZCBzZXRJbnN0YW5jZShjb25zdCBjaGFyKiBfaW5zdGFuY2UpIHsgaW5zdGFuY2UgPSBfaW5zdGFuY2U7IH0KKworICAgIHZvaWQgc2V0Q29tcG9uZW50KGNvbnN0IGNoYXIqIF9jb21wb25lbnQpIHsgY29tcG9uZW50ID0gX2NvbXBvbmVudDsgfQorCisgICAgdm9pZCBzZXRSb2xlKGNvbnN0IGNoYXIqIF9yb2xlKSB7IHJvbGUgPSBfcm9sZTsgfQorCisgICAgdm9pZCBzZXRSZXMoY29uc3QgY2hhciogX3JlcykgeyByZXMgPSBfcmVzOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIGluc3RhbmNlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRDb21wb25lbnQoKSBjb25zdCB7IHJldHVybiBjb21wb25lbnQ7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldFJvbGUoKSBjb25zdCB7IHJldHVybiByb2xlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSZXMoKSBjb25zdCB7IHJldHVybiByZXM7IH0KKworICAgIGludCBpbml0RnJvbU9wdGlvbnMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgICAgIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKKyAgICAgICAgICAgIHsiaW5zdGFuY2UiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0knfSwKKyAgICAgICAgICAgIHsiY29tcG9uZW50IiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdDJ30sCisgICAgICAgICAgICB7InJvbGUiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ1InfSwKKyAgICAgICAgICAgIHsicmVzIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdQJ30sCisgICAgICAgICAgICB7MCwgMCwgMCwgMH19OworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiSTpDOlI6UDoiLCBvcHRpb25zLCAmaW5kZXgpOworICAgICAgICAgICAgaWYgKGMgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICAgICAgICAgIHNldEluc3RhbmNlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0MnOgorICAgICAgICAgICAgICAgICAgICBzZXRDb21wb25lbnQob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUic6CisgICAgICAgICAgICAgICAgICAgIHNldFJvbGUob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUCc6CisgICAgICAgICAgICAgICAgICAgIHNldFJlcyhvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW5kIDwgYXJnYykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlc1xuXG4iCisgICAgICAgICAgICAgICAgICAgICJ1c2FnZTogJXMgPGd0ZXN0IG9wdGlvbnM+IDx0ZXN0IG9wdGlvbnM+XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInRlc3Qgb3B0aW9ucyBhcmU6XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgIi1JLCAtLWluc3RhbmNlOiBIQUwgaW5zdGFuY2UgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLUMsIC0tY29tcG9uZW50OiBPTVggY29tcG9uZW50IHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1SLCAtLXJvbGU6IE9NWCBjb21wb25lbnQgUm9sZVxuIgorICAgICAgICAgICAgICAgICAgICAiLVAsIC0tcmVzOiBSZXNvdXJjZSBmaWxlcyBkaXJlY3RvcnkgbG9jYXRpb25cbiIsCisgICAgICAgICAgICAgICAgICAgIGFyZ3Zbb3B0aW5kID86IDFdLCBhcmd2WzBdKTsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICBoaWRsX3N0cmluZyBpbnN0YW5jZTsKKyAgICBoaWRsX3N0cmluZyBjb21wb25lbnQ7CisgICAgaGlkbF9zdHJpbmcgcm9sZTsKKyAgICBoaWRsX3N0cmluZyByZXM7Cit9OworCitzdGF0aWMgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KiBnRW52ID0gbnVsbHB0cjsKKworLy8gYXVkaW8gZGVjb2RlciB0ZXN0IGZpeHR1cmUgY2xhc3MKK2NsYXNzIEF1ZGlvRGVjSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgZGlzYWJsZVRlc3QgPSBmYWxzZTsKKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgICAgIG9teCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElPbXg+KAorICAgICAgICAgICAgZ0Vudi0+Z2V0SW5zdGFuY2UoKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXgsIG51bGxwdHIpOworICAgICAgICBvYnNlcnZlciA9CisgICAgICAgICAgICBuZXcgQ29kZWNPYnNlcnZlcihbdGhpc10oTWVzc2FnZSBtc2cpIHsgaGFuZGxlTWVzc2FnZShtc2cpOyB9KTsKKyAgICAgICAgQVNTRVJUX05FKG9ic2VydmVyLCBudWxscHRyKTsKKyAgICAgICAgaWYgKHN0cm5jbXAoZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSwgIk9NWC4iLCA0KSAhPSAwKQorICAgICAgICAgICAgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBFWFBFQ1RfVFJVRShvbXgtPmFsbG9jYXRlTm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdFbnYtPmdldENvbXBvbmVudCgpLCBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElPbXhOb2RlPiBjb25zdCYgX25sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+b214Tm9kZSA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teE5vZGUsIG51bGxwdHIpOworICAgICAgICBBU1NFUlRfTkUoZ0Vudi0+Z2V0Um9sZSgpLmVtcHR5KCksIHRydWUpIDw8ICJJbnZhbGlkIENvbXBvbmVudCBSb2xlIjsKKyAgICAgICAgc3RydWN0IFN0cmluZ1RvTmFtZSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBOYW1lOworICAgICAgICAgICAgc3RhbmRhcmRDb21wIENvbXBOYW1lOworICAgICAgICB9OworICAgICAgICBjb25zdCBTdHJpbmdUb05hbWUga1N0cmluZ1RvTmFtZVtdID0geworICAgICAgICAgICAgeyJtcDMiLCBtcDN9LCB7ImFtcm5iIiwgYW1ybmJ9LCAgICAgICB7ImFtcndiIiwgYW1yd2J9LAorICAgICAgICAgICAgeyJhYWMiLCBhYWN9LCB7InZvcmJpcyIsIHZvcmJpc30sICAgICB7Im9wdXMiLCBvcHVzfSwKKyAgICAgICAgICAgIHsicGNtIiwgcGNtfSwgeyJnNzExYWxhdyIsIGc3MTFhbGF3fSwgeyJnNzExbWxhdyIsIGc3MTFtbGF3fSwKKyAgICAgICAgICAgIHsiZ3NtIiwgZ3NtfSwgeyJyYXciLCByYXd9LAorICAgICAgICB9OworICAgICAgICBjb25zdCBzaXplX3Qga051bVN0cmluZ1RvTmFtZSA9CisgICAgICAgICAgICBzaXplb2Yoa1N0cmluZ1RvTmFtZSkgLyBzaXplb2Yoa1N0cmluZ1RvTmFtZVswXSk7CisgICAgICAgIGNvbnN0IGNoYXIqIHBjaDsKKyAgICAgICAgY2hhciBzdWJzdHJpbmdbT01YX01BWF9TVFJJTkdOQU1FX1NJWkVdOworICAgICAgICBzdHJjcHkoc3Vic3RyaW5nLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgICAgIHBjaCA9IHN0cmNocihzdWJzdHJpbmcsICcuJyk7CisgICAgICAgIEFTU0VSVF9ORShwY2gsIG51bGxwdHIpOworICAgICAgICBjb21wTmFtZSA9IHVua25vd25fY29tcDsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrTnVtU3RyaW5nVG9OYW1lOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghc3RyY2FzZWNtcChwY2ggKyAxLCBrU3RyaW5nVG9OYW1lW2ldLk5hbWUpKSB7CisgICAgICAgICAgICAgICAgY29tcE5hbWUgPSBrU3RyaW5nVG9OYW1lW2ldLkNvbXBOYW1lOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjb21wTmFtZSA9PSB1bmtub3duX2NvbXApIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgc3RydWN0IENvbXBUb0NvZGluZyB7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgICAgICBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2Rpbmc7CisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBDb21wVG9Db2Rpbmcga0NvbXBUb0NvZGluZ1tdID0geworICAgICAgICAgICAge21wMywgT01YX0FVRElPX0NvZGluZ01QM30sCisgICAgICAgICAgICB7YW1ybmIsIE9NWF9BVURJT19Db2RpbmdBTVJ9LAorICAgICAgICAgICAge2FtcndiLCBPTVhfQVVESU9fQ29kaW5nQU1SfSwKKyAgICAgICAgICAgIHthYWMsIE9NWF9BVURJT19Db2RpbmdBQUN9LAorICAgICAgICAgICAge3ZvcmJpcywgT01YX0FVRElPX0NvZGluZ1ZPUkJJU30sCisgICAgICAgICAgICB7cGNtLCBPTVhfQVVESU9fQ29kaW5nUENNfSwKKyAgICAgICAgICAgIHtvcHVzLCAoT01YX0FVRElPX0NPRElOR1RZUEUpT01YX0FVRElPX0NvZGluZ0FuZHJvaWRPUFVTfSwKKyAgICAgICAgICAgIHtnNzExYWxhdywgT01YX0FVRElPX0NvZGluZ0c3MTF9LAorICAgICAgICAgICAge2c3MTFtbGF3LCBPTVhfQVVESU9fQ29kaW5nRzcxMX0sCisgICAgICAgICAgICB7Z3NtLCBPTVhfQVVESU9fQ29kaW5nR1NNRlJ9LAorICAgICAgICAgICAge3JhdywgT01YX0FVRElPX0NvZGluZ1BDTX0sCisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qga051bUNvbXBUb0NvZGluZyA9CisgICAgICAgICAgICBzaXplb2Yoa0NvbXBUb0NvZGluZykgLyBzaXplb2Yoa0NvbXBUb0NvZGluZ1swXSk7CisgICAgICAgIHNpemVfdCBpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwga051bUNvbXBUb0NvZGluZzsgKytpKSB7CisgICAgICAgICAgICBpZiAoa0NvbXBUb0NvZGluZ1tpXS5Db21wTmFtZSA9PSBjb21wTmFtZSkgeworICAgICAgICAgICAgICAgIGVFbmNvZGluZyA9IGtDb21wVG9Db2RpbmdbaV0uZUVuY29kaW5nOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpID09IGtOdW1Db21wVG9Db2RpbmcpIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgZW9zRmxhZyA9IGZhbHNlOworICAgICAgICBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgICAgIHRpbWVzdGFtcFVzID0gMDsKKyAgICAgICAgdGltZXN0YW1wRGV2VGVzdCA9IGZhbHNlOworICAgICAgICBpZiAoZGlzYWJsZVRlc3QpIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISAgVGVzdCBEaXNhYmxlZFxuIjsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIGlmIChvbXhOb2RlICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKChvbXhOb2RlLT5mcmVlTm9kZSgpKS5pc09rKCkpOworICAgICAgICAgICAgb214Tm9kZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBjYWxsYmFjayBmdW5jdGlvbiB0byBwcm9jZXNzIG1lc3NhZ2VzIHJlY2VpdmVkIGJ5IG9uTWVzc2FnZXMoKSBmcm9tIElMCisgICAgLy8gY2xpZW50LgorICAgIHZvaWQgaGFuZGxlTWVzc2FnZShNZXNzYWdlIG1zZykgeworICAgICAgICBpZiAobXNnLnR5cGUgPT0gTWVzc2FnZTo6VHlwZTo6RklMTF9CVUZGRVJfRE9ORSkgeworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS5mbGFncyAmIE9NWF9CVUZGRVJGTEFHX0VPUykgeworICAgICAgICAgICAgICAgIGVvc0ZsYWcgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS5yYW5nZUxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZnJhbWVzUmVjZWl2ZWQgKz0gMTsKKyAgICAgICAgICAgICAgICAvLyBGb3IgZGVjb2RlciBjb21wb25lbnRzIGN1cnJlbnQgdGltZXN0YW1wIGFsd2F5cyBleGNlZWRzCisgICAgICAgICAgICAgICAgLy8gcHJldmlvdXMgdGltZXN0YW1wCisgICAgICAgICAgICAgICAgRVhQRUNUX0dFKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS50aW1lc3RhbXBVcywgdGltZXN0YW1wVXMpOworICAgICAgICAgICAgICAgIHRpbWVzdGFtcFVzID0gbXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLnRpbWVzdGFtcFVzOworICAgICAgICAgICAgICAgIC8vIFRlc3QgaWYgY3VycmVudCB0aW1lc3RhbXAgaXMgYW1vbmcgdGhlIGxpc3Qgb2YgcXVldWVkCisgICAgICAgICAgICAgICAgLy8gdGltZXN0YW1wcworICAgICAgICAgICAgICAgIGlmICh0aW1lc3RhbXBEZXZUZXN0KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgdHNIaXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6TGlzdDx1aW50NjRfdD46Oml0ZXJhdG9yIGl0ID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcFVzbGlzdC5iZWdpbigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaXQgIT0gdGltZXN0YW1wVXNsaXN0LmVuZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKml0ID09IHRpbWVzdGFtcFVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wVXNsaXN0LmVyYXNlKGl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0c0hpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpdCsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICh0c0hpdCA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWVzdGFtcFVzbGlzdC5lbXB0eSgpID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHRzSGl0LCB0cnVlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiVGltZVN0YW1wIG5vdCByZWNvZ25pemVkIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjZXJyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIFJlY2VpdmVkIG5vbi16ZXJvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm91dHB1dCAvIFRpbWVTdGFtcCBub3QgcmVjb2duaXplZCBcbiI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHRlc3RFT1MoYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIGJvb2wgc2lnbmFsRU9TID0gZmFsc2UpOworCisgICAgZW51bSBzdGFuZGFyZENvbXAgeworICAgICAgICBtcDMsCisgICAgICAgIGFtcm5iLAorICAgICAgICBhbXJ3YiwKKyAgICAgICAgYWFjLAorICAgICAgICB2b3JiaXMsCisgICAgICAgIG9wdXMsCisgICAgICAgIHBjbSwKKyAgICAgICAgZzcxMWFsYXcsCisgICAgICAgIGc3MTFtbGF3LAorICAgICAgICBnc20sCisgICAgICAgIHJhdywKKyAgICAgICAgdW5rbm93bl9jb21wLAorICAgIH07CisKKyAgICBzcDxJT214PiBvbXg7CisgICAgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXI7CisgICAgc3A8SU9teE5vZGU+IG9teE5vZGU7CisgICAgc3RhbmRhcmRDb21wIGNvbXBOYW1lOworICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZzsKKyAgICBib29sIGRpc2FibGVUZXN0OworICAgIGJvb2wgZW9zRmxhZzsKKyAgICB1aW50MzJfdCBmcmFtZXNSZWNlaXZlZDsKKyAgICB1aW50NjRfdCB0aW1lc3RhbXBVczsKKyAgICA6OmFuZHJvaWQ6Okxpc3Q8dWludDY0X3Q+IHRpbWVzdGFtcFVzbGlzdDsKKyAgICBib29sIHRpbWVzdGFtcERldlRlc3Q7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCBkZXNjcmlwdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICAgIH0KK307CisKKy8vIGVuZCBvZiBzdHJlYW0gdGVzdCBmb3IgYXVkaW8gZGVjb2RlciBjb21wb25lbnRzCit2b2lkIEF1ZGlvRGVjSGlkbFRlc3Q6OnRlc3RFT1MoYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNpZ25hbEVPUykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHNpemVfdCBpID0gMDsKKyAgICBpZiAoc2lnbmFsRU9TKSB7CisgICAgICAgIGlmICgoaSA9IGdldEVtcHR5QnVmZmVySUQoaUJ1ZmZlcikpIDwgaUJ1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICAvLyBzaWduYWwgYW4gZW1wdHkgYnVmZmVyIHdpdGggZmxhZyBzZXQgdG8gRU9TCisgICAgICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGksIDAsIE9NWF9CVUZGRVJGTEFHX0VPUywgMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gRGlzcGF0Y2ggYWxsIGNsaWVudCBvd25lZCBvdXRwdXQgYnVmZmVycyB0byByZWNvdmVyIHJlbWFpbmluZyBmcmFtZXMKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAoKGkgPSBnZXRFbXB0eUJ1ZmZlcklEKG9CdWZmZXIpKSA8IG9CdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICB3aGlsZSAoMSkgeworICAgICAgICBNZXNzYWdlIG1zZzsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKyAgICAgICAgZm9yICg7IGkgPCBpQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCgqaUJ1ZmZlcilbaV0ub3duZXIgIT0gY2xpZW50KSBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBpQnVmZmVyLT5zaXplKCkpIGJyZWFrOworICAgIH0KKyAgICAvLyB0ZXN0IGZvciBmbGFnCisgICAgRVhQRUNUX0VRKGVvc0ZsYWcsIHRydWUpOworICAgIGVvc0ZsYWcgPSBmYWxzZTsKK30KKworLy8gU2V0IERlZmF1bHQgcG9ydCBwYXJhbS4KK3ZvaWQgc2V0RGVmYXVsdFBvcnRQYXJhbSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZywKKyAgICBpbnQzMl90IG5DaGFubmVscyA9IDIsIGludDMyX3QgblNhbXBsZVJhdGUgPSA0NDEwMCwKKyAgICBPTVhfQVVESU9fUENNTU9ERVRZUEUgZVBDTU1vZGUgPSBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwKKyAgICBPTVhfTlVNRVJJQ0FMREFUQVRZUEUgZU51bURhdGEgPSBPTVhfTnVtZXJpY2FsRGF0YVNpZ25lZCwKKyAgICBpbnQzMl90IG5CaXRQZXJTYW1wbGUgPSAxNikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBvcnREZWYuZm9ybWF0LmF1ZGlvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgIHBvcnREZWYuZm9ybWF0LmF1ZGlvLmVFbmNvZGluZyA9IGVFbmNvZGluZzsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBzd2l0Y2ggKChpbnQpZUVuY29kaW5nKSB7CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ1BDTToKKyAgICAgICAgICAgIHNldHVwUENNUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIG5DaGFubmVscywgZU51bURhdGEsIG5CaXRQZXJTYW1wbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgblNhbXBsZVJhdGUsIGVQQ01Nb2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdBQUM6CisgICAgICAgICAgICBzZXR1cEFBQ1BvcnQob214Tm9kZSwgcG9ydEluZGV4LCBPTVhfQVVESU9fQUFDT2JqZWN0TnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDU3RyZWFtRm9ybWF0TVA0RkYsIG5DaGFubmVscywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBuU2FtcGxlUmF0ZSk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8vIEluIGRlY29kZXIgY29tcG9uZW50cywgb2Z0ZW4gdGhlIGlucHV0IHBvcnQgcGFyYW1ldGVycyBnZXQgdXBkYXRlZCB1cG9uCisvLyBwYXJzaW5nIHRoZSBoZWFkZXIgb2YgZWxlbWVudGFyeSBzdHJlYW0uIENsaWVudCBuZWVkcyB0byBjb2xsZWN0IHRoaXMKKy8vIGluZm9ybWF0aW9uIHRvIHJlY29uZmlndXJlIG90aGVyIHBvcnRzIHRoYXQgc2hhcmUgZGF0YSB3aXRoIHRoaXMgaW5wdXQKKy8vIHBvcnQuCit2b2lkIGdldElucHV0Q2hhbm5lbEluZm8oc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZywgaW50MzJfdCogbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QqIG5TYW1wbGVSYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgKm5DaGFubmVscyA9IDA7CisgICAgKm5TYW1wbGVSYXRlID0gMDsKKworICAgIHN3aXRjaCAoKGludCllRW5jb2RpbmcpIHsKKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nR1NNRlI6CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ0c3MTE6CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ1BDTTogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX1BDTU1PREVUWVBFIHBhcmFtOworICAgICAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9QY20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcGFyYW0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICpuQ2hhbm5lbHMgPSBwYXJhbS5uQ2hhbm5lbHM7CisgICAgICAgICAgICAqblNhbXBsZVJhdGUgPSBwYXJhbS5uU2FtcGxpbmdSYXRlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nTVAzOiB7CisgICAgICAgICAgICBPTVhfQVVESU9fUEFSQU1fTVAzVFlQRSBwYXJhbTsKKyAgICAgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvTXAzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBhcmFtKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICAqbkNoYW5uZWxzID0gcGFyYW0ubkNoYW5uZWxzOworICAgICAgICAgICAgKm5TYW1wbGVSYXRlID0gcGFyYW0ublNhbXBsZVJhdGU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdBbmRyb2lkT1BVUzogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX0FORFJPSURfT1BVU1RZUEUgcGFyYW07CisgICAgICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbUF1ZGlvQW5kcm9pZE9wdXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcGFyYW0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICpuQ2hhbm5lbHMgPSBwYXJhbS5uQ2hhbm5lbHM7CisgICAgICAgICAgICAqblNhbXBsZVJhdGUgPSBwYXJhbS5uU2FtcGxlUmF0ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ1ZPUkJJUzogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX1ZPUkJJU1RZUEUgcGFyYW07CisgICAgICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1ZvcmJpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZwYXJhbSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgKm5DaGFubmVscyA9IHBhcmFtLm5DaGFubmVsczsKKyAgICAgICAgICAgICpuU2FtcGxlUmF0ZSA9IHBhcmFtLm5TYW1wbGVSYXRlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nQU1SOiB7CisgICAgICAgICAgICBPTVhfQVVESU9fUEFSQU1fQU1SVFlQRSBwYXJhbTsKKyAgICAgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvQW1yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBhcmFtKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICAqbkNoYW5uZWxzID0gcGFyYW0ubkNoYW5uZWxzOworICAgICAgICAgICAgKm5TYW1wbGVSYXRlID0gODAwMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ0FBQzogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX0FBQ1BST0ZJTEVUWVBFIHBhcmFtOworICAgICAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9BYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcGFyYW0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICpuQ2hhbm5lbHMgPSBwYXJhbS5uQ2hhbm5lbHM7CisgICAgICAgICAgICAqblNhbXBsZVJhdGUgPSBwYXJhbS5uU2FtcGxlUmF0ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8vIExvb2tVcFRhYmxlIG9mIGNsaXBzIGFuZCBtZXRhZGF0YSBmb3IgY29tcG9uZW50IHRlc3RpbmcKK3ZvaWQgR2V0VVJMRm9yQ29tcG9uZW50KEF1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcCBjb21wLCBjaGFyKiBtVVJMLAorICAgICAgICAgICAgICAgICAgICAgICAgY2hhciogaW5mbykgeworICAgIHN0cnVjdCBDb21wVG9VUkwgeworICAgICAgICBBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcDsKKyAgICAgICAgY29uc3QgY2hhciogbVVSTDsKKyAgICAgICAgY29uc3QgY2hhciogaW5mbzsKKyAgICB9OworICAgIHN0YXRpYyBjb25zdCBDb21wVG9VUkwga0NvbXBUb1VSTFtdID0geworICAgICAgICB7QXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjptcDMsCisgICAgICAgICAiYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6Lm1wMyIsCisgICAgICAgICAiYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YWFjLAorICAgICAgICAgImJiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5hYWMiLAorICAgICAgICAgImJiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmFtcm5iLAorICAgICAgICAgInNpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouYW1ybmIiLAorICAgICAgICAgInNpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouaW5mbyJ9LAorICAgICAgICB7QXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjphbXJ3YiwKKyAgICAgICAgICJiYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmFtcndiIiwKKyAgICAgICAgICJiYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6dm9yYmlzLAorICAgICAgICAgImJiYl92b3JiaXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei52b3JiaXMiLAorICAgICAgICAgImJiYl92b3JiaXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6Om9wdXMsCisgICAgICAgICAiYmJiX29wdXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5vcHVzIiwKKyAgICAgICAgICJiYmJfb3B1c19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6ZzcxMWFsYXcsICJiYmJfZzcxMWFsYXdfMWNoXzhraHoucmF3IiwKKyAgICAgICAgICJiYmJfZzcxMWFsYXdfMWNoXzhraHouaW5mbyJ9LAorICAgICAgICB7QXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjpnNzExbWxhdywgImJiYl9nNzExbXVsYXdfMWNoXzhraHoucmF3IiwKKyAgICAgICAgICJiYmJfZzcxMW11bGF3XzFjaF84a2h6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6Z3NtLCAiYmJiX2dzbV8xY2hfOGtoel8xM2ticHMucmF3IiwKKyAgICAgICAgICJiYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OnJhdywgImJiYl9yYXdfMWNoXzhraHpfczMybGUucmF3IiwKKyAgICAgICAgICJiYmJfcmF3XzFjaF84a2h6X3MzMmxlLmluZm8ifSwKKyAgICB9OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2Yoa0NvbXBUb1VSTCkgLyBzaXplb2Yoa0NvbXBUb1VSTFswXSk7ICsraSkgeworICAgICAgICBpZiAoa0NvbXBUb1VSTFtpXS5jb21wID09IGNvbXApIHsKKyAgICAgICAgICAgIHN0cmNhdChtVVJMLCBrQ29tcFRvVVJMW2ldLm1VUkwpOworICAgICAgICAgICAgc3RyY2F0KGluZm8sIGtDb21wVG9VUkxbaV0uaW5mbyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHBvcnQgc2V0dGluZ3MgcmVjb25maWd1cmF0aW9uIGR1cmluZyBydW50aW1lLiByZWNvbmZpZ3VyZXMgc2FtcGxlIHJhdGUgYW5kCisvLyBudW1iZXIKK3ZvaWQgcG9ydFJlY29uZmlndXJhdGlvbihzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlIG1zZykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRQb3J0U2V0dGluZ3NDaGFuZ2VkKSB7CisgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RGlzYWJsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCkgeworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIC8vIHRlc3QgaWYgY2xpZW50IGdvdCBhbGwgaXRzIGJ1ZmZlcnMgYmFjaworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgICAgICAgICAgICAgIC8vIGZyZWUgdGhlIGJ1ZmZlcnMKKyAgICAgICAgICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgICAgICAgICBvbXhOb2RlLT5mcmVlQnVmZmVyKGtQb3J0SW5kZXhPdXRwdXQsICgqb0J1ZmZlcilbaV0uaWQpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb0J1ZmZlcik7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydERpc2FibGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICAgICAgICAgIC8vIHNldCBQb3J0IFBhcmFtcworICAgICAgICAgICAgaW50MzJfdCBuQ2hhbm5lbHM7CisgICAgICAgICAgICBpbnQzMl90IG5TYW1wbGVSYXRlOworICAgICAgICAgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgJm5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5TYW1wbGVSYXRlKTsKKyAgICAgICAgICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbkNoYW5uZWxzLCBuU2FtcGxlUmF0ZSk7CisKKyAgICAgICAgICAgIC8vIElmIHlvdSBjYW4gZGlzYWJsZSBhIHBvcnQsIHRoZW4geW91IHNob3VsZCBiZSBhYmxlIHRvCisgICAgICAgICAgICAvLyBlbmFibGUKKyAgICAgICAgICAgIC8vIGl0IGFzIHdlbGwKKyAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgIHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RW5hYmxlKSwga1BvcnRJbmRleE91dHB1dCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAgICAgICAgIC8vIGRvIG5vdCBlbmFibGUgdGhlIHBvcnQgdW50aWwgYWxsIHRoZSBidWZmZXJzIGFyZSBzdXBwbGllZAorICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvQnVmZmVyKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgICAgICAgICAgYWxsb2NhdGVQb3J0QnVmZmVycyhvbXhOb2RlLCBvQnVmZmVyLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb0J1ZmZlcik7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydEVuYWJsZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgICAgICAgICAgLy8gZGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcnMKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKworLy8gYmxvY2tpbmcgY2FsbCB0byBlbnN1cmVzIGFwcGxpY2F0aW9uIHRvIFdhaXQgdGlsbCBhbGwgdGhlIGlucHV0cyBhcmUgY29uc3VtZWQKK3ZvaWQgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgc2l6ZV90IGkgPSAwOworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgcG9ydFJlY29uZmlndXJhdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgaUJ1ZmZlciwgb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIG1zZyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3RhdHVzID09IFRJTUVEX09VVCwgaXQgY291bGQgYmUgZHVlIHRvIHByb2Nlc3MgdGltZSBiZWluZyBsYXJnZQorICAgICAgICAvLyB0aGFuIERFRkFVTFRfVElNRU9VVCBvciBjb21wb25lbnQgbmVlZHMgb3V0cHV0IGJ1ZmZlcnMgdG8gc3RhcnQKKyAgICAgICAgLy8gcHJvY2Vzc2luZy4KKyAgICAgICAgZm9yICg7IGkgPCBpQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCgqaUJ1ZmZlcilbaV0ub3duZXIgIT0gY2xpZW50KSBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBpQnVmZmVyLT5zaXplKCkpIGJyZWFrOworCisgICAgICAgIC8vIERpc3BhdGNoIGFuIG91dHB1dCBidWZmZXIgYXNzdW1pbmcgb3V0UXVldWUuZW1wdHkoKSBpcyB0cnVlCisgICAgICAgIHNpemVfdCBpbmRleDsKKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpbmRleCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIERlY29kZSBOIEZyYW1lcwordm9pZCBkZWNvZGVORnJhbWVzKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZywgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LCBzdGQ6Omlmc3RyZWFtJiBlbGVTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4qIEluZm8sIGludCBvZmZzZXQsIGludCByYW5nZSwKKyAgICAgICAgICAgICAgICAgICBib29sIHNpZ25hbEVPUyA9IHRydWUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIGRpc3BhdGNoIG91dHB1dCBidWZmZXJzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpKTsKKyAgICB9CisgICAgLy8gZGlzcGF0Y2ggaW5wdXQgYnVmZmVycworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICBpbnQgZnJhbWVJRCA9IG9mZnNldDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgKGkgPCBpQnVmZmVyLT5zaXplKCkpICYmIChmcmFtZUlEIDwgKGludClJbmZvLT5zaXplKCkpICYmCisgICAgICAgICAgICAgICAgICAgICAgIChmcmFtZUlEIDwgKG9mZnNldCArIHJhbmdlKSk7CisgICAgICAgICBpKyspIHsKKyAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKyAgICAgICAgQVNTRVJUX0xFKCgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uZ2NvdW50KCksICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgIGZsYWdzID0gKCpJbmZvKVtmcmFtZUlEXS5mbGFnczsKKyAgICAgICAgaWYgKHNpZ25hbEVPUyAmJiAoKGZyYW1lSUQgPT0gKGludClJbmZvLT5zaXplKCkgLSAxKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAoZnJhbWVJRCA9PSAob2Zmc2V0ICsgcmFuZ2UgLSAxKSkpKQorICAgICAgICAgICAgZmxhZ3MgfD0gT01YX0JVRkZFUkZMQUdfRU9TOworICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGksICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgKCpJbmZvKVtmcmFtZUlEXS50aW1lc3RhbXApOworICAgICAgICBmcmFtZUlEKys7CisgICAgfQorCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworCisgICAgICAgIC8vIFBvcnQgUmVjb25maWd1cmF0aW9uCisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0sgJiYKKyAgICAgICAgICAgIG1zZy50eXBlID09IE1lc3NhZ2U6OlR5cGU6OkVWRU5UKSB7CisgICAgICAgICAgICBwb3J0UmVjb25maWd1cmF0aW9uKG9teE5vZGUsIG9ic2VydmVyLCBpQnVmZmVyLCBvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgbXNnKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmcmFtZUlEID09IChpbnQpSW5mby0+c2l6ZSgpIHx8IGZyYW1lSUQgPT0gKG9mZnNldCArIHJhbmdlKSkgYnJlYWs7CisKKyAgICAgICAgLy8gRGlzcGF0Y2ggaW5wdXQgYnVmZmVyCisgICAgICAgIHNpemVfdCBpbmRleCA9IDA7CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKGlCdWZmZXIpKSA8IGlCdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KCgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICAgICAgQVNTRVJUX0xFKCgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KCgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFNpemUoKSkpOworICAgICAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmdjb3VudCgpLCAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQpOworICAgICAgICAgICAgZmxhZ3MgPSAoKkluZm8pW2ZyYW1lSURdLmZsYWdzOworICAgICAgICAgICAgaWYgKHNpZ25hbEVPUyAmJiAoKGZyYW1lSUQgPT0gKGludClJbmZvLT5zaXplKCkgLSAxKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZyYW1lSUQgPT0gKG9mZnNldCArIHJhbmdlIC0gMSkpKSkKKyAgICAgICAgICAgICAgICBmbGFncyB8PSBPTVhfQlVGRkVSRkxBR19FT1M7CisgICAgICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkluZm8pW2ZyYW1lSURdLnRpbWVzdGFtcCk7CisgICAgICAgICAgICBmcmFtZUlEKys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpbmRleCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHNldCBjb21wb25lbnQgcm9sZQorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIFNldFJvbGUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBTZXQgQ29tcG9uZW50IFJvbGUiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gcG9ydCBmb3JtYXQgZW51bWVyYXRpb24KK1RFU1RfRihBdWRpb0RlY0hpZGxUZXN0LCBFbnVtZXJhdGVQb3J0Rm9ybWF0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgQ29tcG9uZW50IG9uIE1hbmRhdG9yeSBQb3J0IFBhcmFtZXRlcnMgKFBvcnQgRm9ybWF0KSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBzdGF0dXMgPSBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfQVVESU9fQ29kaW5nUENNKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gdGVzdCBwb3J0IHNldHRpbmdzIHJlY29uZmlndXJhdGlvbiwgZWxlbWVudGFyeSBzdHJlYW0gZGVjb2RlIGFuZCB0aW1lc3RhbXAKKy8vIGRldmlhdGlvbgorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIERlY29kZVRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgUG9ydCBSZWNvbmZpZ3VyYXRpb24sIERlY29kZSBhbmQgdGltZXN0YW1wIGRldmlhdGlvbiIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXSwgaW5mb1s1MTJdOworICAgIHN0cmNweShtVVJMLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBzdHJjcHkoaW5mbywgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KGNvbXBOYW1lLCBtVVJMLCBpbmZvKTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtLCBlbGVJbmZvOworCisgICAgZWxlSW5mby5vcGVuKGluZm8pOworICAgIEFTU0VSVF9FUShlbGVJbmZvLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4gSW5mbzsKKyAgICBpbnQgYnl0ZXNDb3VudCA9IDA7CisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIHVpbnQzMl90IHRpbWVzdGFtcCA9IDA7CisgICAgdGltZXN0YW1wRGV2VGVzdCA9IHRydWU7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKCEoZWxlSW5mbyA+PiBieXRlc0NvdW50KSkgYnJlYWs7CisgICAgICAgIGVsZUluZm8gPj4gZmxhZ3M7CisgICAgICAgIGVsZUluZm8gPj4gdGltZXN0YW1wOworICAgICAgICBJbmZvLnB1c2hfYmFjayh7Ynl0ZXNDb3VudCwgZmxhZ3MsIHRpbWVzdGFtcH0pOworICAgICAgICBpZiAoZmxhZ3MgIT0gT01YX0JVRkZFUkZMQUdfQ09ERUNDT05GSUcpCisgICAgICAgICAgICB0aW1lc3RhbXBVc2xpc3QucHVzaF9iYWNrKHRpbWVzdGFtcCk7CisgICAgfQorICAgIGVsZUluZm8uY2xvc2UoKTsKKworICAgIGludDMyX3QgbkNoYW5uZWxzLCBuU2FtcGxlUmF0ZTsKKyAgICAvLyBDb25maWd1cmUgaW5wdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcpOworICAgIGlmIChjb21wTmFtZSA9PSByYXcpCisgICAgICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsIDEsIDgwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX1BDTU1vZGVMaW5lYXIsIE9NWF9OdW1lcmljYWxEYXRhU2lnbmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKTsKKyAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nLCAmbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgJm5TYW1wbGVSYXRlKTsKKyAgICAvLyBDb25maWd1cmUgb3V0cHV0IHBvcnQKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9BVURJT19Db2RpbmdQQ00sCisgICAgICAgICAgICAgICAgICAgICAgICBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisgICAgLy8gUG9ydCBSZWNvbmZpZ3VyYXRpb24KKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwKKyAgICAgICAgICAgICAgICAgIChpbnQpSW5mby5zaXplKCkpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICB0ZXN0RU9TKCZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgRVhQRUNUX0VRKHRpbWVzdGFtcFVzbGlzdC5lbXB0eSgpLCB0cnVlKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBlbmQgb2Ygc2VxdWVuY2UgdGVzdAorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIEVPU1Rlc3RfTSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IGVuZCBvZiBzdHJlYW0gbW9ua2V5aW5nIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgaW50MzJfdCBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlOworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZyk7CisgICAgaWYgKGNvbXBOYW1lID09IHJhdykKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgMSwgODAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwgT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsICZuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAmblNhbXBsZVJhdGUpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGF0IHRoZSBzdGFydAorICAgIHRlc3RFT1MoJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlKTsKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIEVYUEVDVF9HRShmcmFtZXNSZWNlaXZlZCwgMFUpOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICB0aW1lc3RhbXBVcyA9IDA7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBlbmQgb2Ygc2VxdWVuY2UgdGVzdAorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIFRodW1ibmFpbFRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBSZXF1ZXN0IGZvciB0aHVtYm5haWwiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgaW50MzJfdCBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlOworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZyk7CisgICAgaWYgKGNvbXBOYW1lID09IHJhdykKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgMSwgODAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwgT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsICZuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAmblNhbXBsZVJhdGUpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGZvciB0aHVtYm5haWwKKyAgICAvLyBzaWduYWwgRU9TIGZsYWcgd2l0aCBsYXN0IGZyYW1lCisgICAgc2l6ZV90IGkgPSAwOworICAgIHdoaWxlICghKEluZm9baV0uZmxhZ3MgJiBPTVhfQlVGRkVSRkxBR19TWU5DRlJBTUUpKSBpKys7CisgICAgZWxlU3RyZWFtLm9wZW4obVVSTCwgc3RkOjppZnN0cmVhbTo6YmluYXJ5KTsKKyAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsCisgICAgICAgICAgICAgICAgICBpICsgMSk7CisgICAgZWxlU3RyZWFtLmNsb3NlKCk7CisgICAgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIHRlc3RFT1MoJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIEVYUEVDVF9HRShmcmFtZXNSZWNlaXZlZCwgMVUpOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICB0aW1lc3RhbXBVcyA9IDA7CisKKyAgICAvLyBzaWduYWwgRU9TIGZsYWcgYWZ0ZXIgbGFzdCBmcmFtZQorICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBlbGVTdHJlYW0sICZJbmZvLCAwLCBpICsgMSwKKyAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKKyAgICB3YWl0T25JbnB1dENvbnN1bXB0aW9uKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgdGVzdEVPUygmaUJ1ZmZlciwgJm9CdWZmZXIsIHRydWUpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgRVhQRUNUX0dFKGZyYW1lc1JlY2VpdmVkLCAxVSk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIGVuZCBvZiBzZXF1ZW5jZSB0ZXN0CitURVNUX0YoQXVkaW9EZWNIaWRsVGVzdCwgU2ltcGxlRU9TVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IGVuZCBvZiBzdHJlYW0iKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgaW50MzJfdCBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlOworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZyk7CisgICAgaWYgKGNvbXBOYW1lID09IHJhdykKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgMSwgODAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwgT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsICZuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAmblNhbXBsZVJhdGUpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGF0IHRoZSBlbmQKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwKKyAgICAgICAgICAgICAgICAgIChpbnQpSW5mby5zaXplKCkpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICB0ZXN0RU9TKCZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgZmx1c2hQb3J0cyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgdGltZXN0YW1wVXMgPSAwOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gdGVzdCBpbnB1dC9vdXRwdXQgcG9ydCBmbHVzaAorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIEZsdXNoVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IEZsdXNoIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIGNoYXIgbVVSTFs1MTJdLCBpbmZvWzUxMl07CisgICAgc3RyY3B5KG1VUkwsIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIHN0cmNweShpbmZvLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBHZXRVUkxGb3JDb21wb25lbnQoY29tcE5hbWUsIG1VUkwsIGluZm8pOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW0sIGVsZUluZm87CisKKyAgICBlbGVJbmZvLm9wZW4oaW5mbyk7CisgICAgQVNTRVJUX0VRKGVsZUluZm8uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBhbmRyb2lkOjpWZWN0b3I8RnJhbWVEYXRhPiBJbmZvOworICAgIGludCBieXRlc0NvdW50ID0gMDsKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgdWludDMyX3QgdGltZXN0YW1wID0gMDsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAoIShlbGVJbmZvID4+IGJ5dGVzQ291bnQpKSBicmVhazsKKyAgICAgICAgZWxlSW5mbyA+PiBmbGFnczsKKyAgICAgICAgZWxlSW5mbyA+PiB0aW1lc3RhbXA7CisgICAgICAgIEluZm8ucHVzaF9iYWNrKHtieXRlc0NvdW50LCBmbGFncywgdGltZXN0YW1wfSk7CisgICAgfQorICAgIGVsZUluZm8uY2xvc2UoKTsKKworICAgIGludDMyX3QgbkNoYW5uZWxzLCBuU2FtcGxlUmF0ZTsKKyAgICAvLyBDb25maWd1cmUgaW5wdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcpOworICAgIGlmIChjb21wTmFtZSA9PSByYXcpCisgICAgICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsIDEsIDgwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX1BDTU1vZGVMaW5lYXIsIE9NWF9OdW1lcmljYWxEYXRhU2lnbmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKTsKKyAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nLCAmbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgJm5TYW1wbGVSYXRlKTsKKyAgICAvLyBDb25maWd1cmUgb3V0cHV0IHBvcnQKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9BVURJT19Db2RpbmdQQ00sCisgICAgICAgICAgICAgICAgICAgICAgICBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICAvLyBEZWNvZGUgMTI4IGZyYW1lcyBhbmQgZmx1c2guIGhlcmUgMTI4IGlzIGNob3NlbiB0byBlbnN1cmUgdGhlcmUgaXMgYSBrZXkKKyAgICAvLyBmcmFtZSBhZnRlciB0aGlzIHNvIHRoYXQgdGhlIGJlbG93IHNlY3Rpb24gY2FuIGJlIGNvbnZlcmVkIGZvciBhbGwKKyAgICAvLyBjb21wb25lbnRzCisgICAgaW50IG5GcmFtZXMgPSAxMjg7CisgICAgZWxlU3RyZWFtLm9wZW4obVVSTCwgc3RkOjppZnN0cmVhbTo6YmluYXJ5KTsKKyAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsCisgICAgICAgICAgICAgICAgICBuRnJhbWVzLCBmYWxzZSk7CisgICAgLy8gTm90ZTogQXNzdW1lcyAyMDAgbXMgaXMgZW5vdWdoIHRvIGVuZCBhbnkgZGVjb2RlIGNhbGwgdGhhdCBzdGFydGVkCisgICAgZmx1c2hQb3J0cyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAyMDAwMDApOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKworICAgIC8vIFNlZWsgdG8gbmV4dCBrZXkgZnJhbWUgYW5kIHN0YXJ0IGRlY29kaW5nIHRpbGwgdGhlIGVuZAorICAgIGludCBpbmRleCA9IG5GcmFtZXM7CisgICAgYm9vbCBrZXlGcmFtZSA9IGZhbHNlOworICAgIHdoaWxlIChpbmRleCA8IChpbnQpSW5mby5zaXplKCkpIHsKKyAgICAgICAgaWYgKChJbmZvW2luZGV4XS5mbGFncyAmIE9NWF9CVUZGRVJGTEFHX1NZTkNGUkFNRSkgPT0KKyAgICAgICAgICAgIE9NWF9CVUZGRVJGTEFHX1NZTkNGUkFNRSkgeworICAgICAgICAgICAgdGltZXN0YW1wVXMgPSBJbmZvW2luZGV4IC0gMV0udGltZXN0YW1wOworICAgICAgICAgICAga2V5RnJhbWUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZWxlU3RyZWFtLmlnbm9yZShJbmZvW2luZGV4XS5ieXRlc0NvdW50KTsKKyAgICAgICAgaW5kZXgrKzsKKyAgICB9CisgICAgaWYgKGtleUZyYW1lKSB7CisgICAgICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywKKyAgICAgICAgICAgICAgICAgICAgICBpbmRleCwgSW5mby5zaXplKCkgLSBpbmRleCwgZmFsc2UpOworICAgIH0KKyAgICAvLyBOb3RlOiBBc3N1bWVzIDIwMCBtcyBpcyBlbm91Z2ggdG8gZW5kIGFueSBkZWNvZGUgY2FsbCB0aGF0IHN0YXJ0ZWQKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIDIwMDAwMCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9FbmNUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9FbmNUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDRlODRmCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0VuY1Rlc3QuY3BwCkBAIC0wLDAgKzEsNDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF9hdWRpb19lbmNfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG1lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxtZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8ZnN0cmVhbT4KKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cAorY2xhc3MgQ29tcG9uZW50VGVzdEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworICAgIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpIDogaW5zdGFuY2UoImRlZmF1bHQiKSwgcmVzKCIvc2RjYXJkL21lZGlhLyIpIHt9CisKKyAgICB2b2lkIHNldEluc3RhbmNlKGNvbnN0IGNoYXIqIF9pbnN0YW5jZSkgeyBpbnN0YW5jZSA9IF9pbnN0YW5jZTsgfQorCisgICAgdm9pZCBzZXRDb21wb25lbnQoY29uc3QgY2hhciogX2NvbXBvbmVudCkgeyBjb21wb25lbnQgPSBfY29tcG9uZW50OyB9CisKKyAgICB2b2lkIHNldFJvbGUoY29uc3QgY2hhciogX3JvbGUpIHsgcm9sZSA9IF9yb2xlOyB9CisKKyAgICB2b2lkIHNldFJlcyhjb25zdCBjaGFyKiBfcmVzKSB7IHJlcyA9IF9yZXM7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldEluc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gaW5zdGFuY2U7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldENvbXBvbmVudCgpIGNvbnN0IHsgcmV0dXJuIGNvbXBvbmVudDsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Um9sZSgpIGNvbnN0IHsgcmV0dXJuIHJvbGU7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldFJlcygpIGNvbnN0IHsgcmV0dXJuIHJlczsgfQorCisgICAgaW50IGluaXRGcm9tT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICAgICAgc3RhdGljIHN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0geworICAgICAgICAgICAgeyJpbnN0YW5jZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnSSd9LAorICAgICAgICAgICAgeyJjb21wb25lbnQiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0MnfSwKKyAgICAgICAgICAgIHsicm9sZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUid9LAorICAgICAgICAgICAgeyJyZXMiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ1AnfSwKKyAgICAgICAgICAgIHswLCAwLCAwLCAwfX07CisKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgICAgICBpbnQgYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJJOkM6UjpQOiIsIG9wdGlvbnMsICZpbmRleCk7CisgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdJJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0SW5zdGFuY2Uob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAgICAgICAgICAgIHNldENvbXBvbmVudChvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdSJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Um9sZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdQJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0UmVzKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJz8nOgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcHRpbmQgPCBhcmdjKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgInVucmVjb2duaXplZCBvcHRpb246ICVzXG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInVzYWdlOiAlcyA8Z3Rlc3Qgb3B0aW9ucz4gPHRlc3Qgb3B0aW9ucz5cblxuIgorICAgICAgICAgICAgICAgICAgICAidGVzdCBvcHRpb25zIGFyZTpcblxuIgorICAgICAgICAgICAgICAgICAgICAiLUksIC0taW5zdGFuY2U6IEhBTCBpbnN0YW5jZSB0byB0ZXN0XG4iCisgICAgICAgICAgICAgICAgICAgICItQywgLS1jb21wb25lbnQ6IE9NWCBjb21wb25lbnQgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLVIsIC0tcm9sZTogT01YIGNvbXBvbmVudCBSb2xlXG4iCisgICAgICAgICAgICAgICAgICAgICItUCwgLS1yZXM6IFJlc291cmNlIGZpbGVzIGRpcmVjdG9yeSBsb2NhdGlvblxuIiwKKyAgICAgICAgICAgICAgICAgICAgYXJndltvcHRpbmQgPzogMV0sIGFyZ3ZbMF0pOworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIGhpZGxfc3RyaW5nIGluc3RhbmNlOworICAgIGhpZGxfc3RyaW5nIGNvbXBvbmVudDsKKyAgICBoaWRsX3N0cmluZyByb2xlOworICAgIGhpZGxfc3RyaW5nIHJlczsKK307CisKK3N0YXRpYyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQqIGdFbnYgPSBudWxscHRyOworCisvLyBhdWRpbyBlbmNvZGVyIHRlc3QgZml4dHVyZSBjbGFzcworY2xhc3MgQXVkaW9FbmNIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBkaXNhYmxlVGVzdCA9IGZhbHNlOworICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICAgICAgb214ID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SU9teD4oCisgICAgICAgICAgICBnRW52LT5nZXRJbnN0YW5jZSgpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teCwgbnVsbHB0cik7CisgICAgICAgIG9ic2VydmVyID0gbmV3IENvZGVjT2JzZXJ2ZXIoW3RoaXNdKE1lc3NhZ2UgbXNnKSB7ICh2b2lkKW1zZzsgfSk7CisgICAgICAgIEFTU0VSVF9ORShvYnNlcnZlciwgbnVsbHB0cik7CisgICAgICAgIGlmIChzdHJuY21wKGdFbnYtPmdldENvbXBvbmVudCgpLmNfc3RyKCksICJPTVguIiwgNCkgIT0gMCkKKyAgICAgICAgICAgIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgRVhQRUNUX1RSVUUob214LT5hbGxvY2F0ZU5vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICBnRW52LT5nZXRDb21wb25lbnQoKSwgb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxJT214Tm9kZT4gY29uc3QmIF9ubCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMtPm9teE5vZGUgPSBfbmw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXhOb2RlLCBudWxscHRyKTsKKyAgICAgICAgQVNTRVJUX05FKGdFbnYtPmdldFJvbGUoKS5lbXB0eSgpLCB0cnVlKSA8PCAiSW52YWxpZCBDb21wb25lbnQgUm9sZSI7CisgICAgICAgIHN0cnVjdCBTdHJpbmdUb05hbWUgeworICAgICAgICAgICAgY29uc3QgY2hhciogTmFtZTsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcCBDb21wTmFtZTsKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3QgU3RyaW5nVG9OYW1lIGtTdHJpbmdUb05hbWVbXSA9IHsKKyAgICAgICAgICAgIHsiYW1ybmIiLCBhbXJuYn0sIHsiYW1yd2IiLCBhbXJ3Yn0sIHsiYWFjIiwgYWFjfSwgeyJmbGFjIiwgZmxhY30sCisgICAgICAgIH07CisgICAgICAgIGNvbnN0IHNpemVfdCBrTnVtU3RyaW5nVG9OYW1lID0KKyAgICAgICAgICAgIHNpemVvZihrU3RyaW5nVG9OYW1lKSAvIHNpemVvZihrU3RyaW5nVG9OYW1lWzBdKTsKKyAgICAgICAgY29uc3QgY2hhciogcGNoOworICAgICAgICBjaGFyIHN1YnN0cmluZ1tPTVhfTUFYX1NUUklOR05BTUVfU0laRV07CisgICAgICAgIHN0cmNweShzdWJzdHJpbmcsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICAgICAgcGNoID0gc3RyY2hyKHN1YnN0cmluZywgJy4nKTsKKyAgICAgICAgQVNTRVJUX05FKHBjaCwgbnVsbHB0cik7CisgICAgICAgIGNvbXBOYW1lID0gdW5rbm93bl9jb21wOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtOdW1TdHJpbmdUb05hbWU7ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjYXNlY21wKHBjaCArIDEsIGtTdHJpbmdUb05hbWVbaV0uTmFtZSkpIHsKKyAgICAgICAgICAgICAgICBjb21wTmFtZSA9IGtTdHJpbmdUb05hbWVbaV0uQ29tcE5hbWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBOYW1lID09IHVua25vd25fY29tcCkgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBzdHJ1Y3QgQ29tcFRvQ29kaW5nIHsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcCBDb21wTmFtZTsKKyAgICAgICAgICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZzsKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IENvbXBUb0NvZGluZyBrQ29tcFRvQ29kaW5nW10gPSB7CisgICAgICAgICAgICB7YW1ybmIsIE9NWF9BVURJT19Db2RpbmdBTVJ9LAorICAgICAgICAgICAge2FtcndiLCBPTVhfQVVESU9fQ29kaW5nQU1SfSwKKyAgICAgICAgICAgIHthYWMsIE9NWF9BVURJT19Db2RpbmdBQUN9LAorICAgICAgICAgICAge2ZsYWMsIE9NWF9BVURJT19Db2RpbmdGTEFDfSwKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTnVtQ29tcFRvQ29kaW5nID0KKyAgICAgICAgICAgIHNpemVvZihrQ29tcFRvQ29kaW5nKSAvIHNpemVvZihrQ29tcFRvQ29kaW5nWzBdKTsKKyAgICAgICAgc2l6ZV90IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBrTnVtQ29tcFRvQ29kaW5nOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChrQ29tcFRvQ29kaW5nW2ldLkNvbXBOYW1lID09IGNvbXBOYW1lKSB7CisgICAgICAgICAgICAgICAgZUVuY29kaW5nID0ga0NvbXBUb0NvZGluZ1tpXS5lRW5jb2Rpbmc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0ga051bUNvbXBUb0NvZGluZykgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBpZiAoZGlzYWJsZVRlc3QpIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISAgVGVzdCBEaXNhYmxlZFxuIjsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIGlmIChvbXhOb2RlICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKChvbXhOb2RlLT5mcmVlTm9kZSgpKS5pc09rKCkpOworICAgICAgICAgICAgb214Tm9kZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbnVtIHN0YW5kYXJkQ29tcCB7CisgICAgICAgIGFtcm5iLAorICAgICAgICBhbXJ3YiwKKyAgICAgICAgYWFjLAorICAgICAgICBmbGFjLAorICAgICAgICB1bmtub3duX2NvbXAsCisgICAgfTsKKworICAgIHNwPElPbXg+IG9teDsKKyAgICBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcjsKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZTsKKyAgICBzdGFuZGFyZENvbXAgY29tcE5hbWU7CisgICAgT01YX0FVRElPX0NPRElOR1RZUEUgZUVuY29kaW5nOworICAgIGJvb2wgZGlzYWJsZVRlc3Q7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCBkZXNjcmlwdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICAgIH0KK307CisKKy8vIFNldCBEZWZhdWx0IHBvcnQgcGFyYW0uCit2b2lkIHNldERlZmF1bHRQb3J0UGFyYW0oc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb0VuY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBuU2FtcGxlUmF0ZSwgaW50MzJfdCBuQml0UmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBvcnREZWYuZm9ybWF0LmF1ZGlvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgIHBvcnREZWYuZm9ybWF0LmF1ZGlvLmVFbmNvZGluZyA9IGVFbmNvZGluZzsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBhcnJQcm9maWxlOworICAgIGludDMyX3QgcHJvZmlsZTsKKyAgICBpZiAoKGludCllRW5jb2RpbmcgPT0gT01YX0FVRElPX0NvZGluZ0FBQykgeworICAgICAgICBlbnVtZXJhdGVQcm9maWxlKG9teE5vZGUsIHBvcnRJbmRleCwgJmFyclByb2ZpbGUpOworICAgICAgICBpZiAoYXJyUHJvZmlsZS5lbXB0eSgpID09IHRydWUpIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgcHJvZmlsZSA9IGFyclByb2ZpbGVbMF07CisgICAgfQorCisgICAgc3dpdGNoICgoaW50KWVFbmNvZGluZykgeworICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdGTEFDOgorICAgICAgICAgICAgc2V0dXBGTEFDUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIG5DaGFubmVscywgblNhbXBsZVJhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIDUgLyogbkNvbXByZXNzaW9uTGV2ZWwgKi8pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ0FNUjoKKyAgICAgICAgICAgIHNldHVwQU1SUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIG5CaXRSYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgIChjb21wID09IEF1ZGlvRW5jSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YW1yd2IpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdBQUM6CisgICAgICAgICAgICBzZXR1cEFBQ1BvcnQob214Tm9kZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9BVURJT19BQUNQUk9GSUxFVFlQRT4ocHJvZmlsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0FBQ1N0cmVhbUZvcm1hdE1QNEZGLCBuQ2hhbm5lbHMsIG5CaXRSYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgIG5TYW1wbGVSYXRlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCisvLyBMb29rVXBUYWJsZSBvZiBjbGlwcyBhbmQgbWV0YWRhdGEgZm9yIGNvbXBvbmVudCB0ZXN0aW5nCit2b2lkIEdldFVSTEZvckNvbXBvbmVudChBdWRpb0VuY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcCwgY2hhciogbVVSTCkgeworICAgIHN0cnVjdCBDb21wVG9VUkwgeworICAgICAgICBBdWRpb0VuY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcDsKKyAgICAgICAgY29uc3QgY2hhciogbVVSTDsKKyAgICB9OworICAgIHN0YXRpYyBjb25zdCBDb21wVG9VUkwga0NvbXBUb1VSTFtdID0geworICAgICAgICB7QXVkaW9FbmNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjphYWMsICJiYmJfcmF3XzJjaF80OGtoel9zMTZsZS5yYXcifSwKKyAgICAgICAge0F1ZGlvRW5jSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YW1ybmIsICJiYmJfcmF3XzFjaF84a2h6X3MxNmxlLnJhdyJ9LAorICAgICAgICB7QXVkaW9FbmNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjphbXJ3YiwgImJiYl9yYXdfMWNoXzE2a2h6X3MxNmxlLnJhdyJ9LAorICAgICAgICB7QXVkaW9FbmNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjpmbGFjLCAiYmJiX3Jhd18yY2hfNDhraHpfczE2bGUucmF3In0sCisgICAgfTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGtDb21wVG9VUkwpIC8gc2l6ZW9mKGtDb21wVG9VUkxbMF0pOyArK2kpIHsKKyAgICAgICAgaWYgKGtDb21wVG9VUkxbaV0uY29tcCA9PSBjb21wKSB7CisgICAgICAgICAgICBzdHJjYXQobVVSTCwga0NvbXBUb1VSTFtpXS5tVVJMKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gRW5jb2RlIE4gRnJhbWVzCit2b2lkIGVuY29kZU5GcmFtZXMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIHVpbnQzMl90IG5GcmFtZXMsCisgICAgICAgICAgICAgICAgICAgaW50MzJfdCBzYW1wbGVzUGVyRnJhbWUsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgIGludDMyX3QgblNhbXBsZVJhdGUsIHN0ZDo6aWZzdHJlYW0mIGVsZVN0cmVhbSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gZGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGkpOworICAgIH0KKyAgICAvLyBkaXNwYXRjaCBpbnB1dCBidWZmZXJzCisgICAgaW50IGJ5dGVzQ291bnQgPSBzYW1wbGVzUGVyRnJhbWUgKiBuQ2hhbm5lbHMgKiAyOworICAgIGludDMyX3QgdGltZXN0YW1wSW5jciA9CisgICAgICAgIChpbnQpKCgoZmxvYXQpc2FtcGxlc1BlckZyYW1lIC8gblNhbXBsZVJhdGUpICogMTAwMDAwMCk7CisgICAgdWludDY0X3QgdGltZXN0YW1wID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKSAmJiBuRnJhbWVzICE9IDA7IGkrKykgeworICAgICAgICBjaGFyKiBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPigKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPigoKmlCdWZmZXIpW2ldLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICBBU1NFUlRfTEUoYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsIGJ5dGVzQ291bnQpOworICAgICAgICBpZiAoZWxlU3RyZWFtLmdjb3VudCgpICE9IGJ5dGVzQ291bnQpIGJyZWFrOworICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGksIGJ5dGVzQ291bnQsIDAsIHRpbWVzdGFtcCk7CisgICAgICAgIHRpbWVzdGFtcCArPSB0aW1lc3RhbXBJbmNyOworICAgICAgICBuRnJhbWVzLS07CisgICAgfQorCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworCisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisKKyAgICAgICAgaWYgKG5GcmFtZXMgPT0gMCkgYnJlYWs7CisKKyAgICAgICAgLy8gRGlzcGF0Y2ggaW5wdXQgYnVmZmVyCisgICAgICAgIHNpemVfdCBpbmRleCA9IDA7CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKGlCdWZmZXIpKSA8IGlCdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KCgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICAgICAgQVNTRVJUX0xFKGJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PigoKmlCdWZmZXIpW2luZGV4XS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgICAgIGVsZVN0cmVhbS5yZWFkKGlwQnVmZmVyLCBieXRlc0NvdW50KTsKKyAgICAgICAgICAgIGlmIChlbGVTdHJlYW0uZ2NvdW50KCkgIT0gYnl0ZXNDb3VudCkgYnJlYWs7CisgICAgICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGluZGV4LCBieXRlc0NvdW50LCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXApOworICAgICAgICAgICAgdGltZXN0YW1wICs9IHRpbWVzdGFtcEluY3I7CisgICAgICAgICAgICBuRnJhbWVzLS07CisgICAgICAgIH0KKyAgICAgICAgLy8gRGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcgorICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChvQnVmZmVyKSkgPCBvQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGluZGV4KTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gc2V0IGNvbXBvbmVudCByb2xlCitURVNUX0YoQXVkaW9FbmNIaWRsVGVzdCwgU2V0Um9sZSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFNldCBDb21wb25lbnQgUm9sZSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyBwb3J0IGZvcm1hdCBlbnVtZXJhdGlvbgorVEVTVF9GKEF1ZGlvRW5jSGlkbFRlc3QsIEVudW1lcmF0ZVBvcnRGb3JtYXQpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBGb3JtYXQpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIHN0YXR1cyA9IHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIE9NWF9BVURJT19Db2RpbmdQQ00pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBlRW5jb2RpbmcpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyB0ZXN0IHJhdyBzdHJlYW0gZW5jb2RlCitURVNUX0YoQXVkaW9FbmNIaWRsVGVzdCwgRW5jb2RlVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBFbmNvZGUiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl07CisgICAgc3RyY3B5KG1VUkwsIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbTsKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgaW50MzJfdCBuQ2hhbm5lbHMgPSAyOworICAgIGludDMyX3QgblNhbXBsZVJhdGUgPSA0NDEwMDsKKyAgICBpbnQzMl90IHNhbXBsZXNQZXJGcmFtZSA9IDEwMjQ7CisgICAgaW50MzJfdCBuQml0UmF0ZSA9IDEyODAwMDsKKyAgICBzd2l0Y2ggKGNvbXBOYW1lKSB7CisgICAgICAgIGNhc2UgYW1ybmI6CisgICAgICAgICAgICBuQ2hhbm5lbHMgPSAxOworICAgICAgICAgICAgblNhbXBsZVJhdGUgPSA4MDAwOworICAgICAgICAgICAgc2FtcGxlc1BlckZyYW1lID0gMTYwOworICAgICAgICAgICAgbkJpdFJhdGUgPSA3NDAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgYW1yd2I6CisgICAgICAgICAgICBuQ2hhbm5lbHMgPSAxOworICAgICAgICAgICAgblNhbXBsZVJhdGUgPSAxNjAwMDsKKyAgICAgICAgICAgIHNhbXBsZXNQZXJGcmFtZSA9IDE2MDsKKyAgICAgICAgICAgIG5CaXRSYXRlID0gMTU4NTA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBhYWM6CisgICAgICAgICAgICBuQ2hhbm5lbHMgPSAyOworICAgICAgICAgICAgblNhbXBsZVJhdGUgPSA0ODAwMDsKKyAgICAgICAgICAgIHNhbXBsZXNQZXJGcmFtZSA9IDEwMjQ7CisgICAgICAgICAgICBuQml0UmF0ZSA9IDEyODAwMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGZsYWM6CisgICAgICAgICAgICBuQ2hhbm5lbHMgPSAyOworICAgICAgICAgICAgblNhbXBsZVJhdGUgPSA0ODAwMDsKKyAgICAgICAgICAgIHNhbXBsZXNQZXJGcmFtZSA9IDExNTI7CisgICAgICAgICAgICBuQml0UmF0ZSA9IDEyODAwMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgIH0KKyAgICBzZXR1cFBDTVBvcnQob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBuQ2hhbm5lbHMsIE9NWF9OdW1lcmljYWxEYXRhU2lnbmVkLAorICAgICAgICAgICAgICAgICAxNiwgblNhbXBsZVJhdGUsIE9NWF9BVURJT19QQ01Nb2RlTGluZWFyKTsKKyAgICAvLyBDb25maWd1cmUgb3V0cHV0IHBvcnQKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIGVFbmNvZGluZywgY29tcE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlLCBuQml0UmF0ZSk7CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgZW5jb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCAxMDI0LCBzYW1wbGVzUGVyRnJhbWUsCisgICAgICAgICAgICAgICAgICBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlLCBlbGVTdHJlYW0pOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICBnRW52ID0gbmV3IENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpOworICAgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KGdFbnYpOworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBnRW52LT5pbml0RnJvbU9wdGlvbnMoYXJnYywgYXJndik7CisgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICAgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9tZWRpYV9hdWRpb19oaWRsX3Rlc3RfY29tbW9uLmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vbWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA5ZDIxZAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vbWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5jcHAKQEAgLTAsMCArMSw1MzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIm1lZGlhX29teF9oaWRsX2F1ZGlvX3Rlc3RfY29tbW9uIgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Tm9kZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNZW1vcnkuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhPYnNlcnZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhOb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6TWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvZGVjQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjphbGxvY2F0b3I6OlYxXzA6OklBbGxvY2F0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWFwcGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxtZW1vcnk+CisKKy8vIGFsbG9jYXRlIGJ1ZmZlcnMgbmVlZGVkIG9uIGEgY29tcG9uZW50IHBvcnQKK3ZvaWQgYWxsb2NhdGVQb3J0QnVmZmVycyhzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIHBvcnRJbmRleCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKworICAgIGJ1ZmZBcnJheS0+Y2xlYXIoKTsKKworICAgIHNwPElBbGxvY2F0b3I+IGFsbG9jYXRvciA9IElBbGxvY2F0b3I6OmdldFNlcnZpY2UoImFzaG1lbSIpOworICAgIEVYUEVDVF9ORShhbGxvY2F0b3IuZ2V0KCksIG51bGxwdHIpOworCisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbDsgaSsrKSB7CisgICAgICAgIEJ1ZmZlckluZm8gYnVmZmVyOworICAgICAgICBidWZmZXIub3duZXIgPSBjbGllbnQ7CisgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpTSEFSRURfTUVNOworICAgICAgICBidWZmZXIub214QnVmZmVyLmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IDA7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICBhbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICAgICAgcG9ydERlZi5uQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgIFsmc3VjY2VzcywgJmJ1ZmZlcl0oYm9vbCBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkgY29uc3QmIG1lbSkgeworICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBfczsKKyAgICAgICAgICAgICAgICBidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeSA9IG1lbTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfRVEoc3VjY2VzcywgdHJ1ZSk7CisgICAgICAgIEFTU0VSVF9FUShidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeS5zaXplKCksIHBvcnREZWYubkJ1ZmZlclNpemUpOworICAgICAgICBidWZmZXIubU1lbW9yeSA9IG1hcE1lbW9yeShidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeSk7CisgICAgICAgIEFTU0VSVF9ORShidWZmZXIubU1lbW9yeSwgbnVsbHB0cik7CisgICAgICAgIG9teE5vZGUtPnVzZUJ1ZmZlcigKKyAgICAgICAgICAgIHBvcnRJbmRleCwgYnVmZmVyLm9teEJ1ZmZlciwKKyAgICAgICAgICAgIFsmc3RhdHVzLCAmYnVmZmVyXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGlkKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgYnVmZmVyLmlkID0gaWQ7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgYnVmZkFycmF5LT5wdXNoKGJ1ZmZlcik7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IExvYWRlZCAtPiBJZGxlCisvLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG1ha2UgYW55IGJhY2tncm91bmQgY2hlY2tzIGZvciB0aGlzIHRyYW5zaXRpb24uCisvLyBUaGUgY2FsbGVlIGhvbGRzIHRoZSByZXBvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGUgbGVnYWxpdHkgb2YgdGhlIHRyYW5zaXRpb24uCit2b2lkIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVJZGxlKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBEb250IHN3aXRjaCBzdGF0ZXMgdW50aWwgdGhlIHBvcnRzIGFyZSBwb3B1bGF0ZWQKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworCisgICAgLy8gYWxsb2NhdGUgYnVmZmVycyBvbiBpbnB1dCBwb3J0CisgICAgYWxsb2NhdGVQb3J0QnVmZmVycyhvbXhOb2RlLCBpQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQpOworCisgICAgLy8gRG9udCBzd2l0Y2ggc3RhdGVzIHVudGlsIHRoZSBwb3J0cyBhcmUgcG9wdWxhdGVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIC8vIGFsbG9jYXRlIGJ1ZmZlcnMgb24gb3V0cHV0IHBvcnQKKyAgICBhbGxvY2F0ZVBvcnRCdWZmZXJzKG9teE5vZGUsIG9CdWZmZXIsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgLy8gQXMgdGhlIHBvcnRzIGFyZSBwb3B1bGF0ZWQsIGNoZWNrIGlmIHRoZSBzdGF0ZSB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFN0YXRlU2V0KTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBPTVhfU3RhdGVJZGxlKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IElkbGUgLT4gTG9hZGVkCisvLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG1ha2UgYW55IGJhY2tncm91bmQgY2hlY2tzIGZvciB0aGlzIHRyYW5zaXRpb24uCisvLyBUaGUgY2FsbGVlIGhvbGRzIHRoZSByZXBvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGUgbGVnYWxpdHkgb2YgdGhlIHRyYW5zaXRpb24uCit2b2lkIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIHNldCBzdGF0ZSB0byBMb2FkZWQKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUxvYWRlZCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gZG9udCBjaGFuZ2Ugc3RhdGUgdW50aWwgYWxsIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4SW5wdXQsICgqaUJ1ZmZlcilbaV0uaWQpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfQorCisgICAgLy8gZG9udCBjaGFuZ2Ugc3RhdGUgdW50aWwgYWxsIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4T3V0cHV0LCAoKm9CdWZmZXIpW2ldLmlkKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KKworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlTG9hZGVkKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IElkbGUgLT4gRXhlY3V0ZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUV4ZWN1dGluZyk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlRXhlY3V0aW5nKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IEV4ZWN1dGUgLT4gSWRsZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gSWRsZQorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlSWRsZSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlSWRsZSk7CisKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKmlCdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KK30KKworLy8gZ2V0IGVtcHR5IGJ1ZmZlciBpbmRleAorc2l6ZV90IGdldEVtcHR5QnVmZmVySUQoYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXkpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJ1ZmZBcnJheS0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKCgqYnVmZkFycmF5KVtpXS5vd25lciA9PSBjbGllbnQpIHJldHVybiBpOworICAgIH0KKyAgICByZXR1cm4gYnVmZkFycmF5LT5zaXplKCk7Cit9CisKKy8vIGRpc3BhdGNoIGJ1ZmZlciB0byBvdXRwdXQgcG9ydAordm9pZCBkaXNwYXRjaE91dHB1dEJ1ZmZlcihzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIENvZGVjQnVmZmVyIHQ7CisgICAgdC5zaGFyZWRNZW1vcnkgPSBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkoKTsKKyAgICB0Lm5hdGl2ZUhhbmRsZSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSgpOworICAgIHQudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpQUkVTRVQ7CisgICAgdC5hdHRyLnByZXNldC5yYW5nZU9mZnNldCA9IDA7CisgICAgdC5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IDA7CisgICAgbmF0aXZlX2hhbmRsZV90KiBmZW5jZU5oID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoMCwgMCk7CisgICAgQVNTRVJUX05FKGZlbmNlTmgsIG51bGxwdHIpOworICAgIHN0YXR1cyA9IG9teE5vZGUtPmZpbGxCdWZmZXIoKCpidWZmQXJyYXkpW2J1ZmZlckluZGV4XS5pZCwgdCwgZmVuY2VOaCk7CisgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShmZW5jZU5oKTsKKyAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShmZW5jZU5oKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGJ1ZmZlckluZGV4KS5vd25lciA9IGNvbXBvbmVudDsKK30KKworLy8gZGlzcGF0Y2ggYnVmZmVyIHRvIGlucHV0IHBvcnQKK3ZvaWQgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVySW5kZXgsIGludCBieXRlc0NvdW50LCB1aW50MzJfdCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCB0aW1lc3RhbXApIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBDb2RlY0J1ZmZlciB0OworICAgIHQuc2hhcmVkTWVtb3J5ID0gYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5KCk7CisgICAgdC5uYXRpdmVIYW5kbGUgPSBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGUoKTsKKyAgICB0LnR5cGUgPSBDb2RlY0J1ZmZlcjo6VHlwZTo6UFJFU0VUOworICAgIHQuYXR0ci5wcmVzZXQucmFuZ2VPZmZzZXQgPSAwOworICAgIHQuYXR0ci5wcmVzZXQucmFuZ2VMZW5ndGggPSBieXRlc0NvdW50OworICAgIG5hdGl2ZV9oYW5kbGVfdCogZmVuY2VOaCA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDAsIDApOworICAgIEFTU0VSVF9ORShmZW5jZU5oLCBudWxscHRyKTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5lbXB0eUJ1ZmZlcigoKmJ1ZmZBcnJheSlbYnVmZmVySW5kZXhdLmlkLCB0LCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAsIGZlbmNlTmgpOworICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoZmVuY2VOaCk7CisgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoZmVuY2VOaCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChidWZmZXJJbmRleCkub3duZXIgPSBjb21wb25lbnQ7Cit9CisKKy8vIEZsdXNoIGlucHV0IGFuZCBvdXRwdXQgcG9ydHMKK3ZvaWQgZmx1c2hQb3J0cyhzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LCBpbnQ2NF90IHRpbWVvdXRVcykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gRmx1c2ggaW5wdXQgcG9ydAorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRGbHVzaCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0KTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIHRpbWVvdXRVcywgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZEZsdXNoKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBrUG9ydEluZGV4SW5wdXQpOworICAgIC8vIHRlc3QgaWYgY2xpZW50IGdvdCBhbGwgaXRzIGJ1ZmZlcnMgYmFjaworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgRVhQRUNUX0VRKCgqaUJ1ZmZlcilbaV0ub3duZXIsIGNsaWVudCk7CisgICAgfQorCisgICAgLy8gRmx1c2ggb3V0cHV0IHBvcnQKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kRmx1c2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgdGltZW91dFVzLCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kRmx1c2gpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHRlc3QgaWYgY2xpZW50IGdvdCBhbGwgaXRzIGJ1ZmZlcnMgYmFjaworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgRVhQRUNUX0VRKCgqb0J1ZmZlcilbaV0ub3duZXIsIGNsaWVudCk7CisgICAgfQorfQorCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0QXVkaW9Qb3J0Rm9ybWF0KAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgT01YX0FVRElPX0NPRElOR1RZUEUgZUVuY29kaW5nKSB7CisgICAgT01YX1UzMiBpbmRleCA9IDA7CisgICAgT01YX0FVRElPX1BBUkFNX1BPUlRGT1JNQVRUWVBFIHBvcnRGb3JtYXQ7CisgICAgc3RkOjp2ZWN0b3I8T01YX0FVRElPX0NPRElOR1RZUEU+IGFyckVuY29kaW5nOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgcG9ydEZvcm1hdC5uSW5kZXggPSBpbmRleDsKKyAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Qb3J0Rm9ybWF0LCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydEZvcm1hdCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIGFyckVuY29kaW5nLnB1c2hfYmFjayhwb3J0Rm9ybWF0LmVFbmNvZGluZyk7CisgICAgICAgIGluZGV4Kys7CisgICAgICAgIGlmIChpbmRleCA9PSA1MTIpIHsKKyAgICAgICAgICAgIC8vIGVudW1lcmF0ZWQgd2F5IHRvbyBtYW55IGZvcm1hdHMsIGhpZ2hseSB1bnVzdWFsIGZvciB0aGlzIHRvCisgICAgICAgICAgICAvLyBoYXBwZW4uCisgICAgICAgICAgICBFWFBFQ1RfTEUoaW5kZXgsIDUxMlUpCisgICAgICAgICAgICAgICAgPDwgIkV4cGVjdGluZyBPTVhfRXJyb3JOb01vcmUgYnV0IG5vdCByZWNlaXZlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIWluZGV4KSByZXR1cm4gc3RhdHVzOworICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGFyckVuY29kaW5nLnNpemUoKTsgaW5kZXgrKykgeworICAgICAgICBpZiAoYXJyRW5jb2RpbmdbaW5kZXhdID09IGVFbmNvZGluZykgeworICAgICAgICAgICAgcG9ydEZvcm1hdC5lRW5jb2RpbmcgPSBhcnJFbmNvZGluZ1tpbmRleF07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoaW5kZXggPT0gYXJyRW5jb2Rpbmcuc2l6ZSgpKSB7CisgICAgICAgIEFMT0dFKCJzZXR0aW5nIGRlZmF1bHQgUG9ydCBmb3JtYXQgJXgiLCAoaW50KWFyckVuY29kaW5nWzBdKTsKKyAgICAgICAgcG9ydEZvcm1hdC5lRW5jb2RpbmcgPSBhcnJFbmNvZGluZ1swXTsKKyAgICB9CisgICAgLy8gSW4gc2V0UGFyYW0gY2FsbCBuSW5kZXggc2hhbGwgYmUgaWdub3JlZCBhcyBwZXIgb214LWlsIHNwZWNpZmljYXRpb24uCisgICAgLy8gc2VlIGhvdyB0aGlzIGhvbGRzIHVwIGJ5IGNvcnJ1cHRpbmcgbkluZGV4CisgICAgcG9ydEZvcm1hdC5uSW5kZXggPSBSQU5ET01fSU5ERVg7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Qb3J0Rm9ybWF0LCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0Rm9ybWF0KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0Um9sZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgY29uc3QgY2hhciogcm9sZSkgeworICAgIE9NWF9QQVJBTV9DT01QT05FTlRST0xFVFlQRSBwYXJhbXM7CisgICAgc3RyY3B5KChjaGFyKilwYXJhbXMuY1JvbGUsIHJvbGUpOworICAgIHJldHVybiBzZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVN0YW5kYXJkQ29tcG9uZW50Um9sZSwgJnBhcmFtcyk7Cit9CisKK3ZvaWQgZW51bWVyYXRlUHJvZmlsZShzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyclByb2ZpbGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQVVESU9fUEFSQU1fQU5EUk9JRF9QUk9GSUxFVFlQRSBwYXJhbTsKKyAgICBwYXJhbS5uUHJvZmlsZUluZGV4ID0gMDsKKyAgICBhcnJQcm9maWxlLT5jbGVhcigpOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbSgKKyAgICAgICAgICAgIG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtQXVkaW9Qcm9maWxlUXVlcnlTdXBwb3J0ZWQsCisgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIGFyclByb2ZpbGUtPnB1c2hfYmFjayhzdGF0aWNfY2FzdDxpbnQzMl90PihwYXJhbS5lUHJvZmlsZSkpOworICAgICAgICBwYXJhbS5uUHJvZmlsZUluZGV4Kys7CisgICAgICAgIGlmIChwYXJhbS5uUHJvZmlsZUluZGV4ID09IDUxMikgeworICAgICAgICAgICAgLy8gZW51bWVyYXRlZCB3YXkgdG9vIG1hbnksIGhpZ2hseSB1bnVzdWFsIGZvciB0aGlzIHRvIGhhcHBlbi4KKyAgICAgICAgICAgIEVYUEVDVF9MRShwYXJhbS5uUHJvZmlsZUluZGV4LCA1MTJVKQorICAgICAgICAgICAgICAgIDw8ICJFeHBlY3RpbmcgT01YX0Vycm9yTm9Nb3JlIGJ1dCBub3QgcmVjZWl2ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgc2V0dXBQQ01Qb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICBPTVhfTlVNRVJJQ0FMREFUQVRZUEUgZU51bURhdGEsIGludDMyX3QgbkJpdFBlclNhbXBsZSwKKyAgICAgICAgICAgICAgICAgIGludDMyX3QgblNhbXBsaW5nUmF0ZSwgT01YX0FVRElPX1BDTU1PREVUWVBFIGVQQ01Nb2RlKSB7CisgICAgT01YX0FVRElPX1BBUkFNX1BDTU1PREVUWVBFIHBhcmFtOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUGNtLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcGFyYW0ubkNoYW5uZWxzID0gbkNoYW5uZWxzOworICAgIHBhcmFtLmVOdW1EYXRhID0gZU51bURhdGE7CisgICAgcGFyYW0uZUVuZGlhbiA9IE9NWF9FbmRpYW5MaXR0bGU7CisgICAgcGFyYW0uYkludGVybGVhdmVkID0gT01YX1RSVUU7CisgICAgcGFyYW0ubkJpdFBlclNhbXBsZSA9IG5CaXRQZXJTYW1wbGU7CisgICAgcGFyYW0ublNhbXBsaW5nUmF0ZSA9IG5TYW1wbGluZ1JhdGU7CisgICAgcGFyYW0uZVBDTU1vZGUgPSBlUENNTW9kZTsKKyAgICBzd2l0Y2ggKG5DaGFubmVscykgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBwYXJhbS5lQ2hhbm5lbE1hcHBpbmdbMF0gPSBPTVhfQVVESU9fQ2hhbm5lbENGOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHBhcmFtLmVDaGFubmVsTWFwcGluZ1swXSA9IE9NWF9BVURJT19DaGFubmVsTEY7CisgICAgICAgICAgICBwYXJhbS5lQ2hhbm5lbE1hcHBpbmdbMV0gPSBPTVhfQVVESU9fQ2hhbm5lbFJGOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CisgICAgfQorICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUGNtLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBNUDNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19NUDNTVFJFQU1GT1JNQVRUWVBFIGVGb3JtYXQsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgaW50MzJfdCBuQml0UmF0ZSwgaW50MzJfdCBuU2FtcGxlUmF0ZSkgeworICAgIE9NWF9BVURJT19QQVJBTV9NUDNUWVBFIHBhcmFtOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvTXAzLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcGFyYW0ubkNoYW5uZWxzID0gbkNoYW5uZWxzOworICAgIHBhcmFtLm5CaXRSYXRlID0gbkJpdFJhdGU7CisgICAgcGFyYW0ublNhbXBsZVJhdGUgPSBuU2FtcGxlUmF0ZTsKKyAgICBwYXJhbS5uQXVkaW9CYW5kV2lkdGggPSAwOworICAgIHBhcmFtLmVDaGFubmVsTW9kZSA9IChuQ2hhbm5lbHMgPT0gMSkgPyBPTVhfQVVESU9fQ2hhbm5lbE1vZGVNb25vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE9NWF9BVURJT19DaGFubmVsTW9kZVN0ZXJlbzsKKyAgICBwYXJhbS5lRm9ybWF0ID0gZUZvcm1hdDsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb01wMywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwRkxBQ1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICBpbnQzMl90IG5TYW1wbGVSYXRlLCBpbnQzMl90IG5Db21wcmVzc2lvbkxldmVsKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0FVRElPX1BBUkFNX0ZMQUNUWVBFIHBhcmFtOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvRmxhYywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBhcmFtLm5DaGFubmVscyA9IG5DaGFubmVsczsKKyAgICBwYXJhbS5uU2FtcGxlUmF0ZSA9IG5TYW1wbGVSYXRlOworICAgIHBhcmFtLm5Db21wcmVzc2lvbkxldmVsID0gbkNvbXByZXNzaW9uTGV2ZWw7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9GbGFjLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBPUFVTUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQVVESU9fUEFSQU1fQU5EUk9JRF9PUFVTVFlQRSBwYXJhbTsKKyAgICBzdGF0dXMgPQorICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1BdWRpb0FuZHJvaWRPcHVzLAorICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBhcmFtLm5DaGFubmVscyA9IG5DaGFubmVsczsKKyAgICBwYXJhbS5uQml0UmF0ZSA9IG5CaXRSYXRlOworICAgIHBhcmFtLm5TYW1wbGVSYXRlID0gblNhbXBsZVJhdGU7CisgICAgc3RhdHVzID0KKyAgICAgICAgc2V0UG9ydFBhcmFtKG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtQXVkaW9BbmRyb2lkT3B1cywKKyAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworT01YX0FVRElPX0FNUkJBTkRNT0RFVFlQRSBwaWNrTW9kZUZyb21CaXRSYXRlKGJvb2wgaXNBTVJXQiwgaW50MzJfdCBicHMpIHsKKyAgICBpZiAoaXNBTVJXQikgeworICAgICAgICBpZiAoYnBzIDw9IDY2MDApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVXQjA7CisgICAgICAgIGlmIChicHMgPD0gODg1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCMTsKKyAgICAgICAgaWYgKGJwcyA8PSAxMjY1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCMjsKKyAgICAgICAgaWYgKGJwcyA8PSAxNDI1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCMzsKKyAgICAgICAgaWYgKGJwcyA8PSAxNTg1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCNDsKKyAgICAgICAgaWYgKGJwcyA8PSAxODI1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCNTsKKyAgICAgICAgaWYgKGJwcyA8PSAxOTg1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCNjsKKyAgICAgICAgaWYgKGJwcyA8PSAyMzA1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCNzsKKyAgICAgICAgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCODsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoYnBzIDw9IDQ3NTApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVOQjA7CisgICAgICAgIGlmIChicHMgPD0gNTE1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZU5CMTsKKyAgICAgICAgaWYgKGJwcyA8PSA1OTAwKSByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkIyOworICAgICAgICBpZiAoYnBzIDw9IDY3MDApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVOQjM7CisgICAgICAgIGlmIChicHMgPD0gNzQwMCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZU5CNDsKKyAgICAgICAgaWYgKGJwcyA8PSA3OTUwKSByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkI1OworICAgICAgICBpZiAoYnBzIDw9IDEwMjAwKSByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkI2OworICAgICAgICByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkI3OworICAgIH0KK30KKwordm9pZCBzZXR1cEFNUlBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5CaXRSYXRlLAorICAgICAgICAgICAgICAgICAgYm9vbCBpc0FNUldCKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0FVRElPX1BBUkFNX0FNUlRZUEUgcGFyYW07CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9BbXIsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwYXJhbS5uQ2hhbm5lbHMgPSAxOworICAgIHBhcmFtLm5CaXRSYXRlID0gbkJpdFJhdGU7CisgICAgcGFyYW0uZUFNUkJhbmRNb2RlID0gcGlja01vZGVGcm9tQml0UmF0ZShpc0FNUldCLCBuQml0UmF0ZSk7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9BbXIsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cFZPUkJJU1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUsIGludDMyX3QgblF1YWxpdHkpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQVVESU9fUEFSQU1fVk9SQklTVFlQRSBwYXJhbTsKKyAgICBzdGF0dXMgPQorICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1ZvcmJpcywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBhcmFtLm5DaGFubmVscyA9IG5DaGFubmVsczsKKyAgICBwYXJhbS5uQml0UmF0ZSA9IG5CaXRSYXRlOworICAgIHBhcmFtLm5TYW1wbGVSYXRlID0gblNhbXBsZVJhdGU7CisgICAgcGFyYW0ublF1YWxpdHkgPSBuUXVhbGl0eTsKKyAgICBzdGF0dXMgPQorICAgICAgICBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1ZvcmJpcywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwQUFDUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDUFJPRklMRVRZUEUgZUFBQ1Byb2ZpbGUsCisgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDU1RSRUFNRk9STUFUVFlQRSBlQUFDU3RyZWFtRm9ybWF0LAorICAgICAgICAgICAgICAgICAgaW50MzJfdCBuQ2hhbm5lbHMsIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQVVESU9fUEFSQU1fQUFDUFJPRklMRVRZUEUgcGFyYW07CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9BYWMsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwYXJhbS5uQ2hhbm5lbHMgPSBuQ2hhbm5lbHM7CisgICAgcGFyYW0ublNhbXBsZVJhdGUgPSBuU2FtcGxlUmF0ZTsKKyAgICBwYXJhbS5uQml0UmF0ZSA9IG5CaXRSYXRlOworICAgIHBhcmFtLmVBQUNQcm9maWxlID0gZUFBQ1Byb2ZpbGU7CisgICAgcGFyYW0uZUFBQ1N0cmVhbUZvcm1hdCA9IGVBQUNTdHJlYW1Gb3JtYXQ7CisgICAgcGFyYW0uZUNoYW5uZWxNb2RlID0gKG5DaGFubmVscyA9PSAxKSA/IE9NWF9BVURJT19DaGFubmVsTW9kZU1vbm8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogT01YX0FVRElPX0NoYW5uZWxNb2RlU3RlcmVvOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvQWFjLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL21lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uaCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vbWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MjBhYjUKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL21lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uaApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBNRURJQV9BVURJT19ISURMX1RFU1RfQ09NTU9OX0gKKyNkZWZpbmUgTUVESUFfQVVESU9fSElETF9URVNUX0NPTU1PTl9ICisKKyNpbmNsdWRlIDxtZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmg+CisvKgorICogUmFuZG9tIEluZGV4IHVzZWQgZm9yIG1vbmtleSB0ZXN0aW5nIHdoaWxlIGdldC9zZXQgcGFyYW1ldGVycworICovCisjZGVmaW5lIFJBTkRPTV9JTkRFWCAxNzI5CisKKy8qCisgKiBDb21tb24gYXVkaW8gdXRpbHMKKyAqLwordm9pZCBhbGxvY2F0ZVBvcnRCdWZmZXJzKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgcG9ydEluZGV4KTsKKwordm9pZCBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0KTsKKwordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0KTsKKwordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyKTsKKwordm9pZCBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyKTsKKworc2l6ZV90IGdldEVtcHR5QnVmZmVySUQoYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXkpOworCit2b2lkIGRpc3BhdGNoT3V0cHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1ZmZlckluZGV4KTsKKwordm9pZCBkaXNwYXRjaElucHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCwgaW50IGJ5dGVzQ291bnQsIHVpbnQzMl90IGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcCk7CisKK3ZvaWQgZmx1c2hQb3J0cyhzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LCBpbnQ2NF90IHRpbWVvdXRVcyA9IERFRkFVTFRfVElNRU9VVCk7CisKK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRBdWRpb1BvcnRGb3JtYXQoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcpOworCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0Um9sZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgY29uc3QgY2hhciogcm9sZSk7CisKK3ZvaWQgZW51bWVyYXRlUHJvZmlsZShzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyclByb2ZpbGUpOworCit2b2lkIHNldHVwUENNUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgT01YX05VTUVSSUNBTERBVEFUWVBFIGVOdW1EYXRhLCBpbnQzMl90IG5CaXRQZXJTYW1wbGUsCisgICAgICAgICAgICAgICAgICBpbnQzMl90IG5TYW1wbGluZ1JhdGUsIE9NWF9BVURJT19QQ01NT0RFVFlQRSBlUENNTW9kZSk7CisKK3ZvaWQgc2V0dXBNUDNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19NUDNTVFJFQU1GT1JNQVRUWVBFIGVGb3JtYXQsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgaW50MzJfdCBuQml0UmF0ZSwgaW50MzJfdCBuU2FtcGxlUmF0ZSk7CisKK3ZvaWQgc2V0dXBGTEFDUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgIGludDMyX3QgblNhbXBsZVJhdGUsIGludDMyX3QgbkNvbXByZXNzaW9uTGV2ZWwpOworCit2b2lkIHNldHVwT1BVU1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICBpbnQzMl90IG5CaXRSYXRlLCBpbnQzMl90IG5TYW1wbGVSYXRlKTsKKwordm9pZCBzZXR1cEFNUlBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5CaXRSYXRlLAorICAgICAgICAgICAgICAgICAgYm9vbCBpc0FNUldCKTsKKwordm9pZCBzZXR1cFZPUkJJU1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUsIGludDMyX3QgblF1YWxpdHkpOworCit2b2lkIHNldHVwQUFDUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDUFJPRklMRVRZUEUgZUFBQ1Byb2ZpbGUsCisgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDU1RSRUFNRk9STUFUVFlQRSBlQUFDU3RyZWFtRm9ybWF0LAorICAgICAgICAgICAgICAgICAgaW50MzJfdCBuQ2hhbm5lbHMsIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUpOworCisjZW5kaWYgIC8vIE1FRElBX0FVRElPX0hJRExfVEVTVF9DT01NT05fSApkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vbWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vbWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyZDhhZTIKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbi9tZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmgKQEAgLTAsMCArMSwyNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIE1FRElBX0hJRExfVEVTVF9DT01NT05fSAorI2RlZmluZSBNRURJQV9ISURMX1RFU1RfQ09NTU9OX0gKKworI2lmZGVmIF9fTFA2NF9fCisjZGVmaW5lIE9NWF9BTkRST0lEX0NPTVBJTEVfQVNfMzJCSVRfT05fNjRCSVRfUExBVEZPUk1TCisjZW5kaWYKKworI2luY2x1ZGUgPG1lZGlhL3N0YWdlZnJpZ2h0L2ZvdW5kYXRpb24vQUxvb3Blci5oPgorI2luY2x1ZGUgPHV0aWxzL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHV0aWxzL0xpc3QuaD4KKyNpbmNsdWRlIDx1dGlscy9NdXRleC5oPgorCisjaW5jbHVkZSA8bWVkaWEvb3Blbm1heC9PTVhfSW5kZXguaD4KKyNpbmNsdWRlIDxtZWRpYS9vcGVubWF4L09NWF9Db3JlLmg+CisjaW5jbHVkZSA8bWVkaWEvb3Blbm1heC9PTVhfQ29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bWVkaWEvb3Blbm1heC9PTVhfSW5kZXhFeHQuaD4KKyNpbmNsdWRlIDxtZWRpYS9vcGVubWF4L09NWF9BdWRpb0V4dC5oPgorI2luY2x1ZGUgPG1lZGlhL29wZW5tYXgvT01YX1ZpZGVvRXh0Lmg+CisKKy8qCisgKiBUT0RPOiBCb3Jyb3dlZCBmcm9tIENvbnZlcnNpb24uaC4gVGhpcyBpcyBub3QgdGhlIGlkZWFsIHdheSB0byBkbyBpdC4KKyAqIExvb3NlIHRoZXNlIGRlZmluaXRpb25zIG9uY2UgeW91IGluY2x1ZGUgQ29udmVyc2lvbi5oCisgKi8KK2lubGluZSB1aW50MzJfdCB0b1Jhd0luZGV4VHlwZShPTVhfSU5ERVhUWVBFIGwpIHsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGwpOworfQorCitpbmxpbmUgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyB0b1N0YXR1cygKKyAgICBhbmRyb2lkOjpzdGF0dXNfdCBsKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+KGwpOworfQorCitpbmxpbmUgaGlkbF92ZWM8dWludDhfdD4gaW5IaWRsQnl0ZXModm9pZCBjb25zdCogbCwgc2l6ZV90IHNpemUpIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiB0OworICAgIHQuc2V0VG9FeHRlcm5hbChzdGF0aWNfY2FzdDx1aW50OF90Kj4oY29uc3RfY2FzdDx2b2lkKj4obCkpLCBzaXplLCBmYWxzZSk7CisgICAgcmV0dXJuIHQ7Cit9CisKK2lubGluZSB1aW50MzJfdCB0b1Jhd0NvbW1hbmRUeXBlKE9NWF9DT01NQU5EVFlQRSBsKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90PihsKTsKK30KKworLyoKKyAqIEhhbmRsZSBDYWxsYmFjayBmdW5jdGlvbnMgRW1wdHl0aGlzQnVmZmVyKCksIEZpbGx0aGlzQnVmZmVyKCksCisgKiBFdmVudEhhbmRsZXIoKQorICovCisjZGVmaW5lIERFRkFVTFRfVElNRU9VVCA0MDAwMAorCitlbnVtIGJ1ZmZlck93bmVyIHsKKyAgICBjbGllbnQsCisgICAgY29tcG9uZW50LAorICAgIHVua25vd24sCit9OworCitzdHJ1Y3QgQnVmZmVySW5mbyB7CisgICAgdWludDMyX3QgaWQ7CisgICAgYnVmZmVyT3duZXIgb3duZXI7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvZGVjQnVmZmVyIG9teEJ1ZmZlcjsKKyAgICA6OmFuZHJvaWQ6OnNwPElNZW1vcnk+IG1NZW1vcnk7Cit9OworCitzdHJ1Y3QgRnJhbWVEYXRhIHsKKyAgICBpbnQgYnl0ZXNDb3VudDsKKyAgICB1aW50MzJfdCBmbGFnczsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXA7Cit9OworCitzdHJ1Y3QgQ29kZWNPYnNlcnZlciA6IHB1YmxpYyBJT214T2JzZXJ2ZXIgeworICAgcHVibGljOgorICAgIENvZGVjT2JzZXJ2ZXIoc3RkOjpmdW5jdGlvbjx2b2lkKE1lc3NhZ2UpPiBmbikgOiBjYWxsQmFjayhmbikge30KKyAgICBSZXR1cm48dm9pZD4gb25NZXNzYWdlcyhjb25zdCBoaWRsX3ZlYzxNZXNzYWdlPiYgbWVzc2FnZXMpIG92ZXJyaWRlIHsKKyAgICAgICAgYW5kcm9pZDo6TXV0ZXg6OkF1dG9sb2NrIGF1dG9Mb2NrKG1zZ0xvY2spOworICAgICAgICBmb3IgKGhpZGxfdmVjPE1lc3NhZ2U+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1lc3NhZ2VzLmJlZ2luKCk7CisgICAgICAgICAgICAgaXQgIT0gbWVzc2FnZXMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgICAgIG1zZ1F1ZXVlLnB1c2hfYmFjaygqaXQpOworICAgICAgICB9CisgICAgICAgIG1zZ0NvbmRpdGlvbi5zaWduYWwoKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBkZXF1ZXVlTWVzc2FnZSgKKyAgICAgICAgTWVzc2FnZSogbXNnLCBpbnQ2NF90IHRpbWVvdXRVcywKKyAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVycyA9IG51bGxwdHIsCisgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlcnMgPSBudWxscHRyKSB7CisgICAgICAgIGludDY0X3QgZmluaXNoQnkgPSBhbmRyb2lkOjpBTG9vcGVyOjpHZXROb3dVcygpICsgdGltZW91dFVzOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBhbmRyb2lkOjpNdXRleDo6QXV0b2xvY2sgYXV0b0xvY2sobXNnTG9jayk7CisgICAgICAgICAgICBhbmRyb2lkOjpMaXN0PE1lc3NhZ2U+OjppdGVyYXRvciBpdCA9IG1zZ1F1ZXVlLmJlZ2luKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQgIT0gbXNnUXVldWUuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXQtPnR5cGUgPT0KKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U6OlR5cGU6OkVWRU5UKSB7CisgICAgICAgICAgICAgICAgICAgICptc2cgPSAqaXQ7CisgICAgICAgICAgICAgICAgICAgIG1zZ1F1ZXVlLmVyYXNlKGl0KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0s7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdC0+dHlwZSA9PSBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZTo6VHlwZTo6RklMTF9CVUZGRVJfRE9ORSkgeworICAgICAgICAgICAgICAgICAgICBpZiAob0J1ZmZlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG9CdWZmZXJzLT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKm9CdWZmZXJzKVtpXS5pZCA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC0+ZGF0YS5idWZmZXJEYXRhLmJ1ZmZlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbEJhY2spIGNhbGxCYWNrKCppdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9CdWZmZXJzLT5lZGl0SXRlbUF0KGkpLm93bmVyID0gY2xpZW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dRdWV1ZS5lcmFzZShpdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9MRShpLCBvQnVmZmVycy0+c2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXQtPnR5cGUgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2U6OlR5cGU6OkVNUFRZX0JVRkZFUl9ET05FKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpQnVmZmVycykgeworICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaUJ1ZmZlcnMtPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgqaUJ1ZmZlcnMpW2ldLmlkID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0LT5kYXRhLmJ1ZmZlckRhdGEuYnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlCdWZmZXJzLT5lZGl0SXRlbUF0KGkpLm93bmVyID0gY2xpZW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dRdWV1ZS5lcmFzZShpdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9MRShpLCBpQnVmZmVycy0+c2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK2l0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZpbmlzaEJ5IC0gYW5kcm9pZDo6QUxvb3Blcjo6R2V0Tm93VXMoKSA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIHRvU3RhdHVzKGFuZHJvaWQ6OlRJTUVEX09VVCk7CisgICAgICAgICAgICBhbmRyb2lkOjpzdGF0dXNfdCBlcnIgPQorICAgICAgICAgICAgICAgICh0aW1lb3V0VXMgPCAwKQorICAgICAgICAgICAgICAgICAgICA/IG1zZ0NvbmRpdGlvbi53YWl0KG1zZ0xvY2spCisgICAgICAgICAgICAgICAgICAgIDogbXNnQ29uZGl0aW9uLndhaXRSZWxhdGl2ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnTG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbmlzaEJ5IC0gYW5kcm9pZDo6QUxvb3Blcjo6R2V0Tm93VXMoKSkgKiAxMDAwbGwpOworICAgICAgICAgICAgaWYgKGVyciA9PSBhbmRyb2lkOjpUSU1FRF9PVVQpIHJldHVybiB0b1N0YXR1cyhlcnIpOworICAgICAgICB9CisgICAgfQorCisgICAgYW5kcm9pZDo6TGlzdDxNZXNzYWdlPiBtc2dRdWV1ZTsKKyAgICBhbmRyb2lkOjpNdXRleCBtc2dMb2NrOworICAgIGFuZHJvaWQ6OkNvbmRpdGlvbiBtc2dDb25kaXRpb247CisgICAgc3RkOjpmdW5jdGlvbjx2b2lkKE1lc3NhZ2UpPiBjYWxsQmFjazsKK307CisKKy8qCisgKiBVc2VmdWwgV3JhcHBlciB1dGlsaXRpZXMKKyAqLwordGVtcGxhdGUgPGNsYXNzIFQ+Cit2b2lkIEluaXRPTVhQYXJhbXMoVCogcGFyYW1zKSB7CisgICAgcGFyYW1zLT5uU2l6ZSA9IHNpemVvZihUKTsKKyAgICBwYXJhbXMtPm5WZXJzaW9uLnMublZlcnNpb25NYWpvciA9IDE7CisgICAgcGFyYW1zLT5uVmVyc2lvbi5zLm5WZXJzaW9uTWlub3IgPSAwOworICAgIHBhcmFtcy0+blZlcnNpb24ucy5uUmV2aXNpb24gPSAwOworICAgIHBhcmFtcy0+blZlcnNpb24ucy5uU3RlcCA9IDA7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IGdldFBhcmFtKAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfSU5ERVhUWVBFIG9teElkeCwgVCogcGFyYW1zKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgSW5pdE9NWFBhcmFtcyhwYXJhbXMpOworICAgIG9teE5vZGUtPmdldFBhcmFtZXRlcigKKyAgICAgICAgdG9SYXdJbmRleFR5cGUob214SWR4KSwgaW5IaWRsQnl0ZXMocGFyYW1zLCBzaXplb2YoKnBhcmFtcykpLAorICAgICAgICBbJnN0YXR1cywgJnBhcmFtc10oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNvbnN0JiBvdXRQYXJhbXMpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgc3RkOjpjb3B5KG91dFBhcmFtcy5kYXRhKCksIG91dFBhcmFtcy5kYXRhKCkgKyBvdXRQYXJhbXMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx2b2lkKj4ocGFyYW1zKSkpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRQYXJhbSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX0lOREVYVFlQRSBvbXhJZHgsIFQqIHBhcmFtcykgeworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICByZXR1cm4gb214Tm9kZS0+c2V0UGFyYW1ldGVyKHRvUmF3SW5kZXhUeXBlKG9teElkeCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbkhpZGxCeXRlcyhwYXJhbXMsIHNpemVvZigqcGFyYW1zKSkpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBnZXRQb3J0UGFyYW0oCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9JTkRFWFRZUEUgb214SWR4LCBPTVhfVTMyIG5Qb3J0SW5kZXgsIFQqIHBhcmFtcykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICBwYXJhbXMtPm5Qb3J0SW5kZXggPSBuUG9ydEluZGV4OworICAgIG9teE5vZGUtPmdldFBhcmFtZXRlcigKKyAgICAgICAgdG9SYXdJbmRleFR5cGUob214SWR4KSwgaW5IaWRsQnl0ZXMocGFyYW1zLCBzaXplb2YoKnBhcmFtcykpLAorICAgICAgICBbJnN0YXR1cywgJnBhcmFtc10oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNvbnN0JiBvdXRQYXJhbXMpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgc3RkOjpjb3B5KG91dFBhcmFtcy5kYXRhKCksIG91dFBhcmFtcy5kYXRhKCkgKyBvdXRQYXJhbXMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx2b2lkKj4ocGFyYW1zKSkpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRQb3J0UGFyYW0oCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9JTkRFWFRZUEUgb214SWR4LCBPTVhfVTMyIG5Qb3J0SW5kZXgsIFQqIHBhcmFtcykgeworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICBwYXJhbXMtPm5Qb3J0SW5kZXggPSBuUG9ydEluZGV4OworICAgIHJldHVybiBvbXhOb2RlLT5zZXRQYXJhbWV0ZXIodG9SYXdJbmRleFR5cGUob214SWR4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluSGlkbEJ5dGVzKHBhcmFtcywgc2l6ZW9mKCpwYXJhbXMpKSk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IGdldFBvcnRDb25maWcoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9JTkRFWFRZUEUgb214SWR4LCBPTVhfVTMyIG5Qb3J0SW5kZXgsIFQqIHBhcmFtcykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICBwYXJhbXMtPm5Qb3J0SW5kZXggPSBuUG9ydEluZGV4OworICAgIG9teE5vZGUtPmdldENvbmZpZygKKyAgICAgICAgdG9SYXdJbmRleFR5cGUob214SWR4KSwgaW5IaWRsQnl0ZXMocGFyYW1zLCBzaXplb2YoKnBhcmFtcykpLAorICAgICAgICBbJnN0YXR1cywgJnBhcmFtc10oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNvbnN0JiBvdXRQYXJhbXMpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgc3RkOjpjb3B5KG91dFBhcmFtcy5kYXRhKCksIG91dFBhcmFtcy5kYXRhKCkgKyBvdXRQYXJhbXMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx2b2lkKj4ocGFyYW1zKSkpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRQb3J0Q29uZmlnKAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfSU5ERVhUWVBFIG9teElkeCwgT01YX1UzMiBuUG9ydEluZGV4LCBUKiBwYXJhbXMpIHsKKyAgICBJbml0T01YUGFyYW1zKHBhcmFtcyk7CisgICAgcGFyYW1zLT5uUG9ydEluZGV4ID0gblBvcnRJbmRleDsKKyAgICByZXR1cm4gb214Tm9kZS0+c2V0Q29uZmlnKHRvUmF3SW5kZXhUeXBlKG9teElkeCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbkhpZGxCeXRlcyhwYXJhbXMsIHNpemVvZigqcGFyYW1zKSkpOworfQorCisjZW5kaWYgIC8vIE1FRElBX0hJRExfVEVTVF9DT01NT05fSApkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQvQW5kcm9pZC5icCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tcG9uZW50L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDJmZTE4MgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tcG9uZW50L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0NSBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldENvbXBvbmVudFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldENvbXBvbmVudFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJzdGFnZWZyaWdodF9mb3VuZGF0aW9uIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5hbGxvY2F0b3JAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKKyAgICBpbmNsdWRlX2RpcnM6IFsKKyAgICAgICAgImZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvb3Blbm1heC8iLAorICAgICAgICAiaGFyZHdhcmUvaW50ZXJmYWNlcy9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbiIsCisgICAgXSwKK30KKwpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQvVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0Q29tcG9uZW50VGVzdC5jcHAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbXBvbmVudC9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRDb21wb25lbnRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2M0OWNhCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQvVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0Q29tcG9uZW50VGVzdC5jcHAKQEAgLTAsMCArMSwxNDA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF9jb21wb25lbnRfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cAorY2xhc3MgQ29tcG9uZW50VGVzdEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworICAgIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpIDogaW5zdGFuY2UoImRlZmF1bHQiKSB7fQorCisgICAgdm9pZCBzZXRJbnN0YW5jZShjb25zdCBjaGFyKiBfaW5zdGFuY2UpIHsgaW5zdGFuY2UgPSBfaW5zdGFuY2U7IH0KKworICAgIHZvaWQgc2V0Q29tcG9uZW50KGNvbnN0IGNoYXIqIF9jb21wb25lbnQpIHsgY29tcG9uZW50ID0gX2NvbXBvbmVudDsgfQorCisgICAgdm9pZCBzZXRSb2xlKGNvbnN0IGNoYXIqIF9yb2xlKSB7IHJvbGUgPSBfcm9sZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0SW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpbnN0YW5jZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Q29tcG9uZW50KCkgY29uc3QgeyByZXR1cm4gY29tcG9uZW50OyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSb2xlKCkgY29uc3QgeyByZXR1cm4gcm9sZTsgfQorCisgICAgaW50IGluaXRGcm9tT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICAgICAgc3RhdGljIHN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0geworICAgICAgICAgICAgeyJpbnN0YW5jZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnSSd9LAorICAgICAgICAgICAgeyJjb21wb25lbnQiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0MnfSwKKyAgICAgICAgICAgIHsicm9sZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUid9LAorICAgICAgICAgICAgezAsIDAsIDAsIDB9fTsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkk6QzpSOiIsIG9wdGlvbnMsICZpbmRleCk7CisgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdJJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0SW5zdGFuY2Uob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAgICAgICAgICAgIHNldENvbXBvbmVudChvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdSJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Um9sZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW5kIDwgYXJnYykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlc1xuXG4iCisgICAgICAgICAgICAgICAgICAgICJ1c2FnZTogJXMgPGd0ZXN0IG9wdGlvbnM+IDx0ZXN0IG9wdGlvbnM+XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInRlc3Qgb3B0aW9ucyBhcmU6XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgIi1JLCAtLWluc3RhbmNlOiBIQUwgaW5zdGFuY2UgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLUMsIC0tY29tcG9uZW50OiBPTVggY29tcG9uZW50IHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1SLCAtLVJvbGU6IE9NWCBjb21wb25lbnQgUm9sZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgYXJndltvcHRpbmQgPzogMV0sIGFyZ3ZbMF0pOworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIGhpZGxfc3RyaW5nIGluc3RhbmNlOworICAgIGhpZGxfc3RyaW5nIGNvbXBvbmVudDsKKyAgICBoaWRsX3N0cmluZyByb2xlOworfTsKKworc3RhdGljIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCogZ0VudiA9IG51bGxwdHI7CisKKy8vIGdlbmVyaWMgY29tcG9uZW50IHRlc3QgZml4dHVyZSBjbGFzcworY2xhc3MgQ29tcG9uZW50SGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgZGlzYWJsZVRlc3QgPSBmYWxzZTsKKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgICAgIG9teCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElPbXg+KAorICAgICAgICAgICAgZ0Vudi0+Z2V0SW5zdGFuY2UoKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXgsIG51bGxwdHIpOworICAgICAgICBvYnNlcnZlciA9IG5ldyBDb2RlY09ic2VydmVyKG51bGxwdHIpOworICAgICAgICBBU1NFUlRfTkUob2JzZXJ2ZXIsIG51bGxwdHIpOworICAgICAgICBpZiAoc3RybmNtcChnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpLCAiT01YLiIsIDQpICE9IDApCisgICAgICAgICAgICBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIEVYUEVDVF9UUlVFKG9teC0+YWxsb2NhdGVOb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0Vudi0+Z2V0Q29tcG9uZW50KCksIG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8SU9teE5vZGU+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5vbXhOb2RlID0gX25sOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICBBU1NFUlRfTkUob214Tm9kZSwgbnVsbHB0cik7CisgICAgICAgIEFTU0VSVF9ORShnRW52LT5nZXRSb2xlKCkuZW1wdHkoKSwgdHJ1ZSkgPDwgIkludmFsaWQgQ29tcG9uZW50IFJvbGUiOworICAgICAgICBzdHJ1Y3QgU3RyaW5nVG9DbGFzcyB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBDbGFzczsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcENsYXNzIENvbXBDbGFzczsKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3QgU3RyaW5nVG9DbGFzcyBrU3RyaW5nVG9DbGFzc1tdID0geworICAgICAgICAgICAgeyJhdWRpb19kZWNvZGVyIiwgYXVkaW9fZGVjb2Rlcn0sCisgICAgICAgICAgICB7ImF1ZGlvX2VuY29kZXIiLCBhdWRpb19lbmNvZGVyfSwKKyAgICAgICAgICAgIHsidmlkZW9fZGVjb2RlciIsIHZpZGVvX2RlY29kZXJ9LAorICAgICAgICAgICAgeyJ2aWRlb19lbmNvZGVyIiwgdmlkZW9fZW5jb2Rlcn0sCisgICAgICAgIH07CisgICAgICAgIGNvbnN0IHNpemVfdCBrTnVtU3RyaW5nVG9DbGFzcyA9CisgICAgICAgICAgICBzaXplb2Yoa1N0cmluZ1RvQ2xhc3MpIC8gc2l6ZW9mKGtTdHJpbmdUb0NsYXNzWzBdKTsKKyAgICAgICAgY29uc3QgY2hhciogcGNoOworICAgICAgICBjaGFyIHN1YnN0cmluZ1tPTVhfTUFYX1NUUklOR05BTUVfU0laRV07CisgICAgICAgIHN0cmNweShzdWJzdHJpbmcsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICAgICAgcGNoID0gc3RyY2hyKHN1YnN0cmluZywgJy4nKTsKKyAgICAgICAgQVNTRVJUX05FKHBjaCwgbnVsbHB0cikgPDwgIkludmFsaWQgQ29tcG9uZW50IFJvbGUiOworICAgICAgICBzdWJzdHJpbmdbcGNoIC0gc3Vic3RyaW5nXSA9ICdcMCc7CisgICAgICAgIGNvbXBDbGFzcyA9IHVua25vd25fY2xhc3M7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga051bVN0cmluZ1RvQ2xhc3M7ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjYXNlY21wKHN1YnN0cmluZywga1N0cmluZ1RvQ2xhc3NbaV0uQ2xhc3MpKSB7CisgICAgICAgICAgICAgICAgY29tcENsYXNzID0ga1N0cmluZ1RvQ2xhc3NbaV0uQ29tcENsYXNzOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjb21wQ2xhc3MgPT0gdW5rbm93bl9jbGFzcykgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBpZiAoZGlzYWJsZVRlc3QpIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISAgVGVzdCBEaXNhYmxlZFxuIjsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIGlmIChvbXhOb2RlICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKChvbXhOb2RlLT5mcmVlTm9kZSgpKS5pc09rKCkpOworICAgICAgICAgICAgb214Tm9kZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbnVtIHN0YW5kYXJkQ29tcENsYXNzIHsKKyAgICAgICAgYXVkaW9fZGVjb2RlciwKKyAgICAgICAgYXVkaW9fZW5jb2RlciwKKyAgICAgICAgdmlkZW9fZGVjb2RlciwKKyAgICAgICAgdmlkZW9fZW5jb2RlciwKKyAgICAgICAgdW5rbm93bl9jbGFzcywKKyAgICB9OworCisgICAgc3A8SU9teD4gb214OworICAgIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyOworICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlOworICAgIHN0YW5kYXJkQ29tcENsYXNzIGNvbXBDbGFzczsKKyAgICBib29sIGRpc2FibGVUZXN0OworCisgICBwcm90ZWN0ZWQ6CisgICAgc3RhdGljIHZvaWQgZGVzY3JpcHRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIFJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIGRlc2NyaXB0aW9uKTsKKyAgICB9Cit9OworCisvLyBSYW5kb20gSW5kZXggdXNlZCBmb3IgbW9ua2V5IHRlc3Rpbmcgd2hpbGUgZ2V0L3NldCBwYXJhbWV0ZXJzCisjZGVmaW5lIFJBTkRPTV9JTkRFWCAxNzI5CisKKy8vIGFsbG9jYXRlIGJ1ZmZlcnMgbmVlZGVkIG9uIGEgY29tcG9uZW50IHBvcnQKK3ZvaWQgYWxsb2NhdGVQb3J0QnVmZmVycyhzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIHBvcnRJbmRleCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKworICAgIGJ1ZmZBcnJheS0+Y2xlYXIoKTsKKworICAgIHNwPElBbGxvY2F0b3I+IGFsbG9jYXRvciA9IElBbGxvY2F0b3I6OmdldFNlcnZpY2UoImFzaG1lbSIpOworICAgIEVYUEVDVF9ORShhbGxvY2F0b3IuZ2V0KCksIG51bGxwdHIpOworCisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbDsgaSsrKSB7CisgICAgICAgIEJ1ZmZlckluZm8gYnVmZmVyOworICAgICAgICBidWZmZXIub3duZXIgPSBjbGllbnQ7CisgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpTSEFSRURfTUVNOworICAgICAgICBidWZmZXIub214QnVmZmVyLmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IDA7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICBhbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICAgICAgcG9ydERlZi5uQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgIFsmc3VjY2VzcywgJmJ1ZmZlcl0oYm9vbCBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkgY29uc3QmIG1lbSkgeworICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBfczsKKyAgICAgICAgICAgICAgICBidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeSA9IG1lbTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfRVEoc3VjY2VzcywgdHJ1ZSk7CisgICAgICAgIEFTU0VSVF9FUShidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeS5zaXplKCksIHBvcnREZWYubkJ1ZmZlclNpemUpOworCisgICAgICAgIG9teE5vZGUtPnVzZUJ1ZmZlcigKKyAgICAgICAgICAgIHBvcnRJbmRleCwgYnVmZmVyLm9teEJ1ZmZlciwKKyAgICAgICAgICAgIFsmc3RhdHVzLCAmYnVmZmVyXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGlkKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgYnVmZmVyLmlkID0gaWQ7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgYnVmZkFycmF5LT5wdXNoKGJ1ZmZlcik7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IExvYWRlZCAtPiBJZGxlCisvLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG1ha2UgYW55IGJhY2tncm91bmQgY2hlY2tzIGZvciB0aGlzIHRyYW5zaXRpb24uCisvLyBUaGUgY2FsbGVlIGhvbGRzIHRoZSByZXBvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGUgbGVnYWxpdHkgb2YgdGhlIHRyYW5zaXRpb24uCit2b2lkIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVJZGxlKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBEb250IHN3aXRjaCBzdGF0ZXMgdW50aWwgdGhlIHBvcnRzIGFyZSBwb3B1bGF0ZWQKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworCisgICAgLy8gYWxsb2NhdGUgYnVmZmVycyBvbiBpbnB1dCBwb3J0CisgICAgYWxsb2NhdGVQb3J0QnVmZmVycyhvbXhOb2RlLCBpQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQpOworCisgICAgLy8gRG9udCBzd2l0Y2ggc3RhdGVzIHVudGlsIHRoZSBwb3J0cyBhcmUgcG9wdWxhdGVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIC8vIGFsbG9jYXRlIGJ1ZmZlcnMgb24gb3V0cHV0IHBvcnQKKyAgICBhbGxvY2F0ZVBvcnRCdWZmZXJzKG9teE5vZGUsIG9CdWZmZXIsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgLy8gQXMgdGhlIHBvcnRzIGFyZSBwb3B1bGF0ZWQsIGNoZWNrIGlmIHRoZSBzdGF0ZSB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFN0YXRlU2V0KTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBPTVhfU3RhdGVJZGxlKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IElkbGUgLT4gTG9hZGVkCisvLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG1ha2UgYW55IGJhY2tncm91bmQgY2hlY2tzIGZvciB0aGlzIHRyYW5zaXRpb24uCisvLyBUaGUgY2FsbGVlIGhvbGRzIHRoZSByZXBvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGUgbGVnYWxpdHkgb2YgdGhlIHRyYW5zaXRpb24uCit2b2lkIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIHNldCBzdGF0ZSB0byBMb2FkZWQKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUxvYWRlZCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gZG9udCBjaGFuZ2Ugc3RhdGUgdW50aWwgYWxsIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4SW5wdXQsICgqaUJ1ZmZlcilbaV0uaWQpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfQorCisgICAgLy8gZG9udCBjaGFuZ2Ugc3RhdGUgdW50aWwgYWxsIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4T3V0cHV0LCAoKm9CdWZmZXIpW2ldLmlkKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KKworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlTG9hZGVkKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IElkbGUgLT4gRXhlY3V0ZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUV4ZWN1dGluZyk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlRXhlY3V0aW5nKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IEV4ZWN1dGUgLT4gSWRsZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gSWRsZQorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlSWRsZSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlSWRsZSk7CisKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKmlCdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KK30KKworLy8gZGlzcGF0Y2ggYnVmZmVyIHRvIG91dHB1dCBwb3J0Cit2b2lkIGRpc3BhdGNoT3V0cHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1ZmZlckluZGV4KSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgQ29kZWNCdWZmZXIgdDsKKyAgICB0LnNoYXJlZE1lbW9yeSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeSgpOworICAgIHQubmF0aXZlSGFuZGxlID0gYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlKCk7CisgICAgdC50eXBlID0gQ29kZWNCdWZmZXI6OlR5cGU6OlBSRVNFVDsKKyAgICB0LmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICB0LmF0dHIucHJlc2V0LnJhbmdlTGVuZ3RoID0gMDsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGZlbmNlTmggPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgwLCAwKTsKKyAgICBBU1NFUlRfTkUoZmVuY2VOaCwgbnVsbHB0cik7CisgICAgc3RhdHVzID0gb214Tm9kZS0+ZmlsbEJ1ZmZlcigoKmJ1ZmZBcnJheSlbYnVmZmVySW5kZXhdLmlkLCB0LCBmZW5jZU5oKTsKKyAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGZlbmNlTmgpOworICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGZlbmNlTmgpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBidWZmQXJyYXktPmVkaXRJdGVtQXQoYnVmZmVySW5kZXgpLm93bmVyID0gY29tcG9uZW50OworfQorCisvLyBkaXNwYXRjaCBidWZmZXIgdG8gaW5wdXQgcG9ydAordm9pZCBkaXNwYXRjaElucHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCwgaW50IGJ5dGVzQ291bnQsIHVpbnQzMl90IGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIENvZGVjQnVmZmVyIHQ7CisgICAgdC5zaGFyZWRNZW1vcnkgPSBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkoKTsKKyAgICB0Lm5hdGl2ZUhhbmRsZSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSgpOworICAgIHQudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpQUkVTRVQ7CisgICAgdC5hdHRyLnByZXNldC5yYW5nZU9mZnNldCA9IDA7CisgICAgdC5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IGJ5dGVzQ291bnQ7CisgICAgbmF0aXZlX2hhbmRsZV90KiBmZW5jZU5oID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoMCwgMCk7CisgICAgQVNTRVJUX05FKGZlbmNlTmgsIG51bGxwdHIpOworICAgIHN0YXR1cyA9IG9teE5vZGUtPmVtcHR5QnVmZmVyKCgqYnVmZkFycmF5KVtidWZmZXJJbmRleF0uaWQsIHQsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCwgZmVuY2VOaCk7CisgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShmZW5jZU5oKTsKKyAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShmZW5jZU5oKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGJ1ZmZlckluZGV4KS5vd25lciA9IGNvbXBvbmVudDsKK30KKworLy8gRmx1c2ggaW5wdXQgYW5kIG91dHB1dCBwb3J0cwordm9pZCBmbHVzaFBvcnRzKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLCBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIEZsdXNoIGlucHV0IHBvcnQKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kRmx1c2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRGbHVzaCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwga1BvcnRJbmRleElucHV0KTsKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKmlCdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KKworICAgIC8vIEZsdXNoIG91dHB1dCBwb3J0CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZEZsdXNoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZEZsdXNoKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KK30KKworLy8gZ2V0L3NldCB2aWRlbyBjb21wb25lbnQgcG9ydCBmb3JtYXQKK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRWaWRlb1BvcnRGb3JtYXQoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgIE9NWF9WSURFT19DT0RJTkdUWVBFIGVDb21wcmVzc2lvbkZvcm1hdCwgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0LAorICAgIE9NWF9VMzIgeEZyYW1lcmF0ZSkgeworICAgIE9NWF9VMzIgaW5kZXggPSAwOworICAgIE9NWF9WSURFT19QQVJBTV9QT1JURk9STUFUVFlQRSBwb3J0Rm9ybWF0OworICAgIHN0ZDo6dmVjdG9yPE9NWF9DT0xPUl9GT1JNQVRUWVBFPiBhcnJDb2xvckZvcm1hdDsKKyAgICBzdGQ6OnZlY3RvcjxPTVhfVklERU9fQ09ESU5HVFlQRT4gYXJyQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IGluZGV4OworICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb1BvcnRGb3JtYXQsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0Rm9ybWF0KTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSBicmVhazsKKyAgICAgICAgaWYgKGVDb21wcmVzc2lvbkZvcm1hdCA9PSBPTVhfVklERU9fQ29kaW5nVW51c2VkKQorICAgICAgICAgICAgYXJyQ29sb3JGb3JtYXQucHVzaF9iYWNrKHBvcnRGb3JtYXQuZUNvbG9yRm9ybWF0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXJyQ29tcHJlc3Npb25Gb3JtYXQucHVzaF9iYWNrKHBvcnRGb3JtYXQuZUNvbXByZXNzaW9uRm9ybWF0KTsKKyAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgaWYgKGluZGV4ID09IDUxMikgeworICAgICAgICAgICAgLy8gZW51bWVyYXRlZCB3YXkgdG9vIG1hbnkgZm9ybWF0cywgaGlnaGx5IHVudXN1YWwgZm9yIHRoaXMgdG8KKyAgICAgICAgICAgIC8vIGhhcHBlbi4KKyAgICAgICAgICAgIEVYUEVDVF9MRShpbmRleCwgNTEyVSkKKyAgICAgICAgICAgICAgICA8PCAiRXhwZWN0aW5nIE9NWF9FcnJvck5vTW9yZSBidXQgbm90IHJlY2VpdmVkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghaW5kZXgpIHJldHVybiBzdGF0dXM7CisgICAgaWYgKGVDb21wcmVzc2lvbkZvcm1hdCA9PSBPTVhfVklERU9fQ29kaW5nVW51c2VkKSB7CisgICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGFyckNvbG9yRm9ybWF0LnNpemUoKTsgaW5kZXgrKykgeworICAgICAgICAgICAgaWYgKGFyckNvbG9yRm9ybWF0W2luZGV4XSA9PSBlQ29sb3JGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBwb3J0Rm9ybWF0LmVDb2xvckZvcm1hdCA9IGFyckNvbG9yRm9ybWF0W2luZGV4XTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXggPT0gYXJyQ29sb3JGb3JtYXQuc2l6ZSgpKSB7CisgICAgICAgICAgICBBTE9HRSgic2V0dGluZyBkZWZhdWx0IGNvbG9yIGZvcm1hdCAleCIsIChpbnQpYXJyQ29sb3JGb3JtYXRbMF0pOworICAgICAgICAgICAgcG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQgPSBhcnJDb2xvckZvcm1hdFswXTsKKyAgICAgICAgfQorICAgICAgICBwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCA9IE9NWF9WSURFT19Db2RpbmdVbnVzZWQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgYXJyQ29tcHJlc3Npb25Gb3JtYXQuc2l6ZSgpOyBpbmRleCsrKSB7CisgICAgICAgICAgICBpZiAoYXJyQ29tcHJlc3Npb25Gb3JtYXRbaW5kZXhdID09IGVDb21wcmVzc2lvbkZvcm1hdCkgeworICAgICAgICAgICAgICAgIHBvcnRGb3JtYXQuZUNvbXByZXNzaW9uRm9ybWF0ID0gYXJyQ29tcHJlc3Npb25Gb3JtYXRbaW5kZXhdOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpbmRleCA9PSBhcnJDb21wcmVzc2lvbkZvcm1hdC5zaXplKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCJzZXR0aW5nIGRlZmF1bHQgY29tcHJlc3Npb24gZm9ybWF0ICV4IiwKKyAgICAgICAgICAgICAgICAgIChpbnQpYXJyQ29tcHJlc3Npb25Gb3JtYXRbMF0pOworICAgICAgICAgICAgcG9ydEZvcm1hdC5lQ29tcHJlc3Npb25Gb3JtYXQgPSBhcnJDb21wcmVzc2lvbkZvcm1hdFswXTsKKyAgICAgICAgfQorICAgICAgICBwb3J0Rm9ybWF0LmVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRVbnVzZWQ7CisgICAgfQorICAgIC8vIEluIHNldFBhcmFtIGNhbGwgbkluZGV4IHNoYWxsIGJlIGlnbm9yZWQgYXMgcGVyIG9teC1pbCBzcGVjaWZpY2F0aW9uLgorICAgIC8vIHNlZSBob3cgdGhpcyBob2xkcyB1cCBieSBjb3JydXB0aW5nIG5JbmRleAorICAgIHBvcnRGb3JtYXQubkluZGV4ID0gUkFORE9NX0lOREVYOworICAgIHBvcnRGb3JtYXQueEZyYW1lcmF0ZSA9IHhGcmFtZXJhdGU7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Qb3J0Rm9ybWF0LCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0Rm9ybWF0KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisvLyBnZXQvc2V0IGF1ZGlvIGNvbXBvbmVudCBwb3J0IGZvcm1hdAorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IHNldEF1ZGlvUG9ydEZvcm1hdCgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZykgeworICAgIE9NWF9VMzIgaW5kZXggPSAwOworICAgIE9NWF9BVURJT19QQVJBTV9QT1JURk9STUFUVFlQRSBwb3J0Rm9ybWF0OworICAgIHN0ZDo6dmVjdG9yPE9NWF9BVURJT19DT0RJTkdUWVBFPiBhcnJFbmNvZGluZzsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHBvcnRGb3JtYXQubkluZGV4ID0gaW5kZXg7CisgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUG9ydEZvcm1hdCwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnRGb3JtYXQpOworICAgICAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIGJyZWFrOworICAgICAgICBhcnJFbmNvZGluZy5wdXNoX2JhY2socG9ydEZvcm1hdC5lRW5jb2RpbmcpOworICAgICAgICBpbmRleCsrOworICAgICAgICBpZiAoaW5kZXggPT0gNTEyKSB7CisgICAgICAgICAgICAvLyBlbnVtZXJhdGVkIHdheSB0b28gbWFueSBmb3JtYXRzLCBoaWdobHkgdW51c3VhbCBmb3IgdGhpcyB0bworICAgICAgICAgICAgLy8gaGFwcGVuLgorICAgICAgICAgICAgRVhQRUNUX0xFKGluZGV4LCA1MTJVKQorICAgICAgICAgICAgICAgIDw8ICJFeHBlY3RpbmcgT01YX0Vycm9yTm9Nb3JlIGJ1dCBub3QgcmVjZWl2ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFpbmRleCkgcmV0dXJuIHN0YXR1czsKKyAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBhcnJFbmNvZGluZy5zaXplKCk7IGluZGV4KyspIHsKKyAgICAgICAgaWYgKGFyckVuY29kaW5nW2luZGV4XSA9PSBlRW5jb2RpbmcpIHsKKyAgICAgICAgICAgIHBvcnRGb3JtYXQuZUVuY29kaW5nID0gYXJyRW5jb2RpbmdbaW5kZXhdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGluZGV4ID09IGFyckVuY29kaW5nLnNpemUoKSkgeworICAgICAgICBBTE9HRSgic2V0dGluZyBkZWZhdWx0IFBvcnQgZm9ybWF0ICV4IiwgKGludClhcnJFbmNvZGluZ1swXSk7CisgICAgICAgIHBvcnRGb3JtYXQuZUVuY29kaW5nID0gYXJyRW5jb2RpbmdbMF07CisgICAgfQorICAgIC8vIEluIHNldFBhcmFtIGNhbGwgbkluZGV4IHNoYWxsIGJlIGlnbm9yZWQgYXMgcGVyIG9teC1pbCBzcGVjaWZpY2F0aW9uLgorICAgIC8vIHNlZSBob3cgdGhpcyBob2xkcyB1cCBieSBjb3JydXB0aW5nIG5JbmRleAorICAgIHBvcnRGb3JtYXQubkluZGV4ID0gUkFORE9NX0lOREVYOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUG9ydEZvcm1hdCwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydEZvcm1hdCk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworLy8gc2V0IGNvbXBvbmVudCByb2xlCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0Um9sZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgY29uc3QgY2hhciogcm9sZSkgeworICAgIE9NWF9QQVJBTV9DT01QT05FTlRST0xFVFlQRSBwYXJhbXM7CisgICAgc3RyY3B5KChjaGFyKilwYXJhbXMuY1JvbGUsIHJvbGUpOworICAgIHJldHVybiBzZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVN0YW5kYXJkQ29tcG9uZW50Um9sZSwgJnBhcmFtcyk7Cit9CisKKy8vIHRlc3QgZGlzcGF0Y2ggbWVzc2FnZSBBUEkgY2FsbAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBkaXNwYXRjaE1zZykgeworICAgIGRlc2NyaXB0aW9uKCJ0ZXN0IGRpc3BhdGNoIG1lc3NhZ2UgQVBJIGNhbGwiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZ2luLCBtc2dvdXQ7CisKKyAgICBtc2dpbi50eXBlID0gTWVzc2FnZTo6VHlwZTo6RVZFTlQ7CisKKyAgICAvLyBkaXNwYXRjaCBFT1MgZXZlbnQsIG5vcm1hbGx5IHRoaXMgaXMgYnkgY29tcG9uZW50IHdoZW4gaXQgcmVjZWl2ZXMgYQorICAgIC8vIEVPUyBmbGFnCisgICAgbXNnaW4uZGF0YS5ldmVudERhdGEuZXZlbnQgPSBPTVhfRXZlbnRCdWZmZXJGbGFnOworICAgIG1zZ2luLmRhdGEuZXZlbnREYXRhLmRhdGExID0gMFU7CisgICAgbXNnaW4uZGF0YS5ldmVudERhdGEuZGF0YTIgPSAodWludDMyX3QpT01YX0JVRkZFUkZMQUdfRU9TOworICAgIHN0YXR1cyA9IG9teE5vZGUtPmRpc3BhdGNoTWVzc2FnZShtc2dpbik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2dvdXQsIERFRkFVTFRfVElNRU9VVCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2dvdXQudHlwZSwgbXNnaW4udHlwZSk7CisgICAgQVNTRVJUX0VRKG1zZ291dC5kYXRhLmV2ZW50RGF0YS5ldmVudCwgbXNnaW4uZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgIEFTU0VSVF9FUShtc2dvdXQuZGF0YS5ldmVudERhdGEuZGF0YTEsIG1zZ2luLmRhdGEuZXZlbnREYXRhLmRhdGExKTsKKyAgICBBU1NFUlRfRVEobXNnb3V0LmRhdGEuZXZlbnREYXRhLmRhdGEyLCBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMik7CisKKyAgICAvLyBkaXNwYXRjaCBkYXRhc3BhY2UgY2hhbmdlZCBldmVudAorICAgIG1zZ2luLmRhdGEuZXZlbnREYXRhLmV2ZW50ID0gT01YX0V2ZW50RGF0YVNwYWNlQ2hhbmdlZDsKKyAgICBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMSA9IDI4MTE0OTQ0MFU7ICAvLyBWMF9CVDYwMV82MjU7CisgICAgbXNnaW4uZGF0YS5ldmVudERhdGEuZGF0YTIgPSAweDExMTE7CisgICAgbXNnaW4uZGF0YS5ldmVudERhdGEuZGF0YTMgPSAweDI0OyAgLy8gUkFXX09QQVFVRQorICAgIHN0YXR1cyA9IG9teE5vZGUtPmRpc3BhdGNoTWVzc2FnZShtc2dpbik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2dvdXQsIERFRkFVTFRfVElNRU9VVCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2dvdXQudHlwZSwgbXNnaW4udHlwZSk7CisgICAgQVNTRVJUX0VRKG1zZ291dC5kYXRhLmV2ZW50RGF0YS5ldmVudCwgbXNnaW4uZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgIEFTU0VSVF9FUShtc2dvdXQuZGF0YS5ldmVudERhdGEuZGF0YTEsIG1zZ2luLmRhdGEuZXZlbnREYXRhLmRhdGExKTsKKyAgICBBU1NFUlRfRVEobXNnb3V0LmRhdGEuZXZlbnREYXRhLmRhdGEyLCBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMik7Cit9CisKKy8vIHNldCBjb21wb25lbnQgcm9sZQorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBTZXRSb2xlKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgU2V0IENvbXBvbmVudCBSb2xlIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKKy8vIHBvcnQgaW5kaWNlcyBlbnVtZXJhdGlvbgorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBHZXRQb3J0SW5kaWNlcykgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IENvbXBvbmVudCBvbiBNYW5kYXRvcnkgUG9ydCBQYXJhbWV0ZXJzIChQb3J0IEluZGljZXMpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIEdldCBOdW1iZXIgb2YgUG9ydHMgYW5kIHRoZWlyIEluZGljZXMgZm9yIGFsbCBEb21haW5zCisgICAgLy8gKEF1ZGlvL1ZpZGVvL0ltYWdlL090aGVyKQorICAgIC8vIEFsbCBzdGFuZGFyZCBPTVggY29tcG9uZW50cyBzaGFsbCBzdXBwb3J0IGZvbGxvd2luZyBPTVggSW5kZXggdHlwZXMKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtSW1hZ2VJbml0LCAmcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbU90aGVySW5pdCwgJnBhcmFtcyk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKKy8vIHBvcnQgZm9ybWF0IGVudW1lcmF0aW9uCitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIEVudW1lcmF0ZVBvcnRGb3JtYXQpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBGb3JtYXQpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIgfHwgY29tcENsYXNzID09IGF1ZGlvX2VuY29kZXIpIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisKKyAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgIE9NWF9VMzIgeEZyYW1lcmF0ZSA9IDI0VSA8PCAxNjsKKworICAgIC8vIEVudW1lcmF0ZSBQb3J0IEZvcm1hdAorICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgc2V0QXVkaW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSk7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBzdGF0dXMgPSBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19Db2RpbmdBdXRvRGV0ZWN0KTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfSBlbHNlIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlcikgeworICAgICAgICBzdGF0dXMgPSBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0NvZGluZ0F1dG9EZXRlY3QpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfQVVESU9fQ29kaW5nUENNKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfSBlbHNlIGlmIChjb21wQ2xhc3MgPT0gdmlkZW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgT01YX1ZJREVPX0NvZGluZ1VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIHhGcmFtZXJhdGUpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQ29kaW5nQXV0b0RldGVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9DT0xPUl9Gb3JtYXRVbnVzZWQsIDBVKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19Db2RpbmdBdXRvRGV0ZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0Zvcm1hdFVudXNlZCwgMFUpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQ29kaW5nVW51c2VkLCBlQ29sb3JGb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4RnJhbWVyYXRlKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfQorfQorCisvLyBnZXQvc2V0IGRlZmF1bHQgcG9ydCBzZXR0aW5ncyBvZiBhIGNvbXBvbmVudAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBTZXREZWZhdWx0UG9ydFBhcmFtcykgeworICAgIGRlc2NyaXB0aW9uKAorICAgICAgICAiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBEZWZpbml0aW9uKSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworCisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgLy8gci93IGRlZmF1bHQgaS9vIHBvcnQgcGFyYW1ldGVycworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgaVBvcnREZWY7CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJmlQb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEVYUEVDVF9FUShpUG9ydERlZi5lRGlyLCBPTVhfRGlySW5wdXQpOworICAgICAgICBFWFBFQ1RfRVEoaVBvcnREZWYuYkVuYWJsZWQsIE9NWF9UUlVFKTsKKyAgICAgICAgRVhQRUNUX0VRKGlQb3J0RGVmLmJQb3B1bGF0ZWQsIE9NWF9GQUxTRSk7CisgICAgICAgIEVYUEVDVF9HRShpUG9ydERlZi5uQnVmZmVyQ291bnRNaW4sIDFVKTsKKyAgICAgICAgRVhQRUNUX0dFKGlQb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCwgaVBvcnREZWYubkJ1ZmZlckNvdW50TWluKTsKKyAgICAgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoaVBvcnREZWYuZURvbWFpbiwgT01YX1BvcnREb21haW5BdWRpbyk7CisgICAgICAgICAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIpIHsKKyAgICAgICAgICAgICAgICBpUG9ydERlZi5mb3JtYXQuYXVkaW8uYkZsYWdFcnJvckNvbmNlYWxtZW50ID0gT01YX1RSVUU7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJmlQb3J0RGVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjb21wQ2xhc3MgPT0gdmlkZW9fZW5jb2RlciB8fCBjb21wQ2xhc3MgPT0gdmlkZW9fZGVjb2RlcikgeworICAgICAgICAgICAgRVhQRUNUX0VRKGlQb3J0RGVmLmVEb21haW4sIE9NWF9Qb3J0RG9tYWluVmlkZW8pOworICAgICAgICAgICAgaWYgKGNvbXBDbGFzcyA9PSB2aWRlb19kZWNvZGVyKSB7CisgICAgICAgICAgICAgICAgaVBvcnREZWYuZm9ybWF0LnZpZGVvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgICAgICAgICAgICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZpUG9ydERlZik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgZHVtbXkgPSBpUG9ydERlZjsKKyAgICAgICAgaVBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsID0gaVBvcnREZWYubkJ1ZmZlckNvdW50TWluIC0gMTsKKyAgICAgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZpUG9ydERlZik7CisgICAgICAgIEVYUEVDVF9ORShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAvLyBFZGl0IFJlYWQtT25seSBmaWVsZHMuCisgICAgICAgIGlQb3J0RGVmLmVEaXIgPSBPTVhfRGlyT3V0cHV0OyAgLy8gUmVhZCBPbmx5IGZpZWxkCisgICAgICAgIGlQb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCA9IGR1bW15Lm5CdWZmZXJDb3VudEFjdHVhbCA8PCAxOworICAgICAgICBpUG9ydERlZi5uQnVmZmVyQ291bnRNaW4gPSBkdW1teS5uQnVmZmVyQ291bnRNaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTsgICAgICAgICAgICAgICAgLy8gUmVhZCBPbmx5IGZpZWxkCisgICAgICAgIGlQb3J0RGVmLm5CdWZmZXJTaXplID0gZHVtbXkubkJ1ZmZlclNpemUgPDwgMTsgIC8vIFJlYWQgT25seSBmaWVsZAorICAgICAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJmlQb3J0RGVmKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmaVBvcnREZWYpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgRVhQRUNUX0VRKGlQb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCwgZHVtbXkubkJ1ZmZlckNvdW50QWN0dWFsIDw8IDEpOworICAgICAgICBpZiAoKGlQb3J0RGVmLmVEaXIgIT0gT01YX0RpcklucHV0KSB8fAorICAgICAgICAgICAgKGlQb3J0RGVmLm5CdWZmZXJDb3VudE1pbiAhPSBkdW1teS5uQnVmZmVyQ291bnRNaW4pIHx8CisgICAgICAgICAgICAoaVBvcnREZWYubkJ1ZmZlclNpemUgIT0gZHVtbXkubkJ1ZmZlclNpemUpKSB7CisgICAgICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgQ29tcG9uZW50IGlucHV0IHBvcnQgZG9lcyBub3QgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVzZXJ2ZSBSZWFkLU9ubHkgZmllbGRzIFxuIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgb1BvcnREZWY7CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsICZvUG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEVYUEVDVF9FUShvUG9ydERlZi5lRGlyLCBPTVhfRGlyT3V0cHV0KTsKKyAgICAgICAgRVhQRUNUX0VRKG9Qb3J0RGVmLmJFbmFibGVkLCBPTVhfVFJVRSk7CisgICAgICAgIEVYUEVDVF9FUShvUG9ydERlZi5iUG9wdWxhdGVkLCBPTVhfRkFMU0UpOworICAgICAgICBFWFBFQ1RfR0Uob1BvcnREZWYubkJ1ZmZlckNvdW50TWluLCAxVSk7CisgICAgICAgIEVYUEVDVF9HRShvUG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWwsIG9Qb3J0RGVmLm5CdWZmZXJDb3VudE1pbik7CisgICAgICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlcikgeworICAgICAgICAgICAgRVhQRUNUX0VRKG9Qb3J0RGVmLmVEb21haW4sIE9NWF9Qb3J0RG9tYWluQXVkaW8pOworICAgICAgICAgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgICAgICAgICAgb1BvcnREZWYuZm9ybWF0LmF1ZGlvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgICAgICAgICAgICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAmb1BvcnREZWYpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGNvbXBDbGFzcyA9PSB2aWRlb19lbmNvZGVyIHx8IGNvbXBDbGFzcyA9PSB2aWRlb19kZWNvZGVyKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEob1BvcnREZWYuZURvbWFpbiwgT01YX1BvcnREb21haW5WaWRlbyk7CisgICAgICAgICAgICBpZiAoY29tcENsYXNzID09IHZpZGVvX2VuY29kZXIpIHsKKyAgICAgICAgICAgICAgICBvUG9ydERlZi5mb3JtYXQudmlkZW8uYkZsYWdFcnJvckNvbmNlYWxtZW50ID0gT01YX1RSVUU7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsICZvUG9ydERlZik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgZHVtbXkgPSBvUG9ydERlZjsKKyAgICAgICAgb1BvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsID0gb1BvcnREZWYubkJ1ZmZlckNvdW50TWluIC0gMTsKKyAgICAgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAmb1BvcnREZWYpOworICAgICAgICBFWFBFQ1RfTkUoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgLy8gRWRpdCBSZWFkLU9ubHkgZmllbGRzLgorICAgICAgICBvUG9ydERlZi5lRGlyID0gT01YX0RpcklucHV0OyAgLy8gUmVhZCBPbmx5IGZpZWxkCisgICAgICAgIG9Qb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCA9IGR1bW15Lm5CdWZmZXJDb3VudEFjdHVhbCA8PCAxOworICAgICAgICBvUG9ydERlZi5uQnVmZmVyQ291bnRNaW4gPSBkdW1teS5uQnVmZmVyQ291bnRNaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTsgICAgICAgICAgICAgICAgLy8gUmVhZCBPbmx5IGZpZWxkCisgICAgICAgIG9Qb3J0RGVmLm5CdWZmZXJTaXplID0gZHVtbXkubkJ1ZmZlclNpemUgPDwgMTsgIC8vIFJlYWQgT25seSBmaWVsZAorICAgICAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsICZvUG9ydERlZik7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsICZvUG9ydERlZik7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBFWFBFQ1RfRVEob1BvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsLCBkdW1teS5uQnVmZmVyQ291bnRBY3R1YWwgPDwgMSk7CisgICAgICAgIGlmICgob1BvcnREZWYuZURpciAhPSBPTVhfRGlyT3V0cHV0KSB8fAorICAgICAgICAgICAgKG9Qb3J0RGVmLm5CdWZmZXJDb3VudE1pbiAhPSBkdW1teS5uQnVmZmVyQ291bnRNaW4pIHx8CisgICAgICAgICAgICAob1BvcnREZWYubkJ1ZmZlclNpemUgIT0gZHVtbXkubkJ1ZmZlclNpemUpKSB7CisgICAgICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgQ29tcG9uZW50IG91dHB1dCBwb3J0IGRvZXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJub3QgcHJlc2VydmUgUmVhZC1Pbmx5IGZpZWxkcyBcbiI7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHBvcHVsYXRlIHBvcnQgdGVzdAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBQb3B1bGF0ZVBvcnQpIHsKKyAgICBkZXNjcmlwdGlvbigiVmVyaWZ5IGJQb3B1bGF0ZWQgZmllbGQgb2YgYSBjb21wb25lbnQgcG9ydCIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9VMzIgcG9ydEJhc2UgPSAwOworCisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBwb3J0QmFzZSA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgIH0KKworICAgIHNwPElBbGxvY2F0b3I+IGFsbG9jYXRvciA9IElBbGxvY2F0b3I6OmdldFNlcnZpY2UoImFzaG1lbSIpOworICAgIEVYUEVDVF9ORShhbGxvY2F0b3IuZ2V0KCksIG51bGxwdHIpOworCisgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgIHN0YXR1cyA9CisgICAgICAgIGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0QmFzZSwgJnBvcnREZWYpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShwb3J0RGVmLmJQb3B1bGF0ZWQsIE9NWF9GQUxTRSk7CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gcEJ1ZmZlcjsKKyAgICBwQnVmZmVyLmNsZWFyKCk7CisgICAgdWludDMyX3QgbkJ1ZmZlclNpemUgPSBwb3J0RGVmLm5CdWZmZXJTaXplID4+IDE7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsOyBpKyspIHsKKyAgICAgICAgQnVmZmVySW5mbyBidWZmZXI7CisgICAgICAgIGJ1ZmZlci5vd25lciA9IGNsaWVudDsKKyAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci50eXBlID0gQ29kZWNCdWZmZXI6OlR5cGU6OlNIQVJFRF9NRU07CisgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIuYXR0ci5wcmVzZXQucmFuZ2VPZmZzZXQgPSAwOworICAgICAgICBidWZmZXIub214QnVmZmVyLmF0dHIucHJlc2V0LnJhbmdlTGVuZ3RoID0gMDsKKyAgICAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgIGFsbG9jYXRvci0+YWxsb2NhdGUoCisgICAgICAgICAgICBuQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgIFsmc3VjY2VzcywgJmJ1ZmZlcl0oYm9vbCBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkgY29uc3QmIG1lbSkgeworICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBfczsKKyAgICAgICAgICAgICAgICBidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeSA9IG1lbTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfRVEoc3VjY2VzcywgdHJ1ZSk7CisgICAgICAgIEFTU0VSVF9FUShidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeS5zaXplKCksIG5CdWZmZXJTaXplKTsKKworICAgICAgICBvbXhOb2RlLT51c2VCdWZmZXIoCisgICAgICAgICAgICBwb3J0QmFzZSwgYnVmZmVyLm9teEJ1ZmZlciwKKyAgICAgICAgICAgIFsmc3RhdHVzLCAmYnVmZmVyXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGlkKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgYnVmZmVyLmlkID0gaWQ7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgcEJ1ZmZlci5wdXNoKGJ1ZmZlcik7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KKworICAgIHN0YXR1cyA9CisgICAgICAgIGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0QmFzZSwgJnBvcnREZWYpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIC8vIEEgcG9ydCBpcyBwb3B1bGF0ZWQgd2hlbiBhbGwgb2YgdGhlIGJ1ZmZlcnMgaW5kaWNhdGVkIGJ5CisgICAgLy8gbkJ1ZmZlckNvdW50QWN0dWFsIHdpdGggYSBzaXplIG9mIGF0IGxlYXN0IG5CdWZmZXJTaXplaGF2ZSBiZWVuCisgICAgLy8gYWxsb2NhdGVkIG9uIHRoZSBwb3J0LgorICAgIEFTU0VSVF9FUShwb3J0RGVmLmJQb3B1bGF0ZWQsIE9NWF9GQUxTRSk7Cit9CisKKy8vIEZsdXNoIHRlc3QKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgRmx1c2gpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBGbHVzaCIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKyAgICAvLyBkaXNwYXRjaCBidWZmZXJzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsICZvQnVmZmVyLCBpKTsKKyAgICB9CisgICAgLy8gZmx1c2ggcG9ydAorICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gZGlzcGF0Y2ggYnVmZmVycworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci5zaXplKCk7IGkrKykgeworICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsICZpQnVmZmVyLCBpLCAwLCAwLCAwKTsKKyAgICB9CisgICAgLy8gZmx1c2ggcG9ydHMKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBsb2FkZWQKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIHN0YXRlIHRyYW5zaXRpb25zIHRlc3QKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgU3RhdGVUcmFuc2l0aW9ucykgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFN0YXRlIFRyYW5zaXRpb25zIExvYWRlZDwtPklkbGU8LT5FeGVjdXRlIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIgfHwgY29tcENsYXNzID09IGF1ZGlvX2VuY29kZXIpIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworICAgIC8vIGRpc3BhdGNoIGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXIuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgJm9CdWZmZXIsIGkpOworICAgIH0KKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKyAgICAvLyBkaXNwYXRjaCBidWZmZXJzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpQnVmZmVyLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgJmlCdWZmZXIsIGksIDAsIDAsIDApOworICAgIH0KKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gbG9hZGVkCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBzdGF0ZSB0cmFuc2l0aW9ucyB0ZXN0IC0gbW9ua2V5aW5nCitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIFN0YXRlVHJhbnNpdGlvbnNfTSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFN0YXRlIFRyYW5zaXRpb25zIG1vbmtleWluZyIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gbG9hZGVkIDsgcmVjZWl2ZSBlcnJvciBPTVhfRXJyb3JTYW1lU3RhdGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUxvYWRlZCk7CisgICAgRVhQRUNUX05FKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZyA7IHJlY2VpdmUgZXJyb3IgT01YX0Vycm9ySW5jb3JyZWN0U3RhdGVUcmFuc2l0aW9uCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVFeGVjdXRpbmcpOworICAgIEVYUEVDVF9ORShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUgOyByZWNlaXZlIGVycm9yIE9NWF9FcnJvclNhbWVTdGF0ZQorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlSWRsZSk7CisgICAgRVhQRUNUX05FKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nIDsgcmVjZWl2ZSBlcnJvciBPTVhfRXJyb3JTYW1lU3RhdGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUV4ZWN1dGluZyk7CisgICAgRVhQRUNUX05FKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gc2V0IHN0YXRlIHRvIExvYWRlZCA7IHJlY2VpdmUgZXJyb3IgT01YX0Vycm9ySW5jb3JyZWN0U3RhdGVUcmFuc2l0aW9uCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVMb2FkZWQpOworICAgIEVYUEVDVF9ORShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBJZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworCisgICAgLy8gc2V0IHN0YXRlIHRvIExvYWRlZAorICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gcG9ydCBlbmFibGUgZGlzYWJsZSB0ZXN0CitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIFBvcnRFbmFibGVEaXNhYmxlX0xvYWRlZCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFBvcnQgRW5hYmxlIGFuZCBEaXNhYmxlIChDb21wb25lbnQgU3RhdGUgOjogTG9hZGVkKSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9VMzIgcG9ydEJhc2UgPSAwOworICAgIE1lc3NhZ2UgbXNnOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAgcG9ydEJhc2UgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gcG9ydEJhc2U7IGkgPCBwb3J0QmFzZSArIDI7IGkrKykgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnREaXNhYmxlKSwgaSk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50Q21kQ29tcGxldGUpIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydERpc2FibGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgaSk7CisgICAgICAgICAgICAvLyBJZiB5b3UgY2FuIGRpc2FibGUgYSBwb3J0LCB0aGVuIHlvdSBzaG91bGQgYmUgYWJsZSB0byBlbmFibGUgaXQKKyAgICAgICAgICAgIC8vIGFzIHdlbGwKKyAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgIHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RW5hYmxlKSwgaSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VUKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RW5hYmxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGkpOworICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRFcnJvcikgeworICAgICAgICAgICAgQUxPR0UoIlBvcnQgJWQgRGlzYWJsaW5nIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgKGludClpLAorICAgICAgICAgICAgICAgICAgKGludCltc2cuZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gcG9ydCBlbmFibGUgZGlzYWJsZSB0ZXN0CitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIFBvcnRFbmFibGVEaXNhYmxlX0lkbGUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBQb3J0IEVuYWJsZSBhbmQgRGlzYWJsZSAoQ29tcG9uZW50IFN0YXRlIDo6IElkbGUpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgT01YX1UzMiBwb3J0QmFzZSA9IDA7CisgICAgTWVzc2FnZSBtc2c7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBwb3J0QmFzZSA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgIH0KKyAgICBrUG9ydEluZGV4SW5wdXQgPSBwb3J0QmFzZTsKKyAgICBrUG9ydEluZGV4T3V0cHV0ID0gcG9ydEJhc2UgKyAxOworCisgICAgLy8gQ29tcG9uZW50IFN0YXRlIDo6IElkbGUKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gcEJ1ZmZlclsyXTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgZm9yIChzaXplX3QgaSA9IHBvcnRCYXNlOyBpIDwgcG9ydEJhc2UgKyAyOyBpKyspIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RGlzYWJsZSksIGkpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgJnBCdWZmZXJbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcEJ1ZmZlclsxXSk7CisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRDbWRDb21wbGV0ZSkgeworICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBkaXNhYmxlIHRoZSBwb3J0IHVudGlsIGFsbCB0aGUgYnVmZmVycyBhcmUgZnJlZWQKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRFcnJvcikgeworICAgICAgICAgICAgICAgIEFMT0dFKCJQb3J0ICVkIERpc2FibGluZyBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIChpbnQpaSwKKyAgICAgICAgICAgICAgICAgICAgICAoaW50KW1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIHNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbmVkCisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PQorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCkgeworICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBwQnVmZmVyW2kgLSBwb3J0QmFzZV0uc2l6ZSgpOyArK2opIHsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5mcmVlQnVmZmVyKGksIHBCdWZmZXJbaSAtIHBvcnRCYXNlXVtqXS5pZCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydERpc2FibGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgaSk7CisKKyAgICAgICAgICAgIC8vIElmIHlvdSBjYW4gZGlzYWJsZSBhIHBvcnQsIHRoZW4geW91IHNob3VsZCBiZSBhYmxlIHRvIGVuYWJsZSBpdAorICAgICAgICAgICAgLy8gYXMgd2VsbAorICAgICAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgdG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnRFbmFibGUpLCBpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgICAgICAgICAgLy8gZG8gbm90IGVuYWJsZSB0aGUgcG9ydCB1bnRpbCBhbGwgdGhlIGJ1ZmZlcnMgYXJlIHN1cHBsaWVkCisgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICAgICAgICAgIGFsbG9jYXRlUG9ydEJ1ZmZlcnMob214Tm9kZSwgJnBCdWZmZXJbaSAtIHBvcnRCYXNlXSwgaSk7CisgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydEVuYWJsZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIHNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbmVkCisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gTG9hZGVkCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBwb3J0IGVuYWJsZSBkaXNhYmxlIHRlc3QKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgUG9ydEVuYWJsZURpc2FibGVfRXhlY3V0ZSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFBvcnQgRW5hYmxlIGFuZCBEaXNhYmxlIChDb21wb25lbnQgU3RhdGUgOjogRXhlY3V0ZSkiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBPTVhfVTMyIHBvcnRCYXNlID0gMDsKKyAgICBNZXNzYWdlIG1zZzsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIgfHwgY29tcENsYXNzID09IGF1ZGlvX2VuY29kZXIpIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIHBvcnRCYXNlID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgfQorICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBvcnRCYXNlOworICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBwb3J0QmFzZSArIDE7CisKKyAgICAvLyBDb21wb25lbnQgU3RhdGUgOjogSWRsZQorICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBwQnVmZmVyWzJdOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJnBCdWZmZXJbMF0sICZwQnVmZmVyWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIGRpc3BhdGNoIGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBCdWZmZXJbMV0uc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgJnBCdWZmZXJbMV0sIGkpOworICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSBwb3J0QmFzZTsgaSA8IHBvcnRCYXNlICsgMjsgaSsrKSB7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydERpc2FibGUpLCBpKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsICZwQnVmZmVyWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBCdWZmZXJbMV0pOworICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50Q21kQ29tcGxldGUpIHsKKyAgICAgICAgICAgICAgICAvLyBkbyBub3QgZGlzYWJsZSB0aGUgcG9ydCB1bnRpbCBhbGwgdGhlIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50RXJyb3IpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiUG9ydCAlZCBEaXNhYmxpbmcgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCAoaW50KWksCisgICAgICAgICAgICAgICAgICAgICAgKGludCltc2cuZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZAorICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT0KKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgcEJ1ZmZlcltpIC0gcG9ydEJhc2VdLnNpemUoKTsgKytqKSB7CisgICAgICAgICAgICAgICAgLy8gdGVzdCBpZiBjbGllbnQgZ290IGFsbCBpdHMgYnVmZmVycyBiYWNrCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHBCdWZmZXJbaSAtIHBvcnRCYXNlXVtqXS5vd25lciwgY2xpZW50KTsKKyAgICAgICAgICAgICAgICAvLyBmcmVlIHRoZSBidWZmZXJzCisgICAgICAgICAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihpLCBwQnVmZmVyW2kgLSBwb3J0QmFzZV1bal0uaWQpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnREaXNhYmxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGkpOworCisgICAgICAgICAgICAvLyBJZiB5b3UgY2FuIGRpc2FibGUgYSBwb3J0LCB0aGVuIHlvdSBzaG91bGQgYmUgYWJsZSB0byBlbmFibGUgaXQKKyAgICAgICAgICAgIC8vIGFzIHdlbGwKKyAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgIHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RW5hYmxlKSwgaSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAgICAgICAgIC8vIGRvIG5vdCBlbmFibGUgdGhlIHBvcnQgdW50aWwgYWxsIHRoZSBidWZmZXJzIGFyZSBzdXBwbGllZAorICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworCisgICAgICAgICAgICBhbGxvY2F0ZVBvcnRCdWZmZXJzKG9teE5vZGUsICZwQnVmZmVyW2kgLSBwb3J0QmFzZV0sIGkpOworICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnRFbmFibGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgaSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZAorICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gc2V0IHN0YXRlIHRvIElkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gTG9hZGVkCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBwb3J0IGVuYWJsZSBkaXNhYmxlIHRlc3QgLSBtb25rZXlpbmcKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgUG9ydEVuYWJsZURpc2FibGVfTSkgeworICAgIGRlc2NyaXB0aW9uKAorICAgICAgICAiVGVzdCBQb3J0IEVuYWJsZSBhbmQgRGlzYWJsZSBNb25rZXlpbmcgKENvbXBvbmVudCBTdGF0ZSA6OiBMb2FkZWQpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1UzMiBwb3J0QmFzZSA9IDA7CisgICAgTWVzc2FnZSBtc2c7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBwb3J0QmFzZSA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgIH0KKworICAgIC8vIGRpc2FibGUgaW52YWxpZCBwb3J0LCBleHBlY3RpbmcgT01YX0Vycm9yQmFkUG9ydEluZGV4CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnREaXNhYmxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSQU5ET01fSU5ERVgpOworICAgIEFTU0VSVF9ORShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIGVuYWJsZSBpbnZhbGlkIHBvcnQsIGV4cGVjdGluZyBPTVhfRXJyb3JCYWRQb3J0SW5kZXgKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydEVuYWJsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkFORE9NX0lOREVYKTsKKyAgICBBU1NFUlRfTkUoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBkaXNhYmxlIGFsbCBwb3J0cworICAgIHN0YXR1cyA9CisgICAgICAgIG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RGlzYWJsZSksIE9NWF9BTEwpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VUKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRDbWRDb21wbGV0ZSkgeworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RGlzYWJsZSk7CisgICAgICAgICAgICBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyICE9IHBvcnRCYXNlIHx8CisgICAgICAgICAgICAgICAgbXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyICE9IHBvcnRCYXNlICsgMSkKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CisgICAgICAgIH0gZWxzZSBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudEVycm9yKSB7CisgICAgICAgICAgICBBTE9HRSgiUG9ydCAlZCBEaXNhYmxpbmcgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCAoaW50KWksCisgICAgICAgICAgICAgICAgICAoaW50KW1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZAorICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gZW5hYmxlIGFsbCBwb3J0cworICAgIHN0YXR1cyA9CisgICAgICAgIG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RW5hYmxlKSwgT01YX0FMTCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMjsgaSsrKSB7CisgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudENtZENvbXBsZXRlKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnRFbmFibGUpOworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiAhPSBwb3J0QmFzZSB8fAorICAgICAgICAgICAgICAgIG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiAhPSBwb3J0QmFzZSArIDEpCisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOworICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRFcnJvcikgeworICAgICAgICAgICAgQUxPR0UoIlBvcnQgJWQgRW5hYmxpbmcgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCAoaW50KWksCisgICAgICAgICAgICAgICAgICAoaW50KW1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZAorICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICB9CisgICAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICBnRW52ID0gbmV3IENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpOworICAgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KGdFbnYpOworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBnRW52LT5pbml0RnJvbU9wdGlvbnMoYXJnYywgYXJndik7CisgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICAgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9tYXN0ZXIvQW5kcm9pZC5icCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmVkYmY0YQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzOCBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldE1hc3RlclRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldE1hc3RlclRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldE1hc3RlclRlc3QuY3BwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9tYXN0ZXIvVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0TWFzdGVyVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWM2NmMyNQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldE1hc3RlclRlc3QuY3BwCkBAIC0wLDAgKzEsMTg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF9tYXN0ZXJfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teFN0b3JlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214U3RvcmU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvLyBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwCitjbGFzcyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorCisgICAgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KCkgOiBpbnN0YW5jZSgiZGVmYXVsdCIpIHt9CisKKyAgICB2b2lkIHNldEluc3RhbmNlKGNvbnN0IGNoYXIqIF9pbnN0YW5jZSkgeyBpbnN0YW5jZSA9IF9pbnN0YW5jZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0SW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpbnN0YW5jZTsgfQorCisgICAgaW50IGluaXRGcm9tT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICAgICAgc3RhdGljIHN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0geworICAgICAgICAgICAgeyJpbnN0YW5jZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnSSd9LCB7MCwgMCwgMCwgMH19OworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiSToiLCBvcHRpb25zLCAmaW5kZXgpOworICAgICAgICAgICAgaWYgKGMgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICAgICAgICAgIHNldEluc3RhbmNlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJz8nOgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcHRpbmQgPCBhcmdjKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgInVucmVjb2duaXplZCBvcHRpb246ICVzXG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInVzYWdlOiAlcyA8Z3Rlc3Qgb3B0aW9ucz4gPHRlc3Qgb3B0aW9ucz5cblxuIgorICAgICAgICAgICAgICAgICAgICAidGVzdCBvcHRpb25zIGFyZTpcblxuIgorICAgICAgICAgICAgICAgICAgICAiLUksIC0taW5zdGFuY2U6IEhBTCBpbnN0YW5jZSB0byB0ZXN0XG4iLAorICAgICAgICAgICAgICAgICAgICBhcmd2W29wdGluZCA/OiAxXSwgYXJndlswXSk7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgaGlkbF9zdHJpbmcgaW5zdGFuY2U7Cit9OworCitzdGF0aWMgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KiBnRW52ID0gbnVsbHB0cjsKKworY2xhc3MgTWFzdGVySGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgb214U3RvcmUgPSBudWxscHRyOworICAgICAgICBvbXhTdG9yZSA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElPbXhTdG9yZT4oKTsKKyAgICAgICAgQVNTRVJUX05FKG9teFN0b3JlLCBudWxscHRyKTsKKyAgICAgICAgb214ID0gbnVsbHB0cjsKKyAgICAgICAgb214ID0gb214U3RvcmUtPmdldE9teChnRW52LT5nZXRJbnN0YW5jZSgpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teCwgbnVsbHB0cik7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICAgIHNwPElPbXhTdG9yZT4gb214U3RvcmU7CisgICAgc3A8SU9teD4gb214OworCisgICBwcm90ZWN0ZWQ6CisgICAgc3RhdGljIHZvaWQgZGVzY3JpcHRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIFJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIGRlc2NyaXB0aW9uKTsKKyAgICB9Cit9OworCit2b2lkIGRpc3BsYXlDb21wb25lbnRJbmZvKGhpZGxfdmVjPElPbXg6OkNvbXBvbmVudEluZm8+JiBub2RlTGlzdCkgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbm9kZUxpc3Quc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgcHJpbnRmKCIlcyB8ICIsIG5vZGVMaXN0W2ldLm1OYW1lLmNfc3RyKCkpOworICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8ICgobm9kZUxpc3RbaV0pLm1Sb2xlcykuc2l6ZSgpOyBqKyspIHsKKyAgICAgICAgICAgIHByaW50ZigiJXMgIiwgbm9kZUxpc3RbaV0ubVJvbGVzW2pdLmNfc3RyKCkpOworICAgICAgICB9CisgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICB9Cit9CisKKy8vIGxpc3Qgc2VydmljZSBhdHRyaWJ1dGVzCitURVNUX0YoTWFzdGVySGlkbFRlc3QsIExpc3RTZXJ2aWNlQXR0cikgeworICAgIGRlc2NyaXB0aW9uKCJsaXN0IHNlcnZpY2UgYXR0cmlidXRlcyIpOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIGhpZGxfdmVjPElPbXhTdG9yZTo6QXR0cmlidXRlPiBhdHRyaWJ1dGVzOworICAgIEVYUEVDVF9UUlVFKG9teFN0b3JlCisgICAgICAgICAgICAgICAgICAgIC0+bGlzdFNlcnZpY2VBdHRyaWJ1dGVzKFsmc3RhdHVzLCAmYXR0cmlidXRlc10oCisgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgaGlkbF92ZWM8SU9teFN0b3JlOjpBdHRyaWJ1dGU+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgaWYgKGF0dHJpYnV0ZXMuc2l6ZSgpID09IDApCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBBdHRyaWJ1dGUgbGlzdCBlbXB0eSBcbiI7Cit9CisKKy8vIGdldCBub2RlIHByZWZpeAorVEVTVF9GKE1hc3RlckhpZGxUZXN0LCBnZXROb2RlUHJlZml4KSB7CisgICAgZGVzY3JpcHRpb24oImdldCBub2RlIHByZWZpeCIpOworICAgIGhpZGxfc3RyaW5nIHByZWZpeDsKKyAgICBvbXhTdG9yZS0+Z2V0Tm9kZVByZWZpeCgKKyAgICAgICAgWyZwcmVmaXhdKGhpZGxfc3RyaW5nIGNvbnN0JiBfbmwpIHsgcHJlZml4ID0gX25sOyB9KTsKKyAgICBpZiAocHJlZml4LmVtcHR5KCkpCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBOb2RlIFByZWZpeCBlbXB0eSBcbiI7Cit9CisKKy8vIGxpc3Qgcm9sZXMKK1RFU1RfRihNYXN0ZXJIaWRsVGVzdCwgTGlzdFJvbGVzKSB7CisgICAgZGVzY3JpcHRpb24oImxpc3Qgcm9sZXMiKTsKKyAgICBoaWRsX3ZlYzxJT214U3RvcmU6OlJvbGVJbmZvPiByb2xlTGlzdDsKKyAgICBvbXhTdG9yZS0+bGlzdFJvbGVzKFsmcm9sZUxpc3RdKGhpZGxfdmVjPElPbXhTdG9yZTo6Um9sZUluZm8+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgcm9sZUxpc3QgPSBfbmw7CisgICAgfSk7CisgICAgaWYgKHJvbGVMaXN0LnNpemUoKSA9PSAwKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgUm9sZUluZm8gbGlzdCBlbXB0eSBcbiI7Cit9CisKKy8vIGxpc3QgY29tcG9uZW50cyBhbmQgcm9sZXMKK1RFU1RfRihNYXN0ZXJIaWRsVGVzdCwgTGlzdE5vZGVzKSB7CisgICAgZGVzY3JpcHRpb24oImVudW1lcmF0ZSBjb21wb25lbnQgYW5kIHJvbGVzIik7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgaGlkbF92ZWM8SU9teDo6Q29tcG9uZW50SW5mbz4gbm9kZUxpc3Q7CisgICAgRVhQRUNUX1RSVUUoCisgICAgICAgIG9teC0+bGlzdE5vZGVzKFsmc3RhdHVzLCAmbm9kZUxpc3RdKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPElPbXg6OkNvbXBvbmVudEluZm8+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgbm9kZUxpc3QgPSBfbmw7CisgICAgICAgICAgIH0pCisgICAgICAgICAgICAuaXNPaygpKTsKKyAgICBpZiAobm9kZUxpc3Quc2l6ZSgpID09IDApCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBDb21wb25lbnRJbmZvIGxpc3QgZW1wdHkgXG4iOworICAgIGVsc2UKKyAgICAgICAgZGlzcGxheUNvbXBvbmVudEluZm8obm9kZUxpc3QpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICBnRW52ID0gbmV3IENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpOworICAgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KGdFbnYpOworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBnRW52LT5pbml0RnJvbU9wdGlvbnMoYXJnYywgYXJndik7CisgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICAgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9BbmRyb2lkLmJwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4YzhkOTkKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3NyBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldFZpZGVvRGVjVGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9EZWNUZXN0LmNwcCIsCisgICAgICAgICAgICJtZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbG1lbW9yeSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJzdGFnZWZyaWdodF9mb3VuZGF0aW9uIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5hbGxvY2F0b3JAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKKyAgICBpbmNsdWRlX2RpcnM6IFsKKyAgICAgICAgImZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvb3Blbm1heC8iLAorICAgICAgICAiaGFyZHdhcmUvaW50ZXJmYWNlcy9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbiIsCisgICAgXSwKK30KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldFZpZGVvRW5jVGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9FbmNUZXN0LmNwcCIsCisgICAgICAgICAgICJtZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbG1lbW9yeSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJzdGFnZWZyaWdodF9mb3VuZGF0aW9uIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5hbGxvY2F0b3JAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKKyAgICBpbmNsdWRlX2RpcnM6IFsKKyAgICAgICAgImZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvb3Blbm1heC8iLAorICAgICAgICAiaGFyZHdhcmUvaW50ZXJmYWNlcy9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbiIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9EZWNUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9EZWNUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWMyYjBjCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRWaWRlb0RlY1Rlc3QuY3BwCkBAIC0wLDAgKzEsMTAyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibWVkaWFfb214X2hpZGxfdmlkZW9fZGVjX3Rlc3QiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9hbGxvY2F0b3IvMS4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE9ic2VydmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE5vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpNZXNzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6Q29kZWNCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNYXBwZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxtZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8bWVkaWFfdmlkZW9faGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPGZzdHJlYW0+CisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAKK2NsYXNzIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9CisKKyAgICBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKSA6IGluc3RhbmNlKCJkZWZhdWx0IiksIHJlcygiL3NkY2FyZC9tZWRpYS8iKSB7fQorCisgICAgdm9pZCBzZXRJbnN0YW5jZShjb25zdCBjaGFyKiBfaW5zdGFuY2UpIHsgaW5zdGFuY2UgPSBfaW5zdGFuY2U7IH0KKworICAgIHZvaWQgc2V0Q29tcG9uZW50KGNvbnN0IGNoYXIqIF9jb21wb25lbnQpIHsgY29tcG9uZW50ID0gX2NvbXBvbmVudDsgfQorCisgICAgdm9pZCBzZXRSb2xlKGNvbnN0IGNoYXIqIF9yb2xlKSB7IHJvbGUgPSBfcm9sZTsgfQorCisgICAgdm9pZCBzZXRSZXMoY29uc3QgY2hhciogX3JlcykgeyByZXMgPSBfcmVzOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIGluc3RhbmNlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRDb21wb25lbnQoKSBjb25zdCB7IHJldHVybiBjb21wb25lbnQ7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldFJvbGUoKSBjb25zdCB7IHJldHVybiByb2xlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSZXMoKSBjb25zdCB7IHJldHVybiByZXM7IH0KKworICAgIGludCBpbml0RnJvbU9wdGlvbnMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgICAgIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKKyAgICAgICAgICAgIHsiaW5zdGFuY2UiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0knfSwKKyAgICAgICAgICAgIHsiY29tcG9uZW50IiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdDJ30sCisgICAgICAgICAgICB7InJvbGUiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ1InfSwKKyAgICAgICAgICAgIHsicmVzIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdQJ30sCisgICAgICAgICAgICB7MCwgMCwgMCwgMH19OworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiSTpDOlI6UDoiLCBvcHRpb25zLCAmaW5kZXgpOworICAgICAgICAgICAgaWYgKGMgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICAgICAgICAgIHNldEluc3RhbmNlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0MnOgorICAgICAgICAgICAgICAgICAgICBzZXRDb21wb25lbnQob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUic6CisgICAgICAgICAgICAgICAgICAgIHNldFJvbGUob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUCc6CisgICAgICAgICAgICAgICAgICAgIHNldFJlcyhvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW5kIDwgYXJnYykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlc1xuXG4iCisgICAgICAgICAgICAgICAgICAgICJ1c2FnZTogJXMgPGd0ZXN0IG9wdGlvbnM+IDx0ZXN0IG9wdGlvbnM+XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInRlc3Qgb3B0aW9ucyBhcmU6XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgIi1JLCAtLWluc3RhbmNlOiBIQUwgaW5zdGFuY2UgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLUMsIC0tY29tcG9uZW50OiBPTVggY29tcG9uZW50IHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1SLCAtLXJvbGU6IE9NWCBjb21wb25lbnQgUm9sZVxuIgorICAgICAgICAgICAgICAgICAgICAiLVAsIC0tcmVzOiBSZXNvdXJjZSBmaWxlcyBkaXJlY3RvcnkgbG9jYXRpb25cbiIsCisgICAgICAgICAgICAgICAgICAgIGFyZ3Zbb3B0aW5kID86IDFdLCBhcmd2WzBdKTsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICBoaWRsX3N0cmluZyBpbnN0YW5jZTsKKyAgICBoaWRsX3N0cmluZyBjb21wb25lbnQ7CisgICAgaGlkbF9zdHJpbmcgcm9sZTsKKyAgICBoaWRsX3N0cmluZyByZXM7Cit9OworCitzdGF0aWMgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KiBnRW52ID0gbnVsbHB0cjsKKworLy8gdmlkZW8gZGVjb2RlciB0ZXN0IGZpeHR1cmUgY2xhc3MKK2NsYXNzIFZpZGVvRGVjSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgZGlzYWJsZVRlc3QgPSBmYWxzZTsKKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgICAgIG9teCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElPbXg+KAorICAgICAgICAgICAgZ0Vudi0+Z2V0SW5zdGFuY2UoKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXgsIG51bGxwdHIpOworICAgICAgICBvYnNlcnZlciA9CisgICAgICAgICAgICBuZXcgQ29kZWNPYnNlcnZlcihbdGhpc10oTWVzc2FnZSBtc2cpIHsgaGFuZGxlTWVzc2FnZShtc2cpOyB9KTsKKyAgICAgICAgQVNTRVJUX05FKG9ic2VydmVyLCBudWxscHRyKTsKKyAgICAgICAgaWYgKHN0cm5jbXAoZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSwgIk9NWC4iLCA0KSAhPSAwKQorICAgICAgICAgICAgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBFWFBFQ1RfVFJVRShvbXgtPmFsbG9jYXRlTm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdFbnYtPmdldENvbXBvbmVudCgpLCBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElPbXhOb2RlPiBjb25zdCYgX25sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+b214Tm9kZSA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teE5vZGUsIG51bGxwdHIpOworICAgICAgICBBU1NFUlRfTkUoZ0Vudi0+Z2V0Um9sZSgpLmVtcHR5KCksIHRydWUpIDw8ICJJbnZhbGlkIENvbXBvbmVudCBSb2xlIjsKKyAgICAgICAgc3RydWN0IFN0cmluZ1RvTmFtZSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBOYW1lOworICAgICAgICAgICAgc3RhbmRhcmRDb21wIENvbXBOYW1lOworICAgICAgICB9OworICAgICAgICBjb25zdCBTdHJpbmdUb05hbWUga1N0cmluZ1RvTmFtZVtdID0geworICAgICAgICAgICAgeyJoMjYzIiwgaDI2M30sIHsiYXZjIiwgYXZjfSwgeyJtcGVnMiIsIG1wZWcyfSwgeyJtcGVnNCIsIG1wZWc0fSwKKyAgICAgICAgICAgIHsiaGV2YyIsIGhldmN9LCB7InZwOCIsIHZwOH0sIHsidnA5IiwgdnA5fSwKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGtOdW1TdHJpbmdUb05hbWUgPQorICAgICAgICAgICAgc2l6ZW9mKGtTdHJpbmdUb05hbWUpIC8gc2l6ZW9mKGtTdHJpbmdUb05hbWVbMF0pOworICAgICAgICBjb25zdCBjaGFyKiBwY2g7CisgICAgICAgIGNoYXIgc3Vic3RyaW5nW09NWF9NQVhfU1RSSU5HTkFNRV9TSVpFXTsKKyAgICAgICAgc3RyY3B5KHN1YnN0cmluZywgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgICAgICBwY2ggPSBzdHJjaHIoc3Vic3RyaW5nLCAnLicpOworICAgICAgICBBU1NFUlRfTkUocGNoLCBudWxscHRyKTsKKyAgICAgICAgY29tcE5hbWUgPSB1bmtub3duX2NvbXA7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga051bVN0cmluZ1RvTmFtZTsgKytpKSB7CisgICAgICAgICAgICBpZiAoIXN0cmNhc2VjbXAocGNoICsgMSwga1N0cmluZ1RvTmFtZVtpXS5OYW1lKSkgeworICAgICAgICAgICAgICAgIGNvbXBOYW1lID0ga1N0cmluZ1RvTmFtZVtpXS5Db21wTmFtZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcE5hbWUgPT0gdW5rbm93bl9jb21wKSBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIHN0cnVjdCBDb21wVG9Db21wcmVzc2lvbiB7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgICAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBDb21wVG9Db21wcmVzc2lvbiBrQ29tcFRvQ29tcHJlc3Npb25bXSA9IHsKKyAgICAgICAgICAgIHtoMjYzLCBPTVhfVklERU9fQ29kaW5nSDI2M30sICAge2F2YywgT01YX1ZJREVPX0NvZGluZ0FWQ30sCisgICAgICAgICAgICB7bXBlZzIsIE9NWF9WSURFT19Db2RpbmdNUEVHMn0sIHttcGVnNCwgT01YX1ZJREVPX0NvZGluZ01QRUc0fSwKKyAgICAgICAgICAgIHtoZXZjLCBPTVhfVklERU9fQ29kaW5nSEVWQ30sICAge3ZwOCwgT01YX1ZJREVPX0NvZGluZ1ZQOH0sCisgICAgICAgICAgICB7dnA5LCBPTVhfVklERU9fQ29kaW5nVlA5fSwKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTnVtQ29tcFRvQ29tcHJlc3Npb24gPQorICAgICAgICAgICAgc2l6ZW9mKGtDb21wVG9Db21wcmVzc2lvbikgLyBzaXplb2Yoa0NvbXBUb0NvbXByZXNzaW9uWzBdKTsKKyAgICAgICAgc2l6ZV90IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBrTnVtQ29tcFRvQ29tcHJlc3Npb247ICsraSkgeworICAgICAgICAgICAgaWYgKGtDb21wVG9Db21wcmVzc2lvbltpXS5Db21wTmFtZSA9PSBjb21wTmFtZSkgeworICAgICAgICAgICAgICAgIGVDb21wcmVzc2lvbkZvcm1hdCA9IGtDb21wVG9Db21wcmVzc2lvbltpXS5lQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0ga051bUNvbXBUb0NvbXByZXNzaW9uKSBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIGVvc0ZsYWcgPSBmYWxzZTsKKyAgICAgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgICAgICB0aW1lc3RhbXBVcyA9IDA7CisgICAgICAgIHRpbWVzdGFtcERldlRlc3QgPSBmYWxzZTsKKyAgICAgICAgaWYgKGRpc2FibGVUZXN0KSBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgIFRlc3QgRGlzYWJsZWRcbiI7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAob214Tm9kZSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSgob214Tm9kZS0+ZnJlZU5vZGUoKSkuaXNPaygpKTsKKyAgICAgICAgICAgIG9teE5vZGUgPSBudWxscHRyOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gY2FsbGJhY2sgZnVuY3Rpb24gdG8gcHJvY2VzcyBtZXNzYWdlcyByZWNlaXZlZCBieSBvbk1lc3NhZ2VzKCkgZnJvbSBJTAorICAgIC8vIGNsaWVudC4KKyAgICB2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZSBtc2cpIHsKKyAgICAgICAgaWYgKG1zZy50eXBlID09IE1lc3NhZ2U6OlR5cGU6OkZJTExfQlVGRkVSX0RPTkUpIHsKKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEuZmxhZ3MgJiBPTVhfQlVGRkVSRkxBR19FT1MpIHsKKyAgICAgICAgICAgICAgICBlb3NGbGFnID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEucmFuZ2VMZW5ndGggIT0gMCkgeworICAgICAgICAgICAgICAgIGZyYW1lc1JlY2VpdmVkICs9IDE7CisgICAgICAgICAgICAgICAgLy8gRm9yIGRlY29kZXIgY29tcG9uZW50cyBjdXJyZW50IHRpbWVzdGFtcCBhbHdheXMgZXhjZWVkcworICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzIHRpbWVzdGFtcAorICAgICAgICAgICAgICAgIEVYUEVDVF9HRShtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEudGltZXN0YW1wVXMsIHRpbWVzdGFtcFVzKTsKKyAgICAgICAgICAgICAgICB0aW1lc3RhbXBVcyA9IG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS50aW1lc3RhbXBVczsKKyAgICAgICAgICAgICAgICAvLyBUZXN0IGlmIGN1cnJlbnQgdGltZXN0YW1wIGlzIGFtb25nIHRoZSBsaXN0IG9mIHF1ZXVlZAorICAgICAgICAgICAgICAgIC8vIHRpbWVzdGFtcHMKKyAgICAgICAgICAgICAgICBpZiAodGltZXN0YW1wRGV2VGVzdCkgeworICAgICAgICAgICAgICAgICAgICBib29sIHRzSGl0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6Okxpc3Q8dWludDY0X3Q+OjppdGVyYXRvciBpdCA9CisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBVc2xpc3QuYmVnaW4oKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGl0ICE9IHRpbWVzdGFtcFVzbGlzdC5lbmQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCppdCA9PSB0aW1lc3RhbXBVcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcFVzbGlzdC5lcmFzZShpdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHNIaXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaXQrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAodHNIaXQgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aW1lc3RhbXBVc2xpc3QuZW1wdHkoKSA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUSh0c0hpdCwgdHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlRpbWVTdGFtcCBub3QgcmVjb2duaXplZCI7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2VycgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBSZWNlaXZlZCBub24temVybyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdXRwdXQgLyBUaW1lU3RhbXAgbm90IHJlY29nbml6ZWQgXG4iOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB0ZXN0RU9TKGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLCBib29sIHNpZ25hbEVPUyA9IGZhbHNlKTsKKworICAgIGVudW0gc3RhbmRhcmRDb21wIHsKKyAgICAgICAgaDI2MywKKyAgICAgICAgYXZjLAorICAgICAgICBtcGVnMiwKKyAgICAgICAgbXBlZzQsCisgICAgICAgIGhldmMsCisgICAgICAgIHZwOCwKKyAgICAgICAgdnA5LAorICAgICAgICB1bmtub3duX2NvbXAsCisgICAgfTsKKworICAgIHNwPElPbXg+IG9teDsKKyAgICBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcjsKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZTsKKyAgICBzdGFuZGFyZENvbXAgY29tcE5hbWU7CisgICAgT01YX1ZJREVPX0NPRElOR1RZUEUgZUNvbXByZXNzaW9uRm9ybWF0OworICAgIGJvb2wgZGlzYWJsZVRlc3Q7CisgICAgYm9vbCBlb3NGbGFnOworICAgIHVpbnQzMl90IGZyYW1lc1JlY2VpdmVkOworICAgIHVpbnQ2NF90IHRpbWVzdGFtcFVzOworICAgIDo6YW5kcm9pZDo6TGlzdDx1aW50NjRfdD4gdGltZXN0YW1wVXNsaXN0OworICAgIGJvb2wgdGltZXN0YW1wRGV2VGVzdDsKKworICAgcHJvdGVjdGVkOgorICAgIHN0YXRpYyB2b2lkIGRlc2NyaXB0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXNjcmlwdGlvbikgeworICAgICAgICBSZWNvcmRQcm9wZXJ0eSgiZGVzY3JpcHRpb24iLCBkZXNjcmlwdGlvbik7CisgICAgfQorfTsKKworLy8gZW5kIG9mIHN0cmVhbSB0ZXN0IGZvciB2aWRlbyBkZWNvZGVyIGNvbXBvbmVudHMKK3ZvaWQgVmlkZW9EZWNIaWRsVGVzdDo6dGVzdEVPUyhhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2lnbmFsRU9TKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgc2l6ZV90IGkgPSAwOworICAgIGlmIChzaWduYWxFT1MpIHsKKyAgICAgICAgaWYgKChpID0gZ2V0RW1wdHlCdWZmZXJJRChpQnVmZmVyKSkgPCBpQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIC8vIHNpZ25hbCBhbiBlbXB0eSBidWZmZXIgd2l0aCBmbGFnIHNldCB0byBFT1MKKyAgICAgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaSwgMCwgT01YX0JVRkZFUkZMQUdfRU9TLCAwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBEaXNwYXRjaCBhbGwgY2xpZW50IG93bmVkIG91dHB1dCBidWZmZXJzIHRvIHJlY292ZXIgcmVtYWluaW5nIGZyYW1lcworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICgoaSA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHdoaWxlICgxKSB7CisgICAgICAgIE1lc3NhZ2UgbXNnOworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworICAgICAgICBmb3IgKDsgaSA8IGlCdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKCppQnVmZmVyKVtpXS5vd25lciAhPSBjbGllbnQpIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChpID09IGlCdWZmZXItPnNpemUoKSkgYnJlYWs7CisgICAgfQorICAgIC8vIHRlc3QgZm9yIGZsYWcKKyAgICBFWFBFQ1RfRVEoZW9zRmxhZywgdHJ1ZSk7CisgICAgZW9zRmxhZyA9IGZhbHNlOworfQorCisvLyBTZXQgRGVmYXVsdCBwb3J0IHBhcmFtLgordm9pZCBzZXREZWZhdWx0UG9ydFBhcmFtKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgbkZyYW1lV2lkdGggPSAzNTIsIE9NWF9VMzIgbkZyYW1lSGVpZ2h0ID0gMjg4LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgbkJpdHJhdGUgPSAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgeEZyYW1lcmF0ZSA9ICgyNFUgPDwgMTYpKSB7CisgICAgc3dpdGNoICgoaW50KWVDb21wcmVzc2lvbkZvcm1hdCkgeworICAgICAgICBjYXNlIE9NWF9WSURFT19Db2RpbmdVbnVzZWQ6CisgICAgICAgICAgICBzZXR1cFJBV1BvcnQob214Tm9kZSwgcG9ydEluZGV4LCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgIG5CaXRyYXRlLCB4RnJhbWVyYXRlLCBlQ29sb3JGb3JtYXQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8vIEluIGRlY29kZXIgY29tcG9uZW50cywgb2Z0ZW4gdGhlIGlucHV0IHBvcnQgcGFyYW1ldGVycyBnZXQgdXBkYXRlZCB1cG9uCisvLyBwYXJzaW5nIHRoZSBoZWFkZXIgb2YgZWxlbWVudGFyeSBzdHJlYW0uIENsaWVudCBuZWVkcyB0byBjb2xsZWN0IHRoaXMKKy8vIGluZm9ybWF0aW9uIHRvIHJlY29uZmlndXJlIG90aGVyIHBvcnRzIHRoYXQgc2hhcmUgZGF0YSB3aXRoIHRoaXMgaW5wdXQKKy8vIHBvcnQuCit2b2lkIGdldElucHV0Q2hhbm5lbEluZm8oc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBuRnJhbWVXaWR0aCwgdWludDMyX3QqIG5GcmFtZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgICpuRnJhbWVXaWR0aCA9IDM1MjsKKyAgICAqbkZyYW1lSGVpZ2h0ID0gMjg4OworICAgICp4RnJhbWVyYXRlID0gKDI0VSA8PCAxNik7CisKKyAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBvcnREZWYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICAqbkZyYW1lV2lkdGggPSBwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVXaWR0aDsKKyAgICAgICAgKm5GcmFtZUhlaWdodCA9IHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZUhlaWdodDsKKyAgICAgICAgKnhGcmFtZXJhdGUgPSBwb3J0RGVmLmZvcm1hdC52aWRlby54RnJhbWVyYXRlOworICAgIH0KK30KKworLy8gTG9va1VwVGFibGUgb2YgY2xpcHMgYW5kIG1ldGFkYXRhIGZvciBjb21wb25lbnQgdGVzdGluZwordm9pZCBHZXRVUkxGb3JDb21wb25lbnQoVmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wIGNvbXAsIGNoYXIqIG1VUkwsCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyKiBpbmZvKSB7CisgICAgc3RydWN0IENvbXBUb1VSTCB7CisgICAgICAgIFZpZGVvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcCBjb21wOworICAgICAgICBjb25zdCBjaGFyKiBtVVJMOworICAgICAgICBjb25zdCBjaGFyKiBpbmZvOworICAgIH07CisgICAgc3RhdGljIGNvbnN0IENvbXBUb1VSTCBrQ29tcFRvVVJMW10gPSB7CisgICAgICAgIHtWaWRlb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmF2YywKKyAgICAgICAgICJiYmJfYXZjXzE5MjB4MTA4MF81MDAwa2Jwc18zMGZwcy5oMjY0IiwKKyAgICAgICAgICJiYmJfYXZjXzE5MjB4MTA4MF81MDAwa2Jwc18zMGZwcy5pbmZvIn0sCisgICAgICAgIHtWaWRlb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmhldmMsCisgICAgICAgICAiYmJiX2hldmNfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5oZXZjIiwKKyAgICAgICAgICJiYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8ifSwKKyAgICAgICAge1ZpZGVvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6bXBlZzIsCisgICAgICAgICAiYmJiX21wZWcyXzE3NngxNDRfMTA1a2Jwc18yNWZwcy5tMnYiLAorICAgICAgICAgImJiYl9tcGVnMl8xNzZ4MTQ0XzEwNWticHNfMjVmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjpoMjYzLAorICAgICAgICAgImJiYl9oMjYzXzM1MngyODhfMzAwa2Jwc18xMmZwcy5oMjYzIiwKKyAgICAgICAgICJiYmJfaDI2M18zNTJ4Mjg4XzMwMGticHNfMTJmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjptcGVnNCwKKyAgICAgICAgICJiYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMubTR2IiwKKyAgICAgICAgICJiYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjp2cDgsICJiYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMudnA4IiwKKyAgICAgICAgICJiYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjp2cDksCisgICAgICAgICAiYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLnZwOSIsCisgICAgICAgICAiYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8ifSwKKyAgICB9OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2Yoa0NvbXBUb1VSTCkgLyBzaXplb2Yoa0NvbXBUb1VSTFswXSk7ICsraSkgeworICAgICAgICBpZiAoa0NvbXBUb1VSTFtpXS5jb21wID09IGNvbXApIHsKKyAgICAgICAgICAgIHN0cmNhdChtVVJMLCBrQ29tcFRvVVJMW2ldLm1VUkwpOworICAgICAgICAgICAgc3RyY2F0KGluZm8sIGtDb21wVG9VUkxbaV0uaW5mbyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHBvcnQgc2V0dGluZ3MgcmVjb25maWd1cmF0aW9uIGR1cmluZyBydW50aW1lLiByZWNvbmZpZ3VyZXMgZnJhbWUgZGltZW5zaW9ucwordm9pZCBwb3J0UmVjb25maWd1cmF0aW9uKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LCBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSBtc2cpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50UG9ydFNldHRpbmdzQ2hhbmdlZCkgeworICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiA9PSAwKSB7CisgICAgICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICB0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydERpc2FibGUpLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvQnVmZmVyKTsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgPT0KKyAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpIHsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgaWYgY2xpZW50IGdvdCBhbGwgaXRzIGJ1ZmZlcnMgYmFjaworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoKCpvQnVmZmVyKVtpXS5vd25lciwgY2xpZW50KTsKKyAgICAgICAgICAgICAgICAgICAgLy8gZnJlZSB0aGUgYnVmZmVycworICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgICAgICAgICAgICAgb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4T3V0cHV0LCAoKm9CdWZmZXIpW2ldLmlkKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnREaXNhYmxlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgICAgICAgICAgICAgIC8vIHNldCBQb3J0IFBhcmFtcworICAgICAgICAgICAgICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIHhGcmFtZXJhdGU7CisgICAgICAgICAgICAgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0KKyAgICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICAgICAgICAgICAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgJm5GcmFtZVdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5GcmFtZUhlaWdodCwgJnhGcmFtZXJhdGUpOworICAgICAgICAgICAgICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsIGVDb2xvckZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIDAsIHhGcmFtZXJhdGUpOworCisgICAgICAgICAgICAgICAgLy8gSWYgeW91IGNhbiBkaXNhYmxlIGEgcG9ydCwgdGhlbiB5b3Ugc2hvdWxkIGJlIGFibGUgdG8KKyAgICAgICAgICAgICAgICAvLyBlbmFibGUKKyAgICAgICAgICAgICAgICAvLyBpdCBhcyB3ZWxsCisgICAgICAgICAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgIHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RW5hYmxlKSwga1BvcnRJbmRleE91dHB1dCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgICAgICAgICAgICAgLy8gZG8gbm90IGVuYWJsZSB0aGUgcG9ydCB1bnRpbCBhbGwgdGhlIGJ1ZmZlcnMgYXJlIHN1cHBsaWVkCisgICAgICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKAorICAgICAgICAgICAgICAgICAgICBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICAgICAgICAgICAgICBhbGxvY2F0ZVBvcnRCdWZmZXJzKG9teE5vZGUsIG9CdWZmZXIsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgICAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlCdWZmZXIsIG9CdWZmZXIpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnRFbmFibGUpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgICAgICAgICAgICAgLy8gZGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcnMKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiA9PQorICAgICAgICAgICAgICAgICAgIE9NWF9JbmRleENvbmZpZ0NvbW1vbk91dHB1dENyb3ApIHsKKyAgICAgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBPTVhfRXZlbnRQb3J0U2V0dGluZ3NDaGFuZ2VkLyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgIk9NWF9JbmRleENvbmZpZ0NvbW1vbk91dHB1dENyb3Agbm90IGhhbmRsZWQgXG4iOworICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiA9PSBPTVhfSW5kZXhWZW5kb3JTdGFydFVudXNlZCArIDMpIHsKKyAgICAgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBPTVhfRXZlbnRQb3J0U2V0dGluZ3NDaGFuZ2VkLyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgImtEZXNjcmliZUNvbG9yQXNwZWN0c0luZGV4IG5vdCBoYW5kbGVkIFxuIjsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudEVycm9yKSB7CisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBPTVhfRXZlbnRFcnJvci8gIgorICAgICAgICAgICAgICAgICAgICAgIkRlY29kZSBGcmFtZSBDYWxsIG1pZ2h0IGJlIGZhaWxlZCBcbiI7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZAorICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgfQorfQorCisvLyBibG9ja2luZyBjYWxsIHRvIGVuc3VyZXMgYXBwbGljYXRpb24gdG8gV2FpdCB0aWxsIGFsbCB0aGUgaW5wdXRzIGFyZSBjb25zdW1lZAordm9pZCB3YWl0T25JbnB1dENvbnN1bXB0aW9uKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LCBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHNpemVfdCBpID0gMDsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIHBvcnRSZWNvbmZpZ3VyYXRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsIGlCdWZmZXIsIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgbXNnKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdGF0dXMgPT0gVElNRURfT1VULCBpdCBjb3VsZCBiZSBkdWUgdG8gcHJvY2VzcyB0aW1lIGJlaW5nIGxhcmdlCisgICAgICAgIC8vIHRoYW4gREVGQVVMVF9USU1FT1VUIG9yIGNvbXBvbmVudCBuZWVkcyBvdXRwdXQgYnVmZmVycyB0byBzdGFydAorICAgICAgICAvLyBwcm9jZXNzaW5nLgorICAgICAgICBmb3IgKDsgaSA8IGlCdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKCppQnVmZmVyKVtpXS5vd25lciAhPSBjbGllbnQpIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChpID09IGlCdWZmZXItPnNpemUoKSkgYnJlYWs7CisKKyAgICAgICAgLy8gRGlzcGF0Y2ggYW4gb3V0cHV0IGJ1ZmZlciBhc3N1bWluZyBvdXRRdWV1ZS5lbXB0eSgpIGlzIHRydWUKKyAgICAgICAgc2l6ZV90IGluZGV4OworICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChvQnVmZmVyKSkgPCBvQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGluZGV4KTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gRGVjb2RlIE4gRnJhbWVzCit2b2lkIGRlY29kZU5GcmFtZXMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICBzdGQ6Omlmc3RyZWFtJiBlbGVTdHJlYW0sIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+KiBJbmZvLAorICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQsIGludCByYW5nZSwgYm9vbCBzaWduYWxFT1MgPSB0cnVlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBkaXNwYXRjaCBvdXRwdXQgYnVmZmVycworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaSk7CisgICAgfQorICAgIC8vIGRpc3BhdGNoIGlucHV0IGJ1ZmZlcnMKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgaW50IGZyYW1lSUQgPSBvZmZzZXQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IChpIDwgaUJ1ZmZlci0+c2l6ZSgpKSAmJiAoZnJhbWVJRCA8IChpbnQpSW5mby0+c2l6ZSgpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAoZnJhbWVJRCA8IChvZmZzZXQgKyByYW5nZSkpOworICAgICAgICAgaSsrKSB7CisgICAgICAgIGNoYXIqIGlwQnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KCgqaUJ1ZmZlcilbaV0ubU1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgIEFTU0VSVF9MRSgoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KCgqaUJ1ZmZlcilbaV0ubU1lbW9yeS0+Z2V0U2l6ZSgpKSk7CisgICAgICAgIGVsZVN0cmVhbS5yZWFkKGlwQnVmZmVyLCAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQpOworICAgICAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmdjb3VudCgpLCAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQpOworICAgICAgICBmbGFncyA9ICgqSW5mbylbZnJhbWVJRF0uZmxhZ3M7CisgICAgICAgIGlmIChzaWduYWxFT1MgJiYgKChmcmFtZUlEID09IChpbnQpSW5mby0+c2l6ZSgpIC0gMSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGZyYW1lSUQgPT0gKG9mZnNldCArIHJhbmdlIC0gMSkpKSkKKyAgICAgICAgICAgIGZsYWdzIHw9IE9NWF9CVUZGRVJGTEFHX0VPUzsKKyAgICAgICAgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihvbXhOb2RlLCBpQnVmZmVyLCBpLCAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsICgqSW5mbylbZnJhbWVJRF0udGltZXN0YW1wKTsKKyAgICAgICAgZnJhbWVJRCsrOworICAgIH0KKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKworICAgICAgICAvLyBQb3J0IFJlY29uZmlndXJhdGlvbgorICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LICYmCisgICAgICAgICAgICBtc2cudHlwZSA9PSBNZXNzYWdlOjpUeXBlOjpFVkVOVCkgeworICAgICAgICAgICAgcG9ydFJlY29uZmlndXJhdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgaUJ1ZmZlciwgb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBtc2cpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZyYW1lSUQgPT0gKGludClJbmZvLT5zaXplKCkgfHwgZnJhbWVJRCA9PSAob2Zmc2V0ICsgcmFuZ2UpKSBicmVhazsKKworICAgICAgICAvLyBEaXNwYXRjaCBpbnB1dCBidWZmZXIKKyAgICAgICAgc2l6ZV90IGluZGV4ID0gMDsKKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQoaUJ1ZmZlcikpIDwgaUJ1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBjaGFyKiBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPigKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oKCppQnVmZmVyKVtpbmRleF0ubU1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgICAgICBBU1NFUlRfTEUoKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpbmRleF0ubU1lbW9yeS0+Z2V0U2l6ZSgpKSk7CisgICAgICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50KTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uZ2NvdW50KCksICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgICAgICBmbGFncyA9ICgqSW5mbylbZnJhbWVJRF0uZmxhZ3M7CisgICAgICAgICAgICBpZiAoc2lnbmFsRU9TICYmICgoZnJhbWVJRCA9PSAoaW50KUluZm8tPnNpemUoKSAtIDEpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnJhbWVJRCA9PSAob2Zmc2V0ICsgcmFuZ2UgLSAxKSkpKQorICAgICAgICAgICAgICAgIGZsYWdzIHw9IE9NWF9CVUZGRVJGTEFHX0VPUzsKKyAgICAgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqSW5mbylbZnJhbWVJRF0udGltZXN0YW1wKTsKKyAgICAgICAgICAgIGZyYW1lSUQrKzsKKyAgICAgICAgfQorICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChvQnVmZmVyKSkgPCBvQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGluZGV4KTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gc2V0IGNvbXBvbmVudCByb2xlCitURVNUX0YoVmlkZW9EZWNIaWRsVGVzdCwgU2V0Um9sZSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFNldCBDb21wb25lbnQgUm9sZSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyBwb3J0IGZvcm1hdCBlbnVtZXJhdGlvbgorVEVTVF9GKFZpZGVvRGVjSGlkbFRlc3QsIEVudW1lcmF0ZVBvcnRGb3JtYXQpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBGb3JtYXQpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBPTVhfVTMyIHhGcmFtZXJhdGUgPSAoMjRVIDw8IDE2KTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUNvbXByZXNzaW9uRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQ09MT1JfRm9ybWF0VW51c2VkLCAwVSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0KKyAgICAgICAgc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIHhGcmFtZXJhdGUpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyB0ZXN0IHBvcnQgc2V0dGluZ3MgcmVjb25maWd1cmF0aW9uLCBlbGVtZW50YXJ5IHN0cmVhbSBkZWNvZGUgYW5kIHRpbWVzdGFtcAorLy8gZGV2aWF0aW9uCitURVNUX0YoVmlkZW9EZWNIaWRsVGVzdCwgRGVjb2RlVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBQb3J0IFJlY29uZmlndXJhdGlvbiwgRGVjb2RlIGFuZCB0aW1lc3RhbXAgZGV2aWF0aW9uIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIGNoYXIgbVVSTFs1MTJdLCBpbmZvWzUxMl07CisgICAgc3RyY3B5KG1VUkwsIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIHN0cmNweShpbmZvLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBHZXRVUkxGb3JDb21wb25lbnQoY29tcE5hbWUsIG1VUkwsIGluZm8pOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW0sIGVsZUluZm87CisKKyAgICBlbGVJbmZvLm9wZW4oaW5mbyk7CisgICAgQVNTRVJUX0VRKGVsZUluZm8uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBhbmRyb2lkOjpWZWN0b3I8RnJhbWVEYXRhPiBJbmZvOworICAgIGludCBieXRlc0NvdW50ID0gMDsKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgdWludDMyX3QgdGltZXN0YW1wID0gMDsKKyAgICB0aW1lc3RhbXBEZXZUZXN0ID0gdHJ1ZTsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAoIShlbGVJbmZvID4+IGJ5dGVzQ291bnQpKSBicmVhazsKKyAgICAgICAgZWxlSW5mbyA+PiBmbGFnczsKKyAgICAgICAgZWxlSW5mbyA+PiB0aW1lc3RhbXA7CisgICAgICAgIEluZm8ucHVzaF9iYWNrKHtieXRlc0NvdW50LCBmbGFncywgdGltZXN0YW1wfSk7CisgICAgICAgIGlmIChmbGFncyAhPSBPTVhfQlVGRkVSRkxBR19DT0RFQ0NPTkZJRykKKyAgICAgICAgICAgIHRpbWVzdGFtcFVzbGlzdC5wdXNoX2JhY2sodGltZXN0YW1wKTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgLy8gc2V0IFBvcnQgUGFyYW1zCisgICAgdWludDMyX3QgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgeEZyYW1lcmF0ZTsKKyAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCAmbkZyYW1lV2lkdGgsICZuRnJhbWVIZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAmeEZyYW1lcmF0ZSk7CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfVklERU9fQ29kaW5nVW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgZUNvbG9yRm9ybWF0LCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCAwLCB4RnJhbWVyYXRlKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisgICAgLy8gUG9ydCBSZWNvbmZpZ3VyYXRpb24KKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsIChpbnQpSW5mby5zaXplKCkpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgdGVzdEVPUygmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIEVYUEVDVF9FUSh0aW1lc3RhbXBVc2xpc3QuZW1wdHkoKSwgdHJ1ZSk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gZW5kIG9mIHNlcXVlbmNlIHRlc3QKK1RFU1RfRihWaWRlb0RlY0hpZGxUZXN0LCBFT1NUZXN0X00pIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBFbmQgb2Ygc3RyZWFtIG1vbmtleWluZyIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKworICAgIC8vIHNldCBQb3J0IFBhcmFtcworICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIHhGcmFtZXJhdGU7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgJm5GcmFtZVdpZHRoLCAmbkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgJnhGcmFtZXJhdGUpOworICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX1ZJREVPX0NvZGluZ1VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVDb2xvckZvcm1hdCwgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgMCwgeEZyYW1lcmF0ZSk7CisgICAgb214Tm9kZS0+cHJlcGFyZUZvckFkYXB0aXZlUGxheWJhY2soa1BvcnRJbmRleE91dHB1dCwgZmFsc2UsIDE5MjAsIDEwODApOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGF0IHRoZSBzdGFydAorICAgIHRlc3RFT1MoJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlKTsKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIEVYUEVDVF9HRShmcmFtZXNSZWNlaXZlZCwgMFUpOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICB0aW1lc3RhbXBVcyA9IDA7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBlbmQgb2Ygc2VxdWVuY2UgdGVzdAorVEVTVF9GKFZpZGVvRGVjSGlkbFRlc3QsIFRodW1ibmFpbFRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBSZXF1ZXN0IGZvciB0aHVtYm5haWwiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgLy8gc2V0IFBvcnQgUGFyYW1zCisgICAgdWludDMyX3QgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgeEZyYW1lcmF0ZTsKKyAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCAmbkZyYW1lV2lkdGgsICZuRnJhbWVIZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAmeEZyYW1lcmF0ZSk7CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfVklERU9fQ29kaW5nVW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgZUNvbG9yRm9ybWF0LCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCAwLCB4RnJhbWVyYXRlKTsKKyAgICBvbXhOb2RlLT5wcmVwYXJlRm9yQWRhcHRpdmVQbGF5YmFjayhrUG9ydEluZGV4T3V0cHV0LCBmYWxzZSwgMTkyMCwgMTA4MCk7CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgLy8gcmVxdWVzdCBFT1MgZm9yIHRodW1ibmFpbAorICAgIHNpemVfdCBpID0gMDsKKyAgICB3aGlsZSAoIShJbmZvW2ldLmZsYWdzICYgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSkgaSsrOworICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwgaSArIDEpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgdGVzdEVPUygmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgRVhQRUNUX0dFKGZyYW1lc1JlY2VpdmVkLCAxVSk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwgaSArIDEsIGZhbHNlKTsKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKKyAgICB3YWl0T25JbnB1dENvbnN1bXB0aW9uKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIHRlc3RFT1MoJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlKTsKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIEVYUEVDVF9HRShmcmFtZXNSZWNlaXZlZCwgMVUpOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICB0aW1lc3RhbXBVcyA9IDA7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBlbmQgb2Ygc2VxdWVuY2UgdGVzdAorVEVTVF9GKFZpZGVvRGVjSGlkbFRlc3QsIFNpbXBsZUVPU1Rlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBFbmQgb2Ygc3RyZWFtIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIGNoYXIgbVVSTFs1MTJdLCBpbmZvWzUxMl07CisgICAgc3RyY3B5KG1VUkwsIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIHN0cmNweShpbmZvLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBHZXRVUkxGb3JDb21wb25lbnQoY29tcE5hbWUsIG1VUkwsIGluZm8pOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW0sIGVsZUluZm87CisKKyAgICBlbGVJbmZvLm9wZW4oaW5mbyk7CisgICAgQVNTRVJUX0VRKGVsZUluZm8uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBhbmRyb2lkOjpWZWN0b3I8RnJhbWVEYXRhPiBJbmZvOworICAgIGludCBieXRlc0NvdW50ID0gMDsKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgdWludDMyX3QgdGltZXN0YW1wID0gMDsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAoIShlbGVJbmZvID4+IGJ5dGVzQ291bnQpKSBicmVhazsKKyAgICAgICAgZWxlSW5mbyA+PiBmbGFnczsKKyAgICAgICAgZWxlSW5mbyA+PiB0aW1lc3RhbXA7CisgICAgICAgIEluZm8ucHVzaF9iYWNrKHtieXRlc0NvdW50LCBmbGFncywgdGltZXN0YW1wfSk7CisgICAgfQorICAgIGVsZUluZm8uY2xvc2UoKTsKKworICAgIC8vIHNldCBQb3J0IFBhcmFtcworICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIHhGcmFtZXJhdGU7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgJm5GcmFtZVdpZHRoLCAmbkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgJnhGcmFtZXJhdGUpOworICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX1ZJREVPX0NvZGluZ1VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVDb2xvckZvcm1hdCwgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgMCwgeEZyYW1lcmF0ZSk7CisgICAgb214Tm9kZS0+cHJlcGFyZUZvckFkYXB0aXZlUGxheWJhY2soa1BvcnRJbmRleE91dHB1dCwgZmFsc2UsIDE5MjAsIDEwODApOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGF0IHRoZSBlbmQKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsIChpbnQpSW5mby5zaXplKCkpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgdGVzdEVPUygmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIHRlc3QgaW5wdXQvb3V0cHV0IHBvcnQgZmx1c2gKK1RFU1RfRihWaWRlb0RlY0hpZGxUZXN0LCBGbHVzaFRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBGbHVzaCIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXSwgaW5mb1s1MTJdOworICAgIHN0cmNweShtVVJMLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBzdHJjcHkoaW5mbywgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KGNvbXBOYW1lLCBtVVJMLCBpbmZvKTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtLCBlbGVJbmZvOworCisgICAgZWxlSW5mby5vcGVuKGluZm8pOworICAgIEFTU0VSVF9FUShlbGVJbmZvLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4gSW5mbzsKKyAgICBpbnQgYnl0ZXNDb3VudCA9IDA7CisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIHVpbnQzMl90IHRpbWVzdGFtcCA9IDA7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKCEoZWxlSW5mbyA+PiBieXRlc0NvdW50KSkgYnJlYWs7CisgICAgICAgIGVsZUluZm8gPj4gZmxhZ3M7CisgICAgICAgIGVsZUluZm8gPj4gdGltZXN0YW1wOworICAgICAgICBJbmZvLnB1c2hfYmFjayh7Ynl0ZXNDb3VudCwgZmxhZ3MsIHRpbWVzdGFtcH0pOworICAgIH0KKyAgICBlbGVJbmZvLmNsb3NlKCk7CisKKyAgICAvLyBzZXQgUG9ydCBQYXJhbXMKKyAgICB1aW50MzJfdCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCB4RnJhbWVyYXRlOworICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRZVVY0MjBQbGFuYXI7CisgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsICZuRnJhbWVXaWR0aCwgJm5GcmFtZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICZ4RnJhbWVyYXRlKTsKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIDAsIHhGcmFtZXJhdGUpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIERlY29kZSAxMjggZnJhbWVzIGFuZCBmbHVzaC4gaGVyZSAxMjggaXMgY2hvc2VuIHRvIGVuc3VyZSB0aGVyZSBpcyBhIGtleQorICAgIC8vIGZyYW1lIGFmdGVyIHRoaXMgc28gdGhhdCB0aGUgYmVsb3cgc2VjdGlvbiBjYW4gYmUgY29udmVyZWQgZm9yIGFsbAorICAgIC8vIGNvbXBvbmVudHMKKyAgICBpbnQgbkZyYW1lcyA9IDEyODsKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsIG5GcmFtZXMsIGZhbHNlKTsKKyAgICAvLyBOb3RlOiBBc3N1bWVzIDIwMCBtcyBpcyBlbm91Z2ggdG8gZW5kIGFueSBkZWNvZGUgY2FsbCB0aGF0IHN0YXJ0ZWQKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIDIwMDAwMCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworCisgICAgLy8gU2VlayB0byBuZXh0IGtleSBmcmFtZSBhbmQgc3RhcnQgZGVjb2RpbmcgdGlsbCB0aGUgZW5kCisgICAgaW50IGluZGV4ID0gbkZyYW1lczsKKyAgICBib29sIGtleUZyYW1lID0gZmFsc2U7CisgICAgd2hpbGUgKGluZGV4IDwgKGludClJbmZvLnNpemUoKSkgeworICAgICAgICBpZiAoKEluZm9baW5kZXhdLmZsYWdzICYgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSA9PQorICAgICAgICAgICAgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSB7CisgICAgICAgICAgICB0aW1lc3RhbXBVcyA9IEluZm9baW5kZXggLSAxXS50aW1lc3RhbXA7CisgICAgICAgICAgICBrZXlGcmFtZSA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBlbGVTdHJlYW0uaWdub3JlKEluZm9baW5kZXhdLmJ5dGVzQ291bnQpOworICAgICAgICBpbmRleCsrOworICAgIH0KKyAgICBpZiAoa2V5RnJhbWUpIHsKKyAgICAgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgSW5mby5zaXplKCkgLSBpbmRleCwgZmFsc2UpOworICAgIH0KKyAgICAvLyBOb3RlOiBBc3N1bWVzIDIwMCBtcyBpcyBlbm91Z2ggdG8gZW5kIGFueSBkZWNvZGUgY2FsbCB0aGF0IHN0YXJ0ZWQKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIDIwMDAwMCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9FbmNUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9FbmNUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44N2FhYzBjCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRWaWRlb0VuY1Rlc3QuY3BwCkBAIC0wLDAgKzEsNTc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF92aWRlb19lbmNfdGVzdCIKKyNpZmRlZiBfX0xQNjRfXworI2RlZmluZSBPTVhfQU5EUk9JRF9DT01QSUxFX0FTXzMyQklUX09OXzY0QklUX1BMQVRGT1JNUworI2VuZGlmCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG1lZGlhL2hhcmR3YXJlL0hhcmR3YXJlQVBJLmg+CisjaW5jbHVkZSA8bWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPG1lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxmc3RyZWFtPgorCisvLyBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwCitjbGFzcyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorCisgICAgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KCkgOiBpbnN0YW5jZSgiZGVmYXVsdCIpLCByZXMoIi9zZGNhcmQvbWVkaWEvIikge30KKworICAgIHZvaWQgc2V0SW5zdGFuY2UoY29uc3QgY2hhciogX2luc3RhbmNlKSB7IGluc3RhbmNlID0gX2luc3RhbmNlOyB9CisKKyAgICB2b2lkIHNldENvbXBvbmVudChjb25zdCBjaGFyKiBfY29tcG9uZW50KSB7IGNvbXBvbmVudCA9IF9jb21wb25lbnQ7IH0KKworICAgIHZvaWQgc2V0Um9sZShjb25zdCBjaGFyKiBfcm9sZSkgeyByb2xlID0gX3JvbGU7IH0KKworICAgIHZvaWQgc2V0UmVzKGNvbnN0IGNoYXIqIF9yZXMpIHsgcmVzID0gX3JlczsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0SW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpbnN0YW5jZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Q29tcG9uZW50KCkgY29uc3QgeyByZXR1cm4gY29tcG9uZW50OyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSb2xlKCkgY29uc3QgeyByZXR1cm4gcm9sZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0UmVzKCkgY29uc3QgeyByZXR1cm4gcmVzOyB9CisKKyAgICBpbnQgaW5pdEZyb21PcHRpb25zKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICAgICAgICBzdGF0aWMgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CisgICAgICAgICAgICB7Imluc3RhbmNlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdJJ30sCisgICAgICAgICAgICB7ImNvbXBvbmVudCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnQyd9LAorICAgICAgICAgICAgeyJyb2xlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdSJ30sCisgICAgICAgICAgICB7InJlcyIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUCd9LAorICAgICAgICAgICAgezAsIDAsIDAsIDB9fTsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkk6QzpSOlA6Iiwgb3B0aW9ucywgJmluZGV4KTsKKyAgICAgICAgICAgIGlmIChjID09IC0xKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgJ0knOgorICAgICAgICAgICAgICAgICAgICBzZXRJbnN0YW5jZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdDJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Q29tcG9uZW50KG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1InOgorICAgICAgICAgICAgICAgICAgICBzZXRSb2xlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1AnOgorICAgICAgICAgICAgICAgICAgICBzZXRSZXMob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnPyc6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wdGluZCA8IGFyZ2MpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAidW5yZWNvZ25pemVkIG9wdGlvbjogJXNcblxuIgorICAgICAgICAgICAgICAgICAgICAidXNhZ2U6ICVzIDxndGVzdCBvcHRpb25zPiA8dGVzdCBvcHRpb25zPlxuXG4iCisgICAgICAgICAgICAgICAgICAgICJ0ZXN0IG9wdGlvbnMgYXJlOlxuXG4iCisgICAgICAgICAgICAgICAgICAgICItSSwgLS1pbnN0YW5jZTogSEFMIGluc3RhbmNlIHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1DLCAtLWNvbXBvbmVudDogT01YIGNvbXBvbmVudCB0byB0ZXN0XG4iCisgICAgICAgICAgICAgICAgICAgICItUiwgLS1yb2xlOiBPTVggY29tcG9uZW50IFJvbGVcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1QLCAtLXJlczogUmVzb3VyY2UgZmlsZXMgZGlyZWN0b3J5IGxvY2F0aW9uXG4iLAorICAgICAgICAgICAgICAgICAgICBhcmd2W29wdGluZCA/OiAxXSwgYXJndlswXSk7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgaGlkbF9zdHJpbmcgaW5zdGFuY2U7CisgICAgaGlkbF9zdHJpbmcgY29tcG9uZW50OworICAgIGhpZGxfc3RyaW5nIHJvbGU7CisgICAgaGlkbF9zdHJpbmcgcmVzOworfTsKKworc3RhdGljIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCogZ0VudiA9IG51bGxwdHI7CisKKy8vIHZpZGVvIGVuY29kZXIgdGVzdCBmaXh0dXJlIGNsYXNzCitjbGFzcyBWaWRlb0VuY0hpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGRpc2FibGVUZXN0ID0gZmFsc2U7CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgICAgICBvbXggPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJT214PigKKyAgICAgICAgICAgIGdFbnYtPmdldEluc3RhbmNlKCkpOworICAgICAgICBBU1NFUlRfTkUob214LCBudWxscHRyKTsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgQ29kZWNPYnNlcnZlcihbdGhpc10oTWVzc2FnZSBtc2cpIHsgKHZvaWQpbXNnOyB9KTsKKyAgICAgICAgQVNTRVJUX05FKG9ic2VydmVyLCBudWxscHRyKTsKKyAgICAgICAgaWYgKHN0cm5jbXAoZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSwgIk9NWC4iLCA0KSAhPSAwKQorICAgICAgICAgICAgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBFWFBFQ1RfVFJVRShvbXgtPmFsbG9jYXRlTm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdFbnYtPmdldENvbXBvbmVudCgpLCBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElPbXhOb2RlPiBjb25zdCYgX25sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+b214Tm9kZSA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teE5vZGUsIG51bGxwdHIpOworICAgICAgICBBU1NFUlRfTkUoZ0Vudi0+Z2V0Um9sZSgpLmVtcHR5KCksIHRydWUpIDw8ICJJbnZhbGlkIENvbXBvbmVudCBSb2xlIjsKKyAgICAgICAgc3RydWN0IFN0cmluZ1RvTmFtZSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBOYW1lOworICAgICAgICAgICAgc3RhbmRhcmRDb21wIENvbXBOYW1lOworICAgICAgICB9OworICAgICAgICBjb25zdCBTdHJpbmdUb05hbWUga1N0cmluZ1RvTmFtZVtdID0geworICAgICAgICAgICAgeyJoMjYzIiwgaDI2M30sIHsiYXZjIiwgYXZjfSwgeyJtcGVnNCIsIG1wZWc0fSwKKyAgICAgICAgICAgIHsiaGV2YyIsIGhldmN9LCB7InZwOCIsIHZwOH0sIHsidnA5IiwgdnA5fSwKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGtOdW1TdHJpbmdUb05hbWUgPQorICAgICAgICAgICAgc2l6ZW9mKGtTdHJpbmdUb05hbWUpIC8gc2l6ZW9mKGtTdHJpbmdUb05hbWVbMF0pOworICAgICAgICBjb25zdCBjaGFyKiBwY2g7CisgICAgICAgIGNoYXIgc3Vic3RyaW5nW09NWF9NQVhfU1RSSU5HTkFNRV9TSVpFXTsKKyAgICAgICAgc3RyY3B5KHN1YnN0cmluZywgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgICAgICBwY2ggPSBzdHJjaHIoc3Vic3RyaW5nLCAnLicpOworICAgICAgICBBU1NFUlRfTkUocGNoLCBudWxscHRyKTsKKyAgICAgICAgY29tcE5hbWUgPSB1bmtub3duX2NvbXA7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga051bVN0cmluZ1RvTmFtZTsgKytpKSB7CisgICAgICAgICAgICBpZiAoIXN0cmNhc2VjbXAocGNoICsgMSwga1N0cmluZ1RvTmFtZVtpXS5OYW1lKSkgeworICAgICAgICAgICAgICAgIGNvbXBOYW1lID0ga1N0cmluZ1RvTmFtZVtpXS5Db21wTmFtZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcE5hbWUgPT0gdW5rbm93bl9jb21wKSBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIHN0cnVjdCBDb21wVG9Db21wcmVzc2lvbiB7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgICAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBDb21wVG9Db21wcmVzc2lvbiBrQ29tcFRvQ29tcHJlc3Npb25bXSA9IHsKKyAgICAgICAgICAgIHtoMjYzLCBPTVhfVklERU9fQ29kaW5nSDI2M30sICAge2F2YywgT01YX1ZJREVPX0NvZGluZ0FWQ30sCisgICAgICAgICAgICB7bXBlZzQsIE9NWF9WSURFT19Db2RpbmdNUEVHNH0sIHtoZXZjLCBPTVhfVklERU9fQ29kaW5nSEVWQ30sCisgICAgICAgICAgICB7dnA4LCBPTVhfVklERU9fQ29kaW5nVlA4fSwgICAgIHt2cDksIE9NWF9WSURFT19Db2RpbmdWUDl9LAorICAgICAgICB9OworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGtOdW1Db21wVG9Db21wcmVzc2lvbiA9CisgICAgICAgICAgICBzaXplb2Yoa0NvbXBUb0NvbXByZXNzaW9uKSAvIHNpemVvZihrQ29tcFRvQ29tcHJlc3Npb25bMF0pOworICAgICAgICBzaXplX3QgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGtOdW1Db21wVG9Db21wcmVzc2lvbjsgKytpKSB7CisgICAgICAgICAgICBpZiAoa0NvbXBUb0NvbXByZXNzaW9uW2ldLkNvbXBOYW1lID09IGNvbXBOYW1lKSB7CisgICAgICAgICAgICAgICAgZUNvbXByZXNzaW9uRm9ybWF0ID0ga0NvbXBUb0NvbXByZXNzaW9uW2ldLmVDb21wcmVzc2lvbkZvcm1hdDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBrTnVtQ29tcFRvQ29tcHJlc3Npb24pIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgaWYgKGRpc2FibGVUZXN0KSBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgIFRlc3QgRGlzYWJsZWRcbiI7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAob214Tm9kZSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSgob214Tm9kZS0+ZnJlZU5vZGUoKSkuaXNPaygpKTsKKyAgICAgICAgICAgIG9teE5vZGUgPSBudWxscHRyOworICAgICAgICB9CisgICAgfQorCisgICAgZW51bSBzdGFuZGFyZENvbXAgeworICAgICAgICBoMjYzLAorICAgICAgICBhdmMsCisgICAgICAgIG1wZWc0LAorICAgICAgICBoZXZjLAorICAgICAgICB2cDgsCisgICAgICAgIHZwOSwKKyAgICAgICAgdW5rbm93bl9jb21wLAorICAgIH07CisKKyAgICBzcDxJT214PiBvbXg7CisgICAgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXI7CisgICAgc3A8SU9teE5vZGU+IG9teE5vZGU7CisgICAgc3RhbmRhcmRDb21wIGNvbXBOYW1lOworICAgIE9NWF9WSURFT19DT0RJTkdUWVBFIGVDb21wcmVzc2lvbkZvcm1hdDsKKyAgICBib29sIGRpc2FibGVUZXN0OworCisgICBwcm90ZWN0ZWQ6CisgICAgc3RhdGljIHZvaWQgZGVzY3JpcHRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIFJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIGRlc2NyaXB0aW9uKTsKKyAgICB9Cit9OworCisvLyByZXF1ZXN0IFZPUCByZWZyZXNoCit2b2lkIHJlcXVlc3RJRFIoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4KSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0NPTkZJR19JTlRSQVJFRlJFU0hWT1BUWVBFIHBhcmFtOworICAgIHBhcmFtLkludHJhUmVmcmVzaFZPUCA9IE9NWF9UUlVFOworICAgIHN0YXR1cyA9IHNldFBvcnRDb25maWcob214Tm9kZSwgT01YX0luZGV4Q29uZmlnVmlkZW9JbnRyYVZPUFJlZnJlc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgdW5hYmxlIHRvIHJlcXVlc3QgSURSIFxuIjsKK30KKworLy8gbW9kaWZ5IGJpdHJhdGUKK3ZvaWQgY2hhbmdlQml0cmF0ZShzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIHVpbnQzMl90IG5CaXRyYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX0NPTkZJR19CSVRSQVRFVFlQRSBwYXJhbTsKKyAgICBwYXJhbS5uRW5jb2RlQml0cmF0ZSA9IG5CaXRyYXRlOworICAgIHN0YXR1cyA9CisgICAgICAgIHNldFBvcnRDb25maWcob214Tm9kZSwgT01YX0luZGV4Q29uZmlnVmlkZW9CaXRyYXRlLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgdW5hYmxlIHRvIGNoYW5nZSBCaXRyYXRlIFxuIjsKK30KKworLy8gbW9kaWZ5IGZyYW1lcmF0ZQorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IGNoYW5nZUZyYW1lUmF0ZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIHVpbnQzMl90IHhGcmFtZXJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQ09ORklHX0ZSQU1FUkFURVRZUEUgcGFyYW07CisgICAgcGFyYW0ueEVuY29kZUZyYW1lcmF0ZSA9IHhGcmFtZXJhdGU7CisgICAgc3RhdHVzID0gc2V0UG9ydENvbmZpZyhvbXhOb2RlLCBPTVhfSW5kZXhDb25maWdWaWRlb0ZyYW1lcmF0ZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhcmFtKTsKKyAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISB1bmFibGUgdG8gY2hhbmdlIEZyYW1lcmF0ZSBcbiI7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworLy8gbW9kaWZ5IGludHJhIHJlZnJlc2ggaW50ZXJ2YWwKK3ZvaWQgY2hhbmdlUmVmcmVzaFBlcmlvZChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgblJlZnJlc2hQZXJpb2QpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fQ09ORklHX0FORFJPSURfSU5UUkFSRUZSRVNIVFlQRSBwYXJhbTsKKyAgICBwYXJhbS5uUmVmcmVzaFBlcmlvZCA9IG5SZWZyZXNoUGVyaW9kOworICAgIHN0YXR1cyA9IHNldFBvcnRDb25maWcob214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleENvbmZpZ0FuZHJvaWRJbnRyYVJlZnJlc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgdW5hYmxlIHRvIGNoYW5nZSBSZWZyZXNoIFBlcmlvZFxuIjsKK30KKworLy8gc2V0IGludHJhIHJlZnJlc2ggaW50ZXJ2YWwKK3ZvaWQgc2V0UmVmcmVzaFBlcmlvZChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgblJlZnJlc2hQZXJpb2QpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fUEFSQU1fSU5UUkFSRUZSRVNIVFlQRSBwYXJhbTsKKyAgICBwYXJhbS5lUmVmcmVzaE1vZGUgPSBPTVhfVklERU9fSW50cmFSZWZyZXNoQ3ljbGljOworICAgIHBhcmFtLm5DaXJNQnMgPSAwOworICAgIGlmIChuUmVmcmVzaFBlcmlvZCA9PSAwKQorICAgICAgICBwYXJhbS5uQ2lyTUJzID0gMDsKKyAgICBlbHNlIHsKKyAgICAgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgICAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIHBhcmFtLm5DaXJNQnMgPQorICAgICAgICAgICAgICAgICgocG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lV2lkdGggKyAxNSkgPj4KKyAgICAgICAgICAgICAgICAgNCAqIChwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVIZWlnaHQgKyAxNSkgPj4gNCkgLworICAgICAgICAgICAgICAgIG5SZWZyZXNoUGVyaW9kOworICAgICAgICB9CisgICAgfQorICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW50cmFSZWZyZXNoLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwYXJhbSk7CisgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgdW5hYmxlIHRvIHNldCBSZWZyZXNoIFBlcmlvZCBcbiI7Cit9CisKKy8vIFNldCBEZWZhdWx0IHBvcnQgcGFyYW0uCit2b2lkIHNldERlZmF1bHRQb3J0UGFyYW0oc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19DT0RJTkdUWVBFIGVDb21wcmVzc2lvbkZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIG5CaXRyYXRlLCBPTVhfVTMyIHhGcmFtZXJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5CaXRyYXRlID0gbkJpdHJhdGU7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ueEZyYW1lcmF0ZSA9IHhGcmFtZXJhdGU7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8uYkZsYWdFcnJvckNvbmNlYWxtZW50ID0gT01YX1RSVUU7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8uZUNvbXByZXNzaW9uRm9ybWF0ID0gZUNvbXByZXNzaW9uRm9ybWF0OworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLmVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRVbnVzZWQ7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gYXJyUHJvZmlsZTsKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBhcnJMZXZlbDsKKyAgICBlbnVtZXJhdGVQcm9maWxlQW5kTGV2ZWwob214Tm9kZSwgcG9ydEluZGV4LCAmYXJyUHJvZmlsZSwgJmFyckxldmVsKTsKKyAgICBpZiAoYXJyUHJvZmlsZS5lbXB0eSgpID09IHRydWUgfHwgYXJyTGV2ZWwuZW1wdHkoKSA9PSB0cnVlKQorICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgaW50MzJfdCBwcm9maWxlID0gYXJyUHJvZmlsZVswXTsKKyAgICBpbnQzMl90IGxldmVsID0gYXJyTGV2ZWxbMF07CisKKyAgICBzd2l0Y2ggKChpbnQpZUNvbXByZXNzaW9uRm9ybWF0KSB7CisgICAgICAgIGNhc2UgT01YX1ZJREVPX0NvZGluZ0FWQzoKKyAgICAgICAgICAgIHNldHVwQVZDUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX0FWQ1BST0ZJTEVUWVBFPihwcm9maWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fQVZDTEVWRUxUWVBFPihsZXZlbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgeEZyYW1lcmF0ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPTVhfVklERU9fQ29kaW5nSEVWQzoKKyAgICAgICAgICAgIHNldHVwSEVWQ1BvcnQob214Tm9kZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fSEVWQ1BST0ZJTEVUWVBFPihwcm9maWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX0hFVkNMRVZFTFRZUEU+KGxldmVsKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPTVhfVklERU9fQ29kaW5nSDI2MzoKKyAgICAgICAgICAgIHNldHVwSDI2M1BvcnQob214Tm9kZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fSDI2M1BST0ZJTEVUWVBFPihwcm9maWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX0gyNjNMRVZFTFRZUEU+KGxldmVsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeEZyYW1lcmF0ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPTVhfVklERU9fQ29kaW5nTVBFRzQ6CisgICAgICAgICAgICBzZXR1cE1QRUc0UG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fTVBFRzRQUk9GSUxFVFlQRT4ocHJvZmlsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fTVBFRzRMRVZFTFRZUEU+KGxldmVsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHhGcmFtZXJhdGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgT01YX1ZJREVPX0NvZGluZ1ZQODoKKyAgICAgICAgICAgIHNldHVwVlBYUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIHhGcmFtZXJhdGUpOworICAgICAgICAgICAgc2V0dXBWUDhQb3J0KG9teE5vZGUsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fVlA4UFJPRklMRVRZUEU+KHByb2ZpbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19WUDhMRVZFTFRZUEU+KGxldmVsKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPTVhfVklERU9fQ29kaW5nVlA5OgorICAgICAgICAgICAgc2V0dXBWUFhQb3J0KG9teE5vZGUsIHBvcnRJbmRleCwgeEZyYW1lcmF0ZSk7CisgICAgICAgICAgICBzZXR1cFZQOVBvcnQob214Tm9kZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19WUDlQUk9GSUxFVFlQRT4ocHJvZmlsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX1ZQOUxFVkVMVFlQRT4obGV2ZWwpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCisvLyBMb29rVXBUYWJsZSBvZiBjbGlwcyBhbmQgbWV0YWRhdGEgZm9yIGNvbXBvbmVudCB0ZXN0aW5nCit2b2lkIEdldFVSTEZvckNvbXBvbmVudChjaGFyKiBVUkwpIHsKKyAgICBzdHJjYXQoVVJMLCAiYmJiXzM1MngyODhfNDIwcF8zMGZwc18zMmZyYW1lcy55dXYiKTsKK30KKworLy8gRW5jb2RlIE4gRnJhbWVzCit2b2lkIGVuY29kZU5GcmFtZXMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgcG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIHVpbnQzMl90IG5GcmFtZXMsCisgICAgICAgICAgICAgICAgICAgdWludDMyX3QgeEZyYW1lcmF0ZSwgaW50IGJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgc3RkOjppZnN0cmVhbSYgZWxlU3RyZWFtKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisgICAgdWludDMyX3QgaXBDb3VudCA9IDA7CisKKyAgICBpZiAoaXBDb3VudCA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IGNoYW5nZUZyYW1lUmF0ZShvbXhOb2RlLCBwb3J0SW5kZXhPdXRwdXQsICgyNFUgPDwgMTYpKTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICAgICAgeEZyYW1lcmF0ZSA9ICgyNFUgPDwgMTYpOworICAgIH0KKworICAgIC8vIGRpc3BhdGNoIG91dHB1dCBidWZmZXJzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpKTsKKyAgICB9CisgICAgLy8gZGlzcGF0Y2ggaW5wdXQgYnVmZmVycworICAgIGludDMyX3QgdGltZXN0YW1wSW5jciA9IChpbnQpKChmbG9hdCkxMDAwMDAwIC8gKHhGcmFtZXJhdGUgPj4gMTYpKTsKKyAgICB1aW50NjRfdCB0aW1lc3RhbXAgPSAwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci0+c2l6ZSgpICYmIG5GcmFtZXMgIT0gMDsgaSsrKSB7CisgICAgICAgIGNoYXIqIGlwQnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KCgqaUJ1ZmZlcilbaV0ubU1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgIEFTU0VSVF9MRShieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PigoKmlCdWZmZXIpW2ldLm1NZW1vcnktPmdldFNpemUoKSkpOworICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgYnl0ZXNDb3VudCk7CisgICAgICAgIGlmIChlbGVTdHJlYW0uZ2NvdW50KCkgIT0gYnl0ZXNDb3VudCkgYnJlYWs7CisgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaSwgYnl0ZXNDb3VudCwgMCwgdGltZXN0YW1wKTsKKyAgICAgICAgdGltZXN0YW1wICs9IHRpbWVzdGFtcEluY3I7CisgICAgICAgIG5GcmFtZXMtLTsKKyAgICAgICAgaXBDb3VudCsrOworICAgIH0KKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKworICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50UG9ydFNldHRpbmdzQ2hhbmdlZCkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIHBvcnRJbmRleE91dHB1dCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0luZGV4Q29uZmlnQW5kcm9pZEludHJhUmVmcmVzaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChuRnJhbWVzID09IDApIGJyZWFrOworCisgICAgICAgIC8vIERpc3BhdGNoIGlucHV0IGJ1ZmZlcgorICAgICAgICBzaXplX3QgaW5kZXggPSAwOworICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChpQnVmZmVyKSkgPCBpQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGNoYXIqIGlwQnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPigoKmlCdWZmZXIpW2luZGV4XS5tTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKyAgICAgICAgICAgIEFTU0VSVF9MRShieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpbmRleF0ubU1lbW9yeS0+Z2V0U2l6ZSgpKSk7CisgICAgICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgYnl0ZXNDb3VudCk7CisgICAgICAgICAgICBpZiAoZWxlU3RyZWFtLmdjb3VudCgpICE9IGJ5dGVzQ291bnQpIGJyZWFrOworICAgICAgICAgICAgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihvbXhOb2RlLCBpQnVmZmVyLCBpbmRleCwgYnl0ZXNDb3VudCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wKTsKKyAgICAgICAgICAgIHRpbWVzdGFtcCArPSB0aW1lc3RhbXBJbmNyOworICAgICAgICAgICAgbkZyYW1lcy0tOworICAgICAgICAgICAgaXBDb3VudCsrOworICAgICAgICB9CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKG9CdWZmZXIpKSA8IG9CdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaW5kZXgpOworICAgICAgICB9CisgICAgICAgIGlmIChpcENvdW50ID09IDE1KSB7CisgICAgICAgICAgICBjaGFuZ2VCaXRyYXRlKG9teE5vZGUsIHBvcnRJbmRleE91dHB1dCwgNzY4MDAwKTsKKyAgICAgICAgICAgIHJlcXVlc3RJRFIob214Tm9kZSwgcG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgICAgIGNoYW5nZVJlZnJlc2hQZXJpb2Qob214Tm9kZSwgcG9ydEluZGV4T3V0cHV0LCAxNSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHNldCBjb21wb25lbnQgcm9sZQorVEVTVF9GKFZpZGVvRW5jSGlkbFRlc3QsIFNldFJvbGUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBTZXQgQ29tcG9uZW50IFJvbGUiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gcG9ydCBmb3JtYXQgZW51bWVyYXRpb24KK1RFU1RfRihWaWRlb0VuY0hpZGxUZXN0LCBFbnVtZXJhdGVQb3J0Rm9ybWF0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgQ29tcG9uZW50IG9uIE1hbmRhdG9yeSBQb3J0IFBhcmFtZXRlcnMgKFBvcnQgRm9ybWF0KSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRZVVY0MjBQbGFuYXI7CisgICAgT01YX1UzMiB4RnJhbWVyYXRlID0gKDMwVSA8PCAxNik7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIHN0YXR1cyA9CisgICAgICAgIHNldFZpZGVvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIHhGcmFtZXJhdGUpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIGVDb21wcmVzc2lvbkZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0Zvcm1hdFVudXNlZCwgMFUpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyB0ZXN0IHJhdyBzdHJlYW0gZW5jb2RlCitURVNUX0YoVmlkZW9FbmNIaWRsVGVzdCwgRW5jb2RlVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IEVuY29kZSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KG1VUkwpOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW07CisgICAgZWxlU3RyZWFtLm9wZW4obVVSTCwgc3RkOjppZnN0cmVhbTo6YmluYXJ5KTsKKyAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmlzX29wZW4oKSwgdHJ1ZSk7CisKKyAgICAvLyBDb25maWd1cmUgaW5wdXQgcG9ydAorICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoID0gMzUyOworICAgIHVpbnQzMl90IG5GcmFtZUhlaWdodCA9IDI4ODsKKyAgICB1aW50MzJfdCB4RnJhbWVyYXRlID0gKDMwVSA8PCAxNik7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBzZXR1cFJBV1BvcnQob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCAwLAorICAgICAgICAgICAgICAgICB4RnJhbWVyYXRlLCBlQ29sb3JGb3JtYXQpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHVpbnQzMl90IG5CaXRSYXRlID0gNTEyMDAwOworICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgZUNvbXByZXNzaW9uRm9ybWF0LCBuQml0UmF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHhGcmFtZXJhdGUpOworICAgIHNldFJlZnJlc2hQZXJpb2Qob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgMCk7CisgICAgdW5zaWduZWQgaW50IGluZGV4OworICAgIG9teE5vZGUtPmdldEV4dGVuc2lvbkluZGV4KAorICAgICAgICAiT01YLmdvb2dsZS5hbmRyb2lkLmluZGV4LnByZXBlbmRTUFNQUFNUb0lEUkZyYW1lcyIsCisgICAgICAgIFsmc3RhdHVzLCAmaW5kZXhdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfbmwpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgaW5kZXggPSBfbmw7CisgICAgICAgIH0pOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBhbmRyb2lkOjpQcmVwZW5kU1BTUFBTVG9JRFJGcmFtZXNQYXJhbXMgcGFyYW07CisgICAgICAgIHBhcmFtLmJFbmFibGUgPSBPTVhfVFJVRTsKKyAgICAgICAgc3RhdHVzID0gc2V0UGFyYW0ob214Tm9kZSwgc3RhdGljX2Nhc3Q8T01YX0lOREVYVFlQRT4oaW5kZXgpLCAmcGFyYW0pOworICAgIH0KKyAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgIHN0ZDo6Y2VycgorICAgICAgICAgICAgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgdW5hYmxlIHRvIHByZXBlbmRTUFNQUFNUb0lEUkZyYW1lc1xuIjsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICBlbmNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCBrUG9ydEluZGV4T3V0cHV0LCAmaUJ1ZmZlciwgJm9CdWZmZXIsIDEwMjQsCisgICAgICAgICAgICAgICAgICB4RnJhbWVyYXRlLCAobkZyYW1lV2lkdGggKiBuRnJhbWVIZWlnaHQgKiAzKSA+PiAxLCBlbGVTdHJlYW0pOworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vbWVkaWFfdmlkZW9faGlkbF90ZXN0X2NvbW1vbi5jcHAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL21lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwMzUwNDgKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL21lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uY3BwCkBAIC0wLDAgKzEsNTg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF92aWRlb190ZXN0X2NvbW1vbiIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGhpZGxtZW1vcnkvbWFwcGluZy5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxtZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorCisvLyBhbGxvY2F0ZSBidWZmZXJzIG5lZWRlZCBvbiBhIGNvbXBvbmVudCBwb3J0Cit2b2lkIGFsbG9jYXRlUG9ydEJ1ZmZlcnMoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBwb3J0SW5kZXgpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisKKyAgICBidWZmQXJyYXktPmNsZWFyKCk7CisKKyAgICBzcDxJQWxsb2NhdG9yPiBhbGxvY2F0b3IgPSBJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCJhc2htZW0iKTsKKyAgICBFWFBFQ1RfTkUoYWxsb2NhdG9yLmdldCgpLCBudWxscHRyKTsKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWw7IGkrKykgeworICAgICAgICBCdWZmZXJJbmZvIGJ1ZmZlcjsKKyAgICAgICAgYnVmZmVyLm93bmVyID0gY2xpZW50OworICAgICAgICBidWZmZXIub214QnVmZmVyLnR5cGUgPSBDb2RlY0J1ZmZlcjo6VHlwZTo6U0hBUkVEX01FTTsKKyAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5hdHRyLnByZXNldC5yYW5nZU9mZnNldCA9IDA7CisgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIuYXR0ci5wcmVzZXQucmFuZ2VMZW5ndGggPSAwOworICAgICAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgYWxsb2NhdG9yLT5hbGxvY2F0ZSgKKyAgICAgICAgICAgIHBvcnREZWYubkJ1ZmZlclNpemUsCisgICAgICAgICAgICBbJnN1Y2Nlc3MsICZidWZmZXJdKGJvb2wgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5IGNvbnN0JiBtZW0pIHsKKyAgICAgICAgICAgICAgICBzdWNjZXNzID0gX3M7CisgICAgICAgICAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkgPSBtZW07CisgICAgICAgICAgICB9KTsKKyAgICAgICAgQVNTRVJUX0VRKHN1Y2Nlc3MsIHRydWUpOworICAgICAgICBBU1NFUlRfRVEoYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkuc2l6ZSgpLCBwb3J0RGVmLm5CdWZmZXJTaXplKTsKKyAgICAgICAgYnVmZmVyLm1NZW1vcnkgPSBtYXBNZW1vcnkoYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkpOworICAgICAgICBBU1NFUlRfTkUoYnVmZmVyLm1NZW1vcnksIG51bGxwdHIpOworICAgICAgICBvbXhOb2RlLT51c2VCdWZmZXIoCisgICAgICAgICAgICBwb3J0SW5kZXgsIGJ1ZmZlci5vbXhCdWZmZXIsCisgICAgICAgICAgICBbJnN0YXR1cywgJmJ1ZmZlcl0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpZCkgeworICAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgIGJ1ZmZlci5pZCA9IGlkOworICAgICAgICAgICAgfSk7CisgICAgICAgIGJ1ZmZBcnJheS0+cHVzaChidWZmZXIpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICB9Cit9CisKKy8vIFN0YXRlIFRyYW5zaXRpb24gOiBMb2FkZWQgLT4gSWRsZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0KSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlSWRsZSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gRG9udCBzd2l0Y2ggc3RhdGVzIHVudGlsIHRoZSBwb3J0cyBhcmUgcG9wdWxhdGVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIC8vIGFsbG9jYXRlIGJ1ZmZlcnMgb24gaW5wdXQgcG9ydAorICAgIGFsbG9jYXRlUG9ydEJ1ZmZlcnMob214Tm9kZSwgaUJ1ZmZlciwga1BvcnRJbmRleElucHV0KTsKKworICAgIC8vIERvbnQgc3dpdGNoIHN0YXRlcyB1bnRpbCB0aGUgcG9ydHMgYXJlIHBvcHVsYXRlZAorICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICAvLyBhbGxvY2F0ZSBidWZmZXJzIG9uIG91dHB1dCBwb3J0CisgICAgYWxsb2NhdGVQb3J0QnVmZmVycyhvbXhOb2RlLCBvQnVmZmVyLCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgIC8vIEFzIHRoZSBwb3J0cyBhcmUgcG9wdWxhdGVkLCBjaGVjayBpZiB0aGUgc3RhdGUgdHJhbnNpdGlvbiBpcyBjb21wbGV0ZQorICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlSWRsZSk7CisKKyAgICByZXR1cm47Cit9CisKKy8vIFN0YXRlIFRyYW5zaXRpb24gOiBJZGxlIC0+IExvYWRlZAorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0KSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gTG9hZGVkCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVMb2FkZWQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIGRvbnQgY2hhbmdlIHN0YXRlIHVudGlsIGFsbCBidWZmZXJzIGFyZSBmcmVlZAorICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPmZyZWVCdWZmZXIoa1BvcnRJbmRleElucHV0LCAoKmlCdWZmZXIpW2ldLmlkKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KKworICAgIC8vIGRvbnQgY2hhbmdlIHN0YXRlIHVudGlsIGFsbCBidWZmZXJzIGFyZSBmcmVlZAorICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPmZyZWVCdWZmZXIoa1BvcnRJbmRleE91dHB1dCwgKCpvQnVmZmVyKVtpXS5pZCk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kU3RhdGVTZXQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIE9NWF9TdGF0ZUxvYWRlZCk7CisKKyAgICByZXR1cm47Cit9CisKKy8vIFN0YXRlIFRyYW5zaXRpb24gOiBJZGxlIC0+IEV4ZWN1dGUKKy8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgbWFrZSBhbnkgYmFja2dyb3VuZCBjaGVja3MgZm9yIHRoaXMgdHJhbnNpdGlvbi4KKy8vIFRoZSBjYWxsZWUgaG9sZHMgdGhlIHJlcG9uc2liaWxpdHkgdG8gZW5zdXJlIHRoZSBsZWdhbGl0eSBvZiB0aGUgdHJhbnNpdGlvbi4KK3ZvaWQgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRlCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVFeGVjdXRpbmcpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VUKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kU3RhdGVTZXQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIE9NWF9TdGF0ZUV4ZWN1dGluZyk7CisKKyAgICByZXR1cm47Cit9CisKKy8vIFN0YXRlIFRyYW5zaXRpb24gOiBFeGVjdXRlIC0+IElkbGUKKy8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgbWFrZSBhbnkgYmFja2dyb3VuZCBjaGVja3MgZm9yIHRoaXMgdHJhbnNpdGlvbi4KKy8vIFRoZSBjYWxsZWUgaG9sZHMgdGhlIHJlcG9uc2liaWxpdHkgdG8gZW5zdXJlIHRoZSBsZWdhbGl0eSBvZiB0aGUgdHJhbnNpdGlvbi4KK3ZvaWQgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlcikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gc2V0IHN0YXRlIHRvIElkbGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUlkbGUpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kU3RhdGVTZXQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIE9NWF9TdGF0ZUlkbGUpOworCisgICAgLy8gdGVzdCBpZiBjbGllbnQgZ290IGFsbCBpdHMgYnVmZmVycyBiYWNrCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7ICsraSkgeworICAgICAgICBFWFBFQ1RfRVEoKCpvQnVmZmVyKVtpXS5vd25lciwgY2xpZW50KTsKKyAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpQnVmZmVyLT5zaXplKCk7ICsraSkgeworICAgICAgICBFWFBFQ1RfRVEoKCppQnVmZmVyKVtpXS5vd25lciwgY2xpZW50KTsKKyAgICB9Cit9CisKKy8vIGdldCBlbXB0eSBidWZmZXIgaW5kZXgKK3NpemVfdCBnZXRFbXB0eUJ1ZmZlcklEKGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5KSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBidWZmQXJyYXktPnNpemUoKTsgaSsrKSB7CisgICAgICAgIGlmICgoKmJ1ZmZBcnJheSlbaV0ub3duZXIgPT0gY2xpZW50KSByZXR1cm4gaTsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZBcnJheS0+c2l6ZSgpOworfQorCisvLyBkaXNwYXRjaCBidWZmZXIgdG8gb3V0cHV0IHBvcnQKK3ZvaWQgZGlzcGF0Y2hPdXRwdXRCdWZmZXIoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVySW5kZXgpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBDb2RlY0J1ZmZlciB0OworICAgIHQuc2hhcmVkTWVtb3J5ID0gYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5KCk7CisgICAgdC5uYXRpdmVIYW5kbGUgPSBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGUoKTsKKyAgICB0LnR5cGUgPSBDb2RlY0J1ZmZlcjo6VHlwZTo6UFJFU0VUOworICAgIHQuYXR0ci5wcmVzZXQucmFuZ2VPZmZzZXQgPSAwOworICAgIHQuYXR0ci5wcmVzZXQucmFuZ2VMZW5ndGggPSAwOworICAgIG5hdGl2ZV9oYW5kbGVfdCogZmVuY2VOaCA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDAsIDApOworICAgIEFTU0VSVF9ORShmZW5jZU5oLCBudWxscHRyKTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5maWxsQnVmZmVyKCgqYnVmZkFycmF5KVtidWZmZXJJbmRleF0uaWQsIHQsIGZlbmNlTmgpOworICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoZmVuY2VOaCk7CisgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoZmVuY2VOaCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChidWZmZXJJbmRleCkub3duZXIgPSBjb21wb25lbnQ7Cit9CisKKy8vIGRpc3BhdGNoIGJ1ZmZlciB0byBpbnB1dCBwb3J0Cit2b2lkIGRpc3BhdGNoSW5wdXRCdWZmZXIoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1ZmZlckluZGV4LCBpbnQgYnl0ZXNDb3VudCwgdWludDMyX3QgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdGltZXN0YW1wKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgQ29kZWNCdWZmZXIgdDsKKyAgICB0LnNoYXJlZE1lbW9yeSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeSgpOworICAgIHQubmF0aXZlSGFuZGxlID0gYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlKCk7CisgICAgdC50eXBlID0gQ29kZWNCdWZmZXI6OlR5cGU6OlBSRVNFVDsKKyAgICB0LmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICB0LmF0dHIucHJlc2V0LnJhbmdlTGVuZ3RoID0gYnl0ZXNDb3VudDsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGZlbmNlTmggPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgwLCAwKTsKKyAgICBBU1NFUlRfTkUoZmVuY2VOaCwgbnVsbHB0cik7CisgICAgc3RhdHVzID0gb214Tm9kZS0+ZW1wdHlCdWZmZXIoKCpidWZmQXJyYXkpW2J1ZmZlckluZGV4XS5pZCwgdCwgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wLCBmZW5jZU5oKTsKKyAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGZlbmNlTmgpOworICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGZlbmNlTmgpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBidWZmQXJyYXktPmVkaXRJdGVtQXQoYnVmZmVySW5kZXgpLm93bmVyID0gY29tcG9uZW50OworfQorCisvLyBGbHVzaCBpbnB1dCBhbmQgb3V0cHV0IHBvcnRzCit2b2lkIGZsdXNoUG9ydHMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwgaW50NjRfdCB0aW1lb3V0VXMpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIEZsdXNoIGlucHV0IHBvcnQKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kRmx1c2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCB0aW1lb3V0VXMsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRGbHVzaCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwga1BvcnRJbmRleElucHV0KTsKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKmlCdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KKworICAgIC8vIEZsdXNoIG91dHB1dCBwb3J0CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZEZsdXNoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIHRpbWVvdXRVcywgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZEZsdXNoKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KK30KKworUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IHNldFZpZGVvUG9ydEZvcm1hdCgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgT01YX1ZJREVPX0NPRElOR1RZUEUgZUNvbXByZXNzaW9uRm9ybWF0LCBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQsCisgICAgT01YX1UzMiB4RnJhbWVyYXRlKSB7CisgICAgT01YX1UzMiBpbmRleCA9IDA7CisgICAgT01YX1ZJREVPX1BBUkFNX1BPUlRGT1JNQVRUWVBFIHBvcnRGb3JtYXQ7CisgICAgc3RkOjp2ZWN0b3I8T01YX0NPTE9SX0ZPUk1BVFRZUEU+IGFyckNvbG9yRm9ybWF0OworICAgIHN0ZDo6dmVjdG9yPE9NWF9WSURFT19DT0RJTkdUWVBFPiBhcnJDb21wcmVzc2lvbkZvcm1hdDsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHBvcnRGb3JtYXQubkluZGV4ID0gaW5kZXg7CisgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvUG9ydEZvcm1hdCwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnRGb3JtYXQpOworICAgICAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIGJyZWFrOworICAgICAgICBpZiAoZUNvbXByZXNzaW9uRm9ybWF0ID09IE9NWF9WSURFT19Db2RpbmdVbnVzZWQpCisgICAgICAgICAgICBhcnJDb2xvckZvcm1hdC5wdXNoX2JhY2socG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhcnJDb21wcmVzc2lvbkZvcm1hdC5wdXNoX2JhY2socG9ydEZvcm1hdC5lQ29tcHJlc3Npb25Gb3JtYXQpOworICAgICAgICBpbmRleCsrOworICAgICAgICBpZiAoaW5kZXggPT0gNTEyKSB7CisgICAgICAgICAgICAvLyBlbnVtZXJhdGVkIHdheSB0b28gbWFueSBmb3JtYXRzLCBoaWdobHkgdW51c3VhbCBmb3IgdGhpcyB0bworICAgICAgICAgICAgLy8gaGFwcGVuLgorICAgICAgICAgICAgRVhQRUNUX0xFKGluZGV4LCA1MTJVKQorICAgICAgICAgICAgICAgIDw8ICJFeHBlY3RpbmcgT01YX0Vycm9yTm9Nb3JlIGJ1dCBub3QgcmVjZWl2ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFpbmRleCkgcmV0dXJuIHN0YXR1czsKKyAgICBpZiAoZUNvbXByZXNzaW9uRm9ybWF0ID09IE9NWF9WSURFT19Db2RpbmdVbnVzZWQpIHsKKyAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgYXJyQ29sb3JGb3JtYXQuc2l6ZSgpOyBpbmRleCsrKSB7CisgICAgICAgICAgICBpZiAoYXJyQ29sb3JGb3JtYXRbaW5kZXhdID09IGVDb2xvckZvcm1hdCkgeworICAgICAgICAgICAgICAgIHBvcnRGb3JtYXQuZUNvbG9yRm9ybWF0ID0gYXJyQ29sb3JGb3JtYXRbaW5kZXhdOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpbmRleCA9PSBhcnJDb2xvckZvcm1hdC5zaXplKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCJzZXR0aW5nIGRlZmF1bHQgY29sb3IgZm9ybWF0ICV4IiwgKGludClhcnJDb2xvckZvcm1hdFswXSk7CisgICAgICAgICAgICBwb3J0Rm9ybWF0LmVDb2xvckZvcm1hdCA9IGFyckNvbG9yRm9ybWF0WzBdOworICAgICAgICB9CisgICAgICAgIHBvcnRGb3JtYXQuZUNvbXByZXNzaW9uRm9ybWF0ID0gT01YX1ZJREVPX0NvZGluZ1VudXNlZDsKKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBhcnJDb21wcmVzc2lvbkZvcm1hdC5zaXplKCk7IGluZGV4KyspIHsKKyAgICAgICAgICAgIGlmIChhcnJDb21wcmVzc2lvbkZvcm1hdFtpbmRleF0gPT0gZUNvbXByZXNzaW9uRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgcG9ydEZvcm1hdC5lQ29tcHJlc3Npb25Gb3JtYXQgPSBhcnJDb21wcmVzc2lvbkZvcm1hdFtpbmRleF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4ID09IGFyckNvbXByZXNzaW9uRm9ybWF0LnNpemUoKSkgeworICAgICAgICAgICAgQUxPR0UoInNldHRpbmcgZGVmYXVsdCBjb21wcmVzc2lvbiBmb3JtYXQgJXgiLAorICAgICAgICAgICAgICAgICAgKGludClhcnJDb21wcmVzc2lvbkZvcm1hdFswXSk7CisgICAgICAgICAgICBwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCA9IGFyckNvbXByZXNzaW9uRm9ybWF0WzBdOworICAgICAgICB9CisgICAgICAgIHBvcnRGb3JtYXQuZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFVudXNlZDsKKyAgICB9CisgICAgcG9ydEZvcm1hdC5uSW5kZXggPSAwOworICAgIHBvcnRGb3JtYXQueEZyYW1lcmF0ZSA9IHhGcmFtZXJhdGU7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Qb3J0Rm9ybWF0LCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0Rm9ybWF0KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0Um9sZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgY29uc3QgY2hhciogcm9sZSkgeworICAgIE9NWF9QQVJBTV9DT01QT05FTlRST0xFVFlQRSBwYXJhbXM7CisgICAgc3RyY3B5KChjaGFyKilwYXJhbXMuY1JvbGUsIHJvbGUpOworICAgIHJldHVybiBzZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVN0YW5kYXJkQ29tcG9uZW50Um9sZSwgJnBhcmFtcyk7Cit9CisKK3ZvaWQgZW51bWVyYXRlUHJvZmlsZUFuZExldmVsKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+KiBhcnJQcm9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyckxldmVsKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX1BBUkFNX1BST0ZJTEVMRVZFTFRZUEUgcGFyYW07CisgICAgcGFyYW0ublByb2ZpbGVJbmRleCA9IDA7CisgICAgYXJyUHJvZmlsZS0+Y2xlYXIoKTsKKyAgICBhcnJMZXZlbC0+Y2xlYXIoKTsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Qcm9maWxlTGV2ZWxRdWVyeVN1cHBvcnRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIGFyclByb2ZpbGUtPnB1c2hfYmFjayhzdGF0aWNfY2FzdDxpbnQzMl90PihwYXJhbS5lUHJvZmlsZSkpOworICAgICAgICBhcnJMZXZlbC0+cHVzaF9iYWNrKHN0YXRpY19jYXN0PGludDMyX3Q+KHBhcmFtLmVMZXZlbCkpOworICAgICAgICBwYXJhbS5uUHJvZmlsZUluZGV4Kys7CisgICAgICAgIGlmIChwYXJhbS5uUHJvZmlsZUluZGV4ID09IDUxMikgeworICAgICAgICAgICAgLy8gZW51bWVyYXRlZCB3YXkgdG9vIG1hbnksIGhpZ2hseSB1bnVzdWFsIGZvciB0aGlzIHRvIGhhcHBlbi4KKyAgICAgICAgICAgIEVYUEVDVF9MRShwYXJhbS5uUHJvZmlsZUluZGV4LCA1MTJVKQorICAgICAgICAgICAgICAgIDw8ICJFeHBlY3RpbmcgT01YX0Vycm9yTm9Nb3JlIGJ1dCBub3QgcmVjZWl2ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgc2V0dXBSQVdQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgT01YX1UzMiBuRnJhbWVXaWR0aCwKKyAgICAgICAgICAgICAgICAgIE9NWF9VMzIgbkZyYW1lSGVpZ2h0LCBPTVhfVTMyIG5CaXRyYXRlLCBPTVhfVTMyIHhGcmFtZXJhdGUsCisgICAgICAgICAgICAgICAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lV2lkdGggPSBuRnJhbWVXaWR0aDsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVIZWlnaHQgPSBuRnJhbWVIZWlnaHQ7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ublN0cmlkZSA9ICgoKG5GcmFtZVdpZHRoICsgMTUpID4+IDQpIDw8IDQpOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5TbGljZUhlaWdodCA9ICgoKG5GcmFtZUhlaWdodCArIDE1KSA+PiA0KSA8PCA0KTsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5uQml0cmF0ZSA9IG5CaXRyYXRlOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLnhGcmFtZXJhdGUgPSB4RnJhbWVyYXRlOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLmVDb21wcmVzc2lvbkZvcm1hdCA9IE9NWF9WSURFT19Db2RpbmdVbnVzZWQ7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8uZUNvbG9yRm9ybWF0ID0gZUNvbG9yRm9ybWF0OworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cEFWQ1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0FWQ1BST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0FWQ0xFVkVMVFlQRSBlTGV2ZWwsIE9NWF9VMzIgeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9BVkNUWVBFIHBhcmFtOworICAgICh2b2lkKXhGcmFtZXJhdGU7ICAvLyBuZWNlc3NhcnkgZm9yIGludHJhIGZyYW1lIHNwYWNpbmcKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvQXZjLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcGFyYW0ublNsaWNlSGVhZGVyU3BhY2luZyA9IDA7CisgICAgcGFyYW0ublBGcmFtZXMgPSAweEZGRkZGRkZFOworICAgIHBhcmFtLm5CRnJhbWVzID0gMDsKKyAgICBwYXJhbS5iVXNlSGFkYW1hcmQgPSBPTVhfVFJVRTsKKyAgICBwYXJhbS5uUmVmRnJhbWVzID0gMTsKKyAgICBwYXJhbS5lUHJvZmlsZSA9IGVQcm9maWxlOworICAgIHBhcmFtLmVMZXZlbCA9IGVMZXZlbDsKKyAgICBwYXJhbS5uQWxsb3dlZFBpY3R1cmVUeXBlcyA9CisgICAgICAgIE9NWF9WSURFT19QaWN0dXJlVHlwZUkgfCBPTVhfVklERU9fUGljdHVyZVR5cGVQOworICAgIHBhcmFtLmJGcmFtZU1Cc09ubHkgPSBPTVhfVFJVRTsKKyAgICBwYXJhbS5iRW50cm9weUNvZGluZ0NBQkFDID0gT01YX0ZBTFNFOworICAgIHBhcmFtLmJXZWlnaHRlZFBQcmVkaWN0aW9uID0gT01YX0ZBTFNFOworICAgIHBhcmFtLmVMb29wRmlsdGVyTW9kZSA9IE9NWF9WSURFT19BVkNMb29wRmlsdGVyRW5hYmxlOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvQXZjLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBIRVZDUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0hFVkNQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fSEVWQ0xFVkVMVFlQRSBlTGV2ZWwpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fUEFSQU1fSEVWQ1RZUEUgcGFyYW07CisKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1WaWRlb0hldmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwYXJhbS5lUHJvZmlsZSA9IGVQcm9maWxlOworICAgIHBhcmFtLmVMZXZlbCA9IGVMZXZlbDsKKyAgICBwYXJhbS5uS2V5RnJhbWVJbnRlcnZhbCA9IDB4RkZGRkZGRkU7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtVmlkZW9IZXZjLAorICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBNUEVHNFBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fTVBFRzRQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX01QRUc0TEVWRUxUWVBFIGVMZXZlbCwgT01YX1UzMiB4RnJhbWVyYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX1BBUkFNX01QRUc0VFlQRSBwYXJhbTsKKyAgICAodm9pZCl4RnJhbWVyYXRlOyAgLy8gbmVjZXNzYXJ5IGZvciBpbnRyYSBmcmFtZSBzcGFjaW5nCisKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb01wZWc0LCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBwYXJhbS5uU2xpY2VIZWFkZXJTcGFjaW5nID0gMDsKKyAgICBwYXJhbS5iU1ZIID0gT01YX0ZBTFNFOworICAgIHBhcmFtLmJHb3YgPSBPTVhfRkFMU0U7CisgICAgcGFyYW0ublBGcmFtZXMgPSAweEZGRkZGRkZFOworICAgIHBhcmFtLm5CRnJhbWVzID0gMDsKKyAgICBwYXJhbS5uSURDVkxDVGhyZXNob2xkID0gMDsKKyAgICBwYXJhbS5iQUNQcmVkID0gT01YX1RSVUU7CisgICAgcGFyYW0ubk1heFBhY2tldFNpemUgPSAyNTY7CisgICAgcGFyYW0uZVByb2ZpbGUgPSBlUHJvZmlsZTsKKyAgICBwYXJhbS5lTGV2ZWwgPSBlTGV2ZWw7CisgICAgcGFyYW0ubkFsbG93ZWRQaWN0dXJlVHlwZXMgPQorICAgICAgICBPTVhfVklERU9fUGljdHVyZVR5cGVJIHwgT01YX1ZJREVPX1BpY3R1cmVUeXBlUDsKKyAgICBwYXJhbS5uSGVhZGVyRXh0ZW5zaW9uID0gMDsKKyAgICBwYXJhbS5iUmV2ZXJzaWJsZVZMQyA9IE9NWF9GQUxTRTsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb01wZWc0LCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBIMjYzUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0gyNjNQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fSDI2M0xFVkVMVFlQRSBlTGV2ZWwsIE9NWF9VMzIgeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9IMjYzVFlQRSBwYXJhbTsKKyAgICAodm9pZCl4RnJhbWVyYXRlOyAgLy8gbmVjZXNzYXJ5IGZvciBpbnRyYSBmcmFtZSBzcGFjaW5nCisKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0gyNjMsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBhcmFtLm5QRnJhbWVzID0gMHhGRkZGRkZGRTsKKyAgICBwYXJhbS5uQkZyYW1lcyA9IDA7CisgICAgcGFyYW0uZVByb2ZpbGUgPSBlUHJvZmlsZTsKKyAgICBwYXJhbS5lTGV2ZWwgPSBlTGV2ZWw7CisgICAgcGFyYW0ubkFsbG93ZWRQaWN0dXJlVHlwZXMgPQorICAgICAgICBPTVhfVklERU9fUGljdHVyZVR5cGVJIHwgT01YX1ZJREVPX1BpY3R1cmVUeXBlUDsKKyAgICBwYXJhbS5iUExVU1BUWVBFQWxsb3dlZCA9IE9NWF9GQUxTRTsKKyAgICBwYXJhbS5iRm9yY2VSb3VuZGluZ1R5cGVUb1plcm8gPSBPTVhfRkFMU0U7CisgICAgcGFyYW0ublBpY3R1cmVIZWFkZXJSZXBldGl0aW9uID0gMDsKKyAgICBwYXJhbS5uR09CSGVhZGVySW50ZXJ2YWwgPSAwOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSDI2MywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwVlBYUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9VMzIgeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9BTkRST0lEX1ZQOEVOQ09ERVJUWVBFIHBhcmFtOworICAgICh2b2lkKXhGcmFtZXJhdGU7ICAvLyBuZWNlc3NhcnkgZm9yIGludHJhIGZyYW1lIHNwYWNpbmcKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbVZpZGVvQW5kcm9pZFZwOEVuY29kZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBhcmFtLm5LZXlGcmFtZUludGVydmFsID0gMHhGRkZGRkZGRTsKKyAgICBwYXJhbS5lVGVtcG9yYWxQYXR0ZXJuID0gT01YX1ZJREVPX1ZQWFRlbXBvcmFsTGF5ZXJQYXR0ZXJuTm9uZTsKKyAgICBwYXJhbS5uTWluUXVhbnRpemVyID0gMjsKKyAgICBwYXJhbS5uTWF4UXVhbnRpemVyID0gNjM7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtVmlkZW9BbmRyb2lkVnA4RW5jb2RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwVlA4UG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICBPTVhfVklERU9fVlA4UFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICBPTVhfVklERU9fVlA4TEVWRUxUWVBFIGVMZXZlbCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9WUDhUWVBFIHBhcmFtOworCisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtVmlkZW9WcDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBhcmFtLmVQcm9maWxlID0gZVByb2ZpbGU7CisgICAgcGFyYW0uZUxldmVsID0gZUxldmVsOworICAgIHBhcmFtLmJFcnJvclJlc2lsaWVudE1vZGUgPSBPTVhfVFJVRTsKKyAgICBwYXJhbS5uRENUUGFydGl0aW9ucyA9IDE7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtVmlkZW9WcDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cFZQOVBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOVBST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOUxFVkVMVFlQRSBlTGV2ZWwpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fUEFSQU1fVlA5VFlQRSBwYXJhbTsKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbVZpZGVvVnA5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBwYXJhbS5lUHJvZmlsZSA9IGVQcm9maWxlOworICAgIHBhcmFtLmVMZXZlbCA9IGVMZXZlbDsKKyAgICBwYXJhbS5iRXJyb3JSZXNpbGllbnRNb2RlID0gT01YX1RSVUU7CisgICAgcGFyYW0ublRpbGVSb3dzID0gMTsKKyAgICBwYXJhbS5uVGlsZUNvbHVtbnMgPSAxOworICAgIHBhcmFtLmJFbmFibGVGcmFtZVBhcmFsbGVsRGVjb2RpbmcgPSBPTVhfVFJVRTsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1WaWRlb1ZwOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9tZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmggYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL21lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGY5YWZlCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9tZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmgKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIE1FRElBX1ZJREVPX0hJRExfVEVTVF9DT01NT05fSAorI2RlZmluZSBNRURJQV9WSURFT19ISURMX1RFU1RfQ09NTU9OX0gKKworLyoKKyAqIFJhbmRvbSBJbmRleCB1c2VkIGZvciBtb25rZXkgdGVzdGluZyB3aGlsZSBnZXQvc2V0IHBhcmFtZXRlcnMKKyAqLworI2RlZmluZSBSQU5ET01fSU5ERVggMTcyOQorCisvKgorICogQ29tbW9uIHZpZGVvIHV0aWxzCisgKi8KK3ZvaWQgYWxsb2NhdGVQb3J0QnVmZmVycyhzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIHBvcnRJbmRleCk7CisKK3ZvaWQgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCk7CisKK3ZvaWQgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCk7CisKK3ZvaWQgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcik7CisKK3ZvaWQgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlcik7CisKK3NpemVfdCBnZXRFbXB0eUJ1ZmZlcklEKGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5KTsKKwordm9pZCBkaXNwYXRjaE91dHB1dEJ1ZmZlcihzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCk7CisKK3ZvaWQgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVySW5kZXgsIGludCBieXRlc0NvdW50LCB1aW50MzJfdCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCB0aW1lc3RhbXApOworCit2b2lkIGZsdXNoUG9ydHMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwgaW50NjRfdCB0aW1lb3V0VXMgPSBERUZBVUxUX1RJTUVPVVQpOworCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0VmlkZW9Qb3J0Rm9ybWF0KAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQsIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCwKKyAgICBPTVhfVTMyIHhGcmFtZXJhdGUpOworCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0Um9sZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgY29uc3QgY2hhciogcm9sZSk7CisKK3ZvaWQgZW51bWVyYXRlUHJvZmlsZUFuZExldmVsKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+KiBhcnJQcm9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyckxldmVsKTsKKwordm9pZCBzZXR1cFJBV1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBPTVhfVTMyIG5GcmFtZVdpZHRoLAorICAgICAgICAgICAgICAgICAgT01YX1UzMiBuRnJhbWVIZWlnaHQsIE9NWF9VMzIgbkJpdHJhdGUsIE9NWF9VMzIgeEZyYW1lcmF0ZSwKKyAgICAgICAgICAgICAgICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCk7CisKK3ZvaWQgc2V0dXBBVkNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19BVkNQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19BVkNMRVZFTFRZUEUgZUxldmVsLCBPTVhfVTMyIHhGcmFtZXJhdGUpOworCit2b2lkIHNldHVwSEVWQ1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19IRVZDUFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0hFVkNMRVZFTFRZUEUgZUxldmVsKTsKKwordm9pZCBzZXR1cE1QRUc0UG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19NUEVHNFBST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fTVBFRzRMRVZFTFRZUEUgZUxldmVsLCBPTVhfVTMyIHhGcmFtZXJhdGUpOworCit2b2lkIHNldHVwSDI2M1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19IMjYzUFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0gyNjNMRVZFTFRZUEUgZUxldmVsLCBPTVhfVTMyIHhGcmFtZXJhdGUpOworCit2b2lkIHNldHVwVlBYUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9VMzIgeEZyYW1lcmF0ZSk7CisKK3ZvaWQgc2V0dXBWUDhQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19WUDhQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19WUDhMRVZFTFRZUEUgZUxldmVsKTsKKwordm9pZCBzZXR1cFZQOVBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOVBST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOUxFVkVMVFlQRSBlTGV2ZWwpOworCisjZW5kaWYgIC8vIE1FRElBX1ZJREVPX0hJRExfVEVTVF9DT01NT05fSApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl8zNTJ4Mjg4XzQyMHBfMzBmcHNfMzJmcmFtZXMueXV2IGIvbWVkaWEvcmVzL2JiYl8zNTJ4Mjg4XzQyMHBfMzBmcHNfMzJmcmFtZXMueXV2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1YTNlNGIKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiXzM1MngyODhfNDIwcF8zMGZwc18zMmZyYW1lcy55dXYKQEAgLTAsMCArMSBAQAorysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLS09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs8Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/RERBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nzw7Pjo9Ojo6ODg6Ozs4ODo6Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo+O0Q8PTo8PDk4Ojk6Ojk7PDo6Ozk+PD45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT0zNjY6Ozw4QzxBQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWy8vLzMvLy8vLy8vLy8vLy8vLzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw7OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OR6jZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1svLzMzLy8vLy8vLy8vLy8vKysvLy8vMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2tra29vb2dnZ2dnZ2dna2tra2trY1tfX19fX19fY19jX19fa29ra2tra2trb3Nvb29zc3Nzc3Nzc3dzb29vb2tTT09PT09PT09PT1NTW1dXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZElJTE5AOTk6MztAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTUaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjY2RkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0jYuLi4uLi4uLi4qKiouHgYKCgoKCgoKBgYGBf5HT09PT09PT0tLS0tPT09vi4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOUmJMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7r6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFhSU1NTU1NTU1NTU1NUTUNERERERERDQ0NEQz9d0dPT09PT09LS0tLS0tLf6uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7QEM+Njo3Pj87PUJAOTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0NLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpp5cVldXV1dXV1dXV1dXWFFJSUlJSUlJSUhISEhEYNDT0tLS0tLS0tLS0tLR3+rq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw8PDs+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzc/R0dLS0tLS0tHS0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWFiYmJiYmJejKypqampqampqampqaqjZ2FiYmJiYmJiYmJiYmJcVFRUVFRUVFRUVFRVUWvQ0tLS0tLS0tLS0tLS0d/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk6Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Nzs7Ozs7Ozs7OzczMzM7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs7OzcvMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcXGxsbLzMvMy8zMzMzMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzLy8vLysrKysrKysrLy8rKy8vN1dXV1tbW1tbW1tbW1tXX2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo7ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7OztLTz8/P0tTPz9LU1dTPz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0NHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tXW1tbW1tbX19fX19fX19bW1tbW1tbX19fX19fX19fX19jY19bW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08CazM/Ozs7OztKrnM/Q07mf0dCcgoSKyM/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbW1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTEJAPT08PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK2nKWj1bKXmLW2k7i5r6LSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/OnZyRncOdoqar0pF9fq+w0c7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4+PDw5Nj9CP0I5NjQ4Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqYqtTPz8/Rv5igm7KtyIaZrdXSzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPj8+OjhFQD9COzc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmKrUz8/P07SZlqq4pNujmK3V08CgoNDPz8/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PDk2NDo5ODo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8qgo7/KnKWMp63Yqpmq1M/Pz9Srmn6jj6DYoZit1dWwoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD45PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDUrJuni5ah2aGYrdXUo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbX19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk9Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q07aysqWZqdqhmK7WzZ6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXEopmWm7Tao5iv2MKfodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS09PT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6DH1aKrpJrM2KGZrdqypKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtLQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09PIkY201dSxhMPWuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVaWpbTF9NSkxKVUxGQjw8P0ZFR0tIPTY2Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MjB1dHS0cPV0tHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRExMQD43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHT1NLS0tLV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj09Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRENJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZJRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0FMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhRQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f3+Dg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tva2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREQ+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29ra2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODg5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREU+PDw4Ojg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPDs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5OTo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29ra2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFEPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3F0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h1fHZ9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg2NTQzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tba2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg0NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7Oz4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubi4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTQ2ODg2ODY7Ojk8PT07Ojg2Njg4Ojc2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trq+ztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBGPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2Njg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm6ubm4t7e2tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+cnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NjQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO1tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tbS2tre3trW0tLOztLS1tbS0tLW1tba2tra2tre3t7e3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmZqZl5eXl5eWmZuYmZmZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+QkA/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utrausr7Cxr6+wsrW1tre1tba1tbW1tba1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmpqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura6rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJmam5ycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BBQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytrayrqqelpaWlpaaoqKioqKWnqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDY1NzM4Ojo6Ojo8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OztAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Slpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpaenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqalpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioaCfn56enJycnJ2dnZydnp+goqGio6OjoaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaWoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZmJeXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAP0JCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc1Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCcnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWkpaSlpaaoqKeop6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGho6Ojo6Kjpaampqenp6afm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6Wmpqako6GgoJ+foaGfoKCdmpiYmZucoaSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODk6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/PkFBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+mpp/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6elpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goqKioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6SmpqWlpqempqKdnJ+hn5eRkZCUl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+fn5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3OTk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaampaWjoKChoaCZkpCPlpuZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2dnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSk5KRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU5OTg5PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5qcnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5WSlJicmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJycnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqOjpKSkpKKhoZ6bmpmXobWemZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NjY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpmXmJmcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKCgoKKkoaKioaGgnpybm5uZn6ubnJqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY6NzU2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2goaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaCls6ygoJ+fnpyZmZqam65qdp2dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJuam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn52dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCfppKbq5+goJ6bmpmamaiERH+fnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpuam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpOTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnqCeYpymnp6cmpqbnKGjUUeDoJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5yam5ubm5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODo7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZuapmZdo6CbmpmbnZyudUlMhqCcnJ2cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8Pjk6Ojs+Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmKSAUniimZmanZugpF9WToehnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ybm5ucnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGgoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFxcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PUNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuYmJmgiFtflJqZm5yco49kWkyBop6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbW0xGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiZn5ddXXaXmpydnaKBZFlNfqKenp6dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubmpydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmaYGFggJadnJ6YdGNVToCin5+fnp2eoaCenZ6dnp2dn5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmZn2leW2V/nJyejGpfUFKGnpudnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M+Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qal5NzaGFUdpOXnIdcVlBXipKOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY6Smp6SfaCjlqScbkxPY4aGgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4Ojs/PDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz9ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CEoJ2Of2yWpZWfgIl/X3J/gIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz05OTk3NDg2OTM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE+P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5/gKKLfG5SdZyMjFpxfXx+fXyGjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODk4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfZiad1hPTHCUhoJMYG9xd4iFio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY2jjVUvMD13h3d2QURea22EkImJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KmnGdBWkg7d3lrZ0UvOFtsc5CPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mpr49Lb6F4QXt3Y2JQUFpHYG6KoaGknpuapKekqauurKWkqKuvsbSuqqyus6+srLS0tLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKN4YL/WpkN7jIB1T22OdVJkf6Oop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkp6eZnaSlo6KdYn+9wK93nqOalGVMYXhtUXSVoqKgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dQXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA8Pjw5OTxBQkVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioaKnoaaupqadnmqEnLqPptChmbGoWEysk1Nlj6CeoKCenaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq+roqKGd359cs7JsZunr2tVqrBiWoemn6WioZ2fopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PjxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7e0tbazra6tj4aDbo/NuZWQopd0VG96c257laaqp6OfnqObnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKno6GmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm42Ad3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEI+Qz07OT45QEBAP0JDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K3u7u7ubnBuLS1oIh5ZFmft8CmqJ2Id2txb3h4en2GjpKYnKKlpqulpJihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKempaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgXZ4eXhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz5DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW3wcbMz87Myb6zpJBzZlJEi5eJiYh+eHFuZ2ZsaWtxcnFxcnR8jKnExLuip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWhpKenoZ+dnpaTnKCXmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYWZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PFx9vj49rLvK+kl4h0WVpRQ2l6bG91bmtlZVlXXlhcY2lpaGVgaIm0wMC5qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hnp2loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3b21bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs6PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVejIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxr7N0dXKuaedlIZyXlFUS0RbZl5ka2VhYGhZVFhSVlhZXFhadJm2u6u0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudnJydnJnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkzW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/wsHHy8i3lHVlVVBPVEg+XmteX2ViYF1kYVNWVlVTVFdym6uwqqiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzM2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI8ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO5uMObYUlER0tEPVtlYmFoY2BbY19XUU5PT1V/tLqsrqWkoqekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnZSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcl5ecm5+eo5yelpiXk5acmZmclJadlJaTiXZ5ent3bmtpaHZaZ3N4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6Ozs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTExMLEwa2DT0ZNRTtNW19la2VfW2BZWFJNVH+iqrm1s6upo6GtqqynrZ+stLS/w765uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4yVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dmVmaWpoXmtwbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMzKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCxpZqWEc/P0deY2JqYFpYV1NVdpm2vru8urysraapu7q5t7+ztbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rraussZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWh2aWpqdW55bF5kW1ZgWUxIRDY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8HDxMbJxczQzcfMycLCx8LLy8jHzMnOxcbGvalyUEswWFNVZmFTTk9wqcjIwsTGwLy+tLGwsMG+vsHGwL63tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2tr7WlpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOi5R9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpudnpaco6ChoqSjpKKempmbm5udnpyDfXJ9eHBnYGtqd21pZnZvdGNdY1VXVVRNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODo9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPCwbyRP052folWTG+ky9TFtr+/wL+6ur21s7PAv7m/wrnBt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopycn56joKaZeXp5gHNwZmVnZGtlYmtub29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw8PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzFp3dqg5CYb6nIyMfRwa+9vbi5u7u+uLWxur+0vL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsKempaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaOgmp6gpKKjnKKho6CenJ6eqaWolX16g3huZmFlYmFjZGRqY2dkW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OztAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPTo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Aur/AvLvFvbrAxL+9vq9zZX2Ri4nRxb+/yb+wwb+6t7u+uba4tLi8tb24tbSvs7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhY2Noa2dnamZqXlZWVFlPVExGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdaNt7+7w7W6x7a1uLq8uLm2qqOYjn+Dyb+/u8G+uca9wr+8xbi3t7W4tra8u7m2tLi6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVnb2plbGhZWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/Ed6fMvce3ubettrS3ubO1sbzJw5VLesq+v769vL/Iw8XFvse4tbOzvri5uL67urm8u7q0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucWdxa3RmY25gXFVIS0pESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Yk723x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTWr3R/usjPwsC4rrS0u723ubG9w8qPQ3TNw8K/vr28x8zHx8THvLa1t8G9u7zAw7u/wr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFmbGpvdW94ZGhjXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsbJ0ppxcqvS0czKxLW6v8TIvr60v8DAeVJty8bCvsG8v8PMysfFxsG5vr3Ev8C/wsi9x8bFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0cG1tdGxtb2BjX2JiTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8TQw7q+vMS+t7zAv8nPx8jKysKHcnOjy8zLzcrGwsPLzsG8uL26sXBjYrvIxMDAv8TAysnDw8PDucO+vrnAvcPGwsrOx8a9usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaahn5uCe3qIe21teHxgcWRcX2BgVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9rDvra+wL6+uqacqbK2w7+lenZ4msTHy8jBw8DAycrBv7u5saF9c2qtyMXEv8DBv8vHw8DIwLvCu7m0u7vDw8HN0MrEvbW8u7m/ubq1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp2wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3l0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs8Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEuW2szr22ucC8q35uaG5scoGVmHN3fJe9v8bAucC8vsXEvb24sbCZkH6Am8rCw7y9v7/Dw76/yL2+wLjIvquhoaGmucHJxbiyuLi3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cW9qXGBhWlRRQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbR2gLO9trXCpYdpWl1gTVJbWm5zd4CfuLjCurO7t7u9v7q7u66km5mIkX7AxMO+vL+7u7i2wcK2wLvIrLyturifk5Gbo7e0sLS0tby5vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra8tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z3eG5yYV9nXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmohHiJoK+1nmtlZlZYX0lJTVBTbHeFpbC3vrmytbK7uby2ub60lZynlqFwrsnEwL2/ubOusr27rru7lI/O3Obi0biakoZ/na2vrrO6t7q+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybWBkYlxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fq4h8doygmWBUQ1dWSGFrVk9GSWCNoKuvtrq1tLKsvLm4tbjBvYuZsqOmcqXLwr+5urWupayzsKazuZro49vV19XPuol1amyYrKevtrOyurW7u7u1uLawtcSyvry+vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3Zzb2ReaFldXlNPTkI/SkNBS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7WRgniIj29OSj9jWkFOd4CUa01BXIGwtbO1srSvrLu6uLa5v8Z2hKqfm2Wnv7i1srGtrZ+kp6edq6K9y6uotcrPz8uZdGtscqCkqq2up7Csr7GxrbGurq+5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2dG12amxdXGtVXlxQTkhER01CR05HODY2NTo1Oj04Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHtYRkFOhlpKSlh2jYBjQFKiubO0srCxrbC5uLa7t7q9kKKyrKRzq7Cpq62ro6ignZ6dmJqus1o4S3mqxcrGooCFkoiInqOpqKCmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusayqqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWl1dG9lVWJkWF1ST01JQElTRE5DPTg4NzU6Nzw9Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+xu6qZmZVpTkBSeHFQSUlLZ5uBWUVRrbuxrLOvrqyttraytLWuqaafmpudn6aonqCoqZ+hp5ablpeMrH0yUmhWdK+1sZ6MmqKim5ado6KfnqSgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqaSpq6aprKumoYh5g3x2f3pjeG1uXFFpVVBPR1BNTUNQUkA/Oz40Ojo1Ozo9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqLzCq6S+aUVSnIJRV0lJX0tTjmFkYoCutaqytK6qq6+wsrOtpZ2Rl5OPmKCfoqCco6SfnaiTmZSVi6BjXoaHdFqMo5mbmJ2hpKemnZ6foJyhn6Oop5ynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJaTj4+SkZmQlpWYl5+Ym5qbpJmXlJWanaCdp6iloKOioaOfnKCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fYB1dn1ubHtkaFZTZE5KSEdPU05LTkg8RUA9MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutra6ubq3t7uuqKChqaGqxr/KoVBBcp54T25LS2JldXNgW15wj7GvrrO1qqasrKObmZSNkZWXmJicn6KinJ2knpqklpaWlI+Iboe6v6NjZ5OHlJGOnqOipqKdn6aenZ+jpqieo6afqp2qraqup6iwpaOkpqespqGlopuZnq+orrKrpquqoJuYmJiVk5aak5WWmpabl5iYoZ6cnJeboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GfoKWipqCJfIB+d3l9ZXl5YWJTVmFJSUtMU1VKU1FNOT5BNjc9NjU7Ojw8OTs7ODo8PTs7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NTU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWdo8fHj1dTSWSjXWV+b3JdUGtjW2RfXWuPtLCwuKymoZydmpSYmpmQjpGVkYyOjZOZopyXopiZlpaZiHqkx9bVn09sf4mAg5SamJuro6Gwo5qjpqaqoqGqoqmkqLKrsbKruaimq6erq6isrKehoKOxrrKxtKqyr6OZnJ2eoZibm5qYmZuVlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWooqejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2iCbWVcU1taTVJLT09WTVRNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6rpI16VWlydXVxYnZ2WFdjYGNnWVhXZayurK+nn56ioZeRlJygnJmYkpOfnKGjmp6alp6ZnZaal493n8rasrJnRmZ6eH+DgXuKta+ms6yhra2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7W4s7itsrSkoJ2loKyhoaKhoJqZlpagnJuYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGDf3x4dmp3dV5tW1JhSVJWSEZWV0tDTUg9S0k4RTw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqK6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuioaCkgG6CcGBjWExbU1pNTFBYUkhNTUeXrKqppaCfmpGSlJiYlpaVjIiLjpWdnJ2cnpadmKWdoJqTcIa9slOKdXlxZWlqZV5Qa6y6rLS0sLewrrSppqSlrKm5s7W7w7zDwbe7tquusbi3vK+zsLXBvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaign5+oqKWln52qoqKem5+ooKSnrZmgo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mGhX52cm1pd21obl1YW0NXTkpHTkdDR049Pkw+NTw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqamUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnYpiV15lYFdNUUc+Pj9DQz8+QlF4qK2pqqagnp+ho56fnpudnJSTlZWenpiUhZ2Zn5mpoqygkoJ7iIN6gZClh3NaS19aSUCnwbW5u8DDub27rK6nsa2xwra4wsbAyMrAyr+wubm9uMK+uLS7xsS9w7y4tKqzraqztK+zrqqvo56sqLeyraOwpqGjsLGusKSlrqOhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJra3VycWhXXFFGVUhESlBJP0ZCNEZIOTY8Pjc7PD48PDo6ODk8ODk7ODs6OTs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw8Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5V9YF5lYFFHRD1DP0U8Pzk2Tn+qs6ekpKKgnqWspp+YnZWSmp6ZlYyKhoiGeGyGn6Khqam0kXmMh4eWo6SmiGJua5GugExEt8S/xMjN0MjLw7K3tb6yvsW7vszNxszMzNLHvr/Awr3Hx8K4xMrJxMHHv7q0uru0u7ewtrKru7Kuu7fAu7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5WUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtmWlxGTE1FRFRNRUJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo6Pz89Qj4/NzpBQD08PTg2Njw6PEA/QUFBPpKroKeup6KrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9c2phV05FPklZfHBiQj1cjq6soZmbnJ6emZeXmJONj5eXlI+NkIyCg4J2cnBsb42kq62yp3N2eW5sbIKEe4VZVnmMwKdhbszExMvQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsbGysjPv8nRzcfGycbCvcTBvr6/tb6zrb/Aw8TIxcjEr7+5sri9xMLBu7y8ta6np66ooKKppJqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXVzZWJncm9nX1paRE9NQ0ZRSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6Oz5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOem52Wa2ZdVElEQD9LhZ6lmoSgsq2jnpyfmpiXlJOUl5GQkI2IhISJh4OAgYGAeXFxbmp2obe1mZdvZWZcTVaDgHCQemhvX7SnbJ/Tz8TN1NXY0dfNxsfJzMPFys/K0tfS19LV1tPUyMzHzM3K083O083GycrLwsfMx8nJxr/Ds7PIxcvLzM/Hyr++v73Bx8XMzMnJwMPArrCzqJ6hqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3dqZVdYUkROR0BJUUM+Qj06MjJBPEU8Nzg8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnWNTTEpEQz9CUq3RvbKvppycnKCkoZ2blJSVlIp9eXFsZWJocnBye4WKgHVwbXBybYOsmIuaaVdjWF9kcIBtfo9yT3ObmYDG0NHCz9PW2NXV0svJztDLxs3SydLV19nW2NPW2M3Sys7RzM/RzdPQwMnIy8TMzczP0MbHyLbAy8DSzczQx8rJwMTDyM/N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYWVzY11SXEpLR0FGSUo/O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpaWgoqNbSUBBREFGUHWxr6aalJefnJqgoJ6bnZqViXdpZGFfYGBfXl9fXWFsdXNwb25rcG5yho2LjmJPXFRcYFFmXlhlWk1qd3mH1dHQy9DN09fW09XQz9LT0cnT0cfQ19fY0tjS19nU1szPz8nN0szP0cDHxMnHz87S0dHIzM3Ay83G1M/Nz8jFy8fHyczL1NTR1c/SzNPCucWxpai1rqibqKulnbKosLOsrJOPk46Iio6Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUWBKSkNGQ1NOPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI8Ojw3NDo+PD9APUZBRD2CpJygpZ6lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6up6qooaOsZ0M4PT5EWIKqqJ+XlZeZmpyfnZibnZN9cWVjYl9fYV9eYWBeYWBfYGVtcHBtam1vc3R/e3FrZVRHSVFQR0U9SlBcX3Vbc9XU0MnOzNLW0tHWzc/V1dHF0dPK0NTV1s7T0djX19fMyM7Eys/Nys3AysHJys7P0MzQzs7Mz9DIzNHRy87Lw8rIys3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO/u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSUZGRU1ZRTtAPTMzPDw4Nzg2NTs+QD05PDw4PD45PEA7QDo9OD85ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+ZpaegoKOnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksnxIRkI7Vo2hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYF5fX11cYm1ybm1xcXJxd2lPfo1qUVhLV09LYEBLW1JtYnbR0s7GzczN1MvO0szK1tbQzNDTy8zQ0tPKztHV0tXWysDKwsbNw8nKw83ExsnLy8/Lzs3RztTMx8nQzcnHy8bHwsbKzM7R0cfQz83OzNDFx8G4ub3Ewr3DubKyvrC7w8O1qpiloZiWkZWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTUlRUUI7RD87Njg6ODo7NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9vdo+ajYyXlZCTkZGVlpWQi3tlYmJiYF1eYWNiYF9fYGFhYF9dW11ncXFvcHFtaW5wZn2LemZnW0pWXWM8QVZLYWl3zs3GxMbNytHHys3NxdDSz83M1MrHys7Px8bO0svQz8W6xL/Gyr3Dx8nOxcPIwMfOyMTNy83QycXF0MnGwsbJxb/ByM3MzM/DyszJx8zQxcXIu8fDycnCz8C9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdJSEdJTVVHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KGoamTjY2Wj4WDg4OBfYSEf3NfW15dXmBeYGNkY19dXF5fYGBfW1pcYWtycG1taGdpanaDkZJ9aGhUV2ZQQkVcVlddecrEv8K/wsfJyMjJx7/Ey8XHyszJxMHKycHBy8/Ey8i/ucG8xsi+wMbPy8TAw7vKx8i7ycbFysG+wsvGxcS+xr69wcTGzMbFvL/Kw8XH0sXBycDKysfIxtDDw8bDrsTLx8PKt7+8urOprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdDR0RMREZTQDU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL64vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bV56e52RipKWhnqAhIV/dXh1cnBfWltcYGBiY2RkZWRgW1xeXV5dX1tZWlxhbnFtaWZna2hsf5KdjnNlWltTQUJFT1JTVpHCt7i7ubfAwcHDvb24vL64w8nExsG8xr+3usPIv8HJu7a7u8XDv7zCzsPGvr61wb7Eu73HvMO6tb3GxMLDt8C2tr+/vM3Evba6yLu/vszEwsbDxsnHycbQxsLMx7LHycPOzMDFwr+8srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRkJGSkE5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1q7e0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtbU1dfNys/FycXHwbrFvayup2Bjd4CSi4iLhHh/hoZ/fYN7dHRjXFxdXl9gYmNiYmRlYl1cW1xeXF5dWltcXWdyb2tkY2lpa3KJopJ/ZllRUVNOQDtHTHCgs66ysrKysrq0u7C2r7OusbrBu8DEu7+6tLG6vsC4x7i0vLbBwr24vcbBw7u1r7O1u7+0xbi7tay5vb7AvbG6trC3urPGvbevvL+1t7XFvb7DxsDExsbHzMW/xca7x8u/z8nHw8XBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpHQkRBRUY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJpbZ2+IjoWIiXp4foWGdneBfHNoXV1dXV5gX2BkYV5jZWNfXlxbXlxdXlpbW11fa29sZmNmaGdqdZGPg21fU1hkXU9ERF2VmKOmraqoqqeyrLSvsaetpquyurm1wrm5ua+qtLm6s8G5r8Cxvby7tbvHucO2raqosLLAtri9sLGosrO1u7yrrranrrauvLKwqriwrruuu7i7wMC+usO/xsPFwLzGwcfKuMXHxb/Hw8K5xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMTE1KRUFDP0ZBOzo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc3Sy8PFwcTPxs3Bw8a/xMTDw8rCycq/wLzCurO1tcOvqrGTW2l+koiOj3t4fYmFeXuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWlpaXGNtbWZkZGRmZ2p4h35vaFxjbGlxc4SUl4+SnaSqoaahqairqa+ipZ6prLS1sLy4r7aup623s7O7t7O8r7i5tbK7wbLBr6Wpo6uxs7OovaqrqKusrrW0pqiuoaSwqbOmp6iupqi3rLGzt7q6u7K8vr6+xL+1wcDHyLe+v8W3xMO/u7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlNTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8HLvrvJtr3DvrrKuMHDwrW2vLaxr7W8rqirk2NtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1hXWVxfZWpkYmNhZGRobXp3cXFodH9/aGuTmpCNhpibpKCgnqOjpaWsnpuao6WrsK+2tqavq6aps6uzubC1ta22ubKwurqxtqWgpKCmsaisqbmqpaenqKezraCnpp+cpKWsn5+npKGhsa2trLK1s7Owtby2u8HAsrq+w8GxubnCs8C9wLW4u72+vMLHxMPEv7/EoIR4cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk7Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbq9tqCelZ2gprq2q7Ozu7PEz8nLwsW4t8fAzL+4yre7xbizxbizv8CstryyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYWBeXFtcXFhZWFhYVlhaXV5jYmBjY2NiZWZpdnh0b3yDfFJnjZWKioCUmZyimZydoaOhpZyZoZqdqa6ssLSiqKipq6uktListq+ssrSus7WvsKqfnp+korKkpqq4raKmpqCoraqZn5+emZ2fpZqZo5ycnrCprKiqq6ytsLK4r7i5urC2vLu6q7OyubO9tLeysbW0v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTYzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uci4uL+3ssK0sbu7rLq6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFdXV1dXWFdaXWFiY2NiYmNkZG16cm53fmc9ZYyShoqCkZmaopuXmqGkoKKanZ+Zl6ysrK2woKShrKqmobSvsLGsqK+yp7qzprWgop+co6Kto6Kqtqqio6aepqajlpidl5manaCal52cnZytoayoo6Smrauys6q1sLKrsrm1r6qvsrKzt7Ovqa2usbexura6vb+3s7GUhnp2Zl9mX1tZVlNaVUtbUUxKRUhLSUM9P0JCQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+ynaWjmKWxw7W2va20uMLMyMa/xbbBwMfOt8DDvbO5ubLAtrG5u62yta+fmqSqoJSbkHh/g4R/eG9xdHFoZWRoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVVdgYmNhYWJgYGRmcnBrcntQOVt9jYaMhYyYlpqZkpydpqGcnaWbmpippK2uqZqhobaooJ+tqLWppqetsKS3sKO3oKOcmZmqpqGarbmvo6GknKKgn5OVoZSWlpyZmJaXnJWfqZ6qpKKdo6qqsK2otKyqpq2ysKWrrbOxr7Cvr6eop7KtsbSwu7S6t66jlIJ6d2VfYVdZWFNSVEtNXkxQTEdITUxFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0usKxvre9rZ2np6Kqu8C9wLmutLjBzMjFwsO9xbjIzLLBwsGuvLu1u7y1ubmwsLGqnJqhqpWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtbWVtbWlhWV1dWV1hXV1ZVWmJiYGBhX19gYmdwaW5uOS4wTICJjYeKk5iWmpGbmqOioKSknZudpJ2praSeoKG1pqCgoqeyoaWnpa+lsa2rtZ6gnZWVqaGilK2xsZ+io56emZuTi6CTkZOYmJKXmJiXnqebp6GimqSlpaukpbCnpaKrrK2mqa6vr6uoqqqzpqarr7Sxrry2sbCvn5J7eHNlYlxbXVhOTFFIUmFNVlBPSk5PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTs3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sba9sLyxt6yepaasuLu8wcW6srm1xMnJwMLGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZoKSMinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVlJUUlRfX11eX1xdXWBhaGtrYS4fK0x1hIqFiI6ak5qRl5uhnqmioaGhoqCap6iimJyisKmgoJykqZ2nop6srKqpra2ioaGVmKKanI+rqLCcn6KfnpeZk4qdkY2Sk5WQmJiTnKGjnKShopWgoqSlm6OrpaKkqqSrraWtsqmmpaamtaapqK2ztbS5uq+rrJ6Mc3FwYVtXVlZSR1FPSFpcT1JKVEtTTEVHSkM4Ozs9PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Gtnainr7m5s8DIurXAr8XIzLrByczItcm9sb7Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5QWFxaW1xcXF1cX2JpamI9Kz1MboCHg4eIkpOblZWapKSmpKikp6SglqOropOXo62nn5uYmp+erpmcqrOfpaafo6OhlJSblpaSqamtmpyfoaCblJCMmY2LkY2SjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq6+jrbilo6SirK2qqKuvtLeyvbWzq66YhXV0aVxZWVNVUkZYTFFbWE1VT1BMUVJJT0lCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ojo9Njg6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zMxsW4wM7Px7PEu7e7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFBYWVlZXFtaW11eY25zU0RQW2B8gn2Jho6QmZiUmaakoqqopa2hpZacqZ2Tk6KnpZyXj46Zna2WmKeqmJ+dlKWgnpKRkpGTlaiqpZqYmZ6el46Mi5OFiI2Dj4uRlZGgnqGkmZaflZqhop6Um6WlqKiooLCwprG9p5+jrLSqrqevtLC5tcCxrrCrkX9zdGJXVFVOUkpHVlBSUkxMWE5LTE9TR05LQUNGREM+Qjc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxtri8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5xam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRRTU5NUldYWVhYV1pbW2BqaWZuX25can94iH+KipCTkZejlpqlo6Kom6SVnaKZkIydoZmWloWEkZqjj5WjnJWWlYeimpuTjI6KkJqlp5uVlZeckZOIlI6LgYuNgJCLkpKSoZqgopaUmZiVoqaajZmlp6inoaC0sqizuKGdo7asqq2ksrKmtby0q6yxoop6dG5eTlFRTU9ETk5OUEtGTk5KSk5OUUhNSkFITElIRD85NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4NTg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKqloKmmpLOqorLEtbWys8bFt7rDyszGs6y6vbS4wK+tqbCepq67r62gmpuelZWIfIRuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlJTUFFUUVNVUU5NS0tTV1dWV1dXV1pcYWVZX1xsX154b4N6hICLiYuWm4qVl5+eoJajk56Zk4qEl5mLc4yCfY2WlYWSmZCTjo17mY+cjIKJgIqYoKOekJOYloWOgpR+fnOKjnqQh5OQkJ2bmpqSlpCejqKjjomaoKGjpJuitK+sr62fmKa4pqWwobGunLG7qqmvqZmEeHRkVk1SUFBNQ1NOTFBNQlBRSElOU05JSkpFS01HS0s+ODQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpqWmpqayp6a0wbivtLDJxLi5wM7GvrOtu8GsrcStp6Gmkp2mt62joJGWl5KQfnh/ZldWX2dmaWdobmNpaWZiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOT05PT1BTVFFNTUpHTlNTU1RUU1VYWlxoWFpXaW1lZEVPaYh5jX6FlZCGjoyblZqUlZSRjJSIfpKIXjtWbnuKk4mAjJGMj4aGcouEloF5gXuGlJ2Vg5aOkI+Dhn2TeHFvho1+iYGQjpCYmpmTi5CKnYifmIiIlp6aoaCXp66prampnpats6KlrZmtq5iotKOpraKTf3RuYFtOU1JXTERUSlBMTEZOT0lFTFFNS1BKSU5QR0pKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebegoq2hpqaqoKepp6OqsKintMK5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpmHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtIRkhOUVFMT1JUVVdZYGBUUmJuY0U4N3mNiYd1gI2GgIWIlomUlYmRhYOShHeHfl9JUG13ipGDfYSMioR/f21+f5N3dXZ4hI2acFGNiIqGfH55lHZnd4aIfoqIlYuOkZOXjISKiZWEm42ChJKblp6dlKSjqKmlpZ6bsKqhpKSRpqqWoqqcoaaninduZl5cSFFRU01JVU1TSUxLT0lIRkpOTE1VS1FSUEdKRD03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnp6+sqrW8tri3s8G7tqe5yLi2qKi1tqqyvKeelY5/ipSplpWLf46Eg354cW9YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlOUVNTVVpmXFRgZ1dYUEqIfIyAbHd/e3d/h45+j5mLjniDjX5zfndxbXRwdI2NgHp+iaqEentodnuOcHJteIGLjZJ4e4B7gHdzcpJ4aHWFhISFfJWLiIqNi4B/hIuNgJSEfICPmJSclpGfnameoKGdoKmln52YjaekkqCglp6epIJzaWJdXUpXUFJIS1hST0pNTFJKSkpMUEhMUUxSVU5GSUI9Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZicn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6Rf3eGeHx2cG9qWUtISUhHRUhIUFRUVFdXU1VVVVVWV1hXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE5RUVNWXmJeXGFVZX6NkomKc2ByeXBzeYOLeICYkn5uhI16dHluan2tfHSQin56hpKAfH90ZnV8hmxvaHN8io2IgG16cX1xbXaPcWhxgX6OcESLhYKDhX93eHqMhn2Me3V9jpKPmIuSm5ujlpmdm52eoZyWjYulm46dl46WmJB5b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUU9JT1BMRkQ9Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0tLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rp6mwr7Gru7irur64s6ynm7CnrJuPlpylqaShmJqOhJJ6iY+Li3ZxfG11cWptalhLRkdFQUBDREhMTE1RUU9RU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFellKTk9RVFhcXFtXVneXm7t6a29bc3BodnOCi3V4iINsaYmPdnJ3aGh+gXGWkYqAfZV/SZKZbmd3foJtamRseYWQkoZrc2x8bnJ8hmltcH9zjYmFhnt9fnt3cHV0hoJ5gXlwfI6LipODlpaYmpCTlpaZlp2WjIOJn5KLko2GkJaAb2pvb29ZVlhUUlJZT1JVVFNYVU1PSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYmp+krK+iraqota+urLO/q7zCv6aimpWkmJ6NhIuUoaKYmZGTi3OOeoCGjIZ1b3RscW1la2tZTkRGQ0A8Pj5CRkZHS0tLTE9SUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSk1OT1JWWlFWUlCYeleQX2hvXXZpZ3l0hYRxfYOBcWqWj3JxemhonI5MeYSRiISNZjF2h3JrfX2DdGZldX6EhIWAZmlsdWtwgHxocXF8bpONj3t0fX1xcW92bYN/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW05QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo6VmYuOhXqEkJiVjZGMkIdxh4J0h4yGenBzcW9wZHBnX1RGSUM/PDs5Oj9AQURDRUdJS09RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUtBSFBGXaWpl2ZxbmR1Zmt8e398dn+CgnZvnJFxd35xc5KGNXGcp5yNoKGEooV2cIZ7hnxzjK2NiYFoZ2JqbnJtcIN1aW9YdXCOm5F2bX97fW5ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2OfHRycW1gXF1eXFpZYV9STltaWFdMSElGSUg/Q0FCSD9DRD07Ojc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTAxMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpGBkoeVkZ2kp56vlaW0qa2xrsGyu8HFlo+MlI+AiHxugZCSiYOKh4+FdYODbJWIiHx1eHhteG53ZGpeSVBHPj83NDQ4Ozo7PT5AQkVIS0xMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1NUEw3Q01QUUJGe2l0cnJtdmZwgYF2eH9+e4h6c56Wd3yEf4OYg5qcYIWpnpyLg5COenaHfomIjnOKl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVnaGBbXF5TXGdeV1BUWFtVR0pKRUxHP0ZAREQ/QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTQyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2eppGgq6CxqK/AsrvFupaOkZOHeoZ2a3+LkYN9ioOOjHiDgHOghIp9fYF/cIF+emh3a1JYTEBFMjExMjc2Njg4Ojw+QUVGRkdJS01PUVJTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklLTU5RS0pTWlZORl93fXF/cXRqdYiFdXeEgnqRg3SdloaEjJCTpIysqUiGrK+uioGAlIqBioGEkamHgZiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZHbYB3cnl2aG1rX3Z9goh/h4SLeZScm4mKiJF/enWKdnx4bW93foF1dXNtXF5eXGNkWGdmXFVQUFdZUERMS0ZPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2Nzc4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmEh5GOlZeSlqCdrKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzg0Ll2WcHOjVUZJS0xNT1dfVmlXWFphf4d7inh8eX2KjHmAhIx8lZJ/nZ6VkpmZpKySmbuxprrHw6eLjKGljpOJgZF8cYOen5Gdf3eFhYqPh5BpaHCEgXSMhoSKcoaCd4eAe3aEfG12dWZ/lI6GiIiGh4egqqKWiI6Xf3qBiHp5b2dreH58gHVsZl5aW15qXmFnYFpQTE5XUlFJUEpETkdDSkRDQEREQjw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVvZneCen+Mf4GQjoqamqScoaymqq6wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOhICBjIqCiY2Df4p/bHBqXUJBNC4tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlRSU1NUUlBPSEVCPDg3LzlDPjw8NjMubJOXTVBISkxLSk1VX153Y2JnbI+Pgo+Ii4OGiJODjYuZh5ycj5+moqGpkqe0oafBwq3Hr3i5lJp8jaGemISThYKOoZ+UmZGFioWPmpGWbHB1ioyClYyNjnePhHFthYGKlpGChYhyiKCVhpGJjY+WpLSom4yUooKHkoN9f2tqanyCg4N1Y15lYFtobF1tbF9XS0hOUlBOTExGSVBDRE5GQkNFRkM+Ojk2PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnB2kYZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXmAkoiRkn2KhJiSkIOAgIuMiYaQh4SJhnh4f2dNUj4vLy4sLy4tLzAwMDIxMjU2Nzo/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDc1Mjw/UjVISEhMS01OUV1pgXdtenWSkI6cm5mSmZCckJeapJqjppylqKeos5aqvaq0xsi2yNDPvpugcGmqqZ+Ek5KFnKCam5mmkZGIlaObmnd6fpSYk6GTl5eBlJ57d5WSqrKIjJaefJOdm42RlZijoaW1r5yRmKeGlo+NgIhsc3N9gX5zamJeYmBiaGVgZ2dcUkVKS1BPSUpMRkdNQ0hMRkZDQkdFQjs4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbXxhd419e5OOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Ljo18ioaPkI6BgoCJi4qFkoWDhomBgId2XmJQNTYwLTEvLC4wLy4vLi4wMDE1PkFBTVBSU1FSU1RSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUlNTlBZaX6JcoyClZudqrSwnaelp6OksKetsq6uqrivsbybscOquMnLt8O/t6WisLOsrKqji5aYhKWmoKOXgaaZjaKqqKWIhZSkoaGqoKSpj5uwi5Wjpre6m6Cir5KinKGdj6Khq66rsrShlKSph5mIkomVeXp+hoFpYmldZmNfZGRfZ2dfW09DSUhTTkZIS0ZKR0ZGSEFLRkNGRkI7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2luWHmEdoGThYeCnIORkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GOg4SBi4WGiJKGgoWJh4iHh3FuYUBFNjQ8Mi8xMTAtLCstMC4uND5DQU1VUFJTVVVWVU5bUEdIRDw+PkZIQ0RBNzs8NUM7PUZLSUZIUU5QV32LmH+lm6agp7fAvKWuwLOor7yvtLqyvLK/tLm5orfEp7XIx7W9uLSoo7OtsLGbmZKan4inr6ullHafpJehrLK0mZaqrqivtrqyuqyvtaKxq7G1u7a0rbSfpqeippmor6yxuLe3p5q1qIukjZCSnoZ4goV4W2NmV2djYmRhYWdhW1RKRERMVFBISUlESUdFQUBAS0RCTUc9ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiYld5dXGBk32EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeEgY5/gYmPhn+GiIaKh5F7eG5dV0BETjw2OjQ2QUI3NjQwLzZDSENRW09RVVdVXFdQX1VJS0tBPz5HS0ZFRDs+QDdENz9CSkpFRlZTT16Knaeeq6y4q6+4xcSxt8G6sLC+tLW+sbyutXOvsqS5xKOvxriws7Gzp6S1tqqwoKKWm6KSpbCupq2rp6SYoa20u6Kosrq1vL/Mv8XFvb2zwbe6t762ure4q6uwpK+orL2vvLrBwauYuaeUrY6Xl6mIfYN+bVhlY1lsZmtmV1xkWVZTSUdGTFBHQ0hJQUhEPj9CQkxAP01EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpwfo2EgI6FbnpzeIdiuaGZo4mUlJaSlJONj5eSh4d7hoGNlYqAhIGKenyKh4Z9ioOCi4SWfXh6dWZQXGRHRUw7UWNhW15TRz87SFBEWmNRUVlYWmdZVGBfTFJPREE/SUpIRUVBQEM8RTZCPkhHSkxTWlRdj6ixr7Wywbezt8XJt7m/urWzubi1vLK4sMRfc7CksZqdqryopKirqqOisrWhqqiflZaemKCupaempZ+klKOosbSosrO9tsK+08nJ08bCxczCysPAvby+u7u2tK+4trbCucW9wsevnripoauNpKe1iIGBdGFkY19ZY2BqZ1NYYVZSVUlFRU1KQD5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtKy9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWQc2tycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaKfoOAgnh7i4OHe4t6gYqCl350fXpsZXB1WV5cUGVkYmBlZF1cWFdcTWRtVVJtbV9uX1hnZFRZVUpEQktLSUZISEhHQkk6RD9IS1NUVVxaW5C0u7S5scG6tbXHyLe0uLS3uLG1s7KttLWYY3SnnK1wXqKsm5egopuknqqllJ+fkJOOlZiYqJ6mn56amYOkna2lqrCtuLC9udTRz9fQyszSzM/Nysa/vsHJvMC8wMDExMTJvsfNsqO6sLSumqu3u5iAfG5fYl5bYGNaZGNRXGBTUUpDQUVGRTxARj9BSEI/Qzw6RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVtZaV9vlpKQlG5rb3R1h7SsoaGfi5mcmYyNlZGbkoWKin6IhoyQi4h8gYNzfIqDhXuJdIGKhpV/c3t5bG11e2hyZWlsaWZqamlgZmlpbFptc5atpLyIhmdcb2ddWVlUSEtOUEpLUEtTUUlMQUpGSk9fXmFmaWCWs8Ktta+3ubKvwsSzrrevr7mqsbClqrari7WnnJqmmk2ZnYyOn5aRppillYqTk4mQiY+RkZ2boZealZaHn5qnm6yvqbCotLTU1NTW08zQ09XN0s/MxMHJ0L3JycrJ0cbMzcLP0bevw7zDuaS1ucGihHFlXl9fWmJZWmdaUV1YTlBBQkhFQkg7QEM+QUc/P0E3O0M+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWco+QmIJncW94eYOhqp6ml4yam5eLjZWRmo59iYuFjYqKipCHfISCcH+HgYZ7h3KDkouOfXF4dmxweH5xem14c21pgXFtY2ptcHhpd3x+y77B36dtY3huY1thYEpQUlVOWV5PXVxOUE5UUFRUXG5tdoJxlay1qbGkrbOoq7q+r6mzpaO3paqtoKuzoo2wrZmXmIyOkZGEjpuBjaaRnImDi4SLiYSLhJSWmJeUm5Gcl5man5+rrKWooqytz9LV0s7M09TUz9TRzsfD1NHGzdLT09bM0dHE0dbFwM7Hx8KovbbOnnxxaGBkX1hhVF9bUFFUUU9IPkBGQUJFPEBBPkRDPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxVUU1OWnSGhYp3bHdwfX5/oZ6eoYyMmJOTi4yTj5WFeYWPkI2LiYiQhn6Ce3F+gIGHeoR1hZOQiH9vdnNsc317d3tzgnhya4FzcmlwcXp5cnq+y5p9i7GEdnKEdmdhal1DWllbVmVjWGNqU1hcXWBjXWN3en2LgZeoo6OfnZ+mpKmut6mlsqGhrKCiraGmsZ6IppqTkpGJjo2IgZOIapWijJmEgYZ+kYODk5eti5WNlJmOhpKRnpeosKKhoaWkqcnNz8jDzNHV0tTSztPNxtbSzNTY1tbY1NfVydTazcjX19HKq8LCy411cWViYVpWW1RdUUtHSkpKQDs6O0RBRDxCQz5HQj5CQjo8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7T0xGSlhwgHV9aHJ4coKKgJ2VnZSFi5WJjomIjYaOf3iDk5iKjIiIi4h+gnhze32CiHd/eoaRlYCDbndwbXZ/dnh8dIZ8em2HdnRvfXaEdXh7nbWMO0GKxaV+jHxpZVdJQ2ZjZWNnamNtd1teZmhrbmhtgIKHkYqcnZ+ckJaXnaKjpLCjo7GeoaScn6iforGbhZ2RkZKQioqKhoOPg36cm4uNgoSFeZR/gqmVo42SipeSjH6Yi5qSq7OYm5yonKe+w8a5t8fO0tHS0MzSy8jUztDV2tfX2NTZ2M3Y287J2drR1b7Ky7V6eXBnX1tUV1NcWEZHS0lFRT06NzpAQEI5R0Q/RENBQ0I7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjX2XkZ2LfoeSg4mGhImBh3x4hZaWiY6Ch4WHeoR5cXp7g4V1eYWOjZx5i3B8cHB6gHF7gHGDh4Fujnp1d3x8gnV+fIaHr3NYqcK2jZGCcG1iPV5ocnBxcG54doFlaG9ydXhxeYuGjZORmpWflIaLkpqfmpyonqCrmqGZmJ2knZ+rmYqZi4+RjYR7h4eDhIuNn5mTiIOHfmyZeoSZhoiTjI2UjIZ8nImUkK6qlJaYn5mnr7a9qa6+x8zJyszL0MnD0srU19nX2NfV29fT2dvV0Nra0dbI1MqWfH5ra11cUVVUYUpDRkpIPkE+PTc6PT87PUc8P0FBQURBPj86ODdEQjc1NTQ3OS41NTY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEPkNHUmpebWRiZmt2gIhxkZCagHqAjX6CgYGEfoN7fISYjYeLfYWHgHeCeW97e4aBdHmSno6gdo91gnR1gX50gINvgZCCb5KEdXyBhXp2hnuJt8Wkwcm5gZabj3dwZU9mY4F6gXeGopCKeHl2e4N/e4R2bZOWk5SOl5CCiY6VmZaVpJuWnpWdkpGWop2YqpWQkImMkYKLg4iIgYWPkZ2amYiFi4GFl3qIiZ+XkIiNiYuCfaGJkYy8oZiTmJmdqaamrp+otr/AwbnIys7OxM3K0dbV1dnV19vU19na29fb2tnYztvGiH18amxoYlZZV1hOTEVOQzs9PTw4Ojs9OT1ANj0/Pzw+PT05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzOTU1NTY0NTU3SEg9REpFNzkyNTtIPjs5OjdJUF1bUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bIqNknd2eop7fn9+gHyEen2BkYmEhXqEh3t1fXRtfH2Gf3N+kp6RnoKQe4Z+eI9+eYqKboKagHSZhn2BiYV8fpB6j6mOj8OhvYyco519iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CRhIiKkJKUjZyZkpOPlYyLlJ6bk5+UkI2Nj4p+jo2NioOIkpaZnp6Ii5SRnZGBin+lmIiEjYGFhIGlhoqMt5idkZWWoqehnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuHt8e25saFpiXVRRT0lETEI8PD45OTs6OTk7PDY/PT48PTk5OzszN0Q/NzM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw6RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PUNRU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97h3p8e4uGgn10g4V5cnlzbYB+hH53hZyhm52UkX+MiICYiICckm+IqIV6oYt8kY2DiIScfZqQiYyjo6CQpK+gipCLhYuBkoZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlIuGh4uSkouTk5OOi46Jh5WZm46UlZCKkZOFf4qHkYyKiZyWmKGhhpKdlZ+KiYiNm5CDh45/goeGpIWMkbKYnZKVl6Gin5mSnJ2osritpr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19bZ2aBygHdqaV9gWlVYWUNASUM/Pj46NDg6Ozc6OzozOzs/PT43Ozo6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNjem1hfpKDbm13i3h5fnqBfIZ7e3eGhH9zcIWCenV2dnSEgoR+f5Kmo5+lopaKnZCVl4uKp5dzirKNhKiShJmThZmMopWfmJKImp6jk6mwoJCUkI2OiJaMbo23hZrEyLKboaWbnJiWkLGRZKTNyJWOhoeIj5KMjJGTiISJiIWVmJmOj5OShpOWg36Pi5mHjZCqlpaioYiYnpaaiI6Hl5eJhI6MgX+Hj6WJjpOompeTl5mhmZ+Zk52bo7O1pqO8wr7IxcXJyMnCy9TNzdSp0tHW1dbY2tTS2c6FdYNrZmFgYFFLVlxCQkdDO0E9ODM3Ozw6OT02NDk6PDo4Mj85OTI6STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfHxtfYh4en56gYGDfnZ2gIJ7bG6Kfnl8d3h8hIaLfoujtKikq7OhlqegpqSWla+ig5C4lZGzmoyhoIykm6+jpJ2YkKiXqZmusKSXlJWUkIuYmpagwI6jybirmqOlrZmRm5yynYaFqKKcl4WIiI2Ui4qSjoaAhYaIkZeTi4qTkoaTl4WDkI+bc5CYspWWo6CHm5qTj4qQipaaiIqWjYZ9jJieipCQnJqZk5mYn5SgnZSem6GxrqOkuL+0xMfEvcPDv8fOy8nSp8/M09LQ1tjSz9i8dX16YGNYY1lSSUtPRkJDRDU+Ozc2Oj87PDc9NDI2Njk3NzQ9NTs1PEs8Pjs8QkE3NTw7NTI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNXF1ZSmhhO0iEi3p7bYWGeXyEeICEgX1weHx9fG9yjHl9gXt4houJhoSTqLytqbO9sKWus7Spo6KwrYqatZ6juaWVrKOXqa24pqSjn5mpmKqksLGqmZiclJWRl6CXmru7rcqhaba4qrCVmJ6jq5KXvaNeqbKCiYmMlIaQfI6NfIOFjY+Tk4iGkpWLjpWMioyWmJGbmbOWlKqdipuUkYyQkYuYmomRnY+KiZWfoY6VjZeZnZKcmJ6UoaCUnJ2mrqiipLO4q8LIxLW6vbvGyMjC0KHGyc3NxNfW0MrUo3N9bF9dVmJTUUhEPjxDQUE3Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGdIYWBicEpAi4l+gHOHh3yBiXWBioN+bX18fH5wd4d3jYGHe42PjIaMmqvDwLC9xryztMG9tK2ss7eMqLKurr2rm7qjqK25uKunpqKho6Oqr7Kxq52co5mbmJeeoqWlkqO5rqi/u6ytsrmlo6d9iIadrbywgouLipCDj4ORjnqBhpCMjZuHh42WjIqUlpOQmZabp5mwmZCqnI6aj5GOlZCPlZaOkKCQiJWbo6yVlo+UnJ6UoJ2bmJ+glJqfqKekoqOws6bAxsOwsLu2xcXDv82nx8PHw7zW0MzEyop3dmVfXWJeT0xDTEBFRz9BPkI8OjQ+QT09NT02PjMzMzI0MkExN0BCTT5HQENOQ0E9Qzw7ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxpRl9pZ1tdXJOMjIh7h4uGg4x1hZCKgW5+e4F+cX6BepR6kpSVmJCTlqi0xsnAwszCw7nIvbqwq7m7mLK2ubLArqXAo6uwvL2qrqujo56nrK+1saqboKqcopyWn6+zp4yjurq1wbyrqJyypKOolISOqsTDpIKLjoaHhIaVlIx6g4yQjpGgi4uTkI6Hl5+XkpiUlqWfrpyLqZuNlo+RkZSVjZCUkY6hk4aXn5+zn5SblJ+hmqSfmqCboJSYnqekpqekr62lv8PCrqi3tcnDvrbOssS+w7uz0cnIwbV4fHBfW19tVE5JRExMTEpAQT1CRDw1QUQ7OjM9OEIzMzIyNjJBMTVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJoXU1lXGZUY2qajZaKi4iSj4aJeYWTj4FygHuNf3eHgoGPeY2hlqiam5i6vsnIysLSycvCzb3Bs628v6e6v728xLiswamss7y+qrCqpKWjrK61rre2oJ+un6ajmKOzvKmcqLzBo7a3r6uTsKyqrJeGmqqnpZCCjJKklYmAdYmReYSNkY+dn5GOkoqOi5Oil5aalJOhnamekKSZi46Pj5WWiHyOlZKRopqUoKKctqaQn5elpKOln56mmJ6Vl5ulo6ioorKsqLu/w6+ls7fMwLquw7O7vcG5rMLCwb+acXxkXFleXUxNTktHRUNIQUFBREs6NERIOjs0PDdGLjEyMzUyQTI2U0hOPEpCSlFFS0NFRTpFTEI8N0VWPTw9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bEpfWGFaZGVYnpCdjZaOnpKJin+InpKEd4V/lH5/kIiJkICWoJqup6SYxL7IxMjG0s3Ozcu8wriwury0vcu7w8K3tryttL+6vK6vqKGpqLaur6qyuJqerKKoop2rt7eqpa++xLG9ubOnqrSzra6WlaWtqaCRjpKxxaeUjnyRlX2HkZiPqZiXkpKOkpSSpJySnJiToKGhm5iel4qLj46eiFqPlpeSlqSZZpmkn7OllqOVq6yrqJyfppeZlpiVoqSopp61q6m6vMK0prS1y8G4qrass7u4rqi4ury3hG9xXVtXWFBHS1ROSz9BR0RESEZGODVGTTs+Nz5BSy4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZmRNRqaUnJWhl6iVjJCDhqWSiIGHgpqEg5WQkJOOmqGfr76uoci+xcXIx87Oz9LKvry2sbu7vL/PtsS+uLm3s7O2s7i0rKecq6y5q6mor7CYo66lqKSltcCwq6y0vsO5wLizp7i0t7KvlaStsLCli5OUoI1zwZl8lpmEjpaai7CVmZmUkZGZmKSilJ6alZmnnJqgn5iKjI+VnV9KlpyalJmll1SWsJ+vnZ+lla+vraaboaaUk5mYjp2gpqGZtKmqs7y7u6uwssfAuKWrq62xsaOhsrK0pXNyaF9dUVNNRlFRUFE7SEpIRkdBQz05S1Q/QTo9Rk0vNzUzNDpCNDROV048SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzVGQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVc8OkJDQD1SRVdTdGJWRkiql5mfoaiumJGXh4qnlo6IkoSfh4Sdl46doJqjpbXJtanHvMPEycvJyMzOx7+7s6+6ucDCzbXIu8G5trqyr6+0taeknKu0tauqpq6smqStpqWprLq/qKu3t77BwL64srLCsLe8rKOuta26poialqWbdb6fhJicjpKYmouulqCbmpaUmZ6fqJ2mn5iZqZmgpp2Xj4yQnYJtdZKimpWcop+QrrKiq5aqq5irr6WloaWqkpKZnImVnKKelrCmqaq6tr6zsq6+ubago6aopaacnK2pqY1maWRiVE1OSElPSlZMPUxETUlKQENEPFFVPEFBQkVPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQzo5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2e2ZXPDo9Li5TYUxWSH5lXkhGrJSboZ+7rpiUnouSqpuRkpOIqo2Hop6Mo62Uo6S2x720wbvCwsjJxsLOyMK+urKvubXBw8q2xrLBvLW7rKmtrbGko5mqtbunqqesqp2or6ikq6u+u6itvbS3vse8trW4wLC9wLOqtbasv6aPopaQoJ+7noman5mWnZ2Ptp6om6SimpugmaeksaCanaWcp6mcl5OOlJuKloiMpKGUnKKeobWvpaWTsqyaq62fn6Wkq5KWlaCEkJ6fnJWopKGhs7S6tq2otbKynZ2jpZqXlZmqoZ54ZGBiYExJR0hOUUlNRUZGQlFKSEBER0FWU0RIPEFHUTE6Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRKiXpJ6ew6ybl6SXmKiblZmajqqWlaimlaytmaGrt8XBu7+4wcLAyMS/zce8vrqysLi0v8PItsCwvLa6t6ekq6ytoaGbq6vEoqWorKaeq6+toqqovrimrb+wt7fHt7S5uL+xvsG2tLK1sL6klqOVkpqTrZ+QoaKkoqKekL6kqJ2oq5ycoJqln7yil6OeoaiqoJyUjJSdk52GjoSNk56koJ22rKWcl7OnmrCpoJurn6KOmpaghY6hmpySpaSal6uxtrKrpaqtrJyYoKCSjpCWqZ+UaWZcY19RSkhLT01IRURJQD1PSEA7RklIW1JPSz1ITlU0QkY4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLS0wTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9TRjxLeGZjWE6im6ObnsWsoJ6rnZytn5GinpakoKaqq5e3saOqs7bFwr3Atr/BvMnCv8rItri2tLG0tLfCxre/sbi1uragp62rrZ+en6WkwaWhqq6gpKmtsKKmqL21pbG8t7a2xLKzt7q+ssPAt7ittLW1o5yklJGToKyemKGcqKiqoprCrKidq62amp2YpZ+9oZykl6qrq6WgmI2an5KdiI5Xf5aepaGguaunk5m3o5+zoqGcsZihkJuWnoKPoJeXjqKjlZClrrKsqaKipaSVlZ2Yi4+Sk6SfiWNnXGViTkpLS09GRUFHSz49SUE6OEpKTl1RUUk9TFZcOUZJPUVNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExQnp+hmJ7Dp6Wis6CbsaaSqaOfo5+tqaudvLGprLWyyMPBw7PCw73HxL3Fyr2wsbausbWwv8W1urGwuratm6mwqqucnqahqMGtnK2xnKmirrGqpKi9t6a2u72vt8Sts7TCv7LGs7q3q7W2raqipZWUk6KroJ+fmqeqrq+vu7Gln6mpmJiXkqGjuKCgo5Gur6ukpZ2RoJ2UnY6QjJSdmqKfqLWnp42ZtZyjsJugnbCRoZWZlZuBkqKWkI6goJOLpaywpaainaCekpKak4aLko2cn4BkaF1pZ0tKTUpTQUNASUc7O0Y+OTlOTVVfUlNKPk9eXj1IUEJNTUk4TmRcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQTdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wO3ZdXj9bVV9nckA4PEiWd2VBNJ+knpufwqejqbGgo7SplLGqpqKksqytqbuzrbC0tMe/xMO1v8S+ysW2wcnCtqy1qbG4rMDEtLivrba6pZmrsqyrmaGnmK27tJyosJusn660sqirurKnubS3srnBqrezw720xae+rq23tamorKGWlZGlo6Kil5ekrretsbS2n56opJmUlJOjoLaipKWVrbGxpaikoJ2amZmVl6ign5minq+zoqaNmK+apa2Ym6Cnk56QlpqbhpeglI2QnZ6Ti6ipq6GnoJqelo2PmZCChpaJlZ96ZWtebWtOUU5OVD1DQU5DOzpJPzc3UU5dX1JWUUFXYV1CSVNIV0tIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2NaMzM5MDZwW2JIMDVKcWpXRFdGjHlmQzukpJygpb+lqK6uoKm1qZy3r6ujqrS2sbC4t7C3t7jFvMPHvbzDwsjBusLGwruqtqWtu67Bw7i4q66yvKOVrrGus5emqJGquqmhp7CdqqCvtLOrqra1rLuss7K6t6y5sMK6vr+mw6qwt6+pq6umnZiYqqChoJGXoLCus6qwuJmbqp+ZlpKXpp+2qKSioq+ws6uxpqqfm5+fm52lnaGYnaO0sJyfkZSmm6GqnJakopibjJealJaXnpSJkZuZlI6pqKefo5uZm5OHj5mLfYyXho+abGluYm5vWFFSWlRBQ0RVQDs6SUE3OlhQZF5QV1dFWV9eTUxTTl5MSj9aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1ERkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZUAxNzQ3Z1lhRihAOG19aVxWO4l7Y0M9qJ+coam8oaqvqqKwt6iks7Kroay1va6zub27vbe2wcK/ycO5xMPBwbnFvsG5sLaorLeyvL+/taqvsrifl6ytqa+YqamOp7uepa2zn6uisbCzrKq1s7W8ra+xtaywtbLAusW3q72vsbesramisaWepaieo5aPmJ+yqbKpqbKZnaebmpSMoKaktK6noqysrbCnsqqwqaKbnqijnpShmZyot6mYmpOSn5qfoqCSraGbm4iXmoyemp2Ui4+Xl5qXpqWjoJ2WlpaTgJCVhHuPk4SMl2dtcmhxc19HWWZWRENOWERaOUhCNT5dUWhcTlpdSFtfXk5NU1hkSktDXWNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7R0RGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FVMTUxPWBWXzgpQzNZVVxoSzWMemZMQKWaoKSstaOsqKWurbWorrK4pqewt8W3sbe/wcK2tbrFvsvEucPBu8C6xbjBurO0rKq6t7u7vrWrr7G3mZmorKysna2rj6u9nquvsaOpn7Gts6+utrG5tqqtr7KotrC0urzKsqq1tLG0sK+nobOfmqisn6SVlZqZsaKtoKWvlqKkmZmSjKKlp7Kpoaaxq6m0pa6vs66jmJ2tp5uXnpqarLmjmJSRj5mdoZmYla6ioJeDlpuPnp2Zl5GKlJOemqWio6GZlpOSlXuMkIV6jYuDi5Nsbnlvdn1hRmBqWklIWlw9e0pHRTZBY1RpW01cYUtcXVtSUlNiYUxLRWBhYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1hUTEWalp+wqLCprKSjrq21qLayt6Oss7fJu7W7vMC+tbS3w8DMx7zDvbi/wMC4wL2yva6ourq4t8O3rK6yupaXp6+tqKSyqpSvu6SssrKnp6OytLGysbWwt7Oprqyyp7ivtrTDxbaptbWrsK2qp6O2np+nsZ+jlJuYlLGep5ufqY2po52clZelpaS3p6Kxs6unsKetr7SspJigrKicnJ2claq5nJWPj4yZnaKYkZmppaKZhpSYkZ6cmJeXiZeQl5qonaSgkpaSkJV2hJCGe4aDhIyMbnF4dnyAXExlbFxLTmNdPmJ7R0k4R2hXZVtMXmJNWVpXVFhVal1QUEhhXl9QS0dRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3FqTEVEkZikraSsraqlo7Cxs6m2r7Wfq7S5yLquwr3DuLOytcLDzsTAwr61vsHAu7+9tMSpq7qxt7jAvLCttLSeoaexrqamsaWdsbWsqbKwq6iptbqstbK1q7OsqquprKm5rrKwx7+4pLmvqa2tpqetsaWko66jqJydm5qumaOioqOQrJ+joJ+hqaaluKSrtLSkqquprK62rqKdo6iqnKCam5OktJmPio6IkaOhlo+Vn6OXloeQlZWem5mWlYiYk5WZp52hn42TkY6Qd36PhHx9foeKinJ0c39+fVxTY25fTllnXEZElltHOk1uWGJbTmFiT1ZXVldUWWheUVNNY1tbVUtGT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RlOzYqSGRISis6ST8zQ0lTLD6PbEBISZCaqKmhqK+kpqKzs7CztK+woKutvcy7rsG9x7G0rrTCw9HExb/Cs7/Cw7y/uL3FqK23rLS5vcCxrLOuoqSnrqqopbCjqbCqraqxrq6sq7O7p7awsqmzqaumpaSuuqyqscO5tKu5qamoramnsaWppKOtqaiinpuirJWknZeemaydoqeooaymo62st7GwoKmioKqusKydnqeoqZqjmJmQoaiYh4SPi4ufoZCNj5ifk5KIiZOXoZ2WmZaHl5OTl6WcnZ2MkpCNiX9/iIR7d4CHhYd0dHKJd2xfWWBuY1FzclxLO4R8Rj5XdVhhWU9kXE5WVlVXUVxiX1NQT2hZV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTM5ODsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDI9XkswLklnREY4PEIwNUVLWDFAlF1BTkaVlqynoKmxnKeosLWst7StqqSrqr3JvLG/ucOvsa2zxMPNzsO/wLTAw8S6wbTJxKyvt66zusC+tK+vrKeoqrGpp6ixpbOsqq+trbGusq2zu6W4s6yrrqeroKOesbirqq26tqS1taSqp6ysqq2gqKensLGjpqWhoayWqqGTm6CmnqSiqqOsop6msbasrKGlopqpqq6qnKGlpKSZoJmWkJielIKDkImFnaGNjJCOnJKUjoWPmqWbk5KbjJOSkpSjmpyai4+Li3yGgYKBenWBg4F/dXiKooZ4al5gbmZXZYdkTkBnkkxEYnpXYlhSZlVNVlZWVE9cXWFVS09pV1ZWSEpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC4yLCYwN1haLjBKZ0FBPDxDKzpKT140RIdDSklElpCvpKGqr5eop621qrWwqqSrqqi8wcC5urS8taayr8TJy9G/wbu4v8DDusK6wsSusrWytLzBvbOyr62srae2qqatr6q3raewsK6xq7WqtrantberrKSpqZyknrSzqaiks7Sfta2hqqiqqKynn6usqbi1qamqqaGpoK2bkaqhnaCko6ajqp2cprSup6SpoqOXpKanqpyipKOgmpigkY+PmY5/iI2HhJ6eiYaMjJGRk4+FiZejmo6Nm5GSkI+SoJial42LhH90hoJ/fnh1g397eH5/h5yPcHFmZ3F4XGF0iGpPXZhWSG15VWVWU2RQTVZVVVFPWFtiVklQalVXVEdPWFVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UyMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIvMjIlLzNSYzAyP2Y9Tlg/Qyw/TFRfL0lsOFJGO5WMr6CkqquZqaOtrrK0r6mlr6mou7+8wbKwua2itq/Ix8fQwL+9u7zDvrvEwr+/r7Kzsra+vMKxsrSrtKmltamlrbKyt66irLSxr7G5q7iuqa63rKqeqqugo6G2ramhn6+yobSqn6inqqKqoaGsrai9rquuraGnp5+smY+wopiioainnqebmamwqaKeq6GhkqGio6eYmamlmJiZnY+Lh5WIfY6GhIWkl4aDhI2IkZCShoeWoZeIkp6Sk5CNkZ2Vl4+Lhod4dIGAfHR3eYB7dXR7a4KHpHZpXmVsgXVniIx8UlZvXkt4c1RkU1JfTU1TWmdOTVdZZVlHU2lSUj9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytITztZRDOPjbGgpKWpo6SirKazsrCopLCnqri+wbyxqbmqp66wycbH0MO+wL65v8C9ybzBuLGwtbK6vLnAs7S8rLmso7Smpquwtbexpaa5tKyzu6+8pa2ttqutnKmvpJ+krKqonJ6qsqSzqJqrp6qkqJ2iqaeqvaq0sK6dqaSgrpyas6OWpZylpJ+lmpqoq6Wemqihm5GboKSdmZepqpKZmpKQi4OPhX6Pgn+In4+HgX+NiJORkYaDlZuUhZOjjpSRi5Gbk5aHin+AcXp5fXxodnx6dXFyfmqGeYWIZF9nY3KFe21oeV1eVUFXe21UYVBSWUxMTnB0XUlaW2haRlZmUEM+Sk9EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTtGXUAqjZGwmJ6fqKSioauktrGxpKmwpq25wb22saS5rKiosMLIyMzCt72/tbjBuci2wrW1s7Wyvbm6vbavuba/rKKzpqqqrrS2s6ibubuosL6yuqCutLapq5+tsaOcpaipo52bpbCmr6Cfq6mnoambo6igrbynrrCuoaqipK6enq2mmJ+aoaKcn5uZo6qimpqipJWWlJ+hlpuWpayMn5GQkYyCioCAj4B7mpWNin2AjYiSkY2LhpOYkYaUo4uSkYiQmZCUgYl9eWt9dnh4Ynp6cW9xdHhrgnVrgmdjZ2Juc45tYmpvYG9AXHlsVV5OUVJLSk1UWVZNXF5tV0VZYFBeT0hNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl4+I5GWrJiel6eioJ+no7evraGvr6isuMO7tK6gua+rqLS6x8rHv7jBva+0v7fEt8OzsLqxssC2u763qrm4vqqktaeoqa+suK+nmLm7o62+tLSgrbe1p6ansLOgnqWmp6CkmZ6sp6ieoKqvp6CmlqKon7G4n6Sxr6CroayknKanqJqbnJ+jlZybmp2pppabnqiRmJOZnZOZlqGqkZuKjpCHfYd/go59fKGNjYl6hI6GjI6NhoqTmo6IlZ+JkZWCjJeNkn2FfHNwfHFzdF94d2lucXFwa4B0ZXpsZ2VkYmaGgGBbcmpyTU2AaVhaTVFMS0hQU1BHTFtgb1RGWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VcRk89UlpnSCo/MF1cNSiVm6aYm5Wsnp2ho6C2qq+jtLOpqbnFt7OuoLetraywtcXHwLe/wbmwtb23v7u+sKy+sLO/srzCuKq7urinqLWnp6qvqrGupJe7taOqurWvnrG4r6mlp6+xm6GkoKSjoJabr6WhnqKor6GgoZKjpKK3sKGmsaufq6OumJ2qpaifmJudpJOZm5qdpamZm5ullZSXlZyOk5iiqaKRiouQhnqEfoSLeo6Xio6He4OJhIqOj4aQk5iMjpWZi4+XfoaXjJB6gXtwcndub3Ned3dkbGxsa2qFb2dyaWplaV1kc4FgW2t2aVpKf15bWU5PS0hIU1ZHMzheX2xQRVlWWmVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFRdaEQuPDJkVywxlKGhlpSbqpujoaKhtqmtoLu3pay9xbSwr6O2sKysrrTDw7yzvrq2sLO5uLq3uq+uwLOzua+/wLesvbq1paKyqaaosamrsJ+Zv7Skp7S1qJ6yvKmopamvq5mip5yjpZSXoLGkmZ6kqaicoZ+SpKCkuKmkp66nnaShqJOgqaKhoZmbnJ+SmZuWn6Kqm5qYoJSRlZeajZOTpKmkkImKj4Z6hHuEhXydjYqLh3uChYiJipGGl5KSi5CUlI2OlHqDl5CLd358bHRybGtzYHd0aGhqZ2dwh2hoaGRmaWpgamNqaFtme2JgU3RUXFtSTEpHSVBUQCEqaF9pTUVYVV9gTEpIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEaFtKV0dVYGhCMzc5Z1AnMp6ipJGOo6eZnJ6do7Osp6q6tqasw8G4sayjtq6nra62v7+8ssG2sK2ytra4tratqr2zrrKxvL63r7y7saWftamkpLOmqK2dnMCqp6Svs6mstbueqamssKWYnamdpqSRmKWsoZidpKmhm6Gblp+dp7WmsKquoKCdnaGVoKagoqCam5mbkpidk6WdrKGXlp2Uk42VmIuOmJupoJKJiouJeYV2gYKBnYeLg4l+gIaJh4eRhJeUj46PkZGRjJN6g5WPhnN+fmZ5b2pqa2V0c2tiZ2RkdoFjZWZmZWpqY2tyW19ZXWxjYU5pWFpgVkpHSEtNU1c+OV5saEhEVlRdW0lKR0ZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlbTFpKVmJmQDozQmhIJTWao6CPjKuhlpaglqSysaKyvbahscW8urKxo7esqq2puLy6uq3Asa6urravsrizqau5sa+us7W6tbC4vaymnrSpn6Cwoqitm6K/n7CjrrGvt661nq2vra2imZ2mqKWflZqnpZ+YpKKonZqfmpOcnqyvprqorqKhmpuemZ6kmqSdl56Ym5SYn5KolaqnmpOampKMlZmNlJSbqqeOjoqKj3yCc4GBipiFh32JioaGi42Lk4WVm5OSjo+Rlo6Qf4CNjoNvgX9meW1na2lmcHJrXGdjY3SCYmZnam5sZ2pqaW5dbGxycGBUY2ljZlpJRk1NT1hRUFVhZYBVQVdTWVRHSUZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlBMS0rLjM8O0s2MC4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyY0kaGbjY6vnZmToZqpsa+euL+1oLTBu766saa3sKetpLe4t7asu66sqqu3qrO3rqaytbKuqbC1tbCytbmmqJ+0p5ydqKCnq5qnvZeso66wtbWtraCxrbCooZuco6unm5SbpqOdmqmipJWan5uQm6Sqq6q7oKekoJiamZ2hj2uilpmccIKVmaOAdZKpp56UlJ6QiZiagJaKopB5h5SNg21qf3eDcWyGi4Z+hYyHcV9kYWeEmIVrio2UknR3i4R+g5CAZ4eAZ3VoZVdcaHNuTVBpY2dyhWhfZWZubWpdYGGKj4OEZU5LRDlHVGheSkhRUVVVTEhTYXB0ZUZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsLDA4PUc3MDEuKi4qLzU2OCwjMScyMTQ6Mjc2WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoukmYaVsJuak6Cbqqyqo73Frqm3wre9vK2nt7CkqqK3s7GysLmsqaastKWvtKOpt7W1qKertrKttK2zoaifsqmdoaOZpKWYq7mTpaWvs7etr6WqrqqspKGenKCmppuWoKWkm5unpp2Tnp6Xj52oqaS2sKSjopyWmJeXo4ihjpKahqCHkpygf6V/pqqekpKakYiEc3iNjoWIoXaJjWmXiWZ+c3igb4iHhH6PfX+hoKCZgH2HnnOGjnWbimyHgYNtaWVjemxyYVOFbWJsaZhxWGlxb4hZXmlbbGxbiHJuenKFZoaEWl9HTj9HX05GUlZWUVFSV1VnXU1WSVJST0ZIRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiouKC00NTczJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiKp5aDnaudmJidn6qpp6q/w66xury3wL+qpbewqKylsrSurrO2qqiksK2ltLKcrrW2tKanp7KwrLKorZ2poLCnn6OimJ+hmq2yk6OlpbW9pq2nq6qsqKWgn5ifpqOZmKWio5icpKiWk6Kbk5OjpaahuKSkoKOYlZOXk5yIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZzGeXixpbeXZYDAnL95hIV6koR9kJCRynKXu5zFenK1pruQe4Btl7GrsHlobFixrm5labySvG5nem5yj9h+U2tjtrJ+gXOUc5qhqpBXT1diT1ZORlVbWFFQU41dV1tRQV1EUE5FSEk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT46Qjw/QTg6Sj41MioyMkJFLy4zMi4rLygtLzE4Ni0gLzQxNkExPTlXg3cyMVRrXE9bTV5nXD5MMVtdNDEhi6eTgaepn5ecnaWssaiwwr2ytcC1tr7Bq6azrKyopq6zqa62s6anpbSlp7etnLOxtaumpKewraywpqmcpqOvoqCfnZWZnpytq5Odop+zuqOrqaKtrqWhm5qZoaefl5qnn56XnqankZymmZOdoaaiobGjn5+jl5aSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUcK6hpH54u31soZB2sV9qtFulgGWckGFng3tngGt5a6llvnFnpot1sWp7sXh0kpRjbm2nbluEoUVoZoeWRXWcYH5nfKSnglpgjKtogJV4eWqnN0qvXFhTbGRbS09YYFxXVjtOi09XVy9JVFNKREZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MDMuMzNFNC4uNTMvKy8oLjAuOjYvJyQyMDNCLz47VYJ2Mi1WalxPWUxfZ1k6TTVfWDMwG5CilYOtp6Weo6Sqsbestb2+sLbEsbe6waaosKquqKivrqOwuq+jpK2yo6m3p56ysrCjpaGprK6rr6amnaKhr5qhm5aUlpqbrKSVmqGes7OirJyjra2gnZmWn6GonJieo5+bmaGmpI+copmWoJ+qnqemoZqgoZWVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH9rgaZ7goaIk5STd6tna7Fcq3qNhpR0iXKPh4GBiZCXeIKBi5eLg6COg7B2d59xbGxsfItOpFhIYmKZfmNopl95cnVTk4deUaltY3F9hoBinC5RoW9bU2toYExKXGVZXFpCPrJ7WFhBI01oRkNFQUBBMTk+ODg6ODQ7OTk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QEZCQEFEPEZEOzAyMDE7Ri0wLjk0MCwuKC8zLD44MzEfLzItRDE9PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuUoJWHs6amoa+pqLKsqbu2wrC7wa24t7+prK2traWssamgrruqoKezraOqtKOmsrKno6Kepqqxp6+npJ2fn66VnpmUlJSYnaygmZmkqLWvoqqPqqiqm52Ul6Clp5qenKKem5+ipKKVm56XmZ2iqZummpyboqGXk5GSk5yD1ZOZuXCwwX7FhnzWlJu7fJqVpY+NnY2ke46IpIOlg3qseY+dVq96iH6fa7lbuneHhH6mgpR7l3qqeI2dj3qxbo6EdJG8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiFgIl8Y6QzQp12XVBqaWNQQFhoWmRhSkhNcVFcUU9ZZlpDRT9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdIOmFQNzElm6KUmLKoqKa0qqW0qaS8t8Gwub+wtbS6srSnsK+ir7Kln621qJqnuK2ir7Cfs7SwoKSen6apsKizqKObnJ2qlZiXlZaTlqCpnJmWp62wqaOfj62iqJadlZugpaCYoaChoJqhoaeanqGelJiapqCcp5Wbm5+hmJCSlJCdiLJuaLVxq4dujqZytHNytnual6SLj52Non6RoaZ/sXeDkdLSdlyue4V/pG+bqqZrh4V9rX2YmY57sXGSno53s2WXdISeb55nlFHIi1rCXKB5Yl+sYHVzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFQa2BsaFBWR0o5PVVSWldYSUQ/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE/Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1gTDYyMKKdkqSxraOrvK2mtKantbq8srq+trWzubiypLSyoLCxop6rr6OXpritpLGwnLS3qaClnqGppLGnrKmjmZuZp52Vk5eXkJKhp5+Vk6WqsKail5OtoKaSk5+bo6WelZqlpqCaop+tmaGenZCVm6GdnKWVnZWZop6VmJWRm4Wse3eodqONiIapb62KgqeDmJihipKbi6J/k5qJroSAgrNccrNSrn2CgqN/cth+eIZ+j52Gmpl2r4aHkZyHdrRhmmWagoKVbZJasFhLmnWYeWZgrF51d4homIhrXa93lZ6PeGw1eciusl9CVG9eZ2BFUG1gcG1WVk0uZmVpU1lQO0JFQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdCX0g6OTmgnpWgubGXtMKuqLKoqbK6t7O3vri3sbS6tKS3sp6zrJ+fqKuelKe1q6iwsaqts6ObqaCfp6G1pqWpopiclKSgk5Kbl5GUoqSakpCmra+moZaZqaCijpChmaekn5WZpKidnKSerJyhnJ+Mk5+anaGZmZuWl6Kgk5ePpp2GqX19pXihjo2CqnCti4GnhpafoYmYmIijg5KIlKt9gIudeW+xWqiCgoifenTZgHeIdKiBjpuMkqR7lI+fhHqyXp1koH6DlW2SXatbWpOAkX9oZ6pjcXuBa5iHc12rWomgjmtvZU9KQ6FcW0x0XWJnTVthX3FzX0tXN0qcmFhHRT1IR0FNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDUuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSF5CMj84o56ZmsGrl7TCrqusqaa0sLewtb65uLGwtbqourOfr6SdpKamnpOpr6iuqLWrqa6hmKCgpqSjuaGiq6CWmpChn5STnpmTmJ6fkIyMqbCwp56Xm6imoIyRo5enqqaUl6innp6goq2koZ6hjJOhmJ+gkp6XnJWdoZWWjaqcj65tcrRzqYt1iqdztHhzs4CRpKORnY6JpIeQd7hwjXuLomprtlqhhWWXl2mgoqdulHK0dJOZfrJqhZGHrWp1s2GdZqJvh5Nrl12tYE2hfIaSUnOja3l/fm+Yh3Fcr1Y8nHdmVG9uLlynT2NTa2VibVljXWFwe2NUW1M+PW5xM0NCQD9MOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKacm568oZyywK+tq6unt6m3rrW/tLqvrre2qsC1qKmgm6WjoZyRqamntKKyp62poJecp5+kq7idoqyalZiOo6KVjJ2gm5icn5GTlKu2saiZlZysqZeMk6WYpKyikZWqsaOfnqarsZmho5CYopagm5aclqGTnKmclJCqmYfUkpq7c7DDgMOGftWWm7h4iJCYjJiLjKeIeqS2dX53dsKCmrJgg7p5wH12uGO1gYyHqX2VgaupcXt/dLyIp6BpnWGmjq+hfox1h6t9vm9zvHSyg3R4gYpumohxbo2kdL1ed31aYXm8a1pWXGp5XmpgZmdjbXhvWVxaQ0BAdEBDRys0RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgYF9fWlBQUktFRko0SExSQEpORUZPQj1FODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmom56jvaGXssOwramqrLGmt6+2w7C4sK24rq3AsKujop2joZybkKijqrKktKWspJ6VmqqYpqy4nKKtl5SfkKSfkoycop6XnZqRlZOvubKslpikqKeUkJaknKOsnZCfqKuemp+oorOfo6WOp6GUopudmJWjmI+vn5GUqZ6FkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSfwbu9mnuBsahwgHORuYN9h4aNh418ioeNmHyku7m9nHR5tKN0d5d2dLB1mZ5mh2qNtnRycXi2jF5/en2JaIN5bnpji6xwdYV/WFunakVkWlRmYGNeY1FnZ3BsdUNOUUxDOlpNP0syOy8gOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlUnPjs8qJ6hosCllrXEtKyqqKyqqbmusMWts7Kttaa0uKypoaGlnqCdmZOqo6yqpbWnpp+blaCjnaykvKWgqZaTm5Chm5KPoaehkp2XlJiVsrW3rZmepKSii5KRpZukqpuVqKSlm5mhqKanpKqhkq2el6SemJeXnZ6Pr6iTm6WhjWp9aZqld4ZyfZqOdHlkh3u9vsC6b5ODcpaIYXNrWl+bimFjiI+Va2CAlmRunndjlmyBmpWUZV5gYnCZiGlyi32GlWdrf3J0eH1/Ylx4dIFoUF1ug317i2tYa3qCc0pKb4ZwTnRMRVhdZ2FMW1hmY19PW211aXFSUURFTTtHST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTX1Y0KVBfTCgyPVtPJz8yPqmgqKLCo5u1u7airKWup6e0sazHq6+yqrOivbCwpZ+ip52jm5mZq6auo6S0qaSbmJWgmqatqL2nqKSUk5qVn5mSlqSpqJCekZCYnbCzv6ybp56nooiTkamap6Obmqqgo5mao6eso6Cso5uxm5SnoJeVnZ+dlrCkl6CnmJqQm5uhoZekoZmcmZmZj5WBZ219cXeSmJSShoy2q42HmJaOioyYloeUlYuEk5SSiY6TlJmUmJaZn6GZmpOgnI2CeqWFbWt9kH2AdYuKgXGCeHl2dYl/fIlqc4F0g3Vldn13a296bV9kXXBoTVlaZmpfV1pveW1tZlVPRlI5TllNUk8oKzpLQjYzNT1AQTo6Qz48RU5TU1RWV1haWlxcYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODEwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSiw8LUCzobOjwKGksrK3oKmlsqelr7Sqx6qsr6SzpMCns6CdpKSco5WVn6qmrKKjtqufmJaVn5etqaXAnqqjlZGal56YkpOhnp6ip5OSmqmos8Swmqudq5+PlpaonaqcnJ+rmKCam6Kkr6eipqigr5iXp52ZmaCenZyvoJygpZSWkZeTnp+UoZ2XoI6Wk4qKjY6XrpB8lpyDkoKLq6mFgZmXiYSPnoh6hJCIhpqSiIeKlo+bl42Ql52jlZiSkJyNf45nobOvhYqFdnuSin13eXpvZnmPgYGJa3WBeYhzaXN/e3aDhoJqdWR6ZmBqZWNkZmtZa3tvaWpdU0xQRF5URUA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaW19iY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RcUTA1TlsxN0UzW0c1PCxAtKG5sL+sq6+ysaCqp7Ktoqyyr8Svqaqisa28orObn6aioZyYl6elqaWkpbK0npSTnZmZsKWtvqCropCQnZmZlJGVoZyXqJ2Enqyso7TItKCqpKuXlZeapp2omp6jqpOen52gqq+qpqSso6+bn6CgmKSenJ6crqOYnqeSlpabkKKXlqecmpZlgpJ8ZX6NmpBjeY5taGt7kqWramWbmH1nhoplZWloe46ij2xojZiRo3draoqYop6Xc2tteoSOiHpYZl6Gg15tjIqBdlxoc3d2kX+Igm13gXh/c255hHR2iYeOg3xqh1lebHVlXXOJaWt7cGtjX1JOV0lkWEFKND5GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJVV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaWgury6r6y0saqlqK2usKatrLC7sKimo6ytsJ6slp+jnaKZmaaqnK2jpaeosq6elKKPoq+ltbilraKOjZmgmZOSm6CZmaWWfKWvo6i1xbiloqevnpyUnqKeo5uiqKiRnqCdoaqwq6ykq6Gqm6efp5+rlqCbpa+jlpuolZ+cmpGilZypl519vYOIcrRyhJ2GrWh4ucS4cZSjo3qmmZlyq4J8y8DAu3GMo4iDnnyWmImdwL2Blp2djJzBwXyCfJONmsPAfmylsm+MgW/Ken+bdpCDjoF1eYCAeXF6f4dwd4WMk3lteJRiZ2B4ZF9lgmJec2dsZGRZTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUVNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9VQUI7LziWo7nDtbCwwaqolKOvqLCuraWys66ppKWlr6ueqpiaop+cmqqmoZ2roqSopKS0pJyikqWtq7ezp62ikZCYnKWSkKChmJyfnYinraWsrsHAsaGprqmWkp6doZmhoqmjkqCgnZ6sr6uup6SkqKGmpZ2sqJGjmqisqZqcp5qqn5WWo5SfoZWbfs6UeHqkgXmVlptfro9ejqiCo6F8p5abc6uDgK9eY42qe6iHhaB0l5OIs2OCq4agjY2zaoSvdX2XiLdig61ao81ukHZ72nt/mXB9iJJ2fWV6h3Z2a3yHbn2FkJF+bYOQYHFscGhgX3llXHFnamRnYFJUUlddS09ENUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqits6ulsqqrqqKrpq6pn6abmaWYnKKvn6CfqKejpaCesKuanZWmrauwqqirn5SRmp+kko+fpZeep6Ofr6atsanAx7OoqbGulpKdm6GXn6ipnpSgn52drbCprKucqKiloquSq7KWpKGqqZ2ipaSfrp+RmKWXnpmSk5CXoHGFjJd1haiGcbF9nnKsf6KfgaWQn3argn2tf5xzrX+sh4afdpmSe3yXfqqIoYuRi519q3uJlZCggXutV53Fe49wk8F9gZVsdXCMbWV2ZYVvYXducm+JipKOg26TkmZwdXVxYWdtZl9vaGluZ2RXVF1hWlJTQzlKSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08KD0xKTNXQEYhHEc6QzEuK7DTxsays5+coo6joqKsrrauqLGlqKmmraqqp6GjnZmilZ+lq5+hpZ+oqKKenbCsl5qWqaeuq6imp56XlJmjoZKUoa2bnaejr62lrrarus6xraauq5aVnJ2imJ6tq5yWoJmdn6mzq6urnK2rpaOsmq6xoaerraWXpKmnp6+gkJSiopiTkISkaqR1iXqpdHqycIKmipmMcYmgmoakYGFSrIV/roObdq2CqIaFn3uZl4V6ZoCjiaSYhoKjfal+gZaIrl98qVaeo5KBeqOfgHvDrsSLcq+zs7lxYqmvwnRojIyYjoFunJVxb3p4eXBsZmZlcnBmfWpjXVdgalhZVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NSoyUEtMIyBBOUQ0LCfDydbUv6GZq6egrqKer7SwrqmsoqelqaqqqKSmoJuknp2mp6ejnKuZoqyho5+voZ2akquktK6uoKeanZWTpqKRm6KooKCmnbGmpqmyrbfJsrWqq6mWkZycopifpbOcmaCUnZ+nrK2lsJutq6OjqqGyraGpsrChmainrK2zoZGUoaWWmZB7qWyehId1q3l8sG+CpYyJn5aWoJWB0ri0t8mBgbJfYJSpg6WIh6B6mZWaeKrJdJmklKmpkJKbjYCdiprGxnlnoYKldIGfjoJ9r11vtGKwdUujh22nR4KTZI6QnpJ8cZmVgXF7dX58blxmanNxZoFrX2FZZG5cX1lJTU1LRURBQj5BPEI/STs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKSim7K4rKqgpZqopKmrqqefpqaYqqOgr6uepaCsmp6ppZ2ntZ6il5OpqrWxrJuknKCUj6WskZqcp6OhqqeuoqaoqrG1w7Kzqqyok4mXnKSaoaOupZehlZmcpaatnLGerqmnn6uitqygsLiunZqtprCxsKKSlqahmJ6Ngp1OeJqBf596hKN9g6SFh6afnZ+UhLh7fHm5gn/MxsK2eJuhkYuefpqWl4p2n5eKpZekqX+whZ2GoISsfZqVY6ZtpHCPhZCBfJaCcqxgo3JwgJpgvH1SVXSOkqOWe36Uk4x2e3OHgHFdbW54cmqCb1tkX2pvY2VdS01RVEFJSEZJOjlLP0IxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZZWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJz9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmKmrpKq4qq6gm6CssrOlnqCVpa2traqnnKanm6OoobOvo6mnsqCYqKSUorWiopWXoqm0uKOboZyjko+hsZmenKemoaKwrp2mqaO2s8WwramsqZGHkJynnKKknKWWnpiZmqalq5yxoq+lppivpLutobW1rJycs7C2r7CklZyunqKchY/RtcO3eYeOhZGTkICmeZShd4ygkoSlgopxqoaFtW5yaZqknJWKn32YmYaHj3Ovgqabo46mi5Odi5WQm25xsl2ldJN6nGyYf3uZfG2pYaJxcX6fYnOyuGh3j5SmmH2NjpWOen15kINuanlpenNvgXVeZWVvbmZoYEpbWFg8SEhAVTRARj48Kik2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBfXVtaW1hVUlJRRjoyMjMvLysrKEBRUlRVVFNUVldXWFhXVVVVVVFPUVtVJSEyQUgkKSWSc4yKrb2+vLm0npanpK21oaGYlaOnpq2rrJmmo5+moaG2qKOpp7CjlKujjqWto52QmZqqs7OknKOcqJGUl66foJ6npJ2onbaao6uktq3EsKmrqaKMhI6coqCmopWZmZyZm5mnpqiZraivo6WbrKa9rJS8r6ydoa6wt6mwpJinr6GmlnmokH18sHeKgKSliJxtsnChh618oY+DqJWYgKyJha6FoJWqoKKXhp+BmpWAe5J+q4CdmpeLqnedoJKKlJKBeq9epIF9pqdknX98l3Jqr12kanCGmV1gW4ygbZWRppmClY+ajnx8hJqAa26AY390boB6YGdmcW9paGdDWmFbPUtVM1U4QkJDOCQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaV1NQT05JNzA0Mi4qLEFUVlZWVFRVVFVVVFRVVFNUVldXWFZVVVFIRklKIygovZKag6jFwbbAs56arKCtt6WjjpukoqCwsKufpaCerZmfuaGjq6CvqZqtoZCrqKSWiZuQrbCspp6lm62XmI+soaGdpaGapZ2vmaKpp7eqwa+lqKSei4CNm5qfpp6SlJialJuapqWmm6qsraSknqmovqWWwaqpoaCqsLepq6Sesq2mqJd1r36Qi5yFh366rYqZZbCNZZWtfaGPg6eVmoGsioSwhaaapKGikYWhXWxrgbNgf617e4OBsW1nbpmZjYmxW361XKSEa8iiZJ+Ae7tXdrVZsn1SroB6rFeAoW2Xj6ibjJiSmpl8epGgf2R1f2OGeHWBfWJraHJuZ2ZlUFVkXEFWYD5JKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFdaXmBgYGFiXl9cW1hVUE5KR0M1NTMuL0BVWVhXWFdYWFdXV1dWV1dWV1hXV1hZWlpbXFhXV0dCO9KfsrG2vbqzwbKinKympLWooIqaoJ2cs7Oqn6ShnraZobSoqqyesK2eq5yVr6ehjoibj6+rqKahpZmukpiPqJminaWfmqSjppqho6qzqr2vpKienY59i5uVoKCZj5GZm5KamKmgo5qprqilpaKkqLqen8Slo6efqbKzqqyknbmrqquUgKmSo6+Om4CHpJeZkIKAuMO6g46ck4Snl5yCrIqCr4mnnJumq5F+1r3CqmKkv719fqOCg9e7uLWGlpSEnr2+hG2jgm+rhGycgHqysMeDaauwvKx3dqG+vHOAlo6mnZGckpqge4OTnnxjfntlj2d6g3xhbGZta2NRYVtTalxAVWJDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzg7PkFDRUdJS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbOzsL+4sbyyopytpqWypp2LmKXAqriyqKLAp6iznZ+ynbqon66vpaaVlLCrl4yCm5GupaKsoKOcqp+XiqOTp56nnJuhqaSZoKKsrqq6raijm5eSfIiZkaWbko6Ql5mPmJOpmqGZqqmhqqego6q6najDop+soamwsqitp564paysmXN2qqS4hmSJoHBorpGLkG5ud6SQmZ+Bda6ZlHCPi3GWqKSbmK+kc21tbWaLeG9ugplwgXpqcWlnipiWmXJpaoWIZ3GGZF2IYmpvWVxmfXamX2FwjZBuZWV/jJOPoZmZmpOZoX2JkZh3Zoh4aY9se4B6ZW1kaG1jS2RYSmtaO1FmRlEnSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERkhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1dXWV1eXl1cXFxdXl1eXVtbVVdeqZWss6i5uLGzqqmhrZ6jsqqYkr+zxcu+t6ufwa2upKKpraC6o6SurK2ljZauqY+LhZaWrJ6mqqCdpKOgkYukk6eZqZqXpKuil5+npqiwu6usmpuSknyEl42lmI2RkJiUjpiVqJWgmamjm7CmnaKruZ+vv6ejsaSqrq+oq6mltaKstpWKoammt52JlqOZiKqbkZWdkqmzmZqiqqCylqKhnZ+inaGlopWsp42Tk42Hk5yclZGZk5mRj5aGgaWbmZaPjJSUjJCHhH5niX50gnVzh4pwp2x6k4+TkYCBjY6Qj52VopeamaWEiZeRdGuRd3KMeHh9emptZmVwZVVgWUBqW0hkYlBZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVV1leYGFjXV5UUUtFQz45PUBBU1hbXFpXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKaWqamktLWurqKwo62foLWxkI2syL7Gu7qro6afnaefsqqkt6edqbWnp5GYraKLh4mPm6eVrKSfmaifnpKUo5eomqialaeipJGcqJqhtrunqpmakI18gZWLoJSKlZGWkI+Ul6aRoJupoJy1o52mqranrsCtorWkra2uqqemsLafrLqYkaWjp7aikp6noI6qoI6Tn6OrsJqgo7CosJejoJyjqp+enp2XrJ6TmqKclJCWq5qOmZmXkZegkoihnpeVh5ONkY6Vi4F+ZYuFdYZ0d4eCc5xqho6Sk4+JfYuVkpKYlKOUn5mkhYmbin10l3R8jIBzfIBqb2ZfcWpgW2BabmRQYWZRWjpHR0U+Mj0+OS8qJispJh0mMzE2NjU4OT09P0FBQ0lKR0pLTE1TU1RVWmBgaWFlVlBLQUNCOjlFTVZbXl5bWlxbW1tcXV1eX11eX2BhYmJhYWFgYmJiZGJcW2OXlaOmoq+xq66jqaasn6e1qpCQnaS1vbCtraOkm3yfpLOlprGpl5u4pqOUmaqcjoaKiZyij66eopWon6CSlpmbrouqlo+qmqmNmqmQn7m2pKWZnI2IeYGTi5qTipSRk5CNkpejjZ+fqJ6fuKJ/g661oq6udKK7obCedniep6+4k3Sro56Jf6t/ZFxidqCOpZ+EmH1tkrOdoqatqqNlnZ+Sc3mal3GBmamYbX+jqIplnKadkpeYloyTnZGGnpuRloSTiJCQkomFd2qOhnaFcHqFf39gaIeKk5GKWnWUkGdoj49zfKicnGZ7m4qFeplqhoyEcHqAa3FmYHdwbGtpXGZmYmNxVFs+Tk5OU0c+QFVEOjEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVlcYGhmZ1dRSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5WloqCur6urqaWoraKmraWSlau3sbOnm6yorZh0jZ+xoKirp5SXuaCgj5yknpF/iYibnoyrmaKVp6GdjpeSnYV2rY+Jp5yqkpmkipy7s6egmZiLiHV3ko2Wk4mTkZCUjJCUoY+coaeZnLGVgYybtJyzjJKNuaWffaeieaCstH+NjaWeg4uGkLGqr42Ll6SbeoGLrIWcnqGmqKeHlYWYd6WbeoecgZeng4J7nbN6ioahmJqVmJaCkZeXhJuaY3qHkYWPkJKLg21wjod5f3B/gIR9hXOFg5SRd5ZoknSgmnR9mYSjoImYf5WOh4aaa5COh2x5fHJxaGZ5cGpsa1xlbGpndV1eSVRMUkBFNi5bVVU3KSEwOT4+NzQzNDY4Ozo9Pj5AREk/SUVKTEdTWFtZXGJhaGZZUUg5RUw7PmFWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop6lrKyrp6ygp7CmpqmmmZOvycCyopeoqrefkYWfrZynoqCOkL6emo2fmqCQfYaOmZeHq5yilqChkY2TioWAkqeNh6OepZWZnoegurGnnpuSjoVwdpCJlZCKlI+Pm4uPkqCSmKGklp6rh5+0ibSZrYrKhqisiLaFjK+BrquCqIymmI2dfaiPc3t3nI+nl2iVpHm0i6CdpaeSmMKAf6uImKFynoCapX6XhZWzgaF9oZShkJiXgY+UnIuZkox9hZOHjpaSioNtc4+FfnlxhoCDe4N0hICVgI/FZn+ph4+ja56FpJ2FmoGPkYmMmnGQlYZqeXZ8eGhpdnFoaGxeZHBtZ25ZZ0ddUU0zRTU3TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05KSkxDUFpdXFdiXmptXFFFPUtNQEljWF1jZmhnYmJiYmRjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqGer6anqKWrn6S3sKmrp5qVoKOlrKWYpqy5pLCBoqmdpp6dipS8mpONoZKej3qElpaRh6uZm5uaooWOjHeanI+fkIifpZyYmpmIo7mtpJmcjYx+Ym2PipOQjZCMjZeMkJKgj5SgoJmhp36hp4etnZ+VrY+cm5yQhH+gjKishaONqZmMmn+idYGZlGuCrXZNq3iHjZyRmqemgKmrfYOhe3qnap5/kmxnmIaYt4mefm5gZFmDl4CNfGRoi3KZfXmWbF19l25fUnCDXF9reIJfWGSAfIN/lnCnqmuDo25ypXCfhaBqZ6BtXHCOfmdaYISBY1hRcHdmbnZ0bGpwX2txbmxqWWlPXVhGOUE1SEVfbDUsSURSTU49ODQ4NTk7NkA7Oz5CUD5RUkxNQkpcXV9XXV5jdmBNRDpNT05UYVxcZmZpaWJiZGJkZGJhYmBjZGNhY2prZGJkZGdkYmdlYWNol5Wcn7ifqaOmrJGhtbuqrqOZmKGipa2uoZ6wtqSpk6KhoKecmo6ZtJqQi56MlYt1gZSSjYqnlZWZnp9+k4WFrKWHm5CLmqqZm5uSiaaxp6GVmoiJgGluiIeLjo6Ji42Si5CTo4yUn5+boaR/k4GPoqCToHaclI6ngZ+lfoWnqoKleIl8hJp+onBzlIiWfJ+NeW2Gm4yZj5qomY6HnXuConN2pmaefnekX5h6fZR0om6Yt7S6dJOIg4C1qGSBxrh7cJW2jHKAmqNjc6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGCdmrSXc32Yn7N1dFyesoNrY3B1eHJpcFlrbXRzZ11qXmJMRT1ENlJCWnMzPVNHYEpSPTwzOTU6OjZEOztASlA/VU1PUUBFX19bWlhgYHxkSEM4TVdVV2JhWmVma2tiYmVhZGRgYWJgZGNfYGNrbmNjZGRoZGJnZmNoaJOWlKK3mKqbk5+NpLe0raygmqKdpKSmr52cs6+tlJmim6GlmpuVnqubi4iSeYuFcYGWjoqQoI+SlJ6YfZGKjqihh5eOipKklZ2bjYypqKWej5eHhH5qe4Z+fY+NgouQkImPlKGDl56fnJ+ei4l3nJihjJ9xoYqGqYeao42Upah8rYx+eqCZeqOTeIF0loiNnH2Wn4abjpiapYWiZKF8iJaQm41tnmibjm+amXuAi6d+c2l0q4Ofg3SqaJWaXZuFdoWeZ6prgLhmXKhvgZxglYxep3Z1h4h+nWeadYaTkpeOgJ9vmpFvqJpeqX95vGx/qlyOhF20aF1vcnt4bGpccWt6emRgZ1hiQlFGTzdXRFJvNUtbW19OWkRAMTUxPDs3SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5cXllkZlhmZ25tYmJlX2FhX19gYGViXmJkb3FgZGVla2VjaWhna2mVm4ips5qmiGOUm6u6sbCsnqacnKmgn6+cnrKprp+YpZyhoJmXlqCjmYaJjWqJgHJ7l4iLlpaDkZSZkHqLhJWknIqVj4aNn5OenYmQqaOgmoySioCAaYGGeH+WjHqIjo6Ij5abf5Oinp+gk5hyaJ+Jno6LcJKMgKmGl52gpJ6le7Cto6K4l3ejs6OkgImUeZ17q5l+oo6cmpaIl3GhfIWNr7V9a5qRoXl+mbWjpKuohJl8m32em390qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJpcXuObICIg5l1m3iGibGzf4Cbk6d3g55udH6VcJp0a6RelXZIZWRhdHJ/f29mYWxpd3xlZWJRX1deVVdAWkZRaEVUV11iWF5JRD1COEBBOklGOExFWEFXUltXREZiXFpgS2BtfXJFQjxVX2JaZWlWZ2htb2JmZ15hYVxdXmBoYl9lZHZsXWVnZmtkZWxpaWtpk5yAr6yYg1NeoKazubKyqZqjjJysnJ2qlaKtpaOpkKCfnZualpihnZaIh4l3hoJveZWFkZuLfJGTl4hygYmRoZtzkZCBiZqWoZyGj6qcm5WLi4p8g2yEhXGBoYt4hY2Ih5OZlnyTo5+dooithn21hI2dnHullXmpgJSajoiemnunaHdtfpl0oXNyfJ6GmXCTg659o4OlnZiAo29eqGd1omNvpWGc05B9e5l4c3RiooaRf6N0pJB2a4+zjGCCmIlzqrKovH93g21+v6aptF2cbXtwlm1/cqJxXaRnc6ZgaKZtm9SafYabcHt7mGycfXiYc26ppGdhZnpygYVsaGZlb3d4aWFjU1xnUlJiSFhKVWFYVFxma1xlUUVDS01KS0JLRThPQFFOWFNZT1NRYGZlalJkd3l3SUZFY15mWmhqVGloam9jamdgY19dXV1faGJhaWV8ZF5kZ2RrZGpsZmhsaJeaf6+rVFtKfqmvsbOvsqObmYWZqqCipY+mqaGaq4ubmZmUmZOToZiOiIZ7cH2EaH2Pg5WbgXeRjo+Jb3+Gj5OSbJeUfIqTlKWXg4+rm5SSi4aJeYN2iIBugZ+Gd4CShoiZo5d6lKKimZ+Js6Gitot5rKekrqVvqH+ZjYWAmY96pH+hmYaYcp6EpK6vipeMgI2kjZWCraCTdrW2tcmhc5SLgZ9gnpepbXqVh6GcdaKId6B+k5iLgXBNZqOScJqHc6V7eXRhg4FrfaBrcWRfnHF9c5ZoemmztbPGpnKYfXqda5ybq3aFm254eZhqmnx2mXNRRX2zX2p3bHqIZ2toY3V2cW9XX1RZaVFTaUpXTVlUVl5pbG9WZ1dNS0FKTUtIS09CUUtQZWNqbWV0cnN/eXxudYl7e1RRT2xeaVxraVJqaGlsZ2xmY2VfXV1dXmliZGlre19dZGhjamZvbWVpbGWgm4eupYNkP5Ohsqqur7WiopCAmKqio6aNpqifnqeEm5iXjpeQkJyTjoiDemp5h2WDjX+YoHl1j4mMgmmEhZGDjIWdjXqNjJenlISYqpiMkYuCiXqAfYt4cJChhnmClYeJlqCVf5SkppuVlYNmbnicbKJke3Cld5uXcGWmgJSJeqR5n5aDl3Oed4GKlZePuW6RiqJifZiglIhtcmmqa3WgbW+mYJtpi5BploeblnWigX6aYIyGjXVviGJooGWefmmbdW9jZoiBbXGiWV5aYqFsXYiLbXp9c3FkpW14omRnp2iZc4yZcKJwVYmQcKBgZqhVi15UmG5udGxzg25xaWt5dGtwUllXV2ZaVG1KWlBdSVhpaXNqWWtWUVJGVl1MWFNiVWlrX3h0e31wfHxyg3uAc3aNgIR2XlJyYmdicGdQamhobGxuaGRnX11eXWBqYmppdnRdXGNoY2pqc2xma21jnKOXpXlkc2yKpq2jqbCxpp+MgJisnp+njaOinKSjgZaZlI6akIyYkI6Ke4dxgIhoi4t8mZtzdYl+kHtlg4aUiomVmoJ8iYiYqJKBo62RhpCLgop+gICOcmmPpoR9h5ONiZigj4eTqaWciKZ4lZt+pYiWirGXnY+CrpaepHaThXipc6WPhJpupKKMkoSNg7tufaWvg4aFhpOVm598pXpyqJWglmeefm+sZJaKlpN3qG2qooGJdomDeKuRpohrkbBrdrOMqWuKhW1tn56RlF99q4uqdn1+iqSddp98g6SVnaBqm4h4rGifroy2dXi+jaSTWoOnjqthdnN1cnx1cWNrf29obVRXW1ZhYl1sTV1SXkpebW93YFtxWVxgW2d1ZW5vcmJydGB4en55cnmDc4R+gXt7jIGDgHZieGRkbnNkUmtnaG9scmpmaWFfXlxha2JsbHpvXFxiaWJsandtZ2xuYpWkqZuAf52jlqmpnaimraSZioOYrJufpoqcpp6rnoWNm5CHnJGGko2MjXSHe4iEcI2FfpmTdHSGcpGDbn+LkYeFlI99fIOHmaePgKenj4GOiYWVdoKHkm5si6mAg4uUjomcn4mMk6min45/dJOXiH6BeJOuon6BmnCPhXaOiYJ9e3KnjHF+fXqYlpuEkHl7f36HlJWTinaQmJ2gg3t9iWuMhVt5eXJ6cWlufpKKcoB1gY+UlHGHhINljH9ggYCLd3VzlHVveW5th2yDhl51Z3eOZX+AhYynmX10e5VqiYhwgXZ9h3dubmmNdHp8mHiFXGxYeY9pb3hzc3B4eHBdbIdvamhXW2BXXWZrZFdjVV9SYHB5eW1rd2dqa2t3fXJzdXNhb3ZidHuCeHV5gnZ/gICBeYuFg357bn9sZHluXlZuZ2l1a3hqaWllXGBaY2llbHF0blpbYmxkbGx5bmhsb2GOk7anpoqgoZqmo5ilnKuioYSEmK2SnqKKm6ibqpiDgpyMf5eUh46KiY1yg3yPfX6PhHuYj3RyhHGVhXt8kYuGhpCFeX6AiZuljnyooYuFj5CFlYKGjph2coSpho6SnZCJn56IjJqmnp+qg4iNlZp+foiWrKeOkaWPd26bjoF4kG59qIVxfpVxa3B9gqCNgJOOi2hsXIKLi5uano5zlYuIcXRrgnd0gVlyboeRgn5/jGldamV7hoSKgGBpeXube4KLgnWBhYFnd4qGamBvcYB1XnGJgIiOpZOEZYuNg253i4Rxho96cWhpZn2Ee5ZbXWtobnZcfHp4dm90c4NoXW6LbGxjWlpfWlltclxgYlpfXmZ0f3x2cHVka2trfH5zfHl1ZG51aG18fnZ6fHt5eoCBfm+FiYR7fXR+eXN/aVRccWlsdnB1Z2tnZF1hWGpoa2txcm5XW2VubGdzeW9oam1gi4qor6CPoqCZnp2Xnpioo6J+g5mujqCViJ2jkaaVgHyZhn2SmYqJh4eLc36BjHaFi4KEl4pyb4BymIaEfpGDhIaKgXuBhY2coZGDqKKIeI6XiZWKi5yXhIN5rYKRmJqVip6diIigqZ6hoaOKh5ObnKKZlamgpqSekZqFk4t5doyNg6d+f5KQk5SdsqablZ+QjbGSl4Oki4yUmp+JkJuCiJGKa3yOd3hlg4eRi3yJnoSHjJGJiYGFhZB3fHp0mqCJhoqdiYSTfn2KgH90bnOEgX12hYaJjqOPgoSMhoKMkIx9h4yLkYR6boWGfnqZa3NpYXSLcX57d3dwd3WCXV5vh2huYV9aXV1TaXFWZV1dYm1odnx9dG9wZWtqaYB9bnmAcmpwcW1ngXtzgoF4f31/hXptgoyGfHp4e316hHlOZHZqc25wemVrZWNiYFt0ZXBncnFtVl5sdG1oeXpxZ2lrZIyHnLielqGgl5SYmZSYpKCefICarI+fjoahnYyeln55lYR8jpqKh4SEh255gYFzgYh+iZSEbWt+epeHhIOPfoCGhIZ9iIWPnJ+UiKyghHOKkIaSkYuckX2NeqqEjpOYl4+cloeGm6SeoZmchYKSmpmYj5mmn6Scm4+Vfo6HdHqFjYOle32PkJGGmKuhnpSdkI6pjZCAnYuIk5mego+XfoaOg3B4hnJ1YH+EkIZ1jZmBg5CDh4V/hoWVbnl2dJKiioyFmoSDjHN/iXx7cXB6hoJ6doiNg5GkjoSCjoCDiomKd4aJi41+cm6Agn1vaWxuaF56gGh+fXd2d3V8eF1gcX5udWFkW11fUmduVGZcXmJraXd7f3JsbWRramiBf2x0gmxtdXB6cIZ5boeAdoKAfYV2cYKNiH57fHx/fIKLYGh7anVpaYJkamNgaVxkdWhvYnVtbFVjcXllcHp7c2VqbW2LiJ61maCinpKRlZiKmp+fn3t5n6eRnIuHppWMmJl6e42GfYmSg42DgoNufIB5c4CFfouSfWtofYKXiYGIjXx9hoWHfZCDkZ2dk4qpnYFxi4uMkoagoYmFjHynkYmQk5iUlpN4jKKen52VmH6AkJqYkouaoqCimJWQmXyLgnd/go6GoH9+jI2PfJikoqKTmpGQpoyOgZqRiZKWm36Tkn6HjoF1dIJxd2F+gY6GcouXfYmMco1/g4aHj2l4cniMmJGPf5Z+h4lygYZ7e293eomDeXiOi4GUo5KKhI96hoaHhHaDhImJfGh0foF6fHJtbGhffnNpfXZ2dX5zgWtfYXR3cXhlZFlfX1JraVZmWmBhaGp3eoJyZ2xkbGhmgIFrbn5ob3Jsf3mHe2yMgXOBgX6CdHaCjYZ/fHt/gX5/j2lyg250aWGHaGxiX3FWdG9sbmB4aG1XanR2Y3V6e3Jiam96iYyesJGkpJyOj5ePhpygm558d6WhjpiBjaOLiZqWeXyGiH+Din+Jg4F/coB7dHaChX6LkXhnY32Gl4qCiot4fYCOhHmXg5aZmI6XoZx/cIuBkZOFpZuIjYmDppWFk4yXmJKSd5Gdn6CXk5Z5fo6Xl42WmpyjnJeRk5l3jYOBdoOVjZ1+gomNjHOXo5+ilJmPj6GMioKWl4OSlZl+mI18iI2BdnF+bntkgX2LhXGIlICSgmyJhIKBioVmdm97hZGYjHySeIuHe3+Ge3pwfXeIhHiCjoeJlp+UgYKKdoiDg4J3fIOKh3hienp/dX94aG1mYn9qa3h0dXd+cn1kZGFzbnVzbmFaYV9bbWVTZFlhYWlrdnqHcmNrY21maH2CbGl1aW5waYB9gnpukIZyf4ODf3R8g4yBf356goN+fJBtdolzdW1limxqYmJ1VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPm6yWpqeejYyXh4afk5eZfniqnYuZe5iejIyZkHl8gYx+fYR8gYOBeHR6enR9gISAiYuAZF99i5SHf4SGdH1+i4B+mYaXlpmOpaOZgHOHe5OSiaaPjI6KkqCRhJKQlZeRi4GOl56akY+Qcn+NkZOInJyepZeWi5OVcYuLiWuEl4+ZeoiIj4lvl56bpJSVi4yei4WBkZx/kpKVhpmIe4qKgXpxemx1bHx/jH5uhpOElXhwg4R+f4uAZXJqe3+Wl4N+jXSPh4J4hnx0dn58hH97gYqCipKhj3iDgXSJh32AdHWCiYVxY3x2e3J+cGJwZGV8Y29wd3N5eHR1YndgcGx2bnBdXGBeXmteUV5ZY2FpbnR8imxgamVqY2h3h25nbWlrbWiBfXt4b5CIc4CDhX10gYaJe4N9eoKEfX2OcnmKeHhtbIdraF9pcmOHZ3FvZXdnbmxhemlqfXt4cGF4bYuAmJipn6OonYmKkoaKnYuVmX54r5mNl36flJGXlIh3fnyKfXyAd3iAgHB1dHxwhnyBgYp/fGFcfo+RhoCDgnJ6gIh7kJOKk5OelKedlYJ9gX2NipGjiY6KjZiajYaSmZSVjomHi5Gbko6MjG2EkI+RiJ6ZoaCWlIiVj2yGl4JlhJiOk3qJhJCKcJablKOTkomLmYyBf5CefZKOkoyZjnuKhYd0c3ZscW52fYt0b4aSj5NxdYF8goOJfWZxbXl8mZN8g4h0kImAc4d4bX58f4R7g4qGgYuTpot6hnt9ioR3fnFwgYeEZml6dXZxfGNfcWFrdF9xa3t6em1zcWZ6Xm9tc21zWFtfYGJsW1FYWWVjZ3FygIhnXWppZ2JncY1vZGpoZWlpgXp3dm+OhXSBgoN8dYKIhniFfHiEhXp/iXd+i3t7c3iCamtfcGh0gGtyb21yZ29sZXxjboB6dnFsd3eKfqKXoaehppuGi4uBj5yHk512gqyWk46HoY2WlJCAdHx3hXh5f3Nze4Zsc3B7bop2gIGHb3BbWX6RjYeAf392dYGBgaGHkouVnpmilph5in+AjIicnYqPhpKYloWJlZqQlouLi42Lm4mNj4JtiYuQkImclqGblpOEloZogqGBZYSbiZB+i4OLgXeTmZOfkpGJiJSMfn2Ol3uQjI+OmpJ8ioCCb3ZwbG1vcXyGanSEj5mLcXeAdYKJg3pnc251gJmOeoeEeZOQeXWHc2+HeoSKeImEgIaMmaGGe4N1gYp/eHhua4GEg190dXRycnlbX3FhcWtfcGt+fHFubmtud2FwcGtybVlZYmFib1hRVFtmZ2N1cIWDY11rbWRiZmuSbmBnZ19oa4F1cnNwi4B1f4OAeXaAi4B4hX94iIZ3g4V8hox/e3eKf2pxY3xjhnxucW10amhvbHZ4YHF/eXx0dXSAg36klZmsnqeWhI2Ef5eUg5CgdoyglZOGi5uNlo6LenJ4dYJwcoV0cneJbHBudm2IdoN+gG1tVVGBqpSGg3d+d3KEe4OihJSDlpSZnZObeZJ7g4ySo5mTjomVmZKEh5eajJOKiI2OhpyDj4l7couFio6HnJqfmpSTfpJ8ZoOahWaFn4eRhJGCiXGDkJeQnI+PjIuPjHd6kZB6joqMkpaMfIh8gGt2a29rbG17f2F6fpCYgnd7gniDjX16aHRsc4aVin2HhXuSjnF5g292i3mHi3iHfH+Jjpybg3t6doGKfHZwamyChHtheXFvbXN0Vl9wY3JiYG1venJpcGZndXVpcmxid2VdV2ZhYXNUUU9dZ2VeeXCJfWBdaXJiYmZmkWpfaGVbZ3B+cGxxdIp9dn2GgHV2fox5e4WBeIiDc4aFf4yMg3t6lHhmcWuDYIh9b29remBqbnV/dV90fXmHeHRzhX14oI+ZsJyljoKLf4OaiICNn4CMmpSPhYiYjo+PhHd0d3SAcXCFdHByhHBsandug259fW10c1JNgt/IktaSe3B1hXeFooSVeJaSmp2RmnyUc4WQnqGSk5CJk5yUhn+XloiMjYeQjIebfo2Ad3qMfomMiZybnJqUkniMdGWGkIVrh6GEkYiXg4ZjjJGZj5aLl4yNiopxepOIe46IipORiXmFe39tfGVyb2tte3pcgXqRkIF7foCAh497e2lzanOKjoiAhYR8lIpsfn5tf4l9ioZ7g3h/jJKYmIl8dXeDj3hybWdxgIVua3Vwamt2blRfcGVwWmBtc3lobGtjZ3lzcXFkYHhhYFZsYF93UU5MYmdjXXpxinZdXGV2YWJmZY5kYWdiWWlzc25rcneMfXR6hoJ1dn6Lc3+Gf3uJf3KJiIKQiod8fph2ZXNufGWIfm9wbIBZbG55eXNgdnp7jXdzd4p3eZ6Lmq6an5CChXeIlX59i56IhqCSj4WMmISTj4eBdXhweXFvhXBtb39zZWV5cX1teX1qaGtjpJrB3K7woHJsdoV3hqWHk2+YkpeilpyCknKGi6KXiI2VipCdloOBlpCFiY+AkImIlX2GenR/iXeHhI2bmpiYjY51iXVshIeJfImihJGJnISFXouTmIuPiY6LioSJbXuVgX2IhYmRj4Z2hX1+a31keHZrb3lzWIl7koiGen+BgYaMf3pmcml/iY2JgYJ/ipWEa4B1bYaPgI6CfIF4fY2TkJePdHJ3h4x1c3FndXqEY3VucWNrd2hTYXJobFZgb3V6YXNkYGl/cXNvW2RzYWJXblteeU5NTWVnYl53dIpuXF1leV9gZWWFYGNjX1lqc2tua3N4jH50d4SBeHd7iXGDhH1+iXt0i4mIloaLf36Xc2h1cXlsjHtudHGBV3F6dnlyZHd5h4xpd4CKcn+chpinnKOShH1xjJR4eYyehYahjY98lo2AmoiEe3N4cHRqcIJsam19dV9heXd7cXV7Z2BkfOvatcnD3IdybHSDd4udi49rmpGRnpaUgolxhIifjYSLlYqMmJR8jZOIg4iQe4+LhY6Af3V4g4RyiIGTm5aUl4WLdYZ9boOAh4aXoYKTjJ6DiWGDlI+HioaKjYeBh2l8k399g4OJjo2CcYZ+f3F3aHZzanV4bFqNfZKEhn6ChYKFi4N3YXJrh4GOiYB+fpCPfG2Ba3eEjYSQgXqAe32OkI6Uh21weYyFdGtxa3J5gmF1anBebHdhUmVzaWZTYHF3dWFwYV1ohHJ0a1hoaWNpWW5XXHZNS01mZ15ic3SGa1xcZXlfXmRne2FkX11Za29lbmp0eIp+c3SBfnt2eohzhYJ9f4h3doqGj5iBjIJ7k3Vsd3Z5eJN0bnh7fVh6hnF/b2d4d5KCZHaGhnCJloWZoZqiiod0b5KMcXePnX6LmomKfaB/hJqAgXhydG5vZHJ/aWdteHhcYHl7e3FxgGlhZ2F/1baPkaZ3bnF4fXKUko6JbJuQip2TjId7aYeLmIaBkpGGh5iOfI2NgYGJjXuOjH2IhHpzeoN6cIeAlZmOk5KAh3SChHSBfoiRm56GlY+ffohif5OHhYmFi41/f4JnfJCAfn+CjI+Qfm2DfIN1bG13dXR3dmxjjoKQgYZ/fYaAhYmAcF9xb4R7jYqAe36Qh3pwg2V5gYiFioF6hHx9kYyPkYJtbnmLfnVtbmpsfH9kaWxrWm53WVNqc2liUWNzeG1jZl5aa4VvdWNcaF9lbWBvVVxwT0lPZ2ZcaG9ygG1aXGNzYFtjbHdlZV1dWmxtY21qdHeHf3Fwf3x9dHiGeIWCfYCIdXmJgZKVfIiGdoiAb3h5e4OTb257gXdeg390gm1penSUc2dziHxxkZCDmp+boIaIdnaUf213lJh/iJGEi46afYyad312cW9samF1fWdianV6WmB4fHpscH5lY2dnV52PX3J0l77FhXhylouRgHSZjYeelI2Jc2qIj5WAe5SLgYSbjHyKhn18iIx+kod0h4V2dn2BcXWGgZ6UhpSOgoJxfoZzgnqIlpuWhZKNnYCIZn2TgoGGhIqJcoF9Z32Le3l/f4eLj31pgH2EdmZweXhzeHRsa4+Gi4KMgHqDgoSEgGtecHZ6fYuHhHuAjn9+coBod4GGiYSBd4J6fpSKjot8bWt6iHx2dG9oaH54ZV1yY1lxdFRUb3NpYk5odXlnYV5dWHCBcHVaZWNea25hcVBabFNEVGhiWmxvbnxwWltebWNaY293ZGdcXWBramNsaXN3goNxb357f3R1g3qDgnyChnZ+iYGWkHiDinSBh3J5eX6NkG9ve4FxaoJ5en5ubXx2lWtqeIR0a5OMhZ6YoJmFiG99jHZqeZmPgIOLg5aYinmPlm95c3FsamRgdHtpX2Zye1thc316ZnB6YWVkjrGyd0tjWqXb0phzfJONknqAl42GmpKNh29shZKReXmThoCEmYp8h4B5eIiKg5R/bomGcXN9e2p5hoOlkISSjIJ+bn2BdIF3hJmXk4mSj5SFiHB6koR+hIOJg26BeGiAhXhyf3+Diod8ZXx+hHZjcXOAaXpxb3aajYeEjH14eYGFe4NrXG98cn+Gg4h8hId6iHGAbW+ChY2CgnGDd3+WioyCdmxsfYR+dnplaGp/cmFaeFxacm5PWHJ0Z2BLbnd1Yl5cW1l2f3RwWGdeZ2tyYG9PWGlTP1pnX1txa2d6clxbWWxlWWRxeV9oXV5lbGhma2lxd3+Ib2x/foF1cIJ6gIF/g4B2gYWIl4pxgo1xe4V8enmElIx1a3p/bHB+dX9+b3J8e5Nwb4F/eGeRioKhmJ2Sg4Znh4RwZ3qXin+AhYKaioJ8jY1peHJsbGZfYW96bl9jcHldZGyDemBwdl9kZdXrvoszOj6Mj4BzeoeLkY94hZmOgJSPjX9ubYWMi3V8j3+FgpWJfIN4bnaGhYKVdm2HhGt0e3VleYOEp4yDjouCfG1+cnSCeISaj4qPkZKNjId/e5KIeYCFjoNsgHJpgH94bXx8gYqDd2F5hIJyZHFpf252cnWDnY2CgYeAdHZ+gHOBcFtrfHN3iIGJeoZ/fIh4eXBqhoKOgohwgHd9k4iJfXNtanWAgHV1XGlpeXFZV35UW3JmTVtzcmZcSnJ5cV5cW1pddoB2alpiW2hmb2RqTlhnUj5fZlxedmZgdXFbWVVvZFplcXlbaF5gZm1oamtocHh+jm1qgYR/eW6Ae32Bf4J7doKCjJOFcICLbnh9gHt7iJOJgGl7fmp0fHKGe3N3fn+MeniEfnxri4yDm52WjIKAbY1+bGl/j458fn+DlIJ/fYqIa3VxZ2ljW2Nnc29gYmx1YWhwiXphc3NeYmSboJBuXTZbsLZ1a4GLf5SId4iZiHWQjIp3cG2FgoZ0eYl4iX2TiHp/c2d1h318lm5vhX1odnluZXqJhaSHgIaMiX1tfXR9f3uKl4aAk5CYiYuFinyPinF8foZ8aX5ta4B7eWp6d4KHgXJfd4J+cmRyaHaDbnV8hpaTgn6DgXB4enx1f21XbX11c4mAhXaGdYGJendybId/jn+DcX17fJCGh3ltbWhsgoF0blxoZnVyUlx8T11yXU9cc3BkVkt0eWtYWllaYXKBdmJeXWFnZGlqZk9aaU5BYmVcYXdhXHVuWFhTdWJaZW9zWGpfYmhrZ21saXB3fJNsaYSKfX1wf358gX+Ce3eAgIqMhHF7h29yd4N/e4mNj4RqfntueHl2i3d9eICCh4CDfn56bYSMiJijjYWEe3aLeWtthYqSeX58gpKAgH6Lg3BycGNmXlhnX3BwYGFocWZqb4l0YXNvW2FjanZ7f7+dqKXKuXKHhnSVfnqJlYR1ko6HcnNwg3qCc3WGdIh3lIl5eXFjdoV4f5JocYN2ZnZ1Y2p8hIiegn9+jo18cX1ygnd9j46CdpWNlJCIgoh7iYpseXqAdWh7aWx/eXNpenaAg31nYHeHfWtqdGh8gWp2gY2Sln98f39yfXd8dX9iVXV7cXKHgYF7gnCGiXd3b26BgIt9fHd8enOMhIB0Z3Bna4iBcW9daGN0b0xmd01fb1ZVWnRuYlFQdXljU1hYXWJyg3RdYlxpZWVkbGVRXHFJRGViXGRyX114aFVXVnheW2ZuaVdsXmFqZ2Vvbmlwd3qTbmmIjHl+c3t+eYKBgnx2fYOIhoNwd4NzbneCgn6Ji5R/cYB8eHp6gYt1g3h/gYGChHqAdW59iYubnoh+hnt3h3xodYeNkXp/gHyKhoR3j4BncG5gZVxYZVpuc2FhYXFtbGiJbmBzaVheY22Ad6naqciHiLNzi3pxj3d9iZGCe5SLgHV0dX12f29wf26FdJSGeHVsYHmAeIeNZHGCbmd1bVttfYGQk4CAeJKRfHd6bIVzfY+Kg3KVipGPiIaGe3+GbnV3f21od2VtfHZta3d3f398YGJ4hnpodXZjfnxodYePjpd9doF3coB7fW6AWlZxfG9zgYV9f3driIZzeGpzfoKCfHl7d3pxiX96cmZyZGyLg2xzWmpgdmZJb29NXWNYV1Z5bmJQU3V3WlFWWF5hc4VwXWFjbmVkXm9jVV5zR0NnYF5naV1afGNSVl12W1tnbGJXa2BhbmZmbHBocHZ4j3Rrjo12f3d4fXeBhIF8dX2DiIiDb3F/dXF1foWBiY2Le3d/eIR8fYWHeIh8fYF9hIB7fnJ1eIuOn4yJe4p3dYN6Xn6Hmo15h4R0hoeFd4l7Ym5tXGJbW2FWanRkYVxob3Bnh3FhcWZXXGNrf3zKzoe6omtub4xuc4ZzfoaMgHuShXp5dHl0dHpqbHZjhHaSgnZwZ158gHiKh2RxgGpqcWNYbXuGnIiCgXKXk3Z9em2Gb3+IioZwlo6QiIaMhHt5f3JycH5naHJjbnhxamxyeH18eV1keYB4aXV5Z4J3aHWIjI+WfnOIa3B/gHlufV1Xb3xscn2IeoBtbomAcHZmdn5/foB0em95coV6d3BkcWBtjIFrcldrX3ldSXBsTlhWX1RVfGtiT1R2c1JSVFdeY3aGal5ha2tmY1pvYllkcUhBaV1hZ19cVnxeT1ZmcVpbamhdWGhhX3JmamhxZ3Fzdod5bpSKdX97eH55g4iAdXR/hoWOg3Bve3h3dXqGhYaMhnp8f3WLf32GhISHf35+fYZ/fHh2eXaRlJ9+jX2LbnWAemSEiJiGc5KLcIWFgnqDdWNuallgWl1eVGhzZWFZZHJyZ4FyYWtlV1pfaX94vq57oLduY3WIaXZ9c3uFiHt+jYB3eHN3bnp2ZWpvYId1joFzamJefXZ4ioJlcH1na2taVm94i6OBhX9wmZJwf3ZzgGx+gI+GcpSIjYiFiYV9eXVzcGl6YWptYW12amdra3l3endaZn19eGVyfm6FdGZ2ho2Hl4BxjGhse4N1bXViW216anJ5iXqAZXSGfW1wZ3R9dn1+cHpqeXl/d3ZvZGtgbIp9bG1VamB4VkxsbVBTUGhOWX1oYk9VdmxNUVRVX2h3hGdeYXFpZ2BXal1dbGpKRWtbY2VXWVZ6Wk5Xb2tZXWxlXFplY151ZmxlcWdzcHSBeHCZhXZ/f3h/fIaHfXZ0goiAlYNuc3l7e3NzhYaIiIR5gX12j399hYmOhIGDen6Lg3t3fHZ2mZ2YeoqDh2p2fn1thYWVgXKPgnGGgn6CgHBmbGdYXVpcW1RlcWVfWGNzdWl2cGVlY1dbW2h/cG9ygHOKZWZ6gGt2d3R1hYZ4goV6d3R2bmp6cGFoa2eGdI2EbmZeXntteYh8Z2x3ZmpkVVdzcI6mfIR7dpaPc3txenhseXmPg3WXfIiGhIeEfXVxc21odV1taWBsdWRnZ2l6b3tyWWeBdnVocIB4gnZid4WLfZaCb4xsbnyBcWZzZWBqeGZwdYh5fGF0g3Zpa3BzeW95eHJ7ZX19fXZ1bWJkYGyGfGxqVWliclRMa2xQTU9wSF58ZmFOVnVlS09TWGJseH9mXmdza2VgV2RYY3JeTExsWGRiVVRWdFdNWXdlWl9sYVxbZGVfdmdtYnBqdG9xfnV0mYF4f4B4gH6GhHp9doKDfpiFbnJ0fHt0cYWFj4KAeot2dJGAfIGVjoGFhHx+jIZ6foB2eqOminmJhoVsdX18doSDjXtvhnN6hX2Cg3VvamllVl1bW1pTY29lW1lhdHtqaG1oYGFYXlppgGlsb4BobWJpe3prdXV1cIeCeoF+d3ZuemhqeWpfZW5ogXeQhGdlWGF2aH2GeG5pb2ZmXVVYb2iPqHaBenyQjXh0bn1tcXR4jX53lHSGg4CGiXZqdHdoaW9cbWVebnNfZ2JqeGh7bVttg3J0am+Bfnp4YneFhXmRhnSJc3B6f3JjcWhbbXVkb3GGendhcn9wZ2l3c3Frd3ZzdWKCeXx1dG9jYmFsfHxra1VpYmdUTG5pUEhTa0ZieWZiTVRyXkpOVVpmbXh7Zl9ucmpkXVZhVm9vWEtUaVhnXlhOVmxUS116YFxfbF1dW2JmYHpobGFvb3Zub3d1epd9d4CBeYCAh4Z6eXqDfYGThHFzdH56dnSFiJB+gX2RbHOVgXyDn4V/h32Bf4aCgIp7doSrn396iIiFbHGCe3aBgIJ1b4hufYB0ioBqcG5lZFhfWlpaVWJrZ1xaX3WCaV5tbFxhV1tca4FlcnR9amtebXh3aXZ4c2+HfH5+enZybHpoaXdnXWRzaHp3koBjYlRjbmWBhHV2ZmhpYVdWWWhkkKdufneAi415cG57ZXdteYp6do5xhH5/gIduZHd0ZWhpXWxiXnBvW2hfbHVlemhddIBucmtxe392dmN1hox8iYiBgHlzdn50YXBsWHBxYW5vgnpzY3GAbGFseW5paHl4c3BkhHN4eHNvY2BjbHN9aWtUaF5fVUx1ZFFIVmJIY3dmYkxUcVlLTVhZaWx3e2VlbnJnY1pYXll4Z1VKXWRYaVlZSVdmUEljeVteX21bXl1iZF5/aWpgb3R5bW9udoOXeXKBgH1/iYyGfnZ2hniGjH1zdXWCeXp6goyOfX+FiWp0l4F7i51+foZ6gHt+fIaJc3GPrYx7fIePfmZxiXt0fn13c3CGbHx+bZB6Y3BwYmVeZVZaWVdkZmxgXV10hWhYcG1bXlhaXGx7Y3F3dm5jXG91dWl2d3Jvhnl/gXp3bm90ZWh0ZVtndWZ2dpF5X11SZWVpgYFzfGFiaVxUWF5jZJCkaHh0goWQd2xteGZ2bHuDeXSHcoF5fXmAaWZ3bWFnYV9qYF51a1lmXW9vYnplW3d8a25vcHh5dHVlc4STgImEiXt3cHN9cmF4Y1lubmBub396cmVxgGRebXVoY2Z3enJsbYFzcXtxcGFdZGxufGVpU2dZWlVOemBSS1pZSGN1ZGFKVW5VS01aV2ptc3tkbG10Y2FZWlxieF1UTGReWWpUV0hZYU5Ia3dZX2FuXFxfYmNchWloYm54em1vanaBkHltgn6AgZKIhIF3dYl0i4Z0cnZ2gXh9fX6Mj4F/k35weJaDfZmTeYCBd3l+f3OIhHNwmaF7e3+JlXlldYl6c3l3bHVwf2x5fHCSc15wb2FoYmxUW1pXaWRuZlxccollU3JuW1pZV2BsdmNqdWtrX1tvdXJudXV1a4d9f4F8d29ubGRpcGNba3JkdHaOc1xWU2NfcH59cIBcYWNeU1phXGSSnmVycYWDkHNraXhrbm55eXpxgHZ/c3t6e2RmdmheYlthaFxfd2hXYl9waGF3YVt8dmpqcm54dHR1aXGCloSIgIZ2dGtwfGxmd1dbaWxhb3B+d3Nlb31bYG9wYl5pcH1ranJ9cG92aW5fWmRrbHphZlNmVVhTUXhdU1BZUkhkdGJhR1ZsUUlQWlZsbGx8ZW1vcmFcWlhabXFYU1FnV1dqVFVGWl1PSXN2WWBjbmNZYWFhXoxqY2Vtenlsb2l2eYZ7a4N9gISafIKEeX2Ibo+GcW52en10goJ9i4+Dg5d0eIKUhYGfiXWBgIFzf4Fwh4N2b6KXc3uGjId7ZneLb258cGd5cntsc3ZzjWtedG9iZ2ZrU15cVmhibW1bXHGMZE5vbV1WWFVmaXNoY3VlZV5bcHdvcXZ2emyIfX99iHePc2Nka29hXG5tY3N4h2taVFZhYnZ7e2+EXGNeY1NaYFpjlpRjbnCChYlyaWZ4bWRydXF6a3l0dW97f3ZfZ3NkW15XYmRZYnVlVWBhbWRhcV1cfm9oaXNxdHF1d2xthZWDin2GcnNnb3xvcW9SWmVpZG9xfnRyYmx1VWJxalpebmR7ZGt0e3BxcWhsXlhjaWp4XmVTZFVXUVZvWFJXVFBIZXNgYkZYa09JWFRXbmllfGlseWtiV11WXHVlVFNYaVJaZ1VUSVtaUE55d1tfZW1pWmJhX16PbmJna3l2bm9pdnZ/fmyDgH2GmHt/h4GKf2uTiHJnc4B7dYCDfomOf4yTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOCjYx3eG56jWBlfXFnenR5bW1xd4NnZHxtY2dnaVRgX1VnYG1wXF5ujmhNaWxgVVZTb2dza2Z4ZWZeWnJ2bnN8eXRuiXt/d5x6eWthZWxtXmBvamVxeX5nWlVXX2t2enlugl5hXWhWWWBYZJyIYmtwgYZ8dmtpdWtbdXBqeWl1cm5vfIFzWWtuYFleVmJkWGVxY1RfYmlhYmxaYH5rZmx0dW9teHdsaIaNgIp8iG5xZnB7bHFsYVhfZ2ZtcX9ycl5pbFNlcGRVYm1heGFvdHp0aW5qaV5XYGZodVxkVWFWVE9ZZ1NPXE9QSWVwXWNHWmpOSmBMWW1lYHhpb4BlYFVfVV52XFVTYWhPXmNVVEtdWlFadnZdX2ZtaFhjYVtejnFjaGp4cXNtZ3Z0eYJzgoN6iI9/fIqIjnpukIp0bHOBdH9/iIWHkoSVj3p9jI+IkZuEgHuMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56enx+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo2NjY2NjY2NjY2NjY6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx9fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMk5OTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjY2NjY2Njo+NjI2NjY6Pj46Ojo6OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHx9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTEwL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhXdlZ2ZmZmhcQ0RERERDR2RoZ2dnZ2drb25tbm5xSisuLi4uK0iFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI4uGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgoKDcl1fX19fYVI0NTU1NTQ5XGBfX19fX2VnZ2dnZ2o8GBwcHBwYO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmIiIiIiIeNkJCQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaIiYiJiYmJioqKioqKiYWDg4ODg4OFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkZKRiYeOipCSk5GLkI2OjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjY2NjY6Ojo6OjY2NjY2Njo6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQi4WJiYmOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3d4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCIhYeNiZCJjJCPj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfXt3dnd7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkIiFiIyJj4eOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4SKjIiOh4+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin99d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pio6Ni42Mj4+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgICAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgHt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGiouHh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/fn9/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTk5OTk5SVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOSk5OTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGSkZGSkpOIhZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj4+Pj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCSgoKSkJGRjnWGkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPkJCQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CIcISQj5B8dIiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4xzb4qPinJ4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX1+fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjXdte4+Cc3iGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH5+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWFhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHc25vhHt1doCFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxZWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3RiXmRfYWtxZmhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGRUVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYl1qbF1lZmdlY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGRkhJSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpaandsYm5yamJZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtrcmthbXRyZlFRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OXWNva1hpc3VwU01PUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZCRkhVYmdsb3BvbWxaTExOTU5PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVDRkdITVpnaGdybm5oZmRgXl5YTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7PklaXVpcZWxuam9tbWxraWhrZFNHRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7Oz1LW2ltbm9qb21ramxtZlFHRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozo9SGNvc21ubGtsaFVDPkNGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN0cnF0eHh5fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5PUpgc3NwaFQ/Ojs9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT48OkJsfWpAOjs+PT4/QEBAPz9BP0BAQUBAQD0/Pz08Ojs9PTw/QEBCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO1tuQD5ERT9AQURfZDs9PTs6PT5BQT8/QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pLSFZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo6bXdIODs6PT5BO0hkPTw9PDg6O0A/PTw9PDxAPT08PD47PTw9PkFAQkFAQEBCRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJYHBwcnJydHV2eXt9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUj08PUlMRkV1dk43ODg6Oz4/V2pBOzw8Ojo7Pj4+PT03OT89PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3J6Sjtcf4N/enx3Vzw9Pz09PkVodEw6PT4/PT0+TlNVUkxDQEA/PkE9Oz9CQEJDQkBCQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFRT9BR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFHcnprYoOEg4KDgH1ePkBDQEA9SnN7WTo9QUVCQUdmaGxoYV9PQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEVudH2CgoGDfn2Edk1BQ0VAPz5Ze4BdP0NFSUlJV2pqaGloZmdPREdFRUVERUNBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx7fX99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTU1TbXdwaW1vcWVLSklIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSExOTVRyeHhybm9vbE1HSUdGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSkhJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiIRWbIWHhoaGh4iIh3xQTE1KW3d6gnFubW1sS0NDQkNGRkVCQD4+QEFCQEJEPz4/REZIREZHSUtJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wcnJ0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pUgYOEhIKChYaGhIKFhYSEhoaGh4eGinVKSkdbZ2hqZmlzenFDPTs6PEFBQD48OTk4PDw8Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgICAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpJSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMj2dFVmRqbGFlbHiAZTc5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJR09SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouNimVib3BsaGtxbXhRMzg3MzU2ODo4NzY1NjU2NzY3Njc6Njc4ODk6NzU3ODk3OTg2Njo8QEdGSUdJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDY3ODg9Oj1FQ0JlhYOBgIKDg4ODg4aJi4qJiYqKioqLiouLiHF1dnBwdXBqbks0ODg1NTc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc2Njk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ5e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgICAgICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhIWGiYqKiIeHiIiKioyLiouOiHZ4d3Z4cm1tSjg7PDk6Ozk6Ozo6OTs6OT09PT47Ozw8Oj47OTs7PDs8Ozk6PDg6Ojo6OTk5PD88PEFCRElKTUtJS0xXb3JzdXN2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuKjI2NgnV4e3hycWpIQUFCPkBDQUA+PT4+QD8/P0A/QD09P0I+QEE/QT89QEBAPj9BPD48Ozo7Ojk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PDw6Ojs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4uMjYyMf3h7enprV0xISEhFRkhHRUNBQEJFQ0NBQkNCP0BESEVDRUNFREFGREZERUZEQEI+PUA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDo3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhoaGiImJiIeGhoaHiYmKi4yNjIyMjIyMfnl6d1lOU01LS0lKSkpJRURER0hGRERFRkRCSElLR0hHRkhHRUtJS0lKS0pDRUNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtBQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjY2MjI6Jenp1XVFUT0xOS0pLSEtHREdJSUlFRklGRkVMTE1JSkdHSElKTk1PTExOS0dGR0dFRUNGRUZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7Oz06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjIyMjY2EeXp0XlFQTk5MSklGSklFS0lHS0pJSkdHR0tMTkxMSEhJSk1RTk9OTE9LSUdJSkhJRElISEZGR0dJR0NCQUNUbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhYSEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIyMjI12dnhtVFNQTUxJR0RIS0hNTEdLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRkZJRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIyMjn9kZ21ZWFVRT01MRUZHTVBPUFdVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkhHSkZFSEpFREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39URkZHR0dHSEY+QEI9Pz09QkBCQkdWTkZOUFBUWHuGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyNj4yMjG9hY29kSFVTU1JLOztTVFJgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRTExLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+BgICAf39/gIB/f39+flNISklIR0dGRT8/QUFFQUNHRURFTFhSTVRVVlhafIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH5hiouLiHNialk+W1taVVI/QFdWWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFVUVlRPT01LTEpJSUxNS09NU290dnh5eHh6enp7enp8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImLjH10c1teXl1UVVNXV1ZbW3WDWVV9kGFcWF1fV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBRT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiYqBboaJiIeEioBqXV1eW1ZXVVhUU1hWY5aAUmVyWFpXX2hQYGZbW1hcZ2FHT1poZ11bXF1dV1JPU1BQUlZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE5NS0pFQz9AO1BQWlpbU1NRUFJSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn6BfWBVWVtWVFdUUlJNUE1MZnpbXVRZVVZdWkxUWlVTVF5aWFdXV3pqWFtcXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fn5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a39+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eIenBzWk5PUVFNT0xKS0VGSUZDP1RkVX9SUVFOS1FUUU1PWVJNTlFTVlVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3x9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGFze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ2YWBQSEJFRUREREFFUUNFQUM+Q0lHVkBITkxHXWlQSEZORkRFRklHSEJESEdJS0dEQkFEQE9RTVNkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNQVVlTVVFRVFJPVl9rbHJ2e3t4eXVybnN0c3l4fX+DgIODgoCCgIOBgmxPSUJDPTw+QEFAQD9rUUtgRUZISUVCP0dMTkdNUlVJQkU/Pjw9PD09Pz0/QUNDQD89PUI+Sk5HVW50dHVzdHZ4enx7fHx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXkpKUFBOS0xRUlFUVVVXUVFXVVBYW2FdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUVCQkM+O0NDQkJEQlxdT3tOT09OS0xNT09RTEtNV01IR0BCPDo3NzU5OT07Ozs4Ojg6PzxCSD9cc3R1dnV2d3l8fHx9fHx9fX59fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BfXVpJSFBSUU9NUFFOUVJUVlhTU1lUT1laXFdZXV5eX2VfXV5xdmteYGdrd29vbGpvbm5sZWJZSEdISENCR0lGRkZETVJPYVdTV1FQU1NSVVtPT1FWUE1JQ0Y/Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn17fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BWV15aWE1LVFRTUFFVT0xSU1RXWFRUWVJNWFlaVlhYVlhZXVdXWGhza11WYXRrYWFfXmRhX15ZVVFOT09NSUhKTEpJRkNRUFNaV1RUTlFTWVNcZVVPU1RSTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTpHbnF0d3h6e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQU1RXVFVSXW5fUk5aYFtXWTtEVlhUW2ZKTFBTUk9OTU5OTkxKRlFQVVlTVE9KT09VU1RcVlJVU1JPTUxJSEhGPz88Ojc4NzY1OTk2NzY3NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF1SVFpXWFVUV1RSWFhZWVlTVU9KR09QT09NUkpPUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBTTUlNS09SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmhpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExISkhGTE1QTUcvRV9SPjM/PmpvYVNSUUBHVFFQUVBRTlFPUVBMSkxMT1BOTlBRUU5QT0pMTU1LR0VFQ0E7PTw8Oj1HNjY3N0RtcHR2eXt7fXx9fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nVFFTQUdVUE9RUVBNTU9NS0xLTE5PT1FMT09NSExLSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7e3t9e3x7eXx6e35+fHt1dHVydnZ6e3h6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05MUVNMVFVUV1dVTExLSTw5ODc7PkA+PD1BQEI9PkVIRkNFRklHSkpARkFBQEZIRUpPSFFSYlxSUFJPU09PUExNT01MTU1OT05bV0tNUU9HSUhDSUpMTEtGRkZFP0JDPjxCRz9CP0FkcHN2enp7e3x7enp3e3d5fn58e3FzdHByc3dzeHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENEPTk3Nzk/Qj47P0JAQD5AREpFQ0dHSUdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xOS0xOTU1MTE9OU2ROSkxSSUlJRUFISkxNTkpHSUdCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg5Oj9CPzxBQkFBREVHSkZESEhHR0hDRD9CPz9AQT5DRUNLTlJUTEpJTVRGSUlKTEpLTElKTU1PUFJQSkdDTEdDQkpJTE1PTklKSUdDQ0NESEpNTElZcm13eXh6e3p5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9tcG92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFIS0RHSElHSktJSktERkI9Pj06OTo7QEI/PUFCQ0NHRklLSkVJSUZHR0NDO0FAQj5AQENFQ0lNUEhIS0dIS0RISkxNSEpMSElKTEtNXVJISERORkFDSkpNTFBNS0xKS0ZHR0pOTlFOTGJtaXZ2d3p5e3p9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLQ0ZGR0VGRkdFR0JDQD48PTk6OjtAQ0A+QUNFRUlFSUpMRklJR0ZGQ0I7QUJDPkBDRENER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lHRU5IQkZNS01MT01NTk1LSUhJT1JSU05SZmZmcm9zeHZ7enxsaGpuZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lERkZFQ0NCRUBEQj4/Pjo7Oz06PD5DQT5BQ0RGSkZJSExIR0dHRkVDQD1EREI+QUNDQ0VHSUlHTVFKRkZHS05PS0ZISUZFREVJSkhLSUZIT0tDSUxLT01PTk9PTkpKSUxSVVVTT1dkYGBtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPUJBPkE9Ojo9Pzo+PUBCPkBBREdKRklGSUhGRkdEQ0JBQUZGQ0JCQ0RFRUdHSEZMUUxJT0pKTUxJR0hFR0VEQ0lJSEtKR0tSTUJOTkxPTk9PTU5PS0tLT1VXVlVTWF9eXGlhbmpuaHJzYmRmZWRoaGZuamZtbWhra21yaXF2dHNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd3dnR3dWpzdW51dHNxcmtrck1HR0ZIQkJBREU8QUBAQzw4Ojw+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDRkVCRUdFRkdHRUlNS0lRTUpLSEhJRUZISEVDSUpJS0xLUFNORFFST1BRTk9NTlBNTE1TV1ZYWFVYXVpdZGBpY2ppZ2tfZGVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRTw/QkJEPDc7PT46PjpAQj4/P0JFRkRHREVIRURGQ0RGRUZKRUVJR0NHSEZIR0VDRktKSE5LTEtISkxGSUlLSEVLS0xNTk9SVE9IU1RSUFJPUU1OUU5NUFdaVlpZVlpdWVhhYGFgXmhlY2BkZWhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXd1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSEhISURCQ0hFPEBFQkU9ODk+Pj08PEFCPD8+QUFGQ0ZDRElEREVFRkdHR0lGR0tIREhIR0lHRkRIS0lHS0lNS0pLTEhMS0xLSk5LT05PUlVWT0tVVlNQU1FSTE9RUE9UWVpZXFpZW11eXWBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdExJS0lLRkJFR0U8QEdDREA6PD5APz4/QkI8QD5CQUZDRUVFSUZGRUdGR0hGSEhJS0pGSkhIS0hGRkxJSEdKR0xMTUxMSU1LTU1NUExQUFFVVldPS1ZVVFJTUVJMT1JSUVZaWl1eW1xeXl5gYGFkXWNgZWZgZWhqZHNzZmpnZmtvcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQ0VERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRkdJRkpGR0RJSEdJSEpMSEhKSklMSkZKS0hJS0pHS0tNTUpKTUxOTk5QS09QUlVYVk1NVFVUUlFRUE1OVFNSV1tdXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbG9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ1bndLTExMTUdEQ0FFPD9FRUVDPUFBQ0JCQ0RBQ0VBQUVHQ0hISUhHSkdDR0lHSEpGSU1ISUpNS05MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlJQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2NoaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAREJFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdJSklJTEhKSk5MT0tJTEhLTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2hmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQj9AQj89REVGRENEQ0VFREZCRkZHREVLRkZKTUxLTExHR01JR0pLSEtLSUtLTkxNTExMSUxNTFtzYmRwXmxtVU1OZnNdZmZxbG50Z3BpX2FZbm5icHBia2pqZm9xdGV0bm9cb3VncE1KcXl2a2Fga2VlbXhsa3ZsbXBzcnBycXBxcnFycnJ0cm1tc25ub3BzdXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdDRkNGRUZFRENISEhERUtIR0xOTkxNTUZKTkhKS0pJTEtKSktMTU5OTU1KTU1OW3Jvb25wcGxrTVBRbFdNaWJ0cnBhbW51XFlsUFxubVpxbWtvbXh4dHNpcF1fcmtxalV1eXhvY15rZmJncG9qam5vcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGSENHRElGRUVCRklISEVITEtHTU1PTE1OR0xNSUxLSUpNSUtKSkpOUE9OTExOTkxcaGR1XWxxV2xOUFFtVFlrXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHhrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNGREhHTEhFQ0NIS0lIRkpMTEZOTExTUkxHTExITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5Zcmtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmltdHVwc3V2c3FwcHFvcXR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVERUFBPkREQkdESElNSUZDRkpMSkdGS05MRk9KS1dRS0dLSkpOSkhKTElLSkhIS01NTU1JS0tLU2tjW2leX2ljcnJaX1lqbl9lZVVrX2NbYWFRYGxoXWpcbmlpZFtvZWRwXVpca1ttcWNwc2xkZ2NjZ2Bgam1xcG50eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFxdXR3ckdHRklERURGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMWlBKRUhIS01JSEpKS0tJSElGS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT05RTk9RSkpPUFFkcWlUWVZcW1xWWVtdWF1cXGNmYWFlYmNmX19ma25pbXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NER0VFQUVDQERIREZHQ0lLTEhGQ0dLTElFR0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJR0hJRUZMSUpMT01KUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSS1lhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGFhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHJ4cnhzcXJ1cnRPQkNETE1CRERCRUlFR0dGS0pLSEVFSUpLRkVISFBLTU1KTVJJR0VASEZLSUtMSkxKSEZESUZERkdFRkpIQ0pNTExVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoaGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFSSkpNSUVDQkNHSEZIR0lLSkpJREZLS0tFRklKTktOS0hMTkdHRT5HR0tJS0xKS0tJR0RJRENERUFGSkVBS0xKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR4eXl5eX9+fXl1eXZ2cm56d3Z4WVFLRkRHRUJFR0hGR0hIRkdJR0hHSEtJTERES0tOTUxLSEpKSElGP0dHTktLS01LS0tJRkdDREBEQUhJQ0BKS0hQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUE9cX2FjY2NjYl1kY2JkY2ZYUVZUUVpXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGREZLSkZGRkhHR0lHRkZJTEpORkRLS01OSkxJS0pISEZCSEhRTUxLT01KS0lHR0VEP0VDSUlDQ0hHRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11VWWFSUV9fYmJgYGJiYGNiYWRkYlhPUVBRWlJbXV1dXV5fX2NoZ2xqbm5we3t8fnuAgoOEhYSFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBSEZER01SSENRSkVHSEhFRktKTVBFRklKS05MTElLS0lJR0RIS1FPTU1QTExLS0hJQ0RBRURJR0NDSEZEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1OWGFcYGBfYmNiXWFiV19fVFBPT09XUVxbW1xcXl9hZmZlbGVvb3d8e4B7fX+AhISEhISEhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+Sk5GREZGSERJUmJQQ1ZeSUdHSERGTUpQUEVJSUpLTkxLSkxLSUpHRUpOUVFOT09NTkxNSEtBREJDREdEQ0NGR0JNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TUEtPU1JVWllXWVhYZFdPU1RQUE5NTlRSWlhYWl1cYGBkZWNnY2tscHNyeXl/e3p/hISEhYSEhISChIB+e4GDgX17hYSGhoaHh4WFhYSEhIKBgH1LSUVFSEZHREtNXUxHR1hMR0hKSEdNTFFQSEtLS0tOTVVOT0pKS0dHS1BTU05QT05PTk5HS0ZgRURfTEVnZEZOXEleW3JtT01VbVlMRFBgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgX2FiYWJfZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUdGSEVFS09TSUpGYFNHSk9KSU9NUlBMTUxMT1JVUk9PSUtOR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXJ0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fWm5YXVZcWFVraFVdVmNaYFlbX1ZWWH9qdHV1Xl92XldhW1tmW15gYWFhXV9hZ21wbF9wd3R4gYGCg4OCfn1/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEZJS0VRVUxLTklLUlhXUU5OT01RVE5PUU9LS05HTU9TW1pUUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJvb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29ycnt8b354boByX2BgYmFaYF9na25rYmxmZ2x3foGAgn17eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOTEdgXUdBRUxNR0pKR0lPTk1NSk5WXllVTFFTTlhaTVNTUk1LT0hRUlRZV1dQVFBQUFFLSGd4bGN4cm1bTE5WeXB1bXVib3ZQZWVKZnZxbXdvgGpmeHdpV3JRaHptaWp6en1seHp/b2hvWXZ2anZ1cIBfcmZ9aWx4fG9eX19iYVpdYmRnaWlkZ2JjZGxscHBzdHNzc3pxcnhibHVncnl7cnJ2eX6Bc3V6bnx9eXhybk5LU3VOQ0JGUFBISktJS1BOTk9NUFpgWldLVFdQYV5SVlFZUkxQSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYVduTHFwXkZoeVd2VEtoeX14YHl7c25hXW1vY1JncXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXF9kZGlnZ2VlXmFiaWlpamtub2txb21qcGFjZmNvd3hvbXBzeX9ucXBre3p0cm9tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xZVU1VWVVlWFJSWV1TTE5JVFRXV1lXT1NOTk5RSVJtSGl3S2BkdndWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9acHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbF92dWtpdXt6bX54a3xwXF5eYlteYWRkZmVlZWJaY2Npa2tyc3J2Z2xpaGRnYWFrYWdzcmxnbW1yfWttaGt7dG1ta21PSEtLSEpISFFQTE5PTEtSUlJPU1JXUlZUUFdaVlZUVFRhX1BOTUpUU1RRVlZOTkxNT1BLSFFOUFVMS0xTVFNTVFBWVVFRTlFRWFlSTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1hYUl5ZV15XVVBZUldXV1dYXlpncl5bW1lcXV9jWl9jY2RmZGNjYlpjYmdmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdnanVqaGdpbFBJS0xMTUtKU1FNUVFPTFZVVFBUVVhVWlVRWl1VVVRXVVlXT09LTVZUUU5VU05PTUxRUExKUlFLUU1LTFBSVVNRUlNTSUhMTk9RUlFQUVRWUlhXXFdTUlBSVFVVU1pRTlNSWFZUWVdVWlZUUlZUVFVXWFZcWV1gXVtaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY1xaZFxhbWFeZmVmbXNkaWdqa2VkY2ZoUEpLTE9PTE1TUE5TUVBNWFdVVFVXV1dZVVNcYFZXVllVWFJQUEpOV1NQTlVQTlFOTFNQTU9VU05STk1PUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXVlZZW1RQVFVYVVVaVlhaVVNSWFZVV1tYWV5cVVheXF5cW11gYF1bYmJjZ2ZlZGJYX2FiXmBnZGZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmdmZGBiY2JPTE1MUVFMT1RPT1NRT1FbWVdXWFpZWFlWXWpkVlhZWldWU1NPSk5WVFBPVFBQUE1NUlJQUlhUUVFPTVBUVk9YUlRVVU9OTVFUVVVUVFJUV1ZbXVxaVlZRUVZYVltbV1FUVlZWVllUWFhWU1NZV1ZaXllcXl5VXlxeYFxbX19fXlpiYmRoZ2RkYlhhYGJeXmZjY2BiXVxcXFxZWltYW2FcX11cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xZWltkcW1oZF9bWFVVV1FMTVZTTU5ST1FST0xQU1JVWlVTUFBNUVhXUldTU1NYTU9PUVRYVlVVU1VZWFteXVtbVlFOVVZVW1tXUlNXVldYVlRZW1VUU1pYV1xeWl5fX1RhXGBhXWBiX1xgXWNgY2doZGZgWWNgYV9fZWRfYGJbWlxbXFpaWVhXXFpcW2BeX1teXmFgX2JcWWBbUU5PTlZRUFRRT1RUU1BXXFxcWF5cXlZbXmpxd3mAY1xbVVVXUE1PVlNOUVFPUlRSTFJUVFlbV1VPUk9TWFdUU1VSUlpPUFJSVltWV1dTVlpYXF1bW11WUk1UVVVbXFZSVVZWWFlTVVpcVVNTXVhaXV5cYGBfVmFbY2JdYWReXGJhYl5jZmlkZl1bZGBhYGBjZV9iXllaXltcWllYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1tUV1dRTlJaU1JRVFJUVVRLUldWW1laU09TUVZWVlRPV1JSWlJUVFRYXVdYWVNYXVheXVlaXVRUTlVWV15bWFJVVVlZWVVXWlxWVFdeWl1dYF1iYl1ZX1tlYV9kZF5eY2NhXWVmaWRmXV1kYWBhYWJkYGJeWFpfWlxbWFhYV1dbWVtgXFtbXFtYWVteVl5ZXVFPT1JaUFpUVVZWU1RUXl5gXl5iXGBVXV5ia3l0bH1rWlRZVFBQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUlZRWVhZX1taVFVWWllaV1haXFdVW15dXmBhX2NjXF5dXWVhYWZkXl5kY2BcZ2RoZWRhX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QVllRXVVWWVdXVVhfX2FhYGNdX1VdXmJlZXWBemhXWFlTVVNWW1hXV1ZWV11YT1VdWl5dXFRSWFNXV1VTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWFRZWlphWlxWV1hbWltZWVpbWVdeX2BfY2JhZGRcYlxgZmFkZmReX2RiYVtmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lYXVpbW1hYWVtZWlpdX11UWV1VTlNZVlNcVFZXWVZWXGBhYmNgY15fVltgZGFfenVvaFlaWVRXVFdbWlpbWVhZYFdQVV5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1ldXlldVVJYV1lZXWJaXldYW1xbXFtbWlxaWl9fYGBkYmNkZGJkWmFlYmZmZV5hYmBjXWJjaWRjZ19nXmFhY2FhYF5fWFRbWlpbW1hbWFhcW1pbWFZZWFdcW1tgXVZdXVNPVllWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheXFxaVldYWVxcXV9bWVtiVlVYXl1hY1xSVllQV1dXV1dWU1VUWFxcXmBgXWBcV2FeW15bWl5XVVhYW1pfYFxfWVlcXF1eX1xbXVlbYGFeYGRjZGVlZWJYY2VkaGdkXmNgYGVjXGVpZGVpX2ZdY2JjYWFgX19bWFlaWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWVhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZcXV5gYWBfYl5ZYV1dXllcXllYVVZbXGBeXV9bWl5dXl5hXVtbWlxgYl9iZWNlZmVmYlpkZmZpZ2JfY15hZmRZaGhiZmljZV5iYmNhYGBfXVxaWFxZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVZcW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXXFxfXWBfXVtgZF1cWFtiZWNhUlxaT1lYWltbWldaWWBdYGJiYGFjX1xiXV9dW15dWVhUV11eX2BfYFxbXl5gYmNcXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiW2NnX1xpaGJoaWVkYGJhY2FfYF9cXVxZXFlYV1hZWFdcWlpXVlhPWFpdYWNlZnJrf0pZV1xaWl9cW15bWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5ZWFVbX15dYWJgXltgYWJmY19dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBaZWddYWdoY2hoZmNgYmFjYl9fX11dW1pbWVhYWFZaVlxbWlZWVU1YV1xoaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4SCgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXp7e3t7e3t7enp6enp6enp7e3t7enp7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3p6enp6enp6e3t7e3t6ent8e3t8fH18fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a8homJiYmIkMzT0tLS09PEvb6/vr7AooqMjI2Njol/f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIqU3ebk5OXk5dPMzMzMzM+qjY+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5eXl5endvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2DhISEhIODgoKCgoKCgn58fX19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV5dnZ2ent4e3h3dnd6d3l5en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3l5eXl5eXl5eXl5eXl6e3t7fHx8fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2eX18fHt5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjYyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fXx6e3h8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3dnt9e3l7eHx5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp5en16eXt5fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4e3h5enl5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGhIOEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYF+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiIaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgoGAgYGBgYGAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgYKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXFxcnN0c3R0dHR0c3N0c3NzdHR0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NxcHFwcG9ubm5ubm9ub3BwcXFxcXFwcHFyb29ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzc3NycnBwcHBwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXNxcnJxcG58gm9wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFwh4ZwcnFvcpiCbnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF9oYJwcm+LnnxucHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXWdoXdxd5+cfW9xcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXFxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZiokG+Co51+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4d3d2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4GDeXJzc3JycnNycnNzc3Nyc3Ryk6mkeYignXxyc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f4B+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn18dnZ3d3Z1eHp4eHh4eHd4eXmftKmkqKiXfXt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgYGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7fHt7ia+mobWrrKN+e3p6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2YpZahsqCZp5N9gH99fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgZycjqCvoJ+in4CAgYB+fn9/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImHh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYGAl5qOmLGhmJachXx+fn6Afn5+f39+f4CAgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+foCBfn6fq6WWpJublqCfhn9+fX+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CKioqLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgYGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KDg4aNn7KooqCYnZ2mqK2ooJmQh4GAgIGAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4aNoK2xppuaoJuenJydoaSjnZSHg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYOLl5mXlpigm52dnZmal5CJhoaHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODg4SDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBho6Uk5eanJyblI+Jh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5OSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgYGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDg4iQk4+VmJKHg4KFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgYKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHh4WGhoaHiJGTkZCOkI6RkYyJiIWBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKBgIebiIuHgoKCgYCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo+PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIiIeIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAf4OIjoCBgoODgX9/f4GAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYmGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/f4yVgoKBgoSDgYGBgoKDg4OCg4ODg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChIODg4KEhIWEg4ODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSk5CNjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYycjoCCgYGCgoSUlIyBgoGCg4OBi5yaoZqKgoKCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpOSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoaGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZiMgIOBgYGAjpSMkIGCgYKCgYmSkIyWo6OPgYKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWFhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4t+hISDhIKDg4KNiYWMgoKDgoOCk5SWmJKXnpyJgYKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf319fX+ChIODhISLmZSamZeWlZKEhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaGhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39+f4CDhIOEhJGVg4mWmJaVlIiEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWFhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYSFnZOBgZiZmJiWi4WGhYaFhYaHh4eIhoeHhoaGh4eHhoaHh4aGhoWDg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaFg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf359foB/f39/f4CAf3+Af3+FhYihoJubn56SjZCKh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aGhYODhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGBgoGBgYGAf4B/f357eoCImqCamqOim4yBjIqIiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeHhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSSkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCg4OCgoB/fn19fX1+fnx7e5Shl5aZn5+bmIuLiYiJi4qJiYiJiIqKiYuJhoaGhoeFhoiIiIiGhoeEg4KEh4iIiIeFgoKCg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiIWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKDg4F+fX1+fn5+fn59fn19gZWTkJeYk5ial42Hh4eIh4eJh4eGiIeGiYmEg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoODhIKDg4SCgYKBgYGDg4SDhJGSkI6PjouHhYaGhIKBgYGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoOBfXx9f4B/fn5+fXx9fnx6gJGOj5COk5iZioOGhYWDg4WEhISEhISFhIKCgoGEhIGCg4OFhoWEgoKBgoKDg4WEhISFhISGg4ODhYOCg4GCg4OEhYSHkpGPjY+MiYWEhYSFgoGBgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4GEhIODg4KCgH19f4CAgX99fn59fH19e3p6hZCNjI+Ul5SEgIKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgIGAgYKBg4GBgoSDg4SEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn1/goSEgoOCg4J+fX5/gICBgH59fX19fn18ent7iI+NjY+Phn9+f4CAfn2Af36AgIF/gICBf3+AgYF+fX1/gIF/f35/gIB/gICAgH+AgoCAgoGAgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GBg4SBgoKDgoOEhYCAf3x8fX59fX6AgH59f359foCDg4OCgoGBf319fn+AgIB/fX19fXx7e3t6enp7i4+NkIZ+fn5+f39+f4B/fn9/gH+AgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af39/fn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fX5/fn1+f3+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp6enl/jo6Uin9/f35/f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f36Af39+f3+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp6enmDkI2VjIGCgICBgH+Bf4CAgIGBgoKAfoB+f35+fn6BgIGAf39/f4CAgH+Af4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEhIKBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WCgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXx6enl5eXuHiJSVhIOBgoOBgIKAgoGBg4KDg4GBgYCBgH+AgYOBhIKAgIGAgYGBgIGAgoF/gYCBf4CAf4CAgH5/f358fImUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgIGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl5eXyCh5GEg4KEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGBgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4eHl5en2Bh3+CioSDhISEl5eDg4SBfX6BgYKBgYGCgYOGiIyFg4KCgYSCg4OCg4WEhIWDg4ODgoODgoKCgoODgoKRkIuIiIeJh4aGhIaFhISEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHh4eHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl6e31/fIWRg4ODhISUk4CBgX9/f35+hIyAf4CAhIaQiYWEgoKBhYWLgoGChYWGhoSEhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhISCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6enp7f4KAgYGDgoB+fX9/e4iRfHyOloB9fn+ChoqFg4OEg4KDjIl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXh8fX6Af4B/fXt7f359gpWRf4SIfXx+f4KEfHyBgoSDf3+Hg32CgYCCgoCDg4OEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e35+fn9+fn59fXyAgYB9ho+Bfn2Cfn9+gIJ8fIB/goCBgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMi46OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4WEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX+AgX1/f4B/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjY2Ojo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgH+Af36Afn9/f35/gX58e3x8fHx8fHx8fHx9fXx7fXx8fHt8fHx6enl7fHp9hYODgYGBfoB/f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fHx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhYOBgIB9fn1+f36LhIGHfn18fH9+goJ/fXx9fYF8e318foGEg4GAfn5+fn18fn+AfX6Afn9+hJKNjYyPjYyKhoSFhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOBen5+fH5+gIB+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX6AgIODgn9+f3x8fH18fIGDfox+fHt7fX59fn19fHt7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f3+Af39/f39/gH+BgYB/fYB/f35/fn5+fn98gn1+fX19e3t9fXx6fHx9gYKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt8e3t8fHp6fXp+gn6ChISCgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9e3+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5+f35+f358fH18fH18fX57fHt8fHx8fXx9fH18fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko+NiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/fn9/f4CAf35+fn1/gH9/f3+AgH+Ag4KAf4CBgICAf3+AgIB+fHl8fn1+fX1+foyGfX1+e3uDg319fXx9fH19fX19fXx9e318fX1+fX59fX59fHt7e3x7fHx7ent7enp6e359goaIh4iKiouLiYyRkI6KiYaFhIKCgoKDg4ODgYGBgYGBgYGBgYGCgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKDg4GAgIGBgIF/gIGCgX9/fn9+foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fX18fH19fX18fX19fn19fn58e3t7fHt9fHt6e3t5enp5ent+f4ODhIiJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2BgX+BgIF/f4B/gIF/gICBgoGBhIOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5GEhIOBf359fI2HfX1+fX19fn58fX18fX1+fn1+f3x9fHt8fX58fHt8fXp6enl5eXp7fn6AgYOHhIiPjouKh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKFhYSCgYGCgYKBgICChIF/foF/fX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Afn19fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6ent8fX59f4KAiY6LjIiFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgIGCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICBg4F/gIGEgX5+gH9+foB+fX5+gIB+gX5/gH9/f4B/fX9/f35/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fn18fHt8fHt7e3x7fHx9fXyKiomJhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgH+AgIOBfn6Af31/gH19fn6AgH+Cf4GAgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4SDhIOCg4SEhIOFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19fYCAf4GAgYGAgICBgX5+gH+BgICBgYB/fn19fX59fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISFg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhIWDgX9/gH+AgX59fX5/fn5+foB9fX98fX1+gX+AgICCgICBgIOCgH+AfoCBf4CBf4B/fn59fn5+f31+hYWBgYF/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH58ent6fHt8goF/gn9/gYCCgoGBf39/goB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSDgoSDgYOBgICBf39/f4B8fX1+gH1+f39/f31/fH5+foF/gX9/fn+Af4GDgoOAf3+BgYGCgYGBgICBgICAf4CBgYGCg4GBf4CEgH2Bg4SAgIF/gYGCgH16e3t8fHx/fX+AfH9/fX2BgIB+fX1/fn6CgIGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhIGEhIWEhISBg4KBg4F/gIF+foB+gH19fX6Afn+Afn5/fX99f39/gYCBf398foB+gIGCg4GAgIGDhYKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fX19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYSDg4KDgYGDgYCBgX1/gX6BfX19f39/f4B+fn99fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICBgoGAgH6Agn9/gYKDgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgYKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hYSEhYOCg4SEg4KCgoOBgoKBf4GBfYCAfoB9fn1+f4CAf39/f358foB/gYCBgH9/fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgICAf4GCgYB/fX+Bf3+AgoKAgYOChIWGhIB+fXx9fHx7eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHWGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1+gICAf39/f3x/f3+BgIGAgH98gH9+fn6Afn1+foGBgoJ+f359fn5+fn9/gH99gIGAfn59f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgoGCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYGAf32Afn5+f399fX1+gIGBgH5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8e3t7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKAgICAfX5+f4B9fH58f4CBgICAgIB8gH+Af3+BgH9/fYF/fn9/fn19fH+AgICAfn9+fn59fH5/f39+fH2Af359foCCf39/gH9+goSCgoOFhYKCfn18e3t7fHl3e3l3eHd3eHt7e3t8hYl9e3p3enx9fXx8fX19f358fX5+fX19fH19fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYGBgYKAgoCAgIB+f35/f318fn6AgYKBgICBgX1+gH9+f4F/gH9/gX9/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5fHx8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fn1/foCAgYGCf4KBfX6Bf3+AgX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGBgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKNenx9fHt9eXt6enh6gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgYCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgoKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKBgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x8fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf3+AgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+AgICAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYGCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58e318e31+eHd2eXl6e318fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4SBgoSAhIOCgoCAgoKEgYGCgYOCf4CAf4GDgoGAgYGAgH+BgYGBgYOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f316fX97enZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfH9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCgoKDhIKDhIOAgYODhoODg4KChIGEg4GDgICCgYOBgoKBgoF/gICAgoGCgYGCgoCBgICAgoKBhIB+gYOCf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3x7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0dnuEgoOCg4OEgoSDg4GCgoSGhIKDgoOEgYSDgYOAgYOCgoKCgoGCgH+BgICCgYKBgoKCgYCBgYGCgoKDgH6Bg4J/f4GEhIGDf4KCgYOCgoKBhIODhICCg4KDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX+AgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgYKDhYWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoKAf4GDgn+AgoSDg4KBgoKBg4KCg4ODg4OEgIKDgoODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKAgYB7fYB+fHl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgYCAgICCgYCAf319fH19fHZyd3h4dnR/dnV9h4eDgoSFg4OEhYSBgoSGhISDgoOEhIGDhYOCgoKDg4GDgYKAgoB9gICBgoOCgoKChIKAgoKDg4KCgYF/goOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgoKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHx4dn92d3+Eh4OCg4WDg4SGhIGChoaFhISDg4SEgoSFhIKCg4OEgoOCg4KCgX6AgIKCg4KCg4OEg4GCgoODg4OCgoGBg4J/goOEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fn1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIhoWEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODgoKCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4OBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB/fXx+gn9/fn5+fn19f39/f4CAgH+AhISEg4SFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKEhYuIhIWEhIWFg4eGhoSEhISFhISEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4KDgYOEg4SEhYOEhYaEhIZ9g3p9fn+De4WDgYSDgH99fn9+foGDgX17f31+gH59fHx8fX19fXx9fX6Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWDioiFhYWDhoWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhGp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWEgmh6cnNzfIBygoR+g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fX18fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgoKEhoaDhYSGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OFhIaGhoSGhIOEhIZ9cHuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId6bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KCg4WHhYaAgoWDg4WHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foF/f3t/fn2AfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIWFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WDhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIV5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGBf35+f39/en59fH59f39+fYCBg4OAgoOBgoSCgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4eEhISFh4aFhYWFh4aIhYWGhYeHhoaEhoaJiIWEiYqIhYSFhYaFg4WFhIaGhoaGhoN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBhIGAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGg4aFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SDhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WDhISDgYF+f357fHt+e3x9fn9/fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhoWFg4SFhoWEhoaHhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaFh4WGhoiGhYiHh4WHhoaIhYWGh4WGhoWDgoWFhoWFg4WDhISGhIaGhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH99f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSGhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYKDhYaGhISDhISDhIaEhoaEhYWDhoaFhoWEhoeFhISFhYOEh4aEgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn59fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoWEhoaHhoiGhISEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFhoiFhoeFh4aHhoeFiIiHh4WGhoeFhoaFgoSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4SHg4SBgoSFg4GAgIB7e319fHx8fn18fHx9fnx9fH59fHx9fHx8fH18fn17fIB/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhISGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoWHh4eFh4aIiIeHhoeGh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt8fn18fHx+fXx8fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoeGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiHh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaIhIOEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn5/fH9+fnx8fX99fH19fH57e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fHyJh4OGhYaFhoaGhYSFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaEhIaGh4aFhIOFhYaGhoaGhYaHhoaHh4WDhYWDgYKCgYOFgoN+gYKBf4SCfn5+gH5/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhISHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4WFiIOEhYSGhoWHhYWEg4WFhoaHhoaFhoaGhYaHhIOEhYKBgoGAhIOCgn2BgYB/g4F+f3+AfX98fX1+fXt+fXx9eXp6eXt8fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWGhIaFhYWFhYWDg4GDgYCBgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeGhoiJhoWIh4mHhoeHhYSGhYWGhYSHhISFhIiGhoiFhYSChYWGhYaGh4SGhoaFhYaCg4OFgICBgICEgIOAfIGAfn6DgH1/f4F9gHx9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KBgIKBgICAg4F+fn+AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaFhIWEh4aGhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAhIB8gX99foJ+foB+gH5/fX1+fX57f317enl6enl6fH15ent7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4aEhISChYODhoKDhYWEhoSHhoWGhYWDg4WEhYaFhoSEhISFg4WEgICCg39+f39/f4CEf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXl6eXp7fHl6enp7e3x6e3t7fH19fX2AfX18e32Af318hoOGhoWGhoOEgoWChYGBgH9/gIB+f4GBfH5/f35/gIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoOChIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOEhIWGhIaGhoeGhYOEhIOEhYWFg4SDg4SChISAf4KCf31+fn5+f4R+e398fICBfoGAfX6DfH5+fX1+e357e3p5enp5enp7eXp6ent7fHp8fHt8fn59f4B8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH5/f4J8fX9+fn9/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGChoWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhYWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYF+gn99f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX59f4CAgIaDhIWEhYKEgoKEgoGAgoB+fX5/fn9+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFg4WDgoOFhYKEgYOAgYCBgIGCgYCBhIODhoWFh4aFhYSFgoKCg4WEgoGBgYGAhYOBf36Af358fH59fH6DfXt+fH2Af4CDfX2AgX9+f318fH19e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/f4B/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PD45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT0zNjY6Ozw4QzxBQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWy8vLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NTU09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw7OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OR6jZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1svL0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19jX19fa29ra2tra2trb3Nvb3NnX19fX19fX19bW1tbW19rb2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZElJTE5AOTk6NDtAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTUaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbLzINtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0jYuLi4uLi4uLi4qKioihv729vb29vby8vLy8vbSLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOUmJMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXy81OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFhSU1NTU1NTU1NTU1NOeq6qqqqqqqqqqampqaybVFNTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUJAOTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18vNUiwxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpp5cVldXV1dXV1dXV1dXU32wq6urq6urq6uqqqqtnVlYWFdXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDs+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fMzlw5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqiZmFiYmJiYmJiYmJiYl6Fs6+vr6+vr6+vr6+vsaFjYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk6Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzM3EwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs7OzcvMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzLy8vLztLS0tLS0tLS0tLS09PRzM3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo7ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M3Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7OztLTz8/Q1NLPz8/T0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19fX19fX19bW1tbW1tXV1tbW1tXW1tbW1tfW1tfY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztKrnM/RyJSn0tHHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTEJAPT08PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK2nKWk0ZqsnLDRmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/OnZyRnryViJyexJKGnZzNz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4+PDw5Nj9CP0I6NjQ4Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv5igm7KuwcmYmMW8yZeZxdDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9COjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P07SZlqq4pNaUlp/O0ZKZoc/Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PDk2NDo5ODo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8qgo7/KnKWMp63Yqpmq1M/Pz9Srmn6jj6Szn8Ob2q2jv57V0dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD45PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDUrJuni5Wh0IqSnsfLiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbX19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q07aysqWZqtHbpZmz0NujmbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXEopmWnauSp5qgrZCnmJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6DH1aKrpJ2xpKWooK+noqmd0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtLQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09PIkY201p2SjbrVmpKOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVaWpbTF9NSkxKVUxGQjw8P0ZFR0tIPTY2Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MjB1dPTucfV09O5yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRExMQD43NzU6ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHT1NLS0tXU09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj09Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRENJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZJRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0FMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhRQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29ra2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODg5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ojg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5OTo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3F0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h1fHZ9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg2NTQzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg0NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7Oz4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojc2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBGPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2Njg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm6ubm4t7e2tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NjQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO1tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3trW0tLOztLS1tbS0tLW1tba2tra2tre3t7e3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+QkA/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utrausr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmpqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BBQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpaWlpaaoqKioqKWnqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDY1NzM4Ojo6Ojo8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OztAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpaenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioaCfn56enJycnJ2dnZydnp+goqGio6OjoaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5iXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAP0JCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc1Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5KUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6afm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6Wmpqako6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODk6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/PkFBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+mpp/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6elpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6SmpqWlpqempqKdnJ+hn5eRkZCUl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3OTk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaampaWjoKChoaCZkpCPlpuZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaCgn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSk5KRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU5OTg5PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5WSlJicmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqOjpKSkpKKhoZ6bmpmXobWemZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NjY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpmXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Cfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKCgoKKkoaKioaGgnpybm5uZn6ubnJqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY6NzU2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaCls6ygoJ+fnpyZmZqam65qdp2dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJuam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCfppKbq5+goJ6bmpmamaiERH+fnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnqCeYpymnp6cmpqbnKGjUUeDoJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODo7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZuapmZdo6CbmpmbnZyudUlMhqCcnJ2cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8Pjk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmKSAUniimZmanZugpF9WToehnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGgoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFxcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuYmJmgiFtflJqZm5yco49kWkyBop6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbW0xGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiZn5ddXXaXmpydnaKBZFlNfqKenp6dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubmpydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc5ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmaYGFggJadnJ6YdGNVToCin5+fnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmZn2leW2V/nJyejGpfUFKGnpudnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qal5NzaGFUdpOXnIdcVlBXipKOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY6Smp6SfaCjlqScbkxPY4aGgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CEoJ2Of2yWpZWfgIl/X3J/gIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2OTM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5/gKKLfG5SdZyMjFpxfXx+fXyGjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfZiad1hPTHCUhoJMYHBxd4iFio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY2jjVUvMD13h3d2QUVea22EkImJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVGJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KmnGdBWkg7d3lrZ0UwOFlsc5CPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRfTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mpr49Kb6F4QXt3ZGFQUVtHYG6KoaGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKN4YMDWpkN7jIB1T22OdlNkf6Oop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkp6eZnaSlo6KdYn+9wK93nqOalGVMYXhtUXSVoqKgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioaKnoaaupqadnmqEnLqPptChmbGoWEysk1Nlj6CeoKCenaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq+roqKGd359cs/JsZunr2tVqrBiWoemn6WioZ2fopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7e0tbazra6tj4aDbo/NuZWRo5d0VG96c257laaqp6OfnqObnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAP0JDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K3u7u7ubnBuLS1oIh5ZFmft8CmqZ2Id2txb3h4en2GjpKYnKKlpqulpJihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW3wcbMz87Myb6zpJBzZlJEi5eJiYh+eHFuZ2ZsaWtxcnFxcnR8jKnExLuip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYWZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PFx9vj49rLvK+kl4h0WVpRQ2l6bG91bmtlZVlXXlhcY2lpaGVgaIm0wMC5qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3b21bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxr7N0dXKuaedlIZyXlFUS0RbZl5ka2VhYGhZVFhSVlhZXFhadJm2u6u0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudnJydnJnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/wsHHy8i3lHVlVVBPVEg+XmteX2ViYF1kYVNWVlVTVFdym6uwqqiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO5uMObYUlER0tEPVtlYmFoY2BbY19XUU5PT1V/tLqsrqWko6ekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnZSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent3bmtpaHZaZ3N4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTExMLEwa2DT0ZNRTtNW19la2VfW2BZWFJNVH+iqrm1sqypo6GtqqynrZ+stLS/w765uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dmVmampoXmtwbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCxpZqWEc/P0deY2JqYFpYV1NVdpm2vru8urysraapu7q5t7+ztbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rraussZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWh2aGpqdW55bF5kW1ZgWUxIRDY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnOxcbGvalyUEswWFNVZmFTTk9wqcjIwsTGwLy+tLGwsMG+vsHGwL63tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2tr7WkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOi5R9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ9eHBnYGtqd21pZnZvdGNdY1VXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPCwbyRP092folWTG+ky9TFtr+/wL+6u721s7PAv7m/wrnBt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5gHNwZmVnZGxlYmtub29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzFp3drg5CYb6nIyMfRwa+9vbi5u7u+t7Sxur+0vL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX16g3huZmFlYmFjZGRqY2dkW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Aur/AvLvFvbrAxL+9vq9zZX2Ri4nRxb+/yb+wwb+6t7u+ubW4tLi8tb24tbSvs7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhY2Noa2dnamZqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdaNt7+7w7W6x7a1uLq8uLm2qqOYjn+Dyb+/u8G+uca9wr+8xbi3t7S4tra8u7m2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVnb2plbGhZWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/Ed6fMvce3ubettrS3ubO1sbzJw5VLesq+v769vL/Iw8XFvse4trO1vbi4uL67urm8u7q0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucWdxa3RmY25gXFVIS0pESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTWr3R/usjPwsC4rrS0u723ubG9w8qPQ3TNw8K/vr28x8zHx8THvLTAwcC9u7zAw7rAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFmbGpvdW94ZGhjXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsbJ0ppxcqvS0czKxLW6v8TIvr60v8DAeVJty8bCvsG8v8PMysfFxsG5wrrFv8C/wsi9x8fGxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0cG1tdGxtb2BjX2JiTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8TQw7q+vMS+t7zAv8nPx8jKysKHcnOjy8zLzcrGwsPLzsG8uL26sXBjYrvIxMDAv8TAysnDw8PDu7e0wbnAvcLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaahn5uCe3qIe21teHxgcWRcX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9rDvra+wL6+uqacqbK2w7+lenZ4msTHy8jBw8DAycrBv7u5saF9c2qtyMXEv8DBv8vHw8DIwL2sq8Czu7vBvsDKzsrEvbW8u7m/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3l0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEuW2szr22ucC8q35uaG5scoGVmHN3fJe9v8bAucC8vsXEvb24sbCZkH6Am8rCw7y9v7/Dw76/yL2/pZXDtLa1vb6+zszMwriyuLi3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cW9qXGBhWlRRQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbR2gLO9trXCpYdpWl1gTVJbWm5zd4CfuLjCurO7t7u9v7q7u66km5mIkX7AxMO+vL+7u7i2wcK2wqCBp7aqsL7CutLJyMOxsLS0tby5vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra8tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z3eG5yYV9nXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmohHiJoK+1nmtlZlZYX0lJTVBTbHeFpbC3vrmytbK7uby2ub60lZynlqFwrsnEwL2/ubOusr27rr+fcnqjjZOcn6XDwr+9rKqvrbK6t7q+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybWBkYlxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fq4h8doygmWBUQ1dWSGFrVk9GSWCNoKuvtrq1tLKsvLm4tbjBvYuZsqOmcqXLwr+5urWupayzsKa0oXmEp5eRj5COjpmwtKWoqa7BtbOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3Zzb2ReaFldXlNPTkI/SkNBS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7WRgniIj29OSj9jWkFOd4CUa01BXIGwtbO1srSvrLu6uLa5v8Z2hKqfm2Wnv7i1srGtrZ+kp6edp6q6xcvTwKSQlJeCg6CgpKW8xKyup7Crr7GxrbGurq+5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2dG12amxdXGtVXlxQTkhER01CR05HODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHtYRkFOhlpKSlh2jYBjQFKiubO0srCxrbC5uLa7t7q9kKKyrKRzq7Cpq62ro6ignZ6dmJjO5uHh39XGp5GJeW1xl6GpwaaoqKGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusayqqa6vsK2lpqqkqLOurauopqapq6aqp6uyrK+zsauploF/gXdyeWl1dG9lVWJkWF1ST01JQElSRE5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+xu6qZmZVpTkBSeHFQSUlLZ5uBWUVRrbuxrLOvrqyttraytLWuqaafmpudn6aonqCoqZ+hp5ablpWb28/GxszPzL+bfWxqZXulxqqXoqKfn6WgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqaSpq6aprKumoYh5g3x2f3pjeG1uXFFpVVBPR1BNTUNQUkA+Oz40Ojo1Ozo9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqLzCq6S+aUVSnIJRV0lJX0tTjmBjYoCutaqytK6qq6+wsrOtpZ2Rl5OPmKCfoqCco6SfnaiTmZSTrpxjcpC0xsfHq3xpaW5mlLWLm56foZyhn6Oop5ynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJaTj4+SkZmQlpWYl5+Ym5qbpJmXlJWanaCdp6iloKOioaOfnKCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fYB1dn1ubHtkaFZTZE5KSEdPU05LTkg8RUA9MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutra6ubq3t7uuqKChqaGqxr/KoVBBcp54T25LS2JldXNfWl5wj7GvrrO1qqasrKObmZSNkZWXmJicn6KinJ2knpqklpaWl6FLLUhaiLPCwauAcYOJg3h9lKKen6aenZ+jpqieo6afqp2qraqup6iwpaOkpqespqGlopuZnq+orrKrpquqoJuYmJiVk5aak5WWmpabl5iYoZ6cnJeboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GfoKWipqCJfIB+d3l8ZXl5YWJTVmFJSUtMU1VKU1FNOT5BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWdo8fHj1dTSWSjXGV+b3JdUGtjW2RfXWuPtLCwuKymoZydmpSYmpmQjpGVkYyOjZOZopyXopiZlZyEUmt/aWCUr66eg4GdnqOaf6qqpaGwo5qjpqaqoqGqoqmkqLKrsbKruaimq6erq6isrKehoKOxrrKxtKqyr6OZnJ2eoZibm5qYmZuVlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWooqejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbWVcU1taTVJLT09WTVRNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6rpI16VWhydXVxYnZ2WFdjYGNnWVhXZayurK+nn56ioZeRlJygnJmYkpOfnKGjmp6alp6ZnZaYfGuQootecJmYj4uNnqOlp6e3tbCms6yhra2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7W4s7itsrSkoJ2loKyhoaKhoJqZlpagnJuYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGDf3x4dmp3dl5tW1JhSVJWSEZWV0tDTUg9S0k4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqK6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuioaCkgG6CcGBjWExbU1pNTFBYUkhNTUeXrKqppaCfmpGSlJiYlpaVjIiLjpWdnJ2cnpadmKWfkYGAs8rKk2KDhYaPiJWgo6GuvL64rLS0sLewrrSppqSlrKm5s7W7w7zDwbe7tquusbi3vK+zsLXBvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaign5+oqKWln52qoqKem5+ooKSnrZmgo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mGhX52cm1pd21obl1YW0NXTkpHTUhDRk49Pkw+NDw6Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqamUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnYpiV15lYFdNUUc+Pj9DQz8+QlF4qK2pqqagnp+ho56fnpudnJSTlZWenpiUhZ2Zn5mqpY1+gbDU0rF0YXN7g3iNlpmVpcDAvrW5u8DDub27rK6nsa2xwra4wsbAyMrAyr+wubm9uMK+uLS7xsS9w7y4tKqzraqztK+zrqqvo56sqLeyraOwpqGjsLGusKSlrqOhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhESlBJP0VCNEZIOTY8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw8Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5V9YF5lYFFHRD1DP0U8Pzk2Tn+qs6eko6KgnqWspp+YnZWSmp6ZlYyKhoiGeGyGn6Khqa2QfXCk1ZR7h0tacHRxgoN6eJO9yMK/xMjN0MjLw7K3tb6yvsW7vszNxszMzNLHvr/Awr3Hx8K4xMrJxMHHv7q0uru1u7ewtrKru7Kuu7fAu7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5WUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtmWlxGTE1FRFRNRUJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEA/QUFBPpKroKeup6KrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9c2phV05FPklZfHBiQj1cjq6soZmbnJ6emZeXmJONj5eXlI+NkIyCg4J2cnBsb42kq66ujoVmg6h/fHZfYmBkaWhjW1J2wMrExMvQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsbGysjPv8nRzcfGycbCvcTBv7+/tb6zrb/Aw8TIxcjEr7+5sri9xMLBu7y8ta6np66ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXVzZWJncm9nX1paRE9NQ0ZRSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6Oz5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOem52Wa2ZdVElEQD9LhZ6lmoSgsq2jnpyfmpiXlJOUl5GQkI2IhISJh4OAgYGAeXFxbmp2orayl3R9fHp6fnl7koRlXFBsaVo8bs7P0MTN1NXY0dfNxsfJzMPFys/K0tfS19LV1tPUyMzHzM3K083O083GycrLwsfMx8nJxr/Ds7PIxcvLzM/Hyr++v73Bx8XMzMnJwMPArrCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3dqZVdYUkROR0BJUUM+Qj06MjJBPEU8Nzg8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY5Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnWNTTEpEQz9CUq3RvbKvppycnKCkoZ2alJSVlIp9eXFsZWJocnBye4WKgHVwbXBybYSkmYZlfHh3f4+XnJBpaGZkqKV1P6TYz9HCz9PW2NXV0svJztDLxs3SytLV19nW2NPW2M3Sys7RzM/RzdPQwMnIy8TMzczPz8bHyLbAy8DSzczQx8rJwMTDyM/N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYWVzY11SXEpLR0FGSUo/O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpaWgoqNbSUBBREFGUHWxr6aalJefnJqgoJ6bnZqViXdpZGFfYGBfXl9fXWFsdXNwb25rcG5yhJCGXl9eWVdxg318XFNxVYq3iWPP1dLQzNDN09fW09XQz9LT0cnT0cjQ19fY0tjS19nU1szPz8nN0szP0cDHxMnHz87S0dLIzM3Ay83G1M/Nz8jFy8fHyczL1NTR1c/SzNPCucWxpai1rqibqKulnbKosLOsrJOPk46Iio6Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUWBKSkNGQ1NOPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI8Ojw3NDo+PD9APUZBRD2CpJygpZ6lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6up6qooaOsZ0M4PT5EWIKqqJ+XlZeZmpyfnZibnZN9cWVjYl9fYV9eYWBeYWBfYGVtcHBtam1vc3SGfk9PUkpRb3tsfmxTclqSrIKR0NXU0MnPzNLW0tHWzc/V1dHF0dPK0NTV1s7T0djX19fMyM7Eys/Nys3AysHJys7P0MzQzs7Mz9DIzNHRy87Lw8rIys3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO/u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSUZGRU1ZRTtAPTMzPDw4Nzg2NTs+QD05PDw4PD45PEA7QDo9OD85ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+ZpaegoKOnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksnxIRkI7Vo2hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYF5fX15cYm1ybm1xcXJydnFUT05NXGF1ZnqFdllng4x0nszS0c3GzszN1MvO0szK1tbQzNDTy8zQ0tPKztHV0tXWysDKwsbNw8nKw83ExsnLy8/Lzs3RztTMx8nQzcnHy8bHwsbKzM7R0cfQz83NzNDFx8G4ub3Dwr3DubKyvrC7w8O1qpiloZiWkZWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTUlRUUI7RD87Njg6ODo7NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9vdo+ajYyXlZCTkZGVlpWQi3tlYmJiYF1eYWNiYF9fYGFhYF9dW11ncXFvcHFtaW1ycV1KQ01OXVtgcWJIXW9nVpHGzc3GxMbNytHHys3NxdDSz83M1MrHys7Px8bO0svQz8W6xL/Gyr3Dx8nOxcPIwMfOyMTNy83QycXF0MnGwsbJxb/ByM3MzM/DyszJx8zQxMXIu8fDycnCz8C9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdJSEdJTVVHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KGoamTjY2Wj4WDg4OBfYSEf3NfW15dXmBeYGNkY19dXF5fYGBfW1pcYWtycG1taGdpaXeDYEZESEdCP01MUVRnXk6XvcfEwMK/wsfJyMjJx7/Ey8XHyszJxMHKycHBy8/Ey8i/ucG8xsi+wMbPy8TAw7vKx8i7ycbFysG+wsvGxcS+xr69wcTGzMbFvL/Kw8XH0sXBycDKysfIxtDDw8bDrsTLx8PKt7+8urOprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdDR0RMREZTPzU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL64vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bV56e52RipKWhnqAhIV/dXh1cnBfWltcYGBiY2RkZWRgW1xeXV5dX1tZWlxhbnFtaWZna2hsfnFbTUlHOEY/Q1NKVGRYlK+/uLi7ubfAwcHDvb24vL64w8nExsG8xr+3usPIv8HJu7a7u8XDv7zCzsPGvr61wb7Eu73HvMO6tb3GxMLDt8C2tr+/vM3Evba6yLu/vszEwsbDxsnHycbQxsLMx7LHycPOzMDFwr+8srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRUJGSkA5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1q7e0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys/FycXHwbrFvayup2Bjd4CSi4iLhHh/hoZ/fYN7dHRjXFxdXl9gYmNiYmRlYl1cW1xeXF5dWltcXWdyb2tkY2lpa3SBbVhLQ05XOTpNRkhbVJWis7CzsrKysrq0u7C2r7OusbrBu8DEu7+6tLG6vsC4x7i0vLbBwr24vcbBw7u1r7O1u7+0xbi7tay5vb7AvbG7trC3urPGvbevvL+1t7XFvb7DxcDExsbHzMW/xca7x8u/z8nHw8XBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpHQkRBREY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJpbZ2+IjoWIiXp4foWGdneBfHNoXV1dXV5gX2BkYV5jZWNfXlxbXlxdXlpbW11fa29sZmNmaGhqd3tfT1FZRTk4RklESmGfl6SnrqqoqqeyrLSvsaetpquyu7m1wrm5ua+qtLm7s8G6r8Cxvby7tbvHucO3raqosLLAtri9sLGosrO1u7yrrranrrauvLKwqriwrruuu7i7wMG+usO/xsPFwLzGwcfKuMXHxb/Hw8K5xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMTE1KRUFDP0ZBOjo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc3Sy8PFwcTPxs3Bwsa/xMTDw8rCycq/wLzCurO1tcOvqrGTW2l+koiOj3t4fYmFeXuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWlpaXGNtbWZkZGRmZ2p6bE9aW0RAOzY6PU2KmpGUn6Sqoaahqairqa+ipZ6prLS1sLy4r7aup623tLO7t7O8r7i5tbK7wbLAr6Wpo6uxs7OovaqrqKusrrW0pqiuoaWwqbOnp6iupqi3rLGzt7q6u7K8vr6+xL+1wcDHyLe+v8W3xcO/u7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlNTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8HLvrvJtr3DvrrKuMHDwrW2vLaxr7W8rqirk2NtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1hXWVxfZWpkYmNhZGRobXddTEpWVlFRPkJ6nZGOh5mcpaCgnqOjpaWsnpuao6Srsa62tqavq6aps6uzubC1ta22ubKwurqxtqWgpaCmsaisqbmqpaenqKezraCnpp+cpKWsn5+npKGhsa2trLK1s7Owtby2u8HAsrq+w8GxubnCs8C9wLW4u72+vMLHxMPEv7/EoIR4cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbq9tqCelZ2gprq2q7Ozu7PEz8nLwsW4t8fAzL+4yre7xbizxbizv8CstryyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBeXFtcXFhZWFhYVlhaXV5jYmBjY2NiZWZrcldQYGdvalp8j5aMi4KWmpyimpydoaOhpZyZoZqdqa6ssLSiqKipq6uktListq+ssrSus7WvsKqfnp+korKkpqq4raKmpp+oraqZn5+emZ2fpZqZo5ycnrCprKiqq6ytsLK4r7i5u7C2vLu6q7OyubO9tLeysbW1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTYzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uci4uL+3ssK0sbu7rLq6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFdXV1dXWFdaXWFiY2NiYmNkZG9sZXR8b0pPgpCUioyFk5qbo5uXmaKkoKKanZ+Zl6yrrK2woKShrKqmobSvsLGsqK+yp7qzprWgop+co6Kto6Kqtqqio6aepqajlpidl5manaCal52cnZytoayoo6Smrauys6q1sLKrsrm1r6qvsrKzt7Ouqa2usbexura6vb+3s7GUhnp2Zl9mX1tZVlNaVUtbUUxKRUhLSUM9P0JCQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+ynaWjmKWxw7W2va20uMLMyMa/xbbBwMfOt8DDvbO5ubLAtrG5u62yta+fmqSqoJSbkHh/g4R/eG9xdHFoZWRoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVVdgYmNhYWJgYGRmcXF2eWA+TGByjYmOiI6Yl5uZkp2dpqGcnaabmpippK2uqZqhoraooJ+tqLWppqetsKS3sKO3oKOcmZmqpqGarbmvo6GknKKgn5OVoZSWlpuZmJaXnJWfqZ6qpKKdo6qqsK2otKyqpq2ysKWrrbOxsLCvr6eop7KtsbSwvLS6t66jlIJ6d2VfYVdZWFNSVEtNXkxQTEdITUxFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rZ2np6Kqu8C9wLmutLjBzMjFwsO9xbjIzLLBwsGuvLu1u7y1ubmwsLGqnJqhqpWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1ZVWmJiYGBhX19gYmdwb3RSMSwpP3iOjomMlJiWmpGbm6SioKSknZudpJ2praSeoKG1pqCgoqeyoaWnpa+lsa6rtZ6gnZWVqaGilK2xsZ+io56emJuTi6CTkZOYmJKWmJiXnqebp6KimqSlpaukpbCnpaKrrK2mqa6vr6uoqqqzpqarr7Sxrry2sbCvn5J7eHNlYlxbXVhOTFFIUmFNVlBPSk5PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLyxt6yepaasuLu8wcW6srm1xMnJwMLGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZoKSMinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVlJUUlRfX11eX1xdXWBhaG9uSSsfKUVvk42Hio6bk5uSl5uhnqmioaKhoaCap6mimJyisKmgoJykqZ2nop6srKqpra2ioaGVmKKanI+rqLCcn6Kfn5eZk4qdkY2Sk5aQmJiTnKGjnKWhopWgoqSlm6OrpaKkqqSqraWtsqmmpaamtaapqK2ztbS5uq+rrJ6Mc3FwYVtXVlZSR1FPSFpcT1JKVEtTTEVHSkM4Ozs9PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Gtnainr7m5s8DIurXAr8XIzLrByczItcm9sb7Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5QWFxaW1xcXF1cX2Jrako7Lz1JXIeOhYmJk5SclpabpKSmpKmkp6ShlqOropOXo62nn5uYmp+erpmcqrOfpaafo6OhlJSblpaSqamtmpyfoaCblJCMmY2LkY2SjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq6+krrilo6SirK2qqKuvtLeyvbWzq66YhXV0aVxZWVNVUkZYTFFbWE1VT1BMUVJJT0lCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njg6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zMxsW4wM7Px7PEu7e7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFBYWVlZXFtaW11eY3BsTUJPdGxrhICLh4+RmpmVmqakoqqopa2ipZacqZ2Tk6KnpZyXj46Zna2WmKeqmJ+dlKWgnpKRkpGTlaiqpZqYmZ6elo6Mi5OFiI2Dj4uRlZGgnqGkmZaflZqhop6Um6WlqKiooLCwp7G9p5+jrLSqrqevtLC5tcCxrrCrkX9zdGJXVFVOUkpHVlBSUkxMWE5LTE9TR05LQUNGREM+Qjc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxtri8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5xam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRRTU5NUldYWVhYV1pbW2BpamZsZHV2YXt8i4GMi5CUkpejlpumo6Kom6SVnaKYkIydoZmWloWEkZqjj5WjnJWWlYeimpuTjI6KkJqlp5uVlZeckZOIlI6LgYuNgJCLkpKSoZqgopaUmZiVoqaajZmlp6inoaC0sqizuKGdo7asqq2ksrKmtbu0q6yxoop6dG5eTlFRTU9ETk5OUEtGTk5KSk5OUUhNSkFITElIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4NTg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKqloKmmpLOqorLEtbWys8bFt7rDyszGs6y6vbS4wK+tqbCepq67r62gmpuelZWIfIRuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlJSUFFUUVNVUU5NS0tTV1dWV1dXV1pcYWVaYFtueGV2coV6hYGMiYyXm4qVl6CeoJejk56Zk4uFl5mLc4yCfY2XlYWSmZCTjo17mY+cjIKJgIqYoKOekJOYloWOgpR+fnOKjnqQh5OQkJ2bmpqSlpCejqOjjomaoKGjpJuitK+sr62gmKa4pqWwobGunLG8qqmvqZmEeHRkVk1SUFBNQ1NOTFBNQlBRSElOU05JSkpFS01HS0s+ODQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpqWmpqayp6a0wbivtLDJxLi5wM7GvrOtu8GsrcStqKGmkp2mt62joJGWl5KQfnh/ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpHTlNTU1RUU1VYWlxoWFpYaXFrZkZQaYl6jn+FlpGGjoyblZqVlZSRjJSIfpKIXjtWbnuLk4mAjJGMj4aGcouEloF5gXuGlJ2Vg5aOkI+Dhn2TeHFvho1+iYGQjpCXmpmTi5CKnYifmIiIlp6aoaCXp66pramonpats6KlrZmtq5iotKOpraKTf3RuYFtOU1JXTERUSlBMTEZOT0lFTFFNS1BKSU5QR0pKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebegoq2hpqaqoKepp6OqsKintMK5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpmHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtIRkhOUVFMT1JUVVdZYGBVU2RsY0Y5OHqOioh2gY2Hf4WIl4qUlYmRhYOShHeHfl9JUG13ipGDfYSMioR/f21+f5N3dXZ4hI2acFGNiIqGfH55lHZnd4aIfoqIlYuOkZOXjISKiJWEm42ChJKblp6dlKSjqKmlpJ6bsKqhpKSRpqqWoqqcoaaninduZl5cSFFRU01JVU1TSUxLT0lIRkpOTU1VS1FSUEdKRD03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnp6+sqrW8tri3s8G7tqe5yLi2qKi1tqqyvKeelY5/iZSplpWLf46Eg354cW9YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlOUVNTVVpmXVZhaVpaUUuIfY2AbHd/e3eAh49+kJmLjnmDjX1zfndxbXRwdI2NgHp+iaqEentodnuOcHJteIGLjZJ4e4B7gHdzcpJ4aHWFhISFfJWLiIqNi4B/hIuNgJSEfICPmJSclpGfnameoKGdoKmln52YjaekkqCglp6epIJzaWJdXUpXUFJIS1hST0pNTFJKSkpMUElMUU1SVU5GSUI9Nzg7OTk+PTo7PDk4QD86Oj48Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZicn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6Rf3eGeHx2cG9qWUtISUhHRUhIUFRUVFdXU1VVVVVWV1hXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE5RUVNWXmJhYGNWaIGOkomLdGByenBzeoSMeYGYkn5vhI16dXluan2tfHSQin56hpKAfH90ZnV8hmxvaHN8io2HgG16cX1xbXaPcWhxgX6OcESLhYKDhX93eHqMhn2Me3V9jpKPmIuSm5ujlpmdm52eoZyWjYulm46dl46WmJB5b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUU9JT1BMRkQ9Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rp6mwr7Gru7irur64s6ynm7CnrJuPlpylqaShmJqOhJJ5iY+Li3ZxfG11cWptalhLRkdFQUBDREhMTE1RUU9RU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFellKTk9RVFhcXmBcWXmZnLx7bXBcdHFpdnODjHZ5iYNtaomQd3J3aGl/gXGWkYqAfZV/SZKZbmd3foJtamRseYWQkoZrc2x8bnJ8hmltcH9zjYmFhnt9fnt3cHV0hoJ5gXlwfI6MipODlpaYmpCTlpaZlp2WjIOJn5KLko2GkJaAb2pvb29ZVlhUUlJZT1JVVFJYVU1PSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYmp+krK+iraqota+urLO/q7zCv6aimpWkmJ6NhIuUoaKYmZGTi3OOeoCGjIZ1b3RscW1la2tZTkRGQ0A8Pj5CRkZHS0tLTE9SUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSk1OT1JWWlFXVVObe1iQYGpwXndqaHl1hoVyfoSBcWqWj3JxemlpnI5MeYSRiISNZjF2h3JrfX2DdGZldX6EhIWAZmlsdWtwgHxocXF8bpONj3t0fX1xcW92bYN/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW05QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo6VmYuOhXqEkJiVjZCMkIdxh4J0h4yGenBzcW9wZHBnX1RGSUM/PDs5Oj9AQURDRUdJS09RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUtBSE9HXqaqmGdyb2V2Z2x9fIB9doCCgnZvnZJyd35xc5KGNXGcp5yNoKGEooV2cIZ7hnxzjK2NiYFoZmJqbnJtcIN1aW9YdXCOm5F2bX97fW5ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2OfHRycW1gXF1eXFpZYV9STltaWFdMSElGSUg/Q0FCSD9DRD07Ojc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTAxMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpGBk4eVkZ2kp56vlaW0qa6wrsGyu8HFlo+MlI+AiHxugZCSiYOKh4+FdYODbJWIiHx1eHhteG53ZGpeSVBHPj83NDQ4Ozo7PT5AQkVIS0xMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1NUEw3Q01QUUJGfGp1cnJud2dwgYJ3eYB/e4h7c56XeHyEfoOYg5qcYIWpnpyLg5COenaHfomIjnOKl4+Ee1xkcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVnaGBbXF5TXGdeV1BUWFtVR0pKRUxHP0ZAREM/QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTQyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2eppGgq6CxqK/AsrvFupaOkZOHeoZ2a3+LkYN9ioOOjHiDgHOghIp9fYF/cIF+emh3a1JYTEBFMjExMjc2Njg4Ojw+QUVGRkdJS01PUVJTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklLTU5RS0pTWlZPR2B4f3KAcnRrdomGdXiEg3qSg3WdloaEjJCTpIysqUiGrK+uioGAlIqBioGFkqmHgZiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZHbYB3cnl2aG1rX3Z9goh/h4SLeZScm4mKiJF/enWKdnx4bW93foF1dXNtXF5eXGNkWGdmXFVQUFdZUERMS0ZPSUNGQ0NBP0NBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2Nzc4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5COlZeSlqCdrKCmuK+zvLOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzg0Ll2WcHOjVUZJS0xNT1dfVmtXWVpigYl8i3l8en+LjHqBhIx9lpF/nZ6VkpmZpKySmbuxprrHw6eLjKGljpOJgZF8cYOen5Gdf3eFhYqPh5BpaHCEgXSMhoSKcoaCd4eAe3aEfG12dWZ/lI6GiIiGh4egqqKWiI6Xf3qBiHp5b2dreH58gHVsZl5aW15qXmFnYFpPTE5XUlFIUEpETkdDSkRDQURDQjw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVvZneCen+Mf4GQjoqamqScoaymqq6wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOhICBjIqCiY2Df4p/bHBqXUJBNC4tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlRSU1NUUlBPSEVCPDg3LzlDPjw8NjMubJOXTVBISkxLSk5WX196ZGNobZCPg5CKi4SHiJSDjouZh5ycj6CnoqGpkqe0oafBwq3Hr3i5lJp8jaGemISThYKOoZ+UmZGFioWPmpGWbHB1ioyClYyNjnePhHFthYGKlpGChYhyiKCVhpGJjY+WpLSom4yUooKHkoN9f2tqanyCg4N1Y15lYFtobF1tbF9XS0hOUlBOTExGSVBDRE5GQkNFRkM+Ojk2PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnB2kYZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXmAkoiRkn2KhJiSkIOAgIuMiYaQh4SJhnh4f2dNUj4vLy4sLy4tLzAwMDIxMjU2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDc1Mjw/UjVISEhMS01OUV5qhHhve3aTko+enJqTm5CdkZiapJqkp5ymqaeos5aqvaq1x8i2yNDPvpugcGmqqZ+Ek5KFnKCam5mmkZGIlaObm3h6fpSYk6GTl5eBlJ57d5WSqrKIjJaefJOdm42RlZijoaW1r5yRmKeGlo+NgIhsc3N9gX5zamJeYmBiaGVgZ2dcUkVKS09OSUlMRkdNQ0hNRkZDQkdFQjs4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbXxhd459e5OOjoqfkpedlpuqmJ6qQkR9h4mHmI14go2Ljo18ioaPkI6BgoCJi4qFkoWDhomBgId2XmJQNTYwLTEvLC4wLy4vLi4wMDE1PkFBTVBSU1FSU1RSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUlNTlBZaoGKc42Dl5yfq7WxnqimqKOksKits66uqrivsbybscOqucnLt8O/t6WisLOsrKqji5aYhKWmoKOXgaaZjaKqqKWIhZSkoaGqoKSpj5uwi5Wjpre6m6Cir5KinKGdj6Khq66rsrShlKSph5mIkomVeXp+hoFpYmldZmNfZGRfZ2dfW09DSUhTTkZIS0ZKR0ZGSEFLRkRGRkI7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2hvWHmEdoGThYeCnIORkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GOg4SBi4WGiJKGgoWJh4iHh3FuYUBFNjQ8Mi8xMTAtLCstMC4tND9DQU1VUFJTVVVWVU1bUEdIRDw+PkZIQ0RBNzs8NUM7PUZLSUZIUU5QV36OmoCmnKigqLjBvaWvwbOpsL2wtbqzvLK/tLm5orfEp7XIx7W9uLSoo7OtsLGbmZKan4inr6ullHafpJehrLK0mZaqrqivtrqyuqyvtaKxq7G1u7a0rbSfpqeippmor6yxuLe3p5q1qIukjZCSnoZ4goV4W2NmV2djYmRhYWdhW1RKRERMVFBISUlESUdFQUBAS0RCTUc9ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFhYld5dHGBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeEgY5/gYmPhn+GiIaKh5F7eG5dV0BETjw2OjQ1QUI3NjQwLzZDSENRW09RVVdVXFdPX1VJS0tBPz5HS0ZFRDs+QDdENz9CSkpFRlZTT16LnqifrK25rLC5xsSyuMG7sbG+tLW/sryutXOvsqS5xKOvxriws7Gzp6S1tqqwoKKXm6KSpbCupq2rp6SYoa20u6Kosrq1vL/Mv8XFvb2zwbe6t762ure4q6uwpK+orL2vvLrBwauYuaeUrY6Xl6mIfYN+bVhlY1lsZmtmV1xkWVZTSUdGTFBHQ0hJQUhEPj9CQkxAP01EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpwfo6EgI6FbnpzeIdiuaGZo4mUlJaSlJONj5eSh4d7hoGNlYqAhIGKenyKh4Z8ioKCi4SWfXh6dWVQXGRHRUw7UWNhW15TRz87SFBEWmNRUVlYWmdZU2BfTFNQRUE/SUpIRUVBQEM8RTZCPkhHSkxTWlRdkKqysLaywre0t8XKuLm/urazubm1vLK4sMRfc7CksZqeqryopKirqqOisrWhqqiflZaemKCupaempZ+klKOnsbSosrO9tsK+08nJ08bCxczCysPAvby+u7u2tK+4trbCucW9wsevnripoauNpKe1iIGBdGFkZF9ZY2BqZ1NYYVZSVUlFRU1KQT5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtKy9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWQc2tycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaKfoOAgnh7i4OHe4t5gYqCl350fXprZXB1WV5cUGVkYmBlZF1cWFdcTWRtVVJtbV9uX1hnZFRZVUpEQktLSUZISEhHQkk6RD9IS1NUVVxaW5C0u7S6scG6trXHyLe0uLS3uLG1s7KttLWXY3SnnK1vXqKsm5egopuknqqllJ+fkJOOlZiYqJ6moJ6amYOknq2lqrCtuLC9udTRz9fQyszSzM/Oysa/vsHJvMC8wMDExMTJvsfNsqO6sLSumqu3u5iAfG5fYl5aYGNaZGRRXGBTUUpDQUVGRTxARj5BSEI/Qz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVtZaF9vlpKQlG5rb3R1h7SsoaGfi5mcmYyNlZGakoaKin6IhouQi4h8gYNze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWZqamhgZmlpbFptc5atpLyIhmdcb2ddWlpUSEtOUEpLUEtTUUlMQUpGSk9fXmFmaWCWtMOuta64ubKvwsSzrrevr7qqsbClqrari7WnnJqmmk2ZnYyOn5aRppillYqTk4mQiY+RkZ2boZeblZaHn5qnm6yvqbCotLTU1NTW08zQ09XN0s/MxMHJ0L3JycrJ0cbMzcLP0bevw7zDuaS1ucGihHFlXl9fWmJZWmZaUV1YTlBBQkhFQkg7QUM+QUc/P0E3O0M+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJncW94eYOhqp6ml4yam5eLjZWRmo59iYuFjYqJipCHfISCcH+HgYZ7h3KDkouOfXF4dWxweH5xem14c21pgHBtY2ptcHhod3x+y77B36dtY3huY1thYEpQUlVOWV5PXVxOUE5UUFRUXG5tdoJxlay1qrGkrbOoq7q+r6mzpaO3paqtoKuzoo2wrZmXmIyOkZGEjpuBjaaRnImDi4SLiYSLhJSWmJeTm5Gcl5man5+rrKWooqytz9LV0s7M09TUz9TRzsfD1NHGzdLT09fM0dHE0dbFwM7Hx8KovbbOnnxxaGBkX1hiU19bUFFUUU9IPkBGQUJFPEBBPkRDPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxVUU1OWnWGhYp3bHdwfX5/oZ6eoYyMmJOTi4ySj5WFeYWQkI2LiYiQhn6Ce3F+gICHeoR1hZOQiH9vdnNsc317d3tzgnhya4BzcmlwcXp5cnq+y5p9i7GEdnKEdmhhal1DWllbVmVjWGNqU1hcXWBjXWN3en2LgZeoo6Ofnp+mpKmut6mlsqGhraCiraGmsZ6IppqTkpGJjo2IgZOJapSijJmEgYZ+kYODk5eti5WNlJmOhpORnpeosKKhoaWkqcnNz8jDzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcjX19HKq8LCy411cWViYVpWWlRdUUtHSkpKQDs6O0RBRDxCQz5HQj5CQjo8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7T0xGSlhwgHV9aHJ4coKJgJ2VnZSFi5WJjomIjYaOf3iDk5iKjIiIi4h+gnhze32Ch3d/eoaRlYCDbndwbXZ/dnh9dIV8em2HdnVvfXaEdXh7nbWMO0GKxaV+jHxpZVdJQ2ZjZWNnamNtd1teZmhrbmhtgIKHkYqcnZ+ckJaXnaKjpLCio7GeoaScn6iforGbhZ2RkZGPioqKhoOPg36cm4uNgoSFeZR/gqmVo42SipeSjH6Yi5uSq7OYm5yonKe+w8a5t8fO0tHS0MzSy8jUztDV2tfX2NTZ2M3Y287J2drR1b7Ky7V6eXBnX1tUV1JcWEZHS0lFRT06NzpAQEI6R0Q/RENBQ0I7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhImBh3x4hZaWiI6Ch4WHeoR5cXp7g4V1eYWOjZx5i298cHB6gHF7gHGDh4Fujnp1d3x8gnV+fIaHr3NYqcK2jZGCcG1iPV5ocnBxcG54doFlaG9ydXhxeYuGjZORmpWflIaLkpqfmp2onqCrm6GZmJ2knZ6rmYqZi4+RjYR7h4eDhIuNn5mTiIOHfmyZeoSYhoiTjI2UjIZ8nImUkK6qlJaYn5mnr7a9qa6+x8zJyczL0MnD0srU19nX2NfV29fT2dvV0Nra0dbI1MqWfH5ra11cUVVUYUpDRkpIPkE+PTc6PT87PUc8P0FBQURBPj86ODdEQjc1NTQ3OS41NTY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEPkNHUmpebWRiZmt2gIhxkZCagHqAjX6CgYGEfoN7fISYjYeLfYWHgHeCeW97e4aBdHmSno6gdo51gnR1gX50gIRvgZCCb5KEdXyBhXp2hnuJt8Wkwcm5gZaaj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWk5SOl5CCiY6WmZaVpJuXnpWdkpGWop2ZqpWQkImMkYKLg4iIgYWPkZ2bmYmFi4GFmHqIiZ+XkIiNiouCfaGJkYy8oZiTmJmdqaamrp+otr/AwbnIys7Oxc3J0dbV1dnV19vU19na29fb2tnYztvGiH18amxoYlZZV1hOTEVOQzs9PTw4Ojs9OT1ANj0/Pzw+PT05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs5OjdJUF1bUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bIqNknd2eop7fn9+gHyEen2BkYmEhXqEh3t1fXRtfH2GfnN+kp6RnoORe4Z+eI9+eYqKboKagHSZhn2BiYV8fpB6j6mOj8OhvYyco5x9iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CRhIiKkJKTjZyZkpOPlYyLlJ6ck5+UkI2Nj4p+jo2NioOIkpaanp6Ii5SRnZGBi3+lmIiEjYKFhIGlhoqMt5idkZWWoqehnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuHt8e25saFpiXVRRT0lETEI8PD45OTo6OTk7PDY/PT48PTk5OzszN0Q/NzM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw6RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PUNRU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97h3p8e4uGgn10g4V5cnlzbYB+hH53hZuhm52Ukn+MiICYiICckm6IqIV6oYt8kY2DiIScfZqQiYyjo6CQpK+fipCLhYuBkoZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlIuGh4uSkouTk5OOi46Jh5WanI6UlpCKkZOFf4qHkYyKiZyWmKKihpKdlaCKiYiNm5CDh45/g4eGpIWMkbKYnZKUl6Gin5mSnJ2os7mtpr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aBygHdqaV9gWlVYWUNASUM/Pj46NDg6Ozc6OzozOzs/PT43Ozo6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNiem1hfpKDb213i3h5fnqBfYZ7e3eGhH9zcIWCenV2dnSEgoR+f5Kmo5+lopaKnZCVl4uKp5dyirKNhKiShJmThZmMopWfl5KJm56jk6qwn5CUkI2OiJaMbo23hZrEyLKboaWbnJiWkLGRZKTNyJWOhoeIj5KMjJGTiISJiIWVmZqOj5OShpOWg36Pi5mHjZCql5aiooiYnpaaiI6Gl5eJhI6MgX+Hj6SIjpOompeTl5mhmZ+Zk52bo7O1pqO8wr7HxcXJyMnCy9TNzdSp0tHW1dbY2tTS2s6FdYNrZ2FgYFFLVlxCQkdDO0E9ODM3Ozw6OT02NDk6PDo4Mj85OTI6STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfHxtfoh4en56gYGDfnZ2gIJ7bG6Kfnl8d3h8hIaLfoujtKikq7OhlqegpqSWla+ig5C4lZGzmoyhoIykm6+jpZ2YkKeXqZmusKSXlJWUkIuYmpagwI6jybirmqOlrZmRm5yynYaFqKKcl4WIiI2Ui4qSj4aAhYaIkpeTi4qTkoaTl4WDkI+bc5CYspWWo6GInJmTj4qQipaaiIqWjYZ9jJifipCQnJqZk5mYoJSgnZSem6GxrqOkuL+0xMfEvcPDv8fOy8nSp8/M09LQ1tjSz9i8dX16YGNXY1hSSUtPRkJDRDU+Ozc2Oj87PDc9NDI2Njk3NzQ9NTs1PEs8Pjs8QkE3NTw7NTI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNXF1ZSmhhO0iEi3p6bYWGeXyEeICFgX1weHx9fG9yjHl9gXt4houJhoSSqLytqbO9sKWus7Spo6KwrYqatZ6juaWVrKSXqa24pqWjn5mpmKqksLGqmZiclJWRl6CXmru7rcqhaba4qrCVmJ6iq5KXvaNeqbKCiYmMlIaQfI6NfIOFjY+Tk4iGkpWLjpSMioyWmJGbmbSWlKqdi5uUkY2QkouYmomRnY+Lipafoo2VjZiZnZKcmJ6UoaCUnJ2mrqeipLO4q8LIxLW6vbzGyMjC0KHGyc3NxNfW0MrTo3N9bGBdVmJUUUdEPjxDQUE3Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGdIYWBicEpAi4l+gHKHh3yBiXWCioN/bX18fH5wd4d3jYGHe42PjIaMmqvDwLC9xryztMG9tK2ss7aMqLKtrr2rm7ujqK25uKunpqKho6Oqr7Kxqp2co5ibmJeeoqalkqO5r6i/vKytsrmlo6d9iIadrbywgouLipCDj4ORjnmBhpCMjZuHh42WjIqUlpOQmZabp5qxmZCqnI6aj5GOlZCPlZaOkKCQiJSbo6yVlo+UnJ6UoJ6bmJ+glJqfqKekoqOws6bAxsOwsLu2xcTDvsynx8PHw7zW0MzEyop3dmVfXWJeT0xDTEBFRz9BPkI8OjQ+QT09NT02PjMzMzI0MkExN0BCTT5HQENOQ0E9Qzw7ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxpRl9pZ1tdXJOMjIh7h4uGg4x1hpCKgW9+e4F+cX6BepR6kpSVmJCTlai0xsnAwszCw7nIvbqwq7m7l7K2ubLArqXApKuwvL2qrqujo56nrK+1samboKqcopyWn7C0p4yjurq1wburqJyypKSolISOqsTDpIKLjoaHhIaVlIx5g4yQjpGgi4uTkI6Hl5+XkpiUlqWgrpyMqZyNlo+RkZSVjZCUkY6hk4aXn5+zn5SblJ+hmaSfmqCboJSYn6akpaekr62lv8PCrqi3tcnDvrbOssS+w7uz0cnIwbV4fHBfW19tVE5JRExMTEpAQT1CRDw1QUQ7OjM9OEIzMzIyNjJBMTVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJoXU1lXGZUY2qajZaKi4iSj4aJeYaTkIFygHuMf3eHgoGPeY2hlqiam5i6vsnIysLSycvCzb3Bs628v6e6wL28xLiswamts7y+qrGqpKWjrK60rre1oJ+un6aimKO0vKmcqLzBo7a2r6uTsKyqrJeGmqqnpZCCjJKklYmAdYmReYSMkZCdn5GOkoqOi5Oil5aalJOhnqmekKSZi4+Pj5WWiHyOlZKRopqUoKKctqaQn5ekpKOln56mmJ6Vl5ulo6ioorKsqLvAxK+ls7fMwLquw7O7vcG5rMLCwb+acXxkW1peXUxNTktHRUNIQUFBREs6NERIOjs0PDdGLjEyMzUyQTI2U0hOPEpCSlFFS0NFRTpFTEI8N0VWPTw9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bEpfWGFaZGVYno+djpaOnpKJin+Jn5KEeIV/lH5/kIiJkICWoJqup6SYw77IxMjG0s3Ozcu8wriwur20vcu7xMK2tryttL+6vK6vqKGoqLaurqmyt5qerKKoop2rt7eqpa++xLG9ubOnqrSzra2XlaWtqaCRjpKxxaeUjnyRlXyGkJiPqZiXkpKOkpSSpJySnJiToKGhm5iel4qMj4+eiFqPlpeSlqSZZpmjnrOllqOWq62rp5yfppeZlpiVoaSopp61q6m6vMK0prS1y8G4qrWss7u4rqi4ury3hHBxXVtXWFBHS1ROSz9BR0RESEZGODVGTTs+Nz5BSy4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZmRNRqaUnJWhl6iWjJCDhqWSiIGHgpqDg5WQkJOOmqGfr76uoce+xcXIx87OztLKvru2sbu7vL/PtsS+t7m3s7K1s7i0rKecq6y5q6mosLCYo66lqKSltMCwq6y0vsK5wLmzp7i0t7KvlaStsLCli5OUoI1zwZl9lpmEjpaZi7CVmZmUkZGZmKSilJ6alZmonJqhn5iKjI+VnV9KlpyalJmkl1SWsJ+vnZ+lla+wraWboaWUk5mYjp2fpqGZtKmqs7y7u6uwssfAuKarq62xsaOhsrK0pXNyaF9dUVNNRlFRUFE7SEpIRkdBQz05S1Q/QTo9RU0vNzUzNDpCNDROV048SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzVGQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTdGJWRkirl5mfoaiumJGXh4qnlo2IkoSfh4Sdl46doJqjpbXJtanHvMPEycvJyM3Nx7+7s6+6uMDCzbXIu8G5trqyr6+0taeknKu0tauqpq6smqStpqWprLq/qKu3t77BwL63srLDsLe9rKOuta26poialqWbdb6fhJmdjpKYmouulqCbmpaUmp6fqJ2mn5mZqZmgpp2Wj4yQnYJtdZKimpWcop+QrrKiq5aqqpirr6WloaWqkpKZnImVnKKelrCmqaq6tr6zsq6+ubago6eopaacnK2pqY1maWNiVE1OSElPSlVMPUxETUlKQENEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQzo5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYUxWSH5lXkhGrJWcoZ+7rpiUnouTqpuRkZOIqo2Hop6Mo62Uo6S2x720wbvCwsjJxcLOyMK+urKvubXAwsq2xrLBvLW7rKmtrbGjo5mqtbumqqesqp2or6ikq6q9u6isvbS3vse8trW4wLC9wLOqtbesv6aPopaQoJ+7nomaoJiWnZ2Otp6om6SimpugmaeksaCanaWcp6mcl5OOlJuKloiMpKGUnKKeoLWwpKWTsquaq62fn6WkqpKWlaCEkJ6fnJWppaGhs7S6tq2otbKynpyjpZqXlZmqoZ54ZGBhYExJR0hOUUlNRUZGQlFKSEBER0FWU0RIPEFHUTE6Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRKiXpJ6fw6ybl6SXmaiblZmajqqWlaimlaytmaKrt8XCvL+4wcLAyMS/zca8vrmysLm0v8LItsCwvLe6t6ekq6ytoaGbq6vEoqWorKaeq6+toqqovrimrb6wt7fHt7S5uL+wvsG3tbK1sL6klqOVkpqTrZ+QoaKkoqKekL2kqJ2oq5ycoJqln7yil6OeoaiqoJyUjJSdk52GjoSNk56koJ22rKacl7OnmrCooJyrn6KNmpaghY6hmpySpaWal6uxtrKqpaqtrJyYoKCSjpCWqZ+UaWZcY19RSkhLT0xHRURJQD1PSEA7RklIW1JQSz1ITlU0QkY4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLS0wTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9TRjxLeGZjWE6im6ObnsWroJ6rnZytn5Ginpakn6aqq5e2saOqs7bFw73Atr/BvMnCv8rItrm1tLG0tLfCxre/sbi1urWgp6yrrJ6en6WkwaWgqq6gpKmtsKKmqL21pbG8t7a2w7Kzt7q+ssPAt7iutLW1o5yklJGToKyemKGcqKiqoprBrKidq62amp2YpZ+9oZykl6qqq6WgmI2an5KdiI1Xf5aepaGguaqnk5m3o5+zoqGcsJihj5uVnoKPoJeXjqKjlZClrrKsqaKipaSVlZyYi4+Sk6SfiWNnXGViTkpLS05GRUFHSz49SUE6OEpKTl1RUUk9TFZcOUZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExQnqCgmJ7Dp6Sis6CbsaaSqaOfo56tqaudu7GprLWxyMTBw7PCw73HxL3Fyr2wsbausbWvv8W1urGxurasm6mwqqqbn6ahp8Gtm6yxnKmirrGqpKi9t6a2u72vt8Sts7TCv7LGs7q3q7W2rquipZWVk6KroJ6fmqeqrq6vu7Gln6ipmZiXkqKjt6Cho5GtrqukpZ2RoJ2UnY6QjJSdmqKfqLWnp42ZtZyjr5ufnLCRoZWZlZuAkqKWkI6goZOLpqywpaeinaCekpKak4WLko2cn4BkaF1oZktKTEtTQUNASUc7O0Y+OTlOTVVfUlNKPk9eXj1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQTdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9nckA4PEiWd2VBNJ+knpqgwqejqbGgo7SplbGrpqKksqytqbuzrbC1tMe/xMO1v8S+ysW2wcnCtay1qbC5rL/EtLivrba6ppmrsqyrmKGnmK27tJyosJusn660sqequrKnubS4srnBqrezw720xae+rq23tamorKGWlpGlo6Ghl5ekrretsbS2n56opJmTlJOjoLaipKWVrbGxpaikoJ2amZqVl6ign5minq+zoqaNmK+apayYm5+nk56QlZmbhpeglI2QnZ6Ti6mpq6GnoJqelo2PmZCChpaJlZ96ZWtebGtOUU5OVD1DQU5DOzpJPzc3UU5dX1JWUUJXYF1CSlNIV0tIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWpXRFdGjHlmQzukpJygpb6lqK6uoKm1qp23r6ujqrS2sbC4t7C3uLjFvcPHvbzDwsjBusLGwrqqtqWtu63Bw7i4qq2yvKOVrrCus5emqJGquqqgprCdqqCvtLOqqra1rLuss7K6t6y5sMK6vb+mw6qwt6+pq6umnZiYqqChoJGXoLCus6qwuJmbqZ+ZlpGXpqC2qKWioq+ws6uxpqqfm5+fmp2lnaGYnaO0sJyfkZSmm6GpnJajopiajJealJaXnpSJkZuZlI6pqaefo5yZm5OHj5mLfoyXhY+bbGluYm5vWFFRWlRBQ0RVQDs6SUE3OlhQZF5RV1dFWV9eTUxTT15MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1ERkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOG19aVxWO4l7Y0M9qJ+coam8oKqvqqKwt6iks7Kroa21va+zub27vbe3wcK/ycO5xMPBwLnFvsG4sLaoq7eyvL+/tKqvsrifl6utqa6YqamOp7ufpa2zn6uisbCzrKq1s7W8rbCxtaywtbLAusW2q72vsbesraqjsaWepaieo5aPmJ+yqbKpqbKZnaebmpSMn6aktK6noqysrbCnsqqwqaKbnqejnpWhmZyotqmYmpKSn5meoaCSraGbmoiXmoyemp2Ui4+Xl5qXpqajoJ6WlpaTgJCVhHuPk4OMl2dtcmhxc19HWWZWRENNWERaOUhCNT5dUWhcT1pdR1tfXk5NU1hjSktDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7R0RGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FWMTUxPWBWXzgpQzNZVVxoSzWMemZMQKWZn6SstaOsqKSurbWorrO4pqewt8a3sbe/wcK2tbrFvszFucPBusC6xbjBurO0rKq6t7u6vrWrr7G3mJiorKusnK6rj6u9nauusaOpn7Gts66utbG5tqqtr7KotrC0urzJsqq1tLG0sK+nobOfmqirn6SVlZqZsaKtoKWvlqKkmZmSjKKlp7Kpoaaxq6m0pa6vs66jmJ2tp5uXnpqarLiimJORj5icoZmYla6hn5eDlZqOnp2al5GKlJOemqWjo6GZlpOSlXuMkIV7jYuDi5Nsbnlvdn1hRmBqWklIWls9e0pHRTZBY1RpW01dYUtcXVtSUlNiYUxLRWBhYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1hUTEWalp+wqLCprKSjrq21qLazt6Oss7fJu7W7u7++tbS3w8DMx7zDvbe/v8G4wL2yva6ourq4t8K3rK6xupaXp66tqaSyqZSvu6SssrKmp6KytLGysbWwt7Oprqyyp7ivtrTDxbaptbWrsK2qp6O2n5+nsJ+jlJuYlLGep5ufqY2pop2blZelpaS3p6Kxs6unsKetr7SspJigrKicnJ2claq5nJWOj4yYnaKYkZmopKGZhpSYkZ6cmJeXiZeQl5uonaWhkpaSkJV2hJCGe4aChI2NbnF4dnyAXExlbFxLT2RdP2J7R0k4R2hXZVxMXmJNWVpXVFhVal1PUEhhXl9QS0dRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3JqTEVEkZmkraSsraqlorCxsqm3r7Wfq7S5yLmuwbzDuLOytcLDzsTAwr61vsDAu7+9tMSpqrmxtrfAvLCstLSeoaexr6ansaWdsbWsqrKwq6iotbqstbK1q7OsqquprKm5rrKxyL+4pLmwqa2tpqitsaWko66jqJydm5qumaOioqOQrJ+joJ+hqaaluKSrtLSkqquprK61rqKdo6iqnKCam5OktZqPiY6IkaOhlo+Wn6OXloeRlZWem5mXlYiYk5WZp52hoI2TkY6Qd36PhH18fYeKinJ0c39+fVxTY25eTlpnXUZElltHOk1uWGFbTWFiTlZXVldVWWheUVNNY1tbVEtGT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RlOzYqSGRISis6ST8zQ0lTLD6Pa0BISZCaqKmhqK+kpqOzs7CztLCwoKutvcy7rsK9x7K0rrTCw9HExb/Cs77Cw7y/uL3FqK23rLO5vcCxrLKtoqSnrquopbCjqrCqrqqxrq6sq7O7p7ewsaiyqqulpaOvuqyqscK5tKy5qamoramnsaWppKKtqaiinpuirJWlnZeemaydoaeooaymo62strCxoKmioKqtsKydnqenqZqkmJmQoaiYhoSPi4qfoZCNj5iekpKIiZKWoZ2WmZaHl5OTl6WdnZ2MkpCNiX9/iIR8d3+HhYZ1dHKJd2xfWV9uYlFzcVxLO4R8Rj5XdVdhWU9kXE5WVlVXUVxiX1NQTmhZWFdLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTM5ODsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDI9XkswLklnREY4PEIwNUVLWDFAlF1ATkaVlqynoKmxnKeosLWsuLWtqaSrqr3JvLG/ucOvsK2zxMPNzsO/wLPAw8S6wbTJxKyvt66zusC+tK6urKepqrGpp6ixpbOtqq+trbCusq2zu6W3s6ysrqirn6Oesberqq26tqS1taSqp6usqq2gqKamsLGjp6WhoauWqqGTm6CmnqOiqqOsop6msbasrKKlopqpqq6pnKGlpKSZoJmWkJidk4GCkImFnaCNi5COnJGTjYWPmqWbk5KbjJOSkZSjmpyai4+Li3yGgoKBenWBg4F+dXiKooZ4al1fbmZXZYdkTkBnkkxEYnpXYlhSZlVNVlZWVE9cXWFWS09pWFZWSEpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC4yLCYwN1haLjBKZ0FBPDxDKzpKT140RIdCSUlElpCupKGqr5epqK21qrWxqqSrqqm8wcC4urS8taazr8TJy9K/wbu4v7/DusK6wcSusbWytLzBvrOyr62srae3qqatr6q3rqewr66xqrWqtrantLerrKSpqpyknrSzqKiks7Sfta2hqqirqKunn6usqLi1qaqpqaKon62bkaqhnaCkoqaiqp2cprSup6WpoqOXpKanqpyipKOgmpifkY+PmY1/h4yHhJ6eiYaMjJGRk4+FiJejmo6Om5KSkI+SoJiZl42LhH90hoJ/fnh1g397eH5/h52PcHFmZnB3XGF0iGpPXZhWSG15VWRWUmNQTVZUVVFPWFtiVUlRalVXVEdPWFVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UyMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIvMjIlLzNSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JGO5WMr6CkqqyZqaOtrrK0r6mkr6mou7+8wbKwua2itq/Ix8jQwL+9urzDvrvEwr+/r7KzsrW9vMGysrSrtKmltamlrbOyuK6hrLSxr7G5q7muqq63q6qeqqugo6G2ramhn66yoLSqn6inqqKqoaGsrai9rquuraGnp5+smY+wopiioKinnqebmamwqKKfq6KhkqGioqeZmamlmJiZnY+Lh5WIfY6GhIWkl4aDhI2IkZCShoeWoZeIkZ6Sk5CNkZ2VmI+LhoZ4dIF/fHR3eYB7dXR7a4OHpHZpXmVrgHVniIx8UlZvXkt4c1RkU1FfTU1TWmdOTVdZZVlHU2pSUj9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzOPjbGgo6Wqo6OirKazsrGopLCnqri+wb2xqbqqp66wycbI0MO+v725v8C9ybzBuLGwtbK6vLm/s7S8rLmso7Smpquxtbexpaa5tKyzvK+8pa2ttautnKmvpJ+krKqonJ2qsqOzqJqrp6mkqJ2iqaepvaq0sK6dqaSgrpyas6KWpJylpJ+lmpqoqqWemqmhm5GboKSdmZaoqZGZmpKQi4KPhX6Pgn+In4+HgX+NiJORkYaDlZuUhZOijpSRi5Gbk5aHin+AcXp5fXtndnx6dXFyfmqGeYWIZF9nY3KFe21oeV1eVUFXe21UYlBSWUtMTnB0XUlaW2haRlZmUEM+Sk9EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpGwmJ6fqKShoauktrGxpKmwpq25wb23saS5rKior8PJyMzCt72/tbjBusi2wrW0srWyvbm6vbauuba/rKKzpqqqrrS2s6ibubuosL6yuqCutLapq5+tsKOcpampo52bpLCmr6Cfqqmnoambo6igrbynrrCuoaqipK6enq2mmJ+boaKcn5uZo6qimpmjo5WWlKChlpuWpayMn5KQkYyCioCAj4B7mpWNin2AjYiSkY2LhpOYkYaUpIqTkoiQmpCUgYl9eWt9dnh4Ynp6cW9xdHhqgnVrgmdjZ2Fuc45tYmpvYG9AXHlrVl5OUVJLSU1UWVZNXF5tV0VZYFBeT0hNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl4+I5GWrJiel6eioJ+no7evraKvr6isuMO7tK6gua+rqLO6x8rHv7jBva+0v7fEtsOyr7qxssC2u723qrm4vqqktKaoqa+tuK+nl7i8o62+tLSgrbi1p6ansLOfnqWmqKClmJ6sp6ieoKqvp6Cml6Kon7C4n6Sxr6CroayknKanqJqbm56jlZybmp2pppabnqiRmJKZnZOZlqGqkZqKjZCHfYd+go58fKGNjYl6hI2GjI+NhoqTmo6IlKCKkZWCjJeNkn2FfHNwfXFzc194d2lucXFwa4BzZHpsZ2VjYWaGgGBbcmpyTU2AaVhaTVFMS0hQU1BHTFtgb1RGWVpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1cNSiVm6WYm5Wsn52ho6C2q7CjtLOpqbnFt7OuobitrayvtcXHwLe/wbmwtb23v7u+sKy+sLO/srzCuKq7urinp7Snp6qvq7KvpJe7taSrurWvnrG5r6mlp6+xm6GkoKSjoJabr6ahnqKor6GgoZKkpKG3sKGmsaufq6OumJ2qpaifmJqdpJOZm5qdpamZm5uklZSXlZyOk5eiqaKRioqQhnqEfoSLeY+Xio2He4OJhYqOj4aQk5iMjpWZi5CXfoaXjJB6gXtwcndub3Ned3ZkbGxsa2qFbmZyaWplaF1kc4FgW2t2aVpKf15bWE9PS0hIU1ZHMzleX2xQRVlWWWZNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFRdaEQuPDJkVywxlKGhlpSbqpujoaKhtqqtoLu3pay9xbSwr6O1r6ysr7TDw7yzvrq2sLO5uLq3uq+twLOzuK+/wLesvbq1paKyqaepsamrsJ+Zv7Skp7S1qJ6yvKmopamvq5mip5yjpZSXoLKkmZ6kqamcop+SpKCkuKmlp66nnaWhqJOgqaKhoZmbnJ+RmZuWn6Gqm5qYoJSRlJeajpOTpKikkImKj4Z6hHuEhn2djYqLh3uChYiJipKGl5KSi5CVlI6OlHuDl5CLd358bHRybGtzYXd0aGhqaGdwhmhoaWRmaWlgamNqaFtme2JgU3RUXFtSTEpHSVBUQCEqaF9pTURXVV5gTEpIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp6ipJGOo6eZnJ6do7Osp6q6tqesw8G4sayjtq6nra+3v7+8ssG2sK6ytra4tratqr2zrrKwvL63r7u7saWftamlpLOmqK2cnMCqp6Wvs6qstbueqamssKWYnamdpqSRmKWsopidpKmhm6Gblp+dp7WmsKquoKCdnqGVoKagoqCam5mbkpidk6WdrKGXlp2Uk42Vl4uPmJupoJKJiouJeYV2gYKBnYeLg4l+gIaJh4aRhJeUj46PkZGRjJN7g5WPhnN+fmZ5b2pqa2Z0c2tiZ2RkdoFjZWZmZWppY2tyW19ZXWxjYU5pWFpgVkpHSUtNU1g+OV9saEhDVlRcW0lKR0ZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao6CPjKyhlpaglaSysaKyvbahscW8urKxo7esqq2puLy6uq3Asa6urravs7izqau5sa+us7W6tbC4vKumnrSpn5+voqitm6G/n7CjrrGvt661nq2vra2imZ2mqKWflZqnpZ+YpKKonZqfmpOcnqyvprqorqKhmpuemZ6kmqSdl56Ym5SYn5KolaqnmpOampKMlZmNlJSbqqeOjoqKj3uCc4GBipiFh32JioaGi4yKk4WVm5OSjo+Rl46Qf4CNjoNvgX9meW1na2lmcHJrXGdjY3SBYmZnam5sZ2pqaG5dbGxycGBUY2ljZlpJRkxNT1hRUVVhZYBVQVdTWVRGSUZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlBMS0rLjM8O0s2MC4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyY0kaGbjY6vnZiToZqpsa+euL+1oLTCu766saa3r6etpLa3t7asu66sqqu2qrO3rqaytbGuqbC1tbCztbmmqJ+1p5ydqKCnq5qnvZeso66wtbWtraCxrbCooZuco6unm5SbpqOdmqmipJaan5uQm6Sqq6m7oKekoJiamZ2hj2uilpmccIKVmaN/dZGpp56UlJ6QiZiagJaKopB5h5SNg21pf3eDcWyGi4Z+hYyHcV9kYWeEmIVrio2UknR3i4R+g5CAZ4eAZ3VoZVdcaHNuTVBpY2dyhWhfZWZubWpdYGGKj4OEZU5LRDlHVGheSkhRUFVVTEhTYXB0ZUZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsLDA4PUc3MDEuKi4qLzU2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoukmYaVsJubk6Cbqqyqo73Fr6m3wre9vK2mt7ClqqK2s7KysLmsqaastKWvtKOpt7W1qKertrKttK2yoaiesqmdoaOZpKWYq7mTpaWvs7etr6WqrqqspKGenKCmppuWoKWkm5unpp2Tnp6Xj52nqaS2sKSiop2WmJeXo4ihjpKahqCHkpygf6V/paqekpKakYiEc3iNjoWIoXaJjWmXiGZ+c3igb4iHhH6PfX+hoKCZgH2HnnOGjnWbimyHgYNtaWVjemxyYVOFbWJsaZhxWGlxcIhZXmlbbGxbiHJuenKFZoaEWl9HTj9HX05GUlZWUVFSV1VnXU1WSVJST0ZIRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiouKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiKp5eDnKudmJidnqqpp6q/w6+xury2wL6qpbewqKylsrSurrO2qqiksK2ltLKcrrW2tKanp7KwrLKnrZ2poLCnn6OimJ+hmqyzk6OlpbW9pq2nq6qsqKShoJifpqOZmKWio5icpKiWk6Kbk5Kjpaaht6SkoKOYlZOXk5yIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZzGeXixpbeXZYDAnL95hIV6koR9kJCRynKXu5zFenK1p7qQe4Btl7GrsHlobFixrm5labySvG5nem5yj9h+U2tjtrJ+gXKUc5qhqpBXT1diT1ZORlVbWFFRU41dV1tRQV1EUU5FSEk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT46Qjw/QTg6Sj41MioyMkJFLy4zMi4rLygtLzE4Ni0gLzQxNkExPTlXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKeTgaeqn5ecnaWssaiwwr2ytcC1tr7BqqazrKyopq6zqa61s6anpbSlp7itnLOxtaumpKexra2wpqqcpqOvoqCfnZWZnpytq5Odop+zuqOrqaKtrqWhnJqZoaefl5qnn56XnqankZymmZOdoaaiobGjn5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUcK6hpH54u31soZB2sV9qtFulgGWckGFng3tngGt5a6llvnFnpot1sWp7sXh0kpRjbm2nbluEoUVoZoeWRXWcYH5nfKSnglpgjKtogJR4eWqnN0qvXFhTbGRbS09YX1xXVjtOik9XVy9JVFNKREZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MDMuMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWDMwG5CilYOtp6Weo6Sqsbestb2+sLbEsre6waaosKquqKivrqOwuq+jpK2yo6m4p56ysrCjpaGprK6rr6amnqKhr5qhm5aUlpqaq6WVmqGes7OirJyjraygnZmWn6GonJieo5+bmaGmpI+copmWoJ+qnqemoZqgoZaVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH9rgaZ7goaIk5STd6tna7Fcq3qNhpR0iXKPh4GBiZCXeIKBi5eLg6CPhLB2d59xbGxsfItOpFhIYmKZfmNopmB5cnVTk4deUaltY3F9hoBinC5RoW9bU2toYExKW2RYXFpCPrJ7WFhBI01oRkNFQUBBMTk+ODg6ODQ7OTk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QEZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuUoJWIs6amoa+pqLOsqbu2wrC7wa24t7+prK2traWssamgrruqoKezrKOrtKOmsrKno6Kepqqxp6+npJ2fn66VnpmUlJSXnaygmZmkqLWvoqqPqqiqm52Ul6Clp5qenKKem5+ipKKVm56XmZyiqZqmmpyboqGXk5GSk52D1ZOZuXCwwX7FhnzWlJu7fJqVpY+NnY2ke46IpIOlg3qseY+dVq96iH6fa7lbuneHhH6mgpR7l3qqeI2dj3qxbo6EdJG8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiFgIl8Y6QzQp12XVBqaWNQQFhoWmRhSkhNcVBcUU9ZZlpDRT9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdIOmFQNzElm6KUmLKoqKa0qqW0qaS8t8Gwub+wtbS6srSnsK+ir7Kln621p5qnuK2ir7Gfs7SwoKSen6apsKizqKObnJ2qlZiXlZWTlaCpnJmWp62wqaOfj62iqJadlZugpaCXoaChoJqhoaebnqGelJiapqCbp5Wbm5+hmJCSlJCdiLJuaLVxq4dujqZytHNytnual6SLj52Non6RoaZ/sXeDkdLSdlyue4V/pG+bqqZrh4V9rX2YmY57sXGSno53s2WXdISeb55nlFHIi1rCXKB5Yl+sYHVzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFQa2BsaFBWR0o5PVVSWldYSUQ/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1gTDYyMKKdkqWxraOrvK2mtKantbq8sbq+trWzubiypLSyoLCxop6rr6OXpritpLGwnLS3qaClnqGppLGnrKmjmZuZp52Vk5eXkJGhpp+Vk6WqsKailpOtoKaSk5+bo6WelZqlpqCaop+tmaGenZCUm6GdnKWVnZWZop6VmJWRmoWse3eodqONiIapb62KgqeDmJihipKbi6J/k5qJroSAgrNccrNSrn2CgqN/cth+eIZ+j52Gmpl2r4aHkZyHdrRhmmWagoKVbZJasFhLmnWYeWZgrF51d4homIhrXa93lZ6PeGw1eciusl9CVG9eZ2BFUGxgcG1WVk0uZmVpU1lQO0JFQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdCX0g6OTmgnpWgubCXtMKuqLOoqbK6t7O3vri3sbS6tKS3sp6zrJ+fqKuelKe1q6iwsaqts6ObqaCfp6G1pqWpopiclKSgk5Kbl5GUoaSakpCmra+moZWZqqCijpChmaekn5SZpaicnKSerJyhnJ+Mk5+anaGYmZuWl6Kgk5ePpp2GqX19pXihjo2CqnCti4GnhpafoYmYmIijg5KIlKt9gIudeW+xWqiCgoifenTZgHeIdKiBjpuMkqR7lI+fhHqyXp1koH6DlW2SXatbWpOAkX9oZ6pjcXyCa5iHc12rWomgjmtvZU9KQ6FcW0x0XWJnTlthX3FzX0tXN0qcmFhHRT1IR0FNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDUuOj4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSF9DMj84op6amsGrl7TCrqutqaW0sLewtb65uLGwtbqourOfr6SdpKamnpOpr6iuqLSrqa6hmKCgpqSjuaGiq6CWmpChn5STnpmTl56fkIyMqLCwp56Xm6imoIyRo5enqqaUl6innZ6goq2koZ6hjJShmJ+gkp6XnJWdoZWWjaqcj65tcrRzqYt1iqdztHhzs4CRpKORnY6JpIeQd7hwjXuLomprtlqhhWWXl2mgoqdulHK0dJOZfrJqhZGHrWp1s2GdZqJvh5Nrl12tYE2hfIaSUnOja3h/fm+Yh3Fcr1Y8nHdmVG9uLlynT2NTa2VibVljXWFwe2NUW1I+PW5xM0NCQD9MOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1RkxeODFDOKacm568oZuywK+tq6unt6m3rrW/tLqvrre2qsC1qKmhm6WjoZyRqamntKKyp62poJecp5+kq7ido6yalZiOo6KVjJ2gm5icn5GTlKq2sKiZlZysqZeMk6WYpKyikZWqsaOfnqarsZmho4+Yopafm5aclqGTnKmclI+qmYfUkpq7c7DDgMOGftWWm7h4iJCYjJiLjKeIeqS2dX53dsKCmrJgg7p5wH12uGO1gYyHqX2VgaupcXt/dLyIp6BpnWGmjq+hfox1h6p9vm9zvHSyg3R4gYpumohxbo2kdL1ed31aYXm8a1pWXGp5XmphZmdjbXdvWVxaQ0BAdEBDRys0RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgYF9fWlBQUktFRko0SExSQEpORUZPQj1FODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56ivaGXssOwraqqq7Gmt6+2w6+4sK24rq3AsKujop2joZybkKijqbKktKWspJ6VmqqYpqy4nKGtmJSfj6Sekoycop2XnZmRlZKvubKslpikqKeUkJakm6OsnZCfqKufmp+oo7Sfo6WOp6GUopqcmJWjmI+vn5KUqZ6FkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSfwbu9mnuBsahwgHORuYN9h4aNh418ioeNmHyku7m9nHR5tKN0d5d2dLB1mZ5mh2qNtXRycXi2jF5/en2JaIN5bnpji6xwdYV/WFunakVlWlRmYGNeY1FnZ3BsdUNOUU1EOltNP0ozOy8gOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlUnPjs8p56hosCllrXDtKuqqKyqqbmusMWts7Kttaazt6upoaGknqCdmZOqo6yqpbWnpp+blaCjnaukvaagqZaTm5ChmpGOoaehkpyXlJiUsbW3rpmepKSii5KRppqlqpuVp6Slm5mhqKWnpKqhkq2el6Sel5eXnZ6Pr6iTm6WhjWp9aZqld4ZyfZqOdHlkh3u9vsC6b5ODcpaIYXNrWl+bimFjiI+Va2CAlmRunndjlmyAmpWUZV5gYnCZiGlyi32GlWdrf3J0eH1/Ylt3dIFoUF1tg317i2tYa3qCc0pKb4ZwTnRMRVhdZ2FMW1dnY19PW210aXFSUURFTTtHSTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTX1Y0KVBfTCgyPVtPJz8yPqmgqKLCo5u1u7ajrKWup6e0sazIq66yqrOivbCxpZ+ip52jm5mZq6auo6S0qKSbmJSgmqWtp76nqKSUk5qVn5mSl6SpqJCekZCYnLCzv62cp56noomTkamaqKOamqqgo5mao6eso6Cso5qxm5SnoJaVnZ+dlrCkl6CnmJqQm5uhoZekoZmcmZmZj5WBZ219cXeSmJSShoy2q42GmJaOioyYloeUlYuEk5SSiY6TlJiUmJaZn6GZmpOgnI2CeqWFbWt9kH2AdYqKgXGCeHl2dYl/fIpqc4F0g3Vld313a296bV9kXXBoTVlaZmpgV1pveG1tZlVPRlI5T1lNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxcYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSiw8LUCzoLOiwKGksrK3oKmlsqelr7Sqx6qrr6WzpMCns6Cdo6Sco5WVn6qmrKKitqufmJaVn5etqaTAnqujlJGalp2YkpShnp6ip5ORmains8Swmqudq5+PlpaonaqbnJ+rmKGanKKkr6eipqifrpiXp52ZmaCenZuvoJyhpZSWkZeTnp+UoZ2XoI6Wk4qKjY6XrpB8lpyDkoKLq6mFgJmXiYSPnoh6hJCIhpqSiIeKlo+bl42Ql52jlZiSkJyNf45nobOvhYqFdnuSin13eXpvZnmPgYCJanWBeYhzaXN/e3aDhoJqdWR6ZmBqZWNkZmtZbHtvaWpdU0xQRF5URUA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaW19iY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RcUTA1TlsxN0UzW0c1PCxAtKC5sL+srK+ysaCqp7Ksoqyyr8Svqaqisa28orObn6aioZyYl6elqaWkpbK0npSTnZmZr6WtvqCropCQnZmZlJCVoZyXqJyEnquso7TItKCqpKqWlZeapp2omp2jqpSen52gqq+qpqSso6+bn6Chl6SenJ6crqOYnqeSlpabkKKXlqecmpZlgpJ8ZX6NmpBjeY5taGt7kqWramWbmH1nhoplZWloe46ij2xojZiRo3draoqYop6Xc2tteoSOiHpYZl6Gg15tjIqBdlxoc3d2kYCIgm54gnh/c255hHR2iYeOg3xqh1lebHRkXXOJaWt8cGtjX1JOV0lkWEFKND5GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJVV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaagury6r6y0saqlqK2usKatrLC7sKimo62tsJ6rlp+jnaGZmaaqnK2jpaepsq6elKOPoq+ltbmlraKOjZmgmJOSmqCZmaWVfKauo6i0xbiloqevnpyVnqKeo5uiqKiRnqGdoaqwrKylq6Gqm6efqKCslqCbpa+jlpuolJ+cmpGilZypl519vYOIcrRyhJ2GrWh4ucS4cZSjo3qmmZlyq4J8y8DAu3GMo4iDnnyXmYmdwL2Blp2djJzBwXyCfJONmsPAfWylsm+MgW/Ken+bd5CDjoF1eYB/eXF6f4dwd4WMk3lteJRjZ2B4ZGBlgmJec2dsZGRZTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUVNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9VQUI7LziWo7nDtbCwwaqolKOvqbCuraWys66ppKWlr6qfq5iaop+cmqqmoZyroqSoo6S0pJyikqWtqrazp62hkZCZnKSSkJ+hmJugnYinraWsrsDAsaGpr6mWkp+doZmio6mjkqChnZ6tr6uuqKSkqKGmpZ2sqJGjmqisqZqcp5qqn5WWo5SfoZWbfs6UeHqkgXmVlptfro9ejqiCo6F8p5abc6uDgK9eY42qe6iHhaB0l5OIs2OCq4agjY2zaoSvdX2XiLdig61ao81ukHZ72nt/mXB9iJJ2fWV7h3Z2a3yHbn2FkJF+bYOQYHJtcGhgX3llXHFnaWRnYFJUU1ddS09ENUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqittKulsqurqqKrpq6qn6abmaWXnKKvn6CeqKeipaCfsKuanZWmrquwqqirn5SRmp+kko+epZiep6Ofrqassai/x7OoqbGulpKdnKGXn6mqnpSgn52drrCprKucqailoquSrLKWpKGqqZ2ipaSfrp+RmKWXnpmSk5CXoHGFjJd1haiGcbF9nnKsf6KfgaWQn3argn2tf5xzrX+sh4afdpmSe3yXfqqIoYuRjJ19q3uJlZCggXutV53Fe49wk8F9gZVsdXCMbWV2ZIZuYXducm+JipKPg26SkWZwdXVxYWdtZl9vaGluZ2RXVF1hWlJTQzlJSUBEPD49QEZFQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08KD0xKTNXQEYhHEc6QzEuK7DTxsays6Ccoo6ioqKsrrauqLGlqKmmraurpqGjnZiilZ+lq5+hpZ+oqKKenbCsl5qWqKeuq6imp56XlJmioZKUoK2bnaejsK2lrbWrus2xraauq5aVnJ2imJ6urJyWoJmen6mzq6urnK2rpaOsmq6xoaerraWXpKmnp6+gkZWiopiTkISkaqR1iXqpdHqycIKmipmMcYmgmoakYGFSrIV/roObdq2CqIaFn3uZl4V6ZoCjiaSYhoKjfal+gpaIrl98qVaeo5KBeqOfgHvDrsSLcq+zs7lxYqmvwnRojIyYjoFunJVxb3p4eXBsZmZlcnBmfWpjXVdgalhZVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NSoyUEtMIyBBOUQ0LCfDydbUv6GZq6egrqKer7SwrqisoqelqKqrqaSmoJuknp2lp6ejnKuZoqygo5+voZyakquktK6uoKeanZWTpqKRm6KooKCmnbGmpqmyrbfIsrWqq6mWkZ2copifpbOdmaGUnZ+nrK2lsJutq6OjqqGyraGpsrChmainrK2zoZGUoaWWmZB7qWyehId1q3l8sG+CpYyJn5aWoJWB0ri0t8mBgbJfYJSpg6WIh6B6mZWaeKrJdJmklKipkJKbjYGdiprGxnlnoYKldIGfjoJ9r11vtGKwdUujh22nR4KTZI6QnZJ8cZmVgXF7dX58blxmanNxZoFrX2FZZG5cX1lJTU1LRURBQj5BPEI/STs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqbKsrKWim7K4q6qhpZqnpKmrqqafpqaYqqOfrqudpaCsmp6ppZyntZ6il5OpqrWxrJulnKCUj6WskZqcp6OhqqeuoqWnqrC1w7GzqqyolIqXnKWaoaOupZehlZmcpqatnLGerqmnn6yjtqygsbiunZmtprCxsKKSlqahmJ6Ngp1OeJqBf596hKN9g6SFh6afnZ+UhLh7fHm5gn/MxsK2eJuhkYuefpqWl4p2n5eKpZekqX+whZ2GoISsfZqVY6ZtpHCPhZCBfJaCcqxgo3JxgJpgvH1SVXSOkqOXe36Uk4x2e3OHgHFdbW54cmqCb1tkYGlvY2RdS0xRVEFJSEZJOjlLP0IxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZZWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJz9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmKmrpKu4qq6gm6Css7KlnqCVpa2trqqnnKanm6OoobOuoqmmsqCYqaSUo7WiopWXoqm0uKOboZyiko+hsZmenKemoaKwrp2mqaO2s8WxramsqZGHkJynnKKknKWXnpmamqalq5yxoq+lppivpLutoba1rJ2cs7C2r7CklpyunqKchY/RtcO3eYeOhZGTkICmeZShd4ygkoSlgopxqoaFtW5yaZqknJWKn32YmYaHj3Ovgqabo46mi5Odi5WQm25xsl2ldJN6nGyYf3uZfG2pYaJxcX+fYnOyuGh3j5SmmH2NjpWOen15kINuanlpenNvgXVeZWVvbmZoYEpbWFg8SEdAVTRARj48Kik2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBfXVtaW1hVUlJRRjoyMjMvLysrKEBRUlRVVFNUVldXWFhXVVVVVVFPUVtVJSEyQUgkKSWSc4yKrb6+vLm0npanpK20oaGZlKKnpq6qq5imo5+loaC2p6Oop7CjlKujjqSto52Qmpqqs7OknKScqJGUlq6fn56npJ2onbabo6uktqzEsKmrqKGMhI6coqCmopWZmZyZnJmnpqiZraivo6abrKa9rJS8r6yeoa6xt6mwpJmnr6GmlnmokH18sHeKgKSliJxtsnChh618oY+DqJWYgKyJha6FoJWqoKKXhp+BmpWAe5J+q4CdmpeLqnedoJKKlJKBeq9epIF9pqdknX98l3Jqr12ka3CGmV1gW4ygbZWRppmClY+ajnx8hJmAa26AY390boB6YGhmcW9paGdDWWFbPUtUM1U4QkJDOCQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFSU1NWWl1fYWBhYWFdXVtaV1NQT05JNzA0Mi4qLEFUVlZWVFRVVFVVVFRVVFNUVldXWFZVVVFIRklKIygovZKag6jFwrbAs56arKCtt6WjjpukoqCwr6qfpaCerZmeuaGjq6CvqZquoZCrqKSWiZqQra+spp6lm6yXmI+soaGdpaGapZ2vmaKpp7eqwa+kqaOei4CNm5qfpp6SlJmalJuapqWmm6qsraSln6movqSWwaqpoaCqsLepq6Sdsq2mqJd1r36Qi5yFh366rYqZZbCNZZWtfaGPg6eVmoGsioSwhqeapKGikYWhXWxrgbNgf617e4OBsW1nbpmZjYmxW361XKSEa8iiZJ+Ae7tXdrVZsnxSroB6rFeAoW2Xj6ibjJiSmpl8epGgf2R1f2OGeHWBfWJqZ3FuZ2ZlUFVkW0FWYD5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOT1FSVFdaXmBgYGFiXl9cW1hVUE5KRkM1NTMuL0BVWVhXWFdYWFdXV1dWV1dWV1hXV1hZWlpbXFhXV0dCO9KfsrG2vbqzwbKinKympLWooIqaoJ2cs7Opn6ShnraZobSoqqyer62eq5uVr6ehjoibjq+rqKahpZmukpiPqJmhnaWfmqSjppqho6qzqr2vpKeenI59i5uVoKCZj5Gam5KamKmgo5qprqilpqKkqLuen8Wlo6efqbKzqqyknbmrqquUgKmSo6+Om4CHpJeZkIKAuMO6g46ck4Snl5yCrIqCr4mnnJumq5F/1r3CqmKkv719fqOCg9e7uLWGlpSEnr2+hG2jgm+rhGycgHqysMeDaauwvKx3dqG+vHOAlo6mnZGckpqge4OTnnxjfntlj2d6g3xhbGZra2NRYVtTalxAVWJDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzc7PkFDRkdJS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbOzsL+4sbyyopytpaWypp2LmKXAqriyqKLAp6iznZ+ynbqon62vpaaVlLCrl4yDm5GupaKsoKOcqp+XiqOSpp6nm5uhqaSZoKKsrqq6raijm5aSfIiZkaWbko+RmJmPmJOpm6GZqqmhqqego6q6nqjDop+soamxsqetp564paysmXN2qqS4hmSJoHBorpGLkG5ud6SQmZ+Bda6ZlHCPi3GWqKScmK+kc21tbWaLeG9ugplwgXpqcWlnipiWmXJpaoWIZ3GGZF2IYmpvWVxmfXamX2FwjZBuZWV/jJOPoZmZmpOZoX2JkZh3Zoh4aY9seoB6ZW1kZ21jS2RYSmtaOlFmRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1dXWV1eXl1cXFxdXl1eXVtbVVdeqZWss6i5uLGzqqmhrZ6jsqqYkr+zxcq+t6qfwa2upKKorJ+6o6SurK2ljZauqY+LhZaWrJ2mqqCdpKOgkYukk6eZqZqXpKuil56npqiwu6usmpuSknyEl42ll42RkJiVjpiVqZagmamjm7GmnaKruZ+vwKajsaSrrq+oq6mltaKstpWKoammt52JlqOZiKqbkZWdkqmzmZqiqqCylqKhnZ+inaGlopWsp42Tk42Hk5yclZGZk5mRj5WFgaWbmZaPjJSUjJCHhH5niX50gnVzh4pwp2x6k4+TkYCBjY6Qj52VopeamaWEiZeQdGqRd3KMeHh9emptZWRwZVVgWUBqXEhkYlBZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVV1leYGFjXV5UUUtFQz45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKaWqamktLWurqKwo62fn7WxkI2syL7Gu7qro6afnaefsamjtqedqbWnp5GYraKLh4mPm6eVrKSfmaifnpKUo5eomqialaeipJGcqJmitrqoqpiakI18gZWLoJSKlZGWkZCUl6aRoJupoJy2o52mq7enrsCtorWkrq2uqqensbafrLqYkaWjp7aikp6noI6qoI6Tn6OrsJqgo7CosJejoJyjqp+enp2XrJ6TmqKclJCWq5qOmZmXkJegkoihnpeVh5ONkY6Vi4F+ZYuFdYZ0d4eCc5xqhY+Sk4+JfYuVkpKYlKOUn5mkhYmbin1zl3N7jIBzfH9qb2VfcWpgW2BabmRRYWVRWjpHR0U+Mj0+OS8qJispJh0mMzE2NjY4Oj09P0FBQ0lKR0pLTE1TU1RVWmBgaWFlVlBLQUNCOjlFTVZbXl5bWlxbW1tcXV1eX11eX2BhYmJhYWFgYmJiZGJcW2OXlaOmoq+xq66jqaasn6e1qpCPnaS1vbCtraOkm3yfpLKkpbGpl5u4pqOUmaqcjoaKiZyij66eopWon6CSlpmbrouplo+pmqqNmqmQn7m3pKWZnI2IeYGTjJqTipSRlJCOkpejjp+fqJ6fuKN/g6+1oq6udKK7obCedniep6+4k3Sro56Jf6t/ZFxidqCOpZ+EmH1tkrOdoqetqqNlnp+Sc3mamHGBmamYbX+iqYplnKadkpeYloyTnJGGnpuRloSTiI+QkomFd2qOhnaFcHqFf39gaIeJk5GKWnWUkGdoj49zfKicnGZ7m4qFeZlqhYyEb3qAa3FlYHdwbGtpXGZlYmJxVFs+Tk5OU0c+QFVEOjEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVlcYGhmZ1dRSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5WloqCur6urqaWoraKnraSSlqu2sbOnm6uorZh0jZ+xoKirp5SXuaCgj5yknpF/iYibnoysmaKVp6GdjpeSnYV2rY+Jp5upkpilipy7tKegmZiLiXV3k42Wk4mTkZCUjZCUoY+coaeZnLGVgIybtJyyjJKNuaWffaeieaCstX+NjaWeg4uGkLCqr42Ll6SbeoGLrIWcnqGmqKeHlYWYd6WbeoicgZeng4J7nLN6ioahmJqVmJaCkZeXhJuZY3qIkIWPkJKLg21wjod5f3B/gIR9hXOFg5SRd5ZoknSgmnR9mYSjoImYf5WNhoWaa4+Oh2x5fHJxaGV5cGpsa1xlbGtmdV1eSVRMUkBFNi5bVVU3KSEwOT4+NzQzNTY4Ozo9Pj5AREk/SUVKTEdTWFtZW2JhaGZZUUg5RUw7PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop6lrKyrp6ygp7CmpqmlmZSvyL+xopeoqrefkYWerZynoqCOkL6emoyfmqCQfYaPmJeHrJyhlp+hkY2TiYWAkqeNh6OepJWZn4efurKnnZuSjoVxdpCJlZCKlI+Pm4yPkqCSmKGklp6rh5+0ibSZrYrKhqisiLaFjK+BrquCqIymmI2dfaiPc3t3nI+nl2iVpHm0jKCdpaeSmMKBf6uImKFynoCapX6XhZWzgaF9oZOhkJiXgY+UnIuZkox9hZOHjZaSiYNtc4+FfnlxhoCDe4N0hICVgI/FZn+ph4+ja56FpJ2EmoGOkImMmnGPlIZpeXZ8eGhpdnJoaGxeZHBtZ25ZZ0ddUk0zRTU3TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05KSkxDUFpdXFdhXmlsXFFFPUtNQEljWF1jZmhnYmJiYmRjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqGer6anqKWrn6S3sKmrppqUoKOkrKWYpqy5pLCBoqmdpp6diZS8mZONoZGej3qEl5aRh6uZm5yaooSPjHeanI+fkIifpZyXmpmHo7mtpJqcjIx+Ym2PipOQjZCMjZiMkJKgj5WhoZmgp36hp4etnZ+WrY+cm5yQhH+gjKishaONqZmMmn+idYGZlGuCrXZNq3iHjZyRmqemgKmrfYOhe3qnap5/kmxnmIaYt4mefm5gZFmDl4CNfGRoi3KZfXmWbF19l21fUnCDXF9reIJfWGSAfIN/lnCnqmuDo25ypXCfhaBqZ6BtXHCOfmdaYISBY1hRcHdmbnVza2pwXmtxbmxqWWlPXVlGOUE1SEVfbDUsSURSTU49ODQ4NTk7NkA7Oz5CUD5RUkxNQkpcXV9XXV5idWBNRDpNT05UYVxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5Wcn7ifqaOmrJGhtbuqrqKZmKGipa2voZ6wtqSpk6KhoKecmo6ZtJmQi5+MlYt1gpSSjIqmlZWYnp9+k4WFrKSHm5CLmquZm5uSiKaxp6GVmoiJgGluiIeLjo6Ji42SjJCTo42Un5+coaR/k4GPoqCTn3aclI6ngZ+lfoWnqoKleIl8hJp+onBzlIiWfJ+NeW2Gm4yZj5qomY6HnXuConN2pmaefnekX5h6fZR0om6Yt7S6dJOIg4C1qGSBxrh7cJW2jHKAmqNjc6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGGdmbSXc32Yn7N1dFyesoNrY3B1d3JpcFlsbXNzZ11qXmJMRT1ENlJCWnMzPVNHYEpSPTwzOTU6OjZEOztASlA/VU1PUUBFX19bWlhgYHxkSEM4TVdVV2JhWmVma2tiYmVhZGRgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOWlKK3mKqbk5+NpLe0rK2gmqKdpKOmr52cs6+tlJmimqGlmZqVn6ubi4iSeIuFcYCWjYmQoY+TlJ2YfZGKjaihh5eOiZOklZybjYypqKWej5eHhH5qe4d+fZCNgouQkImQlKGDl56gnZ+ei4l3nJihjJ9xoYqGqYeapI2Upah8rYx+eqCZeqOTeIF0loiNnH2Wn4abjpiapYWiZKF8iJaQm41tnmibjm+amXuAi6d9cml0q4Ofg3SqaJWaXZuFdoWeZ6prgLhmXKhwgZxglYxep3Z1h4h+nWeadYaTkpeOgJ9vmpFup5peqX95u2t+qlyOhF20aF1ucnp4bGpccWt5emRhZ1hiQlJGTzdXRFJvNUtbW19OWkRBMjUxPDs3SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5cXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4ips5qmiGOUm6u6sa+snqacnKmgn6+cnrKprp+YpJuhoJmXlqCjmYaJjWmIgHJ7l4iLlpaEkZWYkHqLhJWknIqUj4aNn5OenYmRqaOgmoySioCAaYGGeH+WjHqJjo6IkJebf5Sinp+gk5hyaJ+Jno6LcJKMgKmGmJ2gpJ6le7Cto6K4l3ejs6OkgImUeZ17q5l+oo6cmpaIl3GhfIWNr7V9a5qRoXl+mbWjpKuohJl8m32em390qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJpcXuObICIg5l1m3iGibGzf4Cbk6d3g55udH6VcJp0a6RelXZIZWRhdHJ+f29mYWxpd3xlZWJRX1ddVVdAWkZRaEVUV11iWF5JRD1COEBBOklGOExFWEFXUltXREZiXFpgS2BtfXJFQjxVX2JaZWlWZ2htb2JmZ15hYVxdXmBoYl9lY3ZsXWVnZmtkZWxpaWtpk5yAr6yYg1NeoKazubGyqJqijJysnJyqlaKtpaOpkJ+enpualpihnZaIh4l3hoFveZWFkZuLfJGTl4hygYmRoZtzkZCBiZqWoZuFj6qcm5WLi4p8g2yEhXGBoYt4ho2Ih5OZlnyTpKCeooithn21hI2dnHullXmpgJSajoiemnunaHdtfpl0oXNyfJ6GmXCTg659o4OlnZiAo29eqGd1omNvpWGc05B9e5l4c3RiooaQfqN0pJB2a4+zjGCCmIlzqrKovH93g21+v6aptF2cbXtwlm1/cqJxXaRnc6ZgaKZtm9SafoabcHt7mGycfHiYc26ppGdhZXpygIVsaGZkb3Z4aGFjU1xmUVJiSFhKVWFYVFxma1xlUUZDS01KS0JLRThPQFFOWFNZT1NRYGZmalJkd3l3SUZFY15mWmhqVGloam9jamdgY19dXV1faGJhaWV8ZF5kZ2RrZGpsZmhsaJeaf6+rVFtKfqmvsbOvsqObmYWZqqCipY+mqaGaq4ubmZmUmZOToZiOiIV7cH2EaH2Pg5WbgXeRjo+Kb3+Gj5OSbJeUfIqTlKWXg4+rm5SSi4aJeYN2iIBtgZ+Gd4CThoiZo5h7lKKjmZ+Js6Gitot5rKekrqVvqH+ZjYWAmY96pH+hmYaYcp6EpK6vipeMgI2kjZWCraCTdrW2tcmhc5SLgZ9gnpepbXqVh6GcdaKId6B+kpeLgXBNZqOScJqHc6V7eXRhg4FrfaBrcWRfnHF9c5ZoemmztbPGpnKYfXqda5ybq3aFm253eZhqmnx2mHNRRX2zX2p3bHqIZ2toY3V2cW9XX1RZaVBTaUpXTVlUVl5pbG9WaFdNS0FKTUtISk9CUUtQZWNqbWV0cnN/eXxudYl7e1RRT2xeaVxraVJqaGlsZ2xmY2VfXV1dXmliZGlre19dZGhjamZvbWVpbGWgm4eupYNkP5OhsqqurrSiopCAmKqio6aNpqifnqeEm5iXjpeQkJyTjoiDemp5h2WDjX+YoHl1jomMgWmEhZGDjIWdjXqNjJemlISYqpiMkYuBiXqAfYt4cJChhnmClYeJlqCWf5Slp5uVlYNmbnicbKJke3Cld5uXcGWmgJSJeqR5n5aDl3Oed4GKlZePuW6RiqJifZiglIhtcmmqa3WgbW+mYJtpi5BploeblnWigX6aYIyGjXVwiGJooGWefmmbdW9jZoiBbXGiWV5aYqFsXYiLbXp9c3FkpW14omRnp2iZc4yZcKJwVYmQcKBgZqhVi15UmG5udGxzg25xaWt5dGtwUllXV2ZaVG1KWlBdSVhpaXNqWWxXUVJGVlxMWFNiVWlrX3h0e31wfHxyg3uAc3aNgIR2XlJyYmdjcGdQamhobGxuaGRnX11eXWBqYmppdnRdXGNoY2pqc2xma21jnKOXpXlkc2yKpq2jqbCxpp+LgJisnp+njaOinKSjgZaZlI6akIyYkI6Ke4dxgIhoi4t8mJtzdIl+kHtlg4aUioqWmoJ8iYiYqJKBo62RhpCLgol+gICOcmmPpoR9h5ONiZigj4iTqaWciKZ4lZt+pYiWirGXnY+CrpaepHWThXipc6WPhJpupKKMkoSNg7tufaWvg4aFhpKVnJ98pXpyqJWglmeefm+sZJaKlpN3qG2qooGJdomDd6uRpohrkbBrdrOMqWuKhW1tn56RlF99q4uqdn1+iqSddp98g6SVnaBqm4h4rGifro22dXi+jaSTWoOnjqthdXN1cnx1cWNrf29obVRXW1ZhYl1sTV1SXkpebW93YFtxWVtgW2d0ZW5vcmJydGB4en55cnmDc4R+gXt7jIGDgHZieGRjbnJkUmtnaG9scmpmaWFfXlxha2JtbHtvXFxiaWJsandtZ2xuYpWkqZuAf52jlqmpnaimraSZioKYrJufpoqcpp6rnoWNm5CHnJGGko2MjXSHe4iEcI2FfpiTdHSGcpGDbn+LkYeGlI99fIOHmaePgKenj4GOiYWUdoKHkm5si6mAg4yUjomdn4mNk6min45/dJOXiH6BeJOuon6BmnCPhXaOiYJ9e3KnjHF+fXqYlpuEkHl7f36HlJWTinaQmJ6gg3t+iWuMhVt5eXJ6cWlufpKKcoB1gY+Uk3GHhINljH9fgYCLd3VzlHVveW5th2yDhl51Z3eOZX+AhY2omn10e5VqiYhwgXZ9h3dubmiNdHp8mHiFXGxYeY9pb3hzcnB4eHBdbIdvamhXW2BXXWdrZFdjVV9SYHB5eW1rd2Zra2t3fXJydXNhb3ZidHuCeHV6gnWAgICBeYuFg317bn9sZHluXlZuZ2h1a3hqaWllXGBaY2llbHF1blpbYmxkbGx5bmhrb2GOk7anpoqgoZqmo5ilnKuioYSEmK2SnqKKm6ibqpiDgpyMf5eUh46KiY1yg3yPfX6PhHuYj3RzhHGVhXt8kYuGhpCFeX6AiZulj3yooYuFj5CFlYKGjph2coSpho6SnZCJn56IjJumnp+qg4iNlZp+foiWrKeOkaWPd26bjoF4kG59qIVxfpVxa3B9gqCNgJOOi2hsXIKLi5uano5zlYuIcXRrgnd0gVlyboeRgn5/jGpdamV7hoSKgGBpeXube4KLgnWBhYFnd4qGamBvcYB1XnGJgImOpZOEZYuNg253i4Rxho96cWhpZn2Fe5ZbXWtobnZcfHp4dm90c4NoXW6LbGxjWlpfWlltclxgYlpfXmZ0f3x2cHVka2trfH1zfHl1ZG51aG18fnZ6fXt5eoCBfm+FiYR7fXR+eXN/aVRccWlsdnB1Z2tnZF1hWGpoa2txcm5XW2VubGdzeW9oamxgi4qor6CPoqCZnp2Xnpioo6J+g5mujqCViJ2jkaaVgHyZhn2SmYqJh4eLc36BjHaFi4KEl4pyb4BymIaEfpGDg4aKgXuBhY2coZGDqKKIeI6XiJSKi5yXhIN5rIKRmJqVip6diIihqZ6hoaOKh5ObnKKZlamgpqSekZqFk4t6do2Ng6d+f5KQk5SdsqablZ+QjbGSl4OljIyVmp+JkZuCiJGKa3yOd3hlg4eRi3yJnoSHjJCJiYGFhZB3fHp0mqCJhoqdiYSTfn2KgH90bnOEgX12hYaJjqSPgoSMhoKMkIx9h4uKkYR6boSGfnqZa3NpYXSLcX57eHdweHWCXV5vh2lvYF9aXV1TaXJWZV1dYm1odnx9dG9wZWtqaYB9bnmAcmpwcW1ngXtzgoF3f35/hXptgoyGfHp4e316hHlOZHZqc25wemVrZWNiYFt0ZXBmcnFtVl5sdG1oeXpxZ2lrZYyHnLielqGgl5SYmZSYpKCefH+arI+fjoahnYyeln55lYR8jpqKh4SEh255gYFzgYh+iZSEbWt+epeHhIOPfoCGhIZ9iIWPnJ+UiKyghHKKkIaSkYudkX2NeqmEjpOYl4+cloeGm6SeoZmchYKSmpmYj5imn6Scm4+Vfo6HdHqGjYOle32PkJGGmKuhnpSdkI6pjZCAnYyIk5mego+XfoaOg3B4hnJ1YH+EkIZ1jZmBg4+Dh4V/hoWVbnl2dJKiioyFmoSDjHN/iXx8cXF6hoJ6doiNg5GkjoSCjoCDiomKd4aJi41+cm2Agn1vaWxuaF56gGh+fXd2d3Z7eF1gcX5udWFkW11fUmduVWZcXmJraXd7f3JsbWRramiBf2x0gmxsdXB6cIZ5boeBdoKAfYV2cYKNiH57fHx/e4KKYGh7anVoaYJkamNgaVxkdWhvYnVtbFVjcXllcHp7c2VqbW2LiJ61maCin5KRlZiKmp+fn3t4n6eRnIuHppWMmJl6e42GfYmSg42DgoNufIB5c4CFfouSfWtofYKXiYGIjXx9hoSHfY+DkZ2dk4qpnYFwi4uMkoafoYqFjHynkYiQk5iUlpN4jKKen52VmH6AkJqYkouZoqCjmJWQmXyLgnd/go6GoH9+jI2PfJikoqKTmpGQpoyOgZqQiZKWm36Tkn6HjoF1dIJxd2F+gY6GcouXfYmMcoyAg4WGj2l4cniMmJGPf5Z+h4lygYZ7e293eomDeXiOi4KUo5KKhI96hoaHhHaChImJfWhzfoF6fHJtbGhffnNpfXZ2dH10gGtfYHR3cXhlZFlfX1JraVZmWmBhaWp3eoJyZ2xkbGhmgIFrbn5ob3Fsf3mHe2yMgXOAgX6CdHaCjYZ/fHt/gX1/j2lyg250aWGHaGxiX3FWdG9sbmB4aG1XanR2Y3V6e3Jiam96iYyesJGkpJyOj5ePhpygm558d6WhjpiAjaOKiZqWeXyGiH+Din+Jg4F/coB7dHaChX6LkXhnY32Gl4qCiot4fYCOhHmXg5aZmI6XoZt/cIuCkZOFpZuHjImDppWFk4yXmJKSd5Gcn6CXk5Z5fo6Xl42WmpyjnJeRk5l3jYOBdoOVjZ1+gomNjHOXo5+ilJmPj6GMioKWl4OSlZl+mI18iI2BdnF+bntkgX2LhXGHk4CRgmyIg4KAiYVmdm97hZGYi3ySeIuHe3+Ge3pwfXeIhHiCjoeKl5+UgYKLdoiDg4J3fIOKh3hhenp/dX94aG1mYn9qa3h0dHd+cn1jZGFzbnVzbmFaYV5bbWVTZFlhYWlsdnqHcmNrY21maH2CbGl1aG5waoB9gnpukIZygIODf3R8g4yBf356goN+fJBtdolzdW1limxqYmJ1VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPm6yWpqeejYyXh4afk5eZfniqnYuZepidjIyZkHl8gYx+fYR8gYOBeHR6enR9gISAiYuAZF99i5SHf4SGdH1+i4B+mYaXlZiOpaKYgHOHe5ORiaaPjI6KkqCRhJKQlZeRi4GPl56akY+Qcn+NkZOInJyepZeWi5OVcYuLiWuEl4+ZeoiIj4lvl56bpJSVi4yei4WBkZx/kpKVhpmIe4qKgXpxemx1bHx/jH5uhpODlXdwg4R+f4uAZXJqe3+Wl4N+jXSPh4J4hnx0dn58hH97gYqCi5Khj3iDgXSJh32AdHWCiYVxYnx2e3J+cGJwZGV8Y29wd3N5eHR1YndgcGx2bnBdXGBeXmteUV5ZY2FpbnR8imxgamVrY2h3h25nbWlrbWmCfXt4b5CIdIGEhH10gYaJe4N9eoGEfX2OcnmLeHhtbIdqaF9pcmOHZ3FvZXdnbmxhemlqfXt4cGF4bYuAmJipn6OonYmKkoaKnYuVmX54r5mNl36flJGXlIh3fnyKfXyAd3iAgHB1dHxwhn2BgYp/fGFcfo+RhoCDgnJ6gIh7kJOKk5OdlKadlYJ9gX2NipGjiY6KjZiajYaSmZSVjomIjJGbko6MjG2EkI+RiJ6ZoqCWlIiVj2yGl4JlhJiOk3qJhJCKcJablaOTkomLmYyBf5CefZKOkoyZjnuKhYd0c3ZscW52fYt0b4eRj5NxdYF8goOIfGZxbXl8mZN8g4h0kImAc4d4bX58f4R7g4qGgYuUpot6hnt+ioR3fnFwgYaEZml6dXZxfGNfcWFrdF9xa3t6em1zcWZ6Xm9tc21zWFtfYGJsW1BYWWVjaHJygIhnXWppZ2JncY1vZGpoZWlpgXp3dnCOhXSBgoN8dYKIhXiFfHiEhXp/iXd+i3t7c3iDamtfcGh0gGtyb21yZ29sZXxjboB6dnFsd3eKfqKXoaegppuGi4uBj5yHk512gquVk46HoY2WlJCAdHx3hXh5f3Nze4Zsc3B7bot2gIGHb3BbWX6RjYeAf392dYGBgaGHkouUnpmilZh5in+BjIicnYqPhpKYloWJlZqQl4yLjI2Lm4mNj4JtiYuQkImclqGbl5SEloZogqGBZYSbiZB+i4OLgXeTmZOfk5GJiJSMfn2Ol3uRjI+OmpJ8ioCCb3ZwbG1vcXyGanSEj5mLcXeAdYKJgnlnc251gJmOe4eEeZOQeXWHcm6HeoSKeImEgIaNmqGGe4N1gYp/eHhua4GEg190dXRycnlbX3FhcGtfcGt+fHFubmtud2FwcGtybVlZYmFib1hRVFtmZ2N1cIWDY11rbWRiZmuSbmBnZ19oa4F1cnNxi4B1f4OBeXaAi4B4hX94iIZ3g4V8hot/e3eKf2pxY3xjhnxucW10amhvbHZ4YHF/eXx0dXSAg36klZmsnqeWhI2Ef5eUg5CgdoyglJOGi5uNlo6LenJ4dYJwcoV0cneJbHBudm2IdoN+gG1tVVGBqpSGg3d+d3KDeoOig5SClpSZnZObeZF7g4ySo5mTjomUmZKEh5eajJSLiY6OhpyDj4l7couFio6HnJqfmpWTfpJ8ZoOahWaFn4eRhJGCiXGDkJeQnI+QjYuPjHd6kZB6jouMkpaMfIh8gGt2a29rbG17f2F6fpCXgnd6gniDjHx6aHRsc4aVi32HhXuSj3F5g291i3mIi3iHfH+Jjp2bg3t6doKKfHdwamyChHxheXFvbXN0Vl9wYnJiYG1venJpcGZndXVpcmxid2VdV2ZhYHNUUU9dZ2VeeXCJfWBcaXJiYmZmkWpfaGVbZ3B+cGxxdIp9dn2FgHV1fox5e4WBeIiDc4aFf4yMhHx6lHhmcWuDYIh9b29remBqbnR/dV90fXmHeHRzhX14oI+ZsJyljoKLf4OaiICNn4CMmpSPhYiYjo+PhHd0d3SAcXCFdHByhHBsandug259fW10clJNgt/IktaSe3B1hHaFoYSUeJeSmZ2RmnyUc4WPnqGTk5CKk5yUhn+XloiNjYeRjIebfo2Ad3qMfomMiZybnJqUkniMdGWGkIVrh6KEkYiXg4ZjjJGZj5aLl4yNiopxepOIe46IipORiXmFfH9tfGVyb2tse3pcgXqQkIF7fYCAho56emlzanOKj4mBhYR8lIpsfn5tf4p9ioV7g3h/jZOZmIp8dXeDj3hzbWdwgIVua3VwaWt1blRfcGVwWmBtc3lobGtjZ3lzcHFkYHhhYFZsX193UU5MYmdjXXpxinZdXGV2YWJmZY5kYWdiWWlzc25rcneMfXR6hoJ1dn2Lc3+Gf3uJfnKJiIKQioh8fph2ZXNufGWIfm9wbIBZbG55eXNgdnp7jXZyd4p3eZ6Lmq6an5CChXeIlX59i56IhqCSj4WMmISTj4eBdXhweXFvhHBtb39zZWV5cX1teX1qZ2tjpJrB3K7woHJsdoV3hqSGk2+YkpahlZyCknGGiqKXiY2VipCdloOBlpCFiY+AkImIlX2GenR/iXeHhI2cmpiYjY51iXVshIeJfImihJGJnISFXouTmIuQiY6LioSIbHuVgX2IhYmRj4Z2hX1+a31keHZqbnlzWIl7koiGen+BgYaMf3pmcml/iY2JgoF/ipWEa4F1bYePgY6CfYF4fY6UkZePdHJ3h4x1c3FndXqEY3VucWNrd2hSYXJobFZgb3V6YXJkYGl/cXNvW2RyYWJXbltdeU5NTWVnYl53c4puXF1keV5gZWWFYGNjX1lqc2tua3N4jH50d4SBeHd7iXGDhH1+iXp0i4mIlYaMf36Xc2h1cXlsjHtudHGBV3F6dnlyZHd5hoxpdoCJcn+chpinm6OShH1xjJR4eYyehYahjY98lY2AmoiEe3N4cHNqcIJsam19dV9heHd7cXV7Z2BkfOvatcnD3IdybHSCd4ucio9rmpGQnpaUgYlxhIifjYSLlYqMmJR8jZOIg4iQe4+LhY6Af3V4g4RyiIGTm5aUl4WLdYZ9boOAh4aXoYKTjJ6DiWGDlI+HioaKjYeBh2l8k399g4SJjo2CcYZ+f3F3aHZzanV3bFqNfJKDhn6BhIGFioJ2YXJrh4GOiYF+fpGQfW6Ba3eEjoSQgXqAe32PkY6UiG1weYyFdGtwa3J5gmF1anBdbHdhUmVzaWZTYHF3dWFwYF1ohHJ0a1hoaWNpWW5XXHZNS01mZ15ic3SGa1xcZXleXmRne2FkX11Za29lbmp0eIp+c3SBfnt2eohzhYN8f4h2doqGj5iBjIJ7k3Vsd3Z5eJN0bnh7fVh5hnF/b2d4d5KCZHaGhXCJloWZoZqiiod0b5KMcXePnX6LmomKfaB/hJqAgXhydG5vZHJ/aWZteHhcYHl7e3FxgGphZ2F/1baPkaZ3bnF4fXGUko6Ia5uQip2TjId7aIeKmYaBkpGGh5iOfI2NgYGJjXuPjH2IhHpzeoN6cIeAlZmOk5OAh3SChHSBfoiRm52GlY+ffohigJOHhYiFi41/f4JnfJCAfn+CjI+Qfm2DfIN1bG13dXR3dmxjjoKPgIZ/fYaAhYl/cF9xb4R7jouBfH6QiHpwg2V5gYiFioB6hHx9kY2PkYJtbnmLfnVtbmtre39kaWxrWm53WlNqc2liUWNzeG1jZl5aa4RudGJcaF9lbWBvVVxwT0lPZ2ZcaG9ygG1aXGNzYFxjbHdlZV1dWmxtY21qdHeGgHJwf3x9dHiGeIWCfYCIdXiJgZOVfIiGdoiAb3h5e4OTb257gXdeg390gW1penSUc2dziHxxkZCDmp+boIaIdnaUf213lJh/iJGEio6afYyad312cW9samF1fWdianV6WmB4fHpscH9lY2dnV52PX3Jzlr3FhXdylYuRgHSZjYeelI2Jc2qIjpWAe5SMgYSbjHyKhn18iIx+k4d0h4V2dn2BcXWGgZ6UhpSOgoJxfoZzgnqIlpuWhpONnYCIZn6Tg4GGhIqJcoJ+Z32Le3l/f4eLj31pgH2EdmZweXhzeHRsa4+Gi4KLgHmDgYSEgGtecHZ6fYuHhHuAjn9+coBod4GFiYSBd4J6fpWKjot8bWt6iXx2dG9oaH53ZV1yZFlxdFRUb3NpYk5odXlnYV5dWXCBcHRaZWNea25hcVBabFNEVGhiWmxvbnxwWltebWNaY293ZGdcXWBramNsanN3goNxb357f3R1g3qDgnyChnZ+iYGWkXiDinSBh3J5eX6NkG9ve4FxaoJ5en5ubXx2lWtqeIR0a5OMhZ6YoJmFiG9+jHZqeZmPgIKLgpaYinmPlm95c3FsamRgdHtpYGZye1thcn16ZnB6YWVkjrGyd0tiWqXb0phzfJKNkXl/l4yFmpKNh29shZKRenmThoCEmYp8h4B5eImKg5V/bomGcXN9e2p5hoOlkISSjIJ+bn2BdIF3hJmXkoqTj5SFiHB7k4R+hIOJg26BeGiAhXhyf3+Diod8ZXx+hHZjcXOAaXpxb3aajYaEi313eYGFe4NrXG98cn+Hg4h8hId6iHGAbW+ChYyCgnGDd36WioyDd21sfYR+dnplaGp+cmFaeFtac25PWHJ0Z2BLbnd1Yl5cW1l1fnRvWGdeZmtxX29PWGlTP1pnX1txa2d6clxbWWxlWWRxeV9oXV5lbGhma2lxd3+Hb2x/foF1cIJ6gIF/g4B2gYWIl4pxgo1xe4V8enmElIx1a3p/bHB+dX99b3J8e5Nwb4F/eGaRioKhmZ2Sg4Znh4RwZ3qXin+AhYKaioF8jY1peHJsbGZfYW96bl9jcHlcZGyDemBwdl9kZdXrvoszOj6Mj4BzeoaKkI53hZmOf5SOjX9ubYWMi3V8j3+FgpWJfIN4bnaGhIKVdm2HhGt1e3VleYOEp4yDjouCfG1+cnSCeIOaj4qPkZKNjId/e5KIeYCFjoNsgHJpgH94bXx8gYqDeGJ5hIJyZHFpf252cnWCnYyBgIZ/c3Z+gXOBcFtrfHN4iIGKe4Z/fIh4eXBqhoKOgohwgHd9k4mKfXNtanaAgHV1XGlpeXFZV35UW3JmTVtzcmZcSnJ5cF1cW1pddoB2alpiW2hmb2NqTlhnUj5fZl1edmZgdXFbWVVvZFplcXlbaF5gZm1oamtocHh+jm1qgYR/eW6Be32Bf4J6dYGBjJOFcICLbnh9gHt7iJOJgGl7fmp0fHKGe3N2fn+MeniEfnxri4yDm56XjIKBbY1+bGl/j458foCDlIJ/fYqIa3VxZ2ljW2Nnc29gYmx0YWhwiXphc3NeYmOboJBuXTZbsLZ1a4GKfpSHd4iZh3WQjIp3cG2FgoZ0eYl4iX2TiHp/c2d1iH18lm5vhX1odnluZXqJhaSHgIaMiX1tfXR9f3uKl4aAk5CYiYuFinyQinF8foZ8aX5ta4B7eWp6d4KHgXJgd4J+cmRyZ3aDbnV8hpWSgn6DgHB3enx1f21XbX11c4mAhXaGdIKJendybId/jn+DcX17fJCHh3ltbWhsgoF0blxoZnVyUlx9T11yXU9cc3BkVkt0eWtYWlpaYXKBdmJeXWFnZGlqZk9aaU5BYmVcYXdhXHVuWFhTdWJbZW9zWGpfYmhrZ21saXB3fJNsaYSKfXxwf357gX+Ce3eAgImMhHJ7h29yd4N/e4mNj4RqfntueHl2ind9eICCh4CDfn56bYSMiJijjYWEe3aLeWtthYmSeX58gpKAgH6KhHBycGNmXllnX3BwYGBocWZqb4l0YXNvW2BkanZ7f7+dqKXKuXKGhXSVfnqJlYR0ko6HcnNwg3qCc3WGdIh3lIl5eXFjdoV5f5JocYN1ZnZ1Y2p8hIiegn9+jo18cX1ygnd+kI6CdpWNlJCIgoh7iYpseXqAdWh7aWx/eXNpenaAg31oYHeHfWtqdGh7gWp2gY2SlX98f39yfHd8dH9iVXV7cXKHgoF7gXCGind4b26CgYt9fHd8enOMhIB1Z3BnbIiBcW9daGN0b0xmd01fb1ZUWnRuY1FQdXliUlhYXWJyg3RdYlxpZWVja2RSXHFJRGViXGRxXl14aFZXVnheXGZuaVdsXmFqZ2Vvbmhwd3qTbmmIjHl9c3t+eYKBgn12fYOIhoNwdoNzbneCgn6Ii5R/cYB8eHp6gYt1g3h/gYGChHqAdW59iYubnoh+hnt3h3xodYaNkXp/gHyJhoR2kIBnb25gZVxYZlluc2FhYXFsbGiJbmBzaVleY22Ad6naqciHiLNzi3pxj3Z9iZGBe5SLgHV0dX12f29wf22FdJSGeHVsYHmAeIeNZXGCbmd1bVttfYGQk4CAeJKRfHd6bIVzfo+Kg3KVipGPiIaGe3+GbXV3f21od2VtfHZta3d3f398YWJ4hnpodXZjfnxodYePjpZ9doF2coB6fW2AWlVxfG9zgYV9f3driIZzeGpzf4KCfHl7d3pxiX97cmZzZG2Lg2xzWmpgdmZJb29NXGNYV1Z5bmJQU3V3WVFWWF5hc4VwXWFjbWVjXm9jVV5zR0NnYF5naV1afGNSVl12W1tnbGJXa2BhbmZmbHBocHZ4j3Rrjo12f3Z4fXeBhIF7dH2DiIiDb3F/dXF1foWBiI2Le3d/eIR8fYWHeIh8fYF9hIB7fnJ1eIuOn4yJe4p3dYN6Xn6Hmo15h4R0hoeFd4l7Ym5tXGJbW2FWanRkYVxob3Bnh3FhcGZXXGNrf3zKzoe6omtub4xucoVzfoaMf3uThXp5dHl0dHpqbHZjhHaSgnZwZ158gHiKh2RxgGpqcWNYbXuGnIiCgXKXk3Z9em2Gb3+IioZwlo6QiIaMhHt5f3JycH5naHJjbnhxamxyeH18eV1leYB4aXV5Z4J3aHWIjI+WfnOIanB+gHhufV1Xb3xsc36IeoBubol/cHZmdn5/foB1em95coV6eHFlcWBtjIFrcldrX3ldSXBsTlhWX1VWfGtiT1R2c1JSVFdeY3aGal5ha2tmY1pvYlljcUhBaV1hZ19cVnxeT1ZmcVpbamhdWGhhX3JmamhxZ3Fzdod5bpWKdX97eH55g4iAdXN/hYWOg3Bve3h3dXqGhYaMhnp8f3WLf32Gg4SHf35+fYZ/fHh2eXaRlJ9+jX2LbnWAemSEiJiGc5KKb4WFgnqDdWRuallfW11dVGhzZmFZZHJyZ4FyYWtkV1pfaX94vq57oLduY3WIaXV9c3uFiHt+jYB3eHN3bnp2ZWpvYId1joFzamJefXZ4ioJlcH1na2taVm94i6OBhX5wmZJxf3ZzgGx+gI+GcZSIjYiFiYV9eXVzcGl6YWptYW12amdra3l3endaZn19eGVyfm6FdGZ2ho2Gl4BxjGhse4J0bXViW216anN6iXqAZXSHfW1wZ3R9dn1+cHpqeXl/eHZvZGtgbYl9bG1VamB4VkxsbVBTUGlOWXxoYk9VdmxNUVRVX2d3hGdeYXFpZ2FXaV1dbGpKRWtbY2VXWVZ6Wk5Xb2tZXWxlXFplY151ZmxlcWdzcHSBeHCZhXZ/f3h/fIaHfXZzgod/lYNuc3l7e3NzhYaIiYR5gX12j399hYmOhIGDen6Lg3t3fHZ2mZ2YeoqDh2l2fn1thYWVgXKPgnGGgn6CgHBmbGdYXVtcW1NlcWVfWGNzdWl2cGRlYldbW2h/cG9ygHOKZWZ6gGt2d3R1hYZ4goV6d3R2bmp6cGFoa2eGdI2EbmZeXntueYh8Z2x3ZmpkVldzcI6mfIR7dpaQc3txenhseXqPg3WXfIiGhIeEfXVxc21odV1taWBtdWRnZ2l6b3tyWWeBd3VocIB4gnZid4WLfZWCb4xrbnuBcWVzZWBqeGZwdYh5fGF1g3Zqa3B0eW95eHJ7ZX19fXZ1bWNkYGyGfGxqVWpiclRMa2xQTU9xSF58ZmFOVnVlS05UWGFreH9mXmdzamVgV2RYY3JeTExsWWRiVVRVdFdNWXdlWl9sYVxbZGVfd2dtYm9qdG9xfnV0mYF4f4B4gH6GhHp9doKDfpeFbnJ0fHt0cYWFj4KBeot2dJGAfIGVjoCFhHx+jIZ6foB2e6OminmJhoVsdX18doSDjXtvhnN6hX2Cg3VuamllVl1bW1pTY29lW1hhdHtqaG1oYGFYXlppgGlrcIBobWJpe3prdXV1cIeCeoF+d3ZuemhqeWpfZW5ogXeQhGdlWGF2aH2GeW5pb2ZmXVVYb2iPqHeAenyQjXh0bn1tcXR4jX53lHSGg4CGiXZqc3doaW9cbWVebnNfZ2JqeGh7bVttg3N0am+Bfnp4YneFhXmRhnOIcnB6f3JjcWhbbXVkbnGGendhc4BwZ2l3c3Frd3ZzdWKCeX11dG9jYmJsfXxra1VpYmdUTG5pUEhTbEZieWZiTVRyXkpNVVpmbXh7Zl9tcWpkXVZgVm9vWEtUaVhnXlhOVmxUS116YFxfbF1dW2JlYHpobGFvcHZub3d1eph9d4CBeYCAh4Z6eXqDfYGThHF0dH56dnSFiJB+gX2RbHOVgXuCn4V/h32AfoaCgIp7doSsn396iIiEbHKDe3aBgIJ1b4hufYB0ioBqb25lZFhfWlpaVWJrZ1xaX3aCaV5tbFxhV1tca4FlcnR9ampebXh3aXV4c2+HfH5+enZybHpoaXdnXWRzaHp3koBjYlRjbmWBhHV2ZmhpYVdWWWhkkKhvfneAi415cG57ZndteYp6do5xhH5/gIduZHd0ZWhpXWxiXnBvW2hfbXVlemhddIBucmtxe392dmN1hox8iYiBgHhydn50YXBsWHBxYW5vgnpzY3GAbGFtem5qaHl4c3BkhHR4eHRvY2BjbXN9aWtUaF5fVUx1ZFFIV2JIY3dmYkxUcVlLTFhZaWx3e2VlbnJmY1pYXll3Z1VKXWRYaVlZSVdlUUljeVteX21bXl1iZF5/aWpgbnR4bW9udoOXeXKBgH1/iYyGfnZ2hniGjH10dXWCeXp6gouNfX+FiWp0l4F7ip19foV5gHt+fIaJc3GProx7e4eQfmZxiXt0fn13c3CGbXx+bZB6Y3BwYmVdZVZaWVdkZmxgXV10hmhZcG1bXlhaXGx7YnF3dm1jXG91dWl2d3Jvhnl/gXp3bm90ZWh0ZVtndGZ2dpF5X11SZWVpgYFzfGFiaVxUWF5jZJClaHh0goWQd2xteGZ3bHuDeXSHcoF5fXmAaWV3bWBnYV9qYF51a1lmXW9vYnplW3d8a25vcHh5dHVlc4SUgImDiXt3cHJ9cmF4Y1ptbmBub396c2VxgGRebnVoY2Z3enJrbYFzcXtxcGFdZG1vfWRpU2hZWlVOemBSS1pZSGN1ZGFKVW5VSkxaV2ptc3tkbGx0Y2FZWlxid1xUTGReWWpUV0hZYU5Ia3dZX2FuW1tfYmNdhWloYm54eW1vanaBkHltgn6AgZKIhIF3dYl0jId0cnZ2gXd9fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OHhHNwmaF7e3+JlnlldYl6c3l3bHRwf2x5fHCSc15wb2FnYmxUW1pXaWRuZlxccollU3JtW1lYV2BsdmNqdWpqX1tvdXJudXR1a4d9f4F8d29ubGRpcGNba3JkdHaOc1xWU2NfcH5+cIBcYWNeU1phXGSSn2VycYWDkHNraXhrbm55eXpxgHZ/c3t6e2RmdmheY1thaFxfd2hXYl9waGF3YVt8dmpqcm54dHR1aXGCloSIf4V2c2twe2xmd1dbaWxhb3F+eHNlb35bYHBwYV5pcH1ranJ9cG92aW9gWmRrbXthZlNmVVhTUXhdU1BaUkhkdGJhR1ZsUUlQWlZsbGx8ZW1vcmFbWlhabXFYU1BnWFdqVFVGWl1PSXN2WWBjbmNYYWFhXoxqY2Vtenlsb2l2eYZ7a4N9gISafIKEeX2IbY+GcW92en10goJ9i4+Dg5d0eIKUhoGfiXWBgIF0f4Jwh4N2b6KXc3uGjId7ZneLb258cGd4cXtsc3ZzjWtedG9iZ2ZrU15cVmhibW1bXHGMZE5vbVxWV1VmaXNoY3RlZV5bcHdvcXZ2emyIfX99iHeQc2Nka29hXG5tY3N4h2taVFZhYnd7fG+EXGNeY1NaYFpjlpRjbnCChYlyaWZ4bWRydXF6a3l0dW97f3ZfZ3NkXF9XYmRZYnVlVWBhbWRhcV1dfm9oaXNxdHF1d2xthZSDinyGcnJnbntvcW9SWmRpZG9xfnRzYm11VWJxaltebmV8ZGt1fHBxcWhsXlhjaWp4XmZUZFVXUVZvWFJXVFBIZXNgYkZYa09JWVVXbmllfGlseWtiV1xWXHVlVFNXaVJaZ1VUSVtaUE55d1tfZW1qWmJhXl6PbmJnbHp2bm9pdnZ/fm2DgH2GmHt/h4GKf2uTiHJndIB7dYCDfomOf4yTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOCjYx3eG56jWBlfXFnenR5bW1xd4NnZHxtY2dnaFNgX1VnYG1wXF5ujmhOamxgVVZTb2dza2Z4ZWZeWnJ2bnN8eXRuiXuAd5x7emthZWxtXmBvamVxeX5nWlVXX2t3enpugl5hXWhWWWBYZJyIYmtwgYZ8dmtpdWtbdXBqeWl1cm5vfIFzWWtuYFleVmJkWGVxY1RfYmlhYmxaYH5rZmx0dW9teHdsaIaNgIp7iG5xZnB7bHFsYVhfZ2dtcX9ycl5pbFNlcWRVYm1heGFvdHp0aW5qaV5XYGZodVxkVWFWVE9ZZ1NPXU9QSWVwXWNHWmpOSmBMWW1lYHhpb4BlYFVeVF52XFVTYWdPXmNVVEtdWlFadnZdX2ZtaFhjYVtejnFjaGp4cnNtZ3Z0eYJzgoN6iI9/fIqIjnpukIp0bHOBdH9/iIWHkoSVj3p9jI+HkZuEgHyNhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo2NjY2NjY2NjY2NjY2Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjY2NjY2NjY2NjY2NjY2Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERDR2RoZ2dnZ2WQoqCgoKCjgGRnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTQ5XGBfX19fXZGmpKSkpKd8XV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaIiYiJiYmJjY+Pj4+Pj4uIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkJCQkJCLjpGRiYeOipCSk5GLkIyOj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjY2NjY6Ojo6NjIyMjIyMjI2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQi4WJioaNhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCIhYaKhY6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfXt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkIiFiIyGjIiIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4SIh4aIhYmPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin99d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pio6Ki42Kjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgHt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/fn9/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTk5OTk5SVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOSk5OTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGSkZGSkpOIhZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCSgoKSkJGRjnWGkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CIcISQj5B8dIiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4xzb4qPinJ4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX1+fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjXdte4+Cc3iGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH5+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHc25vhHt1doCFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxZWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3RiXmRfYWtxZmhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYl1qbF1lZmdlY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGRkhJSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpaandsYm5yamJZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtrcmthbXRyZlFRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OXWNva1hpc3VwU01PUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZCRkhVYmdsb3BvbWxaTExOTU5PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVDRkdITVpnaGdybm5oZmRgXl5YTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7PklaXVpcZWxuam9tbWxraWhrZFNHRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7Oz1LW2ltbm9qb21ramxtZlFHRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozo9SGNvc21ubGtsaFVDPkNGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN0cnF0eHh5fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5PUpgc3NwaFQ/Ojs9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT48OkJsfWpAOjs+PT4/P0FAPz9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO1tuQD5ERT9AQURfZDs9PTs6PT9BQT8/QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pLSFZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo6bXdIODs6PT5BO0hkPTw9PDg6O0REPDw9PDxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJYHBwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUj08PUlMRkV1dk43ODg6Oz4/V2pBOzw8Ojo7TFI9PT05Oj88PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3J6Sjtcf4N/enx3Vzw9Pz09PkVodEw6PT4/PTxPaEtAPDg8QT8+PkE9Oz9CQEJDQkBCQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFRT9BR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFHcnprYoOEg4KDgH1ePkBDQEA9SnN7WTo9QUVCQVBuXlRQSEFDQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEVudH2CgoGDfn2Edk1BQ0VAPz5Ze4BdP0NFSUpJVGhnZV9gWEZNTUZFRUVERUNBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx7fX99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTU1caWhqZWJnWmFOSUlIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSExOTWZ2b2hraWxuYUdISEdGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiIRWbIWHhoaGh4iIh3xQTE1ObHh2bm1vcXBRP0RDQkNGRkVCQD4+QEFCQEJEPz4/REZIREZHSUtJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pUgYOEhIKChYaGhIKFhYSEhoaGh4eGinVKSVJ0eoN3cG1sblY7Pzs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgICAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpJSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMj2dFWWtvem5sb3FzTzY5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJR09SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouNimdkamxjZWl1gXM8NDg3MzU2ODo4NzY1NjU2NzY3Njc6Njc4ODk6NzU3ODk3OTc3Njo8QEdGSUdJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDY3ODg9Oj1FQ0JlhYOBgIKDg4ODg4aJi4qJiYqKioqLiouLh3Nxb2ZncHJ9ZTQ2ODg1NTc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc2Njk6OTg4Njg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ5e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhIWGiYqKiIeHiIiKioyLiouNh3hzbm9zbXFhOTo7PDk6Ozk6Ozo6OTs6OT09PT47Ozw8Oj47OTs7PDs8Ozk6PDg6Ojo6OTk5PD88PEFCRElKTUtJS0xXb3JzdXN2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuKjI2OhHd1eXJvb11CQkFCPkBDQUA+PT4+QD8/P0A/QD09P0I+QEE/QD89QEBAPj9BPD48Ozo7Ojk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PDw6Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4uMjY2NgXt7dnNxVktISEhFRkhHRUNBQEJFQ0NBQkNCP0BESEVDRUNFREFGRUZERUZEQEI+PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhoaGiImJiIeGhoaHiYmKi4yNjIyMjIyMf3p7dF5PUkxLS0lKSkpJRkRER0hGRERFRkRCSElLR0hHRkhHRUtJS0lKS0pDRUNDREJBQkNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjY2NjI6Je3pwXFFSTkxOS0pLSUtHREdJSUlFRklGRkVMTE1JSkdHSElKTk1PTExOS0dGR0dFRUNGRUZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7Oz06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjI2MjY2Eenp4ZFBPTU5MSklGSklFS0lHS0pJSkdHR0tMTkxMSEhJSk1RTk9OTE9LSUdJSkhJRElISEZGR0dJR0NCQUNUbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhYSEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIyMjIx2d3RxVVJQTUxJR0RISkhNTEdLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRkZJRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIyMjn5kYGhdV1VRT01MRUZHTVBPUFdVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkhHSkZFSEpFREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09QkBCQkdWTkZOUFBUWHuGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyNj4yMjG9fXm9kSFVTU1JLOztTVFJgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRTExLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0dGRT8/QUFFQUNHRURFTFhSTVRVVlhafIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH5hiouLiHNiaVk9W1pZVFI/QFdWWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFVUVlRPT01LTEpJSUxNS09NU290dnh5eHh6enp7enp8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImLjH1zc1teXVxTVVNXV1VbWnWDWVV9kGFcWF1fV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiYqBboaJiIeEi4BpXFxdW1ZXVVhUUlhWY5aAUmVyWFpXX2hQYGZbW1hcZ2FHT1poZ11bXF1dV1JPU1BQUlZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRUFJSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn6AfWBUWFtWVFZTUlJNUE1MZnpbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtcXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fn5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eIem9zWk5OUVFNT0xKS0VGSUZDP1RkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3x9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eXFlVUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGFze3x/gIGCgYF/fXp7gH+DgoWGh4KGhoaBhIGGhYZ2YV5PR0FFRUREQ0FFUUNFQUM+Q0lHVkBITkxHXWlQSEZORkRFRklHSEJESEdJS0dEQkFEQE9RTVNkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNQVVlTVVFRVFJPVl9rbHJ2e3t4eXRybnN0c3l4fX+DgIODgoCCgIOBgmxPSUJCPDw+QEFAQD9rUUtgRUZISUVCP0dMTkdNUlVJQkU/Pjw9PD09Pz0/QUNDQD89PUI+Sk5HVW50dHVzdHZ4enx7fHx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXkpKUFFOS0xRUlFUVVVXUVFXVVBYW2FdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZURCQkI+O0NDQkJEQlxdT3tOT09OS0xNT09RTEtNV01IR0BCPDo3NzU5OT07Ozs4Ojg6PzxCSD9cc3R1dXV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BfXVpJSFBSUU9NUFFOUVJUVlhTU1lUT1laXFdZXV5eX2VfXV5xdmteYGdrd29vbGpvbm5sZWJZSEdISENCR0lGRkZETVJPYVdTV1FQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3p5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BWV15aWE1LVFRTUFFVT0xSU1RXWFRUWVJNWFlaVlhYVlhZXVdXWGhza11WYXRrYWFfXmRhX15ZVVFOT09NSUhKTEpJRkNRUFNaV1RUTlFTWVNcZVVPU1RSTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTpHbnF0d3h6e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQU1RXVFVSXW5fUk5aYFtXWTtEVlhUW2ZKTFBTUk9OTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz89Ojc4NzY1OTk2NzY3NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF1SVFpXWFVUV1RSWFhZWVlTVU9KR09QT09NUkpPUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBTTUlMSk9SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmhpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExISkhGTE1QTUcvRV9SPjM/PmpvYVNSUUBHVFFQUVBRTlFPUVBMSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR2eXt7fX19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nVFFTQUdVUE9RUVBNTU9NS0xLTE5PT1FMT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6e3h6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05MUVNMVFVUWFdVTExLSTw5ODc7PkA+PD1BQEI9PkVIR0NFRklHSkpARkFBQEZIRUpPSFFSYlxRUFJPU09PUExNT05MTU1OT05bV0tNUU9HSUhDSEpMTEtGRkZFP0JDPjxCRz9CP0FkcHR2enp6e3x7enp3e3d5fn58e3FzdHByc3dzeHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENEPTk3Nzk/Qj47P0JAQD5BREpFQ0dHSUdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xOS0xOTU1MTE9OU2ROSkxSSUlJRUFISkxNTkpHSUdCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg5Oj9CPzxBQkFBREVHS0ZDSEhHR0hDRD9CPz9AQT5DRUNLTlJUTEpJTVRHSUlKTEpLTElKTU1PUFJQSkdDTEdDQkpJTE1PTklKSUdDQ0NESEpNTElZcm13eXh6e3p5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9tcG92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFHS0RHSEhHSktJSktERkI9Pj06OTo7QEI/PUFCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQENFQ0lNUEhIS0dIS0RISkxNSEpMSElKTEtNXVJISERORkFDSkpNTFBNS01KS0ZHR0pOTlFOTGJtaXZ2d3p5e3p9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjtAQ0A+QUNERUlFSUpMRklJR0ZGQ0I7QUJDPkBDRENER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lHRU5IQkZNS01MT01NTk1LSEhJT1JSU05SZmZmcW9zeHV7enxsaGpuZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lERkZFQ0NCRUBEQj4/Pjo7Oz06PD5DQT5BQ0RGSkZJSExIR0dHRkVDQD1EREI+QUNDQ0RHSElHTVFJRkZHS05PS0ZISUZFREVJSkhLSUZIT0tDSUxLT0xOTU9PTkpKSUxSVVVST1dkYGFtZ3Fyb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPEJBPkE9Ojo9Pzs+PkBCPkBBREdKRUlGSUhHRkdEQ0JBQUZGQ0JCQkRFREdHSEZMUUxJT0pKTUxJR0hFR0VEQ0lJSEtKR0tSTUJOTkxQTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmRmZWRoaGZuamZtbWhra21yaXF2dHNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd3dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREU8QUBAQzw4Ojw+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDRkVCRUdFRkdHRUlNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFST1BRTk9NTlBNTE1TV1ZYWFVYXVpdZGBpYmppZ2tfZGVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRTw/QkJEPDc7PT46PjpAQj4/P0JFRkRHREVIRURFQ0RFRkdKRUVJR0NHSEZIR0VDRkpKR05LTEtISkxGSUlLSEVLS0xNTk9SVE9IU1RSUFJPUU1OUU5NUFdaVlpZVlpdWlhhYGFgXmhlY2BkZWhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXd1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSEhHSURCQ0hFPEBFQ0U9ODk+Pj08PEFCPD8+QUFGQ0ZDRElEREVFRkdHR0lGR0tIRElIR0lHRkRIS0lHS0hNS0pLTEhMS0xLSU1LT05PUlVWT0tVVlNQU1FSTE9RUE9UWVpZXFpZW15eXWBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdExJS0lLRkJFR0U8QEdDREA6PD5APz4/QkE8QD5CQUZDRUVFSUVGRUdGSEhGSEhJS0pGSkhIS0hGRkxISEhKR0xMTUxMSU1LTU1NT0xQUFFVVldPS1ZVVFJSUVJMT1JSUVZbW11eW1xeXl5gYGFkXWNgZWZgZWhqZHNzZmpnZ2tvcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQ0VERTxARkREQzs/P0JAQEBEQT9CP0FDSENGRkdJRkpGR0RJSEdJSEpMSEhKSklMSkZKTEhJS0pHS0tNTUpKTUxOTk1QS09QUlRYVk1NVFVUUlJRUE1OVFNSV1tdXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ1bndLTExMTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0VBQUVHQ0hISUhHSkdDR0pHSEpGSU1ISUpNS05MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlJQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAREJFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdJSklJTEhKSk5MT0tJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2hmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQ0VFREZCRkZHREVLRkZKTUxLTExHR01JR0pLSEtLSUtLTkxNTExMSUxNTFtzYmRwXmxtVU1OZnNdZmZxbG50Z3BpX2FZbm5icHBia2pqZm9xdGV0bm9cb3VncE1KcXl2a2Fga2VlbXhsa3ZsbXBzcnBycXBxcnFycnJ0cm1tc25ub3BzdXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdDRkNGRUZFRENISEhERUtIR0xOTkxNTUZKTkhKS0pJTEtKSktMTU5OTU1KTU1OW3Jvb25wcGxrTVBRbFdNaWJ0cnBhbW51XFlsUFxubVpxbWtvbXh4dHNpcF1fcmtxalV1eXhvY15rZmJncG9qam5vcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGSENHRElGRUVCRklISEVITEtHTU1PTE1OR0xNSUxLSUpNSUtKSktPUE9OTExOTkxcaGR1XWxxV2xOUFFtVFlrXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHhrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNGREhHTEhFQ0NIS0lIRkpMTEZOTExTUkxHTExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5Zcmtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmltdHVwc3V2c3FwcHFvcXR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFBPkREQkdESElNSUZDRkpMSkdGS05MRk9KS1dSS0dLSkpOSUhKTElLSkhIS01NTU1JS0tLU2tjW2leX2ljcnJaX1lqbl9lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bgam1xcG50eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFxdnR3ckdHRklERUNGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElGS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT05RTk9RSkpPUFFkcWlUWVdcW1xWWVtdWF1cXGNmYWFlYmNmX19ma25pbXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0VFQUVDQERIREZHQ0lLTEhGREdLTElFR0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJR0hJRUZMSUpMT01KUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSS1lhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHJ4cnhzcXJ1cnRPQkNETE1CRERCRUlFR0dGS0pLSEVFSUpLRkVISFBLTU1KTVJIR0VBSEZKSUtMSkxKSEZESUZERkdFRktIQ0pNTExVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoaGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFSSkpNSUVDQkNHSEZIR0hLSkpJREZLS0tFRklKTktOS0hMTkdIRT5HR0xJS0xLS0tJR0RIRENERUFGSkVBS0xKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR4eXl5eX9+fXl1eXZ2cm56d3Z4WVFLRkRHRUJFR0lGR0hIRkZJR0hHSEtJTERES0tOTUxLSEtKSElGP0dHTktLS01LS0tJRkdDREBEQUhJQ0BKS0hQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYl1kY2JkY2ZYUVZUUVpXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGREZLSkZGRkhHR0lHRkZJTEpORkRLS01OSkxJS0pISUZCSEhRTUxLT01KS0lHR0VEP0VDSUlDQ0hHRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11VWWFSUV9fYmJgYGJiYGNiYWRkYlhPUVBRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYSFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBSEZER01SSENRSkVHSEhFRktKTVBFRklKS05MTElLTElJSERIS1FPTU1QTExLS0hJQ0RBRURJR0NDSEZEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1OWGFcYGBfYmNiXWFiV19fVFBPT09XUVxbW1xcXl9iZmZlbGVvb3d8e4B7fX+AhISEhISEhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+Sk5GREZGSERJUmJQQ1ZeSUdHSERGTUpQUEVJSUpLTkxLS0xLSUpHRUpOUVFOT09NTUxNSEtBREFDREdEQ0NGR0JNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TUEtPU1JVWllXWVhYZFdPU1RQUE5NTlRSWlhYWl1cYGFkZWNnY2tscHNyeXl/e3p/hISEhYSEhISChIB+e4GDgX17hYSGhoaHh4WFhYSEhIKBgH1LSUVFSEZHREtNXUxGR1hMR0hKSEdNTFFQSEtLS0tNTVVOT0pKS0dHS1BTU05QT01OTk5HS0ZgRURfTEVnZEZOXEleW3JtT01VbVlMRFBgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYWJfZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUdGSEVFS09TSUpGYFNISk9KSU9NUlFMTUxMT1JVUk9PSUxOR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXJ0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fWm5YXVZcWFVraFVdVmNaYFlbX1ZWWH9qdHV1Xl92XldhW1tmW19gYWFhXV9hZ21wbF9wd3R4gYGCg4OCfn1/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEZJS0VRVUxLTklLUlhXUU5OT01RVE5PUU9LS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJvb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29ycnt8b354boByX2BgYmFaYF9na25rYmxmZ213foGAgn17eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOTEdgXUdBRU1NSEpKR0lPTk1NSk5WXllVTFFTTlhaTVNTUk1LT0hRUlRZV1dRVFBQUFFLSGd4bGN4cm1bS05WeXB1bXVib3ZQZWVJZnZxbXdvgGpmeHdpV3JRaHptaWp6en1seHp/b2hvWXZ2anZ1cIBfcmZ9aWx4fG9eX19iYVpdYmRnaWlkZ2JjZGxscHBzdHNzc3pxcnhibHVncnl7c3J2eX6Bc3V6bnx9eXhybk5LU3VOQ0JGUFBISktJS1BOTk9NUFpgWldLVFdQYV5SVlFZUkxQSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JncXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXF9kZGlnZ2VlXmFiaWlpamtub2txb21qcGFjZmNvd3hvbXBzeX9ucXBre3p0cm9tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xZVU1VWVVlWFJSWV1TTE5JVFRXV1lXT1NOTk5RSVJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9acHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbF92dWtpdXt6bX54a3xwXF5eYlteYWRkZmVlZWJaY2Npa2tyc3J2Z2xpaGRnYWFrYWdzcmxnbW1yfWttaGt7dG1ta21PSEtLSEpISFFQTE5PTEtSUlJPU1JXUlZUUFdaVlZVVFRhX1BOTUpUU1RRVlZOTkxNT1BLSFFOUFVMS0xTVFRTVFBWVVFRTlFRWFlSTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1hYUl5ZV15XVVBZUldXV1dYXlpncl5bW1lcXV9jWl9jY2RmZGNjYlpjYmdmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdnanVqaGdpbFBJS0xMTUtKU1FNUVFPTFZVVFBUVVhVWlVRWl1VVVRXVVlXT09LTVZUUU5VU05PTUxRUExKUlFLUU1LTFBSVVNRUlNTSUhMTk9RUlFQUVRWUlhXXFdTUlBSVFVVU1pRTlNSWFZUWVdVWlZUUlZUVFVXWFZcWV1gXVtaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWdqa2VkY2ZoUEpLTE9PTE1TUE5TUVBNWFdVVFVXV1dZVVNcYFZXVllVWFJQUEpOV1NQTlVQTlFOTFNQTU9VU05STk1PUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXVlZZW1RQVFVYVVVaVlhaVVNSWFZVV1tYWV5cVVheXF5cW11gYF1bYmJjZ2ZlZGJYX2FiXmBnZGZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmdmZGBiY2JPTE1MUVFMT1RPT1NRT1FbWVdXWFpZWFlWXWpkVlhZWldWU1NPSk5WVFBPVFBQUE1NUlJQUlhUUVFPTVBUVk9YUlRVVU9OTVFUVVVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUVlZWVllUWFhWU1JZV1ZaXllcXl5VXlxeYFxbX19fXlpiYmRoZ2RkYlhhYGJeXmZjY2BiXVxcXFxZWltYW2FcX11cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xYWltkcW1oZF9bWFVVV1FMTVZTTU5ST1FST0xRU1JVWlVTUFBNUVhXUldTU1NYTU9PUVRYVlVVU1VZWFteXVtbVlFOVVZVW1tXUlNXVldYVlRZW1VUUlpYV1xeWl5fX1RhXGBhXWBiX1xgXWNgY2doZGZgWWNgYV9fZWRfYGJbWlxbXFlaWVhXXFpcW2BeX1teXmFgX2NcWWBbUU5PTlZRUFRRT1RUU1BXXFxcWF5cXlZcXmpxd3mAY1xbVVVXUE1PVlNOUVFPUlRSTFJUVFlaV1VPUk9TWFdUU1VSUlpPUFJSVltWV1dTVlpYXF1bW11WUk1UVVVbXFZSVVZWWFlTVVpcVVNTXVhaXV5cYGBfVmFbY2JdYWReXGJhYl5jZmlkZl1bZGBhYGBjZV9iXllaXltcW1hYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1tUV1dRTlJaU1JRVFJUVVRLUldWW1paU09TUVZWVlRPV1JTWlJUVFRYXVdYWVNYXVheXVlaXVRUTlVWV15bWFJVVVlZWVVXWlxWU1deWl1dYF1iYl1ZX1tlYV9kZF5eY2NhXWVmaWRmXV1kYWBhYWJkYGJeWFpfWlxbWFhYV1dbWVtgXFtbXFtYWlteVl5ZXVFPT1JaUFpUVVZWU1RUXl5gXl5iXGBVXV5ia3l0bH1rWlRZVFBQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUlZRWVhZX1taVFVWWllaV1haXFdVW15dXmBhX2NjXF5dXWVhYWZkXl5kY2BcZ2RoZWRhX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QVllRXVVWWVdXVVhfX2FhYGNdX1VdXmJlZXWBemhXWFlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSWFNXV1VTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWFRZWlphWlxWV1hbWltZWVpbWVdeX2BfY2JhZGRcYlxgZmFkZmReX2RiYVtmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lYXVpbW1hYWVtZWlpdX11UWV1VTlNZVlNcVFZXWVZWXGBhYmNgY15fVltgZGFfenVvaFlaWVVXVFdbWlpcWVhZYFdQVV5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1pdXlldVVJYV1lZXWJaXldYW1xbXFxbWlxaWl9fYGBkYmNkZWJkWmFlY2ZmZV1hYmBjXWJjaWRjZ19nXmFhY2FhYF5fWFRbWlpbW1hbWFhcW1pbWFZZWFdcW1tgXVZdXVNPVllWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheXFxaVldYWVxcXV9bWVtiVlRYXl1hY1xSVllQV1dXV1dWU1VUWFxcXmBgXWBcV2FeW15bWl5XVVdXW1tfYFxfWFlcXF1eXlxbXVlbYGFeYGRjZGVlZmJYY2VkaGdkXmNgYGVjXGVpZGVpX2ZdY2JjYWFgX19bWFlaWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWVhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZcXV5gYWBfYl5ZYV1dXllcXllYVVZbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZWNlZmVmYlpkZmZpZ2JfY15hZmRZaGhiZmljZV5iYmNhYGBfXV1aWFxZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVZcW1tdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXXFxfXWBfXVtgZF1cWFtiZWNhUlxaT1lYWltbWldaWWBdYGJiYGFjX1xiXV9dW15dWVhUWF1dX2BfYFxbXl5gYmNcXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiW2NnX1xpaGJoaWVkYGJhY2FfYF9cXVxZXFlYV1hZWFdcWlpXVlhPWFpdYWNmZnJrf0pZV1xaWl9cW15bWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5ZWFVbX15dYWJgXltgYWJmY19dVF1gYWNkZGZlZ2VmZmVeZWZoaGdkZGBaZWddYWdoY2hoZmNgYmFjYl9fX1xdW1pbWVhYWFZaVlxbWlZWVk1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4SCgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7enp6enp6ent8fHx8e3x7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXp7e3t7e3p6enp6enp6fH19fHx8fXx7enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a8homJiYmIkMzT0tLS09haJSoqKioijNvS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIqU3ebk5OXl61QTGhoaGxCP7+Xl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXl5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2DhISEhIOEeHNzc3Nzc32EhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnd6eHp5eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3l5eXl5eXl8fX19fX19e3p6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2eX17e316fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjYyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fXx7fnl8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3dnt9fHl8enx7d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp5en17e3x7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4e3h6enl7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGhIOEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYGAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgYKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXFxcnN0dHR0dHR0c3N0c3NzdHR0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXFwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzc3NycnFxcHBwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXNxcnJxcW98gm9wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFwh4ZwcnFwc5iCbnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF9oYJwcm+LnnxucHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXWdoXdxd5+cfW9xcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXFxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZiokG+Co51+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4d3d2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4GDeXJzc3JycnNycnNzc3Nyc3Ryk6mkeYignXxyc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f4B+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn18dnZ3d3Z1eHp4eHh4eHd4eXmftKmkqKiXfXt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7fHt7ia+mobWrrKN+e3p6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2YpZahsqCZp5N9gH99fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgZycjqCvoJ+in4CAgYB+fn9/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYGAl5qOmLGhmJachXx+fn6Afn5+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+foCBfn6fq6WWpJublqCfhn9+fX+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgYGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KDg4aNn7KooqCYnZ2mqK2ooJmQh4GAgIGAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4aNoK2xppuaoJuenJydoaSjnZSHg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYOLl5mXlpigmp2dnZmal5CJhoaHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBho6Uk5eanJyblI+Jh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5OSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDg4iQk46UmJKHg4KFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgYKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGTkZCOkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKBgIebh4uHgoKCgYCBgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo+PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAf4OIjoCBgoODgYCBgIGAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYmGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/f4yVgoKBgoSDgoeIgoKEg4OCg4ODg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChIOCjJGBgYSFhIOEg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSk5CNjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYycjoCCgYGCgoSUlIyBgoGCg4GOm4mDg4ODg4ODg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpOSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZiMgIOBgYGAjpSMkIGCgYKCgY6doaWgkYSCg4SCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4t+hISDhIKDg4KNiYWMgoKDgoODi5KPmaall4SKiIKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf319fX+ChIODhIaPlJWSmKCgmJSGg4SEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaGhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39+f4CDhIOEh5iXm5iWmZiak4aEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWFhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYOMm4mNmZmWlJONh4aGhYaFhYaHh4eIhoeHhoaGh4eHhoaHh4aGhoWDg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaFg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf359foB/f39/f4CAf3+Af3+GhJaZgH2RmJiXlY+Ih4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aGhYODhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGBgoGBgYGAf4B/f357eoCLn6GTjZqbl5WSjYmIiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeHhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSSkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCg4OCgoB/fn19fX1+fnx7e5WjnJuhoZ+QgoqLiYiJi4qJiYiJiIqKiYuJhoaGhoeFhoiIiIiGhoeEg4KEh4iIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKDg4F+fX1+fn5+fn59fn19gZOVlqChm5SHiYiHh4eIh4eJh4eGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgYGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoOBfXx9f4B/fn5+fXx9fnx6f4+UmZuampWOg4SGhYWDg4WEhISEhISFhIKCgoGEhIGCg4OFhoWEgoKBgoKDg4WEhISFhISGg4ODhYOCg4GCg4OEhYSHkpGPjY+MiYWEhYSFgoGBgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4GEhIODg4KCgH19f4CAgX99fn59fH19e3p6g4+RjpWXmI+BgYKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgIGAgYKBg4GBgoSDg4SEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn1/goSEgoODg4J+fX5/gICBgH59fX19fn18ent7hoyNkZSWhX9/f4CAfn2Af36AgIF/gICBf3+AgYF+fX1/gIF/f35/gIB/gICAgH+AgoCAgoGAgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GBg4SBgoKDgoOEhYCAf3x9fX59fX6AgH59f359foCDg4OCgoGBf319fn+AgIB/fX19fXx7e3t6enp7iY2Nkol+f39+fn9+f4B/fn9/gH+AgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af39/fn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+f3+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp6enl/jo6UioJ/f35/f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f36Af35+f3+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp6enmDj4uUlIKCgICBgH+Bf4CAgIGBgoKAfoB+f35+fn6BgIGAf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEhIKBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WCgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXx6enl5eXqHiI+Wh4OBgoOBgIKAgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGBgIGAgoF/gYCBf4CAf4CAgH5/f358fImUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgIGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl5eXyChI2HgoKEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGBgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4eHl5en6Bg3+CioSDhISEl5eDg4SBfX6BgYKBgYGCgYOGiIyFg4KCgYSCg4OCg4WEhIWDg4ODgoODgoKCgoODgoKRkIuIiIeJh4aGhIaFhISEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHh4eHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl6e31/fIWRg4ODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLgoGChYWGhoSEhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhISCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6ent7f4KAgYGDgoB+fX9/e4iRfHyOln99f3+ChoqFg4OEg4KDjYl/fn+DhIWFg4SGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXh8fX6Af4B/fXt8f359gpWRf4SIfXx+f4KEfHyBgoSDf3+Hg32CgYCCgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e35+fn9+fn59fXyAgYB9ho+Bfn2Cfn9+gIJ8fIB/goCBgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMi46OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4WEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX+AgX1/f4B/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjY2Ojo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3x8fHx8fHx8fHx9fXx7fXx8fHt8fHx6enl7fHp9hYODgIGBfoB/f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fHx8fX59fHx8fX19fXx+fH18e318fHp7enx9fX+GhYOAgIB9fn1+f36LhIGHfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn+AfX6Afn9+hJKNjYyPjYyKhoSFhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOBen5+fH5+gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX6AgIODgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f3+Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx9gYKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgIKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9e3+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5+f35+f358fH18fH18fX57fHt8fHx8fXx9fH18fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko+NiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/fn9/f4CAf35+fn1/gH9/f3+AgH+Ag4KAf4CBgICAf3+AgIB+fHl8fn1+fX1+foyGfX1+e3uDg319fXx9fH19fX19fXx9e318fX1+fX59fX19fHt7e3x7fHx7ent7enp6e35+goaIh4iLiouLiYyRkI6KiYaFhIKCgoKDg4ODgYGBgYGBgYGBgYGCgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGCgX9/fn9+foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fX18fH19fX18fX19fn19fn58e3t7fHx9fHt6e3t5enl5eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2BgX+BgYF/f4B/gIF/gICBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX19fn58fX18fX1+fn1+f3x9fHt8fX58fHt8fXp6eXl5eXp7fn6AgYOHhIiPjouLh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGCgYKBgICChIF/foGAfX6Bfn1+f4CAfX6AhIB+fn99fn19ioV9fn99fn6Afn19fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6ent8fX59f4KAiY6LjIiFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgIGCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICBg4F/gIGEgX5+gH99foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fn18fHt8fHt7e3x7fHx9fXyKiomJhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgH+AgIOBfn6Af31/gH19fn6AgH+Cf4GAgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhIOFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19foB/f4GAgYCAgICBgX5+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISFg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhIWDgX9/gH+AgX59fX5/fn5+foB9fX98fX1+gX+AgICCgICBgIOCgH+AfoCBf4CBgIB/fn59fn5+f31+hYWBgYF/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foB/gYB/fn+Af4GDgoOAf3+BgYCCgYGBgICBgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH2AfX+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISBg4KBg4F/gIF+foB+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fX59fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWFgoSEhYSDg4KDgYGDgYCBgX1/gX6BfX19f39/f4B+fn99fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOGhYF/f35+gH+AgYCAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgYKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hYSEhoOChISEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgIB/f4GCgYB/fX+Bfn+AgoKAgYOChISGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB+fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1+gICAf39/f3x/f3+BgIGAgH98gH9+fn6Afn1+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e3+FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYGAf32Afn5+f39+fX1+gIGBgH5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKAgICAfX5+f4B9fH58f4CBgICAgIB8f3+Af3+BgH9/fYF/fn9/fn19fH+AgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t7fHl3e3l3eHd3eHt7ent8hYl9e3p3enx9fXx8fX19f358fX5+fX19fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYGBgYKAgoCAgIB+f35/f318fn6AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5fHx8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fn1/foCAgYGCf4KBfX6Bf3+AgX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKNenx9fHt9eXt6enh6gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgYCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgoKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKBgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x8fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+AgICAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgIGCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58e318e31+eHd2eXl6e318fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4SBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGAgYGAgH+BgYGBgYOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f316fX97enZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfH9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYOBgoKBgoF+gICAgoGCgYGCgoCAgICAgoKBhIB+gYOCf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3x7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0dnuEgoOCg4OEgoSDg4GCgoSGhIKDgoOEgYSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4J/f4GEhIGDf4KCgYOCgoKBhIODhICCg4KDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp7fX98e3x8fX19fHyAgICAgIGBgYGCgX+AgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgYKDhYWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4ODg4OEgIKDgoODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKAgYB7fYB+fHl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgYCAgICCgYCAf319fHx9fHZyd3h4dnR/dnV9h4eDgoSFg4OEhYSBgoSGhISDgoOEhIGDhYOCgoKDg4GDgYKAgoB9gICBgoOCgoKChIKAgoKDg4KCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX5+f359fHx4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhIKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOCgoGBg4J/goOEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fn1+gYGAfn59fn1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIhoWEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4OBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB/fXx+gn9/fn5+fn19f39/f4CAgH+AhISEg4SFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKEhYuJhISEhIWFg4eGhoSEhISFhISEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4KDgoOEg4SEhYOEhYaEhYZ9g3p9fn+De4WDgYSDgH99fn9+foGDgX17f31+gH59fHx8fX19fXx9fX6Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWEgmh6cnNzfIBygoR+g4N9gX1+f35/goOCfH+BfX+AfX18fHx8fX18fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgoKEhoaDhYSGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhIZ9cHuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId6bX1yc3Zzdm1ud2xweWx1fX9+fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KCg4WHhYaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fn2AfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIWFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39/en59fX59f39+fYCBg4OAgoOBgoSCgX+BgoB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4eEhISFh4aFhYWFh4aIhYWGhYeHhoaEhoaJiIWEiYqIhYSFhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBhIGAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGg4aFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SDhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WDhISDgoF+f357fHt+e3x9fn9/fXx/foCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaHhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaFh4WGhoiGhYiHh4WHhoaIhYWGh4WGhoWDgoWFhoWFg4WDhISGhIaGhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSGhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYKDhYaGhISDhISDhIaEhoaEhYWDhoaFhoWEhoeFhISFhYOEh4aEgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoWEhoaHhoiGhISEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFhoiFhoeFh4aHhoeFiIeHh4WGhoeFhoaFgoSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4SHg4SBgoSFg4GAgIF7e359fHx8fn18fHx9fnx9fH59fHx9fHx8fH18fn17fIB/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoWHh4eFh4aIiIeHhoeGh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9f318fHx+fXx8fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoeGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaIhIOEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH57e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaGhYSFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4SCf35+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhISHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFiIOEhYSGhoaIhYWEg4WFhoaHhoeFhoaGhYaGhIOEhYKBgoGAhIODgn2BgYB/g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCBgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeGhoiJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoiFhYSChYWGhYaGh4SFhoaFhYaCg4OFgICBgICEgIOAfIGAfn6DgH1/f4F9gHx9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaFhYWEhYWEg4KBgIKBgICAg4F+fn6AeXp9gIOEhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDg4aEhIWEh4aGhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B8gX99foJ+foB+gH9/fX1+fX97f317enl6enl6fH15ent7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWGhYWDg4WEhYaFhoSEhISFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXl6eXp7fHl6enp7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoWGhoOEgoWChYGBgH9/gIB+f4GBfH5/f35/gIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoOChIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOEhIWGhIaGhoaGhYOEhIOEhYWFg4SDg4SChISAf4KCf31+fn5+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5enp5enp7eXp6ent7fHp7fHt8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9+fn9/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGChoWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYF+gn9+f4J8f359fXx8fHt7enp6enl7eXt6eXp6ent8eXt9e3t+f3+BgH1/fX19f4CAgIaEhIWEhYKEgoKEgoGAgYB+fX5/fn5+gH19gH5+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFg4WDgoOFhYKEgYOAgYCBgIGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fH59fH6DfXt+fH2Af4CDfX2AgH9+f318fH19e3t6eXp5eXt5enp5enp7e3t6e319fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lgZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PD45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT0zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWy8vLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU09LT09PT09TU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw7OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OR6jZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1svL0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19jX19fa29ra2tra2trb3Nvb3NnX19fX19fX19bW1tbW1tPS0tPT09PT09TV1NTW1dXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTUaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbLzJWFhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0jYuLi4uLi4uLi4qKioihv729vb29vb28vLy8u7/S0tLT09PT0tLT1NPT09vi4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOU2JMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXy8xuUFNTU1NTVFRUVFRUTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFhSU1NTU1NTU1NTU1NOeq6qqqqqqqqqqampqaiw0tLS09PT09LS0tLS0tLf6+rr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUJAOTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18vMcVVYV1dXWFhYWFhYWFGh8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpp5cVldXV1dXV1dXV1dXU32wq6urq6urq6uqqqqpstLS0tLS0tLS0tLS0tLR3+rq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDs+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fMzXheYWBgYGBhYWFhYWFapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqiZmFiYmJiYmJiYmJiYl6Fs6+vr6+vr6+vr6+vrrbS0tLS0tLS0tLS0tLS0d/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk6Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzMzHxcXFxcXFxcXFxcXFxcrQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs7OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzLy8vLztLS0tLS0tLS0tLS09PS1dPU1tbW1tbW1tbW1tXX2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo7ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M3Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7OztLTz87R1NTTzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19fX19fX19bW1tbW1tXV1tbW1tbW1tbW1tfW1tbW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvVkpfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztKrnM/SrYODlc/RpaLQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT08PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK2nKWkypu8uJm1s6CiqtLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/OnZyRnrOmjYGNxp6YlpzHz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4+PDw5Nj9CP0I6NjQ4Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv5igm7WYo4qr1rqYop6vsdLPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9COjc0Ojo6OTs7ODs9Pz0+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P07SZlqq7iq2rm6WxmZaws6nU0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PDk2NDo5ODo6OTc7P0A8PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8qgo7/KnKWMp63Yqpmq1M/Pz9Srmn6jkY2lnJankJmEnZOj1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD45PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDUrJuni5aiqLSqnn+gqYWZpdXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q07aysqWZq8/YwZyAvK2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXEopmWnaeRoZ6emaiWmJq61dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTo6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6DH1aKrpJy4pKujnsOgq6Sb0NLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtLQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09PIko202amPkKzXwo+Nu9TR0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVaWpbTF9NSkxKVUxGQjw8P0ZFR0tJPTY2Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MjB1dLVwL/W0tXFxNXR0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/Pj5BRExMQT43NzU6ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHT1NLS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj09Nzg2OTc3ODk5Ozs9P0A8PDg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRENJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZJRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0FMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhRQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29ra2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ojg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc2ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg2NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7Oz4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU5NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBGPjg7NzI3OTY3NDUzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBCRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO1tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7e3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6uvsKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo6Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmpqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpaWlpaaoqKioqKWnqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo5Ojk8Pjo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OztAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpaenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0E/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJ2dnZydnp+goqGio6OjoaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5iXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAP0JCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc1Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6alpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5KUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqanp6afm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6Wmpqako6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODk6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/PkFBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+mpp/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5ODk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6SmpqWlpqempqKdnJ+hn5eRkZCUl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PTo6Ozc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaWmpaWjoKChoaCZkpCPlpuZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaCgn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU5ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5WSlJicmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODY4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqOjpKSkpKKhoZ6bmpmXobWemZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpmXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6ChoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKCgoKKkoaKioqGgnpybm5uZn6ubnJqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaCls6ygoJ+fnpyZmZqam65qdp2dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5uam5qYmZiYmJiYmJWUk5GQkZCQkJKSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCfppKbq5+goJ6bmpqamaiERICfn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs5Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnqCeYpymnp6cmpqbnKGjUUiEoJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZuapmZdo6CbmpmbnZyudUlMhqGcnZ2cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmKSAUniimZmanZugpF9WToehnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGgoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFxcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuYmJmgiFtflJqZm5yco49kWk2Bop6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbW0xGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiZn5ddXXaXmpydnaKBZFlNf6Ken56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp6enZubmpydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmaYGFggJadnJ6YdGNVT4Gin5+fnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTo7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmZn2leW2V/nJyejGpfUFOGnpuenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOTc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qal5NzaGFUdpOXnIdcVlBXipKOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaOimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY6Smp6SfaCjlqScbkxPY4aGgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CEoJ2Of2uWpZWff4l/X3J/gIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2OTM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5/gKKLfG5SdZyMjFlxfXx+fXyGjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj07Pzo4PDk5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfZiad1hPTHGUhoJLX3Bxd4iFio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY2jjVQvMD14h3d3QERda22EkImJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KmnGdCW0g7eHlrZ0UxOFpsc5CPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mpr49KcqJ5QXx4ZGJRU11JYG6KoaGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKN4YMHWpUN8jYJ1T22OdlNkf6Oop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBEQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkp6eZnaSlo6KdYn+9wK54oKOalWVMYXhtUXSVoqKgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioaKnoaaupqadnmqEnLqPqNGimrOoWEysk1Nlj6CeoKCenaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq+roqKGd359cs/IsJqnr2tVqrBjW4eln6WioZ6gopiVnpufn6ShnJWYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7e0tbazra6tj4aDbpHMu5STpJZ0VG96c3B9lqaqp6Sgn6ObnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQENDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K3u7u7ubnBuLS1oIh5ZFiftr2mp5qId2txb3h5e36GjpKYnaOlpqulpJihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW3wcbMz87Myb6zpJBzZlJEi5WGhoZ9eHFuZ2ZsaWxycnFycnV9janExLuip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYWZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PFx9vj49rLvK+kl4h0WVpRRGl4a250bmtlZVlXXVhcY2pqaWZhaYq1wcC5qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3b21bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxr7N0tXKuaedlIZyXlFUS0RbZV5jamVhYGhZVFhTVllaXVlbdZq3vKy0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudnJydnJnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/wsHHy8i3lHVlVVBPVEg+XmxeX2ViYF1kYVNVV1ZVVVhznK2xqqiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO5uMObYUlER0tEPVtlYmJpY2BbY19XUk9QUFaAtLqsrqWko6ikoKClmam0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnZSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent3bmtpaHZaZ3N4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTExMLEwa2DT0ZNRTtNW19la2VfW2BZWVNOVYCjq7m1sqypo6GtqaynrZ+stLS/w765uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dmVmampoXmtwbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCxpZqWEc/P0deY2JqYFpYV1RWd5q3wLu8urysraapu7q5t7+ztbiywca6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rraussZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWh2aGpqdW55bF5kW1ZgWUxIRDY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnOxcbGvalyUEswWFNVZmFTTlBxqcjIwsTHwLy+tLCwsMK+vsHGwL63tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2tr7WkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOi5R9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ9eHBnYGtqd21pZnZvdGNdY1VXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPCwbyRP092folWTG+ly9TFtr+/wL+6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5gHNwZmVnZGxlYmtub29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzFp3drg5CXb6rJyMfRwa+9vbi5u7u+t7Swub6zvL6xubW4vLa8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFlYmFjZGRqY2dkW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Aur/AvLvFvbrAxL+9vq9zZX2RiorRxb+/yb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7e4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhY2Noa2dnamZqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz05NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWNuL+7w7W6x7a1uLq8uLm2qqSYjn6Eyb+/u8G+uca9wr+8xbi2t7S4tra7u7i2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVncGplbGhZWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/Ed6jMvce3ubettrS3ubO1sb3JxJVKe8q+v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfWtucWdxa3RmY25gXFVIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTWrnSAu8jPwsC4rrS0u723ubG9w8qOQ3XNw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXJmbGpvdW94ZGhjXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsbJ0plxcqvR0czKxLW6v8TIvr60v8DAeVJuy8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0cG1tdGxtb2BjX2JiTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQw7q+vMS+t7zAv8nPx8jKysKGcnOjzMzLzcrGwsPLzsG8uL26snBjYrvIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWRcX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9rDvra+wL6+uqacqbK2w7+leXV4mcTHy8jBw8DAycrBv7u5saF9c2utyMXEv8DBv8vHw8DIwLrBv8OzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3h0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEuW2szr22ucC8rH1uaG5tcoGVmHN3fJe9v8bAucC8vsXEvb24sbCYkH2Am8rCw7y9v7/Dw7+/x7y8wrWsrrS0vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cW9qXGBhWlRRQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzrR2gLO9trXCpYdpWl5gTVJbWm5zd4CfuLjCurO7t7u9v7q7u66km5iHkX7AxMO+vL+7u7i2wcK1wbqAoLCsr73Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra8tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2eG5yYV9nXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmohHiJoK+1nWplZ1ZZYElJTVBTbHeGpbC3vrmytbK7uby2ub60lZyllqFwrsnEwL2/ubOusry6rsF+cKKrpqy6vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybWBkYlxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fq4h8dougmWBUQ1hVR2FqVk9FSmCNoKyvtrq1tLKsvLm4tbjBvYuYsKKlcqXLwr+5urWupayzsKmkVICWoZ6lrba0wba1s6WnqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8cHZzb2ReaFldXlNPTkI/SkNBS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7WRgniHj29OSj9kWUJOd4CUak5BXYGwtbO1srSvrLu6uLa5v8Z2g6qemmSnv7i1srGtrZ+kpqeliEmDj5mYmZ+prbirqqqepKmkq66vp7Crr7GxrbGurq+5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2dG12amxdXGtVXlxQTkhER01CR05HODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e3lYyIhHtYRkFOh1lKSlh3jYFjQVOjubO0srCxrbC5uLa7t7q9kKKyq6Nyq7Cpq62ro6ignZ6dpG9Ke4aJiIWPm6ito6KjnquvoaOpqKGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWl1dG9lVWJkWF1ST01JQElSRE5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKqZmZVpTkBSeHFQSUlLZpuBWUVSrruxrLOvrqyttraytLWvqaafmpudnqaonqCoqZ+hp5ablad6Ym5se4N+gIibqJ+en6G6pKWdo6OgnqWgpKylpqiloqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CWlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqaSpq6aprKumoYh4g3x2f3pjeG1uXVFpVVBPR1BNTUNQUkE/Oz40Ojo1Ozo9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3Cq6W+aUVSnYJRV0lKX0lTjmBjYoCutaqytK6qq6+wsrOtpZ2Rl5OPmKCfoqCco6SfnaiUmpWgtZ6Dfo2Ri4N6e4yZnZynqpKqnJ+goZyhn6Oop5ynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJaTj4+SkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOfnaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fIB1dn1ubHxkaVZTZE5KSEdPU05LTkg8RUA9MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutra6ubq3t7uuqKChqaCqxr/LoVBBc554T25LS2JldHNgWl5wkLGvrrO1qqasrKObmZSNkZWXmJicn6KinJ2knpqklpaVw9rDurahkYyMhHNrepmfsYGbq6GfoKefnZ+jpqieo6afqp2qraqup6iwpaOkpqespqKlopuZnq+orrKrpquqoJuYmJiVk5aak5WWmpabl5iYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJfIB+d3l8ZXl5YWJTVmFJSUtMU1VKU1FNOT9BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMfHj1dTSWSkXGV+b3JdUGtjW2RfXWuPtLCwuKymoZydmpSYmpmQjpGVkYyOjZOZopyXopiWquHd1dXRuaGKiot1ZmCOvKFyqq6rpqKxo5qjpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuVlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbWVcU1taTVJLT09WTVRNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6rpI16VWlydnVwY3Z2WFdjYGNnWVhXZq2urK+nn56ioJaQk5ugnJmXkpOfnKGjmp6blp6Znb21sr7DxMGxlIB4bGlhjbRxhre4trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7W4s7itsrSkoJ2loKyhoaKhoJqZlpafm5uYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dmp3dV5tW1JhSVJWSEZWV0tDTUg9S0k4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqK6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuioaCkgG6CcGBjWExbU1pNTFBYUkhNTUiYrKqppaCfmpKRlJiYlpaWjIiLjpSdnJ2dnpadl6yXT1qDo7e8tqJ/bmVoaXKBX6q6vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwbe7tquusbm3vK+zsLXBvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaegn5+oqKWln52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21oblxYXENXTkpHTUhDRk49Pkw+NDw6Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqamUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnYpiV15lYFdNUUc+Pj9DQz8+QlF4qa2pqqagnp+io52fnpudm5STlZSenpiUhZ2Zn5msZkFSWnqjsreogmhhaHFwYIHHvr/Cv7a6u8DDub27rK6nsa2xwra4wsbAyMrAyr+wubm9uMK+uLS7xsS9w7y4tKqzraqztK+zrqqvo56sqLeyraOwpqGjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqKgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhESlBJP0VCNEZIOTY8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw8Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5V9YF5lYFFHRDxDPkU8Pzk2Tn6qs6eko6KgnqWspp+YnZWSmp6ZlYyKhoiGeGyGn6Kkm2xve2phg6aupn9maHmIjH6zx8TCx8HAxcjN0MjLw7K3tb6yvsW7vszNxszMzNLHvr/Aw77Hx8K4xMrJxMHHv7q0uru1u7ewtrKru7KvvLfAu7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5WUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtlWlxGTE1FRFRNRUJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEA/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p+c2phV05FPklZfG9iQj1cjq6soJmbnJ6emZeXmJONj5eXlI+NkIyCg4J2cnBsb42krY10fKKVZWaUnpl5aHyQnaKpwc3LxsjExczQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsfGysjPwMnRzcfGyMbCvcTBv7+/tb6zrb/Aw8PHxcjEr7+5sri9xMLBu7y8ta6np66ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXVzZWJncm9nXlpaRE9NQ0ZRSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6Oz5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOem52Wa2ZdVElEQD9Lhp6lmoSgsq2jnpyfmpiXlJOUl5GQkI2IhISJh4OAgYGAeXFxbmp2orGIco+4xZtie4qFdHGIlKGlpbjRzMzNz8TN1NXY0dfNxsfJzMPFys/K0tfS19LV1tPUyMzHzM3K083O083GycrKwsfMx8nJxr/Ds7PIxcvLy8/Hyr++v73Bx8XMzMnJwMPArrCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZVZYUkROR0BJUUM+Qj06MjJBPEU8Nzg8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+OTo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnGNTTEpEQz9DUq7RvbKvppycnKCkoZ2alJSVlIp9eXFsZWJocnBye4WKgHVwbXBybYWfhWmEtdeXamx2cnh3g5Cbm5u21NPSz9LD0NPW2NXV0svJztDLxs3SytLV19nW2NPW2M3Sys/RzM/RzdPQwMnIy8TMzczPz8bHyLbAy8DSzczQx8rJwMTDyM/N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYWVyY11SXEpLR0FGSUo/O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpaWgoqJbSUBBREFGUXayr6aalJefnJqgoJ6bnZqViXdpZGFfX19fXl9fXWFsdXNwb25rcG5zgolmbKe1aHxjX2V0cHiIiomKp9XT09HRzNDN09fW09XQz9LT0cnT0cjQ19fY0tjS19nV1szPz8nN0szO0cDHxMnHz87R0dLIzM3Ay83G1M/Nz8nFy8fHyczL1NTR1c/SzNPCucWxpai1rqibqKulnbKosLOsrJOPk46Iio6Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUWBKSkNFQ1NOPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ6lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6up6qooaOsZ0M4PT5EWIKqqJ+XlZeZmpyfnZibnZN9cWVjYl9fYV9fYWBeYGBfYGVtcHBtam1vc3WAaF6DmIqDWUxaZ2JxeHJqaJfUzNXU0crPzNPW0tHVzc/V1dHF0dPK0NTV1s7T0djY2NfLyM7Eys/NyszAycHJys7P0MzQzs7Mz9DIzNDRy87Lw8rIys3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO/u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSUZGRE1ZRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD85ODo/PD04Oz5COjo9PDpBPT08OjY9PT9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+ZpaegoKOnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksnxIRkI7Vo2hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBgYGBgYF5gX15cYm1ybm1wcHJydnNnaXBxZFhQUVdYYWJcV0un0MnS0s7GzszN1MvO0szK1tbQzNDTy8zQ0dPKztHV0tXWyr/KwsbNw8jKw83ExsnLy8/Lzs3RztTMx8nQzcnHy8bHwsbKzM7R0cfQz87OzNDFx8G4ub3Dwr3DubKyvrC7w8O1qpiloZiWkZWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTElRUUI7RD87Njg6ODo7NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc2Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9wd4+ajYyXlZCTkZGVlpWQi3xlYmJiYF1eYWNiYF9fYGFhYF9dW11ncXFvcHFtaW11bmVxc3J4cFZPTlR5d1VuwcDDzs7HxcfNytHHys3NxdDSz83M1MrHys7Px8fP0svQz8W6xL/Gyr3Dx8nOxcPIwMfOyMTNy83QycXF0MnGwsbJxb/ByM3MzM/DyszJx8zQxcXIu8fDycnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdJSEdJTVVHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KGoqqTjY2Wj4WDg4OBfYSEfnNfW15dXmBeYGNkY19dXF5fYGBfW1pcYWtycG1taGdpanNfZXyGhWhXWk5WoJZlm7q2u8fFwcPAw8jJyMjJx7/Ey8XHyszJxMHKycHBy8/Ey8i/ucG8xsi+wMbPy8TAw7vKx8i7ycbFysG+wsvGxcS+xr69wcTGzMbFvL/Kw8XH0sXBycDKysfIxtDDw8bDrsTLx8PKt7+8urOprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdDR0RMREZTPzU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL64vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bV56fJ6RipKWhnqAhIV/dXh1cnBfWltdYGBiY2RkZWRgW1xeXV5dX1tZWlxhbnFtaWZna2huclttcG9ZS11eeaGJbaCxrq3Aubm7ubjAwcHDvb24vL64w8nExsK9xsC3u8PIv8HJu7a7u8XDv7zCzsPGvr61wb7Eu73HvMO6tb3GxMLDt8C2tr+/vM3Evba6yLu/vszEwsbDxsnHycbQxsLMyLLHycPOzMDFw7+8srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRUJGSkE5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1q7e0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys/FycXHwbrFvayup2BjdoGSi4iLhHh/hoZ/fYN7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXWdyb2tkY2lpa3Z3ZmBoYEZmYneBb16XqqiitLG0s7Kys7u0u7C2r7OusbrBu8DEvL+6tLK6vsC4x7i0vLbAwr24vcfBw7u1r7O1u7+0xbi7tay5vb7AvbG7trC3urPGvbevvL+1t7XFvb7DxsDExsbHzMW/xsa7x8u/z8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpHQkRBRUY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TFy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJpbZ2+IjoaIiXp4foWGdneBfHNoXV1dXV9gX2BkYV5jZWNfXlxbXlxdXlpbW1xfa29sZmNmaGhqeHBTZW5kXVdiXUxamaaimKaor6upq6iyrLSvsaetpquyu7m1wrm6ubCqtLm7s8G5r8Cxvby7tbvHucO3raqosLLAtri9sLGosrO1u7yrrranrrauvLKwqriwrruuu7i7wMG+usO/xsPFwLzGwcfKuMXHxb/Hw8O5xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMTE1KRUFDP0ZBOjo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTPx83Bwsa/xMTDw8rCycq/wLzCurO1tcOuqrGTW2l+koiOj3t4fYmFeXuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWlpaXGNtbWZkZGRmZ2x5WVJoY0VLWlM+XZifmpOWoKaroqahqqirqq+ipZ6prLS1sLy4r7evqK24tLO7t7O8r7i5tbK8wbLArqWpo6uxs7OovaqrqKusrrW0pqmuoaWwqbOmp6iupqi3rLGzt7q7u7K8vr6+xL+1wcDHyLe+v8W3xcPAu7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlNTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8LLvrvJtr3DvrrKt8HDwrW2vLaxr7W8ramrk2NtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1hXWVxfZWpkYmNhZGRobnJCRkVEREZTSV6WnJOQipuepaGhnqSkpqWsn5yao6WssrC2tqewq6eqtKuzubC1ta22ubKwurqxtqSgpKCmsaisqbmqpaenqKezraCnp5+cpaasn5+npKGhsa2trLK1s7Swtby2u8HAsru+w8GxubnCs8C9wLW4vL2+vMLHxMPEv8DEoIR5cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs8ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbq9tqCelZ2gprq2q7Ozu7PEz8nLwsW4t8fAzL+4yre7xbizxbizv8CstryyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBeXFtcXFhZWFhYVlhaXV5jYmBjY2NiZWVtZjM1Qj01R0NulZqPjYSXnJ2jm52doqSipp2aoZqeqq6ssbSjqKmpq6yktListq+ssrSus7WvsKqfnp+korKlpqq4raKmpp+orauZn6CfmZ2fpZqZo5ycnrCprKiqq6ytsLO5r7i5urC2vLu6q7OyubO9tLeysba1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTYzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uci4uL+3ssK0sbu7rLq6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFdXV1dXWFdaXWFiY2NiYmNkZXFSMTo0LzhCXmOMlo2HlZydpZyYm6OloaObnp+YmK2sra6xoKSiraunobWwsbGsqK+yp7qzp7ahop+co6Gto6Kqtqqio6aepqajlpmdl5manaCal52cnZytoayoo6Smrauzs6q1sLKrsrm0r6qvsrKzt7Ouqa2usriwura6vb+3s7GUhnp2Zl9mX1tZVlNaVUtbUUxKRUhLSUM9P0JCQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+ynaWjmKWxw7W2va20uMLMyMbAxbbBwMfOt8DDvbO5ubK/trG5u62yta+fmqOqoZSaj3h/g4R/eG9xdHFoZmRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVVdgYmNhYWJgYGRncFBRPywxKyQ6a6WViZCamZyak56ep6Kcnaabmpmqpq6wqZuiorepoaCuqLWqpqetsKS3sKS3oKOcmZmqpqGarbmwo6GknKKgoJOVoZSWlpyZmJaXnJWfqZ6qpKKeo6qqsa2otKyqp62zsKWrrrOxr7Cvr6eoqLKusrSwvLS6uK6jlIJ6d2VfYVdZWFNSVEtNXkxQTEdITUxFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rZ2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwsLGqnJqhqZWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1ZVWmJiYWBhX19gYmhwaEoxIhwmSkl/louOlZqXnJKcnKSjoaSlnZuepZ6qrqWfoKK2p6GhoqizoqWnpa+lsa6rtZ+hnZaVqaGilK2xsZ+jo56emJyTjKCUkZOYmJKWmJiXnqebp6KimqSlpaukpbCnpaOrrK2mqa6vr6uoqqqzpqarr7Sxrry2sa+vn5J7eHNlYlxbXVhOTFFIUmFNVlBPSk5PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaasuLu8wcW6srm1xMnJwMLGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZn6OLinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVlJUUlRfX11eX1xdXl9hamlHOjQvOml8cISLjJCdlZyTmJyin6mjoqKhoqGbqKqjmZ2jsKmhoJ2kqp6oop6srKqprq2ioqKVmKKanJCrqbCcn6Kfn5eZk4qdkY2SlJaQmJiTnKGjnKWhopagoqSlm6OrpaKkqqSrraWusqmmpaemtaaqqK2ztbS5uq+qrJ6Mc3FwYFtXVlZSR1FPSFpcT1JKVEtTTEVHSkM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Nzs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Gtnainr7m5s8DIurXAr8XIzLrByczItcm8sb7Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpaWxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RVVlVUVVVSU05QWVxbW1xcXF1cX2JrSzVCQlJ9hnd7iouLlZWdl5edpKWnpamlqKWhl6SsopSYpK2on5uYmp+erpmcqrOfpaafo6OhlJSblpaSqamtm5yfoaCblJCMmY2MkY2SjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq7Ckrrilo6SjrK2qqKuvtLeyvbWzq66YhXV0aVtZWVNVUkZYTFFbWE1VT1BMUVJJT0pCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njg6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7euqKivrpupqKy3tqy8yru2v6zMxsW4wM7Px7PEu7e7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FYWVlZXFtaW11eZmNVWGxtfIF6gIKNiZGTnJuWm6elo6uppq6jppedqp6UlKOnpZyXj46Zna2WmKeqmJ+dlKWgnpKRkpGTlaiqpZqYmZ6elo6Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6Wlp6mooLCwprG9p5+jrLSqrqevtLC5tcCxrrCrkX5ydGNWVFVOUUpHVlBSUkxMWE5LTE9TR05LQUNGRUM+Qjc1ODg5Ozk6Nzo6Nzw9Ojs/Pjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxt7i8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5xam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRRTU5NUldYWVhYV1pbW2BqcGpwZXd9eIN9jYKOjZGWk5mkl5ynpKSpnKWXnqOakY2eoZmWloWEkZqjj5WinJWWlYeimpuTjI6KkJqlp5uVlZeckZOIlI6LgYyNgJCLkpKSoZqgopaUmZiVoqaajZmkp6mnoaC0sqizuKGdo7asqq6ksrKmtbu0q6yxoop6c25eTlFRTU9ETk5OUEtGTk5KSk5OUUhNSkFITElIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKqloKmmpLOqorLEtbWys8bFt7rDyszGs626vbS4wK+uqbCepq67r62gmpuelZWIfIRuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0tTV1dWV1dXV1pdYWdfY15yeHN8dId9h4OOi46ZnYuWmaGfoZeklJ+alIyGmJmLc42CfY2WloaSmpCTjo17mY+cjIKJgIqYoKOekJOYloWOgpR+fnSKjnqQiJOQkJ2bmpqSlpCejqOjjomaoKGkpJuitK+ssK2fmKa4pqWwobGunLG8qqmvqZmEeHRkVk1SUFBNQ1NOTFBNQlBRSElOU05JSkpFS01HS0s+ODQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY2Ojg3QTd4t6GjtKimpaijpaWmpqayp6a0wbivtLDJxLi5wM7GvrOsusGsrcStqKKmkp2mt62joJGWl5KQfnh/ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpHTlNTU1RUU1VZWl1oXF5bbHVtaUdSa4p8kIGHl5KHkI2dlpuVlZWSjZWIf5OJXztXb3uLk4mAjJKMj4aGcouEloF5gXuGlJ2Vg5aOkI+Dhn2TeHFwho19iYGQjpCXmpmTi5CKnYifmIeIlp6aoaCXp66prampnpats6KlrZmtq5iotKOpraOTf3RuYFtOU1JXTERUSlBNTEZOT0lFTFFNS1BKSU5QR0pKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebegoq2hpqaqoKapp6OqsKintMK5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpmHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtIRkhOUVFMT1JUVVhZYWNaVmhwZUg7OnuQjIp4go+IgIaJmIuVlYmRhoSThXiIf2BKUW53ipGDfoSMi4R/f21+f5N3dXZ4hI2acFGNiIqGfH55lHZnd4aIfoqIlYuOkZOXjISKiJWEm42ChZKblp6dlKSiqKmlpJ6bsKqhpKSRpqqWoqqcoaaninduZl5cSFFRU01JVU1SSUxLT0lIRkpOTU1VS1FSUEdKRD03Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Nzc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+sqrW8tri3s8G7tqe5yLi2qKi1tqqyvKeelY5/iZSplpWLf46Eg354cW9YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlPUVNTVVpoZlxkbVxdU02KgI+Cb3mBfHiBiZB/kJmLj3qEjX50f3hybnVwdI6OgXp+iquFentodnuOcHJteIGLjZJ4e4B7gHdzcpJ4aHWFhISFfJWKiIqNi4B/hIuNgJSEfIGPmJSclpGfnameoKGdoKmln52YjaekkqCglp6fpIFzaWJdXUpXUFJIS1hST0pNTFJKSkpMUElMUU1SVU1GSUI9Nzg7OTk+PTo7PDk4QD86Oj48Nz09Nzk5NDc3ODU2NzUyNTE0NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6Rf3eGeHx2cG9qWUtISUhHRUhIUFRUVFdWU1VVVVVWV1hXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE5RUVNWXmhtaWhZa4OPlIuMdmJ0e3J1e4WNeoKYkn9whY16dnpua36tfHSQi396hpKAfH90ZnV8hmxvaHN8io2HgG16cX1xbXaPcWhxgX6OcESLhYKDhX93d3qMhn2Me3V9jpKPmIuSm5ujlpmdm52eoZyWjYulm46dl46WmJB4b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUU9JT1BMRkQ9Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rp6mwr7Gru7iru764s6ynm7CnrJuPlpylqaWhmJqOhJJ5iY+Li3ZxfG11cWptalhLRkdFQUBDREhMTE1RUk9RU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFellKTk9RVFhdYWdjXnycoL18bnJednNqd3SFjXd6iYRua4qQd3N4aWp/gnGWkYyBfZV/SZKZbmd3foJtamRseYWQkoZrc2x8bnJ8hmltcH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6MipODlpaYmpCTlpaZlp2WjIOJn5KLko2GkJeAcGpvb29ZVlhUUlJZT1JVVFJYVU1PSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYm5+krK+iraqota+urLO/q7zDv6aimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ1b3RscW1la2tZTkRGQ0A8Pj5BRkZHS0tLTE9SUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JWWlFXWFedfluTYmxyYHlraXt2h4Vzf4WDcmuXj3Jye2lqnY5MeYWTiYSNZjF2h3JrfX2DdGZldX+EhIWAZmlsdWtwgHxocXF8bpONj3t0fn1xcW91bYN/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW05QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo6VmYuOhXqEkJiVjZCMkIdxh4J0h4yGenBzcW9wZHBnX1RGSUM/PDs5Oj9AQURDRUdJS09RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUtBSVBIX6mtmmp0cWd4aG1+fYF+d4GDg3dwnpJyd4BydJOHNXCdqJ2NoKGEooV2cIZ7hnx0jK6NiYFoZ2JqbnJtcIN1aW9YdXCOm5F2bX97fW5ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2OfHNycW1gXF1eXFpZYV9STltaWFdMSElGSUg/Q0FCSD9DRD07Ojc9Ozo7Ozk6OTk7OT88ODg9Ojg7NjY2NTAxMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpGBkoiVkZ2kp56vlaW0qa6wrsGyu8HFlo+MlI+AiHxugZCSiYOKh4+GdYKEbJWIiHx1eHhteG53ZGpeSVBHPj83NDQ4Ozo7PT5AQkVITExMTE5QUVNUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SUkNIfm14dXRweWhyg4R4eoGAfIl7dJ+XeH2FgISZhJqcYYaqnpyLg5COeneIfomIjnSLl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVnaGBbXF5TXGdeV1FUWFtVR0pKRUxHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTQyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2epZGgq6CxqK/AsrvEupaOkZOHeoZ2a3+LkYN9ioOOjHiDgXOghIp9fYF/cIF+emh3a1JYTEBFMjExMzc2Njg4Ojw+QUVGRkdJS01PUVJTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklLTU9RS0pUW1dQSGJ7gXSCdHZteIuHdnmFhHuThHWel4aGjZGUpYysqUiGra+uioGAlIuCi4KEkqmIgZiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZIbIB3cnl2aG1rX3Z9goh/h4SLeZScm4mLiJF/enWKdnx4bW93foF1dXNtXF5eXGNkWGdlXFVQUFdZUERMS0ZPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2Nzc4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5COlZeSlqCdrKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzk0Ll2WcHOjVUZJS0xNT1dgV2xYWltkhIt+jXt+fICMjnuChY1+l5KAnp+Wk5qZpa2SmbuxprrHw6eLjKGljpOJgZF8cYOen5Gdf3eFhYuQh5BpaHCEgXSMh4SKcoaCd4iAe3aEfG12dWZ/lI6GiIiGh4egqqKWiY6Xf3qBiHl5b2dreH58gHVsZV5bW15qXmJnYFpPTE5XUlFIUEpETkdDSkRDQERDQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneCen+Mf4GRjoqam6Sdoaymqq6wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOhICBjIqCiY2Df4p/bHBqXUJANC0tLy8uLzAyMjM0Nzc5Oz0/QkRISU5RUlRSU1NUUlBPSEVCPDg3LzlDPjw8NjMubJOXTVBISkxLSk1WX2F7ZWRpb5OShpOMjYaJipWEj4yaiJ2dkKCoo6Kqk6i1oafBwq3Hr3i5lJp8jaGemYSThYKOoZ+UmZGFioWPmpGWbHB1ioyClYyNjnePhHFthYGKlpGChYhyiKCVhpGJjY+WpLSom4yUooOHkoN9f2tqanyCg4N1Y19lYFtobF5sbF5XS0hOUlBOTExGSVBDRE5GQkNFRkM+Ojk2PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXmAkoiRkn2KhJiSkIOAgIuMiYaQh4SJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDg1Mjw/UjVISEhMS01OUl5rhnlwfXiWlJKgn5yVnJKekZmbpZulqJ2mqqiptJarvqu1x8i2yNDPvpugcGmrqZ+Ek5KFnKCam5mmkpGIlaObm3h6fpSYk6GTl5eBlJ57d5WSqrKIjJaefJOdm42RlZijoaW1r5yQmKeHlo+NgIhsc3N9gX5zamFeYmBiaGRgaGdcUkVKS09OSUlMRkdNQ0hMRkZDQkdFQjs4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Ljo18ioaPkI6BgoCJi4qFkoWDhomBgId3XmJQNDYwLTIvLC4wLy4vLi4wMDE1PkFBTVFSU1FSU1VSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUpNTlFZa4KMdI+FmZ+hrbezoKmoqaSmsamutK+vq7mwsr2bssOrucnLt8O/t6WisLOsraqji5aYhKWmoKOXgaaZjaKqqKWIhZSkoaGqoKSoj5yxi5Wjpre6m6Cir5KinKGdj6Khq66rsrShlKSpiJmIkomVeXp+hoFpYmldZmNfZWReZ2dfW09DSUhTTkZIS0ZKR0ZGSEFLRkRGRkI7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2luWHqEdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GOg4SBi4WGiJKGgoWJh4iHh3FuYUBFNjQ8My8xMTAtLCstMC4tND9DQU1VUFJTVVVWVU5bUEdIRDw+PkZIQ0RBODs8NUM7PUZLSUZIUU5QV3+Pm4GonqqjqrrCv6ewwrSqsb6xtruzvbPAtbu6orjFqLXIx7W9uLSoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqivtrqyuqywtaKxrLG1u7a0rbSfpqeippmor6yxuLe4ppq1qIykjpCSn4Z4goV4W2NlV2djYmRhYWdgW1RKRERMVFBISUlESUdFQUBAS0RCTUc9ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiYld5dXGBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeEgY5/gYmPhn+GiIaKh5B6eG5dV0BFTjw2OjQ1QUI3NjQvLzZDSEJRW09RVVdVXFdQX1VJS0tBPz5HS0ZFRDs+QDdENz9CSkpFRlZTUF6MoKqgrq67r7K7yMWzucO7srK/tbbAs72vtnSws6W6xKOvxriws7Gzp6S1tqqxoKKXm6KSpbCupq2rp6SYoa20u6Kosrq1vL/Mv8XFvb2zwbe6t762ure4q6uwpK+orL2vvLrBwauYuaeUrY6Xl6mIfoN+bVhkYllsZmtmWFxjWVZTSUdGTFBHQ0hJQUhEPj9CQkxAP01EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWFVadmpwfo6DgI6EbnpzeIdiuaGZo4mUlJaSlJONj5eSh4d7hoGNlYqAhIGKenyKh4Z8ioKBi4OVfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNRUVlYWmdZVGBfTFNQRUE/SUpIRUVBQEQ8RTZCPkhHSkxTWlRdkauzsbezxLm2ucfKubrAu7a0urm1vLO5scVgdLGksZqeqr2ppairqqOisrWhq6iflZafmaCupaempZ+klKOnsbSosrO9tsK+08nJ08bDxczCysPAvby+u7u2tK+4trbCucW9wsevnripoauNpKe1iIGBdGFjY19YY2BqZ1NYYFZSVUlFRU1KQT5HRD1LQT1CQD1HPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtKy9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaKfoOAgnh7i4OHe4t5gYqCl35zfXprZnB1WV5cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFRZVUpEQktLSUZISEhIQkk6RD9IS1NUVVxaW5K2vbW7s8K8t7bIybi1urW3uLK2s7KttbaYZHWnnK1wXqKsnJigopuknqqllJ+fkJOOlpmYqJ+moJ6amYOknq2lqrCtuLC9udTRz9fQyszSzM/Nysa/vsHJvMC8wMDExMTJvsfNsqO6sLSumqu3u5iAfG1fYl5aYGNaZGNRW2BTUEtDQUVGRTxARj9BSEI/Qz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVtZaF9vlpKQlG5sb3R1h7SsoaGfi5mcmYyNlZGakoaKin6IhouQi4h8gYNze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWZqamlgZmlpbFptc5atpLyIhmdcb2ddWlpUSEtOUEpLUEtTUUlMQUpGSk9fXmFmaWGXtcSutrC5urOvwsW0rriwsLursrClqrerjLWnnZqnmk2ZnYyOn5aRppillYqTk4mQiY+RkZ2boZealZeHn5qnm6yvqLCotLTU1NTW08zQ09XN0s/MxMHJ0L3JycrJ0cbMzcLP0bevw7zDuaS1ucGihHFlXl9fWmJZWmdaUV1YT1BCQkhFQkg7QEM+QUc/P0E3O0M+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJncW95eYOhqp6ml4yam5eLjZWRmo59iYuFjYqJipCHfISCcH+HgYZ7h3KDkouOfXF4dWxxeH5xem14c21pgHBtY2ltcHhpd3x+y77B36dtY3huY1tiYEpQUlVOWV5PXVxOUE5UUFRUXG5tdoJxlqy2q7Klr7Spq7u/sKq0pqS4pqutn6u0o46wrZqXmIyPkpGEjpuBjaaRnImDi4SKiYSLhJSVmJeUm5Gcl5man5+rrKWooqytz9LV0s7M09TU0NTRzsfD1NHGzdLT09fM0dHE0tbFwc7Hx8KovbfOnnxxaGBlX1hiU19bUFFUUU9IPkBGQUJFPEBBPkRDPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxVUU1OWnWGhYp3bHdwfX5/oZ6eoYyMmJOTi4ySj5WFeYWQkI2LiYiQhn6Ce3F+gICHeoR1hZOQiH9vdnJrc317d3tzgnhya4BzcmlvcXp5cXq+y5p9i7GEdnKEdmhha11DWlpbVmVjWGRqU1hcXWBjXWN3en2LgZipo6SgnqCnpaqvuKqls6KhraGjraGmsZ6IppqTkpGJj46IgZOJapSijJmEgYZ+kYODk5eti5WNlZmOhpKRnpeosKKhoaWkqcnNz8jCzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy411cWViYVpWWlRcUUtHSkpKQDs6O0RBRDxCQz5HQj5CQjo8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7T0xGSlhwgHV9aHN4coKJgJ2VnZSFi5WJjomIjYaOf3iDk5iKjIiIi4h+gnhze32Ch3d/eoaRlX+DbndwbXV/dXh9dIV8eW2HdnRufXaEdHh7nbWMO0GKxaV+jHxpZVdJQ2ZjZWNnamNtd1teZmhrbmhugIKHkYucnaCckJeYnqOjpbGjpLKfoaWdoKiforGbhZ6SkZGPioyKhoOPhH+cm4yNgoSFeZR/gqmVo4yRiZeSi36Yi5uSq7OYm5yonKe+w8a5tsbO0tHS0MzSy8jUztDV2tfX2NTZ2M3Y287J2drR1b7Ky7V6eXBnX1tUV1JcV0ZHSklFRT06NzpAQEI5R0Q/RENBQ0I7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhImBh3x4hZeWiI6Ch4WHeoR5cXp7g4V1eYWOjZx5i3B8b296f3F7gHGDh4Fujnp1d318gnR+fIaHr3NYqcK2jZGCcG1iPV5ocnBxcG54doFlaG9ydXhxeouGjZORmpWflYeLk5ugmp2pnqCrm6GamJ6knp+rmYqai5CRjYR8h4eDhYuOn5mTiIOHfmyZeoSYhoiTjI2UjIZ8nImUkK6qlJaYn5mnr7a9qa2+x8zJyczL0MnD0srU19jX2NfV29fT2tvV0Nra0dbI1MuWfH5ra11cUVVUYUlDRklIPkE+PTc6PT87PUc8P0FBQURBPj86ODdEQjc1NTQ3OS81NTY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEPkNHUmpebWRiZmt2gIhxkZCagHqAjX6CgoGDfoN7fISYjYeLfoWHgHeCeW57e4aBdHmSno6gdo51gnN1gX1zgIRvgZCCb5KEdXyBhXp2hnuJt8Wkwcm4gZabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJSOl5CCiY6WmZaVpJuXnpWdkpGWop2Zq5WQkImMkYKMhIiIgYWPkZ2bmYmFi4GFmHqIiZ+XkIiNiouCfaGJkYy8oZiTmJmcqaamrp+otr/AwbnIys7Oxc3J0dbV1dnV19vU1tna29fa2tnYztvGiH18amxoYlZZV1dOTEVOQzs9PTw4Ojs9OT1ANj0/Pzw+PT05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs5OjdJUF1bU1VYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bIqNknd2eop7foB+f3yEen6CkYmEhXmEh3t1fXRtfH2GfnN+kp6RnoORe4Z+eI9+eIqKboKagHSZhn6BiYR7fpB6j6mOj8OhvYucpJ19iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CRhIiKkJKTjZyZkpOPlYyLlJ6clKCUkI2Nj4t+j42NioOIkpaanp6Ii5SRnZGBi3+lmIiEjYKFhIGlhoqMuJidkZWWoqehnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuHt8e25saFpiXVRQT0lETEI8PD45OTs6OTk7PDY/PT48PTk5OzszN0RAODM3OD42MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw6RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PUNRU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97h3p8e4uGgn10g4V5c3pzbYB+hH53hZuim52Ukn+MiH+Yh4Cbkm6IqIV6oYt8kY2DiIScfZqQioyjoqCQpK+fi5CLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlIuGh4uSkouTk5OOi46Jh5WanI+UlpCKkZOGgIuIkYyKiZyWmKKihpKdlaCKiYiNm5CDh45/g4eGpIWMkbOYnZKUl6Gin5qSnJ6osritpr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aBygHdqaV9gWlVZWUNBSUM/Pj46NDg6Ozc6OzozOzs/PT43Ozo6MTpHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOjg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNiem1hfpKDb213i3h5f3qBfIZ8e3eGhH9zcIWCenV3dnSEgoR+f5KmpJ+lopeKnZCUl4uKqJdzirKNhKiShJmThZmMopWfmJKIm56jkqmwn5CUkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNyJWOhoeIj5KMjJGTiISJiIWVmZqPj5SShpOWg3+Pi5mHjZCql5aiooiYnpaaiI6Gl5eJhI6MgX+Hj6SIjpOompeTl5mhmZ+ZlJ2bo7O0pqO8wr7HxsXJyMnCy9PNzdSp0tHW1tbY2tTS2s6FdYNrZ2FgYFFLVlxCQkdDO0E9ODM3Ozw6OT02NDk6PDo4Mj85OTI6STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfHxtfoh4en56gYGCfnZ2gIJ7bG6Lfnl8d3h8hIaLfoujtKikq7OhlqegpaSWla+ig5C4lZKzmo2hoIykm6+ipJ2YkKeXqZmtsKSXlJWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKcl4WIiI2Ui4qSj4aAhYaIkpiUjIqTkoaTl4aEkZCcc5CYspWWo6GInJmTj4qQipaaiIqWjYZ9jJifipCQnJqZk5mYoJSgnZWfm6GxraOkuL+0xMfEvcPDv8bOysnSp8/M09HQ1tjSz9i8dX15YGNXY1hSSUtPRUJDRDU+Ozc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NTI3Nz9ANj8/Nzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OklFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNXFxZSmhhO0iEi3p6bYWGeXyEeICFgX1weHx9fG9yjHp9gXt4houJhoSSqLytqbO9sKWus7Opo6KwrYqatZ2juaWVraSXqa23pqSjn5mpmKqkr7GqmpmclJWRmKCXmru7rcqhaba3qrCVmJ6iq5KXvaReqbKCiYmMlIaQfI6NfIOFjY+UlIiHkpaLjpWNi4yXmJGbmbSWlKqdi5yUkYyQkouYmomRnY+Lipafoo2VjZeZnZOcmJ6UoaCUnJ2mrqiipLO4q8LIxLa6vbzFyMjC0KHGyc3NxNfW0MrTo3N9bGBdVmJUUUdEPjxDQUE4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGZIYWBicEpAi4l/gHKGh3yBiXWCioN+bX18fH5wd4d3jYGHe42QjIaMmqvDwLC9xryztMG8tKyrs7aMqLKtrr2rm7ujqK25uKumpqKipKOqr7Kxqp2co5ibmJieoqalk6O5r6i/vKytsrmlo6d9iIacrb2wgouLipCDj4ORjnmBhpCMjZuHh42WjIqUlpOQmZabp5qxmZCqnI6aj5GOlZCPlZaOkKCQiJSbo6yVlo+UnJ6UoJ2bmJ+glZufp6ekoqSws6bAxsOwsLu2xcXDv82nx8PHw7zV0MzEyop3dmVfXWJeT0xDTEBFRz9BP0I8OjQ+QT09NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFSkhOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxoRl9pZ1tdXJOMjIh7h4uGg4x1hpCKgW9+e4F+cX6BepR6kpSUmJGTlai0x8nAwszCw7nHvLqvq7m7l7K2ubLBrqXApKuwvLyqrqujo56nrK+1samboKqcopyWn7C0p4yjurq1wburqJyypKSolISOqcTEpIKLjoeIhIaVlIx5g4yQjpGgi4uTkI6Hl5+XkpiUlqWgrpyMqZyOlo+RkJSVjZCUkY6hk4aXn6Cyn5SblKChmaSfmqCboJSZn6ekpqekr62lv8PCrqi3tcnDvrbOssS+w7uz0cnIwbV4fHBfW19tVE5JRExMTEpAQT1CRDw1QUQ7OjM9OEIzMzIyNjNBMTVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qajZaKi4iSj4aJeYaTkIFygHuMf3eHgoGPeY2hlqiam5i6vsnIysLSycvCzb3Bs628v6e6v728xLiswamts7y9qrCqpKWjrK60rre1oJ+un6aimaO0vamcqLzBo7a2r6uTsKyqrJaGmqqnpZGCjJKklYmAdYmReYSMkZCdn5GOkoqOi5Oil5aalJOhnqmekKSZjI+Oj5WWiHyOlZKRopqUoKKctaaQoJelpKOln56mmJ6Vl5ylo6ioorKtqLvAxK+ls7fMwLquw7O7vcG5rcLCwb+acXxkW1pfXkxNTktHRUNIQUFBREs6NERIOjs0PDdGLjEyMzUyQTI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bElfWGFaZGVYno+djpeOnpKJin+In5KEeIV/lH5/kIiJkICWoZqtp6SYw77JxMjG083Ozcu8wrewur20vcu7xMK2tryttL+5vK6vqKGpqLaurqmyt5qerKKoop2rt7eqpa++xLG9ubOnqrSzra2WlaWtqKCRjpKxxaeVjnyRlXyGkJiPqZiXkpKOkpSSpJySnJiToKGhm5iel4qLjo6diFqPlpeSlqSZZpmjnrOllqKWrK2sp5yfppeYlpiVoaOopp+1q6m6u8O0prS1y8G4qrass7u4rqi4ury3hHBxXVtWV1BHS1ROSz9BR0RESEZGODVGTTs+Nz5BSy4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZmRNRqaUnJahl6iWjJCDh6WSiIGHgpuDg5WQkJOOmqKfr76uoce+xsXIx87Oz9LKvru2sbu7vL/PtsS+t7m3s7K1s7izrKecq6y5q6mosLCYo66lqKSltcGwq620vsO5wLmzp7i0t7KvlaStsK+li5OUoI1zwZl9lpmEjpaZi7CVmZmUkZGZmKSilJ6alZmonJqhn5iJi46UnF9KlpyalJmkl1SWsJ+vnJ+lla+vraaboaaUk5mYjp2fpqGZtKmqs7y8u6uwssfAuKasq62xsaOhsrK0pXNyaF9dUVJMRlFRUFE7SEpIRkdBQz05S1Q/QTo9RU0vNzUzNDpCNDROV048SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzVFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTdGJWRkirl5mfoaiumJCXh4qnlo2IkoWfh4Sdl46doJqjpLXJtanHvMTEycvJyMzOx766s6+6uMDBzbXIu8G5trqyr6+ztKeknKu0tauqpq6smqStpqWprLq/qKu3t77BwL63srLDsLe9rKOuta26poibl6Wbdb6fhJmdjpKYmouulqCbmpaUmp6fqJ2mn5mZqZmgpp2Wj4yQnIJtdZKimpWcop+QrrKiq5Wpqpiqr6aloaWqkpKZnImVnKKelrCnqaq6t76zsq6+ubago6eopaacnK2pqY1maWNiVE1NR0lPSlVMPUxETUlKQENEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQzo5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYU1WSH5lXkhGrJScoZ+7rpiUnouTqpuRkZOIqo2Hop6Mo62Uo6S2x720wbvCwsjJxcLOyMK9ubKvubXAw8q2xrLBvLW7rKmtrbGjo5mqtbumqqesqp2or6ikq6q+u6itvbS3vse8trW4wLC9v7Optbesv6WPopeQoZ+8nomaoJiWnZ2Otp6om6WimpugmaeksaCanaWcp6mcl5OOk5uKlomMpKGUnKKfoLWwpaaUsauaq62fn6WkqpKWlaCEkJ6fnJappaGhs7S7tq2otbKynpyjpZqXlZmqoZ54ZF9hYExJRkhOUUlORUZGQlFKSEBER0FWU0RIPEFHUTE7Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRKiXpJ6fw6ybl6SXmaiblZqajqqWlaimla2smaKrt8XCvL+4wcLAyMS/zca7vrmysLm0vsPItsCwvLa6t6ekq6ytoaGbq6vEoqWorKaeq6+toqqovrimrb6wt7fHt7S4uL6xvsC2tLK1r76jlqOVkpqTrZ+QoaGkoqKekL6kqJ2oq5ycoJqln7yil6OeoaiqoJyVjZWek56HjoSNk56koJ22rKadl7OnmrCooJyrn6KNmpWfhI6hmpySpaWal6uxtrKqpaqtrJyYoKCSj5CWqZ+UaWZcYl5QSkhLT0xIRURJQD1PSEA7RklIW1JQSz1ITlU0QkY4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLS0wTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE6im6ObnsWroJ6rnZytn5Ginpakn6aqq5e2saOqs7bFw73Atr/BvMnCv8rItri1tLG0tLfCxre/sbm1uragp6yrrJ6foKWkwaWhqq6gpKmtsKKmqL21pbG8t7a2w7Kyt7q+ssPAuLittLS1o52klJGToKyfmKGdqKiqoprCrKidq62amp2YpZ+9oZykl6urq6WgmY2aoJKeiI5Yf5afpqGguaqnlJm3o5+zoqGcsJihj5qVnoKPoJeWjqKjlZClrrKsqaKipaSVlZyYi4+Sk6SfiWNnXGVhTUpLS09GRUFHSz49SUE5OUpKTl1RUUk9TFZdOUZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExQnqCgmJ7Dp6Sis6CbsaeSqqOfo56tqaydu7GprLWxyMTBw7PCw73HxL3Eyr2wsbausbWwwMW1urGxuratmqmwqqqbn6ahp8KtnK2xnKmirrGqpKi9t6a1u72vt8Sts7PCv7LGs7q3q7S2raqippWVk6KroZ+fmaeqrq6vu7Gln6mpmZiXkqKjt6Cho5GurqukpZ6RoZ6UnY6QjZSdmqOfqLWnp42ZtZyjr5ugnLCRoZWYlZuAkqKWj46goZOLpqywpaeinaCekpKak4WLko2cn4BkaF1oZktKTEtTQUNASUc7O0Y+ODlOTVVfUlNKPk9eXj1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9nckA4PEiWd2VBNJ+knpqgwqejqbGgo7SplbGrpqKksqytqbuyrbC1tMe/xMO1v8S+ysW2wMnCtay1qbC5rMDEtLivrba6pZmrsqyrmKGnmK27tJyosJusn660sqequrKmuLO4srnBqreyw720xae+rq23tamnrKGWlpGlo6Ghl5ekrretsbS2n56opJmTlJOjoLaipKWVrbGxpaikoZ2ZmZqVmKign5minq+zoqaNmK+apayYm5+nk56QlZmahpaglYyQnZ6Ti6mpq6GnoZqelo2PmZCChpWJlZ96ZWtebGtOUU5OVD1DQU5DOzpJPzc3UU5dX1JWUUJXYF1CSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWpWQ1dGjHlmQzukpJygpb+mqK6uoKm1qp23r6ujqrS2sLC4t7C3uLjFvcPHvbzDwsjBusHGwbqqtqWtu63Bw7i4qq2yvKOVrbCus5emqJGquaqhp7CdqqCvtLOqqra1rLqrs7K6t6y4sMG6vb+mw6qwtq6pq6umnZiYqqChoJGXoLCus6qwuJmbqZ+ZlpGXpqC2qKWioq+ws6uxp6ufmp+fm56lnaGYnaO0sJyfkZSmmqGpnJakopiajJaZlJaXnZSJkZuZlI6pqaefo5yZm5OHj5mLfo2Xho+abGluYm5uWFFRWlRBQ0RVQDs7SEA3OlhQZF5RV1dFWV9eTkxTT19MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOG19aFxWOol7Y0M9qJ+coam8oKqvqqKwt6mltLKroa21va+zuLy7vbe3wcK/ycO5xMPBwLnFvcG4r7aoq7eyvL+/tKqvsrifl6utqa6YqamOp7ufpa2zn6uisbCzrKq1s7W7rK+xtaywtbLAusW2q7yvsbesraqjsaWepaieo5aPmJ+yqbKpqbKZnaebmpSMn6aktK6noqysrbCnsquxqaKbnqiknpWhmZyotqmYmpKSn5mfoaCSrqGbmoiXmYydmp2Ui4+Xl5qXpqajoJ6XlpaUgJCVhHuPk4OMl2dtcmhxc2BHWWZWRENNWERaOUhCNj5dUWhcT1pdR1teXk9NU1hkSktDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FWMTUxPWBWXzgpQzNZVVxnSzWMemZMQKWZn6SrtqOsqKSurbWpr7O5pqewt8a3sbe/wcK2tbrFvszFucPBusC6xbjBurO0rKq6uLu6vrWrr7G3mJioq6usnK6rj6u9nauusaOqn7Gts66utbG5t6qtr7Kotq+zurzJs6q1tbG0sK+nobOfmqisoKWVlpqZsaKtoKWvlqKkmZmSjKKlp7Kpoaaxq6m0pa6vs66jmZ6tp5uXnpqZrLiimJORj5icoZmYla6hn5aClZmOnp2al5GKlJOemqWjo6CZl5OSlnuMkYV7jYuDi5Nsbnlvdn1iRmBqWklIWls9e0pHRTZBY1RpW01cYUtcXFpSUlJiYUxLRWBhYVFNSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1hUTEWalp+wqLGprKSjrq21qLezt6OstLfJu7W7u8C+tbS3w8DMx7zDvbe/v8G4wL2yva6ourm4t8K3rK6xupaXp66sqKSyqZSvu6SssrKmp6OytLGysbWwt7Oprqyyp7ivtbPExbaptbWrsK6qp6O2n5+msKCjlJuZlLCep5ufqY2pop2blZelpaS3p6Kws6unsKetr7SspJihrKicnJ2clKq5nJWPj4yYnaKYkZmopKGYhZSXkZ2cmJeXiZeQl5uonaWhkpaSkJZ3hJGGfIaChI2NbnF4dnyAXUxlbFxLT2RdP2J7R0k4R2hXZVtNXmJNWVlXVVhVal1PUEhhXl9QS0dRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGcyNydGYUxWJS1CLj1FTFE8M3JqTEVEkZmkraSsraqmorCxsqq3sLWfq7W5ybmuwbzDuLOytcLDzsTAwr61vsDAu7+9tMSpqrmxtrfAvK+stLSeoaexrqWmsaWesrWsqrKwq6iotbqstbK1q7StqquprKm5rbKwx7+4pbmwqa2tpqitsaWko66jqJydm5qvmaKioqOQrJ+joJ+hqaaluKSrtLSkqquprK61rqKco6irnKCZm5KktZqPiY6IkaOhlo+Wn6OXlYaQlZSem5mXlYiYk5WZp5ygoI2Tko6ReH6PhX18fYeKinJ0c39+fl1TY25eTlpnXUZElltHOk1uWGFbTmFiTlZWVldVWWheUVNNY1pbVEtGT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RkOzYqSGRISis6ST8zQ0lTLD6Pa0BISZCaqKmhqbCkp6Ozs7C0tbCwoKutvcy7rsK9x7K0rrTCw9HExb/Cs77Cw7y/uL3FqK23rLS4vMCxrLKtoqSnrqqopbGjqrGqrqqxrq6sq7O7p7ewsqmyqqumpaSuuqyqsMK5tKy5qamoramnsaWppKKuqaiinpyirJWlnZiemaydoaeooaymo62strCxoKmioKqtsKydnqenqZqjmJmQoKiYhoSPi4ufoZCNj5iekpKIiJKWoZ2WmZaHl5OTl6Wdnp2MkpCOin9/iIV8d3+HhYd1dHKJd2xfWV9uYlFzcVxLO4R8Rj5XdVdhWU9jXE5VVlVXUVxiX1NPT2hYWFdLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTM5ODsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLkpnREY4PEIwNUVLWDFAlF1ATkaVlqynoKmxnKeosLWsuLWtqqSqqr3JvLG/ucOvsK2zxMPNzsO/wLPAw8S6wbTJxKyvt66zusC+tK6urKepqrGppqmxprStqq+trbGusq20u6W3s6ysrqiroKOesberqq25tqS1taSqp6ysqq2gqKansbGkp6WhoayWqqGTm6CmnqOiqqOsop6msbasrKKlopqpqq6pnKGlpKSZoJmWj5idk4GCkImFnaCNi5COnJGTjYWOmaWbk5KbjJOSkZSjmpyai4+LjHyGgoKBenWBg4F+dXeLood4al5fbmZXZYdkTkBnkkxFYnpXYlhSZlVNVlZVVE9cXWFWTE9qWFZWSEpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIdCSUlElpCupKGqr5ioqK21qrWxqqWrqqm9wMC4urS8taazr8TJy9K/wbu4v7/DusK6wcSusbWytLzBvrOxr62srae3qqWtsKu4rqewr66xq7WqtrWntLerrKSqqpyknrSzqKiks7Sfta2hqqirqKunn6urqLm2qaqqqqKpn62bkaqhnaCkoqaiqp6cprSup6WpoqOYpKanqpyipKOgmZifkY6PmY1/h4yHhJ6eiYaMjJGRk4+FiJajmo6Om5KSkI+Sn5iZl42LhIB0h4J/fnh1g397eH5/iJ2PcHFmZnB3XGF0iGpPXZhWSG15VWRWU2RQTVVVVVFPWFtiVklRalVXVEdPWFVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UyMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyQGY9Tlg/Qyw/TFRfL0lrN1JGO5WMr6CkqqyZqaOtrrK0r6qkr6mou7+8wbKwua2itq/Ix8fQwL+9urzDvrvEwsC/rrKzs7a9vMGxsrSrtKmltamlrbOyuK6hrLSxr7G5q7muqq63q6qeqqugo6G1raihn6+yobSqn6inqqKqoaGsrai9rquuraGnqJ+smY+wopiioKinnqebmamwqaKfrKKhkqGioqeZmammmJiZnY+Lh5WIfY6GhIWkl4aDhI2HkJCShYaWoZeIkZ2Rk5CNkZ2VmI+LhoZ4dIF/fXR4eoB7dXR7a4KHpHZpXmVrgHVniIt8UlZwX0t4c1RkU1FfTU1TWmZOTVdZZVlHU2pSUj5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzOPjbGgpKWqo6SirKazsrGopLCnqri/wb2xqbqqp62wycbH0MO+wL25v8C9ybzCuLGwtbK6vLnAs7W8rLmso7Smpquxtbexpaa5tK20vK+8pa2ttqutnKmvpJ+krKqonJ2qsqSzqJqrp6mkqJ2iqaepvau0sK6dqaSgr5yas6KWpJulpJ+lmpqoqqWemqmhm5GboKSdmZapqpGZmpOQi4KPhX6Qg4CIn4+HgX+NiJKQkIWClZuUhpOhjZSRi5Gbk5aHin+Acnp5fXtndnx7dXFyfmqGeYWIZF9nY3KFe21neV1eVkJXe21UYlBSWUtMTnB0XUlaW2hZRlZnT0M+S09EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpGwmJ+fqaSioauktrKxpKmwpq25wr23saS5rKmosMLIyMzCt72/tbjBusi2w7W0s7Wyvbm6vbauuba/rKKzpqqqrrS2s6ibubuosb6yuqCutLapq5+tsaOcpaipo52bpbCmr6Cfqqmnoambo6igrbynrrGuoaqipK6enq2mmJ+aoaKbn5uZo6qimpmjo5WWlKChlpuWpqyMn5KPkYyCioCAj4F7mpWNin2AjIeRkI2KhZOYkYaTo4qSkYeQmZCUgYh9emx9dnh4Ynp6cnBxdHhqgnVrgmdjZ2Fuc45tYmpvX3BBXXlrVl5OUVFLSU1TWVZNXF5sV0VYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl0+I5GWrJifl6ejoZ+no7evraKvr6isuMO7tK6gua+rp7O6x8rHv7jCva+0v7fEtsOysLqxssC2u723qrm4vqqktKaoqa+tuK+nl7i8o62+tLShrbi1p6aosLOgnqWlp6ClmZ6sp6ieoKqvp6Cml6Kon7C4n6Oxr6GroayknKenqJqbm5+ilZycmp2pppabnqiRmJKZnZOZlqGqkZuKjpCHfYd+go58fKGNjYl6hI2Fi46NhYmTmo6IlJ+JkJWCjJeNkXyFfHRwfHFzc194eGpvcXFwa4BzZHpsZ2VjYWaHgGBbcmpyTU6AaVhaTVFMS0hQUlBHTVtfb1RFWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsn56ho6C2q7CjtLOpqbrFt7OuobitrauvtcXHwLe/wrmwtb23v7u+sKy+sLO/srzCuKq7urinp7Snp6qvq7KvpJe7taSrurWvnrG5r6mlp6+ynKGkoKSjoJabr6WhnqKor6GgoZKjpKK2sKGmsaufrKOumJ2qpaifmJqdo5Oam5qdpaqam5ullZSXlZyOk5eiqaKRiouQhnqEfoSLeo+Xio2He4OIhImNj4WPk5iMjpWZi4+WfoaXjI96gXtwcnZub3NeeHdlbGxsa2qFbmZyaWplaF1kc4FgW2t2aVpKf15bWE9PS0hIUlVHMzldXmxQRVlVWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFRdaEQuPDJkVywylKGhlpSbqpyjoaKhtqmtoLu3pay+xbSwr6O1r6ysrrTDw7yzv7q3sbO5uLq4uq+uwLOzuK+/wLetvbq1paKyqaepsamrsJ+Zv7Skp7S1qJ6yvKmopamvrJmip5ykpZSXoLGkmZ6kqamcop+SpKCkuKmkp66mnqWhqJOgqaKhoZmbnZ+RmZuWn6Gqm5qYoJSRlJeajpOTpKikkImKj4Z6hHuEhn2djYqLh3uChYeIipKFlpKSi5CVlI6NlHuDmI+Ld358bHRybGtzYXd1aGhqaGdwhmhoaWRmaWlgamNqaFtme2NgU3RUXFtSTEpGSU9TQCEqaF5pTERXVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp6ipJGOpKeZnJ6do7Ssp6q6tqesw8G4sayjtq6nra63wL+8ssK2sK6ytra5tratqr2zrrKxvL+3r7u7saWftamlpLOmqK2cnMCqp6Wvs6qstbueqaqrsaWYnqqdpqSRmKWsoZidpKmhm6Gblp+dp7WmsKquoaGdnqGVoKagoqCam5mbkpidk6WdrKGXlp2Uk42Vl4uPmJupoJKJiouJeYV3gYKBnYeLg4l+gIWIh4aRhJeUj46PkZGRjJN7g5WPhnN+fmZ5b2pqa2Z0c2tjZ2RkdoFjZWZmZWppY2tyW19ZXWxkYU5pWFpgVkpHSEtNUlg+OV9saEhDVVRdW0lJR0ZBLjw/OUE4OVJHQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyssMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao6CPjKyhlpaglqSzsaKyvbahscW8u7Kxo7esqq2puLy7uq3Asa6urravs7izqau5sa+us7a6tq+4vaymnrSpn5+voqitm6G/n7CjrrGvt661nq2vra2imZ2nqaWflZqnpZ+YpKKonZqfmpOcnqyvprqorqKhmpuemZ6kmqSdl56Ym5SYn5KolaqnmpOampKMlZmNlJSbqqeOjoqKj3uCc4GBipiFh3yJioaGioyJkoWVm5OSjo+Rl46Qf4CNjoNvgX9meW1na2lmcHJrXGdjY3SBYmZnam5sZ2pqaG5dbGxycGBUY2ljZllJRkxNT1hSUVVhZYBVQVdTWVRHSUZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlBMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyY0kaGbjY6vnZiToZqpsa+fub+1oLTCu766saa3r6etpLe4t7esu66sqqu3qrO3rqaytbKuqbC2trCztbqmqZ+1p5ydqKCnq5qnvZespK6wtrWsrZ+xrbCpopuco6uom5SbpqOdmqmipJaan5uQm6Sqq6q8n6ekoJiamZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJiagJaKopB5h5SNg21pf3eDcWyGi4Z9hYyHcV5jYWeEmIVrio2UknR3i4R+g5CAZ4eAZ3VoZVdcaHNuTVBpY2dzhWhfZWZubWpdYGGKj4OEZU5LRDlHVGheSkdQUFVVTEhTYXB0ZUZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsLDA4PUc3MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoukmYaVsJuak6Cbqq2qo73Fr6m3wre9va2mt7ClqqK3s7KysLmsqaastKavtKKpt7a2qKestrKutK2zoamfsqmdoaOZpKWYq7mTpaWvs7etrqWprquspaGenKGnppuWoKWkm5unpp2Tnp6Xj52nqaS2sKSjop2WmJeXo4ihjpKahqGHk5ygf6V/paqekpKakYiEc3iNjoWIoXaKjWmXiGZ+c3igb4iHhH6PfX+hoKCZgH2HnnOGjnWbimyHgYNtaWVjemxyYVOFbWJsaZhxWGlxcIhZXmlbbGxbiHJuenKFZoaEWl9HTj9HX01FUlZWUVFSV1VnXU1WSFJST0ZIRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiKp5eDnKudmJidn6qpp6q/w6+xury2wL+qpbewqKylsrSurrK1qailsK2ltLKbrbW2taanqLKwrLKnrZ2poLCnn6OimJ+hmqyzk6Olpba9pq2nq6qsqKWhoJigpqOZmKWio5icpKiWk6Kbk5Kjpaaht6SkoKOYlZOXk5yIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZzGeXixpbeXZYDAnL95hIV6koR8kJCRynKXu5zFenK1p7qQe4BtlrGrsHlobFixrm5labySvG5nem9yj9h+U2tjtrJ+gXKUc5qhqpBXT1diT1ZORlVbWFFRU41dV1tRQVxEUU5FSEk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT46Qjw/QTg6Sj41MioyMkJFLy4zMi4rLygtLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKeTgaeqn5ecnqWssqmwwr2ytcC1tr7Bq6e0rKyopq6zqa+1sqanpbSlp7itnLOytqulpKexraywpqqdpqOvoqCfnZWZnpytq5Odop+zuqOqqaKtrqWhnJqaoqefl5qnn56XnqankZymmZOdoaaiobGjn5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUca6hpH54u31soZB2sV9qtFulgGWckWBng3tnf2p4a6llvnFnpot1sWp7sXh0kpRjbm2nbluEoUVoZoeWRXWcYH5nfKSnglpgjKtogJV4eWqnN0qvXFhTbGRbS05YX1xXVjtOik9XVy9JVFNKREZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MDMuMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYOtp6Weo6Sqsbestb2/sLbEsre6waapsKquqKiwrqOwua6jpK2yo6m4p56zs7CjpaCprK+rr6annqOhr5qhm5aUlpqaq6SVmqGftLOiq5yjra2gnpmWoKKonJido5+bmaGmpI+copmXoJ+qnqamoJqgoZaVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH5rgqZ7goaIk5STd6tna7Fcq3qNhpR0iXKPh4B/iJCXeIKBi5eLg6CPhLB2d59xbGxsfItOpFhIYmKZfmNopmB5cnVTk4deUaltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrJ7WFhBI01oRkNFQUBBMTk+ODg6ODQ7OTk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE9PFN9bjMrWGpcT1hNX2dXN0o4YVU1MBuUoJWIs6amoa+pp7Ksqbu2wrC7wa24t7+prK2traWssamgrruqoKezrKOrtKOmsrKno6Kep6qxp7CnpZ2enq6VnpmUlJSXnayhmZmkqLWvoqqPqqiqm52Vl6Clp5menaOfm5+jpaOVm56XmZyiqZummpyboqCXk5GSk52D1ZOZuXCwwX7FhnzWlJu7fJqVpY+NnY2ke46IpIOlgnqseY+dVq96iH6farlauXaGhH6mgpR7l3qqeI2dj3qxbo6EdJG8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiFgIl8Y6QzQp12XVBqaWNQQFhnWmRhSkhNcVBcUU9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6O0RIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFQNzElm6KUmLKoqKa0qqW0qaS8t8Gwub+xtbS6srSnsK+ir7Kln621qJqnuK2ir7Cfs7SwoKSen6apsKi0qKOanJ2qlZiXlZWTlaCpnJmWp62wqaOfj62jqJadlpuhpZ+XoaGioZqhoqebnqCelJiapqCbp5Wbm5+hmJCSlJCdiLJuaLVxq4dujqZytHNytnual6SLj52Non+RoaZ/sXaDkdLSdlyue4V/pG+bqqZrh4V9rX2YmY57sXGSno54s2WXdISeb55nlFHIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFPa2BsaFBWR0o5PVVSWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTDYyMKKdkqWxraOrvK2mtKantru8srq+tra0ubiypLSyoLCxop6rr6OXpritpLGwnLS3qaClnqGppLGnrKmjmZqZp52Vk5eXkJGhpp+Vk6WqsKailpOtoKaSlKCbpKWelJqlp6Gao5+tmaCenpCVm6GdnKWVnZWaop+VmJWRmoWse3eodqONiIapb62KgqeDmJihiZKai6J/k5qJroV/grNccrNSrn2CgqR/cdd9eIV+j52Gmpl2r4aHkZyHd7RhmmWagoKVbZJasFhLmnWYeWZgrV52d4homIhsXa93lZ6PeGw1eciusl9CVG9eZ2BFUGxgcG1WVk0uZmVpU1lQO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEg6OTmgnpWgubCXtMKtqLOoqbK6t7O3vrm3sbS6tKS3sp6zrJ+fqKuelKe1q6ivsaqts6ObqaCfp6G1pqapopidlKSgk5Kbl5GUoaSakpCmra+moZWZqqCjj5GhmKekoJSapaidnKSerZ2hnJ+Mk56anaCXmZuWl6KglJePpp2GqX19pXihjo2CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTYf3aIdKiBjpuMkqR7lI+fhHuyXp1koH6DlW2SXatbWpOAkX9oZ6pkcnuBa5iHc16rWomgjmtvZU9KQ6FcW0x0XWJnTlthX3JzX0tXN0qbllhIRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDUuOj4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84op6amsGrl7TCrqutqaW0sLewtb65ubGwtLmourOfr6SdpKamnpOpsKmvqbSrqa6hmKCgpqSjuaKiq6CWm5Ghn5STnpmTl56fkIyMqLCwp56Xm6imoIySpJamqqeUmKmnnZ6goq2koZ6gjJShmJ+fkZ2XnJWeoZWWjaqcj65tcrRzqYt1iqdztHhzs4CRpKOSnI6JpIeQd7hwjXuLomprtlqhhWWXl2mhoqdtlHK0dJOZfrJqhZGHrWp1s2GdZqJvh5Nrl12tYE2hfIeRUnOjbHl/fm+Yh3Jdr1Y8nHdmVG9uLlynT2NTa2VibVpjXWFwe2NUW1I+PW5wM0NCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKacm568oZuywK6tq6ynt6m3r7W/tLuvrra1qsC1qKmhm6WjoZyRqamntaKyp62poJecp5+kq7idoqyalZmOo6KVjJ2gm5icn5GTlKq2sKiZlZysqZeMlKWXo6yikZarsaOfnqarsZmhoo+Yopafm5WclqGTnamclI+qmYfUkpq7c7DDgMOGfdWWm7h4iJCYjJeLjKeIeqS2dX53dsKCmrJgg7p5wHx1uGO1gYyHqX2VgaupcXt/dLyIp6BpnWGmjq+hfox1h6p9vm9zvHSyg3V4gYpumohybo2kdL1ed31aYXm8a1pWXGp5XmphZWdjbXhvWVxaQ0BAc0BDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQj1FODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56ivaGXssOwraqrrLGnt6+2w7C4sK25rq3AsKujop6joZybkKijqrKktKWspJ6VmqqYpqy4nKKtl5Sfj6Sfkoycop2XnZqRlpKvubKslpikqKeUkJakm6OtnpGgqKufmp+oo7SfoqSOp6KUopqcl5WjmJCvn5KUqZ6EkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSfwbu9mnuBsahxgHORuYN9h4aMh418ioeNmHyku7m9nHR5tKN0d5d2dLB1mZ5mh2qNtXRycXe2jF5/en2JaIN5bnpji6xwdYV/WFunakVlWlRmYGNeY1FnZ3BsdUNOUU1EOlpNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlNZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzkqT15dPSs6VlUnPjs8p56hosCllrXDtKyrqKyrqbqusMWts7Kttqazt6upoaGlnqCdmZOqo6yppbWnp5+blaCjnaukvaahqZaTm5Chm5GPoaehkpyXlJiUsbW3rZmepKSii5KSppulqpuVqaWlm5mhqKWnpKqgka2el6Sel5eXnZ6Pr6iTm6WhjWp9aZuld4ZyfZqOdHlkh3u9vsC6b5ODcpaIYXNrWl6biWBjiI+Va2CAlmRunndjlmyAmpWUZV5gYnCZiGlyi32GlWdrf3J0eH1/Ylt3dIFoUFxtg317i2tYa3qCc0pKb4ZwTnRMRVhdZ2FMW1dnY19PW210aXFSUURFTTtHST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTX1Y0KVBfTCgzPltPJz8yPqmgqKLCo5u1urajrKWup6e1sazIq6+yqrOivbCxpZ+ip52jm5mZq6auo6S0qKWbl5SgmqWtqL2nqKSUk5uVn5mSl6SpqJCekZCYnLCyv6ycp56noomTkamaqKOamqugo5mao6eso6Cropqxm5SnoJaUnZ+dlrCkl6CnmJuQnJyhoZekoZmcmZmZj5WBZ219cXeSmJSShoy2q42GmJWOioyYloeUlYuEk5SSiY6TlJiUmJaZn6GZmpOgnI2CeqWFbWt9kH2AdYqKgXGCeHl2dYl/fIpqc4F0g3Vld313a296bV9kXXBoTVlaZmpgV1pveG1tZlVQRlM5T1pNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSiw8LUCzobOiwKGksrK2oKmlsqelsLSqyKqsr6W0pcCns6CdpKSco5WVn6qmrKKjtqufmJaVn5etqaXAnqujlJGbl52XkpShnp6ip5OSmainssSwm6udq5+QlpaonaqcnJ+smKGbnKKkr6eipaefrpiXp52ZmaCenZyvoJyhpZSWkZeTnp+UoZ2XoI6Wk4qKjY6XrpB8lpyDkoKLq6mFgJmXiYSQnoh6hJCIhpqSiIeKlo+bl42Ql52jlZiSkJyNf45nobOvhYqFdnuSin13eXpvZnmPgYCJanWBeYhzaXN/e3aDh4JqdWR6ZmBqZWNkZmtZbHtvaWtdU0xQRF5URkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9iY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RcUTA1TlsxN0U0W0c1PCxAtKC5sL+srK+ysaCqprKtoqyzr8Svqaqisa27orObn6aioZyYl6elqaWkpbK1npSTnZmZr6WtvqCropCRnZmZlJGVoZyXqJyEn6uso7TItKCqpKuXlpeapp2pm5+kq5Sen52gqq+ppaOroq+bn6CgmKSenJ6crqOYnqeSlpWbkaOXlqecmpZlgpJ8ZX6NmpBjeY5taGt7kqWramWbmH1nhoplZWloe46ij2xojZiRo3draoqYop6Xc2tteoSOiHpYZl6Gg15tjIqBdlxoc3d2kYCIgm13gXh/c215hHR2iYiPg3xqh1lebHRkXnOJaWt8cGtkX1JOWElkWEFKND5GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaagur26r6y0saqlqK2usKatrbC8sKimo62usJ6rlp+jnaGZmaaqnK2jpaepsq2elKOPoq+ltrmlrqKOjpqhmZOSmqCZmaWVfKauo6i0xLiloqevn52VnqKeo5yjqaiSn6Gdoaqwq6ukqqCqm6efp6CslqCbpa+jlpuplJ+bmZGjlZypl519vYOIcrRyhJ2GrWh4ucS4cZSjo3qmmZlyq4J8y8DAu3GMo4iDnnyXmYmdwL2Blp2djJzBwXyCfJONmsPAfWylsm+MgW/Ken+bdpCDjoF1eYCAeXF6f4dwd4WMk3lteJRjZ2B4ZGBlgmJec2dsZGRZTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhDQ0JDRUhJS01OUFNWWV5fX2FfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9WQUI7LziWo7nDtbCwwKmolKOvqLCuraays66ppKWmr6qeq5iaop+cmqqmoZyroqSoo6S0pJyikqWtq7ezp66ikZCZnKWSkZ+hmJugnYinraWrrsDAsaGpr6mWkp+dopmipKqjk6CinZ6tr6qtp6OjqKGlpZ2sqJGjmqisqZqcp5uqn5SWo5SfoZWbf86UeHqkgXmVlptfro9ejqiCo6F8p5abc6uDgK9eY42qe6iHhaB0l5OIs2OCq4agjY2zaoSvdX2XiLdhg61ao81ukHZ72nt/mXB9h5J2fWV6h3Z2a3yHbn2GkZF+bYOQYHJtcGhgYHpkXHFnaWRnYFJUU1ddS09ENUFIREQ4PjY7QD9BOz03QD4+P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqets6umsqurqqKrpq6qn6abmaWXnKKvn6CeqKeipaCfsKuanZWmrqywqqirn5SRmp+kko+epJeep6Ofrqassai/x7OoqbGulpKdnKGXn6mqn5Whn52drrCprKqcqKiloquSrLKWpKGqqZ2ipaSfrp+RmKWXnpmTk5GXoHGFjJd1haiGcbF9nnKsf6KfgaWPnnargn2tf5xzrX+sh4afdpmSe3yXfqqHooySjJ1+q3uJlJCfgHutV53Fe49wk8F9gZVtdW+MbWV2ZIVuYXducm+JipKPg26SkWZwdXVxYWdtZV9vaWlvZ2RYVF1hWlJTQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXlxbWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08KD4xKTNXQEYhHEc6QzEuK7DTxsaytKCdo46joqKsr7auqLGlqKmmraurpqGjnZmilZ+lq5+hpZ+oqKKenbCsl5qWqKeuq6emp56XlJmioZKUoK2bnaeksK2lrbWrus2xraauq5aVnJ2imZ6urJyXoJqen6mzq6urm6yrpaOsmq6xoaerraWXpKmnp6+gkZWiopiTkISkaqR1iXqpdHqycIKmipmMcYmgm4ekYGBSq4V/roObdq2CqIaFn3uZl4V6ZoCjiaSZhoKjfal+gpaHrl98qVaeo5KBeqOfgHvDr8WLcq+zs7lxYqmvwnRojIyYjoJunJVxb3p4eXBtZ2VlcnBmfWpjXVdgalhZVU1NUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmFhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioyUEtMIyBBOUQ0LCfDydbUv6GZq6egr6KesLSwrqmsoqelqKqrqaSmoJuknp2lp6ejnKuZoqygo5+voZyakqukta+uoKeanZWTpqKRm6KooKCmnbGmpqmyrbfIsrWqq6mWkZ2copmgpbOdmqGUnZ+nrK2ksJutq6OjqqGyraGpsrChmainrK2zoZGUoaWWmZB7qmyehId1q3l8sG+CpYyJn5aWoJWB0ri0uMmBgbJfYJSpg6WIh6B6mZWaeKrJdJmklaipkZOajYGciprGxnlnoYKldIGfjoJ9r11wtGKwdUujh22nR4KTZI+QnpF8cZmVgXF8dX58blxmanNxZoFrX2FZZG5cX1lJTU1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKWinLK4rKqhpZqnpKmrqqafpqaYqqOfrqudpaCsmp6ppZyntp6il5OpqrWyrJulnKCUj6WskZqcp6OhqqeuoqWnqrC1w7GzqqyolIqXnKWboaOupZehlZmcpqatnLGerqmnn6yjtqygsbiunZqtprCxsKKSlqahmJ6Ngp1OeJqBf596hKN9g6SFh6afnZ+UhLh7e3m5gn/MxsK2eJuhkYuffpqWl4p2n5eKpZikqX+whZ2GoISsfZqVY6ZtpHCPhZCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Uk413e3OGf3Fcbm54cmqCb1tkYGlvY2RdS0xRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZZWVpbXF9fXl1fX11aWlpYVVNPSEA4ODIuLCouKyonJz9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmKmrpKu5qq6fm6GssrOlnqCVpa2trqqnnKanm6OoobOuoqmmsqCYqaSUo7aiopWXoqm0uKOboZyiko+hsZmenKemoaKwrp2mqaO2s8WxramsqZGHkJyonaKknKWXnpmamqalq5uwoq+lppivpLutoba1rJycs7C2r7CklpyunqKchY/RtcO3eYeOhZGTkICmeZShd4ygkoSlgYpxqoaFtG5yapqknJWKn32YmYaHj3Ovgqaco46mi5Odi5aQm25xsl2ldJN6nGyZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2NjpWOen55kINuanlpenNvgXVeZWVvbmZoYEpbWFg8SEhAVTRARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtbWlhVUlJRRjoyMjMvLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWScoyKrb6/vLq0npanpK21oaKZlKKnpq6qq5imo5+loaG2p6Oop7CjlKujjqStop2Qmpqqs7OknKScqJGUlq6fn56npJ2onbabo6uktqzEsKmrqKGMhI6coqCmo5aZmp2ZnJmnpqeZraivo6WbrKa9rJS8r6yeoa6xt6mwpJmnr6GmlnmokX18sHeKgKSliJxtsnChh618oY+DqJWYgKyJha2FoJWqoKKXhp+BmpWAe5J+q4Cdm5aLq3idoZKKlJKBeq9epIF9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWRppmDlo6ajnx8hJmAa25/Y390boB6YGhmcW9paGdDWWFbPktVM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFSU1NWWl1fYWBgYWFeXVtaWFNQT05JNzA0Mi4qLEFUVlZWVVRVVVVVVFRVVFRUVldXWFZVVVFIRklKIygovZOag6jFwrbAs56arKCtt6WjjpukoqCwr6qfpaCerZmeuaGjq6CvqZmuoZCrqKOWiZqQrrCspp6lm6yXl4+soaGdpaCapZ2umKKpp7eqwa+kqaOei4GOm5qfpp6SlJmblZuapqWmm6qsraSln6movqSWwqupoaCqsLepq6Sesq2mqJd1r36Qi5yFh366rYqZZbCNZZWtfaGPhKeVmoGsioSwhaaapKGikYWhXGxqgbNgf617e4OBsW1nb5mZjIixW361XKSEa8iiZJ+Ae7xYdrRZsn1SroB6rFiAoW6Yj6icjJiSmpp8epGgf2R1f2OGeHWBfWJqZ3FuZ2ZlUFVkXEFVYD5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFFSVFdaXmBgYGBiXl9cW1hVUE5KRkM1NTMuL0BVWVhXWFdYWFdXWFdWV1dWV1hXV1hZWlpbXFhXV0dCO9KfsrG3vbqzwbKinKympLWpoIqaoJ6cs7Opn6ShnraZoLSoqqyer62drJuVr6ehjoibjq+rqKahpZmukpiPqZminaSemaOjpZmho6qzqr2vpKeenY9+i5uWoaCYj5GanJKamKmgo5qprqimpqKlqLuen8Wmo6efqbOzqqyjnbqrqquUgKmSo6+Om4CHpJeZkIKAuMO6g46ck4Snl5yCrIqCr4innJumq5F/1r3CqmKjv719fqOCg9e6uLWFlZODnr2+hG2jgm+rhGycf3qysMeDaauwvax4d6K+vHOAlo6nnZGckpqge4OTnnxjfntlj2d6g3xhbGZra2NRYVtTalxAVWJDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzc7PkFDRkdJS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbOzsL+4sbyyopyupqWypp2LmKXAqriyqKLAp6iznZ+ynbqon62vpaeUlLCrl4yDm5GupaKsoKOcqqCXi6OSpp6mm5qhqaOZoKKsrqq6raijm5eTfYiZkaabko+RmJmPmJSpm6GZqqmhq6ego6q6nqjDop+toqmysqitp564paysmXN2qqW4hmSJoHBorpGLkW5ud6SQmZ+Bda6ZlHCPi3GVqKScmK+kc21tbGaLeG9ugplxgXpqcWlnipeWmHFpaYaIZ3GGZF2IYmpvWVxmfXamX2FxjpFuZWR/jZOPopmZmpOZoX2JkZh3Zoh4aY9se4B6ZW1kZ21jS2RYSmtaOlFmRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1dXWV1eXl1cXFxdXl1eXVtbVVdeqZSss6m5uLKzqqmhrp6js6qYkr+zxcq/t6qfwa2upKKorJ+6o6Suq62mjpeuqY+LhZWWrZ6lqaCdpKOgkYulkqeZqJmXo6uhl52mpqiwu6usmpuSknyElo2lmI2RkZmVjpiWqZagmaqjnLGmnaKruZ+vwKajsaSrrq+oq6mltaKstpWKoaimt52JlqOZiKqbkZWdkqmzmZqjqqCylqKhnZ+inKGlopWsp42Tk4yHk5ydlZGZk5mRj5WFgaWbmJaOi5SUjJCHhH5niX50gnVzh4pwp2x6k5CTkoCBjY+Qj52VopeamaWEiZeQdGqRd3KMeHh9emptZWRwZVVgWUBqXEhkYlBZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVV1leYGFjXV5UUUtFQz45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKaWqKqktLaurqGwo62foLaxkI6syL7GvLqro6afnaefsamjtqedqbSmqJGYrKKLh4mPnKeVq6OfmKeenpKUo5eomqeZlKaipZGbp5mitrqoqpiaj4x8gZSLoZSKlZGWkZCUmKaQoJuqoJ22o52mq7enrsCtorWlrq2uqqensbafrLqYkaWkpraikp6noI6qoI6Tn6OrsJqgo7CosJejoJyjqp6enpyWrJ6TmqKblJCWq5qOmZmXkZafkYihnpaVhpKNkY6Vi4F+ZYuFdYZ1eIeCc5xqhY+Sk5CJfYuVkpKYlKOUn5mkhYmbin1zl3R8jIBzfH9qb2VfcWpgW2BabmRRYWVRWjpHR0U+Mj0+OS8qJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1RVWmBgaWFlVlBLQUNCOjlFTVZbXl5bWlxbW1tcXV1eX11eX2BhYmNhYWFgYmJiZGJcW2OXlaOnoq+xq66jqaasn6e1qpCPnaW1vbCuraOkm3yfpLKkpbGpl5u5pqOTmaqcjoaKiZyjj62dopWon6CSlpmbrouolY+omqqNmamQn7m3pKWZnIyIeYKUjJuTipWSlJGNkpejjZ+fqZ6fuKN/g6+1oq6udKK7obGedneeqK+4k3Sro56JgKt/ZFxidqCPpZ+EmH1tkrOco6etqqNlnp+Sc3mamHCAmKmYbX+iqIplnKadkpiYlo2SnJCGnpuRl4SSh4+QkomFd2qOhnaGcHuFf39gaIeJk5GLWnWUkGdokI9zfKicnGZ7m4qFeZlqhoyEb3qAa3JlYHdwbGtpXGZlYmJxVFs+Tk5OU0c+QFVEOjEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNVVVldYGhmZ1hRSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6Cur6yrqaWoraKnraSSlqu2sbOnm6uorZh0jZ+xoKirp5SXuaCgj5yknZF/iYibnoyrmaKVp6GdjpaSnoV1rY+Ip5uqkpilipy7tKegmZiLiXV3k42Wk4qTkZGUjZCUoY+coaeZnLKVgIybtJyyjJKOuqWffaeheaCstX+NjaWeg4uGkLCqr42Ll6SbeoGLrIWcnaGnqKeHlYWYd6WbeoicgJengoF7nLN6ioahmJqVmJaCkZeXhJuZY3uHkIWPkJKLg21wjod5gHB/gIR+hXOFg5SReJZoknSgmnV9mYSjoImYf5WNhoWaa4+Oh2x5fHJxaGV5cGpsa1xlbGtmdV1eSVRMUkBFNi5aVVU3KSEwOT4+NzQzNTY4Ozo9Pj5AREk/SUVKTEdTWFtZXGJhaGZaUUg5RUw7PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop+mrK2rqKygp7CmpqmlmZSvyL+xopeoqrefkYWerZynoqCOkL6emoyfmqCQfIaPmJeHrJyilp+gkYyTiYWAkqeNh6OepJWZn4efurKnnZuSjoVxdpCJlZCKlJCPm4yQkqCSmKGklp6rh5+0ibSZrYrKh6msiLaFjK+BrquCqIymmI2dfaiPc3t3nI+nl2iVpHm0jJ+epqeSmMKBf6uImKFynoCapX2XhZWzgaF9oZShkJiXgY+UnIuZkot9hZOHjZaSiYNtc4+FfnlxhoCDe4N0hICWgI/FZn+ph4+ja56FpJ2EmoGOkImMmnGPlIZpeXZ8eGhpdnJoaGxeZHBtZ25ZZ0ddUk0zRTU3TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmlsXFFFPUtNQEpjWF1jZmhnYmJiYmRjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqKfr6eoqKWrn6S3sKmrppqUoKOkrKWYpqy5pLCBoqmdpp6diZS9mZONoZKej3mEl5aRh6uZm5uZoYSOjHeanI+fkIiepZyXmpmHo7mtpJqcjIx+Ym2Pi5OQjZCNjZiMkZOgj5WhoZmhp36hp4etnZ+WrY+dnJyQhH+gjKishaONqZmMmn+idYGZlGuCrXZNq3iHjZyRmqimgKmrfYOhe3qnap5/kmtnl4aYt4mefm5gZFmDl4CNfGRoi3KZfXmWbF19l21fUnCDXF9reIJfWGSBfIN/l3CnqmuDo25ypXCfhaBqZ6BtXHCOfmdaYISBY1hRcHdmbnVza2pwXmtxbmxqWWlPXVlGOUE1SERfbDUsSURSTU49ODQ4NTk7NkA7Oz5CUD5RUkxNQkpcXV9XXV5idWBNRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5WdoLigqaOmrJGhtbuqrqKZmKGipa2voZ6wtqSpk6KhoKecmo6ZtJmQi5+MlYt1gZSSjIqmlZWZnp5+koWFrKSHm5CKmaqZm5uSiKaxp6GVmoiJgGluiIeLjo6Ki42SjJGTo42Un5+coqR/k4GPoqCTn3aclY+ngZ+lfoWnqoKleIl8hJp+onBzlIiWfJ+NeW2Gm4yZj5uomY6HnXuConN2pmaefnekX5h6fZR0om6Yt7S6dJOIg4C1qGSBxrh7cJW2jHKAmqNjc6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGGdmbSXc32Yn7N1dFyesoNrY3B1d3JpcFlsbXNzZ11qXmJMRT1ENlFCWnMzPVNHYEpSPTwzOTU6OTZEOztASlA/VU1PUUBFX19bWlhgYHxkSEM4TVdVV2JhWmVma2tiYmVhZGRgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOVlKO3mKqbk5+NpLe0ra2gmqKdpKOmr52cs6+tlJmimqGlmZuVn6ubi4iSeIuFcYCWjYmQoY+SlJ2YfZCJjaihh5eOiZKklZybjYypqKWej5eHhH5qe4d+fZCNg4uRkYmQlKGDl56gnZ+ei4l3nJihjJ9xoYqHqYeapI6Vpah8rYx+eqCZeqOTeIF0loiNnH2Wn4abjpibpYWiZKF8iJaQm41tnmibjm+amXqAi6d9cml0q4Ofg3SqaJWaXZuFdoWeZ6prgLhmXKhwgZxglYxep3Z1h4h+nmiadYaTkpeOgJ9vmpFup5peqX95u2t+qlyOhF20aF1ucnp4bGpccWt5emRhZ1hiQlJGTzdXQ1JvNUxbW19OWkRBMjUxPDo3SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4mptJqniGOUm6u6sa+snqacnKmgn6+cnrKprp+YpZuhoJmXl6CjmYaJjWqIgHJ7l4iLlpaEkZWYkHqKhJWknIqUj4aMn5OenYmRqaOgmoySioCAaYGGeX+XjHuJjo6IkJebf5Sinp+hk5hyaJ+Jno6LcJKMgamGmJ2hpZ6le7Cto6K4l3ejs6OkgImUeZ17q5l+oo6cmpaIl3GhfIWNr7V9a5qRoXl+mLWipKuohJl8m32em390qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJqcXuObICIhJl1m3iGibGzf4Cbk6d3g55udH6VcJp0a6RelXZIZWRhdHJ/f29mYWxpd3xlZWJRX1ddVVdAWkZRaEVUV11iWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQjxVX2JaZWlWZ2htb2JmZ15hYVxdXmBoYl9lY3ZsXWVnZmtkZWxpaWtpk5yAsK2ZhFNeoKazubKyqZqijJysnJyqlaKtpaOpkKCfnpualpmhnZaIh4l3hoFveZWFkZuLfJGTlohygIiRoZtzkJCBiZqWoZuFj6qcm5WLi4p8g2yEhXGCoYx4ho2IiJOZlnyTpKCeooithn21hI2dnHullnqpgJSaj4memnunaHdtfpl0oXNyfJ6GmXCTg659pIOlnZmAo29eqWd1omNvpWGc05B9e5l4c3NiooaQfqN0pJB2a4+zjGCCmIlzqrKovH93g21+v6aptF2bbXxwlm1/cqJyXaRnc6ZgaKZtm9SafoabcHt7mGycfHiYc26ppGdhZXpygIVsaGZkb3Z4aGFjU1xmUVJiSFlKVWFXVFxma1xlUUZDS01KS0JLRThPQFFOWFNZT1NRYGZmalJjd3l3SUZFY11lWmhqVGloam9jamdgY19dXV1faGJhaWV8ZF5kZ2RrZGpsZmhsaJeaf6+qVFxLfqmvsbOvsqObmYWZqaCipY+mqaGaq4ubmZmUmZOSoZiOh4V7cH2EaH2Pg5WbgHeRjo+Jb3+FjpKSbJeTfImSlKWXg4+rm5SSi4aJeYN2iIBugp+Gd4CThoiZo5h7lKKjmZ+Js6Gitot6rKekrqVwqYCZjoWAmY96pIChmYaYcp6EpK6vipeMgI2kjZWDraCTdrW2tcmhc5SLgZ9gnpepbXmWh6CbdKKId6B+k5eLgXBNZqOScJuHc6V7eXRhg4FrfqBrcWRfnHF9c5ZoeWmztbTGpnOYfXqda5ybq3aFm253eZhqmnt2mHNRRX2zX2p3bHqIZ2toY3V2cW9XX1RZaVBTaElXTVlUVl5pbG9WaFdOS0FKTUtISk9BUUtQZWNqbWV0cnN/eXxudYl7e1RRT2xeaVxraVJqaGlsZ2xmY2VfXF1dXmliZGlre19dZGdjamZvbWVpbGWhm4iupYNkP5Ohsqqur7WiopCAl6qio6aNpqifnqeEm5iXjpeQj5yTjoiDemp5h2WDjX+YoHl1j4mMgWmEhZGCjIWdjXmNjJemlISZqpiNkYuBiXqAfYt4cJChhnqBlYeJlqCWf5SkppuVlYNmbnicbKJke3Gld5uYcGamgJSJeqR6n5aDl3Oed4GKlZePuW6RiqJifZiglYhucmmqa3WgbW+mYJtpi5BploeblnWigX6aYIyGjXVwiGJooGWefmmbdW9jZoiBbXGiWV5aYqFsXYiLbnp9c3JkpW14omRnp2iZc4yZcKJwVYmQb6BfZqhVi15UmG5udGtzg25xaWx5dGtwUllXV2ZaVG1JWlBdSVhpaXNqWWxXUVJGVlxMWFNhVWlrX3d0e31wfHxyg3uAc3aNgIR2XlJyYmdjcGdQamhoa2xuaGRnX11eXWBqYmppdnVdXGNoY2pqc2xma21jnKOXpXlkc22Lpq2jqbCxpp+LgJirnZ+njaOinKSjgZaZlI6akIuYkI6Ke4dxgIhpi4t8mJtzdYl+kHtkg4eUiYqVmYJ8iIeYqJKBo62RhpCLgol+gICOcmmQpoR9h5ONiJmgj4iTqaWciKZ4lZt+pIiWi7GYnZCCr5efpHWThXipc6WPhJpupKKMkoSNg7tufaWvg4eFhpOVnJ98pXpyqJWglmeefm+sZJaKlpN3qG2qooGJdomDd6uRpohrkbBrdrOMqWuKhW1tn56RlF99q4uqdn5+i6Wedp98g6SVnaBqm4h4rGifroy2dHe+jaSTWoOnjqthdnN1cnx1cWNrf29obVRXW1ZhYl1rTV1SXkpebW93YFtxWVxgW2d0ZW5vcmNydGB3en55cnmDc4R/gXt7jIGDgHZieGRjbnJkUmtnaG9scmpmaWFgXlxha2JtbHpvXFxiaWJsandtZ2xuYpWkqZyBf52jlqmpnaimrqSZioKYrJqfpoqcpp6rnoWNm5CHnJGFko2MjXSHe4iEb42FfpiTdHSGc5KCbX+LkYeGk459e4KHmaePgKenj4GOiYWUdoKHkm5si6mBg4yUjomdn4mMlKmin45/dJOXiH6BeZSuon+BmnGPhneOiYJ9e3KnjHJ+fXqYlpuEkHl7f36HlJWTinaQmJ6gg3t9iWuMhVt5eXJ6cWlufpKJcYB1gY+Uk3GHhIJljH9fgICLd3VzlHVveW5th2yDhl51Z3eOZX+AhIyomn10e5VqiYhwgXZ9h3dubmiNdHp8mHiFXGxYeY9pb3hzcnB4eHBdbIdvamhXW2BXXWZrZFZjVV9SYHB5eW1rd2Zra2t3fXJydXRhb3ZidHuCeHV6gnWAgICBeYuFg317bn9sZHluXlduZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhrb2GNk7eopomgopqmo5ilnKuioYSEmK2SnqKKm6ibqpiDgpyMf5aUh46KiY1yg3yPfX6PhHuYj3RyhHGVhXt9kouGho+EeX6AiJulj3yoooyGkJCFlYKGjph2coSpho6SnZCJn56IjJumnp+qg4iNlZp+fomWraePkqWPd2+bjoF4kG5+qIVxfpVxa3B9gqCNgJOOi2hsXIKLi5uano5zlYuIcXRrgnd0gVlyboeRgX5/jGpdamV7hoSJgGBpeHqbe4KLgnWBhYFnd4qGamBvcYB1XnGJgIiOppSFZYuNg253i4Rxho96cWhpZnyEe5ZbXWtobnZcfHp4dm90c4NoXW6LbGxjWlpfW1lscVxfYVpfXmZ0f3x2cHVka2trfH1zfHl1ZW51aG18fnd6fHt5eoCAfm+FiYR7fXR+eXN/aFRccWlsdnB1Z2toZF1hWGtoa2txcm5XW2VubGdzeW9oamxgi4qpsKGPoqGanp2Xnpioo6J+g5mujqCViZ2jkaaVgHyYhn2SmYmJhoeKc36BjHaFi4KEl4pyb4BymIaDfpKDhIaJgHqBhI2coZGDqKKIeY6XiJSKi5yXhIN6rYKRmJqVip6dh4ihqZ6hoaOKh5ObnKOZlaqhp6afkpqGlIt6do2Ng6d+f5OQkpSdsqablZ+QjbGSl4OljIyVmp+JkJuCiJGKa3yOd3hlg4aRi3yJnoSHjJCJiYGFhJB3fHp0mqCJhoqdiYSTfn2KgH90bnKEgX12hYWJjqWQgoWMhoKMkIx9iIyKkYR6boSFfnqZa3NpYXSLcX57eHdweHWCXV5viGlvYF9aXV1TaHJWZF1dYm1odnx9dG9wZWtqaX99bnmAcmpwcWxngXtygoB4f31/hHptgoyGfHp4e316g3hOY3Zqc25wemVrZWNiYFt0ZnBncnFtVV1sdG1oeXpxZ2lrZYyHnLmelqGgmJSYmZSYpKGffH+arI+fjoagnYyeln15lYR8jpmKhoOEh255gYFzgYh+iZSEbWt+epeHg4OPfoCHhIV8h4WPnJ+TiKyghHOKkIaSkYudkX2Ne6qEjpOYlo+cl4eHm6SeoZmchYKSmpmYj5mmn6Scm4+Vf46HdHqGjYSle3yOkJGGmauinpSdkI6pjZCAnYyIk5mego+XfoeOg294hnJ1YH+EkIZ0jJmBg4+Dh4V/hYSVbnl2dJKiioyFmoSEjHN/iXx7cXF6hoJ6d4iNg5Gmj4WDjoCDiomKd4aJi41+cm2Agn1vaWxuaF56gGl+fXd2d3Z7eF1gcX5udWBjW11fUmduVWZbXmJraXZ6f3JsbWRramiBf2x0gmxsdXB6cIZ5boeAdoKAfoV2cYKNiH57fHx/e4KKYGh7anVpaYJkamNgaVxjdWhvYnVtbFVjcXllcHp7c2VqbW2LiZ62maCjn5KRlZiLmp+fn3t4n6eRnIuHpZWMmZl6e42GfYmRhIyCgoNufIB5c4GFfouSfWtofYKXiYGIjXt9hoSGfI+CkJ2dk4mpnYFxi4uMkoagoYqFjHyokYmQkpeTlpN4jKKen52VmH6AkJqYkouZoqCjmJWQmXyLgnd/go6GoH9+jIyPfJiloqKTmpGQpoyPgZqQiZKWm36Tkn6HjoF1dIJxd2F+gY6GcYuXfYmMcox/goWGj2h4cniMmJGPf5Z+iIlygYZ7e293eoqDeXiPi4KVpJOKhY97hoaHhHaDhImJfWhzfoF6fHJtbGhffnRpfXZ2dH1zgWtfYHR2cHdkY1lfX1JraVZmWmBhaWp2eYJyZ2xkbGhmgIFrbn5ob3Fsf3mHemyMgXOBgX6BdHaCjYZ/fHt/gX1/j2lyg250aWGHaGxiX3FWdG9sbWB4aG1XanR2Y3V6e3Jiam96iYyesZGlpJyOj5ePhpygm558d6WhjpiAjaOLiZqWeXyGiH+DiX+JgoF/cn97dHaDhX6LkXhnY32Gl4qCiot4fICNg3mWgpaZmI6XoZt/cIyCkZOGpZuHjImDppaFk4uWl5OSdpGdn6CXk5Z5fo6Xl42WmpyjnJeRk5l3jYOBdoOWjZ1+gYmNjHOXo5+ilJmPj6KMioKWl4OSlZl+mI18iI2BdnF+bntkgHyLhXCHk4CRgmyIg4GAiYVmdW97hZGYi3yTeIuIe3+Ge3pwfXeIhXiDj4eKl6GVgYOLdoiEg4J3fIOKhnhhenp/dYB5aG1mYn9qa3h0dHd+cn1jZGFzbnVybWFaYV5bbWVTZFlhYWlrdXmGcmNrY21maH2CbGl1aG5waoB9g3ltkIZygIODfnR8g4yBf356goN+fJBtdolzdW1limxqYmJ1VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPm62XpqeejYyXh4afk5eZfniqnYuZepedjIyZkHl8gYx+fIR8gYOBeHR5enR9gISAiYuAZF99i5SHf4SGdHx+i399mIaXlZiNpKKYgHOHe5ORiaaPjI6Kk6CShJKQlJeRi4GPl56akY+Qcn+NkZOInJyepZeWi5OVcYuLiWuEl4+ZeoeIj4lvl56bpJSWi4yei4aBkZx/kpKVhpmIe4qKgXlyemx1bHx/i35thZODlXdwg4R+fouAZXJpe3+Wl4N+jXSQh4J4hn10dn58hIB7gYuCi5Ojj3iDgXSJh32AdHaCiYVxYnx2e3J+cGNwZGV8Y29wd3N5eHR1YnZgcGx2bm9cXGBeXmteUV5ZY2FpbnR7imxgamVrY2h3h25nbWlrbWmCfXt3b5CIc4CEhH10gYaJe4N9eoGEfX2OcnqLeHhtbIdqaF9pcmOHZ3FvZXdnbmxheWlrfXt4cGF4bYuAmJipn6SonYqKkoaKnYuVmX54r5mNl32flJGXlIh3fnyKfXyAd3iAgHB1dHxvhn2BgYp/fGFcfo+RhoCDgnJ6gId6j5KJk5Kdk6adlYJ9gX2OipGjiY6KjZiajYaSmZSWjoqIjJGbko6MjG2EkI+RiJ6ZoqCWlIiVj2yGl4JlhJiOk3qJhJCKcJablaOUk4mLmYyBf5CefZKOkoyZjnuKhYdzc3ZscW51fIp0b4eRj5NxdYF8gYGIfGVwbHl8mZN8g4h0kImAc4d4bn98gIV7hIqGgYuUp4x6hnt+i4V4fnFwgYeFZml6dXZxfGNfcWFrdF9xa3t6eWxzcWV5Xm9sc21yWFtfYGJsW1BYWWVjaHJyf4hnXWppZ2JncY1vZGpoZWlpgXp3dW+OhXSBgoN7dYKIhXiFfHiEhXp/iXd/i3t7cniDamtfcGh0gGtyb21yZ29sZXxjboB6dnFsd3eKfqKXoaegppuHi4uBj5yHk512gquVk46HoY2WlJCAdHx3hXh5f3Jze4Zrc3B6bot2gIGHb3BbWX6RjYeAf391dIGAgKCHkouUnpiilZh5in+BjYicnYqPhpKYloWJlZqQl4yMjY2Lm4mNj4JtiYuQkImclqGbl5SEloZogqGBZYSciZB+i4OLgXeTmZOgk5KJiZSNfn2Ol3uRjI+OmpJ8ioCCb3ZwbG1vcHuGaXSEj5mLcXeBdYKIg3lmcm51gJmOe4eEeZOQeXWHc2+IeoSKeYqEgIaNm6KHe4N1got/eHlubIGFg190dXRycnlbX3FhcGtfcGt+fHFubmttdmFwb2txbVlZYmFib1hRVFtmZ2N1cIWDY11rbWRiZmuSbmBnZ19oa4F1cnNwi4B1f4OAeXaAi4B4hX94iIZ3g4V8hot/e3aKf2pxY3xjhnxucW10amhvbHZ4X3F/eXx0dXSAg36klZqtnqeWhY2Ef5eUg5CgdoyglJOGi5uNlo6LenJ5dYJwcoV0cXaIbHBudm2IdoN+gG1tVVGBqpSGgnd/dnGDeoOhg5OClZSZnZObeJF7g4ySo5mTjomVmZKEh5eZjJSLiY6PhpyDj4l7couFio6HnJqfmpSTfpJ8ZoOahWaFn4eRhJGCiXGDkZiQnI+QjYyPjHd7kZB6jouMkpaMfIh8gGt3am5rbGx7f2F6fo+Xgnd7gniDjH15Z3Nsc4aVi32HhXqTj3F5g291i3mIinmIe4CKjp2chHt6doKLfHdxamyChHtheXFvbnN0Vl9wYnJiYG1venFpcGZnc3Vpcmxid2VdV2ZhYXNUUU9dZ2VeeXCJfWBdaXJiYmZmkWpfaGVbZ3B+cGxxdIp9dnyGgHV2fox5e4WBeIiDc4aFfoyMhHx5lXhmcmqDYIh+b29remBqbnR/dV90fXmHeHRzhX14oI+ZsZyljoKLf4OaiICMn4CLmpSPhYiYjo+PhHd0d3SAcW+FdHByhHBraXdug259fW10clJNgt/IktaTe3B1hHaFoYSUeJeSmZ2RmXuUc4WQnqGTlJGKk5yUhn+XloiNjYeRjIebfo2Ad3qMfomMipybnJqTkXiMdGWGj4Vrh6KEkYiWg4ZjjJGZj5aLl4yMiopxepSIe46IipORiXmFfH9tfGVzb2tsenpbgXmQkIF6fn+Aho57e2lzanOKj4mBhYR8lIprfX5tf4p9ioV8hHiAjZOZmIl8dXeDj3hybWdxgIVubHVwaWt2b1NfcGVwWmBtc3lobGtjZ3hycHFkYHhhYFZsX193UU5MYmdjXXpyinZeXWV2YWJlZY5kYWdiWWlzc25rcXaMfHR6hoJ1dn2Lc3+Gf3uJf3KJiIGRi4h8fph2ZXNufGWIfm9wbIBZbG55eXNgdnp7jXZyd4p3eZ6Lm66aoJCChXeIlX58ip6IhqCSj4WMmISTj4eBdHhweXFvhHBtb39zZWV5cX1teX1qZ2tjpJrB3K7woXNsdoV3hqSGk2+YkpailpyBknKGi6KXiI6Wi5CdloOBlpCFiY+AkImIlX2GenR/iXeHhI6cmpiYjY51iXVshIeJfImig5GJnISFXouTmIuQiY+Li4SJbXuWgX2IhYmRj4Z2hX1+a31keHZqbnlzWIl7koiFen6BgYaMf3lmcml/iY2JgoF+i5WEa4F1bYaPgY6CfYF4fo6UkZePdHJ3h4x1c3FndnqEY3VucWNreGhSYXJobFZgb3V6YXJkYGl9cHNvW2RyYWJXbltdeU9NTGVnYl53dIpuXV1keV5fZWWFYGNjX1lqc2tua3N3jH10d4SBeHd7iXGDhH1+iHt0i4mIloaMf36Xc2d1cnlsjHtudHGBV3F6dnlyZHd5hoxpdoCJcn+chpinm6OShH1xjJR3eYyehYWhjY98lo2AmoiEe3N3cHRqcIJsam18dV9heHd7cXV7Z2BkfOvatcnD3IdzbHSCd4ucio9rmpGQnpaUgYlxhYifjYSLlouMmJR8jZOIg4mQe4+LhY6Af3V4g4RyiIKTnJaUl4SLdYZ9boKAh4aYoYKTjJ6DiWGDlI+HioaKjoeBh2l8k399g4SJjo2CcYZ+f3F3aHZzanR3bFqNfZODhX2AhIGEioJ2YXJrh4GOiYF+fpGQfW2Ba3eFjoSQgXuAe32PkY6UiG1weYyFdGtxbHN5gmF1anBebXhhUmVzaWZTYHF3dWFwYF1og3F0a1hoaWNpWW5XXHZNS0xmZ15ic3SGa1xcZXleXmRne2FkX11Za29mb2p0eIp+c3OBfnt2eoh0hYN8f4d2d4qGj5mBjIJ7k3Vsd3Z5eJN0bnh7fVh5hnF/b2d4d5KCZHaGhXCKloWZoZqiioh0b5KMcXePnH6LmomJfaB/hJqAgXhydG5vZHJ/aWZteHhcYHl7e3FxgGphZ2F/1baOkaZ4b3F4fXGUko6Ia5uQip2TjIZ7aYeLmYaBkpGGh5iOfI2NgYGJjXuPjH2IhHpzeoN6cIaAlpqOk5OAh3SChHSBfYiQm56GlY+ffohigJOHhYmFi42AgINnfJCAfn+CjI+Qfm2DfIJ0bG13dXR3dmxjjoGPgIV+fYZ/hIl/cF9xb4R7jouBe36QiHlwg2V5gYiFioB6hHx+ko2PkYJtbnmLfnVtbmtse39kaWxrWm94WlNqc2liUWNzeG1jZl5aa4RudGJcaF9lbWBvVVxwT0hPZ2ZcaG9xgG5bXGNzYFxjbHdlZV1dWmxtY21qc3eGf3JxgHx9dHiGeIWCfYCIdXmJgZOVfImGdoiBcHh5e4STb257gXdeg4B0gW1penSUc2dziHxxkpGDmZ+boIaIdnaUf213lJh/iJCEi46afYyad352cnBsamF1fWdianV6W2B4fHpscH9lY2dnV52PX3Fzlr3FhXdylYuRgHSZjYedlI2Ic2uIj5WAe5SLgYSbjHyKhn18iYx+k4d0h4V2dn2BcXWGgZ6VhpSOgYFxfoZzgnmHlZuWhpONnYCIZn6Tg4GGhIqJcoF9Z32Le3l/f4eLj31pgHyDdmZweXhzd3Rsa4+Gi4KLf3mDgYSEgGtecHZ6fYuHhHuAjn9+coBoeIGFiYSBd4J7f5WKjot8bWt6iXx2dG9paH53ZV1yZFlxdVRUb3NpYk5odXlnYV5dWW+BcHRaZWNea25hcVBabFJEVGhiWmxvbXtwWltebWNaY293ZGdcXWBramNsaXN3gYNyb357f3R1g3qDgnyChnZ+iYGWkXiDinSBiHN5eX6NkG9ve4FxaoJ5en5ubXx2lWtqeIR0a5OMhZ6YoJmFiG9+jHZqeZmPgIKKgpaYinmPlm96c3FsamRgdHtpYGZye1thcn16ZnB6YWVkjrGyd0tiWqXa0phzfJKNkXp/l4yFmpKNhm9shZKReXmThoCEmYp8h4B5eImKg5V/bomGcXN9e2p5hoOlkYSSjIJ+bn2BdIF2g5mXkoqTj5SFiHB7k4R+hIOJg2+BeGiAhXhyf3+Diod8ZXx+g3VjcXOAaXlxb3WZjYaEi3x3eYCEeoJrXG98cn+Hg4h9hYd6iHGAbXCChYyCgnGDd3+WioyDd21sfoR/dnplaGp+cmFaeFtac29PWHJ0Z2BLbnd2Yl5cW1l1fnNwWGdeZmtyX29PWGlTP1lnX1txa2d5clxbWWxlWmNweV9oXV5lbGhmbGlyeH+HcG6AfYF2cIJ7gIF/g392gYWJl4pxgo1xe4Z8enmElIx1a3p/bHB+dX99b3J8e5Nwb4F/eWaSioKhmJ2Rg4Znh4RwZ3qXin+AhYKaioF8jY1peHJsbGZfYW95bWBjb3lcZGyDemFxdl9kZdXrvoszOj6Lj4ByeYaKkI54hpmOf5SOjX9ubYWMi3V9j3+FgpWJfIN4bnaHhIKVdm2HhGt1e3VleYOEp4yDjouCfGx+cnSBeIOaj4qPkZKNjId/e5KIeYCFjoNsgHJpgH94bXx8gYqDeGJ5hIJyZHFpf251cnWCnIyBgIZ/dHZ+gHOBcFtrfHN4iIGKe4Z/fIh3eXBrh4OPgohwgHd9k4mKfXNtanaAgHV1XWlpeXFaV35UW3JmTVtzcmZcSnJ5cV1bW1pedoB2aVpiW2hmb2NqTlhnUj5eZl1edmZfdXFbWVVvZFplcXlbaF5gZ21oamtpcHh+jm1qgoSAeW6Be32Bf4J6dYKBjJOFcICLbnd9gHt7iJOJgGl7fWt0fHKGe3N2fX6MeniEfnxrjIyEm52WjIKBbY1+bGl/j458fn+DlIJ/fYqIa3VxZ2ljW2Nnc29gYWx0YWhwiXphc3ReYmOboJBuXTZbsLZ1aoCJfpSHeIiZh3WQjIp3cG2FgoZ0eYl4iX2TiHp/c2d2iH18lm5vhX1odnluZXqJhaWHgIaMiX1tfXR9f3uKl4aAk5CYiYuFinyQinF8foZ8aX5ta4B7eWp6d4KHgXJgd4J+cmRyZ3aDbnV7hpWSgn2CgHB3enx1f21XbX11c4mAhXaGdIKJendybYiAjn+DcX17fJCHh3lubWhtgoF1bl1oZ3VyUlx9T11yXU9cc3BkVkt0eWtYWVlaYnKBdmFeXWFnZGlqZk9aaU5BYmRcYHdhXXVuWFhTdWJbZW9zWGpfYmhrZ21saXB3fJNsaISKfXxwf357gX+CeneAgImLhHJ7h29xd4R/e4mNj4RqfntueHl2ind9eH+Bh3+Efn56bYSMiJijjYWEfHaLemtthYmTen17gpKAgH6KhHBycGNmXllnX3BwYGFocGZqb4l0YXRvW2BkanZ7f7+dqKXJuHKFhHSVfnqJlYR0ko6HcnNwhHqCc3WGdIh3lIl5eXFkd4Z5f5JocYN1Znd2ZGp8hIiegn9+jo18cX1ygnd+kI6CdpWNlJCIgoh7iYpseXqAdWh7aWx/eXNpenaAg31oYHeIfWtqdGh7gGp2gY2RlX98fn5xfHd8dH9iVXV7cXKHgoF7gXCGiXd4b2+Cgot9fHd8enOMhIB1aHBnbIiBcnBdaGN0b0xmd01fb1ZUWnRuYlFPdXliUlhYXWJxg3RcYl1pZWVja2RSXHFJRGViXGRxXl14aFZXVnheXGZuaVZsXmFqZ2Vvbmhwd3qTbmmIjHl9c3t+eYKBgnx2fYOIhoNwdoNzbneCgn6Ii5R/cYB8eHp6gYt1g3h+gIGChHqAdW99ioubnoh+hnt3hnxodYeNknp/gHyJhoR2j4BncG5gZVxYZlltc2FhYXFsbGiJbmBzaVheY22Ad6naqciHiLNyinlxj3Z9iZGBe5SLgHV0dX52f29wf22FdJSGeHVsYHmAeIeNZXGCbmd1blttfYGQk4CAeJKRfHd6bIVzfo+Kg3KVipGPiIaGe3+GbXV3f21od2VtfHZta3d3f398YGJ4hnpodXZjfntodYaPjpZ9dYB2coB7fW2AWlVxfG9zgYV9f3driIZzeGp0f4OCfHl7d3pxiX97cmdzZG2LhGxzW2pgdmZJb29NXGNYV1Z5bWJQU3V3WVFWWF5hcoVwXWFjbWVjXm9jVV5zR0NnYF5naV1ae2NSVl12W1tnbGJWa2BgbmZmbHBocHZ4j3Rrjo12f3Z4fXeBg4F7dH2DiIiDb3F/dXF1fYWBiY2Le3d/eIR8fYWHeIh8fYF9hIB7fnJ2eIuOn4yJe4p3dYN6Xn6Hmo16h4R0hoeFd4l7Ym5tXGJbW2FVanRkYFtob3Bnh3FhcWZXXGNrf3zKzoe6omtub4tucoVzfoaMf3uThXp5dHp1dHpqbHZjhHaSgnZvZ198gHiKh2RxgGpqcWNYbXuGnImDgXKXk3Z9em2Gb3+IioZwlo6QiIaMhHt5f3JycH5naHJjbnhxamxyeH18eV1leoB4aXV5Z4J3aHWHjI6VfXOHam9+gHhufV1Xb3xsc36IeoBubop/cHZmdn+AfoB1em95coV6eHFlcmBtjIFrclhrX3ldSXBsT1hWX1VWfGtiT1R2c1JSVFdeY3WGal1ha2tmY1pvYlljcUhBaV1hZ19cVXteT1ZmcVpbamhdWGhhX3JmamhxZ3Fzdod5bpWKdX97eH55g4eAdXN/hYWOg3Bwe3h3dXmGhYeMhnp8f3WLf32Gg4SHf35+fYZ/fHh2eXaSlJ9+jX2LbnWAemSEiJiGdJKKb4WGgnqDdWNuallfW11dVWhzZWBZZHJyZ4FyYWtkV1pfaX94vq57oLduYnSHaXV9c3uFiHt+jYB3eHN3b3p2ZWpvYYd1joFzamJefXd4ioJlcH1na2tbVm94i6SBhX9wmZJxf3ZzgGx+gI+GcpSIjYiFiYV9eXVzcGl6YWptYW12amdra3l3endbZ318eWZyfm6FdGZ1ho2GloBwi2dre4J0bXViW216anN6iXqAZXSGfG1wZ3R+d31+cHpqeXl/eHZvZGxhbIl9bG5WamF4VkxsbVBTUGlOWX1oYk9VdmxNUVRVX2h3hGdeYXFpZ2FXaV1dbGpKRWxbYmVXWVR5Wk5Xb2tZXWxlXFplY150ZmxlcWdzcHSBeHCZhXZ/f3h/fIWHfXVzgod/lYNuc3l7e3NyhYaIiYR5gX12j399hYmOhIGDen6Lg3t3fHd2mp2YeoqDh2p2fn1thYWVgXOPgnGGgn+CgHBmbGdXXVtcW1NlcGVfWGNydWl2cGRlYldbW2h/cG9ygHOKZWZ6f2p2d3V1hYZ4goV6d3R2bmt6cGFoa2eGdI2EbmdeX3xueYh8Z2x3ZmpkVldzcI6nfYR7dpaQdHtxenhseXqPg3WXfIiGhIeEfXVxc21odV1taWBtdWRnZ2l6b3tzWWeBdnVocIF4gnZid4WLfZWCb4xrbXuBcWVzZWBqd2ZwdYh5fGF1g3Zqa3F0enB5d3J7ZX19fXZ1bWNlYGyGfG1rVmpjclRMa2xQTU9wR158ZmFOVnVlS05UWGFseH9mXmdzamVgV2RYY3JeTExsWGRiVVRVc1dNWXdlWl9sYVxbZGVfd2dtYm9qdG9xfnV0mYF4f4B4gH6GhHp9doKDfpiFbnJ0fHt1cYWFj4KBeot1dJGAfIGVjoGFhHx+jIZ6foF2e6OminmJhoVsdXx8dYSDjXtvhnR6hX2Cg3VuamllVl1bW1pTY25lXFlidHtqaG1oYGFXXVppgGlrcIBobWJpe3prdXV1cIeCeoF+d3Zue2hqeWpfZW5ogXeQhGdlWGF2aX2GeW5pb2ZmXVVYb2iPqHeBe3yQjnh0bn1tcXR4jX53lHSGg4CGiXZqdHdoaW9cbWVebnNfZ2JqeGh7bVttg3N0am+Bfnp3YXeFhXqRhnOIcnB6f3JjcWhbbXVkbnGGendhc4BwaGp4dHFrd3ZzdWKCeX11dG9jYmJsfXxra1VpYmdUTG5pUEhSbEVheWZiTlRyXkpNVVpmbXh7Zl9tcWpkXVZgVnBvV0pUaVhnXlhOVmxUS116YFxfbF1dW2JlYHpobGFucHZub3d1eph9d4CBeYCAh4Z6eXqDfYGThHF0dH96dnSFiJB+gX2RbHOVgXuCn4V/h32AfoaCgIp7dYSsn396iIiEbHKCenaBgIJ1b4hvfYB0ioBqb25lZFhfWlpaVWJqZ1xaX3WCaV5tbFxhVlpba4FlcnR9ampebXh3aHV4c2+HfH5+enZzbHpoaXdnXWRzZ3p3koBjY1Rkb2aBhHV2ZmhpYVdWWWhkkKhvf3d/io56cG57ZndteYp6do5xhH5/gIduZHd0ZWhpXWxiXnBvW2hfbXVlemhddIBucmtxe392dWJ1hox8iYiAf3hydX50YXBsWHBxYW5vgnpzY3GAbGFte3BqZ3l3c3BkhHR4eHRvY2BjbXN9amxUaV5fVUx1ZFFIV2JHY3dmYkxUcVlLTFhZaWx3e2VlbnJmY1pYXll3ZlRJXWRYaVlZSVdlUUljeVteX21bXl1iZF5/aWpgbnR4bW9udoOXeXKBgH1/iYyGfnV2hniGjH10dXWCeXp6gouNfX+FiWp0loF7ip19foV5gHt+fIaJc3GProx8fIeQfmZxiHp0fn13c3CGbXx+bZB6Y3BwYmVdZVZaWVdjZmtgXV10hmhZcG1bXldZW2x7YnF3dm1jXG50dWh2d3Jvhnl/gXp3b290ZWh0ZVtndWZ2dpF5X11TZWVqgYFzfGFiaVxUWF5jZJClaXl0goWQd2xteGZ3bHuDeXSHcoF5fXmAaWZ3bWFnYV9rYF51a1lmXW9vYnplW3d8a25vcHh5dHVlc4OTgImDiXp2b3J9cmF4Y1lubmBvcH96c2VxgGRfbnZqY2Z4enJsbYFzcXtxcGFdZG1vfWVpVGhZWlVOemBSS1pZSGN1ZGFKVW5VSkxaV2ptc3tkbGx0Y2FZWlxid1xUS2ReWWpUV0hZYU5Ia3dZX2FuW1tfYmNdhWloYm54eW1vanaBkHlug36AgpKIhIF2dYl0i4Z0cXZ2gXd9fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OHhHNwmaJ7e3+JlnlldYh6c3l3bHRwf2x5fHCSc15wb2FnYmxUW1pXaWRtZlxccollU3JtW1lYV2BsdmNqdWpqX1tudHJtdXR1a4d9f4F8d29ubGRpcGNba3JkdHaOc1xXVGRgcX5+cIBcYWNeU1phXGSTn2VycYWDkHNraXhrbm55eXpxgHZ/c3t6e2RmdmheY1thaFxfd2hXYl9waGF3YVt8dmpqcm54dHR0aXGCloSHf4V2c2pwfG1md1dbaWxhb3F/eHNlb35bYXFxYl9pb3xranJ9cG92anBgWmRrbXthZ1RnVVhTUXhdU1BZUkhkdGJhR1ZsUUlQWlZsbGx8ZW1vcmFbWlhabXFYU1BnWFdqVFVGWl1PSXN2WWBjbmNYYWFhXoxqY2Vtenlsb2l2eYZ7a4R9gIWZfIKEeX2IbY+GcW92en10goJ9i4+Dg5d0eIKUhYGfiXWBgIF0f4Jwh4N2b6KXdHuGjId7ZneLb258cGd4cXtsc3ZzjWtedG9iZ2ZrU15cVmhibGxbXHGMZE5vbVxWV1VmaXNoY3RlZV5acHZvcXZ2emyIfX99iHeQc2Nka29hXG5tY3N4h2taVFZiY3d7fG+EXGNeY1RbYFpjl5VjbnCChYlyaWZ4bWRydXF6a3l0dW97f3ZfZ3NkXF9XYmRZYnVlVWBhbWRhcV1dfm9oaXNxdHF1dmxthZSDinyFcXJnbnxvcW9SWmVpZHByf3RzYm11VWNya1xebmR7ZGt1fHBxcWltX1hjaWp4XmZVZFVXUVZvWFJXVFBIZXNgYkZYa09JWVVXbmllfGlseWtiV1xWXHVlVFNXaVJaZ1VUSVtaUE55d1tfZW1qWmJhXl6PbmJnbHp2bm9pdnZ/fm2EgH6Gl3t/h4GKf2uTiHJndIB7doCDfomOf4yTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOCjYx3eG56jWBlfXFnenR5bW1xd4NnZHxtY2dnaFNgX1VnYGxvXF5ujmhOamxgVVZTb2dza2Z4ZWZeWnJ2bnN8eXRuiXuAd5x7emthZWxtXmBuamVxeX5nWlZYX2x4enpugl5hXWhWWGBYZJyIYmtwgYZ8dmtpdWtbdXBqeWl1cm5vfIFzWWtuYFleVmNkWWVxY1RfYmlhYmxaYH5rZmx0dW9teHZsaIaNgIp7iG1xZnB7bHFsYVhfZ2Zucn9ycl5pbFNmcWVWYm1heGFvdHp0aW5ral9XYGZodVxkVmJWVE9ZZ1NPXU9QSGVwXWNHWmpOSmBMWW1lYHhpb4BlYFVeVF52XFVTYWdPXmNVVEtdWlFadnZdX2ZtaFhjYVtejnFjaGp4cnNtZ3ZzeYNzgoN7iI5+fIqIjnpukIp0bHOCdH9/iIWHkoSVj3p9jI+IkZuEgHyNhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo2NjY2NjY2NjY2NjY2Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjY2NjY2NjY2NjY2NjY2Oj46Ojo6OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERDR2RoZ2dnZ2WQoqCgoKClXiouLi4uK0iFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTQ5XGBfX19fXZGmpKSkpKpWFRwcHBwYO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fn1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHhomTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaIiYiJiYmJjY+Pj4+Pj4iCg4OCg4KFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5GLj4qKkImPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjY2NjY6Ojo6NjIyMjIyMjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQi4WHhouKhYiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCIhYWFiIeFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkIiFiI2JhIaJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp+fHZ2eHx8e3x9fX19fX5+fn5+f35/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4SJiIeIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6fHp6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pio6Ki46Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fH1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fn9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f3+Af4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/gICAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f3+AgH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fn5+f39+fn1+fn5+fn9/f35/f4B/f39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOSk5OTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGSkZGSkpOIhZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCSgoKSkJGRjnWGkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9+f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CIcIWQj5B8dYiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj4+QkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4xzb4qPinJ4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fXx+fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjXdte4+Cc3iGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHc25vhHt1doCFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxZWFhXVFBRUlNSU01NSklGRUhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39+fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3RiXmRfYWtxZmhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f35+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYl1qbF1mZmdlY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hJSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpaandtYm5zamFZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtrcmxhbnVyZlFRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OXWNva1lpc3VwU01PUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZCRkhVYmhsb3BvbWxaTExOTU5PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHR0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICCb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVDRkdITVpnaGdybm5oZmRgXl5YTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7PklaXVtcZWxua29tbWxraWhrZFNHRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHp9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+AgICAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7Oz1LXGltbm9qb21ramxtZlFHRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYGCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozo9SGNvc21ubGtsaVVDPkNGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN0cnF0eHh5fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5PUpgc3NwaFQ/Ojs9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT48OkJsfWpAOjs+PT4/QEFAPz9BQEBAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO1tuQD5ERT9AQURfZDs9PTs6PT5BQUA+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKR1ZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo6bXdJODs6PT5BO0hkPTw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUj08PUlMRkV1dk43ODg6Oz4/V2pBOzw8Ojo7Pj8/PT05Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N6Sjtcf4N/enx3Vzw9Pz09PkVodEw6PT4/PTxBU0Q/PDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcG9xdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFHcnprYoOEg4KDgH1ePkBDQEA9SnN7WTo9QUVBQFlhR0M9PUBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dHd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEVvdH2CgoGDfn2Edk1BQ0VAPz5Ze4BdP0NFSUpJamZRTUVDR0ZHRUdFRUVERUNBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTE5pZ1tbVkxITk1ISUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhGSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSExNVmVkYmBlYE5fSUdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiIRWbIWHhoaGh4iIh3xQTE1jamloY2ZoZ19AQENDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREZHSUpJSkhISEdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pUgYOEhIKChYaGhIKGhYSEhoaGh4eGinVJTW11bWppaWlrSTo8Pjs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUtHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgICAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpJSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMj2ZRdXh0bW1ub2xENzg5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJR09SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouNim12fIRxb3BvbksyNjg3MzU2ODo4NzY1NjU2NzY3Njc6Njc4ODk6NzU3ODk3OTc3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDY3ODg9Oj1FQ0JlhYOBgIKDg4ODg4aJi4qJiYqKioqLiouLiHJzfHJxbm9uRDM2ODg1NTc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc2Njk6OTg4Njg2ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDg4SEhIWGiYqKiIeHiIiKioyLiouNhWxobG95fWY+Ozs7PDk6Ozk6Ozo6OTs6OT09PT47Ozw8Oj47OTs7PDs8Ozk6PDg6Ojo6OTk5PD88PEFCRElKTUtJS0xXb3JzdXN1eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuKjI2Pf2Zsb3l+XkVDQkFCPkBDQUA+PT4+QD8/P0A/QD09P0I+QEE/QD89QEBAPj9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUJBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4uMjY2NeXByb3ZdS0xISEhFRkhHRUNBQENFRENBQkNCP0BESEVDRUNFREFGRUZERUZEQEI+PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhYaGh4mJiIeGhoaHiYmKi4yNjIyMjIyNfHNycFhMUkxLS0lKSkpJRkRER0hHRERFRkRCSElLR0hHRkhHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQD07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjY2NjI2KeXd1b2NRTkxOS0pLSEtHREdJSUlFRklGRkVMTE1JSkdHSElKTk1PTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/f359fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7Oz06PkA+P0BDRklJUF+Bg4WFhYaGh4iIiIiIiIeHiIiIiYqMjY2MjI2MjI6FeXx4cllOTU5MSklGSklGS0lHS0pJSkdHR0tMTkxNSEhJSk1RTk9OTU9LSUdJSkhJRElISEZGR0dJR0NCQUNUbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIyMjIx5cmJdW1BQTUxJR0RISkhNTEdLT0xLSkpMTUxPUE5ISUtMT1FQUFFPT0pISkpMSkxGR0hHRkZIRkVFQkFCQlxvcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIyMjX9gXFdXV1VRT01MRUZHTVBPUFdVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1MTkdHSkZGSEpFREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09QkBCQkdWTkZOUFBUWHuGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyNj4yMi25fW21kSFVTU1JLOztTVFNgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRS0xLSEhKSEVGSUlJSElpcnZ5eHl4ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0dGRT8/QUFFQUNHRURFTFhSTVRVVlhafIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH5hiouLiHJhaFg9W1pZVFI/QFdWWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFVUVlRPT01KTEpJSUxNS09NU29zdnh5eHh6eXp7ent8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSGhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImLjHxyc1teXVxTVVNXV1VbWnWDWVV9kGFcWF1fV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiYqBboaJiIeEi4BpXFxdW1ZXVVhUUlhWY5aAUmVyWFpXX2hQYGZbW1hcZ2FHT1poZ11bXF1dV1JPU1BQUlZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fX1/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRUFJSUlZTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIiHiIeDkY6JiYiGhYiIhn6AfWBUWFtWVFZTUlJNUE1MZnpbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtcXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a39+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmJh4aDh4eHem9zWk1OUVFNT0xKS0VGSUZDP1RkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3x9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eXFlVUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ2YV5PRkFFRUREQ0FFUUNFQUM+Q0lHVkBITkxHXWlQSEZORkRFRklHSEJESEdJS0dEQkFEQE9RTVNkcnR2dXN0dXp8e3t7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn+DgIODgoCCgIKBgmxPSUJCPDw+QEFAQD9rUUtgRUZISUVCP0dMTkdNUVVJQUU/Pzw9PD09Pz0/QUNDQD89PUI+Sk5HVW51dHVzdHZ4e3x7fHx8fH19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqamZgW1FSWlxZXkpKUFFOS0xRUlFUVlVXUVFXVVBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZURCQkI+O0NDQkJEQlxdT3tOT09OS0xNT09RTEtNV01IR0BBPDk3NzU5OT07Ozs4Ojg6PzxCSD9cc3R1dXV2d3l8fHx9fHx9fX1+fH59fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BfXVpJSFBSUU9NUFFOUVJUVlhTU1lUT1laW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEdISENCR0lGRkZETVJQYVdTWFFQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BWV15aWE1LVFRTUFFVT0xSU1RXWFRUWVJNV1laVlhYVlhZXVdXWGhza11WYXNrYmFfXmRhX15ZVVFOT09NSUhKTEpJRkNRUFNbV1RUTlFTWVNcZVVPU1RSTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTlHbXJ0d3h5e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQU1VXVFVSXW5eUk5aX1tWWTtEVlhUW2ZKTFBTUk9OTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz88Ojc4NzY1OTk2NzY2NVdwcHN3eXp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF1SVFpWV1VUV1RSWFhZWVlTVU9KR09QT09NUkpQUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBTTUlMSk9SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmhpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0hGTE1QTUcvRV9SPjM/PmpvYVNSUUBHVFFQUVBRTlFPUVBMSkxMT1BPTlBRUU5QT0pMTU1LR0VFREI7PT08OT1HNjY3N0RtcHR2eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nVFFTQUdVUE9RUVBNTU9NS0xLTE5PT1FMT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6e3h6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT09NUVNMVFVUWFdVTExLSTw5ODc7PkA+PD1BQEI9PkVIR0NFRklHSkpARkFBQEZIRUpPSFFSYlxRUFJPU09PUExNT05MTU1OT05bV0tNUU9HSUhDSEpMTEtGRkZFP0JDPjxCRz9CP0FkcHR2enp6e3x7enp3e3d5fn58e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENEPTk3Nzk/Qj47P0JAQD5ARElFQ0dHSkdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xOS0xOTU1MTE9OU2ROSkxSSUlJRUFISkxNTkpHSUdCQUJAP0VGRUhES25vdnl5eXt7ent6d3R4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg6Oj9CPzxBQkFBREVHS0ZDSEhHR0hDQz9CPz9AQT5ERUNLTlJUTEpJTVRGSUlKTEpLTElKTU1PUFJQSkdDS0dDQklJTE1PTklKSUdDQ0NESEpNTElZcm13eXh6e3p5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFHS0RHSEhHSktJSktERkI9Pj06OTo7QEI/PUFCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISkxNSEpMSElKTEtNXVJISERORkFDSkpNTFBNS01KS0ZHR0pOTlFOTGJtaXZ2d3p5e3p9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLREZFR0VGRkdER0JDQD48PTk6OjpAQ0A+QUNERUlFSUpMRkhIR0ZGQ0I7QUJDPkBDRENER0xOSEtOSERIRUlNTk1HSUxHRkdJSUxOS0lHRU5IQkZNS01MT01NTk1LSEhJT1JSU05SZmZmcW9zeHV7eXxsaGpuZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lERkZFQ0NDRUBEQj4/Pjo7Oz06PD5DQT5BQ0VGSkZJSExIR0dHRkVDQD1EREI+QUNDQ0RHSElHTVBKRkZHS05PS0ZISUZFREVJSkhKSUZIT0tESUxLT01PTk9PTkpKSUxSVVVST1dkYGFtZ3Fyb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPEJBPkE9Ojo9Pzs9PkBCPkBCREdKRUlGSUhHRkdFQ0JBQUZGQ0JCQkRFREdHSUZMUUxJT0pKTUxJR0hFR0VEQ0lJSEtKR0tSTUJOTkxQTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmVmZmRoaGZuamZtbWhra21yaXF2dHNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd3dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREU8QUBAQzw4Ojw+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDR0VCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFST1BRTk9NTlBNTE1TV1ZYWFVYXVpdZGBpYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRTw/QkJEPDc7PT06PjpAQj4/P0NFRkRGREVIRURFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR05LTEtISkxGSUlLSEVLS0xNTk9SVE9IU1RTUFJPUU1OUU5NUFdaVlpZVlpdWlhhYGFgXmhlY2BkZmhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXd1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSEhHSURCQ0hFPEBFQkU9ODk+Pj08PEFCPD8+QUFGQ0ZDRElEREVFRkdHR0lGR0tIRElIR0lHRkRIS0lHS0hNS0pLTEhMS01LSU1LT05PUlVWT0tVVlNQU1FSTE9RUE9UWVpZXFpZW15eXWBiXlxhY2tiYGRmZ3KFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdExJS0lLRkJFR0U8QEdDREA6PD9APz4/QkE8QD5CQUZDRUVFSUVGRUdGSEhGSEhJS0pGSkhIS0hGRkxJSEhKR0xMTUxMSU1LTU1NT0xQUFFVVldPS1ZWVVNSUVJMT1JSUFZbW11eW1xeXl5gYGFkXWNgZWZgZWhqZHNzZmpnZ2tvcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRkdJRkpGR0RJSEdJSEpMSEhKSklMSkZKS0hJS0pHS0tNTUpKTUxOTk1QS09QUlRYVk1OVFVUUlJRUE1OVFNSV1tdXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTUxMTUdDQ0FEPD9FRUVDPUFBQ0JDQ0RBQ0RBQUVHQ0hISUhHSkdDSElHSEpGSU1ISUpNS05MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAREJFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdISklJTEhKSk5MT0tJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQ0VFREZCRkZHREVLRkZKTUxLTExHR01JR0pLSEtLSUtLTkxNTExMSUxNTFtzYmRwXmxtVU1OZnNdZmZxbG50Z3BpX2FZbm5icHBia2pqZm9xdGV0bm9cb3VncE1KcXl2a2Fga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BzdXRxc3N0dXV1dHd4dnR0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdDRkNGRUZFRENISEhERUtIR0xOTkxNTUZKTkhKS0pJTEtKSktMTU5OTU1KTU1OW3Jvb25wcGxrTVBRbFdNaWJ0cnBhbW51XFlsUFxubVpxbWtvbXh4dHNpcF1fcmtxalV1eXhvY15rZmJncG9qam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGSENHRElGRUVCRklISEVITEpHTU1PTE1OR0xNSUxLSUpNSUtKSktPUE9OTExOTkxcaGR1XWxxV2xOUFFtVFlrXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNGREhHTEhFQ0NIS0lIRkpMTEZOTExTUkxHTExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5Zcmtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmltdHVwc3V2c3FwcHFvcXR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnRzdnNIS0hJQkVFRUFBPkREQkdESElNSUZDRkpMSkdGS05MRk9KS1dSS0dLSkpOSUhKTElLSkhIS01NTU1JS0tLU2tjW2leX2ljcnJaX1lqbl9lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21xcG50eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFxdnR3ckdHRklERUNGQUBCRkVER0JISkxIRkNHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElGS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT05RTk9RSkpPUFFkcWlUWVdcW1xWWVtdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NER0VFQUVDQERIREZHQ0lLTEhGREdLTElFR0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJSEhJRUZMSUpMT01KUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSS1lhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGFhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHJ4cnhzcXJ1cnRPQkNETE1CRERCRUlFSEdGS0pLSEVGSUpLRkVISFBLTU1KTVJJR0VBSEZKSUtMSk1KSEZESUZERkdFRktIQ0pOTExVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoaGhX91cXBycnN2eXl6eXl4eHh2cnl2eHJxeHZ1dmFTSkpNSUVDQkNHSEZIR0hLSkpJREZLS0tFRklKTktOS0hMTkdIRT5HR0xJS0xLS0tJR0RIRENERUFGSkVBS0xKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFYVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR4eXl5eX9+fXl1eXZ2cm56d3Z4WVFLRkNHRUJFSElGR0hIRkZJR0hHSUtJTERES0tOTUxLSEtKSElGP0dHTktLS01LS0tJRkdDREBEQUhJQ0BKS0hQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUVtXWmBfXV5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHR0lHRkZJTEpORkRLSk1OSkxJS0pISUZCSEhRTUxLT01KS0lHR0VEP0VDSUlDQ0hHRVRdWV5YX1lfW11VWFhPXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJaXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYSFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHiIeFg4B8eFxTS0NBSEZER01SSENRSkVHSEhFRktJTVBFRklKS05MTElLTElJSERIS1FPTU1QTExKS0hJQ0RBRURJR0NDSEZEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1PWWFcYGBfYmNiXWFiV2BfVFBPT09XUVxbW1xcXl9iZmZlbGVvb3d8e4B7fX+AhISEhISEhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUpLTkxLS0xLSUpHRUpOUVFOT09NTkxNSEtBREFDREdFQ0NGR0JNSEJLS09PTkxGTUZHSUpIR0xMTU9QSUxPUE9TT0xQU1JVWllXWVhYZFdPU1RQUE5NTlRSWlhYWl1cYGFkZWNnY2tscHNyeXl/e3p/hISEhYSEhISChIB+e4GDgX17hYSGhoaHh4WFhYSEhIKBgH1LSUVFSEZHREtNXUxHR1hMR0hKSEdNTFFRSExLS0tOTVVOT0pKS0dHS1BTU05QT05OTk5IS0ZgRURfTEVnZEZOXEleW3JtT01VbVlMRFBgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRkdGSEVFS09TSUpGYFRISU9KSU9NUlFLTUxMT1JVUk9PSUxNR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXJ0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fWm5YXVZcWFVraFVdVmNaYFlbX1ZWWH9qdHV1Xl92XldhW1tmW19gYWBhXWBhZ21wbGBwd3R4gYGCg4SCf31/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEdJS0VSVkxLTklLUlhXUU1PT0xRVE5PUU9LS05HTVBTW1pTUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJvb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29ycnt8b354boByX2BgYmFaYF9na25rYmxmZ213foGAgn57eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOS0dgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5MT0hRUlRZV1ZQVFBQUFFLSGd4bGN4cm1bS05WeXB1bXVib3ZQZWVKZnZxbXdvgGpmeHdpV3JRaHptaWp6en5seHp/b2hvWXZ2anZ1cIBfcmZ9aWx4fG9eX19iYVtdYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncXl7c3J1eX6Bc3V6bnx9eXhybk5LU3VOQ0JGUE9ISktJS1BPT09NUFpgWlhLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXF9kZGlnaGVlXmFiaWlpamtub2txb21qcGFjZmNvd3hvbXBzeX5ucXBre3p0cm9tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xYVU1VWVVlWFJSWV5TTE5JVFRXV1lXT1NOTk5RSVJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9acHp7XmB6c2Nyb3hxaGR9aXJ8XlVMbGB2dWtpdXt6bX54a3xwXF5eYlteYWRkZ2VlZWJaY2Npa2tyc3J2Z2xpaGRnYWFrYWdzcmxnbG1yfGttaGt7dG1ta21PSEtLSEpISFFQTE5PTEtSUlJPU1JXUlZUUFdaVlZUVFRhX1BOTUtUU1RRVlZOTkxNT1BLSFFOUFVMS0xTVFRTVFBWVVFRTlFRWFlSTlBVVFhYWFtbVVJTV1tXWFhaT1NVV1hYUl5ZV15WVFBZUldXV1dYXlpncl5bW1lcXV9jWl9jY2RmZGNjYlpjYmdmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdnanVqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09MTVZUUU5VU05PTUxRUExKUlFLUU1LTFBTVVNRUlNTSUhMTk9RUlFQUVRWUlhXXFdTUlBSVFVWU1pRTlNSWFZUWVZVWlZUUlVTVFVXWFZcWV5gXVxaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWdqa2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEpOV1NQTlVQTlFOTFNQTU9VU05STk1PUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXVlZZW1RQVFVYVVVaVVdaVlNSV1ZVV1tYWl9cVVheXF5dW11gYF1bYmJjZ2ZlZGJYX2FiXmBnZGZlYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2JPTE1MUVFMT1RPT1NRT1FbWVdXWFtZWFhWXWpkVlhZWldWU1NPSk5WVFBPVVBQUE5NUlJQUlhUUVFPTVBUVk9YUlRVVU9OTVFTVlVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUVlZWVllUWFhWU1JZV1ZaXlldX15VXlxeYFxbX19fXlpiYmRoZ2RkYlhhYGJeXmZjZGBiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xZWltkcW1oZF9bWFZVV1FMTVZTTU5ST1FST0xRU1JVWlVTUFBNUVhXUldTU1NYTU9PUVRYVlVVU1VYWFteXVtbVlFOVVZVW1xXUlNXVldYVlRZW1VUUlpYV1xeWl5fYFVhXGFhXWBiX1xgXWNhY2doZGZgWWNgYV9fZWRfYGJbWlxbXFlaWVhXXFpcW2BeX1teXmFgXmJcWWBbUU5PTlZRUFRRT1RUU1BXXFxcWF5cXldcXmpxd3mAY1xbVVVXUE1PVlNOUVFPUlRRTFJUVFlbV1VPUk9TWFdUU1VSUlpPUFJSVltWV1dUVlpYXF1bW11WU01UVVVbXFZSVVZWWFlTVVpcVVNTXVhaXV5cYGBgVmFbY2JdYWReXGJhY19jZmlkZl5bZGBhYGBjZV9iXllaXltcW1lYWVZXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1xUV1dRT1JaU1JRVFJUVVRLUldWW1laU09TUVZWV1RPV1JTWlJUVFRYXVdYWVNYXFheXVlaXVRVTlVWV15bWFJVVVlZWVVXWlxWU1deWl1dYF1iYl1ZX1tlYV9kZF5eY2NhXmVmaWRmXl1kYWBhYWJkYGJeWFpfW1xbWFhYV1dbWVtgXFtbXFtYWlteVl5ZXVFPT1JaUFpUVVZWVFRUXl5gXl5iXGBVXV5ia3l0bH1rWlVZVFBQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtaVVpeWF9eWVxZUVdSWVlZX1taVFVWWllaV1haXVdVW15dXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU05QVllRXVVWWVdXVVhfX2FhYGNdX1RdX2JlZXWBemhXWVlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSWFNXV1VTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWFRZWlphWlxWV1hbWltZWVpbWVdeX2BfY2JhZGRcYlxgZmFkZmReX2RiYltmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlNZVlNcVFZXWVZWXGBhYmNgY15fVltgZGFfenVvaFlbWVVXVFdbWlpcWVhZYFdQVV5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1pdXlldVVJZV1lZXWJaXldYW1xbXFtbWlxaWl9fYGBkYmNkZGJkWWFmY2ZmZV5hYmBjXmJjaWRjZ19nXmFhY2FhYF5fWFRbWlpbW1hbWFhcW1pbWFdZWFdcW1tgXVZdXVNPVllWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheW1xaVldYWVxcXV9bWVtiVlRYXl1hY1xSVllQV1dXV1dWU1VUWFxcXmBgXWBcV2FeW15bWl5YVVhXW1tfYFxfWFlcXF1eX1xbXVlbYGFeYGVjZGVlZmJYY2VkaGdkXmNgYGVjXGVpZGVpX2ZdY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWVhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZcXV5gYWBfYl5ZYV1dXllcXllYVVdbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZWNlZmVmYlpkZmZpZ2JfY15hZmRaaGhiZmljZV5iYmNhYGBfXV1aWFtZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVZcW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZF1cWFtiZWNhUlxaT1lYWltbWldaWWBdYGJiYGFjX1xiXV9dW15dWVlUWF1dX2BfYFxbXl5gYmNdXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiW2NnYFxpaGJoaWVkYGJhY2FfYF9cXVxZXFlYV1hZWFdcWlpXV1hPWFpdYWNmZnJrf0pZV1xaWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5ZWFVbX15dYWJgXltgYWJmY19dVF1gYWNkZGZlZ2VmZmVeZWZoaGdkZGBaZWdeYWdoY2hoZmNgYmFjYl9fX1xdW1pbWVhYWFZaVlxbWlZWVk1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4SCgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7enp6enp6ent8fHx8fHx7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3p6enp6enp6fH19fX18fHx7fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIkMzT0tLS09haJSsrKyolY5KNjYyMjYl/f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIqU3ebk5OXl61QTGxsbGxRdlpGQkI+RjH9/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXl5e3hwb29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2EhYSEhIOEeHNzc3Nzc3l9fHx9fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnd6eHp6eX55eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3l5eXl5eXl8fX19fX19fHt7e3x8fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2eX18fXp7fnt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjYyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fX18fXx+fHd4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4SEgoKCgoGBgoKCgoKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3dnt9fHl7fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp5en17fH18fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4e3h6e3l8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKCgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mFhIOEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHl5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veHl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4OBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7e3x8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYGAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoKCgoGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXFxcnN0dHR0dHR0c3N0c3NzdHR0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXFwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm5ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoKBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzc3NycnFxcHBwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycXJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubm5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoCBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXNxcnJxcW98gm9wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKBgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFwh4ZwcnFwc5iCbnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF9oYJwcm+LnnxvcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFycXSdoXZxd5+cfW9xcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXFxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZiokG+Co51+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3Jyc3N1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4GDeXJzc3JycnNycnNzc3Nyc3Ryk6mkeYignXxyc3NzcnNzdHR1dXV1dXR1d3h3d3d3d3h4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f4B+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn18dnZ3d3Z1eHp4eHh4eHd4eXmftKmkqKiXfXt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7fHt7ia+mobWrrKN+e3p6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2YpZaisqCZp5N9gH99fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+gIB/f35/f4CAgYCAgYCBgZycjqCwoJ+in4CAgYB+fn9/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYGAl5qOmLKhmJachXx+fn6Afn5+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f4CBfn6fq6SWpJublqCfhn9+fn+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KDg4aNn7KooqCYnZ2mqK2ooJmRh4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4aNoK2xppuaoJuenJydoaSjnZSHg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoOLl5qXlpigmp2dnZqamJCJhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj5CSkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBho6Uk5eanJyblI+Jh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5OSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDg4iQk46UmJKHg4KFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgYKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGTkpCOkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgYGCg4GCgoKBgIebh4uHgoOCgYCAgICBgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAf4OIjoCBgoODgH9/gICAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYmGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/f4yVgoKBgoSDgYGAgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkZGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChIODgoWCgYSFhIODg4KDg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTk5CNjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgZCMg4F/fn18fYycjoCCgYGCgoWUlIyBgoGCg4KFk4OBg4WDg4SDg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUk5OSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX17gZiMgIOBgYGAjpSMkIGCgYKCgpGUgYGDg4KDg4OCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGVn4p+foB9h4t+hISDhIKDg4KNiYWMgoKDgoOGlpWQjIKCg4SEg4ODg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4SEhISDg4KCg5CUk5KSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhH2GiYB+hYWFhIWCf319fYCDhIOEhIuZoKqom4qEjomDhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaGhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkZKNioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39/f3+DhISFipOYoKWkm42Wh4WEhYWFhIWEhoWFhYWGhoaFhoWFhoWFhoaGh4aGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhYWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6Fgn9/f39/f39+gICEhIaVl5WXn5+enZKHiIaGhYaFhYaHh4eIhoeHhoaGh4aHhoaHh4aGhoWDg4SFhYaEhYWGhoeHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4iIhYaFg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FjJybmpeanJuZjoeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4eHh4aHhYODhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjImBgIGCgoGBgYGAf4B/f357en+Zl4qUmZmYlZSMiYmJiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeHhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSSkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fnx7fJqVf4GWmJeVk42JiYiJi4qJiYiJiIqKiYuJhoaGhoeFhoiIiIiGhoeEg4OEh4iIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn19gZePjJiWmJeTiYeHh4eIh4eJhoeGiIeHiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgYGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoOBfXx9f4B/fn5+fXx9fnx6gpqfnJiNiouDhISGhYWDg4WEhISEhISFhIKCgoGEhIGCg4OFhoWEgoKBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjZCMiYaEhYSFgoGBgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4GEhIODg4KCgH19f4CAgX99fn59fH19e3p5h6CemoyHiICCgYKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgIGAgYKBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goSDgoODg4F+fX5/gICBgH59fX19fn18ent6j5uXlpKJfoB/f4CAfn2Af3+AgIF/gICBf3+AgYF+fX1/gIF/f35/gIB/gICAgH+AgoCAgoGAg4GBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GBg4SBgoKDgoOEhYCAf3x9fX59fX5/gH99f359foCDg4KCgoGBf319fn+AgIB/fn19fXx7e3t6enp7jpeVl4Z+fn9+fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f39/f3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp6enl/kJCPkZF/f35/f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af35+f3+AgH5+gH9/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp6enmCjYmPloeBgICBgH+Bf4CAgIGBgoKAfoB+f35+f36BgIGAf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaFhIKBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WCgYODg4WEhISEhIODg4SCgYKCgoB/fn19fX5+gH19fX19fX19fXx6enl5eXuIiYeHiIOBgoOBgIKAgoGBg4ODg4GBgYCBgH+AgYOBhIKAgIGAgYGBgIGAgoF/gYCBf4CAf4CAgH5/f358fImUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgIGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYSEhYSFhoaGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eXyCgoSFg4KEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCAgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGBgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4eHl5en6Bgn+Ci4SDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDg4SDgoODgoKCgoODgoKRkIuIiYeJh4aGhIaFhISEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHh4eHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl6fH+AfYaTg4ODhISUk4CAgX9/f35+hIuAf4GAhIaQiYWEgoKBhYWLg4GChYWGhoSEhYWDhISDg4SDhIWEiJKPjImIiImHh4eFhoWEhISCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6ent9gIKBgoGDgoB+fX9/e4iRfHyOln99f3+ChoqFg4OEg4KDjYl/fX+DhIWFg4SGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYOEg4GCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXl9fn+Af4F/fXt8f359gpWRf4SIfXx+f4KEfHyBgoSDf3+Hg32CgYCCgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4SFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH9+ioJ7ent6eHp7e3x9e35+f39+fn5+fXyAgYB+ho+Bfn2Cfn9+gIJ8fIB/goCBgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMjI6OjYiIh4WFhYSDgoKCgoODgoKDg4KBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX+AgX1/f4B/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3x8fHx8fHx8fHx9fXx7fXx8fHt8fHx6enl7fHt9hYODgIGBfoB/f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn9+f4CAf3+Af399fXx8fX59fH19fX19fXx9fH18e318fHp7enx9fX+GhYOAgIB9fn1+f36LhIGHfn18fH5+goJ/fX19fYF8e318foGEg4GAfn5+fn18fn+AfX6Afn9+hJKNjYyPjYuKhoSFhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fX1+foGBgoOAen5+fH5+gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX6AgIODgn9+f3x8fH18fYGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f3+Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx9gYKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9e3+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fH18fH18fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIkY+NiYqHhYWDgoKDg4SDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gH9/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg319fXx9fH19fX19fnx9fH18fX1+fX59fX19fHt7e3x7fHx7ent7enp6e35+g4WIh4iKi4uKiYyRkI6KiYaFhIKCgoKDg4ODgYGBgYGBgYGBgYGCgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX19fX18fH19fX18fX19fn19fn58e3t7fHx9fHt6e3t5enl4eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgYCAgYOCgH+Bf31+gH58f3+Jgn9+gpGEhIOBf359fI2HfX1+fX18f358fX18fX1+fn1+f3x9fHt8fX58fHt8fXp6eXl5eXp7fn6AgYOHhIiPjouLh4WEhIOCgYKCgoKBgYGBgoKCgYKCgYKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGCgYOBgICChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Afn19fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY6LjIiFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICBg4F/gIGEgX5+gH99foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fXt7e3x7fHx9fXyKiomJhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKDg4SDhYaDgoF/f4CCgH+AgIOAfn6Af31/gH19fn6AgH+Cf4GAgICAgYB9f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e31+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgoGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoKCg4WDhIOCg4SEhIOFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19foB/f4GAgYCAgICBgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISEg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhIWDgYCAgH+AgX59fX5/fn5+foB9fX98fX1+gX+AgICCgICBgIOCgH+AfoCBf4CBgIB/fn59fn59f35+hYWBgYF/gIOBf36BgH9+f36Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX+Af3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f39/f4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf39/goB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fnt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhYSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4CDg4OBf3+BgYCCgYGBgICBgICAgICBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH2Afn+AfX9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhIOBg4KBg4F/gIF+foB+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgYOCgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fX59fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2d3ZzdIaEhIWFgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn99fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXt5eH9+e3x8fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgYKBgIGBfYCAfoB9fn1+f4CAgH9/f398f4B/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+Af4B/f4GCgYB/foCBfn+AgoKAgYOChIWGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXx/fYB+fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4GBg4J/gX9+f35/gH19fX1+gICAf39/f3yAf3+BgIGAgH98gH9+fn6Af31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXh5eHh4eXd7fHt7e3+FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYCAf32Afn5+f39+fX1+gIGBgH5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGAgICAfX5+f4B9fH58f4CBgICAgIB8f3+Afn+BgH9/foF/fn9/fn19fH+AgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t7fHl3e3l3eHd3eHt7ent8hYl9e3p3enx9fXx8fX19f358fX5+fX19fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgoCAgIB+f35/f318fn6AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/foCAgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKNenx9fHt9eXt6enh6gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fX17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgYCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5fHx7fXx7fHx8fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgoKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKBgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fXx9fHx9fX59fX1+fn9/gH99e3x8fHx8e3p5e3t5eXNydW52cnB4cXZ2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKAf4CAgIB/gn9+gIGAgn+AgICAf4B/gICAf359gH9/f3+Af4B/gIB/gIGBgICAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXx8fXh4dXh4eXt8fH17e3x8fH1+f39/f359fX6Af3+BgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgIGCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf4CAf4CHfn58e318e31/eHd2eXl6e3x8fHx7fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enJ2eYWFgoOCg4OCgoSEgICDgIaDg4SBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGAgYGAgYCBgYGBgYOAf4GDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f316fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfH9+fn59eXl7enp6eXNydG93cXd5c3d7hYOCg4KDhIKDhIOAgYODhoODg4KChIGEg4GDgICCgYOBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOCf36Ag4KAgX+AgoOCgIGCgYOCg4GBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3x7d3x5eXl7en1+fXx9fHx9fn5/gYGAgICBgYGDhIB9gH9/f39+e3t7ent6dHF4cXl0dnh0dnuEgoOCg4OEgoSDg4GCgoSFhIKDgoOEgYSDgYOAgYOCgoKCgoGCgH+BgICCgYKBgoKCgYCBgYGCgoKDgH6Bg4F/f4GEhIGDf4KCgYOBgoKBg4ODhICCg4KDgoKBgoKDgYOEg4SDhIWEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX+AgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgYKDhYWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoKAf4GCgoCAgoSDg4KBgoKBg4KCg4OEg4OEgIKDgoODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKAgYB7fYF+fHl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgYCAgICBgYCAf319fHx9e3Zydnh4dnR/dnV9h4eDgoSFg4OEhYSBgoSGhISDgoOEhIGDhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKAgoKDg4KCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgYKEhIKEg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX5+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOCgoGBg4J/goOEg4OChH+ChIODg4OEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fn1+gYGAfn59fn1+fn5+fn9/gHx9gIGCgoODhYOEg4aEgYKIhoWEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4KBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYOAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB/fXx+gn9/fn5+fn19f39/f4GAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKEhYqJhISEhIWFgoeGhoSEhISFhIWEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOCfYR+fnJ1g4KBdn6DhYB9gXWBeoR/f39/hISCg4KCgYOEg4SEhYOEhYaEhYZ9hHp9fn+De4WDgYSDgX99fn9+foKDgX17f31+gH59fHx8fX19fXx9fX6Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISGhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgIJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygoR+g4N9gX1+f35/goOCfH+BfX+AfX18fHx8fX18fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgoKEhoaDhYSGiIaGhYKGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhIZ9cHuBcHl2foN/gm55cHVzfHZ5eYZzhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fX9+fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KCg4WHhoaAgoWDg4WHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB1gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fn2AfoCAfn6AgIGAfn5/fn6Bf4CAfn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhISDhYeGhIWFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WEhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39/en59fX99f39+fYCBg4OAgoOBgYSCgH+BgoB9f3+Bfn9+fX6BgH5+gYKAgIKEh4aDg4aEhYSFh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3B5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fX1/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFhoaGhYSFhYWFhYaJioeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhoaFhoSGhIOEhIaEg4GEg4SDhYOFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WEhISDgoF+f357fHt+fHx9fn9/fX1/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaGhoWFhoSFhoaGhoSHhoeHhoWHiIiIiIaFh4WGhoiGhYiHiIWHhoaIhYWGhoWGhoWDgoWFhoWFg4SEhISGhIaGhIWFg4aGhYWFhIaGhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH1+f35+fn58fX1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYODhYaGhISDhISDhIaEhoaFhYWDhoaFhoWEhoeFhISFhYOEiIaEg4OEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn59fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFhoiFhoeFh4aHhoeFiIiHh4WGhoeFhoaFgoSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGh4WEg4SEg4SHg4SBgoSFg4GAgIB7e35+fHx8fn18fHx9fnx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoWHh4eFh4aIiIeHhYeHh4aGh4SChIOEhoWHhYSEhISEhYaGhoaFhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9fn58fHx+fXx8fXx9e3x8fHx8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoeGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiGhYeHhoaHh4WHhoiIh4aFh4eIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH57e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhYSFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4SCf39+f35+fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYWFhISDhIKAg4GGgoGCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYWEg4WFhoaHhoeFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfH98fX1+fXt+fXx9enp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYSDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeGhoiIhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4WFhoaFhYaCg4OFgYCBgICEgIOAfIGAfn6CgH2Af4F9gHx9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaFhYWEhYWEhIKCgIKBgICAg4F+fn6AeXp9gIOEhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDg4aEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B8gX99foJ+foB+gH9/fX1+fX97f317enl6enl6fH15ent7e3p8e3t7e3x9fX18f359fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhoSEhoSHhoaFhYWDg4WEhYaFhoSEhISFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6enp7e3x6e3t7fH1+fX2AfX18fH2Af318hoOGhoWGhoOEg4aChYGBgH9/gIB+f4GBfH5/f35/gIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoOChIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGhoaGhYOEhIOEhYWFg4SDg4SChISAf4KCf31+fn5+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5enp5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9+fn9/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGChoWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYF+gn9+f4J8f359fXx8fHt7enp6enl7eXt6eXp6ent8eXt9e3t+f3+BgH1/fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH5+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgIGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fH59fH6DfXt+fH2Af4CDfX2AgX9+f318fH19e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PD45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT0zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWy8vLzMvLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NTT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw7OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OR6jZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1svLzMzLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19jX19fa29ra2tra2trb3Nvb29nX19fX19fX19fX19fW19rb2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTUaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0jYuLi4uLi4uLi4qKioifu7m5ubm5ubi4uLi4ubCLi4uKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOU2JMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFhSU1NTU1NTU1NTU1NPd6ikpKOjo6Ojo6Ojo6WVU1NTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUJAOTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0NLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpp5cVldXV1dXV1dXV1dXU3qppaWlpKSkpKSkpKSml1dXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDs+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzc/R0dLS0tLS0tHS0dHR3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqiZmFiYmJiYmJiYmJiYl6Crampqampqampqampq55jYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk6Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Nzs7Ozs7Ozs7Ozs3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs/Ozs7OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzLy8vLzdLS0tLS0tLS0tLS0tLRzczNzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo7ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7OztLTz8/O0NPQztLU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19fX19fX19bW1tbW1tXW1tbW1tbW1tbW1tfX1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvVkpfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rOzc3N0LmDhIvH08Cay8/Ozs7OztKrnM/P0rmPvtScgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT08PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK2nKWj1MCUsJyxlri5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/OnZyRncWkoIuRw5N9fq+w0c7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4+PDw5Nj9CP0I6NjQ4Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv5igm7OnnYedutTSzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9COjc0Ojo6OTs7ODs9Pz0+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P07SZlqq5l5yQn6DS08CgoNDPz8/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PDk2NDo5ODo6OTc7P0A8PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz9Srmn6jkoqsr5GhudevoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD45PDk3NjU5OjY6PDs3PD9APDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDUrJuni5iKoZqtm6nYo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q07aysqWbm5qmxZii0Z6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXEopmWnK+enJubrcefodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTo6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6DH1aKrpJrPpquknsW0pKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtLQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09PIko201syTkKfXuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVaWpbTF9NSkxKVUxGQjw8P0ZFR0tJPTY2Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MjB1dHUyr3V0tHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRExMQT43NzU6ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHT1NLS0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj09Nzg2OTc3ODk5Ozs9P0A8PDg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0FMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhRQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29ra2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ojg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc2ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg2NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7Oz4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PD0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBGPjg7NzI3OTY3NDUzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO1tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7e3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6uvsKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo6Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmpqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmpqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpaWlpaaoqKioqKWnqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo5Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OztAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpaenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0E/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioaCfn56enJycnJ2dnZydnp+goqGio6OjoaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5iXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAP0JCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc1Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5KUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqanp6afm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6Wmpqako6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODk6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/PkFBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+mpp/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5KTkpeanJqWl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6SmpqWlpqempqKdnJ+hn5eRkZCUl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaWmpaWjoKChoaCZkpCPlpuZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaCgn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU5ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5WSlJicmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODY4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqOjpKSkpKKhoZ6bmpmXobWemZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpmXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6ChoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKCgoKKkoaKioqGgnpybm5uZn6ubnJqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY6NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaCls6ygoJ+fnpyZmZqam65qdp2dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5uam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCfppKbq5+goJ6bmpmamaiERICfn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5eVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnqCeYpymnp6cmpqbnKGjUUiEoJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZuapmZdo6CbmpmbnZyudUlMhqGcnZ2cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmKSAUniimZmanZugpF9WToehnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGgoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFxcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuYmJmgiFtflJqZm5yco49kWk2Bop6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbW0xGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiZn5ddXXaXmpydnaKBZFlNf6Ken56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubmpydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmaYGFggJadnJ6YdGNVT4Gin5+fnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozg3OTo7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmZn2leW2V/nJyejGpfUVOGnpuenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qal5NzaGFUdpOXnIdcV1BXipKOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaOimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY6Smp6SfaCjlqScbk1QY4aGgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CEoJ2OfmqUpZWdfYiAX3J/gIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2OTM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5/gKKLe21RdZyMjFpxfXx+fXyGjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfZiad1dOS3KThoNNX29xd4iFio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY2jjVQvLz14h3d2QURda22EkImJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KmnGdCW0g7eHlrZ0UxOFpsc5CPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mpr49KcqJ5QXx4ZGJRVF5JYG6KoaGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKN4YMHWpUN8joN1T26OdlNkf6Oop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkp6eZnaSlo6KdYn+9wK55oaSalWVMX3htUXSVoqKgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioaKnoaaupqadnmqEnLqOqdGimrOoWEytk1Nlj6CeoKCenaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq+roqKFd359cs7Gr5mmr2tVqrBjW4eln6WioZ6gopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7e0tbazra6sjoaDbpHMvJSUpZZ0VG96c3B9lqaqp6Sgn6ObnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K3u7u7ubnBuLS1n4d5ZFiftbump5mId2txb3h5e36FjpKYnaOlpqulpJihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW3wcbMz87Myb6zpI9yZlJEi5WFhYV9eHFuZ2ZsaWxycnFycnV9janExLuip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYWZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PFx9vj49rLvK6jlYh0WVpRRGl3am50bmtlZVlXXVhcY2pqaWZhaYu2wcC5qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3b21bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxr7N0tXKuaack4VyXlFUS0RbZV5jamVhYGhZVFhTV1laXVlbdZq3vKy0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudnJydnJnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/wsHHy8i2k3RjVVBPVEg+XmxfX2ViYF1kYVNVV1ZVVVhznK2xqqiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO5uMObYUlER0tEPVtlYWJpY2BbY19XUk9QUFeBtLqsrqWko6ikoKClmam0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnZSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent3bmtpaHZaZ3N4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTExMLEwa2DT0ZNRTtNWl1lbGVfW2BZWVNOVYCjq7m1sqypo6GtqaynrZ+stLS/w765uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dmVmampoXmtwbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCxpZqWEc/P0ZdYmFqYFpYV1RWd5q3v7u8urysraapu7q5t7+ztbiywca6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rraussZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWh2aGpqdW55bF5kW1ZgWUxIRDY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnOxcbGvalyUEswWFNWZWFTTlBxqcjIwsTHwLy+tLCwsMK+vsHGwL63tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2tr7WkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOi5R9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ9eHBnYGtqd21pZnZvdGNdY1VXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPCwbyRP093gIpWTG+ly9TFtr+/wL+6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5gHNwZmVnZGxlYmtub29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzFp3drgpCXb6vIyMfRwa+9vbi5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFlYmFjZGRqY2dkW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Aur/AvLvFvbrAxL+9vq9zZH2RiorRxb+/yb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7e4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhY2Noa2dnamZqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWNuL+7w7W6x7a1uLq8uLm2qqSYjX6Eyb+/u8G+uca9wr+8xbi2t7S4tra7u7i2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVncGplbGhZWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/Ed6jMvce3ubettrS3ubO1sb3JxJRJe8q+v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfWtucWdxa3RmY25gXFVIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTWrnSAu8jPwsC4rrS0u723ubG9w8qNQ3XNw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXJmbGpvdW95ZGhjXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsbJ0plxcqvR0czKxLW6v8TIvr60v8DBeFJuy8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0cG1tdGxtb2BjX2JiTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQw7q+vMS+t7zAv8nPx8jKysKGcnOjzMzLzcrGwsPLzsG8uL26sW9jYrvIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWRcX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9vDvra+wL6+uqacqbK2w7+leXV4mcTHy8jBw8DAycrBv7u5saB8cmytyMXEv8DBv8vHw8DIwLrCu7mzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3h0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEuG2tzr22ucC8rH1uaG5tcoGVmHN3fJe9v8bAucC8vsXEvb24sbCYkH2Am8rCw7y9v7/Dw7+/x7y8wLSzrrS0vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cW9qXGBhWlRRQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbN2gbO9trXCpYdpWl5gTVJbWm5zd4CfuLjCurO7t7u9v7q7u66km5iHkH7AxMO+vL+7u7i2wcK1v7q0ra6sr73Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra8tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2eG5yYV9nXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmohHiKoK+1nWplZ1ZZYElJTVBTbHeGpbC3vrmytbK7uby2ub60lpyllaFxrsnEwL2/ubOusry6rru0s6Wqpqy6vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybWBkYlxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fqoh8dYygmWBUQ1hVR2FqVk9FSmCNoKyvtrq1tLKsvLm4tbjBvYuYsKGlcqXLwr+5urWupayzsaaysKidoJ6krba0wba1s6WnqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8cHZzb2ReaFldXlNPTkI/SkNBS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7WRgniIj29OSj9kWUJOd4CUak5BXYGwtbO1srSvrLu6uLa5v8V1g6qemWOpv7i1srGtrZ+kp6airqaclZiXmZ6orbirqqqepKikq66vp7Crr7GxrbGurq+5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2dG12amxdXGtVXlxQTkhER01CR05HODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHtYRkFOh1lKSlh3jYFjQVOjubO0srCxrbC5uLa7t7q8j6Gyq6NyrLCpq62ro6ignZ2lmoWflJCUlo6Wnaeto6Kjn6GmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWl1dG9lVWJkWF1ST01JQElSRE5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmZmZVpTkBSeHFQSUlLZ5yBWUVSrruxrLOvrqyttraytLWuqKafmpudnqaonqCoqZ+hp5afkVWBnpGMjpSLlZmip5+foaKhpaWco6OgnqWgpKylpqiloqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqaSpq6aprKumoYh4g3x2f3pjeG1uXVFpVVBPR1BNTUNQUkE/Oz40Ojo1Ozo9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3Cq6W+aUVSnYJRV0lKYEpUjmBjYoCutaqytK6qq6+wsrOtpZ2Rl5OPl6CfoaCco6SfnqiUo1VWh5WPi4yUkJaaoKeen5+go6WonJ+goZyhn6Oop5ynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJaTj4+SkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOfnaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fIB1dn1ubHtkaVZTZE5KSEdPU05LTkg8RUA9MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutra6ubq3t7uuqKChqaCqxr/LoVBBcp53T25LS2NmdXNgWl5wkLGvrrO1qqasrKObmZSNkZWXmJicn6KinJ2knpqkmpM6ZISNjIuOl5SZnqKpnaGgnKanq6KfoKefnZ+jpqieo6afqp2qraqup6iwpaOkpqespqKlopuZnq+orrKrpquqoJuYmJiVk5aak5WWmpabl5iYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJfIB+d3l8ZXl5YWJTVmFJSUtMU1VKU1FNOT9BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMfHjldTSWWjW2V+b3JdUWtjW2RfXWuPtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXoqOAPWSAgXt5f5SYnaOjp56mq5+nrq6qpqKxo5qjpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuVlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbWVcU1taTVJLT09WTVRNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6rpI16VWlydnVwY3Z2WFdjYGNnWVhXZq2urK+nn56ioJaQk5ugnJmXkpOfnKGjmp6blp6gg2pjZnB6eHV+jJumqaultbKfrbS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7W4s7itsrSkoJ2loKyhoaKhoJqZlpafm5uYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dmp3dV5tW1JhSVJWSEZWV0tDTUg9S0k4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqK6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuioaCkgG6CcGBjWExbU1pNTFBYUkhNTUiYrKqppaCfmpKRlJiYlpaWjIiLjpSdnJ2cnpadnrarf2d/hn11eXuBnbSus8GYqbe4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwbe7tquusbm3vK+zsLXBvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaegn5+oqKWln52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21oblxYXENXTkpHTUhDRk49Pkw+NDw6Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqamUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnYpiV15lYFdNUUc+Pj9DQz8+QlF4qa2pqqagnp+io52fnpudm5STlZSenpiUhZ2ZoLzVuZWFiIyFenFwbICpu8SckLnDvr/Cv7a6u8DDub27rK6nsa2xwra4wsbAyMrAyr+wubm9uMK+uLS7xsS9w7y4tKqzraqztK+zrqqvo56sqLeyraOwpqGjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhESlBJP0VCNEZIOTY8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5V9YF5lYFFHRDxDPkU8Pzk2Tn6qs6eko6KgnqWspp+YnZWSmp6ZlYyKhoiGeG2Hn7Pb1LyrnImGi4JyaF1dkM62c63HxcXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxszMzNLHvr/Aw77Hx8K4xMrJxMHHv7q0uru1u7ewtrKru7KvvLfAu7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5WUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtlWlxGTE1FRFRNRUJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEA/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p+c2phV05FPklZfG9iQj1cjq6soJmbnJ6emZeXmJONj5eXlI+NkIyCg4J2cnBtcJG7w8fEwLeWg4KEhHJgV4W5gIDQzMzMx8rFxczQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsfGysjPwMnRzcfGyMbCvcTBv7+/tb6zrb/Aw8PHxcjEr7+5sri9xMLBu7y8ta6np66ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXVzZWJncm9nXlpaRE9NQ0ZRSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6Oz5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOem52Wa2ZdVElEQD9Lhp6lmoSgsq2jnpyfmpiXlJOUl5GQkI2IhISJh4OAgYGAeXFyb2x7iGeOrba1oY59enpraGVxhF+61NHRzc3O0MTN1NXY0dfNxsfJzMPFys/K0tfS19LV1tPUyMzHzM3K083O083GycrKwsfMx8nJxr/Ds7PIxcvLy8/Hyr++v73Bx8XMzMnJwMPArrCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZVZYUkROR0BJUUM+Qj06MjJBPEU8Nzg8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnGNTTEpEQz9DUq7RvbKvppycnKCkoZ2alJSVlIp9eXFsZWJocnBye4WKgHVwbXFxcHlRWXyYpKOWfm9qY2ZqZl2T2NHS09TSz9HD0NPW2NXV0svJztDLxs3SytLV19nW2NPW2M3Sys/RzM/RzdPQwMnIy8TMzczPz8bHyLbAy8DSzczQx8rJwMTDyM/N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYWVyY11SXEpLR0FGSUo/O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpaWgoqJbSUBBREFGUXayr6aalJefnJqgoJ6bnZqViXdpZGFfX19fXl9fXWFsdXNwcG5scW91gGNad5KbmYVpYV9jaWN5zNTNz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ19fY0tjS19nV1szPz8nN0szO0cDHxMnHz87R0dLIzM3Ay83G1M/Mz8nFy8fHyczL1NTR1c/SzNPCucWxpai1rqibqKulnbKosLOsrJOPk46Iio6Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUWBKSkNFQ1NOPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ6lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6up6qooaOsZ0M4PT5EWIKqqJ+XlZeZmpyfnZibnZN9cWVjYl9fYV9eYWBeYWBfYGVtcHBta25xcnZ8YF2AlJiKZ1lZXm11l8fUzsvSzdXU0crPzNPW0tHWzc/V1dHF0dPK0NTV1s7T0djY2NfLyM7Eys/NyszAycHJys7P0MzQzs7Mz9DIzNDRy87Lw8rIys3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO/u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSUZGRE1ZRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD85ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+ZpaegoKOnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksnxIRkI7Vo2hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYF5fX15cYm1xbm5xcXJxd3dbZ4ePimJVWWqCkZ2zzc7EzcrS0s7GzszN1MvO0s3L19bQzNHUy8zQ0dPKztHV0tXWysDKwsbNw8jKw83ExsnLy8/Lzs3RztTMx8nQzcnHy8bHwsbKzM7R0cfQz87OzNDFx8G4ub3Dwr3DubKyvrC7w8S1qpiloZiWkZWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTElRUUI7RD87Njg6ODo6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9wd4+ajYyXlZCTkZGVlpWQi3xlYmJiYF1eYWNiYF9fYGFhYF9dW11ncXFwcXFtaW14aFV4g3xbVGl/kpufrsXGv8HEzs7HxcfNytHHys3NxtHSz83M1MrHys7Px8fP0svQz8W6xL/Gyr3Dx8nOxcPIwMfOyMTNy83QycXF0MnGwsbJxb/ByM3MzM/DyszJx8zQxcXIu8fDycnCz8G9vL+wwcnHub2qsbKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdJSEdJTVVHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KFoqqTjY2Wj4WDg4OBfYSEfnNfW15dXmBeYGNkY19dXF5fYGBfW1pcYWtycG1taGdpa3FfZW9qWFx3gpGXl6K3urq4u8jFwcPAw8jJyMjJx8HFy8XHys3JxMHKycHBy8/Ey8i/ucG8xsi+wMbPy8TAw7vKx8i7ycbFysG+wsvGxcS+xr69wcTGzMbFvL/Kw8XH0sXBycDKysbIxtDDw8bDrsTLx8PKt7+8urOprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdDR0RMREZTPzU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL64vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bV56fJ6RipKWhnqAhIV/dXh1cnBfWltdYGBiY2RkZWRgW1xeXV5dX1tZWlxibnFuaWZna2ludlxaWlxgc36GhoKSrq+xr67Aubq7ubjAwcHDvb25vL+5xMnFxsK9xsC3u8PIv8HJu7a7u8XDv7zCzsPGvr61wb7Eu73HvMO6tb3GxMLDt8C2tr+/vM3Evba6yLu/vszEwsbDxsnHycbQxsLMyLLHycPOzMDFw7+8srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRUJGSkE5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1q7e0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys/FycXHwbrFvayup2BjdoGSi4iLhHh/hoZ/fYN7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXWdycGtkY2lqanVwSE9cWWhzb2lkk6WmqqijtbG1s7Kys7u1vLC2r7OvsrvCu8HEvL+6tLK6vsC4yLi0vLbAwr24vcfBw7u1r7O1u7+0xbi7tay5vb7AvbG7trC3urPGvbevvL+1t7XFvb7DxsDExsbHzMW/xsa7x8u/z8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpHQkRBRUY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TFy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJpbZ2+IjoaIiXp4foWGdneBfHNoXV1dXV9gX2BkYV5jZWNfXlxbXlxdXlpbW1xfa29sZmNmaGdqeV9DUExcXFZSc6Ganqaimqepr6upq6izrbWvsaetpqyzu7q2w7m6ubCqtLm7s8K5r8Cxvby7tbvHucO3raqosLLAtri9sLGosrO1u7yrrranrrauvLKwqriwrruuu7i7wMG+usO/xsPFwLzGwcfKuMXHxb/Hw8O5xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMTE1KRUFDP0ZBOjo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTPx83Bwsa/xMTDw8rCycq/wLzCurO1tcOuqrGTW2l+koiOj3t4fYmFeXuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWlpaXWNtbWZkZGRlZ2x4UT1FTFhfWpellp2fm5WXoaeroqahqqmrqq+ipZ6qrbW2sb24r7evqK24tLO8t7O8sLi5tbK8wbLArqWpo6uxs7OovaqrqKusrrW0pqmuoaWwqbOmp6iupqi3rLGzt7q7u7K8vr6+xL+1wcDHyLe+v8W3xcPAu7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlNTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8LLvrvJtr3DvrrKt8HDwrW2vLaxr7W8ramrk2RtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1hXWVxfZWpkYmNhZGRobnNGRGSBcF2UmYecrpaSjJyepqGhn6SlpqWsn5ybpKWssrC2tqewq6eqtKuzubC1ta62ubOwurqxtqSgpKCmsaisqbmqpaenqKezraCnp5+cpaasn5+npKGhsa2trLK1s7Swtby2u8HAsru+w8GxubnCs8C9wLW4vL2+vMLHxMPEv8DEoIR5cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs8ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbq9tqCelZ2gprq2q7Ozu7PEz8nLwsW4t8fAzL+4yre7xbizxbizv8CstryyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBeXFtcXFhZWFhYVlhaXV5jYmBjY2NiZWVsa1l7eV9UXEReYpOkkYeYnZ6km52eoqSipp2aopueqq6ssbSjqKmpq6yktListq+ts7Wvs7WvsKqfnp+korKlpqq4raKmpp+orauZn6CfmZ2fpZqZo5ycnrCprKiqq6ytsLO5r7i5urC2vLu6q7OyubO9tLeysba1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTYzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uci4uL+3ssK0sbu7rLq6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFdXV1dXWFdaXWFiY2NiYmNkZW9mWVhIMiEiXFhfjpSJlp2epZyZm6OloaSbnqCamK2tra6xoKSiraunobWwsbGsqa+zqLqzp7ahop+co6Gto6Kqtqqio6aepqajlpmdl5manaCal52cnZytoayoo6Smrauzs6q1sLKrsrm0r6qvsrKzt7Ouqa2usriwura6vb+3s7GUhnp2Zl9mX1tZVlNaVUtbUUxKRUhLSUM9P0JCQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+ynaWjmKWxw7W2va20uMLMyMbAxbbBwMfOt8DDvbO5ubK/trG5u62yta+fmqOqoZSaj3h/g4R/eG9xdHFoZWRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVVdgYmNhYWJgYGRmcVE6MyEaK2iUj3iRjJGbmZ2alJ+fqKKdnqecmpmqpq6wqpuio7epoaCuqLWqpqeusaS4sKS3oKOcmZmqpqGarbmwo6GknKKgoJOVoZSWlpyZmJaXnJWfqZ6qpKKeo6qqsa2otKyqp62zsKWrrrOxr7Cvr6eoqLKusrSwvLS6uK6jlIJ6d2VfYVdZWFNSVEtNXkxQTEdITUxFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0usKxvre9rZ2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwsLGqnJqhqZWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1ZVWmJiYGBhX19gYmlpPTMtMk5/jZOMk46PlpuYnJOdnaWkoqWmnpyepZ+qrqWfoaO2p6GhoqmzoqWopbCmsa6rtZ+hnZaVqaGilK2xsZ+jo56emJyTjKCUkZOYmJKXmJiXnqebp6KimqSlpaukpbCnpaOrrK2mqa6vr6uoqqqzpqarr7Sxrry2sa+vn5J7eHNlYlxbXVhOTFFIUmFNVlBPSk5PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sba9sLuxt6yepaasuLu8wcW6srm1xMnJwMLGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZn6OLinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVlJUUlRfX11eX1xdXWBha1g0P010hIqJjJKMjpGelZ2UmZ2joKuko6Oio6GbqaqjmZ2ksamhoJ2lqp6oop+trKqprq2ioqKVmKKanJCsqbCcn6Kfn5eZk4qdkY2SlJaQmJiTnKGjnKWhopWgoqSlm6OrpaKkqqSrraWusqmmpaamtaaqqK2ztbS5uq+qrJ6Mc3FwYVtXVlZSR1FPSFpcT1JKVEtTTEVHSkM4Ozs9PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Gtnainr7m5s8DIurXAr8XIzLrByczItcm8sb7Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RVVlVUVVVSU05QWV1bW1xcXF1cX2NoQFJxh3uFhoWPioyMl5aemJiepaappqqmqKWimKSto5SYpK6poJyZm6CfrpmcqrOfpaafo6OhlJSblpaSqamtm5yfoaCblJCMmI2MkY2SjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq7Ckrrilo6SjrK2qqKuvtLeyvbWzq66YhXV0aVtZWVNVUkZYTFFbWE1VT1BMUVJJT0lCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njg6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7euqKivrpupqKy3tqy8yru2v6zMxsW4wM7Px7PEu7e7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FYWVlZXFtaW11eZXF5dn9zgIWBiYSPi5KUnZuXnKinpKyqp6+jppieq5+UlKOopp2XkY+anq6WmKeqmJ+dlKWgnpKRkpGTlaiqpZqYmZ6elo6Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6Wlp6mooLCwprG9p5+jrLSqrqevtLC5tcCxrrCrkX5ydGNWVFVOUkpHVlBSUkxMWE5LTE9TR05LQUNGRUM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxt7i8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5xam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRRTU5NUldYWVhYV1pbW2BqdGxyaXuCfIZ/j4SPjpOXlZqlmJ2opaSqnaaXnqSakY6eopqXl4aFkpukj5WinJWWlYeimpuTjI6KkJqlp5uVlZeckZOIlI6LgYyNgJCLkpKSoZqgopaUmZiVoqaajZmkp6mnoaC0sqizuKGdo7asqq6ksrKmtbu0q6yxoop6c25eTlFRTU9ETk5OUEtGTk5KSk5OUUhNSkFITElIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKqloKmmpLOqorLEtbWys8bFt7rDyszGs626vbS4wK+uqbCepq67r62gmpuelZWIfIRuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0tTV1dWV1dXVlpdYWlkaGN2fHZ+d4l+iIWPjY+anYyXmqKgopiklaCalIyGmJqLc42Dfo6XloaSmpCTjo17mY+cjIKJgIqYoKOekJOYloWOgpR+fnSKjnqQiJOQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmKa4pqWwobGunLC7qqmvqZmEeHRkVk1SUFBNQ1NOTFBNQlBRSElOU05JSkpFS01HS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY2Ojg3QTd4t6GjtKimpaijpaWmpqayp6a0wbivtLDJxLi5wM7GvrOsusGsrcStqKKmkp2mt62joJGWl5KQfnh/ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpHTlNTU1RUU1VZWl1oX2NgcXhxa0lTbYt9kYKImJOIkY6el5yVlZWTjZWJf5OJXztWb3yMlIqAjJKMj4aGcouEloF5gXuGlJ2Vg5aOkI+Dhn2TeHFwho19iYGQjpCXmpmTi5CKnYifmIeIlp6aoaCXp66prampnpats6KlrZmtrJins6OpraOTf3RuYFtOU1JXTERUSlBNTEZOT0lFTFFNS1BKSU5QR0pKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebegoq2hpqaqoKapp6OqsKintMK5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpmHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtIRkhOUVFMT1JUVVhZYGVeW211aUo9O3ySjYt5hJCJgoeKmYyVlImRhoSUhXiIf2BKUW54i5KEfoSMi4R/f21+f5N3dXZ4hI2acFGNiIqGfH55lHZnd4aIfoqIlYuOkZOXjISKiJSFm42ChZKblp6dlKSiqKmlpJ6bsKqhpKSRpqqWoamcoaaninduZl5cSFFRU01JVU1TSUxLT0lIRkpOTE1VS1FSUEdKRD03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+sqrW8tri3s8G7tqe5yLi2qKi1tqqyvKeelY5/iZSplpWLf46Eg354cW9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlOUVNTVVprdGRocWBfVU+Mg5CEcHqCfXmCipGAkZmLj3qFjn90f3hybnVwdI6OgXp+iquFentodnuOcHJteIGLjZJ4e4B7gHdzcpJ4aHWFhISFfJWKiIqNi4B/hIuNgJSEfIGPmJSclpGfnameoKGdoKmln52YjaekkqCflp6fpIFzaWJdXUpXUFJIS1hST0pNTFJKSkpMUEhMUU1SVU1GSUI8Nzg7OTk+PTo7PDk4QD86Oj48Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6Rf3eGeHx2cG9qWUtISUhHRUhIUFRUVFdXU1VVVVVWV1hXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE5RUVNWXnF6cGtcboaRlYyMd2N1fXN1fIaOe4KYkn9who57dnpua36tfHSQi396hpKAfH90ZnV8hmxvaHN8io2HgG16cX1xbXaPcWhxgX6OcESLhYKDhX93d3qMhn2Me3V9jpKPmIuSm5ujlpmdm52eoZyWjYulm46dl46WmJB4b25nY1tYWFVRSlNVVE9QTlBWS05LT09LUk9JT1BMRkQ9Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rqKmxr7GrvLiru764s6ynm7CnrJuPlpylqaWhmJqOhJJ5iY+Li3ZxfG11cWptalhLRkdFQUBDREhMTE1RUU9RU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFellKTk9RVFhdZG1pYn+fo758cHRfd3RreHWGjnh6ioRua4uReHN4aWp/gnGWkYyBfZV/SZKZbmd3foJtamRseYWQkoZrc2x8bnJ8hmltcH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6LipODlpaYmpCTlpaZl52WjIOJn5KLko2GkJeAcGpvb29ZVlhUUlJZT1JVVFJYVU1OSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYm5+krK+iraqota+urLS/q7zDv6aimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ1b3RscW1la2tZTkRGQ0A8Pj5BRkZHS0tLTE9SUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JWWlFYWlqggV2VY210YXpsanx3iIZ0gIWEc2uYkHNye2lqnY5MeYWTiYSNZjF2h3JrfX2DdGZldX+EhIWAZmlsdWtwgHxocXF8bpONj3t0fn1xcW91bYN/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW05QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo6VmYuOhXqEkJiVjZCMkIdxh4J0h4yGenBzcW9wZHBnX1RGSUM+PDs5Oj9AQURDRUdJS09RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUtBSVFIYKqunGx1cmh5aW5/foJ/eIKEhHhxn5Nzd4BydJOHNXCdqJ2NoKGEooV2cIZ7hnx0jK6NiYFoZ2JqbnJtcIN1aW9YdXCOm5F2bX97fW5ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2OfHNycW1gXF1eXFpZYV9STltaWFdMSEpGSUg/Q0FCSD9DRD07Ojc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTAxMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpGBkoiVkZ2kp56vlaW0qa6wrsGyu8HFlo+MlI+AiHxugZCSiYOKh4+GdYKEbJWIiHx1eHhteG53ZGpeSVBHPT83NDQ5Ozo7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01RUkNIgG96d3ZxemlzhIV5e4KBfYp8dKCYeX2FgISZhJqcYYaqnpyLg5COeneIfomIjnSLl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVnaGBbXF5TXGdeV1FUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTQyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2eppGgqqCxqK/AsrvEupaOkZOHeoZ2a3+LkYN9ioOOjHiDgHOghIp9fYF/cIF+emh3a1JYTEBFMjExMzc2Njg4Ojw+QUVGRkdKS01PUVJTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklLTU9RS0pUW1dRSWR9g3aEdXdueYuId3qGhH2UhXafmIeGjZGUpYysqUiGra+uioGAlIuCi4KEkqmIgZiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZIbIB3cnl2aG1rX3Z9g4h/h4WLeZScm4mLiJF/enWKdnx4bW93foF1dXNtXF5eXGNkWGdlXFVQUFdZUERMS0ZPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2Nzc4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5COlZeSlqCdrKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9GQz84MCwjh1s/Pzg0Ll2WcHOjVUZJS0xNT1dgWG1YWlxlho2Aj3yAfYGNj3yDho5/mJOAn6CXlJqZpa2Smbuxp7vHw6eLjKGljpOJgZF8cYOen5Gdf3eFhYuQh5BpaHCEgXSMh4SKcoaCd4iAe3aEfG11dWZ/lI6GiIiHiIegqqKWiY6Xf3qBiHp5b2dreH58gHVsZV5bW15qXmJnYFpPTE5YUlFIUEpETkdDSkRDQUREQjw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneCen+Mf4GRjoqam6Sdoaymqq6wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOhICBjIqCiY2Df4p/bHBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlRSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISkxLSk1WX2F8ZWVqcZWUiJWOj4eKi5aFkI2biZ6ekKGppKKqk6i1oafBwq3Hr3i5lJp8jaGemYSThYKOoZ+UmZGFioWPmpGWbHB1ioyClYyNjnePhHFthYGKlpGChYhxiKCWhpGJjY+WpLSom4yUooOHkoN9f2tqanyCg4N1Y19lYFtobF5sbF5XS0hOUlFOTExGSVBDRE5GQkNFRkM9Ojk2PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXmAkoiRkn2KhJiSkIOAgIuMiYaQh4SJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDc1Mjw/UjVISEhMS01OUl5sh3pxfnmYlpWioJ2WnZOfkpqcppymqZ2nq6iptJarvqu2x8i3yNDPvpugcGmrqZ+Ek5KFnKCam5mmkpGIlaObm3h6fpSYk6KSl5eBlJ57d5WSqrKIjJeffJSdm42RlZijoaW1r5yQmKeHlo+NgIhsc3N9gX5zamFeYmBiaGRgaGdcUkVKS1BPSUlMRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Ljo18ioaPkI6BgoCJi4qFkoWDhomBgId3XmJQNDYwLTIvLC4wLy4vLi4wMDE1PkFBTVFSU1FSU1VSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUlNT1FZbIONdZCGnKCjr7m0oKqpqqWmsqmutLCwrLqwsr2bssOrusnLuMO/t6WisLOsraqji5aYhKWmoKOXgaaZjaKqqKWIhZSkoaCroaSoj5yxi5Wjpre6m6Cir5KinKGdj6Ohq66rsrShlKSpiJmIkomVeXp+hoFpYmldZmNfZWReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2luWHqEdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GOg4SBi4WGiJKGgoWJh4iHh3FuYUBFNjQ8My8xMTAtLCstMC4tND9DQU1VUFJTVVVWVU5bUEdHRDw+PkZIQ0VBNzs8NUM7PUZLSUZIUU5QV4CQnYKqn62lrLzEwKeww7Wqsb6xtry0vbPAtbu6orjFqLXJx7W9uLSoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqiutruyuqywtaKxrLG1u7a0rrSfpqehppqpr6yxuLe4ppq1qIykjpCSn4Z4goV4W2NlV2djYmRhYWdgW1RKRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiYld5dXGBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeEgY5/gYmPhn+GiIaKh5B6eG5dV0BFTjw2OjQ1QUI3NjQvLzZDSEJRW09RVVdVXFdQX1VJS0pBPz5HS0ZFRDs+QDdENz9CSkpFRlZTUF6NoaqhrrC9sLO8yca0ucO8srK/tbbAs76vtnSws6W6xKSvxrmws7Gzp6S1tqqxoKKXm6KSpbCupq2rp6SYoa20u6Kosrq1vL/Mv8XFvb2zwbe6t762ure5rKuwpK+prb2wvLrBwauYuaeUrY6Xl6mIfoN+bVhkYllsZmtmWFxjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpwfo6DgI6EbnpzeIdiuaGZo4mUlJaSlJONj5aRh4Z7hoGNlYqAhIGKenyKh4Z8ioKBi4OVfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNRUllYWmdZVGBfTFNQRUE/SUpIRUVBQEQ8RTZCPkhHSkxTWlRdkqy0sri1xbu2usfLubrAu7a0urm2vbO5scVgdLGksZqeqr2ppairqqOisrWgq6iflZafmaCupaempZ+klKOnsbSosrO9tsG+08nJ08bDxczCysPAvr2+u7y3tK+4t7bDucW9wsevnripoauNpKe1iIGBdGFjY19ZY2BqZ1NYYFZSVUlFRU5LQT5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCstLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaKfoN/gnh7i4OHe4t5gYqCl350fXprZnB1WV5cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFRZVUpEQktLSUZISEhIQkk6RD9IS1NUVVxaW5K2vra7tMO8uLfIybm1ubW3uLK2tLOutbWYZHWnnK1wXqKsnJigopuknqqllJ+fkJOOlpmYqJ+moJ6amYOknq2lqrCtuLC9udTRz9fQyszSzM/Oysa/vsLJvcG8wcDExMXKvsfNsqO6sLSumqu3u5iAfG1fYl5aX2NaZGNRW2BTUEtDQUVGRTxARj5BSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVtZaF9vlpKQlG5sb3R1h7SsoaGfi5mcmYyNlZGakYWKin6IhoyQi4h8gYNze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWdqamlgZmlpbFptc5atpLyIhmdbb2ddWlpUSEtOUEpLUEtTUUlMQUpGSk9fXmFmaWGXtcWvt7G5u7Oww8W0r7iwsLursrCmqrerjLWnnZqnmk2ZnYyOn5aRppillYqTk4mQiY+RkZ2boZealZeHn5qnm6yvqLCotLTU1NTW08zQ09XN0s/MxcLJ0L7JycrJ0cfMzcLP0bevw7zDuaS1ucGihHFlXl9fWmJZWmdaUV1YT1BCQkhFQkg7QUM+QUc/P0E3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJncW95eYOhqp6ml4yam5eLjZWRmo59iYuEjYqKipCHfISCcH+HgYZ7h3KDkouOfXF4dWxxeH5xem14c21pgXBtY2ltcHhpd3x+y7/B36dtY3huY1tiYEpQUlVOWV5PXVxOUE5UUFRUXG5tdoJxlq23q7Klr7Spq7u/sKq0pqS4pquuoKu0o46wrZqXmIyPkpGEjpuBjaaRnImDi4SKiYSLhJSVmJeUm5Gcl5man5+rrKWooqytz9LV0s7M09TUz9TRzsfD1NHHzdLT09fM0dHE0tbFwc7Hx8KovbfOnnxxaGBlX1hiU19bUFFUUU9IPkBGQUJFPEBBPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxVUU1OWnWGhYp3bHdwfX5/oZ6eoYyMmJOTi4ySj5WFeYWPkI2KioiQhn6Ce3J+gICHeoR1hZOQiH9vdnJrc317d3tzgnhya4BzcmlvcXp5cXq+y5p+jLKEdnKEdmhha11DWlpbVmVjWGRqU1hcXWBjXWN3en2LgZipo6SgnqCnpaqvuKqls6KhraGjraGnsZ+IppqTkpGJkI6IgZOJapSijJmEgYZ+kYODk5eti5WNlZmOhpKRnpeosKKhoaWkqcnNz8jCzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy411cWViYVpWWlVcUUtHSkpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7T0xGSlhwgHV9aHN4coKJgJ2VnZSFi5WJjomIjYaOf3iDk5iKjIeIi4h+gndze32Ch3d/eoaRlX+DbndwbXV/dXh9dIV8eWyHdnRufXaEdHh7nbWMO0GLxaV+jHxpZVdJQ2ZjZWNnamNtd1teZmhrbmhugIKHkYucnaCckJeYnqOjpbGjpLKfoaWdoKigo7GchZ6SkZGPioyKhoOPhH+cm4yNgoSFeZR/gqmVo4yRiZeSi36Yi5uSq7OYm5yonKe+w8a5tsbO0tHS0MzSy8jUztDV2tfX2NTZ2M3Y287J2drR1b7Ky7V6eXBnX1xUV1JdV0ZHSklFRT06NzpAQEI6RkQ/RENBREI7Pzs7N0RDNzU2NTU7MDY3OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhImBh3x4hZeWiI6Dh4WHeoR4cXp7g4V1eYWOjZx5i3B8b296f3F7gHGDh4Fujnp1d318gnR+fIaHr3NYqcK2jZGCcG1iPV5ocnBxcG54doFlaG9ydXhxeouGjZORmpWflYeLk5ugmp2pnqGsm6GamJ6lnp+rmYuai5CRjYR8h4eDhYuOn5mTiISHfmyZeoSYhoiTjI2UjIZ8nImUkK6qlJaYn5mnr7a9qa2+x8zJyczL0MnD0srU19nX2NfV29fT2dvV0Nra0dbI1MuWfH1ral1cUVVUYUlDRklIPkE+PTc6PT87PUc9P0FBQURBPj46ODdEQjc1NTQ3OS41NTY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEPkNHUmpebWRiZmt2gIhxkZCagHqAjX6CgoGDfoN7fISYjYeLfoWGgHeCeW57e4aBdHmSno6gdo51gnN1gX1zgIRvgZCCb5KEdXyBhXp2hnuJt8Wkwcm4gZabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJSOl5CDiY+WmZaVpZyXn5Wek5GXop2Zq5WQkIqMkYKMhIiIgYWPkZ2bmYmGjIGFmHqIiZ+XkIiNiouCfaGJkYy8oZiTmJmdqaamrp+otr/AwbnHys7Oxc3J0dbV1dnV19vU19na29fb2tnYztvGiH18aWtnYVZZV1dOTEVOQzs9PTw4Ojs9OT1ANj0/QDw/PTw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1bU1VYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bIqNknd2eop7foB+f3yEen6CkYmEhXqEh3t1fXRtfH2GfnN+kp6RnoORe4Z+eI9+eIqKboKagHSZhn6BiYR7fpB6j6mOj8OhvYucpJ19iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYiKkJKTjZyZkpOQlo2LlZ+clKCUkY2Nj4t+j46NioOIkpaanp6IjJWSnZGBi3+lmYiEjYKFhIGlhoqMuJidkZWWoqihnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuHt8em5raFliXVRQT0lETEI8PD45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw6RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PUNRU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97h3p8e4uGgn10g4V5c3pzbYB+hH53hZuim52Ukn+MiH+Yh4Cbkm6IqIV6oYt8kY2DiIScfZqQioyjoqCQpK+fi5CLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlIyGiIuSkouTk5OOi4+Kh5aanI+UlpCKkZOGgIuIkYyKiZyWmKKihpOdlqCKiYiNm5CDiI5/g4eGpIWMkbOYnZKUl6GhnpqSnJ6osritpr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aBygHdqaF9fWlVZWUNBSUM/Pj46NDk6Ozc6OzozOzs/PT43Ozk6MTpHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOjg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNiem1hfpKDb213i3h5f3qBfIZ8e3eGhH9zcIWCenV3dnSEgoR+f5KmpJ+lopeKnZCUl4uKqJdzirKNhKiShJmThZmMopWfmJKIm56jkqmwn5CUkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNyJWOhoeIj5KMjJKTiYWKiYWWmZqPj5SThpSXg3+Pi5mHjZCql5aiooiZnpaaiI6Gl5eJhI6MgX+Hj6SIjpOompeTl5mhmZ+Zk52bo7O0pqO8wb7HxcXJyMnCy9PNzdSp0tHW1tbY2tTS2s6FdYNrZmBgX1FLVlxCQkdDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI6STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfHxtfoh4en56gYGCfnZ2gIJ7bG6Lfnl8d3h8hIaLfoujtKikq7OhlqegpaSWla+ig5C4lZKzmo2hoIykm6+ipJ2YkKeXqZmtsKSXlJWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKcmIWIiI2Ui4uTj4eAhoeIkpiUjIqTk4aUmIaEkZCcc5CYspWWo6GInJmTj4qQipaaiYqWjYZ9jJifipCQnJqZk5mYoJShnZWfm6GxraOkt76zxcfEvcPDv8bOysnSp8/M09HQ1tjSz9i8dX15YGJXYlhSSUtPRUJDRDU+Ozc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj8/Nzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OklFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNXFxZSmhhO0iEi3p6bYWGeXyEeICFgX1weHx9fG9zjXp9gXt4houJhoSSqLytqbO9sKWus7Opo6KwrYqatZ2juaWVraSXqa23pqSjn5mpmKqkr7GqmpmclJWRmKCXmru7rcqhaba3qrCVmJ6iq5KXvaReqrKCiYmMlIaQfI6OfYOGjo+UlIiHkpaLj5WNi4yXmJGbmbSWlaqdi5yUko2QkouYmoqSnY+Lipafoo2VjZeZnZOcmJ6UoaCUnJ2mrqiipLO4q8LIxLa6vbzFyMjC0KHGyc3NxNfW0MrTo3N9bF9cVWFTUUhEPjxDQUE4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGZIYWBicEpAi4l/gHKGh3yBiXWCioN+bX18fH5wd4d3jYGHe42QjIaMmqvCwLC9xryztMG8tKyrs7aMqLKtrb2rm7ujqK25uKumpqKipKOqr7Kxqp2cpJibmJieoqalk6O5r6i/vKytsrmlo6d9iIacrb2wgouLipCDj4ORjnqBh5CNjpyIiI+XjYqUl5SQmpabp5qxmpGrnY6aj5KOlZCPlZaOkKCQiJWcpKyUlo+UnJ6UoJ2bmJ+glZufqKekoqSws6bAxsOwsLu2xcXDv82nx8PHw7zV0MzEyop2dWRfXWJdT0xDTEBFRz5BP0I8OjQ+QT09NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQjVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFSkhOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxoRl9pZ1tdXJOMjIh7h4uGg4x1hpCKgW5+e4F+cX6BepR6kpSUmJGTlai0x8nAwszCw7nHvLqvq7m7l7K2urLAr6XAo6uwvLyqrqujo56nrK+1samboKqcopyWn7C0p4yjurq1wburqJyypKSolISOqcTEpIKLjoeIhIaVlIx6g4yRjpGhjIyUkY6Hl6CYk5mVlqWgrp2MqpyOlo+SkZWVjZCUkY6hk4aXn6Cyn5SblKChmaSfmqCboJSZn6ekpqekr62lv8PCrqi3tcnDvrbOssS+w7uz0cnHwbV3e29eW19tVE5JRE1LS0pAQT1CRDw1QUQ7OjM9OEIzMzIyNjNBMTVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qajZaKi4iSj4aJeYaTkIFygHuMf3eHgoGPeY2hlqiampi7vsnIysLSycrCzb3Bs628v6e6v728xLitwamss7y9qrCqpKWjrK60rra1oJ+un6aimaO0vamcqLzBo7a2r6uTsKyqrJaGmqqnpZGCjJKklYmAdYmReYWNkZCen5KPlIuPi5OjmZeblJOhnqmfkaWajI+PkJWWiHyOlZKRopqVoKKctaaQoJelpKOln56mmJ6Vl5ylo6ioorKtqLvAxK+ls7fMwLquw7O7vcG5rcLCwr+ZcHtjW1lfXkxNTktHRENIQkFBREs6NERIOjs0PDdGLjEyMzUyQTI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bElfWGFaZGVYno+djpeOnpKJin+In5KEeIV/lH5/kIiJkICWoZqup6OYw77JxMjG083Ozcu8wrewur20vcu7w8G2t7yttMC5vK6vqKGpqLaurqmyt5qerKKoop2rt7eqpa++xLG9ubOnqrSzra2WlaWtqKCRjpKxxaeVjX2RlX2HkZiPqpmXk5OPk5SSpZ2TnZmToKGhnJifmIuMj5CeiFqPlpeSlqSZZpmjnrOllqKWrK2sp5yfppeYlpiVoaOopp+1q6m6u8O0prS1y8G4qrass7u4rqi4ury3hG9wXFpWV1BHTFROSz9BSERESEZGODVGTTs+Nz5BSy4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZmRNRqaUnJahl6iWjJCDh6WSiIGHgpuDg5WQkJSOmqKfr76uoce+xsXIx87Oz9LKvru2sbu7vL/PtcS9t7m3s7K2s7izrKecq6y5q6mor6+Xo66lqKSltcGwq620vsK5wLmzp7i0t7KvlaStsK+li5OUoI1zwZl9l5mEjpaai7GVmpmVkpKZmKWjlZ+alZmonJuhoJmKjI+WnWBKlpyalJmkl1SWsJ+vnJ+lla+vraaboaaUk5mYjp2fpqGZtKmqs7y8u6uwssfAuKasq62xsaOhsrK0pXNxZ15cUFJNRlFRUFE7SEtIRkdBQz05S1Q/QTo9RU0vNzUzNDpCNDROV048SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzVFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTdGJWRkirl5mfoaiumJCXh4qnlo2IkoWfh4Sdl46eoJqjpLXJtKnHvMPEycvJyMzOxr66s6+6uMDBzbXIusG5tbqyr6+ztKeknKu0tauqp62smaSupqWprLq/qKu3t77BwL63srLDsLe9rKOutK26poibl6Wadb6fhJidjpKYmouulqGcm5eUmp6gqZ6noJiZqZmhp52XkI2RnYNtdZOimpWcop+QrrKiq5Wpqpiqr6aloaWqkpKZnImVnKKelrCnqaq6t76zsq6+ubago6eopaacnK2pqY1maGNgU01NR0lPSlVMPUxFTUlKQENEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQzo5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYU1WSH5lXkhGrJScoZ+7rpiUnouTqpuRkZOIqo2Hop6Mo6yUo6S2x720wrvDwsjJxcLOyMK9ubKvubXAw8q2xrLBvLW7rKmtrLCjo5mqtbumqqesqp2or6ikq6u+vKitvLS3vsa8trW4wLC9v7Optbesv6WPopeQoZ+8nomaoJmXnZ2Pt56onKWjmpugmqelsqGanaWcp6mdmJSPlJuLlomMpKGUnKKfoLWwpaaUsauaq62fn6WkqpKWlaCEkJ6fnJappaGhtLS6tq2otbKynpyjpZqXlZmqoZ54Y19hX0xJRkhOUUlORUZGQlFKSEBER0FWU0RIPEFHUTE7Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6fw6ybl6SXmaiblZqajqqWlaimla2smaKrt8XCvL+3wcLAyMS/zca7vrmysLm0vsPItcCwvLa6t6ekq6utoaGbq6vEoqWorKaeq6+soqqovrimrb6wt7fGt7S4uL6xvsC2tLK1sL6jlqOVk5qTrZ+QoaGkoqOekL6kqJ2oq5ycoJumn72imKSeoqmroJ2VjZWek56HjoSNk56koJ22rKadl7OnmrCooJyrn6KNmpWfhI6hmpySpaSamKuxtbGqpaqtrJyYoKCSj5CWqZ+UaWVcYl5QSkhLT0xIRURJQD1PSEA7RklIW1JQSz1ITlU0QkY4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLS0wTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE6im6ObnsWroJ6rnZytn5Ginpakn6aqq5e2saOps7bFwr3AtsDCvMnCv8rItri1tLG0tLfCxre/sbm1uragp6yrrJ6foKWkwaWhqq2gpKmtsKKnqL21pbG7t7a1w7Kyt7q+ssPAuLittLW1o52klJGToK2fmKGdqKiqoprCrKidq62amp2YpqC9oZ2kmKurrKahmY2an5KeiI5Yf5afpqGguaqnlJm3o5+zoqGcsJihj5qVnoKPoJeXjqKjlZClrrOrqaKipaSVlZyYi4+Sk6SfiWNnXGVhTUpLS09GRUFHSz49SUE5OUpKTl1RUUk9TFZdOUZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExQnqCgmJ7Dp6Sis6CcsqeSqqOfo56tqaydu7GprLWxyMPBw7PCw77HxL3Eyr2wsbausbWwwMW1urGxuratmqmwqaqbn6ahp8KtnK2xnKqirrGqpKi9t6a2u72vt8Ots7PCv7LGs7q3q7W2rqqippWVlKKroZ+fmaerr6+vu7Gln6mpmZiXk6KkuKCho5Kur6ukpZ6RoZ6UnY6QjZSdmqOfqLWnp42ZtZyjr5ugnLCRoZWYlZuAkqKWkI6foJOLpqywpaeinaCekpKak4WLko2cn4BkaF1oZktKTEtTQUNASUc7O0Y+ODlOTVVfUlNKPk9eXj1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9nckA4PEiWd2VBNJ+knpqgwqejqbGgo7SplbGrpqKksqytqbuyrbC1tMa/xMS2v8S+ysW2wMnCtay1qbC5rMDEtLivrba6pZmrsqyqmKGnmK27tJyosJutn661sqequ7OnubO4srjAqreyw720xae+rq23tamnrKGWlpGlpKGhl5ekrretsbS2n56opJmTlJOjoLejpKWVrrGxpamloZ6bmZqVmKign5minq+zoqaNmK+apayYm5+nk56QlZmahpeglY2QnZ6Ui6mpqqKnoZqelo2PmZCChpWJlZ96ZWpdbGtOUU5OVD1DQU5DOzpJPzc3UU5dX1JWUUJXYF1CSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWpWQ1dGjHlmQzukpJygpb+mqK6uoKm1qp23r6ujqrS2sLC4t7C3uLfEvcPHvbzDwsfBusHGwbqqtqWtu63Bw7i4qq2yvKOVrbGtspemqJGquaqhp7Cdq6CvtLOqqre1rLuss7K5t6y4sMG6vb+mw6qwtq6pq6umnZiYqqGhoJGXoLCvs6uwuJmbqZ+ZlpKXpqC3qaWioq+xs6uxp6ugnKCfm56lnaGYnaO0sJyfkZSmmqGpnJakopiajJaZlJaXnpSJkpuZlI6pqaego5yZm5OHj5mLfo2Xho+bbGltYm5uWFFRWlRBQ0RVQDs7SEA3OlhQZF5RV1dFWV9eTkxTT19MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOG19aFxWOol7Y0M9qJ+coam8oKqvqqOxt6mltLKroa21va+zuLy7vbe2wMK/ycS5xMPAwLnFvcG4r7aoq7eyvL+/tKqvsrifl6ytqK6YqamOp7ufpa2znquisbCzrKq2s7W8rbCxtaywtbLAusW2q7yvsbesraqjsaWepaieo5aPmJ+yqrOpqrKZnaebmpSMoKaktK6noaysrbGns6uxqaObnqiknpWhmpyotqmYmpKSn5mfoaCSraGbmoiXmYydmp6Ui4+Xl5qXp6WjoJ6XlpaUgJCVhHuPk4SNl2dtcmhxc2BHWWZWRENNWERaOUhCNT5dUWhcT1pdR1teXk9NU1hkSktDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FWMTUxPWBWXzgpQzNZVVxnSzWMemZMQKWZn6SrtqOsqKWurbWpr7O5pqewt8a3sbe/wsK2tbrFvszFucPBusC6xbjBurO0rKq6uLu6vrWrr7G3mZioq6usnK6rj6u+nquvsaOqn7Gts66utbG5t6qtrrGntbCzurzJsqq1tbG0sK6moLOgmqisoKWVlpqZsaKtoKWvlqGkmpmSjaKlp7KpoaaxrKq1pa6wtK+jmZ2tp5uXnpuarLiimJORj5icoZmYla6hn5eDlpuOnpyal5GLlJOemaWjo6GZl5OSlnuMkYV7jYuDjJNsbnlvdn1iRmBqWklIWls9e0pHRTZBYlVpW01cYUtcXFpSU1NiYUxLRWBhYFBNSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1lUTEWalp+wqLGprKSjrq21qLezt6OstLfJu7W7u8C+tbS3w8DMx7vEvbe/v8G4wL2yva6ourm4t8K3rK6yupaXp6+sqKSyqZSvu6SssrKmp6OytLGysbWwt7OprquyprivtbPExbaptbWrsK6pp6K2np+msKCjlJuZlLCep5ufqY2pop6blZelpaS3p6Kws6unsKetr7SspJmhrKicnJ2dlaq5nJWPj4yYnaOYkZiopKGZhpWYkZ2cmJeWiJePl5uonaWhkpaSkJZ3hJGGfIaChI2NbnF4dnyAXUxlbFxKT2RdP2J7R0k4R2dXZltNXmJNWVlXVVhVaV1PUEhhXl9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGcyNydGYUxWJS1CLj1FTFE8M3JrTEVEkZmkraSsraqmo7Cysqq3sLWfq7W5ybmuwbzDuLOytcLDz8TAwr61vsDAu7+9tMSpqrmxtrfAvK+stLSeoaexrqWmsaWesrWtqrKxq6iotbqstbK1q7StqquorKm5rbKwx7+4pbmwqa2tpqetsKWko66jqJydm5qvmaKioqOQrJ+joJ+hqaaluKSrtLSkqquprK62rqKdo6irnKCZm5OktZqPiY6IkaOhlo+Wn6OXloeRlpSem5mWlYeYkpWZp5ygoI2Tko6ReH6PhX19fYeKinJ0c39+fl1TY25eTlpnXUZElltHOk5tWGJbTmFiTlZWVldVWWheUVNNY1pbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RkOzYqSGRISis6ST8zQ0lTLD6PbEBISZCaqKmhqbCkp6OztLC0tLCwoKutvcy7rsK9x7K0rrTBw9HExr/Bsr7Cw7y/uL3FqK23rLS4vMCxrLKuoaOnrqqopbGjqrCqrquxrq6sq7O7p7ewsqmyqqumpaOtuq2rsMK5tKy5qamoramnsaWppKKuqaiinpyirJWlnZiemayeoqeooaymo62strCxoKmjoKqtsKydnqenqZqjmJmQoKiYhoSPi4ufoJCMjpeekpKIiZKWoZ2WmZaGl5OUl6Wcnp2MkpCOin9/iIR8d4CHhYd1dHKJd2xfWWBuY1FzcVxLO4R8Rj5XdVhgWU9jXE5VVlVXUVxiX1NPT2hZV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTM5NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLkpnREY4PEIwNUVLWDFAlF1ATkaVlqynoKmxnKeosLWsuLWtqqSqqr3JvLG/ucOvsK2zw8TOzsO/wLTAw8S6wbTJxKyvt66zusC+tK6urKaoqrGppqmyprStqq+trbGusq20u6W3s6ysrqiroKOesLesqq25tqS1taSqp6ysqq2gqKansbGkp6WhoauWqqGTm6CmnqSjqqOsop6msbasrKKlo5qpq66pnaGlpKSZoJmWj5idk4GCkImFnaCNi5CNnJGTjYWOmaWbk5GbjJOSkpSjmpyai4+LjHyGgoKBenWBhIF+dXeLood4al5gbmZXZodkTkBnkkxFYnpXYlhSZlVNVlZVVE9cXWFWTE9qV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOzo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIdCSUlElpCupKGqr5ipqK21qrWxqqWrqqm8wMC5urS8taazr8PJy9G/wbu5v7/DusK6wcSusbWytLzBvrOxr62srKe3qqWtsKu4rqiwr66xq7WqtrWntLerrKSqqpyknrOzqaiks7Sfta2hqqirqKunn6urqLm2qaqqqaKpn62bkaqhnaCko6aiqp6cprSup6WpoqSYpaanqpyipKOgmZifkY6PmY1/h4yHhJ6eiYaMjJCQk4+FiJajmo6Nm5GSkI+Sn5iZl42LhIB0h4J/fnh1g4B6eH5/iJ2PcHFmZ3F4XGF0iGpPXZhWSG15VWRWU2NQTVVVVVFPWFtiVklRalRWVEdQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UyMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyQGY9Tlg/Qyw/TFRfL0lrN1JGO5WNr6ClqqyZqqOtrrK0r6qkr6mou7+8wbKwua2itq/Ix8jRwL+9urzDvrvEwsC/r7Kzs7a9vMGxsrSrtKmltqmlrbOyuK+irbSxr7G5q7muqq63q6qeqqugo6G1ramhn66yobSqnqinq6OqoaGsrai9rquuraGnqJ+smY+woZiioKimnqebmamwqaKfrKKhkqKio6eZmqmmmJiZnY+Lh5WIfY6GhIWkloaDhI2IkZCShoeWoZeJkZ6Rk5CNkZyVmI+LhoZ4dIGAfXR4eoB7dHR7aoKIpHZpXmVrgXVniIt8UlZwX0t4c1RkU1FfTU1TWmZOTVdZZVlHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzOPjrCgpKWqo6SjrKa0s7GopLCnqri/wb2xqbqqp62wycbI0MO+wL25v8C9ybzCuLGwtbK6vLnAs7W8rLmso7Wnp6yxtriypae5ta20vK+8pa2ttqutnKmvpJ+krKqonJ2qsqSzqJqqp6qkqZ2iqaepvau0sK6dqaSgr5yas6KWpZulpJ+lmpqoqqWemqmhm5GboKSemZepqpGZmpKQi4KPhX6Qg4CIn4+HgX+NiZOQkYaDlZuUhpOijpSRi5Gbk5aHin+Acnp5fnxodnx7dXFxfmqGeoWIZF9nY3KFe21neV1eVkJXe21UYVBSWUtMTnB0XUlaW2hZRlZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpKwmZ+fqaSioauktrKxpKmwpq25wr23sKS5rKmosMLIyczCt72/tbjBusi2w7W0s7Wyvbm6vbauuba/rKK0pqqrrrW3tKmcubuosb6yuqCutLapq5+tsaOcpaipo52bpLCmr6Gfqqmnoqqco6igrbynrrGuoaqipK6enqymmJ+aoaKbn5uZo6qimpmjo5WWlJ+hlpyWpqyMn5KPkYyCioCAj4F7mpWMiX2AjYiSkI2Lh5OYkYeUpIqSkYeQmZCUgYh9emx9dnl4Ynp6cnBxc3hqgnVrgmdjZ2Fuc45tYmpvX3BBXXlrVl5OUVFLSU1TWVZNXF5sV0VYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl0+I5GWq5ifl6eioZ+opLevraKvr6isuMO6tK6gua+rp7O6x8rHv7jCva+0v7fEtsOysLqxssC2u723qrm4vqqktaeoqq+tuK+omLi8pK2+tLShrbi1p6aosLOgnqWlp6GlmZ6sp6ieoKqvp6Cml6Kon7C4n6Oxr6GroayknKemqJqbm5+ilZycmp2pppabnqiRmJKZnZOZlqGqkZuKjpCHfYd+go58fKGNjIl6hI2GjI6NhoqTmo+JlaCJkJWCjJeNkXyFfHRwfHFzdGB4eGpvcXFwa39zZHpsaGVjYWaHgGBbcmpyTU6AaVhaTVFMS0hQUlBHTVtfb1RFWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsn56hpKG3q7CjtLOpqbrFt7OuobitrauvtcXHwLe/wrmwtb23v7u+sKy+sLO/srzCuKq7urinqLWop6uvq7KvpJi7tqSrurWvnrG5r6mlp6+ynKGkoKSjoJabr6ahn6Kor6GgopOjpKK2sKGmsaufrKOumJ2qpaifmJqdo5Oam5qdpaqam5ullZSXlZyOk5eiqaKRiouQhnqEfoSLeo+Xio2HeoKIhYqNj4aQk5iMjpaZi4+WfoaXjI96gXtwcnZub3NfeHdlbGxsamqFbmZyaWtlaF1kc4FgW2t2aVpKf15cWE9PS0hIUlVHMzldXmxQRVlVWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFRdaEQuPDJkVywylKGhl5SbqpyjoaKht6qtoLu3pay9xbSxr6O1r6ysrrTDw7yzv7q3sbO5uLq4uq+uwLOzuK+/wLetvbq1paKyqaepsaqtsZ+Zv7Wkp7S1qJ6yvKmopamvrJmip5ykpZSXoLKkmZ6jqKmcop+SpKCkuKmkp66mnqWhqJOgqaKhoZmbnZ+RmZuWn6Gqm5qYoJSRlJeajZSTpKikkImKj4Z6hHuEhn2djYqLh3qBhYiJipKGl5KSi5CVlI6NlHuDmI+Ld358bHRybGxzYXd1aGhqZ2dwh2hoaWRmaWlgamNqaFtme2NgU3RUXFtSTEpGSU9TQCEqaF5pTERXVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp6ipJGOpKaanZ6do7Stp6q6tqesxMG4sayjtq6nra63wL+8ssK3sK6ytra5tratqr2zrrKxvL+3rru7saWftqqlpbOnqa2dnMCrp6Wvs6qstbueqaqrsaWYnqqdpqSRmKWsopiepKmhnKGblp+dp7WmsKquoaGdnqGVoKafoaCam5mbkpidk6WdrKGXlp2Uk42Vl4uPmJupn5KJiouJeYV3gYKBnYeLgop9gIWIh4aRhJeUkI6PkZGRjJN7g5WPhnN+fmZ5b2pqa2Z0c2tjZ2RkdoFiZWZmZmppY2tyW19ZXm1kYU5pWFpgVkpHSEtNUlg+OV9saEhDVVRdW0lJR0VBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFlKVmJmQDozQmhIJTWao6CPjK2hl5eglqSzsaKyvbahsca8urKxo7esqq2puLy7uq3Asq6urravs7izqau5sa+us7a6tq+4vaymnrWqn6Cvo6mum6G/oLCjrrGvt661nq2vra2imZ2nqaWflZqnpZ+ZpKKonZqfmpOcnqyvprqorqKhmpuemZ6kmqSdl56Ym5SYn5KolaqnmpOampKMlZmOlJSaqaaOjoqKj3uCc4GBipiFh3yJioaGioyJkoWVm5OSj5CRl46Qf4CNjoNvgX9meW1na2lmcXJrXGhjY3SBYmZnam5sZ2pqaG5dbGxzcGBUY2ljZllJRkxNT1hSUVVhZYBVQVdTWVRHSUZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyY0kaGbjY+wnZmToZqpsa+fub+1oLTCu766saa3r6etpLe4t7etu66tqqu3qrO3rqaytbKuqbC2trCztbqmqZ+1qJydqKCorJqnvZispK6vtrWsrZ+xrbCpopuco6uonJScp6OdmqmipJaan5uQm6Sqq6q8n6ekoJiamZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJiagJaKoZB5h5SNg21pf3eDcWyGi4Z9hYyHcV5jYWeEmIZri46UknR3i4R+g5CAZ4eAZ3VoZVdcaHNtTlBqY2dzhWhfZWZubWpdYGGKj4OEZU5LRDlHVGheSkdQUFVVTEhSYG90ZUZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsKzA4PUc3MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoukmYaVsJubk6Cbqq2qo73Fr6m3wre9va2mt7ClqqK3s7KysbmsqaastKavtKKpt7a2qKestrKutK2zoamfs6mdoaObpaaYq7mUpaWvs7etrqWprquspaGenKGnppuXoKWlm5unpp2Tnp6Xj52nqaS2sKSjop2WmJeXo4ihjpKahqGHk5ygf6V/paqekpKakYiEc3iNjoWIoXaJjWmXiGZ+c3igb4iHhH6PfX+hoKCZgH2InnSHjnWbimyHgYNtaWVjemxyYVOFbWJsaZhxWGlxcIhYXmlbbGxbiHJuenKFZ4aEWl9HTj9HX01FUlZWUVFTV1RnXU1WSFJST0ZIRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiKp5eDnKucmJidn6qpp6q/w6+xury3wL+qpbewqayksrSurrO3qqilsK2ltLKbrbW2taanqLKwrLKnrZ2poLGnn6OimZ+hmqyzlKOlpba9pq2nq6qsqKWhoJigpqOZmaWjpJicpKmWlKKbk5Kjpaaht6SkoKOYlZOXkpyIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZYDAnL95hIV6koR8kJCRynKXvJzFenK1pruQe4BtlrGrsHlobFixrm5lab2SvG5nem9yj9h+U2tjtrJ+gXKUc5qhqpBXT1diT1ZORlVbWFFRU4xcV1tQQVxEUU5FSEk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT46Qjw/QTg6Sj41MioyMkJFLy4zMi4rLygtLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKeTgaeqn5ecnqWssqmwwr6ytb+1tr7Bq6e0rKyppq6zqa+2s6enprSlp7itnLOytqulpKexraywpqqdpqSwoqGfnZaanpytq5Odop+zuqOqqaKtrqWhnJqaoqefl5unoJ+YnqenkZymmpOdoaaiobGjn5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUca6hpH54u31roZB2sV9qtFulgGWckWBng3tnf2p4a6llvnJnpox1sWp8sXh0kpRjbm2nbluEoUVoZoeWRXWcYH5nfKSnglpfjKtogJV4eWqnN0qvXFhTbGRbS05YX1xXVjtOiU9XVy9JVFNKQ0ZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYOtp6Weo6Sqsbestb2/sLbEsre6waapsKquqKivrqOwuq+jpK2yo6m4p56zs7CjpaCprK+rr6annqOhr5uim5aVlpqaq6WVmqGftLOiq5yjra2gnpmWoKKonJido5+bmaGmpI+copmXoJ+qnqamoJqgoZaVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH5rgqZ7goaIk5STd6tna7Fcq3qNhpR0iXKPh4B/iJCXeIKBi5iLg6CPhLB2d59xbGxsfItOpFhIYmKZfmNopmB5cnVTk4deUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5V1hBI01oRkNFQUBBMTk+ODg6ODQ7Ojk8ODpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE9PFN9bjMrWGpcT1hNX2dXN0o4YVU1MBuUoJWIs6amoa+pp7Osqbu2wrC7wa24t7+prK2traatsamgrruqoKe0rKOrtKSmsrOno6Kep6qxp7CnpZ2fn66VnpmUlJWYnaygmZmkqLWvoqqPqqiqm52Vl6ClqJqenKKem5+jpaOVm56XmZyiqZummZyboqCXk5GTk5yD1ZOZuXCwwX7FhnzWlJu7fJqVpY+NnY2ke46IpIOlgnqseY+dVq96iH6farlauXaGhH6mgpR7mHqqeI2dj3qxbo6EdJG8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiFgIl8Y6QzQp12XVBqaWNQQFhnWmRhSkhNbk5cUU9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6O0RIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFQNzElm6KUmLKoqKa0qqW0qaS8t8Gwub+xtbS6srSnsa+isLKmn621p5qnua2ir7Cfs7SwoaSen6apsKi0qKObnZ2qlZiXlZWUlqCpnJmWp62wqaOfj62jqJadlpuhpaGYoaGhoZqhoqebnqCelJiapqCbp5Wbm5+hmJCSlJCdiLJuaLVxq4dujqZytHNytnual6SLj52Non+RoaZ/sXaDkdLSdlyue4V/pG+bqqZrh4V9rX2YmY57sXGSno54s2WXdISeb55mlFHIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFPa2BsaFBWR0k5PVVSWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTDYyMKKdkqWwrKOrvK2mtKantru8srq+tra0ubiypbSzoLGxop6rr6SXprmtpLGwm7S4qqClnqGppLGnrKmjmZyZp52Vk5eXkZKhpp+Vk6WqsKailpOtoKaSlKCbpKaflZqlpqGao5+tmaCenpCVm6GdnKWVnZWaop+VmJWRm4Wse3eodqONiIapb62KgqeDmJihiZKai6J/k5qJroV/grNccrNSrn2CgqR/cdd9eIV+j52Gmpl2r4aHkZyHd7RhmmWagoKVbZJasFhLmnWYeWZgrV52d4homIhsXa93lZ6PeGw1eciusl9CVG9eZ2BFUGxgcG1WVk0uZmRpU1lQO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEg6OTmgnpWgubCXtMKtqLOoqbK6t7O3vrm3sbS6tKS3sp+zrJ+eqKuflKe1q6ivsaqttKSbqaCfp6G1pqapopidlKSgk5Kbl5GUoaSakpCmra+moZWZqqCjj5GhmaikoJWZpaidnKSerZ2hnaCNk56anaGYmZuWl6KglJeQpp2GqX19pXihjo2CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTYf3aIdKiBjpuMkqR7lI+fhHuyXp1koH6DlW2SXKtbWpOAkX9oZ6pkcnuBa5iHc16rWomgjmtvZU9KQ6FcW0x0XWJnTlthX3JzX0tWN0qblVlHRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDUuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84op6amsCrmLTCrqutqaW0sLewtb65ubGwtbqourSfr6SdpKennpOpsKmvqbSrqq6hmKCgpqSjuaKiq6CWm5Ghn5STnpmTl56fkIyMqLCwp56Xm6imoIySpJeoqqeUl6mnnp6goq2koZ6ijJShmJ+gkp6XnJWeoZWWjqucj65tcrRzqYt1iqdztHhzs4CRpKOSnI6JpIeQd7hwjXuLomprtlqhhWWXl2mhoqdtlHK0dJOZfrJqhZGHrWp1s2GdZqJvh5Nrl1ytX02hfIeRUnOjbHl/fm+Yh3Jdr1Y8nHdmVG9uLlynT2NTa2VibVpjXWFwe2NUWlI+P25wM0NCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKacm568oZuywK6tq6ynt6m3r7W/tLuvrre2qsC1qKmgmqWjoZyRqqmntaKyp66poJecp5+kq7idoqyalZmOo6KVjJ2gm5icn5GTlKq2sKiZlZysqZeMlKWZpayikZaqsqOfnqarsZmho4+Yopafm5aclqGTnamclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJeLjKeIeqS2dX53dsKCmrJgg7p5wHx1uGO1goyHqX2VgaupcXt/dLyIp6BpnWGmjq+hfox0h6p9vm9zvHSyg3V4gYpumohybo2kdL1ed31aYXm8a1pWXGp5XmphZWdjbXhvWlxZQ0FBc0BDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQj1FODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56ivaGXssOwraqrrLGnt6+2xLC4sK25rq3AsKujoZ6joZybkKijqrKktKWspZ6VmqqYpqy4nKKtl5Sfj6Sfkoycop2XnZqRlpKvubKslpikqKeUkJaknKSsnpCgqKufmp+oo7Ofo6WOp6KUopqcmJWjmJCvoJKUqZ6EkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSfwbu9mnuBsahxgHORuYN8hoaMh418ioeNmHyku7m9nHR6tKN0d5d2dLB1mZ5mhmqNtXRycXe2jF5/en2JaIN5bnpji6xwdYV/WFunakVlWlRmYGNeY1FnZ3BsdUNOUE1EO1pNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PjcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT11dPSs6VlUnPjs8p56hor+llrTDtKyrqKyrqbqusMWts7KttqazuKupoaGlnqCdmZOqo6yppbWnp5+blaCjnaukvaahqZaTm5Chm5GPoaehk5yXlJiUsbW3rZmepKSii5KSppulqpuVqaWlm5mhqKWnpKmhka2flqSel5eXnZ6Pr6iUm6ahjWp9aZumd4dyfZmOdHlkh3u9vsC6b5ODcpaIYHJqWl6biWBjiI+Va2CAlWNtnXdilWyAmpWUZV5gY3Caimlyi32GlWdrf3J1eH1+Ylt3dIFoUFxtg317i2tYa3qCc0pKb4ZwTnRNRVhdZ2FMW1dnY19PW211aXFSUURFTTtHST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFS09IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPltPJz8yPqmgqKLCo5u1urajrKWup6e1sazIq6+yqrOivbCxpp+ip52jm5mZq6auo6S0qKWbl5Sgm6atqL2nqKSUk5uVn5mSl6SoqJCdkZCYnLCyv6ycp56noomTkamaqKOamqugo5mao6eso6Cro5qwm5WnoJaUnZ+dl7ClmKGnmZuQnJyiopiloZmbmZmZj5WBZ219cXeSmJSShYu1qo2GmJWOioyYloeUlYqEk5SRiY6TlJiUmJaaoKGam5SgnI2CeqWFbWt9kXyAdYqKgXGCeHl2dYl/fIpqc4F0g3Vld313a296bWBjXXBoTVlaZmpgV1pveW1tZlRQRlM5T1pNUU8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSiw8LUCzobOiwKGksrK2oKmlsqelsLSqyKqsr6W0pcCms6CdpKSco5WVn6qmrKKjtqufmJaVn5atqaXAnqujlJGbl52XkpShnp6ip5OSmainssSwm6udq5+QlpaonaqcnJ+smKGbnKKkr6eipaifrpiXp52ZmaCenZyvoJyhppWXkpeTn6CUop2XoI6Wk4qKjY6XrpB8lpyDkoKLqqmFgJmXiYSQnoh6hJCHhpqSiIaKlo+bl42RmJ2klpmTkJyNf45nobOvhYqEdnuSin13eXpvZnmPgYCJanWBeYhzaXN/e3aDh4JrdWR5ZmBqZWNkZmtZbHtvaWtdU0xQRF5URUA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9iY2FfXV5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0W0c1PCxAtKC5sL+sq66ysaCqprKtoqyzr8Svqaqisa28orObn6aioZyYl6elqaWkpbK1npSTnZmZr6WtvqCropCRnZmZlJGVoZyXqJyEn6uso7TItKCqpKuXlpeapp2pm5+kq5Sen52gqq+qpqSroq6bn6CgmKSenJ+cr6OYnqeSl5ackaOYl6ecmpdlgpJ8ZX6NmpBjeY5taGt7kqSqamWbmH1nhoplZWloe46hj2tnjZiRo3draouZo5+Yc2xteoSOiHpYZl6Gg15tjIqBdlxoc3d2kYCIgm13gXh/c215hHR2iYiPg3xrh1lebHRkXnOJaWt8cWtkX1JOWElkWEFKND5HNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaagur26r6y0saqlqK2usKatrbC8sKimo62usJ6slp+jnaGZmaaqnK2jpaepsq2elKOPoq+ltrmlrqKOjpqhmZOSmqCZmaSVfKauo6i0xLiloqevn52VnqKeo5yjqaiSn6Gdoaqwq6ukq6CqnKefp6CslqGbpbCkl5uplaCdmpGjlp2pl519vYOIcrRyhJ2GrWh4ucS4cZOio3qmmZlyq4J8y8DAu3GMo4iCn32XmYmdwL2Cl52ejZ3CwXyCfJONmsPAfWylsm+MgW/Ken+bdpCDjoF1eYCAeXF6f4dwd4WMk3lueJRjZ2B4ZGBlgmNedGdsZGRZTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhDQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9WQUI7LziWo7nDtbCwwKmolKOvqLCuraays66ppKWmr6ufqpiaop+cmqqmoZyroqSopKS0pJyikqatq7ezp66ikZCZnKWSkZ+hmJufnYinraWsrsDAsaGpr6mWkp+dopqipKqjk6CinZ6tr6qtp6SkqKGmpZ2sqJGjmqitqZqcqJuroJWWpJWfopacfs6UeHqkgXmVlptfro9ejqeBoqB8p5abc6uDgK9eY42qe6iHhaB1l5OIs2OCq4ahjo2zaoSvdH2XiLdhg61ao81ukHZ72nt/mXB9h5J2fWV6h3Z2a3yHbn2GkZF+bYOQYXJtcGhgYHpkXHFoamRnYFJUU1ddS09DNUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqets6umsqurqqOqpq+pn6abmaWXnKKvn6CfqKeipaCfsKuanZWnrqywqqirn5SRmp+kko+epZiep6OfrqassanAx7OoqbGulpKdnKKXn6mqn5Whn52drrCprKqcqKiloquSrLKWpaKqqp2ipaSgrp+RmKaYn5mTk5GXoHGFjJd1haiGcbF9nnKsfqKfgaWPnnargn2tf5xzrX+sh4afdpmSe3yXfqqIooySjJ1+q3uJlJCfgHutV53Fe49wk8F9gZVtdW+MbWV2ZYZvYXducm+JipKPg26SkWZwdXVxYWdtZV9vaWlvZ2RYVF1hWlJTRDlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXlxbWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNXQEYhHEc6QzEuK7DTxsaytKCdo46joqKsr7auqLGmqKqmraurpqGjnZmilZ+lq5+hpZ+oqKKenbCsl5qWqKeuq6emp56XlJmjoZGUoK2bnaejsK2lrbarus6yraaurJeVnJ2imZ6urJyXoJqen6mzq6urm62rpaOrmq6xoaerraWYpKmoqK+hkZWio5mTkYSkaqR1iXqpdHqycIKmipmMcYmgm4ekYGBSq4V/roObdq2CqIaFn3qZl4Z7ZoCjiaSZhoKjfal+gpaHrl98qVaeo5KBeqOfgHvDr8WLcq+zs7lyYqmvwnRojIyYjoJunJVxb3p4eXBtZ2VlcnBmfWpjXVdgalhZVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioyUEtMIyBBOUQ0LCfCydXUv6GZq6egr6KesLSwrqmsoqemqKqrqaSmoJuknp2lp6ejnKuaoqyho5+voZyakqukta+uoKeanZWTpqKQmqKooKCmnLGmpqmyrrfIsrWqrKmWkZ2copmgpbOdmqGUnZ+nrK2ksJutq6OjqqGzraGqs7Ghmqinra60oZGUoqaXmpF7qmyehId1q3l8sG+CpYyJn5aWoJWB0ri0uMmBgbJfYJSpg6WIh6B6mJaaeKrJdJqklaipkZOajYGciprGxnlnoYKldIGfjoJ9r11wtGKwdUujh22nR4KTZI+QnpF8cZmVgXF8dX58blxmanNxZoFrX2FZZG5cX1lJTk1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKWinLK4rKqhpZqopKqrqqafpqaYqqOfrqudpaCsmp6ppZyntp6il5Opq7WyrJulnKCUj6WskZmcqKOhqqeuoqWnqbC1w7Kzqq2ok4qXnKWboaOupZehlZmcpqatnLGer6mnn6yjt6yhsbivnZquprGysaOTlqaimJ6Ogp1OeJqBf596hKN9g6SFh6afnZ+UhLh7e3m5gn/MxsK2eJuhkYuffpqWl4p2npiKpJejqX+whZ2GoISsfZqVY6ZtpHCPhZCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Uk413e3OGf3Fcbm54cmqCcFtkYGlvY2RdTE1RVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZZWVpbXF9fXl1fX11aWlpYVVNPSEA4ODIuLCouKyonJz9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq6fm6GssrOlnqCVpa2trqqnnKanm6OoobOuoqmmsqCYqaSUo7aiopWXoqm0uKOboZyiko+hsZmem6emoaKwrp2mqaK2ssWxramtqZGHkJyonaKknKWXnpmamqalq5uwoq+lp5ivpLusoba2rZ2ctLG3r7Gll5yun6KdhY/RtcO3eYeOhZGTkICmeZShd4ygkoSlgYpxqoaFtG5yaZqknJWKn3yYmYaHj3OvgqWboo6mi5Odi5aQm25xsl2ldJN6nGyZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2NjpWOen55kINuanlpenNvgXVeZWVvbmZoYEtbWFg8SEhAVTRARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtbWlhVUlJRRjoyMjMvLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWSc4yKrb6/vLq0npanpK21oaKZlKKopq6rq5imo5+loaG2p6Oop7CjlKyjjqStop2Qmpqqs7OknKScqJGUl66fn56npJ2onbabo6uktqzEsKmrqaKMhI6coqCmopaZmp2ZnJmnpqeZraivpKabraa9rJS9r6yfoa+yt6mypZqosKKnl3mokX18sHeKgKSliJxtsnChh618oY+Dp5WYgKyJha2FoJWqoKKXhp+AmZWAe5J+q4CdmpaLq3idoZKKlJKBeq9epIF9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWRppmDlo6ajnx8hJmAa25/Y390boB6YGhmcW9paGhDWmFbPktVM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFSU1NWWl1fYWBhYWFeXVtaWFNQT05JNzA0Mi4qLEFUVlZWVVRVVVVVVFRVVFRUVldXWFZVVVFIRklKIygovZOag6jFwrbAs56arKCtt6Wjjpukop+wsKqfpaCerZmeuaGjq6CvqZmuoZCrqKOWiZqQrrCspp6lm6yXl4+soaGdpqGapZ2umKGop7epwa+kqaSei4GOm5qfp5+SlJmblZuapqWmm6qsraSln6movqSWwqyqoqCqsbeorKWesq2nqJd1r36Qi5yFh366rYqZZbCNZZWtfaGPhKaVmoGsioSwhaaapKGhkYWhXGxqgbNgf617e4OBsW1nb5mZjIixW361XKSEa8iiZJ+Ae7xYdrRZsn1SroB6rFiAoW2Yj6ibjJiSmpp8epGff2V1f2OGeHSBfWJqZ3FuZ2ZmUFVkXEFVYD5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFFSVFdaXmBfYGFiXl9cW1hVUE5KRkM1NTMuL0BVWVhXWFdXWFdXV1dWV1dWV1hXV1hZWlpbXFhXV0dCO9KfsrG3vbqzwbKinKympLWpoIqaoJ6cs7Opn6ShnraZoLSoqqyer62drJuVr6ehjoibjq+rqKahpZmukpiPqZminqWfmqOjpZmgoqqzqb2vpKienY9+i5uWoaGakJGanJKamKmgopqprqimpqKkqbueoMampKigqbOzqq2lnrqsq6uUgKmSo6+Om4CHpJeZkIKAuMO6g46ck4Snl5yCrIqCr4innJumqpB+1b3CqmKjv719fqOChNe6uLWFlZODnr2+hG2jgm+rhGycf3qysMeDaauwvax4d6K+vHOAlo6nnZGbkpqge4OTnXtkfntlj2d5gnxhbGZra2NRYltTalw/VWJDTSk9OjQvHx8kHyUyIB0kKDA0OTY2Nzc7PkFDRkdJS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbOzsL+4sbyyopyupqWypp2LmKXAqriyqKLAp6iznZ+ynbqon62vpaeUlLCrl4yDm5GupaKsoKOcqqCXi6OSpp6nnJqhqaOZn6Gsrqq6raejmpeTfYiZkaack4+RmJmPmJSpm6GZqqmhq6ego6q7nqjEop+toqiysqeuqZ+5pq2tmXN2qqW4hmSJoHBorpGLkG5ud6SQmZ+Bda6YlHCPi3GVqKOal66kcmxsbGaLeG9ugplxgXpqcWlnipeWmHFpaYaIZ3GGZF2IYmpvWVxmfXamX2FxjpFuZWR/jZOPopmZmZOaon6JkZh3Z4l4aY9reYB6ZW1kZ21jS2VYSmtaOlFmRlEnSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1dXWV1eXl1cXFxdXl1eXVtbVVdeqZSss6m5uLKzqqmhrp6js6qYkr+zxcq/t6qfwa2upKKorJ+6o6Suq62mjpeuqY+LhZWWrZ6mqqCdpKOgkYulkqeZqZqXo6qhlp6mp6iwu6urmpuTk3yElo6mmY6SkZmVjpiWqZagmamjnLGmnaKruZ+vwaejsqWqrrCpq6mltaKstpWKoaimt52JlqOZiKqbkZWdkqmzmZqjqqCylqKhnZ+inKGlopWrp42SkoyHk5ydlZGZk5mRj5WFgaWbmJaOi5SUjJCHhX5niX50gnVzh4pwp2x6k5CTkoCBjY+Qj52VopeamqWEiZeQc2uRd3GMeHd9emptZWRwZVVhWUBqXEhjYlBZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhUVlleYGFjXV5UUUtFQz45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKaWqKqktLaurqGwo62foLaxkI6syL7GvLqro6afnaefsamjtqedqbSmqJGYrKKLh4mPnKeVrKSfmKeenpKUo5eomqialKahpJGcqZqitrunqpiakI19gZWMopWLlZGWkZCUmKaQoJuqoJ22o52mq7enrsCtoralrq6vq6ensbafrbuYkaWkpraikp6noI6qoI6Tn6OrsJqgo7Cor5ijoJyjqp6enp2XrJ2TmaGblJCWq5qOmZmXkZafkYihnpaVhZKNkY6Vi4F+ZouFdYZ1eIeCc5xqhY+Sk5CJfYuVkpKYlKOTn5mkhYqbin10l3R7jIBzfH9qb2VfcWpgW2BabmRQYWZRWjpHR0U+Mj0+OS8qJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWFlVlBLQUNCOjlFTVZbXl5bWlxbW1tcXV1eX11eX2BhYmJhYWFgYmJiZGJcW2OXlaOnoq+xq66jqaasn6e1qpCPnaW1vbCuraOkm3yfpLKkpbGpl5u5pqOTmaqcjoaKiZyij66eopWon6CSlpmbrouplo+omaiNmqqQn7q3pKSYnI2JeoKUjZyUi5WSlJGNkpejjZ+fqZ6fuKN/g6+1oq+udKO8orCed3iep6+4lHWso56JgKt/ZFxidqCPpZ+EmH1tkrOco6etqqJlnp+Sc3mal3GBmaiYbX+iqIplnKadkpiYlo2SnJCGnpuQloSSh4+QkomFd2qOh3aGcHuFf39gaIeJk5GLWnWUkGdokI9ze6icnGZ7m4qFeplqhYyEb3qAa3JlYHdwbGtpXGZmYmJxVFs+Tk5OU0c+QFVEOjEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVldYGhmZ1hRSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6Cur6yrqaWoraKnraSSlqu3sbOnm6uorZh0jZ6xoKirp5SXuaCgj5yknZF/iYianoyrmaGUp6GdjpaSnoR2rY+Ip5upkpmlip27tKigmZiLiXV3k42Xk4qUkZGUjZCUoY+coaeZnLKVgIybtZ2zjJKOuqaffaeieaCstH+OjaWeg4uGkLCqr42Ll6SbeoGLrIWcnaGnqKeHlYWYd6WbeoecgZengoJ7nLJ6ioahmJqVmJaCkZeXhJuZYnqHkIWPkJKLg21wjYd5gHB/gIR+hXOFg5SReJZoknSgmnV9mYWjoImYf5SMhYWaa4+Ohmx5fHFxaGV4cGpsa1xlbGpmdV1eSVRMUkBFNi5aVVU3KSEwOT4+NzQzNTY4Ozo9Pj5AREk/SkVKS0dTWFtZXGJhaGZaUUg5RUw7PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop+mrK2rqKygp6+mpqmlmZSvycCxopeoqrefkYWerZynoqCOkL6emoyfmqCQfIWOmJeHqpuglZ+gkYyTiYaAkaeNh6OepJWZn4ifurKonpqSjoVxdpCJlZCKlJCPm4yQkqCSmKGklp6rh5+0ibSarYrKh6msiLaFjbCBr6yCqIymmI2dfaiPc3t3nY+nl2iVpHm0jJ+epqeSmMKBf6uImKFynoCapX2XhZWygaF9oZShkJiXgY+UnIuZkot9hZOHjZaSiYNtco+FfnlxhoCDe4N0hICWgI/FZn+ph4+ja56FpJ2FmoGOj4eLmnGQlIZpeXV8eGhpdnJoaGxeZHBtZ25ZZ0ddUk0zRTQ3TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmlsXFFFPUtNQEpjWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqKfr6eoqKWrn6O3sKmrppqUoKSlrKWYpqy5pLCBoqmdpp6diZS9mZONoZKej3mElpWRh6qYmpqZoYSOi3ebnI+fkIiepZyXmpmIpLmupZqcjIx+Ym2Pi5OQjZCNjZiMkZOgj5WhoZmhp36hp4etnaCWrY+dnJyQhYCgjKmshaONqZmMmn+idYGZlGyCrXZNq3iHjZyRmqimgKmrfYOhe3qnap5/kmtnl4aXt4mefm5gZFmDl4CNe2Roi3KZfXmWbF19l21fUnCDXF9reIJfWGSBfIN/l3CnqmuDo25ypXCfhaBqZ6BtW2+MfWdaYISBY1hRcHdmbnVza2pvXWpxbmxqWWlPXVlGOUE1SERfbDUsSURSTU49ODQ4NTk7NkA7Oz5CUD5RUkxNQkpcXV9XXV5idWBNRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5WdoLigqaOmrJGgtruqrqKZmKGjpq2voZ6wtqSpk6KhoKecmo6ZtJmQi5+MlYt1gZOSjIqmlJSYnZ5+koWFrKSHm5CKmaqZm5uSiaexp6KWmoiJgGluiIeLjo6Ki42SjJGTo42Un5+coqR/k4GPoqGUoHaclY+ngqCmf4Wnq4OleIl8hJp+onBzlIiWfJ+NeW2Gm4yZj5uomY6HnXuConN2pmaefnekX5h6fZN0om6Yt7S6dJOIg4C1qGSBxrh7cJW2jHKAmqNic6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGGdmbOWcn2Yn7N1dFyesoNrY3B1d3Jpb1hrbXNzZ11pXmJMRT1ENlFCWnMzPVNHYEpSPTwzOTU6OTZEOztASlA/VU1PUUBEX19bWlhgYHxkSEM4TVdVV2JhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOVlKO3mKqbk5+NpLa0ra2gmqKdpKOmr52cs6+tlJmimqGlmZuVn6ubi4iSeIuFcYGWjYqPoI6SlJ2YfZCJjaigh5eOiZKklZybjYupqKWekJeHhX5qe4d+fZCNg4uRkYmQlKGDl56gnZ+ei4l3nJiijZ9xoYqHqYebpY6Upql9rYx+eqCZeqOTeIF0loiNnH2Wn4abjpibpYWiZKF8iJaQm41tnmibjm+amXqAi6d9cml0q4Ofg3SqaJWaXZuFdoWeZ6prgLhmXKhwgZxglYxep3Z1h4h+nmiadYaTkpeOgJ9vmpFup5pdqX95u2t+qlyOhF20aF1ucnp4a2lccWt5emRgZlhiQlFGTzdXQ1JvNUxbW19OWkRBMjUxPDs3SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4mptJqniGOUm6u5sa+snqacnKmgn6+cnrKprp+YpZuhoJmXl6CjmYaJjWqIgHJ7l4iLlpWDkZWYkHqKhJWknIqUj4aMn5OenYmQqaOgmoySioGAaYGGeX+XjHuJjo6IkJebf5Sinp+hk5hyaJ+Jn4+McJKMgamHmJ6hpZ6me7Cto6K4l3ejs6OkgImUeZ17q5l+oo6cmpaIl3GhfIWNr7V9a5qRoXl+mLWipKuohJl8m32em390qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJqcXuObICIhJl1m3iGibGzf4Cbk6d3g55uc32VcJp0a6RelXZIZWRhdHJ/f29mYGxpd3xlZWFRX1ddVFdAWkZRaEVUV11iWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQjxVX2JaZWlWZ2htb2JmZ15hYVxdXmBoYl9lY3ZtXWVnZmtkZWxpaWtpk5yAsK2ZhFNeoKazubKyqZqijJysnJyqlaKtpaOpkKCfnZualpmhnZaIh4l3hoFveZWFkZuKe5GTlohygIiSoZxzkZCBiZqWoZyFj6mcm5WLi4t9g2yEhXGCoYx4ho2IiJOZlnyTo6Ceooithn21hI6enXullnqpgJWbj4mfm3ynaHdtfpl0oXNyfJ6GmXCTg659pIOlnZmAo29eqGd1omNvpWGc05B9e5l4c3NiooaQfqN0pJB2a4+zjGCCmIlzqrKovH93g21+v6aptF2bbXxwlm1/cqJyXaRnc6ZgaKZtm9SafoabcHp7l2ycfHiXc26ppGdhZXpygIVsaGZkb3Z4aGBjU1xmUVFiSFlKVWFXVFxma1xlUUZDS01KS0JLRThPQFFOWFNZT1NRYGZmalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaWV8ZF5kZ2RrZGpsZ2hsaJeaf6+qVFxLfqmvsbOvsqObmYWZqqGipY+mqaGaq4ubmZmUmZOToZiOh4V7cH2EaH2Pg5SagHeRjo+Jb3+FjpKSbJeTfIqTlKWXg4+rm5STi4aJeYN2iIFugp+GeIGShoiZo5h7lKKjmZ+Js6Gitot6rKekrqVwqYCajoWAmpB7pIChmYaYcp6EpK6vipeMgI2kjZWDraCTdrW2tcmhc5SLgZ9gnpepbXmWh6CbdKKId6B+k5eLgXBNZqOScJuHc6R7eXRhg4FrfqBrcWRfnHF9c5ZoeWiytbTGpnOYfXqda5ybq3aFm253eZhqmnt1mHJRRX2zX2p3bHqIZ2toY3V1cW5XX1RZaVBTaElXTVlUVl5pbG9WaFdOS0FKTUtISk9BUUtQZWNqbWV0cnN/eXxudYl7e1RRT2xeaVxraVJqaGlsaGxmY2VfXF1dXmliZGlre19dZGdjamZvbWVpbGWhm4iupYNkP5Ohsqqur7WiopCAmKujo6aNpqifnqeEm5iXjpeQkJyTjoiDemp5h2WDjX+YoHl1j4mMgWmEhZGCjIWdjXqOjJemlISZqpiNkouBiXqAfYx5cJChhnqClYeJlqCWf5SlqJyVlYNmbnicbKJke3Gld5uYcGemgJWKeqR6n5aDl3Oed4GKlZePuW6RiqJifZmglYhucmmqa3WgbW+mYJtpi5BploeblnWigX6aYIyGjXVwiGJooGWefmmbdW9jZoiBbXGiWl5bYqFsXYiLbnp9cXFkpW14omRnp2iZc4yZcKJwVYmQb6BfZqhUi15UmG5udGtzg25xaWx5dGtwUllXV2ZaVG1JWlBdSVhpaXNqWWxXUVJGVlxMWFNhVWlrX3d0e31wfHxyg3uAc3aNgIR2XlJyYmdjcGdQamhoa2xuaGRnX11eXWBqYmppdnVdXGNoY2pqc21ma21jnKOXpXlkc22Lpq2jqbCxpp+LgJisnp+njaOinKSjgZaZlI6akIyYkI6Ke4dxgIhpi4t8mJtzdYl+kHtkg4eUiYqVmYJ8iYiYqJKBo62RhpCLgop+gICPdGmQpoR9h5SNiJmgj4iTqaadiKZ4lZt+pIiWi7GYnZCCr5efpXaUhnipc6WPhJpupKKMkoSNg7tufaWvg4aFhpOVnJ98pXpyqJWglmeefm+sZJaKlpN3qG2qooGJdomDd6uRpohrkbBrdrOMqWuKhW1tn56SlWB+q4uqdn5+iqSed598g6SVnaBqm4h4rGifroy2dHe+jaSTWoOnjqthdnN1cnx1cWNrf29pbVNXW1ZhYl1rTV1SXkpebW93YFtxWVxgW2d0ZW5vcmNydGB3en55cnmDc4R/gXt7jIGDgHZieGRjbnJkUmtnaG9scmpmaWFgXlxha2JtbHpvXFxiaWJsanhtZ2xuYpWkqZyBf52jlqmpnaimrqSZioKYrJufpoqcpp6rnoWNm5CHnJGGko2MjHOGeoiEb4yEfZmTdHSGc5KCbX+LkYeGk459e4KHmaePgKenj4GOiYWVdoKHkm9si6mBg4yUjomdn4mMlKqin4+AdZSXiH6BeZSuon+BmnGPhneOiYJ9e3KnjHJ+fXqYlpuEkHl7f36HlJWTinaQmJ6gg3t9iWuMhVt5eXJ6cWlufpKJcYB1gY+Uk3GHhIJljH9fgX+Ld3RylHVveW5th2yDhV11Z3eOZX+AhIynmX10e5VqiYhwgXZ9h3dubmiNdHp8mHiFXGxYeY9pb3hzcnB4eHBdbIduamdWW2BXXWZrZFZjVV9SYHB5eW1rd2Zra2t3fXJydXRhb3ZidHuCeHV6gnWAgICBeIuFg317bn9sZHluXlduZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhsb2GNk7eopomgopqmo5iknKuioYSEmK2SnqKKm6ibqpmDgpyMf5eUh46KiY1xgnyPfX6OhHuYj3RyhHGVhXt9kouGho+EeX6AiJulj3yoooyGkJCFlYOGjph2coSpho6SnZCJn56IjJunn5+qg4mOlZp+fomWraePkaWPd2+bj4F4kG5+qIVxfpVxa3B9gqCNgJOOi2hsXIKLi5uano5zlYuIcXRrgnd0gVlyboeRgX5/jGpdamV7hoSJgGBpeHqae4KKgXWBhYFnd4qGal9vcYF1XnGJgIiNpJSFZYuNg253i4Rxho96cWhpZnyEe5ZbXGtobnZbfHl4dm90c4NoXW6La2tiWlpfW1lscVxfYVpfXmZ0f3x2cHVka2trfH1zfHl1ZG51aG18fnd6fHt5eoCAfm+GioR7fXR+eXN/aFRccWlsdnB1Z2toZF1hWGtoa2txcm5XW2VubGdzem9oam1gi4qpsKGPoqGanp2Xnpioo6J+g5mujqCViZ2jkaaVgHyYhn2SmYqJh4eKcn2BjHaFi4GEl4pyb4BymIaDfpKDhIaJgHqBhI2coZGDqKKIeY6XiZWLi5yXhIN6rYKRmJqVip6dh4ihqp+hoqSLiJObnKOZlaqhp6afkpqGlIx6do2Ng6d+f5KQkpSdsqablZ+QjbGSl4OljIyVmp+JkJuCiJGKa3yOd3hlg4eRi3yJnoSHjJCJiYGFhJB3fHp0maCIhomdiYSTfn2KgH90bnKEgX12hYWJjqSPgoWMhoKMkIx9iIyKkYR6boSFfnqZa3NpYXSKcX57eHdweHWCXV5vh2huX15aXV1TaHJWZF1dYm1odnx9dG9wZWtqaYB9bnmAcmpwcWxngXtygoB4f31/hHttgoyGfHp4e316g3hOY3Zqc25wemVrZWNiYFt0ZnBncnFtVV1sdG1peXpxZ2lrZIyHnLmelqGgmJSYmZSYpKGefH+arI+fjoegnYyeln15lYR8jpmKhoSEhm55gYFzgYd9iZSEbWt+epeHg4OPfoCHhIV8iIWPnJ+TiKyghHOLkIaSkYudkX2Ne6qEjpOYlo+cl4eHm6WfopmchYKSmpmYj5qnn6WdnI+Vf4+IdXuGjYSle3yOkJGGmauinpSdkI6pjZCAnYyIk5mego+XfoaOg294hnJ1YH+EkIZ1jZmBg5CDh4V/hYSVbnl2dJKhiouFmoSEjHN/iXt8cXF6h4J6d4iNg5GljoWDjoCDiomKd4aJi41+cm2Agn1vaWxuaF56f2l+fXd2d3Z7eF1gcX5udGBjW11fUmduVGZbXmJraXZ6f3JsbWRramiBf2x0gmxsdW96cIZ6boeAdoKAfoV2cYKNiH57fHx/e4KKYGh7anVpaYJkamNgaVxjdWhvYnVtbFVjcXllcHp7c2VqbW2LiZ62maCjn5KRlZiLmp6fnnt4n6eRnIuHpZWMmZl6eo2GfYmRhIyCgoNufIB5c4GEfYuSfWtofYKXiYGIjXt9hoSGfJCDkZ2dk4mpnYFxjIuMkoagoYqFjHyokYmQkpeTlpN4jaOfoJ2VmH6AkJqYkoybo6GjmZaQmn2Mg3d/go6GoH9+jIyPfJiloqKTmpGQpoyPgZqRiZKXm36Tkn6HjoF1dIJxd2F+gI6GcouWfYiMcox/goWGj2h4cniLmJGPf5Z+iIlygYZ7fHB3eoqDeXiPi4KVpJOKhY97hoaHhHaDhImJfWhzfoF6fHJtbGhffnRpfXZ2dH1zgWtfYHR2cHdkY1lfX1JraVZmWmBhaGp2eYJxZ2tkbGhmgIBrbn5ob3FsfniHe2yMgXOBgX6BdHaCjYZ/fHuAgX1/j2lyg250aWGHaGxiX3FWdG9sbWB4aG1XanR2Y3V6e3Jiam96iYyesZGlpJyOj5ePhpygm519d6WhjpiAjaOLiZqWeXyGiH+DiX+JgoF/cn97dHaDhX2KkXdnY36Gl4qCiot4fICNg3mXg5aZmI2XoZx/cIyCkZOGpZuHjImDppaFk4uWl5OSdpGdoKGXk5V4fo6Xl42Wm52knZiSlJp4jYSCd4OVjZ1+gYmNjHOXo5+ilJmPj6KMioKWl4OSlpl+mI18iI2BdnF+bntkgHyLhXGHk4CRgmyHg4GAiYVmdW97hpGXi3yTeIuIe3+Ge3pxfXeIhXiDj4eKl6GVgYOLdoiEg4J3fIOKhnhhenp/dYB5aG1mYn9qa3h0dHd+cn1jZGFzbnVybWFaYV5bbGVTZFlhYWhrdnmGcWNrY21maHyDbWl1aG5waYB9g3pukIZygIODfnR8g4yBgH57goN+fJBtdolzdW1limxqYmJ1VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPm62XpqeejYyXh4afk5eZfniqnYuae5edjIyZkHl8gYx+fIR8gYOBeHR5enR9gIR/iYuAZF99i5SHf4SGdH1+i399mYaXlZiNpKKZgHOHe5ORiaaPjI6Kk6CShJKQlJeRi4GPl5+akY+Pcn+NkZOJnZ2eppeXjJSVcouMiWuEl4+ZeoeIj4lvl56bpJSVi4yei4aBkZx/kpKVhpmIe4qKgXlxemx1bHx/i35uhpODlXhxgoR+fouAZXJpe3+VloN+jXSQh4J4hn11d398hIB7gouCi5Ojj3iDgXSJh32AdHaCiYVxYnx2e3J+cGNwZGV8Y29wd3N5eHR1YndgcGx2bm9cXF9eXmteUF5ZY2FobnR7iWxgaWVrY2l3h25nbWlrbWiBfXt4b5CIc4CEhH10gYaJe4N9eoGEfX2OcnqLeHhtbIdqaF9pcmOHZ3FvZXdnbmxheWlrfXt4cGF4bYuAmJipn6SonYqKkoaKnYuVmH54r5mNmH6flJGXlIh3fnyKfXyAd3iAgHB1dHxvhn2BgYp/fGFcfo+RhoCDgnN7gId6j5KJk5KdlaacloJ9gX2OipGjiY6KjZiajYaSmZSWjoqIjJKcko+Li22EkI+RiJ6ZoqCWlYiWkG2HmINlhZiOk3qJhJCKcJablaOTkomLmYyBf5CdfZKOkoyZjnuKhYdzc3ZscW51fIp0boaRj5NxdYF8gYGIfGVwbHl7mJN8g4h0kImAc4d4bn98gIV7hIuHgouUp4x6hnt+i4V4fnFwgYeFZml6dXZxfGNfcWFrdF9xa3t6eWxzcWZ6Xm9sc21yWFtfYGFsXFBXWGVjZ3Fxf4hnXWlpZ2JncY1vZGpoZWlpgXp3dW+OhXSBgoN7dYKIhXiFfHiEhXp/iXd/i3t7cniDamtfcGh0gGtyb21yZ29sZXxjboB6d3Fsd3eKfqKXoaegppuHi4uBj5yHk512gquVk4+IoY2WlJCAdHx3hXh5f3Jze4Zrc3B6bot2gIGHb3BbWX6RjYeAf392dYCAgKCHkouUnpqilZh4in+BjYicnYqPhpKYloWJlZqQl4yMjY2MnImOkIJsiYuRkYqdlqGbl5SEl4Zpg6KBZYSciZB+i4OLgXeTmZOfkpGJiZSNfn2Ol3uRjI+OmpJ8ioCCb3ZwbG1vcHuGaXSDj5mLcXeAdYKIg3lmcm51f5iOe4eEeZOQeXWHc2+IeoSKeYqFgYaNm6KHe4N1got/eHlubIGFg190dXRycnlbX3FhcGtfcGt+fHFubmtud2Fwb2txbVlZYmFib1lRVFpmZ2N1cISDY11rbmRjZmuSbmBnZ19oa4F1cnNwi4B1f4OAeXaAi4B5hX94iIZ3g4V8hot/e3aKf2pxY3xjhnxucW10amhvbHZ4X3F/eXx0dXSAg36klZqsnqeWhY2Ef5eUg5CgdoyglJOHjJuNlo6LenJ5dYJwcoV0cXaIbHBudm2IdoN+gG1tVVGBq5SGgnd/d3KDeoOhg5OClZSanZObeJJ7g4ySo5mTjomVmZKEh5eZjJSLiY+Ph52EkIp7couFio6InJqfm5WTf5N9Z4SbhmeFn4eRhJGCiXGDkZiQnI+PjIyPjHd7kZB6jouMkpaMfIh8gGt3am5rbGx7f2J6fo+XgXZ7gXiDjH15Z3Nsc4aUi36HhXqSj3F5g291i3mIinmIfICKjp2chHt6doKLfHdxamyChHtheXFvbXN0Vl9wYnJiYG1venFpcGZndXVpcmxid2VdV2ZhYHNUUU9cZmVdeXCIfWBcaXJiYmVmkWpfaGVbZ3B+cGtxdIp9dnyGgHV2fox5e4WBeIiDc4aFfoyMhHx5lXhmcmqDYIh+b29remBqbnR/dV90fXmHeHRzhX14oI+ZsJyljoKLf4Oah4CMn4CLmpSPhYiYjo+PhHd0d3SAcXCFdHByhHBraXdug259fW10c1JNgt/IktaTe3B1hHaFoYSUd5aRmZ2RmXuUc4WQnqGSk5GLk5yUhn+XloiNjYeRjYebfo2Ad3qNfomMipybnJqUknmMdWaHkIVrh6KEkYiWg4ZjjJGZj5WLl4yMiopxepSIe46IipORiXqGfH9tfGVzb2tsenpbgXmQkIF6fn+Aho57e2lzanOKj4mBhYR8lIprfX5tf4p9ioV8hHmAjZOZmIl8dXeDj3hzbWdxgIVubHVwaWp1blNfcGVwWmBtc3lobGtjZ3lzcHFkYHhhYFZsX192UE5MYmdjXXpxiXVdXGV2YWJlZY5kYWdiWWlzc25rcXaMfHR6hoJ1dn2Lc4CGf3uJf3KJiIGRi4h8fph2ZXNufGWIfm5wbIBZbG55eXNgdnp7jXZyd4p3eZ6Lm66aoJCChXeIlX58ip6IhqCSj4WMmISTj4eBdHhweXFvhHBtb39zZWV5cX1teX1qaGtjpJrB3K7woXNsdoV3hqSGk3CXkZahlZyBknKGi6KXiY2Wi5CdloOBlpCFiY+AkYuJlX2GenV/iXiHhI6cmpiYjo92iXVthYiJfImig5GJnISFXouTl4uPiY+Li4SJbXuWgX2IhYmRj4Z2hn5+a31keHZqbnlzWIl7koiFen6BgYaMf3lmcml/iY2JgoF+i5WEa4F1bYaPgY6CfYF4fo6UkZePdHJ3h4x1c3FndnqEY3VucWNqdmhSYXJobFZgb3V6YXJkYGl/cXNvW2RyYWJXbltdeE5NTGVnYl53c4luXFxkeV5fZWWFYGNjX1lqc2tua3N3jH10d4SBeHd7iXGDhH1+iHt0i4mIloaMf36Xc2d1cnlsjHtudHGBV3F6dnlyZHd5hoxpdoCJcn+chpinm6OShH1xjJR3eYyehYWhjY98lo2AmoiEe3N3cHRqcIJsam18dV9heHd7cXV7Z2BkfOvatcnD3IdzbHSCd4ucio9qmZGQnpaUgYlxhYifjYSLlouMmJR8jZOIg4mQe5CLhY6Af3V4g4RyiIKTnJaUl4WMdYZ9b4OBh4aYoYKTjJ6DiWGDlI+HioaKjoeBh2l8k399g4SJjo2Ccod/f3F3aHZzanR3bFqNfZODhX2AhIGEioJ2YXJriIGOiYF+fpGQfW2Ba3eFjoSQgXuAfH2PkY6UiG1weYyFdGtwbHN5gmF1anBebHdhUmVzaWZTYHF3dWFwYF1ohHJ0a1hoaGNpWW1XXHVMS0xmZ15ic3OFalxcZXleXmRne2FkX11Za29mb2p0eIp+c3OBfnt2eohzhYN8f4d2d4qGj5mBjIJ7k3Vsd3Z5eJN0bnh7fVh5hnF/b2d4d5KCZHaGhXCKloWZoZqiioh0b5KMcXePnH6LmomJfaB/hJqAgXhydG5vZHJ/aWZteHhcYHl7e3FxgGlhZ2F/1baOkaZ4b3F4fXGUko6Ia5qPiZ2TjIZ7aYeLmYaBkpGGh5iOfI2NgYGJjXuOjH2IhHpzeoN7cYaAlpqOk5OBiHSChXWCf4mRnJ2GlY+ffohif5OHhYiFi42AgINnfJCAfn+CjI+Qfm2DfIN1bG13dXV4dmxjjoGPgIV+fYZ/hIl/cF9xcIR7jouBe36QiHlwg2V5gYiFioB6hHx+ko2PkYJtbnmLfnVtbmtse39kaWxrWm53WlNqc2liUWNzeG1jZl5aa4RudGJcaF9lbWBvVVxwT0hPZ2ZcaG9ygG5bXGNzYFxjbHdlZV1dWmxtY21qc3eGf3Fwf3x9dHiGeIWCfICHdXmJgZOVfImGdoiBcHh5e4STb257gXdeg4B0gW1penSUc2dziHxxkpGDmZ+boIaIdnaUf213lJh/iJCEi46afYyad352cnBsamF1fWdianV6W2B4fHpscH5lY2dnV52PX3Fzlr3FhXdylYuRgHSYjIedlI2Ic2uIj5WAe5SLgYSbjHyKhn18iYx+k4d0h4V2dn2CcXWGgZ6VhpSPgoJxfodzg3qIlpuWhpONnYCIZn2TgoCGhIqJcoF9Z32Le3l/f4eLj31pgH2EdmZweXh0eHRsa4+Gi4KLf3mDgYSEgGtecHZ6fYuHhHuAjn9+coBoeIGFiYSBd4J7f5WKjot8bWt6iXx2dG9oaH53ZV1yZFlwdFNUb3NpYk5odXlnYV5dWW+BcHRaZWNda25hcVBabFJEVGhiWmxvbnxwWltebWNaY293ZGdcXWBramNsaXN3gYNxbn57f3R1g3qEgnyChXZ+iYGWkXiDinSBiHN5eX6NkG9ve4FxaoJ5en5ubXx2lWtqeIR0a5OMhZ6YoJmFiG9+jHZqeZmPgIKKgpaYinmPlm96c3FsamRgdHtpYGZye1thcn16ZnB6YWVkjrGyd0tiWqXa0phzfJKNkXp/loyFmpKNhm9shZKReXmThoCEmYp8h4B5eImKg5V/bomGcXN9e2p5hoOlkYSTjIJ/bn6CdYJ3hJqXkoqTj5SFiHB6koR+g4SJg2+BeGiAhXhyf3+Diod8ZXx+hHZjcXOAanpxb3WZjYaEi3x3eYCEeoJrXHB8cn+Hg4h9hYd6iHGAbXCChY2CgnGDd3+WioyDd21sfYR+dnplaGp+cmFaeFtacm5OWHJ0Z2BLbnd2Yl5cW1l1fnNwWGdeZmtxX29PWGlTP1lnX1txa2h6clxbWWtlWWNweV9oXV5lbGhmbGlxeH+Hb21/fYF1cIJ7gIF/g392gYWJl4pxgo1xe4Z8enmElIx1a3p/bHB+dH99b3J8e5Nwb4F/eWaSioKhmJ2Rg4Znh4RwZ3qXin+AhYKaioF8jY1peHJsbGZfYW95bV9ib3lcZGyDemFxdl9kZdXrvoszOj6Lj4ByeYaKkI54hZmOf5SOjX9ubYWMi3V9j3+FgpWJfIN4bnaHhIKVdm2HhGt1e3VleYOEp4yDj4yDfW1/c3WCeISaj4uPkZKMjId/e5KIeYCFjoNsgHJpgH54bXx7gYqDeGJ5hIJyZHFpf252cnWCnIyBgIZ/dHZ+gHOBb1trfXN4iIGKe4Z/fIh3eXBrh4KOgohwgHd9k4mKfXNtanaAgHV1XWlpeXFaV35UW3JmTVtzcmZcSnJ5cV1bW1pedoB2aVpiW2dmb2NqTlhmUT1eZl1edmZfdXFbWVVvZFpkcXpcaF5gZ21namtpcHh9jm1qgoSAeW6Be32Bf4J6dYKBjJOFcICLbnd9gHt7iJOJgGl7fWt0fHKGe3N2fX+MeniEfnxrjIyEm52WjIKBbY1+bGl/j458fn+DlIJ/fYqIa3VxZ2ljW2Nnc29gYWx0YWhwiXphc3ReYmOboJBuXTZbsLZ1aoCJfpSHd4iZh3WQjIp3cG2FgoZ0eYl4iX2TiHp/c2d2iH18lm5vhX1odnluZXqJhaWHgIeNiX1tfXR+f3uKl4aBkpCYiYuFinyQinF8foZ8aX5ta4B7eWp6doKHgXJgd4J+cmRyZ3aDbnV8hpWSgn2CgHB3enx1fm1XbX11c4mAhXaGdIKJendybYh/jn+DcX17fJCHh3ltbWhsgoF1bl1oZ3VyUlx9T11yXU9cc3BkVkt0eWtYWVlaYnKBdmFeXWFnZGlqZk9aaE5BYWRcYHdhXHVtWFhTdWJaZW9zWGpfYmhrZ21saXB3fJNsaYSKfXxwf357gX+CeneAgImLhHJ7h29xd4R/e4mNj4RqfntueHl3ind9eICCh3+Efn56bYSMiJijjYWEfHaLemtthYmTen17gpKAgH6KhHBycGNmXllnX3BwYGFocGZqb4l0YXRvW2BkanZ7f7+dqKXJuHKFhHSVfnqJlYR0ko6HcnNwhHqCc3WGdIh3lIl5eXFkd4Z5f5JocYN1Znd2ZGp8hIiegoB/jo59cX5yg3h+kI6Cd5WMlJCIgoh7iYpseXqAdWh7aWx/eXNpenaAg31oYHeIfWtqdGh7gWp2go2RlX98fn5xfHZ8dH5iVXV7cXKHgoF7gXCGiXd4b2+CgYt9fHd8enOMhIB1Z3BnbIiBcnBdaGN0b0xmd01fb1ZUWnRuYlFPdXliUlhYXWJxg3RcYl1pZWVja2RSXHFJRGRiXGRxXlx4aFVXVnheXGZuaVdsXmFqZ2Vubmhwd3qTbmmIjHl+c3t+eYKBgnx2fYOIhoNwdoNzbneCgn6Ii5R/cYB8eHp6gYt1g3h/gYGChHqAdW99ioubnoh+hnt3hnxodYeNknp/gHyJhoR2j4BncG5gZVxYZlltc2FhYXFsbGiJbmBzaVheY22Ad6naqciHiLNyinlxj3Z9iZGBe5SLgHV0dX52f29wf22FdJSGeHVsYHmBeYiNZXGCbmd1blttfYGQk4CBeZKSfXd6bIV0f4+Kg3KViZGPiIaGe3+GbXV3f21od2VtfHZtand2f398YGJ4hnpodXZjfnxodYePjpZ9dYB2coB6fW2AWVZyfW9zgYV9f3driIZzeGp0f4KCfHl7d3pxiX97cmZzZG2LhGxzW2pgdmZJb29NXGNYV1Z5bWJQU3V3WVFWWF5hcoVwXWFjbWVjXm9jVV5yR0JmX15naV1ae2NSVl12W1tna2FXa2BgbmZmbHFocHZ4j3Rrjo12f3d4fXeBg4F7dH2DiIiDb3F/dXF1fYWBiY2Le3d/eIR8fYWHeIh8fYF9hIB7fnJ2eIuOn4yJe4p3dYN6Xn6Hmo16h4R0hoeFd4l7Ym5tXGJbW2FVanRkYFtob3Bnh3FhcWZXXGNrf3zKzoe6omtub4tucoVzfoaMf3uThXp5dHp1dHpqbHZjhHaSgnZvZ198gXmLiGRxgGpqcWNYbXuGnImDgnKXk3d9e22Gb4CJioZwlo6QiIaMhHt5f3JycH5naHJjbnhxamxxd318eV1leoB4aXV5Z4J3aHWIjI6VfXOHam9+gHhufV1XcH1tc36IeoBubop/cHZmdn5/foB1em95coV6eHFlcWBtjIFrclhrX3ldSXBsT1hWX1VWfGtiT1R2c1JSVFdeY3WGal1ha2tmY1pvYlljcEdBaF1hZ19cVnxeT1ZmcVpbamhdWGhhX3JmamhxZ3Fzdod5bpWKdYB7d355g4eAdXN/hYWOg3Bwe3h3dXmGhYeMhnp8f3WLfn2Gg4SHf35+fYZ/fHh2eXaSlJ9+jX2LbnWAemSEiJiGdJKKb4WGgnqDdWNuallfW11dVWhzZWBZZHJyZ4FyYWtkV1pfaX94vq57n7huYnSHaXV9c3uFiHt+jYB3eHN3b3p2ZWpvYYd1joFzamJefXd5i4JlcH1na2tbVm94i6SBhX9wmZJxf3d0gGx/gI+GcpOHjIiFiYV9eXVzcGl6YWptYW12amdra3l3endbZ318eWZyfm6FdGZ2ho2GloBwi2dre4N0bHViW256anN6iXqAZXSGfG1wZ3R9dnx+cHpqeXl/eHZvZGtgbYl9bG5WamF4VkxsbVBTUGlOWX1oYk9VdmxNUVRVX2h3hGdeYXFpZ2FXaV1dbGlKRGpaYmVXWVV5Wk5Xb2tZXWxlXVplY150ZmxlcWZzcHSBeHCZhXaAf3h/fIWHfXVzgod/lYNuc3l7e3NyhYaIiYR5gX12j399hImOhIGDen6Lg3t3fHd2mp2YeoqDh2p2fn1thYWVgXOPgnGGgn+CgHBmbGdYXVtcW1RlcGVfWGNydWl2cGRlYldbW2h/cG9ygHOKZWZ6f2p2d3R0hYZ4goV6d3R2bmt6cGFoa2eGdI2DbWdeX3xveol8aGx3ZmpkVldzcI6nfYR8dpaQc3txe3hseXqPg3WXe4iGhIeEfXVxc21odV1taWBsdWRnZml6b3tyWWeBdnVocIF4gndjeIWLfZWCb4xrbXuBcWZzZWBreGZwdYh5fGF1g3Vpa3F0eW94d3J7ZX19fXZ1bWNkYGyGfG1rVmpjclRMa2xQTU9wR158ZmFOVnVlS05UWGFseH9mXmdzamVgV2RYY3JeTEtrWWRiVlRVc1ZNWXdlWl9sYFxbZGVfd2dtYm9pdG9xfnV0mYF4gIF4gH+GhHp9doKDfpiFbnJ0fHt1cYWFjoKBeot1dJCAfYGVjoCFhHx+jIZ6foF2e6OminmJhoVsdXx8dYSDjXtvhnR6hX2Cg3VuamllVl1bW1pTY25lXFlidHtqaG1oYGFXXlppgGlrcIBobWJpe3prdXV1cIeCeoF+d3Zue2hqeWpfZW5ogXeQhGdlWGF2aX2GeW5pb2ZmXVVYb2iPqHeBenyQjnh0bn1tcXR4jX53lHSGg4CGiXZqc3doaW9cbWVebnNfZ2JqeGh7bVttg3N0am+Bfnp4YneFhXqRhnOIcnB6f3JjcWhbbXVkbnGGendhcoBvZ2l4c3Frd3ZzdWKCeX11dG9jYmJsfXxra1VpYmdUTG5oUEhSbEVheWZiTVRyXkpNVVpmbXl7Zl9tcWpkXVZgVm9vWEtUaVhnX1lOVWxUS116X1xfbF1dW2JlYHpobGFucHZub3d1eph9d4CBeYCAh4Z6eXqDfYGThHF0dH96dnSFiJB+gX2RbHOVgXuCn4V/h32AfoaCgIp7dYSsn396iIiEbHKCenaBgIJ1b4hvfYB0ioBqb25lZFhfWlpaVWJqZ1xaX3WCaV5tbFxhV1tca4FlcnR9ampebXh3aHV4c2+HfH5+enZzbHpoaXdnXWRzZ3p3koBjY1Rkb2aBhHZ2ZmhpYVdWWWhkkKhvf3d/io56cG97ZndteYp6do5xhH5/gIduZHd0ZWhpXWxiXnBwW2dfbXVlemhddIBucmtxe392dmR1hox8iYiAf3hydX50YXBsWHBxYW5vgnpzY3GAa2Bsem5paHl3c3BkhHR4eHRvY2BjbXN9amxUaV5fVUx1Y1FHV2JHY3dmYUxUcVlLTFhZaW13e2VlbnJmY1pYXll3ZlVLXWRYaVhaSVdlUUljeFtdX21bXlxiZF5/aWpgbnR4bW9udoOXeXKBgH1/iYyGfnV2hniGjH10dXWCeXp6goyOfX+FiWp0loF7ip19foV5gHt+fIaJc3GProx8fIeQfmZxiHp0fn13c3CGbXx+bZB6Y3BwYmVdZVZaWVdjZmtgXV10hmhYcG1bXlhaXGx7YnF3dm1jXG50dWl2d3Juhnl/gXp3b290ZWh0ZVtndWZ2dpF5X11TZWVqgoFzfGFiaVxUWF5jZJClaXl0goWQeGxteWZ3bHuDeXSHcoF5fXmAaWV3bWBnYV9rYF51a1lmXW9vYnplW3d8a25vcHh5dHVmc4OTgImDiXp2b3J9cmF4Y1lubmBvcIB6c2VxgGRebXVoY2Z4enJsbYFzcXtxcGFdZG1vfWVpVGhZWlVOeV9SSlpZSGN1ZGFKVW5VSkxbV2ptc3tkbGx1Y2FZWlxid1xUTGReWWpUV0hZYU5IanZYX2FuW1tfYmNdhWloYm54eW1vanaBkHlug36AgpKIhIF2dYl0jIZ0cXZ2gXd9fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OHhHNwmaJ7e3+JlnlldYh6c3l3bHRwf2x5fHCSc15wb2FnYmxUW1pXaWRtZlxccollU3JuW1lYV2BsdmNqdWpqX1tudXNudXR1a4d9f4F8d29ubGRpcGNba3JkdHaOc1xXVGRgcX9+cYFcYWNeU1phXGSTn2VycYWDkHNranhsbm55eXpxgHZ/c3t6e2RmdmheY1thaFxfd2hXYl5waGF3YVt8dmpqcm54dHR1anKCloSHf4V2c2pwfG1md1dbaWxhb3F/eXNlb35aYHBwYV5pb3xranJ9cG92anBgWmRrbXthZ1RnVVhTUXdcUlBZUkhkc2JgR1ZsUUlQWlVrbGt8ZW1vcmFbWlhabXFYU1BnWFdpVFVHWlxPSXN1WGBjbmNYYWFhXoxqY2Vtenlsb2l2eYZ7a4R9gIWZfIKEeX2IbY+GcW92en10goJ9i4+Dg5d0eIKUhYGfiXWBgIF0f4Jwh4N2b6KXdHuGjId7ZneLb258cGd4cXtsc3ZzjWtedG9iZ2ZrU15cVmhibGxbXHGMZE5vbVxWV1VnaXNoY3RlZV5acHZwcnZ2emyIfX99iHeQc2Nka29hXG5tY3N4h2taVFZiY3d8fHCEXGNeY1RbYFpjl5VjbnCChYlyaWZ5bmRydXF6a3l0dW97f3ZfZ3NkXF9XYmRZYnVlVV9gbWRhcV1dfm9oaXNxdHF1d21thZSDinyFcXJnbnxvcW9SWmVpZHByf3VzYmx1VWJxaltebmR7ZGt1fHBxcWltX1hjaWp4XmZVZFVXUVZvWFFXVFBIZXJfYUZYa09JWVRWbmlkfGlseWtiV1xWXHVlVFJWaVJZZ1VUSVpbUE55d1tfZW1qWmJhXl6PbmJnbHp2bm9pdnZ/fm2EgH6Gl3t/h4GKf2uTiHJndIB7dYCDfomOf4yTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOCjYx3eG56jWBlfXFnenR5bW1xd4NnZHxtZGdnaFNgX1VnYGxvXF5ujmhNaWxgVVZTb2dza2Z4ZWZeWnJ2b3R8eXRuint/d5x7emthZWxtXmBuamVxeX5nWlZYX2x4e3pvg15hXWhWWGBYZJyIYmtwgYZ8dmtqdmxbdXBqeWl1cm5vfIFzWWtuYFleVmNkWWVxY1RfYmlhYmxaYH5rZmx0dW9teHdtaYaNgIp7iG1xZnB7bHFsYVhfZ2ZucoBzcl5pbFNlcGRVYm1heGFvdHp0aW5ral9XYGZodVxkVmJWVE9ZZ1NPXU9QSGVwXWNHWmpOSmBLWG1lX3hpb39lYFVeVF52XFVSYGdQXmJVVEtcWlFadnZdX2ZtaFhjYVtejnFjaGp4cnNtZ3ZzeYNzgoN7iI5+fIqIjnluj4p0bHOCdH9/iIWHkoSVj3p9jI+IkZuEgHyNhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpSTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjY2NjY2Njo6Ojo6Ojo2Njo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPy8xMTEwL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERDR2RoZ2dnZ2hNQkNDRERDWGhmZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIaCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTQ5XGBfX19gYUE1NjU1NTRNYV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fn1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmHh4iIiIeOkJCQkJCQjIeHh4eHhomSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaIiYiJiYmJh4WFhYWFhYeJiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkZKRiYeOipCSk5GLkI6LjYWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjY2NjY6Ojo6Ojo6Ojo6OjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQi4WIh4qOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCIhYWFiI+JjJCPj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkIiFh4eIjIiOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp+fHZ2eHx8e3x9fX19fX5+fn5+f35/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4SJiIWMiI+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pio6Mi42Mjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5eXt9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Pjo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fH1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fn9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fn5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTk5KTk5SVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOSk5OTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGSkZGSkpOIhZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCSgoKSkJGRjnWGkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9+f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CIcIWQj5B8dYiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4xzb4qPinJ4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjXdte4+Cc3iGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/f39+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHc25vhHt1doCFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxZWFhXVFBRUlNSU01NSklGRUhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3RiXmRfYmxxZmhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYl1qbF1mZmdlY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hJSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpaandtYm5yamFZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtrcmxhbXVyZlFRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OXWNva1lpc3VwU01PUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZCRkhVYmhrb3BvbWxaTExOTU5PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVDRkdITVpnaGdybm5oZmRgXl5YTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gH+AgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7PklaXVpcZWxua29tbWxraWhrZFNHRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7Oz1LW2ltbm9qb21raWxtZlFHRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYGCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozo9SGNvc21ubGpraFVDPkNGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN0cnF0eHh5fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5PUpgc3RwZ1Q/Ojs9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT48OkJsfGo/OTs+PT4/QEBAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO1tuQD5ERT9AQURfZDs9PTs6PT5BQUA+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKR1ZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo6bXdJODs6PT5BO0hkPTw9PDg6Oz8/PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw9PUlMRkV1dk43ODg6Oz4/V2pBOzw8Ojo7Pj8/PT05Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtcf4N/enx3Vzw9Pz09PkVodEw6PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFHcnlrYoOEg4KDgH1ePkBDQEA9SnN7WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEVvdH2CgoGDfn2Edk1BQ0VAPz5Ze4BdP0NFSUlMUU1NS0VDRkdHRUdFRUVERUNBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTmlaT1BOSUdJSEhJSUhIR0dISEVDRUVFRkZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSEtWc15WUUtISEhIREdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiIRWbISHhoaGh4iIh3xQSlluZV5dVEdDTUZAQENDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREZHSUpJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pUgYOEhIKChYaGhIKGhYSEhoaGh4eGinVKYGJhYWNlU05YPDw8Pjs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgICAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpJSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMjnFoaGdlZ2lmaEY2ODg5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJR09SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouMjHhtbGloaWpZNTY1NTg3MzU2ODo4NzY1NjU2NzY3Njc6Njc4ODk6NzU3ODk3OTc3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDY3ODg9Oj1FQ0JlhYOBgIKDg4ODg4aJi4qJiYqKioqLioqLiXZtbW1sbFU3ODU2ODg1NTc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc2Njk6OTg4Njg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhIWGiYqKiIeHiIiKioyLiouNiHJub29wZUA+Ojs7PDk6Ozk6Ozo6OTs6OT09PT47Ozw8Oj47OTs7PDs8Ozk6PDg6Ojo6OTk5PD88PEFCRElKTUtJS0xXb3JzdXN2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuKjI2OgnJycXFjR0ZDQkFCPkBDQUA+PT4+QD8/P0A/QD09P0I+QEE/QD89QEBAPj9BPD48Ozo7Ojk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4uMjY2NfnJzclNLSktISEhFRkhHRUNBQEJFQ0NBQkNCP0BESEVDRUNFREFGRUZERUZEQEI+PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyMjIyLe3p0XmddUEtLS0lKSkpJRkRER0hHRENFRkRCSElLR0hHRkhHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjY2NjI6Je3h7b2dVTUxNSkpLSEtHREdJSElFRUhGRkVMTE1JSkdHSElKTk1PTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7Oz06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjI2MjY6CeHJVUlJPTU5LSUlGSklFS0lHS0pJSkdHR0tMTkxMSEhJSk1RTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNUbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIyMjIxzW1ZUUVFPTEtIR0NISkhNTEdLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pISkpMSkxGR0hHRkZJRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIyMjXxcW1dWV1VRTkxLRUZHTVBPUFdVUVBPUVNSTVNUT01TTFBTVVZSU1JQTEpNTU1LTkdHSkZGSEpFREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09QkBCQkdWTkZOUFBUWHuGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyNj4yLi2xdWm1iR1VTUlFLOztTVFNgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl4ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0dGRT8/QUFFQUNHRURFTFhSTVRVVlhafIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH5hiouLh29fZ1g8WVpZVFE/QFdWWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFVUVlRPT01KTEpJSUxNS09NU29zdnh5eHd5eXp7ent8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mLjHtxclpdXVxTVVNXV1VbWnWDWVV9kGFcWF1fV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeEi4BoW1xdWlVXVVhTUlhWY5aAUmVyWFpXX2hQYGZbW1hcZ2FHT1poZ11bXF1dV1JPU1BQUlZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRUFJSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn6AfV9TV1pWU1ZUUlJNUE1MZnpbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtcXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a39+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHem9yWUxNUFBNT0xKS0VGSUZDP1RkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3x9e319fX59fX1+fX5/f39/f39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eXFlVUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ2YF5ORUBEREREQ0FFUUNFQUM+Q0lHVkBITkxHXWlQSEZORkRFRklHSEJESEdJS0dEQkFEQE9RTVJkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn+DgIODgoCCgIKBgmxOSEFBPDw+QEFAQD9rUUtgRUZISUVCP0dMTkdNUVVJQUU/Pzw9PD09Pz0/QUNDQD89PUI+Sk5HVW51dHVzdHZ4e3x7fHx8fH19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVlVXUVFXVVBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZURCQUI9O0NDQkJEQlxdT3tOT09OS0xNT09RTEtNV01IR0BBPDk3NzU5OT07Ozs4Ojg6PzxCSD9cc3R1dXV2d3l8fHx9fHx9fX1+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BfXFpJSFBSUU9NUFFOUVJUVlhTU1lUT1laW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEdISENCR0lGRkVETVJQYVdTWFFQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BWV15aWE1LVFRTUFFVT0xSU1RYWFRUWVJNV1laVlhYVlhZXVdXWGhza11WYXNrYmFfXmRhX15ZVVFOT09NSUhKTEpJRkNRUFNbV1RUTlFTWVNcZVVPU1RSTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTpHbXJ0d3h5e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQU1VXVFVSXW5eUk5aX1tWWTtEVlhUW2ZKTFBTUk9OTU5OTkxKRlFQVVlTVE9KT09VU1RcVlJVU1JPTUxJSEhGPz48Ojc4NzY1OTk2NzY3NVdvcHN3eXp7fH19fX18fX18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF1SVFpWV1VUV1RSWFhZWVlTVU9KR09QT09NUkpQUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBTTUlMS09SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0hGTE1QTUcvRV9SPjM/PmpvYVNSUUBHVFFQUVBRTlFPUVBMSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR1eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nVFFTQUdVUE9RUVBOTU5NS0xLTE5PT1FMT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9e3x7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTExLSTw5ODc7PkA+PD1BQEI9PkVIR0NFRklHSkpARkFBQEZIRUpPSFFSYlxRUFJPU09PUExMT01MTU1OT05bV0tNUU9HSUhDSEpMTEtGRkZFP0JDPjxCRz9CP0FkcHN3enp6e3x7enp3e3d5fn58e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENEPTk3Nzk/Qj47P0JAQD5ARElFQ0dHSUdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xOS0xNTU1MTE9OU2ROSkxSSElJRUFISkxNTkpHSUdCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg6Oj9CPzxBQkFBREVHS0ZDSElHR0hDQz9CPz9AQT5ERUNLTlJUTEpJTVRGSUlKTEpLTElKTU1PUFJQSkdDTEdDQkpJTE1PTklKSUdDQ0NESEpNTElZcm13eXh6e3p5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFHS0RHSEhHSktJSktERkI9Pj05OTo7QEI/PUFCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISkxNSEpMSElKTEtNXVJISERORkFDSkpNTFBNS01KS0ZHR0pOTlFOTGJtaXZ2d3p5e3p9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjpAQ0A+QUNERUlFSUpMRklJR0ZGREI7QUNDPkBDRENER0xOSEtOSERIRUlMTk1ISUxHRkdJSUxOS0lHRU5IQkZNS01MT01NTk1LSEhJT1JSU05SZmZmcW9zeHV7enxsaGpuZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lERkZFQ0NDRUBEQj4/Pjo7Oz06PT5DQT5BQ0VGSkZJSExIR0dHRkVDQD1ERUI+QUNDQ0RHSElHTVBKRkZHS05PS0ZISUZFREVJSkhKSUZIT0tDSU1LT01PTk9QTkpKSUxSVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPUJBPkE9Ojo9Pzs9PkBCPkBCREdKRUlGSUhHRkdFQ0JBQUZGQ0JCQkRFREdHSUZMUUxJT0pKTUxJR0hFR0ZEQ0lJSEtKR0tSTUJOTk1QTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmVmZmRoaGZuamZtbWhra21yaXF2dHNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd3dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREU8QUBAQzw4Oj0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDR0VCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFSUFBRTk9NTlBNTE1TV1ZYWFVYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRTw/QkJEPDc6Pj06PjpAQj4/P0NFRkRGREVIRkRFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR05LTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFJPUU1OUU5NUFdaVlpZVlpdWVhhYGFgXmhlY2BkZmhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXd1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSEhHSURCQ0hFPEBFQkU9ODk+Pj08PEFCPD8+QUFGQ0ZDRElFREVFRkdHR0lGR0tIRElIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5LT05PUlVWT0tVV1NQU1FSTE9RUE9UWVpZXFpZW15eXWBjXlxhY2tiYGRnZ3KFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdExJS0lLRkJFR0U8QEdDREA6PD9APz4/QkE8QD5BQUZDRUVFSUVGRUdGSEhGSEhJS0pGSkhIS0hGRkxJSEhKR0xMTUxMSU1LTk1NUExQUFFVVldPS1ZWVVNTUVJMT1JSUFZbW11eW1xeX19hYGFkXWNgZWZgZWhqZHNzZmpnZ2tvcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQ0VERTxARkREQzs/P0JAQEBDQT9CP0FDSENGRkdJRklGR0RJSEdJSEpMSEhKSklMSkZKS0hJS0pHS0tNTUpKTU1OTk5QS09RUlRYVk1OVFZUUlJRUE1OVFNSV1tdXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTExMTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hISUhHSkdDSElHSEpGSUxISUpNS05MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAREJFRERGQkNFR0NDSUZDSEpLSUlLR0RLSkdISklJS0hKSk5MT0tJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQ0ZFREZCRkZHREVLRkZKTUxLTExHR01JR0pLSEtLSUtLTkxNTExMSUxNTFtzYmRwXmxtVU1OZnNdZmZxbG50Z3BpX2FZbm5icHBia2pqZm9xdGV0bm9cb3VncE1KcXl2a2Fga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdCRkNGRUZFRENISEhERUtIR0xOTkxNTUZKTkhKS0pJTEpKSktMTU5OTU1KTU1OW3Jvb25wcGxrTVBRbFdNaWJ0cnBhbW51XFlsUFxubVpxbWtvbXh4dHNpcF1fcmtxalV1eXhvY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGR0JHRElGRUVCRklISUVITEpHTU1PTE1OR0xNSUxLSUpNSUtKSktPUE9OTUxOTkxcaGR1XWxxV2xOUFFtVFlrXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNHREhHTEhFQ0NISklIRkpMTEZOTExTUkxHTExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5Zcmtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmltdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFBPkREQkdESElNSUZDRkpMSkdGS05MRk9KS1dSS0dLSkpOSUhKTElLSkhIS01NTU1JS0tLU2tjW2leX2ljcnJaX1lqbl9lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERUNGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElHS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSkpPUFFkcWlUWVdcW1xWWVtdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZFQUVDQERIREZHQ0lLTEhGREdLTElFR0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJR0hJRUZMSUpMT01KUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSS1lhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CRENCRUlFR0dGS0pLSEVFSUpLRkVISFBLTU1KTVJJR0VBSEZKSUtMSkxKSEZESUZERkdFRktIQ0pOTExVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOX1xeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoaGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNHSEZIR0hLSkpJREZLS0tFRklKTktOS0hMTkdIRT5HR0xJS0xLS0tJR0RIRENERUFGSkVASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFYVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR4eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFR0lGR0hIRkZJR0hHSEtJTERES0tOTUxLSEtKSElGP0dHTktLS01LS0tJRkdDREBEQUhJQ0BJSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUVtXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGREZLSkZGRkhHR0lHRkZJTEpORkRLS01OSkxJS0pISEZCSEhRTUtLT01KS0lHR0VEP0VDSUlCQkdGRVRdWV5YX1lfW11VWFhPXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYSFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBSEZER01SSENRSkVHSEhFRktKTVBFRklKS05MTElLTElIR0RIS1FPTU1QTExKS0hJQ0RBRURJR0NCR0ZEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1PWWFcYGBfYmNiXWFiV2BfVFBPT09XUVxbW1xcXl9iZmZlbGVvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUpLTkxLS0xLSUpHRUpOUVFOT09NTkxNSEtBREFDREdFQ0JFR0JNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xQU1JVWllXWVhYZFdPU1RQUE5NT1RTWlhYWl1cYGFkZWNnY2tscHNyeXl/e3p/hISEhYSEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hMR0hKSEdNTFFRSEtLS0tOTVVOT0pKS0dHS1BTU05QT05OTk5HS0ZgRURfTEVmZEVOXEleW3JtT01VbVlMRFBgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgIODf356e0xJRkdGSEVFS09TSUpGYFRISU9KSU9NUlFMTUxMT1JVUk9PSUtNR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXJ0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbX1ZWWH9qdHV1Xl92XldhW1tmW19gYWBhXWBhZ21wbGBwd3R4gYGCg4OCf31/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEZJS0VSVkxLTklLUlhXUU1PT01RVE5PUU9LS05HTVBTW1pTUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29ycnt8b354boByX2BgYmFaYF9na25rYmxmZ213foGAgn57eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOS0dgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5LT0hRUlRZV1ZQVFBQUFFLSGd4bGN4cm1bS05WeXB1bXVib3ZQZWVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/b2hvWXZ2anZ1cIBfcmZ9aWx4fG9eX19iYVtdYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncXl7c3J2eX6Bc3V6bnx9eXhyb05LU3VOQ0JGUFBISktJS1BPT09NUFpgWldLVFdQYV5SVlFZUkxQSVNUVlhXV09VUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnZ2VlXmFiaWlpamtub2txb21qcGFjZmNvd3hvbXBzeX5ucXBre3p0c29tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xYVU1VWVVlWFJSWV5TTE5JVFRWV1lXT1NOTk5SSVJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9acHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbGB2dWtpdXt6bX54a3xwXF5eYlteYmRkZ2VlZWJaY2Npa2tyc3J2Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ua21PSEtLSEpISFFQTE5PTEtSUlJPU1JXUlZUUFdaVlZUVFRhX1BOTUtUU1RRVlZOTkxNT1BLSFFOUFVMS0xTVFRTVFBWVVFRTlFRWFlSTlBVVFhYWFtbVVJTV1tXWFhaT1NVV1hYUl5ZV15WVFBZUldXV1dYXlpncl5bW1lcXV9jWl9jY2RmZGNjYlpjYmdmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdnanVqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09MTVZUUU5VU05PTUxRUExKUVFLUU1LTFBSVVNRUlNTSUhMTk9RUlFRUVRWUlhXXFdTUlBSVFVWU1pRTlNSWFZUWVZVWlZUUlVUVFVXWFZcWV5gXVxaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWdqa2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEpOV1NQTlVQTlFOTFNQTU9VU05STk1PUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXVlZZW1RQVFVYVVVaVVdaVlNSV1ZVV1tYWl9cVVheXF5dW11hYV5bYmJjZ2ZlZGJYX2FiXWBnZGZlYV5fXV1eWlpgWl9nYF5dXWJoa2FnZmhmZGBiY2JPTE1MUVFMT1RPT1NRT1FbWVdXWFtZWFlWXWpkVlhZWldWU1NPSk5WVFBPVVBQUE1NUlJQUlhUUVFPTVBUVk9YUlRVVU9OTVFUVlVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUVlZWVllUWFhWU1JZV1ZaXlldX15VXlxeYFxbX19fX1piYmRoZ2RkYlhhYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xYWltkcW1oZF9bWFZVV1FMTVZTTU5ST1FST0xRU1JVWlVTUFBNUVhXUldTU1NYTU9PUVRYVlVVU1VZWFteXVtbVlFOVVZVW1xXUlNXVldYVlRZW1VUUlpYV1xeWl5fYFVhXGFhXWBiX1xgXWNhY2doZGZgWWNgYV9fZWRfYGJbWlxbXFlaWVhXXFpcW2BeX1teXmFgXmJcWWBbUU5PTlZRUFRRT1RUU1BXXFxcWF5cXlZcXmpxd3mAY1xbVVVXUU1PVlNOUVFPUlRSTFJUVFlaV1VPUk9TWFdUU1VSUlpPUFNSVltWV1dTVlpYXF1bW11WU01UVVVcXFdSVVZWWFlTVVpcVVNTXVhaXV5cYGBgVmFbY2JdYWReXGJhY19jZmlkZl5bZGBhYGBjZV9iXllaXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1xUV1dRTlJaU1JRVFJUVVRLUldWW1paU09TUVZWVlRPV1JTWlJUVFRYXVdYWVNYXVheXVlaXVRVTlVWV15bWVJVVVlZWVVXWlxWU1deWl1dYFxiYl1ZX1tlYV9kZF5eY2NhXmVmaWRmXl1kYWBhYWJkYGJeWFpfW1xbWFhYV1dbWVtgXFtbXFtYWlteVl5ZXVFPT1JaUFpUVVZWU1RUXl5gXl5iXGBVXV5ia3l0bH1rWlVZVFBQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUVdSWVhZX1taVFVWWllaV1haXVdVW15dXmBhX2RjXF5dXWVhYmZkXl5kY2BcZ2RoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU05QVllRXVVWWVdXVVhfX2FhYGNdX1RdX2JlZXWBemhXWVlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSV1NXV1VTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWFRZWlphWVxWV1hbWltZWVpbWVdeX2BfY2JhZGRcYlxgZmFkZmReX2RiYltmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlNZVlNcVFZXWVZWXGBhYmNgY15fVltgZGFfenVvaFlbWVVXVFdbWlpcWVhZYFdQVV5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1pdXlldVVJZV1lZXWJaXldYW1xbXFtbWlxaWl9fYGBkYmNkZGJkWWFmY2ZmZV5hYmBjXmJjaWRjZ19nXmFiY2FhYF5fWFRbWlpbW1hbWFhcW1pbWFdZWFdcW1tgXVZdXVNPVllWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheW1xaVldYWVxcXV9bWVtiVlRYXl1hY1xSVllQV1dXV1dWU1VUWFxcXmBgXWBcV2FeW15bWl5YVVhXW1tfYFxfWFlcXF1eX1xbXVlbYGFeYGVjZGVlZmJYY2VkaGdkXmNgYGVjXGVpZGVpX2ZdY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWVhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXllcXllYVVdbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZWNlZmVmYlpkZmZpZ2JfY15hZmRaaWhiZmljZV5iYmNhYGBfXV1aWFxZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVZcW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZF1cWFtiZWNhUlxaT1lYWltbWldaWWBdYGJiYGFjX1xiXV9dW15dWVlUWF1dX2BfYFxbXl5gYmNdXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGNnYFxpaGJoaWVkYGJhY2FfYF9cXVxZXFlYV1hZWFdcWlpXV1hPWFpdYWNmZnJrf0pZV1xaWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5ZWFVbX15dYWJgXltgYWJmY19dVF1gYWNkZGZlZ2VmZmVeZWZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX1xdW1pbWVhYWFZaVlxbWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4SCgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7enp6enp6ent7e3x7e3t7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3p6enp6enp6e3t7e3t7e3t6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIkMzT0tLS09WehomJiYmGs9bS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIqU3ebk5OXk56WJjIyMjIi/6eXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5eXl5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2EhYSEhISEfnx8fHx8e4GEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV5dnZ2ent4e3h3dnd6d3l6en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3l5eXl5eXl6e3t6e3t7enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2eX18fHp5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjYyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fX1+fXl7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4SEgoKCgoGBgoKCgoKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3dnt9fHx8enx5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp5en17fH16fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4e3h6e3l5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKCgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mFhIOEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4OBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7e3x8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYGAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoKCgoGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXFxcnN0dHR0dHR0c3N0c3NzdHR0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXFwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm5ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoKBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzc3NycnFxcHBwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubm5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgYKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXNxcnJxcW98gm9wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKBgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFwh4ZwcnFwc5iCbnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGBgYGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF9oYJvcm+LnnxvcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKBgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFycXWdoXZxd5+cfW9xcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXFxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgoKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZiokG+Co51+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4GDeXJzc3JycnNycnNzc3Nyc3Ryk6mkeYihnnxyc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f4B+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn18dnZ3d3Z1eHp4eHh4eHd4eXmftKmkp6mXfXt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7fHt7ia+mobWqrKN+e3p6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2YpZaisqCZp5N9gH99fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+gIB/f35/f4CAgYCAgYCBgZycjqCwoJ+in4CAgYB+fn9/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYGAl5qOmLGhmJWchXx+fn5/fn5+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+foCBfn6fq6SXpJublqGfhn99fX+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgYGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KDg4aOn7KooqCZnZ2mqKyooJmRh4GAgIGAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4aNoK2xppuaoJuenJydoaSjnZSHg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYOLl5qXlpigm52dnZmal5CJhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj5CSkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBho6Uk5eanJyblI+Jh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5OSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDhIiQk4+UmJKHg4KFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgYKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGTkpCOkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKBgIebiIuHgoKCgYCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAf4OIjoCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYmGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/f4yVgoKBgoSCgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkZGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSk5CNjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgZCMg4F/fn18fYycjoCCgYGCgoSUlIyBgoGCg4KBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYSFhYSDg4SDhIOChpSUkpOSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX17gZiMgIOBgYGAjpSMkIGCgYKCgYOCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGVn4p+foB9h4t+hISDhIKDg4KNiYWMgoKDg4KKj4KDg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhH2GiYB+hYWFhIWCf319fYCDhIODhpiPgoOEhISEhYODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaGhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39/f3+DhIONmZWSiISFhIWFhISEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhZSbo6uik4eFkIeGh4aGhYaFhYaHh4eIhoeHhoaGh4eHhoaHh4aGhoWDg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaFg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+Jkp2lpqaik5CSiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aHhYODhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGCgoGBgYGAf4B/f357eYmYl5yhoJ2dmoyIiYmJiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeHhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSSkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fXx7fpKbmZ2enJ2Th4iJiYiJi4qJiYiJiIqKiYuJhoaGhoeFhoiIiIiGhoeEg4OEh4iIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn19gJWamZuamZKFhoeHh4eIh4eJh4eGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgYGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoOBfXx9f4B/fn5+fXx9fnx6gJaZmZiVkoKChISGhYWDg4WEhISEhISFhIKCgoGEhIGCg4OFhoWEgoKBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYWEhYSFgoGBgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4GEhIODg4KCgH19f4CAgX99fn59fH19e3t6hpeXlZaPgYGCgYKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgIGAgYKBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goSEgoOCg4J+fX5/gICBgH59fX19fn18enx7ipaWk4SAf4B/f4CAfn2Af36AgIF/gICBf3+AgYF+fX1/gIF/f35/gIB/gICAgH+AgoCAgoGBg4GBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GBg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foCDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6e3t8jYyKi5eMfX9+fn9+f4B/fn9/gH+AgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp6enl+jI2KkY+Bf35/f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f36Af39+f3+AgH5+gH9/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp6enmGjoeCgoOCgICBgH+Bf4CAgIGBgoKAfoB+f35+fn6BgIGAf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEhIKBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WCgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXx6enl5eXuFhIKChIOBgoOBgIKAgoGBg4ODg4GBgoCBgH+AgYOBhIKAgIGAgYGBgIGAgoJ/gYCBf4CAf4CAgH5/f358fImUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgIGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYSEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl5eHyCg4SFg4GEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCAgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGBgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4eHl5en+Cgn+Di4SDhISEl5eDg4SBfX6BgYKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDg4SDgoODgoKCgoODgoKRkIuIiIeJh4aGhIaFhISEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHh4eHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl5fICAfYeUg4ODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhISCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6e3x9gYKBgoGDgoB+fX9/e4iRfHyOln99f3+ChoqFg4OEg4KDjYl/fX+DhIWFg4WGhoSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYOEg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXl9fn+Af4F/fXt8f359gpWRf4SIfXx+f4KEfHyBgoSDf3+Hg32CgYCCgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e35+f39+fn5+fXyAgYB+ho+Bfn2Cfn9+gIJ8fIB/goCBgH58e4qCfYB/foGAgIGCgIKAgICBgH+LlJCMjI6OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoWEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX+AgX1/f4B/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gZSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3x8fHx8fHx8fHx9fXx7fHx8fHt8fHx6enl7fHp9hYODgIGBfoB/f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhYOAgIB9fn1+f36LhIGHfn18fH9+goJ/fX19fYF8e318foGEg4GAfn5+fn18fn+AfX6Afn9+hJKNjYyPjYyKhoSFhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen5+fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX6AgIODgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx9gYKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISDgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9e3+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fH18fH18fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJioiKiYWIko+NiYqHhYWDgoKDg4SDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn5/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg319fXx9fH19fX19fnx9e318fX1+fX59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiYyRkI6KiYaFhIKCgoKDg4ODgYGBgYGBgYGBgYGCgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fn1+fXx8fH59fX18fX19fn19fn58e3t7fHx9fHt6e3t5enp5eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH+AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18fn98fX18fX1+fn1+f3x9fHt8fX58fHt8fXp6eXl5eXp7fn6AgYOHhIiPjouKh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKFhYSCgYGCgYKBf4CChIF/foGAfX6Bfn1+f4CAfX6AhIB+fn99fn19ioV9fn99fn6Afn19fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY6LjIiFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICBg4F/gIGEgX5+gH99foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fXt7e3x7fHx9fXyKiomJhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgYCAgIOAfn6Af31/gH19fn6AgH+Cf4GAgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e31+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19foB/f4GAgYCAgICBgX5+gH+BgH+BgIB/fn19fX59fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISFg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhISDgYCAgH+AgX59fX5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBf4CBgIB/fn5+fn59f35+hYWBgYF/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf3+Af4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4GDgoOAf3+BgYCCgYGBgICBgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH2AfX+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISBg4KBg4F/gIF+foB+gH19fX6Afn+Afn5/fX98f3+AgYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fX59fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWFgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p9eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hYSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398f4B/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgIB/f4GCgYB/foCBfn+AgoKAgYOChISGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB+fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1+gICAf39/f3yAf3+BgIGAgH98gH9+f35/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e3+FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYCAf32Afn5/f39+fX1+gIGBgH5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKAgICAfX5+f4B9fH58f4CBgICAgIB8gH+Afn+BgH9/fYF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3e3l3eHd3eHt7ent8hYl9e3p3enx9fXx8fX19f358fX5+fX19fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgoCAgYB+f35/f318fn6AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/foCAgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKNenx9fHt9eXt6enh6gYF4eXx8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+Af4CAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fXh4dXh4eXt8fH17fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgIGCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58e318e31/eHd2eXl6fHx8fHx7fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4SBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGAgYGAgH+BgYGBgYOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f316fX97enZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfH9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYOBgoKBgoF+gICAgoGCgoGCgoCBgICAgoKBhIB+gYOBf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0dnuEgoOCg4OEgoSDg4GCgoSGhIKDgoOEgYSDgYOAgYOCgoKCgoGCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhICChIKDgoKBgoKDgYOEg4SDhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX+AgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgYKDhYWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKAgYB7fYF+fHl8enp6fXx8gX56fHx9fXx6e35+foCAf4GBgYCAgICCgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSBgoSGhISDgoOEhIGDhYOCgoKDg4GDgYKAgoB9gICBgoOCgoKChIKAgoKDg4KCgYCAgoOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX5+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOCgoGBg4J/goOEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fn1+gYGAfn59fn1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIhoWEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4KBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+fn9/f31/fXt8fX19fX1+fn+AgYCBgYB/fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDhISFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKEhYuJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeoR/f39+hISCg4KCgYOEg4SEhYOEhYaEhYZ9hHl9fn+De4WDgISDgH99fn9+foGDgX17f31+gH59fHx8fX19fXx9fX6Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgIJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYR+g4N9gX1+f35/goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYSGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhIZ9cHuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fX9+fH6BgIF9gH99gH+Af319fHx9fXx9fn99gH+AgH58f36AgYGAgYCAgIGBgICCg4KCg4WHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fn2BfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIWFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WEhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39/en59fX99f39+fYCBg4OAgoOBgYSCgX+BgoB9f3+Bfn9+fX6BgH5+gYKAgIKEh4aDg4aEhISFh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhYSGhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3B5fX1tfXVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEg4GDg4SDhYOFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WDhISDgoF+f357fHt+e3x9fn9/fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoeFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaHhoWEhoSFhoaGhoSHhoeHhoaHiIiIiIaFh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISGhIaFhIWFg4aGhYWFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYODhYaGhISDhISDhIaEhoaFhYWDhoaFhoWEhoeFhISFhYOEiIaEg4OEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFhoiFhoeGh4aHhoeFiIiHh4WGhoeFhoaFgoSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4SHg4SBgoSFg4GAgIF7e359fHx8fn18fHx9fnx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9f318fHx+fXx9fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoeGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaIhIOEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH57e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhYSFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeIiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4SCf39+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYWFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhISHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFiIOEhYSGhoaHhYWEg4WFhoaHhoeFhoaGhYaGhIOEhYKBgoGAhIOCgn2BgX9+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt8fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYSDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iIhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4WFhoaFhYaCg4OFgYCBgICEgIOAfIGAfn6CgH2Af4F9gHx9fn1+e359fHt5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaFhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIOEhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFhoeGiIiGhYiHiYeGhYWFg4aEhYeDg4aEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B8gX99foJ+foB+gH9/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhoSEhoSHhoaFhYWDhIWEhYaFhoSEhISFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoWGhoOEg4aChYGBgH9/gIB+f4GBfH5/f35/gIKCgoSFg4KBgoSBgIOCgYCEhYSCgX+AgoOChIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGhoaGhYOEhIOEhYWFg4SDg4SChISAf4KCf31+fn5+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9+fn9/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGChoWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYF+gn9+f4J8f359fXx8fHt7enp6enl7eXt6eXp6ent8eXt9e3t+f3+BgH1/fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH5+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgIGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fH59fH6DfXt+fH2Af4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj08Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PD45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT0zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWy8vLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU09PT09PT09TU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw7OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OR6jZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1svL0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19jX19fa29ra2tra2trb3Nvb29nX19fX19fX19fX19fX1tTT09PT09PT09PT1NTW1dXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtAPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTUaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbLzINtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0jYuLi4uLi4uLi4qKioifu7m5ubm5ubi4uLi4t73T09PT09PT0tLS0tPT09vi4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOU2JMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXy81OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFhSU1NTU1NTU1NTU1NPd6ikpKOjo6Ojo6Ojo6Kr09LS09PT09LS0tLS0tLf6+rr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUJAOTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18vNUiwxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpp5cVldXV1dXV1dXV1dXU3qppaWlpKSkpKSkpKSjrNLS0tLS0tLS0tLS0tLR3+rq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDs+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fMzlw5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqiZmFiYmJiYmJiYmJiYl6CrampqampqampqampqLDS0tLS0tLS0tLS0tLS0d/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk6Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzM3EwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs7OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzLy8vLzdLS0tLS0tLS0tLS0tLS1NPU1tbW1tbW1tbW1tXX2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo7ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M3Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7OztLTz8/P09PPz9DT0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19fX19fX19bW1tbW1tXW1tbW1tbW1tbW1tfX1tbW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvVkpfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztKrnM/Q0KGWy9PHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT08PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK2nKWj1qegq5/PmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/OnZyRnrmelpChtJWGnZzNz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4+PDw5Nj9CP0I6NjQ4Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv5igm7WXn6CombW/yZeZxdDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9COjc0Ojo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P07SZlqq5nKagi5/E05GZoc/Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PDk2NDo5ODo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8qgo7/KnKWMp63Yqpmq1M/Pz9Srmn6jj6Wbx8mU2K2jv57V0dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX19jY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD45PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDUrJuni5eUn5WVpLvNiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PD05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q07aysqWdhp6vs52l0NujmbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXEopmWoI+jm6KcnJGnmJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTo6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6DH1aKrpJy+nqiho56ooqmd0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZSUUtLQD49RDw/Q0Y9NTU3Ozk2Ojs6Oz06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09PIkY202a+NkaXUmpKOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVaWpbTF9NSkxKVExGQjw8P0ZFR0tJPTY2Nzo5Nzk6Ozo7PTk+OTg6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MjB1dLVwL3W1NO5yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRExMQT43NzU6ODg4OTk6PD48Pjc6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHT1NLS0tTV09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj09Nzg2OTc3ODk5Ozs9P0A8PDg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT0tLS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCREtJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0FMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTU1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhRQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ7Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIREVAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29ra2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDg3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojs4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ojg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5OTo4Njg4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/hoG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc2ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg2NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTM1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY5PTs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5ubi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY8Ojk8PT07Ojg2Njg4Ojc2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBGPjg7NzI4OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2Njg/PkBCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NjQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO1tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7e3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6uvsKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOj0+QD9AOkBCQkI/P0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3s7CwrayrqqmpqKeoqampqKiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJiZmZmZmpqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OTM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpaWlpaaoqKeoqKWmqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmJiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8Pjo6QTw3PDgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OztAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutraysrKuqqailo6Slpqalpqenqqimpqenp6iop6eoqKelpKSioaGhoJ+enp+fn5+en6ChoaOlpKOjpKSkpaenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsK2rqamuq6ilpaamp6WkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiZmpqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PD89P0E/PD9CQz9CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlo6KjpaampaWlpqmqqaalo6Slpqako6OioqOioZ+fn56enJycnJ2dnZydnp+goqGio6OjoaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZmJeXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+Pjs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAP0JCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWkpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc1Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5KUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTg9Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Kjo6SkpaampaSkoqGho6Ojo6Kjpaampqanp6afm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6Wmpqako6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODk6ODk3ODg6PTs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/PkFBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+mpp/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqChoKSnp6alo6Kho6empqWjo6ampqamp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKio6WkpaWlpaWlpaSjpKOioqKhoKChoJ6fn5+fn56en6CfnJuamZeVlJSUk5GQkJGSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqcnZ6hpqampaSjoqKmp6emo6SmpqWlpqempqKdnJ+hn5eRkZCUl5udmJaXl5ibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjo6SlpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ2fnpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo4NjU4NDY3ODk9ODg7Ojs/Ozo7PDo6Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpeYl5eanqKioaKjpKSjo6ampaSmp6alpaWmpaWjoKChoaCZkpCPlpuanpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaCgn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpGQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqWlpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6fn6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5WTlZmcmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODY4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZycnZyenp6foKGgn5+goKChoqOjpKSkpKKhoZ6cmpmXo7efmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZmJmWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpmXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Cfn6ChoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKChoKGhoKChoaKmoaKioqGgnpybm5uZoamWnJubmZyempaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkZKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQT09Ozo6Ozs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjw6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqWhnqChoqKioaClsq2goJ+fnpyZmZqanK5meJ2dnpuZmpyZl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5KQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCfppOYrJ+gn52bmpqamaqARIGfnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ+enZuampqbmpiZmZiXl5aVlJSTkZGQkJGSkpOTkpOTlJeZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD05ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzo5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm5+iop6bnJ2cnJydnqCfYZmon56cmpqbnKOhT0iEoJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+goaCdnJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn56cmZuanJybmpqZlpaWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7QkM5PD8/Ozo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E8Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiXmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZuap2pcoqCbmZmbnZyvckpMhqGcnJ2cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mYmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmKWCU3eimZmanZugo19XToehnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bmpycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGgoZ+fn5+dmZqbnJ2amZiVlpeWlZaWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFxcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuYmJmgilxgk5uam52co49lWk2Bop6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+QjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbW0xGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZiZnpldXnWWmpydnaKBZVpNf6Ken56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpubm5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8OT0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnJydnJubm5ubnJqYmZmbYWJgfpWenJ6XdGNVT4Ginp+fnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiZmpiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmZidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk6PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp2dnZyam5ucm5ubmJmZn2ldW2N9nJyei2leUFOHn5uenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yQjpCLi4+PloiIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiqrG3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODo5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M9Pj45YZmVi5GGjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZm5qal5N2bmZWeZSYnYlbVFBZi5KOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojg7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4yRj4uMj5CRkY6TnZ+Sf6KlmKaddE9QZIeHgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjpAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CFopuMfGaSpZOce4iDY3SAgIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2OTM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+gqOJeWxRc5yNi1hwe3x/fnyFjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc5Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfZmZdVNLS3OThYJMXm9xd4mFio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj04ODs6OTo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLgIKJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4OChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY6ji1AwLzt4hnZ1QEJbam6CkImJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz86PDg5NTg3NTc5NTo6Ojk8ODo8PTo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KnnGNDX0s8eHhpZkcxNldtcpCPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkM+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mqro5JeKp+QHx4ZWJRVmNKXm+KoaGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dFPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKJ2Y8LUpUV9kIR4T22NeFZigKOop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBEQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqqmkp6eZnaSlo6KeY4G7wK58pKOal2xJXHtwUnSVo6KgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTtAQUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioKKnoaaupqacn2yDmLmLrNOjm7SsXE2vmlVlkKGeoKCenaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq+ro6OHd356c9HEsJmjrWxWp65mXYemoKWioZ2fopiVnpufn6ShnJWYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7e1tbayrbCtj4eBbZLLvZWVppV0Vm13dXN/laaqp6Shn6ObnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K4u7y8urrCubW0noZ2YVaetbump5mHeG1ycHh5en2EjJGWm6Gmp6ympZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW4wsjO0tDMyL2xo41wZVJEiJSFhYV9eHJvZmVraGtxc3FxcnR7i6nGxruip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYWZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PFx9vk49nJu66jlYZyWVpRRGZ3am50bmtlZVlYXVhcYmlqaGVha4+4wcC5qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxr7M0NTKuaaakYRwXFFUS0RbZl5jamViYWhbVVlUV1laXFldeZ64uqu0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudnJydXJnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS+w8HHy8m4lXRhVE9PU0g+X2xfX2VjYl9kYlRWV1ZUVVt5oq6wqqirrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO5uMOfZktER0tEPVpkYmJqZGFcZF9YU1BQUlyHtrqsrqWko6ikoKClmam0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnZSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent3bmtpaHZaZ3J4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTExMLEwbCKU0dNRTtLWl9mbGdfXGBZWlRPWYenrLi1sqypo6GtqaynrZ+stLS/w765uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dmVmampoXmtvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCx51xXEg/P0ReYmFrYltYV1NZgKG5v7u8urysraapu7q5t7+ztbiywca6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWh2aGpqdG55bF5kW1VgWUxIRDY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnOxsbGwK96VU4vVlRXaGFSTlR6ssnIwsTHwLy+tLCwsMK+vsHGwL63tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOi5R9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ9eHBnYGtqd21pZnZvdGNdY1VXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsLCw8GVQ055g45WUHmtzdPFtr+/wL+6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5gHNwZmVnZGxlYmtub29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvrzHpnltgpGWcrTMyMfRwa+9vbi5u7u+t7Swub6zvL6xubW4vLa8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX16g3huZmFlYmFjZGRqY2dkW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8yc/Aur/AvLvFvbrAxL+9v65wYXyRiovRxb+/yb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7e4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKynpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCnoaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhY2Noa2dnamZqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz05NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdSMuL+7w7W6x7a1uLq8uLm2q6WYjXyEyb+/u8G+uca9wr+8xbi2t7S4tra7u7i2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGhoqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVncGplbGhZWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/DdqjMvce3ubettrS3ubO1sb3JxZVIfMq+v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfWtucWdxa3RmY25gXFVIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrXOAu8jPwsC4rrS0u723ubG9w8qNRHbNw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXJmbGpudW95ZGhjXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsbJ0Zhwc6zR0czKxLW6v8TIvr60v8DAd1Fvy8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0cG1sdGxtb2BjX2JiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XRw7q+vMS+t7zAv8nPx8jKycGFcXOlzMzLzcrGwsPLzsG8uL26sG5jY7zIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWRcX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9vDvra+wL6+uqacqbK2w7+leHV4m8TGy8jBw8C/ycrBv7u5saB8cmuuyMXEv8DBv8vHw8DIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpJ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3h0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEt22tzr22ucC8rH1uaG5tcoGVmHN3fJe9v8bAucC8vsXEvb24sbCYj3yAm8rCw7y9v7/Dw7+/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cG9qXGBhWlRRQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbJ2gbO9trXCpYdpWl5gTVJbWm5zd4GfuLjCurO7t7u9v7q7u66kmpeGkH7AxMO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra8tLGso6irqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d25yYV9mXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmnhXiKoK+1nWplZ1ZZYElJTVBTbHeGpbC3vrmytbK7uby2ub60lpullaBxrsnEwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fqoh8dYygmGBUQ1hVR2FqVk9FSmGNoKyvtrq1tLKsvLm4tbjBvYuXr6GlcqXLwr+5urWupayzsKavraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZzbmNeZ1ldXlNPTkI/SkNBS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4vrSQgniIj29OSj9kWUJOd4CUak5BXYGwtbO1srSvrLu6uLa5v8V1gqidmWOpv7i1srGtrZ+kpqaco6WclpmZmp+prrmsq6ufpaikq66vp7Crr7GxrbGurq+5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211amxdXGtUXlxQTkhER01CR05HODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHtYRkFOh1lKSlh3jYFjQVOjuLO0srCxrbC5uLa7t7q8j6GxqqNyrLCpq62ro6ignZ6dlpehlZGVl4+XnqiupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWh1dG9lVWFkV11ST01JQElSRE5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKqZmZVpTUBSeHFQSUlLZ5yBWURSrruxrLOvrqyttraytLWuqKaempudnqaonqCoqZ+hp5aalpeNm5KMjpSMlpqjqKCfoaKhpqWco6OgnqWgpKylpqiloqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqaSpq6aprKumoYh4g3x2f3pjeG1uXVFpVVBPR1BNTUNQUkE/Oz40Ojo1Ozo9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3Cq6W+aUVSnYJRV0lKYEtUjmFjYoGutaqytK6qq6+wsrOtpZ2Rl5OPl6CfoaCco6SfnqiUmZSVipSOio2VkZeboamenp+go6WonJ+goZyhn6Oop5ynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJaTj4+SkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOfnaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fIB1dn1ubHtkaVZSZE5JSEdPU05LTkg8RUA9MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutra6ubq3t7uuqKChqaCqxr/LoVBBc513UG5LTGNmdXNgWl5wkLGvrrO1qqasrKObmZSNkZWXmJicn6KinJ2knpqklZ2alI2Pj4+Ql5aanqOpnaCgnqanq6KfoKefnZ+jpqieo6afqp2qraqup6iwpaOkpqespqKlopuZnq+orrKrpquqoJuYmJiVk5aak5WWmpabl5iYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJfIB+d3l8ZXl5YWJTVmFISUtMU1VKU1FNOT9BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMfHjldTSmWjWmV+b3JdUWtjW2RfXGuPtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyWp6WhlZWWkZaWlJuZnaOkqJ+lo56nrq6qpqKxo5qjpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuVlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbWVcU1taTVFLT09WTVRNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6rpI16VWlydnVwY3Z2WFdjYGNnWVhXZ62urK+nn56ioJaQk5ugnJmXkpOfnKGjmp6amKNufZeZoJuinpyinKKmq62nq6ikrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7W4s7itsrSkoJ2loKyhoaKhoJqZlpafm5uYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dmp3dV5tW1JhSVJWSEZWV0tDTUg9S0k4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqK6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuioaCkgG6CcGBjWExbU1pNTFBYUkhNTUiYrKqppaCfmpKRlJiYlpaWjIiLjpSdnJ2cn5lIR4+fn6ajrqekrKCoq7WwtLCwrba4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwbe7tquusbm3vK+zsLXBvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaegn5+oqKWln52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21oblxYXENXTkpHTUhDRk49Pkw+NDw6Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqamUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnYlhV15lYFdNUUc+Pj9DQz8+QlF4qa2pqqagnp+io52fnpudm5STlZSenpiUhaZ2KmCSnqOrrrivr66vr7i8u7u4tbjDvr/Cv7a6u8DDub27rK6nsa2xwra4wsbAyMrAyr+wubm9uMK+uLS7xsS9w7y4tKqzraqztK+zrqqvo56sqLeyraOwpqGjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhESlBJP0VCNEZIOTY8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5V8X15lYFFHRDxDPkU8Pzk2Tn6qs6eko6KgnqWspp+YnZWSmp6ZlYyKhoiGeGyLVzVmhXx5gJa8vLywucHDwsa/vsLGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxszMzNLHvr/Aw77HxsK4xMrJxMHHv7q0uru1u7ewtrKru7KvvLfAu7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5WUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtlWlxGTE1FRFRNRUJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEA/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9c2phV05FPklZfG9iQj1cjq6soJmbnJ6emZeXmJONj5eXlI+NkIyCg4J2cnBscGxUYGtwcm5zj67EvsHMzdDIxMjQzMzMx8rFxczQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsfGysjPwMnRzcfGyMbCvcTBv7+/tb6zrb/Aw8PHxcjEr7+5sri9xMLBu7y8ta6np66ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXVzZWJncm9nXlpaRE9NQ0ZRSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6Oz5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOem52Wa2ZdVElEQD9Lhp6lmoSgsq2jnpyfmpiXlJOUl5GQkI2IhISJh4OAgYGAeXFxbmp7gGRYd3dybnJ/nb7PzdPKs9HQ0NHRzc3O0MTN1NXY0dfNxsfJzMPFys/K0tfS19LV1tPUyMzHzM3J083O083GycrKwsfMx8nJxr/Ds7PIxcvLy8/Hyr++v73Bx8XMzMnJwMPArrCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZVZYUkROR0BJUUM+Qj06MjJBPEU8Nzg8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnGNUTEpEQz9DUq7RvbKvppycnKCkoZ2alJSVlIp9eXFsZWJocnBye4WKgHVwbXByb4R7doB9dHJ1b3Sez9DTmbbX09HS1NTSz9HD0NPW2NXV0svJztDLxs3SytLV19nW2NPW2M3Sys/RzM/RzdPQwMnIy8TMzczPz8bHyLbAy8DSzczQx8rJwMTDyM/N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYWVyY11SXEpLR0FGSUo/O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpaWgoqJbSUBBREFGUXayr6aalJefnJqgoJ6bnZqViXdpZGFfX19fXl9fXWFsdXNwb25rcG9zg4B7gXltaWhebb7To3/S1tTOz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ19fY0tjS19nV1szPz8nN0szO0cDHxMnHz87R0dLIzM3Ay83G1M/Mz8nFy8fHyczL1NTR1c/SzNPCucWxpai1rqibqKulnbKosLOsrJOPk46Iio6Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUWBKSkNFQ1NOPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ6lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6up6qooaOsZkM4PT5EWIKqqJ+XlZeZmpyfnZibnZN9cWVjYl9fYV9eYWBeYWBfYGVtcHBtamxvc3Z9cnmAcmJcU1mjrXKr2s/TzsvSzdXU0crPzNPW0tHWzc/V1dHF0dPK0NTV1s7T0djY2NfLyM7Eyc/NyszAycHJys7P0MzQzs7Mz9DIzNDRy87Lw8rIys3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO/u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSUZGRE1ZRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD85ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+ZpaegoKOnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksntIRkI7V42hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYF5fX15cYm1ybm5wcXJxdnRvd3l0Y1tce3eI0dTJzM3EzcrS0s7GzszN1MvO0s3L19bQzNHUy8zQ0tPKztHV0tXWysDKwsbNw8jKw83ExsnLy8/Lzs3RztTMx8nQzcnHy8bHwsbKzM7R0cfQz87OzNDFx8G4ub3Dwr3DubKyvrC7w8S1qpiloZiWkZWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTElRUUI7RD87Njg6ODo7NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9wd4+ajYyXlZCTkZGVlpWQi3xlYmJiYF1eYWNiYF9fYGFhYF9dW11ncXFvcHFtaW1zcGhydGdmY113wsXHx8TEvcHFzs7HxcbNytHIy83NxtHSz83M1MrHys7Px8fP0svQz8W6xL/Gyr3Dx8nOxcPIwMfOyMTNy83QycXF0MnGwsbJxb/ByM3MzM/DyszJx8zQxcXIu8fDycnCz8G9vL+wwcnHub2qsbKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdJSEdJTVVHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ojo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KFoqqTjY2Wj4WDg4OBfYSEfnNfW15dXmBeYGNkY19dXF5fYGBfW1pcYWtycG1taGdpanVqY2JeYmVdqMa4v8G5ubi4vcjFwcPAw8fKyMjJyMHFzMbIys3JxMHKycHBy8/Ey8i/ucG8xsi+wMbPy8TAw7vKx8i7ycbFysG+wsvGxcS+xr69wcTGzMbGvL/Kw8XH0sXBycDKysbIxtDDw8bDrsTLx8PKt7+8urOprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdDR0RMREZTPzU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL64vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bF55fJ+RipKWhnqAhIV/dXh1cnBfWltdYGBiY2RkZWRgW1xeXV5dYFtZWlxhbnFtaWZna2lud1xYVl1haarBrbW4sLCxr6/Burq7urjAwcHEvr25vcC5xMrFxsK9xsC3u8PIv8HJu7a7u8XDv7zCzsPGvr61wb7Eu73HvMO6tb3GxMLDt8C2tr+/vM3Evba6yLu/vszEwsbDxsnHycbQxsLMyLLHycPOzMDFw7+8srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRUJGSkE5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1q7e0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys/FycXHwbrFvayupmBjdoGSi4iLhHh/hoZ/fYN7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXWdyb2tkY2lqa3dyT1FXYnGatKuurqSnq6mktbK1s7KztLu1vbG3sLWvsrvCu8HEvL+6tLK6vsC4yLi0vLbAwr24vcfBw7u1r7O1u7+0xbi7tay5vb7AvbG7trC3urPGvbevvL+1t7XFvb7DxsDExsbHzMW/xsa7x8u/z8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpHQkRBRUY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TFy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJlbZ2+Ij4aIiXp4foWGdneBfHNoXV1dXV9gX2BkYV5jZWNfXlxbXlxdXlpbW11fa29sZmNmaGhse2VJXHWHlKioqKObn6ekm6ipsKypq6mzrbWwsqitp6yzu7q2w7m6ubCqtLm7s8K5r8Cxvby7tbvHucO3raqosLLAtri9sLGosrO1u7yrrranrrauvLKxqriwrruuu7i7wMG+usO/xsPFwLzGwcfKuMXHxb/Hw8O5xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMTE1KRUFDP0ZBOjo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTPx83Bwsa/xMTDw8rCycq/wLzCurO1tcOuqrCSW2l+koiOj3t4fYmFeXuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWlpaXGNtbWZkZGRmaG15ZG2EkJOboqWumpuhnZaZoqiso6ehq6mrq7Cjpp+prbW2sb24r7evqK24tLO8t7O9sLi5tbK8wbLAr6Wpo6uxs7OovaqrqKusrrW0pqmuoaWvqbOmqKiupqi3rLGzt7q7u7K8vr6+xL+1wcDHyLe/v8W3xcPAu7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlNTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8LLvrvJtr3DvrrKt8HEwbS2vLaxr7W8ramrk2RtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1hXWVxfZWpkYmNhZGRobXl5gIeGk5iRla2moJiUjp6gp6Kin6SkpqWtn5ybo6WssrC2t6ewrKiqtKuzubC2tq62urOwurqxtqSgpKCmsaisqbmqpaenqKezraCnp5+cpKasn5+npKGhsa2trLK1s7Swtby2u8HAsru+w8GxubnCs8C9wLW4vL2+vMLHxMPEv8DEoIR5cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbq9tqCelZ2gprq2q7Ozu7PEz8nLwsW4t8fAzL+4yre7xbizxbizv8CstryyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBeXFtcXFhZWFhYVlhaXV5jYmBjY2NiZWZseXNxalhbb0V7oJ+Ukomanp+lm56eoqSip52bopueqq6ssbWkqKqprKyktList7Css7Wvs7WvsKqfnp+korKlpqq4raKmpp+orauZn6CemZ2fpZqZo5ycnrCprKiqq6ytsLO5r7i5urC2vLu6q7OyubO9tLeysba1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTYzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uci4uL+3ssK0sbu7rLm6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dXWFdaXWFiY2NiYmNkZXBqWEEiOnFoaYeckpKMl56epp2am6OloaSbn6CZmK6tra+yoKSiraunobWwsbKsqbCzqLqzp7ahop+co6Gto6Kqtquio6aepqajlpmdl5manZ+al52cnZytoayoo6Smrauzs6q1sLKrsrm0r6qvsrKzt7Ouqa2usriwura6vb+3s7GUhnp2Zl9mX1tZVlNaVUtbUUxKRUhLSUM9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+ynaWjmKWxw7W2va20uMLMyMbAxbbBwMfOt8DDvbO5ubK/trG5u62yta+fmqOqoZSaj3h/g4R/eG9xdHFoZWRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXVlZYV1hXVVdgYmNhYWJgYGRmckQZHEiKlJCOmZGUjpOcmp6blZ+fp6Kdnaebmpqrp6+wqpyjo7epoaCuqLWqp6eusaS4sKS3oKOcmZmqpqGarbmwo6GknKKgoJOVoZSWlpyZmJaXnJWfqZ6qpKKeo6qqsa2otKyqp62zsKWrrrOxr7Cvr6eoqLKusrSwvLS6uK6jlIJ6d2VfYVdZWFNSVEtNXkxQTEdITUxFPUA+PUI8Ojc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0usKxvre9rZ2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJqhqZWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1ZVWmJiYGBhX19gYmpfJTduh4uOjpSSlpCRmJyZnZSenaWkoqWmnpyfpqCrr6afoaO2p6GhoqmzoqWopbCmsa6rtZ+hnZaVqaGilK2xsZ+jo56emJyTjKCUkZOYmJKXmJiXnqebp6KimqSlpaukpbCnpaOrrK2mqa6vr6uoqqqzpqarr7Sxrry2sa+vn5J7eHNlYlxbXVhOTFFIUmFNVlBPSk5PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sba9sLuxt6yepaasuLu8wcW6srm1xMnJwMLGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZn6OLinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVVRWVlJUUlRfX11eX1xdXWBhbFdch4OJh42LjZWOkJOgl56Vmp6joKuko6OipKKcqqukmp6lsaqhoZ6lqp6oop+trKqprq2ioqKVmKKanJCrqbCcn6Kfn5eZk4qdkY2SlJaQmJiTnKGjnKWhopWgoqSlm6OrpaKkqqSrraWusqmmpaamtaaqqK2ztbS5uq+qrJ6Mc3FwYFtXVlZSR1FPSFpcT1JKVEtTTEVHSkM4Ozs9PDk2NjY6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Gtnainr7m5s8DIurXAr8XIzLrByczItcm8sb7Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU05QWV1bW1xcXF1cX2Jrg4l9in+IiIeSjI+OmJigmZmfpqeqp6unqaWimKSupJWYpK+poJyZm6CfrpmcqrOfpqafo6OhlZSblpaSqamtm5yfoaGblJCMmI2MkY2SjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq7Ckrrilo6SjrK2qqKuvtLeyvbWzq66YhXV0aVtZWVNVUkZYTFFbWE1VT1BMUVJJT0lCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7euqKivrpupqKy3tqy8yru2v6zMxsW4wM7Px7PEu7e7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2hmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FYWVlZXFtaW11eZHqEeoN3hIiDi4eRjJOWnp2Ynqmopa2rqbCjp5merKCUlKOop52YkI+anq6WmKeqmJ+dlKWgnpKRkpGTlaiqpZqYmZ6el46Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6Wlp6mooLCwprG9p5+jrLSqrqevtLC5tcCxrrCrkX5ydGNWVFVOUUpHVlBSUkxMWE5LTE9TR05LQUNGRUM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxt7i8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5xam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRSTU5NUldYWVhYV1pbW2Bpd3B2bX+Ff4iCkYaQkJSYlpummZ6ppqWrnaaYnqWbko6eopqXl4aFkpukj5WinJaWlYeimpuTjI6KkJqlp5yVlZeckZOIlI6LgYyNgJCLkpKSoZqgopaUmZiVoqaajZmkp6mnoaC0sqizuKGdo7asqq6ksrKmtbu1q6yxoop6c25eTlFRTU9ETk5OUEtGTk5KSk5OUUhNSkFITElIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKqloKmmpLOqorLDtbWys8bFt7rDyszGs626vbS4wK+uqbCepq67r62gmpuelZWIfIRuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0tTV1dWV1dXVlpdYWxpbWd7f3qBeoyAioaRjZCbn42Ym6Oho5iklqGblI2HmZqMc42Dfo6XloaSmpCUjo17mY+djIKJgIqYoKOekJOYloWOgpR+fnSKjnqQiJOQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmKa4pqWwobGunLG8qqmvqZmEeHRkVk1SUFBNQ1NOTFBNQlBRSElOU05JSkpFS01HS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY2Ojg3QTd4t6GjtKimpaijpaWmpqayp6a0wbivtLDJxLi5wM7GvrOsusGsrcStqKKmkp2mt62joJGWl5KQfnh/ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpHTlNTU1RUU1VYW11pZGdkdXx0bUtVbox/k4OKmpWJkpCemJ2VlJaTjZWJgJSJXztWb3yMlIqAjJKMj4aGcouEloF5gXuGlJ2Vg5aOkI+Dhn2TeHFwho19iYGQjpCXmpmTi5CKnYifmIeIlp6aoaCXp66prampnpats6KlrZmtq5iotKOpraOTf3RuYFtOU1JXTERUSlBNTEZOT0lFTFFNS1BKSU5QR0pKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebegoq2hpqaqoKapp6OqsKintMG5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpmHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtIRkhOUVFMT1JUVVhZYGlkXnF5bEw/PX2Tj416hZKKg4iLmo2WlImRhoSThXmJf2BKUW54i5KEfoSMi4R/f21+f5N3dXZ4hI2acFGNiIqGfH55lHZnd4aIfoqIlYuOkZOXjISKiJSFm42ChZKblp6dlKSiqKmlpJ6bsKqhpKSRpqqWoqqcoaaninduZl5cSFFRU01JVU1SSUxLT0lIRkpOTE1VS1FSUEdKRD03Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+sqra8tri3s8G7tqe5yLi2qKi1tqqyvKeelY5/iZSplpWLf46Dgn54cW9YTUtNTU5LTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlOUVNUVVptfWptdmNjWFKOhpKFcXyEfnqDi5KBkpmLjnqFj391f3hzb3VwdI6OgXp+iquFentodnuOcHJteIGLjZJ4e4B7gHdzcpJ4aHWFhISFfJWKiIqNi4B/hIuNgJSEfIGPmJSclpGfnameoKGdoKmln52Yjaejk6Cflp6fpIFzaWJdXUpXUFJIS1hST0pNTFJKSkpMUEhMUU1SVU1GSUI9Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5NDc3ODU2NzUyNTE0NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6RfneGd3x3cG9qWUtISUhHRUhIUFRUVFdXU1RVVVVWV1hXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE5RUVNWXnN+dnJhcYmUl42NeWR3fnR2fYePfIOYkX9who97dntva36tfHSQi396hpKAfH90ZnV8hmxvaHN8io2HgG15cX1xbXaPcWhxgX6OcESLhYKDhX93d3qMhn2Me3V9jpKPmIuSmpujlpmdm52eoZyWjYulmo6dl46WmJB4b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUk9JT1BMRkQ9Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzUxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rqKmxr7GrvLiru764s6ynm7CnrJuPlpylqaWhmJqOhJJ5iY+Li3ZxfG11cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFellKTk9RVFhdZW9vZ4OlqcB9cXZgeXZseXeGj3l7i4Vua4uSeHN4aWqAgnGWkYyBfZV/SZKZbmd3foJtamRseYWQkoZrcmx8bnJ8hmltcH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6LipODlpeYmpCTlpaZl52WjIOJn5KLko2GkJeAcGpvb29ZVlhUUlJZT1JVVFJYVU1OSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYm5+krK+iraqota+urLS/q7zDv6aimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ1b3RscG1la2tZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JWWlFYW16lhmGYZW91Ynxta314iYd1gYeFc2uZkXRzfGlqnY5MeYWTiYSOZjF2h3JrfX2DdGZldX+EhIWAZmlsdWtwgHxocXF8bpONj3t0fn1xcW91bYN/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW05QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzM1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo6VmYuOhXqEkJiVjZCMkIdxh4J0iIyGenBzcW9wZHBnX1RGSUM+PDs5Oj9AQURDRUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUxCSVFJYq6ynm53dGl6am+Af4OAeYOFhXlyoJR0eIBzdJSHNXCdqJ2PoaGEooV2cIZ7hnx0jK6NiYFoZ2JqbnJtcIN1aW9YdXCOm5F2bX97fW5ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2OfHNycW1gXF1eXFpZYV9STltaWFdMSEpGSUc/Q0FCSD9DRD07Ojc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMTEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpGBkoiVkZ2kp56vlaW0qa6wrsGyu8HFlo+MlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt1eHhsd253ZGpeSVBHPT83NDQ4Ozo7PT5AQkVITExMTE5QUVNUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw4RE5SU0RKhHN8eXlze2p0hYZ6fIOCfot9daGZeX6FgISZhJqcYYaqn52Kg5COeneIfomIjnOLl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVnaGBbXF5TXGdeV1FUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2eppGgqqCxqK/AsrvEupaOkZOHeoZ2a3+LkYN9ioOOjHiDgHOhhIp9fYF/cIF+emh3a1JYTEBFMjExMzc2Njg4Ojw+QUVGRkdKS01PUVJTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9RTEtUXFhSS2eBhXiGd3lveo2JeHuHhX6Wh3agmYeGjpKUpY2sqUiGrrCui4GAlIuCi4KEkqmHgJiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZIbIB3cnl2aG1rX3Z9g4h/h4WLeZScm4mLiJF/enWKdnx4bW93foF1dXNtXF5eXGNkWGdmXFVQUFdZUERMS0ZPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2Nzc4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5COlZeSlqCdrKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIgIKIhXiHiX5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzk0Ll2WcHOjVUZJS01NUFdgWG9ZW11niY+DkX6Bf4OPj3yEh4+AmZSBn6CXlJuapq2Tmbuxp7vHw6iLjKGljpOJgZF8cYOen5Gdf3eFhYuQh5BpaHCEgXSMh4SKcoaCd4iAe3aEfG11dWZ/lI6GiIiHiIegqqKWiY6Xf3qBiHl5b2dreH58gHVsZV5bW15qXmJnYFpPTE5YUlFJUEpETkdDSkRDQUREQjw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneCen+Mf4GQjoqam6Sdoaymqq6wl5GRhKGUhHh3f4yUfH6ShpKVf4qAkpuOhICBjIqCiY2Df4p/bHBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlRSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISkxMS05WX2J+ZmZrcpiWi5eQkIiLjJeGkY6cip+fkaKppKOrk6m2oqjBwq3Hr3i6lJp8jaGemYSThYKOoZ+UmZGFioWPmZGWbHB1ioyClYyNjnePhHFthYGKlpGChYhxiKCWhpGJjY+WpLSom4yUooOHkoN9f2tqanyCg4N1Y19lYFtobF5sbF5XS0hOUlFNTExGSVBDRE5GQkNFRkM9Ojk2PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIOAgIuMiYaQh4SJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDg1Mjw/UjVISEhMTE1OUl5tiXtyf3ubmZekop+XnpSgk5udp52nqp6nq6mqtZerv6u2x8i3yNDPvpugcGmrqZ+Ek5KFnKCam5mmkpGIlaKbm3h6fpSYk6KSl5eBlJ57d5WSqrKIjJeffJSdm42RlZijoaW1r5yQmKeHlo+NgIhsc3N9gX5zamFeYmBiaGRgaGdcUkVKS1BPSUlMRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjox8ioaPkI6BgoCJi4qFkoWDhomBgId3XmJQNDYwLTEvLC4wLy4vLi4wMDE1PkFBTVFSU1FSU1VSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUpOT1FZbISOdpKInqKmsbu2oqyqq6ans6qvtbGxrbqxs72bssOrusnLt8O/uKWisLOsraqji5aYhKWmoKOXgaaZjaKrqKWIhZSkoaCroaSoj5yxi5Wjpre6m6Cir5KjnaKdj6Ohq66rsrShlKSpiJmIkomVeXp+hoFpYmldZmNfZWReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2luWHqEdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GOg4SBi4WGiJKGgoWJh4iHh3FuYUBFNjQ8Mi8xMTAtLCstMC4tND9DQU1VUFJTVVVWVU5bUEdHRDw+PkZIQ0VBODs8NUM7PUZLSUdIUU9RV4CRnoOroa+nrr7FwaixxLWrsr+yt721vrTBtru6o7jFqLXIx7W9ubSoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqiutruyuqywtaKxrLG1u7a0rrSgp6ijp5qpr6yxuLe4ppq1qIykjpCSn4Z4goV4W2NlV2djYmRhYWdgW1RKRERMVVFISUpESUdFQUBAS0RCTUc8OTY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiYld5dXCBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIyTjIeEgY5/gYmPhn+GiIaKh5B6eG5dVkBFTjw2OjQ1QUI3NjQvLzZDSEJRW09RVVdVXFdQX1VJS0pBPz5HS0ZGRDs+QDdENz9CSkpFRlZUUF6Oo6yisLG/srW+yse1usS9srPAtrfBtL6wt3Sxs6a6xKSwxrmwsrG0qKS1tqqxoKKXm6KSpbCupq2rp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwbe6t762ure5rKyxpbCprb2wvLrBwauYuaeUrY6Xl6mIfoN+bVhkYllsZmtmWFxjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpvfo6DgI6EbnpzeIdiuaGZo4mUlJaSlJONj5aRh4Z7hoGNlYqAhIGKenyKh4Z8ioKBi4OVfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNRUlhYWmdZVGBfTFNQRUE/SUpIRUVBQEQ8RTZCPkhHSkxTWVRdkq22s7m2x7y4u8nMurvAu7e1u7q2vbO5scVgdbKksZqeqr2ppairqqSisrWgq6iflZafmaCupaempZ+jk6OnsbSosrO9tsG+08nJ08bDxczCysPAvby+u7y3tK+4t7bDucW9wsevnripoauNpKe1iIGBdGFjY19ZY2BqZ1NYYFZSVUlFRU5LQD5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VBSU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaKfoN/gnh7i4OHe4t5gYqCl350fXprZnB1WV5cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFRZVUpEQktLSUZISEhIQkk6RD9IS1NUVVxaW5K3vre8tcS+ubjJyrq2ubW3ubK3tLOutbaYZHWnnK1wXqKsnJigopuknqqllJ+fkJOOlpmYqJ+moJ6amYOknqylqrCtuLC9udTRz9fQyszSzM/Oysa/vsLKvcG8wcDExMXKvsfNsqO6sLSumqu4u5iAfG1fYl5aX2NaZGNRW2BTUEtDQUVGRTxART5BSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVtZaF9vlpKQlG5sb3R1h7SsoaGfi5mcmYyNlZGakYWKin6IhoyQi4h8gYNze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWdqamlgZmlpbFptc5atpLyIhmdbb2ddWlpUSEtOUEpLUEtTUUlMQUpGSk9fXmFmaWGWtcWwuLK6u7OwxMa1r7iwsLursrGmqrerjLWnnZqnmk6ZnYyOn5aRppillYqTk4mQiY+RkZ2boZealZaHnpqnm6yvqLCotLTU1NTW08zQ09XN0s/MxMLJ0L7JycrJ0cfMzcLP0bevw7zDuaS1ucGihHFlXl9fWmJZWmdaUV1YT1BCQkhFQkg7QUM+QUc/P0E3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJncW95eYOhqp6ml4yam5eLjZWRmo59iYuEjYqKipCHfISCcH+HgYZ7h3KDkouOfXF4dWxxeH5xem14c21pgXBtY2ltcHhpd3x+y7/B36dtY3huY1tiYEpQUlVOWV5PXVxOUE5UUFRUXG5tdoJxlqy3q7Omr7Wpq7u/sKq0paS4pquuoKu0o46wrZqXmIyQk5GEjpuBjaaRnImDi4SKiYSLhJSVmJeUm5Gcl5man5+rrKWooqytz9LV0s7M09TUz9TRzsfD1NHHzdLT09fM0dHE0tbFwc7Hx8KovbfOnnxxaGBlX1hiU19bUFFUUU9IPkBGQUJFPEBBPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxVUU1OWnWGhYp3bHdwfX5/oZ6eoYyMmJOTi4ySj5WFeYWPkI2KioiQhn6Ce3J+gICHeoR1hZOQiH9vdnJrc317d3tzgnhya4BzcmlvcXp5cXq+y5p+jLKEdnKEdmhha11DWlpbVmVjWGRqU1hcXWBjXWN3en2LgZippKShn6CnpaqvuKqlsqGhraGjraGnsZ+IppqTkpGJkY6IgZOJapSijJmEgYZ+kYODk5eti5WNlZmOhpKRnpeosKKhoaWkqcnNz8jCzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy411cWViYVpWWlVcUUtHSkpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7T0xGSlhwgHV9aHN4coKJgJ2VnZSFi5WJjomIjYaOf3iDk5iKjIeHi4h+gndze32Ch3d/eoaRlX+DbndwbXV/dXh9dIV8eWyHdnRufXaEdHh7nbWMO0GLxaV+jHxpZVdJQ2ZjZWNnamNtd1teZmhrbmhugIKHkYucnaCdkJeYnqOjpbGjo7GeoaWdoKigo7GchZ6SkZGPi42LhoOPhH+cm4yNgoSFeZR/gqmVo4yRiZeSi36Yi5qSq7OYm5yonKe+w8a5tsbO0tHS0MzSy8jUztDV2tfX2NTZ2M3Y287J2drR1b7Ky7V6eXBnX1xUV1JdV0ZHSklFRT06NzpAQEI6RkQ/RENBREI7Pzs7N0RDNzU2NTU7MDY3OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhImBh3x4hZaWiI6Ch4WHeoR4cXp7g4V1eYWOjZx5i3B8b296f3F7gHGDh4Bujnp1d318gnR+fIaHr3NYqcK2jZGCcG1iPV5ocnBxcG54doFlaG9ydXhxeouGjZORmpWflYeMk5qgmp6pn6Csm6GamJ+lnp+rmYuai5CSjYV9iIeDhYuOoJmTiIOHfmyZeoSYhoiTjI2UjIZ8nImUkK6qlJaYn5mnr7a9qa2+x8zJyczL0MnD0srU19nX2NfV29fT2dvV0Nra0dbI1MuWe31ral1cUVRVYElDRklIPkE+PTc6PT87PUc9P0FBQURBPj46ODdEQjc1NTQ3OS41NjY0MzU1NDIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEPkNHUmpebWRiZmt2gIhxkZCagHqAjX6CgoGDfoN7fISYjYeLfoWGgHeCeW57e4aBdHmSno6gdo51gnN1gX1zgIRvgZCCb5KEdXyBhXp2hnuJt8Wkwcm4gZabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJSOl5GDiY+WmpaWpZyXn5aekpGXop2Zq5WQkIqMkYKMhYiIgYaQkZ6bmYiGjIGFl3qIiZ+XkIiNiouCfaGJkYy8oZiTmJmdqaamrp+otr/AwbnHys7Oxc3J0dbV1dnV19vU1tna29fb2tnYztvGiH17aWtnYVVZVldOTEVOQzs9PTw4Ojs9OT1ANj0/QDw/PTw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bIqNknd2eop7foB+f3yEen2CkYmEhXqEh3t1fXRtfH2GfnR/kp6RnoORe4Z+eI9+eIqKboKagHSZhn6BiYR7fpB6j6mOj8OhvYucpJ19iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYiKkJOUjpyZkpSQlo2MlZ+clKCUkY2Nj4t+kI6OioSJkpaanp+JjJSSnZGCi4ClmYiEjYKFhIGlhoqMuJidkZWWoqihnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuXt7em5raFliXVRQT0lETEI8PD45OTo6OTk7PTY/Pj48PTk6OzszN0Q/NzM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PUNRU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97h3p8e4uGgn10g4V5c3pzbYB+hH53hZuim52Ukn+MiH+Yh4Cbkm6IqIV6oIt8kY2DiIScfZqQioyjoqCQpK+fi5CLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlYyHiIySkouUlJOOi4+Kh5aanI+UlpCKkZOGgIuIko2KipyWmKKihpOdlqCKiYiNm5CDiI6Ag4eGpIWMkbOYnZKUl6GhnpqSnJ6osritpr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aByf3dqaF9eWVVZWUNBSUM/Pj46NDk6Ozc6OzozOzs/PT43Ozk6MDpHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNiem1hfpKDb213i3h5f3qBfIV7e3aFhH9zcIWCenV3dnSEgoR+f5KmpJ+lopeKnZCUl4uKqJdzirGNhKeShJmThZmMopWfmJOImp6jkqmwn5CUkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNyJaPhoeIkJKNjZKTiYWKiYWWmZqPj5SThpSXg3+Pi5mIjZCqlpejo4iZnpaaiI6GlpeJhI6MgX+Hj6SIjpOompeTl5mhmZ+Zk52bo7O0pqO8wb7HxcXJyMnCy9PNzdSp0tHW1tbY2tTS2s6EdYJrZmBgX1BLVlxCQkdDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfHxtfoh4en56gYGCfnZ2gIJ7bG6Lfnl8d3h8hIaKfoujtKikqrOhlqegpaSWla+ig5C4lZKzmo2hoIykm6+ipJ2YkKeXqZmtsKSXlJWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKcmIWIiI6UjIqTj4eAhoeIk5iUjIqTk4aUmIaEkZCcdJCYspWWpKGInJmTj4qQipaaiYqWjYZ9jJifipCQnJqZk5mYoJShnZWfm6GxraOkt76zxcfEvcPDv8bOysnSp87M09HQ1tjSz9i8dXx4X2JXYlhSSUtPRUJDRDU+Ozc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj8/Nzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OklFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNXFxZSmhhO0iEi3p6bYWGeXyEeICFgX1weHx9fG9zjXp9gXt4houJhoSSqLytqbK9sKWus7Opo6KwrYqatZ2iuKWVraSXqa23pqSjn5mpmKqkr7GqmpmclJWRmKCXmru7rcqhaba3qrCVmJ6iq5KXvaReqrKCiYqMlIeQfI6OfYOGjpCUlIiHkpaLj5WNi4yXmZKcmbSWlauei5yUko2QkouYmoqSnY+LiZagoo2VjZeZnZOcmJ6UoaCUnJ2mrqiipLO4q8LIxLa6vbzFyMjC0KHGyc3NxNfW0MrTo3N9a19bVWFTUUdEPjxDQUI4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQUVANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGZIYWBicEpAi4l/gHKGh3yBiXWCioN+bX18fH5wd4d3jYGHe42QjIaMmqvCwLC9xryztMG8tKyrs7aMqLKtrb2rm7ujqK25uKumpqKipKOqr7Kxqp2cpJibmJieoqalk6O5r6i/vKytsrmlo6d9iIacrb2wgouLipCDj4ORjnqBh5CNjpyIiI+XjYqUl5SQmpacp5qwmpGrnY6aj5KOlpGPlZeOkaCQiJSbpKyUlo+UnJ6UoZ6bmKCglZqep6ekoqSws6bAxsOwsLu2xcXDv82nx8PHw7zV0MzEyop2dmRfXGJdT0xDTEBFRz5BP0I8OjQ+QT09NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQjVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFSkhOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxoRl9pZ1tdXJOMjIh7h4uGg4x1hpCKgW5+e4F+cX6BepR6kpSUmJGTlai0x8nAwszCw7nHvLqvq7m7l7K2urLAr6XAo6uwvLyqrqujop6nrK+1samboKqcopyWn7C0p4yjurq1wburqJyypKSolISOqcTEpIKLjoaIhIaVlIx6g4yRj5GhjIyUkY+Il6CYk5mUlqWgrpyMqpyOlo+SkZWVjZCUkY+hk4aXn6Cyn5SblKChmaSgmqCboJSYnqekpqekr62lv8PCrqi3tcnDvrbOssS+w7uz0cnHwbV3e29eW15sVE5JRE1LS0pAQT1CRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qajZaKi4iSj4aJeYaTkIFygHuMf3eHgoKPeY2hlqiampi7vsnIysLSycrCzb3Bs628v6e6v728xLitwamss7y9qrCqpKWjrK60rra1oJ+un6aimaO0vamcqLzBo7a2r6uTsKyqrJaGmqqnpZGCjJKklYmAdYmReYWNkZCen5KPlIuPjJSjmZeblJOinqmfkaWajI+PkJWWiHyOlZKSo5qVoKKctaaQoJelpKOln56mmJ6Vl5ylo6ioorKsqLvAxK+ls7fMwLquw7O7vcG5rcLCwr+ZcHtjW1leXU1NTktHRENIQkFBREs6NERIOjs0PDdGLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bElfWGFaZGVYno+djpeOnpKJin+In5KEeIV/lH5/kIiJkICWoZqup6OYw77JxMjG083Ozcu8wrewur20vcu7w8G2t7yttMC5vK6vqKGpqLaurqmyt5qerKKoop2rt7eqpa++xLG9ubOnqrSzra2WlaWtqKCRjpKxxaeVjX2RlX2HkZiPqpmXk5OOk5WTpZ2TnZmToKKhnJifmIuMj5CeiFqQlpeSlqSZZpmjnrOllqKWrK2sp5yfp5eYlpiWoaOopp+1q6m6u8O0prS1y8G4qrass7u4rqi4ury3hG9wXFpWV1BHTFROSz9BSERESEZGODVGTTs+Nz5BSy4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZmRNRqaUnJahl6iWjJCDh6WSiIGHgpuDg5WQkJSOmqKfr76uoce+xsXIx87Oz9LKvru2sbu7vL/PtcS9t7m3s7K2s7izrKecq6u5q6mor6+Xo66lqKSltcGwq620vsK5wLmzp7i0t7KvlaStsK+li5OUoI1zwZl9l5mEjpaZi7GVmpmVkpKZmaWjlZ+blpqonJuhoJmKjI+WnWBKlpyalZmll1SWsJ+vnJ+lla+vraaboaaUk5mZjp2fpqGZtKmqs7y8u6uwssfAuKasq62xsaOhsrK0pXNxZ15cUFNNRlFRUFE7SEtIRkdBQz05S1Q/QTo9RU0vNzUzNDpCMzROV048SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzVFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTdGJWRkirl5mfoaiumJCXh4qnlo2IkoWfh4Scl46eoJqjpLXJtKnHvMPEycvJyMzOxr66s6+6uMDBzbXIusG5tbqyr6+ztKeknKq0tauqp62smaSupqWprLrAqKu3t77BwL63srLDsLe9rKOuta26poibl6Wadb6fhJidjpKYmouulqGcm5eUmp+gqZ6noJmaqpmhp56XkI2RnYNtdZOimpWcop+QrbKiq5Wpqpiqr6aloaWqk5KZnImVnKKelrCnqaq6t76zsq6+ubago6eopaacnK2pqY1maGNgU01NR0lPSlVMPU1FTUlKQENEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQzo5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYU1WSH5lXkhGrJScoZ+7rpiUnouTqpuRkZOIqoyGoZ6Mo6yUo6S2x720wrvDwsjJxcLOyMK9ubKvubXAw8q2xrHBvLW7rKmtrLCjo5mqtLumqqesqp2or6ikq6u+vKitvLS3vsa8trW4wLC9v7Optbesv6WPopeQoZ+8nomaoJmXnZ2Pt5+pnKWjmpyhmqeks6GbnaWcp6mdmJSPlJuLlomMpKKUnKOfoLWwpaaTsauaq62fn6WkqpKWlaCEkJ6fnJappKGhtLW6tq2otbKynpyippqXlZmroZ54Y19hX0xJRkhOUUlORUZHQlFKSEBER0FWU0RIPEFHUTE7Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6fw6ybl6SXmaiblZqajqqWlaimla2smaKrt8XCvL+3wcLAyMS/zca7vrmysLm0vsPItb+wvLa6t6ekq6utoaGbq6rEoqWorKaeq6+soqqovrimrb6wt7fGt7S4uL6xvsC2tLK1r76jlqOVk5qTrZ+QoaGkoqOekL6kqZ2prJ2doZumn72imKOeoqmroJ2VjZWek56HjoSNk56koJ22rKaclrKmmbCooJyrn6GNmpWfhI6hmpySpaSamKuxtbGqpaqtrJuYoKGSjpCWqZ+UaWVcYl5QSkhLT0xIRURJQD1PSEA7RklIW1JPSz1ITlU0QkY4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLS0wTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE6jm6ObnsWroJ6rnZytn5Ginpakn6aqq5e2saOps7bFwr3AtsDCvMnCv8rItri1tLG0tLfCxre+sbi0uragp6yqq56en6WkwaWhqq2gpKmtsKKnqL21pbG7t7a1w7Kyt7q+ssPAuLittLS1o52klJGToKyfmKGdqKiqoprCrKidrK2bm56YpqC9oZ2kmKurrKahmY2an5KeiI5Yf5afpqGguaqnlJi2o56zoqGcsZigj5qVnoKPoJeWjqKjlZClrrOrqaKipaSVlZyZi4+Sk6SfiWNnXGVhTUpLS09GRUFHSz49SUE5OUpKTl1RUUk9TFZcOEZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExQn6CgmJ7Dp6Sis6CcsqeSqqOfo56tqaydu7GprLWxyMPBw7PCw77HxL3Eyr2wsbausbWwwMW1urGwuratmqmwqambnqahp8KtnK2xnKqirrGqpKi9t6a2u72vt8Ots7PCv7LGs7q3q7S2raqippWVlKKroZ+fmaerr6+vu7Kln6mpmZmXk6KkuKCho5Kur6ukpZ6RoZ6UnY6QjZSdmqOfqLWnp42YtJyjr5ugnLCRoZSYlZuAkqKWj46goJOLpqywpaeinaCekpKalIWLko2cn4BkaF1oZktKTEtTQUNASUc7O0Y+ODlOTVVfUlNKPk9eXT1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9nckA4PEiWd2VBNJ+kn5ugwqejqbGgo7SplbGrpqKksqytqbuyrbC1tMa/xMS2v8S+ysW2wMnCtay1qbC5rMDEtLevrba6pZmrsqyqmKGnmK27tJyosJutn661sqequ7OnubO4srjAqreyw720xae+rq23tamnrKGWlpGlpKGhl5ekrretsbS2n5+ppJmTlJOjoLejpKWVrrGxpamloZ6bmZqVl6ign5min6+zo6aMl6+apauXm5+nk52PlZmahpaglYyQnZ6Ui6mpqqKnoZqeloyPmZCBhpWIlZ96ZWpdbGtOUU5OVD1DQU5DOzpJPzc3UU5dX1JWUUFXYFxCSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWlWQ1dGjHlmQzukpJyhpb+mqK6uoKm1qp23r6ujqrS2sbC4t7C3uLfEvcPHvbzDwsfBusHGwbqqtqWtu63Bw7e3qq2yvKOVrbGtspemqJGquaqhp7Cdq6CvtLOqqre1rLuss7K5t6y4sMG6vb+mw6qwtq6pq6umnZiYqqGhoJGXoLCvs6uwuZmbqZ+ZlpKXpqC3qaWioq+xs6uxp6ugnKCfm56lnaGYnaS0sJyfkJOmmqGpm5ajoZiai5aZlJaXnZSJkpuZlI6pqaego5yZm5OHj5mLfoyXho+bbGltYm5uWFFRWlRBQ0RVQDs7SEA3OlhQZF5QV1dEWV5eTkxTTl9MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOGx9aFxWOol7Y0M9qJ+coam8oKqvqqOxt6mltLKroa21va+zuLy7vbe2wMK/ycS5xMPAwLnFvcG4r7aoq7eyvL+/tKqusrifl6ytqK6YqKmOp7ufpa2znquisbCzrKq2s7W8rbCxtaywtbLAusW2q7yvsbesraqjsaWepKieo5aPmJ+yqrOpqrOZnaebmpSNoKaktK6noaysrbGns6uxqaObnqiknpWhmZyotqmYmpKRnpmeoZ+SraCamoeXmYydmp2Ui4+Xl5qXp6ajoJ6XlpaUgZCVhXuPk4OMl2dtcmhxc2BHWWZWRENNWERaOUhCNT5dUWhcTlpdR1teXU9NU1hkSktDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FWMTUxPWBWXzgpQzNZVVxnSzWMemZMQKWZn6SrtqOrqKWurbWprrO4pqewt8a2sLe/wcK2tLrFvszFucPBusC6xLjBurO1rKq6uLu6vrWrr7G3mZioq6usnK6rj6u+nquvsaOqn7Gts66utrG4tqqtrrGntbCzurzJsqq1tbG0sK6moLOgmqisoKSVlZqZsaKtoKWvlqKkmpmSjKKlp7KpoaaxrKq1pK6wtK+jmZ2tp5uXnpqZrLiil5ORj5icoZmYla6hn5aClZmOnpyal5GLlJOemaWjo6GZl5OSlnuMkYV7jYuDjJNsbnlvdn1iRmBqWklIWls9e0pHRTZBYlVpW01cYUpcXFpSU1NiYUxLRWBhYFBNSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1lUTEWalp+wqLGprKSjrq21qLezt6OstLfJurS7u8C+tLO3w8DMx7vEvbe/wMC4wL2yva6ourm4t8K3rK6yupaXp6+sqKSzqZSvu6SssrKmp6OytLGysbWwt7KprquyprivtbPExbaptbWrsK6pp6K2np+msKCjlJuZlLCep5ufqY2pop2blZelpaS3p6Kws6unsaetr7WspJmgrKicnJ2clKq5nJWPj4yYnaOYkZiopKCYhZOXkZ2cmJeWiJePl5uonaWhkpaSkJZ3hJGGfIaChI2NbnF4dnyAXExlbFxKT2RdP2J7R0k4R2dXZltMXmJMWVlXVVhVaV1PUEhhXl9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGcyNydGYUxWJS1CLj1FTFE8M3JrTEVEkZmkraSsraqmo7Cysqq3sLWfq7W5ybiuwbzDt7OxtcLDz8TAwr61vsHAu7+8tMSoqrmxtrfAvK+stLSeoaexrqWmsaWesrWsqrKxq6iotbqstbK1q7OsqquorKm5rbKwx7+4pbmwqa2tpqetsKWko66jqJudm5qvmaKioqOQrJ+joJ+hqaaluKSrtLSkqquorK62rqKdo6irnKCZm5KktZqPiY6IkaOhlo+Wn6KWlYaQlZSem5mWlYeYkpWZp5ygoI2Tko6ReH6OhH19fYeKinJ0c39+flxTY25eTlpnXUZElltHOk5tWGJaTWFiTlZWVldVWWheUVNNY1pbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RkOzYqSGRISis6ST8zQ0lTLD6PbEBISZCaqKmhqa+kp6OztLC0tLCwoKutvcy6rsG8x7G0rbPBw9HExr/Bsr7Dwry/uL3FqK23rLS4vMCxrLKuoaOnrqqopbGjqrCqrquxrq6sq7O7p7ewsqmyqaqmpaOtuq2rsMK5tKy5qamoramnsaWppKKuqqihnpujrJWlnZiemaudoaeooaymo62strCxoKmin6qtsKudnqenqZqjmJmQoKiYhoOPi4ufoJCMjpeekpGIiJKWoZ2WmZaGl5OUl6Wcnp2MkpCOin9/iIR9d4CHhYd1dHKJd2xfWWBuY1FzcVxLO4R8Rj9XdVhgWU9jXE1VVlVXUVxiX1NPT2hZV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTM5NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLkpnREY4PEIwNUVLWDFAlF1ATkaVlqynoKmxm6iosLWsuLWtqaSrqr3JvLG+uMOvsKyzw8TOzsO/wLTAxMS6wbXJxKyvt66zusC+tK6urKaoqrGppqmyprStqq+trbGusq20u6W4s6ysraeroKOesLesqq25tqS1taSqp6ysqq2gqKansbGkpqWhoauWqqGTm6ClnqOjqqOsop6msbasrKKlo5qpq62pnaGlpKSZoJmWj5idk4GCkImFnaCNi5CNm5CSjYWOmaWbk5GbjJOSkpSjmpyai4+LjHyHgYKCe3WBhIF+dXeLo4d4al5gbmZXZodkTkBnkkxFYnpXYlhSZVVNVlZVVE9cXWFWTE9qV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOzo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIdCSUlElpCupKGpr5ipqK21qrWwqqSrqqm8wMC5ubS8taayr8PJy9G/wbu5wMDCusG6wsSusbWytLzBvrOxr62srKe3qqWtsKu4rqiwr66xq7WqtrWntbesrKSpqpyknrOzqaiks7Sfta2hqqirqKunn6urqLm2qaqqqaGpn62bkaqhnaCjo6aiqp6cprSup6WpoqSXpKanqpyipKOgmZifkY6PmY1+h4yHhZ6eiYWMi5CPko6FiJejmo6Nm5GSkI+Sn5iZl42LhIB0h4F/fnh1g4B6eH5/iJ2PcHFmZ3F4XGF0iGpPXZhWSG15VWRWUmJPTFVVVVFPWFtiVklRalRWVEdQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UyMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyQGY9Tlg/Qyw/TFRfL0lrN1JGO5WNr6ClqayZqqOtrrK0r6qkr6mou7+8wbKwua2itq/Ix8jRwL+9urzDvrvEwcC/r7Kzs7a9vMGysrSrtKmltqmlrbOyuK+irbWxr7G5q7muqq63q6qeqqugo6G1ramhn66yobSqnqinq6OqoaGsrai9rquuraGnqJ+smY+woZiioKinnqebmKmwqaKfrKKhkqGio6eYmqmmmJiZnY+Lh5WIfI2GhIWkloaDg4yHkJCShYeVoJaJkZ2Rk5CNkZyVmI+LhoZ4dIF/fXR4eoB7dHR7aoKIpHZpXmVsgXVniIt8UlZwXkt4c1RkU1FfTU1TWmZOTVdZZVlHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzOPjrCgpKWqoqWjrKa0s7GopLCnqri/wb2xqbqqp62wycbI0MO+wL25v8C9ybzCuLGwtbK6vLnAs7W8rbmso7Wmp6yxtriypqe5ta20vK+8pa2ttautnKmvpJ+krKqonJ2qsqSzqJqqp6qkqZ2iqaepvauzsK6dqaSgr5yas6KWpZulpJ+lmpmoqqWemqmhm5GboKSdmZepqpGZmpKQi4KPhX2Pg4CIno+HgH6MiJKQkYWClJqThpOijZSRi5Gbk5aHin+Acnp5fnxodnx7dXFxfmqGeoWIZF9oY3KFe21neV1eVkJXe21UYVBSWUtMTnB0XUlaW2hZRlZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpKwmZ+fqaSioauktrKxpKmwpq25wr23sKS5rKmosMLIyczCt72/tbjBusi2w7W0s7Wyvbm6vbauuba/raKzpqqrrrS3tKmcubuosb6yuqCutLapq56tsaOcpaipo52bpLCmr6Gfqqmnoqqco6igrbynrrGuoaqipK6enqymmJ+aoaKbn5uZo6qimpmjo5WWlJ+hlpyWpqyMn5KPkYyCioCAj4F7mpSMiX1/jIeRkI2KhpKXkYeUo4qSkYeQmZCUgYh9emx9dnl4Ynp6cnBxc3hqgnVrgmdjZ2Fuc45tYmpvX3BBXXlrVl5OUVFLSU1TWVZNXF5sV0VYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl0+I5GWq5ifl6eioZ+opLevraKvr6isuMO6tK6gua+rp7O6x8rHv7jCva+0v7fEtsOysLqxssC2u723qrq4vqqktaeoqq+tuLComLi8o62+tLShrbe1pqaosLOgnqWlp6GkmZ6sp6ieoKqvp6Cml6Kon7C4n6Oxr6GroayknKemqJqbm5+ilZybmp2pppabnqiRmJKZnZOZlqGqkZuKjpCHfYd/go58fKGMjIl6hI2Fi46NhYmTmo6JlZ+JkJWCjJeNkXyFfHRwfHFzdGB4eGpvcXFwa39zZHpsaGVkYWaHgGBbcmpyTU6AaVhaTVFMS0hQUlBHTVtfb1RFWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsn56hpKG3q7CjtLOpqbrFt7OuobitrauvtcXHwLe/wrmwtb23v7u+sKy+sLO/srzCuKq7urinqLWop6uvq7KvpJi7tqSrurWvnrG4r6mlp6+ynKGkoKSjoJabr6ahn6Kor6GgopOjpKK2sKGmsaufrKOumJ2qpaifmJqdo5Oam5qdpaqam5ullZSXlZyOk5eiqaKRiouQhnqDfoSLeY+Xio2HeoKIhImNj4WPk5iMjpaZi4+WfoaXjI96gXtwcnZub3NfeHdlbGxsamqFb2ZyaWtmaF5kc4FgW2t2aVpKf15cWE9PS0hIUlVHMzldXmxQRVlVWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJkVywylKGhl5SbqpyjoaKht6qtoLu3pay9xbSxr6O1r6ysrrTDw7yzv7q3sbO5uLq4uq+uwLOzuK+/wLetvbq1pqKyqaepsaqtsaCZv7Wkp7S1qJ6yvKmopamwrJmip5ykpZSXoLKkmZ6jqKmcop+SpKCkuKmkp66mnqWhqJOgqaKhoZmbnZ+RmZuWn6Gqm5qYoJSRlJaZjZSTpKikkImKj4Z5hHuEhn2djYmKh3qBhIeIipKFlpOTi5CWlI6NlHuDmI+Ld358bHRybGxzYXd1aGhqZ2dwh2hoaWNmampga2NqaFtme2NgU3RUXFtSTEpGSU9TQCEqaF5pTERXVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp6ipJGOpKaanZ6do7Stp6q6tqesxMG4sKyjtq6nra62wL+8ssK2sK6ytrW4tratqr2zrrKxvL+3r7y7saWftqqlpbOnqa2dnMCrp6Wvs6qstbueqKqrsaWYnqqdpqSRmKWsopiepKmhnKKclp+dp7WmsKquoaGdnqGVoKafoaCam5mbkpidk6WdrKGXlp2Uk42Vl4uPmJupn5KIiouIeIV2gYKBnYeKgop9f4WIh4aRhJaUkI6PkZGRjJN7g5WPhnN+fmZ5b2tqa2Z1c2tjZ2RkdoFiZWZmZmpqY2tyW19ZXm1kYU5pWFpgVkpHSEtNUlg+OV9saEhDVVRdW0lJR0VBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyssMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFlKVmJmQDozQmhIJTWao6CPjK2hl5eglqSzsaKyvbahsca8urGxo7esqq2puLy7uq3Asq6urrausrizqau5sa+us7a6tq+4vaymnrWpn5+vo6munKG/oLCjrrGvt661nq2vra6imZ2nqaWflZqnpZ+ZpKKonZqfmpScnqyvprqorqKhmpuemZ6kmqSdl56Xm5OYn5KolaqnmpOampKMlZmOlJSaqaaOjYqJjnuBc4GBipiFh3yJiYWFioyJkoSUm5OSj5CRl46Qf4CNjoNvgX9meW1oa2lmcXJrXGhjY3SBYmZnam5sZ2tqaG5dbGxzcGBUY2ljZllJRkxNT1hRUVVhZYBVQVdTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyY0kaGbjY+wnZmToZqpsa+fub+1oLTCu726saa3r6etpLe3tretu66sqqu2qbO3rqaytbKuqbC2trCztrqmqZ+1qJydqKCorJqnvZispK6vtrWsrZ+xrbCpopuco6uonJScp6SdmqmipJaan5uQm6Sqq6q8n6ekoJiamZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJiagJaKoZB5h5SMg21pfnaDcWyGi4Z9hYyHcF5jYWeEmIVri46UknR3i4R+g5CAZ4eAZ3VoZVdcaHNtTlBqY2dzhWhfZWZubWpeX2GKj4OEZU5LRDlHVGheSkdRUFRVTEhSYG90ZUZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsKzA4PUc3MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoukmYaVsJubk6Cbqq2qo73Fr6m3wre9va2mt7ClqqK2s7GysbmsqaastKWvtKKpt7a2qKestrKutK2zoamfs6qeoKObpaaXq7mUpaWvs7etrqWprquspaGenKGnppuXoKWlm5unpp2Tnp+YkJ6oqaS2sKSjop2WmJeXo4ihjpKahqCHk5ygf6V/paqekpKakYiEc3iNjoWIoXaIjGmXiGZ9c3igb4iHg36OfH+hoKCZgHyHnnSHjnWbimyHgYNtaWVjemxyYVOFbWJsaZhxWGlxcIhYXmlbbGxbiHJuenKFZ4aEWl9HTj9HX01FUlZWUVFTV1RnXU1WSFJST0ZHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiKp5eDnKucmJidn6mpp6q/w6+xury2wL+qpbevqayksrSurrO2qqilsK2ltLKbrbW2taanqLKwrLKnrZ2qoLGnn6KimaChmqyzlKOlpba9pq2nq6qsqKahoJigpqOZmaWjpJicpKmWlKKck5Ojpaaht6SkoKOYlZOXkpyIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kYR8kJCRynKXvJzFenK1pruQe4BtlrGrsHlobFixrm5lab2SvG5nem9yj9h+U2tjtrJ/gXKUc5qhqpBXT1diT1ZORlVbWFFQUoxcV1tQQVxEUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT46Qjw/QTg6Sj41MioyMkJFLy4zMi4rLygtLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKeTgaeqn5ecnqWssqiwwr6ytb+1tr7Bq6ezrKyppq6zqa62s6enprSlp7etnLOytqulpKexraywpqqdpqOwoqGfnZaanpytq5Odop+0uqOqqaKtrqWhnZqaoqefl5unoJ+YnqenkZymmpOdoaaiobGjn5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUca6hpH54u31roY92sV9qtFulgGWckWBmgntmf2p4a6llvnJnpox1sWp8sXh0kpRjbm2nbluEoUVoZoeWRXWcYH5nfKSnglpfjKtogJV4eWqnN0qvXFhTbGRbS05YX1xXVjtOiU9XVy9JVFNKQ0ZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYOtp6Weo6Sqsbestb2/sLbEsre6waapsKquqKivrqKwuq+jpK2yo6i4p56zs7CjpaCprK+rr6annqOhr5uimpaVlpmaq6WVmqGftLOiq5yjra2gnpqWoKKonJido5+bmaGmpI+copmXoJ+qnqamoJqfoZaVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH5rgqZ7goaIkpSSd6tna7Fcq3qNhpR0iXKPhoB/iJCXeIKCi5iLg6CPhLB2d59xbGxsfItOpFhIYmKZfmNopmB5cnVTk4deUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5V1hBI01oRkNFQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o5YVU1MBuVoJWIs6amoa+pp7Osqbu2wrC7wa24t7+prK2traatsamgrruqoKe0rKOrtKSmsrOno6Kep6qxp7CnpZ6fn66VnpmUlZWXnaugmZmkqLWvoqmPqaiqm52Vl6ClqJqenKKem5+jpaOVm56XmZyiqZummZyboqCXk5GTk5yD1ZOZuXCwwX7FhnzWlJu7fJqVpY+NnY2ke46HpIKlgnqseY+dVq96iH6farlauXaGg32mgpN8mHqqeI2dj3qxbo6EdJG8hW+UUK+nxYpRoHpjYKlic3KIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWNQQFhnWmRhSkhNbk5cUU9ZZllDRD9FPzA9PDU5Ozc0PDw4PTo8QzpGOjo/NjpAQzs2QE9MSDw6O0RIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFQNzElm6KUmbKoqKa0qqW0qaS8t8Gwub+xtbS6srSnsa+isLKmn621p5qnua2ir7Cfs7SwoaSen6apsKi0qKObnZ2qlZiWlZaUlqConJmWqK2wqaOej62iqJadl5ugpaGYoaGhoZqhoqebnqCelJiapqCbp5Wbm5+hmJCSlJCdiLJuaLVxq4dujqZytHNytnual6SLj52Non+RoaV+sHaDkdLSdlyue4V/pG+bqqZrhoR8rX2XmY57sHKSnY54s2WXdISeb55mlFHIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFPa2BsaFBWR0k5PVVSWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTDYyMKKdk6WwrKOrvK2mtKantru8srq+tra0ubiypbSzoLGxop6rr6SXprmtpLGwm7S4qqClnaGppLGnrKmjmZyZp52Vk5eXkZGhpp+VkqWrsKailpOtoKWSlKCbpKaflZqlpqGao5+tmaCenpCVm6GdnKWVnZWaop+VmJWRm4Wse3eodqONiIapb62KgqeDmJihiZKai6J/k5qJroV/grNccrNSrn2CgqR/cdd9eIV+jp2Fmpp2r4aJkZyHd7RhmmWagoKVbZJasFhLmnWYeWZgrV52d4homIhsXa93lZ6PeGw1eciusl9CVG9eZ2BFUGxgcG1WVk0uZmRpU1lQO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEg6OTmgnpWgubCXtMKtqLOoqbK6t7O3vrm3sbS6tKS3sp+zrJ+eqKuflKe1q6ivsaqttKSbqaCfp6G1pqapopidlKSgk5KbmJGUoaSakpCmra+moJWZqaCij5GhmaikoJWZpaidnKSerZ2hnaCNk56anaGYmZuWl6KglJeQpp2GqX19pXihjo2CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTYf3aHc6iBjpuNkqR8lpCfhHuyXp1koH6DlW2SXKtbWpOAkX9oZ6pkcnuBa5iHc16rWomgjmtvZU9KQ6FcW0x0XWJnTlthX3JzX0tWN0qblFhHRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDUuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84op6amsCrmLTCrqutqaW0sLewtb65ubGwtbqourSfr6SdpKennpOpsKmvqbWrqq6hmKCfpqSjuaKjq6CWm5Chn5STnpmTl56fj4yLqLCwp52Xm6imn4ySpJeoqqeUl6mnnp6goq2koZ6ijJShmJ+gkp6XnJWeoZWWjqucj65tcrRzqYt1iqdztHhzs4CRpKOSnI6JpIeQd7hvjHuLomprtlqhhWWXl2mhoqdtk3K0dJOYf7JqhZKIrWp1s2GdZqJvh5Nrl1ytX02hfIeRUnOjbHl/fm+Yh3Jdr1Y8nHdmVG9uLlynT2NTa2VibVpjXWFwe2NUWlI+Pm1vM0NCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKacm5+8oZuywK6tq6ynt6m3r7W/tLuvrre2qsC1qKmgmqWjoZyRqqmntaKyp66poJebp5+kq7idoqyalZmOo6KVjJygm5icn5GTlKq2sKiZlJusqpeMlKWYpayikZaqsqOfnqarsZmho4+Yopafm5aclqGTnamclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJeLjKeIeqS2dX13dsKCmrJgg7p5wHx1uGO1goyHqXyVgaypcXt/dLyIp6BpnWGmjq+hfox0h6p9vm9zvHSyg3V4gYpumohybo2kdL1ed31aYXm8a1pWXGp5XmphZWdjbXhvWlxZQ0FAc0BDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56ivaGXssOwraqrrLGnt6+2xLC4sK25rq3AsKujoZ6joZybkKmjqrKktKWspZ6VmaqYpqy4nKKtl5Sfj6Sfkoycop2XnZqRlZKvubKslpikqKeUkJaknKStnpGgqKufm5+oo7Ofo6WOp6KUopqcmJWjmJCvoJKUqZ6EkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSfwbu9mnuBsahxgHORuYN8hoaMh418ioeMl3yku7m9nHV6tKN0d5d2dLB1mZ5mhmqNtXRycXe2jF5/en2JaIN5bnpji6xwdYV/WFunakVlWlRmYGNeY1FnZ3BsdUNOUE1EOlpNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlNZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlUnPjs8p56gor+llrTDtKyrqKyrqbqusMWts7KttaazuKupoaGlnqCdmZOrpKyppbWnp5+blaCjnaukvaahqZaTm5ChmpGPoaehk5yXk5eUsbW3rZmepKSii5KSppulqpuVqaSlnJqhqKWnpKmhka2flqSel5eXnZ6Pr6iUm6ahjWp9aZumeIdyfZmOdHlkh3u9vsC6b5ODcpaIYHJqWl6biWBjiI+Va2CAlWNtnXdilWyAmpWUZV5gY3Gaimlyi32GlWdrf3J1eH1+Ylt3dIFoUFxug317i2tYa3qCc0pKb4ZwTnRNRVhdZ2FMW1hnY19PW211aXFSUURFTTtHST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPltPJz8yPqmgqKLCo5u1urajrKWup6e1sazIq6+yqrOivbCxpp+ip52jm5mZq6auo6S0qKSbl5Sgm6atqL2nqKSUk5qVn5mSl6SoqJCdkZCYnLCyv6ycp56noomTkamaqKObmqugo5mbo6eso6Cro5qwm5WnoJaUnZ+dl7ClmKGnmZuQnJyio5iloZmbmZmZj5WBZ219cXeSmJSShYu1qo2GmJWOioyYloeUlYqEk5SRiY6TlJiUmJaaoKGanJShnY6CeqWFbWt9kXyAdYqKgXGCeHl2doqAfIprc4F0g3Vld313a296bWBjXXBoTVlaZmpgV1pveW1tZlRQRlM5T1pNUU8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSiw8LUCzoLOiwKGksrK2oKmlsqelsLSqyKqsr6S0pcCms6CdpKSco5WVn6qmrKKjtqufmJaVn5atqaXAnqujlJGbl52XkpOhnp6ip5KSmainssSwm6udq5+QlpannaqbnJ+smKGbnKKkr6eipaifrpiXp52ZmaCenZyvoJyhppWXkpeTn6CVop2XoI6Wk4qKjY6XrpB8lpyDkoKLqqmFgJmXiYSQnoh6hJCHhpqSiIaKlo+bl42RmJ2klpqTkZ2Nf45nobOvhYqEdnuSin13eXpvZnmQgYCJa3WBeohzaXN/e3aDh4JrdWR5ZmBqZmNkZmtZbHtvaWtdU0xQRF5URUA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9iY2FfXV5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0W0c1PCxAtKC5r7+sq66ysaCqprKtoqyzr8Svqaqisa28orObn6aioZyYl6elqaWkpbK1nZSTnZmZr6WtvqCropCRnZmYlJCUoZyXqJyEnqqro7TItKCqpKuXlpeZpZ2pmp6jq5Sen56gqa+qpqSroq6bn6CgmKSenJ+cr6OYnqeSl5ackaOYl6ecmpdlgpJ8ZX6NmpBjeY5taGt7kqSqamWbmH1nhoplZWloe46hj2tnjZiRo3draouZo5+Yc2xueoSOiHpYZl6Gg15ti4mBdlxoc3d2koCIgm54gniAc215hHR2iYiPg3xrh1lebHRkXnOJaWt8cWtkX1JOWElkWEFKND5HNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaWfury6r6y0saqlqK2usKatrbC8sKimo62usJ6slp+jnaGZmaaqnKyjpaeosq2elKOPoq+ltrmlrqKOjpqhmZOSmqCZmaSVe6Wtoqi0xLiloqevn52UnaGeo5uiqaiSn6GeoKmwq6ukq6CqnKefp6CslqGbpbCkl5uplaCdmpGjlp2pl519vYOIcrRyhJ2GrWh4ucS4cZOio3qmmZlyq4J8y8DAu3GMo4iCn32XmYmdwL2Cl52ejZ3CwXyCfJONmsPAfWylsm+MgW/Ken+bd5GDjoF2eYGAeXF6f4dwd4WMk3lueJRjZ2B4ZGBlgmNedGdsZGRZTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2FfXl5eXl9fX15cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9WQUI7LziWo7nDtbCwwKmolKOvqLCuraays66ppKWmr6ufqpiaop+cmqqnop2roqSopKS0o5yikqatq7ezp66ikZGZnKWSkZ+hl5ufnYimrKSsrcDAsaGpr6mXkZ6copmho6qjk6GinZ2srqqtp6Skp6GmpZ2sqJGjmqitqZqcqJuroJWVpJWgopacfs6UeHqkgXmVlptfro9ejqeBoqB8p5abc6uDgK9eY4yqe6iHhaB1mJOIs2OCq4ahjo2zaoSvdX2XiLdhg61ao81ukHZ72nt/mXB+h5J2fmV7iHZ2a3yHbn2GkZF+bYOQYXJtcGhgYHlkXHFoamRnYFJUU1ddS09DNUFIREQ4PjY7QD9BOz04QD4+P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqets6umsqurqqOqpq+pn6abmaSXnKKvn6CfqKeipaCfsKyanZWnrqywqqirn5SRmp+kko+epJedp6OfraWrsKjAx7OoqbGulpKcmqGXn6mpn5Whn52crK6orKqcqKikoquSrLKWpaKqqp2ipaSgrp+RmKaZn5mTk5CXoHGFjJd1haiGcbF9nnKsfqKfgaWPnnargn2tf5xyrX6rh4afdpmSe3yXfqqIooySjJ1+q3uJlJCfgHutV53Fe49wk8F9gZVtdW+MbWV2ZYZvYXducm+JipKPg26TkWZwdXVxYWdtZV9vaWluZ2RYU11hWVJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNXQEYhHEc6QzEuK7DTxsaytKCdo46joqKsr7auqLGmqKqmraurpqGjnZmhlZ+lq5+hpZ+oqKKenbCsl5qWqKeuq6emp56XlJmjoZGUoKyanaajr6ykrLWqus6yraaurJeUm5yimZ6urJyXoJqen6ixqqurm62rpaOrmq6xoairrqWYpKmoqK+hkZWio5mTkYSkaqR1iXqpdHqycIKmipmMcYmgm4ekYGBSq4V/roObdq2Bp4aFn3qZl4Z7ZoCjiaSZhoKjfal+gpaHrl98qVaeo5KBeqOfgHvDr8WLcq+zs7lyYqmvwnRojIyYjoJunJVxb3p4eXBtZ2VlcnBmfGljXVdgalhZVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmFhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXUv6GZq6egr6KesLSwrqmsoqemqKqrqaSln5uknp2lp6ejnKuaoqyho5+voZyakqujta+uoKeanZWTpqKQmqKnn5+lnLGlpKixrbfIsrWqrKmWkpybopmfpbOdmqGUnZ+mrK2ksJutqqOjqqGzraGqs7Ghmqinra60oZGUoqaXmpF8qWyehId1q3l8sG+CpYyJn5aWoJWB0ri0uMmBgbJfYJSpg6SJh6B6mJaaeKrJdJqklaipkZOajYGciprGxnlnoYKldIGfjoJ9r11wtGKwdUujh22nR4KTZI+QnpF8cZmVgXF8dX58blxmanNxZoFrXmFZZG1cX1lJTUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKWinLK4rKqhpZqopKqrqqafpqWYqqOfrqudpaCsmp6ppZyntp6il5OoqrWyrJulnKCUj6WskZmcp6OfqaeuoaWnqbC1w7Kzqq2ok4qXnKWboaOvpZehlZmcpaatnLGerqimn6yjt6yhsrivnZquprGysaOTlqaimZ6Ogp1OeJqBf596hKN9g6SFh6afnZ+UhLh7e3m5gn/MxsK2eJuhkIuffpqWl4p2npiKpZikqX+whZ2GoISsfZqVY6ZtpHCPhZCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Uk4x2e3OGgHFcbm54cmqBb1tkX2luYmReTExRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX11aWlpYVVNPSEA4ODIuLCouKyonJz9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq6fm6GssrOlnqCVpa2trqqnnKammqOnobOuoqmmsqCYqaSUo7aiopWXoam0uKOboZyiko+hsZmem6aloKGvrpylqKK2ssWxramtqZGHkJyonKKknKWXnpiamqakq5uwoq6kppivpLusoba2rZ2ctLG3r7Gll5yuoKOchY/RtcO3eYeOhZGTkICmeZShd4ygkoSlgYpxqoaFtG5yapmjnJWKnnyYmYaHj3Ovgqaco46mi5Odi5aQm25xsl2ldJN6nGyZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2NjpWOeX55kINuanlpenNvgHVeZWVvbWZnYEpbWFg8SEhAVTRARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtbWlhVUlJRRjoyMjMvLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWSc4yKrb6/vLq0npanpK21oaKZlKKopq6rq5imop+moKC2p6Oop7CjlKyjjqStop2Qmpqqs7OknKScqJGUl66fn56mopynnbWaoqqktqzEsKmrqaGMhI6coqCmopWZmp2Zm5mmpaiZraiuo6Wbraa9rJS9r6yfoa+yuKmypZqosKKnl3mokX18sHeKgKSliJxtsnChh618oY+Dp5WYgKyJha6Fn5SqoKGXhp+AmZWAe5J+q4Cdm5aLq3idoZKKlJKBeq9epIF9pqdknYB9l3Nqr12la3CFmV1gW4ygbZWRppmDlo6Zjnx8hJmAa25/Y390boB6YGdmcW5oZ2hDWWFbPktVM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFSU1NWWl1fYWBhYWFeXVtaWFNQT05JNzA0Mi4qLEFUVlZWVFRVVFVVVFRVVFNUVldXWFZVVVFIRklKIygovZOag6jFwrbAs56arKCtuKWjjpukop+wsKqfpJ+drZmeuaCjq6CvqZmuoZCrqKOWiZqQrrCspp6lm6yXl4+soaCdpqGapJ2umKGop7epwa+lqaSei4COm5qfpp6SlJmblJuapqWmm6qsrKSln6movqSWwqyqoqCrsriprKWesq2nqJd1r36Qi5yFh366rYqZZbCNZZWtfaCPg6aVmoGsioSwhaaapKGhkISgXGxqgbNgf617e4OBsW1nb5mZjIixW361XKSEa8iiZJ+Ae7xYdrVZsn1SroB6rFiAoW2YkKibjJiSmpp8epGff2V1fmOGeHSBfGFqZ3BtZ2VmT1VkXEFVXz5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFFSVFdaXmBfYGFhXl9cW1hVUE5KRkM1NTMuL0BVWVhXWFdXWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9KfsrG3vbqzwbKinKympLWooIqaoJ6cs7Opn6OgnrWZoLSoqqyer62drJuVr6ehjoibjq+rqKahpZmukpiPqJmhnaWfmqOjpZmgoqqzqb2wpaienI59i5uWoaCYj5GanJKamKmgopqprqimpqKlqbueoMampKigqrS0q62lnrqsq6uUgKmSo6+Om4CHpJeZkIKAuMO6g46ckoSnl5yCrIqCr4innJumqpB+1b3CqmKjv719fqOCg9e6uLWFlZODnr2+hG2jgm+rhGycf3qysMeDaauwvax4d6K+vHOAlo6mnZGbkpqge4OTnHtkfntlj2d5gnthbGVramNQYltTalw/VGFDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzc7PkFDRkdJS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbOzsL+4sbyyopyupqSypp2LmKXAqriyqKG/pqeynJ6xnLqon62vpaeUlLCrl4yDm5GupaKsoKOcqqCXi6OSpp2nnJqhqaOZn6Gsraq6rqijmpaSfIiZkaabko+RmJmPmJSpm6GZqqmhq6ego6q7nqjEop+toqmzs6muqJ+5pq2tmXN2qqW4hmSJoHBorpGKkG5ud6SQmZ+Bda6YlHCPi3GVqKObl66kcmxsbGaLeG9ugplxgXpqcWlnipeWmHFpaYWIZ3GGZF2IYmpvWVxmfXamX2FxjpFuZWR/jZOPoZiZmZOaon6JkZZ2Z4h4aY9reYB5ZW1jZmxiS2VYSmxaOlBlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWVxeXl1cXFxdXl1eXVtbVVdeqZSss6m5uLKzqqmhrp2jsqmXkr+zxcq/t6uewKytpKKnrJ+6o6Suq62mjpeuqY+LhZWWrZ6mqqCdpKOgkYukkqaYqZqXo6qhlp2mpqevuqysmpuSkXuElo2lmI2RkZmVjpiWqZagmKmjm7GmnaKruZ+vwaejsqWrr7CprKqmtaKstpWKoaimt52JlqOZh6qbkZWdkqmymZqjqqCylqKhnZ+inKGloZWrp42SkoyHk5ydlZGZk5mRj5aGgaWbmJaOi5SUjJCGhH1niX50gnVzh4pwp2x6lJGTkoGBjY+Qj52VopeamqWEiZePc2qRd3GMeHd9emptZGNvZFVhWUBqXEhjYU9ZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVVlleYGFjXV5UUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaWlxcXl9fYF5eXl9fYGBgX1lZYKaWqKqktLaurqGwo62foLWxkI6syL7GvLqro6WenKefsamjtqedqbSmqJGYrKKLh4mPnKeVrKSfmKeenpKUo5anmaialKahpJCbqJmhtbqoq5maj4x8gZSLoZSKlZGWkZCUmKaQoJuqn5y2o52mq7enrsCtoralrq+vq6iosbegrbuYkaWkpraikp6noI6qoI6Sn6Orr5qgo6+or5ijoJyjqp6enpyWq52TmaGblJCWq5qOmZmXkZafkomhnpaVhZKNkY6Vi4B9ZouFdYZ1eIeCc5xqhY+Uk5CJfYuVkpKYlKOTn5mkhYqaiXxzl3N7jIBzfH9qb2RecGpgW2BabmRQYGVQWjpHR0U+Mj0+OS8qJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWFlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1eX11eX19hYWJhYWFgYmJiZGJcW2OXlaOnoq+xq66jqaasn6e1qpCPnaW1vbCuraKjmnqeo7KkpbGpl5u5pqOTmaqcjoaKiZyij66eopWon6CSlpmbrYqplo+omamNmamPnrm2pKWZnIyIeYKUjJuTipWSlJGNkpejjZ+fqZ6fuKN/g6+1oq+udKO8orGfd3ifqLC5lHWso56JgKt/ZFxidqCPpZ+El31tkrOco6etqqJlnp+Sc3mal3CAmKiYbX+iqIplnKadkpiYlo2SnJKGnpuQloSSh4+PkomFd2qOhnaGcHuFf39gaIeKlJKLWnWUkGdokI9ze6icnGZ7m4mEeZlqhYyEb3qAa3JlX3ZxbGtoXGZmYmJwU1s+Tk5OU0c+QFVEOjEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVldYGhmaFhQSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6CusKyrqaWoraKnraSSlqu2sbOnm6unrJdzjJ2woKirp5SXuaCgj5yknZF/iYibnoysmqKVp6GdjpaSnoR1rY+Ip5upkZekiZy6s6igmZiLiXV3k42Wk4qUkZGUjZCUoY+coaeZnLKVgIybtZ2zjJKOuqagfqeieqGttYCOjaWeg4uGkLGqr4yKl6SbeoCLrIabnaGnqKeHlYWYd6WbeoecgZengoJ7nLJ6ioahmJqVmJaDkZeXhZuZYnqHkIWPkJKLg21wjod5gHB/gIR+hXOFhJWReJZoknSgmnV9mYWjoImYf5SMhYWaa4+Ohmx4e3FxZ2R3b2psa1xla2pmdFxeSVRMUkBFNi5aVVU3KSEwOT4+NzQzNTY4Ozo9Pj5AREk/SUVKTEdTWFtZXGJhaGZaUUg5REw7PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop+mrK2rqKygp6+mpqmlmZSvyL+xopeoqbaekISdrJynoqCOkL6emoyfmqCQfIaPmZeHrJyhlp+gkYyTiYaAkaeNh6OdpJSYnoaeurKonpqSjoVxdpCJlZCKlJCPm4yQkp+Sl6Gllp6rh5+0ibSarYrKh6msiLaFjbCBr6yCqIymmI2dfaiPcnt3nI+nl2iVpHm0jJ+epqeSmMKBf6uImKFynoCapX2XhZWygaF9oZShkJmXgY+UnIuZkot9hZOHjpaSiYNtco+FfnlxhoCDe4N0hICWgI/FZn+ph4+ja56FpJ2FmoGOj4eLmnGPlIVoeHV8eGhodnBoaGxeZHBsZ25ZZ0ddUk0zRTQ3TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmlsXFFFPUtNQEpjWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqKfr6eoqKWrn6O3sKmrppqUoKOkq6SXpqu4o6+Aoaidpp6diZS9mZONoZKej3mElpaRh6uZm5yZoYSOi3ebnI+fkIiepJyWmpiHo7mupZqcjIx+Ym2Pi5OQjZCNjZiMkZKgj5ShoZmhp36hp4etnaCWrY+dnJyQhYCgjKmthaONqZmMmn+idYCZlGuCrXZNq3iHjZyRmqimgKmrfYOhe3qnap5/kmtnl4aXt4mefm5gZFmDl4CNe2Roi3KZfXmWbF19l21fUnCDXF9reIJfWGSBfIN/lnCnqmuDo25ypXCfhaBqZ6BtW2+MfWdaYISAYlhQb3dmbXRya2pvXWpwbGxqWWlPXVlGOUE1SERfbDUsSURSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXV5idWBNRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5WdoLigqaOmrJGgtruqrqKZmKGipa2uoZ6vtaOokqGgoKecmo6ZtJmQi5+MlYt1gZSSjIqmlZWZnp5+koWFrKSHm5CKmamZmpuSiKaxp6KWmoiJgGluiIeLjo6Ki42SjJGTo42Un6CcoaR/k4GPoqGUoHaclY+ngqCmf4Wnq4OleIl8hJp+onBzlIiWfJ+NeW2Gm4yZj5uomY6HnXuConN2pmaefnekX5h6fZN0om6Yt7S6dJOIg4C1qGSBxrh7cJW2jHKAmqNic6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGGdmbOWcn2Yn7N1c1uesoNqYm90dnFpb1hrbHJzZ11pXmJMRT1ENlFCWnMzPVNHYEpSPTwzOTU6OTZEOztASlA/VU1PUUBFX19bWlhgYHxkSEM4TVdVV2JhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOVlKO3mKqbk5+NpLa0ra2gmqKdpKOmrp2csq6sk5iimqGkmZuVn6ubi4iSeIuFcYCWjoqQoY+SlJ2YfZCJjaigh5eOiZKklJybjYupqKWekJeHhX5qe4d+fZCNg4uRkYmQlKGDl56gnaCei4l3nJiijZ9xoYqHqYebpY6Upql9rYx+eqCZeqOTeIF0loiNnH2Wn4abjpibpYWiZKF8iJaQm41tnmibjm+amXqAi6d9cml0q4Ofg3SqaJWaXZuFdoWeZ6prgLhmXKhwgZxglYxep3Z1h4h+nmiadYaTkpeOgJ9vmpFup5pdqX95u2t+qlyOhF20Z1xucnp4a2lccWp4eWRgZlhiQlFGTzdXQ1JvNUxbW19OWkRBMjUxPDs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4mptJqniGOUm6u5sbCsnqacnKmgn6+cnrGprZ6XpJuhoJmXl6CjmYaJjWqIgHJ7l4iMlpaEkZWYkHqKhJWjnIqUj4aMn5KdnYmQqaOgmoySioGAaYGGeX+XjHuJjo6IkJebf5Sjn6Chk5hyaJ+Jn4+McJKMgamHmJ6hpZ6me7Cto6K4l3ejs6OkgIiUeZ17q5l+oo6cmpaIl3GhfIWNr7V9a5qRoXl+mLWipKuohJl8m32em390qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJqcXuObICIhJl1m3iGibGzf4Cbk6d3g55uc32VcJp0a6RdlXZIZWRgdHF+fm9mYGxpdnxlZWFRX1ddVFdAWkZRaEVUV11iWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQjxVX2JaZWlWZ2htb2JmZ15hYVxdXmBoYl9lY3ZtXWVnZmtkZmxpaGtpk5yAsK2ZhFNeoKazubKyqZqijJysnJyqlKKspKOoj6CenZualpmhnZaIh4l3hoFveZWFkZuLfJGTlohygIiSoZxzkZCBiZqVoZuFj6mcm5WLi4t8g2yEhXGCoYx4ho2IiJOZlnyTpKCeooithn21hI6enXullnqpgZWbj4mfm3ynaHdtfpl0oXNyfJ2GmXCTg659pIOlnZmAo29eqWd1omNvpWGc05B9e5l4c3NiooaQfqN0pJB2a4+zjGCCmIlzqrKovH93g21+v6aptF2bbnxwlm1/cqJyXaRnc6ZgaKZtm9SafoabcHp7mGycfHiXc26ppGdgZXpxgIVsaGZkbnV4aGBjU1xmUVFiSFlKVWFXVFxma1xlUUZDS01KS0JLRThPQFFOWFNZT1NRYGZmalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaWV8ZF5kZ2RrZGptZ2hsaJeaf6+qVFxLfqmvsbOvsqObmYWZqaChpI6mqaGZqoubmZmUmZOSoZiOh4V7cH2EaH2Pg5SagHeRjo+Jb3+Gj5OSbJeTfImSk6WXg4+rm5STi4aJeYN2h4Bugp+Gd4CShoiZo5h7lKOkmZ+Js6Gitot6rKekrqVwqYCajoWAmpB7pIChmYaYcp6EpK6vipeMgI2kjZWDraCTdrW2tcmhc5SLgZ9gnpepbXmWh6CbdKKId6B+k5eLgXBNZqOScJuHc6R7eXRhg4FrfqBrcWRfnHF9c5ZoeWmztbTGpnOYfXqda5ybq3aFm212eJhqmnt1mHJRRX2zX2p2a3qIZmtoY3V1cW5XX1RZaVBTaElXTVlUVl5pbG9WaFdOS0FKTUtISk9BUUtQZWNqbWV0cnN/eXxudYl7e1RRT2xeaVxraVJqaGlsaGxmY2VfXF1dXmliZGlre19dZGhjamZvbWVpbGWhm4iupYNkP5Ohsqqur7WiopCAl6qio6WMpaeenaaDm5iXjpeQj5yTjoiDemp5h2WDjX+YoHl1j4mMgWmEhZKDjIWdjXmNi5amk4SZqpiNkouBiXqAfYt5cJChhnmAlYeJlqCWf5SlqJyVlYNmbnicbKJke3Gld5uYcGemgJWKeqR6n5aDl3Oed4GKlZePuW6RiqJifZmglYhucmmqa3WgbW+mYJtpi5BploeblnWigX6aYIyGjXVwiGJooGWefmmbdW9jZoiBbXGiWl5bYqFtXYiLbnp9c3JkpW14omRnp2iZc4yZcKJvVYmQb6BfZqhUi15UmG5tc2tygm1waWx5dGtwUllXV2ZaVG1JWU9dSVhpaXNrWWxXUVJGVlxMWFNhVWlrX3d0e31wfHxyg3uAc3aNgIR2XlJyYmdjcGdQamhoa2xuaGRnX11eXWBqYmppdnVdXGNoY2pqc21ma21jnKOXpXlkc22Lpq2jqbCxpp+LgJirnZ+mjKOim6OigZaZlI6akIuYkI6Ke4dxgIhpi4t8mJtzdYl+kHtkg4eVioqVmYJ8iIeXqJGBo62RhpCLgop+gICOc2mQpoR9hpONiJmgj4iTqaadiKZ4lZt+pIiWi7GYnZCCr5efpXaUhnipc6WPhJpupKKMkoSNg7tufaWvg4aFhpOVnJ98pXpyqJWglmeefm+sZJaKlpN3qG2qooGJdomDd6uRpohrkbBrdrOMqWuKhW1tn56SlWB+q4uqdn5+i6Wedp98g6SVnaBqm4h4rGierYy2dHe+jaSTWoOnjqthdXJ0cHx1cWNrf29pbVNXW1ZhYl1rTV1SXUpebW93YFtxWVxgW2d0ZW5vcmNydGB3en55cnmDc4R/gXt7jIGCgHZieGRjbnJkUmtnaG9scmpmaWFgXlxha2JtbHpvXFxiaWJsanhtZ2xuYpWkqZyBf52jlqmpnaimrqSZioKYrJqfpYqbpp2pnYWNm5CHnJGFko2MjXSHe4iEb42FfpiTdHSGc5KCbX+LkYeGk459e4KGmKaOf6enj4GOiYWVdoKHkm9si6mBg4yUjomdn4mMlKqin4+AdZSXiH6BeZSuon+Bm3GPhneOiYJ9e3KnjHJ+fXqYlpuEkHl7f36HlJWTinaQmJ6gg3t9iWuMhVt5eXJ6cWlufpKJcYB1gY+Uk3GHhIJljH9fgX+Ld3RylHVveW5th2yEhV51Z3eOZYCAhY2omn10e5VqiYhwgXZ9h3dubmiMc3p8mHiFXGxYeY9pb3hycW94eHBda4duamdWW2BXXWZrZFZjVV9RX3B5eW1rd2Zra2t3fXJydXRhb3ZidHuCeHV6gnWAgICBeIuFg317bn9sZHluXlduZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhsb2GNk7eopomgopqmo5iknKuioYSEmK2SnqGJm6ebqZiDgpyMf5aUh46KiY1yg3yPfX6PhXuYj3RyhHGVhXt9kouGho+EeX6Ah5qljnyoooyGkJCFlYOGjph3coSpho6SnZCJn56IjJunn5+qhImOlZp+fomWraePkaaPd2+bj4F4kG5+qIVxfpVxa3B9gqCNgJOOi2hsXIKLi5uano5zlYuIcXRrgnd0gVlyboeRgX5/jGpdamR7hoSJgGBpeHqae4KKgXWBhYFnd4qGamFwcYF0XnGKgYiOpZSFZYuNg253i4Rxho96cWhoZXyEe5ZbXGtobnZbfHl4dW5zc4NnXG2La2tiWlpfW1lscVxfYVpfXWV0f3x2cHVka2trfH1zfHl1ZG51aG18fnd6fHt5eoCAfm+GioR7fXR+eXN/aFRccWlsdnB1Z2toZF1hWGtoa2txcm5XW2VubGdzem9oam1gi4qpsKGPoqGanp2Xnpioo6J+g5mujqCViJyikaWVf3yYhn2SmYmJhoeKc36BjHaFjIKEl4pyb4BymIaDfpKDhIaJgHqBhIycoZGDp6KIeY6XiZWLi5yXhIN6rYKRmJqVip6dh4ihqp+hoqOLiJObnKOZlaqhp6afkpqHlYx6do2Ng6d+f5KQk5SdsqablZ+QjbGSl4OljIyVmp+JkJuCiJGKa3yOd3hlg4eRi3yJnoSHjJCJiIGFhJB3fHp0maCIhomdiYSTfn2KgIB1b3KEgn53hYaKj6WQgoWMhoKMkIx9iIyKkYR6bYOFfnqZa3NpYXSKcX56d3dvd3SCXV5vh2huX15aXV1TaHJWZF1dYmxodnx9dG9wZWtqaYB9bnmAcmpwcWxngXtygoB4f31/hHttgoyGfHp4e316g3hOY3Zqc25wemVrZWNiYFt0ZnBncnFtVV1sdG1peXpxZ2lrZIyHnLmelqGgmJSYmZSYpKCefH+arI+fjoagnYueln15lYR8jpmKhoOEh255gYFzgYh+iZSEbWt+epeHhIOQf4CHhIV8h4WPnJ+TiKyghHOLkIaSkYudkX2Ne6qEjpOYlo+cloeHm6WfopqdhYKSmpqYj5mmn6WdnI+Vf4+IdXuGjYSle3yOkJGGmauinpSdkI6pjZCAnYyIk5mego+XfoeOg294hnJ1YH+EkIZ1jZmBg5CDh4V/hYSVbnl2dJKhiouFmoOEjHN/iXt8cnF6h4J6d4mNg5Gmj4WDjoCDiomKd4aJi4x+cW1/gnxvaGxtaF96f2h+fHZ1dnV7eFxfcX5udGBjW11fUmduVGVbXmJraXZ6f3JsbWRramiBf2x0gWxsdW96cIZ5boeAdoKAfoV2coKNiH57fHx/e4KKYGh7anVpaYJkamNgaVxjdWhvYnVtbFVjcXllcHp7c2VqbW2LiZ62maCjn5KRlZiLmp6fnnt4n6eRnIuHpZWLmJl5eo2FfImRhIyCgoNufIB5c4GFfouRfWtofYKXiYGIjnx+hoSGfI+CkJ2dk4mpnYFxjIuMkoagoYqFjHyokYiQkpeTlpN4jaOfoJ2WmX+AkJuZkoyaoqCjmZeQmn2Mg3d/go6GoH9+jIyPfJikoaKTmpGQpoyPgZqRiZKXm36Tkn6HjoF1dIJxd2F+gI6GcouWfYiMcox/goWGj2h4cniLmJGPf5Z9iIpygYZ7fHB3eoqCeHiPi4GUpZKLhY97hYaHhHaDhImJfGdzfYB5e3Fta2dffnNofHV2dHxzgGpeYHR2cHdkY1lfX1JraVVlWWBhaGp2eYJxZ2tkbGhmgIBrbn5ob3FsfnmHemyMgXOBgX6BdHaCjYZ/fHuAgX1/j2lyg250aWGHaGxiX3FWdG9tbWB4aG1XanR2Y3V6e3Jiam96iYyesZGlpJyOj5ePhpygm519d6WhjpiAjaOLiJqWeXuGh36DiX+JgoF/cn97dHaDhX6KkXhnY36Gl4qCiox5fYCNg3mWgpaZmI2XoZx/cIyCkZOGpZuHjImDppWFk4uWmJOSd5GdoKGXlJZ5fo6YmI6WmpyjnZiSlJp4jYSCd4OVjZ1+gYmNjHOXo5+ilJmPj6KMioKWl4OSlpl+mI18iI2BdnF+bntkgHyLhXGHk4CRgmyHg4GAiYVmdW97hZGXi3ySd4uIe3+Ge3pxfXeIg3iDj4eJl6GVgYOLdoiEg4J3fIOKh3hgenl+dH94Z21lYX9qandzdHZ+cXxjY2BzbnVybWFaYV5bbGVSY1lhYWhrdnmGcWNrY21maHyDbWl1aG5waYB9gnltkIZygIODfnR8g4yBgH57goN+fJBtdolzdW1limxqYmJ2VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPm62XpqeejYyXh4afk5eZfniqnYuZepedi4yYkHl8gYx+fIR8gYOBeHR5enR9gISAiYuAZF99i5WHf4WGdX1+i399mIaXlZiNpKKZgHOHe5ORiaaPjI6Kk6CRg5KQlZeRi4GPl5+akZCQc3+NkpSJnZ2eppeXjJSVcouMiWuEl4+ZeoeIj4lvl52apJSVi4yejIaBkZx/kpKVhpmIe4qKgXlxemx1bHx/i35uhpODlXhxgoR+fouAZXJpe3+Wl4N+jXOPh4J4hn11d398hH97gouDipOjj3iDgXSJh32AdHaCiYVwYnx2e3J9cGJvY2R8Y25wdnN4d3N0YnZgb2x2bm9cXF9eXmpeUF1ZY2FobnR7iWxgaWVrY2l3h25nbGlrbWiBfXt3b5CIc4CEhH10gYaJe4N9eoGEfX2OcnqLeHhtbIdqaF9pcmOHZ3FvZXdnbmxheWlrfXt4cGF4bYuAmJipn6SonYqKkoaKnYuVmH54r5mNl32flJGXk4h3fnuKfXyAd3iAgHB1dHxvhn2BgYp/fGFcfo+RhoCDg3N7gId6j5KJk5KdlaacloJ9gX2OipGjiI6KjZiajYaSmZSWjoqIjJKcko+MjG6EkI+RiJ6ZoqCWlYmWkG2HmINlhZiOk3qJhJCKcJaalKOTkomLmYyBf5CdfZKOkoyZjnuKhYdzc3ZscW51fIp0boaRj5NxdYF8gYGIfGVwbHl8mZN8g4h0kImAc4d4bn98gIV7hIuHgouUp4x6hnt+ioV3fnFwgYeFZml6dXZxfGJfcGFrdF9xant5eWxzcGV5Xm5sc21yWFtfYGFrW1BXWGVjZ3Fxf4hnXWlpZ2JncY1vZGloZWlpgXp3dW+OhXSBgoN7dYKIhXiFfHiEhXp/iXd/i3t7cniDamtfcGh0gGtyb21yZ29sZXxjboB6d3Fsd3eKfqKXoaegppuHi4uBj5yHk512gquVk46HoY2WlI9/c3x2hXh5f3Nze4Zrc3B6bot2gIGIb3FbWX6RjYeAf392dYCAgKCHkouUnpqilZh4in+BjYicnYqPhpKYloWJlZqQl4uLjY2MnImNkINtiYuQkYqdlqGbl5SFl4dpg6KBZYSciZB+i4OLgXeTmJKfk5GJiZSNfn2Ol3uRjI+OmpJ8ioCCb3ZwbG1vcHuGaXSDj5mLcXeAdYKIg3lmcm51gJmOe4eDeZOQeXWHc2+HeoSKeYqFgYeNmqKGe4N1got/d3lubIGFg190dXNxcXlaX3FhcGtecGp9e3FtbWptdmBvb2txbVlZYmFiblhRVFpmZ2N1cISDY11rbmRjZmuSbmBnZ19oa4F1cnNwi4B1f4OAeXaAi4B5hX94iIZ3g4V8hot/e3aKf2pxY3xjhnxucW10amhvbHZ4X3F/eXx1dXSAg36klZqsnqeWhY2Ef5eUg5CgdoyglJOHi5uNlo6LeXF4dIJwcoV0cXaIbHBudm2IdoN+gG5uVVGBq5WHg3h/d3KDeoOggpOClZSanZObeJJ7g4ySo5mTjomVmZKEh5eZjJSLiY+Ph52EkIp8c4uFio6InJqfm5WTf5N9aISbhmeFn4eRhJGCiXGDkZiQnI+PjIyPjHd7kZB6jouMkZaMfIh8gGt3am5rbGx7f2J6fo+XgXZ7gXiDjH15Z3Nsc4aVi36HhXqTj3F5g292i3mIinmIfIGKj52dhHt6doKLfHdxamyChHtheXFubXJ0Vl9wYnJhYG1venFob2Zmc3RpcWtid2VdV2ZgYHJTUU9cZmVdeXCIfWBcaXJiYmVmkWpfaGVbZ3B+cGtxdIp9dnyGgHV2fox5e4WBeIiDc4aFfoyMhHx5lXhmcmuDYIh+b29remBqbnR/dV90fXmGeHRzhX14oI+ZsJuljoKLf4OaiICMn4CLmpSPhYiYjo+PhHZ0d3SAcXCFdHByhHBraXdug259fW11c1JNgt/IktaTe3B1hHaEoIOUd5aRmZ2RmXuUc4WQnqGTk5CJk5yUhn+XloiNjYiRjIebf46Ad3qNfomMipybnJqUknmMdWaHkIVrh6KEkYiXg4ZjjJGZj5WLl4yMiopxepSIe46IipKRiXqGfH9tfGVzb2tsenpbgXmQkIF6fn+Aho57emhyanOKj4mBhYR8lIprfX5tf4t9ioV8g3iAjpSZmYp8dXeDj3hybWdxgIVua3VwaGp1blNfb2VwWmBscnhna2piZnhycHFjX3dgYFZrX152UE5MYWdjXXpxiXVdXGV2YWJlZY5kYWdiWWlzc25rcXaMfHR6hoJ1dn6Lc4CGf3uJf3KJiIGRi4h8fph2ZXNufGWIfm5wbIBZbG55eXNgdnp7jXZyd4p3eZ6Lm66aoJCChXeIlX58ip6IhqCSj4WMmISTjoeBdHhweXFvhG9tb39zZWV5cX1ten1qaGtjpJrB3K7woXNsdoR2haOGk3CXkZahlZyBknKGi6KXiY2VipCdloOBlpCFiY+AkYmJln6HenV/iXiHhI6cmpiYjo92iXVthYiJfImig5GJnISFXouTl4uPiY+Li4SJbXuWgX2IhYmRj4Z2hn5+a31keHZqbnlzWIl7koiFen6BgYaMf3llcml/iY2JgoF+i5WEa4F1bYePgY6DfYF4fo+UkpiPdHJ3h4x1c3FndnqEY3VucWNqdmhSYXFnbFZfb3R6YXJkYGl9cHNvW2NyYGJWbllceE5NTGRmYl53c4luXFxkeV5fZWWFYGNjX1lqc2tua3N3jH10d4SBeHd7iXGDhH1+iHt0i4mIloaMf36Xc2d1cnlsjHtudHGBV3F6dnlyZXd5h41pdoCJcn+chpimm6OShH1xjJR3eYyehYWhjY98lo2AmYiEe3N3cHRqcIFsaW18dV9heHd8cXV8aGBkfOvatcnD3IdzbHSCd4ubiY9qmZGQnpaUgYlxhYifjYSLlYqMmJR8jZOIg4mPe4+KhY+Bf3Z4g4RyiIKTnJaUl4WMdYZ+b4OBh4aYoYKTjJ6DiWGDlI+HioaKjoeBh2l8k399g4SJjo2Ccod/f3F3aHZzanR3bFqNfZODhX2AhIGEioJ2YXJriIGOiYF+fpGQfW2Ba3eEjoSQgnuAfH6PkY+ViG5weYyFdGtxbHN5gmF1am9dbHdhUmVyaWZTYHB2dWFwYF1og3Fza1dnaGJpWG1WW3VMS0xlZ15ic3OFalxcZXleXmRne2FkX11Za29mb2p0eIp+c3OBfnt2eohzhYN8f4d2d4qGj5mBjIJ7k3Vsd3Z5eJN0bnh7fVh5hnGAb2d5d5KDZHaGhXCKloWZoJqiiod0b5KMcXePnH6LmomJfaB/g5mAgXhydG5vZHJ/aWZteHhcYHl7e3FxgGphZ2F/1baOkaZ4bnF3fHGTkY2Ia5qPiZ2TjIZ7aYeLmYaBkpGGh5iOfI2NgYGKjXyPjH2JhHp0eoN7cYaAlpqOk5OBiHWChXSCf4mRnJ2GlI+ffohif5OHhYiFi42AgINnfJCAfn+CjI+Qfm2DfIN1bG13dXV4dmxjjoGPgIV+fYZ/hIl/cF9xb4R7jouBe36QiHlwg2V5gYmFioF6hHx+ko2PkYNtbnmLfnVtbmtse39kaWxqWW53WlNqc2liUWNyeG1jZl5aaoNudGJcaF9kbF9uVVtwT0hPZ2VcZ29xgG1aXGNzYFxjbHdlZV1dWmtsY21qc3eGf3Fwf3x9dHiGeIWCfICHdXmJgZKVfImGdoiBcHh5e4STb257gXdeg4B0gm1penSUc2dziHxxkpGDmZ6boIaIdnaUf213lJh/iJCEi46afIuad352cXBsamF1fGdianV6W2B4fHptcX9lY2hnV52PX3FzlrzEhHdxlIqQgHSYjIedlI2Ic2uIj5WAe5SLgYSbjHyKhn18iYx/k4d0iIV2dn2CcXWGgZ6VhpSPgoJxfodzg3qIlpuWhpKNnICIZn2TgoCGhIqJcoF9Z32Le3l/f4eLj31pgH2EdmZweXh0eHRsa4+Gi4KLf3mDgYSEgGtecHd6fYuHhXuAjn9+coBoeIGGiYSCd4J6f5aLjot8bWt6iHx2dG9paH53ZV1xY1hwdFNUb3NpYk5odXlnYV5dWG+Ab3RZZWNdam1gcE9ZbFJEVGhiWmxvbXtvWVtebWNaY293ZGdcXWBramNsaXN3gYNxbn57f3R1g3qEgnyChXZ+iYGWkXiDinSBiHN5eX6NkG9ve4FxaoJ5en5ubXx2lmtqeIR0a5OMhZ6YoJmFiG9+jHZqeZmPgIKKgpaYinmOlm96c3FsamRgdHtpYGZye1thc316Z3B6YWVkjrGyd0tiWqXa0Zdye5KMkXl/loyFmpKNhm9shZKReXmThoCEmYp8h4B5eImKhJWAb4qHcXR9e2p5hoOlkYSTjIJ/bn6CdYJ3hJqXkoqTj5SFh3B6koR+g4SKg2+BeGiAhXhyf3+Diod8ZXx+hHZjcXOAanpxb3WZjYaEi3x3eYCEeoJrXG98cn+Gg4h9hYd6iHGAbXCChY2Cg3GDd3+Xi42Dd21tfoN/dnplaGp+cmFaeFpZcm5OWHJ0ZmBLbXd1Yl5cW1l1fXJwV2deZmpxX29OV2lTP1lnX1twa2d5cVtbWWtlWWNweV9oXV5lbGhmbGlxeH+Hb21/fYF2cIJ7gIF/g392gYWJl4pxgo1xe4Z8enmElIx1a3p/bHB+dH99b3J8e5Rwb4B/eWaSioKhmJ2Rg4Znh4RwZ3qXin6AhYKZioF8jY1peHJsbGZfYW95bV9ib3lcZGyDemFxdl9kZdXrvosyOj6LjoByeYaJj413hZmOf5SOjX9ubYWMi3V9j3+FgpWJfIN4bnaHhYKWd26HhGt1e3RleYOEp4yDj4yDfW1/c3WCeISaj4uPkZKMi4d/e5KHeICFjYNsgHNpgH54bXx7gYqDeGJ5hIJyZHFpf252cnWCnIyBgIZ/dHZ+gHOBb1prfXN4iIGKe4Z/fIh3eXBrh4KOgolxgHd9lImKfXRtanaAgHV1XGlpeXFaV31TWnJmTVtzcmZcSnF4cF1bW1pddX91aVliW2dlbmJpTVdmUT1eZl1edmZfdXFbWVVvZFpkcHlbaF5gZ21namtpcHh9jm1qgoSAeW6Be32Bf4J6dYKBjJOFcICLbnd9gHt7iJOJgGl7fmt0fHKGe3N3fX+MeniEfnxrjIyEm52WjIKBbI1+a2h/j458fn+DlIJ/fYqIa3VxZ2ljW2Nnc29gYWx0YWhwiXphc3ReYmOboJBuXDVar7V1aoCKfpOHd4iYh3WQjIp3cG2FgoZ0eYl4iX2TiHp/c2d1iH59l29xhX1odnluZXqJhaWHgIeNiX1tfXR+f3uKl4aBkpCYiYuFinyPiXJ8foV8aX5ta4F7eWp6doKHgXJgd4J+cmRyZ3aDbnV8hpWSgn2CgHB3enx1fm1YbX11c4p/hnaGdIKJendybYh/jn+DcX17fJGHiHptbWhtgoF1bl1oZnRyUlx8TlxxXU9cc3BkVkt0eWtYWVlaYXGBdWFdXWBmZGhoZk5aaE5BYWRcYHZhXHVtWFhTdGFbZW9yV2pfYmhrZ21saXB3fJNsaYSKfXxwf357gX+CeneAgImLhHJ7h29xd4R/e4mNj4RqfntueHl3ind9eICCh3+Efn56bYSMiJijjYWEe3aLemtthYmSeX17gpKAgH2KhHBycGNmXllnX3BwYGFocGZqb4l0YXRvW2BkanZ7f76cp6TJuHKFhHOUfXmIlIR0ko6HcnNwhHqCc3WGdIh3lIl5eXFkd4Z6gJJocYR1Znd2ZGp8hIiegoB/jo59cX5yg3h+kI6Cd5WMlJCIgoh6iYlseXp/dWh6aWx/eXNpenaAg31oYHiIfWtqdGh7gWp2go2RlX98fn5xfHZ8dH5iVXV7cXKIgoJ7gXCGiXd4b2+CgYt9fHd8e3SNhIF1aHBnbIiCcnBdaGN0b0xmdkxeb1ZUWnRuYlFPdHliUlhYXWFwgnNbYV1oZWVjamRRW3FJRGRiXGRxXlx4aFVXVndeXGZuaFZsXmFqZ2Vubmhwd3qTbmmIjHl9c3t+eYKBgnx2fYOIhoNwdoNzbneCgn6Ii5R/cYB8eHp6gYt0g3h/gYGChHqAdW99ioubnoh+hnt3hntndYeNkXp/gHyJhoR2j4BncG5gZVxYZlltc2FhYXFsbGiJbmBzaVheY22Ad6naqceGiLNyinlwjnZ9iJCBe5SLgHV0dX52f29wf22FdJSGeHVsYHmBeYiOZXGDb2d1blttfYGQk4CBeZKSfXd6bIV0f4+Kg3KViZGPiIaGe3+GbXV2f21od2ZtfHZtand2f398YGJ4hnpodXZjfnxodYePjpZ9dYB2coB6fW2AWVZyfW9zgoZ+f3driIZzeGp0f4KCfHl7d3lxin97cmdzZG2LhGxzW2pfdmZJb29MW2NYV1Z5bWJQU3V2WVFWWF5gcoRvXGBjbWRjXW9jVF1yR0JmX15maV1ae2NSVlx1W1tna2FWa2BgbmZmbHFocHZ4j3Rrjo12f3Z4fXeBg4F7dH6DiIiDb3F/dXF1fYWBiY2Le3d/eIR8fYWHeId8fYF9hIB7fnJ2eIuOn4yJe4p3dYN6Xn6Hmo15h4R0hoeEd4l7Ym5tXGJbW2FVanRkYFtob3Bnh3FhcWZXXGNrf3zKzoe6omtub4ttcoRyfoaLf3uShXp5dHp1dHpqbHZjhHaSgnZvZ198gXmLiGVxgGpqcWNYbXuGnImDgnKXk3d9e22Gb4CJioZwlo6QiIaMhHt5f3JycH5naHJjbnhxamxxd318eV1leoB4aXV5Z4J3aHWIjI6VfXOHam9+gHhufV1XcH1tc36Je4Btbop/cHZmdn5/foB1e3B4coV7eHFlcmBti4FrclhrX3hdSXBsTldWX1RVfGtiT1R2clFSVFdeYnSGaV1ga2pmYlluYVhjcEdBaF1hZl9cVnxeT1ZlcVlbamhdWGhhX3JmamhxZ3Fzd4d5bpWKdX97d355g4eAdXN/hYWOg3Bwe3h3dXmGhYeMhnp8f3WLfn2GhISHf35+fYZ/fHh2eXaSlJ9+jX2LbnWAemSEiJiGdJKKb4WFgnqDdWNuallfW11dVWhzZWBZZHJyZ4FyYWtkV1pfaX94vq56n7huYnSHaXV8cnqEh3t+jYB3eHN3b3p2ZWpvYYd1joFzamJefXd4ioJlcH1oa2taVm94i6SBhX9wmZJxf3d0gGx/gI+GcpOHjIiFiYV9eXVzb2l5YWptYW12amdra3l3endbZ318eWZyfm6FdGZ2ho2GloBwi2dre4N0bHViW256anN6inuAZXSHfG1wZ3R9dnx+cHpqeHl/eHdvZWxhbIl9bG5WamF4VktrbE9ST2lOWX1oYk9VdWtNUVRVXmZ2hGddYXFoZ2FXaVxca2lKRWpaYmVXWFV5Wk5XbmpZXWxlXFplY150ZmxlcWZzcHSBeHCZhXZ/f3h/fIWHfXV0god/lYNuc3l7e3NyhYaIiIR5gX12j399hImOhIGDen6Lg3t3fHd2mp2YeoqDh2p2fn1shIaVgXKPgnGGgn6CgG9mbGdYXVtcW1RlcGVfWGNydWl2cGRlYldbW2h/cG9ygHOKZWZ6f2p1d3R0hIZ4goV6d3R2bmt6cGFoa2eGdI2EbmZeX3xveol9aG13ZmpkVldzcI6nfYR8dpaQc3txe3hseXqPg3WXfIiGg4eEfXVxc21odV1taWBtdWRnZml6b3tzWWeBdnVocIF4gnZid4WLfZWCb4xrbXuBcWZzZV9reGZxdYl6fWF1g3Vpa3F0eW94d3J7ZXx9fnd1bmNlYGyGfG1rVmpjclRMamtQTE9wSF58ZmFOVnRkS09UWGFrd35mXWdzaWVfV2NXY3FdS0trWGRiVVRVc1ZNWXZlWl9sYFxbZGVfd2dtYnBpdG9xfnV0mYF4f4B4gH+GhHp9doKDfpiFbnJ0fHt0cYWFjoGBeot1dJCAfYGUjoCFhHx+jIZ6foF2e6OminmJhoVsdXx8dYSDjXtvhXN6hX2Cg3VuamllVl1bW1pTY25lW1hidHtqaW1oYGFXXlppgGlsb4BnbWJpe3prdHV1b4aCeoF+d3Zue2hqeWpfZW5ogXeQhGdlWGF2aX2GeW5pb2ZmXVVYb2mPqHeBenyQjnh0bn1tcXR4jX53lHSGg4CFiXZqc3ZoaW9cbWVebnNfZ2JqeGh7bVttg3N0am+Bfnp3YXeFhXqRhnOIcnB6f3JjcWhbbXZkb3KHendhcoBvZ2l4c3Frd3ZzdWKCen12dW9jYmJtfHxra1VpYmdUTG5oUEhSbEVheWZiTVRyX0pNVVllbHh7Zl9tcGpjXVZgVnBvV0pTaFhnXlhNVWxUS116X1xfbF1dW2JlYHpobGFvb3Zub3d1eph9d4CBeYCAh4Z6eXqDfYGThHF0dH56dnSFiJB+gX2RbHOVgXuCn4V/h32AfoaCgIp7dYSsn396iIiEbHKCenaBgYJ1bodvfYB0ioBqb25lZFhfWlpaVWJqZ1xaX3WCaV5tbFxhV1tca4FlcXV9aWpebXh3aHV4c26HfH5+enZzbHpoaXdnXWRzZ3p3koFjY1Rkb2aBhHZ2ZmhqYVdWWWhjkKhvf3d/io56cG97ZndteYp6do5xhH1/f4duZHd0ZWhpXWxiXnBwW2dfbXVlemhddIBucmtxe392dWJ1hox8iYiAf3hydX50YXBsWHByYW9wg3p0Y3GAa2Bsem5paHl3c3Bkg3R4eHRwZGBjbXJ9amxUaV5fVUx1Y1FHV2JHY3dmYUxUcVlLTFhYaGx2emVkbXFmY1pYXVh3Z1RKXGNYaVhYSFdlUUljeFtdX21bXlxiZF5/aWpgb3R4bW9udoOXeXKBgH1/iYyGfnV2hniGjH10dXWCeXp6goyOfX+FiWp0loF7ip19foV5gHt+fIaJc3GProx8fIeQfmZxiHp0fn12cm+GbHx+bZB6Y3BwYmVdZVZaWVdjZmtgXV1zhmlZcW5bXlhaXGx7YnF3dmxjXG50dWh1d3Fuhnl/gXp3b290ZWh0ZVtndWZ2dpJ6X11TZWVqgoFzfGFjaVxUV15iZJClaXl0goWQeGxteWZ3bHuDeXSHcoF4fHmAaWV3bWBnYV9rYF51a1lmXW9vYnplW3d8a25vcHh5dHVlc4OTgImDiXp2b3J9cmF4Y1pub2BvcIB6c2VxgGRebXVoY2Z4enJrbYBzcntxcWFeZW1ufWRpVGhZWlVOeV9SSlpZSGN1ZGFKVW5VSkxaV2lscntkbGxzYmFZWlthd11US2NdWWpTVkdZYU5IanZYX2FuW1tfYmNdhWloYm54eW1vanaBkHlug36AgpKIhIF2dYl0jIZ0cXZ2gXd9fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OHhHNwmaJ7e3+JlnlldYh6c3l3bHRwf2x5fHCSc15wb2FnYmxUW1pXaWRtZlxccYllU3JuW1lYV2BrdWRqdWpqX1tudHJtdHR1a4d9f4F9d29ubGRpcGNba3JkdHaOc1xXVGNfcH9+cYFcYmNeU1phXGSTn2VycYWDkHNranhsbm55eXpxgHZ/c3t6e2RmdmheY1thaFxed2hXYl5waGF3YVt8dmpqcm54dHR0aXGCloSHf4V2c2pwfG1md1dbaWxhcHF/eHNlb35aYHBwYV5pb3xranJ9cW92aW9gW2RrbHthZlRnVVhTUXdcUlBZUkhkc2JgR1ZsUUlQWlVrbGt8ZW1vcmFbWlhZbHBXU1BmV1dpU1RGWlxPSXN1WGBjbmNYYWFhXoxqY2Vtenlsbml2eYZ7a4R9gIWZfIKEeX2IbY+GcW92en10goJ9i4+Dg5d0eIKUhYGfiXWBf4F0f4Jwh4N2b6KXdHuGjId7ZneLb258cGd4cXtsc3ZzjWtedG9iZ2ZrU15cVmhibGxbXHGNZE9vbVxWV1VmaHNoY3RlZV5acHZvcXZ2emyIfYB9iHeQc2Nka29hXG5tY3N4h2taVFZiYnZ8fHCEXGNfY1RaYFpjl5VjbnCChYlyaWZ5bmRydXF6a3l0dW97f3ZfZ3NkXF9XYmRZYXVlVV9gbWRhcV1dfm9oaXNxdHF1dmxthZSDinyFcXJnbnxvcW9SWmVpZHByf3VzYmx1VWJxaltebmR7ZGt0fHFxcWlsX1hkaWp4XmZVZFVXUVZvWFFXVFBIZXJfYUZYa09JWVRWbmlkfGlreGthV1xVW3RkU1JWaFFZZ1RTSFpbUE55d1tfZW1qWmJhXl6PbmJnbHl2bm5pdnZ/fm2EgH6Gl3t/h4GKf2uTiHJndIB7dYCDfomOf4yTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOCjYx3eG56jWBlfXFnenR5bG1xd4NnZHxtZGdnaFNgX1VnYGxvXF5ujmhNaWxgVVZTb2Vya2Z4ZWVdWnJ2bnN7eXNuinuAd5x7emthZWxtXmBuamVweX5nWlZYX2p3e3pvg19iXmdWWWBYZJyIYmtwgYZ8d2tqdmxbdXBqeWl1cm5ve4FzWGtvYFleVmNkWGVxY1RfYmlhYmxaYH5rZmx0dW9teHZsaIaNgIp7iG1xZnB7bHFsYVhfZ2ducn9zcl5pbFNlcGRVYm1heGFvdHp0aW5ral5XYGZodVxkVmJWVE9ZZ1NPXU9QSGVwXWNHWmpOSmBLWG1lX3hobn5kYFVeVF11W1RSYGdOXmJVU0pcWlFadnZdX2ZtaFhjYVtejnFjaGp4cnNtaHZzeYNzgoN7iI5+fIqIjnluj4p0bHOCc39/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo2NjY2NjY6Ojo6Ojo6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjY2NjY2Njo6Ojo6Ojo6Oj46Ojo6OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERDR2RoZ2dnZ2hNQkNDRERFOS4uLi4uK0iFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTQ5XGBfX19gYUE1NjU1NTcnGxwcHBwYO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fn1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaIiYiJiYmJh4WFhYWFhYSDg4OCg4KFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkJCQkJCLjpGRiYeOipCSk5GLkI2Mj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjY2NjY6Ojo6Ojo6Ojo6Ojo6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQi4WHh4eMhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCIhYWGhY6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkIiFhoaHjIiIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp+fHZ2eHx8e3x9fX19fX5+fn5+f35/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4SIhoaIhYmPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6fHp6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pio6KioyKjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fH1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fn9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f3+Af4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/gICAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f3+AgH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f4B/f39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJWVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5KSkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX1+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOSk5OTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpCSkZGSkpOHhZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCSgoGSkZGSjnWGkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9+f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CIcISRj5B8dYiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj4+QkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fX19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4xzb4qPiXJ4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjXZue4+Cc3iGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHc21ug3p0doCFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxZWFhXVFBRUlNSU01NSklGRUhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39+fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3RiXmRfYmtxZmhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f35+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYl5sbF1mZ2dlYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hJSkhISElJSElWcHN1eXp7eXZ2eXp6e31+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWVZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpaa3dtYm5zamJaWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fX59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtrcmxhbXRyZ1FRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OXGRva1lpc3VwU01PUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgIB/gWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZCRUlWY2drb3BubWxaTUxOTU5PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICCb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVDR0hJTltnaWdybm5pZmRgX19YTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7PklaXVtdZmxua29tbWxraWlrY1JHRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+AgICAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7Oz1KW2lubm9qb21ramxsZVBHRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYGCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ojo9R2Juc25ubGtsZ1RCP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VGRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN0cnF0eHh5fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5PElfc3RxZlI/Ojs9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT48OkJsfWk+Ojs+PT4/QEBAPj9BQEBAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQURGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9APFxuQD5ERT8/QURfZDw9PTs7PT5BQUA+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJDRUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdIODs6PT5BOkllPTw9PDg6Oz8/PTw9OzxAPT08PT07PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUdISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw8PUlMRkZ1d003ODg6Oz4/V2pBOzw8Ojs7Pj8/PT04Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3J5STtcf4N/enx3Vzw9Pz09PkVodEw6PT4/PT0/QUNAPDk7QT8+PkE9Oz9BQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFHcnlrYoOEg4KDgH1ePkBDQEA9SnN7WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEVudH2CgoGDfn2Edk1BQ0VAPz5Ze4BdP0NFSUpKSU1NS0VDRkZHRUdFRUVERUNBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTE5PUFBNSUdJR0hJSUhIR0dISEVDRUVFRkZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSEpPTk9PTUtHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiIRWbISHhoaGh4iIh3xPWGRMSUlHR0REQ0NAQENDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREZHSUpJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pUgYOEhIKChYaGhIKGhYSEhoaGh4eGinZvaVNNQD5BPz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgICAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpJSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMjn5sYmFSPjg/QDc3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJR09SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouNjG9gZGVZQVc9NTY1NTg3MzU2ODo4NzY1NjU2NzY3Nzc6Njc4ODk6NzU3ODk3OTc3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDY3ODg9Oj1FQ0JlhYOBgIKDg4ODg4aJioqJiYqKioqLiouMhmpma2lmUTc4ODU1ODg1NTc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc2Njk6OTg4Njg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhIWGiYqKiIeHiIiKioyLiouOhGtsa2I/PD4/OTk7PDk6Ozk6Ozo6OTs6OT09PT47Ozw8Oj47OTs7PDs8Ozk6PDg6Ojo6OTk5PD88PEFCRElKTUtJS0xXb3JzdXN2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuKjI2OgG1sYEVERkZCQUFCP0BDQUA+PT4+QD8/P0A/QD09P0I+QEE/QD89QEBAPj9BPD48Ozo7Ojk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t9fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKDgoKEhYSFhIaJiYiIhoaGh4iJiouLi4uMjYyNe21rT0tNS0pHSEhFRkhHRUNBQEJFQ0NBQkNCP0BESEVDRUNFREFGRUZERUZEQEI+PUA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyMjI2LeG1hbWRNT0tLS0lJSkpJRkRER0hHRENFRkRCSElLR0hHRkhHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjY2MjIyHeXllYU9PTUxNSklKSEtHREdJSElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7Oz06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjIyLjI2GaVJST05OTU5KSEhFSklFS0lHS0pJSkdHR0tMTkxNSEhJSk1RTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNUbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIyMjIxhVFVTUFBPTEtIR0NISkdMS0dLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pISkpMSkxGR0hHRkZJRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIyMjn1aWFVVVlVQTkxLRUZGTE9OUFdVUVBPUVNSTVNUT01TTFBTVVZSU1JQTEpNTU1LTkdHSkZGSEpFREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09QkBCQkdWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyNj4yMjGpaWGxjR1RSUlFLOztSU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl4ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0dGRT8/QUFFQUNHRURFTFhSTVRVVlhafIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqLjH5hiouLh25dZVY7WVpZVFE/QFZVWFxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFVUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6enp7ent8fXt+f359fn19fX5+f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKjHpvcFpcXVxTVVNWVlVbWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f3+Af39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeEi35nWlpcWlVXVVdSUVdWY5aAUmVyWFpXX2hQYGZbW1hcZ2FHT1poZ11bXF1dV1JPU1BQUlZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbU1NRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn6AfF5SV1lWU1ZTUlFMT01LZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtcXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fn5/fX19fn19fn9/f4CAf39/f35+enh3dnN1e39/gIB0a39+a3J5XltWVVNST0tGQ0RBTl6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmJh4aDh4eHeW9yWEtNT1BNT0xKS0RFSUVDPlRkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3x9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eXFlVUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ2YF5NRUBEREREQ0FFUEJDQUM9Q0lHVkBITkxHXWlQSEZORkRFRklHSEJESEdJS0dEQkFEQE9RTVJkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn+DgIODgoCCgIKBgmxOSEBBOzw+QEA/QD9rUEpgRUZISUVCP0dMTkdNUVVJQUU+Pzw9PD09Pz0/QUNDQD89PUI+Sk5HVW51dHVzdHZ4e3x7fHx8fX19fXx+fX18fn5/f3+AgH9/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVlVXUVFXVVBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZURCQUI9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtNV01IR0BBPDk3NzU5OT07Ozs4Ojg6PzxCSD9cc3R1dXV2d3l8fHx9fHx9fX5+fH59fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BfXVpJSFBSUU9NUFFOUVJUVlhTU1lUT1laW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEdISEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BWV15aWE1MVFRTUFFVT0xSU1RYWFRUWVJNV1laVlhYVlhZXVdXWGhza11WYXNrYmFfXmRhX15ZVFFOT05MSUhKTElJRkNRUFNbV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTlHbXJ0d3h5e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQU1VXVFVSXW5eUk5aX1tWWTtEVlhUW2ZKTFBTUk9NTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz48Ojc4NzY1OTk2NzY2NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF1SVFpWV1VUV1RSWFhZWVlTVU9KR09QT09NUkpQUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBTTUlMSk9SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0hGTE1QTUcvRV9SPjM/PmpvYVNSUUBHVVFQUVBRTlFPUVBMSkxMT1BPTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR1eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nVFFTQUdVUE9RUVBOTU5NS0xLS05PT1FMT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT09NUVNMVFVUWFdVTExLSTw5ODc7PkA+PD1BQEI9PkVIR0NFRklHSkpARkFBQEZIRUpPSFFSYlxRUFJPU09PUExMT01MTUxNT05bV0tNUU9HSUhDSEpMTEpGRkZFP0JDPjxCRz9CP0FkcHN3enp7e3x7enp3e3d5fn58e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENEPTk3Nzk/Qj47P0FAQD5ARElFQ0dHSUdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xNS0xNTU1MTE9OU2ROS0xSSUlJRUFISkxNTkpHSUdCQUJAP0VGRUhES25vdnl5eXt7enx6d3R4dXh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg6Oj9CPzxAQkFBREVHS0ZDSElHR0hDQz9CPz9AQT5ERUNLTlJUTEpJTVRHSUlKTElLTElKTU1PUFJQS0dDS0dDQklJTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3p5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFIS0RHSEhHSktJSktERkI9Pj05OTo7QEI/PUJCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISUxNSEpMSElKTEtNXVJISERORkFDSkpNTFBNS01KS0ZHR0pNTlFOTGJtaXZ2d3p5e3p9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjpAQ0A+QkNERUlFSUpMRklJR0ZGREI7QUNDPkBDRENER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lHRU5IQkZNS01MT01NTk1LSEhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lERkZFQ0NCRUBEQT4/Pjo7Oz06PD5DQT5BQ0VGSkZJSExIR0dHRkVDQD1ERUI+QUNDQ0RHSElHTVBKRkZHS05PS0ZISUZFREVJSkhKSUZIT0tDSU1LT01PTk9PTkpKSUxSVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPUJBPkE9Ojo9Pzo9PkBCPkBCREdKRUlGSUhGRkdFQ0JBQUZGQ0JCQkRFREdHSUZMUUxJT0pKTExJR0hFR0ZEQ0lJSEtKR0tSTUJOTk1QTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmVmZmRoaGZuamZtbWhra21yaXF2dHNxbXZub3Fyc3dzcnN0dXV2dnZ3dnd3dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREU8QUBAQzw4Oj0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDR0VCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFSUFBRTk9NTlBNTE1TV1ZYWFVYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRTw/QkJEPDc6Pj46PjpAQj4/P0NFRkRGREVIRURFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR05LTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFJPUU1OUU5NUFdaVlpZVlpdWVhhYGFgXmhlY2BkZmhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXd1e359eHZ0d3Z2dnhwbHVwbXN0bm9ycnhOSEhHSURCQ0hFPEBFQkU9ODk+Pj08PEFCPD8+QUFGQ0VDQ0lEREVFRkdHR0lGR0tIRElIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5LT05PUlVWT0tVV1NQU1FSTE9RUE9UWVpZXFpZW15eXWBjXlxhY2tiYGRmZ3KFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdExJS0lLRkJFR0U8QEdDREA6PD9APz4/QkE8QD5BQUZDRUVESUVGRUdGSEhGSEhJS0pGSkhIS0hGRkxJSEhKR0xMTUxMSU1LTk1NT0xQUFFVVldPS1ZWVVNSUVFMT1JSUFZbW11eW1xeX19hYGFkXWNgZWZgZWhqY3NzZmpnZ2tvcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRUZJRklGR0RJSUdJSEpMSEhKSklMSkZKS0hJS0pHS0tNTUpKTU1OTk5QS09QUlRYVk1OVFZUUlJRUExOVFNSV1tdXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW5zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTExMTUdDQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdDSElHSEpGSUxISUpNS05MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltbnNycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdISklJS0hKSk5MT0tJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHREVLRkVKTUxLTExHR01JR0pLSEtLSUtLTkxOTExMSUxMTFtzYmRwXmxtVU1OZnNdZmZxbG50Z3BpX2FZbm5icHBia2pqZm9xdGV0bm9cb3VncE1KcXl2a2Fga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnR0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdCRkNGRUZFRENISEdERUtIR0xOTkxNTEZKTkhKS0pJTEpKSktMTU5OTU1KTU1OW3Jvb25wcGxrTVBRbFdNaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcF1fcmtxalV1eXhvY15rZmJncHBqaW9wcHJzcHFwcXBycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGR0JHRElGRUVCRklISEVITEpHTU1OS01OR0xOSUxLSUpNSUtKSktPUE9OTUxOTkxcaGR1XWxxV2xOUFFtVFlrXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNHREhHTEhFQ0NIS0lIRkpMTEZOTExTUkxHTExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5Zcmtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmltdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFBPkREQkdESElNSUZDRkpMSkdGS05MRU9KS1dSS0dLSkpOSUhKTElLSkhIS01NTU1JS0tLU2tjW2leX2ljcnJaX1lqbl9lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERUNGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElHS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSkpPUFFkcWlUWVdcW1xWWVtdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZFQUVDQERIREZHQ0lLTEhGREdLTElFR0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJR0hJRUZMSUpMT01KUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSS1lhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGFhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CRENCRUlFR0dGS0pLSEVGSUpLRkVISFBLTU1KTVJJR0VBSEZKSUtMSkxKSEZESUZERkdFRkpIQ0pOS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOX1xeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNHSEZIR0hLSkpJREZLS0tFRklKTktOS0hMTkdIRT5HR0xJS0xLS0tJR0RIRENERUFGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFYVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR4eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFR0lGR0hIRkZJR0hHSEtJTERES0tOTUxLSEtKSElGP0dHTktLS01LS0tJRkdDREBEQUhJQj9JSkhPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUVtXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHR0lHRkZJTEpORkRLS01OSkxJS0pISEZCSEhRTUtLT0xKS0lHR0VEP0VDSUlCQkdGRVRdWV5YX1lfW11VWFhPXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYSFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHiIeFg4B8eFxTS0NBSEZER01SSENRSkVHSEhFRktKTVBFRklKS05MTElLTElIR0RIS1FPTU1QTExKS0hJQ0RBRURJR0NCR0ZEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1PWWFcYGBfYmNiXWFiV2BfVFBPT09YUVxbW1xcXl9iZmZlbGVvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUpLTkxMS0xLSUpHRUpOUVFOT09NTkxNSEtBREFDREdFQ0JFR0JNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xQU1JVWllXWVhYZFdPU1RQUE5NT1RTWlhYWl1cYGFkZWNnY2tscHNyeXl/e3p/hISEhYSEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hMR0hKSEdNTFFRSExLS0tOTVVOT0pKS0dHS1BTU05QT05OTk5HS0ZgRURfTEVmZEVOXEleW3JtT01VbVlMRFFgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRkdGSEVFS09TSUpGYFRISU9KSU9NUlFMTUxMT1JVUk9PSUxNR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXJ0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbX1ZWWH9qdHV1Xl92XldhW1tmW19gYWBhXWBhZ21wbGBwd3R4gYGCg4OCf31/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEZJS0VRVkxLTklLUlhXUU5PT01RVE5PUU9LS05HTVBTW1pTUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29ycnt8b354boByX2BgYmFaYF9na25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOS0dgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5LT0hRUlRZV1ZQVFBQUFFLSGd4bGN4cm1bS05WeXB1bXVib3ZQZWVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en5seHp/b2hvWXZ2anZ1cIBfcmZ9aWx4fG9eX19iYVtdYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncXl7c3J2eX6Bc3V6bnx9eXhybk5LU3VOQ0JGUFBISktJS1BPT09NUFpgWldLVFdQYV5SVlFZUkxQSVNUVlhXV09VUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txb21qcGFjZmNvd3hvbXBzeX9ucXBre3p0c29tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xYVU1VWVVlWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9acHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbGB2dWtpdXt6bX54a3xwXF5eYlteYmRkZ2VlZWJaY2Npa2tyc3J2Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ua21PSEtLSEpISFFQTE5PTEtSUlJPU1JXUlZUUFdaVlZUVFRhX1BOTUtUU1RRVlZOTkxNT1BKSFFOUFVMS0xTVFRTVFBWVVFRTlFRWFlSTlBVVFhYWFtbVVJTV1tXWFhaT1NVV1hYUl5ZV15WVFBZUldXV1dYXlpncl5bW1lcXV9jWl9jY2RmZGNjYlpjYmdmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdnanVqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09MTVZUUU5VU05PTUxRUExKUVFLUU1LS1BTVVNRUVNTSUhMTk9RUlFRUVRWUlhXXFdTUlBSVFVWU1pRTlNSV1ZUWVZVWlZUUlVUVFRXWFZcWV5gXVxaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWdqa2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEpOV1NQTlVQTlFOTFNQTU9VU05RTk1OUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXVlZZW1RQVFVYVVVaVVdaVlNSV1ZVV1tYWl9cVVheXF5dW11gYV5bYmJjZ2ZlZGJYX2FiXWBnZGZlYV5fXV1eWlpgWl9nYF5dXWJoa2FnZmhmZGBiY2FPTE1MUVFMT1RPT1NRT1FbWVdXWFtZWFhWXGpkVlhZWldWU1NPSk5WVFBPVFBQUE1NUlJQUlhUUVFPTU9TVk9YUlRVVU9OTVFUVlVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUV1ZWVllUWFhWU1JZV1VaXlldX15VXlxeYFxbX19fX1piYmRoZ2RkYVhhYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xZWltkcW1oZF9bWFZVV1FMTVZTTU5ST1FST0xRU1JVWlVTUFBNUVdXUldTU1NYTU9PUVRYVlVVU1VZWFteXVtbVlFOVVZVW1xXUlRXVldYVlRYW1VUUlpYV1xeWl5fYFVhXGFhXWBiX1xgXWNgY2doZGZgWWNgYV9fZWRfYGJbWlxbXFlaWVhXXFpcW2BeX1teXmFgXmNcWWBaUU5PTlZRUFRRT1RUU1BXXFxcWF5cXldcXmpxd3mAY1xbVVVXUU1PVlNOUVFPUlRSTFJUVFlaV1VPUk9TWFdUU1VSUlpPUFNSVltWV1dUVltYXF1bW11WU01UVVVcXFZSVVZWWFlTVVpcVVNTXVhaXV5cYGBgVmFbY2JdYWReXGJhYl9jZmlkZl5bZGBhYGBjZV9iXllaXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1xUV1dRTlJaU1JRVFJUVVRLUldWW1paU09TUVZWVlRPV1JTWlJUVFRYXVdYWVNYXVheXVlaXVRVTlVWV15bWFJVVVlZWVVXWlxWVFdeWl1dYF1iYl1ZX1tlYV9kZF5eY2NhXmVmaWRmXl1kYWBhYWJkYGJeWFpfW1xbWFhYV1dbWVtgXFtbXFtYWlteVl5ZXVFPT1JaUFpUVVZWU1RUXl5gXl5iXGBVXV5ia3l0bH1rWlVZVFBQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUVdSWVhZX1taVFVWWllaV1haXFdVW15cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU05QVllRXVVWWVdXVVhfX2FhYGNdX1RdX2JlZXWBemhXWVlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSV1NXV1VTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWFRZWlphWVxWV1hbWltZWVpbWVdeX2BfY2JhZGRcYlxgZmFkZmReX2RiYltmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlNZVlNcVFZXWVZWXGBhYmNgY15fVltgZGFfenVvaFlbWVVXVFdbWlpcWlhZYFdQVV5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1pdXlldVVJZV1lZXWJaXlZXW1xbXFxbWlxaWl9fYGBkYmNkZGJkWWFmYmZmZV5hYmBjXmJjaWRjZ19nXmFiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNPVllWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheW1xaVldYWVxcXV9bWVtiVlRYXl1hY1xSVllQV1dXV1dWU1VUWFxcXmBgXWBcV2FeW15bWl5YVVhXW1tfYFxfWFlcXF1eX1xbXVlcYGFeYGVjZGVlZmJYY2VkaGdkXmNgYGVjXGVpZGVpX2ZdY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWVhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZcXV5gYWBfYl5ZYV1dXllcXllYVVdbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZWNlZmVmYlpkZmZpZ2JfY15hZmRaaWhiZmljZV5iYmNhYGBfXVxaWFtZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVZcW1xdWldcXV9gYmRhYmFdYFhiY2JgY2FiXVtcW1hXW1xfXWBfXVtgZF1cWFtiZWNhUlxaT1lYWltbWldaWWBdYGJiYGFjX1xiXV9dW15dWVlUWF1dX2BfYFxbXl5gYmNdXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGNnYFxpaGJoaWVkYGJhY2FfYF9dXVxZXFlYV1hZWFdcWlpXV1hPWFpdYWNmZnJrf0pZV1xaWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5ZWFVbX15dYWFgXltgYWJmY19dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBaZmdeYWhoYmhoZmNgYmBjYl9fX1xdW1pbWVhYWFZaVlxbWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4SCgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7enp6enp6ent7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3p6enp6enp6e3t7e3t7e3t7e3t7e318fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIkMzT0tLS09WehomJiYmJi42MjIyMjol/f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIqU3ebk5OXk56WJjIyMjIyPkI+Pj4+Qi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXl5enhvb29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2DhISEhISEfnx8fHx8fHx9fHx9fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnd6eHp6eX15eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3l5eXl5eXl6e3t6e3t7e3t7e3x8fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2eX18fX16fHt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjYyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fX19fXl8end4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4SEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3dnt8fXx7enx7d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp5en18fXx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4e3h6e3l7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgoGCgoKCgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mFhIOEg4OCgYGBgYKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHl5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veHl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEgoOFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4OBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYGAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoGCgoGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXFxcnN0dHR0dHR0c3N0c3NzdHR0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXFwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm5ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoKBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzc3NycnFxcHBwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycXJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubm5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoCBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXRxcnJxcW9+gm5wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFwh4hwcnFwdJqBbnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF9ooNvcm+Nn3xvcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFycXWeondxd6CcfW9xcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXFxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZipkG+Co51+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4GDeXJzc3JycnNycnNzc3Nyc3Ryk6mke4mhnXxyc3NzcnNzdHR1dXV1dXR1d3h3d3d3d3h4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f4B+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn18dnZ3d3Z1eHp4eHh4eHd4eXmgtKmmqamXfXt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf39/f359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7fHt7iq+kobWqrKN/e3p6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2ZpZaisaCZp5R9gH99fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgZycjaCwoJ+in4CAgYB+fn9/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYGAl5uQmLGhmJWdhX1+fn6Afn5+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJioyOjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+f39/f39/f4B+foCBfn+hq6WWpJubmKKgh39+fn+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgYGBg4OBgYGCg4KEhIePobKnoaCZnZ2mqKypoZqRh4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4aNn62xppuaoJuenJyeoaSjnZSIg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoOKl5mXlpigm52enZqal5CJhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj5CSkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBho6Uk5eanJ2clY+Jh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5OSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDg4iQlI6UmJGHgoKFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgYKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGTkpCOkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgYGCg4GCgoKBgIebiIyHgoOCgYCAgH+BgICAgIB/f4CBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gIGAf4OJjoCBgoODgH9/f4CAgICAgICAgoOCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYmGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDipaIhIKEgoF/f4yVgoKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhoSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChIODgoOBgYSFhIODg4KCg4SEg4SDg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSkpCNjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgZCMg4F/fn18fYycjoCCgYGCgoWUlIyBgoGCg4KCgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYSFhYSDg4SDhIOChpSUkpSSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX17gZiMgIOBgYGAjpSMkIGCgYKCgoGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGVn4p+foB9h4t+hISDhIKDg4KNiYWMgoKDg4OCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf319fYCDhIOCg4SDhIODhISEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaGhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKNioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39/f3+Dg4SLhoSEhISFhYSEhISEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICDj5eGhYaFhYWFhYaHh4aGhYaFhYaHh4eIhoeHhoaGh4eHhoaHh4aGhoWDg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4iIhYaFg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af4GVlpKPiIiHh4aHiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aHhYODhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjImBgIGCgoGBgYGAf4B/f357eoqdp6SYjImLi4iJiYmJiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeHhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSSkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fnx7fZmnpKKYj5WLiIiKiYiJi4qJiYiJiIqKiYuJhoaGhoeFhoiIiIiGhoeEg4OEh4iIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn18gZygnZ2cj4aFhoeHh4eIh4eJh4eGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgYGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoOBfXx9f4B/fn5+fXx9fnx6g5ybnJWEg4KDg4SGhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoKBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYWEhYSFgoGBgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4GEhIODg4KCgH19f4CAgX99fn59fH19e3p5iZubl4WAgYGBgYKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgIGAgYKBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goSEgoOCg4J+fX5/gICBgH59fX19fn18enp7jZqVhYKAf39/f4CAfn2Af3+AgIF/gICBf3+AgYF+fX1/gIF/f35/gIB/gICAgH+AgoCAgoGBg4GBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GBg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foCDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp7j5ORmo9+fn9+fn9+f4B/fn9/gH+AgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp6enmAjIyMi4F/f35/f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f36Af39+f3+AgH5+gH9/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp6enl/hYCAgYGCgICAf3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGAf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WCgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fHx6enl5eXqBgoKChYOBgoOBgIKAgoGBg4ODg4GBgoCBgH+AgYOBhIKAgIGAgYGBgIGAgoJ/gYCBf4CAf4CAgH5/f358fImUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgIGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYSEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl5eXyCg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCAgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGBgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4eHl5eYCCg3+DjISDhISEl5eDg4SBfX6BgYKBgoGCgYSGiIyFg4KCgYSChIOCg4WEhIWDg4SDgoODgoKCgoODgoKRkIuIiIeJh4aGhIaFhISEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHh4eHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl5fIGBfoiVg4ODhISUk4CAgX9/f35+hIuAf4GAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhISCgYKCg4ODg4ODgoGBgYGAf4CAgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6e3x+gYOBgoGDgoB+fX9/e4iRfHyOln99f3+ChoqFg4OEg4KDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYOEg4GBgoKCg4SDg4OBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXl9fX+Af4F/fXt7f359gpWRf4SIfXx+f4KEfHyBgoSDf3+Hg32DgYCCgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4SFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH9+ioJ7ent6eHp7e3x9fH5+f39+fn5+fXyAgYB9ho+Bfn2Cfn9+gIJ8fIB/goCBgH59e4qCfYB/foGAgIGCgIKAgICBgH+LlI+MjI6OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4WEgIaUiICCgYGBgYB/f39/gH5+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX+AgX1/f4B/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX18fXx8fYB/gIB+gH5+gpSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx9fXx7fXx8fHt8fHx6enl7fHt9hYODgIGBfoB/f4B/hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYCAgYGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn9+f4CAf4CAf399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhYOAgIB9fn1+f36MhIGHfn18fH9+goJ/fX19fYF8e318foGEg4GAfn5+fn18fn+AfX6Afn9+hJKNjoyPjYyKhoSFhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOBen5+fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX6AgIODgn9+f3x8fH18fYGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx9gYKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgIKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9e3+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5+f35+f358fH18fH18fn57fHt8fHx8fXx9fH58fXx7e3t8ent8e3x9en1+fn+AgIOHiYmJiomKiYWIko+NiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg319fX19fH19fX19fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uLiYyRkI6KiYaFhIKCgoKDg4ODgYGBgYGBgYGBgYGCgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fn1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt7e3t5enl5eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2BgX+BgYF/f4B/gIF/gICBgoGBhYOEgoGBgoGCgYCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18fn58fX18fX1+fn1+f3x9fXt8fX58fHt8fXp6eXl5eXp7fn6AgYOHhIiPjouKh4WEhISCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKFhYSCgYGCgYKBf4CChIF/foGAfX6Bfn1+f4CAfX6AhIB+fn99fn19ioV9fn99fn6Afnx9fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY6LjIiFhYWEhIKCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICBg4F/gIGEgX5+gH99foB+fX5+gIB/gX9/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fXt7e3x7fHx9fXyKiomJhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgYCAgIOAfn6Af31/gH19fn6AgH+Cf4GAgICAgYB9f39/gICAgICAf358fX19fX5+fYJ9gH6CgH1+gIF/fH5+fX19e31+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19foB/f4GAgYCAgICBgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISEg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn19fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhISDgYCAgH+AgX59fX5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn59f35+hYWBgYF/gIOBf36BgH9+f36Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX+Af3+AfX19fn99fn9/f359fnx9fX6Bf3+Af4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4CDgoOBf3+BgYGCgYGBgYCBgICAgICBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH2Afn+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhIOBg4KBg4F/gIF+foB+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fX59fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWFgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p9eXt5eH9+e3x8fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN3dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398f4B/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB+fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1+gICAf39/f3yAf3+BgIGAgH98gH9+f35/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e3+FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYCAf32Afn5/f39+fX1+gIGBgH5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKAgICAfX5+f4B9fH58f4CBgICAgIB8f3+Afn+BgH9/fYF/fn9/fn19fH+AgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn19e3t8fHl3e3l3eHd3eHt7e3t8hYl9e3p3enx9fXx8fX19f358fX5+fX19fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgoCAgIB+f35/f318fn6AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+fn18fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgIGBgH+Af39/fX1/foCAgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/foCAf39/f4B/gICAgIB/gYGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh6gYF4eXx8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fX17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fH19fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+Af4CAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBgICAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fXh4dXh4eXt8fH17fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgIGCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf4CAf4CHfn58e318e31/eHd2eXl6e318fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgIaDg4SBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGAgYGAgH+BgYGBgYOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f317fX97enZ6eHl7e3x9fXt8fX19fX5/gIGAgIB/gICAg4OAfH9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCgoKDhIKDhIOAgYODhoODg4KChIGEg4GDgICCgYOBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOBf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0dnuEgoOCg4OEgoSDg4GCgoSFhIKDg4OEgYSDgIOAgYOCgoKCgoGCgH+BgICCgYKBgoKCgYCBgYGCgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhICChIKDgoKBgoKDgYOEg4SDhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX+AgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgYKDhYWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4SDgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKAgYB7fYF+fHl8enp6fXx8gX16fHx9fXx6e35+foB/f4GBgICAgICCgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSBgoSGhISDgoOEhIGDhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKAgoKDg4KCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX5+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOCgoGBg4J/goOEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fn1+fn5+fn9/gHx9gIGCgoODhYOEg4aEgYKIhoWEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4OBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+f35/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKEhYuJhISEhIWFgoeGhoSEhISFhIWEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYB9gXWBeoR/f39+hYSCg4OCgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn9+foGDgX17f31+gH59fHx8fX19fXx9fX6Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+f35/goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYSGiIaGhYKGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cHuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fX9+fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydWaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIWFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WEhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foN0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39/en59fH99f39+fYCBg4OAgoOBgYSCgX+BgoB9f3+Bfn9+fX6BgH5+gYKAgIKEh4aDg4aEhISFh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhYSGhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3B5fX1tfXVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fXx/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYWFhYaJioeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGEg4SDhYOFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WDhISDgoF+f357fHt+fHx8fX9/fX1/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiYaEhoWHhYWFg4SFhoWEhoaHhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIWFh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4SEhISGhIaFhIWFg4aGhYWFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH19f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYODhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoeFhISFhYOEh4aDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIiYiFhoiFhoeGh4aHhoeFiIiHh4WGhoeFhoaFgoSEhYaFhYSEhIOEhYWGhoaFhoSGhYaGhYWGh4WEg4SEg4SHg4SBgoSFg4GAgIB7e35+fHx8fn18fHx9fnx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoaHhoeFh4aIiIeHhYeHh4aGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9fn58fHx+fXx9fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoeGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4eIhoaIhIOEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH57e3t6e3x8fHt7e357fH17ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhYSFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeIiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaEg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4SCf35+f35+fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYWFhISDhIKAg4GGgoGCf3qEjHuAhIWHhoaGhISHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIiHh4aHiIaEhoaGh4WFiIOEhYSGhoaHhYWEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIOCgn2BgX9+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iIhoWIh4iHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SFhoaFhYaCg4OFgICBgICDgIOAfIGAfn6CgH2Af4F9gHx9fn1+e359fHt5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIOEhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFhoeGiIiGhYiHiYeGhYWFg4aEhYeDg4aEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B8gH99foJ+foB+gH9/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhoSEhoSHhoaFhYWDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfn1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6enp7e3x6e3t7fH1+fX2AfX18fH2Af318hoOGhoWGhoOEg4WChYGBgH9/gIB+f4GBfH5/f36AgIKCgoSEg4KBgoSBgIOCgYCDhYSCgX+AgoOChIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGhoaGhYOEhIOEhYWFg4SDg4SChISAf4KCf31+fn5+f4R+e398fICBfYGAfX6DfH5+fX1+e357e3p5enp5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9+fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGChoWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYF+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1/fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH5+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgIGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fH59fH6DfXt+fH2Af4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PD45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT0zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWy8vLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw7OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OR6jZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1svL0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fY2djY2NjY2NjY2dnZ2dvc3Nzc3Nzc3dzb29vb29ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTUaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbLzJWFhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi3qaenp6enp6enp6enp6mXgIKCgoKCgoKBgYGBgYOLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOU2JMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXy8xuUFNTU1NTVFRUVFRUTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OjoIeEhISEhISEhISEhISIZ0BERERERERDQ0NERENGU1NTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUJAOTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18vMcVVYV1dXWFhYWFhYWFGh8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpaKKhoeHh4eHh4eHh4eHimpGSUlJSUlJSUhISEhHSldXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDs+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fMzXheYWBgYGBhYWFhYWFapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamnkI6Ojo6OjY2NjY2NjZBzUVRUVFRUVFRUVFRVVFZgYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk6Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzMzHxcXFxcXFxcXFxcXFxcrQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs7PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tDQ0NDQz8/Pz8/Pz8/PzcrKysrKysrLy8rLy8vLzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo7ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M3Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7OztHUz8/O0tLPzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dbX19fX19fX19fX19jY19jY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztO7nc/P0qee0M/RpaLQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK1lZuz1rOeo6bWsKCiqtLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/Rn6CqrtCdmpOdwJ6YlpzHz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4+PDw5Nj9CP0I6NjQ4Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0cWHmrTAmKGctJicop6vsdLPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9COjc0Ojo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Wp5m1tpmWrbmGnpaws6nU0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PDk2NDo5ODo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8qgo7/KnKWMp63Yqpmq1M/Pz8/P1aWZtq2YgaCWeJuEnpOj1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD45PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0Nalmbaum6iInHmfqYWZpdXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NDVpZq2t7WvppyKva2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njk5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPQ1qaatMajl5edpaeWmJq61dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HH0telm7HYn6ukm9Cfq6Sb0NLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtLQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09HUtYLD1cWQjbfXwo+Nu9TR0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVaWpbTF9NSkxKVUxGQjw8P0ZFR0tJPTY2Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dHD1NHUx8PV0dXFxNXR0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRExMQT03NzU6ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS1NLS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj09Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZJRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0FMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhRQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29ra2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg2NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7Oz4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7e3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OztAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpaenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJ2dnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAP0JCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc1Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5KUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6afm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6Wmpqako6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODk6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/PkFBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+mpp/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ+hn5eRkZCUl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaampaWjoKChoaCZkpCPlpuZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaCgn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5WTlZmcmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqKjpKSkpKKhoZ6bmpmWprmfmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKOmoaKhoqGgnpybm5uZo6aRnJucmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaCmsa6goJ+fnpyZmZqana1heZ2dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJuam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goKCfppKVrZ+goJ6bmpmamat7Q4Gfnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp+hYZaonp6cmpqbm6SfTUmEoJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZuZp2xaoKCbmpqbnZyvbktMhqGcnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmKWEVHSimpmanZuhoWBYToehnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGgoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFxcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuYmJmgi11gkZqZm52co45lWkyAop6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbW0xGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiZnpleX3OVmpydnaGAZVpNf6Ken56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZibYWJgfJSenJ6Wc2NVT4Ghnp+fnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmYoGpcWmF7m5yeiWleUFSInpuenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qalpJ4c2tYfJWYnopbVFBZi5KOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY6Vn5+SgKSnmaaaeVVPZIeHgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CFpJmLemKOo5KYc4WFaHV/gIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2OTM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+hKKHdmpQcZuNildueXt/fnyFjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfZmYck5HSXOSg4BKXG5vdomFio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY+jiEwzMjt5hHVyPz1Wam2BkImJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6Knm19FZE49eXdnZEg1NlRucY+Pi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mproxLgraGQHt7aGNSX3FRW2+KoaGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKJ0aMXSqEmAlYx9T2yKe1pggKOop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkp6eZnaSlo6KeYoK4v6qFr6OanXdHV4FyUnOUoqKgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioaKnoaaupqacnm+ClLOIttamnLixYlC0o1ZkkKGeoKCenaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq+ro6OJd391eNO7qZOeqGxVoapoX4enoKWioZ2fopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7e1tLayrLCtkIh/bJjHxJecqpJ2WmlzdXV/kqWpp6Sgn6ObnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gqrK3u7y8urrCubSznYR0XlGdsK+kopGEd25zcXd4eXyCiY6UmaClp6ympZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW4w8nQ1NHMx7yvoYxtY1JDg41+foB5dW9tZGRpZ2pxcnFxcXJ5ianHx7yip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PEx9vk49fHua2ilIRvV1hQRGFyZ2tya2hjZVhXXFdbYGhpZ2RgbJK6wL+5qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxr7Lz9TLuaWYj4JuWlBUSkNcZl1haGRhYWlcVFhVV1hZW1hffaG4uau0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudXJydXJnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS+w8HHy8m6l3RfUk5PUkc9XmxgX2VjYV5kY1RVV1ZUVV1/p66vqqirrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO5t8SjakxDRUpEPVlhYWRsZGFcZV9ZU1BQVWGLt7msrqWko6ekoKClmam0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnZSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent3bmtpaHZaZ3J4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTExMLEwbOQVkhNRjtJWF9obWhfXF9ZWlRQXY2qrLi1sqypo6GtqaynrZ+stLS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dWVmampoXmtvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCyKN3YEg/P0FeXVxrZFtYVlJdiKi6vrq8urysraapu7q5t7+ztbiywca6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWh2aGpqdG55bF5kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxsbHwrWBXVQvVVldbF9RTVeEucrHwsTGwLy+tLCwsMK+vsHGwL63tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOi5R9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ9eHBnYGtqd21pZnZvdGNdY1VXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwcLCxcacTlKAiZVVVIO1ztLFtr+/wL+6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5gHNwZmVnZGxlYmtub29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvrzFp3x0gJGUdbzOx8fQwK+9vbi5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFlYmFjZGRqY2djW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8yc/Aur/AvLvFvbrAxL+9vrFzYYCRiYrPxL/Ayb6wwb+6t7u+ubW4tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNnamdnamZqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdSMuL+7w7W6x7a1uLq8uLm2s7aejXSEyb+/u8G+uca9wr+8xbi2t7S4tra7u7i2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVmcGplbGhZWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/DdqjMvce3ubettrS3ubO1sbvGx5ZCfMq+v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucWdxa3RmY25gXFVIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrXOAu8jPwsC4rrS0u723ubC9w8iMRnbNw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGpudW94Y2hjXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsbJ0Zhwc6zR0czKxLW6v8TIvr60v8C/d1Nvy8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0cG1sdGxsbl9jX2JiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKycGGcXOlzMzLzcrGwsPLzsG8uL26sG9kY7vIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWNbX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9rDvra+wL6+uqacqbK2w7+leHV4m8TGy8jBw8DAycrBv7u5saB+c2ytyMXEv8DBv8vHw8DIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO1uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3h0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEt22tzr22ucC8rH1uaG5tcoGVmHJ3fJe9v8bAucC8vsXEvb24sbCZj36CnMrCw7y9v7/Dw7+/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsbess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cG9qXGBhWlNRQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbJ1gbO9trXCpYdpWl5gTVJbWm5zdoGfuLjCurO7t7u9v7q7u6+kmpeIkn7AxMO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra8tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d25yYV9mXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmnhHiKoK+1nWplZ1ZZYElJTVBTbHaGpbC3vrmytbK7uby2ub60lZyml6FyrsnEwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fqoh8dYygmGBUQ1hVR2FqVk9FSmCNoKyvtrq1tLKsvLm4tbjBvYqXsKGmc6XLwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtsSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZzbmNeZ1ldXlNPTkE/SkNBS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4vrSQgniIj29OSj9kWUJOd4CUak5AXIGvtbO1srSvrLu6uLa5v8V1gamdmmSnv7i1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ3c211amxdXGtUXlxQTkhER01CR05HODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHtYRkFOh1lKSlh3jYFjQFOjubO0srCxrbC5uLa7t7q8j6Gxq6Rzq7Cpq62ro6ignZ6el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWh1dG9lVWFkV11ST01JQElSRE5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKqZmZVoTkBSeHBQSUlLZ5yAWURSrruxrLOvrqyttraytLWuqKaempudn6aonqCoqZ+hp5aalpeOnZOOkJaNl5ukqKCgoqKhpaWco6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqaSpq6aprKumoYh4g3x2f3pjd21uXVFpVVBPR1BNTUNQUkA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3Cq6W9aEVSnYJRV0lKYEpUjWBjYoGutaqytK6qq6+wsrOtpZ2Rl5OPl6CfoqCco6SfnqiUmpWWi5aRjY+Xkpidoqqfn5+go6WonJ+goZyhn6Oop5ynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJaTj4+SkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fIB1dn1ua3tkaVZSZE5JSEdPU05LTkg8RUA9MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutra6ubq3t7uuqKChqaCqxr/LoFBBc513UG5LS2NmdHNfWl5wkLGvrrO1qqasrKObmZSNkZWXmJicn6KinJ2knpqklpeXlY+RkZGSmpeboKSqnqGhnqanq6KfoKefnZ+jpqieo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpquqoJuYmJiVk5aak5WWmpabl5iYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJfIB+d3l8ZXl6YGJTVmFISUtLU1RKU1FNOT9BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMfHjldTSmWjWmV+b3JcUWtjW2RfXGqPtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXopiZl5eYlJmYlp2bn6WlqaCmpJ6nrq6qpqKxo5qjpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuVlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbGZbU1taTVFLT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6rpIx5VWlydnVwY3Z2WFdjYGNnWFdWZ62urK+nn56ioJaQk5ugnJmXkpOfnKGjmp6blp6anpeaop2koJ6jnqSorK2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7W4s7itsrSkoJ2loKyhoaKhoJqZlpafm5uYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dmp4dV5tW1JhSVJWSEZWV0pDTUg9S0k4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqK6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuioaCjgG6CcGBjWExbU1pNTFBYUkdMTEeYrKqppaCfmpKRlJiYlpaWjIiLjpSdnJ2cnpadmaafoKelsKmmraKqrbawtbKwrba4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm3vK+zsLXBvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21oblxYXENXTkpHTUhDRk49Pkw+NDw6Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqamUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnYphV15lYFdNUUc+Pj9DQz8+QlF4qa2pqqagnp+io52enpqdm5STlZSenpiUhZ6doJmro6uxr7mxsbCxsLq9vLy5trjDvr/Cv7a6u8DDub27rK6nsa2xwra4wsbAyMrAyb+wubm9uMK+uLS7xsS9w7y4tKqzraqztK+zrqquo56sqLayraOwpqGjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhFSlBJP0VCNEZIOTY8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5V8X15lYFFHRDxDPkU8Pzk2Tn6qs6eko6KgnqWspp6XnJSRmp6ZlYyKhoiGeGyKpaKiq6uyvLbDvb6yu8HDwsW/v8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxszMzNLHvr/Aw77HxsK4xMrJxMHHv7q0uru1u7ewtrKru7KvvLe/u7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5WUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtlWlxGTE1FRFRNRUJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEA/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9c2phV05FPklZfG9iQj1cjq6soJmbnJ6emZeXmJKNj5eXlI+NkIyCg4J2cnBtcIelrK20uMS6zcfLvsLMzc3Mx8jQzMzMx8rFxczQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsfGysjPwMnRzcfGyMbCvMPBv7+/tb6zrb/Aw8PHxcfEr7+5sri9xMLCury8ta6np66ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXVzZWJncm9nXlpaRE9NQ0VQSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6Oz5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOem52Wa2ZdVElEQD9Lhp6lmoSgsq2jnpyfmpiXlJOUl5GQj4yHhISIhoOAgYGAeXFyb2t4ora7ubzKwdPS0sjNztHT0dHQ0NHRzc3O0MTN1NXY0dfNxsfJzMPFys/K0tfS19LV1tPUyMzHzM3J083O083GycrKwsbMx8nJxr/Ds7PIxcvLy8/Hyr++v73Bx8XMzMnJwMPArrCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZVZYUkROR0BJUUM+Qj06MjJBPEU8Nzg8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnGNUTEpEQz9DUq7RvbKvppycnKCkoZ2alJSVlIp9eHFrZWJocnBye4WKgHVwbXFyb4ScrbzH0dHX1tXR1s3U1tbT09HS1NTSz9HD0NPW2NXV0svJztDLxs3SytLV19nW2NPW2M3Sys/RzM/RzdPQwMnIy8TMzczPz8bHyLbAy8DSzczQx8rIwMTDyM/N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYWVyY11SXEpLR0FGSUo/O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpaWgoqJbSUBBREFGUXayr6aalJefnJqgoJ6bnJqViXdpY2FfX19fXl9fXWFsdXNwcG5scG91gHeYuNXX1tfW09fP1dTZ1NTOz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ19fY0tjS19nV1szPz8nN0szO0cDHxMnHz87S0dLIzM3Ay83G1M/MzsnFy8fHyczL1NTR1c/SzNPCucWxpai1rqibqKulnbKosLOsrJOPk46Iio6Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUWBKSkNFQ1NNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6up6qooaOsZkM4PT5EWIKqqJ+XlZeZmpyfnZibnJN9cWVjYl9fYV9eYWBeYWBfYGVtcHBta25wdHl2aXypzdTY2NjRxdPS18/TzsvSzdXU0crPzNPW0tHWzc/V1dHF0dPK0NTV1s7T0djY2NfLyM7Eyc/NyszAycHJys7O0MzQzs7Mz8/IzNDRy87Lw8nHys3LzNLTztPS0dDQyr3IubCuu7m1q7awrai4rbO/u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSUZGRE1ZRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD85ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksntIRkI7V42hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYF5fX15cYm1xbm5ycnR1enFibZ7H1dTQpMrPztPKzc7EzcrS0s7GzszN1MvO0s3K1tbQzNHUy8zQ0dPKztHV0tXWysDKwcbNw8jKw83ExsnLy8/Lzs3QztTMxsnQzcnHy8bHwsbKzM7R0cfQz87OzNDFx8G4ub3Dwr3DubKyvrC7w8S1qpiloZiWkZWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTElRUUI7RD87Njg6ODo7NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9wd4+ajYyXlZCTkZGVlpWQi3xlYmJiYF1eYWNiYF9fYGFhYF9dW11ncXFwcXJva3F5dGVun8/Nm5fWycPIyMXGvsLFzs7HxcbNytHIy83NxdDSz83M1MrHys7Px8fP0svQz8W6xL/Gyr3Dx8nOxcPIwMfOyMTNyszQyMXF0MnGwsbJxb/ByM3MzM/DyszJx8zQxcXIu8fDycnCz8G9vL+wwcnHub2qsbKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdJSEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KFoqqTjY2Wj4WDg4OBfYSEfnNfW15dXmBeYGNkY19dXF5fYGBfW1pcYWtycG5uaWptbnpnVYDAonm7z8O4v8K6urq4vcjFwcPAw8fKyMjJx8DFy8bIys3JxMHKycHBy8/Ey8i/ucG8xsi+wMbPy8TAw7vKx8i7ycbFysG+wsvGxcS+xr69wcTGzMbGvL/Kw8XH0sXBycDKysbIxtDDw8bDrsTLx8PKt7+8urOprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdCR0RMREZSQDU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL64vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bF55fJ+RipKWhnqAhIV/dXh1cnBfWltdYGBiY2RkZWRgW1xeXV5eYFtZWlxibnFuamhpbm1zeVZqlHurw8XArrW4sLGysLDBu7u7ubjAwcHEvr25vb+5xMnFxsK9xsC3u8PIv8HJu7a7u8XDv7zCzsPGvr61wb7Eu73HvMO6tb3GxMLDt8C2tr+/vM3Evba6yLu/vszEwsbDxsnHycbQxsLMyLLHycPOzMDFw7+8srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRUJGSkE5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1q7e0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys/FycXHwbrFvayupmBjdoGSi4iLhHh/hoZ/fYN7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXWdycGxmZWxtb3t4XmaSx7m/t6yvrqWorKqlt7O1s7KztLu1vbG3sLWusrvCu8HEvL+6tLK6vsC4yLi0vLbAwr24vcfBw7u1r7O1u7+0xbi7tay5vb7AvbG7trC3urPGvbevvL+1t7XFvb7DxsDExsbHy8W/xsa7x8u/z8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpHQkRBRUY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJlbZ2+IjoaIiXp4foWGdneBfHNoXV1dXV9gX2BkYV5jZWNfXlxbXlxdXlpbW1xfa29tZ2Voa2xvfm1ouri2s66oq6WcoKelnKmqsaypq6mzrbWwsqitpqyzu7q2w7m6ubCqtLm7s8K5r8Cxvby7tbvHucO3raqosLLAtri9sLGosrO1u7yrrranrrauvLKxqriwrruuu7i7wMG+usO/xsPFwLzGwcfKuMXHxb/Hw8O5xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMTE1KRUFDP0ZBOjo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTPx83Bwsa/xMTDw8rCycq/wLzCurO1tcOuqrCSW2l+koiOj3t4fYmFeXuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWlpaXGRtbmZlZmdpa3B6ibevtKyjoqSkmJ6inpiao6mso6ehq6msq7Cjpp+qrbS2sb24r7evqK24tLO8t7O9sLi5tbK8wbLAr6Wpo6uxs7OovaqrqKusrrW0pqmuoaWvqbOmqKiupqi3rLGzt7q6u7K8vr++xL+1wcDHyLe/v8W3xcPAu7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlNTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8LLvrvJtr3DvrrKt8HEwbS2vLaxr7W8ramrkmNtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1hXWVxfZmtlY2VkZmhscYKlpKqimpmeoZGaopiVj5+gp6Kin6Wlp6Wtn5ybpKassrC2t6ewrKiqtKuzubC2tq62urOwurqxtqSgpKCmsaisqbmqpaenqKezraCnp5+cpKasn5+npKGhsa2trLK1s7Owtby2u8HAsru+w8GxubnCs8C9wLW4vL2+vMLHxMPEv8DEoIR5cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbq9tqCelZ2gprq2q7Ozu7PEz8nLwsW4t8fAzL+4yre7xbizxbizv8CstryyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBeXFtcXFhZWFhYVlhbXV5kYmFkZWVkaGpshpynpaKWl52TmJ+Vk4mbn6Clm56fo6Wip52aopufqq+tsbWkqKqprKyktList7Css7Wvs7WvsKqfnp+korKlpqq4raKmpqCorauZn6CemZ2fpZqZo5ycnrCprKiqq6ytsLK5r7i5urC2vLu6q7OyubO9tLeysba1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTYzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uce4uL+3ssK0sbu7rLm6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dXWFdaXWFjY2RkZWZnaXGJkIKTq5eWk5edkpONmZ+fpp2bnKSmoaSbn6GbmK6tra6yoKSiraunobWwsbKsqbCzqLqzp7ahop+co6Gto6Kqtquio6adpqajlpmdl5manZ+al52cnZytoayoo6Smrauzs6q1sLKrsrm0r6qvsrKzt7Ouqa2usriwura6vb+3s7GUhnp1Zl9mX1tZVlNaVUtbUUxKRUhLSUM9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+ynaWjmKWxw7W2va20uMHMyMa/xbbBwMfOtsDDvbO5ubK/trG5u62yta+fmqOqoZSaj3h/g4R/eG9xdHFoZWRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXVlZYV1hXVVdhY2RiYmNjY2Zpc3NHTX2QkJKTmpOWkZSdm5+blqCgqKOenqicm5qrp66wqpyjo7epoaCuqLWqp6eusaS4sKS3oKOcmZmqpqGarbmwo6GknKOgoJOVoZSWlpyZmJaXnJWfqZ6qpKKdo6qqsa2otKyqp62zsKWrrrOxr7Cvr6eoqLKusrSwvLS6uK6jlIJ6dmVfYVdZWFNSVEtNXkxQTEdITEtFPUA+PUI8Ojc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0usKxvre9rZ2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJqhqZWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1ZVWmJiYWFiYGFjZGtyZWduiI6Pj5aUmJKSmJ2anZWfnqalo6ann52fpqCqr6afoaO2p6GhoqmzoqWopbCmsa6rtZ+hnZaVqaGilK2xsZ+io52emJyTjKCUkZOYmJKXmJiXnqebp6GimqSlpaukpbCnpaOrrK2mqK6vr6uoqqqzpqarr7Sxrry2sa+vn5J7eHNlYlxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sba9sLuxt6yepaasuLu8wcW6srm1xMnJwMLGxce2xcSzwb/Fq7e3vba9uru1sqytqJmZn6OLinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVlJUUlRfX15fYF1fX2FjaYGPhYWLiY+NjpeQkZOhl56Vm56koaylpKSjo6Kcqqukmp6lsaqhoZ6lqp6oop+trKqprq2ioqKVmKKanJCrqbCbn6Kfn5eZk4qdkY2SlJaQmJiTnKGjnKSgopWgoqSlm6OrpaKkqqSrraWusqmmpaamtKaqqK2ztbS5uq+qrJ6Mc3FwYFtXVlZSR1FPSFpcT1JKVEtTTEVHSUM4Ozs9PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Gtnainr7m5s8DIurXAr8XIzLrByczItcm8sb7Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU05QWV1bXF1dXV5eYWNsiIp+i4GKi4mUj5CPmZmhmpqfp6iqqKunqaajmaWvpJWZpa+poJyZm6CfrpmcqrOfpqafo6OhlJSblpaSqamtm5yfoaGblJCMmI2MkY2SjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq7Ckrrilo6SjrK2qqKuvtLeyvbWzq66YhXV0aVtYWVNVUkZYTFFbWE1VT1BMUVJJT0lCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7euqKivrpupqKy3tqy8yru2v6zMxsW4wM7Px7PEu7e7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FZWVlZXFxcXV5fZHqGfIR5houFjYmTjZSXn56Znqqopq6sqbCkqJqfrKCVlaSop52YkI+anq6WmKeqmJ+dlKWgnpKRkpGTlaiqpZqYmZ6el46Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6Wlp6mooLCwprG9p5+jrLSrrqevtLC5tcCxrrCrkX5ydGNWVFVOUUpHVlBSUkxMWE5LTU9SR05LQUNGREM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxt7i8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5xam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRRTU5NUldYWVhZWFtbXGBpenR5b4KHgouFk4eRkZWYl5ynmp+qpqarnaeZoKWbko+fo5qXl4aFkpukj5WinJaWlYeimpuTjI6KkJqlp5yVlZeckZOIlI6LgYyNgJCLkpKSoZqgopaUmZiVoqaajZmkp6mnoaC0sqizuKGdo7esqq6ksrKmtbu1q6yxoop6c25eTlFRTU9ETk5OUEtGTk5KSk5OUUlNSkFITElIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKqloKmmpLOqorLDtbWys8bFt7rDyszGs626vbS4wK+uqbCepq67r62gmpuelZWIfIRuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWV1hYV1pdYWxscGp+gn2DfI2Bi4eSjpGcoI6ZnKOho5ikl6GclY2HmZqMc42Dfo6XloaSmpCUjo17mY+djIKJgIqYoKOekJOYloWOgpR+fnSKjnqQiJOQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmKa4pqWwobGunLG8qqmvqZmEeHRkVk1SUFBNQ1NOTFBNQlBRSElOU01ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY2Ojg3QTd4t6GjtKimpaijpaWmpqayp6a0wbivtLDJxLi5wM7GvrOsusGsrcStqKKmkp2mt62joJGWl5KQfnh/ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpHTlNTU1RVVFZYWl1pZmtneX93cExWb42AlISLmpaJkpCemJ2VlJaUj5aKgJSJXztWb3yMlIqAjJKMj4aGcouEloF5gXuGlJ2Vg5aOkI+Dhn2TeHFwho19iYGQjpCXmpmTi5CKnYifmIeIlp6aoaCXp66prampnpats6KmrZmtq5iotKOpraKTf3RuYFtOU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebegoq2hpqaqoKapp6OqsKintMG5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpmHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtIRkhOUVFNT1JUVVhZYGpoYnV8b01APn6VkI57hpOLg4mMmo2WlImSh4WVhnmJf2BKUW54i5KEfoSMi4R/f21+f5N3dXZ4hI2acFGNiIqGfH55lHZnd4aIfoqIlYuOkZOXjISKiJSFm42ChZKblp6dlKSiqKmlpJ6bsKqhpKSRpqqWoqqcoaaninduZl5cSFFRU01JVU1TSUxLT0lIRkpOTE1US1FRT0ZKRD03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2m6KmnZ+hrqGnqKWnqK+sqra8tri3s8G7tqe5yLi2qKi1tqqyvKeelY5/iZSplpWLf46Dgn54cW9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlOUVNUVVpugW5weGVlWVKOiJOGcn2Ff3uEi5OBkpmLj3uGj4B1f3hzb3VwdI6OgXp+iquFentodnuOcHJteIGLjZJ4e4B7gHdzcpJ4aHWFhISFfJWKiIqNi4B/hIuNgJSEfIGPmJSclpGfnameoKGdoKmln52Yjaejk6Cflp6fpIFzaWJdXUpXUFJIS1hST0pNTFJKSkpMUEhMUU1SVE1GSUI9Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6RfneGd3x3cG9qWUtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE5RUVNWXnWBeXRic4qUl42NemV4f3V3foiQfIOYkoBxho97dntva36tfHSQi396hpKAfH90ZnV8hmxvaHN8io2HgG15cX1xbXaPcWhxgX6OcESLhYKDhX93d3qMhn2Me3V9jpKPmIuSmpujlpmdm52eoZyWjYulmo6dl46WmJB4b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUk9JT1BMRkQ9Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rqKmxr7GrvLiru764s6ynm7CnrJuPlpylqaShmJmOhJJ5iY+Li3ZxfG11cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFellKTk9RVFhdZnBwaYWlqcB9cndhendteneHj3l7i4VvbIySeHN4aWqAgnGWkYyBfZV/SZKZbmd3foJtamRseYWQkoZrcmx8bnJ8hmltcH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6LipODlpeYmpCTlpaZl52WjIOJn5KLko2GkJeAcGpvb29ZVlhUUlJZT1JVVFJYVU1OSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYm5+krK+iraqota+urLS/q7zDv6WimZWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ1b3RscGxlbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JWWlFZW1+mhmGYZnB3Y3xubH55ioh1gYeFdGyZkXRzfGlqnY5MeYWTiYSOZjF2h3JrfX2DdGZldX+EhIWAZmlsdWtwgHxocXF8bpONj3t0fn1xcW91bYJ/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW05QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo+VmYuOhXqEkJiVjZCMkIdxh4J0iIyGenBzcW9wZHBnX1RGSUM+PDs5Oj9AQURDRUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUxCSVFJYq6ynnB5dWp7a3CCgISAeoSFhXlyoJR0eIBzdJSHNXCdqJ2PoaGEooV2cIZ7hnx0jK6NiYFoZ2JqbnJtcIN1aW9YdXCOm5F2bX97fW5ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2OfHNycW1gXF1eXFpZYV9STltaWFdMSEpGSUc/Q0FCSD9DRD07Ojc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpGBkoiVkZ2kp56vlaW0qa6wrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt1eHhsd253Y2peSVBHPT83NDQ5Ozo7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw4RE5SU0RKhHN+enp0fWt1hod7fISDfot9daGZeX6FgISZhJqcYYaqn52Kg5COeneIfomIjnOLl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVnaGBbXF5TXGdeV1FUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2eppGgqqCxqK/AsrvFupaOkZOHeoZ2a3+LkYN9ioOOjHiDgHOghIp9fYF/cIF+emh2a1JYTEBFMjExMzc2Njg4Ojw+QUVHRkdKS01PUVJTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9RTEtUXFhSS2eBh3qIeHpwe46KeXuIhn6Wh3ahmYeGjpKUpY2sqUiGrrCui4GAlIuCi4KEkqmHgJiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZIbIB3cnl2aG1rX3Z9g4h/h4WLeZScm4mLiJF/enWKdnx4bW93foF1dXNtXF5eXGNkWGdmXFVQUFdZUERMS0ZPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2Nzc4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5COlZeSlqCdrKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzg0Ll2WcHOjVUZJS01NUFdgWG9ZW11oi5GFk3+CgIOQkX2FiJCAmZSBoKGYlJuapq2Tmbuxp7vHw6iLjKGljpOJgZF8cYOen5Gdf3eFhYuQh5BpaHCEgXSMh4SKcoaCd4iAe3aEfG11dWZ/lI6GiIiHiIegqqKWiY6Xf3qBiHp5b2dreH58gHVsZV5bW15qXmJnYFpPTE5YUlFJUEpETkdDSkRDQUREQjw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneCen+Mf4GQjoqam6Sdoaymqq6wl5GRhKGUhHh3f4yUfH6ShpKVf4qAkpuOg4CBjIqCiY2Df4p/bHBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlRSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISUxMS05WYGN/ZmZsdJqYjZiRkYmMjZiHko+di6CfkaOqpaOrk6m2oqjBwq3Hr3i6lJp8jaGemYSThYKOoZ+UmZGFioWPmZGWbHB1ioyClYyNjnePhHFthYGKlpGChYhxiKCWhpGJjY+WpLSom4yUooOHkoN9f2tqanyBgoN1Y19lYFtobF5sbF5XS0hOUlFNTExGSVBDRE5GQkNFRkM9Ojk2PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYaQh4SJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDc1Mjw/UjVISEhMTE1OUl5uintygHydmpqlpKCYn5ahlJyep52oqp+orKmqtZerv6u2x8i3yNDPvpugcGmrqZ+Ek5KFnKCam5mmkpGIlaKbm3h6fpSYk6KSl5eBlJ57d5WSqrKIjJeffJSdm42RlZijoaW1r5yQmKeHlo+NgIhsc3N9gX5zamFeYmBiaGRgaGdcUkVKS1BPSUlMRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjox8ioaPkI6BgoCJi4qFkoWDhomBgId3XmJQNDYwLTEvLC4wLy4vLi4wMDE1PkFBTVFSU1FSU1VSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUpOT1FZbYWPdpSJoKSnsry3o62rq6aos6uvtbGxrbuxs72bssOrusnLt8O/uKWisLOsraqji5aYhKWmoKOXgaaZjaKrqKWIhZSkoaCroaSoj5yxi5Wjpre6m6Cir5KhnaKdj6Ohq66rsrShlKSpiJmIkomVeXp+hoBpYmldZmNfZWReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2luWHqEdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4SBi4WGiJKGgoWJh4iHh3FuYUBFNjQ8Mi8xMTAtLCstMC4tND9DQU1VUFJTVVVWVU5bUEdHRDw+PkZIQ0VBNzs8NUM7PUZLSUdIUU9QV4CSn4OsorGpsL/GwqmyxbWrsr+yt721v7TBtru6o7jFqLXIx7W9ubSoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqiutruyuqywtaKxrLG1u7a0rrSfpqejp5qpr6yxuLe4ppq1qIykjpCSn4Z4gYV3W2NlV2djYmRhYWdgW1RKRERMVVFISUpESUdFQUBAS0RCTUc9ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiYld5dXCBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeEgY5/gYmPhn+GiIaKh5B6eG5dVkBFTjw2OjQ1QUI3NjQvLzZDSEJRW09RVVdVXFdQX1VJS0pBPz5HS0ZGRDs+QDdENz9CSkpFRlZUUF6Oo6yisbPBtLbAy8i1u8S9srO/trfBtL+wt3Sxs6a6xKSwxrmwsrG0qKS1tqqxoKKXm6KSpbCupq2rp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwbe6t762ure5rKuwpbCprb2wvLrBwauYuaeUrY6Xl6mIfoN+bFhkYllsZmtmWFxjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpvfo6DgI6EbnpzeIdiuaGZo4mUlJaSlJONj5aRh4Z7hoGNlYqAhIGKenyKh4Z9ioKBi4OVfXd6dWVQXGRHRUs7UWNhW15TRj87SFBFWmNRUllYWmdZVGBfTFNQRUE/SUpIRUVBQEQ8RTZCPkhHSkxTWVRdk663tLm3yL64vMnMurvAu7e1u7q2vbO5scVgdbGksZqeqr2ppairqqSisrWgq6iflZafmaCupaempZ+jk6OnsbSosrO9tsG+08nJ08bDxczCysPAvr2+u7y3tK+4t7bDucW9wsevnripoauNpKe1iIGBc2FjY19ZY2BqZ1NYYFZSVUlFRU5LQD5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaKfoN/gnh7ioOHe4t5gYqCl350fXprZnB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFRZVUpEQktLSUZISEhIQkk6RD9IS1NUVVxaW5O4v7i9tsW/urjJyrq2ubW3ubK3tLOutbaYZHWnnK1wXqKsnJigopuknqqllJ+fkJOOlpmYqJ+moJ6amYOknqylqrCtuLC9udTRz9fQyszSzM/Oysa/vsLKvcG8wcDExMXKvsfNsqO6sLSumqu4upiAe21fYV1aX2JaZGNRW2BTUEtDQUVGRTxART5BSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVtZaF9vlpKQlG5sb3R1h7OroKGfi5mcmYyMlZGakYWKin6IhoyQi4h8gYNze4qChXuJdIKKhpV/c3t5bG11e2hyZWlsaWdqamlgZmlpbFptc5atpLyIhmdbb2ddWVpUSEtOUEpLUEtTUUlMQUpGSk9fXmFmaWGXtsawuLK6vLSwxMa1r7iwsLursrGmqrerjLWnnZqnmk6ZnYyOn5aRppillYqTk4mQiY+RkZ2boZealZaHnpqnm6yvqLCotLTU1NTW08zQ09XN0s/MxcLJ0L7JycrJ0cfMzcLP0bevw7zDuaS1ucGig3BlXl9fWmFYWmdaUV1YT1BCQkhFQkg7QUM+QUc/P0E3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJncW95eYOgqZ6ml4yam5eLjZWRmo59iYuEjYqKipCHfISCcH+HgYZ7h3KDkouOfXF4dWxxeH5xem54c21pgXBtY2ltcHhpd3x+y7/B36dtY3huY1tiYEpQUlVOWV5PXVxOUE5UUFRUXG5tdoJxlq23q7Omr7WprLu/sKq0pqS4pquuoKu0o46wrZqXmIyRk5GEjpuBjaaRnImDi4SKiYSLhJSVmJeUm5Gcl5man5+rrKWooqytz9LV0s7M09TUz9TRzsfD1NHHzdLT09fM0dHE0tbFwc7Hx8KovbfOnnxwZ19kX1dhU19bUFFUUU9IPkBGQUJFPEBBPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxVUU1OWnWGhYp3bHdwfX5/oZ6eoYyMmJOTi4ySj5WFeYWPkI2KioiQhn6Ce3J+gIGHeoR1hZOQiH9vdnJrc317d3tzgXhya4BzcmlvcXp5cXq+y5p+i7GEdnKEdmhha11DWlpbVmVjWGRqU1hcXWBjXWN3en2LgZippKShn6CnpaqvuKqls6KhraGjraGnsZ+IppqTkpGJko+IgZOJapSijJmEgYZ+kYODk5eti5WNlZmOhpKRnpeosKKhoaWkqcnNz8jCzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy411cGViYVlVWlRcUUtHSkpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7T0xGSlhwgHV9aHN4coKJgJyUnZSFi5WJjomIjYaOf3iDk5iKjIeIi4h+gndze32Ch3d/eoaRlX+DbndwbXV/dXh9dIV8eWyHdnRufXaEdHh7nbWMO0CLxaV+jHxpZVdJQ2ZjZWNnamNtd1teZmhrbmhugIKHkYucnaCdkJeYnqOjpbGjpLKfoaWdoKigo7GchZ6SkZGPi46LhoOPhH+cm4yNgoSFeZR/gqmVo4yRiZeSi36Yi5qSq7OYm5yonKe+w8a5tsbO0tHS0MzSy8jUztDV2tfX2NTZ2M3Y287J2drR1b7Ky7V6eXBmX1tTV1JcV0ZHSklFRT06NzpAQEI6RkQ/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkJ2LfoeSg4mGhImBh3x4hZaWiI6Dh4WGeoR4cXp7g4Z1eYWOjZx5i3B8b296f3F7gHGDh4Bujnp1d318gnR+fIaHr3NYqsK2jZGCcG1iPV5ocnBxcG54doFlaG9ydXhxeouGjZORmpWflYeMk5qgmp6pn6Gsm6GamJ+lnp+rmYuai5CRjYV9iIeDhYuOoJmTiIOHfmyZeoSYhoiTjI2UjIZ8nImUj66qlJaYn5mnr7a9qa2+x8zJyczL0MnD0srU19nX2NfV29fT2dvV0Nra0dbI1MuWe31qal1cUVRUYElDRklIPkE+PTc6PT87PUc9P0FBQURBPj46ODdEQjc1NTQ3OS41NTY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEPkNHUmpebWRiZmt2gIhxkZCagHqAjX6CgoGDfoN7fISYjYeLfoWGgHaCeW57e4aBdHmSno6gdo51gnN1gX1zgIRvgZCCb5KEdXyBhXp2hnuJt8Wkwcm4gZabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWk5SOl5GDiY+WmpaWpZyXn5aekpGXop2Zq5WQkIqMkYKMhYiIgYaQkZ6bmYiGjIGFl3qIiZ+XkIiNiouCfaGJkYu8oZiTmJmdqaamrp+otr/AwbnHys7Oxc3J0dbV1dnV19vU19na29fb2tnYztvGiH17aWtnYVVZVldOTEVOQzs9PTw4Ojs9OT1ANj0/QDw/PTw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bIqNknd2eop7foB+f3yEen2CkYmEhXqEh3p1fXRtfH2GfnR/kp6RnoORe4Z+eI9+eIqKboKagHSZhn6BiYR7fpB6j6mOj8OhvYucpJx9iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Li5CShYiKkJOUjpyZkpSQlo2MlZ+clKCUkY2Nj4t+kI6Oi4SJkpaanp+JjJSSnZGCi4ClmYiEjYKFhIGkh4uLuJidkZWWoqihnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuXt7em5raFliXVRQT0lETEI8PD45OTo6OTk7PTY/Pj48PTk6OzszN0Q/NzM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PUNRU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97h3p8e4uGgn10g4V5cnpzbYB+hH53hZuim52Ukn+MiH+Yh4Cbkm6HqIV6oIt8kY2DiIScfZqQioyjoqCQpK+fi5CLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlYyHiIySkouUlJOOi4+Kh5aanI+UlpCKkZOGgIuIko2KipyWmKKihpOdlqCKiYiNm5CDiI6Ag4eFpIaMkLOYnZKUl6GhnpmSnJ6osritpr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aByf3dqaF9eWVVZWUNBSUM/Pj46NDk6Ozc6OzozOzs/PT43Ozk6MDpHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNiem1hfpKDb213i3h5f3qBfIV7e3aFhH9zcIWBenV2dnSEgoR+f5KmpJ+lopeKnZCUl4uKqJdyirGNhKeShJmThZmMopWfmJOImp6jkqmwn5CUkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNx5WPhoeIkJKNjZKTiYWKiYWWmZqPj5SThpSXg3+Pi5mIjZCqlpejo4iZnpaaiI6GlpeJhI6MgX+Hj6SJjpSompeTl5mhmZ+Zk52bo7O0pqO8wb7HxcXJyMnCy9PNzdSp0tHW1tbY2tTS2s6EdYJrZmBgX1BLVlxCQkdDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfHxtfoh4en56gYGCfnZ2gIJ7bG+Kfnl8d3h8hIaKfoujtKikqrOhlqegpaSWla+ig5C4lZKzmo2hoIykm6+ipJ2YkKeXqZmtsKSXlJWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKcmIWIiI6UjIqTj4eAhoeIk5iUjIqTk4aUmIaEkZCcdJGYspWWpKGInJmTj4qQipaaiYqWjYZ9jJifipCQnJqZk5mYoJShnZWfm6GxraOkt76zxcfEvcPDv8bOysnSp87M09HQ1tjSz9i8dXx4X2JXYlhSSUtPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNXFxZSmhhO0iEi3p6bYWGeXyEeICFgX1weHx9fG9zjHl9gXt4houJhoSSqLytqbK9sKWus7Opo6KwrIqatZ2iuKWVraSXqa23pqSjn5mpmKqkr7GpmZiblJWRmKCXmbu7rcqhaba3qrCVmJ6jq5KXvaReqrOCiYqMlIeQfI6OfYOGjpCUlIiHkpaLj5WNi4yXmZOcmbSWlauei5yUko2QkouYmoqSnY+LiZWgoo2VjZeZnZOcmJ6UoaCUnJ2lrqiipLO4q8LIxLa6vbzFyMjC0KHGyc3NxNfW0MrTo3N9a19bVWFTUUdEPjxDQUI4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGZIYWBicEpAi4p+gHKGh3yBiXWCioN+bX18fH5wd4d3jYGHe42QjIaMmqvDwLC9xryztMG8tKyrs7aMqLKtrb2rm7ujqK25uKumpqKipKOqr7Kxqp2co5ibmJieoqWlk6O5r6jAu6ytsrmlo6d9iIacrb2wgouLipCDj4ORjnqBh5CNjpyIiI+XjYqUl5SQmpedp5qwmpGrnY6aj5KOlZGPlZeOkaCQiJSbpKyUlo+UnJ6UoZ6bmJ+glZqep6ekoqSws6bAxsOwsLu2xcXDv82nx8PHw7zV0MzEyop2dmRfXGJdT0xDTEBFRz5BP0I8OjQ+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxoRl9pZ1tdXJOMjIh7h4uGg4x1hpCKgW5+e4F+cX6BepR6kpSUmJGTlai0x8nAwszCw7nHvLqvq7m7l7K2urLAr6XAo6uwvLyqrqujop6nrK+1samboKqcopyWn7Czp4yiurq1wburqJyypKOolISOqcTEpIKLjoaIhIaVlIx6g4yRj5GhjIyUkY+Il6CYk5mVl6WgrpyMqpyOlo+SkZWVjZCUkY+hk4aXn6Cyn5SblKChmaSgmqCboJSYnqekpqekr62lv8PCrqi3tcnDvrbOssS+w7uz0cnIwbV3e29eW15sVE5JRE1LS0lAQT1CRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZaJi4iSj4aJeYaTkIFygHuMf3eGgYKPeY2hlqiampi7vsnIysLSycrCzb3Bs628v6e6v728xLitwamss7y9qrCqpKWjrK60rra1oJ+un6aimaO0vKmbqbzBo7a2r6uTr6uqrJaGmqqnpZGCjJKklYmAdYmReYWNkZCen5KPlIuPjJSjmZeblZSinqmfkaWajI+PkJWWiHyOlZKSo5qVoKKctaaQoJelpKOln56mmJ6Vl5ylo6ioorKsqLvAxK+ls7fMwLquw7O7vcG5rcLCwr+ZcHtjW1leXU1NTktHRENIQkFBQ0s6NERIOjs0PDdGLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bElfWGFaZGVXnpCdjpeOnpKJin+In5KEeIV/lH5/kIiJkICWoZqup6OYw77JxMjG083Ozcu8wrewur20vcu7w8G2t7yttMC5vK6vqKGpqLaurqmyt5qerKKoop2rt7eppa++xLG9uLOnqrSzra6WlaWtqKCRjpKxxaeVjX2RlX2HkZiPqpmXk5OOk5WTpZ2TnZmUoKKhnJifmIuMj5CeiFqPlpeSlqSZZpmjnrOllqKWrK2sp5yfp5eYlpiWoaOopp+1q6m6u8O0prS1y8G4qrass7u4rqi4ury3hG9wXFpWV1BHTFROSz9BSERESEZGODVGTTs+Nz5BSy4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZmNNRqaUnJahl6iWjJCDh6WSiIGHgpuDg5WQkJSOmqKfr76uoce+xsXIx87Oz9LKvru2sbu7vL/PtcS9t7m3s7K2s7izrKecq6u5q6mor6+Xo66lqKSltcGwq6y0vsO5wLizp7i0t7KvlaStsK+ki5OUoI1zwZl9l5mEjpaZi7GVmpmVkpKZmaWjlZ+blpqonJuhoJmKjI+WnWBKlpyalZmll1SWsJ+vnJ+lla+vraaboaaUk5mZjp2fpqGZtKmqs7y8u6uwssfAuKasq62xsaOhsrK0pXNxZ15cUFNNRlFRUFE7SEtIRkdBQz05S1Q/QTo9RU0vNzU0NDpCMzROV048SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzVFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTc2JWRkirl5mfoaiumJCXh4qnlo2IkoWfh4Scl46doJqjpLXJtKnHvMPEycvJyMzOx766s6+6uMDBzbXIusG5tbqyr6+ztKeknKq0tauqp62smaSupqWprLrAqKu3tr7BwL63srLDsLe8rKOuta26pYibl6Wadb6fhJidjpKYmouulqGcm5eUmp+gqZ6noJmaqpmhp56XkI2RnYNtdZOimpSco5+QrbKiq5Wpqpiqr6aloaWqk5KZnImVnKKelrCnqaq6t76zsq6+ubago6eopaacnKypqY1maGNgU01NR0lPSlVMPU1FTUlKQENEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQzo5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYU1WSH5lXkhGrJScoZ+7rpiUnouTqpuRkZOIqoyGoZ6Mo6yUo6S2x720wrvDwsjJxcLOyMK9ubKvubXAw8q2xrHBvLW7rKmtrLCjo5mqtLumqqesqp2or6ikq6q+vKitvLS3vsa8trW4wLC9v7Optbesv6WPopeQoZ+8nomaoJmXnZ2Ptp+pnKWjmpugmqels6GbnaWcqKqdmJSPlJuLlomMpKGUnKKfoLWwpaaTsauaq62fn6WkqpKWlaCEkJ6fnJappKGhtLW6tq2otbKynpyippqXlZmqoZ54Y19hX0xJRkhOUUlORUZHQlFKSEBER0FWU0RIPEFHUTE7Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6fw6ybl6SXmaiblZqajqqWlaimla2smaKrt8XCvL+3wcLAyMS/zca7vrmysLm0vsPItb+wvLa6t6ekq6utoaGbq6rEoqWorKaeq6+soqqovrimrb6wt7fGt7S4uL6xvsC2tLK1r76jlqOVk5qTrZ+QoaGkoqOekL6kqJ2prJycoJumn72imKOeoqmroJ2VjZWek56HjoSNk56koJ22rKaclrKmmbCooJyrn6GNmpWfhI6hmpySpaSamKuxtbGqpaqtrJuYoKGSjpCWqZ+UaWVcYl5QSkhLT0xIRURJQD1PSEA7RklIW1JPSz1ITlU0QkY4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLS0wTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE6jm6ObnsWroJ6rnZytn5Ginpakn6aqq5e2saOps7bFwr3AtsDCvMnCv8rItri1tLG0tLfCxre+sbi0uragp6yqq56en6WkwaWhqq2gpKmtsKKmqL21pbG7t7a1w7Kyt7q+ssPAuLittLS1o52klJGToKyfmKGdqKiqoprCrKidrK2amp2YpqC9oZ2kmKurq6agmY2an5KeiI5Yf5afpqGguaqmlJi2o56zoqGcsZigj5qVnoKPoJeWjqKjlZClrrOrqaKipaSVlZyZi4+Sk6SfiWNnXGVhTUpLS09GRUFHSz49SUE5OUpKTl1RUUk9TFZcOEZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExQn5+gmJ7Dp6Sis6CcsqeSqaOfo56tqaydu7GprLWxyMPBw7PCw77HxL3Eyr2wsbausbWwwMW1urGwuratmqmwqambnqahp8KtnK2xnKqirrGppKe9t6a2u72vt8Ots7PCv7LGs7q3q7S2raqippWVlKKroZ+fmaerr6+vu7Kln6mpmZiXkqKkuKCho5Kur6ukpZ6RoZ6UnY6QjZSdmqOfqLWnp42YtJyjr5ugnLCRoZSYlZuAkqKWj46goJOLpqywpaeinaCekpKalIWLko2cn4BkaF1oZktKTEtTQUNASEc7O0Y+ODlOTVVfUlNKPk9eXT1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9nckA4PEiWd2VBNJ+knpugwqejqbGgo7SplbGrpqKksqytqbuyrbC1tMa/xMS2v8S+ysW2wMnCtay1qbC5rMDEtLevrba6pZmrsqyqmKGnmK27tJyosJutn660saequrOnubO4srjAqreyw720xae+rq23tamnq6CWlpGlpKGhl5ekrretsbS2n5+ppJmTlJOjoLejpKWVrrGypamloZ6bmZqVl6ifnpmin6+zoqaNmK+apauXm5+nk52PlZmahpaglYyQnZ6Ui6mpqqKnoZmeloyPmZCBhpWIlZ96ZWpdbGtOUU5OVD1DQU5DOzpJPzc3UU5dX1JWUUFXYFxCSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWlWQ1dGjHlmQzukpJygpb+mqK6uoKm1qp23r6ujqrS2sbC4t7C3uLfEvcPHvbzDwsfBusHGwbqqtqWtu63Bw7e3qq2yvKOVrbGtspemqJGquaqhp7Cdq6CvtLOqqre1rLuss7K5t6y4sMG6vb+mw6qwtq6pq6umnZiYqqGhoJGXoLCvs6uwuZmbqZ+ZlpKXpqC3qaWioq+xs6uxp6ugnKCfm56lnaGYnaO0sJufkZSmmqGpm5ajoZiai5aZlJaXnZSJkpuZlI6pqaego5yYm5OHj5mLfoyXho+bbGltYm5uWFFRWlRBQ0RUQDs7SEA3OlhQZF5QV1dEWV5eTkxTTl9MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOGx9aFxWOol7Y0M9qJ+coai8oKmvqqKxt6iktLGqoa21va+zuLy7vbe2wMK/ycS5xMPAwLnFvcG4r7aoq7eyvL+/tKqusrifl6ytqK6YqKmOp7ufpa2znquisbCzrKq2s7W8rbCxtaywtLLAusW2q7yvsbesramjsaWepKieo5aPmJ+yqrOpqrOZnaebmpSNoKaktK6noaysrbGnsquxqaObnqiknpSgmZyotqmXmpOSn5meoZ+SraCamoeXmYydmp2Ui4+Xl5qXp6ajoJ6WlpaUgZCVhXuPk4OMl2dtcmhxc2BHWWZWRENNWERaOUhCNT5dUWhcTlpdR1teXU9NU1hkSktDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FWMTUxPWBWXzgpQzNZVVxnSzWMemZMQKSaoKSrtqOrqKSurbWprrO4pqewt8a2sLe/wcK2tLrFvszFucPBusC6xLjBurO1rKq6uLu6vrWrr7G2mZioq6usnK6rj6u+nquvsaOqn7Gts66utrG4tqqtrrGntbCzurzJsqq1tLC0sK6moLOgmqisoKSVlZqZsaKtoKWvlqKkmpmSjKKlp7KpoaaxrKq1pK6wtK+jmZ2tp5uXnpqZrLiil5ORj5icoZmYla6hn5aClZmOnpyal5GLlJOemaWjo6GZl5OSlnuMkYV7jYuDjJNsbnlvdn1iRmBqWklIWls9e0pHRTZBYlVpW01cYUpcXFpSU1NiYUxLRWBhYFBNSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1hUS0WalqCwp7GprKSjrq20qLezt6OstLfJurS7u8C+tLO3w8DMx7vEvbe/wMC4wL2yva6ourm4t8K3rK6xuZWXp6+sqKSzqZSvu6SssrKmp6OytLCysbSwt7KprquyprivtbPExbaptbWrsK2pp6K2np+msKCjlJuZlLCep5ufqY2pop2blZelpaS3p6Kws6unsaetr7WspJmgrKicnJ2clKq5nJWPj4yYnaOYkZiopKCYhZOXkZ2cmJeWiJePl5uonaWhkpaSkJZ3hJGGfIaChI2NbnF4dnyAXExlbFxKT2RdP2J7R0k4R2dXZltMXmJMWVlXVVhVaV1PUEhhXl9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGcyNydGYUxWJS1CLj1FTFE8M3JrTEREkZmkraOsraqmo7Cysqq3sLWfq7W5ybiuwbzDt7OxtcLDz8TAwr61vsHAu7+8tMSoqrmxtrfAvK+stLSeoaexrqWmsaWesrWsqrKxq6iotLqstLK0q7OsqquorKm5rbKwx7+4pLmwqa2tpqetsKWko66jqJudm5qvmaKioqOQrJ+joJ+hqaaluKSrtLSkqquorK62rqKdo6irnKCZm5KktZqPiY6IkaOhlo+Wn6KWlYaQlZSem5mWlYeYkpWZp5ygoI2Tko6ReH6OhH19fYeKinJ0c39+flxTY25eTlpnXUZElltHOk5tWGJaTWFiTlZWVldVWWheUVNNY1pbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RkOzYqSGRISis6ST8zQ0lTLD6Paz9ISZCbqamhqa+kp6Ozs7C0tLCwoKutvcy6rsG8x7G0rbPBw9HExr/Bsr7Dwry/uL3FqK23rLS4vMCxrLKtoaOnrqqopbGjqrCqrquxrq6sq7O6prewsqmyqaqmpaOtuqyqsMK5tKy5qKioramnsaWppKKuqqihnpujrJWlnZiemaudoaeooaymo62strCxoKmin6qtsKudnqenqZqjmJmQoKiYhoOPi4ufoJCMjpeekpGIiJKWoZ2WmZaGl5OUl6Wcnp2MkpCOin9/iIR9d4CHhYd1dHKJd2xfWWBuY1FzcVxLO4R7Rj9XdVhgWU9jXE1VVlVXUVxiX1NPT2hZV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLklnREY4PEIwNUVLWDFAlF1ATkaVlqynoKmxm6iosLWsuLWtqaSrqr3JvLG+uMOvsKyzw8TOzsO/wLTAxMS6wbXJxKyvt66zusC+tK6urKaoqbGppqmyprStqq+trbGusq2zuqS4s6ysraeroKOesLerqq25tqS1taOpp6ysqq2gqKansbGkpqWhoauWqqGTm6ClnqOjqqOsop6msbasrKKlo5qpq62pnaGlpKSZoJmWj5idk4GCkImFnaCNi5CNm5CSjYWOmaWbk5GbjJOSkpSjmpyai4+LjHyHgYKCe3WBhIF+dXeLo4d4al5gbmZXZodkTkBnkkxEYnpXYlhSZVVNVlZVVE9cXWFWTE9qV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZCSUlElpGvpKKpr5ipqK21qrWwqqSrqqm8wMC5ubS8taayr8PJy9G/wbu5wMDCusG6wsSusbWytLzBvrOxrq2srKe3qqWtsKu4rqiwr66xq7WqtrWmtLesrKSpqpyknrOzqKiks7Sfta2hqairqKunn6urqLm2qaqqqaGpn62bkaqhnaCjo6aiqp6cprSup6WpoqSXpKanqpyipKOgmZifkY6PmY1+h4yHhZ6eiYWMi5CPko6FiJajmo6Nm5GSkI+Sn5iZl42LhIB0h4F/fnh1g4B6eH5/iJ2PcHFmZ3F4XGF0iGpPXZhWSG15VWRWUmJPTFVVVVFPWFtiVklRalRWVEdQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JGO5WNr6ClqayZqqOsrrK0r6qkr6mou7+8wrKvua2itq/Ix8jRwL+9urzDvbvDwb+/r7Gzsra9vMGysrSrtKmltqmlrbOyuK+irbWxr7G5qriuqq63q6qeqqugo6G1ramhn66yobSqnqinq6OqoaGsrai9rquuraGnp5+rmY+wopiioKinnqebmKmwqaKfrKGhkqGio6eYmqilmJiYnI+Lh5WIfI2GhIWkloaDg4yHkJCShYeVoZaJkZ6Rk5CNkZyVmI+LhoZ4dIF/fXR4eYB7dHR7aoKIpHZpXmVsgXVniIt8UlZwXkp4c1RkU1FfTU1TWmZOTVdZZVlHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzOPjrCgpKWqoqWjrKa0s7GopLCnqri+wb2wqLmqp62wycbI0MK9v725v7+9ybzCuLGwtbG6vLnAs7S8rbmso7Wmp6yxtriypqe5ta20vK+7pa2ttautnKmvpJ+krKqonJ2qsqSzqJqqp6qkqZ2iqaepvauzsK6dqaOgrpuas6KWpZulpJ+lmpmoqqWemqmgm5GaoKSdmZepqZGZmpKQi4KPhX2Pg4CIno+HgH6MiJKQkYWClJuUhpOijZSRi5Gbk5aHin+Acnp5fnxodnx7dXByfmqGeoWIZF9oY3KFe21neV1eVkJXe21UYVBSWUtMTnB0XUlaW2hZRlZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpKwmZ+fqaSioauktrKxpKmwpq25wr23sKS5rKmosMLIyczBt72/tbjBusi1w7W0s7Wyvbm6vbauuba/raKzpqqrrrS3tKmcubuosb6yuqCutLapq56tsaOcpaipo52bpLCmr6Gfqqmnoqqco6igrbynrrGuoaqio66enqymmJ+aoaKbn5uZo6qimpqjo5WWk5+hlpyWpqyLn5GPkYyCi4CAj4F7mpSMiX1/jIeRkI2KhpOYkYeUo4qSkYeQmZCUgYh9emx9dnl4Ynp6cnBwc3hqgnVrgmdjZ2Fuc45tYmpvX3BBXXlrVl5OUVFLSU1TWVZNXF5sV0VYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl0+I5GWq5ifl6eioZ+no7evraKvr6iruMK6s62gua+rp7O6x8rHv7fCva+0vrfEtsKysLmxssC2u723qrm4vqqktaeoqq+tuLComLi8o62+tLShrbe1pqaosLOgnqWlp6GkmZ6sp6ieoKqvp6Cml6Kon7C4n6Oxr6GroayknKamqJqbm5+ilZybmp2pppabnqiRmJKYnZOZlqGqkJqJjZCHfYd/go58fKGMjIl6hI2Fi46NhYmTmo6JlZ+JkJWCjJeNkXyFfHRwfHFzdGB4eGlvcHFwa39zZHpsaGVkYWaHgGBbcmpyTU6AaVhaTVFMS0hQUlBHTVtfb1RFWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsn56hpKG3q7CjtLOpqbrEt7KuobitrauvtcXHwLe/wbmwtL23v7u+sKy+sLO/sbzCuKm7urinqLWop6uvq7KvpJi7tqSrurWvnrG4r6mlp6+ynKGkoKSjoJabr6ahn6Kor6GgopOjpKK2sKGmsaufrKOul5yqpaifmJqdo5Oam5qdpaqam5ullJSXlZyOk5eiqKGQiYqPhnqDfoSLeY+Xio2HeoKIhImNj4WPk5iMjpaZi4+WfoaXjI96gXtwcnZub3NfeHdkbGxsamqFb2ZyaWtmaF5kc4FgW2t2aVpKf15cWE9PS0hIUlVHMzldXmxQRVlVWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJkVywylKGhl5SbqpyjoaKht6qtoLu3pay9xbSxr6O1r6ysrrTDw7yzv7q3sbO5uLq3uq+uwLO0ua+/wLesvbq1pqKyqaepsaqtsaCZv7Wkp7S1qJ6yvKmopamwrJmip5ykpZSXoLKkmZ6jqKmcop+SpKCkuKmkp66mnqWhqJKfqaKhoZmbnZ+RmZuWn6Gqm5qYoZSRlJaZjZSTpKikkImJjoZ5hHuEhn2djYmKh3qBhIeIipKFlpOTi5CWlI6NlHuDmI+Ld358bHRybGxzYXd0aGhqZ2dwh2hoaWNmaWlgamNqaFtme2NgU3RUXFtSTEpGSU9TQCEqaF5pTERXVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp6io5CNpKaanZ6do7Stp6q6tqesxMG3sayjtq6nra62wL+8ssK2sK6ytrW4tratqr2zrrKxvL+3rry7saWftqqlpbOnqa2dnMCrp6SvsqmstbueqKqrsaWYnqqdpqSRmKWsopiepKmhnKKblp+dp7WmsKquoaGdnqGUoKafoaCam5mbkpidk6WdrKGXlp2Tk42Vl4uPmJuon5GIiYuIeIV2gYKBnYeKgop9f4WIh4aRhJaUkI6PkZGRjJN7g5WPhnN+fmZ5b2tqa2Z0c2tjZ2RkdoFiZWZmZmpqY2tyW19ZXm1kYU5pWFpgVkpHSEtNUlg+OV9saEhDVVRdW0lJR0ZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao6CPjK2hl5eglqSzsaKyvbahsca8urGxo7esqq2puLy7uq3Asq6urrausrizqau5sa+us7a6trC4vaymnbWpn5+vo6munKG/oLCjrrCut661nq2vra6imZ2nqaWflZqnpZ+ZpKKonZqfmpScnqyvprqorqKhmpuemZ6kmqSdl56Xm5OYn5KolaqnmpOampKMlZmNlJSaqaaOjYqJjnuBc4GBipiFh3yJiYWFioyJkoSUm5OSj5CRl46Qf4CNjoNvgX9meW1oa2lmcXJrXGhjY3SBYmZnam5sZ2tqaG5dbGxzcGBUY2ljZllJRkxNT1hRUVVhZYBVQVdTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyY0kaGbjY+wnZmToZqpsa+fub+1oLTCu726saa3r6etpLe3tretu66sqqu2qbO3rqaytbKuqbC2trCztrqnqJ+1qJydqKCorJqnvZiso66vtbWtrZ+xrbCpopuco6uonJScpqSdmqmipJaan5uQm6Oqq6q8n6ekoJiamZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJeZgJaKoZB5h5SMg21pfnaDcWyGi4Z9hYyHcF5jYWeEmIVri46UknR3i4R+g5CAZ4eAZ3VoZVdcaHNtTlBqY2dzhWhfZWZubWpeX2GKj4OEZU5LRDlHVGheSkdRUFRVTEhSYG90ZUZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsKzA4PUc3MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoqjmYWVsJubk6Cbqq2qo73Fr6m3wre9va2mt7ClqqK2s7GysbmsqaastKWvtKKpt7a2qKestrKutK2zoames6qeoKObpaaXq7mUpaWvs7etrqWprquspaGenKGnppuXoKWlmpunpp2Tnp+XkJ2oqaS2sKSjop2WmJeXo4ihjpKahqCHk5ygf6V/paqekpKakYiEcniNjoWIoXaIjGmXiGZ9c3igb4iHg36OfH+hoKCZgHyHnnSHjnWbimyHgYNtaWVjemxyYVOFbWJsaZhxWGlxcIhYXmlbbGxbiHJuenKFZ4aEWl9HTj9HX01FUlZWUVFTV1RnXU1WSFJST0ZHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiKppaCnKucmJidn6mpp6q/w66xury2wL+qpbevqayksrSurrO2qqilsK2ltLKbrbW2taanqLKwrLKnrZ2pn7Gnn6KimaChmqyzlKOkpbW8pq2nq6qsqKahoJigpqOZmaWjpJicpKmWk6Kck5Kjpaaht6SkoKOYlZOXkpyIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kYR8kJCRynKXvJzFenK1pruQe4BtlrGrsHlobFixrm5lab2SvG5nem9yj9h+U2tjtrJ/gXKUc5qhqpBXT1diT1ZORlVbWFFQUoxcV1tQQVxEUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT46Qjw/QTg6Sj41MioyMkJFLy4zMi4rLygtLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKaSgKeqn5ecnqWssqiwwr2xtb+1tr7Bq6ezrKyppq6zqa62s6enprSlp7etnLOytqulpKexraywpqqdpqOwoqGfnZaanpytq5Odop+0uqOqqaKtrqWhnZqaoqefl5unoJ+YnqenkZymmpOdoaaiobGjn5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUca6hpH54u31roY92sV9qtFulgGWckWBmgntmf2p4a6llvnJnpox1sWp8sXh0kpRjbm2nbluEoEVoZoeWRXWcYH5nfKSnglpfjKtogJV4eWqnN0qvXFhTbGRbS05YX1xXVjtOiU9XVy9JVFNKQ0ZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKtp6Weo6SqsbestL2/r7bEsre6waapsKquqKivrqKwuq+jpK2yo6i4p56zs7CjpaCprK+rr6annqOhr5uimpaVlpmaq6WVmqGetLOiq5yjra2gnpmWoKKonJido5+bmaGmpI+copmWoJ+qnqamoJqfoZaVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH5rgaZ7goaIkpSSd6tna7Fcq3qNhpR0iXKPhoB/iJCXeIKCi5iLg6CPhLB2d59xbGxsfItOpFhIYmKZfmNopmB5cnVTk4deUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5V1hBI01oRkNFQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVQ1MBuVoJWIs6amoa+pp7Osqbu2wrC7wa24t7+prK2traatsamgrruqoKe0rKOrtKSmsrOno6Kep6qxp7CnpJ6fn66VnpmUlZWXnaugmZmkqLSvoqmPqaiqm52Vl6ClqJqenKKem5+jpaOVm56XmZyiqZummZyboqCXk5GTk5yD1ZOZuXCwwX7FhnzWlJu7fJqVpY+NnY2ke46Ho4KlgnqseY+dVq96iH6farlauXaGg32mgpN8mHqqeI2dj3qxbo6EdJG8hW+UUK+nxYpRoHpjYKlic3KIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWNQQFhnWmRhSkhNbk5cUU9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6O0RIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFQNzElm6KUmbKoqKa0qqW0qaS8t8Gwub+xtbS6srSnsa+isLKmn621p5qnua2ir7Cfs7SwoaSen6apsKi0qKObnZ2qlZiWlZaUlqConJmWp62wqaOej62iqJadl5ugpaGYoaGhoZqhoqebnqCelJiapqCbp5Wbm5+hmJCSlJCdiLJuaLVxq4dujqZytHNytnual6SLj52No3+RoaV+sHaDkdLSdlyue4V/pG+bqqZrhoR8rX2XmY57sHKSnY54s2WXdISeb55mlFHIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFPa2BsaFBWR0k5PVVSWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTDYyMKGdkqWwrKOrvK2mtKantru8srq+tra0ubiypbSzoLGxop6rr6SXprmtpLGwm7S4qqClnaGppLGnrKmjmZyZp52Vk5eXkZGhpp+VkqWqsKailpOtoKWSlKCbpKaflZqlpqGaop+smaCenpCVm6GdnKWVnZWaop+VmJWRm4Wse3eodqONiIapb62KgqeDmJihiZKai6J/k5qJroV/grNccrNSrn2CgqR/cdd9eIV+jp2Fmpp2r4aJkZyHd7RhmmWagoKVbZJasFhLmnWYeWZgrV52d4homIhsXa93lZ6PeGw1eciusl9CVG9eZ2BFUGxfcG1WVk0uZmRpU1lQO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEg6OTmgnpWgubCXtMKtqLOoqbK6t7O3vri3sbS6tKS3sp+zrJ+eqKuelKe1q6ivsaqttKSbqaCfp6G1pqapopidlKSgk5KbmJGUoaSakpCmra+moJWZqaCij5GhmaikoJWZpaidnKSerJyhnaCNk56anaGYmZuWl6KglJeQpp2GqX19pXihjo2CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTYf3aHc6iBjpuNkqR8lpCfhHuyXp1koH6DlW2SXKtbWpOAkX9oZ6pkcnuBa5iHc16rWomgjmtvZU9KQ6FcW0x0XWJnTlthX3JzX0tWN0qblFhHRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDUuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84op6amr+rmLTCrqutqaW0sLewtb64uLGwtbqourSfr6SdpKennZOpsKmvqbSrqq6hmKCfpqSjuaKjq6CWm5Chn5STnpmTl56fj4yLqLCvp52Xm6imn4ySpJeoqqeUl6mnnp6goq2koZ6ijJShmJ+gkp6XnJWeoZWWjqucj65tcrRzqYt1iqdztHhzs4CRpKOSnI6JpIeQd7hvjHuLomprtlqhhWWXl2mhoqdtk3K0dJOYf7JqhZKIrWp1s2GdZqJvh5Nrl1ytX02hfIeRUnOjbHl/fm+Yh3Jdr1Y8nHdmVG9uLlynT2NTa2VibVpjXWBwe2NUWlI+Pm1vM0NCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKacm567oZuywK6tq6ynt6m3r7W/tLqvrre2qsC1qKmgmqWjoZyRqqmntaKyp66poJebp5+kq7idoqyalZmOo6KVjJygm5icn5GTlKq2sKiZlJysqpeMlKWYpayikZaqsqOfnaarsZmho4+Yopafm5aclqGTnamclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJeLjKeIeqS2dX13dsKCmrJgg7p5wHx1uGO1goyHqXyVgaypcXt/dLyIp6BpnWGmjq+hfox0h6p9vm9zvHSyg3V4gYpumohybo2kdL1ed31aYXm8a1pWXGp5XmphZWdibXhvWlxZQ0FAc0BDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56ivaGXssOwraqrrLGnt6+2w7C4sK25rq3AsKujoZ2ioZubkKmjqrKktKWspZ6VmaqYpqy4nKKtl5Ofj6Sfkoycop2XnZqRlZKvubKslZejp6eUkJaknKSsnpCgqKufm5+oo7Ofo6WOp6KUopqcmJWjmJCvoJKUqZ6EkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSfwbu9mnuBsahwgHORuYN8hoaMh418ioeMl3yku7m9nHV6tKN0d5d2dLB1mZ5mhmqNtXRycXe2jF5/en2JaIN5bnpji6xwdYV/WFunakVlWlRmYGNeY1FnZnBsdUNOUE1EOlpNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlUnPjs8p56gor+llrTDtKyrqKyrqbqusMWts7KttaazuKupoqGlnqCdmZOro6yppbWnp5+blaCjnaukvaahqZaTm5ChmpGPoaehk5yXk5eUsbW3rZmepKSii5KSppulqpuVqaSlnJqhqKWnpKmhka2flqSel5eXnZ6Pr6iUm6ahjWp9aZumeIdyfZmOdHlkh3u9vsC6b5ODcpWHYHJqWl6biWBjiI6Va2CAlWNtnXdilWuAmpWUZV5gY3Caimhyi32GlWdrf3J1eH1+Ylt3dIFoUFxug317i2tYa3qCc0pKb4ZwTnRNRVhdZ2FMWlhnY19PW211aXFSUERFTTtHST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPltPJz8yPqmgqKLCo5u1urajrKWup6e1sazIq6+yqrOivbCxpp+ip5yjm5mZq6auo6S0qKSbl5Sgm6atqL2nqKSUk5qVn5mSl6SoqJCdkZCYnLCyv6ybp56noomTkamaqKObmqugo5mbo6eso6Cro5qwm5WnoJaUnZ+dl7ClmKGnmZuQnJyio5iloZmbmZmZj5WBZ219cXeSl5SShYu1qo2GmJWOioyYloeUlYqEk5SRiY6SlJiTmJaaoKGanJSgnY6CeqWFbWt9kXyAdYqKgXGCeHl2doqAfIpqc4F0g3Vld313a296bWBjXXBoTVhaZmpgV1pveW1tZlRPRlM5T1pNUU8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSiw8LUCzoLOiwKGksrK2oKmlsqelsLSqyKqsr6S0pcCms6CdpKSco5WVn6qmrKKjtqufmJaVn5atqaXAnqujlJGbl52XkpOhnp6ip5KSmainssSwmqudqp+QlpaonaqbnJ+smKGbnKKkr6eipaifrpiXp52ZmaCenZyvoJyhppWXkpeTn6CVop2XoI6Wk4qKjY6XrpB8lpuDkoKLqqmFgJmXiYOPnoh6hJCHhpqSiIaKlo6bl42RmJ2klpqTkZ2Nf45nobOvhYqEdnuSin13eXpvZnmQgYCJa3WBeohzaXN/e3aDh4JrdWR5ZmBqZWNkZmtZbHtvaWtcU0xQRF5URUA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9iY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0W0c1PCxAtKC5r7+sq66ysaCqprKtoqyzr8Svqaqisa28orObn6aioZyYl6elqaWkpbK1nZSTnZmZr6WtvqCropCRnZmYlJCUoZyXqJyEnqqro7TItJ+qpKqWlpeapp2pmp6jq5Sen56gqa+qpqSroq6bn6CgmKSenJ+cr6OYnqeSl5ackaOYl6ecmpdlgpJ8ZX6NmpBjeY5taWt7kqSqamWbmH1nhoplZWloe46hj2tnjZiRo3draouZo5+Yc2xueoSOiHpYZl6Gg15ti4mBdlxoc3d2koCHgm53gniAc215hHR2iIiPg3xrh1lebHRkXnOJaWt8cWtkX1JOWElkWEFKND5HNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaWfury6r6y0saqlqK2usKatrbC8sKimo62usJ6slp+jnaGZmaaqnKyjpaeosq2elKOPoq+ltrmlrqKOjpmhmZOSmqCZmaSVe6Wtoqi0xLiloqevn52UnqKeo5uiqaiSn6GeoKmwq6ukq6CqnKefp6CslqGbpbCkl5uplaCdmpGjlp2pl519vYOIcrRyhJ2GrWh4ucS4cZOio3qmmZlyq4J8y8DAu3GMo4iCn32WmImdwL2Cl52ejZ3CwXyCfJONmsPAfWylsm+MgW/Ken+bd5GDjoF2eYCAeXF6f4dwd4WMk3lueJRjZ2B4ZGBlgmNedGdsZGNYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9WQUI7LziWo7nDtbCwwKmolKOvqLCuraays66ppKWmr6ufqpiaop+cmqqnopyroqSopKS0o5yikqatq7ezp66hkZGZnKWSkJ+hmJufnYimrKSsrcDAsaGpr6mXkZ+dopmho6qjk6GinZ6sr6qtp6Skp6GmpZ2sqJGjmqitqZqcqJuroJWWpJWgopacfs6UeHqkgXmVlptfro9ejqeBoqB8p5abc6uDgK9eY4yqe6iHhaB0l5OIs2OCq4ahjo2zaoSvdX2XiLdhg61ao81ukHZ72nt/mXB+h5J2fmV7iHZ2a3yHbn2GkZF+bYOQYXJtcGhgYHlkXHFoamRnYFJUU1ddS09DNUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqets6umsqurqqOqpq+pn6abmaSXnKKvn6CeqKeipaCfsKyanZWnrqywqqirn5SRmp+kko+epZiep6OfraWrsKjAx7OoqbGulpKdm6KXn6mpn5Whn52dra+prKqcqKiloquSrLKWpaKqqp2ipaSgrp+RmKaZn5mTk5CXoHGFjJd1haiGcbF9nnKsfqGegaWPnnargn2tf5xyrX6rh4afdpmSe3yXfqqIooySjJ1+q3uJlJCfgHutV53Fe49wk8F9gZVtdW+MbWV2ZYZvYXducm6JipKPg26TkWZwdXVxYWdtZV9vaWluZ2RYU11hWVJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DTxsaytKCdo46joqKsr7auqLGmqKqmraurpqGjnZmhlZ+lq5+hpZ+oqKKenbCsl5qWqKeuq6emp56XlJmjoZGUoK2bnaajr6ykrLWqus6yraaurJeVnJ2imZ6urJyXoJqen6myq6urm62rpaOrmq6xoairrqWYpKmoqK+hkZWio5mTkYSkaqR1iXqpdHqycIKmipmMcYigmoekYGBSrIV/roObdq2Bp4aFn3qZl4Z7ZoCjiaSZhoKjfal+gpaHrl98qVaeo5KBeqOfgHvDr8WLcq+zs7lxYqmvwnRojIyYjoJunJVxb3p4eXBtZ2VlcnBmfGljXVdgalhZVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXUv6GZq6egr6KesLSwrqmsoqemqKqrqaSln5uknp2lp6ejnKuaoqyho5+voZyakqujta+uoKeanZWTpqKQmqKooJ+lnLGlpKixrbfIsrWqrKmWkZ2copmfpbOdmqGUnZ+nrK2ksJutqqOjqqGzraGqs7Ghmqinra60oZGUoqaXmpF8qWyehId1q3l8sG+CpYyJn5aWn5SB0ri0uMmBgbJfYJSpg6SJh6B6mJaaeKrJdJqklaipkZKajYGciprGxnlnoYKldIGfjoJ9r11wtGKwdUujhm2nR4KTZI+QnpF8cZmVgXF8dX58blxmanNxZoFrXmFZZG1cX1lJTUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKWinLK4rKqhpZqopKqrqqafpqWYqqOfrqudpaCsmp6ppZyntp6il5OoqrWyrJulnKCUj6WskZmcqKOgqqeuoaWnqbC1w7Kzqq2ok4qXnKWboaOvpZehlZmcpaatnLGer6mnn6yjt6yhsbivnZquprGysaOTlqaimZ6Ogp1OeJqBf596hKN9g6SFh6afnJ6ThLh7e3m5gn/MxsK2eJuhkIuffpqWl4p2npiKpZikqX+whZ2GoISsfZqVY6ZtpHCPhZCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Uk4x2e3OGgHFcbm54cmqBb1tkX2luYmReTExRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX11aWlpYVVNPSEA4ODIuLCouKyonJz9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq6fm6GssrOlnqCVpa2trqqnnKammqOnobOuoqmmsqCYqaSUo7aiopWXoam0uKOboZyiko+hsZmem6emoaKwrpylqKK2ssWxramtqZGHkJyonKKknKWXnpiamqakq5uwoq+lp5ivpLusoba1rZ2ctLG3r7Gll5yuoKOchY/RtcO3eYeOhZGTkICmeZShd4ygkYSlgYpxqoaFtG5yapmjnJWKnnyYmYaHj3Ovgqaco46mi5Odi5aQm25xsl2ldJN6nGyZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2NjpWOeX55kINuanlpenNvgHVeZWVvbWZnYEpbWFg8SEhAVTRARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtbWlhVUlJRRjoyMjMvLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWSc4yKrb6/vLq0npanpK21oaKZlKKopq6rq5imop+moKC2p6Oop7CjlKyjjqStop2Qmpqqs7OknKScqJGUl66fn56npJ2onbWaoqqktqzEsKmrqaGMhI6coqCmopWZmp2Zm5mmpaiZraivpKabraa9rJS9r6yeoa+yuKmypZqosKKnl3mokX18sHeKgKSliJxtsnChh618oY+Dp5WYgKyJha6Fn5SqoKGXhp+AmZWAe5J+q4Cdm5aLq3idoZKKlJKBeq9epIF9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWRppmDlo6Zjnx8hJmAa25/Y390boB6YGdmcW5oZ2hDWWFbPktVM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFSU1NWWl1fYWBhYWFeXVtaV1NQT05JNzA0Mi4qLEFUVlZWVFRVVFVVVFRVVFNUVldXWFZVVVFIRklKIygovZOag6jFwrbAs56arKCtuKWjjpukop+vsKqfpJ+drZmeuaCjq6CvqZmuoZCrqKOWiZqQrrCspp6lm6yXl4+soaCdpqGapZ2umKGop7epwa+lqaSei4COm5qfpp6SlJmblJuapqWmm6qsraSln6movqSWw6ypoqCrsriprKWesq2nqJd1r36Qi5yFh326rYqZZbCNZZWtfaCPg6aVmoGsioSwhaaapKGhkISgXGxqgbNgf617e4OBsW1nb5mZjIixW361XKSEa8iiZJ+Ae7xYdrVZsn1SroB6rFiAoW2YkKibjJiSmZl8epCff2V1fmOGeHSBfGFqZ3BtZ2VmT1VkXEFVXz5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFFSVFdaXmBgYGFiXl9cW1hVUE5KRkM1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9KfsrG3vbqzwbKinKympLWooIqaoJ6cs7Opn6OgnrWZoLSoqqyer62drJuVr6ehjoibjq+rqKahpZmukpiPqJmhnaWfmqOjpZmgoqqzqb2wpaienI59i5uWoaCYj5GanJKamKmgopqprqimpqKkqbueoMampKigqrS0q62lnrqsq6uUgKmSo6+Om3+HpJeZkIKAuMO6g46ckoSnl5yCrIqCr4innJumqpB+1b3CqmKjv719fqOCg9e6uLWFlZODnr2+hG2jgm+rhGycf3qysMeDaauwvax4d6K+vHOAlo6mnZGbkpqfe4KSnHtkfntlj2d5gnthbGVramNQYltTalw/VGFDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzc7PkFDRkdJS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbOzsL+4sbyyopyupqSypp2LmKXAqriyqKG/pqeynJ6xnLqon62vpaeUlLCrl4yDm5GupaKsoKOcqqCXi6OSpp2nnJqhqaOZn6Gsraq6rqijmpaSfIiZkaabko+RmJmPmJSpm6GZqqmhq6ego6q7nqjEop+toqmzs6muqJ+5pq2tmXN2qqW4hmSJoHBorpGKkG5ud6SQmZ+Bda6YlHCPi3GVqKObl66kcmxsbGaLeG9ugplxgXpqcWlnipeWmHFpaYWIZ3GGZF2IYmpvWVxmfXamX2FxjpFuZWV/jZOPoZiZmZOZoX6IkZZ3Z4h4aY9reYB5ZW1jZmxiS2VYSmxaOlBlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWVxeXl1cXFxdXl1eXVtbVVdeqZSss6m5uLKzqqmhrp2jsqmXkr+zxcq/t6qewKytpKKnrJ+6o6Suq62mjpeuqY+LhZWWrZ6mqqCdpKOgkYukkqeYqZqXo6qhlp2mpqewu6ysmpuSkXuElo2lmI2RkZmVjpiWqZagmKmjm7GmnaKruZ+vwaejsqWrr7CprKqmtaKstpWKoaimt52JlqOZh6qbkZWdkqmymZqjqqCylqKhnZ+inKGloZWrp42SkoyHk5ydlZGZk5mRj5WGgaWbmJaOi5SUjJCGhH1niX50gnVzh4pwp2x6lJGTkoGBjY+Qj52VopeamqSEiZaPc2qRd3GMeHd9emptZGNvZFVhWUBqXEhjYU9ZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVVlleYGFjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaWlxcXl9fYF5eXl9fYGBgX1lZYKaWqKqktLaurqGwo62foLWxkI6syL7Fu7mroqWenKefsamjtqedqbSmqJGYrKKLh4mPnKeVrKSfmKeenpKUo5aomqialKahpJCbqJmhtruoq5maj4x8gZSLoZSKlZGWkZCUmKaQoJuqn5y2o52mq7enrsCtoralrq+vq6iosbegrbuYkaWkpraikp6noI6qoI6Sn6Orr5qgo6+or5ijoJyjqp6enpyWq52TmaGblJCWq5qOmZmXkZafkomhnpaVhZKNkY6Vi4B9ZouFdYZ1eIeCc5xqhY+Uk5CJfIuVkpKYlKOTn5mkhYqaiXxzl3N7jIBzfH9qb2RecGpgW2BabmRQYGVQWjpHR0U+Mj0+OS8qJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1eX11eX19hYWJhYWFgYmJiZGJcW2OXlaOnoq+xq66jqaasn6e1qpCPnaW1vLCtraKjmnqeo7KkpbGpl5u5pqOTmaqcjoaKiZyij66eopWon6CSlpmbrouqlo+omamNmamPn7q3pKWZnIyIeYKUjJuTipWSlJGNkpejjZ+fqZ6fuKN/g6+1oq+udKO8orGfd3ifqLC5lHWso56JgKt/ZFxidqCPpZ+El31tkrOco6etqqJlnp+Sc3mal3CAmKiYbX+iqIplnKadkpiYlo2SnJKGnpuQloSSh4+PkomFd2qOhnaGcHuFf39gaIeKlJKLWnWUkGdokI9ze6icm2Z6momEeZlqhYyEb3qAa3JlX3ZxbGtoXGZmYmJwU1s+Tk5OU0c+QFVEOjEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVldYGhmZ1hQSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6Cur6yrqaWoraKnraSSlqu2sbOnm6unrJdzjJ2woKirp5SXuaCgj5yknZF/iYibnoysmqKVp6GdjpaSnoR1rY+Ip5upkZekiZy7tKigmZiLiXV3k42Wk4qUkZGUjZCUoY+coaeZnLKVgIybtZ2zjJKOuqagfqeieqGttYCOjaWeg4uGkLGqr4yKl6SbeoCLrIabnaGnqKeHlYWYd6WbeoecgZengoJ7nLJ6ioahmJqVmJaDkZeXhZuZYnqHkIWPkJKLg21wjoZ5gHB/gIR+hXOFhJWReJZnknSgmnV9mYWjoIiYf5SMhYWaa4+Ohmx4e3FxZ2R3b2psa1xla2pldFxeSVRMUkBFNi5aVVU3KSEwOT4+NzQzNTY4Ozo9Pj5AREk/SUVKTEdTWFtZW2FhaGZaUUg5REw7PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop+lrKyrqKygp6+mpqmlmZSvyL+xopeoqbaekISdrJynoqCNkL6emoyfmqCQfIaPmZeHrJyhlp+gkYyTiYaAkaeNh6OdpJSYnoaeurKonpqSjoVxdpCJlZCKlJCPm4yQkp+Sl6Gllp6rh5+0ibSarYrKh6msiLaFjbCBr6yCqIymmI2dfaiPcnt3nI+nl2iVpHm0jJ+epqeSmMKBf6uImKFynoCapX2XhZWygaF9oZShkJiXgY+UnIuZkot9hZOHjpaSiYNtco+FfnlxhoCDe4N0hICWgI/FZn+ph4+ja56FpJ2EmoGOj4eLmnGPlIVoeHV8eGhodnBoaGxeZHBsZmxYZ0ddUk0zRTQ2TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmlsXFFFPUtNQEpjWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqKfr6eoqKWrn6O3sKmrppqUoKOkq6SXpqu4o6+Aoaidpp6diZS9mZONoZKej3mElpaRh6uZm5yZoYSOi3ebnI+fkIiepJyWmpiHo7mupZqcjIx+Ym2Pi5OQjZCNjZiMkZKgj5ShoZmhp36hp4etnaCWrY+dnJyQhYCgjKmthaONqZmMmn+idYCZlGuCrXZNq3iHjZyRmqimgKmrfYOhe3qnap5/kmtnl4aXt4mefm5gZFmDl4CNe2Roi3KZfXmWbF19l21fUnCDXF9reIJfWGSBfIN/l3CnqmuDo25ypXCfhaBqZ6BtW2+MfWdaYISAYlhQb3dmbXRya2pvXWpxbWtpWGlPXVlGOUE1SERfbDUsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXV5idWBNRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5WdoLigqaOmrJGgtruqrqKZmKGipa2uoZ6vtaOokqGgoKecmo6ZtJmQi5+MlYt1gZSSjIqmlZWZnp5+koWFrKSHm5CKmamZmpuSiKaxp6KWmoiJgGluiIeLjo6Ki42SjJGTo42Un6CcoaR/k4GPoqGUoHaclY+ngqCmf4Wnq4OleIl8hJp+onBzlIiWfJ+NeW2Gm4yZj5uomY6HnXuConN2pmaefnekX5h6fZN0om6Yt7S6dJOIg4C1qGSBxrh7cJW2jHKAmqNic6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGGdmbOWcn2Yn7N1c1uesoNqYm90dnFpb1hrbXNyZl1pXmJMRT1ENlFCWnMzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1PUUBFX19bWlhgYHxkSEM4TVdVV2JhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOVlKO3mKqbk5+NpLa0rK2gmqKdpKOmrp2csq6sk5iimqGkmZqUnqubi4iSeIuFcYCWjoqQoY+SlJ2YfZCJjaigh5eOiZKklJybjYupqKWekJaHhX5qe4d+fZCNg4uRkYmQlKGDl56gnaCei4l3nJiijZ9xoYqHqYebpY6Upql9rYx+eqCZeqOTeIF0loiNnH2Wn4abjpibpYWiZKF8iJaQm41tnmibjm+amXqAi6d9cml0q4Ofg3SqaJWaXZuFdoWeZ6prgLhmXKhwgZxglYxep3Z1h4h+nmiadYaTkpeOgJ9vmpFup5pdqX95u2t+qlyOhF20Z1xucnp4a2lccWt5eWNgZlhiQlFGTzdXQ1JvNUtbWl9OWkRBMjUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4mptJqniGOUm6u5sa+snqacnKmgn6+cnrGprZ6XpJuhoJmWlqCjmYaJjWqIgHJ7l4iMlpaEkZWYkHqKhJWjnIqUj4aMn5KdnYmQqaOgmoySioGAaYGGeX+XjHuJjo6IkJebf5Sjn6Chk5hyaJ+Jn4+LcJKMgKmHmJ6hpZ6me7Cto6K4l3ejs6OkgIiUeZ17q5l+oo6cmpaIl3GhfIWNr7V9a5qRoXl+mLWipKuohJl8m32em390qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJqcXuObICIhJl1m3iGibGzf4Cbk6d3g55uc32VcJp0a6RdlXZIZWRgdHF+fm9mYGxpdnxkZWJRX1ddVFdAWkZRaERTV1xiWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQjxVX2JaZWlWZ2htb2JmZ15hYVxdXmBoYl9lY3ZtXWVnZmtkZmxpaGtpk5yAsK2ZhFNeoKazubKyqJqijJysnJyqlKKspKOoj6CenZuZlpihnZaIh4l3hoFveZWFkZuLfJGTlohygIiSoZxzkZCBiZqVoZuFj6mcm5WLi4t8g2yEhXGCoYx4ho2IiJOZlnyTpKCeooithn21hI6enHullnqpgZWbj4mfm3ynaHdtfpl0oXNyfJ2GmXCTg659pIOlnZmAo29eqGd1omNvpWGc05B9e5l4c3NiooaQfqN0pJB2a4+zjGCCmIlzqrKovH93g21+v6aptF2cbXxwlm1/cqJyXaRnc6ZgaKZtm9SafoabcHl7l2ycfHiXc26ppGdgZXpxgIVsaGZkbnZ4Z2BjU1xmUVFiSFhKVWFXVFtlalxlUUZDS01KS0JLRThPQFFOWFNZT1NRYGZmalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaWV8ZF5kZ2RrZGptZ2hsaJeaf6+qVFxLfqmvsbOvsqObmYWZqaChpI6mqaGZqoqamJiTmZOSoZiOh4V7cH2EaH2Pg5SagXeRjo+Jb3+Gj5OSbJeTfImSk6WXg4+rm5STi4aJeYN2h4Bugp+GeIGShoiZo5h7lKOkmZ+Js6Gitot6rKekrqVwqYCajoWAmpB7pIChmYaYcp6EpK6vipeMgI2kjZWCraCTdrW2tcmhc5SLgZ9gnZepbXqVh6CbdKKId6B+k5eLgXBNZqOScJqHc6R7eXRhg4FrfaBrcWRfnHF9c5ZoeWmztbTGpnOYfXqda5ybq3aFm212eJhqmnt1mHJRRX2zX2p2a3qIZmtoY3V1cW5XX1RZaVBTaElWTVlUVl1oa25WZ1dOS0FKTUtISk9BUUtQZWNqbWV0cnN/eXxudYl7e1RQTmxeaVxraVJqaGlsaGxmY2VgXF1dXmliZGlre19dZGhjamZubWVpbGWhm4iupYNkP5Ohsqqur7WiopCAl6qio6WMpaeenaaDmpeWjpeQj5yTjoiDemp5h2WDjX+YoHl1j4mMgWmEhZKDjIWdjXmNi5amk4OYqpiNkouBiXqAfYt5cJChhnqClYeJlqCWf5SlqJyVlYNmbnicbKJke3Gld5uYcGemgJWKeqR6n5aDl3Ked4GKlZePuW6RiqJifZiglYhtcmmqa3WgbW+mX5ppi5BploeblnWigX6aYIyGjXVwiGJooGWefmmbdW9jZoiBbXGiWl5bYqFtXYiLbnp9c3JkpW14omRnp2iZc4yZcKJvVYmQb6BfZqhUi15UmG5tc2tygm1waWx5dGtwUllXV2ZaVG1JWU9dSVhpaXNqWWtWUVJGVlxMWFNhVWlrX3d0e31wfHxyg3uAc3aNgIR2XlFyYmdjcGdQamhoa2xuaGRnX11eXWBqYmppdnVdXGNoY2pqc21ma21jnKOXpXlkc22Lpq2jqbCxpp+LgJirnZ+mjKOim6OigZaYk46akIuYkI6Ke4dxgIhpi4t8mJtzdYl9kHtkg4eVioqVmYJ8iIeXqJGBo6yQhpGLgop+gICOc2mQpoR9h5SNiJmgj4iTqaadiKZ4lZt+pIiWi7GYnZCCr5eepXaUhnipc6WPhJpupKKMkoSNg7tufaWvgoaFhpOVnJ98pXpyqJWglmaefm+sZJaKlpN3qG2qooGJdomDd6uRpohrkbBrdrOMqWuKhW1tn56SlWB+q4uqdn5+i6Wedp98g6SVnaBqm4h4rGierYy2dHe+jaSTWoOnjqthdXJ0cHx1cWNrf29pbVNXW1ZhYl1rTV1SXUpebW53X1txWVxgW2d0ZW5vcmNydGB3en55cnmDc4R/gXt7jIGCgHZieGRjbnJkUmtnaG9scmpmaWFgXlxha2JtbHpvXFxiaWJtanhtZ2xuYpWkqZyBf52jlqmpnaimrqSZioKYrJqfpYqbpp2pnYWMmo+GnJGFko2MjXSHe4iEb42FfpiTdHSGcpGCbX+LkYeGk459e4KGmKaOf6anjoGOiYWVdoKHkm9si6mBg4yUjomdn4mMlKqin4+AdZSXiH6BeZSuon+Bm3GPhneOiYJ9e3KnjHF9fXqYlpuEj3l7f36HlJWTinaQmJ6gg3t9iWuMhVt5eXJ6cWlufpKJcYB1gY+Uk3GHhIJljH9fgX+Ld3RylHVveW5th2yEhV51Z3eOZYCAhY2omn10e5VqiYhwgXZ9h3dubmiMc3p8mHiFXGxYeY9pb3hycW94eHBda4duamdWW2BXXWZrZFZjVV9RX3B4eWxrdmZra2t3fXJydXRhb3ZidHuCeHV6gnWAgICBeIuFg317bn9sZHluXlduZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhsb2GNk7eopomgopqmo5iknKuioYSEmK2SnqGJm6ebqZiDgZuLf5aUh46KiY1yg3yPfX6PhXuYj3RyhHCVhXt9kouGho+EeX6Ah5qljnyooYuGkJCFlYOGjph3coSpho6SnZCJn56IjJunn5+qg4iOlZp+fomWraePkaaPd2+bj4F4kG5+qIVwfZVxa3B9gaCNgJOOi2hsXIKLi5uano5zlYuIcXRrgXZ0gVlyboeRgX5/jGpdamR7hoSJgGBpeHqae4KKgXWBhYFnd4qGamFwcYF0XnGKgYiOpZSFZYuNg253i4Rxho96cWhoZXyEe5ZbXGtobnZbfHl4dW5zc4NnXG2La2tiWlpfW1lscVxfYVpfXWV0f3t1cHRka2trfH1zfHl1ZG51aG18fnd6fHt5eoCAfm+GioR7fXR+eXN/aFRccWlsdnB1Z2toZF1hWGtoa2txcm5XW2VubGdzem9oam1gi4qpsKGPoqGanp2Xnpioo6J+g5mujqCViJyikaWVf3uYhX2SmYmJhoeKc36BjHaFjIKEl4pyb4BymIaDfpKDhIaJgHqBhIycoZGDp6KIeY6XiZWLi5yXhIN6rYKRmJqVip6dh4ihqp+hoqOLh5ObnKOZlaqhp6afkpqHlYx6do2Ng6d+f5KQk5SdsqablZ+QjbGSl4OljIyVmp+JkJuCiJGKa3yOd3hlg4eRi3yJnoSHjJCJiIGFhJB3fHp0maCIhomdiYSTfn2KgIB1b3KEgn53hoaKj6WQgoWMhoKMkIx9iIyKkYR6bYOFfnqZa3NpYXSKcX56d3dvd3SCXV5vh2huX15aXV1TaHJWZF1dYmxodXx8c29wZGtqaYB9bnmAcmpwcWxngXtygoB4f31/hHttgoyGfHp5e316g3hOY3Zqc25wemVrZWNiYFt0ZnBncnFtVV1sdG1oeXpxZ2lrZIyHnLmelqGgmJSYmZSYpKCefH+arI+fjoagnYueln15lIN7jpmKhoOEh255gYFzgYh+iZSEbWt+epeHhIOQf4CHhIV8h4WPnJ+Th6ughHOLkIaSkYudkX2Ne6qEjpOYlo+cloeHnKWfopqdhYKSmpmYj5mmn6WdnI+Vf4+IdXuGjYSle3yOkJGGmauhnpSdkI6pjZCAnYyIk5mego+XfoaOg294hnF1YH+EkIZ1jZmBg5CDh4V/hYSVbnl2dJKhiouFmoOEjHN/iXt8cnF6h4N6d4mOg5Gmj4WDjoCDiomKd4aJi4x+cW1/gnxvaGxtaF96f2h+fHZ1dnV7eFxfcX5udGBjW11fUmduVGVbXmJraXZ5f3FsbWRramiBf2x0gWxsdW96cIZ5boeAdoKAfoV2cYKNiH57e3x/e4KKYGh7anVoaYJkamNgaVxjdWhvYnVtbFVjcXllcHp7c2VqbW2LiZ62maCjn5KRlZiLmp6fnnt4n6eRnIuHpZWLmJl5eo2FfImRhIyCgoNufIB5c4GFfouRfWtofYKXiYGIjnx+hoSGfI+CkJ2dk4monYBwjIuMkoagoYqFjHyokYiQkpeTlpN4jaOfoJ2WmX+AkJqYkoyaoqCjmZeQmn2Mg3d/go6GoH9+jIyPfJikoaKTmpGQpoyPgZqRiZKXm36Tkn6HjoF1c4Jwd2F+gI6GcouWfYiMcox/goWGj2h4cniLmJGPf5Z9iIpxgYZ7fHB3eoqDeXmPjIKUpJKLhY97hYaHhHaDhImJfGdzfYB5e3Fta2dffnNofHV2dHxzgGpeYHR2cHdkY1lfX1JraVVlWWBhaGp2eYJxZ2tkbGhmgIBrbn5ob3FsfnmHemyMgXOBgX6BdHaCjYZ/fHp/gX1/j2lyg250aWGHaGxiX3FWdG9tbWB4aG1XanR2Y3V6e3Jiam96iYyesZGlpJyOj5ePhpygm519d6WhjpiAjaOLiJqWeXuGh36DiX+JgoF/cn97dHaDhX6KkXhnY36Gl4qCiox5fYCNg3mWgpaZmI6XoZx+cIyCkZOGpZuHjImDppWFk4uWmJOSd5GdoKGXlJZ5fo6Xl42WmpyjnZiSlJp4jYSCd4OVjZ1+gYmNjHOXo5+ilJmPj6KMioKWl4OSlpl+mI18iI2BdnF9bntkgHyLhXGHk4CRgmyHg4GAiYVmdW97hZGXi3ySd4uIe3+Fe3pxfXeIhHmDj4iKl6GVgYOLdoiEg4J3fIOKh3hgenl+dH94Z21lYX9qandzdHZ+cXxjY2BzbnVybWFaYV5bbGVSY1lhYWhrdnmGcWNrY21maHyDbWl1aG5waYB9gnltkIZygIODf3R8g4yBgH16goN+fJBtdolzdW1limxqYmJ2VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPm62XpqeejYyXh4afk5eZfniqnYuZepedi4yYkHl8gYx+fIR8gYOBeHR5enR9gISAiYuAZF99i5WHfoSGdX1+i399mIaXlZiNpKKZf3KHe5ORiaaPjI6Kk6CRg5KQlZeRi4GPmJ+akZCQc3+NkZOJnZ2eppeXjJSVcouMiWuEl4+ZeoeIj4lvl52apJSVi4yei4aBkZx/kpKVhpmIe4qKgXlxeWt1bHx/i35uhpODlXhxgoR+fouAZXJpe3+Wl4N+jXOPh4N4hnx1d398hH97gouDi5Ojj3iDgXSJh32AdHaCiYVwYXx2e3J9cGJvY2R8Y25wdnN4d3N0YnZgb2x2bm9cXF9eXmpeUF1ZY2FobnR7iWtgaWVrY2l3h25nbGlrbWiBfXt3b5CIc4CEhH10gYaJe4N9eoGEfX2OcnqLeHhtbIdqaF9pcmOHZ3FvZXdnbmxheWlrfXt4cGF4bYuAmJipn6OonYqKkoWKnYuVmH54r5mNl32flJGXk4h3fnuKfXyAd3iAgHB1dHxvhn2BgYp/fGFcfo+Rhn+Dg3N7gId6j5KJk5Kdk6acloJ9gX2OipGjiI6KjZiajYaSmZSWjoqIjJKcko+MjG6EkI+RiJ6ZoqCWlYmWkG2HmINlhZiOk3qJhJCKcJaalKOTkomLmYyBf5CdfZKOkoyZjnuKhYdzc3ZrcG51fIp0boaRj5NxdYF8gYGIfGVwbHl8mZN8g4h0kImAc4d4bn98gIV7hIuHgouUp4x6hnt+ioV3fnFwgYeEZWh5dXZxfGJfcGFrdF9xant5eWxzcGV5Xm5sc21yWFtfYGFrW1BXWGVjZ3Fxf4dmXWlpZ2JncY1vZGloZWlpgXp3dW+OhXSBgoN7dYKIhXiFfHiEhXp/iXd/i3t7cniDamtfcGh0gGtyb21yZ29sZXxjboB6d3Fsd3eKfqKXoaegppuHi4uBj5yHk512gquVk46HoY2WlI9/c3x2hXh5f3Nze4Zrc3B6bot2gIGIb3FbWX6RjYeAf392dYCAgKCHkouUnpiilZh4in+BjYicnYqPhpKYloWJlZqQl4uLjI2MnImOkINtiYuQkYqdlqGbl5SFl4dpg6KBZYSciZB+i4OLgXeTmJKfk5GJiZSNfn2Ol3uRjI+OmpJ8ioCCb3ZwbG1vcHuGaXSDj5mLcXeAdYKIg3lmcm51gJmOe4eDeZOQeXWHc2+HeoSKeYqFgoeNmqKGe4N1got/d3lubIGFg15zdXNxcXlaX3FhcGtecGp9e3FtbWptdmBwb2txbVlZYmFiblhRVFpmZ2N1cISCYl1rbmRjZmuSbmBnZ19oa4F1cnNwi4B1f4OAeHWAi4B5hX94h4Z3g4V8hot/e3aKf2pxY3xjhnxucW10amhvbHZ4X3F/eXx1dXSAg36klZqsnqeWhY2Ef5eUg5CgdoyglJOGi5uNlo6LeXF4dIJwcoV0cXaIbHBudm2IdoN+gG5uVVGBq5SHg3h/d3KDeoOggpOClZSZnJObeJJ7g4ySo5mTjomVmZKEh5eZjJSLiY+Ph52EkIp8c4uFio6InJqfm5WTf5N9aISbhmeFn4eRhJGCiXGDkZiQm4+PjIyPjHd7kZB6jouMkZaMfIh8gGt2am5rbGx7f2J6fo+XgXZ7gXiDjH15Z3Nsc4aVi32HhXqTj3B5g292i3mIinmIfIGLj52dhHt6doKLfHdxamyChHtgeHFubXJ0Vl9wYnJhYG1venFob2Zmc3RpcWtid2VdV2ZgYHJTUU9cZmVdeXCIfGBcaXJiYmVmkWpfaGVbZ3B+cGtxdIp9dnyGgHV1fox5e4WBeIiDc4aFfoyMhHx5lXhmcmuDYIh9b29remBqbnV/dV90fXmGeHRzhX14oI+ZsJuljoKLf4OZh4CMn4CLmpSPhYiYj4+PhHZ0d3SAcXCFdHByhHBraXdug259fW11c1JNgt/IktaTe3B1hHaEoIOUd5aRmZ2RmXuUc4WQnqGTk5CJk5yUhn+XloiNjYiSjYibf46Ad3qNfomMipybnJqUknmMdWaHkIVrh6KEkYiXg4ZjjJGZj5WLl4yMiotxepSIe46IipKRiXmFfH9se2VzcGtsenpbgXmQkIF6fn+Aho57emhyanOKjomBhIR8lIprfX5tf4t9ioV8g3iAjpSZmYp8dXeDj3hybWdxgIVua3VwaGp1blNfb2VwWmBscnhna2piZnhycHBjYHdgYFZrX152UE5MYWdiXXpxiXVdXGV2YWJlZY5kYWdiWWlzc25rcXaMfHR6hoJ1dn6Lc4CGf3uJf3KJiIGRi4h8fph2ZXNufGWIfm9wbIBZbG55eXNgdnp7jXZyd4p3eZ6Lm66aoJCChXeIlX58ip6IhqCSj4WMmISTjoeBdHhweXFvhG9tb39zZWV5cX1ten1qaGtjpJrB3K7woXNsdoR2haOGk3CXkZahlZyBknKGi6KXiY2VipCdloOBlpCFiY+AkYqJln6HenV/iXiHhI6cmpiYjo92iXRthYiJfImig5GJnISFXouTl4uPiY+Li4SJbXuWgX2IhYmRj4Z2hX1+a31keHVqbnlzWIl7koiFen6BgYaMf3llcml/iY2JgYJ+i5WEa4F1bYaPgY6DfYF4fo+UkpiPdHJ3h4x1c3FndnqEY3VucWNqdmhSYXFnbFZfb3R6YXJkYGl9cHJuW2NyYGJWbllceE5NTGRmYl53c4luXFxkeV5fZWWFYGNjX1lqc2tua3N3jH10d4SBeHd7iXGDhH1+iHt0i4mIloaMf36Xc2d1cnlsjHtudHGBV3F6dnlyZXd5h41pdoCJcn+chpimm6OShH1xjJR3eYyehYWhjY98lo2AmYiEe3N3cHRqcIFsaW18dV9heHd8cXV8aGBkfOvatcnD3IdzbHSCd4ubiY9qmZGQnpaUgYlxhYifjYSLlYqMmJR8jZOIg4mPe5CLhY+Bf3Z4g4RyiIKTnJaUl4WMdYZ+b4OBh4aYoYKTjJ6DiWGDlI+HioaJjYeBh2l8k399g4SJjo2CcYZ+f3F3aHZyaXR3bFqNfZODhX2AhIGEioJ2YXJriICOiYF+fpGQfW2Ba3eEjYSQgnuAfH6PkY+ViG5weYyFdGtxbHN5gmF1am9dbHdhUmVyaWZTYHB2dWFwYF1og3FzaldnaGJpWG1WW3VMS0xlZ15ic3OFalxcZXleXmRne2FkX11Za29mb2p0eIp+c3OBfnt2eohzhYN8f4d2d4qGj5mBjIJ7k3Vsd3Z5eJN0bnh7fVh6hnGAb2d5d5KDZHaGhXCKloWZoJqiiod0b5KMcXePnH6LmomJfKB/hJmAgXhydG5vZHJ/aWZteHhcYHl7e3FxgGphZ2F/1baOkaZ4bnF3fHGTkY2Ia5qPiZ2TjIZ7aYeLmYaBkpGGh5iOfI2NgYGKjXyPjH2JhHp0eoN7cYaAlpqOk5OBiHSChXSCf4mRnJ2GlI+ffohif5OHhYiEio2AgINnfJCAfn+CjI+Qfm2DfIJ0a213dXR3dmxjjoGPgIV+fYZ/hIl/cF9xb4R7jouBe36QiHlwg2V5gYmFioF6hHx+ko2PkYNtbnmLfnVtbmtse39kaWxqWW53WlNqc2liUWNyeG1jZl5aaoNuc2JbZ19kbF9uVVtwT0hPZ2VcZ29xgG1aXGNzYFxjbHdlZV1dWmtsY21qc3eGf3Fwf3x9dHiGeIWCfICHdXmJgZKVfImGdoiBcHh5e4STb257gXdeg4B0gm1penSUc2dziHxxkpGDmZ6boIaIdnaUf213lJh/iJCEi46afYyadn52cXBsamF1fGdianV6W2B4fHptcX9lY2hnV52PX3FzlrzEhHdxlIqQgHSYjIedlI2Ic2uIj5WAe5SLgYSbjHyKhn18iYx/k4d0iYV2dn2CcXWGgZ6VhpSPgoJxfodzg3qIlpuWhpKNnICIZn2TgoCGg4mJcoF9Z32Le3l/f4eLj31pgHyDdmZveXhzd3Rsa4+Gi4KLf3mDgYSEgGtecHd6fYuHhHuAjn9+coBoeIGGiYSCd4J6f5aLjot8bWt6iHx2dG9paH53ZV1xY1hwdFNUb3NpYk5odXlnYV5dWG+Ab3RZZGFdam1gcE9ZbFJEVGhiWmxvbXtvWVtebWNaY293ZGdcXWBramNsaXN3gYNxbn57f3R1g3qEgnyChXZ+iYGWkXiDinSBiHN5eX6NkG9ve4FxaYJ5en5ubXx2lmtqeIR0a5OMhZ6YoJmFiG9+jHZqeZmPgIKKgpaYinqPlm96c3FsamRgdHtpYGZye1thc316Z3B6YWVkjrGyd0tiWqXa0Zdye5KMkXl/loyFmpKNhm9shZKReXmThoCEmYp8h4B5eImKhJWAb4qHcXR9e2p5hoOlkYSTjIJ+bn6CdYJ3hJqXkoqTj5SFh3B6koR+g4OJg2+BeGiAhXhyf3+Diod8ZXx+g3ZjcHOAaXlxb3WZjYaEi3x3eYCEeoJrXG98cn+Hg4h9hYd6iHGAbXCChY2Cg3GDd3+Yi42Dd21tfoN/dnplaGp+cmFaeFpZcm5OWHJ0ZmBLbXd1Yl5cW1l1fXJwV2ZdZmpxX29OV2lTP1lnX1twa2d5cVtbWWtlWWNweV9oXV5lbGhmbGlxeH+Hb21/fYF1cIJ7gIF/g392gYWJl4pxgo1xe4Z8enmElIx1a3p/a29+dH99b3J8e5Rwb4B/eWaSiYKhmJ2Rg4Znh4RwZ3qXin6AhYKZioF8jY1peHJsbGZfYW95bWBib3lcZGyDemFxdl9kZdXrvosyOj6LjoByeYaJj413hZmOf5SPjX9ubYWMi3V9j3+FgpWJfIN4bnaHhYKWd26HhGt1e3RleYOEp4yDj4yDfW1/c3WCeISaj4uPkZKMi4Z+e5KHeICFjYNsgHJpf354bXx7gYqDeGJ5hIJxZHFofm51cnWCnIyBgIZ/dHZ+gHOBb1trfXN4iIGKe4Z/fIh3eXBrh4KOgolxgHd9lImKfXRtanaAgHV1XGlpeXFaV31TWnJmTVtzcmZcSnF4cF1bW1pddX91aVliW2dlbmJpTVdmUT1eZl1edmZfdXFbWVVvZFpkcHlbaF5gZ21namtocHh9jm1qgYR/eW6Be32Bf4J6dYKBjJOFcICLbnd9gHt7iJOJgGl7fmp0fHKGe3N3fX+MeniEfnxrjIyDm52WjIKBbI1+a2h/j458fn+DlIJ/fYqIa3VxZ2ljW2Nnc29gYWx0YWhwiXphc3ReYmOboJBuXDVar7V1aoCKfpOHd4iYh3WQjIp3cG2FgoZ0eYl4iX2TiHp+c2d1iH59l29xhn1odnluZXqJhaWHgIeNiX1tfXR+f3uKl4aBkpCYiIuEiXyPiXJ8foV8aX5ta4B7eWp6doKHgHJgd4F+cWRyZ3WCbnV7hpWSgn2CgHB3enx1fm1XbX11c4p/hnaGdIKJendybYh/jn+DcX17fJGHiHptbWhtgoF1bl1oZnRyUlx8TlxxXU9cc3BkVktzeWpYWVlaYXGBdWFdXWBmZGhoZk5aaE5BYWRcYHZhXHVtWFhTdGFbZW9yV2pfYmhrZ21saXB3fJNsaISJfXxwf357gX+CeneAgImLhHJ7h29xd4R/e4mNj4RqfntueHl3ind9eICCh3+Efn56bYSMiJijjYWEe3aLemtthYmSeX17gpKAgH2KhHBycGNmXllnX3BwYGFocGZqb4l0YXRvW2BkanZ7f76cp6TJuHKFhHOUfXmIlIR0ko2HcnNwhHqCc3WGdIh3lIl5eXFkd4Z6gJJocYR1Znd2ZGp8hIiegoB/jo59cX5yg3h+kI6Cd5WMlI+Igoh6iYlseXp/dWh6aWx/eXNpenaAg31oYHiHfWpqdGh7gGp2gY2RlX98fn5xfHZ8dH5iVXV7cXKIgoJ7gXCGiXd4b2+CgYt9fHd8e3ONhIF1aHBnbIiCcnBdaGN0b0xmdkxeb1ZUWnRuYlFPdHliUlhYXWFwgnNbYV1oZWVjamRRW3FJRGRiXGRxXlx4aFVXVndeXGZuaFZsXmFqZ2Vubmhwd3qTbmmIjHl9c3t+eYKBgnx2fYOIhoNwdoNzbneCgn6Ii5R/cYB8eHp6gYt0g3h/gYGChHqAdW99iYubnoh+hnt3hntndYeNkXp/gHyJhoR2j4BncG5gZVxYZlltc2FhYXFsbGiJbmBzaVheY22Ad6naqceGiLNyinlwjnZ9iJCBe5SLgHV0dX52f29wf22FdJSGeHRsYHmBeYiOZXGDb2d1blttfYGQk4CBeZKSfXd6bIV0f4+Kg3KViZGPh4WFe3+GbXV2f21od2ZtfHZtand2f398YGJ4hnpodXZjfntodYaPjpZ9dYB2coB6fW2AWVZyfW9zgoZ+f3driIZzeGp0f4KCfHl7d3pxin97cmdzZG2LhGxzW2pfdmZJb29MW2NYV1Z5bWJQU3V3WVFWWF5gcoRvXGBjbWRjXW9jVF1yR0JmX15maV1ae2NSVlx1W1tna2FWa2BgbmZmbHFocHZ4jnRrjox1f3Z4fXeBg4F7dH6DiIiDb3F/dXF1fYWBiY2Le3d/eIR8fYWHeId8fYF+hYB7fnJ2eIuOn4yJe4p3dYN6Xn6Hmo15h4R0hoeEd4l7Ym5tXGJbW2FVanRkYFtob3Bnh3FhcWZXXGNrf3zKzoe6omtub4ttcoRyfoaLf3uShXp5dHl1dHpqbHZjhHaSgnZvZ198gXmLiGVxgGpqcWNYbXuGnImDgnKXk3d9e22Gb4CJioZwlo6QiIaMhHt5f3JycH5naHJjbXhxamxxd318eV1leYB3aXV4ZoJ3aHWHjI6VfXOHam9+gHhufV1XcH1tc36Je4Btbop/cHZmdn5/foB1e3B5c4V7eHFlcmBti4FrclhrX3hdSXBsTldWX1RVfGtiT1R2c1JSVVdeYnSGaV1ga2pmYlluYVhjcEdBaF1hZl9cVnxeT1ZlcVlbamhdWGhhX3JmamhxZ3FzdoZ5bpWKdH97d355g4eAdXN/hYWOg3Bwe3h3dXmGhYeMhnp8f3WLfn2GhISHf35/fYd/fHh2eXaRk59+jX2LbnWAemSEiJiGdJKKb4WFgnqDdWNuallfW11dVWhzZWBZZHJyZ4FyYWtkV1pfaX94vq56n7huYnSHaXV8cnqEh3t+jYB3eHJ3b3p2ZWpvYYd1joFzamJefXd4ioJlcH1oa2taVm94i6SBhX9wmZJxf3d0gGx/gI+GcpOHjIiFiYV9eXVzb2l5YWptYW12amdra3l3endbZ318eGVyfW6EdGZ1ho2GloBwi2dre4N0bHViW256anN6inuAZXSHfG1wZ3R9dnx+cHpqeXqAeHZvZWxhbIl9bG5WamF4VktrbE9ST2lOWX1oYk9VdmxNUVRVXmZ2hGddYXFoZ2FXaVxca2lKRWtaYmVXWFV5Wk5XbmpZXWxlXVplY150ZmxlcWZzcHSBeHCZhXZ/f3h/fIWHfXVzgod/lYNuc3l7e3NyhYaIiIR5gX12j399hImOhIGDe36Lg3t3fHd2mp2XeoqDh2p2fn1shIaVgXKPgnGFgn6CgG9mbGdYXVtcW1RlcGVfWGNydWl2cGRlYldbW2h/cG9ygHOKZWZ6f2p1d3R0hIV4gYV6d3R1bmt6cGFoa2eGdI2EbmZeX3xveol9aG13ZmpkVldzcI6nfYR8dpaQc3txe3hseXqPg3WXfIeGg4eEfXVxc21odV1taWBtdWRnZml6b3tyWWeBdnVocIB4gnZid4WLfJWCb4xrbXuBcWZzZWBreGZxdYl6fWF1g3Vpa3F0eW94d3J7ZX19fnd1bmJlYGyGfG1rVmpjclRMamtQTE9wSF58ZmFOVnVlSk9TWGFrd35mXWdzaWVfV2NXYnFdS0trWGRiVVRVc1ZNWXZlWl9sYFxbY2Vfd2dtYnBpdG9xfnV0mYF3f4B4gH+GhHp9doKDfpiFbnJ0fHt0cYWFjoGAeot1dJCAfYGUjoCFhH1+jIZ6foF2e6OlinmJhoVsdXx8dYSDjXtvhXN6hX2Cg3VuamllVl1bW1pTY25lW1hidHtqaW1oYGFXXlppgGlsb4BnbWJpe3prdHV1b4aCeoF+dnVuemhqeWpfZW5ogXeQhGhlWGF2aX2GeW5pb2ZnXVVYb2mPqHeBenyQjnh0bn1tcXR4jX53lHSFg4CFiXZqc3ZoaW9cbWVebnNfZ2JqeGh7bVttg3J0am+Afnl3YXeFhHiQhnOIcnB6f3JjcWhbbXZkb3KHendhcoBvZ2l4c3Frd3ZzdWKCen12dW9jYmJtfHxra1VpYmdUTG5oUEhSbEVheWZiTVRyXkpNVVllbHh7Zl9tcGpjXVZgVW9uV0pTaFhnXlhNVWxUS116X1xfbF1dW2JlYHpobGFvb3Zub3d1eph9d4CBeYCAh4Z6eXqDfYGThHF0dH56dnSFiJB+gX2QbHOVgXuCn4V/h32AfoaCgIp7dYSsn396iIiEbHKCenaBgYJ1bodvfYB0ioBqb25lZFhfWlpaVWJqZ1xaX3WCaV5tbFxhV1tca4FlcXV9aWpebXh3aHV4c26HfH5+enZzbHpnaXdnXWRzZ3p3koFjY1Rkb2aBhHZ2ZmhqYVdWWWhjkKhvf3d/io56cG97ZndteYp6do5xg31/f4duZHd0ZWhpXWxiXnBwW2dfbXVlemhddIBucmtxe351dWJ1hox7iIiAf3hydX50YXBsWHByYW9wg3p0Y3GAa2Bsem5paHl3c3Bkg3R4eHRwZGBjbXJ9amxUaV5fVUx1Y1FHV2JHY3dmYUxUcFlLTFhYaGx2emVkbXFmY1pYXVh2ZlRKXGNYaVhYSFdlUUljeFtdX21bXlxiY15/aWpgbnR4bW9udoOXeXKBgH1/iYyGfnV2hniGjH10dXWCeXp6goyOfX6FiWp0loF7ip19foV5gHt+fIaJc3GProx7e4eQfmZxiHp0fn12cm+GbHx+bZB6Y3BwYmVdZVZaWVdjZmtgXV1zhmhZcW5bXlhaXGx7YnF3dmxjXG50dWh1d3FuhXl/gXp3b290ZWh0ZVtndWZ2dpJ6X11TZWVqgoFzfGFjaVxUV15iZJClaXl0goWQeGxteWZ3bHuDeXSHcoB4fHmAaWV3bWBnYV9rYF51a1lmXW9vYnplW3d8a25ucHh5dHVlc4OTf4iDiXp2b3J9cmF4Y1pub2BvcIB6c2VxgGRebXVoY2Z4enJrbYBzcntxcWFeZW1ufWRpVGhZWlVOeV9SSlpZSGN1ZGFKVG1VSkxaV2lscntkbGxzYmFZWlthdlxUS2NdWWpTVkdZYU5IanZYX2FuW1tfYmNdhWloYm53eW1vanaBkHhtg36AgpKIhIF2dYl0jIZ0cXZ2gXd9fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OHhHNwmaJ6e4CJlXlldYh6c3l3bHRwf2x5fHCSc15wb2FnYmxUW1pXaWRtZlxccYllU3JuW1lYV2BsdmRqdWpqX1tudHJtdHR1a4Z9f4B9d29ubGRpcGNba3JkdHaOc1xXVGRgcX9+cYFcYmNeU1phXGSTn2VycYWDkHNranhsbm55eXpxgHZ/c3t6e2RmdmheY1thaFxed2hXYl5waGF3YVt8dmpqcm94dHN0aXGClYOHf4V2c2pwfG1md1dbaWxhcHF/eHNlb35aYHBwYV5pb3xranJ9cW92aW9gW2RrbHthZlRnVVhTUXdcUlBZUkhkc2JgR1ZrUUlQWlVrbGt8ZW1vcmFbWlhZbHBXU1BmV1dpU1RGWlxPSXN1WGBjbmNYYWFiXYxqY2Vtenlsbml2eYZ6a4R9gIWZfIKEeX2IbY+GcW92en10goJ9i4+Dgpd0eIKUhYGfiXWBf4F0f4Jwh4N2b6KXc3uGi4d7ZneLb258cGd4cXtsc3ZzjWtedG9iZ2VrU15cVmhibGxbXHGNZE5vbVxWV1VnaXRoY3RlZV5acHZvcXZ2emyIfYB9iHeQc2Nka29hXG5tY3N4h2taVFZiY3d8fHCEXGNfY1RaYFpjl5VjbnCChYlyaWZ5bmRydXF6a3l0dW97f3ZfZ3NkXF9XYmRZYXVlVV9gbWRhcV1dfm9oaXNxdHB1dmxthZSCiXyFcXJnbnxvcW9SWmVpZHByf3VzYmx1VWJxaltebmR7ZGt0fHFxcWlsX1hkaWp4XmZVZFVXUVZvWFFXVFBIZXJfYUZYa09JWFRWbmlkfGlreGthV1xVW3RkU1JWaFFZZ1RTSFpbUE55d1tfZW1qWmJgX16PbmFna3l2bm5pdnZ/fm2EgH6Gl3t/h4GKf2uTiHJndIB7dYCDfomOf4uTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYt3eG56jWBlfXFnenR5bG1xd4NnZHxtY2dnaFNgX1VnYGxvXF5ujmhNaWxgVVZTb2Zza2Z4ZWVdWnJ2bnN7eXNuiXuAd5x7emthZWxtXmBuamVweX5nWlZYX2x4e3pvg19iXmdWWWBYZJyIYmtwgYZ8d2tqdmxbdXBqeWl1cm5vfIFzWGtvYFleVmNkWGVxY1RfYmlhYmxaYH5rZmxzdW9teHZsaIaMf4l7iG1xZnB7bHFsYVhfZ2ducn9zcl5pbFNlcGRVYm1heGFvdHp0aW5ral5XYGZodVxkVmJWVE9ZZ1NPXU9QSGVwXWNHWmpOSmBLWG1lX3hobn5kYFVeVF11W1RSYGdOXmJVU0pcWlFadnZdX2ZtaFhjYVtejnBjaGp3cnNtaHZ0eYJzgoN6iI5+fIqIjnluj4p0bHOCc39/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6OjY2NjY2NjY2NjY6NjI2Njo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCS5KamZmZmZp6bG5tbm5vamZnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTM/k56cnJycnXdlZ2dnZ2hjX19fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaNjo6Ojo6Oi4qKioqJiomIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5GLko6NkYiPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyMjI2NjY2NjY2NjY2NjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoWNh4aJhoiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCQiIuGhYSFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkJCIi4SHhIaJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMkIiMhoaIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6fHp6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pi46Mi46Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTkpKSkpKTk5OTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKRkZGRkpOSkpKTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSko+SkZGSkpOGhZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCRgoCSkJGSjXWHkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CIcIKQj5B7dYiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4xzbomPiXJ4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjHZteo+Cc3iGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHc21tgnl0dYCFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxZWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3RhXmRfYmpwZmhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYV9tbF1mZ2dlYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpaa3dsYm9zamJaWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtqcmtfbHRzZ1FRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OXGNua1ppc3VwU01PUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0VDRUlWYmZrcXBubWxaTUxOTU5PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVDR0hJTltnaGdxbm5pZmRgX19YTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8PUhZXFteZmxua29tbWxraWlqYlFHRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7Oz1KWmhubnBqbm1ramxsZE9HRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozo9RWBuc25ubGxsZlFCP0NGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN0cnF0eHh5fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5PEhcdHVxZVA+Ojs9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT48OkFqfGk9OTs+PT4/QEBAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9APFxuQD5ERT9AQUFbYzw9PTs6PT5BQUA+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdIODs6PT5BOklkPTw9PDg6Oz8/PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw9PUlMRkZ1d003ODg6Oz4+VmpBOzw8Ojo7Pj8/PT05Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3J5STtcf4N/enx3Vzw9Pz09PkVodEw6PT4/PT0/QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFHcnlrYoOEg4KDgH1ePkBDQEA9SnN7WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEVudH2CgoGDfn2Edk1BQ0VAPz5Ze4BdP0NFSUpJSU1NS0VDRkdHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8ent7fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRkZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fH1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSExNTE1OTElGR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINWbISHhoaGh4iIh3xQS0xLSEhGRkREQ0NAQENDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pUgYOEhIKChYaGg4KGhYSEhoaGh4eGinVLSkZCPz9APz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgICAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpJSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMj2hDQT04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJR09SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouMiWBDNzU1NTc2NjY1NTg3MzU2ODo4NzY1NjU2NzY3Njc6Njc4ODk6NzU3ODk3OTc3Njo8QEdGSUdJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDY3ODg9Oj1FQ0JlhYOBgIKDg4ODg4aJi4qJiYqKioqLiYqKh2ZJNTlANTg4NzQ1Nzg1NTc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc2Njk6OTg4Njg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhIWGiYqKiIeHiIiKioyLioqMg2VQWkM6PD0+OTk6Ozg6Ozk6Ozo6OTs6OT09PT47Ozw8Oj47OTs7PDs8Ozk6PDg6Ojo6OTk5PD88PEFCREhJTUtJS0xXb3JzdXN2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuKi4uMfWpTPUJERUVCQUBCP0BDQUA+PT4+QD8/P0A+Pz09P0I+QEE/QD89QEBAPj9BPD48Ozo7Ojk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4uLjIqLdEVDR0pMSkpHR0hFRkhHRUJBQENFRENBQkJCP0BESEVDRUNFREFGRUZERUZEQEI+PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyMi4uJWkpQTk5MT0pKS0lJSkpJRUNERkdGRENFRkRCSElLR0hHRkhHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjYyMi4yBbG1VTk1PTEpMSklKSEpGREdJSElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7Oz06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjIyLi459YFhQT05NTE1KSEhFSUlFS0lHSkpJSkdHR0tMTkxMSEhJSk1RTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNUbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIyLi4pfVFRST09OS0pHRkJHSkdMS0ZLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRkZIRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIuLjn1aWFRUVlRPTUtKREVHTE9OT1dVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09QkBCQkdWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyNj4yMjGlZWGtiRlRRUVBKOztSU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0ZGRT8/QUFFQUNHRURFTFhSTVRVVlhafIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH5hiouLh21cZVY6WVlYU1E/QFZVWFxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU290dnh5eHd6eXp7enp8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKjHpvcFlbXFtSVFJWVlVbWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeEi35nWVlcWVRWVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ11bXF1dV1JPU1BQUlZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn6AfF1RVlhVUlVTUVFMT01LZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtcXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fn5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xV0pMTk9LTktJSkRFSUVDPlRkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3x9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eXFlVUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11MRD9DQ0NDQkBEUEJDQUM9Q0lHVkBITkxHXWlQSEZORkRFRklHSEJESEdJS0dEQkFEQE9RTVJkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fX+DgIODgoCCgIKBgmtNRz9AOzs+Pz8/Pz5rUEpgRUZISUVCP0dMTkdNUlVJQkU/Pzw9PD09Pz0/QUNDQD89PUI+Sk5HVW50dHVzdHZ4enx7fHx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVVVXUVFXVVBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtNV01IR0BCPDk3NzU5OT07Ozs4OTg6PzxCSD9cc3R1dXV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BfXVpJSFBSUU9NUFFOUVJUVlhTUllUT1laW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZGSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BWV15aWE1LVFRTUFFVT0xSU1RYWFRUWVJNV1laVlhYVlhZXVdXWGhza11WYXNrYWFfXmRhX15ZVFFOT05MSUhKTElJRkNRUFNbV1RUTlFTWVNcZVVPU1NRTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTpHbnF0d3h5e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1RWWFhZU1VUTEtUVlVVVVdQU1VXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTFBTU09NTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz49Ojc4NzY1OTk2NzY3NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF1SVFpWV1VUV1RSWFhZWVlTVU9KR09QT09NUkpQUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMSk9SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0hGTE1QTUcvRV9SPjM/PmpvYVNSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR1eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nU1FTQUdVUE9RUVBOTU5NS0xLS05PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTExLSTw5ODc7PkA+PD1BQEI9PkVIR0NFRklHSkpARkFBQEZIRUpPSFFSYVxRUFJPU09PUExMT01MTUxNT05bV0tNUU9HSUhDSEpMTEpGRkZFP0JDPjxCRz9CP0FkcHN3enp6e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENEPTk3Nzk/Qj47P0JAQD5ARElFQ0dHSUdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xNS0xNTU1MTE9OU2ROSkxSSUlJRUFISkxNTkpHSUdCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg6Oj9CPzxAQkFBREVHS0ZDSElHR0hDQz9CPz9AQT5ERUNLTlJUTEpJTVRHSUlKTEpLTElKTU1PUFJQS0dDTEdDQkpKTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3p5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFIS0RHSEhHSktJSktERkI9Pj05OTo7QEI/PUJCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISUxNSEpMSElKTEtNXVJISERORkFDSkpNTFBNS01KS0ZHR0pNTlFOTGJtaXZ2d3p5e3p9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjpAQ0A+QkNERUlFSUpMRklJR0ZGREI7QUNDPkBDRENER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lHRU5IQkZNS01MT01NTk1LSEhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lERkZFQ0NCRUBEQj4/Pjo7Oz06PT5DQT5BQ0VGSkZJSExIR0dHRkVDQD1ERUI+QUNDQ0RHSElHTVBKRkZHS05PS0ZISUZFREVJSkhKSUZIT0tDSU1LT01PTk9QTkpKSUxSVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFR0NCQUJEPUJBPkE9Ojo9Pzo9PkBCPkBCREZKRUlGSUhGRkdFQ0JBQUZGQ0JCQkRFREdHSUZMUUxJT0pKTExJR0hFR0ZEQ0lJSEtKR0tSTUJOTk1QTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmVmZmRoaGZuamZtbWhra21yaXF2dHNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREU8QUBAQzw4Oj0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDR0VCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFSUFBRTk9NTlBNTE1TV1ZYWFVYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRTw/QkJEPDc6Pj06PjpAQj4/P0NFRkRGREVIRURFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR05LTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFJPUU1OUU5NUFdaVlpZVlpdWVhhYGBgXmhlY2BkZmhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXd1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSEhHSURCQ0hFPEBFQkU9ODk+Pj08PEFCPT8+QUJGQ0VDQ0lEQ0VFRkdHR0lGR0tIRElIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5LT05PUlVWT0tVV1NQU1FSTE9RUE9UWVpZXFpZW15eXWBjXlxhY2tiYGRnZ3KFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdExJS0lLRkJFR0U8QEdDREA6PD9APz4/QkE8QD5BQUZDRUVESUVGRUdGSEhGSEhJS0pGSkhIS0hGRkxJSEdKR0xMTUxMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1JSUFZbW11eW1xeX19hYGFkXWNgZWZgZWhqZHNzZmpnZ2tvcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQ0VERTxARkREQzs/P0JAQEBDQT9CP0FDSENGRUZJRklGR0RJSUdJSEpMSEhKSklMSkZKS0hJS0pHS0tNTUpKTUxOTk5QS09RUlRYVk1OVFZUUlJRUExOVFNSV1tdXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTExMTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdDSElHSEpGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdISklJS0hKSk5MTktJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHREVLRkVKTUxLTExHR01JR0pLSEtLSUtLTkxOTExMSUxNTFtzYmRwXmxtVU1OZnNdZmZxbG50Z3BpX2FZbm5icHBia2pqZm9xdGV0bm9cb3VncE1KcXl2a2Fga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdCRkNGRUZFRENISEdERUtIR0xOTktNTUZKTkhKS0pJTEtKSktMTU5OTU1KTU1OW3Jvb25wcGxrTVBRbFdNaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcF1fcmtxalV1eXhvY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGR0JHRElFRUVCRklISEVITEpHTU1OS01OR0xNSUxLSUpNSUtJSktPUE9OTUxOTkxcaGR1XWxxV2xOUFFtVFlrXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNHREhHTEhFQ0NIS0lIRkpMTEZOTExTUkxHTExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5Zcmtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmltdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFBPkREQkdESElNSUZDRkpMSkdGS05MRU9KS1dSS0dLSkpOSUhKTElLSkhIS01NTU1JS0tLU2tjW2leX2ljcnJaX1lqbl9lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERUNGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElHS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xWWVtdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZFQUVDQERIREZHQ0lLTEhGREdLTElFR0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJR0hJRUZMSUpMT0xJUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CRENCRUlFR0dGS0pLSEVFSUpLRkVISFBLTU1KTVJJR0VBSEZKSUtMSkxKSEZESUZERkdFRkpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNHSEZIR0hLSkpJREZLS0tFRklKTktOS0hMTkdIRT5HR0xJS0xLS0tJR0RIRENERUFGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFYVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR4eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFR0lGR0hIRkZJR0hHSEtJTERES0tOTUxLSEtKSElGP0dHTktLS01LS0tJRkdDREBEQUhJQj9JSkhPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUVtXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHR0lHRkZJTEpORkRLS01OSkxJS0pISEZCSEhRTUtLT0xKS0lHR0VEP0VDSUlCQkdGRVRdWV5YX1lfW11VWFhPXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYSFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBSEZER01SSENRSkVHSEhFRktKTVBFRklKS05MTElLTElIR0RIS1FPTU1QTExKS0hJQ0RBRURJR0NCR0ZEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1PWWFcYGBfYmNiXWFiV19fVFBPT09XUVxbW1xcXl9iZmZlbGVvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUpLTkxLS0xLSUpHRUpOUVFOT09NTkxNSEtBREFDREdFQ0JFR0JNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xQU1JVWllXWVhYZFdPU1RQUE5NT1RTWlhYWl1cYGFkZWNnY2tscHNyeXl/e3p/hISEhYSEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFSEZHREtNXUxHR1hMR0hKSEdNTFFRSExLS0tOTVVOT0pKS0dHS09TU05QT05OTk5HS0ZgRURfTEVmZEVOW0leW3JtT01VbVlMRFBgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRkdGSEVFS09TSUpGYFRISU9KSU9NUlFLTUxMT1JVUk9PSUxNR0hMUFtZT1BQTk9PT0lKUX9RSXxZWXF0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbX1ZWWH9qdHV1Xl92XldhW1tmW19gYWFhXWBhZ21wbGBwd3R4gYGCg4OCf31/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEZJS0VRVkxLTklLUlhXUU1PT01RVE5PUU9LS05HTU9SW1pTUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29ycnt8b354boByX2BgYmFaYF9na25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5LT0hRUlRZV1ZQVFBQUFFLSGd4bGN4cm1bS05WeXB1bXVib3ZQZWVJZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/b2hvWXZ2anV1cIBfcmZ9aWx4fG9eX19iYVtdYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncXl7c3J2eX6Bc3V6bnx9eXhybk5KU3VOQ0JGUFBISktJS1BPT09NUFpgWldLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txb21qcGFjZmNvd3hvbXBzeX5ucXBre3p0c29tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xYVU1VWVVlWFJSWV5TTU1JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9acHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbGB2dWtpdXt6bX54a3xwXF5eYlteYmRkZ2VlZWJaY2Npa2tyc3J2Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ta21PSEtLSEpISFFQTE5PTEtSUlJPU1JXUlZUUFdaVlZUVFRhX1BOTUpUU1RRVlZOTkxNT1BKSFFOUFVMS0xTVFNTVFBWVVFRTlFRWFlSTlBVVFhYWFtbVVJTV1tXWFhaT1NVV1hYUl5ZV15WVFBZUldXV1dYXlpncl5bW1lcXV9jWl9jY2RmZGNjYlpjYmdmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdnanVqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09MTVZUUU5VU05PTUxRUEtKUVFLUU1LS1BSVVNRUlNTSUhMTk9RUlFRUVRWUlhXXFdTUlBSVFVWU1pRTlNSV1ZUWVZUWlZUUlVUVFRXWFZcWV5gXVxaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWdqa2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEpOV1NQTlVQTlFOTFNQTU9VU05RTk1OUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXVlZZW1RQVFVYVVVaVVdaVlNSV1ZVV1tYWl9cVVheXF5dW11gYV5bYmJjZ2ZlZGJYX2FiXWBnZGZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FPTE1MUVFMT1RPT1NRT1FbWVdXWFtZWFlWXGpkVlhZWldWU1NPSk5WVFBPVFBQUE1NUlJQUlhUUVFPTU9TVk9YUlRVVU9OTVFTVlVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUV1ZWVllUWFhVU1JZV1VaXlldX15VXlxeYFxbX19fX1piYmRoZ2RkYlhhYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xYWltkcW1oZF9bWFZVV1FMTVZTTU5ST1FST0xRU1JVWlVTUFBNUVhXUldTU1NYTU9PUVRYVlVVU1VYWFteXVtbVlFOVVZVW1xXUlRXVldYVlRYW1RTUlpYV1xeWl5fYFVhXGFhXWBiX1xgXWNgY2doZGZgWWNgYV9fZWRfYGJbWlxbXFlaWVhXXFpcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRRT1RUU1BXXFxcWF5cXlZcXmpxd3mAY1xbVVVXUU1PVlNOUVFPUlRSTFJUVFlaV1VPUk9TWFdUU1VSUlpPUFNSVltWV1dUVlpYXF1bW11WU01UVVVcXFZSVFZWWFlTVVpcVVNTXVhaXV5cYGBgVmFbY2JdYWReXGJhYl9jZmlkZl5bZGBhYGBjZV9iXllaXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1xUV1dRTlJaU1JRVFJUVVRLUldWW1paU09TUVZWVlRPV1JTWlJUVFRYXVdYWVNYXFheXVlaXVRVTlVWV15bWFJVVVlZWVVXWlxWVFdeWl1dYF1iYl1ZX1tlYV9kZF5eY2NhXmVmaWRmXl1kYWBhYWJkYGJeWFpfW1xbWFhYV1dbWVtgXFtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWU1RUXl5gXl5iXGBVXV5ia3l0bH1rWlVZVFBQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUVdSWVhZX1taVFVWWllaV1haXFZVW15cXmBhXmRjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU05QVllRXVVWWVdXVVhfX2FhYGNdX1RdX2JlZXWBemhXWVlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSV1NXV1VTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWFRZWlphWVxWV1hbWltZWVpbWFdeX2BfY2JhZGRcYlxgZmFkZmReX2RiYltmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlNZVlNcVFZXWVZWXGBhYmNgY15fVltgZGFfenVvaFlbWVVXVFdbWlpcWVhZYFdQVl5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1pdXlldVVJZV1lZXWJaXlZXW1xbXFtbWlxZWl9fYGBkYmNkZGJkWWFmY2ZmZV5hYmBjXmJjaWRjZ19nXmFiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNPVllWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheW1xaVldYWVxcXV9bWVtiVlRYXl1hY1xSVllQV1dXV1dWU1VUWFxcXmBgXWBcV2FeW15bWl5YVVhXW1tfYFxfWFlcXF1eX1xbXVhbYGFeYGVjZGVlZmJYY2VkaGdkXmNgYGVjXGVpZGVpX2ZdY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWVhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXllcXllYVVdbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZWNlZmVmYlpkZmZpZ2JfY15hZmRaaWhiZmljZV5iYmNhYGBfXVxaWFxZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVZcW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZF1cWFtiZWNhUlxaT1lYWltbWldaWWBdYGJiYGFjX1xiXV9dW15dWVlUWF1dX2BfYFxbXl5gYmNdXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGNnYFxpaGJoaWVkYGJhY2FfYF9cXVxZXFlYV1hZWFdcWlpXV1hPWFpdYWNmZnJrf0pZV1xaWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5ZWFVbX15dYWFgXltgYWJmY19dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBaZmdeYWhoYmhoZmNgYmBjYl9fX1xdW1pbWVhYWFZaVlxbWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4SCgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXp7e3t7e3t7e3t7e3t7e3t7e3t7e3p6enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t8fHx8fHx8ent7e3t6e3t7enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a8homJiYmKgkU+Pz8/Pzubw76/vr69ytTS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjI2DOjIzMzMzLqHSzMzMzMvZ5eXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXp6enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx2dXV1dXV1foOCgoKCgoOEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnd6eHp6eX56eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3x8fHx8fHx6eXl5eXl6enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eH15fX18fXt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHp9fXx9fXh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8en17fH18eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHx6fXx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4enl6enh7eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGhIOEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXFxcnN0dHR0dHR0c3N0c3NzdHR0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXFwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJyc3NycnFxcHBwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXRxcnJxcW5/g25wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFwiIhwcXFwdJqAbnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF8ooRwcnCOnnxucHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXWeo3hweKCcfW9xcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXFxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZipkW+Co51+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4GDeXJzc3JycnNycnNzc3Nzc3Nyk6qlfIqhnXxyc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn18dnZ3d3Z1eHp4eHh4eHd4eHmhs6mnqaqXfXt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7fHt7iq+iobWpq6R/e3p6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2ZpJahsZ+YppV9gH99fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgZybjJ+woaCinoCAgYB+fn9/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYGAl5uQl7CgmJSchnx+fn6Afn5+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f3+AfoChrKWXopqcmaKhiIB+fn+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KEhIiQorKmoKGZnZ2mp6ypoZuSh4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4aNn62vpJqaoJudnJ2doKSinJOHg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYOJlZiWlZifm52enZqZl4+IhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBhY2Uk5aZnJ2clY+Jh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDg4ePlY2UmJCGg4KFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgYKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKBgIaZiIyGgoKCgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAf4KJjoCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/f4yVgoKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgZCMg4F/fn18fYycjoCCgYGCgoSUlIyBgoGCg4KCgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX17gZiMgIOBgYGAjpSMkIGCgYKCgoGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGVn4p+foB9h4t+hISDhIKDg4KNiYWMgoKDgoOCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf319fYCDhIODhIODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkZKMioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39/f3+DhIOEhISEhISEhISEhISEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhISFhoaGhYWFhoaHh4aGhYaFhYaHh4eIhoeHhoaGh4eHhoaHh4aGhoWDg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaFg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af4CJhYaIiIiHh4aGiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aHhYODhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGCgoGBgYGAf4B/f357e4KGh4mKiomJiYiJiYmJiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeHhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSSkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fnx7e4uMiIuKi4qJiIiJiYiJi4qJiYiJiIqKiYuJhoaGhoeFhoiIiIiGhoeEg4KEh4iIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn19gZeQiIyOh4eFhoeHh4eIh4eJh4eGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgYGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoOBfXx9f4B/fn5+fXx9fnx6hJqTloqDg4GCg4SGhYWDg4WEhISEhISFhIKCgoGEhIGCg4OFhoWEgoKBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYWEhYSFgoGBgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4CDg4ODg4KCgH19f4CAgX99fn59fH19e3p6iJ2Ng4KBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgIGAgYKBg4GBgoSDg4WEgYOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goODgoOCg4J+fX5/gICBgH59fX19fn18ent7ioWCgH9/f39+f4CAfn2Af36AgIF/gICBf3+AgYF+fX1/gIF/fn5/gIB/gICAgH+AgoCAgoGBg4GBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GBg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foCDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp7g4SDfoB/fn59f39+f4B/fn9/gH+AgH9+fX5/f359fH5/gH5+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp6enl+lpODf4B/f35/f36AgH9+f3+Af4KAf3x+fn9+fn18f3+Af35+f36Af39+f3+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enp6eXmCi4SAgYGBgICAf3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WCgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fXx6enl5eXqAgoKChYOBgoOBgIKAgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fImUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgIGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYSEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl5eH2Cg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCAgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGBgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4eHl5eYCDg3+DjISDhISEl5eDg4SBfX6BgYKBgYGCgYOGiIyFg4KCgYSChIOCg4WEhIWDg4ODgoODgoKCgoODgoKRkIuIiIeJh4aGhIaFhISEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHh4eHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl5fIGBfoiWg4ODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhISCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6e3x+gYOBgoGDgoB+fX9/e4iRfHyOln99f3+ChoqFg4OEg4KDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYOEg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhYSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXl9fX+Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSDf3+Hg32CgYCCgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4ODgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9fH5+fn9+fn19fXx/gYB9ho+Bfn2Cfn9+gIJ8fIB/goCBgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMi46OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4WEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX9/gH1/fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx9fXx7fXx8fHt8fHx6enl7fHp9hYODgIGBfoB+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhYOAgIB9fn1+f36LhIGHfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn+AfX6Afn9+hJKNjYyPjYyKhoSFhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOBen5+fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX6AgIODgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx9gYKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISDgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9e3+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5+f35+f358fH18fH18fX57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko+MiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn2AgIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg319fXx9fH19fX19fXx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uLiYyRkI6KiYaFhIKCgoKDg4ODgYGBgYGBgYGBgYGCgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt6e3t5enl5eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2BgX+BgYF/f4B/gIF/gICBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18fn58fX18fX1+fn1+f3x9fXt8fX58fHt8fXp6eXl5eXp7fn6AgYOHhIiPjouKh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGCgYKBf4CChIF/foGAfX6Bfn1+f4CAfX6AhIB+fn99fn18ioV9fn99fn6Afn19fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX19gIOAiY6LjIiFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICBg4F/gIGEgX5+gH99foB+fX5+gIB/gX5/gH9/f4B/fX5+f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fn18fHt8fXt7e3x7fHx8fXyKiomJhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgYCAgIOAfn6Af31/gH19fn6AgH+Cf4GAgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e31+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19foB/f4GAgYCAgICBgX5+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISFg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhISDgYCAgH+AgX59fX5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn59f35+hYWBgYF/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf3+Af4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4GDgoOAf3+BgYCCgYGBgYCBgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH2AfX+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhIKEhIWEhISBg4KBg4F/gIF+foB+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4KAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fX59fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p9eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hYSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgICAf4GCgYB/fn+Bfn+AgoKAgYOChISGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB+fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1+gICAf39/f3yAf3+BgIGAgH98gH9+f35/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e3+FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYCAf32Afn5/f39+fX1+gIGBgH5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKAgICAfX5+f4B9fH58f4CBgICAgIB8f3+Afn+BgH9/fYF/fn9/fn19fH+AgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3e3l3eHd3eHt7ent8hYl9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgoCAgIB+f35/f318fn6AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgIGBgH+Af39/fX1/foCAgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh6gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+Af4CAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgIGCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58e318e31/eHd2eXl6fHx8fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGAgYGAgH+BgYGBgYOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f316fX97enZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfH9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYOBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOBf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0dnuEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSDgIOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhICChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX+AgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgYKDhYWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKAgYB7fYF+fHl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSBgoSGhISDgoOEhIGEhYOCgoKDg4GDgYKAgoB9gICBgoOCgoKChIKAgoKDg4KCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX5+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOCgoGBg4J/goOEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fn1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIhoWEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4OBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKEhYuJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4KDgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn9+foGDgX17f31+gH59fHx8fX19fXx9fX6Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygoR+g4N9gX1+f35/goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYSGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cHuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fX9+fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIWFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39/en59fH99f39+fYCBg4OAgoOBgYSCgX+BgoB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4eEhISFh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhYSFhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fXx/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGg4aFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SDhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WDhISDgoF+f357fHt+e3x8fX9/fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fIB+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaHhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaFh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISGhIaFhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoeFhISFhYOEh4aDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFhoiFhoeFh4aHhoeFiIiHh4WGhoeFhoaEgoSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4SHg4SBgoSFg4GAgIF7e359fHx8fn18fHx9fnx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9f318fHx+fXx9fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoeGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaHhIOEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH57e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhYSFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4SCf35+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhISHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFiIOEhYSGhoaHhYWEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIOCgn2BgX9+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt8fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iIhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SFhoaFhYaCg4OFgICBgICDgIOAfIGAfn6CgH2Af4F9gHx9fn1+e359fHt5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KBgIKBgICAg4F+fn6AeXp9gIOEhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFhoeGiIiGhYiHiYeGhYWFg4aEhYeDg4aEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B8gX99foJ+foB+gH9/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhoSEhoSHhoaFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoWGhoOEg4aChYGBgH9/gIB+f4GBfH5/f36AgIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoOChIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGhoaGhYOEhIOEhYWFg4SDg4SChISAf4KCf31+fn5+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9+fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGChYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFg4ODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYF+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1/fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH5+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgIGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fH59fH6DfXt+fH2Af4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtBPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NXV1NLT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01PSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fY2djY2NjY2NjY2dnZ2dvc3Nzc3Nzc3dzb29vc2tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi3qaenp6enp6enp6enp6mXgIKCgoKCgoKBgYGBgI/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOU2JMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OjoIaEhISEhISEhISEhISIZ0BERERERERDQ0NEQz9c09PS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUJAODw6PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpaKJh4eHh4eHh4eHh4eHimpGSUlJSUlJSUhISEhDYNLT0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDw+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamnkI6Ojo6OjY2NjY2NjZBzUVRUVFRUVFRUVFRVUWrS09LS0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs7OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tDQ0NDQz8/Pz8/Pz8/PzcrKysrKysrLy8rLzMzM09TU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7OztHUz8/O0dLOz9LU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX1tbW1tbW1tbV1dXV1dbX19fX19fX19fX19jY19bW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztO7nc/P07iez9GcgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK1lZuz1bKXmbm6lbi5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/Rn6CqrtSco6iy0ZJ9fq+w0c7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw5Nj9CP0I6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0cWHmrHVw4aatdXTzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Wp5mx1NajmLTU08CgoNDPz8/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P1KSZsdTVopm01NWwoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NSkmbLV1aKZtdTUo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NDVpJqz1dWimrbUzZ6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njk5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPQ1aSas9XWo5q218OfoNLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HH0tajm7HW16KbtNqypKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09HVtYLD09Wxg8bWuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw8P0dFR0tJPTY2Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dHD1NLS0MPV0dHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/Pj5BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS1NLS0tLV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6Njk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8Ozk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6OTs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq5urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKipqqelpKOioqKjoqCioqGhoaCgoaGio6Sjo6WlpqiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSmpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk+NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoKCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6efm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqamp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlp6empqKenJ+hn5eRkJCUl5udmJaXlpibmZqampqamZeYmpuhoZ+en52cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjY4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNAREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaampaWjoKChoaCZko+OlpuZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5iVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9CQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5SZqpybmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqKjpKSkpKKhoZ6bmpmaraqemZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6ChoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKKwp6GioqKgnpybm5uarnl6m5ucmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaCkpa2nn6CgnpyZmZqZppNLgZ2dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCfo6J5qqSgoJ6bmpqbnahaSYSfnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+ipKSioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp6obW+rop+cmpqcnKyCS0+Hn56enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZyapIhUhKibmpmbnJ6qZFRRiKCdnZ2cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubnJqamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmaCTYmKbnZibnZuilmZdUYehnZ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJyZmJmcmWVjfZyYm52cpIdnXFGCop2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXExGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZmZmqRoZ2aIl5ycnpx5ZlpUg6Ken56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZifbmVibIadnZ+Qb2NWV4ehn6Cfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmZn3lzcl54mZyhjmFZU1qOnZuenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOTc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qalpKbn5R5mqihqpR8YlJgkJKOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY6gn459YompmJpug4drcIiHgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg3+MqI14aVJwnY+MVm15e4J+f4KSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+kKB6T0NJdpSDg0lXb3N3gnuGjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCBgKCUUzQ0O3mFdXJDOE5rb4CHio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY+hbkZkVT96emdkTDw5TW51jYqJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KkmFF0sJFIe4d4bVJpf1lXcYiQjJiaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mprIRfv9isRpKjmpBda4J7Xl6DoqGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKZver3AqprMqJ6zmkhWhHBSeJ+pp6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKeanaSlo6KicoGZro7JzrKesLJuU76gVGyUo6KgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioKOnoaaupqacoI19hXuG0L2Yl6icclKarGdjjqOdoKCenaCjmpaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqmioKKoqq6xsq6rpKmYiHtqnb3Dq66eiXZkcHh6doejpKejoZ2gopmVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7a0s7aysLKniXVeTpafkI+NgHtzcHNxeHx+hZKdoaSjoqSbnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K2u76/wL/Fv7Wrk3BmWEd3gHN1enFuaWhiYmlpb3Z3eH2DjZijqKympJmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW6yNLZ3NXHuq2fkHhcW09FXmtlanBoZGJnWVddWV5mbm5tbWxugajIxruip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PExdni38+9sKicjXhiVVdNRV5sYWNqZWFiaV1VXFdZWl5jYVxjgKnFwL24qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrzHx87QxKuNe29cU1RWS0BebGVmbmViXmZhVVhaWFZXV2KDpba7uau0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudXJydXFnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/xMLGycnApIhaTEhKTkg+WmBibHFoYV9lXFhVU1RRVoC2w6+sqqqqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIx8bExMO4s8G6oHdMSlFJPU1UYmppbmNfX1pcVVNaf5qtt7SrrqWko6ekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent3bmtpaHZaZnJ4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLFvbu+kWVWS0JKPV5WWGtnW1pZWFZwkLCxq7i1s6ypo6GtqaynraCstbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dWVmaWpoXmpvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMi/xsa2oGxLWUFScnuAWlJQU2ufvsC6vbu8urysraapu7q5t8CztbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aWpqdG55bF5kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxcXFxMnAqo14b4yZnVNPcZ/C0sfEwcTHwby+tLGwsMK+vsHGwL+4tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ9eHBnYGtqd2xpZnVvdGNdY1VXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwcHAws68c2qFmZdakcvLzc/Ftr+/wMC6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5gHNwZmVmY2tkYmttb29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzCwZmAjpmIf9LLxMjRwa+9vbi5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFlYmFjY2RqY2djW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Au7/AvLvEvbrAxL+9vba+yKSUZo/NxL/Ayb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnamVqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWNur+7w7W6x7e2ubu8uLm1usTJpkKLyb+/u8G+uca9wr+8xbi2t7S4tra7u7i2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVmcGplbGhYWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/EeKnMvce3ubittrS3ubO1srrFyppGgMq/v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucWdxa3RmYm5gXFRIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrnSBu8jPwsC4rrW1u723ubG+w8eOTHvNw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGpudW94Y2hiXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0plxdK7R0czKxLW6v8TIvr60vsDAe1lzy8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGxsbl9jX2FiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysGGcnSmzMzLzcrGwsPLzsG8uLy6sXJpZrvIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWNbX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9rDvra+wL6+uqacqbK2w8CleXZ5nMTGy8jBw8DAycrBv7u5saGBeHGuyMXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO1uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3h0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEt22tzr22ucC9q31uaG5tcoGVmHN4fZi9v8bAucC8vsXEvb24sa+clYOInMrCw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsbess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cW9qXGBgWlNQQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbJ2gbO9trXCpYdpWl5gTVJbW250d4KhuLjCurO7t7u9v7q7u66jnp2OmX+/xMO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d29xYV9mXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmnhXiKoK+1nWpmZ1ZZYElJTVBUbHeHprC3vrmytbK8uby2ub61laCrnah0rsnEwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVm5WNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fqoh8doyhmGBUQ1hVR2FqVk9FSmGOoayvtrq1tLKsvLm4tbjBvYuas6aqdKbLwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtsSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZzbmNeZ1ldXVNPTkE/SkNBSkpANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7SQgnmIkG9PSj9kWUJOd4CUak5BXIKwtbO1srSvrLu6uLa5v8Z2hKygnGWpv7i1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ3c211amxdXGtVXlxQTkhER01CR05GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHxYRkFPh1lKSlh3jYFjQVOjubO0srCxrbC5uLa7t7u8kKKxq6RzrLCpq62ro6ihnZ2el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWh1dG5lVWFkV11ST01JQElTRU5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmYmZRoTT9SeHFQSUlLZ5yAWkVTr7uxrLOvrqyttraytLWuqaaempudn6aonqCoqZ+hp5ablpeOnZOPkJaNl5ukqKCgoqKhpaWco6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CWlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoYh4g3x2f3pjd21uXVFpVVBPR1BNTUNQUkA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3CqqW9aERSnYJRV0lKYEpVjWFkY4GutaqytK6qq6+wsrOtpZ2Rl5OPl6CfoqCco6SfnqiUm5aWjJeRjZCXk5ido6qfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fH91dn1ubHtkaVZSZE5KSEdPU05LTkg8RUA8MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCqxr/KoFBBc512T21KS2NmdHNgW2BxkLGvrrO1qqasrKObmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZKTmpeboKSqnqGhnqanq6KfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpquqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3l8ZXl6YGJTVWFISUpLU1RKU1FNOT9BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMbGjFdTSmWkWmV9b3JcUWtjW2VgXmuPtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmpJ6nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qXmZuUlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbGZcU1paTVFLT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWlxdnVwY3Z2WFhjYGNoWllXZ62urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2prKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7a4s7itsrSkoJ2loKyhoaKhoJqYlpWfm5uYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCgH14dmp4dV5tW1JhSVJVSEZVV0pDTUc9S0k4RTw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCjgG+CcGBjWExbUlpNTFBYUkhNTUeYrKqppaCfmpKRlJiYlpaWjIiLjpWdnZ2cnpeemaafoKilsaqnrqOrrrawtbKxrra4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm4vK+zsLXCvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21pblxYXENXTkpHTUhDRk49Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOenYpiV15lYFdNUUc9P0BDQz8+QlF4qa2pqqafnp+io52enZqdm5STlZSenpiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyb+wubm9ucK+uLS7xsS9w7y3s6qzraqztK+zrqqvo52sqLaxraOwpqGjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhESlBJP0VCNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw8Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFFHRTxDPkY8Pjk2Tn6qs6ejo6KgnqWrpp6XnJSRmp6ZlYyKhoiGeG2IoKSiq6y0vLbDvb6zu8HDwsXAv8LGxcXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8rJw8HHv7q0uru1u7ewtrKqurKuvLi/u7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtlWlxGTE1FRFRNRUNFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz49Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9c2phV09FPklafG9iQj1cjq6soJmbm56emZeXl5KNj5eXlI+NkIyCg4J3cnFtcI+mra60ucW7zcfLvsHMzc3MyMjQzMzMx8rFxszQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsbGysjPwMnRzcfGyMbCvMTBvr+/tr6zrb/Aw8PHxMfEr7+5sri9xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXRzZWJncm9nXlpaRE9NREVQSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E/PEA/Pjk7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ2VamZdVElEQT9Lhp6lmYSgsq2jnpyfmpiXlJKUlpGQj4yHhISIhoOAgYGAeXFyb2x5pLa6ub7LwdPR08jNztHT0dLQ0NHRzc7P0MXN1NXY0dfNxsfJzMPFys/K09fR19LV1tPUyMzGzM3J083O083GycrKwsbMx8nJxr/Ds7PIxcvLy8/Hyr++v73Bx8XMzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZVZYUkRORkBJUUM+Qj06MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnGJUTEpEQz9DUq/RvbKvppycnKCkoZ2alJOVlIl9eHFrZWJocnBye4WKgHVwbnFzcIWzw77F0dDX1tXS1s3U1tbU09HS09TSz9LD0NPW2NXV0svKztHLxs3SytLV1tnW2NPW2M3Sys/RzM/RzNPQwMnIy8TMzczPz8XHyLbAy8DSzczQxsrJwMTDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYGVyY11SXEpLR0FFSUo+O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFaSUBBREFGUXayr6aalJefnJqgoJ6bnJqViXdpY2FfX19fXl9fXWFsdXNwcG9scXF1ksTIx9TW19fW09bQ1dTZ1NTOz9XU1NHRzNHN09fW09XQz9LT0cnT0cjQ2NfY0djS19nU1szPz8nN0svO0cDGxMnHz87R0dLIzM3Ay83G1M/Mz8jEy8fHyMzL1NTR1c/SzNPCucWxpai1rqebqKulnbKosLOtrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYmNpbV9WUWBKSkNFQ1JNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu32NTV2dnRztC/vMzJtr6upqqooaOsZkM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cWVjYl9fYV9eYWBfYGBfYGVtcHBua29ydneczMHT1dPY2NbZ0dLS18/TzsvSzdXU0crPzNPW0tHVzc/V1dHF0dTK0NTV1s7T0djX19fLyM7Eyc/MyszAycHJys7Oz8vQzs7Mz8/IzNDQy87Lw8rHyc3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO+u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSkZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PT9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Onn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksXpIRkI7V42hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYF5gX15cYm1yb29zdHV2eaS/zNXR1tPT2NbOztPLzs7FzsrS0s/Hzs3N1MvO0s3L19bQzNHUy8vQ0tPKztHV0tXVysDKwcbNwsnKw83ExsnLy8/Kzs3QztTMxsnQzcnHy8XHwsbKzM3Q0sfQz87OzNDFx8G4ub3Dw73DubOyvrG7w8S2qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTElQUUI7RD87Njg6ODo7NTc9PUA7Ojw9OTw9OT09Oj46PDc7PTk7QDw+Oz4+QTw5PT49Qj07Nzc2Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9wd4+ajYyXlZCTkZGVlpWQi3tlYmJiYF1eYWNiYF9gYGFhX19dW11ncnJwcnNwbXJ5pcfTzszQz9PUycTIyMXGv8PFz87HxcfNytHIy87NxtHS0M7M1MrHys7Px8fP0svQz8W6xL/Gyr3DyMrOxcPHwMfNyMTMyszPyMTE0MnGwsbJxb/Bx8zLzM/Cy8zJx8vQxcXHu8fDycnCz8G9vL+wwcnHur2qsbKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KFoqqTjY2Wj4WDg4OBfYSEfnNgW15dXmBeYGNkY19dXV5fYGBfW1pcYGxycW5va2xvb3250cvCws/LzcS6v8O6u7q5vsjGwsPAw8jKycjKyMHFzMbIys3JxMHKycHBy9DFy8i/ucG8xse+wMbPy8TAw7vJx8m8ycfFysG+wsvGxcS+xr29wcPFzMXGvMDJw8XH0sTByb/KysbIxtHDw8bDrsTLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdCR0VMREZTQDU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bF55fJ+RipKWhnqAhYV/dXh1cnBfW1tdYGBiZGRkZWRgXFxeXV5eYFtZWlxib3Jua2lrcG9zj8i7mMDMwMbBsLa5sbGzsbDBu7u8urjBwcHEvr25vb+5xMrFxsK9xsC3u8PJv8HJu7a7usbDv7zCzsPGvr61wb3Du73HvMO6tL3GxMLDt8C2tr6/u8zDvba6yLu/vsvDwcbDxsnHycbQxsLMx7LHycPOzcHFw7+9srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRkJGSkE5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys7FycXHwbrFvayupmBjdYGSi4iLhHh/hoZ/fYN7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmbjp/Ew7rAuK2wsKaprault7O1tLOztLu2vbK3sLSusrvCvMHEvL+6tLK6vsC4yLi0vLbBwr24vcfBxLu1r7K1ur+0xbi7tay5vb7AvbG7trC3urPGvLevu7+1t7XFvL/DxsDExcbHzMXAxsa7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJlbZ2+JjoaIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfXlxbXlxdXlpbW11fbHBuaWZqbW5ze4q/v7i4tK+qq6adoaimnamqsa2qrKm0rbaws6mup6yzu7q2w7m6ubCrtLm7tMK5r8Cxvry7trzIucO3raqosLLAtri9sLGosbO1u7ysrramrrauu7KxqrmwrruuvLi8wMC+usO/xsPFwLzGwsjLuMXHxb/HxMO6xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMS01KRUFDQEdBOzo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTPx83Bwsa/xMTDw8rCycq/wLzBurO1tcOuqrCSW2l+koiOj3t4fYmFenuEgHduXl1cXF1fYF9fZGNiY2RiYF9eWltaWl1aWlpaXGVub2hmZ2lrbnKErbmwta2ko6WlmZ+jn5iapKqtpKiiq6qsq7Cjpp+qrbW2sb24r7evqK64tLS8uLO8sLi5trK8wbLBr6apo6uxs7SovaqrqKutrrW0pqitoaSvqbKmqKiupai3rLGzt7q6u7K8vr6/xb+1wsHHyLe/wMW3xMPAu7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz83Dx7m5y8LLvrvJtr3DvrrKt8HDwbS2vLaxr7W8ramrkmNtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZGZlaGtvcoWppaujnJqfo5Obo5mWj6ChqKOjn6Wlp6auoJ2bpKassrC3t6ewrKiqtKu0urG2tq62urOwu7qxt6WgpKCnsaisqbqqpaanqKezraCop5+cpKasn5+npKChsa2trLK1s7Sxtb22u8HAsru+w8GyubnCs8C9wLW4vL2+vMLHxMPEv8DEoIR4cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wLq9taCelJ2hprq2q7Ozu7PEz8nLwsa4t8fAzL+4yre7xbizxbizv8CstbyyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBeXFtcXFhZWFhYVlhbXV9kY2NmZ2dna21uh52onZOTl56UmaCWlIucoKGmnJ+fo6Wjp56bopyfq7CtsbWkqaqqrKyltLitt7Css7Wvs7avsaqfnp+korKlpqq5raKmpqCorauZoKCemZ2fpZqao5ycnrCprKiqq6ytsLO5r7i5urC2vLu6rLOzubO9tLexsba1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTUzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLW3xc/IyMDGu7vDw8++uce4uL+3ssK0sbu7rLm6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXWJkZGZmZmhpa3KMp5qQkZGYlJiek5SOmqCgp56bnaWmoqWbn6Gama+urq+yoaWjrquoorWwsrKsqbCzqLuzp7aho5+co6Kuo6Kqtqujo6aepqajlpmdl5mbnaCal52cnZytoayoo6SmrauztKq1sLKrs7m0r6qwsrKzt7Ouqa2usrewura6vcC4s7GUhnl1Zl9mX1taVlNaVUtbUUxKRUhLSUM9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+znaWjmKWxw7W2va20ucHMyMa/xbbBwMfOtsDDvbO5ubK/trG5u62ytK+fmqOqoZSaj3h/g4R/eG9xdHFoZWRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqCZkJCNkZOUnJSXkpWenKCclqGhqaOenqicmpqrp6+wq5yjpLiqoaCvqLerp6eusaS4sKS3oKOcmZmrpqGarbmwo6GknKKgn5OUoZSWlpuZmJaXnJWfqZ6qpKKdo6qqsa2otKyqp62zsKWrrrOxr7Cvr6eoqLKusbSwvLS6uK+jlYJ6dmVfYVdZWFNSVEtNXkxQTEdITEtFPUA+PUI8Ojc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0usKxvre9rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJqhqZWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjY2JjYmJjZmmAko6RiY6QkZeVmZOUmZ6bnpWgn6alo6ann5yfpqCrr6agoqO3qKGhoqmzoqWopbCmsa6stZ+hnZaVqaGilK2xsZ+jo56emJuTi6GUkZOYmJOXmJiXnqebp6GimqSlpaukpbCnpaOrrK2mqa6wr6uoqqqzpqarr7Sxrry2sbCvoJN7eHNlYlxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sba9sLuxt6yepaast7u8wcW6srm1xMnJwMPGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZn6OLinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVVRWVlJUUlVgYV9gYV9gYGJkaX6OjoaNi5COkJmRk5WimJ+WnKCloaylpKSjpKOdq6ulmp+lsaqhoZ6lqp6oop+urKqprq2ioqKVmKKbnJCrqbCcn6Kfn5eYk4mekY2Sk5aQmJiTnKGjnKSgopWgoqSlm6OrpaKjq6SrraWusqqmpaamtKaqqK2ztbS5urCrrJ6Mc3FwYFtXVlZSR1FPSFpcT1JKVEtTTEVHSkQ4Ozs+PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Ktnainr7m5s8DIurbAr8XIzLrByczItcm8sb3Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RVVlVUVVVSUk5RWV1cXV1eXl9fYmRtiYt/jYKLjYuWkJGQm5qhm5ugqKmrqKynqaakmaWvpJWZpa+poJyZm6Cfrpqcq7OgpqafoqShlJSblpaSqaqtm52foaGblJCMmY6MkYySjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq7Ckrrimo6SjrK2pqKuvtLeyvbWzq6+YhXV0aVtYWVJVUkZYTFFbWE1VT1FMUVJJTkpCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zLxsW4wc7Px7PEure7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FZWlpaXVxcXV9gZHuIfYZ6iIyGj4qUj5WXoJ+an6uppq+sqLClqZqfraGVlqSop52YkI+anq+XmaeqmaCdlKWhn5KRkpGTlairpZqZmZ6el46Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6Wlp6mooLCwprG9qKCjrLSqrqewtLC5tcCxrrGrkH5ydGNWVFZOUkpHVlBSUkxMWE5LTU9SSE5LQUNGREQ+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqytri8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5yam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRSTk5OUldYWllZWFxcXWFqfHZ7cYSJg42GlYiSkpaamJ2om6CrpqasnqiZoKack4+fo5qXl4aFkpukkJWjnZaWloiim5uUjI6KkJqlp5yVlZebkZOIlI6LgYyNgJCLkpKSoZqgopaUmZiVoqaajZmkp6mnoaC0sqizuKGdo7esqa2ks7Kmtbu1q6yxo4p6c25eTlFRTU9ETk5OUEtGTk5KSk5OUUlNSkFITEhIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS3saWnpKqloKmmpLOqorLDtbWys8bGt7rDyszGs6y5vbS4wK+uqbCepq67r62gmpuelZWIfIRuX19mcnB2cWpuaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFpdYW5ucmyAhH+FfY+CjYiSkJKdoY6anaOipJillqKclY2ImZqMc42Dfo6XloaSmpCUjo57mY+djYKJgIqYoKOekJOYloWOg5R+fnSKjnqQiJOQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmKa4pqWwobGunLG8qqmvqpmDeHRkVk1SUFBNQ1NOTFBNQlBRSElOU01ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY2Ojg3QTd4t6GjtKimpaijpaWmpqayp6a0wbivtLDJxLi5wM7GvrOsusGsrcStqKKmkp2mt62joJCWl5KQfnh/ZldWX2dmaWdob2NpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlRTU1RVVVdZW11paG1oe4F5cU1WcI6BlYWMm5eKk5GfmJ2VlJaUj5aKgJSJXztWb3yMlIqAjJKMkIaGc4uFl4F5gXuGlJ2Vg5aOkZCDhn2TeHFwho19iYGQjpCXmpmTi5CKnYifmIiIlp6aoaCXp66prampnpats6KmrpmsrJiotKOpraOTf3RuYFtOU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqapoKapp6OqsKintMG5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpiHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtJRkhOUVFNT1JUVlhaYGtqZHZ+cU5BP3+VkZB8h5SMhIqNm46WlYmSiIaVh3mJf2BKUW54i5KEfoSNi4WAf21/f5R4dnZ4hI2acFGNiIqGfH54lHZod4aIfoqIlYuOkZOXjISKiJWEm42DhJKblp6dlKSiqKmlpJ6bsKqhpKSSpqqWoqqcoaaoiXZuZ15cSFFRU01JVU1SSUxLT0lIRkpOTE1US1FRT0dKRD03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hrqGnqKWnqK+sqra8tri3s8G7tqi5yLi2qKi1tqqyvKeelY1/iZSplpWLf46Dgn54cW9YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVlYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRURDSU5PaFlPUVNUVVpugXBzemdmWlOPiZSHc36GgHyFjJOCkpmLj3uGj4B2gHhzb3VxdI6OgXp+iquFentpdnuOcHJteIGLjZJ4e4B7gHdzc5J4Z3WFhISFfJWKiIqNi4B/hIuNgJSEfICPmJSclpGfnameoKGdoKmlnp2Yjaekk6Cflp6fpIFzaWJdXUpXUFJHS1hST0pNTFJKSkpMUEhMUUxSVE1GSUI9Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6Rf3aGd3x2b29qWUtISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWCenZkdIuVmI2Oe2Z5gHZ4f4iQfIOYkoBxh498d3tva36tfXSQi396hpKBfX90ZnZ8hmxvaHN8io2HgG15cX1xbXaPcWhxgX6OcESLhYKDhX93d3qMhn2Me3V9jpKPmIuSmpujlpmdmp2eoZyWjYulm46dl46WmJB4b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUk9ITlBMRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzUxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlp2lqaShmJmPhZJ5iY+Li3ZxfG11cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFhdZW9waoalqsB+c3hie3due3iHj3l7i4ZvbYySeXR5amqAgnGWkYyBfZWASpOZbmh3foJtamRseYWQkoZrcmx8bnJ8hmltcH9zjYmFh3t+f3t3cHR0hoJ5gXlwfI6LipODlpeYmpCTlpaZl52WjIOJn5KLko2GkJeAb2pvb29ZVlhUUlFZT1JUVFJYVU1OSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYm5+lra+iraqota+urLS/q7zDv6WimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ1b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JWWlFYW1+mh2GZZ3J4ZH1vbH95ioh1gYeFdGyaknR0fGpqnY5NeYWTiYSOZzF2h3Nsfn6DdGZldX+EhIWAZmlsdWtwgHxocXF8bpONj3x0fn1xcW51bYJ/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW01QVVZZWE5JSEVKSkhHQ0BHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEvKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo+UmYuOhXqEkJiUjZCMj4Zxh4J0iIyGenBycG9vZHFnX1RGSUM+PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUxBSVFJYq+yn3B6dmt8bHGCgYSAeoSFhXlyoJV0eIBzdZSHNXGdqJ2OoaGEo4V2cId8h3x0jK6NiYFoZ2JqbnJtcIN1aXBYdXCOm5F2bX97fW1ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2Oe3NxcW1gW11eXFpZYV9STltaWFdMSEpGSUc/Q0FCRz9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiVkZ2kp56vlaW0qa6wrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt1eHhtd253ZGpeSVBHPT83NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9ITE1OUEw3Q01RU0RLhXR/e3t1fmx2h4d7fISDfot9daKaen6GgYSZhJqcYYaqn52Kg5COeneJfomIjnOLl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWEenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVmZ2BbW15TXGdeV1BUWFtVR0pKRUtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCYnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyNeIp/k4yRnJ2fppGgqqCxqK/AsrvFupaOkZSHe4Z2a3+MkYJ9ioOOjHiDgHOghIp9fYF/cIF+emh2bFJYTEBFMjExMzc2Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9RTEtUXVlSS2iCh3qJeXtxfI+LeXyIhn6Wh3ahmoiHj5KUpY2tqUiGrq+ui4GAlIuCi4KEkqmHgJiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZIbIB3cnl2aG1rX3Z9g4h/iISLeZWcm4mLiJF/enWKdnx4bW93foF1dXNtXF5eW2NkWGdlXFRQUFZZUERMS0ZPSUNGQ0NAQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5GOlpeSlqCerKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1dLQjYwLi8zMzEyMzY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzg0Ll2WcHOjVUZJS01NUFdgWW9ZXF5pjJKGlICDgYSRkn6FiJGBmpWCoaGYlZuapq2Tmbuxp7vHw6iLjKGljpSJgZF8cYOen5Gdf3eFhYuQh5BpaHCEgXSMh4SKcoaCd4iAe3aEfG52dWZ/lI6HiImHiIehq6KWiY6Xf3qBiHl5cGdreH98f3VsZV5bW15qXmJnYFpPTE5XUlFJUEpETkdDSkRDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneDen+Mf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShpKVf4qAkpuOg4CBjIqCiY2Df4qAbXBqXUJANC0tLy8uLjAyMjM0Nzc5Oz0/QkRISU5RUlRSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBJSUxMS05WYGN/ZmdtdJuZjpmSkoqNjpmIko+di6CgkqOqpaSsk6m2oqjBwq7Hr3i6lJp8jaGemYSThYKOoZ+UmZGFioWPmZGWbHB1ioyCloyNjnePhHFthYGKlpGDhYhxiKCWhpKJjY+WpLSpm4yUooOHkoN9f2tqanyBgoN1Y15kYFtnbF1sbF5XS0hOUlFNTExGSVBDRE1GQkNFRkI9OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYaRh4WJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDc1Mjw/UjVISEhMTE1OUl5uinxzgXyenJunpaGZoJailJyeqJ6oq5+orKmqtperv6u2yMi3yNDPvpugcGmrqZ+Ek5KFnKCam5mmkpGIlaKbm3h6fpSYk6KTl5eBlJ57d5WSq7KJjZeffJSdm42SlZijoaa1r5yQmKiHlo+NgIhsc3N9gX5zaWBeYmBiaGRgZ2ZcUkVKS1BPSUlMRkZNQ0hMRkdDQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbXxhd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjox8ioaPkI6BgoCJi4qEkoWDh4mBgId2XmJQNDYwLTEvLC4wLy8vLi4wMDE1PkFBTVFSU1FSU1RSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUpOT1FZbYWPd5SJoaWos7y3pK6rq6aotKuwtrKxrbuxs76cs8OrusnKt8O/uKWisLOsraqji5aYhaamoKOXgaaZjaKrqKWIhZSkoaCroaSoj5yxi5Wjpre6m6CisJKinaKdkKOhq6+ssrWilKSqiJmIkomVeXp+hoBpYmldZmNeZGReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2lvWHqFdoGThYiCm4OSkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4SBi4WGiJKGg4WJh4iHh3FuYUBFNjQ8My8xMTAtLCstMS4tND9DQU1VUVJTVVVWVU5bUEdIRTw+PkZIQ0VBNzs8NUM7PUZLSUdIUU9QV4GSn4StorGpscDGwqqzxbars7+zuL62v7TBtru6o7jFqLbJx7W+ubSoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqmutruyuqywtaKxrLG1u7e1rrSgp6ijp5qpr6yyube4ppu2qYykjpGTn4Z4gYV3W2NlV2djYmRgYWdgW1RKRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiY1d5dXCBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeEgY5/gYmPh4CGiIWKh5F6eG5dVkBFTTw2OjU2QUI3NjQvLzZDSEJRXFBRVVdVXFZQX1VJTEtBPz5HS0ZGRDs+QDdENz9CSkpFRlZTUF6PpK2jsbPBtbfBzMi1u8S9s7PAtrjBtb+vt3Sxs6W6xKSwxrmxs7G0qKS1tqqxoKKXm6KSpbCupq2rp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwbe6t763ure5rKywpbCprb2wvLrBwauYuaeUrY6Xl6qIfoN+bFhkYllrZmpmV1xjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpvfo6EgI2EbnpzeIdiuaGZo4mUlJaSlJONj5aSh4Z7hoGNlYqAhIGKenyLh4Z9ioKBi4SVfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNRUlhYWmdZVGBgTFNQRUE/SUpIRUVBQEQ8RTZCPkhHSkxTWlRdk664tLq4yL+5vcnMu7zBu7e1u7q2vbS6scZgdbKksZqeq72ppairqqSisrWgq6iflZafmaCupaempZ+kk6KnsbSnsrK9tsG+08nJ08bDxczCysPAvr2+u7y3tK+4t7bDucW9wsevnrmpoauOpKi1iIGBc2BjY19YY2BqZ1JYYFZSVUlFRU5LQD5HRD1KQT1CQD1GPjtIQTc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjISPc2xycnOH1cC1maCNlZiZkY6XkpaWjoaHfYaDjZaKfoN/g3h7i4OHfIt5gYqCl350fXprZnB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFVZVUpEQktLSUZISEhIQkk6RD9IS1RUVlxaW5K5wLi9tsW/urjJyrq2ubW3ubK3tbOutraYZHWonK1wXqKsnJigopuknqqllJ+gkJOOlpmYqJ+moJ6amYOknqylqrCtuLC9udTRz9bQyszSzM/Oysa/vsLKvcG8wcDExMXKvsjOs6S7sLSvmqu4u5h/e21eYV1aX2JaZGNQW2BTUEtDQUVGRTxART5BSEFARD06RT49Sj8zNzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vlpGQlG5sb3R1h7OroKGfi5mcmYyMlZGbkoWKin6Ih4yQi4l8gYNze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWdqaWhgZmlpbFptc5atpLyIhmdbb2hdWlpUSEtOUEpLUEtTUUhMQUpGSk9fXmJnaWGXt8ewubK6vbWxxMa1r7ixsLursrGnq7erjLannZqnmk6anYyOn5aRppillYqTk4mQiY+RkZ2boZealZaHnpqnm6yvqLCotLTU1dXW08vQ1NXN08/NxcLJ0L7JycrJ0cfMzcLQ0bevw7zEuaW1usKig3BlXl5fWWFYWmZaUV1YT1BCQkhFQkg7QUM+QUc/P0E3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJocW95eYOgqZ6ml4yam5eLjZWRmo59iYuEjYqKi5CIfISCcH+HgYZ7h3KDkouOfXF4dWxxeH5xem54c2xpgXBtY2ptcHhpd3x+y7/B36dtY3huY1thYEpQUlVOWV5QXVxOUE5UUVVUXG5tdoJxlq24rLSmsLWqrLy/sKq0pqS4pquuoKu0o46xrpqXmIyRk5GEjpuBjaaRnImDi4SKiYSLhJSVmJeTm5CcmJman56rrKWooqytz9LV0s7M09TU0NTRzsjD1NHHzdLT09fM0dHF0tbFwM7Hx8KovrfOnntwZ19kXlhhU15aUFFUUU9IPkBGQUJFPEBBPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OWnWGhYp3bHdvfX5/oZ6eoYyMmJOTi4ySj5aEeYWPkI2KiYiRhn+Ce3J+gIGHeoR1hZOQiH9vdnJrc317d3tzgXhyaoBzcmlvcXp5cXq+y5p+jLKEdnKEdmhha11DWlpbVmVjWWRqVFhcXWBkXmN3en6LgZipo6Whn6CopaqwuKqls6OhraKjraGnsZ+IppqTkpGJkY6IgZOJapSijJmEgYZ+kYODk5eti5WNlJqOhpORnpensKGhoaWkqcjNz8jCzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy4x0cGViYVlVWlRcUEtHSUpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJyUnZSFi5WJj4qIjYeOf3iDk5iKjIiIi4l+g3hze32Dh3d/eoaRlX+DbndwbXV/dnh9dIV8eWyHdnRufXaEdHh7nbWMO0GLxaV+jHxpZVdJQ2ZjZWNnamRud1teZmhrbmlugIOIkIucnaCdkJeYnqOjpbGjpLOfoaWdoKigo7GchZ6SkpKQio6LhoOPhH6cm4yNgoSFepR/gqmVo4yRipeSi36Yi5qSq7OYm5yonKe9w8a5tsbO0tHS0MzSy8nUztDV2tfX2NTZ2M3Y287J2drR1r7Ly7V6eHBmXltTV1JbVkZHSklFRT06NzpAQEI6RkQ/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXOFjXyXkJ2Lf4eSg4mGhYmBh3x4hZaWiI6Ch4WGeoR5cXt7g4Z1eoWOjZx5i3B8b296f3F7gXGDh4Bujnp0d318gnV+e4aHr3NYqcK2jZGCcG5iPV5ocnBxcG54doFlaG9ydXhxeouGjpORm5WflYeMk5ugmp6pn6Gsm6GamZ+lnp+rmYuajJCRjYR9iIeDhYuOoJmTiIOHfmyZeoSZhoiTjI2UjIZ8nImUj66qlJaYn5mnr7a9qa2+x8zJyczL0MnD0srU19jX2NfV29fT2dvV0Nva0dbI1MuWe31qalxbUVRUX0hDRklIPkE+PTc6PT87PUc9P0FBQURBPj86ODdFQjc1NTQ3OS81NjY0MzU1NDIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEP0NHUmpebWRiZmt2gIhxkY+agHqAjX6CgoGDfoN7fISYjYeLfoWGgHaCeW97e4aBdHqSno6gdo51gnR1gX1zgIRvgZCCb5KEdXyBhXp2hnuIt8Wkwcm4gZabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJWPl5GEiY+WmZeWpZyYn5aek5KXo52Zq5WQkImMkYKMhYiIgYaQkZ6bmYiGjIGFl3qIiZ+XkIiNiouCfaGKkYu8oZiUmJmcqaamrp+otr/AwLnHys7Oxc3K0dbV1dnV19vU1tna29fb2trYztvGiH17aWtnYlVYVlZOTEVOQzs9PTw4Ojw+OD1ANj0/QD0/Pjw5ODY3REE2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bImMknd2eop7foB+f3yEen2CkYmEhXqEh3p1fXRtfH2GfnR/k56RnoORfIZ+eI9+eIqKboKagHSZhn6BiYV8fZB6j6mOj8OhvYyco5x9iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYmLkJKUjp2akpSQlo2MlZ+clKCUkY2Nj4t+kI6Oi4SJkpaanp+JjJSSnZGCi4CmmYiEjYKFhIClh4qLuJidkZWWoqihnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuXt7em1rZ1liXFRQT0lETEI8PD45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD42MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PURSU1JYXlVYZm1tbWmBjopxc3mKe3p/fH97h3p8e4uGgn10g4V5cnpzbYB+hH53hZyim52UkoCMiH+Yh4CckW6HqIV6oIt8kY2DiISbfZqQioyjoqCQpK+fi5CLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlYyHiIySk4uUlJOOi4+Kh5abnI+UlpCKkpOGgIuIko2Kip2WmaKihpOdlqCKiYiNnJCDiI5/g4eFpIaMkLOYnZKVl6Gin5mSnJ2osrmspr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aByf3dpaF9eWVRYWUNBSEM/Pj46NDk6Ozc6OzszOzs/PT43Ozk6MTpIPjozNz1ANTE2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNjem1hfpGDb213i3h5f3qBfIV7e3aFhH9zcIWBenV2dnSEg4V+f5KmpJ+mopaKnZCUl4uKqJdzirGNhKeShJmThZmMopWfmJOImp6jkqmwoJCUkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNyJaPhoeIj5KNjZKTiYWKiYWWmZuPj5SThpSXg3+Pi5mIjZCqlpejo4iZn5aaiI6GlpeKhI6NgX+Ij6SJjZOompeTl5mhmZ+Zk52bo7O0pqO8wb7HxcXJyMnCy9PNzdSp0tHW1tbY2tTT2s6EdYJrZmBgX1BLVlxCQkdDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfXxtfYh4en56gYGCfnZ2gIJ7bG+Lfnl8d3h8hIeLfoujtKikq7OhlqegpaSWla+ig5C4lZKzmY2hoIykm6+ipJ2YkKeXqZmtsKSXlJWUkIuYmpagwI6jybmrmqKlrZmRm5yynYaFqKKdmIWIiI6VjIuTj4eBhoeIk5iUjIqTk4aUmIaEkZCcdJGZspWWpKGInJqTj4qQipeaiYuWjYZ9jJmeipCPnJqZk5mYoJWhnZWfm6GxrqOkt76zxcfEvcPDv8bOysnSp8/N09HQ1tjSz9i8dXx4X2JXYlhSSUtPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNW1xZSWhhO0iEinp7bYWGeXyEeICFgX1weHx9fG9zjHp9gnt4hYuJhoOSqLytqbO9r6Wus7Opo6KwrIqatZ2iuKWVraSXqa23pqSjn5mpmKqkr7GqmpiblJWRmKCXmbu7rcqhaba3qrCVmJ6iq5KXvaReqbKCiYqMlIeRfI+OfYOGjpCUlIiHkpaLj5WNi42WmZOdmrSWlauei5yUko2QkouYm4qSnY+LiZWgoY2VjZeZnZOcmZ6VoqCUnJ2lr6ihpbO4q8LIxLa7vbzFyMjC0KHGyc3NxNfW0MvTo3N9a19cVWFTUUdEPjxDQUI4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGZIYWBicElAi4l/gHKGh3yBiXWCioN+bX19fH5wd4d3jYGHe42PjIaMmqvDwLC9xruztMG8tKyrs7eMqLKtrb2rm7qkqK25t6qmpqKipKOqr7Kxqp2co5ibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIacrb2vgouLipCDjoORjnmBh5CNjpyIiI+XjYqUl5SQmpedp5qwmpGrnY6aj5KOlZCPlZeOkaCQiJSbo6yVlo+UnJ6UoJ6bmKChlJqep6ekoqSws6bBxsOwsLu2xcTDv82nx8PHw7zW0MzEyop2dWRfXGJdT0tDTEBFRz5BP0I8OjQ+QT09NT02PjMzMzI0MkExN0BCTj9HQENOQ0E9Qz07ODZDQjVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxoRl9pZ1pdXJOMjIh7h4uGg4x1hpCKgW5+e4F+cX6BepV6kpSUmJGTlai0x8nAwszBw7rHvLqvq7m7l7K2urPArqXApKuwvLyqrqujo56orK+1sKqboKqcopyWn7C0p4uiurq1wburqJyypKSolISOqcTDpIKLjoeIhIaVlIx5g4yRj5KhjIyUkY+Il6CXkpmVl6agrpyMqpyOlo+SkZWVjpCVkY+hk4aXn6Cyn5SblKChmaSgmqCcoJSYnqekpqekr62lv8TCrqm3tcnDvrbPssW+w7yz0cnHwbV3e29fWl5sVE5JRE1LS0lAQT1CRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZeJi4iSj4aJeYaTkIFygHuNf3eGgYKQeo2hlqiampi7vsnIysLSycrCzbzBs628v6e6v768xLiswamss7u9qrCqpKWjrK60rba1oKCun6WimKO0vKmbqLzBo7W2r6uSr6yqq5aGmqqnpZGCjJOklYqAdYmSeYWNkZCeoJKOlIuPjJSjmZablJSjnqmfkaWajI+PkJWWiH2PlZKSo5qVoKKctaaQn5elpKOln56mmJ6Vl5ylo6ioorKtqLvAxK+ls7fMwLmuw7O7vcG5rcLCwr+ZcHtjW1heXE1NTkpHRENIQkJBQ0s6NERIOjs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bElfWGFaZGRXnpCdjZeOnpKJin+In5KEeIV/lX5/kIiKkICVoJmup6OYw77JxMjG0s3Ozcu8wrewur20vcu7w8G2t7yts8C5vK6vqKGpqLatrqmyt5qerKKnoZ2rt7eppa++xLG9ubOnqbOzra6WlaWtqKCRjpKxxaeVjX2RlX2HkZiPqpmYk5OOk5WTpZ6TnZmToaKhnJifmIuMj4+eiFqQlpeSlqWZZZijnrOllqKWq62rp5yfp5eYlpiVoaSpp5+2rKm6vMO1prS1y8G4qrass7u4rqi4ury3hG5wXFpWV1BHS1NNSz9BSEVESEZGODVGTTs+Nz5BSi4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZWNMRqWUnJWhl6iWjJCDh6WSiIGHgpuEg5WQkZSOmqKfr76uoce+xsXIx87OztLKvru2sbq7vL/PtcS9t7m3srK2s7ezrKacq6u5q6mor7CXo66kp6SltMGwq6yzvsK5wLmzp7i0t7OvlaStsK+li5OVoY1zwZl9lpmEjpaZi7GVmpqVkpKZmaajlaCblpqpnJuhoJmKjI+WnWBKlpyalZmll1SWsJ+vnJ+llK+vraaboaaUk5mZjp2gp6GZtKmqs728u6uwssfAuKasq62xsaOhsrK0pXNxZ15cUFJNRVFRUFE7SEtJRkdBQz05S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTc2JWRkirl5mfoaiumJCXh4qnlo6Ik4WgiIScl4+eoJujpbXJtKnGvMPEyMvJyMzOx766s665ucHBzbXIu8G5tbqxr6+ytKeknKq0tauppq2smaSupaWorLrAqKu2tr/BwL+4srLDsLe9q6Outa26pYibl6abdr6fhJicjpKYmouulqGcm5eUmp+hqZ6ooJqbqpmhp56XkI2RnYNtdZOimpWdo5+QrrKjq5Wpqpirr6WloaWqk5KZnImVnKKelrGmqau6t72zsq6+ubago6eppaacnKypqY1maGJgU0xNR0hOSlVMPU1FTUlKQENEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYU1WSH5lXkhGrJWcoZ+7rpmUnouTqpuRkpOJqo2GoZ6Mo6yUpKS2x720wbvCwsfJxcLOyMK9ubKvubXAwsq2xrHBvLW7q6mtrLCjo5mqtLqmqqesqp2or6ekq6q+vKitvLS4vsa8trW4wLC9wLOptbarv6WPo5eRoZ+7nomaoJmXnZ2Ptp6pnKWjm5yhmqels6KbnqWcqKqdmJWPlJuLlomMpKGUnKKfobWvpaaTsauaq62fn6WkqpGWlaCEkJ6fnJappKGhtLS6ta2otbKynpyjppqXlZmqoZ54Y19hX0xJRkhOUUlNREZGQlFLSEFER0FWUkRIPEFHUTE7QTc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaeXpJ6ew6ybl6SXmaiblZqaj6qWlaimla2smaKqtsXCvL+4wMLAyMS/zca7vrmysLi0v8PItb+wvLe6t6ekq6usoaGbq6rEoqWprKaeq6+soqqov7imrb6wt7fGtrS5uL6yv8G2tLK0r72jlqOVkpuTrZ+QoaGkoqOekL6kqZ2prJ2doJumn72imKOeoqmroJ2WjZWek56HjoSNk56koZ21rKaclrKmmbCpoJurn6GNmpWfhI6hmpuSpaSamKuxtbGqpaqtrJyYoKGSjpCVqJ+UamVcYl5QSkhLT01IRUNJQD1PSEA7R0lIW1JPSz1ITlU0QkU4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE6im6SbnsWsoZ+snZytn5KinpaloKaprJe2saOqs7bFwr3Atr/Bu8nCv8rItri1tbG0tLfCxre+sbi1uragp62qq52en6WkwaWgqa6gpKmtsKKmqL21prK8t7a1w7Kzt7q+s8TAuLiutLS0o52klJGToKyfmKGdqKiqoprCramdrK2bm56YpqC9oZ2kmKurq6agmY2Zn5KeiI5Yf5aepqGguKqmlJi2o56yoqGcsJigj5qUnoKPoJeWjqKjlZClrrOrqaKipaWVlZyZi4+Rk6SfiWNnXGVhTUpLS09GRUFGSz49SUE5OUpKTl1RUUk9TFZcOEZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExPnqChmJ7Dp6Wis6CcsqeTqqOfo5+sqaydu7GprLWxyMPBw7PCw77HxL3Eyr2wsLausbWwwMW1urGwuratmqmwqambnqahqMKtm6yxnKqirrGqpKe9t6a3u72vt8Ots7PCv7LHs7q3q7S2raqippWVlKKroZ+fmaerr6+vu7Kmn6mpmZmXk6KkuKGho5Kur6ukpZ6SoZ6UnY6QjZSdmqOfp7Snp42YtJyjr5ufnK+RoJSYlJqAkqKWj46goJOLpqywpaeinaCekpKalIWLko2cn4BkaF1oZktKTEtTQkNASUc7O0Y+ODlOTVVfUlNKPk9eXT1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9mckA4PEiWd2VBNJ+kn5ufwqijqrGgo7SplbKrpqKksqytqbuyrbC0tMa/xMS1wMS+ysW2wMnCtau1qbG5rMDFtLiurba6pZmrsquqmKGnl627tZuosJutn660sqequrOnubK4srjAqriywr20xae+rq23tamnrKGWlpGlpKGhl5ekrretsrW2n56opJmUlJOjoLejpKWVrrGypamkoZ6amZqVmKifnpiin6+yoqeNl6+YpauYm5+mkp2PlZiahpaglYyQnZ6Ui6mpqqKnoZmdloyPmZCBhpaJlZ96ZmpdbGtPUU5OVD1CQU5DOzpJPzc3UU5dX1JWUUFXYFxCSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWpWQ1dGjHlmQzukpJyhpb+mqK6uoKm1qp24r6ukqrS3sbC4t7C3uLfFvcPHvbzEwsfBucHGwbqqtqWtu63Bw7e4qq2yvKOVrbCtspemqJGquaqhp7Cdq6CvtLOqqre1rLuss7K5t6y4sMG6vb+mw6qwtq6pqqumnZiYqqGhoJGXoLCus6uwuZmbqZ+ZlpKXpqC3qaWioq+xs6uxp6ugnKCfm56lnaCXnaS0sJufkJSmmqCpm5ajoJeZi5aZlJaXnZSJkpuZlI6pqaego5yYm5OHj5mLfoyXho+abGptYm5uWFFRWlRBQ0VVQDs7SEA3OlhQZF5QV1dEWV5eTkxTT19MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOG19aFxWOol7Y0M9qJ+coam8oaqvqqKxt6mltLKroa21va+zuL27vbe2wcO/ycS5xcPAwLnFvsG4r7aoq7eyvL+/tKqusrifl6ytqK6YqKmOp7ufpa2zn6uisbCzrKq2s7W8rbCxtaywtbHAusW2q7yvsbesrKmisaWepKifo5aPmJ+yqrOpqrOZnaebmpSNoKaktK6noaysrbGnsquxqaObnqiknpSgmZuptqmXmpKSn5meoZ+SraCamYeXmIydmp2Ui4+Wl5qXpqajoJ6WlpeUgZCVhXuPk4OMl2dtc2hwc19HWWZWRENOWERaOUhCNT5dUWhcTlpdR1teXU9NUlhkS0tDXWNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FWMTUxPWBWXzgpQzNZVVxnSzWMemZMQKSan6SstqOsqKSurbWprrO4pqawuMa2sLe/wcK2tLrFvszFucPBusC6xLjBubK1rKq6uLu6vrWrr7G3mZioq6urnK6rj6u+nquvsaOqn7Gtsq6utrK4tqqtrrGnta+0urzJsqq1tLG0r66moLOfmqisoKSVlZqZsaKtoKWvlqGkmZmSjaKlprKpoaaxrKq1pK6wtK+jmZ2tp5uXnZmZrLiil5ORj5mcoZiYlK2hn5aClZmOnp2alpGKlJOemqWjo6GZl5OSlnuMkYV7jYuDi5NsbnlvdXxhRmBqWklIWls9e0pHRTZBYlVpW01cYUpbXFpTU1NiYUxLRWBhYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1hUS0Walp+vqLGprKWjrq61qbezt6OstLfKurS7u8C+tLO3xMDMx7zEvbe/wMC4wL2yva6ourm4t8K3rK6yuZWXp66sp6SyqpSvu6SssrKmp6Kxs7CysbWwt7KprquyprivtbPExbaptbWrsK2pp6K2n5+msaCklJuYlLCep5ufqY2pop2blZelpaS2p6Kws6unsaetsLWspJmhrKicnJ2blKq5nJWPj4yYnaKYkZiopKCYhZOXkZ2cmJeXiJaPl5uonKShkpaSkJZ3hJGGfIaChIyNbnF4dnx/XUtlbFxKT2RcP2J7R0k4R2dXZltMXmJNWFlXVVhVaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGcyNydGYUxWJS1CLj1FTFE8M3JrTEREkZmkraSsraumo7Cysqq3sLWfq7W6ybiuwbzDt7OxtcLDz8TAwr60vcHAu7+8tMSoqrmxtrfAvK+stLSdoaexraWmsaWesrWsqrKxq6iotLmstLK1rLOsqquorKm5rbKwx7+4pLmwqa2tpqessKWko66jqZydm5qvmaKioqOQrJ+joJ+hqaaluKSrtLSkqquorK62rqKdo6iqnKCZmpKktJmPiY6IkaOglo6Vn6KWlYaQlZSem5mWlYeXkpWZp5ygoI2Tko6ReH6OhH19fYeKinJ0c39+flxTZG5eTlpnXUZElltHOk5tWGJaTWFiTlZWVldUWWheUVJMZFpbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RkOzYqSGRISis6ST8zQ0lTLD6Paz9ISZCbqaqhqa+kp6OztLC0tbGwoKutvcy6rsG8x7G0rbTCw9HExb/Bsr7Dwry/uL3FqK23rLS4vMCxrLKuoaOnrqqnpbGjq7Gqrquxrq6sq7K6p7exsqmyqaqmpaOtuqyqsMK5tKy5qKmoramnsKWppKKuqqiinpyirJWlnZeemKudoaeooaymoqystrCxoKmin6qtsKydnqanqZqjl5iQoKiYhoOPi4ufoJCMjpeekpGIiJKWoZ2WmJaGlpOTl6WcnZ2MkpCNin9/iIR9d4CHhYd1dHKJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU9jXE1VVlVXUVxiX1NPT2hYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLklnREY4PEIwNUVLWDFAlF1ATkaVl6ynoamxnKior7WsuLWuqaSrq73Ju7C+uMOvsKyyxMTOzsO/v7TBxMS6wbTJxKyvt66zusC+tK6urKanqbGppqiyprStqrCtrbGvsqyzuqS4s6ysraeroKOesLerqq25tqS1taOpqKysqqygqKansbGjpqWhoauWqqGUm6ClnqOiqqOsop6msbasrKKlo5qpq66pnaGlpKSZn5mVj5idk4GCkImFnaCNi4+Nm5CTjYWOmaWbkpGbi5ORkZSjmpuai4+Li3yHgYKCe3WBhIF+dXiLo4d4a15gbmdXZodkTkBnkkxEYnpXYlhSZVVNVlVVVE9cXWFWS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZCSUlEl5GvpKKpr5ipqK21qrawqqSrqam8wcC4ubS8taayr8TKy9G/wbu4wMDCusG6wsSusbWytLzBvrOxr62srKi3qqatsKu4rqixsK6xq7WqtbantberrKSpqpyknrOzqKiks7Sfta2hqairqKumn6urqLm2qaqpqaGpn62bkamhnaCjoqaiqp2bprSup6WpoqSXpaanqpyio6OfmZifkY6PmI1+h4yHhZ6eiIWLi5CQko6FiJajmo6NmpGSkI6Sn5eZlo2LhH90h4F/fnh1g4B6eH6AiJ2PcHJnZ3F4XGF0iGlPXZhWSG15VWRWUmJPTFZUVVFPWFtiVkhQalRWVEdQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JGO5WNr5+lqqyZqqStrrK0r6qlr6mpu767wbGwua2itq/Jx8jRwL+9urzDvbvDwb+/r7Kzsra9vMGxsrOrs6mltaikrLOyuK+irbWxr7G5qriuqq+3q6qeqqugo6G1ramhn6+yobWqnqinqqOqoaGsrai9r6uuraGnp5+rmY+vopiioKimnqebmKmwqaKfrKKhkqGio6eYmqilmJiYnY+Lh5SIfI2GhIWkloaDgoyHkI+ShYeVoZaJkp2Rk5CNkZyUl4+KhoZ4dIF/fXR4eoF7dHR7aoKIo3ZpXmVsgXVniIt8UldwXkt4c1RkU1FfTU1TWmdOTVdZZVlHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzSPjrCepKWqoqWjrKa0s7GppLCnqri+wbywqLmqp66wycfI0cK9wL65v7+9ybzCuLGwtbK6vLnAs7S8rbmso7Wmp6yxtriypqe5ta20vK+7pa2ttqqtnKmvpJ+lrKuonJ2qsqS0qZqqp6mkqZ2jqaipvauzsK6dqaOgrpuasqKWpJulpJ+lmpmnqqWemqmhm5GboKSdmZaoqZGZmpKQi4KPhX2Pgn+Ino+HgH6MiJKQkYWClJuUhpOijZORi5GakpWHin+Acnp4fnxod3x7dXFyfmmGeoSIZGBoY3KFe21oeV1eVkNYe21UYVBSWUtLTXB0XUlaW2daRlZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpKvmJ+eqaSjoaqkt7KxpKmxp625wb21sKS5rKiosMPJyczBt72/tbjBusi1w7W0s7Wyvbm6vbauuba/raKzpqqrrrW3tKmcuruosb+yuqCvtLaprJ6tsaOcpaepo52cpK+mr6Gfq6mnoqqco6mgrbunrrGuoaqio66enqyml5+aoaKbn5qZoqqimpqjo5WWk5+hlpyWpayLn5GPkYyCin9/j4B6mpSMiX1/jIeRkI2KhpOYkYeUo4qRkYeQmZCTgYh9eWx9dnl4Ynt6cnBxc3hqgnVqg2djaGFuc45tYmpwYG9CXXlrVl5OUVFLSU1TWVZNXF5tV0VYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl09I5GXq5ifl6ejoZ+no7evrqKvsKmrucK6s62gua+rp7O6x8rIv7fBvq+0vrfEtsKysLqxssC2u763qrm4vaqktKaoqq+tubComLi8o62+tLOhrri1p6aosLOgnqSlqKGkmZ6sqKieoKqvp6Cml6KooLC4n6Oxr6GroayknKamqZqam5+ilZybmZ2pppabnqiQl5KYnZOZlqGpkJqJjZCHfYd+go18e6GMjYh5hI2Gi46NhomTmo6JlZ+JkJWDjJaNkX2FfHRwfHFzdGB5eGpvcHFwan9zZHpsaGVkYmaHgGBbcmpxTU6AaVhaTVFMS0hQUlFITVxfb1RFWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsn56hpKG3q7CjtLSpqbrFt7OuoLitrqywtcXHwLa/wrmwtL23v7u+sKy+sLO/sr3Cuaq7urinqLWop6uvq7OwpZi7tqSrurWunrG4r6mlp6+ynKGkoKSkoZabr6ahn6Oor6GgopOkpKK3sKGmsaufrKOvl5yqpaifmJqdo5Oam5mcpaqam5uklJSXlZyOk5eiqKGQiYqPhnqDfYOKeY6Xio2HeoKIhImNj4WPk5iMjpaZi46Wf4aXjI95gXtwcnZub3RfeHdlbWxsamqEb2ZyaWtmaF5kdIFgW2t2aVpKf15cWE9PS0hIUlVHMzldXmxRRVlVWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJkVywylKGhl5ScqpykoaKgt6quoLu4pay9xbSxr6O1sKysrrXDw7yzv7q3sbO5uLq3uq+uwLO0ubC/wLitvbq1paKyqaepsautsaCZv7Wkp7W1qJ6yvKmopamwrJmjp5ykpZSYobGlmZ+jqKmcop+TpaCkuKikp66mnqWhqJKfqKKhoZmbnZ+RmpuWn6Gqm5qYoJSQk5aZjZSTo6ekkImJjoZ5hHqEhXydjYmKh3qBhIeJipKFlpOTi5CWlI2NlHyDl46Ld358bHRybGxzYXd1aWlqZ2dvhmhoaWNmaWlgamNqaFxme2NgU3RUXFtTTEpHSU9TQCEqaF5qTURXVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp2ipJCNpKaanZ6do7Stp6q6tqesxMG3sayjtq6nrq62v768ssG3sK6ytra4tratqr2zrrKxvb+3rry7saSftqqlpbOoqq2dnMCrp6WvsqmstbueqKmrsaWYnqmdpqSRmaasopiepKmhm6Gclp+dp7WmsKquoaGdnqGUoKafoaCam5mbkpick6WdrKGXlpyUko2Vl4uPmJupn5GIiYuIeIV2gYKBnYeKgol9f4WIh4aRhJaUkI6QkZGRjJJ7g5WOhnN9fWZ4b2tqa2Z1c2tjZ2RkdoFjZWZmZmpqY2tzW19aXW1kYU5pWFpgVkpHSEtNU1g+OV9saUhDVVRdW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao6CPi6yhmJeglqSzsaKyvbahsca8urGxpLasqq6ouLu6ua3Asq6urrausrizqay5sa+us7a6trC4vaymnrWpn5+vo6munKLAoLGjrrCut621nq2ura2imp2mqaWflZqnpZ+ZpaKonZqfm5ScnqyvprqorqKhmpuemZ6kmqSdl56Xm5OYn5KolaqnmpOampKMlZmNlJSaqaaOjYqJjnuBdIGBipiFh3yJiYWFioyKkoSUm5OSj5CQlo6Qf4CMjoJwgH5meW1oa2lmcXJrXGhjY3SBYmZnam5sZ2pqaG5dbGx0cGFUY2lkZlpJRkxNT1lRUFZhZYFVQVdTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kaGbjY6wnpqToZqpsa+fub+1oLTCu726saa2r6itpLa3trasvK+sqqu2qrO4rqaztbKuqbC2trGztbqmqZ+1qJydqKGorJqnvZiso66vtbWsrJ+xra+popucoquonJScpqSdmqqipJaan5yQm6Sqqqq8n6ekoJiamZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiZeZgJaKoZB5h5SMg21pfnaDcWyGi4Z9hYyHcF5jYWeEmIVri4+UknR3i4R+g49/Z4aAZ3VoZVdcaHNuTlBqY2dzhWhfZWZubWpdYGGKj4SEZk5LRDlHVGdeSkdQUFVVTEhTYXB0ZkZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsKzA4PUc2MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoujmYWVsJubk6Cbqq2qo73Fr6m4wri9vK2ntrClq6O2srGysLmtqaastKavtaOpuLa2qKestrKutK2zoamfs6qeoKObpaaYq7mUpaWvs7etrqWpraqspaGenKCnppuXoKWlm5unpp2Tn5+YkJ6oqaS2sKSjop2WmJeXo4igjpKZhqCHk5ygf6R/paqekpKakoiEcniNjoWIoXaIjGmXiGZ9c3igb4iHg36OfH+hoKCZgHyHnnSHjnWbimyHgYNsaGVjemxxYVOFbWJsaZhxWGlxcIhYXmlbbGxbiHFuenKFZ4aEWl5HTj9HX01FUlZWUVFSV1VnXk1XSVJSUEZHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiKppaDnKucmZidn6qqp6q/w66xur23wL6qpbewqaylsrSur7K2qqmlsK2ltLOcrbW2taanqLOwrbKnrp2qn7Gnn6KimaGhmq2zlKOlpbW9pqynq6qsqKWhoJifpqOZmaWjpJicpKmWlKOclJOjpKaht6SkoKOYlZOXkpyIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kYR8kJCRynKXvJzFenK1pruQe4BslrGrsHhoa1ixrm5labySvG5nem9yj9h+U2tjtrJ/gXKVdJqhqpBXT1diUFZORlVbWFFQUo1cV1tRQV1EUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKaSgKeqn5ecnaWssqiwwr2xtb+1t77BqqezrKypp66zqa+1s6anprSlp7ivnLOytqulpKexrq6wpqqdp6OwoqGfnZaanpytq5Oeop+0uqKqqaGtrqWhnZqaoaefl5unoJ+YnqenkZynmpSdoaaiobGjn5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUca6hpH54u31roY92sV9qtFulgGWckWBmgntmf2p4a6llvnJnpox1sWp8sXh0kpNjbW2nbluEoEVoZoeWRXWcYH5nfKSnglpfi6tpgJV4eWqnN0qvXFhTbGRbS05YX1xXVjtOiVBXVy9JVFNKREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKsqKWeo6SqsbestL2/r7bEsre6waapsKuuqKmvrqOwuq6jpK2yo6i4qJ6zs7CjpaCqra+sr6ann6Ohr5uimpaVlpqarKWWm6GftLOiq5yira2gnZqXoKGonJido5+cmaGmpI+dopmXoZ+qnqamoJqfoZaVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH9rgaZ7goaIkpSSd6tna7Fcq3qNhpR0iXKPhoB/iJCXeIKCi5iLg6CPhLB2d59xa2tsfItOpFhIYmKZfmNopmB5cnVTk4deUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCP7J5WFhBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5WIs6amoa+pp7Osqbu2wrC7wq24tr+qrK2traatsamgrryqoKe0rKOrtaSmsrOnpKKep6qyqLCnpZ6fn62Vn5iUlZWXnaugmZmkqLSuoqmPqaiqm52VmKCkp5qenKKfm6CjpKOVm56XmZ2iqZummZycoqCXk5GTk52D1ZOZuXCwwX7GhnzWlJu7fJqVpY+NnY2ke46HpIKlgnqseY+dVq96iH6farlbuneHhH2mgpN8mHqpeI2dj3uxbo6EdJG8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhObk5cUk9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6O0RIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSguMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzElm6KUmbKoqKa0qqW0qaS8t8GwucCxtbS6s7Wnsa+isLKmn622qJqnua2jr7Ggs7SxoaSen6epsKi0qKSbnZ2plZiXlZeVlqConJmWp62wqaOfj62iqJael5uhpaGYoaGhoZqhoqabnqGelJmbpp+bp5WbnJ+hmJCRlJGdiLJuaLVxq4dujqZytHNytnual6SLj52No3+RoaV+sHaDkdLSdlyue4V/pG+bqqZrh4V9rX2XmY57sHKSnY54s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa2BsaFBVSEk5PVZSWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGdkqWwrKOrvK2mtKantru8srq/t7azubmypLSzoLGxop6rsKSXprmtpLGwnLS4qqCmnaGppLGorKmkmZuZpp2Vk5eYkpKhpp+VkqWqsKailpOtoKWSlKCbpKaflZumpqGaop+tmaCenpCVm6GdnKaVnZaaop+VmJWRm4Wse3eodqONiIapb62KgqeDmJihiZKai6J/k5mJroV/grNccrNSrn2CgqR/cth+eIZ+j52Fmpp2r4aJkZyHd7RhmmWagoKUbJJasFhLmnWYeWZgrV52d4homIhrXa93lZ6PeGw1eciusl9CVG9eZ2BFUG1fcG1WVk0uZmRpU1hRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk6OTmfnpSgubCXtMKtqLOoqbK6t7O4vrm3sbS7taS3sp+zrJ+eqKyflKe1q6iwsauttKSbqaCfqKG1pqapopmdlKOhk5KbmJGUoaSakpCmra+moZWZqZ+ijpGhmailoZWZpamdnKSerJ2hnaCNk56anaGYmZuWl6Kgk5eQpp6GqX19pXihjo2CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTZgHeIdKiBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpOAkX9oZ6pkcnuBa5iHc12rWomgjmtvZU9KQ6FcW0x0XWJnTVthX3J0X0tWN0qblFhHRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84op6amr+rmLTCrqutqaW0sLextb65ubKwtrqourSfr6SdpKennpOqsKmvqbWsqq+hmKGgpqSkuaKjq6CWm5Chn5STnpmTl56ej4yLqLCvp52Xm6imn4ySo5eoq6eVl6mnnp6go62koZ6ijZShmJ+gkp6XnJWeoZWWjqucj65tcrRzqYt1iqdztHhzs4CRpKOSnI6JpIeQd7hvjHuLomprtlqhhWWXl2mgoqdulHK0dJOYf7JqhZKIrWt1s2GdZqJvh5Nql1ytX02hfIeRUnOjbHl/fm+Yh3Fcr1Y8nHdmVG9uLlynT2NTa2VibVpjXWFwe2NUWlI+Pm1vM0NCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKabm527oZuywK+tq6ynt6m3r7XAtLuvrre2qsC1qKmgmqWjoZyRqqmntaOyqK6qoJecp6Clq7mdo62blpmOpKKVjJ2gm5icn5GTlKq2sKiZlJysqZeMk6WZpa2jkZaqsqSfnqarsZmho5CZopagm5acl6GTnamclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJeLjKeIeqO2dX13dsKCmrJgg7p5wHx1uGO1gYyHqX2VgaypcXt/dLyIp6BpnWGmjq+ifox0h6p9vm9zvHSyg3V4gYpumohxbo2kdL1ed31aYXm8a1pWXGp5XmphZWdjbXhvWlxaREFAc0BDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnmp6ivKGXssOwraqrq7GnuK+2xLC5sKy5rq3Asaujop6joZubkKmkqrKjtKatpZ+WmqqZp6y5naOtmJSgkKWfkoycop2YnZqRlZKvubKslZejp6eUkJaknKStnpGgqKufm5+oo7Ofo6WOqKGUopqcmJWjmJCvoJKUqZ6EkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSewbu9mXqBsahwgHORuYN8hoaMh418ioeNl3yku7m9nHV6tKN0dpd2dLB1mZ5mhmqNtXRycXe2jF5/en2JaIN5bnlii6xwdYV/WFunakVlWlRmYGNeY1FoZ3FtdUJOUE1EO1pNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43MDdMVF9HJ1NiVzgqT15dPSs6VlYnPjs8p56gob+llrTDtKyrqKyrqbqusMWutLGstqa0uKypoaGlnqCdmZOrpK2ppbSnp5+blqCjnaykvqahqpaTnJChmpGPoaehk5yXk5eUsbW3rZmepKSii5KSppulqpuWqaWlnJqhqKWnpKmhkq2elqOel5eXnZ6Pr6iUm6ahjWp9aZumeIdyfZmOdHlkh3u9vsC6b5ODcpWHYXNqWl2aiWFjiI6Va2CAlWNtnXdilWuAmpWUZV5gY3Caimhyi32FlWdqfnJ1eH1+Ylt3dIFoUFxug318i2tYa3uCckpKb4ZwTnRNRVhdZ2FMWlhnY19PW251aXJSUERFTjtIST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPltPJz8yPqmgqKLCo5u1urWjrKWup6e1sazIq6+xqbOivbGxpqCiqJyim5mZrKavo6O0qaWbl5Whm6atqL6nqKWUk5uVn5mSl6SoqJCekZCYnLCyv6ybp56noomTkamaqKOamqygo5mbo6eso6Cro5qxm5SnoJaUnZ+dl7Cll6GnmZuQnJyio5iloZmbmZmZj5WBZ219cXeSl5SShYu1qoyFl5WOioyYloeUlYqEk5SRiY6SlJiUmJaaoKGanJSgnY2CeqWGbGp8kXyAdYqKgXGCeHl2doqAfIpqc4F1g3Vld313a296bWBjXXBoTVhaZmpgV1pwem5tZlRPRlM5T1pNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzobOiwKGksrK2oKqmsqelsLSqyKqsr6S0pcCns6CdpKSco5WVoKqnrKOitqufmZaWn5etqqXBnqujlZGbl52XkpOhnp2hp5OSmainssSwmqudq5+Ql5aonaqbnJ+tmaGbnaKkr6eipaifrpiXp5yZmqCenZyvoJyhppWXkpeTn6CVop2XoI6Wk4qKjY6XrpB8lpuDkoKLqqmFgJiXiYOPnoh6hJCHhpqSiIaKlo+bl42RmJ2jlpqTkZ2Nf45mobOvhYqEdnuSin12eXpvZnmQgYCJa3WBeohyaXN/e3aDh4JrdWR5ZmBqZWNkZmtZbHtwaWpcU0xQRF5URkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9iY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0W0c1PCxAtKC6r7+sq66ysaCrprGtoqyzr8Svqquisq28o7Obn6aioZyZl6ilqaakpbK0npWUnZmZsKWuvqCsopCRnZmZlJGUoZyXqJyEn6qro7TItJ+qpKuWlpeapp2pmp6jrJSen56gqa+qpqSsoq6bn6CgmKSenJ+cr6OYnqeSl5ackaOYl6ecmpdlgpJ8ZX6NmpBjeY5taWt7kqSqamSal31nhoplZWloe46hj2xojZiRo3draouZo56Zc2xueoONh3pYZV6Gg15ti4mBdlxoc3d3koCHgm54gniAc215hHR2iIiPg3xrh1lebHVkXnOJaWt8cWtjXlJOWElkWEFKND5HNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaWfury5r6y0saqlqK2tsKatrbC8sKmmo62usJ6slqCjnaKZmaaqnK2jpaipsq2elaOPoq+ltrmmrqOOjpqhmZOSmp+ZmaSVe6Wtoqi0xLiloqevn56UnqKeo5uiqamSn6GeoKqwq6ykq6Cqm6efp6CrlaGbpbCkl5uqlaCcmpGjlp2pl519vYOIcrRyhJ2GrWh4ucS4cZOio3qlmZhzq4J8y8DAu3GMooiDn32WmImdwL2Cl52djZ3CwXyCe5KNmsPAfmylsm6MgW/Ken+bd5GDjoF2eYGAeXF6f4dwd4WMk3lueJRjZl95ZGBlgmNedGhsZGNYTFdJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9WQUI7LziWo7nDtLCwwKmolKOvqbCuraaztK+ppaWmsKufq5iaop+cmqqnop2soqWopKS0pJ2ikqatq7ezp66ikZGZnKWSkZ+gmJufnYemrKSrrcDAsaGpr6mXkZ+dopqho6qjk6Cinp6tr6qtp6Skp6GmpZ2tqJGkmqitqZqcqZuroJWVpJWgopacfs6UeHqkgXmVlptfro9ejqeBoqB8p5abc6uDgK9eY42qe6eHhaB1l5OIs2OCq4ahjY2zaoSudH2XiLdhgq1ao81tkHV72nt/mXB+iJJ2fmV7iHZ2a3yIbn2GkZF/bYOQYXJscGhgYHlkXHFoamRnYFJUU1ddS09DNUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NDc3MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqets6umsqysqqKqp6+poKebmaWXnKKvn6CeqKejpqGfsKyanZWnrqywqqisn5SSm5+kk4+epJedp6OerqWrsKi/x7OoqbGulpKdm6KXn6mqn5Wgn52dra+prKqdqKikoquSrLKWpaKqqp2jpqShr5+RmKaYn5mTk5GXoHGFjJd1haiGcbF9nnKsfqGegaWPnneqgn2tf5xzrX6rh4afdpmSe3yXfqqIooyRjJ1+q3qIlJCfgHutVpzEeo9vksF9gZVtdW+MbWV2ZYZvYXducm+JipKPhG6SkWZwdXVxYWdtZV9vaWluZ2RYU11hWlJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08KD4xKTNWQEYhHEc6QzEuK7DTxsaytKCdo46joqKsr7auqLCmqKqmraurpqGknZmhlaClq5+ipaCoqKOfnbCsl5qWqaeurKinqJ6XlJqjoZKUoK2bnaair6ykrLWquc2yraaurJeVnJ2imJ6trJ2XoJmen6myq6urnKyrpKOsm6+xoqirrqWYpaqoqbChkZWipJmTkYSkaqR1iXqpdHqycIKmipmMcYigmoekYGBSq4R/roObdq2Bp4aGn3qZl4Z7ZoCjiaSZhoKjfal+gZaHrl99qVWdopKBeqKfgHvDr8WLcq+zs7lxYqmvwnRojIyYjoJunJVxbnp4eXBtZ2VlcnBmfGljXVdgalhZVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydXVv6GZq6egr6KesLSwrqmsoqemqKqrqaSmn5uknp2mp6ejnKyaoqyho5+vopybk6ukta+uoKianZaUpqOQmqKon6ClnLCmpKixrLbIsrWqrKmWkZ2coZifpLOdmqGUnZ+nrK2lsJutqqOiqqGzraGqs7Chmqinrq60opKVoqaYmpF7qmyehId1q3l8sG+CpIuJn5aWn5SB0ri0uMmAgbJfYJSpg6SJh6B6mJaaeKrJdJqklaipkZOajICciprGx3hmoYKlc4GfjoJ9r11wtGKwdUujhm2nR4KTZI6QnpJ8cZmVgXF8dX58blxmanNxZoFrXmFZZG1cX1lJTkxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKWinLK4rKqgpZqopaqrqaafpqaYqqOgrqudpqCsmp6ppZ2ntp+il5OpqrayrZulnKCUj6WskZmcp6KgqaauoaSnqbC1w7Kzqq2ok4mXnaWaoaOupZehlZmcpaatnLGer6mnnqyjt6yhsbivnZquprKysqOTlqeimZ6Ogp1OeJqBf596hKN9g6SEh6aenJ6ThLh7e3m5gn/MxsK2eJuhkIuffpqWl4p2npiKpZikqH+whZ2GoISsfZqUYqVspHCPhJCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Uk4x2fHOGgHFcbm54cmqBb1tkX2luYmReTExRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX11aWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq6fm6GssrOlnqCVpa6trqunnKammqOnobOvoqmnsqCZqqWUorWiopWXoam0uKSbop2jko+hsZmem6akoaKvrpylqKK2ssSxramtqZGHkJynnKKknKWXnpiamqakq5uwoq+lppivpLusoba2rZ2ctLG3sLGll5yun6OchY/RtcO3eYeOhZGTkICmeJShd4ygkYSlgYpxqoaFtG5yapmjnJWKnnyYmYaHj3OvgqWboo2mi5Odi5aQm21xsl2lc5N6m2uZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2NjpWNeX55kINuanlpeXJvgHVeZWVvbWZnYEpbWFg8SEhAVTRARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWTc42Krb+/vLq0npanpa21oaKZlaOopq6rrJmmop+moKG2p6Opp7GjlKyjjqWto52Qmpqqs7OknKScqZGUl66fn56mo5ynnLWZoqqktqvDsKmrqaGMhI6coqCmo5WampyZm5mnpaiZramvo6Wbraa9rJS9sKyeoa+yuaqypZqosKKnl3mokH18sHeKgKSliJxtsm+gh618oY+Dp5WYgKyJha6Fn5SqoKGXhp+AmZWAe5J+q4CdmpaLq3idoJKKlJKBeq9eo4F9pqdjnYB8l3Nqr12la3CFmV1gW4ygbZWRppmDlo6ZjXx8hJiAa25/Y390boB6YWdmcW5oZ2hDWmFbPktVM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBgYWFdXVtaWFNQT05JODA1Mi4qLEFUVlZWVVRVVVVVVFRVVFRUVldXWFZVVVFIRklKIygovZOag6nGwrbBs5+arKCtuKWjjpuko5+wsKqfpJ+drZmfuaCjq6CvqZquoZCrqKSWiZuQrrCspp6mm6yXl4+soaCdpaGZpJyumKGop7epwa+lqaSei4COm5qfpp6SlZqblJuapqWlm6qsraSln6qovqSWwqupoqCrsripraWfsq2nqJd2r36Qi5yFh326rYqZZbGNZZWtfaCPg6aVmoGsioSwhaaapKGhkYWgW2xqgbNgf617e4OBsW1nb5mYjIixW361XaSEa8iiZJ+Ae7xYdrVZsn1SroB6rFiAoW2YkKibjJiSmZh8epCef2V1f2OFeHSAfGJqZ3FtZ2VmT1ZkXEFVXz5JKD46PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFdaXmBfYGFiXl9cW1hVUE5KR0M1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vbqzwbOjnKympLaooIqaoJ+ds7Opn6OgnrWZoLSoqqyer62erJuVr6iijoibjq+sqKehppmukpiPqJmhnaSfmaOjppmgoqqzqb2vpKienY99i5uWoaCZkJKanJKamKmgopqprqimpqKlqbueoMampKigqrS0q62lnrqsq6uUgKmSo6+Om3+HpJeZkIKAuMO6g46ckoSnl5yCrIqCr4innJumqpB+1b3CqmKjv719fqOCg9e6uLWFlZODnr2+hGyjgm+rhGycf3qysMeDaauwvax4d6K+vHOAlo6mnZGbkpqfe4KSnHtkfnxljmd5gnthbGVramNQYVtTalw/VWJDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbOzsb+5sr2yoZyupqWypp2MmKW/qriyqKK/p6eynJ6xnLqon62vpqeUlLCsl4yDm5GupaKsoKOcqqCXiqKSpp2nnJqhqKKZn6Gsrqq6raijmpeTfIeZkaabko+RmJiPmJSpm6GZqqmhqqego6q7najFoqCuo6mzs6muqJ+5pq2tmXN1qqS3hmSJoHBorpGKkG5ud6SQmZ+Bda6YlHCPi3GVqKObl66kcm1sbGaLeG9ugplxgXpqcWlnipeWmHFpaYWIZ3GGZF2IYmpvWVxmfXamX2FxjpFuZWV/jZOPoZiZmZOZoX6JkZZ3Z4h4aY5ren95ZWxjZmxiS2RYSmxaOlBlRVInSzorIxwgGyIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVlXV1ZXWVxeXl1cXFxdXl1eXVtbVVdeqZSss6m5uLKzqqmhrp6jsqmXkr6yxMq/t6qfwKytpKGnrKC6o6SurK6njpeuqY+LhZaXrZ2mqqCdo6OgkYukkqaZqJmWo6qglp2mpqewu6ysmpuTknuElo2lmI2RkZmUjpiWqZagmKmjm7GmnaKruZ+vwaejsqWrr7CprKqmtqKstpWKoKiltp2JlqOZh6qbkZWdkqmymZqjqqCylqKhnZ+inKGloZWrp42SkoyHk5ydlZGZk5mRjpWGgaWbmJaOi5SUi5CGhH1niX50gnVzhopwp2x6lJGTkoGBjY+Qj52VopeamaSEiZaPc2qRd3GMeHd8emptZGNvZFVhWUBqXEhjYU9ZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhUVlleYGFjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1xcXl9fYF5eXl9fYGBgX1lZYKaWqKqltLaurqKwo62foLWxkI6sx77Gu7mro6WenKafsamkt6edqbWnqJGYraKLh4mPnKeVrKSfmKeenpKUo5anmqiZlKahpJCbqJmhtruoq5makIx8gZSLoZSKlZGWkJCUmKaQn5uqn5y2o56nq7enrsGto7alrq+vq6iosregrbuYkaWkpraikp6noI6qoI6Sn6Osr5qgo6+or5ijoJyjqp6enZyWq52TmaGblJCWq5qOmZmWkJafkomhnpWVhZKNkY6Vi4B9ZouFdYZ1eIeCc5xqhY+Uk5CJfIuVkpKYlKOTn5mkhYqaiXxzl3N6i4BzfH9qb2RecGpgW2BZbmRQYGVQWjpHR0U+Mj0+OS8qJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWJhYWFgYmJiZGJcW2OXlaOno6+yrK6jqaatn6e1qpCQnaW1vLCtraKjmnueo7KkpbGpl5u5p6OTmaqcjoaKiZyij66eopWon6CSlpiarYuplo+omamNmamPnrq3pKWZm42IeYGUjJuTipWSlJGNkpejjZ6fqZ6fuKOAhK+1oq+vdKO9o7Gfd3mfqbC5lHWso56JgKp/ZFxidqCPpZ+El31tkrOco6etqqJlnp+Sc3mal3CAmKiXbX+iqIplnKadkpiYloySnJKGnpqQloSSh4+PkomFd2qOhnaGcHuFf39gaIeKlJKLWnWUkGdokI9ze6icm2Z6momEeZlqhIuEb3mAa3JlX3ZwbGtoW2dmYmJwU1w+Tk5OU0c+QFVEOTEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVldYGhmZ1dRSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6CusKyrqaWorqKmraSSlqu2sbOnm6unrJd0jJ2woKirp5SXuaCgj5yknZF/iYibno2smqKVp6GdjpaRnoR1rY+IppupkZekiZy7tKigmZiLiXV3k42Wk4qTkZGUjJCUoY+boaeZnLKWgIybtZyzjJKOu6agfqeieqGttYCOjaWeg4uGkLGqr4yKl6SbeoCLrIacnaGnqKeHlYWYd6WbeoebgZingoJ7nLJ6ioahmJqVmJaCkZeXhZuZY3qHkIWPkJKLg21wjoZ5gHB/gIR+hXOFhJWReJZnknSgmnV9mYWjn4iYf5SMhYWaa46Ohmx4e3FxZ2R4b2psa1tlbGpldFxeSVRMUkBFNS5aVVU2KSEwOT0+NzQzNTY4Ozo9Pj5AREk/SUVKTEdTWFtZW2FhaGZZUUg5RUw8PmJWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop+lrKyrqKyfqLCmpqmlmZSvyL+xopeoqbWekIWdrJynoqCNkL6emo2fmqCQfIaPmZiIrJyilp+hkYyTiYaAkaeNh6KdpJSYnoefurKonpqSjoVxdpCJlZCKlJCPm4yQkp+Sl6Gllp6rh5+0ibSarYrKh6mtiLeFjbCBrqyCqIymmI2dfaiPcnt3nI+nl2iVpHm0jJ+epqeSmMKBf6uImKFynoCapX2XhZWygaF9oZOgkJiXgY6TnIuZkox9hZOHjpaSiYNtco+FfnlxhoCDe4N0hICWgI/FZn+ph4+ja56EpJ2EmoGOj4eLmnGQlIVoeHV8eGhodnFoaGxeZHBtZ21YZ0ddUk0yRDQ2TmJlNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmlsXFFFPUxNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqKfr6eoqKWrn6O3sKmqppqUoKOkq6SXpqu4o7CBoaidpp6diZS9mpONoZKej3mElpaRiKuZm5uZooWOi3ebnI+fkIiepZyWmpiHo7mupZqcjIx+Ym2Pi5OQjZCNjZiMkZKgj5SgoZmhp36hp4etnaCWrY+enJ2RhYCgjKmthaONqZmMmn+jdYCZlGuCrXZNq3iHjZyRmqingKmrfYOhe3qnap5/kmtnl4aXt4mefm5gZFmDl3+Me2Roi3OZfXmWbF19l21fU3CDXF9reIJfWGSBfIN/l3CnqmuDo25ypXCfhaBqZqBtW2+MfWdaYISAYlhQb3dmbXRza2pvXmtxbWtpWGlPXllGOUE0SERfbDUsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl5idWBNRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5WdoLigqaOmrJGgtrurraKZmKGipa2uoZ6vtaOok6GgoKecmo6ZtJqQi5+MlYt1gZSSjYqnlpWYnp9/koWFrKSHmpCKmamZmpuSiKaxp6KWmoiJgGluiIeLjo6Ki42SjJGTo42Un6CcoaR/k4GPo6GUoHeclY+ng6Gmf4Wnq4OleIl8hJp+onBzlIiWfJ+NeW2Hm4yZj5uomo+HnXuConN2pmaefnekX5h6fZN0om6Yt7S6dJOHgn+1qGSBxrh7cJW2jHKAmqRjc6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGCdmbOWcX2Yn7N1c1uesoNqY290dnFob1hrbXNyZl1pXmNMRT1ENlJCWnMzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1PUUBFX15bWlhgYHxkSEM4TFdVV2NhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOVlKO3mKqbk6CNpLe0ra2gmqKdpKOmrp2csq6sk5ihmqGkmZqUn6ubi4iSeIuFcYCWjoqQoY+SlJ2YfZCJjaigh5eOiZKjlJybjYupqKWekJeHhX5qe4d+fZCNg4uQkYmQlKGDl5+gnaCei4l3nJiijJ9yoYuHqYibpY6Upql9rYx+eqCZeqOTeIF0loiNnH2Wn4abjpibpYaiZKF8iJaQm41tnmibjm+amXuAi6d9cmh0q4Oeg3SqaJWaXZuFdoWdZ6prgLhmXKhwgZxglYxep3Z1h4h+nmiadIWTkpeOgJ9vmpBup5pdqH54u2t+qlyOhF20Z1xucnp4a2lccWt5eWNgZlhiQlFGTzdXRFNvNUtbWl9PWkRAMTUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXlllZ1hmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4mptJqniGOUm6u6sa+snqacnKmgn6+cnrGprZ2XpJuhoJmWlqGkmYaJjWqIgHJ7l4iLlpaEkZWYkHqKhJWknIqUj4aMnpKdnYmQqaOgmoySioGAaYGGeX+XjHuJjo6IkJebf5Sjn6Chk5hyaJ+Kn4+McJKMgamHmJ6hpZ6me7Cto6K4l3ejs6OkgIiUeZ17qpp/oo6cmpaIl3GhfIWNr7V9a5qRoXl+mbWjpKuohJl8m32dmn90qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJqcXuObICIhJl1m3iGibGzf4Cbk6d3g51uc32VcJp0a6RdlXZIZWRgdHF+fm5mYGxpdntkZGJRX1hdVVdAWkZRaEVTV1xiWF5JRD1COD9BOklGOExFWEFXUltWREZiXFpgS2BtfnJFQzxVX2JaZmpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZtXWVnZmtkZmxpaGtpk5yAsK2ZhFNeoKazubKyqZqijJysnJyqlKKspKKoj6CenZuZlpihnZaIh4l3hoFveZWFkZuLfJGTlohygIiSoZtzkJCBiZqVoZuFj6mcm5WLi4t9g2yEhXGCoYx4ho2IiJOZlnyUpKGeooithn21hI6enHullnqpgZWbj4mfm3ynaHdtfpl0oXNyfJ2GmXCTg659pIOmnZmBpG9eqGd1omNvpWGc05B9e5l4c3RiooaQfqNzpI91a4+zjGCCmIlzqrKovH93g21+v6aptF2bbnxwlm1/cqJyXaRnc6ZgaKZtm9SafYabcHp7mGycfHiXc26ppGdgZXpxgIRsZ2Zkb3V3Z2FjU1xmUVFiSVhKVWFXU1tlaltlUUZES01KS0JLRThPQFFOWFNZT1NRYWVlalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJeagLCrVFxLfqmvsbSvs6ObmYWZqaChpI6lqaGZqoqamJiTmZOSoZiPiIZ7cH2FaH2Pg5SagXeQjY+Jb3+Fj5OSbJeTfImSk6WWg4+rm5STi4aKeYN2iIBugp+Gd4CShoiao5h7lKOkmp+Js6Gitot6rKekrqVwqYCajoWAmpB7pIChmYaYcp6Eo66vipeMgI2kjZWDraCUdrW1tcmhc5SLgZ9gnZepbXmVh6CbdKKHd6B+k5eLgW9NZqOScJqHc6R7enRhg4FrfaBrcWRfnHF9c5ZoeWmztbTGpnOYfXqda5ybq3aFm212eJhqmnt1mHJQRX2zX2p2a3mHZmtoY3V1cG5XX1RZaVFTaElWTVlUVl1oa25WZ1dOS0JKTUtISk9BUUtQZWNqbWV0c3N+eXxudYl7e1RQT2xeaVxraVJqaGlsZ2xmY2VgXF1dXmliZGlre19dZGhjamZubWVpbGWhm4iupoRlP5Ohsqqur7WiopCAl6qio6WMpaeenaaDm5eWjpeQj5yTjoiDemp5h2WDjX+YoHl1j4iMgWmEhZGDjIWdjXqNi5amk4OZqpiNkouBiXp/fYt5cJChhnqBlYeJlqCWf5SlqJyWloRmbnicbKJkfHGld5uYcGemgJWKeqR6n5aDl3Kfd4GKlZePuW6RiqJifZmglYhtcmmqa3WgbW+mX5ppi5BploeblXSigH2aYIyGjXVviGJooGWefmmbdW9jZoiCbXGiWl5bY6FtXYiLbnp9c3JkpW14omRnp2iZc4yZcKJvVYmQb6BfZqhUi15UmG5tc2tygm1waWx5c2tvUllXV2ZaVG1JWU9dSVhpaXNqWWtWUVJGVlxNWFNhVWlrX3d0e31wfXxyg3uAc3aNgIR2XlFyYmdjcGdQamhoa2xuaGRnX11eXWBqY2ppdnVdXGNpY2pqc21ma21jnKSYpXpkdG2Lp66jqbCxpp+MgJirnZ+mjKOim6OigZaYk46akIuYkI6KfIdxgIlpi4t8mJxzdIl9kHxkgoeUiYmVmYJ8iIeXqJGBo6yQhpGLgop+gICPc2mQpoR9hpSNiJmgj4iTqaadiKZ4lZt+pYiWjLKYnpCCr5efpXaUhnipc6WPhJpupaKMkoSNg7tufaWvg4aFhpOVnJ98pXpyqJWglmaefm+sY5WKlpN3qG2qooGJdoiDd6uRpohrkbBrdrOMqWuKhm1tn56SlWB+q4uqdn5+i6Wedp98g6SVnaBqm4h4rGierYy2dHe+jaSTWYOnjqthdXJ0cXx1cWNrf29obFNXW1ZhYl1rTV1SXUpebW53X1txWVxgW2d0ZW5vcmJxdGB3en55cnmDc4N/gXt7jIGCgHZieGRjbnJkUmtnaG9scmpmaWFgXlxia2JtbHpvXFxiaWJsanhtZ2xuYpWlqpyAf52jlqmqnaimrqSZioKYrJqfpYqbpp2pnYWMmo+HnJGFko2MjXSHe4mEcI2FfpiUdHSFcpKDbX+LkYeGk459e4KGmKaOf6anjoGOiYWVdoKHk29si6mBg4yUjomdn4qMlKujoI+AdZSXiH6BeZSuo3+Bm3GPhneOiYJ9e3KnjHF9fXqYlpuEj3l7f36Hk5WTinaQmJ6gg3t9iWuMhVt5eXJ6cWlufpKJcYB1gY+Uk3GGhIJljH9fgH+Ld3RylHVveW5uh2yEhV51Z3eOZYCAhY2omn10e5VqiYhwgXZ9h3dubWeMc3p8mHiFXGtYeY9pb3hycm94eHBda4duamdWW2BXXWZrZFZiVV9RX3B4eWxrdmZqa2x3fXJydXNhb3VidHuBeHV6g3V/gH+AeIqFg317bX9sZHluX1duZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhsb2GNlLiopomgopqmpJilnKuioYSEmK2SnqGJm6ebqZiDgZuLf5aUh46KiY1yg3yPfX6PhXuYj3Ryg3CVhXt8kouGho+FeX6Ah5qljnyooYuGkJCFlYOGjph3coSpho6SnZCJn56IjJuon6Cqg4iOlZp+fomWraiPkaaPd2+bj4F4kG5+qIVwfZVxa3B9gaCNgJOOjGhtXYOLi5uano5zlYuIcXRrgXZ0gVlyboaRgX5+jGpdamR7hYSJgGBpeHqae4KKgXWBhYJnd4qGamFwcYF1XnGKgIiOpZSFZYuNg253i4RxhpB6cWdoZXyEe5ZbXGpnbnZbfHl4dW5zc4NnXG2La2tiWlpfW1pscVxfYVpfXWZ0fnt1cHRja2trfH5zfHh1ZG11aG18fnZ6fHt5eoCAfm+GioR7fXN+eXN/aFVccWlsdW91Z2toZF1hWGtobGtxcm1XW2VubGdzem9oam1gi4uqsKCPoqGanp2Xnpioo6J+g5mujqCViJyikaWVf3uYhX2SmYmJhoeKc36BjHaFjIKFl4pxb4BymIaDfpKDhIaKgXqBhYycoZGDp6KIeY6XiZWLi5yYhIN6rYKRl5qVip6diIihqp+hoqOLh5ObnKOZlqqhp6afkpqGlIx6do2Ng6d+f5KQkpOcsqablZ+QjbKTl4OljIyVmp+JkJuCiJGKa3yOd3hlgoaQi3yJnYSHjJCIiICEhJB3fHp0maCIhomdiYSTfn2KgIB1b3KEgX13hoaKj6WQgoWMhoKMkIx9h4yKkYR5bYOFfnqZa3JoYXSKcX56d3dwd3SCXV5vh2huX15aXV1TaHJWZFxdYmxodXt8c29wZGtraoB9bnmAcmpwcGxngXtygoB4f31/hHttgo2GfHl4e316g3hOZHZqcm1wemVrZWNiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZIyHnLmelqKgmJSYmJSYpKCefH+arI+fjoagnYueln14lIN8jpmKhoOEh255gYFzgYh+iZSEbWt+epeGg4KPf4CHhIZ9h4WOnJ6Th6ughHOLkIaSkYudkn2Ne6qEjpOYlo+cloeHnKWfopqdhYKSmpmZkJqmn6WdnY+Vf4+IdXuGjYSle3yOkJGGmKuhnpSdkI6qjZCAnYyIk5mego+XfoaOg293hnF1YH6Dj4Z1jJiAg4+ChoV+hYSUbnl1dJGhiouFmoSEjHN/iXx8cnF6h4J6d4qOg5Gmj4WDjoCDiomKd4aJi41+cGx/gnxuaGxtaF96f2l+fHZ1dnV7eFxfcH5udWBjW11fUmduVGVbXmJraXZ6fnFsbWRramiBgGxzgWxsdW95b4Z5boeAdoKAfoV2cYKNiH57enx/e4KKYGl8anVoaYJkamNgaVxjdWhvYnVtbFVjcXllcHp7c2VqbW2LiZ63mqGjn5GRlZeLmp6fnnt4n6eRnIuHpZSLmJl5eo2FfImRhIyCgoNufIB5c4GFfouRfWpofYKXiH+HjX1+hoSGfY+CkJydkomonYBwjIuMkoegoYqFjH2okYmQkpeTlpN4jKOgoJ2WmX+AkJqYkoybo6GkmZeRmn2Mg3d/go6Gn39+jIyPfJiloaKTmpGQpoyPgZqRiZKXm36Tkn6HjoF1dIJwd2F9gI2GcYuVfIiMcYx/goWGj2h3cXiLmJGPf5Z9h4pxgYZ7fHB3eoqDeXmPjIKUpZKLhY97hoaHhHaDhImJfGdzfYB5e3Fsa2dffnNofHV2dH1zgGpeYHR2cHdkY1lfX1JraVVlWV9haGp2eYJxZ2tkbWhmgIFrbn1ob3JsfnmHemyMgXOBgX6BdHaCjYZ/fHp/gX1/j2lyg25zaWGHaGxiX3FWdG9tbWB4aG1XanR2Y3V6e3Jiam96iYyespKlpZyOj5ePhpygm518dqWhjpiAjaOLiJqWeXuGh36DiX+JgoF/cn97dHaDhX6KkXhnY32Gl4mAiYt5fYCNg3mXgpaZl42XoZx+cIyCkZSGppuIjImDppWFk4uWl5OSd5GdoKGXk5Z5f46Yl46WmpyknZiSlJp4joSCd4OVjZ1+gYmNjHOXo5+ik5mPj6KMi4OWmIOSlpl+mIx8iI2BdnF9bntkgHyKhXCHk3+RgmyHg4KAiYVldW57hZGXi3yTd4uIe3+FfHpxfXeIhHiEj4iKl6GVgYOLdoiEg4J3fIOKh3hhenl+dH94Z21lYX9qandzdHV9cXxiY2B0bnVybWFaYV5bbGVSY1lgYWhrdnmGcWNqY21laH2DbGh0aG5waYB9gnltkIZxgISDf3R8g4yBgH16goN+fJBtdol0dG1limxqYmJ2VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPnK2XpqiejYyXh4afk5eZfniqnYuZepedi4uYkHl8gYx+fIN8gYOBeHR5e3R9gYSAiYuAZF99i5SGfoSGdX1+in99mYWXlZiNpKOZf3OHe5SSiqaPjI6Kk6GSg5GQlZeRi4GPl5+ako+Qc3+NkpSJnZ2eppeXjJSVcouNiWuEl4+ZeoeIj4lvl52apJSVi4yfjIaCkpx/kpKVh5mIfIqKgXpxeWt1bHt+i35thZKClHhwgYN+fouAZHFpe3+Wl4R+jHOPh4N4hnx1d398hH97gouEi5Ojj3iDgXSJh32AdHaCiYVwYXx2enF9b2JvY2R8Y25vdnN4d3N0YXZgb2x1bW9cXF9eXmpeUF1ZY2FobXR7iWxgaWZqY2l3iG5mbGlqbWiBfXt3b5CIc4CEhH10gYaJe4N9eoGEfX2OcnqLeHhubIdqaF9pcmOHZ3FvZXdnbmxheWlrfXt4cGF4bYuAmJmqoKOonYqKkYaKnYuVmH54r5mNl32flJGWk4h3fnyKfXyAd3iAgHB1dHxvhn2BgYp/fGFcfo+Shn+Dg3N7gId7j5KJk5Kdk6acloJ9gX2OipKkiY6KjZibjYaRmJSWj4qIjJKcko+LjG2Dj4+RiZ6ZoqGXlYiWkG2HmINmhZiOk3qIhJCKcJaalKOTkomLmYyCf5CdfZKPkoyZjnuKhYdzcnVrcG51fIp0boaQjpJxdYB8gYKIfGRwbHl8mZN9g4hzkImAc4d4bn98f4V7hIuHg4uUp4x7h3t+i4V3fnFwgYeEZWh5dXVwfGJfcGFrdF5xant5eWxzcGV4XW5sc21yWFtfYGFrW1BXWGVjZ3Fxf4dmXWppZ2JncY1vZGlnZWlpgXp3dW+OhXSBgoN7dYKIhXiFfHiEhXp/iXd/i3t7cniDamtgcGh0gGtyb21yZ29sZXxjboB6d3Fsd3eKfqKXoaigppuHjIqBkJyHk512gquVk46HoY2Wk49/dHx3hXh5f3Nze4Zrc3B6bot3gIGIb3FbWX6RjYiAf393dYGBgKCGkYuTnZihlZh4in+BjYmcnYqPhpKYloWJlZmQl4uLjI2MnImNj4JtiYuQkYqdlqGcl5SFl4dpg6KCZYSciZB+i4OLgXeTmJKfk5GJiZWNf36Pl3yRjY+OmpF8ioCDb3VwbG1vcHuFaXODjpiLcXeAdYKJg3lmcm51gJqOe4eDeZOQeXaHc2+IeoSLeYqFgoeNmqKHe4N1got/d3lubIKFg15zdXNxcHlaX3FhcGtecGp9e3FtbWpsdmBvb2pxbVlZYmFiblhRVFpmZ2N2cISCYl1rbmRiZmuSbmBnZmBoa4F1cnNwi4B1f4OAeHWAi4B5hX93h4Z3g4V8h4x/e3eKf2pxY3xjhnxucW10amhvbHZ4X3F/eXx1dXSAg36klZqtnqaWhY2Df5eUg5CgdoyglJOGi5uNlo6LenJ4dIJwcoV0cXaIbHBudm2Jd4N+gG5uVVGBq5SHgniAd3KDeoKhgpOClZSZnJObeJJ7g4ySpJqTjomVmZKEh5eZjJSLiY+Ph52EkIp8couFiY6InJqfm5WUf5N9aISbhmeFn4eShJGCiXGDkZiQnI+QjIyPjXd7kpF6jouMkZaMfIh8gGt2am5rbGx7f2F6fo6WgnZ6gHiDjHx5ZnNrc4aVi36HhXqTjnB5hG92i3mIi3mHfIGLj52dhHx7doKLfXdwamyChHtheXFubXN0Vl9wYnJhYGxuenFocGZmc3RocWthd2VdV2ZhYHJTUU9cZmVdeXCIfGBcaXJiYmVmkWpfaGVbZ3B+cGxxdIp9dnyFgHV1fox5e4WBeIiDc4aFfoyNhHx5lXhmcmuDYIh+b29remBqbnR/dV90fXmGeHRzhX14oI+ZsJyljoKKf4OaiICMnoCLmpSPhYiYj4+PhHd0d3SAcXCFdHByhHBraXdug259fW51c1JNgt/IktaTe3B1g3WEoIOUd5aSmZyRmXuUc4WQn6GTk5GJk5yUhn+XlomOjYiSjYicf46Bd3qMfomMipybnJuVknmMdWaHkIZrh6KEkYiXg4ZjjJGZj5WLl4yMiotxepSIe46IipKRiXmFfH5se2VzcGtrenlbgHmPj4F6fX5/ho57emdyanKKjomBhYR8lIprfX5tf4t+ioV8g3mAjpSZmYl8dXeDkHhybWdxgIVua3VwaGp1blRfb2VwWmBscnhna2tiZnhycHBjX3dgYFZrX152UE5LYWdjXXpxinVdXGV2YWJlZY9kYWZiWWlzc25rcneMfXR6hoJ1dn6Lc4CGf3uJf3KJiIGRi4h8fph2ZXNufWWIfm5wbIBZbG55eXRhdnt7jXZyd4p3eZ+Lm66bn5CChXeIlX59ip2IhqCRj4WMmISTjoeBdHhweXFvhG9tb39zZWV5cX1ten1qaGtjpJrB3K7woXJsdoR2haOGkm+XkZahlpyBknKGi6OXiY6VipGdloOBlpCGipCAkYqJln6HenV/iXiHhI6cmpiZjo92iXVthYiKfImig5GJnISFXouTl4uPiY+Li4WJbXuWgX2IhYmRj4Z2hX19a31keHVqbnlzV4h6koeFeX6AgYaMf3llcml/iY6JgYJ+i5aEa4F1bYeQgY6DfYF4fo+UkpiPdHJ3h4x1c3FndnqEY3VucWNqd2hSYXFnbFZfb3R6YXJkX2h+cHJuWmNyYGJWbllceE5NTGRnYl53c4luXFxkeV5gZGWFYGNjX1lqcmtua3N3jH50d4SBeHd7iXGDhH1+iHt0i4mIloaMf36Xc2d1cnlsi3tudHGBV3F6dnlyZXd5h4xpdoCJcn+ch5innKOShX1xjJR4eYyehIWhjY58lo2AmYeEe3J3cHRqcIFsaW18dV9heHd7cXV8aGBkfOvatcnD3IdybHSBdoubiY5qmZCQnZaUgYlxhYmgjoWLlYqMmJR8jZOIg4mQe5CLhY+Bf3Z4g4RyiIKTnJaUl4aMdYZ9boOBiIaYoYKTjJ6DiWGDlI+HioaJjYeBh2p9lIB9g4SJjo2CcYZ+f3F3aHZyaXR3a1qMfJKChX1/g4CEioJ1YXJqh4CPioF+fpGQfG2Ba3eFjoWRgnuAfH6PkY+ViG5weYyGdWtxbHN5gmB1am9da3dgUmVyaWZTYHB2dGFwYF1og3FzaldnaGJpWG1WW3VMS0xlZ19ic3OFalxcZXleXmRne2FkX11Za25lb2p0eIp+c3OBfnt2eodzhYN8f4d2d4qGj5mBjIJ7k3Vsd3Z5eJN0bnh6fVh6hnGAb2d5d5KCZHaGhXCKloWZoZqiiod0b5OLcnePnH6LmomJfKB/hJl/gXhydG5vZHJ/aWZteHhcX3l7e3FxgGphZmF/1baOkaZ4bnF3fHGTkY2Ha5qPiZyTjIZ7aYeLmYeBkpGGh5iOfI2NgYGKjXyPjH2JhHp0eoN7cYaAlpqOk5SBiHWDhXWCf4mRnJ6GlI+ffohif5OHhYiEio2AgINnfZGAfn+CjI+Qfm2CfIJ0a213dXR3dmtjjYGOgIV+fIV/hIl/cF9xb4R7jouBe36Qh3lwg2V5gYmGi4J6g3x+ko2PkYNubnmLfnVtbmtse35kaWxqWW53WlJqc2liUWNzeGxiZV5aaoNuc2JcaF9kbGBuVVtwTkhPZ2VcZ29xgG1aXGNzYFxjbHdkZV1dWmxsY21qc3eHf3FwgHt9dHiGeIWCfICIdXmJgZKWfImGdomBcHh5e4STb258gXdeg390gm1penOUc2dziHxykpGDmp+boIaIdnaVf213lZh+iJCEio2afYyadn52cXBsamF1fGdianV6W2B4fHptcX9lY2dnV52PX3FzlrzEhHdxlIqQf3OYjIedlI2IdGuIj5WAe5SMgYSbjHyKhn18iYx/k4h1iYV2dn2BcXWGgZ6VhpSPgoJxf4dzg3qIlpuXhpONnICIZn2TgoCGg4mJcoJ+Z32Le3l/f4eLj31pgH2DdmZveXhzd3Nsao6FioGKf3iCgYSEgGtdcHd6fYuIhXuAjn99cYBoeIGGioWDd4J6f5aLjot8bWt6iXx2dG9paH13ZV1xY1hwdFNUb3NpYk5odHhmYV5dWG+Ab3RZZWNdam1gcE9ZbFJEVGhiWmxvbXtvWVtebWNaY3B2ZGdcXWBsamNsaXN3gYJxbn57f3R1g3qEgnyChnZ+iYGWkXiDinSBiHN5eX6NkG9ve4FxaYF5en5ubXx2lmtqeIR0a5SNhZ6YoJmFiG9+jHZqeZmPf4KKgpWXinqPlm96c3BsamRgdHtpYGZye1thc316Z3B6YWVkjrGyd0tiWqXa0Zdye5KMkXl/loyFmZKNhm9shpKRenmTh4GEmYp8h395eImKhJWAb4qHcXR9e2p5hoOlkYWTjYN/bn6CdYJ3hZmXk4qTj5SFh3B7koR+g4OJg2+BeGiAhXhyf3+Diod8ZXx+hHZjcHOAaHlxb3WZjIaDint2eICEeoJrW298cn+Hg4h9hYh6iHGAbXCChY2DhHGDd3+Yi42Dd21tfYN/dnplaGp+cmFaeFtZcm5OWHJzZmBLbXd1Yl5bW1l1fXJwWGheZmpxX29OV2lSP1lnX1twa2d5cVtbWWtlWWNxeV9oXV5lbGhmbGlxeH+Hb21/fYF1cIF7gIF/g392gYWJl4pxgo1xe4Z8enmElIx1a3p/bG9+dIB9b3J8e5Rwb4B/eWaSioKhmJ2Sg4Vnh4NwZ3qXin6AhYKaioF8jY1peHJra2ZfYW95bV9ib3ldZGyDemFxdl9kZdXrvosyOj6LjoByeYaJj413hZiNf5OPjX9ubYWMjHV9j3+FgpWJfIN4bnaHhYOWd26HhGt1e3VleYOEp4yDj4yDfW1/c3WCeISaj4uPkZKMi4Z+e5KHeICFjYNsgHJpgH54bXx7gYqDeGJ5hIFxZHFofm11cXWBm4uBf4V+c3V9gHKAb1prfHN4iIGKe4Z/fId3eXBrhoKOgolxgHd+lYqKfnRtanaAgHV1XGlpeHFaV35TWnJlTFtzcmZbSnF4cF5bWllcdX91aVliW2dlbmJpTVhmUT1eZl1edmZfdXFbWVVvZFplcXlbaF5gZ21naWtpcHh9jm1qgYR/eW6Ae32Bf4J6dYKBjJOFcICLbnd+gXt7iJOJf2l7fWt0fHKGe3N3fX+MeniEfnxrjIyEm52WjIKAbI1+a2h/j457fn+DlYJ/fYqIa3VxZ2ljW2Nnc29gYWx0YWhwiXphc3ReYmOboJBuXDVar7V1aoCKfpOGd4eYh3WPjIp4cG2Fg4d0eYl4iX2TiHp+cmd2iH59l29xhn1odnluZXqJhaWHgIeNiX1tfXV+f3uKl4aBk5CXiIuEiXyPiXF8foV8aX5ta4F7eWp6doKHgHJgd4J+cWRyZ3WCbXV7hpSRgX2Bf293eXt0fWxXbX11c4qAhneGdYGJendybYh/jn+DcX17fJGHiHpubWltgoJ1bl1oZnRyUlx8TlxxXE9cc29kVktzeWtYWVhZYHGAdWFdXWBnZGhoZk5aaE5BYWRcYHZhXHVtWFhTdGFbZW9zV2pfYmhrZ21saXB3fJNsaISJfXxwfn58gX+CeneAgImLhHJ7h29xd4R/e4mNj4NqfntueHl3ind9eICCh3+Efn56bYSMiJijjYWEe3aLeWtthYmSeX17gpKAgH2Kg3BycGJmXllnX3BwYGFocGZqb4l0YXRvW2BkanZ7f76cp6TJuHKFhHOTfXmIlIR0kY2IcnNwhHuDc3WGdIh3lIl5eXBjd4Z5gJJpcoR1Znd2Y2p8hIiegoB/jo99cX5zg3h+kI6Cd5WNlI+Igoh7iYlseXp/dmh6aWx/eXNpenaAg31oYHiIfWpqc2h7gGp2gYyRlH56fX5xe3Z7c31hVXV7cXOIgoF7gnCGiXd3b2+CgYt9fHd8e3SNhIF1aHFobIiCcnBdaGN0b0xmdkxeb1VUWXNuYlFPdHliU1dXXGFwgnNbYV1oZWVjamRRW3FJRGRiXGRxXlx4aFVXVndeXGZuaVZsXmFqZ2Vubmhwd3qTbmmIjHl9cnt+eYKBgnx2fYOIhoNwdoNzbXeCgn6Ji5R/cYB8eHp6gYt0g3h/gYGChHqAdW99iYubnoh+hnt3h3xodYaNkXp/gHyJhoR2j4BncG5fZFxYZlltc2FhYXFsbGiJbmBzaVheY22Ad6nZqceGiLNyinlwjnZ9iJCBepSLgHV0dX53f3Bwf26FdJSGeHRsYHqBeYiOZXGDb2d1blttfYGQk4CBeZGSfXd6bIV0fo+Kg3KVipCOh4WFe3+GbXV2f25od2VtfHZtand2f398YGJ4hnpodXVjfntndYaOjZV8dH91cYB6fGx+WVZyfG90goZ+f3driIZzeGp0f4KCfHl7d3pxin98cmd0ZG2LhG10W2tgdmZJb29MW2NYV1Z4bWJQU3V2WVFVV11gcoRvXGBjbWRjXW9jVF1yR0JmX15maV1ae2NSVlx1W1tna2FWa2BgbmZmbHFocHZ4j3Rrjox1f3Z4fXeBg4F7dH6DiIiDb3GAdXF1foaCiY2Le3d/eIR8fYWHeId8fYF+hYB7fnN2eIuOn42Je4p3dYN6Xn6Hmo15h4R0hoeEd4l6Ym5sW2JbW2FVanRkYFtob3Bnh3FhcWZXXGNrf3zKzoa5omtubottcoVyfoWLf3uShnp5dHp1dXtqbHZjhHaSgnZvZ198gXmLiGVxgGpqcWNYbHuGnImDgnKXlHZ9e22HcICJioZwlo6QiIWLhHt5f3JycH5naHJjbnhxamxxd319el1leoB3aXV5ZoJ2Z3SHi42UfXKGam9+gHhte1xYcH1sc36Je4Ftbol/cHZmdn6AfoB1enB5c4V7eHFlcmBti4Frc1hrX3ldSXBsTldWX1RVfGtiT1R2c1FSVFZdYnSGaVxga2pmYlluYVhjcEdBaF1hZl9cVnxeT1ZlcVlbamhdWGdhX3JmamhxZ3Fzd4d5bpWKdH97d355g4eAdXN/hoWOg3BwfHh3dXmHhoeMhnp8f3WLfn2GhISHf35+fYd/fHh2eXaRk59+jX2LbnWAemSEiJeGc5KKb4WFgnqDdWRuallfW11dVWhzZWBZZHJyZ4FyYWtkV1pfaX94vq56n7duYnSHaXR8cnqEh3t+jYB4eHN3b3t3ZWpvYId1joFzamJefnh4ioJlcH1oa2taVm93i6SBhX9xmZJxf3d0gWx/gY+GcpOHjIeEiYV9eXVzb2l5YWptYW12amdra3l3endbZ358eGVzfm6EdGZ2ho2GlX9vi2ZreoJ0bHRiW256anN6inqBZXSGfW1wZ3R+d3x+cHpqeXqAeHdvZWxhbIl9bG5Wa2F4VkxrbE9ST2lOWX1nYk9VdmxNUVRVXmZ2hGdeYXFoZ2FXaV1ca2lKRWtaYmVXWFV5Wk5XbmpZXWxlXVplY151ZmxlcWZzcHSBeHCZhXZ/f3h/fIWHfXZ0goeAlYNuc3l7e3NzhYeIiIR5gX12j399hImOg4GDe36Lg3t3fHd2mp2XeoqDh2p2fn1shIaUgHKPgnGGgn6CgHBmbGdXXVtcW1NlcGVfWGNydWl2cGRlYldbW2h/cG9yf3OJZWZ6f2p1dnR0hIV4gYV6d3R1bmt6cWJoa2eGdI2DbWZeX3xveol9aG13ZmpkVldzcI6nfYR8dpaQc3tye3lsenqPg3aXfIeGg4eEfXVxc21odV1taV9sdWRnZml6b3tyWWeBd3VocIB4gnZid4WLfJSBbotqbXuAcGVyZV9reGZxdYl6fWF1g3Zpa3F0em94eHJ7ZX1+fnd1bmNlYWyGfG1rVmpjclRMa2xQTE9wSF57ZWFOVnVlS09TV2Brd35mXWdzaWVfV2NXYnFdTEtrWGRiVVRVc1dNWXZlWl9sYFxbY2Vfd2dtYnBpdG9xfnV0mYF3f4B4gH+GhHp9doKDfpiFbnJ0fHt0cYWFj4KAeot1dJCAfYGUjoCFhHx+jIZ6foF2e6OlinmJhoVsdX17dYSDjXpvhXN6hX2ChHVuamllVl1bW1pTY25lW1hidHtqaG1oYGFXX1ppgGlrb39nbGJpe3prdHV1b4aCe4F9dnZuemhqeWpfZW5pgXeQhGdlWGJ3aX6GeW5pb2ZmXVVZcGmPqHeBenyQjnh1b31ucnR4jn53lHSFgoCGiHZqc3ZoaW9cbWVebnNfZ2JqeGh7bVttg3N0am+Afnl3YXaFhHmQhnOIcW95f3FicGhbbXZjcHKHendhcoBvZ2l4c3Frd3Z0dWKCen12dW9jY2JtfHxra1VpYmdUTG5oUEhSbEVheGVhTVRzXkpNVVllbHh7Zl9tcGpkXVZgVW9vV0pTaFhnXlhNVWxUS1x6X1xfa11dW2JlYHpobGFvb3Zub3d1epd9d4CBeYCAh4Z6eXqDfYGThHF0dH56dnSFiJB9gXyQbHOVgXuCn4V/h32AfoaCgIp7doSsn396iIiEbHKCenaBgYJ0bodvfYB0ioBqb25kZFhfWlpaVWJqZ1xaX3WCaV5tbFxhVltca4FlcXR8aWpdbXh3aHV4c26GfH5+enZzbHpoaXhnXWRzaHp3koFjY1Rkb2eBhHZ2ZmhpYVdWWWhkkKhvf3iAi456cG97ZnhueYp6do5xg31/f4ZuZHdzZGlpXWxiXnBvW2dfbXVlemhddIBvcmtxe351dmJ1hYt7iIiAf3dydX5zYHBsWHByYXBwg3tzY3GAa2Bsem9pZ3l3dHBkg3R5eXRxZGFkbXJ+amtUaV5fVUx1Y1FHV2JHY3ZlYUxUcVlLTFhYZ2x2emVlbXFmY1pYXVh3ZlRKXGNYaVhYSFdlUUlieFtdX21bXl1iY16AaWtgb3R4bW9udoOXeXKBgH1/iYyGfnV2hniGjH10dXWCeXp6goyOfX+EiWp0loF7ip19foV5gHt+fIaJc3GProx7e4eQfmZxiHp0fn12cm+GbHt+bZB6Y3BvYmVdZVZaWVdjZmtgXV1zhmlYcG1bXldaXGx7YnF3dWxiW250dWh1d3Juhnl/gXp3b290ZWh0ZVtndWZ2dpJ6YF1TZWZqgoFzfGFjaVxUWF5iZJClaXl0goWQeGxueGZ3bHuDeXSIcoB4fHiAaWZ3bWBoYV9rYF51a1lmXW9vYnplW3d8a25ucHh5dHRlc4OSf4iDiHp2b3F8cWF3Y1pub2BvcIB7cmVxgGRebXVpY2Z4enJsbYB0cnxycWFeZW1ufWVpVGhZWlVOeWBSS1pZSGJ0Y2BKVW5VSkxaVmlscntjbGxzY2FaWlthd1xUS2NdWWpTVkdZYU5IanZYX2FtW1tfYmNdhWloYm54eWxvanaBkHhtgn6AgZKIhIF2dYl0i4Z0cXZ2gnd9fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OIhHNwmaJ7e3+JlnhkdYl5c3l2a3Rwf2x5fHCRcl5wb2BnYmxUW1pXaWRtZlxccolmUnJtW1lYV2BsdmRqdWppX1tudXJtdHV1a4Z9f4B8d29ubGVpcWNba3JkdHaOc1xXVGRgcX9+cYFcYmNeU1phXGSTn2VycYSDkHNranhsbm95eXpxgHZ/c3p6e2RmdmheY1thaFxed2lXYl5waGF3YVt8dmpqcm94dHN0aHGClYOHf4R1cmpwe2xldldbaWxhcHF/eXNlb35aYG9xYl5pb3xranJ9cW92aW9gW2RrbHthZ1RnVVhSUXdcU1BZUkhjc2JgR1ZsUUlQWlZrbGt8ZW1vcmFbWlhZbHBXU1BmV1dpU1RGWlxPSXN1WGBkbWNYYGFiXYxqZGVtenhrb2l1eYV7a4R9gISZfYKEeX2IbY+GcW92en10goJ9i4+Dgpd0eIKThoGfiXWBf4F0f4Jwh4J1b6KXc3uGjId7ZneLb258cGd4cXtsc3ZzjWtedG5hZ2ZrU15cVmhibGxbXHGMZE5vbVxWV1VmaXRoY3RlZV1acHZvcXZ2emyIfYB9iHeQc2Nla29hXW5tZHN4iGtaVFZiY3d8fHCEXGNfY1RaYFpjl5VjbnCDhIlyamd5bmVydXF6a3l0dW96fnZfZ3NkXF9XYmRZYXVmVl9gbWRhcV1dfnBoaXNxdHF1dmtthZOCiXyFcXFmbntvcG5SWmVpZHByf3VzYmx1VWJxa1tebmR7ZGt0fHFxcWlsX1hkaWp4XmZVZVVWUFVvWFJXVFBIZXJfYUZYa09JWFRWbmlkfGlreGthV1xWW3RkU1JXaFFZZ1RTSFpbUE54d1tfZm1qWmJgX16PbmJna3l2bm5pdnZ+fm2EgH6Gl3t/h4GKfmuTiHJndIB7dYCDfomOf4uTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYx3eG56jWBlfXFnenR5bG1xd4NnZHxtY2ZnaFNgX1VnYGxvXF5ujmhNaWxgVVZTbmZza2Z4ZGVdWnJ2bnN7eXRuiXuBd5x7emxiZWxtXmBvamVxeX9nWlZYX2x4e3pvg19iXmhWWWBYZJyIYmtxgYZ8d2tqdmxbdXBqeWl1cm5ve4BzWGtvX1leV2NkWGVxY1RfYmlhYmxaYH5rZmxzdW9teHZraIWMf4l6iG1wZW97bHFsYlhfZ2ducn9zcl5pbFNlcGRVYm1heGJvdXp0am5ral9YYGZodV1kV2JWU09ZZ1NPXU9PSGVvXWNHWmpOSl9LWG1lX3hobn5kYFVeVF11W1RTYGdOXmJVU0pcWlFadnZdX2ZtaFhjYVtejnFjaGp4cnNtZ3ZzeYNzgoN7iI5+fIqIjnlukIp0bHOCdH9/iIWHkYSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6OjY2NjY2NjY2NjY6NjI2NjY6Pj4+Ojo6NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCS5KamZmZmZp6bG5tbm5xSSwwMC8vLEmFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIaCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTM/k56cnJycnXdlZ2dnZ2s8GBwcHR0YO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmHiIiIiIaNkJCQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaNjo6Ojo6Oi4qKioqJiYaCgoKCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkpKRiYeOipCSk5GLko6OjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyMjI2NjY2NjY2NjY2NjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoWOiYmOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCQiI6NiZGJjJCPj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkJCJjoyJkIiOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x8fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouLkIiNjImOh4+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2PjI6Ni42Mjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5eXt9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHt7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx7fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fH1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eHiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fn5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTk5OUk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOTkY+TkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZGSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSko6QkZGRkpN/hJORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCShHmQkZCSiHOJkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CNcHuQj493doiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo51bIWQh3J4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjXhtdY6BdHaGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uIcGJneHNvdYKFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3JcYmlcYmRrZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYGN0bF5qbmdkYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpba3NrYW10bmVZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtlb2taaXN0a1JRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OWGJobW5vcHFuU0xPUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0VDRklWY2ZncW5taGddUU5OTk9PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVFS01NUl9qbWhubW1qaGZjY2NaTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8PkVUXV9jaWxuaW1sbGpqa2pnXk9HRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7OztHVl9ucHFrbWtqaW1nWElFRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs8PVFlcXJzb2xoWEVAP0NGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5OTxLbntxVkE4Ojw9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT09PDtKbGU5Ojs9PT4/QEFAPz9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9APFxuQD5ERT8/QTpGXz4+PTs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdIODs6PT1BPEtkPTw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw8PUlNRkZ1d003ODg6Oz4+V2pBOzw8Ojo7Pj8/PT05Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/enx3Vzw9Pz09PkZodEw6PT4/PT0/QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoOEg4ODgH1ePkBDQEE9SnJ7WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2Fdk1BQ0VAPz5Ze4BdP0NFSUpJSU1NS0VDRkdHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhGSEZRbm5wcXJ1dnl7e3t6fH1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIpsQUFWdIeJh4eHiINXSExNTE1OTElHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINWbISHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQENDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpUgYOEhIKChYaGhIKGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhLTUxHSUpNTU5NSkpLS0pMTFNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1NTc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouMiVQ6ODY1Njc2NjY1Njc3MzU2ODo4NzY1NjU2NzY3Njg6Njc4ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGUFNSU1NST1BQUlRlcXFzdHR2eXt7e3x9fn5+f359fX19fX9/f39/f35/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JlhYOBgIGDg4ODg4WJi4qJiYqKioqLiYqKgUc1NjY0Njg4NzQ1Nzg1Njc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc3Nzk6OTg4Nzg2ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ6e3t7fX1+f35/fn19fX1+f3+Afn9/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDg4SEhIWGiYqKiIeIiIiKioyKiYmMej48Ojg7PD0+OTo6Ozg6Ozk6Ozo6OTs6OT09PT47Ozw9Oj07OTs7PDs8PDk6PDg6Ojo6OTk5PD88PEFCRElKTEtJS0xXb3JzdXN1eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMb08+PkJERUVCQUBCP0BCQUA+PT4+QD8/P0A/Pz09P0I/QUE/QD89QEBAPj9BPT48Ozo7OTk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t9fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUJBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4qKi4mMYz5ERkpMSkpGR0hFRkdHRUJBQENFQ0NBQkNCP0BESERDRUNFRUFGRUZERUZEQEI+PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyLioqHVkhNTU5MT0pKS0lJSkpJRUNERkdGRENFRkRCSElLSEhHRkhHRUpJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtBQkJBOTg8Pjs8Oz5AP0E+QkJHR0pZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjYyLiox/UE5QT01PTEpMSklJSEpGREZISElFRUhGRkVMTE1JSkdGSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7PD06PkA+P0BDRklKUV+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjIuLio1yTlNRT05NTE1KSEdFSUlFSkhHSkpJSkdHR0tMTkxNSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIuLi4tgVFRST09OS0pIRkJHSkdMSkZLT0xLSkpLTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRkZIRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIuLjn1ZWFRUVVRPTUtKREVGS09OT1dVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQkdWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLjGlZV2thRlRRUVBJOztSU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl4ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0ZGRT8/QUFFQUNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh21cZVU6WVlYU1E/QFZVWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd5eXp7ent8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKi3lvcFlbXFtSVFJWVlRbWnWDWVV9kGFdWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeEin5nWVlcWVRWVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbU1NRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2AfFxRVlhVUlVSUVFMT01LZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW5xVkpMTk9LTUtISkRFSUVDPlRkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3t9e319fX59fX1+fX5/f39/f39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11MRD9DQ0NDQj9EUEJDQEM9Q0lHVkBITkxHXWlQSEZORkRFRklHSENESEdIS0dEQkFEQE9RTVJkcnR2dXN0dXp8e3t7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT09MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn+DgIODgoCCgIKBgmtNRz9AOzs+QEA/Pz5rUEthRUZISUVCP0dMTkdNUVVJQUU/Pzw9PD09Pz0/QUNDQD88PUI+Sk5HVW50dHVzdHZ4enx7fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOTExRUlFUVlRXUlFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQkJEQlxdT3tOT05OS0xNT09RTEtNV01IR0BBPDk3NzU5OT07Ozs4OTg5PzxCSD9cc3R1dnV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZGSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aWE1MVFRTUFFVT0xSU1RXWFRUWFFMV1laVlhYVlhZXVdYWGhza11WYXNrYmFfXmRhX15ZVFFOTk5MSUhKTElJRkNRUFNbV1RUTlFTWVNcZVVPU1NRTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTlHbXF0d3h5e3t8fX19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcG5tZF1fX1lXT1BYVlZTVFZPT1RWWFhZU1VUTEtUVlVVVVdQU1VXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTE9SUk9NTU5OTk1KRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz49Ojc4NzY1OTk2NzY2NVdwcHN3eXp7fH1+fX58fX18fX19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF1SVFpWV1VUV1RSWFhZWVlSVU9KR09QT09NUkpQUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMS09SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0lGTE1QTUcvRV9SPjM/PmpvYVJSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR1eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRkZISk1MRUdDT1JDOEVOU11nU1BTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTUxLSTw5ODc7PkA+PD1BQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFFSYVxRUFJPU09PUExMT01MTUxNT05bV0tNUU9HSUhDSEpMTEpGRkZFP0JDPjxCRz9CP0FkcHN3enp7e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSEREPTk3Nzk/Qj47P0JAQD5BREpFQ0dHSUZJRUJCPz49Q0JBR0lFTk9iZVFNT05XS0xNS0xNTU1MS09OU2ROSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7ent6d3R4dXh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ2clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg6Oj9CPzxAQkFBREVHSkZDSElHR0hDQz9CPz9AQT5ERUNMTlJUTEpJTVRHSUlKTEpLTElKTE1PUFJQS0dDTEdDQkpJTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFHS0RHSEhHSktJSktER0I9Pj06OTo7QUI/PUJCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQENFRElNUEhIS0dIS0RISUxNSEpMSElKTEtNXVJISERORkFESkpNTVBNS01KS0ZHR0pNTlFOTGJtaXZ2d3p5fHp9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjtAQ0A+QkNFRUlFSUpMRklJR0ZGREI7QUNDPkBDQ0NER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lHRU5IQ0dNS01MT01NTk1LSEhJT1JRUk5SZmZmcW9zeHV7enxsaGpvZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQ0NCRUBEQT4/Pjo7Oz06PT5DQT5BQ0VGSkZJSExIR0dHRkVDQD1ERUI+QUNDQ0RHSElHTVBKRkZHS05PS0ZISUZFREVJSkhKSUZIUEtESU1LT01PTk9QTkpKSUxSVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPUJBPkE9Ojo9Pzo9PkBCPkBCREdKRUlGSUhGRkdFQ0JBQUZGQ0JCQkRFRUdHSUZMUUxJT0pKTExJR0hFR0ZEQ0lJSEtKR0tSTUJOT01RTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREQ8QUBAQzw4OT0+OT88P0JAQEBERkhFSUZGSEdGRkRDRUNESUVDR0VCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFSUFFRTlBNTlBNTE1TV1ZYV1VYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRDw/QkJEPDc6Pj46PjpAQj4/P0JFRkRHREVIRkRFRERFRkdKRUVKR0NHSEZIR0VDRkpKR01LTEtISkxGSUlLSEVLS0xMTk9SVFBIU1VTUFNPUU1OUU5NUFdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSUhHSUNBQ0hFPEBFQkU9OTo+Pj08PEFCPD8+QUJGQ0VDQ0hFQ0VFRkdHR0lGR0tIREhIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT09PUlVWT0tVV1NRU1FSTE9RUE9UWVpZXFpZW15eXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdE1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkE8QD5BQUZDRUVESUVGRUdGSEhGSEhJS0pGSkhIS0hGRkxJSEhKR0xMTUxMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1JSUFZbW11eW1xeX19hYGFkXWNgZWZgZWhqY3NzZmpnZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SkpMSkxHQ0VERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRUZJRklGRkVJSUdJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QTE9QUlRYVk1OVFZUUlJRUExOVFNSV1teXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdESElHSEpGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luaGNpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUVDSUpKSUlLR0VLSkdISklJS0hKSk5MTktJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHREVKRUVKTU1LTExHR01JR0pLSEtLSUtLTkxOTExMSUxNTFtzYmRwXmxtVU1OZnNdZ2ZxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1KcXl2a2Jga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydnRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdCRkNGRUZFRENISEdERUtIR0xNTkxNTUZKTkhKS0pJTEpKSktMTU5OTU1KTk1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcF1fcmtxalV1eXhwY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGR0JHRElFRUVCRklISEVHS0pHTU1OS01OR0xOSUxLSUpNSUtJSktPUE9OTUxOTkxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRqdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNHREhHTEhFQ0NIS0hIRkpMTEZOTExTUkxHTE1ITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnRzdnNIS0hJQkVFRUFAPkREQkdESElNSUZDRkpMSUdGSk1MRU9KS1dSS0dLS0pOSUlKTElLSklISk1NTU1JS0tLU2tjW2leX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4dHVucXVud3FydnR3ckdHRklERURGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEtKS0tJSElHS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xVWVtdWF1cXGNmYWFlYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDQERIREZHQ0lLTEhGREdLTEhER0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJR0hJRUZMSUpMT0xJUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHh5eXh5eHd4dHF4cnhzcXJ1cnRPQkNFTE1CRENCRUlFR0dGS0pLSEVGSUpLRkVISFBKTU1KTVJJSEVBSEZKSUtMSk1KSEZESUZERkdFRUpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmJhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNHSEZIR0hLSUlJREdLS0tFRklKTktOTEhMTkdIRT5HR0xJS0xLS0tJR0RJRENERUJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVpQWl9hYV1eY2FgYmJiY2NlWlFZVlVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFR0lGR0hIRkZKR0hHSUtJTERES0pNTUxMSEpKSEpGP0dHTktLS01LS0tJRkdDREBEQUhJQj9JSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUltXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHRklGRkZJTEpORkRLS0xOSkxJS0pISUZCSElRTUxLT0xKS0lHR0VEP0VDSEhBQkdHRVRdWV5YX1lfW11VWFhPXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYVhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhISFhYWFhISFg4SFh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBSEZER01SSENRSkZISEhFRktKTVBFRklKS05MTElMTEhJR0RIS1FOTUxQTExKS0hJQ0RBRURIR0JBR0VEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1PWWFcYGBfYmNiXWFiV19fVFBPT09XUVxbW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUpLTkxMTE1LSkpHRUpOUVFOT09NTkxNSEtBREFDREZEQ0JFRkJNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xQU1JVWllXWVhYZFdPU1RQUE5NT1RSWlhYWl1cYGFkZWNnY2tscHNyenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFSEZHREtNXUxHR1hNSEhKSEdNTFFRSExLS0tOTVVOT0tLS0dHS1BTU05QT05PTk5HS0ZgRURfTEVmZEVNW0leW3JtT01VbVlMRFBgVWtXZ0pdWFVeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYmJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgYOEhIWFgYSFgYODf356e0xJRkdGSEVFS09TSUpGYFRISU9KSU9NUlFLTUxMT1JVUk9PSUtNR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXF0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZWWH9qdHV1X192X1hhW1tmW19gYWFhXWBiZ21wbGBwd3R4gYGCg4OCf31/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEdJTEVRVkxLTklLUlhXUU1PT01RVE5PUVBLS05HTVBTW1pTUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zcnt8b354boByX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpLR0pQT01NSk5WXllVTFFTTllaTVNTUk5LT0hRUlNZV1ZQVFBQUFFLSGd4bGN4cm1bS05WeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/b2hvWXZ2anV1cIFgcmZ9aWx4fG9eX19iYVtdY2RnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncXl7c3J2eX6Bc3V6bnx9eXdybk5KU3VOQ0JGUFBISktJS1BPT09NUFpgWldLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpMcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txbm1qcGFjZmNvd3hvbXBzeX5ucXBqe3p0c29tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xYVU1VWVVlWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9bcHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbGB2dWtpdXt7bX54a3xwXF5fYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ta21PR0tLSUpISFFQTE5PTEtSUlJPU1JXUlZUUFdbVlZUVFRhX1BOTUtUU1RRVVZOTkxNT1BKSFFOUFVMS0xTVFNTVFBWVVFRTlFRWFlSTlBVVFhYWFtaVVJTV1tXWFdaT1NVV1hYUl5ZV15WVFBZUldXV1dYXltncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xNTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09LTVZUUU5VU05PTUxRUEtKUlFLUU1LS1BSVVNRUlNTSUhMTk9RUlFRUVRWUlhXXFdTU1BSVFVWU1pRTlNSWFZUWVZUWlZUUlVUVFVXWFZdWV5gXVxaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLS09PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEpOV1NQTlVQTlFOTFNQTE9VU05RTk1OUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RQVFVYVVVaVVdaVlNSV1ZVV1tYWl9cVVheXF5dW11gYV5bYmJjZ2ZlZGJYX2FiXWBnZGZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQTE1MUFFMT1RPT1NRT1FbWlhXWFtZWFlWXGpkVlhZWldWU1NPSk5WVFBPVFBQUE5MUVFQUlhUUVFPTU9TVk9XUlRVVU9OTVFTVlVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUV1ZWVllUWFhWU1JZV1ZaXlldX15VXlxeYFxbX19fX1piYmRoZ2RkYlhhYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xYWltkcW1oZF9bWVZVV1FMTVZTTU5ST1FST0xQU1JVWlVTUFBNUVhXUldTU1NYTU9PUVRYVlVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpYV1xeWl5fYFVhXGFhXWBiX11gXWNgY2doZGZgWWNgYV9fZWRfYGNbWlxbXFlaWVhXXFlcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRST1VUU1BXXFxcWF5cXlZcXmpxd3mAY1xbVVVYUU1PVlNOUVFQUlRSS1FUVFlaV1VPUk9TWFdUU1VSUlpPUFNSVltWVldTVlpYXV5bW15WU05UVVZcXFZSVFZWWFlTVFlcVVNTXVhaXV5cYGBgVmFbY2JdYWNfXGJhYl9jZmlkZl5bZGBhYGFjZF9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1xUV1dRTlJaU1JRVFJUVVRLUlZWW1paU09TUVZWVlRPV1JTWlJUVFRYXVdYWFNYXFheXVlaXVRVTlZXV15bWFJVVVlZWVVXWVxVVFdeWV1dYF1iYl5ZX1tlYV9kZF5eY2NhXmVmaWRmXV1kYWBgYWJkYGJeWFpfW1xbWFhYV1dbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFtUVVZWVFRUXl5gXl5iXGBVXV5ia3l0bH1rWlVZVVFRU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVlZX1taVFVWWllaV1haXFZVWl5cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXFVWWVdXVVhfX2FhYGNdX1RdX2JlZXWBemhYWVlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSV1NXVlVTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWVRZWlphWVxWV1hbWltZWVpbWFZdX2BfY2JhZGRdYlxgZmFkZmReX2RiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRZVlNcVFZXWVZWXGBhYmNhY15fVltgZGFfenVvaFlcWlVXVFdbWllcWVhZYFdQVl5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1ldXlleVVNZV1lZXWJaXlZXW1xbXFtbWltZWV9fYGBkY2NkZWJkWWFmY2ZmZV5hYmBjXmJjaWRjZ19nXmFiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNPVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheW11bVldYWVxcXF9bWVtiVlRYXl1hY1xSVllQV1ZXV1dWU1VUWFxcXmBgXWBcV2FeW15cW15YVlhYW1tfYFxfWFlcXF1eXlxbXVhbYGFeYGVjZGVlZmJYY2VkaGdkXmNgYGVjXWVpZGVpX2ZdY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWlhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXlldXllYVVdbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZWNlZmVmYlpkZmZpZ2NfY15hZmRaaWljZmljZV5iYmNhYGBfXV1aWFxZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVddW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXW11fXWBfXVtgZF1cWFpiZWNhUlxaT1hYWltbWldaWWBdYGJiYGFjX1xiXV9dW15eWVlUWF1eX2BfYFxbXl5gYmNdXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGNnYFxpaWJoaWVkYGJhY2FfYF9dXVxZXFlYV1hZWFdcWlpXV1hPWFpdYWNmZnJrf0pZV1xaWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiY2JcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1cWltbY2BiYmNgYmRhYGNeYFxeXl5aWFZbX15dYWFgXltgYWJlY19dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBbZWdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxbW1ZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WDgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7e3p7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t8fHx8fHx8ent7e3t6enp7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKgkU+Pz8/Pzubw76/vr7BooqMjIyMjYl+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjI2DOjIzMzMzLqHSzMzMzM+qjZCQkJCSi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eXh4eHh3d3d3d3d3eHl5eXp5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx2dXV1dXV1foOCgoKCgoB8fH19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dXV5dnZ2ent4e3h3dnd6d3l5en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3x8fHx8fHx6eXl5eXl6enx7e3x8e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eH15e3t5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgYKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3e3l5e3h8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d7eXp7d3x5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6d3t5enx5fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4enl5enl5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mFg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhYWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEgoOFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbW1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoKBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXFwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dwcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJyc3NycnFwcnVwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcnd0cXJycW6Jhm5wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHJwhZNycXFve55+bnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF3o5BwcXGVn31vcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcnOcqIFve6KefnBxcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZSrm3CDo59+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h3eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3Nyk7Gqi5WmnXtzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHh4eHypr6Oxra+ffHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx8fHx7j6uZobSkn6mIent6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2ZoZWjr5+co5p+f399fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgZmbiZiwoZ2dnYOAgYB/f39/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYF/l6SdlKObmZGdiHt9fn6Afn5+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f3+Afoaor6aemZ2fpqmmj4WBf3+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KFho2aq6+gm6Odn56ipKqrpZ+Uh4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEg4aMn6upoJmZop2enp+dnqGgmpCGg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoKGj5KUlZecnJ6fnpmYk42IhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5GPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGAg4iQlZSQl52akYqGh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDgoOMm4eQlIqEgoOFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKCgYGIh42DgoOCgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAf3+JkYCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/gIyVgoKBgoSCgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChISDgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgZCMg4F/fn18fYycjoCCgYGCgoWUlIyBgoGCg4OCgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX17gZiMgIOBgYGAj5SMkIGCgYKCgoGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGVn4p+foB9h4t+hISDhIKDg4KOiYWMgoKDgoKCgoODg4KDg4OCgoKDg4OCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf359fYCChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMi4iFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhYWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYSFhoaGhYWFhoaHh4aGhYaFhYaHh4eIhoeHhoaGh4aHhoaHh4eGhoWEg4SFhYaFhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aHhYSDhIWGhoWFhYaGhoeHhYaHhoeGh4eHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjImBgIGCgoGBgYGAf4B/f357eoCGh4iKiomJiYiJiYmJiouKiIiIiYmLi4qKiIeHiIiJh4eIiIeIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgIWEgoKCgoKCgoB/fn19fX1+fnx7fIOHiYuLioqJiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiGhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJh4eGiIeHiYmDg4SDhYSEhYWHiIiGhYODgoOFh4aHhoaEgoKDhIKDhISCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoKChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOIiIaEg4KCg4SGhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoGBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjZCMiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhISFhYaHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4GDg4ODg4KCgH19f4CAgX99fn59fH19e3p6gZCEhIKBgYCBgIKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgICAgYGBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goODgoOCg4J+fX5/gICBgH59fX19fn18enl8g4KCgX9/f39+f4CAfn2Af36AgIF/gICBf3+AgYF+fX1/gIGAf36AgICAgICAgH+AgoCAgoGBg4GBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foCDg4KCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gICAf39/fn59f39+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af39/fn+AgX+Afn9/f4B/fn+Af4WSko+Oj4yLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gIB/f35/f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f3+AgH59gH9/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXh9gYCAgYGBgICAf3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fXt6enl5eXqBgoKChYOBgoOBgIKAgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoaEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl4eH2Dg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCAgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX+BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDg4ODgoODgoKCgoODgoKRkIuIiYeJh4aGhIaGhYSEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl5fIGBfoiWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYSDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CAgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6e3x/gYOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WFhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gHp5ent8eXl9fX+Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4WFhYWDg4OEgoGCg4KDg4KBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9fH5+fn9+fn19fXx/gYB9ho+BfX2Cfn9+gIJ8fIB/goCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMjI6OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3p6fIKAgX9/gX1/fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYODgIGBfoB+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn9+f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhYOAgIB9fn1+f36MhIGHfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX6Afn9+hJKNjYyPjYyKhoSFhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen5+fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8ent6fX+AgIODgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx+gIKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISDgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fH18fH18fX57fHt8fHx8fXx9fH18fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko+MiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx8fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgX9+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fX19fXx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiYyRkI6KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fn1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt6e3t5enp4eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/gICBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+gpGEhIOBf359fI2HfX1+fX18fn58fX18fX1+fn1+f3x9fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiPjouLh4WEhISCgYKCgoKBgYGBgoKCgYKCgYKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Afnx9fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY6LjIiFhYWEhIKCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOBgICBg4F/gIGEgX5+gH9+foB+fX5+gIF/gX9/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx7fHt7e3x7fHx9fXyKi4mIhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKDg4SDhYaDgoF/f4CDgYCAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICAgICAf358fX19fX5+foJ9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+fn+AfX6AfX19foB/f4GAgYGAgICBgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISFg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH+AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhISDgYB/gH+AgX59fX5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn59f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OEhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf3+Af4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4GDgoOAf3+BgYCCgYGBgICBgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhIKEhIWEhIOBg4KBg4F/gIF+f4B+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgIGBgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgIF/f4GCgYB/fn+Bfn+AgoKAgYOChISGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fXx+gICAf39/f3yAf3+BgIGAgH98gH9+f36Af31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgICAgICAfIB+gIB/gYCAf32Bf35/f39+fX1+gIGCgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDg4ODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgICAgIB8f3+Afn+BgH9/foF/fn9/fn19fH+AgICAfn9+fn99fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYl9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgYCAgYB+f35/f318fn2AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/foCAgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKAgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh6gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgYGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+Af4CAf4B/gICAf359gH9+f3+Af4B/gIB/gIGBgICAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXx8fHh4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKDgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgYGAf4CAf4CHfn58e318e31/eHd2eXl6e318fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGBgYGAgH+BgYGBgIOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f317fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYSBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOCf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDgoOEgYSDgYOAgYOCgoKCgoGCgH+BgICCgYKBgYKCgYCBgYGCgoKDgH6Bg4F/gIGEhIGDf4KCgYOBgoKBg4ODhICChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoGCf4GAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7fYF+fHl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKAgoKDhIKCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn+DgYKEhIKEg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9f31/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX5+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEhIODgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fn1+fX1+fn9/gHx9gIGCgoODhYOEg4aEgYKIh4WEg4KEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4KBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+f35/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSFhISFhIWEhIOEg4GCgoODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeoR/f39+hISCg4KCgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYR+g4N9gX1+f31+goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fn9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WDhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39/en59fH99f39+fYCBg4OAgoOBgYSCgX+BgoB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fXx/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SDhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9eIWDhISDgoF+f357fHt+e3x8fX9/fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISGhIaGhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoeFhISFhYOEh4aDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFhoeFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4SHg4SBgoSFg4GAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9f318fHx+fXx9fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH57e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIh4iGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4SCf35+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhISHiIeHh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYWEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfX98fX1+fXt+fXx9eXp6eXt8fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SFhoaFhYaCg4OFgICBgICDgIOAfIGAfn6CgH2Af4J9gHx9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH9/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoWGhoOEg4aChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SChISAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1+f4J8fX9+fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFg4ODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH5+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NTU09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fY2djY2NjY2NjY2dnZ2djX19fX19fX19bW1tbW19rb2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi3qaenp6enp6enp6enp6axvr29vb29vb28vLy8vbSLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OjoIaEhISEhISEhISEhISClayqqqqqqqqqqampqaybVFNTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PEJAODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpaKJh4eHh4eHh4eHh4eHhZetq6urq6urq6uqqqqtnVlYWFdXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDw+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamnkI6Ojo6OjY2NjY2NjYucsa+vr6+vr6+vr6+vsaFjYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs7OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tDQ0NDQz8/Pz8/Pz8/O0NPS0tLS0tLS0tLS09PRzM3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7OztHUz8/Q1NLPz8/T0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1tbW1tbW1tbW1tfW1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztO7nc/RyJSn0tHHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK1lZu00ZqsnLDRmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/Rn6Cqr82TiJyexJKGnZzNz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw5Nj9CP0I6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0cWHmrHXvcmYmMW8yZeZxdDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Wp5mx1dKUlp/O0ZKZoc/Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P1aWZsdmwn8Ob2q2jv57V0dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NalmbLWzYqSnsfLiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NDVpZqz1s3bpZmz0NujmbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0Y/SEhHRUA8PD4+PD09PDc1Njk5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPQ1qaatM2Op5qgrZCnmJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQzs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HH0telm7S8o6WooK+noqmd0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09HUtYLE1Z2SjbrVmpKOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw8P0dFR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dHD1NPTucfV09O5yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT03NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS1NLS0tXU09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6Njk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6efm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKenJ+hoJiSkY+Ul5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaanpqWjoKChoZ+ZkpWkmpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOlpKWlpaSko6KhoZ2cmpapqp2bmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqako6SkpKKhoZ6bmpmqfX6cmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKCxtaSgoqGgnpybmpqil1CDnJucmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaChp5Kxop+fnpyZmZqbqmJMh52dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCgn6qBfa6ioJ6bmZqap4xOU4qfnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp6il1mJrZ6cmZucnatqVVWKnp2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZybnaJtY56gmZmcnaGaaWBYjKCcnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmZuic2l/opibnJyji2pfWIagnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJyZmJmZqXVwaouXnJ2dm3xoX1yHoZ2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZiZmKN7bGtvh5ycnpRwZVtfiqGen56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmfiYuSdH6coKOReGVVYJChn6Cfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmaoKacjWyIsaekeIqGY2GXnJuenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qalqWgiHhba6eWllt0gXx2lJKNkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkJKoj2tUUHKciotOXXR4gIiHgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg3+TqHo7Lzx4j3p5RzpTb3WBgIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5/nplPT1Q/e4RuZk47NVBwen6Fjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCBgKR1U4F4UHyViXlSaHxSXHWEio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY2fYY3WwF+mr6SmcHGKf1ZohouJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KjkWW/0K2V27emwLFUXndpVYSQi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mqsoFzs6+d0cWimKytcWrFh1B7n6KknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKyNfpOEisjOsLOqknRGrrFbcJ2pp6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxkY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKaanaSlo6KloYyDb5ixo56ch4F0Y3qMdW2UpKKgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioKOnoaaupqacqJ2Ba1GMkoB+gnZ0b3BzdH6AkKOhoZ+enaCjmpaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq6sq6mDcF9Ib3VucXZraWVoZmdxdn6KlqGkpZ+gopmVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7Wztrq9u6+UamNXSFxrZmpxZ2NjZVpaYWJrdXp+iJSdo6acnaCalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K3vsXN0MfAtaaTd15dU0dcdGtqcWVgY2laWF5ZXmVucHF0eIWYpq6npZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW80Nzg2cq7r6CReWNcXlNBX2xqcXdnYl5nXlVcXFtbXmVkYmNuibLJwrmhp6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PEwM7X2M66o498b11WWFhMPV5iaHRybWJhZltXV1hYVlhYXXGSsMXLuri3qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrrEwMfP0semhV1PS09TTD1WV2hiYHFoYV9YWldYVlReh7HEvbO0tqq1sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudXJydXFnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/w8PGxsG2ncezjFxTVlBDVlNcYWZwZVhbWl5YWWeQr7+6tqapqamqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbDxMS5tL+5u8queV1QTld8dJCXllVUWFdZYYGwt6mrsrSsrqWlo6ekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt3bmtpaHZaZnJ4c3lmZl5kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLFvre9w8OyfVZMcHeXpZ1OUVNbdKC1t7KtrLi1s6ypo6GtqaynrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXmpvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMe/xMfDx8iwgGBYkaaSSExtl7PCvL65vLq8urysraapu7q5t7+ytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aWpqdG55bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxcXFwsXFzdDHk4uoi0VtucXJzcbFwcTHwby+tLGwsMK+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGtqd2xpZnVvdGNdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwcHAwcXGyc6xjF5pxNDHy8/Ftr+/wMC6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVmY2tkYmttbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzBwb/AyZM/lNLMxcjRwa+9vbi5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFlYmFjY2RqY2djW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8yc7Bu7/AvLvEvbrAxL+9vLi7wMWrSJXMxMDAyb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnamVqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdSNur+7w7W6x7e2ubu8uLm1usPJqUyPyb+/u8G+uca9wr+8xbi2t7S4tra7u7i2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVmcGplbGhYWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/EeKrLvce3ubittrS3ubO1srrFyZxNhMq/v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucWdxa3RmYm5gXFRIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrnWCvMjPwsC4rrW1u723ubG+w8eRVH/Nw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGpudW94Y2hiXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0plydK7R0czKxLW6v8TIvr60vsC/f2F2y8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGxsbl9jX2FiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysGGc3SmzMzLzcrGwsPLzsG8uLy6sHhxabvIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWNbX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9rDvra+wL6+uqacqrK2w8CleXd6nMTGy8jBw8DAycrBv7u5sqKKf3WuyMXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3h0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEt22tzr22ucC8qn1uaG5tcoGWmHR4fZm9v8bAucC8vsXEvb24sa6gn4yOncrCw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cW9qXGBgWlNQQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbJ1gbO9trXBpIZpWl5gTVJbW290eIOiuLjCurO7t7u9v7q7u66ioqaXn4C+xMO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d29xYV9mXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmmhHiKoK+1nGpmZ1ZZYElJTVBUbXiIp7C3vrmytbK8uby2ub61laW1pa12rcnEwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/GqYh8doyhmF9TQ1hVR2FqVk9FSmGOoq2vtrq1tLKsvLm4tbjBvYueuauudabLwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZzbmNeZ1ldXVNPTkE+SkJASkpANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7SQgnmIkG5OSz9kWUJOd4CUaU1BXYOwtbO1srSvrLu6uLa5v8Z2h7CknGapv7i1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211amxdXGtVXlxQTkhER01CRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHxYRkFPh1lKSlh3jYFiQFOjubO0srCxrbC5uLa7t7u8kaOzraR0rLCpq62ro6ihnZ2el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWh1dG5lVWFkV11ST01JQElSRE5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmYmZRoTT9SeHFQSUlLaJyAWkVSrruxrLOvrqyttraytLWuqaefmpudn6aonqCoqZ+hp5ablpeOnZSPkJaNl5ukqKCgoqKhpaWco6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoYh4g3x2f3pjeG1uXVFpVVBPR1BNTUNQUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3CqqW9aERSnYJRV0lKYEpVjWFkY4GutaqytK6qq6+wsrOtpZ2Rl5OPl6CfoqCco6SfnqiUm5aWjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fH91dn1ta3tkaFZSZE5KSEdPU05LTkg8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCqxr/KoFBBc512T21KS2NmdHNgXGBykLGvrrO1qqasq6KbmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanq6KfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpquqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3l8ZXl6YGJTVWFISUpLU1RKU1FNOT9BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMbGjFdTSmWkWmV9b3JbUWtjW2VhXmuPtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qXmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbGZbU1paTVFLT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWlxdnVwY3Z2WFdjYGNoWllXZ62urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2orKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7a4s7itsrSkoJ2loKyhoaKhoJqYlpWfm5uYpaGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCgH14dmp4dV1tW1JhSVJVSEZVV0pDTUc9S0k4RTw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCjgG+CcGBjWExbUlpMS1BYUkhNTUeYrKqppJ+fmZKSlJiYlpaWjIiLjpWdnJ2dnpeemaafoKilsaqnrqOrrrawtbKxrra4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm4vK+zsLXCvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21pbVxYXENXTkpHTUhDRk49Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOenYpiV15lYFdNUUc9Pj9DQz8+QlF4qa2pqqWfnp+io52enZqdm5STlZSenZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyb+wubm9ucK+uLS7xsS9w7y3s6qzraqztK+zrqqvo52sqLaxraOwpqGjsLGusKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhESlBJP0VCNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFFGRDtDPkY8Pzk2Tn6qs6ejo6KgnqWrpp6XnJSRmp6ZlYyKhoiGeG2IoKSiq6y0vLbDvb6zu8HDwsXAv8LGxcXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8rJw8HHv7q0uru1u7ewtrKqurKuvLi/u7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGplWltGTE1FRFRNRUNFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9c2phV05FPklZfG9hQj1cjq6soJmbm56emZeXl5KNj5eXlI+NkIyCg4J3cnFtcI+mra60ucW7zcfLvsHMzc3MyMjQzMzMx8rFxszQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsbGysjPwMnRzcfGyMbCvMTBvr+/tr6zrb/Aw8PHxMfEr7+5sri9xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXRzZWJncm9mXlpaRE9NREVQSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ2VamZdVElEQD9KhZ6kmYOgsq2jnpyfmpiXlJKUlpGQj4yHhISIhoOAgYGAeXFyb2x5pLa6ub7LwdPR08jNztHT0dLQ0NHRzc7P0MXN1NXY0dfNxsfJzMPFys/K09fR19LV1tPUyMzGzM3J083O083GycrKwsbMx8nJxr/Ds7PIxcvLy8/Hyr++v73Bx8XMzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZFZXUkRORkBJUUM+Qj06MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2JUTEpEQz9DUq/RvbKvppycnKCkoZ2alJOVlIl9eHFrZWJocnBye4WKgHVwbnFzcIWzw77F0dDX1tXS1s3U1tbU09HS09TSz9LD0NPW2NXV0svKztHLxs3RytLV1tnW2NPW2M3Sys/RzM/RzNPQwMnIysTMzMzPz8XHyLbAy8DSzczQxsrJwMTDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYGVyY11SXElLR0FFSUo+O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFaSUBBREFGUXaxr6aalJefnJqgoJ6bnJqViXdpY2FfX19fXl9fXWFsdXNwcG9scXF1ksTIx9TW19fW09bQ1dTZ1NTOz9XU1NHRzNHN09fW09XQz9LT0cnT0cjQ2NfY0djS19nU1szPz8nN0svO0cDGw8jGz87R0dLIzM3Ay83G1M/Mz8jEy8fHyMzL1NTR1c/SzNPCucWxpai1rqebqKulnbKosLOtrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYmNpbV9WUWBKSkNFQ1JNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6upqqooaOrZkM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cWVjYl9fYV9eYWBeYWBfYGVtcHBua29ydneczMHT1dPY2NbZ0dLS18/TzsvSzdXU0crPzNPW0tHWzc/V1dHF0dTK0NTV1s7T0djX19fLyM7Eyc/MyszAysDJys7Oz8vQzs7Mz8/IzNDQy87Lw8rHyc3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxaSkZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksXtIRkI7V42hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBhYF5fX15cYm1yb29zdHV2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3N1MvO0s3L19bQzNHUy8vQ0tPKztHV0tXVysDKwcbNwsjKw8zExsjLy8/Kzs3QztTMxsnPzcnHy8XHwsbKzM3Q0sfQz87OzNDFx8G4ub3Dw73DubOyvrG7w8S1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTElQUUI7Qz47Njg6ODo7NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9wd4+ajYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNhYGBgYGFhX19dW11ncnJwcnNwbXJ5pcfTz8vQ0NPUycTIycXGv8PFz87HxcfNytHIy87NxtHS0M7M1MrHys7Px8fP0svQz8W6xL/Gyr3DyMnOxcPHwMfNyMTMyszPyMTE0MnGwsbJxb/Bx8zLzM/Cy8zJx8vQxcXHu8fDycnCz8G9vL+wwcnHubyqsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KFoqqTjY2Wj4WDg4OBfYSEfnNfW15dXmBeYGNkY19dXV5fYGBfW1pcYGxycW5va2xvb3250cjJys/LzcS6v8O6u7q5vcjGwsPAw8jKyMjKyMHFzMbIys3JxMHKycHBy9DFy8i/ucG8xse+wMbPy8TAw7vJx8m8ycfFysG+wsvGxcS+xr29wcPFzMXGvMDJw8XH0sTByb/KysbIxtHDw8bDrsTLx8TKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdCR0VMREZTQDU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bF55fJ+RipKWhnqAhYV/dXh1cnBfWltdYGBiY2RkZWRgXFxeXV5eYFtZWlxib3Jua2lrcG9zj8e9ycXLwMbBsLa5sbGzsrHCvLy8urjAwcHEvr25vb+5xMrFxsK9xsC3u8PJv8HJu7a7usbDv7zCzsPGvr61wb3Du73HvMO6tL3GxMLDt8C2tr6/u8zDvba6yLu/vsvDwcbDxsnHycbQxsLMx7LHycPOzMHFw7+9srewsqeoqLmwpa2wqq2slHp2eGtlaGBob2RWXllKRkpGSEtBRkJGSUA5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys7FycXHwbrFvayupmBjdYGSi4iLhHh/hoZ/fYN7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmdvcvBw7rAuK2wsKapraumuLS2tLOzs7u2vbG3sLSusrvCvMHEvL+6tLK6vsC4yLi0vLbBwr24vcfBxLu1r7K1ur+0xbi7tay5vb7AvbG7trC3urPGvLevu7+1t7XFvL/DxsDExcbHy8XAxsa7x8vAzsnHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJlbZ2+JjoaIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfXlxbXltdXlpbW11fbHBuaWZqbW5yfKTGv7i4tK+qq6eeoammnqqssq2qrKm0rbaxs6mup6yzu7q2w7m6ubCrtLm7tMK5r8Cxvry7trzHucO3raqosLLAtri9sLGosbO1u7ysrramrrauu7KxqrmwrruuvLi8wMC+usO/xsPFwLzGwsjLuMXHxb/HxMO6xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMS01KRUFDQEZBOjo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTPx83Bwsa/xMTDw8rCycq/wLzBurO1tcOuqrCSW2l+koiOj3t4fYmFenuEgHduXl1cXF1fYF9fZGNiY2RiYF9eWltaWl1aWllaXGVub2hmZ2lrbnKBrbqwta2lo6ammZ+kn5mbpKqupKiiq6qsqrCjpp+qrbW2sby4r7evqK64tLS8uLO8r7i5tbK8wbLBr6Wpo6uxsrOovaqrqKutrrW0pqitoaSvqbKmqKiupai3rLGzt7q6u7K8vr6+xL+1wcHHyLe+wMW3xcPAu7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz83Dx7m5y8LLvrvJtr3DvrrKt8HDwbS2vLaxr7W8ramrkmNtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZGZlaGtvcoWppauknZugo5Oco5qXkKCiqaOin6Wmp6atoJ2bpKassq+3t6ewrKiqtKu0urG2tq62ubKwurqxt6SgpKCmsaisqbqqpaenqKezraCop5+cpKasn5+npKChsa2trLK1s7Sxtb22u8HAsru+w8GxubnCs8G9wLW4vL2+vMLHxMPEv8DEoIR4cWxiZmBrb2BUWV9ITmhPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wLq9taCelJ2hprq2q7Ozu7PEz8nLwsa4t8fAzL+4yre7xbizxbizv8CstbyyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXV9kY2NmZ2dna21uh52onpSUmZ+UmaGXlYudoKGmnJ+fpKWip56bopufq7CtsbWkqaqqrKyktLitt7Css7avs7WvsKqfnp+korKlpqq5raKmpqCorauZoKCemZ2fpZqao5ycnrCprKiqrK2tsLO5r7i5urC2vLu6q7OzubO9tLexsba1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uce4t7+3ssK0sbu7rLm6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2FhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXWJkZGZmZmhpa3KMp5uRkpKZlZmflJWPm6GhqJ6bnaWmoqWboKGama+ura+yoaWjrquoorWwsrKsqa+zp7qzpraho5+co6Gto6Kqtqujo6aepqajlpmdl5mbnaCal52cnZytoayoo6SmrauztKq1sLKrs7m0r6uvsrKzuLOuqa2usrewura6vcC4s7GUhnl1Zl9mX1tZVlNaVUtbUUxKRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+znaWjmKWxwrW2va20uMHMyMa/xbbBwMfOtsDDvbO5ubK/trG5u62ytK+fmqOqoJSaj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqCakZGOkpSVnZWXk5afnaCclqGhqKSfn6mdm5urpq+wq5yjpLipoKCvqLerp6etsKS3sKS3oKOcmZmqpqGbrbmwo6GknKKgn5OUoZSWlpuZmJaXnJWfqZ6qpKKdo6qqsa2otKyqp62zsKWrrrOxsLCvr6eoqLKusbSwvLS6uK6jlYJ6dmVfYVdZWFNSVEtNXkxQTEdITEtFPUA+PUI8Ojc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0usKxvre9rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJqhqZWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjY2JjYmJjZmmAk4+Sio+RkpiWm5OUmp+bnpWfn6empKeooJ2fpqCrr6agoqO3qKGhoqmzoqWopbCmsa6stZ6hnZaVqaGilK2xsZ+jo56emJuTi6GUkZOYmJOXmJiXnqebqKGimqSlpaukpbCnpaOrrK2mqa6vr6uoqqqzpqarr7Sxrry2sbCvoJJ7eHNlYlxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sba9sLuxt6yepaast7u8wcW6sbm1xMnJwMPGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZn6OLinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVJUUlVgYV9gYV9gYGJkaX+Pj4eOi5GPkZqSk5WjmaCWnKCloa2mpaWkpKOdqqulmp+lsaqhoZ6lqp6oop+urKqpra2ioqKVl6KanJCrqbCcn6Kfn5eYk4mekY2Sk5aQmJiTnKGjnKShopWgoqSlm6OrpaKjq6SrraWusqqmpaamtKaqqK2ztbS5urCrrJ6Mc3FwYFtXVlZSRlBPSFpcT1JKVEtTTEVHSkQ4Ozs+PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByczItcm8sb3Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5RWV1cXV1eXl9fYmRtioyBjoONjYyXkZKRnJqhnJugqKmrqKynqaakmaWvpJWZpa+poJyZm6Cerpqcq7Sgpqafo6ShlJOblpaSqaqtm52goaGblJCMmY6MkYySjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq7Ckrrimo6SjrK2pqKuvtLeyvbWzq6+YhXV0aVtYWVJVUkVYTFFbWE1VT1FMUVJJTkpCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zLxsW4wc7Px7PEure7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FZWlpaXVxcXV9gZHyJf4h8iY2HkIuVj5aYoZ+aoKuqpq+sqLClqZqfraGVlqSop52YkI+anq+XmaeqmaCdlKWhn5KRkpGTlairpZqZmZ6elo6Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6Wlp6mooLCwprG9qKCjrLSqrqewtLC5tcCxrrGrkH5ydGNWVFZOUkpHVlBSUkxMWE5KTE9SR01LQUNGREQ+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqaepsrCktsa0ubqzysW5usHL0Mqytri8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5yam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRSTk5OUldYWllZWFxcXWFqfXd8coWLhI6HlYiTkpeamJ6om5+rpqasnqiZoKack4+fo5qXl4aFkpukkJWjnZaWloiim5uTjI6KkJqlp5yVlZebkZKHlI6LgYyNgJCLkpKSoZqgopaUmJiVoqaajZmkp6mnoaC0sqizuKGco7esqa2ks7Kmtbu1q6yxo4p6c25eTlFRTU9ETk5OUEtGTk5KSk5OUUlNSkFITEhIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS3saWnpKqloKmmpLOqorLDtbWys8bGtrrDyszGs6y5vbS4wK+uqbCepq67r62gmpuelZWIfIRuX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFpdYW5vc22BhX+Ffo+CjYmTkJKdoY6anKOipJillqKclY2ImZqMc42Dfo6XloaSmpCUjo57mY+djIKJgIqYoKOekJOYloWOg5R+fnSKjnqQiJOQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmKa4pqWwobGunLG8qqmvqpmDeHRkVk1SUFBNQ1NOTFBNQlBRSElOU01ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpaWmpqayp6a0wbivtLDJxLe5wc7GvrOsusGsrcStqKKmkp2mt62joJCWl5KQfnh/ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlRTU1RVVVdZW11paW9qfIJ6ck1XcY6BloWMnJeLk5GfmJ2VlJaUj5aKgJSJXztWb3yMlIqAjJKMkIaGc4uFl4F5gXuGlJ2Vg5WOkZCDhn2TeHFwho19iYGQjpCXmpmTi5CKnIifmIiIlp6aoaCXp66praionpats6KmrpmsrJiotKOpraOTf3RuYFtOU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqapoKapp6OqsKintMG5sLWwx8K3s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpiHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtJRkhOUVFNT1JUVlhaYGtsZnh/ck9BP3+VkZB8iJSMhIqNm46WlYmSiIaVh3mJf2BKUW54i5KEfoSNi4WAf21/f5R3dXZ4hI2acFGNiIqGfH54lHZod4aIfoqIlYuOkZOXjISKiJSEm42DhJKblp6dlKSiqKmlpJ6bsKqhpKSSpqqWoqqcoaaoiXZuZ15cSFFRU01JVU1TSUxLT0lIRkpOTE1US1FRT0dKRD03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hrqGnqKWnqK+sqra8tri3s8G7tqi5yLi2qKi1tqqyvKeelY1/iZSplpWLf46Dgn54cW9YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlOUVNUVlpugnF0fGhnW1OPiZSIc36GgXyFjJOCkpmLj3uGj4B2gHhzb3VxdI6OgXp+iquFenpodnuOcHJteIGLjZJ4e4B7gHdzc5J4Z3WFhISFfJWKiIqNi4B/hIuNgJSEfICPmJSclpGfnamen6GdoKmlnp2Yjaekk6Cflp6fpIFzaWJdXUpXUFJHS1hST0pNTFJKSkpMUEhMUUxSVE1GSUI8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6Rf3aGd3x2b29qWUtISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3dldYuVmI2OfGd4gHZ4f4mQfYSYkoBxh498d3tva36tfXSQi396hpKAfH90ZnZ8hmxvaHN8io2HgG15cX1xbXaPcWhxgX6OcESLhYKDhX93d3qMhn2Me3V9jpKPmIuSmpujlpmdmp2eoZyWjYulm46dl46WmJB4b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUk9ITlBMRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlp2lqaShmJmPhZJ5iY+Li3ZxfG11cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBxa4emqsB+dHhie3due3mIkHl8i4ZvbYySeXR5amqAgnGWkYyBfZV/SZKZbmh3foJtamRseYWQkoZrcmx8bnJ8hmltcH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6LipODlpeYmpCTlpaZl52WjIOJn5KLko2GkJeAb2pvb29ZVlhUUlFZT1JUVFJYVU1OSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYm5+kra+iraqota+urLS/q7zDv6WimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JWWlFZXF+nh2GZaHJ5ZH5vbH96i4l2goiGdGyaknR0fGpqnY5NeYWTiYSOZjF2h3Nsfn6DdGZldX+EhIWAZmlsdWtwgHxocXF8bpONj3t0fn1xcW51bYJ/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJaWFlZW01QVVZZWE5JSEVKSkhHQ0BHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakJmWo6itnrGep7qvq7KwwrG7w8ealo+UmYuOhXqEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHFnX1RGSUM+PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUxBSVFJYq+yn3F6d2t8bHGCgYWBeoSGhnlyoJV0eIBzdZSHNXGdqJ2OoaGEooV2cId8h3xzi62NiYFoZ2JqbnJtcIN1aW9YdXCOm5F2bX97fW1ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2Oe3NxcW1gW11eXFpZYV9STltaWFdLSEpGSUc/Q0FCRz9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiVkZ2kp56vlaW0qa6wrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt0eHhtd253ZGpeSVBHPT83NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01RU0RLhnV/fHt1fmx2iIh8fYSDf4x+daKaen6GgYSZhJqcYYaqn52Kg5COeneJfomIjnOKl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVmZ2BbW15TXGdeV1BUWFtVR0pKRUtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2fppGgqqCxqK/AsrvFupaOkZSHe4Z2a3+MkYJ9ioOOjHiDgHOghIp8fIF/cIF9emh2bFJYTEBFMjExMzY2Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9RTEtUXVlSS2iDiHuJeXtxfI+MenyJh36Xh3ahmoiHj5KUpY2tqUiGrq+ui4GAk4qCi4KEkqmHgJiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZIbIB3cnl2aG1rX3Z9goh/h4SLeZScm4mLiJF/enWKdnx4bW93foB1dXNtXF5eW2NjWGdmXFRQUFdZUERMS0ZPSUNGQ0NAQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5GOlpeSlqCerKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzg0Ll2WcHOjVUZJS01NUFdgWHBZXF5pjJOGlICEgYWRkn6FiJGAmpWCoaGYlZuapq2Tmbuxp7vHw6iLjKGlj5SJgZF8cYOen5Gdf3eFhYuQh5BpaHCEgXSMh4SKcoaCd4d/e3aEfG52dWZ/lI6HiIiHiIegqqKWiY6Xf3qBiHp5cGdreH97f3VsZV5bW15qXmJnYFpPTE5XUlFJUEpETkdDSkRDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneDen+Mf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShpKVf4qAkpuOg4CBjIqCiY2Df4qAbXBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlNSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISUxMS05WYGN/ZmdtdJuajpmSkoqNjpmIko+di6CgkqOqpaSsk6m2oqjBwq7Hr3i6lJp8jaGemYSThYKOoZ+UmZGFioWPmZGWbHB1ioyCloyNjnePhHFthYGKlpGDhYhxiKCVhpKJjY+WpLSpm4yUooOHkoN9f2tqanyBgoN1Y15kYFtnbF1sbF5XS0hOUlFNTExGSVBDRE1GQkNFRkI9OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYaQh4WJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDc1Mjw/UjVISEhMTE1OUl5uinxzgX2fnJunpaGZoZeilJyeqJ6oq5+orKmqtperv6u2yMi3yNDPvpugcGmrqZ+Ek5KFnKCam5mmkpGIlaKbm3h6fpSYk6KTl5eBlJ57d5WSq7KJjZeffJSdm42SlZijoaa1r5yQmKiHlo+NgIhsc3N9gX1zaWBeYmBiaGRgZ2ZcUkVKS1BPSUlMRkZNQ0hMRkdDQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbXxhd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjox8ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wLy8vLi4wMDE1PkFBTVFSVFFSU1RSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUpOT1FZbYWPd5SKoqaptLy4pK2srKaotKuwtrKxrbuxs76cs8OrusnLt8O/uKWisLOsraqji5aYhaamoKOXgaaZjaKrqKWIhZSkoaCroaSoj5yxi5Wjpre6m6CisJKinaKdkKOhq6+ssrWilKSqiJmIkomVeXp+hoBpYmldZmNeZGReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2lvWHqFdoGThYiCm4OSkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4SBi4WGiJKGgoSJh4iHh3FuYUBFNjQ8My8xMTAtLCstMS4tND9DQU1VUVJTVVVWVU5bUEdIRTw+PkZIQ0VBNzs8NUM7PUZLSUdIUU9QV4GSn4Sto7KpscDGwqqzxbars7+zuL62v7TBtru6o7jFqLbJx7W+ubSoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqmutruyuqywtaKxq7G1u7e1rrSgp6ijp5qpr6yyube4ppu2qYykjpGTn4Z4gYV3WmNlV2djYmRgYWdgW1RKRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiY1d5dXCBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeEgY5/gYmPh4CGiIWKh5F6eG5dVkBFTjw2OjU2QUI3NjQvLzZDSEJRXFBRVVdVXFZQX1VJS0tBPz5HS0ZGRDs+QDdENz9CSkpFRlZTUF6PpK2jsbTCtbfBy8i1u8S9s7PAtrjBtb+vt3Sxs6W6xKSwxrmxs7G0qKS1tqqxoKKXm6KSpbCupq2rp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwbe5t763ure5rKywpbCprb2wvLrCwauYuaeUrY6Xl6qIfoN+bFhkYllrZmpmV1xjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpvfo6EgI2EbnpzeIdiuaGZo4mUlJaSlJONj5aSh4Z7hoGNlYqAhIGKenyLh4Z9ioKBi4SVfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNSUllYWmdZVGBgTFNQRUE/SUpIRUVBQEQ8RTZCPkhHSkxTWlRdk664tLq4yL+5vcnMu7vAu7e1u7q2vbS6scZgdbKksZqeq72ppairqqSisrWgq6ielZafmZ+upaempZ+kk6KnsbSnsrK9tsG+08nJ08bDxczCysPAvr2+u7y3tK+4t7bDucW9wsevnrmpoauOpKi1iIGBc2BjY19YY2BqZ1JYYFZSVUlFRU5LQD5HRD1LQT1CQD1GPjtIQTc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjISPc2xycnOH1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaKfoN/g3h7i4OHfIt5gYqCl350fXprZnB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFVZVUpEQktLSEZISEhIQkk6RD9IS1RUVlxaW5K5wLi9tsW/urjJyrq2ubW3ubK3tbOutraYZHWonK1wXqKsnJigopuknqqllJ+gkJOOlpmXp56moJ6amYOknqylqrCtuLC9udTRz9bQyszSzM/Oysa/vsLKvcG8wcDExMXKvsjOs6S7sLSvmqu4u5h/e21eYV1aX2JaZGNQW2BTUEtDQUVGRTxART5BSEFARD06RT49Sj8zNzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vlpGQlG5sb3R1h7OroKGfi5mcmYyMlZGbkoWKin6Ih4yQi4l8gYNze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWdqaWhgZmlpbFptc5atpLyIhmdbb2hdWlpUSEtOT0pLUEtTUUhMQUpGSk9fXmJnaWGXt8ewuLK6vbWxxMa1r7iwsLursrGnq7erjLannZqnmk6anYyOn5aRppillYqTk4iQiY+RkZ2boZealZaHnpqnm6yvqLCotLTU1dXW08zQ09XN08/NxcLJ0L7JycrJ0cfMzcLQ0bevw7zEuaW1usKig3BlXl5fWWFYWmZaUV1YT1BCQkhFQkg7QUM+QUc/P0E3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJocW95eYOgqZ6ml4yam5eLjZWRmo59iYuEjYqKi5CHfISCcH+HgYZ7h3KDkouOfXF4dWxxeH5xem54c2xpgXBtY2ptcHhpd3x+y7/B36dtY3huY1thYEpQUlVOWV5QXVxOUE5UUVVUXG5tdoJxlq24rLSmsLWqrLy/sKu0pqS4pquuoKu0o46xrpqXmIyRk5GEjpuBjaaRnImDi4SKiYSLhJSVl5eTm5CcmJman56rrKWooqytz9LV0s7M0tTU0NTRzsjD1NHHzdLT09fM0dHF0tbFwM7Hx8KovrfOnntwZ19kXlhhU15aUFFUUU9IPkBGQUJFPEBBPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OWnWGhYp3bHdvfX5/oZ6eoYyMmJOTi4ySj5aEeYWPkI2KiYeRhn6Be3J+f4GHeoR1hZOQiH9vdnJrc317dntzgXhyaoBzcmlvcXp5cXq+y5p+jLKEdnKEdmhha11DWlpbVmVjWWRqVFhcXWBkXmN3en6LgZipo6Shn6CopaqwuKqls6OhraKjraGnsZ+IppqTkpGJkY6IgZOJapSijJmEgYZ+kYODk5eti5WNlJqOhpORnpensKGhoaWkqcjNz8jCzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy4x0cGViYVlVWlRcUEtHSUpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJyUnZSFi5WJj4qIjYeOf3iDk5iKjIiIi4h+gnhze32Dh3d/eoaRlX+DbndwbXV/dnh9dIV8eWyHdnRufXaEdHh7nbWMO0GLxaV+jHxpZVdJQ2ZjZWNnamNud1teZmhrbmlugIOIkIucnaCdkJeYnqOjpbGjo7KfoaWdoKigo7GchZ6SkpKQio6LhoOPhH6cm4yNgoSFepR/gqmVo4yRipeSi36Yi5qSq7OYm5yonKe9w8a5tsbO0tDS0MvSy8nUztDV2tfX2NTZ2M3Y287J2drR1r7Ly7V6eHBmXltTV1JbVkZHSklFRT06NzpAQEI6RkQ/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXOFjXyXkJ2Lf4eSg4mGhYmBh3x4hZaWiI6Dh4WGeoR5cXp7g4Z1eoWOjZx5i3B8b296f3F7gXGDh4Bujnp0d318gnV+e4aHr3NYqcK2jZGCcG5iPV5ocnBxcG54doFlaG9ydXhxeouGjpORm5WflYeMk5ugmp6pnqCsm6GamZ+lnp+rmYuajJCRjYR9iIeDhYuOoJmTiIOHfmyZeoSZhoiTjI2UjIZ8nImUj66qlJaYn5mnr7a9qa2+x8vJyczLz8nE0srU19nX2NfV29fT2dvV0Nva0dbI1MuWe31qalxbUVRUX0hDRklIPkE+PTc6PT87PUc9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEP0NHUmpebWRiZmt2gIhxkY+agHqAjX6CgoGDfoN7fISYjYeLfoWGgHaCeW57e4aBdHqSno2gdo51gnR1gX1zgIRvgZCCb5KEdXyBhXp2hnuIt8Wkwcm4gZaaj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJWPl5GEiY+WmZeWpZyXn5aek5KXop2Zq5WQkImMkYKMhYiIgYaQkZ6bmYiFjIGFl3qIiZ+XkIiNiouCfaGKkYu8oJiTl5mdqaamrp+otr/AwLnHyc3Oxc3K0dbV1dnV19vU19na29fb2trYztvGiH17aWtnYlVYVlZOTERNQjs9PTw4Ojw+OD1ANj0/QD0/Pjw5ODY3REE2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bImMknd2eop7foB+f3yEen2CkYmEhXqEh3p1fXRtfH2GfnR/kp6RnoORfIZ+eI9+eIqKboKagHSZhn6BiYV8fZB6j6mOj8OhvYuco5x9iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYmLkJKUjpyZkpSQlo2MlZ+clKCUkY2Nj4t+kI6Oi4SJkpaanp+JjJSRnZGCi3+lmYiEjYKFhIClh4qLuJidkZWWoqihnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuXt7em1rZ1liXFRQT0lDTEE8PD45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PURSU1JYXlVYZm1tbWmBjopxc3mKe3p/fH97h3p8e4uGgn10g4V5cnpzbYB+hH53hZyhmp2UkoCMiH+Yh4CckW6HqIV6oIt8kY2DiISbfZqQioyjoqCQpK6fipCLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlYyHiIySk4uUlJOOi4+Kh5abnI+UlpCKkpOGgIuIko2KipyWmaKihpOdlqCKiYiNnJCDiI5/g4eFpIaMkLOYnZKVl6Ghn5mSnJ2osrmspr3Bx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aByf3dpaF9eWVRYWUNBSEM/Pj46NDk6Ozc6OzszOzs/PT43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieW1hfpGDb213i3h5f3qBfIV7e3aFhH9zcISBenV2dnSEg4V+f5KmpJ+lopaKnZCUl4uKqJdzirGNhKeShJmThZmMopWfmJOImp6jkqmvn5GUkI2OiJaMbo23hZrEyLGboaWbnJiWkLKRZKTNyJaPhoeIj5KNjZKTiYWKiYWWmZqPj5SThpSXg3+Pi5mIjZCqlpejo4iZn5aaiI6GlpeKhI6NgX+Ij6SJjZOompeTl5mhmZ+Zk52bo7O0pqO8wb7HxcXJyMnCy9PNzdSp0tHW1tbY2tTT2s6EdYJrZmBgX1BLVlxCQkZDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZINHdYKOfXxtfYh4en56gYGCfnZ2gIJ7bG6Kfnl8d3h8hIeLfoujs6ikq7KhlqegpaSWla+ig5C4lZKzmY2hoIykm6+ipJ2YkKeXqZmtr6SXlJWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKdmIWIiI6VjIuTj4eBhoeIkpiUjIqTk4aUmIaDkZCcdJGZspWWpKGInJqTj4qQipeaiYqWjYZ9jJieipCPnJqZk5mYn5SgnZWfm6GxrqOkt76zxcfEvcPDv8bOysnSp8/N09HQ1tjSz9i8dXx4X2JXYlhSSUtPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNW1xZSWhhO0iEinp7bYWGeXyEeICFgH1weHx9fG9zjHp9gnt4hYuJhoOSqLytqbK9r6Wus7Opo6KwrIqatZ2iuKWVraSXqa23pqSjn5mpmKqkr7CpmpmblJWRmKCXmbu7rcmhaba3qrCVmJ6iq5KXvaNeqbKCiYqMlIeRfI6OfYOGjY+UlIiHkpaLj5WNi4yXmZKdmrSWlauei5yUko2QkouYmoqSnY+LiZWfoY2VjZeZnZOcmJ6VoqCUnJ2lr6ihpbO4q8LIxLa7vbzFyMjC0KHGyc3NxNfW0MrTo3N9a19cVWFTUUdEPjxDQUI4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGZIYWBicElAi4l/gHKGh3yBiXWCioJ+bX19fH5wd4d3jYGHe42PjIaMmqvDwLC9xruztMG8tKyrs7eMqLKtrb2rm7qkqK25t6qmpqGio6Oqr7Kxqp2co5ibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIacrb2vgouLipCDjoORjnqBh5CNjpyIiI+XjYqUl5SQmpedp5qwmpGrnY6aj5KOlZCPlZeOkaCQiJSbo6yVlo+UnJ6UoJ6bmKChlJqep6ekoqSws6bBxsOwsLu2xcTDv82nx8PHw7zW0MzEyop2dWRfXGJdT0tDTEBFRj5BP0E8OjQ+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxoRl9pZ1pdXJOMjIh7h4uGg4x1hpCKgW5+e4F+cX6BepV6kpSUmJGTlai0x8nAwszBw7rHvLqvq7m7l7K2urPArqXApKuwvLyqrquiop6nrK+1sKqboKqcopyWn7C0p4uiurq1wburqJyypKSolISOqcTDpIKLjoeIhIaVlIx5g4yRj5KhjIyUkY+Il6CXkpmVl6agrpyMqpyOlo+SkZWVjpCVkY+hk4aXn6Cyn5SblKChmaSfmqCcoJSYnqakpqekr62lv8TCrqm3tcnDvrbOssS+w7uz0cnHwbV3e29fWl5sVE5JRE1LS0lAQT1CRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZeJi4iSj4aJeYaTkIFyf3uNfneHgYKQeo2hlqiampi7vsnIysLSycrCzbzBs627v6e6v768xLiswamss7u9qrCqpKWjrK60rba1oKCun6WimKO0vKmbqLzBo7W2r6uSr6yqq5aGmqmnpZGCjJOklYqAdYmSeYWNkZCeoJKOlIuPjJSjmZablJSjnqmfkaWajI+PkJWWiH2PlZKSo5qVoKKctaaQn5elpKOln56mmJ6Vl5ylo6ioorKtqLvAxK+ls7fMwLmuw7O7vsG4rcLCwr+ZcHtjW1heXE1NTkpHRERIQkJBQ0s6NERIOjs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bElfWGFaZGRXnpCdjZeOnpKJin+In5KEeIV/lX5/kIiKkICVoJmup6OYw77JxMjG0s3Ozcu8wrewur20vMu7w8G2t7yts8C5vK6vqKGpqLatrqmyt5qerKKnoZ2rt7eppa++xLG9ubOnqbOzra6WlaWtqKCRjpKxxaeVjX2RlX2HkZiPqpmYk5OOk5WTpZ6TnZmToaKhnJifmIuMj4+eiFqQlpeSlqWZZZijnrOllqKWq62rp5yfp5eYlpiVoaSop5+2rKm6vMO1prS1y8G4qrass7u4rqi4ury3hG5wXFpWV1BHS1NNSz9BSERESEZGODVGTTs+Nz5BSi4zMjAyNUI1NVBXTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZWNMRqWUnJWhl6iWjJCDh6WSiIGHgpuEg5WQkZSOmqKfr76uoce+xsXIx87OztLKvru2sbq7vL/PtcS9t7m3srK2s7ezrKadq6u4q6mor7CXo66kp6SltMGwq6yzvsK5wLmzp7i0t7OvlaStsK6ki5OVoY1zwZl9lpmEjpaZi7GVmpqVkpKZmaajlaCblpqpnJuhoJmKjI+VnGBKlpyalJqll1SWsJ+vnJ+llK+vraaboaaUk5mZjp2gp6KZtKmqs728u6uwssfAuKasq62ysaOhsrK0pXNxZ15cUFJNRVFRUFE7SEtJRkdBQz05S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTc2JWRkirl5mfoaiumJCXh4qnlo6IkoWfiIScl4+eoJujpbXJtKnGvMPEyMvJyMzOx766s665ucDBzbXIu8G5tbqxr6+ytKejm6q0tKuppq2smaSupaWorLrAqKu2tr/BwL+4srLDsLe9q6OutK25pYibl6abdr6fhJicjpKYmouulqGcm5eUmp+hqZ6ooJqbqpmhp56XkI2QnYNtdZOimpWcop+QrrKjq5Wpqpirr6WloKWqk5KZnImVnKKelrGmqau6t72zsq6+ubago6eppaacnKypqY1maGJgU0xNR0hOSlVMPU1ETUlKQUNEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYU1WSH5lXkhGrJWcoZ+7rpiUnouTqpuRkZOJqo2GoZ6Mo6yUpKS2x720wbvCw8jJxcLOyMK9ubKvubTAwsq2xrHBvLW7q6mtrLCjo5mqtLqmqqesqp2or6ekq6u+vKitvLS4vsa8trW4wLC9v7OptbarvqSPopeRoZ+7nomaoJmXnZ2Ptp6pnKWjm5yhmqels6KbnqWcqKqdmJWPlJuLlomMpKGUnKKeobWvpaaTsauaq62fn6WkqpGWlaCEkJ6fnJappKGhtLS6ta2otbKynpyjppqXlZmqoZ54Y19hX0xJR0hNUUlNREZGQVFLSUFER0FWUkRIPEFHUTE7Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6ew6ybl6SXmaiblZqaj6qWlaimla2smaKqtsXBvL+4wcPByMS/zca7vrmysLi0v8PItb+wvLe6t6ekq6usoaGbq6rEoqWprKaeq6+soqqov7imrL2wt7fGtrS5uL6wvsG2tLK0r72jlqOVkpuTrZ+QoaGkoqOekL6kqZ2prJ2doJumn72imKOeoqmroJ2WjZWek56HjoSNk56koZ21rKaclrKmmbCpoJurn6GNmpWfhI6hmpuSpaSamKuxtbGqpaqtrJyYoKGSjpCVqJ+UaWVbYl5QSkhLT0xIRUNJQD1PSEA7R0lIW1JPSz1ITlU0QkU4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjV02im6SbnsWroZ+rnZytn5KinpaloKaprJe2saOqs7bFwr3AtsDCvMnCv8rItri1tbG0tLfCxre+sbi1uragp62qq52en6WkwaWgqa6gpKmtr6KmqL21pbG7t7a1w7Kzt7q+scPAuLiutLS0o5yklJGToKyfmKGdqKiqoprCramdrK2bm56YpqC9oZ2kmKurq6agmY2Zn5KeiI5Yf5aepqGguKqmlJi2o56yoqGcsJigj5qUnoKPoJeWjqKjlZClrrOrqaKipaWVlZyZi4+Rk6SfiWNnXGVhTUpLS09GRUFGSz49SUE5OUpKTl1RUUk9TFZcOEZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExPnqChmJ7Dp6Wis6CcsqeTqqOfo5+sqaydu7GprLWxyMPBw7PCxL7HxL3Eyr2wsLausbWvwMW1urGwuratmqmwqambnqahqMKtm6yxnKqirrCppKe9t6a2ur2vt8Ots7PCv7HGs7q3q7S2rqqippWVlKKroZ+fmaerr6+vu7Kmn6mpmZmXk6KkuKGho5Kur6ukpZ6SoZ6UnY6QjZSdmqOfp7Snp42YtJyjr5ufnK+RoJSYlJqAkqKWj46goJOLpqywpaeinaCekpKalIWLko2cn4BkaF1oZktKTEtTQkNASUc7O0Y+ODlOTVVeUlNKPk9eXT1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9mckA4PEiWd2VBNJ+kn5ufwqijqbGgo7SplbKrpqKksqytqbuyrbC0tMa/xMS1v8S+ysW2wMnCtau1qbG4rMDFtLiurba6pZmrsquqmKGnl627tZuosJutn660sqequrOnubO4srjAqriywr20xae+rq23tamnrKGWlpGlpKGhl5ekrretsrW2n56opJmUlZOjoLejpKWVrrGypamkoZ6amZqVmKifnpiin6+yoqeNl6+YpauYm5+mkp2PlZiahpaglYyQnZ6Ui6mpqqKnoZmdloyPmZCBhpaJlZ96ZWpdbGtPUU5OVD1CQU5DOzpJPzc3UU5dX1JWUUFXYFxCSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWpWQ1dGjHlmQzukpJyhpb+mqK6uoKi1qp24r6ukqrS3sbC4t7C3uLfFvcPHvbzEwsfBucHGwbqqtqWtu63Bw7e4qq2yvKOVrbCtspemqJGquaqhp7Cdq5+vtLOqqre1rLurs7K5t6y4sMG6vb+mw6qwtq6pqqumnZiYqqGhoJGXoLCus6uwuZmbqZ+ZlpKXpqC3qaWioq+xs6uxp6ugnKCfm56lnaCXnaS0sJufkJSmmqCpm5akoJeZi5aZlJaXnZSJkpuZlI6pqaego5yYm5OHj5mLfoyXho+abGptYm5uWFFRWlRBQ0VVQDs7SEA3OlhQZF5QV1dEWV5eTkxST19MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOG19aFxWOol7Y0M9qJ+coam8oaqvqqKxt6iltLKroa21va+zuLy7vbe2wcO/ycS5xcPAwLnFvsG4r7aoq7eyvL+/tKmvsrifl6ytqK6YqKmOp7ufpa2zn6uisbCzrKq2s7W8ra+xtaywtbG/usW2q7yvsbesrKmisaWepKifo5aPmJ+yqrOpqrOZnaebmpSNoKaktK6noaysrbGnsquxqaObnqiknpSgmZuptqmXmpKSn5meoZ+SraCamYeWmYydmp2Ui4+Wl5qXpqajoJ6WlpeUgZCVhXuPk4OMl2dtc2hwc19HWWZWRENOWERaOUhCNT5dUWhcTlpdR1teXU9NUlhkSktDXWNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFWMTUxPWBWXzgpQzNZVVxnSzWMemZMQKSan6SstqOsqKSurbWprrO4pqawuMa2sLe/wsK1tLrFvszFucPBusC6xLjBubK1rKq6t7u6vrWrrrG3mZioq6urnK2rj6u+nquvsaOqn7Gtsq6utbG4tqqtrrGnta+0urzJsqq1tLG0r66moLOfmqisoKSVlZqZsaKtoKWvlqGkmZmSjaKlprKpoaaxq6q1pK6wtK6jmZ2tp5uXnZmZrLiil5OQj5icoZmYlK2gnpWClJmOnp2alpGKlJOemqWjo6GZl5OSlnuMkYV7jYuDi5Nsb3lvdXxhRmBqWklIWls9e0pHRTZBYlVpW01cYUpbXFpSU1NiYUxLRWBhYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1hUS0Walp+vqLGprKWjrq61qbezt6OstLfKurS7u8C/tbO3xMDMx7zEvbe/wMC4wL2yva6ourm3t8K3rK6yuZWXp66sp6SyqpSvu6SssrKmp6Kxs7CysbSwt7KprquyprivtbPExbaptbWrsK2pp6K2n5+msaCklJuYlLCep5ufqY2pop2blZelpaS2p6Kws6unsaetr7WspJmhrKicnJ2blKq5nJWOjouYnKKYkZioo6CYhZOXkZ6cmJeXiJaPl5uonKShkpaSkJZ3hJGGfIaChIyNbnF4dnx/XUtlbFxKT2RcP2J7R0k4R2dXZltMXmJNWFlXVVhUaV1QT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3JrTEREkZmkraSsraumo7Cysqq3sLWfq7W6ybiuwbzDt7OxtcLDz8TAwr60vcHAu7+8tMSoq7qxtre/va+stLSdoaexraWmsaWesrWsqrKxq6iotLmstLK1rLOsqquorKm5rbGwx7+4pLmvqa2tpqessKWko66jqZydm5qvmaKioqOQrJ+joJ+hqaaluKSrs7SkqquorK62rqKdo6iqnKCZmpKktJmPiY2HkaOglo6Vn6KWlYaQlJSem5mWlYeXkpWZp5ygoI2Tko6ReH6OhH19fYeKinJ0c39+flxSZG5eTlpnXUZElltHOk5tWGJaTWFiTlZWVldUWWheUVJMZFpbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NlOzYqSGRISis6ST8zQ0lTLD6Paz9ISZCaqaqhqa+kp6OztLC0tbGwoKutvcy6rsG8x7G0rrTCw9HExb/Bsr7Dwry/uL3FqK23rbS5vMCwrLKuoaOnrqqnpbGjq7Gqrqqwrq6sq7K6p7exsqmyqaqlpaOtuqyqsMK5tKy5qKmoramnsKWppKKuqqiinpyirJWlnZeemKudoaeooaymoqyst7CxoKmin6qtsKudnqanqZqjl5iQoKiYhoOOioufoJCMjpeekpGHiJGVoZ2WmJaGlpOTl6WcnZ2MkpCNin9/iIR9d4CHhYd1dHKJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU9jXE1VVlVXUVxiX1RPT2hYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLklnREY4PEIwNUVLWDFAlF1ATUaVlqynoamxnKior7WsuLWuqaSrq73Ju7C+uMOvsK2yxMTOzsO/v7TBxMS6wbTJxKyvuK6zucC/tK6urKanqbGppqiyprStqrCtrbGvsqyzuqS4s6ysraern6OesLerqq25tqS1taOpqKysqqygqKansbGjpqWhoauWqqGUm6ClnqOiqqOsop6msbesrKKlopqpqq2pnaGlpKSZn5mVj5idk4GCkImFnaCNi4+Nm5CSjIWOmaSbkpGbi5ORkZSjmpuai4+Li3yHgYKCe3WBhIF+dXiLo4d4a15gbmdXZodkTkBnkkxEYnpXYlhSZVVNVlVVVE9cXWJWS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZCSUhElpCvpKKpr5ipqK21qrawqqSrqam8wcC4ubS8taayr8TKy9G/wbu4wMDCusG6wsSusbaytLvBvrOyr62srKi3qqatsKu4rqewsK6xq7WqtbantberrKSpqpyjnrOzqKiks7Sfta2hqairqKumn6urqLm2qaqpqaGpn62bkamhnaCjoqaiqp2bprSup6WpoqOXpaamqZyio6OfmZifkY6PmI1+h4yHhZ6eiIWLi4+Qko2Fh5ajmo6NmpGSkI6Sn5eZlo2LhH90h4F/fnh1g4B6eH6AiJ2PcHJnZ3F4XGF0iGlPXZhWSG15VWRWUmJPTFZUVVFPWFtiVkhQalRWVEdQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JGO5WNr6ClqayZqqStrrK0r6qlr6mpu767wbGwua2itq/Jx8jQwL+9urzDvbvDwcC/r7Kzsra9vMGxsrOrs6mltaikrLOyuK+irbSxr7G5qriuqq+3q6qeqaugo6G1ramhnq+yobWqnqinqqOqoaGsrai9r6uurKGnp5+rmY+vopiioKimnqebmKmwqKKfrKGhkqGioqaYmailmJiYnY+Kh5SIfI2GhIWkloaDgoyHkI+RhYaUoZaJkZ2Qk5CNkZyUl4+KhoZ4dIF/fXR4eoF7dHR7aoKIo3ZpXmVsgXVniIt8UldwXkt4c1RkU1FfTU1TWmdOTVdZZVlHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzSPjrGfpKWqo6WjrKa0s7CppLCnqri+wbywqLmqp66wycbI0MK9wL65v7+9ybzCubGwtbK6vLnAs7S8rbmso7Wmp6yxtriypqe6ta20vK+7pa2ttaqtnKmvpJ+lrKqnnJ2qsqS0qZqqp6qkqZ2iqKipvauzsK2dqaOgrpyasqKWpJukpJ+kmpmnqqWemqmhm5GboKSdmJaoqZGZmZKQi4KPhX2Pgn+Ino+HgH6MiJKQkIWBlJuUhpOijJORi5GakpWHiX6Acnp4fnxod3x7dXFyfmmGeoSIZGBoY3KFe21neV1eVkNYe21UYVBSWUtLTXB0XUlaW2daRVZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpKwmZ+eqaSjoaqktrKxpKmxp625wb22sKS5rKiosMPJyMzBt72/tbjBusi2xLa0s7Wyvbm6vbauuba/raKzpqqrrrW3tKmcuruosb+yuqCutLWorJ6usaOcpaepo52cpK+mr6Gfq6mnoamco6igrbunrrGuoaqio62enqymmJ+boaKbn5qZoqqimpqjo5WWk56hlpuVpayLnpGPkYyCin9/j4B6mpSMiX1/jIeQj4yKhpOYkYeUo4mRkYeQmZCTgYh8eWx9dnl4Ynt6cnBxc3hqgnVqg2djaGFuc45tYmlwYG9CXXlrVl5OUVFLSU1TWVZNXF5tV0VYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl09I5GXrJifl6ajoZ+no7evraKvsKmrucK6s62gua+rp7O6x8rIv7fBvq+0vrfEtsOysLqxssC2u763qrm4vaqktKaoqq+tuLComLi8o62+tLOhrre0pqansLOgnqSlp6GkmZ6sqKieoKqvp6Cml6Kon7C4n6Oxr6Groa2km6amqZqam56ilZybmZ2pppabnqiQl5KYnZOZlqGpkJqJjY+HfYd+go18e6GMjYh5hI2Fio2NhYmTmo6JlZ+IkJWCjJaNkX2Ee3NwfHFzdGB5eGpvcHFwan9zZHpsaGVkYmaHgGBbcmpxTU6AaVhaTVFMS0hQUlFITVxfb1RFWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsn56hpKG3q7Cjs7SpqbrFtrKuoLitrqywtcXHwLa/wrmwtL23v7u+sKy+sLO/sr3Cuaq7urinqLWop6uvq7OvpZi7tqSrurWunrC4rqmlp6+ynKGkoKSkoZabr6ahn6Oor6GgopOjpKG3sKGmsKufq6Ovl5uqpaifmJqdo5Oam5mcpamZm5uklJSXlZyOk5eiqKGQiYqPhnqDfYOKeY6Xio2HeoKIhImNj4WPk5iMjpaZio6WfoWXjI96gHpwcXZub3RfeHdlbWxsamqEb2ZyaWtmaF5kdIFgW2t2aVpKf15cWE9PS0hIUlVHMzldXmxRRVlVWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJkVywylKGhl5SbqpykoaKgt6quoLu4pay9xbOwrqO1sKysrrTDw7yzv7q3sbO5uLq4u6+uwLO0ubC/wLitvbq1paKyqaepsqqtsZ+Zv7Wkp7W1qJ2yvKinpamvrJmjp5ykpZSYobGlmZ+jqKmcop+SpJ+juKikp62mnaWhqJKfqKKhoZmbnJ+RmpuWn6Gpm5qYoJSQk5aZjZOTo6ekkImJjoZ5hHqEhXydjYmKh3qBhIeJiZKFlpOSi5CVk4yNlHuCl46Ld357bHRxbGxzYXd1aWlqZ2dvhmhoaWNmaWlgamNqaFxme2NgU3RUXFtTTEpHSU9TQCEqaF5qTURXVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp2ipJCNpKaanZ6do7Ssp6q6t6esxMG2sKyjtq6nrq63v7+8ssG3sK6ytra4trauqr2zrrKxvb+3rry7saSftqqlpbOoqq2dnMCqp6WvsqmstbueqKmrsaWYnqmdpqSRmaatopiepKmhm6Gclp+dp7Wmr6quoaGdnaGUoKafoaCam5mbkpick6Wcq6GXlpyUkoyVl4uPmJqon5GIiYqIeIV2gYKBnYeKgol9gIWIh4aQhJaUkI6QkZCRjJJ7g5WOhnN9fWZ4b2tqa2Z1c2tjZ2RkdoFjZWZmZmpqY2tzWl9aXW1kYU5pWFpgVkpHSEtNU1g+OV9saUhDVVRdW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao6CPi6yhmJeglqSzsaKyvbahsca8urGxpLasqq6puby7uq3Asq6urrausrizqay5sa+us7a6trC4vaymnrWqoJ+vo6munKK/oLGjrrCut621nq2ura2imp2mqaWflZqnpZ+ZpaKonZqfm5ScnqyvpbqnrqKhmpqdmZ6kmqSdl56Xm5OYn5KolamnmpOampGLlZmNlJSaqKaOjYqJjnuBdIGBipiFh3yJiYWFioyKkoSUm5OSj5CRlo6Qf4CMjoJwgH5meW1oa2lmcXJrXGhjY3SBYmZnam5sZ2pqaG5dbGx0cGFUY2lkZVpJRkxNT1lRUFZhZYFVQVZTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kaGbjY6wnpqToZmpsa+fub+1oLTCu726saa2r6itpbe4t7etu66sqqu2qrO4raaztbKuqbC2trGztbqmqZ+1qJ2dqKGorJqnvZiso66vtbWsrJ+xra+popucoquonJScpqSdmqqipJaan5yQm6Sqqqm7n6ekoJiZmZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJeZgJaKoZB4hpSMg21pfnaDcWyGi4Z9hYyHcF5jYWeEmIVri4+UknR3i4R+g49/Z4aAZ3VoZVdcaHNuTlBqY2dzhWhfZWZubWpdYGGKj4SEZk5LRDlHVGdeSkdQUFVVTEhSYW90ZkZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4PUc2MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoujmYWVsJubkqCbqq2qo73Fr6m4wri9vK2ntrClq6O3s7KzsbmtqaastKavtaKpuLa2qKestrKutK2zoamfs6qeoaObpaaYq7mUpaWvs7etrqWpraqspaGenKCnppuXoKWlm5unp52Tn5+YkJ6nqaO1r6Oiop2Wl5eXo4igjpKZhqCHk5ygf6V/paqekpGakYiEcniNjoWIoXaIjGmXiGZ9cnigb4iHhH6OfX+hoKCZgHyHnnSHjnWbimyHgYNsaGVjemxxYVOFbWJsaZhxWGpxcIhZXmlbbGxbiHFuenKFZ4aEWl5HTj9HX01FUlZWUVFSV1VnXk1XSVJSUEZHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiKppaDnKucmZidn6qqp6q/w6+xur23wL6qpbewqaylsrSur7O3qqmlsK2ltLOcrbW2taanqLOwrbKnrp2qoLKon6KimaGhmq2zk6OkpbW8pqynq6qsqKWhoJifpqOZmaWjpJicpKmWlKOck5OjpKaht6OkoKOYlZKXk5yIr5CXlImpi5ahm4WxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZH/AnL95hIR5kYR8kJCRynGXvJzFenK1pruQe4BslrGrsHhoa1ixrm5labySvG5nem9yj9h+U2tjtrJ/gXKVdJqhqpBXT1diUFZORlVbWFFQUo1cV1xQQV1EUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKaSgKeqn5ecnaWssqixwr2ytb+1t77BqqezrKypp66zqa+2tKenpbSlp7ivnLOytqulpKexrq6wpqqdp6Swo6GfnZaanpytq5Oeop+zuqKqqaGtrqWhnZqaoaefl5unoJ+YnqenkZynmpSdoaahobCin5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnJ2UmaWUca6hpH54u31roY92sV9qtFulgGWckWBmgntmf2p4a6lkvnJnpox1sWp8sXh0kpNjbW2nbluEoEVoZoeWRXWcYH5ofKSngllfi6tpgJV4eWqnN0qvXFhTbGRbS05YX1xXVjtOiVBXVy9JVFNKREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKsqKWdo6Sqsbestb2/sLbEsre6waapsKuuqKmwrqOwuq+jpK2yo6i4qJ6zs7CjpaCqra+sr6ann6OisJuimpaVlpqaq6WVm6Ges7Ohq5yira2gnZqXoKGonJido5+cmaGmpI+dopmXoZ+qnqamn5qfoZWVkZaQmoW1m7V4hamZtZl2hrObt36TlpaolH5rgaZ7goaIkpSSd6tna7Fbq3qNhpR0iXKPhoB/iJCXeIKCi5iLg6CPhLB2d59xa2tsfItOpFhIYmKZfmNopmB5c3ZTkodeUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCP7J5WFhBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5WIs6amoK+pp7Ksqru2wrC7wq24tr+qrK2traatsamhrryqoKe0rKOrtaWmsrOnpKKdp6qyqLCnpZ6fn66Wn5iUlZWXnaygmZmkqLSuoamPqaiqm52VmKCkp5qenKKfm6CjpKOVm56XmZ2iqJulmZycoqCWk5GTk52D1ZOZuXCwwX7FhnzWlJu7fJqVpI+NnI2ke46Ho4KlgnqseY+dVq96iH6farlbuneHhH2mgpN8mHqpeI2dj3uxbo6EdJG8hW+UUK+nxYpRoHpjYKlic3OIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhObk5cUk9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6O0RIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzElm6KUmbKoqKW0qqW0qaS8t8KwucCxtbS6s7WnsbCisLKmn622qJqnua2jr7Ggs7SwoaSen6epsKi0qKSbnZ2qlpiXlZeVlqCpnJmWp62wqKKfj6yiqJadlpuhpaGYoaGhoZqhoqabnqGelJmbpp+bp5Wbm5+gmJCRlJGdiLJuaLVxq4dujqZytHNytnual6OLj52No3+RoaV+sHaDkdLSdlyue4V/pG+bqqZrh4V9rX2XmY57sHKSnY54s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZ0h2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa2BsaFBVSEk5PVZSWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGdkqWwraOqvK2mtKantru8srq/t7azubmypbSzobGxop+rsKSXprmtpLGwnLS4qqCmnaGppLGorKmkmZuZqJ6Vk5eYkpKhpp+WkqWqsKahlZOtn6WSk6CbpKaflZqlpqGaop+tmaCenZCVm6GdnKWUnZWZop6VmJWRm4Wse3eodqONiIapb62KgqeDmJigiZKaiqJ/k5mJroV/grNccrNSrn2CgqR/cth+eIZ+j52GmZl2r4aJkZyHd7RhmmWagoKUbJJasFhLmnWYeWZgrV52d4domIhrXa93lZ6PeGw1eciusl9CVG9eZ2BFUG1fcG1WVk4uZWRpU1hRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk6OTmfnpSgubCWtMKtqLOoqbK6t7O4vrm3sbS7taS4sp60rJ+eqKyflKe1q6ixsauttKSbqaCfqKG1pqapopmdlKShk5KbmJGUoqSako+mra+moJWZqZ+ijpGhmqikoJWZpaidnKSerJyhnaCNk56anaCYmZuWl6Ggk5eQpp6GqX19pXihjo2CqnCti4GnhpafoImXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTZgHeIdKiBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpOAkX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcW0x0XWJnTVthX3JzX0tWNkqblFhHRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84op6amr+rmLTCrqutqaW0sLextb65ubKwtrqou7SfsKSepKennpOqsKmvqbWsqq+hmKGgpqSkuaKjq6CWm5Chn5STnpmTl56fj4yLqLCvpp2Wm6imn4ySo5eoqqaUlqmnnp6go62joZ6ijZShmJ+fkp6XnJWdoZWWjqucj65tcrRzqYt1iqdztHhzs4CRpKOSnI2JpIeQd7hvjHuLomprtlqhhWWXl2mgoqdulHK0dJOYf7JqhZKIrWt1s2GdZqJvh5Nql1ytX02hfIeRUnOjbHl/fm+Yh3Fcr1Y8nHdmVG9uLlynT2NTa2VibVpjXWFwe2NUWlE+Pm1vM0NCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKabm527oZuywK6tq6ynt6m4r7XAtLuvrre2q8C1qKmgm6WkoZyRqqmntaOyp66qoJecp6Ckq7mdo62blpmOpKKVjJ2gm5icnpGSlKq2sKeYlJysqZeMk6WZpayikZaqsqOfnqarsJmho5CZopagm5acl6GSnKmclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJeKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGO1gYyHqX2VgaypcXt/dLyIp6BpnWGmjq+ifox0h6p9vm9zvHSyg3V4gYtumohxbo2kdL1ed31aYXm8a1pWXGp5XmphZWdibXhvWVtZREFAc0BDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnmp6ivKGXssOwrKqrq7GnuK+2xLC5sK25rq3Asaujop6joZubkKmjqrKktaatpZ6WmqqZpqy5naOtmJSgkKWfkoycop2YnZqRlZKuubKslZejp6eUkJaknKSsnpCgqKufm5+oo7Ofo6WOp6GUopqcl5Wjl4+voJKUqZ6EkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSewbu9mnuBsahwgHORuYN8hoaMh418ioeNl3yku7m9nHV6tKN0dpd2dLB1mZ5mhmqNtXRycXe2jF5/en2JaIN5bnlii6xwdYV/WFunakVlWlRmYGNeY1FoZ3FtdUJOUE1EO1pNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlYnPjs8p56gor+llrTDtKyrqKyrqbqusMWutLKttqa0uKypoaGlnqCdmZOrpK2qprWnp5+blqCjnaykvqahqpaTnJChmpGPoaehk5yXk5eUsbW3rZidpKSiipKSpZulqpuWqKWlnJqhqKWnpKmhkq2elqOel5eXnZ6Pr6iUm6ahjWp9aZumeIdyfZmOdHlkh3u9vsC6b5ODcpWHYXNqWl6biWFjiI6Va2CAlWNtnXdilWuAmpWUZV5gY3Caimhyi32FlWdqfnJ0eH1+Ylt3dIFoUFxug318i2tYbHqCckpKb4ZwTnRMRVddZ2FMWlhnY19PW251aXJSUERFTjtIST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPltPJz8yPqmgqKLBopu1urWjrKWup6e1sazIq6+yqrSivbGxpqCiqJyim5mZrKavpKS1qaWbl5Whm6atqL6nqKWUk5uVn5mSl6SoqJCdkZCYnK+yv6ybp56nooiTkamaqKOamqygo5qbo6eso6Cro5qxm5SnoJaUnZ+dl7Cll6GnmZuQnJyio5iloZmbmZmZj5WBZ219cXeSl5SShYu1qo2GmJWOioyYloeUlYqEk5SRiY6SlJiTmJaaoKGanJSgnY2CeqWGbGp8kHyAdYqKgXGCeHl2doqAfIpqc4F1g3Vld313a296bWBjXXBoTVhaZmpgV1pwem5tZlRPRlM5T1pNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzobOiwKGksrK3oKqmsqelsLSqyKqssKS0pcCns6CdpKSco5WVoKqnrKOjtqufmZaWn5etqqXBnqujlZGbl52XkpOhnp2hp5OSmainssSvmqudqp+Ql5annaqbnJ+tmaGbnaKkr6eipaifrpiXp5yZmqCenZyvoJyhppWXkpeTn6CVop2XoI6Wk4qKjY6XrpB8lpuDkoKLqqmFgJmXiYOPnoh6hJCHhpqSiIaKlY+bl42RmJ2jlpqTkZ2Nf45mobOvhYqEdnuSin12eXpvZnmQgYCJa3WBeYhyaXN/e3aDhoJrdWR5ZmBqZWNkZmtZbHtwaWpcU0xQRF5URkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0W0c1PCxAtKC6r7+tq66ysqCrprGtoqyzr8Svqquisq28o7Obn6aioZyZl6ilqaakpbK0npWUnZmZsKWuvqCsopCRnZmZlJGUoZyXqJyEn6qrorPIs5+qpKqWlpeapp2omp6jq5Sen56gqa+qpqSsoq6bn6CgmKSenJ+cr6OYnqeSl5ackaOYl6ecmpdlgpJ8ZX6NmpBjeY5taWt7kqSqamSal31nhoplZWloe46hj2xojJeRo3draouZo56Zc2xueoONh3pYZV6Ggl5ti4mBdlxoc3d3koCHgm53gnh/c215hHR2iIiOg3xqh1lebHVkXnOJaWt8cWtjXlJOWElkWEFKND5HNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaWfury6r6y0saqlqK2tsKatrbC8sKmmo62usJ6slqCjnaKZmaaqnK2jpaipsq2elaOPoq+ltrmlraOOjpqhmZOSmp+ZmaSVe6Wtoqi0xLiloqevnp2UnqKeo5uiqamSnqGeoKqwq6ykq6Cqm6efp6CrlaGbpbCkl5uqlaCcmpGjlp2pl519vYOIcrRyhJ2GrWh4ucS4cZOio3qlmZhzq4J8y8DAu3GMooiDn32WmImdwL2Cl52djZ3CwXyCe5KNmsPAfWulsm6MgW/Ken+bd5GDjoF2eYGAeXF6f4dwd4WMk3lueJRjZl95ZGBlgmNedGhsZGNYTFdJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9WQUI7LziWo7nDtbCwwKmolKOvqbCuraaztK+ppaWmsKufq5iaop+cmqqnop2soqWopKS0pJ2ikqatq7ezp66ikZGZnKWSkJ+gmJufnIemrKSrrcDAsaCpr6mXkZ6doZmho6qkk6Chnp6tr6qtp6Skp6GmpZ2tqJGkmqitqZqcqZuroJWVpJWgopacfs6UeHqkgXmVlptfro9ejqeBoqB8p5abc6uDgK9eY42qe6eHhaB1l5OIs2OCq4ahjY2zaoSudH2XiLdhg61Zo81tkHV72nt/mXB+iJJ2fmV7h3Z2a3yIbn2FkJF/bYOQYXJscGhgYHlkXHFoamRnYFJUU1ddS09DNUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqits6umsqysqqKqp6+poKebmaSXnKKvn6CeqKejpaGfsKyanZWnrqywqqisn5SSm5+kko+epJedp6OerqWrsKi/x7OoqbGulpKdm6KXn6mqn5Wgn52drbCorKqcqKikoquSrLKWpaKqqp2jpqShr5+RmKaYn5mTk5GXoHGFjJd1haiGcbF9nnKsfqGegaWPnneqgn2tf5xzrX6qhoafdpiSe3yXfqqIooyRjJ1+q3qIlJCfgHutVpzEeo9vksF9gZVtdW+MbWV2ZYZvYXducm+JipKPhG6SkWZwdXVxYWdtZV9vaWluZ2RYU11hWlJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DTxsaytKCdo46jo6Ksr7auqLCmqKqmraurpqGknZmhlaClq5+ipaCoqKKenbCsl5qWqaeurKinqJ6XlJqjoZGToKybnaair6ykrLWquc2yraatrJeVnJ2imJ6trJ2XoJmenqmyqquqnKyrpKOsm6+xoqirrqWYpaqoqbChkZWipJmTkYSkaqR1iXqpdHqycIKmipmMcYigmoekYGBSq4R/roObdq2Bp4aGn3qZl4Z7ZoCjiaSZhoKjfal+gpWHrl99qVWdopKBeqKfgHvDr8WLcq+zs7lxYqmvwnRojIyYjoJtm5Vxbnp4eXBtZ2VlcnBmfGljXVdgalhZVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydXVv6GZq6egr6KesLSwrqmsoqemqKqrqaSmn5uknp2mp6ejnKyaoqyho5+vopybk6ukta+uoKianZaUpqKQmqKon6ClnLCmpKixrLbIsrWqq6mWkZ2coZifpLOdmqGUnZ6nrKylr5utqqOiqqGzraGqs7Chmqinrq60opKVoqaYmpF7qmyehId1q3l8sG+CpIuJn5aWn5SB0ri0uMmAgbJfYJSpg6SIh6B6mJaaeKrJdJmjlaipkZOajICciZrGx3hmoYKlc4GfjoJ9r11wtGKwdUujhm2nR4KTZI6QnpJ8cZiVgXF8dX58blxmanNxZoFrXmFZZG1cX1lJTkxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKWinLK4rKqgpZqopaqrqaafpqaYqqOfrqudpqCsmp6ppZ2ntZ+il5OpqrayrZulnKCUj6WskZmcp6KgqaauoaSnqbC1w7Kyqayok4mXnKWaoaOupZehlZmcpaasm7Cerqmnnqyjt6yhsbivnZquprKysqOTlqaimZ6Ogp1OeJqBf596hKN9g6SEh6aenJ6ThLh7e3m5gn/MxsK2eJuhkIuffpqWl4p2npiKpZikqH+whZyFn4SsfZqUYqVspHCPhJCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Tk4x2fHOGgHFcbm54cmqBb1tkX2luYmReTExRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq+gm6GssrOlnqCVpa6trqunnKammqOnobOvoqmnsqCYqaSUorWiopWXoam0uKSbop2jko+hsZiem6akoaKvrpylqKK2ssSxramtqZGHkJynnKKknKWXnpmZmqakqpuwoq+lppivpLusoba2rZ2ctLG3sLGll5yun6KdhY/RtcO3eYeOhZGTkICmeJShd4ygkYSlgYpxqoaFtG5yapmjnJWKnnyYmYaHj3OvgqWboo2mi5OdipWQm21wsl2lc5N6m2uZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2NjpWNeX55kINuanlpeXJvgHVeZWVvbWZnYEpbWFg8SEhAVTRARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWTc42Krb+/vLq0npanpa21oaKZlaOopq6rrJmmop+moKC2p6Opp7GjlKyjjqSto52Qmpqqs7OknKScqZGUl62fn52mo5ynnLWZoqqktqvDsKmqqaGMhI6boqCmo5WampyZm5mnpaeZraivo6Wbraa9rJS9sKyeoa+yuaqypZqosKKml3mokH18sHeKgKSliJxtsm+gh618oY+Dp5WYgKyJha6Fn5SqoKGXhp+AmZWAe5J+q4CdmpaLq3idn5GJlJKAea9eo4F9pqdjnYB8l3Nqr12la3CFmV1gW4ygbZWRppmDlY6ZjXx8hJiAa25/Y390boB6YGdlcW5oZ2hDWmFbPktVM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JODA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVldXWFZVVVFIRklKIygovZOag6nGwrbBtJ+arKCtuKWjjpuko5+wsKqfpJ+drZmfuaCjq6CvqZquoZCrqKSWiZqQrrCspp6mm6yXl4+soaCdpaGZpJyumKGoprapwK+lqaOei4CNm5qfpp6SlZqblJuapqWlm6qsraSln6qovqSWwqupoqCrsripraWfsq2nqJd2r36Qi5yFh326rYqZZbGNZZWtfaCPg6aVmoGsioSwhaaapKGhkIWgW2xqgbNgf617e4OBsW1nb5mYjIixW320XKSDa8iiZJ+Ae7xYdrVZsn1SroB6rFiAoW2Yj6ebjJeRmJh8epCef2V1f2OFeHSAfGFqZ3FtZ2VmT1ZkXEFVXz5JKD46PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFdaXmBgYGFiXl9cW1hVUE5KRkM1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vbqzwbOjnKympLaooIqaoJ+cs7Spn6OgnrWZoLSoqqyer62erJuVr6mijoibjq+sqKehppmukpiPqJmhnaSfmaOjppmgoqmyqb2vpaienY99jJuWoKCZkJKanJKamKmgopqprqimpqKlqbueoMampKigqrS0q62lnrqsq6uUgKmSo6+Om3+HpJeZkIKAuMO6g46ckoSnl5yCrIqCr4innJumqpB+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGuigW+rhGycf3qysMeDaauwvax4d6K+vHOAlo6mnJGbkZmee4KSnHtkfnxljmd5gnthbGVramNQYVtTalw/VWJDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzg6PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbOzsb+5sr2yoZyupqWypp2MmKW/qriyqKK/p6eynJ6xnLqon62vpqeUlLCsl4yDm5GupaKsoKOcqqCXiqKSpp2nnJqhqKKZn6Gsram5raijmpeTfIeZkaaako+RmJiPmJSpm6GZqqmhqqego6q7najFoqCuo6mzs6muqJ+5pq2tmXN1qqS3hmSJoHBorpGKkG5ud6SQmZ+Bda6YlHCPi3GVqKObl66kcm1sbGaLeG9ugplxgXpqcWlniZaWmHFpaYSHZnCGZF2IYmpvWVxmfXamX2FxjpFuZWV/jZOPoZiZmZKYoX6IkJZ3Z4h4aY5ren95ZWxjZmxiS2RYSmxaOlBlRVInSzorIxwgGyIsKRgbGC0yLjU6NDU3OTw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWVxeXl1cXFxdXl1eXVtbVVdeqZSss6m5uLKzqqmhrp6jsqmXkr6yxMm+t6qfwKytpKGnrKC6o6SurK6njpeuqY+LhZaXrZ2mqqCdo6OgkYukkqaZqJmWo6qglp2mpqewuqusmpuTknuElo2lmI2RkZmUjpiWqJWgmKmjm7GmnaKruZ+vwaejsqWrr7CprKqmtqKstpWKoKiltp2JlqOZh6qbkZWdkqmymZqjqqCylqKhnZ+inKGloZWrp42SkoyHk5yclJCZk5mRjpWFgaSal5aOi5OTi4+GhH1niX50gnVzhopwp2x6lJGTkoGBjY+Qj5yUoZaamKODiZaPc2qRd3GMeHd8emptZGNvZFVhWUBqXEhjYU9ZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVVlleYGFjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1xcXl9fYF5eXl9fYGBgX1lZYKaWqKqltLaurqGvo62foLWxkI6sx77Gu7mro6WenKafsamkt6edqbWnqJGYraKLh4mPnKeVrKSfmKeenpKUo5anmqiZlKahpJCbp5mhtruoq5makIx8gZSLoZSKlZGWkJCUmKaQn5uqn5y2o56nq7enrsGto7alrq+vq6iosregrbuYkaWkpraikp6noI6qoI6Sn6Osr5qgo6+or5ijoJyjqp2enZyWq52TmaGblJCWqpmNmJmXkJaekYignZWVhZKMkI2UioB9ZouFdYZ1eIeCc5xqhY+Uk5CJfIuVkpKXlKKTnpijhYqaiXxzl3N6i4BzfH9qb2RecGpgW2BZbmRQYGVQWjpHR0U+Mj0+OS8qJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWJhYWFgYmJiZGJcW2OXlaOno6+yrK6jqaatn6e1qpCQnaW1vLCtraKjmnueo7KkpbGpl5u5pqOTmaqcjoaKiZyij66eopWon6CSlpiarYuplo+omamNmamPnrq2pKWZm42IeYGUjJqTipWSlJGNkpejjZ6fqZ6fuKOAhK+1oq+vdKO9o7Gfd3mfqbC5lHWso56JgKp/ZFxidqCPpZ+El31tkrOco6etqqJlnp+Sc3mZl3CAmKiXbX+iqIplnKWckZeYloySnJGGnZqPlYOSh46OkomEd2qOhnaGcHuFf39gaIeKlJKLWnWUkGdokI9ze6ebm2Z6momEeZlqhIuEb3mAa3JlX3ZwbGtoW2dmYmJwU1w+Tk5OU0c+QFVEOTEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVldYGhmZ1dRSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6CusKyrqaWorqKmraSSlqu2sbKnm6unrJd0jJ2wn6irp5SXuaCgj5yknZF/iYibno2smqKUp6GdjpaRnoR1rY+IppupkZekiZy7tKegmZiLiXR3k42Wk4qTkZGUjZCUoI+boaeZnLKWgIybtZyzjJKOu6agfqeieqGttYCOjaWeg4uGkLGqr4yKl6SbeoCLrIacnaGnqKeHlYWYd6WbeoebgZingoJ7nLJ6ioagl5mUmJaCkZeXhJqZYnmHkISNj5GKg21wjoZ5gHB/gIR+hXOFhJWReJZnknSgmnV9mYSin4iYf5SMhYWaa46Nhmx4e3FxZ2R4b2psa1tlbGpldFxeSVRMUkBFNS5aVVU3KSEwOT0+NzQzNTY4Ozo9Pj5AREk/SUVKS0dTWFtZW2FhaGZZUUg5RUw8PmJWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyYo5+mrK2rqKyfqLCmpqmlmZSvyL+xopeoqbWekISdrJynoqCNkL6emo2fmqCQfIaPmZiIrJyilZ+hkYySiYaAkaeNh6KdpJSYnoefurKnnZuSjoVwdZCJlZCKlJCPm4yQkp+Sl6Gllp6rh5+0ibSarYrKh6mtiLeFjbCBr6yCqIymmI2dfaiPcnt3nI+nl2iVpHm0jJ+epqeSmMKBf6uImKFynoCapX2XhZWygaF9oZOgkJiXgY6Tm4qYkYt8hZOGjZWSiYNtco+FfnlxhoCDe4N0hICWgI/FZn+ph4+ja56Eo5yEmoGOj4eLmnGPk4Vod3R8eGhodnFoaGxeZHBtZ21YZ0ddUk0yRDQ2TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmlsXFFFPUxNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqKgsKeoqKWrn6O3sKmqppqUoKOkq6SXpqu4o7CAoaidpZ6diZS8mpSNoZKej3mElpaRiKuZm5uZooWOi3eanI+fkIiepZyWmpiHo7mtpJqcjIx+Ym2Pi5OQjZCNjZiMkZKgj5ShoZmhp36hp4etnaCWrY+enJ2RhYCgjKqthaONqZmMmn+jdYCZlGuCrXZNq3iHjZyRmqingKmrfYOhe3qnaZ5/kmtnl4WXt4mefm5gZFmDl3+Me2Roi3KZfXmVbF18lm1fU3CDXF9reIJfWGSBfIN/l3CnqmuDo25ypXCfhaBqZqBtW2+MfWdaYISAYldQb3dmbXRza2pvXmtxbWtpWGlPXlhGOUE0SERfazQsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl5idWBNRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5WdoLigqaOmrJGgtrurraKZmKGipa2uoZ6vtaOok6GgoKecmo6ZtJqQi5+MlYt1gZSSjYqnlpWYnp9/koWFq6SHmpCKmamZmpuSiKaxp6GVmoiJgGluiIiLjo6Ki42SjJCSo4yUn6CcoaR/k4GPo6GUoHeclY+ng6Gmf4aoq4OleIl8hJp+onBzlIiWfJ+NeW2Hm4yZj5uomo+HnXuConN2pmaefnekX5h6fZN0om6Yt7S6dJOHgn+1qGSBxrh7cJW2jHF/mqRic6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGCdmbOWcX2Yn7N1c1uesoNqY290dnFob1hrbXNyZlxpXmNMRD1ENlFCWnIzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1OUUBFX15bWlhgYHxkSEM4TFdVV2NgWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOWlKO3maubk6CNpLe0ra2gmqKdpKOmrp2csq6sk5ihmaGkmZqUn6ubi4iSeIuFcYCWjoqQoY+SlJ2YfZCJjaegh5eOiZKjlJybjYupqKWej5eHhH5qe4d/fZCNg4uQkYmQlKCDl56gnaCei4l3nJiijJ9yoYuHqYibpY+Vpql9rYx+eqCZeqOTeIF0loiNnH2Wn4abjpibpYaiZKF8iJaQm41snmiajW6amXqAi6d9cmh0q4Oeg3SqaJWaXZuFdoSdZ6pqgLhmXKhwgZxglYxep3Z1h4h+nmiadIWTkpeOgJ9vmpFup5pdqH54u2t+qlyOhF20Z1xucnp4a2lccWt5eWNfZlhiQlFGTzdXQ1JvNUtbWl9PWkRAMTUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXlllZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4mptZuniGOUmqu5sa+snqacnKmgn6+cnrGprZ2XpJuhoJmWlqGkmYaJjWqIgHJ7l4iLlpaEkZWYkHqKg5WjnIqUj4aMnpKdnYmQqaOgmoyRioCAaYCHeX+XjHuJjo6Ij5abf5Sin6Chk5hyaJ+Kn4+McJKMgamHmJ6hpZ6me7Cto6K4l3ejs6KkgIiUeZ17qpp/oo6cmpaIl3GhfIWNr7V9a5qRoXh+mLSio6uohJl8m32dmn90qlpdb3uWi3ieYkx+e3qFY3mXQkyfWKJqcXuObICIhJl1m3iGibGzf4Cbk6d3g51uc32VcJp0a6RdlXZIZWRgdHF+fm5mYGxpdntkZGFRX1ddVVdAWUZRaERTV1xiWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQzxVX2JaZmpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZtXWVnZmtkZmxpaGtpk5yAsK2ZhFNeoKazubKyqZqijJysnJyqlKKspKKoj6CenZuZlpihnZaIh4l3hoFveZWFkZuLfJGTlohygIiSoJtzkZCBiZqVoZuFj6mcm5WLi4p8g2yEhnGBoYx4ho2IiJOZlnyTo6Ceooithn21hI6enHullnqpgZWbj4mfm3ynaHdtfpl0oXNxfJ6GmXCTg659pIOmnZmApG9eqGd1omNvpWGc05B8e5l4cnNjooaQfqNzpI91a5CzjGCCmIlzqrKnvH93g21+vqaptF2bbnxwlm1/cqJyXaRnc6ZgaKZtm9SafYabcHp7mGycfHiXc26ppGdgZXpxgIRrZ2Zkb3V3Z2BjU1xmUVFiSVdKVGFXU1tlaltlUUZDS01KS0JLRThPQFFOWFNZT1NRYWVlalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJeagLCrVFxLfqmvsbSvs6ObmYWZqaChpI6lqaCZqoqamJiTmZOSoZiPiIZ7cH2EaH2Pg5SagXeQjY+Jb3+Fj5KSbJeTfImSk6WWg4+qm5SSi4WJeYN2iIBugp+Gd4CThoiZopd6lKOkmp+Js6Gitot6rKekrqVwqYCajoWAmpB7pIChmYaYcp6Eo66vipeMgI2kjZWDraCUdrS1tcmhc5SLgZ9gnZepbXmVh6CbdKKHd6B+kpeLgW9MZqOScJuHc6R7enRhg4FrfqBrcWRfnHF9c5ZoeWmztbTGpnOYfXqda5ybq3aFm212eJhqmnt1mHJQRX20X2p2a3mHZmpnY3V1cG5WXlRZaVBSaElWTVlUVl1oa25WZ1dOS0FKTUtISk9BUUtQZWNqbWV0c3N+eXxudYl7e1RQT2xeaVxraVJqaGlsZ2xmY2VgXF1dXmliZGlre19dZGhjamZubWVpbGWhm4iupoRlP5Ohsqqur7WiopCAl6qio6WMpaeenaaDm5eWjpeQj5yTjoiDemp5h2WDjX+YoHl1j4iMgWmEhZGDjIWdjXqNi5amk4OYqZiNkYuBiHp/fYt5cJChhnqBlYeJlqCWf5SlqJyWloRmbnicbKJkfHGld5uYcGemgJWKeqR6n5aDl3KedoGKlZePuW6RiqJifZmglYhtcmmqa3WgbW+mX5ppi5BploeblXSigH2aYIyGjXVviGJooGWefmmbdW9jZoiCbXGiWl9bYqFtXYiLbnp9c3JkpW14omRnp2iZc4yZcKJvVYmQb6BfZqhUi15UmG5tc2tygm1waWx5c2tvUllXV2daU21JWU9dSVhpaXNqWWtWUVJFVlxMWFNhVWlrX3d0e31wfXxyg3uAc3aNgIR2XlFyYmdjcGdQamhoa2xuaGRnX11eXWBqY2ppdnVdXGNpY2pqc21ma21jnKSYpXpkdG2Lp66jqbCxpp+MgJirnZ+mjKOim6OigZaYk46akIuYkI6Ke4ZxgIhoi4t8mJxzdIl9kHxkgoeUiYmVmYJ8iIeXqJGBoqyRhpCKgop+gICPc2mQpoR9hpSNiZmgj4iTqaadiKZ4lZt+pYiWjLKYnpCCr5efpXaUhnipc6WPhJpupKKMkoSNg7tufaWvg4aFhpOVnJ98pXpyqJWglmaefm+sY5WKlpN3qWypooGJdoiDd6qRpodqkbBrdrOMqWuKhm1tn56SlWB+q4uqdn5+i6Wedp98g6SVnaBqm4h4rGierYy2dHe+jaSTWYOmjathdXJ0cXx1cWNrf29obFNXW1ZhYl1rTV1SXUpebW53X1txWVxgW2Z0ZW5vcmJxdGB3en55cnmDc4N/gXt7jIGCgHZieGRjbnJkUmtnaG9scmpmaWFgXlxia2JtbHpvXFxiaWJsanhtZ2xuYpWlqpyAf52jlqmqnaimrqSZioKYrJqfpYqbpZ2pnYWMmo+HnJGFko2MjXSGeoiEcI2FfpiUdHSFcpKDbX+LkYeGk459e4KGmaaOf6amjoGOiYWUdoKHk29si6mBg4yUjomdn4qMlKujoI+AdZSXiH6BeZSuo3+Bm3GPhneOiYJ9e3KnjHF9fXqYlpuEj3l7f36Hk5WTinaQmJ6gg3t9iWuMhVt5eXJ6cWlufpKJcYB1gY+Uk3GGhIJljH9egH+Ld3RylHVueW5thmyEhV51Z3eOZYCAhY2omn10e5VqiYhwgXZ9h3dubWeMc3l8mHiFXGtYeY9pbnhycm94eHBda4duamdWW2BXXGZrZFZiVV9RX3B4eWxrdmZqa2t2fXFydXNhb3VidHuBeHV6g3V/gH+AeIqFg317bX9sZHluXlduZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhsb2GNlLiopomgopqmpJilnKuioYSEmK2SnqGJm6eaqZiDgZuLf5aUh46KiY1yg3yPfX6PhXuYj3Ryg3CVhXt8kouGho+FeX6Ah5qljnynoYuGkJCFlYOGjph3coSqho2SnZCJn56IjJuon6Cqg4iOlZp+fomWraiPkaaPd2+bj4F4kG5+qIVwfZVxa3B9gaCNgJOOjGhtXYOLi5uano5zlYuIcXRrgXZ0gVlyboaRgX5+jGpdamR7hYSJgGBpd3qae4KKgXWBhYJnd4mFamFwcYF1XnGKgIiOpZSFZYuNg253i4RxhpB6cWdoZXyEepZbXGpnbnZbe3l4dW5zc4JnXG2La2tiWlpfWllscVxfYVpfXWZ0fnt1cHRja2trfH1zfHh1ZG11aG18fnZ6fHt5eoCAfm+GioR7fXN+eXN/aFRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VubGdzem9oam1gi4uqsKCPoqGanp2Xnpioo6J+g5mujqCViJyikaWVf3uYhX2SmYmJhoeKc32BjHaFi4KFl4pxb4BymIaDfZKDhIaKgXqBhYycoZGDpqKIeI6XiZWKi5yYhIN6rYKRl5qVip6diIihq5+hoqOLh5ObnKOZlqqhp6afkpqGlIx6do2Ng6d+f5KQk5ScsqablZ+QjbKTl4OljIyVmp+JkJuCiJGKa3yOd3hlgoaQi3yJnYSHi5CIiICEhJB3fHl0maCIhomdiYSTfn2Kf391b3KEgX13hoaKj6WQgoWMhoKMkIx9h4yKkYR5bYOFfXqZa3JoYXSKcX56d3dwd3SBXV5vh2huX15aXV1UaHJWZFxcYmxodXt8c29wZGtraYB8bnmAcmpwcGxngXtygoB4f31/hHttgo2GfHl4e316g3hOZHZqcm1wemVrZWNiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZIyHnLmelqKgmJSYmJSYpKCefH+arI+fjoagnYueln14lIN7jpmJhoOEh255gYBygYh+iZSEbWt+epeHhIOQf4CGhIZ9h4WOnJ6Th6ufhHKLkIaSkYudkn2Oe6qEjpOYlo+cloeGm6WfopqdhYKSmpmZkJqmn6WdnY+Vf4+IdXuGjYOkenyOkJGGmKuhnpSdkI6qjZB/nYyIk5mego6XfoaOg293hnF1YH6Dj4Z1jJiAg4+ChoR+hYSUbnh1dJGhiouFmoOEjHN/iHt8cnF6h4J6d4qNg5GmjoWDjoCDiomKd4aJiox+cGx/gnxuaGxtaF96f2l9fHZ1dnV7d1xfcH5udWBjW11eUmduVGVbXmJraXZ6fnFsbWRrameBgGxzgWxsdW95cIV5boeAdoKAfoV2cYKNiH57enx/e4KKYGl8anVoaYJkamNgaVxjdWhvYnVtbFVjcXllcHp7c2VqbW2KiZ63mqGjn5GRlZeLmp6fnnt4n6eRnIuHpZSLmJl5eo2FfImRg42CgoNufH95c4GFfouRfWpofYKYiYGIjnx9hoSGfY+CkJydkomonYBwjIuMkoegoYqFjH2okYmQkpeTlpN4jKOgoJ2WmX+AkJqYkoybo6GkmZeRmn2Mg3d/go6Gn39+jIyPfJiloaKTmpGQpoyPgZqRiZKXm36Tkn6HjoF0dIJwd2F9gI2GcYuVfIiMcYx/goWGjmh3cXiLl5GPf5Z9h4pxgYZ6fHB3eoqDeXmPi4KUpZKLhI96hoaHhXaChImJfGdzfYB5e3Fsa2dffnNofHV2dH1zgGpeYHR2cHdkY1lfXlJraVVlWV9haGp2eYFxZ2tkbWhmgIFrbn1ob3FsfniHemyMgXOBgX6BdHaCjYZ/fHp/gX1/j2lyg25zaWGHaGxiX3FWdG9tbWB4aG1XanR2Y3V6e3Jiam96iIyespKlpZyOj5ePhpygm518dqWhjpiAjaOLiJqWeXuGh36Din+JgoF/cn97dHaDhX6KkXhnY32Gl4qBiox4fYCNg3mXgpaZl42XoJx+cIyCkZSGppuIjImDppWFk4uWl5OSd5GdoKGXk5Z5f46Yl46WmpyknZiSlJp4joSCd4OVjZx9gYmNjHOXo5+ik5mPj6KMi4OWmIOSlpl+mIx8iI2AdnF9bntkgHyKhXCHk3+RgmyHgoGAiYRldW57hZGXi3ySd4uIe3+Fe3pxfXeIhHiDj4iKl6GUgYKKdoiEgoJ3fIOKhnhhenl+dH94Z21lYX9qandzdHV9cXxiY2B0bnVybWFaYV5bbGVSY1lgYWhrdnmGcWJqY21laH2DbGh0aG5waYB9gnltkIZxgISDf3R8g4yBgH16goN+fI9tdol0dG1limxqYmJ2VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPnK6XpqiejYyXh4afk5eZfniqnYuZepedi4uYkHl8gYt9fIR8gYOBeHR5enN9gISAiYuAZF99i5WHfoSGdH1+in99mYWXlZiNpKKZf3OHe5OSiqaPjI6Kk6GSg5GQlZeRi4GPl5+ako+Qc3+NkpSJnZ2eppeXjJSVcouNiWuEl4+YeoeIj4lvl52apJSVi4yejIaCkpx/kpKVh5mIfIqJgXpxeWt1bHt+i35thZKClHhwgYN9fop/ZHFpe3+Wl4R+jHOPh4J4hXx1d398hH97gouDi5Kjj3iDgXSJh32AdHaCiYVwYXx2enF9b2JvY2R8Y25vdnN4d3N0YXZgb2x1bW9cXF9eXmpeUF1ZY2FobnR7iGtgaWZqY2l3iG5mbGlqbWiBfXt3b5CIc4CEhH10gYaJe4N9eoGEfXyOcnqLeHhubIdqaF9pcmOHZ3FvZXdnbmxheWlrfXt4cGF4bYuAmJmqoKOonYqKkYaKnYuVmH54r5mNl32flJGWk4h3fnuKfHuAd3iAgHB1dHxvhn2BgYp/fGFcfo+Shn+Dg3N6gId6j5KJk5Kdk6adlYJ9gX2NipKkiY6KjZibjYaRmJSWj4qIjJKcko+LjG2Dj4+RiZ6ZoqGXlYiWkG2HmINmhZiOk3qIhJCKcJaalKOTkomLmYyCf5CdfZKPkoyZjnuKhYdzcnVrcG51fIp0boaQjpJxdYB7gYGHe2RwbHl8mZN9g4hzkImAc4d4bn98f4V7hIuHg4uUp4x6h3t9i4V3fnFwgYaEZWh5dXVwfGJfcGFrdF5xant5eWxzcGV4XW5sc21yWFpfX2FrWlBXWGVjZ3Fxf4dmXWppZ2JncY1vZGlnZWlogXp3dW+OhXSBgoN7dYKJhXiFfHiEhXp/iXd/i3t7cniDamtgcGh0gGtyb21yZ29sZXxjboB6d3Fsd3eKfqKXoaigppuHjIqBkJyHk512gquVk46HoY2Wk49/dHx2hXh5f3Nze4Zrc3B6bYp2gIGIb3FbWX6RjYeAf392dYCAgKCGkYuTnZihlZh4in+AjImcnYqPhpKYloWJlZmQl4uLjI2MnImNj4JtiYuQkYqdlqGcl5SFl4dpg6KCZYSciZB+i4OLgXeTmJKfk5GJiZWNf36Pl3yRjY+NmpF8ioCDbnVwbG1vcHuFaXODjpiLcXeAdYKIgnhmcm51gJmOe4eDeZOQeXWHc2+IeoSLeYqFgoeNmqKHe4N1gYt/d3lubIKEgl5zdXNxcHlaX3FhcGtecGp9e3FtbWpsdmBvb2pxbVlYYWBhblhRVFpmZ2N1cISCYl1rbmRiZmuSbmBnZmBna4F1cnNwi4B1f4OAeHWAi4B5hX93h4Z3g4V8h4x/e3eKf2pxY3xjhnxucW10amhvbHZ4X3F/eXx1dXSAg36klZqtnqaWhY2Df5eUg5CgdoyglJOGi5uNlo6LenJ4dIJwcoV0cXaIbHBtdm2IdoN+gG5tVVGBq5SHgniAd3KDeoKhgpOClZSZnJObeJJ7g4ySpJqTjomVmZKEh5eZjJSLiY+Ph52Ej4p8couFiY6InJqfm5WUf5N9aISbhmeFn4eRg5GCiXGDkZiQnI+QjIyPjXd7kpF6jouMkpaMfIh8gGt2am5rbGx7f2F6fo6WgnZ6gHiDjHx5ZnNrc4aVi36HhXqTjnB5g291i3mIi3mHfICLj52dhHx6doGLfHdwamyChHtgeXFubXN0Vl5wYnJhYGxuenFocGZmc3RocWthd2VdVmZgYHJTUU5cZmVdeXCIfF9caXJiYmVmkWpfaGVbZ3B9cGxxdIp9dnyFgHV1fot6e4WAeIiDc4aFfoyNhHx5lXhmcmqDYIh9b29remBqbnR/dV90fXmGeHRzhX14oI+ZsJyljoKKf4OaiICMnoCLmpSPhYiYj4+PhHd0d3SAcHCFdHByhG9raXdug259fW51c1JNgt/IktaTe3B1g3WEoIOUd5aSmZyRmXuUc4WQn6GTk5GJk5yUhn6WlomNjYiSjYicf46Ad3qMfomMipybnJuVknmMdmaHkIZrh6KEkYiXg4ZjjJGZj5WLl4yNiotxepSIe46IipORiXmFfH5se2Vyb2trenlbgHmPj4F6fX5/ho56emdyanKKjomBhYR8lIprfX5tf4p9ioV8g3mAjpSZmYp8dXeDkHhybWdxgIVua3VwaGp1blRfcGVwWmBscnhna2tiZnhycHBjX3dgYFZrX152UE5LYWdjXXpwiXRcXGV2YGFlZY9kYWdiWGlzc25rcneMfXR6hoJ1dn6Lc4CGf3qJf3KJh4GRi4h8fph2ZXNufWWIfm9wbIBZbG55eXNhdnt7jXZyd4p3eZ+Lm66bn5CChXeIlX59ip2IhqCRj4WMmISTjoeBdHdweXFvhG9tb39zZWV5cX1ten1qaGtjpJrB3K7woXJsdoR2haOGkm+XkZahlpyBknKFi6OXiY6VipGdloOAlZCFiZCAkYqJln6HenV/iXiHhI6cmpiZjo92iXVthYiKfImig5CJnISFXouTl4uPiY+Li4WJbXuWgX2IhYmRj4Z2hX19a31keHVqbnlzV4h6koeFeX6AgIWMfnhlcml/iY6JgYJ+i5aEa4F1bYaPgY6DfYF4fo+UkpiPdHJ3h4x1c3FndnqEY3VucWJqd2hSYXFna1Zfb3R6YXJkX2h9cHJuWmNyYGJWbllceE5NTGRnYV53c4luXFxkeV5fZGWFYGNjX1lqcmtua3N3jH50d4SBeHd7iXGDhHx+iHt0i4mHloaMf36Xc2d1cXlti3tudHGBV3F6dnlyZHd5h4xpdoCJcn+ch5innKOShX1xjJR4eYyehIWhjY58lo2AmYeEe3J3cHRqcIFsam18dV9heHd7cXV8aGBkfOvatcnD3IdybHSBdoubiY5qmZCQnZaUgYlxhYmgjoWLlYqMmJR8jZKIg4mQe5CLhY+Bf3Z4g4RyiIKTnJaUl4aMdYZ9boOBiIaYoYKTi56DiWGDlY+HioaJjYiBh2p9lIB9g4SJjo2CcYZ+f3F3aHZyaXR3a1qMfJKChX1/g4CEioJ1YXJqh4CPioF+fpGQfG2Ba3eEjYWRgnuAfH6PkY+ViG5weYyGdWtxbHN5gmB1am9da3dgUmVyaGZTYHB2dGFwYF1og3FzaldnaGJpWG1WW3VMS0xmZ15icnOFaltcZXleXmRne2FkX11Za25lb2p0eIp+c3OBfnt2eodzhYN8f4d2doqGjpmBjIJ7k3Vsd3V5eJN0bnh6fVh6hnGAb2d5d5KCZHaGhXCKloWZoZqiiod0b5OLcnePnH6LmomJfKB/hJl/gXhydG5vZHJ/aWZteHhcX3l7e3FxgGphZmF/1baOkaZ4bnF3fHGTkY2Ha5qPiZyTjIZ7aYeLmYaBkpGGh5iOfI2MgIGKjXyPjH2JhHp0eoN7cYaAlpqOk5OBiHWDhXWCf4mRnJ2FlI6ffohigJOIhYiEio6AgINnfZGAfn+CjI+Qfm2CfIJ0a213dXR3dmtjjYGOgIV+fIV/hIh+b19xb4R7jouBe36Qh3lwg2V5gYmFioF6g3x+ko2PkoRubnmLfnVtbmtse35kaWxqWW53WlJqc2liUWNzeGxiZV5aaoNuc2FbZ19kbF9uVVtwTkhPZ2VcZ25xgGxaW2NzYFxjbHdkZV1dWmxsY21qc3eHf3FwgHt9dHiGeIWCfICHdXmJgZKWfImGdomBcHh5e4STb258gXdeg390gW1penOUc2dziHxykpGDmp+boIaIdnaVf213lZh+iJCEio2afYyadn52cXBsamF1fGdianV6WmB4fHptcX9lY2dnV52PX3FzlrzEhHdxlIqQf3OYjIedlI2IdGuIj5WAe5SMgYSbjHyKhn18iYx/k4h1iYV2dn2BcXWGgZ6VhpSPgoJxf4dzg3qIlpuWhpONnICIZn2TgoCGhIqJcoJ+Z32Le3l/f4eLj31pgH2DdmZveXhzd3Nsao6FioGKf3iCgISDf2pdcHd6fYuIhXuAjn99cYBoeIGGiYSCd4J6f5aLj4x9bWt6iXx2dG9paH13ZV1xY1hwdFNUb3NoYk5odHhmYV5dWG+Ab3NZZWJdam1gcE9ZbFJEVGdhWmxubXtvWVtebGNaY3B2ZGdcXWBsamNsaXN3gYJxbn57f3R1g3qEgnyChXZ+iYGWkXiDinSBiHN5eX6NkG9ve4FxaYF5en5ubXx2lmtqeIR0a5SNhZ6YoJmFiG9+jHZqeZmPf4KKgpWXinqPlm96c3BsamRgdHtpYGVye1thc316Z3B6YWVkjrGyd0tiWqXa0Zdye5KMkXl/loyFmpKNhm9shpKRenmTh4GEmYp8hn94eImKhJWAb4qHcXR9e2p5hoOlkYWTjIN+bn6CdYJ3hZmYk4qSj5SFh3B7koN9g4SKhG+BeGiAhXhyf3+Diod8ZXx+hHZjcHOAaHlxb3WZjIaDint2eICEeYFqW298cn+Hg4h9hYh6iHGAbXCChY2Cg3GDd3+Yi4yEd21tfYR/dnplaGp+cmFaeFtZcm5OWHJzZmBLbXd1Yl5bW1l1fXJvV2ddZmpwX29OV2lSP1lnX1pwa2d5cVtbWWtlWWNxeV9oXV5lbGhmbGlxeH+Hb21/fYF1cIF7gIF/gn92gYWJl4pxgo1xe4Z8enmElIx1a3p/a29+dIB9b3J8e5Rwb4B/eWaSioKhmJ2Sg4Vnh4NwZ3qXin5/hYKZioF8jY1peHJra2ZfYW95bV9ib3ldZGyDemBxdl9kZdXrvosyOj6LjoByeYaJj413hZiNf5OOjX9ubIWNjHV9j3+FgpWJfIJ4bnaHhYOWd26HhGt1e3VleYOEp4yDj4yDfW1/c3WCeISaj4uPkZKMi4Z+e5KHeICFjYNsgHJpgH54bXx7gYqDeGJ5hIFxZHFofm11cXWBm4uBf4V+c3V9gHKAblprfHN4iIGKe4Z/fId3eXBrhoKOgolxgHd+lYqKfnRtanaAgHV1XGlpeHFaV35TWnJlTFtzcmZbSnF4cF5bW1lcdX91aVliW2dlbmJpTFdmUT1eZl1ddmZfdXFbWVVvZFplcXlbaF5gZ21namtpcHh9jm1qgYR/eW6Ae32Af4J6dYKBjJOFcICLbnd+gXt7iJOJf2l7fWt0fHKGe3N3fX+MeniEfnxrjIyEm52WjIKAbI1+a2h/j457fn+DlIJ/fYqIa3VxZ2ljW2Nnc29gYWx0YWhwiXphc3ReYmOboJBuXDVar7V1aoCKfpOGd4eYh3WPjIp3cGyFg4d0eYl4iX2TiHl+cmd2iH59l29whn1odnluZXqJhaWHgIeNiX1tfXV+f3uKl4aBk5CXiIuEiXyPiXF8foV8aX5ta4F7emp6doKHgHJgd4J+cWRyZ3WCbXV7hpSRgX2Bf293eXt0fWxXbX11c4qAhneGdYGJendybYh/jn+DcX17fJGHiHpubWltgoF0bl1oZnRyUlx8TlxxXE9cc29kVktzeWtYWVlaYHGAdWFdXWFnZGhoZk5aaE5BYWRcYHZhXHVtWFhTdGFbZW9zV2pfYmhrZ21saXB3fJNsaISJfXxwfn58gX+CeneAgImLhHJ7h29xd4R/e4mNj4NqfntueHl3ind9eICCh3+Efn56bYSMiJijjYWEe3aLeWtthYmSeX17gpKAgH2Kg3BycGJmXllnX3BwYGFocGZqb4l0YXRvW2BkanZ7f76cp6TIuHKFhHOTfXmIlIR0kY2IcnNwhHuDc3WGdIh3lIl5eXBjd4Z5gJJpcoR1Znd2Y2p8hIiegoB/jo99cX5zg3h+kI6Cd5WNlI+Igoh7iYlseXl/dmh6aWx/eXNpenaAg31oYHiIfWpqc2h7gGp2gYyRlH56fX5xe3Z7c31hVXV7cXOIgoF7gnCGiXd3b2+CgYt9fHd8e3SNhIF1aHFobIiCcnBdaGN0b0tmdkxeb1VUWXNuYlFPdHliU1hYXGFwgnNbYVxoZWRjamRRW3FJRGRiXGNxXlx4aFVXVndeXGZuaVZsXmFqZ2Vubmhwd3qTbmmIjHl9cnt+eYKAgnx2fYOIhoNwdoNzbXeCgn6Ji5R/cYB8eHl6gYt0g3h/gYGChHqAdW99iYubnoh+hnt3h3xodYaNkXp/gHyJhoR2j4BncG5fZFxYZlltc2FhYXFsbGiJbmBzaVheY22Ad6nZqceGh7NyinlwjnZ9iJCBepSKgHV0dX53gG9wf26FdJSGeHRsYHqBeYiOZXGCb2d1blttfYGQk4CBeZGSfXd6bIV0fo+Kg3KVipCOh4WFe3+GbXV2f25od2VtfHZtand2f398YGJ4hnpodXVjfntndYaOjZV8dH91cYB6fGx+WVZyfG90goZ+f3driIZzeGp0f4KCfHl7d3pxin98cmd0ZG2LhG10W2tgdmZJb29MW2NYV1Z4bWJQU3V2WVFWWF1gcoRvXGBjbWRjXW5iVF1yR0JmX15maV1ae2NSVlx1W1tna2FWa2BgbmZmbHFocHZ4j3Rrjox1f3Z4fXeBg4F7dH2DiIiDb3GAdXF1foaCiY2Le3d/eIR8fYWHeId8fYF+hIB7fnN2eIuOn42Je4p3dYN6Xn6Hmo15h4R0hoeEd4l6Ym5sW2JbW2FVanRkYFtob3Bmh3JhcWZXXGNrf3zKzoa5omtubottcoVyfoWLf3uShXp5dHl1dXtqbHZjhHaSgnZvZ198gXmLiGVxgGpqcWNYbHuGnImDgnKXlHZ9e22HcICJioZwlo6QiIWLhHt5f3JycH5naHJjbnhxamxxd318el1leoB3aXV5ZoJ2Z3SHi42UfXKGam9+gHhte1xYcH1sc36Je4Ftbol/cHZmdn6AfoB1enB5c4V7eHFlcmBti4Frc1hrX3ldSXBsTldWX1RVfGtiT1R2c1FSVFZdYnSGaVxga2pmYlluYVhjcEdBaF1gZl9cVnxeT1ZlcFlbamhdWGdhX3Jma2hxZ3Fzd4d5bpWKdH97d355g4eAdXN/hoWOg3Bwe3h3dXmHhoeMhnp8f3WLfn2GhISHf35+fYd/fHh2eXaRk59+jX2LbnWAeWSEiJeGc5KKb4WFgnqDdWRuallfW11dVWhzZWBZZHJyZ4FyYWtkV1pfaX94vq56n7duYnSHaXR8cnqEh3t+jYB3d3N3b3t2ZWpvYId1joFzamJefnh4ioJlcH1oa2taVm94i6SBhX9xmZJxf3d0gWx/gY+GcpOHjIeEiYV9eXVzb2l5YWptYW12amdra3l3endbZ358eGVzfm6EdGZ2ho2GlX9vi2ZreoJ0bHRiW216anN6inqBZXSGfW1wZ3R+d3x+cHpqeXqAeHdvZWxhbIl9bG5Wa2F4VkxrbE9ST2lOWX1nYk9VdmxNUVRVXmZ2hGdeYXBoZ2FXaV1ca2lKRGtaYmRWWFV5Wk5XbmpZXWxlXVplY151Zm1kcmZzcHSBeHCZhXZ/f3h/fIWHfXV0goeAlYJuc3l7e3NzhYeIiIR5gX12j399hImOg4GDe36Lg3t3fHd2mp2XeoqDh2p2fnxshIaUgHKPgnGFgn6CgHBmbGdXXVtcW1RlcGVfWGNydWl1cGRlYldbW2h/cG9yf3OJZGV5f2p0dnR0hIV4gYR6d3N1bmt6cGFoa2eGdI2DbWZeX3xveol9aG13ZmpkVldycI6nfYR8dpaQc3tye3lsenqPg3aWe4eGg4eEfXVxc21odV1taV9tdWRnZml6b3tyWWeBdnVocIB4gnZid4WLfJSBbotqbXuAcGVyZV9reGZxdYl6fWF1g3Zpa3F0em94d3F7ZX1+fnd1bmNlYWyGfG1rVmpjclRMamtQTE5wSF57ZmJOVnVlS09TV2Brd35mXWdzaWVfVmJXYnBdS0trWGRhVVRVc1ZNWXZlWl9sYFxbY2Vfd2dtYnBpdG9xfnV0mYF3f4B4gH+GhHp9doKDfpiFbnJ0fHp0cYWFj4KAeot1dJCAfYGUjoCFhHx+jIZ6foF2e6OlinmJhoVsdX17dYSDjXpvhXN6hX2ChHVuamllVl1bW1pTY25lW1hidHtqaG1oYGFXX1ppf2lsb39nbGFpenprdHV0b4aCe4F9dnVuemhqeWpfZW5pgXeQhGdlWGJ3aX6GeW5pb2ZmXVVYb2iPqHeBenyQjnh1b31ucnR4jn53lHSFgoCGiHZqc3ZoaW9cbWVebnNfZ2JqeGh7bVttg3N0am+Afnl3YXaFhHiPhXOIcW95f3FicGhbbXZjcHKHendhcoBvZ2l4c3Frd3ZzdWKCen12dW9jY2JtfHxra1VpYmdUTG1oUEdSbEVheGZiTVRzXkpNVVllbHh7Zl9tcWpjXFZfVW5vV0pTaFhnXlhNVWxUS1x6X1xfa11dW2JlYHpobGFvb3Zub3d1epd9d4CBeYCAh4Z6eXqDfYGThHF0dH56dnSFiJB9gXyQbHOVgXuCn4V/h32AfoaCgIp7doSsn396iIiEbHKCenaBgYJ0bodvfYB0ioBqb25kZFhfWlpaVWJqZ1xaX3WCaV5tbFxhVltca4FlcnR8aWpdbHh3aHV3cm6HfH5+enZzbHpoaXhnXWRzaHp3koFjY1Rkb2eBhHZ2ZmhpYVdWWWhkkKhvf3iAi456cG97ZnhueYp6do5xg31/f4ZuZHdzZGlpXWxiXnBvW2dfbXVlemhddIBvcmtxe351dmJ1hYt7h4eAf3dydX5zYHBsWHByYXBwg3tzY3GAa2Bsem9paHl3c3Bkg3R5eXRxZGFkbXJ+amxUaV5fVUx0Y1FHV2JHY3dmYUxUcVlLTFhYZ2x2emVlbXFmY1pYXVh2ZlRKXGNYaVhYSFdlUUlieFtdX21bXl1iY16AaWpgbnR4bW9udoOXeXKBgH1/iYyGfnZ2hniGjH10dXWBeXp6goyOfX+EiWp0loF7ip19foV5gHt+fIaJc3GProx7e4eQfmZxiHp0fn12cm+GbHt+bZB6Y3BvYmVdZVZaWVdjZmtgXV1zhmlYcG1bXldaXGx7Y3F3dWxiW250dWh1dnFthXl/gXl3bm90ZWh0ZVtndWZ2dpJ6YF1TZWZqgoFzfGFjaVxUWF5iZJClaXl0goWQeGxueGZ3bHuDeXSIcoB4fHiAaWZ3bWBoYV9rYF51a1lmXW9vYnplW3d8a25ucHh5dHRlc4OSf4eCiHp2b3F8cWF3Y1lub2BvcIB7cmVxgGRebXVpY2Z3eXJrbYB0cntycWFeZW1ufWVpVGhZWlVOeWBSS1pZSGJ1ZGFKVW5USkxaVmlscntjbGxzY2FZWlthd1xUS2NdWWpTVkdZYU5IanZYX2FtW1tfYmNdhWloYW53eWxvanaBkHhtgn6AgZKIhIF2dYl0i4Z0cXZ2gXd8fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OIhHNwmaJ7e3+JlnhkdYl5c3l2a3Rwf2x5fHCRcl5wb2BnYmxUW1pXaWRtZlxccolmUnJtW1lYV2BrdmNqdWppX1ttdHJtdHR0a4Z9f4B8d29ubGRpcWNba3JkdHaOc1xXU2RgcX9+cYFcYmNeU1phXGSTn2VycYSDkHNranhsbm95eXpxgHZ/cnp6e2RmdmheY1thaFxed2lXYl5waGF3YVt7dmpqcm94dHN0aHGClYOGfoR1cmpwe2xldldbaWxhcHF/eXNlb35aYG9xYl5pb3xranJ9cW92aW9gW2RrbHthZ1RnVVhSUXdcU1BZUkhjc2JhR1ZsUUlQWlZrbGt8ZW1vcWFbWlhZbHBXU09mV1dpU1RGWlxPSXJ1WGBkbWNYYGFiXYxqZGRteXhrb2l1eYV7a4R9gISZfYKEeX2IbY+GcW92en10gYJ9i4+Dgpd0eIKThoGfiXWBf4F0f4Jwh4J1b6KXc3uGjId7ZneLb258cGd4cXtsc3ZzjWtedG5hZ2ZrU15cVmhibGxbXHGMZE5vbVxWV1VmaXNoY3RlZV1ab3ZvcXV1emyIfYB9iHeQc2Nla29hXW5tZHN4iGtaVFZiY3d8fHCEXGNfY1RaYFpjl5VjbnCDhIlyamd5bmVydXF6a3lzdW96fnZfZ3NkXF9XYmRZYXVmVl9gbWRhcV1dfm9oaXNxdHF1dmtthZOBiXuFcXFmbntvcG5SWmVpZHByf3VzYmx1VWJxa1tebmR7ZGt0fHFxcWlsX1hkaWp4XmZUZVVWUFVvWFFXVFBIZXJfYUZYa09JWFRWbmlkfGlreGthV1xVW3RkU1JWaFFZZ1RTSFpbUE54d1tfZm1qWmJgX16PbmJna3l2bm5pdnZ+fm2EgH6Gl3t/h4GJfmuTiHJndIB7dX+DfomOf4uTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYx3eG56jWBlfXFnenR5bG1xd4NnZHxtY2ZnaFNgX1VnYGxvXF5ujmhNaWxgVVZTbmZza2Z4ZGVdWnF1bnN7eHNuiXuBd5x7emxiZWxtXmBvamVxeX9nWlZYX2x4e3pvg19iXmhWWWBYZJyIYmtxgYZ8d2tqdmxbdXBqeWl1cm1ve4BzWGtvX1leV2NkWGVxY1RfYmlhYmxaYH5rZmtzdW9teHZraIWMf4l6h21wZW97bHFsYlhfZ2ducn9zcl5pbFNlcGRVYm1heGFvdHp0am5ral9YYGZodV1kVmJWU09ZZ1NPXU9PSGVvXWNHWmpOSl9LWG1lX3hobn5kYFVeVF10W1RTYGZOXWJVU0pcWlFZdXZdX2ZtaFhjYVtejnFjaGp4cnNtZ3ZzeYNzgoN7iI5+fIqIjnlukIp0bHOCdH9/iIWHkYSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY2Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6OjY2NjY2NjY2NjY2NjY2NjY2Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCS5KamZmZmZmeoKCgoKCjgGRnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTM/k56cnJybm6KkpKSkpKd8XV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaNjo6Ojo6Oj4+Pj4+Pj4uIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk5GLkYyOj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyMjI2NjY2MjIyMjIyMjI2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoWOioaNhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCQiI6KhY6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkJCIjYyGjIiIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x8fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMkIiLh4aIhYmPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pi42Ki42Kjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5eXt9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTk5OTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkpGRkpKTioeUkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkoyLkpGRkpF3hpORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCRiXKKkpCSgHOJkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pc3CMkIx0d4iQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo93a3qQhnR3h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjntla4Z+cXWGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLiouHaF5oZWdjboKFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d29ecmxcaW1nZWhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoXmh1bF1tdW5mYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpdZ29tX2tzdWxZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVZiaG1zcHBzblJRVFBQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OVGFlZW5tbWloVE1OT1BQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0RDRkxaaGxobWxtaWdjW1VST05PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVFUFRVWmRrbWdsbGtqamloaWdbTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7PkJKWWNobGtvbG1samlqa2lfVElFRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7OzpGTk1hbXBwdHBqa2lYS0JFRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs9OztLYG17c2pbRz1AQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5Ojk4QmptSDk3PDw9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT08PTw7R1w5PDw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9APFxuQD5ERT8+QTxFXj0+PTs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdIODs6PT1BPEtjPTw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw9PUlMRkZ1d003ODg6Oz4+V2pBOzw8Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4OAenx3Vjw9Pz09PkZpdEw6PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoKEg4KDgHxdPkBDQEA9SnJ7WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2EdUxBQ0VAPz5Ze4BdP0NFSUpJSU1NS0VDRkdHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSExNTE1OTElHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINWbISHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQENDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpUgYOEhIKChYaGg4KGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1NTc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouMiVQ6ODY1Njc2NjY1Njc3MzU2ODo4NzY1NjU2NzY3Njg6Njc4ODk7NzU3ODk3OTc3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JlhYOBgIKDg4ODg4WJi4qJiYqKioqLiYqKgUc2NzY0Njg4NzQ1Nzg1Njc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhIWGiYqKiIeIiIiKioyKiYmMej45ODg7PD4+OTo6Ozg5Ozk6Ozo6OTs6OT09PT47Ozw9Oj07OTs7PDs8PDk5PDg6Ojo6OTk5PD88PEFCRElKTUtJS0xXb3JzdXN2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVCQUBCPkBCQUA+PT4+QD8/P0A/Pz09P0I/QUE/QD89QEBAPj9BPT48Ozo7OTk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lMSkpGR0dERkdHRUJBQENFQ0NBQkNCP0BESERDRUNFRUFGRUZERUZEQEI+PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyLioqIVkhNTE5MTkpJS0lJSkpJRUNERkdGRENFRkRCSElLSEdHRkhHRUpJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0pZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjYyLiox/UE5QTkxPTEpMSklJSEpGREZISElFRUhGRkVMTE1JSkdGSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7PD06PkA+P0BDRklKUV+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjIuLio1yTlJQTk1NTExKSEdFSUlFSkhHSkpJSkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dIR0NCQUNVbnB1d3d5enh5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4tfU1NRTk9NS0pHRUJHSkdMSkZLTktLSkpLTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRkZJRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIuLjXxYV1NTVVNOTEtKREVGS09OT1dVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQkdWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hYV2thRVJRUVBJOztSU1JgdVxVVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0ZGRT8/QUFFQUNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh21cZFU6WFhYU1E/QFZVWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6eXp7enp8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKi3lucFlaW1tSU1JWVlRbWnWDWVV9kGBcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeEin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRFSUVDPlRkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11MRD9DQ0NDQj9EUEJDQEM9Q0lHVkBITkxHXWlQSEZORkRFRklHSENESEdIS0dEQkFEQE9RTVJkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn+DgIODgoCCgIKBgmtNRz9AOzs+QEA/Pz5rUEthRUZISUVCP0dMTUdNUlVJQkU/Pzw9PD09Pz0/QUNDQD88PUI+Sk5HVW50dHVzdHZ4enx7fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQkJEQlxdT3tOT05OS0xNT09QTEtNV01IR0BCPDk3NzU5OT07Ozs4OTg5PzxCSD9cc3R1dnV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZHSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aWE1LVFRTUFFVT0xSU1RXWFRUWFFMV1laVlhYVlhZXVdXWGhza11WYXNrYmFfXmRhX15ZVFFOTk5MSUhKS0lJRkNRUFNbV1RUTlFTWVNcZVVPU1NRTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTpHbnF0d3h5e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcG5tZF1fX1lXT1BYVlZTVFZPT1RWWFhZU1VUTEtUVlVVVVdQU1VXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTE9SUk9NTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz49Ojc4NzY1OTk2NzY3NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF1SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpQUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMSk9SUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0lGTE1QTUcvRV9SPjM/PmpvYVJSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR1eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nU1BTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTUxLSTw5ODc7PkA+PD1BQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFFSYVxRUFJPU05PUExMT01LTUxNT05bV0tNUU9HSUhDSEpMTEpGRkZEP0JDPjxCRz9CP0FkcHN3enp6e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSEREPTk3Nzk/Qj47P0JAQD5BREpFQ0dHSUdJRUJCPz49Q0JBR0lFTk9iZVFNT05XS0tNS0xNTU1MS09OU2ROSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg6Oj9CPzxAQkFBREVHS0ZDSElHR0hDQz9CPz9AQT5ERUNMTlJUTEpJTVRGSUlKTEpLTElKTE1PUFJQS0dDTEdDQkpKTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFHS0RHSEhHSktJSktER0I9Pj06OTo7QUI/PUJCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQENFRElNUEhIS0dIS0RISUxNSEpMSElKTEtNXVJISERORkFESkpNTVBNS01KS0ZHR0pNTlFOTGJtaXZ2d3p5fHp9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLQ0ZFR0VGRkdFR0JDQD48PTk6OjtAQ0A+QkNFRUlFSUpMRklJR0ZGREI7QUNDPkBDQ0NER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lHRU5IQ0dNS01MT01NTk1LSEhJT1JRUk5SZmZmcW9zeHV7enxsaGpvZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQ0NCRUBEQj5APjo7Oz06PT5DQT5BQ0VGSkZJSExIR0dHRkVDQD1ERUI+QUNDQ0RHSElHTVBKRkZHS05PS0ZISUZFREVJSkhKSUZIUEtESU1LT01PTk9QTkpKSUxSVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPUJBPkE9OTo9Pzo9PkBCPkBCREdKRUlGSUhGRkdFQ0JBQUZGQ0JCQkRFRUdHSUZMUUxJT0pKTExJR0hFRkVEQ0lJSEtKR0tSTUJOT01RTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREQ8QUBAQzw4Oj0+OT88P0JAQEBERkhFSUZGSEdGRkRDRUNESUVDR0VCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFSUFFRTlBNTlBNTE1TV1ZYV1VYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRDw/QkJEPDc6Pj46PjpAQj4/P0JFRkRHREVIRkRFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR01LTEtISkxGSUlLSEVLS0xNTk9SVFBIU1VTUFNPUU1OUU5NUFdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnaWhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSUhHSUNBQ0hFPEBFQkU8ODo+Pj08PEFCPD8+QUJGQ0VDQ0hFQ0VFRkdHR0lGR0tIREhIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05PUlVWT0tVV1NRU1FSTE9RUE9UWVpZXFpZW15eXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdE1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkE8QD5BQUZDRUVESUVGRUdFSEhGSEhJS0pGSkhIS0hGRkxJSEhKR0xMTUxMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1JSUFZbW11eW1xeX19hYGFkXWNgZWZgZWhqY3NzZmpnZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SkpMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRUZJRklGRkRJSUdJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QTE9QUlRYVk1OVFZUUlJRUExOVFNSV1teXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdESElHSEpGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUVDSUpKSUlLR0VLSkdISklJS0hKSk5MTktJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHREVKRUVKTU1LTExHR01JR0pLSEtLSUtLTkxOTExMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1KcXl2a2Jga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEQEJCQD5DRkdCRkNGRUZFRENISEdERUtIR0xNTkxNTUZKTkhKS0pJTEpKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcF1fcmtxalV1eXhwY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGR0JHRElFRUVCRklISEVHS0pHTU1OS01OR0xOSUxLSUpNSUpJSktPUE9OTUtOTkxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNHREhHTEhFQ0NIS0hIRkpMTEZOTExTUkxHTE1ITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFAPkREQkdESElNSUZDRkpMSUdGSk1MRU9KS1dSS0dLS0pOSUhKTElLSklISk1NTU1JS0tLU2tjW2leX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERURGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElHS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xVWVtdWF1cXGNmYWFlYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDQENIREZHQ0lLTEhGREdLTEhER0lQS0xPS0xXTElFRUhJSkhJS0lMSkhGR0dJR0hJRUZMSUpMT0xJUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNFTE1CRENCRUlFR0dGS0pLSEVFSkpLRkVISFBKTU1KTVJJR0VBSEZKSUtMSkxKSEZESUZERkdFRUpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNHSEZIR0hLSUlJREZLS0tFRklKTktOTEhMTkdIRT5HR0xJS0xLS0tJR0RJRENERUJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFR0lGR0hIRkZKR0hHSEtJTERES0pNTUxMSEpKSEpGP0dHTktLS01LS0tJRkdDREBEQUhJQj9JSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUltXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGREZLSkZGRkhHRklGRkZJTEpORkRLS0xOSkxJS0pISUZCSEhRTUtLT0xKS0lHR0VEP0VDSEhBQkdHRVRdWV5YX1lfW11VWFhPXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBSEZER01SSENRSkZISEhFRktKTVBFRklKS05MTElMTEhJR0RIS1FOTU1QTExKS0hJQ0RBRURIR0JBR0VEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1PWWFcYGBfYmNiXWFiV19fVFBOT09XUVxbW1xcXl9iZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUpLTkxMTE1LSkpHRUpOUVFOT09NTkxNSEtBREFDREZEQ0JFRkJNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xQU1JVWllXWVhYZFdPU1RQUE5NT1RSWlhYWl1cYGFkZWNnY2tscHNyenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFSEZHREtNXUxHR1hMR0hKSEdNTFFRSExLS0tOTVVOT0tLS0dHS1BTU05QT05PTk5HS0ZgRURfTEVmZEVNW0leW3JtT01VbVlMRFBgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYmJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRkdGSEVFS09TSUpGYFNISk9KSU9NUlFLTUxMT1JVUk9PSUtNR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXF0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZWWH9qdHV1X192X1hhW1tmW19gYWFhXWBiZ21wbGBwd3R4gYGCg4OCf31/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEZJTEVRVkxLTklLUlhXUU1PT01RVE5PUVBLS05HTVBTW1pTUVJPUFBQSkhaeF1UeGVoWlNUUnZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zcnt8b354boByX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpLR0pQT01NSk5WXllVTFFTTllaTVNTUk5LT0hRUlRZV1ZQVFBQUFFLSGd4bGN4cm1bS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/b2hvWXZ2anV1cIFgcmZ9aWx4fG9eX19iYVtdYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncXl7c3J2eX6Bc3V6bnx9eXdybk5LU3VOQ0JGUFBISktJS1BPT09NT1pgWldLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txbm1qcGFjZmNvd3hvbXBzeX5ucXBqe3p0c29tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xYVU1VWVVlWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9bcHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbGB2dWtpdXt7bX54a3xwXF5fYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ta21PSEtLSUlISFFQTE5PTEtSUlJPU1JXUlZUUFdbVlZUVFRhX1BOTUtUU1RRVVZOTkxNT1BKSFFOUFVMS0xTVFNTVFBWVVFRTlFRWFlSTlBVVFhYWFtaVVJTV1tXWFdaT1NVV1hYUl5ZV15WVFBZUlZXV1dYXltncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xNTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09LTVZUUU5VU05PTUxRUEtKUlFLUU1LS1BSVVNRUlNTSUhMTk9RUlFRUVRWUlhXXFdTU1BSVFVWU1pRTlNSWFZUWVZUWlZUUlVUVFVXWFZdWV5gXVxaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLS09PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEpOV1NQTlVQTlFOTFNQTE9VU05RTk1OUVVRVVFSVFVOS01PUVRUUlJRVldUWVpbWVNVUlRXV1dZW1RQVFVYVVVaVVdaVlNSV1ZVV1tYWl9cVVheXF5dW11gYV5bYmJjZ2ZlZGJYX2FiXWBnZGZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FbWlhXWFtZWFlWXGpkVlhZWldWU1NPSk5WVFBPVFBQUE5MUVFQUlhUUVFPTU9TVk9XUlRVVU9OTVFTVVVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUV1ZWVllUWFhWU1JZV1ZaXVldX15VXl1eYFxbX19fX1piYmRoZ2RkYlhhYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xYWltkcW1oZF9bWVZVV1FMTVZTTU5ST1FST0xQU1JVWlVTUFBNUFhXUldTU1NYTU9PUVRYVlVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpYV1xeWl5fYFVhXGFhXWBiX11gXWNgY2doZGZgWWNgYV9fZWRfYGNbWlxbXFlaWVhXXFlcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRST1VUU1BXXFxcWF5cXlZcXmpxd3mAY1xbVVVYUU1PVlNOUVFQUlRSS1FUVFlaV1VPUk9TWFdUU1VSUlpPUFNSVltWVldTVlpYXV5bW15WU05UVVZcXFZSVFZWWFlTVFlcVVNTXVhaXV5cYGBgVmFbY2JdYWNfXGJhYl9jZmlkZl5bZGBhYGFjZF9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1xUV1dRTlJaU1JRVFJUVVRLUlZWW1paU09TUVZWVlRPV1JTWlJUVFRYXVdYWFNYXFheXVlaXVRVTlZXV15bWFJVVVlZWVVXWVxVVFdeWV1dYF1iYl5ZX1tlYV9kZF5eY2NhXmVmaWRmXV1kYWBgYWJkYGJeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFtUVVZWVFRUXl5gXl5iXGBVXV5ia3l0bH1rWlVZVVFRU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1taVFVWWllaV1haXFZVWl5cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXFVWWVdXVVhfX2FhYGNdX1RdX2JlZXWBemhYWVlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSV1NXVlVTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWVRZWlphWVxWV1hbWltZWVpbWFZdX2BfY2JhZGRcYlxgZmFkZmReX2RiYltmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRZVlNcVFZXWVZWXGBhYmNhY15fVltgZGFfenVvaFlcWlVXVFdbWllcWVhZYFdQVl5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1ldXlleVVNZV1lZXWJaXlZXW1xbXFtbWltZWV9fYGBkYmNkZWJkWWFmY2ZmZV5hYmBjXmJjaWRjZ19nXmFiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNPVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheW11bVldYWVxcXF9bWVtiVlRYXl1hY1xSVllQV1ZXV1dWU1VUWFxcXmBgXWBcV2FeW15cW15YVlhYW1tfYFxfWFlcXF1eXlxbXVhbYGFeYGRjZGVlZmJYY2VkaGdkXmNgYGVjXWVpZGVpX2ZdY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWlhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXlldXllYVVdbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZGNlZmVmYlpkZmZpZ2NfY15hZmRaaWljZmpjZV5iYmNhYGBfXV1aWFxZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVddW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpiZWNhUlxaT1hYWltbWldaWWBdYGJiYGFjX1xiXV9dW15eWVlUWF1eX2BfYFxbXl5gYmNdXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGNnYFxpaWJoamVkYGJhY2FfYF9dXVxZXFlYV1hZWFdcWlpXV1hPWFpdYWNmZnJrf0pZV1xaWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiY2JcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5aWFZbX15dYWFgXltgYWJlY19dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBbZWdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxbW1ZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t8fHx8e3x7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t8fHx8fHx8fX19fX18fXx7enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29vb3l+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKgkU+Pz8/P0AwKisrKyoijNvS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29ueYB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjI2DOjIzMzMzNCEaGxsbGxCP7+Xl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXp5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx2dXV1dXV1dHNzc3Nzc32FhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnd6eHp5eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3x8fHx8fHx8fX19fX19e3p6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eH15e316fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgYKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHl7fnl8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8eXl8enx7d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHx6e3x7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4enl6enl7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXBwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJycnNzcnFven9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXl7cHJxcHGXg25wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHJxfZ56cHFvhqB8b3BwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFynZ92cHScn31vcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcnCXrJBuf6OffnBxcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycI6xqHqIpqB9cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3NznLOmpKexonZzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHh3d4GrnaG2pqKnhHp5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx8fHx7kqaZo7Ghm6SUent6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2VnoqUrJ6en5qAf399fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgJSjnJScm5eOm4N/gYB+f39/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f3+AgYB+mrKpo5ufn6WnkX18fX6Af35+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f4CBhJWvpp6ln5+epKitn5GHgX+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KGiZamsamem6Wfnp+gn6OoqKOXh4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4WKmaOfmZiYnZ2eoZ+bnJ2Zk4yFg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCBh4yRlZiZjZWdm5iUjYeGhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBgYOLlpyHjpuajIeGiIiIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SEgoGEi4qSjoWEg4OFhYWDhISFhYOBgoB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKBgYGAiJGCgoOBgoCAgH+BgICAf4B/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAgICJkYCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/gIyVgoKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmIqDhYSEhIKAkpqGgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYycjYCCgYGCgoWUk4yBgoGCg4OBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZeMgIOBgYGAj5OMkIGCgYKCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4t+hISDhIKDg4KOiYWMgoKDgoKCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf359fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkZKMioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39/fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYSFhoaGhYWFhoaHh4aGhYaFhYaHh4eIhoeHhoaGh4eHhoaHh4aGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aHhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGCgoGBgYGAf4B/f357eoCGh4iKiomJiYiJiYmJiouKiIiIiYmLi4qKiIeHiIiJh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fnx7fIOHiYuLioqJiIiKiYiJi4qJiYiIiIqKiYuJh4aGhoeFhoiIiYiGhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJh4eGiIeGiYmDg4SDhYSEhYWHiIiGhYOCgoOFh4aHhoaEgoKDhIKDhISCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGhoaEg4GCg4SFhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoGBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYWEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhISFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4CDg4ODg4KCgH19f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIGCgoCAgICAgYGBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goODgoOCg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f4CAfn2Af36AgIF/gICBf3+AgIF+fX1/gIF/f35/gICAgICAgH+Agn+AgoGBg4GBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foCDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/f39/fn58f39+f4B/fn9/gH+BgH9+fX5/f359fH5/gH5+fn9/gH9/f3+Af39/fn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gIB/f35+f36AgH9+f3+Af4KAf3x+fn9+fn18f3+Af35+f3+Af39+f3+AgH59gH9/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXh9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+f36BgIGBf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOAgoOBgIKAgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoaEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl4eHyCg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCAgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgYGCgYOGiIyFg4KCgYSChIOCg4WEhIWDg4ODgoODgoKCgoODgoKRkIuIiIeJh4aGhIaFhYSEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl5fIGBfoiWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYSDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6e3x/gYOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WFhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fXx/gYB9ho+Bfn2Cfn9+gIJ8fIB/goCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMjI6OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX5/gHx+fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoGBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYODf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f36LhIGHfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX6Afn9+hJKNjYyPjYyKhoSFhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen5+fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX+AgIODgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx+gIKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISDgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fH18fH18fX57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko+MiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn2AgIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fX19fXx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiYyRkI6KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fn1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt6e3t5enl5eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/gICBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18fn58fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiPjouLh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Afn19fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX19gIOAiY6LjIiFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOBgICAgoF/gIGEgX5+gH9+foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx7fHt7e3x7fHx8fXyKi4mIhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgYCAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt7foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19foB/f4GAgYGAgICBgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISFg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhISDgYB/gH+AgX59fX5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn59f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OEhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf3+Af4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af398fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4GDgoOAf3+BgYCCgYGBgICBgICAf4CBgICCg4GBf4CEgH2BgoSAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhIKEhIWEhISBg4KBg4F/gIF+f4B+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgIGBgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgIF/f4GCgYB/fn+Bfn+AgoGAgYOChISGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fXx+gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYCAf32Bf35+f39+fX1+gIGCgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgICAgIB8f3+Afn+BgH9/foF/fn9/fn19fH+AgICAfn9+fn99fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYl9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgYCAgYB+f35/f318fn2AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH17fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKAgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh6gYF4eXt8fH18fHt8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+Af4CAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKDgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58e318e31/eHd2eXl6fHx8fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYOCf4CAf4GDgoGAgYGAgH+BgYGBgIOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f316fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCg4ODhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYSBgoKBgoF+gICAgoGCgYGDgoCBgICAgoKBhIB+gYOBf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDg4KEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGCgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhICChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7fYF+fHl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgYKAgoB9gICBgoOCgoKChIKAgoKDhIKCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4OBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4KDgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+f31+goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fn9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgX+BgoB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX16fXt8fXx/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SDhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WDhISDgoF+f357fHt+e3x8fX9/fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoeFhISFhYOEh4aDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFhoeFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4SHg4SBgoSFg4GAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9f318fHx+fXx9fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH57e3t6e3x8fHt7e357fH17ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIh4iGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4OBf35+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhISHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYWEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfH98fX1+fXt9fXx9eXp6eXt8fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SFhoaFhYaCg4OFgICBgICDgIOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoWGhoOEg4aChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgYKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SChISAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1+f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFg4ODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fY2djY2NjY2NjY2dnZ2djX19fX19fX19bW1tbW1tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtBPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi3qaenp6enp6enp6enp6axvr29vb29vb28vLy8u7/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OjoIaEhISEhISEhISEhISClayqqqqqqqqqqampqaiw0tLS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PEJAODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpaKJh4eHh4eHh4eHh4eHhZetq6urq6urq6uqqqqpstLS0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDw+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamnkI6Ojo6OjY2NjY2NjYucsa+vr6+vr6+vr6+vrrbS0tLS0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tDQ0NDQz8/Pz8/Pz8/O0NPS0tLS0tLS0tLS09PS1dTU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7OztHUz8/R1NTTzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1tbW1tbW1tbW1tfW1tbW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztO7nc/SrYODlc/SpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK1lZu1ypq8uJm1s5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/Rn6CqsMSijICNxZ2XlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw5Nj9CP0I6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0cWHmrPAnois1rqXoZ2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Wp5m1u6erm6WymZavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P1aWZtMGgnZankJqEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX19jY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NalmbLWo7Srn3+gqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NDVpZqz1snYwZyAvK2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0Y/SEhHRUA8PD4+PD09PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPQ1aWZtMmNoZ+fmaiWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQzs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HH0tajmrPCpKqjocOgq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09HVtYLD2KmPkKzXwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw8P0dFR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dHC1NLVwb/W0tXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS1NLS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj0+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6Njk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9CR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2tvb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg1NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU5NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo6Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsrK2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo5Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tLa2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKuopqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6efm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5OSkZeanJqWl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlp6empqKenJ+hoJmRkpqWl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaWmp6alpaenpqWjoKChoJ+ak6avm5qZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqSlpKampqSko6KioZ6dmqOKh5ucmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqaupKSkpKKhoZ6bm5+gW4acmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKCqtLCio6KgnpybmpqpcFCLm5ucmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaGgq5OcrqCgnp2amZqimVNaj5ydnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCgoKOhaJesn52bmpucqnNWX4+enp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp6dqHRopKObm5ucn6FrYmKRnp2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZybmqeCbIGnm5ucnKKSbGRjjZ+cnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmZqmhHZwk5qbnJ2dgmplZYygnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJyZmJmZpo11fHyOmp2flnhmX2WNoZ2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZiZmZyVlJ17f5yioIaMf2BmkaCen56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmfqZyKa22uqqFnf4t6Z5efoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmXpqWIcF9qpJSYVmd7fXydnJuenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qal6mZZ0VIdJmDhU9FYHWAlJGNkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkJathD06PHiMdm5ROTVedoKHgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg36Yo1pebFB5oZaDU2NqRmd4gYKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+nYxZmKNvtryxvIJ5mn1OdX6Fjo2Lho2UkouQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhH+CfaB4jNzMs9axnri8ZWJyYWCIi46LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYx/iI2Mi4uIkoqaaLPJtMjUr666p3SLqWpYiIuKkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmRnqGdk5eboZqenKOjk2+pm5HCvraxmI13XcqaVYKPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6qps6CHkHmUrJSMj315cmednGN4naKknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipamnp6mqjnhXg417eoBwbmtzdnx9dqCpp6Cioq6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKaanaSmoqGpnnxoS2l0bnB4amhkamtueoSWpKOgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioaOnoaaupqenr4RsYktdc25vd2diY2VfXmp0fo6boqGfnaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqmioKGoqa2ws7W8spZvZVxHVnZyc3xnYWRqWlpgY214f4qZoqKhopmWnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOrqqiutri8wcO9r5l7ZWRbQF1sbnh7a2FfZ1tYYF5hZnBzeYGToqidnqGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7O6xtDa1ca4qJZ9Z2JjVT1eamx2cXJkYmNZV1xfXV1haGprbnuSpa6npZmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1pdmtwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW90uDh0LqlkoNyYVlbW08/V3JpXltubF5dV1lYWlpYWVlbZHKGnbrIvrehp6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PDvMPIztTQwKN+YVVTVVhRRkmCbnqDf15WWFdcW11aV2B8nLK8wMbHt7e3qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwcXIyMW/xa2KZVZYVVFJa3WjrKNPVVxfYVxdbJCxxLy9rqmyt6u1sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH6Ef2pmaGFrbGdudXJydXFnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEJCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/xMPGxsCxlMTI0ruLZlVWUVZmoq6dTlZXWFtnh7O3rrCtsqaqqqqrrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhvemppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMS5tMC2s77GyLCAWlRTUJmxkUdPVllxjqa8sKWttLWsr6Wlo6ekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt3bmtpaHZaZ3J4c3lmZl5kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLFvri9wMLCw6FuVUqNtoVFS1p+oaKntLKtrLi1s6ypo6GtqaynrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXmpvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMe/xMfExMjLxqxzX3ZfS1eWt7nAvb65vLq8urysraapu7q5t7+ytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aWpqdG55bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxcXFw8bFyMzUzIZJTFegycHIzcbEwcTHwby+tLGwsMK+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGtqd2xpZnVvdGNdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPBwsbGxsrMe0eFzs3HzNDFtr+/wMC6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnY2pkYmttbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvr3BwL/Ax6VKn9LMxcnRwa+9vbi5u7u+t7Sxub6zvL6xubW4u7a8tLW5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjY2RqY2djW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Bu7/AvLvEvbrAxL+9vLi8wMWvT5nNxMDByb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7e4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWOu7+7w7W6x7e2ubu8uLm1usTIqlCRyb+/u8G+uca9wr+8xbi2t7S4tra7u7m2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZmVmcGpla2hYWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/FeazMvce3ubittrS3ubO1srrFyp5SiMq/v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfWtucWdxa3RmYm5gXFRIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrnaEvcjPwsC4rrW1u723ubG+w8eTWIPOw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGpudW94Y2diXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0ZlzdrDR0czKxLW6v8TIvr60vsC/gmZ4y8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4J0b2xsdGxsbl9jXmFiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysKHdXanzMzLzcrGwsPLzsG8uLy6sH13a7zIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWRbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7rNvDvra+wL6+uqacqrO3w8Cme3l7nsTGy8jBw8DAycrBv7u5saORhXqvyMXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3h0aHBeXF9cWlFFRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFt22uzr22ucC8qn1uaG5tdIKXmXR6fpq+v8bAucC8vsXEvb24sq6kp5KSncrDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXZ7cW9qXGBgWVNQQUZJR0tARUNIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbJ2grO9trXBpIZpWl5gTlNbXHB1eYSjuLfCurO7t7u9v7q7u6+iqK2epIG+xcO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d29yYV9mXVtVSj0/P0dHPUdDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmnhHiLobC1nGpmZ1ZZX0lJTVBUbnmJqbC3vrmytbK8uby2ub61lqq8q7F3rMrEwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXV3dHdybGBjYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/GqYd7doyhmF9TQ1lVSGJqVU9FSmOQpK6vtrq1tLKsvLm4tbjBvY2ivq+wdqfLwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZzbmNeZ1ldXVNPTkE+SkJASkpANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7SQgXmIkG5OSz9lWUJPeIGTaE1CXoSxtbO1srSvrLu6uLa5v8V3irSnnmaqv7i1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLavqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211amxdXGtVXVtQTkhER01CRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHxYRkFPh1hKSll4joNjQVSjubO0srCxrbC5uLa7t7u9kqOzrqR0rLCpq62ro6ihnZ2el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh1dG9lVWFkV11RT01IQElSRE1DPTg4NzU6Nzw+Ojs9ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmYmZVoTUBTeXFQSUlLaJyAWkVUr7uxrLOvrqyttraytLWuqaefmpuen6aonqCoqZ+hp5ablpeOnZSPkJaNl5ukqKCgoqKhpaWdo6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56em5mml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoYh4g3x2f3pjd2xuXVFpVVBPR1BNTENQUUA+Oz40OTo1Ozk9Ozo5PDk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3CqqW8Z0RTm39RWElLYUpWjmJlZIKvtaqytK6qq6+wsrOtpZ2Rl5OOl6CfoqCco6SfnqiUm5aXjJeRjZCXk5ido6qfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fH91dn1ua3tkaFZSZE5KSEdPU05LTkg8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCqxr/Kn09Bc5hzUG5KTGNmdXRgXGJzkbKvrrO1qqasq6KbmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpaqqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3l8ZXl5YGJTVmFISUpLU1RJU1FNOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpcbGjFdTSmakWmZ9b3JbUWtjXGZiYGyRtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWlyd3VwY3d2WFdjYGRpWlpXZ62urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2orKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7a4s7itsrSkoJ2loKyhoaKhoJqYlpWfm5uYpaGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCgH14dmp3dV5tW1JhSVJVSEZVV0pDTUc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCkf2+CcGBjWExbUlpMTFFZUkhOTkiZrKqppJ+fmZKSlJiYlpaVjIiLjpWdnJ2dnpeemaafoKilsaqnrqOrrrawtLKxrra4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm4vK+zsLXCvLe+s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21obVxYXENXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOenIliV15lYFdNUUc9PkBDRD8+QlJ4qa2pqqWfnp+io52enZqcm5STlZSenZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a7u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6qzraqztK+zrqqvo52sqLaxraOwpqCjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJra3VycWhWXFFGVUhESlBJP0VBNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFFGRDtDP0Y8Pjk2Tn6qs6ejo6KgnqWrpp6YnJSRmZ2ZlYyKhoiGeG2IoKSiq6y0vLbDvb6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3w8rKw8HHv7q0uru1u7ewtrKqurKuu7i/u7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtlWVtGS0xFRFRNRUNFNzo/OjU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz49Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9cmlhV05FPklafG9hQT1cjq6soJmbm56emZeXmJKNj5eXk46NkIyCg4J3cnFtcI+mra60ucW7zcfLvsHMzc3Mx8nRzMzMx8nFxszQ0tXO08m9wL/Du8bFyMXR083U0NPTzMrCxcbGysjPwMnRzMfGyMbCvMPBv7+/tr6zrb/Aw8PHxcfEr7+5sri8xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXRzZWJncm9mXlpaQ05MREZQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E/PEA/Pjk7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaWZcVElEQD9Lhp6kmIOgsq2jnpyfmpiXlJKUlpGQj4yIhIOIh4OAgYGAeXFyb2x5pLa6ub7LwdPR08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fS19LV1tPUyMzHzM3K083O083GycrKwsbMx8nJxr/Ds7PIxcvLy8/Hyr++v73BxsXNzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZFZXUURORkBJUUM+Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2FTTEpEQz9DUrDSvbKvppycnKCkoZ2alJOVlIl9eHFrZWJocm9xe4WKgHVwbnF0cIWzw77F0dDX1tXS1s3U1tfU09HT1NTTz9LE0NPW2NXW0svJztHLxs3RytLV1tnW19PX2M7Sys/RzM/QzNPQwMnIysTMzMzPz8XHyLbAy8DSzczQxsrJwMTDyM7N0NHPzcvIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYGVyY11SXElKR0FFSUo+O0E4PTU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFZSUBBREFGUXayr6aalJefnJqgoJ6bnJqViXdpY2FfX2BfXl9fXWFsdXNwcG9scnF1ksTIx9TW19fW09bQ1dTa1NTOz9XU1NHRzNHO09fW09XQz9LT0cnT0cjQ2NfY0djS19nU1czPz8rN0svP0cDGw8jGz87R0dLIzM3Ay83G08/MzsjEy8fHyczK1NTR1c/SzNPCucWxpai1rqebqKulnbKosLOtrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYmNpbV9WUF9KSkNGQ1JNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu32NTV2dnRztC/vMzJtr6upqqooaOrZUM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cWVjYl9fYV9eYWBfYGBfYGVtcHBua29yd3eczMHT1dPY2NbZ0dLS18/TzsvSzdXU0cvPzdPW0tHVzc/V1dHF0dTK0NTV1s7T0djX19jLyM7Eyc/MyszAysDJys7Oz8vQzs7Mz8/IzNDQy87Lw8rHyc3KzNLTzdPS0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksXpIRkI7V42hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3O1MzO0s3L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXNwsjKw8zExsnKy8/Lzs3QztPMxsnQzcjHy8XHwsbKzM3Q0sfQz87OzNDFx8G4ub3Dw73DuLKyvrG7w8O1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWdgYHFoWVhoVk1HTElQUUI7Qz47Njg6ODo6NTc9PUA7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzs8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfDuMrV1tna29jMzM/I1tXEwrWvtKifrZd4bHBxeY+ajYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNhYF9fYGFhYF9dW11ncnJwcnNxbXJ5pcfTz8vQ0NPUysXJycbGv8PFz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svQz8a6xL/Gyr3DyMnOxcPHwMfNyMTMy8zPyMTE0MnGwsbJxb/Bx8zLzM/Cy8zJx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG90ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7uto7Z+aIOFpKuTjY2Wj4WDg4OBfYSEfnNfW15eXmBeYGNkY19dXV5fYGBfW1pcYGxycW9va2xvb3250cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIys3JxMLLycHBy9DFy8i/ucK7xse+wMbPy8TAw7vJx8m8ycfFysC+wsvGxcS+xr29wcPFzMXGvMDJw8XH0sXByb/KycbIxtHDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdGZpWmFubVpcWFJETEZCR0VMREZTQDU0MzM1PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1drY2c/L0s3NzsjBtcO+sa+2bF56faGRipKWhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lrcG9zj8e9ysXLwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7usbDv7zCzsPGvr61wb3Eu73Hu8O6tL3GxMLDt8C2tr6/u8zDvba6yLu/vsvDwcbCxcnHycbQxsLMyLLHycPOzMDFw7+9srewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2RWXllKRkpGSEtBRkJGSkA5OjY1ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysnGzc3O0cjQxtXU1dfNys7FycXHwbnFvauupmBkdYOTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXmhzcW1nZ25wcnmdvczAw7rAuK2wsaeqraynuLS2tLOztLu2vbG3sLWvsrvCvMHEvL+7tbK6vsC4yLm0u7fBwr24vcfBxLy1r7K2u7+0xbe7tau5vb7AvbG7trC3urPGvLevu7+1t7XFvL7DxcDExcbHy8XAxsa7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjJyMrIysTQzdLPzcXHwcbAv7q3ybaqsJlbZ3CKj4WIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaWZqbW5yfKTHwLi4tbCrrKeeoqmnnqqss62qrKq0rbaxs6mup6yzu7q2w7m6urGrtbm7tMK6sMCxvry7trzHucO2raqosLLAtri9sLGnsbO1u7ysrramrrauu7Kxqrmwrruuu7i7wMC+usO/xsPFwLzGwcfLuMXHxb/Hw8O6xMbCu8bJzMuzucK9u7OJc3Z2a2lgYmxpWVdXW0FMS01KRUFDQEZBOjk6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTQx83Bw8a/xMTDw8rCycq/wLzCurO1tcOuqrCSW2p/koeOj3t4fYmFenuEgXduXl1cXF1fYF9fZGNiY2RiYF9dWltaWl1aWlpaXGVub2hmaGlrbnKBrbqwta6lpKammqCkoJmcpauupKiiq6qsq7Cjpp+qrbS2sb25r7ewqK64tLO8uLS8r7i5trK8wbLBrqWoo6uxsrOovaqrqKutrrW0pqitoaSvqbKmqKiupqi3rLGzt7q6u7K8vr6+xL+1wsHHyLe+wMS3xMO/u7/Ewr7EyMzKv7/DwMCph3N0c2ppXGFvZFdWWFBIWVJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz83Dx7m5y8HLvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairkmRtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9eXVxaWFlbW1lYWlxfZmtmZGdlaGtvcoWqpaulnpygpJSdpJqXkaGiqaOjn6Wmp6atoJ2cpKatsrC2t6exraiqtKu0urG2tq62ubOwurqxt6WgpJ+msaisqbqqpKenqKeyraCop5+cpKasn5+npKChsa2trLK0s7Swtby2u8HAsru+w8GxubnCs8G+wLW4vL2+vMLHxcPEv8DEoIR4cWxiZmBrb2BUWV9ITmdPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLS2vbi6wLq9tqCelJ2hprq2q7Ozu7PEz8nLw8a4t8fAzL+4ybe7xbizxbizv8CstbyyrKWvs62ho5FpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGFeXFtcXFhZWFhYVlhbXl9kY2JlZ2dna21viJ2pn5WVmqCVmqKYlYydoaKnnKCfpKWip56bo5ygq7CtsbWkqaqqrKyktLitt7Css7avs7WvsKqfnp+jorKlpqq5raKmpqCorauZoKCemZ2fpZqao5ycnq+pq6iqrK2tsLK4r7i5urC2vLu6q7OyubO9tLaxsba1v7a9wL7Dwru6vZeEe3NrX2VeZGRYVFdeSVdcS1BHSkpHQTw/P0A7PzwwNTUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uce4t763ssK0sbu7rLm6saKeqaunmJ6PbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGZmZmhpa3KNp5ySk5OalpqglZWQm6KhqJ6cnaWnoqWcoKGbma+urq+yoaWjrqunorWwsrKsqa+zp7qzpraho5+bo6Gto6Kqtqujo6aepaajlpmdl5mbnaCal56dnZytoauoo6Smrauys6q1sLKrsrm0r6qvsrKzt7Ouqa2usrixura6vcC4s7GUhnp1Zl9mXltZVlNaVUtbUUxKRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+znaWjmKWxwrW2va20uMHMyMa/xbbBwMfOt8DEvbO5ubK/trG5u62ytK+fmqSqoJSaj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqCbkpOPk5WWnpaYk5efnaGclqGhqaSfn6mdnJurp6+wq5yjpLiqoaCuqLaqp6itsaS4sKS3oKOcmZmqp6Gbrbmwo6GknKKgoJOUoZSWlpuZmJaXnJWfqZ6ppKKdo6qqsa2otKyqp62zsKWrrrOxsLCvr6eoqLKusrWwvLS6uK6jlYJ6d2VfYVZZWFNSVEtNXkxQTEdITEtFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJmhqZSRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmJjZmmAlJGTi5CSk5mXnJWVm5+cn5agoKempKeooJ2gpqCqr6afoqO3qKGhoqizoqWopbCmsa2stZ6hnZaVqaKilK2ysZ+jo56emJuTi6GUkZOYmJOXmJiXnqebp6KimqSlpaukpbCnpaOrrK2mqK6vr6uoqqqzpqarr7Sxr7y2sa+voJJ7eHNlYVxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaast7u8wcW6sbm1xMnJwMPGxce2xcSzwb/Fq7e3vba9uru1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpaW1lZWltXVVhXVFRWVVJUUlVgYV9gYV9gYWNkaYCRkYePjZKQkpyTlZakmaCXnKCloq2mpaWkpKOdqqulmp+lsaqgoZ6lq56oop+uramprq2ioqKVmKKbnJCrqbGcn6Kfn5eYk4mekY2Sk5aQmJiUnKGjnaShopWgoqWmm6OrpaKkqqOrrqWusqmmpaamtKaqqK2ztbS5urCqrJ6Mc3FwYFtXVlZSRlBPSFpcT1JKVExTTEVHSkQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Ktnainr7m5s8DJurXAr8XIzLrByszItcm8sb3Dya2xuMG1vMC8tLWqrKaVmZubiIFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXF1eXl9fYmRtjI2Cj4SOj42YkpOSnJqinJuhqamrqaynqaakmaWvpZWapa+poJyZm6Ger5qcq7Sgpqafo6ShlJOblpaSqaqtmp2goaGblJCMmY6MkYySjZaVkJ6ioKOdnKOVm6CjoZeiqKOjqKugq6+krrimo6SjrK2qqKuvs7eyvbWzq6+YhXRzaFtYWVNVUkVYTFFbWE1VT1FMUVJJTkpDPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7evqKevrpupqKy3tqu8yru2v6zLxsW4wc7PyLPEure7wsixrbi/t7y9u7O1pqmglpeYlod6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FZWlpaXVxcXl9gZX2KgIl9io+IkIyWkZeZoqCboKuqpq+sqLGlqZqgraGVlqSop52YkI+anq6XmaeqmaCdlKWhn5KRkpGTlairpZqZmZ6elo6Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6WmqKiooLGwprG9qKCjrLSrrqewtbC5tcCxrrGrkX5yc2JWVFZOUkpHVlBSUkxMWE5KTE9SR01LQUNGREQ+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NzYxMzIxLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxtre8vcHDsbCxt620tLuztKKjnZ2Xl5SDgHZrZ2xucW5ya3BrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRSTk5OUldYWllZWVxcXWFqfnh9c4eMhY6Il4mUk5ibmJ6pm6Crpqasnqiaoaack4+fo5qXl4WEkpukkJWjnZaWloiim5uUjI6KkJqlp5yVlZebkZKHlI6LgYyNgJCLkpKSoJqgopaUmZmVoqaZjZmkpqmmoaC0sqizuKGco7esqq6ksrKmtby1q6yxo4l5c25dTlFRTE9ETk5OUEtGTk5KSk5OUUlNSkFITEhIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSopLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS3saWnpKqloKmmpLOqorLDtbWys8bGtrrDyszGs6y5vbS4wK+tqbCepq66r62fmZqdlZSHe4NuX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW5wdG6ChoGHf5CDjoqTkZOdoY+anKOipJmll6KclY2ImZqMc42Dfo6XloaSmpCUjo57mY+djIKJf4qYoKOekJOYloWOg5R+fnSKjnqQh5OQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmaa4pqaxobCunLC8qqmvqpmDd3NjVk1ST1BNQ1NOTFBNQlBRSElOU01ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGsrcOtqKKmkp2mtq2joI+VlpKQfXd+ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlRTU1RVVVZZW11qanBrfYN7c05Yco+Cl4aNnJeLlJGgmZ2VlJaVj5eKgJSJXztWb3yMlImAjJKMkIaGc4uFl4F5gXuGk52Ug5WOkZCDhn2TeHFwho19ioGRjY+XmpmTi5CKnYifmIeIlp6aoaCXp66praionpeus6Kmrpmsq5iotKOpraOTf3NuX1tOU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCgrKy0zODU0Nzc5PDo3OTs4NkE5ebego66hpqaqoKapp6Opr6intMK5sLWwx8K3s73Pv7mvrrXCp6rFqqOdmIOUnLGimpiGlI+Lh31zdV1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtJRkhOUVFNT1JUVlhaYGxtZ3mAc1BCP3+VkpF9iJWMhIqNm46WlYqSiIaVh3mJf2BKUW54i5KEfoSNi4WAf21/f5R3dXZ4hI2acFGNiIqGfH54lHZod4aIfoqJlouOkZOXjISKiJWEm42ChJKalp6dlKSjqKmlpJ6csaqhpKSRpqmWoqqcoqaoiXZtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FRT0dKRD03Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKiosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hr6GnqKWnqK+sqrW8tri2s8G7tqi5yLi2qKi1tqqyvKeelo1/ipSolpWKfo6Dgn13cG9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1KRURDSU5PaFlPUVNUVVpugnJ1fWloXFSQiZSIdH6GgXyFjJOCkpqLj3uGj4B2gHhzb3ZxdI6OgXp+iquEenpodnuOcHJteIGLjZJ4e4B7gHZzcpJ4Z3WFhISFfJWKiIqNi4B/hIuNgJSEfICPmJWclpGfnamen6CdoKmlnp2YjaekkqCglp6fpIFzaGFdXUpXUFJHS1hST0pMTVJKSkpMUEhMUUxSVE1GSUI8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK8uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6RfnaGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmdoyWmI2OfGd5gXZ4gImQfYSYkoFxh498d3tva36tfXSQi397hpKAfH90ZnZ8hmxvaHN8iYyHgG15cX1xbXaPcWhxgX6OcESLhYKDhX93eHqMhn2Me3V9jpKPmIuSmpujlpmcmp2eoZyWjYulmo6dl46WmJB4b25nY1tYWFVRSlNVVE9QTlFWS05LT09KUk9JTlBMRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzUxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoaawrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlp2lqaShmJmPhZJ5iY6LinVxe211cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFhdZXBybIinqsB+dHlie3hvfHmJkHp9i4ZvbYySeXR5amqAgnGWkYuBfpaASZKZbmh3foJtamRseYWQkoZscmx8bnJ8hmlucH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6MipSDlpeYmpCSlpeZl52WjIOJnpKLko2GkJaAb2pvb29ZVlhUUlFZT1JUVFJYVU1OSE1KTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrLCjraqota+urLS/q7zDv6WimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXF+nh2GaaXN5ZX5vbX96i4l2goiGdGyaknR0fGpqnY9NeYWTiYSOZzF2h3Nsfn6DdGZldX+EhIWAZ2lsdWtxgHxocXF8bpONj3x0fn1xcW52bYJ/d3l1anmJgoiJg5aSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trcGhmWFJaV1lZW01QVVZZWE5JSEVKSkhHQ0BHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakZmWo6itnrGep7qvq7KwwrG7w8ealo+UmYuOhXqEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+yoHF7eGx9bHGCgoWBeoSGhnlyoZV0eIFzdZSHNXGdqJ2OoaGEooV2cId8h3x0jK6NiYFoZ2JqbnJtcIJ1aW9YdXCOm5J3bX97fW1ybnCAe3N2bmJ2g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2Oe3NxcW1gXF1eW1lYYF9STltaWFdMSEpGSkc/Q0FCSD9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp5+vlaW0qa6xrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt0eHhsd253Y2leSlBHPj82NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8foWDf4x+daKaen6GgYSZhJucYYaqn52Lg5COeneJfomIjnOLl4+Ee11lcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0eXhrbmlddoZ8h3yHh45/ipKXg42FjIZ9cYR/hH11d3t8iXdwc3RmZ2BbW15TW2deV1BUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIyRnJ2fppGgqqCxqK/AsrvFupaOkZSHe4Z2a3+MkYJ9ioSPjHiDgHOghIp9fIF/cIB+emd2a1JXTEBFMjExMzY2Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmiEiHuJeXxxfI+Men2Jh36Xh3ahmoiHj5KUpY2tqkiGrq+vi4GAk4qCi4KEkqmHgJiYipx0bXyBhod9jmhnaHl/boWHgoVxhIZHbIB3cnl2aG1rX3Z9goh/h4SLeZSdnImLiJF/enWLdnx4bXB3foB0dHJsW15eXGNjWGdlXFRPUFZZUERMS0ZOSUNGQ0NAQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5GOlpeSl6CeraGmuK+zvbOXjZKLmIt9dHB+iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01NUFdgWHBZXF5pjZOHlYCEgoWRk36FiJGBmpWCoaGYlZubpq2Tmruxp7vHw6iLjKGlj5SKgZF8cYOen5Gcf3aGhYuQh5BpaHCEgXSNh4SKcYaCd4d/e3aFfW52dWZ/lI6HiIiHiIegq6KWiY6Xf3qCiHl5b2dreH97f3RsZV5bW15qXmJnYFpPS05XUlFJUEpETkdDSkRDQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneDe4CMf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShZKVf4qAkpuOg4CBjIqCiY2Df4qAbXBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlNSU1NUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUxMS05WYGN/Z2dtdZ2bj5qSk4uNjpqIk4+di6CgkqOqpaOsk6m2oqjBwq7Hr3i6lJp8jaGemYSThYKOop+TmJKEioWPmZGWbHB1ioyCloyNjnePhHFthYGKlpGDhYhxiKCWhpKJjo+WpLWpm42UooOHk4N9f2tqa32BgoN1Y15kYFtnbF1sbF5XS0dOUlFNTExGSVBDRE1GQkNFRkI9OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYaQh4WJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOUFJUUFBRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpaKZoZeilJyeqJ6oq5+orKmqtperv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGIlaKbm3h6fpSYkqGTl5eBlJ57d5WSq7KJjZeffJSdm42SlZijoqa2r52RmaiHlo+NgYhsc3N9gX1zaWBeYmBiaGRgZ2ZcUkVKS1BPSUlMRkZNQ0hMRkdEQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wMC8vLi4wMDE1PkFCTVFSU1FSU1RSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYWQd5WKo6eqtL24pK2srKeotKuwtrKyrbuxs72cs8OrusnLt8O/uKWisLOsraqji5aYhaamoKOXgaaZjaKrqKWIhZSkoaCroaSpj5uwi5Wjpre7m6GjsJKinaKdkKOhq6+ssrWilKSqiJmJkomVenp+hoBpYmldZmNeZGReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhjV2lvWHqFdoGThYeCm4OSkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4SBi4WGiJKGgoSJhoiHh3FuYUBFNjQ8My8xMTAtLCstMS4tND9DQU1VUVJTVVVWVU5bUEdIRDw+PkZIQ0VBODs8NUM7PUZLSUdIUU9QV4GSoISuo7OqssDHw6qzxbass7+zuL62v7TBtru6o7jFqLbJx7W+ubWoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqiutruyuqyvtaKxq7G1u7e1rrSgp6ijp5qpr62yube4p5u2qIykjpGTn4Z4goR3WmNlV2diYmRgYWZgW1VKRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFiY1d5dXCBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeEgY5/gYmPh4CGiIWJh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZQX1VJS0tBQD9HS0ZFRDs+QDdENz9CSkpFRlZTUF6PpK2jsbTDtrjBzMm2u8S9s7PAtrjBtb6vt3Sxs6W6xKSwxrmxs7G0qKS1tqqxoKKWm6KSpbCupq2sp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwre5t7+3ure5rKywpbCprb2wvLrCwqyZuqiTrY+Xl6qIfYN+bFhkYllrZmpmV1xjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldTWVVadmpvfo6EgI2EbnpzeIdiuaGZooiUlJaSlJONkJaSh4Z7hoGNlYqAhIGKenyLh4Z9ioKBioOVfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNRUlhYWmdZVGBgTFNQRUE/SUpIRUVBQEM8RTZCPkhHSkxTWlRdk664tbq4yL+6vcnMu7zAvLe1u7q2vbS6scZgdbKksZqeq72qpairq6SisrWgq6eflZafmJ+upaempZ+jlKOnsbSnsrO9tsG+08nJ08fDxczCysPAvr2+u7y3tK+4t7bDucW9wsevnrmqoauOpKi2iIGBc2BjY19YYmBqZ1JYYFZRVUlFRU5LQD5HRD1KQT1CQD1GPjxIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzM0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xyc3OH1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaKfoN/g3h7i4OHfIt5gYqCl35zfXprZnB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFVZVUpEQktKSEZISEhHQUk5RD9IS1RUVlxaW5O5wLi9t8bAu7nKyrq2ubW4ubK3tbSutraZZHWonK1wXqKsnJigopuknqullJ+fkJSOlpiXp5+ln56amYOknaylqrCtuLC9udTRztbPyczSzM/Oysa/vsLKvcG8wcDExMXKvsjOs6S7sLSvmqu4u5h/e21eYV1aX2FaZGNQW2BTUEtDQUVGRTxART5BSEFARD06RT49Sj8zNzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU0RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vlpKQlG5sb3V1h7OsoaCfi5mcmYyMlZGbkoWKin6Ih4yQi4l8gYRze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWdqaWhgZmlpbFptc5atpLyIh2dbb2hdWlpUSEtOT0pLUEtTUUhMQUpHSk9fXmJmaWGXt8ewuLK7vbWxxMa1sLiwr7ursrGnq7erjbWnnZqnmk6anYyOn5aRppillYqTk4mQiZCRkZ2boZealZaHnpqnm6yvqLCntLTU1NTW0svQ09XN08/NxcLJ0L7JycrJ0cfMzcLQ0bevw7zEuaW1usKig3BlXl5eWWFYWmZaUV1XT1BCQkhFQkg7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VWc5CQmIJocW95eYOgqp6lloyam5eLjZWRmo59iYuEjYqKi5CHfISCcH+IgYZ7h3KDkouOfXF4dWxxeH5xe254c2xpgXBtY2ptcHhpd3x+y7/B36duY3huY1thYEpQUlVOWV5QXVxOUE5UUVVUXG5tdoJxlq24rLSmr7aqrLzAsKu0pqS4pquuoKu0o46xrZqXmIyRk5GEjpuBjaaRnImDi4SKiYSLg5SVl5eTnJGcmJmZn56rrKSnoqytz9LV0c3M0tTU0NTRzsjD1NHHzdLT09fM0dHF0tbFwM7Hx8KovrfOnntwZ19kXlhhU15aUFFUUE9IPkBGQUJFPEBCPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OWnWGhYp3bHdwfX5/oZ6eoYuMmJOTi4ySj5aEeYWQkI2KiYeRhn6Be3J+gIGHeoR1hZOQiH9vdnJrc317dntzgXhyaoBzcmlwcXp5cnq+y5p+jLKEdnKEdmhha11DWlpbVmVjWGRqU1hdXWBkXmN4en6LgZipo6Shn6CopaqwuKqls6OhraGjraGnsZ+JppqTkpGJkY+IgZSJapSijJmEgIV+kYODk5ati5WNlZqOhpKRnpensKGgoaWkqMjOz8jCy9HU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy4x0cGViYVlVWlRcUEtHSUpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5WJj4qIjYePgHiElJiKjIiIi4h+gnhze32Dh3d/eoaRlX+DbndwbXV/dXh9dIV8eWyHdnRufXaEdXh8nbWMO0GLxaV+jHxpZVdJQ2ZjZWNnamRueFteZmhrbmlugIOIkYucnaCdkJeYnqOjprGjo7OfoaWdoKmgo7Gchp6SkpKQio6LhoOPhH6cm4yNgoSFepR+gqmVo4yRipeSi32XipqSq7OYmpyonKe9w8a5tsbO0tDS0MvSy8nUztDV2tfX2NTZ2M3Y287J2drR1r7Ly7V6eHBmXltTV1JbVkZHSklFRT06NzpAQEI6R0Q/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc1NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjX2XkZ2LfoeSg4mGhYmBh3x4hZaWiI6Dh4WGeoR5cXp7hIZ1eoWOjZx5i3B8b296f3F7gXGDh4Bujnp1d318gnV+e4aHr3NYqcK2jZGCcG5iPV5ocnBxcG54doFlaG9ydXhxeoyHjpORm5WflYeMk5ugm56qn6CsnKGamJ+lnp+rmYuajJCRjYR9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI2UjIZ8nImUj66qlJWYn5mnr7W9qa2+x8vJyczL0MnD0srU19jX2NfV29fT2dvV0Nra0dbI1MuWe31qaVxbUVRUX0hDRklIPkE9PTc6PT87PUc9P0FBQURBPj86ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDY1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjpEP0NHUmpebWRiZmt2gIhykY+agHqAjX6CgoGDfoN7fISYjYeLfoWGgHaCeW57e4eCdHqSno2gdo51gnR1gX10gIRvgY+Bb5KFdHyAhHp2hnuIt8Wkwcm4gZaaj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJWPl5CDiY6WmZeWpZyXn5aek5GXo52Zq5WQkImMkYKMhYiIgYaQkZ6bmYmFjIGGl3qIiJ+Xj4iNiouCfaGKkYy8oZiTl5mdqaamrp+otr/AwLnHys7Oxc3J0dbV1dnV19vU1tna29fb2trYztzGh317aWtnYVVYVlZOTERNQjs9PTw4Ojw+OT1ANj0/QD0/Pjw5ODY3REE2NDU1PTgwNjY1NTQ3NzQ1NjEzODU1NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImMknd2eop8foB+f3yEen2CkYmEhXqEh3p1fnVtfH2GfnN+kp6RnoORfIZ+eI59eIqKboKagHSZhn2BiIR7fZB6j6mOj8OhvYuco519iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYmKkJKVj52ak5SQlo2MlZ+clKCUkY2Nj4p+kI6Oi4SJkpaanp+JjJSSnZGCi3+lmYiEjYKFhIGlh4uLuJidkZWWoqihnZ6do6+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuHp7em1rZ1hiXFRQT0lDTEE8PD45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PURSU1JYX1ZYZm1tbWmBjopxc3mKe3p/fH97h3p8e4uGgn10g4V5cnpzbYB+hH53hZyhmp2UkoCMiH+Yh4Cbkm6HqIV6oIt8kY2CiISbfZqQioyjoqCQpK6gi5GLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlIyGiIySk4yUlJSPi4+Kh5abnY+VlpCKkpOFgIuIko2KipyWmaKjh5OdlqCKiYiNnJCDiI5/g4eGpIaMkLOYnZKVl6Ghn5mSnJ2osrmspr3Cx83Ixs/M0MzP19DR1K7W1dja2Nra19bZ2Z9xf3ZpaF9eWVRYWUNBSEM/Pj46NDk6Ozc6OzszOzs/PT43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieW1ifpGDb214i3h6f3qBfIV7e3aFhH9zcISBenV2dnSEg4V9fpKmpJ+lopaKnZCUl4uKqJdyirGNhKeShJmThJmMopWfmJOImp6jkqmvn5CVkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNx5WOhoeJkJKNjZOUiYWKiYWWmZuPkJSThpSXhH+Pi5mIjZCql5ejo4iZn5aaiI6Hl5eKhI6NgX+Ij6WJjZOpmpeTl5mhmZ+Zk52bo7O0pqO8wb7HxcXJyMnCy9PNzdSp0tHW1tbY2tTT2s6Dc4FpZWBfX1BLVlxCQkZDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdYKOfXxtfoh4en56gYGCfnZ2gIJ7bG6Kfnl8d3h8hIeLfoujs6ikq7KhlqegpaSWla6ig5C3lZKzmY2hoIukm6+ipJ2YkKeXqZmtr6SXlZWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKcmIWIiY6VjYuTj4eBhoeIk5iUjIuTk4aUmIaDkZCcdJGZspaXpKGInJqTj4qQi5eaiYqWjoZ9jJmfipCQnJqZk5mYn5SgnZWfm6GyrqOlt76zxcfEvcPDv8bOysnSp87N09LQ1tjSz9i7c3t3XmJXYlhRSUpPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdOW1xZSmdhO0iEinp7bYWGeXyEeICFgH1weHx9fG9zjHp9gnt4houJhYSSp7ytqbK9r6Wus7Ooo6KwrIqatZ6iuKWVraSXqa23pqSjn5mpmKqkr7CpmpmclJWRmKCXmbu7rcmgaba4q7CVmJ+iq5KXvaNeqrKCiYqNlYeRfI+OfYOGjo+UlIiHkpaLj5WNi42XmZKdmbSWlauei5yUko2QkoyYm4qSno+LiZWfoo6VjpianZOcmJ6VoqCUnJylr6iipbO4q8LIxLW7vbzFyMjC0aHGyc3NxNbW0MvTonF8al5cVWBTUUdEPz1DQUI4Pzg3ND5GPDw2PDM1MzQ1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo5Nj49NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVIYmBjcEpAi4p+gHKGh3yBiXWCioJ+bX19fH9wd4d3jYGHe42PjIaMmqvCwLC+xruztMG8tKyrs7aMqLKurr2rm7qkqK25t6umpqKho6Oqr7Kxqp2co5ibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIacrb2wg4uMi5CDj4ORj3qBh5CNjpyIiI+XjYuVl5SQmpacp5uxmpGrnY6Zj5KOlZCQlpePkaCRiJWbpKyVlo+UnJ6UoZ6bmaChlJqeqKekoaSws6bBxsOwsLu2xcTDvs2nx8PHw7zW0M3Eyol2dWRfXGJdT0tDTEBFRj5BP0I7OjQ+QT09NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxnR2BpZ1pdW5OMjIh7h4uGg4x1hpCKgW5+e4J/cX6BepV6kpSUmJGTlai0x8nAwszBw7rHvLqvq7m7l7K2urPArqXApKuwu7uqrquiop6nrK+1sKqboKqcopyWn7C0p4ujurq1wburqJyypKSolISOqcPEpIKLjoeIhIaVlI16g4yRj5GhjIyUkY+JmKCXk5mUl6agrp2MqpyOlY+SkZWVjpCVkY+hlIaXn6Czn5SblKChmaSfmqCcoJSYnqekpqekr62lv8TCrqm3tcnDvrbOssW+w7uz0cnIwbV3e29fWl5sVE5JRE1LS0lAQT1DRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZaJi4iSj4aJeYaTkIFyf3uNfneHgYKQeo2hlqiampi7vsnIysLSycrCzbzBs627vqe6v768w7iswamss7u9qrCppKWjrK60rba1oKCun6WimKO0vambqLzBo7a2r6uSr6yqq5aGmqmmpZGCjJOllYmAdYqSeYWNkZCeoJKOlIuPjZSjmZeblJSjnqmfkaWajI+Pj5WWiH2PlZKSo5qVoKKctaaQn5elpKOln56mmJ6Vl5ylo6moorKtqLvAxK+ls7fMwLmuw7O7vsG5rcLCwcCZcHtjW1leXE1NTkpHRENIQkJBQ0s6NERIOjs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+a0lfWGFaZGVWno+djpeOnpKJin+Jn5KEeIV/lX5/kIiKkICVoJmup6OYw77JxMjG083Ozcu8wrewury0vMq8w8G2t7yttMC5vK2vqKCpp7atrqmyt5qerKKnoZ2rt7ippa++xLG9ubOnqbOzra6WlaWsp6CRjpKxxaeVjXyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuMj4+eiFqQl5eSlqWZZpmjn7OllqOWrK2rp5yfp5eYlpiVoaSopp62rKm6vMO1prS2y8G4qrass7u4rqi4ur24g25wXFpWV1BHS1NNSz9BSEVER0ZHODVGTTs+Nz5BSi4zMjAyNUI1NVBXTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnJGaUlSZWJMRqaUnJahl6iWjJCDh6WSiIGHgpyEg5WQkZSOmqKfr76uoce+xsXIx87OztLKvru2sbq7vL7OtsS9t7m3srK1s7iyq6acq6u4q6mosLCXo66kp6SltMCwqqyzvsK6wLmzp7izt7OulaWtrq6ki5OVoY1zwZl9lpmEjpaai7GVmpqVkpOZmaajlaCblpqonJuhoJmLjI+WnWBKlpyalJqll1SWsJ+vnJ+llK+vraaboaaUk5mZjp2gp6KZtKmqs728u6uwssfAuKarq62xsaOhsrK0pHJxZ15cUFJNRVFRUFE7SEtJRkhBQz45S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1SRVdSc2JXRkirl5mfoaiumJCXh4unlo6IkoWfiIScl4+eoJujpbXJtKnGvMPEyMrJyMzOx766s6+5uMDBzbXIusC4tbqxr6+ytKajm6q0tKuppq6smaSupaWorLq/qKu2tr/BwL+4s7LCr7e9q6OutKy4pYibl6abdr6ghJicjpOZmouulqGcm5eVm6ChqZ6ooJqaqpmhp56XkI2RnYNudpOimpWdop+QrrKjq5WpqpirrqWloKWqk5KZnImVnKKelrGnqqu6t72zsq6+ubafo6eopaacnKypqY1laGJgU0xNR0hOSlVMPU1ETUlKQUNEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5TYU1WSH9lXkhGrJScoZ+7rpiUnouTqpuRkpOJq42Hop6MpKyUo6O2x720wbvDw8jJxcLOyMK9ubKvubTAwsq2xrHBvLW7q6mtrK+jopiqtLqmqqesqp2or6ekq6u+vKisvLO4vsa8t7W4wLC9v7OptbarvqSPopeRop+8n4maoJmXnp2Ot5+pnKWjm5yhmqels6KbnaWcqKqemZWPlJqLl4mNpKKUnKKfoLWvpaaTsauaq62fn6WkqpKWlaCEkJ6fnJWppaKhtLW6ta2otbKynpyippqXlZmqoZ54Yl9hX0xJR0hNUUlNRUZGQlJKSEFER0FWU0RIPEFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6ew6ybl6WXmamclpqaj6qWlaimla2smaGqtsTCvL+4wcPByMS/zca7vrmysLizv8PItcCwvLe5t6ekq6usoaCaqqrEoqWprKaerK+soqqov7imrL2wt7fGtrW5uL6wvsG2tLK0r76jlqOWk5uUrZ+QoaGlo6OfkL6lqZ2orJ2doZumn72imKSeoqmroZ2WjZWek5+Hj4WNk56koJ21rKaclrKnmbCpoJurn6GNmpWfhI6hmpuSpaSamKyxtrGqpaqtrJyYoKGSjpCVqJ+UaWVbYl5QSkhLT0xIRUNJQD1PSEA7R0lIW1JPSz1ITlU0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE2imqObnsWroZ+snZ2tn5KinpakoKeqrJe2sKOqs7bFwr3AtsDCvMnCv8rItri1tbG0tLfBxre+sbi1uragp62qrJ2en6WkwaWgqa6gpKmtr6Kmp722pbG7t7a1w7Kzt7q+scPAuLiutLS0opyklZGToK2fmKGdqKiroprDramerK6bm56YpqC9oZ2kmKurq6ahmY2an5KeiY5Yf5aepqGguKqnk5m3o5+zoqGcsJigj5qUnoKPoJeWjaKklZCmrrOrqaKipaWVlZyZi4+Rk6SfiWNnXGVhTUpLS09GRUFGSz49SUE5OUpKTl1RUUk9TFdcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXExPnp+hmJ7Dp6Wis6GcsqeTqqSfo5+tqaydu7CorLWyyMPBw7PCxL7HxL3Fyr2wsLausbWvv8W1urGwuratmqmxqaqanqahp8Ktm6yxnKqirrCppKe9t6a2ur2vt8Ots7PCv7HGs7q3q7S2raqipZWVlKOroZ+fmaerr6+vu7KmoKmpmZmXkqKkuKGhpJKur6ykpp+SoZ6Vno+RjZWdmqOfp7Snp42YtJyjr5ufnK+RoJSYlJqAkqKWj46goZOLpqywpaeinaCekpKalIWLko2cn4BkaFxoZktKTEtTQkNASUc7O0Y+ODlOTVVeUlNKPk9eXj1IUEJNTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugwqijqrGho7SplrKrpqKksqyuqbuyrbC0tMa/xMS2wMW+ysW2wMnCtau1qbG4rMDEtLeurbe6pZmrsquqmJ+ml627tZuosJutn660sqequrOnurO4srjAqreywry0xae9rq23tamnrKGXlpGlpKGhl5ekr7itsrW2oJ+opJmUlZOjoLejpKWVrrGypamlop6ampqVmKifnpiinq6yoqaNmK+ZpayYm5+mkp2PlZiahpaflIyQnJ6Ui6mpq6KnoZmdloyPmZCBhpaJlZ96ZWpdbGtPUU5OVD1CQU5DOzpJPzc3UU9dXlJWUUFXYFxCSlNIV0tIOlVkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcGlWQ1dGjHlmQzukpJyhpb+mp6+voam1qp25r6ukqrS3sbC5trC3uLjFvcPHvbzEwsfBucHHwbqqtqWtu63Bw7e4qq2yvKOVrbCtspelqJGquaqgp7Cdqp+wtLOqqba2rLuss7K5t6y5sMG5vb6mwquwtq6pqqumnZiYqqGhoJGXoLCus6uwuZqbqZ+ZlpKXpqC3qaWioq+xs6uxp6ufm6Cgm56lnaGXnaOzsJufkJSmmqGpm5akoJeZi5aZlJaXnZOIkJuZlI6pqaego5yYm5OHj5mLfoyXho+abGptYm5uWFJRWlRBQ0VVQDs7SEA3OlhQZF5QV1dEWV5eTUxST19LSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lgRihAOGx9aFxWOol7Y0M9qJ+coam8oaqwqqOxuKmltbKroay1va+zuLy6vbe2wcK/ycS5xcPBwLnFvsG4r7anq7eyvL+/taqusrifl6ytqK2XqKmOp7ufpa2znquisbCzrKq2s7W9ra+xtaywtbHAucS2q7yvsbesrKmisaWepKifo5aPmJ+yqrOpqrOZnaebmZSNoKaktK6noqysrrGnsqyyqaObn6iknpWgmZuotamXmZKSn5mfoZ+SraCamYeWmYydmp2Tio2Wl5qXp6ajoJ6WlpeUgZCVhXuPk4SMl2dtc2hwc19HWWZWRENOWERaOUhCNT5dUmhcTlldR1teXU9NUlhkSkpDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFWMTUxPWBWXjgpQzNZVVxnSzWMemZMQKSZoKSstqOsqaWurraqrrS5pqawuMa3sbe+wcK1tLvFvszFucPBusC6xLjBubO1rKq6t7u6vrWrrrG2mJioq6qrm62rj6u9nquusaOqn7Gts66utrK5t6qtrrKnta+0urzJsqq1tLG0r66moLOfmaisoKWVlZqZsaKtoKWvlqGkmZmSjaKlprKpoaaxq6q1pK6wta+jmJ6tp5uXnpmZrLiil5OQj5icoZmYlK2gnpWClJmOnp2al5GLlJKemqWjo6GZlpOSlnuMkYV7jYuDi5RsbnlvdXxhRmBqWklIWls9e0pHRTZBYlRpWk1cYUpbXFpSUlNiYUxLRWBhYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuKkEvSkdQW0czY1lUS0SZl5+vqLGprKWjrq61qba0t6OrtLfKurS7ur++tbS3w8HNx7zEvbe/wMC4wL2yva6nurq3t8K3rK6yuJWXpq6rp6OzqpSvuqStsrGmp6Kys7GysbWxt7Kprquyp7ivtbPExLaptLWrsK2pp6K2n56msaCklJuYlLGdp5ufqY2pop2blZelpaS2p6Kws6unsaetsLWspJmhrKicnJ2blKq5nJWOjouYnKKYkZioo6CXhJOXkZ6cmJeWiJaPl5qonaShk5aSkJZ3hZGHfIaChI2NbnF4dnx/XUtlbFxKT2RcP2J7R0k4R2dXZVtNXmJNWFlXVVhUaV1QT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3JrS0RDkZikraSsraumo7Cys6q2sLafq7W6yLmuwbvDt7OytcLDz8TAwr60vcHAur+9s8SoqrmxtrfAvbCss7OdoKewraWmsaWesrWsq7KwrKmotLqstLO1rLSsqauorKm5rbGwx764pLmvqa2tpqessKWjo66jqZydm5qvmaKjoqOQrJ+joJ+hqaaluKSrtLSkqquorK62rqKdo6iqnKCZmpKktJmPiY2HkaOglo6Vn6GWlIaQlJSem5mWlYeYkpWZp52goI2TkY6ReH6OhX19fYeKinJ0c39+flxSZG5eTlpnXUZElltHOk5tWGJbTWFiTlZWVldUWWdeUVJMZFpbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NlOzYqSGRISis6ST8zQ0lTLD6Paz5ISY+aqaqhqa+kp6OztLG0tbGxoautvcy6rsG7xrG0rbTCw9HExr/Bs77DwrzAuLzFqK23rLO4vMGxrLKtoaSnramopLGjq7Gqr6uxrq6tq7O7p7exsqmyqaumpaOtuqyqsMK5tKy5qKmoramnsKWppKKuqqiinpyirJWknZeemKudoaeooaymoqyrt7GxoKmin6qtsKydnqanqZqjmJmPoKiYhoOOioufoJCMjpeekZCHiJGVoZ2WmJaGlpOTl6WdnZ2MkpCOioB/iIV9d4CHhYd1c3KJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU9jXE5VVlVXUFxhX1RPT2hYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLklnREY4PEIwNUVLWDFAlFxATUaVlqynoamxnKipsLasuLSuqqSrq73Ju7G+t8OvsK2zxMTOzsO/v7TBxMS6wbTJxKyvt66yusC/tK6uq6WoqrCppqiyprStqrCurbGvs6yzuqS4s6ysraeroKKesLerqq26tqS1taOpqKysqqygqKamsbKjpqWhoauWqaCTmqCmnqOiqqSsop6msbesrKKlopqpqq2pnKGlpKSZoJqVj5idk4GCkImFnaCNi4+Nm5CSjIWOmaSck5GbjJORkZSjm5uai46Li3yHgYKCe3WBhIJ+dXeLpId5a15gbmdXZodkTkBnkkxEYnpXYlhSZVVNVlVVVE9cXWFWS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZBSUhElpGvpKKpr5ipqK21q7awq6Srqqm8wcC4ubO8taayr8TJy9G/wbu5wMDCusG6wsSusbWytLvBvrOyr62rrKi2qqWtsKu5rqiwsK6xq7WqtrWmtLarrKSpqpyjnbOzqKiks7Sgtq6hqairqKumn6urqLm2qampqaGpn62bkaihnaCjoqaiqp2bprSup6WpoqOXpaanqpyio6OgmZifkY6PmI1+h42HhZ6eiIWLi4+PkY2Fh5ajmo6NmpGSkY6Tn5iZlo2LhH90h4GAf3h1hIB7eH6AiJ2PcHJnZ3F4XGF0iGlPXZhWSG15VWRWUmNPTFZUVVFPWFpiVkhQalRWU0dQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1FFO5WNr6ClqqyZqqStrrO0rqqlr6mpu767wbGvuK2ita/Jx8jQwL+9u7zDvbrDwcC/r7Gzsra9vMGysrOrtKmltaikrbOyuK+irbWxr7G5qriuqq62q6qeqaugo6G1ramhnq+yobWqnqioqqOqoaGsrai9r6yurKGnp5+smY+vopiioKinnqebmKmwqKKfrKKhkqGioqaYmqilmJiYnY+Kh5SIfI2GhIWkloaDgoyHkI+RhYaUoZeJkZ2Qk5CNkZ2Vl4+KhYZ4c4F/fXR4eoF7dHR7aoKIpHZpXmVsgXVniIt8UldwXkt4c1RkU1FfTU1TWmdOTVdZZVlHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWk6MzhfPWFkP0YxQ1BbWytIUDtZQzSPjrGfpKWqo6WjrKa0s7CppLCnqri+wbywqLmqp66wycbI0MK9wL65vr68ybzCubGwtbK6vLnAs7S7rbmso7Wmp6yxtriypqe6ta20vK+7pa2ttautnKmvpJ+lrKqnnJ2qsqS0qZqqp6qkqZ2iqKipvau0r62dqaOgrpuasqKWpJukpZ+kmpmnqqWemqmhm5GboKSdmJapqZGZmZKQi4KPhX2PgoCIno+HgH6MiJKQkIWBlJuUhpOijJORi5Gbk5WHiX6Acnp5fnxod3x7dXFyfmmGeoSIZGBoY3KFe21oeV1eVkNYe21UYVBSWUtLTXB0XUlaW2haRVZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpKwmZ+fqaWjoaqktrKxpKmxp625wb21sKO5raiosMPJyMzBt73Atbe/usi2w7W0s7Wyvbm6vbatuba/raKzpqqrrrW3tKqduruosb+yuqCvtLaprJ6usaOcpaepo52cpK+mr6Gfqqmnoamco6igrbunrrGuoKuio62enqymmJ+boaKcn5qZoqqimpmjo5WWk56hlpuWpqyLnpGPkYyCin9/j4F7mpSMiX1/jIeQj4yKhpOYkYeUo4mRkYeQmpCTgYh8eWx9dnl4Ynt6cnBxc3hqgnVqg2djaGFuc45tYmpwYG9CXXlrVl5OUVFLSU1TWVZNXF5tV0RYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl09I5GXrJifl6ejoZ+no7evraKvr6mrucK6s62fua+rqLS6x8rIv7fCvq+0vrbEtsOysLqxssC2u764qbm4vaqktKaoqq+tuLCpmbm8o62+tLOhrre1p6ansLOgnqSlp6GkmZ6sqKieoKqup6Cml6Kon7C4n6Oxr6Groa2km6amqZqam5+jlZybmZ2pppaanqiRmJKYnZOZlqGqkJqJjY+HfYd+go18fKGMjIh5hI2Fio2NhYmTmo6JlZ+IkJWCjJeNkX2Ee3NwfHFzdGB5eGpvcHFwan9zZHpsaGZkYmaHgGBbcmpxTU6AaVhaTVFMS0hQUlFITVxfb1RFWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsoJ6hpKG3qrCjtLSpqbrFtrKuoLesra2wtcXHwLa/wrmwtby2vru/r6y+sLO/sr3Duam7urinqLWop6uvq7OvpZm8tqSrurWun7G4r6mlp6+ynKGkoKSkoZabr6ahn6Oor6GgopOjpKK2sKGmsKufq6Ovl5uqpaifmJqdpJOam5mcpamZm5uklJSXlZyOk5eiqaGQiYqPhnqDfYOKeY+Xio2HeoKIhImNj4WPk5iMjpaZio6WfoWXjI96gHpwcXZub3RfeHdlbWxsamqEb2ZyaWtmaV5kdIFgW2t2aVpKf15cWE9PS0hIUlVHMzleXm1RRVhWWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJkVywylKGhl5Sbqp2koaKht6muoLq4pay9xbOwrqO1r62trrTDw7yzv7q3sbO5t7m3uq+uwLO0ua+/wbisvbq1pqKyqaepsqqtsaCawLWkp7W1qJ6yvKmnpamvrJmjp5ykpZSYobGlmZ+kqKmcop+SpJ+juKikp62mnaWhqJKfqKKhoZmbnKCSmpuWn6Gqm5qYoJSQk5aZjZOTo6ikkImJjoZ5hHqDhX2djYmKh3qBhIeJiZKFlpOSi5CVk4yNlHuCl46Ld357bHRxbGxzYXd1aWlqZ2dvhmhoaWNmaWpga2NqaFxle2NgU3RUXFtTTEpHSU9TQCEqaV5qTURXVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp2io5GNpKebnp6do7Wsp6q6t6esxMG2sKyjta6nrq+3v7+8ssG3sK6ytrW4tratqr2zrrKxvb+4rry7saWftqqlpbOoqq2encCrqKWvsqmstbueqKmrsaWYnqmdpqSRmaatopiepKmhm6Gclp+dp7alr6quoaGdnaGUoKafoaCam5mckZick6Wdq6GXlpyUkoyVl4uPmJqpoJGIiYqIeYV2gYKCnYiLgol9f4WIh4aQhJaVkI6QkZCRjJJ7g5WOhnN9fWZ4b2tqa2d1c2tjZ2RkdoFjZWZmZmpqY2tzWl9ZXW1kYU5pWFpgVkpHSUtNUlg+OV9saUhDVVNcW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao5+QjK2hmJiflqSzsaKxvbahsca8urGxpLesqq6puby7uq3Asq6urrausrizqKu5sa+us7a6trC4vaymnrWqoKCvo6munKLAoLGjrq+tt661nq2ura2imp2nqaWflZqnpZ+ZpaKonZqfm5ScnayvpbqnrqKhmpqdmZ6kmqSel56Ym5SZoJKolamnmpOampGLlZmOlJSZqaeOjYqJj3yCdIGBipiFh3yJiYWFioyKkoSUnJOSj5CRlo6Qf4CMjYJwgH5meW1oa2lncXJrXGhjY3SBYmZoam5sZ2pqaG5dbGx0cGFVY2lkZVpJRkxNT1hRUVZhZYFUQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kaGajY6wnpqToZmosq+fuL+2oLTCu725saa2sKiupbe4t7etu66sqqu2qrO4raWztbKuqbC3trGztbqmqZ+1qJ2eqKGorJqnvpito66utLWtrJ+xra+popydo6uonJScpqSdmqqipJaan5yQm6Orqqm7n6ekoJiZmZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJeZgJaKoZB4hpSMg25pfnaDcWyGi4Z9hIyHcF5jYWeEmIZsi4+UknR3i4R+g49/Z4aAZ3VoZVdcaHNuTlBqY2dzhWdfZGZubWpdYGGKj4OEZU5LRDlGVGdeSkdQUFRVS0hSYG90ZUZaUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoujmYaVsJuck6Cbqq2qo73Fr6m4wri9vK2ntrClq6O3s7KzsbmtqaastKavtaKouLa2qKest7OutK2zoames6qeoaObpaaYq7qVpaWvsratrqSprquspaGfnKCnp5uXoKWlm5unp52Tn5+YkJ6nqqO1r6Oiop2Wl5eXo4igjpKah6GHk5ygf6R/paqekpGakYiEcniNjoWIoXaIjGmXiGZ9cnihb4iHhH6OfX+hoKCZgHyHnnSHjnabimyHgYNsaGVjemtxYVOFbWNsaZhxWWpwb4hYXmlbbGxbiHFuenKFZ4aEWl5HTj9HX01FUlZWUVFSV1RnXk1XSVJTUEZHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiLppaDnKucmZidn6qqp6q/w6+xur23wL+qpbewqa2lsrSur7O3qqmlsK2ltLOcrbW2tKanqLOxrbKorp2qoLKooKOimaGhmq2zlKOkpbW8pqynq6qsqKWhoJigpqOZmaWjpJicpKmWlKOclJOkpaaht6OjoKOYlZOXkpyIr5CYlImpi5ehm4WxgKOsnZOZnZR5g9SogIeVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGXvJzFenK1pruQe4BslrGrsHhoa1ixrm5labySvG5oem9ykNh+U2tjtrJ/gXKVdJqhqpBXT1diUFZORlVbWFFQUoxcV1xQQFxEUU5FR0o8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaSgKeqn5ecnaWtsqixwr2ytcC1t77Cq6azraypp66zqa+2tKenpbSlp7eunLOytqqlpKeyrq6xpqqdp6Sxo6KfnZaanp2uq5Seop+zuaOqqaKtrqWhnZuaoqefl5unoJ+YnqenkZynmpOdoaaioLCin5+jlpaSl5KZha9raoqNqn5ng5WGrWRwnZ2UmaWUca6hpH54u31roY92sV9qtFulgGackWBmgnpmf2p4a6lkvnJnpox1sWp8sXh0kpNjbW2nbluEoEVoZoeWRXWcYH5ofKSngllfi6tpgJZ4eWqnN0qvXFhTbGRbS05YX1xXVjtOiU9YVy9JVFRKREZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKsp6Weo6SqsrestL2+sLbEsre6wqepsKuuqamwrqOwuq+jpK2yo6i4qJ6zsrCjpaCqra+sr6ann6OisJuim5aVlpqarKWWm6Ges7Kiq5yira2gnZqXoKGonJido5+cmaGmpI+dopqXoJ+qnqamoJufoZWVkZaRmoW1m7V4hamZtZl2hrObt36TlpaolH5sgqZ7goaIkpSSd6tna7Fbq3uPh5R0iXGPhoB/iJCXeIKCi5iMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5c3VTk4deUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5WFhBI01oRkNFQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5WHs6amoK6pp7Ksqbu2wrC7wq24tr+qrK2trqatsamhrruqoKe0rKOrtaWms7Ono6Kdp6qyqLCopZ6fn6+Wn5iUlZWXnayhmZmkqLSuoamPqaiqm52VmKClp5qenKKfm6CjpKOVm56XmZ2iqZulmZycoqCWk5GTk52D1ZOZuXCwwn7FhnzWlJu7fJqVpI+NnI2ke46HpIKlgnqseY+dVq96iH6farlauXaHhH2mgpN8mHqqeY2dkHuxbo6EdJC8hW+UUK+nxYpRoHpjYKlic3OIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhObU1bUk9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzElm6KTmLGoqKWzqqW0qaS8t8GwucCxtbO6s7WnsbCjsLKmn621p5qnua2jr7Ggs7SwoKSen6epsKm0qKSbnZ6rl5iXlZeVlaCpnJmWp62wqKKfj6yiqJadlpuhpaGYoaGhoZqhoqabnqGelJmbpqCbp5Wbm5+gmJCRlJGdiLJuaLVxq4dujqZytHNytnual6SLj52No3+RoaV+sHaDkdLSdlyue4V/pG+bqqZrh4V9rX2XmY97sXOSnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZ0h2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa2BsaFBVR0k4PVZRWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGdkqWvraSqvK2mtaWntru8srq/t7WzubqzpbS0obGxop+rr6SXprmtpLGwnLS4qqCmnaGppLKorKmkmZuaqJ6VlJeYkpKip5+WkqWqsKahlZOtn6WSk6CbpKaflZqlpqGaop+tmaCenZCVm6GdnKWUnZWZop6VmJWRm4Wse3eodqOOiIapb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9eIV+j52GmZp3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV52d4domIhrXa93lZ6PeGw1eciusl9CVG9eZ2BFUG1fcG1WVU0uZWNoUlhRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk6OTmfnZSfuLCXtMGtqLOoqbK6t7O4v7m3sbS7tKS4s56zrJ+eqKuelKe1q6ixsauttKSbqaCgqKG2p6apopmdlKShk5KbmJGUoqWako+mra+moJWZqZ+ijpGhmqikoJWZpaidnKSerJyhnaCNlJ6anaCYmZuWl6Ggk5eQpp6GqX19pXihj46CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTYf3aIdKiBjpuNkqN8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcW0x0XWJnTVthX3JzX0pWNkqbk1hIRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84oZ2Zmb+rl7TCrqytqaa0sLextb+5ubGwtbqpurSer6SepKennZOqsKmvqbWsqq+hmKGgpqWkuqKjq6CWm5GioJSTnpmTl56fj42LqLCvpp2Wm6imn4ySo5eoqqaUlqmnnp6go62joZ6ijZWhmJ+fkp6XnJWdoZWWjqucj65tcrRyqYx2iqdztHhzs4CRpKOSnI2JpIeQd7hvjHuLomprtlqghWWXl2mhoqdtk3K0dJOYf7JqhZKIrWt1s2GdZqJvh5Jql1ytX02hfIeRUnOjbHl/fm+Yh3Fcr1Y8nHdlVG9uLlynT2NTa2VibVpjXWFwe2NUWlE+Pm1vM0NCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWam527oZyywK6uq6unt6m4r7XAtbuwrri2qsG1qKigm6WkoZyRqqmntaOyqK+qoJecp6Ckq7ido62blpmPpaOVjJ2gmpicn5GTlKq2sKeYlJysqZeMk6WZpayikZaqsqOfnqarsJmho4+Zopafm5acl6GSnKmclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2VgaypcXt/dbyIp6BpnWGmjq+hfox0h6p9vm5zvHSyg3V4gYtumohxbo2kdL1ed31bYXm8a1pWXGp5XmphZWdibXhvWVtZQ0FAckBDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03Qjmnm56hvKKXscOwraqrrLGnuK+2xLG5sK25rq3Asaujop6joZybkKmjqrKktaatpZ6WmaqZpqy5naOumJSgkKWfkoyco52XnZuRlZKuubKslZejp6eUkJaknKSsnpCgqKufmp6oo7Oeo6WOp6KUopqcl5WjmJCvoJKUqZ6FkJm1f4+RjLeVeIKTmrV3bWtuc295j4SOiXSewbu9mnuBsqhwgHSRuYN8hoaMho17ioeNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmqNtXRycXe2jF6Aen2KaIN5bXlji6xwdYV/WVunakVlWlRmYGNeY1FoZ3FtdUJNUExEOlpNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlYnPjs8p56gob+llrTCtKyrqKyrqbqusMWutLKttqa0uKypoaGlnqCdmZOrpK2qprWnp5+blqCjnaykvqahqpeUnJChmpGPoaihk52Yk5eUsbW3rZidpKSiipKSpZulqpuVqKWlm5mgqKamo6mhka2elqOel5eXnZ6PsKiUm6ehjmp+aZuleIdyfZqOdHpkh3u9vsC6b5KCcZWHYXNqWl6bimFjiI6Va2CAlWRtnXdilWuAmpWUZV5gY3GaimlyjH2FlWdqfnJ0eH1+Ylt3dIFoUFxuhH18i2tYbHqCc0pKb4ZwTnRMRVddZ2FMWlhnY19PW251aXJST0RFTjtISD1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPVtPJz8yPqigqKHCo5q0ubWjrKWup6e1savIq7CyqrSivbGxpqCiqJyim5mZrKavpKS1qaWbl5Whm6atqL6nqKaVk5uVn5mSl6SpqJCdkY+YnK+yv6ybp56nooiTkamaqKOam6ygo5mZoqesop+ropqxm5SnoJaUnZ+dl7Gkl6GomZyRnZyio5iloZqcmpqZj5WBZ259cXeSl5SRhYu1qo2GmJWOioyYl4eUlYqEkpSRiY6SlJiUmJaaoKGanJShno2CeqSGbGp8kHyAdYqKgXGCeHl2douAfIprc4F0g3Vldn13a296bWBjXXBoTVhaZmpgV1pwem5tZlNPRlM5T1lOUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzobOhv6GksbK3oKqmsqelsLSqyKutsKS0pcCns6CdpKSco5WVoKqnrKOjtqufmZaWn5etqqXBnquklZKcl52XkpOin56ip5ORmainssSvmqudqp+Ql5annaqbnKCsmKGam6Gkr6ahpaifrpiXp5yZmqCenpyvoJyhppWXkpiTn6CVop2YoI6Wk4qKjY6XrpB8lZuCkoKLqqiGgZmXioSPn4h7hJCHhpqSiIaKlY+bl42RmJ2jlpqTkZ6Nf45mobOvhYqEdnuSin12eXpvZnqRgYCJa3WBeYhzaXN/e3aDhoJrdWR5ZmBqZWNkZmtZbHtwaWpcU0xQRF9URkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r7+sq66ysaCrprGtoqyzsMSwqquisq28o7Obn6aioZyZl6elqaakpbK0npWUnZmZsKWuvqCropCRnZqZlJGUopyXqJyEnqqrorPIs5+qpKqWlpeapp2omp+jqpOen52gqa+ppaOroq6bn6CgmKSenJ+dr6OYnqiTl5abkKOYl6ecmpdlgpJ8ZX6NmpBkeY1saGt7kqSqamWamH5nhoplZWloe46hj2tojZeRo3draouZo56Zc2xue4SNh3pYZV6Ggl5ti4mBdlxoc3d3koCHgm54gniAc215hHR2iIiOg3xqh1lebHVkXXOJaWt8cWtjXlJOV0pkWEFKND5HNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsaqlqK2tsKatrbC8sammo62usJ6slqCjnaKZmaarnK2jpaipsq2elaOPoq+ltrmlrqOOjpqhmZOSmqCZmaWVe6Wtoqi0xLikoqevnp2UnqKeo5yjqaiRnqGdoKqwqqukqqCqm6efp6CrlaGbpbCkl5uqlaCdmpGklp2pl55+vYOIcrRyhJ2GrWh4ucS4cZOio3qmmZlzqoJ8y8DAu3GMooiCn32WmImdwL2Cl52djZ3CwXyCfJKNmsPAfWulsm6MgW/Ken+bd5GDjoF2eoGAeXF6f4dwd4WMk3lueJRjZl95ZGBlgmNedGhsZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JRLyNGWzNQWS9VQUI7LziWo7nDtLCwwKmolKOvqbCuraaztK+ppaamsKufq5iaop+cmqqnop2so6WopKS0pJ2ikqatq7izp6+ikZGZnaWSkJ+hmJufnYenrKSrrcDAsaCpr6mXkZ6doZmio6mjkqChnZ2trqmsp6Ojp6GmpZ2tqJGkmqitqZucqZusoJWVpJWgopacf86UeHqkgXmVlptfro9ejqeBoqB9p5abdKuDgK9eY42qe6eHhaB1l5OIs2OCq4ahjo2zaoWvdH2XiLdhg61Zo81tkHV72nt/mXB+iJJ2fmV7iHZ2a3yIbn2FkJF+bYOQYXJscGhgX3lkXHFoamRmYFJUUlddS09DNUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGkqqits6umsqysqqOqpq+qoKebmaSWnKKvn6CeqKejpaGfsKyanZWnrqyxqqisoJSSm5+kko+epZidp6OerqSrsKi/x7OoqbGulpKdm6GXn6mqn5Sgn5ydra+nq6mcp6ikoquSrLKWpaKqqp2jpqShsKCSmaaYn5mTlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnneqgn2tf5xzrX6rh4afdpiSe3yXfqqIooyRjJ1+q3uJlJCfgHutVpzEeo9vksF9gZVtdW+MbWV2ZYZvYXducm+JipKPg22SkGZwdXVxYWdtZV9vaWluZ2RYU1xhWVFTQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytKCco46jo6Ksr7auqLCmqKqmrKurp6KjnZmhlKClq5+ipaCoqKKenbCsl5qWqaeurKimqZ6XlJqjoZGToK2bnaajr6yjrLWquc2yraatrJaVnJ2imJ6urJ2WoJmdn6myqaqqm6yrpKOsm6+xoqirrqWYpaqoqbGikpajpJmTkYSkaqR1iXqpdHqycIKmipmMcYigmoekYGFSq4R/roObdq2BpoaGn3qZl4Z7ZoCjiaSZhoKjfal/gpWHrl99qVWdopKBeqKfgHvDr8WLcq+zs7lxYqmvwnRojIyYjoFtmpRwbnl4eXBtZmVlcXBmfGpjXVdgaVhYVUxMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVv6GZq6ehr6KesLSwrqmsoqemqaqrqaSmoJuknZymp6ejnKyaoqyho5+vopybk6uktbCvoKmbnZaUpqKQmqKooKClnLCmpKixrLbIsrWqq6mVkZ2copifpbOdmqCUnJ+nrKykrpqtqqOiqqGzraGqs7Ghmqinrq62opKWoqaYmpF8qmyehId1q3l8sG+CpIuJn5aWn5SB0ri0uMmAgbJfYJSpg6OIh6B6mJaaeKrJdJmklaipkZOajICciprGx3hmoYKlc4GfjoJ9r11wtGKwdUujhm2nR4KTZI6QnpJ8cZeTgHF7dX58b1tmanJwZYFrXmFZY21cXllJTkxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqbOtrKWinLK4rKqgpZqopaqrqqegpqWYqqOfrqudpqCsmp6ppZ2ntZ+il5OpqrWyrJylnKCUj6WskZmbp6OgqaauoaSnqbC1w7Kzqq2ok4iWnKSaoaOuppihlZicpaarm7Cdrqimn6yjt6yhsbmvnZquprKysqSTl6eimZ6Ogp1OeJqBf596g6N9g6SEhqaenJ6ThLh7fHm5gn7MxsK2eJuhkIuffpqWl4p2npiKpZikqH+whZ2Fn4SsfZqUYqVspHCPhZCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Tkot1e3OFf3Fdbm54cmqBb1tkX2huYmRdTExRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq+gm6GssrOlnqCVpa6trqqnnaammqOnobOuoqmnsqCYqaSUorWiopWXoam0uaObop2ik4+hsZiem6eloaKvrp2kqKK2ssSxramtqZGHj5unnKKknKWXnpiZmqakqZqvoq6lppivpLusoba3rZ2dtLG3sLKml52un6KdhY/RtcO3eYeOhZGTkIGmeJShd4ygkYSlgYpxqoaEtG5yapmjnJWKnnyYmYaHj3OvgqWboo2mi5OdipWQm21wslylc5N6nGyZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2MjZSNeH15j4JuanlpeXJugHVeZWRubWZnYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWTc42Krb+/vLq0npanpa21oaKZlaOop66rrJmmop+moKC1p6Opp7GjlKyjjqSto52QmpqqtLSknaScqZGUl62fn52npJ2nnLWaoaqktqvDsKmrqaGMhI2boaCmopWampyYm5mmpKaYrKiuo6Wbraa9rJS9sKyfoq+yuaqzppqosaKml3mokH18sHeKgKSliJxtsm+gh618oY6DqJWZgKyJha6Fn5SqoaGXhp+AmZWAe5J+q4CdmpaLq3idn5GKlJKBeq9do4F9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWRppmClY6YjXt7hJh/bG5/Y350boB6YGdlcW5oZ2hCWmFbPktUM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JODA1Mi4qLEFUVlZWVFRVVVVVVFRVVFRUVldXWFZVVVFIRklKIygovZKag6nGwrbBtJ+arKCtuKWjjpuko5+wr6qfpJ+drZmeuaCjq6CvqZquoZCrqKSWiZqQrrGspp6mmqyXl4+soaGdpaGapJytmKCoprapwK+lqaSfi4CNm5qfpp6SlJqalJqapaSkmqmsrKSln6qovqSWw6yqoqGrsrmqrqafsq2nqJd2r36Qi5yFh326roqYZbCMZZWtfaGPg6aVmoGsioSwhaaZpKGhkYWgW2xqgbNgf617e4KBsW1nb5mYjIiwW320XKSDa8iiZJ+Ae7xYdrVasn1SroB6rFiAoW6YkKibi5eRl5h8eo+efmV1fmKEeHSAfGFqZnFtZmVmT1ZkXEJVXz5KKD46PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFdaXmBfYGFiXl9cW1hVUE5KRkM1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpcXFhXV0dCO9Kfs7K3vbqzwbOjm6ympLaooIuaoJ+cs7Opn6OgnrWYoLSoqqyer62erJuVr6mijoibjq+sqKehppmukpiPqJqhnqSfmaOjpZmfo6myqb2vpKienI59i5qVoKCZj5Gam5Kal6ifoZqorqimpqOlqbueoMampKihq7S1rK6mnrqsq6uUgKmSo6+Om4CHpJeYkIGAuMO6g46ck4SnlpyCrIqCr4imm5ulqpF+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGujgW+rhGycf3qysMeDaquwvax4d6K+vHOBlo6nnJCbkZiee4KSnHtkfntkjmd5gntga2VramJQYVtTalxAVWFDTik9OjQvHh8kHiUyIB0kKDA0OTY2Nzg6PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbO0sb+5sr2yop2upaWypp2MmKW/qriyqKG/pqeynJ6xnLqon62vpaaUlLCsl4yCm5GupaKsoKOcqqCXiqOSpp6nnJqhqKKZnqGsram5raijmpeSe4eZkaabk46RmJiPmJOomqCYqamhqqeho6q7nqjEoqCuo6qztKqvqZ+5pq2tmXN1qqS3hmSJoHBnrY+Kj21vd6SQmZ+Bda6YlHCPi3GVqKObl66kcm1tbGaLeG9ugplxgXpqcWlniZaVmHFpaYSHZ3CGZF2IYmpvWV1nfnemX2FxjpFuZWV/jZOPopiZmZGYoH6IkJZ3Z4h4aY5reX95ZGxjZmxiS2RYSmtaOlFlRVInSzorIxwgGyIsKRgbGC0yLjU6NDU3OTw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6m5uLKzqqmhrp6jsqmYkr6yxMm+tqqewKyso6GorKC6o6SurK2njZeuqY+LhZWWrZ6mqqCdo6OgkYukkqeZqJmWo6qglpympqewuqusmpuTknuEl42lmI2RkZiUjZeVqJWfmKmjm7GmnqKruZ+vwKeksqWssLGqraqmtqKstpWKoKiltp2JlqOZh6makJSdkqmzmZujq6CxlqKgnaCinKCloZWrp42TkoyHk5yclZCak5iRjpWFgaSal5WNi5OTi4+GhH1niX50gnZ0h4txp2x6lJGTkoGBjZCQj52VoZaamKODiZaOc2qRd3GLeHd8empsZGNvZFVhWUBqW0hjYU9ZK0Y9KychNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhUVlleYGFjXV5VUUpFRD45PUBBU1hbXFpXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltLaurqKwo62foLWxkI6sx73Fu7mroqaem6afsaijtqedqbWnqZGYraKLh4mPm6iVrKSfmKeenpKUo5eomqiZlKaho5Cap5mhtruoq5makI17gZSLoJSKlZGVkJCTl6WQn5qqoJy2o56nq7enrsGuo7amr6+wrKiosrefrbuYkaWkpraikp6nn42pn42Sn6Osr5uho7Cor5ejoJyjqp6enZyWq52SmaGblJCWqpmNmZmWkJaekYmgnZWUhZKMkI2Ui4B9ZouFdYZ1eYiDc5xqhZCUk5CJfIuWkpKXlKKTnpijhYmaiHtzl3N6i39yfH9qb2RecGphW2BZbmNQYGRQWjpHR0U+Mj09OC8rJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX19hYWJhYWFgYmJiZGJcW2OXlaSooq+yrK6jqaatn6e1qpCQnaW0vK+traKjmnqdorGkpbGpl5u5p6OUmaqcjoaKiZyjj66eopWnn6CSlpibrouplo+omaiMmKmPn7q2pKWZm42IeYKTi5qTipWSlJCNkpeijZ2eqJ6fuKOAhK+1oq+vdaS9o7Kfd3mfqbC5lHWro56JgKp/ZFxidqCOpJ6El31uk7Odo6etqqNlnZ+Sc3mZlnCAmKiXbH+iqIplnKWckZeYloySnJGGnZqQlYOSh4+PkomEd2qOhnaGcHuGgIBhaYeKlJKLWnWUkGhoj49ze6aammZ6moiEeZlqhIuDb3mAa3FlX3ZwbGtoW2dlYmJwU1w+Tk5OU0c+QFREOTEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVRUVVldYGhmZ1dRSjxERzw4VVJbYGFiYF5gX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6CvsKyrqaWorqOmraSSlqu2sLKnm6umrJd0jJ2wn6irp5SXuaCgj5yknZF/iYibno2smqKVp6GdjpaRnoR1rY6IppqpkZekiZy6tKegmZiLiXV3k42Wk4qUkZCUjJCToI6boaeZnLKWgIybtZ2zjJKPu6egfqeieqKttYCOjaWeg4uGkLGqr4yKlqOaeYCLrIacnaKnqaeHlYWYd6WbeoebgZengoJ7nLJ6ioagl5mUmJaCkZeXhJqZY3mHkISOj5GLg21wjod5gHCAgYV/hnSGhJWReJZnknSgmnR9mYSinoiYf5SLhYWaa46OhWx4e3FxZ2R4b2psaltla2pldFxeSVRMUUBFNS5aVFU3KSEwOT0+NzQzNTY4Ozo9Pj5AREk/SkVKS0dTWFtZW2FhaGZZUUg5RUs8PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mra6rqKyfqLCmpqmlmZSuyL6xopenqbaekISdrJynoqCNkL6emY2fmqCQfIaOmZiIrJyhlZ+gkY2TiYaAkaeMhqKdpJSYnoafurKnnZuSjoVwdZCJlZCKlJCPm4uPkZ+Sl6Gllp6rh5+0ibSarYrKh6qtiLeFjK+CsKyCqY2lmI2dfaiPcnt3nI+nlmiVpHm0jJ+epqiSmMKBf6uImKFynoCapX2XhZWxgKF9oZOgkJiXgY6Tm4qYkYt8hZOGjZWSiYNtcpCFf3lxhoGEfIR1hIGWgI/FZn+ph4+ja56Do5yDmoGOj4eLmnGOk4Vod3R8d2hodnFoaGteZHBtZ21YZ0ddUk0yRDQ2TmFjNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmptXFFFPUxNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUl6KfsKepqaarn6O3sKmqppqUoKOkq6SXpau4o7CAoaidpZ6diZS9mZONoZKej3mElpaRiKuZm5uZoYWPjHebnI+ej4eepJyWmpiHo7mupJqcjIx+Ym2Pi5OQjZCNjZiMj5Gfj5ShoZmhp36hp4etnaCWrY+enJ2RhYCgjaqthaONqZmMmn+jdYCZlGuCrHVNq3iHjZyRm6ingKmrfYOhe3qnaZ5/kmtnl4aXtomefm5gZFmDl3+Me2Roi3KZfXmVbF18lm1fU3CDXF9reYNgWWWCfYOAl3CnqmuDo25ypXCfhaBqZqBtW2+MfWdaYIN/YldQb3dmbXRza2pvXmtwbWxpWGlPXlhGOUE0R0ReazQsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl5jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5adoLigqqSmrJGgtrurraKZmKCipa2uoZ2utqOok6GgoKecmo6ZtJmQi5+MlYt1gZSSjYqmlpWYnp5/koWGrKSHmo+KmKmZmpuSiKaxp6KVmoiJgGluiIiLj46Ki42SjJCRooyUn6CcoaR/k4GPo6GUoHeclo+ng6Gnf4aoq4OleIp8hJp+onBzlIiWe56MeW2Hm4yZkJuomo+HnXuConN2pmaefnekX5h6fZJzom6Yt7S6dJOHgn+1qGSBxrh7cJW3i3GAmqRic6yrYH1pnbN+bnyGgo2Ci5hxf6NscqN0n4WBpGCdmbOWcX2Yn7R0c1uesoNqYm90dnFpb1hrbHJyZl1pXmNMRD1ENlFBWXEzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1OUUBFX15bWlhgYHxkSEM4TFdVVmNhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLe0ra2gmqKdo6Omrp2csq6sk5igmKGkmZqUn6ubi4iSeIuFcYCWjoqPoZCSlJ2XfZCJjqigh5iOipGjlJybjYupqKWej5eHhH5re4d+fY+Ng4uQkYmPlKCDl56gnaCei4l3nJiijJ9yoYuHqIibpY+Vpql9rYx+eqCZeqOTeIF0loiNnH2Vn4abjpmbpoaiZKF8iJaQm41snmiajW6amXuAi6d9cmh0q4Oeg3SqaJWaXZuFdoSdaKpqgLhmXKhwgZxglYxep3Z1h4l+nmiadYaTkpeOgJ9vmpBtp5pdqH54u2t+qluOhF2zZ1xucnp4a2lccWp4eWNgZlhiQlFGTzdWQ1JvNUtbWl9PWkRAMTUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXVllZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniGOUmqu5sa+snqacnKmfn6+cnrGprZ2Xo5qhoJmWlqGkmYaJjWqIgHJ7l4iLlpaEkZSYj3qKhJajnYqUj4aLnpKdnYmQqaOgmoyRioCAaYCGeH+XjHuJjo6Ij5aaf5Sin6Chk5hyaJ+Kn4+McJKMgamHmJ6hpp6me7Cto6K4l3ejs6KkgIiUeZ17qpp/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmn90qlpdb3uWi3ieYkx+enqFY3mXQkyeWaJqcnyObYCIhJl1m3iGibGzf4Cbk6d3gp1uc32VcJp0a6RdlXZIZWRhdHF+fm5mYGxpdntkZWJSX1ddVVdAWkZRaERTV1xiWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQzxVX2JaZmpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZsXmVnZmtkZmxpaGtpk5yBsK6ZhFReoKazubKyqZqijJyrnJyqlKKspKKoj56dnZuZlpihnZaIh4l3hoFveZWFkZuLfJGTlohyf4iSoZtzkZCBiJmVoZuFjqmcmpWLi4p8g2yEhXGBoYx4ho2IiJOYlXyTo6Ceo4ithn21hI6enHullnqpgZWcj4mfm3ynaHdtfpl0oXNxfJ6GmXCTg659pIOmnpmAo29eqGd1o2NvpWGc05B8e5l4cnNjooaQfqNzpI92a5CzjGCCmIlzqrKovH93g21+vqaptF6cbn1xl25/cqJyXaRnc6ZhaKZtm9SafYWbcHp7mGycfHiXc26ppGdhZXpxgIRrZ2ZkbnV3Z2BjU1xmUVFiSVdKVGFXU1tlalxlUUZDS01KS0JLRThPQFFOWFNZT1NRYWZlalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7CrVFxLfqmvsbSvs6ObmYWZqaChpI6lqKCYqYqamJiTmZOSoJiOh4Z7cH2EaH2Pg5SagXeQjY+Jb3+Gj5KSbJaTfImSk6WWg4+rm5SSi4WJeoN2h4BugZ+Gd4CShoeZopd7lKOkmp+Js6Gitot6rKekrqVwqICakIWAmpB7pIChmYaYcp6Eo66vipeMf4ykjZWDraGUdrS1tcmhc5SKgZ9gnZepbXmVhqCbdaGHd6B+kpeLgW9MZqOScJuHc6R7enRhg4FrfqBrcWRfnHF9dJdpemmztbTGpnOYfnqda5ybq3aFm212eJhqmXt1mHJQRX20Xmp2a3mIZmpoYnR1cG5WXlRZaVBTaUpWTVlUVl1oa25WaFdOS0FKTUtISk9BUUtQZWNqbWV1c3N/eXxudYl7e1RQT2xeaFtraVJqaGlsZ2xmY2VgXF1cXmliZGlre19dZGhjamZvbWVpbGWhnIivpoRmP5Ohsqqur7WiopCAmKqio6WMpqednaaCm5eWjpeQj5yTjoiDeWp5h2WDjX+YoHl1j4iMgWmEhZKCjIWdjXqNi5amk4OYqZiNkYuBiXqAfYt5cJChhnmBlYeJlqCVf5Slp5yWloRmbnicbKJkfHGld5uYcGemgJWKeqR6n5aDl3KedoGKlJaPuW6QiqJifZmhlYhtcmmqa3WgbW6mX5ppi5BoloealXWigH2aYIyGjXVviGJooGWefmmbdW9jZoiCbXKiWl9bYqFtXYmMbnt+c3JkpW13omRnp2iZc4yZcKJvVYmQb6BfZqhUi15UmG5tc2tygm1waWt5c2tvUllXV2daVG1KWU9dSVhpaXNqWWtWUVJFVlxMWFNhVWlrX3d0e31wfXxyg3t/c3aNgIR2XlFyYmdicGdQamhoa2xuaGRnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKSYpnpldG2Lp66jqbCxpp+LgJirnZ+mjaOhm6KigJaZk46aj4uYkI6Ke4ZxgIhoi4t8mJxzdIl9kHtkgoeViomWmYJ8iIeXqJGBoqyRhpCKgop+gICOc2mPpYR9hpSNiJigjoiTqqadiaZ4lZt+pYiWjLKYnpCCr5efpXeUhnipc6WPhJpupKKMkoSMg7tufaWvg4aGhpOVnJ98pXpyqJWglmaefm+rY5aKlZJ4qGypooGJdoiDd6qRpodqkbBrdrOMqWuKhm1tn56SlWB+q4uqdn5/jKWedp99hKSVnaBqm4h3rGeerYy2dHe+jaSTWYOmjathdXJ0cXx0cWNqfm5obFNXW1ZhYl1rTV1SXUpebW52YFtxWVxgW2Z0ZW5vcmJxdGB3en55cnmDc4R/gXt7jIGCgHZieGRjbXNkUmtnaG9scmpmaWFgXlxia2JtbHpvXFxiaWJsandtZ2xuYpWlqp2BgJ6klqmqnaimrqSZiYOYq5qfpYqbpZ2pnYWMmo+HnJGFko2MjXSGeoiEcI2FfpiUdHSFcpKDbX+LkoeGk459e4KGmaaOf6amjoGOioWUdoKHkm9si6mAg4uUjomcn4mMlKqin4+AdZSXiH6BeZSuo3+Bm3GPhXiPioN+e3KnjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3t9iWuMhVt5eXJ6cGhufpKJcX91gY+Uk3GGhIJljH9egX+Ld3RylHVveW5uh22EhV52aHiOZYCAhY2pm310fJZqiYhwgXZ9hnZubWeMc3l7mHiFXGtYeY9pbnhycm94eHBdbIZuaWdWW2BXXGZrZFZiVV9RX3B4eGxrdmZqa2t2fXFydXNhb3VidHuBeHV6g3WAgX+BeYuFg317bX9sZHhuXlduZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhsb2GNlLiopouhopqmpJilnKuioYSEmKySnqGJm6eaqZiDgZuLf5aTh46KiY1yg3yPfX6PhXuYj3Ryg3CWhXt9kouGhpCFeX6Ah5qljnynoYuGkJCFlIOGjph3coWphY6RnZCInp6IjJuon5+qg4mOlZp+fomWraiPkqaPd2+ckIJ5kW5+qIVwfZVxa3B9gZ+Mf5OOjGhtXYOLjJybno5zlYuIcXRrgnZ0gVlyboaRgX1+jGpdamR7hYSJgGBpeHqae4KKgXWBhYJnd4qGa2FwcYF2XnKKgYiPppWFZYyPg253i4Rxho96cWdoZXuDepZbXGpnbnZbe3l4dW5zc4JmXG2Ka2tiWlpfWllscVxfYVpfXWZ0fnp0cHRja2trfH1zfHh1ZG11aG18fnZ6fHt6eoCAfm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VubGdzeW9oam1gi4uqsKGQo6Ganp2Xnpioo6J+g5mtjaCViJyikaWVf3uYhX2SmYmIhoeKc32AjHaFi4KFl4pxb4BymIaEfpOEg4aKgXqBhYycoZGCpqKIeI6YiJSLi5yXhYN6rIKRl5mUip6dh4ihq56hoaOLiJObnKOZlqqhp6agkpuHlY17d42Ng6d+f5KRkpOcsqablZ6QjbKSl4SljIyVm5+JkJuCiJGKa3yOd3hlgoaQi3yJnYSHi5CIiICEhJB3fHl0maCIhomeioSUfn2KgIB1b3OEgn53hoaKj6aQg4WNh4ONkIx9iIyKkYR5bYOEfXqZanJoYXSKcH16d3dwd3SBXV5vhmhuX15aXV1UaHJWY1xcYmxodXx8c29wZGtraYB8bnmAcmpwcGxngXtygoB4f35/hXttgoyGfHl4e316g3lOZHZqcm1wemVrZWNiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZIyHnbmelqKhmJSYmJSYpKCee4Caq46fjYagnIueln15lIN7jpmJhoSEhm54gYBzgYh+iZSEbWt+epeHhIOQf4CGhIZ9h4WOnJ6Th6yfhHKLkIaSkYudkX2Ne6qEjZKYlo+cloeGm6afoZqdhoKRmpmYkJqmn6WdnZCWf4+JdXuGjYOkenyOkJGGmKqhnZOdj42qjpGAnYyJk5qego6XfoaOg294hnJ1YX6Dj4Z1i5iBg4+ChoV+hYSUbnl1dJKhiouFmoOEjHN/iXx8cnJ7h4N6eIqOg5KmjoWDjoCDiomKd4aJiox+cW1/gXxuaGxtaF96f2h9fHZ1dnV7d1xfcH1udWBjW11eUWduVGVbXmJraXZ6fnFsbWRramiBgGxzgWxtdW55cIV5boeAdoKAfoV2cYKNiH57enx/e4KKYGl8anVoaYJlamNgaVxkdWhvYnVtbFVjcXllcHp7c2VqbWyLiZ63mqGjn5GRlZeLmp+fnnt4nqeRnIqHpJSLmJl5eo2FfImRg4yCgoJufH95c4GFfYuQfWtofYKYiYCHjXx+hoSGfY+CkJydkompnYBwjIuMk4ehooqFjH2okYiQkpeTlpN4jKOfoJ2WmX+AkJqYkoyao6GjmpeRmn2Mg3d/go6GoH9+jIyPfJikoKGTmZCPpo2PgZqRiZOXm36Tkn6HjoF0dIJwdmB9gI2GcYqVfIiMcYx/goWGjmh3cXiLmJGPfpZ9h4pygYZ7fHF4eoqEenmQi4KVpZOLhI96hoaHhXaChImIfGdzfX95e3Fsa2dffnNofHV2dH1zgGpeYHN2cHdkY1lfXlJraVVlWV9haGp2eYFxZ2tkbWhlgIFrbX5ocHFrfXmHemuMgXOBgX6BdHaCjYZ/fHp/gX1/j2pyg25zaWKHaGxiX3FWdG9tbmB4aG1XanR2Y3V6e3Jiam95iY2espKlpZyOj5ePhp2gm518dqWhjpiAjKKKiJqWeHuGh36DiX+IgoF/cX97dHaDhX6KkXhnY32Gl4qBiYx5fYCNg3mXgpaZl42XoZx+cIyCkZSGppuHjImDppWFk4uWl5OSd5GdoKGXk5Z5fo6Yl46Wmp2knZiSlJp4jYSCd4OWjZ1+gYmNjHKXo56hk5mOj6KMi4OWmIOSlpl+mIx8iI2AdnF9bnpkgHyKhXCGk3+QgmyHgoGAiYRldW97hpKXjHySd4uIe3+FfHtxfneIhXmEj4mKl6KVgYKKdoiEgoJ3fIKKhnhhenl9dH94Z21lYX9qandzdHV9cXxiY2FzbnVybWFaYV5bbGVSY1lgYWhrdnmGcWJqY21laH2DbGh1aW5vZ399gnltkIZxgISDf3R8g4yBgH56goN+fJBtdol0dG1limxqYmN1VoRpcW5geGdsYmp2cGZ5fHpxX3FshoWPnK6XpqiejYyXh4afk5eZfXiqnIqZepedi4yYkHl8gYx+fIN8gIKBeHR5enR9gIR/iYuAZF59i5WHfoSGdX1+in99mYWXlZiNpKOZf3OHe5SSiqePjI6Kk6GSg5GQlJeRi4GPl5+ako+Qc3+NkpSJnZ2eppeXjZWVc4yNiWuFl4+ZeoeIkIlvl52ao5OVio2ejIaCkpx/kpKVh5mIfIqJgXlxemt1bHt+i35thZKClHhwgoN9fop/ZHJpe4CWl4R+jHOPh4N4hn12d398hYB8goyDi5Okj3iDgXSJh32AdHaBiYVwYnx2enF9b2JvY2R8Y25vdnN4d3N0YXVgb2x1bW9cXF9eX2peUF1ZY2FobXR7iGtfaWZqY2h3iG5mbGlqbGeAfXt3bpCIc4CEhH10gYaJe4N9eoGEfX2OcnqLeHhubIdqaF9pcmKHaHFvZXZnbmxheWlrfXt4cGF3bYuAmZmqoKOonYqKkYaKnouVmH53rpmNl32fk5GWlIh3fnuKfXuAdnh/gHB0dHxvhn2BgIp/fGFbfo+Shn+Dg3N6gId6j5KJk5Kdk6aclYJ9gnyOi5KkiY6KjZibjYaRmJOWj4qIjJKcko+LjG6Dj4+RiJ6ZoqGXlomWkW6HmINmhZiOk3qIhJCKcJWalKKSkomLmYyCf5CefZKPkoyZjnuKhIdzcnVrcG51fIp0boaQjpJxdYB7gYGHe2RwbHh9mZN9g4hzkImAc4d5bn99gIV7hYuIg4uVqIx6h3t9i4V3fnFwgYaEZGl5dXVwfGJfcGFrdF5xant5eWxzcGV4XW5sc21yWVpfX2FrWlBXWGVjZ3FxfodmXWppZ2JncY1uZGlnZGlpgXp3dW+OhXSBgoN7dYKIhXiFfHiDhXqAiXd/i3t6cniDamtfcGh0gGpyb21xZ29sZXxjboB6d3Fsd3eKfqKXoaigppuHjIqBj52Hk511gaqVk46HoYyVk5CAdHx2hXh5f3Jze4VrcnB6bYp2gIGHbnFbWH6RjYh/f393dYGBgKCGkYuTnZihlZh4ioCBjYmcnoqPhpKYloWJlZmPlouLjI2MnImNj4NtiYuQkIqdlqGcl5SFmIdqg6KCZYWdipB+i4OLgXeTmJGekZCJiZWNf36PmHyRjY+NmpF8ioCCbnVwbG1vcHuFaXODjpiKcXeAdYKIgnhmcm51gZmOe4iDeZOQeXaHc2+Ie4WLeoqFgoeNm6OHe4N1gYt/d3lubIGEgl5zdXNxcHhaXnFhcGtecGp9e3FtbWpsdmBwb2pxbVpYYWFiblhRVFpmZ2N2b4SCYl1rbmRiZmuSbmBmZl9na4F1cnNwi4B1f4OAeHWAi4B5hX93h4Z3g4V8h4x/e3aKf2pxY3xjhnxucWx0amhvbHZ4X3F/eXx0dXSAgn6klZqtnqeWhY2Df5eUg5CgdYuglJKGi5uMlY6LenJ4dIJwcoVzcXWIa29tdm2IdoN+gG1uVVGBq5WHgnd/d3OCeoKhgpOClZSZnJOaeJJ7g42TpJqTjomVmZKFh5eZjJSLiY+Ph52Ej4p8c4uFiY6InJqfm5WUf5N+aISbhmeFoIeRg5GCiXGDkZePm46PjIyPjXh7kpB6jouMkpaMfIh8gGt2am5rbGx7f2F6fo6WgnZ6gHiDjHx5Z3Nsc4eVin6HhXqTjnF5g292jHqJi3mIfYGLj56dhHx6doGLfXdwamyCg3pheXFubXJ0Vl5wYnJhYGxuenFocGZmc3RocGthd2VdVmZgYHJTUU5cZmVdeXCIfF9caXJiYmVmkmpfaGRbZ3B+cGtxdIp9dnyFgHR1fox5e4aAeIiDc4aFfo2NhHx5lXhmcmqDYIh9b29remBqbnR/dV90fXmGeHRzhXx4oI+ZsJyljoKKf4Oah4CMnn+LmpSPhYiYjo6PhHd0dnOAcG+FdHByhHBrandug259fW11c1JNgt/IktaTfHB1g3aEoIOUd5WSmZyRmXuUc4WQn6GTk5GJkpuUhn6WloiNjYiSjYicf46Ad3qMfomMipybnZuVk3mMdWaHkIZrh6KEkYiXgoVjjJGZjpWKl4uNiotxepSIe42IipORiXmFfH5se2Vyb2trenlbgHmQjoB6fX5/ho56emhyanOKjomBhYR8lIprfX5uf4t+i4Z8g3mAjpSamop8dXeDkHhybWdxgIVua3VwaGp1blNfcGVwWmBscnhna2tiZnhycHBjX3dgYFZrX152UE5LYWdjXXpwiXRcXGV2YGFlZY9jYWZiWGlzc21qcXaMfXR5hoF1dn6Lc4CGf3qJfnKJh4GRi4h8fph2ZXNufWWIfm9wa4BabG55eXNhdnt7jXZyd4p3eZ+Lm66boJCChXeIlX59ip2HhqCRj4WMmISTjoeBdHdweXFuhG9tb39zZWV5cX1teX1qaGtjpJrB3K7voXNsdoR2haOGkm+XkZahlpyBknKFi6OXiY6VipCdloOBlZCFiZCAkYqJln6HenV/iXiHhI6cm5iZjo92iXVthYiKfImig5CJnISFXouTl4qOiY6KioSJbXuWgX2IhYmRj4Z2hX19a31keHVqbnlzV4h6koeFeX6AgIWMfnhlcml/iY6JgYJ+i5aEa4F1bYeQgY+EfYF4fpCVk5iQdHJ3h4x1c3FndnqEY3VucWJqd2hSYXFna1Zfb3R6YXJkX2h9cHJtWmNyYWJWbllceE5NTGRnYl53c4ltXFxkeV5gZGWFYGNjXllqcmtua3J3jH50d4SBeHd7iXGDhHx+iHt0i4mHloaMf36Xc2h1cXlti3pudHCAV3F6dnlxZXh5h4xpdoCJcn+ch5mnnKOShX1wjJR4eYudhIWhjY58lo2AmoiEe3N3cHNqcIFsam18dV9heHd7cXV7Z2BkfOvatcnD3IhzbHSBdoubiY5qmZCQnpaUgYlxhYmgjoWLlYqMmJR8jpOIg4mQe5CLhY+Bf3Z4g4RyiIKTnJeUl4aMdYZ9boOBiIaYoYKTi56DiWGDlI+GiYaJjYeBh2p9lIB9g4SJjo2CcYZ+f3F3aHZyaXR3a1qMfJKDhX1/g4CEioJ1YXNriICPioF+fpGQfG2Ba3iFjoWRgnuAfH6RkpCWiG5weYyGdWtxbHN5gmB1am9da3dgUmVyaGZTYHB2dGFwYF1og3FzaldnaGJpWG1WW3VMS0xmZ19icnOFaVtcZXleXmRne2FkX11Za25mb2lzeIp+c3OBfnp2eohzhYN8f4d2d4qGjpmBjIJ7k3Vsd3V5eJN0bnh7fFh6hnGAb2d5d5KCZHaGhXGKloWZoZqiiodzb5OLcneOnH6LmomJfJ9/hJp/gXhyc25vZHJ/aWZteHhcX3l7e3FxgGphZ2F/1baOkKZ4bnF3fHGTkY2Ha5qPiZ2TjIZ7aYeLmYaBkpGGh5iOfI2NgYGKjXyPjH2JhHp0eoN7cYaAlpqOk5SBiHSDhXWCf4mRnJ2FlI6ffohhf5OHhIiEiY1/gINnfZGAfn+CjI6Qfm2CfIJ0a213dXR3dmtjjYGPf4V+fIR/hIh+b15xcIR7jouBe36Qh3lwg2Z5goqGi4J6g31/k46PkoRubnmLfnVtbmxse35jaWxqWW53WlJqc2liUWNzeGxiZV5aaoNuc2FbZ19kbF9uVVtwTkhPZ2VcZ25xgGxbW2NzYFxjbHdkZV1dWmtsYm1qdHeGf3Fwf3x9dHiGeIWCfICHdXmJgZKWfImGdomBcHd5e4STb218gXdeg390gW1penSUc2dzh3xykpGDmp+boIaIdnaVfm12lJd+iJGEio6afYyadn12cW9samF1fGdianV6WmB4fHptcX9lZGhnV52PXnFzlrzEhHZxlIqQf3OYjIeclI2IdGuIj5WAe5SMgYSbjHyLhn18iYx/k4h1iYV2dn2BcXWGgZ6VhpWPgoJxf4dzg3qIlpuWhpONnICIZX2Sgn+Fg4mJcoJ+Z32Le3l/f4eLj31pgH2DdmZveXhzd3Nsao2FioGKf3mCgISDf2pdcHd6fIuIhXuAjn99coBoeIKGioWCd4J7gJeMj4x9bWt6iXx2dG9paH13ZV1xY1hwdFNUb3NoYk5odHhmYV5dWG+Ab3NZZWJdam1gcE9ZbFJEVGhhWmtubXtvWltebGNaY3B2ZGdcXWBramNsaXN2gYNxbn57f3R1g3qEgnyChXZ+iYGWkXiDinSBiHJ5eX+OkG9vfIFxaYF5en5tbXx2lmtqeIR0a5SNhZ+YoJqFiG59jHZqeJiPf4KKgpWYinqPlm96c3FsamRgdHtpYGZye1thc316Z3B6YWVljrGyd0piWqTZ0Jdye5KMkXl/loyFmpKNhm9shpKRenmTh4GEmYp8h394eImKhJWAb4qHcXR9e2p5hoOlkYSTjYN+bn6CdYJ3hZmYk4qSj5SFh296koN9g4OJg2+CeGiAhXhyf3+Diod8ZX1+hHVjcHOAaHlxb3WYjYWCint2eICEeYFqWm98cn+Hg4h9hYh6iHKAbXCDho2Dg3GDeICYjI2Ed21tfYN/dnplaGp+cmFaeFtZcm5OWHJzZmBLbXd1Yl5bW1l1fXJvV2ddZmpwX29OV2lSP1lnX1twamd5cVtbWWtlWWNxeV9oXV5lbGhmbGlxd3+Hb21/fYB1cIF7gIF/gn92gYWJl4pxgo1xe4Z9enqElIx1anp/bG9+dH99b3J8e5Rwb4B/eGaSioKhmJySgoVnh4RwaHqXiX6AhYKZioF8jY1peHJrbGZfYW95bV9ib3ldZGyDemFxdl9lZdXrvosyOj6LjoByeYaJj413hZiNf5OOjX9ubIWNjHV9j3+FgpWJfIN4bnaHhYOXd26IhGx1e3VmeYKDqIyDj4yDfW1/dHaBeISbj4uPkZKMi4Z+e5KHeICEjYNsgHNpf354bXx7gYqDeGF5hIFxZHFpfm10cXSBm4uAf4R+c3V9gHOAblprfXR4iYKKe4Z/fIh4eXBrh4KOgolxgXh/loqKfnRtanaAgHV1XGlpeHFZV31TWnJlTFtzcmVbSnF4cF5bW1lcdX91aFliW2dlbmJpTVdmUT1eZl1ddmZfdHBbWVVvZFplcXlaaF5gZ21naWxocHh+jmxqgoR/eW6Ae32Af4J6dYKBjJOFcICLbnd+gXt7iJOJgGl7fmt0fHKGe3N3fX+MeniEfnxrjIyDm52WjIGAbI1+a2l/j417fn+DlIJ/fYqIa3VxZ2hjW2Jnc29gYWx0YWhwiXphc3ReY2SboJBuXDVZr7V1aoCKfpOGd4eYh3WPjIp3cGyFg4d0eYl4iX2TiHp/c2d2iH59mG9whn1od3luZXqIhKWHgYeNin5ufnZ+f3uKmIaBk5CXiIuEiXyPiHF7fYV8aX5ta4B7emp6doKHgHJgd4F+cWRyZ3WCbXV7hZWRgXyBfm93eXt0fWxXbX11c4qBhneHdYGJendybYh/jn+Dcn58fZKIiHpubWltgoF1bl1oZnRyUlt7TlxxXE9ccm9kVktzeWtYWVlaYHGBdWBdXWFnZGhoZk5aaE5BYWRcYHZiXHVtWFhTdGFaZG5yV2peYmhrZ21saXB3fJNsaYSKfX1wfn57gX+CeneAgImLhHJ7h29xd4N/e4qNj4NqfntueHl3ind9eICCh3+Df356bYWMiJijjYSDe3aMeWtthImSeX17gpGAgH2Kg3BycGNmXllnX3BwYGFocGZqb4p1YXRvW2FkaXZ7f76cpqPIuHKFhHOTfXmIlIR0kY2IcnNwhHuDc3WGdIh3lIl5eXFjd4Z5gJNpcoR1Znd2Y2p8g4iegoB/jo59cn5zg3d+kI+Cd5WNlI+Hgoh6iYlreHl+dWh6aWx/eXNpenaAg31oYHeHfmpqc2h7gGl2gYyQlH56fX1xe3Z7c31hVXV7cXOJg4J8gnCGind3b2+CgYt9fHh9fHWNhYJ2aHFobIiCcnBdaGN0b0tldkxeb1VUWXNtYlFPdHliU1hYXGFwgnRbYFxoZWRjamRQW3FJRGRiXGNxX1x3aFVXVndeXGVuaFZsXmFqZ2Vvb2hwd3qTbmmIi3l+c3t+eYKBgnx2fYOIhoNwdoNzbXeDg36Ji5R/cYB8eHl6gYt0g3h/gYGChHmAdm9+iYubnoh9hnp3h3xodIaNkXp/f3yJhoR2kIBncG5fZFxYZVltc2FhYXFsbGiJbmBzaVleZG2Ad6naqseGh7NyinlwjnZ9iJCBepSKgHV0dX53gHBxfm2FdJSFeHRsYHqBeYiOZnGDb2d1blttfYGQk4CBeZKSfXh7bYZ0f5CLg3KVipCOh4WFe3+FbXV2f25od2ZtfHZtand2f398YGJ4hnpodXVjfntndIaOjJV7dIB1cYB6fGx+WVZyfG90g4Z/f3hriIZzeGp0f4KCfHl8d3tyioB8c2d0ZG2LhG10W2tgdmZIbm9MW2NYV1Z4bWJQU3V3WVFWWF1gcoRvXGBjbWRjXW5iVF1yR0NmX15maV1ae2JSVlx1W1tna2FWa19hbmZmbHFocHZ4j3Rrjo11f3Z4fXeBg4F7dH2DiIiDb3GAdXF1foaCiY2Ke3d/eIR8fYWHeId8fYF+hIB7fnN2eYyOn4yJeol3dYN5Xn6Gmo15h4N0hoaEd4l7Ym5sW2JbW2FVanRkYFtob3Bnh3JhcWZXXWNrf3zKzoe5omtubottcoVyfoWLf3uShXp5dHl1dXtqbXVjhHaSgXZvZ198gXmLiWVxgWpqcWNYbXuGnImDgnOXlHd+e22HcICJioZwlo6QiIWLg3p5fnFxb31naHJjbnhyamxxd318el1leYB3aXV5ZoJ2Z3SHjI2UfHKHam5+gHhte1xYcH1sc3+KfIFubol/cHZmdn6AfoB1e3F6c4Z7eXFlcmBtjIJsc1hrX3hdSW9sTVdWX1RVfGthT1R2c1FSVFZdYnSFaFxga2pmYlluYVhjcEdBaF1gZl9cVnteT1ZlcFpbamhdV2dgX3JmamhyaHFzd4d4bpWKdH97d355g4eAdXN/hoWOgnBwe3h3dXmHhYeMhnp8f3WLfn2GhISHf35+fYd/fHh1eXeRk59+jH2LbnWAeWSDiJeGdJKKb4WFgnqDdWNuallfW11dVWhzZWBZZHJyZ4FzYmtkV1tgaX94vq57n7dtYnSHaXR8cnqEh3t+jYB4eHN3b3t3ZWpuYId1joByaWJffnh5ioNmcH1oamtbV294iqOBhX9xmZNxgHh0gW1/gZCHcpOHjIeDiIV9eXRyb2h5YWptYW12a2drbHp3endbZ318eGVzfm6EdGV1ho2GlX5wi2ZreoJ0bHRiW216anR7i3qBZnSGfW1wZ3R+d3x+cXtreXuBeXdwZWxhbIl+bW5Wa2B4VktrbE9ST2lOWX1nYk5VdmxNUVRVXmZ2g2ZdYXBoZ2FXaV1cbGlKRWtaYmRWWFV5Wk5XbmpZXWxlXFllY150ZmxkcmdzcHSBeHCZhXaAf3h/fIWHfXVzgoeAlYJuc3l7e3NyhYeIiIR5gX12j399hImOg4GDe36Lg3t3fHd3mp2XeoqDh2l2fnxshIWUgHKPgnGGgn6Cf29mbGdXXVtcW1NlcGVfWGNzdWl1cGRlYldcXGiAcG9ygHOJZWV5f2p0dnR0hIV4goR6d3R1bmt6cGFna2eGdI2DbWZeX3xve4l9aG13ZmlkVldycI2nfIR8dpaQc3xye3ltenqQhHaWe4eGgoaDfXVwcm1ndV1taV9sdWRnZml6b3tyWWeBdnVncIB4gnZid4WLfJSAbotqbXqAcGVyZWBreGZydol6fWF1g3Zpa3F0em94eHJ8ZX1+fnh2bmNlYWyGfG1rVmpiclRMaWtQTE5wSF57ZmFOVXVlS09TV2Brd35lXWdzaWVfVmNXYnBdS0trWGRhVVRVc1dNWXZlWl9rYFxaY2Vfd2dtYnBpdG9xfnV0mYF4gIB4gH6GhHp9doKDfpiFbnJ0fHp0cYWFj4KAeot1dJCAfYGUjoCFhHx+jIZ6foB2e6OlinmIhoVsdXx7dYSCjHpvhXN6hX2Cg3VuamllVl1bW1pTY25lW1hhdHtqaG1oYGJXX1tpgGlrb4BnbGFpenlqdHV0b4aCe4F9dnVuemhqeWpfZW5pgXeQhGhmWGJ3aX6Hem9pb2dmXVVYb2iPp3aBenyQjnh1bn1tcXR4jn53lHSFgn+FiHZqcnZnaG9cbWVebnNfZ2JqeGh7bVttg3N0am+Afnl3YneEhHiPhXOIcXB5f3FicGhbbndkcHOHe3hhcoBwZ2l4c3Frd3ZzdWKCen53dXBjY2NtfH1ra1VpYmdUTG1pUEdSbEVheGZiTVRzXkpNVVllbHh7Zl9tcWpjXFZfVW9vV0pTaFhnXlhNVWxUS1x6X1tfa11dW2JlYHpobGFvb3Vub3d1epd9d4CBeYCAh4Z6eXqDfYGThHF0dH96dnSFiJB9gH2QbHOVgXuCn4V/h32AfoaCgIp7doSsn396iIeEbHKCeXaBgIJ0bodvfYB0ioBqb25kZFhfWlpaVWJqZ1xaX3WCaV5tbFxhVlxca4FlcnR9aWpdbHd2aHV3cm6HfH5+enZzbHpnaXdnXWRzaHp3koFjY1Rkb2eChHd2ZmhqYVdWWWhkkKdufniAi456cG97ZnhueYp6do5xg31+f4ZuZHZzZGhoXWxiXnBvW2debXVlemlddIBvcmtxe351dmN1hYp7h4eAf3dydX5zYHBsWXByYnFxhHt1ZHKAbGBsem9qaHp3dHBkg3R5eXVxZGFkbXN+amxUaV5fVUx0Y1FHV2JHY3dmYUxUcVlLTFhYZ2x2emVlbXFmY1pYXVh2ZlRKXGNYaVhYSFdlUUljeVtdYGxbXlxiZF6AaWpfb3R4bm9udoOXeXKBgH2AiYyGfnZ2hniGjH10dXWCeXp6goyOfX6EiWp0loF7ip19foV5gHt+fIaIc3GProx7e4aQfmZxiHp0fX12cm+GbXt+bY96YnBvYmVdZVZaWVdjZmtgXV1zhmlYcG1bXlhaXGx7Y3F3dm1jW250dGh1dnFthXl/gXl3bm90ZWh0ZVtndWZ2dpJ6YF1TZWZqgoFzfWFjaVxVWF5iZJClaHl0goWQeGxueGZ3bHuDeXSIcoB4e3h/aGV2bWBmYV9qYF51a1llXW9uYnpmW3h8a25ucHd5dHVlcoOSf4eDiHp2b3F8cWF3Y1pub2FwcYF7c2VxgGRebXZpY2Z4enNrbYB0c3xycWJeZW1vfWVpVGhZWlVOeWBSS1pZSGJ1ZGFKVW5USkxaVmlscntjbGxzY2FZWlthd1xUS2NdWWpTVkdZYU5IanZYX2JtW1tfYmNdhWloYW54eWxvanaBkHhtgn6AgpKIhIF2dYl0i4Z0cXZ2gnh8fX6MkIB+k35weJaDfZmSeYCAeHl+f3OIg3NwmaJ7e4CJlXlkdYh5c3l2a3Nwf2x5fHCRcl5wb2FnYmxUW1pXaWRtZlxccolmUnJtW1lYWGBsdmRqdWpqX1ttdHJtdHR0a4Z9f4B8d29ubGRpcGNba3JkdHaOc1xXU2RgcX9+cYJcYWNeU1phXGSTn2VycYSDkHNranhsbm95eXpxgHZ/cnl6emRmdWdeYlthaFxed2lXYl5waGF4YVt7dmpqcm93dHN0aXCBlIOGfoR2cmpwe2xldldbam1icHKAenNlb35bYG9xYl5pb31sanJ9cXB3a3BgW2VrbXthZ1RnVVhSUXdcU1BZUkhjc2JhR1ZsUUlQWlZrbGt8ZW1vcWFbWlhZbHBXU09mV1dpU1RGWlxPSXJ1WWBkbWNYYWBhXoxqY2RteXhrb2l1eYV7a4R9gIWZfYKEeX2IbY+GcW93enx0goJ9i4+DgpZ0eIKThoGfiXWBf4F0f4Jwh4J1b6KXc3uGi4d7ZneLb258cGZ4cXtsc3ZzjWtedG5hZ2ZrU15cVmhibGxbXHGMZE5vbVxWWFVnaXRoY3RlZV1ab3ZvcXV1emyIfYB9iHeQc2Nka29hXW5tZHN4iGtaVFZiY3d8fHCFXGNfY1RaYFpjlpVjbnCDhIlyamd5bmVydXF6a3lzdW56fnVfZnNjW15XYmRZYXVmVl9hbWNhcV1dfm9oaXNxc3B1dWtshJOBiXuFcXJmbntvcG5SWmVqZXFzgHZzYmx2VWJxa1tebmR8ZWt0fHFycmptYFljaWp4XmZUZVVWUFVvWFFXVFBIZXJfYUZYa09JWFRWbmlkfGlreGthV1xVW3RkU1JWaFFZZ1RTSFpbUE54d1tgZmxpWmJgXl6PbmJma3l1bm5pdnZ+fm2EgH6Gl3t/h4GJfmuTiHJndIB6dYCDfomPf4uTcn2KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYt3eG57jWBkfHFneXN5bW1xdoNnZHxtY2ZnaFNgX1VnYGxvXF5ujmhNaWxgVVZTb2ZzbGV4ZGVdWnF1bnN7eHNuiXuBd5x7emxiZWxtXmBvamVxeX9nWlZYX2x4e3tvg19iXmhWWWBYZJyIYmtxgYZ8d2tqdmxbdXBqeWl1cm1ue4ByWGpuXlldVmJkWGVxZFRfYmliYm1aYH5rZmtzdW5td3ZraIWMf4l6h21xZm97bHFsYlhfaGhvc4Bzc15pbVNlcGRVYm5heWJvdHp0am9sal9YYGZodV1lVmJWU09ZZ1NPXU9PSGVvXWNHWmpOSl9LWG1lX3hobn5kYFVeVF10W1RTYGZOXWJVU0pcWlFZdXZdX2ZtaFhiYVtejnFjZ2p3cXNtZ3ZzeYNzgoN7iI5+fIqIjnlukIp0bHOBc39/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY2Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6OjY2NjY2NjY2NjY2NjY2NjY2Pj46Ojo2OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCS5KamZmZmZmeoKCgoKClXiovLy8wLEiFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTM/k56cnJybm6KkpKSkpKpWFRwcHBwXOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaNjo6Ojo6Oj4+Pj4+Pj4iCg4OCgoKFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5GLkIuKkImPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyMjI2NjY2MjIyMjIyMjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoaMhYqKhoiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCQiIyGiIeFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkJCIjY2JhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMkIiMh4WIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2PjI6Kio6Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+JiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5OUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpKTk5KSkpKSlJKRlJOVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkpGRkpOUg4WUkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSko6DkpGRk411iZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCRjm9/kpGRfHSJkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+QeGqEkYpzdoiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo97Z3GOhHJ1h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjnlcaHVwZG+Ijo2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLioqGZGlrXGdqa4OFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d25jdWxbanVuZWhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hnYGdvb2ZscnRqYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXllcYmdqcm9xc21aWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVJfY2Vtbm5qaFJRVFBQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OT01NVWNrZ2xtbWdlWVFPT1BRT05OT05PUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0VFS1JeaG1nbG1sampmYlxVUE9PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEZGU1tdYWZqbmpvbWtqa2tqamZaS0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7P0BDU15jbWxsbndyamlraF9UTUZFRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7PDtHS0JOYm1wenNramBLRkJFRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs9PDo+TWB0cGNOQz9AQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5Ozo2OFdmQTg4Ozw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT08PDw6RFk5PDw9PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9APF1uQD5ERT8/QTxGXT0+PTs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdJODs6PT1BPEtiPTw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw9PUlMRkZ2d043ODg6Oz4+V2lBOzw8Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dnd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/eXx3Vjw9Pz09PkVpdE06PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoKEg4ODgH1dPkBDQEA9SXJ7Wjo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2EdUxBQ0VAPz5Ye4BdP0NFSUpJSU1NS0VDRkdHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVxQ0RFRENXdYaHh35YR0hKTUxOT09MSEdISEhJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fH1+fn19fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIptQUFWdIeJh4eHiINXSExNTE1OTElHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3Z3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINWbIWHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSkhISEdJSUlKSUhGSkpKSklKSUpKSkZJTExLSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpVgYOEhIKChYaGhIKGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJioyMi4qJiouMiVQ6ODY2Njc2NjY0NTc3MzU2ODo4NzY1NjU2NzY3Nzg6Njc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIKDg4ODg4WJioqJiYqKioqLiYqKgUc2NzY0Njg4NzQ1Nzg1Njc2OTk3NjY3NjU6OTo7Ojs4OTg5ODc3Nzk6OTg4Nzg2ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhISGiYqKiIeIiImKiouKiYmMej45ODg7PD0+OTo6PDk6Ozk6Ozo5OTs6OT09PT47Ozw9Oj47OTs7PDs8PDk6PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXN2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUBCPkBCQEA+PT0+QD8+P0A/QD09P0I/QEE/QT89QEBAPj9BPT48Ozo7OTk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t9fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUJBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4qKi4qLXj5ER0lLSklGR0dERkhHRUJAQENFQ0JAQkNCP0BESEVDRUNFRUFGRUZERUZEQEI/PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyLioqIVkhNTE1MT0lJS0lJSkpJRUNERkdGRENFRkRCSElLSEdHRkhHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE5QTkxOTEpMSklJSEpGREZISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hHR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7PD06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIuLio1yTlJQTk1NTExKSEdFSUlESkhHS0pISkdHR0tMTkxMSEhJSk1RTlBOTU9LSUdJSkhJRElISEZGR0dIR0NCQUNVbnB1d3d5enh5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4tfUlJQTU5NS0pHRUJHSkdMS0ZLTktLSkpMTUxPUE5ISUtMT1FQUFFPT0pJSkpMSkxGR0hHRkZJRkVFQkFCQlxvcnd4eXp6eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxYVlJSVFNPTEtKREVGS09OT1dVUVBPUVNTTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSUpEREVFQkRDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQkdWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hXVWthRVJRUVBJOztSVFJgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTlJQUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0dGRT8/QUFFQkNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqLjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJdXVddWlVFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd5eXp7ent8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKi3lucFhaXFtSU1JWVlRbWnWDWVV9kGBcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTlBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVRVVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlbXVRZVVZdWktUWlVTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlNVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlRkVX9SUVFOS1JUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXZ1c3N3enp7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM9Q0lHVkBITkxHXWlQSEZPRkRFRklHSENESEdIS0dEQkFEQE5RTVJkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgmtNRz9AOjs+QEA/Pz5qUUthRUZISUVCP0dMTkdNUVVJQkU/Pzw9PD09Pz0/QUNDQD88PUI+Sk1HVW50dHVzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqamZgW1FSWlxZXkpKUFFOS0xRUlFUVlRXUVFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtMV05IR0BBPDk3NzY5OT07Ozs4OTg5PzxCSD9cc3R1dnV2eHp8fHx9fHx9fX5+fH59fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZGSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FXUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH19fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aWE1MVFRTUFFVT0xSU1RXWFRUWFFMV1laVlhYVlhZXVdYWGhza11WYXNrYWFfXmRhX15ZVFFOTk5MSUhKS0lJRkNRUFNbV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTlHbnF0d3h5e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fn9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1RWWFhZU1VUTEtUVlVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTE9SUk9NTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz88Ojc4NzY1OTk2NzY2NVdwcHN3eXp7fH1+fX58fX18fX19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF1SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMSk9SUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lGTE1QTUcvRV9SPjM/PmpvYVJSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR2ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydXl7ent9fHx7eXx6en5+fHt1dHZydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTUxLSTw5ODc7PkA+PD1BQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFBSYVxRUFJOU05PUExMT01LTUxNT05bV0tNUU9HSUhDSEpMTEpGRkZFP0JDPjxCRz9CP0FkcHR3e3p7e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSEREPTk3Nzk/Qj47P0JAQD5BRElFQ0dHSUdJRUJCPz49Q0JBR0lETU9iZVFNTk5XS0tNS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7ent6d3R4dXh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEpEP0E9OTk5Oj9CPzxAQkJBREVHS0ZDSElHR0hDQz9CPz9AQT5ERURLTVJUTEpJTVRHSUlKTEpLTElKTE1PUFFQS0dDS0dDQkpKTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFHS0RHSEhHSktJSktER0I9Pj06Ojo7QUI/PUJCQ0NIRklMSkRJSUZHR0NDO0FAQj5AQEJFRElNUEhIS0dIS0RISUtNSEpMSElKS0pNXFJISERORkFES0pNTVBNS01KS0ZHR0pNTlFOTGJtaXZ2d3t4fHp9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLQ0ZFR0VGRkdFR0JDQD08PTk6OjpBQ0A+QkNFRUlFSUpMRklJR0ZGQ0I7QUNDPkBDQ0NER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lIRU5JQkZNTE5MT01OTk1LSEhJT1JRU05SZmZmcW9zeHV7eXxsaGpuZWtxbHNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQ0NDRUBEQj5APzo7Oz06PT5DQT5BQ0VGSkZJSExIR0dHRkVDQD1FRUI+QkNDQ0RHSElHTVBKRkZHS05PS0ZISkZFREVJSkhLSUZIUEtDSU1MUE1PTk9PTkpKSUxSVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxmcWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMR0VFSENCQUJEPUNCPkA9OTo9Pzo9PkBCPkBCREdKRklGSUhGRkdFQ0NBQUZGQ0JDQkRFRUdHSUZMUUxJT0pKTExJR0hFRkVEQ0lJSEtKR0tSTUJOT01RTk9PTU5PS0tLUFVXVlVUWF9eXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJAREQ8QkFBQzw4Oj0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUpJS01LT1NORFFSUFFRTlBNTlBNTE1TV1ZYWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW95TUhHSEhCQkJGRTxAQ0JEPDc6Pj06PjpAQj4/P0NFRkRGREVIRkRFRERFRkdKRUVKR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFNPUU1OUU5NUFdaVlpZVlpdWlhhYGBgX2hlY2BkZmhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSUhHSUNBQ0hFPEBFQkU8ODo+Pj08PEFCPD8+QUJGQ0VDQ0hFQ0VFRkdHR0lGR0tIRElIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05PUlVWT0tVV1NRU1FSTE9RUE9UWVpZXFpZW15eXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdE1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkE8QD5BQUZDRUVESUVGRUdFSEhGSEhJS0pGSkhIS0hGRkxJSEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1JSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpnZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRUZJRklGRkRJSUdJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QTE9QUlRYVk1OVFZUUlJRUExOVFNSV1teXl9dXWBfYGFhX2FjZWJkaGJkaWpndotsa2lnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdER0lHSEpGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNRV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUVDSUpKSUlLR0RLSkdISklJS0hKSk5MTkxJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxrVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHREVKRUVKTU1LTExHR01JR0pLSEtLSUtLTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZmVxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm5cb3VncE1Kcnl2a2Jga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEQEFCQD5DRkdCRkNGRUVFRENISEdERUtIR0xNTkxNTUZKTkhKS0pJTEpKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcF1fcmtxalV1eXhwY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0hFRUVCQkI+QEBGR0JHRElFRUVCRklISEVHS0pHTU1OTE1OR0xOSUxLSUpNSUpJSktPUE9OTUtOTkxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SE1HSURFRENBQj1CQUJGREdGTEhFQ0NIS0hIRkpMTEZOTExTUkxHTE1ITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnRzdnNIS0hJQkVFRUFAPkREQkdESElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLS0pOSUhKTElLSklISk1NTU1JS0tLU2tiW2leX2ljcnJaX1lqb19lZVVrX2NbYWFRYG1oXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERURGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElHS0tLTEdIS0tMTExMSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xVWVpdWF1cXGNmYWFlYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDQENIREZHQ0lLTEhGREdLTEhER0lQS0xPS0xXTElFRUhJSkhJS0lMSkhGR0dJR0hJRUZLSUpLTkxJUFxXXlBcW2BeTVhZU1xcYl5NWVpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNFTE1CRENCRUlFR0dGS0pLSEVFSkpLRkVISFBKTU1KTVNIR0VBSEZKSUtLSUxKSEZFSUZERkdFRUpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfYltgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5ud4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNHSEVIR0hLSUlJREZLS0tFRklKTktOTEhMTkdIRT5HR0xJS0tKTEtJR0VJRENERUJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVlVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFR0lGR0hIRkZKR0hHSEtJTERES0pNTUxMSEpKSEpGP0dGTktLS01LS0tJR0dDREBEQUhJQj9JSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUltXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHRklGRkZJTEpORkRLSkxOSkxJS0pISUZCSElRTUtLT01LS0lIR0VEP0VDSEhCQkdHRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBR0ZER01SSENRSkZISEhFRktKTVBFRklKS05MTElMTElJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VEV1VFXFVeU1ZfWE5UVU5aWk1KS1RgYVtfWF5eYV1OWWJcYGBfYmNiXWFiV19fVFBOT09XUV1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUtLTkxMTE1LSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0JFRkJNSEJLTFBPTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xRU1JVWllXWVhYZFdPU1RQUE5NT1RTW1lYWl1cYGFkZWNnY2tscHNyenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hMR0hKSEdNTFFRSUxLTEtOTVVOT0tLTEdHS1BTU05QT05PTk9IS0ZgRURfTERmZEVNW0leW3JtT01VbVlMQ1FgVWtXZ0pdWFVeRE1RVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalNXVlRbXFtgYGFhYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xIRUdGSEVFS09TSUpGYFNHSk9KSU9NUlFLTUxMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUX9RSXxZWXFzWFBtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZWWH9qdHV1X192X1hhW1xmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1OQkRMTEdJTEVRVkxLTklLUlhXUU1PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWlJUUXZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zcnt8b355b39yX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpLR0pQT01NSk5WXllVTFFTTlhaTFNTUk5MUElRUlRZV1dQVFBQUFFLSGd4bGN4cm1bS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en5seHp/b2hvWXZ2anV1cIFgcmd8aWx4fG9eX19iYVtdYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXdybk5LU3ROQ0JGUFBISktKTFFPT09NUFpgWldLVFdQYV5SVlFZUkxPSVNUVlhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybW5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGZlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUElMTUtMUVFQUFBRV1xYVU1VWVVmWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9bcHp7XmB6c2Nyb3hxaGR8aXJ8XlRMbGB2dWtpdXx7bX54a3xwXV5fYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z2xpaGRnYWFrYWdzcmxnbW1yfGttaGt7dG1ta21PSEpLSElISFFQTE5PTU1TUlJPU1JXUlZUUFdbVlZUVFRhX1BOTUtUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFQTlFRWFlSTlBVVFhYWFtaVVJTV1tXWFdaT1NVV1hYUl1ZV15XVFBZUlZXV1dYX1tncl5bW1ldXV9jWl9jY2RmZGNjYlpjY2ZmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09MTVZUUE5VU05PTUxRUEtKUlFLUU1LS09SVVJRUlNSSUhMTk9RUlFRUVRWUlhXXFdTU1BRVVVWU1pRT1NSWFZUWVZUWlVUUlVTVFVXWFddWl5hXVtaWlxcYGNbXWJjZGZkZGRhWWBhY2FiaGhpbWNhZF5fY11aZFxibWFeZmVnbXNkaWhra2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEtPV1NQTlVQTlFOS1NQTE9VU05STk1OUVRRVVFTVFVOS01PUVRUUlJRVldUWVpbWVNVUlRXV1dZW1RPVFVYVVVaVVdZVVJSV1ZVV1tZWl9dVVheXF5dW11hYV5bYmJjZ2ZkZGJYX2BiXmBoZWZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FbWlhXWFpaWFlWXGpkVlhZWldWU1NPSk5WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVk9YUlRVVU9OTVFTVVVUVFJUV1ZaXVxaVldRUldYVltbV1FUV1ZWVllUWFhVUlJZV1ZaXVldX15WXl1eYFxbX19fX1piYmRoZ2RkYlliYGFeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxbWldbW1xZWltkcW1oZF5bWVZVV1FMTVZSTU5ST1FST0xQU1JVWlVTUFBMUFhXUldTU1NYTU9QUlRYVlVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpYV1xeWl5fYFVhXGFhXWBiX11gXWNgY2doZGZgWmNgYV9fZWRfYGNbWlxbXFlaWVlXXFlcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRST1VUU1BXXF1cWF5cXlZcXmpxd3mAYlxbVlZYUU1PVlNOUVFQUlRSS1FUVFlaV1VPUU5TWFdUU1VSUlpPUFNTVltWVldUVlpYXV5bW15WU05UVVZcXFZSVFZWWFlTVFlcVVNTXVhaXV5cYGBgVmFbY2JdYWNfXGJhYl9jZmlkZl5bZGBhYGFjZF9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJRV1JUUFtdXl5bYFxgVVxdaWpyfXNsZ1xVWVdQTlJaU1JRU1JUVVRLUlZWW1paU09TUlZWVlRPV1JTWlJUVFRYXVdYWFNYXFheXVlaXVRVTlZXV15bWFJVVVlZWVVXWVxVVFdeWV1dYF1iYl5ZX1tlYV9kZF5eY2NhXmVmaWRmXl5kYWBgYWJkYGJeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWVteVl5ZXVBPT1JaUFpUVVZWU1RUXl5gX15iXGBVXV5ia3l0bH1rWlVZVVFQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paVFVWWllaV1haXFZVWl5cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09RV1lRXVVWWVdXVVhfX2FhYGNdYFRdX2JlZXWBemhYWVlTVlNWXFhXV1ZWV11YT1VdWl5dXVRSV1NXVlVTVFhSU1ZUWFhYXV5YXVtWXV9YX19YXVZRWVRZWlphWVxWV1hbWltZWVpbWFZdX2BeY2JiZWRcYlxgZmFkZmRfYGRiYltmY2hlY2ZhZl9gYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVZWXGBhYmNhY19fVltgZGFfenVvaFlcWlVYVFdbWllcWVhZYFdQVl5cYGFcVFRYUFVXVlRWV1JTVVdaWlxfXlpfXFZfX1leXlleVlNZV1lZXWJaXlZXW1xbXFtbWltZWV9fYGBkYmNkZWJkWWJmY2ZmZV5hYmBjXmJjaWRjZ19nXmJiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheXF1bVldYWVxcXF9bWVtiVlRYXl1hY1xSVlhQV1ZXV1dWU1VUWFxcXmBgXWBdV2FeW15cW15YVlhYW1tfYFxfWFldXF1eXlxbXVhbYGFeYGRjZGVlZmJYY2VkaGdkXmNgX2VjXWVpZGVpX2ZeY2JjYWFgX19bWFlaWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWlhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXlldXllYVldbXGBeXWBaWl5dXl5hXFtbWlxfYl5iZGNlZmVmYlpkZmZpZ2NfY15hZmVaaWljZmljZV5iYmNhYGBfXV1aWFxZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhLWFdcWVdcW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpiZWNhUlxaT1hYWltbWldaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfYFxbXl5gYmNcXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGNnYFxpaWJoamVkYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxdXl9aWFZbX15dYWFgXltgYWJlYl9dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBbZWdeYWhoYmhoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t8fHx8fHx7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t8fHx8fHx8fX19fX18fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKgkU+Pz8/P0AwKisrKyolYpKMjI2Njol+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjI2DOjIzMzMzNCEaGxsbGxRdlo+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXp5e3hub29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx2dXV1dXV1dHNzc3Nzc3l9fX19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnd6eHt6eX15eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3x8fHx8fHx8fX19fX19fHt7e3t7fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eH16fXp7fXt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHp9fH1+fHd4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8enp7fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt5fH18fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4eXh6e3l8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3N0cnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycHFzcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzcXRzcnFvhoRucG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXiDcXJycHedf25wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFxdqGIcHJwj6F9b3BwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXJvlap/cHegoX1vcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcnCPsZ5wgaWhfXBxcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycIy2qpGbsqZ6cXFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3N1oKejs6impXh0c3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHd4eIKon6Oxo5ukj3p5enl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fn18e3x8j6ORk6WcoKGWe3t5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2OoJiWmZyWkJmCf399fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgI+xqqWfoZ+hoYN+gYB+f39/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f3+AgYCDpK6hp6GgoKisnoV+fX6Af35+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f4CFj6expJynoaCgoqOrqZyMgoCAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KGi5upqqOdmqKdn6Ggnp+ipaGVhoGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgoSHkJiYlpeZnIyUn52bnJqUjIiEg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoGBhIaOlpeVh4+anJaOiYeGh4eHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj5CSkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGCgYGIkpeOlJqThoeHiIiIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SEgoKCh5KWioSEg4OFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKCgoKBiJGCg4OBgoCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAgICIkYCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/gIyWgoKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmIqDhYSEhIKAkpqGgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSk4+MjIqFhIODg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYucjYCCgYGCgoaUk4yBgoGCg4OBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZeLgIOBgYGAj5OMkIGCgYKCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4p9hIWDhIKDg4KOiYWMgoKDgoKCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUk5KSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf359fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMi4iFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFgoGBfn2Bh4aDgH5+f35/fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6Fgn9/f39/f39+gICEhYSFhoaGhYWFhYaHh4aGhYaFhYaHh4eIh4eHhoaGh4aHhoaHh4eGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoeGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiHh4eHh4aHhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoOCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGCgoGBgYGAf4B/f357eoCGh4iKiomJiYiJiYmJiouKiIiIiYmKi4qKiIiHiIiIh4iIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaGhoWDiZSTkI+QjoqGhIaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgYSEgoKCgoKCgoB/fn19fX1+fXx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGh4eFhoiIiYiGhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoODhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX5+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4iJh4iGiIeGiYmDg4SDhYSEhYWHiIiGhYOCgoOFh4aHhoaEgoKDhIKDhISCgYKBgYGDg4SDhJGSkI6PjouHhYaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGh4eEg4GDg4SFhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoGBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhISFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4GDg4ODg4KCf319f4CAgX99fn59fH19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIKDgoCAgICAgYGBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn1/goODgoOCg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f3+Afn2Af3+AgIF/gICBf3+AgYF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/f4B/fn59fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gIB/f35+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f3+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXh+gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAgH+Af4GAfn9/gH5/f35/gH99fn19e3yGk5KMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKChIOAgoOBgIKBgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTj4mJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf39/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeIh4eHhn99gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCCg3+DjYSEhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSCg4OCg4WEhIWDgoODgoODgoKCgoOCgoKSkIuIiIeJh4aGhIaFhYSEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaHh4eHhoeFf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEgoGDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fXx8fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMi46KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4SFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fXyAgYB9ho+BfX2Cfn9+gIJ8fIB/goCCgH59e4qCfYB/foGAgIGCgIKAgICBgH+LlJCMjI6OjYiIh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIKAgX5/gXx+fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX18fXx8fYB/gIB+gH5+gZSSjY2Njo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYODf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fX1+gICBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY+OjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f32LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX6Afn9+hJKNjYyPjYuKhoSGhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fnx7fHx8ent6fX+AgISDgn9+f3x8fH18fYGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn5+fX19e3x9fXx6fHx+gIKBgICAfXx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISDgYKBhYaFhYaGh4WBhJGPjYuKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fX18fHx7fn57fHt8fH18fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJioiLiYWIko+MiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8f4B/f39/f4CAf35+fn2AgIB/f39/gH+Ag4KAf4CBgICAf3+AgX9+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fX19fXx9e318fX1+fH59fX19fHt7e3x7e3x7ent7enp6e35+g4WIh4iKi4uKiYyRkI6KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99fn9+e36Bkox8fX+KgI2Mfn59fX1+fn1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt7e3t5enl4eXt+f4ODhIeJioeJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/gICBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18fn58fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiPjouLh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKFhYSCgoGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn5/f319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY6LjIiFhYWEg4OBgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYKCgYGCgoKCgYGBg4ODgoWGhIOBgICAg4F/gIGEgX5+gH9+foB+fX5+gIB/gX9/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fHt7e3x7fHx8fXyKi4mIhoaFhISEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fYmHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISEhIGBgIB+gIKAfn5+gX9+fn+AfX6AfX19foB/f4GAgYGAgICBgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISEg4GCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhISDg4SDgYB/gH+AgX59fn5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn19f35+hYWBgYB/gIOBf36BgH9+f36Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359f3x9fX6Bf3+Af4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Bg4F/f4OCf3+Af4F/gH98ent6fHt8goB/gn9/gICCgoGBf39/goB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4GDg4OAf3+BgYCCgYGBgICAgICAgICBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgH16e3t8fHx/fn+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhIKEhIWEhISBg4KBg4F/gIF+f4B+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt8fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+Af4CAf4GCgIB/foCBfn+AgoGAgYOChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fXx/gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXh5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYCAf32Bf35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59gICBgICAgIB8f3+Afn+BgH9/foF/fn9/f319fH+AgICAfn9+fn99fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYl9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgYCAgYB+f35/f318fn2AgYKBgICBgX1+gH9+f4F/gH9/gYB/gH99fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KBhIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYGBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/fn+Af39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f356gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gIB/f39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgYF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+Afn+AgH9+fX6Afn5/gH9/f4B/f4CBgX+AgYB/gYCBgYOCgYCAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf3+AgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+Af4CAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBgICAgICBgICBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHh4dXh4eXt8fH18e3x8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgoKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgICAgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKCgoKAgoGBgoGAf4CAf4CHfn58e318e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYOCf4CAf4GDgoGAgYGAgH+BgYGBgIOAf4CDgn9+f4KBgIB/foGAgX+AgIGBgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f317fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCgoKDhIKDhIOAgYODhoODg4KChIGEg4GDgICCgYSBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOCf3+Ag4KAgX+AgoOCgIGCgYKCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDgoKEgYSDgYOAgYOCgoKCgoGCgH+BgICCgYKBgoKCgYCBgYGCgoKDgH6Bg4F/f4GEhIGDf4KCgYOBgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SDhIWEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GCgoCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4SDgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7fYF+fHl8enp6fXx8gX56fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn6DgYKEhIKDg4OEhISDhISDhIOFhIODg4KCgHyAgX98fH16enx9gH1/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KDgX6AgIKCg4KDg4OEg4GCgoODgoOCgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSCgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhYOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4KBhIOBg4OEg4OEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+fn5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4SDhYSFhYSBhIODhoKDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhIWEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeoR/f39/hISCg4OCgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN+g4N9gX1+f31+goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYKGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgX+Afn5/gYB/foKDgoKEhYeHhH6GhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSBgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfXVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX16fXt8fX1/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhIaEhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEg4GDg4OEhYSFhIWEhoOFhoWFhISFh4aEhIWGhYZ9d4WEhISDgoF9f357fHt+e3x8fX9+fX1/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoeFhYWFhoaHiIaEhoWHhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYWFhIaGhoSEhYaDhYSChIODhYODgX2Af3x7fH57fHx9f358fH59gH59f4B+foB/fX18gH1+f35+fn98fX1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKEhYaGhISDhISDhIaEhYWFhoWDhoaFhoWEhoeFhYSFhYOEh4aDgoOEg4SCfoGAfHt9fnt8e35+fXt8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGh4WEg4SEg4SHg4SBgoSFg4GAgIB7e35+fHx8fn18fHx9fXx9fH59fH19fXx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WGhoaHh4eFh4aIiIeHhYeHh4aGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9fn58fHx+fXx9fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4eIhoaIhIOEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH57e3t6e3x8fHt7e357fH17ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIh4iGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4WHh4WDhYWDgYKCgYOFgoN+gYKBf4OBf35+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYWFhISDhIKAg4GGgoGCf3qEjHuAhIWHhoaGhYSHiIeHh4WFh4qHg4eFhoaIhoWHhIaHiYaGiIiHh4aHiIaEhoaGh4WFiIOEhYSHhoaHhYWEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfH98fX1+fXt9fXx9eXp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeGh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoiFhYSChYWGhYaGh4SFhoaGhYaCg4OFgYCBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICBg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4N/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn1+f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSFhoSHhoWFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3uAfX1/gn5/gX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6enp7e3x6e3t7fH1+fX2AfX18fH2Af318hoOGhoaGhYOEg4WChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhISGhIaGh4aGhYKEhIOEhYWFg4SDg4SChISAf4KCfn1+f35+f4R+e398fICBfYGAfX6DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1+f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFg4ODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fY2djY2NjY2NjY2dnZ2djX19fX19fY19fX19fW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtBPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi3qaenp6enp6enp6enp6auubi4uLi4uLi4uLi4ubCKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OjoIaEhISEhISEhISEhISCkqWjo6Ojo6Ojo6Ojo6WVU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PEJAODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpaKJh4eHh4eHh4eHh4eHhZWmpKSkpKSkpKSkpKSml1dXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDw+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamnkI6Ojo6OjY2NjY2NjYyaqqmpqampqampqampq55iYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs/Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tDQ0NDQz8/Pz8/Pz8/O0NHS0tLS0tLS0tLS0tLRzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7OztHUz8/O0NPQztLU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXW1tbW1tbW1tbW1tfX1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztO7nc/P0rmPvtScgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK1lZuz1MCUsJyxlri5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/Rn6CqrtaioIuRw5N9fq+w0c7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw5Nj9CP0I6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0cWHmrHPmIedutTSzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Wp5mzyJmQn6DS08CgoNDPz8/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P1aWZtL6pr5GhudevoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NalmbW/npqtm6nYo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NDVpZq1xpamxZii0Z6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0Y/SEhHRUA8PD4+PD09PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPQ1aWZs9GanJubrcefodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQzs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HH0tajmrDZpauknsW0pKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09HVtYLD1cyTkKfXuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw8P0dFR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dHC1NLUy73V0tHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT03NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS1NLS0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj0+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6Njk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9CR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2tvb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU5NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5uLi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubi4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo5Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tLa2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKuopqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6efm5qboqCalpeUmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5OSlJmanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKenJ+hoJiQoayXl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaWmp6alpaanpaWjoKChoZ+ZmZqWmJuanpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqSlpKalpaSko6KioZ2cnKJqiZucmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqW2qaOkpKKhoZ6amaWBVo6bmpqYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKCnqrCooKGgnpybmp2iWV2UmpucmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaGgpqKAq6Wfnp2amZmnf1VmlZydnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goKCgoJ+qd3atop6cmpqcpGthaZWcn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJyen56dqIxpjKucm5ucoJduaWuWnZ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZybmqOReXWfnJqcnaCIa2lrkp+cnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmpqjlHh8hZianJ6ZfWpnbJKfnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuZmZmaoJyLnoB+mKCchY2BZm2UoJ2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZmZmpynoZFxZaasoWiBjXlrl5+en56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZihrZJ3ZWaml5pYZ31/eJ2eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmXp6V4Tkpwm4SEUkRheIKdm5uenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qal6uZTjc8dJJ9cFM/NmF6jpKNkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkJatc1RwV3ywqZlaZ25Ia32Igo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg36WpFyFm3zKxbHFnX6delB4goKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+kpFyz9fN1aacubxrXXJdZ4CFjo2Lho2UkouQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhH+CfJl3mtG9x9PHwbScd6WoY2KKio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYx/iI2Ni4uIkoybb6KmlbmsoqGJhXZhyItaiIqJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmRnqGdk5eboZqenKOgnYSTfI+ljYWLd3VwbKaXYYGPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaiprKqqr6eWflhyhnl5gG1raXV4f3h6oKGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipamop6uphXBSYHRxcnppZmJpa3B8haKpp6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKaanaSmoqOwmHBpT1Z4dnR8aGFkZl9fbn2KoKSgoJ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKOnoqatp7CyqXxpY0lSc3V4gWhgY2paW2JrdYORnaGgnaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqmioKGoqa21ury9rIptZ2FCWm5wfX5uYV9mW1lhYWhweH+NmqChopmWnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOrqqeuucHGzMW3pY5yaGlaP1Nwb3FsdGhhYVpYX2NhYmpxdnuMn6ednqGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gqrS/ztnbzrqrnIhvYGFiU0NKeWtgYm1sW1tXWlldW1peY2ZmaHePpa+npZmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1pdmtwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW8ztrd1MCkinZlXVlaXFNKQ21qlJ6UVlRYV11cXV1YVVdbaX6VqsHHurahp6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PDub3Axs7RzbeSdWRbWVpXU0lVb6qzpk5VXmFiX19fZneQp7q+wcXFtLa2qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvFwcXGwb68zMSwkW9cVVhTUFOhtZtOWVtdXWBtjqq6wbW5qaextau1sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH6Ef2pmaGFrbGdudXJydXFnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEJCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/w8PGxsGxkr+/zs68lWlYV1pMmbmTTFRZV2B/prywpqussqaqqamrrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhvemppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMS5tcC3s7zBxr6peVhVUYq3hkxTVV2EoKa3r6WttLStrqWko6ekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt3bmtpaHZaZ3J4c3lmZl5kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLFvri9wcO/x72WbFJaaVpRUmSUq5+mtLKtrLi1sqypo6GtqaynrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXmpvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMe/xMfExMbJzsqcVkhPUGutu7fAvb65vLq8urysraapu7q5t7+ytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aWpqdG55bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxcXFw8XEycvR06RSTGCwx8DJzcbEwcTHwby+tLGwsMK+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGtqd2xpZnVvdGNdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPBwsbGxsjOikmTzszHzNDFtr+/wMC6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnY2pkYmttbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvr3BwMDAxapOpNHMxcnRwa+9vbi5u7u+t7Sxub6zvL6xubW4u7a8tLW5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjY2RqY2djW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Bu7/AvLvEvbrAxL+9vbi8wMSvU5zMxMDByb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7e4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWOvL67w7W6x7e2ubu8uLm1usTJqlSTyL+/u8G+uca9wr+8xbi2t7S4tra7u7m2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZmVmcGpla2hYWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/Fea3Lvce3ubittrS3ubO1srvFyp9Vi8q/v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfWtucWdxa3RmYm5gXFRIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXr3aEvsjPwsC4rrW1u723ubG+w8eUXIbOw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGpudG94Y2diXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0Zt0d7HR0czKxLW6v8TIvr60vr+/hWp6y8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4J0b2xsdGxsbl9jXmFiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysKIdneozMzLzcrGwsPLzsG8uLy5r4J8bbzIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWRbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u6rNvDvra+wL6+uqacqrO3w8CmfHp8n8TGy8jBw8DAycrBv7u5saOYin6wyMXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3h0aHBeXF9cWlFFRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFtm2uzr22ucC8qn1uaG5tdIKXmXV7f5y+v8bAucC8vsXEvb24sa+nrJeXncrDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bHZ7cW5pXGBgWVNQQUZJR0tARUNIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbF2grO9trXBpIZpWl5gTlNbXHB2eoWkuLfCurO7t7u9v7q7u6+irLKiqIK+xcO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d29xYV9mXVtVSj0/P0dGPUdDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmmhHiLoa+1nGpmZ1ZZX0lJTVBUb3uLqbC3vrmytbK8uby2ub61lq/AsLV4rMrDwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXV3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/GqId7doyhmF9TQ1lVSGJqVU9FSmWRpa+vtrq1tLKsvLm4tbjBvY2nwrKydqfKwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZzbmNeZ1ldXVNPTkE+SkJAS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7SQgXmIkG5OSz9lWUJPeIGTaE1DXoWxtbO1srSvrLu6uLa5v8V4jripn2arv7i1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211amxdXGtVXVtQTkhER01CRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhXxYRkFPh1hKSll4joNjQVWjubO0srCxrbC5uLa7t7u8kqSzrqR0rLCpq62ro6ihnZ2el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh1dG9lVWFkV11RT01IQElSRE1DPTg4NzU6Nzw+OTs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmYmZVoTT9TeHFQSUlLaJ2AWkVVsLqxrLOvrqyttraytLWuqaeemZuen6aonqCoqZ+hp5ablpeOnZSPkJaNl5ukqKCgoqKipaWdo6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56em5mml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoYh4g3x2f3pjd2xuXVFpVVBPR1BNTENQUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3CqqW8Z0RTm31RWElLYUpWjWJlZYOvtaqytK6qq6+wsrOtpZ2Rl5OPl6CfoqCco6SfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fH91dn1ua3tkaFZSZE5KSEdPU05LTkg8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCrxr/Kn09BdJhxUG5KTGNmdXRgXWJ0krKvrrO1qqasq6KbmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpaqqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3l8ZXl5YGJTVmFISUpLU1RJU1FNOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpcbGjFdTSmakWWZ9b3JbUmtjXGdiYG2RtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWlyd3VwY3d2WFdiYGRpW1pXaK2urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2orKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7a4s7itsrSkoJ2loKyhoaKhoJqYlpWfm5uYpaGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCgH14dmp3dV5tW1JhSVJVSEZVV0pDTUc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCkf2+CcGBjWExbUlpMTFFZUkhPTkiZrKqppJ+fmZKSlJiYlpaVjIiLjpWdnJ2dnpeemaafoKilsaqnrqOrrrawtLKxrra4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm4vK+zsLXCvLe+s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21obVxYXENXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOenIliV15lYFdNUUc9PkBDRD8+QlJ4qa2pqqWfnp+io52enZqcm5STlZSenZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a7u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6qzraqztK+zrqqvo52sqLaxraOwpqCjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJra3VycWhWXFFGVUhESlBJP0VBNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFFGRDtDPkY8Pjk2Tn6qs6ejo6KgnqWrpp6YnJSRmZ2ZlYyKhoiGeG2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3w8rKw8HHv7q0uru1u7ewtrKqurKuu7i/u7qruK2rqri7tbyurrmjpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrY2lveGtlWVtGS0xFRFRNRUNFNzo/OjU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9cmlhV05FPklZfG9hQT1cjq6soJmbm56emZeXl5KNj5eXk46NkIyCg4J3cnFtcI+mra60ucW7zcfLv8LMzc3Mx8nRzMzMx8nFxszQ0tXO08m9wL/Du8bFyMXR083U0NPTzMrCxcbGysjPwMnRzMfGyMbCvMPBv7+/tr6zrb/Aw8PHxcfEr7+5sri8xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXRzZWJncm9mXlpaQ05MREZQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaWZcVElEQD9Khp6kmIOgsq2jnpyfmpiXlJKUlpGQj4yHhIOIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fS19LV1tPUyMzHzM3K083O083GycrKwsfMx8nJxr/Ds7PIxcvLy8/Hyr++v73BxsXNzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAe3J1dmdjZ3ZqZFZXUURORkBJUUM+Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2FTTEpEQz9DUrDRvbKvppycnKCkoZ2alJOVlIl9eHFrZWJocm9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s7U1tfU09HT1NTTz9HE0NPW2NXW0svJztHLxs3RytLV1tnW19PX2M7Sys/RzM/QzNPQwMnIysTMzMzPz8XHyLbAy8DSzczQx8rJwMTDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYGVyYl1SXElKR0FFSUo+O0E4PTU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFZSUBBREFGUXayr6aalJefnJqgoJ6bnJqViXdpY2FfX2BfXl9fXWFsdXNwcG9scnF1ksTIx9TV19fX09fQ1dTa1NTOz9XU1NHRzNHO09fW09XQz9LT0cnT0cjQ2NfY0djS19nU1czPz8rN0svP0cDGw8jGz87R0dLIzM3Ay83G08/Mz8jFy8fHyczK1NTR1c/SzNPCucWxpai1rqebqKulnbKosLOtrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu32NTV2dnRztC/vMzJtr6upqqooaOrZUM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cWVjYl9fYV9eYWBfYGBfYGVtcHBua29yd3eczMHT1dPY2NbZ0dLS18/TzsvSzdXU0crPzdPW0tHWzc/V1dHF0dTK0NTV1s7T0djX19jLyM7Eyc/Mys3AysDJys7Oz8vQzs7Mz8/IzNDQy87Lw8rHyc3LzNLTzdPS0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksXpIRkI7V42hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3O1MzO0s3L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXNwsjKw8zExsnKy8/Lzs3QztPMxsnQzcnHy8XHwcbKzM3Q0sfQz87OzNDFx8G4ub3Dw73DuLKyvrG7w8O1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWdgYHFoWVhoVk1HTElQUUI7Qz47Njg6ODo6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfDuMrV1tna29jMzM/I1tXEwrWvtKifrZd4bHBxeY+ajYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNhYGBfYGFhYF9dW11ncnJwcnNxbXJ5pcfTz8vQ0NPUysXJycbGv8PFz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svQz8a6xL/Gyr3Cx8nOxcPHwMfNyMTMy8zPyMTE0MnGwsbIxL/Bx8zLzM/Cy8zJx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG90ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7uto7Z+aIOFpKuTjY2Wj4WDg4OBfYSEfnNfW15eXmBeYGNkY19dXV5fYGBfW1pcYGxycW9va2xvb3250cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIys3JxMLLycHBy9DFy8i/ucK7xse+wMbPy8TAw7vJx8m8ycfFysC+wsvGxcS+xr28wcPFzMXGvMDJw8XH0sXByb/KycbIxtHDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdGZpWmFubVpcWFJETEZCR0VMREZTQDU0MzM1PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1drY2c/L0s3NzsjBtcO+sa+2bF56faGRipKWhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lrcG9zj8e9ysXLwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7usbDv7zBzsPGvr61wb3Du73Hu8O6tL3GxMLCt7+2tr6/u8zDvba6yLu/vsvDwcbCxcnHycbQxsLMyLLHycPOzMDFw7+9srewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2RWXllKRkpGSEtBRkJGSkA5OjY1ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysnGzc3O0cjQxdXU1dfNys7FycXHwbnFvauupmBkdYOTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmdvczAw7rAuK2wsaeqraynuLS2tLOztLu2vbG3sLWvsrvCvMHEvL+7tbK6vsC4yLm0u7fBwr24vcfBxLy1r7K2u7+0xbe7tau5vb7AvbG6trC3urPGvLevu7+1t7XFvL7DxcDExcbHy8XAxsa7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjJyMrIysTQzdLPzcXHwcbAv7q3ybaqsJlbZ3CKj4WIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaWZqbW5yfKTHwLi4tbCrrKeeoqmnnqqss62qrKq0rbaxs6mup6yzu7q2w7m6urGrtbm7tMK6sMCxvry7trzIucO2raqosLLAtri9sLGnsbO1u7yrrrWmrrauu7Kxqrmwrruuu7i7wMC+usO/xsPFwLzGwcfLuMXHxb/Hw8O6xMbCu8bJzMuzucK9u7OJc3Z2a2lgYmxpWVhXW0FMS01KRUFDP0ZBOjk6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTQx83Bw8a/xMTDw8rCycq/wLzCurO1tcOuqrCSW2p/koeOj3t4fYmFenuEgXduXl1cXF1fYF9fZGNiY2RiYF9dWltaWl1aWllaXGVub2hmaGlrbnKBrbqwta6lpKenmqCkoJqcpauupKiiq6qsq7Ckpp+qrbS2sb25r7ewqK64tLO8uLS8r7i5tbK8wbLBrqWoo6uxsrOovaqrqKusrrWzpaiuoaSvqbKmqKiupqi3rLGyt7q6u7K8vr6+xL+1wsHHyLe+wMS3xMO/u7/Ewr7EyMzKv7/DwMCph3N0c2ppXGFvZFdXWFBIWVJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz83Dx7m5y8HLvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairkmRtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9eXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWqpaylnpyhpJSdpJqXkaGjqaOjn6Wmp6atoJ2cpKatsrC2t6exraiqtKu0urG2tq62ubKwurqxt6WgpJ+msaisqbqqpKenqKeyraCnpp+bpKasn5+npKChsa2trLK0s7Swtby2u8HAsru+w8GxubnCs8G+wLW4vL2+vMLHxcPEv8DEoIR4cWxiZmBrb2BVWV9ITmdPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLS2vbi6wLq9tqCelJ2hprq2q7Ozu7PEz8nLw8a4t8fAzL+4ybe7xbizxbizv8CstbyyrKWvs62ho5FpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGFeXFtcXFhZWFhYVlhbXl9kY2JlZ2dna21viJ2pn5aVmqGWm6KYlYyeoaKnnKCfpKWip56bo5ygq7CtsbWkqaqqrKyktLitt7Css7avs7WvsKqfnp+jorKlpqq5raKmpqCorauZoJ+emZ2fpZqao5ycnq+pq6iqrK2tsLK4r7i5urC2vLu6q7OyubO9tLaxsba1v7a9wL7Dwru6vZeEe3NrX2VeZGRYVFddSVdcS1BHSkpHQTw/P0A7PzwwNTUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uce4t763ssK0sbu7rLm6saKeqaunmJ6PbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2FhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3KNp5yTlJSal5qhlpaQm6KhqJ6cnaWnoqWcoKGbma+urq+yoaWjrqunorWwsrKsqa+zp7qzpraho5+bo6Gto6Kqtqujo6aepaajlpmdl5mbnaCal56dnZytoauoo6Smrauys6q1sLKrsrm0r6qvsrKzt7Ouqa2usrixura6vcC4s7GUhnp1Zl9mXltZVlNaVUtbUUxKRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+znaWjmKWxwrW2va20uMHMyMa/xbbBwMfOt8DEvbO5ubK/trG5u62ytK+fmqSqoJSaj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqCbk5OPk5aWnpaYk5egnaGclqGhqaSfn6mdnJurp6+wq5yjpLiqoaCuqLaqp6itsaS4sKS3oKOcmZmqp6Gbrbmwo6GknKKgoJOUoZSWlpuYmJaXnJWfqZ6ppKKdo6qqsa2otKyqp62zsKWrrrOxsLCvr6eoqLKusrWwvLS6uK6jlYJ6d2VfYVZZWFNSU0tNXkxQTEdITEtFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJmhqZSRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmJjZmmBlZKUi5GTk5qYnJWWnJ+cn5agoKempKeooJ2gpqCqr6afoqO3qKGhoqizoqWopbCmsa2stZ6hnZaVqaKilK2ysZ+jo56emJuTi6GUkZOYmJOXmJiXnqebp6KimqSlpaukpbCnpaOrrK2mqK6vr6uoqqqzpqarr7Sxr7y2sa+voJJ7eHNlYVxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaast7u8wcW6sbm1xMnJwMPGxce2xcSzwb/Fq7e3vba9uru1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpaW1lZWltXVVhXVFRWVVJUUlVgYF9gYV9hYWNkaYCSkoiPjZORkpyUlZakmaCXnKCloq2mpaWkpKOdqqulmp+lsaqgoZ6lq56oop+uramprq2ioqKVmKKbnJCrqbGcoKKfn5eYk4qekY2Sk5aQmJiUnKGjnaShopWgoqWmm6OrpaKkqqOrrqWusqmmpaamtKaqqK2ztbS5urCqrJ6Mc3FvYFtXVlVSRlBOSFpcT1JKVEtTTEVHSkQ4Ozs9PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6PDw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb3Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5RWV1cXV1eX19fYmRtjI2CkIWOkI2YkpSSnJqinJuhqamrqaynqaakmaWvpZWZpa+poJyZm6Ger5qcq7Sgpqafo6ShlJOblpaSqaqtmp2goaGblJCMmY6MkYySjZaVkJ6ioKOdnKOVm6CjoZeiqKOjqKugq6+krremo6SjrK2qqKuvs7eyvbWzq6+YhXRzaFtYWVNVUkVYTFFbWE1VT1BMUVJJTkpDPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1NzY1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7evqKivrpupqKy3tqu8yru2v6zLxsW4wc7PyLPEure7wsixrbi/t7y9u7O1pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZX2KgIl9io+IkIyWkZeZoqCboKuqpq+sqLGlqZqgraGVlqWop52YkI+anq6XmairmaCdlKWhn5KRkpGTlairpZqZmZ6elo6Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6WmqKiooLGwprG9qKCjrLSrrqewtbC5tcCxrrGrkX5yc2JWVFZOUkpHVlBSUkxMWE5KTE9SR01LQUNGREQ+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxtre8vcHDsbCxt620tLuztKKjnZ2Yl5WEgHZrZ2xucW5ya3BrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqfnh+dIeMhY6Il4mUk5ibmJ6pm6Crpqasnqiaoaack4+fo5qXl4WEkpukkJWjnZaWloiim5uUjI6KkJqlp5yVlZebkZKHlI6LgYyNgJCLkpKSoJqgopaUmJmVoqaZjZmkpqmmoaC0sqizuKGco7esqq6ksrKmtby1q6yxo4l5c25dTlFRTE9ETk5OUEtGTk5KSk5OUUlNSkFITEhIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSopLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS3saWnpKqloKmmpLOqorLDtbWys8bGtrrDyszGs6y5vbS4wK+tqbCepq66r62fmZqdlZWIfINuX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW5wdW+Dh4GHf5CDjoqTkZOdoY+anKOipJmll6KclY2ImZqMc42Dfo6XloaRmpCUjo57mY+djIKJf4qYoKOekJOYloWOg5R+fnSKjnqQh5OQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmaa4pqaxobCunLC8qqmvqpmDeHRkV01ST1BNQ1NOTFBNQlBRSElOU01ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGsrcOtqKKmkp2mtq2joI+VlpKQfnh+ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVZZW11qanBrfoR7c05Yco+Cl4aNnJeLlJGgmZ2VlJaVj5aKgJSJXztWb3yMlIqBjJKMkIaGc4uFl4F5gXuGk52Ug5WOkZCDhn2TeHFwho19ioGRjY+XmpmTi5CKnYifmIeIlp6aoaCXp66praionpeus6Kmrpmsq5iotKOpraOTf3RvYFxPU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego66hpqaqoKapp6Opr6intMK5sLWwx8K3s73Pv7mvrrXCp6rFqqOdmIOUnLGimpiGlI+Lh35zdV1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNT1JUVlhaYGxuZ3qBc1BCP3+VkpF9iJWMhIqNm46WlYqSiIaVh3mJf2BKUW54i5KEfoSNi4V/f21/f5R3dXZ4hI2acFGNiIqGfH54lHZod4aIfoqJlouOkZOXjISKiJWEm42ChJKalp6dlKSjqKmlpJ6csaqhpKSRpqmWoqqcoqaoiXZuZ19dSFFRU01JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQz03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hr6GnqKWnqK+sqrW8tri2s8G7tqi5yLi2qKi1tqqyvKeelo1/ipSolpWKfo6Dgn14cW9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3J1fWloXFSQiZSIdH6GgXyFjJOCkpqLj3uGj4B2gHhzb3ZxdI6OgXp+iquFeXtodnuOcHJteIGLjZJ4e4B7gHZzcpJ4Z3WFhISFfJWKiIqNi4B/hIuNgJSEfICPmJWclpGfnamen6CdoKmlnp2YjaekkqCglp6fpIFzaGJdXUpXUFJHS1hST0pMTVJKSkpMUEhMUUxSVE1FSEE9Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK8uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6RfnaGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmdoyWmI2OfGd5gXZ4gImQfYSYkoFxh498d3tva36tfXSQi397hpKBfH91ZnZ8hmxvZ3N8iYyHgG15cX1xbXaPcWhxgX6OcESLhYKDhX93eHqMhn2Me3V9jpKPmIuSmpujlpmcmp2eoZyWjYulmo6dl46WmJB4b21nY1tYWFVRSlNVVE9QTlFWS05LT09KUk9JTlBMRkQ8PDc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoaawrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlp2lqaShmJmPhZJ5iY6LinVxe211cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFhdZXBybIinqsB+dHlie3hvfHmJkHp9i4ZvbYySeXR5amqAgnGWkYuBfpaASZKYbmh4foJtaWRseYWQkoZscmx8bnJ8hmlucH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6MipSDlpeYmpCSlpeZl52WjIOJnpKLko2GkJaAb2pvb29ZVlhUUlFZT1JUVFJYVU1OSE1KTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrLCjraqota+urLS/q7zDv6WimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXF+nh2GaaXN5ZX5vbX96i4l2goiGdGyaknR0fGpqnY9NeYWTiYSOZzF2hnNsfn2DdGZldX+EhIWAZ2lsdWtxgHxocXF8bpONj3x0fn1xcW52bYJ/d3l1anmJgoiJg5aSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trcGhmWFJaV1lZW01QVVZZWE5JSEVKSkhHQ0BHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakZmWo6itnrGep7qvq7KwwrG7w8ealo+UmYuOhXqEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+yoHF7eGx9bHGCgoWBeoSGhnlyoZV0eIFzdZSHNXGdqJ2OoaGEooV2cId8h3x0jK6NiYFoZ2JqbnJtcIJ1aW9YdXCOm5J3bX97fW1ybnCAe3N2bmJ2g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2Oe3NxcW1gXF1eW1lYYF9STltaWFdMSEpGSkc/Q0FCSD9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp5+vlaW0qa6xrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt0eHhsd253Y2leSlBHPj82NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8foWDf4x+daKaen6GgYSZhJucYYaqn52Lg5CNeneIfomJjnOLl4+Ee11lcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0eXhrbmlddoZ8h3yHh45/ipKXg42FjIZ9cYR/hH11d3t8iXdwc3RmZ2BbW15TW2deV1BUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIyRnJ2fppGgqqCxqK/AsrvFupaOkZSHe4Z2a3+MkYJ9ioSPjHiDgHOghIp8fIF/cIB+emd2a1JXTEBFMjExMzY2Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmiEiHuJeXxxfI+Men2Jh36Xh3ahmoiHj5KUpY2tqkiGrq+vi4GAk4uCi4KEkqmHgJiYipx0bXyBhod9jmhnaHl/boWHgoVxhIZHbIB3cnl2aG1rX3Z9goh/h4SLeZSdnImLiJF/enWLdnx4bXB3foB0dHJsW15eXGNjWGdlXFRPUFZZUERMS0ZOSUNGQ0NAQENBPTo4ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5GOlpeSl6CeraGmuK+zvbOXjZKLmIt9dHB+iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWHBZXF5pjZOHlYCEgoWRk36FiJGBmpWCoaGYlZubpq2Tmruxp7vHw6iLjKGlj5SKgZF8cYOen5Gcf3aGhYuQh5BpaHCEgXSNh4SKcYWCd4d/e3aFfW52dWZ/lI6GiYiHiIegq6KWiY6Xf3qCiHp5b2dreH97f3RsZV5bW15qXmJnYFpPS05XUlFJUEpETkdDSkRDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneDe4CMf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShZKVf4qAkpuOg4CBjIqCiY2Df4qAbXBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlNSU1NUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WX2N/Z2dtdZ2bj5qSk4uNjpqIk4+di6CgkqOqpaOsk6m2oqjBwq7Hr3i6lJp8jaGemYSThYKOop+TmJKEioWPmZGWbHB1ioyCloyNjnePhHFthYGKlpGDhYhxiKCVhpKJjo+WpLWpm42UooOHk4N9f2tqa32BgoN1Y15kYFtnbF1sbF5XS0dOUlFNTExGSVBDRE1GQkNFRkI9OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYaQh4WJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOUFJUUFBRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpaKZoZeilJyeqJ6oq5+orKmqtperv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGIlaKbm3h6fpSYkqGTl5eBlJ57d5WSq7KJjZeffJSem42SlZijoqa2r52RmaiHlo+NgYhsc3N9gX1zaWBeYmBiaGRgZ2ZcUkVKS1BPSUlMRkZNQ0hMRkdEQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wMC8vLi4wMDE1PkFCTVFSU1FSU1RSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYWQd5WKo6eqtL24pK2srKeotKuwtrKyrbuxs72cs8OrusnLt8O/uKWisLOsraqji5aYhaamoKOXgaaZjaKrqKWIhZSkoaCroaSpj5uwi5Wjpre7m6GjsJKinaGdkKOhq6+ssrWilKSqiJmJkomVenp+hoBpYmldZmNeZGReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhjV2lvWHqFdoGThYeCm4OSkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4WBjIWGiJKGgoSJhoiHh3BuYUBFNjQ8Mi8xMTAtLCstMS4tND9DQU1VUVJTVVVWVU5bUEdIRTw+PkZIQ0VBNzs8NUM7PUZLSUdIUk9QV4GSoISuo7OqssDHw6qzxbass7+zuL62v7TBtru6o7jFqLbJx7W+ubWoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqiutruyuqyvtaKxq7G1u7e1rrSgp6eip5qpr62yube4p5u2qIykjpGTn4Z4goR3WmNlV2diYmRgYWZgW1VKRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFiY1d5dXGBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeFgY5/gYmPh4CGiIWJh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0tBQD9HS0ZGRDs+QDdENz9CSkpFRldUUF6PpK2jsbTDtrjBzMm2u8S9s7PAtrjBtb6vt3Sxs6W6xKSwxrmxs7G0qKS1tqqxoKKWm6KSpbCupq2sp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwre5uL+3ure5rKywpbCqrb2wvLrCwqyZuqiTrY+Xl6qJfYN+bFhkYllrZmpmV1xjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldTWVVadmpwfo6EgI2EbnpzeIdiuaGZo4mUlJaSlJONkJaSh4Z7hoGNlYqAhIGKenyLh4Z9ioKBioOWfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNRUllYWmdZVGBgTFNQRUE/SUpIRUVBQEM8RTZCPkhHSkxTWlRdk664tbq4yL+6vcnMu7zAu7e1u7q2vbS6scZgdbKksZqeq72qpairq6SisrWgq6eflZafmJ+upaempZ+jlKOnsbSnsrO9tsG+08nJ08fCxczCysPAvr2/u7y3tK+4t7bDucW9wsevnrmqoauOpKe2iIGBc2BjY19YYmBpZ1JYYFZRVUlFRU5LQD5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xyc3OH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaLfoN/g3h7i4OHfIt5gYqCl350fXprZnB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFVZVUpEQktLSEZISEhHQUk5RD9IS1RUVlxaW5O5wLi9t8bAu7nKyrq2ubW4ubK3tbSutraZZHWonK1wXqKsnJigopuknqullJ+fkJSOlpiXp5+ln56amYOknaylqrCtuLC9udTRztbQyczSzM/Oysa/v8LKvcG8wcDExMXKvsjOs6S7sLSvmqu4u5mAe21eYV1aX2FaY2NQW2BTUEtDQUVGRTxART5BSEFARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vlpKQlG5sb3V1h7OsoaCfi5mcmYyNlZGbkoWKin6Ih4uQjIl8gYRze4qDhXuJdIGKh5V/c3t5bG11e2hyZWlsaWZqaWhgZmlpbFptc5atpLyIh2dbb2hdWlpUSEtOT0pLUEtTUUhMQUpHSk9fXmJmaWGXt8ewuLK7vbWxxMa1sLiwr7ursrGnq7erjbWnnZqnmk6anYyOn5aRppillYqTk4mQiZCRkZ2boZealZaHnpqnm6yvqLCntLTU1NTW0svP1NXN08/NxcLJ0L/KycrJ0cfMzcLQ0bevw7zEuaW2usOig3BlXl5eWWFYWmZaUV1XT1BCQkhFQkg7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VWc5CQmIJocW95eYOgqp6lloyam5eLjZWRmo59iYuFjYqKi5CHfISCcH+IgYZ7h3KDkouPfXF4dWxxeH5xe254c2xogXBtY2ptcHhpd3x+y7/B36duY3huY1thYEpQUlVOWV5QXVxOUE5UUVVUXG5tdoJxlq24rLSmr7aqrLzAsKu0pqS4pquuoKu0o46xrZqXmIyRk5GEjpuBjaaRnImDi4SKiYSLg5SVl5eTnJGcmJmZn56rrKSnoqytz9LV0c3L0tPU0NTRzsjD1NHHzdLT09fM0dHF0tbFwM7Hx8KovrfPnnpwZl9kXlhhU11aUFFUUE9IPkBGQUJFPEBCPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OWnWGhYp3bHdwfX5/oZ6eoYuMmJOTjIuTj5aEeYWQkI2LioeRh3+Ce3J+gIGHeoR1hZORiH9vdnJrc317dntzgXdxaoBzcmlwcXp5cnq+y5p+jLKEdnKEdmhha11DWlpbVmVjWGRqU1hdXWBkXmN4en6LgZipo6Shn6CopaqwuKqls6OhraGjraGnsZ+JppqTkpGJkY+IgZSJapSijJmEgIV+kYODk5ati5WNlZqOhpKRnpensKGgoaWkqMjOz8jCy9HU0dTTztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPDzIx0cGRhYFlVWlRcUEtHSkpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5WJj4qIjoePf3iDlJiKjYiIi4l+gnhze32Dh3d/eoeRloCDbndwbXV/dXh9dIV8eWyHdnRufXaEdXh8nbWMO0GLxaV+jHxpZVdJQ2ZjZWNnamRueFteZmhrbmlugIOIkYucnaCdkJeYnqOjprGjo7OfoaWdoKmgo7Gchp6SkpKQio6LhoOPhH6cm4yNgoSFepR+gqmVo4yRipeSi32XipqSq7OYmpyonKe9w8a5tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2drR1r7LzLR5d3BmXltTV1JbVkZHSklFRT06NzpAQEI6R0Q/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc1NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjX2XkZ2LfoeSg4mGhYmBh3x4hZaWiI6Dh4WGeoR5cXp7hIZ1eoWOjZ15i3B8b296f3F7gXGDh4Bujnp1d318gnV+e4aHr3NYqcK2jZGCcG5iPV5ocnBxcG54doFlaG9ydXhxeoyHjpORm5WflYeMk5ugm56qn6CsnKGamJ+lnp+rmYuajJCRjYR9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI2UjIZ8nImUj66qlJWYn5mmr7W9qa2+x8vJyczL0MnD0srU19jX2NfV29fT2dvV0Nra0dbI1MuVe31qaVxbUVRUX0hDRklIPkE+PTc6PT87PUc9P0FBQURBPj86ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDY1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjpEP0NHUmpebWRiZmt2gIhykY+agHqAjX6CgoGDfoN8fISYjoeLfoaGgHeCeW57e4eCdHqSno2gdo51gnR1gX10gIRvgY+Bb5KFdHyAhHp2hnuIt8Wkwcm4gpabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJWPl5GEiY+WmZeWpZyXn5aek5KXo52Zq5WQkImMkYKMhYiIgYaQkZ6bmYmFjIGGl3qIiJ+Xj4iNiouCfaGKkYy8oZiTl5mdqaamrp+otr/AwLnHyc3Oxc3J0dbV1dnV19vU19na29fb2trYztzGh317aWtnYVVYVlZOTERNQjs9PTw4Ojw+OT1ANj0/QD0/Pjw5ODY3REE2NDU1PTgwNjY1NTQ3NzQ1NjEzODU1NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImMknd2eop8foB+f3yEe36CkYmEhXqEh3p1fXVtfH2GfnN+kp2RnoORfIZ+eI59eIqKboKagHSZhn2BiIR7fZB6j6iOj8OhvYyco519iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYmLkJKVj52ak5SQlo2MlZ+clKCUkY2Nj4p+kI6Oi4SJkpaanp+JjJSSnZGCi3+lmYiEjYKFhIGlh4uLuJidkZWWoqihnZ6do6+3urWswMXK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbuHp7em1rZ1hiXFRQT0lDTEE8PD45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYX1ZYZm1tbWmBjopxc3mKe3p/fH97h3t8e4uHgX51g4V5cnpzbYB+hH53hZuhmp6UkoCMiH+Yh4Cbkm6HqIV6oIt8kY2CiISbfZqQioyjoqCQpK6gi5GLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlYyHiIySk4yUlJSPi4+Jh5abnY+VlpCKkpOFgIuIko2Kip2WmaKjh5OdlqCKiYiNnJCDiI5/g4eGpIaMkLOYnZKVl6Ghn5mSnJ2osrmspr3Cx83Ixs/M0MzO19DR1K7W1dja2Nra19bZ2Z9xf3ZpaF9eWVRYWUNBSEM/Pj46NDk6Ozc6OzszOzs/PT43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieW1ifpGDb214i3h6f3qBfIZ8e3eGhH9zcIWCenV2dnSEg4V9fpKmo5+lopaKnZCUl4uKqJdyirGNhKeShJmThJmMopWfmJOJmp6jkqmvn5CVkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNyJaPhoeJkJKNjZOUiYWKiYWWmZuPkJSThpSXhH+Pi5mIjZCql5ejo4iZn5aaiI6Hl5eKhI6NgX+Ij6WJjZOpmpeTl5mhmZ+Zk52bo7O0pqO8wb7IxcXJyMnCytPNzdSp0tHW1tbY2tTT2s6Dc4FpZWBfX1BLVlxCQkZDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdYKOfXxtfoh4en56gYGCfnZ2gIJ7bG6Lf3l8eHh8hIeLfoujs6ijq7KhlqegpaSWla6ig5C3lZKzmY2hoIukm6+ipJ2YkKeWqZmtr6SXlZWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKdmIWIiY6VjYuTj4eBhoeIk5iUjIuTk4aUmIaDkZCcdJGZspaXpKGInJqTj4qQi5eaiYqWjoZ9jJmfipCQnJqZk5mYn5SgnZWfm6GyrqOlt760xcfEvcPDv8bOysnSp87N09LQ1tjSz9i7c3t3XmJXYlhRSUpPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdOW1xZSmdhO0iEinp7bYWGeXyEeICFgX1weH19fG9zjXp9gXt4houJhYSSqLutqLK9r6Wus7Ooo6KwrIqatZ6iuKWVrKSXqa23pqSjn5mpmKqkr7CpmpmclJWRmKCXmbu7rcmgaba4q7CVmJ+iq5KXvaNeqbKCiYqNlYeRfI+OfYOGjY+UlIiHkpaLj5WNi42XmZKdmrOWlauei5yUko2QkoyYm4qSno+LiZWfoo6VjpianZOcmJ6VoqCUnJylr6iipbO4q8LIxLW7vbvFyMjC0aHGyc3NxNbW0MvTonF8al5cVWBSUUdEPj1DQUI4Pzg3ND5GPDw2PDM1MzU1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj49NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVIYmBjcEpAi4p+gHKGh3yBiXWCioJ+bX19fH9wd4d3jYGHe42PjIaMmqvCwLC+xruztMG8tK2rs7aMqLKurr2qm7ukqK25t6umpqKho6Oqr7Kxqp2cpJibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIacrb2wg4uMi5CDj4ORj3qBh5CNjpyIiI+XjYuVl5SQmpacp5qxmpGrnY6Zj5KOlZCQlpePkaCRiJWbpKyVlo+UnJ6UoZ6bmaChlJqeqKekoaSws6bBxsOwsLu2xcTDvs2nx8PHw7zV0M3Eyol2dWReXGFcT0tDTEBFRj5BP0I7OjQ+QT09NTw2PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxnR2BpZ1pdW5OMjIh7h4uGg4x1hpCKgW5+fIJ/cX6BepV6kpSUmJGTlae0xsnAwszBw7rHu7qvq7m7l7K2urPArqXApKqwu7uqrquiop6nrK+1sKqboKqcopyWn7C0p4ujurq1wburqJyypKSolISOqcPEpIKLjoeIhIaVlI16g4yRj5GhjIyUkY+JmKCXk5mUl6agrp2MqpyOlY+SkZWVjpCVkY+hlIaXn6Czn5SblKChmaSfmqCcoJSYnqakpqekr62lv8TCrqm3tcnDvrbOssW+w7yz0crIwbV2e25eWl1sVE5JQ0xLSklAQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZaJi4iSj4aJeYaTkIFygHyNfneHgYKQeo2hlqiampi6vsjJysLSycrCzbzBs627vqe6v768w7eswamss7u9qrCppKWjrK60rba2oKCvn6WimKO0vambqLzBo7a2r6uSr6yqq5aGmqmmpZGCjJOllYmAdYqSeYWNkZCeoJKOlIuPjZSjmZeblJSjnqmfkaWajI+Pj5WWiH2PlZKSo5qVoKKctaaQn5elpKOln56mmJ6Vl5ulo6moorKtqLvAxK+ls7fMwLmuw7O7vsG4rcLCwcCZcHtjWlhdXE1MTUlHRENIQkJBQ0s6NERIOjs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+a0lfWGFaZGVWno+djpeOnpKJin+Jn5KEeIV/lX5/kIiKkICVoJmup6OYwr3JxMjG083Ozcu8wrewury0vMq8w8G2truts7+5vK2vqKCpp7atrqmyt5qeraKnoZ2rt7ippa++xLG9ubOnqbOzra6WlaWsp6CRjpKxxaeVjXyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuMj4+eiFqQl5eSlqWaZpmjn7OllqOWrK2rp5yfp5iZlpmVoaSopp62rKm6vMO1prS2y8G4qrass7q4rqi4ur24g25wXFpWV09HS1NNSz9BSEVER0ZHODVGTTs+Nz5BSi4zMjAyNUI1NVBXTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnJGaUlSZWJMRqaUnJahl6iWjJCDh6WSiIGHgpyEg5WQkZSOmqKfr76uoce9xsXIx87OztLKvru2sbq7vL7OtsS9t7i3srK1s7iyq6acq6u4q6mosLCXo66kp6SltMCwqqyzvsK6wLmzp7izt7OulaWtrq6ki5OVoY1zwZl9lpmEjpaai7GVmpqVkpOZmqajlaCblpqonJuhoJmLjI+WnWBKlpyalJqll1SWsJ+vnJ+llK+vraaboaaUk5mZjp2gp6KZtKmqs728u6uwssfAuKarq62xsaOhsrK0pHJwZ15cUFJNRVBQUFE7SEtJRkhBQz45S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1SRVdSc2JXRkirl5mfoaiumJCXh4unlo6IkoWfiIScl4+eoJujpbXJtKnGu8PEyMrJyMzOx766s6+5uMDBzbXIusC5tbqxr6+ytKajm6q0tKuppq6smaSupaWorLq/qKu2tr/BwL64s7LCr7e9q6OutKy4pYibl6abdr6ghJicjpOZmouulqGcm5eVm6ChqZ6ooJqaqpmhp56XkI2RnYNudpOimpWdop+QrrKjq5Wpqpirr6WloKWqk5KZm4iUnKKelrGnqqu6t72zsq6+ubafo6eopaecnKypqY1laGJgU0xNR0hOSlZMPU1ETUlKQUNEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5TYU1WSH9lXkhGrJScoZ+7rpiUnouTqpuRkpOJq42Hop6MpKyUo6O2x720wbrDw8jJxcLOyMK9ubKvubTAwsq2xrHBvLW6q6itrK+jopmqtLqmqaasqp2or6ekq6q+vKisvLO3vca8trW4wLC9v7OptLarvqSPopeRop+8n4maoJmXnp2Ot5+pnKWjm5yhmqels6KbnaWcqKqemZWPlJqLl4mNpKKUnKKfoLWvpaaTsauaq62fnqWkqpGVlaCDkJ6fnJWppaKhtLW6ta2otbKznpyippqXlZmqoZ54Yl9hX0xJR0hNUUlNRUZGQlJKSEFER0FWU0RIPEFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6ewqybl6WXmamclpqaj6qWlaimla2smaGqtsTBvL+4wcPByMS/zca7vrmysLizv8PItb+wvLe5t6ekq6usoaGbq6vEoqWorKaerK+soqqov7imrL2wt7bHtrS5uL6wvsG2tLK0r76jlqOWk5uUrZ+QoaKlo6OfkL6lqZ2orJ2doZumn72imKSeoqmroZ2WjZWek5+Hj4WNk56koJ21rKaclrKnmbCooJurn6GNmZWfhY6hmpuSpaSamKyxtrGqpamtrJyYoKGSjpCVqZ+UamVbYl5QSklLT01IRkNJQD1PSEA7R0lIW1JPSz1ITlU0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE2imqObncSroZ+snZ2tn5KinpakoKeqrJe2sKOqs7bFwr3AtsDCvMnCv8rItri1tbG0tLfBxre+sbi1uragp62qrJ2en6WkwaWgqq6gpKmtr6Kmp722pbG7t7a1w7Kzt7q+scPAuLits7S1opyklZGToK2gmaGdqairoprDramerK6bm56YpqC9oZ2kmKurq6ahmY2an5KeiY5Yf5aepqGguKqnk5i3o5+zoqGcr5igj5mUnYKPoJeWjaKklZCmrrOrqaKipaWVlZ2Zi4+Rk6SfiWNmXGVhTUpLS09GRUFGSz49SkE5OUpKTl1RUUo9TFdcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXExPnp+hmJ7Dp6Wis6GcsqeTqqSfo5+tqaydu7CorLWyyMPBw7PCxL7HxL3Fyr2wsbeusbWvv8W1urGwuratmqmxqaqbnqahqMKtm6yxnKqirrCppKe9t6a2uryvt8Sts7PCv7HGs7q3q7S2raqipZWVlKOroZ+fmqerr6+vu7KmoKmpmZmXkqKkuKGhpJKur6ykpp+SoZ6Vno+RjZWdmqOfp7Snp42YtJyjr5ufnK+RoJSXlJqAkqGWj46goZOLpqywpaeinKCekpKblIWLko2cnoBjZ1xoZktKTEtTQkNASUc7O0Y/OTlOTVVeUlNKPk9eXj1IUEJNTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugwqijqrGho7SplrKrpqKksqyuqbuyrbC0tMa/xMS1wMW+ysW2wMnCtqu1qbG4rMDEtLeurba6pZmrsquqmKCnl627tZuosJutn660sqequrOnurO3srjAqreywry0xae+rq23tamnrKGXlpGlpKKil5ekr7itsrW2oJ+opJmUlZOjoLejpKWVrrKypamlop6ampqVmKifn5iinq6yoqaNl6+ZpayYm5+mkp2OlZmbhpeflIyQnJ6Ui6mpq6KnoZmeloyPmZCBhpaJlJ96ZWpdbGtPUU5OVD1CQU5DOzpJQDc3UU9dXlJWUUFXYFxCSlNIV0tIOlVkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcGlWQ1dGjHlmQzukpJyhpb+mqK+voam1qp25r6ukqrS3sbC5trC3uLjFvcPHvbzEwsfBucHHwbqqt6Wtu63Bw7e4qq2yvKOVrbCtspemqJGquaqgp7Cdqp+wtLOqqba2rLussrK5t6y5sMG5vb6mw6uwt66oqqumnZiYqqGioJGXoLCus6uwuZqbqZ+ZlpKXpqC3qaWioq+xs6uxp6ufm6Cgm56lnaGXnaOzsJufkJSmmqGpm5ajoJeZipaZlJeYnZOIkJuZlI6pqaegpJuYm5OHj5mLfoyWho6ba2puYm5uWFJRWlRBQ0VVQDs6SUE3OlhQZF5QV1dEWV5eTUxST19LSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lgRihAOGx9aFxWOol7Y0M9qJ+coam9oaqwqqOxuKmltbKroa21va+zuLy6vbe2wcO/ycS5xcPBwLnFvsG4r7aoq7eyvL+/taqusrifl6ytqK2XqKmPp7ufpa2znquisbCzrKq2s7W9ra+xtaywtbHAucS2q7yvsbisrKmisaWepKiepJeQmJ+yqrOqqrOZnaebmZSNoKaktK6noqysrrGnsqyyqaObn6iknpWgmZuotamXmZKSn5mfoZ+RrJ+ZmYaWmIyemp2Tio2Wl5qXp6ajoJ6WlZaUgZCVhXuPkoSMl2Ztc2hwc19HWWZWRENOWERaOUhCNj5dUmhcTlpdR1teXU9NUlhkSkpDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFWMTUxPWBWXjgpQzNZVVxnSzWMemZMQKSZoKSst6OsqaWurraqrrS5pqewuMW3sbe+wcK1tLvFvszFucPBur+6xLfBubO1rKq6t7u6vrWrrrG3mZioq6qrm62rj6u9nquusaOqn7Gts66utrK5t6qtrrGnta+0urzJsqq1tLG0r66mobOfmqisoKWVlZqZsaKtoKWvlqGkmZmSjaKlprKpoaaxq6q1pK6wta+jmZ2tp5uXnpmZrLiil5OQj5icoZmYlK2gnpWCk5mNnpyal5GLlJKemqWjoqGZlpOSlnuMkIV7jYuDi5RsbnlvdXxhRmBqWklIWls9e0pHRTZBYlRpWk1cYUpbXFpSUlNiYUxLRWBhYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuKkEvSkdQW0czY1lUS0SZl5+vqLGprKWjrq61qba0t6OstLfJurS7ur++tbS3w8HNx7zEvbe+v8C3v72yva6nurq3t8K3rK6yuZWXp66rp6OzqpSvuqStsrGmp6Kys7GysbWxuLKprquyp7ivtbPExLaptLWrsK2pp6K2n56msaCklJuZlLGep5ufqY2pop2blZelpaS3p6Kws6unsaetsLWspJmhrKibnJ2blKq5nJWPjouZnaKYkZioo6CXhJKWkJ2cmJeWiJaPl5qonaShkpaSkJZ3hJCHfIaChI2NbnF4dnx/XUtlbFxKT2RcP2J7R0k4R2dXZVtNXmJNWFlXVVhUaV1QT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3JrS0RDkZikraStraumo7Cys6q2sLafq7W5ybmuwbvDt7OytcLDz8TAwr61vcC/ur+9s8SoqrmxtrfAvbCstLSdoaewraWmsaWesrWsq7KwrKmotLqstLO1rLSsqauorKm5rbGwx764pLmvqa2tpqitsKWjo66jqZydm5qvmaKjoqOQrJ+joJ+hqaWluKSrtLSkqquorK62rqKdo6iqnKCZmpKktJmPiY2HkaOglo6Vn6GWlIaOlJOdm5mWlYeYkpWZp52goI2TkY6ReH6OhX19fYeKinJ0c39+flxSZG5eTlpnXUZElltHOk5tWGJbTWFiTlZWVldUWWdeUVJMZFpbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NlOzYqSGRISis6ST8zQ0lTLD6Paz5ISY+aqaqhqbCkqKOztLG0tbGxoaytvcu6rsG7xrG0rbTCw9HExr/Bs77Cwry/uLzFqK23rLO4vMGxrLKuoaSnramopLGjq7Gqr6uxrq6tq7O7p7exsqmyqaumpaOtuqyqsMK5tKy5qKioramnsaWppKKuqqiinpuirJWlnZeemKudoaeooaylo62st7GxoKmin6qtsKydnqanqZqjmJmPoKiYhoOOioufoJCMjZeekZCHiJGVoZ2WmJaGlpOTl6WdnZ2MkpCOioB/iIV9d4CHhYd1c3KJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU9jXE5VVlVXUFxhX1RPT2hYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLklnREY4PEIwNUVLWDFAlFxATUaVlqynoaqynKmpsLasuLSuqqSrq73Ju7G+t8OvsK2zxMTOzsO/v7TBw8S6wLTJxKyvt66yusC/tK6urKaoqrCppqiyprStqrCurbGvs6yzuqS4s6ysraeroKKesLerqq26tqS1taSpp6ysqqyhqKamsbKkpqWhoauWqqGTmqCmnqOiqqSsop6msbesrKKlopqpqq2pnKGlpKSZoJqVj5idk4GCkIiFnaCNi4+Nm5CSjISNmaWck5GbjJORkZSjm5uai46Li3yHgYKCe3WBhIJ+dXeLpId5a15gbmdXZodkTkBnkkxEYnpXYlhSZVVNVlVVVE9cXWFWS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZBSUhElpGvpKKqsJiqqK21q7awq6Srqqm8wcC4ubO8taayr8TJy9G/wbu5wMDCucG6wsSusbWytLvBvrOyr62srKi2qqWtsKu5rqiwsK6xq7WqtrWmtLarrKSpqpyjnbOzqKiks7Sgtq6hqairqKunoKqrqLm2qaqqqaGpn62bkaihnaCjoqaiqZ2cprSup6WpoqOXpaamqZyio6OfmZifkY6PmI1+h42HhZ6eiIWLi4+PkY2Ehpajmo6NmpGSkY6Tn5iZlo2LhH90h4GAf3h1hIB7eH6AiJ2PcHJnZ3F4XGF0iGlPXZhWSG15VWRWUmNPTFZUVVFPWFpiVkhQalRWU0dQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JFO5WNr6ClqqyZq6StrrO0rqqlr6mpu767wbGvuK2ita/Jx8jRwL+9u7zDvbrDwcC/r7Gzsra9vMGysrOrtKmltamkrbOzuK+irbWxr7G5qriuqq62q6qeqqugo6G2raihnq+yobSqnqinqqOqoaGsrai9r6yurKGnp5+smY+vopiioKinnqebmKmwqKKfrKKhkqGioqaYmqilmJiYnY+Kh5WIfY2GhIWkloaDgoyHkI+RhYaVoZeJkp2Rk5CNkZ2Vl4+KhYZ4c4F/fXR4eoF7dHR7aoKIpHZpXmVsgXVniIt8UldwXkt4c1RkU1FfTU1SWmdOTFZZZVhHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWk6MzhfPWFkP0YxQ1BbWytITztYQjSPjrGgpKWqo6WjrKa0s7CppLCnqri+wbywqLmqp66wycfI0MK9wL65vr68ybzCubGwtbK6vLnAs7S7rbmso7Wnp6yytrmypqe6ta20vK+8pa2ttautnKmvpJ+lrKqnnJ2qsqSzqJqqp6qkqZ6iqaipvau0r62eqaOgrpyasqKWpJukpZ+kmpmnqqWemqmhm5GboKSdmJapqZGZmpOQioKPhX2PgoCIno+HgH6Mh5KPkIWBlJuUhpOijZSRi5Gbk5WHiX6Acnp5fnxod3x7dXFyfmmGeoSIZGBoY3KFe21oeV1eVkNYe21UYVBSWUtLTXB0XUhaW2dZRVZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpOxmZ+fqaWjoaqktrKxpKmxp625wb21sKO5raiosMPJyczBt73Atbe/usi2w7W0s7Wyvbm6vbatuba/raKzp6qrr7W3tKqduruosb+yuaCvtLaprJ6tsaOcpaiqo52cpLCmr6Cfq6mnoamco6igrbunrrGuoaqio62enqyml5+boaKcn5qZoqqimpmjo5WWk56hlpuWpqyLnpGQkYyCi4B/j4F7mpSMiX1/jIeQkIyKhpKYkYeUpIqSkoeQmpCTgYh8eWx9dnl4Ynt6cnBxc3hqgnVqg2djaGFuc45tYmpwYG9CXXlrVl5OUVFLSUxTWVZNXF5tV0RYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUV09I5KXrJmfl6ejoZ+no7evraKvr6mrucK6s62fua+rqLS6x8rHv7fCvq+0vrfEtsOysLqxssC2u764qbm4vaqktaeoqrCtubCpmbm8o62/tLShrre1pqansLOgn6WmqKGkmZ6sqKmeoKqup6Cml6Kon7C4n6SxrqCsoa2km6amqZqam5+jlZybmZ2pppaanqiRmJKYnZOZlqGqkJqJjZCHfYh/go58fKGMjIh5hI2Fio2NhYmTmo6JlZ+JkZWDjJeNkX2Ee3NwfHFzdGB5eGpvcXFwa39zZHpsaGZkYmaHgGBbcmpxTU6AaVhaTVFMS0hQUlFITVtfb1REWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MFxbNSiWm6WYnJWsoJ6hpKG3qrCjtLSpqbrFtrKuoLesra2wtsXHwLe/wrmwtby3v7u/r6y+sLO/sr3Duam7urinqLaop6uwrLOwppi8tqOqurWun7G4r6mlp6+ym6GkoKSjoZabr6ahn6Oor6GgopOjpKK2sKGmsaufrKOvl5uqpaifmJqdpJOam5mcpamZm5uklJSXlZyOk5eiqaGQiYqPhnqEfoSKeo+Xio2HeoKIhImNj4WOk5iMjpaZio+XfoaXjI96gHpwcXZub3RfeHdlbWxsa2qEb2ZyaWtmaV5kdIFgW2t2aVpKf15bWE9PS0hIUlVGMjldXm1QRFhWWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJjViwylaKhl5Sbqp2koaKht6muoLq4pay9xbOwrqO1r62tr7TDw7yzv7q3sbO5uLq4uq+uwLO0ua+/wbisvbq1pqKzqqepsqutsaCawLWkprS1qJ6yvKmopamvrJmjp5ykpZSYobKlmZ+kqKmcoqCTpJ+juKikp66mnaWhqJKfqKKhoZmbnKCSmpuWn6Gqm5qYoJSQk5aZjZOTo6ikkImJj4Z5hHuEhn2djYmKh3qBhIeJiZKFlpOTjJCVlI2OlHuDl46Ld357bHRxbGxzYXd1aWlqZ2dvhmhoaWNmaWpga2NqaFxle2NgU3RUXFtTTEpHSU9TQCEqaF5qTENWVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z08nMp6io5GOpKebnp6do7Wsp6q6t6esxMG2sKyjta6nrq+3wL+8ssG3sK6ytra4tratqr2zrrKxvb+4rry7saWftqulpbSpqq6encCrqKSvsqmstbueqKmrsaWYnqmdpqSRmaatopiepKmhm6Gclp+dp7alr6quoaGdnaGUoKafoaGam5mckZick6Wdq6GXlpyUkoyVl4uPmJqpoJGIiYuIeYV3goKCnYiLgol9gIWIh4aRhJeVkI6QkZGRjJJ7g5WOhnN9fWZ4b2tqa2d1c2tjZ2RkdoFjZWZmZmpqZGtyWl9ZXW1kYU5pWFtgVkpHSUtNUlg+OV9saUhCVFNcW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao5+QjK2hmJiflqSzsaKxvbahsca8urGxpLesqq6puby7u67Bsq6urrausrizqKu5sa+us7a6trC4va2mnrWqoKCwpKqunKLAoLGkrrCut661nq2ura2imp2nqaWflZqnpZ+ZpaKonZqfm5ScnayvpbqorqKhmpqdmZ6kmqSel56Ym5SZoJKolamnmpOampGLlZmOlJSZqaeOjYqJj3yCc4GBipiFh3yJiYWFioyKkoSUnJOSj5CQlo6Qf4CMjYJwgH5meW1oa2lncXJrXGhjY3SBYmZoam5sZ2pqaG5dbGx0cGFVY2lkZVpJRkxNT1hRUVZhZYFVQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kaGajY6wnpqToZmosq+fuL+2oLTCu726saa2sKiupbe4t7etu6+sqqu2qrO4raWztbKuqbC3trGztbqnqZ+1qJ2eqKKprZqnvpito66vtbWtrJ+xra+popydo6uonJScpqSdmqqipJaan5yQm6Orqqm7n6ekoJiZmZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJeZgJaKoZB4hpSMg25pfnaDcWyGi4Z9hIyHcF5jYWeEmIZsi4+UknR3i4R+g49/Z4aAZ3VoZVdcaHNuTlBqY2dzhWdfZGZubWpeX2GKj4OEZU5LRDlGVGdeSkdQUFRVS0hSYG90ZUZaUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoujmYaVsJuck6Cbqq2qo73Fr6m4wri9va2nt7Clq6S3s7KzsbmtqaastKavtaKouLa2qKest7OutK2zoqmfs6qeoaScpqeYq7qVpqWvs7etrqSprquspaGfnKCnp5uXoKWlm5unp52Tn5+YkJ6nqqO1r6Ojo5yWl5eXo4igjpKah6GHk5ygf6R/paqekpGakYiEcniNjoWIoXaIjGmXiGZ9cnihb4iHhH6OfX+hoKCZgHyHnnSHjnabimyHgYNsaGVjemtxYVOFbWNsaZhxWWpwb4hYXmlba2tbiHFuenKFZ4aEWl5HTj9HX01GUlZWUVFSV1RnXk1XSVJTUEZHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiLppaDnKucmZidn6qqp6m+w6+xur23wL+qpbewqa2ms7Sur7O3q6mlsa2ltLOcrbW2tKanqLOxrbKorp6roLKooKOimqGimq2zlKOlpbW8p6ynq6qsqKWhoJigpqOZmaWjpJicpKmWlKOclJOkpaaht6OjoKSYlJOXkpyIr5CYlImpi5ehm4WxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGXvJzFenK1pruQe4BslrGrsHhoa1ixrm5labySvG5oem9ykNh+U2pitrJ/gXKVdJqhqpBXT1diUFZORlRbWFFQUoxcV1xQQFxEUU5FR0o8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaSgKeqn5ecnaWtsqewwr2ytcC1t77Cq6ezraypp66zqa+2tKenprSlp7iunLOytqqlpKeyrq6xpqqep6Sxo6Kfnpebn52uq5Sdop+zuqOqqaKtrqWhnZuaoaefl5unoJ+YnqenkZynmpOdoaaioLCin5+jlpWSmJKZha9raoqNqn5ng5WGrWRwnZ2UmaWUca6hpH54u31roY92sV9qtFulgGackWBmgnpmf2p4a6lkvnJnpox1sWp8sXh0kpNjbW2nbluEoEVoZoeWRXWcYH5ofKSngllfi6tpgJZ4eWqnN0qvXFhTbGRbS05XX1xXVjtOiU9YVy9JVFRKREZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKsp6Weo6Sqsrers72+sLbEsre6waepsKuuqKmwrqOwuq+kpK6yo6m4qJ6zsrCjpaCqra+sr6ann6OisJuim5eVl5ubrKWWm6Ges7Oiq5yira2gnZmXoKGonJido5+cmaGmpI+dopqXoJ+qnqamoJufoZWVkZaRmoW1m7V4hamZtZl2hrObt36TlpaolH5sgqZ7goaIkpSSd6tna7Fbq3uPh5R0iXGPhoB/iJCXeIKCi5iMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5c3VTk4deUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5WFhBI01oRkNFQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5WHs6amoK6pp7Ksqbu2wrC7wq24tr+pq62trqatsamhr7yqoae0rKOrtaWms7Ono6Kdp6qyqLCopZ6fn6+Wn5iUlZWXnayhmZmkqLSuoamPqaipmp2VmKClp5ufnaKfm6CjpKOVm5+XmZ2iqZulmZycoqCXk5GTk52D1ZOZuXCwwn7FhnzWlJu7fJqVpI+NnI2ke46HpIKlgnqseY+dVq96iH6farlauXaHhH2mgpN8mHqqeY2dkHuxbo6EdJC8hW+UUK+nxYpRoHpjYKlic3OIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhObU1bUk9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzElm6KTmLGoqKWzqqW0qaS8t8GwucCxtbO6srSmsbCjsLKmn662qJqnua2jr7Ggs7SwoKSen6epsKm0qaScnZ6rl5iXlZeVlaCpnJmWp62wqKOej62ippWel5yhpaGZoqGhoZqhoqabnqGelJmbpqCcp5Wbm5+hmY+RlJGdiLJuaLVxq4dujqZytHNytnual6SLj52No3+RoaV+sHaDkdLRdlyue4V/pG+bqqZrh4V9rX2XmY97sXOSnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZ0h2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa2BsaFBVR0k4PVZRWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGdkqWvraSqvK2mtaWntru8srq/t7WzubmypLS0obGxop+ssKSXprmtpLGwnLS4qqCmnaGppLKorKmkmpyaqJ6VlJeYkpKip5+WkqWqsKailpOtn6SRlKCbpKaflZumpqGaop+tmqCenZCVm6GenKaVnZaZop+VmJWRm4Wse3eodqOOiIapb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9eIV+j52GmZp3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV52d4domIhrXa93lZ6PeGw1eciusl9CU29eZ2BFUG1fcG1WVU0uZWNoUlhRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk6OTmfnZWgubCXtMGtqLOoqbK6t7O4v7m3sbS7tKS3s5+0rJ+fqKyflKe1q6ixsauttKSbqaCgqKG2p6apopmdlaShk5KbmJGUoqWako+mra+moJWZqZ+hjZGimailoJSZpaidnKSerJ2hnaCNlJ6anaGYmZyWl6Ggk5iQpp6GqX19pXihj46CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aIdKiBjpuNkqN8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcW0x0XWJnTVthXnFzXkpWNkqbk1hIRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84oZ2amr+rl7TCrqytqaa0sLextb+5ubGwtbqpurSfsKSepaennpOqsKmvqbWsqq+hmKGgpqWkuqKjq6CXm5GioJSTnpmTl56fj42LqLCvpp2Wm6imnouSpJeoq6eUlqmnnp6go62koZ6hjZWhmJ+gkp2XnJWdoZWWj6ucj65tcrRyqYx2iqZztHhzs4CRpKOSnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZKIrWt1s2GdZqJvh5Jql1ytX02hfIeRUnOjbHl/fm+Yh3Fcr1Y8nHdlVG9uLlynT2NSa2VibVpjXF9vemJUWlE+Pm1vM0NCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWanJ67oZyywK6uq6unt6m4r7XAtbuvrri2qsG2qamgm6akop2RqqmntaOyp6+qoJecp6Ckq7ido62blpmPpaOVjJ2gmpicn5GTlKq2sKeZlJysqZWLk6WZpa2ikJaqsqOfnqarsJiho4+Zopafm5acl6GSnKmclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2VgaypcXt/dbyIp6BpnWGmjq+hfox0h6p9vm5zvHSyg3V4gYtumohxbo2kdL1ed31bYXm8a1pWW2p6XmphZWdhbHduWVtZQ0FAckBDRys1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56ivKGXscOwraqrrLGnuK+2xLG5sa26r67Asaukop6joZybkKmjqrKktaatpZ6WmaqZpqy5naOumJSgkKWfkoyco52XnZuRlZKuubKslZejp6eTkJaknKSsnpCgqKufm5+oo7Oeo6WOp6KUopqcmJWjmI+woJKUqZ6FkJm1gJCRjLeVeIKTmrV3bWtuc295j4SOiXSewbu9mnuBsqhwgHSRuYN8hoaMho17ioeNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtXRycHe2jF6Aen2KaIN5bXlji6xwdYV/WlunakVkWVNmYGNeY1FnZnBsdUJNUExEOlpNP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlYnPjs8p56gob+llrTCtKyrqKyrqbqusMWutLKut6e0uK2poqGlnqCdmZOrpK2qprWop5+blqCjnaykvqahqpeUnJChmpGPoaihk52Yk5eUsbW3rZidpKSiipKSppulqpuWqaWlnJqhqKamo6mhka2elqOel5eXnZ6PsKiUm6ehjmp+aZymeIdyfZqOdHpkh3u9vsC6b5KCcZWHYXNqWl6bimFjiI6Va2CAlWRtnXdilWuAmpWUZV5hY3GaimlyjH2FlWdqfnJ0eH1+Ylt3dIFoUFxuhH18i2tYbHqCc0pKb4ZwTXVNRVdeZmBLWldnY19PW211aXJST0RFTjtISD1MPzItMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPVtPJz8yPqigqKHCo5q0ubWjrKWup6e1savIq7Cyq7SjvrGypqCiqJyim5mZrKavpKS1qaWbl5Whm6atqL6nqKaVk5uVn5mSl6SpqJCdkY+YnK+yv6ybp56nooiTkamaqKOam6ygo5qao6esop+ropqxm5WnoJeVnZ+dl7Gkl6GomZyRnZyipJimopqcmpqZj5WBZ259cXeSl5SRhYu1qo2GmJWOioyYl4eUlYqEkpSRiY6SlJiUmJeaoKKanJShno2CeqSGbGp8kHyAdYmKgXGCeHl2douAfIprc4F0g3Vldn13a3B7bWBjXXBnTFhaZmpgV1pveW1tZlNPRlM5T1lNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzobOhv6GksbK3oKqmsqelsLSqyKussKW1psCntKCdpKSco5WVoKqnrKOjtqufmZaWn5etqqXBnquklZKcl52XkpOin56ip5ORmainssSvmqudqp+QlpaonaqbnKCsmKGbnKKkr6ahpaifrpiXp52ZmqCenpyvoJyhppWXkpiToKGVo56XoI6Wk4qKjY6XrpB8lZuCkoKLqqiGgZmXioSPn4h7hJCHhpqSiIaKlY+bl42RmJ6jlpqTkZ6Nf45mobOvhYqEdnuQinx2eXpvZnqRgYCJa3WBeYhzaXN/enWDh4JrdWR5ZmBpZWNkZmtZbHtvaWpcUkxQRF9URUA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r7+sq66ysaCrprGtoqyzsMSwqqujs668o7Sbn6aioZyZl6elqaakpbK0npWUnZmZsKWuvqCropCRnZqZlJGUopyXqJyEnqqrorPIs5+qpKqWlpeap52omp+kq5Oen52gqa+ppaOroq6bn6ChmKSenJ+dr6OYnqiTl5ackaSYl6idmpdlgpJ8ZX6NmpBkeY1saGt7kqSqamWamH5nhoplZWloe46hj2tojZeRo3draouZo56Zc2xue4SNh3pYZV6Ggl5si4mAdlxoc3d3koCHgm54gniAc215hHR3iYiOhHxqhllea3RkXXOJaWt8cWtjXlFNV0pkWEFKND1GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsaqlqK2tsKatrbG8samnpK2vsJ+tl6CjnaKZmaarnK2jpaipsq2elaOPoq+mtrmlrqOOjpqhmZOSmqCZmaWVe6Wtoqi0xLikoqevnp2UnqKeo5yjqaiSnqGdoKqwqqukqqCqm6efqKCslqGbpbCkl5uqlaCdmpKll56qmJ5+vYOIcrRyhJ2GrWh4ucS4cZOio3qmmZlzqoJ8y8DAu3GMooiCn32WmImdwL2Cl52djZ3CwXyCfJKNmsPAfWulsm+MgW/Ken+bd5GDjoF2eoGAeXF6f4dxeIWNk3lueJRjZl95ZGBlgmNedGdsZGJXS1VJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JRLyNGWzNQWS9VQUI7LziWo7nDtLCwwKmolKOvqbCuraaztK+ppaamsaufq5iaop+cmqqnop2so6WopKS0pJ2ikqatq7izp6+ikZGZnaWSkJ+hmJufnYenrKSrrcDAsaCpr6mXkZ6doZmio6qjk6ChnZ6trqmsp6Ojp6GmpZ2tqZKkmqitqZucqZysoJaWpZWhopecf86UeHqkgXmVlptfro9ejqeBoqB8p5abdKuDgK9eY42qe6eHhaB0l5OIs2OCq4ahjY2zaoWvdH2XiLdhg61Zos1ukHV72nt/mXB+iJJ2fmV7iHZ2a3yIb32FkZF+bYOQYHJscGhgX3lkXHFoamNmX1FUUlddS09DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGkqqittKumsqysq6SrprCqoKebmaWXnKKvn6CeqKejpqGfsKyanZWmrayxqqisoJSSm5+kko+epZidp6OerqSrsKi/x7OoqbGulpKdm6GXn6mqn5Wgn52drrCnq6mcp6ikoquTrLOXpaKqqp2jpqWhsKCSmaaZoJqUlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnneqgn2tf5xzrX6rh4afdpiSe3yXfqqIooyRjJ1+q3uJlJCfgHutVpzEeo9vksF9gZVtdW+MbWV2ZYZvYXducm+JipKPg22SkGZwdXVxYWdtZV9vaWluZ2NXU1xhWVJTQzhJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytKCco46jo6Ksr7avqLGmqKqnraurp6KjnZmilaClq5+ipaCoqKKfnbCsl5qXqKaurKimqZ6XlJqjoZGToK2bnaajr6yjrLWquc2yraatrJaVnJ2imJ6urJ2WoJmen6qyqaqqm6yrpKOsm6+xoqirrqWYpqqpqbGikpajpJqUkoWkaqR1iXqpdHqycIKmipmMcYigmoekYGFSq4R/roObdq2BpoaGn3qZl4Z7ZoCjiaSZhoKkfal/gpWHrl99qVWdopKBeqKfgHvDr8WLcq+zs7lxYqmvwnRojIyYjoFtmpRwbnl4eXBtZmVlcXBmfGliXVdgaVhYVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVv6GZq6ehr6KesLSwr6mtoqemqqurqaSmoJuknp2mp6ejnKyaoqyhpJ+vopybk6qjtbCvoKmbnZaUpqKQmqKooKClnLCmpKixrLbIsrWqq6mVkZ2copifpbOdmqCUnZ+nrKykrpqtq6OjqqKzrqKqs7Ghmqmorq+2opKVoqeYm5F8qmyehId1q3l8sG+CpIuJn5aWn5SB0ri0uMmAgbJfYJSpg6OIh6B6mJaaeKrJdJmklaiqkZOajICciprGx3hmoYKlc4GfjoJ9r11wtGKwdUujhm2nR4KTZI6QnpJ8cZeTgHF7dX58bltmanJwZYFqX2FYZG1cXllJTkxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqbOtrKWinLK5rKqhppqopaqrqqegpqWYqqOfr6udpqCsmp6ppZ2ntZ+il5OoqbWyrJylnKCUj6WskZmbp6OgqaauoaSnqbC0wrGzqq2ok4mXnaSaoaOuppihlZmcpqasm7Cdrqmnnqykt6ygsbmvnZuup7Kzs6STl6eimZ+Ogp1OeJqBf596g6N9g6SEhqaenJ6ThLh7fHm5gn7MxsK2eJuhkIuffpqWl4p2npiKpZikqX+whZ2Fn4SsfZqUYqVspHCPhZCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Tkox2e3OFf3FcbW54cmqBb1tkX2huYmRdS0xRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq+gm6Gss7Oln6CVpa6trqqnnaammqOnobOuoqmnsqCZqaSUorWiopWXoai0uaObop2ik4+hsZiem6eloaKvrp2kqKK2sMOxramtqZGHkJynnKKknKWXnpiZmqakqZqvoa+lppivpbytoba3rZ2dtbK4sLOml52voKOdhY/RtcO3eYeOhZGTkIGmeJShd4ygkYSlgYpxqoaEtG5yapmjnJWKnnyYmYaHj3OvgqWboo6mi5OdipWQm21wslylc5N6nGyZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2MjZSOeX15j4JtaXhpeXJugHVdZWRubWZnYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWTc42Krb+/vLq0npanpa21oaKZlaOop66rrJmmop+moKC1p6Opp7GjlKyjjqSto52Qmpqos7SknaScqZGUl62fn52npJ2nnLWaoaqktqrCsKmrqaGMhI6coaCmo5WampyYm5mnpaaYrKiuo6Wbraa+rJS9sKyforCyuau0ppqosaOnl3qokH18sHeKgKSliJxtsm+gh618oY6DqJWYgKyJhK6Fn5SqoaGXhp+AmZWAe5J+q4CdmpeLq3idn5GKlJKBeq9do4F9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWRppmClY6Yjnx7hJh/a21/Y350boB6YGdlcW5oZ2dDWmFbPktUM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JODA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVldXWFZVVVFIRklKIygovZOag6nGwrbBtJ+arKCuuKWjjpuko5+wr6qfpJ+drZmeuaCjq6CvqZquoZCrqKSWiZqPrrGspp6mmquWl46soaGdpaGapJytmKCopraov6+lqaSfi4CNm5qfpp6SlJqalJqapqWlm6qsrKSln6qovqSWw6yqoqGrsrmqrqafs66oqZh2r36Qi5yFh326roqYZbCMZZWtfaGPg6aVmoGsioSwhaaZpKGhkYWgW2xqgbNgf617e4KBsW1nb5mYjIixW320XKSDa8iiZJ+Ae7xYdrVasn1SroB6rFiAoW6YkKibi5eRmJh8eo+dfmR0fmKEeHSAfGFqZ3FtZmVlT1VkXEJVXz5KKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFdaXmBfYGFiXl9cW1hVUE5KRkM1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpcXFhXV0dCO9Kfs7K3vbqzwbOjm6ympbaooIuaoJ+cs7Opn6OgnrWYoLSoqqyer62erJuVr6iijoibjq+sqKehppitkZiOqJqhnqSfmaOjpZmfo6qyqLuvpKienI59i5uWoaCZj5Gam5KamKmgopqprqimpqOlqbueoMampKihq7S1rK6mnrusrKyVgKmSo6+Om4CHpJeYkIGAuMO6g46ck4SnlpyCrIqCr4imm5ulqpF+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGujgW+rhGycf3qysMeDaquwvax4d6K+vHOBlo6nnJCbkZiee4KSm3pjfXtkjmd5gntgbGVramJQYVpTalxAVWFCTio9OjQvHh8kHiUyIB0kKDA0OTY2Nzg6PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbS0sb+5sr2yop2upqWypp2MmKW/qriyqKG/pqeynJ6xnLqon62vpqaUlLCsl4yDm5GupaKsoKObqJ6XiqOSpp6nnJqhqKKZnqGsrai4raijm5eSe4eZkqabk46RmJiPmJOpm6GZqqmhqqeho6q7nqjEoqCuo6qztKqvqJ+6p66umnN1qqS3hmSJoHBnrY+Kj21vd6SQmZ+Bda6YlHCPi3GVqKObl66kcm1tbGaLeG9ugplxgXpqcWlniZaWmHJpaYSHZ3CGZF2IYmpvWV1nfnemX2FxjpFuZWV/jZOPopiZmZGYoH6IkJV2Zod4aY5reX95ZGxjZmxiS2RYSmxaOlFlRVInSzorIxwgGyIsKRgbGC0yLjU6NDU3OTw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqZWts6m5uLKzqqmhrp6jsqmYkr6yxMm+tqqewKyso6GorKC6o6SurK2mjZeuqZCMhZWWrZ6mqqCdo6KekIqkkqeZqJmWo6qglpympqevuqusmpuSknuElo2lmI2RkZiUjZeVqJWfmKqkm7GmnqKruZ+vwKeksqWssLGqraumt6Ktt5aKoKiltp2JlqOZh6makJSdkqmymZqjq6CxlqKgnaCinKCloZWrp42TkoyHk5yclZCak5iRjpWFgaSZl5aOi5OTi4+GhH1niX50gnZ0h4txp2x6lJGTkoGBjZCQj52VoZaamKODiZaNcmmQd3GLeHd8empsZGNvZFVgWEBpW0hjYU9aK0Y9KychNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVVlleYGFjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKaWqaqktLaurqKwo62foLWxkI6sx73Fu7mroqaem6afsaijtqedqbSnqJGYrKKLh4mPm6iVrKSfmKadnZGUo5eomqiZlKaho5Cap5mhtbuoq5iZj417gZSMoZSKlZGVkJCTl6WQn5uqoJy2o56nq7enrsGuo7amr6+wrKmpsrigrryZkaWkpraikp6nn42pn42Sn6Osr5qgo7Cor5ejoJyjqp6enZyWq52SmaGblJCWqpmNmZmWkJaekYmgnZWUhZKMkI2Ui4B9ZouFdYZ1eYiDc5xqhZCUk5CJfIuWkpKXlKKTnpijhYmZiHtylnN6i39yfH9qb2RecGphW19YbWNQYGRQWjpHR0U+Mj09OC8rJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVVBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX19hYWJhYWFgYmJiZGJcW2OXlaSoo6+yrK6jqaatoKe1qpCQnaW0vK+traKjmnqdorGkpbGpl5y4pqOUmaqcjoaKiZyjkK6eopWnnqCRlpibrouplo+omaiMmKmPn7m2pKWYmoyIeYKUjJuTipWSlJCNkpeijZ6fqZ6fuKOAhK+1oq+vdaS9o7Kfd3mgqrG6lHWspJ6JgKp/ZFxidqCOpJ6El31uk7Oco6etqqNlnZ+Sc3mZlnCAmKiXbH+iqIplnKWckZeYloySnJGGnZqQlYOSh4+PkomEd2qOhnaGcHuGgYBhaYeKlJKLWnWUkGhoj49ze6aammZ7moeDeJhqhIuDb3mAa3FlX3ZwbGtoW2ZlYmJwU1w+Tk5OU0c+QFREOTEvHh8mNDozMTY2Nzg8Oz5AQUFGSEJHRklLTVRUVVldYGhmZ1dRSjxERzw4VVJbYGFiYF5gX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6CvsKyrqaWprqOmraSSlqu2sLKnm6umrJd0jJ2vn6irp5SXuZ+gj5yknZF/iYmbnoyrmaKUpqCcjZaRnoR1rY6IppqpkZekiJu6s6egmZeKiXV3k42Wk4qUkZCUjJCToI+boaeZnLKWgIybtZ2zjJKPu6egfqeieqKutoCOjqaeg4uGkLGqr4yKlqOaeYCLrIacnaGnqaeHlYWYd6WbeoebgZengoJ7nLJ6ioagl5mUmJaCkZeWhJqZYnmHkISOj5GKg21wjod5gHCAgYV/hnSGhJWReJZnknSgmnR9mYSinoiYf5OKhISZa46OhWx4e3FxZ2R4b2psalpla2pldFxfSVRMUUBFNS5aVFU3KSEwOT0+NzQzNTY4Ozo9Pj5AREk/SkVKS0dTWFtZW2FhaWZZUUg5RUs8PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mra6rqKygqLGmpqmlmZSuyL6xopenqbWej4SdrJynoqCNkL6emo2fmqCQfIaOmJeHqpuglJ6fkY2TiYZ/kKeMhqKdpJSYnoaeubCnnZuTjoVwdZCJlZCKlJCPm4yQkp+Sl6Gllp6rh5+0ibSarYrKh6qtiLeFjK+Cr6yCqY2lmI2dfaiPcnt3nI+nlmiVpHm0jJ+epqiSmMKBf6uImKFynoCapX2XhZWxgKF9oZOgkJiXgY6Tm4qYkYt8hZKGjZWSiYNtcpCFf3lxhoGEfIR1hIGWgI/FZn+ph4+ja56Do5yEmoCNjoaKmXGOk4Vod3R8d2hodXFoaGtdY3BtZ21YZ0ddUk0yRDQ2TmFjNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmptXFFFPUxNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUl6KfsKepqaaroKS4sKmqppqUoKOkq6SXpaq3o6+AoaecpZ6diZS9mZONoZKej3mElpaQhqqYmZqZoISPjHeam46ej4eepJyWmpiGorispJqcjIx+Ym2Pi5OQjZCNjZiMkZKgj5ShoZmhp36hp4etnaCWrY+enJ2RhYCgjaqthaONqZmMmn+jdYCZlGuCrHVNq3iHjZyRm6ingKmrfYOhe3qnaZ5/kmtnl4aXtomefm5gZFmDl3+Me2Roi3KZfXmVbF18lm1fU3CDXF9reYNgWWWCfYOAl3CnqmuDo25ypXCfhaBqZqBsW26LfGZaYIN/YldQb3dmbXRya2pvXWpwbWxpWGlPXlhGOUE0R0ReazQsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl5jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5adoLigqqSmrJGhtbyrrqKZmKCipayuoZ2utaOokqGgn6abmo6ZtJmQi5+MlYt1gZSSjIqmlZOXnZ1+koWFq6OHmo+KmKmZmpuRh6WwpqGVmoiJgGluiIiLj46Ki42SjJCSo4yUn6CcoaR/k4GPo6GUoHeclo+ng6Gnf4aoq4OleIp8hJp+onBzlIiWe56MeW2Hm4yZkJuomo+HnXuConN2pmaefnekX5h6fZJzom6Yt7S6dJOHgn+1qGSBxrh7cJW3i3GAmqRic6yrYH1pnbN+bnyGgo2Ci5hxf6NscqN0n4WBpGCdmLKVcXyXn7N0c1uesoNqYm90dnFpb1hqbHJyZl1pXmNMRD1ENlFBWXEzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1OUUBFX15bWlhgYHxkSEM4TFdVVmNhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLe1rq2gmqKdo6Omrpybsq6tk5ihmaGkmZqUn6ubi4iSeIuFcYCWjYqPoY+Rk52YfZCJjaigh5iOipGjlJybjIuoqKWej5eHhH5re4d+fY+Ng4uQkYmQlKCDl56gnaCei4l3nJiijJ9yoYuHqIibpY+Vpql9rYx+eqCZeqOTeIF0loiNnH2Vn4abjpmbpoaiZKF8iJaQm41snmiajW6amXuAi6d9cmh0q4Oeg3SqaJWaXZuFdoSdaKpqgLhmXKhwgZxglYxep3Z1h4l+nmiadYaTkpeOgJ9vmpBtp5lcqH54u2p9qVuOhF2zZ1xucnp4a2lccGp4eWNgZlhiQlFGTzdWQ1JvNUtaWl9PWkRAMTUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXVllZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniGOUm6u6srGsnqacnKmfnq6bnrGprJ2XpJqhn5iWlqGkmYaJjWqIgHJ7l4iLlpaEkJOYj3qKhJWjnIqUj4aLnpKdnYmOqKOgmoyRioCAaYCGeH+XjHuJjo6Ij5abf5Sin6Chk5hyaJ+Kn4+McJKMgamHmJ6hpp6me7Cto6K4l3ejs6KkgIiUeZ17qpp/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmn90qlpdb3uWi3ieYkx+enqFY3mXQkyeWaJqcnyObYCIhJl1m3iGibGzf4Cbk6d3gp1tcn2Ub5lyaqNdlXZIZWRhc3F+fm5mYGxpdntkZWJSX1ddVVdAWkVRaERTV1xiWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQzxVX2JaZmpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZsXmVnZmtkZmxpaGtpk5yBsK2ZhFNeoKazubOzqZqijJyrnJyplKGspaKoj5+enZqZlpihnZaIh4l3hoFveZWFkJuLfJCRlohyf4iSoJtzkZCBiJmVoZuFjaicmpWLi4p8g2yEhXGBoYx4ho2Ih5OZlnyTo6Ceo4ithn21hI6enHullnqpgZWcj4mfm3ynaHdtfpl0oXNxfJ6GmXCTg659pIOmnpmAo29eqGd1omNvpWGc05B8e5l4cnNjooaQfqNzpI92a5CzjGCCmIlzqrKovH93g21+vqaptF6cbn1xl25/cqJyXaRnc6ZhaKZtm9SafYWbb3h6l2ube3eXc26ppGdhZXlxgIRrZ2ZkbnV3Z2BjU1xmUVFiSVdKVGFXU1tlalxlUUZDS01KS0JLRThPQFFOWFNZT1NRYWZlalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7CrVFxLfqmvsbSws6ObmYWZqaChpI6lqKCYqYqamJiTmZOSoJiOh4Z7cH2EaH2Pg5SagXePjI6Ib36Fj5KSbJeTfImRkqSWg46qmpOSi4WJeoN2h4BugZ+Gd4CTh4iZopd7lKOkmp+Js6Gitot6rKekrqVwqICakIWAm5F7pICimYaYcp6Eo66vipeMf4ykjZWDraGUdrS1tcmhc5SKgZ5gnZepbXmVhqCbdaGHd6B+kpeLgW9MZqOScJuHc6R7enRhg4FrfqBrcWRfnHF9dJdpemmztbTGpnOYfnqda5ybq3WEm211eJhpmnt1mHJQRX20Xmp2a3mIZmpoYnR1cG5WXlRZaVBTaUpWTFlUVl1oa25WaFdOS0FKTUtISk9BUUtQZWNqbWV1c3N/eXxudYl7e1RQTmxeaFtraVJqaGlsZ2xmY2VgXF1cXmliZGlre19dZGhjamZvbGVpbGWhnIivpoRmP5Shs6uvr7aiopCAmKqio6WMpqednaaCm5eWjpeQj5yTjoiDeWp5h2WDjH+XoHl1jYeLgGeDhZGDjIWdjXqMi5Wmk4OXqZiMkYuBiXqAfYt5cJChhnmBloiJlqCVf5Slp5yWloRmbnicbKJkfHGld5uYcGemgJaLe6R6n5aDl3KedoGKlJaPuW6QiqJifZmhlYhtcmmqa3WgbW6mX5ppi5BoloealXWigH2aYIyGjXVviGJooGWefmmbdW9jZoiCbXKiWl9bYqFtXYmMbnt+c3JkpW13omRnp2iZc4yZb6JvU4mQb6BfZqhUi15UmG5tc2tygm1waWt5c2tvUllXV2daVG1KWU9dSVhpaXNqWWtWUVJFVlxMWFNhVWlrX3d0e31wfXxyg3t/c3aNgIR2XlFyYmdicGdQamhoa2xuaGRnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKSYpnpldG2Lp66kqbCxpp+LgJirnZ+mjaOhm6KigJaZk46aj4uYkI6Ke4ZxgIhoi4t8mJtzdIh8j3pjgYaUiYmVmYJ8iIeWqJGBoqyRhpCKgop+gICOc2mPpYR9hpSOiZigjoiTqqadiaZ4lZt+pYiWjLKYnpCCr5efpXeUh3mpdKWPhJpupKKMkoSMg7tufaWvg4aGhpOVnJ98pXpyqJWglmaefm+rY5aKlZJ4qGypooGJdoiDd6qRpodqkbBrdrOMqWuKhm1tn56SlWB+q4uqdn5/jKWedp99hKSVnaBqm4h3rGefrYy2dHe+jaSTWYOmjathdXJ0cXx0cWNqfm5obFNXW1ZhYl1rTV1SXUpebW52YFtxWVxgW2Z0ZW5vcWJxdGB3en55cnmDc4R/gXt7jIGCgHZieGRjbXNkUmtnaG9scmpmaWFgXlxia2JtbHpvXFxiaWJsandtZ2xuYpWlqp2BgJ6klqmqnainrqSZiYOYq5qfpYqbpZ2pnYWMmo+HnJGFko2MjXSGeoiEcI2EfpiTdHSFcpKDbH+LkYeGk499e4KFmKaOf6WmjoGOiYWVdoKHkm9si6mAg4uUjomcn4mMlKqjoI+AdZSXiH6BeZSuo3+Bm3GPhXiPioN+e3KnjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3t9iWuMhVt5eXJ6cGhufpKJcX91gY+Uk3GGhIJljH9egX+Ld3VzlHVveW5uh22EhV52aHiOZYCAhY2pm310fJZqiYhwgXZ9hnZtbWeMc3l7mHiFXGtYeY9pbnhycm94eHBdbIZuaWZWW2BXXGZrZFZiVV9RX3B4eGxrdmZqa2t2fXFydHNhb3VidHuBeHV6g3WAgX+BeYuFg317bX9sZHhuXlduZ2h1a3hqaWplXGBaY2pmbHF1blpbYmxkbGx5bmhsb2GNlLiopouhopqmpJmlnKujoYSEmKySnqGJm6eaqZiDgZuLf5aTh46KiY1yg3yPfX6PhXuXjnNyg3CVhXt9kouGhpCFeH2AhpmkjnynoYuGkJCFloOGjph3coWphY6RnZCInp6IjJuon6Cqg4mOlZp+fomWraiPkqaPd2+ckIJ5kW9+qIVwfZVxa3B9gZ+Mf5OOjGhtXYOLjJybno5zlYuIcXRrgnZ0gVlyboaRgX1+jGpdamR7hYSJgGBpeHqbe4KLgnWBhYJnd4qGa2FwcYF2XnKKgYiPppWFZYyPg253i4Rxho96cGZnZXuDepZbXGpnbnZbe3l4dW5zc4JmXG2Ka2thWVpfWllscVxfYVpfXWZ0fnp0cHRja2trfH1ze3h0ZG11aG18fnZ6fHt6eoCAfm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VubGdzeW9oam1gi4uqsKGQo6Ganp6Ynpmoo6N+g5mtjaCViJyikaWVf3uYhX2SmYmIhoeKc32BjHaFi4GElopxb4BymIaEfpKDhIaKgXqAg4uboJCCp6GHeI6YiZWLi5yXhIN6rIKRl5mUip6dh4ihq5+ioqOLiJObnKOZlqqhp6agkpuHlY17d42OhKd+f5KRkpOcsqablZ6QjbKTl4SljIyVm5+JkJuCiJGKa3yOd3hlgoaQi3yJnYSHi5CIiICEhJB3fHl0maGIhomeioSUfn2KgIB1b3OEgn53hoaKj6aQg4WNh4ONkIx9iIyKkYN3bIKEfXqZanJoYXSKcH16d3dwd3SBXV5vhmhuXl5aXV1UaHJWY1xcYmxodXx8c29wZGtraYB8bnl/cWpwcGxngXtygoB4f31/hHttgoyGfHp4fH16g3lOZHdqcm1wemVrZWNiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZIyHnbmelqKhmJWYmZWZpKGefICaq46ejYafnIueln15lIN7jpmJhoSEhm54gIBygYh+iZSEbWt+epeHhIOQf4CGhIZ9h4SOm52Sh6ufhHKLkIaTkYudkX2Ne6qEjZKYlo+cloeGm6afopqdhoKSmpmYkJqmoKWdnZCWf4+JdXyHjoSle3yOkJGGmKqinpOdj42qjZGAnYyJk5qego6XfoaOg294hnJ1YX+Dj4Z1i5iBg4+ChoV+hYSUbnl1dJKiiouFmoSEjHN/iHx8cnJ7h4N6eIqOg5Kmj4WDjoGDiomKd4aJiox9b2x+gXxuaGxtaF96f2h9e3Z1dnV7d1xfcH1udF9jW11eUWduVGVbXmJraXZ6fnFsbWRrameBgGxzgWxsdW95cIV5boeAdoKAfoV2cYKNiH57e3x/e4KKYGl7anVoaYJkamNgaVxkdWhvYnRtbFVjcXllcHp7c2VqbWyLiZ63mqGjn5KRlpiLmp+fnnt4nqeRm4qGpJOLmJl5eo2FfImRg4yCgoJue394c4GFfYuRfWtofYKYiYCHjXx+hoSHfY+BkJubkYmonIBwjIuMk4ehooqFjH2okYiQkpiUlpN4jKOfoJ2WmX+AkJqYkoyao6GkmpeRmn2MhHiAg46GoH9+jIyPfJikoqKTmZCPpoyOgJqRiZOXm36Tkn6HjoF0dIJwdmB+gI2GcYqVfIiMcYx/goWGjmh3cXiLmJGPfpd9h4pygYZ7fHF4eoqEenmQi4KVpZOLhZB7hoaHhXaChImIe2ZyfH95e3FsamZffnNofHV2dH1zgGpeYHN2cHdkY1lfXlJraVRkWV9haGp2eYFxZmtkbGhlgIFrbX5ob3FsfniHemuMgXOBgX6BdHaCjYZ/fHp/gX1/j2pygm1zaWKHaGxiX3FWdG9tbmB4aG1XanR2Y3V6e3Jiam95iY2espKlpZyOkJiPhp2gm518dqWhjpd/jKKKiJqWeHuGh36DiX+IgoF/cX97dHaChX6KkXhnY32Gl4qBiYx5fYCNg3mWgZWYlo2WoJt+cIyCkZSGppuHjImDppWFk4uXmJOSd5GdoKCXk5Z5fo6Yl46Wmp2knZiSlJp4joSCd4SWjZ1+gYmNjHKXo5+ik5mOj6GLioKWmIOSlpl+mIx8iI2AdnF9bnpkgHyKhXCGk3+QgmyHgoGAiYRldW97hpKXjHyTd4qIe3+FfHtxfneIhXmEj4mKl6KVgYOLdoiEgoJ3fIKKhndgeXh9dH94Z2xlYX9pandzdHZ9cXxiY2FzbnVybWFaYV5bbGVSY1hhYWlsdnmGcWNqY21laH2DbGh1aGxwaYB9gnltkIZxgISDf3R8g4yBgH56goN+fJBtdohzdG5limxqYmN1VoRpcW5geGdsYmp2cGZ5fHpxX3FshoWPnK6XpqiejY2Xh4afk5eZfXiqnIqZepaci4yYkHl8gYx+fIN8gIKBeHR5enR9gIR/iYuAZF59i5WHfoSGdX1+in99mISXlJeMpKKYf3OHe5SSiqePjI6Kk6GSg5GQlZiRi4GPmJ+ako+Qc3+NkpSJnZ2eppiYjZWVcoyNiWuFl4+ZeoeIkIlvl56bpJOVio2ei4aBkpx/kpKVh5mIfIqJgXlxemt1bHx+i35thZKClHhwgoN9fop/ZHJpe4CWl4R+jXOPiIN4hn12d398hYB8goyEjJSkj3iEgnSJh32AdHaBiYRvYXt1enF9b2JvY2R7Ym5vdnN4d3N0YXVgb2x1bW9cXF9eXmteUF1YY2JpbXR7iGtfamZqY2h3iG5mbGhqbGiBfXt3bpCIc4GEhH10gYaJe4N9eoGEfX2OcnqKeHhubIdqaF9pcmKHaHFvZXZnbmxheWlrfXt4cGF3bYuAmZmqoKOonYqKkYaLnouVmH53rpmNl32ek5CWlIh3fnuKfXuAdnh/gHB0dHtvhX2BgIp/fGFbfo+Shn+Dg3N6gId6j5KIkpGck6WclYJ9gn2Oi5KkiY6KjZibjYaRmJOWj4qIjJKdk4+LjG6Dj4+RiJ6ZoqGXlomWkG2HmINmhZiOk3qIhJCKcJWalKOSkomLmYyCf5CefZKPkoyZjnuKhIdzcnVrcG51e4t0boaQjpJxdYB7gICHe2RwbHh9mZN9hIh0kIqAc4d5bn99gIV7hYuIhIyVqIx6h3x+i4V3fnFwgYaEZGl5dHVwfGJfcGFrdF5want5eWxzcGV4XW5sc21yWVpfX2JrWlBXWGVjZ3FxfodmXWloZ2JncY1uZGlnZGlogXp3dW+OhXSBgoN7dYKIhXiFfHiDhXqAiXd/i3t6cniDamtfcGh0gGpyb21xZ29sZXxjboB6d3Fsd3eKfqKXoaigppuHjIqCkJ2Hk511gaqVk46HoIyVk5CAdHx2hXh5f3Jze4VrcnB6bYp2gIGHbnFbWH6RjYh/f393dYGAf6CGkYuSnZihlZh4ioCBjYmcnoqPhpKYloWJlZmPlouLjY2NnYqNj4NtiYuQkIqdlqGcmJWFmIdpg6KCZoWdipB+i4OLgXeTmJKfkZCJiZWNf36PmHyRjY+NmpF8ioCCbnVwbG1vcHuFaXODjpiKcXeAdIGHgnhmcm51gZmOe4iEepOReXaHc2+Ie4WLeoqFgoiOm6OHe4N1got/d3lubIGEgl5zdHJwcHlaXnBgcGpeb2p8e3FtbWpsdmBwb2pxbVpYYWFiblhRVFpmZ2N2b4SCYl1rbWRiZmuSbmBmZl9na4F1cnNwi4B1f4OAeHWAi4B5hX93h4Z3g4V8h4x/e3aKf2pxY3xjhnxucWx0amhvbHZ4X3F/eXx0dXSAgn6klZqtnqaWhY2Ef5eUg5CgdYuglJOGi5qMlY6LenJ4dIJwcoVzcXWIa29tdW2IdoN+gG1uVVGBq5WHgnd/d3ODeoKggpKCk5OYnJOaeJJ7g42TpJqTjomVmZKFh5eZjJSLiY+PiJ6Ej4p8couFiY6InJqfm5aUf5N9Z4SbhmeFoIeRg5GCiXGDkZiQm46PjIyPjXh7kpB6jouMkpaMfIh8gGt2am5rbGx7fmF6fo6Wgnd6gHeCjHx5Z3Nsc4eVin6IhnuTj3F5g292jHqJi3qIfYGLkJ6dhHx7d4KLfXZwamyCg3pheHBubHJ0Vl5vYnJgX2xueXFocGZnc3RocGthd2VdVmZgYHJTUU5cZmVeeXCIfF9caHJiYmVmkmpfaGRbZ3B+cGtxdIp9dnyFgHR1fox5e4aBeIiDc4aFfo2NhHx5lXhmcmqDYIh9b29remBqbnR/dV90fXmGeHRzhXx4oI+ZsJyljoKKf4Oah4CMnn+LmpSPhYiYjo6PhHd0dnOAcG+Fc3Bxg29qaXZug259fW11c1JNgt/IktaTfHB1g3aEoIOTd5WSmZyRmXuUc4WQn6GTk5KKkpuUhn6WlomNjYiRjIicfo6Ad3qMfoiMipycnZuVk3mMdWaIkYZsiKKEkYiXgoVjjJGZj5WKl4uNiotxepSIe46IipORiXmFfH5se2Vyb2treXlcgHmQjoB7fX5+hY16emhyanOKj4mChYR8lIprfX5uf4t+i4Z8hHmBjpSamop8dniDkHhybGdxgIVua3VvaGp0bVJeb2RwWV9rcXdna2tiZnhyb3BjX3dgYFZrX152UE5LYWdjXXpwiXRcXGV2YGFlZY9jYWZiWGlzc21qcXaMfXR5hoJ1dn6Lc4CGf3qJfnKJh4GRi4h8fph2ZXNufWWIfm9wa4BabG55eXNhdnt7jXZyd4p3eZ+Lm6+boJCChXeIlX59ip2HhqCRj4WMmISTjoeBdHdweXFuhG9tbn5yZGV4cH1ten1qaGtjpJrB3K7voXNsdoR2haOGkm+XkZahlpyBknKFi6OXiY6Wi5CdloOBlZCFiY+AkYqJln6He3V/iXiGhI2cm5iZjo91iXVthYiKfYqig5CJnISFXouTmIyPiY6KioSJbXuWgX2IhYmRj4Z2hX19a31keHVpbnhzWIh6koeFeX6Af4SLfnhlcml/iY6JgoJ/i5aFa4F1bYeQgY+Ef4J5f4+Vk5iQdXN3iI11c3BndnqEY3VucGJpdmdRYHFnbFVfbnR5YXJkX2h9cHJuWmNyYWJWbllceE5NTGRnYl53c4ltXFxkeV5gZGWFYGNjXllqcmtua3J3jH50d4SBeHd7iXGDhH1+iHt0i4mHloaMf36Xc2h1cXlti3pudHCAV3F6dnlxZXh5h4xpdoCJcn+ch5mnnKOShX1wjJR4eYudhIWhjY58lo2AmoiEe3N3cHNqb4FraW18dV5heHd7cXV7Z2BkfOvatcnD3IhzbHSBd4ubiY5qmZCQnpaUgYlxhYmgjoWLlouMmJR8jpOIg4mPe5CLhY+Bf3Z4g4Ryh4KTm5eUl4aMdYZ+b4SBiYaYoYKTi56DiWGDlI+HioaJjYeBh2p9lIB9g4SJjo2CcYZ+f3F3aHZyaXN2a1qMfJKDhXx/g4CDiYJ1YXNriIGPioF+fpGQfW2Ba3iFjoWRg3yBfH+QkpCWiG5xeYyGdWxwa3N5gmB1am5da3ZfUWRxaWZTYHB2dGBwYF1ognFzaVdnaGJpWG1WW3VMS0xmZ19icnOFaVtcZXleXmRne2FkX11Za25mb2lzeIp+c3OBfnp2eodzhYN8gId2d4qGjpmBjIJ7k3Vsd3V5eJN0bnh7fFh6hnGAb2d5d5KCZHaGhXGKloWZoZmiiodzb5OLcneOnH6LmomJfJ9/hJp/gXhyc25vZHJ+aGZsd3hbX3l7e3FxgGlgZmF/1baOkKZ4bnF3fHGTkY2Ha5qPiZyTjIZ7aYeLmYaBkpGGh5iOfI2NgYGKjXuPjX2IhHp0eoN7cYeBlpqOk5SBiHSChXWCf4qSnJ2FlI6ffohhf5OIhYmEiY1/gINnfZGAfn+CjI6Qfm2CfIJ0a213dXR2dWpijYGPf4R9fIR/hIh+b19ycIR7joyBfH6QiHlwg2Z5goqGi4J7hH1/k46PkoRub3mMfnVtb2tse35kaWxqWW52WlJpcmliUWJyd2xiZV5aaoNtc2JbZ19kbF9uVVtwTkhPZ2VcZ25xgGxbW2NzYFxjbHdkZV1dWmtsYm1qdHeGf3Fwf3t9dHiGeIWCfYCHdXmJgZKWfImGdomBcHd5e4STb218gXdeg390gW1penSUc2dzh3xykpGDmp6an4aIdnaVfm12lJd+iJGEio6afYyadn12cW9samF1fGZiaXV6Wl93fHptcX9lY2dnV52PXnFzlrzEhHZxlImQfnOYjIeclI2IdGuIj5WAe5SMgYSbjHyLhn18iYx/lIh1iYV1dn2BcXWHgp6VhpWPgoJxfod0g3uJl5yWhpONnICIZX2Sg4CGg4mJcoJ+Z32Le3l/f4eLj31pgH2DdmZveXhzdnJrao2FioGJfniCgISDf2pecXd6fYyJhXuAj39+coBoeIKGioSDeIN7gJeMj4x9bmx6iX13dG9paH13ZV5yY1hwc1NUbnNpYk5ndHhmYF5dWG6Ab3NZZWJdam1gcE9ZbFJEVGhhWmtubXtvWltebGNaY3B2ZGdcXWBramNsaXN2gYNxbn57f3R1g3qEgnyBhXZ+iYGWkXiDinSBiHN5eX+OkG9vfIFxaYF5en5tbXx2lmtqeIR0a5SNhZ+Xn5mFiG59jHZqeJiPf4KKgpWYinqPlm96c3FsamRgdHpoX2Vye1phcnx5ZnB6YWRkjrGyd0piWqTZ0Jdye5GLkXh/loyFmpKNhm9shpKRenmTh4GEmYp8h394eImKhJaAb4qHcXR9e2p5hoSmkYSTjYN+bX2CdoJ4hZqYk4uSj5SFh296koR+g4OJg2+BeGiAhXhyf3+Diod8ZX1+g3VjcHOAaHhwbnSYjYWCiXp2eICEeYFqW3B8coCHhIl9hYh6iHKAbXCDho2Dg3KDeICYjI2Ed21ufoR/d3plaGp+cmFaeFpZcm1OWHJzZmBKbXZ0YV5bW1l1fXJvV2ddZmpwX29OV2lSP1lnX1twamd5cVxaWWtlWWNxeV9oXV5lbGhmbGlxd3+Hb21/fYB1cIF7gIF/gn92gYWJl4pxgo1xe4Z9enqElIx1anp/a29+dH99b3J8e5Rwb4B/eGaSioKhmJySgoVnh4RwaHqXiX5/hYKZioF8jY1peHJrbGZfYW95bV9ib3lcZGyDeWBwdl9lZdXrvosyOj6LjoByeYWIjo12hJiNf5OOjX9ubIWNjHV9j3+FgpWJfIN4bnaHhYOXd26IhGx1e3RmeYODqIyDj4yDfW1/dHWDeYWaj4uPkZKMi4Z+e5KHeYCEjYNsgHNpf354bXx7gYqDeGJ5hIFxZHFpfm10cXSBm4uAf4R9c3V+gHOAb1trfXR4iYKKe4Z/fIh4enFsiIKOgolxgXh/lYqKfnRtanaAgHV1XGlpeHFZV31TWnFlTFtzcmVbSnB3b11bWllddH50aFliW2dlbmJpTVdmUT1eZl1ddmZfdHBbWVVvZFplcXlaaF5gZ21naWxpcHh9jmxqgoR/eW6Ae32Af4J6dYKBjJOFcICLbnd+gXt7iJOJf2h7fmt0fHKGe3N3fX+MeniEfnxrjIyDm52WjIGAbI1+a2l/j417fn+DlIJ/fYqIa3VxZ2hjW2Jnc29fYWx0YWhwiXlgc3ReY2SboJBuXDVZr7V1aoCJfZKGdoaYh3WPjIp3cGyFg4d0eYl4iX2TiHp/c2d2iH59l29whn1od3luZXqIhKWHgYeNin5ufnZ+gHyLl4aBk5CXiIuEiXyPiXJ8fYV8aX5ta4B7emp6doKHgHJgd4F+cWRyZ3WCbXV7hZWRgXyBfm93eXx0fm1XbX52c4qBhneHdYGJendzbomAjn+Dcn58fZKIiHpubWltgoF1bl1oZnRyUlt7TlxxXE9ccm9kVktzeGpXWVlaYXGAdGBdXWBmZGhoZk5aaE5BYWRbYHZhXHVtWFhTdGFaZG5yV2peYmhrZ21saXB3fJNsaYSKfX1wfn57gX+CeneAgImLhHJ7h29xd4R/e4qNj4NqfntueHl3ind9eICCh3+Df356bYWMiJijjYSDe3aMeWtthImSeX17gpGAgH2Kg3BxcGNmXllnX3BwYGBocGZqb4p0YHNvW2FkaXZ7f76cpqPIuHKFg3OUfXiHlIR0kY2IcnNwhHuDc3WGdIh3lIl5eXFjd4Z5gJNpcoR1Znd2Y2p8g4iegoB/jo59cn5zg3l/kI6Cd5WNlI+Hgoh6iYlteXl+dWh6aWx/eXNpenaAg31oYHeHfmpqc2h7gGl2gYyQlH56fX1xe3Z7dH1hVXV8cnOJg4J8gnCGind4cHCDgot9fHh9fHWNhYJ2aHFobIiCcnBdaGN0b0tldkxeb1VUWnNtYlFPdHhhUldYXGFwgnNbYFxoZWRjamRQW3FJRGRhXGRxXlx3aFVXVndeXGVuaFZsXmFqZ2Vvb2hwd3uTbmmIi3l+c3t+eYKBgnx2fYOIhoNwdoNzbXeDg36Ji5R/cIB8eHl6gYt0g3h/gYGChHmAdm9+iYubnoh9hnp3h3xodIaNkXp/f3yJhoR2j4Bnb21fZFxYZVltc2FgYXFsbGiJbV9zaVleZG2Ad6naqseGh7JyinhwjXV7h5CBepSKgHV0dX53gHBxfm2FdJSGeHVsYHqBeYiOZnGDb2d1blttfYGQk4CBeZKSfXh7bYZ1f4+Kg3OVipCOh4WFe3+FbXV2f25od2ZtfHZtand2f398YWJ4hnpodXVjfntndIaOjJV7dIB1cYB6fGx/WVZyfW90g4Z/f3hriIZzeGt1f4OCfHl8d3tyioB8c2d0ZW2LhG10W2tgdmZIbm9MW2NYV1Z4bWJQU3R2WFBVWF5gcYRvXGBibGRjXm5iVF1yR0NmX11maF5ae2JSVlx1W1tna2FWa19hbmZmbHFocHZ4j3Rrjo11f3Z4fXeBg4F7dH2DiIiDb3GAdXF1foaCiY2Ke3d/eIR8fYWHeId8fYF+hIB7fnN2eYyOn4yJeol3dYN5Xn6Gmo15h4N0hoaEd4l7Ym5sW2JbW2FWanRjYFtob3Bnh3FgcWZXXWNrf3zKzoe5omttbottcoVyfYWLf3uShXp5dHl1dXtqbXVjhHaSgndvZ198gXmLiWVxgWpqcWNYbXuGnImDgnOXlHd+e22HcICJioZwlo6QiIWLg3p5fnFxb31naHJjbnhyamxxd318el1leYB3aXV5ZoJ2Z3SHjI2UfHKHam5+gHltfF1YcH1tc3+KfIFubol/cHZnd36Afn91e3F6c4Z7eXFlcmFujIJsc1hrX3hdSW9sTVdWX1RVfGthT1R1clFRVFZeYnSFaFxgamllYlluYVhjcEdBaF1gZl5dVnteT1ZlcFpbamhdV2dgX3JmamhyaHFzdod4bpWKdH97d355g4eAdXN/hoWOgnBwe3h3dXmHhYeMhnp8f3WLfn2GhISHf35+fYd/fHh1eXeRk59+jH2LbnWAeWSDiJeGdJKKb4WFgnqDdGNuallfW11dVGdzZWBZZHJyZ4FyYWtkV1tgaX94vq57n7duYnOHaHR8cnqDh3t+jYB4eHN3b3t2ZWpuYYd1joFzamJffnh5ioNmcH1oamtbV294iqOBhX9xmZNxgHh0gWx/gY+GcpSHjIeDiIV9eXRyb2h5YWptYW12a2drbHp3endbZ318eGVzfm6EdGV1ho2GlX5wi2ZreoN0bHRiW257a3R8i3qBZnSGfW1waHV+d3x9cXtreXuBeXdwZWxhbYl+bW5Wa2B4VktrbE9ST2lOWXxnYk5VdWtNUFRVXmd2g2ZdYW9nZmFXaV1cbGlKRWpaYmRXWVV5Wk5XbmpZXWxlXFllY150ZmxkcmdzcHSBeHCZhXaAf3h/fIWHfXVzgoeAlYJuc3l7e3NyhYeIiIR5gX12j399hImOg4GDe36Lg3t3fHd3mp2XeoqDh2l2fnxshIWUgHKPgnGGgn6Cf29mbGZXXVtcW1RkcGVfWGNydWl2b2RlYldcXGiAcG9ygHOJZWV5f2p0dnNzg4V4gYR6d3R1bmt6cGJna2eGdI2EbmZeX3xve4l9aG13ZmlkVldycI2nfIR8dpaQc3xye3lsenqPhHaXe4eGgoaDfXVwcm1ndV1taV9tdWRnZml6b3tyWWeBdnVncIB4gnVhd4WLfJSBbotqbXqBcWVyZWBseWdydol6fWF1g3Zpa3F1enB5d3J8Zn1+fnh2bmNlYW2GfG1rVmpicVRMamtQTE5wSF57ZWFNVXRkS05TV2Fqd35lXWdyaGVfVmNXYnBdS0trWGNhVFNUc1ZMWXZlWl9rYFxaY2Vfd2dtYnBpc29xfnV0mYF4gIB4gH6FhHp9doKDfpiFbnJ0fHp0cYWFj4KAeot1dJCAfYGUjoCFhHx+jIZ6foB2e6OminmIhoVsdXx7dYSCjHpvhXN6hX2Cg3VuamllVl1bW1pTY25lW1hhdHtqaW1oYGJXX1ppgGlrb4BnbGFoenlrdHR0b4aCe4B9dnVuemlrempfZW5ogXeQhGdlWGJ3aX6Hem9pb2dmXVVYb2iPp3aBenyRjnh1b35ucnR4jn53lHSFgn+FiHZqcnZnaG9cbWVebnNfZ2JqeGh7bVttg3N0am+Afnl3YHaEhHiPhXOIcXB5f3FjcGhbbnZkcHOHe3hhcoBwZ2l4c3Frd3Z0dmODe353dXBjY2Nse3xra1VpYmdUS21pUEdSbEVheGVhTVRyXUtNVVlka3d6ZV9tcGlkXFZfVW9uVklTaFhmXldMVGtUS1x6X1tfa11dW2JlYHpobGFvb3Vub3d1epd9doCBeYB/h4Z6eXqDfYGThHF0dH55dnSFiJB9gH2QbHOVgXuCn4V/h32AfoaCgIp7doSsn4B6iIeEbHKCeXaBgIJ0bodvfYB0ioBqb25kZFhfWlpbVWJqZ1taX3WCaV5ubFxhVlxca4FlcnR9aWpdbHd2Z3R3cm6HfH5+enZzbHpoanhmXWRyZ3p3koFjY1Rkb2eChHd2ZmhqYVdWWWhkkKdufniAi456cHB8ZnhueYp6do5xg31+f4ZuZHZzZGhoXWxiXnBvW2debXVlemlddIBvcmtxe351dWF0hYp7h4eAf3dydX50YXBsWXByYnFxhHt1ZHKAbGBsem9qaHp3dHFlhHR5eXVxZGFkbHJ9amxUaV5eVUx0Y1FHV2JHY3ZlYEtUcFhKTVhYZ2t2emRlbXBmY1pYXVh2ZlNJXGNYaFhYSFZkUEhieVtdYGxbXlxiZF6AaWpfb3R4bm9udoOXeXKBgH1/iYuGfnV2hniGjH10dXWBeXp6goyOfX6EiWp0loF7ip19foV5gHt+fIaIc3GProx8e4aQfmZxiHp0fX12cm+GbXt+bY96YnBvYmVdZVZaWVdjZmtgXV1zhmlZcW5bXlhaXGx7Y3F3dm1jW21zdGh1dnFthXl/gXl3bm90ZWl1ZVtndGZ2dpF6X11TZWZqgoFzfWFjaVxVWF5iZJClaHl0g4aQeGxueWd3bHuDeXSIcoB4e3h/aGV2bWBmYV9qYF51a1llXW9uYnpmW3h8a25ucHd5dHRkcoOSf4eCiHp2b3F8cmF3Y1pub2FwcYF7c2VxgGRebXZpY2Z4enNsbYF0c3xycWJeZW1ufWVpVGhZWlVOeWBSS1pZSGN0Y2BJVG1USk1aVmlscntjbGxzY2FZWlthd1xTSmNdWGlTVkdYYE5HanZYX2JtW1tfYmNdhWloYW54eWxvanaBkHhtgn6AgpKIhIF2dYl0i4Z0cXZ2gXd8fX6MkIB+k35weJaDfZmSeYCAeHl+f3OIg3NwmqJ7e4CJlXlkdYh5c3l2a3Nwf2x5fHCRcl5wb2FnYmxUW1pXaGNtZlxccolmU3JuW1lYWGBsdmRqdWpqX1ttdHFtdHR0a4Z9f4B8d29vbGVpcWNba3JkdHaPc1xWU2RgcX9+cYJcYWNeU1phXGSTn2VycYSDkHRranlsbm95eXpxgHZ/cnl6emRmdWdeYlthaFxed2lXYl5waGF4YVt7dmpqcm93dHN0aXCBlIOGfoR2cmpwfG1ldldbam1icHKAenNlb35bYG9xYl5pb3tra3N9cnB3a3BgW2VrbXthZ1RnVVhSUXdcU1BZUkhjc2JgR1ZsUklQWlVra2t8ZW1vcWFbWlhZbHBXUk9mV1ZoU1RGWVxPSXJ1WWBkbWNYYWBhXoxqY2RteXhrb2l1eYZ7a4R9gIWZfIKEeX2IbY+GcW93enx0goJ9i4+DgpZ0eIKThoGfiXWBf4F0f4Jwh4J1b6KXdHuGi4d7ZneLb258cGZ4cXtsc3ZzjWtedG5hZ2ZrU15cVmhibGxbXHGMZE5vbl1WWFVnaXRoY3RlZV1abnVucHV1emuIfYB9iHeQc2Nla25hXG5tY3N4h2taVFZiY3d8fHCFXGNfY1RaYFpjlpVjbnCDhIpzamd5bmVydXF6a3l0dW56fnVfZnNjW15XYmRZYXVmVl9hbWNhcV1dfm9oaXNxc3B1dWtshJOBiXuFcXJmbntvcW5TWmVqZXFzgHZzYmx2VWJxa1tebmR7ZGt1fHJycmptYFljaWp4XmZUZVVWUFVvWFFXVFBIZXJfYUZYa09JWFRWbWhkfGlrd2phV1xVW3RkU1JWaFFYZVNTSFlaUE54d1tgZmxpWmJgXl6PbmJma3l1bm5pdnZ/fm2EgH6Gl3t/h4GJfmuTiHJndIB7dYCDfomPf4uTcn2KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYt3eG57jWBkfHFneXN5bW1xdoNnZHxtY2ZnaFNgX1VnYGxvXF5ujmhNaW1gVVZTb2ZzbGV4ZGVdWXF1bXJ7eHNtiXyBd5x7emxiZWxtXmBuamVweX5nWlZYX2x4e3tvg19iXmhWWWBYZJyIYmtxgYZ8d2tqdmxbdXBqeWl1cm1ue4ByWGpuXlldVmJkWGVxZFRfYmliYm1aYH5rZmtzdW5td3ZraIWMf4l6h21xZm97bHFsYlhfaGhvc4Bzc15pbVNlcGRVYm5heGJvdXt1am9sal9YYGZodV1lVmJWU09ZZ1NPXU9PSGVvXWNHWmpOSmBLWG1kX3hobn1kYFVeVF10W1RSX2ZOXGFUU0pbWVFadnZdX2ZtaFhiYVtejnFjZ2p3cXNtZ3ZzeYNzgoN7iI5+fIqIjnlukIp0bHOBc39/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2Ojo6Njo6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6OjY2NjY2NjY2NjY6Ojo6Ojo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCS5KamZmZmZxbQURERERDWGhnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIaCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTM/k56cnJycn1IxNTU1NTRNYV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmHh4iIiIeOkJCQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaNjo6Ojo6OiIaGhoWFhYeJiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkZKRiYeOipCSk5GLko+MjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyMjI2NjY2Ojo6Ojo6OjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoWOh4iNiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCQiIyFho+JjJCPj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkJCIjIeIjIiOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMkIiNh4WMiI+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2PjI+Mi42Mjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Pjo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5OUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlZWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKSlI+OlJOVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkpGRkpKTfIaUkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSko9+j5KRk4hzjJORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCQkHR2kJGQeHSKkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+RfGh9kYl1domQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6OjpCAYmqKfmx0iI+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjndeamZpY2yKjo2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLiouGZG9tW2lya4GGg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d29jcW9hanNxZWhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoY2VrbnNwcnVsY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXllcYGJjbW9wcG1aWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTU9faGZsbm1nZVFQU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OT0xMVmRtZmptbWpnXFNPT1BRT05OT05PUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0dHT1VgaG5obGxrampoZF9WT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVFU15iZmhqbWxzcGppamxramZYSkpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj8/TVleam1sbnlzampsZlxSTEVFRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7OztHSj5HWWpvd3BraVlHREFFRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs+PTo7RFhtbF9IQT5BQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk6Ozo3N1NjPTc4PDw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT49PT07RVk5Ozw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9APF1uQD5ERT8/QTxFXD09PTs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXZIODs6PT1BPEphPDw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw9PUlMRkZ2d003ODg6Oz4/V2lBOzw8Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/eXx3Vjw9Pz09PkZqdU06PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoKEg4ODgH1dPkBDQEA9SnN8WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2EdUxBQ0VAPz5ZfIBdP0NFSUpJSU1NS0VDRkZHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVxQkRFRENXdYaHh35YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhGSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIpsQUFWdIeJh4eHiINXSExNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3Z3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINWbISHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSkhISEdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpVgYOEhIKChYaGhIKGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDg4SFhYaIiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJioyMi4qJiouMiVQ6ODY1Njc2NjY0NTc3MzU2ODo4NzY1NjU2NzY3Nzg6Njc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BPUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIKDg4ODg4WJi4qJiYqKioqLiYqKgUc2NzY0Njg4NzQ1Nzg1Njc2OTk3NjY3NjU6OTo7Ojs4OTg5ODc3Nzk6OTg4Njg2ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhISGiYqKiIeIiIiKiouKiYmMej45ODg7PD0+OTo6PDk6Ozk6Ozo5OTs6OT09PT47Ozw9Oj47OTs7PDs8PDk6PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXN1eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUBCPkBCQEA+PT0+QD8+P0A/QD09P0I/QEE/QT89QEBAPj9BPT48Ozo7OTk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t9fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUJAQENFQ0JAQkNCP0BESEVDRUNFRUFGRUZERUZEQEI/PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyLioqIVkhNTE1LTkpJS0lJSkpJRUNERkdGRENFRkRCSElLSEdHRkhHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE5QTkxOS0pMSklJSEpGREZISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hHR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7PD06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1yTlJPTkxMTExKSEdFSUlESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dIRkNCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4tfUlJQTU5NS0pHRUJHSkdMSkZLTktLSkpMTUxPUE5ISUtMT1FQUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkFCQlxvcnd4eXp6eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxYVlJSVFNPTEtKREVGS09OT1dVUVBPUlNTTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSUpEREVFQkRDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQkdWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hXVWthRVJRUVBJOztSVFJgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTlJQUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0ZGRT8/QUFFQUNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6eXp7enp8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKi3pucFhaXFtSU1JWVlRbWnWDWVV9kGBcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTlBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVRVVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlNVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlRkVX9SUVFOS1JUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXZ1c3N3enp7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM9Q0lHVkBITkxHXWlQSEZPRkRFRklHSENESEdIS0dEQkFEQE5RTVJkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgmtNRz9AOjs+QEA/Pz5qUUthRUZISUVCP0dMTkdNUVVJQkU/Pzw9PD09Pz0/QUNDQD88PUI+Sk1HVW50dHVzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PzxCSD9cc3R1dnV2eHp8fHx9fHx9fX1+fH59fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZGSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FXUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxCPWVzc3Z3d3l6e319fHx7fH19fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aWE1MVFRTUFFVT0xSU1RXWFRUWFFMV1laVlhYVlhZXVdXWGhza11WYXNrYWFfXmRhX15ZVFFOTk5MSUhKS0lJRkNRUFNbV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NTc1Nzg1OTlHbXJ0eHh5e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1RWWFhZU1VUTEtUVlVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTE9SUk9NTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz88Ojc4NzY1OTk2NzY3NVdwcHR3eXp7fH19fX58fX18fX19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF1SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMSk9SUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9ydXh4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0lGTE1QTUcvRV9SPjM/PmpvYVJSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR2ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydXl7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTUxLSTw5ODc7P0A+PD1BQEI9PkVIR0NGRklHSklARkFBQEZIRUpPSFFSYVxRUFJOU05PUExMT01LTUxNT05bV0tNUU9HSUhDSEpMTEpGRkZFP0JDPjxCRz9CP0FkcHR3e3p6e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSEREPTk3Nzk/Qj47P0FAQD5BRElFQ0dHSUZJRUJCPz49Q0JBR0lFTU9iZVFNTk5XS0tNS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dXh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEpEP0E9OTk5Oj9CPzxAQkFBREVHS0ZDSElHR0hDQz9CPz9AQT5ERURMTVJUTEpJTVRHSUlKTEpLTElKTE1PUFFQS0dDS0dDQkpKTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFIS0RHSEhHSktJSktER0I9Pj06Ojo7QUI/PUJCQ0NIRklLSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISUtNSEpMSElKS0pNXFJISERORkFES0pNTVBNS01KS0ZHR0pNTlFOTGJtaXZ2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLQ0ZFR0VGRkdFR0JDQD08PTk6OjpAQ0A+QkNERUlFSUpMRklJR0ZGREI7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lIRU5JQkZNTE5NT01OTk1LSUhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZWtxbHNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQ0NDRUBEQj5APzo7Oz06PT5DQT5BQ0VGSkZJSExIR0dHRkVDQD1FRUI+QkRDQ0VHSElHTVBKRkZHS05PS0ZISkZFREVJSkhLSUZIUEtDSU1MUE1PTk9PTkpKSE1SVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxmcWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMR0VFSENCQUJEPUJBPkE9OTo9Pzo9PkBCPkBCREdKRklGSUhGRkdFQ0JBQUZGQ0JDQkRFRUdHSEZMUUxJT0pKTExJR0hFRkZEQ0lJSEtKR0tSTUJOT01RT09PTU5PS0tLUFVXVlVUWF9eXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJAREQ8QUBAQzw4OT0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISUZDSUpJS01LT1NORFFSUFFSTlBNTlBNTE1TV1ZYWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW95TUhHSEhCQkJGRDw/QkJEPDc6Pj46PjpAQj4/P0NFRkRGREVIRkRFRERFRkdKRUVKR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFNPUU1OUU5NUFdaVlpZVlpdWlhhYGBgX2hlY2BkZmhnamloaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSUhHSUNBQ0hFPEBFQkQ9OTo+Pj08PEFCPD8+QUJGQ0VDQ0hFQ0VFRkdHR0lGR0tIQ0lIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05PUlVWT0tVV1NRU1FSTE9RUE9UWVpZXFpZXF9fXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZvdE1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkE8QD5BQUZDRUVESUVGRUdFSEhGSEhJS0lFSkhIS0hGRkxJSEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1NSUFZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpnZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRUZJRklGRkRJSEdJSEpNSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QTE9QUlRYVk1OVFZUUlJRUExOVFNSV1teXl9dXWBfYGFhX2FjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dLTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdER0lHSEpGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNRV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdISklJS0hKSk5MTkxJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxrVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHREVLRUVKTU1LTExHR01JR0pLSEtLSUtLTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEQEJCQD5DRkdCRkNGRUZFRENISEdERUtIR0xNTkxNTUZKTkhKS0pJTEpKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcF1fcmtxalV1eXhwY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0hFRUVCQkI+QEBGR0JHRElFRUVCRklISEVHS0pHTU1OTE1OR0xNSUxLSUpNSUpJSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SE1HSURFRUNBQj1CQUJGREhHTEhFQ0NIS0hIRkpMTEZOTExTUkxHTExITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnRzdnNIS0hJQkVFRUFAPkREQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTU1JS0tLU2tiW2leX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERURGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKSktJSElHS0tLTEdIS0tMTExMSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xVWVpdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDQENIREZHQ0lLTEhGREdLTEhER0lQS0xPS0xXTElFRUhJSkhJS0hMSkhGR0dJR0hJRUZMSUpLTkxJUFxXXlBcW2BeTVhZU1xcYl5NWVpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNFTE1CRERCRUlFR0dGS0pLSEVFSkpLRkVISFBKTU1KTVNIR0VBSEZKSUtLSUxKSEZFSUZERkdFRUpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfYltgXltUWFdZXl1jYmNhY2ZoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ1dmFTSkpNSURCQkNHSEVIR0hLSUlJREZLS0tFRklKTktOTEhMTkdIRT5HR0xJS0tKTEtJR0VJRENEREJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVlVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFSElGR0hIRkZKR0hGSEtJTERES0pNTUxMSEpKSEpGP0dGTkpLS01LS0tJR0dDREBEQUhJQj9JSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUltXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHRklGRkZJTEpORkRLSkxOSkxJS0pISUZCSEhRTUtLT01LS0lIR0VEP0VDSEhBQUdHRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBR0ZER01SSENRSkZISEhFRktKTVBFRklKS05MTElMTElJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VEV1VFXFVeU1ZfWE5UVU5aWk1KS1RgYVtfWF5eYV1PWWJcYGBfYmNiXWFiV19fVFBOT09XUV1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQQ1ZeSUdHSERGTUpQUEVJSUtLTkxMTE1LSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0JFRkJNSEJLTFBPTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xRU1JVWllXWVhYZFdPU1RQUE5NT1RTW1hYWl1cYGFkZWNnY2tscHNyenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hMR0hKSEdNTFFRSUxLTEtOTVVOT0tLTEdHS1BTU05QT05PTk9IS0ZgRURfTERmZEVNW0leW3JtT01VbVlMQ1BgVWtXZ0pdWFVeRE1RVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalNXVlRbXFtgYGFhYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xIRUdGSEVFS09TSUpGYFNISk9KSU9NUlFLTUxMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUX9RSXxZWXFzWFBtSHFub2FWUHFxc1BCa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZWWH9qdHV1X192X1hhW1xmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1OQkRMTEZJS0VRVkxLTklLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWlJUUXZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zcnt8b315b39yX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5LT0lRUlRZV1dRVFBQUFFLSGd4bGN4cm1bS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/b2hvWXZ2anV1cIFgcmd8aWx4fG9eX19iYVtdYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXdybk5LU3ROQ0NGUFBISktKS1BPT09NUFpgWlhLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGZlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUElMTUpLUFFQUFBRV1xYVU1VWVVmWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9bcHp7XmB6c2Nyb3hxaGR8aXJ8XlRMbGB2dWtpdXx7bX54a3xwXV5fYltfYmRkZ2VlZWJaY2Npa2tyc3J3Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ta21PSEpLSElISFJQTE5PTEtSUlJPU1JXUlZUUFdbVlZUVFRhYFBOTUtUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFlSTlBVVFhYWFtaVVJTV1tXWFdaT1NVV1hYUl1ZV15WVFBZUlZXV1dYXltncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlYUE9MTVZUUE5VU05PTUxRUEtKUlFLUU1LS09SVVJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1BRVVVWU1pRT1NSWFZUWVZUWVVUUlVUVFVXWFddWl5hXVxaWlxcYGNbXWJjZGZkZWRhWWBhY2FiaGhpbWNhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNRUEtPV1NQTlVQTlFOS1NQTE9VU05STk1OUVRQVFFTVFVOS01PUVRUUlJRVldUWVpbWVNVUlRXV1dZW1RPVFVYVVVaVVdZVVJSWFZVV1tZWmBdVVheXF5dXF1hYV5bYmJjZ2ZlZGJYX2FiXmBoZWZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FbWlhXWFpaWFlWXGpkVlhZWldWU1RPSk5WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVk5XUlRVVU9OTVFTVVVUVFJUV1ZaXVxaVldRUldYVltbV1FUVlZWVllUWFhVUlJYVlZaXVldX15WXl1eYFxcYF9fX1piYmRoZ2RkYlliYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF5bWVZVV1FMTVZTTU5ST1FST0xQU1JVWlVTUFBMUFdXUldTU1NYTU9QUlRYVlVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpXV1xeWl5fYFVhXGFhXmBiX11gXWNgY2doZGZgWmNgYV9fZWRfYGNbWlxbXFlaWFlXXFlcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRST1VUU1BXXF1cWF5cX1dcXmpxd3mAYlxbVlZYUU1PVlNOUVFQUlRSS1FUVFlaV1VPUk5TWFdUU1VSUlpPUFNTVltWVldUVlpYXV5bW15WU05UVVZcXFZSVFZWWFlTVFlcVVNTXVhaXV5cYGBgVmJbY2JeYWNfXGJhYl9jZmlkZl5bZGBhYGFjZF9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJRV1JUUFtdXl5bYFxgVVxdaWpyfXNsZ1xVWFdQTlJaU1JRVFJUVVRLUVdWW1paU09TUlZWVlRPV1JTWlJUVFRYXVdYWFNYXFheXVlaXVRVTlZXV15bWFJVVVlZWVVXWVxWVFdeWV1dYF1iYl5ZX1tlYl9kZF5eY2NhXmVmaWRmXl5kYWBhYmJkYGJeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWVFRUXl5gX15iXGBVXV5ia3l0bH1sWlVZVVFQU1xUVVRVVFZZV0xSWlddW11ST1VTWFdWVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paVFVWWllaV1haXFZVWl5cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfX2FhYGNdYFRdX2JlZXWBemhYWVlTVlNWXFhXV1ZWV11YT1VdWl5dXVRSV1NXVlVTVFhSU1ZUWFhYXV5YXVtWXV9YX19YXVZRWVRZWlphWVxWV1hbWltZWVpbWFZdX2BeY2JiZWRcYlxgZmFkZmRfYGRiYltmY2hlY2ZhZl9gYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVZWXGBhYmNhY19fVltgZGFfenVvaFlcWlVYVFdbWllcWVhZYFdQVl5cYGFcVFRYUFVXVlRWV1JTVVdaWlxfXlpfXFZfX1leXlleVlNZV1laXWJaXlZXW1xbXFtbWltZWV9fYGBkYmNkZWJkWmJmY2dmZV5hYmBjXmJjaWRjZ19nXmJiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheXF1bVldYWVxcXF9bWVtiVlRYXl1hY1xSVllQV1ZXV1dWVFZUWFxcXmBgXWBcV2FeW15cW15YVlhYW1tfYFxfWFldXF1eXlxbXVhbYGFeYGRjZGVlZmJZY2VlaGdkXmNhYGVjXWVpZGVpX2ZeY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWlhbXFhXWV5gYmFlYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWFfYl5ZYV1dXlldXllYVldbXGBeXV9aWl5dXl5hXFtbWlxgYl5iZGNlZmVmYlpkZmZpZ2NfY19hZmVaaWljZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMWFdcWVdcW1xdWldcXV9gYmRiYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpiZWNhUlxaT1hYWltbWldaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfYFxbXl5gYmNcXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGRnYFxpaWJoaWZlYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxdXl9aWFZbX15dYWFgXltgYWJlYl9dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBbZWdeYWhoYmhoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3x7e3t7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t8fHx8fHx8fHx8e3t7e3t6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKgkU+Pz8/Pz11jYmJiYmGs9bS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjI2DOjIzMzMzMHOQjIyMjIi/6eXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4d3h3d3d3d3d3eHl5eXp5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx2dXV1dXV1en19fXx8e4GEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV5dnZ2ent4e3h3dnd6d3l6en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3x8fHx8fHx7e3t7e3t7enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eH15fXp5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHp+fXl7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8enx8enx5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHx5fH16fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4eXh6e3l5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh4eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHN0cnFwcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3N0c3NxcHV3b29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzcnNzcnFvkINucG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXaMdXJyb32ge25wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcp2VcXFxlaJ7b3BwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXJvj6+Jb3mionpvcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcnCIsqZ2iqyke3BxcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycI2zqKSmsah2cXFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3N2oaGjtKabpHxzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHd4eIKnn5ynn6Ojknp5enl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fn18fHx8i6GOj5iamZuVe3t5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX1+fX+Ip6ejnaCak5iBf399fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYGBgI2yp6mioKGrpoR+gIB+f39/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f3+AgH+Kqa6fqaOgoaWppIx+fH6Af35+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f4GIlaqvpJykoaChoaGpq6CNgYCAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4OGjJumo52cmp+TmKGgnp2eoaCUhYGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYKEjJSWl5eZmIeQnZubnJiRi4eDg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoCCg4SMlpmViZKZnJKLh4WGh4eHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj5CSkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGCgYGEj5eUlpmQhYeHiIiIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SEgoODhJGWiISFg4OFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKCgoKBh5GCg4OBgoCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAgICIkoCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDipaIhIKEgoJ/gIyWgoKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmIqDhYSEhIKAkpqGgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSk4+MjIqFhIODg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYucjYCCgYGDgoWUk4yBgoGCg4OBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZeMgIOBgYGAj5OLkIGCgYKCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4p9hISDhIKDg4KOiYWMgoKDgoKCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUk5KSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf359fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKNioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFgoGBfn2Bh4aDgH5+f35/fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhYWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYSFhoaGhYWFhYaHh4aGhYaFhYaHh4eIh4eHhoaGh4aHhoaHh4eGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aHhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoOCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjImBgIGCgoGBgYGAf4B/f357eoCGh4iKiomJiYiJiYmJiouKiIiIiYmKi4qKiIiHiIiIh4iIiIeIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaGhoWDiZSTkI+QjoqGhIaFg4GBgoGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgYSEgoKCgoKCgoB/fn19fX1+fXx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiGhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fnx9fYOHiYqKh4eFhoeHh4eIh4eJh4iGiIeGiYmDg4SDhYSEhYWHiIiGhYOCgoOFh4aHhoaEgoKDhIKDhISCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGhoeEg4GDg4SFhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoGBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjZCMiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhISFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4GDg4ODg4KCf319f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIKDgoCAgICAgYGBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goODgoOCg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f3+Afn2Af36AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/f39/fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gH9/f35+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f3+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXh9gYCAgYGBf3+Af3+Bf4GAgIGBgoKAfoB+f35+f36BgIKBf39/f4CAf3+Af4GAfn9/gH5/f35/gH99fn59e3yGk5KMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fXt6eXl5eXmAgoKChIOAgoKBgIKAgoGBg4KCg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTj4mJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX1+fHt5eXl5eHyCg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSEhISEl5eDg4SBfX6BgoKBgoGCgYSGiIyFg4KCgYSCg4OCg4WEhIWDgoODgoODgoKCgoOCgoKSkIuIiIeJh4aGhIaFhYSEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fXx/gYF9ho+Bfn2Cfn9+gIJ8fIB/goCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMi46OjIiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3t6fIKAgX5/gXx+fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjY2Njo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYODf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fX1+gICBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6Njo+OjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX6Afn9+hJKNjoyPjYuKhoSGhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fnx7fHx8ent6fX+AgISDgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfXx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fX18fHx7fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJioiKiYWIko+MiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx8fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fX19fXx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uKiYyRkI6KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fn1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt6e3t5enp4eXt+f4ODhIeJioeJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiPjouLh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn5/f319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY6LjIiEhYWEg4OBgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYKCgYGCgoKCgYGBg4ODgoWGhIOBgICAg4F/gIGEgX5+gH9+foB+fX5+gIF/gX9/gH9+f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fHt7e3x7fHx8fXyKi4mIhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKDg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fYmHh4WFh4WEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl3dHSAgIKCgoKCg4WDhIOCg4SEhISEhIGBgIB+gIKAfn9+gX9+fn+AfX6AfX19foB/f4GAgYGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4OEhIWEhISEg4GCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SDgYB/gH+AgX59fn5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn59f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fX+AfX9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhIKEhIWEhISBg4KBg4F/gIF+f4B+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt8fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgICAf4GCgYB/fn+Bfn+AgoKAgYOChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fXx/gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAe4B+gIB/gYCAf32Bf35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDg4ODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgICAgIB8gH+Afn+BgH9/foF/fn9/fn19fH+AgICAfn9+fn99fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgYCAgYB+f35/f318fn2AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKAgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt7fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf3+AgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBgICAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXx8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgoKCg4CAgoGEg4OEgYGDgYKDgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgYGAf4CAf4CHfn58en18e31/eHd2eXl6fHx8fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYOCf4CAf4GDgoGAgYGAgH+BgYGBgIOAf4CDgn9+f4KBgIB/foGAgX+AgIGBgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/gIR9fX17f316fX97enZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYSBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOCf36Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDg4KEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoSCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7fYF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhYOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhISBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeoR/f39/hISCg4OCgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgIJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6GhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foN0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhIaEhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4aDhISDgoF9f357fHt+e3x8fX9+fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9f358fH59gH59f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoaFhISFhYOEh4WDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSFg4GAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9f318fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4eIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH57e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIh4iGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYSFgoN+gYKBf4OBf35+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSHhoaHhYWEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfH98fX1+fXt9fXx9eXp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYWChYWGhYaGh4SGhoaGhYaCg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICBg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18gH59fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoaGhYOEg4aChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSEg4OBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhYWFg4SDg4SChISAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU09PT09PT09TU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fY2djY2NjY2NjY2dnZ2djX19fX19fY19fX19fX1tTT09PT09PU1NTU1NTV1dXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtBPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi3qaenp6enp6enp6enp6auubi4uLi4uLi4uLi4t73T09PT09PT09PT09PT09vi4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OjoIaEhISEhISEhISEhISCkqWjo6Ojo6Ojo6Ojo6Kr09LS0tLS0tLS0tLS09Hf6urr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PEJAODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpaKJh4eHh4eHh4eHh4eHhZWmpKSkpKSkpKSkpKSjrNLS0tLS0tLS0tLS09PR3+rq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDw+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamnkI6Ojo6OjY2NjY2NjYyaqqmpqampqampqampqLDS0tLS0tLS0tLS0tPS0uDp6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tDQ0NDQz8/Pz8/Pz8/O0NHS0tLS0tLS0tLS0tLS1NTU1dXV1dbW1tbW1tfZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7OztHUz8/P09PPz8/T0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXW1tbW1tbW1tbW1tfX1tXW1tbW19fX19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztO7nc/Q0KGWy9LHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK1lZuz1qegq5/PmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/Rn6Cqr8qclpChtJWGnZzNz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw5Nj9CP0I6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0cWHmrO/m6CombW/yZeZxdDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Wp5myzKOgi5/E05GZoc/Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P1aWZsdmYx8mU2K2jv57V0dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX19jY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NalmbPInJWVpLvNiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NDVpZq3sZqvs52l0NujmbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0Y/SEhHRUA8PD4+PD09PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPQ1aWZt7Gem6KcnJGnmJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQzs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HH0tajmrLJnaiho56ooqmd0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09HVtYLD16+NkaXUmpKOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw8P0dFR0tIPTU1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dHC1NLVwL3W1NO5yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT42NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS1NLS0tTV09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6Njk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZJRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT0tLS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0tAOzs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPkhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQT9KTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BQ0NGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9CR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2tvb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTY2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk1NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNDY0OTg1NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDQ3Mzc4Njc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tre2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2tbW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NDczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsrK2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKeoqKWmqKiop6inqKmpqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo5Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqilpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6enqOkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6efm5qcoqCalpWVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqamp6amoJuZm6Ggl5KdoJeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqenpqKenZ+hoJeYqKKUl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaWmp6alpaampqWjoKChoZ+aoHSPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqSlpaympKWko6KhoZ2bpoJhlJmbmZuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqS2taWjpKKhoZ6bnKNdZpqZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKCmpZOxoqGgnpybmqeFVW6cmZqcmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaGgoK16jK2fnp2ampymZ11xnJqdnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCgoJ+pjWmcp52cmpqfl2pncp2bnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJyen56dpJZ0famcmpucootraXCbnZ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZybmqCWe3eRnZqcnpx9amlym56cnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmZqgoHqKhZCZnZ6SgGtmc5qfnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuZmZmam6CXoH1ymaWbeI6GaXKbn52enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZmZmZyrn4pxYKepnWF6iXl0np6en56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZifrY1wYGmikJNUX3l7haCeoKCfnp2foaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmXp6d0RUZul4B7UD5bdoSdm5uenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qblqmaTERGcJWCcVJHOGB4jpKNkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkJWsdV14X4O2r6Vidn5Lan6Igo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg3+SqGCOs4zOw6zApYCVelJ6goGSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+ipdy0NbJ162furNjZHBaboGGjY2Lho2UkouQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhH+CfZF/kM21ws7Iv6yUfKqsX2iJjI6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYx/iI2NjIuIkouYdZiijbSqnZ6HgnBozYBgi4uKkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmRnqGdk5eboZqenKOhnYqQeoajjISJd3RtdqOLZoaPjJiaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaiprKqqr6eZfltmhnh4f21qaHV2fXeEo6GknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipaqop6qsh3FWW3RxcnlpZWJpaXB8i6Opp6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKaZnqWloqKwnnFrUlJ2d3R7aGFlZl5fb3yLoKSgoJ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioKOnoaauqLCyrIBoZktOcHV3gGlgYmlaXWJrdYORnaGgnaCjmpaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGnqa22vL69rI1uaGNGVW5vfHxuYF5mWlphYmdweH+OmqChopiWnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY21qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevvMbLzca3po9zaGpcQk5wbnRuc2diYVlYX2NhYmpxdXqOoaicnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7TA1N3by7mrm4dwYGBiVUZFdW5gX21tXFtXWlldW1teYmRlaHiSp6+mpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1pdmtwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLS3xdLZ1smukXhmXVpbXFRMQWtqjJiPWVRYV1xcXV1YVVhgcomhssXDtLKgp6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PDub2+wcfN0MSgfmldWVhXU0lUbKezqE5VXmFiX19fZnqWr7++vsDCsrW2qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvFwcXGwLy5zMm5l3NcVVhUUVKcs59OWVxeXWBtjqq7wbK2p6axtau1sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH6Ef2pmaGFrbGdudXJydXFnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEJCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/w8PGxsGxk7+8y9C/mGpYV1lMkreWTVVZWGB/prywpquus6eqqamrrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3RrbG5kb21pcXhvemppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMS5tcC4s7zBxb+pd1dVUYq9j01TVluDoKa3r6WttLStr6Wko6ikoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt3bmtpaHVaZnJ4c3lmZl5kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLFvri9wcO/x7uNY1Fhf2VQU2CNqp+mtLKtrLi1s6upo6GtqaynrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXWpvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMe/xMfExMbKzsKNUklQUWanurfAvb65vLq8urysraapu7q5t7+ytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGlpdG15bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxcXFw8XEyczT05ZNTVyqx8DIzcbEwcTHwby+tLGwsMK+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGtqd2xpZXVudGNdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPBwsbGx8rNf0mPzc3HzNDFtr+/wMC6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnY2pkYmptbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvr3BwcDAx6ZNpNHMxcnRwa+9vbi5u7u+t7Sxub6zvL6xubW4u7a8tLW5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjY2NqYmdjW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Bu7/AvLvEvbrAxL+9vbi7wMSwU57NxMDByb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7e4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWOvL67w7W6x7e2uLu9ubm1usPIq1SXyL+/u8G+uca9wr+8xbi2t7S4tra7u7m2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVmcGpla2hYWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNDFea3Lvce3ubittrS3urS3s7vFyqBVjsm/v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfWtucWdwa3NmYm5gXFRIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTYr3aEvsjPwsC4rrW1u763urK+wsiWW4jNwsK/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGpudG53Y2diXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0Zt0d7HR0czKxLW6v8TIvr61v8DAh2h9zcbCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4J0b2xsdGxsbl9jXmFiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysKIdneozMzLzcrGwsPLzsG8ub27sYF6bcDHxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWNbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u6rdvDvra+wL6+uqacqrO3xMCmfHp8n8TGy8jBw8DAycrBwLy6sqWWiHmzyMXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3h0aHBdXF9cWlFFRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFtm6vzr22ucC8qn1uaG5tdIKXmXV7f5y+v8bAucC8vsXEvb24sa6mq5aUosrDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bHV7cG5pXF9fWVNQQUZJR0tARUNIPD02Ozk5PDs6Ojs7PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbF2grS9trXBpIZpWl5gTlNbXHB2eoWkuLfCurO7t7u9v7q7u66lrbKhpYfBxcO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d25xYV9mXVtVSj0/P0dGPUdDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmmhHiLorC1nGpmZ1ZZX0lJTVBUb3uLqbC3vrmytbK8uby2ub61mbG+rrN4sMnEwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/GqId7doyhmF9TQ1lVSGJqVU9FSmWRpa+vtrq1tLKsvLm4tbjBvY+sxLS0d6fKwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZybmNdZlldXVNPTkE+SkJAS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7OQgXmIkG5OS0BlWUJPeIGTaE1DXoWxtbO1srSvrLu6uLa5v8Z+k7qromirv7i1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLavqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWxdW2pUXVtQTkhER01CRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhXxYRkFPh1hJSll4joNjQVWjubO0srCxrbC5uLa7t7q9lKe0r6d3rbCpq62ro6ihnZ2el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh1dG5lVWFjV11RT01IQElSRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmYmZVoTUBTeXFPSUlMaZ2AWkVVsLqxrLOvrqyttraytLWuqaafmpudn6aonqCoqZ+hp5abl5eOnZSPkJaNl5ukqKCgoqKipaWdo6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56em5mml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoYh4g3x2f3pjd2xuXVFpVFBOR1BNTENQUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3BqqW8Z0RTnH5QWElLYUpXjmJlZYOvtaqytK6qq6+wsrOtpZ2Rl5OPl6CfoqCco6SfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+Ym5mbpJmXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fH91dn1ua3tkaFZSZE1KSEdPU05LTkg8RUA8Mj84NTk7Pjs5ODs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCrxr/Kn09BdZlwUG1KTGRmdnRhXWJ0krKvrrO1qqasq6KbmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpaqqoJuYmJiVk5aak5WVmpabl5eZoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3l8ZXl5YGJTVWBISUpLU1RJU1FNOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpcfGi1dTSmakWWZ9b3JbUmtkXGdiYG2RtbCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuUlpuWmZ2loaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1tZTVFKT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWpyd3VwY3d2WFdiYGRpW1pXaK2urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2orKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7a4s7itsrSkoJ2loKyhoaKhoJqYlpWfm5uYpaGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCgHx4dmp3dV5tW1JgSFJVSEZVV0pDTUc9S0g4Rjw3Nzs+PTw6Ozk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCkf2+CcGBjV0tbUlpMTFFZUkhPTkiZrKqppJ+fmZKSlJiYlpaVjIiLjpWdnJ2dnpeemaafoKilsaqnrqOrrrawtLKxrra4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm4vK+zsLXCvLe+s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pd21obVxYW0NXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOenIliV15lYFdNUUc9P0BDRD8+QlJ4qa2pqqWfnp+io52enZqcm5STlZSenZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a7u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6qzraqztK+zrqqvo52sqLaxraOwpqCjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF7dHJra3VycWhWXFFGVUhESlBJP0VBNEZIOTU8Pjc7PD49PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFBGRDtDPkY8Pjk2Tn6qsqejo6KgnqWrpp6YnJSRmZ2ZlYyKhoiGeG2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3w8rJw8HHv7q0uru1u7ewtrKqurKuu7i/u7qruK2rqri7tbyurrmjpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrY2lveGtlWVtGS0xFRFRMRENFNzo/OjU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9cmlhV05FPklZfG9hQT1cjq6soJmbm56emZeXl5KNj5eXk46NkIyCg4J3cnFtcI+mra60ucW7zcfLv8LMzc3Mx8nRzMzMx8nFxszQ0tXO08m9wL/Du8bFyMXR083U0NPTzMrCxcbGysjPwMnRzMfGyMbCvMPBvr+/tr6zrb/Aw8PHxcfEr7+5sri8xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXRzZWJncm9mXlpaQ05MREZQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaWZcVElEQD9Lhp6kmIOgsq2jnpyfmpiXlJKUlpGQj4yHhIOIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fS19LV1tPUyMzHzM3K083O083FycrKwsfMx8nJxr/Ds7PIxcvLy8/Hyr++v73BxsXNzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAe3J1dmdjZ3ZqZFZXUURORkBKUUI+Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2FTTEpEQz9DU7DSvbKvppycnKCkoZ2alJOVlIl9eHFrZWJocm9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s7U1tfU09HT1NTTz9HE0NPW2NXW0svJztHLxs3RytLV1tnW19PX2M7Sys/RzM/QzNPQwMjIysTMzMzOz8XHyLa/ysDSzczQx8rJwMTDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYGVyYl1SXElKR0FFSUo+O0E4PTU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFZSUBBREFGUXayr6aalJefnJqgoJ6bnJqViXdpY2FfX2BfXl9fXWFsdXNwcG9scnF1ksTIx9TW19fX09bQ1dTa1NTOz9XU1NHRzNHO09fW09XQz9LT0cnT0cjQ2NfY0djS19nU1czPz8rN0svO0cDGw8jGz87R0dLIzM3Ay8zG08/Mz8jFy8fHyczK1NTR1c/SzNPCucWxpai1rqebqKulnbKosLOtrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu32NTV2dnRztC/vMzJtr6upqqooaOrZUM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cWVjYl9fYV9eYWBfYGBfYGVtcHBua29yd3eczMHT1dPY2NbZ0dLS18/TzsvSzdXU0crPzdPW0tHWzc/V1dHF0dTL0NTV1s7T0djX19jLyM7Eyc/MyszAysDJys7O0MvQzs7Mz8/IzNDQy87Lw8rHyc3LzNLTzdPS0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Fva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksXpIRkI7V46hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3O1MzO0s3L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXNwsjKw8zExsnLy8/Lzs3QztPMxsnPzcjHy8XHwcbKzM3Q0sfQz87OzNDFx8G4ub3Dw73DuLKyvrG7w8O1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWdgYHFoWVhoVk1HTElQUUI7Qz47Njg6ODo6NTc9PUA7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfDuMrV1tna29jMzM/I1tXEwrWvtKifrZd4bHBxeZCbjYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNhYGBfYGFhYF9dW11ncnJwcnNxbXJ5pcfTz8vQ0NPUysXJycbGv8PFz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svQz8a6xL/Gyr3Cx8nOxcPHwMfNyMTMy8zPyMTE0MjGwsbIxL/Bx8zLzM/Cy8zJx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG90ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7uto7Z+aIOFpKuUjo2Wj4WDg4OBfYSEfnNfW15eXmBeYGNkY19dXV5fYGBfW1pcYGxycW9va2xvb3250cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIys3JxMLLycHBy9DFy8i/ucK7xse+wMbPy8TAw7vJx8m7ycfFysC+wsvGxcS+xr28wcPFzMXGvMDJw8XH0sXByb/KycbIxtHDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdGZpWmFubVpbWFJETEZCR0VMREZTQDU0MzM1PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1drY2c/L0s3NzsjBtcO+sa+2bF96fKGRi5KWhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lrcG9zj8e9ysXLwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7usbDv7zBzsPGvr61wb3Du73Gu8O6tLzGxMLCt7+2tr6/u8zDvba6yLu/vsvDwcbCxcnHycbQxsLMyLLHycPOzMDFw7+9srewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NWXllKRkpGSEtBRUJGSkA5OjY1ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysnGzc3O0cjQxdXU1dfNys7FycXHwbnFvauupmBkdoOTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXmhzcW1nZ25wcnmdvczAw7rBuK2wsaeqraynuLS2tLOztLu2vbG3sLWvsrvCvMHEvL+7tbK6vsC4yLm0u7fBwr24vcfBxLy1r7K2ur+0xbe7tau4vb7AvbG6trC3urPGvLevu7+1t7XFvL7DxcDExcbHy8XAxsa7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25dVl5gRktISEpGQkRBRUU/PDo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjJyMrIysTQzdLPzcXHwcbAv7q3ybaqsJlbaHCKj4WIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaWZrbm5yfKTHwLi4tbCrrKeeoqmnnqqss62qrKq0rbaxs6mup6yzu7q2w7m6urGrtbm7tMK6sMCxvry7trzIucO2raqosLLAtri9sLGnsbO0u7yrrrWmrrauu7Kxqrmwrruuu7i7wMC+usO/xsPFwLzGwcfLuMXHxb/Hw8O6xMbCu8bJzMuzucK9u7OJc3d2a2lgYmxoWFhXW0FMS01KRUFDP0ZBOjk6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTQx83Bw8a/xMTDw8rCycq/wLzCurO1tcOuqrCSW2p/koeOj3t4fYmFenuEgXduXl1cXF1fYF9fZGNiY2RiYF9dWltaWl1aWllaXGVub2hmaGlrbnKBrbqwta6lpaenmqCkoJqcpauupKiiq6qsq7Cjpp+qrbS2sb25r7ewqK64tLO8uLS9r7i5trK8wbLArqWoo6uxsrOovaqrqKusrbWzpaiuoaSvqbKmqKiupai3rLGzt7q6u7K8vr6+xL+1wsHHyLe+wMS3xMO/u7/Ewr7EyMzKv7/DwMCph3N0c2ppXGFvY1dWWFBIWVJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8HLvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairkmRtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9eXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWqpaylnpyhpJSdpJqXkaGjqaOjn6Wmp6atoJ2cpKassrC2t6exraiqtKu0urG2tq62ubOwurqxt6WgpJ+msairqLmqpKanqKeyraCnpp+bpKasn5+no6Chsa2trLK0s7Swtby2u8HAsru+w8GxubnCs8G+wLW4vL2+vMLHxcPEv8DEoIN4cGxiZmBrb2BVWV9ITmdPVEdGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLS2vbi6wLq9tqCelJ2hprq2q7Ozu7PEz8nLw8a4t8fAzL+4ybe7xbizxLizv8CstbyyrKWvs62ho5FpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGFeXFtcXFhZWFhYVlhbXl9kY2JlZ2dna21viJ2pn5aVmqGWm6KYlYyeoaKnnKCfpKWip56bo5ugq7CtsbWkqaqqrKyktLitt7Css7avs7WvsKqfnp+jorKlpqm4raKmpqCorauZoJ+emZ2fpZqao5ycnq+pq6iqq62tsLK4r7i5urC2vLu6q7OyubO9tLaxsba1v7a+wL7Dwru6vZeEenNrX2VeZGRYVFddSVdcS09HSkpHQTw/P0A7PzwwNTUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uce4t763ssK0sbu7rLm6saKeqaunmJ6PbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2FhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3KNp5yTlJSal5qhlpaQm6KhqJ6cnaWnoqWcoKGbma+urq+yoaWjrqunorWwsrKsqa+zp7qzpragop+co6Gto6Kqtqujo6aepaajlpmdl5mbnaCal52cnZytoauno6Omrauys6q1sLKrs7m0r6qvsrKzt7Ouqa2usrixura6vcC4s7GUhXl1Zl9mXltZVlNaVUtbUUxJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+znaWjmKWxwrW2va20uMHMyMa/xbbBwMfOt8DEvbO5ubO/trG5u62ytK+fmqSqoJSaj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqCbk5OPk5aWnpaYk5egnaGclqGhqaSfn6mdm5urp6+wq5yjpLiqoaCuqLaqp6etsaS4sKS3oKOcmZmqp6GarLmvoqGknKKgoJOUoZSWlpuYmJaXnJWfqZ6ppKKdo6qqsa2otKyqp62zsKWrrrOxsLCvr6eop7KusbSvvLS6uK6jlIF6dmVfYVZZWFNSU0tNXkxQTEdITEtFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJmhqZSRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmJjZmmBlZKUi5GTk5qYnJWWnJ+cn5agoKempKann52gpqCqr6afoqO3qKGhoqizoqWopbClsa6stZ6hnZaVqaGilK2xsZ+jo56emJuTi6GUkZOYmJOXmJiXnqebp6KimqSlpaukpbCnpaOrrK2mqK6vr6uoqqqzpaarr7Sxrry2sa+voJJ6d3JlYVxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaast7u8wcW6sbm1xMnJwMPGxce2xcSzwb/Fq7e3vba9uru1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpaW1lZWVtXVVhXVFRWVVJUUlVgYF9gYV9hYWNkaYCSkoiPjZORkpyUlZakmaCXnaCloq2mpaWjpKOdqqulmp+lsaqgoZ6lq56oop+urKmprq2ioqKVl6KbnJCrqbCcn6Kfn5eYk4qekY2Sk5aQmJiTnKGjnaShopWgoqWmm6OrpaKkq6SrrqWusqmmpaamtKapqK2ztbS5urCqrJ6McnBvYFtXVlVSRlBOSFpcUFJJVEtTTEVHSkQ4Ozs9PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTU3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb3Dya2xuMG1vMC8tLWqrKaVmZubiIFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5RWV1cXV1eX19fYmRtjY+DkIWOkI2Zk5SSnJqinJuhqamrqKynqaakmaWvpZWapa+poJyZm6Ger5qcq7Sgpaafo6ShlJOblpaSqaqtmp2goaGblJCMmY6MkYySjZaVkJ2ioKSdnKOVm6CjoZeiqKOjqKugq6+krbemo6SirK2qqKuvs7eyvbWzq6+YhXRzaFtYWVNVUkVYTFFbWE1UTlBMUVJJTkpDPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7evqKevrpupqKy3tqu8yru2v6zLxsW4wc7PyLPEure7wsixrbi/t7y9u7O1pqmglpeYlod6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9hZX2LgIp9io+Jko2WkZeZoqCboKuqpq+sqLGlqZqgraGVlqWop52YkI+anq6XmairmZ+dlKWhn5KRkpGTlairpZqZmZ6elo6Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6WmqKiooLGwprG9qJ+jrLSqrqewtbC5tcCxrrGrkX5yc2JWVFZOUkpHVlBSUkxMV01KTU9SR01LQUNGREQ+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NzYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxtre8vcHDsbCxt620tLuztKKjnZ2Xl5SDgHZrZ2xucW5ya3BrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqf3l+dIeMhpCJl4mUlJibmJ6pm6Crpqasnqiaoaack4+fo5qXl4WEkpukkJWjnZaWloiim5uTi46KkJqlp5yVlZebkZKHlI6LgYyNgJCLkpKSoJqhopaUmJmVoqaZjZmkpqmmoaC0sqeyuKGcorasqa2ksrKmtby1q6yxo4l5c25dTlFRTE9ETk5OUEtGTk5KSk5OUUlNSkFITEhIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKWnpKqloKmmpLOqorLDtbWys8bGtrrDyszGs6y5vbS4wK+tqbCepq66r62fmZqdlZSHe4NuX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW5xdW+Dh4GHf5CDjoqUkZOdoY+anKOipJmll6KclY2ImZqMc42Dfo6XloaRmpCUjo57mY+djIKJf4qYoKOekJOYloWOg5R+fnSKjXqQh5OQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssKyfmKW4pqaxobCunLC8qqmvqpmDd3NjVk1ST1BNQ1NOTFBNQlBRSElOUk1ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGsrcOtqKKmkp2mtq2joI+VlpKQfXd+ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11qanFrfoR7c05Yco+Cl4aNnJeLlJGfmJ2VlJaVj5aKgJSJXztWb3yMlIqBjJKMkIaGc4qFl4F5gXuGk52Ug5WOkZCDhn2TeHFwhox9iYGRjZCXmpiTi5CKnYifmIeIlp6aoaCXp66praionpats6Kmrpmsq5iotKOpraOTf3NuX1tOU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego66hpqaqoKapp6Opr6intMK5sLWwx8K3s73Pv7mvrrXCp6rFqqOdmIOUnLGimpiGlI+Lh31zdV1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNT1JUVlhaYGxuZ3qBc1BCP3+VkpF9iJWMhIqNm46WlYqSiIaVh3mJf2BKUW54i5KEfoSNi4V/f25/f5R4dXZ4hI2acFGNiIqGfH54lHZod4aIfoqJlouOkZKWjISKiJWEm42ChJKalp6dlKSjqKmlpJ6bsKqhpKSRpqmWoqqcoqaoiXZtZl5bSFFRU01JVU1SSUxLT0lIRkpOTE1US1FQT0ZJQz03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hr6GnqKWnqK+sqrW8tri2s8G7tqi5yLi2qKi1tqqyvaaelY1/iZOolpWKfo6Dgn13cG9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3J1fWloXFSQiZSIdH6GgXyFjJOCkpqLj3uGj4B2gHhzb3ZxdI6OgXp+iquFeXtodnuOcHJteIGLjZJ4eoB7gHZzcpJ4Z3WEhISFfJWKiIqNioB/hIuNgJSEfICPmJSclpGfnamen6CdoKmlnp2YjaekkqCglp6fpIFzaGFdXEpXUFJHS1hST0pMTVJKSkpMUEhMUUxSVE1FSEI8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTI0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK8uLa6tLGft7qyqp2drKmosrChmpGNlICNnI6RfnaGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmdoyWmI2OfGd5gXZ4gImQfYSYkoFxh498d3tva36tfXSQi397hpKBfH91ZnZ8hmxvZ3N8iYyHgGx5cX1xbXaPcWhxgX6OcEOLhYKDhX53d3qMhn2Me3V9jpKPmIuSmpujlpmcmp2eoZyWjYulmo6dl46WmJB4b21mY1pYWFVRSlNVVE9QTlBWS05LT09KUk9JTlBMRkQ8PDc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoaawrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlp2lqaSgmJmPhZJ5iI6LinVxe211cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybIinqsB+dHlie3hvfHmJkHp9i4ZvbYySeXR5amqAgnGWkYuBfpaASZKYbmh4foJtaWRseYWQkoZrc2x8bnJ8hmlucH9zjYmEhnt+f3t2b3R0hoJ5gXlwfI6MipODlpeYmpCSlpeZl52WjIOJnpKLko2GkJaAb2pvbm9YVlhUUlFZT1JUVFJYVU1OSE1KTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrLCjraqota+urLS/q7zDv6WimpWkmJ6NhIuUoaGZmZGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXF+nh2GaaXN5ZX5vbX96i4l2goiGdGyaknRzfGpqnY9NeYWTiYSOZzF2hnNsfn2DdGZldX+EhIWAZmlsdWtxgHxocXF8bpONj3x0fn1xcG51bYJ/d3l1anmJgoiJg5aSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trb2hlWFJaV1lZW01QVVZZWE5JSEVKSkhHQ0BHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakZmWo6itnrGep7qvq7KwwrG7w8ealo+UmYuOhXqEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+yoHF7eGx9bHGDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooV2cId8h3x0jK6NiYBoZ2JqbnJtcIJ1aW9YdXCOm5J3bH96fW1ybnCAe3N2bmJ2g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2Oe3NxcW1gW11eW1lYYF9STltaWFdMSEpGSkc/Q0FCSD9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp5+vlaW0qa6xrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt0eHhsd253Y2leSlBHPj82NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9ITE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8foWDf4x+daKZeX6GgYSZhJqcYYaqn52Lg5CNeneIfomJjnOLl4+Eel1kcXR6fHeKbWhqYnlvhZCCem6Bd3SEenB0eXhrbmlddoZ8h3yHh45/ipKXg42FjIZ9cYR/hH11d3t8iXdwc3RmZ2BbW15TW2deV1BUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIyRnJ2fppGgqqCxqK/AsrvFupaOkZSHe4Z2a3+MkYJ9ioSPjHiDgHOghIp9fIF/cIB+emd2a1JXTEBFMjExMzY2Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmiEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqkiGrq+vi4GAk4uCi4KEkqmHgJiYipt0bXyBhod9jmhnaHl/boWHgoVxhIZHbIB3cnl2aG1rX3Z9goh/h4SLeZSdnImLiJF/enWLdnx4bW93foB0dHJsW15eW2NjWGdlW1RPUFZZUERMS0ZOSUNGQ0NAQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5GOlpeSl6CeraGmuK+zvbOXjZKLmIt9dHB+iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWHBZXF5pjZOHlYCEgoWRk36FiJGBmpWCoaGYlZubpq2Tmruxp7vHw6iLjKGlj5SKgZF8cYOen5Gcf3aGhYuQh5BpaHCEgXSNh4SKcYaCd4d/e3aFfW52dWZ/lI6GiYiHiIegq6KWiY6Xf3qCiHl5b2dreH57fnRsZV5bW15qXWFmYFpPS05XUlFJUEpETkdDSkRCQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneDe4CMf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShZKVf4qAkpuOg4CBjIqCiY2Df4qAbXBqXUJANC0tLy8uLjAyMjM0Nzc5Oz0/QkRISU5RUlNSU1NUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBJSUtLS05WX2N/Z2dtdZ2bj5qSk4uNjpqIk4+di6CgkqOqpaOsk6m2oqjBwq7Hr3i6lJp8jaGemYSThYKOop+TmJKEioWPmZGWbHB1ioyCloyNjnePhHFthYGKlpGDhYhxiKCVhpKJjo+WpLWpm42UooOHk4N9f2tqanyBgYJ0Yl5kYFtna11sa15XS0dOUlFNTExGSVBDRE1GQUNFRkI9OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYWQh4WJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOUFJUUFBRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpaKZoZeilJyeqJ6oq5+orKmqtperv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGIlaKbm3h6fpSYkqGTl5eBlJ57d5WSq7KIjZeffJSem46SlZijoqa2sJ2RmaiHlo+NgYhsc3N9gH1yaWBdYmBiaGRgZ2ZbUkVKS1BPSUlMRkZNQ0hMRkdEQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wMC8vLi4wMDE1PkFCTVFSU1FSU1RSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYWQd5WKo6eqtL24pK2srKeotKuwtrKyrbuxs72cs8OrusnLt8O/uKWisLOsraqji5aYhaamoKOXgaaZjaKrqKWIhZSkoaCroaSpj5uwi5Wjpre6m6CjsJKinaKekKOhq6+ssrWilKSqiJmJkomVenp9hX9oYWhcZWNeZGReZmdfWk9DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhjV2lvWHqFdoGThYeCm4OSkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4WBjIWGh5KGgoSJhoiHh3BuYUBFNjQ8Mi8xMTAtLCstMS4tND9DQU1VUVJTVVVWVU5bUEdHRDw+PkZIQ0VBNzs8NUM7PUZLSUdIUk9QV4GSoISuo7OqssDHw6qzxbass7+zuL62v7TBtru6o7jFqLbJx7W+ubWoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqiutruyuqyvtaKxq7G1u7e0rrSgp6ijp5qpr62yube4p5u2qIykjpGSn4Z4goN2WmJlV2ZiYmRgYGZgW1RJRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFiY1d5dXGBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeFgY5/gYmOhoCGiIWKh5F6eG5dVkBFTjw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0pBQD9HS0ZGRDs+QDdENz9CSkpFRldUUF6PpK2jsbTDtrjBzMm2u8S9s7PAtrjBtb6vt3Sxs6W6xKSwxrmxs7G0qKS1tqqxoKKWm6KSpbCupq2sp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwre6uL63ure5rKywprGqrb2wvLvCwqyZuqiTrY+Xl6qJfYJ9a1dkYllrZWpmV1xjWVZTSUdGTFFHQ0hJQUhEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldTWVVadmpwfo6EgI2DbnpzeIdiuaGZo4mUlJaSlJONkJaSh4Z7hoGNlYqAhIGKenyKh4Z9ioOBioOVfXd6dWVPXGRHRUw7UWNhW15TRj87SFBFWmNRUllYWmdZVGBgTVNQRUE/SUtIRUVBQEM8RTZCPkhHSkxTWlRdk664tbq4yL+6vcnMu7zAu7e1u7q2vbS6scZgdbKksZqeq72qpairq6SisrWgq6eflZafmJ+upaempZ+jlKOnsbSnsrO9tsG+08nJ08fCxczCysPAvr2/u7y3tK+4t7bDucW9wsiwnrmpoauOpKe2iIGBc2BjYl5YYmBpZ1JYYFZRVUlFRU5LQD5HRD1KQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzM0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xyc3OH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaLfoOAg3h7i4OHfIt5gYqCl350fXprZXB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFVZVUpEQktLSEZISEhHQUk5RD9IS1RUVlxaW5O5wLi9t8bAu7nKyrq2ubW4ubK3tbSutraZZHWonK1wXqKsnJigopuknqullJ+fkJSOlpiXp5+ln56amYOknaylqrCtuLC9udTRztbQyczSzM/Oysa/v8LKvcG8wcDExMXKvsjOs6S7sLSvmqu4u5mAe21fYV1ZXmFaY2NQW2BTUEtDQUVGRTxART5BSEFARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU0RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vl5KQlG5sb3V1h7OsoaCfi5mcmYyNlZGbkoWKin6Ih4uQi4h8gYRze4qDhXuJdIGJh5V/c3t5a211e2hyZWlsaWZqaWhgZmlpbFptc5atpLyIh2dbb2hdWlpUSEtOT0pLUEtTUUhMQUpHSk9fXmJmaWGXt8ewuLK7vbWxxMa1sLiwr7ursrGnq7erjbWnnZqnmk6anYyOn5aRppillYqTk4mQiZCRkZ2boZealZaHnpqnm6yvqLCntLTU1NTW0svP1NXN08/NxcLJ0L/KycrJ0cfMzcLQ0rivw7zEuaW2usOig3BlXl5eWWBXWWZaUV1XT1BCQkhFQkg7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VWc5CQmIJocW95eYOgqp6lloyam5eLjZWRmo59iYuFjYqKipCHfISCcH+IgYZ7h3KDkYuPfXF4dWtxeH5xe254c2xogXBtY2ptcHhpd3x+y7/B36duY3huY1thYEpQUlVOWV5QXVxOUE5UUVVUXG5tdoJxlq24rLSmr7aqrLzAsKu0pqS4pquuoKu0o46xrZqXmIyRk5GEjpuBjaaRnImDi4SKiYSLg5SVl5eTnJGcmJmZn56rrKSnoqytz9LV0c3L0tPU0NTRzsjD1NHHzdLT09fM0dHF0tbFwM7Hx8KovrfPnnpwZl9jXVdgU11aUFFUUE9IPkBGQUJFPEBCPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OW3WGhYp3bHdwfX5/oZ6eoYuMmJOTjIuTj5aEeYWQkI2LioeRh3+Ce3J+gIGHeoR1hZOQiH9vdnJrc3x8d3tzgXdxaoBzcmlwcXp5cnq+y5p+jLKEdnKEdmhha11DWlpbVmVjWGRqU1hdXWBkXmN4en6LgZipo6Shn6CopaqwuKqls6OhraGjraGnsZ+JppqTkpGJkY+IgZSJapSijJmEgIV+kYODk5ati5WNlZqOhpKRnpensKGgoaWkqMjOz8jCy9HU0dTTztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPDzIx0cGRhYFhUWVRcUEtHSkpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5WJj4qIjoePf3iDlJiKjYiIi4l+gnhze32Dh3d/eoeRloCDbndwbXV/dnh9dIV8eWyHdnRufXaEdXh8nbWMO0GKxaV+jHxpZVdJQ2ZjZWNnamRueFteZmhrbmlugIOIkYucnaCdkJeYnqOjprGjo7OfoaWdoKmgo7Gchp6SkpKQio6LhoOPhH6cm4yNgoSFepR+gqmVo4yRipeSi32XipqSq7OYmpyonKe9w8a5tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2drR1r7LzLR5d3BmXltTVlJbVkZHSklFRT06NzpAQEI6R0Q/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhYmCh3x4hZaWiI+Dh4WGeoR5cXp7hIZ1eoWOjZ15i3B8b296f3F7gXGDh4Bujnp1d318gnV+e4aHr3NYqcK2jZGCcG5iPV5ocnBxcG54doFlaG9ydXhxeoyHjpORm5WflYeMk5ugm56qn6CsnKGamJ+mnp+rmYuajJCRjYR9iIeDhYuOoJmTiIOHfm2ZeYSYhoiTjI2UjIZ8m4iUj66qlJWYn5mnrrW9qa2+x8vJyczL0MnD0srU19jX2NfV29fT2dvV0Nva0dbI1MuVe31qaVxbUFNUXkhDRklIPkE+PTc6PT87PUc9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1NDIzMjM2NDY1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjpEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoGEf4N8fISYjoeLfoaGgHeCeW97e4eCdHqSno2gdo51gnR1gX10gIRvgY+Bb5KFdHyAhHp2hnuIt8Wkwcm4gpabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJWPl5CDiY6WmZeWpZyXn5aekpKXo52Zq5WQkImNkYKMhYiIgYaQkZ6bmYmFjIGGl3qIiJ+Xj4iNiouCfaGJkIu8oZiTl5qcqaalrp+otr/AwLnHyc3Oxc3J0dbV1dnV19vU19na29fb2trYztzGh317aWtnYVRYVVVNTEROQzs9PTw4Ojw+OT1ANj0/QDw/Pjw5ODY3REE2NDU1PTgwNjY1NTQ3NzQ1NjEzODU1NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop8foB+f3yEe36CkYmEhXqEh3p1fXRtfH2GfnN+kp2RnoORfIZ+eI59eIqKboKagHSZhn2BiIR7fZB6j6iOj8OhvYyco519iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYmKkJKVj52ak5SQloyLlZ+clKCUkY2Nj4p+kI6Oi4SJkpaanp+JjJSSnZGCi3+lmYiEjYOGhIClh4uLuJidkZSWoqehnZ6do6+3urWswMXK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbuHp7em1rZ1hgXFNQT0lDTEI9PD45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PURSU1JYX1ZYZm1tbWmBj4pxc3mKe3p/fH97h3t8e4uHgX51g4V5cnpzbYB+hH53hZuhmp6UkoCMiH+Yh4Cbkm6HqIV6oIt8kY2CiISbfZqQioyjoqCQpK6gi5GLhYyBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlIyGiIySk4yUlJSPi4+Jh5abnY+VlpCLkpOFgIuIko2Kip2WmaKjhpOdlqCKiYiNnJCDiI+Ag4iFpIaMkLOYnZKUl6GhnpmSnJ2osrmspr3Cx87Hxs/M0MzO19DR1K7W1dja2Nra19bZ2Z9xf3ZpaF9eWFRXWENASEM+Pj46NDk6Ozc6OzozOzs/PT43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieW1ifpKDb214i3h5f3qBfIZ8e3eGhH9zcIWCenV2dnSEg4V9fpKmo5+lopaKnZCUl4uKqJdyirGNhKeShJmThJmMopWfmJOJmp6jkqmvn5CVkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNx5WOhoeJkJKNjZOUiYWKiYWWmZuPkJSThpSXhH+Pi5mIjZCql5ejo4iZn5aaiI6Hl5eKhI6NgX+IkKWJjZOpmpeTlpmhmZ+Zk52bo7O0pqO8wb7IxcXJyMnCytPNzdSp0tHW1tbY2tTT2s6Dc4FpZWBfX09KVVtCQUZDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdYKOfXxtfoh4en56gYGCfnZ2gIJ7bG6Lf3l8eHh8hIeLfoujs6ijq7KhlqegpaSWla6ig5C3lZKzmY2hoIukm6+ipJ2YkKeWqZmtr6SXlZWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKcmIWIiY6VjYuTj4eBhoeIk5iUjIuTk4aUmIaDkZCcdJGZspaXpKGInJmTj4qQi5eaiYqWjoZ9jJmfipCQnJqZk5iYn5SgnZWfm6GyrqOlt760xcfEvcPDv8bOysnSp87N09LQ1tjSz9i7c3t3XmJXYlhQSEpPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj8/Nzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdOW1xZSmdhO0iEi3p7bYWGeXyEeICFgX1weH19fG9zjXp9gXt4houJhYSSqLutqLK9r6Wus7Ooo6KwrIqatZ6iuKWVrKSXqa23pqSjn5mpmKqkr7CpmpmclJWRmKCXmbu7rcmgaba4q7CVmJ+iq5KXvaNeqrKCiYqNlYeRfI+OfYOGjY+UlIiHkpaLj5WNi42XmZKdmrOWlauei5uUko2QkoyYm4qSnpCMiZWfoo2VjpianZObmJ6UoaCUnJylr6iipbO4q8LIxLW7vbvFyMjC0aHGyc3NxNbW0MvTonF8al5cVWBSUEZEPj1DQUI4Pzg3ND5GPDw2PDM1MzU1NDUzQjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj49NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVIYmBjcEpAi4p+gHKGh3yBiXWCioJ+bX19fH9wd4d3jYGHe42PjIaMmqvCwLC+xruytMG8tK2rs7aMqLKurr2qm7ukqK25t6umpqKho6Opr7Kxqp2cpJibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIacrb2wg4uMi5CDj4ORj3qBh5CNjpyIiI+XjYuVl5SQmpacp5qxmpGrnY6Zj5KOlZCQlpePkaCRiJWbpKyUlo+UnJ6UoJ6bmKChlJqeqKekoaOwsqbBxsOwsLu2xcTDvs2nx8PHw7zV0M3Eyol1dGReXGFcT0tCTEBFRj5BP0I7OjQ+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxnR2BpZ1pdW5OMjIh7h4uGg4x1hpCKgW5+fIJ/cX6BepV6kpSUmJGTlae0xsnAwszBw7nIvLqvq7m7l7K2urPArqXApKqwu7uqrquiop6nq661sKqboKqcopyVnrC0p4uiurq1wburqJyypKSolISOqcPEpIKLjoeIhIaVlI16g4yRj5GhjIyUkY+JmKCXkpmUl6agrp2MqpyOlY+SkZWVjpCVkY+hlIaXn6CznpSblKChmaSfmqCcoJSYnqakpqekr62lv8TCrqm3tcnDvrbOssW+w7yz0crIwbV2em5eWl1sVE5JQ0xKSklAQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZaJi4iSj4aJeYaTkIFygHyNfneHgYKQeo2hlqiampi6vsjIysLSycrCzbzBs627vqe6v768w7eswamss7u9qrCppKWjq660rra1oJ+un6aimKO0vambqLzAo7a2r6uSr6yqq5aGmqmmpZGCjJOllYmAdYqSeYWNkZCen5OOlIuPjZSjmZeblJSjnqmfkaWajI+Pj5WWiH2PlZKSo5qVoKKctaaRn5elpKOlnp6mmJ6Vl5ulo6moorKsqLvAxK+ls7fMwLmuw7O7vsG4rcLCwcCZcHtjWlhdXE1MTUlHRENIQkJBQ0s6NERIOjs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+a0lfWGFaZGVWno+djpeOnpKJin+Jn5KEeIV/lX5/kIiKkICVoJmup6OYwr3IxMjG083Ozcu8wrewury0vMq8w8G2truts7+5vK2vqKCpp7atrqmyt5qeraKooZ2rt7ippa++xLG9ubOnqbOzra6WlaWsp6CRjpKxxaeVjXyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuMj4+eiFqQl5eSlqWaZpijn7OllqOWrK2rp5ufp5iZlpmVoaSopp62q6m6vMO1pbS2y8G4qrass7q4rqi4ur24g25wXFpWV09HS1NNSz9BSEVER0ZHODVGTTs+Nz5BSi4zMjAyNUI1NVBXTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnJGaUlSZWJMRqaUnJahl6mWjJCDh6WSiIGHgpyEg5WQkZSOmqKfr76uoce9xcTHx87OztLKvru2sbq7vL7OtsS9t7i3srK1s7iyq6acq6u4qqmnr7CXo66kp6SltMCwqqyzvsK5wLmzp7izt7OulaWtrq6ki5OVoY1zwZl9lpmEjpaai7GVmpmVkpOZmqajlaCblpqonJuhoJmLjI+WnWBKlpyalJqll1SWsJ+vnJ+llK+vraWaoaaUk5mZjp2gp6KZtKmqs728u6uwssfAuKarq62xsaOhsrK0pHJwZ15cUFJNRVBQUFE7SEtJRkhBQz45S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1SRVdSc2JXRkirl5mfoamvmJCXh4unlo6IkoWfiIScl4+eoJujpbXJtKnGu8PEyMrIx8zOx766s6+5uMDBzbXIusC5tbqxr6+ytKejm6q0tKqppq6smaSupaWprbq/qKu2tr7Bv764s7LCr7e9q6OutKy4pYibl6abdr6ghJicjpOZmouvlqGcm5eVm6ChqZ6ooJmaqpmhp56XkI2RnYNudpOimpWdop+QrrKjq5WpqpirrqWkn6WpkpKZm4iUnKKelrCnqau6t76zsq6+ubafo6eopaecnKypqY1laGNgU0xNR0hOSlZMPU1ETUlKQUNEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5TYU1WSH9lXkhGrJScoZ+7r5iUnouTqpuRkpOJq42Hop6MpKyUo6O2x720wbrCw8jJxcLOyMG9ubKvubTAwsq2xrHAvLW6q6itrK+jopiqtLqmqaasqp2or6ekq6u+u6isvLO3vca8trW4wLC9v7OptLarvqSPopeRop+8n4mZoJmWnp2Pt5+pnKWjm5yimqils6GbnaWcqKqemZWPlJqLl4mNpKKUnKKfoLWvpaWTsauarKyfnqSjqZKVlaCDkJ6fnJWppaKhtLW6ta2otbKznpyippqXlZmqoZ53Yl5gXktJR0hNUUlNRUZGQlJKSEFER0FWU0RIPEFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6ew62bl6WXmamclpqaj6qWlaimla2smaGqtsTBvL+4wcPByMS+zca7vrmysLizv8PItb+vvLe5t6ekqqusoKCaqqrEoqWorKaerK+soqqovrimrL2wt7bHtrS5uL6wvsG2tLK0r76jlqOWk5uUrZ+QoaKlo6OfkL6lqZ2prJ2doZumn72imKSeoqmroZ2WjZWek5+Hj4WNk56koJ21rKWclrKnmbCon5qqnqCNmZWfhY6hmpuSpaSamKyxtrGqpamtrJyZoKGSjpCVqZ+UaWRaYV1QSklLT01IRUNJQD1PSEA7R0lIW1JPSz1ITlU0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE2imqObnsWsoZ+snZ2tn5KjnpakoKeqrJe2sKOqs7bFwr3AtsDCvMnCvsrItri1tLCztLfBxra+sLi0uragp62qq52en6WkwaWgqq6gpKmtr6Kmp721pbG7t7a1w7Kzt7q+scPAuLits7S1opyklZGToK2gmKGdqairoprDramerK6bm56ZpqC9oZ2kmKurq6ahmY2an5KeiY5Xf5WepqGguKqnk5i2o5+zoqCbr5efj5mUnYKPoJeWjaKklZCmrrOrqaKipaWVlZ2Zi4+Rk6SfiWNlW2RgTElLS09GRUFGSz49SkE5OUpKTl1RUUo9TFdcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXExPnp+hmJ7Ep6Wis6GcsqeTqqSfo5+tqaydu7CorLWyyMPBw7PCxL7HxL3Eyr2wsLausLWvv8W1ubCwuratmqmwqamanqahp8Ktm6yxnKqirrCppKe9t6a2ur2vt8Sts7PCv7HGs7q3q7S2raqipZWVlKOroZ+fmairsK6uu7KmoKmpmZmXk6KkuKGhpJKur6ykpp+SoZ6Vno+RjZSdmqOfp7Snp4yYtJyjsJqem66Rn5SXlJqAkqKWj46goZOLpqywpaeinKCekpKblIWLko2cnoBjZltoZktJTUtTQkNASUc7O0Y/OTlOTVVeUlNKPk9eXj1IUEJNTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ufwqijqrGho7SplrKrpqKksqyuqbuyrbC0tMa/xMS1wMW+ysS1wMjCtau1qLC4rMDEtLeurLa6pZmrsaupmJ+ml627tZuosJutn660sqequrOnurK3srjAqreywry0xae+rq23tamnrKGXlpGlpKKil5ikr7itsrW2oJ+opJmUlZOjn7ejpKWVrrGypamlop6ampqVmKifn5iinq6yoqaNl66ZpayXmp6lkZuOlJiahZaflIyQnJ6Ui6mpq6KnoZmeloyPmZCBhpaJlJ95ZGldbGpOUE5OVD1CQU5DOzpJQDc3UU9dXlJWUUFXYFxCSlNIV0tIOlVkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcGlWQ1dGjHlmQzuko5yhpb+mqK+voam1qp25r6ukqrS3sbC5trC3uLjFvcPHvbzEwsfBucHGwbqqtqWtu63Bw7e3qq2yvKOVrbCtsZalqJGquaqgp7Cdqp+vtLOqqba2rLursrK5t6y5sMG5vb6mw6uwt66oqqumnZiYqqGhoJGXoLCus6uwuZqbqZ+ZlpKXpqC2qaWioq+xs6uxp6ufm6Cgm56lnKGXnaOzsJufkJSmmqGpm5Win5aYipWYk5aXnZOJkJuZlI6pqaegpJuYm5OHjpmLfo2Who6ba2ltYW1uWFFRWlRBQ0VVQDs6SUE3OlhQZF5QV1dEWV5eTUxST19LSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lgRihAOGx9aFxWOol7Y0M9qJ+coam9oaqwqqOxuKmltbKroa21va+zuLy6vbe2wcO/ycS5xcPBwLjFvcG4r7anq7eyvL++tamusrifl6ytqK2Xp6mOp7ufpa2znquisbCzrKq2s7W8ra+xtaywtbHAucS2q7yvsbisrKmisaWepKifpJeQmJ+yqrOpqrOZnaebmZSNoKWktK6noqysrrGnsqyyqaObn6eknZWhmJuotamXmZGSn5mfoZ6QrJ+YmIaVmIudmp2Tio2Wl5qXp6ajoJ2WlZaUgY+VhXuPkoSMlmZsc2hwcl9HWWZWRENOWERaOUhCNj5dUmhcTlldR1teXU5NUlhkSkpDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFWMTUxPWBWXjgpQzNZVVxnSzWMemZMQKSaoKSst6OsqaWurraqrrS5pqewuMW3sbe+wcK1tLvFvszFucPBur+6xLjBubO1rKq6t7u6vrWqrbG2mJioq6qrm6yrj6u9nquusaOqn7Gts66utrK5tqmtrrGntbCzurzJsqq1tLG0r66mobOfmqisoKWVlZqZsaKtoKWvlqGkmZmSjaKlprKpoaaxq6q1pK6wta+jmJ2tp5qXnpmZrLiimJOQj5icoZmXlKyfnZSBk5mNnpyalpCKlJKemqWjoqCZlpKSlnuLkIV7jIqDi5JrbnludXxhRmBqWklIWls9e0pHRTZBYlRpWk1cYUpbXVpSUlNiYUxLRWBhYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuKkEvSkdQW0czY1lUS0SZl5+vqLGprKWjrq61qba0t6OstLfJurS7ur++tbS3w8HNx7zEvbe+v8C3v72yva6nurq3t8K3rK2xuZWXpq6rp6OyqpSvuqStsrGnp6Kxs7GysbWxuLKorquyp7ivtbPDxbaptLWrsK2pp6K2n56msaCklJuZlLGdp5ufqY2pop2blZelpaS3p6Kws6unsaetsLWspJmhrKibnJ2blKq4nJWOjouZnaKYkJenop+Wg5KWkJ2cmJeWiJePl5qnnaSgkpaRkJZ2hJCHe4WChIyMbnF4dnx/XUtlbFxKT2RcP2J7R0k4R2dXZVtMXmJNWFlXVFhUaV1QT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3JrS0RDkZikraStraumo7Cys6q2sLafq7W5ybmuwbvDt7OytcLDz8TAwb20vcC/ur+9s8Soqrmxtre/va+rs7OdoKewraWmsKWesrWsq7KwrKmotLmstLO1rLSsqauorKm5rbGwx764pLmvqa2tpqitsKWjo66jqZydm5qvmaKjoqOQrJ+joJ+hqaWluKSrtLSkqquorK62r6Kdo6iqm6CZmpKktJqPiY2HkaOglo6UnqCVk4WOlJOdm5mWlIeYkpWZp5ygn42SkY6Rd36OhXx8fYeKiXF0c359flxSZG5eTlpnXUZElltHOk5tWGFbTWBiTlZXVldUWWdeUVJMZFpbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NlOzYqSGRISis6ST8zQ0lTLD6Paz5ISY+aqaqhqLCkqKOztLG0tbGxoaytvcu6rsG7xrG0rbTCw9HExr7Asr7Cwry/uLzFqK23rLO4vMGwq7KtoaSnramopLCjq7Gqr6uxrq6tq7O7p7exsqmyqaqmpaOtuqypscK5tKy5qKioramnsaWppKKuqqiinpuirJWknZeemKudoaeooaylo62st7GxoKmin6qtsKydnqanqZmjmJiPoKeYhoOOioufoZCMjZedkJCGiJGVoJ2VmJWGlpOTl6WcnZyLkZCNin9/h4V8d3+HhYd1c3KJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU9kXE5VVlVXUFxhX1NPTmhYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLklnREY4PEIwNUVLWDFAlFxATUaVlqynoaqynKmosLWsuLSuqqSrq73Ju7G+t8OvsK2zxMTOzsO/v7TAw8S6wLTJxKyvt66yusC/s66uq6WoqrCppqiypbStqrCurbGvs6yzuqS4tKysrqeroKKesLerqq26tqS1taSpp6ysqqyhqKamsbKkpqWhoauWqaCTmqCmnqOiqqSsop6msbesrKKlopqpqq2pnKGlpKOYoJqVj5idlIGCkIiFnaCNio6Nmo+Ri4SNmKSckpGbjJORkZSjmpuai46Li3yHgYKCe3WAhIF+dXeLo4d5a15gbmdXZodkTkBnkkxEYnpXYlhSZVVNVlVVVE9cXWFVS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZBSUhElpGvpKKqsJeqqK21q7awq6Srqqm8wcC4ubO8taayr8TJy9G/wbu5wMDCucG6wsSusbWytLzBvrOyrq2rrKi2qqWtsKq5r6iwsK6xq7WqtrWmtLarrKSpqpyjnbOzqKiktLSgtq6hqairqKunoKqrqLm2qaqpqaGpn62bkaihnaCjoqaiqZ2cprSup6WpoqOXpaanqpyio6OfmZifkY6PmY5+h42HhZ6eiISKi4+OkY2EhpWimo6NmpGSkY6Tn5eYlo2Kg390h4F/f3h1g397eH6AiJ2PcHJnZ3F4XGF0iGlPXZhWSG15VWRWUmNPTFVUVVFPWFpiVkhQalRXU0dQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JFO5WNr5+lqq2Zq6StrrO0rqqlr6mpu767wbGvuK2ita/Jx8jRwL+9urzDvbrDwcC/r7Kzsra9vMGysrOrs6mltamkrbOzua+irbWxr7G5qriuqq62q6qeqqugo6G2rqihnq+yobSqnqinqqOqoaGsrai9r6yurKGnp5+rmI+vopiioKinn6ebmamwqKKfrKGgkqGio6aYmqilmJiYnY+Kh5WIfY2GhIWkl4aCgoyHj46RhYWVoJeJkp2Rk5CNkZ2Vl4+KhYZ4c4F/fXV4eoB7dHR7aoKHo3VpXmVsgXVniIt8UldwXkt4c1RkU1FfTU1TWmdOTFZZZVhHU2pSUj5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWk6MzhfPWFkP0YxQ1BbWytITztYQjSPjrCfpKWqo6WjrKa0s7CppLCnqri+wbywqLmqp66wycfI0MK9wL65vr68ybzCubGwtbK6vLnAs7S7rbmso7Wnp6yytrmypqe6ta20vK+8pa2ttautnKmvpJ+lrKqnnJ2qsqSzqJqqp6qkqZ6iqKipvau0r62eqaOgrpuasqKVpJukpZ+kmpmoqqWemqmhm5GaoKSdmJapqZGZmZOQioKPhX2PgoCIno+HgH6Mh5GPkIWAlJuUhpOijJSRi5GbkpWHiX6Acnp5fnxod3x6dXBxfmmGeYSIZGBoZHKFe21neV1eVkNYe21UYVBSWEtLTXB0XUhaW2dZRVZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpOwmZ+fqaWjoaqktrKxpKmxpq25wb21sKO5raiosMPJyczBt73Atbe/usi2w7W0s7Wyvbm6vbatuba/raKzp6qrr7W3tKqduruosb+yuaCvtLaprJ6tsaOcpaipop2cpLCmr6Cfq6mnoamco6igrbunrrGuoaqio62enqyll5+boKKcn5uZoqqimpmjo5WWk5+hlpuWpqyLnpGQkYyCi4B/j4F7mpSNiX1+jIeQj4yKhZKYkYeUpIqSkoeQmpCTgYh8eWx9dnl4Ynt6cnBwc3hqgnRqgmdjaGFuc45tYmpwYG9CXXlrVl5OUFFKSUxTWVZNXF5tV0RYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUV09I5KXq5ifl6ejoZ+no7evraKvr6mruMK6s62fua+rqLS6x8rHv7fCvq+0vrfEtsOysLqys8C1u764qbm4vauktaeoqrCtubCpmbm8o66/tLShrre1p6ansLOgn6Wmp6ClmZ6sqKmeoKqup6Cml6Kon7C4n6SxrqCsoaykm6amqJqam56jlZ2cmp2pppaanqiRl5KYnZOZlaGqkJqJjZCHfYh/go58fKGMjYl5g42Fio2NhYiTmo6JlZ+JkZWCjJeNkH2Ee3NwfHFzdGB5eGpvcHFwan9zY3psaGZkYWWHgGBbcmpxTU6AaVhaTVBMSkdQUlFITVtfb1REWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MFxbNSiWm6WYnJWsn5+hpKG3qrCjtLSpqbnFtrKuoLesra2wtsXHwLe/wrmwtby3v7u/r6y+sLO/sb3Duam7urinqLaop6uwrLOwppm8tqSrurWun7G4r6mlp6+ym6GkoKOkoZabr6ahn6Oor6GgopOjpKK2sKGmsaufrKKul5uqpKiel5qdpJOam5qdpamZm5uklJSXlJyOk5eiqaGQiYqPhXqEfoSKeo+Xio2HeoKIhImMjoWOk5iMjpaZio+Wf4aXi496gHpwcXZucHRfeHdlbWxsa2mEbmZyaWtmaV1jdIFgW2t2aVpKf15bWE9PS0hIUlVGMjldXm1QRFhWWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJjViwylaKhl5SbqZykoaKht6muoLq4pay9xbOwrqO1r62tr7TDw7yzv7q3sLO5uLq4uq+uwLO0ubC/wbisvbq1paKzqqepsqutsaGawLWkp7W1qJ6yvKmopamvrJmjp5ykpZSXobKlmZ+kqKmcoqCTpJ+juKikp66mnaWhqJKfqKGhoJianKCSmpuWn6Gqm5qYoJSQk5aZjZSSo6ikkImJj4Z5hHuEhn2djomKh3qBhIeJiZGFlZOTjJCVlI2OlHuCl46Ld357bHRxbGxzYXd0aGhqZ2dvhWdoaGNmaWpgamNpZ1tle2NgU3RUXFtTTEpHSU9TQCEqaF5qTENWVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z08nMp6io5GOo6abnp6do7Wsp6q6t6esxMG2sKyjta6nrq+3wL+8ssG2sK6ytra4tratqr2zrrKxvb+4rry7saWftqulpbSpqq6encGrqKWvsqmstbueqamrsaWYnqmdp6SRmKatopiepKmhm6Gclp+dp7alr6quoaGdnaGUoKafoaCZm5mckZmdlKWdq6GXlpyUkoyVl4uPmJqpoJGIiYuIeYV3goKCnYiLgol9f4WIhoaRhJaVkI6QkZGRjJJ7g5WNhnN9fWZ4b2tqa2d1c2tjZ2RkdoBiZWZmZWpqZGtyWl9ZXW1kYU5pWFtgVkpHSUtNUlg+OV9saUhCVFNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao5+Qi6yhmJiflqSzsaKxvbahsca8urGxpLesqq6puby7u67Asq6urrausrizqKu5sa+us7a6trC4va2mnrWroKCwpKqunKLAoLGkrrCut661nq2vra2imp2nqaWelZqnpZ+ZpKKonZqfm5ScnayvpbqorqKhmpqdmZ6jmqSdl56Ym5SZoJKolamnmpOampGLlJmNlJSZqaeOjYqJj3yCc4GBipiFh3yJiYWFioyKkoSUnJORj5CQlo6Qf4CMjYJwgH5meW1oa2lncXJrXGhjY3OBYWZoam5sZ2pqaG5dbGx0cGFVY2lkZVpJRkxNT1hRUVZhZYFVQFZTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kaGajY+wnZqToZmosq+fuL+2oLTCu725saa2sKiupbe4t7etu6+sqqu2qrO4raWztbKuqbC3trGztbqnqZ+1qJ2eqKKprZqnvpito66vtLWtrJ+xrbCpopyco6uom5ScpqOdmqmipJaan5yQm6Orqqm7n6ekoJiZmZ2hj2uhlpmccIKVmqN/dZGpp56UlJ6QiJeZgJaKoZB4hpSMg25qfnaDcWyGi4Z9hIyHcF5jYWeEmIZsi4+UknR3i4R+g49/Z4aAZ3VoZVdcaHNuTlBqY2dyhGdfZGZubWpeX2GKj4OEZU5LRDlGVGdeSkdQUFRVS0hSYG90ZUZaUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoujmYaUsJuck6Cbqq2qo73Fr6m4wri9vK2ntrClq6S3s7KzsbmtqaastKavtaKouLa2qKest7OutK2zoqmfs6qeoaScpqaYq7qVpqWvsratrqSprquspaGfnaCnp5uXoKWlm5unp52Tn5+YkJ6nqqO1r6Ojo5yWl5eXo4ihjpKah6GHk5ygf6R/paqekpGakYiEcniNjoWIoXaIjGmXiGZ9cnihb4iHhH6OfX+hoKCZgHyHnnSHjnabimyHgYNsaGVjemtxYVOFbWNsaZhxWWpxb4dYXmlba2tbiHFuenKFZ4aEWl5HTj9HX01GUlZWUVFSV1RnXk1XSVJTT0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiLppaDnKudmZidn6qqp6q/w6+xur23wL+qpbewqa2ms7Sur7O3q6mlsa2ltLOcrbW2tKanqLOxrbKorp6roLKooKOimqChmq2zlKOlpbW8p6ynq6qsqKWhoJigpqOZmaWjpJibo6mWlKOclJOkpaaht6OjoKSYlJOXk5uIro+YlImpi5ehm4WxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGXvJzFenK1pruQe4BslrGrsHhoa1ixrm5labySvG5oem5yj9h+U2pitrJ/gXKVdJqhqpBXT1diUFZORlRbWFFQUoxcV1xQQFxEUU5ER0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaSgKeqn5ecnaWtsqixwr2ytcC1t77Cq6azraypp66zqa+2tKenprSlp7iunLOytqqlpKeyrq6xpqqep6Sxo6Kfnpeanpyuq5Sdop+zuqOqqaKtrqWhnZqaoaefl5unoJ+YnaankZynmpOdoaaioLCin5+jlpWSmJKZha9qaoqNqn5ng5WGrWRwnZ2UmaWUca6hpH54u31roY92sV9qtFulgGackWBmgnpmf2p4a6lkvnJnpox1sWp8sXh0kpNjbW2nbluEoEVoZoeWRXWcYH5nfKSngllfi6tpgJZ4eWqnN0qvXFhTbGRbS05XX1xXVjtOiU9YVy9JVFRJQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKsp6Weo6SqsrestL2+sLbEsre6wqapsKuuqKmwrqOwuq+jpK6yo6m4qJ6zsrCjpaCqra+sr6ann6OisJuim5eVlpqarKWWm6Ges7Oiq5yira2gnZmXoKGonJmdo5+cmaClpI+dopqXoJ+qnqamoJufoZWVkZaRmoW1m7V4hamZtZl2hrObt36TlpaolH5rgaZ7goaIkpSSd6tna7Fbq3uPh5R0iXGPhoB/iJCXeIKCi5iMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5WFhBI01oRUJFQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5WHs6amoa6pp7Ksqbu2wrC7wq24t8CqrK2trqatsamhr7yqoae0raOrtaSms7Ono6Kdp6qyqLCnpZ6fn6+Wn5iUlZWXnayhmZmkqLSvoqmPqaiqm52VmKClp5qfnKKfm6CjpKOVm5+XmZ2iqZulmZycoqCXk5GTkpyD1ZOZuXCwwn7FhnzWlJu7fJqVpI+NnI2ke46HpIKlgnqseY+dVq96iH6farlauXaHhH2mgpN8mHqqeY2dkHuxbo6EdJC8hW+UUK+nxYpRoHpjYKljdHKIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhObU1bUk9ZZlpDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzElm6KTmLGoqKWzqqW0qaS8t8GwucCxtbS7s7WnsbCjsLKmn662qJqnua6jr7Ggs7SwoKSen6epsKm0qKSbnZ6rl5iXlpeVlaCqnJmWp62wqaOej6yiqJadl5yhpaGYoqGhoZqhoqebnqGelJmbpqCcp5Wbm5+hmY+RlJGciLJuaLVxq4dujqZytHNytnual6SLj52No3+RoaV+sHaDkdLRdlyue4V/pG+bqqZrh4V9rX2XmY97sXOSnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa2BsaFBVR0k4PVZRWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGdkqWvraSqvK2mtaWntru8srq/t7W0urqzpbS0obGxop+ssKSXprqupLGwnLS4qp+mnaGppLKorKmkmZuaqJ6VlJiZkpKip5+WkqWqsKailpOtn6WSlKCbpKaflJqlpqGaop+tmqCenZCVm6GenKWVnZaZop+VmJWRmoWse3eodqOOiIapb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9eIV+j56GmZl3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV93d4domIhrXa93lZ6PeGw1eciusl9CU29eZ2BFUG1fcG1WVU0uZWNoUlhRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk6OTmfnZSfuLCXtMGtqLOoqbK6t7O4v7m3srW8taS3s5+0rJ+fqKyflKe1q6ixsauttKSbqaCgqKG2p6apopmdlaWhk5KbmJKUoqWakpCmrK+moJWZqZ+ijpGimailoJWapaidnKSerJ2hnaCNlJ6anaGYmZyWl6Ggk5iQpp6GqX19pXihj46DqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aIdKiCjpuNkqN8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcW0x0XWJmTVthX3JzX0pWNkqbk1hIRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84oZ2Zmb+rl7TCrqytqaa0sLextb+5ubKwt7upurSfsKSepaennpOqsKmvqrWsqq+hmKGgpqWkuqKjq6CWm5GioJSTnpqUl56fj42LqK+vpp2Wm6imn4ySpJeoq6eUl6mnnp6go62koZ6hjZWhmJ+gkp2XnJWdoZWWjqubj65tcrRyqYx2iqZztHhzs4CRpKOSnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZKIrWt1s2GdZqJvh5Jql1ytX02hfIeRUnOjbXp/fm+Yh3Fcr1Y8nHdlVG9uLlynT2NSa2VibVpjXWBwe2NTWlE+Pm1vM0NCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWam527oZyywK6uq6unt6m4r7XAtbywr7m4q8G2qamgm6ajop2RqqqotqOyp6+qoJecp6Ckq7ido62blpmPpaKVjJ2hm5icn5GTlKu1sKeZlJysqpeMk6WZpa2ikZaqsaSfnqarsJiho5CZopafm5acl6GSnKmclJCqmYfUkpq7c7DDgMOGftWWm7h4iJCYjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2VgaypcXt/dbyIp6BpnWGmjq+hfox0h6p9vm5zvHSyg3V4gYpumohxbo2kdL1ed31bYXm8a1pWW2p6XmphZWdibXhvWVtZQ0FAckBDRys1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56hvKKXscOwraqqrLGnuK+2xLG6sa66r67Asaukop6jopybkKmkqrKktaatpZ+WmaqZpqy4nKKumJSgkKWfkoyco56XnZuRlZKvubKslZejp6eTkJaknKSsnpGgqKufm5+oo7Oeo6WOp6GUopqcmJWjmI+woJKUqZ6FkJm1gJCRjLeVeIKTmrV3bWtuc295j4SOiXSewbu9mnuBsqhwgHSRuYN8hoaMho17ioeNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtXRycHe2jF6Aen2KaIN5bXlji6xwdYV/WlunakVlWlRmYGNdY1FnZ3BsdUJNUExEOlpNP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlYnPjs8p56gob+llrTCtKyqqKyrqbuusMWutLKut6e0uK2poqGlnqCdmZOrpK2qprWop5+blqCjnaukvaagqpeUnJChmpGPoqihk52Yk5eUsrW3rZido6OiipKSppulqpuWqaSlnJqhqKamo6mhka2elqOel5eXnZ6PsKiUm6ehjmp+aZymeIdyfZqOdHpkh3u9vsC6b5KCcZWHYXNqWl6bimFjiI6Va2CAlWRtnXdilWuAmpWUZV5hY3GaimlyjH2FlWdqfnJ0eH19Ylt3dIFoUFxuhH18i2tYbHqCc0pKb4ZwTXVNRVddZ2FMWldnY19PW211anFST0RFTjtISD1MPzItMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPVtPJz8yPqigqKHCo5q0ubajrKWup6i1sqvIq7Czq7SjvrGypqCiqJ2jm5mZrKavpKS1qaWbl5WhmqatqL2nqKaVk5uVn5mSl6SpqJCdkY+YnLCyv6ybp52moYiTkamaqKOam6yfo5mao6esop+ropqxm5WnoJeVnZ+dl7Gkl6GomZyRnZyipJimopqcmpqZj5WBZ219cXeSl5SRhYu1qo2GmJWOioyYl4eUlYqEkpSRiY6SlJiUmJeaoKKanJShno2CeqSGbGp8kHyAdImKgXGCeHl2douAfIprc4F0g3Vldn13a3B7bWBjXXBoTVhaZmpgV1pveW1tZlNPRlM5T1lNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzobOhv6GksbK3oKmlsqelsLWqyKussKW1psCntKCdpKSco5WVoKqnrKOjtqufmZaVn5atqaXAnquklZKcl52XkpOin56ip5ORmainssSvmqucqp6QlpaonaqbnKCsmKGbnKKkr6ahpaifrpiXp52ZmqCenpyvoJyhppWYkpiToKGVo56XoI6Wk4qKjY6WrY98lZuCkoKLqqiGgZmXioSPn4h7hJCHhpqSiIaKlY+bl42RmJ6klpqTkZ6Nf45mobOvhYqEdnqQinx2eXpvZnqRgYCJa3WBeYhzaXN/enWDh4JrdGR5ZmBpZWNkZmtZbHtwaWpcU0xQRF9URUA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r7+sq66ysaCqprGtoqyzsMSwqqujs668o7Sbn6aioZyZl6elqaakpbK0npWUnZmZsKatvqCropCRnZqZlJGUopyXqJyEnqqrorPIs5+qpKqWlpeap52omp+kq5Oenp2gqa+ppaOroq6bn6ChmKSenJ+dr6OYnqiTmJeckaSZmKidmpdlgpJ8ZX6NmY9jeY1saGt7kqSqamWamH5nhoplZWloe46hj2tojZeRo3draouZo56Zc2xue4SNh3pYZV6Ggl5si4mAdlxoc3d3koCHgm54gniAc215hHR3iYiOg3tphllea3RkXXOJaWt9cWtjXlJOV0pkWEFKND1GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsKqlqK2tsKetrbC8samnpK2vsJ+tl6CjnaKZmaarnK2jpaipsq2elaOQoq+mtrmlrqOOjpqhmZOSmqCZmaWVe6WtoqizxLikoqevnp2UnqKeo5yjqamSnqGdoKqwqqukqqCqm6efqKCslqGbpbCkl5uqlaGem5Kll56qmJ5+vYOHcrRyhJ2FrWh4ucS4cZOio3qmmZlzqoJ8y8DAu3GMooiCn32WmImdwL2Cl52djZ3CwXyCfJKNmsPAfWulsm+MgW/Ken+bd5KDjoF2eoGAeXF6f4dxeIWNk3ltd5RjZl95ZGBlgmNedGhsZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JRLyNGWzNQWS9VQUI7LziWo7nDtLCwwKmolKOvqbCuraaztK+ppaamsaufq5iaop+cmqqnop2so6WopKS0pJ2ik6atq7ezp66ikZGZnaWSkJ+hmJufnYenrKSrrcDAsaCpr6mXkZ6doZmio6qjk6ChnZ6trqmsp6Ojp6GmpZ2tqZKkmqitqZucqZysoZaWpZWhopecf86UeHqkgXmUlptfro9ejqeBoqB9p5acdKuDgK9eY42qe6eHhaB0l5OIs2OCq4ahjY2zaoWvdH2XiLhhg61Zo81tkHV72nt/mXB+iJJ2fmV7iHZ2a3yIb36FkZJ+bYKPYHJscGdgX3lkXHFoamNmYFJUUlddS09DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGkqqittKulsqysq6SrprCqoKebmaWXnKKvn6CfqKejpaGfsKyanZWnrq2xq6isoJSSm5+kko+epZidp6OerqSrsKnAx7OoqbGulpKdm6GXn6mqn5Sgn52drrCnq6mcp6ikoquTrLOXpaKqqZ2jpqWhsKCSmaaZoJqUlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnneqgn2tf5xzrX6rh4afdpiSe3yXfqqIooyRjJ1+q3uJlI+fgHutVpzEeo9vksF9gZVtdW+MbWV2ZYZvYXducm+Ki5KQg22SkGZwdXVwYGdtZV9vaWluZ2NXU1xhWVJTQzhJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytKCco46jo6Ksr7avqLGmqKqnraurp6KjnZmilaClqp+hpaCoqKKfnbCsl5qWqKevrKimqZ6XlJqjoZGToK2bnaajr6yjrLWqus6yraatrJaVnJ2imJ6urJ2WoJmen6qyqaqqm6yrpKOsm6+xoqirrqWYpqqpqbGikpajpJqUkoWkaqR1iXqpdHqycIKmipmMcYigmoekYGFSq4R/roObdq2BpoaGn3qZl4Z7ZoCjiaSZhoKkfal/gpWHrl59qVWdopKBeqKfgHvDr8WLcq+zs7lxYqmvwnRojYyYj4FtmpRwbnl4eG9sZmVlcXBmfGliXVdgaVhYVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVv6GZq6ehr6KesLSwr6mtoqemqqurqaSmoJuknp2mp6ajnKuaoqyhpJ+vopybk6qktbCvoKmbnZaUpqKQmqKooKClnLCmpKiyrbfJsrWqq6mVkZ2copifpbOdmqCUnZ+nrKykrpqtq6OjqqKzrqKqs7Ghmqmorq+2opKWoqeYm5F8qmyehId1q3l8sG+CpIuJn5aWn5SB0ri0uMmAgbJfYJSpg6OIh6B6mJaaeKrJdJmklaiqkZOajICbipnGxnhmoYKlc4GfjoJ9r11wtGKwdUujhm2nR4KTZI+QnpJ8cZeTgHF7dX57bltmanJwZYFqX2FYZG1cXllJTkxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqbOtrKWinLK5rKqhppqopaqrqqegpqWYqqOfr6udpqCsmp6ppZ2ntZ+il5OpqrayrJylm5+Uj6WskZmbp6OgqaauoaSnqrC1wrKzqq2ok4mXnaSaoaOuppihlZmcpqasm7Cdrqmnnqykt6ygsbmvnZuup7Kzs6SUl6eimZ+Ogp1OeJqBf596g6N9g6SEhqaenJ6ThLh7fHm5gn7MxsK2eJuhkIuffpqWl4p2npiKpZikqX+whZ2Fn4SsfZqUYqVspHCPhZCBfZaCcqxgo3NxgJpgvH1SVXWPkqSXe36Tkot1e3OFf3FcbW54cmqBb1tkX2huYmRdS0xRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq+gm6Gss7Oln6CVpa6trqqnnaammqOnobOuoqmmsqCZqaSUorWiopWXoqm1uaObopyhko+hsZiem6eloaKvrp2kqKK2ssSxramtqZGHkJynnKKknKWXnpiZmqakqZqvoa+lppivpbytoba3rZ2dtbK4sLOml52voKOdhY/RtcO3eYeOhZGTkIGmeJShd4ygkYSlgYpxqoaEtG5yapmjnJWKnnyYmYaHj3OvgqWboo6mi5OdipWQmm1wslylc5N6nGyZf3uZfG2pYaNxcX+fYnOyuGh4kJSmmH2MjZSNeH15j4JtaXhpeXJugHVdZWRubWZnYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWTc42Krb+/vLq0npanpa21oaKZlaOop66rrJmmop+moKC1p6Kpp7CjlKyjjqSto52QmpqqtLSknaSbp5GUl62fn52npJ2nnLWaoaqktqvDsKmrqaGMhI6coaCmo5WampyYm5mnpaaYrKiuo6Wbraa+rJS9sKyforCyuauzppqosaOnl3qokH18sHeKgaSliJxtsm+gh618oY6DqJWYgKyJhK6Fn5SqoaGXhp+AmZWAe5J+q4CdmpeLq3idn5GJk5KAea9do4F9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWSppmClY6YjXt7hJh/a21/Y350boB6YGdlcW5oZ2dDWmFbPktUM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBgYWFeXVtaWFNQT05JODA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVldXWFZVVVFIRklKIygovZKag6nGwrbBs5+arKCuuKWjjpuko5+wr6qfpJ+drZmeuaCjq6CvqZquoZCrqKSWiZqQrrGspp+mmqyXmI+soaGdpaGapZ2tmKCoprapwK+lqaSfi4CNm5qfpp6SlJqalJqapaSkmqmsrKSln6qovqSWw6yqoqGrsrmqrqegs66oqZh2r36Qi5yFh3y6roqYZbCMZZWtfaGPg6aVmoGsioSwhaaZpKGhkYWgW2xqgbNgf617e4KBsW1nb5mYjIiwW320XKSDa8iiZJ+Ae7xYdrVasn1SroB6rFiAoW6YkKibi5eRmJh8eY+dfmR0fmKEeHSAfGFqZ3FtZmVlT1VkXEJVXz5KKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFhaXmBgYGFiXl9cW1hVUE5KRkM1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpcXFhXV0dCO9Kfs7K3vbq0wrOjm6ympbaooIuaoJ+cs7Opn6OgnrWYoLSoqqyer62erJuVr6iijoibjq+sqKeippmukpmPqJqhnaSfmaSjpZmfo6qyqb2vpaienY59i5qVoKCZj5Gam5Kal6ifoZqorqimpqOlqbueoMampKihq7S1rK6mnrutrKyVgKmSo6+Pm4CHpJeYkIGAuMO6g46ck4SnlpyCrIqCr4imm5ulqpF+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGujgW+rhGycf3qysMeDaquwvax4d6K+vHSBlo6nnJCbkZideoKRm3pjfXtkjmd5gntgbGVramJQYVpTalxAVWFCTio9OjQvHh8kHiUyIB0kKDA0OTY2Nzg6PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbO0sb+5sb2yop2upqWypp2MmKW/qriyqKG/pqeynJ6xnLqon62vpqaUlLCsl4yDm5GupaKsoaOcqp+Yi6OSpp6nnJqhqKKZnqGsraq5rqijm5eSe4eZkaabk46RmJiPmJOomqCYqamhqqeho6q7nqjEoqCuo6qztKqwqaC6p66umnN1qqS3hmWJoHBnrY+Kj21vd6SQmZ+Bda6YlHCPi3GVqKObl66kcm1tbGaLeG9ugplxgXpqcWlniZaVmHFpaYSHZ3CGZF2IYmpvWV1nfnemX2FxjpFuZmWAjZOPopiZmZGYn32HkJV2Zod4aY5reX95ZGxjZmxiS2RYSmxaOlFlRVInSzorIxwgGyIsKRgbGC0yLjU6NDU3OTw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6m5ubKzqqmhrp6jsqmYkr6yxMm+tqqewKyso6GorKC6o6SurK2mjZeuqZCMhZWWrZ6mq6Geo6OfkYukkqeZqJmWo6qglpympqevuqysmpuTknuEl42lmI2RkZiUjZeVqJWfmKmjm7GmnqKruZ+vwKeksqWssLGqraunt6Ott5aKoKiltp2JlqKYh6makJSdkqmzmZujq6CxlqKgnaCinKCloZWrp42TkoyHk5yclZCak5iRjpWFgaSal5WNi5OTi4+GhH1niX50gnZ0h4txp2x6lJGTkoGBjpCQj52VoZaamKKDiJWNcmmQd3GLeHd8empsZGNvZFVgWEBqW0hjYU9aK0Y9KychNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhUVlleYGFjXV5VUUpFRD45PUBBU1hbXFpXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbaurqKwo62foLWxkI6sx73Fu7mroqaem6afsaijtqedqbSnqJGYrKKLh4mPm6eWrKWgmaeenpKVo5eomqiZlKaho5Cap5mhtbuoq5iakI17gZSLoJSKlZGVkJCTl6WQn5qqoJy2o56nq7enrsGuo7amr6+wrKmps7igrryZkaWkpraikp2mn42pn42Sn6Osr5uho7Cor5ejoJyjqp6enZyWq52SmaGblJCWqpmNmZmWkJaekYmgnZWUhZKMkI2Ui4B9ZouFdYZ1eYiDc5xqhZCUk5CJfYyWkpKXlKKTnpiihImZh3tylnN6i39yfH9qb2RecGphW19ZbmNQYGRQWjpHR0U+Mj09OC8rJispJh0mNDA2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVVBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX19hYWJhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaatoKe1qpCQnaW0vK+traKjmnqdorGkpbGpl5y4pqOUmaqcjoaKiZyjj66fopWnn6GSl5ibrouqlo+omaiMmKmPn7m2paaZm42IeYKTi5qTipWSlJCNkpeijZ2eqJ6fuKOAhK+1oq+vdaS9o7Kgd3mgqrK6lHWspJ6JgKp/ZFxidqCOpJ6El31uk7Odo6etqqNlnZ+Sc3mZlnCAmKiXbH+iqIplnKWckZeYloySnJGGnZqQlYOSh4+PkomEd2qOhnaGcHuGgYBhaYeKlJKLWnWVkWhoj49ze6aamWV5mYeDeJhqhIuDb3mAa3FlX3ZwbGtoXGdlYmJwU1w+Tk5OU0c+QFREOTEvHh8mNDozMTY2Nzg8Oz5AQUFGSEJHRklLTVRUVVldYGhmZ1dRSjxERzw4VVJbYGFiYF5gX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6GvsayrqaWprqOmraSSlqu2sLKnm6umrJd0jJ2vn6irp5SXuZ+gj5yknZF/iYibno2rmqKVp6GdjpeRnoR1ro+IppqpkZekiZy6tKigmZiLiXV3k42Vk4qUkZCUjJCToI6boaeZnLKWgIybtZ2zjJKPvKegfqeieqKutoGOjqaeg4uGkLGpr4yKlqOaeYCLrIacnaKnqaeHlYWYd6WbeoebgZengoJ7nLJ6ioagl5mUmJaCkZeWhJqZY3mHkISOj5GKg21wjod5gHCAgYV/hnSGhJWReJZoknSgmnR9mYSinoeYf5OLg4SZa46OhWx4e3FxZ2R4b2psalxma2pldFxfSVRMUUBFNS5aVFU3KSEwOT0+NjQzNTY4Ozo9Pj5AREk/SkVKS0dTWFtZW2FhaWZaUUg5RUs8PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mra6rqKygqLGmpqmlmZSuyL6xopenqbWej4SdrJynoqCNkL6emo2fmqCQfIaOmZiIrJyhlp+gkY2TiYaAkaiNh6KdpJSYnoafurKnnpuSjoVwdZCJlJCKlJCPm4yQkp+Sl6Gllp6rh5+0ibSarYrKh6quiLeFjK+CsK6DqY2lmI2dfaiPcnt3nI+nlmiVpHm0jJ+epqiSmMKBf6uImKFynoCapX2XhZWxgKF9oZOgkJiXgY6Tm4qYkYt8hZOGjZWSiYNtcpCFf3lxhoGEfIR1hIGWgI/FZn+ph4+ja56Do5uEmoGOjoaKmXGOk4Vod3R8d2hodXFoaGteZHBtZ21YZ0ddUk0yRDQ2TmFjNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmptXFFFPUxNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUl6KfsKepqKaroKS4sKmqppqUoKOkq6SXpaq3o6+AoaecpZ6diZS9mZONoZKej3mElpaRiKuZm5uZoYWPjHebnI+fkIiepJyWmpiHo7mupZqcjIx+Ym2Pi5OQjZCNjZiMkZKfj5ShoZmhp36hp4etnaCWrY+enJ2RhYCgjauuhqONqZmMmn+jdYCZlGuCrHVNq3iHjZyRm6ingKmrfYOhe3qnaZ5/kmtnl4aXtomefm5gZFmDl3+Me2Roi3KZfXmVbF18lm1fU3CDXF9reYNgWWWCfYOAl3CnqmuDo25ypXCfhaBpZqBtW26KfGZaYIN/YldQb3dmbXRya2pvXmtwbWxpWGlPXVhGOUE0R0ReazQsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl5jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5adoLigqqSmrJGhtbyrrqKZmKCipayuoZ2utaKokqGgn6abmo6ZtJmQi5+MlYt1gZSSjYqmlpWYnp5/koWGrKSHm5CKmKmZmpuSiKaxp6KWmoiJgGluiIiLjo6Ki42SjJCSooyUn6CcoaR/k4GPo6GUoHeclo+ng6Gnf4aprISleIp8hJp+onBzlIiWe56MeW2Hm4yZkJuomo+HnXuConN2pmaefnekX5h6fZJzom6Yt7S6dJOHgn+1qGSBxrh7cJW3i3GAmqRic6yrYH1pnbN+bnyGgo2Ci5hxf6NscqN0noSAo2CdmbOWcXyXn7N0c1uesoNqYm90dnFpb1hrbHJyZl1pXmJLRT1ENlFBWXEzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1OUUBEX15bWVhgYHxkSEM4TFdVVmNhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLe1rq2gmqKdo6Omrpybsa2sk5ihmaGkmZqUn6ubi4iSeIuFcYCWjYqPoZCSlJ2XfZCJjaihh5iOipGjlJybjYupqKWekJeHhX5re4d+fY+Ng4uQkYmPlKCDl56gnaCei4l3nJiijJ9yoYuHqIibpY+Wp6p+rYx+eqCZeqOTeIF0loiNnH2Vn4abjpmbpoaiZKF8iJaQm41snmiajW6amXuAi6d9cmh0q4Oeg3SqaJWaXZuFdoSdaKpqgLhmXKhwgZxglYxep3Z1h4l+nmiadYaTkpeOf59umpBtp5pdqH54u2t+qluOhF2zZ1xucnp4a2lccWp4eWNgZlhiQVFGTzdWQ1JvNUtaWl9PWkRAMTUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXVllZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniGOUm6u6srGsnqacnKmfnq6bnrCorJ2XpJqhn5iWlqGkmYaJjWqIgHJ7l4iLlpaEkZSYj3qKhJaknYqUj4aLnpKdnYmQqaOgmoySioCAaYCGeH+XjHuJjo6Ij5aaf5Sin6Chk5hyaJ+Kn4+McJKMgamHmJ6ip5+nfK+to6K4l3ejs6KkgIiUeZ17qpp/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmn90qlpdb3uWi3ieYkx+enqFY3mXQkyeWaJqcnyObYCIhJl1m3iGibGzf3+bk6d2gp1uc32Ub5lza6RdlXZIZWRhc3F+fm5mYGxpdntkZWJSXlddVVdAWkVRaERTV1xiWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQzxVX2JaZmpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZsXmVnZmtkZmxpaGtpk5yBsK2ZhFReoKazubOzqZqijJyrnJyplKGrpKGoj5+enZqZlpihnZaIh4l3hoFveZWFkJuLfJGTlohyf4iSoZxzkZCBiJmVoZuFjqmcmpWLi4t8g2yEhXGBoYx4ho2IiJOYlXyTo6Ceo4ithn21hI6enHullnqpgZWcj4qgnHynaHdtfpl0oXNxfJ6GmXCTg659pIOmnpmAo29eqGd1o2NvpWGc05B8e5l4cnNjooaQfqNzpI92a5CzjGCCmIlzqrKovH93g21+vqaptF6cbn1xl25/cqJyXaRnc6ZhaKZtm9SZfYWbcHp6l2ubfHiXc26ppGdhZXlwgIRrZ2ZkbnV3Z2BjVFtmUVFiSVdKVGFXU1tlalxlUUZDS01KS0JLRThPQFFOWFNZT1NRYWZlalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7CrVFxLfqmvsbSws6OcmYWZqaChpI6lqKCYqYqZmJiTmZOSoJiOh4Z7cH2EaH2Pg5SagXeQjo+Jb3+Gj5KSbJeTfImRkqSWg46qmpOSi4WJeoN2h4BugZ+Gd4GShoiZopd7lKOkmp+Js6Gitot6rKekrqVwqICakIWAm5F7pICimYaYcp6Eo66vipeMf4ykjZWDraGUdrS1tcmhc5SKgZ9gnZepbXmVhqCbdaGHd6B+kpeLgW9MZqOScJuHcqR7enRhg4FrfqBrcWRfnHF9dJdpemmztbTGpnOYfnqda5ybq3WEm211eJhpmnp1mHJQRX20Xmp2a3mHZmpoYnR1cG5WXlRZaVBTaUlWTVlUVl1oa25WZ1dNSkJKTUtISk9BUUtQZWNqbWV1c3N/eXxudYl7e1RQTmxeaFtraVJqaGlsZ2xmY2VgXF1cXmliZGlre19dZGhjamZvbGVpbWWhnIivpoRmP5Shs6uvr7aiopCAmKqioqWMpaednaaCmpeWjZeQj5yTjoiDeWp5hmWDjH+XoHl1joiMgWmEhZKCjIWdjXqMi5Wmk4OXqZiMkYuBiXqAfYt5cJChhnmBlYeJlqCVf5Slp5yWloRmbnicbKJkfHGld5uYcGemgJaLe6R6n5aDl3KedoGKlJaPuW6QiqJifZmhlYhtcmmqa3WgbW6mX5ppi5BoloealXWigH2aYIyGjXVviGJooGWefmmadW9jZoiCbXKiWl9bYqFtXYmMb3t+c3JkpW13omRnp2mZc4yZb6JvU4mQb6BfZahUi15UmG5tc2tygm1waWt5c2tvUllXV2daVG1KWU9dSVhpaXNqWWtWUVJFVlxMWFNhVWlrX3d0e31wfXxyg3t/c3aNgIR2XlFyYmdicGdQamhoa2xuaGRnX11eXWBrYmppdnVdXGNpY2pqc2xma21jnKSYpnpldG2Lp66kqbCxpp+LgJirnZ+mjKKhm6KigJaYk42aj4uYkI6Ke4ZxgIhoi4t8mJtzdIl9kHtkgoeViomWmYJ8iIeWqJGBoqyRhpCKgop+gICOc2mPpYR9hpSNiJigjoiTqqadiaZ4lZt+pYiWjLKYnpCCr5efpXeUh3mpdKWPhJpupKKMkoSMg7tufaWvg4aGhpOVnJ98pXpyqJWglmaefm+rY5aKlZJ4qGypooGJdoiDd6qRpodqkbBrdrOMqWuKhm1tn56SlWB+q4uqdn5/jKWedp99hKSVnaBqm4h3rGefrYy2dHe+jaSTWYOmjathdXJ0cHx1cWNqfm5obFNXW1ZhYl1rTV1SXUpebW52YFtxWVtgW2Z0ZW5vcWJxdGB3en55cnmDc4R/gXt7jIGCgHZieGRjbXNkUmtnaG9scmpmaWFgXlxia2JtbHpvXFxiaWJsandtZ2xuYpWlqp2BgJ6klqmqnainrqSZiYOYq5qepImbpZ2pnYWMmo6GnJGFko2MjXSGeoiEb42EfpiTdHSGcpKDbX+LkoeGk499e4KFmKaOf6WmjoGOiYWVdoKHkm9si6mAg4uUjomcn4mMlKqjoI+AdZSXiH6BeZSuo3+Bm3GPhXiPioN+e3KnjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3t9iWuMhVt5eXJ6cGhufpKJcX91gY+Uk3GGhIJljH9egX+Ld3VzlHVveW5uh22EhV52aHiOZYCAhY2pm310fJZqiYhwgXZ9hnZtbWeMc3l7mHiFW2tYeY9pbndycXB4eHBdbIZuaWdWW2BXXGZrZFZiVV9RX3B4eGxrdmVqa2t2fXFydHNhb3VidHuBeHV6g3WAgX+BeYuFg317bX9sZHhuXlduZ2h1a3hqaWplXGBaY2lmbHF1blpbYmtkbGx5bmhsb2GNlLiopouhopqmpJmlnKujoYSEmKySnqGJmqaaqZiDgZuKfpaTh46KiY1yg3yPfX6PhXuXjnNyg3CVhXt9kouGhpCFeH2AhpmkjnynoYuGkJCFloOGjph3coWphY6RnZCInp6IjJuon6Cqg4mOlZp+fomWraiPkqaPd2+ckIJ5kW9+qIVwfZVxa3B9gZ+Mf5OOjGhtXYOLjJybno5zlYuIcXRrgnZ0gVlyboaRgX1+jGpdamR7hYSJgGBpeHqbe4KLgnWBhYJnd4qGa2FwcYF2XnKKgYiPppWFZYyPg253i4Rxho96cGZnZXuDepZbXGpnbnZbe3l3dW5zc4JmXG2Ka2tiWlpfWllscVxfYVpfXWZ0fnp0b3Rja2trfH1ze3h0ZG11aG18fnZ6fHt6eoCAfm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VubGdzeW9oam1gi4uqsKGQo6Ganp6Ynpmoo6N+g5mtjZ+ViJyikaWVf3uYhHySmYmIhoeKc32Ai3aFi4GElopxb4BymIaEfpOEg4aKgXqAg4uboJCCp6GHeI6YiZWLi5yXhYN6rIKRl5mUip6dh4ihq5+ioqOLiJObnKOZlqqhp6egkpuHlY17d42OhKd+f5KRkpOcsqablZ6QjbKTl4SljIyVm5+JkJuCiJGKa3yOd3hlgoaQi3yJnYSHi5CIiICEhJB3fHl0maGIhomeioSUfn2KgIB1b3OEg393hoaKj6aQg4WNh4ONkIx9iIyKkYN3bIKEfXqZanJoYXSKcH16d3dvdnSBXV5vhmhuX15aXV1UaHJWY1xcYmxodXx8c29wZGtqaYB8bnl/cWpwcGxngXtygoB4f31/hHttgoyGfHp4fH16g3lOZHZqcm1wemVrZWNiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZIyHnbmelqKhmJWYmZWZpKGefICaq46ejYagnIueln15lIN7jpmJhoSEhm54gIBygYd+iZSEbWt+epeHhIOQf4CGhIZ9h4SOm52Sh6ufhHKLkIaTkYudkX2NeqqEjZKYlo+cloeGm6afopqdhoKRmpmYkJqmn6WdnZCWgJCJdnuHjoSle3yOkJGGmKqhnZOdj42qjpGAnYyJk5qego6XfoaOg294hnJ1YX+Dj4Z1i5iBg4+ChoV+hYSUbnl1dJKhiouFmoSEjHN/iHx9cnJ7h4N7eIqOg5Kmj4WDjoGEiomKd4aJiox9b2x+gXxuaGxtZ196f2h9e3Z0dnV7d1xfcH1udWBjW11eUWduVGVbXmJraXZ6fnFsbGRramiBgGxzgWxsdW95cIV5boeAdoKAfoV2cYKNiH57e3x/e4KKYGl8anVoaYJlamNgaVxjdWhvYnRtbFVjcXllcHp6cmVqbWyLiZ63mqGjn5KRlpiLmp+fnnt4nqeRnIqHpZSLmJl5eoyFfImRg4yCgoJue394c4GFfYuRfWtofYKYiYGIjnx+hoSHfY+BkJubkYmonIBwjIuMk4ehooqFjHyokYiQkpeTlpN4jKOgoJ2WmX+AkJqYkoyao6GjmZeRm36NhXiAg46GoH9+jIyPfJikoKGTmZCPpo2PgZqRiZOXm36Tkn6HjoF0dIJwdmB+gI2GcYqVfIiMcYx/goWGjmh3cXiLmJGPfpd9h4pygYZ7fHF4eoqEenmQjIKVpZOLhZB7hoeHhXaChImIe2ZyfH95e3FsamZffnNofHV2c3xzgGpeYHN2cHdkY1lfXlJraVRkWV9haGp2eYFxZmtkbGhlgIFrbX5ob3FsfniHemuMgXOBgX6BdHaCjYZ/fHp/gX1/j2pyg25zaWKHaGxiX3FWdG9tbmB4aG1XanR2Y3V6e3Jiam95iY2espKlpZyOkJiPhp2gm518dqWhjpiAjKKKiJqWeHuGh36DiX+IgoF/cX97dHaChX6KkXhnY32Gl4qCiox5fYCNg3mWgZWYlo2WoJt+cIyCkZSGppuHjYmDppWFk4uWl5OSd5GdoKGYk5Z5fo6Yl46Wmp2knZiSlJt5j4WCd4SWjZ1+gYmNjHKXo56hk5mOj6KMi4OWmIOSlpl/mIx8iI2AdnF9bnpkgHyKhXCGk3+QgmyHgoGAiYRldW97hpKXjHyTd4qIe3+FfHtxfneIhXmEj4mKl6KVgYOLd4iEg4J3fIKKhndgeXh9dH94Z2xlYX9pandzdHV9cXxiY2FzbnVybWFaYV5bbGVSY1hgYWhrdnmGcWNqY21laH2DbGh1aGxwaYB9gnltkIZxgISDf3R8g4yBgH56goN+fJBtdol0dG1limxqYmN1VoRpcW5geGdsYmp2cGZ5fHlxX3FshoWPnK6XpqiejY2Xh4afk5eZfXiqnIqZepedi4yYkHl7gIt9fIN8gIKBeHR5enR9gIR/iYuAZF59i5WHf4WHdH1+in99mISXlJeMpKKYf3OHe5SSiqePjI6KkqCRg5GQlJeRi4GPmKCakpCQc3+NkpSJnZ2eppiYjZWWc42OimuFl4+ZeoeIkIlvl52ao5OVio2ejIaCkpx/kpKVh5mIfIqJgXlxemt1bHx+i35thZKClHhwgoN9fop/ZHJpe4CWl4R+jXOPiIN4hn12d398hYB8goyEjJSkj3iEgnSJh32AdHaBiYRvYXt1enF9b2JvY2R7Ym5vdnN4d3N0YXVgb2x1bm9cXF9eXmteUF1YY2FobXR7iGtfamZqY2h3iG5mbGhqbGiBfXt3bpCIc4GEhH10gYaJe4N9eoGEfX2OcnqLeHhubIdqaF9pcmKHaHFvZXZnbmxheWlrfXt4cGF3bYuAmZmqoKOonYqKkYaLnouVmH53rpmNl32fk5GWlIh3fXuKfHuAdnh/gHB0dHtvhX2BgIp/fGFbfo+ShoCEhHN6gId6j5KIkpGck6WclYJ9gn2Oi5KkiY6KjZeajYWRmJOWj4qIjJKdk4+LjG6Dj4+RiJ6ZoqGXlomWkG6ImYNmhZiOk3qIhJCKcJWalKKSkomLmYyCf5CefZKPkoyZjnuKhIdzcnVrcG51e4t0boaQjpJxdYB7gYGIfGRwbHh9mZN9hIh0kIqAc4d5bn99gIV7hYuIhIyVqIx6h3x+i4V4fnFwgYaEY2h5dHVwfGJfcGFrdF5want5eGxzcGV4XW5sc21zWFpfX2JrWlBXWGVjZ3FxfodmXWloZ2JncY1uZGlnZGlogXp3dW+OhXSBgoN7dYKIhXiFfHiDhXqAiXd/i3t6cniDamtfcGh0gGpyb21xZ29sZXxjboB6d3Fsd3eKfqKXoaigppuHjIqCkJ2Hk511gaqVk46HoYyVk5CAdHt2hXh5f3Jze4VrcnB6bYp2gIGHbnFbWH6RjYiAgIB3dYGAf6CGkYuSnZihlZh4ioCBjYmcnoqPhpKXloWJlZmPlouLjY2NnYqNj4NtiYuQkIqdlqGcmJSFmIdqhKOCZoWdipB+i4OLgXeTmJGekZCJiZWNf36PmHyRjY+OmpJ8ioCCbnVwbG1vcHuFaXODjpiKcXeAdIKIgnhmcm51gZmOe4iEepOReXaHc2+Ie4WLeoqFgoiOm6OHe4N1gYt/eHlvbIGEgl5ydHJwcHhaXnBgcGpeb2p9enBtbWpsdmBwb2pxbVpYYWFiblhRVFpmZ2N2b4SCYl1rbWRiZmuSbmBmZl9na4F1cnNwi4B1f4OAeHWAi4B5hX93h4Z3g4V8h4x/e3aKf2pxY3xjhnxucWx0amhvbHZ4X3F/eXx0dXSAgn6klZqtnqeWhY2Ef5eUg5CgdYuglJOGi5uMlY6LenJ4dIJwcoVzcXWIa29tdW2IdoN+gG1uVVGBq5WHgniAd3ODeoKggpKCk5OYnJOaeJJ7g42TpJqTjomVmJKEhpeZjJSLiY+PiJ6Ej4p8c4uFiY6InJqfmpaUf5N+aIWch2eFoIeRhJGCiXGDkZePm46PjIyPjXh7kpB6jouMkpaMfIh8gGt2am5rbGx7fmF6fo6Wgnd6gHiDjHx5Z3Nsc4eVin6IhnuTj3F5g292jHqJi3qIfYGLkJ6dhHx7d4KLfXdxamyCg3pgeHBubHJ0Vl5vYnJgX2xueXBob2Zmc3RocGthd2VdVmZgYHJTUU5cZmVdeXCIfF9caHJiYmVmkmpfaGRbZ3B+cGtxdIp9dnyFgHR1fox5e4aBeIiDc4aFfoyNhHt5lXhmcmqDYIh9b29remBqbnR/dV90fXiGeHRzhXx4oI+ZsZyljoKKf4Oah4CMnn+LmpOPhYiYjo6PhHd0dnOAcG+Fc3Bxg29qaXZug259fW11c1JNgt/IktaTfHB1g3aEoIOTd5SRmZyQmXuUc4WQn6GTk5CKkpuThn6WloiNjYiRjIicfo6AeHqNfoiMipycnZuVk3qNdWeIkYZsiKKEkYiXgoVjjJGZjpWKl4uNiotxepSIe46IipORiXmFfH5se2Vyb2treXlcgHmQjoB7fX5/ho56emhyanOKj4mChYR8lIprfX5uf4t+i4d8hHmBj5WamYp8dniDkHhzbWdxgIRtanRvaGp0blNeb2RwWV9rcXdma2piZnhyb3BjX3dgYFZrX152UE5LYWdjXXpwiXRcXGV2YGFlZY5jYWZiWGlzc21qcXaMfXR5hoJ1dn6Lc4CGf3qJfnKJh4GRi4h8fph2ZXNufWWIfm9wa4BabG55eXNhdnp7jXZyd4p3eZ+Lm66boJCChXeIlX59ip2HhaCRj4WMmISTjoeBdHdweXFuhG9tbn5yZGV4cH1ten1qaGtjpJrB3K7voXNsdoR2haOGkm+WkZWglZyBknKFi6OXiY6VipCdloOAlZCFiY+AkYqJln6He3V/iXiGhI2cm5iZjo92inZuhYiKfYqig5CJnISFXouTl4qOiY6KioSJbXuWgX2IhYmRj4Z2hX19a31keHVpbnhzWIh6koeFeX6AgIWMfnhlcml/iY6JgoJ/i5aFa4F1bYeQgY+EfoJ6f5CVk5iPdXN3iI11c3FndXqDYnRtcGJpdmdSYXFnbFVfbnR5YXJkX2h9cHJuWmNyYWJXbllceE5NTGRnYl53c4ltXFxkeV5gZGWFYGNjXllqcmtua3J3jH50d4SBeHd7iXGDhH1+iHt0i4mHloaMf36Xc2h1cXlti3pudHCAV3F6dnlxZXd5hoxodoCJcn+ch5mnnKOShX1wjJR4eYudhIWhjY58lo2AmoiEe3N3cHNqb4FraW18dV5heHd7cXV7Z2BkfOvatcnD3IhzbHSBd4ubiY5qmJCPnZaTgYlxhYmgjYSLlYqMmJN8jZOIg4mPe5CLhY+Bf3Z4g4Rzh4KTm5eUl4aMdYd/cISBiYaYoYKTi56DiWGDlI+GiYaJjYeBh2p9lIB9g4SJjo2CcYZ+f3F3aHZyaXN3bFqMfJKDhX1/g4CEioJ1YXNriIGPioF+fpGQfW2Ba3iFjoWRg3yBfH+RkpCWiG5xeoyGdWxxbHJ5gWB0aW5da3ZgUmVxaWZTYHB2dGBvYF1ognFzaVdnaGJpWG1WW3VMS0xmZ19icnOFaVtcZXleXmRne2BkX11Za25mb2lzeIp+c3OBfnp2eohzhYN8gId2d4qGjpmBjIJ7k3Vsd3V5eJN0bnh7fFh6hnGAb2d4d5KCY3aGhXGKloWZoZqiiodzb5OLcneOnH2KmomJfJ9/hJp/gXhyc25vZHJ+aGZsd3hbX3l7e3FxgGphZ2F/1baOkKZ4bnF3fHGTkY2HapmOiZySjIZ7aYeLmYaBkpGGh5iNfI2NgYGKjXuPjX2IhHp0e4N7cYaAlpqOk5SBiHWDhXWDf4qSnJ2FlI6ffohhf5OHhIiEiY1/gINnfZGAfn+CjI6Qfm2CfIJ0a213dHN2dWtjjYGPf4V+fIR/hIh+b19ycIR7joyBfH6QiHlwg2Z5goqGi4J7hH1/k46PkoNub3mMfnVtb2tse35jaGtqWW52WlJqcmliUWJyd2xiZV5aaoNtc2JbZ19kbGBuVVtwTkhPZ2VcZ25xgGxbW2NzYFxjbHdkZV1dWmtsYm1qdHeGf3Fwf3t9dXiGeIWCfYCHdXmJgZKWfImGdomBcHd5e4STb218gXdeg390gW1penSUc2dzh3xykpGDmp+boIaIdnaVfm12lJd+iJGEio6afYyadn12cW9samF1fGZiaXV6Wl93fHptcX9lZGhnV52PXnFzlrzEhHZxlImQfnOYjIadk4yIdGuIj5WAe5SLgYSbjHyLhn18iYx/lIh1iYV1dn2BcXWGgZ6VhpWPgoJyf4d0g3uJl5yWhpONnICIZX2Sgn+Fg4mJcoJ+Z32Le3l/f4eLj31pgH2DdmZveHhzdnNsao2FioGKf3mCgISDf2pecXd6fYyJhXuAj39+coBoeIKGioWDeIN8gJeMj4x9bmx6iX13dG9paH13ZV1xY1hwc1NUbnNpYk5ndHhmYF1cWG6Ab3NZZWJdam1gcE9ZbFJEVGhhWmtubXtvWltebGNaY292ZGdcXWBramNsaXN2gYNxbn57f3R1g3qEgnyBhXZ+iYGWkXiDinSBiHN5eX+OkG9vfIFxaYF5en5tbXx2lWtqeIR0a5SNhZ+YoJqFiG59jHZqeJiPf4KKgpWYinqPlm96c3FsamRgdHpoX2Vye1phcnx5ZnB6YWVljrGyd0piWqTZ0Jdye5GLkXh+lYuFmZKNhm9shpKRenmShoGEmYp8h394eImKhJaAb4qHcXR9e2p5hYOlkYSTjYN/b36CdoJ4hZqYk4uSj5SFh296koN9g4OJg2+CeGiAhXhyf3+Diod8ZX1+g3VjcHKAaHhxb3WYjYWCint2eICEeYFqW3B8coCHhIl9hYh6iHKAbXCDho6Dg3KDeICZjI2Ed21ufoR/d3plaGp9cmBZd1pZcm1OWHJzZmBKbXZ0YV1bW1l0fXJvV2ddZmpwX29OV2lSP1lnX1twamd5cVxaWWtlWWNweV9oXV5lbGhmbGlxd3+Hb21/fYB1cIF7gIF/gn92gYWJl4pxgo1xe4Z9enqElIx1anp/a29+dH99b3J8e5Rwb4B/eGaSioKhmJySgoVnh4RwaHqXiX5/hYKZioF8jY1peHJrbGZfYW95bV9ib3lcZGyDemFxdl9lZdXrvosyOj6LjoByeYWIjo12hJiNf5OOjX9ubIWNjHV9j3+FgpWIfIN4bnaHhYOXd26IhGx1e3RmeYKDqIyDj4yDfW5/dHWDeYWbkIuPkZKMi4Z+e5KHeICEjYNsgHJpf354bXx7gYqDeGJ5hIFxZHFofm10cXSBm4uAf4V+c3V+gHOAb1trfXR4iYKKe4Z/fIh4eXBriIKPg4lxgXh/loqKfnRtanaAgHV1XGlpeHFZV31TWnFlTFtzcmVbSnB3b11bWllddH50aFliW2dlbmJpTFdmUT1eZl1ddmZfdHBbWFRvZFpkcHlaaF5gZ21naWxpcHh9jmxqgoR/eW6Ae32Af4J6dYKBjJOFcICLbnd+gHt7iJOJf2h7fmt0fHKGe3N3fX+MeniEfnxrjIyDm52WjIGAbI1+a2l/j417fn+DlIJ/fYqIa3VxZ2hjW2Jnc29fYWx0YWhwiXphc3ReY2SboJBuXDVZr7V1aoCJfZKGdoaYh3WPjIp3cGyFg4d0eYl4iX2TiHp+cmd2iH59l29whn1od3luZXqIhKWHgYeNin5ufnV+gHyLmIaBk5CXiIuEiXyPiHF7fYV8aX5taoB7emp6doKHgHJgd4F+cWRyZ3WCbXV7hZWRgXyCf293eXx0fm1XbX52c4qBhneHdYGJeXhybYiAj4CEcn58fZKIiHpubWltgoF1bl1oZnRyUlt7TlxxXE9ccm9kVktzeGpXWVlaYXGAdGBdXWBmZGhoZk5aaE5BYWRbYHZhXHVtWFdSdGFaZG5yV2peYmhrZ21saXB3fJJsaYSKfX1wfn57gX+CeneAgImLhHJ7h29xd4N/e4qNj4NqfntueHl3ind9eICCh3+Df356bYWMiJijjYSDe3aMeWtthImSeX17gpGAgH2Kg3BxcGNmXllnX3BwYGBocGZqb4p1YXRvW2FkaXZ7f76cpqPIuHKFg3OUfXiHlIR0kY2IcnNwhHuDc3WGdIh3lIl5eXFjd4Z5gJNpcoR1Znd2Y2p8g4iegoB/jo59cn5zg3l/kY+Cd5WNlI+Hgoh6iYlreHl+dWh6aWt/eXNpenaAg31oYHeHfmpqc2h7gGl2gYyQlH56fn5xe3Z7dH1hVXV8cnOJg4J8gnCGiXd4cG+Cgot+fXh9fHWNhYN2aHFobIiCcnBdaGN0bktldkxeb1VUWnNtYlFPdHhhUldYXGFwgnNbYFxoZWRjamRQW3FJRGRhXGRxXlx3aFVWVHdeXGVuaFZsXmFqZ2Vvb2hwd3uTbmmIi3l+cnt+eYKBgnx2fYOIhoNwdoNybXeCg36Ji5R/cIB8eHl6gYt0g3h/gYGChHmAdm9+iYubnoh9hnp3h3xodIaNkXp/f3yJhoR2j4Bnb21fZFxYZVltc2FgYXFsbGiJbmBzaVleZG2Ad6naqseGh7JyinhwjXV7h5CBepSKgHV0dX53gHBxfm2FdJSGeHRsYHqBeYiOZnGDb2d1blttfYGQk4CBeZKSfXh7bYZ1gJCLg3OVipCOh4WFe3+FbXV2f25od2VtfHZtand2f398YWJ4hnpodXVjfnpndIaOjJV7dIB1cYB6fGx/WVVyfW90g4Z/f3hriIZzeGp0f4ODfXp8d3tyioB8c2dzZW2LhG10W2pfdmVIbm9MW2NYV1Z4bWJQU3R2WFBVWF5gcYRvXGBjbWRjXm5iVF1yR0NmX11maF5ae2JSVlx1W1tna2FWa19hbmZmbHFocHZ4jnRrjo11f3Z4fXeBg4F7dH2DiIiDb3F/dHF1foaCiY2Ke3d/eIR8fYWHeId8fYF+hIB7fnN2eYyOn4yJeol3dYN5Xn6Gmo15h4N0hoaEd4l7Ym5sW2JbW2FWanRjYFtob3Bnh3JhcWZXXWNrf3zKzoe5omttbottcoVyfYWLf3uShXp5dHl1dXtqbXVjhHaSgndwZ158gXmLiWVxgWpqcWNYbXuGnImDgnOXlHd+e22HcICJioZwlo6QiIWLg3p5fnFxb31naHJibXhyamxxd318el1leYB3aXV4ZoJ2Z3SHjI2UfHKHaW5+gHltfF1XcH1tc3+KfIFubol/cHZndn6AfoF1e3F6c4Z7eXFlcmFujIJsc1hrX3hcSW9sTVdWX1RVfGthT1R1clFRVFZeYnSFaFxga2pmYlluYVhicEdBaF1gZl5dVnteT1ZkcFpbamhdV2dgX3JmamhyZ3Bzd4Z4bpWKdH96d355g4eAdXN/hoWOgnBwe3d3dXmHhYeMhnp8f3WLfn2GhISHf35+fYd/fHh1eXeRk59+jH2LbnWAeWSDiJeGdJKKb4WFgnqDdGNuallfW11dVGdzZWBZZHJyZ4FzYmtkV1tgaX94vq57n7duYnOHaHR8cnqDh3t+jYB4eHN3b3t2ZWpuYYd1joFzamJefnh5ioRmcX1oamtbV294iqOBhX9xmZNxgHh0gW1/gZCGcpSHjIeDiIV9eXRyb2h5YWptYG12a2drbHl3endbZ318eGVzfW6EdGV1ho2GlX5wi2ZreoN0bHRiW257a3R8i3qBZnSGfW1wZ3R+d31+cntreXuBeXdwZWxhbYl+bW5Wa2B3VktrbE9ST2lOWXxnYk5VdWtNUFRVXmd2g2ZdYXBoZ2BXaV1ca2hKRWpaYmRXWVV5Wk5XbmpZXWxlXFllY150ZmxkcmdycHSAeHCZhXZ/fnh/fIWHfXVzgoeAlYJuc3h6enNzhYeIiIR5gX12j399hImOg4GDe36Lg3t3fHd3mp2XeoqDh2l2fnxshIWUgHKPgnGGgn6Cf29mbGdXXVtcWlNkcGVfWGNydWl2cGVlYldcXGiAcG9ygHOJZWV5f2p0dnNzg4V4gYR6d3R1bmt6cGJna2eGdI2EbmZeX3xve4l+aGx3ZmlkVldycI2nfIR8dpaQc3xye3ltenqQhHaXe4eGgoaDfXVwcm1ndV1taF9sdWRnZml6b3tyWWeBdnVocIB4gnVhd4WLfJSBbotqbXqBcWVzZWBseWdydol6fWF1g3Zpa3F0enB5eHJ8ZX5+fnh2bmNlYW2GfG1rVmpicVRMaWtQTE5wSF57ZmFNVXRkSk5TV2Fqd35lXWdzaWVfVmNXYnBdS0trWGNiVVRVc1dNWHVkWl9rYFxaY2Vfd2dtYnBpc29xfnV0mYF4f4B4f36FhHp9doKDfpiFbnJ0e3p0cYWFj4KAeot1dZGAfYGUjoCFhHx+jIZ6foB2e6OminmIhoVsdXx7dYSCjHpvhXN6hX2Cg3VuamhlVl1bW1pTY25lW1hhdHtqaW1oX2JXX1tpgGlrb4BnbGFoenlrdHR0b4aCe4B9dnVuemhqeWpfZW5ogXeQhGdlWGJ3aX6Hem9pb2ZmXVVYb2iPp3aBenyRjnh1b35ucXR4jn53lHSFgn+FiHZqcnZnaG9cbWVebXNfZ2FqeGh7bVttg3N0am+Afnl3YHaEhHiPhXOIcXB5f3FjcGhbbnZkcHOHe3hhcoBwZ2l4c3Frd3Z0dWKDe353dXBjY2NtfH1ra1VpYmdUS2xoUEdSbEVheGZiTVRyXUpMVFlka3d6ZV9tcGlkXFZfVW9vV0pTaFhmXlhNVWxUS1t5X1tfa11dW2JlYHpobGFvb3Vub3d1epd9d3+BeYB/h4Z6eXqDfYGThHF0dH55dnSFiJB9gH2QbHOVgXuCn4V/h32AfoaCgIp7doSsn4B6iIeEbHKCeXaBgIJ0bodvfYB0ioBqcG1kZFhfWlpaVWJqZ1taX3WCaV5ubFxhVlxca4FlcnR9aWpdbHd2Z3R3cm6HfH5+enZzbHpnaXhmXWRyZ3p3koFjY1Rlb2eChHd2ZmhpYFdWWWhkkKdufniAi456cHB8ZnhueYp6do5xg31+f4ZuZHZzZGhoXWxiXW9vW2debHRlemlddIBvcmtxe351dWF0hYp7h4eAf3dydX50YXBsWXByYnFxhHt1ZHKAbGBsem9qaHp3dHBkhHR5enVxZGFkbXN+amxUaV5eVUxzY1FHV2JHY3ZmYUtUcFhKS1dYZ2t2emRlbXBmY1pYXVh2ZlRKXGNYaFhZSVdlUUhieFpeYGxbXlxiZF6AaWpfb3R4bm9udoOXeXKBgH1/iIuGfnV2hniGjH10dXWBeXp6goyOfX6EiWp0loF7ip19foV5gHt+fIaIc3GProx8e4aQfmZxiHp0fX12cm+GbXt+bY96YnBvYWVeZVZZWVdjZmtgXV1zhmlZcW5bXldaXGx7Y3F3dm1jW21zdGh1dnFthXl/gXl3bm90ZWh0ZVtndGZ2dpF6X11SZWZqgoF0fWFjaVxUWF5iY5ClaHl0g4aQeGxueWd3bHuDeXSIcoB4e3h/aGV2bWBmYV9qYF10a1llXW9uYnpmW3h8a25ucHd5dHRkcoOSf4eCiHp2b3F8cmF3Y1pub2FwcYF7c2VxgGRebXZpY2Z4enNsbYF0c3xzcWFeZW1vfWVpVGhZWlVOeWBSS1pZSGJ0ZGFJVG1TSUtaV2lscntjbGxzY2FZWlthd1xTS2NdWGlTV0hZYE5HaXVYXmFtW1tfYmNdhWloYW54eWxvanaBkHhtgn6AgZKIhIF2dYl0i4Z0cXZ2gXd8fX6MkIB+k35weJaDfZmSeYCAeHl+f3OIg3NwmqJ7e4CJlXlkdYh5c3l2a3Nwf2x5fHCRcl5wb2BnYmxUWllXaGNtZlxccolmU3JuW1lYWGBsdmRqdWpqX1ttdHFtdHR0a4Z9f4B8d29vbGVpcWNba3JkdHaPc1xXVGRgcX9+cYJcYWNdU1pgXGOTn2VycYSDkHRranlsbm95eXpxgHd/cnl6emRmdWdeYlthaFxed2hXYl1waGF4YVt7dmpqcm93dHN0aXCBlIOGfoR2cmpwfG1ldldbam1icHKAenNlb35bYG9xYl5pb3xsa3N9cnB4a3BgW2VrbXthZ1RnVVhSUXdcU1BZUkhjc2JgR1ZrUUhPWlVra2t8ZW1vcWFbWlhZbHBXUk9mV1dpU1RGWlxPSXJ0WF9jbWNYYWBhXoxqY2RteXhrb2l1eYZ7a4N9gIWZfIKEeX2IbY+GcW93enx0goJ9i4+DgpZ0eIKThoGfiXWBf4F0f4Jwh4J1b6KXdHuGi4d7ZneLb258cGZ4cXtsc3ZzjWtedG5hZ2VrUl1bVmhibGxbXHGMZE5vbl1WWFVnaXRoY3RlZV1abnVucHV1emuIfYB9iHeQc2Nla25hXG5tY3N4h2taVFZiY3d8fHCFXGNfY1RbYFlilpVjbnCDhIpzamd5bmVydXF6a3l0dG56fnVfZnNjW15XYmRZYXVmVV9gbWNhcV1dfm9oaXNxc3B1dWtshJOBiXuFcXJmbntvcW5TWmVqZXFzgHZzYmx2VWJxa1tebmR8ZWt1fHJycmptX1ljaWp4XmZUZVVWUFVuWFJXVFBIZXJfYUZYak5IV1RWbWhkfGlrd2phV1xVW3RkU1JWaFFZZlRTSFpbUE54dlpeZWxpWmJgXl6PbmJma3l1bm5pdnZ/fm2DgH6Gl3t/h4GJfmuTiHJndIB7dYCDfomPf4uTcn2KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYt3eG57jWBkfHFneXN5bW1xdoNnZHxsY2ZnaFNfX1VnYGxvXF5ujmhNaW1gVVZTb2ZzbGV4ZGVdWXF1bXJ7eHNtiXyBd5x7emxiZWxtXmBuamVweX5nWlZYYGt3e3pvg15iXmdWWWBXY5yIYmtxgYZ8d2tqdmxbdXBqeWl1cm1ue4ByWGpuXlldVmJkWGVxY1ReYmliYm1aYH5rZmtzdW5td3ZraIWMf4l6h21xZm97bHFsYlhfaGhvc4Bzc15pbVNlcGRVYm5heWJvdXt1am9sal9YYGZodV1lVmJWU09ZZlNPXU9PSGVvXWNHWmlNSV9LWG1kX3hobn1kYFVeVF10W1RSX2ZOXWJUU0pcWlFadXVcXmVtaFhiYVtejnFjZ2p3cXNtZ3ZzeYNzgYN7iI1+fIqIjnlukIp0bHOBc39/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2Ojo6Njo6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6OjY2NjY2NjY2NjY6Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCS5KamZmZmZxbQURERERFOS8wMDAwLEiFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTM/k56cnJycn1IxNTU1NTcnHB0dHR0YOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaNjo6Ojo6OiIaGhoWFhYSDg4OCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk5GLkY2Nj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyMjI2NjY2Ojo6Ojo6Ojo6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoWNh4eMhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCQiIyGhY6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkJCIi4eHjIiIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMkIiMhoaIhYmPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2PjI6KioyKjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5OUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WVlZWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpKTk5OSkpGSlIiMlJOVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKRkJKRkpOQd4yTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpB3iZKRk4B1jpKRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCQknlujZKOdHaMkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Rf2d4kod1d4uQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo+CYWmGemh0io+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjndga2JnZG6LjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLiouHZG9uW2pybIGFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3BjcHBka3JxZGhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZGVpbXNwcnVrYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpdYGFjbG5vb2taWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTlBeaWZsbmtnY1FQU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OT0xMVWRtZmpta2lmXFNPT1BRT05OT05PUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0dJT1VgaG5oa2xraWpoZF9XT05PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVEUl1iZmhqbmxzb2ppamxraWVVSkpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj4+S1ZcaW1sbnlzampsZltRSkRERUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7OztHSj1GWWtud3BraVlHREJFRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs+PTo7RltubWBJQT5BQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk6Ozo3OFZkPzg4PDw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT49PT07RVk5Ozw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO11uQD5ERT8/QTxEWz09PTs7PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdIODs6PT1BPElgPDw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw9PUlNRkZ2d003ODg6Oz4+VWdAOzw8Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dnd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/eXx3Vjw9Pz09PkVpdEs6PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUBIcnlrYoKEg4ODgH1dPkBDQEE9SXN8WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDf32EdUxBQ0VAPz5ZfIBdP0NFSUpJSU1NS0VDRkdHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVxQkRFRENXdYaHh35YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+fn19fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIpsQUFWdIeJh4eHiINXSExNTE1OTElHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3Z3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINWbISHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExLSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpVgYOEhIKChYaGhIKGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDg4SFhYaIiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJioyMi4qJiouMiVQ6ODY1Njc2NjY0NTc3MzU2ODo4NzY1NjU2NzY3Nzg6Njc4ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIKDg4ODg4WJi4qJiYqKioqLiYqLgUc2NzY0Njg4NzQ1Nzg1Njc2OTk3NjY3NjU6OTo7Ojs4OTg5ODc3Nzk6OTg4Nzg2ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhISGiYqKiIeIiIiKioyKiYmMej45ODg7PD0+OTo6PDk6Ozk6Ozo5OTs6OT09PT47Ozw9Oj07OTs7PDs8PDk6PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXN2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUBCPkBCQEA/PT0+QD8+P0A/QD09P0I/QUE/QT89QEBAPj9BPT48Ozo7OTk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZERUZEQEI/PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NGV4SCg4SFhYaGh4mJiIeGhoaHiYmKi4yNjIyLioqIVkhNTE1LTkpJS0lJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f3+AgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0pZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE5QTkxOS0pMSklJSEpGREZISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7PD06PkA+P0BDRklKUV+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1yTlJPTkxMTExKSEdFSUlESkhHS0pISkdHR0tMTkxMSEhJSk1RTk9OTU9LSUdJSkhJRElISEZGR0dIR0NCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4tfUlJQTU5NS0pHRUJHSkdMSkZLTktLSkpMTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRUZJRkVFQkFCQlxvcnd4eXp6eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxYVlJSVFJPTEtKREVGS09OT1dVUVBPUlNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0dWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hXVWthRVJRUVBJOztSVFJgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTlJQUFBRS0xLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0ZGRT8/QUFFQUNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVtjYFZZYnJdXVZdWlZFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6eXp7ent8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKi3pucFhaXFtSU1JWVlRaWnSDWVV9kGBcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVRVVFdSUVdVYpaAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT0xLZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlRkVX9SUFFOS1JUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXZ1c3N3enp7e3t9e319fX59fX1+fX5/f39/f39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1dW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM9Q0lHVkBITkxHXWlQSEZPRkRFRklHSENESEdIS0dEQkFEQE5RTVJkcnR2dXN0dXp8ent7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgmtNRz9AOjs+QEA/Pz5qUUthRUZISUVCP0dMTkdNUVVJQkU/Pjw9PD09Pz0/QUNDQD88PUI+Sk1HVW50dHVzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+AgH9/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqamZgW1FSWlxZXkpKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PzxCSD9cc3R1dnV2eHp8fHx9fHx9fX5+fH59fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBRUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZGSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FXUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxCPWVzc3Z3d3l6e319fHx7fH1+fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMV1laVlhYVlhZXVdYWGhza11WYXNrYWFfXmRhX15ZVFFOTk5MSUhKS0lJRkNRUFNbV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTlHbnJ0eHh5e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fn9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTE9SUk9NTU5OTUxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz89Ojg4NzY1OTk2NzY3NVdwcHR3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMSk9SUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9ydXh4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lGTE1QTUcvRV9SPjM/PmpvYVJSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR2ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkREQUBHSEdIRkZISk1MRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydXl7e3t9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT09NUVNMVFVUWFdVTUxLSTw5ODc7P0A+PD1AQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFBSYlxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSEpLTEpGRkZEP0JDPjxCRz9CP0FkcHR3e3p6e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSEREPTk4Nzk/Qj47P0JAQD5BRElFQ0dHSUZJRUJCPz49Q0JBR0lETU9iZVFNTk5XS0xNS0xNTU1MS05OU2ROSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7enx6d3R4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEpEP0E9OTk5Oj9CPzxAQkJBREVIS0ZDSElHR0hDQz9CPz9AQT5ERUNLTlJUTEpJTVRHSUlKTEpLTElKTE1PUFJQS0dDTEdDQkpKTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHh5dnhqcW9qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFIS0RHSEhHSktJSktER0I9Pj06Ojo7QUI/PUJCQ0NIR0pMSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISUtNSEpMSElKS0pNXFJISERORkFES0pNTVBNS01KS0ZHR0pNTlFOTGJtaXZ2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLQ0ZFR0VGRkdFR0JDQD08PTk6OjpBQ0A+QkNERUlHS0pMRklJR0ZGREI7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1ISUxHRkdJSUxOS0lIRU5JQkZNTE5NT01OTk1LSUhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZWtxbHNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQ0NDRUBEQj5APzo7Oz06PT5DQT5BQ0VGSkdKSEtIR0dHRkVDQD1FRUI+QkNDQ0VHSElHTVBKRkZHS05PS0ZISkZFREVJSkhLSUZIUEtDSU1MUE1PTk9PTkpKSE1SVVRST1dkYGFtZ3Byb3J5emdlaGhkaWxmcWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMR0VFR0NCQUJEPUJBPkE9OTo9Pzo9PkBCPkBCREdKRkpGSUhGRkdFQ0JBQUZGQ0JDQkRFRUdHSEZMUUxJT0pKTExJR0hFR0ZEQ0lJSEtKR0tSTUJOT01QT09PTU5PS0tLUFVXVlVUWF9eXGlhbWluaHJzYmVmZWRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJAREQ8QUBAQzw4OT0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISUZDSUpJS01LT1NORFFSUFFSTlBNTlBNTE1TV1ZXWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW95TUhHSEhCQkJGRTw/QkJEPDc6Pj46PjpAQj4/P0JFRkRGRERIRkRFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFNPUU1OUU5NUFdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSUhHSUNBQ0hFPEBFQkQ9OTo+Pj08PEFCPD8+QUJGQ0VDQ0hFQ0VFRkdHR0lGR0tIQ0lIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05PUlVWT0tVV1NRU1FSTE9RUE9UWVpZXFpZW15eXmBjXlxhY2tiYGRnaHKFaGdqZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZvdE1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkE8QD5BQUZDRUVESUVGRUdFSEhGSEhJS0lFSkhIS0hGRkxJSEhKR0xMTE1MSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1NSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRUZIRklGRkRJSEdJSEpNSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QTE9QUlRYVk1OVFZUUlJRUExOVFNSV1teXl9dXWBfYGFhX2FjZWJjaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dLTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdER0lHSEpGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNRV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdISklJS0hKSk5MTkxJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxrVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQ0VFREZCRkZHREVLRUVKTU1LTExHR01JR0pLSEtLSUtLTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZmVxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEQEJCQD5DRkdCRkNFRUZFRENISEdERUtIR0xNTkxNTUZKTkhKS0pJTEpKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0hFRUVCQkI+QEBGR0JHRElFRUVCRklISEVHS0pHTU1OTE1OR0xOSUxLSUpNSUpJSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SE1HSURFRENBQj1CQUJGREhHTEhFQ0NIS0hIRkpMTEZOTExTUkxHTExITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnRzdnNIS0hJQkVFRUFAPkREQkdDSElNSUZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTU1JS0tLU2tiW2leX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERURGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKSktJSElHS0tLTEdIS0tMTExMSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xVWVpdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDQENIREZHQ0lLTEhGREdLTEhER0hQS0xPS0xXTElFRUhJSkhJS0hMSkhGR0dJR0hJRUZMSUpLTkxJUFxXXlBcW2BeTVhZU1xcYl5NWVpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGFhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNFTE1CRERCRUlFR0dGS0pLSEVFSkpLRkVISFBKTU1KTVNIR0VBSEZKSUtMSUxKSEZFSUZERkdFRUpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfYltgXltUWFdZXl1jYmNhY2ZoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNHSEVIR0hLSUlJREZLS0tGRklKTktOTEhMTkdIRj5HR0xJS0tKTEtJR0VJRENEREJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVlVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUNFSElGR0hIRkZKR0hGSEtJTERES0pOTUxMSEpKSEpHP0dGTkpLS01LS0tJR0dDREBEQUhJQj9JSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUltXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHRklHRkZJTEpORkRLSkxOSkxJS0pISUZCSElRTUtLT01LS0lIR0VEP0VDSEhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRW1JbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBR0ZER01SSENRSkZISEhFRktKTVBFRklKS05MTElMTElJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VEV1VFXFReU1ZfWE5UVU5aWk1KS1RgYVtfWF5eYV1OWWJcYGBfYmNiXWFiV19fVFBOT1BYUl1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQQ1ZeSUdHSERGTUpQUEVJSUtLTkxLS0xLSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0FFRkJNSEJLTFBPTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xRU1JVWllXWVhYZFdPU1RQUE5NT1VUW1hYWl1cYGFkZWNnY2tscHNyenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hMR0hKSEdNTFFRSUxLTEtOTVVOT0tLTEdHS1BTU05QT05PTk9IS0ZgRURfTERmY0VNW0leW3JtT01VbVlMQ1BgVWtXZ0pdWFVeRE1RVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhTa1NWVlRbXFtgYGFhYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xIRUdGSEVFS09TSUpGYFNISk9KSU9NUlFLTUxMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUX9RSXxZWXFzWFBtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZWWH9qdHV1X192X1hhW1xmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1OQkRMTEZJS0VRVkxLT0lLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWlJUUXZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zcnt8b315b39yX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5LT0lRUlRZV1dRVFBQUFFLSGd4bGN4cm1bS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en5seHp/b2hvWXZ2anV1cIFgcmd8aWx4fG9eX19iYVteYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0NGUFBISktKS1BPT09NUFpgWlhLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRxbG1ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGZlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0c29tTExbVkhHRUdSUElMTUpLUFFQUFBRV1xYVU1VWVVmWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9bcHp7XmB6c2Nyb3hxaGR8aXJ7XVVMbGB2dWtpdXt7bX54a3xwXV5eYltfYmRkZ2VlZWJaY2Npa2tyc3J3Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ta21PSEpLSElISFJQTE5PTEtSUlJPU1JXUlZUUFdbVlZUVFRhYFBOTUtUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFlSTlBVVFhYWFtaVVJTV1tXWFdaT1NVV1hYUl1ZV11WVFBZUldXV1dYX1tncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlYUE9MTVZUUE5VU05PTUxRUEtKUlFLUU1LS09SVVJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1BRVVVWU1pRT1NSWFZUWVZUWVVUUlVUVFVXWFddWl5hXVxaWlxcYGNbXWJjZGZkZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNRUEtPV1NQTlVQTlFOS1NQTU9VU05STk1OUVRQVFFTVFVOS01PUVRUUlJRVldUWVpbWVNVUlRXV1dZW1RPVFVYVVVaVVdZVVJSWFZVV1tZWl9dVVheXF5dXF1hYV5bYmJjZ2ZkZGJYX2FiXmBoZWZkYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FaWVhXWFpaWFlWXGpkVlhZWldWU1RPSk5WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVk5XUlRVVU9OTVFTVVVUVFJUV1ZaXVxaVldRUldYVltbV1FUVlZWVllUWFhVUlJYVlZaXVldX15WXl1eYFxcYF9fX1piYmRoZ2RkYlliYGFeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF5bWVZVV1FMTVZTTU5ST1FST0xQU1JVW1VTUFBMUFdXUldTU1NYTU9QUlRYVlVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpXV1xeWl5fYFVhXGFhXmBiX11gXWNgY2doZGZgWmNgYV9fZWRfYGNbWlxbXFlaWFlXXFlcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRST1VUU1BXXF1cWF5cX1dcXmpxd3mAYlxbVlZYUU1PVlNOUVFQUlRSS1FUVFlbV1VPUk5TWFdUU1VSUlpPUFNTVltWVldUVlpYXV5bW15WU05UVVZcXFZSVFZWWFlTVFlcVVNTXVhaXV5cYGBgVmJbY2JeYWNfXGJhYl9jZmlkZl5bZGBhYGFjZF9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJRV1JUUFteX15bYFxgVVxdaWpyfXNsZ1xVWFdQT1JaU1JRU1JUVVRLUVdWW1paU09TUlZWVlRPV1JTWlJUVFRYXVdYWFNYXFheXVlaXVRVTlZXV15bWFJVVVlZWVVXWVxVU1ZeWV1dYF1iYl5ZX1tlYl9kZF5eY2NhXmVmaWRmXl5kYWBhYWJkYGJeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWVFRUXl5gX15iXGBVXV5ia3l0bH1sWlVZVVFQU1xUVVRVVFZZV0xSWlddW11ST1VTWFdWVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paVFVWWllaV1haXFZUWl5cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfX2FhYGNdYFRdX2JlZXWBemhYWVlTVlNWXFhXV1ZWV11YT1VdWl5dXVRSV1NXVlVTVFhSU1ZUWFhYXV5YXVtWXV9YX19YXVZRWVRZWlphWVxWV1hbWltZWVpbWFZdX19eY2JhZGRcYlxgZmFkZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVZWXGBhYmNhY19fVltgZGFfenVvaFlcWlVYVFdbWllcWlhZYFdQVl5cYGFcVFRYUFVXVlRWV1JTVVdaWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWltZWl9fYGBkYmNkZWJkWmJmY2dmZV5hYmBjXmJjaWRjZ19nXmJiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheXF1bVldYWVxcXF9bWVtiVlRYXl1hY1xSVllQV1ZXV1dWVFZUWFxcXmBgXWBcV2FeW15cW15YVlhYW1tfYFxfWFldXF1eX1xbXVhbYGFeYGRjZGVlZmJZY2VlaWdkXmNhYGVjXWVpZGVpX2ZeY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWlhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXlldXllYVldbXGBeXV9aWl5dXl5hXFtbWlxfYl5iZGNlZmVmYlpkZmdqZ2NfY19hZmVaaWljZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMWFdcWVdcW1xdWldcXV9gYmRiYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpiZWNgUlxaT1hYWltbWldaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfX1xbXl5gYmNcXFdcXmBiYmNlZGZkZWZkXGVmaGpnY2FiXGRnYFxpaWJoaWZkYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxdXl9aWFZbX15dYWFfXltgYWJlYl9dVFxgYGNkZGZlZ2VmZmVeZWZoaWdkZGBbZWdeYWhoYmhoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t8fHx8fHx8fHx8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29vb3l+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKgkU+Pz8/Pz11jYmJiYmJi4yMjIyMjYh/f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29ueYB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjI2DOjIzMzMzMHOQjIyMjIyPkJCQkJCQjH9/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXR2d3d3d3d3eHl5eXp5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx2dXV1dXV1en19fXx8fHx9fX19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnd6eHp6eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eH15fX16fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHp9fXl8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8e3x7enx7d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt6fXx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4eXh6enl7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzcnJycnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHN0cnFwcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3Nyb357b29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzdXJycnBzmHtvcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXSVfHByb4igdnBwcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFycJShdXBznaB2cHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFvibGRbn6koHZwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcnCDs6l8kK+jd3BxcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycI2xp6uor6R0cnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3N1n6Kis6Wbo3pzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHd4eIClnpqln6Sjj3p5enl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fn18e3x9iqKQkJeal5mSe3t5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX1+fX6GpqmknqCblZV/f399fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgIqxqKmioaGro4J+gIB+f39/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f3+AgICKp66fqKOgoaWppIx/fH6Af35+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B/gIGIlqqupJukoaChoaGpqp+OgYCAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KGjJqmo52cmqCUmaGgnp2eoZ+ShIGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYKDipKVmJeZmIiQnZubnJiQiYWDg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoCBgoOMlpmViZGZnJKLh4WGhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEg4KCgYGEkJeTlpmQhYeHiIiIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SEgoODhZGXiYSEg4OFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKCgoKBiJGCg4OBgoCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAgICJk4CBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYmGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/f42XgoKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmIqDhYSEhIKAk5uFgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJKSk4+MjIqFhIODg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fIucjYCCgYGCgoWUlIuBgoGCg4OBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUk5SSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZeLgIOBgYGAj5OMj4GCgYKCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4p9hIWDhIKDg4KOiYWMgoKDgoKCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUk5KSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf359fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMi4iFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFgoGBfn2Bh4aDgH5+f35/fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWGho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYSFhoaGhYWFhYaHh4aGhYaFhYaHh4eIh4eHhoaGh4aHhoaHh4eGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoeGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iJiYmJiIeGh4eIiYiHh4eHh4aHhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjImBgIGCgoGBgYGAf4B/f357eoCGh4iKiomJiYiJiYmJiouKiIiIiYmKi4qKiIiHiIiIh4iIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhIaFg4GBgoGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fXx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGh4eFhoiIiYiGhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODg4ODhYmKiYeFh4WEhYWCgIGEhIKDgoKCg4F+fX5+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4iJh4iGiIeGiYmDg4SDhYSEhYWGiIiGhYODgoOFh4aHhoaEgoKDhIKDhISCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDg4WHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGh4eEg4GDg4SFhYWDg4WEhISEhYSFhIKCgoKEhIGCg4OFhoWEgoGBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhISFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4GDg4ODg4KCf319f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIKDgoCAgICAgYGBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn1/goODgoODg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f3+Afn2Af3+AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/f39/fn59fn9+f4B/fn9/gH+BgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+BgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gH9/f35+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+fn+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXh9gYCBgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf3+Af4GAfn9/gH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f3+Af4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX18fXt6eXl5eXmAgoKChIOAgoOBgIKBgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGBgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkImJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICBgYGBgH9/f4CAgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSEhISEl5eDg4SBfX6BgoKBgoGCgYSGiIyFg4KCgYSCg4OCg4WEhIWDgoODgoODgoKCgoOCgoKSkIuIiIeJh4aGhIaFhYSEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaHh4eHhoeFf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GDhYWGhoSDhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gHp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSCgH+Hg32DgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMi46KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fXyAgYB9ho+Bfn2Cfn9+gIJ8fIB/goCCgH59e4qCfYB/foGAgIGCgIKAgICBgH+LlI+MjI6OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3t6fIKAgX5/gXx+fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX18fXx8fYB/gIB+gH5+gpSSjY2Njo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoGBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYODf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fX1+gICBgH9/fn19fX1+e3x9f39/gH1/fn+MkY2MjY+OjYeEhoaFhISDg4ODgoODg4OCgYGBgYCAgYGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX6Afn9+hJKNjYyPjYuKhoSGhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fX1+foGBgoOAen19fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fH59fnx7fHx8ent6fX+AgISDgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2MjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx+gIKBgICAfXx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgYKBhYaFhYaGh4WBhJGPjYqKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4CAf39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fX18fHx7fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomLiYWIko+MiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx8fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgX9+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fX19fXx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uKiYyRkI6KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99fn9+e36Bkox8fX+KgI2Mfn59fX1+fn1+fX19fH59fH18fX19fn19fn58e3t7fHx9fHt7e3t5enp4eXt+f4ODhIeJioeJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgYCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6enl5eXt7fn6AgYOHhIiPjouKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn5/f319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY6LjIiEhYWEg4OBgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYKCgYGCgoKCgYGBg4ODgoWGhIOBgICAg4F/gIGEgX5+gH99foB+fX5+gIB/gX9/gH9+f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fHt7e3x7fHx8fXyKi4mIhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fYmHh4WFh4WEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoKCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+f3+AfX6AfX19foB/f4GAgYGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4OEhIWEhISFg4GCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SDgYB/gH+AgX59fn5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn19f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4J/f4OCf3+Af4F/gH98e3t6fHt8goB/gn9/gICCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDgoOAf3+BgYCCgYGBgICAgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfX9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhIKEhIWEhISBg4KBg4F/gIF+f4B+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYOCgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+Af4CAf4GCgYB/fn+Bfn+AgoGAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fXx+gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f35+fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAe4B+gIB/gYCAf32Bf35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKBgICAfX5+f4B9fH58gICBgICAgIB8gH+Afn+BgH9/foF/fn9/f319fH+AgICAfn9+fn99fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn19e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgYCAgYB+f35/f318fn2AgYKBgICBgX1+gH9+f4F/gH9/gYB/gH99fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KBhIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYGBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/fn+Af39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f356gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gIB/f39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBgICAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXx8fHh4dXh4eXt8fH18e3x8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgoGCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgIGAgIGBgIKDgoKAgoGBgoGAf4CAf4CHfn58e318e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYOCf4CAf4GDgoGAgYGAgH+BgYGBgIOAf4CDgn9+f4KBgIB/foGAgX+AgIGBgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYOBgoKBgoF+gICAgoGCgoGCgoCBgICAgoKBhIB+gYOCf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDgoKEgYSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGCgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SDhISEhYOEgoGDgoKDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoSCgoOAf4CCgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7fYF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoKCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4KBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhIWEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYB9gXWBeoR/f39/hYSCg4OCgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOBfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgX+Afn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSBgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhIaEhYWFhYaHhYWFhYWHh4iGhIaFhoaFhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4aDhISDgoF9f357fHt+e3x8fX9+fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYWFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9f358fH59gH59f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoaFhISFhYOEh4WDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4KAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4OCgoJ/gHt9f318fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4eIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYSFgoN+gYKBf4OBf35+f35/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHhIeFhoaIhoWHhYaHiIaGiIiHh4aHiIaEhoaGh4WFh4OEhYSHhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfH98fX1+fXt9fXx9eXp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaCg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICBg4J+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4N/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18gH59fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn1+f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYSFhISGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSFhoSHhoWFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfn1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH1+fX2AfX18fH2Af318hoOGhoaGhYOEg4aChYGBgH9/gIB+f4GCfX5/f36AgIKCgoSEg4OBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhISGhIaGh4aGhYKEhIOEhoWFg4SDg4SChISAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4F8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1NTU1NTU1NTU1NXV1dXV1NTV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fV1dXV1dXV1dXV1dXV1djb3N3c3Nzc3dzb29vb29ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtBPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi60dTU1NTU1NTU1NTU1NiufIGCgoKCgoKBgYGBgYOLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6Oips7T0tLS0tLS0tLS0tLZkTtERERERERDQ0NERENGU1NTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PEJAODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpKfN09LS0tLS0tLR0dHS2ZRASElJSUlJSUhISEhHSldXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDw+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamsztPS0tLS0tLS0tHS0tmZTVRUVFRUVFRUVFRVVFZgYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tXV1dXV1dXV1dTU1NXV0MvLysrKysrLy8rLy8vLzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7OztPU0M/O0tTPzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXU1NTU1NXX19fX19fX19fX19jY19jY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztCmksXR0qig0M/RpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztKqnayUzrOeo6fWr5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DJl5mFpauhmpOdwJ6YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw5Nj9CP0I6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0aSwvZqLm6GctJicop2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Q1bmch52WrbmGnpavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P0NGaoo+cgaCWeJuEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NWnpKWsm6iInHmfqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NLAnaLMtrWvppyKva2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0Y/SEhHRUA8PD4+PD09PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPUpKCPucCjl5edpaeWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQzs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HIxqa9lZGoo6ukm9Cfq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg1MqOk5eQqMmQjbfXwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw8P0dFR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLUwq+ws9DVx8PV0dXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dTW1tbS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKinqKinqKmpqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6ioqKeoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqOioZ+fn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6am5udnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6efm5qboqCalZeWmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Gglp6ikpianJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWkpainpqKenZ+hn56pn5CUl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaWmp6alpKWmpqWjoKChoZ6neY6PlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqSlpKuwo6Sko6KhoZyilmGRlZmbmZuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOqsKuio6KhoZ6apnNfl5qZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChrZKopaGgnpybnZ9dZJqbmZqcmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaGgoKiXgayfnp2amKSIWGaZnJqdnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCgoKCjpG+bpJ2cmpqleWJmmJybnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp6enqd5h6SbmpydoHhrZpOdnJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZybm5yifoCcmZubnZV1amePn52cnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmZqaqn99iZOcnJuIcWhojp+dnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJyZmJmZmKJ/hoKCmZ6cgXBiaI6fnp2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZiZmZegm5t8epujm4CHa2WQn56en56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmbqZyIZ26tqoxog4FslJ+eoKCenp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmXoKaIdF9lnpaCV3J7epucm5uenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qblaKedFJNb5WEeElZcHeRlJGOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY+nlVM5QHSJcWdFOlVvgYeGgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CKqHlOaFR0i3dlT1VDX3d+gIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+gqBfdYxif6eeiF2Ge1Frf32Fjo2Lho2UkouQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfYyWY7nUj726qbeHdHxpWX+Gio6LjZCZnJSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYx/iI2NjIuHkomVgoHPxJzVrZqwnl+CcVR6kYmJkI+Nj5SUmJCVnJqdnqiusq+wtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmRnqGdk5eboZqdm6OhnG6PuqS40bGorpNss6dVdJSPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mpsKN0jZV+sbyzq5WHXZbEbG+coqGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipamnqKqvkot2e6eXjo9/emptkXpvlqOop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUE9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKaanaSlo6Ghq5R8W2mRfnuAcm9rc3F7e5SdoqKgoZ+hoaignJ6hpaGgpqOinqShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioKOnoaatp6eirKd9bFNbd29xdmtnZGpmbniBj56goaCenaCjmpaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKhn5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGnqa60t7a5tq6PamNPVm5ra3NoYmRiW2Bmb3aAjZujpaGhopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY21qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqm0wsbGyMe/s6aSdWJgSk9vcW10Z2BnZ1hdW2BnbG91fomTnKSfoaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7LA2OHe1ca3qp2RfGdiX0ZSam5xeGhgYmlZW15bXF1hYmFgZnyhvb2opJihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmxwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW2v8nV1setmI6CdWVgY1xBUWxodXZtYmNkWllaW1hZW1lXZ421wL+2rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZzb3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PDub2+wcjQza2AZl1ZV1xVQkpxaG1ncmdhX1hbV1lXVFNijrzCuLe7sLW2qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV2bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvFwcXFwcHAvY5mVlVXUkhEdGtiYG9nWVtZXVteWGOMusW+paWxtqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH6Ef2lmaGFrbGdudnFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/w8PGxsGxlMfKtoVeVlRPR2JogIuMVlVdYGFdYoOxwbmusqerqKiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8fnRrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMS5tcC2tcnPo2tVVVFTX5ippVFWW15eZpXAt6ars7WtrqWko6ekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt2bmtpaHVaZnJ4c3lmZl5kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLFvre9w8q6fVVUVEyPrZ5NVFdXaJa7tLGtrLi1sqypo6GtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXWpvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMe/xcfDx8KLWFFLhrCTSU9VaKDBvb+5vLq8urysraapu7q5t7+ytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGlpdG15bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxcXEw8XHyad0TXqyikdOeK3MzcbEwcTHwby+tLGwsMK+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGtqd2xpZXVudGNdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwcHAwMbLw5NkfWRLg8nJy9DFtr+/wMC6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnY2pkYmptbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzBwMDEk1BJc8nOxMjQwa+9vbi5u7u+t7Sxub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjY2NqYmdjW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Bu7/AvLvEvbrAxL+9vLi7v8V5SaDNxL+/yb+wwb+6t7u+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWOvL67w7W6x7e2ubu8uLm1usTKl02lyMC/u8G+uca9wr+8xbi2t7S4tra7u7m2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHFtZWVmcGpla2hYWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNDFea3Lvce3ubittrS3ubO1srvFyp9QpMm/v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NmYm5gXFRIS0tESkNDRz46Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTYrnaEvsjPwsC4rrW1u723ubG+w8eYUaLOw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHFmbGludG53Y2diXGNRS1VIRUVDR0I8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0Zlzd7HR0czKxLW6v8TIvr60v8DDjVWWz8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGxsbl9jXmFiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysKHdXeozMzLzcrGwsPLzsG8uL26u4Fdi8zGxMDAv8TAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1teHxgcWNbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u6rdvCvra+wL6+uqacqrO3xMCme3l8n8TGy8jBw8DAycrBv7u6sq56bHrHxsXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3h0aHBdXF9cWlFFRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFtm2vzr22ucC8qn1uaG5tdIKXmXV6f5y+v8bAucC8vsXEvb24sbGghntxvMjDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bHV7cG5pXF9fWVNQQUZJR0tARUNIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbF1grS9tbXBpIZpWl5gTlNbXHB2eoWkuLfCurO7t7u9v7q7u62uop+Kg6/Fw8O+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d25xYV9mXVtVSj0/P0dGPUdDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmmhHeLorC1nGpmZ1ZZX0lJTVBUb3uLqbC3vrmytbK8uby2ub6yrbCpl5SVx8fDwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/GqId7doyhmF9TQ1lVSGJqVU9FSmWRpa+vtrq1tLKsvLm4tbjBvaGxsKSjer/Iwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZybmNdZlldXVNPTkE+SkJAS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7OQgXmIj25OS0BlWUJPeIGTaE1DXoWxtbO1srSvrLu6uLa5v8WMtb+urW6svri1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWxdW2pUXVtQTkhER01CRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHtYRkFPh1hJSll4joNjQVWjubO0srCxrbC5uLa7t7q+nrC1rq9+rLCpq62ro6ihnZ2el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh1dG5lVWFjV11RT01IQElSRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmYmZRoTT9TeXFPSUlMaJ1/WkVVsLqxrLOvrqyttraytLWuqaWdmZqcnqeonqCoqZ+hp5abl5eOnZSPkJaNl5ukqKCgoqKipaWdo6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56em5mml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoYh4g3x2f3pjd2xuXVFpVFBOR1BNTENQUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3BqqW8ZkRTnH5QWElLYUlXjWJlZYOvtaqytK6qq6+wsrOtpZ2Rl5OPmKCfoqCco6SfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+YnJmbo5mXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fH91dn1ua3tkaFZSZE1KSEdPU05LTkg8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCrxr/Knk5BdpluT21KTGRmdnRhXWJ0krKvrrO1qqasq6KbmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpaqqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJaboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3l8ZXl5YGJTVWBISUpLU1RJU1FNOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMfGi1ZTSmajWWZ9b3JbUmtjXGdiYG2RtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1tZTVFKT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWlxd3VvY3d2WFdiYGRpW1pXaK2urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2orKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7a4s7itsrSkoJ2loKyhoaKhoJqYlpWfm5uYpaGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCgHx4dmp3dV5tW1JgSFJVSEZVV0pDTUc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCjf2+CcGBjV0tbUlpMTFFZUkhPTkiZrKqppJ+fmZKSlJiYlpaVjIiLjpWdnJ2dnpeemaafoKilsaqnrqOrrrawtLKxrra4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm4vK+zsLXCvLe+s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pd21obVxYW0NXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOenIliV15lYFdNUUc9P0BDRD8+QlJ4qa2pqqWfnp+io52enZqcm5STlZSenZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6qzraqztK+zrqqvo52sqLaxraOwpqCjsLGusKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3VycWhWXFFGVUhESlBJP0VBNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFBGRTtCPkY8Pjk2Tn6qsqejo6KgnqWrpZ6XnJSRmZ2ZlYyKhoiGeG2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNPHvr/Awr7HxsK3w8rJw8HGvrq1uru1u7ewtrKqurKuu7i/u7qruK2rqri7tbyurrmjpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2lveGtlWVtGS0xFRFRMRENFNzo/OjU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9cmlhV05FPklZfG9hQT1cjq6soJmbm56emZeXl5KMjpaXk46NkIyCg4J3cnFtcI+mra60ucW7zcfLv8LMzc3Mx8nRzMzMx8nFxczQ0tXO08m9wL/Du8bFyMXR083U0NPTzMrCxcbGysjPwMnRzMfGyMXCvMPBvr+/tr6zrb/Aw8PHxcfEr7+5sri8xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpaQ05MREZQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaWZcVElEQD9KhZ6kmIOgsq2jnpyfmpiXlJKUlpGQj4yHg4OIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0dfNxsfJzMPFys/K09fS19LV1tPUyMzHzM3K083O083FycrKwcfMx8nJxr/Ds7PIxcvLy8/Hyr++v73BxsXNzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkIuAenJ1dmdjZ3ZqZFZXUURORkBKUUI+Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2FTTEpEQz9DU7DSvbKvppycnKCkoZ2alJOVlIl9eHBrZWJocm9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s7U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3RytLV1tnW19PX2M7Sys/RzM/QzNPQwMjHysTMzMzOz8XHyLa/ysDSzczPxsrIv8TDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKR0FFSUo+O0E4PTU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFZSUBBREFGUXayr6ealJefnJqgoJ6bnJmViXdpY2FfX2BfXl9fXWFsdXNwcG9scnF1ksTIx9TW19fX09bQ1dTa1NTOz9XU1NHRzNDO1NfW09XQz9LT0cnT0cjQ2NfY0dfR19nU1czPz8rN0svO0cDGw8jGz87R0dLIzM3Ay8zG08/MzsjEy8fHyczK1NTR1c/SzNPCucWxpai1rqebqKulnbKosLOtrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6upqqooaOrZUM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cGVjYl9fYV9eYWBfYGBfYGVtcHBua29ydneczMHT1dPY2NbZ0dLS18/TzsvSzdXU0crPzNPW0tHWzc/V1dHF0dTL0NTV1s7S0NjY19jLyM7Eyc/MyszAysDIys7O0MvQzs7Mz8/IzNDQy87Kw8rHyc3LzNLTzdPS0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FlbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksXlIRkI7V46hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3O1MzO0s3L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXNwsjKw8zExsnKy8/Lzs3QztPMxsnPzcjHy8XHwcbKzM3P0cfQz83OzNDFx8G4ub3Dw73DuLKyvrG7w8O1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWdgYHFoWVhoVk1HTElQUUI7Qz47Njg6ODo6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfDuMrV1tna29jMzM/I1tXEwrWvtKifrZd4bHBxeZCbjYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNhYGBfYGFhYF9dW11ncnJwcnNxbXJ5pcfTz8vQ0NPUysXJycbGv8PFz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svQz8a6xL/Gyr3Cx8nOxcPHwMfNyMTMy8zPyMTE0MjGwsbIxL/Bx8zLy87Cy8zJx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG90ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7uto7Z9aIOFpKuUjo2Wj4WDg4OBfYSEfnNfW15eXmBeYGNkY19dXV5fYGBfW1pcYGxycW9va2xvb3250cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIys3JxMLLycHBy9DFy8i/ucK7xse+wMbPy8TAw7vJx8m7ycfFysC+wsvGxcS+xr28wcPFzMXFvMDJw8XH0sXByb/KycbIxtHDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdGZpWmFubVpbWFJETEZCR0VMREZTQDU0MzM1PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sa+1bF56fKGRi5KWhnqAhYV/dXh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lrcG9zj8e9ysXLwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8PJv8HJu7e7usbDv7zBzsPGvr61wb3Du73Gu8O6tLzGxMLCt7+2tr6/u8zDvLW6yLq/vsvDwcbCxcnHycbQxsLMyLLHycPOzMDFw7+9srewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NWXllKRkpGSEtBRUJGSkA5OjY1ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysnGzc3O0cjQxdXU1tfNys7FycXHwbnFvauupV9kdYOTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmdvczAw7rBuK2wsaeqraynuLS2tLOztLu2vbG3sLWvsrvCvMHEvL+7tbK6vsC4yLm0u7fBwr24vcfBxLy1r7K2ur+0xbe7tau4vb7AvbG6trC3urPGvLevu7+1t7XFvL7DxcDExcbHy8XAxsa7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25dVl5gRktISEpGQkRBRUU/PDo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjJyMrIysTPzdLPzcXHwcbAv7q3ybaqsJhbaG+Kj4WIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaWZqbW5yfKTHwLi4tbCrrKeeoqmnnqqss62qrKq0rbaxs6mup6yzu7q2w7m6urGrtbm7tMK6sMCxvry7trzIucO2raqosLLAtri9sLGnsbO0u7yrrrWmrrauu7Kxqrmwrruuu7i7wMC+usO/xsPFwLzGwcfLuMXHxb/Hw8O6xMbCu8bJzMuzucK9u7OJc3d2a2lgYmxoWFdXW0FMS01KRUFDP0ZBOjk6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTQx83Bw8a/xMTDw8rCycq/wLzCurO1tcOuqrCRW2p/koeOj3t4fYmFenuEgXduXl1cXF1fYF9fZGNiY2RiYF9dWltaWl1aWllaXGVub2hmaGlrbnKBrbqwta6lpaenmqCkoJqcpautpKiiq6qsq7Cjpp+qrbS2sb25r7ewqK64tLO8uLS9r7i5tbK8wbLArqWoo6uxsrOovaqrqKusrbWzpaiuoaSvqbKmqKiupai3rLGyt7q6u7K8vr6+xL+1wcHHyLe+wMS3xMO/u7/Ewr7EyMzKv7/DwMCph3N0c2ppXGFvY1dWWFBIWVJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8HLvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairkmRtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWqpaylnpyhpJSdpJqXkaGjqaOjn6Wmp6atoJ2cpKassrC2t6exraiqtKu0urG2tq62ubKwurqxt6WgpJ+msairqLmqpKenqKeyraCnpp+bpKasn5+no6Chsa2trLK0s7Swtby2u8HAsru+w8GxubnCs8G+wLW4vL2+vMLHxcPEv8DEoIN4cGxiZmBrb2BVWV9ITmdPVEdGS0Y8PUA9Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLS2vbi6wLq9tqCelJ2hprq2q7Ozu7PEz8nLw8a4t8fAzL+4ybe7xbizxLizv8CstbyyrKWvs62ho5FpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dna21viJ2pn5aVmqGWm6KYlYyeoaKnnKCfpKWip56bo5ugq7CtsbWkqaqqrKyktLitt7Css7avs7WvsKqfnp+jorKlpqm4raKmpqCorauZoJ+emZ2fpZqao5ycnq+pq6iqq62tsLK4r7i5urC2vLu6q7OyubO9tLaxsba1v7a+wL7Dwru6vZeEenNrX2VeZGRYVFddSVdcS09HSkpHQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uce4t763ssK0sbu7rLm6saKeqaunmJ6PbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2FhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3KNp5yTlJSal5qhlpaQm6KhqJ6cnaWnoqWcoKGbma+urq+yoaWjrqunorWwsrKsqa+zp7qzpragop+co6Gto6Kqtqujo6aepaajlpmdl5mbnaCal52cnZytoauno6Omrauys6q1sLKrs7m0r6qvsrKzt7Ouqa2usrixura6vcC4s7GUhXl1Zl9mXltZVlNaVUtbUUxJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+znaWjmKWxwrW2va20uMHMyMa/xbbBwMfOt8DEvbO5ubO/trG5u62ytK+fmqSqoJSaj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqCbk5OPk5aWnpaYk5egnaGclqChqaSfn6mdm5urp6+wq5yjpLiqoaCuqLaqp6etsaS4sKS3oKOcmZmqp6GarLmvoqGknKKgoJOUoZSWlpuYmJaXnJWfqZ6ppKKdo6qqsa2otKyqp62zsKWqrrOxsLCvr6eop7KusbSvvLS6uK6jlIF6dmVfYVZZWFNSU0tNXkxQTEdITEtFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJmhqZSRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmJjZmmBlZKUi5GTk5qYnJWWnJ+cn5agn6empKann52gpqCqr6afoqO3qKGhoqizoqWopbClsa6stZ6hnZaVqaGilK2xsZ+jo56emJuTi6GUkZOYmJOXmJiXnqebp6KimqSlpaukpbCnpaOrq62mqK6vr6uoqqqzpaarr7Sxrry2sa+voJJ6d3JlYVxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaast7u8wcW6sbm1xMnJwMPGxce2xcSzwb/Fq7e3vba9uru1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpaW1lZWltXVVhXVFRWVVJUUlVgYF9gYV9hYWNkaYCSkoiPjZORkpyUlZakmaCXnaCloq2mpaWjpKOdqqulmp+lsaqgoZ6lq56oop+urKmprq2ioqKVl6KbnJCrqbCcn6Kfn5eZk4qekY2Sk5aQmJiTnKGjnaShopWgoqWlm6OrpaKkq6SrrqWusqmmpaamtKapqK2ztbS5urCqrJ6McnBvYFtXVlVSRlBOSFpcUFJJVEtTTEVHSkQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb3DyKyxuMG1vMC8tLWqrKaVmZubiIFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5RWV1cXV1eX19fYmRtjY+DkIWOkI2Zk5SSnJqinJuhqamrqKynqaakmaWvpZWZpa+poJyZm6Ger5mcq7Ogpaafo6ShlJOblpaSqaqtmp2goaGblJCMmY6MkYySjZaVkJ2ioKSdm6OVm6CjoZiiqKOjqKugq6+krbemo6SirK2qqKuvs7eyvbWzq6+YhXRzaFtYWVNVUkVYTFFbWE1UTlBMUVJJTklCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7evqKivrpupqKy3tqu8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9u7O1pqmglpeYlod6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9hZH2LgIp9io+Jko2WkZeZoqCboKuqpq+sqLGlqZqfraGVlqWop52YkI+anq6XmaiqmZ+dlKWhn5KRkpGTlairpZqZmZ6elo2Mi5OGiY2Dj4uSlZGgnqGkmJWflZqhop6Um6WmqKiooLGwprG9qJ+jrLSqrqewtbC5tcCxrrGrkX5yc2JWVFZOUkpHVlBSUkxMV01KTU9SR01LQUNGREQ+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxtre8vcHDsa+xt620tLuztKKjnZ2Xl5SDgHZrZ2xucW5ya3BrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqf3l+dIeMhpCJl4mUlJibmJ6pm6CrpqasnqiaoKack4+fo5qXl4WEkpukkJWjnZaWloiim5uTi46KkJqlp5yVlZebkZKHlI6LgYyNgJCLkpKSoJqhopaUmJiVoqaZjZmkpqmmoaC0sqeyuKGcorasqa2ksrKmtby1q6yxo4l5c25dTlFRTE9DTU5OUEtGTk5KSk5OUUhNSkFITEhIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKWnpKqloKmmpLOqorLDtbWys8bGtrrDyszGs6y5vbS4wK+tqbCepq66r62fmZqdlZSHe4NuX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW5xdW+Dh4GHf5CDjoqUkZOdoY+anKOipJmll6KclY2HmZqMc42Dfo6XloaRmpCUjo57mY+djIKJf4qYoKOekJOYloWOgpR+fnSKjXqQh5OQkJ2bmpqRlpCdjqOjjomaoKGkpJuitK+ssKyfmKW4pqaxobCunLC8qqmvqpmDd3NjVk1ST1BNQ1NOTFBNQlBRSElOUk1ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGsrcOtp6Kmkp2mtq2joI+VlpKQfXd+ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11panFrfoR7c05Yco+Cl4aNnJeLlJGfmJ2VlJaVj5aJgJSJXztWb3yMlIqAjJKMkIaGc4qFl4F5gXuGk52Ug5WOkZCDhn2TeHFwhox9iYGRjZCXmpiTi5CKnYifmIeIlp6aoaCXp66praionpats6Kmrpmsq5iotKOpraOTf3NuX1tOU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego66hpqaqoKapp6Opr6intMK5sLWwx8K3s73Pv7mvrrXCp6rFqqKdmIOUnLGimpiGlI+Lh31zdV1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNT1JUVlhaYGxuZ3qBc1BCP3+VkpF9iJWMhIqNm46WlYmSiIaVhnmJf2BKUW54i5KEfYSNioV/f25/f5R4dXZ4hI2acFGNiIqGfH54lHZod4aIfoqJlouOkZKWjISKiJWEm42ChJKalp6dlKSjqKmlpJ6bsKqhpKSRpqmWoqqcoqaoiXZtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQz03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hr6GnqKWnqK+sqrW8tri2s8G7tqi5yLi2qKi1tqqyvaaelY1/iZOolpWKfo6Dgn13cG9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3J1fWloXFSQiZSIdH6GgXyFjJOCkpqLj3uGj4B2gHhzb3ZwdI6OgXp+iquEeXtodnuOcHJteIGLjZJ4eoB7gHZzcpJ4Z3WEhISFfJWKiIqNioB/hIuNgJSEfICPmJSclpGfnamen6CdoKmlnp2YjaekkqCglp6fpIFzaGFdXEpXUFJHS1hST0pMTVJKSkpMUEhMUUxSVE1FSEE9Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK8uLa6tLGft7qyqp2drKmosrChmpGNlIGOnI6RfnaGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmdoyWmI2OfGd5gXZ4gImQfYSYkoFxh498d3tva36tfXSQi397hpKBfH91ZnZ8hmxvZ3N8iYyHgGx5cX1xbXaPcWhxgX6OcEOLhYKDhX53d3qMhn2Me3V9jpKPmIuSmpujlpmcmp2eoZyWjYulmo6dl46WmJB4b21mY1pYWFVRSlNVVE9QTlBWS05LT09KUk9ITlBMRkQ8PDc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoaawrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlpylqaSgmJmPhZJ5iI6LinVxe211cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybIinqsB+dHlie3hve3mJkHp9i4ZvbYySeXR5amqAgnGWkYuBfpaASZKYbmh4foJtaWRseYWQkoZrc2x8bnJ8hmlucH9zjYmEhnt+f3t2b3R0hoJ5gXlwfI6MipODlpeYmpCSlpeZl52WjIOJnpKLko2GkJaAb2pvbm9YVlhUUlFZT1JUVFJYVU1OSE1KTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrLCjraqota+urLS/q7zDv6WimpWkmJ6NhIuUoaGZmZGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXF+nh2GaaXN5ZX5vbX96i4l2goiGdGyaknRzfGpqnY9NeYWTiYSOZzF2hnNsfn2DdGZldX+EhIWAZmlsdWtxf3xocXF8bpONj3x0fn1xcG51bYJ/d3l1anmJgoiJg5aSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trb2hlWFJaV1lZW01QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakZmWo6itnrGep7qvq7KwwrG7w8ealo+UmYuOhXqEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+yoHF7eGx9bHGDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooV2cId8h3x0jK6NiYBoZ2JqbnJtcIJ1aW9YdXCOm5J3bH96fW1ybnCAe3N2bmJ2g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2Oe3NxcW1gW11eW1lYYF9STltaWFdMSEpGSkc/Q0FCSD9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp5+vlaW0qa6xrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt0eHhsd253Y2leSlBHPj82NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8foWDf4x+daKZeX6GgYSZhJqcYYaqn52Lg5CNeneIfomJjnOLl4+Eel1kcXR6fHeKbWhqYnlvhZCCem6Bd3SEenB0eXhrbmlddoZ8h3yHh45/ipKXg42FjIZ9cYR/hH11d3t8iXdwc3RmZ2BbW15TW2deV1BUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIyRnJ2fppGgqqCxqK/AsbrFupaOkZSHe4Z2a3+MkYJ9ioSPjHiDgHOghIp8fIF/cIB+emd2a1JXTEBFMjExMzY2Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmiEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqkiGrq+vi4GAk4uCi4KEkqmHgJiYipt0bXyBhod9jmhnaHl/boWHgoVxhIZHbIB3cnl2aG1rX3Z9goh/h4SLeZSdnImLiJF/enWLdnx4bW93foB0dHJsW15eW2NjWGdlW1RPUFZZUERMS0ZOSUNGQ0NAQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5GOlpeSl6CerKGmuK+zvbOXjZKLmIt9dHB+iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWHBZXF5pjZOHlYCEgoWRk36FiJGBmpWCoaGYlZubpq2Tmruxp7vHw6iLjKGlj5SKgZF8cYOen5Gcf3aGhYuQh5BqaG+DgXSNh4SKcYWCd4d/e3aFfW52dWZ/lI6GiYiHiIegq6KViY6Xf3qCiHp5b2dreH57fnRsZV1aW11qXWFmYFpPS05XUlFJUEpETkdDSkRCQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneDe4CMf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShZKVf4qAkpuOg4CBjIqCiY2Df4qAbXBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlNSU1NUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WX2N/Z2dtdZ2bj5qSk4uNjpqIko+di6CgkqOqpaOsk6m2oqjBwq7Hr3i6lJp8jaGemYSThYKOop+TmJKEioWPmZGWbHB1iYyCloyNjnePhHFthYGKlpGDhYhxiKCVhpKJjo+WpLWpm42UooOHk4N9f2tqanyBgYJ0Yl5kX1tna11sa15XS0dOUlFNTExGSVBDRE1GQUNFRkI9OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYWQh4WJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOUFJUUFBRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpaKZoZeilJyep56oq5+orKmqtperv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGIlaKbm3h6fpSYkqGTl5eBlJ57d5WSq7KIjZeffJSdm46SlZijoqa2r52RmaiHlo+NgYhsc3N9gH1yaWBdYV9hZ2RgZ2ZbUkVKS1BPSUlMRkZNQ0hMRkdEQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wMC8vLi4wMDE1PkFCTVFSU1FSU1RSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYWQd5WKo6eqtL24pK2srKeotKuwtrKyrbuxs72cs8OrusnLt8O/uKWisLOsraqji5aYhaamoKOXgaaZjaKrqKSIhZSkoaCroaSpj5uwi5Wjpre6m6CjsJKinaKekKOhq6+ssrSilKSqiJmJkomVenp9hX9oYWhcZWJdZGReZmdfWk9DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhjV2lvWHqFdoGThYeCm4OSkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4WAi4WGh5KGgoSJhoiHh3BuYUBFNjQ8Mi8xMTAtLCstMS4tND9DQU1VUVJTVVVWVU5bUEdHRDw+PkZIQ0VAODs8NUM7PUZLSUdIUk9QV4GSoISuo7OqssDHw6qzxbass7+zuL62v7TBtru6o7jFqLbJx7W+ubWoo7StsLGbmZKan4inr6ullHafpJehrLKzmJaqrqiutruyuqyvtaKxq7G1u7e0rrSgp6ijp5qpr62yube4ppu2qIykjpGSn4Z4goN2WmJlV2ZhYWNgYGZgW1RJRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFiY1d5dXGBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeFgY5/gYmOhoCGiIWKh5F6eG5dVkBFTjw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0pBQD9HS0ZGQzs+QDdENz9CSkpFRldUUF6PpK2jsbTDtrjBzMm2u8S9s7PAtrjBtb6vt3Sxs6W6xKSwxrmxs7G0qKS1tqqxoKKWm6KSpbCupq2sp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwre6uL63ure5rKywprGqrb2wvLvBwauZuqiTrY+Xl6qJfYJ9a1dkYllrZWplV1xjWVZTSUdGTFFHQ0hJQUhEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldTWVVadmpwfo6EgI2DbnpzeIdiuaGZo4mUlJaSlJONkJaSh4Z7hoGNlYqAhIGKenyKh4Z9ioOBioOVfXd6dWVPXGRHRUw7UWNhW15TRj87SFBFWmNRUllYWmdZVGBgTVNQRUE/SUpIRUVBQEM8RTZCPkhHSkxTWlRdk664tbq4yL+6vcnMu7zAu7e1u7q2vbS6scZgdbKksZqeq72qpairq6SisrWgq6eflZafmJ+upaempZ+jlKOnsbSnsrO9tsG+08nJ08fCxczCysPAvr2/u7y3tK+4t7bDucW9wsivnrmpoauOpKi2iIGAc2BjYl5YYmBpZ1JYYFZRVUlFRU5LQD5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaLfoN/gnh7i4OHfIt5gYqCl350fXprZXB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFVZVUpEQktLSEZISEhHQUk5RD9IS1RUVlxaW5O4wLi9t8bAu7nKyrq2ubW4ubK3tbSutraYZHWonK1wXqKsnJigopuknqullJ+fkJSOlpiXp5+ln56amYOknaylqrCtuLC9udTRztbQyczSzM/Oysa/v8LKvcG8wcDExMXKvsjOs6S7sLSvmqu4u5mAe2xeYV1ZXmFaY2NRW2BTUEtDQUVGRTxART5BSEFARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vl5KQlG5sb3V1h7OsoaCfi5mcmYyNlZGbkoWKin6Ih4uQi4h8gYRze4qDhXuJdIGJh5V/c3t5a211e2hyZWlsaWZqaWhgZmlobFptc5atpLyIh2dbb2hdWlpUSEtOT0pLUEtTUUhMQUpHSk9fXmJmaWGXt8ewuLK7vbWxxMa1sLiwr7ursrGnq7esjLWnnZqnmk6anYyOn5aRppillYqTk4mQiZCRkZ2boZealZaHnpqnm6yvqLCntLTU1NTW0svP1NXN08/NxcLJ0L/KycrJ0cfMzcLQ0rivw7zEuaW2usOig29kXV1eWWBXWWZaUV1XT1BCQkhFQkg7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VWc5CQmIJocW95eYOgqp6lloyam5eLjZWRmo59iYuFjYqKipCHfISCcH+IgYZ7h3KDkYuPfXF4dWtxeH5xe254c2xogXBtY2ptcHhpd3x+y7/B36duY3huY1thYEpQUlVOWV5QXVxOUE5UUVVUXG5tdoJxlq24rLSmr7aqrLzAsKu0pqS4pquuoKu0oo6xrZqXmIyRk5GEjpuBjaaRnImDi4SKiYSLg5SVl5eTnJGcmJmZn56rrKSnoqytz9LV0c3L0tPU0NTRzsjD1NHHzdLT09fM0dHF0tbFwM7Hx8KovrfPnnpvZl5iXVdgU11aUFFUUE9IPkBGQUJFPEBCPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OW3WGhYp3bHdwfX5/oZ6eoYuMmJOTjIuTj5aEeYWQkI2LioeRh3+Ce3J+gIGHeYR1hZOQiH9vdnJrc3x8d3tzgXdxaoBzcmlwcXp5cnq+y5p+jLKEdnKEdmhha11DWlpbVmVjWGRqU1hdXWBkXmN3en6LgZipo6Shn6CopaqwuKqls6OhraGjraGnsZ+JppqTkpGJkY+IgZSJapSijJmEgIV+kYODk5ati5WNlZqOhpKRnpensKGgoaWkqMjOz8jCy9HU0dTTztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPDzIxzb2RhYFhUWVRcUEtHSkpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5WJj4qIjoePf3iDlJiKjYiIi4l+gnhze32Dh3d/eoeRloCDbndwbXV/dnh9dIV8eWyHdnRufXaEdXh7nbWMO0GKxaV+jHxpZVdJQ2ZjZWNnamRueFteZmhrbmlugIOIkYucnaCdkJeYnqOjprGjo7OfoaWdoKmgo7Gchp6SkpKQio6LhoOPhH6cm4yNgoSFepR+gqmVo4yRipeSi32XipqSq7OYmpyonKe9w8a5tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2drR1r7LzLR5d29lXltTVlJbVkZHSklFRT06NzpAQEI6R0Q/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhYmCh3x4hZaWiI6Dh4WGeoR5cXp7hIZ1eoWOjZ15i3B8b296f3F7gXGDh4Bujnp1d318gnV+e4aHr3NYqcK2jZGCcG5iPV5ocnBxcG54doFlaG9ydXhxeouGjpORm5WflYeLk5ugm56qn6CsnKGamJ+mnp+rmYuajJCRjYR9iIeDhYuOoJmTiIOHfm2ZeYSYhoiTjI2UjIZ7m4iUj66qlJWXn5mnrrW9qa29xsvJyczL0MnD0srU19nX2NfV29fT2dvV0Nva0dbI1MuVenxqaVxbUFNUXkhDRklIPkE+PTc6PT87PUc9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjpEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoGEf4N8fISYjoeLfoaGgHeCeW57e4eCdHqSno2gdo51gnR1gX10gIRvgY+Bb5KFdHyAhHp2hnuJt8Wkwcm4gpWbj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJWPl5CDiY6WmZeWpZyXn5aekpKXo52Zq5WQkImNkYKMhYmIgYaQkZ6bmYmFjIGGl3qIiJ+Xj4iNiouCfaGJkIu8oZiTl5qcqaalrp+otr/AwLnHyc3Oxc3J0dbV1dnV19vU19na29fb2trYztzGh3x7aGpmYFRYVVVNTEROQzs9PTw4Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop7foB+f3yEe36BkYmEhXqEh3p1fXRtfH2GfnN+kp2RnoORfIZ+eI59eIqKboKagHSZhn2BiIR7fZB6j6iOj8OgvIyco5x9iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYmKkJKVj5yak5SQloyLlZ+clKCUkY2Nj4p+kI6Oi4SJkpaanp+JjJSSnZGCi3+lmYiEjYOGhIClh4uLuJidkZSWoqehnZ6do6+2urWswMXK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbuHl5eW1rZldgXFNQT0lDTEI9PD45OTo6OTk7PTY/Pj48PTk6OzszN0Q/ODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYX1ZYZm1tbWmBjopxcnmKe3p/fH97h3t8e4uHgX51g4V5cnpzbYB+hH53hZuhmp6UkoCMiH+Yh4Cbkm6HqIV6oIt8kY2CiISbfZqQioyjop+Qo66gi5GLhYuBk4ZXcq2Ln6ubj4OYm4+PjluCopGCjJ+TlIyGiIySk4yUlJSPi4+Jh5abnY+VlpCLkpOFgIuIko2Kip2WmaKjhpOdlqCKiYiNnJCDiI9/g4eFpIaMkLOYnZKUl6GhnpmSnJ2nsrispr3Cx87Hxs/M0MzO19DR1K7W1dja2Nra19bZ2Z9xfnVpZ15dWFRXWENASEM+Pj46NDk6Ozc6OzozOzs/PT43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieW1ifpKDb213i3h5f3qBfIZ8e3eGhH9zcIWCenV2dnSEg4V9fpKmo5+lopaKnZCUl4uKqJdyirGNhKeShJmThJmMopWfmJOJmp2ikqmvn5CVkI2OiJaMbo23hZrEyLKboaWbnJiWkbKRZKTNx5WOhoeJj5KNjZOUiYWKiYWWmZuPkJSThpSXhH+Pi5mIjZCql5ejo4iZn5aaiI6Hl5eKhI6MgX+Hj6WJjZOpmpeTlpmhmZ+Zk52borO0paO8wb7IxcXJyMnCytPNzdSp0tHW1tbY2tTT2s6Dc4FpZF9eXk9KVVtCQUZDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdYKOfHxsfYh4en56gYGCfnZ2gIJ7bG6Lf3l8eHh8hIeLfoujs6ijq7KhlqegpaSWla6ig5C3lZKzmY2hoIukm6+ipJ2YkKeWqJmtr6SXlZWUkIuYmZagwI6jybirmqKlrZmRmpyynYaFqKKcmIWIiY6VjYuTj4eBhoeIk5iUjIuTk4aUmIaDkZCcdJGZspaXpKGInJmTj4qQi5eaiYqWjoZ9jJifipCQnJqZk5iYn5SgnZWfm6GxrqOkt760xcfEvcPDv8bOysnSp87N09LQ1tjSz9i7c3t3XmFWYVdQSEpPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdOW1xZSmdhO0iEi3p6bYWGeXyEeICFgX1weHx9fG9zjXp9gXt4houJhYSSqLutqLK9r6Wus7Ooo6KwrIqatJ6iuKWVrKSXqa23pqSjn5mpmKqjr7CpmpmclJWRl6CXmbu7rcmgaba4q7CUmJ6iq5KXvaNeqrKCiYqNlYeRfI+OfYOGjY+UlIiHkpaLj5WNioyWmZKdmrOWlauei5uUko2QkoyYm4qSnpCMiZWfoo2VjpianZObmJ6UoaCUnJylr6iipbO4q8LIxLW7vbvFyMfC0aHGyc3NxNbW0MvTonF8al5bVV9SUEZEPj1DQUE4Pzg3ND5GPDw2PDM1MzU1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVIYmBjcEpAi4p+gHKGh3yBiXWCioJ+bX19fH9wd4d3jYGHe42PjIaMmqvCwLC+xruytMG8tK2rs7aMqLKurr2qm7ukqK25t6umpqKio6Opr7Kxqp2cpJibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIacrb2wg4uLi5CDj4ORj3qBh5CNjpyIiI+XjYuVl5SQmpacp5qxmpGrnY6Zj5KOlZCQlpePkaCRiJWbpKyUlo+UnJ6UoJ6bmKChlJqeqKekoaOwsqbBxsOwsLq2xcTCvs2nx8PHw7zV0M3Eyol1dGNdW2FbTktDTEBFRj5BP0I7OjQ+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxnR2BpZ1pdW5OMjIh7h4uGg4x1hpCKgW5+fIJ/cX6BepV6kpSUmJGTlae0xsnAwszBw7nIvLqvq7m7l7K2urPArqXApKqwu7uqrquiop6nq661sKqboKqcopyVnrC0p4uiurq1wburqJyypKSolISOqcPEpIKLjoeIhIaVlI16g4yRj5GhjIyUkY+JmJ+Xk5mUl6agrp2MqpyOlY+SkZWVjpCVkY+hlIaXn6CznpSblKChmaSfmqCcoJSYnqakpqekr62lv8TCrqm3tcnDvrbOssW+w7yz0crIwbV2em5dWV1rU01JQ0xKSklAQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZaJi4iSj4aJeYaTkIFygHyNfneHgYKQeo2hlqiampi6vsjIysLSycrCzbzBs627vqe6v768w7eswamss7u9qrCppKWjq660rra1oJ+un6aimKO0vambqLzAo7a2r6uSr6yqq5aGmqmmpZGCjJOllYmAdYqSeYWNkZCen5OOlIuPjZSjmZeblJSjnqmfkaWajI+Pj5WWiH2PlZKSo5qVoKKctaaRn5elpKOlnp6mmJ6Vl5ulo6moorKsqLvAxK+ls7fMwLmuw7O7vsG4rcLCwcCZb3pjWVdcXExMTUlHRENIQkJBQ0s6NERIOjs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+a0lfWGFaZGVWno+djpeOnpKJin+Jn5KEeIV/lX5/kIiKkICVoJmup6OYwr3IxMjG083Ozcu8wrewury0vMq8w8G2truts7+5vK2vqKCpp7atrqmyt5qeraKooZ2rt7ippa++xLG9uLOnqbOzra6WlaWsp6CRjpKxxaeVjXyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuMj4+eiFqQl5eSlqWaZpijn7OllqOWrK2rp5ufp5iZlpmVoaSopp62q6m6vMO1pbS2y8G4qrass7q4rqi4ur24g25vW1hVVk9GS1NNSz9BSEVER0ZHODVGTTs+Nz5BSi4zMjAyNUI1NVBXTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnJGaUlSZWJMRqaUnJahl6mWjJCDh6WSiIGHgpyEg5WQkZSOmqKfr76uoce9xcTHx87OztLKvru2sbq7vL7OtsS9t7i3srK1s7iyq6acq6u4qqmnr7CXo66kp6SltMCwqqyzvsK5wLizp7izt7OulaWtrq6ki5OVoY1zwZl9lpmEjpaai7GVmpmVkpOZmaajlaCblpqonJuhoJmLjI+WnWBKlpyalJqll1SWsJ+vnJ+llK+vraWaoaaUk5mZjp2gp6KZtKmqs728u6uwssfAuaarq62xsaOhsrK0pHJwZl1bT1FMRVBQUFE7SEtJRkhBQz45S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1SRVdSc2JXRkirl5mfoamvmJCXh4unlo6IkoWfiIScl4+eoJujpbXJtKnGu8PEyMrIx8zOx766s6+5uMDBzbXIusC5tbqxr6+ytKejm6q0tKqppq6smaSupaWprbq/qKu2tr7Bv764s7HCr7e9q6OutKy4pYibl6abdr6ghJicjpOZmouvlqGcm5eVm5+hqZ6ooJmaqpmhp56XkI2RnYNudpOimpWdop+QrrKjq5WpqpirrqWkn6WpkpKZm4iUnKKelrCnqau6t76zsq29ubafo6eopaecnKypqY1lZ2FfUkxNR0dOSlZMPU1ETUlKQUNEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5TYU1WSH9lXkhGrJScoZ+7r5iUnouTqpuRkpOJq42Hop6MpKyUo6O2x720wbrCwsjJxcLOyMG9ubKvubTAwsq2xrHAvLS6q6mtrK+jopiqtLqmqaasqp2or6ekq6u+u6isvLO3vca8t7W4wLC9v7OptLarvqSPopeRop+8n4mZoJmWnp2Pt5+pnKWjm5yhmqils6GbnaWcqKqemZWPlJqLl4mNpKKUnKKfoLWvpaWTsauarKyfnqSjqZKVlaCDkJ6fnJWppaKhtLW6ta2otbKznpyippqXlZmqoZ53Yl5gXktJRkhNUUlNRUZGQlJKSEFER0FWU0RIPEFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREScb2JHRaiXpJ6ew62bl6WXmamclpqaj6qWlaimla2smaGqtsTCvL+3wcPAx8S/zca7vrmysLizv8PItb+vvLa5t6ajq6usoKCaqqrEoqWorKaerK+soqqovrimrL2wt7bHtrS5uL6wvsG2tLK0r76jlqOWk5uUrZ+QoaKlo6OfkL6lqZ2orJ2doZumn72imKSeoqmroZ2WjZWek5+Hj4WNk56koJ21rKWclrKnmbCon5qqnqCNmZWfhY6hmpuSpaSamKyxtrGqpamtrJyZoKGSjpCVqZ+UaWRaYV1QSkdLT0xIRUNJQD1PSEA7R0lIW1JPSz1ITlU0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGVjV0yimqObnsWsoZ+snZ2tn5KjnpakoKeqrJe2sKOqs7bEw73Atr/CvMjCvsrItri1tLCztLfBxra+sLi0ubWfpq2qq52en6WkwaWgqq6gpKmtr6Kmp721pbG7t7a1w7Kzt7q+scPAuLits7S1opyklZGToK2gmKGdqairoprDramerK6bm56ZpqC9oZ2kmKurq6ahmY2an5KeiY5Xf5WepqGguKqnk5i2o5+zoqCbr5efj5mUnYKPoJeWjaKklZCmrrKrqaKipaWVlZ2Zi4+Rk6SfiWNlW2RgTElKS05GRUFGSz49SkE5OUpKTl1RUUo9TFdcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXEtOnp+hmJ7Ep6Wis6GcsqeTqqSfo5+tqaydu7CorLWyyMPBwrPCxL3GxL3Eyr2wsLausLWvv8W1ubCwurWsmqiwqamanqahp8Ktm6yxnKqirrCppKe9t6a2ur2vt8Sts7PCv7HGs7q3q7S2raqipZWVlKOroZ+fmairsK6uu7KmoKmpmZmXk6KkuKGhpJKur6ykpp+SoZ6Vno+RjZSdmqOfp7Snp4yYtJyjsJqem66Rn5SXlJqAkqKWj46goZOLpq2wpaeinKCekpKblIWLko2cnoBjZltoZktJTEpTQkNASUc7O0Y/OTlOTVVeUlNKPk9eXj1IUEJMTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ufwqijqrGho7SplrKrpqKksqyuqbuyrbC0tMa/xMS2wMS+ysS1wMjCtau1qLC4rMDEtLeurLa6pZmrsaupmJ+ml627tZuosJutn660sqequrOnurK3srjAqreywry0xae+rq23tamnrKGXlpGlpKKil5ikr7itsrW2oJ+opJmUlZOjn7ejpKWVrrGypamlop6ampqVl6ifn5iinq6yoqaNl66ZpayXmp6lkZuOlJiahZaflIyQnJ6Ui6mpq6KnoZmeloyPmZCBhpaJlJ95ZGldbGpOUE1OVD1CQU5DOzpJQDc3UU9dXlJWUUFXYFxCSlNIV0tIOlVkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM4MDZwW2JIMDVKcGlWQ1dGjHlmQzuko5yhpb+mqK+voam1qp25r6ukqrS3sbC5trC3uLjFvcPHvbzEwcfAucHGwbqqtqWtu63Bw7e3qq2yvKKVrbCtsZalqJGquaqgp7Cdqp+vtLOqqba2rLursrK5t6y5sMG5vb6mw6uwt66oqqumnZiYqqGhoJGXoLCus6uwuZqbqZ+ZlpKXpqC2qaWioq+xs6uxp6ufm6Cgm56knKGXnaOzsJufkJSmmqGpm5Win5aYipWYk5aXnZOJkJuZlI6pqaefpJuYm5OHjpmLfo2Who6ba2ltYW1uWFFRWlRBQ0VVQDs6SUE3OlhQZF5QVldEWV5eTUxSTl9LSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRihAOGx9aFxWOol7Y0M9qJ+coam9oaqwqqOxuKmltbKroa21va+zuLy6vbe2wcO/ycS5xcPAwLjFvcG4r7anq7eyvL++tamusbefl6utqK2Xp6mOp7ufpa2znquisbCzrKq2s7W8ra+xtaywtbHAucS2q7yvsbisrKmisaWepKifpJeQmJ+yqrOpqrOZnaebmZSNoKWktK6noqysrrGnsqyyqaObn6eknZShmJuotamXmZGSn5mfoZ6QrJ+YmIaVmIudmp2Tio2Wl5qXpqajoJ2WlZaUgY+VhXuPkoSMlmZsc2hwcl9HWWZWRENOWERaOUhCNj5dUmhcTlldR1teXU5NUlhkSkpDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFWMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSaoKSst6OsqaWurraqrrS5pqewuMW3sbe+wcK1tLvFvszFucPBur+6xLjBubO1rKq6t7u6vrWqrbG2mJioq6qrm6yrj6u9nquusaOqn7Gts66utrK5tqmtrrGntbCzurzJsqq1tLG0r66mobOfmqisoKWVlZqZsaKtoKWvlqGkmZmSjaKlprKpoaaxq6q1pK2wta+jmJ2tp5qXnpmZrLiimJOQj5icoZmXlKyfnZSBk5mNnpyalpCKlJKemqWjoqCZlpKSlnuLkIV7jIqDi5JrbnludXxhRmBqWklIWls9e0pHRTZBYlRpWk1cYUpbXVpSUlNiYUxLRWBhYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuKkEvSkdQW0czY1lUS0SZl5+vqLGprKWjrq61qba0t6OstLfJurS7ur++tbS3w8HNx7zEvbe+v8C3v72yva6nurq3t8K3rK2xuZWXpq6rp6OyqpSvuqStsrGnp6Kxs7GysbWxuLKorquyp7ivtbPDxbaptLWrsK2pp6K2n56msaCklJuZlLGdp5ufqY2pop2blZelpaS3p6Kws6unsaessLWspJmhrKibnJ2blKq4nJWOjouZnaKYkJenop+Wg5KWkJ2cmJeWiJePl5qnnaSgkpaRkJZ2hJCHe4WChIyMbnF4dnx/XUtlbFxKT2NcP2J7R0k4R2dXZVtMXmJNWFlXVFhUaV1QT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3JrS0RDkZikraStraumo7Cys6q2sLafq7W5ybmuwbvDt7OytcLDz8TAwb20vcC/ur+9s8Soqrmxtre/va+rs7OdoKewraWmsKWesrWsq7KwrKmotLmstLO1rLSsqauorKm5rbGwx764pLmvqa2tpqitsKWjo66jqZydm5qvmaKjoqOQrJ6joJ+hqaWluKSrtLSkqquorK62r6Kdo6iqm6CZmpKktJqPiY2HkaOglo6UnqCVk4WOlJOdm5mWlIeYkpWZp5ygn42SkY6Rd36OhXx8fYeKiXF0c359flxSZG5eTlpmXUZElltHOk5tWGFbTWBiTlZXVldUWWdeUVJMZFpbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NlOzYqSGRISis6ST8zQ0lTLD6Paz5ISY+aqaqhqLCkqKOztLG0tbGxoaytvcu6rsG7xrG0rbTCw9HExr7Asr7Cwry/uLzFqK23rLO4vMGwq7KtoaSnramopLCjq7Gqr6uxrq6tq7O7p7exsqmyqaqmpaOtuqypscK5tKy5qKioramnsaWppKKuqqiinpuirJWknZeemKudoaeooaylo62st7GxoKmin6qtsKydnqanqZmjmJiPoKeYhoOOioufoZCMjZedkJCGiJGVoJ2VmJWGlpOTl6WcnZyLkZCNin9/h4V8d3+HhYd1c3KJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU9kXE5VVlVXUFxhX1NPTmhYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkowLklnREY4PEIwNUVLWDFAlFxATUaVlqynoaqynKmosLWsuLSuqqSrq73Ju7G+t8OvsK2zxMTOzsO/v7TAw8S6wLTJxKyvt66yusC/s66uq6WoqrCppqiypbStqrCurbGvs6yzuqS4tKysrqeroKKesLerqq26tqS1taSpp6ysqqyhqKamsbKkpqWhoauWqaCTmqCmnqOiqqSsop6msbesrKKkopqpqq2pnKGlpKOYoJqVj5idlIGCkIiFnaCNio6Nmo+Ri4SNmKSckpGbjJORkZSjmpuai46Li3yHgYKCe3WAhIF+dXeLo4d5a15gbmdXZodkTkBnkkxEYnpXYlhSZVVNVlVVVE9cXWFVS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZBSUhElpGvpKKqsJeqqK21q7awq6Srqqm8wcC4ubO8taayr8TJy9G/wbu5wMDCucG6wsSusbWytLzBvrOyrq2rrKi2qqWtsKq5r6iwsK6xq7WqtrWmtLarrKSpqpyjnbOzqKiktLSgtq6hqairqKunoKqrqLm2qaqpqaGpn62bkaihnaCkoqaiqZ2cprSup6WpoqOXpKanqZyio6OfmZifkY6PmY5+h42HhZ6eiISKi4+OkY2EhpWimo6NmpGSkY6Tn5eYlo2Kg390h4F/f3h1g397eH6AiJ2PcHJnZ3F4XGFziGlPXZhWSG15VWRWUmNPTFVUVVFPWFpiVkhQalRXU0dQWVVJPklIT1FQeExOVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JFO5WNr5+lqq2Zq6StrrO0rqqlr6mpu767wbGvuK2ita/Jx8jRwL+9urzDvbrDwcC/r7Kzsra9vMGysrOrs6mltaikrbOzua+irbWxr7G5qriuqq62q6qeqqugo6G2rqihnq+yobSqnqinqqOqoaGsrai9r6yurKGnp5+rmI+vopiioKinnqebmamwqKKfrKGgkqGio6aYmqilmJiYnY+Kh5WIfY2GhIWkl4aCgoyHj46RhYWVoJeIkZ2Qk5CNkZ2Vl4+KhYZ4c4F/fXV4eoB7dHR7aoKHo3VpXmVsgXVniIt8UldwXkp4c1RkU1FfTU1TWmdOTFZZZVhHU2pSUj5CTlFhUTpJSExTSXFQTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytITztYQjSPjrCfpKWqo6WjrKa0s7CppLCnqri+wbywqLmqp66wycbI0MK9wL65vr68ybzCubGwtbK6vLnAs7S7rbmso7Wmp6yytrmypqe6ta20vK+8pa2ttautnKmvpJ+lrKqnnJ2qsqSzqJqqp6qkqZ6iqKipvau0r62eqaOgrpuasqKVpJukpZ+kmpqoqqWemqmhm5GaoKSdmJapqZGZmZOQioKPhX2PgoCIno+HgH6Mh5GPkIWAlJuUhZOijJSRi5GbkpWHiX6Acnp5fnxod3x6dXBxfmmGeYSIZGBoZHKFe21neV1eVkJXe21UYVBSWEtLTXB0XUhaW2dZRVZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpOwmZ+fqaWjoaqlt7KxpKmxpq25wb21sKO5raiosMPJyczBt73Atbe/usi2w7W0s7Wyvbm6vbatuba/raKzpqurr7W3tKqduruosb+yuaCvtLaprJ6tsaOcpaipop2cpLCmr6Cfq6mnoamco6igrbunrrGuoaqio62enqyll5+boKKcn5uZoqqimpmjo5WWk5+hlpuWpqyLnpGQkYyCi4B/j4F7mpSNiX1+jIeQj4yKhZKYkYeUpImSkoeQmpCTgYh8eWx9dnl4Ynt6cnBwc3hqgnRqgmdjaGFuc45tYmpwYG9BXXlrVl5OUFFKSUxTWVZNXF5tV0RYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUV09I5KXq5ifl6ejoZ+no7ivraKvr6mruMK6s62fua+rqLS6x8rHv7fCvq+0vrfEtsOysLqys8C1u764qbm4vauktaeoqrCtubCpmbm8o66/tLShrre1p6ansLOgn6Wmp6ClmZ6sqKmeoKqup6Cml6Kon7C4n6SxrqCsoaykm6amqJqam56jlZycmp2pppaanqiRl5KYnZOZlaGqkJqJjZCHfYh/go58fKGMjYl5g42Fio2NhYiTmo6JlZ+IkZWCjJeNkH2Ee3NwfHFzdGB5eGpvcHFwan9zY3psaGZkYWWHgGBbcmpxTU6AaVhaTVBMSkdQUlFITVtfb1REWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MFxbNSiWm6WYnJWsn5+hpKG3qrCjtLSpqbnFtrKuoLesra2wtcXHwLe/wrmwtby3v7u/r6y+sLO/sb3Duam7urinqLWop6uwrLOwppm8tqSrurWun7G4r6mlp6+ym6GkoKOkoZabr6ahn6Oor6GgopOjpKK2sKGmsaufrKKul5uqpKiel5qdpJOanJqdpamZm5uklJSXlJyOk5eiqaGQiYqPhXqEfoSKeo+Xio2HeoKIhImMjoWOk5iMjpaZio+Wf4aXi496gHpwcXZucHRfeHdlbWxsa2mEbmZyaWtmaV1jdIFgW2t1aVpKf15bWE9PS0hIUlVGMjldXm1QRFhWWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJjViwylaKhl5SbqZykoaKht6muoLq4pay9xbOwrqO1r62tr7TDw7yzv7q3sLO5uLq4uq+uwLO0ubC/wbisvbq1paKzqqepsqutsaGawLWkp7W1qJ6yvKmopamvrJmjp5ykpZSXobKlmZ+kqKmcoqCTpJ+juKikp66mnaWhqJKfqKGhoJianKCSmpuWn6Gqm5qYoJSQk5aZjZSSo6ikkImJj4Z5hHuEhn2djomKh3qBhIeJiZGFlZOTjJCVlI2OlHuCl46Ld357bHRxbGxzYXd0aGhqZ2dvhWdoaGNmaWpgamNpZ1tle2NgU3RUXFtTTEpHSU9TQCEqaF5qTENWVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z08nMp6io5GOo6abnp6do7Wsp6q6t6esxMG2sKyjta6nrq+3wL+8ssG2sK6ytra4tratqr2zrrKxvb+4rry7saSftqulpbSpqq6encGrqKWvsqmstbueqaqrsaWYnqmdp6SRmKatopiepKmhm6Kclp+dp7alr6quoaGdnaGUoKafoaCZm5mckZidlKWdq6GXlpyUkoyVl4uPmJqpoJGIiYuIeYV3goKCnYiLgol9f4WIhoaRhJaVj46QkZGRjJJ7g5WNhnN9fWZ4b2tqa2d1c2tjZ2RkdoBiZWZmZWpqZGtyWl9ZXW1kYU5pWFtgVkpHSUtNUlg+OV9saUhCVFNcW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao5+Qi6yhmJiflqSzsaKxvbahsca8urGxpLesqq6puby7uq7Asq6urrausrizqKu5sa+us7a6trC4va2mnrWqoKCwpKqvnKLAoLGkrrCut661nq2vra2imp2nqaWelZqnpZ+ZpKKpnZqfm5ScnayvpbqorqKhmpqdmZ6jmqSdl56Ym5SZoJKolamnmpOampGLlJmNlJSZqaeOjYqJj3yCc4GBipiFh3yJiYWFioyKkoSUnJORj5CQlo6Qf4CMjYJwgH5meW1oa2lncXJrXGhjY3OBYWZoam5sZ2pqaG5dbGx0cGFVY2lkZVpJRkxNT1hRUVZhZYFVQFZTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kaGajY+wnZqToZmosq+fuL+2oLTCu725saa2sKiupbe4t7etu6+sqqu2qrO4raWztbKuqbC3trGztbqnqZ+1qJ2eqKKprZqnvpito66vtLWtrJ+xrbCpopyco6uom5ScpqOdmqmipJaan5yQm6Orqqm7n6ekoJiZmZ2hj2uhlpmccIKVmqN/dZGpp56UlJ6QiJeZgJaKoZB4hpSMg25qfnaDcWyGi4Z9hIyHcF5jYWeEmIZri4+UknR3i4R+g49/Z4aAZ3VoZVdcaHNuTlBqY2dyhGdfZGZubWpeX2GKj4OEZU5LRDlGVGdeSkdQUFRVS0hSYG90ZUZaUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoujmYaUsJuck6Cbqq2qo73Fr6m3wri9vK2ntrClq6S3s7GzsbmtqaastKavtaKouLa2qKest7OutK2zoqmfs6qeoaSbpqeYq7qVpqWvsratrqSprquspaGfnaCnp5uXoKWlm5unp52Tn5+YkJ6nqqO1r6Ojo5yWl5eXo4ihjpKah6GHk5ygf6R/paqekpGakYiEcniNjoWIoXaIjGmXiGZ9cnihb4iHhH6OfX+hoKCZgHyHnnSHjnabimyHgYNsaGVjemtxYVOFbWNsaZhxWWpxb4dYXmlba2tbiHFuenKFZ4aEWl5HTj9HX01GUlZWUVFSV1RnXk1XSVJTT0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiLppaDnKudmZidn6qqp6q/w6+xur23wL+qpbewqayms7SurrO3q6mlsa2ltLOcrbW2tKanqLOxrbKorp6roLKooKOimqGjmq2zlKOlpbW8p6ynq6qtqKWhoJigpqOZmaWjpJicpKmWlKOclJOkpaaht6OjoKSYlJOXk5uIro+YlImpi5ehm4WxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGXvJzFenK1pruQe4BslrGrsHhoa1ixrm5labySvG5oem5yj9h+U2pitrJ/gXKVdJqhqpBXT1diUFZORlRbWFFQUoxcV1xQQFxEUU5ER0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaSgKeqn5ecnaWtsqixwr2ytcC1t77Cq6azrKypp6+zqa+2tKenprSlp7iunLOytqqlpKexrq6xpqqep6Sxo6Kfnpebn52uq5Sdop+zuqOqqaKtrqWhnZqaoaefl5unoJ+YnqenkZynmpOdoaaioLCin5+jlpWSmJKZha9qaoqNqn5ng5WGrWRwnZyTmaWUca6hpH54u31roY92sV9qtFulgGackWBmgnpmf2p4a6lkvnJnpox1sWp8sXh0kpNjbW2nbluEoEVoZoeWRXWcYH5nfKSngllfi6tpgJZ4eWqnN0qvXFhTbGRbS05XX1xXVjtOiU9YVy9JVFRJQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKsp6Weo6SqsrestL2+sLbEsre6wqapsKuuqamwrqOwuq+jpK6yo6i4qJ6zsrCjpaCqra+sr6ann6OisJuim5eVl5ubrKWWmqGes7Oiq5yira2gnZmXoKGonJmdo5+cmaGmpI+do5qXoJ+qnqamoJufoZWVkZaRmoW1m7V4hamZtZl2hrObt36TlZaolH5rgaZ7goaIkpSSd6tna7Fbq3uPh5R0iXGPhoB/iJCXeIKCi5iMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5WFhBI01oRUJFQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5WHs6amoa6pp7Ksqbu2wrC7wq24t8CqrK2trqatsamhr7yqoae0raOrtaSms7Ono6Kdp6qyqLCnpZ6fn6+Wn5iUlZWXnayhmZmkqLSvoqmPqaiqm52VmKClp5qfnKKfm6CjpKOVm5+XmZ2iqZulmZycoqCXk5GTkpyD1ZOZuXCwwn7FhnzWlJu7fJmVpI+NnI2ke46Ho4KlgnqseY+dVq96iH6farlauXaHhH2mgpN8mHqqeY2dkHuxbo6EdJC8hW+UUK+nxYpRoHpjYKljdHKIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhObU1bUk9ZZllDRD5FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzElm6KTmLGoqKWzqqW0qaS8t8GwucCxtbS7s7WnsbCjsLKmn662qJqnua6jr7Ggs7SwoKSen6epsKm0qKScnZ6ql5iXlpeVlaCqnJmWp62wqaOej6yiqJadl5yhpaGYoqGhoZqhoqabnqGelJmbpqCcp5Wbm5+hmY+RlJGciLJuaLVxq4dujqZytHNytnuZl6OLj52No3+RoaV+sHaDkdLRdlyue4V/pG+bqqZrh4V9rX2XmY97sXOSnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa19saE9VR0k4PVZRWldYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGdkqWvraSqvK2mtaWntru8srq/t7W0urqzpbS0obGxop+ssKSXprqupLGwnLS4qp+mnaGppLKorKmkmpyaqJ6VlJiYkpKip5+WkqWqsKailpOtn6WSlKCbpKaflJqlpqGaop+tmqCenZCVm6GenKWVnZaZop+VmJWRmoWse3eodqOOiIapb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9eIV+j56GmZl3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV93d4domIhrXa93lZ6PeGw1eciusl9CU29eZ2BFUG1fcG1WVU0uZWNoUlhRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk6OTmfnZSfuLCXtMGtqLOoqbK6t7O3v7m3srW8taS3s5+0rJ+fqKyflKe1q6ixsauttKSbqaCgqKG2p6apopmdlaWhk5KbmZKUoqSakpCmrK+moJWZqZ+ijpGimailoJWapaidnKSerJ2hnaCNlJ6anaGYmZyWl6Ggk5iQpp6GqX19pXihj46DqnCti4GnhpWfoYiXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aIdKiCjpuNkqN8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcW0x0XWJmTVthX3J0X0pWNkqbk1hIRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84oZ2Zmb+rl7TCrqytqaa0sLextb+5ubKwt7upurSfsKSdpaennpOqsKmvqbWsqq+hmKGgpqWkuqKjq6CXm5GioJSTnpqUl56fj42LqK+vpp2Wm6imn4ySpJeoq6eUl6mnnp6go62koZ6hjZWhmJ+gkp2XnJWdoZWWjqubj65tcrRyqYx2iqZztHhzs4CRpKKRnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZKIrWt1s2GdZqJvh5Jql1ytX02hfIeRUnOjbXp/fm+Yh3Fcr1Y8nHdlVG9uLlynT2NSa2VibVpjXWFwe2NTWlE+Pm1vM0NCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWam527oZyywK6uq6unt6m4r7XAtbywr7m4q8G2qaqgm6ajop2RqqqotqOyp6+qoJecp6Ckq7ido62blpmPpaKVjJ2hm5icn5GTlKu1sKeZlJysqpeMk6WZpa2ikZaqsaSfnqarsJiho5CZopafm5acl6GSnKmclJCqmYfUkpq7c7DDgMOGftWWm7h4h5CXjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2VgaypcXt/dbyIp6BpnWGmjq+hfox0h6p9vm5zvHSyg3V4gYpumohxbo2kdL1ed31bYXm8a1pWW2p6XmphZWdibXdvWVtZQ0FAckBDRys1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56hvKKXscOwraqqrLGnuK+2xLG5sa66r67Asaukop6jopybkKmjqrKktKatpZ+WmaqZpqy5naOumJSgkKWgkoyco56XnZuQlZKvubGslZejp6eTkJaknKStnpGgqKufm5+oo7Oeo6WOp6KUoZqcmJWjmI+woJKUqZ6FkJm1gJCRjLeVeIKTmrV3bWtuc256j4SOiXSewbu9mnuBsqhwgHSRuIN8hoaMho17ioeNl3yku7m9nHV6s6N0dpd1dLB1mZ5mhmmNtXRycHe2jF6Aen2KaIN5bXlji6xwdYV/WlunakVlWlRmYGNdY1FnZ3BsdEJNUExEOlpNP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPjs8p56gob+llrTCtKyqqKyrqbuusMWutLKut6e0uK2poqGlnqCdmZOrpK2pprWop5+blqCjnaykvqahqpeUnJCim5GPoqihk52Yk5eUsrW3rZidpKSiipKSppulqpuWqaSlnJqhqKamo6mhka2elqOel5eXnZ6PsKiUm6ehjmp+aZymeIdyfZqOdHpkh3u9vsC6b5KCcZWHYHJqWl6bimFjiI6Va2B/lWNtnXdilWuAmpWUZV5gY3GaimhyjH2FlWdqfnJ0eH19Ylt3dIFoUFxuhH17i2tYbHqCc0lKb4ZwTXVNRVddZ2FMWldnY19PW211anFST0RFTjtISD1MPzItMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqigqKHCo5q0ubajrKWup6i1sqvIq7Cyq7SjvrGypqCiqJ2jm5mZrKavpKW1qaWbl5Whmqatqb6nqKaVk5uVoJqSl6SpqJCdkY+YnLCyv6ybp52nooiTkamaqKOam6yfo5mao6esop+ropqxm5WnoJeVnZ+dl7Gkl6GomZyRnZyipJimopqcmpqZj5WBZ219cXeSl5SRhYu1qo2GmJWOioyYl4eUlYqEkpSRiY6SlJiUmJeaoKKanJShno2CeqSGbGp8kHyAdImKgXGCeHl2douAe4prc4F0g3Vkd313a3B7bWBjXXBoTVhaZmpgV1pveW5tZlNPRlM5T1lNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzobOhv6GksbK3oKmlsqelsLWqyKussKW1psCntKCdpKSco5WVoKqmraOjtqufmZaVn5atqaXBnqujlZKcl56Yk5Sin56ip5ORmainssSvmqucq5+QlpaonaqbnKCsmKGbnKKkr6ahpaifrpiXp52ZmqCenpyvoJyhppWYkpiToKGVo56XoI6Wk4qKjY6WrY98lZuCkoKLqqiGgZiWioSPn4h7hJCHhZmSiIaKlY+bl42Ql56jlpqTkZ6Nf45mobOvhYqEdnqQinx2eXpvZnqRgYCJa3WBeYhzaHN/enWDh4JrdGR5ZmBpZWNkZmtZa3twaWpcU0xQRF9URUA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r7+sq66ysaCqprGtoqyzsMSwqqujs668o7Sbn6aioZyZl6elqaakpbO1npWUnZmZsKauvqCropCRnZqZk5GVoZyXqJyEnqqrorPIs5+qpKuWlpeap52omp+kq5Oenp2gqa+ppaOroq6bn6ChmKSenJ+dr6OYnqiTmJeckaSZmKidmpdlgpJ8ZX6NmY9jeY1saGt7kqSqamWamH5nhoplZWloe46hj2tojZeRondraouYo56Zc2xueoSNh3pYZV6Ggl5si4mAdlxoc3d3koCHgm54gniAc215hHR3iYiOg3tphllea3RkXXOJaWp9cWtjXlJOV0pkWEFKND1GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsKqlqK2tsKetrbC8samnpK2vsJ+tl5+jnaKZmaarnK2jpaepsq2elaOQoq+mtrmlrqOOjpqhmZKSm6CZmaWVe6WtoqizxLikoaevnp2UnqKeo5yjqamSnqGdoKqwqqukqqCqm6afqKCslqGbpbCkl5uqlaGem5Kll56qmJ5+vYOHcrRyhJ2FrWh4ucS4cZOio3qmmZlzqoJ8y8DAu3GLooiCn32VmIidwL2Clp2djZ3CwXuCfJKNmsPAfWulsm+MgW/Ken+bd5KDjoF2eoGAeXF6f4dxeIWNk3ltd5RjZl95ZGBlgmNedGhsZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7nDtLCvwKmolKOvqbCuraaytK+ppaamsaufq5iaop+cmqqnop2soqWopaS0pJ2ik6atq7izp6+ikZGZnaWSkaChmJufnYenrKSrrcDAsaGpr6mXkZ6doZmio6qjk6ChnZ2trqmsp6Ojp6GlpZ2tqZKkmqitqZucqZysoZaWpZWhopecf86UeHqkgXiUlptfro9ejqeBoqB8p5abdKuCgK9eY42qeqeHhaB0l5OIs2OCq4ahjY2zaoSvdH2XiLhhg61Zo81tkHV72nt/mXB+h5J2fmV7iHZ2a3yIb36FkZJ+bYKPYHJscGdgX3lkXHFoamNmYFJUUlddS09DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGkqqits6ulsqysq6SrprCqoKebmaWXnKKvn6CfqKejpaGesKybnZWnrq2xqqisoJSSm5+lk4+fpZidp6OerqSrsKjAxrOoqbGulpKdm6GXn6mqn5Wgn5ydra+nq6mcp6ikoquTrLOXpaKqqZ2jpqWhsKCSmaaZoJqUlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnneqgn2tf5xyrX6rh4afdpiSenyXfqqIooyRjJ1+q3uJlI+fgHutVpzEeo9vksF9gZVtdW+MbWV2ZYZvYXducm+Ki5KQg22SkGZwdXVwYGdtZV9vaWluZ2NXU1xhWVJTQzhJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytKCdo46jo6Ksr7auqLGmqKqnraurp6KjnZmilaClqp+hpaCoqKKfna+smJqWqKevrKimqZ6XlJqjopGUoa2bnaajr6yjrLSquc2yraatrJaVnJ2imJ6urJ2WoJmdn6myqaqqm6yrpKOsm6+xoqirrqWYpaqpqbGikpajpJqUkoWkaqR1iXqpdHqycIKmipmMcYigmoekYGBSq4R/roObdq6BpoaGn3qZloZ7ZoCjiaSZhoKkfal/gpWHrl59qVWdopKBeqKfgHvDr8WLcq+zs7lxYqmvwnRojYyYj4FtmpRwbnl4eG9sZmVlcXBmfGliXVdgaVhYVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVv6GZq6ehr6KesLSwr6mtoqemqqurqaSmoJuknp2mp6ajnKuaoqyhpJ+vop2bk6qktbCvoKmbnZaUpqOQmqKooKClnLCmpKixrbfIsrWqq6mVkZ2copifpbOdmqCUnJ+nrKykrpqtqqOiqqKzrqKqs7Ghmqmorq+2opKWoqeYm5F8qmyehId1q3l8sG+CpIuJn5aWn5SB0ri0uMmAgbJfX5Spg6OIh6B6mJWaeKrJdJmklaiqkZOajICbipnGxnhmoYKlc4GfjoJ9r11wtGKwdUujhm2nR4KTZI+QnpJ8cZeTgHF7dX57bltmanJwZYFqX2FYZG1cXllJTkxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqbOtrKWinLK5rKqhppqopaqrqqegpqWYqqOfr6udpqCsmp6ppZ2ntZ+il5OpqrayrJylnKCVkKWskZmcp6OgqaauoaSnqbC1wrKzqq2ok4mXnaSaoaOuppihlZicpaarm7Cdrqimn6ykt6ygsbmvnZuup7Kzs6SUl6eimZ+Ogp1OeJqBf596g6N9g6SEhqaenJ6ThLh7fHm5gn7MxsK2eJuhkYuffpqWlop2npiKpJikqX+whZ2Fn4SsfZqUYqVspHCPhZCBfZaCcqxgo3NxgJpgvH1SVXWPkqSXe36Tkot1e3OFf3FcbW54cmqBb1tkX2huYmRdS0xRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq+gm6Gss7Oln6CVpa6trqqnnaammqOnobOuoqmmsqCZqaSUo7aiopWXoqm1uaObop2ik5ChsZmenKeloaKvrp2kqKK2ssSxramtqZGHkJynnKKknKWXnpiZmqakqZqvoq6lppivpbytoba3rZ2dtbK4sbOml52voKOdhY/RtcO3eYeOhZGTkIGmeJShd4ygkYSlgYpxqoaEtG5yapmjm5WKnnyYmYaHj3OvgqWboo6mi5OdipWQmm1wslylc5N6nGyZf3uZfG2pYaNxcX+fYnOyuGh4kJSmmH2MjZSNeH15j4JtaXhpeXJugHVdZWRubWZnYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWTc42Krb+/u7q0npanpK21oaKZlaOop66rrJmmop+moKC1p6Kpp7CjlKyjjqSuo52QmpqqtLSknaScqJGUl66goJ2npJ2nnLWaoaqktqzDsKmrqaGMhI6coaCmopWampyYm5mmpKaYrKiuo6Wbraa+rJS9sKyforCzuau0ppqosaOnl3qokH18sHeKgaSliJxtsm+gh618oY6Dp5WYgKyIha6Fn5SpoKGXhp+AmZWAe5J+q4CdmpaLqnidn5CJk5KAea9do4F9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWSppmClY6YjXt7hJh/a21/Y350boB6YGdlcW5oZ2dDWmFbPktUM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JODA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVldXWFZVVVFIRklKIygovZKag6nGwrbBs5+arKCuuKWjjpuko5+wr6qfpJ+drZmeuaCjq6CvqZquoZCrqaSWiZqQrrGspp+mmqyXmI+soaGdpaGapZ2tmKCoprapwK+lqaSfi4CNm5qfpp6SlJqalJqapaSkmqmsrKSln6qovqSWw6yqoqGrsrmqrqegs66oqZh2r36Qi5yFh3y6roqYZbCMZZWtfaGPg6aVmoGsioSwhaaZpKGhkYWgW2xqgbNgf617e4KBsWxnb5mYjIiwW320W6SDa8iiZJ+Ae7xYdrRasn1SroB6rFiAoW6YkKibi5eRmJh8eY+dfmR0fmKEeHSAfGFqZ3FtZmVlT1VkXEJVXz5KKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFdaXmBgYGFiXl9cW1hVUE5KRkM1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpcXFhXV0dCO9Kfs7K3vbq0wrOjm6ympbaooIuaoJ+cs7Opn6OgnrWYoLSoqqydr62erJuVr6iijoibjq+sqKeippmukpmPqJqhnaSfmaSjpZmfo6qyqb2vpaienY59i5qVoKCZj5Gam5Kal6ifoZqorqimpqOlqbueoMampKihq7S1rK6mnrutrKyVgKmSo6+Om4CHpJeYkIGAuMO6g46ck4SnlpyCrIqCr4imm5ulqpF+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+g2ujgW+rhGycf3qysMeDaquwvax4d6K+vHSBlo6nnJCbkZideoKRm3pjfXtkjmd5gntgbGVramJQYVpTalxAVWFCTio9OjQvHh8kHiUyIB0kKDA0OTY2Nzg6PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbO0sb+5sb2yop2upqWypp2MmKW/qriyqKG/pqeynJ6xnLmonq2vpqaUlLCsl4yDm5GupaKsoaOcqp+Yi6OSpp6nnJqhqKKZnqGsraq5rqijm5eSe4eZkaabk46RmJiPmJOomqCYqamhqqeho6q7nqjEoqCuo6qztKqwqaC6p66umnN1qqS3hmWJoHBnrY+Kj21vd6SQmZ+Bda6YlHCPi3GVqKObl66kcm1tbWWKeG9ugplxgXpqcWlniZaVmHFpaYSHZ3CGZF2IYmpvWVxnfnemX2FxjpFuZWSAjZOPopiZmZGYn32HkJV2Zod4aY5reX95ZGxjZmxiS2RYSmxaOlFlRVInSzorIxwgGyIsKRgbGC0yLjU6NDU3OTw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6m5ubKzqqmhrp6jsqmYkr6yxMm+tqqewKyso6GorKC6o6SurK2mjZeuqZCMhZWWrZ6mq6Geo6OfkYukkqeZqJmWo6qglpympqevuqysmpuTknuEl42lmI2RkZiUjZeVqJWfmKmjm7GmnqKruZ+vwKeksqWssLGqraunt6Ott5aKoKiltp2JlqKYh6makJSdkqmzmZujq6CxlqKgnZ+inKCloZWrp42TkoyHk5yclZCak5iRjpWFgaSal5WNi5OSio+GhH1niX50gnZ0h4txp2x6lJGTkoGBjpCQj52VoZaamKKDiJWNcmmQd3GLeHd8empsZGNvZFVgWEBqW0hjYU9aK0Y9KychNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVVlleYGFjXF5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbaurqKwo62foLWxkI6sx73Fu7mroqaem6afsaijtqedqbSnqJGYrKKLh4mPm6eWrKWgmaeenpKVo5eomqiZlKaho5Cap5mhtbuoq5makI17gZSLoJSKlZGVkJCTl6WQn5qqoJy2o56nq7enrsGuo7amr6+wrKmps7igrryZkaWkpraikp2mn42pn42Sn6Osr5uho7Cor5ejoJyjqZ6enZyWq52SmaGblJCWqpmNmZmWkJaekYmgnZWUhZKMkI2UioB9ZouFdYZ1eYiDc5xqhZCUk5CJfYyWkpKXlKKTnpiihImZh3tylnN6i39yfH9qb2RecGphW19ZbmNQYGRQWjpHR0U+Mj09OC8rJispJh0mNDA2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVVBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX19hYWJhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaatoKe1qpCQnaW0vK+traKjmnqdorGkpbGpl5u4pqOUmaqcjoaKiZyjj66fopWnn6GSl5ibrouqlo+omaiMmKmPn7m2paaYm42IeYKTi5qTipWSlJCNkpeijZ2eqJ6fuKOAhK+1oq+vdaS9o7Kgd3mgqrK6lHWspJ6JgKp/ZFxidqCOpJ6El31uk7Odo6etqqNlnZ+Sc3mZlnCAmKiXbH+ip4plnKWckZeYloySnJGGnZqQlYOSh4+OkomEd2qOhnaGcHuGgYBhaYeKlJKLWnWVkWhoj49ze6aamWV5mYeDeJhqhIuDb3mAa3FlX3ZwbGtoXGdlYmJwU1w+Tk5OU0c+QFREOTEvHh8mNDozMTY2Nzg8Oz5AQUFGSEJHRklLTVRUVVldYGhmZ1dRSjxERzw4VVJbYGFiYF5gX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6GvsayrqaWprqOnraSSlqu2sLKnm6umrJd0jJ2vn6iqp5OXuZ+gj5yknZF/iYibno2rmqKVp6GdjpaRnoR1ro+IppqokZekiZy6tKigmZiLiXV3k42Vk4qUkZCUjJCToI6boKaZnLKWgIybtZ2zjJKPvKegfqeieqKutoGOjqaeg4uGkLGpr4yKlqOaeYCLrIacnaKnqaeHlYWYd6WbeoebgZengoJ7nLF6ioagl5mUmJaCkZeWhJqZY3mHkISOj5GKg21wjod5gHCAgYV/hnSGhJWReJZoknSgmnR9mYSinoeYf5OLg4SZa46OhWx4e3FxZ2R4b2psalxma2pldFxfSVRMUUBFNS5aVFU3KSEwOT0+NjQzNTY4Ozo9Pj5AREk/SUVKS0dTWFtZW2FhaWZZUUg5RUs8PmFWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mra6rqKygqLGmp6mlmZSuyL6xopenqbWej4SdrJynoqCNkL6emo2fmqCQfIaOmZiIrJyhlp+gkY2TiYaAkaiNh6Kdo5OXnoafurKnnpuSjoVwdZCJlJCKlI+Pm4uQkp+Sl6Cklp6rh5+0ibSarYrKh6quiLeFjK+CsK6DqY2lmI2dfaiPcnt3nI+nlmiVpHm0jJ+epqiSmMKBf6uImKFynoCapX2XhZWxgKF9oZOgkJiXgY6Tm4qYkYt8hZOGjZSSiYNtcpCFf3lxhoGEfIR1hIGWgI/FZn+ph4+ja56Do5uEmoGOjoaKmXGOk4Vod3R8d2hodXFoaGteZHBtZ21YZ0ddUk0yRTQ2TmFjNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmptXFFFPUxNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUl6KfsKepqKaroKS4saqrp5qUoKOkq6SXpaq3o6+AoaecpZ6diZS9mZONoZKej3mElpaRiKuZm5uZoYWPjHebnI+fkIiepJuVmZiHo7mupZqcjIx+Ym2Pi5OQjZCMjZiMkZKfj5SgoZmhp36hp4etnaCWrY+enJ2RhYCgjauuhqONqZmMmn+jdYCZlGuCrHVNq3iHjZyRm6ingKmrfYOhe3qnaZ5/kmtnl4aXtomefm5gZFmDl3+Me2Roi3KZfXmVbF17lm1fU3CDXF9reYNgWWWCfYOAl3CnqmuDo25ypXCfhaBpZqBtW26KfGZaYIN/YldQb3dmbXRya2pvXmtwbWxpWGlPXVhGOUE0R0ReazQsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl5jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5adoLigqqSmrJGhtbysrqKZmKCipayuoZ2utaKokqGgn6abmY2YtJmQi5+MlYt1gZSSjYqmlpWYnp5/koWGrKSHm5CKmKmYmZqSiKaxp6KWmoiJgGluiIiLjo6Ki42Si5CSooyUnqCcoaR/k4GPo6GUoHeclo+ng6Gnf4aprISleIp8hJp+onBzlIiWe56MeW2Hm4yZkJuomo+HnXuConN2pmaefnekX5h6fZJzom6Yt7S6dJOHgn+1qGSBxrh7cJW3i3GAmqRic6yrYH1pnbN+bnyGgo2Ci5hxf6NscqN0noSAo2CdmbOWcXyXn7N0c1uesoNqYm90dnFpb1hrbHJyZl1pXmJLRT1ENlFBWXEzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1OUUBFX15bWVhgYHxkSEM4TFdVVmNhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLe1rq2gm6Kdo6Omrpybsa2sk5ihmaGkmZqUnqubi4iSeIuFcYCWjYmPoZCSlJ2XfZCJjqigh5iOipGjk5ybjYupqKWekJeHhX5re4d+fY+Ng4uQkImPlKCDl56gnaCei4l3nJiijJ9yoYuHqIibpY+Wp6p+rYx+eqCZeqOTeIF0loiNnH2Vn4abjpmbpoaiZKF8iJaQm41snmiajW6amXuAi6d9cmh0q4Oeg3SqaJWaXZuFdoSdaKpqgLhmXKhwgZxglYxep3Z1h4l+nmiadYaTkpeOf59umpBtp5pdqH54u2t+qluOhF2zZ1xucnp4a2lccWp4eWNgZlhiQVFFTzdWQ1JvNUtaWl9PWkRAMTUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXVllZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniGOUm6u6srCsnaacnKmfnq6bnrCorJ2XpJqhn5iWlqCjmYaJjWqIgHJ7l4iLlpaEkZSYj3qKhJajnYqUj4aLnpKdnYmQqaOgmoySioCAaYCGeH+XjHuIjo6Ij5aaf5Sin6Chk5hyaJ+Kn4+McJKMgamHmJ6ip5+nfK+to6K4l3ejs6KkgIiUeZ17qpp/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmn90qlpdb3uWi3ieYkx+enqFY3mXQkyeWaJqcnyObYCIhJl1m3iGibGzf3+bk6d2gp1uc32Ub5lza6RdlXZIZWRhc3F+fm5mYGxpdntkZWJSXlddVVdAWkZRaERTV1xiWF5JRD1COD9COklGOExFWEFXUVtWREZiXFpgS2BtfnJFQzxVX2JaZmpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZsXmVnZmtkZmxpaGtpk5yBsK2ZhFReoKazubOzqZqijJyrnJyplKKrpKGoj5+enZqZlZihnZaIh4l3hoFveZWFkJuLfJGTlohyf4iSoZtzkZCBiZmVoJuFjqmcmpWLi4p8g2yEhXGBoYx4hY2IiJOYlXyTo6Ceo4ithn21hI6enHullnqpgZWcj4qgnHynaHdtfpl0oXNxfJ6GmXCTg659pIOmnpmAo29eqGd1omNvpWGc05B8e5l4cnNjooaQfqNzpI92a5CzjGCCmIlzqrKovH93g21+vqaptF6cbn1xl25/cqJyXaRnc6ZhaKZtm9SZfYWbcHp6l2ubfHiXc26ppGdhZXlwgIRrZ2ZkbnV3Z2BjVFtmUVFiSVdKVGBXU1tlalxlUUZDS01KS0JLRThPQFFOWFJZT1NRYWZlalJjd3l3SUZFY11lWmhpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7CrVFxLfqmvsbSws6ObmYWZqaCgpI6lqKCYqYqZmJiTmZOSoJiOh4Z7cH2EaH2Pg5SagXeQjo+Jb3+Gj5KSbJeTfImRkqSWg46qmpOSi4WJeoN2h4BugZ+GeICShoeZopd7lKOkmp+Js6Gitot6rKekrqVwqICakIWAm5F7pIChmYaYcp6Eo66vipeMf4ykjZWDraGUdrS1tcmhc5SKgZ9gnZepbXmVhqCbdaGHd6B+kpeLgW9MZqOScJuHcqR7enRhg4FrfqBrcWRfnHF9dJdpemmztbTGpnOYfnqda5ybq3WEm211eJhpmnp1mHJQRX20Xmp2a3mHZmpoYnR1cG5WXlRZaVBTaElWTVlTVl1oa25WZ1dNS0FJTUtISk9BUUtQZWNpbWV1c3N/eXxudYl7e1RQTmxeaFtraVJqaGlsZ2xmY2VfXF1cXmliZGlre19dZGhjamZvbWVpbGWhnIivpoRmP5Shs6uvr7aiopCAmKqioqWMpaednaaCmpeWjZeQj5yTjoiDeWp5hmWDjH+XoHl1joiMgWmEhZKCjIWdjXqMi5Wmk4OXqZiMkYuBiXqAfYt5cJChhnmBlYeJlqCVf5Slp5yWloRmbnicbKJkfHGld5uYcGemgJaLe6R6n5aDl3KedoGKlJaPuW6QiqJifZmhlYhtcmmranWgbW6mX5ppi5BoloealXWigH2aYIyGjXVviGJooGWefmmadW9jZoiCbXKiWl9bYqFtXYmMb3t+c3JkpW13omRnp2iZc4yZb6JvU4mQb6BfZahUi15UmG5tc2tygm1waWt5c2tvUllXV2daVG1JWU9dSFhpaXNqWWtWUVJFVlxMWFNhVWlrX3d0en1wfXxyg3t/c3aNgIR2XlFyYmdicGdQamhoa2xuaGRnX11eXWBrYmppdnVdXGNpY2pqc2xma21jnKSYpnpldG2Lp66kqbCxpp+LgJirnZ+mjKKhm6KigJaYk42aj4uYkI6Ke4ZxgIhoi4t8mJtzdIl9kHtkgoeViomWmYJ8iIeWqJGBoqyRhpCKgop+gICOc2mPpYR9hpSNiJigjoiTqqadiaZ4lZt+pYiWjLKYnpCCr5efpXeUh3mpdKSOhJpupKKMkoSMg7tufaWvg4aGhpOVnJ98pXpxqJWglmaefm+rY5aKlZJ4qGypooGJdoiDd6qRpodqkbBrdrOMqWuKhm1tn56SlWB+q4uqdn5/jKWedp99hKSVnaBqm4h3rGefrYy2dHe+jaSTWYOmjathdXJ0cHx1cWNqfm5obFNXW1ZhYl1rTV1SXUlebm52YFtxWVtgWmd0ZW5vcWJxdGB3en55cnmDc4R/gXt7jIGCgHZieGRjbXNkUmtnaG9scmpmaWFfXlxia2JtbHpvXFxiaWJsandtZ2xuYpWlqp2BgJ6klqmqnainrqSZiYOYq5qepImbpZ2pnYWMmo6GnJGFko2MjXSGeoiEb42EfpiTdHSGcpKDbX+LkoeGk499e4KFmKaOf6WmjoGOiYWVdoKHkm9si6mAg4uUjomcn4mMlKqjoI+AdZSWiH6BeZSuo3+Bm3GPhXiPioN+e3KmjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3p9iWuMhVt5eHJ6cGhufpKJcX91gY+Uk3GGhIJljH9egX+Ld3VzlHVveW5uh22EhV52aHiOZYCAhY2pm310fJZqiYhwgXZ9hnZtbWeMc3l7mHiFW2tYeY9pbndycXB4eHBdbIZuaWdWW2BXXGVrY1ViVV9RX3B4eGxrdmVqa2t2fXFydHNhb3VidHuBeHV5g3WAgX+BeYuFg317bX9sZHhuXlduZ2h1a3hqaWplXGBaY2lmbHF1blpbYmtkbGx5bmhsb2GNlLiopouhopqmpJmlnKujoYSEmKySnqGJmqaaqZiDgZuKfpaTh46KiY1yg3yPfX6PhXuXjnNyg3CVhXt9kouGhpCFeH2AhpmkjnynoYuGkJCFloOGjph3coWphY6RnZCInp6IjJuon6Cqg4mNlJp+fomWraiPkqaPd2+ckIJ5kW99qIVwfZVxa3B9gZ+Mf5OOjGhtXYOLjJybno5zlYuIcXRrgXZ0gFhyboaRgX1+jGpdamR7hYSJgGBpeHqbe4KLgnWBhYJnd4qGa2FwcYF2XnKKgYiPppWFZYyPg253i4Rxho96cGZnZXuDepZbXGpnbnZbe3l3dW5zc4JmXG2Ka2tiWlpfWllscVxfYVpeXWZ0fnp0b3Rja2tqe31ze3h0ZG11aG18fnZ6fHt6eoCAfm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VubGdzeW9oam1gi4uqsKGQo6Ganp6Ynpmoo6J+g5mtjZ+ViJyikaWVf3uYhHySmYmIhoeKc32Bi3aFi4GElopxb4BymIaEfpOEg4aKgXqAg4uboJCCp6GHeI6YiZWLi5yXhYN6rIKRl5mUip6dh4ihq5+ioqOLiJObnKOZlqqhp6agkpuHlY17d42OhKd+fpKRkpOcsqablZ6QjbKTl4SljIyVm5+JkJuCiJGKa3yNd3hlgoaQi3yJnYSHi5CIiICEhJB3fHl0maGIhomeioSUfn2KgIB1b3OEg393hoaKj6aQg4WNh4ONkIx9iIyKkYN3bIKEfXqZanJoYXSKcH16d3dvdnSBXV5vhmhuX15aXV1TaHJVY1xcYWxodXx8c29wZGtqaX98bnmAcWpwcGxngXtygoB4f31/hHttgoyGfHp4fH16g3lOZHZqcm1wemVrZWNiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZIyHnbmel6KhmJWYmZSZpKGefICaq46ejYagnIueln15lIN7jpmJhoSEhm54gIBygYd+iZSEbWt+epeHhIOQf4CGhIZ9h4SOm52Sh6ufhHKLkIaTkYudkX2Ne6qEjZKYlo+cloeGm6afopqdhYORmpmYkJqmn6WdnZCWgJCJdnuHjoSle3yOkJGGmKqhnZOdj42qjpGAnYyJk5qego6XfoaOg294hXJ0YH+Dj4Z1i5iBg4+ChoV+hYOUbXl1dJKhiouFmoSEjHN/iXx8cnJ7h4N6eIqOg5Kmj4WDjoGDiomKd4aJiox9b2x+gXxuaGxtZ196f2h9e3Z0dnV7d1xfcH1udGBjW11eUWduVGRaXmJraXZ6fnFsbGRrameAgGxzgWxsdG95b4V5boeAdoKAfoV2cYKNiH57e3x/e4KKYGl8anVoaYJlamNgaVxjdWhvYnRtbFVjcXllcHp6c2VqbWyLiZ63mqGkn5KRlpiLmp+fnnt4nqeRnIqHpZSLmJl5eoyFfImRg4yCgoJue394c4GFfYuRfWtofYKYiYGIjnx9hoSHfY+BkJubkYmonIBwjIuMk4ehooqFjHyokYiQkpeTlpN4jKOgoJ2WmX+AkJqYkoyao6GjmZeRm36NhXiAg46GoH9+jIyPfJikoKGTmZCPpo2PgpqRiZOXm36Tkn6HjoF0dIJwdmB+gI2GcYqVfIiMcYx/goWGjmd3cXiLmJGPfpd9h4pygYZ7fHF4eoqEenmQjIKVpZOLhZB7hYaHhXaChImIe2ZyfH95e3FsamZffnNofHV2c3xzgGpeYHN2cHdkY1lfXlJraVRkWV9haGp2eYFxZmtkbGhlgIFrbX5ob3FrfXiGemuMgXOBgX6BdHaCjYZ+fHp/gX1/j2pyg25zaWKHaGxiX3FWdG9tbmB4aG1XanR2Y3V6e3Jiam95iY2espGkpZ2OkJiPhp2gm518dqWhjpiAjKKKiJqWeHuGh36DiX+IgoF/cX97dHaChX6KkXhnY32Gl4qCiox4fYCNg3mWgZWYlo2WoJt+cIyCkZSGppuHjYmDppWFk4uWl5OSd5GdoaGXk5Z5fo6Yl46Wmp2knZiSlJt5j4WCd4SWjZ1+gYmNjHKXo56hk5mOj6KMi4OWmIOSlZl/mIx8iI2AdnF9bnpkgHyKhXCGk3+QgmyHgoGAiYRldW97hpKXjHyTd4qIe4CFfHtxfneIhXmEj4mKl6KVgYOLd4iEg4J3fIKKhndgeXh9dH94Z2xlYX9pandzdHV9cXxiY2FzbnRybWFaYV5bbGVSY1hgYWlrdnmGcWNqY21laH2DbGh1aGxvaYB8gXltkIZxgISDf3R8g4yBgH56goN+fJBtdol0dG1limxqYmN1VoRpcW5geGdsYmp2cGZ5fHlxX3FshoWPnK6XpqiejY2Xh4afk5eZfXiqnIqZepedi4yYkHl7gIt9fIN8gIKBeHR5enR9gIR/iYuAZF59i5WHf4WHdH1+in99mISXlJeMpKKYf3OHe5SSiqePjI6KkqCRg5GQlJeRi4GPmJ+akpCQc3+NkpSJnZ2eppiYjZWWc42OimuFl4+ZeoeIkIlvl52ao5OVio2ejIaCkpx/kpKVh5mIfIqJgXlxeWt1bHx+i35thZKClHhwgoN9fop/ZHJpe4CWl4R+jXOPiIN4hn12d398hYB8goyEjJSkj3iEgnSJh32AdHaBiYRvYXt1enF9b2JvY2R7Ym5vdnN4d3N0YXVgb2x1bm9cXF9eXmteUF1YY2FobXR7iGtfamZqY2h3iG5mbGhqbGiBfHp3bpCIc4GEhH10gYaJeoN9eoGEfX2OcnqLeHhubIdqaF9pcmKHaHFvZXZnbmxheWlrfXt4cGF3bYuAmZmqoKOonoqKkYaKnouVmH53rpmNl32fk5GWlIh3fXuKfHuAdnh/gHB0dHtvhX2BgIp/fGFbfo+ShoCEhHN6gId6j5KIkpGck6WclYJ9gn2Oi5KkiY6KjZeajYWRmJOWj4qIjJKck4+LjG6Dj4+RiJ6ZoqGXlomWkG6ImYNmhZiOk3qIhJCKcJWalKKSkomLmYyCf5CefZKPkoyZjnuKhIdzcnVrcG51e4t0boaQjpJxdYB7gYGIfGRwbHh9mZN9hIh0kIqAc4d5bn99gIV7hYuIhIyVqIx6h3x+i4V4fnFwgYaEY2h5dHVwfGJfcGFrdF5want5eGxzcGV4XW5sc21zWFpfX2JrWlBXWGVjZ3FxfodmXWloZ2JncY1uZGlnZGlogHp3dW+OhXSBgoN7dYKIhXeFfHiDhXqAiXd/i3t6cniDamtfcGh0gGpyb21xZ29sZXxjboB6d3Fsd3eKfqKXoaigppuHjIqBkJ2Hk511gaqVk46HoY2Vk5CAdHt2hXh5f3Jze4VrcnB6bYp2gIGHbnFbWH6RjYiAgIB2dYCAf6CGkYuSnZihlZh4ioCBjYmcnoqPhpKXloWJlZmPlouLjY2MnYqNj4NtiYuQkIqdlqGcmJSFmIdqhKOCZoWdipB+i4OLgXeTmJGekZCJiZWNf36PmHyRjY+OmpF8ioCCbnVwbG1vcHuFaXODjpiKcXeAdYKIgnhmcm51gZmOe4iEepOReXaHc2+Ie4WLeoqFgoiOm6OHe4N1gYt/eHhvbIGEgl5ydHJwcHhaXnBgcGpeb2p9enBtbWpsdmBwb2pxbVpYYWFiblhRU1pmZ2N1b4SCYl1rbWRiZmuSbmBmZl9na4F1cXNwi4B1f4OAeHWAi4B4hX93h4Z3g4V8h4x/e3aKf2pxY3xjhnxucWx0amhvbHZ4X3F/eXx0dXSAgn6klZqtnqaWhY2Ef5eUg5CgdYuglJOGi5uMlY6LenJ4dIJwcoVzcXWIa29tdW2IdoN+gG1uVVGBq5WHgniAd3KCeoKggpKCk5OYnJOaeJJ7g42TpJqTjomVmJKEhpeZjJSLiY+PiJ6Ej4p8couFiY6InJqfmpaUf5N+aIWch2eFoIeShJGCiXGDkZePm46PjIyPjXh7kpB6jouMkZaMfIh8gGt2am5rbGx7fmF6fo6Wgnd6gHiDjHx5Z3Nsc4eVin6IhnuTj3F5g292jHqJi3qIfYGLkJ6dhHx7d4KLfXdxamyCg3pgeHBubHJ0Vl5vYnJgX2xueXBob2Zmc3RocGthd2VdVmZgYHJTUU5cZmVeeXCIfF9caHJiYmVmkmpfaGRbZ3B+cGtxdIp9dnyFgHR1fox5e4aBeIiDc4aFfo2Ng3t5lXhmcmqDYIh9b29remBqbnR/dV90fXiGeHRzhXx4oI+ZsZyljoKKf4Oah4CMnn+LmpOOhYiXjo6PhHZ0dnOAcG+Fc3Bxg29qaXZug259fW11c1JNgt/IktaTfHB1g3aDn4OTd5SRmZyQmXuUc4WQn6GTk5CKkpuThn6WloiNjYiRjIicfo6Ad3qMfoiMipycnZuVk3qNdWeIkYZsiKKEkYiXgoVjjJGZjpWKl4uNiotxepSIe46IipORiXmFfH5se2Vyb2treXlcgHmQjoB7fX5/ho56emhyanOKj4mBhYR8lIprfX5uf4t+i4d8hHmBj5WamYp8dniDkHhzbWdxgIRtanRvaGp0blNeb2RwWV9rcXdma2piZnhyb3BjX3dgYFZrX152UE5LYWdjXXpwiXRcXGV2YGFlZY5jYWZiWGlzc21qcXaMfXR5hoJ1dn6Lc4CGf3qJfnKJh4GRi4h8fph2ZXNufWWIfm9wa4BabG55eXNhdnp7jXZyd4p3eZ6Lm6+boJCChXeIlX59ip2HhaCRj4WMmISSjoeBdHdweXFuhG9tbn5yZGV4cH1ten1qaGtjpJrB3K7voXNsdoR2hKKFkm+WkZWglZyBknKFi6OXiY6VipCdloOAlZCFiY+AkYqJln6HenV/iXiGhI2cm5iZjo92inZuhYiKfYqjhJGJnISFXouTl4qOiY6KioSJbXuWgX2IhYmRj4Z2hX19a31keHVpbnhzWIh6koeFeX6AgIWMfnhlcml/iY6JgoJ/i5aFa4F1bYeQgY+EfoJ6f5CVk5iPdXN3iI11c3FndXqDYnRtcGJpdmdSYXFnbFVfbnR5YXJkX2h9cHJuWmNyYWJXbllceE5NTGRnYl53c4ltXFxkeV5gZGWFYGNjXllqcmtua3J3jH50d4SBeHd7iXGDhH1+iHt0i4mHloaMfn6Xc2h1cXlti3pudHCAV3F6dnlxZXd5hoxodoCJcn+ch5mnnKOShX1wjJR4eYudhIWhjY58lo1/moiEe3J3cHNqb4FraW18dV5heHd7cXV7Z2BkfOvatcnD3IhzbHSBdoqaiY5qmJCPnZaTgYlxhYmgjYSLlYqMmJN8jZOIg4mPe5CLhY+Bf3Z4g4Ryh4KTm5eUl4aMdYd/cISBiYaYoYKTjJ6CiWGDlI+GiYaJjYeBh2p9lIB9g4SJjo2CcYZ+f3F3aHZyaXN3bFqMfJKDhX1/g4CEioJ1YXNriIGPioF+fpGQfW2Ba3iFjoWRg3yBfH+RkpCWiG5xeoyGdWxxbHJ5gWB0aW5da3ZgUmVxaWZTYHB2dGBvYF1ognFzaVdnaGJpWG1WW3VMS0xmZ19icnOFaVtcZXleXmRne2BkX11Za25mb2lzeIp+c3OBfnp2eohzhYN8gId2d4qGjpmBjIJ7k3Vsd3V5eJN0bnh7fFh6hnGAb2d4d5KCY3aGhXGKloWZoZqiiodzb5OLcneOnH2KmomJfJ9/g5l/gXhxc25vZHJ+aGZsd3hbX3l7e3FxgGphZ2F/1baOkKZ4bnF3fHGSkY2HapmOiZySjIZ7aYeLmYaBkpGGh5iNfI2NgYGJjXuPjX2IhHp0eoJ6cIaAlpqOk5SBiHWDhXWDf4qSnJ6GlY+ffohhf5OHhIiEiY2AgINnfZGAfn+CjI6Qfm2CfIJ0a213dHN2dWtjjYGPf4V+fIR/hIh+b19ycIR7joyBfH6QiHlwg2Z5goqGi4J7hH1/k46PkoNub3mMfnVtb2tse35jaGtqWW52WlNpcmliUWJyd2xiZV5aaoNtc2JbZ19kbF9uVFtwTkhPZ2VcZ25xgGxbW2NzYFxjbHdkZV1dWmtsYm1qdHeGf3Fwf3x9dHiGeIWCfX+HdXmJgZKWfIiGdomBcHd5e4STb218gXdeg390gW1penSUc2dzh3xykpGDmp+boIaIdnaVfm12lJd+iJGEio6afIyadn12cW9samF1fGZiaXV6Wl93fHptcX9lZGhnV52PXnFzlrzEhHZxlImQfnOYjIadk4yIdGuIj5WAe5SLgYSbjHyKhn18iYx/lIh1iYV1dn2BcXWGgZ6VhpWPgoJyf4d0g3uJl5yXhpONnICIZX2Sgn+Fg4mJcoF9Z32Le3l/f4eLj31pgH2DdmZveHhzdnNsao2FioGKf3mCgISDf2pecXd6fYyJhXuAj39+coBoeIKGioWDeIN8gJeMj4x9bmx6iX13dG9paH13ZV1xY1hwc1NUbnJpYk5ndHhmYF1cWG6Ab3NZZWJdam1gcE9ZbFJEVGhhWmtubXtvWltebGNaY292ZGdcXWBramNsaXN2gYNxbn57f3R1g3qDgnyBhXZ+iYGWkXiDinSBiHJ5eX+OkG9vfIFxaYF5en5tbXx2lWtqeIR0a5SNhZ+YoJqFiG59jHZqeJiPf4KKgpWYinmPlm96c3BsamRgdHpoX2Vye1phcnx5ZnB6YWVljrGyd0piWqTZ0Jdye5GLkXh+lYuFmZGNhnBshpKRenmShoGEmYp8h394eImKhJaAb4qHcXR9eml5hYOlkYSTjYN/b36CdoJ4hZqYk4qTj5SFh296koN9g4OJg2+BeGiAhXhyf3+Diod8ZX1+g3VjcHKAaHhxb3WYjYWCint2eICEeYFqW3B8coCHhYh9hYh6iHKAbXCDho6Dg3KDeICYjI2Ed21ufoR/d3plaGp9cmBZd1pZcm1OWHJzZmBKbXZ0YV1bW1l0fXJvV2ddZmpwX29OV2lSP1lnX1twamd5cVxaWWtlWWNweV9oXV5lbGhmbGlxd3+Hb21/fYB1cIF6f4F/gn92gYWJl4pxgo1xe4Z8enqElIx1anp/a29+dH99b3J8e5Rwb4B/eGaSioKhmJySgoVnh4RwaHqXiX5/hYKZioF8jYxpeHJrbGZfYW95bV9ib3lcZGyDemFxdl9lZdXrvosyOj6LjoByeYWIjo12hJeNf5OOjX9ubIWNjHV9j3+FgZWIfIN4bnaHhIKWd26IhGx1e3RmeYKDp4yDj4yDfW5/dHaCeYWbj4uPkZKMi4Z+e5KHeICEjYNsgHJpf354bXx7gYqDeGF5hIFxZHFofm10cXSBm4uAf4V+c3V9gHOAb1trfXR4iYKKe4Z/fIh4eXBriIKPg4lygXh/loqKfnRtanaAgHV1XGlpeHFZV31TWnFlTFtycmVbSnB3b11bWllddH50aFliW2dlbmJpTVdmUT1eZl1ddmZfdHBbWVVvZFpkcHlaaF5gZ21naWxpcHh9jmxqgoR/eW6Ae32Af4J6dYKBjJOFcICLbnd+gHt7iJOJf2h7fmt0e3KGe3N3fX+MeniEfnxrjIyDm52WjIGAbI1+a2l/j417fn+DlIJ/fYqIa3VxZ2hjW2Jnc29fYWxzYWhwiXphc3ReY2SboJBuXDVZr7V1aoCJfZKGdoaXhnSPjIp3cGyFg4d0eYl4iXyTiHp+cmd2iH59l29whn1odnltZXmIhKWHgYeNin5tfXZ/gHyLmIaBk5CXiIuEiXyPiHF7fYV8aX5taoB7emp6doKHgHJgd4F+cWRyZ3WCbXV7hZWRgXyCf293eXx0fm1XbX52c4uBhneHdYGJeXhybYiAj4CEcn59fZKIiHpubWltgoF1bl1oZnRyUlt7TlxxXE9ccm9kVktzeGpXWVlaYXGAdGBdXWBmZGhoZk5aaE5BYWRbYHZhXHVtWFhTdGFaZG5yV2peYmhrZ21saXB3fJJsaYSKfX1wfn57gX+CeneAgImLhHJ7h29xd4N/e4qNj4NqfntueHl2ind9eICCh3+Df356bYWMiJijjYSDe3aMeWtthImSeX17gpGAgH2Kg3BxcGNmXllnX3BwYGBncGZqb4p1YXRvW2FkaXZ7f76cpqPIuHKFg3OUfXiHlIN0kIyIcnJwhHuDc3WGdIh3lIh5eXFjd4Z5gJJocoR1Znd2Y2p8g4iegoB/jo59cX5zhHh/kY+Cd5WNlI+Hgoh6iYlreHl+dWh6aWt/eXNpenaAg31oYHeHfmpqc2h7gGl2gYyQlH56fn5xe3Z7dH1hVXV8cnKJg4J8gnCGiXd4cG+Cgot+fXh9fHWNhYN2aHFobIiCcnBdaGN0bktldkxeb1VUWXNtYlFPdHhhUldYXGFwgnNbYFxoZWRjamRQW3FJRGRhXGRxXlx3aFVXVndeXGVuaFZsXmFqZ2Vvb2hwd3uTbmmIi3l+cnt+eYKBgnx2fYOIhoNwdoNybXeCg36Ji5R/cIB8eHl6gYt0g3h/gYGChHmAdm9+iYubnoh9hnp3h3xodIaNkXp/f3yJhoR2j4Bnb21fZFxYZVltc2FgYXFsbGiJbmBzaVleZG2Ad6naqseGh7JyinhwjXV7h4+AepOKgHV0dX53gG9xfm2FdJSGeHRsYHqBeYiOZXGDb2d1blttfYGQk4CBeZKSfXd6bYZ1f5CLg3OVipCOh4WFe3+FbXV2f25od2VtfHZtanZ2f398YWJ4hnpodXVjfnpndIaOjJV7dIB1cYB6fGx/WVVyfW90g4Z+f3hriIZzeGp0f4ODfXp8eHtyioB8c2dzZW2LhG10W2pfdmVIbm9MW2JXV1Z4bWJQU3R2WFBVWF5gcYRvXGBjbWRjXm5iVF1yR0NmX11maF5ae2JSVlx1W1tna2FWa19hbmZmbHFocHZ4jnRrjo11f3Z4fXeBg4F7dH2DiIiDb3F/dHF1foaCiY2Ke3d/eIR8fYWHeId8fYF+hIB7fnN2eYyOn4yJeol3dYN5Xn6Gmo15h4N0hoaEd4l7Ym5sW2JbW2FWanRjYFtob3Bnh3JhcWZXXWNrf3zKzoe5omttbottcoVyfYWKf3uShXp5dHl1dHpqbXVjhHaSgndwZ158gXmLiWVxgWpqcWNYbHuGnImDgnOXlHd+e22HcICJioZwlo6QiIWLg3p5fnFxb31naHJibXhyamxxd318el1leYB3aXV4ZoJ2Z3SHjI2UfHKHaW5+gHltfF1XcH1tc3+Ke4Fubol/cHZndn6AfoF1e3F6dIZ7eXFlcmFujIJsc1hrX3hcSW9sTVdWXlRVe2thT1R1clFRVFZeYnSFaFxga2pmYlluYVhicEdBaF1gZl5dVnteT1ZkcFpbamhdV2dgX3JmamhyZ3Bzd4Z4bpWKdH96d355g4eAdXN/hoWOgnBwe3d3dXmHhYeMhnp8f3WLfn2GhISHf35+fYd/fHh1eXeRk59+jH2LbnWAeWSDiJeGdJKKb4WFgnqDdGNuallfW11dVGdzZWBZZHJyZ4FzYmtkV1tgaX94vq57n7duYnOHaHR8cnqDhnt9jYB4eHN2b3t2ZWpuYYd1joFzamJefnh5ioNmcX1oamtaVm94iqOBhX9xmZNxgHh0gW1/gZCGcpSHjIeDiIV9eXRyb2h5YWptYG12a2dra3p3endbZ318eGVzfW6EdGV1ho2GlX5wi2ZreoN0bHRiW257a3R8i3qBZnSGfW1wZ3R+d31+cXtrenuBeXdwZWxhbYl+bW5Wa2B3VktrbE9ST2hOWXxnYk5VdWtNUFRVXmd2g2ZdYXBoZ2BXaV1ca2hKRWpaYmRXWVV5Wk5XbmpZXWxlXFllY150ZmxkcmdycHSAeHCZhXZ/fnh/fIWHfXVzgoeAlYJuc3h6enNzhYeIiIR5gX12j398hImOg4GDe36Lg3t3fHd3mZ2XeoqDh2l2fnxshIWUgHKPgnGGgn6Cf29mbGdXXVtcW1NkcGVfWGNydWl2cGVlYldcXGiAcG9ygHOJZWV5f2p0dnNzg4V4gYR6d3R1bmp6cGJna2eGdI2EbmZeX3xve4l+aGx3ZmlkVVdycI2nfIR8dpaQc3xye3ltenqQhHaXe4eGgoaDfXVwcm1ndV1taF9sdWRnZml6b3tyWWeBdnVncIB4gnVhd4WLfJSAbotqbXqAcGVyZWBseWZydol7fWF1g3Zpa3F0enB5eHJ8Zn5+fnh2bmNlYW2GfG1rVmpicVRMaWtQTE5wR157ZmFNVXRkSk5TV2Fqd35lXWdzaWVfVmNXYnBdS0trWGNiVVRVc1dMWXZkWl9rYFxaY2Vfd2dtYnBpc29xfnV0mYF3f4B4f36FhHp9doKDfpiFbnJ0e3p0cYWFj4KAeot1dZGAfYGUjoCFhHx+jIZ6foB2e6OlinmIhoVsdXx7dYSCjHpvhXN6hX2Cg3VuamhlVl1bW1pTY25lW1hhdHtqaW1oX2JXX1ppgGlrb4BnbGFoenlrdHR0b4WBen99dnVuemhqeWpfZW5ogXeQhGdlWGJ3aX6Hem9pb2ZmXVVYb2iPp3aBenyRjnh1b35ucnR4jn53lHSFgn+FiHZqcnZnaG9cbWVebXNfZ2FqeGh7bVttg3NzaW+Afnl3YHaEhHiPhHOIcXB5f3FjcWhbbnZkcHOIe3hhcoBwZ2l4c3Frd3Z0dmODe353dXBjY2NtfH1ra1VpYmdUS2xoUEdSbEVhd2ZiTVRyXUpMVFlka3d6ZV9tcGlkXFZfVW5uV0pTaFhmXlhNVWxUS1x6X1tfa11dW2JlYHpobGFvb3Vub3d1epd9d3+BeYB/h4Z6eXqDfYGThHF0dH55dnSFiJB9gH2QbHOVgXuCn4V/h32AfoaCgIp7doSsnn96iIeEbHKCeXaBgIJ0boZvfIB0ioBqcG1kZFhfWlpaVWJqZ1taX3WCaV5ubFxhVlxca4FlcnR9aWpdbHd2Z3R3cm6Ge359eXZzbHpnaXhmXWRyZ3p3koFjY1Rlb2eChHd2ZmhpYFdWWWhkkKdufniAi456cHB8ZnhueYt6do5xg31+f4ZuZHZzZGhoXWxiXW9vW2debHRlemlddIBvcmtxe351dWF0hYp6h4eAf3dydX50YW9sWXByYnFxhHt1ZHKAbGBsem9qaHp3dHFlhHR5enVxZGFkbXN+amxUaV5eVUxzY1FHV2JHY3ZmYUtUcFhKS1dYZ2t2emRlbXBmY1pYXVh2ZlRKXGNYaFhZSVdlUUhieVpdYGxbXlxiZF6AaWpfb3R4bm9udoOXeXKBgH1/iIuGfnV2hniGjH1zdXWBeXp6goyOfX6EiWp0loF7ip19foV5gHp+fIaIc3GPrYx7e4aQfmZxiHp0fX12cm+GbHt+bY96YnBvYWVeZVZZWVdjZmtgXV1zhmlZcW5bXldaXGx7Y3F3dm1jW21zdGh1dnFthXl/gHl3bm90ZWh0ZVtndGZ2dpF6X11SZWZqgoF0fWFjaVxUWF5iY5ClaHl0g4aQeGxueWd3bHuEenSIcoB4e3h/aGV2bWBmYV9qYF10a1llXW9uYnpmW3h8a25ucHh5dHRkcoOSf4eCiHp2b3F8cmF3Y1pub2FwcYF8c2VxgGRebXZpY2Z4enNtboF0c3xzcWFeZW1vfWVpVGhZWlVOeWBSS1pZSGJ0ZGFJVG1TSUtaV2lscntjbGxzY2FZWlthdlxTS2NdWGlTV0hZYE5HanZYX2FtW1tfYmNdhWloYW54eWxvanaBkHhtgn6AgZKIhIF2dYlzi4ZzcXZ2gXd8fX6MkIB+k35weJaDfZmSeYCAeHl+f3OIg3NwmaF7e4CJlXlkdYh5c3l2a3Nwf2t5fHCRcl5wb2BnYmxUWllXaGNtZlxccolmU3JuW1lYWGBsdmRqdWpqX1ttdHFtdHR0a4Z8f4B8d29ubGRpcWNba3JkdHaPc1xXVGRgcX9+cYJcYWNdU1pgXGOTn2VycYSDkHRranlsbm96enpxgHd/cnl6emRmdWdeYlthaFxed2hXYl1waGF4YVt7dmppcm93dHN0aXCBlIOGfoR2cmpwe21ldldbam1icHKAenNlb35bYG9xYl5pb3xsa3N9cnB4a3BgW2VrbXthZ1RnVVhSUXdcU1BZUkhjc2JgR1ZrUUhPWlVra2t8ZW1vcWFbWlhZbHBXUk9mV1dpU1RGWlxPSHJ1WWBkbWNYYWBhXoxqY2RteXhrb2l1eYZ7a4N9gIWZfIKEeX2HbY+GcW93enx0goJ9i4+DgpZ0eIKUhYGfiXWBf4F0f4Jwh4J1b6KXdHuGi4d7ZneLb258cGZ4cXpsc3ZzjWtedG5hZ2VrUl1bVmhibGxbXHGMZE5vbl1WWFVnaXRoY3RlZV1abnVucHV1emyHfYB8iHeQc2Nla25hXG5tY3N4h2taVFZiY3d8fHCFXGNfY1RbYFlilpVjbnCDhIpzamd5bmVydXJ6a3l0dG56fnVfZnNjW15XYmRZYXVmVV9gbWNhcV1dfm9oaXNxc3B1dWtshJOBiHuFcXJmbntvcW5TWmVqZXFzgHZzYmx2VWJxa1tebmR8ZWt1fHJycmptX1ljaWp4XmZUZVVWUFVuWFJXVE9IZXJfYUZYak5IV1RWbWhkfGlrd2phV1xVW3RkU1JWaFFZZlRTSFpbUE54d1tgZmxpWmJgXl6PbmJma3l1bm5pdnZ/fm2DgH6Gl3t/h4GJfmuSiHJndIB7dYCDfomPf4uTcn2KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYt3eG57jWBkfHFnenN5bG1xdoNnZHxsY2ZnaFNfX1VnYGxvXF5ujmhNaW1gVVZTb2ZzbGV4ZGVdWXF1bXJ7eHNtiXuAd5x7emxhZWxtXmBuamVweX5nWlZYYGt3e3pvg15iXmdWWWBXY5yIYmtxgYZ8d2tqdmxbdnBreWl1cm1ue4ByWGpuXlldVmJkWGVxY1ReYmliYm1aYH5rZmtzdW5td3ZraIWLfoh6h21xZm97bHFsYlhfaGhvc4B0c15pbVNlcGRVYm5heWJvdXt1am9sal9YYGZodV1lVmJWU09ZZlNPXU9PSGVvXWNHWmlNSV9LWG1kX3hobn1kYFVeVF10W1RSX2ZOXWJUU0pcWlFadnZdX2ZtaFhiYVtejnFjZ2p3cXNtZ3ZzeYNzgYN7iI1+fIqHjnlukIp0bHOBc39/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo2NjY2NjY6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjI2Njo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERFQjEvMDAwMC5ccG5tbm5vamZnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTUzHhwcHB0dG1NqZ2dnZ2hjX19fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHiIeHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhoWDg4OEhISEiIqKioqJiomIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5CJkI6NkYiPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6Ojo6Ojo+Pj4+OjY2NjY2NjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjIiHh4aJhYiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCRjYaGhYWFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkI+Hi4SHhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x8fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjISKhoaIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiIuMi46Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5OUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5OSkpGTkoaTlJOVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKRjpGRkpOFfJSTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpJ8hJKRknh/k5ORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCQkoJtjZKJcX+RkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+QhGd9koB0fpCPj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo+GaHCPfHR7jo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjoFdaXZtZXuNjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLiouIZ2ZtXmlndIaFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXV2d3FgdG5hcHRqZWhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hnY2ZubV1sdXBlYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpdZmpvcXFzdGVZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTlFfY2Vub29uYk9RVFBQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OT0xNUF9oZ21ubGdhUk1OT09QT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0hGSU5YZm1obG1samhjXFdVUU9PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCUFpbXWRpb2lrbGppamlra2NSSEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj49TF5nbGtua29taWlqbGVUSUNERUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7PDtHS0ddbW1ueHFpamhWSEFFRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs+OzpPaXB6c2xjST1AQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5OjpBV3RxWD83PDw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT08Pjs7V186Ojw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO11uQD5ERT8/QTtGWDs9PTs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdIODs6PT1BO0lbOjw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUTw9PUlMRUZ1d003ODg6Oz4+UGA7Oz08Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/eXx3Vjw9Pz09PkJdakE7PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoKEg4KDgH1dPkBDQEA+Rm52TTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2EdUxBQ0VAPz9XfIFcP0NFSUpJSU1NS0VDRkdHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVxQkRFRENXdYaHh35YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIpsQUFWdIeJh4eHiINXSExNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3Z3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINVbISHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSUdISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpVgYOEhIKChYaGg4KGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc2ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJiouMi4qJiouMiVQ6ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Njc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIKDg4ODg4WJi4qJiYqKioqLiYqKgUc2NzY0Njg4NzQ1Nzg1Njc2OTk3NjY3NjU6OTo6Ojs4OTg5ODc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhISGiYqKiIeIiIiKioyKiYmMej45ODg7PD0+OTo6PDk6Ozk6Ozo5OTs6OT09PT47Ozw9Oj07OTs7PDs8PDk5PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXN2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUBCPkBCQEA+PT0+QD8+P0A/QD09P0I/QUE/QT89QEBAPj9BPT48Ozo7OTk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESERDRUNFRUFGRUZERUZEQEI/PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyLioqIVkhNTE1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0pZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE5QTkxOS0pMSklJSEpGREdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7PD06P0A+P0BDRklKUV+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1yTlJPTkxMTExKSEdFSUlESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dIR0NCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4tfUlJQTU5NS0pHRUJHSkdMSkZLTktLSkpNTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRUdJRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKREVGS09OT1dVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9DQkZWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hXVWthRVJRUVBJOztRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTlJQUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0ZGRT8/QUFFQUNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVtjYFZZYnJdXVZdWlZFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6eXp7enp8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKi3pucFhaXFtSU1JWVlRaWnSDWVV9kGBcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVRVVFdSUVdVYpaAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT0xLZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlRkVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXZ1c3N3enp7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1dW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM9Q0lHVkBITkxHXWlQSEZORkRFRklHSENESEdIS0dEQkFEQE5RTVJkcnR2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgmtNRz9AOjs+QEA/Pz5qUUthRUZISUVCP0dMTkdNUVVJQkU/Pjw9PD09Pz0/QUNDQD88PUI+Sk1HVW50dHVzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PzxCSD9cc3R1dnV2eHp8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZHSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FXUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxCPWVzc3Z3d3l6e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LVFRTUFFVT0xSU1RXWFRUWFFMV1laVlhYVlhZXVdXWGhza11WYXNrYWFfXmRhX15ZVFFOTk5MSUhKS0lJRkNRUFNbV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NTc1Nzg1OTlHbnJ0eHh5e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTE9SUk9NTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz49Ojc4NzY1OTk2NzY3NVdwcHR3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMSk9SUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9ydXh4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0lGTE1QTUcvRV9SPjM/PmpvYVJSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR2ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydXl7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTUxLSTw5ODc7P0A+PD1BQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFBSYVxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSEpLTEpGRkZEP0JDPjxCRz9CP0FkcHR3e3p6e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSEREPTk3Nzk/Qj47P0JAQD5BRElFQ0dHSUZJRUJCPz49Q0JBR0lETU9iZVFNTk5XS0xNS0xNTU1MS05OU2ROSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEpEP0E9OTk5Oj9CPzxAQkJBREVHS0ZDSElHR0hDQz9CPz9AQT5ERUNLTlJUTEpJTVRGSUlKTEpLTElKTE1PUFJQS0dDTEdDQkpKTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFIS0RHSEhHSktJSktER0I9Pj06Ojo7QUI/PUJCQ0NHRklMSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISUtNSEpMSElKS0pNXFJISERORkFES0pNTVBNS01KS0ZHR0pNTlFOTGJtaXZ2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLQ0ZFR0VGRkdFR0JDQD08PTk6OjpAQ0A+QkNERUlFSUpMRklJR0ZGREI7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1ISUxHRkdJSUxOS0lIRU5JQkZNTE5NT01OTk1LSUhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZWtxbHNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQ0NDRUBEQj5APzo7Oz06PT5DQT5BQ0VGSkZJSEtIR0dHRkVDQD1FRUI+QkRDQ0VHSElHTVBKRkZHS05PS0ZISkZFREVJSkhLSUZIUEtDSU1MUE1PTk9QTkpKSE1SVVRST1dkYGFtZ3Byb3J5emdlaGhkaWxmcWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMR0VFR0NCQUJEPUJBPkE9OTo9Pzo9PkBCPkBCREdKRkpGSUhGRkdFQ0JBQUZGQ0JDQkRFRUdHSEZMUUxJT0pKTExJR0hFR0ZEQ0lJSEtKR0tSTUJOT01QT09PTU5PS0tLUFVXVlVUWF9eXGlhbWluaHJzYmVmZWRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJAREQ8QUBAQzw4OT0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISUZDSUpJS01LT1NORFFSUFFSTlBNTlBNTE1TV1ZXWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW95TUhHSEhCQkJGRDw/QkJEPDc6Pj46PjpAQj4/P0JFRkRGRERIRkRFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFNPUU1OUU5NUFdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSUhHSUNBQ0hFPEBFQkU9ODo+Pj08PEFCPD8+QUJGQ0VCQ0hFQ0VFRkdHR0lGR0tIQ0lIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05PUlVWT0tVV1NRU1FSTE9RUE9UWVpZXFpZW15eXmBjXlxhY2tiYGRnaHKFaGdqZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZvdE1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkE8QD5BQUZCRURESUVGRUdFSEhGSEhJS0lFSkhIS0hGRkxJSEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1NSUFZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSEJGRUZIRklGRkRJSEdJSEpNSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QTE9QUlRYVk1OVFZUUlJRUExOVFNSV1teXl9dXWBfYGFhX2FjZWJjaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dLTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHR0dGSkdER0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNRV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSEVDSElJSElLR0RLSkdISklJS0hKSk5MTkxJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxrVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHRERKRUVKTExKTExHR01JR0lLSEtLSUtLTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEQEJCQD5DRkdCRkNGRUZFRENISEdERUtIR0xNTktNTUZKTkhKS0pJTEpKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0hFRUVCQkI+QEBGR0JHRElFRUVCRklISEVHTEpHTU1OTE1OR0xNSUxLSUpNSUpJSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SE1HSURFRUNBQjxCQUJGREhHTEhFQ0NIS0hIRkpMTEZOS0xTUkxHTExITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFAPUNEQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTU1JS0tLU2tiWmleX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERURGQUBBRUVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKSktJSElHS0tLTEdIS0tMTExLSUtNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xVWVpdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDQENIREZHQ0lLTEhGREdLTEhER0lQS0xPS0xXTElFRUhJSkhJS0hMSkhGR0dJR0hJRUZMSUpLTkxJUFxXXlBcW2BeTVhZU1xcYl5NWVpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNFTE1CRERCRUlFR0dGS0pLSEVFSkpLRkVISFBKTU1KTVNIR0VBSEZKSUtLSUxKSEZFSUZERkdFRUpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfYltgXltUWFdZXl1jYmNhY2ZoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNHSEVIR0hLSUlJREZLS0tGRklKTktOTEhMTkdIRj5HR0xJS0tKTEtJR0VJRENEREJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVlVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFSElGR0hIRkZKR0hGSEtJTERES0pNTUxLSEpKSEpGP0dGTkpLS01LS0tJR0dDREBEQUhJQj9JSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUltXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHRklGRkZJTEpORkRLSkxOSkxJS0pISUZCSEhRTUtLT01LS0lIR0VEP0VDSEhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBR0ZER01SSENRSkZISEhFRktKTVBFRklKS05MTElMTElJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VEV1VFXFReU1ZfWE5UVU5aWk1KS1RgYVtfWF5eYV1OWWJcYGBfYmNiXWFiV19fVFBOT09XUV1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQQ1ZeSUdHSERGTUpQUEVJSUtLTkxLS0xLSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0FFRkJNSEJLTFBPTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xRU1JVWllXWVhYZFdPU1RQUE5NT1RTW1hYWl1cYGFkZWNnY2tscHNyenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hMR0hKSEdNTFFRSUxLTEtOTVVOT0tLTEdHS1BTU05QT05PTk9IS0ZgRURfTERmY0VNW0leW3JtT01VbVlMQ1BgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalNXVlRbXFtgYGFhYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xIRUdGSEVFS09TSUpGYFNISk9KSU9NUlFLTUxMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUX9RSXxZWXFzWFBtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZWWH9qdHV1X192X1hhW1xmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1OQkRMTEZJS0VRVkxLT0lLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWlJUUXZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zcnt8b315b39yX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5LT0lRUlNZV1dRVFBQUFFLSGd4bGN4cm1bS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/b2hvWXZ2anV1cIFgcmd8aWx4fG9eX19iYVtdYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0JFUFBISktKS1BPT09NUFpgWlhLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRxbG1ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUElMTUpLUFFQUFBRV1xYVU1VWVVmWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ352VUxXa2h9bG1seF9bcHp7XmB6c2Nyb3hxaGV8aXJ7XVVMbGB2dWtpdXt7bX54a3xwXV5eYltfYmRkZ2VlZWJaY2Npa2tyc3J3Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ta21PSEpLSElJSFFQTE5PTEtSUlJPU1JXUlZUUFdbVlZUVFRhYFBOTUtUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhSTlBVVFhYWFtaVVJTV1tXWFdaT1NVV1dYUl1ZV11WVFBZUldXV1dYXltncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlYUE9MTVZUUE5VU05PTUxRUEtKUlFLUU1LS09SVVJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1BRVVVWU1pRT1NSV1ZUWVZUWVVUUlVUVFRXWFddWl5hXVxaWlxcYGNbXWJjZGZkZWRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNRUEtPV1NQTlVQTlFOS1NQTU9VU05STk1OUVRQVFFTVFVOS01PUVRUUlJRVldUWVpbWVNVUlRXV1dZW1RPVFVYVVVaVVdZVVJSWFZVV1tZWl9dVVheXF5dXF1hYV5bYmJjZ2ZkZGJYX2FiXmBoZWZkYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FaWVhXWFpaWFlWXGpkVlhZWldWU1RPSk5WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVk5XUlRVVU9OTVFTVVVUVFJUV1ZaXVxaVldRUldYVltbV1FUVlZWVllUWFhVUlJYVlVaXVldX15WXl1eYFxcYF9fX1piYmRoZ2RkYlliYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF5bWVZVV1FMTVZTTU5ST1FST0xQU1JVWlVTUFBMUFdWUVdTU1NYTU9QUlRYVlVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpXVlxeWl5fYFVhXGFhXmBiX11gXWNgY2doZGZgWmNgYV9fZWRfYGNbWlxbXFlaWFlXXFlcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRST1VUU1BXXF1cWF5cX1dcXmpxd3mAYlxbVlZYUU1PVlNOUVFQUlRSS1FUVFhaV1VPUk5TWFdUU1VSUlpPUFNTVltWVldUVlpYXV5bW15WU05UVVZcXFZSVFZWWFlTVFlcVFNTXVhaXV5cYGBgVmJbY2JeYWNfXGJhYl9jZmlkZl5bZGBhYGFjZF9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJRV1JUUFtdXl5bYFxgVVxdaWpyfXNsZ1xVWFdQTlJaU1JRU1JUVVRLUVdWW1paU09TUlZWVlRPV1JTWlJUVFRYXVdYWFNYXFheXVlaXVRVTlZXV15bWFJVVVlZWVVXWVxUU1ZeWV1dYF1iYl5ZX1tlYl9kZF5eY2NhXmVmaWRmXl5kYWBhYWJkYGJeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWVFRUXl5gX15iXGBVXV5ia3l0bH1sWlVZVVFQU1xUVVRVVFZZV0xSWlddWlxST1VTWFZWVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paVFVWWllaV1haXFZUWl5cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfX2FhYGNdYFRdX2JlZXWBemhYWVlTVlNWXFhXV1ZWV11YT1VdWl5dXVRSV1NXVlRTVFhSU1ZUWFhYXV5YXVtWXV9YX19YXVZRWVRZWlphWVxVVlhbWltZWVpaWFZdX19eY2JhZGRcYlxgZmFkZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVZWXGBhYmNhY15fVltgZGFfenVvaFlcWlVYVFdbWllcWVhZYFdQVl5cYGFcVFRYUFVXVlRWV1JTVVdaWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVpZWl9fYGBkYmNkZWJkWmJmY2dmZV5hYmBjXmJjaWRjZ19nXmJiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheXF1bVldYWVxcXF9bWVtiVlRYXl1hY1xSVllQV1ZXV1dWVFZUWFxcXmBgXWFcV2FeW15cW15YVlhYW1tfYFxfWFldXF1eXlxaXFhbYGFeYGRjZGVlZmJZY2VlaGdkXmNhYGVjXWVpZGVpX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlJXWVZXWlhbXFhXWV5gYmFlYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXlldXllYVldbXGBeXV9aWl5dXl5hXFtbWlxfYl5iZGNlZmVmYlpkZmZpZ2NfY19hZmVaaWljZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMV1dcWVdcW1xdWldcXV9gYmRiYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpiZWNgUlxaT1hYWltbWldaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfX1xaXl5gYmNcXFdcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGRnYFxpaWJoaWZlYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxdXl9aWFZbX15dYWFfXVtgYWJlYl9dVFxgYGNkZGZlZ2VmZmVeZWZoaGdkZGBbZWdeYWhoYmhoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7e3t6enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7fHt6enp6enp6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmJiYyNjY2NjYuwwb6+vr69ytPS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyMj5CQkJCQjrvOy8vMzMvb5uXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXl5enhvb3BwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH19fX19fXx9gIKCgoKCgoSEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnh7eHl5eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t6enp6eXl5eXl6enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx8e3x7fXx4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3eX19fX1+fXh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8en18fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en57fHx7fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5fHp6enl8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzcnJycnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHN0cnBwcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3JzdHNxc4Nxb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzd3Nzcm+DkW9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcnGRhHBycJePbnBwcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFycIikdW97pJBvcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFwga+MbYenknBxcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcnF9rqJwj6aVcXFxcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycYKyqZChsZJwcnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3Jzm6qis6erlXJ0c3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHh4d32noKOwn5yhgXt5enl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fn18fHx8iKaXm6ygo6KIenp5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX1+fX6IoJGQnpuVmI9+f399fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYGBgYaoqaGanpmYlHyAgYB+f39/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f39/gYCClbClpqGfoqqliX59fX5/f35+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B/gIKHj6Gyqp6moZ+goqiroJSLhIGAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GGi5qprqmjnKShn6KhoKKko56PgoGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYKDjJmdmZqaoZudoqCcnZqTiIOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoCBhIuUlpmajJKdm5qWjIaGh4eHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEg4GCgYSQmJWIjpqajoeHiIiIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SEgoKLlo2Tl4yDgoOFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKCgoGCkJOEgoOBgoCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAgH+Ij3+BgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/gIqSgIKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmIqDhYSEhIKAjpiDgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+NjIqFhIODg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYucjYCCgYGDgoGVmoaCgoGCg4OBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZeMgIOBgYGAi5WSjoCCgYKCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4p9hISDhIKDg4KNiYWNgoKDgoKCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf319fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFgoGBfn2Bh4aDgH5+f35/fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYSFhoaGhYWFhYaHh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaHh4aGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4eHh4aHhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGCgoGBgYGAf4B/f357eoCGh4iKiomJiYiJiYmJiouKiIiIiYmKi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhIaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiGhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJhoeGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDhISCgYKBgYGDg4SDg5GSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGhoaEg4GDg4SFhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoGBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhISFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4CDg4ODg4KCf319f4CAgX99fn59fX19e3p6foSEhIKAgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIKDgoCAgICAgYGBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goODgoOCg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f3+Afn2Af36AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/f39/fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gH9/f35+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f3+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXh9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf3+Af4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fXt6eXl5eXmAgoKChIOAgoOBgIKAgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkImJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSCg4OCg4WEhIWDgoODgoODgoKCgoOCgoKSkIuIiIeJh4aGhIaFhYSEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fXx/gYF9ho+Bfn2Cfn9+gIJ8fIB/goCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMi46OjIiIh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3t6fIKAgX5/gXx+fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjY2Njo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYODf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fn1+gICBgH9/fn19fX1+e3x9f39/gH1/fn+MkY2MjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fH+GhIOAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX5/fn9+hJKNjYyPjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fH59fnx7fHx8e3t6fX5/gISDgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkIyMjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx+gIKBgICAfXx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgYKBhYaFhYaGh4WBhJGPjIqKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fX18fHx7fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko6LiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fX19fXx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uKiYyRj42KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fn1+fX19fH59fH18fX19fn19fn58e3t7fHx9fHt6e3t5enl5eXt+f4SDhIeJioeJjpCNi4mJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiPjouKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn5/f319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY6LjIeEhYWEg4OBgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOBgICAg4F/gIGEgX5+gH99foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fHt7e3x7fHx8fXyKi4mIhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fYmHhoSFh4WEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+fn+AfX6AfX19foB/f4GAgYGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4OEhIWEhISFg4GCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SDgYB/gH+AgX59fX6Afn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn19f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhIKEhIWEhISBg4KBg4F/gIF+f4B+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYOCgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgICAf4GCgYB/fn+Bfn+AgoGAgYOChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fXx+gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAe4B+gIB/gYCAf32Bf35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH58f4CBgH+AgIB8gH+Afn+BgH9/foF/fn9/fn19fH+AgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgYCAgYB+f35/f318fn2AgYKBgICBgX1+gH9+f4F/gH9/gYB+gH99fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKAgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf3+AgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgoGCg4CAgoGEg4OEgYGDgYKDgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58e318e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYOCf4CAf4GDgoGAgYGAgH+BgYGBgIOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYSBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOBf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDg4KEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhISGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhIaEhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4aDhISDgoF9f357fHt+e3x8fX9+fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9f358fH59gH59f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoaFhISFhYOEh4WDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4KAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4OCgoJ/gHt9f318fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4eIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYSFgoN+gYKBf4OBf35+f35/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSHhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfH98fX1+fXt9fXx9eXp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaCg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICBg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18gH59fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoaGhYOEg4aChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhYWFg4SDg4SChISAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFg4ODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1NTU1NTU1NTU1NXV1dXV1NTV1dXV1dXV1NTU1NXV1NLT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fV1dXV1dXV1dXV1dXV1djb3N3c3Nzc3dzb29vc2tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi60dTU1NTU1NTU1NTU1NiufIGCgoKCgoKBgYGBgI/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz44Pjo/P0E9P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6Oip8/T0tLS0tLS0tLS0tLZkTtERERERERDQ0NEQz9c09PS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSko6jP09LS0tLS0tLS0tLS2ZRASElJSUlJSUhISEhDYNLT0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamsz9PS0tLS0tLS0tLS09mZTVRUVFRUVFRUVFRVUWrS09LS0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tTV1dXV1dXV1dTU1NTV0MvLysrKysrLy8rLzMzM09TU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7OztPU0M7O0tTPz9LU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXU1NTU1NXX19fX19fX19fX19jY19bW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztCmksXR07mf0NGcgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztKqnayUzbOXmrq6lbi5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DJl5mFpa+goqey0ZJ9fq+w0c7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI5NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0aSwvZehx4aatdXTzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Q1bmYpNqkmbXU08CgoNDPz8/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P0NGanbfYopm11NSvoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX19jY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NWnpKDS1qKZtdTUo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkFDRkRBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NLAnaLJ1NWimrbUzp6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPUpKCPt9DWo5m218OfoNLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTo6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HIxqa9lZGm2qKatNmxpKfW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg1MqOk5eQptqxg8bWuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLUwq+ws9HT0cPU0tLC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT5BRUxMQT03NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dTW1tbT0tLV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj0+Nzg2OTY3ODk5Ozs9P0A8PDg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc3Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2ODk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkhART1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAPEQ+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Slpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqalo6OioqKioaCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpyenZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKyopqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqanp6afm5qboqCalpaVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6GflpOTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKenJ+gnpuTkZCUl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNAREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChnqm1k5CPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9CQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpKSko6KhoJ2to5aTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjqqmjpKKhoZ2jjYqbmZmYmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKCioqyvoaGgnpyap3OCnpyamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaGgoaGnoqSfnpyZmqBhfJ+bm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoKCfp5aln52bmp6TWXmgm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp6dnaSOm56cmpqkhlh0oZucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZyampmkj5Cam5ucpHlfb6KdnJ2cnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampucm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJmao46NlZmbnaB4aWmcnpydnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJyYmJmZmKWNio+Wm52ceGpllJ+enp2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZmZmJalj4SJkp2dlHdqZI+gnp6fn56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiWn4yAgoqenol0aGKLn56en6Cfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl56KeXp5nJyEbGJejaCcm5uenZ2dnaGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qalouZk4R3d5ieh21hXYqXkpGNkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CQkY6NmZuJcpCcnIR7dGSDjYWHgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGgoCBkp2IeFqHk5ZsbntzgYd9gIGSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgX1/cpiUdGRPdYuMYFxxc4N7fXyGjo2Lho2UkouQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiJhH+Cfn2gh19LSXSDfFpKYWt6hISFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYx/iI2Ni4uHkomPnnhJQkV0eG1VPkxkc4uLjYmJkI+Oj5SUmJCVnJqdnqiusq+wtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmRnqGdk5eboZqdnKKfoJRhU1tKdHJjV0ZFU2x/kJGOi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6qpr6SEVoKNVHR8bFxZbVVfd5afn6GknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipamnp6mjdGrAvVB/k4dvX3trVm6boaGop6Cioq6rq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKaanaSmoqGhm2WHxr1lqaGTl15xg11gl5yZoqKgoJ+goaignJ6hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXFBVT1hPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioaKnoaaupqacn5lfjbW+m8qkk6l1aK9yV42bm5+eoJ+enqCjnZeamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1tVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGnqa2xsq+ro6OkbYKVlajGnZKhhEasjViGoZ+dnqWkpaCks6WVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY21qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqe4wb65trezrqytr4R9e2ytu6CcmoBXg4Fng6ihl56lopmWsL6gnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K3z97e2M3JvLe5uq+JeGRqp6Oalop7aGtydnqHi4WFhHZvjbipo6umpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmxwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW2u8PX4NjOxr26tq6aeGpQY5SEg4R6cm1oaG5rbGxrZl9ad7K0qrW1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZzb3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PDub2/xNTPua6ppJ6UgGRfSlx8bnB3b2loYl1fXmFgXlpUbreyqrS8sLW2qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV2bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvFwcXJzMahkY6IfGhXWElTa2VmbmhiZWBZW1haWllVbLO5oqaxtqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH6Ef2lmaGFrbGdudnFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/w8PGxsDCr5R0bWRaVldFTmdiYWpkYGdmWVpZWFhUZrO8sqaqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8fnRrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMS5tMe6gFlTU1dVQE9mZGFpZGBmaVtYV1hTYqm4s7WsrqWko6ikoJ+lmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt3bmtpaHVaZnJ4c3lmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLEwrJ5UUtOTz1RY2JlbWZfZGheWVdXZKq7qri1s6ypo6GtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXWpvbnl4Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCvYJPTU1ATWdeZ2tqYGJhXlxZZKXBu7q8urysraaqu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGlpdG15bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnOxci/fFNORUdvYGFhbGJcXV5bXZvHwsTHwby+tLGwsMG+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGtqd2xpZXVudGJdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFw65/VE1IamNcX25dVFpZW5LIt7+/wMC6u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnY2pkYmptbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHDu4ZUSVlebXmBUFBTVobIw6+9vbi5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjZGNqY2djW1paXFlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Bu7/AvLvEvbrAxMG6i1dHTn+VkkVLWn64y76wwb+6t7u+urW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnamZpXVZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdaOu767w7a5x7e1t7q8urmWbkp4nZFAWpC2vMG+uca8wr+8xbi2t7S4tra7u7m2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVmb2llbGhYWE5LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNDFeKzLvce4ubittrO2ubO2tLSGfJuJVqC/wL69vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NmYm1gXFRJS0pESkNDRz46Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrXWCvcjPwsC4rrW0ur23uLG/v5uVgZfNw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHFmbGludG54Y2diXGNRS1RIRUVDR0I8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0ZhxdbDR0czKxLW6v8PIvr60v8OvfGm1zMXCvsG8v8PMysfFxsC5vrzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9jXmBhTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysGFc3SozMzLzcrGwsPLzsG8uLy6uXVYtsjGxMDAv8TAysrDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1teHxgcWNbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u6rdvCvra+wL6+uqacqrO3xMCleXd6nsTGy8jBw8DAycrBv7u6sLZ2VrXGxcXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3hzaHBdW15dWVJGRENNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFtG2vzr22ucC8qn1uaG5tdIKXmHN5fpq+v8fAucC8vsXEvb24sq+ublSpxcbDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bHV7cG5pW19fWVNQQUZIR0tARUNIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbB1grS9tbXBpIZpWl5gTlNbXHB0eISjuLfCurO7t7u9v7q7u62vrGxXnMXDw8O+vL+7u7i1wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9mXVtUSj0/P0dGPUdDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmlhHiMorC1nGpmZ1VZX0lJTVFUbnmJqLC3vrmytbK8uby2ub6xtKhvX4rBw8fDwL2/ubOvsr26rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYlxeT0lCPz1JREZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Gp4d7do2il2BTQ1lVSGJqVU9FSmWQo66vtrq1tLKsvLm4tbjBurqcf2x6vMLHwr+5urWupayzsaawraieoKClrba1wre2tKWoq6iwtrOyura7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZybmNdZ1hdXVNPTUE+SkJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7OQgXmIj25OSkBlWUJQeICTaExDXoOxtbO1srSvrLu6uLa5v8Szn5aCeqi8u7i1srGtrZ+kpqedpKWdlpmZmp+prrmsq6ufpaikq66vp7Csr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWxdW2pUXVxQTkhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7i1lYyIhHtYRkJRiFhJSll4joJiQVWkubO0srCxrbC5uLa7t7q/rbGyqp+gua6pq62ro6ihnZ2el5ihlZKWl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWl1dG5kVWFjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yu6mYmZRoTUBUeXFPSUlLaJ1/WkVWsbuxrLOvrqyttraytLWuqaKem5udnqennqCoqZ+hp5abl5ePnZSPkJaOl5ukqKCgoqKhpaWdo6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6aim6OclZCMj5CQk5CXlZaYn56em5mml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3pjd2xuXVFoVFBOR1BNTEJQUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3BqqW9ZkRToYRQWElLYElYjWFlZYSvtaqytK6qq6+wsrOtpZ2Rl5OPmKCeoqCco6SfnaiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnZ6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+YnJmbpJmXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dn1ta3tkaFZSZE1KSEdPUk5KTkg8RUA8MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCrxr/Lnk5BdZxvUG5KTGNmdnVhXWJzkrKvrrO1qqasq6KbmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGlopuYnq+orrKrpaqqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3h8ZHl5YGJTVWBISUpLU1RJUlFNOT9CNjc8NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMfGi1ZSS2ajWGd9b3JbUmtjXGdiYW2RtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmpJ6nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruqimq6erq6msrKegoKOxrrKxtKqyrqOZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGZbU1paTVFKT09VTFNNQjc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWlxd3VvZHd2WFdiYGRpW1pXaK2urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2orKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9t7+wrLGuramqtLGwqKuosra4s7itsrSkoJ2ln6yhoaKhoJqYlpafm5uYpaGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWp3dV5tW1JgSFJVSEZVVkpDTUc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCjf2+CcGBjV0xbU1pMTFFZUkhPTkiZrKqppJ+fmZKRk5iYlpaVjIiLjpWdnJ2dnpeemaegoKilsaqnrqOrrrawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXCvLe+s7O1oqyiqaiyqaqop6iamZ6aqqegmaegn5+nqKWkn52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pdm1obVxYXENXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOenIliV15lYFdNUUc9P0BDRD8+Q1J4qa2pqqWfnp6io52enZqcm5STlZSdnZiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6qzraqzta+zrqqvo52sqLaxraOwpqCjr7GusKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3RycWhWXFFGVElESlBJP0VBNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFBGRTtCPkY8Pjk2Tn6qs6ejo6KgnqWrpZ6XnJSRmZ2YlIyKhoiGeG2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3xMrJw8HGvrq1uru1u7ewtrKqurKuu7e/u7qruK2rqri7tbyurrmjpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGtlWltGS0xFRFRNRENFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz49Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9cmlhV05FPklafG9hQT1cjq6soJmbm56emZeXl5KMjpaWk46NkIuCg4J3cnFtcI+mra60ucW7zcfLv8LMzc3Mx8nRzM3Mx8nFxczQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrCxcbGysjOv8jRzMfFx8XCvMPBv7+/tr6zrr/Aw8PHxMfErr+4sri8xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MREZQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E/PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaWZcVElEQD9Khp6kmIOgsq2jnpyfmpiXlJKUlpGQj4yHg4OIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXX0dfNxsfJzMPFys/K09fS19LV1tPUyMzGzM3J0s3O083FyMrKwcfMx8nIxr/Ds7PIxMvLy8/Hyr++v73Bx8XNzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURORkBKUUI+Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+OTo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2FTTEpEQz9DVLHRvbKvppycnKCkoZ2alJOVlIl9eHBrZWJocW9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s7U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLV1tnW19PW2M7Sys/RzM/QzNPQv8jHysTMzMzOz8XGx7a/yr/SzczQxsnIwMTDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSUo+O0E4PTU1ODY7ODU6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFZSUBBREFGUXayr6ealJefnJqgoJ6bnJmViXdpY2FfX2BfXl9fXWJsdXRwcG9scnF1ksTIxtTW19fX09bQ1dTa1NTOz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ19fY0dfS2NnU1szPz8rN0svO0MDGwsjGzs7R0dLIy83AyszG08/MzsjFysfHyMzK1NTR1c/SzNPCucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu32NTV2dnRztC/vMzJtr6upqqooaOrZUM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cGVjYl9fYV9fYWFfYGBfYGZucHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHVzc/V1dHF0dTK0NTV1s7S0NjY2NfLyM7Eyc/MyszAycDIys3O0MvQzc7Lzs/Iy9DQy87KwsnHyczLzNLTzdPS0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspayuvrSwwNjS19rc1s7NysPSz8HBsamsramksXlIRkI7V46hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBgYGBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3N1MzO083L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXNwsjJw8zDxcjKy8/Kzc3QztPMxsnPzcjHy8XHwcbKzM3Q0cfQz87NzNDFx8G4ub3Dwr3DubKyvrG7w8O1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWdgYHFoWVhoVk1HTElQUUI7Qz47Njg5ODo6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzs8Ozw9ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKifrZd4bHBye5GajYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNiYF9fYGFhYF9dW11ncnFxcnNwbXJ5pcfTz8vQ0NPUysXJycbHv8PFz87HxcfNytLIy87OxtHS0M3M1MrHy87Px8fP0svQz8a6xL/Gyr3Cx8nOxMLHwMfNyMTMyszPyMTE0MjGwsbIxb/Bx8zMzM/Cy8zJx8vQxMXHu8fDycnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG90ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vbnNzMbQ1dXZ2tvY0MnPz9HTyMK3u7uto7Z9aIOFpKuUjo2Wj4WDg4OBfYSEfnNfW15eXmBeYGNkY19cXV5fYGBfW1pcYGtycm9va2xvb3250cjJys/LzcS6wMO7u7u6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLKycHBy9DFy8i/ucK7xse+v8bPy8O/w7vJx8m7yMfFysC+wsvGxcS+xr28wMPFzMXFvMDKw8XH0sXByb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdGZpWmFubVpbWFJETEZCR0RMREZTQDU0MzM1PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sq+2bF55faKRi5KWhnqAhYV/dnh1cnBfWltdYGBiY2RkZWRgW1xdXV9eYFtZWlxib3Jva2lscG9zj8e9ysXLwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8PJv8HJu7e7usbDv7zBzcPGvr61wb3Du73GvMO6tLzGxMLDt8C2tr6/u8zDvLa6yLq/vsvDwcbCxcnHycbQxsLMyLLHycPOzMHFw7+9srewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2RWXllKRkpFR0tBRUJGSkA5OjY0ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1tfNys7FycXHwbnFvayupV9kdYSTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNiYWRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmdvczAw7rAuK2wsaeqraynuLS2tLOztLu1vrG2sLWvsrzCvMHEvMC7tbK6vsC4yLm0u7fBwr23vMbBw7y1rrK1ur+0xbe7tau4vb7AvbG7trC2urPFvLevu7+1t7TFvL7CxcDDxcbHy8XAxsa7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcbAv7q4ybaqsJhbaG+Kj4WIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZrbm5yfKTHwLi4tbCrraeeoqmnnqqss62qrKm0rrexs6mupqyzvLq2w7m6urGrtbm7tMK6sMCxvry7trzHucK3raqosLLAtri9sLGosbO1u7ysrrWmrrauu7Kxqrmwrbuuu7i7wMC+ucO/xsPFwbzGwsjLuMXHxb/Hw8O6xMbCu8bJzMuzucO9u7OJc3d2a2lhYmxoWVdXW0FMS01KRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT05Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx83Bw8a/xMTDw8rCycq/wLzCurO1tcOuqrCRW2p/koeOj3t4fYmFenuEgHduXl1cXF1fYF9fZGNhZGNiYF9dWltaWl1aWlpaXGVub2hmZ2lrbnKBrbqwta6lpKenmqCkoJqcpautpKiiq6qsq7Cjpp+qrbW2sb25r7ewqK64tLS8uLS9r7i5tbK8wLLAr6Woo6uxsrOovaqrqKusrbW0pqiuoaSvqbKmqKiupqi3rbGyt7q6u7K8vr6+xL+1wsHHyLe+v8W3xMO/u7/Ewr7EyMzKv7/EwMCph3N0c2ppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HKvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairkmRtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYF9dXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWqpaylnpyhpJSdpJuXkaGjqaOjn6Wmp6atoJ2cpKassrC2t6exraiqtau0ubG2tq62ubKwurqxt6WgpJ+msairqLmqpKanqKeyraCnpp+bpKasnp+no6Chsa2trLK0s7Swtb22u8HAsrq+w8GxubnCs8G+wLW4vL2+vMLHxMPEv8DEoIN4cGxiZmBrb2BVWV5ITmdPVEdGS0Y8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk7Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9tqCelJ2hprq2q7Ozu7PEz8nLwsa4tsfAzL+4ybe7xbizxLizv8CstryyrKWvs62ho5FpcoaFhoB8eHVzb21qamlwaV5gXVxcXF5fX2FjYmBgYGFdXFtcXFhZWFhYVlhbXl9kY2JlZ2dna21vh52pn5WVmqGWm6OYlY2eoaKnnKCfpKWip56bo5ugq7CtsbWkqaqqrKyktLitt7Css7avs7WvsKqfnp+jorKlpqm4raKmpqCorKuZoJ+emZ2fpZqZo5ucnrCpq6erq6ytsLK4r7i5urC2vLu6q7OyubO+tLaysba1v7a+wL3Dwru6vZeEenNrX2VeZGRYVFddSVdcS1BHSkpHQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vDw8++use4uL+3ssK0sbu7rLq6saKeqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3GMqJyTlJSal5qhlpaQm6KhqJ6cnaWnoqWcoKGbma+urq+yoaWjrqunorWwsrKsqa+zp7qzpragop6co6Gto6Kqtqujo6aepaajlpmdl5mbnaCal52cnZytoqunpKOmrauys6q1sLKrsrm0r6qvsrKzuLOuqayusriwura6vcC4s7GUhXl1Zl9mXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWjmKWxwrW2va20uMLMyMa/xbbBwMfOt8DEvbO5ubO/trG5u62ytK+fmqSqoJSaj3h/g4R/eG9xdHFoZWRoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqGbk5OPlJaWn5eZlJegnqGclqChqaSfn6mdm5urp6+wq5ujpLiqoaCuqLaqp6etsaS4sKS3oKKbmZmqp6GarLmvoqGknKKfoJOUoZSWlpuYl5aXnJWfqp6ppKKdo6qqsK2otKyqp62zsKWrrrOxsLCur6eoqLKtsbSwvLS6uK6jlIF6dmVfYVZZWFNSU0tNXkxPS0dHTExFPUE+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGtvLu1u7y1ubmwr7CqnJmhqZSRiouAgHx3cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmmBlZKUi5GTlJqYnJWWnKCcn5agn6empKann52gpqCqr6afoqO3qKGhoqizoqWopbClsa6stZ6hnZWVqaGilK2xsZ+jo52emJuTi6GUkZOYmJOXl5mXnqecp6GimqSlpaukpbCnpaOrq62mqa6vr6uoqqqzpqasr7Sxrry1sa+voJJ6d3NlYVxbXVhOTFFHUWFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaasuLu8wcW6sbm1xMnJwMPGxce2xcSzwr/Fq7e3vba9urq1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVVRWVVJUUlVgYF9gYV9hYWJlaYCSkoiQjpOSk5yUlZajmaCXnaCloq2mpaWjpKOcqqulmp+lsaqgoZ6lqp6oop+urKmprq2ioqKVl6KbnJCrqbCcn6KfnpeZk4qekY2Sk5aQmJiTnKGjnaShopWgoaSlm6OrpaKkqqOrrqWusqmmpaamtKapqK2ztbS5urCqrJ6McnBwYFtXVlZSRlFOSFlbT1JJVEtTTEVGSUQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD42OTg6ODg2NTk6Ozw5Nz88OTU3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DJurXAr8XIzLrByszItcm8sb7DyKyxuMG1vMC7tLSqrKaVmpubiIFyiIN7dGlpaWxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RVVlVUVVVSUk5RWV1cXV1eX19fYmRtjY6DkIaPkI6Zk5SSnJqjnJuhqKmrqKynqaakmaWvpZWZpa+poJyZm6Cer5mcq7Ogpaafo6ShlJOblpaSqaqtmp2goaCblJCMmY6MkYySjZaVkJ6ioaSdm6OVm6CjoZeiqKOjqKugq7Ckrbemo6SirK2qqKuvs7ezvrWzq6+YhXRzaFtYWVNVUkVYTFFbWE1UTlBMUVJJTklCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9NTg6Ozg5NzY5ODk6Njo9OTk1Nzc1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7euqaivrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9u7O1pqmglpeYlod6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9hZH2LgIp+io+Jko2XkZeZoqCboKuqpq+sqLClqZqfraCVlqWpp52YkI+anq6XmKiqmZ+dlKWhn5KRkpGTlairpZqZmZ6elo2Mi5OGiI2Dj4uSlZGgnqGkmJWflZqhop6Um6WmqKiooLGwprG9qJ+jrLSqrqewtbC5tcCxrrGrkX5yc2JWVFZOUkpHVlBTUUxMV01KTU9SR01LQUNGREM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NzYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OspbG3qqajsaudqqepsrGktsa0ubqzysW5usHL0Mqxtre8vcHDsa+xt620tLuztKKjnZ2Xl5SDgHZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxdXWFqf3l/dIiMhpCJl4mUk5ibmJ6pm6CrpqasnqiaoKack4+fo5qXl4WEkpujkJWjnZaWloiim5uTi46KkJqkp5yVlZebkZKHlI6LgYuOgJCLkpKSoJqhopaUmJiVoqaZjZmkpqmmoaC0sqeyt6Gcorasqa2ksrKmtby1q6yxo4l5c25dTlFRTE9DTU5OUEtGTk5KSk5OUUhNSkFHS0hIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKWnpKqloKimpbOqorLDtbWys8bGtrrDyszGs6y5vbS4wK+tqbCepq66r66fmZqdlZSHe4NuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW5ydW+Dh4GIgJGEjoqUkZOeoY+bnKOipJmll6KclY2HmZqMc42Dfo6XloaRmpCUjo57mY+djIKJf4qYoKOekJOYloWNgpR+fnOJjnqQh5OQkJ2bmpqRlpCdjqOjjomaoKGkpJuitK+sr62fmKW4pqaxobCunLC8qqmvqpmDd3NjVk1ST1BOQ1NOTFBMQlBRSElOUk1ISkpESkxGSks9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpqijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGsrcOtp6Kmkp2mtqyjoI+VlpKQfXd+ZldWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11pa3FrfoR7c05Yco+Cl4aNnJeLlJGfmJ2VlJaVj5aJgJSJXztWb3yMlImAjJKMkIaGc4qFl4F5gXuGk52Ug5WOkZCDhn2TeHFwhYx9iYGRjZCXmpiTi5CJnYifmIeIlp6aoqCXp66praionpets6Kmrpmsq5iotKKpraOTf3NuX1tOU1JXTERUSlBMTEZOT0lFTFFNS09KSUxQRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego66hpqaqoKepp6OpsKintMK5sLWwx8K3s73Pv7mvrrXCp6rFqqOdmIOUnLGimpiGlI+Lh31zdV1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYGxuaHqBdE9CP3+VkpF9iJSNhIqNm46WlYmSiIaVhnmJf2BKUW54i5KEfYSNioV/f25/f5R4dXZ4hI2acFGNiIqGe354lHZnd4aIfoqJlouOkZKWjISJiJWEm42ChJKalp+dlKSjqKmlpJ6bsKqhpKSRpqqWoqqcoqaoiXZtZl5bSFFRU01JVU1SSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Nzc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKiosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hr6KnqKWnqK+tqrW8tre3s8G7tqi6yLi2qKi1tqqyvaeelY1/iZOolpWKfo6Dgn13cG9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3J1fmloXFSPiZSJdH+GgXyFjJOCkpqLj3uGj4B2gHhzb3ZxdI6OgXp+iquEeXtodnuOcHJteIGLjZJ4eoB7gHZzcpJ3aHWEhISFfJWKiIqNioB/hIuNgJSEfICPmJSclpGfnamen6CdoKmlnp2YjKekkqCglp6fpIBzaGFdXUpXUFJHS1hST0pMTVJKSkpMUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTI0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6mlraywsaq9tLK7uLa6tLGft7qyqp2drKmosrChmpGNlIGOnI6Rf3aGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmdo2WmI2OfWd5gXZ4gImQfYSYkoFxh498d3tva36tfXSQi397hpKBfH91ZnZ8hWxvZ3N8iYyHgGx5cX1xbXaPcWhxgX6OcEOLhYKDhX93d3qMhn2Me3V9jpKPmIuSmpujlpmdmp2eoZyWjYqkm46el46WmJB3b21mYlpYWFVRSlNVVE9QTlBWS05LT09KUU9ITlBMRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6Woaawra6rqKmxr7GrvLisu764s6ynm7CnrJuPlpylqaSgl5mPhZJ5iI6LinVxe211cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFhdZXBybIinqsB+dHlie3hvfHmJkHp9i4ZvbYySeXR5amqAgnGWkYuBfpaASZKYbmh4foJtaWRseYWQkoZrc2x8bnJ8hmlucH9zjImEhnt+f3t2b3R0hoJ5gXlwfI6MipODlpeYmpCSlpeZl52WjIOJnpGLko2GkJaAbmlvb29YVlhUUlFZT1JUVFJYVU1OSE5KTU5LQ0hNR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCiraqota+urLS/q7zDv6WimpWkl56NhIuUoaGZmJGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXF+niGKaaXN5ZX5wbX96i4l2goiGdGyaknRzfGpqnY9NeYWTiYSOZzF2hnNsfn6DdGZldX+EhIWAZmlsdWtxf3xocXF8bpKNj3x0fn1xcG51bYJ/d3l1anmJgoiJg5aSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trb2hlWFFaV1lZW01QVVZZWE5JSEVKSkhHQkBHRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEvKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakZmWpKiun7Kep7qvq7KwwrG7w8ealo+UmYuOhnmEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHF7eGx9bHGDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooV2cYd8h3x0jK6OiYBoZ2JqbnJtcIN1aXBYdXCOm5J3bH97fW1ybnCAe3N2bmJ2g3+GgIWQkIqKiZGLkYyLjoN1eIqOgH6DgH2Pe3JwcGxgW11eXFlYYF9STltaWFdMSEpGSUc/QkFCSD9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ6lp5+vlaW0qa6xrsGyu8HGlpCMlI+AiH1ugZCSiYOKh4+GdYKEbJWIiHt0eHhsd253Y2leSlBHPkA3NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx3iIh8foWDf4x+daKZeX6GgYWZhJqcYYaqn52Lg5COeneJfomIjnOLl5CEel1kcnR6fHeKbWhqYnlvhpCCem+Bd3SEenB0eXhrbmlddod9h3yHh45/ipKXg42FjIZ9cYR/g311d3t8iXdwc3RmZ2BbW15UXGZeV1BUWFtVR0pLREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIyRnZ2fppGgqqCxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSPjHiDgHOghIp9fIF/cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmiEiXuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqkiGrq+vi4GAk4qCi4KEkqmHgJiYipt0bX2Bhod9jmhnaHl/boaHgoVxhIZHbIB3cnl2aG1rX3Z9g4h/iISLeZSdnImLiJF/enWLdnx4bW93fX90dHJsW15dW2NjWGdlXFVQUFZZUERMS0ZOSUNGQ0NAQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKysrLzAwK251MjI0MjBMgVw1PTxehHR8fomFiJGOlpeSl6CdrKGmuK+zvbOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzk0Ll2WcHOjVUZJS01OUFdgWHBZXF5pjZOHlYCEgoWRk36FiJGBmpWCoaGYlZubpq2Tmruxp7vHw6iLjKGlj5SJgZF8cYOen5Gcf3aFhYuQiJBpaG+DgHWNh4SLcYaCd4d/e3aFfW52dWaAlI6GiYiHiIegq6KWiY6Yf3qCiXp5b2dreH56f3NsZV5aW11qXWFmYFlPS05XUlFJUEpETkdDSkRCQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMf4GQjoqam6Sdoaymq6+xl5GRhKGUhHh3f4yUfH6ShZKVf4qAkpuOg4CBjIqCiY2Df4l/bXBqXUJANC0tLy8uLzAyMjM0Nzc4Oz0/QkRISk5RUlNSU1NUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISktLS05WX2N/Z2dtdZ2bj5qSk4uNjpqIko+di6CgkqOqpaOsk6m2oqjBw67Hr3i6lJp8jaGemYSThYKPop+TmJKEi4WPmpGWbHB1iYuCloyNj3ePhHFthYGKlpGDhYhyiKCVhpKJjo+WpLWpm42VooOHk4N+gGtqa3yAgYJ0Yl5kX1tna11sa15XS0dPUlFOTExGSVBDRE1GQUNFRkI9Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1hnF2koZ+l5aalZ6enKegqpaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkYKAgIuMiYaQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOUFJUUFBRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZynpaKZoZeilJyep56oq5+orKmqtperv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGJlqKamnd6fpSYkqGSlpiBlJ57d5WSq7KIjZeffZSdm46SlZijoqa2sJ2RmaiIlo+NgYlsc3J8f31yaWBdYV9hZ2RgZ2ZbUkVKS1BPSUlMRkZNQ0hMRkdEQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wMC8vLi4wMDE1PkFCTVFSU1FSU1RSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYWQd5WKo6eqtL24pK6srKeotKuwtrKyrbuxs72cs8Osu8nLt8O/uKWjsLKsraqji5aYhaamoKOXgaaZjaKrqKSIhZSkoaCqoKSpj5yxi5Wjp7e6m6CjsJKinaKekKOhq6+ssrWilKSqiJmJkoqWenp9hX9oYWhcZWJdZGNeZmdfWk9ESUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pvWHqFdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4WBjIWGh5KGgoSJhoiHh3BuYUBFNjQ8Mi8xMTAtLCstMS4tMz9EQU1VUVJTVVVWVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GSoISuo7OqssDHw6qzxbass7+zuL62v7TBtru6o7jFqLbJx7W+ubSoo7StsbGbmpKan4mnr6ullHafpJehrLKzmJaqraiutruyuqyvtaKxrLG1u7e1rrWgp6ejp5qpr62yube4p5u2qYyljpGToIZ4goN2WmJlV2ZhYWNfYGZgW1RJRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFiY1d5dXGBlH2EhpJ1hX+BjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeFgY5/gYmOhn+GiYWKh5F6eG5dVkBFTjw2OjQ2QUI3NjQvLzZDSENRXE9RVVdVXFZPXlVJS0pBQD5HS0ZFRDs+QDdENz9CSkpFRldUUF6PpK2jsbTCtrjBzMm2u8S9s7PAt7jBtb6vt3Sxs6W6xaSwxrmxs7G0qKS1tqqxoKKWmqKSpbCtpq2sp6SYoKy0uqKpsrq1u77Mv8XFvb2zwre6uL63ure5rKywprGqrb2wvLrCwqyZuqiUro+XmKuJfoJ9a1dkYllrZWplV1tjWVZTSUdGTFFHQ0hJQUhEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldTWVVadmpwfo6EgY2DbnpzeIdiuaGZo4mVlJaTlJONkJaSh4Z7hoGNlYqBhIGKenyLh4Z9ioOBioOVfXd5dWVPXGRHRUw7UWNhW15TRj87SFBFW2NRUllYWmdZVGBgTVNQRUE/SUpIRUZBQEM8RTZCPkhHS0xTWlRek6+4tbq4yb+6vcnMu7zAvLe1u7u3vbS6scZgdbKlsZqeq72qpairqqOisrWhq6ielZafmZ+upaempZ+klKKnsbSnsrO9tsG+08nJ08fCxczCysPAvr2/u7y3tK+4t7bDucW9w8iwnrmqoauOpKe2iYGAc2BiYl5YYmBpZlJYYFZSVUlFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZmZkY6XkpaWjoaHfYaDjJaLf4N/gnh7i4OHfIt5gYqCl39zfXprZXB1WV1cUGVlYmBlZF1bWFdcTWVtVVJtbV9uX1hnZVVZVUpEQktKSEZISEhHQkk5RD9IS1RUVlxaW5O5wLi9t8bAu7nKyrq2ura4ubK3tbSutraZZHWona1wXqKsnJigo5uknqqllKCfkJSOlpiXqJ+ln56amYOknaylqrCtt7C9udTRztfQyczSzM/OysfAv8LKvcG8wcDExMXKv8jOs6S7sLSvm6u4vJmAemxeYV1ZXmFaY2NRXGBTUEtDQUVGRTxART5BSEFARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vl5KQlG5sb3V1h7OsoaCfi5mcmYyNlZGbkoWKin6Ih4uQi4h8gYRze4qDhXuJdIGJhpV/c3t4a211e2hyZWlsaWZqaWhgZmlobFpudJatpLyIh2dbb2hdWlpUSEtOT0pLUEtTUUhMQUpGS1BfXmJmamKYt8ewuLO7vbWxxMa1sLmwsLursrGnqresjbWnnZunmk+anYyOn5aRppillYqTk4mQiY+RkZ6boZealZaGnpqnm6yvqLCotLTU1NTW0svQ1NXN08/NxcLJ0L7KycrJ0cfMzcPQ0riww7zEuaW2usOig3BkXV1eWWBYWWZaUV1XT1BCQkdEQkg7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VWc5CQmIJocW95eYOgqp6lloybm5eLjZWRmo59iYuFjYqKipCHfISCcH+IgYZ7h3KDkYuPfXF4dWtxeH5xe254c2xpgXBtY2ltcHhpd3x+y7/C36duY3dvY1thYEpQUlVOWV5QXVxOUE5UUVVUW25tdoJxlq24rLOnsLaqrLzAsKu1pqS4pquuoKu0o46xrZqYmIyRk5GEjpuBjaaRnImDi4SKiYSLg5OVl5aTnJGcmJmZn56rrKSnoqytz9LV0c3M0tPT0NTRzsjD1NHHzdLT09fN0dHF0tbFwM7Hx8OovrfPnnpvZl5jXldgU11aUFFVUE5IPkBGQUJFPEBCP0VEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OW3WGhYp3bHdwfX5/oZ6eoYuMmZOTjIuTj5aEeYWQkI2LioiRh3+Ce3J+gIGHeYR1hZKRiX9vdnJrc3x8d3tzgXdxa4BzcmlwcXp5cnq+y5p+jLKEdnKEd2hhal1DWlpbVmVjWGRqU1hdXGBkXmN3en6LgZmppKShn6CopaqwuKqltKOhraGjraGnsZ+JppqTkpGJkY+IgZSJapWijJmEgIV9kYODk5ati5WNlZqOhpKRnpensKGgoaWkqMjOz8jCy9HU0dTTztPNxtbTzNTY1tbY1dfVydTazcnX19HKrMPDzIxzcGNhYFhUWlRcUEtHSkpKQDs6O0RBRDxCQz5IQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5aJj4qIjoePf3eDlJiKjYiIi4l+gnhze32DiHd/eoeRloCDbnhwbXV/dnh9dIV8eW2HdnRufXaEdXh8nbWMO0GLxaV+jHxpZVZJQ2ZjZWNnamRueFtfZmhrbmlugIOIkYudnqCdkJeYn6OkprKjpLOgoaWdoKmgorGchp6SkpKQi4+LhoOPhH6cm4yNg4SFepR+gqmVo4ySipeSi32XipuSq7OYmpyonKe9w8a5tsbN0tDS0MzSy8nUztHV2tfX2NTZ2M3Y287J2trS1b7LzLR5d29lXlpTVlJbV0ZHSklFRT06NzpAQUI6R0RARUNBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhYmCh3x4hZeXiY+Dh4WHeoR5cXp7hIZ1eoWOjZx6jHB8b296f3F8gXGDh4Bujnp1d318gnV/e4aHsHRYqcK2jZGCcG5iPV5ocnBxcG54doFlaW9ydXhxeouHjpORm5WglYeMk5ugm5+qn6CtnKGamZ+lnp+rmYuajJCRjYR9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI2UjIZ7m4iUj66qlJWXn5mnrrW9qa29xsvIyczLz8nD0crU19nX2NfV29fT2dvWz9va0dbJ1MuVenxqaVxbUFNUXkhDRUlIPkE9PTc6PT87PUc9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjpEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoGEf4R8fISYjoeLfoaGgHeCeW97e4aBdXqSno2gdo51gnR1gX10gIRvgY+Bb5KEdHyAhXp2hnuJt8alwsm4gpabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R1bZOWlJWPl5CDiY+XmpeWpZyXoJefkpKXo52Zq5WQkYqNkYKMhYmIgYaQkZ6cmYmGjIGGmHqIiJ+Xj4iNioyCfKGJkIu8oZiTl5qcqaalrp+otr/AwLnHyc3Oxc3K0dbV1dnV19vU1tna29fb2trYztzGh3x6aGllYFRYVlVNTEROQzs9PTw5Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop7foB+gHyFe36BkYmFhXqEh3t1fXRtfH2GfnN+kp2RnoORfIZ+eI59eYqKboKagHSYhX2BiIV7fZB6j6mOj8OgvIycpJx9iYR9iXKMin5zppqcmJOFe4+QiIRoR3CgpJ2Mi5CShYmLkJKVj5yakpSRlo2LlZ+dlKCUkY6NkIt+kI6Oi4SJkpaan5+JjJSSnZGCi3+lmYiEjYOFhIGlh4uLuJidkZSWoqehnZ6do6+2urWswMXK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbuHl5eW1qZldgXFRQT0hDTEI9PT45OTo6OTk7PTY/Pj48PTk6OzszN0Q/ODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97iHp8e4uHgn51g4V5c3pzbYB+hH13hZuhmp2UkoCMiH+Yh4Cbkm6HqIV6oIt8kY6CiIOcfZqRioyjop+QpK+gi5GLhYuBkoZXcq2Ln6ubj4OYm4+PjluCopGCjJ+TlYyHiIySkoyUlJSPjI+Kh5abnY+VlpGLkpOFgIuIko2Kip2WmaKihpOdlqCKiYiNnJCDiI9/g4eFpIaMkLOYnZKUl6GhnpmSnJ2nsrispr3Cx87Hxs/M0MzO19DR1K7W1dja2Nra19bZ2Z9xfnVoZ15dWFRXWENASEM+Pj46NDk6Ozc6OzozOzs/PD43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieW1ifpKDb213i3h5f3qBfYZ7e3eGhH9zcIWCenV2dnSEg4V9f5Kmo5+lopaKnZCUl4uKqJdyirGMhKeRhJmThZmMopagmJOJm56ikqmvoJGVkI2OiJWLbo23hZrEyLKboaWbnJiWkLKQZKTNx5aPhoeJj5KOjZOUiYWKiYWWmpuPkJSThpSXg3+Pi5mIjZCql5ejo4iZn5ebiI+Hl5eKhI6MgX+Hj6WJjZOpmpeTlpmhmZ+Zk52borO0paO8wb7IxcXJyMnCytPNzdSp0tHW1tbY2tTT2s6DdIFpZF9eXk5LVFpCQUdDO0E9ODM3Ozw6OD42NDk6PDo4Mj85OjI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdYKOfHxsfYh4en56gYGCfnZ2gIN8bG+Lf3l8eHh8hIeLfYqjs6ijq7OhlqegpaSWla6ig5C3lZKzmY2hoIykm6+ipJ2YkKeWqJmtr6SXlZaUkIuYmZagwI6jybirm6KmrZmRmpyynYaFqKKcmIWIiY6VjYuTjoiBhoeIkpiUjIuTk4aUmIaDkZCcdJGZspaXpKGInJqUj4qQi5eaiYqWjoZ9jJifipCQnJqZk5iYn5SgnZWfm6GxrqOkt760xcfEvcPDv8bOysnSp87N09LQ1tjSz9i7c3t3XmFWYVdRSUlPRUFCRTU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdOW1xZSmdgO0iEi3p6bYWGenyEeICFgH1weHx9fG9zjXp9gXt4houJhYOSp7utqLK9r6Wus7Ooo6KwrIqatJ2juKSVrKSWqa23pqSjn5mpmKqjr7CqmpmclJWRl5+Xmbu7rcmgaba4q7CUmJ6jq5KXvaNeqrKCiYqNlIeRfI6OfYOGjY+UlYiHkpaLkJWNioyXmJKdmbOWlaqei5uUko2QkoyZm4qSnpCLiZWfoo2VjZianZOcmZ6UoaCUnJylr6iipbO4q8LIxLW7vbvFyMfC0aHGyc3NxNbW0MvUonF8al5bVF9SUEdEPjxDQUI4Pzg3ND5GPDw2PDM1MzQ1NDUzQjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo5Nj49NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVHYmBjcEpAi4p/gXKGh32BiXWCioN/bX19fH9wd4d3joKGe42PjIaMmqvCwK+9xruytMG8tK2rs7aMqLKurr2qm7ukqK25t6umpqKio6Opr7Kxq52cpJibmJeeoqWlkqO5rqi/u6ytsrmlo6Z9iIacrb2wg4uMi5CDj4ORj3qBh5CNjpyIiI+XjYuVl5SRmpadp5qxmpGrnY6aj5KOlZCQlpePkaCRiZWbo6yUlo+UnJ6UoJ6bmKChlZqep6ekoaSwsqbBxsOwsLq2xcTCvs2nx8PHw7zV0M3Eyoh0c2NdW2FbTktCTEBFRj5BP0I7OjQ+QT09NTw2PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxmRmBpZ1pdW5OMjIh7h4uHg4x1hpCKgW9+fIJ/cX6BepV6kZSUmJCTlqe0xsm/wszBw7nIvLqvq7m7l7K2urLArqXApKqvu7uqrauiop6nq6+1sKqboKqcopyVnrC0p4uiurm1wburqJyypKOok4WNqcPEpIKLj4eIhIaVlI16g4yRj5GhjIyUkY+Jl5+Yk5mUl6agrp2MqpyOlo+SkZWVjpCVkY+hlIaXn6CznpSalKChmaSfmqCboJSYnqakpqekr62lwMTCrqm3tcnDvrbOssW+xLyz0cnIwbV1eW1dWV1rU01JQ0xLS0lAQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmW01lXGZUY2qZjZeKi4iTkIaJeYaTkIFygHyNf3iHgoKQeo2hlqiZmpi6vsfIysLSycrCzb3Bs6y7vqe6v727w7iswamss7u9qrCqo6Wjq660rba1oJ+un6aimKO0vambqLzBo7a2r6uSr6yqq5aGmammpZGCjJOllYmBdYqSeYWNkZCen5OPlIuQjZSjmZeblJSjnqmfkaWajI+PkJWWiH2PlZKSo5uVoKKctaaQn5alpKOlnp6mmJ6Vl5ulo6moorKsqLzAxK+ls7fMwLmuw7O7vsK4rMLCwcCZbnpiWVhdXExMTUpHRENIQkJBQ0s6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+a0lfWGFaZGRWnpCdjpeOnpKJin+In5OEeIV/lX5/kIiKkYCVoZqupqSYw77Iw8jF083Ozcu7wrevur20vMq8w8G2tryts7+5vK6vqKCpp7atrqmyt5qeraKooZ2rt7ippa++w7G9ubOnqbOzrK2WlqSrp6CRjpKxxaeVjnyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuNj4+eiFqQl5eSlqWaZpijn7OllqKWrK2rp5ufppeZlpmVoaSopp62q6m6vMS1pbS2y8G4qbass7u4rqi4ur24g25vW1hVVk9GS1NOSz9BSEVESEZHOTVGTTs+Nz5BSi4zMjAyNUI1NU9WTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnJGaUlSZWJMRqaUnJahl6mWjZCDh6WSiIGHgpyEg5WQkZSOmqKfr76uoce9xcTHxs7OztLKvru2sbq7vL7OtsS9t7i3srK1s7ezrKacq6u4q6mnr7CXo6+kqKSltMCwqqyzvsK5wLmzp7ezt7KulaSsrq6ki5OVoY10wZp9lpmEjpaai7GVmpmVkpOZmaajlaCblpqonJuhoJmLjY+WnWBKlpyalJqll1SWsJ+vnJ+llK+vrKWaoaWUk5mZjp2gp6KZtKmqs7y8u6uwssfAuaWrq62xsaOhsrK0pHFvZlxbT1FMRVBQUVE7SEtJRkhCQz45S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1RRVdSc2JXRkirl5mgoqivmZCXh4unlo6IkoWfiISdl4+eoJqjpLXItKnGu8PDyMrJx8zOx766sq65uMDBzbXIusC5tbmxr6+ytKejm6q0tKuppq6smaSupaWprLq/qKu2tr7Bv764srLCsLi8q6OutKy4pYibl6abdr6ghJicjpOZmouvlqGcm5eVm5+hqZ6ooJmaqZmhp56XkI2RnYNudpKimpWdop+QrbKjq5WpqpirrqWkoKSokpKZnIiUnKKel7Gnqau6t76zsq29ubago6eopaecnKypqYxlZmFfUkxNR0dOSlZMPU1ETUlKQUNEPFBVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5TYU1VSH9lXkhFrJWcoZ+7rpmUnoyTqpuRkpOJq42Hop6MpK2Uo6O2xr20wbrCwsjIxcLOyMK9ubKvuLTAwsq2xrHBvLS6q6itrK+jopmqtLumqaarqp2or6ekq6q9vKitvLO3vca8trW3wK+9v7OotLarvqSPo5eRop+8n4mZoJmWnp2Pt5+pnKWjm5yhmqils6GbnaWcqKmemZWPlJuLl4mNpKGUnKOeoLSvpaWTsKuZq6yenqSjqZGVlaCDkJ6fnJWppaKhtLS6ta2otbKzn5yippqXlZmqoZ53YV5gXkpJRkhNUUlORUZGQlJLSUFER0FWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0Ocb2JHRaeXpJ+fw6ycl6SXmamclpqaj6qWlqimla2tmaGrtsTCu763wcPAx8S+zce7vrmysLizv8PItb+vvLa6t6akqqusoKCaqqvEoqWoq6aeq6+roqmovrimrb2wt7bHtrW5uL6wvsG2tLK0r72jl6OWk5uUrp+QoaKlo6OfkL6lqZ2orJ2doZumn72imaOeoqmroZ2XjZWek5+Hj4WNkp6koJ21rKaclbKnmbCnn5qqnqCNmZWfhI6hmpuTpaSamKyxtrKqpamtrJyZoKGSjpCWqZ+UaWRaYV1PSkhLT01IRURJQT1PSEE7R0lIW1JPSz1IT1U0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGVjV0yimqObnsWsoZ+snZyun5KjnpakoKeqrJe2sKOqs7bEwr2/tsDCvMjCvsrItri1tLCztLfBxra+sLi0ubWfpqyqq52en6WkwaWgqa2gpKmtr6Kmp721pbG8t7W1w7Kzt7m+scPAt7ets7S1opyklZGToK2gmKGdqKmroprDramerK6bm56ZpqC+oZ2kmKurq6ahmY2an5KeiY5Yf5WepaGguKqnk5i2o5+zoaCbr5eejpmUnYKPn5eWjqKklZCmrrKrqaKipaWWlZ2Zi4+Rk6SfiWNlW2RgTElKS09GRUFGSj89SkI5OUpLTl1RUUk9TFdcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXEtOnp+hmJ7Dp6Wis6CcsqeTqqSfo5+tqaydu7CprLWyx8PBwrPCxL3GxLzFyrywsLausLWvv8W1ubCwurWsmqiwqamanqahp8Ktm6ywnKqirrCppKe9t6a2uryutsOts7PCv7HGs7q2q7S1raqipZWVlKOroZ6fmqirsK6vu7KmoKmpmZmXk6KkuaChpJKur6ylpp+SoZ6Vno+RjpWdmaOfp7Smp42YtJyjr5qem66RnpSXlJqAkqGVj46goZOLpqywpaeinKCek5KblIWLko2cnoBjZltoZUtJTEpTQkNASEc7O0Y/OTlOTVVeUlNKPk9eXj1IUEJMTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugwqijqrKho7WplrKrpqKlsqyuqbuyrbC1tMa/xMS1wMW+ysS2wMjCtau1qLC4rMDEtLeurLa5pZmrsquql5+ml627tZuosJutn660saequrKnubO3srjAqreywryzxae+rq23tKmnrKGXlpGlpKKil5ikrritsbW2oJ+opJmUlZOkoLeipKWWrbGypaqmoZ6ampuWmKifn5iinq+yoqaNl66ZpayXmZ6lkZuOlJiahZaflIyQnJ6Ui6mpqqKnoZmeloyPmZCBhpaJlJ95ZWldbGlOUE1OVD1DQU1DOjpJQDc3UU9dXlJWUUFXYFxCSlNIVktIOlVkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVKcGlWQ1dGjHlmQzuko52hpr+mp6+voKm1q525r6ukqrS3sbC5t7C3uLjFvcPHvbzEwcfAucHGwbqqtqWtu63Bw7e4qq2yu6KVrbCtspalp5Gruaqgp7Cdqp+wtLKqqba1rLussrK5t6y5sMK6vb6mwqqwt6+pqqumnZiYqqGhoJGYoLCus6uwuZqbqZ+ZlpKXpqC2qaWioq+xs6uxp6ufm6Cgm56lnKGXnaOzsJqfkJOlmqGpmpWin5aYiZSYk5aXnZOIkJuZlI6pqKefo5yYm5OHjpmLfo2WhY+ba2ltYW1uWFFRWlVBQ0VUQDs7SEE3OlhQZF5QVldEWV5eTUxSTl5LSj5aZF5OSFBOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWOol7Y0M9qJ+coam9oaqwqqOxuKmltbKroa21va+zuLy6vbe2wcK/ycS5xcPAwLjEvsG4r7aoq7eyvL+/tKmusbefl6utqK2Xp6mPp7ufpa2znquisbCzrKm2s7W8ra+xtaywtbHAusS2q7yusbirrKmisaWepKmfo5eQmZ+yqrOpqrOZnaebmZSNoKaktK6noaysrbGnsqyyqaSbn6iknpShmJuotamXmZKSn5meoZ6QrJ+YmIaVmIudmpyTio2Wl5qXpqWjoJ2WlZaUgY+VhXuPkoOMl2Zsc2hwcl9HWWZWRENOWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGNgUEtNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFVMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSaoKSst6SsqaWurraprrO5pqexuMa3sbe+wcK1tLrFvszFucPAur+6xLjBubK1rKq6t7q6vrWqrbG2mZinq6qrm6yrj6u9nquusaOqn7Cts66utrG5tqmtrrCntrCzu7zJsqq1tLG0r66mobOfmqitoKWVlZqZsaOtoKWvlqGkmZmSjaKlp7Kpoaaxq6m1pa6wta+jmZ2tp5qXnpmZrLijmJSRj5icoZiXlKyfnZSBk5mNnp2alpCKlJOemqWjoqCZlpKSlnuLkIV7jIuDjJNrbnhudXxhRmBqWUlIWls9e0pHRTZBYlRpWk1cYUpbXVpSUlJiYExLRV9hYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuKkIvSkdQW0gzY1lVS0SZl6CwqLGprKWjrq61qbe0uKOstLfKu7S7ur++tLS3w8HNx7vDvbe+v8C4v72xva6nurm3t8K3rK2xuZWXpq6rp6OyqZSvuqStsrGnp6Kys7CysLSxt7KorquxprivtbPDxbaptLWrsK2pp6K2n56msaCklJuZlLGep5ufqY2pop2blZelpaW3p6Kxs6unsaessLWspJmhrKibnJ2blKq5nJWOjouZnaKYkJemoZ+WhJKXkJ2cmJaWiJeQl5uonaSgkpaRkJZ2hJCHfIWChI2MbnF4dnx/XUtlbFxLT2NcP2J7R0k4R2dXZVtMXmJNWFlXVFhUaV1QT0hhXl9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTVE8M3JrSkRDkZmkraStraunpLCys6q3sLafq7W5ybmuwbvCt7OytcLDz8TAwb61vcC/ur+9s8SoqrmwtrfAva+ss7OcoKewraWmsKWesrWsq7KwrKmotLmstLK1rLOsqayorKm5rrGwx764pbmvqa2tpqitsKWjo66jqZydnJqvmaKjoqOQrJ6jn5+hqqamuKWrtLSkqauoq6+2rqKdo6iqm6CampKktJqPiY2IkqOglY2UnaCUk4WOlJOdm5iWlYeYkpWZp5ygn42SkY6Rd36OhX18fYeKinF0cn59flxSZG9eTlpmXUZElltHOk5tWGFbTWBhTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NkOzYqSGRISis6ST8zQklTLD6Paz1HSI+bqaqiqa+kqKSztLG0tbGxoaytvcy6rsG8x7G0rbTCw9HFxr7Asr7Bwry/uLzFqK23rLO4vMGwrLKtoKSnramopLCjqrGqr6uxrq+tq7O7p7exsqmyqaulpaOtuqyqscK5tKy6qKioramosaWppKKuqqiinpuirJWknZeemKudoaepoayloqyrt7GxoKiin6qusKydnqanqZmjmJmPoKeYhoOOioufoI+LjJacj4+GiJGVoJ2WmJWGlpOTl6WcnZyMkZCNin9/iIV9d3+HhYd0c3KJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU5jXE5VVlVXUFxiXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkowLklnREY4PEIwNUVLWDFAlFs/TUaVl6ynoqqynKmpsLasuLWuqqWrq73JvLG+t8Ovsa2zxMTOzsO/v7TAw8S6wLTJxKyvt66yucC/s66uq6WnqrCpp6ixpbStqrCurbGvs6yzu6S4tKysrqern6OesLerqq26tqS2taSpp6ysqq2hqKamsbKkpqWhoauWqaCUmqCmnqSiqqSsop6msbesraKkopqoqq2pnKGlpKSZoJmVj5idlIGCkIiFnaCNi46MmY+Qi4SNmKSckpGbjJOSkpSjmpuai46Li3yHgYKDe3SAhIJ+dHiMpId5a15gbmdXZodkTkBnkkxEYnlXYlhSZVVNVlVWVE9cXWFVS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIZASEhEl5KvpKOqsJeqqa21q7axq6Srqqm8wcC4ubO8taazr8TJy9G+wbu5wL/CucG6wsSusbWys7vBvrOyrq2rrKe2qqWtr6u5r6iwsK6xq7WqtrWntbarrKSpqpyjnbOzqKiktLSgtq6hqairqKynoKusqLm2qaqpqaGpn62bkaihnaCkoqaiqZ2cprSup6WpoqOXpKamqZyipKOfmZmfkY6PmY5+h42HhZ6eiIWKi4+OkI2EhpWjmo6Nm5GSkY+Sn5eZlo2Kg390h4F/f3h1g397eH6AiZ6Pb3FnZ3F4XGF0iGlPXZhWSG14VWRWUWJPTFVUVVFPWFtiVkhQalRXVEdQWVVJPklIT1FQeExOVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjEmLzJSYzAyP2Y9Tlg/Qyw+TFRfL0lrNlFFO5WNr6Clqq2Zq6Str7O0rqqlr6mpur67wbGvuK6itq/Jx8jRwL+9urzDvrrDwcC/r7KzsrW9vMGysrOrs6mltaikrbOzua+jrbWxr7G5qriuqq62q6qeqqufo6C2ramhn6+zobSqnqinqqOqoaGsrai9r6yurKGnp5+rmI+vopiioKinnqebmaqwqKKfrKGhkqGio6aYmqiml5eYnY+Kh5WIfY2GhYSkl4WCgoyHj46RhIWUoZeIkZ2Qk5GNkZ2Vl4+KhYZ4dIF/fXV5eoB7dHR7aoKHo3VpXmVsgnVniIt8UldwXkp4c1NkU1FeTU1SWmdOTFZZZVhHU2lSUT5CTlFhUTpJSExTSXFQTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTGg6MzhfPWFkP0YxQ1BbWytITzpXQjSQjrGfpKaro6akrKa0s7Cpo7Cnqri+wLywqLmqp66wycbI0MK9wL65vr+8ybzCubCwtbK6vLnAs7S7rbmto7Wmp6yxtrmyp6e6ta21vK+8pa2ttautnKmvo5+lrKunnJ6qs6SzqJqqp6mkqZ2jqaipvay0r66dqaOgrpuasqOWpJukpZ+kmpqoqqWemqmhm5GaoKWdmJapqZGYmZOQioKPhX2PgoCIno+Gf36Mh5GPkISAk5uUhZOijJSRi5Gbk5WHiX6Acnp5fnxpd3x6dXBxfmmGeYSIZGBoY3OFem1neV1eVUJXemxUYVBSWUtLTXB0XUhaW2dZRVZmUEM+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGW0Aqj5OxmZ+fqKWkoaukt7KypKiwp6y4wb21sKO5rKiosMPJyczBt73Atbe/usi2w7W0s7Wyvbm6vbatuba/raKzpqurr7W4tKqduruosr+yuqCvtLaprJ6tsKKcpaipo56cpLGmsKCfqqmnoqqbo6igrbyorrCuoauio66enqyml5+boaOcn5uao6mimpmjo5WWk5+hlpuWpqyLnpGQkYyCi4B/joF7mpSNiXx/i4aQj4yJhZKYkYeUo4qSkoeQmpCTgYh8eWx9dnl4Ynt6cnBwc3hqgnRqg2dkaGFvc45tYmpwYG9BXHhrVV5OUFFKSUxTWldNXF5tV0RXYE9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmRPKT0zUVw9I5KYq5ifl6ekop+opLivrqKvr6mruMK6sq2fuK+rqLS6x8rHv7fCvrC0vrfEtsOyr7qys8C1u764qbm4vquktaeoqrCtubCpmbm8o66/tLShrri1p6ansLOgn6Smp6GlmZ+tqKmeoKqvp6Cml6OpoLC4n6Sxr6Groaykm6amqZqam56jlZycmp2pppaanqeRl5KYnZOZlaGqkJqJjZCHfYd+go18fKGMjYl5g4yFioyNhYiTmo6JlZ+IkZWCi5eNkH2Fe3NwfHFzdGB5eGpvcHFwan9zY3psaWZkYWaGgGBbcmpxTE1/aVhaTVBMSkhQUlFJTVtfb1REWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MFxaNSiWnKWYnJatoJ+hpKG3q7CjtLSpqLnFtrKuoLesraywtcXHwLe/wrqxtb23v7u/r6y+sLS/sr3Duam7u7inqLWop6uwrLOwppm8tqSru7Wun7G4sKmlp6+ym6GkoKOkoZacsKahn6Knr6KgopOjpaK3sKGmsaufrKKumJyqpKiel5qdpJOanJqdpamZnJuklJSXlJyOk5eiqaGQiYuPhnqEfYSKeY6Xio2HeoKIhIiMjoWNlJmMjpaZio+XfoaXi496gHpwcXZvb3RfeHdlbWxsammEbmZyaWxmaV1kc4FgW2t1aVpJfV1bWE9PS0hHUlVGMjldXm1QRFdWWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzlkbTg0R0FmW0hURFVdaEQuPDJjViwylaKhl5Sbqp2koaKguKquoLq4pqy9xbOwr6O1sK2tr7TDw7yzv7q4sbO5uLq4uq+uwLO0ubC/wbisvbu1pqKzqqepsqutsaGawLWkp7W1qJ6yvKmopqmvrJmjp5yjppSYobKlmZ+jqKmcoqCTpKCkuKikp66mnqWgqJKfqKKhoJibnaCSmpuWoKGqm5uYoZSRlJaZjZSSo6ikkImKj4Z5hHuEhn2djYqKh3qBhIiIiJGFlZOTjJCVlI2OlHuDl46Ld357bHRxbGxzYXh0aGhqZ2dwhmdoaWRmaWpgamJqZ1tle2NgU3NUXFtTTEpHSU9TQCEqaF1qTENWVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc5Z08nMp6jo5GOo6ebnZ6do7Wtpqq5t6esw8G2sKyjta6nrq+3wL+8scG2sa6ytra4t7atqr20r7Kxvb+4rry8saWftqulpbSpqq6fncGrqKWwsqmstbueqaqrsaWYnqqdpqSRmaetopiepKmhm6Kdl6Cdp7alr6qvoaGdnaGUoKafoaCZm5mckpmdlKWdq6GXlp2Uk42Vl4uPmJqooJKIiouIeYV3goKCnIiLgol8f4SIhoWRhJaVj46QkZGRjJN7g5WNhXN9fWZ4b2tqbGd1c2tjZ2RkdoBiZWZmZWpqZGtxWl5ZXW1kYU5oV1pgVkpHSEtNUlg+OV9saUhCVFNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWbo5+Qi6yhmJiglqW0saGxvbehsca8urGxpLesq66puby7uq2/sa+urravs7izqKy6sa+utLa6tq+5vq2mnrWroKCwpKuvnaLAoLGjrrCut661nq2vrK2imp2nqaWelZuopZ+ZpKKpnZqgm5ScnqyvpbqorqKhmpqdmZ6jmqSdl56Ym5SZoJKolqqnmpOampGLlJmNlJSZqaeOjoqJj3yCc4GBi5iFh3yJiYSFioyKk4STnJKSkJCRlo6Qf4CMjYNwgH5meW1oa2pncXJrXGhkY3OBYWZoam5sZ2tqaG1cbGt0cWFUYmhkZVpJRkxNT1hRUVZhZYFUQFZTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kqGajY6wnZqToZqpsq+fuL+2oLTCu725saa2sKiupbe4t7esuq6tqqu3qrS5rqaztbKuqbG3trGztbqnqZ+2qZ2eqaKprZqnvpito66vtbWtrJ+xra+popyco6uom5Wcp6OdmqmipJaaoJyRnKSrqqm7n6ekoJiZmZ2hj2uhlpmccYKVmqOAdZKpp56UlJ6QiJeZgJaKoZB4hpSMg25qfnaDcWyGi4Z9hIuGb15jYWeEl4Zri4+Uk3V3i4R+g5B/Z4aAaHVpZldcaHNuTlBqZGdyhGdfZGZubWpeYGGKkISFZU5LRDhGVGdeSkdQUFRVS0hTYW90ZUZaUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc2WYFsMTZPa1tOXEtbZmI+RzFRZD0rLoykmYaVsJuck6Gbqq2qo73Er6m3wri9vK2ntrClq6S3s7GzsLitqqestKawtaOouLa1qKest7OutK2zoqqftKueoaScpqeYq7qVpqWvsretrqSprquspaGfnKCnp5uXoaWlm5unp52Tn5+YkJ6oqqO1r6Ojo5yWl5eXo4ihjpKah6GHk52gf6V/pqqekpGakYiEcniNjoWIoXaJjWmXiGZ9cnihcIiHhH6NfH+hoKCZgHuHnnSIjnabimyHgYNtaGVjemxxYlSGbWNsaZhxWWpxb4dYXmlba2tbiHFuenKGZ4aEWl5GTT9HX01GUlZWUVFSV1VnXk1XSVJTT0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiLppeDnKudmZmdn6qqp6m+w66yury3wL+qpLewqayms7SurrO2q6mlsa2ltbScrra2tKWnqbOxrbKor5+robKpoKOjmqGjmq2zlKOkpba8p6ynq6qsqKWhoJigpqOZmaajpJicpKmWlKOclJOkpaaht6OjoKSYlJOXk5uIro+YlImpi5eim4WxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGWvJzFe3K2pruQe4BslrGrsHhoa1ixrm5labySvG5oem5yj9h+U2pitrJ+gXKUdJqhqpBXT1dhT1ZORlRbWFFQUoxcV1xQQFxEUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaSgaapn5ecnqWtsqiwwr2ytcC1t7/Cq6azrKypp6+zqa+2s6ioprWmp7ivnLOytqqlpKixrq6xpqqep6SxpKGgnpeboJ2uq5SdoZ+0uqOqqaKtrqWinZqaoaefl5uooJ+YnqenkZynm5SdoaaioLCin5+jlpWSmJKZha9qaoqNqn5nhJWGrWRwnZyTmaWUca6hpH54u31roZB2sV9qtFulgGackWBmgnpmf2p4a6lkvnJnpox2sWp8sXh0kpNjbW2nbluEoEVoZ4eWRXWcYH5nfKSngllfi6tpgJV4eWqnN0qvXFdTbWNbS05XX1xXVjtOiU9XVy9JVFNJREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5GhlYOsp6Weo6WqsristL2+r7bEsre6wqaosKuuqamwrqOxuq+kpa6zo6m5qJ6zsrCjpaCqra+sr6ann6OisJuim5eVl5ubrKWWm6GetLOiq5yira2gnpqXoKKonZmepJ+cmqGnpI+do5qXoJ+qnqamoJufoZWVkZaRmoW1m7V4hamZtZl3h7Obt36TlZaolH5rgaZ7goaIkpSSeKtna7Fbq3uPh5R0iHGPhoB/iJCXeIOCi5iMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinC5Rom9bU2toYExLW2RYXFpCPrF4V1hBI01oRUNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5SIs6amoa6pp7Osqru2wrC7wq24t8GqrK2urqausqmhr7yqoae0raSrtaSmsrOno6GdqKqyqLCopZ6fn6+Wn5mUlZaYnayimpmkqLSvoqmPqaiqm56VmKClp5qfnKKfm6CjpaOVm56Ymp2iqpulmZyboqCWk5GTkpyD1ZOZuXCwwn7GhnzWlJu7fJmVpI+NnI2ke46Ho4KlgnqseY+dVq96iH6farlauXeGg3ymgpN8mHqqeY2dkHuxbo6EdJC8hW+UUK+nxYpRoHpjYKljdHKIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhNbEtbUk9ZZllDRD5FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzIlm6GTmLGoqKWzqqW1qKS8t8GwucCxtbS7s7WnsbCjsLKmn662qJuoua6jr7Ggs7SwoKSen6iqsam0qaScnZ6ql5iXlpeVlqCpnZqWqK2wqaOej6yiqJael5yhpaGYoqGhoZqioqebnqGelZmbpqCcp5Wbm5+hmI+SlJGciLJuaLVxq4dvjqZytHNytnuZl6OLjpyNon6RoaV+sHaDkdLRdlyue4V/pG+bqqZrh4R8rX2XmY97sXOSnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamRmWEFPa19saE9VR0k5PVZSW1hYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGckaWwraSqvK2mtaWntru8srq/t7a0urqzpbSzobGxop+sr6SYprqupLGxnLS4qp+mnaKqpLKorKqkmpyaqJ6VlJiYkpKip5+WkqWrsKailpOtn6WSlKGbpKaflJqlpqGao5+tmqCenZCWm6GdnKWVnZaZop+VmJaSmoWse3eodqOOiYepb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9eIV9jp6GmZp3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV93d4domIhrXq93lZ6PeGw1eciusl9CVG9eZ2BFUG1fcG1WVU0uZWNpU1lRO0JEQUw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk5ODifnZSguLCXtMGtqLOoqbK6t7O4v7m3srW8taW3s5+0rJ+fqKuflae2q6ixsauttKSbqaCgqKG2p6aqo5melaWhlJObmZKUoqWakpCmrK+moJWZqZ+ij5GimailoJWapaidnKSerZ2hnaCNlJ6bnaGYmZyWlqKgk5iQpp2GqX19pXihj46DqnCti4GnhpWfoYiXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aHc6eBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcW0x0XWJmTVthX3J0X0pWNkqbk1hIRT1IRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4wMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMT84oZ2Zmb+rl7TCrqutqaa0sLewtb+5ubKwt7ypurSfsKSepaennpOqsKmwqbWsq6+hmKGgpqWkuqKjq6CXm5GioJWUnpqUmJ6gj42LqK+vpp2Wm6imn4ySpJeoq6eUl6mnnp+go62koZ6hjZWhmZ+gkp2XnJWeoZWWjqubj65tcrRyqYx2iqZztHhzs4CRpKKRnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZKIrWt1s2GdZqJvh5Jql1ytYE2hfIeRUnOjbXp/fm+Yh3Fcr1Y8nHdlVG9uLlynT2NSa2VibVpjXWBwe2NUWlE+Pm1vM0JCQD9NOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs8MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWam526oZyywK6tq6unt6m4r7XAtbywr7m4q8G2qaqgm6akoZ2RqqqotqOyqK+qoJecp6Ckq7ido62blpmPpaOVjZ2hm5icn5CTlKu1sKeZlJysqpeMk6WZpa2ikZaqsaOgnqersJiho5CZopefm5acl6GTnKqclJCrmYfUkpq7c7DDgMOGftWWm7h4h5CXjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6p9vm5zvHSyg3V4gYtumohxbo2kdL1ed31bYXm8a1pWW2p6XmphZmdibXdvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy02QTmnmp6hvKKXscOwraqqrLGnuK+2xbG6sa67sK7Bsqykop6joZybkamkqrKktaatpJ+WmqqZpqy4naOumJWhkKWgkoyco56XnZqQlZKvubGslZejp6eUkZaknaStnZCgqKufm5+po7Oeo6WOp6KVopqcl5WjmI+woJKUqp6FkJm1gJCRjLeVeIKTmrV3bWtuc255j4SOiXSewbu9mnuBsqhwgHSRuIN8hoaMho17i4aNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtnRycHe2jF6Aen2KaIN5bnlji6xwdYV/WVunakVkWVNmYGNdY1FnZnFtdUJNUE1EO1pNPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPjs8p56goL+llrTDtKyrp6yrqbuusMavtbOut6e0uK2poqGlnqCdmZSrpK2qprWop5+blqCjnqykvqehqpeUnZCim5GPoqihk52Xk5eUsrW3rZido6Sii5KRppymq5uWqKSlnJqhqKano6mhka2el6Sel5eXnZ6PsKiUnKeijmp+aZymeIdzfZqPdHplh3q9vsC6b5KCcZWHX3JqWl6aiWFjiI6Va2B/lWNtnXdilWuAmpWUZV5gY3GbimlyjH2GlWdqfnJ0eH19Ylt3dIFoUFxuhH17i2tYbHuCc0lKb4ZwTnVNRVddZmBMW1hnY19PW211aXFSUERFTjxIST1MPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqifqKHBo5u0urajrKWup6i1sazIrK+zq7WjvrGyp6CiqZ2im5qZrKaupKW1qaWbmJWhm6etqb6oqaaVlJyVoJqSl6SpqJCdkY+XnLCyv6ybp52noomTkambqaSbm6ugo5mao6eso5+ropqwm5WnoJaVnZ+dl7GkmKGomZyRnZyjo5mmopqcmpqZj5aBZ219cXeSl5SRhYq1qo2GmJWPioyYl4eUlYqEkpSRiY6SlJiUmJeaoKKanJShnY2CeqWGbGp8kHyAdImKgXGCeHl2douAe4prc4F0g3Vkd313a3B7bWBjXXBnTVlZZmpgV1pwem5sZlNPRlM5T1pNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LkCzoLOiv6GjsbK3oKmlsqelsLWqyaussaW1psCotKGdpKWco5WWoKqmrKOjt6ufmZaWn5etqqbBn6yklZKcl56Yk5Sin56ippORmainssSvmqucqp+PlpapnqucnKCsmKGbnKKkr6eipaierpiXp52ZmqGenpywoJyippWYk5iToKGVo56XoI6Wk4qKjY6WrY98lZuCkoKLqqiGgZiWioSPn4h7hJCHhZmSiIaKlY+bl42Ql56jlpqTkZ2Nfo5mobOvhYqEdnqQinx2eXpvZnqRgYCJa3WBeYhyaHN/enaDiIJrdGR5ZmBqZWNkZmtZa3twaWpcU0xQRF9VRUA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76sq66ysqCqprGtoqyzsMWwqqyjs668pLScn6WioZ2Zl6ilqaakpbO1npWUnZmZsKauvqCsopCRnpqZk5GVoZyXqJyEnqmrorPIs5+qo6qXlpeap52om56kq5Oen52gqa+qpqOroq2bn6ChmaSenJ6dr6OYnqiTmJeckaSZmKidmpdlgpJ8ZX6NmY9jeY1saGt6kaSra2WamH5nhYplZWloe46hj2tojZeRo3hraouYo56Yc2xueoSNh3pYZV6Fgl5si4qAdlxoc3d3koCHgm54gniAc215hHR3iYiOg3tphllea3RkXXOJaWp8cWxjXlJOV0pkWEFKND1GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsKqlqK2tsKeurbC9samnpK2vsJ+tl5+jnaGamaernK2jpaipsq6elaOQoq+mt7mlrqOOjpqhmZKSm6CZmaWVe6Wsoqi0xLikoaeun56VnqOeo5yjqqiSnqGdoKqwqqujqqCpm6afqKGslqGbpbCkl5yrlaGem5Kll56qmJ5+vYOHcrRyhJ2GrWh4ucS4cZOio3ummJlzqoJ8y8DAu3GLooiCn32VmImewL2Clp2djZ3CwXuCe5KNmsPAfWqlsW+MgW/Ken+bd5KDjoF2eoGAeXF6f4dxeIWNk3ltd5RjZl94ZGBlgmNedGdtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmolKOvqbCuraayta+ppaamsKugq5iaop+cm6qnopyso6WopaS0pJ2ikqauq7izp6+ikZGanaWSkaChl5ufnYemq6SrrcDAsKCpr6mXkp+dopmho6qjk6ChnZ2trqmspqOjp6Glpp6tqZKkm6mtqZudqpysoZaXpZaho5ecf86UeHqkgXmVlptfro9ejqeBoqB8p5WbdKuDgK9eY42qeqeHhaB0l5OIs2OCq4agjo2zaoSudH2Xh7hhg61Zo81ukHV72nt/mXB+iJJ2fmV7iHZ2a32Ibn6FkZJ+bYKPYHFrcGdgX3lkXHFoamNmYFJUUldeS09DNUFIRUQ5PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcK/v7W0sLeXnZGkqqits6ulsqysq6Srp6+qoKebmaSXnKKvn6CeqKejpaGesKybnpWnrq2xqqisoJSSm5+lk4+fpZedp6OeraSqsKjAxrOoqbGulpKdnKKXn6mqn5Shn5ydra+nq6mcp6ikoquSrbSXpqKqqZ2jpqWhsKCSmqeaoJqUlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnneqgn2tf5xyrX6rh4afdpiSenyXfqqIooyRjJ1+q3uJlI+fgHutVpzEeo9vksF9gZVtdXCMbWV2ZYZvYXducm+Ki5KQg22RkWVwdHVwYGdtZWBvaWluZmNXU11hWVJTQzlKSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytJ+do46jo6Gsr7auqbGnqKqnraurp6KjnZmilaCmq5+hpaCoqKKfnbCsmJqWqKevrKinqZ6XlJqjopGUoa2bnaajr6yjq7Squs2yraaurJaUnJ2imZ+urJ2WoJmdn6myqaqqm6yrpKOsm7CxoqisrqWYpqqpqbGikpajpZqUkoSkaqR1iXqpdHqycIKliZmMcYigmoekYGBSq4R/roObdq6BpoaGn3qZloZ7ZoCjiaSZhYKjfal+gZWHrl98qFWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojY2Yj4FtmpNwbnl4d29sZmVlcnBmfGliXVdgaVhYVUxNUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVv6GZq6ehr6KesLSwr6mtoqemqqurqaSmoJuln5ymp6ajnKyaoqyhpJ+vop2akqqktbCuoKmbnZaUp6SQmqKooKClnLGmo6exrLbIsrWqrKqVkZ2copmgpbOdmqCUnJ+nrKukrpqtqqOiq6KzrqKqs7Ghmqmorq+2o5OWo6eYm5F8qmyehId1q3l8sG+CpIqJn5aVn5SB0ri0uMmAgbJfX5Spg6SIh6B5mJWaeKrJdJmjlaepkJOajH+biprGxnhloYKlc4GfjoJ9r15wtWOxdUujhm2nR4KTZI+QnpJ8cJeTgHF7dX17bltmanNxZoFqX2FZZG1cXllJTk1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz4tNU9UUR0cOzxGMiwkp6TBxritqbKtrKWinLK5rKqhppuopaqrqqegpqWYqqOfrqudpqCsmp6ppZ2ntp+il5OoqrayrJumnKCVkKWskZmcp6OfqaauoaOnqbC0wrKzqq2ok4mXnaSaoaOvppehlJicpaarm7Cerqimn6yjt62hsrmvnZuup7Kzs6SUl6ejmZ+Ogp1OeJqBf596g6N9g6SEh6efnJ6ThLh7fHm5gn7MxsK2eJuhkYuffZqWlop2npiKpJijqH6whZ2Fn4SsfZqUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkqSXfH2Tkot1enOFf3FcbW94cmqCb1pkX2huY2RdS01RVEJJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu4q6+gm6Gss7Omn6CVpq6trqqnnaamm6OnoLKuoqmmsqCZqqSUo7aiopWXoqm0uKScop2ik5ChsZmenKeloaKvrp2kqKG2ssOxramtqZGHkJynnKKknKWWnZiZmqakqZqvoq6lppivpbytobe3rZ6dtbK4sLOmmJ2voaOehY/RtcO3eYeOhZGTkIGmeJSid4ygkYSlgYpxqoaEtG5yapmjm5WKn3yYmYaHj3OvgqWboo2mi5OdiZWQmm1wslylc5N6nGyZf3uZfW6pYaNxcX+fYnOyuGh4j5SmmX6MjZOMeH15joJtaXhqeXNugHRdZGRubWZnYEpbWVg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWTc42Krb+/u7q1npanpK21oaOZlaOpp66qq5mmop+moaC1p6Opp7CjlKyjjqSto52QmpqqtLSknaScqJGUl66goJ6mo5ynnLSaoaqjtqvDsKmrqaGMhI6coaCmopWampuYm5mmpKaYrKiuo6Wbrae+rJS9sKyforCyuauzp5qosaSnmHqokH18sHeKgaSliJxtsm+hh618oY6DqJWYgKyIha6Fn5SpoKGWhp+AmZWAe5J+q4CdmpaLqnidoI+JlJKAea9do4F8pqdknYB8l3Rrr12la3CFmV1gW4ygbZWSp5mDlI2XjHt7g5d/a2x/Y351bYB6YGdlcW5oZ2hDWmFbPUtUM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JODA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVlZXWFZVVVFIRklKIygovZKahKnGwrbBtJ+arKCuuKWjjpukop+wr6qfpJ+drZmeuKCjq6CvqZquoZCrqaSWiZqPrrCsp5+nmqyXmI+soqGdpaGapJytmJ+oprapwK+lqaSfi4COm5qfpp6SlZqalJqapqSkmqmsrKSloKqov6WXw6yqoqGrsrmqrqegs66oqZh2r36Qi5yFh3y6roqYZbCMZZWtfaGPg6aVmoGsioSwhaWZpKGhkYWgW2xqgbNgf617e4KBsWxnb5mXjIixW320W6SDa8iiZZ+Ae7tZdrVasn1Sr4B6rFiAoW6YkKibi5eRl5d8eY+dfmRzfmKEeHSAfGFqZ3FtZmVlT1VkXEJVXz5KKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFBSVFdaXmBfYGFiXl9cW1hVUE5KRkM1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjm6ympbaooIuaoJ+cs7Opn6OfnbWYoLOoqquer62erJuVr6mijoibjq+sqKeip5mukpmPqJminaWfmaOipZmfo6qyqb2vpaienY59i5uVoKCZkJKam5GamKmgoZmorqempqOlqbufoManpamhq7S1rK6mnrutrKyVgKmSo6+Om4CHpJeYkIGAuMO6g46ck4SnlpyCrIqCr4imm5ulqpF+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGqjgW+rhG2df3qysMeDaquwvax4d6K+vHSBlo6nnJCbkZideoKRm3pjfXtkjWd5gntga2VramJQYVtTalxAVWFDTio9OjQvHh8kHiUyIB0kKDA0OTY2Nzc7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbO0sb+5sb2yop2upqWypp2MmKW/qrixqKG/pqaynJ6xnLmonq2vpaeUlLCsl4yDm5GupqOsoaScqZ+Yi6OSpp6nnJqgqKKYnqCsraq5rqijm5eSe4eZkaabk4+RmJiPmJSpmqCYqamhqqehoqu7nqnFo6Cvo6qztKqvqaC6p66umnN1qqS3hmWJoHBnrY+Kj21veKSPmZ+Bda6ZlXCPi3GVqKObl66kcm1tbWWKeG9tgplxgXpqcWlniZaVmHFpaYSGZ3CGZF2JY2pvWV1nfnemYGJxjpFvZmSAjZOPopiYmZKXn32Hj5V2Zod4aI5reX95ZGxjZmxiS2RXSmxZOlFlRVInSzorIxwgGiMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqZWts6m5ubKzqqmhrp6jsqmYkr6yw8i+tqqewKuso6CnrJ+6o6StrK2mjZeuqZCMhZWWrZ6mq6Gfo6OgkYukkqeZqJmWo6mglpympqivuqysmpuTknuElo2lmI2RkpiUjpiVqJWfmKmjm7GnnqOsup+wwaeks6assLGqraunuKOtt5aKoKiltp2JlqKYh6makJSdk6qzmZujq6CxlqGhnZ+inKCkoZWrp42TkoyHkpyclJCak5iRjpWFgaSZl5WNi5OSio+GhH1nin90gnZ0h4xxp217lJGUkoGBjpCQj52UoZaZl6KDiJWNcmmQd3CLeHd8empsZGNvZFVgWEBpW0hjYU9aK0Y9KychNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRGSktLTVBQUVhVVlleYGFjXF5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbaurqKwpK2foLWxkI6sxr3Eu7iqoqWem6aesKijtqedqbWmqJGYrKKLiImPnKeWrKWgmaeenpOVo5aomqiZlKaho5CbqJmhtbuoq5makI18gZSLoZSKlZKVkJCUl6WQn5qqoJy2o56orLenrsGuo7enr6+wrKmpsrigrryZkaWkpraikp2mn42pn42Sn6Osr5uho7Cor5ejoJyjqZ6enZyWq52SmaGblJCWqpmNmZmWkJaekYmgnZWUhZKMkI2UioB9ZouGdYZ2eYiDc5xqhpCUlJCJfYyWkpKXk6GTnZeihImZh3pylnN6in9yfH9qb2RecGphW19ZbmNQYGVQWjpHR0U+Mj0+Ny8rJispJh0mNDA2NjU4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVVBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWJhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaetoKe1qpCQnaWzu6+srKKjmnqdorGkpbCplpu4pqOTmaqcjoaKiZyjkK6fo5Wnn6CSlpibroqqlo+omaeMmaiPn7m2paaZnI2JeYKTi5qTipWSlJCNkpeijZ6eqZ6fuKSAhK+1orCvdaS+o7Kgd3mgqrG7lHWspJ6JgKp/ZFxidqCOpJ6El35uk7Odo6etqqNlnZ+Sc3mZl3CAmKiXbH+iqIplnKWckZeYloySnJCGnZqQlYOSho+OkomEd2qOh3aGcXyGgIBhaYiKlJKLWnaVkWhoj45yeqaamWV5mYeCeJhqg4qDb3mAa3FlX3ZwbGtoXGZlYmJwU1w+Tk5OU0c+QFRDOjEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTVRUVVldYGhmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mm5Wmo6GvsayrqaWprqOnraWSlqu2sLKmmqqnq5dzjJ2wn6irp5OXuaCgj5yknZF/iIibno2rmqKUp6GejpeRnoV1ro+IppqokZekiZy6tKigmZiLiXV3k42Wk4qUkZCUjJCToI6boKeZnLKWgIyctZ2zjJKPvKegfqeieqKut4GOjqaeg4uGkLGpr4yKlqOaeYGLrIacnaKnqaeHlYWYd6WbeoebgZemgoJ7nLF6ioWgl5mUmJWCkZeWhJqZY3mHkISOj5GKg21wj4d5gHGAgYV/hnSGhJWSeJZoknSgmnR9mYShnoeYf5OKg4OZa46NhWx4e3FxZ2R4b2psaltla2pmdFxfSVRMUUBFNS5ZVVU3KSEwOT0+NjQzNTY4Ozo9Pj5ARElASkVKS0dTWFpZW2FgaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mrq6rqKygqLGmp6qlmZSuyL6woZamqbWekISdrJynoqCNkL6emo2fmqCQfYaPmZeIrJyhlp+gkY2TiIaAkaiNh6Kco5OXnoafurKnnpuSjoVwdZCJlZCKlI+Pm4uPkp+Sl6Cklp6siJ+0ibSarYrKh6quiLeFjK+CsK6DqY2lmI2dfKiPcnt3nI+nlmiVpHm0i5+epqiSmMKBf6uImKFxnoCZpH2XhZWxgKF8oZSgkJiWgI6Tm4qYkYt8hZKGjZSSiYNtc5CFf3pyhoGEfIR1hIGXgI/FZn+ph4+ja56DopuEmoGNjoWKmXGOk4Vod3R8d2hodXFnaGteZHBtZ21YaEddUk0yRTQ2TmFjNyYzPERHRDk2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdhXWpsXFFFPUtNQEpkWV1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUl6KfsKipqKWroKS5saqrppqUoKOkqqOWpaq3o6+AoaecpZ6diZS9mpONoZGdkHmElpaRiKuZm5uZoYWPjHabnI+fkIiepJuVmZiHo7mupJmcjIx+Ym2Pi5OQjZCMjZiLkJKfj5SgoZmhqH6hp4etnaCWrY+enJ2RhYCgjaquhqONqZmMmn6idYCZlGuCrHVNq3iHjZ2Rm6ingKmrfYOhe3qnaZ5/kmtnl4aXtomefW5gZFmDln+Me2Roi3KZfXmVbF17lm1fU3CDXF9reYNgWWWCfYOAl3CnqmuDo25ypXCfhJ9pZqBtW26KfGZaYIN/YldQb3dmbXRya2pvXmpwbWxqWGlPXVhGOUE0R0RfazQsSUNRTU49ODQ4NTk7NkA7Oz1BTz5RUkxNQkpcXV9XXl5idmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhY2lrZGJkZGdkYmdlYWNol5adoLmhqqOmrJGhtrysrqOZl6CipaytoZ2utaOokqGgoKabmY2YtJmQi5+MlYx1gZSSjIqmlpWYnp5/koWFrKSHm5CKmKmYmZqSiKaxp6KVmoiJgGluiIiLjo6Ki42Si5CSooyUnqCcoqV/k4GPo6GUoHeclo+ng6Gnf4aprISleIp8hJp9onBzlIiWe56MeW2HnIyZkJuomo+HnXuConN2pmaefnakX5h6fZJzom6Yt7S6dJKHgn+1qGSBxrh7cJW3i3GAmqRjc6yrYH1qnbN+bnyGgo6Ci5hxf6NscqNznoSApGCdmbOWcXyXn7R0c1uesoNqYm90dnJob1hrbHNzZl1pXmJLRT1ENVFBWnIyPVNHX0pSPTwzOTU6OjZEOztASVE/VU1OUUBFX15bWVhgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLe1rq2gm6Kco6OmrZybsa2sk5ehmaGkmZqUnqubi4mSeIuGcICWjYmPoZCSlJ2XfZCJjqigh5iOipGjk5ybjYypqKWekJaHhH5re4d/fZCNg4uQkImPlKCDl56gnaCfi4l3nJiijJ9yoYuHqIibpY+Wp6p+rYx+eqCZeqOTeIF0loiNnH2WoIebjpmbpoaiZKF8iJaQm41snmibjW6amXuAiqd9cmh0q4Odg3SqaJWaXZuFdoSdaKpqgLhmXKhwgZxhlYxep3Z2iIl/nmiadYaTkpeOf59umpBtp5pdqX54u2t+qluOhF20Z1xucnl4a2lccWp5eWNgZlhiQVFFTzdWQ1JuNEtaWl9OWkRAMTUxOzs3SD86Q0hVP1lSWV0+RGJeVmBRYWN9aUVCOU5bXVhkZlhmZ25tYmJlX2JhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniWOUm6u6srCsnaacnKifnq6bnrCorJ2XpJqhn5iWlqCjmYaJjWqIgHJ7l4iLlpaEkZSYj3qKhJajnYqUj4aLnpKdnImQqaOgmoyRioCAaYCGeX+XjHuIjo6Ij5aaf5Oin6Chk5hyaJ+Kn4+McJKMgamHmJ6ip5+nfK+to6K4l3ejs6KkgIiUeZ17q5p/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmX50qlpdb3uWi3ieYkx+enqFY3mXQkyeWaJqcXyObYGJhJl1m3iGibGzf3+bk6d2gp1uc32Ub5lza6RdlXZIZWNgc3F+f25mYGxpdntkZWJSXlddVVdAWUZRZ0RTV1tiWF5JRD1COD9BOklFOExFV0FWUVtWREZiXFpgS2BtfnFFQzxVX2JaZWpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZsXmVnZmtkZmxpaGtpk52Bsa2ZhFReoKazubOzqZqijJyrnJyplKGrpKKoj5+enZqZlZignZaIh4l3hYFueZWFkJuLfJGTlohyf4iSoZtzkZCBiZmVoJuFjqmcmpWLi4p8hGyEhXGCoYx4hY2IiJKYlXyTo6Geooiuhn21hI6enHullnqpgZWcj4qgnHynaHdtfpl0oXNxfJ6GmXCTg659pIOmnpqAo29eqGd1o2NvpWGc05B8e5l4cnNjooWQfqNzo491a5CzjGCCmIlzqrKovH93g21+vqaptF6cbn1xl26Ac6JyXaRnc6ZhaKZtm9SZfYWbcHl6l2ube3iXc26ppGdgZXlwgIRrZ2ZkbnZ3Z2BjU1tmUVFiSVdJVGBXU1tlalxlUUZDS01KS0JKRThQQFFOV1JZT1NRYGZlaVNjd3l3SUZFY15lWmhpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7GrVFxLfqmvsbSws6ObmYWZqKCgpI6kqKCYqYqZmJiTmZOSoJiOiIZ7cH2EaH2Pg5SagXeRjo+Jb3+Gj5OSbJeTfIiRkqSWg46qmpSSi4WJeYN3iIBugp+Hd4CThoiZopd7lKKkmp+Js6Gitot6rKekrqVwqICakIWAm5F7pIChmYaYcp6Eo66vipeMgIykjZaDrqGUdrW1tcmhc5SKgZ9gnZepbXmVhqCbdaGHd6B+kpeKgG9MZqOScJuHcqR7eXRhg4JrfqBrcWRgnHJ+dJdpemmztbTGpnOYfnqda5ybq3WEm211d5hpmnp1mHJQRX20Xmp2a3mIZmpoYnR1cG5WXlRZaVBTaElVTFlTVV1oa25WZ1dNS0FKTUtISk5BUUtQZWNpbWV1c3N/eXxudYl7e1RQTmxeaFtraVJqaGlsZ2xmY2VfXF1cXmliZGlre19dZGhjamZvbWVpbGWhnIivpoRmP5Shs6uvr7aiopCAl6mioqWMpaednaaCmpeWjZeQj5yTjoiDeWp5hmWDjH+XoHl1j4mMgWmEhZKDjIWdjXqMipWmk4OXqZiMkYuBiXqAfYt5cJChhnmBlYeJlqCWf5SlqJyWloRmbnicbKJkfHGld5uYcGemgJaLe6R6n5aDl3KedoGKlJaPuW6QiqJifZmhlYhtcmmranWgbW6mX5ppi5BoloealXWigH2aYIyGjHRviGJooGWefmmadW9jZoiCbXKiWl9bY6FtXYmMb3t+c3JkpW13omRnp2iZc4yZb6JvU4mQb6BfZahUi15UmG5tc2tygm1waWt5c2tvUllXV2ZaU21JWE9dSVhpaHNqWWtWUVJFVlxMWFJhVWhqX3d0en1wfHxyg3t/c3aNgIR2XlFyYmdicGdQamhoa2xuaGRnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKSYpnpldG2Lp66kqbCxpp+LgJernZ+ljKKhmqKigJaYk42aj4uYkI6Ke4ZxgIhoi4t8mJtzdIl9kHtkgoeViomVmYJ8iIaWqJCBoqyRhpCKgop+gICOc2iPpYR9hpSNiZigjoiTqqediaZ4lpt/pIiWjLKYnpCCr5efpXeUh3mpdKSOhJpupKKMkoSMg7tufaWvgoaGhpOWnJ98pXpxqJWglmaefm+rY5aKlZJ3qGypooGJdYeCd6uRpodqkbBrdrOMqWuKhm1tn56SlWF/q4uqdn9/jKWedp99hKSVnaBqm4h3rGefrY22dHe+jaSTWYOmjathdXJ0cHx0cWNqfm5obFNWW1ZhYl1rTV1SXUldbW12YFtxWVxgWmd0ZW5vcWNxdGB4en55cnmDc4R+gHt7jIGCgHZieGRjbXNkUmtnaG9scmpmaWFfXlxia2JtbHtvXFxiaWJsandtZ2xuYpWlqp2BgJ6klqmqnainrqSZiYOYq5qepImapZ2pnYWMmo6GnJGFko2MjXSGeoiEb42EfpiTdHSGcpKDbX+LkoeGk498e4GFmKaOf6WmjoGOiYWVdoKHkm9si6mBg4uUjomcn4mNlKujoI+AdZSWiH6BeZSuo3+Bm3GPhXiPioN+e3KmjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3p9iWuMhVt5eHJ6cGhufpKJcX90go+Uk3GFg4JljH9egX+Ld3VzlHVveW5uh22EhV52aHiOZYCBhY6pm310fJZqiYhvgHZ9hnZtbWeMc3l7mHiFW2tYeY9pbndycW94eHBdbIZuamdWWmBXXWVrY1ZhVV9RX3B4eWxrdmVqa2p2fHFydHNhb3VidHuBeHV6g3aAgH+AeIuFg317bX9sZHhuXlduZ2h1a3hqaWpkXGBaY2plbHF1blpbYmtkbGx5bWhsb2GOlLiopouhopqmpJmlnKuioYSEmKySnqGJmqabqZiDgZuKfpaTh46KiY1yg3yPfX6PhXuXjnNyhHCVhXt9kouGhpCFeH5/hpmkjnynoYuGkJCFloOGjph3coWpho6SnZCInp6IjJuon6Cqg4mNlJp+fomWraiPkqaPd2+dkYJ5kW99qIVwfZVxa3B9gZ+Mf5OOjGhtXYOLjJybno5zlYuIcXRrgXZ0gVlyboeRgX1+jGpdamR6hYOIgF9peHqbe4KLgnWBhoJnd4qGa2FwcoJ2X3KLgYmPppWFZoyPg253i4Rxho96cGZnZHuDepZbXGpnbnZbe3l3dW5zc4JmXG2Ka2xjWVleW1lscVxfYVpeXWZ0fnt1b3Rja2tqe31ye3h0ZG10aG18fnZ6fHx6eoCAfm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VtbGdzeW9oam1gi4upsKGQo6Ganp6Ynpmoo6J+g5itjZ+ViJuikaWVf3uYhHySmYmIhoeKc32Ai3aFi4GElopxb4BymIaEfpOEg4aKgXqAg4uboJCCp6KIeI6YiZWLi52XhYN6rYKRmJmUip6dh4ihq5+ioqOLh5ObnKOZlqqhp6agkpuHlY17d42OhKd+f5KRkpOcsqablZ6QjbKTmISljIyVm5+JkJuCiJGKa3yNd3hlgoaQinyJnYSHi5CIiICFhJB3fHl0mqGIhomeioSUfn2LgYF1cHOFg393h4eKkKaRhIWNh4ONkIx9iIuJkIJ3bIKEfXqZanJoYXSKcH16d3ZvdnSBXV5vh2hvYF5aXF1TaHJVY1xcYWxodXx8c29wZGtqaX98bnl/cWlwcGxmgHtygoB4f31/hXttgoyGfHp4fH16g3lOZHZqcm1wemRrZWJiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZYyHnbmel6KhmJWZmJSZpKGefH+aq46ejYagnIueln15lIN7jpmJhoSEhm54gIBygYd+iZSEbWt+epeHhIOQf4CGhIZ9hoOOm52Sh6ufg3KKkIaTkYydkX2NeqqEjZKYlo+cl4eGm6afopqdhoORmpmZkJqmoKWdnZCWgJCKdnuHjoSle3yOkJGGmKqhnZOdj42qjpGAnoyJk5qego6XfoaOg293hXF1YX6Cj4Z1i5iAg4+ChoV+hYOUbXh1dJKiioyFmYWEjXSAiXx9cnJ7h4R7eIuOhJKmj4aDj4GEioqKd4aIiox8b2t+gXxuaGxtZ156f2h9e3Z0dnV7d1xgcH1udWBjW11eUWduVGVbXmFraXZ6fnFsbGRramiAgGxzgWxsdG95b4V5bYeAdoKAfoV2cYKNiH57e3x/e4KKYGl7anVoaYJlamNgaVxkdWhvYnRtbFVjcXllcHp6cmVqbW2LiZ63mqGkn5KRlpeLmp+fnnt4nqeRnIqHpZSLmJl5eoyFfImRg4yCgoJufH94c4GFfYuRfWtofYKYiYGIjnx+hoSHfY+BkJubkYinnX9wi4uMk4ehoYqFjXyokYiQkpeTlpN4jKOgoZ2Wmn+BkJqYkoyao6GjmpeRm36NhXiAg46HoH99jI2QfJikoKGTmZCPpo2QgZuRiZOXm32Skn6HjoF0c4JwdmB9f42GcoqVfIiMcYx/goWGjmh3cXiMmJGPf5Z+h4pygYZ8fHF5e4uEenqRjIOWpZOLhpB8hoaHhXaChImIemVyfH94enFsamZefnNofHV2dHxzgGpeYHR2cHhkY1lfXlJraFRlWV9haGp2eIFxZmtkbGhmgIFrbn5ob3FrfniGemuMgXOBgX6BdHaCjYZ+fHp/gX1/j2pyg25zaWKHaGxiX3FWdG9tbmB4aG1XanR2Y3V7enJia295iY2espGkpZ2OkJiPhp2hm518dqWhjpiAjKKKiJqWeHuGh36DiX+JgoF/cX97dHaChX6KkXhnY32Gl4qCio14fYCMg3mWgZWYlo2WoJt+b4yCkZSGppuHjYmEppWFk4uWl5OSd5GdoaGXlJd6fo6Yl46Wmp2knZiSlJt5j4WCd4SWjZ1+gYmNjHOXo56hk5mOj6KMjIOXmIOSlpl+mI18iI2BdnF9bnpkgHyKhXCGkn+QgmyHgoGAiYRldW97h5KXjHyTeIuJe3+GfHtxfneJhXmEkIqLl6KVgoSMd4iEg4J3fIKKhnZgeHh9dH54Z2xkYX9pandzdHV9cXxiY2FzbnVzbWFaYV5bbGVSY1hgYWlrdnmGcWJqY21laX2DbGh1aGxvaYB9gXltkIZxgIODf3R8g4yBgH56goN+fJBtdol0dG1limxqYmN1VoRpcW5geGdsYmp2cGZ5e3lxX3JshoWPnK6XpqiejY2Xh4afk5eZfXiqnYqZepedi4yYkHl7gYt9fIN7gIOBeHR5enN9gIR/iYuAZF59i5WHf4WHdX1+in99mISXlJeMpKGYf3KHe5SSiqePjI6Kk6CSg5KQlJeRi4GPmKCakpCRc3+NkpSJnZ2eppeXjZWWc42OimuFl4+ZeoeIkIlvl52ao5OVio2fjIeCkpx/k5KVhpmIfIqJgXpxeWt1bHt9i35thZKClHdwgoN9fop/ZHJpe4CWl4R+jXOQiIN4h352eIB9hoB8g42EjJSkj3mEgnSJh32AdHaBiYRuYXt1enF9b2FvY2R7Ym5vdnN4d3N0YXVfb2x1bm9cW19eXmteUF1YY2FobXR7iGtfamZqY2l3iG5mbGhqbGiBfXt3b5CIc4GDhH10gYaJeoN9eoGEfX2OcnqLeHhubIdraF9pcmKHaHJvZnZnbmxheWlrfXt4cGF4bYuAmZmqoKOonoqLkoaKnouVmH13rpmNl32flJGWlIh3fnuKfHuAdnd/gHB0dHtvhX2BgIp+fGFcfpCShoCEhHN6gIZ6j5KIkpGck6WclYJ+gX2Oi5KkiY6KjZiajYaRmJOWj4qIjJKck5CMjW6Dj4+RiZ6ZoqGXlomWkW6ImYRmhZiOlHqJhZCLcJWalKKSkomLmoyCf5GefZKPkouZjnuKhIdzcnVrcW50e4t0boWQjZJxdIB7gYGIfGRwbHh9mZN9hIh0kIqAc4h5b4B9gIZ8hYyJhIyVqIx7iHx+i4V4fnFwgYaEY2h5dHVwfGJecGBrdF5want5eGxzcGV4XW1sc21zWFpeX2JrWlBXWGVjZ3Fxf4dmXWloZ2JncY5uZGlnZGlogXp3dW+OhXSBgoN7dYOJhXeFfHiEhXqAind/i3t7cniDamtfcGh0gGtyb21xZ29sZXxjboB5dnFsd3eKfqKXoaigppuHjIuBkJyHk5x1gaqVk46HoY2Wk5CAdHt2hXh5f3Jze4VrcnB6bYp2gIGHbnFbWX6SjYiAgIB2dYCAgKCGkIuSnZihlJh4in+BjYmcnoqPhpKYloWJlZmPlouLjY2NnYqOkINtiYuQkYmclqGcmJWFl4hphKOCZoWdipF+i4OLgXeTmJGekZCJiZWOf36QmHyRjY+NmpJ8ioCCbnVwbG1vcHuFaXODjpiKcHd/dIKIgnhmcm91gZmOfIiEepSReXaIdHCJe4WMeouGg4mOm6OIfIR2got/eHhvbIGEgl5yc3JxcHhaXnBgcGpeb2p9enBtbWpsdmBwb2pybVpYYWFiblhRVFpmZ2N1cISCYl1rbWRiZmuTbmBmZl9na4F1cnNwi4B1f4OAeHWAi4B4hX93h4Z3g4V8hox/e3aKf2pxY3xjhnxvcW10amhvbHZ4X3F/eXt0dXSAgn6klZqtnqaWhYyEf5eUg5CfdYuglJOGi5uMlY2LenJ4dIJwcoV0cXWIa29tdW2IdoN+gG1uVVGBq5WHgniAd3OCeoKggpKCk5OYnJKaeJJ7g42TpJqTjomVmZKEh5eZjJSLiY+PiJ6EkIp8c4uFiY6InJqfmpaUgJN/aIWch2eFoIeSg5GDiXGDkZePm46PjIyQjXh7kpB6jouMkZaMfIh8gGt2am5ra2x6f2F6fo6WgnZ6gHiDjHx5Z3NsdIeVi36IhnuTkHF6hHB2jHqJjHqJfYKMkJ6dhXx8d4KMfXdxamyCg3pgeG9tbHJ0Vl5vYnJgX2xueXBob2Zmc3RocGthd2VdVmZgYHJTUU5cZmVdeXCIfF9caHJiYmVmkmpfaGRbZ3B+cGtwdIp9dnyFgHR1f4x5e4aBeIiDc4aFfoyMhHt5lXhmcmqDYIh+b29re2BqbnR/dV90fXiGeHRzhXx4oI+ZsJylj4KKf4OaiICMn3+LmpOOhYiXjo6PhHZ0d3OAcG+FdHBxg3BqaXZug259fG11c1JNgt/IktaTfHB1g3aDn4KTd5SRmZyQmXuUc4WQn6GTk5CKk5uUhn6WloiNjYiRjIicf46Ad3qMfoiLipycnZuVk3qNdmeJkodsiKOEkoeXg4ZjjJGZjpWKl4yNiotxe5SIe46IipORinqFfH5se2Vyb2preXlcgHmQjoF6fX5/ho56emhzanOKjomBhYV9lYtrfn9ugIt+i4d8hHqCj5Wamop8dniDkHlzbWdxgIRtanRvaGp0blNeb2RwWV9rcnhma2piZnhyb3BjX3dgYFZrX153UE5LYWdjXXpxiXRcXGV2YGFlZY9kYGViWGlzc25rcXaMfXR5hoF1dn6Lc4CGf3uJfnKJh4GRioh8fph2ZXNufGWHfm9wa39abG55eXNhdnp7jXZzd4p3eZ+Lm6+boJCChXeIlX59ip2HhZ+RjoWMl4STjoeBdHdweXFuhG9tbn5yZGR4cX1teX1qaGxjpJrB3K7voXNsdYR2hKKFkm+WkJWglZyBknGGi6OXiY6VipCdloOAlZCFiY+AkYqJln6HenV/iXiGhI2cm5iZjo92inZuhomLfYqjhJGJnYWFXouTl4qPiY6Li4SKbXyWgX2IhYmRj4Z2hX19a31keHVpbnhzWIh6koaGeX6AgIWLfnhmc2p/iY6JgoKAjJaFa4F2boiQgo+EfoF6f5CVk5mQdHN4iI11c3FndXqDYnRtcGJqdmdSYHFnbFVfbnR5YXJjX2h9cHJuW2NyYGJXblpceE5NTGRnYV52c4ltXFxkeV5gZGaFYGNiXllqcmtua3J3jH50d4SBeHd7iXGDhH1+iHt0i4mIloeMfn6Yc2h1cXlsi3pudHGBV3F6dnlxZXd5hoxpd4CJcn+ch5mnnKOShH1wjJR4eYudhIWhjY17lo1/mYiEe3J3cHNqb4FraW18dF5geHd7cXV7Z2FlfOvatcnD3IhzbHSBd4qaiI1pmJCPnZaTgYlxhYmgjYSLlYqMmJR8jZOIg4mPe5CLhY+Cf3Z4g4Ryh4KTm5aUmIaMdYd/cISCiYeYoYOUjJ+DiWGDlI+HioaKjYeBh2l9lH99g4SJjo6CcYZ+f3F3aHZyaXN3bFqMfJKChn1/g4CEiYJ1YXNriIGPioF+f5KQfW2CbHiGj4aSg3yAfYCRk5CWiG9xeoyGdWxxbHJ5gWB0aW5da3ZgUmVyaWZTX3B2dGBvYF1ognByaldnaGJpWG1WXHVNS0xlZ15icnOFaVtcZXleXmRne2BkX1xZa25mb2lzeIp+c3OBfnp2eohzhYN9gId2d4qGjpiBjIF7k3Zsd3V5eJN0bnh7fVl6hnGAb2d4d5KCZHaGhXGKlYWZoZqiiod0b5OLcneOnH2KmomJfJ9/g5l/gXhxc25vZHJ+aWZsd3hbXnl7e3FxgGphZ2F/1baOkKd4b3F3fHGSkIyHapmOiZySjIZ7aYiLmoeBkpGGh5iNfI2NgYGJjXuPjX6JhXp0e4J6cIaAlpmOk5SCiXWDhnaDf4qTnJ+GlY+ffohhgJOHhYiEio6Af4NnfZGAfn+CjI+Qfm2CfIJ0a212dHN2dWtijYGPf4V+fIR+g4d+b19ycIV7joyBfH6RiHpwg2Z5g4qGi4N8hH6AlI+QkoRub3qMfnVub2tse35jaGtqWW52WlJpcmpiUWJyeGxiZV1aaoNtc2FbZ19kbF9uVFtwTkhPZ2VcZ25xgGxbW2NzYFxjbHdkZV1dWmxsYm1qdHeGf3Fvf3x8dHiGeIWCfYCHdXmJgZKWfIiGdomBcHd5e4OTb218gXdeg390gW1penSUc2dzh3xykZGDmp+boIaIdnaVfm12lJd+iJCDio2afIuadn12cW9samF1fGdiaXV6Wl94fHptcX9lZGhnV52PXnFzl7zFhHZxlImQfnKXjIadk4yIdGuJj5aBe5SLgYSbjHyLhn18iYx/lIh1iYV2dn2BcXWGgZ6UhpWPg4Nxf4h0g3uJmJyXhpOOnYCIZX2TgoCGhImJcoF9Z32Le3l/f4eMj31pgH2DdmZveHhzdnNsao2FioGKf3iCgIOCf2pecXh6fYyJhXuBj4B+coFpeIKHi4WEeYN8gZiMj4x9bmx7iX13dG9paH13ZV1xY1hvc1NTbnNpYU5mdHhmYF1cWG6AbnNZZWJdam1gcE9ZbFJEVGhhWmtubXtvWltebWNaYm93Y2ZcXWBramNsaXN2gYNxbn57f3R1g3qDgnyBhXZ+iYGWkXiDinSBiHJ5eX6NkG9vfIFxaYF5en5tbXx2lWtqeIR0bJONhZ+YoJmFiG59jHZqeJiPf4KKgpWXinmPlm96c3BsamRgc3ppYGVye1pgcnx5Z3B6YWVljrGyd0piWqTa0Jdye5GLkHh+lYuFmZGNhm9shpKSenmShoGEmIp8h394eImKhJaAb4qHcXR+eml5hYOlkYSTjYN/b36DdoN4hZuYk4qSkJSFh3B7koN9g4OJg2+BeGiAhXhyf3+Di4d8ZX1+g3ZjcHOAaHhwb3SYjIWCint2eH+DeYFqXHB9coCHhYh9hol6iHKBbnGDho6EhHOEeICZjI2EeG5ufoR/d3tlaGp9cmBZd1pZcW5OWHJzZ2BKbHZ0YV1bW1l0fXJvV2ddZmpwX29OV2lSP1lmX1pwa2d5cVtbWGtlWWNweV9oXF5lbGhmbGlxd3+Hb2x/fYB1cIF6gIF/gn92gYWJl4pxgo1xe4Z8enmEk4x0anp/a29+dH99b3J8e5RvboB/eGeSioKhmZySgoZnh4RwaHqWiX5/hYKZioF8jYxpeHJrbGZfYW94bV9ib3lcZGyDemFxdl9lZdTqvooyOj6LjoByeYWIjo12g5eNfpOOjX9ubIWNjHZ9j3+FgpWJfIN4bnaGhIOXd26IhGt1e3RmeYKDp4yDj4yEfW5/dHaDeYWbkIuQkZKMi4Z+e5KHeICEjYNsgHJpf354bXx7gYqEeGF5hIFxZHFofm10cXWBm4uAf4V+c3Z9gHKAb1tsfnR4iYKKe4Z/fIh4enFsiIOPg4pygXl/louKfnRta3aAgHV2XWlpeHFZV3xTWnFlTFtycmVbSnB3b1xbWllddH50aFliW2dlbmNpTVdmUT1eZlxddmVfdHBbWVVvZFllcHlaaF5fZ21namxpcHh9jmxpgoR/eW6Ae32Bf4J6dYKBjJOFcICLbnd+gHt7iJOJf2h7fmp0e3KGe3N3fX+MeXiEfnxrjIyDm52WjIGAbI5+a2l/jo17fn+DlIJ/fYqIa3VxZ2hjW2Jncm9fYWxzYWhwiXphc3ReY2SboI9uXDVZr7V1aoCJfZKGdoaXhnSPi4p3cG2Fg4d1eYp4iX2TiHp/c2d2iH5+mG9whn1odnltZXmIhaWHgYeNin5ufnV/gHyLmYeCk5CYiIuEiXyPiXF7fYV8aX5ta4B7emp6doKHgHJgd4F+cWRyZ3WCbXV7hZSRgXyBf293eXx0fmxXb352c4uBhneHdYGJenhybomAj4CFcn59fpKIiXpubmltgoJ1bl1oZnRyUlt7TlxxXE9ccnBjVktzeGpXWVlaYXGAdGBdXWBnZGhpZk5aaE5BYWRbYHZhXHRtWFhTdGFaZG5yV2peYWhrZ21saXB3fJJraISJfH1wfn57gX+CeneAgImLhHJ7h29xd4N/e4qNj4Nqfntud3l2ind9eICCh3+Df356bYSMiJijjYSDe3aMemtthImReX17gpGAgH6Kg3BycGNmXllnX3BwYGBncGZqb4p1YXRvW2FkanZ7f76cpqPIuHGFhHOUfXiGlIJ0kI2IcnJwhHuDdHWHdIh3lIh5eXFjd4Z6gJNpcoR1Znd2Y2p8g4iegoB/j499cn9zhHh/kZCCeJaNlI+Hgoh7iYlseHl+dWh6aWt/eXNpenaAg31oYHeHfWprdGh7f2l2gYuQlH56fn5we3Z7c35iVXZ8cnKJg4J8gnCGiXd4cHCDgox+fXl+fHWOhYJ1aXFpbIiCcnBeaGNzbktldUxeb1VUWXNuYlBPc3hhUldYXGFwgnNbYVxoZWRjamRQW3FJRGRhXGRxXl13aFVXVndeXGVuaFZrXmFqZ2Vvb2lwd3uTbmmIjHl+c3t+eIKBgnx2fYOIhoNwdoNybneCg36Ji5N/cIB8eHl6gYx0g3h/gYGChHmAdm9+iYuanoh9hXp3h3xodIaNkXp/f3yJhoR2j4Bnb21fZFxYZVltcmFgYXFsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhwjXV7h4+AepOKgHV0dX53gHBxf22FdJSGeHVsYHqCeYiOZnGDb2d1blttfYGQk4CBeZKTfXh7bYd1gJCLg3OWipGOh4WFe4CFbXV2f25od2Vte3ZtanZ2f398YWJ4hnpodHVjfXpndYaOjJV7dIB1cYB6fGx/WVZzfW90g4Z+f3hriIZzeWt0f4ODfXp9eHtyi4B8cmd0ZW2Lg210W2tfdWVIbm5MW2JXV1Z4bWJPU3R2WFBVWF5hcYRvXGBjbWRjXW5iVF1yR0NmX11maF1aemNSVlx1W1tna2FWal9gbmZma3FocHZ4jnRrjox1f3Z4fneBg4F7dH6DiIiDb3F/dHF1foaCiY2Ke3d/eIR8fIWHeId8fYF+hYB7fnN2eYyOn42Jeop2dYN5Xn6Gmox5h4N0hYaFd4l6Ym5sW2JbW2FWanNjYFtnbm9nh3JhcWZXXWNrf3zKzoe5omptbYpscYRxfISKfnuShXp5dHl1dXtqbXVjhHaSgndwZ159gnmLiWVxgWtqcWNYbHuGnImDgnOXlHd+e26HcYGJi4dxlo6QiIWLg3t5fnFxb31naHJibnhxamxxeH18el1leYB3aXV4ZoJ2Z3SHi42UfHKHaW9+gHhtfF1YcX5tc3+Ke4Fubol/cXZnd3+Bf4F2fHF6dIZ8eXJmc2Fui4Jsc1hrX3dcSW9rTldWXlRVe2thT1R1clFRVFZeYnSFaFxga2pmYlluYVhicEdBaF1gZl5dVXteT1ZkcFlbamhdV2dgX3Jma2dyZ3Bzd4Z4bpWKdH96eH55goeAdXOAhoWOgnBwe3d3dXqHhoeMhnp8f3WLfn2FhISHf35+fYd/fHh1eXeRk59/jH2LbXWAeWSDiJeGc5KKb4WFgXqDdGNuallfW11dVGdzZWBZZHJyZ4FzYmtlV1pgaX93vq57n7duYnOGaHR8cnqDhnp9jH94eHN2b3t2ZWpuYYd1joFzamJefnh5ioNmcX1oamtaVm94iqOBhX9xmZNxgHh1gW2AgZCHcpSIjIeDiIV9eXVyb2h5YWptYG12amdrbHp3endbZ318eGVyfW6EdGV1hYyGlX9vi2ZreoN0bHRiXG98a3R8i3qBZnSGfW1xaHV+eH1/cnxsenqBendwZWxibYl+bW5Wa2B3Vktqa09ST2hOWXxoYk5VdWpMUFRVXmZ2g2ZdYXBoZ2BXaV1ba2hKRWpaYmRXWVV5Wk5XbmpZXWxlXFllY150Zm1kcWZycHSAd3CahHZ/fnh/fIWHfXVzgoh/lYJuc3h6enNzhYeJiIR4gH12j399hImOhIKEe36Lg3t3fHd3mp2XeoqDh2l3fnxshIWUgHKPgnGGgn6Cf29mbGdXXVtcW1RkcGVfWGNzdWl1cGRlY1dcXGiAcG9ygHOJZGV4fml0dnNzg4V4gYR5d3R1bmt7cGJoa2eGdI2EbmZdX31ve4l9aGx3ZmlkVVdycI2nfIR8dpaQc3xze3lte3qQhHaXfIeGgoaDfXVwcm1ndV1taF9sdWRnZml6b3tyWWeBd3RncIB4gnVid4WKfJSAbotqbXqAcGVyZWBseWZydol7fWF1g3Zpa3F0enB5eHJ9Zn5/f3h2bmNlYW2GfG1rVmtjcVNMaWtQTE5wR157ZmFNVXRjSk5TV2Bqd31lXWdzaWVfVmNXYXBdTEtrWGNhVVRVc1dNWHVkWl9rYFxaY2Vfd2ZtYnBpc29yfnR0mYF3f4B4f36GhHp9doKEfpiFbnJ0e3p0cYWFj4KAeot1dJF/fYGUjoCFhHx+jIZ6foB2e6OlinmIhoVsdXx7dYSCjHpuhXN6hX2Bg3VuamhlVl1bW1pTYm5lW1hhdHtqaG1oX2JXX1tpgGprb4BnbGFoeXlrdHR0b4WBen99dnVuemhqeWpfZW5ogXePhGdlWGJ3aX6Gem9pb2ZmXVVYb2iPp3aBenyQjnl1b35vcnV5jn93lHSFgn+FiHVqcnZnaG9cbWVebXNfZ2FqeGh7bVttg3NzaW+Afnl3YXeEhHiPhHOIcW95f3FicGhbbnZkcHOIe3hhcoBwZ2p4c3Frd3Z0d2ODe353dnBkY2NufH1ra1VqY2dTS2xoUEdSbEVheGVhTVNyXUpNVFlla3d6ZV5tcGlkXVZfVW5uV0tTaFhmXlhNVWxVS1x5X1tfa11dW2JlYHpobGFvb3Vub3d1epd9d4CBeoB/h4Z6eXqDfoGThHF0dH56d3SFiJB9gH2QbHOVgXuCn4V/h32AfoaCgIp7doSsn396iIeEbHKCenaBgIF1bodvfIBziYBqb21kZFhfWlpaVWJqZ1taX3WCaV5tbFxhVlxca4FmcnR9aWpda3Z2aHR3cm6Ge359eXZybXpoaXdmXWRyZ3p3koFjY1Rlb2aChHd2ZmhpYFdWWWhkkKdufniAi456cHB8ZnhueYt6do5xg31+f4ZuZHZzZGhoXWxiXW9vW2dfbXVlemhddIBvcmtxe351dWJ0hYp6h4aAf3dydX50YXBsWXByYnFxhHt1ZHKAbGFsem9qaHl3dHJmhXV6enVxZGFkbnN+amxUaV9eVExzY1FHV2JHYnZlYEtUcFhKTFhYZ2t2emRlbnBmY1pYXVh2ZVRKXGNYaFhZSVdlUUhieFpdX2xbXlxiZF6AaWpfb3R5bW9udoOXeXKBgH1/iIuGfXZ2hniHjH1zdXWBeXp6goyOfX6EiWp0loF7ip19foV5gHp+fIaIc3GProx7e4aQfmZyiHp0fX12cm+GbHt+bI96YnBvYWVeZVZZWVdjZmtgXV1zhmlYcG1bX1dbXGx7Y3B3dmxiW21zdGd1dnFthXl/gHl3bm90ZWl0ZVtndGZ2dpF6X11SZmZqgoF0fWFjaVxUWF5iY5ClaHl0goWQeG1ueWd3bXuEenSIcoB4fHh/aGV2bWBmYV9qYF10a1llXW9vYnplW3d8a25ucHh4dHRkcoOSfoeCiHp2b3F9cmF3ZFpub2FwcYF8c2VxgGRebnZpY2Z5enRtboF1c31zcWJeZm5vfWVpVGlZWVROeF9SSlpZSGJ0Y2BJVG1USUxaVmlscntibGxzYmFZWlthdltTS2RdWGlTV0hZYE5HaXVYXmFtW1tfYmNdhWloYW54eWxva3aBkHhtg36AgZKIhIF2dYl0jIZzcXZ2gXd8fX6Mj4B+k35weJaDfZmSeYCAeHl+f3OIg3NwmaJ7en+JlXlkdYh5c3h2bHRvfmx5fHCRcl5wbmBnYmxUWlpXaGNtZVxccolmUnJtW1pYWGBsdmRpdWpqXlptc3FsdHR0a4Z8foB8d29ubGRpcWNba3JkdHaPc1tXVGRgcn9+coJcYWNdU1pgXGSTn2VycYWEkXRsanlsb296e3txgHZ/cnp6emRldWdeYlthaFxed2hXYl1vaGF3YVt8dmppcm93dHN0aHCBlIKGfoR2cmpwe2xmdldcam1icHKAenNlb35bYHBxYl5pcHxsbHR+cnF4a3BgXGVsbXthZ1RnVVdSUHZbU1BaUkhjc2JgR1ZrUUlQWlVra2t8ZW1vcWBbWlhZbHBXUlBmV1doU1RGWlxPSHJ1WF9jbWNYYWBhXoxqY2RteXhrb2l1eYZ7a4N9gIWZfIKEeX2Ibo+GcW93enx0goJ8i4+DgpZ0eIKUhYGfiXWBgIF0f4Jwh4J1b6KXdHuGi4d7ZniLb257b2Z4cHpsc3ZzjWtedG5hZ2VrU11bVWdibGxbXHGMZE5vbVxWWFVnaXRoYnRlZV1abnVucHV1emyHfH98iHeQc2Nla29hXG5tY3N4h2taVFZjY3d8fHCFXGNfY1RbYFpjlpVjbnCDhYpzamh6bmVydnN7a3l0dW96fnVfZnJjW15XYmRZYXVmVV9gbWRhcV1dfnBoaXNxc3B1dWtthJOBiHuFcXJmbnxvcW5TWmVqZXFzgHZzYmx2VWJxa1tebmV8ZWx1fHJycmptYFlkamp4XmZUZVVWUFVuWFFXVFBIZXJfYUZXak9IWFRWbWlkfGlrd2thV1xVW3RjU1JXaVFZZlRTSFpbUE54d1tfZmxpWmJgXl6PbmJma3l1bm9pdnZ/fm2DgH6Hl3t/h4GKf2uTiHJndIB7dYCDfYmPf4uTcn2KkYWHn4Z7f4aMc4CGc32CdW6ljHOBjYx3eG57jWBkfHFmenN5bG1xdoNnZHxsY2ZnaFNfX1RnYGxvXF5ujmhNaWxgVVZTb2Zza2V4ZGVdWXB0bXJ7eHNtiHuAd5x7emxhZWxtXmBuamVweX5nWlZYYGt4e3tvg15iXmdWWWBYZJyIYmtxgYd9d2tqd2xbdnFreWl1cm1ve4ByWGptX1ldVmJkWGVxY1ReYWliYmxaYH5sZmtzdW5td3ZraIWMf4h6h21xZW97bHFsYlhfaGhvc4B0c15pbVNlcGVVYm5heWJwdXt1a29sal9YYWdodV1lVmJWU05ZZlNPXU9PSGVvXWNHWWlNSV9LWG1kX3hobn1kYFVeVF10W1RSYGZOXWFUU0pcWlFadXVdX2ZtaFhiYVtejnFjZ2p3cXNuaHZzeYNzgoN7iI1+fIqHjnpukIp0bHOCdH9/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo2NjY2NjY6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjI2NjY6Pj4+Ojo6NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERFQjEvMDAwMC5ccG5tbm5xSSwwMC8vLEmFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIaCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTUzHhwcHB0dG1NqZ2dnZ2s8GBwcHR0YO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmHiIiIiIaNkJCQkJCQjIeHiIeHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhoWDg4OEhISEiIqKioqJiYaCgoKCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkpKRiYeOipCSk5CKkI2OjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6Ojo6Ojo+Pj4+OjY2NjY2NjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjIiIiImOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCRjYiNiZCJi5CPj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkI+HjYyJj4aNj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+f35/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjISLjImNho+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiIuOjI2Ljo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Ojo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7e3x9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6e3t8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e318fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7fH1+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6Qj42KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJWVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTlJKTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkpKRkpKDkJOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpKSkpKLipKSjXqRkpKRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCRkoh3kZKEd4+RkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pi26KkXp1jJCPj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4+KaICPdnWJj46Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjYlpd4x1dYaNjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHgGhtgXFzgYWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXV2d3VoYGdgZGluZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZl9rbGBqaGlnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN2eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpcY3RtZXFwZV1aWV9bWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVJocGxhcHVrVFBRVFBQTk5PTUtNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OVGZsbmNvc3JXTk5OT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZCRUlNYWhrcXFvbllMTlJWUE9PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVBS09HSE5haGZwb2toY15jaFdISEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj5AVF5ZXWhtaW5tbGpqbGxWRkJERUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7PDxFWWZpa29qbW1qamtsV0JGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs8Tmlub2ttbGlpbFVAP0NGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojg3SWlvbXBua2tXPDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT08Smdyd3NsXD89PT4/QEFAPz9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXR0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO11uQD5ERT8+R1t5clRAPDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXZIODs6PT5APWdcOTw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUTw9PUlMRUZ2dk03ODg6PD8/U1U5Oz08Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/eXx3Vjw9Pz0+P0JVWzo7PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoKEg4KDgH1dPkBDQEA/PlpjPjs9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2FdUxBQ0VAPz9QcnZMP0NFSUpJSU1NS0VERkdIRkdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRWVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVxQkRFRENXdYeIiH9YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+fn19fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIpsQUFVdIeJh4eHiINXSExNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElISEdIRkZGSEpJSUlJSF1vb3FydHZ3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINVbIWHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD0+QEFBQEJEPz4/REZIREVHSUpJSUhISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpVgYOEhIKChYaGg4KGhYSFhoaGh4iGinVJSUZCPz9APz8+PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTo/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTFNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf3+AflFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDhISFhYaHiIiIiYmMjmZCQj44ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJiouMi4qJiouMiVQ6ODY1Njc2NjY0Njc2MzU2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIGDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2Ojk3NjY3NjU6OTo7Ojs4OTg5ODc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd5e3p7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhISGiYqKiIeIiImKioyKiYmMej45ODg7PD0+OTo7Ozg5Ozk6Ozo5OTs6OT09PT47Ozw9Oj47OTs7PDs8PDk5PDg6Ojs6OTk5PD88PEFCRElKTUtJS0xXb3JzdXR2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gH+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkFDRUVBQUFCPkBCQEA+PT0+QD8/P0A/QD09P0I/QUE/QUA9QEBAPj9BPT48Ozo7OTk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4qKi4qLXj5DR0lLSklGR0dERkhHRUJAQENFQ0JBQkNCP0BESERDRURFRUJGRUZERUZEQEI/PEA+PT9APj8/Pz4/Pj46Oz08YHFxdHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGWIWCg4SFhYaGh4mJiIeGhoaHiYmKi4yNjIyLioqIV0dMTU1LTklJS0lJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJAQUNCRENDRERDQD07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f3+AgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkJHR0lZhYKDhYWGh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1PTkxOS0pMSklJSEpGREdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA5ODw7Oz06P0A+P0BDRklJUF+Cg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1yTlFPTkxMS0xKSEdFSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhISFhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4tfUlJQTU5NS0pHRkJHSkdMSkZLTktKSkpNTUxPUE5ISUtMT1FRUFFPT0pISkpNSkxGR0hHRkdIRkVFQkFCQlxvcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxYVlJSVFJPTEtKREVGS09OT1dVUVBPUVNSTVNUT01STFBTVVZSU1FQTEpNTU1LTkdHSkZGSUpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHSEdHSEY+QEI9Pz09Qj9DQ0ZWTkZOT1BUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hXVmthRVJRUVBJOztRU1JgdV1VVlRWWVlSWVhSWmZQVVdaXVJUV1FQTlJRUFBRS0xLSEhKSEVGSUlJSElpcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklJR0ZGRT8/QUFFQkNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJdXVZdWlZFUVlaW1lfVFpnUlZWWFVUVlRPT01KTEtJSUxNS09NU29zdnh5eHd6eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3lucFhaW1pSVFJWVlRaWnWDWVV9kGBcWF1fV0lWXV1bW19ZSVlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin9mWVlcWVNVVFdSUVdWY5aAUWVyWFpXX2dQYGZbW1hcZ2FHT1poZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlbXVRZVVZdWkxUWlRTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcXN2dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f4CAf39/gH5+e3h3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmJh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlRjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXG1ydXZ1dHR3e3p6e3t9e319fX59fX1+fX5/f39/f39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSENESEdIS0dEQkFEQU9RTVNkc3R2dXN0dnp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT09MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgmxNRz4/Ozs+QEA/Pz5qUUthRUZISUVCP0dMTUdNUVVJQkU/Pzw9PD09Pz0/QUNDQD88PUI+Sk1HVW51dXVzdHZ4enx7fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVVRXUVFXVVBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtMV01IR0BBPDk3NzU5OT07Ozs4OTg5PztCSD9cc3R1dnV2eHp8fHx9fHx9fX1+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZGSEJBR0lFRUZETVJPYVdSV1FQU1NSVVtPT1FXUE1JREY+Ojk2NTg3OTc5OjM2Njc5NTxCPWVzdHZ4d3l6e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFJMWFlaVlhYVlhZXVdYWGhza11WYXNrYWFfXmRhX15ZVVFNT05MSUhKS0lIRkNRUFNbV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NTc1Nzg1OTlHbXF0eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1RWWFhZU1ZUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTFBSUk9NTU5OTkxKRlFQVVlTVE5KT09VU1RcVlJVU1JPTUxJSEhGPz49Ojc4NzY1OTk2NzY3NVdwcHN3eXp7fH19fX18fX18fX19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUFBQTk5PVExNSVBPU1RVMj1YTUlBUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMS09RUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjQ1NjY6ZG9xdXd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkZBRkdHSEZKREhKSEdFSExIS0lGTE1QTUcvRV9SPjNAPmpvYVJSUUBGVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PT08OT1HNjY3N0RtcHR2eXt7fHx9fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dXVllZVlFRUU9APjs9P0FCQUNAQkVEQUBHSEdIRkZISk1LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydXl7e3t9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT09NUVNMVFZUV1dVTExLST05ODc7P0A+PD1BQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFBSYlxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSUpMTEpGRkZFP0JDPjxCRj9CP0FkcHR3e3p7e3x7enp3fHd5fX57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47P0JAQD5BRElFQ0hHSUZJRUJCPz49Q0JBR0pFTU9iZVFNTk5XS0xNS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7ent6d3R4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxAQkJBREVHS0ZDSElHR0hDQz9CPz9AQT5ERUNLTlFUTEpJTVRHSUlKTEpLTElKTE1PUFJQS0dDTEdDQkpKTE1PTUlKSUdDQ0NESEpNTElZcm13eXh6e3t5fHZycHVydHl5dnhqcW5rbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFISkNHSEhHSktJSktER0I9Pj06Ojo7QEI/PUJCQkNIRkpMSkRJSUZHR0NDO0FAQj5AQENEQ0lNUEdJS0dIS0RISUtNSEpMSElKS0pNXVJISERORkFDS0tNTVBOS01KS0ZHR0pNTlFOTGJtaXZ2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLREZFR0VGRkdFR0JDQD08PTk6OjpAQ0A+QkNERUlGSkpMRkhJR0ZGREI7QkNDPkBERENFR0xOSEtOSERIRUlMTk1ISUxHRkdJSUxOS0pIRU5JQkZNTE9NT01OTk1LSUhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZmtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pDRUZFQkNCRUBEQj5APzo7Oz06PT5DQT5BQ0VHSkZJSEtIR0dHRkVDQD1FRUI+QkRDQ0VHSElHTVBKRkZHS05PS0ZISUZFREVJSkhLSUdIUEtESU1MUE1PTk9PTktKSE1SVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSERFR0NCQEJEPUJBPkA9Ojo9Pzs+PkBCPkFCREdLRklGSUhGRkdFQ0NBQUZGQ0JDQkRFRUdHSEZMUUxJT0pKTExJR0hFRkVEQ0lJSEtKR0tSTUJOT01QT09PTk9PS0tLT1VXVlVUWF9eXGlhbWluaHJzYmVmZWRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HR0ZIQkJAREU8QUBAQzw4OT0+OT88P0JAQEBERkhFSEZGSEdFRURDRUNESUZDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISUZDSUpJS01LUFNORFFSUFFSTk9NTlBNTE1TV1ZXWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW96TUhHSEhCQkJGRTxAQkJEPDc6Pj06PjpAQj4/P0NFRkRGRERIRkRFQ0RFRUdKRUVKR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xMT09SVE9JU1VTUVNQUU1OUU5NUFdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnaWloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN1bnByc3lOSUlHSURBQ0hFPEBFQkU9ODo+Pj08PEFCPT8+QUJGQ0VCQ0hFQ0VFRkdHR0lGSEtIQ0lIR0lIRkRIS0lHS0hNTEpLTEhMS01LSk5MT05QUlVWT0tVV1RRVFFSTE9RUE9UWVpaXFpZXF5eXmBjXlxhY2tiYGRnaHKFaGdqZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdU1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkI8QD5BQUZDRURESUVGRUdFSEhGSEdJS0pGSkhIS0hGRkxISEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd292SktMSkxHQkVERTxARkREQzs/P0FAQEBEQT9CP0FDSEJGRUZIRklGRkRJSEdJSEpNSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QS09QUlVYVk1OVFZUU1JRUExOVFNSV1teXl9dXWBfYGFhX2FjZWJjaGJkaWpndotsa2lnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dLTUxMTUdDQ0FEPD9FRUVDPUFBQ0JCQ0VBQkRBQUVHQ0dIR0dGSkdDR0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkJFR0NDSUZDSEpKSUlLR0RLSkdISklJS0hKSk5MTkxJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjUlBhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KS0pGQj9AQj89REVGRENDQkVFREZCRUZIQ0RKRUVKTE1LTExHR01JR0lLSEtLSUtKTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXhta3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEQEFCPz5CRkdCRkNFREVFRENISEdERUtHR0xNTktNTUdKTkhKS0pJTEtKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncHBqaW9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9QEBGR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xNSUxLSUpNSUpKSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSURFRUNBQjxCQEJGREdGTEhFQ0NIS0hIRkpMTEZOS0xTUkxHTExITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFAPkNEQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTUxJS0tLU2tiWmleX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcb2ppZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRUVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRkhIS01JSEpJS0tJSElHS0tMTEZIS0tMTExLSUtMTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFlcmlUWVdcW1xVWVpdWF1cXGNmYWFlYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NIREZHRElLTEhGREdLTEhER0hQS0xPS0xXTElGRUhJSkhJS0lMSkhGR0dJR0hJRUZMSUpLTkxJT1xXXlBcW2BeT1hZU1xcYl5NWVpNWGFSSllhWlNgZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRUlFR0dGS0pLSEVFSkpKR0VISFBKTU1KTVNJSEZBSEZKSUtMSUxKSEZFSUdERkdFRUpIQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOXlxeU1teY15aXWBjYFlfYltgXltUWFdZXl1jYmNhY2ZpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNHR0VIR0hLSUlJREZLS0tGRklKTktOTEhMTkhIRj5HR0xJS0xKS0tJR0VJRENEREJHSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV5eY2FgYmJiY2NlWlFZVlVcWl1jYF9fY2ViaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFSElGR0hIRkZKR0hGSEtJTERES0pNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0dDREBEQUhJQj9JSkhPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU5eUU9cX2FjZGNjYlxkY2JkY2ZYUVVUUltYWmFfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0VLSkZGRkhHR0lGRkZJTEpORURLSkxOSkxJS0pISUZCSEhRTUtLT01LS0lIR0VEP0VDSUhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11WWWBSUV9fYWJhYGJiYGNiYWRkYlhPUVFRW1NbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBR0ZER01SSENRSkZISEhFRktKTVBFR0lKS05MTElMS0lJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VDV1VFXFReU1ZfWE5UVU5aW01KS1RgYVtfWF5eYV1PWWJcYGBfYmNiXWFiV19fVFBOT1BYUl1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQQ1ZeSUdHSERGTUpQUEVJSUtLTkxLS01MSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0FFRkJNSEJLTFBPTkxGTUZHSUpIR0xMTU9QSUxPUE9TUExRU1JVWllXWVhYZFdPU1RQUE5NT1VUW1lZW11cYGFkZWNnY2tscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hNR0hKSEdNTFFRSUxLTEtOTlVOT0tLTEdHS1BUU05QT05PTk9IS0ZgRURfTERmY0VNW0leW3JtT01VbVlMQ1BgVWxXZ0pdV1VeRExRVUxNVFZRUlRYV1RYVVRcVVBmWmhoZFhTa1NWVlVbXFtgYGFhYWJgZmhmbmxocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09TSUtGYFRISk9KSU9NUlFLTUxMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUX9RSXxZWXJzWFBtSHFub2FWUHFxc1BDa3NtcXRwU29fW25YXVZcWFVraFVdVmNaYFlbYFZVV39qdHV1X192X1hhXFxmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1OQkRMTEZKTEZSVkxLTklLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWVJUUXZndGxwYm5malFyT013bWpycHNycXJwb2+AXWZ6dXhxcXpxfnN9a3V9YlJnfGVzc29zcnt8b315b39yX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQTk1NSk5WXllVTFFTTllaTVNTUk5MT0lRUlRZV1dQVFBQUFFLSGd4bGN4cm1aS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JSaXtsaWp6en1seHp/cGhvWHZ2anV1cIBgcmd9aWx4fG9eX19iYVtdYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0JFUFBISktKTFFPT09NUFpgWlhLVFdQYV5SVlFZU0xPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VEtoeH14YHl7c25hXm1vY1JncXVubXlwd2x2dHRxbG1cdH56a215fGt0bXxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUElMTUtMUVFRUFBRV1xZVU1VWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGV8aXJ8XVRLbGB2dWtpdnx7bX54a3xwXV5eYltfYmRkZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxnbW1yfGttaGt7dG1ta21PSEpLSElJSFFQTE5PTEtTU1NPU1JXUlZUUFdbVlZUVFRhYFBOTktUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1dYUl1ZV11WVE9ZUldXV1hZXltncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlYUE9MTVZUUU5VU05PTUxRUEtKUlJLUU1LS09SVVJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1BRVVZWU1pRT1NSV1ZUWVZUWVVUUlVUVFRXWFddWl5hXVxaWlxcYGNcXWJjZGZkZWRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFRRUEtPV1NQTlVQTlFOS1NQTU9WVE5RTk1OUVRQVVFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RPVFVYVVVaVVdZVVJSWFZVV1tZWl9dVVleXF5dXF1gYV5bYmJjZ2ZkZGJYX2FiXmBoZWZkYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FaWVhXWFpaWFlWXGpkVlhZWldWVFRQS09WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVk5XUlRVVU9OTVFTVVVUVFJUWFZaXVxaVldRUldYVltbV1FUVlZWVllUV1hVU1JYVlVaXVldX15WXl1eYFxcYF9fX1piYmRoZ2RkYVliYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF9bWVZWWFJMTVZTTU5ST1FST0xQU1JVWlVTUFBMUFdWUldTU1NYTU9QUlRYVVVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpXVlxeWl5fYFVhXGFhXWBiYF1gXWNhY2doZGZgWWNgYV9fZWRfYGNbWlxbXFlaWFlXXFlcW2BeX1teXmFgX2JcWWBaUU5PTlZRUFRST1VUU1BXXF1cWF5cX1dcXmpxd3mAY1xbVlZZUU5PVlNOUVFQUlRSS1FUVFlaV1VPUk5TWFdUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVVZcXFZSVFZWWFlTVFlcVFNTXVhaXV5cYGBgVmJbY2JeYWNfXWJhYl9kZmlkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJRV1JUUFtdXl5bYFxgVVxdaWpyfXNsZ1xVWFdRT1JaU1JRVFJUVVRLUVdWW1paU09TUlZWVlRPVlJTWlJUVVRYXVdYWFNYXFheXVlaXVRVTlZXV19bWFJVVVlZWVVXWVtUU1ZeWV1dYF1iYl5ZYFtlYl9kZF9eY2NhXWVmaWRmXV5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVZVVFRU1xUVVRVVFZZV0xSWlddWlxST1VTWFZWVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paVFVWWllaV1hZXFZUWl5cXmBhX2RjXF5dXWVhYmZkXl9kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdX1RdX2JlZXaCe2hYWVlTVlNWXFdXV1ZWV11YUFVdWl5dXVRTWFNXVlRTVFhSU1ZUWFhYXV5YXVtWXV9YX19YXVZRWVRZWlphWVxVVlhbWltZWVpaWFZdXl9eY2JhZGRcYlxgZmFkZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVdWXGBhYmNhY15fVltgZGFfenVvaFlcWlVXVVdbWllcWVhZYFdQVl5cYGFcVFVYUFVXVVNXVlJTVVdaWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVpZWV5fYGBkYmNlZWJkWmJmY2dmZV5hYmBjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBrZmheXF1bVldYWVxcXF9bWVtiVlRYXl1hY1xSVllRV1ZXVldWVFZUWF1cXmBgXWFcV2FeW15cW15YVlhYW1tfYFxfWFldXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNgYGVjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlJXWVZXWlhbXFhXWV5gYmFlYWRhXV5ZYmNiX2FgYV5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBYV1hZWVdWWFZdXV5gYWBfYl5ZYV1dXlldXllYVldbXGBeXV9aWl5dXl5hXFtbWlxgYl5iZGNlZmVmYlpkZmdpZ2NfY15hZmRaaWliZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMV1dcWVdcW1xdWldcXV9gYmRiYmFdYFhiY2JgY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpjZWNgUlxZT1hYWltaWldaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfX1xaXl5gYmNcXFdcXmBiYmNlZGdlZWZkXGVmaGlmY2JiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hQWFpdYWNmZnJrf0pZV11bWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBjY2JcW1taV1hpcWBcYF9dXGFjX15ZWWRlZGFTX1pRWVhcXVxbWltbY2BjYmNgYmRhYGNeYFxeXl9aWFZbX15dYWFfXVtgYWJlYl9dVFxgYGNkZGZkZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoY2hoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7e3p7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7fHt6enp6enp7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmJiYyNjY2NjYuwwb6+vr7BooqMjIyMjYl+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyNj5CQkJCQjrvOy8vMzM+qjZCQkJCSi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eXh4eHh3d3d3d3d3eHl5eXl5endvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH19fX19fXx8gIOCgoKCgoB8fX19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dXV5dnZ2ent4e3h3dnh7eHl5en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t6enp6enl5eXl6enx7fHx8e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx7e3t5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3eXx6e3h7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8eXl7d3x5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en97eXt5fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5fHt5eXl5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKCgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4SEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZF90fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHd8e3t7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidX18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJycXBvcHFxcXN0c3NzcnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoKBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4b3BwcnJycnFxcHBxcXFycnNzc3NxcXJwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm5ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3JycnGFc29vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBxcnJ6e3FxeJZxb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFycH6WcW+DnHJvcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFwdqR7bpCfdm9wcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXB2qohvmaF6b3FwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycHarlXGdon1wcnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3N0equie56ifXJ0c3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHh4eHiUsqWkq6d+e3t5enl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fn18fHx9f6amorKkqIt6e3t6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX6GqJyjq5qem35/f398fH2Ag4KAgH99fX18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgY2jk6Ctn6GfhH+AgYB+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f39/gYGAip6MlK6clpuHfX59fn9/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f4ODgH6IpaKZn5uWnJSDhYmNhX+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSkpCLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GEi5CWmKSupqKbnaCnqaGhoJKBf4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYKElKmwsKSdop2en6Gio5+SgoOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoCClJ+fnZmhnZ2gn52dk4eHh4eHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGCjZSVl5+dnqGem5WIh4mIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEhISEiJOWnZeanpyShIOFhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4KCgoKCi5WXi5GcloSBgoCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4F/gIB/h5KKj5KFgYODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDipaIhIKEgoF+gomMgoKCgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAio6AgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqEhIODg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgI+Mg4F/fn18fYycjYCCgYKCg4CPk4GCgoKCg4OBgYGCg4WDg4ODg4OEhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZeMgIOBgYGBgpmZhIGCgYKCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqHg4ODhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4p+hISDhIKDg4OFjY2FgoKDg4KDg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUk5KSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhYWCgH59fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhoaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMi4iFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFgoGBfn2Bh4aEgH5+f39/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWGhoWFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhYWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6Fgn9/f39/f39+gICEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4aHhoaGhoeGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CBgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISEgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aHhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCMh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjImBgIGCgoGBgYGAf4B/f357eoCGiIiKiomJiYiJiYmJiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI6QjoqGhIaFg4GBgoGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgYSEgoKCgoKCgoB/fn19fX1+fXx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYqJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoODhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX5+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDhISCgYGBgYGDg4SDg5GSkI6PjouHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiYuKhoSGhIKGhoKChISDg4ODgoKBfn19f4B+fn5+fXx9fXx5fIOGhoeEg4GDg4SFhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoKBgoKDg4WDhISFhISGhISEhYOCg4GCg4OEhYSHkpGPjY+MioWEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4GDg4ODg4KCf31+f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIKDgoCAgIGAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn5/goODgoODg4J9fX5/gICBgH59fX19fn18enp6f4KCgX9/f39+f3+Afn2Af3+AgIF/gICBf39/gIF+fX1/gIGAf36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX5/gH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gICAf39/fn59fn9+f4B/fn9/gH+BgH9+fn5/f359fH5/gH9+fn9/gH9/f3+AgH+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYKEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+BgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gH9/f35+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f3+AgH9+gH9/fn5+f39+fn59fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gYCBgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf3+Af4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6eXl5eXmAgoKChIOBgoKBf4GAgYGBg4KCg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIF/goJ/gYCBf4B/f4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4KCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeIh4eHhn99gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjISDhISEl5eDg4SBfX6BgoKBgYGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoSDgoODgoKCgoOCgoKSkIuIiYeJh4aGhIaFhYSEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeIiIaGh4eHhoeFf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fYGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CAgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fX5+e4iRfHyOloB9fn+ChoqFg4OEgoGDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfXx+f4OEfHyBgoSCgH+Hg32DgX+CgoGDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4SFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9fH59fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fIB/goCCgH59e4qCfYB/foGAgIGCgYKAgIGBgH+LlJCMi46OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/f4B8eoGBeHuAgoGDhYSDhYWGh4SFgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIKAgX5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gZSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgICAgH9/f317en2AgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYODgIGBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f36MhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX6Afn9+hJKNjIyPjYuKhoSGhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fnx7fHx8e3t6fX+AgISDgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2MjI2LioiEhISDhISDg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9e3x8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgYKBhYaFhoaGh4WBhJGPjYqKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+fn58fHx8fH18fn57fHt8fHx8fXx9fH58fXx7e3t8ent8e3t9en1+fn+AgIOHiYmJiomKiYWIkY6MiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn2AgIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fXx9fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4eLi4uKiYyRj42KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGCgn9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3t5enl4eXt+f4ODhIeJioeJjpCNi4mJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf319gH58f3+Jg39+g5CEhIOBf359fI2HfX1+fX18f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjoqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKFhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIKAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOBgICAg4F/gIGEgX5+gH9+foB+fX5+gIF/gX5/gH9+f4B/fX9/f39/gH5/f4B+fH18fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fHt7e3x7fHx8fXyKioiIhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKEg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICBgICAf358fX19fX5+fYJ9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fYmHh4WFh4WEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+f3+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4OEhIWEhIOFg4GCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xeXh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SDgYB/gH+AgX59fX6Afn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn19f35+hYWBgYB/gIOBf36BgH9+f36Af359e3p7enx7eoKFgIOCgoKDgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgIB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAgICBgYGCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfX9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYGEhIWEhISBg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2d3ZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF+fnx+f35+f4GCf4GBgoOHhYF/f35+gICBgYCAgICBgoGAgH6Agn9+gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgIB/f4GCgIB/fYCBfn+AgoKAgYOChIWGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXh5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgICAgICAe4B+gIB/gYCAf32Bf35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDg4ODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWGhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgIB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af319foCCf36AgH9+goSCgoOFhYKCfn19e3t8fHp3fHl3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB+gH99fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KBhIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGg4WDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgYGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgoGCg4B/goGEg4OEgYGDgYKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGCgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIODhoODg4KChIGEg4GCgICCgYSBgoKBgoF/gYCAgoGCgYGCgoCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCg4WGhIKDg4OEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHyAgX98fH16enx+gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYKGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISFhIGDhIWDhIaEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgoKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhISGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WFhISFh4aEhIWGhYV9d4aDhISCgYF9f357fHt+e3x8fX9+fXx+foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoOEg4SBfoCAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4KAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn18fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYOCgYSFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaHhIOEhYKBgoGAhIODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7e3t9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WEgYGDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoaGhYOEg4aChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhYWFg4SDg4SChISAf4KCf31+f35+f4R+e399fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1+f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7enp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt9fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fV1dXV1dXV1dXV1dXV1dbX19fX19fX19bW1tbW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi60dTU1NTU1NTU1NTU1NXJu729vb29vb29vb29vrSKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz44Pjo/P0E9P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6Oip8/T0tLS0tLS0tLS0tLUv6iqqqqqqqqqqqqqqqybU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSko6jP09LS0tLS0tLS0tLS1MGpq6urq6urq6urq6uunVhXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamsz9PS0tLS0tLS09PT09XCra+vr6+vr6+vr6+vsaFiYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tTV1dXV1dXV1dTT09PU09LS0tLS0tLS0tLS09PRzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7OztPU0M/Q1NLPz8/T0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXU1NTU1NTW1dbW1tbW1tbW1tfW1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztCmksXTyJSn0tHHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztKqnayUyZqsnLDRmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DJl5mFpqeXiJyexJKGnZzOz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI5NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0aSwvZeiwMmYmMW8yZeZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Q1bmYptaUlp/O0ZKZoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P0NGanbuzn8Ob2q2jv57V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NWnpKDTzYqSnsfLiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NLAnaLI1c3bpZmz0NujmbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPUpKCPuMiPp5qgrZCnmJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HIxqa9lZSMp6WooK+noqmd0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg1MqOk5eQqKGSjbrVmpKOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLUwq+ws9LUucfV09O5yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dTW1tbS0tXU09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKinqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqalo6OioqKioaCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpyenZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqanp6afm5qboqCalpaVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Gfl5KTkpeanJqXl5eYm5qZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ+hn5eRkZCUl5qdmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoaCZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSko6KhoZ6cm5WTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6SkpKKhoZ6bmpmYmZmYmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoaGfnpybm5qbm5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhn5+fnpyZmaKdm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCfoJ+foKCgoJ6bmZyxnpqbnJubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp6dnJ2kop+cmpmjrJ6cnJycnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZyampubqaObmpqco4uenZ2dnJ2cnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJmbmqaimpmbnpd0npydnpydnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJyYmJmZmpmjnpmZm6GOZJudnZ+enp2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZmZmJiYoZqXmpyjglyYoJ2enp6fn56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmKKVlJuco3hakKKdnZ6en6Cfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eikY6dm6FxW4Wlnp6cm5uenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qaloySnY6ImZWcb2J2npaVkpGNkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCQj4uRj4uMj5CQkY6KiJaNfouKjnRoaYuIjIWHgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mHhIGGgoCCiZWQiXqKf4V2amSCgId9gIGSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgX1/c3yNjIR6i4SFc2pghop5fXyGjY2Lho2UkouQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouGiIaEiIiKhH+Cf3p7hod+d4eAgm9nW4KLgoSFio+LjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Ni4uHkoqHhpaIdmyBhX5oY1h/jo6KjYmJkI+Oj5SUmJCVnJqdnqiusq+wtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnaCdk5eaoZqdnKKhlY+hi3NsfpiIZWBZgZGRjpGOi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqaeipaiprKqpr6CdppF8e4udmnJiX4eXlJefn6GknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6qspKGipamnp6ioqZyNeHuWjpZ4cG2TnZeeoaGop6Cioq6rq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqaikp6aZnaSmoqGgpKaKemZhjYOFY3Bzi52Wn5qZoqKgoJ+goaignJ6hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXFBVT1hPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatp6acnaacemZWTn57eU5faniam5yZm5+eoJ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1tVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq6xs66roqGskmtRSkl3dG9FUWFrkKOdnZ+dnqSioqGgopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY21qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKKqqqevt7a1tbazrquvq4JcSENHcmlmQ0ZYZn6fmpyblqKnpaepn6ObnqGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gqrK4vb28u7q/tK6xvJ5xUFdNRG9hX0hET2BvlZaTmpajq6i2raKjpKumpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmxwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW2vMHIwLu9xrq5uLyNYVmOckNsYF9OUldaZpGflqKkqKeguqaqq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PDub3D1NbHwMK8u7q6iFZ7wqpObm5nUVtkXVyIrKinrKKLlLWmq7S8sLW2qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV2bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwtXg2sq1vLzAwJJQi8C/YX2CeV1KaXBTerO4qJyCb5awo6axtqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH6Ef2lmaGFrbGdudXFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/w8LL29nKs8G8wMalVYKionCcj4V8RXeOVWursJR6Y3GrtKaqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8fnRrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExM3Pw724uL7Fr2N0e2uLt5KImVd7j11rkIVyYVqNt7WsrqWko6ikoJ+lmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt3bmtpZ3VaZnJ4c3lmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTFy8Krqa2yt55wcW1cpLiQiJ1oZ3JoaGplXldopLq1s6ypoqGtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbnh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcvLr5eZnJ2OdnBjYKqqjIuUcGBkZ2FdXFhVi7u8urysraaqu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGlpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzsObhoiDeWdfTWChmYeMi3NlYF5YV1hVZ7TJwLy+tLCwsMG+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVudGJdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jKtH5xal1RUEJcjIJ/gn1vZltYVFVVVInCwMC6ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVmY2pkYmptbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwsGSXlJNSEtBVXZpbnNvaGddWFRWU2CpwLi5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjY2NqYmdjW1paXFlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Bu7/AvLvGr25JRkRIQE1kWWBnZmJoZFlTUluMv7+6t7u+ubW4tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamZnaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wteNur66w7W5x7ecYEFARTtKXFNYYWFgZ2hcUlN+tMW8wb+8xLe2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVmb2llbGhYWE5LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNDEdarLvce4ubett49QQEE4TFhTU11fXmVoXVNhocHIw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdxa3NmYm1gXFRJS0pESkNDRz45Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrHKAvcjPwsC3rbWtfU8/OE1VUlNeYFthYl5VjLi9x8vHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHFmbGludG54Y2diXGNRS1RIRUVDR0I8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0pZucq7S0czKxLW6v66CTDxMV09UX2BZWltWb7e9wMPMysfFxsC5vrzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9jXmBhTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysGEcHKmzMzLzcrGwsLJvnVHR15QUlpiVlFSXKLCv8XAysnCw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3xgcWNbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u5rdvCvra+wL6+uqacqrO3xMCldnR3ncTGy8jBw8C/ycumbEtdUlBWZk5KWY/EwMDBv8rHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3hzaHBdW15dWVJGRENNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFtG2vzr22ucC8qn1uaG5tdIKYl3B3fJi+v8bAuL+8vcTDvKh0ZlhWY3BNW5DAxLy9v7/Dwr6+x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV7cG5pW19fWVNQQUZIR0tARUNIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbB1grS9tbXBpIZpWV5gTlNbXG9ydoKguLfCurO6t7q8vrq9sY1uZnSEb5m/xMK9u766uri1wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9mXVtUSj0/P0dGPUdDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmlhHiMorC1nGpmZ1VZX0lJTVFUbHWHprC3vrmytbG7uLu1ucCvn3Z5mq29w8XDwLy/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYlxeT0lCPz1JREZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Gp4d7do2hl19TQ1lVSGJqVU5ESWSOoayvtrq1s7Gru7i4tLjBu7uCdZu3vMHGwr65ubWtpayzsaawraieoJ+lrba1wre2tKWoq6iwtrOyura7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3ZybmNdZ1hdXVNPTUE+SkJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7OQgXmIj21NSkBlWUJQeIGTZ0xCXYKwtbO1srSvrLu5uLa5v8K3jXWErrW6u7i1srGtrJ+kpqedo6WdlpmZmp+prrmsq6ufpaikq66vp7Csr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWxdW2pUXVxQTkhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7i1lYyIhXtXRUJRiFhJSlh4jYFhQFakubO0s7CxrbC5uLa7t7q+sayqpK6tuK6pqqyro6ihnZ2dl5ehlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVWFjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yu6mYmZRnTD9UeXFOSUlLaJ1+WEVYs7uxrLOvrqyttraytLWuqKKdm5ubnKennp+oqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6aim6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3pjd2xuXVFoVFBOR1BNTEJQUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3BqqW9ZkVToYRQV0lLX0lYi2BlZoSvtaqytK6qq6+wsrOtpZyQlpKOl5+eoaCco6SfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6empeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+YnJmbpJmXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dn1ta3tkaFVSZE1KSEdPUk5KTkg8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCsxr/Lnk5BdZxuT21KTWNmdnRgXWJzkbKvrrO1qqasq6KbmZSNkJWWmJebn6Ghm52knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGlopuYnq+orrKrpaqqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3h8ZHl5YGJTVWBISUpLU1RJUlFNOT9CNjc8NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpcfGi1ZSS2ajWGZ9b3JbUWtjXGdiYGyRtLCwuKymoZydmpSXmpmPjZCVkYuNjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKqyrqOZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKT09VTFNNQjc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4t4VGpxd3ZvZHd2WFdiYGRpW1tWZ62urK+nn56ioJaQk5ugm5iXkZKfnKGjm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpafm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWp3dV1tWlFgSFJVSEZVVkpDTUc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCjfm6CcGBjV0xbUlpMTFFZUkhPTUearKqppJ+fmZKRk5iYlpWVjIiKjpWdnJ2dnpaemqagoKilsaqnrqOrrrawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+np6Wkn52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pdm1obVxYXENXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOem4hhV15lYFdNUUY9P0BDRD8+QlF3qa2pqqWfnp6io52enZqcm5STlJSdnZiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6qzraqzta+zrqqvo52rp7ayraKwpqCjr7GusKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3RycWhWXFFGVElESlBJP0VBNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFBGRTtCPkY8Pjk2Tn6qs6ejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeG2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3xMrJw8HGvrq1uru1u7ewtbKqurKuu7e/u7qruK2rqri6tbyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGtlWltGS0xFRFNNREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9cmlhV05FPklafG9hQT1cjq6soJmbm56emZeXl5KMjpaXk46NkIuCg4J3cnFtcI+mra60ucW7zcfLv8LMzc3Mx8nRzM3Mx8nFxczQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrCxcbGysjOv8jRzMfFx8XCvMPBv7+/tr6zrr/Aw8PHxMfErr+4sri8xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MREVQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ2VaWZcVElEQD9Kh56kmIOgsq2jnpyfmpeWlJKUlpGQj4yHg4OIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fS19LV1tPUyMzGzM3J0s3O083FyMrKwcfMx8nIxr/Ds7PIxMvLy8/Hyr++v73Bx8XNzMjJwMO/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2FTTEpEQz9DVLHRvbKvppycnKCkoZ2alJOVlIl9d3BrZWJocW9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s7U1tfU09HT1NTTz9LD0NPW2NXW0svJztHLxs3SytLV1tnW19PX2M7Sys/RzM/QzNPQv8jHysTMzMzOz8XGx7a/yr/SzczQxsnIwMTDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSUo+O0E4PTU1ODY7ODU6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqBZSUBBREFGUXeyr6ealJefnJqgoJ6bnJmViXdpY2BfX2BfXl9fXWJsdXRwcG9scnF1ksTIxtTW19fX09bQ1dTa1NTOz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ19fY0dfS2NnU1szPz8rN0svO0MDGwsjGzs7R0dLIy83AyszG08/MzsjFysfHyMzK1NTR1c/SzNPCucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6upqqooaOqZUM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cGVjYl9fYV9eYWBfYGBfYGZtcHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0crPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY19fLyM7Eyc/MyszAycDIys3O0MvQzc7Mzs/Iy9DQy87KwsnHyczLzNLTzdPR0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg2NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspayuvrSwwNjS19rc1s7NysPSz8HAsKmsramksXlIRkI7V46hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBgYWBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3N1MzO083L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXMwsjJw8zDxcjKy8/Kzc3QztPMxsnPzcjHy8XGwcbKzM3Q0cbQzs7NzNDFx8G4ub3Dwr3DubKyvrG7w8O1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWdgYHBoWVhoVk1HTElQUUI7Qz47Njg6ODo6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKifrZd4bHBye5GajYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNiYF9fYGFhYF9dW11ncnFxcnNwbXJ5pcfTz8vQ0NPUysXJycbGv8PFz87HxcfNytLIy87OxtHS0M3M1MrHy87Px8fP0svQz8a6xL/Gyb3Cx8nOxMLHwMfNyMTMyszPyMTE0MjGwsbIxL/Bx8zMzM/CysvJx8vQxMXHu8fDycnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vbnNzMbQ1dXZ2tvY0MnPz9HTyMK2u7uto7Z9aIOFpKuUjo2Wj4WDg4OBfYSEfnNfW15eXmBeYGNkY19cXV5fYGBfW1pcYWtycm9va2xvb3250cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLKycHBy9DFy8i/ucG7xse+v8bPy8O/w7vJx8m7yMfFysC+wsvGxcS+xr28wMPFzMXFvMDJw8XH0sXByb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVe3dydGZpWmFubVpcWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sa+2bF55faKRi5KWhnqAhYV/dnh1cnBfWltdYGBiY2RkZWRgW1xdXV9eYFtZWlxib3Jva2lscG9zj8e9ysXLwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8PJv8HJu7e7u8bDv7zBzcPGvr61wb3Du73Gu8O6s7zFxMLDt7+1tr6/u8zDvLW6yLq/vsvDwcbCxcnHycbQxsLMx7LHycPOzMHFw7+9srewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NWXllKRkpFR0tBRUJGSkA5OjY0Nzg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1tfNys7FycXHwbnFvautpV9kdYSTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNhYWRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmdvczAw7rAuK2wsaeqraynuLS2tLOztLu1vrG2sLWvsrzCvMHEvMC7tbK6vsC4x7m0u7bBwr23vMbBw7y1rrK1ur+0xLe7tau4vb7AvbG6trC2urPFvLauu7+1t7TFvL7CxcDDxcbHy8XAxca7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcbAv7q3ybaqsJhbaG+Kj4WIiXp4foaGd3eBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZrbm5yfKTHwLi4tbCrraeeoqmnnqqss62qrKm0rrexs6mupqyzvLq2w7m6urGrtbm7s8K6sMCxvry8trzHucK3raqosLLAtri9sLGosbO1u7yrrrWmrravu7Kwqrmwrbuuu7i7wMC+ucO/xsPFwbzGwsjKuMXHxb/Hw8O6xMbCu8bJzMuzucK9u7OJc3Z2a2lhYmxoWVdXW0FMS01KRUFDP0ZBOjk6OTk1NzU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx83Bw8a/xMTDw8rCycq/wLzCurO0tcOuqbCRW2p/koeOj3t4fYmFenuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWllaXGVub2hmZ2lrbnKBrbqwta6lpKenmqCkoJqcpautpKiiq6qsq7Cjpp+qrbW2sb25r7ewqK64tLS8uLS8r7i5tbK8wLLAr6Woo6uxsrOovaqrqKusrbSzpqiuoaSvqbKmp6iupai3rbGyt7q6u7K8vr6+xL+1wsHHyLe+v8W3xMO/u7/Ewr7EyMzKv7/DwMCph3N0cmppXWFvY1dWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HLvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairkmRtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9eXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWqpaylnpyhpJSdpJuXkaGjqaOjn6Wmp6atoJ2cpKassrC2t6exraiqtau0ubG2tq62ubKwurqxtqWgpJ+msaerqLmqpKenqKeyraCnpp+bpKasnp+no6Chsa2trLK0s7Swtb22u8HAsrq+w8GxubnCs8G+wLW4vL2+vMLHxMPEv8DEoIN4cGxiZl9rb2BVWV5ITmdPVEdGS0Y8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9tqCelJ2hprq2q7Ozu7PEz8nLwsa4tsfAzL+4ybe7xbizxLizv8CstbyyrKWvs62ho5JpcoaFhoB8eHVzb21qamlwaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dna21vh52pn5WVmqGWm6KYlY2eoaKnnKCfpKWip56bo5ugq7CtsbWkqaqqrKyktLitt7Css7Wus7WusKqfnp+jorKkpqm4raKmpqCorKuZoJ+emZ2fpZqZo5ybnrCpq6erq6ytsLK4r7i5urC2vLu6q7OyubO+tLaysba1v7a+wL3Dwru6vZeEenNrX2VeZGRYVFddSVdcS1BHSkpHQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vDw8++use4uL+3ssK0sbu8q7m6saKeqaunmJ6QbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3GMqJyTlJSal5qhlpaQm6KhqJ6cnaWnoqWcoKGbma+urq+yoaWjrqunorWwsrKsqK+zp7qzpragop6co6Gto6Kqtqujo6aepaajlpmdl5mbnaCal52cnZytoqunpKOmrauys6q1sLKrsrm0r6qvsrKzuLOuqayusriwura6vcC4s7GUhXp1Zl5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWjmKWxwrW2va20uMLMyMa/xbbBwMbOt8DEvbO5ubO/trG5u6yytK+fmqSqoJSaj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqGbk5OPlJaWn5eZlJegnqGclqChqaSfn6mdm5urp6+wq5ujpLiqoaCuqLaqp6etsaS4sKS3oKKbmZmqpqGarLmvoqGknKKfoJOUoZSWlpuYl5aXnJWfqp6ppKKdo6qqsK2otKuqp62zsKWrrrOxsLCur6eoqLKtsbSwvLS6uK6jlIF6dmReYVZZWFNSU0tNXkxPS0dHTExFPUE+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIy7LBwsGtvLu1u7y1ubmwr7CqnJmhqZSRiouAgHx3cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmmBlZKUi5GTlJqYnJWWnKCcn5agn6empKann52gpqCqr6afoqO3qKGhoqizoqWopbClsK6stJ6hnZWVqaGilK2xsZ+jo52emJuTi6GUkZOYmJOXl5mXnqecp6GimqSlpaukpbCnpaOrq62mqa6vr6uoqqqzpqasr7Sxrry1sa+voJJ6d3JlYVxaXVhOTFFHUWFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaasuLu8wcW6sbm1xMnJwMPGxce2xcSywr/Fq7e3vba9urq1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVJUUlVgYF9gYV9hYWNlaYCSkoiQjpOSk5yUlZajmaCXnaCloq2mpaWjpKOdqqulmp+lsaqgoZ6lqp6oop6trKmprq2ioqKVl6KbnJCrqbCcn6KfnpeZk4qekY2Sk5aQmJiTnKGjnaShopWgoaSlm6OrpaKkqqOrrqWusqmmpaamtKapqK2ztbS5urCqrJ6McnBvYFtXVlVSRlFOSFlbT1JJVEtTTEVGSUQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb7DyKyxuMG1vMC7tLSqrKaVmpuciIFyiIN7dGlpamxnamtta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5RWV1cXV1eX19fYmRtjY6DkIaPkI6Zk5SSnJqjnJuhqamrqKynqaakmaWvpZWZpa+poJyZm6Cer5mcq7Ogpaafo6ShlJOblpaSqaqtmpyfoaCblJCMmY6MkYySjZaVkJ6ioKOdm6OVm6CjoZehqKOjqKugq7Ckrbemo6SirK2qqKuvs7ezvrWzq6+YhXRzaFtYWVNVUkVYTFFbWE1UTlBMUFFJTklCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9u7O1pamglpeYl4d6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZH2LgIp+io+Jko2XkZeZoqCboKuqpq+sqLClqZqfraCVlqSpp52YkI+anq6XmKiqmZ+dlKWhnpKRkpGTlaeqpZqZmZ6elo2Mi5OGiI2Dj4uSlZGgnqGkmJWflZqhop6Um6WlqKiooLGwprG9qJ+jrLSqrqewtbC5tcCxrrGqkX5yc2JWVFVOUkpHVlBSUUxMV01KTE5SR01LQUNGREM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OspbG3qqWisaudqqepsrGktsa0ubqzysW5usHL0Mqxtre8vcHDsa+xt620tLuztKKjnJ2Xl5SDgHZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqf3l/dIiMhpCJl4mUk5ibmJ6pm6CrpqasnqiaoKack4+fo5qXl4WEkpujkJWjnZaWloiim5uTi46KkJqkp5yVlZebkZKHlI6LgYuOgJCLkpKSoJqgopaUmJiVoqaZjZmkpqimoaC0sqeyt6Gcorasqa2ksrKmtby1q6uxo4l5c25dTlFRTE9DTU5OUEtGTk5KSk1OUUhNSkFHS0hIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKWnpKqloKimpbOqorLDtbWys8bGtrrDyszGs6y5vbS3wK+tqbCepq66r66fmZqdlZSHe4NuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW5xdW+Dh4GIgJGEjoqUkZOeoY+bnKOipJmll6KclY2HmZqMc42Dfo6XloaRmpCUjo57mY+djIKJf4qYn6OekJOYloWNgpR+fnOJjnqQh5OQkJybmpqRlpCdjqOjjomaoKGjpJuitK+sr62fmKW4pqaxobCunLC8qqmvqpmDd3NjVk1ST1BOQ1NOTFBMQlBRSElNUk1ISkpESkxGSks9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGsrcOtp6Gmkp2mtqyjoI+VlpKPfnh+ZldWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11panFrfoR7c05Yco+Cl4aNnJeLlJGfmJ2VlJaVj5aJgJSJXztWb3yMlImAjJKMkIaGc4qFl4F5gXuGk52Tg5WOkZCDhn2TeHFwhYx9iYGRjY+XmpiTi5CJnYifmIeIlp6aoaCXp66praionpets6KmrZmsq5iotKKpraOTfnRuX1tOU1JXTERUSlBMTEZOT0lFTFFNS09KSUxQRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego66hpqaqoKepp6OpsKintMK5sLWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUnLGimpiGlI+Lh31zdV1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYGxuaHqBdE9CP3+VkpF9iJSNhIqNm46WlYmSiIaVhnmJf2BKUW54i5KEfYSNioV/f25+f5R4dXZ4hI2Zb1GNiIqGe354lHZnd4aIfoqJlouOkZKWjIOJiJWEm42ChJKalp6dlKSjqKmlpJ6bsKqhpKSRpqqWoqqcoqaoiXVtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2nKOnnZ+hr6GnqKWnqK+tqrW8tre3s8G7tqi6yLi2qKi1tqqyvaaelY1/iZOolpWKfo6Dgn14cG5YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3N1fmloXFSPiZSJdH+GgXyFjJOCkpqLj3uGj4B2gHhzb3ZwdI6OgXp+iquEeXtodnuOcHJteIGLjZJ4eoB7gHZzcpJ3aHWEhISFe5WKiIqNioB/hIuNgJSEfICPmJSclpGfnamen6CdoKmlnp2YjKekkqCglp6fpIByaGFdXUpXUFJIS1hST0pMTVJKSkpMUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZicn7Spr6mlraywsaq9tLK7uLa6tLGft7qyqp2drKmosrChmpGNlIGOnI6Rf3aGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmdo2WmI2OfWd5gXZ4gImQfYSYkoFxh498d3tva36tfXSQi397hpKBfH91ZnZ8hWxvZ3N8iYyHgGx5cX1xbXaPcWhxgX6OcEOLhIKDhX93d3qMhn2Me3V9jpKPmIuSmpujlpmdmp2eoZyWjYqkm46el46WmJB3b21mYlpYWFVRSlNVVE9QTlBWS05LTk9KUU9ITlBMRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlpylqaSgl5mPhZJ5iI6LinVxe211cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybIinqsB+dHlie3hvfHmJkHp9i4ZvbYySeXR5amqAgnGWkYuBfpaASZKYbmh4foJtaWRseYWQkoZrc2x8bnJ8hmlucH9zjImEhnt9fnt2b3R0hYJ5gXlwfI6MipODlpeYmpCSlpeZl52WjIOJnpGLko2GkJaAbmlvb29YVlhUUlFZT1JUVFJYVUxOSE1KTU5LQ0hNR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCjraqota+urLS/q7zDv6WimZWkl56NhIuUoaGZmJGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXF+niGKaaXN5ZX5wbX96i4l2goiGdGyaknRzfGpqnY9NeYWTiYSOZzF2hnNsfn6DdGZldX+EhIWAZmlsdWtxf3xocXF8bpKNj3xzfXxxcG51bYJ+d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trb2hlWFFaV1lZW01QVVZZWE5ISEVKSkhHQkBHRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakZmWo6iunrKep7qvq7KwwrG7w8ealo+UmYuOhnmEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHF7eGx9bHGDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooR2cYZ8h3x0jK2OiYBnZ2JqbnJtcIN1aXBYdXCOm5J3bH96fW1ybnCAe3N2bmJ2g3+GgIWQkIqKiZGLkYyLjoN1eIqOgH6DgH2Pe3JwcGxgW11eXFlYYF9STltaWFdMSElGSkc+QkFCSD9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW0qa6xrsGyu8HGlpCMlI+AiH1ugZCSiYOKh4+GdYKEbJWIiHt0eHhsd253Y2leSlBHPkA3NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx3iIh8foWDf4x+daKZeX6GgYWZhJqcYYaqn52Lg5CNeneIfomIjnOKl4+Del1kcnR6fHeKbWhqYnlvhpCCem6Bd3SEenB0eXhrbmlddod8h3yHh45/ipKXg42FjIZ9cYR/g311d3t8iXdwc3RmZ2BbW15UXGZeV1BUWFtVR0pLREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIyRnZ2fppGgqqCxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSPjHiDgHOghIp8fIF/cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmiEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqkiGrq+vi4GAk4qCi4KEkqmHgJiYipt0bX2Bhod9jmhnaHl/boaHgoVxhIZHbIB3cnl2aG1rX3Z9goh/h4SLeZSdnImLiJF/enWLdnx4bW93fX90dHJsW15dW2NjWGdlXFVQUFZZUERMS0ZOSUNGQ0NAQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fomFiJGOlpeSl6CdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWHBZXF5pjZOHlYCEgoWRk36FiJGBmpWCoaGYlZubpq2Tmruxp7vHw6iLjKGlj5SJgZF8cYOen5Gcf3aFhYuQiJBpaG+DgHWNh4SLcYWCd4d/e3aFfW52dWaAlI6GiYiHiIehq6KWiY6Yf3qCiXp5b2dreH56fnNsZV5aW11qXWFmX1lPS05XUlFJUEpETkdDSkRCQUREQTs6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShZKVf4qAkpuOg4CBjIqCiY2Df4l/bXBqXUJANC0tLy8uLzAyMjM0Nzc4Oz0/QkRISk5RUlNSU1NUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WX2N/Z2dtdZ2bj5qSk4uNjpqIko+di6CgkqOqpaOsk6m2oqjBw67Hr3i6lJp8jaGemYSThYKPoZ+TmJKEi4WPmpGWbHB1iYuCloyNj3ePhHFthYGKlpGDhYhyiKCWhpKJjo+WpLWpm42VooOHk4N9f2tqa3yAgYJzYl5kX1tna1xsbF5XS0dPUlFOTExGSVBDRE1GQUNFRkI9Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1hnF2koZ+l5aalZ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkYKAgIuMiYaQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOUFJUUFBRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZynpaKZoZeilJyep56oq5+orKmqtpervqu2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGJlqKamnd6fpSYkqGSlpiBlJ57d5WSq7KIjZeffZSdm46SlZikoqa1sJ2RmaiIlo+NgYhsc3J8f31xaF9dYV9hZ2RgZ2ZbUUVKS1BPSUlMRkZMQ0hMRkZDQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbnxhd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wMC8vLi4wMDE1PkFBTVFSU1FSU1RSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYWQd5WKo6eqtL24pK6srKeotKuwtrKyrbuxs72cs8Osu8nLt8O/uKWjsLKsraqji5aYhaamoKOXgaaZjaKrqKSIhZSkoaCqoKSpj5yxi5Wjp7e6m6CjsJKinaOekKOhq6+ssrWilKSqiJmJkoqVeXp9hX9oYWhcZWJdZGNeZ2ZfWk9ESUhTTkZITEZKR0VGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pvWHqFdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4WBjIWGh5KGgoSJhoiHh3BuYUBFNjQ8Mi8xMTAtLCstMS4tMz9DQU1VUVJTVVVWVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GSoISuo7OqssDHw6qzxbass7+zuL62v7TBtru6o7jFqLbJx7W+ubSoo7StsbGbmpKan4mnr6ullHafpJehrLKzmJaqraiutruyuqyvtaKxrLG1u7e1rrWgp6ejqJqpr62yube4p5u2qYyljpGTn4Z4goN1WmJkVmZhYWNfYGZfW1RJRERMVVFISUpESUdFQUBASkRCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFiY1d5dXGBlH2EhpJ1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeFgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRXE9RVVdVXFZPXlVJS0pBQD5HS0ZFRDs+QDdENz9CSkpFRldUUF6PpK2jsbTCtrjBzMm2u8S9s7PAt7fBtb6vt3Sxs6W6xaOwxrmxs7G0qKS1tqqxoKKWmqKSpbCtpq2rp6SYoKy0u6Kpsrq0u77Mv8XFvb2zwre6uL63ure5rKywprCqrb2wvbvCwqyZuqiUro+XmKuJfYJ9a1djYllqZWplV1tjWVZTSUdGTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldTWVVadmpwfo6EgY2DbnpzeYdiuKGZo4mVk5aTlJONkJaSh4Z7hoGNlYqBhIGKenyKh4Z8ioOBioOVfXd5dWVPXGRHRUw6UWNhW15TRj87SFBEW2NRUllYWmdZVGBgTVNQRUE/SUpIRUZBQEM8RTZCPkhHSkxTWlRdk6+4tbq4yb+6vcnMu7zAvLe1u7u2vbS6scZgdbKlsZqeqr2qpairqqOisrWhq6ielZafmZ+upaempZ+jlKKnsbSnsrO9tsG+08nJ08bCxczCysPAvr2/u7y3tK+4t7bDusa9w8iwnrmpoauOpKe2iYB/cmBiYl5YYV9pZ1JYYFZRVUlFRU5LQT5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaLf4N/g3h7i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWVtVVJtbV9uX1hnZVVZVUpEQktLSEZISEhHQkk5RD9IS1RUVlxaW5K5wLi9t8bAu7nKyrq2ura4ubK3tbSutraZZHWonK1wXqGtnJigopuknqqllKCfkJSOlpiXqJ+ln56amoOknaylqrCtt7C9udTRz9fPyczSzM/OysbAv8LKvcG8wcDExMXKv8jOs6S7sLSvm6u4vJl/emxeYVxZXWFaY2NRXGBTUEtDQkVGRTxART5BSEFARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vl5KQlG5sb3V1h7OsoaGfi5mcmYyNlZGbkoWKin6IhoyQi4h8gYRze4qDhXuJdIGJhpV/c3t4a211e2hyZWlsaWZqaWhgZmlobFpudJatpLyIh2dbb2hdWlpUSEtOT0pLUEtTUUhMQUpGS1BfXmJmaWKYt8ewuLO7vbWxxMa1sLmwsLursrGnqresjbWnnZunmk+anYyOn5WRppillYqTk4mQiY+RkZ6boZealZaGnpqnm6yvqLCns7TU1NTW0svQ1NXN08/NxcLJ0L7KycrJ0cfMzcLQ0riww7zEuaW2usOigm9kXV1eWWBYWWVaUV1XT09CQkdEQkg7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VWc5CQmIJocW95eYOgqp6ll4ybm5eLjZWRmo59iYuEjoqKi5CHe4SCcH+IgYZ7h3KDkYuPfXF4dWtxeH5xe214c2xpgXBtY2ltcHhpd3x+y7/C36duY3dvY1thYEpQUlVOWV5QXVxOUE5UUVVUW25tdoJxlq24rLOnsLaqrLzAsKu1pqS4pquuoKu0o46xrZqYmIyRk5GEjpuBjaaRnImDi4SKiYSLg5OVl5aTm5GcmJmZn56rrKSnoqytz9LV0c3M0tPT0NTRzsjD1NHHzdLT09fN0tHF0tbFwM7Hx8KovrfPnnpvZl5iXldfU11aT1BUUE5IPkBGQUJFPEBCPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OW3WGhYp3bHdwfX5/oZ6eoIuMmZOTjIuTj5aEeYWPkI2LioiRh3+Ce3J+gIGHeYR1hZKRiX9vdnJrc3x8d3tzgXdxa4BzcmlwcXp5cnq+y5p+jLKEdnKEd2hhal1DWlpbVmVjWGRqU1hdXGBkXmN3en6LgZmppKShn6CopaqwuKqltKOhraGjraGnsZ+JppqTkpGJkY+IgZSJapWijJmEgIV9kYODk5ati5WNlZqOhpKRnZensKGgoaWkqMjOz8jCy9HU0dTTztPNxtbTzNTY1tbY1NfVydTazcnX19HKrMPDy4xzb2NgX1hUWVNcUEtHSkpKQDs6O0RBRDxCQz5IQj5CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5aJj4qIjoePf3eDk5mKjYiIi4l+g3hze32DiHd/eoeRloCDbnhwbXV/dnh9dIV8eW2HdnRufXaEdXh8nbWMPEGLxaV+jHxpZVZJQ2ZjZWNnamRueFtfZmhrbmlugIOIkYudnqCdkJeYn6OkprKjpLOgoaWdoKmgorGchp6SkpKQi46LhoOPhH6cm4yNg4SFepR+gqmVo4ySipeSi32XipqRq7OYmpunnKe9w8a5tsbN0tDS0MvSy8nUztHV2tfX2NTZ2M3Y287J2trS1b7LzLR4d29lXVpSVlFaV0ZHSklFRT06NzlAQUI5R0RARUNBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSgomGhYmBh3x4hZaWiI+Dh4WHeoR5cXp7hIZ1eoWOjZx6jHB8b296f3F8gXGDh4Bujnp1d318gnV/e4aHsHRYqcK2jZGCcG5iPV5ocnBxcG54doFlaW9ydXhxeouHjpORm5WglYeMk5ugm5+qn6CtnKGamZ+lnp+rmYuajJCRjYR9iIeDhYuOn5mTiISHfm2ZeYSYhoiTjI2UjIZ7m4iUj66qlJWXn5mnrrW9qa29xsvIyczLz8nD0crU19nX2NfU29fT2dvWz9va0dbJ1MuVentpaFxaUFNUXUhDRUlIPkE9PTc6PT87PUc9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjpEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoGEfoN8fISYjoeLfoaGgHeCeW57e4aBdXqSno2gdo51gnR1gX10gIRvgY+Bb5KEdHyAhXp2hnuJt8alwsm4gpabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R1bZOWlJWPl5CDiY+XmpeWpZyXoJefkpKXo52Zq5WQkIqNkYKMhYmIgYaQkZ6cmYmFi4GGmHqIiJ+Xj4iNioyCfKGJkIu8oZiTl5qcqaalrp+otr/AwLnHyc3Oxc3K0dbV1dnV19vU19na29fb2trYztzGh3x6aGllYFRYVlVNTEROQzs9PDw5Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop7foB+f3yFe36BkYmEhXqEh3t1fXRtfH2GfnN+kp2RnoORfIZ+eI59eYqKboKagHSYhX2BiIV7fZB6j6mOj8OgvIyco5x9iYR9iXKMin5zppqcmJOFe46QiIRoR3CgpJ2Mi5CShYmKkZKVj5yakpSRlo2LlZ+dlKCUkY2NkIt+kI6Oi4SJkpaan5+JjJSSnZGCi3+lmYiEjYOFhIGlh4uLuJidkZSWoqehnZ6do6+2urWswMXK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbuHl5eW1qZldgXFRQT0hDTEI9PT45OTo6OTk7PDY/Pj48PTk6OzszN0Q/ODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97iHp8e4uHgn51g4V5c3pzbYB+hH13hZuhm52UkoCLiH+Yh4Cbkm6HqIV6oIt8kY6CiIOcfZqRioyjop+QpK6gi5GLhYuBkoZXcq2Ln6ubj4OYm4+PjVuCopGCjJ+TlYyHiIySkoyUlJSPjI+Kh5abnY+VlpGLkpOFgIuIko2Kip2WmaKihpKdlqCKiYiNnJCDiI9/g4eFpIaMkLOYnZKUl6GhnpmSnJ2nsrispr3Cx87Hxs/M0MzO19DR1K7W1dja2Nra19bZ2Z9xfnVoZ15dWFRXWENASEM+Pj46NDk6Ozc6OzozOzs/PD43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieG1ifpKDb213i3h5f3qBfIZ7e3eGhH9zcIWCenV2dnSEg4V9f5Kmo5+lopaJnY+Ul4uKqJdyirGMhKeRhJmThZmMopagmJOJm52ikqmvn5GUkI2OiJWLbo23hZrEyLKcoaWbnJiWkLKQZKTNx5aPhoeJj5KOjZOUiYWKiYWWmpuPkJSThpSXg3+Pi5mIjZCql5ejo4iZnpebiI+Hl5eKhI6MgX+Hj6WJjZOpmpeTlpmhmZ+Zk52borO0paO8wL7IxcXJyMnCytPNzdSp0tHW1tbY2tTT2s+Dc4BpZF9eXk5LVFpCQUdDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdYKOfHxsfYh4en56gYGDfnZ2gIN8bG6Lf3l8eHh8hIeLfYqjs6ejqrKhlqefpaSWla6ig5C3lZKzmY2hoIykm6+ipJ2YkKeWqJmtr6SXlJaUkIuYmZagwI6jybirmqKmrZiRmpyynYaFqKKcmIWIiY6VjYuTjoiBhoeIkpiUjIuTk4aUmIaDkZCcdJGZspaXpKGInJqTj4qQi5eaiYqWjoZ9jJifipCQnJqZk5iYn5SgnZWfm6GxrqOkt720xcfEvcPDv8bOysnSp87N09LQ1tjSz9i7c3t3XmFWYVdRSUlPRUFCRTU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdOW1xZSWZgO0iEi3p6bYWGenyEeICFgH1weHx9fG9yjXp9gXt4houJhYOSp7utqLK9r6Sts7Ooo6KwrIqatJ2juKSVrKSWqa23pqSjn5mpl6mjr7CqmpiclJWRl5+Xmbu7rcmgaba4q7CUmJ6jq5KXvaNeqrKCiYqNlIeRfI6OfYOGjY+UlYiHkpaLj5WNioyXmJKdmrOWlauei5uUko2QkoyZm4qSnpCLiZWfoo2VjZianZOcmZ6UoaCUnJylr6iipbO3q8LIxLW6vbvFyMfC0aHGyc3NxNbW0MvUonF8aV5bVF9SUEZEPjxDQUE4Pzg3ND5GPDw2PDM1MzU1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVHYmBicElAi4p/gXOGh32BiHWCioN/bX19fH9wd4Z3jYGHe42PjIaMmarCwK+9xruytMG8tK2rs7aMqLKurr2qm7ukqK25t6umpqKio6Opr7Kxqp2cpJial5eeoqWlkqO5rqi/u6ytsrmlo6Z9iIacrb2wg4uMi5CDj4ORj3qBh5CMjpyIiI+XjYuVl5SRmpadp5qxmpGrnY6Zj5KOlZCQlpeOkaCRiZWbo6yUlo+UnJ6UoJ6bmKChlZqep6ekoqSwsqbBx8OwsLq2xcTCvs2nx8PHw7zV0M3Eyoh0c2NdWmBbTktCS0BERj5BP0I7OjQ+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxmRmBpZ1pdW5OMjIh7h4uHg4x1hpCKgW9+fIJ/cX6BepV6kZSUmJCTlae0xsm/wszBw7nHvLqvq7m7l7K2urLArqXApKqvu7uqrauiop6nq6+1sKqbn6qboZuVnq+zp4uiurm1wburqJyypKOok4WNqcPEpIKLj4eIhIaVlI16g4yRjpGhjIyUkY+Jl5+Yk5mUl6agrp2MqpyOlY+SkZWVjpCVkY+hlIaXn6CznpSalKChmaSfmqCboJSYnqakpqekr62lwMTCrqi3tcnDvrbOssW+xLyz0cnIwbV1eW1dWVxqU01JQ0xLSkpAQT1CRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmW01lXGZUY2qZjZeKi4iTkIaJeYaTkIFygHyNf3iHgoKQeY2hlqiampi6vsfIysLSyMrCzb3Bs6y7vqe6v727w7iswamss7u9qrCqo6WjrK20rba1oJ+unqaimKOzvKmbqLzBo7a2r6uSr6yqq5aGmammpZGCjJOllYmBdYqSeYWNkZCdn5OPlIuQjZSjmZeblJSjnqmfkaWajI+PkJWWiH2PlZKSo5uVoKKctaaQn5alpKOlnp6mmJ6Vl5ulo6moorKsqLzAxK+ls7fMwLmuw7O7vsK4rMLCwcCZbnpiWVddW0xLTUpHRENJQkJBQ0s6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+a0lfWGFaZGRWnpCdjZeOnpKJin+In5OEd4V/lX5/kIiKkH+VoZqupqOYwr3Iw8jF08zOzcu7wrevur20vMq8w8G2tryts7+5vK6vqKCpp7atrqmyt5qeraKooZ2qt7eppK++w7G9ubOnqbOzrK2WlqSrp6CRjpKxxaeVjnyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuNj4+eiFqQl5eSlqWaZpijn7OllqKWrK2rp5ufppeYlpmVoaSopp62q6m6u8S1pbS2y8G4qbass7u4rqi4ur24g25vW1hVVk9GS1NOSz9BSEVESEZHODVGTTs+Nz5BSi4zMjAyNUI1NU9WTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnJGaUlSZWJMRqWUnJahl6mWjZCDh6WSiIGHgpyEg5WQkJSOmqKfr76uoca9xcTHxs7OztLKvru2sbq7vL7OtsS9t7i3srK1s7ezrKacq6u4qqinr7CXo66kp6SktMCwqqyzvsK5wLmzp7ezt7KulaSsrq6ki5OVoY10wZp9lpmEjpaai7GVmpmVkpOZmaajlaCblpqonJuhoJmLjY+WnWBKlpyalJqll1SWsJ+vnJ+llK+vrKWaoaWUk5mZjp2gp6KZtKmqs7y8u6uwssfAuaWrq62xsaOhsrK0pHFvZlxbT1FMRVBQUFE7R0tIRkhCQz45S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1RRVdSc2JXRkirl5igoqivmZCXh4unlo6IkoWfiISdl46eoJqjpLXItKnGusPDyMrIx8zOxr66sq65uMDBzbXIusC5tbmxr6+ytKejm6q0tKqppq6smaSupaWorLq/qKu2tr7Bv764srLCsLi8q6OutKy4pYibl6abdr6ghJicjpOZmouvlqGcm5eVm5+hqZ6ooJmaqZmhp56XkI2RnYNudpKimpWdop+QrbKjq5WpqpirrqWkoKSokpKZnIiUnKKel7Gnqau6tr6zsq29ubago6eopaecnKypqYxkZmFfUktMR0dOSlZMPU1ETUlLQUNEPFBVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5TYU1VSH9lXkhFq5WcoZ+7rpmUnoyTqpuRkpOJqo2Hop6MpK2Uo6O2xr20wbrBwsfIxcLOyMG9ubKvubTAwsq2xrHBvLS6q6itrK+jopmqtLumqaarqp2or6ekqqq9vKesvLO3vca8trW3wK+9v7OotLarvqWPopeRop+8n4mZoJmWnp2Pt5+pnKWjm5yhmqils6GbnaWcqKmemZWPlJuLl4mMpKGUnKKeoLSvpaWTsKuZq6yenqSjqZGVlaCDkJ6fnJWppaKhtLS6ta2otLKynpyippqXlZmqoZ53YV5gXkpJRkhNUUlORUZGQlJLSUFER0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0Ocb2JHRaeXpJ+fw6ycl6SXmamclpuaj6qWlqemla2smaKrtsTCu763wcLAx8S+zce7vbmysLizv8PItb+vvLa6t6akq6usoKCaqqvEoqWoq6aeq6+roqmovrimrb2wt7bHtrW5uL6wvsG2tLK0r72jlqOWk5uUrp+QoaKlo6OfkL2lqZ2prJ2doZumn72imaOeoqmroZ2XjZWek56Hj4SNk56koJ21rKaclbKnmbCnn5qqnqCNmZWfhI6hmpuSpaSamKyxtrKqpamtrJyYoKGSjpCWqZ+UaWRaYV1PSkdLT0xIRURJQT1PSEE7R0lIW1JPSz1IT1U0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGVjV0yimqObnsWsoZ+snZyun5KjnpakoKepq5e2sKOqsrXEwr2/tsDCu8jCvsrItri1tLGztLfBxra+sLi0ubWfpqyqq52en6WkwaWgqa2gpKmtr6Kmp721pbG8t7W1w7Kzt7m+scPAt7ets7S1opyklZGToK2gmKGdqKmroprDramerK2bm56ZpqC9oZ2kmKurq6ahmY2an5KeiY5Xf5WepaGguKqnk5i2o5+zoaCbr5eejpmUnYKPn5eWjqKklZClrrKrqaKipaWWlZyZi4+Rk6SfiWJlW2RgTElKSk9GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXEtOnp+hmJ7Dp6Wis6CcsqeTq6Sgo5+tqaydu7CorLWxyMPBwrPCxL3Gw7zFyrywsLausLWvv8W1ubCwurWsmqiwqamanqahp8Ktm6ywnKqirrCppKe9t6a2uryutsOts7PCv7HGs7q2q7S1ramhpZWVlKOroZ6fmqirsK6vu7KmoKmpmZmXk6KkuKChpJKur6ylpp+SoZ6Vno+QjZWdmaOfp7Smp42YtJyjr5qem66RnpSXlJqAkqGVj46foZOLpqywpaainKCek5KalIWLko2cnoBiZltoZUtJTEpTQkNASEc7O0Y/OTlOTVVeUlNKPk9eXj1IUEJMTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugwqijqrKho7WplbKrp6KlsqyuqbuyrLC1tMa/xMS1wMS+ysS2wMjCtau1qLC4rMDEtLeurLa5pZmrsquql5+ml627tZuosJutn660saequrKnubO3srjAqreywryzxae+rq23tKmnq6GWlpGlpKKil5ikrritsbW2oJ+opJmUlZOjoLeipKWWrbGypaqmoZ6ampqWmKifn5iinq+yoqaNl66ZpayXmZ6lkZuOlJiahZaflIyQnJ6Ui6mpqqKnoJmeloyPmZCBhpaJlJ95ZGldbGlOUE1OVD1DQU1DOjpJQDc3UU9dXlJWUUFXYFxCSlNIVktIOlVkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVKcGlWQ1dGjHlmQzuko52hpr+mp6+voKm1qp25r6ujqrS3sbC5t6+2uLfEvcPHvbzDwcfAucHGwbqqtqWtu63Bw7e4qq2yu6KVrbCtspalp5Gruaqgp7Cdqp+wtLKqqba1rLussrK5t6y5sMK6vb6mwqqwt6+pqqumnZiYqqGhoJGYoLCvs6uwuZqbqZ+ZlpKXpqC2qaWioq+xs6uxp6ufm6Cgm56lnKGXnaOzsJqfkJOlmqGpmpWin5aYiZSYk5aXnZOIkJuZlI+pqKefo5uXm5OHjpmLfo2WhY+ba2ltYW1uWFFRWlRBQ0VUQDs7SEE3OlhQZF5QVldEWV5eTUxSTl5LSj5aZF5OSFBOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWOol7Y0M9p5+coam9oaqwqqOxuKmltLOroa21va+zuLy6vba2wMK/ycS4xMLAwLjEvcG4r7aoq7eyvL+/tKmusbefl6utqK2Xp6mPp7ufpa2znquisbCzrKm2s7W8ra+xtaywtbHAusS2q7yvsbirrKmisaWepKmfo5eQmZ+yqrOpqrOZnaebmZSNoKaktK6noaysrbGnsqyyqaSbn6ijnZShmJuotamXmZKSnpmeoZ6QrJ+YmIaVmIudmpyTio2Wl5qXpqWjoJ2WlZeUgI+UhXuPkoOMlmZscmhwcl9HWWZWRENOWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJgUEtNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFVMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSaoKSst6SsqaWurrapr7O5pqawt8W3sba+wcK1tLrFvszFucPAur+6xLjBubK1rKq6t7q6vrWqrbG2mZinq6qrm6yrj6u8nayusaOqn7Cts66utrG5tqmtrrCnta+zu7zJsqq1tLG0r66moLOfmqitoKWVlZqZsaOtn6WvlqGkmZmSjaKlp7Kpoaaxq6m1pa6wta+jmZ2tp5qXnpmZq7ijl5ORj5icoZiXlKyfnZSBk5mNnZ2alpCKlJOemqWjoqCZlpKTlnuLkIV7jIuDi5JrbnhudXxhRmBqWUlIWVo9e0pHRTZBYlRpWk1cYUpbXVpSUlJiYExLRV9hYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuKkIvSkdQW0gzY1lVS0SZlqCwqLGprKWjrq61qbe0uKOrtLfKu7S7ur++tLS3w8HNx7vDvbe+v8C4v72xva6nurm3t8K3q62xuZWXpq6rp6OyqZSvu6StsrGnp6Kys7CysLSxt7KorquxprivtbPDxbaotLWrsK2pp6K2n56msaCklJuZlLGep5ufqY2pop2blZelpaW3p6Kxs6unsaessLWspJmgrKibnJ2blKq4m5SOjouYnKKYkJemoZ+WhJKWkJ2cmJaWiJeQl5uonaSgkpaRkZd2hJCHfIWChI2MbnF4dnx/XUtlbFxLT2NcP2J7R0k4R2dXZVtMXmJNWFlXVFhUaV1QT0hhXl9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTVE8M3JrSkRDkJmkraStraunpLCys6q3sLafq7W5ybmuwbvCt7OytcLDz8TAwb61vcC/ur+9s8Soqrmwtre/va+rs7OcoKewraWmsKWesrWtq7KwrKmotLmstLK1rLOsqayorKm5rbGwx763pLmvqa2tpaitsKWjo66jqZydnJqvmaKjoqOQrJ6jn5+hqqamuKWrtLSkqauoq6+2rqKdo6iqm6CZmpKktJmPiY2HkaKglY2UnaCUk4WPlJKdm5iWlYeYkpWZp5ygn42SkY6Rd36OhX18fYeKinF0cn59flxSZG9eTlpmXUZElltHOk5tWGFbTWBhTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NkOzYqSGRISis6ST8zQklTLD6Paz1HSI+bqaqhqa+kqKSztLG0tbGxoautvMu6rsC7x7G0rbTCw9HFxr7Asr7Bwry/uLzFqK23rLO4vMCwq7KtoKSnramopLCjqrGqr6ywrq+tq7O6prawsqmyqaulpaOtuqyqscK5tKu5qKioramosaWppKKuqqiinpuirJWknZedmKudoaepoayloqyrt7GxoKiin6qusKydnqanqJmjmJiPoKeYhoOOioueoY+LjJacj4+Gh5CVn52WmJWGlpOTl6ScnZyLkY+Oin9/h4V9d3+HhYd0c3KJdmxfWWBuY1FzclxLO4R8Rj9XdVhgWU5jXE1VVlVXUFxiXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkowLklnREY4PEIwNUVLWDFAlFs/TUaVl6ynoqqynKmpsLasuLWuqqWrqr3Ju7C+t8Kvsa2zxMPOzsO/v7TAw8S6wLTJxKyvt66yucC/s62tq6WnqrCpp6ixpbStq7CurbGvs6yzuqS4s6ysrqern6OesLerqq26tqS1taSpp6ysqq2hqKamsbKkpqWhoauWqaCTmqCmnaSiqqSsop6msbesrKKkopqoqq2pnKGlpKOYoJmVj5idk4GCkIiFnKCNi46MmY+Qi4SNmKObkpGbjJOSkpSimZuai42Li3yGgYGDe3SAhIJ+dHiMpId5a15gbmdXZodkTkBnkkxEYnlXYlhSZVVNVlVVVE9cXWFVS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZASEhElpKvpKKqsJeqqa21q7axq6Srqqm8wMC4ubO8taazr8TJy9G+wbu5wL/CucG6wsSusbWys7vBvrOxrq2rrKe2qqWtr6u5r6ixsa6xq7WqtrWntLarrKSpqpyjnbOzqKiktLSgta2hqairqaynoKusqLm2qaqpqaGpn62bkaihnaCkoqaiqZ2cprSup6WpoqOXpKanqZyipKOfmZifkY6PmY1+h4yHhJ6eiIWKi4+OkI2EhpWimo6Nm5GSkY+Sn5eZloyKg390hoF/f3h1g397eH6AiZ6Pb3FnZ3F4XGF0iGlPXZhWSG14VWRWUWJPTFVUVVFPWFtiVkhQalRWVEdQWVVJPklIT1FQeExOVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw+TFRfL0lrNlFFO5WNr6Clqq2Zq6Str7O0rqqlr6mpur67wLGvuK6itrDJx8jQwL+9u7zDvrrDwcC/r7KzsrW9vMKysrOrs6mltamlrbOzua+jrraxr7G5qriuqq62rKqeqqufo6C2raihnq+zobSqnqinqqOqoaGsrai9r6yurKGnp5+rmI+vopihoKinnqebmaqwqKKfrKGhkqGio6aYmqill5eYnY+Kh5WIfI2GhYSkl4WCgoyHj46RhIWUoJeIkZ2Qk5GNkZyVl4+KhYZ4dIF/fXV4eoB6dHR6aYKHo3VpXmVsgnVniIt9UldwXkp4c1NkU1FeTU1SWmdOTFZZZVhHU2lSUT5CTlFhUTpJSExTSXFQTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytITzpWQjSQjrGfpKaro6akrKa0s7Cpo7Cnqri+wLywqLmqp66wycbI0cO9wL65vr+8ybzCubCwtbK6vLnBs7S7rbmto7Wmp6yxtrmyp6e6ta21vK+8pa2ttautnKmvo5+lrKqnnJ6qs6SzqJqqp6mkqZ2jqaipvay0r66dqaOgrpuasqOVpJukpZ+kmpqoqqWemqmhm5GaoKSdmJapqZGYmZOQioKPhX2PgoCIno+Gf36Mh5GPkISAk5uUhZOijJSRi5Gbk5WHiX6Acnp5fnxpd316dXFxfWiGeYSIZGBoY3OFem1neV1eVUJXemxUYVBSWUtLTXB0XUhaW2dZRVZmUEM+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTtFWj8qj5OwmZ+fqKWkoaukt7KypKiwp6y4wb21sKO5rKiosMPJyczBt73Atbe/usi2w7W0s7Wyvbm6vretuba/raKzpqqrr7W4tKqeu7uosr+yuqCvtLapq56tsKKcpaipop6cpLGmsKCfqqmnoqqbo6igrbyorrCuoauio66enqyml56aoaOcn5uao6mimpmjo5WWk56hlpuWpqyLnpGQkYyCi4B/joF7mpSNiXx/i4aQj4yJhZKYkYeUo4qSkoeQmpCTgYh8eWx9dnl4Ynt6cXBwc3hpgXRqg2dkaGFvc45tYmpwYG9BXHhrVV5OUFFKSUxTWldNXV5tV0RXYE9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmRPKTwyUFs9I5KYq5ifl6ekop+opLivrqKvr6mruMK6sq2fuK+rqLS6x8vHv7fCvrC0vrfEtsOyr7qys8C2u764qbm4vquktaeoqrCtubCpmrq8pK6/tLShrre1p6ansLKgn6Smp6ClmZ+tqKieoKqvp6Cml6Opn7C4n6Sxr6Groaykm6amqZqam56jlZycmp2pppaanqeRl5KYnZOZlaGqkJqJjZCHfYd+go18fKGMjYl5g4yFioyNhYiTmo6JlZ+IkZWCi5eNkH2Fe3NwfHFzdGB5eGlvcHFvan9zY3psaWZkYWaGgGBbcmpxTE1/aVhaTVBMSkhQUlFJTlxfb1REWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MFpaNSiWnKWYnJatoJ+hpKG3q7CjtLSpqLnFtrKuoLesraywtcbIwLe/wrqxtb23v7u/r6y9sLS/sr3Duqm7u7inqLaop6uwrLOwppq8t6Sru7Wun7C4r6mlpq+xm6GkoKOjoZabsKahnqKnr6KgopOjpaK3sKGmsaufrKKumJyqpKiel5qdpJOanJqdpamZnJuklJSXlJyOk5eiqaGQiYqPhXqEfYSKeY6Xio2HeoKIhIiMjoWNlJmMjpaZio+XfoaXi496gHpwcXZvb3RfeHdlbGxsammEbmZyaWxmaV1kc4FgW2t1aVpJfV1bWE9PS0hHUlVGMjleXm1QRFdWWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbDg0R0FmW0hURFVdaEQuPDJiViwylaKhl5Sbqp2koaKgt6quoLq4pqy9xbOwr6O1sK2tr7XExLyzv7q4sbO5uLq4uq+uwLO0uLC/wbisvbq1pqKzqqepsqutsaGbwLakp7W1qJ6yvKmopqivrJmjp5yjppSYorKlmZ6jqKmcoqCTpKCkuKikp66mnqWgqJKfqKKhoJibnaCSmpuWoKGqm5uYoZSRlJaZjZOSo6ikkIiKjoV5hHuEhn2djYqKh3qBhIiIiJGFlZOTjJCVlI2OlHuDl46Ld357bHRxbGxzYXh0aGlqZ2ZvhmdoaWRmaWpgaWJqZ1tle2NgU3NUXFtTS0pHSU9TQCEqaV5qTENWVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc5Zk8nMp6jo5GOo6ebnZ6do7Wtpqq5t6esw8G2sKyjta6nrq+3wMC8ssG3sa6yt7a4t7atqr2zr7Kxvb+4rry8saWftqulpbOpqq6fnsGrqKWwsqmstbueqaqrsaWXnqqdpqSRmaetopiepKmhnKKdl6Cdp7amr6qvoaGdnaGUoKWfoaCZm5mckpmdlKWdq6GXlp2Uk42Vl4uPmJqooJKIioqIeYV3goKBnIiLgol8f4SIhoWRhJaVj46PkZGRjJJ7g5WNhXN9fWZ4b2tqbGd1c2tjZ2VkdYBiZWZmZWpqZGtxWl5ZXW1kYU5oV1pgVkpHSUtNUlg+OV9saUhCVFNcW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQWZIJTWbo5+Qi6yhmJiglqWzsaGxvbehsca8urGxpLarq66pub27u67Asq+urbavs7izqKu5sa+utLa6trC5vq2mnrWroKCwpKuunaPBoLGjrrCut661nq2vrK2imZynqaSelZuopZ+ZpKKonZqgm5ScnaywprmorqKhmpqdmJ2jmqSdl56Ym5SZoJKolqqnmpOampGLlJmNlJSZqaeOjoqJj3uCc4GBipiFh3yJiYSFioyKk4STnJKSj5CRlo6QgICMjYNwgH5meG1oa2pncXJrXGhjY3OBYWZoam5sZ2tqZ21cbGt0cWFUYmhkZVpJRkxNT1hRUVZhZIFUQFZTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUplQyc0kqGajY6wnZqToZmpsq+fuL+2oLTCu725saa2sKiupLe4t7etu6+tqqu3qrS5rqaztbKuqbG3trGztbqnqZ+2qZ2eqaKprJuov5ito66vtbWtrZ+xra+popuco6uom5Wcp6OdmqmipJaaoJyQm6Orqqm7n6ekoJiZmZ2gj2uhlpiccYKVmqOAdZKpp56UlJ6QiJeZgJaKoZB4hpSMg25qfnaDcWyGi4Z9hIuGb15jYWeEl4Zri4+Uk3V3i4R+g5CAZ4aAaHVpZldcaHNuTlBqY2dyhGdfZGZubGpeYGGKkISFZU5LRDhGVGdeSkdQUFRVS0hTYW90ZUZbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFRZD0rL4yjmYaVsJuck6Gbqq2qo73Er6m3wri9vK2ntrClq6S4s7KzsbmtqqestKawtaOouLa1qKest7OutK2zo6qftKueoaScpqeZrLuVpqWvsretrqWprauspaGfnKCnppuXoaWlm5unp52Tnp+YkJ6nqqO1r6Ojo5yWl5iXo4ihjpKah6GHk52gf6V/pqqekpGakYiDcniMjoWIoXaJjWmXiGZ9cnihb4iHhH6NfH+hoKCZgHuHnnSIjnabimyHgYJtaGVjemxxYVSGbWNsaZhxWGpwb4dYXmlba2tbiHFuenKGZ4aEWl5GTT9HX01GUlZWUVFSV1VnXk1YSlJST0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiLppeDnKudmZmdn6qqp6m+w66yury3wL+qpLewqaymsrWur7O2q6mlsa2ltbOcrbW2tKWnqbOxrbKor5+robKpoKOimqGim660laOkpba8pq2nq6qsqKWhoJigpqOZmaaipJicpKmWlKOclJOkpaaht6OjoKSYlJOYk5yIro+YlImpi5eim4WxgKOsnZOZnZR5gtSof4eVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGWvJzFe3K2pruQe4BslrGrsHloa1ixrm5labySvG5oem5yj9h+U2pitrJ+gXKUdJqhqpBXT1dhT1ZORlRbWFFQUoxcV1xQQFxEUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaWTgKapn5ecnqWtsqiwwr2ytcC1t7/Cq6azrKypp6+zqa+2s6ioprWmp7ivnLOytqqlpKixrq6xpqqep6SxpKGgnpebn52urJSdoZ+0uqKqqKGtrqWinZqZoaefl5unoJ+YnqenkZynmpSdoaaioLCin5+jlpWSmJKZha9qaoqNqn5nhJWGrWRwnZyTmaWUca6hpH54u31roZB2sV9qtFulgGackWBmgnpmf2p4a6lkvnJnpox2sWp8sXh0kpRjbW2nbVuEoEVoZ4eWRXWcYH1nfKSngllfi6tpgJV4eWqnN0qvXFdTbWNbS05XX1xXVjtOiU9XVy9JVFNJREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5GhlIKsp6Weo6WqsrestL2+r7bEsre6wqaosKuuqamwrqOxuq+kpa6zo6m5qJ6zsrCjpaCqra+sr6ann6OisJuim5eVl5qbraWWm6GetLOhq5uira2gnpmWoKGonJiepJ+cmaGnpI+dopqXoJ+qnqamoJufoZWVkZaRmoW1m7V4hamZtZl3h7Obt36TlZaolH5rgaZ6goaIkpSSeKtna7Fbq3uPh5R0iHGPhoB/iJCXeIOCi5eMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinC5Rom9bU2toYExLW2RYXFpCPrF4V1hBI01oRUNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5SIs6amoa6pp7Osqbq2wrC7wq24t8GqrK2urqausqmhr7yqoae0raSrtaSmsrOno6GdqKqyqLCopZ6fn6+Wn5mUlZaYnayhmpmjqLSuoqmPqaiqm56Vl6Ckp5qenKKfm6CjpaOWm56YmZ2iqpulmpyboqCWk5GTkpyD1ZOZuXCwwn7GhnzWlJu7fJmVpI+NnI2ke46HpIKlgnqseY+dVq96iH6farlauXeGg3ymgpN8mHqqeY2dkHuxbo6EdJC8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiGgIl8Y6QzQp12XVBpaGRQQFhnWmRhSkhNbEtbUk9ZZllDRD5FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzIlm6KTmLGoqKW0qqW1qKS7t8GwucCxtbS7s7WnsbCjsLKmn662qJuoua6jr7Ggs7SwoKSen6iqsam0qaScnZ6ql5iXlpeVlqCpnZqWp62wqKOfj6yiqJael5uhpaGYoqGhoZqioqebnqGelZmbpqCbp5Wbm5+hmI+SlJGciLJuaLVxq4dvjqZytHNytnuZl6OLjpyNon6RoKV+sHaDkdLRdlyue4V/pG+bqqZrhoR8rX2XmY97sXOSnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFNRamNmWEFPa19saE9VR0k5PVZSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGckaWwraSqu62mtaWntru8srq/t7a0urqzpbSzobGxop+sr6SYprqupLGxnLS4qp+mnaGqpLKorKqkmpyaqJ6VlJiYkpKip5+WkqWrr6ailpOsn6WSlKCbpKaflJqlpqGao5+tmqGfnpCWm6GdnKWVnZWZop+VmJaSmoWse3eodqOOiYepb62KgqeDmJihiZKaiqJ/k5mIroV/grNccrNSrn2DgqR/cdd9d4R9jp6GmZl3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV53d4domIhrXq93lZ6PeGw1eciusl9BVG9eZ2BFUGxfcG1WVU0uZWNpU1lROkFEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk5ODifnZSguLCXtMGtqLOoqbK6uLS4v7m3srW8taW3s5+0rJ+fqKuflae2q6ixsauttKSbqaCgqKG2p6aqo5melaWhlJObmZKUoqWakpCmrK6moZWaqZ+ij5GimailoJWapaidnKSerZ2hnaCNlJ6bnaCYmZyWl6Kgk5iQpp2GqX19pXihj46DqnCti4GnhpWfoYiXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aHc6eBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcWkx0XWJmTVthX3J0X0pWNkqbk1hIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4wMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMT84oZ2Zmb+rl7TCrqutqaW0sLextb+5ubKwt7ypurSfsKSepaennpOqsKmwqbWsq6+hmKGgpqWkuqKjq6CXm5GioJWUnpqUmJ6gj42LqK+vpp2Xm6emn4ySpJenqqeUl6mnnp+go62koZ6hjZWhmZ+gkp2XnJWeoZWWjqubj65tcrRyqYx2iqZztHhzs4CRpKKRnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZKIrWt1s2GdZqJvh5Jql1ytYE2hfIeRUnOjbXp/fm+Yh3Fcr1Y8nHdlVG9uLlynT2JSa2VibFpjXWBwe2NUWlE+Pm1vM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs8MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWam526oZyywK6tq6unt6m4r7XAtbywr7m4q8G2qaqgm6akoZ2RqqqotqOyqK+qoJecp6Ckq7ido62blpmPpaOVjZ2gm5icn5CTlKu1r6eZlJusqZeMk6WYpKyikZaqsaOgnqersZmho5CZopefm5acl6GTnKqclJCrmYfUkpq7c7DDgMOGftWWm7h4h5CXjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gYpumohxbo2kdL1ed31bYXm8a1pWW2p6XmphZmdibXdvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy02QTmnmp6hvKKXscOwraqqrLGnuK+2xbG6sa67sK7Bsaukop6joZybkamkqrKktaatpJ+WmqqZpqy4naOumJWhkKWgko2co56XnZqQlZKvubGslZejp6eUkZaknKOsnpGgqKufnJ+po7Oeo6WOp6KVopqcl5WjmI+woJKUqZ6FkJm1gJCRjLeVeIKTmrV3bWtuc255j4SOiXSewbu9mnuBsqhwgHSRuIN8hoaMho17ioaNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtXRycHe2jF6Aen2JaIN5bXlji6xwdYV/WVunakRkWVNmYGNdY1FnZnFtdUJNUE1EO1pNPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPTs8p56goL+llrTDtKyrp6yrqbuusMavtbOut6e0uK2poqGlnqCdmZSrpK2qprWop5+blqCjnqykvaahqpeUnZCim5KPoqiik52Xk5eUsrW2rZido6Sii5KRppulqpuWqKSlnJqhqaeno6mhka2el6Sel5eXnZ6PsKiUm6ehjmp+aZymeIdzfZqPdHplh3q9vsC6b5KCcZWHX3JqWl6aiWFjiI6Va2B/lWNtnXdilWt/mpWUZV5gY3GbimlyjH2GlWdqfnJ0eH19Ylt3dIFoUFxuhH17i2tYbHqCc0lKb4ZwTnRNRVddZmBMW1hmY19PW211aXFST0RFTTxIST1MPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqifqKHBo5u0urajrKWup6i1sazIrK+zq7WjvrGyp6CiqZ2im5qZrKaupKW1qaWbmJWhm6etqb6nqaaVlJyVoJqTl6WpqJCdkY+XnLCyv6ybp52noomTkamaqKObm6ugo5qbo6eto5+ropqwm5WnoJaVnZ+dl7GkmKGnmJyRnZyjo5mmopqcmpqZj5aBZ219cXeSl5SRhYq1qo2GmJWPioyYl4eUlYqEkpSRiY6Rk5iUmJeaoKKanJShnY2CeqWGbGp8kHyAdImKgXGCeHl2douAfIprc4F0g3Vkd313a3B6bWBjXXBnTVlZZmlgV1pwem5sZlNPRlM5T1pNUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzoLOiv6GjsbK3oKmlsqelsLWqyaussaW1psCntKGdpKWco5WWoKqmrKOjt6ufmZaWn5etqaXBnquklZKcl56Yk5Sin56ip5ORmainssOvmqucqp+PlpapnaqcnKCsmKGbnaKlsKeipaierpiXp52ZmqGenpywoJyippWYk5iToKGVo56XoI6Wk4qKjY6WrY98lZuCkoKLqqiGgZiWioSPn4h7hJCHhZmSiIaKlY6bl42Ql56jlpqTkZ2Nfo5mobOvhYqEdnqPinx2eXpvZnqRgYCJa3WBeYhyaHN/enaDh4JrdGR5ZmBqZWNkZmtZa3twaWpcUkxQRF9VRUA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76sq66ysqCqprGtoqyzsMWwqqyjs668pLScn6WioZ2Zl6ilqaakpbO1npWUnZmZsKatvqCsopCRnpqZlJGVoZyXqJyEnqmrorPIs5+qo6qXlpeap52om56kq5Oen52gqq+qpqOroq2bn6ChmaSenJ6dr6OYn6iTmJeckaSZmKidmpdlgpJ8ZX6NmY9jeY1saGt6kaSra2WamH5nhYplZWloe46hj2tojZeRondraouYo56Yc2xueoSNh3pYZV6Fgl5siomAdlxoc3d3koCHgm54gniAc215hHR3iYiOg3tphllea3RkXXOJaWp8cWxjXVJOWEpkWEFKND1GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsKqlqK2tsKeurbC9samnpK2vsJ+tl5+jnaGamaernK2jpaipsq6elaOQoq+mt7mlrqOOjpqhmZOSm6CZmKSVe6Wsoqizw7ekoaeun56VnqOeo5yjqqiSnqGeoKqxqqujqqCpm6afqKGslqGbpbCkl5yqlaGem5Kll56qmJ5+vYOHcrRyhJ2GrWh4ucS4cZOio3ummJlzqoJ8y8DAu3GLooeCn32VmImewL2Clp2djZ3CwXuCe5KMmsPAfWqlsW+MgG/Ken+bd5KDjoF2eoF/eXF6f4dxeIWNk3ltdpNjZl94ZGBlgmNedGdtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmolKOvqbCuraayta+ppaamsKufq5iaop+cm6qnopyso6WopaS0pJ2ikqauq7izp6+ikZGanaWSkaChl5ufnYemq6Srrb/AsaCpr6mXkp+dopmho6qjk6Chnp6tr6mspqOjp6Glpp6tqZKkm6mtqZydqpysoZaXpZaho5ecf86UeHqkgXmVlptfro9ejqeBoqB8p5WbdKuDgK9eY42qeqeHhaB0l5KIs2OCq4agjo2zaoSudH2Wh7hhg61Zo81uj3V72nt/mXB+iJJ2fmV7iHZ2a32Ibn6FkZJ+bYGPYHFrcGdgX3lkXHFoamNmYFJUUldeS09DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcK/v7W0sLeXnZGkqqits6ulsqysq6Srp6+qoKebmaSXnKKvn6CeqKejpaGesKybnpWnrq2xqqisoJSSm5+lk4+fpZedp6OeraSqsKjAxrOoqbGulpKdnKKXn6mqn5Shn52drrCoq6mcp6ekoquSrbSXpqKqqZ2jp6WhsKCSmqeaoJqUlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnneqgn2tf5xyrX6rh4afdpiSenyXfqqIooyRjJ1+q3uJk4+fgHutVpzEeo9vksF9gZVtdXCMbWV2ZYZvYXducm+Ki5KQg22RkWVwdHVwYGdtZV9vaWluZmNXU11hWVJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytJ+do46jo6Gsr7auqbGnqKqnraurp6KjnZmilaCmq5+hpaCoqKKfnbCsl5qWqKevrKinqZ6XlZqjopGUoa2bnaajr6yjq7Squs2xraauq5aUnJ2imJ+urJ2WoJmen6qzqaqqm6uqpKOsm7CxoqisrqWYpqqpqbGikpajpZqUkoSkaqR1iXqpdHqycIKliZmMcYigmoekYGBSq4R/roObdq6BpoaGn3qZloZ7ZoCjiaSZhYKjfal+gZSHrl58qVWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojY2Yj4FtmpNwbnl4d29sZmVlcnBmfGliXVdgaVhYVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVv6GZq6ehr6KesLSwr6mtoqemqqurqaSmoJuln5ymp6ajnKyaoqyhpJ+vop2akqqktbCuoKmbnZaUpqOQmqKooKClnLGmo6exrLbIsrWqrKmVkZ2copmgpbOdmqCUnZ+nrKykrpqsqqOiq6KzrqKqs7Ghmqqorq+2o5OWo6eYm5F8qmyehId1q3l8sG+CpIqJn5aVn5SB0ri0uMmAgbJfX5Spg6SIh6B5mJWaeKrJdJmjlaepkJOajH+biZrGxnhloYKlc4GfjoJ9r15wtWOxdUujhm2nR4KTZI+QnpJ8cJeTgHF7dX17bltlanNxZoFqX2FZZG1cXllJTUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz4tNU9UUR0cOzxGMiwkp6TBxritqbKtrKWinLK5rKqhppuopaqrqqegpqWYqqOfrqudpqCsmp6ppZ2ntp+il5OoqrayrJumnKCVkKWskZmcp6OfqaauoaOnqbC0wrGzqq2ok4mXnKSaoaOvppihlZmcpaarm7Cerainnqyjt62hsrmvnZuvp7Ozs6SUl6ejmZ+Ogp1OeJqBf596g6N9g6SEh6efnJ6ThLh7fHm5gn7MxsK2eJuhkYuffZqWlop2npiKpJijqH6whZ2FnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkqSXfH2Tkot1enOFf3FcbW94cmqCb1pkX2huY2RdS01RVEJJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu4q6+gm6Gss7Omn6CVpq6trqqnnaammqOnoLKuoqmmsqCZqqSUo7aiopWXoqm0uKScop2ik5ChsZmenKeloaKvrp2kqKG2ssOxrqmtqZGHkJynnKKknKWXnpmamqakqZqvoq6lppivpbytobe3rZ2dtbK4sLOmmJ2voaOehY/RtcO3eYeOhZGTkIGmeJSid4ygkYSlgYpxqoaEtG5yapmjm5WKn3yYmYaHj3OvgqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaNxcX+fYnOyuGh4j5SmmX6MjZOMeH15joJtaXhpeXNugHRdZGRubWZnYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWTc42Krb+/u7q1npanpK21oaOZlaOpp66qq5mmop+moaC1p6Opp7CjlKyjjqSto52QmpqqtLSknaScqZGUl62goJ6mo5ynnLSaoaqjtqvDr6mrqaGMhI6coaCmopWampyZm5mnpaaYrKiuo6Wbrqe+rJS9sKyforCzuau0p5qosaSnmHqokH18sHeKgaSliJxtsm+hh618oY6Dp5WYgKyIha6Fn5SpoKGWhp+AmZWAe5J+q4CdmpaLqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrrl2la3CFmV1gW4ygbZWSp5mDlI2XjHt7g5d/a2x/Yn50bYB6YGdlcW5oZ2hDWmFbPUtUMlU4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVlZXWFZVVVFIRklKIygovZKahKnGwrbBtJ+arKCtuKWjjpukop+wr6qfpJ+drZmeuKCjq6CvqZquoZCrqaSWiZqPrrCspp+nmqyXmI+soqGdpaGapJytmJ+oprapwK+lqaOfi4COm5qfpp6SlZqalJqapqWkmqmsrKOkoKqov6SXw6yqoqGrsrmqrqegs66oqZh2r36Qi5yFh3y6roqYZbCMZZWtfaGPg6aVmoGsioSwhaWZpKGhkYWgW2xqgbNgf617e4KBsWxnb5mXjIiwW320W6SDa8iiZZ+Ae7xZdrVasn1Sr4B6rFiAoW6YkKibi5eRl5d8eY6dfmRzfmKEeHSAfGFqZ3FtZmVlT1VkXEFUXz5KKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjm6ympbaooIuaoJ+cs7Opn6OfnbWYoLOoqquer62erJuVr6iijoibjq+sqKeip5mukpmPqJminaWfmaOipZmfo6myqLyvpaienY59i5uVoKCZj5Kam5GamKmgoZmorqelpqOlqbufoManpamhq7S1rK6mnrutrKyVgKmSo6+Om4CHpJeYkIGAuMO6g46ck4SnlpyCrIqCr4imm5ulqpF+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGqjgW+rhG2df3qysMeDaquwvax4d6K+vHSBlo6nnJCbkZideoKRm3pjfXtkjWd5gntga2VramJQYVtTalxAVWFDTio9OjQvHh8kHiUyIB0kKDA0OTY2Nzc7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbO0sb+5sb2yop2upqWypp2MmKW/qrixqKG/pqaynJ6xnLmonq2vpaeUlLCrl4yDm5GupqOsoaScqZ+Yi6OSpp6nnJqgqKKYnqCsraq5rqijmpeSe4eZkaabko6RmJiPmJSpmqCYqamhqqehoqu7nqnFo6Cvo6qztKqvqaC6p66umnN1qqS3hmWJoHBnrY+Kj21veKSPmZ+Bda6ZlXCPi3GVqKObl66kcm1tbWWKeG9tgplxgHlpcWlniZaVmHFoaYSGZ3CGZF2JY2pvWV1nfnemYGJxjpFvZWSAjZOPopiYmZKXn32HjpV2Zod4aI5reX95ZGxjZmxiS2RXSmxZOlFlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6m5ubKzqqmhrp6jsqmYkr6yw8i+tqqewKuso6CnrJ+6o6StrK2mjZeuqZCMhZWWrZ6mqqGfo6OgkYukkqeZqJmWo6mglpylpqevuqusmpuSknuEl42lmI2RkZiUjpiVqJWfmKmjm7GnnqOsup+wwaeks6assLGqraunuKOtt5aKoKiltp2JlqKYh6makJSdk6qzmZujq6CxlqGhnZ+inKCkoZWrp42TkoyHkpyclJCak5iQjpWFgaSal5WNi5KSio+GhH1nin90gnZ0h4twp217lJGTkoGBjpCQj52UoZaZl6KDiJSNcmmQd3CLeHd8empsZGRvZFVgWEBpW0hjYU9aK0Y9KychNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRGSktLTVBQUVhVVlleYGFjXF5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKaWqaqltbaurqKwpK2foLWxkI6sxr3Eu7iqoqWem6aesKijtqedqbWmqJGYrKKLiImPnKeWrKSgmaeenpOVo5aomqiZlKaho5CbqJmhtbqnq5iakI18gZSLoJSKlJGVkJCUl6WQn5qqoJy2o52nrLenrsGuo7enr6+wrKmpsrigrryZkaWkpraikp2mn42pn42Sn6Osr5uho7Cor5ejoJyjqZ6enZyWq52SmaGblJCWqpmNmZmWkJaekYmgnZWUhZKMkI2UioB9ZouGdYZ2eYiDc5xqhpCUlJCJfYyWkpKXk6GTnZeihIiYh3pylnN6in9yfH9qb2RecGpgW19ZbmNQYGVQWzpHR0U+Mj09Ny8rJispJh0mNDA2NjU4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWJhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaetoKe1qpCQnaWzu6+srKKjmnqdorGkpbCplpu4pqOTmaqcjoaKiZyjkK6fo5Wnn6CSlpibroqqlo+omaeMmaiPnrm2pKWYm42JeYKTi5qTiZWSlJCNkpeijZ6eqZ6euKSAhK+1orCvdaS+o7Kgd3mgqrG7lHWspJ6JgKp/ZFxidqCOpJ6El35uk7Odo6etqqNlnZ+Sc3mZl3CAmKiXbH+iqIplnKWckZeYlYuRnJCGnZqQlYOSho+OkomEd2qOh3aGcXyGgIBhaYeKlJKLWnWVkGhoj45yeqaZmWV5mYeCeJhqg4qDb3mAa3FlX3ZwbGtoXGZlYmJwU1w+TU5OU0c+QFRDOjEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTVRUVVldYGhmZ1dQSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mm5Wmo6GvsayrqaWprqOnraWSlqu2sLKmmqqnq5dzjJ2wn6irp5OXuaCgj5yknZF/iIibno2smqKUp6GejpeRnoR1ro+IppqokZekiJu6tKegmZiLiXV3k42Wk4qUkZCUjJCToI6boKeZnLKWgIyctZ2zjJKPvKegfqeieqKut4GOjqaeg4uGkLGpr4yKlqOaeYGLrIacnaKnqaeHlYWYd6WbeoebgZemgoJ7nLF6ioWgl5mUmJWBkZeWhJmZY3mHkISOj5GKg21wj4d5gHGAgYV/hnSGhJWSeJZoknSgmnR9mYShnoeYfpKLg4OZa46NhWx4e3FxZ2R4bmpsaltla2pmdFxfSFRMUUBFNS5ZVVU3KSEwOT0+NjQzNTY4Ozo9Pj5ARElASkVKS0dTWFtZW2FgaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mrq6rqKygqLGmp6qlmZSuyL6woZamqbWej4OdrJynoqCNkL6emo2fmqCQfYaPmZeIrJyhlp+gkY2TiIaAkaiNh6Kco5OXnoaeurKnnpuSjoVwdZCJlZCKlI+Pm4uPkp+Sl6Cklp6siJ+0ibSarYrKh6quiLeFjK+CsK6DqY2lmI2dfKiPcnt3nI+nlmiVpHm0i5+epqiSmMKBf6uImKFxnoCZpH2XhZWxgKF8oZSgkJiWgI6Tm4qXkYt8hZKGjZSSiYNtc5CFf3pyhoGEfIR1hIGXgI/FZn+ph4+ja56DopuDmoCMjoWKmXCOk4Vod3R8d2hodXFnaGteZG9tZ21YaEddUk0yRTQ2TmFjNyYzPERHRDk2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdhXWpsXFFFPUtNQEpkWV1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUl6KfsKipqKWroKS5saqrppqUoKOkqqOWpaq3o69/oaecpZ6diZS9mpONoZGdkHmElpaRiKuZm5uZoYWPjHabnI+fkIiepJuVmZiGormupJmcjIx+Ym2Pi5OQjZCMjZiLkJKfj5SgoZmhqH6hp4etnaCWrY+enJ2RhYCgjaquhqONqZmMmn6idoCZlGuCrHVNq3iHjZ2Rm6ingKmrfYOhe3qnaZ5/kmtnl4aXtomefW5gZFmDln+Me2RoinKZfXmVbF17lm1fU3CDXF9reYNgWWWCfYOAl3CnqmuDo25ypXCfhJ9pZZ9sW26KfGZaYIN/YldQb3dmbXRya2pvXmpwbWxqWGlPXVhGOUE0R0RfazQsSUNRTU49ODQ4NTk7NkA7Oz1BTz5RUkxNQkpcXV9XXl5idmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhY2lrZGJkZGdkYmdlYWNol5adoLmhqqOmrJGhtrysrqOZl6CipaytoZ2utaKokqGgn6abmY2YtJmQi5+MlYx1gZSSjIqmlpWYnp5/koWFrKSHm5CKmKiYmZqRh6Wxp6KVmoiJgGluiIiLjo6Ki42Si5CSooyUnqCcoqV/k4GPo6GUoHeclo+ng6Gnf4aprISleIp8hJp9onByk4iWe56MeW2HnIyZkJuomo+HnXuConN2pmaefnakX5h6fZJzom6Yt7S6dJKHgn+1qGSBxrh7cJW3i3GAmqRjc6yrYH1qnbN+bnyGgo6Ci5hxf6NscqNznoSApGCcmLOWcXyXn7R0c1uesoNqYm90dnJob1hrbHNzZl1pXmJLRT1ENVFBWnIyPVNHX0pSPTwzOTU6OjZEOztASVE/VU1OUUBFX15bWVhgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLe1rq2gm6Kco6OmrZybsa2sk5ehmaGkmZqUnqubi4mSeIuGcICWjYmPoZCSlJ2XfZCJjqigh5iOipGik5uajIqoqKWej5aHhH5re4d/fZCNg4uQkImPlKCDl56gnaCfi4l3nJiijJ9yoYuHqIibpY+Wp6p+rYx+eqCZeqOTeIF0loiNnH2WoIebjpmbpoaiZKF8iJaQm41snmibjW6amXuAiqd9cmh0q4Odg3SqZ5SaXZuFdoSdaKpqgLhmXKhwgZxhlYxep3Z2iIl/nmiadYaTkpeOf59umpBtp5ldqH54u2t+qluOhF20Z1xucnl4a2lccWp5eWNgZlhiQVFFTjdWQ1JuNEtaWl9OWkRAMTUxOzs3SD86Q0hVP1lSWV0+RGJeVmBRYWN9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniWOUm6u6srCsnaacnKifnq6bnrCorJ2XpJqhn5iWlqCjmYaJjWqIgHJ7l4iLlpaEkZSYj3qKhJajnYqUj4WLnZGcnIiPqKOgmYuRioCAaYCGeX+XjHuIjo6Ij5aaf5Oin6Chk5hyaJ+Kn4+McJKMgamHmJ6ip5+nfK+to6K4l3ejs6KkgIiUeZ17q5p/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmX50qlpdb3uWi3ieYkx+enqFY3mXQkyeWaJqcXyObYGJhJl1m3iGibGzf3+bk6d2gZ1tcn2Ub5lzaqRdlXZIZWNgc3F+f25mYGxpdntkZWJSXlddVVZAWUZRZ0RTV1tiWF5JRD1COD9BOklFOExFV0FWUVtWREZiXFpgS2BtfnFFQzxVX2JaZWpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZsXmVnZmtkZmxpaGtpk52Bsa2ZhFReoKazubOzqZqijJyrnJyplKGrpKGoj5+enZqZlZignZaIh4l3hYFueZWFkJuLfJGTlohyf4iSoZtzkZCAiJiUn5qEjqmcmpSKi4p8g2yEhXGCoYx4hY2IiJKYlXyTo6Geooiuhn21hI6enHullnqpgZWcj4qgnHynaHdtfpl0oXNxfJ6GmXCTg659pIOmnpqAo29eqGd1o2NvpWGc05B8e5l4cnNjooWQfqNzo491a5Czi2CCmIlzqrKovH93g21+vqaptF6cbn1xl26Ac6JyXaRnc6ZhaKZtm9SZfYSab3h6l2ube3eXc22ppGdgZXlwgIRrZ2ZkbnZ3Z2BjU1tmUVFhSFdJVGBXU1tlalxlUUZDS01KS0JKRThQQFFOV1JZT1NRYGZlaVNjd3l3SUZFY15lWmhpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7GrVFxLfqmvsbSws6ObmYWZqKCgpI6kqKCYqYqZmJiTmZOSoJiOiIZ7cH2EaH2Pg5SagXeRjo6Jb3+GkJOSbJeTfIiRkaOVg46qmpSSi4WJeYN2iIBugp+Hd4CThoiZopZ6k6Kkmp+Js6Gitot6rKekrqVwqICakIWAm5F7pIChmYaYcp6Eo66vipeMf4ykjZaDrqGUdrS1tcmhc5SKgZ9gnZepbXmVhqCbdaGHd6B+kZaKgG9MZqOScJuHcqR7eXRhg4FrfqBrcWRgnHJ+dJdpemmztbTGpnOYfnqda5ybq3WEm211d5hpmnp1mHFQRX20Xmp2a3mIZmpoYnR1cG5WXlRZaVBTaElVTFlTVV1oa25WZ1dNSkFKTUtISk5BUUtQZWNpbWV1c3N/eXxudYl7e1RQTmxeaFtraVJqaGlsZ2xmY2VfXF1cXmliZGlre19dZGhjamZvbWVpbGWhnIivpoRmP5Shsquvr7aiopCAl6mioqWMpaednaaCmpeWjZeQj5yTjoiDeWp5hmWDjH+XoHl1j4mMgWmEhZKDjIWdjXqMipWlkoOXqZeMkYuBiXqAfYt5cJChhnmBlYeJlqCVf5SlqJyWloRmbnicbKJkfHGld5uYcGemgJaLe6R6n5aDl3KedoGKlJaPuW6QiqJifZmhlYhtcmmranWgbW6mX5ppi5BoloealXWigH2aYIuFjHRviGJooGWefmmadW9jZoiCbXKiWl9bY6FtXYmMb3t+c3JkpW13omRnp2iZc4yZb6JvU4mQb6BfZadUi15UmG5tc2tygm1waWt5c2tvUllXV2ZaU21JWE9dSVhpaHNqWWtWUVJFVlxMWFJhVWhqX3d0en1wfHxyg3t/c3aNgIR2XlFyYmdicGdQamhoa2xuaGRnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKSYpnpldG2Lp66kqbCxpp+LgJernZ+ljKKhmqKigJaYk42aj4uYkI6Ke4ZxgIhoi4t8mJtzdIl9kHtkgoeViomVmYJ8iIaWp5CAoayQhZCKgop9gICOc2iPpYR9hpSNiJigjoiTqqediaZ4lpt/pIiWjLKYnpCCr5efpXeUh3mpdKSOhJpupKKMkoSMg7tufaWvgoaGhpOWnKB8pXpxqJWglmaefm+rY5aKlZJ3qGypooGJdYeCd6uRpodqkbBrdrOMqWuKhm1tn56SlWF/q4uqdn9/jKWedp99hKSVnaBqm4h3rGefrY22dHe+jaSTWYOmjathdXJ0cHx0cWNqfm5obFNWW1ZhYl1rTV1SXUldbW12YFtxWVtgWmd0ZW5vcWNxdGB4en55cnmDc4R+gHt7jIGCgHZieGRjbXNkUmtnaG9scmpmaWFfXlxia2JtbHpvXFxiaWJsandtZ2xuYpWlqp2BgJ6klqmqnainrqSZiYOYq5qepImapZ2pnYWMmo6GnJGFko2MjXSGeoiEb42EfpiTdHSGcpKDbX+LkoeGk498e4GFl6WNf6WmjoGOiYWVdoKHkm9si6mBg4uUjomcn4mNlKujoI+AdZSWiH6BeZSuo3+Bm3GPhXiPioN+e3KmjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3p9iWuMhVt5eHJ6cGhufpKJcX90go+Uk3GFg4JljH9egX+Ld3VzlHVveW5uh22EhV52aHiOZYCBhY6pm310fJZqiYhvgHZ9hnZtbWeMc3l7mHiEW2tYeY9pbndycW94eHBdbIZuamdWWmBXXWVrY1ZhVV9RX3B4eWxrdmVqa2p2fHFydHNhb3VidHuBeHV6g3aAgH+AeIuFg317bX9sZHhuXlduZ2h1a3hqaWpkXGBaY2plbHF1blpbYmtkbGx5bWhsb2GOlLiopouhopqmpJmknKuioYSEmKySnqGJmqabqZiDgZuKfpaTh46KiY1yg3yPfX6PhXuXjnNyhHCVhXt9kouGhpCFeH5/hpijjXunoYuGkJCFloOGjph3coWpho6SnJCInp6HjJuon6Cqg4mNlJp+fomWraiPkqaPd2+dkYJ5kW99qIVwfZVxa3B9gZ+Mf5OOjGhtXYOLjJybno5zlYuIcXRrgXZ0gVlyboeRgX1+jGpdamR6hYOIgF9peHqbe4KLgnaBhoJnd4qGa2FwcoJ2X3KLgYmPppWFZoyPg253i4Rxho96cGZnZHuDepZbXGpnbnZbe3l3dW5zc4JmXG2Ka2xjWVleW1lscVxfYVpeXWZ0fnt1b3Rja2tqe31ye3h0ZG10aG18fnZ6fHx6eoCAfm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VtbGdzeW9oam1gi4upsKGQo6Ganp6Ynpmoo6J+g5itjZ+ViJuikaWVf3uYhHySmYmIhoeKc32Ai3aFi4GElopxb4BymIaDfpOEg4aKgXqAg4ubn4+Cp6GHeI6YiZWLi52XhYN6rYKRmJmUip6dh4ihq5+ioqOLiJObnKOZlqqhp6agkpuHlY17d42OhKd+f5KRkpOcsaablZ6QjbKTmISljIyVm5+JkJuCiJGKa3yNd3hlgoaQinyJnYSHi5CIiICFhJB3fHl0mqGIhomeioSUfn2LgYF1cHOFg393h4eKkKaRhIWNh4ONkIx9iIuJkIJ3bIKEfXqZanJoYXSKcH16d3ZvdnSBXV5vh2hvYF5aXF1TaHJVY1xcYWxodXx8c29wZGtqaX98bnl/cWlwcGxmgXtygoB4f31/hXttgoyFfHp4fH16g3lOZHZqcm1wemRrZWJiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZYyHnbmelqKhmJWZmJSZpKGefH+aq46ejYagnIueln15lIN7jpmJhoSEhm54gIBygYd+iZSEbWt+epeGg4OQf4CGhIZ8hoONm52Sh6qfg3KKkIaTkYudkX2NeqqEjZKYlo+cl4eHm6afopqdhoORmpmZkJqmoKWdnZCWgJCKdnuHjoSle3yOkJGGmKqhnpOdkI6rjpGAnoyIk5qego6XfoaNgm93hXF1YX6Cj4Z1i5iBg4+ChoR+hYOUbXh1dJKiioyFmYWEjXSAiXx9cnJ7h4R7eIuOhJKmj4aDj4GEioqKd4aIiYx8b2t+gXxuaGxtZ156f2h8e3Z0dnV7d1xgcH1udWBjW11eUWduVGVbXmFraXZ6fnFsbGRrameAgGxzgGtsdG95b4R5bYaAdoKAfYR2cYKNh357e3x/e4KKYGl7anVoaYJlamNgaVxkdWhvYnRtbFVjcXllcHp6cmVpbW2LiZ63mqGjn5KRlpeLmp+fnnt4nqaRm4qHpZSLmJl5eoyFfImRg4yCgoJufH94c4GFfYuRfWtofYGXiIGIjnx9hYSHfI+Aj5ubkYinnX9wi4uMk4ehoYqFjXyokYiQkpeTlpN4jKOgoZ2Wmn+AkJqYkoyao6GjmpeRm36NhHiAg46HoH99jI2PfJikoKGTmZCQp42QgZuRiZKXm32Skn6GjYF0c4JwdmB9f42GcoqVfIiMcYx/goWGjmh3cXiMmJGPf5Z+h4pygYZ8fXB4e4uEenqRjIOWpZOLhpB8hoaHhXaChIiIemVyfH94enFsamZefnNofHV2dHxzgGpeYHR2cHhkY1lfXlJraFRlWV9haGp2eIFxZmtjbGhlf4FrbX1ob3FrfXiGemuLgXOBgX6BdHaCjYZ+fHp/gX1/j2pyg25zaWGHaGxiX3FWdG9tbmB4aG1XanR2Y3V7enJiam55iY2espKlpZyOkJiPhp2hm518dqSgjpd/jaKKiJqWeHuGh36DiX+JgoF/cX97dHaChX6KkXhnY32Gl4qCio14fYCMg3mWgJWXlo2VoJt+b4yCkZSGppuHjYmEppWFk4uWl5OSd5GdoaGXlJd6fo6Yl46Wmp2knZiSlJt5j4WCd4SWjZ1+gYmNjHOXop6ik5mOj6KMjIOXmIOSlpl+mI18iI2BdnF9bnpkgHyKhXCGkn+QgmyHgoGAiYRldW97h5KXjHyTeIuJe3+GfHtxfneJhXmEkIqLl6KVgoSMd4iEg4J3fIKJhXZgeHh9dH54Z2xkYX9pandzdHV9cXxiY2FzbnVzbWFaYV5bbGVSY1hgYWlrdnmGcWJqY21laH2DbGh0aGxvaYB8gXltkIZxgIODf3R8g4yBf356goN+fJBtdol0dG1limxqYmN1VoNpcW5geGdsYmp2cGZ5e3lxX3JshoWPnK6XpqiejY2Xh4afk5eZfXiqnIqZepedi4yYkHl7gIt9fIN7gIOBeHR4enN9gIR/iYuAZF59i5WHfoWHdH1+iX99l4SXk5aMo6GYf3KHe5SSiqePjI6Kk6CSg5KQlJeRi4GPmKCakpCRc3+NkpSJnZ2eppeXjZWWc42OimuFl4+ZeoeIkIlvl52ao5OVio2fjIeCkpx/kpKVhpmIfImJgXlxeWt1bHt9i35thZKClHdwgoN9fop/ZHJpe4CWl4R+jXOQiIN4h351eIB9hoB8g4yEjJSkj3mEgnSJh32AdHaBiIRuYXt1enF9b2FvY2R7Ym5vdnN4d3N0YXVfb2x1bm9cW19eXmteUF1YY2FobXR7iGtfamVqY2h3iG5mbGhqbGiBfHt3b5CHc4GDhH1zgYaJeoJ9eoGEfX2OcnqLeHhubIdraF9pcmKHaHJvZXZnbmxheWhrfXt4cGF3bYuAmZmqoKOonYqLkoaKnouVmH13rpiMl32elJGWlIh3fnuKfHuAdnd/gHB0c3tvhX2BgIp/fGFcfo+Rhn+EhHN6gIZ6j5GHkpGbkqWclYJ+gX2Oi5KkiY6KjZiajYaRmJOWjoqIjJKck5CMjG6Dj4+RiZ6ZoqGXlomWkW6ImYRmhZiOlHqJhZCLcJaalKKSkomLmoyCf5GefJKPkouZjnuKhIdzcnVrcW50e4t0boWQjZJxdIB7gYGIfGRwbHh9mZN9hIh0kIqAc4h5b4B9gIZ8hYyIhIyVqIx7iHx+i4V4fnFwgIWDY2h5dHVwfGJecGBrdF5want5eGtzcGV4XW1sc21zWFpeX2JrWlBXWGVjZ3Fxf4dmXWloZ2JncY1vZGlnZGlogHp3dG6OhXSBgoN7dYKJhXeFfHiEhXqAiXd/i3t7cnmDamtfcGh0gGtyb21xZ29sZXxjboB5dnFsd3eKfqKXoaigppuHjIuBkJyHk5x1gaqUko6HoI2Wk5CAdHt2hXd4f3Jze4VrcnB6bYp2gIGHbnFbWH6RjYiAgIB2dYCAf6CGkIqSnJehlJh4in+BjYmcnoqPhpKYloWJlZmPlouLjY2NnYqOkINtiIqQkYmclqGcmJWFl4hqhKOCZoWdipF+i4OLgXeTmJKfkpGJiZWOf36QmHuRjY+NmpJ8in+CbnVwbG1vcHuFaXODjpiKcHd/dIKIgnhmcm91gZmOfIiEepSReXaIdHCJe4WMeouGg4mOm6OIfIR2got/eHhva4GDgV5yc3JxcHhaXnBgcGpeb2l8enBtbWpsdmBwb2pybVpYYWFiblhRVFpmZ2N1cISCYl1rbWRiZmuTbWBmZl9na4F1cXJwi4B1f4OAeHWAi4B4hX93h4Z3g4V7hox/e3aKgGpxY3xjhnxvcW10amhvbHZ3X3F/eXt0dXSAgn6klZqtnqaWhYyDf5eUg5CfdYuflJOGi5qMlY2LenJ4dIJwcoV0cXWIa29tdW2IdoN+gG1uVVGBq5SHgniAdnKCeYGggpGBk5KYnJKaeJJ7g42TpJqTjomVmZKEh5eZjJSLiY+PiJ6EkIp8coqFiY6InJqfmpaUgJN+aIWch2eFoIeSg5GDiXGDkZePm46QjYyQjXh7kpB6jouMkZaMfIh8gGt2am5ra2x6f2F6fo6WgnZ6gHiDjHx5Z3NsdIeVi36IhnuTkHF6hHB2jHqJjHuJfYKMkJ6dhXx8d4KMfXdxamyBgnlgeG9tbHJ0Vl5vYnJgX2xueXBncGZmc3RocGthd2VdVmZgYHJTUU5cZmVdeXCIfF9caHJiYmVmkmpfaGRbZ3B+cGtwc4p9dnyFgHR1f4x5e4aBeIiDc4aFfoyMhHt5lXhncmqDYIh+b29remBqbnR/dF90fXiGeHRzhXx4oI+ZsJylj4KKf4OaiICMn3+LmpOOhYiXjo6PhHZ0dnOAcG+Fc3Bxg3BqaXZug259fG11c1JNgt/IktaTfHB1g3WDoIKTd5WRmZuQmXuUc4WQn6GTlJCKk5uUhn6WloiNjYiRjYicf46Ad3qMfoiLipycnZqVk3qNdmeJkYdsiKOEkoeXg4ZjjJGZjpWKl4yNiotxe5SIe46IipKRiXmFe35se2Vyb2preXlcgHmQjoF6fX5/ho56eWhzanOLj4mBhYV9lYtrfn5ugIt+i4d9hHqBj5Wamop8dniDkHlzbWZwgINtanRvaGp0blNeb2RwWV9rcnhma2piZnhyb3BjX3hgYFZrX152UE5LYGdjXXpxiXRcXGV2YGFlZY9kYGVhWGlzc21qcXaMfHR5hoJ1dn6Lc3+Gf3uJfnKJh4GRioh8fph2ZXNufGWHfm9wa39ZbG55eXNhdnp7jXZzd4p3eZ+Lm6+boJCChXeIlX59ip2HhZ+RjoWMl4STjoeBdHdweXFuhG9tbn5yZGR4cX1teX1qaGxjpJrB3K7voXNrdYN1hKKFkm+WkJWglZyBkXGGi6OXiY6Wi5CdloOAlZCFiY+AkoqJln6HenV/iXiGhI2cm5iYjo92inZuhomLfYqjhJGJnYWFXouTl4qPiY6Li4SKbXyWgX2IhYmQj4Z2hX19a31keHVpbnhzWIh6koaGeX6AgIWLfnhlc2p/iY6JgoKAjJaFa4F2boiQgo+Ef4J6f5CVk5mQdHN4h411c3FndXqDYnRtcGJqdmdSYHFnbFVfbnR5YXJjX2h9cHJuW2NyYWJXblpceE1NTGRnYV52c4ltXFxkeV5gZGaFYGNiXllqcmtua3N3i310d4SBeHd7iXGDhH1+iHt0i4mIloeMfn6Yc2h1cXlsi3pudHCAV3F6dnlxZXd5hoxpd4CJcn+ch5mnnKOShH1wjJR4eYudhIWhjY17lo1/mYiEe3J3cHNqb4FraW18dF5geHd7cXV7Z2FlfOvatcnD3IhzbHSBdoqaiI1pmI+PnZWTgYlxhYmgjYSLloqMmJR8jZOIg4mPe5GLhY+Cf3Z4g4Nyh4KTm5aUmIaMdYd/cISCiYaYoYOUjJ+DiWGDlI+HioaKjYeBh2l9lH99g4SJjo2CcYZ+f3F3aHZyaXN3bFqMfJKChn1/g4CEiYJ1YXNriIGPioJ+f5KQfW2CbHiGj4aRg32BfYCSk5CWiG9xeoyGdWxxbHJ4gV90aW5da3ZgUmVyaWZTX3B2dGBvYF1ognByaldnaGNpWG1WXHVMS0xlZ15icnOFaVtcZXleXmRne2BkX1xZa25mbml0d4p+c3OBfnp2eohzhYJ8gId2d4qGjpiBjIF7k3Zsd3V5eJN0bnh6fVh5hXGAb2d4d5KCZHaGhXGKlYWZoZqiiod0b5OLcneOnH2KmomJfJ9/g5l/gXhxc21vZHJ+aWZsd3hbXnl7e3FxgGphZ2F/1baOkKZ4bnF3e3CSkIyHapmOiJySjIV7aYiLmoeBkpGGh5iNfI2NgYGJjnuQjX6JhXp0e4J6cIaAlpmOk5SBiHWDhnaDf4qSnJ+GlY+ffohhgJOHhYiEio6Af4NnfZGAfn+CjI6Qfm2CfIJ0a212dHN2dWtijYGPf4V+fIR/hIh+b19ycIV7j4yCfH6RiHpwg2Z5g4qGi4N8hH6AlI+QkoRub3mMfnVub2tsen1jaGtqWW52WlJpcmpiUWJyeGxiZV1aaoNtc2FbZ19kbF9uVFtwTkhPZ2VcZ25xgGxbW2NzYFxjbHdkZV1dWmxsYm1qc3aHf3Fvf3x8dHiGeIWCfYCHdXmJgZKWfIiGdomBcHd5e4OTb218gXdeg390gW1penSUc2dzh3xykZGDmp+boIaIdnaVfm12lJd+iJCDio2afIuadn12cW9samF1fGdiaXV6Wl94fHptcX9lZGhnV52PXnFylrzEhHZxlImQfnKXjIack4yIc2uJj5aBe5SLgYSbjHyLhn18iYx/lIh1iYV2dn2BcXWGgZ6UhpWPg4Jxf4h0g3uJmJyXhpOOnYCIZX2TgoCGhImJcoF9Z32Le3l/f4eLj3xpgH2DdmZveHhzdnNsao2FioGKf3iCgISDf2pecXh6fYyJhXuBj4B+coFpeIKHi4WEeIN8gZiMj4x9bm17iX13dG9oaH12ZFxxY1hvc1NTbnNpYU5mdHhmYF1cWG6AbnNZZWJdam1gcE9ZbFJEVGhhWmtubXtvWltebWNaYm93Y2ZcXWBramNsaXN2gYNxbn57f3R1g3qDgnyBhXZ+iYGWkXiDinSBiHJ5eX6NkG9vfIFxaYF5en5tbXx2lWtqeIR0bJONhZ+YoJmFiG59jHZqeJiPf4KKgpWXinmPlm96c3BsamRgc3poX2Vye1pgcnx5Z3B6YWVljrGyd0piWqTZ0Jdxe5GLkHh9lYuFmZGNhm9shpKSenmShoGEmIp8h394eImKhJaAb4qHcXR+eml5hYOlkYSTjYN/b36DdoN4hZuYk4qSkJSFh3B7koN9g4OJg2+BeGiAhXhyf3+Diod8ZX1+g3ZjcHOAaHhwb3SYjIWCint2eICEeYFqXHB9coCHhYl9hol6iHKBbnGDho6EhHOEeICZjI2EeG5ufoR/d3tlaGp9cWBZd1pZcW5OWHJzZ2BLbHZ0YV1bW1l0fXJvV2ddZmpwX29OV2lSP1lmX1pwa2d5cVtbWGtlWWNweV9oXF5lbGhmbGlwd3+Hbmx/fYB1cIF6gIF/gn92gYWJl4pxgo1xe4Z8enmEk4x0anp/a29+dH99b3J8e5RvboB/eGeSioKhmZySgoZnh4RwaHqWiX5/hYKZioF8jYxoeHJrbGZfYW94bV9ib3lcZGyDemFxdl9lZdTqvooyOj6LjoByeYWIjo12g5eNfpOOjX9ubIWNjHZ9j3+FgpWJfIN4bnaHhIOXd26IhGx1e3RmeYKDp4yDj4uEfW5/dHaDeYWbkIuQkZKMi4Z+e5KHeICEjYNsgHJpf354bXx7goqEeGF5hIFxZHFofm10cXWBm4uAf4V+c3Z9gHOAb1tsfnR4ioKLe4aAfIh4enFsiIOPg4pygXl/louKfnRta3aAgHV2XWlpeHBZV3xTWnFlTFtycmVbSnB3b1xbWllddH50aFliW2dlbmNpTVdmUT1eZlxddmZfdHBbWVRvZFllcHlaaF5fZ21namxpb3d9jmxpgoR+eW6Ae3yAf4J6dYKBjJOFcICLbnd+gHt7iJOJf2h7fWp0e3KGe3N3fX+MeXiEfXxrjIyDm52WjIGAbI5+a2l/jo17fn+DlIJ/fYqIa3VxZ2hjW2Jncm9gYWxzYWhwiXphc3ReY2SboI9uXDVZr7V1aoCJfZKGdoaXhnSPi4p3cG2Fg4d1eYl4iX2TiHp/c2d2iH5+mG9whn1odnltZXmIhKWHgYeNiX5ufnV/gHyLmYeCk5CYiIuEiXyPiHF7fYR8aX5ta4B7emp6doKHgHJgd4F+cWRyZ3WCbXV7hZSRgXyBf293eXx0fmxXb352dIuBhneHdYKJenhybomAjoCFcn59fpKIiXpubmltgoJ1bl1oZnRyUlt7TlxxXE9ccnBjVktzeGpXWVlaYXGAdGBdXWBnZGhpZk5aaE5AYWRbYHZhXHRtWFdTdGFaZG5yV2peYWhrZ21saXB3fJJraISJfHxwfn57gX+CeneAgImLhHF7h29xd4N/e4qNj4Nqfntud3l2ind9eICCh3+Dfn56bYSMiJijjYSDe3aMemtthImReX17gpGAgH6Kg3BycGNmXllnX3BwYGBncGZqb4p1YXRvW2FkanZ7f76cpqPIuHGFhHOUfXiGlIJ0kI2IcnJwhHuDdHWHdIh3lIh5eXFjd4Z6gJNpcoR1Znd2Y2p8g4iegoB/j499cn5zhHh/kZCCeJaNlI+Hgoh6iYlseHl/dWh7aWt/eXNpenaAg31oYHeHfWprdGh7f2l2gYuQlH56fn5we3Z7c35iVXZ8cnOKhIJ9g3CGind4cHCDgox+fXl+fHWOhYJ1aXFpbIeCcnBeaGNzbktldUxeb1VUWXNuYlBPc3hhUldYXGFwgnNbYVxoZWRjamRQW3FJRGRhXGNxXl13aFVXVXddW2VuaFZrXmFqZ2Vvb2lwdnuTbmmIjHl9cnt+eIKBgnx2fYOIhoNwdoNybneCg36Ji5N/cIB8eHl6gYx0g3h/gYGChHqAdW9+iYuanoh9hXp3h3xodIaNkXp/f3yJhoR2j4Bnb21fZFxYZVltcmFgYXFsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhwjXV7h4+AepOKgHV0dX53gHBxf22EdJSGeHVsYHqCeYiOZnGDb2d1blttfYCQk4CBeZKSfXh7bYd1gJCLg3OWipGOh4WFe4CFbXV2f25od2Vte3ZtanZ2f398YWJ4hnpodHVjfXpndYaOjJV7dIB1cYB6fGx/WVZzfW90hId/gHlriIZzeWt0f4ODfXp9eHtyi4B8cmd0ZW2Kg210W2tfdWVIbm5MW2JXV1Z4bWJPU3R2WFBVWF5hcYRvXGBjbWRjXW5iVF1yR0NmX11maF1aemNSVVx1W1tna2FWal9gbmZma3FocHV4jnRrjox1f3Z4fneBg4F7dH6DiIiDb3F/dHF1foaCiY2Ke3d/eIR8fIWHeId8fYF+hYB7fnN2eYyOn42Jeop2dYN5Xn6Gmox5h4N0hYaFd4l6Ym5sW2JbW2FWanNjYFtnbm9nh3JhcWZXXWNrf3zKzoe5omptbYpscYRxfISKfnuShXp5dHl1dXtqbXVjhHWRgndwZ159gnmLiWVxgWtqcWNYbHuGnIiCgnOXlHd+e26HcYGJi4dxlo6QiIWLg3t5fnFxb35naHJibnhxamxxd318el1leYB3aXV4ZoJ2Z3SHi42UfHKHaW9+gHhtfF1YcX5tc4CLfIFub4l/cXZnd3+Bf4F2fHF6dIZ8eXJmc2Fui4Jsc1hrX3dcSW9rTldWXlRVe2thT1R1clFRVFZeYnSFaFxga2pmYlluYVhicEdBaF1gZl5dVXteT1ZkcFlbamhdV2dgX3Jma2dyZ3Byd4Z4bpWKdH96d355goeAdXOAhoWOgnBwe3d3dXqHhoeMhnp8f3WLfn2FhISHf35+fYd/fHh2eXeRk59/jH2LbXWAeWSDiJeGc5KKb4WFgXqDdGNuallfW11dVGdzZWBZZHJyZ4FzYmtlV1pgaX93vq57n7duYnOGaHR8cnqDhnp9jH94eHN2b3t2ZWpuYId1joFzamJefnh5ioNmcX1oamtaVm94iqSBhX9xmZNxgHh1gW2AgZCHcpSIjIeDiIV9eXRyb2h6YWptYG12amdra3l3endbZ318eGVyfW6EdGV1hYyGlX9vi2ZreoN0bHRiXG98a3R7i3uCZnWHfW1xZ3V+eH1/cnxsenqBendwZWxibYl+bW5Wa2B3Vktqa09ST2hOWXxoYk5VdWpMUFRVXmZ2g2ZdYXBoZ2BXaV1ba2hKRWtaYmRXWVV5Wk5WbWpZXWxlXFllY150Zm1kcWZyb3SAd3CahXZ/fnd/fIWHfXVzgoh/lIJuc3h6enNzhYeJiIR4gH12j398hImOhIKEe36Lg3t3fHd3mp2XeoqDh2l3fnxshIWUgHKPgnGGgn6Cf29mbGdXXVtcW1RkcGVfWGNzdWl2cGVlYldcXGiAcG9ygHOJZGV4fml0dnNzg4V4gYR5d3R1bmt7cWFna2eGdI2EbmZdX31ve4l9aGx3ZmlkVVdycI2mfIR8dpaQc3xze3lte3qQhHaYfIeGgoaDfXVwcmxndV1taF9sdWRnZml6b3tyWWeBd3VncIB4gnVid4WKfJSAbotqbXqAcGVyZWBseWZyd4p7fmJ1g3Zpa3F0enB5eHJ9Zn5/f3h2bmNlYW2GfG1rVmtjcVNMaWtQTE9wR157ZmFNVXRjSk5TV2Bqdn1lXWdzaWVfVmNXYXBdTEtrWGNhVVRUc1dMWHVkWl9rYFxaY2Vfd2ZtYnBpc25xfnR0mYF3f4B3f36GhHp9dYKEfpeFbnJ0e3p0cYWFj4KAeot1dJCAfYGUjoCFhHx+jIZ6foB2e6OlinmIhYRsdXx7dYSCjHpuhXN6hX2Bg3VuamhlVl1bWlpTYm5lW1hhdHtqaG1pX2JXX1ppgGprb4BnbGFoeXlrdHR0boWBen99dnVuemhqeWpfZW5pgXePhGdlWGJ3aX6Hem9pb2ZmXVVYb2iPp3aBenyQjnl1b35vcnV5jn93lHSFgn+FiHVqcnZnaG9cbWVebXNfZ2FpeGh7bVttgnJzaW+Afnl3YXeEhHiPhHOIcW95f3FicGhbbndkcHOIfHlic4BwZ2p4c3Jrd3Z0d2ODe353dnBkY2NufH1rbFZqY2dTS2xoUEdSbEVheGZhTVNxXUlNVFlla3d6ZV5tcGlkXVZfVW5uV0tTaFhmXlhNVWxVSlx5X1tfa11dWmJlYHpobGFvb3Vub3d1eph9d4CBeoB/h4Z6eXqDfoGThHF0dH56dnSFiJB9gH2QbHOUgXuCn4V/h32AfoaCgIp7doSsn396iIeEbHKCenaBgIF1bodvfIBziYBqb21kZFhfWllaVWJqZ1taX3WCaV5tbFxhVlxca4FmcnR9aWpda3Z2aHR3cW2Ge359eXZybHpoaXdmXWRzaHp3koFjY1Rlb2aChHd2ZmhpYFdWWWhkkKdufniAi456cHB8ZnhueYt7do5xhH1+f4ZuZHZzZGhoXWtiXW9vW2dfbHVlemhddIBvcmtxe351dWJ0hYp6h4aAf3dydX50YXBsWXBzYnFyhXx0ZHKAbGFsem9qaHl3dHFmhXV6enVwZGFkbnN+amxVal5eVExzY1FHV2JHYnZmYUtUb1dKTFhYZ2t2emRlbnBmY1pYXVh2ZVRKXGNYaFhZSFdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bW9udoOXeXKBgH1/iIuGfXZ2hniHjH1zdXWBeHp6goyOfX6EiWp0loF7ip19foV5gHp+fIaIc3GProx7e4aQfmZyiHp0fX12cm+GbHt+bI96YnBvYWVeZVZZWVdjZmtfXV1zhWhZcG5aXldaXGx7Y3B3dmxiW21zdGd1dXBthXl/gHl3bm90ZWl0ZVtndWZ2dpF6X11SZmZqgoFzfWFjaVxUWF5iY5ClaHl0goWQeG1ueWd3bXuEenWIcoB4fHh/aGV2bWBmYV9qYF10a1llXW9vYnplW3d7a25ucHh4dHRkcoOSfoeCiHp2b3F9cmF3ZFpucGFwcYJ8c2ZygGRebnZpY2Z5enRtboF1c3xzcWJeZm5vfWVqVGlZWVROeF9SSlpZSGJ0Y2FJVG1TSUxaVmlscntibGxzYmFZWlthdlxTS2RdWGlTV0dZYE5HaXVYXmFtW1tfYmJdhWhoYW54eWxuanaBkHlug36AgZKIhIF2dIl0jIZzcXd2gXd8fX6Mj4B+k35weJaDfZmSeYCAeHl+f3OIg3NwmaJ7en+JlXlkdYh5c3h2bHRvfmx5fHCRcl5wbmBnYmxUWllXaGNtZVxccYllU3JuW1pYWGBsdmRpdWpqXlptc3FsdHN0aoZ8foB8d29ubGRpcWNbanJkdHaPc1tWU2RgcX9+cYFcYWNdU1pgXGOSn2VycYWEkXRsanlsb296e3pxgHZ+cnp6emRldWdeYlphZ1xed2hXYl1vaGF3YVt7dmppcm93dHN0aHCBlIKGfoR2cmpwe2xmdldbam1icHOBenNmb35bYHBxYl5pcHxsa3N+cnF4a3BgXGVsbXthaFRnVVdSUHZbU1BaUkhjc2JgR1VqUEhPWlVra2t8ZW1vcWBbWlhZbHBXUlBmV1dpU1RGWlxPSHJ1WF9jbWNYYWBhXYtpY2RteXhrbml1eYZ7a4N9f4SZfIKEeX2Ibo+GcW93enx0goJ8i4+DgpZ0eIKUhYGfiXWAgIF0f4Jwh4J1b6KXdHuGi4d7ZniLb257b2Z4cHpsc3ZzjWtedG5hZ2VrUl1bVWdibGxbXHGMZE9vbl1WWFVnaXRoYnRlZV1abnVucHV1emuHfH98iHeQc2Nla29hXG5tY3N4h2taVFZiY3d8fHCFXGNfY1RbYFljlpVjbnCDhYpzamh6bmVydnN7bHp0dW96fnVfZnJjW15XYmRZYXVlVV9gbWRhcV1dfnBoaXNxc3B1dWtthJOBiHuFcXJmbnxvcW5TWmVqZXF0gXZzYm12VWJxa1tebmV8ZWx1fHJycmptYFlkamp4X2dUZVVWUFVuWFFXVFBIZXJfYUZXaU5IWFRWbWlkfGlrd2thV1xVW3RjU1JXaFFZZlRTSFpaUE54d1tfZmxpWmJgXl6PbmJma3l1bm9odnZ/fm2DgH6Gl3t/h4GKf2uTiHJndIB7dYCDfYmPf4uTcn2KkYWHn4Z7f4aMc4CGc32CdW6ljHOBjYt3eG56jGBkfHFmenN5bG1xdoNnZHxsY2ZnaFNfXlRnYGxvXF5ujmhOaW1gVFZTb2Zza2V4ZGVdWXB0bXJ6eHNtiHuAd5x7emthZWxtXmBvamVweX5nWlZYYGt3e3tvg15iXmdWWWBXZJyIYmtxgYd9d2tqd2xbdnFreWl1cm1ve4ByWGptX1ldVmJjWGVxY1NeYWliYmxaYH5sZmtzdW5td3ZraIWMf4h6h21xZW97bHFsYlhfaGhvdIFzcl5pbVNlcGVVYm5heWJwdnt1a29sal9YYWdodV1lVmJWU05ZZlNPXU9PSGVvXWNHWWlNSV9LWG1kX3hobn1kYFVeVF10W1RSYGZOXWFUU0pcWlFZdXVdX2ZtaFhiYVtejnFjZ2p3cXNtaHZ0eYNzgoN6iI1+fIqHjnpukIp0bHOCdH9/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo2NjY2NjY2Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjIyNjY2NjY6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERFQjEvMDAwLyyApKCgoKCjgGNnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTUzHhwcHBwcGH6ppKSkpKd8XF9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHiIeHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhoWDg4OEhISDjJCPj4+Pj4uIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk5CKj4yOj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6Ojo6Ojo+Pj4+NjIyMjIyMjI2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjIiHioaNhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCRjYiKhY6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkI+HjYyGjIiIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjISJh4aIhYmPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiIqKi42Kjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOSkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpKSkpGRkZGSk5OSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCRkZCRkZKNkJKRkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj4+Pj4iPkH2MkJCPj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj46Oe42MdoqPjo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjI5zh4pzhY6MjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg26CgnB/iIWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXV2d3VxZm1qcXNvZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZ2xnaWZybmhnY2JiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpeXGVmXnJsXV5aWV9bWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTlBTYWJZa2RUUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFloaGJpYlFPT05PUFBRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZDRkpNY3JrZ3BqVU5NTE1PT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQD9AQlBsc21pc3FfT0tLUkxISEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj1CSUI8T2lwbWRydGZFSl5URkJERUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7O0FZUT5FZm1pYHBxaVJhZkVFRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5OkdbU1NjampucW1qaG1UPkNGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ok1jY2lsanJvbWtsY0A9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9Pl1tb3BtcW5sa2xPOz4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO11tPz5DS2ZycW9wbmprXTw6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXZIODw5S2tyb3Bua2dHOzg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUTw9PUlMRUZ1dk03ODk4SmxycnBtUzs8Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/eXt3Vjw+Pz09SmZ3bVI9PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoKEg4KDgH1dPkBDQEE+RXRWOzw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2EdU1BQ0VAQEFOdmpIQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVwQkRFRENYdYaIiX5YR0lKTExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSExNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3Z3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINVbISHhoaGh4eIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSUhISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpVgYOEhIKChYaGg4KGhYSEhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJiouMi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIKDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo7Ojs4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd5e3p7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhISGiYqKiIeIiIiKioyKiYmMej45ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT47Ozw9Oj47OTs7PDs8PDk5PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXR2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA+PT0+QD8/P0A/QD09P0I/QUE/QUA9QEBAPj9BPT48Ozo7OTk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5DR0lLSklGR0dERkhHRUJAQENFQ0NBQkNCP0BESERDRURFRUFGRUZERUZEQEI/PEA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGWIWCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyLioqIV0dMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkJHR0lZhYKDhYWGh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSklJSEpGREdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0dGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA5ODw7PD06P0A+P0BDRklJUF+Cg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1yTlFPTUxMS0xKSEhFSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4tfUlJQTU5NS0pHRkJHSkdMSkZLTktLSkpNTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRUdIRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxYVlJSVFJPTEtKREVGS09OT1dVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSUpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9DQkZWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hWVWthRVJRUVBJOztRU1JgdV1VVlRWWVlSWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLSEhKSEVGSUlJSElpcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklJR0ZGRT8/QUFFQkNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJdXVZdWlZFUVlaW1lfVFpnUlVWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSVFJWVlRaWnWDWVV9kGBcWF1fV0lWXV1bW19ZSVlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNVVFdSUVdWY5aAUWVyWFpXX2dQYGZbW1hcZ2FHT1poZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpbXF5UUVFQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXG1ydXZ1dHN3e3p7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSEJDSEdIS0dEQkFEQU9QTVNkc3R2dXN0dnp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz8/Ozs+QEA/Pz5qUUthRUZISUVCP0dMTUdNUVVJQkU/Pzw9PD09Pz0/QUNDQD88PUI+Sk1GVW51dXVzdHZ4enx6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZEJAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztCSD9cc3R1dnV2eHp8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJYR0ZGSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FXUE1JREY+Ojk2NTg3OTc5OjM2Njc5NTxCPWVzc3Z3d3l6e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LVFRTUVFVT0xSU1RXWFRUWFJMV1laVlhYVlhZXVdXWGhza11WYXNrYWFfXmRhX15ZVVBNT05MSUhKS0lIRkNRUFNaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NTc1Nzg1OTlHbnF0d3h6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTFBSUk9NTU5OTkxKRlFQVVlTVE5KT09VU1RcVlJVU1JPTUtJSEhGPz49Ojc4NzY1OTk2NzY3NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUFBQTk5PVExNSVBPU1RVMjxYTUlBUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMS09SUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjQ1NjY6ZG9xdXd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkZBRkdHSEZKREhKSEdFSExIS0hGTE1QTUcvRV9SPjNAPmpvYVJSUUBGVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR2eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRUZISk1LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUV1dVTExLSD05ODc7P0A+PD1BQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFBSYVxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSUpMTEpGRkZEP0JDPjxCRj9CP0FkcHN3enp7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47P0JAQD5BRElFQ0dHSUZJRUJCPz49Q0JBR0pFTU9iZVFNTk5XS0xNS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxAQkJBREVHS0ZDSUlHR0hDQz9CPz9AQT5ERUNLTlFUTEpJTVRGSUlKTEpLTElKTE1PUFJQS0dDS0dDQkpKTE1PTUlKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFIS0NHSEhHSktJSktER0I9Pj06Ojo7QEI/PUJCQkNIRkpMSkRJSUZHR0NDO0FAQj5AQENEQ0lNUEdJS0dIS0RISUtNSEpMSElKS0pNXVJISERNR0FES0tNTVBOS01KS0ZHR0pNTlFOTGJtaXZ2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjpAQ0A+QkNERUlGSkpMRklJR0ZGREI7QkNDPkBERENFR0xOSEtOSERIRUlMTk1ISUxHRkdJSUxOS0pIRU5JQkZNTE9NT01OTk1LSUhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pDRUZFQkNCRUBEQj5APjo7Oz06PT5DQT5BQ0VHSkZJSEtIR0dHRkVDQD1FRUI+QkRDQ0VHSElHTVBKRkZHS05PS0ZISkZFREVJSkhLSUZIUEtESU1MUE1PTk9PTktKSE1SVVRST1dkYGFtZ3Byb3J5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJNSERFR0NCQEJEPUJBPkE9Ojo9Pzs+PkBCPkBCREdLRklGSUhGRkdFQ0JBQUZGQ0JDQkRFRUdHSEZMUUxJT0pKTExJR0hFRkVEQ0lJSEtKR0tSTUJOT01QT09PTk9PS0tLT1VXVlVUWF9eXGlhbWluaHJzYmVmZWRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HR0ZIQkJAREU8QUBAQzw4OT0+OT88P0JAQEBERkhFSEZGR0ZFRURDRUNESUZDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISUZDSUpJS01LT1NORFFSUFFSTk9NTlBNTE1TV1ZXWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW96TUhHSEhCQkJGRTw/QkJEPDc6Pj46PjpAQj4/P0NFRkRGRERHRURFQ0RFRkdKRUVJR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xMT09SVE9IU1VTUVNQUU1OUU5NUFdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnlOSUhHSURBQ0hFPEBFQkU9ODo+Pj08PEFCPD8+QUJGQ0VCQ0lFQ0VFRkdHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05QUlVWT0tVV1RRVFFSTE9RUE9UWVpZXFpZW15eXmBjXlxhY2tiYGRnaHKFaGdqZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdU1JS0hKRUJFR0U8QEdDREA6PD5APz4/Q0I8QD5BQUZDRURESUVGRUdFSEhGSEdJS0lGSkhIS0hGRkxISEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUFZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd292SktMSkxHQkVERTxARkREQjs/P0FAQEBDQT9CP0FDSEJGRUZIRklGRkRJSEdJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5PS09QUlVYVk1OVFZUU1JRUExOVFNSV1teXl9dXWBfYGFhX2FjZWJjaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dLTUxMTUdDQ0FEPD9FRUVDPUFBQ0JCQ0VBQkRBQUVHQ0dIR0dGSkdDSElHR0pGSUxISUpNS01MR0tJSExLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkJFR0NDSUZDSEpKSUlLR0RLSkdISklJS0hKSk5MTkxJTEhKTUtaZkpkXEtsU0hPTl9uVWtzW3FwYndjUlBhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KS0pGQz9AQj89REVGRENEQkVFRUZCRUZIQ0RKRUVKTE1LTExHR01KR0lLSEtLSUtKTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXhtbHZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0JCPz5CRkdCRkNFREVFRENISEdERUtHR0xNTktNTUdKTkhKS0pJTEtKSktNTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9QEBGR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSUxLSUpNSUpKSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSURFRUNBQjxCQEJGREdGTEhFQ0NIS0hIRkpMTEZOS0xTUkxHTE1ITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25ub29xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFAPkNEQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTUxJS0tLU2tiWmleX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcb2ppZFtwZmRwXFpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRUVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRkhIS01JSEpJS0tJSElHS0tMTEZIS0tMTExLSUtMTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFlcmlUWVdbW1xVWVpdWF1cXGNmYWFlYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NIREZHQ0lLTEhGREdLTEhER0hQS0xPS0xXTElFRUhJSkhJS0lMSkhGR0dJR0hJRUZMSUpLTkxJT1xXXlBcW2BeT1hZU1xcYl5NWVpNWGFSSllhWlNgZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRUlFR0dGS0pLSEVFSkpKR0VISFBKTU1KTVNJSEZBSEZKSUtMSUxKSEZFSUdERkdFRUpIQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOXlxeU1teY15aXWBjYFlfYltgXltUWFdZXl1jYmNhY2ZpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNHR0VIR0hLSUlJREZLS0tGRklKTktOTEhMTkhIRj5HR0xJS0tKS0tJR0VJRENEREJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV5eY2FgYmJiY2NlWlFZVlVcWl1jYF9fY2ViaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFSElGR0hIRkZKR0hGSEtJTERES0pOTUxLSEpKSEpHP0dGTkpLS01LS0tJR0dDREBEQUhJQj9JSkhPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU5eUU9cX2FjZGNjYlxkY2JkY2ZYUVVUUltYWmFfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0VLSkZGRkhHR0lGRkZJTEpORURLSkxOSkxJS0pISUZCSEhRTUtLT01LS0lIR0VEP0VDSEhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11WWWBSUV9fYWJhYGJiYGNiYWRkYlhPUVFRW1NbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBR0ZER01SSENRSkZISEhFRktKTVBFR0hKS05MTElMS0lJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VDV1VFXFReU1ZfWE5UVU5aW01KS1RgYVtfWF5eYV1PWWJcYGBfYmNiXWFiV19fVFBOT1BYUl1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQQ1ZeSUdHSERGTUpQUEVJSUpLTkxLS01MSkpHREpNUVFOTk9NTkxOSEtBREFDREZEQ0FFRkJNSEJLTFBPTkxGTUZHSUpIR0xMTU9QSUxPUE9TUExRU1JVWllXWVhYZFdPU1RQUE5NT1VUW1lZW11cYGFkZWNnY2tscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hNR0hKSEdNTFFRSUxLS0tOTlVOT0tLTEdGS1BTU05QT05PTk9IS0VgRURfTERmY0VNW0leW3JtT01VbVlMQ1BgVWxXZ0pdV1VeRExRVUxNVFZRUlRYV1RYVVRcVVBmWmhoZFhTa1NWVlVbXFtgYGFhYWJgZmhmbmxocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09TSUtGYFRISk9KSU9NUlFLTUxMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzWFBtSHFub2FWUHFxc1BDa3NtcXRwU29fW25YXVZcWFVraFVdVmNaYFlbYFZVV39qdHV1X192X1hhXFxmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1OQkRMTEZKTEZRVkxLTklLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWVJUUXZndGxwYm5malFyT013bWpycHNycXJwb2+AXWZ6dXhxcXpxfnN9a3V9YlJnfGVzc29zcnt8b315b39yX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQTk1NSk5WXllVTFFTTllaTVNTUk5MT0lRUlRZV1dQVFBQUFFLR2Z4bGN4cm1aS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JSaXtsaWp6en1seHp/b2dvWHZ2anV1cIBgcmd9aWx4fG9eX19iYVtdYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0JFUFBISktKTFFPT09NUFpgWlhLVFdQYV5SVlFZU0xPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VEtoeH14YHl7c25hXm1vY1JncXVubXlwd2x2dHRxbG1cdH56a215fGt0bXxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUElMTUtMUVFRUFBRV1xZVU1VWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGV8aXJ8XVRLbGB2dWtpdnx7bX54a3xwXV5eYltfYmRkZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxnbW1yfGttaGt7dG1ta21PSEpLSElJSFFQTE5PTEtTU1NPU1JXUlZUUFdbVlZUVFRhYFBOTktUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1dYUl1ZV11WVE9ZUldXV1hZXltncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlYUE9MTVZUUU5VU05PTUxRUEtKUVJLUU1LS09SVFJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1BRVVVWU1pRT1NSV1ZUWVZUWVVUUlVUVFRXWFddWl5hXVxaWlxcYGNcXWJjZGZkZWRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFRRUEtPV1NQTlVQTlFOS1NQTU9VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RPVFVYVVVaVVdZVVJSWFZVV1tZWl9dVVleXF5dXF1gYV5bYmJjZ2ZkZGJYX2BiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FaWVhXWFpaWFlWXGpkVlhZWldWVFRQS09WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVk5XUlRVVU9OTVFTVVVUVFJUWFZaXVxaVldRUldYVltbV1FUVlZWVllUWFdUU1JYVlVaXVldX15WXl1eYFxcYF9fX1piYmRoZ2RkYVliYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF9bWVZWWFFMTVZTTU5ST1FST0xQU1JVWlVTUFBMUFdWUldTU1NYTU9QUlRYVVVVU1VZWFteXVtbVlJPVVZWW1tXUVRXVldYVlRYWlRTUlpXVlxeWl5fYFVhXGFhXWBiYF1gXWNhY2doZGZgWWNgYV9fZWRfYGNbWlxbXFlaWFlXXFlcW2BeX1teXmFgX2JcWWBaUU5PTlZRUFRST1VUU1BXXF1cWF5cX1dcXmpxd3mAY1xbVlZYUU5PVlNOUVFQUlRSS1FUVFlaV1VPUk5TWFdUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVVZcXFZSVFZWWFlTVFlcVFNTXVhaXV5cYGBgVmJbY2JeYWNfXWJhYl9kZmlkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJRV1JUUFtdXl5bYFxgVVxdaWpyfXNsZ1xVWFdRT1JaU1JRVFJUVVRLUVdWW1laU09TUlZWVlRPVlJTWlJUVVRYXVdYWFNYXFheXVlaXVRVTlZXV19bWFFUVVlZWVVXWVtUU1ZeWV1dYF1iYl5ZYFtlYl9kZF9eY2NhXWVmaWRmXV5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVZVVFRU1xUVVRVVFZZV0xSWlddW1xST1VTWFZWVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paU1RWWllaVlhZXFZUWl5cXmBhX2RjXF5dXWVhYmZkXl9kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdX1RdXmJlZXaCe2hYWVlTVlNWXFdXV1ZWV11YUFVdWl5dXVRSWFNXVlRTVFhSU1ZUWFhYXV5YXVtWXV9YX19YXVZRWVRZWlphWVxVVlhbWltYWVlaWFZdXl9eY2JhZGRcYlxgZmFkZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVdWXGBhYmNhY15fVltgZGFfenVvaFlcWlVXVVdbWllcWVhZYFdQVl5cYGFcVFVYUFVXVVNXVlJTVVZaWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVpZWV5fYGBkYmNlZWJkWmJmY2dmZV5hYmBjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBrZmheXF1bVldYWVxcXF9bWVtiVlRYXl1hY1xSVlhRV1ZXVldWU1ZUWFxcXmBgXWFcV2FeW15cW15YVlhYW1tfYFxfWFldXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNgYGVjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlJXWVZXWlhbXFhXWV5gYmFlYWRhXV5ZYWNiX2FgYV5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBYV1hZWVdWWFZdXV5gYWBfYl5ZYV1dXlldXllYVldbXGBfXV9aWl5dXl5hXFtbWlxgYV5iZGNlZmVmYlpkZmdpZ2NfY15hZmRaaWliZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMV1dcWVdcW1xdWldcXV9gYmRiYmFdYFhiY2JgY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpjZWNgUlxZT1hYWltaWVhaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfX1xaXl5gYmNcXFhbXmBiYWNlZGdlZWZkXGVmaGlmY2JiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hQWFpdYWNmZnJrf0pZV11aWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBjY2JcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pRWVhcXVxbWltbY2BjYmNgYmRhYGNeYFxeXl9aWFZbX15dYWFfXVtgYWJlYl9dVFxgYGNkZGZkZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoY2hoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t8fHx8e3x7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7fH19fHx8fXx6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmJiYyNjY2NjZBGKCoqKioii9vS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyNj5CQkJCQlDsWGhoaGxCP7+Xl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXl5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH19fX19fX19dnNzc3Nzc32FhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnh7eHp5eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t6enp8fX19fX19e3p6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx8e316fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3eXx7fnl8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8eXl8enx7d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en97e3x7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5fHt6enl7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnBwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBxcXJycXFxcHBwb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXB1cnBwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXpxb4t2b3BwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFxjXNzmHhwcXFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycXCXe3agf3BycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdJ+Ce6SHcXR0c3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4d3d3d3h/p4yIppB3fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3t8fX6pkoallXp7e3t5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX18fH98gquciqKVfX1/f398fH2Ag4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgICAgoCar6inp5V/f3+AgYB+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f39/gYGAhaympa+mn4J/fn9+fn5/f35/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+fn+Bf36PqZmiqpujj3+Afn+Af4CAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GDg4KBgZ+hk5+kmJ+YgICEjoJ/gIGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYOLi4WBmJ2KnaqbnZqEiJuSgoOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYWVm4ySnZOdrpmTnp+fmoiHh4eHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgo2lqqypo52lmZ2kop2Qh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg5OmqKGcn5qbnp+eloSEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4KChJGXlpidmZyenJqMgICAgH6BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4F/g42SlpqXm6Cdk4SDgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZeIhIKFhpCWmZecn5uIgYSDgYGAgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEipOZlZqckIKChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhIODg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYycjYCCgYKDh5KNkY6DgYGCg4OBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZiMgIOAgYKAhImIgYGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqHg4ODhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4p+hISDhIKDg4OChIOAgoKDg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf35+fX+DhIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFgoGBfn2Bh4aDgH5+f39/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFhoWFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGCgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX5+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYmDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4SDg5GSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfn19f4B+fn5+fXx9fXx5fIOGhoeEg4GDg4SFhYWDg4WEhISEhISFhIKCgoGEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4J/f4CDg4ODg4KCf31+f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIKDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn2AgoODgoOCg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f3+Afn2Af36AgIF/gICBf39/gIF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gICAfn9+fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/f35+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn59fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6eXl5eXmAgoKChIOBgoOBf4GAgYGBg4KDg4GBgoCBgH+AgYOBg4KAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fImTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYKIhYKBgYGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjISDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoOCgoKSkIuIiYeJh4aGhIaFhYSEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGSjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYB9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgICCgYKAgIGBgH+LlI+Mi46OjIiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIKAgX5/gXx+fn9/fYCCgYCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjIyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYODf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6MjY6NjYeEhoaFhISEg4KDgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19fn9/fX6Afn9+hJKNjIyPjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fnx7fHx8e3t6fX6AgIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2Mi42LiYeEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gH+BgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBf4CAfHx9e3x8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgYKBhYaFhYaGh4WBhJGPjYqJi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f359f358fHx8fH18fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko6MiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg319fX19fH19fXx9fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uKiYyRj42KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3t5enl5eXt+f4SDhIeJioeJjo+Ni4mJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOBgICAg4F/gIGEgX5+gH9+foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fYmHh4WFh4WFhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4OEhIWEhIOEg4GCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX6Afn5+foB9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn19f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKDgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4J/f4OCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYGEhIWEhISBg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF+fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICBgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9+f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgYB/fn+Bfn+AgoKAgYOChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAe4B+gIB/gYGAf32Afn5+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDg4ODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgIB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH17fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHt8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgYGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGEg4OEgYGDgYKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGCgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDg4OEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhIWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISFhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgoKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhISGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG52goGBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WFhISFh4aEhIWGhYV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aIhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4KAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaFhYeFhYeFhoWGhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn18fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYOCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WEgICDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoaGhYOEg4aChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhYWFg4SDg4SChISAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7enp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1NTV1dTU1NTU1dXV1dXV1dXV1dXV1dXV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fV1dXU1NTU1dXV1dXV1dbX19fX19fX19bW1tbW1tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi60dPT09PT09PT09TU1NXJu729vb29vb29vb29vL/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E9PkA3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6Oip8/T0tLS0tLS0tLS0tLUv6iqqqqqqqqqqqqqqqiw0tLS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSko6jP09LS0tLS0tLS0tLS1MGpq6urq6urq6urq6uqsdHS0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7PDw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamsz9PS0tLS0tLS09PT09XCra+vr6+vr6+vr6+vrrbS0tLS0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tTV1dXV1dXV1dTT09PU09LS0tLS0tLS0tLS09PS1dTU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7OztPU0M7R1NTTzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXU1NTU1NTW1dbW1tbW1tbW1tfW1tbW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztCmksXUrYODlc/SpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPTo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztKqnayVw5u8uJm0s5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DJl5mFpp+ojoCNxZ2YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PD06Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0aSwvZqMo4ms1rqYop2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Q1bmbi6utm6WymZavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P0NGaoKWknJankJqEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX19jY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NWnpKDVpLSrn3+gqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NLAnaLI18rZwZyAvK2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPUpKCPucOPoZ+fmaiWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HIxqa9lZOTqKuin8Ogq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQT49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg1MqOk5eQqquNj6zYwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLUwq+ws9DWwL/W0tXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dTW1tbS0tXV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc3Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2ODk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Slpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIFza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioaCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpyenZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYm5qZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6Kkpqempaampqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjntqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo7PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6OjpKKhoJ6bmZmYmZmZmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/OzpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoaGfnpybmpqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56bmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmpmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZmanZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmYm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmJubnJyhnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQlJmZmJWbppabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhIyWi4yKkZyLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZCOloKMfo6SjIiFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32GjZmbkISMe42Kj4p6fX2Gjo2Kho2UkouQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouGiIWEiIiJhH+Cf3p8eomVkZCChWmGhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6JkIt/h42Mi4qHkoqHho2blouRiH9fhoWIjI6LjoqJkI+Oj5SUmJCVnJqdnqiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnaCdk5eaoJmdm6KhlZCbrJGTm5h7WYaPiZGRjpKOi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6qpr6GaoKyKjqGfdlmDmY2YlJigoKGknpuapaekqauvrKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66vqqqrpKGipKmnpqmooqakhYano3Rbc6CZnZifoaKpp6Cioq6sq6qnra+opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKelp6mnqaijp6aZnKSmoqGhoaGlnIKCoaJyY2aZn56Wn5uaoqKgoZ+hoqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXFBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+fpZKAfp2dcWhfjaKhm5yanKCeoZ+enqCjmZabmKSioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirsKmoqqihn6Cnqa2wsq+so6Kmoa6KfH6lnm9qXISkpaKenaCen6Wiop6fopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltaYF9aXFZcaGRuY25qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu5g3d9sqZsaVh+paKjmpycl6KopaGfnqObnaGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eWpiW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0uHpycbCvZ2ZUgaWen5aVmpekqqamoaSjpKumpZmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odWtxaGlpYVlTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW1vLy+vLy+xrq4t7q9tK53bmWst2tgUo2tpaWdl6Skp6ikrqSrq7W1r7Ogp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrapfnVporZ1YFacta6uqqqnrKenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5rY2Jud3V2bmxbYlFWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr63pol+fZWjhG1qqrysr6+0qaqmqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbWZudXFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PJsJaIe4aMkYl5gKG4sJ+asK6spK2wtKeqqaiqrayppqWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3RrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+8u77EvsXIxsbExMS5tMC3tLvFy52CeGZ2hIZ8bHyGpraqmaK3sKawu7WsrqWko6ikoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ4c3lmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GycW/w8DLzc/Kx8TDxMLEvri9yr2JbmFTYn1+aVVncI2zqp2mtLOsssC1s6ypo6GtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXWtvbnh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczOz8/Mw8fGyMnIx8rOysnHyMe/xsukeV5OSFR3dV5EWWJ5p7fAvr65rLnBurysraaqu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGppdG14bF1kW1ZgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzsfMycLCx8HM1dfNy8rOxcm8imtQRT9OcGhYPU5cbJXEzMbGsJm6xLu+tLCwsMG+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVudGJdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8S/v77Ey8jKy8m8vMjGydXb1c3JycXJp3ZaTFdFSmhdVj1JVmN7vNDGsJCJucK7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVmY2pkYmptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIycPL2dPIw8LBxqJpTGKVakhhVlhBTVVeaa/WvZN2hby6u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjZGRqY2djW1paXFlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ytHBvc/TvLS8vb2ubEaAvo9KYFdaRFRfW1+ixqN7aJPDt7u+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmNoamdnaWZpXVZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLevrre1ub+7wtaLur/C2bmhpa+0uHdJg6uOTGhlY0JVc2BXkZ+CbGWoxr+8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeHFtZWVmb2llbGhYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNDEc6nLvtzNmo+WorCBTXF+cFd/eHFOVoFlVXh2a2NuwcbFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NmYm1gXFRJS0pESkJDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC4u7K9vrvEtrW4tbfAvsS8wsTYq3B/vMjU3rKEhY+ZfVVjZlZymYJ+blV0Y1pjYmFchdLHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGludG54Y2diXGNRS1RIRUVDSEM8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm9x8rKw8fJ0pRsca3R0NvUknZ8f3ReYl1OlaWDhIlUXV1cWVlYYarSycfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9jXmBhTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8bTw7q+vMS+t7zAv8nQx8jKysCCbm+jy8vP4LhzamtnYGBXVaihgIOSXlhZVlFVUnnGy8nDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8tru5qtvDvra+wL6+t6KYpq+zwsCjdHJ0mcTHytbXhldVUU9QRVufkXmDiWdaVE9OT1acycvGwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3hzZ3BdW15dWVJFRENNSUFFPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vGtWyrzby1ucC8p3psZ25qcn+Vlm10d5W9v8bB1ahVQkA+QjlaiX1xf39pW1NMTE52t8DBwr6/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f312bHV7cG5pW19fWlNQQUZIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzrF2gLK8tbbBoYVpWl9fTFJbW21ucn2duLfCuL27c0Q1NTk0UnJqanNwZF9XTEtcoMC6ube2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3V2d25xYF9mXVtUSj0/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsqmhHeKoa+0mGhjZlVZYEpKTVBUanOEo6+3vrmztp5oNzA1M0ZdVV5kYmBiXU9MdrS/uLKusry6rru0s6arqK26vrjLwr++rKuwr7O7t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYlteT0hCPz1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Gp4h7do2hlF5TQllUSGJsV1BGSWOLn6qvtrq1tLKtlFAzMTFBUEZRV1hYYGBQXJi5urStpayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZ1hcXVJOTkE+SkJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7OQgXmIjmtOSkBoWEJPd4OWbExCV36wtLO1srSvrq13TDAwP0U7RVZXUVhdUXywsrGsrJ6kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c210aWxdW2pUXVxQTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7i1lY2JhHlWRkFSiFdKSlZ2jIBhP1WnuLO0srCxrbC5pHtALT5ae5enopJzVVqVq6yro6egnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVWFjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yu6mYmZVoTUBWem5PSUlMZpp/V0VVr7uxrLOvrqyttbegZmeTqaefmpueoH93nZ6nqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6ajm6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3pjd2xuXFFoVFBOR1BNTEJPUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3Bqqa9ZEVVooNQWUlLYUpYiWNmZoGstaqytK6qqq6wrauwp5yPlpGNlp6goJ+ao6SfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mbpJmXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dn1ta3tkaFVRY01KSEdPUk1KTkc8RUA8MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCsxsDKmk5Cd51uT29LTmJmdXJgX2Z0jbCvrrO1qqarqqKcmJKMj5SVlpeanqKhm5yknpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3h8ZHl5YGJSVWBISUpLU1RJUlBMOT9BNjc8NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpcbGiFdSS2aiXml+cnZZUmtjXWlmZWqLtLCwuKymoJudmZSXmZiOjZCUkIqNjZOYopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKqyrqKZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKT09VTFNMQTc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo415VWxydXVtYnVyWFlgX2RpXWBYYqyurK+nn52hn5aQk5ufmpiWkZKem6Gjm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWp3dV1sWlJgSFJVSEZVVkpCTEc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCjfm+BbmBkV01bUlhLS1FXUUlST0OXrKqppJ+emJKSk5iXlZSUi4eKjZSdnJ2dnpeemaafoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+np6Wkn52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pdm1obVxYXENXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnIhhV19mYFZNT0U8Pj9DQz49QlF3qK2pqqWfnZ2io52fnZmbm5OSlJOdnZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6mzraqzta+zrqqvo52rp7axraKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3RycWhWXFFGVEhESlBJP0VBNEZIOTU7PjY7PD49PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5N7YF5lX1BFRTpEQEY8Pjk2Tn6qs6ejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeG2IoKOiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3xMrJw8HGvrq0urq1u7ewtbKqurKuu7e/u7qruK2rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGtlWltGS0xFRFNNREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdnJl7cmlgVU5EPkpcfXBiQT1cjq6soJmbm56emZeXl5KMjpaXk46NkIuCg4J3cnFtcI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxczR0tXO08m9wL/Du8bFyMXR083T0NPTzMrCxcbGysjOv8jRzMfGx8XBvMPBv7+/tr6zrr/Aw8PHxMfErr+4sri8w8LCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MREVQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaGRbU0hEQD9MiqGpmoOgsq2jnpyfmpeWlJKUlpGQj4yHg4OIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fS19LV1tPUyMzGzM3J0s3O083FyMrKwcbLx8nIxr/Ds7PIxMvLy8/Hyr++v73Bx8TMzMjJwMO/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2JTS0lEQj9EVrPSvbKwppycnKCkoZ2alJOVlIl9d3BrZWJocW9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLV1tnW19PX2M7Sys/RzM/QzdPQv8jHysTMzMzOz8XGx7a/yr/SzczQxsnIwMTDyM7N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSUo+O0E4PTQ1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqBZSUBBREBHUXmyrqealJefnJqgoJ6bnJmViXdpY2BfX2BfXl9fXWJsdXRwcG9scnF1ksTIxtTW19fX09bQ1dTa1NTOz9XU1NHRzNHN09fW09XQz9LT0cnT0cjQ19fY0dfS2NnU1szPz8rN0svO0MHGw8jGzs3R0dLJzM3AyszG08/MzsjFysfHyMzK1NTR1c/SzNPCucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaOrZUM4PT5FWIKqqJ+YlZeZmpyfnZicnJJ9cGVjYl9fYV9fYWBfYGBfYGZucHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY19fLyM7Eyc/NyszAysDIys3O0MvQzs7Mzs/Iy9DQy87KwsnHyczLzNLTzdPR0dDQyr3IubCuu7i1qrawrai4rbO+u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPD04Nzg1NTs+QD05PDw4Oz45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramksXpKSEM9WIyhm5WTl5uenp6ck5aXlIhrXl5eYWRiYGBhYWBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztTLzs7FzsrS0s/Hzs3N1MvO083L19bQzNHUy8zQ0tPKztHU0tXVysDKwsXMwsjJw8zDxcjKys/KzczQztPMxsjPzMjHy8XGwcbKzM3Q0cbQzs3NzM/Fx8G4ub3Dw73DubKyvrG7w8O1qpiloZmWkZWVkouUjZqRlJSPj5SCiYZ5cXJrbWdgYHBoWVhoVkxGTElQUEI7Qz47Njc6ODo6NTc9PUE8Ojw8OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKifrpV4b3N1gpKZjYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNiYF9fYGFhYF9dW11ncnJxcnNwbXJ5pcfTz8vQz9PUysXJycbGv8PGz87HxcfNytLIy87OxtHS0M3M1MrHy87PyMfP0svRz8a6xL/Gyb3Cx8nOxcLIwMfNyMTMyszPyMTE0MjGwsbIxL/Bx8zMzM/CysvIx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsbKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7uto7Z9aIOEpauTjY2Wj4WDg4OBfYSEfnNgW15eXmBeYGNkY19cXV5fYGBfW1pcYGtycm9va2xvcH250cjJys/LzcS6wMO7u7q6vsnGwsPAw8jLycjKyMHFzMbIy83JxMLKycHCzNDFy8i/ucG7xsi+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xr28wMPFzMXFvMDKwsXH0sXAyb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZujoJuUe3dydGZpWmFubFpcWFJETEZCR0RMREZTQDU0MzM0Pz0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sa+1bF96fqSQipKWhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgW1xdXV9eYFtZWlxib3Jva2lscG9zj8e9ycXMwMbCsLa6srKzsrHCvLy8urjBwcHFvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7u8bDv7zBzcPGvr61wb3Dur3Gu8O6s7zFxMLCt7+1tr6/u8zDvLW6yLq/vsvEwcbCxcnGycbQxsLMx7LHycPOzMHFw8C9s7ewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NXXllKRkpGSEpBRUJFSUA5OjY0ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1tfNys/FycXHwbnFvautpV9ldYaTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNhYWRlYl1cW1xeXF5dWltcXmhzcW1nZ25wcnmdvczAw7rAuK6wsaeqraynuLS3tLOztLu1vrK3sLWvsrzCvMHEvMC7tbK6vsC4x7m0u7bBwry4vcbBw7u1r7K2ur+0xLe7tau4vb3AvbG6trC2urPFvLauu7+1t7TFvL7DxcDDxcbIy8XAxsa7x8vAz8nHw8bCw7fDvb22ub7Hv6y1urW3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcXAv7q3ybaqsJlbaXGMj4WIiXp4foaGd3eBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZrbm5yfKTHv7m4tbCrraeeoqmnnquts62qrKm0rrexs6mupqyzvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLLAtri9sLGosrO1u7yrrrWmrravu7Kwqrmwrbuuu7i7wMC+ucK/x8PFwLzGwsjKuMXHxb/HxMO6xMbCu8bJzMuzucK9u7OJc3Z2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj49OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXQx83Bw8a/xMTDw8rCycq/wLzCurO0tcOuqbCRW2p/koeOj3t4fYmFenuEgHduXl1cXF1fYF9fZGNhZGNiYF9dWltaWl1aWlpaXGVub2hmZ2lrbnKBrbmwta6lpKenmqCkoZqcpayupKiiq6qtq7Cjpp+qrbW2sb25r7evqK64tLS8uLS8r7i5tbK8wbLArqWpo6uxsrOovaqrqKutrbSzpqitoaSvqbKmp6iupqi3rLGyt7q6vLG8vb6+xL+1wsHHyLe/wMW3xMO/u7/Ewr7EyMzKv7/EwMCph3N0cmppXWFvY1dWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9CO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HKvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairk2VtiIOHi4B7fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWppaulnpuhpZSepZuYkaGjqqOjoKWmp6atoJ2cpKassrC2t6ewrKiqtKu0urG2tq62ubKvurqxtqWgpJ+msaerqLmqpKenqKeyraCnpp+bpKasnp+npKChsa2trLK0s7Swtby2u8HAsrq+w8GyubnDs8G9wLW4vL2+vMLHxMPEv8DEoIN4cGxiZl9rb2BVWV5ITmdPVEhFS0Y8PT89Ojs7ODI1NTM2OTo4Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9tqCelZ2hprq2q7Ozu7PEz8nLwsa4tsfAzL+4ybe7xbizxLizv8CstbyyrKWvs62ho5JpcYaFhoB8eXVzb21qamlwaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1vh52on5WVmqGWnKOZlo2foaOnnKCgpKWip56bo5ugq7CtsbajqaqqrKyktLmtt7Css7Wus7WusKqfnp+jorKkpqm4raKmpqCorKuZn6CemZ2fpZqZo5ybna+pq6eqrKytsbK4r7i5u7C2vLy6q7OzubO+tLaysba1v7a+wL3Dwru6vZeEenNsX2VeZGRYVFddSVdcS1BHSUpHQTw/P0A7PzwwNDUzNTo7OTo4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vDw8++use4uL+3ssK0sbu8q7m6saKeqaunl56QbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3GNp5yTlJSbmJuil5aRnKKiqJ6cnaWnoqWcoKGbma+urq6yoKairqunorWxsrKsqK+zp7qzpragop6co6Gto6Kqtaqio6aepaajlpmel5mbnaCal52dnZytoqunpKSmrauztKq1sLOrsrm0r6qvsrKzuLOuqayusriwu7a6vcC4s7GUhXl1Zl5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLMyMa/xbbBwMbOt8DEvbO5ubO/trG5u6yytK+fmqSpn5Saj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqGbk5SPlJeXoJeZlZegnqGdlqChqaSfn6mdm5urp6+wq5ujpLiqoaCuqLaqp6etsaS4sKS3oKKbmZmqpqGarLivoqGknKKfoJOUoZSWlpuYl5aXnJWfqp6ppKKdo6qqsK6otKuqp62zsKWrrrOxsLCur6eoqLKtsbSwvLS6uK6jlIF5dWReYVZZWFNSVEtNXkxPS0dHTExFPUE+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2nqKOqu8C9wLmutLjBzMfFwsO9xbjIy7LBwsGtvLu1u7y1ubmwr7CqnJmhqJSRiouAgHx3cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjY2JjYmNkZmmBlpOVi5KUlJyZnZaWnKCcn5agn6empKann52gpqCqr6afoqS3qKGhoqi0oqWopbClsa6stJ6hnZWVqaGilK2xsZ+io52emJuTi6GUkZOYmJOXl5iXnqecp6GimqSlpaukpbCnpaOrq62mqa6vrquoqqqzpqasr7Sxr7y1sa+voJJ6d3JlYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxce2xcSywr/Fq7e3vba9urq1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVNVUlVgYF9gYV9hYWJlaoCTk4mQjpSTlJ2VlpekmaCXnaCloq2mpaWjpKOcqqulmp+lsaqgoZ6lq56oop6trKmprq2ioqKVmKObnJCrqbCcoKKfnpeZk4qekY2Sk5aQmJiUnKGjnaShopWgoqSmm6OrpaKkqqOrrqWusqmmpaamtKapqK2ztbS5uq+qrJ6McnFvYFtXVlZSR1FPSFpbT1JJVEtTTEVGSUQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTU3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb7DyKyxuMG1u8C7tLSqrKaVmpuciIByiIN7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eX19fYmRtjo+EkYePkI6ak5WSnJujnJuhqKmrqKynqaakmaWvpZWZpa+qoJyZm6Cer5mcq7Ogpaafo6ShlJOblpaSqaqtmpygoaCblJCMmY6MkIyRjZaVkJ2ioKOdnKOVm6CjoZeiqKOiqKugq7Ckrbelo6Sira2qqKuvs7ezvrWzq6+YhXRzaFtZWVNVUkVYTFFbWE1UTlBMUFFJTklCPT8/QT89NzU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9u7O1pamglpeYl4d6dIB2d25taG1tbXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZH6MgYt/i4+Jko2XkZeZoqCboKyqpq+sqLClqZqfraCVlqSpqJ2YkI+anq6XmKiqmZ+dlKWhnpKRkpGTlaeqpZqZmZ6elo2Mi5OGiY2Dj4uSlZGgnqGkmJWflZqhop6Um6Wlp6iooLGxprG8p5+irLWrrqewtbC4tcCxrbGrkX5yc2JWVFVOUkpHVlBSUUxMV01KTE5SR01LQUNGREM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NzYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA5f7OspbG3qqWisaudqqepsrGktsa0ubqzysW5usHL0Mqxtri7vcHDsa+xt620s7uztKKjnJ2Xl5SDf3drZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/dYiMhpCKl4mUk5ibmZ6pm6CrpqasnqiaoKack4+fo5uXl4WEkpujkJWjnZaWloiim5uUi46KkJqkp5yVlZebkZKHlI6LgYuNgJCKkpKSoJqgopaUmJmVoqaZjZmkpqimoaC0sqeyt6Gcoresqq6ksrKmtby1rKuxo4l5c21dTlFRTE9DTU5OUEtGTk5KSk1OUUhNSkFHS0hIQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKSnpKqloKimpbOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq26r66fmZqdlZSHe4NuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW9zdnCEiIKIgJGEjoqUkZSeoY+bnKOipJill6KclY2HmZqMdI2Dfo6XloaRmpCUjo57mY+djIKJf4mYn6OekJOYloWNgpR+fnSKjnqQh5OQkJ2bmpqSlpCdjqOjjomaoKGjpJuitK+sr62fmKW4pqaxobCunLC7qqmvqpmDd3NjVk1ST1BOQ1NOTFFMQlBRSElNUk1ISkpESkxGSko9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpqWnpqezp6W0wbiwtLDJxLe5wc7GvbOsusGrrcOtp6Gmkp2mtqyjoI+VlpKPfnh+ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVZZW11pbHJsf4V8dE5Yco+Cl4aNnZeLlJGfmJ2VlJaVj5aJgJOKXztXb3yMlImAjJKMkIaGc4qFl4F5gXuGk52Tg5WOkZCDhn2TeHFwhY19iYGRjY+XmpmTi5CJnYifmIiHlp6aoaCXp66pramonpats6KmrZmsq5ios6KpraOTfnJuYFtOU1JXTERUSlBMTEZOT0lFTFFNS09KSUxQRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepqKOqsKintMG5sLWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUm7GimpiGlI+Lh31zdV1QTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXuCdFFCQH+VkpF9iZWNhIqNm46WlYmSiIaVhnmJf2BKUW54i5KEfYSNioV/f25+f5R4dXZ4hI2Zb1GNiIqGe354lHZnd4aIfYqJlYuNkZKXjISKiJWEmoyChJKalp6dlKSjqKmlpJ6asKuhpKSRpqqWoqqcoqaoiXVtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+hr6GnqKWnqLCtqra8tre3s8G7tqe6yLi2qKi1tqqyvKaelY1/iZOolpWKfo6Dgn14cG5YTUtNTU5LTVFXW1xaWFpVVVZWVldZWVhYWVlYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1KRERESU5PaFlOUVNUVVpug3N2fmppXFWPiZSJdH+GgXyFjJOCkpqLj3uGj4B2gHhzb3ZxdI2OgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gHZycpJ3aHWEhISFe5WJiIqNi4B/hIuMgJSDfICPmJSclpGenamen6CdoKmlnp2YjKekk6Gglp6fpIByaGFcXUpXUFJHSlhST0pMTVJKSkpMUElMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlraywsqq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGNlICOnI6Rf3aGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmd42XmI2PfWh5gXZ4gImQfYSYkoFyh498d3tva36tfHOQin97hpKBfX90ZnZ8hmxvaHN9iYyIgGx5cX1xbXaPcWhxgX6OcEOLhIKDhX93d3qLhX2Me3V+jpKPmIqSmpujlpmdmp2eoZyWjYqkm46el46WmJB3b21lYlpYWFVRSlNVVE9QTlBWS05LTk9KUU5IT09MRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmxr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mOhZJ5iI6LinVxfG11cGptalhLRkdFQUBDRElMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybIinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnt9fnt2b3RzhYJ5gXlwfI6MipSDlpeYmpCSlZeZl52WjIOJnpGLko2GkJaAb2pub25YVlhUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCjrKqota+urLS/q7zCv6aimZWkl56NhIuUoaGYmJGTi3OOeoCGjIZ0b3RrcWxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXGCniGKaaXR6ZX5wbX96i4l2goiGdGyakXRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxf3xocXF8bpOOj3xzfXxxcG52bYJ/d3l1anmJgoiJhJaSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trb2hlWFFaV1lZW01QVVZZWE5JSEVKSkhHQkBGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfp7uvq7KwwrG7w8ealo+UmYuOhnmEkJiUjZCMj4Zxh4J0h4yGenBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eG19bHGDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiYBnZ2JqbnJtcIN1aW9YdXCOm5J3bH96fW1ybnCAenN2bmJ2g36GgIWQkIqKiZGLkYyLjoN1eIqOgH6DgH2Pe3JwcGxgW1xeXFlYYV9STltaWFdMSEpGSkc+QkFCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ2kp56vlaW1qq6xrsGyu8HGlpCMlI+AiH1ugZCSiYOKh4+FdYKEbJWIiHt0eHhsd253Y2leSlBHPkA3NDQ5Ozs7PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx3iIh8foWDf4x+dqKZeX6GgYWZhZucYYaqn52Lg5CNeneIfomIjXOKl5CDel1kcnR6fHeKbWhqYnlvhpCCem6Bd3SEenB0eXdrbmldd4d8h3yHh49/i5KXg42FjIZ9cYR/g311d3t8iXdwc3RlZ19bW15UXGdeV1FVWFtVR0pKRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIySnJ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fYF/cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkqiHgJiYipt0bXyBhod9jmhnaHh/boWHgoVxhIZHbIB3cnl2aG1rX3d9g4l/iIWLepWdm4mLiJF/enWLdnx4bW93fX90dHJsW11dW2NjWGdmXFVPUFZZUERMS0ZOSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiJGBmpWCoaGYlZuapa2Tmruxp7vHw6iLjKGlj5SJgZF8cYOen5Gcf3aFhYqQiJBpaG+DgHSMh4SLcYWCd4d/e3aFfW52dWaAlI+GiYmHiIehqqKWiY6Yf3qCiXp5b2dreH56fnJqZF5aWl1qXWFmYFlPS05XUlFIUEpETkdDSkRCQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzIwT4NfND87bnVwZniDe4CMgIGRjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBjIuCiY2Df4l/bXBqXUJBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk5RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2aj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPoZ+TmJKEi4WPmZGWbHB1iYuCloyNj3ePhHFthYGKlpGDhYhyiKGWh5OJjo+WpbWpm42VooOHk4N9f2tqa3yAgYFzYV1jXlpma1xsa15XS0dPUlFOTUxGSVBDRE1GQUNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+l5aalZ6enKegqZaTmJ5nZaSafoSSkXmAkoiQkn2KhJiSkYKAgIuNiYWQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0VOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZyopaKZoZeilZ2fqJ6oq6CorKmqtZerv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGJlaKamnh6fpSYkqGSlpiBlJ57d5WSq7OIjZeffZSenI6Tlpmkoqa2sJ2RmaiIlo+NgYhsc3J8f3xxaGBcYF5iZ2NgaGdbUkVKS1BPSUpMRkZNQ0hMRkZDQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJjIqEkoWDhomBgIZ3X2JQNDYwLTEvLC4wMC8vLi4wMDE1PkFBTVFSU1BSU1VSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYaQd5WLo6eqtL24pK6srKeotKuwtrKyrbuxs76cs8Osu8nLt8O/uKWjsLKsraqji5aYhaamoKOXgaaZjaKqqKSIhZSkoaCqoaSpj5yxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilKSqiJmJkoqVeXp+hX5nYGhcZWJdZGNfZmZfWk9ESUhTT0ZITEZKR0VGSEFLRUNGR0E7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GPg4WAi4WGh5KGgoSJhoiHh3FuYUBFNjQ8Mi8xMTAtLCstMS4tMz9EQU1VUVJTVVVXVU5bUEdHRTw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqscHHw6qzxbass7+zuL62v7TBtru7pLjGqLbJx7W+ubSoo7StsbGbmZKan4mor6ullHafpJehq7GzmZaqraiutruyuqyvtaKxrLG1vLe1rrWgp6ejqJqpsK2yuri4p5u2qYyljpGTn4Z4goN1WWFkVmVhYWNgYWZfW1RJRERMVVFISUpESUdFQUBASkRCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFjZFd5dXGBlH2Fh5N2hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjYeEgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0pBQD5HS0ZFRDs+QDdENz9CSkpFRldUUF6Ppa6jsbTDtrjBzMm2u8S9s7PAt7fBtb+wt3Sxs6a6xaSwxrmxs7G0qKS1tqqxoKKWm6KSpbCupq2rp6SYoKyzuqKpsrq0u77Mv8XFvb2zwre6uL+3ure5rKywprCqrb6wvbvCwqyZuqiUro+Xl6uJfYJ8aldiYVdqZWplV1tkWVZTSUdGTFFHQ0dJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVVadmpwf4+EgY6EbnpzeYdiuKGZooiVk5aTlJONkJaSh4d7hoGNloqAhIGKenyLh4Z8ioOBioOVfXh6dWVPXGRHRUw6UWNhW15TRj87SFBEWmNRUVlYWmdZVGBgTVNQRUE/SUpIRUZBQEM8RTZCPkhHSkxTWlRdk6+4tbq4yb+6vcnMu7zBvLe1u7u3vbS6scZhdbKlsZqeqr2qpairqqOisrWhq6iflZafmJ+upaempZ+jlKKmsbSnsrK9tsG908nK08bCxcvBysPAvr2/u7y3tK+4t7bDusW9w8iwnrmqoquOpai2iYF/cl9hYl1XYV9oZlJYYVZSVUlFRU5LQT5HRD1LQj1CQD1GPTtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdsbHGQjYWQc2xycnOI1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaKf4N/g3h7i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV9uX1hnZVVZVUtEQUtLSEZJSEhHQkk5RD9IS1RUVlxaW5K5wLi9t8bAu7nKyrq3ura4ubK3tbSutraZZHWonK1wXqGtnJigopuknqqllKCfkJSOlpiXqJ+ln56amoSknaylqrCst7C9udTRz9fPyczRzM/OysbAvsLKvcG8wcDExMXKv8jOtKS7sLSvm6u5vJp/emxdYFxZXmFZY2NRXGBTUEtDQkVHRTxART5BSEFARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KQlG9sb3V1h7OsoaGfi5mcmYyNlZGbkoWKin6IhoyQi4l8gYRze4qDhnuJdIGJhpV/c3t4a211e2hyZWlsaWZqaWhgZmlobFpudJetpLyIh2dbb2hdWlpUSEtOT0pLUUtUUUhMQUpHS1BfXmJmaWGXt8ewuLO7vbWxxMe1sLmwsLursrGnqresjbannZunmk+anYyOoJaRppillYqTk4mQiY+RkZ6boZealZaHnpqmm6yvqK+ns7TU1NTW0svP1NXO08/NxcLJ0L/KycrJ0cfMzcLQ0riww7zEuaW2usSigm9jXFxeWGFYWWVaUV1XT09CQkhFQkk7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmIJocW95eYOgqp6ml4ybm5eLjpWRmo59iYuEjoqKi5CHfISCcH+HgYZ7h3KDkYuPfnF4dWtxeH5xe214c2xpgXBtY2lucHhpd3x+y7/C36dtY3huY1thYEpQUlVOWV5QXl1NUE5UUVVUXG5udoJyl624rLOnsLaqrLzAsau1pqS4pquuoau0o46xrpqYmIyRk5GEjpuBjaeSnImDi4SKiYSLg5OVmJeTm5GcmJmZnp6rrKSnoaytz9LV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbFwM7Hx8OovrfQnnpvZl1iXVdgU11bT1BUUE5IPkFGQUJFPEBCPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bHdwfX5/oZ6eoYuNmZOTjIyTj5aFeYWPkI2LioiRh3+Ce3J+gIGHeYR1hZKRiX9vdnJrc3x7d3xzgXdxa4BzcmhvcXp5cnu+y5t+jLKDdnKEdmhhal1DWlpbV2ZkWGVrU1hdXWBkXmN4e36LgZmqpKShn6CopaqwuKqltKOhraGjraKnsZ+JppqUkpGJkY6IgZSJa5WijZmEgIV9kYODk5ati5WNlZmOhZKQnZensKGgoaSkqMjOz8jCy9HU0dTTztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMTDy4tzb2NgX1hUWlNcUEpHSUpKQDs6O0VCRDxCQz5IQj5CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5aJj4qIjoePf3iEk5mKjYiIi4l+gnhze32Dh3d/eoeRloCDbnhwbXV/dnh+dIV8eW2HdnRufXaEdXl7nbaMPEGLxqV+jXxpZVZJQ2ZjZWNoamRveFtfZmlrbmlugIOJkYudnqCdkJeYn6OkprKkpLOgoaWdoKmgorGchp6SkpKQi46LhoOQhH6cm4yNg4SFepR+gqmVo4ySipeSi32XipqRqrOYmpunnKe9w8a5tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2trS1b/LzLR4dm9lXVlSVlFaVkZHSklFRT06NzlAQUI5R0RARUNBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqBh3x4hZaWiI+Dh4WHeoR4cXp7hIZ1eoWOjZx6jHB8b296f3F8gXGDh4Bujnp1d318gnV/fIeIsHRZqcK2jJKCcG5iPV5ocnBxcG54d4FlaW9ydXhyeouHjpSSm5WglYeMk5ugm5+qn6CtnKGamZ+lnp+smYuajJGRjYR9iIeDhYuOn5mTiISHfm2ZeYSYhoiTjI6UjIZ7m4iTj66qlJWXnpinrrW9qa29xsvIyczLz8jD0crU1tjX2NfV29fT2dvW0Nva0dbJ1MuVeXtpaVtaUFJUXkhCRUlJPkE9PTc6PT87PUc9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoGEfoN8fISXjoeLfoaGgHeCeW57e4aBdXqSno2gdo91gnR1gX10gIRvgY+Bb5KEdHyBhXp2hnuJt8alwsm3gZabj3dwZU5mY4F6gXeGopCLeHl3e4N/fIR1bpOWlJWPmJCDio+WmpeXpZyXoJefk5KXo52Zq5WQkIqNkYKMhYmIgYWQkZ6cmYmFi4GGmHqJiJ+Xj4iOioyCfKGJkIu8oZiTl5qcqaalrp+otb7AwLnHyc3Oxc3J0dbW1dnV19vU19na29fb2tnYztzGhnp6aGlkYFRXVlVNSkRORDs9PDw5Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eot8foB+f3yFe36BkYmEhXqEiHt1fXRtfH2GfnN+kp2RnoOSfIZ+eI59eYqKboKagHSYhX6BiYV8fpB6j6mPkMOgvIyco5x9iYR9iXOMin5zppqcmJSFe4+QiYRoR3CgpJ2Mi5CShYmLkJKVj5yakpSRl42MlZ+dlKGUkY2NkIt+kI6Oi4SIkpWan5+JjJSSnpGCi3+lmYiEjoOGhIClhoqLuJidkZWWoqehnZ6do662urWrv8bK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3h4eGxqZFdgW1RQTkdDTEI9PT45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97iHt8e4uHgn51g4Z5c3pzbYB+hH13hZuhm52UkoCLiH+Yh4Cckm6HqIV6oIt8kY6DiIScfpqRio2jop+QpK6gi5GLhYuBkoZXcq2Ln6ubj4OYm5CQjluCopGCjJ+TlYyHiIySk4yUlJSPjI+KiJabnY+VlpGLkpSGgIuIko2JipyWmaKihpKdlqGLioiNnJCDiI+Ag4eFpIaMkLOYnZKUl6GhnpmSnJ6nsbispbzCx83Hxs/M0MzO18/R1K7W1dja2Nra19bZ2p9vfHVoZ1xdWFNXWENASUQ+Pj46NDk6Ozc6OzozOzs/PD43Ozk6MTlHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieG1ifpKDb213i3h5f3qBfIZ8e3eGhH9zcIWCenV2dnSEg4V9f5Kmo5+lopaJnY+Ul4uKqJdyirGMhKeRhJmThZmLopagmJOJm52hkqmvn5GUkI2NiJWLbo23hZrEyLKcoaWbnJiWkLKQZKTNx5aPhYeJkJKOjZOUiYWKioaWmpuPkJSThpSXhH+Pi5mIjZCql5ejo4iZnpabiY+Hl5eKhI6NgX+Hj6WJjZOpmpeTlpmhmZ+Zk52bo7O0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6Ccn9oY19dXk5KVFpCQUdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj46RU1GSFJXU1JCY4FGdYKPfXxtfoh4en56gYGDfnZ2gIN8bG6Lf3l8eHh8hIeLfYqjs6ejqrKhlqefpaSWla6ig5C4lZKzmY2hoIylm6+jpJ2YkKeWp5mtr6SXlJaUkIuYmZagwI6kybirm6KmrZiRmpyynYaFqKKcmIWIiY6VjYuTjoiBhoeIk5iUjIuTk4aUmIaEkZCcdJGZspaXpKGInJmTj4qQi5eaiYqWjoZ9jJieiZCQnJqZk5iYoJSgnZWfm6GxrqKkt760xcfEvcPDv8bNysnSp87N09LQ1tjT0Ni7cnl2XGBVX1dQSElORUJDRTY+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1NjY9OkpGREdOW1xZSWZgO0iEi3p6bYWGenyEeICFgX5weHx9fG9yjXp9gXt4houJhYOSp7utqLK9r6Wts7Ooo6KwrIqatZ2juKSVraSWqa23pqSjn5mpmKmjr7CqmpiclJWRl5+Xmbu7rcmgaba4q7CUmJ6jq5OXvqNeqrKCiYqNlIeRfI6OfYOGjo+UlYiHkpaLj5WNi4yXmJKdmbSWlauei5uUko2QkoyZm4qSnpCLiZWgoY2UjZianZOcmZ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8fC0aHGyc3NxNfW0cvToXB6aF1ZU15ST0ZEPjxDQUI4Pzg3ND5GPDw2PDM1MzU1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVHYmBicElAi4p+gXOGh32BiHWCioN/bX19fH9wd4Z3jYGHe42PjIaMmarCwK+9xruztMG8tK2rs7aMqLKurryqm7ukqK25uKumpqKho6Oor7Kxq52cpJibmJeeoqWlkaO5rqi/vKytsrmlo6d9iIacrb2wg4uMi5CDj4ORj3qBh5CMjpyIh4+XjYuVl5SRmpadp5qxmpGsnY6aj5KOlZCQlpeOkaCRiZWbo6yUlo+UnJ6UoJ6bmKChlZqep6ekoqSwsqbBx8OwsLq2xcTCvs2nx8PHw7zV0c3Eyoh0c2JcWmBbTUpCTEBFRz9BP0I7OjQ+QTw9NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxmRmBpZ1pdW5OMjIh7h4uGg4x1hpCKgW9+fIJ/cX6BepV6kZSUmJCTlae0xsm/wszBw7nHvLqvq7m7l7K2urLArqXApKuvu7yqrauiop2nqq60sKqbn6qboZuVn7C0p4uiurm1wburqZyypaSolIWNqcPEpIKLj4eIhIaVlI16g4yRjpGhjIyUkY+Jl5+Xk5mVl6agrp2MqpyOlo+SkZWVjpCVkY+hlIaXn6CynpSalKChmaSfmqCcoJSYnqakpqekr62lwMTDrqi3tcnDvrbOssS+xLyz0crIwrV0eW1cWFxqU01IRExLS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk1lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoKQeY2hlqiampi6vsjIysHSycrCzL3Bs6y7vqe6v728xLeswamssru9qrCpo6WjrK2zrba1oJ+vnqWimKO0vKmbqLzBo7a2r6uSr6yrrJeGmammpZGCjJOllYmBdYqSeYWNkZCen5OPlIuQjZSjmZeclZSjnqmfkaWajI+PkJWWiH2PlZKSo5uVoKKctaaQnpelpKOlnp6mmJ6Vl5ulo6moorKsqLzAxK+ls7fMwLmuxLO7vsK4rMLDwsCYbXlhWFdcW0tLTUpGRERJQkJBQ0s6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djZeOnpKJin+Jn5OEd4V/lX9/kIiKkH+VoZqupqOYwr3Iw8fF083Ozcu7wrevur20vMq8w8G1tryts7+5vK6vqKCop7atramxt5qeraKnoZ2rt7eppa++w7G9ubOnqrSzra6WlqSrp6CRjpKxxaeVjnyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuNkI+eiFqQl5eSlqWZZZijnrKllqKWrK2rp5ufppeYlpmVoaSppp+2q6m6vMS1pbS2y8G4qbassrq4rqi4ur24g2xuWldUVU5GSlNOSz9CSEVESEdHOTVGTTs+Nz5BSi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZCDh6aTiIGHgpyEg5WQkJSOmqKfr76uoca9xcTGxs7OztLKvru2sbq7vL7OtsS9t7m3srK1s7izrKacq6u4qqinr7CXo66kp6SktMCwqqyzvsK5wLmzp7i0uLKulaSsrq6ki5OVoY10wZp9lpmEjpaai7GVmpmVkpOZmaajlZ+blpqonJyhoJqLjZCWnWBKlpyalZqlllSWsJ+vnJ+llK+vrKaaoaaUk5mZjp2gp6KZtKmqs7y8u6uwssfAuKWrq62xsaOhsrK0pHFuZlxaTlBLRFBQUFE7R0pJR0hCQz45S1U/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1RRVdSc2JXRkiql5mgoqivmZGXh4unlo6IkoWfh4Sdl46eoJqjpLXItKnGusPDx8rIyMzNxr66sq65uMDBzbbIusG5trqxr66ytKejm6qztKqopq2smaSupaSorLq/qKu2tr7Bv764srLDsbm9rKOutKy4pYibl6abdr6ghJicjpOZmouul6Gcm5eVm5+hqZ6ooJmaqZmip56YkI2RnYNudpKimpWdop6QrbKjq5WoqpirrqWkn6Wpk5KZnIiVnKKel7Gmqau6tr6zsq29ubago6eopaecnKypqYxjZWFfUktNR0hOSVVMPU1ETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5ScoZ+7r5mUnoyTqpuRkpOJq42Hop6MpK2Uo6O2xr20wbrCwsfIxcHNyMG9ubKvubTAwsq1xrHBvLW6q6itrLCjopmqtLqmqaarqp2or6ejqqq9vKesvLO3vca8t7W4wLC9wLOotLarvqWPopeRop+8n4mZoJmWnp2Pt5+pnKWjm5yhmqils6GbnaWcqKqemZWPlJuLl4mMpaKUnaKeoLSvpaWTsKuZq6yenqSjqZGVlaCDkJ6fnJappKKhtLW7ta2otbKznpyipZqXlZmqoZ53YV1gXUpJRkhNUUlNRUZHQlJMSUFFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+fw6ybl6SXmamclpuaj6qWlqemla2tmaGrtsTCu763wcLAx8O9zce7vbmyr7izv8PItb+vvLa6t6ajqqytoKCaqqrEoqWoq6aeq6+soqmovrimrb2wt7bHtrW5uL+wvsG2tLK0r72jlqOWk5uUrp+QoaKlo6OfkL2lqZ2prJ2doZumn72imaOeoqmroZ2WjZWek56Hj4SNk56koJ21rKaclbKnmbCnn5qqnqCNmZWfhI6hmpuTpaSamKyxtrKqpaqtrJyYoKCSjpCWqZ+UaGNaYl1OSUhLT0xIRURJQT1QSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGVjV02imqOcnsWsoZ+snZyun5KjnpaloKepq5e2sKKqsrXEwr2/tsDCu8jCvcrItri1tLCztLfBxra+sLi0ubWfpqyqq52dnqWjwaWgqa2gpKmtr6Kmp721pbG8t7a1w7Kzt7q+scPAt7ets7S1opyklZGToK2gmKGdqKmroprDramerK2bm56ZpqC9oZ2kmKurrKahmY2an5KeiY5Xf5aepaGguKqnk5i2o5+zoaCbr5eejpmUnYKPn5eWjqKklZClrrKrqaKipqWVlZyYi4+Rk6SfiWJlW2RgTElKS09GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXEtOnp+hmZ7Dp6Wis6CcsqeTq6SgpJ+tqaydu7CorLWxx8PBwrPCxL3Gw7zEyryvsbatsLWvv8W1ubGwurWsmqiwqamanaWhp8Ktm6ywnKqirrCppKe9t6a2uryutsOts7PCv7HGs7q2q7S1ramhpZWVlKOroZ6fmqirsK6vu7KmoKmpmZmYk6KkuKChpJKur6ylp5+SoZ6Vno+QjZSdmqKfp7Smp42YtJyjr5qem66RnpSXlJqAkqGWj46foZOLpqywpaeinKGekpKak4WLko2cnoBiZltoZkpJTEpTQkNASUc7O0c/OTlOTVVeUlNKPk9eXT1IUEJMTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugw6ikqrKho7WplbKrp6KksqyuqbuyrLC1tMa/xMS1wMS9yMO2wMjCtau1qLC4rMDEtLeurLa5pZmrsauqmJ+ml627tZuosJutn660saequrKnubO3srjAqreywryzxae+rq23tKmnq6GWlpGlpKKil5ikrritsbW2oJ+opJmVlZOkoLeipKWWrrKypqqmoZ6bmpqWmKienpihnq+yoqaNl66ZpayXmZ6lkZuOk5iahZaflIyQnJ6Ui6mpqqKnoJmeloyOmZCChpaJlJ95ZGlda2pNUE5OVD1DQU5DOjpJQDc3UU9dXlJWUUFXYFxCSlNIVktIOlVlXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVKcGlWQ1dGjHlmQzukpJ2hpr+mqK+voKm1qp25r6ujqrS3sbC5t6+2uLjFvcPHvbzDwcbAucHGwbqqtqStu63Bw7i4qq2yu6KVrbCtspalp5Cquaqgp7CdqqCwtLKqqba1rLussrK5t6y5sMK6vb6mwqqwt6+pqqumnZiYqqGhoJGYoLCvs6uwuZqbqaCZlpKXpqG3qaWioq+xtKuyqKufm6Cgm56lm6GXnaOzsJqfkJOlmqGpmpWin5aYiZSYk5aXnZOIkJuZlI+pqKefo5uXm5OHjpmLfo2WhY+ba2ltYWxuV1BSWlRBQ0VUQDs7SUE3OlhQZF5QVldEWV5dTUxSTl5LSj5aZF5OSFBOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oaqwqqOxuKmltLOroa21va+zuLy6vba2wMK/ycS4xMK/wLjEvsG3r7Woq7eyvL+/tamusbefl6utqK2Wp6iOp7ufpa2znquisbCzrKm2s7W9ra+xtaywtbHAusS2q7yvsbirrKmisaWepKmfo5eQmZ+yqrOpqrOZnaebmpWNoKaktK6noaysrbGns62yqaOcn6ijnZOgmJuotamXmZKSn5mfoZ6QrJ+YmIaVmIudmp2Tio2Wl5qXpqWjoJ2WlZeUgY+UhXuPkoOMlmZscmdwcl9HWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJgUEtNTlhXWFBKVlZXTT1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FVMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSZoKSst6SsqaWurrapr7O5pqawt8W3sbe+wcK1tLrFvszFuMK/ur+6xLjBubK1rKq6t7q6vrSqrrC1mJinq6qrm6yrj6u8nayusaOqn7Cts66utrG5t6mtrrGnta+zu7zJsqq1tLG0r66moLOfmqitoKWVlZqZsaOtn6WvlqGkmZmSjaKlp7Kpoaaxq6m1pa+xta+jmZ2tp5qXnpmZrLijl5OQj5icoZiXlKyfnZSBk5mNnZ2alpCKk5KemqWhoaCZlpKTlnuLkIZ7jIqDi5JrbnhudnxhRmFqWUlIWVs9e0pHRTZBYlRpWk1cYUpbXVpSUlJiYExLRV9hYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENeUVwuKkIvSkdQW0gzY1lVS0SZlqCwqLGprKWjrq61qbe0uKOrtLfJu7S7u7++tLS3w8HNx7vDvLa+v8C4v7yxva6nurm3t8G2q62xuJSXpq6rp6OyqZSvu6StsrGnp6Kys7CysLSxuLOprquyp7ivtbPDxbaotLWrsK2pp6K2n56msaCklJuZlLGep5ufqY2pop2blZelpaW3p6Kxs6unsaiusLWspJmgrKibm5yblKm4nJSOjouZnKKYkJemoZ+WhJKWkJ2cmJaWiJaPl5unnKOgkpaRkZd2hJCHe4WBhI2MbnF3dnx/XUxlbFxLTmNcP2J7R0k4R2dXZVtMXmJNWFlXVFhUaV1PT0hhXl9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydGYUxWJS1CLj1FTVE8M3JrSkRDkJmlrqStraunpLCys6q3sLafq7W5ybmuwbzCt7OytcLDz8S/wb20vcC/ur+8s8Soqbmwtra/vK+ss7KcoKewraWmsKWesrWtq7KwrKmotLmstLK1rbSsqauorKm5rbGwx763pLmvqa2tpaitsKWjo66jqZydnJqvmaKjoqOQrJ6jn5+hqqWmuaWrtLSkqauprK+2rqKdo6iqm5+ZmpKktJqPiY2HkaKglo2UnqCUk4WOlJKdm5iWlYeXkpWZppufn42SkY6Rd36OhXx8fYeKinJ0cn59flxTZG9eTlpmXUZElltIO05tWGFbTWBhTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGRISis6ST8zQklTLD6Paz1ISI+bqqqiqa+kqKOytLG0tbGxoautvMu6rsC7x7G0rbTCw9HFxb7Asr7Bwry/t7zEp623rLO4vMCwq7KtoKSnramopLCjqrGqr6ywrq+tq7O6prawsqmyqaumpaOtuqyqscK5tKu5qKioramosaWppKKuqqiinpuirJWknZeemKudoaepoaylo62st7GxoKiioKuusKydn6eoqZmkmJmPoKeYhoOOiYufoY+LjJacj4+Gh5CVoJ2WmJWHlpOTl6ScnZyLkY+Oin9/iIZ8d3+HhYd0c3KJdmxfWWBuY1FzcVxLO4R8Rj5XdVhgWU5jXE1VVlVXUFxiXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLklnREY4PEIwNUVLWDFAlFs/TUaVmK2noqqynKmor7asuLWuqqWrqr3Ju7C+uMOvsa2zxMPOzsO+v7TAw8S6wLTJxKyvt66yucC/tK6uq6WnqrCpp6ixpbStq7CurbGvs6yzuqS4s6ysrqeroKKesLerqq26tqS1taSpp6ysqq2hqKamsbKkpqWhoauWqaCTmqCmnqSiqqSsop+nsbesrKKkopupqq2pnKKlpKSYoJmWj5idk4GCj4iFnKCMio6MmY+Qi4SNmKSbkpGbjJOSkZSimZuZio6Li3yGgYKDenSAhIJ+dHeMpId5a15gbmdXZYdkTkBnkkxEYnlXYlhSZVVNVlVVVE9cXWFVS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIZASEhEl5KvpKOqsJeqqKy1q7axq6Srqqm8wMC4ubO8taazr8TJy9G/wbu5wL/DucG6wcSusbWys7vBvrOxrqyrq6i2qqWtr6u5r6ixsa6xq7WqtrWntLarrKSpqp2jnbOzqKiktLSgta2hqairqaynoKusqLm2qaqpqaGpn62bkaihnaCkoqaiqZ2cprSup6WpoqOYpKamqZyipKOfmZifkY6PmY5+h4uGhJ6eiIWLi46OkI2EhpWjmo6Nm5GSkY+Sn5eYloyKg390hoF/f3h1g397eH+BiJ2Pb3FnZ3F4XGBziGpPXZhWSG14VWRWUWJPTFVUVVBPWFtiVUhQalRWVEdQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJRYzAyP2Y9Tlg/Qyw+TFRfL0prNlBFO5WOsKClqq2Zq6SsrrO0rqqlr6mpur67wLGvuK6itrDJx8jQwL69u7zCvbrDwcC/rrKysrW9vMKysrOqs6iktaikrLOzua+jrraxr7G5qriuqq62rKueqqyfo6C2raihnq+zobSqnqinqqSqoaGsrai9r6yurKGnp5+rmI+vopiioKinnqebmaqwqaOfrKKhk6Kio6aYmamll5eYnY+Kh5WIfY2GhISkloWCgouGjo6RhIWUoJeIkZ2Qk5CNkZyUlo+KhYV4dIF/fXV4eYB7dHN6aYKHo3VpXmVsgnVniIx9UlhwXkp4c1NkU1FeTU1SWWZOTFZZZVlGU2lSUj9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTGg6NDhfPWFkP0YxQ1BbWytITzpWQjSQj7GgpKaro6akrKa0s7Cpo7Cnqri+wLywqLmqp66wycbI0cK9v765vr+8ybzCubCwtLG6u7nBs7S7rLiso7Wmpquxtrmyp6e6ta21vK+8pa2ttautnKmvo5+lrKqnnJ6qs6SzqJqqp6mkqZ2jqaipvay0r66dqaOgrpuasqOVpJukpZ+kmpqoq6Wem6qhm5KboKSdmJapqZGYmZOQioKPhX2PgoCIno+Gf32LhpCPkISAk5uUhZOijJSSi5GakZSHiX5/cXp5fnxpd3x6dXFxfWiGeISHZGBoY3KFem1neV1eVkJXem1UYVBSWUtLTnF0XUhaW2dZRVVmUEQ+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTtFWj8qj5OxmZ+fqKWkoaukt7KypKiwp6y4wb21sKO5rKiosMPJyczBtr2/tbe/usi2w7W0s7Wxvbi6vretubW/raGzpqmqr7W4tKqeu7uosr+yuqCvtLaprJ+usKKcpaipop6cpLGmr6Cfqqmooqqbo6igrbyorrCuoauio66enqyml56aoaOcn5uao6qimpqkpJWWlJ+hlpuWpqyLnpGQkYyCi4B/joF7mpSNiXx+i4WOj4yJhZKYkYeUo4mSkoeQmY+TgYh8eWt9dnl4Ynt6cXBxc3hpgXNqg2dkaGFvc45tYmpwYHBBXHhrVl5OUFFKSk1TWVZNXV5tV0RYYE9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDBCaFkxM1M9ZV9ETDZLV2VPKTwzUFs9I5KYrJmfl6ekop+opLivrqKvr6mruMK6sq2fuK+rqLS6x8vHv7fBvq+0vrfEtsOxrrmyssC1u764qbm3vauktaenqbCtubCpmrq8pK6/tLShrre1p6ensLOgn6Smp6ClmZ6tp6ieoKmup6Cml6Opn7C4n6Sxr6Groaykm6amqZqam56jlZycmp2pppabn6iSmJOYnZOZlaGqkJqJjZCHfYd+go18fKGMjIh5g4yEiYyNhIeTmo6JlZ+JkZWCi5aMkH2Ee3NvfXFzdGB5eGlvcHFvan9yZHpsaWZkYWaGgGBbc2pyTU1/aVhaTVBMSkhQUlBJTlxfb1REWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpoSCo/MFpZNSiWnaWYnJatoJ+hpKG3q7CjtLSpqLnFtrKuoLesraywtcbIwLe/wbmwtL23v7u/r6u9sLS/sb3Duqm7urenqLaopqqwrLOwppq8t6Sru7Wun7C4r6mmp6+xm6GkoKOjoZacr6ahn6Knr6KgopOjpaK3sKGmsaufrKKumJyqpKiel5qdpJOanJqdpqqZnJyklZWXlZyOk5eiqaGQiYqPhXqEfYSKeY6Xio2GeYKHhIiMjoSMk5mMjpaZio+WfoaXi496gHpwcndvb3RfeHdkbGxsammEbmZzaWtmaV1kc4FgW2t1aVpJfV5bWE9PS0hHUlVGMjleXm1QRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbDg0R0FmW0hURFVdaEUuPDJiVSwylqOhl5Sbqp2koaKgt6quoLq4pqy9xbOwr6O1sK2tr7XExLyzv7q3sLO5uLq4uq6tv7O0uK+/wbisvbq1pqKzqqaosqutsaGbwLWkp7W1qJ6yvKqopqmvrJmjp5yjppSYorKkmZ+kqKmcoqCTpKCkuKikp66mnqWgqJKfqKKhoJibnaCSmpuWoKGqm5uZoZSRlJaZjZSSo6ikkImKjoV5hHuEhn2djYqKhnmAhIiIiJGElJOTjJCVlI2OlHuDl46Ld357bHRybGxzYXh0aGhqZ2ZvhWdoaWNmaWpgaWJqZ1tle2NgU3NUW1tTS0pHSU9TQCEqaV5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc5ZU8nMp6jo5GOo6ebnZ6do7Wtpqq5t6esw8G2sKyjta6nrq+3wMC8ssG2sa6ytra4t7asqb2zr7Kxvb+4rru8saWftqulpLSpq66fnsKrqKWwsqmstLueqaqrsaWYnqqdpqSRmaatopiepKmhnKKdl6Cdp7amr6qvoaCdnaGUoKWfoaCZm5mckpmdlKWdrKKYlp2Uk42Vl4uPmJqooJGIiYuIeYV3goKBnIiLgol8f4SIhoWRg5WVj46QkZGRjZJ7g5WNhXN9fWZ4b2tqbGd1c2tjZ2RkdYBiZWZmZWpqZGtxWl5ZXW1kYU5oV1pgVkpHSUtNUlg+OV9saUhCVFNcW0lIRkVBLjw/OUE4OVJHQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFlKVmJmQTozQWdIJTWao56Qi6yhmJiglqWzsaKxvbehsca7ubGxpLarq66pub27u67Asq+urbavs7izqKu5sa+ttLa6trC5vq2mnrWroKCwpauunqTCoLKjrrCut621nq2vrK2imZynqaSelZuopZ+ZpaOonZqgm5Scna2wprmorqKgmpqemZ6jmqSdl56Ym5SaoJKolqqnmpOampGLlZmNlJSZqaeOjYqJj3yCdIKBipiFh3yJiYSEioyIkoSTnJKSj5CRlo6Qf4CMjYJwgH9meW5oa2pncXJrXGhjY3OBYWZoam5sZ2tqZ21cbGx1cWFUYmhkZVpJRkxNT1hRUVZhZYFUQFZTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUplQyc0kqCajo6wnZqToZmpsrCfuMC2oLTCu725saa2sKiupLe4t7etu6+tqqu3qrS5rqWztbGuqbG3trGztbqnqZ+2qZ2eqaOqrZypwJmto66vtbWtrZ+xra+popuco6uom5Wcp6OdmqmipJaaoJyQm6Orqqm7n6ikn5eamZ6hj2uilpiccYKWm6SAdZKpp56UlJ6QiJeZgJaKoZB4hpSMg25qfneDcWyGi4Z9hIuGb15jYGeEl4Zri5CUk3V3i4R+g49/Z4aAaHVpZldcaHNuTlBqY2dyhGdfZGZubGpeYGCKkISGZ09LRDhGVGdeSkdRUFVVS0hTYW90ZUZbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFRZD0rL4yjmYeUsJuck6Gbqq2ro73Fr6m3wri9va2ntrClq6S4s7KzsbmtqqestKawtaOouLa1qKest7OutK2zo6qftKueoaScp6eZrLuVpqWvsretrqWorquspaGfnKCnppuXoaWlm5unp52Tnp+YkJ6oqqO1r6Ojo5uWl5iXo4ihjpKah6GHlJ2hf6V/pqqekpGakYiDcniNjoWIoXaJjWmXiGZ9c3ihb4iHhH6NfH+hoJ+ZgHuHnnSIjnabimyHgYNsaGVjemxxYlSGbWNsaZhxWGpwb4dYXmlba2tbiHFuenKGaIeEWl5GTT9HX01GUlZWUVFSV1RnXk1YSlJST0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiMppeDnKudmZmdn6qqp6m/w66xury3wL+qpbewqaymsrWur7O2q6mlsa2ltbOcrbW2tKanqbOxrbKor5+robKpoKOjmqKjnK61laSkpba8pqynqqqsqKWhoJigpqOZmaajpJicpKmWlKKclJOkpaagtqOjoKOYlJKXk5uIro+YlImpi5eim4WxgKOsnZOZnZR5gtSof4eVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGWvJzFe3K2p7qQeoFslrGrsHloa1ixrm5labySvG5oem5yj9h+U2pitrJ/gXKUdZqhqpBXT1dhT1ZORlRbWFFQUoxcV1xQQFxEUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaTgaapn5ecnqWtsqiwwr2ytcC1t7/Cq6azrKypp6+zqq+2s6ioprWmp7ivnbOytqqlpKexrq6xpqqep6SxpKGgnpecoJ6vrZWeoZ+0uqKqqKGtrqWinZqZoaefl5unoJ+YnqenkZynm5SdoaaioK+in5+jlpaSl5GYha9qaoqNqn5nhJWHrWRwnZyTmaWUca6hpH54u31roY92sV9qtFulgGackWBmgnpmf2p4aqllvnJnpox2smp8sXh0kpNjbW2nbVuEoEVoZ4eWRXWcYH1ofKSngllfi6tpgJV4emqnN0qvW1dTbWNbS09YX1xXVjtOiE9XVy9JVFNJREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5GilYKsp6Weo6WqsrestL2+sLbEsri7wqepsKuuqamwrqSwuq+kpa6zo6m5qZ6zsrCjpaCqra+ssKann6OisJuim5eVl5qcraaXm6GetLOhq5uira2gnpqWoKGonJiepKCcmaGnpJCdo5qXoJ+rn6amn5qfoZaVkJaQmYW1m7V4hamZtZl3h7Obt36TlZaolH5rgaZ6goaIkpSSd6tna7FbrHuPh5R0iHGPhoCAiJCXeIOCi5eMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinS5Rom5bU2toYExLXGRYXFpCPrB4V1hBI01oRUNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dXN0o5YVU1MBuVn5SIs6amoa6pp7Osqbu2wrC7wq24t8GqrK2urqausqmhr7yqoae0raSrtaWmsrOno6KeqKqyqLCopZ6fn6+Wn5mVlZaYnq2impqjqLSuoamPqaiqm56Vl6Ckp5qenaOfm6CjpaOVm5+Ymp2iqpummZuboqCWkpGTk5yD1ZOZuXCwwn7GhnzWlJu7fJmVpI+NnI2ke46HpIKlgnqseY+dVq97iX6farlauXeGg3ymgpN8mHqqeY2ckHuxbY6EdJC8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiGgIl8Y6QzQp12XVFqaGRQQFhnWmRhSkhNbEtbU09ZZlpDRD9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzIlm6KTmLGoqKW0qqW0qKS8t8GwucCxtrW8s7WnsbCjsLKmn662qJuoua6jr7Ggs7SwoKSen6iqsam0qaScnZ6ql5iXlpeVlqGrnZuWp62wqKOej6yiqJael5uhpaGYoaGioZqioqebnqGelZmbpqCcp5Sbmp+hmI+SlZGdiLJuaLVxq4dvjqZytHNytnuZl6OLjpyNon6RoaV+sHaDkdLRdlyufIZ/pG+bqqZrhoR8rX2XmY97sXOTnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa19saE9VR0k5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGckaWwraSqu62mtKWntru8srq/t7a1urqzpbS0obGxop+ssKSYprqupLGxnbS4qp+mnaKqpbKoraqkmpyaqJ6VlJiYkpKjqKCXkqWrr6ailpOtn6WSlKGbpKaflJqmpqGao5+tmqCenZCWm6GdnKWUnJWZop+VmZaSm4Wse3eodqOOiYepb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9d4R9jp2HmZl3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV53d4domIhrXq93lZ6PeGw1eciusl9BVG9eZ2BFUGxfcG1WVU0uZWNpU1lROkFEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk5ODifnZSguLCXtMGtqLKoqrK6uLS4v7m3sra8taS3s5+0rJ+fqKuflae2q6ixsauutKSbqaCgqKG2p6aqo5melaWhlJObmZKUoqWak5CmrK6moJWZqZ+ij5GimailoJWZpaidnKSerZ2hnaCNlJ6bnaCYmZyVl6Kgk5iRpp2GqX19pXihj46DqnCti4GnhpWfoYiXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtuZU9KQ6FcWkx0XmJmTVphX3J0X0pWNkqak1lIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4wMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMT84oZ2Zmb+rl7TCrqutqaW0sLixtb+5urOxt7ypurSfsKSepaennpSqsamwqbWsq6+hmKGgpqSkuqKjq6CXm5GioJWUnpqUmJ6gj42MqK+vpp2Wm6imn4ySpJenqqeUl6mnnp+go62koZ6hjZWhmZ+gkp2XnJWeoZWWj6ubj65tcrRyqYx2iqZztHhzs4CRpKKRnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZOIrWt1s2GdZqJvh5Jql1ytYE2hfIeRUnOjbXp/fm+Yh3Fcr1Y8nHdmVG9uLlynT2JSa2VhbVliXGFwe2NUWlE+Pm1wM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs8MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWam526oZyywK6tq6unt6m4r7XAtbyxr7m4qsC1qaqgm6ajoZ2SqqqotqOyqK6qoJecp6Clq7ido62blpmPpaOVjZ2gm5icn5CTlKu1r6eZlJysqpeMk6WZpKyikZeqsqSgnqersJiho5CZopegm5abl6GTnKqclJGrmYfUkpq7c7DDgMOGftWWm7h4h5CXjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gYpumohxbo2kdL1dd31bYXm8a1pWW2p6XmpgZGZibXdvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnmp6hvKKXscOwraqqrLGnua+2xLG6sq67sK7Asaykop6joZybkamkqrKktaatpJ+WmqqZpqy4nKKumJWhkKWgko2co56YnZuQlZKvubGslZejp6eUkZaknKOsnpGgqKufm5+oorOeoqWOp6KUoZqcl5akmI+woJKUqp6FkJm1gJCRjLeVeIKTmrV3bWtuc255j4SOiXSewbu9mnuBsqhwgHSRuIN8hoaLh417ioaNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtXRycHe2jF5/en2JaIN5bXlii6xwdYV/WVunakRkWVNmYGNdY1BnZnFtdUJOUExEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPTs8p56goL+llrPDtKyrp6yrqbuusMavtbOut6e0uK2poqGlnqCdmZSrpK2qprWop5+blqCjnqykvqahq5eUnZCim5KPoqiik52Xk5eUsrW2rZido6Sii5KRppulqpuWqKSlnJqhqKWmo6mhkq2fl6Oel5aXnZ6PsKmUm6ehjmp+aZymeIdzfpqPdHplh3q9vsC6b5KCcZWHX3JqWl6aiWFjiI6Va2B/lWNtnHZilGt/mpWUZV5gY3GbimlyjH2GlWdqfnJ0eH19Ylt3dIFoUFxug3x7i2tYbHqCcklKb4VwTXRNRVddZmBMW1hnY15PW211aXFRT0RFTTtISTxMPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqifqKHBo5u0urajraWup6i1sazIrLCzq7WjvrGyp6CiqZ2im5qZrKaupKW1qaWbmJWhm6etqL6nqaaVlJyVoJqTmKWpp5GdkY+XnLCyv6ybp52noomTkamaqKSbm6ugo5mbo6asop+qopqwm5WmoJaVnZ+dl7GlmKGnmJyRnZyjo5mmopqcmpqZj5aBZ219cXeSl5SRhYq1qo2GmJWPioyYl4eUlYqEkpORiY2Rk5iUmJeaoKKanJShnY6CeqWFbGp8kHyAdImKgXGCeHl2doqAe4lqc4F0g3Vjd312a3B7bWBjXXBnTVlZZWpfV1pwem5tZlNPRlM5T1pOUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzoLOiv6KksbK3oKqlsqelsLWqyautsaW1psCntKGdpKWco5WWoKqmrKOjt6ufmZaWn5etqaXAnquklZKcl56Yk5Sin52ip5ORmainssOvmqucqp+Plpapnaqbm6CtmKGbnKKkr6ahpKierZiXpp2ZmqGenp2woJyippWYkpiToKGVo56XoI6Wk4qKjY6WrY98lZuCkoKLqqiGgZiWioSPn4h7hJCHhZmQh4aJlY6bl42QmJ6klpqTkZ2Nf41mobOvhYmEdnqPinx2eXpvZ3mQgYCJa3WBeYhyaHN/enaDiIJrdGR5ZmBpZGJkZmpZa3twaWpcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76sq66ysqCqprGtoqyzsMWwqqyjs668pLScn6WioZ2Zl6ilqaakpbO1npWUnZmZsKauvqCro5CRnpqZlJGVoZyWqJyEnqmrorPIs5+qo6qXlpeap52omp2jq5Oen52gqq6ppaOroa2bn6ChmaWenJ6dsKSYn6iTmJeckaSZmKidmpdmg5J8ZX6NmY9jeY1saGt6kaSra2WamH5nhYplZWloe46hjmtojJeRondraouYo5+Zc2xueoSMh3pYZV6FgV5siomAdlxoc3d3kYCHgm54gniAc215g3R3iIiOg3tqhllea3RkXXOJaWp8cWxjXVFNV0pkWEBKND1GNz9GRDcxPD0/QUQ8PERHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsaqlqK2usKaurbC9samnpK2vsJ+tl5+jnaGamaernK2jpaipsq6elaOQoq+mtrmlrqOPjpqhmZOSm6CZmKSVe6Wsoqizw7ekoaeun56VnqOeo5uiqamSnqGeoKqvqqujqp+om6afqKGslqGbpbCkl5yqlaGem5Kll56qmJ5+voOHcrRyhJ2GrWh4ucS4cZOio3ummJlzqoJ8y8DAu3GLooeCn3yVmImewL2Clp2ejZ3CwXuBe5KNmsPAfWulsW+MgG/Ken+bd5GDjoF2eoF/eXF6f4dxeIWMk3ltd5NiZl94ZF9lgmNedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmolKOvqbCuraayta+qpaamsKufq5iaop+cm6qnopyso6WopaS0pJ2ik6atrLezp6+ikpGanaWSkaChl5ufnIemq6Srrb/AsaCpr6mXkp+dopmhoqmjk6ChnZ6trqispqOip6ClpZ6tqZGkm6mtqpydqpysoZaXpZWho5ecf86UeHqkgXmVlptfro9ejqeBoqB8p5WbdKuDgK9eY42qeqeHhaB0l5KIs2OCq4ahjo2zaoSudH2Wh7hhgq1Zo81uj3V72nt/mXB+iJN2fmV7iHZ2a32Ibn6FkZJ+bYGPYHFrcGdgX3lkXHFoamRmYFJUUldeS09DNUFIRUQ4PjY7QD9BOz03QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcLAv7W0sLeXnpGkqqits6umsqytrKSrp7CqoKebmaWXnKKvn6CeqKejpqGesKybnpWnrq2xqqisoJSSm5+lk4+fpZeeqKOeraSqsKjAxrOoqbGulpKdnKKXnqiqn5Wgn5ydrq+nqqmbp6ekoauSrLSWpqKqqZ2jp6WhsKGTmqeaoJqUlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIooyRi51+q3uJk4+fgHutVpzEeo9vksF9gZVtdXCMbWV2ZYZvYXducm+Ki5KQg22RkGRvdHVwYGdtZV9vaWluZmNXU11hWVJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytJ+do46jo6Gsr7auqLCnqaqorqurp6KknZmilZ+mq5+hpaCoqKKfnbCsl5qWqKevrKinqZ6XlJqjopKUoa2bnaajr6yjq7Squs2xraauq5aUnJ2imZ6srJ2WoJmdnqmxqampm6upo6Ksm6+xoqisrqWYpqqpqbGikpejpZqUkoSkaqR1iXqpdHqycIKliZmMcYigmoekYGBSrIR/roObdq6BpoaGn3qZloZ7ZoCjiaSZhoGjfal+gZSHrl58qVWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojY2Yj4FtmpNvbXl4d29sZmVlcXBmfGliXVdgaVhYVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVwKGZq6ihr6KesLSwr6mso6imqqqrqaSmoJuknp2lp6ajnKyaoqyhpJ+vop2akqqktbCuoKmbnZaUp6OQmqKon6CmnLGmo6exrLbIsrWqrKmVkZ2copmfpLOdmqCUnJ+nq6ujrpqsqaKhqqOzraKqs7Ghmqqorq+2o5OWo6eYm5F8qmyehId1q3l8sG+CpIuJn5aVn5SB0ri0uMmAgbJfX5Spg6SIh6B5mJWaeKrJdJmjlaepkJKbjH+biZrGxnhloYKlc4GfjoJ9r15wtWOxdUujhm2nR4KTZI+QnpJ8cJeTf3B7dX17bltlanJxZoFqX2FZZG1cXllJTUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz4tNU9UUR0cOzxGMiwkp6TBxrmtqbKtrKWinLK5rKqhppuopqqsqaagpqWYq6OfrqudpqCsmp6ppZ2ntp+il5OoqrayrJumnKCVkKWtkZmcpqKgqqauoaOnqbC0wrGzqq2ok4mXnKSaoKKuppihlZicpaarmq+draimnqyjt6yhsrmvnZuvp7Ozs6WUmKejmZ+Ogp1OeJqBf596g6N9g6SEh6efnJ6ThLh7fHm5gn7MxsK2eJuhkYuffZqWlop2npiKpJijqH6whZyFnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkqSXe32Tkot1enOFf3FcbW53cmqBb1pkX2huY2RdS01RVEJJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu4q6+gnKGss7Omn6CVpa6trqqnnaammqOnobKuoqmmsqCZqaSUo7aiopWXoqm0uKScop2jk5ChsZmenKakoaKvrp2kqKG2ssOxrqmtqZGHkJynnKKinKWXnpiZmaWkqJquoa6lppewpbytobe3rZ2dtbK4sLOnmJ6voaOehY/RtcO3eYeOhZGTkIGmeJSid4ygkoSlgYpxqoaEtG5yapmjm5WKn3yYmYaHj3OvgqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5SmmH6MjZOLeH15joJtaXhpeHNuf3RdZGRubWZnYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWTc42Krb+/u7q1npeopK21oaOZlaOpp66qq5mlop+loKC1pqKpp7CjlKyjj6Wto52QmpqqtLSknaSdqZKUl66goJ2mo5ynnLSaoaqjtqvDr6mrqaGMhI6coaCloZWampyYmpmmpKaYq6etoqSbrae+rJW9sKyforCzuau0p5upsaSnmHqokH18sHeKgaSliJxtsm+hh618oY+DqJWYgKyIha6Fn5SpoKGWhp+AmZWAe5J+q4CdmpaKqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrrl2la3GFmV1gW4ygbZWSp5mClI2XjHt7g5d/a2x/Yn10bYB6YGdlcW5oZ2hDWmFbPUtUMlU4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JNzA1Mi4qLEFUVlZWVVRVVVVVVFRVVFNUVlZXWFZVVVFIRklKIygovZKahKnGwrbBtJ+arKCuuKWkjpuko6Cvr6qfpJ+drZmeuKCjq6CvqpquoZCqqaSWiZuQrrCsp5+nm62YmI+soqGdpaGZpJytmJ+oprapwK+lqaOei4CNm5qfpp2SlZqalJqapaOkmqisrKOkn6qovqSXw6yqoqGssrqrrqegs66oqZh2r36Qi5yFh3y6roqYZbCMZZWtfaGPg6aVmoGsioSwhaWZpKGhkIWgW2xqgbNgf617e4KAsWxnbpmXjIiwW320W6SDa8iiZZ+Ae7xZdrVasn1Sr4B6rFiAoW2Yj6ibi5iRlpZ7eY6dfmRzfmKDd3SAfGFqZnFtZmVlT1VkXEJUXj5JKD45PTQhIi0lHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFBSVFdaXmBfYGFiXl9cW1hVUE5KR0M1NTMvL0BVWlhXV1dYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wrOjm6ympbaooYuaoJ+ds7OpnqOgnbWYoLOoqquer66fq5uVr6iijoibjq+sqaeip5muk5mPqJqinaWfmaOipZmfo6myqLyvpaidnI59i5uVoKCZj5Kam5KZl6ieoZmorqempqOlqbufoManpamhq7S2ra6mnrutrKyVgKmSo6+Pm4CHpJeYkIGAuMO6g46dk4SnlpyCrIqCr4imm5ulqpB+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGqjgW+rhG2df3qysMeDaquwvax4d6K+u3SAlo6mnZCckZeceYKRm3pjfXtkjGZ5gntga2VramJQYltTalxAVGFCTik9OjQvHh8kHiUyIB0kKDA0OTY2Nzc7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbO0sb+5sr2yop2upqWzpp6LmKW+qbexqKG/pqaynJ6xnLmonq2vpqeVlLCsl4yDm5GupqOtoaScqqCYi6OSp56nnJqgqKKYnqCsraq5rqijmpaSe4eZkaabko6RmJiPmJOomaCYqamhqqeho6u7nqnFo6Cvo6uztauvqaC6p66umnN1qqS3hmWJoHBnrY+Kj21vd6SQmZ+Bda6ZlXCPi3GVqKObl66kcm1tbWWKeG9tgplxgHlpcWlniZaVmHFoaYSGZ3CGZF2JY2pvWV1nfnemYGJxjpFvZmSAjZKOopiYmZGWnnyHjpV2Zod4aI1qeX55ZGxjZmxiS2VYSmxZOlFlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6q6ubKzqqmhrp6ksqmYkr2yxMi+tqqewKuso6GnrJ+6o6StrK2mjpauqZCMhZWXrZ6mqqKfo6OgkYykkqeZqJmWo6mglpylpqevuqusmpuSknuEl42lmI2RkZiUjZiVp5SfmKmjm7GnnqOsup+wwaeks6assbKrraunuKOtt5aKoailtp2JlqKYh6makJSdk6qzmZujq6CxlqGhnaCinKCkoZWrpoySkoyHkpyclJCak5iQjZWGgaSal5WNi5OSio+GhH5nin90gnZ0h4xxp217lJGUk4GBj4+Pj52UoZaZl6KCiJSNcmmQd3CLd3Z8empsZGRvY1VgWUBpW0hjYU9aK0Y9KyYhNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRGSktLTU9QUVhUVlleX2FjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKaWqaqltbeurqKwpK2goLWxkI6rxr3EuriqoqWdm6aesamjtqedqbWnqJGYrKKLiImPnKiWrKShmaeenpOVo5eomqiZlKaho5CbqJmhtbqoq5makI18gZSLoJSKlJGVkJCTl6WPn5qqoJy2o52nrLenr8Guo7emr6+wrampsrigrryZkaajpraikp2mn42pn42Sn6Osr5qho7Gor5ejoJyjqZ6enZyWq5ySmaGblJCWqpmNmZmWkJWekYmgnZWUhZKMkIyUioB+ZoyGdYZ2eYiDc5xqhpCUlJGKfYyWkpKYk6GTnpeihIiYh3pylnN6in9xe39qbmRfcGlgW2BabWNQYGRQWzpHR0Q9Mj09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWNhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaetoKi1qpCQnaa0u6+srKKjmnqdorGkpbCplpu5p6OUmaqcjoaKiZyjkK6fo5aooKGSl5ibr4uqlo+omaeMmaiPnrm2pKWZm42JeYKTi5qTiZWSlJCNkZaijJ6eqZ6fuKSAhK+1orCvdKS+o7KgeHqgqrG7lHWspJ6JgKp+ZFxidqCOpJ6El35uk7Oco6euqqNlnZ+Tc3mZl3CAmKiXbH+iqIplnKWckZeYlouRm5GGnZqQlYKSh46OkomFd2uPh3aGcXyGgIBhaYeKlJKLW3aVkWdokI5ye6aZmWV5mYeCeJhqhIqCbnl/a3BlYHZva2toXGZlYmJvU1w+Tk5OUkc9QFRCOTEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJGRklLTVRUVVlcX2hmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mm5Wmo6GwsayrqaWoraOnraSSlau2sLKmmqqnq5dzjJ2wn6irp5OXuaCgj5yknZF/iIibno2rmqOVp6KejpeRnoV1rpCIppqokZekiJy6tKigmZiLiXV3k4yVkomTkZCUjI+ToI6boKeZnLOWgIyctZ2zjJKPvKehfqeieqKut4GOjaaeg4uFj7Gpr4yKlqOaeYGLrIacnaKnqaeHlYWYd6WbeoebgZemgoF7nLF6ioWgl5mUmJaBkJaWhJmZY3mHkISNj5KKg21wj4d5gHGAgYV/hnSGhJWSeJZok3SgmnR9mYShnYeYfpKLg4OZa46NhWt4e3FwZ2R3bmlsaltla2plc1xeSVRMUUBFNS5ZVFU2KSEwOT0+NjQzNTY4Ozo9Pj5AREg/SUVKS0dTWFpZW2FhaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mrq6rqKygqLCmp6mlmZSux76woZamqbWej4OdrJynoqCNkL6emY2fmqCQfYaPmZeIq52ilp+gkY2TiYaAkaiOh6Kco5OXnoaeurKnnpuSjoVwdZCIk4+Jk4+Pm4uPkZ6Rl6Gklp6siJ+0ibSarYvKh6quiLeFjbCCsK6DqY2mmY2dfKiPcnt3nI+nlmiVpHm0i5+epqiSmcKBf6uImKFxnoCZpH2XhZWxgKF8oZSgkJiWgI6Tm4qXkYt8hZOGjZWTiYNtc5GFf3pyhoGEfIR0hYKXgY/FZoCph4+ja56DopqDmoCMjoWKmXCNk4Vod3R7dmdodXBnZ2xeY29sZ21YaEddUUwyRTQ2TWBjNyYzPERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWV1jZmhnYmJiYmRjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmUl6KfsKipqKWroKS5sKqrppqUoKSlq6OWpaq3o69/oaecpZ6diZS9mpONoZGdkHmElpaRh6uZm5uZoYWPjHebnI+gkYiepJuVmZiGormupJmcjIx/Ym2PipKPjI+MjZiLkJGejpSgoZmhqH6hp4etnaCWro+enZ2RhoGgjaquhqSNqpqMmn6idoCZlGuCrHVNq3iHjZ2Rm6ingKqrfYOhe3qnaZ5/kmtnl4aXtomefW5gZFmDln+Me2RoinKZfXmVbF17l21fU3CEXF9seYNgWWWCfYSBmHGnqmuDo25ypXCfhJ9qZZ9sW26KfGZaX4N/YldQb3ZlbXRxampvXmpvbWxqWGlPXVhFOUE0R0NeazQsSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhYmlrZGJkZGdkYmdlYWNol5adoLmhqqOmrJKhtryrrqKZl6Cipq2toZ2utaKokqGgoKacmY6YtJmQi56MlYx1gZSSjYqmlpWYnp5/koWGrKSHnJGKmKmYmZqSh6Wxp6KVmoiJgGluiIeKjY2Ji42Si5CSoYuUnqCcoqV/k4GPo6GUoHeclo+ng6Gnf4aprISleYp9hJp9onByk4iWe56MeW2HnIyZkJuomo+HnXyConN2pmaefnakX5h6fZJzom6Yt7S6dJKHgn+1qGSBxrh7cJW3i3GAm6Rjc6yrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoSApGCdmbOWcXyXn7R0c1uesoNqYm90dXFob1hrbHJzZl1pXmJLRD1ENVFBWXEzPVNHX0pSPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWldgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLi1rq2gm6Kco6OmrZybsa2sk5ehmaGkmZqUnqubi4mSeIuGcICWjYqPoJCTlJ2XfZCJjqigh5iPipGik5uajIuoqKWej5aHhH5re4d+fY+Ng4uQkImPlKCClp6gnaCfi4l3nJiijKByoouIqYicppCWp6p+rox9eqCZeqOTeIF0loiNnH2WoIebjpmbpoaiZKF8iJaQm41snmibjW6amXuAiqd9cmh0q4Odg3SqZ5SaXZuFdoSdaKpqgLhmXKhwgZxhlYxep3Z1iYp/nmiadYeTkpiOf59umpBtp5ldqH54u2t+qluOhF20Z1xucXp4a2lbcWp4eWNgZlhiQVBFTjdWQlJuNEtaWl9OWkNAMTUxOzs3SD86Q0dUP1lSWV0+RGJeVmBRYWN9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniWOUm6y6srCsnaacnKifnq6bnrCorJ2XpJqhn5iWlqCjmYaJjWqIgHJ7l4iLlpaEkZSYj3qKhJaknYqUj4WLnZGcnImPqKOgmYuRioCAaYGHeH+Wi3uIjo6Ij5aaf5Sjn6Cik5hyaJ+Kn4+McZKMgamImZ+jp5+nfLCto6K4l3ejs6KkgIiUeZ17q5p/oo6dm5eJl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmn50qlpdb3uWi3ieYkx+enqFY3mXQk2fWaJqcXyObYGJhJl1m3mHibGzf3+bk6d1gZ1ucn2Ub5lzaqRdlXZIZWNgc3F+fm5lYGxodnxkZWJSXlddVFZAWUVRZ0RTV1tiWF5JRD1COD9COklFOExEV0FWUVtWREZiXFpgS2BtfnFFQzxVX2JaZWpWZ2htb2JmZl5hYVxdXmFoYl9lZHZsXmVnZmtkZmxpaGtpk52Bsa2ZhFRfoKezubOzqZqijJyrnJyplKGrpKGoj5+enZqZlZignZaIh4l3hYFueZWFkJuLfJGTlohygImToZxzkZCBiJiUn5qEjqmcmpSKi4p8g2yEhXGBoIt4hY2Ih5KZlXyTo6Gfo4iuhn21hI6enXullnqpgZadkIqgnHynaHZtfpl0oXNxfJ6GmXCTg659pIOmnpqBo29eqGd1o2NvpWGc05B8epl4cnNjooWQfqNzo491a5Czi2CCmIlzqrKovH93g21+vqaptF6cbn1xl2+Bc6JyXaNndKZhaKZtm9SZfISbb3h6l2ube3eXcm2ppGdgZXlwgIRrZ2ZkbXV4Z2BjVFtmUVFiSVdJVF9XU1tlalxkUEVDS01KS0JKRThQP1BNV1NYT1JSYGZlaVJjd3l3SUZFY11kWmhpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebgLGrVFxLfqmvsbSws6OcmYWZqKCgo42kqKCYqYqZmJiTmZOSoJiOiIZ7cH2EaH2Pg5SagXeRjY6Jb3+GkJOSbJeUfYiRkaOVg46qmpSSi4WJeYN2h4Bugp+GeICThoiZopd6k6KkmqCJs6Gitot6rKekrqVwqYCaj4aBnJJ8pICimYaYcp6Eo62uipeMgIykjZaDrqKVdrW1tcmhc5SKgZ9gnZepbXmVhp+adaGHd6B+kZaKgG9MZqOScJqHcqR7eXRhg4JsfqBrcWRgnHJ/dJdpe2mztbTGpnOYfnudapubq3WDmmx0d5dpmnp1mHJQRH2zXmp2a3mHZmpnYnR0cW5WXlRZaE9RaElVTFlTVV1oa25WZ1dNSkFKTUtISk5BUUpQZGNpbWV0cnN+eXtudYl7e1RQT2xeaFtraVJqaGlsZ2xnY2VfXF1cXmliZGhre19dZGhjamZvbWVpbGWhnImwp4RmP5Shsquvr7aiopCAl6mioqWMpaednaaCmpeWjZeQj5yTjoiDeWp5hmWDjH+XoHl1j4iMgWmEhZKDjIWdjXqMipWlkoOXqZeMkYuBiXqAfYt4cJChh3mBlYeJlqCWf5SlqJyWloRnbnicbKJkfHGld5uYcGengZeMe6V6n5aDl3KedoGJlJaPuW6QiqJifZmilYhtcmmranWgbW6mYJtpi5BoloealXWigH2aYIuFjHRviGJooGWefmmadW9jZoiCbnKiWl9bY6FuXYmMb3t/c3JkpW13omRnp2iYc4uYbqFvU4iPb6BfZadUi11UmG1tc2tygmxwaGt4c2tvUlhXVmZZUm1JWE9dSVhpaHNqWWtWUVJFVlxMWFJhVGhqXnd1enxwfHxyg3t/cnaNgIR2XlFyYmdicGdQamhoa2xuZ2RnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKWZpnpldG2Lp66kqbCxpp+LgJernZ6ljKKhmqKigJaYk42aj4uYkI6Ke4dxgIhoi4t8mJtzdIp9kHxkgoeVioqVmYJ8iIaWp5CBoqyQhZCKgop9gICPc2iPpoR9hpSNiZigjoiSqqediaZ4lpx+pYmWjLKYnpCCr5efpXiViHqpdKWPhJpupKKMkoSMg7tufaWvgoaGh5OWnJ98pXpxqJWglmeefm+rY5aKlZJ3qGypooGJdYeCd6uRpohrkbBrdrOMqWuKhm5tn56SlWF/q4uqdoB/jKafd599haWVnaBpmod2rGeerYy3c3e+jaSTWYOmjathdXJ0cHx0cWJqfm5obVNWW1VhYVxrTV1SXUldbW12YFtxWVtgWmdzZW5vcWNxdGB3en55cnmDc4R/gHt7jIGCgHZieGRjbXNkUmxnaG9scmlmaWFfXlxia2JtbHpvXFxiaWJsandtZ2xuYpWmqp2BgJ6klqmqnainrqSZiYOYq5qepImapZ2pnYWMmo6GnJGFko2MjXSGeoiEb42EfpiTdHSGcpKDbX+LkoeGlI98e4GFl6WNf6WmjoGOiYWVdoKHkm9si6mBg4yUjomcn4mNk6ujoJCAdZSXiH6BeZSuo3+Bm3GPhXmQi4R/e3KmjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3p9iWyMhVt5eHF5cGhufpKJcX90go+Uk3GFg4JljX9fgX+Ld3VzlHVveW5uh22Ehl53aXiNZoGCho6pm350fJdqiYhvgHZ9hnZtbGeMc3l7mHiEW2tYeY9obndycW94eG9dbIZuaWdWWmBXXGVrY1ZhVV9RX3B4eWxrdmVqa2p2fHFydHNhb3Vic3uBeHV5gnWAgH+AeIuFg317bX9sZHhuXlduZ2h1a3hqaWpkXGBaY2plbHB1blpbYmtkbGx5bWhsb2GOlLmpp4uhopqmpJmknKuioYSEmKySnaCJmqabqZiDgZuKfpaTh46KiY1yg3yPfX6PhXuXjnRyg3CWhXt9kouGhpCFeH5/hpijjXunoYuGkJCFloOGjpd2coWqho6SnJCInp6IjJuooKCrg4mOlJp+fomWraiPk6aPd2+dkYN6km9+qIVwfZVxa3B8gZ+Mf5OOjGhtXYOLjJubno5zlYuIcXRrgnZzgFlyboeRgX1+jGpdamR7hYOIgF9peHube4KLgnaBhoJoeYuHa2FxcoN3X3OMgomQp5WGZoyPg253i4Rxho96b2VnZHqDepZbXGpnbnZbe3h3dW5zc4JmXG2Ka2xiWVleWlhsclxfYVpeXWZ0fnt1b3Rja2tqe3xye3h0ZG10Z2x7fnZ6fHt6en9/fm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtoa2pxcm1XW2VubGdzeW9oam1gi4yqsaKQo6Ganp6Xnpmoo6J+g5itjZ+Uh5uikaWVf3uYhHySmYmIhoeKc32Ai3aFi4GElopxb4BymIaEfpKEg4aKgXqAg4ubn4+CpqGHeI6YiZWLi5yXhIN6rYKRmJmUip6dh4ihq6CioqOLiJObnKOZlqqhp6agkpuHlo57eI6OhKd+f5KRkpOcsaablZ6QjbKTmISljIyVm5+JkJuCiZGKa3yNdndlgoaQinuJnYSHi4+IiICFhJB3fHl1mqGIhoqfi4WUf36MgYB2cHSGhH94iIeLkKaQhIWNiIONkIx9iIuJkIF2bIKEfHmZanJoYXSKcH16d3ZvdnSBXV5vhmhuX15aXF1TaHJWY1xcYWxodXx8c29wZGtqaX97bXh/cWlvcGxmgHtygoB4f32AhHptg4yGfHp4fH16g3lOZHZrc21wemRrZWJiYFt0ZnBmcnJtVV1sdG1peXpxZ2lrZYyInbqflqKhmJWZmJSZpKCee3+aq46ejYWfnYueln15lIN7jpmJhoSEhm54gIBygYh+iZSEbWt+epeGhIOQf4CGhIZ8h4ONm52Sh6qfg3KKkIaTkoydkX2Ne6qEjZKYlo+cl4aGm6egopqdhoORmpmZkJqmoKadnZCWgJCKdnyHjoSle3yOkJGGmKqhnpOdkI6rjpGAnoyJk5qego6XfoaNgm94hXF0YH+Cj4Z1i5eAg4+ChoR+hYOUbnh1dJKhi4yFmoWEjXSAiXx8cnJ7iIR7eYuOhJOnj4aEj4KEioqKd4aIiYt8b2t+gHtuaGxtZ156f2h8e3Z0dnV7d1xgcH1udWBjWl1eUWdtU2VbXmFraXZ6fnFsbGRrameAf2xzgGxsdG94boR5boeAdoKAfYR2cYKNiH57e3x/e4KKYGl7anVoaYJkamNgaVxkdWhvYnVtbFRjcXllcHp6cmVpbW2Lip+3mqGjn5KRlpeLmp+fnnt4nqaQm4qGpJSLmJl5eo2FfImRg4yCgYJtfH94c4GFfYuRfWtofYGXiIGIjnx+hoSHfI+Aj5ubkYinnX9wi4uMk4ehoYqFjXyokYiQkpeTlpN4jKOhoZ6Wmn+AkJqYk4ybo6GkmpeRm36NhHh/g4+HoIB9jIyPfJikoKGTmZCQp42PgZuRiZKXm32Skn6GjYF1dIJwdmB9f42GcoqVfIiLcox/goWGjmh3cXiMmJKPf5d+iItygYZ8fXB4e4uEenqRjYOWppOLhpF8hoaHhXaChImIemVye395enFsamZefnNofHV2dHxzgGpeYHR2cHhkY1lfXlNraFRkWV9haGp2eIFxZmtjbGhlf4BqbX5obnFrfXeGemuMgXOBgX2BdHaCjYZ+fHt/gX1/j2pyg25zaWGHaGxiX3FWdG9tbmB4aG1XanR2Y3V7e3Jiam55iY2fspKlpZyOkJiPhpygm5x8dqSgjZd/jKKKiJqWeHuGh36DiX+JgoB/cX97dHaDhX6KkXhnY32Gl4qCio14fYCMg3mWgJWXlo2WoJt+b4yCkZSGppuIjYmEppWFk4uWl5OSdpGeoaGYlJd6fo6Yl46Wm52knZiSlJt5j4WCd4SXjZ1+gYmNjHOXop6ik5mOj6KMjIOXmIOSlpl+mI18iI2BdnF9bnpkgHyKhXCGk3+QgmyHgoGAiYRldW98h5KXjX2TeIuJe3+GfHtxfneJhXmEkIqLmKKVgYSNd4iEg4J3fIKJhnZfeHd9dH54Z2xkYX9pandzdHV9cXxiY2FzbnVzbWFaYV5ba2RSYlhgYWlrdnmGcWNqY21laHyDbGh0aGxvaH98gnltkIZxgIODf3R8g4yBf356goN+fJBtdol0dG1limxqYWN1VoRpcW5geWdsYmp2cGZ5fHpxYHJshoWQnK2XpqiejY2Xh4afk5eYfXiqnIqZepeci4yYkHl7gYt9fIN7gIKAeHR4enN9gIR/iYuAZF59i5WHf4WHdH1+in99l4SXk5aMo6GYf3KHe5OSiqePjI6Kk6GShJKQlJeRi4GPmKCakpCRdH+NkpSJnZ2ep5iYjZWWc42OimuFmI+ZeoeIkIlvl52ao5OVio2fjIeCkpx/kpKVhpmIfImJgXpxeWt1bHt9i35uhZKClHdvgoN9fop/ZHJqe4CWl4R/jXSQiYN4h351eIB9hoB8g4yFjZSkkHmFgnSJh32AdHaBiIRuYHt1enF9b2FvY2R7Ym5vdnN4d3N0YXZfb2x1bm9cXF9eXmpeT11YY2FobXR7iGtfamVqY2h3h21mbGhpbGiAfHp3b5CHc4GDhH1zgYaJeoJ9eoGEfX2OcnqLeHhubIdraF9pcWOHaHFvZXdobmxheWhrfXt4cGF3bYuBmZqqoKSonYqKkYaKnoqVl313rpiMl36ek5GWlIh3fnuKfXuAdnh/gHB0c3tvhn2BgIp/fGFcfo+Rhn+DhHN6gIZ6j5GHkpGbkqWblYJ+gXyOi5KkiY6KjZibjYaRmJOWjomJjJOdk5CMjW6DkI+RiZ6ZoqGXloqXkW6ImYRmhpmOk3qJhZCKcJaalKKSkomLmoyCf5GefJKPkouZjnuKhId0c3VrcW50e4t0boWQjpJxdIB7gYKIfGRxbHl9mZR9hIh0kIuAc4h5b4B9gIZ8hYyIhY2VqI17iH1+i4V4fnFwgIWDY2h4dHVwfGJecGBrdF5xanp4eGtzcGV4XW1sc21zWVpeYGJqWlBXWGVjZ3Fxf4dmXWloZ2JncY5vZGlnZWpogHp3dG6OhXSBgYJ7dYKJhXeFfHiEhXqAiXd/i3t6cnmDamtfcGh0gGtyb21xZ29sZXxjboB5dnFsd3eKf6KYoqihppuHjIqBkJyGk5x1gaqUko6HoIyWk5CAdHx2hXd4f3Jze4Vrcm96bop2gIGHbnFbWX6RjYh/gIB2dYCAf6CGkIqSnJehlJh4in+BjYmdnoqPhpKYloWJlZmPloyLjY6NnYqOkINtiIqQkYmclqGbmJWGmIhphKOCZoWdipF+i4OLgXeTmJKfkpGJiZWOf36Ql3yRjY+NmpJ9in+CbnZwbG1vcHuFaXODjpeKcHd/dIKJgnhmc292gZmOfImEepSReXaIdHCJe4WMeouGg4mPnKOIfIR3got/eHhva4GDgV1yc3FwcHhaXnBgcGpeb2l8enBtbWpsdmBwb2pybVpYYWFiblhRU1pmZ2N1cISCYl1qbWRiZmuSbWBmZl9oaoF1cXJwi4B1f4KAeHWAi4B4hX93h4Z3g4V7hox/e3aKf2pxY3xihnxvcWx0amhvbHZ3X3F/eXt0dXSAgn6klZqtn6eWhY2Df5eUg5CfdYuflJOGi5uMlY2LenJ4dIJwcoV0cXWIbG9sdW2Id4N+gG1uVVGBq5SHgniAdnKCeYGggpGBk5KYnJKaeJJ7g42TpJqTjomVmZOFh5eZjJSMiY+PiJ6FkIp8coqFiY6InJqfm5aUgJR/aIWch2eGoIiShJGDiXGDkZePm46QjYyQjXh7kpB6jouMkZaMfIh8gGt2am5ra2x6f2F5fo6VgXZ6gHeDjXx5Z3RsdIeVi3+IhnuUkHF6hHB2jHqJjHuJfYKMkZ+dhX18eIKMfXdxamyBgnlfd29tbHJzVl5vYnJgX2xueXBncGZmc3RocWthd2VdVmZhYHJTUE5cZmVdeXCIfF9daHJiYmVmkmlfaGRbZ3B+cGtwc4p9dnyFgHR1f4x5e4aAeIiDc4aFfoyMhHt5lXdmcmqDYIh+b29remBqbnR/dF90fXmGeHRzhXx4oI+ZsJyljoKKf4OaiICMnn+LmpOPhIiYjo6PhHZ0dnOAcG+Fc3Bxg3BraXZug259fG11c1JOgt/IktaTfG90hHaDoIKTd5WRmZuQmnuUc4WQn6GTk5CKk5uUhn6WlYiNjYiRjYmcgI6BeHqMfoiMipycnZuVk3mNdmeIkYdsiKOEkoeXg4ZjjJGZjpWKl4yNiotxe5SIe46IipKRiXmFe35se2Vyb2treXlcgHmPjoB6fX5/ho56eWhza3OLj4mChYV9lYxrfn5ugIt+i4d9hHqBj5aamop9d3iDkHlzbWdwgIRtanRvaGp0blNeb2RwWV9rcnhma2piZnhycHBjX3hgYFZrX152T05MYGdjXXlxiXRcXGV2YGFlZY9kYGZhWGlzc25rcXaMfHR5hoJ1dn6Lc3+Gf3uJfnKJh4GRioh8fph2ZXNtfGWIfm9wbIBabG55eXNhdnp7jXZzd4p3eZ+Lm66boJCChXeIlX59ip2HhZ+RjoWMl4STjoeBdHdweXFuhG9tbn5yZGR4cX1ten1qaGxjpJrB3K7voXNrdYR2haKFkm+WkJWglJyBknGGi6OXiY6VipCdloOAlZCFiY+AkoqKl3+He3V/iXiGhI2cm5iZj492inZuhoiLfYqjhJGJnYWFXouUl4qPiY6Li4SKbXyWgX2IhYmQj4Z2hX19a31keHVqbnhzWIh6koeFen5/gIWLfnhlc2p/iY6JgoKAjJaFa4F2boiQgo+Ef4J6f5CWk5mQdXR4iI11c3FndXqDYnRtb2JpdmdSYHFnbFVfbnR5YXJjX2h9cHJuW2NyYWJXblpcd01NTGRnYV52c4ltXFxkeV5gZGaFYGNiXllqcmtua3J2jH10d4SBeHd7iXGDhH1+iHt0i4mIloeMfn6Yc2h1cXlti3pudHCBWHF6dnlxZXd5hoxpd4CJcn+ch5mnnKOShHxwjJR4eYudhIWhjY57lY1/mYiEe3J3cHNqb4FraWx8dF5geHd7cXV7Z2FlfOvatcnD3IhzbHOBd4qaiI1pmI+PnZWTgYlxhYmgjYSLlYqMmJR8jZOIg4mPe5GLhpCCf3Z4g4Nyh4KTm5aUmIaMdod/cISBiYeZoYOUjJ6DiWGDlY+HiYaKjYeBh2l9lH99g4SJjo2CcYZ+f3F3aHZyaXN3bFqMfJKChXx/g4CEioJ1YXRsiIGPioJ+f5KQfW2CbHiGj4aRg32BfYCSk5CXiW9yeo2GdWxxbHJ4gV9zaW5ca3ZgUmRyaWZTX3B2dGBvYF1ognFzaldnaGNpWG1WW3VMSkxlZ15icnOFaVtcZXleXmRne2BkX1xZa25lb2pzd4p+c3OBfnp2eohzhYJ8gId2d4qGjpiBjIF7k3ZsdnV5eJN0bnh6fVh5hXGAb2d5d5KCZHaGhXGKlYWZoZuiioZzb5KLcneOnH2KmomJfJ9/g5l/gXhxc25vZHJ+aGZsd3dbX3l7e3FxgGlhZ2F/1baOkKZ4bnF3e3CSkIyHapmOiJySjIV7aYiLmoeBkpGGh5iNfI2NgYGJjnyQjX6KhXp1e4J6cIaAlpmOk5SBiHWDhnaDf4qTnZ6GlY+ffohhgJOHhYiEio6Af4NnfZGAfn+CjI+Qfm2CfIJ0a212dHN2dWtijYGPf4V+fIR/hId+cF9zcYV7j4yCfH6RiHpwg2Z5g4qGi4N8hH6AlI+Rk4RucHqMf3Vub2tsen1iaGppWG12WlJpcmpiUWJyeGxiZV1ZaoNtc2JcZ19kbF9uVFtvTkhPZ2VcZ25xgGxbXGNzYFxjbHdkZV1dWmxsYm1qc3aHf3Fvf3x8dHiGeIWCfYCHdXmJgZKWfIiGdomBb3d5e4STcG18gXdeg390gW1pe3OUc2dzh3xykZGDmp+boIaHdnaUfm12lJd+iJGDio2afIuadn12cW9samF0fGdiaXV6Wl94fHptcX9lZGhoV52PXnFylrzDg3VxlImQfnKXjIack4yIc2uJj5aBe5SLgYSbjHyLhn18iYx/lIh1iYV2d32BcXWGgZ6UhpWPg4Jyf4h1hHuJmJyXhpOOnYCIZX2TgoCGhImJcoF9Z32Le3l/f4eLjnxpgHyDdmZveHhzdnNsao2FioGKf3iBgISDf2tecnh6fYyJhXuBj4B+coFpeIKHi4WEeIN8gZeNkIx9bm17iX13dW9oaH12ZFxwYldwc1NTbnNpYU5mdHhmYF1cWG6Ab3NZZWJdam1gcE9Za1FEU2dhWmtubXtvWltebWNaYm93Y2ZcXWBsamNtanN2goNxbn57f3R1g3qDgnyBhXZ+iYGWkXiDinSBiHJ4eX6NkG9vfIFxaYF5en5tbXx2lWtqeIR0bJOMhp+YoJmFiG59jHZqeJiPf4KKg5WXiXmOlm96c3BsamRgdHpoYGVxelphcn15Z3B6YWVlj7Gyd0piWqTZ0JZxe5CLkHh9lYuFmZGNhm9shpKSenmShoGEmIp8h394eImKhJaAcIyIcXR9eml5hYOlkYSTjYN/b36DdoN3hZuYk4qSkJSFh3B7koN9g4OJg2+BeGiAhXhyf3+DioZ7ZX1+hHVkcHOAaHhwb3WYjIWCint2eICEeYFrXHF9coCHhYl9hol6iHKBbnGDho6EhHOEeICZjY2EeG5vf4R/d3tlaGp9cWBZd1pYcW5OV3JzZ2BLbHZ0YV1bW1l0fXJvV2ddZmpxX29OV2hRP1lmX1pwa2d5cVtbWGtlWWNweV9oXF5lbWhmbGlxd3+Hb2x/fYB1cIF6gIF/gn92gYWJl4pxgo1xe4Z8eXmDk4x1anp/a29+dH99b3J8e5RvboB/eGeSioKhmZ2RgoZnh4NvaHqWin6AhYKZioF8jYxpeHJrbGZfYW95bV9ib3lcZGuCemFxdl9lZtTqvooyOj6LjoByeYWIjo12g5eNfpOOjX9ubIWNjHZ9j3+FgpWJfIN4bnaHhIOXd2+JhWx1e3RmeYKDp4yDj4uEfW5/dHaDeYackIuQkZKMi4Z+e5KHeICEjYNsgHJpf354bXx7gYqDd2F5hIFxZHFofm10cXWBm4uAf4V+cnV9gHKAb1ttfnR4ioKLe4Z/fIh4enFsiIOPg4pygXl/louLf3Rua3eAgHV1XGlpd3BZV3xTWnFlTFtycmVbSnB3b1xbWllddH51aFliW2dmbmNpTFdmUT1eZlxddWVfdHBbWVVvZFlkcXlaaF5fZ21namtpcHd9jmxpgoR+eW6Ae3yAf4J6dYKBjJOFcICLbnh+gHp7iJKJf2h7fmt0e3KGe3N3fX+MeXiEfXxrjIyDm52WjIGAbI5+a2h+jo17fn+DlIJ/fYqIa3VxZ2hjW2Jncm9gYWx0YWhwiXlic3ReY2SboI9uXDVZr7V1aoCJfZKGdoaXhnSPi4p3cG2Fg4d1eYl4iX2TiHp/c2d2iH5+mG9xhn5odnltZXmIhKWHgIeNiX5ufnV/gH2MmYeCk5CYiIuEiXyPiHF7fYR8aX5ta4B7emp6doGHgXJgd4F+cWRyZ3WCbXR7hZSRgXyBf253eXx0fmxYb392dIuBhneHdYGJenhzbomAjoCFcn59fpOJiXpubmpugoJ1bl1nZnNxUVt7TlxxXE9ccnBkVktzeGpXWVlaYXGAdGBdXWBnZGhpZk5ZaE1AYWRbYHZhXHRtWFhTdGFaZG9yV2peYWhrZ21saXB3fJJraISJfHxwfn57gX+CeneAgImLhHF7h29xd4N/e4mNj4Nqfntud3l2ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshImSeX17gpGAgH6Kg3BycGNmXllnX3BwYGBncGZqb4p0YXRvW2FkanZ7f76cpqPIuHGFhHOUfXiGlIJ0kI2IcnJwhHuDdHWHdIh3lIh5eXFjd4Z6gJNpcoR2Znd2Y2p8g4iegn9/jo59cn5zhHmAkZCCeJaNlI+Igoh6iYlseHl/dWh7aWt/eXNpenaAgn1oYHeHfWprdGh7f2l2gYyQlH56fn5we3Z7c35iVnd9cnOKhIJ8gnCGiXd4cHCDgox+fXl+fHWOhoN2aXFpbYiCcnBdaGNzbkpldUxeb1ZUWXNuYlFPc3hhUlhYXWJwgnNbYV1oZWRjamRRWnBJRGRhW2NwXl13aFVXVndeXGVuaFZrXmFqZ2Vvb2hwdnqSbmmIjHl9cnt+eIKBgnx2fYOIhoNwdoNybneCgn6Ji5N/cIB8eHl6gYx1g3h/gYGChHqAdW9+iYuanoh9hXp3hntndIWMkHp/f3yJhoR2j4Bnb25fZFxYZVltcmFgYXFsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhwjXV7h4+AepOKgHV0dX53gHBxf22EdJSGeHVsYHqCeYiPZnGDb2d2blttfYCQk4CAeJKSfXh7bYd1gJCLg3OWipGOh4WFe4CFbXV2f25od2Vte3ZtanZ3f398YGJ4hnpodHVjfnpndIWOjJV7dH91cYB6fGx/WVZ0fW90hId/gHhriIZzeGt1f4ODfXp9eHtyi4F9c2d0ZW6LhG10W2pfdWRIbm5MW2JXV1Z4bWJQU3R2WFBVWF5hcYRvXGBjbWVjXm5iVFxyR0JmX11maF1aemNSVlx1W1tna2FWal9gb2Zma3FocHV4jXRrjox1f3Z4fneBg4F7dH6DiIiDb3F/dHF1foWCiY2Ke3d/eIR8fIWHeId8fYF+hIB7fnN2eYyOn42Jeol2dIN5Xn2FmYx5h4N0hYaFd4l7Ym5sW2JbW2FWanNjYFxnbm9mh3FhcWZXXWNrf3zKzoi5omptbYpscYRyfISKfnuShXp5dHl1dXtqbHVjhHWRgndwZ159gnqLiWVygmtqcWNYbHuGnIiCgXOXlHd+e26HcYGKi4dxlo6QiIWLg3t5fnFxb35naHJibnhxamtxd3x8eVxleYB3aXV4ZoJ2Z3SHi42UfHKGaW9+gHhtfF1YcX5sc4CLfIFubol/cXZod3+Bf4F2fHF6dId8enJmc2FujIJsc1hrX3dbSW5rTVZVXlRVe2thT1R1clFRVFZeYnSFaFxgbGpmY1luYVhicEdBaF1gZl9dVXteT1ZkcFpbamhdV2dfXnJma2dyZ3BydoV4bpWKdH96eH55goeAdXOAhoWOgnBwe3h2dHmGhoaLhnp8f3WLfn2FhISHf35+fYd/fHh2eXeSk59/jHyLbXaAeWODh5eGc5KKb4WFgXqDdGNuallfW11dVGdzZWBZZHJyZoFzYmtlV1tgaX93vq57oLdtYnOGaHR8cnqDhnp9jH94eHN2b3t2ZWpuYId1joFzamJefnh5i4RmcX5oamtaVm94iqSBhX9xmZNxgHh1gW2AgpGHcpSIjIeDiIV9eXRyb2h6YWptYG12a2dqa3l3endbZ318eGVyfW6EdGV1hYyGlX9vi2ZreoN0bHRiXG97anR7i3uBZXSGfW1xZ3V+eH1/cnxsenqBenhwZmxibop+bW5Wa2B3VUpqa09ST2hOWXxoYk5VdmpMUFRVX2d2g2ZdYHFoZ2FXaV1ba2hKRWtaYmRXWVV5Wk5XbmpZXWxlXFpkYl50Zm1kcWdyb3SAd3CZhXZ/fnd/fIWHfXVzgoh/lIJuc3h6eXJyhYeIiIR5gX12j398hImOhIKEe36Lg3t3fHd3mp2XeoqDhml3fXxsg4STgHKPgnGGgn6Bf29mbGdXXVtcW1RkcGVfWGNzdWl2cGVlYldcXGiAcG9ygHSJZWV4fml0dnNzg4R4gYR5d3R1bmt7cGFna2eGdI2EbmZdX31we4l+aW13ZmlkVVdycI2mfIR8dpaQc3xze3lte3uRhHaYfIeGg4aDfXVwcmxndV1taF9sdWRnZml6b3tyWWeBd3VncIB3gnVid4WKfJSAbotqbXqAcGVyZWBteWZyd4p7fmJ1gnZpa3F0enB5eHJ9Zn5/f3l3bmNlYm6GfG1rVmpicFNLaWtPTE9wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWVgVmNXYnBdTEtrWGNhVVRVc1dMWXVkWl9rYVxbY2Rfd2ZtYnBpc25xfnR0mYF3f4B3f36GhXp9dYKEfpeFbnJ0e3p0cISFj4GAeot1dJGAfYGUjoCFhH1+jIZ7foB2e6OlinmIhYRsdXx7dYOCjHpuhXN6hH2Bg3VuamhlVl1bWlpTYm5lW1hic3tqaG1pX2JXX1ppgGprb4BobGFoeXhrdHR0boWBe399dnVtemhqeWpfZW5ogXaPhGdlWGJ3aX6He29pb2dmXVVYb2iPp3aBenyQjnl1b35vcnV4jn93lHSFgn+FiHZqcnZnaG9cbWVebXNfZ2FpeGh7bVttgnJzaW+Afnl3YXeEhHiPhHOIcW95f3FicGhcb3dkcXOIfHhic4BwZ2p4c3Jrd3Z0d2ODe393dm9kY2NufH1rbFVpYmZTS21oT0dSbEVheGZhTVNyXUlNVFlla3d6ZV5tcGlkXFZfVW5uV0tUaFhmXlhNVWxUSlx5X1tfa11dWmJlYHpobGFvb3Vub3d1eph9d4CBeoB/h4Z6eXqDfoGThHF0dH56dnSFiJB9gH2QbHOVgXyDn4V/h32AfoaCgIp7doSsn396iIeEbHKCenaAgIF1bodvfH9ziYBqb21kZFhfWllaVWJqZ1taXnWBaV5tbFxhVlxca4FmcnR9ampda3Z2Z3R3cW2Fe319eXZybHpoaXhmXWRzaHp3koFjY1RlcGeChXd3ZmhqYFdWWWhkkKdufniAi456cHB8ZnhueYt7do5xhH1+f4ZuZHZzZGhoXWtiXW9vW2dfbHVlemhddIBvcmtxe311dWJ0hYp6h4aAf3dydX50YXBsWXF0YnFyhXx0ZHJ/bGFsem9qaHl3dHFmhXV6enVwZGFkbnN+aWxUaV5dVEtzY1FHV2JHYnZmYUtUb1dKTFhYZ2x2emRlbnBmY1pXXVh2ZVRKXGNYaFhZSVdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bW9udoOYeXKBgH1/iIuGfXV2hniHjH1zdXWCeHp6goyOfX6EiWp0l4F7i519foV6gXp+fIaIc3GProx7e4aQfmZyiHp0fHx2cm+GbHt+bI96YnBvYWVdZVZZWVZjZmtgXVxzhWlZcG5aXldaXGx7Y3B3dmxiW21zdGd1dXBthHh+gHl3bm50ZWl0ZVtndWZ2dpF6X11SZWZqgoJ0fWJjaVxUWF5iY5ClaHl0goWQeG1ueWd3bXuEenWIcoB4fHh/aGV2bWBmYV9qYF10a1llXW9vYnplW3d7a25ucHd4c3RkcoOSfoeCiHp2b3J9cmF3ZFtvcGJwcYJ8c2ZxgGRebnZpY2Z5enRtboF1dH1zcWJeZm5vfWRqU2hYWVRNd19RSlpZSGJ0Y2FJVG1TSUxaV2lscntibGxzYmFZWlthdltTS2RdWGlTV0hZYE5HaXVYXmFtW1tfYmJdhWhoYW54eWxuanaBkHlug36AgZKIhIF2dIl0jIZzcXd2gXd8fX6Mj4B+k35weJaDfZmSeYCAeHl9f3SIg3NwmaJ7en+JlXlkdYh5c3h1bHRvfmx5fHCRcl5wbmBnYmxUW1pXaGNtZlxccYhlU3JuW1pYWGBtd2RpdWpqXlptc3FtdHN0aoV8fn98d25ubGRpcWNbanJkdHaPc1tXU2RhcoB/coJdYmNdU1pgW2OTn2VycYWEkXRsanlsb296e3pxgHZ+cnp6emRmdmdeYlphZ1xed2hXYl5vaGF3YVt7dmppcm53c3N0aHCBlIKGfoR2c2pwfGxmdldca21icHOBenNmb35bYG9xYl9pcHxsa3N+cnF4a3BgW2VsbXphZ1NnVVdSUHZbUlBaUkhjc2JgR1VqUEhPWlZrbGt8ZW1vcWBbWlhZbHBXUlBmV1dpU1RGWlxPSHJ1WF9jbWNYYWBhXYtqY2RteXhrbml1eYZ7a4N9f4SZfIKEeX2Ibo+GcW93enx0goJ8i4+DgpZ0eIKUhYGfiXWAgIFzf4Fwh4J1b6KXdHuGi4d7ZniLb257b2Z4cHpsc3ZyjGtedG5hZ2VrUl1bVmdibGxaXHGMZE9vbl1WWFVnanVoYnRlZV1abnVucXV1emuHfH98iHeQc2Rka25hXG5tY3N4h2taVFZiY3h9fXGFXWNfY1RbYFljlpVjbnCDhYpzamh6bmVydnN7bHp0dW96fnVfZnJjW15XYmRZYXVlVV9gbWRhcV1dfnBoaXNxc3B1dWtthJOBiHuFcXJmbnxvcW5TW2ZqZnF0gXZzYmx2VWJxaltfbmV8ZWx1fHJyc2ptYFlkamp3XmZUZFVWUFRtV1FXVFBIZXJfYUZXaU5IWFRWbmlkfGlrd2thV1xVW3RkU1JXaFFZZlRTSFpaUE14d1tfZWxpWmJgXl6PbmJma3l1bm9odnZ/f22DgH6Gl3t/iIGKf2uTiHJndIB7dYCDfYmPf4uTcn2KkYWHn4Z7f4aMc4CGc32Ddm6ljHOBjYt3eG56jGBkfHBmenN5bG1xdoJnZHtsY2ZnaFNeXlRnYGxvW15ujWhOaW1gVFZTb2d0bGV4ZGVdWXB0bXJ6eHNtiHuAdpx7emthZWxtXmBvamVweX5nWlZYYGt4fHtwhF9iXmdWWWBXZJyIYmtxgYd9d2tqd2xbdnFreWl1cm1ve4ByWGpuX1ldVmJjWGVxY1NeYWliYmxaYH5sZmtzdW5td3ZraIWMf4h6h21xZnB8bHFsY1lgaGlvdIFzcl5pbFJlcWRUYm5heWJwdnt1a3Bta19YYWdodFxlVmFWU05YZVJPXE9PSGVvXWNHWWlNSV9LWG1kYHhobn1kYFVeVF10W1RSYGZOXWFUU0pcWVBZdXZdX2ZtaFhjYVtejnBjZ2p3cXNtaHZ0eoNzgoN6iI1+fIqHjnpukIp0bHOCdH9/iIWHkoSVj3p9jI+IkZuEgHyMhHN/gXN0eHFuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo2NjY2NjY2Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjIyNjY2NjY2Pj46Ojo2OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHx9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERFQjEvLy8vLyyApKCgoKClXiovLy8wLEiFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTUzHx0dHR0cGH6ppKSkpKpWFRwcHBwXOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHiIeHhomTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhoWDg4OEhISDjJCPj4+Pj4iCg4OCgoKFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5CKj4uKkImPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6Ojo6Ojo+Pj4+NjIyMjIyMjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjIiGhYmJhYiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCRjYaGh4WFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkI+HjI2JhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjISKhoaIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiIqJio6Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpKSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f35+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpKSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9+fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyNjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4qKh4eJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VycHFrbHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZ21lamZoZWhnY2JiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpeXF1eYmlgXV5aWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVBQXFdebFdVUlFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBgV11yVU9PT05PUFBRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLTGNUW3RWS1BNTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NHZlRVdVNKUExJSUpISEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gH+AgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj48RUQ9P0pjW1VwS0RGSEdGR0JERERGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD0+VWRiXmdPQUVFRkRGRkRGSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYGCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs+PEhibWhmbGBGQz9MQ0NGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc9PTg5VWxya2pwa041Slg+QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN1c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Q0BPQjxYbnFubHNxW0NjVT0/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO11tP1JZSlJrb2tncnJmX2pIOz5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZEPjw8PUA9ODo7bnZHQWJdXGluaGNxbmtsZj45Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBaUTw8PUtOSEh2dk04V2poa25qb3FubWxWOjo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5SDxfgIOAent3VjtDYHN0cm91cW5vYEE/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUBIcnlrZYOEg4ODgH1dPj9HaHh1cnNwbWxMPkVCQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dHd6fHt8e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH6CgoGEfn2EdUxCQ0NPbHd4e3pxX0VFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRUNkgoeHiIVeRklKTExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAgHiAhIWDhIltQUFXdYWIh4eHiYJXSExNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINVbYaIhoeGh4iJiHxQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSUhISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpWgYSEhIKChoaGhIKGhYWFhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUtHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWaFhISEf4GDg4KDhISFhYaHiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaYaEhIF+gYODg4KDhIaJiouLi4qJiouMiVQ6ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIGDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6Ojo6Ojs4OTg5ODc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd5e3p7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXKEgIGDhISEhISGiYqKiIeIiImKioyKiYmMej45ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozw9Oj47OTs7PDs8PDk6PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA+PT4+QD8/P0A/QD09P0I/QUE/QT89QEBAPj9BPT48Ozo7OTk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKDgoKEhYSFhIaJiYiIhoaGh4iJiouMi4qKi4qLXj5ER0lLSklGR0dERkhHRUJAQENFQ0NBQkNCP0BESEVDRURFRUFGRUZERUZEQEI/PEA+PT9APj8/Pz4/Pj46Oz08YHFydHR2d3p5en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NGWIWCg4SFhoaGiImJiIeGhoaHiYmKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fX5/fn5+fX5/gH9/gIB/f3+AgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkJHR0pZhYKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1PTUtOS0pMSklJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExOS0dHR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7PD06P0E+QEBDRklKUWCCg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEdFSkhESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dIRkNCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6PDg9Pjs9QT4/QERISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4tfUlJQTU5NS0pHRkJHSkdMSkZLT0xLSkpNTUxPUE5ISUtMT1FQUFFPT0pJSkpMSkxGR0hHRUdJRkVFQkBCQlxvcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKREVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9DQ0ZWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMj4uLi2dWVWthRVJRUVBJOztRU1JgdV1VVlRWWVlSWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLSEhKSEVGSUhJSElpcnZ5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklJR0dGRT8/QUFFQkNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFpnUlVWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3lucFhaW1pSVFJWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSVlYWVtdWFhZV1JRTlBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin9mWVlcWVNVVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbU1NRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpbXF5UUVFQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlNjVX9SUVFNS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXG1ydXZ1c3N3e3p6e3t9e319fX59fX1+fX5/f39/f39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlRSEdPRkRFRkhHSEJDSEdIS0dEQUFEQE9QTVNkc3R1dXN0dXp8ent7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiW1hTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz8/Ozs+QEA/Pz5rUUthRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNDPz48PUI+Sk1GVW51dXVzdHZ4enx7fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqamZgW1FSWlxZXklKUFFOS0xRUlFUVlRXUlFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXt4enx8eHd4ZEJAQEI9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtMV05IR0BCPDk3NzU5OT07Ozs4OTg5PztCSD9cdHR1dnV2eHp8fHx9fHx9fX5+fH59fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJYR0ZGSEJBR0lFRUZETVJQYVdSWFFQU1NSVVtPT1FXUE1KQ0Y+Ojo2NDg3OTc5OjM2Njc5NTxCPWVzc3Z3d3l6e319fHx7fH1+fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMWFlaVlhYVlhZXVdXWGhza11WYXNrYWFfXWRhX15ZVVBNT05MSUhKS0lIRkNRUFNaV1RUTlFTWVNcZVVPU1RRTkxJSEM/QTk5ODg5Nzg4NTc1Nzg1OTlHbnJ0eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTFBSUk9NTU5OTkxKRlFQVVlTVE5KT09UU1RcVlJVU1JPTUtJSEhGPz89Ojc4NzY1OTk2NzY2NVdwcXR3eXp7fH1+fX18fX18fX19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUFBQTk5PVExNSVBPU1RVMjxYTUlBUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMS09RUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjQ1NjY7ZXBydnd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkZBRkdHSEZKREhKSEdFSExIS0hGTE1QTUcvRV9SPjNAPmpvYVJSUUBGVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3NkRucXV3ent7fHx9fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRUZISk5LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtIRkZFRDxBQT47QEU7PDg5VHFydHl7e3t9fHx7eXx6en5+fHt1dHZydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT09NUVNMVFVUV1dVTExLSD05ODc7P0A+PD1AQEI9PkVIR0RGRklHS0pARkFBQEZIRUpPSFBSYVxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSUpMTEpGRkZFP0JDPjxCRj9CP0FkcXV3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47P0FAQD5BRElFQ0hISUdJRUJCPz49Q0JBSEpFTU9iZVFNTk5XS0xNS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES29wd3p5eXt7ent6d3R4dXh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxAQkFBREVHS0ZDSUlHR0hDQz9CPz9AQT5ERUNLTlFUTEpJTVRHSUlKTEpLTElKTE1PUFJQS0dDS0dDQkpKTE1PTUlKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW9rbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0RHSEhHSktJSktER0I9Pj06Ojo7QEI/PUJCQkNIRkpMSkRJSUZHR0NDO0FAQj5AQENEQ0lNUEdJS0dIS0RISUtNSEpMSElKTEtNXVJJSERNR0FES0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjpAREA+QkNERUlGSkpMRklJR0ZGREI7QkNDPkBERENFR0xOSEtOSERIRUlMTk1ISUxHRkdJSUxOS0pIRU5JQkZNTE9NT01OTk1LSEhKT1JRUk5SZmdmcm9zeHV7enxsaGpuZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pDRUZFQkNCRUBEQj5APjo7Oz06PT5DQT5BQ0VHSkZJSEtIR0dHRkVDQD1FRUI+QkNDQ0VHSElHTVBKRkZHS05PS0ZISkZFREVJSUhLSUZIUEtESU1MUE1PTk9PTkpKSU1SVVRST1dkYGFtZ3Byb3J5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQEJEPEJBPkE9Ojo9Pzs+PkBCPkBCREdLRklGSUhGRkdFQ0JBQUZGQ0JDQkRFRUdHSEZMUUxJT0pKTExJR0hFRkVEQ0lISEtKR0tSTUNOT01RT09PTk9PS0tLT1VXVlVUWGBeXGlhbWluaHJzYmVmZWRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmprc01HR0ZIQkJAREU8QUFAQzw4OT0+OT88P0JAQEBERkhFSEZGR0ZFRURDRUNESUVDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISUZDSUlKS01LT1NORFFSUFFSTk9NTlBNTE5TV1ZXWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaW96TUhHSEhCQkJGRTxAQkJEPDc6Pj46PjpAQj4/P0NFRkRGRERHRURFQ0RFRkdKRUVJR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xNT09SVE9JU1VUUVNQUU1OUU5NUVdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnamhoamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN1bnByc3lOSUhHSURBQ0hFPEBFQkU9ODo+Pj08PEFCPT8+QUJGQ0VCQ0lFQ0VFRkdHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05QUlVWT0tVVlRRVFFSTE9RUE9UWVpaXFpZW15fXmBiXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZxdU1JS0hKRUJFR0U8QEdDREA6PD5APz4/QkI8QD5BQUZDRURESUVGRUdFSEhGSEdJS0lGSkhIS0hGRkxISEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm92SktMSkxHQkVERTxARkREQjs/P0FAQEBEQT9CP0FDSEJGRUZIRklGRkRJSUdJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTkxOTk5QS09QUlVYVk1OVFZVU1JRUExOVFNSV1teXl9dXWBfYWFhYGJkZWFjaGJkaWpndotsa2lnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV1ZXFza3BxanJ2b3dKTUxMTUdEREFEPD9FRUVDPUFBQ0JCQ0VCQkRBQUVHQ0dISEdGSkdDR0lHR0pGSUxISUpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBPVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5gYl5gZWFhYmhtZ2JpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xNTExMR0VBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NDSUZDSEpKSUlLR0VLSkdISklJS0hKSk5LTkxJTEhKTUtaZkpkXEtsU0hPTl9uVWtzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVGB3dWhqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5S05KS0pGQz9AQj89REVGRENDQkVFRUZCRkZIQ0RKRUVKTU1LTExHR01JR0lLSEtLSUtKTkxNTUxMSUxMTFtzYmRwXmxtVU1OZnNdZmVxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXlta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEQEJCPz5DRkdCRkNFREVFRENISEdERUtHR0xNTktNTUdKTkhKS0pJTEtKSktNTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncXBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9QEBGR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSUxLSUpNSUtKSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRqdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSURFRENBQjxCQUJHREdGTEhFQ0NIS0hIRkpMTEZOS0xTUkxHTExITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25ub29xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnNIS0hJQkVFRUFAPkNEQkdDSElNSUZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTU1JS0tLU2tiWmleX2ljcnJaX1lqb19lZVVrX2NbYWJRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFydXR3ckhIRklERURGQUBBRUVER0JISkxIRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpJS0tJSElHS0tMS0ZIS0tMTExLSUtMTlRbXFRQVExQT05PT1ZRT09RT09RSklOUFFkcWlUWVdbW1xVWVpdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzSERFR0ZGQUVDP0NIREZHQ0lLTEhGREdLTEhER0hQS0xPS0xXTElFRUhJSkhJS0hMSkhGSEdKR0hJRUZMSUpLTkxJT1xXXlBcW2BeT1hZU1xcYl5NWVpNWGFSSllhWlNgZFxhWFtkZFZWWFxZWlhcVllcXWJfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1BQ0RCRElFR0dGS0pLSEVFSkpKR0VISFBKTU1KTVNJSEZBSEZKSUtMSUxKSEZFSkdERkdFRkpIQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOXlxeU1teY15aXWBjYFlfYltgXltUWFhZXl1jYmJhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNGR0VHR0lLSklJREZLS0tGRklKTkpOTEhMTkhIRj5HR0xJS0tKTEtJR0VJRENDRUFGSkRASkxKT1tjWV9eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV5eY2FgYmJiY2NlWlFZVlVcWV1jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLR0NHRUJFR0hGR0hJRkdKR0hGSEtJTERES0tOTUxMSEpKSEpHP0dGTktLS01LS0tJR0dDREBEQUhJQj9JSkhPXWFaW2RdX1RRU1hdXFxcX1pLV1xMUlxZSU1eUE9cX2FjZGNjYlxkY2JkY2ZYUVVUU1tYWmFeXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSUZGR0lHR0lGRkZJTEpORURLSkxOSkxJS0pISUdCSEhRTUtLT0xLS0lIR0VEP0VDSEhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJhYGJiYGNiYWRkYlhPUVFSW1NbXV1dXV9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lKS05MTElMS0lJSERIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VDV1VFXFRdU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJdYGBfYmNiXWFiV19fVFBOUFFYUl1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQRFdfSUdHSERGTUpQUEZKSUpLTkxLS01MSkpHRUpNUVFOTk9NTkxOSEtBREFDREZEQ0FFRkJNSENMTFBPT0xGTUZHSUpIR0xMTU9QSUxPUFBTUExQVFNVWllXWVhYZFdPU1RQUE9OUFVUW1hZWl1cYGFkZWNnY2tscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHSFlNR0hKSEdOTFFRSUxKS0tOTlVOT0tLTEdHS1BTU05QT05PTk9IS0VgRURfTERmY0VNW0lfXHNtT01WbVlMQ1BgVWxXZ0pdV1VeRE1RVUxNVFZRU1RYV1RYVVRcVVBmWmhoZFhTa1NWVlVbXFtgYGFiYmJgZmhmbmxocnp8fX6BhISEg4ODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09TSUtGYFRISk9KSU9NUlFLTEtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzWFBtSHFucGFWUHFxc1BCa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZVV39qdHV1X2B3YFhhXFxmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEZKTEZRVkxLT0lLUlhXUU5OTkxRVE5PUVBLTE9HTVBTW1pUUVFPUFBQSkhaeF1UeGVoWVJUUXZndGxwYm5malFyT013bWpycHNycXJwb3CBXWZ6dXhxcXpxfnN9a3V9YlJnfGVzc29zc3x9b315b39yX2BgYmJaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQT01NSk5WXllVTFFTTlhaTFNTUk5MUElRUlRZV1dRVFBQUFFLSGZ4bGN4cm1aS01VeXB1bXVibnZQZGVJZnZxbXdvgGpmeHhpWHNSaXttaWp6en5seHp/b2dvWHZ2anV1cIBgc2h8aWx4fG9fX19jYlpeY2RmaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0JFUFBISktKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSVNUVVhXV09VUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExoeH14YHl7c25hXm1vZFJncnVubXlwd2x2dHRxbG1cdH56a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGZlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUEpMTUtMUVFRUFBRV1xZVU5WWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGV8aXJ7XVRLbGB2dWtpdXt7bX54a3xwXV5eYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobW1yfGttaGt7dG1ta21PSEpLSElJSFJQTE5PTEtTU1NPU1JXUlZUUFdaVlZUVFRhYFFPTktUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1dYUl1ZV11WVE9ZUldXV1hZX1tncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKU1FNUVBPTFZWVFBUVVhVWVVSWl1WVVRXVVlYUE9MTVZUUU5VU05PTUxRT0pJUVJLUU1LS09SVFJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1FSVVVWU1pRT1NSV1ZUWVZUWVVUUlVUVFRXWFddWl5hXVxaWlxcYGNcXWJjZGdlZWRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkZGZoUEpLTE9PTE1UUE5TUVFNWFhVVFVXV1daVlRcYFZXVllVWFRRUEtPV1NQTlVQTlFOS1NQTE5VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVJVUlRXV1dZW1RPVFVYVVVaVVdZVVJSWFZVV1tZWl9dVVleXF5dXF1gYV5bYmJjaGZlZGJYX2BiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FbWlhXWFpaWFhWXWpkVlhZWldWVFRPS09WVFBPVFBQUE5NUVFPUVhUUlFPTU9TVk5XUlRVVU9OTVFTVVVUVFJUWFZaXVxaVlZRUldYVltbV1FUVlZWVllUWFdUU1JYVlVaXVldX15WXl1eYFxcYF9fX1piYmRoaGVkYVliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1FVWlVUUFBMUFdWUldTU1NYTU9QUlRYVVVVU1VZWFteXVtbVlJPVVZWW1tXUVRXVldYVlRYWlRTUlpXVlxeWl9fYFVhXGFhXWBiX1xgXWNhY2dpZGVgWWNgYV9fZWVfYGNbWlxbXFlaWVlXXFlcW2BeYFteXmFgX2JcWWBaUU5PTlZRUFRRT1VUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSS1FUVFlaV1VPUk5TWFZUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVVZcXFZSVFZWWFlTVFlcVFJSXVhaXV5cYGFgV2JbY2JeYWNfXGJhYl9kZ2pkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJSV1JUUFtdXl1bYFxgVVxdaWpyfXNsZ1xVWVdRT1JbU1JRVFJUVVRLUVdWW1laU09TUlZWVVNPVlJTWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZXV15bWFFUVVlZWVVXWVtUU1ZeWV1dYF1iY19ZYFtlYl9kZF5eY2NhXWVnamRmXl5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWU1RUXl5gXl5iXGFVXV5ia3l0bH1sWlVaVVFRU1xUVVRWVFZZV0xSWlZdW1xST1VTWFdWU1BYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paU1RWWllaVlhZXFZVWl5cXmBhX2RkXV5dXWVhYmZkXl5kY2BcZ2VoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFhXV1ZWV11YUFVcWV5dXVRSWFJXVlRSVFhSU1ZUWFhYXV5YXVtVXl9YX19YXVZRWVRZWlphWVxVVlhbWlpYWVlaWFZdXl9eY2JhZWVcYlxgZmJkZmRfX2RiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlNaVlNcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFlcWlVXVVdbWllcWVhZYFdQVV5bYGFcVFVYUFVXVVNWVlJTVVZaWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVpZWV5fYGBkYmNlZWJkWmJmY2dmZV5hYmBjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYV5ZWWFkYmBsZmheXF1bVldYWVxcXF9bWVtiVlRXXl1hY1xSVlhRV1ZXVlZWU1ZUWFxcXmBgXWFdV2FeW15cW15YVlhYW1tfYFxfWFldXF1eXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNgX2VjXWZpZGVpX2ZeY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlJXWVZXWllbXFlXWV5gYmFkYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBXVlhZWVdWV1ZcXV5gYWBfYl5ZYV1dXlldXVlYVldbXGBfXV9aWl5dXl5hXFtbWltfYV5iZGNlZmVmYlpkZmdpZ2NfY15hZmVaaWliZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMV1dcWVddXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FiXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNgUlxZT1hXWVtaWVhaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfX1xaXl5gYmNcXFhbXWBiYWNlZGdlZWZkXGVmaGlmY2JiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hQWFpdYWNmZnJrf0pZV11aWl9dXF5cWV1bXl9hY2JhYV1iW2JkYmBjY2JdXFtaV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pRWFdcXVxbWltbY2BjYmNgYmRhYGNeYFxeXl9aWFZbX15dYWFfXVtgYWJlYl9dVFxfYGNkZGZkZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoY2hoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WDgYODgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t8fHx8fHx7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7fH19fX18fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmJiY2NjY2NjZBGKCsrKyolY5KMjI2Njol+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyMj5CQkJCQlDsWGxsbGxRdlo+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXl5e3hub29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH19fX19fX19dnNzc3Nzc3l9fX19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnh7eXt6eX15eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t6enp8fX19fX19fHt7e3t7fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx9fnp7fXt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3eX18fH1+fHd4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d8eXl7fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en97fHx8fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5fHt7enl8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGCgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnNyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdXNzdHZzdHNzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3d2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh9g3qGiHl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHh4eXl5eHp6enp6ent7e3x9fnx7e3p7fHuSf4ySeXt7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8e359fJqFkJp/fn1/f398fH2Ag4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAf36AgoGBooeTn4WAf3+AgX9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjIiGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35+gICAgIOmiZaih35/fn5+fX5/f35/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn+Af39/hKiMlKOJfoCAfn5+f4CAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSkpCKiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgYGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GBgYKCgX+FqZGQool+gYF/f39/gIGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChYWDg5aro6Ggh4GCgoKDgoOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCDhIGNrKmrsKWSh4eGiYiHiIeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WEhIGCgpuonaWqoKCLhomTi4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSLioSFpJ2UoKKXoZWDkZiGhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoeXkoOZl46cn5eemZGdkoCBgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg5OpmJSWkKCml5ieoZyLf4B/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDipeIh56rqZ+aoauWmZ+dmYeCgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhoSEg4ODgoSOmYuEj6CioJyfo5mcnZyThIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYycj4GHkZKTlpyZm5yak4OCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX18gpeLgYODjZCTl5ecn5mJgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqHg4ODhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4t+f4B9h4t+hISDhIKJjpKOiY6clIODgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhioCLhX2GiYF/hoWFhYaHg35+fYOHhISDg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFg4KBf36Ch4aEgX9/gICAgICEhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9/fn6FgoCAgICAgIB/gYGEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4aHhoaGhoaGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgIWFf39+f4B/gICAgICAgICBgH+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjYiBgIGCgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmKi4qKiIiHiIiIh4eIh4eIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhYaFg4GBgYGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgYSEgoKCgoKCgoB/fn19fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoODhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX5+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEg4KDhIKDhISCgYGBgYGDg4SDg5GSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B+fn5+fXx9fXx5fIOGh4eEg4KDg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4J/f4GDg4ODg4KCf319f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIKDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDgoSCgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn2AgoODgoOCg4J9fX5/gICBgH59fX19fX18enp6gIKCgX9/f39+f3+Afn2Af3+AgIF/gICBgH+AgYF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDg4OEhYCAf3x9fX59fX6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/fn9/fn59fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/f39/fn5+fn6AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn59fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+f36BgIKBf39/f4CAf3+Af4GAfn+AgH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODgoODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6eXl5eXmAgoKChIOBgoKBf4GAgYGBg4KCg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCCg3+DjISDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GDhYWGhoSDhYWDhYSDg4SDhISEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJKRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgICCgYKAgYGBgH+LlI+Mi46OjYiHh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIJ/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gZSRjIyNjo6KhYaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2MjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f36MhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIyPjYuJhoSGhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fnx7fHx8ent6fX+AgIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CLkI2Mi42MioeEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gH+BgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/fn9/fn2DfHx9fXx/fX19fXt8fn5/fn5+f358fHx8fH18fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3x9en1+fn+AgIOHiYmJioiKiYWIkY6MiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35/fn1/gIB/f39/gH+Ag4KAf4CBgICAf39/gH9+fHp8fX1+fX1+foyGfX1+fHuDgn19fXx9fH19fXx9fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiY2Rjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4ODhIeJioiJjpCNi4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgYCAgYOCgH+Bf31+gH58f3+Jgn9+gpCEhIOBf359fI2HfX1+fX18f358fX18fX1+fn1+f3x9fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKFhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn59fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICAg4F/gIGEgX5+gH9+foB+fX5+gIF/gX5/gH9/f4B/fX9/f3+AgH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fYmGhoWFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoKCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+f3+AfX6AfX19foB/f4GAgYGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKCgoSCgYGAgIKBgICCgoOBgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Bg4F/gIOCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf35/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH5+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfX9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgYSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39+f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgIB/foCBfn+AgoKAgYOChIWGhIB+fXx8fHx7eXZ5eXp5d3l2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eX13eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH99fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgX+Cg4KDhYeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAe4B+gIB/gYGAf32Afn5+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e314d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59gICBgH9/gIB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn19e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFyb3h3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39+fn18fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/fn+Af39/f4B/gICAgIB/gYCAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf31+gH9/gIKAgICAgH9/gIB/fn1+gH59gIB/f39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e45+eHd5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5eXt6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgYKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBgICAgICBgYCBgoGBgIGAgIB/f4B+f31+fX5+e318fXt8fHh4dnh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCf3+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGCgIKCgoKAgoGBgYGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGAgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgYCBgICAgYKBhIB+gYOCf36Ag4KAgX6AgoOCgIGBgYKCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4KEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYKDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GCgYCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX56fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4OEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhYSDgYKAfYGCf318fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgIKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODhoKDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WFhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CCgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhISFgoeGhoSFhISFhIWEhISEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYB9gXWBeYN/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgISDgH99fX5+foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN+g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZzhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fX6BgIF9gH99gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgX+Afn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foN0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fX6BgH5+gYKAgIGEh4aDg4aEhYSGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxte3l5dH6Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goGBfn5/fX16fXt8fX1/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYWFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHh4aDh4aFhYOEhoaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISGh4aEhIWGhIV9d4WEhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGhoWGhoWDg4WFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3x7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+f35+fn58fX1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SGhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aIhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e35+fXt8fn1+fn1/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoeGhoSEhoaHhoiGhIWFhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4GAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoWHhoeFh4aIiIeHhYeHh4aGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhYWHhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx+e3x8e3x8fH17e3t9fHt+fHt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhoeHhoaHh4WHhoiIh4aFh4eHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH17e3t6e3x8fHt7e357fH17ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYiKh4WHhoeHiIeFiIWGh4iGhoeHhoeHiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f35+fHx9f317fX18fXp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYWFhISDhIKAg4GFgoGCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHg4eFhoaIhoWHhIaHiYaGiIiHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4OCgn2BgYB+g4F+f3+AfH98fX1+fXt9fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCBgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeGh4iJhoWIh4iHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaDg4OFgYCBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfoCCgn1+f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISFhoeIh4WFiIaJh4WEhISChYOEhoKDhYSFhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3uAfX1/gn6AgX1+gX5+fn19f3t/fHt6eXp6eXp7fHl6enp7e3x6e3t7e31+fX2AfX18fH2Af318hoOFhoaGhoOEg4WChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhYWFg4SDg4SChISAf4KCfn1+f35+f4R+e398fICBfYGAfX6DfH5+fX1+e358e3p5enp5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7enp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1NTV1dTU1NTU1dXV1dXV1dXU1NXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fV1dXU1NTU1dXV1dXV1dXY2NfX19fY19fX19fW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi60dPT09PT09PT09TU1NXHt7m5uLi4uLi4uLi4ubCKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E9PkA3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6Oip8/T0tLS0tLS0tLS0tLUvaCjo6Ojo6Ojo6Ojo6WVU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSko6jP09LS0tLS0tLS0tLS1b6ipaWkpKSkpKSkpKSml1dXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7PDw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamsz9PS0tLS0tLS09PT09XApqioqampqampqampq55iYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs/Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tTV1dXV1dXV1dTT09PU09LS0tLS0tLS0tLS0tLRzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7OztPU0M/O0NPQztLU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXU1NTU1NTW1tbW1tbW1tbW1tfX1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztCmksXR0rmPvtScgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPTo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztKqnayUzcGUsJyxlri5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DJl5mFpbCmoIuRw5N9fq+w0c7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PD06Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0aSwvZibnIedutTSzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Q1bmamJ2Qn6DS08CgoNDPz8/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P0NGaoKGsr5GhudevoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NWnpKO7npqtm6nYo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NLAnaLLxZamxZii0Z6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPUpKCPuMubnJubrcefodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HIxqa9lZGqqauknsW0pKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQT49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg1MqOk5eQp8+SkKfXuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLUwq+ws9DVy73V0tHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dTW1tbT0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioaCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpyenZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYm5qZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6OjpKKhoJ6bmZmYmZmZmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoaGfnpybmpqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56bmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmpmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZmanZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmYm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkouQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6JkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJCVnJqdnqiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6KhlZCboKSjmpONiIiLiZGRjpKOi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6qpr6Gbn6Gjo6CanqCclI2YlJigoKGknpuapaekqauvrKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66vqqqrpKGipKmnpqmoo6Kdm5ukoaWoo6CYnZifoaKpp6Cioq6sq6qnra+opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKelp6mnqaijp6aZnKSmoqGhoaGgnpmZn6CmpqOinp6Wn5uaoqKgoZ+hoqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXFBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+foKqemZybqqShpJ+hm5yanKCeoZ+enqCjmZabmKSioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirsKmoqqihn6Cnqa2wsq+so6KmoaqyoaSio6uipaSipaOenaCen6Wiop6fopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltaYF9aXFZcaGRuY25qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu3taSysbCboqeeoqOjm52cl6KopaGfnqObnaGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eWpiW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7WzuLKetrS5f52qpKKfoJeVmpekqqamoaSjpKumpZmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odWtxaGlpYVlTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW1vLy+vLy+xrq4t7q9tLCsk7G7uWuPuLKqpqafmKSkp6ikrqSrq7W1r7Ogp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrOppYeuwbdher7As6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5rY2Jud3V2bmxbYlFWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6wr56ArbyyXmm2w7qtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbWZudXFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtbuUfaq1pV5hoLy7saCbsa+spKyutKeqqaiqrayppqWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3RrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+8u77EvsXIxsbExMO4tMC3tLzBwrnBh3uzxaJhYYa5u7asm6O3sKastLWsrqWko6ikoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ4c3lmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GycW/w8DLzc/KxsTDw8HEvri+wcPBun18v9WmZGJysbO0qp+ntLKuq7i1s6ypo6GtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXWtvbnh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczOz8/Mw8fGyMnIyMnHxcnHyMe/xcfEx7J0dr3XpGVjZq60t7fAvr66vbq8urysraaqu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGppdG14bF1kW1ZgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzsfMycLCx8LLy8jGzMrOxcbFw8iqbHCy159jY161xMHIzMbEwcTHwby+tLCwsMG+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVudGJdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8S/v77Ey8jKy8m8vMjHyc3Iw8jJycXFw8LCo2Vpn9KaYGFevs/Hy87Et7+/wMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVmY2pkYmptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIycPFxMDDwcLBw8LDwZxkY4fHnlteY8TNxcjQwa69vri5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjZGRqYmdjW1paXFlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ytLAu8DBvLvFvbvBxMSjaWR4vaNbXGvGxcDAyb+wwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmNoamdnaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdmKssK7w7W6x7e2ubvApnZyd6adaGmAxsC/u8G+uca8wsC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeHFtZWVmb2llbGhYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNHGdqDMvce3ubiut7W+sZ2FhIKTlXt/mcXAv769vL/JwsfIvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NmYm1gXFRJS0pESkJDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC4u7K9vrvEtrW4tbfAvsS8wsTYrXJ7tsnPwsC4r7W+v6COhH2HhI+BhJmwwsK/vr28x8bLysTHvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGludG54Y2diXGNRS1RIRUVDSEM8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLq9x8rJwsjJ0pZvcKnS0czKxLW7ya+IeHBlfXmFb3OAiLXEvsG8wL+3ysnFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9jXmBhTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8fSwrm+vMS+t7zBv8jPxsjKysCEcHKizcvLzcrGxcGVcGJZT2xze1dYaHKZv8HAv8SopMjEw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8tru4rtzCvra+wL69tJ6Uoquvv76jdnR3otDJy8jBw8OmeFxNRkFfb3BJRVhhfarFv8GyiJnIw8DIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3hzZ3BdW15dWVJGRENNSUFFPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vIrWyxzb21ucC8pHZqZ2xob3yRlG50eaLRxsjBuL+9h2JMQkE6VGhkRTpOWGiSw8C0kHKeyL6/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f312bHV7cG5pW19gWVNQQUZIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnA0Klyg7S9trW/noRoWV9eS1FaWmtvcn2jzb66ubS9tHhQQFFlQEtcWUc5R1Nce7y5nHJprLy1wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3V2d25xYF9mXVtUSj0/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsuggnaLorCzkWZgZVVZX0tKTU9TbHOEpce7oqOtuLCERUBwllFFUlFLOkpSVWyqoX9kcravsry6rru0s6arqK26vrjLwr++rKuwr7O7t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVteT0hCPz1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/FooZ5dY2ijltSQVhUR2FtWVNHSWONo6rDxpmEkKOwpUJHe5pfQlBRTjlTWlJhi39pX4m3payzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZlhcXVJOTkE+SkJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4wrCOf3iHjmhOSUFrV0JPdYWZcE1DVn2wu9GuenaCoaZGSGh3WEJYWFs8VmNSWm9oYF+hs56kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c210aWxdW2pUXVxQTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7izkoyIg3dVRUBUiVZKSlN1i39iQFmpubLHz5JnbIOES0ZTVUlkkZ+pnpd7UVZeXFdyr6ehnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yuqeYmZZoTD9ggGpOSUlNZ5p/VkdZrbqxr9K6clthZFFFUHCVqaWempyen4FUUFNTlK+fp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6ajm6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3pjd2xuXFFoVFBOR1BNTEJPUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3Bqaa9YUJco31PWklLYUtbiWZtc46vtam80pdVT09QbqKwp5yPlZGOl56ijlNJXKWknaiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mbpJmXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dn1ta3tkaFVRY01KSEdPUk1KTkc8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCrxcDJlk5Cdp1rUXFMUGFnd3BfYGuBmbCwrsa6XT5glKWemJKMj5SVl5ebn6aLUHKgnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3h8ZHl5YGJSVWBISUpLU1RJUlBMOT9BNjc8NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMbGhldSTWSfXm59dXlXUWtjXmpnbHiOtK+0wn+EoZ+dmZSXmZiPjZCUkIuNkIGKoZ2Xo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKqyrqKZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKT09VTFNMQTc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo495V3N1cnRpX3JuWFldXmRnWWJfaKyuq7Coo5+ioJaQk5ugmpiWkZKem6Glm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWp3dV1sWlJgSFJVSEZVVkpCTEc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCifm97aWBjV01bUlVISk9VUEdSU0qZrKqppJ+fmZKRk5iYlpWUi4eKjZSdnJ2dnpeemaafoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+np6Wkn52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pdm1obVxYXENXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOfnIhfVl9mX1VMTEQ6Pj5CQz4+Q1N4qa2pqqWfnp+io52enZqcm5OSlJOdnZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6mzraqzta+zrqqvo52rp7axraKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3RycWhWXFFGVEhESlBJP0VBNEZIOTU7PjY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5N7YGBmXk5ERTxKRUg8Pzo2Tn6qs6ejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeG2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3xMrJw8HGvrq0urq1u7ewtbKqurKuu7e/u7qquK2rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGtlWltGS0xFRFNNREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdnJl7cmlfVExEPktggnNlQj1cjq6soJmbm56emZeXl5KMjpaXk46NkIuCg4J3cnFtcI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxczR0tXO08m9wL/Du8bFyMXR083T0NPTzMrCxcbGysjOv8jRzMfGx8XBvMPBv7+/tr6zrr/Aw8PHxMfErr+4sri8w8LCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MREVQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaGRbU0hDQEBNkKewnIOgsq2jnpyfmpeWlJKUlpGQj4yHg4OIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LV1tPUyMzGzM3J0s3O083FyMrKwcbLx8nIxr/Ds7PIxMvLy8/Gyr++v73Bx8TMzMjJwMO/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2BSS0hEQ0BGWLbSvLKvppycnKCkoZ2alJOVlIl9d3BrZWJocW9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLV1tnV19PX2M7Sys/RzM/QzdPQv8jHysTMzMzOz8XGx7a/yr/SzczPxsnIv8TDyM7N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSUo+O0E4PTQ1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWfoqFZST9BQ0FJU3yyraaZlJefnJqgoJ6bnJmViXdpY2BfX2BfXl9fXWJsdXRwcG9scnF1ksTIxtTW19fX09bQ1dTa1NTOz9XU1NHRzNHN09fW09XQz9LT0cnT0cjQ19fY0dfS2NnU1szPz8rN0svO0MHGw8jGzs3R0dLJzM3AyszG08/MzsjEysfHyMzK1NTR1c/SzNPCucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaOrZ0M5PT5HWoOrp5+XlZeZmpyfnZicnJJ9cGVjYl9fYV9fYWBfYGBfYGZucHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY19fLyM7Eyc/NyszAysDIys3O0MvQzs7Mzs/Iy9DQy87KwsnHyczLzNLTzdPR0dDQyr3IubCuu7i1qrawrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg2NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramksHpLSkU/Wo2hm5WTl5uenp6ck5aXlIhrXl5eYWRiYGBgYWBgYV5fX15cYm1yb29zdHZ2eaS+zNXR1tTT2NbOztTLzs7FzsrS0s/Hzs3N1MvO083L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXMwsjJw8zDxcjKys/KzczQzdPLxsjPzMjHy8XGwcbKzM3Q0cbQzs3NzM/Fx8G4ub3Dw73DubKyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYZ5cXJrbWdgYHBoWVhoVkxGTElQUUI7Qz47Njc6ODo6NTc9PUA7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKigrpN4cnZ7i5WajYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNiYF9fYGFhYF9dW11ncnJxcnNwbXJ5pMbTz8vQz9PUysXJycbGv8PGz87HxcfNytLIy87OxtHS0M3M1MrHy87PyMfP0svRz8a6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL/Bx8zMzM/CysvIx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7uto7Z8ZoODp6yTjo2Wj4WDg4OBfYSEfnNgW15eXmBeYGNkY19cXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jLycjKyMHFzMbIy83JxMLKycHCzNDFy8i/ucG7xsi+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xr28wMPFzMXFvMDKwsXH0sXAyb/KycbIxtDDw8bDr8TLx8TKt7+8urSprKSlmJ+YrKOhpZujoJuUe3dydGZpWmFubFpcWFJETEZCR0RMREZTQDU0MzM0Pz0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sa+1a195f6aQipKWhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgW1xdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjBwcHFvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7u8bDv7zBzcPGvr61wb3Dur3Gu8K6s7zFxMLCt7+1tr6/u8zDvLW6yLq/vsvEwcbCxcnGycbQxsLMx7LHycPOzcHFw8C9s7ewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1tfNys/FycXHwbnFvautpF9ldIeTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNhYWRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmdvczAw7rAuK6wsaeqraynuLS3tLOztLu1vrK3sLWvsrzCvMHEvMC7tbK6vsC4x7m0u7bBwry4vcbBw7u1r7K2ur+0xLe7tKu4vb3AvbG6trC2urPFvLauu7+1t7TFvL7DxcDDxcbIy8XAxsa7x8vAz8rHw8bCw7fDvb22ub7Hv6y1urW3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcXAv7q3ybaqsJhbaHGMj4WIiXp4foaGd3eBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpcW11fbHBuaGZrbW5yfKTHv7m4tbCrraeeo6qnnquts62qrKm0rrexs6mupqyzvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLLAtri9sLCnsrO1u7yrrrWmrravu7Kwqrmwrbuuu7i7wMC+ucK/x8PFwLzGwsjKuMXHxr/HxMO6xMbCu8bJzMuzucK9u7OJc3Z2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXQx83Bw8a/xMTDw8rCycq/wLzBurO0tcOuqbCRXGp+koeOj3t4fYmFenuEgHduXl1cXF1fYF9fZGNhZGNiYF9dWltaWl1aWlpaXGVub2hmZ2lrbnGBrbmwta6mpainmqCloZqcpayupKiiq6qtq7Ckpp+qrbW2sb25r7evqK64tLS8uLS8r7i5tbK8wbLArqWpo6uxsrOovaqrqKutrbSzpqitoaSvqbKmp6iupqi3rLGyt7q6vLG8vb6+xL+1wsHHyLe/wMW3xMO/u7/Ewr7EyMzKv77EwMCph3N0cmppXWFvY1dWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HKvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairk2VsiIOHi4B7fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWppauloJyipZSepZuYkaGjqqOjoKWmp6atoJ2cpKatsrC2t6ewrKiqtKu0urG2tq62urKvurqxtqWgpKCmsaerqLmqpKenqKeyraCnpp+bpKasnp+npKChsa2trLK0s7Swtby2u8HAsrq+w8GyubnDs8G9v7W4vL2/vMLHxMPDvsDEoIN4cGxiZl9rb2BVWV5ITmdPVEdFS0Y8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo2Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9tqCelZ2hprq2q7Ozu7PEz8nLwsa4tsfAzL+4ybe7xbizxLizv8CstbyyrKWvs62ho5JpcYaFhoB8eXVzb21qamlwaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1vh52poJeWm6KWnKOZlo2foaOnnKCgpKWip56bo5ugq7CtsbajqaqqrKyktLmtt7Css7Wus7WusKqfnp+korKkpqm4raKmpqCorKuZn6CemZ2fpZqZo5ybna+pq6eqrKytsbK4r7i5u7C2vLy6q7OzubO+tLaysba1v7a+wL3Dwbu7vZeEenNsX2VeZGRYVFddSVdcS1BHSUpHQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vDw8++use4uL+3ssK0sbu8q7m6saKeqaunl56QbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3GNp52UlZWbmJuil5aRnKKiqJ6cnaWnoqWcoKGbma6urq6yoKairqunorWxsrKsqK+zp7qzpragop+co6Gto6Kqtaqio6aepaajlpmel5mbnaCal52dnZytoqunpKSmrauztKq1sLOrsrm0r6qvsrKzuLOuqayusrixu7a6vb+3s7GUhXl1Zl5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLMyMa/xbbBwMbOt8DEvbO5ubO/trG5u6yytK2emqSpn5Saj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqGck5WQlZeXoJeZlZegnqGdlqChqaSfn6mdnJqrp6+wq5ujpLiqoaCuqLaqp6etsaS4sKS3oKObmZmqpqGarLivoqGknKKfoJOUoZSWlpuYl5aXnJWfqp6ppKKdo6qqsK6otKuqp62zsKWrrrOxsK+ur6aoqLKtsbSwvLS5t66jlIF5dWReYVZZWFNSVEtNXkxPS0dHTExFPUE+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2nqKOqu8C9wLmutLjBzMfFwsO9xbjIy7LBwsGtvLu1u7y1ubmwr7Cpm5mhqJSRiouAgHx3cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmmBlpOWjJKUlJuZnZaWnKCcn5agn6empKann52fpqCqr6afoqS3qKGhoqi0oqWopbClsa6stJ6hnZWVqaGilK2xsZ+io52emJuTi6GUkZOYmJOXl5iXnqecp6GimqSlpaukpbCnpaOrq62mqa6vrquoqqmzpqasr7Sxr7y1sa+voJJ6d3JlYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxce2xcSywr/Fq7e3vba9urq1squsp5iYn6OLiXSJiH52bmNhZmloZmdpZmptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVNVUlVgYF9gYV9hYWNlaoCUk4qQjpSTlJ2VlpekmaCXnaCloq2mpaWjo6Kcqqulmp+lsaqgoZ6lq56oop6trKmprq2ioqKVmKObnJCrqbCcoKKfnpeZk4qekY2Sk5aQmJiUnKGjnaShopWgoqSmm6OrpaKkqqOrrqWusqmmpaamtKapqK2ztbS5uq+prJ6McnFvYFtXVlZSR1FPSFpbT1JKVEtTTEVGSUQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6PDw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb7DyKyxuMG1u8C7tLSqrKaVmpuciIByiIN7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eX19fYmRtjpCEkYePkY+ak5WTnJujnJuhqamrqKynqaakmaWvpZWZpa+qoJyZm6Cer5mcq7Ogpaafo6ShlZOblpaSqaqtmpyfoaCblJCMmY6MkYyRjZaVkJ2ioKOdnKOVm6CjoZeiqKOiqKugq7Ckrbelo6Sira2qqKuvs7ezvrWyq6+YhXRzaFtZWVNVUkVYTFFbWE1UTlBMUFFJTklCPT8/QT89NzU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1NzY1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9u7O1pqmglpeYl4d6dIB2d25taG1tbXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZH6MgYt/i5CKko2XkZeZoqCboKuqpq+sqLClqZqfraCVlqSpqJ2YkI+anq6XmKiqmZ+dlKWhnpKRkpGTlaeqpZqZmZ6elo2Mi5OGiY2Dj4uSlZGgnqGkmJWflZqhop6Um6Wlp6iooLGxprG8p5+jrLWrrqewtbC4tcCxrbGrkX5yc2JWVFVOUkpHVlBSUUxMV01KTE5SR01LQUNGREM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OspbG3qqWisaudqqepsrGktsa0ubqzysW5usHL0Mqxtri7vcHDsa+xt620s7uzs6KjnJ2Xl5SDf3drZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/dYmNh5CKl4mUlJibmZ6pm6CrpqasnqiaoKack4+fo5uXl4WEkpujkJWjnZaWloiim5uUi46KkJqkp5yVlZebkZKHlI6LgYuNgJCKkpKSoJqgopaUmJmVoqaZjZmkpqimoaC0sqeyt6Gcoresqq2ksrKmtby1rKuxo4l5c21dTlFRTE9DTU5OUEtGTk5KSk5NUUhNSkFHS0hIQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKSnpKqloKimpbOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq26r62fmZqdlZSHe4NuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW9zdnCEiIKIgJGEj4uUkZSeoY+bnKOipJmll6KclY2HmZqMc42Dfo6XloaRmpCUjo57mY+djIKJf4mYn6OekJOYloWNgpR+fnSKjnqQh5OQkJ2bmpqSlpCdjqOjjomaoKGjpJuitK+sr62fmKW4pqaxobCunLC7qqmvqpmDd3NjVk1ST1BOQ1NOTFFMQlBRSElOUk1ISkpESkxGSko9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpqWnpqezp6W0wbiwtLDJxLe5wc7GvbOsusGrrcOtp6Gmkp2mtqyjn4+VlpKPfnh+ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11pbHJsf4V8dE5YcpCDl4eOnZeLlJGfmJ2VlJaVj5aJgJOKXztXb3yMlImAjJKMkIaGc4qFl4F5gXuGk52Tg5WOkZCDhn2TeHFwhY19iYGRjY+XmpmTi5CJnYifmIiHlp6aoaCXp66pramonpats6KmrZmsq5ios6KpraOTfnJuYFtOU1JXTERUSlBMTEZOT0lFTFFNS09KSUxQRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepqKOqsKintMG5sLWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUm7CimZeGlI+Lh31zdV1QTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXuCdFFCQH+VkpJ9iZWNhIqNm46WlYmSiIaVhnmJf2BKUW54i5KEfYSNioV/f25+f5R4dXZ4hI2Zb1GNiIqGe354lHZnd4aIfYqJlYuNkZKXjISKiJWEmoyChJKalp6dlKSjqKmlpJ6asKuhpKSRpqqWoqqcoqaoiXVtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+hr6GnqKWnqLCtqra8tre3s8G7tqe6yLi2qKi1tqqyvKaelY1/iZOolpWKfo6Dgn14cG5YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXFWPiZSJdH+HgXyFjJOCkpqLj3uGj4B2gHhzb3ZwdI2OgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gHZycpJ3aHWEhISFe5WKiIqNi4B/hIuMgJSDfICPmJSclpGenamen6CdoKmln52YjKekk6Gglp6fpIByaGFcXUpXUFJISlhST0pMTVJKSkpMUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlraywsqq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGNlIGOnI6Rf3aGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfHhmd42XmI2PfWh5gXZ4gImQfYSYkoFyh498d3tva36tfHOQin97hpKBfX90ZnZ8hmxvaHN9iYyIgGx5cX1xbXaPcWhxgX6OcEOLhIKDhX93d3qLhX2Me3V+jpKPmIqSmpujlpmdmp2eoZyWjYqkm46el46WmJB3b21lYlpYWFVRSlNVVE9QTlBWS05LTk9KUU5IT09MRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmxr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mOhZJ5iI6LinVxfG11cGptalhLRkdFQUBDRElMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnt9fnt2b3RzhYJ5gXlwfI6MipSDlpeYmpCSlZeZl52WjIOJnpGLko2GkJaAb2pub25YVlhUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCjrKqota+urLS/q7zCv6aimZWkl56NhIuUoaGYmJGTi3OOeoCGjIV0b3RrcWxkbGpZTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXGCniGKaaXR6ZX9wbX96i4l2goiGdGyakXRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxf3xocXF8bpOOj3xzfXxxcG52bYJ/d3l1anmJgoiJhJaSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trb2hlWFFaV1lZW01QVVZZWE5JSEVKSkhHQkBGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfp7uvq7KwwrG7w8ealo+UmYuOhnmEkJiUjZCMj4Zxh4J0h4yGenBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiYBnZ2JqbnJtcIN1aW9YdXCOm5J3bH96fW1ybnCAenN2bmJ2g36GgIWQkIqKiZGLkYyLjoN1eIqOgH6DgH2Pe3JwcGxgW1xeXFlYYV9STltaWFdMSEpGSkc+QkFCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ2kp56vlaW1qq6xrsGyu8HGlpCMlI+AiH1ugZCSiYOKh4+FdYKEbJWIiHt0eHhsd253Y2leSVBHPkA3NDQ5Ozs7PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgYWZhJucYYaqn52Lg5CNeneIfomIjXOKl5CDel1kcnR6fHeKbWhqYnlvhpCCem6Bd3SEenB0eXdrbmldd4d8h3yHh49/i5KXg42FjIZ9cYR/g311d3t8iXdwc3RlZ19bW15UXGdeV1FVWFtVR0pKRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIySnJ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fYF/cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxyfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkqiHgJiYipt0bXyBhod9jmhnaHh/boWHgoVxhIZHbIB3cnl2aG1rX3d9g4l/iIWLepWdm4mLiJF/enWLdnx4bW93fX90dHJsW11dW2NjWGdmXFVPUFZZUERMS0ZOSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiJGBmpWCoaGYlZuapa2Tmruxp7vHw6iLjKGlj5SJgZF8cYOen5Gcf3aFhYqQiJBpaG+DgHSMh4SLcYWCd4d/e3aFfW52dWaAlI+GiYmHiIehqqKWiY6Yf3qCiXp5b2dreH56fnJqZF5aWl1qXWFmYFlPS05XUlFIUEpETkdDSkRCQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMgIGRjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBjIuCiY2Df4l/bXBqXUJBNC0tLy8uLzAyMjM0Nzc4Oz0/QkRISk5RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2aj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPoZ+TmJKEi4WPmZGWbHB1iYuCloyNj3ePhHFthYGKlpGDhYhyiKGWh5OJjo+WpbWpm42VooOHk4N9f2tqa3yAgYFzYV1jXlpma1xsa15XS0dPU1FOTUxGSVBDRE1GQUNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+l5aalZ6enKegqZaTmJ5nZaSafoSSkXmAkoiQkn2KhJiSkYKAgIuNiYWQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0VOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZyopaKZoZeilZ2fqJ6oq6CorKmqtZerv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGJlaKamnh6fpSYkqGSlpiBlJ57d5WSq7OIjZeffZSenI6Tlpmkoqa2sJ2RmaiIlo+NgYhsc3J8f3xxaGBcYF5iZ2NgaGdbUkVKS1BPSUpMRkZNQ0hMRkZDQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJjIqEkoWDhomBgIZ3X2JQNDYwLTEvLC4wMC8vLi4wMDE1PkFBTVFSU1BSU1VSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYaQd5WLo6eqtL24pK6srKeotKuwtrKyrbuxs76cs8Osu8nLt8O/uKWjsLKsraqji5aYhaamoKOXgaaZjaKqqKSIhZSkoaCqoaSpj5yxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilKSqiJmJkoqVeXp+hX5nYGhcZWJdZGNfZmZfWk9DSUhUT0ZITEZKR0VGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GPg4WAi4WGh5KGgoSJhoiHh3FuYUBFNjQ8Mi8xMTAtLCstMS4tMz9EQU1VUVJTVVVXVU5bUEdHRTw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqscHHw6qzxbass7+zuL62v7TBtru7pLjGqLbJx7W+ubSoo7StsbGbmZKan4mor6ullHafpJehq7GzmZaqraiutruyuqyvtaKxrLG1vLe1rrWgp6ejqJqpsK2yuri4p5u2qYyljpGTn4Z4goN1WWFkVmVhYWNgYWZfW1RKREVMVVFISUpESUdFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFjZFd5dXGBlH2Fh5N2hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjYeEgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0pBQD5HS0ZFRDs+QDdENz9CSkpFRldUUF6Ppa6jsbTDtrjBzMm2u8S9s7PAt7fBtb+wt3Sxs6a6xaSwxrmxs7G0qKS1tqqxoKGWm6KSpbCupq2rp6SYoKyzuqKpsrq0u77Mv8XFvb2zwre6uL+3ure5rKywprGqrb6wvbvCwqyZuqiUro+Xl6uJfYJ8aldiYVdqZWplV1tkWVZUSUdHTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVVadmpwf4+EgY6EbnpzeYdiuKGZo4mVk5aTlJONkJaSh4Z7hoGNloqBhIGKenyKh4Z8ioOBioOVfXh6dWVPXGRHRUw6UWNhW15TRj87SFBEWmNRUVlYWmdZVGBgTVNQRUE/SUpIRUZBQEM8RTZCPkhHSkxTWlRdk6+4tbq5yb+6vcnMu7zBvLe1u7u3vbS6scZhdbKlsZqeqr2qpairqqOisrWhq6ielZafmJ+upaempZ+jlKKmsbSnsrK9tsG908nK08bCxcvBysPAvr2/u7y3tLC5t7bDusW9w8iwnrmqoquOpai2iYB/cV9iYl1XYV9oZlJYYVZSVUlFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdsbHGQjYWQc2xycnOI1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaKf4N/g3h7i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV9uX1hnZVVZVUtEQUtLSEZJSEhHQkk5RD9IS1RUVlxaW5K5wLm9t8bAurjKy7q3ura4ubK3tbSutraZZHWonK1wXqGtnJigopuknqqllKCfkJSOlpiXqJ+ln56amoSknaylqrCst7C9udTRz9fPyczRzM/OysbAvsLKvcG8wcDExMXKv8jOtKS7sLSvm6u5vJp/eWxdYFxZXmFZY2NRXGBTUEtDQkVHRTxART5CSEJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KQlG9sb3V1h7OsoaGfi5mcmYyNlZGbkoWKin6Ih4yQi4l8gYRze4qDhXuJdIGJhpV/c3t4a211e2hyZWlsaWZqaWhgZmlobFpudJetpLyIh2dbb2hdWlpUSEtOT0pLUUtUUUhMQUpHS1BfXmJmaWGXt8ewubO7vrWxxMe1sLmwsLursrGnqresjbannZunmk+anYyOoJaRppillYqTk4mQiY+RkZ6boZealZaHnpqmm6yvqK+ns7TU1NTW0svP1NXO08/NxcLJ0L/KycrJ0sfMzcLQ0riww7zEuaW2usSigm5jXFxeWGFYWWVaUV1XT09CQkhFQkk7QUQ+QUc/P0I3O0M+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmIJocW95eYOgqp6ml4ybm5eLjpWRmo59iYuFjoqKi5CHfISCcH+IgYZ7h3KDkouPfnF4dWtxeH5xe214c2xpgXBtY2lucHhpd3x+y7/C36dtY3huY1thYEpQUlVOWV5QXl1NUE5UUVVUXG5udoJyl624rLSnsLarrLzAsau1pqS4pquuoau0o46xrpqYmIyRk5GEjpuBjaeSnImDi4SKiYSLg5OVmJeTm5GcmJmZnp6rrKSnoaytz9LV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbFwM7Hx8OovrfQnnpuZV1iXVdgU11bT1BUUE5IPkFGQUJFPEBCPkVEPkA/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bHdwfX5/oZ6eoYuNmZOTjIyTj5aFeYWPkI2LioiRh3+Ce3J+gIGHeYR1hZORiX9vdnJrc3x7d3xzgXdxa4BzcmhvcXp5cnu+y5t+jLKDdnKEdmhhal1DWlpbV2ZkWGVrU1hdXWBkXmN4e36LgZmqpKShoKGopqqwuKqltKOhraGjraKnsZ+JppqUkpGJkY6IgZSJa5WijZmEgIV9kYODk5ati5WNlZmOhZKQnZensKGgoaSkqMjOz8jCy9HU0dTTztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMTDy4tzb2JgX1hUWlNcUEpHSUlKQDs6O0VCRDxCRD5IQj9CQzs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5aJj4qIjoePf3iElJmKjYiIi4l+gnhze32Dh3d/eoeRloCDbnhwbXV/dnh+dIV8eW2HdnRufXaEdXl7nbaMPEGLxqV+jXxpZVZJQ2ZjZWNoamRveFtfZmlrbmlugIOJkYudnqCdkJeYn6OkprKkpLOgoaWdoKmgorGchp6SkpKQi46LhoOQhH6cm4yNg4SFepR+gqmVo4ySipeSi32XipqRqrOYmpunnKe9w8a5tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2trS1b/LzLR4dm5kXVlSVlFaVkZHSkpFRT06NzlAQUI6SERARUNBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqBh3x4hZaWiI+Dh4WHeoR5cXp7hIZ1eoWOjZ16jHB8b296f3F8gXGDh4Fujnp1d318gnV/fIeIsHRZqcK2jJKCcG5iPV5ocnBxcG54d4FlaW9ydXhye4uHjpSSm5WglYeMk5ugm5+qn6CtnKGamZ+lnp+smYuajJGRjYR9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI6UjIZ7m4iTj66qlJWXnpinrrW9qa29xsvIyczLz8jD0crU1tnX2NfU29fT2dvWz9va0dbJ1MuVeXtoaFtZUFJUXkhDRUlJPkE+PTc6PT87Pkg9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoGEfoN8fISXjoeLfoaGgHeCeW57e4eBdXqSno2gdo91gnR1gX10gIRvgY+Cb5KEdHyBhXp2hnuJt8alwsm3gZabj3dwZU5mY4F6gXeGopCLeHl3e4N/fIR2bpSWlJWPmJCDio+WmpeXppyXoJefk5KXo52Zq5aRkIqNkYKMhYmIgYWQkZ6cmYmFi4GGmHqJiZ+Xj4iOiouCfKGJkIu8oZiTl5qcqaalrp+otb7AwLnHyc3Oxc3K0dbW1dnV19vU19na29fb2tnYztzGhnp5Z2hlYFRXVlVNS0RORDs8PTw5Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eot8foB+f3yFe36BkYmEhXqEiHt1fXRufH2GfnR+kp2RnoOSfIZ+eI59eYqKboKagHSYhX6BiYV8fpB6j6mPkMOgvIyco5x9iYR9iXOMin5zppqcmJSFe4+QiYRoR3GhpJ2Mi5CShYmLkJKVj52ak5WRl42MlZ+dlKGUko6NkIt+kI6Oi4SIkpaan5+JjJSSnpGCi4CmmYiEjoOGhIClhoqLuJidkZWWoqehnZ6do662urWrv8bK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3h4d2tpZFdgW1RQT0hETEI9PT45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97iHt8e4uHgn51g4Z5c3pzbYF+hX13hZuhm52UkoCLiH+Yh4Cckm6HqIV6oIt8kY6DiIScfpqRio2jop+QpK6gi5GLhYuBkoZXcq2Ln6ubj4OYm5CQjlyCopGCjJ+TlYyHiIySk4yUlJSPjI+KiJabnY+VlpGLkpSGgIuIko2JipyWmaOjhpKdlqGLioiOnJCDiI+Ag4eFpIaMkLOYnZKUl6GhnpmSnJ6nsbispbzCx83Hxs/Mz8zO18/R1K7W1dja2Nra19bZ2p9vfHRnZ1xdWFNXWENASUQ+Pj46NDk6Ozc6OzozOzs/PT43Ozk6MTlHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieG1ifpKDb213i3h5f3qBfIZ8e3eGhH9zcIWCenV2dnSEg4V9f5Kmo5+lopaJnY+Ul4uKqJdyirKNhKeRhJmThZmLopagmJOJm52hkqmvn5GUkI2NiJWLbo23hZrEyLKcoaWbnJiWkbKRZKTNx5aPhYeJkJKNjZOUioWKioaWmpuPkJSThpWXhH+Pi5mIjZCql5eko4iZnpabiY+Hl5eKhI+NgX+Hj6WJjZOpmpeTlpmhmZ+Zk52bo7O0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6Ccn9oY19dXk5KVFpCQUdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj46RU1GSFJXU1JCY4FGdYKPfXxtfoh4en56gYGDfnZ2gIN8bG6Lf3l8eHh8hIeLfYqjs6ejqrKhlqefpaSWla6ig5C4lZKzmY2hoIylm6+jpJ2YkKeWp5mtr6SXlJaUkIuYmZagwI6kybirm6KmrZiRm5yynYaFqKKcmIWIiY6VjYuTj4iBhoeIk5iUjIuTk4aUmIaEkZCcdJGZs5aXpaGInJmTj4qQi5eaiYqWjoZ9jJieiZCQnJqZk5iYoJSgnZWfm6GxrqKkt760xcfEvcPDv8bNysnSp87N09LQ1tjT0Ni7cnl2XGBVX1dQSElORUJDRTU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1NjY9OkpGREdOW1xZSWZgO0iEi3p6boWGenyEeICFgX5weHx9fG9yjXp9gXt4houJhoOSp7utqLK9r6Wts7Ooo6KwrIqatJ6juKSVraSWqa23pqSjn5mpmKmjr7CqmpiclJWRl5+Xmbu7rcmhaba4q7CUmJ6jq5OXvqNeqrKCiYqNlIeRfI6OfYOGjo+UlYiHk5eMkJWNi4yXmJKdmbSXlquei5uUko2QkoyZm4qSnpCLiZWgoY2UjZianZOcmZ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8jC0aHGyc3NxNfW0cvToXB6aF1ZU15ST0ZEPjxDQUI4Pzg3ND5GPDw2PDM1MzQ1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVHYmBicElAi4p+gXOGh32BiHWCioN/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruztMG8tK2rs7aMqLKurryqm7ukqK25uKumpqKho6Oor7Kxq52cpJibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIecrL2wg4yMi5CDj4ORj3qBh5CMjpyIh4+XjYuVl5SRmpadp5qxmpGsnY6aj5KOlJCQlpeOkaCRiZWbo6yUlo+UnJ6UoJ2bmKChlZqep6ekoqSwsqbBx8OvsLq2xcTCvs2nx8PHw7zV0c3Eyoh0c2JcWV9bTUpCTEBFRz9BP0I7OjQ+QTw9NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxmRmBpZ1pdW5OMjIh7h4uGg4x1hpCKgW9+fIJ/cX6BepV6kZSUmJCTlae0xsm/wszBw7nHvLqvq7m7l7K2urLArqXApKuvu7yqrauiop2nqq60sKqbn6qboZuVn7C0p4uiurq1wburqZyypaSolIWOqsPEpIKLj4eIhIaVlI16g4yRjpGhjIyUkY+Jl5+Xk5mVmKagrp2MqpyOlo+SkZSVjpCVkY+hlIaXn6CynpSalKChmaSfmqCcoJSZnqakpqekr62lwMTDrqi3tcnDvrbOssS+xLyz0crIwrV0eW1cWFxpU0xIRExLS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk1lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoKQeY2hlqiampi6vsjIysHSycrCzLzBs627vqe6v728xLeswamssru9qrCpo6WjrK2zrba1oJ+vnqWimKO0vKmbqLzBo7a2r6uSsK2rrJeGmqqmpZGCjJOllYmAdYqSeYWNkpCen5OPlIuQjZSjmZeclZSjn6qfkaWajI+PkJWWiHyPlZKSo5uVoKKctaaQnpelpKOlnp6mmJ6Vl5ulo6moorKsqLzAxK+ls7fMwLmuxLO7vsK4rMLDwsCYbXlhWFdcW0tLTUpGRERJQkJBQ0s6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djZeOnpKJin+Jn5OEd4V/lX9/kIiKkH+VoZqupqOYwr3Iw8fF083Ozcu7wbevur20vMq8w8G1tryts7+5vK6vqKCop7atramxt5qeraKnoZ2rt7eppa++w7G9ubOnqrSzra6WlqWsqKCRjpKxxaeVjnyRlX2HkZiOqZmYk5OPk5WTpZ6TnZmToaOinJifmYuNkI+eiFqQlpeSlqWZZZijnrKllqKWrK2rp5ufppeYl5mVoaSppp+2q6m6vMS1pbS1y8G4qbassrq4rqi4ur24g2xuWldUVU5GSlNOSz9CSEVESEdHOTVGTTs+Nz5BSi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZCDh6aTiIGHgpyEg5WQkJSOmqKfr76uoca9xcTGxs7OztLKvru1sbq7vL7OtsS9t7m3srK1s7izrKacq6u4qqinr7CXo66kp6SktMCwqqy0vsK5wLmzp7i0uLKulaWtr66li5OVoY10wZp+l5mFjpaZirGVmpmVkpOZmaajlZ+blpqpnZyhoJqLjZCWnWBKlpyalZqlllSWsJ+vnJ+llK+vrKaaoaaUk5mZjp2gp6KZtKmqs7y8u6uwssfAuKWrq62xsaOhsrK0pHFuZlxaTlBLRFBQUFE7R0pJR0hCQz45S1U/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1RRVdSc2JXRkiql5mgoqivmZGXh4unlo6IkoWfh4Sdl4+eoJqjpLXItKnGusPDx8rIyMzNxr66s665uMDBzbbIusG5trqxr66ytKejm6qztKqopq2smaSupaSorLq/qKu2t7/Bv764srLDsbm9rKOutay5poicmKabdr+ghZmdjpOZmYqul6Gcm5eVm5+hqZ6ooJmaqpqip56YkI2RnYNudpKimpWdop6QrbKjq5WoqpirrqWkn6Wpk5KZnIiVnKKel7Gmqau6tr6zsq2+ubago6eopaecnKypqYxjZWFfUktNR0hOSVVMPU1ETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5ScoZ+7r5mUnoyTqpuRkpOJq42Hop6MpK2Uo6O2xr20wbrCwsfIxcLNyMK9ubKvubTAwsq1xrHBvLS6q6itrLCjopmqtLqmqaarqp2or6ejqqq+vKesvLO3vca8t7W4wLG9wLOptbervqWPo5eRop+8n4maoJmWnp2Ot5+pnKWjm5yhmqils6GbnaacqKqemZWPlJuLl4mMpaKUnaKeoLSvpaWTsKuZq6yenqSjqZGVlaCDkJ6fnJappKKhtLW7ta2otbKznpyipZqXlZmqoZ53YVxfXUpIRkdNUUlNRUZHQlJMSUFFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+fw6ybl6SXmamclpqaj6qWlqemla2tmaGrtsTCu763wcLAx8S+zce7vbmyr7izv8PItb+vvLa5t6ajqqytoKCaqqrEoaSoq6aeq6+soqmov7imrb2wt7bHtrW5uL+xv8G2tLO0r76jl6OWk5uUraCRoaKlo6OfkL6lqZ2prJ2doZumn72imaOfoqmroZ2WjZWek56Hj4WNk56koJ21rKaclbKnmbCon5qqnqCNmZWfhI6hmpuTpaSamKyxtrKqpaqtrJyYoKCSjpCWqZ+UaGNZYV1OSUdKTktIRURJQT1QSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGVjV0yimqOcnsWsoZ+snZyuoJOjn5eloKepq5e2sKKqsrXEw73Atr/Cu8jCvsrItri1tLCzs7fBxra+sLi0ubWfpqyqq52dnqWjwaWgqa2gpKmtr6Kmp722prG8t7a1w7Kzt7m+ssPAt7ius7W1o52klZGToK2gmaKdqairo5rDramerK2bm56ZpqC9op2lmKurrKahmY2an5KeiY5Xf5aepaGguKqnk5i2o5+zoaCbr5eejpmUnYKOn5eWjqKklZCmrrOrqaKipqWVlZyYi4+Rk6SfiWJlWmNgTEhKSk5GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXEtOnp+hmZ7Dp6Wis6CcsqeTqqSgpJ+tqaydu7CorLWxx8TBwrPCw7zGw7zEyr2vsbatsLSvv8W1ubGwubWsmqiwqamanaWhp8Ksm6yxnKqirrCppKe9t6a3uryutsOts7PCv7LGs7q3rLS2raqippaVlKOsop+fmqirsK+vvLKmoKmpmZmYk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWdmqKfp7Smp42YtJyjr5qem66RnpSXlJqAkqGWj46foZOLpqywpaeinKGekpKak4WLko2cnoBiZltnZUpJTEpSQUNASUc7O0c/OTlOTVVeUlNKPk9eXT1IUEJMTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugw6ikqrKho7WplrKrpqKksqyuqbuyrLC1tMa/xMS1wMS9ycS1wMjCtau1qLC4rMDEtLeurLa5pZmrsauqmJ+ml627tJuosJutn660sqequrOnurO3srjAqreywry0xae+rq23taqorKGXlpGmpaKjmJilr7iusrW2oJ+opJmVlZOkoLeipaaWrrKypqqmoZ6bmpqWmKifoJihnq+yoqaNl66ZpayXmp6lkZuOk5eZhZaflIyQnJ6Ui6mpqqKnoJmeloyOmZCChpaJlJ95ZGlda2pNUE1OVD1DQU5DOjpJQDc3UU9dXlJWUUFXYFxCSlNIVktIOlVlXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVKcGlWQ1dGjHlmQzukpJ2hpr+mqK+voKm1qp25r6qjqrS3sbC5t6+2uLjFvcPHvbzDwcbAuMHGwbqqtqStu63Bw7i4qq2xu6KVrbCtspalp5Cquamgp7CdqqCwtLKqqba1rLyssrK5t6y5sMK6vb6mw6uwt6+pq6umnpiYq6KioJGYobGvs6uxupucqaCZlpKXpqG3qaWjoq+xtKuyqKufm6Cgm56lnKKWnaOzsJqfkJOlmqGpmpWin5aYiZSYk5aXnZOIkJuZlI+pqKefo5uXm5OHjpmLfo2WhY+ba2ltYWxuV1BRWlRBQ0VUQDs7SUE3OlhQZF5QVldEWV5dTUxSTl5LSj5aZF5OSFBOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oaqwqqOxuKmltLKroa21va+zuLy6vba2wMK/ycS5xMHAwLjEvcG3r7Woq7eyvL+/tamusbael6utqK2Wp6iOp7ufpK2znquisbCzrKm2tLW9ra+xtaywtbHAusS2q7yvsbirraqjsaaepKqgpJeQmZ+zqrOqq7OanaebmpWNoKaktK6noq2trrGns62yqaScn6iknpWhmJuotamXmZKSn5meoZ6RrJ+YmIWVmIudmp2Tio2Wl5qXpqWjoJ2WlZeUgY+UhXuPkoOMlmZscmdwcl9GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJgUEtNTlhXWFBKVlZXTT1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FVMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSZoKSst6SsqaWurrapr7O5pqawt8W3sbe+wMG1tLrFvszFucK/ur+5xLjBubK1rKq6tru5vrWqrbG2mZinq6qrm6yrj6u9nqyusaOqn7Cts66utrG5t6mtrrGota+zu7zJsqq1tLG0r66nobOgmqitoKWVlZqZsqOtoKavlqGkmpqSjaKlp7KpoqeyrKq2pa+xta+kmZ2tp5qYn5mZrLijl5OQj5icoZiXlKyfnZSBk5mNnZ2alpCKlJOemqWioqCZlZGTlXqLkIZ7jIqDi5JrbnhudntgRWFqWUlIWVs9e0pHRTZBYlRpW01cYUpbXVpSUlJiYExLRV9gYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENeUVwuKkIvSkdQW0gzY1lVS0SZlqCwqLKpraWjrq61qbe0uKOrtLfJu7S7u7++tLS3w8DMyLvDvLa+vsC4v7yxva6nurm3tsO3q62yuZWXpq6rp6OxqpSvu6StsrKnp6Kys7CxsbWxuLOprquxp7ivtbTDxbaptLWrsK2qp6O2n5+nsqCklJuZlLKep5ygqo2po56blpilpaW3p6KytKynsaetsLWspZmgrKibnJ2blKm4nJSOjouZnKKYkJemoZ+Wg5KWkJ2cmJaWiJeQl5uonaSgkpWQkJZ2hJCHe4WBhI2MbnF3dnx+XEtlbFxLTmNcP2J7R0k4R2dXZVtMXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydGYUxWJS1CLj1FTVE8M3JrSkRDkJmlrqWtrqunpLCys6q3sLafq7W5ybmuwbzCt7OxtcLDzsW/wb20vb+/ur+8s8SoqbmwtrbAva+rs7OcoKewraWmsKWesratq7KwrKmotLmstLK1rbSsqayorKm5rrGxx7+4pLmvqa2tpqitsKakpK6jqZydm5qwmaKjoqOQrJ6koJ+iqqamuaWstbWkqauprK+2r6Oeo6iqm6CampKktJqPiY2HkaKglo2UnqCUk4WOk5Kdm5iWlYiYk5WZp5ygn4ySkI2Qd36OhXx8fYeKinJ0cn59fVtSZG9eTlpmXUZElltIO05tWGFbTWBiTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGRISis6ST8zQklTLD6Paz1ISI+bqqqiqrCkqKSztLG0tbGxoautvMu6rsC7x7G0rbTCwtHFxb7Asr7Bwry/t7zEp6y3rLO4vMCwq7KtoKSnramopLCjq7Gqr6ywrq+uq7O6p7awsqmyqaulpaSvuqyqscK5tau5qKiorKqosaWqpKKuqqiinpuirJWknZiemaydoqepoq2mo62st7GyoKmioKuusKyen6eoqZmkmJmPoKeYhoOPioufoY+LjJacj4+Gh5CVoJ2WmJWHlpOTl6ScnZyLkY+NiX9+iIZ8d3+HhYd0c3KJdmxfWWBuY1FzcVxLO4R8Rj5XdVhgWk9jXE5VVlVXUFxiXlNPTmhYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLklnREY4PEIwNUVLWDFAlFs/TUaVl62noqqynKmpsLasuLWuqqWrqr3Ju7C+t8KvsKyzxMPOzsO+v7TAwsS6wbTJxKyvt62yuL++s62uq6WnqrCpp6ixpbSuq7CurbGws6yzuqS4s6ysrqern6Kfsbirqq26t6W1taOpp6ysqq2hqaemsbKjpqWhoayWqqGUm6CmnqSiq6Sto5+nsbetraOlopupqq6pnaKlpKSYoJmWj5idk4GCkImFnKCMio6MmY+Qi4SNmKSbkpGbjJOSkZSimZuaio6KinyGgYKDenSAhIJ+dHeMpId5a15gbmdXZYdkTkBnkkxEYnlXYlhSZVVNVlVVVE9cXWFVS01pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIZASEhEl5KvpKOqsJirqa21q7axq6Srqqm8wMC4ubO7taWyr8TJy9G/wbu5wL/CucG6wcSusrWxs7vAvrOxrqyrq6i2qqWtsKu5sKmxsa+yrbaqtrWntLasrKSpqpyjn7WzqKiktLSgta2hqairqaunoKurqLm2qaqpqaKpoK2bkqmhnaCkoqajqp6dprWuqKaqoqOXpaenqpyipKOfmZifkY6PmY5+h4yHhJ6eiIWLi4+OkI2EhpWjmo6Nm5GSkY+Sn5eZloyKg390hoF/f3h1g397eH+BiJ2Pb3FnZ3F4XGBziGpPXZhWSG14VWRWUmNQTVVUVVBPWFtiVUhQaVRWVEdQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJRYzAyP2Y9Tlg/Qyw+TFRfL0prNlBFO5WOsKClq62aq6WtrrO0r6qlr6mpur67wLGuuK6hta/Jx8jRwL69u7zCvbrDwb+/rrKysbW9vMKxsrOqs6iktamlrbOzubCjrbayr7K5qriuqq61q6ueqqyfo6C2raihn6+zobSqnqinqqSroaKsrai9r6yuraGnqJ+rmZCvoZiioainn6ibmaqwqaOfrKKhk6Kjo6eYmqill5eZnY+Kh5WIfY2FhISkloWCgouHj46RhISUoJeIkZ2Qk5GNkZ2Ul4+KhYV4dIF/fXV4eYB7dHN6aYKHpHVpXmVsgnVniIx9UlhwXkp4c1NkU1FeTU1SWWZOTFZZZVlGU2lSUj9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTGg6NDhfPWFkP0YxQ1BbWytITzpWQjSQj7GgpKaro6akrKa0s7GqpLCnqri+wLyvpriqp66wycbI0cO9v765vr+8ybzBuLCwtLG6u7nBs7S7rLisorSmp6yytrmzp6a7ta21vK+8pq2stautnKmvpKClrKqnnJ6qs6SzqJqqp6mkqZ6jqaipvay0r66dqaSgrpybsqOVpJykpZ+kmpqoq6Wem6qhm5KboaWdmJepqZGYmpOQioKPhX6Pgn+Ino+Gf32Mh5GPkIR/k5uUhZOijJSRi5GbkpWHiH5/cXp5fnxpd3x6dXFxfWiGeYWIZGBoY3KFem1neV1eVkJXem1UYU9SWEtMTnF0XUhaW2dZRVVmUEQ+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTtFWj8qj5OxmZ+fqaWkoaukt7Kypamwp6y4wb21r6K5raiosMPJyczBtr2/tbe/usi2w7W0s7Wxvbi6vretubW/raGzpqqrsLW4tKqdu7yosr+yuaCvs7WqrJ+usKOcpaipop6cpbGmr6CfqqmooqqcpKmgrbyorrCuoaujpK6enq2ml5+boaOcn5uao6qimpqkpJWWlJ+ilpuWpqyLnpGQkYyCi4GAjoB6mpSNiXx+i4aPj4yKhJKYkYeUo4qSkoeQmo+TgYd8eWt9dnl4Ynt6cXBxc3hpgXRrg2dkaGFvc45tYmpwYHBBXHhrVl5OUVFKSk1TWVZNXV5tV0RYYE9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDBCaFkxM1M9ZV9ETDZLV2VPKTwzUFs9I5KYrJmfl6ekop+opLivrqKvr6iquMK5sq2fua+rqLS6x8rIv7fBvq+0vrfEtsOxr7qyssC1u764qbm3vauktKeoqrCuubGqmbq9pK+/tLSgrre1pqensLOgnqSmp6GlmZ6tp6ieoKmup6Gnl6OpoLC4n6Sxr6GsoKyknKanqZqam5+jlZ2cmp2pppabn6iSmJOYnZKZlqGqkJqJjpCHfYh/go58e6GMjIh5g4yFioyNhYeSmo6JlZ+IkZWCi5eMkX2Ee3NvfXFzdGB5eGlvcHFvan9zZHtsaWZkYWaGgGBbc2pyTU1/aVhaTVBMSkhQUlFJTlxfblNEWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpoSCo/MFpZNSiWnaWYnJatoJ+hpKG3q7CktLOoqLnEtbGuoLesrq2wtcbIwLe/wbmwtL23v7u/r6u9sLS/sb3Duqm7urenqLWop6uwrbOxp5m8t6Sru7avn7G3sKmlp6+ym6GkoKOkoZebr6ahn6Knr6KgopOkpaK3sKGmsaufrKKul5yqpamel5qdpZObnJqdpqqZnJyklZWXlZyOk5eiqaGQiYqQhnqEfoSKeY6Xio2GeYKHhIiMjoWNk5iMjpaZio+XfoaXi496gHpwcndub3RfeHdkbGxsammEbmZzaWtmaV1kc4FgW2t1aVpJfV5bWE9PSkhIUlVGMjlfXmxQRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbDg0R0FmW0hURFVdaEUuPDJiVSwylqOhl5Scqp2loaKgt6quoLq4pau9xbKvrqO1r6ytr7XExLyzv7q3sLO5uLq4u66twLO0uK+/wbisvbq1pqKzqqeqs6utsqKawLalp7S1qZ6yu6mnpqmvrJmip5yjppSYorKkmZ+kqKmcoqCTpaCkuKikp66nnqWgp5KfqaKhoJmbnaCSm5yWoKGrm5uZoZSRlJaajpSSo6ikkIiKj4Z5hHyFhn2djYqKhnmAhIiIiJGFlZOSjJCVlI2OlHuDmI+Ld357bHRybGxzYXh0aGhqZ2ZvhWdoaWNmaWpgaWJqZ1tle2NgU3NUW1tTTElHSU9TQCEqaV5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc5ZU8nMp6jo5GOpKebnp6do7Wtpqq6t6arw8G2r6yjta6nr6+3wMC8ssG2sa6ytra4t7Wsqb2zr7Kxvb+4rru7saWetqulpbSpq66gnsKrqKWvs6qstbudqKqrsaWYnqqepqSRmaatopiepKmhnKKdl6Cdp7Wmr6quoaGenKGVoKafoaCZm5mckpmdlKWdrKKYlp6Uk42Vl4yPmJqpoJGIiouJeYV3goKBnIiLgol8f4SIhoWRhJaVj46QkZGRjJJ7g5WOhnJ9fWZ4b2tqbGd1c2tjZ2VkdYBiZWZmZWpqZGtxWl5ZXW1kYU5oV1pgVkpHSUtNUlg+OWBsaUdCVFNcW0lJR0ZBLjw/OUE4OVJHQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFlKVmJmQTozQWZIJTWao56Qi6yhmJiglqW0saKxvbagsMa7ubGxpLesqq6pub27u63Asq+urbavs7eypqq5sa+ttLa6trC4va2mnbWqn6CwpauunqTCoLKkrrGvt621nq2vra6imZ2oqqWelZuopZ+ZpaOonZqgm5ScnayvpbmnraKhmpuemZ6jmqSdl56Ym5SaoJKolqqnmpObnJKMlZmNlJSZqKeNjYqJj3yCdIKBipiFh3yJiYSEioyIkoSTnJKSj5CRlo6Qf4CMjYNvgH9meW5oa2pncXJrXGhjY3OBYWVoam5sZ2tqZ21cbGx1cWFUYmhkZVpJRkxNT1hRUVZhZYFUQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUplQyc0kqCajo6wnZqToZqpsrCfuMC1n7PCu725saa2r6iupbe4t7esu6+tqqu3qrS4raSxtbGuqbG3trGztbqnqJ+2qZyeqaOqrZypwJmtpK6wtrWtrZ+xrbCqopucpKyom5Wcp6OdmqmipJaaoJyQm6Oqqam7nqakoJiamZ6hj2uilpiccYKWm6SAdZKpp56UlZ+RiZeZgJaKoI95hpSMg25qfneDcWyGi4Z9hIuGb15jYGeEl4Zri5CUk3V3i4R+g49/ZoaAaHVpZldcaXNuTlBqY2dyhGdfZGZubGpeYGCKkISGZ09LRDhFVGdeSkdRUFVVS0hTYW90ZUZbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFRZD0rL4yjmYeUsJuck6Cbqq2ro73Fr6i2wri9va2ntrClq6S4s7KzsLmtqqestKawtKKnt7W1qKest7OutK2zoqmftKudoaScp6eZrLuVpqWvs7itrqWorquspaGfnKGnppuYoaalm5unp52Tnp+YkJ6oqaK1r6Oio52Wl5iXo4ihjpKah6GHlJ2hf6V/pqqdkpKbkoiEcniNjoSIoXaIjWmXiGZ9c3ihb4iHhH6Ne3+hoJ+ZgHuHnnSIjnabimyHgYNtaGVjemxxYlSGbWNsaZhxWGpwb4dYXmlba2tbiHFuenKGaIeEWl5GTj5GX01GUlZWUVFSV1RnXkxYSlJSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiMppeDnKudmZmdn6qqp6m/w66xury3wL+qpbewqaymsrWur7O2q6mlsa2ltbKbrLS2tKanqbOxrbKnr5+qoLKpoKSjmqKjnK61laSlpra9p62nqqqsqKaioJigp6OZmaajpJicpKmWlKKclJOkpaagtqOkoKOYlZOYk5yIro+YlImpi5eim4WxgKOsnJOanpV5gtSof4eUwZvHeXixpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQeoFslrGrsHloa1ixrm9labySvG5oem5yj9h+U2pitrJ/gXKUdZqhqpBXT1dhT1ZORlRbWFFQUoxcV1xQQFxEUE5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaTgaapn5ecnqWtsqmwwr2ytcC1t7/Cq6a0ra2pp6+zqq+2tKioprWmp7itnLKwtaqlpKexrq6xpqqep6SxpKKhnpecoJ6vrZWeop+0uqOrqaGtrqWinZuaoqifmJuooJ+YnqenkZynm5SdoaaioK+in5+jlpaTmJKZha9qaoqNqn5nhJWHrWRwnZyUmqaVca6hpH53u3xroY92sV9qtFulgGackWBmgXpmf2p4aqllvnJnpox2smp8sXh0kpNjbW2nbVuEoEVpZ4eWRXWcYH1ne6Sngllfi6tpgJV4emqnN0qvW1dUbGNbS09YX1xXVjtOiE9XVi9IU1NKREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5GilYKsp6Weo6WqsristL2+sLbEsre6wqepsKuvqamwrqSwurCkpa6zo6m4qJ6ysbCjpaCqra+ssKann6OisJyjnJiVl5ucraaXm6KetLOhrJyira2gnpqXoKKpnJmepKCcmaGnpJCdo5qXoJ+rn6amn5qfoZaVkZeRmoW1m7V4hamZtZl3h7Obt36TlpaplH5rgaZ6goWIk5SSd6tna7FbrHuPh5R0iHCPhoB/iJCXeIOCi5eMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinS5RoW5bVGtnYExLXGRYXFpCPrB4V1hBI0xoRUNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dXN0o5YVU1MByVn5SIs6amoa6pp7Osqbu2wrC8wq24t8GqrK2urqausqmhr7yqoae0raSrtaWmsrKno6KeqKqyqLCopZ6fn66Wn5mVlZaYnq2impqkqLWvoamPqaiqm56VmKClqJqfnKOfm6CjpaOVm5+Ymp2iqpummp2boqCXk5GTk5yD1ZOZuXCwwn7GhnzWlJu7fJmVpI+NnI2ke46HpIKlgnqseY+dVq97iX6farlauXeHhH2mgpN8mHqqeY2cj3uxbY6EdJC8hW+UUK+nxYpRoHpjYKpic3KHbZeIYFO1tMiGgIl8Y6QzQp12XVFqaGNQQFhmWmRhSkhNbEtbU09ZZlpDRD9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFRNzIlm6KTmLGnqKWzqqW0qKS8t8GwusCxtbW8s7WnsbCjsLKmn662qJuoua6jr7Ggs7OvoKSen6epsKi0qaScnZ6ql5iXlpeVlqGqnZuXqK2wqaOfj6yip5ael5yhpaGYoaGioZqioqebnqGelZmbpqCcp5Wcm5+hmZCSlZGdiLJuaLVxq4dvjqZytHNytnuZl6OLjpyNon6RoKV+sHaDkdLRdlyufIZ/pG+bqqZrhoV9rX2XmY97sXOTnY54s2WWdISeb55mlFLIi1rCXJ95Yl+tX3Zzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPal9saU9VR0k5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyL6GckaWvrKSqu62mtKWntru8srq/t7a1urqzpbS0obGxop+ssKSYprqupLGxnbS3qJ+mnaKqpLGnrKmkmpyaqJ6VlJiYkpKjqKCXk6arsKailpOtn6WSlKGbpKaglJqmpqGao5+tmqCenZCWm6GdnKWVnZWaop+WmZaSm4Wse3eodqOOiYepb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9d4V/j52GmZl3r4aKkZyHd7RhmmWagYKUbJJasFhLmnWYeWZgrV52d4domIhrXq93lZ6PeGw1eciusl9BVG9eZ2BFUGxfcW1WVU0uZWNpU1lROkFEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6ODifnZSguLCXtMGtqLKoqbK6uLS4v7m3sra9taW4s5+0rJ+fqKuflae2q6ixsquttKObqaCgqKG1pqaqo5melaWhlJOcmZKVoqWak5CnrK+moJWZqZ+ij5GimaimoJWZpaidnKSerZ2hnaCNlJ6bnaCYmZyWl6Kgk5iRpp2GqX19pXihj46DqnCti4GnhpWfoYiXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pjcnuBa5iHcl2sWomgjmtuZU9KQ6FcWkx0XmJlTVphX3JzX0pWNkqak1lIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4wMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT44oZ2Zmb6rl7TCrqutqaW0sLixtb+5urOxt7yqu7SfsKSepaennpSqsamwqrWsq6+hmKGgpqSjuaKjq6CXm5GioJWUn5qUmJ+gj42MqbCvpp2Wm6imn4ySpJeoq6eUl6mnnp+go62koZ6hjZWhmZ+gkp2XnJWeoZWWj6ubj65tcrRyqYx2iqZztHhzs4CRpKKRnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZOIrWt1s2GdZqJvh5Jql1ytYE2hfIeRUnOjbHl/fm+Yh3Fcr1Y8nHdmVG9uLlynT2JSa2VhbFliXGBwe2NUWlE+Pm1wM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs8MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eODFCOKWam526oZuywK6tq6unt6m4r7TAtbyxr7m4q8G2qaqgm6akoZ2SqqqntqOyqK6qoJecp6Clq7mdo62blpmPpaOVjZ2hm5mcn5CTlKu2r6eZlJysqpeMk6WZpayjkZeqsqSgnqersJiho5CZopegm5abl6GTnKqclJGrmYfUkpq7c7DDgMOGftWWm7h4h5CXjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIpumohxbo2kdL1dd31bYXm8a1pWW2p6XmpgZGZibXdvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnmp6hvKKXscOwraqqrLGnua+2xbG6sq67sK7Bsqykop6joZybkaqkqrKktKatpJ+WmqqZpqy4nKKumJWhkKWgko2co56YnZqQlpOvubGslZejqKeUkZaknKStnpGgqKufm5+po7OeoqWOp6KUoZqcl5WkmI+woJKVqp6FkJm2gJCRjLeVeIKTm7V3bmtuc255j4SOiXOewbu9mnuBsqhwgHSRuIN8hoaLh417ioaNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtXRycHe2jF5/eX2JaIN5bXlii6xwdYV/WVunakRkWVNmYGNdY1FnZnFsdUJOUExEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPTs8p56goL+llrTDtKyrp6yrqbuusMavtbOut6e1uK2po6GlnqCdmZSspK2qprWoqJ+blqCjnqykvqahq5eUnZCim5KPoqiik52XkpiUsrW2rZidpKSii5KRppulq5uWqKSlnJqhqaano6mhkq2fl6Oel5aXnZ6PsKmUnKeijmp+aZymeIdzfpqPdHplh3q+vsC6bpKDcZSGX3JqWl6aiWFkiI6Va2B/lWNtnHZilGt/mpWUZV5gY3GbimlyjH2GlWdqfnJ0eH19Ylt3dIFoUFxug3x7i2tYbHqCcklKb4VwTXRNRVddZmBMW1hnY15PW211aXFRT0RFTTtISTxMPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqifqKHBo5u0urajraWup6i1sazIrLCzrLWjvrGypqCiqZ2im5qZrKeupKS1qaWbl5Whm6etqL6nqaaVlJyVoJqTmKWpp5GekI+YnLCyv6ybpp6noomTkamaqKSam6ufo5mbo6etop+qopqwm5WmoJaVnZ+dl7GlmKKomZyRnZyjo5mmopqcmpqakJaBZ219cXeRl5SRhYq1qo2GmJWOioyYl4eUlYqDkpORiY2Rk5iUmJeaoKKanJShnY6CeqWFbGp8kHyAdImKgXGCeHl2doqAe4lqc4F0g3Vjd312a3B7bWBjXXBnTVlZZWpfV1pvem1tZlNPRlM5T1pOUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzoLOiv6KksbK3oKqlsqelsLWqyautsaW1psCotKGepKWco5WWoKumrKOjtqygmZaWn5etqaXAnquklZKcl56Yk5Sin56ip5ORmKinssOvmqudq56PlpapnqqcnKCsmKGanKKlr6ahpKierZiXpp2ZmqGenp2woJ2ippWYk5iUoKGVo56XoI6WlIuKjY6WrY98lZuCkoKLqqiGgZiWioSPn4h7hJCGhZmQh4aJlY6bl42QmJ6klpqTkZ2Nf41mobOvhYmEdnqPinx2eXpvZ3mQgYCJa3WBeYhyaHN/enaDiIJrdGR5ZmBpZGJkZmpZa3twaWpcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76sq66ysqCqprGtoqyzsMWwqq2js668pLScn6ejoZ2Zl6imqaakprO1npWUnZmZsKauvqCro5CRnpqZlJGVoZyXqZyEnqmsorPIs5+qpKuWlpeap52om5+kq5Sen52gqq6ppaOroa2bn6ChmaWenJ6dsKSZn6iTmJidkaWZmKidmpdmg5J8ZX6OmY9jeY1saGt6kaSra2WamH5nhYplZWloeo2hjmtojJeRondraouYo5+Zc2xueoSMh3pYZV6FgV5siomAdlxoc3d3kYCHgm54gniAc215g3R3iIiOg3tqhllea3RkXXOJaWp8cWxjXVFNV0pkWEBKND1GNz9GRDcxPD0/QUQ8PERHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsaqlqK2usKaurbC9samopK2vsZ+tl5+knqGamaarnKyjpqipsq6elaOQoq+mtrmlrqOPjpqhmZOSm6CZmaWWe6Wsoqizw7ekoqevnp6VnqOeo5yjqqiRnqGeoKqvqqujqp+om6afqKGslqGbpbCkmJyqlaGempOll56qmJ5+voOIcrRyhJ2GrWh4ucS4cZOio3ummJlzqoJ8y8DAu3GLooeCn3yVmImewL2Clp2ejZ3CwXuBe5KNmsPAfWulsW+MgG/Ken+bd5GDjoF2eoF/eXF6f4dxeIWMk3ltd5NiZl94ZF9lgmNedGhtZGJYTFZJUVpIT0UySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmolKOvqbCvraayta+qpqamsaufq5ibo6Ccm6qnop2roqWopaS0o52ik6atrLezp6+ikpGanaWSkaChl5yfnYenq6Srrb/AsKGpr6mXkp+dopmio6qjkqChnZ6trqispqOjp6GlpZ6tqZGkm6mtqpydqpysoZaXpZaho5ecf86UeXqkgXmVlptfro9ejqeBoqB8p5WbdKuDgK9eY42peqeHhaB0l5KIs2OCq4ahjo2zaoSudH2Wh7hhgq1Zo81uj3V72nt/mXB+iJN2fmV7h3Z2a32Ibn6FkZJ+bYGPYHFrcGdgX3lkW3BoamRmYFJUUldeS09DNUFIRUQ4PjY7QD9BOz03QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcLAv7W0sLiYnpGkqqittKumsqytrKSrp7CqoKebmaWXnKKvn6CeqKejpqGesKybnpWnrq2xqqisoJSSm5+lk4+fpZeeqKOerqSrsKjAxrOoqbGulpKdnKKXn6mqnpShn5ydrq+nqqmbp6ekoquSrLSWpqKrqp6jp6ahsKCTmqeaoJqUlJGXoHCFjJd0hKiHcbF8nXGsfqGegaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIooyRi51+q3uJk4+fgHutVpzEeo9vksF9gZVtdXCMbWV2ZYZvYXducm+Ki5KQg22QkGVvdHVwYGdtZF9vaWluZmNXU1xhWlFRQjlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytJ+do46jo6Gtr7auqLCnqaqorqurp6KknZmilZ+mq5+ipaCoqKKfnbCsl5qWqKevrKinqZ6XlJqjopKUoa2bnaajr6yjrLWqus2xraeurJaUnJ2imJ+urJyWoJmdnqmxqampm6uqpKOsm6+xoqisrqaZpquqqrGikpejpJqUkoSkaqR1iXqpdHqycYKliZmMcYigmoekYGBSrIR/roObdq6BpoaGn3qYloZ7ZoCjiaSZhoGjfal+gZSHrl58qVWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojY2Yj4FtmpJwbnl3d29sZmRlcXBme2hjXVdgalhYVEtNUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys2NioxUEtMIyBBOUQ0LCfDydbVwKGZq6ihr6KesLWwr6mso6imqqqrqaSmoJuknp2lp6ajnKyaoqyhpJ+vop2akqqktbCuoKmbnZaUp6OQmqKon6CmnLGmo6exrLbIsrWqrKmVkZ2copmgpbOdmqGUnJ+nq6ujrpqsqqOiq6OzraKqs7Ghm6qor7C2o5OWo6eYm5F8qmyehId1q3l8sG+CpIuJn5aVn5SB0ri0uMmAgbJfX5Spg6SIh6B5mJWaeKrJdJmjlaepkJKbjH+biZrGxnhloYKlc4GfjoJ9r15wtWOxdUujhm2nR4KTZI+QnpJ8cJeSgHB6dHx7bVtmanJxZoFqXmJZY21cXlhITUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz4tNU9UUR0cOzxGMiwkp6TBxrmtqbOurKWinLK5rKqhppuopqqsqaagpqWYq6OfrqudpaCsmp6ppZ2mtZ+il5OoqrayrJumnKCVkKWtkZmcp6OgqqeuoqOnqrC0wrKzqq2ok4mXnaWboaOuppehlZmdpaarmq+drainnqyjt6yhsrmvnZuvp7O0s6SUmKikmp+Ogp1OeJqBf596g6N8gqSEh6efnJ6ThLh7fHm5gn7MxsK2eJuhkYuffZmWl4p2npiKpJijqH6whZyFnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkqSXfH6SkYp0enOEfnBbbW53cmqBb1pkX2huY2RdS01RVEJJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamspKu5q6+gnKGss7Omn6CVpa6trqqnnaammqOnobKuoqimsqCZqaSUorWio5WXoqm0uKScop2jk5ChsZmenKemoaKvrp2kqKK1ssOxraqtqpGHkJynnaOknKWXnpmZmqakqJquoa6lppiwpbytobe3rZ6dtbK5sbOnmJ6woqSehY/RtcO3eYeOhZGTj3+meJSid4ygkoSlgYpxqoaEtG5yapmjm5WKn3uWmIaHj3OvgqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5SmmH6MjJOKd3x5jYFtaXhpeHNuf3RdZGRubWZoYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWTc42Krb+/u7q1npeopK21oaOZlaOpp66qq5mlop+loKC1pqKop7CjlKujjqSto52QmpqqtLSknaSdqZKUl66goJ6mpJynnLWaoKqjtavDsKmrqaKMhI6coqGmopWam5yZnJmmpKaYq6eto6Wbrae+rJW+sK2fo7Czuqy0p5upsaWnmHqokH18sHeKgaSliJtssW+hh618oY+DqJWYgKyIha6Fn5SpoKGWhp+AmJWAe5J+q4CdmpaKqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrrl2la3GFmV1gW4ygbZWRp5mDlIyWi3p6gpZ+a2x/Yn10bX96YGdlcW9oZ2hDWWBbPUtUMlU4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVlZXWFZVVVFIRklKIygovZKahKnGwrfBtJ+braCuuKWkjpuko6Cvr6qfpJ+drZmeuaCiqqCvqpqtoZCqqKSWiZuQrrCsp5+nm62YmI+soqGdpaKapZytmJ+oprapwK+lqqSfi4COnJqfpp6SlZqalJubpqSkmqisrKOkoKqovqSXw6yqoqGssrqrrqegs6+pqph2r36Qi5yFh326rYqYZLCMZZWtfaGPg6aVmoGsioSwhaWZpKGhj4SgW2xqgbNgf617e4KAsWxnbpmXjIiwW320W6SDa8iiZZ+Ae7xZdrVasn1Sr4B6rFiAoW2Yj6iaipeRlpZ7eI2cfmRzfmKDd3SAfGFqZnFuZmVlT1VjW0JUXj5JKD45PTQhIi0lHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE5KR0M1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wrOjnKympbaooYuaoJ+ds7OpnqOgnbWYoLOoqqudr66fq5uVr6iijoibjq+sqaeip5muk5mPqJqinqWfmqOjpZmfo6myqLyvpaienY59i5uVoKCZj5Kam5KbmKmfoZmorqelpqOlqbufoManpamhq7S2ra6nn7ytrayVgamSo6+Pm4CGpJeYkIGAuMO6g46dk4SnlpyCrIqCr4imm5ulqY9+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGqjgW+rhG2df3qysMeDaquwva14d6K+u3SAlo6mnI+bkpedeoGQm3pjfXtkjGZ5gntga2VramJQYltTalxAVGFCTik9OjQvHh8kHiUyIB0kKDA0OTY2Nzc7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbO0sb+5sr2zop2upqWzpp6LmKW+qbexqKG/pqaynJ6xnLmonq2vpqeVlLCsl4yDm5GupqOsoaScqqGYi6OSp56nnJqhqKKYnqCsraq5rqijm5eTe4eZkaabko6RmJiPmZSqmqCYqamhqqeho6u7nqnFo6Cvo6uztauwqqC7qK+vmnN1qqS3hmWJn3BnrY+Kj21vd6SQmZ+Bda6ZlXCPi3GVqKObl62jcm1tbWWKeG9tgplxgHlpcGlniZaVmHFoaYSGZ3CGZF2JY2pvWV1nfnemYGJxjpJvZmSAjZKOopiXmZGWn32HjpV2Zod4aI1qeX55ZGxjZmxiS2RYSmtZOlFlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6q6ubKzq6mirp6ksqmYkr2xw8i+tqqewKuso6GnrJ+6o6StrK2mjpauqZCMhZWXrZ6mqqKfo6OgkYykkqeZqZmWo6qglpylpqevuqusmpuTk3uEl42lmI2RkZiUjpiWqJSfmKmjm7GnnqOsup+wwaeks6assbKrrqyouaSuuJaKoailtp2JlqKXh6makJSdk6qzmZujq6CxlqGhnaCinKCkoZWqpoySkoyHkpyclJCak5iQjpWGgaSZl5WNi5OSio+GhH5nin90gnZ0h4xxp2x7lZGUk4GBj4+Pj52UoJaYlqGDh5ONcWmQd3CKd3Z8empsZGRvY1VgWEBpW0hjYU9aK0Y9KyYhNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRGSktLTU9QUVhVVlleX2FjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbeurqKwpK2foLWxkI6rxbzEu7iqoqWdm6aesamjtqedqbWnqJGYrKKLiImPnKeWrKShmaeenpOVo5eomqmZlKaho5CbqJmhtbqoq5makI18gZSLoJSKlJGVkJCTl6WPn5qqoJy2o52nrLenr8Guo7emr6+wraqqs7mhr72Zkqajpraikp2mno2pn42Sn6Osr5qho7Gor5ejoJyjqZ6enZyWq52SmaGblJCWqpmNmZmWkJafkYmgnZWUhZKMkIyUioB+ZoyGdYZ2eYiDc5xqhpGUlJGKfYyWkpKYk6GTnZagg4eXh3pylnN5iX9xe39qbmRfcGlgW2BZbWNQYGRQWzpHR0Q9Mj09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWJhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaetoKi1qpCQnaSzu6+srKKjmnqdorGkpbColpu4p6OUmaqcjoaKiZyjkK6fo5aooKGSl5ibrourlo+omaeMmaiPnrm2pKWZm42JeYKUi5qTiZWSlJCNkZaijJ6eqZ6fuKSAhK+1orCvdKS+o7KgeHqgqrK7lXatpJ+KgKp+ZFxidp+OpJ6El35uk7Oco6euqqNlnZ+Tc3mZl3CAmKiXbH+iqIplnKWckZeYlYuSnJGGnZqQlYKSh46OkomFd2uPh3aGcXyGgIBhaYiLlZOLW3aVkWdokI5ye6WYmGR5mIaCeJhpg4qCbnl/a3BlYHZva2toW2ZlYmJvU1w+Tk5OUkc9QFRCOTEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJGRklLTVRUVVlcX2hmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mm5amo6GwsayrqaWoraOnraSSlqu1r7Kmmqqmq5dzjJ2wn6iqppSWuaCgj5yknZF/iIibno2rmqOVp6KejpeRnoV1rpCIppqokZekiJy6tKigmZiLiXV3k4yWk4qUkZCUjI+ToI6boKeZnLOWgIyctZ2zjJKPvKehfqeieqOvt4GOjqaehIuFj7Gpr4yJlqOaeYGLrIacnaKnqaeHlYWYd6WbeoebgZemgoF7nLF6ioWgl5mUmJaCkZeWhJmZY3mHkISNj5KKg21wj4d5gHGAgYV/hnSGhJaSeJZok3SgmnR8mYOgnIaYfpKJgoOZao2MhWt4e3FwZ2R3bmlsa1tla2plc1xeSVRMUUBFNS5ZVFU2KSEwOT0+NjQzNTY4Ozo9Pj5AREg/SUVKS0dTWFpZW2FhaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyYo5+mrq6rqKygqLCmp6mlmZSuxr2woZamqbWej4OdrJynoqCNkL6emY2fmqCQfYWOmZeIq52ilqChko2TiYaAkaiOh6Kco5OXnoaeurKnnpuSjoVwdZCJlZCKlI+Pm4uPkZ+Sl6Cklp6siJ+0ibSarYvKh6quiLeFjbCDsa6DqY2mmI2dfKiPcnt3m4+nlmiVpHm0i5+epqiSmcKBf6uImKFxnoCZpH2XhZWxgKF8oZSgkJiWgI6Tm4qXkYt8hZOGjZWTiYNtc5GFf3pyhoGEfIR0hYKXgY/FZoCph4+ja56DoZmDmoCMjIOJmHCOkoVod3R7dmdodXBnZ2xeY29sZ21YZ0ddUUwyRTQ2TWBjNyYzPERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWV1jZmhnYmJiYmRjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5sKqrppqUoKOkqqSWpam2o69/oaecpZ6diZS9mpONoZGdkHmElpaRh6uZm5uaooWPjHebnI+gkYiepJuVmZiGormupZqcjIx/Ym2Pi5OQjZCMjZiLkJGfj5SgoZmhqH6hp4etnaCWro+enZ2RhoGgjauvhqSNqpqMmn6idoCZk2qCrHVNq3iHjZ2Rm6ingKqrfYOhe3qnaZ5/kmtnl4aXtomefW5gZFmDln+Me2RoinKZfXmVbF17l21fU3CEXF9seYNgWWWCfYSBmHGnqmuDo25ypXCfg55pZZ9sW22Je2VZX4N/YldQb3ZlbXRyampvXmpvbWxqWGlPXVdFOUE0R0NeazQsSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKhtryrrqKZl6Chpa2toZ2ttaKokqGgoKacmY6YtJmQi56MlYt1gZSRjYqmlpWYnp9/koWGrKSHnJGKmKmYmZqSh6Wxp6KVmoiJgGluiIeLjo6Ki42Si5CSooyUnqCcoqV/k4GPo6GUoHeclo+ng6Gnf4aprYWleYp9hJp9onByk4eWe56MeW2HnIyZkJuomo+HnXyConN2pmaefnakX5h6fZJzom6Yt7S6dJKHgn+1qGSBxrh7cJW3i3GAm6Rjc6yrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN/pGCdmbOVcHyXnrR0c1uesoNqYm9zdXFob1hrbHJzZl1pXmJLRD1ENVFBWXEzPVNHX0pSPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWldgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6CNpLi1rq2gm6Kco6Omrpybsa2sk5ehmaGkmZqUnqubi4mSeIuFcICWjYqPoJCTlJ2XfZCJjqigh5iPipGik5uajIuoqKWej5aHhH5re4d/fY+Ng4uQkImPlKCClp6gnaCfi4l3nJiijKByoouIqYicppCWqKt/rox9eqCZeqOTeIBzloiNnH2WoIebjpmbpoaiZKF8iJaQm41snmibjW6amXuAiqd9cmh0q4Odg3SqZ5SaXZuFdoSdaKpqgLhmXKhwgZxhlYxep3Z1iYp/nmiadYeTkpiOf59umpBtp5ldqH53u2t+qluOhF20Z1xucXl3a2lbcWp4eWNgZlhiQVBFTjdWQlJuNEtaWl9OWkNAMTUxOzs3SD86Q0dUP1lSWV0+RGJeVmBRYWN9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtpuoiWOUm6y6srCsnaacnKifnq6bnrCoq52XpJqhn5iWlqCjmYaJjWqIgHF7l4iLlpaEkZSYj3qKhJaknYqUj4WLnZGcnImPqKOgmYuRioCAaYGGeX+XjHuIjo6Ij5aaf5Sjn6Cik5hyaJ+Kn4+McZKMgamImZ+jqKCofbCto6K4l3ejs6Kjf4iUeZ17q5p/oo6dm5eJl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmn50qlpdb3uWi3ieYkx+enqFY3mXQk2fWaJqcXyObYGJhJl1m3mHibGzf3+bk6d1gZ1ucnyUb5lyaqRdlXZIZWNgc3B9fW5lYGxodnxkZGFRXlZdVFZAWUVRZ0RTV1tiWF5JRD1COD9COklFOExEV0FWUVtWREZiXFpgS2BtfnFFQzxVX2JaZWpWZ2htb2JmZl5hYVxdXmFoYl9lZHZsXmVnZmtkZmxpaGtpk52Asa6ZhFNfoKezubOzqZqijJyrnJyplKGrpKGoj5+enZqZlZignZaIh4l3hYFueZWFkJqLfJGTlohygImToZxzkZCBiJiUn5qEjqmcmpSKi4p8g2yEhXGBoYx4hY2Ih5KZlXyTpKGfo4iuhn21hI6enXullnqpgpadkIqhnX2naHZtfpl0oXNxfJ2FmXCTg659pIOmnpqBo29eqGd1o2NvpWGc0pB8epl4cnNjooWQfqNzo491a5Czi2CCmIlzqrKovH93g21+vqaptF6cbn1xl2+Bc6JyXaNndKZhaKZtm9SZfISbb3h5l2ubeneXcm2ppGdgZXlwf4NrZ2ZkbXV3Z2BiU1tlUVFhSVdJVF9XU1tlalxkUEVDS01KS0JKRThQP1BNV1NYT1JSYGZlaVJjd3l3SUZFY11kWmhpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebgLGrVFxLfqmvsbSws6OcmIWZqKCgo42kqKCYqYmZmJiTmZOSoJiOiIZ7cH2EaH2PgpSagXeRjY6Jb3+GkJOSbJeUfYiRkaOVg46qmpSSi4WJeYN2iIBugp+Gd4CThoiZopd6lKOlmp+Js6Gitot6rKekrqVwqYCakIWBnJJ8pICimYaYcp6Eoq2uiZeMgIykjZaDraGUdrW1tcmhc5SKgZ9gnZapbXmVhp+adaGHd6B+kZaKgG9MZqOScJqHcqR7eXRhg4JsfqBrcWRgnHJ/dJdpe2q0tbTGpnOYfnudapubq3WDmmx0d5dpmnp1mHJQRH2zXmp2a3iHZmpnYnR0cW5WXlRZaE9SaElVTFlTVV1oa25WZ1dNSkFKTUtISk5BUUpQZGNpbWV0cnN+eXtudYl7e1RQT2xeaFtraVJqaGlsZ2xmY2VfXF1cXmliZGhre19dZGhjamZvbWVpbGWhnImwp4RmP5Shsquvr7Wio5CAl6mioqWMpaednKWCmpeWjZeQj5yTjoiDeWp5hmWDjH+XoHl1j4iMgWmEhZKDjIWdjXqMipWlkoOXqZeMkYuBiXqAfYt5cJChhnmBlYeJlqCWf5WmqZyWloRnbnicbKJkfHGld5yYcGengZeMe6V6n5aDl3KedoGJlJaPuW6QiqJifZihlYhtcmmranWgbW6mYJtoipBoloealXWigH2aYIuFjHRviGJooGWefmmadW9jZoiCbnKiWl9bY6FuXYmMb3t/c3JkpW13omRnp2iYc4uYbqFvU4iPb6BfZadUi11UmG1tc2txgW1waGt4c2tvUlhXVmZZU21JWE9dSFhpaHNqWWtWUVJFVlxMWFJhVGhqXnd1enxwfHxyg3t/cnaNgIR2XlFyYmdicGdQamhoa2xuZ2RnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKWZpnpldG2Lp66kqbCxpp+LgJernZ6ljKKhmqKigJaYk42aj4uYkI6Ke4dxgIhoi4t8mJtzdIp9kHxkgoeVioqVmYJ8iIaWp5CBoqyQhZCKgop9gICOc2iPpoR9hpSNiZigjoiTq6ediaZ4lpx/pYmWjLKYnpCDr5efpXiViHqpdKWPhJpupKKMkoSMg7xufKWvgoaFhpKWnJ98pXpxqJWglmeefW6rY5aKlZJ3qGypooGJdYeCd6uRpohrkbBrdrOMqWuKhm5tn56SlWF/q4uqdoB/jKafd599haWVnaBpmod2rGeerYy3c3e+jaSTWYOmjathdXJzb3t0cWJqfm5obVNWW1VhYVxrTV1SXUlebW12YFtxWVtgWmdzZW5vcWNxdGB3en55cnmDc4R/gHt7jIGCgHZieGRjbXNkUmxnaG9scmlmaWFfXlxia2JtbHpvXFxiaWJsandtZ2xuYpWmqp2BgJ6klqmqnainrqSZioOYq5qepImapZ2pnISMmo6GnJGFko2MjXSGeoiEb42EfpiTdHSGcpKDbX+LkoeGlI98e4GFl6WNf6WmjoGOiYWVdoKHkm9si6mBg4uUjomcn4mNlKukoJCAdZSXiX+BeZSuo3+Bm3GPhnmQi4R/e3KmjHF9fXqXlpuEjnh7fn6IlJWTinaQmJ+gg3p9iWyMhVt5eHF5cWhufpKJcX90go+Uk3GFg4JljX9fgX+Ld3VzlHVveW5uh22Ehl53aXiNZoGCho6pm350fJdqiYhvgHZ9hXZtbGeMc3l7mHiEW2tYeY9obndycW93eG9dbIZuaWdWWmBXXGVrY1VhVV9SX3B4eWxrdmVqa2p2fHFydHNhb3Vic3uBeHV5gnWAgH+AeIuFg317bX9sZHhuXlduZ2h1a3hqaWpkXGBaY2plbHB1blpbYmtkbGx5bmhsb2GOlLmpp4uhopqmpJmknKujoYSEmKySnaCJmqaaqJiCgZuKfpaTh46KiY1yg3yPfX6PhXuXjnRyg3CWhXt9kouGhpCFeH5/hpijjXunoYuGkJCFloOGjph3coWqho6SnJCInp6IjJuooKCrg4mOlJuAfomWraiPk6aQeG+dkYN6km9+qIVwfZVxa3B8gZ+Lf5KOjGhtXYOLjJubno5zlYuIcXRrgnZzgFlyboeRgX1+jGpdamR7hYOIgF9peHube4KLgnaBhoJoeYuHa2FxcoN3X3OMgomQp5WGZoyPg253i4RxhY15b2VnZHqDepZbXGpnbnZbe3h3dG1zcoJmXG2Ka2xiWVleWlhscVtfYVpeXWZ0fnt1b3Rja2tqe3xye3h0ZG10Z2x7fnZ6fHt6en9/fm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtoa2pxcm1XW2VubGdzem9oam1gi4yqsaGQo6Ganp6Ynpmoo6J+g5itjZ+Uh5uikKWVf3uYhHySmYmIhoeKc32Ai3aFi4GElopxb4BymIaEfpOEg4aKgXqAg4ubn4+CpqGHeI6YiZWLi52XhYN6rYKRmJmUip6dh4ihq6CioqOLiJOcnaOZlqqhp6agkpuIl458eI6OhKd+f5KRkpOcsaablJ6QjbKTmISljIyVm5+JkJuCiZGKa3yNdndlgoaQinuJnYSHi4+IiICFhJB3fHl1mqGIhoqfi4WUf36MgYB2cHSGhH94iIeLkKaRhIWNiIONkIx9iIuIj4F2bIKEfHmZanJoYXSKcH16d3Zvd3SBXV5vhmhuX15aXF1TaHFVY1xcYWxpdXx8c29wZGtqaX97bXh/cWlvcGxmgHtygoB4f32AhHptg4yGfHp4fH16g3lOZHZrc21wemRrZWJiYFt0ZnBmcnJtVV1sdG1oeXpxZ2lrZY2Inbqfl6KhmJWZmJSZpKCee3+aq46ejYWfnIueln15lIN7jpmJhoSEhm54gIBygYh+iJSEbWx+epeGhIOQf4CGhIZ8h4ONm52Sh6qfg3KKkIaTkoydkX2Ne6qEjZKYlY+cl4aGm6egopqdhoORmpqZkJqmoKadnZCWgZGKd3yIjoSle3yOkJGGmKmhnZOdj42rjZGAnoyJk5qego6XfoaNgm94hXF0YH+Cj4Z1i5eAg4+ChoR+hYOUbnl1dJKii4yFmoWEjXSAinx8cnJ7iIR7eYyPhJOnj4aEj4KEioqKd4aIiYt8b2t+gHttaGxtZ155f2h8e3Z0dXV7d1xgcH1udWBjWl1eUWZtU2VaXmFraXZ6fnFsbGRrameAf2xzgGxsdG94boR5boeAdoKAfYR2coONiH57e3x/e4KKYGl7anVoaYJkamNgaVxkdWhvYnVubFRjcXllcHp6c2VpbW2Lip+3m6Kkn5KRlpeLmp+fnnt4nqaQm4qGpJSLmJl5eo2FfImRg4yCgYJtfH94c4GFfYqRfWtofYGXiIGIjnx+hoSHfI+Aj5ubkYinnX9wi4uMk4ehoYqFjXyokYiPkpeTlpN4jKOhoZ6Wmn+AkJqYk4ybo6GkmpeRm3+OhXmAg4+HoIB9jIyPfJekoKCTmZCPpo2PgZuRiZKXm36Skn6GjYF1dIJwdmB9f42GcoqVfIiLcox/goWGjmh3cXiMmJKPf5d+iItzgod8fHB5e4yEenuSjYOWppOLhpF8hoaHhXaCg4iHemVye354enBsamZefXNofHV1c3xygGpeYHR2cHhkY1lfXlNraFRkWV9hZ2p2eIFxZmtjbGhlf4BqbX5obnFrfXeGemuMgXOBgX2BdHaCjYZ+fHt/gX1/j2pyg25zaWGHaGxiX3FWdG9tbmB4aG1XanR2Y3V7e3Jiam55iY2fspKmpZyOkJiPhpygm5x8dqSgjZd/jKKKiJqWeHuGh36DiX6IgoB/cX97dHaChX6KkXhnY32Gl4qCio14fYCMg3mWgJWXlo2WoJt+b4yCkZSGppuIjYmEppWFkouWl5OSdpGeoaGYlJd6fo6Yl46Wm52knZmTlJx6kIaDeIWXjZ1+gYmNjHOXop6hk5mOj6KMi4OWmIOSlpl+mI18iI2BdnF9bnpkf3yKhXCGk3+QgmyHgoGAiYRldW98h5KXjX2TeIuJfICHfHtxfniKhXmFkYqLmKKVgYSNd4iEg4J3fIGJhnZfeHd9c313ZmxkYX5pandzdHR9cXxiY2FzbnVzbWFaYV5ba2RSYldgYWhrdnmGcWJqY21laHyDbGh0aGxvaH98gnltkIZxgIODf3N8g4yBf356goN+fJBtdoh0dG1limxqYWN1VoRpcW5geWdsYmp2cGZ5fHpxYHJshoWQnK6XpqiejY2Xh4afk5eYfXiqnIqYeZeci4yYkHl7gYt9fIN7gIKAeHR5enN9gIR/iYuAZF59i5WHf4WHdH1+in99l4SXk5aMo6GYf3KHe5OSiqePjI6Kk6GSg5GQlJeRi4GPmKCakpCRdH+NkpSJnZ2ep5iYjZWWdI6Oi2yGmI+ZeoeIkIlvl52ao5OVio2fjIaBkpx/kpKVhpmIfImJgXpxeWt1bHt9i35uhZKClHdvgoN9fop/ZHJqe4CWl4R/jXSQiYN5h351eIB9h4B8hI6FjJSkkHmFgnSJh32AdHaBh4NuYHt1enF8b2FuY2V7Ym5vdnJ3d3N0YXZfb2x1bm9cXF9eXmpeT11XY2FobXR7iWtfamVqY2h3h21mbGhpbGiAfHp3b5CHc4GDhH1zgYaJeoJ9eoGEfX2OcnqKeHhubIdraF9pcWOHaHFvZXdobmxheWhrfXt4cGF3bYuBmZqqoKOonYqKkYaKnoqVl313rpiMln2ek5GWlIh3fnuKfXyAdnd/gHB1dHtvhn2BgIp/fGFcfo+Rhn+DhHN6gIZ6j5GHkpGbkqWblYJ+gXyOi5KkiY6KjZibjYaRmJOWjomJjJOdk5CMjW6DkI+RiZ6ZoqGXloqXkW+ImYRnhpmOlHqJhZCKcJWalKGSkoiLmYyCf5CefJKPkouZjnuKhId0c3VrcW51e4t0boWQjpJxdIB7gYKIfGRxbHl9mZR9hIh0kIuBdIh5b4B+gYd8hY2KhY2VqI17iH1+i4V4fnFwgIWDY2h4dHZwe2JecGFrdV5xanp4eGxycGV4XW1sc21zWVpeYGJqWlBXV2VjZ3Fxf4dmXWloZ2JncY5vZGlnZWpogHp3dG6OhXSBgYJ7dYKIhXeFfHiEhXqAiXd/i3t6cnmDamtfcGh0gGtyb21xZ29sZXxjboB5dnFsd3eKf6KYoqigppuHjIqBkJyGk5x1gaqUko2GoIyWk5CAdHx2hXd4f3Jze4Vrc3B6bop2gIGHbnFbWX6RjYh/gIB2dYCAf6CGkIqSnJehlJh4in+BjYmdnoqPhpKYloWJlZmPl4yLjY6NnYqOkINtiIqQkYmclqGbmJWGmIhqhaODZ4adipF+i4OLgXeTmJGekZCIiZWNf36Pl3yRjY+NmpJ8in+CbnZwbG1ucHuFaXODjpeKcHd/dIKJgnhmc292gZmOfImEepSReneIdHCJe4aNeouHhImPnKOIfIR3got/eHhva4GCgV1yc3FxcXhaXnBgcWteb2l8eXBtbWpsdmBwb2pybVpYYWFiblhRU1pmZ2N1cISCYl1qbWRiZmuSbWBmZl9oaoF1cXJwi4B1f4KAeHWAi4B4hX93h4Z3g4V7hox/e3aKf2pxY3xihnxvcWx0amhvbHZ3X3F/eXt0dXSAgn6klZqtnqaWhYyDf5eUg4+fdYuflJOFipuMlY2LenJ4dIJwcoRzcXWIbHBtdW2Id4N+gG1uVVGBq5SHgniAdnKCeYGggpGBk5KYnJKaeJJ7g42TpJqTjomVmZOFh5eZjJSMiY+PiJ6FkIp8coqFiY6InJqfm5aUgZR/aYadiGeGoYiShJGDiXGDkZePmo2PjIuPjXd7kpB6jouMkZaMfIh8gGt2am5ra2x6fmF5fo6VgXZ6gHeDjXx5Z3RsdIeVi3+IhnuUkHF6hHB3jHqKjHqJfoOMkZ+dhX18eIKMfXdxamyBgnlfd29tbHJzVl5vYnJhX2xueXBncGZmc3RocWthd2VdV2ZhYHJTUE5cZmVdeHCIfF9caHJiYmVmkmlfaGRbZ3B+cGtwc4p9dnyFgHR1f4x5e4aBeIiDc4aFfoyMg3t5lXdmcmqDYIh+b29remBqbnR/dF90fXmGeHRzhXx4oI+ZsJylj4KKf4OaiH+Lnn+LmpOPhIiYjo6PhHZ0dnOAcG+Fc3Bxg29raXZtgm59fG11c1JOgt/IktaTfG90hHaDoIKTd5WRmZuQmnuUc4WQn6GTk5CJk5uUhn6WlYiNjYiRjYicgI6BeHqMfoiMipycnZuVk3qOdmiJkodsiKOFkoeXg4ZjjJGZj5WJloyNiotxe5SJeo2IipKRiXmFe35se2Vyb2treXlcgHmPjYB6fX5/ho56eWhza3OLj4qChYV9lYxrfn5ugIx/jId9hHuDkJWamop8d3iDkXlzbWZwf4NsanRvaGp0bVNeb2RwWWBrcXdma2piZnhycHBjX3hgYFZrX152T05LYGZjXXlxiXRcXGV2YGFlZY9kYGZhWGlzc25rcXaMfHR5hoJ1dn6Lc3+Gf3uJfnKJh4GQioh8fph2ZXNtfGWIfm9wbIBabG55eXNhdnp7jXZzd4p3eZ+Lm66boJCChXeIlX58iZyHhZ+RjoWMl4STjoeBdHdweXFuhG9tbn5yZGR4cHxten1qaGxjpJrB3K7voXNrdYR2haKFkm+WkJWglJyBknGGi6OXiY2VipCdloOAlZCFiY+AkoqKl3+He3V/iXiGhI2cm5iZj493jHZuhomLfYqjhJGJnYWFXouUl4qPiI6Li4SJbHyWgX2IhYmQj4Z2hX19a31keHVqbnhzWIh6kYaFen5/gIWLfnhlc2p/io6Kg4J/jJaFa4F2boiRgpCFf4J7gJGWk5mQdXR4iI11c3FndXmCYnRtb2JpdmdSYHFnbFVfbnR5YHJjX2h9cHJuW2NyYWJXblpcd01NTGRmYV52c4ltXFxkeV5gZGaFYGNiXllqcmtua3J2jH10d4SBeHd7iXGDhH1+iHt0i4mIlYaMfn6Yc2h1cXlti3pudHCBWHF6dnlxZXd5hoxpd4CJcn+ch5innKOShHxwjJR4eYudhIWhjY57lY1/mYiEe3J3cHNqb4FraWx8dF5geHZ7cHV7Z2FlfOvatcnD3IhzbHOBd4qaiI1pmI+PnZWTgYlxhYmgjoWKlYqNmJR8jZOIg4mPe5GLhpCCf3Z4g4Nyh4KTm5aUmIaMd4h/cIWCiYeZooOUjJ6DiWGDlY+HiYaJjYeAh2l9lH99g4SJjo2CcYZ+f3F3aHZyaXN3bFqMfZKBhXx/g4CEioJ1YXRsiIGPi4J+f5KRfW2CbHiGkIaThH2BfoGSk5CXiW9yeo2GdWxxa3J4gF9zaW5ca3ZgUmRyaWZTX3B2dGBvYF1ognFzaldnaGNpWG1XW3VMSkxlZ19icnOFaVtcZXleXmRne2BkX1xZa25lb2pzd4p+c3OBfnp2eohzhYJ8gId2d4qGj5iCjIF7k3ZsdnV5eJN0bnh6fVh5hXGAb2d5d5KCZHaGhXGKloWZoZuiioZzb5KLcneOnH2KmomJfJ9/g5l/gXhxc25vZHJ+aGZsd3dbX3l7enFxgGlhZ2F/1baOkKZ4bnF3e3CSkIyHapmOiJySjIV7aYiLmoeBkpGGh5iNfI2NgYGJjnyQjX6KhXp1e4J6cIaAlpmOk5SBiHWDhnaDgIuTnZ+GlY+ffohhgJOHhYiEiY1/f4NnfZB/fn+Ci4+Qfm2CfIJ0a212dHN2dWtijYGOf4V+fIR/hId+cF9zcYV8j42CfH+SiXpwg2Z5g4qHjIN8hH6AlJCRk4RucHqMf3Vub2psen1iaGppWGx1WlJpcmpiUWJyeGxhZV1aaoNtc2JcZ19kbF9uVFtvTkhPZ2VcZ25xgGxaW2NzYFxjbHdkZV1dWmxsYm1qc3aHf3Fvf3x8dHiGeIWCfYCHdXmJgZKVfIiGdomBb3d5e4STcG18gXdeg390gW1pe3OUc2dzh3xykpGDmp+boIaHdnaUfm12k5d+iJGDio2afIuadn12cW9samF0fGdiaXV6Wl93fHptcX9lZGhoV52PXnFylrzDg3VxlImQfnKXjIack4yIc2uJj5aBe5SMgYSbjHyLhn18iYx/lIh1iYV2d32BcXWGgZ6UhpWPg4Jyf4h1hHyJmJ2Yh5OOnYCIZX2TgoCFg4mJcoF9Z36Le3h+f4eLjnxpgHyDdmZveHhzdnNsao2FioGKf3iBgISDf2tecnh6fo2KhXuCj4B+coBpeIOHi4aEeIN8gZeNkIx9bm17iX13dW9oZ3x2Y1xwYldvclNTbnNpYU5mdHhlYF1cWG6Ab3NZZWJdam1gcE9Za1FEU2dhWmtubXtvWltebWNaYm93ZGZcXWBsamNtanN2goNxbn57f3R1g3qDgnyBhXZ+iYGWkHiDinSBiHJ4eX6NkG9vfIFxaYF5en5tbXx2lWtqeIR0bJSNhZ6YoJmFiG59jHZqeJiOf4KKgpWXiXmOlm96c3BsamRgdHtoYGVxelphcn15Z3F6YWVlj7Gyd0piWqTZ0JZxe5CLkHh+lYuFmZGNhm9shpKSenmShoCEmIp8h394eImKhJaAb4uIcXR9eml5hYOlkYSTjYN/b36DdoR5hZuYk4uSkJSFh3B7koN9g4OJg26BeGiAhHhyf3+CioZ7ZX1+hHVkcHOAaHhwb3WYjYWCint2eICEeYFrXHF9coGIhYl9hol6iHKAbnGEh46EhXOEeICZjY2EeG5vf4R/d3tlaGp9cF9Zd1pYcW1OV3JzZ2BLbHZ0YF1bW1l0fXJvV2ddZmpxX29OV2hRP1lnX1twamd5cVtbWGtlWWNweV9oXF5lbWhmbGlxd3+Hb2x/fYB1cIF6f4F+gn92gYWJl4pxgo1xe4Z8eXmDk4x1anp/a29+dH99b3J8e5RvboB/eGeSioKhmZ2RgoZnh4NvZ3qViX5/hYGZioF8jYxpeHJrbGZfYW95bV9ib3lcZGuCemFxdl9lZtTqvooyOj6LjoByeYWIjo12g5eMfpKOjX9ubIWNjHZ9j3+FgpWJfIN4bnaGhIOXd2+IhWt1e3RmeYKDp4yDj4uEfW5/dHaDeYackIyQkZKMi4Z+e5KHeICEjYNsgHJpf354bXx7gYqDd2J5hIFxZHFofm10cXWBm4uAf4V+cnV9gHKBcFttfnR4ioOLe4eAfIh4enFsiIOPhItygXl/l4uLf3Rua3eAgHV1XGlod3BZV3xTWnBlTFpycmVbSnB3b1xaWllddH51aFliW2dmbmNpTFdmUT1eZlxddWVfdG9aWVRvZFlkcXlaaF5fZ21namxpcHd9jmxpgoR+eW6Ae32Bf4J6dYKBjZOFcICLbnh+gHp7iJKJf2h7fWp0e3KGe3N3fX+MeXiEfXxrjIyDm52WjIGAbI5+a2h+jox7fn+DlIJ/fYqIa3VxZ2hjW2Jncm9gYWx0YWhwiXlic3ReY2SboI9uXDVZr7V1aoCJfZKGdoWWhXOOi4p3cG2Fg4d1eYl4iX2TiHp/c2d2iH5+mG9xhn5odnltZXmIhKWHgIeNiX5ufnZ/gHyMmYeCk5CYiIuEiXyPiHF7fYR8aX5ta4B7eml6doGHgXJgd4F+cWRyZ3WCbXR7hZSRgXyBf253eXx0fm1Yb392dIyChneIdoKJenhzbomBj4GFcn59fpOJiXpubmpugoJ1blxnZnNxUVt7TlxwXE9bcnBkVktzeGpXWVlaYXGAdGBdXWBnZGhpZk5ZaE1AYWRbYHZhXHRsV1dTdGFaZG9yV2peYWhrZ21saXB3fJJraISJfHxwfn57gYCCeneAgIqLg3F7h29xd4N/e4mNj4Nqfntud3l2ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshIiReH17gZGAgH6Kg3BycGNmXllnX3BwYGBncGZqb4p0YXRvW2FkanZ7f76cpqPIuHGFhHOUfXiGk4JzkY2IcnJwhHuDdHWHdIh3lIh5eXFjd4Z6gJNpcoR2Znd2Y2p8g4iegn9/jo59cn5zhHmAkZCCeJaNlI+Igoh7iYlseXl/dWh7aWt/eXNpenaAgn1oYHeHfWprdGh7f2l2gYyQlH56fn5we3Z7dH5iVnd9cnOKhIJ8g3GGind4cHCDgo1/fXl+fXaOhoN2aXFpbYiCcnBdaGNzbkpldUxeblVUWXNuYlFPc3hhUlhYXWJwgnNbYV1oZWRjamRRWnBJRGRhW2NwXl13Z1RWVnddW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHl9cnt+eIGBgXx2fYSIhoNwdoNybneCgn6Ji5N/cIB7d3l6gYx1g3h/gYGChHqAdW9+iYuanoh9hXp3hntndIWMkHp/f3uJhoR2j4Bnb25fZFxYZVltcmFgYXFsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhwjXV7h4+AepOKgHV0dX53gHBxf22EdJSGeHVsYHqCeYiPZnGDb2d2blttfYCQk4CAeJKSfXh7bYd1gJCLhHSWipGOh4WFe3+FbHV2f21od2Vte3ZtanZ3f398YGJ4hnpodHVjfnpndIWOjJV7dH91cYB6fG1/WVZ0fm91hId/gHlsiIZ0eGt1f4OEfXt9eHtyi4F9c2d0ZW6LhG10W2pfdWRIbm5MW2JXVlV4bWJQU3R2WFBVWF5hcYRvXGBjbWVjXm5iVFxyR0JmX11maF1aemJRVVx1W1tna2FWal9gbmZma3FocHV4jnRrjo11f3Z4fneBg4F7dH6EiIeDb3F/dHF1foWCiY2Ke3d/eIN8fIWHeId8fYF+hIB7fnN2eYyOn42Jeol2dIN5Xn2FmYx5hoN0hYaFd4l7Ym5sW2JbW2FWanNjYFxnbm9mh3FhcWZXXWNrf3zKzoi5omptbYpscYRyfIWKf3uRhXp5dHl1dXtqbHVjhHWRgndwZ159gnqLiWVygmtqcWNYbHuGnIiCgXOXlHd+e26IcYGKi4dxl46QiIWLg3t5fnFxb31maHJibnhxamtxd3x8eVxleYB3aXV4ZoJ2Z3SHi42UfHKGaW9+gHlufF1Ycn9tdICLfIJvb4l/cXZod3+Bf4F2fXF6dId8enJmc2FujIJsc1hrX3dbSW5rTVZVXlRVe2thT1R1clFRVFZeYnSFaFxgbGpmY1luYVhicEdBaF1gZl9dVXteT1ZkcFlbamhdV2hgX3Jma2hyZ3Byd4Z4bpWKdH96eH55goiAdXOAhoWNgnBwe3h3dXmGhoaLhnp8f3WLfn2FhISHf35+fYd/fHh2eXeSk59/jHyLbXaAeWODh5eGc5KLb4WFgXqDdGNuallfW11dVGdzZWBZZHJyZoFzYmtlV1tgaX93vq57oLdtYnOGaHR8cnqDhnt9jH94eHN2b3t2ZWpuYId1joFzamJefnh5i4RmcX5oamtaVm94iqSBhX9xmZNxgHh1gm2AgpGHc5WIjIeEiIV9eHRybmh5YGptYG12a2dqa3l3endbZ318eGVyfW6EdGV1hYyGlX9vi2ZreoN1bXRiXG98a3V8jHyBZnWHfW1xZ3V+eH5/cn1senqBenhwZmxibop+bW5Wa2B3VUpqa09STmhOWXxoYk5VdmpMUFRVX2d2g2ZdYHFoZ2FXaV1ba2hKRWtaYmRXWVV5Wk5WbWpZXWxlXFplY150Zm1kcWdyb3WBd3CZhXZ/fnd/fIWHfXVzgoh/lYJuc3h6enNzhYeIiIR5gX12j398hImOhIKEe36Lg3t3fHd3mp2XeoqDhml3fXxsg4STgHKPgnGFgn6Bf29mbGZXXVtcW1RkcWVfWGNzdWl1cGVlY1dcXGiAcG9ygHSJZWV4fml0dnNzg4V4gIR5d3R1bmt7cGFna2eGdI2EbmZdX31we4l+aW13ZmlkVVdycI2mfIR8dpaQc3tzfHpue3uQhXaYfIeGg4aDfHRwcmxndVxtaF9sdGRnZml6b3tyWWeBd3RncIB3gnVid4WKfJSAbotqbXqBcWZzZWBtemdzd4p8fmJ1g3Zpa3F0enB5eXN9Zn5/f3l3bmNmYm6GfG1rVmpicFNLaWtPTE5wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWZgVmNXYnBdTEtrWGNhVVRVc1ZMWHVkWl9rYVxbY2Vfd2ZtYnBpc25yf3R0moF3f4B3f36GhXp9dYKEfpeFbnJ0e3p1cYSFj4GAeot1dJGAfYGUjoCFhH1+jIZ7foB2e6OlinmIhYRsdXx7dYOCjHpuhXN6hH2Bg3VuamhlVl1bWlpUYm5kW1hic3tpaG1pYGJXX1ppgGprb4BobGFoeXhrdHR0boWBe399dnVtemhqeWpfZW5ogXaPhGdlWGJ3aX6He29pb2dmXVVYb2iPp3aBenyQjnl1b35vc3V5j4B3lXSFgn+FiHZqcnZnaG5bbGRdbHNfZ2FpeGh7bVptgnJzaW+Afnl3YXeEhHiPhHKIcW95f3JjcWhcb3dkcXOIfHhic4BwZ2p4c3JseHd1d2SDe393dm9kZGNufH1rbFVpYmZTS21oT0dSa0VheGdhTVNxXUlNVFlla3d7ZV5tcWlkXVZfVW5uV0tUaFhmXlhOVWxUSlx5X1tfa11dWmJlYHpobGFvb3Vub3d1eph9d4CBeoB/h4Z6eHqDfoGThHF0dH56dnSFiJB9gH2QbHOVgXyDn4V/h32AfoaCgIp7doSsn396iIeEbHKCenaAgIF1bodvfH9ziYBqb21kZFhfWllaVWJqZ1taXnWBaV5ubFxiVlxca4FmcnR9aWpda3Z2Z3R3cW2Fe319eXZybHpoaXhmXWRzaHp3koFjY1RlcGeChXd3ZmhqYFdWWWhkkKdufniAi456cHB8Znlveox7do5xhH1+f4ZuZHZzZGhoXGtiXW9vW2dfbHVkemhddIBvcmtxe311dWJ0hYp6h4Z/f3dydX91YXBsWXF0YnFyhXx1ZHJ/bGFsem9qaXp4dXJmhXV6enVwZGFkbnN+aWxUaV5dVEtzY1FHVmFHYnZmYUtUb1dKTFhYZ2x2emRlbnFmY1pXXVh2ZVRKXGNYaFhZSVdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bW9udoOYeXKBgHx/iIuGfXV2hniHjH10dXWCeHp6goyOfX6EiWp0l4F7i519foV6gXp+fIaIc3GProx7e4aQfmZyiHp0fHx2cm+GbHt+bI96YnBvYmVdZVZZWVdkZmtgXVxzhWhYcW5aXldaXGx7Y3B3dmxiW21zdGd1dXBthHh+gHl3bm50ZWl0ZVtndWZ2dpF6X11SZWZqgoJ0fWJjaVxUWF5iY5ClaHl0goWQeG1ueWd4bXyFe3WIcoB4fHh/aGV2bWBmYF5qX11za1llXW9vYnplW3d7a25ucHd4c3RkcoOSfoeCiHp2b3J9cmJ4ZFtvcGJxcYJ8c2ZxgGRebnZpZGd5enRub4F1dH1zcWJfZm5vfWRqU2hYWVRNd19RSllZSGJ0ZGFJVG1TSUxaV2lscntibGxzY2FaWlthdltTS2RdWGlTV0dZYE5HaXVYXmFtW1tfYmJdhWhoYW54eWxuanaBkHlug36AgZKIhIF2dIl0jIZ0cnd2gXd8fX6Mj4B+k35weJaDfZmSeYCAeHl9f3SIg3NwmaJ7en+JlXlkdYh5c3h1bHRvfmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYhlUnJuW1pYWGBsd2RpdWpqXlptc3FtdHN0aoV8fn98d25ubGRpcWNbanJkdHaPc1tXU2RhcoB/coJdYmNdU1pgW2OTn2VycYWEkXRsanlsb3B6fHtxgHd/cnp6emRmdmddYlphZ1ted2hXYl5vaGF3YFt7dmppcm53c3N0aHCBlIKGfoR2cmpwfG1md1dca21icXOBenNmb35bYG9xYl9qcX1sbHR+c3F4a3BhXGVsbHphZ1NnVVdSUHZbUlBZUkljc2JgR1VqUEhPWlZrbGt8Zm1vcWFcWlhZbHBXUlBmV1dpU1RGWlxPSHJ1WF9jbWNYYWBhXYtqY2RteXhrbml1eYZ7a4N9gISZfIKEeX2Ibo+GcW93enx0goJ8i4+DgpZ0eIKUhYGfiXWAgIFzf4Fwh4J1b6KXdHuGi4d7ZniLb257b2Z4cHpsc3ZyjGtedG5hZ2VrUl1bVmdibGxaXHGMZE9vbl1WWFVnanRoYnRlZV1abnVucXV1eWuHfH98iHeQc2Rka25hXG5tY3N4h2taVFZiY3h9fXGFXWNfY1RbYFljlpVjbnCDhYpzamh6bmVzdnN8bHp0dW96fnVfZnJjW15WYmRYYXVlVV9gbWRhcV1dfnBoaXNxc3B1dWtthJOBiHuEcXJmbn1wcm9TW2ZqZnF0gXdzYmx2VWJxaltfbmV8ZW12fHNyc2ptYFpkamp3XmZUZFVWUFRtV1FXU1BIZXJfYUZYaU5IWFRWbmlkfGlreGtiV1xVW3RkU1JXaFFZZlRTSFpaUE14d1tfZWxpWmJgXl6PbmJma3l1bm9odnZ/f2yDgH2Gl3t/iIGKf2uTiHJndIB7dYCDfYiOf4uTcn2KkYWHn4Z7f4aMc4CGc32Ddm6ljHOBjYt3eG56jGBkfHBmenN5bG1xdoJnZHtsY2ZnaFNeXlRnYGxvW15ujWhOam1gVFZTb2d0a2V4ZGVdWXB0bXJ6eHNtiHuAdpx7emthZWxtXmBvamVweX5nWlZYYGt4fHtwhF9iXmdWWWBXZJyIYmtxgYd9d2treGxbdnFseml2c25ve4ByWGpuX1ldVWFjV2RxY1NeYWliYmxaYH5sZmtzdW5td3ZraIWMf4h6h21xZnB8bXJtY1lgaGlvdIF0cl5pbFJlcWRUYm5iemNxdnt1a3Bta19YYWdodFxlVmFWU05YZVJPXE9PSGVwXWNGWWlNSV9LWG1kYHhobn5kYFVeVF10W1RSYGZOXWFUU0pcWVBZdXZdX2ZtaFhjYVtejnBjZ2p3cXNtaHZ0eoNzgYN6iI1+fIqHjnpukIp0bHOCdH9/iIWGkYSVj3p9jI+IkZuEgHyMhHN/gXN0eHFuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Njo6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6Ojo+Pj46OjY6Ojo6Ojo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHx9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERFQjEvLzAwMC8+RERERERDWGhnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTUzHx0dHRwcHC43NTU1NTRNYV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmHh4iIiIeOkJCQkJCQjIeHiIeHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhoWDg4OEhISEhYWGhYWFhYeJiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkZKRiYeOipCSk5CJkI+MjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6Ojo6Ojo+Pj4+Ojo6Ojo6OjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjIiHh4iNiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCRjYaFho+JjJCPj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkI+Hi4eIjIiOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjISLh4aMiI+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiIuMi42Mjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Pjo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpKSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZ21namdoZWhnY2JiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpeXVlZXmJhXl5aWV9bWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVBRUVFRUlZWUlFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUU9OTU9PT05PUFBRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLSk5JTk5MTU9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NFU0JVUEhLT0tJSUpISEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj48RUQ9P0ZZQ1tWPkVFR0dHR0JERERGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09Q11EXmE+QURERkNGRkRGSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozw+PTpDYD5ca0NBQj9BQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6OjY5Ojk5OkZnQFxtPzk4PDw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/RDs+PT47RmlLXG0+Ojw+PT8/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO11wQj5ERj9NZFhdZT49PTs8Pj5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZEPjw8PUA9ODo6bndKNzw5RVpjYGBkSTs8PUQ6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBbUTw8PUxQSUh2d083ODlUaG1naGxgQTtOUTk7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNARXV5SDxhgYSAent3XEY9QWVydGxtcm1PRmZPOj0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFJc3lrZoSEg4KDgH1gWFFGYnFycW91cWBgaUpAQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEdwdH2CgoGDfn2EdEpTZlhhcXJ0dnx0a21jSUpJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWlzfYF8f4R+eYZxQkhkbWx2gYaHh4R0a1ZJTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3iAhIWDhIptQE9zgYWHh4eHiIZnSkxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCg4SDhYeFh4JWbISHh4eGh4iJiHxRS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSUhISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpWgoSEhIKChoaFg4KFhYWFhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWaFhISEf4CDg4KDhISFhYaHiIiIiImLjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIGDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo6Ojs4OTg5ODc3Nzk6OTg4Njg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd5e3p7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXKEgIGDhISEhISGiYqKiIeIiImKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDk6PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXR1eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA+PT4+QD8/P0A/QD09P0I/QUE/QT89QEBAPj9BPT48Ozo7OTk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKDgoKEhYSFhIaJiYiIhoaGh4iJiouLi4qKi4qLXj5ER0lLSklGR0dERkhHRUJBQENFQ0NBQkNCP0BESEVDRURFRUFGRUZERUZEQEI/PEA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NGWIWCg4SFhoaGiImJiIeGhoaHiYmKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkJHR0pZhYKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSklJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExOS0dHR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7PD06P0E+QEBDRklKUWCCg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEhFSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QEVISkxXcoOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4tfUlJQTU5NS0pHRkJHSkdMSkZLT0xLSkpNTUxPUE5ISUtMT1FRUVFPT0pJSkpMSkxGR0hHRUdJRkVFQkBCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBSEtMUFd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKREVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9DQkZWTkZPUFBUWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMj4uLi2dWVWthRVJRUVBJOztRU1JgdV1VVlRWWVlSWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLSEhKSEVGSUhJSElpcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklJR0dGRT8/QUFFQkNHRURFTFhSTVRWVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFpnUlVWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx5hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSVFJWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSVlYWVtdWFhZV1JRTlBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNVVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpbXF5UUVFQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXG1ydXZ1c3N3e3p7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSEJDSEdIS0dDQkFEQE9QTVNkc3R1dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiW1hTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz8/Ozs+QEA/Pz5rUUthRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNDPz48PUI+Sk1GVW51dXVzdHZ4enx6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXt4enx8eHd4ZEJAQEI9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztCSD9cdHR1dnV2eHp8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJYR0ZGSEJBR0lFRUZETVJQYVdSWFFQU1NSVVtPT1FXUE1KQ0Y+Ojo2NDg3OTc5OjM2Njc5NTxCPWVzc3Z3d3l6e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMWFlaVlhYVlhZXVdXWGhza11WYXNrYWFfXWRhX15ZVVBNT05MSEhKS0lIRkNRUFNaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnF0d3h6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KT09UU1RcVlJVU1JPTUtJSEhGPz89Ojc4NzY1OTk2NzY2NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUFBQTk5PVExNSVBPU1RVMjxYTUlBUT1jYVFTUVBOUFFQTk5NUE5UUlBSTUlMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjQ1NjY7ZXBxdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkZBRkdHSEZKREhKSEdFSExIS0hGTE1QTUcvRV9SPjNAPmpvYVJSUUBGVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3NkRucXR2eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRUZISk5LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUV1dVTExLSD05ODc7P0A+PD1BQEI9PkVIR0RGRklHSkpARkFBQEZIRUpPSFBSYVxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSUpMTEtGRkZEP0JDPjxCRj9CP0FkcXV4e3p7e3x7enp3fHd5fX57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47P0JAQD5BRElFQ0hHSUdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xNS0xNTUxMS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES29wd3p5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxAQkJBREVHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUTEpJTVRGSUlKTEpLS0lJTE1PUFJQS0dDS0dDQkpKTE1PTUlKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0RHSEhHSktJSktER0I9Pj06Ojo7QEI/PUJCQ0NHRkpMSkVJSUZHSENDO0FAQj5AQENFRElNUEdJS0dIS0RISUtNSEpMSEhKTEtNXVJJSERNRkFES0tOTVBOS01KS0ZHR0pNTlFOTGNuaXZ2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLREZFR0RFRUdFR0JDQD48PTo7OjpAREA+QkNERUlGSkpMRklJR0ZGREI7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1ISUxHRUZJSUxOS0pIRU5IQ0dNTE9NT01OTk1MSUhKT1JRUk5SZmdmcm9zeHV7enxsaGpuZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQkJCRUBEQj4/Pjo7Oz06PT5DQT9BQ0VHSkZJSUxIR0dHRkVDQD1FRUI+QkRDQ0VHSElHTVBKRkZHS05PS0ZISkZFREVJSUhLSUZIUEtESU1MUE1PTk9PTkpKSU1SVVRST1dkYGFtZ3Byb3J5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPEJBPkE9Ojo9Pzs+PkBCP0BCREdLRklHSUhGRkdFQ0JBQUZGQ0JDQkRFREdHSEZMUUxJT0pKTEtJR0hFRkVEQ0lISEtKR0tSTUJOT01RT09PTk9PS0tLUFVXVlVUWGBeXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmprc01HR0ZIQkJAREU8QUFAQzw4OT0+OT88P0I/QEBERkhFSEZGR0ZFRURDRUNESUZDRkVCRUdFRUZHRUpNS0hRTUpLSEhJRUZISUVDSUlKS01LT1NORFFSUFFSTk9NTlBNTE5TV1ZXWFZYXVpdZGBoYmppZ2tfZWVnY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaW96TUhHSEhCQkJGRTxAQkJEPDc6PT46PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkdKRUVJR0NHSEZIRkVDRkpKR01KTEtJSkxGSUlLSEVLS0xNTk9SVE9JU1VUUVNQUU1OUU5NUVdaVlpZVlpdWlhhYGBgXmhlY2BkZWhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnByc3lOSUhHSURBQ0hFPEBFQkU9ODo+Pj08PEFCPD8+QUJGQ0VCQ0hEQ0VFRkdHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMS01LSU1MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZW15fXmBiXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZxdU1JS0hKRUJFR0U8QEdEREA6PD5APz4/Q0I8QD5BQUZDRURESERGREdFSEhGSEdJS0pGSkhIS0hGRkxISEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUlFMT1NSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm92SktMSkxHQkVERTxARkREQjs/P0FAQEBEQT9CP0FDSEJGRUZHRUlFRkRJSUdJSEpNSEhKSklMSkZKS0hJSkpHS0tNTUpKTkxOTk5PS09QUlVYVk1OVFZVU1JRUExOVFNSV1teXl9dXWBfYWFhYGJjZWFjaGJkaWpndotsa2lnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dKTUxMTUdEREFEPD9FRUVDPUFBQ0JCQ0VCQkRBQUVHQ0hISEdGSkZDR0lHR0pGSUxISkpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBPVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5gYl5gZWFhYmduaGJpaGhteHZsaGptb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xNTExMR0VBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NDSUZDSEpKSUlLRkRLSkdISklJS0dKSk5LTkxJTEhKTUtaZkpkXEtsU0hPTl9uVWtzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVGB3dWlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5S05KS0pGQz9AQj89REVGRENEQkVFRUZCRkZIQ0RKRUVKTE1LTE1HR01JSElLSEtKSUtKTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXlta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0JCPz1DRkdCRkNFREVFRENISEdERUtHR0xNTUtNTUdKTkhKS0pJTEtKSktNTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncXBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9P0BGR0JHRElFRURCRklISEVHS0pHTU1OTE1OSExNSUxLSEpNSUtKSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdoYWRqdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR3SU1HSURFRUNBQjxCQUJGREdGTEhFQ0NIS0hIRkpMTEZOS0xTUkxITExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2diYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTU1JS0tLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRURER0JISkxIRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpKS0tJSElHS0tMS0ZIS0tMTExLSUtMTlRbXFRQVExQT05PT1ZRT09RT09RSklOUFFkcWlUWVdbW1xVWVpdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NHQ0VHQ0lLTEhGREdLTEhER0hQS0xPS0xXTElFRUhJSkhJS0lMSkhGSEdKR0hJRUZMSUlLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSSllhWlNgZFxhWFtkZFZWWFxZWlhcVllcXWJfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElER0dGS0pLSEVFSkpKR0VISFBKTU1KTVNJSEZBR0ZKSUtLSUxKSUZFSkdERkdFRUpIQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOXlxeU1teY15aXWBjYFlfYltgXltUWFhZXl1jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tGRklKTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRENDRUFGSkRASkxKT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV5eY2FgYmJiY2NlWlFZVlVcWV5kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLR0NHRUJFR0hGR0hJRkdKR0hGSEtJTERES0tOTUxMSEpKSEpHP0dGTkpLS01LS0tJR0dDREBEQUhJQT9JSkhPXWFaW2RdX1RRU1hdXFxcX1pLV1xMUlxZSU1eUE9cX2FjZGNjYlxkY2JkY2ZYUVVUU1tYWmFeXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSUZGR0hHR0lGRkZJTEpORURLSkxOSkxJS0pISUdCSEhRTUtLT01LS0lIR0VEP0VDSEhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJhYGJiYGNiYmRkYlhPUVFSW1NbXl1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lKS05MTElMS0lJSERIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VDV1VFXFRdU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJdYGBfYmNiXWJiV19fVFBOUFFYUl1cW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQRFdfSUdHSERGTUpQUEZKSUpLTkxLS0xLSkpHRUpNUVFOTk9NTkxOSEtBREFDREZEQ0FFRkJNSENMTFBPT0xGTUZHSUpIR0xMTU9QSUxPUFBTUExQVFNVWllXWVhYZFZPU1RQUE9OUFVUXFlZWl1cYGFkZWNnY2tscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHSFlNR0hKSEdOTFFRSUtLS0tOTlVOT0tLTEdHS1BTU05QT05PTk9IS0VgRURfTERmY0VNW0lfXHNtT01WbVlMQ1BgVWxXZ0pdV1VeRExRVUxNVFZRU1RYV1RYVVRcVFBmWmhoZFhTa1RXVlVbXFtgYGFiYmJgZmhmbmxocnp8fX6BhISEg4ODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09TSUtHYFRISk9KSU9NUlFLTEtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzV1BtSHFucGFWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZVV39qdHV1X2B3YFhhXFxmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEZKTEZSVkxLTklLUlhXUU5OTkxRVE5PUVBLTE9HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWVJUUXZndGxwYm5malFyT013bWpycHNycXJwb3CBXWZ6dXhxcXpxfnN9a3V9YlJnfGVzc29zc3x9b315b39yX2BgYmJaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQTk1NSk5WXllVTFFTTlhaTFNTUk5MUElRUlRZV1dQVFBQUFFLR2Z4bGN4cm1aS0xVeXB1bXVibnZQZGVJZnZxbXdvgGpmeHhpWHNSaXttaWp6en1seHp/b2dvWHZ2anV1cIBgc2h8aWx4fG9eX19jYlpdYmRnaWplZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0JFUFBISktKTFBPT1BNUFpgWlhLVFdQYV5SVlFZU01QSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExoeH14YHl7c25hXm1vZFJncnVubXlwd2x2dHRxbG1cdH56a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGZlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUEpMTUtMUVFRUVBRV1xZVU5WWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGV8aXJ7XVRLbGB2dWtpdXt7bX54a3xwXV5eYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobW1yfGttaGt7dG1ta21PSEpLSElJSFJRTE5PTUxUU1NPVFJXUlZUUFdaVlZUVFRhYFFPTktUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1dYUl1ZV11WVE9ZUldXV1hZX1tncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xMTUtKU1FNUVBPTFZWVFBUVVhVWVVSWl1WVVRXVVlYUE9MTVZUUU5VU05PTUxRUEtKUVJLUU1LS09SVFJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1FSVVVWU1pRT1NSV1VUWVZUWVVUUlVUVFRXWFddWl5hXVxaWlxcYGNcXWJjZGdlZWRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUEpLTE9PTE1UUE5TUVFNWFhVVFVXV1daVlRcYFZXVllVWFRRUEtPV1NQTlVQTlFOS1NQTU9VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RPVFVYVVRZVVdZVVJSWFZVV1tZWl9dVVhfXV5dXF1hYV5bYmJjaGZlZGJYX2BiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FbWlhXWFpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUE5NUVFQUlhUUlFPTU9TVU9XUlRVVU9OTVFTVVVUVFJUWFZaXVxaVlZRUldYVltbV1FUVlZVVlhUV1dUU1JYVlVaXVldX15WXl1eYFxcYGBfX1piYmRoaGVkYVliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUldTU1NYTU9QUlRYVVVVU1VZWFteXVxbVlJPVVZWW1tXUVRXVVdYVlRYWlRTUVpXVlxeWl9fYFVhXGBhXWBiX1xgXWNhY2doZGZgWWNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeYFteXmFgX2JcWWBaUU5PTlZRUFRST1VUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSS1FUVFlaV1VPUk5TWFZUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVVZcXFZSVFZWWFlTVFlcVFJSXFdaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZmlkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1bYFxgVVxdaWpyfXNsZ1xVWVdRT1JbU1JRVFJUVVRLUVdWW1laU09TUlZWVVNPVlJTWlJUVVRYXFdYWFNYXFheXVlaXVRVTlZXV15bWFFUVVhZWVVXWVtUU1ZdWV1dYF1iY15ZYFtlYl9kZF5eY2NhXWVmaWRmXV5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVVZWVFRUXl5gXl5iXGFVXV5ia3l0bH1sWlVaVVFRU1xUVVRVVFZZV0xSWlZdW1xST1VTWFdWU1BYUlNXU1dWVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paU1RWWllaVlhZXFZVWl1cXmFhX2RkXV5dXWVhYmZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVpXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFhXV1ZWV11YUFVcWV5dXVRSWFJXVlRSVFhSU1ZUWVhZXV5YXVtVXl9YX19YXVZRWVRZWlphWVxVVlhbWlpYWVlaWFZdXl9eY2JhZWVdYlxgZmJkZmRfX2RiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaVlNcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFlcWlZYVVdbWllcWVhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdbWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVtZWV5fYGBkYmNlZWJkWmJmY2dmZV5hYmBjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFZYV1hdX2JhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xSVlhRV1ZWVlZWU1ZUWFxcX2BgXWBdV2FeW15cW15YVlhYW1tfYFxfWFldXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBYV1hZWVdWWFZdXV5gYWFfYl5ZYV1dXlldXllYVldbXGBfXV9ZWV5dXl5hXFtaWVxfYl9iZGNlZmVmYlpkZmdpZ2NfY15hZmRaaWliZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMV1dcWVddXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FiXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNgUlxZT1hXWVtaWVhaWWBdYGJiYGFjX1xiXV9dW15eWllVWF1dX2BfX1taXl5gYmNcXFdbXWBiYWNlZGdlZWZkXGVmaGlmY2JiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hQWFpdYWNmZnJrf0pZV11aWl9dXF5cWV1bXl9hY2JhYV1iW2JkYmBjY2JdXFtaV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxdXl9aWFZbX15dYWFfXVtgYWJlYl9dU1xfYGNkZGZkZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoY2hoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WDgYODgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3x7e3t7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHx8e3t7fHx8e3t7e3t6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmJiY2NjY2NjY2LiYmJiYmGs9bS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyMkJCQkJCQkI2MjIyMjIi/6eXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4d3h3d3d3d3d3eHl5eXl5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH19fX19fX19fHx8fHx8e4GEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV5dnZ2ent4e3h3dnh7eHl6en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t6enp6e3t7e3t7enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx8fXp5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3eX1+fXl7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d8enx8enx5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en57fX16fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5fHp6e3l5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh4eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3t5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8e358fX5+fn5+fn1/f398fH2Ag4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAf35/gYCAgH+AgYGAf3+AgX9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35+gH9/gICEf4OBfn9/fn5+fX5/f35/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5/f4x+jYV+f39/fn5+f4CAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH+Bl4KUjH5/gIF/f39/gIGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCgoaehpeUgIKBgYKCgoOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCBg4GCiqGImZqHh4aGhoaHiIeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WEg4GBgYGLo4qanImGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4OCgI2jiZeciISEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4KCgoKBjaOPlpmEgoOBgYGBgH6BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSOhIGAgIWfpqmol4KCgYOGg39/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDipeJhIOEmK2nq6ygjoGChJCEgYGAgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhoSEg4ODgoSOmY+FhYmloZmlo5ueiYKUlYSDgoGBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fY2dmZOEiJ+UkJ+clJ2Vkp6OgoOBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX58gpeToZ2Mk5KNmJqUmaGhm4eBgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqHg4ODhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICWn4t+f4B9h4t/hIaVqKWfkpGVj4mVoJ2ZhIKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZKgioCMhX2GiIGAhomcoaKQg39+foKWnZGCg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipCChIqFg4KBf3+DiI+PhoB/f4CAf4KOhoODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGIgX+AgH+Ggn9/gICAgICAgICDhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgIWFf39/f4CAgICAgICAgICBf3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjIiBgIGCgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX5+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYmDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYGBgYGDg4SDg5GSkI6PjouHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B+fn5+fXx9fXx5fIOGh4eEg4GDg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4J/f4GDg4ODg4KCf319f4CAgX99fn59fH19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn2AgoODgoOCg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f3+Afn2Af3+AgIF/gICBf3+AgYF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDg4OEhYCAf3x9fX59fX6AgH99f359foGDg4KCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gICAfn9/fn59fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/fn5+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn59fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOBgoOBf4GAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjISDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhYSDg4SDhYSEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYGDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJKSjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgICCgYKAgIGBgH+LlI+Mi46OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIJ/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRjIyNjo6KhYaHhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2MjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIyPjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX+AgIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaFgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42Mi4iEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gH+BgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4WBhJGOjIuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fH18fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+f3+AgIOHiYmJiomKiYWIkY2LiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH19fXx9fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uLiY2Rjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjpCNi4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fHx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICAg4F/gIGEgX5+gH9+foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICBgICAf358fX19fX5+fYJ9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fYmGhoWFh4WFhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYWFg4ODhISDg4SCgYB/gH+AgX59fX5/fn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKDgoSCgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4F/gIOCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4KDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF+fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKDgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9/f398fn9/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgYB/fn+Bfn+AgoKAgYOChISGhIB+fXx8fHx7eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH99fn6Af31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXh5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgICAgIF/e4B+gIB/gYGAf32Afn5+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDg4ODhoSAgX58fXx8e314d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH9/gYB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFyb3h3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/gH18fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gYGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgYKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgICBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHh4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg39/goGEg4OEgYGDgYKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEf4CDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGDgYCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4OEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4SDgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgYSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgIOEhIWDgoKDg4KBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+fn5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CCgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhISFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fX5+foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZzhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fX6BgIF9gH99gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB1gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3t/fXyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foN0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmpveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhISGh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxte3p5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEg4GDg4SEhYSFhIWEhoOGh4WGhISGh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhoKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoeGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4GAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaFhYeFhYeFhoWHhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYiKh4WHhoeHiIeFiIWGh4iGhoeHhoeHiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHg4eFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoeHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEg4aChYGBgH9/gIB+f4CCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aFhIaHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1NTV1dTU1NTU1dXV1dXV1dXU1NXV1dXV1NTU1NTU09LT09PU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fV1dXU1NTU1dXV1dXV1dXY2NfX19fY19fX19fX1tPS0tPT1NTT09PT1NTV1dXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi60dPT09PT09PT09TU1NXHt7m5uLi4uLi4uLi4t73T0tLT09LS0tLS0tPT09vi4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E9PkA3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6Oip8/T0tLS0tLS0tLS0tLUvaCjo6Ojo6Ojo6Ojo6Gr0tLS09LS0tLS0tLS0tDf6+vr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSko6jP09LS0tLS0tLS0tLS1b6ipaWkpKSkpKSkpKSjrdLS0tLS0tLS0tLS09LQ3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7PDw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamsz9PS0tLS0tLS09PT09XApqioqampqampqampqLDS0tLS0tLS0tLS0tPT0d/q6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tTV1dXV1dXV1dTT09PU09LS0tLS0tLS0tLS0tLT1NXW1tbW1tbW1tbW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7OztPU0M/P09PPz8/T0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXU1NTU1NTW1tbW1tbW1tbW1tfX1tbW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztCmksXS0KGWy9PHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPTo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztKqnayUzqigq5/PmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DJl5mFpqSflpChtJWGnZzOz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PD06Nj9CQEI6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0aSwvZqKnaCnmbS/yZeZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Q1bmZnaWejKDE0pKZoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P0NGanb2bxcmU2a2jv57V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NWnpKLGnZOWo7vNiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NLAnaLNspuus52l0NujmbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPUpKCPu6yfmqGcnJGnmJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HIxqa9lZOYoamfop6ooqmd0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQT49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg1MqOk5eQqrONkKXUmpKOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLUwq+ws9HWwL3W1NO5yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dTW1tbS0tTV09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT0tLS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioaCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpyenZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYm5qZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6OjpKKhoJ6bmZmYmZmZmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoaGfnpybmpqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56bmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmpmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZmanZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmYm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkouQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6JkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjomJkI+Oj5SUmJCVnJqdnqiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6KhlZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6qpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapaekqauvrKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66vqqqrpKGipKmnpqmoo6Kcm5ukoKWoo6CYnZifoaKpp6Cioq6sq6qnra+opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKelp6mnqaijp6aZnKSmoqGhoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+hoqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXFBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZabmKSioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirsKmoqqihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltaYF9aXFZcaGRuY25qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnaGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eWpiW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKumpZmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odWtxaGlpYVlTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW1vLy+vLy+xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1r7Ogp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5rY2Jud3V2bmxbYlFWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbWZudXFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppqWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3RrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+8u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKastLWsrqWko6ikoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ4c3lmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GycW/w8DLzc/KxsTDw8HEvri+wcPAxL/Bz8/Ox6uvtrS1q6CntLOuq7i1s6ypo6GtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczOz8/Mw8fGyMnIyMnHxcnHyMe/xcfExMnMytLP0868uLa0uLjBvr66vbq8urysraaqu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGppdG14bF1kW1ZgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzsfMycLCx8LLy8jGzMrOxcbFw8XKx8rQzdDMx8TAw8LJzcfFwcTHwby+tLCwsMG+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVudGJdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8S/v77Ey8jKy8m8u8jGyM3Iw8jJycXFw8LAxbXCycrIvsXHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVmY2pkYWptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nH0MrExMDDwcLBw8LDvr+ht8HBwaC6x8zLxcjRwrC+vri6u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjZGNqYmdjW1paXFlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8y9S3u8DBvLvFvbvBxL+/kqe9wrt6qcDJxMDAysCxwb+7t7u+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmNoamdmaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLevrre1ub+7wd6Xfsm8w7W6x7e2ubu9vYqbvca2YJXAxcC/vMG+uMa8wr+8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeHFtZWVmb2lla2hYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNDLfYC4xMe3ubiut7W4vbWAkb3IrFZ8wMbAwL+9vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NmYW1gXFRJS0pESkJDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7K9vrvEtrW4tbfAvsS8wsTWqnR3kMbPwsC4r7W1u8OqeYm/yZ1VZrXLw8K/v769x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGludG54Y2diW2NRS1RIRUVDSEM8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7G5vL2yvL68xbixt7m+ysrIw8bLzopzdI7M0czKxLW6wMTOl3GFwceQWFqXzsbCv8K8wMPMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBiTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vM/MvLq+vMS+t728sK+/vcHLybF6dXqNxszLzcrGwsTL04Rtgr++hl5YesrGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXV9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8tsC4y9i9vra/wL+vhXZve3aEl7SZcXl7j7/Hy8jBw8HAyctzaXu5tHxhV2jGxsXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3hzZ3BdW15dWVJFRENNSUFFPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFcnzBzLy2ucOth2dbY15QW19wf292fJK6v8bAucC8vsbCZWFyrbN1YVZhwcfDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f312bHV7cG5pW19gWVNQQUZIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnFynRnhrW9traebmpnVV9bSUxRU15vc4GeuLjCurO7t7u+vWFaZKC0d11UZ8LDxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3V2d25xYF9mXVtUSj0/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLW3x8Z8dGmFpbaYYlNFX1FNaWVTTEhQcXiIobC3vrmytbK8urtnVVeYvH5TUHLBxMbEwL2/ubOvsby6rru0s6arqK26vrjLwr++rKuwr7O7t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVteT0hCPz1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8O5hXpubo6gb09JQmtSQ1x7h4dbRleIpqewtrq1tLKsvLq6dFVQhbeBTFSCv8HHw7+5urWtpa22saawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZlhcXVJOTkE+SkJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i6vZGBd3KFfldGQleIUUtOYX2HflFDT4a6srO1srSvrLu6uoRmW3ifgVxxl7m7vbi2srGtq6Ctrqido6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c210aWxdW2pUXVxQTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1sr+hh4OEfWZMQFV6cExKTE6Hq29WP3O+ubO0srCxrbC6t6uOg3SFpampqa2uuK+qq62so6istKedl5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+1qpONkJtjRVadeVJXSFFhSXx/Y2N3rrmyrLOvrqytt6mVjZ2kqaSfnJydnaeonqCoqKGpt7GflpePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6ajm6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3pjd2xuXFFoVFBOR1BNTEJPUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqrmynqK1UUF6nXdYa0pVY2l2dWRqep2ytKqytK6qq6mSlKuvp52Ql5OPmKCeoaCcpKWtp6mgmpaXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mbpJmXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dn1ta3tkaFVRY01KSEdPUk1KTkc8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqKCwwbm9fE9LbKpcan5xdlNeb2FgbWiAlrGvrrO1qqehoaOdmZSNkJWXmJicn6Kim5+tqpCXl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ+cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3h8ZHl5YGJSVWBISUpLU1RJUlBMOT9BNjc8NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWdocPBgFVWZnB9dm1menJUX2JkamxibHCUtLCwuKymoZ2empWYmpmQjpGVkYyOjpSco4x2l5qal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKqyrqKZnJ2eoZmbm5qYmZuUlpuWmZ2loaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKTk9VTFNMQTc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6xpZB7bYZwYmVXUVxVV0tOVVpUT19ZbLSzq6+nn56ioJeRlJugm5iXkpOfnKGkmIZsdZ2bn5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWp3dV1sWlJgSFJVSEZVVkpCTEc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaGihGRaX2lhVk5QRj8/QURFQkdSTE+otqqppJ+fmZKSlJiYlpWVjIiLjpWdnZ55YYafmaafoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+np6Wkn52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pdm1obVxYXENXTkpHTUdCRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfmYFfXmZgUkVFPEs8RjxCPz5AQU16qa2pqqWfnp6io56fnZqcm5STlZSdnpiWfXSTopqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqzta+zrqqvo52rp7axraKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3RycWhWXFFGVEhESlBJP0VBNEZIOTU7Pjc7PD88PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfoIl2amFXTkQ/TF9+bF9DPDM1S3uqsqejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeG+CnaSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3xMnJw8HGvrq0urq1u7ewtbKqurKuu7e/u7qquK2rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGtlWltGS0xFRFNNREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdnJlxamBVSUVAQVKNnqSKUEdeja6soZmbm56emZeXl5KMjpaXk46NkIuCg4J3cnFtcY6mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxczR0tXO08m9wL/Du8bFyMXR083T0NPTzMrCxcbGysjOv8jRzMfFx8XBvMPBv7+/tr6zrr/Aw8PHxMfErr+4sri8w8LCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MREVQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6UZVhQTEVEQUZevtbDo5Ojs66jnpyfmpeWlJKUlpGQj4yHg4OIh4OAgYGAeXFyb2x5pLa6ub3LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LV1tPUyMzGzM3J0s3O083FyMnKwcbLx8nIxr/Ds7PIxMvLy8/Gyr++v73Bx8TMzMjJwMO/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm1xMQ0RGREtVeLq4q6+vppycnKCkoZ2alJOVlIl9d3BrZWJocW9xe4WKgHVwbnF0cIWzwr3E0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLV1tnV19PX2M7Sys/RzM/QzdPQv8jHysTMzMzOz8XGx7a/yr/SzczPxsnIv8TDyM7N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSUo+O0E4PTQ1ODY7ODY6PEA+Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWfoqNeRTtBQklabJqurKiblJefnJqgoJ6bnJmViXdpY2BfX19fXl9fXWJsdXRwcG9scnF1ksTHxdTW19fX09bQ1dTa1NTOz9XU1NHRzNHN09fW09XQz9LT0cnT0cjQ19fY0dfS2NnU1szPz8rN0svO0MDGw8jGzs3R0dLJzM3AyszG08/MzsjEysfHyMzK1NTR1c/SzNPCucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaOwc0RAQT9TbZ2wqJ+XlZeZmpyfnZicnJJ9cGVjYl9fYV9fYWBfYGBfYGZucHBua29yd3ecy8DS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY19fLyM7Eyc/NyszAycDIys3O0MvQzs7Mzs/Iy9DRy87KwsnHyczLzNLTzdPR0dDQyr3IubCuu7i1qrawrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg2NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramlqn9iZ2Jph52fm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBgYWBgYV5gX15cYm1yb29zdHZ2eaS9y9XR1tTT2NbOztTLzs7FzsrS0s/Hzs3N1MvO083L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXMwsjJw8zDxcjKys/KzczQzdPLxsjPzcjHy8XGwcbKzM3Q0cbQzs3NzM/Fx8G4ub3Dw73DubKyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYZ5cXJrbWdgYHBoWVhoVkxGTElQUUI7Qz47Njc6ODo6NTc9PUE8Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKifrYlzhIehw6qWjIyXlZCTkZGVlpWQi3xlYWJiYF1eYWNiYGBfYGFhYF9dW11ncnJxcnNwbXJ5pMbTz8vQz9PUysXJycbGv8PGz87HxcfNytLIy87OxtHS0M3M1MrHy87PyMfP0svRz8a6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL/Bx8zMzM/CysvIx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7utpLVzY3+AtqyQjo2Wj4WDg4OBfYSEfnNgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvcH240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jLycjKyMHFzMbIy83JxMLKycHCzNDFy8i/ucG7xsi+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xr28wMPFzMXFvMDKwsXH0sXAyb/KycbIxtDDw8bDr8TLx8TKt7+8urSprKSlmJ+YrKOhpZujoJuUe3dydGZpWmFubFpcWFJETEZCR0RMREZTQDU0MzM0Pz0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sbCxZWV6i7aQi5KWhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjBwcHFvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7u8bDv7zBzcPGvr61wb3Dur3Gu8K6s7zFxMLCt7+1tr6/u8zDvLW6yLq/vsvEwcbCxcnGycbQxsLMx7LHycPOzcHFw8C9s7ewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NXXllKRkpGSEpBRUJFSUA5OjY0ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1tfNys/FycXHwLnFvauvnlxpcpeUi4iKhHh/hoZ/foR7dHRjXFxdXmBgYmNiYmVlYl1cW1xeXF5dWltcXmhzcW1nZ25wcnmdvczAw7rAuK6wsaeqraynuLS3tLOztLu1vrK3sLWvsrzCvMHEvMC7tbK6vsC4x7m0u7bBwry4vcbBw7u1r7K2ur+0xLe7tKu4vb3AvbG7trC2urPFvLauu7+1t7TFvL7DxcDDxcbIy8XAxsa7x8vAz8rHw8bCw7fDvb22ub7Hv6y1urW3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcW/vrm3ybaqsZJcbXWRjoaJiXp4foaGd3eBfHNoXV1dXV9gX2BkYV9kZWNfX1xbXlxdXlpcW11fbHBuaGZrbW5yfKTHv7m4tbCrraeeo6qnnquts62qrKm0rrexs6mupqyzvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLLAtri9sLCnsrO1u7yrrrWmrravu7Kwqrmwrbuuu7i7wMC+ucK/x8PFwLzGwsjKuMXHxr/HxMO6xMbCu8bJzMuzucK9u7OJc3Z2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXQx83Bw8a/xMTDw8rCycq+wLzBurK0tMOuqbCOX2+AkIiOkHt4fYmFenuEgHduXl1cXF1fYF9fZGJiY2NiYF9eWltaWl1aWlpaXGVub2hmZ2lrbnGBrbmwta6mpKenmqCloZqcpauupKiirKqtq7Ckpp+qrbW2sb25r7evqa64tLS8uLS8r7i5tbK8wbLArqWpo6uxsrOovaqrqKutrbSzpqiuoaSvqbKmp6iupqi3rLGyt7q6vLG8vb6+xL+1wsHHyLe/wMW3xMO/u7/Ewr7EyMzKv77EwMCph3N0cmppXWFvY1dWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9CO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HKvrvJtr3DvrrKt8HDwbS1u7WwrrS7raeqkWlph4SHi4B7fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9eXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWppauloJuhpZSepZuYkaGjqqOjoKalqKWtoJ2cpKassrC2t6ewrKiqtKu0urG2tq62ubKwurqxtqWgpKCmsaerqLmqpKenqKeyraCnpp+bpKasnp+npKChsa2trLK0s7Swtby2u8HAsrq+w8GyubnDs8G9v7W4vL2/vMLHxMPDvsDEoIN4cGxiZl9rb2BVWV5ITmdPVEdFS0Y8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9tqCelZ2hprq2q7Ozu7PEz8nLwsa4tsfAzL+4ybe7xbizxLizvsCrtbuxq6Sus62foZBnbIaGhoB8eXVzb21qamlwaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1vh52poJeVmqGWnKOZlo2foaOnnKCgpKaip56bopufq7CtsbajqaqqrKyktLmtt7Css7Wus7WusKqfnp+korKkpqm4raKmpqCorKuZn6CemZ2fpZqZo5ybna+pq6eqrKytsbK4r7i5u7C2vLy6q7OzubO+tLaysba1v7a+wL3Dwbu7vZeEenNsX2VeZGRYVFddSVdcS1BHSUpHQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vDw8++use4uL+3ssK0sbu7q7i5sKGeqKunlp2Qa32Ghn94cm1vbWtiXmFmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1hYWFhaXmJkZGVmZmhpa3GNqJ2TlJSbmJuil5aRnKKiqJ6cnaWmoqWcoKCbma6urq6yoKairqunorWxsrKsqK+yp7qzpragop+co6Gto6Kqtaqio6aepaajlpmel5mbnaCal52dnZytoqunpKSmrauztKq1sLOrsrm0r6qvsrKzuLOuqayusrixu7a6vb+3s7GUhXl1Zl5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLMyMa/xbbBwMbOt8DEvbO5ubO/trG4uqyxtK6emaOpn5OZjXSAhIR/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqGck5WQlZeXoJeZlZegnqGdlqGhqaSfnqidnJqrp6+wq5ujpLiqoaCuqLaqpqetsKS4sKS3oKObmZmqpqGarLivoqGknKKfoJOUoZSWlpuYl5aXnJWfqp6ppKKdo6qqsK6otKuqp62zsKWrrrOxsK+ur6aoqLKtsbSwvLS5t66jlIF5dWReYVZZWFNSVEtNXkxPS0dHTExFPUE+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rp2nqKOqu8C9wLmutLjBzMfFwsO9xbjIy7LBwsGtvLu1u7y1uLmvrq+pm5igqJSQiYh/gX13cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjY2JjYmNkZmmBlpOWjJKUlJuZnZaWnKCcn5ahoKampKann52fpqCqr6afoqS3qKGhoqi0oqWopbClsa6stJ6hnZWVqaGilK2xsZ+io52emJuTi6GUkZOYmJOXl5iXnqecp6GimqSlpaukpbCnpaOrq62mqa6vrquoqqmzpqasr7Sxr7y1sa+voJJ6d3JlYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxce2xcSywr/Fq7e3vba9urq1squsp5iXnqOLiHOJiH93bmNhZmloZmdpZmptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVNVUlVgYF9gYV9hYWNlaoCUk4qRjpSTlJ2VlpekmaCXnaGloa2mpKSjo6Kcqqulmp+lsaqgoZ2lq56ooZ6trKmprq2ioqKVmKObnJCrqbCcoKKfnpeZk4qekY2Sk5aQmJiUnKGjnaShopWgoqSmm6OrpaKkqqOrrqWusqmmpaamtKapqK2ztbS5uq+prJ6McnFvYFtXVlZSR1FPSFpbT1JKVEtTTEVGSUQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb7DyKyxuMG1u8C7tLOpq6aVmpuciIByiIN7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eX19fYmRtjpCEkYePkY+ak5WTnJujnJuhqamrqKynqKakmaWvpZWZpa+qoJyZm6Cer5qcq7Ogpaafo6ShlZOblpaSqaqtmpyfoaCblJCMmY6MkYyRjZaVkJ2ioKOdnKOVm6CjoZeiqKOiqKugq7Ckrbelo6Sira2qqKuvs7ezvrWyq6+YhXRzaFtZWVNVUkVYTFFbWE1UTlBMUFFJTklCPT8/QT89NzU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1NzY1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9urK0pamglpeYl4d6dIB2d25taG1tbXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZH6MgYt/jJGKko2XkZeZoqCboKuqpq6sqLCkqZqfraCVlqSpqJ2YkI+anq6XmKiqmZ+dlKWhnpKRkpGTlaeqpZqZmZ6elo2Mi5OGiY2Dj4uSlZGgnqGkmJWflZqhop6Um6Wlp6iooLGxprG8p5+jrLWrrqewtbC4tcCxrbGrkX5yc2JWVFVOUkpHVlBSUUxMV01KTE5SR01LQUNGREM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OspbG3qqWisaudqqepsrGktsa0ubqzysW5usHL0Mqxtri7vcHDsa+xt620s7qysqGinJ2Xl5SDf3drZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domOh5CKl4mUlJibmZ6pm6CqpqWsnqiaoKack4+fo5uXl4WEkpujkJWjnZaWloiim5uUi46KkJqkp5yVlZebkZKHlI6LgYuNgJCKkpKSoJqgopaUmJmVoqaZjZmkpqimoaC0sqeyt6Gcoresqq2ksrKmtby1rKuxo4l5c21dTlFRTE9DTU5OUEtGTk5KSk5NUUhNSkFHS0hIQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKSnpKqloKimpbOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq26r6yemJmclJOHe4NuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW9zdnGFiIKIgJGEj4uUkZSeoY+bnKOipJmll6KclY2HmZqMc42Dfo2XloaRmpCUjo57mY+djIKJf4mYn6OekJOYloWNgpR+fnSKjnqQh5OQkJ2bmpqSlpCdjqOjjomaoKGjpJuitK+sr62fmKW4pqaxobCunLC7qqmvqpmDd3NjVk1ST1BOQ1NOTFFMQlBRSElOUk1ISkpESkxGSko9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpqWnpqezp6W0wbiwtLDJxLe5wc7GvbOsusGrrcOtp6Kmkp2mtq2ino6UlZGOfnh+ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11pbHJtf4V8dE5YcpCDl4eOnZeLlJGfmJ2VlJaVj5aJgJOKXztXb3yLlImAjJKMkIaGc4qFl4F5gXuGk52Tg5WOkZCDhn2TeHFwhY19iYGRjY+XmpmTi5CJnYifmIiHlp6aoaCXp66pramonpats6KmrZmsq5ios6KpraOTfnJuYFtOU1JXTERUSlBMTEZOT0lFTFFNS09KSUxQRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepqKOqsKintMG5sLWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUm7CimZaFk46Khn1zdV1QTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFFCQH+VkpJ9iZWNhIqNm46WlYmSiIaVhnmJf2BKUW54ipGEfYSNioV/f25+f5R4dXZ4hI2Zb1GNiIqGe354lHZnd4aIfYqJlYuNkZKXjISKiJWEmoyChJKalp6dlKSjqKmlpJ6asKuhpKSRpqqWoqqcoqaoiXVtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+hr6GnqKWnqLCtqra8tre3s8G7tqe6yLi2qKi1tqqyvKaelo5/iZOolZSJfY2DgXx3cG5YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVlYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXFWPiZSJdH+HgXyFjJOCkpqLj3uGj4B2gHhzb3ZxdI2NgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gHZycpJ3aHWEhISFe5WKiIqNi4B/hIuMgJSDfICPmJSclpGenamen6CdoKmln52YjKekk6Gglp6epIByaGFcXUpXUFJISlhST0pMTVJKSkpMUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlraywsqq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGOlIGNm42QfnaFd3t1bm5pWUtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfHhmd42XmI2PfWh5gXZ4gImPfYSYkoFyh498d3tva36tfHOQin97hpKBfX90ZnZ8hmxvaHN9iYyIgGx5cX1xbXaPcWhxgX6OcEOLhIKDhX93d3qLhX2Me3V9jpKPmIqSmpujlpmdmp2eoZyWjYqkm46el46WmI93b21lYlpYWFVRSlNVVE9QTlBWS05LTk9KUU5IT09MRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmxr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mPhZJ6iI2KiXVwe210cGlsalhLRkdFQUBDRElMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnt9fnt2b3RzhYJ5gXhwfI6MipSDlpeYmpCSlZeZl52WjIOJnpGLko2GkJZ/bmlub25YVlhUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCjrKqota+urLS/q7zCv6aimZWkl56NhIuUoaGYmJGTi3OOeoCFi4V0bnRrcGxka2pZTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXGCniGKaaXR6ZX9wbX96i4l2gYiGdGyakXRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxf3xocXF8bpOOj3xzfXxxcG51bYJ/d3l1anmJgoiJhJaSkpCLjZGUlI6XjYB5iJeIhoqGgJCIdmpqb2hlWFFaV1lZW01QVVZZWE5JSEVKSkhHQkBGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfp7uvq7KwwrG7w8ealo+UmYuOhnmEkJiUjZCMj4Zxh4J0h4yFem9ycG5vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiYBnZ2JqbnJscIN1aW9YdXCOm5J3bH97fW1xbXCAenN1bmJ2g36GgIWQkIqKiZGLkYyLjoN1eIqOgH6DgH2PenFwb2tgW1xeXFlYYV9STltaWFdMSEpGSkc+QkFCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ2kp56vlaW1qq6xrsGyu8HGlpCMlI+AiH1ugZCSiYOKh4+FdYKEbJWIh3t0eHhsd253Y2leSVBHPkA3NDQ5Ozs7PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgISZhJucYYaqn52Lg5CNeneIfomIjXOKl5CDel1kcnR6e3eKbWhqYnlvhpCCem6Bd3SEenB0eXdrbmldd4d8h3yHh49/i5KXg42FjIZ9cYR/g311d3t8iXZwc3RlZ19bW15UXGdeV1FVWFtVR0pKRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIySnJ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fYF+cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxyfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkqiHgJiYipt0bXyBhod9jmhnaHh/boWHgoVxhIVHbIB3cnl2aG1rX3d9g4h/iIWLepWdm4mLiJF/enWLdnx4bW93fX9zc3JsW11dW2NjWGdmXFVPUFZZUERMS0ZOSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU5HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiJGBmpWCoaGYlZuapa2Tmruxp7vHw6iLjKGlj5SJgZF8cYOen5Gcf3aFhYqQiJBpaG+DgHSMh4SLcYWCd4d/e3aFfW52dWaAlI+GiYmHiIehqqKWiY6Yf3qCiXp5b2dreH56fnJqZF5aWl1qXWFmYFlPS05XUlFIUEpETkdDSkRCQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMgIGRjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBjIuCiY2Df4l/bXBqXUJBNC0tLy8uLzAyMjM0Nzc4Oz0/QkRISk5RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2aj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPoZ+TmJKEi4WPmZGWbHB1iYuCloyNj3ePhHFthYGKlpGDhYhyiKGWh5OJjo+WpbWpm42VooOHk4N9f2tqa3yAgYFzYV1jXlpma1xsa15XS0dPU1FOTUxGSVBDRE1GQUNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+l5aalZ6enKegqZaTmJ5nZaSafoSSkXmAkoiQkn2KhJiSkYKAgIuNiYWQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0VOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZyopaKZoZeilZ2fqJ6oq6CorKmqtZerv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGJlaKamnh6fpSYkqGSlpiBlJ57d5WSq7OIjZeffZSdnI6Tlpmkoqa2sJ2RmaiIlo+NgYhsc3J8f3xxaGBcYF5iZ2NgaGdbUkVKS1BPSUpMRkZNQ0hMRkZDQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJjIqEkoWDhomBgIZ3X2JQNDYwLTEvLC4wMC8vLi4wMDE1PkFBTVFSU1BSU1VSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYaQd5WLo6eqtL24pK6srKeotKuwtrKyrbuxs76cs8Osu8nLt8O/uKWjsLKsraqji5aYhaamoKOXgaaZjaKqqKSIhZSkoaCqoaSpj5yxi5Wjp7e7m6CjsJOinaOekaSiq6+ts7WilKSqiJmJkoqVeXp+hX5nYGhcZWJdZGNfZmZfWk9DSUhUT0ZITEZKR0VGSEFLRkNGR0E7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GPg4WAi4WGh5KGgoSJhoiHh3FuYUBFNjQ8Mi8xMTAtLCstMS4tMz9EQU1VUVJTVVVXVU5bUEdHRTw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqscHHw6qzxbass7+zuL62v7TBtru7pLjGqLbJx7W+ubSoo7StsbGbmZKan4mor6ullHafpJehq7GzmZaqraiutruyuqyvtaKxrLG1vLe1rrWgp6ejqJqpsK2yuri4p5u2qYyljpGTn4Z4goN1WWFkVmVhYWNgYWZfW1RKREVMVVFISUpESUdFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFjZFd5dXGBlH2Fh5N2hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjYeEgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0pBQD5HS0ZFRDs+QDdENz9CSkpFRldUUF6Ppa6jsbTDtrjBzMm2u8S9s7PAt7fBtb+wt3Sxs6a6xaSwxrmxs7G0qKS1tqqxoKGWm6KSpbCupq2rp6SYoKyzuqKpsrq0u77Mv8XFvb2zwre6uL+3ure5rKywprGqrb6wvbvCwqyZuqiUro+Xl6uJfYJ8aldiYVhqZWplV1tkWVZUSUdHTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVVadmpwf4+EgY6EbnpzeYdiuKGZo4mVk5aTk5ONkJaSh4Z7hoGNloqBhIGKenyLh4Z8ioOBioOVfXh6dWVPXGRHRUw6UWNhW15TRj87SFBEWmNRUVlYWmdZVGBgTVNPRUE/SUpIRUZBQEM8RTZCPkhHSkxTWlRdk6+4tbq5yb+6vcnMu7zBvLe1u7u3vbS6scZhdbKlsZqeqr2qpairqqOisrWhq6ielZafmJ+upaempZ+jlKKmsbSnsrK9tsG908nK08bCxcvBysPAvr2/u7y3tLC5t7bDusW9w8iwnrmqoquOpai2iYB/cV9hYl1XYV9oZlJYYVZSVUlFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdsbHGQjYWQc2xycnOI1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaKf4OAg3h7i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV9uX1hnZVVZVEpEQUtLSEZJSEhHQkk5RD9IS1RUVlxaW5K5wLm9t8bAurjKy7q3ura4ubK4tbSutraZZHWonK1wXqGtnJigopuknqullKCfkJSOlpiXqJ+ln56amoSknaylqrCst7C9udTRz9fPyczRzM/OysbAv8LKvcG8wcDExMXKv8jOtKS7sLSvm6u5vJp/eWxdX1xYXWBZY2NRXGBTUEtDQkVHRTxART5CSEJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KQlG9sb3V1h7OsoaGfi5mcmYyNlZGbkoWKin6Ih4yQi4l8gYRze4qDhXuJdIGJhpV/c3t4a211e2hyZWlsaWZqaWhgZmlobFpudJetpLyIh2dbb2hdWllUSEtOT0pLUUtUUUhMQUpHS1BfXmJmaWGXt8ewubO7vrWxxMe1sLmwsLurs7GnqresjbannZunmk+anYyOoJaRppillYqTk4mQiY+RkZ6boZealZaHnpqmm6yvqK+ns7TU1NTW0svP1NXO08/NxcLJ0L/KycrJ0sfMzcLQ0riww7zEuaW2usSigm5jXFxdWGBXWGZaUV1XT09CQkhFQkk7QUQ+QUc/P0I3O0M+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmIJocW95eYOgqp6ml42bm5eLjpWRmo59iYuFjoqKi5CHfISCcH+IgYZ7h3KDkouPfnF4dWtxeH5xe214c2xpgXBtY2lucHhpd3x+y7/C36dtY3huY1thYEpQUlVOWV5QXl1NUE5UUVVVXG5udoJyl624rLSnsLarrLzAsau1pqW4p6yuoau0o46xrpqYmIyRk5GEjpuBjaeSnImDi4SKiYSLg5OVmJeTm5GcmJmZnp6rrKSnoaytz9LV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbFwM7Hx8OovrfQnnpuZV1iXFZgUl1bT1BUUE5IPkFGQUJFPEBCPkVEPkA/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bHdwfX5/oZ6eoYuNmZOTjIyTj5aFeYWPkI2LioiRh3+Ce3J+gIGHeYR1hZORiX9vdnJrc3x7d3xzgXdxa4BzcmhvcXp5cnu+y5t+jLKDdnKEdmhhal1DWlpbV2ZkWGVrU1hdXWBkXmN4e36LgZmqpKShoKGopqqwuKqltKOhraKjraKnsZ+JppqUkpGJkY6IgZSJa5WijZmEgIV9kYODk5ati5WNlZmOhZKQnZensKGgoaSkqMjOz8jCy9HU0dTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMTDy4tzb2JgX1hUWVJcUEpHSUlKQDs6O0VCRDxCRD5IQj9CQzs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5aJj4qIjoePf3iElJmKjYiIi4l+g3h0e32Dh3d/eoeRloCDbnhwbXV/dnh+dIV8eW2HdnRufXaEdXl7nbaNPEGLxqV+jXxpZVZJQ2ZjZWNoamRveFtfZmlrbmlugIOJkYudnqCdkJeYn6OkprKkpLOgoaWeoamgorGchp6SkpKQi46LhoOQhH6cm4yNg4SFepR+gqmVo4ySipeSi32XipqRqrOYmpunnKe9w8a5tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2trS1b/LzLR4dm5kXVlSVVBaVkZHSkpFRT06NzlAQUI6SERARUNBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqCh3x4hZaXiI+Dh4WHeoR5cXp7hIZ1eoWOjZ16jHB8b296f3F8gXGDh4Fujnp1d318gnV/fIeIsHRZqcK2jJKCcG5iPV5ocnBxcG54d4FlaW9ydXhye4uHjpSSm5WglYeMk5ugm5+qn6CtnKKamZ+lnp+smYuajJGRjYR9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI6UjIZ7m4iTj66qlJWXnpinrrW9qa29xsvIycvLz8jD0crU1tjX2NfU29fT2dvWz9va0dbJ1MuVeXtoaFtZUFJTXkhDRUlJPkE+PTc6PT87Pkg9P0FBQURAPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoKEfoR8fISXjoeLfoaGgHeCeW57e4eBdXqSno2gdo91gnR1gX10gIRvgY+Cb5KEdHyBhXp2hnyJt8alwsm3gZabj3dwZU5mY4F6gXeGopCLeHl3e4N/fIR2bZOWlJWPmJCDio+WmpeXppyXoJefk5KXo52Zq5aRkIqNkYKMhYmIgYWQkZ6cmYmFi4GGmHqJiZ+Xj4iOiouCfKGJkIu8oZiTl5mcqaamrp+otb7AwLnHyc3Oxc3K0dbW1dnV19vU19na29fb2tnYztzGhnp5Z2hlYFRXVlVNS0ROQzs8PTw5Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eot8foB/gH2Fe36BkYmEhXqEiHt1fXRufH2GfnR+kp6Rn4OSfIZ+eI59eYqKboKagHSYhX6BiYV8fpB6j6mPkMOgvIyco5x9iYR9iXOMin5zppqcmJSFe4+QiYRoR3CgpJ2Mi5CShYmLkJKVj52ak5WRl42MlZ+dlKGUko6NkIt+kI6Oi4SIkpaan5+JjJSSnpGCi4CmmYiEjoOGhIClhoqLuJidkpWWoqehnZ6do662urWrv8bK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3h4d2tpZFdgW1RQT0hETUI9PT45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmAjopxcnmKe3p/fX98iHp8e4uHgn51g4Z5c3pzbYF+hX13hZuhm56UkoCLiH+Yh4Cckm6HqIV6oIt8kY6DiIScfpqRio2jop+QpK6gi5GLhYuBkoZXcq2Ln6ucj4OYm5CQjlyCopGCjJ+TlYyHiIySk4yUlJSQjI+KiJabnY+VlpGLkpSGgIuIko2JipyWmaOjhpKdlqGLioiOnJCDiI+Ag4eFpIaMkLOYnZKUl6Ghn5mSnJ6nsbispbzCx83Hxs/Mz8zO18/R1K7W1dja2Nra19bZ2p9vfHRnZ1xdWFNXWENASUQ+Pj46NDk6Ozc6OzozOzs/PT43Ozk6MTlHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieG1ifpKDbm13i3h5f3qBfIZ8e3eGhH9zcIWCenV2dnSEg4V9f5Kmo5+lopaJnY+Ul4uKqJdyirKNhKeRhJmThZmLopagmJOJm52hkqmvn5GVkI2NiJWLbo23hZrEyLKcoaWbnJiWkbKRZKTNx5aPhYeJkJKNjZOUioWKioaWmpuPkJSThpWXhH+Pi5mIjZCql5eko4iZnpabiY+Il5eKhI+NgX+Hj6WJjZOpmpeTlpmhmJ+Zk52bo7O0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6Ccn9oY19dXk5KVFpCQUdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj46RU1GSFJXU1JCY4FGdYGOfXxtfoh4en56gYGDfnZ2gIN8bG6Lf3l8eHh8hIeLfYqjs6ejqrOhlqefpaSWla6ig5C4lZKzmY2hoIylm6+jpJ2YkKeWp5mtr6SXlZaUkIuYmZagwI6kybirm6KmrZiRm52ynYaFqKKcmIWIiY6VjYuTj4iBhoeIk5iUjIuTk4aUmIaEkZCcdJGZs5aXpaGInJmTj4qQi5eaiYqWjoZ9jJieiZCQnJqZk5iYn5SgnZWfm6GxrqKkt760xcfEvcPDv8bNysnSp87N09LQ1tjT0Ni7cnl2XGBVX1dQSElORUJDRTU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1NjY9OkpGREdOW1xZSWZgO0iEi3p7boWGenyEeICFgX5weHx9fW9zjXp9gXt4houJhoOSp7usqLK9r6Wts7Ooo6KwrIqatJ6juKSVraSWqa23pqSjn5mpmKmjr7CqmpmclJWRl5+Xmbu7rcmhaba4q7CUmJ6jq5OXvqNeqrKCiYqNlIeRfI6OfYOGjo+UlYiHk5eMkJWNi4yXmJKdmbSXlquei5uUko2QkoyZm4qSnpCLiZWgoY2UjZianZObmJ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8jC0aHGyc3NxNfW0cvToXB6aF1ZU15ST0ZEPjxDQUE4Pzg3ND5GPDw2PDM1MzU1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVHYmBicElAi4p+gXOGh32BiHWCioN/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruztMG8tK2rs7eMqLKurryqm7ukqK25uKumpqKho6Oor7Kxq52cpJibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIecrL2wg4yMi5CDj4ORj3qBh5CMjpyIh4+YjYuVl5SQmpadp5qxmpGsnY6aj5KOlJCQlpeOkaCRiZWbo6yUlo+UnJ6UoJ2bmKChlJqep6akoqSwsqbBx8OvsLq2xcTCvs2nx8PHw7zV0c3Eyoh0c2JcWV9bTUpCTEBFRz9BP0I7OjQ+QTw9NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxmRmBpZ1pdW5OMjIh7h4uGg4x1hpCKgW9+fIJ/cX6BepV6kZSUmJCTlae0xsm/wszBw7nHvLqvq7m7l7K2urLArqXApKuvu7yqrauiop2nqq60sKqbn6qboZuVn7C0p4uiurq1wburqZyypaSolIWOqsPEpIKLj4eIhIaVlI16g4yRjpGhjIyUko+Jl5+Xk5mVmKagr52MqpyOlo+SkZSVjZCVkY+hlIaXn6CynpSalKChmaSfmqCcoJSYnqakpqakr62lwMTDrqi3tcnDvrbOssS+xLyz0crIwrV0eW1cWFxpU0xIRExLS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk1lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoKQeY2hlqiampi6vsjIysHSycrCzLzBs627vqe6v728xLeswamssru9qrCpo6WjrK2zrba1oJ+vnqWimKO0vKmbqLzBo7a2r6uSsK2rrJeGmqqmpZGCjJOllYmAdYqSeoWNkZCen5OPlIuQjZSjmZeclZSjn6qfkaWajI+PkJWWiHyPlZKSo5uVoKKctaaQnpelpKOlnp6mmJ6Vl5ulo6inorKsqLzAxK+ls7fMwLmuxLO7vsK4rMLDwsCYbXlhWFdcW0tLTUpGRERJQkJBQ0s6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djZeOnpKJin+Jn5OEd4V/lX9/kIiKkH+VoZqupqOYwr3Iw8fF083Ozcu7wbevury0vMu8w8G1tryts7+5vK6vqKCop7atramxt5qeraKnoZ2rt7eppa++w7G9ubOnqrWzra6WlqWsqKCRjpKxxaeVjnyRlX2IkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuNkI+eiFqQlpeSlqWZZZijnrKllqKWrKyrp5ueppeYl5iVoaSopp+2q6m6vMS1pbS1y8G4qbassrq4rqi4ur24g2xuWldUVU5GSlNOSz9BR0RESEZHOTVGTTs+Nz5BSi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZCDh6aTiIGHgpyEg5WQkJSOmqKfr76uoca9xcTGxs7OztLKvru1sbq7vL7PtsS9t7m3srG1s7izrKacq6u4qqinr7CXo6+kp6SktMCwqqy0vsK5wLmzp7m1uLKulaWtr66li5OVoY10wZp+l5mFj5aajLGVmpmVk5OZmaWjlZ+blpqpnZyhoJqLjZCWnWBKlpyalZqlllSWsJ+vnJ+llK+urKaaoKWUk5mZjpyfp6KZtKmqs7y8u6uwssfAuKWrq62xsaOhsrK0pHFuZlxaTlBLRFBQUFE7R0pJR0hCRD45S1U/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1RRVdSc2JXRkiql5mgoqivmZGXh4unlo6IkoWfh4Sdl4+eoJqjpLXItKnGusPDx8rIyMzNxr66s665uMHBzbbIusG4tbqxr66ytKejm6qztKqopq2smaSupaSorLq/qKu2t7/Bv764srLDsbm9rKOutay6poicmKabdr+ghZmdjpOZmouvl6Gcm5eVm5+hqZ6ooJmaqpqip56YkI2RnYNudpKimpWdop6QrbKjq5WoqpeqrqWkn6Wpk5KZnIiUnKKelrGmqau6tr6zsq2+ubago6eopaecnKypqYxjZWFfUktNR0hOSVVMPUxETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5ScoZ+7r5mUn4uTqpuRkpOJq42Hop+MpK2Uo6O2xr20wbrCwsfIxcLNyMK9ubKvubTBwsq1xrHBvLS6q6itrLCjopmqtLqmqaarqp2or6ejqqq+vKesvLO3vca8t7W4wLG9wLOptberv6WPo5iRoqC8n4maoJmXnp6Pt5+pnKWjm5yhmqils6GbnaacqKqemZWPlJuLl4mMpaKUnaKeoLSvpaWTsKuZq6yenqOjqZGVlaCDkJ6enJWppKKhtLS6ta2otbKznpyipZqXlZmqoZ53YFxfXUpIRkdNUUlNRUZGQlJMSkFFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+fw6ybl6SXmamclpqaj6qWlqimla2tmaGrtsTCu763wcLAx8S+zce7vbmyr7izv8PItb+vvLa5t6ajqqytoKCaqqrEoaSoq6aeq6+soqmov7imrb2wt7bHtrW5uL+xv8G2tLO0r76jl6SXlJyUrqCRoaKlo6OfkL6lqZ2orJ2doZumn72imaOfoqmroZ2WjZWek56Hj4WNk56koJ21rKaclbKnma+on5qpnqCNmZWfhI6hmpuTpaSamKyxtrGqpaqtrJyYoKCSjpCWqJ6UaGJZYV1OSUdKTktIRURJQT1QSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGVjV0yimqOcnsWsoZ+snZ2uoJOjn5eloKepq5e2saOqsrXEw73Atr/Cu8jCvsrItri1tLCzs7fBxra+sLi0ubWfpqyqq52dnqWjwaWgqa2fpKmtr6Kmp722prG8t7a1w7Kzt7m+ssPAt7ius7W1o52llpKUoa6gmaKdqairo5rDramerK2bm56ZpqC9op2lmKurrKahmY2an5KeiY5Xf5aepaGguKqnk5i2o5+yoaCbrpaejpmUnYKOn5eVjqKklZCmrbKrqaGipaWVlZyYi4+Rk6SeiWFkWmNgTEhKSk5GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXEtOnp+hmZ7Dp6Wis6Gcs6eTqqSgpJ+tqaydu7CorLWxx8TBwrPCw7zGw7zEyr2vsbatsLSvv8W1ubGwubWsmqiwqamanaWhp8Ksm6yxm6qirrCppKe9t6a3uryutsOts7PCv7LGs7q3rLS2raqippaVlaSsop+fmqirsK+vvLKmoKmpmZmYk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWdmqKfp7Smp42YtJyjr5qem66QnpOXlJqAkqGVj46foZOLpqywpaahnKCekpKak4WLko2cnn9hZVtnZUpJTEpSQUNASUc7O0c/OTlOTVVeUlNKPk9eXT1IUEJMTEk5TWNdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugw6ikqrKhpLWplbKsp6KksqyuqbuyrLC1tMa/xMS1wMS9ycS1wMjCtau1qLC4rMDEtLeurLa5pZmrsauqmJ+ml627tJuosJutn660sqequrOnurO3srjAqreywry0xae+rq23taqorKGXl5KmpaKjmJilr7iusrW2oJ+opJmVlZOkoLeipaaWrrKypqqmoZ6bmpqWmKifoJihnq+yoqaNl66ZpauXmp2kkZuOk5eZhZaflIyQnJ6Ui6mpqqKnoJidlIyOmZCChpaJlJ94Y2hda2pNUE1OVD1DQU5DOjpJQDc3UU9dXlJWUUFXYFxCSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVKcGlWQ1dGjHlmQzukpJ2hpr+mqK+voam1qp25sKujqrS3sbC5t6+2uLjFvcPHvbzDwcbAuMHGwbqqtqStu63Bw7i4qq2xu6KVrbCtspalp5Cquamgp7CdqqCwtLKqqba1rLyssrK5t6y5sMK6vb6mw6uwt6+pq6unnpiZq6KioJGYobGvs6uxupucqaCZlpKXpqG3qaWjoq+xtKuyqKufm6Cgm56lnKKWnaOzsJqfkJOlmqCompWhnpWYiZSYk5aXnJOIkJuZlI6pqKefo5uXmpKGjpmLfo2WhY+bamhsYWxuV1BRWlRBQ0VUQDs7SUE3OlhQZF5QVldEWV5dTUxSTl5LSj5aZF5OSFBOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oaqvq6OxuKmltbOsoa21va6zuLy6vba2wMK/ycS5xMHAwLjEvcG3r7Woq7eyvL+/tKmusbael6utqK2Wp6iOp7ufpK2znquisbCzrKm2tLW9ra+xtaywtbHAusS3q7yvsbirraqjsaaepaqgpJeQmZ+zqrOqq7OanaebmpWNoKaktK6noq2trrGns62yqaScn6iknpWhmJuotamXmZKSn5meoJ6Qq56Xl4WVmIudmZyTio2Wl5qXpqWioJ2VlZaTgI+UhXuPkoOMlmVscmdwcl9GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTT1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FVMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSZoKSst6Ssqaaurrapr7S6p6awt8W3sba+wMG1tLrFvszFucK/ur+5xLjBubK1rKq6tru5vbSqrbC1mJinq6qrm6yrjqu9nquusaOroLGts66utrG5t6mtrrGota+zu7zJsqq1tLG0r66nobOgmqitoKWVlpqasqOtoKavlqGkmpqSjaKlp7KpoqeyrKq2pa+xta+kmZ2tp5qYn5mZrLijl5OQj5icoZiXlKuenJOAk5iNnZyalpGKlJOemqWhoaCYlZGTlXqLkIV7jIqDi5JrbnhudXtgRWFqWUlIWVs9e0pHRTZBYlRpW01cYEpbXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENeUVwuKkIvSkdQW0gzY1lVS0SZlqCwqLKpraWkrq61qbe0uKSrtLfJu7S6ur++tLS3w8DMyLvDvLa+vsC4v7yxva6nurm3tsG2q62xuJSXpq6rp6OxqpSvu6SssrKnqKOys7CxsbWxuLOorquxp7ivtbTDxbaptLWrsK2qp6O2n5+nsqCklZualbKep5ygqo2po56blpilpaW3p6KytKynsaeusLWspZmgrKibnJ2blKm4nJSOjouZnKKXkJiloJ6Vg5GVkJ2cmJaViJeQl5unnKOgkpWQkJZ2hJCHe4WBhI2LbXF3dXx+XEtlbFxLTmNcP2J7R0k4R2dXZVtNXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydGYUxWJS1CLj1FTVE8M3JrSkRDkJmlrqWtrqunpLCys6q3sLafq7W5ybmuwbzCt7OxtcLDzsW/wb20vb+/ur+8s8Soqbmwtra/vK+rs7KcoKewraWlsKWesrWsq7KwrKmotLmstLK1rLStqayoq6m5rbGxx7+4pLmvqa2tpqitsKakpK6jqZyenJuwmqKjo6ORrJ6koJ+iqqamuaWstbWlqquorK+2r6Oeo6iqm6CampKktJqPiY2HkaKglY2UnZ+TkoSOkpKdm5iVlIeYk5WZppufn4ySkI2Qd36OhXx8fYeKiXF0cn59fVxTZG9eTlpmXUZElltIO05tWGFbTWBiTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGRISis6ST8zQklTLD6Paz1ISI+bqqqiqrCkqKSztLG0tbGxoautvcu6rsC7x7G0rbTCwtHFxb7Asr7Bwry/t7zEp6y3rLO4u8Cwq7KtoKSnramopLCjqrGqr6ywrq6trLO7p7awsqmyqaulpaOtuqyqscK5tau5qKiorKqosaWqpKKuqqiinpyjrJWknZiemaydoqepoq2mo62suLGyoamioKuusKyen6eoqZmkmJmPoKeYhoOPioufoI+LjJabjo6Fh5CVoJ2Wl5WGlpOTl6ScnZyKkY+NiX9+iIZ8d3+HhYZ0c3GJdmxfWWBuY1FzcVxLO4R8Rj5XdVhhWU5jW05VVlVXUFxiXlNPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLklnREY4PEIwNUVLWDFAlFs+TUaUl62noqqynKmpr7asuLWuqqWrqr3Iu7C9t8KvsKyzxMPOzsO+v7TAwsS6wbTJxKyvt62yuL++s62uq6WnqrCpp6ixpbSuq7CurbGvsq2zu6S4s6ysrqern6KesLerqq26tqW1taOpp6ysqq2hqaemsbKkpqahoayWqqGUm6CmnqSiq6Sto5+nsbetraOlopupqq6pnaKlpKSYoJmWj5idk4GCkImFnKCMio6MmY2Qi4OMl6ObkpCbjJOSkZSimZuZio6KinyGgYKDenSAhIJ+dHeLpIh5a15gbmdXZYdkTkBnkkxEYnlXYlhSZVRNVlVVVE9cXWFVS01pV1VXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIZASEhElpKvpKOqsJirqa21q7axq6Wsqqm8wMC4uLO7taWyr8TJy9G/wbu5wL/CucG6wcSusrWxs7vAvrOxrqyrq6i2qqWtr6u5sKixsa+xq7WqtrWntLasrKSpqpyjnrOzqKiktLSgta2hqairqKunoKurqLm2qaqqqqKpoK2bkqmhnaCkoqajqp6dprWuqKaqoqOXpaenqpyipKOfmZifkY6PmY5+h4yHhJ6eh4SKio6NkIyEhpWimo6MmpGSkY+Sn5eYlouKg390hoF/f3h1g397eH6AiJ2Pb3FnZ3F4XGBziGpPXZhWSG14VWRWUmJQTVVUVVBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJRYzAyP2Y9Tlg/Qyw+TFRfL0lrN1BFO5WOsKClqq2Zq6WsrrO0r6qlr6mour68wLCuuK6hta/Jx8jRwL69u7zCvbrDwb+/rrKysbW8vMKxsrOqs6iktamlrbOzubCjrraxr7K6q7muqq61q6qeqaufoqC2raihn6+zobSqnqinqqOqoaKsrai9rqyuraGnqJ+rmZCvoZiioainn6ibmaqwqaOfrKKhk6Kjo6eYmqill5eZnY+Kh5WIfY2GhYSkloWCgouGjo2QhISToJaIkZ2Qk5CNkZyUl4+JhYV4dIF/fXV4eYB7dHR6aYGGo3VpXmVsgnVniIt8UlhwXkp4c1NkU1FeTU1SWWZOTFZZZVlGU2lSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTGg6NDhfPWFkP0YxQ1BbWytITzpWQjSQj7GgpKaro6akrKa0s7GqpLCnqri+wbuvp7mqp66wycbI0cK8v765vr+8ybzBuLCwtLG6u7jAsrO7rLisorSmp6yytrmzp6e7ta22vbC8pq2stautnKmvo5+lrKqnnJ6qs6SzqJqqp6mkqZ2jqaepvaqzr66dqaSgrpybsqOVpJykpZ+kmpqoq6Wem6qhm5KboaWdmJepqZGYmpOQioKPhX6PgoCIno+Gf32Lh5COj4R/k5uThZOijJSSi5GbkpWHiH5/cXp5fnxpd3x6dXFxfWiGeISHZGBoY3KFem1neV1eVkJXem1UYU9SWEtMTnF0XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTtFWj8qj5SxmZ+fqaWkoaukt7Kypaixp6y4wb21sKO5raiosMPJyczBtr2/tbe/usi2w7W0s7Wxvbi6vratubW/raGzpqqrsLW4tKuevLyossCzuqCvs7WqrJ6usKOcpaipop6cpbGmr6CfqqmooqmbpKigrbunrbCuoaujpK6enq2ml5+boaOcn5uao6qimpqkpJWWlJ+ilpuWpqyLnpGQkYyCi4GAj4F7mpWNiXx+i4aOjYuKhJKYkYeUo4mSkoeQmo+TgYd8eWt9dnl4Ynt6cXBxc3hpgXNqg2dkaGFvc41tYmlwYHBBXHhrVl5OUVFKSk1TWVZNXV5tV0RYYE9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDBCaFkxM1M9ZV9ETDZLV2VPKjwyUFs9I5KZrJmfl6ekop+no7ivrqKvr6mruMK6s62fua+rqLS6x8rIv7fBvq+0vrfEtsOxr7qyssC1u763qbm3vauktKeoqrCuubGqm7u9pLDAtbShrre1pqensbOgnqSmp6GlmZ6tp6ieoKmup6Cml6OooLC4n6Kxr6GsoayknKanqZqam5+jlZ2cmp2pppabn6iSmJOYnZKZlqGqkJqJjpCHfYh/go59fKGNjYh5g4yFiYyMhYeSmo6JlZ+JkZWCi5eMkX2Ee3NvfXFzdGB5eGlvcHFvan9yY3psaWZkYWaGf2BbcmpyTU1/aVhaTVBMSkhQUlFJTlxfblNEWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpoSCo+L1pZNSiXnaWYnJatoJ+hpKG3q7GktLSpqLnEtbKuoLesrq2wtcbIwLe/wbmwtL23v7u/r6u9sLS/sb3Duam7urenqLWop6uwrbOxp5q9t6StvLavn7G3sKilp6+xm6CkoKOkoZebr6ahn6Knr6KgopOkpKO3sKGmsaufrKOvmJyqpamel5qdpZObnJqdpqqZnJyklZWXlZyOk5ejqaGQiYqQhnqEfoSKeo+Xio2GeYKHhIiLjoWNk5iMjpaZio+WfoaXi496gHpwcndub3RfeHdkbGxsammEbWVyaWtmaV1kc4BfWmt1aVpJfV5bWE9PSkhIUlVGMjlfXmxQRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbDg0R0FmW0hURFVdaEUuOzJiVSwylqOhl5Scqp2loaKgt6quoLq4pqy9xbOvrqK1r6ytr7TDxLyzv7q3sLO5uLq4u66twLO0uK+/wbisvLq1pqKzqqeps6utsqKcwbalqLW1qZ6yu6qnpqmvrJmip5yjppSYorKkmZ+kqKmcoqCTpaCkuaikp66nnqWhqJKfqaKhoJmbnaCSm5yWoKGrm5uZoZSRlJaajpSTo6ikkIiKj4Z5hHyFhn2djYqLhnmAhIeIh5GFlZOSjJCVlI2OlHuDmI+Ld357bHRybGxzYXh0aGhqZ2ZvhWdnaGNmaWpgaWJpZlple2NgU3NUW1tTTElHSU9TQCEqaV5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc5ZU8nMp6ko5GOpKebnp6do7Wsp6q5t6esw8G2sKyita6nr6+3wMC8ssG2sa6ytra4t7asqr2zr7Kxvb+3rru7saWetqulpbSpq66gn8KrqKWws6qstbudqKqrsaWYnaqepqSRmaatopiepKmhnKKdl6Cdp7amr6quoaGenaGVoKafoaCZm5mckpmdlKWdrKKYl56Uk42Vl4yPmJqpoJGIiYuJeYV3goKCnYeLgol8f4SIhoSQhJaVj46QkZGRjZN7g5WOhnJ9fWZ4b2tqbGd1c2tjZ2RkdX9hZGZmZWpqY2pxWV5YXm1kYU5oV1pgVklHSEtNUlg+OWBsaUdCVFNcW0lJR0VBLjw/OUE4OVJHQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQWZIJTWbpJ+QjK2hmZiglqS0saKxvbehsca7ubCxo7esqq6pub27u63Asq+urbavs7izqKu5sa+utLa7tq+4va2mnbWroKGwpauunqTCoLKkrrGvt621nq2vra6imZ2oqqWelZuopZ+ZpaOonZqgnJScna2wprmorqOhmpqemZ6jmqSdl56Ym5SaoJKolaqnm5ObnJKMlZmNlJSZqKeNjYqJj3yCdIKBi5iFh3yJiYSEioyIkoSTnJKSj5CRlo6Qf4CMjYNvgH9meW5oa2pncXJrXGhjYnJ/YWVoam5sZ2ppZmxcbG11cWFUYmhkZVlJRkxNT1hRUVZhZYFUQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUllQyc0k6Kajo6wnZqToZqpsrCfuMC2oLTCu725saW2r6iupbe4t7esu6+tqqu3qrS5rqWztbGuqbG2trCytbqnqJ+2qZ6eqaKqrZypwJmtpK6wtrWtrZ+xrbCqopuco6yom5Wcp6OdmqmipJaaoJyRm6Orqqm7n6ikoJiamZ6hj2uilpiccYKWm6SAdpGpp56VlZ+RiZeZgJaKoI95hpSNg25qfneDcWyGi4Z9hIuGb15jYGeEl4Zri5CUk3V3i4R+g49/ZoaAaHVpZldcaXNuTlBqY2ZxhGdfZGZubGleX1+JkISGZ09LRDhFVGdeSkdQUFVVS0hTYW90ZUZbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFQZD0rL42kmYeVsJuck6Cbqq6ro73Fr6m3wri9vK2mtrClq6S4s7KzsLmtqqestKawtaOouLa1qKestrKutK2zoqmftKueoqScp6iarLuVpqWvs7itrqWorquspaGenKCnppuYoaalm5unp52TnqCZkJ6oqqO1sKOjo52Wl5iXo4ihjpKah6GHlJ2hf6V/pqqekpKbkoiEcniNjoSIoXaIjWmXiGZ9c3ihb4iHhH6Ne3+hoJ+ZgHuHnnSIjnabimyHgYNtaGVjemxxYlSGbWNsaZhxWGpvboZYXmlba2pbiHBteXKGaIeEWl5GTj5GXk1FUlZWUVFSV1RnXkxYSlJSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiMppeDnKydmZmdn6qqp6m/w66xury3wL6qpLewqaymsrWur7O2q6mlsa2ltbOcrbW2tKanqbOxrbKnr5+qoLKon6SjmqGjnK61laSlpra9pqynqqqsqKaioJigp6OZmaajpJicpKmWlKKclZOjpaagt6SkoKOYlZOYk5yIro+YlImpi5eim4WxgKSsnJOZnZV5gtSof4eUwZvHeXexpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQeoFslrGrsHloa1ixrm9labySvG5oeW1yj9h+U2pjtrJ/gXGUdZqhqpBXT1dhT1ZORlRbWFFQUoxcV1xQQF1FUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVxdNDEhjaaTgaapn5ecnaWssqiwwr2ytcC1t77Cq6a0ra2pp6+zqq+2tKioprWmp7ivnbOytqqlpKexrq2xpqqep6SxpKKhnpeboJ6vrZWeop+0uqKqqKGtrqWinZuaoqifmJuooJ+YnqenkZynm5SdoaeioLCjn5+jlpaTmJKZha9qaoqNqn5nhJWHrWVxnZyUmaWVca6hpH53u3xroY92sV9qtFulgGackWBmgXpmf2p4aqllvnJnpox2smp8sXh0kpNjbW2nbVuEoEVpZ4eWRXWcYH1ne6Sngllfi6tpgZV4emqnN0qvW1dUbGNbS05XX1xXVjtOiE9XVi9JVFRKREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5GilYKsp6Weo6Spsbess72+sLfEsri6wqepsKuvqamwr6SwurCkpa6zo6m5qZ6zsrCjpaCqra+rr6ann6OisJyjnJiVl5ucraaXm6GetLOhq5uira2gnpmXoKKpnJmepKCcmaGnpJCdo5qXoZ+sn6anoJufoZaVkZeRmoW1m7V4hamZtZl3h7Obt36TlZWolH5rgaZ6goWIkpSSd6tna7FbrHuPh5R0iHCPhoCAiJCXeIOCi5eMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinS5RoW5bVGtnYExLW2RYXFpCPrB4V1hBI01pRUNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o5YVU1MByVn5SIs6Wmoa6pp7Osqbu2wrC8wq24t8GqrK2urqausqmhr7yqoae0raSrtaWmsrOno6KeqKqyqLCnpZ6fn6+Wn5mVlZaYn62impqkqLWvoamPqaiqm56VmKClqJqfnKOfm6CjpaOVm5+Ymp2jq5ummp2boqCXk5KTk5yD1ZOZuXCwwn7GhnzWlJu7fJmVpY+NnI2ke46HpIKlgnqseY+dVq97iX6farlauXeGhH2mgpN8mHqqeY6cj3uxbY6EdJC8hW+UUK+nxYpRoHpjYKpic3KHbJeIYFO1tMiGgIl8Y6QzQp12XVFqaGNQQFhmWmRhSkhNbEtbU09ZZlpDRD9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFRNzIlm6KTmLGnqKWzqqW0qKS7t8GwusCxtbW8s7WnsbCjsLOmn662qJuoua6jr7Ggs7SwoKSen6epsKi0qaScnZ6ql5iXlpeVlqGrnpqXqK2wqaOfj6yip5ael5yhpaGXoaGioZuioqebnqGelZmbpqCcp5Wcm5+hmZCSlZGdiLJuaLVxq4dvjqZytHNytnuZmKSMj5yNon6RoKV+sHaDkdLRdlyufIZ/pG+bqqZrhoV9rX2XmY97sXOTnY54s2WWdISeb55mlFLIi1rCXJ95Yl+tX3Zzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPal9saU9VRkk5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyL6GckaWvrKSqu62mtKWntru8srq/t7a1urqzpbS0obGyo5+ssKSYprqupLGxnbS4qp+mnaKqpLGnrKmkmpyaqJ6VlJiYkpKjqKCXk6aqsaailpOtn6WSlKGbpKaflJqmpqGbo5+tmqCenZCWnKKenKWVnZWaop+WmZaSm4Wse3eodqOOiYepb62KgqeDmJmhiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9d4V/j52GmZl3r4aKkZyHd7RhmmWagYKUbJJasFhLmnWYeWZgrV52d4dnmIhrXq93lZ6PeGw1eciusl9BVG9eZ2BFUGxfcW1WVU0uZWNpU1lROkFEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6ODifnZSguLCXtMGtqLOoqbK6uLO4v7m3sra9taW4s5+0rJ+gqKuflae2q6ixsquutKSbqaCgqKG1pqaqo5melaWhlJOcmZKVoqWak5CnrK+moJWZqZ+ij5Gimailn5SZpaidnKWerJ2hnaCNlJ+bnqCYmZyWl6Kgk5iRpp2GqX19pXihj46DqnCti4GnhpWgoYmXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pjcnuBa5iHcV2sWomgjmtuZU9KQ6FcWkx0XmJlTVphX3JzX0pVNkqak1lIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4wMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT44oZ2Zmb6rl7TCrqutqaW0sLixtb+5urOxt7yqu7SfsKSepaennpSqsamwqrWsq6+hmKGgpqSjuaKjq6CXm5GioJWUn5qUmJ+gj42MqbCvpp2Xm6imn4ySpJeoqqaTl6mnnp+ho62koZ6hjZShmJ+gkp2XnJWeoZWWj6ubj65tcrRyqYx2iqZztHhzs4CRpKKSnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZOIrWp1s2GdZqJvh5Jql1ytYE2hfIeRUnOjbHl/fm+YhnBcr1Y8nHdmVG9uLlynT2JSa2VhbFliXGBwe2NTWVE+Pm1wM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs8MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eODFCOKWam526oZuywK6tq6unt6m4r7TAtbyxr7m4q8G2qaqgm6akoZ2SqqqntqOyqK6qoJecp6Clq7mdo62blpmPpaOVjZ2hm5mcn5GTlKu2r6eZlJysqpeMk6WZpayhkZeqsqSgnqirsJiho5CZopegm5abl6GTnKqclJGrmYfUkpq7c7DDgMOGftWWm7h4iJCXjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIpumohxbo2kdL1dd31bYXm8a1pWW2p6XmpgZGZibXdvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnmp6hvKKXscOwraqqq7Gnua+2xLG6sq67sK7Bsqylop6joZybkaqkqrKktKetpJ+WmqqZpqy4nKKumJWhkKWgko2co56YnZqQlpOvubCrlZejqKeUkJaknKSsnZGgqKufm5+po7OeoqWOp6KUoZqcl5WkmI+woJKVqp6FkJm2gJCRjLiVeIKTm7V3bmtuc255j4SOiXOewbu9mnuBsqhwf3SRuIN8hoaLh417ioaNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtXRycHe2jF5/eX2JaIN5bXlii6xwdYV/WVunakRkWVNmYGNdY1FnZnFsdUJOUExEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPTs8p56goL+llrTDtKyrp6yrqbuusMavtbOut6e1uK2po6KmnqCdmZSspK2qprWoqJ+blqCjnqykvqahq5eUnZCim5KPoqiik52XkpiUsrW2rZidpKSii5KRppulq5uWqKSlnJqhqaano6mhkq2fl6OemJeXnZ6PsKmUnKeijmp+aZyneIlzfpqPdHplh3q+vsC6bpKDcZSGX3JqWl6aiWFkh46Va2B/lWNtnHZilGt/mpWUZV5gY3GbimlyjH2GlWdqfnJ0eH19Ylt3dIFoUFxug3x7i2tYbHqCcklKb4VwTXRNRVdcZmBMW1hnY15PW211aXFST0RFTTtISTxMPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqifqKHBo5u0urajraWup6i1sazIrLCzrLWjvrGypqCjqZ2jm5qZrKeupKS1qaWbl5Whm6etqL6nqaaVlJyVoJqTmKWpp5GekI+YnLCyv6ybpp6noomTkamaqKSam6ufo5mbo6etop+qopqwm5WmoJeVnZ+dl7ClmKKomZyRnZyjpJmno5qcmpqakJaBZ219cXeRl5SRhYq1qo2GmJWOioyXl4eUlYqDkpORiY2Rk5iUmJeaoKKanJShnY6CeqWFbGp8kHyAdImKgXGCeHl2doqAe4lqc4F0g3Vjd312a3B7bWBjXHBnTVlZZWpfV1pvem1tZlNPRlM5T1pOUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCyoLOiv6KksbK3oKqlsqelsLWqyautsaW1psCotKCepKWcpJaWoKumrKOjtqygmZaWoJetqaXAnquklZKcl56Yk5Sin56ip5ORmKinssOvmqudq56PlpapnqqcnKCsmKGanKKlr6ahpKierZiXpp2ZmqGenpywoJ2ippWYk5iUoKKWo56XoI6WlIuKjY6WrY98lZuCkoKLqqiGgZiWioSOn4h7hJCGhZmQh4aJlY6bl42QmJ6klpqTkZ2Nf41mobOvhYmEdnqPinx2eXpvZ3mQgYCJa3WBeYhyaHN/enaDiIJrdGN5ZmBpZGJkZmpZa3twaWpcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76sq66ysqCqprGtoqyzsMWwqq2js668pLScoKaioZ2Zl6imqaakprO1npWUnZmZsKauvqCro5CRnpqZlJGVoZyXqZyEnqmsorPIs5+qpKuWlpeap52om5+kq5Sen52gqq6ppaOroa2bn6ChmaWenJ+dr6OZn6iTmJidkaWZmKmempdmg5J8ZX6OmY9jeY1saGt6kaSra2WamH5nhYplZWloeo2hjmtojJeRondraouYo5+Zc2xueoSMh3pYZV6FgV5siomAdlxoc3d3kYCHgm54gniAc215g3R3iIiOg3tqhVlea3RkXXOIaGp8cWxjXVFNV0pkWEBKND1GNz9GRDcxPD0/QUM7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsaqlqK2usKaurbC9samopK2vsZ+tl5+jnqGamaarnKyjpqipsq6elaOQoq+mtrmlrqOPjpqhmZOSm6CZmaWWe6Wsoqizw7ekoqevnp6VnqOeo5yjqaiRnqGeoKqvqqujqp+om6afqKGslqGbpbCkmJyqlaGempOlmJ6rmZ5+voOIcrRyhJ2GrWh4ucS4cZOio3ummJlzqoJ8y8DAu3GLooeCn3yVmImewL2Clp2ejZ3CwXuBe5KNmsPAfWulsW+MgG/Ken+bd5GDjoF3eoF/eXF6f4dxeIWMk3ltdpJiZl94ZF9kgGJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmolKOvqbCvraayta+qpqamsaufq5iaoqCcm6qnop2roqWopaS0o52ik6atrLezp6+ikpGanaWSkaChl5yfnYenq6Srrb/AsKGpr6mXkp+dopmio6qjkqChnZ6trqispqOip6ClpZ6tqZGkm6mtqpydqpysoZaXpZaho5icf86UeXqkgXmVlptfro9ejqeBoqB8p5WbdKuDgK9eY42peqeHhaB0l5KIs2OCq4ahjo2zaoSudH2Wh7hhgq1Zo81uj3V72nt/mXB+iJN2f2V7iHZ2a32Ibn6FkZJ+bYGOYHFrcGdgX3hkW3BoamRmYFJUUldeS09DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcLAv7W0sLiYnpGkqqittKumsqytrKSrp7CqoKebmaWXnKKvn6CeqKejpaGfsKybnpWnrq2xq6isoJSSm5+lk4+fpZeeqKOerqSrsKjAxrOoqbGulpKdnKKXoKmqnpShn5ydrq+nqqmbp6ekoauSrbSWpqKrqp6jp6ahsKCSmqeaoZuUlJGXoHCFjJd1hKiHcbF8nXGsfqGegaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIooyRi51+q3uJk4+fgHutVpzEeo9vksF9gZVtdXCMbWV2ZYZvYXducm+JipGQg22Qj2RvdHVwYGdtZF9vaWluZmNXU1xhWlJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytJ+do46jo6Gtr7auqLCnqaqorqurp6KknZmilZ+mq5+ipaCoqKKfnbCsl5qWqKevrKinqZ6XlJqjopKUoa2bnaajr6yjrLWqus2xraeurJaUnJ2imJ+urJyWoJmdnqmxqampm6upo6Ksm6+xoqisrqaZpquqqrGikpejpZuUkoWkaqR1iXqpdHqycIKliZmMcYigmoekYGBSrIR/roObdq6BpoaGn3qYloZ7ZoCjiaSZhoGjfal+gZSHrl58qVWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojYyYj4FtmpJvbXl3d29sZmRlcXBme2hjXVdgalhYVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys2NioxUEtMIyBBOUQ0LCfDydbVwKGZq6ihr6KesLWwr6mso6imqqqrqaSmoJuknp2lp6ajnKyaoquhpJ+vop2akqqktbCvoKmbnZaUp6OQmqKon6CmnLGmo6exrLbIsrWqrKqVkZycoZmfpbOdmqGUnJ+nq6ujrpqsqaKhqqOzraKqs7Gim6qor7C2o5OWpKeYm5F8qmyehId1q3l8sG+CpIuJn5aVn5SB0ri0uMmAgbJfX5Spg6SIh6B5mJWaeKrJdJmjlaepkJKbjH+biZrGxnhloYKlc4GfjoJ9r15wtWOxdUujhm2nR4KTZI+QnpN8cJeSf3B6dHx7bVtmanJxZoFqXmJZY21cXllJTUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz4tNU9UUR0cOzxGMiwkp6TBxrmtqbOurKWinLK5rKqhppuopqqsqaagpqWYq6OfrqudpaCsmp6opZ2mtZ+il5OoqrayrJulnaCVkKWtkZmcp6OgqqeuoqOnqrC0wrKzqq2ok4mXnKSaoaOuppehlZicpaarmq+draimnqyjt6yhsrmvnpuvp7O0s6WUl6ejmZ+Ogp1OeJqBf596hKN8gqSEh6efnJ6ThLh7fHm5gn7MxsK2eJuhkYuffZqWl4p2npiKpJijqH6whZyFnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkaOXfH6SkYp0enOEfnBbbW53cmqBb1pkX2huYmRdS01RVEJJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamspKu5q6+gnKGss7Omn6CVpa6trqqnnaammqOnobKuoqimsqCZqaSUorWio5WXoam0uaSbo52jk5ChspmenKemoaKvrp2kqKK1ssOxraqtqpGHkJymnKOknKWXnpmZmaWkqJquoa6lppewpbytobe3rZ6etbK5sbOnmJ2voaOeho/RtcO3eYeOhZGTj4CmeJSid4ygkoSlgYpxqoaEtG5yapmjm5WKn3yYmYaHj3OvgqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5OmmH6MjJOKd3x5jYFtaXhpeHNuf3RdZGRubWZoYEpaWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWTc42Krb+/u7q1npeopK21oaOZlaOpp66qq5mlop+loKC1pqKop7CjlKujjqSto52QmpqqtLSknaWdqZKUl66goJ6npJynnLWaoKqjtqvDsKmrqaKMhI6coaCmopWam5yZmpmmpKaYq6etoqWbrae+rJW+sK2fo7Czuqy0p5uosaSnmHqokH18sHeKgaSliJxtsm+hh618oY+DqJWYgKyIha6Fn5SpoKGWhp+AmZWAe5J+q4CdmpaKqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrr12la3GFmV1gW4ygbpWRppmDlI2Wi3p6gpZ/a2x/Yn10bX96YGdlcW9oZ2hDWWBbPUtUMlU4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaV1NQT05JNzA1Mi4qLEFUVlZWVVRVVVVVVFRVVFNUVlZXWFZVVVFIRklKIygovZKahKnGwrfBtJ+brZ+uuKWkjpuko6Cvr6qfpJ+drZieuaCiqqCvqZmtoZCqqKSWiZuQrrCspp+nm62YmI+soqGdpqKapZ2tmJ+oprapwK+lqqSfi4CNm5qgpp6SlZqalJqapaOjmairq6Okn6movqSXw6yqoqGssrqrrqegs6+pqph2r36Qi5yFh326rYqYZbCMZZWtfaGPg6aVmoGsioSwhaWZpKGhkIWgW2xqgbNgf617e4KAsWxnbpmXjIiwW320W6SDa8iiZZ+Ae7xZdrVasn1Sr4B6rFiAoW2Yj6iaipeQlpZ7eI2cfWRzfWKDd3SAfGFqZnFuZmVlT1VjW0JUXj5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFBSVFdaXl9gYGFiXl9cW1hVUE5KR0M1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjnK2mpbaooYuaoJ+ds7OpnqOgnbSYoLOoqqudr62dq5uVr6mijoibjq+sqaeip5muk5mPqJqinqWfmaOjpZmeo6myqLyvpaienY58i5qVoaCZkJKam5KZl6ieoJioraelpaOlqbufoManpamhq7S2ra6nn7ytrayVgamSo6+Pm4CGpJeYkIGAuMO6g46dk4Wnl5yCrIqCr4imm5qlqpB+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGqjgW+rhG2df3qysMeDaquwva14d6K+u3SAlo6mnI+akZaceYGQmnljfXpkjGZ5gntga2VramJQYltTalxAVGFCTik9OjQvHh8kHiUyIB0kKDA0OTY2Nzc7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbO0sb+5sr2zop2upqWzpp2LmKW+qbexqKG/pqaym56xnLmonq2upaaVlLCsl4yDm5GupqOsoaScqqGYi6OSp56onJqhqaKZnqCrram5rqijm5eTe4eZkaabk4+RmJiPmJOpmZ+Yqaigqqaho6u7nqnFo6Cvo6uztauwqqC7qK+vmnN1qqS3hmWJn3BnrY+Kj21vd6SQmZ+Bda6ZlXCPi3GVp6ObmK6kcm1tbWWKeG9tgplxgHlpcWlniZaVmHFoaYSGZ3CGZF2JY2pvWV1nfnemYGJxjpJvZmSAjZKOopiXmJCVnnyHjpR1ZoZ3aI1qeX55ZGxjZmxiS2RYSmtZOlFlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6q6ubKzq6mirp6jsqmYkr2xw8i+tqqewKuso6CnrJ+6o6StrKymjpauqZCMhZWXrZ6mqqKfo6OgkYykkqeZqZmWo6qglpylpaevuqusmpuSknuElo2ll42RkZiUjZiVp5Sel6iimrCmnqKsup+wwaeks6assbKrraunuaSuuJaKoailtp2JlqKXh6makJSdk6qzmZujq6CylqKhnaCinKCkoZWrpoySkoyHkpyclJCak5iQjZWGgaSZl5WNi5OSio+GhH5nin90gnZ0h4xxp2x7lZGUk4GBj4+Pj52UoJWYlqCCh5OMcGiPdnCKd3Z8empsZGRvY1VgWEBpW0hjYU9aK0Y9KyYhNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRGSktLTVBQUVdUVlleX2FjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbeurqKwpK2foLWxkI6rxbzEu7iqoqWdm6WdsKmjtqedqbSmp5GYrKKLiImPnKeWrKShmaeenpOVo5eomqmZlKaho4+ap5mhtbqoq5makI18gZSLoZSKlZGVkJCTl6WPnpmon5y2o52nrLenr8Guo7emr6+wramps7mhr72Zkqajpraikp2mno2pn42Sn6Osr5qho7Gor5ekoJyjqZ6enZyXq5ySmaGbk5CWqpmNmZmWkJWekYmgnZWUhZKMkIyUioB+ZoyGdYZ2eYiDc5xqhpGUlJGKfYyWkpKYk6GTnZagg4eXhnlxlXJ5iX9xe39qbmRfcGlgW2BZbWNQYGRQWzpHR0Q9Mj09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWNhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaetoKi1qpCQnaSzu6+srKKjmnqdorGkpbColpu4pqKUmaqcjoaKiZyjkK6fo5aooKGSl5ibrourlo+omqiMmKiPnrm2pKWZm42JeYGTjJqTipWRlJCNkZaijJ2eqJ6fuKR/hK+1orCvdKS+o7KgeHqfqbK7lXatpJ+KgKp+ZFxidp+OpJ6El35uk7Oco6euq6Jlnp+Tc3mZl3CAmKiXbH+ip4llnKWckZeYlouRm5GGnZqQlYKSh46OkomFd2uPh3aGcXyGgIBhaYiLlZOLW3aVkWdokI5ye6WYmGR5mIaBd5dpg4qCbnl/a3BlYHZva2toW2ZlYmJvU1s+Tk5OUkc9QFRCOTEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJGRklLTFNUVVlcX2hmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mm5amo6GwsayrqaWoraOnraSSlqu1r7Gmmqqmq5dzjJyvn6iqppSWuKCgj5yjnZF/iIibno2rmqOVp6KejpeRnoV1rpCIppqnkZajiJu6tKigmZiLiXV3k42Wk4qUkZCUjI+ToI6an6aZnLKWgIyctZ2zjJKPvKehfqeieqKut4GOjqaehIuFj7Gpr4yJlqOaeYGLrIacnaKnqaiHlYaYdqWbeoebgZemgoF7nLF6ioWgl5mUmJaBkJaWhJmZY3mHkISNj5KKg21wj4d5gHGAgYV/hnSGhJaSeJZok3SgmnR9mYOgnIaYfpGJgYOYao2MhWt4e3FwZ2R3bmlsa1tla2plc1teSVRMUUBFNS5ZVFU2KSEwOT0+NjQzNTY4Ozo9Pj5AREg/SUVKS0dSWFpZW2FhaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyYo5+mrq6rqKygqLCmp6mlmZSuxr2woZamqLWej4Ocq5ymoZ+NkL6emY2fmqCQfYWOmZeIq52ilqChko2TiYaAkaiOh6Kco5OWnYafubKnnpuSjoVwdZCJlZCKlI+Pm4uPkZ+Slp+klp6siJ+0ibSarYrKh6quiLeFjbCDsa6DqY2mmI2dfKiPcnt3m46mlmiVpHm0i5+epqiSmcKBf6uImKFxnoCZpH2XhZWxgKF8oZSgkJiWgI6Tm4qXkYt8hZOGjZWTiYNtc5GFf3pyhoGEfIR0hYKXgY/FZoCph4+ja56DoZmCmYCLjIOJmHCOkoVod3R7dmdodXBnZ2xeY29sZ2xYZ0ddUUwyRTQ2TWBjNyYzPERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWV1jZmhnYmJiYmRjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5sKqrppqUoKOkqqOWpKm2o69/oKecpZ6diZO8mZONoJGdkHmElpaRh6uZm5uaooWPjHebnI+gkYiepJuVmJeGoritpZqcjIx/Ym2Pi5OQjZCMjZiLkJGfj5OfoZmhqH6hp4etnaCWro+enZ2RhoGgjauvhqSNqpqMmn6idoCZk2qBq3VNq3iHjZ2Rm6ingKqrfYOhe3qnaZ5/kmtnl4aXtomefW5gZFmDln6Me2RoinKZfXmVbF17l21fU3CEXF9seYNgWWWCfYSBmHGnqmuDo25ypXCfg55pZZ9sW22Je2VZX4N/YldQb3ZlbXRyampvXmpvbWxpWGlPXVdFOUE0R0NeazQsSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKhtryrrqKZl6Chpa2toJyttaKokqCfn6abmY6YtJmQip6MlYt1gZSRjYqmlpWYnp9/koWGrKSHnJGKmKiXmZqRh6WwpqKVmoiJgGluiIeLjo6Ki42Si5CSooyTnqCcoqV/k4GPo6GUoHeclo+ng6Gnf4aprYWleYp9hJp9onByk4eVep2MeW2HnIyZkJuomo+HnXyConN2pmaefnakX5h6fZJzom6Yt7S6c5KHgX+1qGSBxrh7cJW3i3GAm6Rjc6yrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN/pF+dmbOVcHyXnrR0c1uesoNqYm9zdXFob1hrbHJzZlxpXmJLRD1ENVFBWXEzPVNHX0pSPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWldgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6CNpLi1rq2gm6Kco6Olrpybsa2sk5egmKCkmZqTnqubi4iReIuFcICWjYqPoJCTlJ2XfZCJjqigh5iPipGik5uajIuoqKSej5aHhH5re4d/fY+Ng4uQkYmPlKCClp2gnaCfi4l3nJiijKByoouIqYicppCWqKt/rox9eqCZeqOTeIBzloeMnH2WoIebjpmbpoaiZKF8iJaQm41snmibjW6amXuAiqd9cmhzqYKcgnOqZ5SaXZuFdoSdaKpqgLhmXKhwgZxhlYxep3Z1iYp/nmiadYeTkpiOf59umpBsp5lcqH53u2t+qluOhF20Z1xucXl3a2lbcWp4eWJfZlhiQVBFTjdWQlJuNEtaWl9OWkNAMTUxOzs3SD86Q0dUP1lSWV0+RGJeVmBRYWN9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtpuoiWOUm6y6srCsnaacnKifnq6bnbCoq52Xopmhn5iWlqCjmYaJjGqIgHF7l4iLlpaEkZSYj3qKhJaknYqUj4WLnZGcm4mPqKOgmYuRioCAaYGGeX+XjHuIjo+Ij5aaf5Oin6Cik5hyaJ+Kn4+McJKMgamImZ+jqKCofbCto6K4l3ejs6Kjf4iUeJ16q5p/oo6dm5eJl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8mnycmX5zqlpdb3uWi3ieYkx+enqFY3mXQk2fWaJqcXyObYGJhJl1m3mHibGzf3+bk6d1gJ1tcXyUb5lyaqRdlXZIZWNgc3B9fW5lYGxodnxjZGFRXlZdVFZAWUVRZ0RTV1tiWF5JRD1COD9COklFOExEV0FWUVtWREZiXFpgS2BtfnFFQzxVX2JaZWpWZ2htb2JmZl5hYVxdXmFoYl9lZHZsXmVnZmtkZmxpaGtpk52Asa6ZhFNfoKezubOzqZqijJyrnJypk6GrpKGoj56dnJqZlZihnZaHhol3hYFueZWFkJqLfJGTlohygImToZxzkZCBiJiUn5qEjqicmpSKi4p8g2yFhXGBoYx4hY2IiJKZlXySpKGfo4iuhn21hI6enXullnqpgpadkIqhnX2naHZtfpl0oXNxfJ2FmG+Tgq59pIOmnpqBo29eqGd1o2NvpWGc05B8epl4cnNjo4WQfqJyoo51a4+zi2CCmIlzqrKovH93g21+vqaptF6cbn1xl2+Bc6JyXaNndKZhaKZtm9SZfIObb3d5l2ubeneXc22ppGdgZXlwf4NrZ2ZkbXV4Z2BiU1tlUVFiSVdJVF9XU1tlalxkUEVDS01KS0JKRThQP1BNV1NYT1JSYGZlaVJjd3l3SUZFY11kWmhpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7GrVFxLfqmvsbSws6OcmIWYqKCgo42kqKCYqYmZl5iTmZKSoJiOh4V7cH2EaH2PgpSagXeRjY6Jb3+GkJOSbJeUfYiQkaOVg46qmZSSioWJeYN2h4Bugp+Gd4CThoiZopd5k6Kkmp+Js6Gitot6rKekrqVwqYGakIWBnJJ8pICimYaYcp6Eoq2uiZeLf4ykjZaDrqKUdrW2tcmhc5SKgZ9gnZepbXmVhp+adaGHd6B+kZaKgG9MZqOScJqHcqR7eXRhg4JsfqBrcWRgnHJ/dJdpe2mztbTGpnOYfnudapubq3WDmmx0d5dpmnp1mHJQRH2zXmp2a3iHZmpnYnR0cW5WXlRZaE9SaElVTFlSVV1oa25WZ1dNSkFKTUtISk5BUUpQZGNpbWV0cnN+eXtudYl7e1RQT2xeaFtraVJqaGlsZ2xmY2VfXF1cXmliZGhre19dZGhjamZvbWVpbGWhnImwp4RmP5Shsquvr7Wio4+Al6mioqWMpaednKWCmZeWjZeQj5uSjoiCeWp5hmWDjH6WoHl1j4iMgWmEhZKDjIWdjXqMipSlkoOXqJeMkIqBiXqAfYt4cJChhnmBlYeJlqCWf5SlqJyWloRnbnicbKJkfHGld5yYcGengZeMe6V6n5aDl3KedoGJlJaPuW6QiqJifZmilYhtcmmranWgbW6mYJtpi5BoloealXWigH2aYIuFjHVviGJooGWefmmadW9jZoiCbnKiWl9bY6FuXYmMb3t/c3JkpW13omRnp2iYc4uYbqFvU4iPb6BfZadUi11UmG1tc2txgW1waGt4c2tvUlhXVmZZU21JWE9dSFhpaHNqWWtWUVJFVlxMWFJhVGhqXnd1enxwfHxyg3t/cnaNgIR2XlFyYmdicGdQamhoa2xuZ2RnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKWZpnpldG2Lp66kqbCxpp+LgJernJ6ljKKhmqKigJWYk42aj4qXkI6Le4dxgIhoi4t7l5pzdIp9kHtkgoeVioqVmYJ8iIWWpo+BoauQhY+Jgop9gICPc2iPpoR9hpSNiJigjoiSqqediaZ4lpx+pYmWjLKYnpCDr5efpXiWiHqpdKWPhJpupKKMkoSMg7xufKWvgoaGh5OWnJ98pXpxqJWglmeefm+rY5aKlZJ3qGypooGJdYeCd6uRpohrkbBrdrOMqWuKhm5tn56SlWF/q4uqdoB/jKafd599haWVnaBpmod2rGeerYy3c3e+jaSTWYOmjathdXJzb3t0cWJqfm5obVNWW1VhYVxrTVxSXUldbW13YFtxWVtgWmdzZW5vcWNxdGB3en55cnmDc4R/gHt7jIGCgHZieGRjbXNkUmxnaG9scmlmaWFfXlxia2JtbHpvXFxiaWJsandtZ2xuYpWmqp2BgJ6klqmqnainrqOZiYKXq5qepImapZ2pnISMmo6GnJGFko2LjHSGeoiEb4yEfZeTdHSGcpKCbX+LkoeGlI98e4GFl6SNf6WljoGNiYSUdYKHkm9si6mBg4uUjomcn4mNk6ujoJCAdZSXiH6BeZSuo3+Bm3GPhnmQjIR/e3KmjHF9fXqXlpuEjnh7fn6IlJWTinaQmJ+gg3p9iWyMhVt5eHF5cGhufpKJcX90go+Uk3GFhIJljX9fgX+Ld3VzlHVveW5uh22Ehl53aXiNZoGCho6pm350fJdqiYhwgHZ8hXZtbGeMc3l7mHiEW2tYeY9obndycW93eG9dbIZuaWdWWmBXXGVrY1VhVV9RX3B4eWxrdmVqa2p2fHFydHNhb3Vic3uBeHV5gnWAgH+AeIuFg317bX9sZHhuXlduZ2h1a3hqaWpkXGBaY2plbHB1blpbYmtkbGx5bmhsb2GOlLmpp4uhopqmpJmknKuioISEl6ySnaCJmqaaqJiCgZuKfpaTh46JiI1ygnyPfX6OhHqXj3Ryg3CVhXt9k4uGhpCFeH5/hpiijHumoIuFj5CElYKGjpd3coWqho6SnJCInp6IjJuooKCrg4mOlJp+fomWraiPk6aQeHCdkYN7km9+qIVwfZVxa3B8gZ+Lf5KOjGhtXYOLjJubno5zlYuIcXRrgnZzgFlyboeQgX1+jGpdamR7hYOIgF9peHube4KLgnaBhoJoeYuHa2FxcoN3X3OMgomQp5WGZoyPg253i4RwhY15b2VnZHqDepZbXGpnbnZbe3h3dG1zcoJmXG2Ka2xiWVleWlhscVtfYFpeXWZ0fnt1b3Rja2tqe3xye3h0ZG10Z2x7fnZ6fHt6en9/fm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtoa2pxcm1XW2VubGdzem9oam1gjIyqsaKQo6Ganp6YnpmooqF9gpitjZ+Uh5uikKWVf3uXhHySmIiIhoaKcnyAi3aFi4GElYpxb4BymIaEfpKEg4aKgXqAg4uano+CpqCGeI6XiJWLi52XhIN6rYKRmJmUip6dh4ihq6CioqOLiJObnKOZlqqhp6agkpuIl458eI6OhKd+f5KRkpOcsaablJ6QjbKTmISljIyVm5+JkJuCiZGKa3yNdndlgoWQinyJnYSHi4+IiICFhJB3fHl1mqGIhoqfi4WUf36MgYB2cHSGhH94iIeLkKaQhIWNiIONkIx8h4qIj4F2bIKEfHmZanJoYXSKcH16d3Zvd3SBXV5vhmhuX15aXF1TaHFVY1tcYWxodXx8c29wZGtqaX97bXh/cWlvcGxmgHtygoB4f32AhHptg4yGfHp4fH16g3lOZHZrc21wemRrZWJiYFt0ZnBmcnJtVV1sdG1oeXpxZ2lrZY2InbqflqKhmJWZmJSZpKCee3+Zq46ejYWfnIqelnx4lIJ7jpmJhoSEhm14gIBygYd+iJOEbWx+epeGhIOQf4CGhIZ8h4ONmpyShqmeg3KKj4WSkYudkX2Ne6qEjZKYlY+cl4aGm6egopqdhoORmpmZkJqmoKadnZCWgZGKd3yHjoSle3yOkJGGmKmhnZOcj42qjpGAnoyJk5qego6XfoaNgm94hXF0YH6Cj4Z1i5eAg4+ChoR+hYOUbnl1dJKii4yFmoSEjXSAinx8cnJ7iIR7eYyOhJOnj4aEj4GEi4qKd4WHiYt8b2t+gHttaGxtZ155f2h8e3Z0dXV7d1xgcH1udWBjWl1eUWZtU2VaXWFqaXZ5fnFrbGRrameAf2xzgGxsdG94boR5boeAdoKAfYR2coKNiH57e3x/e4KKYGl7anVoaYJkamNgaVxkdWhvYnVubFRjcXllcHp6c2VpbW2Lip+3mqGjn5KRlpeLmp+fnnt4naaQm4qGpJSLmJl4eo2Fe4mRg4yCgYJtfH54c4CFfYqQfGtofYGXiIGIjnx+hoSHfI+Aj5qbkYimnH9wi4qLkoegoYqFjHyokYiPkpeTlpN4jKOhoZ6Wmn+AkJqYk4ybo6GkmpeRm36OhXmAg4+HoIB9jIyPfJekoKCSmZCPpo2PgZuRiZKXm36Skn6GjYF1dIJwdmB9f42GcoqVfIiLcox/goWGjmh3cXiMmJKPf5d+iIpzgod8fHB5e4yFenuRjYOWppOLhpF8hoeHhXWCg4iHemVye354enBsamZefXNofHV1c3xygGpeYHR2cHhkY1lfXlJraFRkWV9hZ2p2eIFxZmtjbGhlf4BqbX5obnFrfXeGemuMgXOBgX2BdHaCjYZ+fHt/gX1/j2pyg25zaWGHaGxiX3FWdG9tbmB4aG1XanR2Y3V7e3Jiam55iY2fspKlpZyOkJiPhpygm5x8dqSgjZd/jKKKiJqWeHuGh36DiX6IgoB/cX96dHWChX6JkHhnY32Gl4qCio14fYCMg3mWgJWXlYyWn5p9b4uBkZOGppuHjImEppWFkouWl5OSdpGeoaGYlJd6fo6Yl46Wm52knZmTlJx6kIWDeISXjZ1+gYmNjHOXop6hkpiOj6KMi4OWmIOSlpl+mI18iI2BdnF9bnpkf3yKhXCGk3+QgmyHgoF/iYRldW98h5KXjX2TeIuJfICHfHtxfniKhnmFkYqLmKKVgYSNd4mFg4J2e4GJhnZfeHd9c313ZmxkYX5pandzdHR9cXxiY2FzbnVzbWFaYF5ba2RSYldgYWhrdXiGcGJqY21laHyDbGh0aGxvaH98gnltkIZxgIODf3N8g4yBf356goN+fJBtdoh0dG1limxqYWN1VoRpcW5geWdsYmp2cGZ5fHpxYHJshoWQnK2XpqiejY2Xh4afk5eYfXeqnIqYeZeci4uYj3l7gIt9fIN7gIKAeHR4enN9gIN/iIuAZF59i5WHf4WHdH19iX99l4SWk5aMo6CXfnKHepORiqePjI6Kk6CRg5GQlJeRi4GPmKCakpCRdH+NkpSJnZ2ep5iXjZWWdI6PimyGmI+ZeoeIkIlvl52ao5OVio2fjIaBkpx/kpKVhpmIfImJgXpxeWt1bHt9i35uhZKClHdvgoN9fop/ZHJqe4CWl4R/jXSQiYN5h351eIB9h4F9g42FjZSkkHiFgnSJh32Ac3WAh4NuYHt1enF8b2FuY2R7Ym5vdnJ3d3N0YXZfb2x1bm9cW19dXmpeT11XY2FobXN6iWtfamVqY2h3h21mbGhpbGiAfHp3b5CHc4GDhH1zgYaJeoJ9eoGEfX2OcnqKeHhubIdraF9pcWOHaHFvZXdobmxheWhrfXt4cGF3bYuBmZqqoKSonYqKkYaKnoqVl313rpiMln2ek5GWk4h3fXuKfHyAdnd/gHB0c3pvhXyBgIp+fGBcfo+Rhn+DhHN6f4Z6j5GHkZGbkqSblIF9gHuNipKkiY2KjZiajIaRmJOWjomJjJOdk5CMjW6DkI+RiZ6ZoqGXlomWkW+ImoRnhpmOk3qJhZCKcJWalKGSkoiLmYyCf5CefJKPkouZjnuKhId0c3VrcW51e4t0boWQjpJxdIB7gYGIfGRxbHl9mZR9hIh0kIuBdIh5b4B+gYd8hYyJhY2VqI17iH1+i4V3fnBvgIWDY2h4dHVve2JecGBqdF5xanp4eGxycGV4XW1sc21zWFpeX2FqWlBXV2VjZ3Fxf4dmXWloZ2JncY5vZGlnZWpogHp3dG6OhXSBgYJ7dYKIhXeFfHiEhXqAiXd/i3t6cnmDamtfcGh0gGtyb21xZ29sZXxjboB5dnFsd3eKf6KYoqihppuHjIqBkJyGk5x0gaqUko2GoIyWk5B/dHt2hXd4f3Jze4Vrcm95bYp2gICGbnFbWX6RjYh/gIF2dYB/f6CGj4qRnJegk5d3iX6AjIidnoqPhpKYloWJlZmPl4yLjY6NnYqOkINtiIqQkYmclqGbmJWFl4hqhaODZ4adipF+i4OLgXeTmJGekZCIiZWNf36Pl3yRjY+NmpJ8in+CbnZwbG1ucHuFaXODjpeKcHd/dIKJgnhmc292gZmOfImEepSReneIdHCJe4aNe4uGhImPnKOIfIR3gouAeHhuaoCCgV1yc3Fwb3haXnBgcGpeb2l8eXBtbWpsdmBwb2pybVlYYWFhblhRU1pmZ2N1cISCYl1qbWRiZmuSbWBmZl9oaoF1cXJwi4B1f4KAeHWAi4B4hX93h4Z3g4V7hox/e3aKf2pxY3xihnxvcWx0amhvbHZ3X3F/eXt0dXSAgn6klZqtn6eWhYyDf5eUg4+fdYqflJKGipuMlY2LenJ4dIFwcoRzcXWIbG9sdW2IdoN9f21uVVGBq5SHgniAdnKCeYGggZGBkpKXm5GaeJF6goySpJqTjomVmZKEh5eZjJSMiY+PiJ6FkIp8coqFiY6InJqfm5aUf5R/aYadiGeGoYiShJGDiXGDkZePmo2PjIuPjXd7kpB6jouMkZaMfIh8gGt2am5ra2x6fmF5fo6VgXZ6gHeDjXx5Z3RsdIeVi3+IhnuUkHF6hHB3jHqKjXuJfoOMkZ+dhX18eIKMfXZwaWuBgnlfd29ta3FzVl5vYnFhX2xueXBncGZmc3RocWthd2VdVmZhYHJTUE5cZmVdeHCIfF9caHJiYmVmkmlfaGRbZ3B+cGtwc4p9dnyFgHR1f4x5e4aBeIiDc4aFfoyMg3t5lXdmcmqCYIh+b29remBqbnR/dF90fXmGeHRzhXx4oI+ZsJylj4KKf4OaiH+Lnn+KmZOOhIiYjo6PhHZ0dnOAcG+Fc3Bxg29raXZtgm59fG10c1JOgt/IktaTfHB0gnWDn4KTd5SQmJqPmHuTcoWQn6GTk5CJk5uUhn6WlYiNjYiRjYicgI6BeHqMfoiMiZybnZuVk3mNdmiJkodsiKOFkoeXg4ZjjJGYjpWJloyNiotxe5SJeo2IipKRiXmFe35se2Vyb2preXlbgHmPjYB6fX5/ho56eWhza3OLj4qChYV9lYxsfn9vgIx/jId9hHmBj5aamop8d3iDkHlzbWZwf4NsanRvaGlzbVNeb2RwWWBrcXdma2piZnhycHBjX3hgYFZrX112UE5LYGZjXXlxiXRdXGV2YGFlZY9kYGZhWGlzc25rcXaMfHR5hoJ1dn6Lc3+Gf3uJfnKJh4GQioh8fph2ZXNte2WHfm9wbIBabG55eXNhdnp7jXZyd4p3eZ+Lm66boJCChXeIlX58iZyHhZ+QjoWMl4STjoeBdXdweXFuhG9tbn5yZGR4cHxten1qaGxjpJrB3K7voXNrdYN1hKKFkW6Vj5Sfk5uBkXCFi6OXiY2VipCdloOAlZCFiY+AkoqKl3+He3V/iXiGhI2bm5iZj492inZuhomLfYqjhJGJnYWFXouUl4qOiI6Li4SJbHyWgX2IhYmQj4Z2hX19a31kd3VqbXhzV4h6kYaFen5/gIWLfnhlc2p/io6Kg4J/jJaFa4J1boiRgpGFf4J5f5CWk5mQdXR4iI11c3FndXmCYnRtb2JodWdSYHFnbFVfbnR5YHJjX2h9cHJuW2NyYWJXbllcd01NTGRmYV52c4ltXFxkeV5gZGaFYGNiXlhqcmtua3J2jH10d4SBeHd7iXGDhH1+iHt0i4mIlYaMfn6Yc2h1cHhsi3pudHCBWHF6dnlxZXd5hoxpdoCJcn+ch5innKOShHxwjJR4eYudhIWhjY57lY1/mYiEe3J3cHNqb4FraWx8dF5geHZ7cHV7Z2BlfOvatcnD3IhzbHOAdoqaiI1pl4+OnJSSgYhwhYigjoWKlYqNmJR8jZOIg4mPe5GLhpCCf3Z4g4Nyh4KSm5aUmIaMdod/cIWCiYeZooOUjJ6DiWGDlY+GiYaJjYeAh2l9lH99g4SJjo2CcYZ+f3F3aHVyaXN3a1qMfZKBhXx/g4CEioJ1YXRsiIGPi4J+f5KRfW6CbHmGkIaThH2BfH+Sk5CXiW9yeo2GdWxwa3J4gF9zaW5canZgUmRyaWZTX3B2dGBvYF1ognFzaldnaGNpWG1XW3VMSkxlZ19icnOFaVtcZXleXmRne2BkX1xZa25lb2pzd4p+c3OBfnp2eohzhYJ8f4Z2d4qGj5iCjIF7k3ZsdnV4eJN0bnh6fVh5hXGAb2d5d5KCZHaGhXGKloWZoZuiioZzb5KLcneOnH2KmoiJe59/g5l/gXhxc25vZHJ+aGZsd3dbX3l7enFxf2lhZ2F/1baOkKZ4bnF3e3CSkIyHapiNiJuRi4V7aIeLmYaBkpGGh5iNfI2NgYGJjnyQjH6KhXp1e4J6cIaAlZmOk5SBiHWDhnaDgIuTnZ+GlY+ffohhf5OHhIiEiY1/f4NnfZB/fn+Ci4+Qfm2CfIJ0a212dHN2dWtjjYGOf4V+fIR/hId+cF9zcYV8j42CfH+SiXpxg2Z6hIqHjIN8hX1/lJCRk4RucHqMf3Vtbmpsen1iaGppWGx1WlJpcmpiUWJyeGxhZV1aaoNtc2JcZ19kbF9uVFpvTkhPZ2VcZ25xf2taW2NzYFxjbHdkZV1cWmxsYm1qc3aHf3Fvf3x8dHiGeIWCfX+HdXmJgZKVfIiGdomBb3d5e4STcG18gXdeg390gW1pe3OUc2dyiH1ykpGDmp+boIaHdnaUfm12k5d9h5CDio2afIuadn12cW9samF0fGdiaXV6Wl93fHptcX5lY2hoV52PXnFylrzDg3VxlIiQfnKWi4ack4yHcmqIj5aAe5SMgYSbjHyLhn18iYx/lIh1iYV2d32BcXWGgZ6UhpWPg4Jyf4h1hHyJmJ2Yh5OOnYCIZn2Tgn+Fg4mJcoF9Z36Le3h+f4eLjnxpgHyDdmVveHhydnNsao2FioGKf3iBgISDf2tecnh6fo2KhXuCj4B+coBpeYOHi4aEeYR8gJeNkIx9bm17iX13dG5oZ3x2Y1xwYldvclNTbnNpYU5mdHhlYF1cWG6Ab3NZZWJdam1gcE9Za1FEU2dhWmtubXtuWVtebWNaY293ZGZcXWBsamNsanN2goNxbn57f3R1g3uDgnyBhXZ+iYGWkHiDinSBiHJ4eX6NkG9vfIFxaYF5en5tbXx2lWtqd4R0bJSNhZ6YoJmFiG59jHZqeJiOfoGKgpWXinmOlm96c3BsamRgdHtoX2Vxelpgcn15Z3F6YWVlj7Gyd0piWqTZ0JZxe5CKkHd9lIuEmZGLhW5rhZKSenmShoCEmIp8h394eImKhJaAb4yIcXR9eml5hYOlkISTjYN/b36DdoR5hZuYk4uSkJSFh3B7koJ9goOJg26BeGiAhXhyf3+CioZ7ZX1+hHVjcHJ/aHhwb3WYjYWCint2eICEeYFrXHF9coGIhYl9hol6iHKBbnGEh46EhXOEeICZjY2EeG5vf4R/dnplaGp9cF9Zd1pYcW1OV3JzZ2BLbHZ0YF1bW1l0fXJvV2ddZmpxX25OV2hRP1lnX1twamd4cFpaWWtlWWNweV9oXF5lbWhmbGlxd3+Hb2x/fYB1b4J7f4F+gn92gYWJl4pxgo1xe4Z8eXmDk4x1anp/bG9+dH99b3J8e5RvboF/eGaSioKhmZ2RgoZnh4NvZ3qViX5/hYGZioF8jYxpeHJrbGZfYW94bV9ib3hcZGuCemFxdl9lZdTqvooyOj6LjoBxeYWHjo12g5aMfpKNjH9tbIWNjHZ9j3+FgpWJfIN4bnaGhIOXd2+IhWt1e3RmeYKDp4yDj4uEfW5/dHaDeYackIyQkZKMi4Z+e5KGd3+EjYNsgHJpf354bXx7gYqDd2J5hIFxZHFofm10cXWBm4uAf4V+cnV9gHKBcFttfnR4ioOLe4eAfIh4enFsiIOQhItygXl/l4uLf3Rua3Z/gHV1XGlod3BZV3xTWnBlTFpycmVbSnB3blxaWllddH51aFliW2dmbmNpTFdmUT1eZlxddWVfdHBaWVRvZFlkcXlaaF5fZ21namxpcHd9jmxpgoR+eW6AfH2Bf4J6dYKBjZOFcICLbnh+gHp7iJKJf2h7fWp0e3KGe3N3fX+MeXiEfXxrjIyDm52WjIGAbI5+a2h+jox7fn+DlIJ/fYqIa3VxZ2hjW2Jncm5gYWtzYWhwiXlhc3ReY2SboI9uXDVZr7V0aYCIfJKGdoWWhXOOiol3cG2Fg4d1eYl4iX2TiHp/c2d2iH5+mG9xhn5odnltZXmIhKWHgIeNiX5ufnZ/gHyMmYeCk5CYiIuEiXyPiHB7fYR7aH5ta4B7eml6doGHgXJgd4F+cWRyZ3WCbXR7hZSRgXyBf253eXx0fm1Yb392dIyChneIdoKJenhzbomBj4GFcn59fpOJiXpubmptgYJ1bl1nZnNxUVt7TlxwXE9bcnBkVktzeGlXWVlaYXGAdGBdXWBnZGhpZk5ZaE1AYWRbYHZhXXVtWFdTdGFaZG9yV2peYWhrZ21saXB3fJJraISJfHxwfn57gYCCeneAgIqLg3F7h29xd4N/e4mNj4Nqfntud3l2ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshIiReH17gZGAgH6Kg3BycGNmXllnX29wYGBncGZqb4p0YXRvW2FkanZ7f76cpqPIuHGFg3OTfHiGk4JzkYyHcnJwhHuDdHWHdIh3lIh5eXFjd4Z6gJNpcoR2Znd2Y2p8g4iegn9/jo59cn5zhHmAkZCCeJaNlI+Igoh7iIlreHl+dWd6aGt/eXNpenaAgn1oYHeHfWprdGh7f2l2gYyQlH56fn5we3Z7dH5iVnd9cnOKhIJ8g3GGind4cHCDgo1/fXl+fXaOhoN2aXFpbIeCcnBdaGNzbkpldUxeblVUWXNuYlFPc3hgUlhYXWJwgnNbYV1oZWRjamRRWnBJRGRhW2NwXl13aFVXVXddW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHl9cnt+eIGBgXx2fYSIhoNwdoNybneCgn6Ji5N/cIB7d3l6gYx0g3h/gYGChHqAdW9+iYuanoh9hXp3hntndIWMkHp/f3uJhoR2j4Bnb25fZFxYZVltcmBgYHBsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhvjHV7ho6AepOJf3V0dX53gHBxf22EdJSGeHVsYHqCeYiPZnGDb2d2blttfYCQk4CAeJKSfXh7bYd1gJCLhHSWipGOh4WFe3+FbHR2f21nd2Vte3VtanZ3f398YGJ4hnpodHVjfnpndIWOjJV7dH91cYB6fG1/WVZ0fm91hId/gHlsiIZ0eGt1f4OEfXt9eHtzi4F9c2d0ZW2KhG10W2pfdWRIbm5MW2JXVlV4bWJQU3R2V1BVWF5hcYRvXGBjbWVkXm5iVFxyR0JmXl1maF5be2JRVVx1W1tna2FWal9gbmZma3FocHV4jnRrjo11f3Z4fneBg4F7dH6EiIeDb3F/dHF1foWCiY2Ke3d/eIN8fIWHeId8fYF+hIB7fnN2eYyOn42Jeol2dIN5Xn2FmYx5hoN0hYaFd4l7Ym5sW2JbW2FWanNjYFtnbm9mh3FhcWZXXWNrf3zKzoi5omptbYpscYRxfISJfnuRhHl5dHl1dXtqbHVjhHWRgndwZ159gnqLiWVygmtqcWNYbHuGnIiCgXOXlHd+e26IcYGKi4dxl46QiIWLg3t5fnFxb31maHFibXhxamtxd3x8eVxleYB3aXV4ZoJ2Z3SHi42UfHKGaW9+gHlufF1Ycn9tdICLfIJvb4l/cXZod3+Bf4F3fXF6dId8enJmc2FujIJsc1hrX3dbSW5rTVZVXlRVe2thT1R1clBRVFZeYnSFaFxgbGpmY1luYVhicEdBaFxfZV9dVnteT1ZkcFlbamhdV2hgX3Jma2hyZ3Byd4Z4bpWKdH96eH55goiAdXOAhoWNgnBwe3h3dXmGhoaLhnp8f3WLfn2FhISHf35+fYd/fHh2eXeSk59/jHyLbXaAeWODh5eGc5KLb4WFgXqDdGNuallfW11dVGdzZWBZZHFxZoFzYmtlV1tgaX93vq57oLdtYnOGaHN7cXmChXt9jH53eHN2b3t2ZWpuYId1joFzamJefnh5i4RmcX5oamtaVm94iqSBhX9xmZNxgHh1gm2AgpGHc5WIjIiEiIV9eHRybmh5YGptYG12amdqa3l3endbZ318eGVyfW6EdGR1hYyGlX9vi2ZreoN1bXRiXG98a3V8i3yBZnWHfW1xZ3V+eH5/cn1renqBenhwZmxibol+bW5Wa2B3VUpqa09STmhOWXxoYk5VdWpMUFRVX2d2g2ZdYHFoZ2FXaV1ba2hKRWtZYWNXWVV5Wk5WbWpZXWxlXFplY150Zm1kcWdyb3WBd3CZhXZ/fnd/fIWHfXVzgoh/lYJuc3h6enNzhYeIiIR5gX12j398hImOhIKEe36Lg3t3fHd3mp2XeoqChml3fXxsg4STgHKPgnGFgn6Bf29mbGZXXVtcW1RkcGRfV2NydWl1cGVlY1dcXGiAcG9ygHSJZGR4fml0dXNzgoR4gIR5dnR1bmt7cGFna2eGdI2EbmZdX31we4l+aW13ZmlkVVdycI2mfIR8dpaQc3tzfHpue3uQhXaYfIeGg4aDfHRwcmxndVxtaF9sdGRnZml6b3tyWWeBd3VncIB3gnVid4SKfJSAbotqbXqBcWZzZWBtemdzd4p8fmJ1g3Zpa3F0enF5eXN9Zn5/f3l3bmNmYm6GfG1rVmpicFNLaWtPTE5wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWZgVmNXYnBdTEtrWGNhVVRVc1ZMWHVkWl9rYVxbY2Vfd2ZtYnBpc25xfnR0moF3f4B3f36GhXp9dYKEfpeFbnJ0e3p1cYSFj4GAeot1dJGAfYGUjoCFhH1+jIZ7foB2e6OlinmJhYNrdXx7dYOCjHpuhXN5hH2Bg3VuamhlVl1bWlpUY25lW1hic3tpaG1pYGJXX1ppgGprb4BobGFoeXhqc3R0bYSBe399dnVtemhqeWpfZW5ogXaPhGdlWGJ3aX6He29pb2dmXVVYb2iPp3aBenyQjnl1b35vc3V5j4B3lXSFgn+FiHZqcnZnaG5bbGRdbHNfZ2FpeGh7bVptgnJzaW+Afnl3YHeEhHiPhHKIcW95f3JjcWhcb3dkcXOIfHhic4BwZ2p4c3JseHd1d2SDe393dm9kZGNufH1rbFVpYmZTS21oT0dSa0VheGdhTVNxXElNVFlla3d7ZV5tcWlkXVZfVW5uV0tUaFdmXlhOVWxUSlx5X1tfa11dWmJlYHpobGFvb3Vtb3Z1eph9d4CBeoB/h4Z6eHqDfoGThHF0dH56dnSFiJB9gH2Qa3OVgXyDn4V/h32AfoaCgIp7doSsn396iIeDa3KCenaAgIF1bodvfH9ziYBqb21kZFhfWllaVWJqZ1taXnWBaV5ubFxhVlxca4FmcnR9aWpda3Z1Z3R3cWyFe319eXZybHpoaXhmXWRzaHp3koFjY1RlcGeChXd3ZmhqYFdWWWhkkKdufniAi456cHB8Znlveox7do5xhH1+f4ZuZHZzZGhoXGtiXW9vW2dfbHVkemhddIBvcmtxe311dWF0hYp6h4Z/f3dydX91YXBsWXF0YnFyhXx1ZHJ/bGFsem9qaXp4dXJmhXV6enVwZGFkbnN+aWxUaV5dVEtzY1FHVmFHYnZmYUtUb1dKTFdYZ2t2emRlbnFmY1pXXVh2ZVRKXGNXaFhZSVdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bW9tdoOYeXKBgHx/iIuGfXV2hniHjH10dXWCeHp6goyOfX6EiGpzl4F7i519foV6gXp+fIaIc3GProx7e4ePfWVyiHp0fHx2cm+GbHt9bI96YnBvYmVdZVZZWVdkZmtgXVxzhWhYcW5aXldaXGx7Y3B3dmxiW2xyc2d0dXBshHl+gHl3bm50ZWl0ZVtndWZ2dpF6X11SZWZqgoJ0fWJjaVxUWF5iY5ClaHl0goWQeG1ueWd4bXyFe3WIcoB4fHh/aGV2bWBmYF5qX11za1llXW9vYnplW3d7a25ucHd4c3RkcoOSfoeCiHp2b3J9cmJ4ZFtvcGFxcYJ8c2ZxgGRebnZpZGd5enRub4F1dH1zcWJfZm5vfWRqU2hYWVRNd19RSllZSGJ0ZGFJVG1TSUxaV2lscXtibGxzY2FaWlthdltTS2ReWGlTV0dZYE5HaXVYXmFtW1tfYmJdhWhoYW54eWxvanaBkHltg36AgZKIhIF2dIl0jIZ0cnd2gXd8fX6Mj4B+k35weJaDfZmSeYCAeHl9f3SIg3NwmaJ7e3+IlHhkdYh5c3h1bHRvfmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYhlUnJuW1pYWGBsd2RpdWpqXlptc3Fsc3NzaoV8fn98d25ubGRpcWNbanJkdHaPc1tXU2RhcoB/coJdYmNdU1pgW2OTn2VycYWEkXRsanlsb3B6fHtxgHZ/cnp6emRmdmddYlphZ1ted2hXYl1vaGF3YFt7dmppcm53c3N0aHCBlIKGfoR2cmpwfG1md1dca21icXOBenNmb35bYG9xYl9qcX1sbHR+c3F4a3BhXGVsbHphZ1NnVVdSUHZbUlBZUkljc2JgR1VqUEhQWlVra2t8ZW1vcWFcWlhZbHBXUlBmVldpU1RGWlxPSHJ0WF9jbWNYYWBhXYtqY2RteXhrb2l1eYZ7a4N9gISZfIKEeX2Ibo+GcW93enx0goJ8i4+Dgpd0d4KUhYGfiXWAgIFzf4Fwh4J1b6KXdHuGi4Z7ZXiLb257b2Z4cHpsc3ZyjGtedG5hZ2VrUl1bVmdibGxaXHGMZE9vbl1WWFVnanRoYnRlZV1ZbXRtcHV1eWqHfH98iHeQc2Rka25hXG5tY3N4h2taVFZiY3h9fXGFXWNfY1RbYFljlpVjbnCDhYpzamh6bmVzdnN8bHp0dW96fnVfZnJjW15WYmRYYXVlVV9gbWRhcV1dfnBoaXNxc3B1dWpthJOBiHuEcXJmbn1wcm9TW2ZqZnF0gXdzYmx2VWJxaltfbmV8ZW12fHNyc2ptYFpkamp3XmZUZFVWUFRtV1FXU1BIZXJfYUZYaU5IV1RWbWhkfGlreGtiV1xVW3RkU1JXaFFZZlRTSFpaUE14d1tfZWxpWmJgXl6PbmJma3l1bm9odnZ/f2yDgH2Gl3t/iIGKf2uTiHJndIB7dYCDfYiOf4yTc3yKkYWHn4Z7f4aMc4CGc32Ddm6ljHOBjYt2d216jGBkfHBmenN5bG1xdoJnZHtsY2ZnaFNeXlRnYGxvW15ujWhOam1gVFZTb2dza2V4ZGVdWG90bHJ6d3JsiHuAdpx7emthZWxtXmBvamVweX5nWlZYYGt4fHtwhF9iXmdWWWBXZJyIYmtxgYd9d2treGxbdnFseml1c25ve4ByWGpuX1ldVWFjV2RxY1NeYWlhYmxaYH5sZmtzdW5td3ZraIWMf4h6h21xZnB8bXJtY1lhaGlvdIF0cl5pbFJlcWRUYm5iemNxdnt1a3Bta19YYWdodFxlVmFWU05YZVJPXE9PSGVwXWNGWWlNSV9LWG1kX3hobn5kYFVeVF10W1RSYGZOXWFUU0pcWVBZdXZdX2ZtaFhjYVtejnBjZ2p3cXNuZ3Z0eoNygYN6iI1+fIqHjnpukIp0bHOCdH9/iIWGkYSVj3l+jI+IkZuEgHyMhHN/gXN0eHFuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Njo6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjY6Ojo6Ojo+Pjo6Pj46OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHx9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERFQjEvLy8vMC8+RERERERFOC4vLzAwLEiFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTUzHx0cHBwcHC43NTU1NTYnGxwcHR0YOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHiIeHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhoWDg4ODg4ODhYWGhYWFhYSDgoKCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk5CJj46Nj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6Ojo6Ojo+Pj4+Ojo6Ojo6Ojo6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjIiGhoeMhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCRjYeGhY6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkI+Hi4eHjIiIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjISKhoaIhYmPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiIuKioyKjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpKSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZ21namdoZWhnY2JiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpeXVlZXmJhXl5aWV9bWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVBRUVFRUVZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PUFBRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpISEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj48RUQ9P0VBP0BBQERFR0dHR0JERERGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUBAQ0Q9QURERkNGRkRGSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozw+PTs8Ozg6QEBBQj9BQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6OjY5Ojk6Ozw/Nz07Ojo4PDw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw9P0A9PT0/UT49PT08QUw7TEI5Ozw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREA9PD5AQT9BO1p5Tz1DRT5EWDxZTjs8PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZEPjw7PUA9OTo6b3dZNzs6PEdePWBcOTs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BxcnJydHV2ent9fX1+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUNfSTw7RmNnX1d3d1g3ODg4TWJCZWg8Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAT3x0RkZ1hoaGgnx3WTw9PzxTakdnaz47PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUBVdnpwdoSDg4GCgH1ZPkBDPlNvTGRoPTs9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQFB0c3+DgIGEfHyFbUZCQ0RCUmlkc3JJQENFSElJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFR2xzfYB5f4WAfYZzRkNERE1nfYeIiH5YR0hRUExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHp/gHyChIaFhYtsQEBWd4aIh4eHiIJYUl5OTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtOXHyDhYSEhIWGiIBWbIWHhoeGh4iIh35pVktLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSUhISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpag4SEhYCBhYeGg4KFhYSFhoaGh4iGiXtLSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWiFhIWEf4CDg4KDhISFhYaHiIiIiYmMjWZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaYaFhIGAgoSDg4KDhIaJiouLi4qJiouMiVQ6ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JohYOBgYKDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6Ojo6Ojs4OTg5ODc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd5e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PnaEgYKDg4SEhISGiYqKiIeIiImKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDk6PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz1KgYOCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA+PT4+QD8/P0A/QD09P0I/QUE/QT89QEBAPj9BPT48Ozo7OTk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlWEgoKEhYSFhIaJiYiIhoaGh4iJiouLi4qKi4qLXj5ER0lLSklGR0dERkhHRUJBQENFQ0NBQkNCP0BESEVDRURFRUFGRUZERUZEQEI/PEA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NFWoWCg4SFhoaGiImJiIeGhoaHiYmKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHZ3enh7fHx9fX5+f39+fX19fX5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkNHR0pbhYKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1PTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExOS0dHR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4ODw7PD06P0E+QEBDRklKUWCCg4WEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEhFSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QEVJS01WcoOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4tfUlJQTU5NS0pHRkJHSkdMSkZLT0xLSkpNTUxPUE5ISUtMT1FRUVFPT0pJSkpMSkxGR0hHRUdJRkVFQkBCQlxvcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBSExNUVd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKREVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0dWTkZPUVFVWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMj4uLi2dWVWthRVJRUVBKOztRU1JgdV1VVlRWWVlSWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLSEhKSEVGSUhJSElpcnZ5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklJR0dGRT8/QUFFQkNHRURFTFhSTVRWVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A+QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFpnUlVWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSVlYWVtdWFhZV1JRTlBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpbXF5UUVFQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXG1ydXZ1c3N3e3p7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSEJDSEdIS0dDQkFEQE9QTVNkc3R1dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiW1hTUVBVUnNXZVtPT09MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz8/Ozs+QEA/Pz5rUUthRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNDPz48PUI+Sk1GVW51dXVzdHZ4enx6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXt4enx8eHd4ZEJAQEI9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztCSD9cdHR1dnV2eHp8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJYR0ZGSEJBRklFRUZETVJQYVdSWFFQU1NSVVtPT1FXUE1KQ0Y+Ojo2NDg2OTc5OjM2Njc5NTxCPWVzc3Z3d3l6e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMWFlaVlhYVlhZXVdXWGhza11WYXNrYWFfXWRhX15ZVVBNT05MSEhKS0lIRkNRUFNaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NTc1Nzg1OTlHbnF0eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KT09UU1RcVlJVU1JPTUtJSEhGPz89Ojc4NzY1OTk2NzY2NVdwcHN4eXp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9KSE9QT09NUkpPUFBQTk5PVExNSVBPU1RVMjxYTUlBUT1jYVFTUVBOUFFQTk5NUE5UUlBSTUlMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjQ1NjY7ZXBxdXh4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkZCRkdHSEZKREhKSEdFSExIS0hGTE1QTUcvRV9SPjNAPmpvYVJSUUBGVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3NkRucXR2ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRUZISk5LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FNT09NSExMSUtLTEtIRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t9fHx7eXx7en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUV1dVTExLSD05ODc7P0A+PD1AQEI9PkVIR0RGRklHSkpARkFBQEZIRUpPSFBSYVxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSUpMTEpGRkZEP0JDPjxCRj9CP0FkcXV4e3p7e3x7enp3fHh5fX57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47P0FAQD5BRElFQ0hISUdJRUJCPz49Q0FBR0lETU9iZVFNT05XS0xNS0xNTUxMS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES29wd3p5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxAQkFBREVHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTVFUTEpJTVRGSUlKTEpLS0lJTE1PUFJQS0dDS0dDQkpKTE1PTUlKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW9qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0RHSEhHSktJSktER0I9Pj06Ojo7QEI/PUJCQ0NHRkpMSkVJSUZHSENDO0FAQj5AQENFQ0lNUEdJS0ZIS0RISUtNSEpMSEhKTEtNXVJJSERNRkFES0pOTVBOS01KS0ZHR0pNTlFOTGNuaXZ2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLREZFR0RFRUdFR0JDQD48PTo7OjpAREA+QkNERUlGSkpMRklJR0ZGREI7QkNDPj9DQ0NFR0xOSEtOSERIRUlMTk1ISUxHRUZJSUxOS0pIRU5IQ0dNTE9NT01OTk1MSUhKT1JRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQkJCRUBEQj4/Pjo7Oz06PT5DQT9BQ0VHSkZKSUxIR0dHRkVDQD1FRUI+QUNDQ0VHSUlHTVBJRkZHS05PS0ZISkZFREVJSUhLSUZIUEtESU1MUE1PTk9PTkpKSU1SVVRST1dkYGFtZ3Byb3J5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPUJBPkE9Ojo9Pzs+PkBCP0BCREdLRklHSUhGRkdFQ0JBQUZGQ0JDQkRFREdHSEZMUUxJT0pKTEtJR0hFRkVEQ0lISEtKR0tSTUNOT01RT09PTk9PS0tLUFVXVlVUWGBeXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmprc01HR0ZIQkJBREQ8QUFAQzw4OT0+OT88P0I/QEBERkhFSEZGR0ZGRURDRUNESUZDRkVCRUdFRUZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LT1NORFFSUFFRTk9NTlBNTE5TV1ZXWFZYXVpdZGBoYmppZ2tfZWVnY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaW96TUhHSEhCQkJGRTxAQkJEPDc6PT46PjpAQj4/P0NFRkRGRERHRUNFRERFRkdKRUVJR0NHSEZIRkVDRkpKR01KTEtISkxGSUlLSEVLS0xNTk9SVE9JU1VUUVNQUU1OUU5NUVdaVlpZVlpdWlhhYGBgXmhlY2BkZWhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN1bm9yc3lOSUhHSURBQ0hFPEBFQkU9ODo+Pj08PEFCPD8+QUJGQ0VCQkdEQ0VFRkdHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMS01LSU1MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZW15fXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZxdU1JS0hKRUJFR0U8QEdDREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREdFSEhGSEdJS0pGSkhIS0hGRkxISEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm92SktMSkxHQkVERTxARkREQjs/P0FAQEBEQT9CP0FDSEJFREZIRUlFRkRJSEZJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTkxOTk5QTE9QUlVYVk1OVFZVU1JRUExOVFNSV1teXl9dXWBfYWFhYGJkZWFjaGJkaWpndotsa2lnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dKTUxMTEdEQ0FEPD9FRUVDPUFBQ0JCQ0VCQkRBQUVHQ0hHSEdGSkZDR0lHR0pGSUxISkpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBPVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5gYl5gZWFhYmduaGJpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xNTEtMR0VBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NCSUZDSEpJSElLRkRLSkdISklJS0dKSk5LTkxJTEhKTUtaZkpkXEtsU0hPTl9uVWtzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVGB3dWlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5S05KS0pGQz9AQj89REVGRENEQkVFRUZCRkZIRERKRUVKTExKTE1HR01JSElLSEtKSUtKTkxNTUxMSUxMTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXlta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEQEJCPz1DRkdCRkNFREVFRENISEdERUtHR0xNTUtNTUdKTkhKS0pJTEtKSktNTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncXBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dFRUVCQkI9P0BGR0JHRElFRURCRklISEVHS0pHTU1OS01OSExNSUxLSEpNSUtKSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdoYWRqdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR3SU1HSURFRENBQjxCQUJGREdGTEhFQ0NIS0hIRkpMTEZOS0xTUkxHTExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2diYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQkdDSElNSUZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUhKTElLSklISkxNTU1JS0pLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRURER0JISkxIRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpKS0tJSElHS0tMS0ZISkpMTExLSUtMTlRbXFRQVExQT05PT1ZRT09RT09RSklOUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzSERFR0ZGQUVDP0NHQ0VHQ0lLTEhGREdLTEhER0hQS0xPS0xXTElFRUhJSkhJS0lMSkhGSEdKR0hJRUZMSElLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSSllhWlNgZFxhWFtkZFZWWVxZWlhcVllcXWJfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRQQkNETE1CQ0RCRElER0dGS0pLSEVFSkpKRkVISFBKTE1KTVNJSEZBR0ZKSUtLSkxKSUZFSkdERkdFRUpHQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOXlxeU1teY15aXWBjYFlfYltgXltUWFhZXl1jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tFRUhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRENDRUFGSkRASktJT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV5eY2FgYmJiY2NlWlFZVlVcWV5kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLR0NHRUJFR0hGR0hJRkdKR0hGSEtJTERES0tOTUxMSEpKSEpHP0dGTktLS01LS0tJR0dDREBEQUhJQT9JSkdPXWFaW2RdX1RRU1hdXFxcX1pLV1xMUlxZSU1eUE9cX2FjZGNjYlxkY2JkY2ZYUVVUU1tYWmFeXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSUZGR0hHR0pGRkZJTEpORURLSkxOSkxJS0pISUdCSEhRTUtLT01LS0lIR0VEP0VDSEhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJhYGJiYGNiYmRkYlhPUVFSW1NbXl1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lKS05MTElMS0lJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBRkVEV1VFXFRdU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJdYGBfYmNiXWJiV19fVFBOUFFYUl1cW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQRFdfSUdHSERGTUpQUEZKSUpLTkxLS0xLSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0FERkJNSENMTFBPT0xGTUZHSUpIR0xMTU9QSUxPUFBTUExQVFNVWllXWVhYZFZPU1RQUE9OUFVUXFlZWl1cYGFkZWNoY2tscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHSFlNR0hKSEdOTFFRSUtLS0tOTlVOT0tLTEdHS1BTU05QT05PTk9IS0VgRURfTERmY0RNW0lfXHNtT01WbVlMQ1BgVWxXZ0pdV1VeRE1RVUxNVFZRU1RYV1RYVVRcVFBmWmhoZFhUa1RXVlVbXFtgYGFiYmJgZmhmbmxocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09TSUtHYFRISk9KSU9NUlFLTEtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzV1BtSHFucGFWUHFxc1BCa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZVV39qdHV1X2B3YFhhXFxmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEZKTEZSVkxLT0lLUlhXUU5OTkxRVE5PUVBLTE9HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWVJUUXZndGxwYm5malFyT013bWpycHNycXJwb3CBXWV6dXhxcXpxfnN9a3V9YlJnfGVzc29zc3x9b315b39yX2BgYmJaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEtKSEpQTk1NSk5WXllVTFFTTlhaTFNTUk5MUElRUlRZV1dQVFBQUFFLR2Z4bGN4cm1aSkxVeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpWHNRaHptaWp6en5seHp/b2dvWHZ2anV1cIBgc2h8aWx4fG9eX19jYltdYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0JFUFBISktKTFBPT1BNUFpgWlhLVFdQYV5SVlFZU01QSVNUVlhXV1BVUE9OUkpLcm91dXF1cWRoYFZuTHFwXkZoeVd2VExoeH14YHl7c25hXm1vZFJncnVubXlwd2x2dHRxbG1cdH56a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUEpMTUtMUVFRUVBRV1xZVU5WWVVmWFJSWV5UTU5JVFRXV1lXT1NOTk5RSFJtSGl3S2BkdnZVV2xPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGV8aXJ7XVRLbGB2dWtpdXt7bX54a3xwXV5eYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobG1yfGttaGt7dG1ta21PSEpLSElJSFJQTE5PTUxUU1NPVFJXUlZUUFdaVlZUVFRhYFFPTktUVFNRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1dYUl1ZV11WVE9ZUldXV1hZX1tncl5bW1pcXV9jWl9jY2RmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraG96aGdna3VqaGdpbFFJS0tMTUtKU1FNUVBPTFZWVFBUVVhVWVVSWl1WVVRXVVlYUE9MTVZUUU5VU05PTUxRUEtKUVJLUU1LS09SVFJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1FSVVVWU1pRT1NSV1VUWVZUWVVTUlVTVFRYWVddWl9hXVxaWlxcYGNcXWJjZGdlZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUEpLTE9PTE1UUE5TUVFNWFdVVFVXV1daVlRcYFZXVllVWFRRUEtPV1NQTlVQTlFOS1NQTU9VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RPVFVYVVRZVVdZVFJSV1VVV1xaW19dVllfXV5dXF1hYV5bYmJjaGZlZGJYX2BiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FaWVhXWFpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUE5NUVFQUlhUUlFPTU9TVU9XUlRVVU9OTVFTVVVUVFJUWFZaXVxaVlZRUldYVltbV1FUVlZWVllUV1dUUlJYVlVaX1pdX19XX11eYFxcYGBfX1piYmRoaGVkYVliYGJeXmZkZGBiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUldTU1NYTU9QUlRYVVVVU1VZWFteXVxbVlJPVVZWW1xXUVRXVVZYVlRYWlRTUVpXVlxeW19fYFZiXGBhXWBiX1xgXWNhY2dpZGZgWWNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeYFteXmFgX2JcWWBaUU5PTlZRUFRST1VUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSS1FUU1laV1VPUk5TWFZUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVVZcXFZSVFZWWFlTVFlcVFJSXFdaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1bYFxgVVxdaWpyfXNsZ1xVWVdRT1JbU1JRVFJUVVRLUlZVW1laU09TUlZWVVNPVlJTWlJUVVRYXFdYWFNYXFheXVlaXVVVTlZXV15bWFFUVVhYWFVXWVtUU1ZdWV1dYF1iY15ZYFtlYl9kZF5eY2NhXWVmaWRmXl1kYWBhYWNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWVteVl5ZXVBPT1JaUFpVVVZWVFRUXl5gXl5iXGBVXV5ia3l0bH1sWlVaVVFRU1xUVVRWVFZZV0xSWlZdW1xST1VTWFdWU1BYUlNXU1ZWVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paU1RWWllaVlhZXFZVWl1cXmBhX2RkXV5dXWVhYmZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVpYVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFdXV1ZWV11YUFVcWV5dXVRSWFJXVlRSVFhSU1ZUWVhZXV5YXVtVXl9YX19YXVZRWVRZWlphWVxVVlhbWlpYWVpaWFZdXl9eY2JhZWVdYlxgZmJkZmRfX2RiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaVlNcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFlcWlZYVVdbWllcWVhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdbWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVtZWV5fYGBkYmNlZWJkWmJmY2dmZV5hYmBjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xSVlhRV1ZWVlZWU1ZUWFxcX2BgXWFdV2FeW15cW15YVlhYW1tfYFxfWFldXF1eXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBYV1hZWVdWWFZdXV5gYWFfYl5ZYV1dXlldXllYVldbXGBfXV9ZWV5dXl5hXFtaWVxfYV9iZGNlZmVmYlpkZmdpZ2NfY15hZmRaaWliZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMV1dcWVddXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FiXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNgUlxZT1hXWVtaWVhaWWBdYGJiYGFjX1xiXV9dW15eWllVWF1dX19fX1taXl5gYmNcXFdbXWBiYWNlZGdlZWZkXGVmaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWFdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9dXF5cWF1bXl9hY2JhYV1iW2JkYmBjY2JdXFtaV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxdXl9aWFZbX15dYWFfXVtgYWJlYl9dU1xfYGNkZGZkZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoY2hoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WDgYODgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7fHx8e3t7e3p7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmJiYyMjIyMjY2LiYmJiYmJi4yMjIyMjYh+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyNj4+Pj4+QkI2MjIyMjIyPkJCQkJCRi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXl5enhvb29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH19fX19fX19fHx8fHx8fHx9fX19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5dnZ2ent4e3h3dnh7eHp6eX15eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t6enp6e3t7e3t7e3t7e3t7e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx8fX16fHt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3eXx9fXl8end4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d8enx8enx7d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en58fXx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5fHt6enl7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8e358fX5+fn5+fXx/f398fH2Ag4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAf35/gYCAgH+AgYF/fn+AgX9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35+gH9/gH9/f39+f39+fn5+fX5/f35/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5/fn5/f35/fn9/fn5+f4CAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/gIGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCg4KHg4OCgIKBgYKCgoOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCBg4GChIWFhYaGh4aGhoaHiIeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WEg4GBgYKFh4aHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgoaNg4yHhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4KBgoKBiJOAkoiBgoOBgYGBgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgoORh4B/gH+LmoCVjn+CgoODgIB/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKDg4KDiZmMg4KEgY+cg5iSgoKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4OFhYSDg4GAf4OPmo+DhYSCkpyEl5SEgoKChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+AhJCJg4B+fHx7e4ydjoCCgoGRm4SVlYSCgoGCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+Fm5SIf319fIGAgZWIgIOCf4+ckpiUgYGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqHg4ODhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgISbnol+g4F9iYl+goODhIKIn6Chk4mBgoKBhIeCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgpWgiIKNhX6DhX9/hoaFhZyfhn59fX+Cg4eWjIODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDi5KChIaEiYF/f36CiIaFiH98fn9/f3+InZqEhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIKBgIGEgX9/foCKgn5/f39/f39+f4WejYOFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISEgYCAgYyHgH5+f4F/f4B/f4CAf3+AfoOHhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICDiYWCgIGCgoGBgYGAf4B/f357eYCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgn+AgoWEgoKCgoKCgoB/fn19fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHh4eEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWDgYKEhIODgoKCg4F+fX5+fn5+fn18fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEg4KDhIKDg4SCgYKBgYGDg4SDhJGSkY6PjouHhYaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoGChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGh4eEg4GDg4SFhYWDg4WEhISEhYSFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4GDg4ODg4KCf319f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY6Pj4uIhYWDgoSCgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn6AgoODgoOCg4J9fX5/gICBgH59fX19fX18enp6gIKCgX9/f39+f3+Afn2Af3+AgIF/gICBgH+AgYF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/gIGCg4SBgoKDg4OEhYCAf3x9fX59fX5/gH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gICAfn9/fn59fn9+f4B/fn9/gH+BgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/fn5+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn59fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOBgoKBf4GAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjISDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GDhYWGhoSDhYWDhYSDg4SDhYSEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYGDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEgoGDjYl/fX+DhIaFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg3yCgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgICCgYKAgIGBgH+LlI+Mi46OjYiHiIWFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIJ/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX19fXx8fYB/gIB+gH5+gpSRjIyNjo6KhYaHhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoCBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2MjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIyPjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaFgoSDgn+Afn+CgoJ/f4KCf4CLkI2Mi42Mi4iEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gH+BgX9/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+fn58fHx8fH18fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3x9en1+fn+AgIOHiYmJiomKiYWIkY6MiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4OAf4CBgICAf3+AgX9+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH19fXx9fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiY2Rjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjpCNi4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYSEgoGBgoGCgYCAgYOCgH+Bf31+gH58f3+Jgn9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fHx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICAg4F/gIGEgX5+gH9+foB+fX5+gIB/gX5/gH9+f4B/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgYCAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fYmGhoWFh4WFhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIODg4SEhISFhIGBgIB+gIKAfn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKDgoSCgYGAgIKBgICCgYOBgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Bg4F/gIOCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf35/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH5+f39/fn1/fH5+foF/gX9/fn+Af4CDgoOAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fX+AfH9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF+fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN3dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9+f398fn9/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgIB/foCBfn+AgoKAgYOChIWGhIB+fXx8fHx6eXZ5eXp5d3l2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eX13eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH99fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Afn5+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/g35+gICBf4GDgoODhoSAgX58fXx8e314d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af319foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6enp4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+fn18fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYGBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gYGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgICBgH5+f3+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/f31+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CBgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXZ2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKAf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gH9/gIGBf4CAgICBgICBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHh4dXh4eXt8fH18e3x8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg39/goGEg4OEgYGDgIKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCf3+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEf4CDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f317fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGDgYCBgICAgYKBhIB+gYOCf36Ag4KAgX6AgoOCgIGBgYKCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4KEgYSEgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYKDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GCgYCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX56fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgYSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4OEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODhoKDgoOBgoKEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSFhYSFhISEhIOEg4GCg4ODhISGhIWEg4OEhIR8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYB9gXWBeoR/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fX5+foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZzhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fX6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3t/fXyAfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgX+Afn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSBgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhISGh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3p5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYWFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHh4aDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fn1/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoeGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWHhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f35+fHx9f317fX18fXp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WEh4qHg4eFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaHhYaGhIOEhYKBgoGAg4OCgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeGh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoeGhYaDg4OFgYCBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4N/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfoCCgn1+f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOFhoaGhoOEg4WChYGBgH9/gIB+f4CBfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aFhIaHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCf31+f35+f4R+e398fICBfYGAfX6DfH5+fX1+e357e3p5enp5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4F8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f399fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1NXU1NTV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fb29vb29vb29vb29vb29zc3Nvc29vb29zb29vb29ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0j4yMjIyMjIyMjIyMjI2IgYKBgYGBgYGBgYGBgYOLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E9P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFpVVlZWVlZWVlZWVlZXTkNDQ0NDRERDQ0NERENGU1NTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpZ5fWVpaWlpaWlpaWlpaW1NISEhISEhISEhISEhHSldXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqjaGRlZWVlZWVlZWRkZWVdU1RUVFRUVVRUVFRVVFZgYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs7Pzs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzMzMzMzMvLy8vLy8vLy8rLzMvLzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7O0NTSz8/O0tTPzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19bX19fX19bW1tbW1tbX19fX19fX19fX19jY19jY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Oz8qWpdHP0qig0M/RpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8+cqp2s1rKeo6fWr5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DLlIianciempOdwJ6YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0b3ImZusmqGctJicop2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Sl5SirZqWrbmGnpavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Ts5vEna2YgaCWeJuEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0c6NkKOcnaiInHmfqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHL2qickbmvppyKva2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJjqWaoKWml5edpaeWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HKu6Gmp5zNoKukm9Cfq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09OekI2218WQjbfXwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0rrE1dHUx8PV0dXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLV1NLS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKQzxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioaCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpyenZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpqampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpual5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYm5qZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6OjpKKhoJ6bmZmYmZmZmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoaGfnpybmpqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56bmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmpmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZmanZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmYm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6JkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6KhlZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6qpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapaekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66vqqqrpKGipKmnpqmoo6Kcm5ukoKWoo6CYnZifoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKelp6mnqaijp6aZnKSmoqGhoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+hoqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXFBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKSioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndiX1xVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6KvqqqsqKirsKmoqqihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltaYF9aXFZcaGRuY25qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustq+zsKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnaGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eWpiW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKumpZmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odWtxaGlpYVlTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW1vLy+vLy+xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1r7Ogp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5rY2Jud3V2bmxbYlFWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbWZudXFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppqWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3RrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKastLWsrqWko6ikoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ4c3lmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDw8HEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6ypo6GtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMnIyMnHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraaqu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd1aGppdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8HLy8jGzMrOxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwLu+tLCwsMG+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVudGJdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBwsO/v77Ey8jKy8m8vMjIyc3Iw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8C/wMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVmY2pkYWptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDubi5vL3Bx8HGu7jO3c7DxMDDwcLBw8LDvr3CwMDBwsvDxszLxcjRwrC+vri6u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjZGNqYmdjW1paXFlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9v7m+urq0wLi1t7Kuuru2wLfA3p6Qwr/BvLvFvbvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmJnamdmaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLevrre0t7+60MN9hsq+w7W6x7e2ubu9ubq2u8XFyr25xcC/vMG+uMa8wr+8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHFtZWVmb2lla2hYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5ubm/v9edd4GpxMe3ubiut7W4urS3s7vFxsvBvMbAwL+9vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NmYW1gXFRJS0pESkJDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9vrvEtrW4t7rDv8W8wc7EgHd5lMbPwsC4r7W1vL64urK+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFmbGludG54Y2diW2NRS1RIRUVDSEM8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vr6yvL68xLeyurCjp7mzvcfMonR5epfP0czKxLW6wMTIv7+1v8G/xsa/y8bDv8K8wMPMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBiTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLGzwNzbxbm+vMS+uKB3a29xa4CVuIdzfn+ZyszLzcrGwsTLzcW/ub25ucDDv8jGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXV9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLW8tsGKrdjEvrbAvp19ZFpnUk5YXHZ8dH6Cn8PGy8jBw8HAycrIwbu7sLO9vcDFxsXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3hzZ3BdW15dWVJGRENNSUFFPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2usC3ZW6mycC2t4ZiYGZUZF1OTlFUaHR7iKS+v8bAucC8vsXEwLW6srCtv7m/w8fDw729v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f312bHV7cG5pW19gWVNQQUZIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLjLtW1nb5i1uIRZTkZmTE90amBPTVh0eo6suLfCurO7t7u9wbWeva6wsLazucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3V2d25xYF9mXVtUSj0/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa4zbZ5dWVznKJeTkdVekxIZn6Ug1tDdYmZq7G3vrmytbK8ub+qiLyzs7efqLi9w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVteT0hCPz1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmztsezgHlxbIt2UUVHdH9NTk9fioFwRlJ+prSwtrq1tLKsvLm+n3e5vLm3dpS9vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZlhcXVJOTkE+SkJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7e9uY2Cenp5ZEtHe3xhTUlRZaelYU5KcK67sLO1srSvrLu4wYxvrcW4rVx2uba8vLi2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c210aWxdW2pUXVxQTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7+dh4eLiFpEdpdyW1pJXmBSkXFubaDBuLO0srCxrbC5uL9yZ6DCsrCnpbGuua6qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+2qZaPk6hPSn2zbGpxXWtedXFjY26HsbmxrbOvrqyttre0XYOlq6SenZ2cnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6aim6OclZCMj4+Qk5CXlZaYn56empiml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3pjd2xuXFFoVFBOR1BNTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqbOzoq2VTFRypnN0fYxzTm5tZXBwbpOotqqytK6qq6+wsKGxpp2RmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mao5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dn1ta3tkaFVRY01KSEdPUk1KTkc8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqKCtwb+oV1p4dW5xWl9kYlxZW2lsYmZzg7KvrrO1qqasq6OemZSNkZaXmZmcoKKinJ2lnpukl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3h8ZHl5YGJSVWBISUpLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWdnr+3eGNyfGZnZVdaWlFKR0tPUExVYl+bsrCwuKymoZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKqyrqKZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKTk9VTFNMQTc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6pp52HYVhmaFxOSkZEPkBCRUJDTFZPfbGtrK+nn56ioJaQk5ugm5mXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFJVSEZVVkpCTEc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCef2NlZlhKQklPZlJLQUM+QEZJSF+jqqqppJ+fmZKRk5iYlpaVjIiLjpWdnZ2dnpeemaafoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+np6Wkn52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pdm1obVxYXENXTkpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOgi3drX1JLQ0RWf4t/aEY9Ojo5OFGFqq2pqqWfnp+io52enZqcm5STlZSenpiUhp2aoZqrpKyysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqzta+zrqqvo52rp7axraKvpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHJra3RycWhWXFFGVEhESlBJP0VBNEZHOTU7Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn3VpXlRKRkRGZ7PEwY1dUElCT3uqsqejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeG2IoKSiq6uzvLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3xMnJw8HGvrq0urq1u7ewtbKqurKuu7e/u7qqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGtlWltGS0xFRFNNREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdnJdqV05LSUhIU33Ry7STnI6Clq+toZmbm56emZeXl5KMjpaXk46NkIuCg4J3c3FucY6lrLC5vcW7zcfLv8LMzs3Mx8nRzM3Mx8nFxczR0tXO08m9wL/Du8bFyMXR083T0NPTzMrCxcbGysjOv8jRzMfFx8XBvMPBv7+/tr6zrr/Aw8PHxMfErr+4sri8w8LCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MREVQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6TXE1DRklJWWaSuqyNg7S5sayjnpyfmpeWlJKUlpGQj4yHg4OIh4OAgYGAeXJycGx4psHKysXKwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LV1tPUyMzGzM3J0s3O083FyMnKwcbLx8nJxr/Ds7PIxMvLy8/Gyr++v73Bx8TMzMjJwMO/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnl5IPkRFV2aGrJ+eoa2ro5ycnKCkoZ2alJOVlIl9d3BrZWJocW9xe4WKgHZwbnFzb4jDz83I0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLV1tnV19PX2M7Sys/RzM/QzNPQv8jHysTMzMzOz8XGx7a/yr/SzcvPxsnIv8TDx87N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSUo+O0E4PTQ1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoalwR0VFSGKEvMSqq6qblJefnJqgoJ6bnJmViXdpY2BfX2BfXl9fXWJsdXNxcG9scnF1j73JxdTW19fX09bP1dTa1NTOz9XU1NHRzNHN09fW09XQz9LT0cnT0cjQ19fY0dfS2NnU1szPz8rN0cvO0MDGw8jGzs3R0dHIzM3AyszG087MzsjEysfHyMzK1NTR1c/SzNPBucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaOvgmJranqcwr+uqJ+XlZeZmpyfnZicnJJ9cGVjYl9fYV9eYWBfYGBfYGZtcHBua29yd3eZyr/S1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY19fLyM7Eyc/NyszAycDIys3O0MvQzc7Mzs/Iy9DQy87KwsnHyczKy9LTzdPR0dDQyr3IubCuu7i1qrawrai4rbO+u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg2NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramnlnuIjKnNzrGbmpWUlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHV2eaS9y9XQ1dPT2NbOztTLzc7FzsrS0s/Hzs3N1MvO083L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXMwsjJw8zDxcjKys/KzczQzdPLxsjPzcjHy8XGwcbKzM3Q0cbQzs3NzM/Fx8G4ub3Dw73DuLKyvrG7w8O1qpilopmWkZWVkouUjZqRlJSPj5SCiYZ5cXJrbWdgYHBoWFhoVkxGTElQUUI7Qz47Njc6ODo6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKigrnhlg4O6zqqUjYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNhYGBfYGFhYF9dW11ncnFxcnNxbnJ5o8XSzsvQz9PUysXJycbGv8PGz87HxcfNytLIy87OxtHS0M3M1MrHy87PyMfP0svRz8a6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL/Bx8zMzM/CysvIx8vQxMXHu8fDyMnCz8C9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7utpLBmZnyM0auQjo2Wj4aDg4OBfYSEfnNgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3230MfJys7LzcS6wMO7u7q6vsnGwsPAw8jLycjKyMHFzMbIy83JxMLKycHCzNDFy8i/ucG7xsi+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xry8wMPFzMXFvMDKwsXH0sXAyb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZujoJuUe3dydGZpWmFubFpbWFJETEZCR0RMREZTQDU0MzM0Pz0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srKkXWpzpriOipKXhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lrcG9yj8W8ycTLv8bBsLa6srKzsrHCvLy8urjBwcHFvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7u8bDv7zBzcPGvr61wb3Dur3Gu8K6s7zFxMLCtr+1tb6/u8zDvLW6yLq/vsvEwcbCxcnGycbQxsLMx7LHycPOzcDFw8C9s7ewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1tfNys/FycXHwLnFvauvkl1udqiSi4iLhXiAhoZ/foR7dHRjXFxdXmBgYmNiYmVlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnicvMu/wrrAt66wsaeqraynuLW3tLOztLu1vrK3sLWvsrzCvMHEvMC7tbK6vsC4x7m0u7bBwry4vcbBw7u1r7K2ur+0xLe7tKu4vb3AvbG6trC2urPFvLauu7+1t7TFvL7DxcDDxcbIy8XAxsa7x8u/z8nHw8bCw7fDvb22ub7Hv6y1urW3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcXAvrm3ybaqsIhecYGXjYWIiXt4foaGdneBfHNoXV1dXV9gX2BkYV9jZWNfX1xbXlxdXlpcW11fa3BuaWZqbW5ye6TGvri3tK+rrKeeoqqnnquts62qrKm0rrexsqmupqyzvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLLAtri9sLCnsrO1u7yrrrWmrravu7Kwqrmwrbuuu7i7wMC+ucK/x8PFwLzGwcfKuMXHxb/HxMO6xMbCu8bJzMuzucK9u7OJc3Z2a2lgYmxoWVdXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXQx83Bw8a/xMTDw8rBycq+v7zAurK0tMOuqbCMaGyEkoeOj3t4foqFenuEgHduXl1cXF1fYF9fZGNiY2NiYF9dWltaWl1aWlpaXGRub2hnaGlrbnGBrLivtK2lpKenmqCloZqcpauupKiirKqtqrCkpp+qrbW2sb25r7evqa64tLS8uLS8r7i5tbK7wbLArqWpo6uxsrOovaqrqKutrbSzpqiuoaSvqbKmp6iupqi3rLGyt7q6vLG8vb6+xL+1wsHHyLe/wMW3xMO/u7/Ewr7EyMzKv77EwMCph3N0cmppXGFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HKvrvJtr3DvrrJt8HDwbS1u7WwrrS7raepjWlghoSHi4B7fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9eXVxaWFlbW1lYWlxfZmtmZWdlaGpvcoWppKqlnpuhpZSepJuYkaGjqqOjoKalqKWtoJ2cpKassrC2t6ewrKiqtKu0urG2tq62ubKvurqxtqSgpKCmsaerqLmqpKenqKeyraCnpp+bpKasnp+no6Chsa2trLK0s7Swtby2u8HBsrq+w8GyubnDs8G9v7W4vL2+vMLHxMLDvsDEoIN4cWxhZl9rb2BUWV5ITmdPVEdFS0Y8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9taCelZ2hprq2q7Ozu7PEz8jLwsa4tsfAzL+4ybe7xbizxLizvsCrtbuxq6SusqygoY1kb4eFhoB8eXVzb21qamlwaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1vh5yon5WVmqGWnKKZlo2foaOnnKCgpKaip56bopufq7CtsbajqaqqrKyktLmtt7Css7WusrWusKqfnp+korKkpqm4raKmpqCorKuZn6CemZ2fpZqZo5ybna+pq6eqrKytsbK4r7i5u7C2vLy6q7OzubO+tLaysba1v7a9wL3Dwbu7vZeEenNsX2VeZGRYVFddSVdcS1BHSUpHQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vDw8++use4t763ssG0sbu7q7i5sKGeqKqml56QZn6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2FhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3GMp5yTlJSbmJuil5aRnKKiqZ6cnaWmoqWcoKCbma6urq6yoKairqunorWxsrKsqK+yp7qzprWgop+co6Gto6Kqtaqio6aepaajlpmel5mbnaCal52dnZytoqunpKSmrauztKq1sLOrsrm0r6qvsrKzuLOuqayusrixura6vb+3s7GUhXl1Zl5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLMyMa/xbbBwMbOt8DEvbO5ubK/trG4uqyxtK2emaOon5Kah25/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqGbk5SPlZeXoJeZlZegnqGdlqGhqaSfnqidnJqrp6+wq5ujpLiqoaCuqLaqpqetsKS4sKS3oKKcmZmqpqGarLivoqGknKKfoJOUoZSWlpuYl5aXnJWfqp6ppKKdo6qqsK6otKuqp62zsKWrrrOxsK+ur6anp7KtsbSwvLS5t66jlIF5dWReYVZZV1NSVEtNXkxPS0dHTExFPUE+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2nqKOqu8C9wLmutLjBzMfFwsO9xbjIy7LBwsGtvLu0u7y0uLmvrq+om5igp5OQioB8gHx3cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmmBlpOVi5KUlJyZnZaWnKCcn5ahoKampKann52fpqCqr6afoqS3qKGhoqi0oqWopbClsa6stZ6gnZWVqaGilK2xsZ+io52emJuTi6GUkZOYmJKXl5iXnqecp6GimaOlpaukpbCnpaOrq62mqa6vrquoqqmzpaasr7Sxr7y1sa+voJJ6d3JlYVxaXVhOTFJHUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaett7u8wcW6sbm1xMnJwMPGxce2xcSywr/Fqre3vba9urq1squsppiXnqGLiHOFh352bmNhZmloZmdpZmptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVNUUlVgYF9gYV9hYWJkaoCTk4mQj5STlJ2VlpekmaCXnaGloa2mpKSjo6Kcqqulmp+lsaqgoZ2lq56ooZ6trKmprq2ioaKVmKObnJCrqbCcoKKfnpeZk4qekY2Sk5aQmJiTnKGjnaSgopWgoqSmm6OrpaKkqqOrrqWusqmmpaamtKapqK2ztbS5uq+prJ6McnFvYFtXVlVSR1FPSFlbT1JJVEtTTEVGSUQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kvq7Gtnainr7m5s8DIurXAr8XIzLrByszItcm8sb7DyKyxuMG1u8C7tLOpqqSUmZqbh39xiIN7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eXl9fYmRtjo+EkYePkY+ak5WTnJujnJuhqamrqKynqKakmaSvpZWZpa+qn5yZm6Cer5qcq7OgpaafoqOhlJOblpaSqamsmpyfoaCalJCMmY6MkIyRjZaVkJ2hoKOdm6OVm6CjoZeiqKOiqKugq7Ckrbelo6Sira2qqKuvs7ezvrWyq6+YhXRzaFtYWVNVUkVYTFFbWE1UTlBMUFFJTklCPD8/QT89NzU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqu8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9urK0paiflZaXlYZ5dIB2d25taG1tbXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXVxcXl9gZH6MgYt/jJGKko2XkZeZoqCboKuqpq6sqLCkqZqfraCVlqSop52XkI+anq6XmKiqmZ+dlKWgnpKQkpGTlaeqpZqZmZ6elY2Mi5OGiY2Dj4uSlZGgnqGjmJWflZqhop6Um6Wlp6iooLGxprG8p5+jrLWrrqewtbC4tcCxrbGrkX5yc2JWVFVOUkpHVlBSUUxMV01KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OspbG3qqWisaudqqepsrGktsa0ubqzysW5usHL0Mqxtri7vcHDsa+xt620s7qysqGim5yWlpOCfnZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domOh5CKl4mUlJibmZ6pm6CqpqWsnaiaoKack4+fo5uXl4WEkpujkJWjnZaWloiim5uUi46KkJqkp5yVlZebkZGHlI6LgYuNgJCKkpKSoJqgopaUmJmVoqaZjZmkpqimoaC0sqeyt6Gcoresqq2ksrKmtby1rKuxo4l5c21dTlFRTE9DTU5OUEtGTk5KSk5NUUhNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKSnpKqloKilpbOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq25rqyemJmclJKGeoJtX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW9zdnGFiIKIgJGEj4uUkZSeoY+bnKOipJmll6KclY2HmJqMc42Dfo2XloaRmpCUjo57mY+cjIKJf4mYn6OekJOYloWNg5R+fnSKjnqQh5OQkJ2ampqRlZCdjqKjjomaoKGjpJuitK+sr62fmKW4pqaxobCunLC7qqmvqpmDd3NjVk1ST1BOQ1NOTFFMQlBRSElOUk1ISkpESkxGS0o9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGrrcOtp6Kmkp2mtauino6UlZGOfXZ9ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11pbHJtf4V8dE5YcpCDl4eOnZeLlJGfmJ2VlJaVj5aJgJOJXztWb3yLlImAjJKMkIaGc4qFloF5gXuGk52Tg5WOkZCDhn2TeHFwhY19iYGRjY+XmpmTi4+JnIifmIiHlp6aoaCXp66pramonpats6KmrZmsq5ios6KpraOTfnJuYFtOU1JXTERUSlBMTEZOT0lFTFFNS09KSU1QRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKeoqKOqsKintMG5sLWwx8K3s73Pv7mvrrXCp6rFqaKdmIOUm6+hmJaFk46KhnxydV1RTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFFCQH+VkpJ9iZWNhIqNm46WlYmSiIaVhnmJf2BKUW54ipGEfYSNioV/f25+f5R3dXZ4hI2Zb1GNiIqGe354lHZnd4aIfYqJlYuNkZKXjISKiJWEmoyChJKalp6dlKSjqKmlpJ6asKuhpKSRpqqWoqqcoqaoiXVtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FRT0ZJQz03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+hr6GnqKWnqK+tqrW8tre3s8G7tqe5yLi2qKi1tqqyvKadlo5/iZOolZSJfY2DgXx3cG5YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXFWPiZSJdH+HgXyFjJOCkpqLj3uGj4B2gHhzbnVwdI2NgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gHZycpJ3aHWEhISFe5WKiIqNi4B/hIuMgJSDfICPmJSclpGenamen6CdoKmln52YjKekk6Gglp6epIByaGFcXUpWT1JHSlhST0pMTVJKSkpMUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlrKuwsaq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGNlICNm42QfnaFd3t1bm5oWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfHhmd42XmI2PfWh5gXZ4gImPfYSYkoFxh498d3tva36tfHOQin97hpKBfX90ZnZ8hmxvaHN9iYyIgGx5cX1xbXaPcWhxgX6OcEOLhIKDhX93d3qLhX2Me3V9jpKPmIqSmpujlpmdmp2eoZyWjYqkm46el46WmI93b21lYlpYWFVRSlNVVE9QTlBWS05LTk9KUU5IT09MRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmxr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mOhJJ5iI2KiXVwe210cGlsaVdLRkdFQUBDRElMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnt9fnt2b3RzhYJ5gXhwfI6MipSDlpeYmpCSlZeZl52WjIOJnpGLko2GkJZ/bmlub25YVVhUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCjrKqota+urLS/q7zCv6aimZWkl56NhIuUoaGYmJGTi3OOen+Fi4V0bnRrcGxka2pYTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXGCniGKaaXR6ZX9wbX96i4l2gYiGdGyakXRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxf3xocXF8bpONj3xzfXxxcG51bYJ/d3l1anmJgoiJhJaSkpCLjZGUlI6XjYB5iJeIhoqGgJCIdmpqb2hlWFFZV1lZW01QVVZZWE5JSEVKSkhHQkBGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfp7uvq7KwwrG7w8ealo+UmYuOhnmEkJiUjZCMj4Zxh4Jzh4yFem9ycG5vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgYWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiYBnZmJqbnJscIN1aW9YdXCOm5J3bH97fW1xbXCAenN1bmJ2g36GgIWQkIqKiZGLkYyLjoN1eIqOgH6DgH2PenFwb2tgW1xeXFlYYF9STltaWFdMSEpGSkc+QkFCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ2kp56vlaW1qq6xrsGyu8HGlpCMlI+AiH1ugZCSiYOKh4+FdYKDbJWIh3t0eHhsd253Y2leSVBHPkA3NDQ5Ozs7PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgISZhJucYYaqn52Lg5CNeneIfomIjXOKl5CDel1kcXR6e3eKbWhqYnlvhZCCem6Bd3SEenB0eXdrbmldd4d8h3yHh49/i5KXg42FjIZ9cYR/g311d3t8iXZwc3RlZ19bW11UXGdeV1FVWFtVR0pKRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIySnJ2fppGgq6CxqK/AsbrFupaOkZOHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fIF+cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkqiHgJiYipx0bXyBhod9jmhnaHh+boWHgoVxhIVHbIB3cnl2aG1rX3d9g4h/iIWLepWdm4mLiJF/enWLdnx4bW93fX9zc3JsW11dW2NjWGdmXFVPUFZZUERMS0ZOSUNGQ0NBQENBPTk3Nzo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiJGBmpWCoaGYlZuapa2Tmbuxp7vHw6iLjKGlj5SJgZF8cYOen5Gcf3aFhYqQiJBpaG+DgHSMh4SLcYWCd4d/e3aFfW52dWaAlI+GiYmHiIehqqKWiY6Yf3qCiXp5b2dreH56fnJqZF5aWl1qXWFmYFlPS05XUlFIUEpETkdDSkRCQEREQTw5ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMgIGRjoqam6Sdoaymq6+wl5GRg6GUhHh3f4yUfH+ShpKVf4qAkpuOg4CBjIuCiY2Df4l/bXBqXUJBNC0tLy8uLzAyMjM0Nzc4Oz0/QkRISk5RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2aj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPoZ+TmJKEi4WPmZGWbHB1iYuCloyNj3ePhHFshIGKlpGDhYhyiKGWh5OJjo+WpbWpm42VooOHk4N9f2tqa3yAgYFzYV1jXlpma1xsa15XS0dPU1FOTUxGSVBDRE1GQUNFRkI+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+l5aalZ6enKegqZaTmJ5nZaSafoSSkXmAkoiQkn2KhJiSkYKAgIuNiYWQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0VOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZyopaKZoZeilZ2fqJ6oq6CorKmqtZervqu2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGJlaKamnh6fpSYkqGSlpiBlJ57dpWSq7KIjZeffZSdnI6Tlpmkoqa2sJ2RmaiIlo+NgYhsc3J8f3xxaGBcYF5iZ2NgaGdbUkVKS1BPSUpMRkZNQ0hMRkZDQkdEQDo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJjIqEkoWDhomBgIZ3X2JQNDYwLTEvLC4wMC8vLi4wMDE1PkFBTVFSU1BSU1VSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYaQd5WLo6eqtL24pK6srKeotKuwtrKyrbuxs76cs8Osu8nLt8O/uKWjsLKsraqji5aYhaamoKKXgaaZjaKqqKSIhZSkoaCqoaSpj5yxi5Wjp7e7m6CjsJOinaOekaSiq6+ts7WilKSqiJmJkoqVeXp+hX5nYGhcZWJdZGNfZmZfWk9DSUhUT0ZITEZKR0VGSEFLRkNGRkE6ODY9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GPg4WAi4WGh5KGgoSJhoiHh3FuYUBFNjQ8Mi8xMTAtLCstMS4tMz9EQU1VUVJTVVVXVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqscHHw6qzxbass7+zuL62v7TBtru7o7fFqLbJx7W+ubSoo7StsbGbmZKan4mnr6ullHafpJehq7GzmJaqraiutruyuqyvtaKxq7G1u7e0rrWgp6ejqJqpsK2yuri4p5u2qYyljpGTn4Z4goN1WWFkVmVhYWNgYWZfW1RKREVMVVFISUpESUdFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFjZFd5dXGBlH2Eh5N2hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjYeEgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0pBQD5HS0ZFRDs+QDdENz9CSkpFRldUUF6Ppa2jsbTDtrjBzMm2u8S9s7PAt7fBtb+wt3Sxs6a6xaSvxrmxs7G0qKS1tqqxoKGWm6KSpbCupq2rp6SYoKyzuqKpsrq0u77Mv8XFvb2zwre6uL63ure5rKywprGqrb6wvbvCwqyZuqiUro+Xl6uJfYJ8aldiYVhqZWplV1tkWVZUSUdHTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVVadmpwf4+EgY6EbnpzeYdiuKGZo4mVk5aTk5ONkJaSh4Z7hoGNloqBhICKenyLh4Z8ioOBioOVfXh6dWVPXGRHRUw6UWNhW15TRj87SFBEWmNRUVlYWWdZVGBgTVNPRUE/SUpIRUZBQEM8RTZCPkhHSkxTWlRdk6+4tbq5yb+6vcnMu7zAvLe1u7u3vbS6scZgdbKlsZqeqr2qpairqqOisrWhq6ielZafmJ+upaempZ+jlKKmsbSnsrK9tsG908nK08bCxcvBysPAvr2/u7y3tLC5t7bDusW9w8iwnrmqoquOpai2iYB/cV9iYl1XYV9oZlJYYVZSVklFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdsbHGQjYWQc2xycnOI1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaKf4N/gnh6i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV9uX1hnZVVZVEpEQUtLSEZJSEhHQkk5RD9IS1RUVlxaW5K5wLm9t8bAurjKy7q3uba4ubK3tbSutraYZHWonK1wXqGtnJigopuknqullKCfkJSOlpiXqJ+ln56amoSknaylqrCst7C9udTRz9fPyczRzM/OysbAv8LKvcG8wcDExMXKv8jOtKS7sLSvm6u5vJp/eWxdX1xYXWBZY2NRXGBTUEtDQUVGRDxART5CSEJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KQlG9sb3V1iLOsoaGfi5mcmYyNlZGbkoWKin6Ih4yQi4l8gYNze4qDhXuJdIGJhpV/c3t4a211e2hyZWlsaWZqaWhgZmlobFpudJetpLyIh2dbb2hdWllUSEtOT0pLUUtUUUhMQUpHS1BfXmJmaWGXt8ewubO7vrWxxMe1r7mwsLursrGnqresjbannZunmk+anYyOoJaRppillYqTk4mQiY+RkZ6boZealZaHnpqmm6yvqK+ns7TU1NTW0svP1NXO08/NxcLJ0L/KycrJ0sfMzcLQ0riww7zEuaW2usSigm5jXFxdWGBXWGZaUV1XT09CQkhFQkk7QUQ+QUc/P0I3O0M+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmIJocW95eYOgqp6ml42bm5eLjpWRmo59iYuFjoqKi5CHfISCcH+HgYZ7h3KDkouPfnF4dWtxeH5xe214c2xpgXBtY2lucHhpd3x+y7/C36dtY3huY1thYEpQUlVOWV5QXl1NUE5UUVVUXG5udoJyl624rLSnsLarrLzAsau1pqW4p6yuoau0o46xrpqYmIyRk5GEjpuBjaaRnImDi4SKiYSLg5OVmJeTm5GcmJmZnp6rrKSnoaytz9LV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbFwM7Hx8OovrfQnnpuZV1iXFZgUl1bT1BUUE5IPkFGQUJFPEBCPkVEPkA/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bHdwfX5/oZ6eoYuNmZOTjIyTj5aFeYWPkI2LioiRh3+Ce3J+f4GHeYR1hZORiX9vdnJrc3x8dnxzgXdxa4BzcmhvcXp5cnu+y5p+jLKDdnKEdmhhal1DWlpbV2VkWGVrU1hdXGBjXWN4e36LgZmqpKShoKGopqqwuKqltKOhraKjraKnsZ+JppqUkpGJkY6IgZSJapWijZmEgIV9kYODk5ati5WNlZmOhZKQnZensKGgoaSkqMjNz8jCy9HU0dTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMTDy4tzb2JgX1hUWVJcUEpHSUlKQDs6O0VBRDxCRD5IQj9CQzs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5aJj4qIjoePf3iElJmKjYiIi4l+g3hze32Dh3d/eoeRloCDbnhwbXV/dnh9c4V8eW2HdnRufXaEdXl7nbWMPEGLxqV+jXxpZVZJQ2ZjZWNoamRveFtfZmhrbmlugIOJkYudnqCdkJeYn6OkprKkpLOgoaWeoamgo7Gchp6SkpKQi46LhoOQhH6cm4yNg4SFepR+gqmVo4ySipeSi32XipqRqrOYmpunnKe9w8a4tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2trS1b/LzLR4dm5kXVlSVVBaVkZHSkpFRT06NzlAQUI6SERARUNBQ0I7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqCh3x4hZaXiI+Dh4WHeoR5cXp7hIZ1eoWOjZ16jHB8b296f3F7gXGDh4Fujnp0d3x8gnV/fIeIsHRYqcK2jJKCcG5iPV5ocnBxcG54d4FlaW9ydXhye4uHjpOSm5WglYeMk5ugm5+qn6CtnKKamZ+lnp+smYuajJGRjYR9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI2Ui4Z7m4iTj66qlJWXnpimrrW9qa29xsvIycvLz8jD0crU1tnX2NfU29fT2dvWz9va0dbJ1MuVeXtoaFtZUFJTXkhDRUlJPkE+PTc6PT87Pkg9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoKEfoR8fISXjoeLfoaGgHeCeW57e4eBdHmSno2gdo91gnR1gX10gIRvgY+Cb5KEdHyBhXp2hnyJt8alwsm3gZabj3dwZU5mY4F6gXeGopCLeHl3e4N/fIR2bZOWlJWPmJCDio+WmpeXppyXoJefk5KXo52Zq5aRkIqNkYKMhYmIgYWQkZ6cmYmFi4GGl3qIiJ+Xj4iNiouCfKGJkIu8oZeTl5mcp6Wlrp6otb7AwLnHyc3Oxc3K0dbW1dnV19vU19na29fb2tnYztzGhnp5Z2hlYFRXVlVNS0ROQzs8PTw5Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eot8foB/gH2Fe36BkYmEhXqEiHt1fXRufH2GfnR+kp6Rn4OSfIZ+eI59eYqKboKagHSYhX6BiYV8fpB6j6mPkMKgvIyco5x9iYR9iXOMin5zppqcmJSFe4+QiYRoR3CgpJ2Mi5CShYmLkJKVj52ak5WRl42MlZ+dlKGUko6NkIt+kI6Oi4SIkpaan5+JjJSSnpGCi3+lmYiEjoKGhIClhoqLuJidkZWWoaagnZ6do662urWrv8bK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3h4d2tpZFdgW1RQT0hETUI9PT45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmAjopxcnmKe3p/fX98iHp8e4uHgn50g4Z5c3pzbYF+hX13hZuhm56UkoCLiH+Yh4Cckm6HqIV6oIt8kI6DiIScfpqRio2jop+QpK6gi5GLhYuBkoZXcq2Ln6ubj4OYm5CQjlyCopGCjJ+TlYyHiIySk4yUlJSPjI+KiJabnY+VlpGLkpSFgIuIko2Jip2WmaOjhpKdlqGKioiOnJCDiI+Ag4eFpIaMkLOYnJKUl6GgnpmSnJ2nsbispbzCx83Hxs/Mz8zO18/R1K7W1dja2Nra19bZ2p9vfHRnZ1xdWFNXWENASUQ+Pj46NDk6Ozc6OzozOzs/PT43Ozk6MTlHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieG1ifpKDbm13i3h5fnqBfIZ8e3eGhH9zcIWCenV2dnSEgoR9f5Kmo5+lopaJnY+Ul4uKqJdyirKMhKeRhJmThJmLopagmJOJm52hkqmvn5GVkI2NiJWLbo23hZrEyLKcoaWbnJiWkbKRZKTNx5aPhYeJkJKNjZOUioWKioaWmpuPkJSThpWXhH+Pi5mIjZCql5eko4iZnpabiI+Hl5eKhI+MgX+Hj6WJjZOomZaTlpmhmJ+Zk5yborO0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6Ccn9oY19dXk5KVFpCQUdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj46RU1GSFJXU1JCY4FGdYGOfXxtfoh4en56gYGDfnZ2gIN8bG6Lf3l8eHh8hIeKfYqjs6ejqrOhlqefpaSWla6ig5C4lZKzmYyhoIykm6+jpJ2YkKeWp5mtr6SXlZaUkIuYmZagwI6kybirm6KmrZiRm52ynYaFqKKcmIWIiY6VjYuTj4iBhoeIkpiUjIuTk4aUmIaEkZCcdJGZs5aXpaGInJmTj4qQipeaiYqWjoZ9jJieiZCQnJqZk5iYn5SgnZWem6GxrqKkt760xcfEvcPDv8bNysnSp87N09LQ1tjT0Ni7cnl2XGBVX1dQSElORUJDRTU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1NjY9OkpGREdOW1xZSWZgO0iEi3p7boWGenyEeICFgX5weHx9fW9zjXp9gXt4houJhoOSp7usqLK9r6Wts7Ooo6KwrIqZtZ2juKSVraSWqa23pqSin5mpmKmjr7CpmpmclJWRl5+Xmbu7rcmhaba4q7CUmJ6jq5OXvqNeqrKCiYqNlIeRfI6OfYOGjo+UlYiHkpeMkJWNi4yXmJKdmbSXlqudi5uUko2QkoyZm4qSnpCLiZWgoY2UjZianZObmJ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8jC0aHGyc3NxNfW0cvToXB6aF1ZU15ST0ZEPjxDQUE4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVHYmBicElAi4p+gXOGh32BiHWCioN/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruztMG8tK2rs7aMp7Kurryqm7ukqK25uKumpqKho6Oor7KxqpycpJibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIecrL2wg4yMi5CDj4ORj3qBh5CMjpyIh4+XjYuVl5SQmpadp5qxmpGsnI6aj5KOlJCQlpeOkaCRiZWbo6yUlo+UnJ6UoJ2bmKChlJqep6akoqSwsqbBx8OvsLq2xcTCvs2nx8PHw7zV0c3Eyoh0c2JcWV9bTUpCTEBFRz9BP0I7OjQ+QTw9NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxmRmBpZ1pdW5OMjIh7h4uGg4x1hpCKgW9+fIJ/cX6BepV6kZSUmJCTlaezxsm/wszBw7nHvLqvq7m7l7K2urLArqXApKuvu7yqrauiop2nqq60sKqbn6qboZuVn7C0p4uiurq1wburqZyypaSolIWOqsPEpIKLj4eIhIaVlI16g4yRjpGhjIyUko6Il5+Xk5mVmKagr52MqpyNlY+SkZSVjZCVkY+hlIaXn6CynpSalKChmaSfmqCcoJSYnqakpqakr62lwMTCrai3tcnDvrbOssS+xLyz0crIwrV0eW1cWFxpU0xIRExLS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk1lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoKQeY2hlqiampi6vcjIysHSycrCzLzBs627vqe5v728xLeswamssru9qrCpo6WjrK2zrba1oJ+unqWimKO0vKmbqLzBo7a2r6uSsK2rrJeGmqqmpZGCjJOllYmAdYqSeoWNkZCen5OPlIuPjZSjmZeclZSjn6qfkaWajI+PkJWWiHyPlZKSo5uVoKKctaaQnpelpKOlnp6mmJ6Vl5ulo6inorKsqLzAxK+ls7fMwLmuxLO7vsG4rMLDwsCYbXlhWFdcW0tLTUpGRERJQkJBQ0s6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djZeOnpKJin+Jn5OEd4V/lX9/kIiKkH+VoZqupqOYwr7Iw8fF083Ozcu7wbevuby0vMu8w8G1tryts7+5vK6vqKCop7atramxt5qeraKnoZ2rt7eppa++w7G9ubOnqrWzra6WlqWsqKCRjpKxxaeVjn2RlX2IkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuMj4+eiFqQlpeSlqWZZZijnrKllqKWrKyrp5ueppeYl5iVoaSopp+2q6m6vMO0prO1y8G4qbassrq4rqi3ur24g2xuWldUVU5GSlNOSz9BR0RESEZHOTVGTTs+Nz5BSi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZCDh6aTiIGHgpyEg5WQkJSOmqKfr76uoca8xcTGxs7OztLKvru1sbq7vL7PtsS9t7m3srG1s7izrKacq6u4qqinr7CXo6+kp6SktMCwqqy0vsK5wLmzp7m1uLKulaWtr66li5OVoY10wZp+l5mFj5aajLGVmpmVk5OZmaWjlZ+blpqpnZyhoJqLjY+WnWBKlpyalZqlllSWsJ+vnJ+llK+urKaaoKWUk5mZjpyfp6KZtKmqs7y8u6qwssfAuKWrq62xsaOhsbK0pHFuZlxaTlBLRFBQUFE7R0pJR0hCRD45S1U/QTo9RU0wNzU0NDpCMzROV088SktPVU5RSk9ISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1RRVdSc2JXRkiql5mgoqivmZGXh4unlo6IkoWfh4Sdl4+eoJqjpLXItKnGusPDx8rIyMzNxr66s665uMHBzLbIusG4tbqxr66ytKejm6qztKqopq2smaSupaSorLq/qKu2t7/Bv764srLDsbm9rKOutay6poicmKabdr+ghZmdjpOZmouvl6Gcm5eVm5+hqZ6ooJqaqpqip56YkI2RnYNudpKimpWdop6QrbKjq5WoqpeqrqWkn6Wpk5KZnIiUnKKelrGmqau6tr6zsq6+ubago6eopaecm6ypqYxjZWFfUktNR0hOSVVMPUxETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5ScoZ+7r5mUn4uTqpuRkpOJq42Hop+MpK2Uo6O2xr20wLrCwsfIxcLNyMK9ubKvubTAwsq1xrHBvLS6q6itrLCjopmqtLqmqaarqp2or6ejqqq+u6esvLO3vca8t7W4wLG9wLOptberv6WPo5eRoqC8n4maoJmXnp6Pt5+pnKWjm5yhmqils6GbnaacqKqemZWPlJuLl4mMpaKUnaKeoLSvpaWTsKuZq6yenqOjqZGVlaCDkJ6enJWppKKhtLS6ta2otbKznpyipZqXlZmqoZ53YFxfXUpIRkdNUUlNRUZGQlJMSkFFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRKeXpJ+ew6ybl6SXmamclpqaj6qVlaimla2tmaGrtsTCu762wcLAx8S+zce7vbmyr7izv8PItb+vvLa5t6ajqqytoKCaqqrEoaSoq6aeq6+soqmov7emrb2wt7bHtrW5uL+xv8G2tLO0r76jl6OWlJyUrqCRoaKlo6OfkL6lqZ2orJ2doZumn72imKOfoqmroZ2WjZWek56Hj4WNk56koJ21rKaclbKnma+on5qpnqCNmZWfhI6hmpuTpaSamKyxtrGqpaqtrJyYoKCSjpCWqJ6UaGJZYV1OSUdKTktIRURJQT1QSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGViVkyimqOcnsWsoZ+snZ2uoJOjn5aloKapq5e2saOqsrXEw72/tb/Cu8jCvsrItri1tLCzs7fBxra9sLi0ubWfpqyqq52dnqWjwaWgqa2fpKmtr6Kmp721prG8t7a1w7Kzt7m+ssPAt7ius7W1o52klZKUoa6gmaKdqairo5rDramerK2bm56ZpqC9op2lmKurrKahmY2Zn5KeiY5Xf5aepaGguKqnk5i2o5+yoaCbrpaejpmUnYKOn5eVjqKklZCmrbKrqaGipaWVlZyYi4+Rk6SeiWFkWmNgTEhKSk5GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dySEU2PXVlXEtNnp+hmJ7Dp6Wis6GcsqeTqqSgpJ+sqaydu7CorLWxx8TBwrPCw7zGw7zEyr2vsbatsLSvv8S1ubCwubWsmqiwqamanaWhp8Ksm6yxm6qirrCppKe9tqa3uryutsOts7PCv7LGs7q3rLS2raqippaVlaSsop+fmqirsK+vvLKmoKmpmZmYk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWdmqKfp7Smp42YtJyjr5qem66QnpOXlJqAkqGVj46foZOLpqywpaahnKCekpKak4WLkY2cnn9hZVtnZUpJTEpSQUNASUc7O0c/OTlOTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+jn5ugw6ikqrKho7SplbKsp6KksquuqbuyrLC1tMa/xMO1wMS9ycS1wMjCtau1qLC4rMDEtLeurLa5pZmrsauqmJ+ml627tJuosJutn660saequrKnurO3srjAqreywry0xae+rq23taqorKGXl5KmpaKjmJilr7iusrW2oJ+opJmVlZOkoLeipaaWrrKypqqmoZ6bmpqWmKifoJihnq+yoqaNl66ZpauXmp2kkZuOk5eZhZaflIyQnJ6Ui6mpqqKnoJieloyOmZCBhZWJlJ94Y2hda2pNUE1OVD1DQU5DOjpJQDc3UU9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVKcGhWQ1dGjHlmQzuko5yhpr+mqK+woam1qp25sKujqrS2sbC5t6+2uLjEvcPHvbzDwcbAuMHGwbqqtqStu63Awre3qqyxu6KVrbCtspalp5Cquamgp7CdqqCwtLKqqba1rLyssrK5t6y5sMK6vb6mw6uwt6+pq6unnpiZq6KioJGYobGvs6uxupucqaCZlpKXpqG3qaWjoq+xtKuyqKufm6Cgm56lnKKWnaOzsJqfkJOlmqCompWhnpWYiZSYk5aXnJOIkJuZlI6pqKefo5uXm5OHjpmLfYuWhY+bamhsYWxuV1BRWlRBQ0VUQDs7SUE3OlhQZF5QVldEWV5dTUxSTl5LSj5aY15OSFBOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oaqwq6OxuKmltbOsoKy0va6zuLy6vba2wMK/yMS5xMHAwLjEvcG3r7Woq7eyvL6/tKmusbael6utqK2Wp6iOp7ufpK2znquisbCzrKm2tLW9ra+xtaywtbHAusS3q7yvsbisraqjsaaepaqgpJeQmZ+zqrOqq7OanaebmpWNoKaktK6noq2trrGns62yqqScn6iknpWhmJuotamXmZKSn5meoJ6Qq56Xl4WVmIudmZyTio2Wl5qXpqWioJ2VlZeTgI+UhXqOkoOMlmVscmdwcV9GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTT1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FVMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSaoKSst6OsqaWurrapr7S6p6awt8W3sba+wMG1tLrFvszFucK/ur+5xLjBubK1rKq6tru5vrSqrbC1mJinq6qrm6yrjqu9nquusaOroLGts66utrG5t6mtrrGota+zu7zJsqq1tLG1sK+nobOgmqitoKWVlpuasqOtoKavlqGkmpqSjaKlp7KpoqeyrKq2pa+xta+kmZ2tp5qYn5mZrLiil5OQj5icoZiXlKuenJOAk5iNnZyalpGKlJOemqWhoaCYlZGTlXqLkIV7jIqDi5JrbnhtdXtgRWFqWUlIWVs9e0pHRTZBYlRpW01cYEpbXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENeUVwuKkIvSkdQW0gzY1lUSkSZlqCwqLGpraWkrq61qLe0uKSrtLfJu7S6ur++tLS3w8DMyLvDvLa+vsC4v7yxva6nurm3tsG2q62xuJSXpq6rp6KxqpSvu6SssrKnqKOys7CxsbWxuLOorquxp7ivtbTDxbaptLWssa6qp6O2n5+nsqCklJyalbKep5ygqo2po56blpilpaW3p6KytKynsaeusLWspZmgrKibnJ2blKm4nJSOjouZnKKXkJiloJ6Vg5GVkJ2cmJaViJeQl5unnKOgkpWQkJZ2hJCHe4WBhI2LbXF3dXt+XEtlbFxLTmNcP2J7R0k4R2dXZVtNXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydGYUxWJS1CLj1FTVE8M3JqSkNDkJmlrqWtrqunpLCys6q3sLagq7W5ybmuwbzCt7OxtcLDzsW/wb20vb+/ur+8s8Soqbmwtra/vK+rs7KcoKewraWlsKWesrWsq7KwrKmotLmstLK1rLStqayoq6m5rbGxx7+4pLmwqa2tpqitsKakpK6jqZyenJuvmqKjo6OQrJ6koJ+iqqWmuaWstbWlqquorK+2rqOeo6iqm6CampKktJqOiY2HkaKglY2UnZ+TkoSOkpKdm5iVlIeYk5WZppufn4ySkI2Qd36OhXx8fYeKiXF0cn59fVxTZG9eTlpmXUZEllpHO05tWGFbTWBiTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGRISis6ST8zQklTLD6PazxHSI+bqqqiqbCkqKSztLG0tbGxoautvcu6rsC7x7G0rbTCwtHFxb7Asr7Bwry/t7zEp6y3rLO4u8Cwq7KtoKSnramopLCjqrGqr6ywrq+urLO7p7awsqmyqaulpaOtuqyqscK5tau5qKioraqosaWqpKKuqqiinpyjrJWknZiemaydoqepoqylo62suLGyoKmioKuusKyen6eoqZmkmJmPoKeYhoOPioufoI+LjJabjo6Fh5CVoJ2Wl5WGlpOTl6ScnZyKkY+NiX9+iIZ8d3+HhYZ0c3GIdWxfWWBuY1FzcVxLO4R8Rj5XdVhhWU5jW05VVlVXUFxiXlNPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLklnREY4PEIwNUVLWDFAlFo+TEWUl62noqqynKmpr7asuLWuqqWrqr3Iu7C9t8KvsKyzxMPOzsO+v7TAwsS6wbTJxKyvt62yuL++s62uq6WnqrCpp6ixpbSuq7CurbGws62zu6S4s6ysrqern6KesLerqq26tqW1taOpp6ysqq2hqaemsbKjpqWhoayWqqGUmqCmnqSiq6Ssop+nsbetraOlopupqq6pnaKlpKSYoJmWj5idk4KCkImFnKCMio6MmY2Qi4OMl6ObkpCbjJOSkZSimZuZio6KinyGgYKDenSAhIJ+dHeLo4d4al5gbmdXZYdkTkBnkkxEYnlXYlhSZVRNVlVVVE9cXWFVS01pV1VXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIY/SEZElpKvpKOqsJirqa21q7axq6Wrqqm8wMC4uLO7taWyr8TJy9G/wbu5wL/CucG6wcSusrWxs7vAvrOxrqyrq6i2qqatr6u5sKixsa+yrLaqtrWntLasrKSpqpyjnrOzqKiktLSgta2gqairqKunoKurqLm2qaqqqaKpoKybkqmhnaCkoqajqZ2cprWuqKapoqOXpaenqpyipKOfmZifkY6PmY5+h4yHhJ6eh4SKio6NkIyEhpWimo6MmpGSkY+Sn5eYlouKg390hoF/f3h1g397eH6BiJ2Pb3FnZ3F4XGBziGpPXZhWSG14VWRWUmJQTVVUVVBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg/Qyw+TFRfL0pqNk9EO5WOsKClq62Zq6WsrrO0r6qlr6mour68wLCuuK6hta/Jx8jRwL69u7zCvbrDwb+/rrKysbW8vMKxsrOqs6iktamlrbOzubCjrraxr7K6q7muqq61q6qeqaufoqC2raihn6+zobSqnqinqqOqoaKsrai9r6yuraGnqJ+rmZCvoZiioainn6iamaqwqaOfrKKhk6Kjo6eYmqill5eYnY+Kh5WIfY2GhYSkl4WCgouGjo2QhISToJaIkZ2Qk5CNkZyUl4+JhYV4dIF/fXV4eYB7dHN6aYGGo3VpXmVrgXVniIt8UlhwXkp4c1NkU1FeTU1SWWZOTFZZZVlGU2lSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGg6MzhfPWFkP0YxQ1BbWytITjlVQTSQj7GfpKaro6akrKa0srGqpLCnqri+wbuvp7mqp66wycbI0cK8v765vr+8ybzBuLCwtLG6u7jAsrO7rLisorSmp6yytrmzp6e7ta22vbC8pq2stautnKmvo5+lrKqnnJ6qs6SzqJqqp6mkqZ2jqaepvqu0r66dqaSgrpybsqOVpJykpZ+kmpqoq6Wem6qhm5KboaWdmJepqZGYmpOQioKPhX6PgoCIno+Gf32Lh5COj4R/k5uThZOijJSSi5GbkpWHiH5/cXp5fnxpd3x6dXBwfWiFeISHZGBnY3KFem1neV1eVkJXem1UYU9SWEtMTnF0XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTtEWD4qj5SxmZ+fqaWkoaukt7Kypaixp6y4wb21sKO5raiosMPJyczBtr2/tbe/usi2w7W0s7Wxvbi6vratubW/raGzpqqrsLW4tKuevLyossCzuqCvs7WqrJ6usKOcpaipop6cpbGmr6CfqqmooqmbpKigrbyorrCuoaujpK6enq2ml5+boaOcn5uao6qimpqkpJWXlJ+ilpuWpqyLnpGQkYyCioGAj4B7mpWNiXx+i4aOjYuKhJKYkYeUo4mSkoeQmo+TgYd8eWt9dnl4Ynt6cXBxcnhogHNqg2dkaGFuc45tYmlwYHBBXHhrVl5OUVFKSk1TWVZNXV5tV0RYYE9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDBCaFkxM1M9ZV9ETDZLV2VPKjwyT1o9IpKZrJmfl6ekop+no7ivrqKvsKmruMK6s62fua+rqLS6x8rIv7fBvq+0vrfEtsOxr7qyssC1u763qbm3vauktKeoqrCuubGqm7u9pLDAtbShrre1pqensbOgnqSmp6GlmZ6tp6ieoKmup6Cml6OooLC4n6Oxr6GsoayknKamqJqam5+jlZ2cmp2pppabn6iSmJOYnZKZlqGqkJqJjpCHfYd/go58fKGNjYh5g4yFiYyMhYeSmo6JlZ+JkZWCi5eMkX2Ee3NvfXFzdGB5eGlvcHBvaX5xY3psaWVjYWaGf2BbcmpyTU1/aVhaTVBMSkhQUlFJTlxfblNEWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpoSCo+L1lYNSiXnaWYnJasoJ+hpKG3q7GktLSqqLnEtbKuoLesrq2wtcbIwLe/wbmwtL23v7u/r6u9sLS/sb3Duam7urenqLWop6uwrbOxp5q9t6StvLavn7G3sKilp6+xm6CkoKOkoZebr6ahn6Knr6KgopOkpKO3sKGmsaufrKOvmJyqpamfl5qdpZObnJqdpqqZnJyllpWXlZyOk5ejqaGQiYqQhnqEfoSKeo+Xio2GeYKHhIiLjoWNk5iMjpaZio+WfoaXi496gHpwcndub3RfeHdkbGxraWiDbWZyaWtlaFxjc4BfWmt1aVpJfV5bWE9PSkhIUlVGMjlfXmxQRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbDg0R0FmW0hURFVdaEUuOzJhVCwylqOhl5Scqp2loaKgt6quoLq5pqy9xLOwrqK1r6ytr7TDxLyzv7q3sLO5uLq4u66twLO0uK+/wbisvLq1pqKzqqeps6utsqKbwbalqLW1qZ6yu6qnpqmvrJmip5yjppSYorKkmZ+kqKmcoqCTpaCkuaikp66nnqWhqJKfqaKhoJmbnaCSm5yWoKGrm5uZoZWSlZaajpSTo6ikkIiKj4Z5hHyFhX2djYqLhnmAhIeIh5GFlZOSjJCVlI2OlHuDmI+Ld357bHRybGxzYXh0aGhqZ2VvhGdnaGNmaGpfaGJpZlple2NgU3NUW1tTTElHSU9TQCEqaV5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc4ZE4nMp6ko5GOpKabnp6do7Wsp6q5t6isw8C2sKyita6nr6+3wMC8ssG2sa6ytra4t7asqr2zr7Kxvb+3rru7saWetqulpbSpq66gn8KrqKWws6qstbudqKqrsaWYnaqepqSRmaatopiepKmhnKKdl6Cdp7amr6quoaGenaGVoKafoaCZm5mckpmdlKWdrKKYl56VlI6Vl4yPmJqpoJGIiouJeYV3goKCnYeLgol8f4SIhoSQhJaVj46QkZGRjZJ7g5WOhnJ9fWZ4b2tqbGd1c2tjZ2RjdH9hZGVmZWlqY2pxWV5YXm1kYU5oV1pgVklHSEtNUlg+OWBsaUdCVFNcW0lJR0ZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQWZIJTWbpJ+QjK2hmZiglqS0saKxvbehsca7ubCxo7esqq6pub27u63Asq+urbavs7izqKu5sa+utLa7tq+4va2mnbWroKGwpauunqTDoLKkrrGvt621nq2vra6imZ2oqqWelZuopZ+ZpaOonZqgnJScna2wprmorqOhmpqdmZ6jmqSdl56Ym5SaoJKolquom5OcnJKMlZmNlJSZqKeNjYqJj3yCdIKBipiFh3yJiYSEioyIkoSTnJKSj5CRlo6Qf4CMjYNvgH9meG5oa2pncXJrXGhjYnJ/YGRnam1sZ2ppZmxcbG11cWFUYmhkZVlJRkxNT1hRUVZhZYFUQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUllQyc0k6Kajo6wnZqToZqpsrCfuMC2oLTCu725saW2r6iupbe4t7esu6+tqqu3qrS5rqWztbGuqbG2trCytbqnqJ+2qZ6eqaKqrZypwJitpK6wtrWtrZ+xrbCqopuco6yom5Wcp6OdmqmipJaaoJ2Rm6Orqqm7n6ikoJiZmZ6gj2uilpiccYKWm6SAdZKqp56VlZ+RiZeZgJaKoI95hpSNg25qfneDcWyGi4Z9hIuGb15jYGeEl4Zri5CUk3V3i4R+g49/ZoaAaHVpZldcaXNuTlBqY2ZxhGZeZGZubGleX1+JkISGZ09LRDhFVGdeSkdQUFVVS0hTYW90ZUZbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFQZD0rL42kmYeVsJuck6Cbqq6ro73Fr6m3wri9vK2mtrClq6S4s7KzsLmtqqestKawtaOouLa1qKestrKutK2zoqmftKueoqScp6iarLyVpqWvs7itrqWorquspaGenKCnppuYoaalm5unp52TnqCYkJ6oqqO1sKOjo52Wl5iXo4ihjpKah6GHlJ2hf6V/p6uek5KbkoiEcniNjoSIoXaIjWmXiGZ9c3ihb4iHhH6Ne3+hoJ+ZgHuHnnSIjnabimyHgYNtaGVjemxxYlSGbWNsaZhxWGpvboZXXmlba2pbiHBteXKGaIeEWl5GTj5GXk1FUlZWUVFSV1RnXkxYSlJST0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxVmE3LyiMppeDnKydmZmdn6qqp6m/w66xury3wL6qpLewqaymsrWur7O2q6mlsa2ltbOcrbW2tKanqbOxrbKnr5+qoLKon6SjmqGjnK61laSlpra9pqynqqqsqKaioJigp6OZmaajpJicpKmWlKKclZOjpaagt6SkoKOYlZOYk5yIro+YlImpi5eim4WxgKStnpSanpV5gtSof4eUwZvHeXexpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQeoFslrGrsHloa1ixrm9labySvG5oeW1yj9h+UmtjtrJ/gXGUdZqhqpBXT1dhT1ZORlRbWFFQUoxcV1xQQF1FUU5ER0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaTgaapn5ecnaWssqiwwr2ytcC1t77Cq6a0ra2pp6+zqq+2tKioprWmp7ivnbOytqqlpKexrq2xpqqep6SxpKKhnpeboJ+vrZWeop+0uqKqqKGtrqWinZuaoqifmJuooJ+YnqenkZynm5SdoaeioLCjn5+jlpaSmJKZha9qaoqNqn5nhJWHrWVwnp2UmqaVca6hpH53u3xroY92sV9qtFulgGackWBmgXpmf2p4aqllvnJnpox2smp8sXh0kpNjbW2nbVuEoEVpZoeWRXWcYH1ne6Sngllfi6tpgZV4emqnN0qvW1dUbGNbS05XX1xXVjtOiE9XVi9JVFRJQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5GilYKsp6Weo6Spsbess72+sLfEsre6wqepsKuvqamwr6SwurCkpa6zo6m4qZ6zsrCjpaCqra+rr6ann6OisJyjnJiVl5ucraaXm6KetLOhq5uira2gnpmXoKKpnJmepKCcmaGnpJCdo5qXoZ+sn6anoJufoZaVkZeRmoW1m7V4hamZtZl3h7Obt3+UlpeplH5rgaZ6gYWIkpSSd6tna7FbrHuPh5R0iHCPhoCAiJCXeIOCi5eMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinS5RoW5bVGtnYExLXGRYXFpCPrB4V1hBI01pRUJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o5YVU1MByVn5SIs6Wmoa6pp7Osqbu2wrC8wq24t8GqrK2urqausqmhr7yqoae0raSrtaWmsrOno6Kdp6qyqLCnpZ6fn6+Wn5mVlZaYn62impqkqLWvoamPqaiqm56VmKClqJmfnKOfnKCjpKOWm5+Ymp2jq5ummp2boqCXk5KTk5yD1ZOZuXCwwn7GhnzWlJu7fJqWpZCNnI2ke46Go4KlgnqseY+dVa97iX6farlauXeGg3ymgpN8mHqqeY6cj3uxbY6EdJC8hW+UUK+nxYpRoHpjYKpic3KHbJeIYFO1tMiGgIl8Y6QzQp12XVFqaGNQQFhmWmRhSkhNbEtbU09ZZlpDRD9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFRNzIlm6KTmLGnqKWzqqW0qKS7t8GwusCxtbW8s7WnsbCjsLOmn662qJuoua6jr7Ggs7SwoKSenqepsKi0qaScnZ6rl5mXlpeVlqGrnpqXqK2wqaOfj6yip5ael5yhpaGXoaGioZuioqebnqGelZmbpqCcp5Wcm5+hmZCSlZGdiLJuaLVxq4dvjqZytHNytnuamKSMj5yNon6QoKV+sHaDkdLRdVuufIZ/pG+bqqZrhoR8rX2XmY97sXOTnY54s2WWdISeb55mlFLIi1rCXJ95Yl+tX3Zzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPal9saU9VRkk5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyL6GckaWvrKSqu62mtKWntru8srq/t7a1urqzpbS0obGyo5+ssKSYprqupLGxnbS4qp+mnaGqpLGnrKmkmpyaqZ6WlZiYkpKjqKCXk6aqsaailpOtn6WSlKGbpKaflJqmpqGbo5+smqGfnpCWnKKenKWVnZWaop+WmZaSm4Wse3eodqOOiYepb62Kg6iDmZmhiZKaiqJ/kpiJroV/grNccrNSrn6DgqR/cdd9d4R9jp2HmZl3r4aKkZyHd7RhmmWagYKUbJJasFhLmnWYeWZgrV52d4dnmIhrXq93lZ6PeGw1eciusl9BVG9eZ2BFUGxfcW1WVU0uZWNpU1lROkFEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6ODifnZSguLCXtMGtqLOoqbK6uLO4v7m3sra9taW4s5+0rJ+gqKuflae2q6ixsquutKSbqaCgqKG1pqaqo5melaWhlJScmZKVoqWak5CnrK+moJWZqZ+ij5GimaimoJWZpaidnKSerJ2hnaCNlJ+bnqCYmZyWl6Kgk5iRpp2GqX19pXihj46DqnCtjIKnhpagoYqXl4ijgpGHlKp8gIudeW+xWqeDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pjcnuBa5iHcV2sWomgjmtuZU9KQ6FcWkx0XmJlTVphX3JzX0pVNkqak1lIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOj4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT44oZ2Zmb6rl7TCrqutqaW0sLixtb+5urOxt7yqu7SfsKSepaennpSqsamwqrWsq6+hmKGgpqSjuaKjq6CXm5GioJWUn5qUmJ+fj42MqbCvpp2Xm6imn4ySpJeoq6eUl6mnnp+ho6ykoZ6hjZShmJ+gkp2XnJWeoJWWj6ubj65tcrRyqYx2iqZztHl0s4CSpKKSnI2JpIePdrhvjHuLomtrtlmhhmWXl2mhoqdtk3K0dJOYf7JqhZOIrWt1s2GdZqJvh5Jql1ytYE2hfIeRUnOjbHl/fm+YhnBcr1Y8nHdmVG9uLlynT2JSa2VhbFliXGBwe2NTWVE+Pm1wM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eODFCOKWam526oZuywK6tq6unt6m4r7TAtbyxr7m4q8G2qaqgm6akoZ2SqqqntqOyqK6qoJecp6Ckq7mdo62blpmPpaOWjZ2hm5mcn5CTlKu2r6eZlJysqpeMk6WZpayjkZeqsqOgnqersJiho5CZopegm5abl6GTnKmclJGrmYfUkpq7c7DDgMOGftWWnLh4iJCYjJeJjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIpumohxbo2kdL1dd31bYXm8a1pWW2p6XmpgZGZibXdvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnmp6hvKKXscOwramqq7Gnua+2xbG6sq67sK7Bsqylop6joZybkaqkqrKktKatpJ+WmqqZpqy4nKKtmJWhkKWgk42co56YnZqQlpOvubGrlZejqKeUkJaknKStnpGgqKufm5+po7Keo6WOp6KUoZqcl5WkmI+woJKVqp6FkJm1gJCRjLiVeIKTm7V3bmxuc255j4SOiXOewbu8mnuBsqhwgHSRuIN8hoaLh417ioaNl3yku7m9nHV6s6N0dpd1dLB1mZ5mhmmNtXRycHe2jF5/eX2JZ4N5bXlii6xwdYV/WVunakRkWVNmYGNdY1FnZnFsdUJOUExEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPTs8p56goL+llrTDtKyqp6yrqbuusMWvtbOut6e1uK2po6KmnqCdmZSspK2qprWoqJ+blqCjnqukvqahqpeUnZCim5KPoqiik52XkpiUsrW2rZidpKSii5KRppulq5uWqKSlnJqhqaano6mhkq2fl6Oel5eXnZ6PsKmUnKeijmp+aZyneIlzfpqPdHplh3q9vsC6bpKDcZSGYHJqWl6aiWFkh46Va2B/lWNtnHZilGt/mpWUZV5gY3GaiWhyjH2GlWdqfnF0eH19Ylt3dIFoUFxug3x7i2pYa3qCcklKb4VwTXRNRVdcZmBMW1hnY15PW211aXFST0RFTTtISTxMPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqigqKHBo5q0urairKWup6i1sazIrLCzrLWjvrGypqCjqZ2jm5qZrKeupKS1qaWbl5Whm6esqL6nqaaVlJuVoJmTmKWpp5GekI+YnbCyv6ybpp6noomTkamaqKSam6ufo5mbo6etop+qopqwm5WmoJeUnZ+dl7ClmKKomZyRnZyjpJmno5qcmpqakJaBaG59cXeRl5SRhYq1qo2GmJWOioyXl4eUlYqDkpORiY2Rk5iUmJeaoKKam5SgnY6CeqWGa2l8kHyAdImKgXGCeHl2doqAe4pqc4F0g3Vjd312a3B7bWBjXHBnTVlZZWpfV1pvem1tZlNPRlM5T1pOUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCyoLOhv6KksbK3oKmlsqelsLWqyautsaW1psCotKCepKWcpJWWoKumrKOjtqygmZaWoJetqaXAnquklZKcl56Yk5Sin56ip5ORmKmnssOvmqudq56PlpapnqqcnKCsmKGanKKlr6ahpKierZiXpp2ZmqGenpywoJ2ippWYk5iToKKWo56XoI6WlIuKjY6XrY98lZuCkoKLqqiGgZiWioSOn4h7hJCGhZmQh4aJlY6bl42QmJ6jlpmTkZ2Nf41mobOuhImEdnqPinx2eXpvZ3mQgYCJa3WBeYhyaHN/enaDiIJrdGN5ZmBpZGJkZmpZa3twaWpcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76sq66ysqCqprGtoqyzsMWwqq2js668pLScoKaioZ2Zl6ilqaakprO1npWUnZmZsKauvqCro5CRnpqZlJGVoZyXqZyEnqmsorTIs5+qpKuWlpeap52om5+kq5Senpyfqq6ppaOroa2bn6ChmKWenJ+dr6OZn6iTmJidkaWZmKmempdmg5J8ZX6Omo9jeY1saGt6kaSra2WamH5nhYplZWloeo2hjmtojJeRondraouYo5+Yc2xueoSNhnlYZV2FgV5siomAdlxoc3d3kYCHgm53gniAc215g3R3iIiOg3tqhVlea3RkXXOJaWp8cWxjXVFNV0pkWEBKND1GNz9GRDcxPD0/QUM7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6uzsKqlqK2usKaurbC9samopK2vsZ+tl5+jnqGamaarnKyjpqipsq6elaOQoq+mtrmlrqOPjpqhmZOSm6CZmaWWe6Wsoqizw7ekoqevnp6VnqOeo5yjqaiRnqCdn6qvqqujqp+om6afp6CslqGbpbCkmJyqlaGempOlmJ6rmZ5+voOIcrRyhJ2GrWh4ucS4cZOio3ummJlzqoJ8y8DAu3GLooeCn3yVmImewL2Clp2ejZ3BwXuBe5GMmsK/fWulsW+MgG/Ken+bd5GDjoB2eYF/eXF6f4dxeIWMk3ltdpJiZl94ZF9lgmNedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmolKOvqbCvraayta+qpqamsaufq5iaoqCcm6qnopyroqWopaS0o52ikqatrLezp6+ikpGanaWSkaChl5yfnYenq6Srrb/AsKGpr6mXkp+dopmio6qjkqChnZ2trqispqOip6ClpZ2tqZGkm6mtqpydqpysoZaXpZaho5icf86UeXqkgXmVlptfro9ejqeBoaB8p5WbdKuDgK9eY42qeqeHhaB0l5KIs2OCq4ahjo2zaYSudH2Wh7hhgq1Zo81uj3V72nt/mXB+iJJ1f2V7iHZ2a32Ibn6FkZJ+bYGOYHFrcGdgX3lkW3BoamRmYFJUUldeS09DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcK/v7W0sLeYnpGkqqittKumsqytrKSrp7CqoKebmaWXnKKvn6CfqKejpaGfsKybnpWnrq2xq6isoJSSm5+lk4+fpZeeqKOerqSqsKi/xrOoqbGulpKdnKKXoKmqnpSgn5ydrq+nqqmbp6ekoauSrbSWpaOqqp6jp6ahsKCSmqeaoZuUlJGXoHCFjJd1haiHcbB8nXKsfqGegaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIooyRi51+q3uJk4+fgHutVpzEeo9vksF9gZVtdXCMbWV2ZYZvYXducm+JipGQg22Qj2RvdHVwYGdtZF9vaWluZmNXU1xhWlJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK6/UxsaytJ+do46jo6Gsr7auqLCnqaqorqurp6KknZmilZ+mqp+ipZ+oqKKfnbCsl5qWqKeurKinqZ6XlJqjopKUoa2bnaajr6yjrLSpuc2xraeurJaUnJ2imJ+urJyWoJmdnqmxqampm6upo6Ksm6+xoqisrqaZpquqqrGikpejpZuUkoWkaqR1iXqpdHqycIKliZmMcIigmoekYGBSrIR/roKadq6BpoaGn3qYloZ7ZoCjiaSZhoGjfal+gZSHrl58qVWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojYyYj4FtmpJvbXl3d29sZmRlcXBme2hjXVdfaVhYVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys2NioxUEtMIyBBOUQ0LCfCydXVwKGZq6ihr6KesLWwr6mso6imqqqrqaSmoJuknp2lp6ajnKyaoquhpJ+vop2akqqktbCvoKmbnZaUp6OQmqKon6CmnLGmo6ixrLbIsrWqrKmVkZydopmfpbOcmqCUnJ+nq6ujrpqsqaKhqqOzraKqs7Ghm6qor7C2o5OWpKeYm5F8qmyehId1q3l8sG+CpIuJn5aVnpSB0ri0uMmAgbJeX5Spg6SIh6B5mJWaeKrJdJmjlaepkJKbjH+biZrGxnhloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI+QnpN8cJeSf3B6dHx7bVtmanJxZoFqXmJYY21cXllJTUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz4tNU9UUR0cOzxGMiwkp6TAxrmtqLKurKWinLK5rKqhppuopqqsqaagpqWYq6OfrqudpaCsmp6opZ2mtZ6il5OoqrayrJulnKCVkKWtkZmcp6OgqqeuoqOnqbC0wrGyqq2ok4mYnaSaoaOupZehlZicpaarmq+draimnqyjt6yhsbmvnZuvp7O0s6SUmKikmp+Ogp1OeJqBf596hKN8gqSEhqaenJ6ThLh7fHm5gn7MxcK2eJqhkYuffZqWl4p2npiKpJijqH6whZyFnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkaOXfH6SkYp0enOEfnBbbW53cmqBb1pkX2huYmRdS01RVEJJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamspKu5q6+gnKGss7Omn6CVpa6trqqnnaammqOnobKuoqimsqCZqaSUorWio5WXoam0uaSbo52jk5ChspmenKemoaKvrp2kqKG1scOxraqtqZGHkZymnKOknKWXnpiZmaWkqJquoa6lppewpbytobe3rZ2dtbK5sbOnmJ6woqSeho/RtcO3eYeOhZGTj4CmeJSid4ygkoSlgYpxqoaEtG5yapmjm5WKn3yYmYaHj3OvgqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5OmmH6MjJOKd3x5jYFtaXhpeHNuf3RdZGRubWVoYEpaWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWSc42Krb+/u7q1npeopK21oaOZlaOpp66qq5mlop+loKC1pqKop7CjlKujjqSto52QmpqqtLSknaWdqZGUl66goJ6npJynnLWaoKqjtavCsKmrqaGMhI+boaCmopWZmpyYmpmmpKaYq6etoqWbrae+rJW9sKyfo7Czuqy0p5upsqWomHqokH18sHeKgaSliJxtsm+hh618oY6Dp5WYgKyIha6Fn5SooKGWhp+AmZWAe5J+q4CdmpaKqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrrl2la3GFmV1gW4ygbpWRppmDlI2Wi3p6gpZ/a2x/Yn10bX96YGdlcW9nZ2hDWWBbPUtUMlU4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVlZXWFZVVVFIRklKIygovJKahKnGwrfBtJ+brZ+uuKWkjpuko6Cvr6qfpJ+drZieuaCiqqCvqZmtoZCqqaSWiZqQrrCspp+nm62YmI+soqGdpqKapZ2tmJ+opbaov6+lqaSei4COm5qgpp6SlJqak5qapaOjmairq6Okn6movqSXw6yqo6Gssrqrrqegs6+pqph2r36Qi5yFh326rYqYZLCMZZWtfaCPg6aVmoGsioSwhaWZpKGhkIWgW2xqgbNgf617e4KAsWxnbpmXjIiwW320W6SDa8iiZZ+Ae7xZdrVasn1Sr4B6rFiAoW2Yj6iaipeQlpZ7eI2cfWRzfWKDd3SAfGFqZnFtZmVlT1VjW0JUXj5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjnK2mpbaooYuaoJ+ds7OpnqOgnbSXoLOoqqudr62dq5uVrqiijoibjq+rqKaip5muk5mPqJqhnqWfmaOjpZmeo6myqLyvpKienY58i5qVoaCZj5Kam5GZl6ieoJioraelpaOlqbufoManpamhq7S2ra6nn7yurayVgamSo6+Om4CGpJeYj4CAuMO6g46dk4Wnl5yCrIqCr4imm5qlqpB+1b3CqmKjv718fqOCg9e6uLWFlJODnr2+hGqjgW+rhG2df3qysMeDaquwva14d6K+u3SAlo6mnI+akZaceYGQmnljfXpkjGZ5gntga2VramJQYltTalxAVGFCTik9OjQvHh8kHiUyIB0kKDA0OTY2Nzc7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbO0sb+5sr2zop2upqWzpp2LmKW+qbexqKG/pqaxm56xnLmonq2upaaVlK+sl4yDmpGupqOsoaScqqGYi6OSpp6onJqhqaKZnqCrram5raijm5eTe4eZkaabk4+RmJiOmJOpmZ+Yqaigqqaho6u7nqnFo6Cvo6uztauwqqC7qK+vmnN1qqS3hmWJn3BnrI+Kj21vd6SQmZ+Bda6ZlXCPi3GVp6ObmK6kcm1tbWWKd25tgplxgHlpcWlniZWVmHFoaYSGZ3CGZF2JY2pvWV1nfnemYGJxjpJvZmSAjZKOopiXmJCVnnyHjpR1ZoZ3aI1qeX55ZGxjZmxiS2RYSmtZOlFlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6q6ubKzq6mirp6jsqmYkr2xw8i+tqqewKyso6CnrJ+6o6StrKymjpatqZCMhZWWrJ6lqqGfo6OgkYykkqeZqZmWo6qglpylpaevuqusmpuSknuElo2ll42RkZiTjZiVp5Sel6iimrCmnqKsup+wwaiks6assbKrrqyouaOuuJaKoailtp2JlqKXhqmakJSdk6qzmZujq6CylqKhnaCinKCkoZWrpoySkoyHkpyclJCZk5iQjZWGgaSZl5WNi5OSio+GhH5nin90gnZ0h4xxp2x7lZGUk4GBj4+Pj52UoJWYlqCCh5OMcGiPdnCKd3Z8empsZGRvY1VgWEBpW0hjYU9aK0Y9KyYhNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRGSktLTVBQUVdUVlleX2FjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbeurqKwpK2foLWxkI6rxbzEu7iqoqWdm6WdsKmjtqedqbSmp5GYrKKLiImOnKeWq6ShmaeenpOVo5eom6mZlKaho4+ap5mhtbqoqpiakI18gZSLoZSKlJGVkJCTl6WPnpmon5y2o52nrLeorsGuo7enr6+wraqqs7mhr72Zkqajpraikp2mno2pn42Sn6Osr5qho7Gor5ekoJyjqZ6enZyXq5ySmaGbk5CWqpmNmJiWkJWekYignZWUhZKMkIyUioB+ZoyGdYZ2eYiDc5xqhpGUlJGKfYyWkpKYk6GTnZagg4eXhnlxlXJ5iX9xe39qbmRfcGlgW2BZbWNQYGRQWzpHR0Q9Mj09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWJhYWFgYmJiZGJcW2OXlaSno7CzrK6jqaetoKi1qpCQnaSzu6+srKKjmnqdorGkpbColpu4pqKUmKmcjoaKiZuikK6eo5Wnn6GSl5ibrourlo+omqiMmKiPnrm2pKWYm42JeYGTjJqTipSRk5CNkZaijJ2eqJ6fuKR/hK+1oq+vdaS+o7KgeHqgq7K7lXetpJ+KgKp+ZFxidp+OpJ2Dl35uk7Oco6euq6Jlnp+Sc3mZl3CAmKiXbH+ip4llnKWckZeYlouRm5GFnZqQlYKSh46OkomFd2uPh3aGcXyGgIBhaYiLlZOLW3aVkWdokI5ye6WYmGR5mIaBd5dpg4qCbnl/a3BlYHZva2toW2ZlYmJvU1s+Tk5OUkc9QFRCOTEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTFNUVVlcX2hmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mm5amo6GwsayrqaWoraOnraSSlqu1r7Gmmqqmq5dzi5yvn6iqppSWuKCgj5yjnZF+iIibnY2rmqOVp6KejpeRnoV1rpCIppqnkZajiJu6tKegmZiLiXR2k42Wk4qUkZCUjI+ToI6an6aZnLKWgIyctZ2zjJKPvKehfqeieqOvt4GOjqefhIuFj7Gpr4yJlqKaeYGLrIacnaKnqaiHlYaYdqWbeoebgZemgoF7nLF6ioWgl5mUmJaBkJaWhJmZY3mHkISNj5KKg21wj4d5gHGAgYV/hnSGhJaSeJZok3SgmnR8mYOgnIaYfpGJgYOYao2MhWt4e3FwZ2R3bmlsa1tla2plc1teSVRMUUBFNS5ZVFU2KSEwOT0+NjQzNTY4Ozo9Pj5AREg/SUVKS0dSWFpZW2FhaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyYo5+mrq2rqKygqLCmp6mlmZSuxr2woZamqLWej4Ocq5ymoZ+NkL6emY2fmqCQfYWOmZeIq52ilp+gkY2TiYaAkaiOh6Kco5OWnYafubKnnZqSjoVwdZCJlZCKlI+Pm4uPkZ+Slp+klp6siJ+0ibSarYrKh6quiLeFjbCDsa6DqY2mmI2dfKiPcnt3m46mlmiVpHm0i5+epqiSmcKBf6uImKFxnoCZpH2XhZWxgKF8oZSgkJiWgI6Tm4qXkYt8hZOGjZWTiYNtc5GFf3pyhoGEfIR0hYKXgY/FZoCph4+ia56DoZmCmYCLjIOJmHCOkoVod3R7dmdodXBnZ2xeY29sZ2xYZ0ddUUwyRTQ2TWBjNyYzPERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWV1jZmhnYmJiYmRjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5sKqrppqUoKOkqqOWpKm2o69/oKecpZ6diZO8mZONoJGdkHmElpaRh6uZm5uZoYWPjHebnI+gkYiepJuVmJeGoritpZmbjIx/Ym2Pi5OQjZCMjJeLkJGfj5OfoZmhqH6hp4etnaCWro+enZ2RhoGgjauvhqSNqpqMmn6idoCZk2qBq3VNq3iHjZ2Rm6ingKqrfYOhe3qnaZ5/kmtnl4aXtomefW5gZFmDln6Me2RoinKZfXmVbF17l21fU3CEXF9seYNgWWWCfYSBmHGnqmuDo25ypXCfg55pZZ9sW22Je2VZX4N/YldQb3ZlbXRyampvXmpvbWxpWGlPXVdFOUE0R0NeazQsSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKhtryrrqKZl6Chpa2toJyttaKokqCfn6abmY6YtJmQip6MlYt1gZSRjYqmlpWYnp5/koWGrKSHnJGKmKiXmZqRh6WwpqKVmoiJgGhuiIeLjo6Ji42Si5CSooyTnqCcoqV/k4GPo6GUoHeclo+ng6Gnf4aprYWleYp9hJp9onByk4eVep2MeW2HnIyZkJuomo+HnHuConN2pmaefnakX5h6fZJzom6Yt7S6c5KHgX+1qGSBxrh7cJW3i3GAm6Rjc6yrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN/pF+dmbOVcHyXnrR0c1uesoNqYm9zdXFob1hrbHJzZlxpXmJLRD1ENVFBWXEzPVNHX0pSPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWldgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLi1rq2gm6Kco6Olrpybsa2sk5egmKCkmZqTnqubi4iReIuFcICWjYqPoJCTlJ2XfZCJjqigh5iPipGik5uajIuoqKSej5aHhH5reoZ/fY+Ng4uQkYmPlKCClp2gnaCfi4l3nJiijKByoouIqYicppCWqKt/rox9eqCZeqOTeIBzloeMnH2WoIebjpmbpoaiZKF8iJaQm41snmibjW6amXuAiqd9cmhzqYKcgnOqZ5SaXZuFdoSdaKpqgLhmXKhwgZxhlYxep3Z1iYp/nmiadYeTkpiOf59umpBsp5lcqH53u2t+qluOhF20Z1xucXl3a2lbcWp4eWJfZlhiQVBFTjdWQlJuNEtaWl9OWkNAMTUxOzs3SD86Q0dUP1lSWV0+RGJeVmBRYWN9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtpuoiWOUm6y6srCsnaacnKifnq6bnbCoq52Xopmhn5iWlqCjmYaJjGqIgHF7l4iLlpaEkZSYj3qKhJajnYqUj4WLnZGcm4mPqKOgmYuRioCAaYGGeX+XjHuIjo6Hj5aaf5Oin6Cik5hyaJ+Kn4+McJKMgamImZ+jqKCofbCto6K4l3ajs6Kjf4iUeJ16q5p/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8mnycmX5zqlpdb3uWi3ieYkx+enqFY3mXQk2fWaJqcXyObYGJhJl1m3mHibGzf3+bk6d1gJ1tcXyUb5lyaqRdlXZIZWNgc3B9fW5lYGxodnxjZGFRXlZdVFZAWUVRZ0RTV1tiWF5JRD1COD9COklFOExEV0FWUVtWREZiXFpgS2BtfnFFQzxVX2JaZWpWZ2htb2JmZl5hYVxdXmFoYl9lZHZsXmVnZmxkZmxoaGtpk52Asa6ZhFNfoKezubOzqZqijJyrnJypk6GrpKGoj56dnJqZlZihnZaHhol3hYFueZWFkJqLfJGTlohygImToJxzkZCBiJiUn5qEjqicmpSKi4p8g2yFhXGBoYx4hY2Ih5KZlXySpKGfo4iuhn21hI6enXullnmpgpadkIqhnX2naHZtfplzoHNxfJ2FmG+Tgq59pIOmnpqBo29eqGd1o2NvpWGc05B8epl4cnNjooWQfqJyoo51a4+zi2CCmIlzqrKovH93g21+vqaptF6cbn1xl2+Bc6JyXaNndKZhaKZtm9SZfIObb3d5l2ubeneXc22ppGdgZXlwf4NrZ2ZkbXV4Z2BiU1tlUVFhSVdJVF9XU1tlalxkUEVDS01KS0JKRThQP1BNV1NYT1JSYGZlaVJjd3l3SUZFY11kWmdpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7CrVFxLfqmvsbSws6OcmIWYqKCgo42kqKCYqYmZl5iTmZKSoJiOh4V7cH2EaH2PgpSagXeRjY6Jb3+GkJOSbJeUfYiQkaOVg46qmZSSioWJeYN2h4Bugp+Gd4CShoiZopd5k6Kkmp+Js6Gitot6rKekrqVwqYGakIWBnJJ8pICimYaYcp6Eoq2uiZeLf4ykjZaDrqKUdrS1tcmhc5SKgJ9gnZepbXmVhp+adaGHd6B+kZaKgG9MZqOScJqHcqR7eXRhg4JsfqBrcWRgnHJ/dJdpe2mztbTGpnOYfnudapubq3WDmmx0d5dpmnp0mHFQRH2zXmp2a3iHZmpnYnR0cW5WXlRZaE9SaElVTFlSVVxna25WZ1dNSkFKTUtISk5BUUpQZGNpbWV0cnN+eXtudYl7e1RQT21daFtraVJqaGlsZ2xmY2VfXF1cXmliZGhre19dZGhjamZvbWVpbGWhnImvp4RmP5Shsquvr7Wio4+Al6mioqWMpaednKWCmZeWjZeQj5uSjoiCeWp5hmWDjH6WoHl1j4iMgWmEhZKDjIWdjXqMipSlkoOXqJeMkIqBiXqAfYt4cJChhnmBlYeJlqCWf5SlqJyWloRnbnicbKJkfHGld5yXcGengZeMe6V6n5aDl3KedoGJlJaPuW6QiqJifZmilYhtcmmranWgbG6mYJtpi5BoloealXWigH2aYIuFjHVviGJooGWefmmadW9jZoiCbnKiWl9bY6FuXYmMb3t/c3JkpW13omRnp2iYc4uYbqFvU4iPb6BfZKdUi11UmG1tc2txgW1waGt4c2tvUlhXVmZZU21JWE9dSFhpaHNqWWtWUVJFVlxMWFJhVGhqXnd1enxwfHxyg3t/cnaNgIR2XlFzYWdicGdQamhoa2xuZ2RnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKWZpnpldG2Lp66kqbCxpp+LgJernJ6ljKKhmqKigJWYk42aj4qXkI6Le4dxgIhoi4t7l5pzdIp9kHtkgoeVioqVmYJ8iIWWpo+BoauQhY+Jgop9gICPc2iPpYR9hpSNiJigjoiSqqediaZ4lpx+pYmWjLKYnpCDr5efpXiWiHqpdKWPhJpupKKMkoSMg7xufKWvgoaGh5OWnJ98pXpxqJSglmeefm+rY5aKlZJ3qGypooGJdYeCd6uRpohrkbBrdrOMqWuKhm5tn56SlWF/q4uqdoB/jKafd599haWVnaBpmod2rGeerYy3c3e+jaSTWYOmjathdXJzb3t0cWJqfm5obVNWW1VhYVxrTVxSXUldbW12YFtxWVtgWmdzZW5vcWNxdGB3en55cnmDc4R/gHt7jIGCgHZieGRjbnNkUmxnaG9scmlmaWFfXlxia2JtbHpvXFxiaWJsandtZ2xuYpWmqp2BgJ6klqmqnainrqOZiYKXq5qepImapZ2pnISMmo6GnJGFko2LjHSGeoiEb4yEfZeTdHSGcpKCbX+LkoeGlI98e4GFl6SNf6WljoGNiYSUdYKHkm9si6mAg4uUjomcn4mNk6ujoJCAdZSWiH6BeZSuo3+Bm3GPhniQjIR/e3KmjHF9fXqXlpuEjnh7fn6IlJWTinaQmJ+gg3p9iWuMhVt5eHF5cGhufpKJcX90gY+Tk3GFhIJljH9fgX+Ld3VzlHVveW5uh22EhV53aXiNZoGCho6pm350fJdqiYhwgHZ8hXZtbGaMc3l7mHiEW2pYeY9obndycW93eG9dbIZuaWdWWmBXXGVrY1VhVV9RX3B3eWxqdmVqa2p2fHFydHNhb3Vic3uBeHV5gnWAgH+AeIuFg317bX9sZHluXlduZ2h1a3hqaWpkXGBaY2plbHB1blpbYmtkbGx5bmhsb2GOlLmpp4uhopqmpJmknKuioISEl6ySnaCJmqaaqJiCgZuKfpaTh46JiI1ygnyPfX6OhHqXj3Ryg3CVhXt9k4uGhpCFeH5/hpiijHumoIuFj5CElYKGjpd3coWqho6SnJCInp6IjJuooKCrg4mNlJp+fomWraiPk6aQeHCdkYN7km9+qIVwfZVxa3B8gZ+Lf5KOjGhtXYOLjJubno5zlYuIcXRrgnZzgFlyboeQgX1+i2ldaWR7hYOIgF9peHube4KLgnaBhoJoeYuHa2FxcoN3X3OMgomQp5WGZoyPg253i4RwhY15b2VmY3mDepZbXGlmbnZbe3h3dG1zcoJmXG2Ka2xiWVleWlhscVtfYFpeXWZ0fXt0b3Nja2tqe3xye3h0ZG10Z2x7fnZ6fHt6en9/fm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtoa2pxcm1XW2VubGdzem9oam1gjIyqsaKQo6Ganp6YnpmooqF9gpitjZ+Uh5uikKWVf3uXhHySmIiIhoaKcnyAi3aFi4GElYpxb4BymIaEfpKEg4aKgXqAg4uano+CpqCGeI6XiJWLi52XhIN6rYKRmJmUip6dh4ihq6CioqOLiJKbnKOZlqqhp6agkpuIl458eI6OhKd+f5KRkpOcsaablJ6QjbKTmISljIyVm5+JkJuCiJGJa3yNdndlgoWQinyJnYSHi4+IiICFhJB3fHl1mqGIhoqfi4WUf36MgYB2cHSGhH94iIeLkKaQhIWNiIONkIx8h4qIj4F2a4GDfHmZanJoYHOKcH16d3Zvd3SBXV5vhmhuX15aXF1TaHFVY1tcYWxodXt8cm5wZGtqaX97bXh/cWlvcGxmgHtygoB4f32AhHptg4yGfHp4fH56g3hOZHZrc21wemRrZWJiYFt0ZnBmcnJtVV1sdG1oeXpxZ2lrZY2InbqflqKhmJWZmJSZpKCee3+Zq46ejYWfnIqelnx4lIJ7jpmJhoSEhm14gIBygYd+iJOEbWt+epeGhIOQf4CGhIZ8h4ONmpyShqmeg3KKj4WSkYudkX2Ne6qDjZKXlY+cl4aGm6egopqdhoORmpmZkJqmoKadnZCWgZGKd3yHjoSle3yOkJGGmKmhnZOcj42qjpGAnoyJk5qego6XfoaNgm94hXF0YH6Cj4Z1i5eAg4+ChoR+hYOUbXl1dJKii4yFmoSEjXSAinx8cnJ7iIR7eYyOhJOnj4aEj4GEi4qKd4WHiYt8bmt9gHttaGxtZ155f2h8e3Z0dXV7d1xgcH1udWBjWl1eUWZtU2VaXWFqaXZ6fnBrbGRrameAf2xzgGxsdG94boR5boeAdoKAfYR2coONiH57e3x/e4KKYGl7anVoaYJkamNgaVxkdWhvYnVubFRjcXllcHp6c2VpbW2Lip+3mqGjn5KRlpeLmp+fnnt4naaQm4qGpJSLmJl4eo2Fe4mRg4yCgYJtfH54c4CFfYqQfGtofYGXiIGIjnx+hoSHfI+Aj5qbkYimnH9wi4qLkoegoYqFjHyokYiPkpeTlpN4jKOhoZ6Wmn+AkJqYk4ybo6GkmpeRm36OhXmAg4+HoIB9jIyPfJekoKCSmZCPpo2PgZuRiZKXm36Skn6GjYF1dIJwdmB9f42GcoqVfIiLcox/goWGjmh3cXiMmJKPf5d+iIpzgod8fHB5e4yFenuRjYOWppOLhpF8hoeHhXWCg4iHemVye394enBsamZefXNofHV1c3xygGpeYHR2cHhkY1lfXlJraFRkWV9hZ2p2eIFxZmtjbGhlf4BqbX5obnFrfXeGemuLgXOBgX2BdHaCjYZ+fHt/gX1/j2pyg25zaWGHaGxiX3FWdG9tbmB4aG1XanR2Y3V7e3Jiam55iY2fspKlpZyOkJiPhpygm5x8dqSgjZd/jKKKiJqWeHuGh36DiX6IgoB/cX96dHWChX6JkHhnY32Gl4qCio14fYCMg3mWgJWXlYyWn5p9b4uBkZOGppuHjImEppWFkouWl5OSdpGeoaGYlJd6fo6Yl46Wm52knZmTlJx6kIaDeISXjZ1+gYmNjHOXop6hkpiOj6KMi4OWmIOSlpl+mI18iI2BdnF9bXpkf3yKhXCGk3+QgmyHgoF/iYRldW98h5KXjX2TeIuJfICHfHtxfniKhnmFkYqLmKKVgYSNd4mFg4J2e4GJhnZfeHd9c313ZmxkYX5pandzdHR9cXxiY2FzbnVzbWFaYF5ba2RSYldgYWhrdXiGcGJqY21laHyDbGh0aGxvaH98gnhtkIZxgIODf3N8g4yBf356goN+fJBtdoh0dG1limxqYWN1VoRpcW5geWdsYmp2cGZ5fHpxYHJshoWQnK2XpqiejY2Xh4afk5eYfXeqnIqYeZeci4uYj3l7gIt9fIN7gIKAeHR4enN9gIN/iIuAZF59i5WHf4WHdH19iX99l4SWk5aMo6CXfnKHepORiqePjI6Kk6CRg5GQlJeRi4GPmKCakpCRdH+NkpSJnZ2ep5iXjZWWdI6OimyGmI+ZeoeIkIlvl52ao5OVio2fjIaBkpx/kpKVhpmIfImJgXpxeWt1bHt9i35uhZKClHdvgoN9fop/ZHJqe4CWl4R/jXSQiYN5h351eIB9h4F9g42FjZSkkHiFgnSJh32Ac3WAh4NuYHt1enF8b2FuY2R7Ym5vdnJ3d3N0YXZfb2x1bm9cW19dXmpeT11XY2FobXN6iWtfaWVqY2h3h21mbGhpbGiAfHp3bpCHc4GDhH1zgYaJeoJ9eoGEfXyOcnqKeHhubIdraF9pcWOHaHFvZXdobmxheWhrfXt4cGF3bYuBmZqqoKSonYqKkYaKnoqVl313rpiMln2ek5GWk4h3fXuKfHyAdnd/gHB0c3pvhXyBgIp+fGBcfo+Rhn+DhHN6f4Z6j5GHkZGbkqSblIF9gHuNipKkiY2KjZiajIaRmJOWjomJjJOdk5CMjW6DkI6RiZ6ZoqGXlomWkW+ImoRnhpmOk3qJhZCKcJWalKGSkoiLmYyCf5CefJKPkouZjnuKhId0c3VrcW51e4t0boWQjpJxdIB7gYGIfGRxbHl9mZR9hIh0kIuBdIh5b4B+gYd8hYyJhY2VqI17iH1+i4V3fnBvgIWDY2h4dHVve2JecGBqdF5xanp4eGxycGV4XW1sc21zWFpeX2FqWlBXV2VjZ3Fxf4dmXWloZ2JncY5vZGlnZWpogHp3dG6OhXSBgYJ7dYKIhXeFfHiEhXqAiXd/i3t6cnmDamtfcGh0gGtyb21xZ29sZXxjboB5dnFsd3eKf6KYoqihppuHjIqBkJyGk5x0gaqUko2GoIyWk5B/dHt2hXd4f3Jze4Vrcm95bYp2gICGbnFbWX6RjYh/gIF2dYB/f6CGj4qRnJegk5d3iX6AjIidnoqPhpKYloWJlZmPl4yLjY6NnYqOkINtiIqPkYqclqGbmJWFl4hqhaODZ4adipF+i4OLgXeTmJGekZCIiZWNf36Pl3yRjY+NmpJ8in+CbnZvbG1ucHuFaXODjpeKcHd/dIKJgnhmc292gZmOfImEepSReneIdHCJe4aNe4uGhImPnKOIfIR3gouAeHhuaoCCgV1yc3Fwb3haXnBgcGpeb2l8eXBtbWpsdmBwb2tybVlYYWFhblhRU1pmZ2N1cISCYl1qbWRiZmuSbWBmZl9oaoF1cXJwi4B1f4KAeHWAi4B4hX93h4Z3g4R7hox/e3aKf2pxY3xihnxvcWx0amhvbHZ3X3F/eXt0dXSAgn6klZqtn6eWhYyDf5eUg4+fdYqflJKGipuMlY2LeXJ4dIFwcoRzcXWIbG9sdW2IdoN9f21uVVGBq5SHgniAdnKCeYGggZGBkpKXm5GaeJF6goySpJqTjomVmZKEh5eZjJSMiY+PiJ6FkIp8coqFiY6InJmfm5aUf5R/aYadiGeGoYiShJGDiXGDkZePmo2PjIuPjXd7kpB6jouMkZaMfIh8gGt2am5ra2x6fmF5fo6VgXZ6gHeDjXx4Z3RsdIeVi3+IhnuUkHF6hHB3jHqKjXuJfoOMkZ+dhX18eIKMfXZwaWuBgnlfd29ta3FzVl1vYnFgX2xueXBncGZmc3RocWxhd2VdVmZhYHJTUE5cZmVdeHCIfF5caHJiYmVmkmlfaGRbZ3B+cGtwc4p9dnyFgHR1f4x5e4aBeIiCc4aEfoyMg3t5lXdmcmqDYIh+b29remBqbnR/dF90fXmGeHRzhXx4oI+ZsJylj4KKf4OaiH+Lnn+KmZOOhIiYjo6OhHZ0dnOAcG+Fc3Bxg29raXZtgm59fG10c1JOgt/IktaTfHB0gnWDn4KTd5SQmJqPmHuTcoWQn6GTk5CJkpuUhn6WlYiNjYiRjYicgI6BeHqMfoiMiZybnZuVk3mNdmiJkodsiKOFkoeXg4ZjjJGYjpSJloyNiotxe5SJeo2IipKRiXmFe35se2Vyb2preXlbgHmPjYB6fX5/ho56eWhza3OLj4qChYV9lYxsfn9vgIx/jId9hHqCj5Wamop8d3iDkHlzbWZwf4NsanRvaGlzbVNeb2RwWV9rcXdma2piZnhycHBjX3dgYFZrX112T05LYGZjXXlxiXRcW2V2YGFlZY5jYWZhWGlzc25rcXaMfHR5hoF1dn6Lc3+Gf3uJfnKJh4GQioh8fph2ZXNtfGWIfm5wa4BabG55eXNhdnp7jXZyd4p3eZ+Lm66boJCChXeIlX58iZyHhZ+QjoWMl4STjoeBdHdweXFuhG9tbn5yZGR4cHxten1qaGxjpJrB3K7voXNrdYN1hKKFkW6Vj5Sfk5uBkXCFi6OXiY2VipCdloOAlZCFiY+AkoqKl3+He3V/iXeGhI2bmpiZjo92inZuhomLfYqjhJGJnYWFXouUl4qOiI6LioSJbHyWgX2IhYmQj4Z2hX19a31kd3VqbXhzV4h6kYaFen5/gIWLfnhlc2p/io6Kg4J/jJaFa4J1boiRgpGFf4J6gJGWk5mQdXR4iI11c3FndXmCYnRtb2JodWdSYHFna1VfbnR5YHJjX2h9cHJuW2NyYWJXbllcd01NTGRmYV52c4ptW1xkeF5gZGWFX2NiXlhqcmtua3J2jH1zd4SBeHd7iXGDhH1+iHt0i4iIlYaMfn6Yc2h1cXlti3pudHCBWHF6dnlxZXd5hoxpdoCJcn+ch5innKOShHxwjJR4eYudhIWhjY57lY1/mYeEe3J3cHNqb4FraWx8dF5geHZ7cHV7Z2BlfOvatcnD3IhzbHOAdoqaiI1pl4+OnJSSgYhwhYigjoWKlYqNmJR8jZOIg4mPe5GLhpCCf3Z4g4Nyh4KSm5aUmIaMdod/cIWCiYeZooOUjJ6DiWGDlY+GiYaJjYeAh2l9lH99g4SJjo2CcYZ+f3F3aHVyaXN3a1qMfZKBhXx/g4CEioJ1YXRsiIGPi4J+f5KRfW6CbHmGj4aThH2BfYCSk5CXiW9yeo2GdWxwa3J4gF9zaW5canZgUmRxaGZTX3B2dGBvYF1ognFzaldnaGNpWG1XW3VMSkxlZ19icnOFaFtcZXleXmRne2BkX1xZa25lb2pzd4p+c3KBfnp2eohzhYJ8f4Z2d4qGj5iCjIF7k3ZsdnV5eJN0bnh6fVh5hXGAb2d5d5KCZHaGhXGKloWZoZuiioZzb5KLcneOnH2KmoiJe59/g5l/gXhxc25vZHJ+aGZsd3dbX3l7enFxf2lhZ2F/1baOkKZ4bnF3e3CSkIyHapiNiJuRi4V7aIeLmYaBkpGGh5iNfI2NgYGJjXyQjH6KhXp1e4J7cIaAlZmOkpSBiHWDhnaDgIuTnZ+GlY+ffohhf5OHhIiEiY1/f4NnfZB/fn+Ci4+Qfm2CfIJ0a212dHN2dWtjjYGOf4V+fIR/hId+cF9zcYR8j42CfH+SiXpxg2Z6g4qHjIN8hX6AlI+Rk4RucHqMf3Vtbmpsen1iaGppWGx1WlJpcmliUWJyeGxhZV1aaoNtc2JbZ19lbF9uVFpvTkhPZ2VcZ25xgGxaW2NyX1xja3dkZV1cWmxsY21qc3aHf3Fvf3x8dHiGeIWCfX+HdXmJgZKVfIiGdomBb3d5e4STcG17gXdeg390gW1pe3OUc2dyiH1ykpGDmp+boIaHdnaUfm12k5d9h5CDio2afIuadn12cW9samF0fGdiaXV6Wl93fHptcX5lY2hoV52PXnFylrzDg3VxlIiQfnKWi4ack4yHcmqIj5aAe5SMgYSbjHyKhn18iYx/lIh1iYV2d32BcXWGgZ6UhZSPg4Jyf4h1hHyJmJ2Yh5OOnYCIZn2Tgn+Fg4mJcoF9Z36Le3h+f4eLjnxpgHyDdmVveHhydnNsao2FioGKf3iBgISDf2tecnh6fY2KhXuCj4B+coBpeYOHi4aEeYR8gZiNkIx9bm17iX13dG5oZ3x2Y1xwYldvclNTbnNoYU5mdHhlYF1cWG6Ab3NZZWFeam5gcE9Za1FEU2dhWmtubXxuWltebGJaY292Y2ZcXWBsaWNsanN2goNxbn57f3R1g3uDgnyBhXZ+iYGWkHiDinSBiHJ4eX6NkG9vfIFxaYF5en5tbXx2lWtqd4R0bJSNhZ6YoJmFiG59jHZqeJiOfoGKgpWXinmOlm96c3BsamRgdHtoX2Vxelpgcn15Z3F6YWVlj7Gyd0piWqTZ0JZxe5CKkHd9lIuEmZGLhW5rhZKSenmShoCEmIp8h394eImKhJaAb4yIcXR9eml4hYOlkISTjIN/b36DdoR5hZuYk4uSkJSFh3B7koJ9goOJg26BeGiAhXhyf3+CioZ7ZX1+hHVjcHJ/aHhwb3WYjYWCint2eICEeYFrXHF9coGIhYl9hol6iHKBbnGEh46EhXOEeYGZjY6EeG5vf4R/dnplaGp9cF9Zd1pYcW1OV3JzZ2BLbHZ0YF1bW1l0fXJvV2ddZmpxX25OV2hRP1lnX1twamd5cVpaWWtlWWNweV9oXF5lbWhmbGlxd3+Hb2x/fYB1b4J7f4F+gn92gYWIl4pxgo1xe4Z8eXmDk4x1anp/a29+dH99b3J8e5RvboF/eGaSioKhmZ2RgoZnh4NvZ3qViX5/hYGZioF8jYxpeHJrbGZfYW94bV9ib3hcZGuCemFxdl9lZdTqvooyOj6LjoBxeYWHjo12g5aMfpKNjH9tbIWNjHZ9j3+FgZWJfIN4bnaHhIOXd2+IhWt1e3RleYKDp4uDjouEfW5/dHaDeYackIyQkZKMi4Z+e5KGd3+EjYNsgHJpf354bXx7gYqDd2J5hIFxZHFofm10cXSBmoqAf4V+cnV9gHKBcFttfnR4ioOLe4eAfIh4enFsiIOPhItygXl/l4uLf3Rua3eAgHV1XGlod3BZV3xTWnBlTFpycmVbSnB3blxaWllddH51aFliW2dlbmNpTFdmUT1eZlxddWVfdHBaWVRvZFlkcXlaaF5fZ21namxpcHd9jmxpgoR+eW6AfH2Bf4J6dYKBjJOFcICLbnh+gHp7iJKJf2h7fWp0e3KGe3N3fX+MeXiEfXxrjIyDm52WjIGAbI5+a2h+jox7fn+DlIJ/fYqIa3VxZ2hjW2Jncm5gYWtzYWhwiXlhc3ReY2SboI9uXDVZr7V0aYCIfJKGdoWWhXOOi4l2cGyFg4d1eYl4iXySiHp/c2d2iX5+mG9xhn5odnltZXmIhKSGgIeNiX5ufnZ/gHyMmYeCk5CYiIuEiXyPiHB7fYR7aH5ta4B7eml6doGHgXJgd4F+cWRyZnWCbXR7hZSRgXyBf253eXx0fm1Yb392dIyChneIdoKJenhzbomBj4GFcn59fpOJiXpubmpugoJ1bl1nZnNxUVt7TlxwXE9bcnBkVUtzeGlXWVlaYXGAdGBdXWBnZGhpZk5ZaE1AYWRbYHZhXXVtWFdTdGFaZG9yV2peYWhrZ21saXB3fJJraISJfHxwfn57gYCCeneAf4qLg3F7h29xd4N/e4mNj4Nqfntud3l2ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshIiReH17gZGAgH6Kg3BycGNmXllnX29wYGBncGZqb4p0YXRvW2FkanZ7f76cpqPIuHGFg3OTfHiGk4JzkYyIcnJvg3uDdHWHdIh3k4h5eXFjd4d6gJNpcoR2Znd1Y2p8g4edgX9/jo59cn5zhHmAkZCCeJaNlI+Igoh7iIlreHl+dWd6aGt/eXNpenaAgn1oYHeHfWprdGd7f2l2gYyQlH56fn5we3Z7dH5iVnd9cnOKhIJ8g3GGind4cHCDgo1/fXl+fXaOhoN2aXFpbYiCcnBdaGNzbkpldUxeblVUWXNuYlFPc3hgUlhYXWJwgnNbYV1oZWRjamRRWnBJRGRhW2NwXl13aFVXVXddW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHl9cnt+eIGBgXx2fYSIhoNwdoNybneCgn6Ji5N/cIB7d3l6gYx0g3h/gYGChHqAdW9+iYuanoh9hXp3hntndIWMkHp/f3uJhoR2j4Bnb25fZFxYZVltcmBgYHBsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhvjHV7ho6AepOJgHV0dH53gHBxf22EdJSGeHRrYHqCeYiPZnGDb2d2bVttfYCQk3+AeZKSfXh7bYd1gJCLhHSWipGOh4WFe3+FbHR2f21nd2Vte3VtanZ3f398YGJ4hnpodHVifXpndIWOjJV7dH91cYB6fG1/WVZ0fm91hId/gHlsiIZ0eGt1f4OEfXt9eHtzi4F9c2d0ZW6LhG1zW2pfdWRIbm5MW2JXVlV4bWJQUnR2V1BVWF5hcYRvXGBjbWRjXm5iVFxyR0JmX11maF5be2JRVVx1W1tna2FWal9gbmZma3FocHV4jnRrjox1fnZ4fneBg4F7c36EiIeDb3F/dHF1foWCiY2Ke3d/eIN8fIWHeId8fYF+hIB7fnN2eYuOn42Jeol2dIN5Xn2FmYx5hoN0hYaFd4l7Ym5sW2JbW2FWanNjYFtnbm9mh3FhcWZXXWNrf3zKzoi5omptbYpscYRxfISJfnuRhXp5c3l1dXtqbHVjhHWRgndvZl59gnqLiWVygmtqcWNYbHuFm4iCgXOXlHd+e26IcYGKi4dxl46QiIWLg3t5fnFxb31maHFibXhxamtxd3x8eVxleYB3aXV4ZoF2Z3SHi42UfHGGaW9+gHlufF1Ycn9tdICLfIJvb4l/cXZod3+Bf4F3fXF6dId8enJmc2FujIJsclhrX3dbSW5rTVZVXlRVe2thT1R1clBRVFZeYnSFaFxgbGpmY1luYVhicEdBaF1gZl9dVnteT1ZkcFlbamhdV2hgX3Jma2hyZ3Byd4Z4bpWKdH96eH55goiAdXJ/h4WNgnBwe3h3dXmGhoaLhnp8f3WLfn2FhISHf35+fYd/fHh2eXeRk59/jHyLbXaAeWODh5eGc5KLb4WFgXmCdGNuallfW11dVGdzZWBZZHFxZoFzYmtlV1tgaX93vq57oLdtYnOGaHN7cXmChXt9jH93eHJ2b3t2ZWpuYId1joFzamJefnh5i4RmcX5oamtaVm94iaOBhH9xmZNxgHh1gm2AgpGHc5WIjIiEiIR9eHRybmh5YGptYG12amdqa3l3endbZ318eGVyfW2EdGV1hYyGlX9vi2ZreoN1bXRiXG98a3V8i3yBZnWHfW1xZ3V+eH5/cn1renqBe3hwZmxibol+bW1Wa2B3VUpqa09STmhOWXxoYk5VdWpMUFRVX2d2g2ZdYHFoZ2FXaV1ba2hKRWtaYmRXWVV5Wk5WbWpZXWxlXFplY150Zm1kcWdyb3WBd3CZhXZ/fnd/fIWHfXVzgol/lYJuc3h6enNzhYeIiIR5gX12j398hImOhIKEe36Lg3t3fHd3mp2XeoqDhml3fXxsg4STgHKPgnGFgn6Bf29mbGZXXVtcW1RkcGRfV2NydWl1cGVlY1dcXGh/cG9ygHSJZGR4fml0dXNzgoR4gIR5dnN1bmt6cGFna2eGdI2DbmZdX31we4l+aW13ZmlkVVZyb42mfIR7dpaQc3tzfHpue3uQhXaYfIeGg4aDfHRwcmxndVxtaF9sdGRnZml6b3tyWWeBd3VncIB3gXVid4SKfJSAbotpbXqBcWZzZWBtemdzd4p8fmJ1g3Zpa3F0enF5eXN9Zn5/f3h3bmNmYm6GfG1rVmpicFNLaWtPTE5wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWZgVmNXYnBdTEtrWGNhVVRVc1ZMWHVkWl9rYVxbY2Vfd2ZtYnBpc25yf3R0moF3f4B3f36GhHp9dYKEfpeFbnJ0e3p1cYSFj4GAeot1dJB/fIGUjoCFhH1+jIZ7foB2e6OlinmIhYRsdXx7dYOCjHpuhXN5hH2Bg3VuamhlVl1bWlpTYm5kW1hic3tpaG1pYGJXX1ppgGprb4Bna2FoeXhqc3R0bYSBe399dnVte2hqeWpfZW5ogXaPhGdlWGJ3aX6He29pb2dmXVVYb2iPqHeBenyQjnl1b35vc3V5j4B3lXSFgn+Fh3VqcnZnaG5bbGRdbHJfZ2FpeGh7bVptgnJzaW+Afnl3YHeEhHiPhHKHcW95f3JjcWhcb3dkcXOIfHhic4BwZ2p4c3JseHd1d2SDe393dm9kZGNufH1rbFVpYmZTS21oT0dSa0VheGdhTVNxXElNVFlla3d7ZV5tcWlkXVZfVW5uV0tUaFdmXlhOVWxUSlx5X1tfa11dWmJlYHpobGFvb3VucHd1eph9d4CBeoB/h4Z6eHqDfoGThHF0dH56dnSFiJB9gH2Qa3OVgHuCn4V/h32AfoaCgIp7doSsn396iIeEbHKCenaAgIF1bodvfH9ziYBqb21kZFhfWllaVWJqZ1xaXnWBaV5ubFxhVlxca4FmcXR9aWlda3Z1Z3R3cWyFe319eXZybHpoaXhmXWRzaHp3koFjY1RlcGeChXd3ZmhqYFdWWWdjj6dufneAi456cHB8Znlveox7do5xhH1+f4ZuZHVzZGhoXGtiXW9vW2dfbHVkemhddIBvcmtxe311dWF0hYp6h4Z/f3dydX91YXBsWXF0YnFyhXx1ZHJ/bGFsem9qaXp4dXJmhXV6enVwZGFkbnN+aWxUaV5dVEtzY1FHVmFHYnZmYUtUb1dKTFdYZ2t2emRlbnFmY1pXXVh2ZVRKXGNXaFhZSVdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bXBudoOYeXKBgHx/iIuGfnV1hnmHi310dXWCeHp6goyOfX6EiGpzl4F6ip19foV6gXp+fIaIc3GProx7e4aPfmZyiHp0fHx2cm+GbHt9bI96YnBvYmVdZVZZWVZjZmtgXVxzhWhYcW5aXldaXGx7Y3B3dmxiW2xyc2d0dXBshHl+gHl3bm50ZWl0ZVtndWZ2dpF6X11SZWZqgoJ0fWJjaVxUWF1iY5ClaHh0goWQeG1ueWd4bXyFe3WIcoB4fHh/aGV2bGBmYF5qX11za1llXW9vYnplW3d7a25ucHd4c3RkcoOSfoeCiHp1b3J9cmJ4ZFtvcGFxcYJ8c2ZxgGRebnZpZGd5enRub4F1dH1zcWJfZm5vfWRqU2hYWVRNd19RSllZSGJ0ZGFJVG1TSUxaV2lscXtibGxzY2FaWlthdltTS2ReWGlTV0dZYE5HaXVYXmFtW1tfYmJdhWhoYW54eWxva3aBkHltg36AgZKIhIB2dIl0jIZ0cnd2gXd8fX6Mj4B+k35weJaDfJmSeYCAeHl9f3SIg3NwmaJ7e3+IlXhkdYh5c3h1bHRvfmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYhlUnJuW1pYWGBsd2NpdWpqXlptc3Fsc3NzaoV8fn98d25ubGRpcWNbanJkdHaOc1tXU2RhcoB/coJdYmNdU1pgW2OSn2VycYWEkXRsanlsb3B6fHtxgHZ/cnp5eWRldWhdYlphZ1ted2hXYl1vaGF3YFt7dmppcm53c3N0aHCBlIKGfoN1cmpwfG1md1dca21icXOBenNmb35bYG9xYl9qcX1sbHR+c3F4a3BhXGVsbHphZ1NnVVdSUHZbUlBZUkljc2JgR1VqUEhQWlVra2t8ZW1vcWFcWlhZbHBXUlBmVldpU1RGWlxPSHJ0WF9jbWNYYWBhXYtqY2RteXhrb2l1eYZ7a4N9gISZfIKEeX2Ibo+GcW93enx0goJ8i4+Dgpd0d4KUhYGfiXWAgIFzf4Fwh4J1b6KXdHuGi4Z7ZXiLbm57b2Z4cHpsc3ZyjGtedG5hZ2VrUl1bVmdibGxaXHGMZE9vbl1WWFVnanRnYnRlZV1ZbXRtcHV1eWqHfH98iHeQc2Rka25hXG5tY3N4h2taVFZiY3h9fXGFXWNfY1RaYFljlpVjbnCDhYpzamh6bmVzdnN8bHp0dW95fnVeZnJjW15WYmRYYXVlVV9gbWRhcV1dfnBoaXNxc3B1dWpthJOBiHuEcXJmbn1wcm9TW2ZqZnF0gXdzYmx2VWJxaltfbmV8ZW12fHNyc2ptYFpkamp3XmZUZFVWUFRtV1FXU1BIZXJfYUZYaU5IV1RWbWhkfGlreGtiV1xVW3RkU1JXaFFZZlRTSFpaUE14d1tfZWxpWmJgXl6PbmJma3l1bm9odnZ/f2yDgH2Gl3t/iIGJfmuTiHJndIB7dYCDfYiOf4yTc3yKkYWHn4Z7f4aMc4CGc32Ddm6ljHOBjYt2d216jGBkfHBmenN5bG1xdoJnZHtsY2ZnaFNeXlRnYGxvW15ujWhOam1gVFZTb2dza2V3ZGVdWG90bHJ6d3JsiHuAdpx7emthZWxtXmBvamVweH5nWlZYYGt4fHtwhF9iXmdWWF9XZJyIYmtxgYd9d2treGxbdnFseml1c25ve4ByWGpuX1ldVWFjV2RxY1NeYWlhYmxaYH5sZmtzdW5td3ZraIWMf4h6h21wZnB8bXJtY1lhaGlvdIF0cl5pbFJlcWRUYm5iemNxdnt1a3Bta19YYWdodFxlVmFWU05YZVJPXE9PSGVwXWNGWWlNSV9LWG1kX3hobn5kYFVeVF10W1RSYGZOXWFUU0pcWVBZdXZdX2ZtaFhjYVtejnBjZ2p3cXNuZ3Z0eoNygYN6iI1+fIqHjnlukIp0bHOCdH9/iIWGkYSVj3l+jI+IkZuEgHyMhHN/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjI2MjI2MjY2NjY2Njo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCTqWvra2trrB/a25ubm5vamZnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTNBqba0tLS0t3xlaGdnZ2hjX19fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaPkJCQkJCRi4qKioqJiomIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5CKkY6NkYiPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyLi4yMjIyNjY2NjY2NjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoeJh4aJhYiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCPhoiGhYWFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+JhoWHhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aIhoaIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY6Mi46Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7e3x9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpKSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZ21namdoZWhnY2JiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpeXVlZXmJhXl5aWV9bWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PUFBRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpISEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUVAPjo7Pj48RUQ9P0VBP0BBQERFR0dHR0JERERGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs8PDxITD09QUE/QkM9QURERkNGRkRGSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTg6PDw+PTs7Ojg6QEBBQj9BQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk6Ozs4Nzg5Ozo4PDw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PTtLZUA9PT49PDw8Ozs6Ozw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5APz0/PWt4VD1DRT8+QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZEPzw8PUBNTEZId3VZNzw6PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQEluUDs9ZIGCfnV6dlM3ODg6PD4/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkM/V3t5UmWEg4ODhHx4Ujw9Pz1CRkFEPzs8PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUBZdHd7goGBg3yAg3tMP0BDP0pSPU1HPDw9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBP1J1c36Ae4CEe36GYkBDQ0U+T1tMbWhJQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRmt1fn95goSFhYZ9SkRGREJjfoWIiX5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHXXh/goOEhIaGh41qQUJWdIWHh4eHh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExMWH+EhYWAg4aHiX1TbYSHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSUhISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpehISFhH+Bg4aGhIKGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWqGhYWCgIOBgoKDhISFhYaHiIiIiYmMjmZEQz04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJZ4aFgn+Ag4SDgoKDhIaJiouMi4qJiouMiV4/NzY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JqhIGAgYKDg4ODg4WJioqJiYqKioqLiYmKgkg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo6Ojs4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd5e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I5QXuEgIKDhISEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDk5PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz1Qg4KBgoSFhIWGiImIh4aGhoiJiImLjIuJioqMbDw7PkFDRUVBQUFCPkBCQEA+PT4+QD8/P0A/QD09P0I/QUE/QT89QEBAPj9BPT48Ozo7OTk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlmFgoKEhYSFhIaJiYiIhoaGh4iJiouLioqKi4mLXj5ER0lLSklGR0dERkhHRUJAQENFQ0NBQkNCP0BESEVDRURFRUFGRUZERUZEQEI/PEA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFARERFXoaCg4SFhoaGiImJiIeGhoaHiYqKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkNISEpdhoKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExNS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw7PD06P0A+QEBDRkpKUWOCg4WEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEhFSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QEVJS01WcoOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4tfUVFQTU5NS0pHRkJHSkdMSkZLT0xLSkpNTUxPUE5ISUtMT1FRUVFPT0pJSkpMSkxGR0hHRUdJRkVFQkBCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBSExNUVd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVVFSVFJPTEtKREVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0dWTkZPUVFVWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVWthRVJRUVBKOztRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTVJQUFBRS0tLSEhKSEVGSUhJSElpcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklJR0dGRT8/QUFFQkNHRURFTFhSTVRWVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLhmxbZFU6WFhYU1A+QFZVWVtjYFZZYnJeXVZdWlZFUVlaW1lfVFlnUlVWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6enp7enp8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JWVlRaWnSDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTlBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWFNWVFdSUVdVYpaAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT0xLZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpbXF5UUVFQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXG1ydXZ1c3N3e3p7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSEJDSEdIS0dDQkFEQE9QTVNkc3R1dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiW1hTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz8/Ozs+QD8/Pz5rUUphRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNDPz48PUI+Sk1GVW51dXVzdHZ4e3x6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXt4enx8eHd4ZEJAQEI9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztCSD9cdHR1dnV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJYR0ZGSEJBRklFRUZETVJQYVdSWFFQU1NSVVtPT1FXUE1KQ0Y+Ojo2NDg2OTc5OjM2Njc5NTxCPWV0dHZ3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMWFlaVlhYVlhZXVdXWGhza11WYXNrYWFfXWRgX15ZVVBNT05MSEhKS0lIRkNRUFNaV1RUTVFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnJ1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KT09UU1RcVlJVU1JPTUtJSEhGPz89Ojc4NzY1OTk2NzY2NVdwcHN4eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9KSE9QT09NUkpPUFBQTk5PVExNSVBPU1RVMjxYTUlBUT1jYVFTUVBOUFFQTk5NUE5UUlBSTUlMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjQ1NjY7ZXBxdXh4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVCRkdHSEZKREhKSEdFSExIS0hGTE1QTUcvRV9SPjNAPmpvYVJSUUBGVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3NkRucXR2ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRUZISk5LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t9fHx7eX17en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUV1dVTExLSD05ODc7P0A+PD1BQEI9PkVIR0RGRklHSkpARkFBQEZIRUpPSFBSYVxRUFJOU09PT0xMT01LTUxNT05bV0tNUU9HSUhDSUpMTEpGRkZEP0JDPjxCRj9CP0FkcXV4e3p7e3x7enp3fHh5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47P0JAQD5BRElFQ0hHSUdJRUJCPz49Q0JBR0lETU9hZVFNT05XS0xNS0xNTUxMS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES29wd3p5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxAQkJBREVHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTVFUTEpJTVRGSUlKTEpLS0lJTE1PUFJQS0dDS0dDQkpKTE1PTUlKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0RHSEhHSktJSktER0I9Pj06Ojo7QEI/PUJCQ0NHRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNT0dIS0ZIS0RISUtNSEpMSEhKTEpNXVJJSERNRkFES0pOTVBOS01KS0ZHR0pNTlFOTGNuaXZ2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLREZFR0RFRUZFR0JDQD48PTo7OjpAREA+QkNERUlGSkpMRklJR0ZGREI7QkNDPj9DQ0NFR0xOR0tOSERIRElMTk1ISUxHRUZJSUxOS0pIRU5IQ0dNTE9NT01OTk1MSUhKT1JRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQkJCRUBEQj4/Pjo7Oz06PT5DQT9BQ0VHSkdJSUxIR0dHRkVDQD1FRUI+QUNDQ0VHSElHTVBJRkZGS05PS0ZISkZFRERJSUhLSUZIUEtESU1MUE1PTk9PTkpKSU1SVVRST1dkYGFtZ3Byb3J5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPUJBPkE9Ojo9Pzs+PkBCP0BCREdKRkpHSUhGRkdFQ0JBQUZGQ0JDQkRFREdHSEZMUUtJT0pKTEtJR0hFRkVEQ0lISEtKR0tSTUNOT01RT09PTk9PS0tLUFVXVlVUWGBeXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmprc01HR0ZIQkJBREQ8QUFAQzw4OT0+OT88P0I/QEBERkhFSEZGR0ZFRURDRUNESUZDRkVCRUdFRUZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LT1NORFFSUFFRTk9NTlBNTE5TV1ZXWFZYXVpdZGBoYmppZ2tfZWVnY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaW96TUhHSEhCQkJGRTxAQkJEPDc6PT46PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkdKRUVJR0NHSEZIRkVDRkpKR01KTEtJSkxGSUlLSEVLS0xNTk9SVE9JU1VUUVNQUU1OUU5NUVdaVlpZVlpdWlhhYGBgXmhlY2BkZWhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnByc3lOSEhHSURBQ0hFPEBFQkU9ODo+Pj08PEFCPD8+QUJGQ0VCQkdEQ0VFRkdHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMS01LSU5MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZW15fXmBiXVxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZxdU1JS0hKRUJFR0U8QEdDREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREdFSEhGSEdJS0pGSkhIS0hGRkxISEhKR0xMTExMSU1LTk1NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm92SktMSUxHQkVERTxARkREQjs/P0FAQEBEQT9CP0FDSEJFREZHRUlFRkRJSEZJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QS09QUlVYVk1OVFZVU1JRUExOVFNSV1teXl9dXWBfYWFhYGJjZWFjaGJkaWpndotsa2lnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dKTUxMTEdEQ0FEPD9FRUVDPUFBQ0JCQ0VCQkRBQUVHQ0hHSEdFSkZDR0lHR0pGSUxISkpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBPVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5gYl5gZWFhYmduaGJpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xNTEtMR0VBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NCSUZDSEpKSElLRkRLSkdISklJS0dKSk5LTkxJTEhKTUtaZkpkXEtsU0hPTl9uVWtzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVGB3dWlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5S05KS0pGQz9AQj89REVGRENEQkVFRUZCRkZIQ0RKRUVKTExKTE1HR01JSElLSEtKSUtKTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXlta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0JCPz1DRkdCRkNFREVFRENISEdERUtHR0xNTUtNTUdKTkhKS0pJTEpKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncXBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dFRUVCQkI9P0BGR0JHRElFRURCRklISEVHS0pHTU1OTE1OSExNSUxLSEpNSUtKSkpPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdoYWRqdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR3SU1HSURFRUNBQjxCQUJGREdGTEhFQ0NIS0hIRkpMTEZNS0xTUkxHTUxITkpJSE5ISkpJSE5PTU5MSk1NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2diYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISkxNTU1JS0pLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRURER0JISkxIRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpKS0tJSElHS0tLS0ZISkpMTExLSUtMTlRbXFRQVExQT05PT1ZRT09RT09RSklOUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NHQ0VHQ0lLTEhGREdLTEhER0hQS0xPS0xXTElFRUhJSkhJS0lMSkhGSEdKR0dJRUZMSElLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSSllhWlNgZFxhWFtkZFZWWFxZWlhcVllcXWJfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElER0dGS0pLSEVFSkpKR0VISFBKTE1KTVNJSEVBSEZKSUtLSUxKSUZFSkdERkdFRUpHQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOXlxeU1teY15aXWBjYFlfYltgXltUWFhZXl1jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tGRUhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRENDRUFGSkRASktJT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVlVcWV5kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkRHRUJFR0hGR0hJRkdKR0hGSEtJTERES0pOTUxMSEpKSEpHP0dGTkpLS01LS0tJR0dDREBEQUhJQT9JSkdPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUE9cX2FjY2NjYlxkY2JkY2ZYUVVUU1tYWmFeXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0VLSUZGR0hHR0lGRkZJTEpORURLSkxOSkxJS0pISUdCSEhRTUtLT0xLS0lIR0VEP0VCSEhBQUdGRFRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJgYGJiYGNiYmRkYlhPUVFSW1NbXl1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lKS05MTElMS0lJR0RIS1FPTUxQTE1LS0hJQ0RBRUNIR0JBRkVCVlVFXFRdU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJdYGBfYmNiXWJiV19fVFBOUFFYUl1cW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQRFdfSUdHSERGTUpQUEVKSUpLTkxLS0xLSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0FERkFMSENMTFBPT0xGTUZHSUpIR0xMTU9QSUxPUFBTUExQVFNVWllXWVhYZFZPU1RQUE9OUFVUXFlZWl1cYGFkZWNoY2tscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHSFlNR0hKSEdOTFFRSUtKS0tOTlVOT0tLTEdHS1BTU05QT05OTk9IS0VgRURfTERmY0RNW0heXHNtT01WbVlMQ1BgVWxXZ0pdV1VeRExRVUxNVFZRU1RYV1RYVVRcVFBmWmhoZFhTa1RXVlVbXFtgYGFiYmJgZmhmbmxocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09TSUtHYFRISk9KSU9NUlFLTEtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzV1BtSHFucGFWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZVV39qdHV1X2B3YFhhXFxmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEZKTEZSVkxLT0lLUlhXUU5OTkxRVE5PUVBLTE9HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWVJUUXZndGxwYm5malFyT013bWpycHNycXJwb3CBXWV6dXhxcXpxfnN9a3V9YlJnfGVzc29zc3x9b315b39yX2BgYmJaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEtKSEpQTk1NSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dRVFBQUFFLR2Z4bGN4cm1aSkxVeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3NRaHptaWp6en1seHp/b2dvWHZ2anV1cIBgc2h8aWx4fG9eX19jYltdYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk1KU3ROQ0JFUFBISktKTFBPT1BNUFpgWlhLVFdQYV5SVlFZU01QSVNUVlhXV1BVUE9OUkpLcm91dXF1cWRoYFZuTHFwXkZoeVd2VEtoeH14YHl7c25hXm1vZFJncnVubXlwd2x2dHRxbG1cdH56a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tS0tbVkhHRUdSUEpMTUtMUVFRUVBRV1xZVU5WWVVmWFJSWV5UTU5JVFRXV1lXT1NOTk5RSFJtSGl3S2BkdnZVV2xPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGV8aXJ7XVRLbGB2dWtpdXt7bX54a3xwXV5eYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobG1yfGttaGt7dG1ta21PSEpLSElJSFJQTE5PTUxUU1NPVFJXUlZUUFdaVlZUVFRhYFFPTktUVFNRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1dYUl1ZV11WVE9ZUldXV1hZX1tncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraG96aGdna3VqaGdpbFFJS0xMTUtKU1FNUVBPTFZWVFBUVVhVWVVSWl1WVVRXVVlYUE9MTVZUUU5VU05PTUxRUEtKUVJLUU1LS09SVFJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1FRVVVWU1pRT1NSV1VUWVZUWVVTUlVTVFRXWFddWl5hXVxaWlxcYGNcXWJjZGdlZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUEpLTE9PTE1UUE5TUVFNWFdVVFVXV1daVlRcYFZXVllVWFRRUEtPV1NQTlVQTlFOS1NQTU9VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RPVFVYVVRZVVdZVFJSV1VVV1tZWl9dVVhfXV5dXF1hYV5bYmJjaGZlZGJYX2BiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FaWVhXWFpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVU9XUlRVVU9OTVFTVVVUVFJUWFZaXVxaVlZRUldYVltbV1FUVlZVVlhUV1dUUlJYVlVaXVldX15WXl1eYFxcYGBfX1piYmRoaGVkYVliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUldTU1NYTU9QUlRYVVVVU1VZWFteXVxbVlJPVVZWW1xXUVRXVVdYVVNYWlRTUVpXVlxeWl9fYFVhXGBhXWBiX1xgXWNhY2doZGZgWWNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeYFteXmFgX2JcWWBaUU5PTlZRUFRST1VUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSS1FUU1haV1VPUk5TWFZUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVVZcXFZSVFZWWFlSU1lcVFJSXFdaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZmlkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1bYFxgVVxdaWpyfXNsZ1xVWVdRT1JbU1JRVFJUVVRLUlZVW1laU09TUlZWVVNPVlJTWlJUVVRYXFdYWFNYXFheXVlaXVRVTlZXV15bWFFUVVhYWFRWWFtUU1ZdWV1dYF1iY15ZYFtlYl9kZF5eY2NhXWVmaWRmXV5kYWBhYWNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVVZWVFRUXl5gXl5iXGBVXV5ia3l0bH1sWlVaVVFRU1xUVFRVVFZZV0xSWlZdW1xST1VTWFdWU1BYUlNXU1ZWVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paU1RWWllaVldZXFZVWl1cXmFhX2RkXV5dXWVhYmZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVpXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFhXV1ZWV11YUFVcWV5dXVRSWFJXVlRSVFhSU1ZUWVhZXV5YXVtVXl9YX19YXVZRWVRZWlphWVxVVlhbWlpYWVlaWFZdXl9eY2JhZWVdYlxgZmJkZmRfX2RiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaVlNcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFlcWlZYVVdbWllbWVhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdbWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVtZWV5fYGBkYmNlZWJkWmJmY2dmZV5hYmBjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFZYV1hdX2JhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xSVlhRV1ZWVlZWVFZUWFxcX2BgXWBdV2FeW15cW15YVlhYW1pfYFxfWFldXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTVJXWVZXWlhbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBYV1hYWFdWWFZdXV5gYWFfYl5ZYV1dXlldXllYVldbW2BfXV9ZWV5dXl5hXFtaWVxfYl9iZGNlZmVmYlpkZmdpZ2NfY15hZmRaaWliZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhLV1dcWVdcXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FiXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNgUlxZT1hXWVtaWVhaWWBdYGJiYGFjX1xiXV9dW15eWllVWF1dX2BfX1taXl5gYmNcXFdbXWBiYWNlZGdlZWZkXGVmaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWFdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9cXF5bWF1bXl9hY2JhYV1iW2JkYV9jY2JdXFtaV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxdXl9aWFZbX11cYWFfXVtgYWJlYl9dU1xfYGNkZGZkZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoY2hoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3p6ent7e3t7e3t6enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3p6ent6enp6enp6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIjbG1tLS0s7O7vr6+vr69ytPS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIuRu8C/wMC/v8nMzMzMzMvb5uXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXp6enhvb3BwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2AgYGBgYCAgYKCgoKCgoSEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnh7d3p6eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3p6enp6eXp5eXl5eXl6enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx7fH17fXx4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHx9fX1+fXh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d6fH17fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en18fHx7fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h6enl8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3t5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8e358fX5+fn5+fX1/f398fH2Ag4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAf35/gYCAgH+AgYF/fn+AgX9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35+gH9/gIB/f39+f39+fn5+fX5/f35/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5/fn5/f39/fn9/fn5+f4CAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/gIGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCgoKHg4OCgIKBgYKCgoOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCBg4GChYWFhYaGh4aFhoaHiIeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WEgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSDg4ODgoOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCh4KBgoKCgYGBgoGCgoOBgYCAgH6BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKBgYaaiIB/gICAf4CCgYCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgYOEgoKCgYGFjp2Mg4KEgoF/gIKBgoKBgoSDgYGAgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KGhYSDgX59fICTnY2DhYSDh4WBgIGCg4KChIODgoGBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+AhZSLhX58fX1+e42fi4GCgYGLi3+GhIKCgoGCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f36GnpeHfX+AfouFgJGEgYOBf4+SgZOLgIGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqHg4ODhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIScoIiBjIJ9hoV9goSDhIKBlJiCiYiAgoKDg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZSfhYSIhIeBgH5+hYWFhIWOhX19fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiJCBgoGChX9/fn2Ch4aDgH5+f39/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4KAgICJhH9+fX+FgX9/gIB/f39+gICEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkZGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAg42Gg4B+foB/f3+AgICAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOAgIGFhIKDgoGBgoGBgYF/f4B/f357eoGLjImKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCBhIWEgoKCgoKCgoB/fn19fX1/fnx6fI+MiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWDg4WEg4SDgoKCg4F+fX5+fn5+fn19fn19foOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYmDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4SDg5GSkY6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhYCBhIODg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGhoeEg4GDg4SFhYWDg4WEhISEhISFhIKCg4GEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4KDg4ODg4KCf319f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn6Ag4ODgoOCg4J9fX5/gICBgH59fX19fn18enp6f4KCgX9/f39+f3+Afn2Af36AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foCDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gICAfn9+fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/fn5+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn59fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gYCAgIGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOAgoOBf4GAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhYSDg4SDhYSEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgICCgYKAgIGBgH+LlI+Mi42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRjIyNjo6KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2MjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fH+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIyPjYuKhoSGhISDg4ODgoKCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaFgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42Mi4iEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gH+BgYB/fYB/f35/fn5+f398gn5+fX19enx9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4WBhJGOjIuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIkY2LiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH19fX19fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uLiY2Rjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjpCNi4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fHx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGBgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICAgoF/gIGEgX5+gH9+foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYKCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fYmGhoWFh4WFhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKDgoSCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4F/gIOCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF+fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9+f398fn9/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgYB/foCBfn+AgoKAgYOChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH99fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Afn5+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/g35+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/gYF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg39/goGEg4OEgYGDgIKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEf4CDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYB/goGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGDgYCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICDhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgYSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fX5+foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISFhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWEgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId6bX1yc3Zzdm1ud2xweWx1fX9/fX6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3t/fXyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYSFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhISGh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoeGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaFhYeFhYeFhoWHhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx+e3x8e3x8fH17e3t9fHt+fHt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2AfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEg4aChYGBgH9/gIB+f4CCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aFhIaHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1NXU1NTV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fb29vb29vb29vb29vb29zc3Nvc29vb29zb29vb2tPS09PT09PU1NTU1NTV1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0j4yMjIyMjIyMjIyMjI2IgYKBgYGBgYGBgYGBf4/T0tLS0tLS09PT0tPT0t3j4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFpVVlZWVlZWVlZWVlZXTkNDQ0NDRERDQ0NEREBc0tPS0tLS0tLS0tLS0tDg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/ODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpZ5fWVpaWlpaWlpaWlpaW1NISEhISEhISEhISEhEYNHT0tLS0tLS0tLS0tLQ3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqjaGRlZWVlZWVlZWRkZWVdU1RUVFRUVVRUVFRVUWvS09LS0tLS0tLS0tLS0t7p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzMzMzMzMvLy8vLy8vLy8rLzMvN1NTU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7O0NTSz8/P0dPPz9LU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19bX19fX19bW1tbW1tbX19fX19fX19fX19jY19bW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Oz8qWpdHP0rif0dGcgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8+cqp2t1bKXmLi6lbi5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DLlIiancydo6ix0ZJ9fq+w0s7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0b3ImZnCxYibttXTzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Sl5Sfy9elm7XU08CgoNDP0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Ts5vEmNTVopq11NSvoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0c6NkJ7C16KZtdTTo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHL2qiZr9qimrbUzp6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJjqWanrTZo5q118OfodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HKu6Gmp5zL16KbtNmypKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09OekI221tWyhMbWuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0rrE1dLS0cTV0dHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/Pj5BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLV1NLS0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw9OTs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ojg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc2ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+fn5+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo7PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/OzpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6ChoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QT4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnp6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiZl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVnJqdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipKmnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6mnqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6KvqqqtqKirsKmoqqihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PjxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustq+zsKuxsrGin6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopKGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6impidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYW1odWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW2vLy+vLy+xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0NERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb21ocXhveWppYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbDxMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3lmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDw8HEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbO/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMnIyMnHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBx8HLy8jGzMrNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVvdGJdYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBwsO/v77Ey8jKy8m8utXWyczIw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnZGplYWptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDubi5vL3Bx8HGucrKnMHGw8DEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e9xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmdjW1paXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9wLm+urq0wLi1t7Kuuru2wLnam368wr7AvLvEvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+urW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vsvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCnoaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmJnamdmaWVpXVZWVFlPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLevrre1uL3JyoOEpce6w7W6x7i2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGhoqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHFtZWVmb2lla2hYWE5LS0tSSUxIQzk9OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88OTc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e5t7q7uru/0al7f4m6v8e3ubitt7W4urS4s7vFxsvBvMbAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJidnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2kr7C2ubK9vrvEtre3ppinpqe2xMiMeX6FucnPwsC4rrW1vL64urK+xMTKxcHKw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFmbGludG54Y2diW2NRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C60dO0u768xbq0jm5ocGNreZ+se3uChbvR0czKxLW6wMPIv761v8G/xsa/y8bDv8G8wMPMysfFxsC5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDPDs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPEFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLGzxLLG2by9u8etjnhjYmpOUlpgfnl/hYm8yszLzcrGwsTLzsK8ub25ucDDv8jGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLW8uL1pd73Ov7ivb1liZFNsZ1NRUVtzfYSPu8PHy8jBw8HAycrCwLu6sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKyr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpJ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u8HAdGl9q762cFZKVmpJWoF3c1RQZnyFmry9v8bAucC8vsXEvb25srCuuLe/w8fDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f312bHV6cG5pW19fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkNCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnJv3p3aX+pl1ZPSnd0TVFseYN7UFSCiaG3uLfCurO7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGso6irqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9mXVpUSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa4yMCDfnNxk2xPSFyJaE9PT4GufV1LeKSosbK3vrmytbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZxbF9jYVtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8S7jIN7eH5hSWCMal5RT16Bro5eUE57trawtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZlhcXVJOTUE+SUJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i6wZuMhYl+U02InnhqWlZsXnWHbm96pby2sbS1srSvrLu6uLa6wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7yqkI2WmkxVir1ke4KJZ2J7amJtdqC+uLK0s7CxrbC5uLa+uLu/srKyrrGuua+qq62so6ihnZ6el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+ysKSapJ1MYH6PeWx5fWNhamt0eW2CpLeyrbOvrqyutrazvLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6aim6OclZCMj4+Qk5CXlZaYn56empiml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR1BNTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqbS/s7NvYYVvaWlXY11eU1RZY2FccXuitqqytK6qq6+wsrWtpZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mao5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01KSEdPUk1KTkc8RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqKGmw8OQVXVuZm9mV1tRSEVHSUxLTmFle7Ovr7O1qqasq6KcmZSOkZaXmZmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHl5YGJSVWBJSUpLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWenbuyg31hX21hVEhGUUtJRElHRUpVWVylsrCwuKymoZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKxtKqyr6KZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk9VTFNMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuim56jp6F/Z2hfVEdJVn1+aFNHQ0JGTFBTirGurK+nn56ioJeRk5ugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFJVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaGPd2pbUUpGTHGgp6BsTkVCQD9CVIOgq6qppJ+fmZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+nqKWkn52qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JXTkpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKSgeWdcUk1LSlKN2dnAj3VkVklEU5GsqK2pqqWfnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqztK+zrqqvo52rp7axraKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHJra3VycGhXW1FFVEhESlBJP0VBNEZIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfn5qgnm5WTkxOTVZnodC7oJe4ppCJmK64rqejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsHGvrq0urq0u7ewtbKqurKuu7e/u7qqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGpkWltGS0xFRFNMREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaKdnJVgTkZKTFZrfqe4qoaM1NbGv7eon5qcm56emZeXl5KMjpeXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxczQ0tXO08m9wL/Du8bFyMXR1M3T0NPTzMrCxsbHysjOv8jRzMfFx8XBvMPBvr++tb6zrr+/wsPHxMfErr+4sri8w8HBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOfnJ6UXEpCSExoeam4oZB/scu7r6minpyfmpiWlJKUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LV1tPTyMzHzM3J0s3O083FyMnKwcbLx8jJxr/Ds7PIxMvKy8/Gyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2gomxKSkxVdaLN0ruhpLOqo5ycnKCkoJ2alJSVlIl8d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDW1tbS1s3U1tfU09HT1NTTz9LD0NPW2NXW0svJztHLxs3SytLW1tnV19PW2M7Sys/RzM7QzNLPv8jHysPMzMzOz8XGx7a/yr/RzcvPxsnIv8PDyM7Mz9DPzcrHzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSEk+O0E4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoayBZXJ2kLPR29G9r6mZlZignJqgoJ6bnJmViXdpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ2NfY0djS19nV1szPz8rN0svO0MDGwsfFzs3R0dHIzM3AyszF087LzsjEysfGyMzK09PR1c/SzNPBucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV5WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaWhgoqStNLS1cKtpqCXlpiam5yfnZicnZN9cWVjY19fYV9fYWBfYGBfYGZucHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY2NfLyM7Eyc/MyszAyb/Hyc3Oz8vQzc7Mzs/Iy9DQys7KwsnHyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1XRTtAPTMzPD04Nzg2NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramngWyIh8DVzLCbm5aUl5uenp+clJaYlIhrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29ydHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Hzs3N1MzO083L19bQzNHUy8zQ0tPKztHV0tXVyr/JwcXMwsjJwszDxcjKys/KzczQzdPLxsjPzcjHy8XGwcXKzM3P0cbQzs3NzM/Fx8G4ub3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV5cHFrbWdgYHBoWFhoVkxGTElQUEI7Qz47Njc6ODk6NTc9PUA7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKigrGpofpPW0KqVjo2YlpGTkpGWlpaQi3xlYWJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svRz8W6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL7Ax8zLy87Cy8vIx8vQxMXIu8fDycjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7utpaVfbXeq1KqQjo6XkIeEhISCfoWFf3NgW15eXmBeYGNkY19dXV5fYGBfW1pcYGtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLLycHCzNDFzMi/ucG7xse+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xry8wMPFzMXFu8DKwsXH0sXByb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZujoJuUe3ZzdGZpWmFubFpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srKVXnB3uLSPi5OXh3uBhYaAdnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsba6srKzsrHCvLy8urjBwcLFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDv7zBzcPGvb21wb3Dur3Gu8K6s7zFxMHCtr+2tb2/u8zDvLW6yLq/vsvEwcbCxsnGyMbQxsLMx7LHycPOzcHFw8C9s7ewsqeoqLmwpa2wqq2slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztHKysrHzc3O0cjQxtXU1tfNys/FycXHwbnFvauvhmBzg7CSjImLhXmBh4eAfoR8dHRjW1xdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLW3tLOztLy2vbG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bBwry4vcbBw7u1rrK2ur+0xLe7tau4vb3AvbG6tq+2urPFvLeuu7+1t7TFvL7DxcDDxcbIy8XAxsa7yMu/z8rHw8bCw7fDvb22ub7Hv6y1urW3to55dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcXAvrq4ybWpsYZoc5OejIaJint5foaGd3iCfXRpXl1dXV9gX2BkYV9kZWNfX1xbXlxdXlpbW11fbHBtaGZqbW5yfKTHv7i4tbCrrKeeoqqnnquts62qrKm0r7ewsqmupqyyvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLLAtri9sLCnsrO1u7yrrrWlrrWuu7Kwqbmwrbuuu7i7wMC9ucK/x8PFwbzGwsjLuMXHxb/Gw8O6xMbCu8bJzMuzucK8u7OIc3Z2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx87Bw8a/xMTDw8rBycq+v7zAurK0tMOuqa+Ja2OJk4iOkHx4foqFenuEgXduXl1cXV1fYF9fZGJhY2NiYF9dW1taWl1aWlpaXGVub2hmZ2lrbnKBrbmwta6mpaenmqCloZqcpauupKiirKqsqrCjpp+qrbW2sb25r7evqa64tLS8uLS8r7i5tbK7wbLArqWpoquxsrOovaqrqKusrbSzpqitoaSvqbKmp6iupqi3rLGyt7q6u7K8vb6+xL+1wsHHyLe/wMW3xMK/u7/Ewr7EyMzKv77EwMCph3N0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HLvrvJtr3DvrrJt8HDwbS1u7WwrrS7raioimNni4SIi4B7foB+eHR/fHN3ZV9dXFxeX2BeX2NjYWJgYF9dXVxaWFpbW1lYWlxfZmtmZWdlaWtvcoWqpayloJyipZSepJuYkqGjqqSin6alqKWtoJ2cpaassq+2t6ewq6iqtKu0urG2ta62ubKvurqxtqSgpJ+msaerqLmqpKanqKeyraCnpp+bpKasnp+no6Chsa2trLK0s7Swtby2u8HBsrq+w8GyubnDs8C9v7W4u72+vMLHxMLDvsDEoIN4cGthZl9rb2BUWV5ITmdPVEhFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLS1vbi6wLq9taCelZ2hprq2q7Ozu7PEz8jLwsa4t8fBzL+4ybe7xbizxLizvsCrtbuxq6Susqygoo1he4eGhoF8eXV0b21rampxaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeWm6GWm6KYlo2eoaOnm5+gpKaiqJ6bopufq7CssbajqaqqrKyktLmtt7Css7WusrWusKqfnZ+korKkpqm4raKmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqrKytsbK4r7i5u7C2u7u6q7OzurO9tLaxsbW0v7a9wL3Dwbu7vZeDe3NrX2VeZGRYVFddSVdcS1BHSUlGQTw/P0A7PzwwNDUzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vEw8++uce4t763ssG0sbu7q7i5sKGeqKqml56JZYOFhn94cm5wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1hYWFhaXmJkZWVmZmhpa3KNp52UlZWbmJuilpaRnKKiqJ2bnaWmoqacoKCbma6ura6yoKWirqunorWxsrKsqK+yp7qzprWgop6bo6Gto6Kqtaqio6adpqajlpmel5mbnaCal52dnZytoaunpKSmrauztKq1sLOrsrm0r6qvsrKzt7Ouqayusriwura6vb+3s7GUhXl1ZV5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWkmKWxwrW2va20uMLMyMa/xbbBv8fOt8DEvbO5ubK/trG4uqyxtK2emaOon5KafWiAg4R/eG9xdHFpZmRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqKclJSQlZeXoJeZlZignqGclqGiqaSfn6mdnJqrp6+wqpujpLiqoaCuqLaqpqetsKS4sKS3oKKbmZmqpqGarLiwoqGknKKfn5OUoZSWlpuYl5aXnJWfqp6qpKKdo6qqsK6otKuqp62ysKWrrrOxsLCur6anp7KusbSwvLS5t66jlIF5dWReYVZZV1NSVEtNXkxPS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri9rp2nqKOqu8C9wLmutLjBzMfFwsO9xbfIzLLBwsGtvLu0u7y0uLmvrq+om5igp5OQinR7gHx3cWlscnRwaWhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmqBlpOVjJKUlJuZnZaWnKCcoJahoKempKann52fpqCqr6afoqS3qKGhoqi0oqWopbClsK2rtJ6gnZWVqaGilK2xsZ+io52emJuTi6GUkZOYmJKXl5iXnqecp6GimaOlpaukpbCnpaOrq62mqa6vrquoqqmzpaasr7Sxr7y1sa+uoJJ6dnJkYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxse2xsSzwr/Fqre3vba9urq1squsppiXnqKLiHJ9iH52bmNiZmloZmhqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWVtXVVhXVVRWVVNUUlVgYF9gYV9gYWNkaYGUk4mRj5STlJ2UlZekmaCXnaGmoq2mpKSjo6KcqqulmZ+lsaqgoZ2lq52noZ6trKmprayhoqKVmKObnJCrqbCbn6KfnpeZk4mekY2Sk5aQmJiTnKGjnaSgopWgoqSmm6OrpaKkqqSrrqWusqmmpaamtKapqK2ztbS5uq+prJ6LcnBvYFtXVlVSR1BPSFpbT1JJVEtTTEVGSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4tMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm9sb7EyayxuMG1u8C7tLOoqaSUmZqbiH5wh4N7dGlpaWxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eX19fYmRtjpCEkYeQkY+Zk5WTnJujnJuhqamrqKynqKakmaWupJSZpa+pn5uZm6Cerpmcq7OgpaafoqOhlZOblpaSqaqtmpygoaCalJCMmY6MkYyRjZaVkJ2hoKOcm6OVm6CjoZeiqKOiqKugq6+jrbelo6OirK2qqKuvs7ezvrWzq6+YhHRzaFtYWFNVUUVYTFFbWE1UTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDAtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62os7auqaevrpupqKu3tqy7yru2v6zLxsW4wc7PyLPEu7e7w8ixrbi/t7y9urKzo6eelJaXlYZ4c4B2d25taG1ubXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZH6NgYt/jJCKko2XkZeZoqCboKuqpq6sqK+kqZqfrKCVlqSop52XkI+anq6WmKiqmZ+dlKWgnpKQkpGTlaerpZqZmZ6elY2Mi5OGiY2Dj4uSlZGgnqGjl5WflZqhop6Um6Wlp6iooLGwprG8p5+jrLSrrqewtbC5tcCxrbGrkH1yc2JWU1ZOUklGVlBSUUxMV01KTE5SR01KQUNGREM+QDY1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqaisKudqqepsrGltsa0ubqzysW5usHL0Muxtri8vsHDsbCyt620s7qysaGhmpuXlpKCfnZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWFxcXWFqgHp/domNh5CKl4mUlJibmZ6pm6CqpqWrnaiaoaWbk4+fo5uXl4WEkpujj5SjnZaWloiim5uTi46KkJqkp5yVlZebkZGHlI6LgYuNgJCKkpKSoJqfopWUmJmVoqaZjZmkpqimoZ+0sqiyt6Gcoresqq2ksrKmtby1rKuxo4l4c21dTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSopLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2saWno6mloKilpbOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq25rqudmJmclJKFeoFtX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGEj4uUkZSeoY+bnKOho5ill6KclY2HmJqMc42Dfo2XloaRmZCUjo57mY+cjIKJf4qYn6OekJOYloWNgpR+fnSKjnqQh5OQkJ2amZqRlZCdjqKjjomaoKGkpJuitK+sr6yfmKW4pqaxobGunLC8qqmvqpmCd3NjVk1ST1BNQ1NOTFFNQlBRSElOUk1ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6a0wbiwtLDJxLe5wc7FvrOsusGrrcOtqKKmkp2mtauhnI6UlZGOfHZ9ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5YcpCDl4aOnZeLlJCfmJ2VlJaVj5aJgJOJXztXb3yLlImAjJGMkIaGc4qFloF5gXqFlJ2Ug5WOkZCDhn2TeHFwhY19iYGRjY+XmpiTio+JnIifmIiHlp6aoaCXp6+praion5ats6Kmrpmsq5iotKKpraOTfXJuYFtOU1JWTERUSlBNTEZOT0lFTFFNS09KSU1PRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCgrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepqKOqsKintMG5sbWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUm66gmJWFk46KhntydFxRTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQH+VkZF9iZSNhIqNm42WlYmSiIaVhnmIf2BKUW54ipGEfYSNioV/f25+f5R3dXV3hI2ZcFGNiIqGe354lHZod4aIfYqJlYuNkZKWi4SKiJWEmoyChJKblp6dlKSjqKmlpJ6bsKqhpKSRpqqWoqqcoqaoiXRtZ15bSFFRUk1JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Nzc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+ir6GnqKWnqK+sqrW8tri3s8G7tqe5yLi2qKi1tqqyvKaelY5/iZOnlZSJfY2DgXx2b21YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJOBkpmLj3uGj4B2f3hzbnVwdI2OgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gXZycpJ3Z3WEhISEe5WJiIqMi4B/hIuMgJSDfIGPmJWclZGfnamen6CdoKmln52Yjaekk6Gflp6epIByaGFcXUpWT1JHSlhST0pMTVJKSkpMUElMUUxSVExFSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlrKuwsaq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGNlICNm42QfnaFd3t1b25oWEtISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfHhmd42XmI2PfWh5gXZ4gImPfYSYkoFxh498d3tva36tfXOQi397hpKBfX90ZnZ8hmxvaHN8iYyIgGx5cX1wbXWPcWlxgH6OcEOLhIKDhX93d3qLhX2Me3V+jpKPmIqSmpujlpmdmp2eop2WjYulm4+el46WmI93b21lYlpYV1RRSlNVVE9QTlBWS05LTk9KUU5ITk9LRUM8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzUxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmxr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mOhJJ5iI2KiXVwe210cGlsaVdLRkdFQUBDRElMTE1RUlBRU1RUVFVWV1dXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnp9fnt2b3RzhYJ5gXhwfI6MipSDlpeYmpCSlZeZl56XjIOJn5GLko2GkJZ/bmlub25YVVdUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ozk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCirKqota+urLS/q7zCv6aimZWkl52NhIuUoaGYmJGTi3OOen+Fi4V0bnRrcGxka2pYTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXGCniGKaaXR6ZX9wbX96i4l2gYiGdGyaknRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxgHxncXF7bpONj3tzfXxxcG51bYJ/eHl1anmJgoiKhJaTkpCLjZGUlI+XjoB5iJeIhoqGgJCIdmpqb2hlWFFaV1lZW01QVVZZWE5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfp7uvq7KwwrG7w8ealo+UmYuNhXmEkJiUjZCMj4Zxh4Jzh4yFem9ycG5vZHBmX1RGSUM/PDs5Oj9AQURERUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgYWBeoSGhnlyoZV0eIFzdZSHNXGdqJ2OoaGEooV2cIZ8h3xzjK2NiYBnZmJqbnJtcIN1aW9YdXCOmpJ3bH97fW1xbXCAenN2bmN2hH6GgIWQkYqLiZGLkYyLj4N1eIuPgH6DgH6PenFwb2tgW1xeW1lYYF9STltaWFdMSEpGSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkrKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ6kp56vlaW1qq6xrsGyu8HGlpCMlJCAiH1ugZCSiYOKh4+FdYKDbJWIh3t0eHhsd253Y2leSVBHPkA3NDQ5Ozs8PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgYWZhJucYYaqn52Lg5COeneIfomIjXOKl4+Eel1kcXR6e3eKbGdqYnlvhY+Cem6Bd3SEenB0endrbmled4d9h3yIh4+Ai5KXg42FjYd9cYR/hH11d3t8iXZwc3RlZ19bW11TW2ZeV1FVWFtVR0pKRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIySnZ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fYF+cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbXyBhod9jmhnaHh+boWHgoVxhIVHa4B3cnl2aG1rX3d9g4l/iIWMepWem4mLiJF/enWLdnx4bW93fn9zc3JsW11dW2NjWGZlXFVQUFZZUERMS0ZOSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEzMzY2ODo9P0BCRUdISkxOUVRUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiJGBmpWCoKGXlZuapa2Tmruxp7vHw6iKjKGlj5SJgZF7cYOen5Gcf3aFhYqPiJBpaG+DgHWNh4SLcYaCd4eAe3aFfW52dWeAlI+GiYiIiIehq6GWiY6Yf3qCiXp6b2dreH56fnJqZF5aWl1qXGFmX1lPS05XUlFIUEpETkdDSkRCQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMgIGRj4uam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBjIuCiY2Df4l/bXBqXUJBNC0tLy8uLzAyMjM0Nzc5Oz0/QkVISk5RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISkxLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKOoZ+UmZKEioWPmJGWbHB1iYuCloyNj3aPhHFshYGKlpKDhYhyiaGWh5OJj4+WpbWpm42VooOHk4R9f2tqa3yAgYFzYV1jXlpma1xra15XS0dPU1FOTUxGSVBDRE1GQUNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+mJaalZ+fnKegqpaTmJ5nZaSafoSSkXmAkoiQkn2KhZmSkYKAgIuNiYWQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjU1Nzs/Q0VOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZ2fqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+ElJKGnKGampmnkZGIlaKamnh6fpSYkqGSl5eBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIlo+OgYhsc3J8f3xxaGBcYF5iZ2NgZ2dcUUVKS1BPSUpMRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJjIqEkoWDhomBgIZ3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpNT1FZbYaQd5WLo6eqtL24pa6srKeotKuwt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsrauki5aYhaamoKKXgaaZjaKqqKSIhZSkoaCqoaSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWqiJmJkoqWenp+hX5nYGhcZWJdZGNfZmZeW09DSUhUT0ZITEZKR0VGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGUhYiCnIOSkI2S2sidlnNWl4iPiJyPfIaMjoqKeoiCh5GOg4WAi4WGh5KGgoSJhoiHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJTVVVXVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHw6uzxrass7+zuL62v7TBtru7pLjGqbbJx7W+ubSoo7StsbGcmpKan4mnr6uklXafpJehq7GzmJaqrqiutruyuqyvtaKxrLG1vLe1rrWgp6ijqJupsK2yuri4p5u2qYykjpGToId4goN1WWFkVmVhYWNgYWVfWlVKREVMVVFISUpESUdFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hX6AjXu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeFgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjUwLzZDSENRXE9RVVdVXFZPXlVJS0pBQD9HS0ZFRDs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMm2vMW9s7PAt7jCtb+wuHSytKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KSpbCupa2sp6SYoKyzuqKpsrq1u77Mv8XFvb2zwre6uL+3ure5rK2wprGqrb6wvbvCwqyZuqiUro+YmKuJfoJ8aldiYVhqZWplV1tjWVZUSUdHTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh203P0ZRTEFMUldUWVVad2pwf4+EgY6FbnpyeYhiuKGZo4mVk5aTk5ONkJeSh4d7hoGNlYqAhICKenyLh4Z8ioOBioOVfXd5dWVPXGRHRUw6UWRhW15TRj87SFBEWmNRUVlYWWdZVGBgTVNPRUE/SUpIRUZBQEM9RTZCPkhHS0xTWlRdk6+4tbq5ycC7vcnMu7zAvLe1vLu3vrW6ssZgdbOlsZqeq72qpairqqOisrWhq6ielZafmKCupaenpZ6klKKnsbSnsrK8tsG908nK08bCxczCysPAvr2/u7y3tLC5t7fDusa9w8mwnrmqoqyPpai3iYF/cV9hYVxXYV9oZlJYYVZSVUlFRk5LQT5HRD1LQj1CQD1GPTtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzM1MjY/OEA+R0tSVFRSUFBRUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWhsbHGQjYWQdG1zcnOI1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaLf4N/gnh6i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV9uX1hnZVVZVEpEQUtKSEZISEhIQkk5RD9IS1RUVlxaW5K5wLm9t8bAu7nKy7q3uba4ubO4tbSutraZZHWonq1wXqKsnJiho5uknqullKCfkJSOlpiXqJ+mn5+amYSknaylqrCtt7C9udTRz9fPyczSzM/OysfAv8LKvcG9wsDFxMbKv8jOtKS7sLWwm6y5vZp/eWxdX1tYXWFZY2NRW2BTUUtDQUVGRDxART5CSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KRlG9sb3V1iLOsoaGfi5mcmYyNlZGbkoWKin6Ih4yQi4l8gYRze4mDhnyJdIKKhpV/c3t4bG11e2hyZWlsaWZqaWhgZmlobVptdJetpLyIh2dbb2hdWllUSEpOUEpLUUxUUUlMQUpHS1BfX2JmaWGYt8ewubO7vrayxMe1r7mwsLuss7Gnqresjbannpunmk+bnYyOoJaRppillYqTk4mQiY+RkZ6boZiblZeHnpqmm6yvqK+ns7TU1NXW0svP09XO08/NxcLJ0L/KycvJ0sjNzcLQ0riwxLzEuqa2u8Sjgm5jXFxdWGBXWGZaUV1XTlBDQkhFQkk7QUQ+QUg/P0I3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OT05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmINocW95eYOgqp6ml42bm5eLjpWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfXF4dWxxeH5xe214c2xpgXBtY2ltcHlpd31+y7/C36dtY3huY1thYEpQUlVOWV5QXV1OUU5UUVVUXG5ud4Jylq64rLSnsLarrb3Asau1pqW4p6yuoay0o46xrpqYmIyRlJGEjpuBjaaRnImDi4SKiYSLg5SVmJeUm5GcmJmZnp6rrKSnoaysztLV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbGwM7HyMOpv7jQnnluZV1iXFZfUl1bT1BUUE5IPkFGQUJFPEBCPkVFPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bXdwfX6AoZ6eoYuNmZOTjIyTj5aEeYWQkI2LioiRh3+Ce3J+gIKHeoV1hZORiX9vdnNsc3x7dnxzgXdxa4BzcmlvcXp5cnu+y5p+jLKDdnKEdmhhal1DWlpbVmZkWGVrVFhdXGBjXWN4e3+LgZmqpKShoKGppqqxuKqltKOiraKjraKnsZ+JppqUkpGKko6IgpOJa5WijZmEgIV+kYODk5ati5WNlZmOhZKQnZensKGgoaSkqMfNz8jCy9DT0dTSztPNxtbSzNTY1tbY1dfVydTazcnX1tHKrcTDzIpyb2JgX1hTWVJcUEpHSUlKQDs6O0VBRDxCRD5IQj9CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN5coKJgZ2VnZSFi5aJj4qIjoePf3eElJmLjYiIi4l+g3hze32Dh3eAe4eRl4GDbndwbXV/dnh9c4V8eW2HdnRvfXaEdXl7nbWMPEGLxqV+jXxpZVZJQ2VjZmNoamRveVtfZmhrbmlugIOJkYudnqCdkJeYn6OjprKkpLOgoqWeoamgorGchp6SkpKQi46LhoOPhH6cm4yNg4SFepR+gqmVo4ySipiSi32XipqRq7OYmpunnKe9w8a4tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2trS1r/MzLR3dm5kXVlSVVBZVkZHSkpFRT06NzlAQUI6SERARUNBREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSg4mGhYqCh3x4hZaXiI+Dh4aHeoR5cXp7hIZ1eoWOjZ16jHB8b3B6f3J8gXGDh4Fujnp0d318gnV/fIeIsHRYqcK2jJKCcG5iPV5ocnBxcG54d4JlaW9ydXhye4uHjpSSm5agloeMk5ugm5+qn6CtnKKamZ+lnp+smYuajJGSjYV9iIeDhIuOoJmTiISHfm2ZeYSYhoiTjI2VjIZ7m4iTj66qlJWXnpimrra9qK29xsvIycvL0MnD0crU1tjX2NfV29fT2dvWz9va0dbI1cuVeXtoaFtZUFNTXUhDRUlJPkE+PTc6PT87Pkg9QEFBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1NDIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fISXjoeLfoaHgHeCeW57e4aBdHqSno2hdo91gnR1gX10gIRvgZCCb5KEdHyBhXp2hnuJt8akwsm4gZabj3dwZU5mY4F6gXeGopCLeXl3e4N/fIR2bZSWlJWPl5CDiY+WmpeXppyYoJefk5KXo52aq5aRkYuNkoOMhYmIgYWQkZ6cmYmFjIGGl3uIiJ+XkImNiouCfKGJkIu8oZeTl5mcqKalrp6ntb7AwLnHyc3Oxc3K0dbV1NnV19vU1tna29fb2tnYztvGhnp5ZmhkX1RXVlVNS0RNQzs9PTw5Ojw+OT5BNj4/QD0/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop8foB/gH2Fen6CkYmEhXqFiHt1fXRufH2GfnR/kp6Rn4OSfIZ+eI59eIqKboKagHSYhX6BiYV8fpB6j6mPkMOgvIycpJx9iYR9iXOMin5zppqcmZSFe4+QiYRoR3GhpJ2Mi5CShYiLkZKVj52ak5WRl42MlZ+dlKGUko6OkIt+kI+Oi4SIkpaan5+JjJSSnpGCi3+mmYiFjoKGhIClhoqMuJidkZSWoaegnZ6do662urWrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3h4d2ppZFZgW1NPTkhETEI9PT45OTo6OTk8PTZAPj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBj4pxcniKe3t/fX98iHp8e4uHgn51g4Z5c3pzbYF+hH13hpuhm56UkoCLiH+Yh4Cckm6HqIV6oIt8kI6DiIScfpqRio2joqCQpK+gi5GLhYuBkoZXcq2Ln6ycj4OYm5CQjlyDopGCjJ+TlYyGiIySk4yUlZSQjI+KiJabnY+VlpGLkpSGgIuJko2Jip2WmaOjhpOdlqGLioiOnJCDiI+Ag4eFpIaMkLOYnJKUl6GhnpmSm52nsbispbzBx83Hxs/Mz8zP18/R1K7W1dja2dra19bZ2p9vfHRnZlxdWFNWV0NASUQ+Pz46NDk6Ozc6OzozOzw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieGxifpKDbm13i3h5fnqBfYZ8e3aGhIBzcIWCe3Z2dXSEg4V9fpKmo56mopaJnZCUlouKqJdyirKMhKeRhJmThJmMopagmZOJmp2ikqmvn5GVkI6NiJWLbo23hJrEyLKdoqWbnJiWkbKQY6TNyJWOhoeJkJKOjZOUioWKioaWmpuPkJSTh5WYhICPi5mIjZCql5eko4iZnpabiY+Hl5eLhY+MgX+Gj6WJjZOomZaTlpihmJ+Zk52borK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6Ccn9oYl5dXU5JVFlBQkdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdoGOfXxtfoh4en56goKDfnZ2gIJ8bG6Lf3p8eHh8hIeKfoqjs6ejqrOhlqefpaOWla6ig5C4lZKzmYyhoYykm6+jpJ2YkKeWp5msr6SXlZaVkIuYmZagwI6jybmrm6OmrZiRm52ynYWFqKKcmIWJiY6VjYuTj4iBhoeJk5iVjIuUk4eUmIaEkZCcdJGZs5aXpaGInJqTkIqRipebiYqWjoZ9jJieiZCQnJqZk5iXn5SgnZWem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LQ1tjT0Ni7cnl2XWBVX1ZPSEpOREJDRTU+Ojc3Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OklFTkVEOjZBQEJTPjlETzMyMzU2NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p7boWGenyEeIGFgX5weHx+fW9yjXp9gXx4houJhoSSp7usqLK9r6Sts7Ooo6KwrIqatJ2juKSVraSXqa23pqSjn5mpl6mjr7CpmpmclJWRl6CYmru7rsqhara4q7CUmJ+jq5OXvqNeqrKCiYqNlIeRfI6OfYOGjo+UlYiHk5eMkJWNi4yXmJKdmbSXlqudi5yUko2QkoyZm4qRnpCLiZWfoY2UjZianZObmJ6UoaCUnJylr6ihpLO4q8LIxLW6vbvFx8fC0aDGyc3NxNfW0cvUoXB6aFxaU15RT0VDPjxDQUI4Pzg3NT5GPDw1PDM1MzQ1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQUVANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEpAi4p/gXOGh32CiHWDioJ/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruztMG8tK2rs7aLp7Ktrryqm7ukqK25uKumpqKho6Oor7KxqpycpJial5eeoqWlkqS6rqnAvK2tsrmlpKd9iIecrL2wg4yMi5CDj4ORj3qBiJCNjpyIh4+XjYuVl5SQmpadp5qxmpGsnI6aj5KOlZGQlpeOkaCRiZSbo6yUlo+UnJ2Sn52bmKChlJqep6akoqSwsqbBxsOvsLq2xcTCvs2mx8PHw7zV0c3Eyoh0c2JcWV9bTUpCTEBFRz5BP0I7OjQ+QTw9NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQjVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxlR2BpZ1pdXJOMjIh7h4uGg4x1hpGKgW9+e4F/cX6BepV6kpSUmJCTlaezxsm/wszBw7nHvLqvq7m6l7K2urLArqXApKuvu7yqrauiop2nqq60sKqbn6qboZuVn7C0p4ujurq2wbysqJyypaSolIWOqsPEpIKLj4eIhIaVlI16g42Rj5GhjIyUko6Il5+Xk5mVmKagr52MqpyNlY+SkZSVjpCVkY+hlIaXn6CynpSalKCgmKSfmqCboJSYnqakpqakr62lwMTCrqi3tcnDvrbOssS+xLyz0crIwrV1eW1cWFxpU0xIRExLS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk5lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoKQeY2hlqiampi6vcfIycHSycrCzbzBs627vqe6v728xLeswamss7u+qrCpo6WjrK2zrba1oJ+unqWimKO0vKmbqL3Bo7e3sKuSsK2rrJeGmqqmpZGCjJOllYmBdoqSeoWNkpCen5OPlIuPjZSjmZeclZSjn6qfkaWajI+PkJWWiHyPlZKSo5qVoKKctaaQnpelo6Klnp2mmJ6Vl5ulo6inorKsqLzAxK+ls7fMwLmuxLO7vsG4rMLDwsCZbXlhWFdcW0tLTUpGRERJQkJBREw6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+JoJOEeIV/lX9/kIiKkH+WoZmupqOYwr7Hw8fF083Ozcu8wrewubyzvMu8w8G1truts7+5vK6vqKCop7atramxt5qeraKnoZ2rt7eppbC/xLG+ubOnqrWzra6WlqWsqKCRjpKxxaeVjn2RlX2IkZmQqpmYk5OPk5WTpZ6TnZmToaOinJifmYuMj4+eiFqQlpeSlqWZZZijnrKllqKWrKyqp5ueppeYl5iVoaSopp+2q6m6vMO1prO1y8G4qbassrq4rqi3ur24gmxuWldUVU5GSlNOSz9BR0RESEdHOTVGTTs+Nz1ASi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZGDh6aTiIKHgpyEg5WQkJSOmqKfr76uoca8xcTGxs7OztLKvru2sbq7u77PtsS9t7i3srG1s7izq6acq6u4qqinr7CXo6+kp6SktcCwqqy0v8O6wLqzp7m1uLKulaWtr6+li5OVoY10wZp+l5mFj5aajLGVmpqVk5OZmaWjlZ+blpqpnZyhoJqLjY+WnWBKlpyalZqlllSWsJ+vnJ+llK+urKWaoKWUk5mZjpyfp6KZtKmqs7y8vKqwssfAuKWrq62xsaOhsbK0pHBuZlxaTlBLRFBQUFE7R0pJR0hDQz46S1U/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4unlo6Jk4Wfh4Sdl4+eoJqjpLXItKnGusLDx8nIyMzNxr67s665uMDBzbbIusG4tbqwr6+ztKajm6qztKqopq2smaSupaSnrLq/qKu1t7/Bv765s7LEsbm9rKOutay6poicmKabdr+ghZmdjpOZmouvl6GcnJeVm5+hqZ6ooJqaqpqip56YkI2RnYNudpKimpWdop6QrrKiq5WoqpeqrqWkn6WokpKZnIiUnKKelrGmqau6tr6zsq6+ubago6eopaecm6ypqYxiZWFfUktNR0hOSVVMPUxETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5ScoZ+7r5mUn4uTqpuRkpOJq42Hop+MpK2Uo6O2xr20wbrCwsfIxcLNyMG9ubKvubTAwsq1xbHBvLS6qqitrbCiopmqtLumqaarqp2or6ejqqq+u6etvLS3vce8t7W4wbG9wLOptberv6WPo5iRoqC8n4maoJmXnp6Pt5+pnKWjm5yhmqils6GbnaacqKqemZaPlJuLl4mMpaKUnaKeoLSvpaWTsKuZq6uenaSjqJGVlaCDj56enJWppKKhtLS6ta2otbKznpyipZqXlZiqoZ53YFxfXUpIRkdNUUlNRUZGQlJMSkJFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+ew62bl6SXmamclpqaj6qWlaemla2tmaGrtsTCu763wcLAx8S+zca7vbmyr7izv8LItb+vu7a4tqakqqytoKCaqqrEoqWoq6aeq6+soqmov7emrb2wt7bHtrW4uL+xv8G2tLO0r76jl6OWlJyUrqCRoqKlo6OfkL6lqZ2oq52doJumn72imKOfoqmroZ2XjZWek56Hj4WNk56koZ21rKWclbKnma+nn5qpnqCNmZWfhI2gmpuTpaSamKuxtbGqpaqtrJyYoKCSjpCWqJ6UaGJZYV1PSUdKTkxIRURJQT1QSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDPEM+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm5SRjxLeGViV0yimqOcnsWsoZ+snZ2uoJOjn5aloKapq5e2saOqsrXExL2/tr/Cu8jCvsrItri1tbCzs7fBxra+sLi0uLWfpqyqrJ2dnqWjwaWgqq2fpKmtr6Kmp721pbG8uLa2w7Kzt7m+ssPAt7ius7W1o52llZKUoa6gmaKdqairo5rDramerK2bm56ZpqG9op2lmKurrKahmY2Zn5KfiY9Xf5afpqGguKqnk5i2o5+yoaCbrpaejpmUnYKOn5eVjqKklZCmrrKrqaGipaWVlZ2Yi4+Rk6SeiWFkWWNgTEhKSk5GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dySEU2PXVlXEtOnp+hmJ7DqKWis6GcsqiTq6SgpJ+tqaydu7CorLWxyMXBwrPCw7zGw7zEyryvsLatsLSvv8S0ubGwubSsmaiwqamanaWhp8Ktm6yxm6qirrCppKe9tqa3u72vt8Oss7PCv7LGs7q3rLS2raqippaWlaSsop+fmqirsK+vvLKmoKmomZmYk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWdmqOfp7Ompo2YtJyjrpqem66QnpOXlJqAkaGWjo2foZOLpqywpaahnKCekpKak4WLko2cnn9hZVtnZUpJTEpSQkNASUc7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+jn5ugw6ikqrKho7SqlbOsp6KksqyuqbuyrLC1tMbAxMO1wMS9ycS1wMjBtKu1qK+4rL/EtLeurLa5pZmrsauqmJ+ml627tJuosJutn660saequbKnurO3srnAqreywry0xae+r623taqorKGXl5KmpaKjmJilr7iusrW2oJ+ppJmVlZOkoLejpKaWrrKyp6umoZ6bmpuWmKifoJiinq+yoqaNl66ZpauXmZ6kkZuNk5eahZWelIyPnJ6Ui6mpqqGnoJielYyOmZCBhZWJlJ94Y2hda2pNUE1OVD1DQU5DOjpJQDc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzuko5yhpr+mqK+woam1q525sKujqrS2sbC5t6+2uLjFvsPHvbzEwcbAuMDGwLqptqSsu6zAwre3qayxuqKVrbCtspalp5Cquamgp7CdqqCwtLKqqba2rbuss7O6t6y5sMK6vb6mw6uwt6+pq6unnpiZq6KioJGYobGvs6uxupucqaCZlpKXpqG3qaWjorCxtKuyqKufm6Cgm56lnaKXnaOzsJqfkJOlmqCompSinpWYiZSYk5aWnJOIkJuZlI6pqKafopuXm5OHjpmLfYyWhY+bamhsYWxuV1BRWlRBQ0VUQDs7SUE3OlhQZF5QVldEWV5dTUxSTl5LSj5aY15OSFBOW1VZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coam9oaqvq6OxuKmltbOsoK21va6zuLy6vba2wMO/yMS5xMHAwLjEvcC3r7Wnq7exu76/tKmusbael6utqK2Wp6iOp7ufpK2znquisbCzrKm2tLW9ra+xtaywtbHAusW3q7yvsbisraqjsaafpaqgpJeQmaCzqrOqq7OanaebmpWOoKaktK6noq2trrGns62yqqScn6iknpWhmZuotamXmZKSn5meoJ6Qq56XmIWVl4udmZuTio2Wl5qXpqSioJ2WlZeTgI+UhXuOkoOMlmVscmdwcV9GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7R0RGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2FVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoaSstqStqaWvrraqr7W6p6awt8W3sbe/wMG1tLrFvszFucK/ur+5w7fAuLG0q6m6trq5vrSqrbG1mJinrKqrm6yrjqu9nquusaOroLGts66utrK5t6qtrrGota+zu73Ksqq2tbG0r66nobOgm6itoKWVlpuasqOtoKavl6GkmpqSjaKlp7KpoqeyrKq2pa6xta+kmZ2tp5qYn5mZrLijl5OQj5icoZiXlKufnJOBk5iNnZyalY+JlJOemqShoaCYlpGTlXqLj4V7jIqDi5JrbnhtdXtgRWFqWUlIWVo9e0pGRDZBYlRpW01cYEpbXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lUS0SZl6CxqLGqraakr661qbe0uaSrtLfJurS6u7++tLS3w8DMyLvDvLa9v7+3vruwvK2nuri3tsK2q62xt5SXpq6rp6OxqpSvu6SssrKnqKOys7CxsbWxuLOprquxp7ivtbTDxbaptbassK2pp6O2n6CnsaCklJyalbGep5ygqo6po56blpilpaW3p6KytKynsqetsLWspZmgrKibnJ2blKq4nJSOjouZnKKXkJiloZ6Vg5GVkJ2cmJaUh5eQl5qmm6OgkpaQkJV2hJCHe4WBhI2LbXF3dXt+XEtlbFxLTmNcPmJ7R0k4R2dXZltMXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0lXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLj1FTFE8M3JrSkNDkZmlrqWtrqunpbGys6q3sbegq7W5yLiuwbzDt7OxtcLCzsW/wb20vb+/ur67scOnqbiwtra/vK+rs7Kcn6exraalsKWesrWsq7KwrKmotLmstLK1rLStqqyoq6m4rbGwx7+4pbmwqa2tpaitsKakpK+kqZyenJuvmaOjoqORrJ6koJ+iqqWmuaWstbWlqquorK+2rqOdo6mqm6CampKktJqPiY6HkaKglY2UnaCUkoWOkpKdm5iVk4aXk5WZppqen4ySkY6Qd36NhXx8fYeKiXF0cn59fVxTZG9eTllmXEZElltHO05tWGJbTWBiTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJV1NcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis6ST8zQklTLD6PazxHSI+cqquiqbGkqaWztLG0tbKyoautvcu6rsC7x7G0rbTCwtHFxb7Asr3Awry/t7zEp6y3rLO4vMCwq7GtoKOnraqopLCjqrGqr6ywrq+urLO7p7awsqmyqaulpaOtuqyqscK5tay6qKmoraqosaWqpKOuqqiin5yjrJWlnpiemaydoaepoqylo62suLGyoKmioKuvsKyen6eoqZmkmJmPoKeYhoSPioueoI+LjJWbjo2Fh5CVoJ2WmJWGlpOTl6SbnJyLkpCNiX5+h4V8d3+HhYZ0c3GIdWtfWWBuY1FzcVxLO4R8Rj5XdFhgWk5jW05VVlVXUFxiXlNPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlFo+TEWVmK2ooaqznKqqsLatuLWuq6Wqqr3Iu7G9t8KvsKyzxMPOzsO+v7TAwsO6wLPIxKyut62yuMC+s62uq6SnqrCpp6ixpbSuq7CurbGws62zu6S4s6ysrqeroKKesLeqqq26tqW2taOqp6ysqq2hqaemsrKkpqahoayWqqGVmqCmnqSiq6Ssop+nsbetraOlopuqq66pnaKlpKSYoJmWj5idk4KDkImFnaCMio6LmI2PioOMl6ObkpCbjJOSkZSimZuZio6LinyGgIGDenSAhIJ+dHeMpIh4al5gbmdXZYdjTj9nk0xFYnlXYlhSZVRNVlVVVE9cXWFVS01pV1VXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIY+SEZEl5KwpaOqsZirqq21q7axq6Wsqqm8wMC4uLO7taWyr8TJy9G/wbu5v7/BucG6wcSusbWxs7rAvrOxrq2rq6i2qqaur6u5sKixsa+yrLaqtrWntLasrKSpq5yjnrSyqKiktLSgtq2gqairqaunoKusqbm2qaqqqqKpoKyckqmhnaCkoqajqZ2cprWuqKapoqOYpaanqpyipKOfmZifkY6PmY5/h42HhZ6eh4SKio2Mj4yEhpSimo6MmpGSkY+Sn5aYlouKg390hoF/f3h1g397eH+BiJ2Pb3FnZ3F4XGBziGpPXplWSG14VWRWUWJQTVVUVVFPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0pqNk9EO5WOsKClq66arKWtrrO0r6ulr6mour68wLCuuK2htq/Jx8jRwL69urzCvbrDwb+/rrKysbW8vMKxsbOrs6iktamlrbOzubCjrraxr7K6q7muqq62rKqeqayfoqC2raihn6+zobSqnqinqqOroaKsrai9r6yuraGnqJ+rmZCvoZiioainn6iamaqxqaOfraKhk6Kjo6eYmqmlmJeZnY+Kh5WIfY2GhYSkl4WCgouGjo2QhISToJaIkZ2Qk5CNkZyUl4+JhYV4dIF/fXV4eYB7dHN6aYGGo3VpXmVrgXVniIx9U1hwXkp4c1NkU1FeTU1SWWZOTFZZZVlGU2lSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGg6NDhfPWFkP0YxQ1BbWytITjlVQTSQj7GfpKaspKekrKa0srGqpLCnqri+wbuvp7mqpq6wycfI0cO8v764vr+8ybzBuLCwtbG6u7jAsrO7rbitorSmp6yytrmzp6e7ta22vbC8pq2stautnKmvo5+lrKunnJ6qs6SzqJqqp6mkqZ6jqaepvqu0r66dqaSgrpybsqOVpJykpZ+kmpqoq6Wem6qhm5KboaWdmJepqJKYmpOQioKPhX6PgoCIno+Gf32Lh5COkIR/k5uThZOijJSSi5GakZWHiH5/cXp5fnxpeHx6dXBwfWiFeISIZGFoY3KFem1neV1eVkJXem1UYVBSWEtLTnF1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mY0JKN0dTYFUqPTtEWD8qj5SxmZ+gqaWkoaukt7Kypqmxp6y4wb21sKO5rKioscPJyc3Btr2/tbe/uci2w7W0s7Wxvbi6vratuba/raGzpqqrsLW4tauevLyossCzuqCvs7WqrJ+usKOcpaipo56cpbGmr6CfqqmooqqcpKigrbyorrCuoaujpK6enq2ml5+boaOcn5uaoqqjmpqkpJWXlJ+ilpuXpquLnpGQkYyCioGAj4B7mpWNiXx+i4aPjoyKhJKYkYeUo4mSkoeQmY+TgIh8eWt9dnl4Y3t6cXBxcnhogHRqg2dkaGFuc45tYmlwYHBBXHhsVV5PUVFKSk1UWVdNXV5tV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDBCaFkxM1M9ZV9ETDZLV2VPKjwzT1k9I5KZrJmfmKekop+no7ivrqOvsKmruMK6s62fuK+rqLS7yMvIv7fCvq+0vbfEt8Oxr7qys8C1u763qbm4vauktKeoqrCuubGqm7u9pLDAtbShrre1pqensbOgnqSmp6GlmZ6tp6ieoKmup6CnmKSooLC4n6Oxr6GsoayknKanqZqam5+jlZ2cmp2pppebn6iSmJOYnpOZlqGpkJqJjpCHfYd/go58fKGNjYh5g4yEiYyMhYiSmo6JlZ+JkZWCi5aMkXyEe3NvfXFzdGB5eGlvcXBvaX5xY3psaWVjYGaGf2BbcmpyTU1+aFhaTVBMSkhQUlBJTlxfblREWFtSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpoSCo+L1lYNSiXnaWYnZatoKChpKG3q7Gks7SqqLnEtbKuoLesrq2wtcbIwbe/wbmwtLy3v7u/r6u9sLS/sb3Duam7urenqLWop6uwrbOxp5q9t6StvLavn7G3sKilp7Cym6CkoKSkoZecr6ahn6Knr6KgopOkpKO3sKGmsaufrKOvmJyqpamel5qdpZObnJqdpquanJyllpWXlZ2OlJejqKGQiYqQhnqFfoSLeo+Xio2GeYKHhIiLjoWNk5iMjpaZio+WfoaXi495gHpwcndvb3RfeXdkbGxraWiDbWVyamtlaFxjc4BfWmt1aVpJfV1bWE9PSkhIUlVGMjlfXmxQRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0FmW0hURFVdaEUuOzJgVCwylqOhl5WcqZ2loaKgt6qvoLq5pqy9xLOwrqK1r6yur7TExL2zv7q3sLO5uLq4u66uwLO0uK+/wbisvbq1pqKzqqeps6uusqKbwbalqLW1qZ6yu6qnpqmwrJmip5ykppSYorKkmZ+kqKmcoqCTpaCkuaikp66nnqWhqJKfqaKhoJmbnaCSmpyWoKKrm5uZoZWSlZaajZSTo6ekj4iKj4Z5hHyFhX2djYqLhnmAhIeIiJGFlZOSjJCVlI2OlHuDl46Kd357bHRybGx0Ynh1aGhqZ2VvhGdoaGRmaWpgaGJpZlple2NgU3NUW1tTTElHSU9TQCEqaV5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc4Y04nMp6ko5KOpKacnp6do7Wtp6q6t6isw8C2sKyita2nr6+4wMC9scG3sa6yt7a4t7asqr2zr7Kxvb+3rru7saWftqulpbSpq66gn8KrqKWws6qstLqdqKqrsaWYnaqepqSRmaatopiepKmhnKKdl6Cdp7amr6quoaGenaGVoKafoqCZm5mckpmdlKWeraOYl56VlI6VmIyPmJqooJGIiYqIeYV3goKCnYeLgol8f4SIhoWQhJaVj46QkZGRjZJ7g5WNhnN+fWZ4b2trbGh1c2tjZ2RjdH9iZGVmZWlqY2lxWV5YXW1kYU5oV1pgVklHSEtNUlg/OWBsaUdCVVNcW0lJR0VBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFlKVmJmQTszQWZIJTWbpKCRjK2hmZiglqW0saKxvrehsca7ubCxo7arq66pub28u63Asq+urbavs7izqKu4sa6utLa7tq+4va2mnbWroKGxpauvn6TDoLKkrrGvt621na2vra6jmZynqqWelZuopZ+ZpaKnnJqgnJScna2wprmorqOimpqemZ6jmqSdl56Ym5SaoZKolaypm5SbnJKMlZmOlJSZqaeNjYqJj3uCdIKBipiFh3yJiYSEioyIkoWTnJKSj5CRlo6Qf4CNjYJvgX9meW5oa2pncXJrXGhkYnKAYGRnam1sZ2ppZmxcbG11cWFUYmhjZVlJRkxNT1hRUFVhZYFUQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUllQyc0k6Kbj46wnZqToZqpsrCfuMC2oLTCu725saW2r6mupbe5t7isu6+tqqu3qrS5rqWytbGuqbG2trCytbqnqJ+2qZ6eqqKqrZypwJitpK6wtrWsrJ6xrbCqopuco6yom5Wcp6Odmqmio5WaoJ2Rm6Orqqm7n6ekoJiamp6hj2uilpiccYKWnKSAdpGrqJ6VlZ+RiZeZgJeLoI95hpOMg21pfneDcWyGi4Z9hIuGb15jYGeEl4Zri5CUknV3i4R+g49/ZoeAaHVpZldcaXNuTlBqZGZxhGZeZGZubGleX1+JkISGaE9LRDhFVGdeSkdQUFVVS0dTYG90ZUVbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzY2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFQZD0rL42kmYeVsJuck6Cbqq2ro73Fr6m3wri9vK2ntrCmq6S4tLKzsLmtqqestKawtaOouLa1qKestrKutK2zoqmftKueoqScp6iarLyVpqWvs7itraSorquspaGenKCop5uYoaalm5unp52Sn6CZkZ6oqqO1sKOjo52WmJiXo4ihj5Kah6GHlJ6hf6V/p6uek5KbkoiEcniMjoSIoXaIjGmXiGZ9c3ihb4iHhH6Ne3+hoJ+Zf3uInnSIjnabimyHgYNtaGVjemxxYlSGbWNtaZhxWGpwboZXXmlba2pbiHBteXKGaIeEWl5GTj5GXk1FUlZXUVFSV1RnXkxZS1JST0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxVmE3LyiMppeEnKydmZmdn6uqqKq/w66xury3wL6qpLexqqyms7Wur7O2q6mlsa2ltbOcrbW2tKWnqLOxrbKnr5+qoLKon6SjmqKknK61laSlpra9pqynqaqsqKaioJmfpqOZmaajpJicpKmWk6KclZOjpaaht6SkoKSYlZOYlJyIrpCYlImpi5ejnIWxgKStnpSanpV5gtSof4eUwZvHeXixpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4FslrGrsHloa1ixrm9labySvG5oem1yj9h+U2pjtrJ/gXGUdZqhqpBXT1dhT1ZORlRbWFFQU4tcV1tQQFxFUU5ER0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjqaTgaapn5ecnaWtsqmxwr2ytcC1t77Cq6a0ra2pqK+0qq+2tKinprWmp7ivnbOxtaqlpKexrq2xpqqep6SxpKKhn5ecoJ+vrZWeop+0uqKpqKCtrqWinZuaoaifmJuooJ+YnqenkZynm5SdoaejoLCjn6CjlpaSmJKZhbBraoqNqn5nhJaHrWVxnp2VmqaVca6hpH53u3xroY92sV9qtFulgGackWBmgXpmf2p4aqllvnJnpox2sWp8sXh0kpNjbW2nbluEoEVpZ4eWRXWcYH5ne6Ongllfi6tpgZV4emqnN0qvW1dUbGNbS05XX1xXVjtOiE9XVi9JVFNJQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5KilYKsp6Weo6SqsbettL2+sLfEsri6wqepsKyvqamxr6SwurCkpa6zo6m4qZ6zsrCjpaCqra+rr6ann6OisJyjnJiVmJudraaXm6KetLOhqpuhra2gnpqXoKKpnJmepKCcmaGnpJCdo5uYoZ+sn6amoJugoZaVkZaRmoa1m7V4hamZtZl3h7Obt3+TlpeplH5rgaZ6gYWIkpSSd6tnarFbrHuPh5R0iHCPhoB/iJCXeIOCi5eMg6CPhbB2d59xa2psfItOpFhIY2OZfmNopmB5cnVTkoZeUKltY3F+h4BinS5Rom5bVGtnYExLXGRYXFpCPrB4V1hBI01oRUJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o5YVU1MByWn5SIs6amoa6pp7Osqru2wrC8wq24t8GqrK2ur6ausqmhr7yqoae1raOrtaWmsrOno6Kdp6qyqLCnpZ6gn6+Wn5mVlpeYn62impqkqLWvoamPqaipm56VmKClqJqfnaOfnKCipaOVm56Ymp2jq5ummZuboqCXk5GTk52D1ZOZuXCwwn7GhnzWlJu7fJqWpZCNm4ykeo2Ho4KlgnqseY+dVa97iX6farlauXeGg32mgpN8mHqqeY2dj3uxbo6EdJC7hW+UT6+nxYpRoHpjYKpic3KHbJeHX1O1tMiGgIl8Y6QzQp12XVFqaGRQQFhmWmRhSkhNbEtaU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFRODIlnKGTmLGoqKWzqqW0qKW8t8GwusCxtbW8s7ansbGjsbOmn662qJuouq6ir7Ggs7SwoKSenqepsKi0qaWcnZ6rl5mXl5eWl6GqnZqXqK2wqaOfjqyip5ael5yhpaGYoqGioZqioqebnqCelZmbpqCcp5Sbmp+hmZCSlZGdiLJuaLVxq4hwjqZytHNytnuamKSNj5uNon6QoKV+sHaDkdLRdVuufIZ/pG+bqqZrhoV9rX2XmY97sXOTnY54s2WWdIWebp5mlFLIi1rCXJ95Yl+tYHdzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPal9saVBVRkk5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyL6KdkaSvrKSqu62mtKWotru8sru/t7a0u7uzpbW0orKyo5+ssKSYprqupLGwnLS4qqCmnaGqpLGnrKqlmp2aqZ6WlZiZk5Oip6CXk6aqsaahlpKsn6WSlKGbpKaflZump6Gao5+tmqCenpCWnKKenKWUnJWaop+VmJaSm4Wse3eodqOPioepb62Kg6iDmZmiipKZi6J+kpiJroV/grNccrNSrn6DgqR/cdd9d4R+j52GmZp3r4aKkZyHd7RhmmWagoGVbJJasFhLmnWYeWZgrV53d4dnmIhqXa93lZ6PeGw1eciusl9BVG9eaGBFUGxfcG1WVU0vZWNpU1lRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6ODifnZSguLCYtMGtqLKnqrK6uLS4v7q4s7a9taW4tKC0rJ+gqKuflae2rKiwsauttKSbqaCgqKG1pqaqo5melaWhlJScmZOWo6Wbk5CnrK+moJWYqZ+ij5GimaimoJWapqmenaSerJ2gnaCNlJ+bnqCYmZyWl6KglJiRp52GqX19pXmhj4+DqnCtjIKnhpagoYqXl4ijgZCIlKp8gIudeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClGySXKtbWpN/kX9oZ6pkc3uBa5iHcV2sWomgjmtuZU9KQ6FcWkx0XmNmTVphX3N0X0pVNUqakllIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOj4xMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT44oZyZmb6smLTCrqutqaa0sLixtb+6urOxt7yqu7WgsaSepaennpOqsamvqrWsq6+hmKGgpqSjuaKjq6GXnJGioJWUn5qUmaCgkI2MqbCvpp2Xmqemn42SpJeoq6eUl6qon5+go62joJ2hjZWhmJ+gkp2XnJWeoZWXj6ubj65tcrR0qYx3iqZztHl0s4CSpKOSnIyJpIeOdrhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJql1ytYE2hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdmVG9uLlynT2JSa2VibVliXGBxfGNTWVA+Pm1vM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eODFCOKWam527opyywK6tq6unt6m4r7XAtbyxr7m4q8G3qqqgm6akoZ2Sq6qntaOyqK6qoJecqKCkq7mdo62clpmPpaOWjZ2hnJmdn5GTlau2r6eZlJusqZeMk6WZpayjkZersqSgnqirsJmhoo+Zopegm5abl6GTnamclJGrmYfUkpq7dLHEgMOGfdWWnLh4iJGXjJeJjKeHeaO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIpumohwbY2kdL1dd31bYXm8a1pWW2p6XmlgZGZibXhvWVtZQ0FAcj9DRis1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC45Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmmmZ6ivKKXscOwramqrLGnuK+2xLG7sq67sK7Bsqylop6joZybkaqkqrKktaetpJ+WmqqZpqy4nKKumZWhkKWgk42co56YnpqQlpKvubCrlZejqKeUkZalnKStnpGgqKufnKCppLOeoqSOp6KUoZqcl5WkmI+woJKVqp6FkJm1gJGRjbiVeIKTm7V3bmxuc255j4SOiXOewbu8mnuBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV6s6N0dpd1dLB1mJ5mhmmNtnRycHe2jF5/en2JZ4N5bXlii6xwdYV/WVunakVkWlRmYGNdYlFnZ3FtdUJNUExEO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PjcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVjgqT11dPSs7VlYnPTs8pp2gob+llrTDtKyqp6yrqbuusMavtbSvuKe1uK2po6KmnqCdmZSspK2qprWoqJ+blqCjnqykvqahqpiVnJGim5KPoaiik52XkpiUsrW2rZidpKSii5KSppulq5uWqKSlnJuiqaamo6igka2elqKel5eXnZ6PsKmUnKeijmp+aZyneIlzfpqOdXplh3u9vsC6bpKDcZSGX3JqWl6aiWFkh46Va2CAlWNtnHZilGt/mpWUZV5gY3GbimhyjH2GlWdqfnF0eX18Ylt3dIFoUFxug3x7i2pYbHmCcklKb4VwTXRNRVddZmFMW1hnY15PW211aXFST0RFTjtISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFS09IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SVJfSSdTYFY0KVBeTCgzPltPJz8yPqifqKHBo5q0urajrKWup6i1sqzIrLCzrLWjvrGypqCjqZ2jm5qZrKeupKS1qqWbmJWim6atqL6nqaaWlJuVoJqTmKWpp5GekI+YnLCyv6ybpp6noomTkaqaqKSam6ufo5mbo6etop+qoZmwm5SmoJeUnZ+dl7ClmaKomZyRnpyjpJmno5qcmpuakJaCaG58cXaRl5SRhIm0qY2GmJWOioyXl4eUlYqDkpORiY2RlJmTmJeaoKKbm5SgnY6CeqSFa2p8kHyAdImKgXGCeHl2doqAe4pqc4F0g3Vkd312a3B7bWBjXHBoTVlZZWpfV1lvem1tZlNPRlM5T1pOUk8oKztKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5TMTBUXjorPThdSyw8LUCyoLOhv6KksbK3oKmlsqelsLWqyautsaa1psCotKCepKWcpJWWoKumrKOjt6ygmZaWoJetqqXAnquklpKcl56Yk5Sin56ip5KRmainssOvmqudq56PlpapnqqcnKCsmKGbnaKlr6aipKeerZiWpp2ZmqGenpywoJ2ip5aYk5mUoKKWo5+XoI6WlIuKjY6XrY97lZuCkoGJqaiFgZiWioSOn4h7hJCGhZmQh4aJlY6bl42QmJ6jlpqTkZ2Nfo1morOuhYmEdnqPin12eXpvZ3mQgYCJa3WBeYhyaHR/enaDiIJrdGN5ZmBpZGNkZmpYa3twaWpcUkxQRF9VRkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTUxEL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76tq66ysqCqprKtoqyzsMWwqqyjs6+9pLScoKaioZ2Zl6ilqKakprO1npWUnpmZr6auvqCro5GRnpqZlJGVoZyXqZ2FnqmsorPItKCqpKuWlpiap52om5+kq5Sen56gqq6ppaKqoa2bnp+hmKWenJ+dr6SZn6iTmJedkqWamKmempdmg5J8ZX6Omo9jeI1saGt6kKOra2WamH5nhYplZWloeo2hjmtojJeRondraouYo5+Yc2xueoSNhnlYZV2FgV5rioqBdltoc3d3kYCHgm54gniAc215hHR3iIiPg3tqhVhea3RkXXOIaWp8cWxjXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUlbSS83Wk82KUVZL0RPMVlDOz8uPaWfury5r6uzsKulqK2usKaurrC9samopK2wsZ+tl5+jnqGamaaqm6yjpqips66elaOQoq+mtrmlrqOPjpqhmZOSmqCZmaWWe6Wsoqizw7ikoqevnp6VnqOeo5yjqaiRnqGeoKqvqquiqZ+om6Wep6CslqGbpbCkmJyrlqGem5OlmJ6rmZ5+voOIcrRyhZ6GrWh4ucS4cZKho3ummJlzqoJ8y8DAu3GLooeDn3yVmIiewL2Clp2ejZ3BwXuBepGMmsK/fWulsW+MgW/Ken+bd5GDjoB2eYF/eXF6f4dxeIWMk3ltdpJiZl94Y19lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmplKOvqbCvraayta+rpqamsaufq5iaoqCcm6qnopyroqWopKS0pJ2jk6aurLezp6+ikpGanaWSkaChl5yfnYemq6Srrb/AsKGpr6mXkp+dopmio6qjkqChnp2trqmspaOipqCkpZ2tqZGkm6mtqpydqpysopaXpZaho5icf86UeXqlgnmVlptfro9ejqeAoaF9p5abdKuDgK9eZI2peqeHhaB0l5KIs2OCq4ahjo2zaYSudHyWh7hhgq1Zo81uj3V723t/mXB+iJJ1f2V7h3Z2a32Ibn6FkZJ+bYGOYHFrcGZgX3hkW3BoamNmYFJUUlddSk9DNUFIRUQ4PjY7QD9BOz04QD4+P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKy0tSjAnO1w6TC0hUEBGNC4xrcLAwLW0sLeYnpGkqqittKumsqysrKSsprCqoKebmqaYnKKwn6GfqKejpqGesKybnpamrq2xq6isoJSSm5+lk4+fpZeeqKOerqSrsKi/xrOoqbGulpKdnKKXoKmqn5Sgnpydra+nqqmbp6ajoauSrbSWpqKrqp6jp6ahsKGSmqeaoZuUlJGXoHCFjJd1haiHcbF8nXGsfqGfgqWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIooyRi51+q3uIk4+ggHqtVpzEeo9vksF9gZVtdXCMbWZ2ZYZvYXducm+JipGQg22Qj2VvdHZvYGZtZF9vaWluZmNXU1xhWlJSQzhJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5dXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz5XSi09Jz4xKTNWQEYhHEc6QzEuK6/UxseytJ+do46jo6GsrravqbCnqaqorqurp6KjnZmilZ+mq5+ipZ+oqKKfnbCsl5uWqKevrainqZ6XlJqjopKUoa2bnaajrqyjrLWpuc2yraaurJaUnJ2imJ+urJ2Wn5mdn6mxqampm6upo6Krm6+xoqisrqaZpquqqrGjk5ejpZuUkoWkaqR1iXqpdHqycIKliZmMcIigmoekX2BSq4R/roKbdq6Bp4aGn3qYloV7ZoCjiaSZhoGjfal+gJSHrl58qFWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojYyYj4FtmpJvbnl4d25sZmVkcXBme2hjXVdfaVhYVExMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys2NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KesLWwr6mso6imqqurqaSmoJuln52lp6ajnKyaoquhpJ+vop2bk6qktrCuoKmbnZaUp6OQmqKon6CmnLCmo6ixrLbIsrWqrKqVkZydopmfpbOdmqCTnJ+nq6ujrpqsqKKhqqKzraKqs7Ghm6qor6+2o5OXpKeYm5F8qmyehId1q3l8sG+CpIuJn5aVn5WB0ri0uMmAgbJeX5Spg6SHh6B6mJWZeKrJdJmjlaepkJKbjH6biZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI+QnpN8cJeSfnB7dX16bVxmanJxZoFqXmJYY21cXllJTU1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTk9QTUZMSlZGKkwwLz4tNE9UUR0cOzxGMiwkqKTBxrmtqLKurKWinLK5rKqhppuopqqsqaegpqWYqqOfrqudpqCsmp+ppZ2mtZ6il5OnqrWyrJumnKCVkKWtkZmcp6OgqqeuoaOnqbC0wrKzqq2ok4mYnaSaoaOupJahlZicpaarmq+draimnqyjt6yhsrmvnZuvp7O0s6WVmKikmp+Ogp1OeJqBf596hKN8gqSEh6efnJ6ThLh8fHm5gn7MxcK2eJuhkIuffpqWl4p2npiKpJijqH6whZyEnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkaOXfH6SkYl1enOEfnBcbW53cmqBb1pkX2huYmRdS0xRVEFIR0ZJOjlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMjpQW1QcGzY/SCwtIIyHmamspKu5q6+gnKGss7Smn6CVpa6urqmmnaammqOnobKuoammsqCZqKSUorWio5WXoam0uaSbo56jk5ChspmenKemoaKvrZ2kqKK1scOxraqtqZGHkZymnKOknKSWnpiZmaWkqJquoa2lppivpbytore3rZ6etbK5srOnmZ6woqSeho/RtcO3eYeOhZGTj4CmeJSid4ygkoSlgotxq4aEtG5yapmjnJWJn3yYmYaHj3OvgqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5OmmH6MjJKLeH15jYFtaXdpeHNuf3RdZGRubWVoYEpaV1g8R0dAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWSc4yKrr+/u7u1npeopK22oaKZlaOpp66pq5mloZ+loKC1p6Kpp7CjlKujjqSto52Qmpqps7SknaadqZKUl66goJ6npJynnLWaoKqjtqvCsKmrqqGMhI6boaCmopWYmZyYmpimpKaYq6etoqWbrae+rJW+sK2fo7Czuqy0p5upsqWomHqokH18sHeKgaSliJxtsm+hh618oY+DqJaZgKyJhK6Fn5SpoKKWhZ+AmZWAe5J+q4CdmpaKqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrrl2la3GFmV1gW4ygbpWRppmDlI2Wi3p6gpZ+a21+Yn10bn96YGdlcW9nZ2hDWWBbPUpTMlU4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JNzA1Mi4qLEFUVlZWVVRVVVVVVFRVVFNUV1dXWFZVVVFIRklKIygovJKahKnGw7bBtJ+braCuuKWkjpuko6Cvr6qfo56drZieuaCiq6CvqpmtoZCqqaSWiZqQrrCspp+nm6yYmI+soqGdpqKapZytmJ+opraov6+lqaSejICOm5qgpp6SlJmak5qapaSjmairq6Okn6movqSXw6yqo6Kss7qsr6ehtLCpqpl2r36Qi5yFh326roqYZbCMZZWtfaGPg6eVmoGsioSwhaWZpKGikISgW2xqgbNgf617e4KAsWxnbpmXjIixW320W6SDa8iiZZ+Ae7xZdrVasn1Sr4B6rFiAoW2Yj6iaipeQlZZ7eI2cfWRzfWKDd3SAfGFqZnBtZmVlT1VjW0FUXj5JKD45PTQhIi0lHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBfYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjnK2mpbaooYuZoJ+ds7OpnqKfnbSYoLOoqquesK6dq5uVrqmijoibjq+sqKaip5muk5mPqJqhnqWfmqOjpZmeoqmyqLyvpKienY98i5uVoaCZj5Kam5GZl6ieoZioraelpaOlqbufoManpamiq7S2ra6noL2ura2WgamSo6+Om4CGpJeYkIGAuMO6g46ck4Wnl5yCrIqCr4imm5qlqpF+1b3CqmKjv718fqOCg9e6uLWFlJODnr2+hGqjgW+rhG6df3qysMeDaquwva14d6K+u3SAlo6mnI+akJWceYGQmnlifHpkjGZ5gntga2VramJQYltTalxAVGFCTik9OjQvHh8kHiUyIB0kKDA0OTY2Nzg7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM/PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbS0sb+5sr2zop2upqWzpp2MmKW/qrexqKG/pqaxm56xnLmonq2upaaVlK+sl4yDmpGvpqOsoaScqqGYi6OSpp6nnJqhqKKZnqCrram5raijm5eTe4eZkaabk4+RmJiOmJOpmZ+Yqaigqqaho6u7nqnFo6Cvo6uztauwqqG8qLCwmnR1qqS3hmWJn3BnrY+Kj21vd6SQmZ+Bda6ZlXCQjHGVp6ObmK6kcm1tbWWKd25tgplxgHlpcWlniZaVmHFoaYWGZ3CGZF6JY2pvWV1nfnemYGJxjpJvZmSAjZKOopiXmJCVnnyHjpR1ZYZ3aI1qeX55ZGxjZmxiS2RYSmtZOlBlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJSts6q6ubKzqqmirp6ksqmYkr2xw8i+tqqewKuso6Cmq5+6o6StrKymjpatqo+MhZWXrZ+lqqGfo6OgkYykkqeZqZmWo6qglpylpaevuqusmpuSknuEl42ll42RkZiTjZiVp5Sel6iimrCmnqKsup+wwqiks6assbKrrqyouaSvuJaKoailtp2JlqKYh6makJSdk6qzmZujrKCylqKgnqCinKCkoZWrpoySk4yHkpyclJCZk5iQjpWGgaSal5WNi5OSio+GhH5ni390gnZ0iIxxp218lZGUk4GBj4+Pj52UoJWXlqCCh5OMcGiPdnCKd3Z8empsZGRvY1VgWUBpWkdiYE9aK0Y9KyYhNzQwLh8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTU9QUVdUVlleX2FjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbivrqKwpK2foLWxkY6rxbzEu7iqoqWdm6adsKijtqedqbSmp5GYrKOLiImPnKeWq6ShmaeenpOVo5eom6mZlKahpJCap5mhtbqoqpiakI18gZSMoZSKlJGVkJCTl6WPnpmon5y2o52nrLenrsKuo7emr6+wraqqtLqir72Zkqajprajkp2mno2pn42Sn6Osr5qho7Gor5ekoJykqp6dnZyXq5ySmaGbk5CWqpmNmJiWkJaekYignZWUhZKMkIyUi4F+ZoyGdYZ2eYiDc5xqh5GUlJGKfYyWkpKYk6GSnJagg4eXhnlxlXJ5iX9xe39qbmRfcGlgW2BZbWJQYGNQWzpHR0Q9Mj09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZcXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlaSno7CzrK6jqaetoKi1qpCPnKWzu6+srKGimXqdorCkpbGplpu4pqKUmamcjoaKiZuikK6eo5ann6GSl5ibrourlo+omaiMmKiPnrm2pKWYm42JeYGTjJqTipSRk5CNkZaijJ2eqJ6fuKR/hK+1orCvdKS+o7KgeHqgq7O8lXaupJ+KgKp+ZFxidp+OpJ6El35uk7Oco6iuq6JlnqCTc3mZlnCAmKiXbH+ip4llnKWbkJeYlouRm5GFnZqQlYKSh46OkomFeGuQh3aGcXyGgYBhaYiLlZOLW3aVkWdokI5yeqSYmGR5mIaBd5dpg4qCbnl/a3BlX3Zva2toW2ZjYmJvU1s+Tk5OUkc9QFRCOTEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTFNUVVlcX2hmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJWmo6GwsayrqaWoraOnraSSlqu1r7Gmmqqmq5dzi5yvn6iqp5OWuKCgj5yknZF+iIiano2rmqOUp6KejpeRnoV1rpCIppqokZajiJu6tKegmZiLiXR2k42Vk4qUkJCUjI+ToI6an6aZnLKWgIyctZ20jJKPvaehfqeieqOvuIGOjqefhIuFj7Gpr4yJlqOaeYGLrIacnaKnqqiHlYaYd6WbeoebgZemgoF7nLF6ioWfl5mUmJaBkJaWhJmaY3mHkISOj5KLg25xkIh5gXGAgYZ/hnSHhZaSeJZok3SgmnR8mYOfnIaYfpGJgYKYao2MhGt4e3FwZ2R3bmlsa1tlamllclteSVRMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj5ARElASUVKS0dSWFpZW2FhaGZaUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZSuxr2woJWlqLWej4Ocq5ymoZ+NkL6emY2fmqCQfYWOmZeIq52ilZ+gkY2TiYaAkaiOh6Kco5OWnYafubKnnZqSjoVwdY+Ik5CKlI+Pm4uPkZ+Slp+klp6siJ+0ibSarovKiKuuibeFjbCDsa+EqY2nmI2dfKiPcnt3m46mlmiVpHm0i5+epqiSmcKBf6uImKFxnoCapH2XhZWxgaF8oJOfj5iXgI6Tm4mYkot8hZOGjZWTiYNtc5GGgHtyhoGFfYV0hYKXgY/FZoCph4+iap6DoJiBmX+Ki4OImG+MkoRnd3R7dmdodXBnZ2xeY25sZmxYaEdcUUwyRTQ2TWBjNiY0PERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWV1jZmhnYmJiYmRjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5saqrppqUoKOkqqKVo6m2o69/oKecpZ6diZO8mZONoJGdkHmElpaRh6uZm5qZoYWPjHebnI+gkYiepJuVmJeGoritpZmbjIx/Ym2PipKPjZCMjJeLkJGfj5OfoZmhqH6hp4etnqCWro+fnZ2RhoGgjauvh6SNqpqMmn6jdoCYk2uBq3VNq3iHjZ2Rm6ingaqrfYOhe3qnaZ5/kmtnl4aXtoiefW1gY1iDl3+Me2Rni3OZfXmWbF18l25fU3GEXGBseYNgWWWCfYSBmHGnqmuDo25ypXCfg55oZJ9sWmyIemVZX4J+YVdQb3ZlbnRyampvXmpvbGtoV2lPXVdFOUE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9idmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKhtryrrqKZl6Chpaysn5yttaOokqCfn6abmY6YtJmQi56MlYt1gZSRjYqmlpWXnp5/koWGrKSHnJGKmKiXmZqRh6WwpqKVmoiJf2huiIeKjo6Ji42Si5CSooyTnqCcoqV/k4GPo6GUoHeclpCng6GngIaqroWleYt9hJp9onBzk4eWe56MeW2Hm4yZkJuomo+HnXyConN2pmaefnekX5h6fJJzom6Yt7S6dJKHgYC2qGSBxrh7cJW3jHGAm6Rjc6yrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN/pF6dmbOWb3uXnrN0cluesoJpYm90dXFob1hrbHJyZVxpXmJLRD1ENVFBWXEyPFJGX0pSPTwzOTU6OjZEOztASVA/VE1OUUBEX15bWlhgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mayck6CNpLi1rq2gm6Kco6OkrJuasa2sk5egmKCkmZqTnqubi4iSeIuFcICWjYqPoJCTlJ2XfZCJjqihh5iPipGik5uajIuoqKSej5aGg31qeoZ/fY+MgouQkImPlKCClp2gnaCfi4l3nJiijKByoouIqYicp5GXqKt/rox9eqCZeqOTeIBzl4iMnH2Wn4abjZmbpoajZKF8iZaQm41snmiajW6amXp/iqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z1iYp/nmiadYeTkpiOf55umZBrpplcqH53u2p9qVqOhF2zZ1xucXl3a2lbcWl4eWNfZVdiQVBFTjdWQlJtNEpaWl9OWkNAMTUxOzs3SD86Q0dUP1lSWV0+RGJeVmBRYWR9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtpuoiWOUm6y6srCsnaacnKefna2anbCoq52Xopmhn5iWlqCjmYaJjWmIgHF7l4iLlpaEkpWYj3qKhJajnYmUj4WLnZGcm4mPqKOgmYuQiX9/aYGGeX+Wi3qIjY6Hj5aaf5Oin6Cik5hyaJ+KoI+McJKMgqmImZ+jqaCofbCtpKK4l3ajs6Kjf4iUeJ16q5p+oo6dm5eIl3KhfIWNr7V9a5qRoXh+mLSjo6uohJh7mnycmX5zqlpdb3uXi3ieYk1/e3uFY3qXQk2fWaJqcnyObYGJhJl1m3mHibGzf3+akqZ0f51tcXyUb5lyaaNdlXZIZWNgc3B9fm5lYGxodnxkY2BRXlZdVFZAWUVRZ0RSV1tiWF5JRD1COEBCOklFOExEV0FWUVtWREZiXFpgS2BtfnJFQzxVX2JaZWpWZ2hsbmJmZl5hYVxdXmFoYl9lZHZsXmVnZmtkZmxoaGtpk52Bsa6ZhFNfoKezubOzqZqii5upnJuokqGrpKGoj56dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGSlohygImSoJxykZCAiJiUn5qEjqicmpSKiol7g2uEhXGBoIt3hY2Ih5KZlXySpKGfo4iuhn21hI+enXumlnqpgpadkIuhnn6naHdtfplzoHNxfJ2FmG+Tgq59o4OmnpqBo3BeqWd1o2NvpWGc05B8epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKovH93g21/v6aqtF6cb35xl2+Bc6JyXaNndKZhaKZtm9OYe4Obbnd5l2ubenaXcmyppWdfZXlwf4RrZ2ZkbXZ4aF9hUltlUVFiSVdJVF9XU1tlalxkUEZDS0xKS0JKRThQP1BNV1NYT1JSYGZlaVJkeHl3SUZFY11kWWhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJibf7CsVFxLfqmvsrWws6OcmIWYp6Cgo42kqKCYqYmZl5iTmZOSoJeNiIV7cH2EaH2PgpOagXeRjY6JcH+GkJOSbJeTfIiQkaOVg46qmpSSioWJeYN1iIBugp+Gd3+ShoiZopd5k6Kkmp+Js6Gitot6rKekrqVwqYCakIWBnJJ9pICimYaYcp6EoqyuiZeLgIykjZaDrqKUdrW2tcmhc5SKgJ9hnpepbXmVh5+adaGHd6B9kJaKgW9MZqKScJqIc6R7eXRhg4JsfqBscmRgnHJ/dJdpe2mztbTGpnOYfnudapubq3WCmm10d5dpmnl0mHFQRXyzXmp1aniHZmpnYnR0cW5WXlRZaFBSaElVTFhSVlxna25WZ1dNSkFKTUpISk5BUUpQZWNpbWV0cnN+eXtudYl7e1RQT21daFtraVJqaGlsZ2xnY2VfXF1cXmliZGhre19dZGdjamZvbWVpbWWinImvp4VmP5Shs6uvr7WiopCAl6iioqSMpaednKWCmZeWjZeQkJuSjYiDeWp5hmWDjH6XoHl1j4iMgWmEhZKDjIWdjXqMipSlkoKXqZeMkYuAiXl/fIt5cJChhnmAlYeJlqCWf5SlqJyWloRnbnicbKJkfHGld5yYcGengZeMe6V6oJaDl3KfdoCJlJaPuW6QiqJifZmilYhucmmranWgbG6mYJtpi5BoloealXWigH2aX4uFjHVviGJooWWef2mbdW9jZoiCbnKiWl9bZKFuXomMb3t/c3JkpW54omRnp2iYc4uYbqFvU4iPb6BeZKdUi11TmG1tcmpxgW1waGt4c2twUlhXV2ZZU21JWE9cSFhpaHNqWWtWUVJFVlxMWFJhVWhqXnd1enxwfHxyg3t/cnaNgIR2XlFzYWdicGdQamhoa2xuZ2RnX11eXWBrYmppdnVdXGNoY2pqc2xma21jnaWYpnpldG2Lp66lqrCxpp+LgJaqnJ6ljKKhmqKigJWYk42aj4uXkI2Ke4ZxgIhoi4t8l5pzdIp9kHtlg4eVioqVmYJ8iIWWpo+BoquQhZCKgYp9f3+Oc2mPpYR8hZONiJigjoiSqqeeiaZ4lpx+pYmWjLKYnpCDr5efpXiWiHqpdKWPhJpupaKMkoSMg7xufKWvgoaFhpSXnKB8pXpxqJSglmeefm+sY5aKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWuKhm5tn56SlWF/q4uqdoB/jaefd599haSVnaBpmod2rGeerYy2c3e+jKSTWYOmjathdXFzb3t0cWJqfm5obFNWW1VhYVxrTVxSXUldbW12YFtxWVtgWmdzZW5vcmNxdGB3e355cnmDc4R/gHt7jIGCgHZieGRjbnNkUmxnaG9scmlmaWFfXlxia2JsbHpvXFxiaWJsandtZ2xuYpWmqpyBgJ6klqmqnqinrqOZiYKXqpmepImapZ2pnYSLmo+FnJGFko2LjXSFeoiDb42EfZaTdHSGcpKCbX+MkoeGlI99e4GEl6SNf6WljYCNiYSUdYKHkm9si6mAg4uUjomcn4mNk6ukoJCAdZWXiH6BeZSuo3+Bm3GPhniQjIWAe3KnjHF9fXqXlpuEjnh7fn2IlJWTinaQmJ6gg3p9iWyMhVt5eXJ5cWhufpKJcX90gY+Uk3GFg4FljX9fgYCMd3VzlHVveW9uh22Ehl93aXiOZoGCho6qnH50fZdqiYhvgHZ8hXZtbGeMc3h7l3eEW2pYeI9obXdxcG93eG9dbIZuaWdWWmBXXGVrY1VhVV5RX3B3eWxqdmVqamp1fHFydHNhb3Vic3uBeHV5gnWAgH+AeIuFg317bX9sZHluXlduZ2h1a3hqaWpkXGBaY2plbHB1blpbYmtkbGx5bWhsb2GOlbqpp4uhopqmpJmknauioIODl6uRnaCJmqaaqJiCgZuLfpaUh46JiI1ygnyPfX6PhHqXjnRyg3CVhXt9kouGhpCFeH6AhpiijHunoYuFj4+ElYKGjpd3coWqho6SnJCInp6IjJuooKCrg4mOlZp+fomWraiPkqeQeHCekYN7k29+qYVwfZVxam98gZ+Lf5KOjGhtXYOLjJuano5zlYuIcXRrgnZzgFlyboeQgX1+i2ldaWN6hYOIgF9peHubfIOMg3aBhoJoeYuHa2Fxc4N3YHOMgomQp5WGZo2Pg252i4NwhY15b2VmY3mCepVaXGlmbnZbenl3dG1zcoJmXG2Ka2xiWVleWllscVtfYFleXWZ0fXt0b3Nja2tpe3xxe3h0ZG10aGx8fnV5fHt6en9/fm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtoa2pxcm1XW2VubGdzem9oam1gjIyrsaKQo6Gan56Ynpmpo6F9g5erjJ+Uh5uikKWVf3uXhHySmYiJhoaKcn2Ai3aFi4GElopxb4BymIaEfpKEg4aKgXqAg4qano+CpqCHeI2XiJWLi5yXhYN6rYKRmJmUip6dh4ihq6CioqOMiJObnKOZlqqhp6agkpuIl498eY+OhKh+f5KRkpOcsKWalJ2QjbKTmISmjIyUmp+JkJuCiZGKa3yOdndlgoaQinyJnYSHi4+HiICEg5B3fHp1mqKJh4uei4WUf36MgYF2cXSGhYB4iIeKkaaRhIaOiIONkIx8h4qIj4F2a4GDe3mZaXJoYHOKcH16dnVvd3SBXV5vh2huX19aXF1TaHFVY1tbYWxodXt8cm5wZGtqaH97bXh/cWlvcGxmgXtygYB4gH2AhHptg4yGfHp4fH56g3hOZHZrc21wemRrZWJiYFt0ZnBmcnFsVV1sdG1oeXpxZ2lrZY2InbqflqKhmJWZmJSYpKCde4CZqo2ejYWfnIqelnx5lIJ7jpmJhoOEhm14gYBygId+iJOEbWt+epeGhIOQfoCGhIZ9h4OMmpySh6qegnGKj4WSkYuckX2Ne6qEjZKXlY6cloaGm6egopqdhoOSmpmZkJqmoKadnZCXgZGKd32IjoWle3yPkJGGmKqhnZOcj42rjZGAnoyIkpmego6XfoaNgm94hXF0YH+Dj4Z1i5eAg4+ChoR+hYOUbnl1dJOii42FmoSEjXSAin18cnN7iIR7eYyOhJOnj4aEj4KDiomJdoWHiYt7bmt9f3ttaGtsZ155fmd8e3ZzdXV7d1xgcH1udWBjW1xeUWZtU2VaXWFraXZ6fnFrbGRrameAgGxzgGxsdG94boR5boaAdoKAfYR2cYKNiH57e3x/e4KKYGl7anVoaYJkamNgaVtjdWhvYnVtbFRicXllcHp6c2VqbW2Lip+4mqGjn5KSlpeLmp+enXt4nqWQm4mGpJSLmJl5eo2FfImRg4yCgYJtfH94coCFfYqQfGtofYGXiIGIjnx+hoSHfI+Aj5qbkYinnH9wi4qLkoagoYqFjHyokoiPkpeTlpJ3jaOhoZ6Wmn+BkJqZk4ybo6GkmpeRm3+OhHmAhI+HoYB+jI2PfJekoKCSmZCPpo2PgZuRiZKXm36Skn6GjYF1dIJwdmB9gI2GcoqVfIiLcox/goWGjmh3cXiMmJKPf5d+iIpzgod8fHF5eoyFenuSjYOWppOLhpF8hYaHhHWCg4iHeWRye354eXBsamZefXJofHV1c3xygGpeYHR2cHhkY1leXlJraFRkWF5hZ2p2eIFxZmtjbGhlgIBqbX5obnFrfXeGeWuLgXKBgX2BdHaCjYZ+fHt/gX1/j2pyg25zaWGHaGxiX3FVdG9tbmB4aG1XanR2Y3V7e3Jiam96iY2fspKlpZyOkJiPhp2gmpx8dqSgjZZ/jKKKiJqWeHuGh36DiX6IgoB/cH97dHWChX6JkHhnY32Gl4qCio14fYCMg3mWgJWXlYyWoJp9b4uBkJOGpZuHjImDppaFkoqVl5KRdpGeoaGYlJh6f46Yl46Wm52knpmTlJx6j4WDeIWXjZ5+gYqOjHOXop6hkpiOj6KMi4OWmIOSlpl+mI18iI2BdnF9bXpkgHyKhXCGk3+QgmyHgoF/iYRldW98h5KXjX2TeIuJfICHfHxyf3iKh3mFkYqLmKKVgoSMd4iEgoF2e4GJhXReeHd8c313ZmtkYH5panZzdHR9cXxjY2FzbnVzbWFZYF5bbGRSYldfYGhrdXmGcGJqY21laHyDbGh0aGxvaH98gnhtkIZxgIKCf3R8g4yBf356goN+fJBtdoh0dG1limxqYWN1VoNpcW5geWdsYmp2cGZ5fHpxYHJshoaQna6XpqiejY2Xh4agk5eYfXepnIqYeZeci4uYkHl8gIt9fIN7gIKAeHN4enN9gIR/iIuAZF59i5WHfoSHdH1+in99mISWk5aMo6GXfnKHe5ORiqaPjI6KkqCRg5GPlJeRioGPmKCakpCSdICNkpSJnZ2ep5iYjZWXdI2OimyGmJCZeoeIkIlvl52ao5OVio2fjIaBkpx/kpKVhpmIfImJgXpxeWp1bHt+i35uhZKClHdvgoN9fop/ZHJqe4CWl4R/jXSQiYN5h352eIB9hoF9hI6FjJSkkHmFg3SJh31/c3WAh4NtYHp1eXB7b2FuYmR7YW5vdnJ3d3N0YnZgb2x1bm9dW15dXmpeT11XYmFobXN6iWtfaWVqY2h3iG1mbGhqbWiAfHp3bpCHc4CDhH10gYaJeoJ9eoGEfXyOcnqKeHhubIdraF9pcmOHaHFvZXdobmxhemhrfXt4cGF3bYuBmZqqoKSonYqKkYaKnoqVl312rZiMln2ek5GWk4h3fnuKfHuAdnd/gHB0c3pvhX2BgIp+fGBcfo+Rhn+DhHN6gIZ6j5GHkZGbkqSblIF9gHyNipKkiI2KjZeajYWRmJOVjomJjJOdk5CMjW6EkI+RiZ6ZoqGXlomXkm+JmYRnhpqPlHqJhZCKcJaalKGSkoiLmYyCf5CefJKPkouZjnuKhId0c3VrcW51fIt0boWQjpJxdIB7gYGIfGRxbHl9mZR9hIh0kIuBdIh5bn99gId9hY2KhY2VqI17iH1+i4V3fXBvgIWDY2h3c3RuemJeb2BqdF5wanp4eGxycGV5XW1sc21zWFpeX2FqWlBXWGRjZ3Fxf4dmXWloZ2JncY5vZGlnZWpogHp3dG6OhXOAgYJ7dYKIhXeFfHiEhXqAiXd/i3t6cnmDamtfcGh0f2txbm1xZ29sZXtiboB5dnFsd3eKf6OYoqihppuHjIqBj52Gk5x0gKmUkYyGoIyVk5B/dHt2hXh4f3Jze4Vrcm95bYl2gICGbnFbWX6RjYiAgIB2dYB/f6CGj4qRnJegk5d3iX6AjIicnYmPhpKXlYSIlJmPlouLjY6NnYqOkIRuiYuPkYqclqGbmJWFmIhrhaODZ4adipF/i4SLgXeTmJGekZCIiZWNf36Pl3yRjY+NmpJ8in+CbnZva21vcHuFaXODjpeKcHd/dIKJgnhmc292gZmOfImEepSReneIdHCIe4aMe4uHhImPnKOIfIR3gouAeHhuaoCCgV1ycnBvb3daXnBgb2peb2l8eXBtbWptdmBwb2tybVlYYWFiblhRU1llZmN1cISCYl1qbWRiZmuSbWBmZl9oa4F1cnJwi4B0f4KAeHaAi4B4hX93h4Z3g4R7hox/e3aKf2pxY3xihnxvcGx0amhvbHZ3X3F/eXt0dXSAgn+llZqtn6eWhY2Df5eVg4+fdYqfk5KFipqMlY2LenJ4dIJwcoVzcXWIbG9tdW2Id4N9f21uVVGBq5SHgniAdnKCeYKggZGBk5KXm5GaeJF6goySpJqTjoiVmJKEhpaZjJOLiY+PiJ6FkIp8c4uFiY+InJmfm5aUgJR/aYaciGiHoYiShJGDiXGDkZePmo2PjIuPjXd7kpB6jouMkZaMfIh8gGt2am1ra2x6fmF5fo6VgXZ6gHeDjXx5Z3RsdIeVi3+IhnuUkHF6hHB3jHqKjHuJfoOMkZ+dhXx9eIKLfXZwaWuBgnlfd25sa3FyVV1uYnFgX21ueXBncGZnc3VocGthd2VdVmZgYHJTUE5cZmVdeHCIfF9daHJiYmVmkmpfaGRbZ3B+cGtxc4p9dnyFgHR1f4x5e4aBeIiCc4aEfoyMhHt5lXdmcmqDYId+b29remBqbnR/dF90fXmGeHRzhXx4oI+ZsJylj4KKf4OaiICLnn+KmZOOhIiXjY6PhHZ0dnOAcG+Fc3Bxg29qaXZtgm59fG11c1JOgt/JktaTfHB0gnWDoIKSd5SQmJuPmHuTcoWQn6GTk5CKkpuUhn6WlYiNjYiRjYicgI6BeHqMfoiMipybnZuVk3mNd2iJkodsiaSFk4iXg4ZjjJGYjpSKloyNiotxe5SJeo2IipKRiXmFe35se2Vyb2preXlbgHmPjoB6fX5/ho56emhza3OLj4qChYV9lYxsfn9vgIx/jIh9hHqCkJaam4t8d3iDkHlzbWZwf4NsaXRuZ2hzbVNebmRwWV9rcXdma2piZnhzb3BjX3dgYFZrX152UE5MYGZjXXlxiXRcW2V2YGFlZY5jYWZhWGlzc25rcXaLfHR6hoF1dn6Lc3+Gf3qIfnKJh4GRioh8fph2ZXNufGWHfm5wa4BabG55eXNgdnp7jXZyd4p3eZ+Lm66boJCChXeIlX99iZyHhZ+RjoWMl4STjoeBdXdweXFuhG9tbn5yZGR4cHxten1qaGxjpJrB3K7voXNrdYN1hKGFkW6Vj5SflJuBkXCFi6OXiY6VipCdloOAlZCFiY+AkoqKl3+He3V/iXiGhI2bmpiZjpB2i3dvh4mLfYukhZKJnYWFXouUl4qOiY6LioSJbHyWgX2IhYmQj4Z2hX19a31kd3VqbXhzV4h6kYaFen5/gIWMfnllc2p/io6Kg4J/jJaFa4J1boiRgpGFf4J6gJGWlJmQdHR4iI11dHFndXmCYnRtb2FodWZSYHBna1VfbnR5YHJjX2h9cXJtWmJyYWJXbllcd01NTGNmYV52c4ptW1xkeV5gZGaEX2NjXlhqcmtua3J3i31zd4SBeHd7iXGDhH1+iHt0i4mIloaMfn6Yc2h1cXlti3pudHCBWHF6dnlxZHd5hoxpdoCJcn+ch5innKOShH1wjJR4eYudhIWhjY58lYx/moiEe3J3cHNqb4FraWx8dF5geHZ7cHV7Z2BlfOvatcnD3IhzbHOAdomaiI1pl4+OnJSSgYhwhYigjoSLlYqNmJR8jZOIg4mPe5GLhpCCf3Z4g4Ryh4KSm5aUmIaMdod/cYWCiYeZooOUjJ6DiWGDlY6GiYaJjYeAh2l9lH99g4SJjo2CcYZ+f3F3aHVyaXN3a1qMfZKBhXx/g4CEioJ2YnRsiIGPi4J+f5KRfW6CbHmGj4aThH2BfYCSk5GXiW5yeoyGdWxxa3J4gF90aW5canVgUmRxaGZTX3B2dGBvYF1ognFyaVdnaGNpWG1XW3VMSkxlZl5icnOFaFtcZXleXmRnemFkX1xZa25lb2p0d4p+c3OBfnp2eohzhYN8f4d2d4qGj5iBjYJ7k3Zsd3V5eZN0bnh6fVh5hXGAb2d4d5KCZHaGhXGKloWZoZuiioZzb5KLcneOnH2KmoiJe59/g5l/gXhxc25vZHJ+aGZsd3dbX3l7enFxf2lhZ2F/1baOkKZ4bnF3e3CSkIyHapiNiJuRi4Z7aIeLmYaBkpGGh5iNfI2NgYGKjXyQjH6KhXp1e4J6cYaAlZmOk5SCiXWEh3eEgIuTnZ+Glo+ffohhf5OHhIiEiY1/f4NnfZB/fn+Ci4+Qfm2CfIJ0a212dHN2dWtjjYGOf4V+fIR/hIh/cF9zcYV8j42CfH+SiXpxg2Z6g4qHjIN8hX6AlY+Rk4RucHmMf3Vtbmpren1iaGppWGt1WlJpcmliUGJyeGxhZV1aaoNtc2JbZ19kbF9uVFpvTkhPZmRcZ25xgGxaW2NyX1xjbHdkZV1cWmxsYm1pc3aGf3Fuf3x8dHiGeIWCfICHdXmJgZKWfImGdomBb3h5e4STcG17gXdeg390gW1penOUc2dyiH1ykpGDmp+boIaHdnaUf212k5d9h5CDio2ZfIuadn12cW9samF0fGdiaXV6Wl94fHptcX5lY2hoV52PXnFylrzDg3VxlIiQfnKWi4abkoyHcmqIj5aAe5SMgYSbjHyKhn18iYx/lIh1ioZ2dn2BcXWGgZ6UhZSPg4NygIh1hXyJmJ2Yh5SOnYCIZn2Tgn+Fg4mJcoF9Z36Le3h+f4eLjnxpgHyDdmVveHhzdnNsao2FioGKf3iBgISDf2tecnh6fo2KhXuCj4B+coBpeYOHi4aEeYR8gZiNkIx9bm17iX13dG5oZ3x2Y1xxYlduclNTbnNoYU1mdHhlYF1cWG6Ab3NZZWFeam1gcE9Za1FEU2dgWmtubXxuWltebGNaYm93ZGdcXWBsamNraXN2gYNwbX58f3R1g3uDgnyChXZ+iYGWkXiDinSBiHJ5eH6NkG9vfIFxaYF5en5tbHx2lWtqd4R0bJSNhZ6YoJmFiG59jHZqeJiOfoGKgpWXiXmOlm96c3BsamRgdHtoX2Vxelphcn15Z3F6YWVlj7Gyd0piWqTZ0JZxe5CKkHd9lIuEmZGMhW5rhZKSenmShoGEmIp8h394eImKhJaAcIyIcXR9eml5hYOlkISTjYN/b3+Dd4R5hZuZlIuTkJSFh3B7koJ9goOJg26BeGiAhHhyf3+DioZ7ZX1+hHVjcHJ/aHhwb3WYjYaCint2eICEeYFrXHF9coGIhYl9hol6iHKBbnGEh46EhXOEeYGZjY2EeG5vfoSAd3plaGp8cF9Zd1pYcGxOV3FzZ2BKbHZ0YF1bW1l0fXJvV2ddZmpxX25OV2hRP1lmXlpva2d5cVpaWWtlWWNxeV9oXF5lbWhla2hxd3+Hbmt/foB1b4J7gIF+g392gYWJl4pxgo1xe4Z8eXmEk4x1anp/bG9+dH99b3J7e5RvboF/eGaTioOhmZySgoZnh4NvaHqViH1/hIGYiYF8jYxpeHJrbGZfYW94bV9ib3hcZGyDemFxdl9lZdTqvooyOj6LjoBxeYWHjo12g5aMfpKNjH9tbIWMi3V9j3+FgpWJfIN4bnaHhIOXd2+IhWt1e3RmeYKDp4uCj4uEfW6AdXeDeYackIyQkZKMi4Z+e5KGd3+EjYNsf3JogH54bXx7gYqDd2F5hIFxZHFofm10cXSBm4uAf4V+cnV9gHOBcFttfnR4ioOLe4eAfIh4enFsiIOPhItygnqAl4uLf3Rua3eAgHV1XGlod3BYVntTWW9kTFpycmVbSXB3blxaWllddX50aFliW2dlbmNpTFdmUT1eZVxddWVfdHBaWVRvZFlkcXlaaF5gZ21naWxpcHd9jmxpgoR+eW6AfHyBf4J6dYKBjZOFcICLbnh+gHt7iJKJf2h7fmt0e3KGe3N3fX+MeXiEfXxrjI2Em52WjIGAbI5+a2h+jYx6fn+DlIF+fYqIa3VxZ2hjW2Jncm5gYWtzYWhwiXpic3ReY2SboI9uXDVZr7V0aYCIfJKGdoWWhXOPi4l2cG2FgoZ0eYl4iXySiHp/c2d2iX5+mG9xhn5odnltZXmIhKSHgIeNiX5ufnaAgXyMmYeCk5CYiYuEiXyPiHB7fYR7aH5saoB7eml6doGHgXJgd4F+cWRyZnWCbXV7hJSRgXyBf253eXx0f21Yb392dIyChneIdoKJenhzbomBj4GFc399f5OJiXpubmpugoJ1bl1nZnNxUVp6TVpvXE5bcnBkVUtzeGlXWVlaYXGAdGBdXWBmZGhpZk5ZaE1AYWRbYHVhXHRtWFdTdGFaZG9yV2peYmhrZ21saXB3fJJsaYSJfHxwfn57gX+CeneAf4qLg3F7h29xd4N/e4mNj4Nqfntud3l3ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshIiQeH17gZF/f36Kg3BycGNmXllnX29wYGBncGZqb4l0YXRvW2FkanZ7f76cpqPIuHGFg3OTfHiGk4JzkIyIcnJwhHuCc3WHdIh3k4h5eXFjd4d6gJNpcoR2Znd2Y2p8g4eegX9/jo99cn90hXmAkZCCeJaNlI+Igoh7iIlreHl+dWd6aGx/eXNpenaAgn1oYHeHfWprdGd7gGl2gIuQlH56fn5we3Z7dH5iVnd9cnOKhIJ8g3GGind4cHCDgo1/fXl+fXaOhoN2aXFpbYiCcnBdaGNzbkpkdUtdblVTWXNuYlFPc3hgUlhYXGFvgnNbYVxoZWVjamRRWnBJRGNhWmNwXl13aFVWVXdeW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHl9cnt+eYKBgXx2fYOIhoNwd4NybnaCg32Ji5N/cIB8eHl6gYx0g3h/gYGChHqAdW9+ioubnoh9hXp3hntndIWLkHp+f3uIhYR2j4Bnb25fZFxYZVltcmBgYHBsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhvjHV7ho6AepOJgHV0dX53f29xf22EdJSGeHRrYHqCeYiPZnGDb2d2blttfYGQlH+AeZGSfXl7bYd2gJCLhHSWipGOh4WFe3+FbHR2f21ndmVte3VtanZ3f398YGJ4hXlodHVifXtndIaOjJV7dH91cYB6fG1/WVZ0fm91hId/gHlsiIZ0eGt1f4OEfXt9eXtzi4F9c2d0ZW6LhG1zW2pfdWRIbm5MWmFXVlV4bWJQUnR2V1BVWF5hcYRvXGBjbWRkXm5iVFxyR0JmX11maF1aemJRVVx1W1tna2FWal9gbmZma3FocHV4jnRrjox1f3Z4fXeBg4F7c32DiIeDb3F/dHF1foWBiY2Ke3d/eIN8fIaHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN5Xn2FmIx5hoN0hYaEd4l7Ym5sW2JbW2FWanNjYFtnbm9mh3FhcWZXXGNrf3zKzoe5oWptbYpscYRxfIOJfnuRhXp5c3l1dXtqbHVjhHWRgndvZl59gnqLiWVygmtqcWNYbHuGm4iCgXOXlHd/fG2IcYGKi4dxl46QiIWLg3t5fnFxcH1maHFibXhxamtxd3x8eVxkeYB3aXV4ZoF2Z3SHi42UfHGGaW9+gHlufF1Ycn9tdICLfIJvb4l/cXZod3+Bf4F2fXJ7dYd8enJmc2FujIJsclhrX3dbSW5rTVVUXlRVe2thT1R1clBRVFZeYnSFaVxga2pmY1luYVhicEdBaFxgZl9dVXtdT1VkcFpbamhdV2hgX3Jma2hyZ3Byd4Z4bpWKdH96eH54g4d/dXJ/hoWNgnBwe3h3dXqGhYaMhXp8f3WLfn2GhISHf35+fYd/fHh2eXiRk6B/jH2LbXaAeWODhpaFc5GKb4WFgXqDdGNuallfW11dVGdzZWBZZHFyZoFzYmtlV1tgaX94vq57oLdtYnOGaHN7cXmChXt9jH93eHJ2b3t2ZWpuYId1joFzamJefnh5i4RmcX5oamtaVm93iqOBhH9xmZNxgXl0gm2AgpGHc5WIjIiEiYV9eHRybmh5YGptYG12amdqa3l3endbZ318eGVyfW2EdGV1hYyFlX9vi2ZreoN1bXRiXG98a3V8i3yBZnWHfW1xZ3V+eH5/cn1se3uBenhwZmxibol+bW1Wa2B3VUpqa09RTmhNWXxoYk5VdWpMUFRVXmZ1g2ZdYHBoZ2FXaV1ba2hKRWtaYWRXWVV5WU5WbWpZXWxlXFplY150Zm1kcWdyb3WBeHCZhXZ/fnd/fIWHfXVzgoiAlYJuc3h6enNzhYaIiIN4gX12j398hIqOhIKEe36Lg3t3fHd3mp2XeoqChml3fXxsg4STf3KPgnCFgn6Bf29mbGdXXVtcW1RkcGRfV2JydWl1cGVlYldcXGh/cG9ygHOJZGR4fml0dXNzgoR4gIR5dnN1bmt6cGFna2eGdI2DbmZdX31we4l+aW13ZmlkVVZyb42mfIR7dpaQdHxzfHpte3uQhXaYfIeGgoaDfHRwcmxndFxsaF5sdGRnZml6b3tyWWeAdnVncIB3gXVid4SKfJSAbotqbXqBcWZzZWBtemdzd4p8fmJ1g3Zpa3F0enB6eXN+Zn5/f3l3bmRmYm6GfG1rVmpicFNLaGpPS05wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWVgVmNXYnBdTEtrWGNiVVVVc1ZMWHVkWl9rYVxaY2Vfd2ZtYnBpc25yf3V0moF3f4B3f36FhXp8dYKEfpeFbnJ0fHp0cYSFj4GAeYt1dJF/fIGVjoCFhH1+jIZ7foB2e6OlinmIhoRrdXx6dYOCi3luhXN5hH2Bg3VuamhlVl1bWlpTYm5kW1hhc3tpaG1pYGJXX1tqgGlrb4Bna2FoeXhqc3R0boSBen99dXVuemhqeWpfZW5ogXaPhGdlWGJ3aX6He29pb2dmXVVYb2eOqHeBenyQjnl1b35vcnV5j4B3lXSFgn+Fh3VqcnZnaG5bbGRdbXNfZ2FqeGh7bVptgnJzaW+Afnl3YHeEhHePhHKIcW95gHJjcWlcb3dkcXSIfHhic4BwZ2p4c3JseHd1eGSDe394dnBkY2NufH1rbFVpYmZTS2tnT0dSa0VheGdhTVNxXEpNVFlla3d7ZV5tcWlkXVZgVW5uV0tTaFdmXlhOVWxUSlx5X1tfa11dW2NlYHpobGFvb3Vub3h1eph9d4CBeoB/h4Z6eXqDfoGThHF0dH95dnSFiJB9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSsn396iIiDa3KBeXWAgIFzboZufH9ziYBqb21kZFhfWllaVWJqZ1taXnWCaV5tbFxhVlxcbIFlcXR9aWlda3Z2Z3R3cm2Fe319eXVybHloaXhmXWRzaHp3koFjY1RlcGeChXd3ZmhqYFdWWWdjj6dufneAi456cHB8Znhveo18do5xhH1+f4ZuZHZzZGhoXGtiXW9vW2dfbXVkemhddIBvcmtxe311dWF0hYp6h4eAf3dydX91YXBtWXF0YnFyhXx1ZHJ/bGFsem9qaXt5dnJmhXZ7enVxZWFlbXN+aWxUaV5dVEtyYlBGVmFHYnZnYUtUb1dKTFdYZ2t2emRlbnFmY1pXXVl2ZVVKXGNXaFhZSVdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bm9udoOXeXKBgHx/iIuGfnV1hnmHjH1zdXWCeXp6goyOfX6EiWlzloF6ip19foV6gXp/fIaIc3GProx7e4ePfWVxh3lzfHx1cW6FbHt+bI96YnBvYmVdZVZZWVZjZmtgXVxzhWhYcG5aXldaXGx7YnB2dmxiW2xzc2d1dXBshHl+gHl3bm50ZWl0ZVtndWZ2dpF6X11SZmZrg4J0fWJjaVxUWF1iY4+laHh0goWQeG1ueWd3bXyFe3WIcoB4fHh/aGV2bWBmYF5qX11za1llXW9vYnplW3d7a25ub3d4c3RkcoOSfoeCiHp2b3J9c2J4ZFtvcGFxcYJ8c2ZxgGRebnZpZGd5e3Vub4J1dH1zcWJfZm5vfWRqU2hYWVRNd19RSllYSGJ1ZGFJVG1TSkxaV2lscXtibGxzY2FZWVthdltTTGNdWGlTV0hZYU5HaXVYXmFtW1tfYmJdhWhoYW54eWxvanaBkHhtgn6AgZKIhIF2dIl0jIZzcXd1gnd8fX6Mj4B+k35wd5WDfJmSeYCAeHl+f3SIg3NwmaJ7en+JlHhkdYh4c3h1a3Nufmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYllU3JuW1pYWGBsdmNpdWpqXlptc3Fsc3NzaoV8fn98dm5ubGRpcWNbanJkdHaOc1tXU2VhcoB/coJdYmNdU1pgW2ORnmVycYWEkXRsanptb3B7fHxxgHd/cnp5eWRldWhdYlpgZ1tedmhXYl1waGF3YFt7dmppcm53c3J0aHCBlIKGfoR2cmpwfW1md1dca21icXOBenNmb35bYG9xYl9qcX5sbHV+c3F4a3BhXGVsbHphZ1NnVVdSUHVbUU9ZUkljdGJgR1VqUElQWlVra2t8ZW1vcWFbWlhZbHBXU09mV1dpU1RGWlxPSHJ1WF9jbWNYYGBhXYtqY2RteXhrb2l1eYZ7a4N9f4SZfIKEeX2Ibo+GcW93en10goJ8i4+Dgpd0d4KThYGfiXWAgIFzf4Jxh4J1b6KXdHuGi4Z7ZXeKbm57b2Z3cHpsc3ZyjGtedG5hZ2VrUl1bVWdhbGxaXHCMZE9vbl1WWFVnanRnYnRlZV1ZbnRucHV1eWuHfH98iHaPc2Rka25hXG5tY3N4h2taVFZjZHh9fXGFXGNfY1RaYFljlZVjbnCDhYpzamh7b2Zzd3N8bHp0dW95fnVeZnJjW15WYWRZYXRlVV9gbWRhcV1dfnBoaXNxc3B0dWpthJOBiHuFcXJmbn1wcm9UW2ZqZnF0gXdzYmx2VWJxaltfb2Z9Zm13fXNzc2ptYFpkamp3XmZUZFVWUFRtV1FWU1BIZHNfYUZYaU5IV1RWbWhkfGlreGtiV1xVW3RkU1JXaFFZZlRTSFpaUE14d1tfZWxpWWJgXl6PbmJma3l1bm9odnZ/f2yDf32Gl3t/iIGKfmuTiHJndIB7dYCDfYiOf4uTcnyKkYWHn4Z7f4aMc4GGc32Ddm6ljHOBjYt2d216jGBkfHBmeHJ5bG1xdoJnZHtsY2ZnaFNfXlVnX2xvW15ujWhOaW1gVFZTb2dzbGZ3ZGVdWHB0bHJ6d3JtiHt/dpx6eWthZWxtXmBvamVweH5nWlZYYGx4fHtwg19iXmdWWF9XZJuIYmtxgYd9d2treW1cd3Fseml2c25ve4ByWGpuX1ldVWJjWGRxYlNeYWhiYmxaYH5sZmtzdW5td3ZraIWLfoh6iG1xZXB9bXJtY1lhaGlvdIF0cl5pbFJlcWRUYm5iemNxd3t2a3Bta19YYWdodFxlVmFWU05YZVJPXE9PSGVwXWNGWWlNSV9LWG1kX3hobn5kYFReVF11XFRTYGZOXWFUU0pcWVBZdXZdX2ZtaFhjYVtejnBjZ2p3cXNuZ3Z0eoNygYJ5iI1+fIqIjnpukIp0bHOCdH9/iIWGkYSVj3l+jI+HkZuEgHyMhHKAgXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjI2MjI2MjY2NjY2Njo6Pj4+Ojo6NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCTqWvra2trrB/a25ubm5xSiwwMC8vLEmFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTNBqba0tLS0t3xlaGdnZ2s9Gh0dHBwYO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmHh4iIiIeOkJCQkJCQjIeHh4eGh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaPkJCQkJCRi4qKioqJioaDg4OCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkZKRiYeOipCSk5CKkY6OjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyLi4yMjIyNjY2NjY2NjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoeKiYmOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCPhouNiZCJi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+JiIyJj4eNj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aJjIiNho+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2Ni42Ljo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fH1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fn9/fn59fX9/f39+fn+AgIB/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJWVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f35+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9+fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyNjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt9fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhJR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2hoZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN2eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUVZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0pISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUVAPjo7Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkNGRkRHSUhDP0A/QEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgICAf4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs9Ozc4Ozw+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1c3F0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzo6QD84Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09Pz8+PT1qaT49PT08PDw8Ozw6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEtJSUlJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQj89P0JERD8+PT4+QEA8SnhzTD1DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZFSj88O1JvbWdleHNIODw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUdISEhKSUpLSkpOTElJX3BxcnJydHV2ent9fXx+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIF2TU5OTU5OTExOUE5MPkE8PD0/PkJDPz9BQUFCQE16Yz1XgYWGhoJ5ckY4ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISEpKSkxKRkZncG9xcXR2dXd7fH19fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXtOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkM/Vnd7Z32DgoN+gn52Rz09Pz49PkNEPzs8PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcG9xdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkVDRUBXdXR/gX2Cg3mBhXJEQEBDQEA/QEA+PTw9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQE50cn59eIKFgYOGXz1DQ0VAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTUpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWZ3gIGBhIWHhoiES0NFRENXdYaJin5YR0hKTExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIRkhJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHWHOBhIWFg4WIiI1lP0FWdIeJh4eGh4JXSUxNTE1NTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExKWIKFhoSBgoaIinxUbIWHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpjhoaGg4GDgoSEg4OFhYSEhYaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSmyHhoSBg4aAgYKDg4SFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT48PD1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaDgX+Ag4SEhIODhIaJiouLi4qJiouMiVQ6ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0VyhYCAgYKDg4SDg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo6Ojw4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT1BSV2txcnR0dXd5e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I5RoCEgIOEhYSEhISGiYqKiIeHiImKioyKiYmMej45ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8Ozk6PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz1UhYOCg4WGhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPz9BPT48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUJBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQl2Hg4OFhoWFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZFRkZEQEI/PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFARERFYYeDg4WFhoaGiImJiIeGhoaHiYqKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkNISEpfhYKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExNS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/f359fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4ODw7PD06P0A+QEBDRkpKUGeDg4WEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEdFSkhESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6PDg9Pjs9QT4/QEVJS01Wc4ODhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMi4uLi4teUVFQTU5NS0pHRkNHSkdMSkZLT0xLSkpNTUxPUE5ISUtMT1FQUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxvcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBSExNUVd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVVJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0ZWTkZPUVFVWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOzpRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFBRS0xLR0hJSEVGSUhJSElqcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f4CAgICAf39/gIB/f39+flRISklJR0dGRT8/QUFFQkNHRURFTFhSTVRWVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A+QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFlnUlVWWFVUVlRPT01KTEpJSUxNS09NU29zdnh5eHd5eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3lucFhaW1pSU1JWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWVhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH+AgICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWFNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3F5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUFFNS1JUUk1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSVFVaXG1ydnZ1c3N3e3p6e3t9e319fX59fX1+fX5/f3+AgIB/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlQSEZPRkRFRkhHSEJDSEdISkdDQkFEQE9QTVJkc3V2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojs+QEA/Pz5rUEthRUZISUVCP0dMTkdNUVVJQkU/Pjw9PD09Pz0/QUNCPz48PUI+Sk1GVW51dXVzdHZ4e3x6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqamZgW1FSWlxZXklKUFFOS0xRUlFUVlRXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFEQltcT3tOT09OS0xNT09RTEtMV01IR0BBPDk3NzU5OT07Ozs4OTg5PztBSD9cdHV1dnV2d3l8fHx9fHx9fX1+fH59fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZETFFPYVdSWFFQU1NSVVtPT1FWUE1KQ0Y+Ojk2NDg2OTc5OjM2Njc5NjxCPWZ0dXZ3d3l5e319fHx7fH19fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFJMWFlaVlhYVlhZXVdXWGhza11WYXNrYWFfXWRgX15ZVVBNT05MSUhKS0lIRkNQT1NaV1RUTVFTWVNcZVVPU1RSTktJSEM/QTk5ODg5Nzg4NDc1Nzg1ODlHbnN1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KTk9VU1RcVlJVU1JOTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3eXp7fH19fX58fX18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9KSE9QT09NUkpPUFBQTk5PVExNSVBPU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTUlMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVCRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFQUVBRTlFPUE9MSkxMT1BOTlBRUU5RT0pMTU1LR0VFREI7PT08OT1HNjY3N0RucXV3enx7fHx9fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MRUdDT1JDOEVOU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FNT05NSU1MSUtMTEtHRkZFRDxBQT47QEU7PDg5VHFydXl7e3t9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E/PD1BQEI9PkVIR0RGRklHS0pARkFBQEZIRUpPSFFSYVxRUFJOU09PT0xMT01LTUxNT05bV0tNUU9ISkhDSUtNTEpGRkZFP0JDPjxCRj9CP0FkcXV4e3p7e3x7enp3fHd5fX57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0FBR0lETU9hZVFNT05XS0xNS0xNTUxMS05OU2RNSkxSSUlJRUFIS01NTktHSUZCQUJAP0VGRUhES29wd3p5eXt7ent6d3R4dXh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxBQkJBRERHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUTEpJTVRGSUlKTEpLS0lJTE1PUFJQS0dDS0dDQkpKTE1PTklKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW9rbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0NGSEhHSktJSktER0I9Pj06Ojo7QUI/PUJDQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNUEdIS0ZIS0RISUtNSEpMSEhKTEtNXVJJSERNRkJFS0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLQ0ZFR0RFRUZFR0JDQD48PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGQ0I7QkNDPj9DQ0NFR0xOSEtOSERIRUlNTk1HSUxHRUZJSUxOS0pIRU5IQ0dNTE5NUE1OTk1MSUhKT1JRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUZFQkNCRUBEQj4/Pjo7Oz06PT9DQT9BQ0ZHSkdJSUxIR0dHRkVDQD1FRUI+QUNDQ0VHSElHTVBJRkZHS05PS0ZISUZFRERJSUhLSUdIUEtESk1MUE5QTk9PTkpKSU1SVVRST1dkYWFtZ3Byb3N5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPUJBPkE9Ojo9Pzo+P0BCP0BCRUdKRkpHSUhGRkdFQ0JBQUZGQ0JCQkRFREdHSEZMUUxJT0pKTEtJR0hFRkVEQ0lISEtKSEtSTUNPT05RUFBPTk9PTEtLUFVXVlVTWGBeXWlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmtrc01GRkVIQkJBREQ8QUFAQzw4OT0+Oj88P0I/QEBERkhFSEZGR0ZFRURDRUNESUZDRkVCRUdFRUZHRUpNS0hRTUpLSEhJRUZJSEVDSUlKS01LUFNORFFTUVFST1BNTlBNTE5TV1ZXWFZYXltdZGBoYmppZ2tfZWVnY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUhHR0hCQkJGRTxAQ0JEPDc6PT47PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkdKRUVJR0NHSEZIRkVDRkpKR01KTEtJSkxGSUhLSEVLS0xNTk9TVE9JU1VUUVRQUU1OUU5NUVdaVlpZVlpeWlhhYGBgXmhlY2BkZWhnamhoamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN1bm9zc3lOSUhHSURBQ0hFPEBFQ0U9ODo+Pj49PUFCPT8+QUJGQ0VCQ0dEQ0VFRkdHR0lGSEpIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMSk1LSU5MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZXF9fXmBjXVxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXdxdU1JS0hKRUJFR0U8QEdEREA5PD5AQD8/QkI8QD5BQUZDRURDSERGREdFSEhGSEdJS0pGSkhIS0hGRkxISEhKR0xMTExMSU1LTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW1xeYF9hYGJkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd292SktMSkxHQkVERTxARkREQjs/P0FBQUBEQUBCP0FDSEJFREZHRUlFRkRJSEZJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOT05PTE9QUlVYVk1OVFZVU1JRUExOVFNSV1teXl9dXWBgYWFhYGJkZWJjaWJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3BzdnR1dXd2dXV1ZXFza3BxanJ2b3dKTUxMTUdEQ0FEPD9FRUVDPUFBQ0JBQ0VBQ0RBQUVHQ0hHSEdFSkZDR0pHR0pGSUxISUpNSk1MR0tJSExLTlFLUlFMU01LTk5PUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZWFhY2luaGJpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTEtMR0RBQEQ+PkRFRkNAQ0FFRERGQ0JFR0NCSUZDSEpKSElLRkRLSkdISUlJS0dKSk9LTkxJTEhKTUtaZkpkXEtsUkhPTl9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENDQkVFRUZCRkZHQ0RKRUVKTExKTE1HR01KSEpKSEtKSUtKTkxNTUxMSUxNTFtzYmRwXmxsVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9ccHVncE1Kcnl2a2Jga2VlbXhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnR0Ym11a3BwbHJycXpLTElJR0VEQEFCPz1CRkdCRkNFREVFRENISEdERUtHR0xNTUpNTUZKTkhJS0pJTEpKSktNTU5OTU1LTk1NW3Jvb25wcGxrTlBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhwY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9P0BGR0JHRElFRURCRklISEVHS0pHTU1OS01OSExOSUxLSUpNSUtJSktPUE9OTUxOTUxcaGR1XWxxV2xOT1FtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR3SU1HSURFRENBQjxCQEJGREdGTEhFQ0NIS0hIRkpMTEZNS0xSUkxHTU1ITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2diYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQkdDSElNSUZDRkpMSUdGSk1MRk5KS1dSS0dLSkpOSUhKTElLSklISkxNTU1JS0tLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYG1oXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFydXR3c0hIRklERURGQUBBRURER0JISkxIRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpKS0tJSElHS0tLS0ZISkpMTExLSUtMTlRbXFRQVE1QT05PT1ZRT09RT09RSkpPUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0lQS0xPS0xXTUlFRUhJSkhJS0lMSkhGSEdKR0dJRUZMSElLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1BQ0RCRElFR0dGS0pLSEVFSkpKRkVISFBKTE1KTVNJSEVBSEZKSUtLSUxKSUZFSkhFRkdFRUpHQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjYFlfYltgXltUWFhaX15kYmJhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNGR0VHR0lKSklJREZLS0tFRkhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUFGSkRASktJT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmJiY2NlWlJZVlVcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJTERDS0tOTUxMSEpKSEpHP0dGTkpLS0xLS0tJR0hEREBEQUhJQT9JSkdPXWFaW2RdX1RRUlddXFxcX1pLV1xMUlxZSU1eUFBdX2FjY2NjYlxkY2JkY2ZYUVVUU1xYW2FfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGRkhHR0pGRkZJTEpORUNLSkxOSkxJS0pISUdCSEhRTUtLT0xLS0lIR0VEP0RCSEhBQUdGRFRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJgYGJiYGNiYmRkYlhPUVFSW1NcXl1dXV9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENRSkZISEhFRktKTVBFR0lKS05MTElMS0lJR0RIS1FPTUxQTE1LS0hJQ0VARENIR0JBRkVCVlVFXFReU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJcYGBfYmNiXWJiV19fVFBPUFFYUl1cW1xeX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNQRFZeSUdHSERGTUpQUEZKSUpLTkxLS0xLSkpHRUpNUVFOT1BNTkxOSEtBREBCQ0ZEQ0FERUFMSENMTFBPT0xGTUZHSUpIR0xMTU9RSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUFVUXFlZWl5eYWFlZmNoZGtscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXkxHR1hNSEhKSEdOTFFRSUxLS0tOTlVOT0tLTEdHS1BTU05QT05PTk9IS0VgRENfTERmY0RNW0heXHNtT01WbVlMQ1BgVWxXZ0pdWFZeRExRVUxNVFZRUlRYV1RYVVRcVFBmWmhoZFlUa1RXVlVbXFxgYGFiYmJgZmhmbmxocnp8fX6BhISEg4ODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USUtHYVRISk9KSU9NUlFLTUtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzWFBtSHFub2FWUHFxc1BCa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlaX1ZVV39qdHV1X2F2X1hiXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4SCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdJTEZSVkxLT0lLUlhXUU5PT0xRVE5PUVBLTE9HTVBSWlpUUVFPUFBQSkhaeF1UeGRoWVJUUXZndGxwYm5ma1FyT013bWpycHNycXJwb3CAXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zc3x9b355b39yYGBgYmJaYWBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQT01NSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dQVFBQUFFLR2Z4bGN4cW1aSkxVeXB1bXVibnZQZGVJZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGdvWHZ2anZ1cIBhc2h9aWx4fG9fX19jYlteY2RnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3Z6bnx9eXhybk5KU3ROREJFUFBJS0tKTFBPT09NUFpgWlhLVFdQYV5SVlFZU01QSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRoYVZuTHFwXkZoeVd2VExoeH14YHl7c25hXm1vZFJncnVubXlwd2x2c3RxbG1cc356a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tS0tbVkhHRUdSUEpMTUtMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZVV2xPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobW1yfGttaGt7dG1ta21PR0pLSEpISFJRTE5QTUxUU1JPU1NXUlZUUFdaVlZUVFRhYFFPTktUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRT1BVVFhYWFtbVVNTV1tXWFdaT1NVV1dYUV1YVl1VU09YUldXV1haYFtncl5bXFtdXV9jWl9jY2VmZGNjYlljY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKVFJNUVFQTFZWVFBUVVhVWVVSWl1WVVRXVVlYUE9MTldUUU5VU05QTUxRUEtKUVJLUU1LS09SVFJRUVNTSUhNTk9RUlFRUVRWUlhXXFdTU1FSVVVWU1pRTlNSWFVUWVZUWVVTUlVTVFVYWVdeWl9hXVxbWlxcYGNcXWJjZGdlZGRhWWBhY2FiaWhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkZGZoUEpLTE9PTE1UUU9UUVFNWFdVVFVXV1daVlRcYFZXVllVWFRRUEtPWFNQTlVQTlFOS1NQTU9VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RPVFVYVVRZVVdZVFJSV1VVV1xZW2BeVllfXV5dXF1hYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2FQS01MUFFMT1RQUFNRT1FaWVhXWFpaWFhWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFQUlhUUlFPTU9TVU5XUlRVVU9OTlFTVVVUVFJUWFZaXVxaVlZRUldYVltbV1FUVlZVVllUV1dUUlJYVlVaX1peYF9WXl1eYFxcYGBfX1piYmRoaGVkYlliYGJeX2ZkZGBiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUVdTU1NYTU9QUlRYVVVVU1VZWFteXVtbVlJPVVdWW1xXUVRXVVdYVlRYWlRTUVlXVlxeW19fYFVhXGBhXWBiX1xgXWNhY2dpZGZgWmNgYV9fZWVfYGNbWlxbXFlaWVlXXFlcW2BeX1teXmFgX2JcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSTFFUU1laV1VPUk5TWFZUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVlZcXFZSVFZWWFlTVFlcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1bYFxgVVxdaWpyfXNsZ1xVWVdRT1JbU1JRVFJUVVRLUlZVW1laU09TUlZWVVNPVlJTWlJUVVRYXFdYWFNYXFheXVlbXlVVTlZXV15bWFFVVVhYWFVXWVtUU1ZdWV1dYV5jY15ZYFtlYl9kZF5eY2NhXWVmaWRmXl5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWVteVl5ZXVBPT1JaUFpVVVdWU1RUXl5gXl5iXGBVXV5ia3l0bH1sWlVaVVFRU1xUVVRVVFZZV0xSWlZdW1xST1VTWFZWU1BYUlNXU1dWVltdWFtZVVpeWF9eWVxaUldSWVhZX1pZU1RWWllaVlhZXFZVWl1cXmBhX2VkXV5dXWVhYmZkXl9kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVpYVl1aXV5bWltcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFdXV1ZWV11YUFVcWV5dXVRTWFJYVlNSVFhSU1ZTWVhYXV5YXVtVXl9YX19YXFZSWVRZWlpgWFtUVlhbWlpYWVpaWFZdXl9eY2JhZWVdYlxgZmJkZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVpbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFlcWlZYVVdbWllcWVhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdbWlxfXlpfXFZfX1pdXlleVlNZV1laXWJZXVVWW1xbXFtbWVtZWV5fYGBkYmNlZWJkWmJmY2dmZV5hY2BjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1daWFdcW1xgXVZdXVNQVlpWVlpVWVVYV1hdX2JhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xTVllQVlZWVlZWVFZUWFxcX2BgXWBdV2BeW15cW15YVlhYW1tfX1teV1hdXF1eXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNhYGVjXWZpZGVpX2ZeY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFkYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBYV1hYWFdWV1ZdXV5gYWFfYl5ZYV1dXlldXllYVldbXGBfXV9ZWV5dXl5hXVtaWVxfYV9iZGRlZmdnYlpkZmdpZ2NfY15hZmVaaGljZmljZV5iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWFddXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FiXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNhUlxZT1hXWVtaWVhaWWBdYGJiYGFjX1xiXV9dW19eWllVWF1dX2BfX1taXl5gYmNcW1dbXWBiYmNlZGdmZWdkXGVmaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9dXF5cWF1cXl9hY2JhYV1iW2JkYV9jY2JdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGFUX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxeXl9aWFZbX11cYWFfXVtgYWJlYl9dU1xfYGNkZGZlZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3p6ent7e3t7e3p7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3p6ent6enp6e3p7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIjbG1tLS0s7O7vr6+vr7BoYqMjIyMjYl+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIuRu8C/wMC/v8nMzMzMzM+qjZCQkJCSi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEg4GCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5eXp6endvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2AgYGBgYCAgYKDg4ODg398fHx9fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV5dnZ2ent4e3h3dnh7d3p5en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3p6enp6eXp5eXl5enp6e3x7e3x8e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx6fHt5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHt5e3h8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d6e3l7d3x5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en17eXx4fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h5eXl5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4OBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnJxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbW1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgYOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4GGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f4B+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fn17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioaGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/gICAgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gIB/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4KCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn1/f35/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSkpCLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCBg4GChIWFhYaGh4aFhoaHh4eGhoaHh4aFhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WEgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSDg4ODgYOEhYSEhYWEg4KEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGGjYKCgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/f4CBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYKBgoKBgo+bhYB/gICAfoCCgYCBgoODgH9/f4CAgH+AgIGAgoOCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIKDgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoGAf3+FlpuIhIKEgoF/gIKBgoKBgoSCgYGBgYKDgoKCg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkZGRjo2Mh4WEg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4SEg4GAgoOKiIaAfX19e3+XnImDhYSEhIKBgIGCg4KChISDgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhISFhISEg4SDg4SRlJOSko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgICGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+AhpmQhn1+fn6Hfo2chYGCgIGCgoGAgoKCgoKCg4OCgoGCg4WDg4ODg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYSFhYSDg4ODhIOChpSUkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH5+f36Gnp2GgImAf4eBgIyCgYOBgICBgoSDgYGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCgoOCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIOaoYiFiYODgYB9gYSDhIODg4OCgICAgoKDg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhISDhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZCdhIKChId+fn19hIWFhIWEf319fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDhoyCgH+AhYB9fXuCh4aDgH9+fn5/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4KAf4SNhH99fYCGgX9/gIB/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoeGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgICBhYSDg4F/gIB/f3+AgICAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4F/gIOFg4GCgoKCgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgYGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODg4KDhISEgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYSDg4WDg4SDgoKCg4F+fX1+fn5+fn18fn19fYOHiYqKh4eFhoeHh4eIh4eJh4iGiIeGiYiDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4WCgYGBgYGDg4SDhJGSkY6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhYCChIODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4OEhYOCg4GCg4OEhYSHkpGPjZCMiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4GAgIGDg4ODg4KCf319f4CAgX99fn59fH19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn6AgoODgoODg4J9fX5+gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf3+AgYF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH99f359foCDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/fn9+fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7f39+f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp5eXl9gH+AgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf3+Af4GAfn9/gH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f3+Af4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoB+fn19fX5+gH19fX19fX19fXt6eXl5eXmAgoKChIOAgoOBf4GAgYGBg4KCg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f359fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f4CAgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCg4GBgYGEg4KDgoKCgoCBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf39/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCCg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GDhYWGhoSDhYWDhYSDg4SDhISEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4SFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHyAgYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgIGCgYKAgYGBgH+Lk4+Mi42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX19fXx8fYB/gIB+gH5+gZORjIyNjo6KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY6MjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgYGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIyPjYuKhoSFhISEg4ODgoKCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fICDfYx+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42Mi4iEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9e317f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYeGh4aBhJGOjIuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn56fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJi4mLiYWIkY2LiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx8fHx8f4B/f39/f4CAf35/fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgX9+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnt9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiY2Rjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCAgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4ODhIeJioiJjpCNi4iIhYSEgoGCgoKCgoKBgoKCgoGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Ign9+gpCEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f3x9fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/fn5+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKFhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1/f4CAfX5/hIB+fn99fn19ioV9fn59fn6Af319fHx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYKCgYGCgoKCgYGBg4ODgoWGhIOAgICAg4F/gIGDgX5+gH9+foB+fX5+gIB/gX5/gH9+f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fomGhoWFh4WEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dXSAgIKCgoKCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgYGAgICCgX5+gH+BgH+AgIB/fn19fX18fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX5/fn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f36Af359e3p7enx7eoKEf4OCgoKDgoSCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Bg4F/gIOCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf35/gYB+gYKCg4GBg4OCg4KEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhYSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfX9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgYOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgYSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF+fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9/gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN3dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398fn9/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgIB/foCBfn+AgoGAgYSChIWGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH99fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4F8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhIOCgoSCgYGCgYCCgYCBf35+fn6Afn1+fH+AgIB/gIF/e4B+gIB/gYCAf32Afn5+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/g35+gICBf4GDgoODhoSAgX58fXx8e3x4eHt4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59gICBgH+AgYB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af319foCCf36AgH9+gYSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6enp4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f39+fnx9f4CAgIB/f39+fn18fn9/f399fX9/fX5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn6AgX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9e3x9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GBf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f3+Af39/f4B/gICAgIB/gICBgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH19fn5+fXx6fHx7fX17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgICBgH5+f3+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59f4B/f39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CBgX+AgYB/gYCBgYOCgICAgICAfX6AfYCDgnt+fnt7fXt6fHt7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBgICAgH+BgICBgYGBgIGAgIB/f4B+f31+fX5+e318fXx8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX6Af4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYGCg4B/goGEg4OEgYGDgYKCgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCf3+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fH19fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYB/goGBgYKDgoKDgYODgoGAgYB/gIR9fX17f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgYGCgoCBgICAgoKBhIB+gYOCf36Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4J/f4GEhIGDf4KCgYOBgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhIWEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3x6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GCgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX16fHx9fXx6e35+foB/f4GBgICAgICBgYCAf319fHx9fHZydnh5dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICDhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHyAgX98fH16ent9gH5/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgYSFhYKCg4OEgoOCg4KDgX6AgIKCg4KDg4OEgoKCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgIKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhYB+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODhoKDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CCgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhISFg4eGhoSEhISFhIWEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgX99fn5+foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhIOFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgIJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgYR+g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9gH99gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3x/fXyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgX+Afn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WEhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSBgX+BgYB9f3+Bfn9+fX+BgH5+gYKAgIGEh4aDg4aEhYWGh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYqIhoSGhoWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX16fXt8fX1/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYaHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhoaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WDhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+f35+fn98fX1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e31+fXt8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFhoeFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaHhYWGhoWEg4SEg4SHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fXx8fH18fn17fIF/fXx9fH18fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoWHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhYWHhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4eHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4SDg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e318e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYiKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaEhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgoKCgIOFgoN+gYGBf4OBf35+f31+fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2AfHt7e3t8e4mHhIaEhoSGhoWEhYWFhISDhIKAg4GFgoGCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIiHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4OCgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYWGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeGh4iJhoWIh4iHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoeGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnt7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfoCCgn1+f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYSFhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSFhoSHhoWFhYaDhIWEhYaFhoSDhISFg4WFgYCDg39+f4B/f4CDf3yAfX1/gn6AgX5+gX5+fn19f3t/fHt6eXp6eXp6fHl6enp7e3x6e3t7fH1+fX2AfX18fH2Af318hoOGhoaGhoOEg4WChYGBgH9/gH9+f4CBfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aFhYaHhYeGhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCfn5+f35+f4R+e398fICBfYGAfX2DfH5+fX1+e358e3p5e3p5enp7eXp6ent7fHp7fHx7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4F8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBg4GDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSCg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn99f4J8f399fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt9fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fb29vb29vb29vb29vb29jW19fX19fX19bW1tbW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0j4yMjIyMjIyMjIyMjImiv7y9vb29vb29vb29vrSKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFpVVlZWVlZWVlZWVlZSfK6qqqqqqqqqqqqqqqybU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/ODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpZ5fWVpaWlpaWlpaWlpaVoCvq6urq6urq6urq6uunVhXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqjaGRlZWVlZWVlZWRkZGGGsq+vr6+vr6+vr6+vsaFiYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzMzMzLz9PT0tLS0tLS0tLS09PRzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7O0NTSz8/Q1NLPz8/T0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19bX19fX19bW1tbW1tXV1tXW1tbW1tbW1tfW1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Oz8qWpdHRyJSn0tHHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8+cqp2t0ZmsnLDRmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DLlIiancSUiJyexJKGnZzOz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0b3ImZnCv8mYmMW8yZeZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Sl5SfzNKUlp/O0ZKZoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Ts5vEmNmvn8Kb2q2jv53V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0c6NkJ7DzouTnsfLiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHL2qiZr8/bpZmz0NuimbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Nzk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJjqWaoKuRp5mgrZComJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HKu6Gmp5+xpKSooK+noqmc0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09OekI221pyRjrrVmpGOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0rrE1dPTucfW09O4yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLV1NLS0tXU09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnp6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipKmnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6mnqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6KvqqqsqKirsKmoqqihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustq+zsKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYW1odWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW2vLy+vLy+xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb21ocXhveWppYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbDxMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3lmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDw8HEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMnIyMnHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBzsPKysjGzMrNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVvdGJdYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBwsO/v77Ey8jKy8m6ztPIyM3Iw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnZGplYWptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDubi5u77Bx8HFw9OJqc/ExMHEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e9xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmdjW1paXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9wLm+urq0wLi1t7Ouuru2vsy2hJ7SvL/BvLvEvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+urW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vsvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCnoaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmJnamdmaWVpXVZWVFlPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLewrre1uL/Pm4GKtcG6w7W6x7i2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGhoqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2hYWE5LS0tSSUxIQzk9OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7i0rbiytr3FxYeBgJ/Evse3ubitt7W4urS4s7vFxsvBvMbAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz89PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2kr7G2urG9vrvEtrecfneCdISTwax7gYKcycbPwsC4rrW1vL64urK+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG54Y2diW2NRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuro7C71Nq7ur68xrKdd2NsZFBbYX2PeoWGmcvO0czKxLW6wMPIv761v8G/xsa/y8bDv8G8wMPMysfFxsC5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPEFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLGzxKKy27+8vbp9ZG9gYHNbVFVYbHyGiJvIyMzLzcrGwsTLzsK8ub25ucDDv8jGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLW8t8Fvb7DNwbR6WkpkY0twfm5gUVl4gougxcLHy8jBw8HAycrCwLu6sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKyr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7/HfW92pL+bVVJPg2dPXHyBg2xGa4KQrMO9v8bAucC8vsXEvb25srCuuLe/w8fDxLy9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pW19fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnHyIJ/bn+lc1FMYpVfUVFVjpZ2TmWLnK64uLjCurO7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9mXVpUSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa4x8iKg3h0jWFMYopxXE9WZLC6d1ZQfq+wsrG3vrmytbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZxbF9jYVtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8PDkYh/f3lWUY6Ua21WZXBnlH5xbV6HvLOwtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZlhcXVJOTUE+SUJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i5w6KQiZB+Sl6Yw3SBipBddnxpanSKtLu1sbS1srSvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1sruvlJCdlkxijZR2cIB6Y2psc356c566ubK0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+ytKadqo5XgW9ualxoX11WWV5nY2mAl7iyrbOvrqyutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6aim6OclZCMj4+Qk5CXlZaYn56empiml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR1BNTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6WsqbHAt69oeHhrc2hZXlBKSEpMUU9aa26itqqytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mao5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01KSEdPUk1KTkc8RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqKGlxMOOYGVjcmNUTEZdSVBGTUtLU15dfLavr7O1qqesq6KcmZSOkZaXmJmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHl5YGJSVWBJSUpLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6Xn6WenbmxhXpnamNWSFBejntsU0tHR05UVGSrsrCwuKymoZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKxtKqyr6KZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk9VTFNMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpyim56jp5p9bF1UTElVg6qxn2hQRkNDR01elLCtrK+nn56ioJeRk5ugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqShoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFJVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKZnpuhoaGGbmBVUE5PXKvg2rqPdWJTSEJNi5maq6qppJ+fmZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+nqKWkn52qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JXTkpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKSgdFlST1JSXXW40rqgqbmehHmJrsSjqK2pqqWfnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqztK+zrqqvo52rp7axraKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHFra3VycGhXW1FFVEhESlBJP0VBNEZIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfn5qgnGZQSU5QXXWNsr2ph6Lc1s7U2ci0rqejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsHGvrq0urq0u7ewtbKqurKuu7e/u7qqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrZGhveGpkWltGS0xFRFNMREJFNzo/OzU0OTk3OD4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaKdnJRdS0VMU3WFs7akkonF49zRxLWmn5mcm56emZeXl5KMjpeXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxczQ0tXO08m9wL/Du8bFyMXR1M3T0NPTzMrCxsbHysjOv8jRzMfFx8XBvMPBvr++tb6zrr+/wsPHxMfErr+4sri8w8HBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOfnJ6WY0pJTVx+qtHQtqCz08y6r6iin52fmpiWlJKUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LV1tPTyMzHzM3J0s3O083FyMnKwcbLx8jJxr/Ds7PIxMvKy8/Gyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2gpXddZ2iDsNLa2tbKurKqo56dnaGloJ2alJSVlIl8d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLW1tnV19PW2M7Sys/RzM7QzNLPv8jHysPMzMzOz8XGx7a/yr/RzcvPxsnIv8PDyM7Mz9DPzcrHzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKR0FFSEk+O0E4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoaqJgZKvztTZ2s+8r6iblpignJuhop+bnJmViXdpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV19fX09bP1dTa1NTOz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ2NfY0djS19nV1szPz8rN0svO0MDGwsfFzs3R0dHIzM3AyszF087LzsjEysfGyMzK09PR1c/SzNPBucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaaVe5OSxdbS1cKtpqGYlZeZmp2gnpmcnZJ9cWVjY19fYV9fYWBfYGBfYGZucHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY2NfLyM7Eyc/MyszAyb/Hyc3Oz8vQzc7Mzs/Iy9DQys7KwsnHyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1XRTtAPTMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsrammdml/lNPWzbCcm5aVl5uenp+dlJaYlIhrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Hzs3N1MzO083L19bQzNHUy8zQ0tPKztHV0tXVysDJwcXMwsjJwszDxcjKys/KzczQzdPLxsjPzcjHy8XGwcXKy8zP0cbQzs3NzM/Fx8G4ub3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV5cHFrbWdgYHBoWFhoVkxGTElQUEI7Qz47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKihqGRvfKjZ0KqVjo2YlpGTkpGWlpaQi3xlYWJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svQz8W6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL7Ax8vLy87Cy8vIx8vQxMXIu8fDycjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7utppxeb3e60KuQjo6XkIeEhISCfoWFf3NgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLLycHCzNDFy8i/ucG7xse+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xry8wMPEy8XFu8DKwsXH0sXByb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZujoJuUe3ZzdGZpWmFubFpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjAtMO+srKNYHKBv7CQi5OXh3uBhYaAdnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsba6srKzsrHCvLy8urjBwcLFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDv7zBzcPGvb21wb3Dur3Gu8K6s7zFxMHCtr+2tb2/usvDvLW6yLq/vsvEwcbCxsnGyMbQxsLMx7LHycPOzcHFw8C9s7ewsqeoqLmwpa2wqq2slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztHKysrHzc3O0cjQxtXU1tfNys/FycXHwLjFvauvfmR1kLWSjImLhXmBh4eAfoR8dHRjW1xdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLW3tLOztLy2vbG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bBwry4vcbBw7u1rrK2ur+0xLe7tau4vb3AvbG6tq+2urPFvLeuu7+1t7TFvL7DxcDDxcbIy8XAxsa7yMu/z8rHw8bCw7fDvb22ub7Hv6y1urW3to55dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcXAvri3ybWpsIJtcZeajYaJint5foaGd3iCfXRpXl1dXV9gX2BkYV5kZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7i4tbCrrKeeoqqnnquts62prKm0r7ewsqmupqyyvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLLAtri9sLCnsrO1u7yrrrWlrrWvu7Kwqbmwrbuuu7i7wMC9ucK/x8PFwbzGwsjLuMXHxb/Gw8O6xMbCu8bJzMuzucK8u7OIc3Z2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx83Bw8a/xMTDw8rBycq+v7zAurKztMOuqa6GaGSKkoiOkHx4foqFenuEgXduXl1cXV1fYF9fZGNiY2NiYF9dW1taWl1aWlpaXGRub2hmZ2lrbnKBrbmwta6mpaenmqCloZqcpauupKiirKqsqrCjpp+qrbW2sb25r7evqa64tLS8uLS8r7e5tbK7wbLArqWpoquxsrOovaqrqKusrbSzpqiuoaSvqbKmp6iupqi3rLGyt7q6u7K8vb6+xL+1wsHHyLe/wMW3xMK/u7/Ewr7EyMzKv77EwMCph3N0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HLvrvJtr3DvrrJt8HDwbS1u7WwrrS7rainh19xjoOIi4B7foB+eHR/fHN3ZV9dXFxeX2BeX2NjYWJgYF9dXVxaWFpbW1lYWlxfZmtmZWdlaWtvcoWqpayloJyipZSepZuYkaGjqqSin6alqKWtoJ2cpaassq+2t6ewq6iqtKu0urG2ta62ubGvurqxtqSgpJ+msaerqLmqpKeoqKeyraCnpp+bpKasnp+no6Chsa2trLK0s7Swtby2u8HBsrq+w8GyubnDs8C9v7W4u72+vMLHxMLDvsDEoIN4cGthZl9rb2BUWV5ITmdPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLS1vbi6wLq9taCelZ2hprq2q7Ozu7PEz8jLwsa4t8fBzL+4ybe7xbizxLizvsCrtbuxq6SusqyfoophgoeGhoF8eXV0b21rampxaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeWm6KWnKOZlo2foaOnm5+gpKaiqJ6bopufq7CssbajqaqqrKyktLmtt7Css7WusrWusKqfnZ+korKkpqm4raKmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqrKytsbK4r7i5u7C2vLy6q7OzurO9tLaxsbW0v7a9wL3Dwbu7vZeDe3NrX2VeZGRYVFddSVdcS1BHSUlGQTw/P0A7PzwwNDUzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vEw8++uce4t763ssG0sbu7q7i5sKGdqKqmlp2CZYKFhn94cm5wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1hYWFhaXmJkZGVmZmhpa3KNp52UlZWbmJuil5aRnKKiqJ2bnaWmoqacoKCbmK6ura6yoKWirqunorWxsrKsqK+yp7qzprWgop6bo6Gto6Kqtaqio6adpqajlpmel5mbnaCal52dnZytoaunpKSmrauztKq1sLOrsrm0r6qvsrKzt7Ouqayusriwura6vb+3s7GUhXl1ZV5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWjmKWxwrW2va20uMLMyMa/xbbBv8fOt8DEvbO5ubK/trG4uqyxtK2dmKOonpKad2mBg4R/eG9xdHFpZmRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqKclJSQlZeXoJeZlZegnqGclqGiqaSfn6mdnJqrp6+wqpujpLiqoaCuqLaqpqetsKS3sKS3oKKbmZmqpqGarLiwoqGknKKfn5OUoZSWlpuYl5aXnJWfqp6qpKKdo6qqsK6otKuqp62zsKWrrrOxsLCur6anp7KusbSwvLS5t66jlIF5dWReYVZZV1NSVEtNXkxPS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri9rp2nqKOqu8C9wLmutLjBzMfFwsO9xbfIzLLBwsGtvLu0u7y0uLmvr6+nm5ifp5KPinB6gHx3cWlscnRwaWhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmqBlpOVjJKUlJuZnZaWnKCcoJahoKempKann52fpqCqr6afoqS3qKGhoqi0oqWopbClsK2rtJ6gnZWVqaGilK2xsZ+io52emJuTi6GUkZOYmJKXl5iXnqecp6GimaOlpaukpbCnpaOrq62mqa6vrquoqqmzpaasr7Sxr7y1sa+uoJJ6dnJkYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxse2xsSzwr/Fqre3vba9urq1squrpZiXnaGKh3F8iH52bmNhZmloZmhqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVVRWVVNUUlVgYF9gYV9gYWNkaYGUk4mQjpSTlJ2VlpekmaCXnaGmoq2mpKSjo6KcqqulmZ+lsaqgoJ2lq52nop6trKmprayhoqKVmKObnJCrqbCbn6KfnpeZk4qekY2Sk5aQmJiTnKGjnaSgopWgoqSmm6OrpaKkqqSrrqWusqmmpaamtKapqK2ztbS5uq+prJ6LcnBvYFtXVlVSR1FPSFpbT1JKVEtTTEVGSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6PDw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm9sb7EyayxuMG1u8C7tLOoqaSUmJmah35wh4N7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eXl9fYmRtjpCEkYePkY+ak5WTnJujnJuhqamrqKynqKWkmaWupJSZpa+pn5uZm6Cerpmbq7OgpaafoqOhlZOblpaSqaqtmpyfoaCalJCMmY6MkYySjZaVkJ6hoKOcm6OVm6GjoZeiqKOiqKugq6+jrbelo6OirK2qqKuvs7ezvrWzq6+YhHRzaFtYWFJVUUVYTFFbWE1UTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62os7auqaevrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEu7e7w8ixrbi/t7y9urKzo6eelJWWlIV4c4B2d25taG1ubXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXVxcXl9gZH6NgYt/jJCKko2XkZeZoqCboKuqpq6sqK+kqJqfrKCVlqSop52XkI+anq6WmKiqmZ+dlKWgnpKQkpGTlaerpZqZmZ6elY2Mi5OGiI2DkIuRlZGgnqGjl5WflZqhop6Um6Wlp6iooLGwprG8p5+jrLSrrqewtbC5tcCxrbGrkH1yc2JWU1ZOUklGVlBSUUxMV01KTE5SR01KQUNGREM+QDY1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqaisKudqqepsrGltsa0ubqzysW5usHL0Muxtri8vsHDsbCyt620s7qysaGhmpuWlZKBfnZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKl4mUlJibmZ6pm6CqpqWrnaiZoaWbk4+fo5uXl4WEkpujj5SjnZaWloiim5uTi46KkJqkp5yVlZebkZGHlI6LgYuNf5CKkpKSoJqfopWTmJiVoqaZjZmkpqimoZ+0sqiyt6Gcoresqq2ksrKmtby1rKuxo4l4c21dTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2saWno6mloKilpLOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq25rqudmJmblJKFeoFtX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGEj4uUkZSeoY+bnKOho5ill6KclY2HmJqMc42Dfo2XloaRmZCUjo57mY+cjIKJf4qYn6OekJOYloWNgpR+fnSJjnmQh5OPkJ2amZqRlZCdjqKjjomaoKGkpJuitK+sr6yfmKW4pqaxobGunLC8qqmvqpmCd3NjVk1ST1BNQ1NOTFFNQlBRSElOUk1ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6a0wbiwtLDJxLe5wc7FvrOsusGrrcOtqKKmkp2mtauhnI6UlZGOfHZ9ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5YcpCDl4aOnZeLlJCfmJ2VlJaVj5aJgJOJXztXb3yLlImAjJGMkIaGc4qFloF5gXqFlJ2Ug5WOkZCDhn2TeHFvhY19iYGRjY+XmpiTio+JnIefmIeIlp6aoaCXp6+praion5ats6Kmrpmsq5iotKKpraOTfXJuYFtOU1JWTERUSlBNTEZOT0lFTFFNS09KSU1PRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6OpsKintMG5sbWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUm66gmJWFk46KhntydFxRTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQH+VkZF9iZSNhIqNm42WlYmSiIaVhnmIf2BKUW54ipGEfYSNioV/f25+f5R3dXV3hI2ZcFGNiIqGe354lHZod4aIfoqIlYqNkZKWi4SKiJSEmoyChJKblp6dlKSjqKmlpJ6bsKqhpKSRpqqWoqqcoqaoiXRtZ15bSFFRUk1JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+ir6GnqKWnqK+tqrW8tri3s8G7tqe5yLi2qKi1tqqyvKaelY5/iZOnlZSJfY2DgXx2b21YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJOBkpmLj3uGj4B2f3hzbnVwdI2OgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gXZycpJ3Z3WEhISEe5WJiIqMi4B/hIuMf5SDfIGQmJWclZGfnamen6CdoKmln52Yjaekk6Gflp6epIBzaGBcXEpWT1JHSlhST0pMTVJKSkpMUElMUUxSVExFSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlraywsaq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGNlICNm42QfnaFd3t1b25oWEtISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfHhmd42XmI2PfWh5gXZ4gImPfYSYkoFxh498d3tva36tfXOQi397hpKBfX90ZnZ8hmxvaHN8iYyIgGx5cX1wbXWPcWlxgH6OcEOLhIKDhX93d3qLhX6Me3V+jpKPmIqSmpujlpmdmp2eop2WjYulm4+el46WmI93b21lYlpXV1RRSlNVVE9QTlBWS05LTk9KUU5ITk9LRUM8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmwr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mOhJJ5iI2KiXVwe210cGlsaVdLRkdFQUBDRElMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFhdZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnp9fnt2b3RzhYJ5gXhwfI6MipSDlpeYmpCSlZeZl56XjIOJn5GLko2GkJZ+bmlubm5XVVdUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ozk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCirKqota+urLS/q7zCv6aimZWkl52NhIuUoaGYmJGTi3OOen+Fi4V0bnRrcGxka2pYTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXGCniGKaaXR6ZX9wbX96i4l2gYiGdGyaknRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxgHxncXF7bpONj3tzfXxxcG51bYJ/eHl1anmJgoiKhJaTkpCLjZGUlI+XjoB5iJeIhoqGgJCIdmpqb2hkV1FaV1lZW01QVVZZWE5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfprqvq7KwwrG7w8ealo+UmYuNhXmEkJiUjZCMj4Zxh4Jzh4yFem9ycG5vZHBmX1RGSUM/PDs5Oj9AQURERUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgYWBeoSGhnlyoZV0eIFzdZSHNXGdqJ2OoaGEooV2cIZ8h3xzjK2NiYBnZmJqbnJtcIN1aW9YdXCOmpJ3bH97fW1xbXCAenN2bmN2hH6GgIWQkYqLiZGLkYyLj4N1eIuPgH6DgH6Pe3Jwb2xgW1xdW1lYYF9STltaWFdMSEpGSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ6kp56vlaW1qq6xrsGyu8HGlpCMlJCAiH1ugZCSiYOKh4+FdYKDbJWIh3t0eHhsd253Y2leSVBHPkA3NDQ5Ozs8PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgYWZhJucYYaqn52Lg5COeneIfomIjXOKl4+Eel1kcXR6e3eKbGdqYnlvhY+Cem6Bd3SEenB0endrbmled4d9h3yIh4+Ai5KXg42FjYd9cYR/hH11d3t8iXZwcnNmZ19bW11TW2ZeV1FVWFtVR0pKRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIySnZ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fYF+cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbXyBhod9jmhnaHh+boWHgoVxhIVHa4B3cnl2aG1rX3d9g4l/iIWMepWem4mLiJF/enWLdnx4bW93fn9zc3FrW15dW2NjWGZlXFVQUFZZUERMS0ZOSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9P0BCRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiJGBmpWCoKGXlZuapa2Tmruxp7vHw6iKjKGlj5SJgZF7coSen5Gcf3aFhYqPiJBqaG+DgHWNh4SLcYaCd4eAe3aFfW52dWeAlI+GiYiIiIehq6GWiY6Yf3uCiXp6b2dreH55fnJqZF5bW11pXGFmX1lPS05XUlFJUEpETkdDSkRCQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMgIGRj4uam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBjIuCiY2Df4l/bXBqXUJBNC0tLy8uLzAyMjM0Nzc5Oz0/QkVISk5RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISkxLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPop+UmZKEioWPmJGWbHB1iYuCloyNj3aPhHFshYGKlpKDhYhyiaGWh5OJj4+WpbWpm42VooOHk4R9f2tqa3yAf4FzYV1jX1pmalxra15XS0dPU1FOTUxGSVBDRE1GQUNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+mJaalZ+fnKegqpaTmJ5nZaSafoSSkXmAkoiQkn2KhZmSkYKAgIuNiYWQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjU1Nzs/Q0VOUFJUUFFSU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZ2fqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+ElJKFnKGampmnkZGIlaKamnd6fpSYkqGSl5eBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N8fnpxaGBcYV9hZmNgZ2dcUUVKS1BPSUpMRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJjIqEkoWChomBgIZ3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpNT1FZbYaQd5WLo6eqtL24pa6srKiptKuwt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsrauki5aYhaamoKKXgaaZjaKqqKSHhZOkoaCqoaSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWriJqJkoqWent+hH1mYGhcZWJdY2NeZmZeW09DSUhUT0ZITEZKR0VGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGUhYiCnIOSkI2S2sidlnNWl4iPiJyPfIaMjoqKeoiCh5GOg4WAi4WGh5KGgoSJhoiHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJTVVVXVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHw6uzxrattL+zuL62v7TBtru7pLjGqbbJx7W+ubSoo7StsbGcmpKan4mnr6uklXafpJehq7GzmJaqraiutruyuqyvtaKxrLG1vLe1rrWgp6ijqJupsK2yuri4p5u3qY2ljpGToId5gYJ0WGFkVmVhYGJfYGVfWlVKREVMVVFISkpESUdFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hX6AjXu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeFgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjUwLzZDSENRXE9RVVdVXFdQX1VJS0pBQD9HS0ZFRDs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMm2vMW9tLTAt7jCtb+wuHSytKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KSpbGupa2sp6SYoKyzuqKpsrq1u77Mv8XFvb2zwre6uL+3ure5rK2wprGqrb6wvbvCwqyZuqiUro+YmKuJfoF6aldiYVhqZGhkVlpjWVZUSUdHTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWVVad2pwf4+EgY6FbnpyeYhiuKGZo4mVk5aTk5ONkJeSh4d7hoGNlYqAhICJenyLh4Z8ioOBioOVfXd5dWVPXGRHRUw6UWRhW15TRj87SFBEWmNRUVlYWWdaVGBgTVNPRUE/SUpIRUZBQEM9RTZCPkhHS0xTWlRdk6+4tbq5ycC7vcnMu73Au7e1vLu3vrW6ssZgdbOlsZqeq72qpairqqOisrWhq6eelZafmKCupaenpZ6klKKnsbSnsrK8tsG908nK08bCxczCysPAvr2/u7y3tLC5t7fDusa9w8mwnrmqoqyPpai3iYF+cV9hYVxXYV9oZlJYYVZSVUlFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUFBRUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWhsbHGQjYWQdG1zcnOI1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaLf4N/gnh6i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV5vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVlxaW5K5wLm9t8bAu7nKy7q2ura4ubO4tbSutraZZHWonq1wXqKsnJiho5uknqullJ+fkJSOlpiXqJ+mn5+amYSknaylqrCtt7C9udTRz9fPyczSzM/OysfAv8LKvcG9wsDFxMbKv8jOtKS7sLWwm6y5vZp/eWxdYFtYXWFaY2JRW2BTUUtDQUVGRDxART5CSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KRlG9sb3V1iLOsoaGfi5mcmYyMlZGbkoWKin6Ih4yQi4l8gYRze4mDhnyJdIKKhpV/c3t4bG11e2hyZWlsaWZqaWhgZmlobVptdJetpLyIh2dbb2hdWllUSEpOUEpLUUxUUUlMQUpHS1BfX2JmaWGYt8ewubO7vrayxMe2sLmxsLuss7Gnqresjbannpunmk+bnYyOoJaRppillYqTk4mQiY+RkZ6boZiblZeHnpqmm6yvqK+ns7TU1NXW0svP09XO08/NxcLJ0L/KycvJ0sjNzcLQ0riwxLzEuqa2u8Sjgm5jXFxdWGBXWmZaUFxXTlBDQkhFQkk7QUQ+QUg/P0I3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OT05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmINocW95eYOgqp6ml42bm5eLjZWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfXF4dWxxeH5xe214c2xogHBtY2ltcHlpd31+y7/C36dtY3huY1thYEpQUlVOWV5QXV1OUU5UUVVUXG5ud4Jylq64rLSnsLarrb3Asau1pqW4p6yuoay0o46xrpqYmIyRlJGEjpuBjaaRnImDi4SKiYSLg5SVmJeUm5GcmJmZnp6rrKSnoaysztLV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbGwM7HyMOpv7jQnnluZV1iXFZfUl1bTk9TUE5IPkFGQUJFPEBCPkVFPj8/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bXdwfX6AoZ6eoYuNmZOTjIuTj5aEeYWQkI2LioiRh3+Ce3J+gIKHeoV1hZORiX9vdnNsc3x7dnxzgXdxaoBycmlvcXp5cnu+y5p+jLGDdnKEdmhhal1DWlpbVmZkWGVrVFhdXGBjXWN4e3+LgZmqpKShoKGppqqxuaqmtKOiraKjraKnsZ+JppqUkpGKko6IgpOJa5WijZiEgYV+kYODk5ati5WNlZmOhZKQnZensKGgoaSkqMfNz8jCy9DT0dTSztPNxtbSzNTY1tbY1dfVydTazcnX1tHKrcTDzIpyb2JgX1hTWVJbT0pHSUlKQDs6O0VBRDxCRD5IQj9CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN5coKJgZ2VnZSFi5aJj4qIjoePf3eElJmLjYiIi4l+g3hze32Dh3eAe4eRl4GDbndwbXV/dnh9c4V8eWyHdnRvfXaEdXl7nbWMPEGKxqV+jXxpZVZJQ2VjZmNoamRveVtfZmhrbmlugIOJkYudnqCdkJeYn6OjprKkpLOgoqWeoamgorGchp6SkpKQi46LhoOPhH6cm4yNgoSFepR+gqmVo4ySipiSi32XipqRq7OYmpunnKe9w8a4tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2trS1r/MzLR3dm5kXVlSVVBZVkVGSklFRT06NzlAQUI6SERARUNBREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqCh3x4hZaXiI+Dh4aHeoR5cXp7hIZ1eoWOjZ16jHB8b3B6f3J8gXGDh4Bujnp1d318gnV/fIeIsHRYqcK2jJKBcG5iPV5ocnBxcG54d4JlaW9ydXhye4uHjpSSm5agloeMk5ugm5+qn6GtnKKamZ+lnp+smYuajJGSjYV9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI2VjIZ7m4iTj66qlJWXnpimrra9qK29xsvIycvLz8nD0crU1tjX2NfU29fT2dvWz9va0dbI1cuVeXpoaFtZUFNTXUhCRUlJPkE+PTc6PT87Pkg9QEFBQURBPj86ODdEQjc1NTQ3OS41NjY0MzU1NDIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fISXjoeLfoaHgHeCeW57e4aBdHqSno2hdo91gnR1gX10gIRvgZCBb5KEdHyBhXp2hnuJt8akwsm4gZabj3hwZU5mY4F6gXeGopCLeXl3e4N/fIR2bZSWlJWPl5CDiY+WmpeXppyYoJefk5KXo52Zq5aRkYuNkoOMhYmIgYWQkZ6cmYmFi4GGl3uIiJ+XkImNiouCfKGJkIu8oZiTl5mcqKalrp6ntb7AwLnHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvGhnp5ZmhkX1RXVlVNS0RNQzs9PTw5Ojw+OT5BNj4/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop8foB/gH2Fen6CkYmEhXqFiHt1fXRufH2GfnR/kp6Rn4OSfIZ+eI59eIqKboKagHSYhX6BiYV8fpB6j6mPkMOgvIyco5x9iYR9iXOMin5zppqcmZSFe4+QiYRoR3GhpJ2Mi5CShYiLkZKVj52ak5WRl42MlZ+dlKGUko6OkIt+kI+Oi4SJkpaan5+JjJSSnpGCi3+mmYiFjoKGhIClhoqMuJidkZSWoaegnZ6do662urWrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3h5d2ppZFZgW1NPTkhETEI9PT45OTo6OTk8PTZAPj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBj4pxcniKe3t/fX98iHp8e4uHgn51g4Z5c3pzbYF+hH13hpuhm56UkoCLiH+Yh4Cckm6HqIV6oIt8kI6DiIScfpqRio2joqCQpK+fi5GLhYuBkoZXcq2Ln6ycj4OYm5CQjlyDopGCjJ+TlYyGiIySk4yUlZSQjI+KiJabnY+VlpGLkpSGgIuJko2Kip2WmaOjhpOdlqGLioiOnJCDiI+Ag4eFpIaMkLOYnJKUl6GhnpmSm52nsbispbzBx83Hxs/Mz8zP18/R1K7W1dja2dra19bZ2p5vfHRnZlxdWFNWV0NASUQ+Pz46NDk6Ozc6OzozOzs/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieG1ifpKDbm13i3h5fnqBfYZ8e3aGhIBzcIWCe3Z2dXSEg4V9fpKmo56mopaJnZCUlouKqJdyirKNg6aRhJmThJmMopagmZOJmp2ikqmvn5GUkI6NiJWLbo23hJrEyLKdoqWbnJiWkbKQY6TNyJWOhoeJkJKOjZOUioWKioaWmpuPkJSTh5WYhICPi5mIjZCql5eko4iZnpabiY+Hl5eLhY+MgX+Gj6WJjZOomZeTlpihmJ+Zk52borK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6Ccn9oYl5dXU5JVFlBQkdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdoGOfXxtfoh4en56goKDfnZ2gIJ8bG6Lf3p8eHh8hIeKfoqjs6ejqrOhlqefpaOWla6ig5C4lZKymYyhoYykm6+jpJ2YkKeWp5msr6SXlJaVkIuYmZagwI6jybmrm6OmrZiRm52ynYWFqKKcmIWJiY6VjYuTj4iBhoeJk5iVjIuUk4eUmIaEkZCcdJGYspaXpaGInJqTkIqRipebiYqWjoZ9jJieiZCQnJqZk5iXn5SgnZWem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LQ1tjT0Ni7cnl2XWBVX1ZPSEpOREJDRTU+Ojc3Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OklFTkVEOjZBQEJTPjlETzMyMzU2NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSWZgO0iEi3p7boWGenyEeIGFgX5weHx+fW9yjXp9gXx4houJhoSSp7usqLK9r6Sts7Ooo6KwrIqatJ2iuKSVraSXqa23pqSjn5mpl6mjr7CqmZiclJWRl6CYmru7rsqhara4q7CUmJ+jq5OXvqNeqrKCiYqNlIeRfI6OfYOGjo+UlYiHk5eMkJWNi4yXmJKcmbSXlaudi5yUko6QkoyZm4qRnpCLiZWfoY2UjZiZnJKbmJ6UoaCUnJylr6ihpLO4q8LIxLW6vbvFx8fC0aDGyc3NxNfW0cvUoXB6aFxaU15RT0VEPjxDQUE4Pzg3NT9GPDw1PDM1MzQ1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEpAi4p/gXOGh32CiHWDioJ/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruztMG8tK2rs7aMp7Ktrb2qm7ukqK25uKumpqGio6Oor7Kxqp2cpJibl5eeoqalkqS6rqnAvK2tsrmlpKd+iIacrb2wg4yMi5CDj4ORj3qBiJCNjpyIh4+XjYuVl5SQmpedqJqxmpGsnI6aj5KOlZGQlpeOkaCRiZSbo6yUlo+UnJ2ToJ2bmKChlJqep6akoqSws6fBxsOvsLq2xcTCvs2mx8THw7zV0c3Eyoh0cmFbWV9bTUpCTEBGRz5BP0I7OjQ+QTw9NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQjVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFSkhOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxlR2BpZ1pdXJOMjIh7h4uGg4x1hpGKgW9+e4F/cX6BepV6kpSUmJCTlaezxsm/wszBw7nHvLqvq7m7l7K3urLArqXApKuvu7yqraujo56nqq60sKqboKqboZuVn7C0p4ujurq2wbysqJyypaSolIWOqsTEpIKLj4eIhIaVlI16g42Rj5GhjIyUko6Il5+Xk5mVmKagrp2MqpyOlo+SkZWVjZCVkY+hlIaXn6CynpSalJ+hmKSfmqCboJSYnqWjpqakr66lv8TCrqi3tcnDvrbOssS/xLyz0cnIwrV0eGxcWFtpUkxIRExLS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk5lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoGQeo2hlqiampi6vcfIycHSycrCzbzBs627vqe6wL68xLeswamss7u+qrCppKWjrK2zrba1oJ+unqWimKOzvambqL3Bo7e3sKuSsK2rrJeHmqqnpZGCjJOllYmBdoqSeoWNkpCen5OPlIuPjZSjmZeclZWjnqmfkaWajI+Pj5WWiHyPlZKSo5qVoKKctaaQnpeko6Klnp2mmJ6Vl5uko6inorKsqLzAxK+ls7fMwLmuxLO7vsK4rcLDwsCZbXlhWFdbW0tLTUpGRERJQkJBREw6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+JoJOEeIV/lX9/kIiKkICWoZmupqOYwr7Hw8fF083Ozcu8wrewuby0vMu8w8G1truts7+5vK6vqKCop7atramyt5qerKKnoZ2rt7ippLC/xLG+ubOnqrWzra6XlqWsqKCRjpKxxaeVjn2RlX2IkZmQqpmYk5OPk5WTpZ6TnZmUoaOinJifmIuMj4+eiFqQlpeSlqSZZZijnrKllqKWrKyqp5ueppeYlpiVoKOopZ+2q6m5vMO1prO1y8C4qrassrq4rqi4ur24gmtuWldUVE5GSlNOSz9CSERESEdHOTVGTTs+Nz1ASi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZGDh6aTiIKHgpyEg5WQkJOOmqKfr76uoca8xcTGxs7OztLKvru2sbq7vL/PtsS9uLi3srG1s7izq6acq6u4qqinr7CXo66kp6SktcCwq6y0v8O6wLqzp7m1uLKulaWtr6+li5OVoY10wZp+l5mFj5aajLGVmpqVk5OZmaWjlZ+blpqpnZyhoJmKjI+WnWBKlpyalZqlllSWsJ+vnJ+llK+uq6WaoKWUk5iYjpyfpqKZtKmqs7y8vKqwssfAuKWrq62xsaOhsrK0pHBtZlxaTlBLRVBQUFE7SEpJR0lDQz46S1U/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4unlo6Jk4Wfh4Sdl46doZqjpLXItKnGusLDx8rIyMzNxr67s665uMHBzbXHusG4tbqwr6+ztKajm6q0tKqopq6smqStpaSnrLq/qKu2t77Bv765s7LEsbm9rKOutay6poicmKabdr+ghZmdjpOZmouvl6GcnJeVm5+hqZ6ooJqaqpmhp56YkI2RnYNudpKimpWdop6QrrKiq5WoqpeqraOjn6WokpKZnIiUnKKel7Gnqau6tr6zsq2+ubego6eopaecnK2pqYxiZWBfUUtNR0hOSVVMPU1ETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5WcoZ+7r5mUn4uTq5uRkpOJq42Hop+MpK2Uo6O2xr20wbrCwsfIxcLNyMG9ubKvubTAwsq1xbHBvLS6qqitrbCio5iqtLumqaarqp2or6ejqqq+vKetvLS4vce8t7W3wbG9wLOptberv6WPo5iRoqC8n4maoJmXnp6Pt5+pnKWjm5yhmqils6GbnqacqKqemZWPlJuLl4mMpaKUnaKeoLSvpaWTsKuZq6udnaSjqJGVlaCDj56em5WppKGhtLS6ta2otbKznpyipZqXlZmqoZ53YFxfXUpIRkdNUUlNRUZHQlJMSkJFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+ew62bl6WYmamclpqaj6qWlaemla2tmaGrtsTCu763wcLAx8S+zca7vbmyr7izv8LItb+vu7a4tqakqqutoKCaq6rEoqWoq6aeq6+soqmov7emrb6xuLbHtrW5uL+yv8G3tbO0r76jl6OWlJyUrqCRoqKlo6OfkL2kqZ2oq52doJumn72imKOfoqmroZ2XjZWek56Hj4WNk56koZ21rKaclrKnma+nn5qpnqCNmZWfhI2gmpuTpaSamKuxtbGqpaqtrJyYoKCSjpCWqJ6UaGJZYV1PSUdKTkxIRURJQT1QSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDPEM+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm5SRjxLeGViV0yimqOcnsWsoZ+snp2uoJOjn5aloKapq5e3saOqs7XExL2/tr/Cu8jCvsrItri1tbCzs7fBxra+sLi0uLWfpqyqrJ2dnqWkwaWgqq2fpKmtr6Kmp721pbG8ube2w7Kzt7m/ssTAuLius7W1o52llZKUoa6gmaKdqairo5rCramerK2bm56ZpqG9op2lmKurrKahmY2Zn5KfiY9Xf5afpqGguKqnk5i1o5+yoaCbrpaejpmUnYKOn5eVjqKklZCmrrKrqaGipaWVlZ2Yi4+Rk6SeiWFkWWNgTEhKSk5GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dySEU2PXVlXEtOnp+hmZ7DqKWitKKcsqiTq6SgpJ+tqaydvLGorLWxyMXBwrPCw7zGw7zEyryvsLatsLSvv8S0ubGwubSsmaiwqamanaWhp8Ktm6yxm6qirrCppKe9tqa3u72vt8Ots7LCwLLHs7q3rLS2raqippaWlaSsop+fmqirsK+vu7KmoKmomZmYk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWdmqOfp7Ompo2YtJujrpqem62QnpOXlJqAkqGWjo2foZOLpqywpaahnKCekpKak4WLko2cnn9hZVtnZUpJTEpSQkNASUc7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+jn5ygw6ikqrKho7SqlbOsp6KksqyuqbuyrLC0tMbAxMO1wMS9ycS1wMjBtKu1qK+4rL/EtLeurLa5pZmrsauql5+ml627tJuosJutn660sqequbKnurO3srnAqrexw720xqe+r623taqorKGXl5KmpaKjmJilr7iusrW2oJ+opJmVlZOkoLejpKaWrrKyp6umoZ6bmpuWmKifoJiinq+yoqaNl66ZpauXmZ6kkZuNk5eahZaflIyPnJ6Ui6mpqqGnoJmelYyOmZCBhZWJlJ94Y2hda2pNUE1OVD1DQU5DOjpJQDc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzuko52hpr+mqK+voam0q525sKujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDGwLqptqSsu6zAwre3qayxuqKVrbCtspalp5Gquamgp7CdqqCvtLOqqba2rbuss7O6t6y4sMO6vr+mw6uwt6+pq6unnpiZq6KioJGYobGvs6uwuZqcqaCZlpKXpqG3qaWjorCxtKuyqKufm6Cgm56lnaKXnaOzsJqfkJOlmqCompSinpWYiZSYk5aXnZSIkJuZlI6oqKafo5uXm5OHjpmLfYyWhY+bamhsYWxuV1BRWlRBQ0VUQDs7SUE3OlhQZF5QVldEWV5dTUxSTl5LSj5aY15OSFBOW1VZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oauwq6OxuKmltbOsoK21vK6zuLy6vba2wMK/yMS5xMHAwLjEvcC3r7anq7exu76/tKmusbael6utqK2Xp6iOp7ufpK2znquisbCzrKm2tLW9ra+xtaywtLHBusW3q7yvsbisraqjsaafpaqgpJeQmaCzqrOqqrOanaebmpWOoKaktK6noqytrrGns62yqqScn6iknpWhmZuotamXmZKSn5meoJ6Qq56Xl4WVl4udmZyUio2Wl5qXpqWioJ2WlZeTgI+UhXuOkoOMlmVscmdwcV9GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7R0RGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2FVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoKSstqStqaWvrraqr7W6p6awt8W3sbe+wcK0tLrFvszFucLAub65w7fAubK1rKq6trq5vrSqrbG1mJinrKqrm6urjqu9nauusaOroLCts66utrK5t6qurrKota+zu73Ksqq2tbG0r66nobOgm6itoKWVlpuasqOtoKavl6GkmpqSjqOlp7OpoaayrKq2pa6xta+kmZ2tp5qYn5mZrLijl5OQj5icoZiXlKufm5KAk5iMnZyZlpGKlJOemqWioaCYlpGTlXqLj4V7jIqDi5JrbnhtdXtgRWFqWUlIWVo9e0pGRDZBYlRpW01cYEpcXVpSU1JiYUxLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lUS0SZl6CxqLGqraakr661qbe0uaSss7fKurS6ur++tLO3w8DMyLzDvLa9v7+3v7yxva6nuri3tsK2q62xt5SXpq6rp6OwqpSvu6SssbKnqKOxtLCxsbWxuLOprquyp7evtbTDxbaptbassK2pp6O2n6CnsaCklJyalbGep5ygqo6po56blpimpqW4p6KxtKynsqetsLaspJmgrKibnJ2blKq4nJSOjouZnKKXkJiloZ2UgpKWj5ycmJaViJeQl5qnnKOgkpaQkJV2hJCHe4WBhIyLbXF3dXt+XEtlbFxLTmNcPmJ7R0k4R2dXZltMXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0lXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLj1FTFE8M3JrSkNDkZmlrqWtrqunpbGys6q3sbegq7W5ybiuwbvCt7KxtcLCzsXAwb20vL+/ur+8ssSoqbiwtra/vK6rs7Kcn6exraalr6WdsrWsq7GxramotLqstLK1rLStqqyorKm4rbGwx7+4pbmwqa2tpaitsKakpK+kqZyenJuvmaOjoqORrJ6joKCiqqamuaWstbWkqquorK+2rqOdo6mqm6CampKktJqPiY2HkaKglY2UnaCTkYSOk5KdmpiVlIeXk5WZp5ufnoySkY6Qd36NhX18fIeKiXF0cn59fVxTZG9eTllmXEZElltHO05tWGJbTWBiTlZXVldUWGdeUVJMY1pbVEtHT1RTTkdJV1NcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis6ST8zQklTLD6PazxHSI+cqquiqbGkqaWztLG0tbKyoautvMy6rsC7x7G0rLTCwtHFxr7Asr3Awry/t7zEp6y3rLO4u8Cwq7GtoKOnraqopLCjqrGqr6ywr7Cvq7O7p7axsqmyqaumpaOtuqyqscK5tay6qKmoraqosaWqpKOuqqiin5yjrJWlnpiemaydoqepoqymo62suLGyoKmioKuvsaydn6eoqZmjmJmPoKeYhoSPioueoI+LjJacj46Gh5CUn52WmJWGlpOTl6SbnJyLkpCNiX5+h4V8d36HhYZ0c3GIdWtfWWBuY1FzcVxLO4R8Rj5XdFhgWk5jW05VVlVXUVxiXlNPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlFo+TEWVmK2ooaqznKqqsLatuLWuq6Wqqr3JvLG9t8KvsayzxMPOzsO+v7PAwsO6wLPIxKyut62yuMC+s62uq6SnqrCpp6ixprSuqrCurbGwtK20u6S4s6ysrqeroKKer7eqqq26tqW2taOqp6ysqq2hqaemsrKkpqahoayWqqGVmqCmnqSiqqWtop+nsbetrqOlopuqq62pnKGlpKSYoJqWj5idk4KDkImFnKCMio6MmY6Qi4OMl6ObkpCbjJOSkZSimZuZio6LinyGgIGDenSAg4F+dHeMo4h4al5gbmdXZYdjTj9nk0xFYnlXYlhSZVRNVlVVVE9cXWFVS01pV1VXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIY+SEZEl5KwpaOqsZirqq21q7axq6Wsqqm8wMC4uLO7taWysMTJy9G/wbu4v7/BucG6wcSusbWxs7rAvrOxrq2rq6i2qqaur6q5sKixsa+yrbaqt7antLesrKSpq5yjnrOzqKiktLSgtq2gqairqaunoKusqbm2qaqqqqKpoKyckqmhnaCkoqajqp6cp7WuqKaqoqOYpaanqpyipKOfmZmgkY6PmY5/h4yHhZ6eh4SKio6NkI2DhpSimo6MmpGSkY+Sn5aYlouKg390hoF/f3l0g396eH+BiJ2Pb3FnZ3F4XGBziGtPXplWSG14VWRWUWJQTVVUVVBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0pqNk9EO5aOsKGmq66arKWtrrO0r6ulsKqpur67wLCuuK2htq/Jx8jRwL68urzCvbrDwb+/rrKysbW8u8KxsbOrs6iktamlrbOyubCjrreyr7K5q7mvqa22rKqeqayfoqC1raihn6+yorSqnqinqqOroaKsrai9r6yuraKoqKCsmZCvoZiioKinnqibmaqwqaOfraKhk6Kjo6eYmqmlmJeZnY+Kh5WIfY2GhIOjl4WCgouGjo2RhISToJaHkJyQk5CNkZyUl4+KhoV4dIF/fHV4eYB7dHN6aYGGo3VpXmVrgXVmiIt9UlhwXUp4c1NkU1FeTU1SWWZOTFZZZFhGU2lSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwvS2c6NDhfPWFkP0YxQ1BbWytITjlVQTSRj7KgpKaspKekrKa0srGqpLGoqri+wbuvp7mqpq6wycfI0cO8v764vr+8ybzBuLCwtbG6u7jAsrO7rbitorSnp6yytrmzqKi8ta21vLC9pqystautnKmvo5+kq6qnnJ6qsqSzqJqqp6mkqZ6jqaepvau0r66dqaSgrpybsqOVpJylpZ+km5qpq6Wem6qhm5KboaWdmJepqJKYmpOQioKPhX6Pgn+HnY+Gf36Mh5COkIR/k5uThZOhjJSSi5GakZWGiX5/cnt5fXxod3x6dXBwfWiFeISIZGFoY3KFeWxmeF1dVUFWem1UYVBSWEtLTnF1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtL0ZqSTE0WD1mY0JKN0dTYFUqPTtEWD8qj5SxmZ+gqaWkoaukt7Kypqmxp6y4wb21sKO5rKioscPJyc3Btr2/tbe/uci2w7W0srWxvbi6vratuba/raGzp6qrsLW4taufvbypsr+zu6Cvs7WprJ+usKOcpKiqop6cpLCmsKCfq6mooqqcpKigrbunrrCuoKujpK6enq2ml5+boaOcn5yao6qjmpqkpJWXlJ+ilpuXpquLnpGQkYyCioGAj4B7mZSNiXx/i4aPjoyKhJKYkYaUo4mSkoeQmY+TgIh8eWx9dnh4Y3t6cXBxcnhogHRqg2dkaGFuc41sYWlvX28/W3hsVV5PUVFKSk1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDBBaFkxM1M9ZV9ETDZLV2VPKjwzT1k9I5OZrJmfmKekop+no7ivrqOvsKqruMK6s62fuK+rqLS7yMvIv7fCvq+0vbfEt8Oxr7qys8C1u763qbm4vauktKipqrCuubGqm7u9pLC/tbWhrra1pqensbOgnqSmp6GlmZ+sqKmeoKqvp6GnmKSooLC4n6Sxr6CroayknKanqZqanJ+jlZ2dmp6pppebn6iSmJOYnpOZlqGpkJqJjpCHfYd/go59fKCMjIh4g4uFiYyMhYiSmo6JlZ6IkJSCi5aMkXyFe3NwfXFzdGB5eGlvcXBvaX5xY3psaWVjYGaFfl9ac2pxS0x+aFhaTVBMSkhQUlBJTlxfblNEWFtSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUyPGZkMjRNP2VdRk89UlpoSCo+L1lYNSiXnaaZnZatoKChpKG3q7Gks7SqqLnFtbKuoLesrq2wtcbIwbe/wbmwtLy3v7u/r6u9sLS/sb3Duam7urenqLWoqKuwrbOwp5q+t6WtvLWvnrC3sKilp7Cym6CkoKSkoZecr6ahnqKnr6KgopOkpKO3sKGmsauerKOvmJyqpamemJuepZObnZqdpqqanJyllpWXlZ2OlJejqKGQiYqQhnqFfoSKeo6Xio2GeIGHhIiLjoWNk5iNjpaYio6VfoaXi495gHtwcndvb3RfeXdkbGxraWiDbWVyamtlaFxjc39fWmx2aVpIfV1bWE9PSkhIUlVGMjleXmxQRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0FmW0hURFVdaEUuOzJgVCwylqOhl5WcqZ2loaKgt6qvoLq5pqy9xbOwrqK1r6yur7TExL2zv7q3sLO5uLq4uq6uwLO0uK+/wbisvbq1pqKzq6ips6uusqOcwramqba0qZ6yu6mmpqmwrJmip5ykppSYobKlmZ6kqamcoqCTpaCkuaikp66nnaWhqJOfqaKhoJmbnaCSm5yXoKKrm5uZoZWSlZaajZSTo6ekj4iKj4Z5hHyFhXycjYmKhniAg4eIiJGFlZOSjJCVlI2Nk3uDl46Kd357bHRybGxzYXh1aGhqZ2VvhGdoaGRmaWpgaGJpZlplemNhUnNUW1tTTElHSU9TQCEpaV5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc4Y04nMp6ko5KOpKacnp6do7Wtp6q6t6isw8G3sKyitK2nr6+3wMC9scG3sa6yt7a4t7asqr2zr7KxvcC3rry8saWftqympbSpq66gn8Osqaaws6ustLqdqKqrsaWYnaqep6WRmaatopmepKmhm6Kdl6Cdp7alr6quoaGenaGVoKafoqCZnJqckpqelaaeraOYl56VlI6UmIyPmJqooJGIiYqIeYV3goKCnIeLgol7foSIhoWQhJaVj4+PkZGRjJJ7g5WNhnN+fWZ4b2tqbGd1c2tjZ2RjdH9iZGVmZWlqY2lwWV5YXWxkYU1oV1pgVklHSEtNUlg+OV9saUdCVVNcW0lJR0ZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTszQWVIJTWbpKCRjK6gmZiglqW0saKxvrehsca8ubCxo7arq66pub28u63Asq+urbavs7izqKu5sq+ttLa7tq+4va2mnrWroKGxpauvn6XDoLKjrrGvt621na2vrK6jmZynqqWflZuopZ+ZpaOpnZqgnJSbna2wprmorqOimpqemZ6jmqSdl56Ym5SaoZKolaypm5ScnJKMlZmOlJSZqaeNjYqJj3uCdIKBipiFh3yJiISEioyIkoWTnJKSj5CRlo6Qf4CNjYJvgX9meW1oa2pncXJrXGhkYnKAYGRnam1sZ2poZmxcbG11cWFUYmhjZVlJRkxNT1hRUFVhZYFUQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUllQyc0k6Kbj46xnZuToZqpsrCfuMC2obTCvL25saW2r6mupbe5t7isu6+tqqu3qrS5rqWztrKvqbG2trGytbqoqZ+2qZ6fqqKqrZyqwZmupK6wtrWsrJ6xra+qo5uco6yonJWcp6OdmqmjpZaaoJ2Rm6Orqqm7n6ekoJiamp6hj2uilpiccYKWnKSAdpGrqJ6WlqCRiZeZgJeLoI95hpOMg21pfneDcGyGioZ9hIuGb15jYGeEl4Zri5CUknV3i4R+g49/ZoeAaHVpZldcaXNuTlBqZGZxg2ZeZGZubGleXl+JkIWHaE9LRDhFVGdeSkdQUFVVS0dTYG90ZUVbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTZPa1tOXEtbZmI+RzFQZD0rL42kmYeVsZuck6Cbqq2ro73Fr6m3w7i9vK2ntrCmq6S4tLKzsbmtqqettKawtaOouLe2qaestrOutK2zoqmftKueoqScp6iarbyVp6Wvs7etraSorqqrpqGenKCop5yXoaalm5unp52Tn6CZkJ6nqqO1sKOjo52WmJiXo4ihj5Kah6GHlJ6hf6V/p6uek5Ock4mEcniMjoSIoXaIjGmXiGZ9c3igb4iHhH6NfH+hoJ+Zf3uInnSIjnabimyHgYNtaGVjemxxYlSGbWNtaZhxWGpwboZXXmlba2pbiHBteXKHaYeEWl5GTj5GXk1FUlZXUVFSV1RnXkxZS1JSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxVmE3LyiMppeEnKucmZmdn6uqqKq/w6+yur23wL6qpLevqqyms7Wur7O2q6mlsa2ltbOcrbW3taanqLOxrbKor5+qobOpoKSkmqKkna+2laSmpra8pqynqaqsp6aioJmfpqOZmaajpJicpKmWlKKclJOipaaht6SkoKSYlZOYlJyIrpCYlImpi5ejnIWxgKStnpSanpV5gtSof4eUwZvHeXixpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4FslrGrsHloa1ixrm9labySvG5oem1yj9h+U2pjtrJ/gHGUdZqhqpBXT1dhT1ZORlRbWFFQU4tcV1tQQFxFUU5ER0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjqaTgaapnpednaWtsqmxwr2ytcC1t77Cq6azrKypqK+0qq+2s6inprWmp7iunbOytqumpKeyrq2xpqqep6SypKKin5ecoJ+wrZWeo5+0uaKpqKGtrqSinpuaoaifmJuooZ+YnqenkZynm5SdoaaioLCjn6CjlpaSmJKZhbBraoqNqn5nhJaHrWVxnp2VmqaVca6hpH53u3xroY92sV9qtFulgGWckWBmgXpmf2p4aqllvnJnpox2sWp8sXh0kpNjbW2nbluEoEVpZ4eWRXWcYH5ne6Ongllfi6tpgJR4emqnN0qvW1dUbGNbS05XX1xXVjtOiE9XVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5KilYKspqWfo6SqsbettL2+sLfFsri6wqepr6uuqamxrqSwurCkpK6zo6m5qZ6zs7GkpaCqrbCsr6aon6OisZ2knZiVmJudrqeXm6GftLKhqpuhra2gnpqXoKKpnZmepKGcmaGnpJCdo5qXoJ+rnqanoJugoZaVkZaRmoa1m7V4hamZtZl3h7Obt3+TlpeplX5rgaZ6gYWIkpSSd6tnarFbrHuOh5R0iXCPhoB/iJCXeIOCi5eMg6CPhbB2d59xa2psfItOpFhIY2OZfmNopmB5cnVSk4ZeUKltY3F9hoBinS5Rom5bVGtnYExLXGRYXFpCPrB4V1hBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o5YVU1MByWn5SIs6amoq6pp7Osqru2wrC8wq24t8GqrK2urqausqmhr7yqoae1raOrtaSls7Ono6Kdp6qyqLCopZ6gn6+Wn5mVlpeYn66jmpqkqLSuoamPqaipm56VmKClqZqfnaOfnKCipaOVm56Ymp2iqpylmpuboqCXk5GTk52D1ZOZuXCwwn7GhnzWlJu7fJqWpZCNm4ykeo2Ho4KlgnqseY+dVa97iX6farlauXeGg32mgpN8mHqqeY2dj3uxbo6EdJC7hW+UT6+nxYpRoHpjYKpic3KHbJeHX1O1tMiGgIl8Y6QzQp12XVFqaGRQQFhmWmRhSkhNbEtaU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFRODIlnKGTmLGoqKWzqqW0qKW8t8GwusCxtbW8s7ansbGjsbOmn6+2qJuouq6ir7Ggs7SwoKSenqepsKm0qaWcnZ6rl5mXl5eWl6KrnpqXqK2wqKOfjqyip5ael5yhpqKYoqGioZqioqebnqCelZmapqCcp5Wbm5+hmZCSlZGdiLJuaLVxq4hwjqZytHNytnuamKSNj5uNon6QoKV+sHaDkdLRdVuufIZ/pG+bqqZrhoV9rX2XmY97sXOTnY54s2WWdIWebp5mlFLIi1rCXJ95Yl+tYHdzhmKXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPal9saVBVRkk5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyL6KdkaSvrKSqu62mtKWotru8sru/t7a0u7uzpbW0orKyo6CssKSYprqupLGwnLS4qaCmnaGqpbKorKqlmp2aqZ6WlZiZk5OjqaCXk6arsKWilpKsn6WSlKGcpaeglZump6Gao5+tmqCenpCWm6KenKWUnJaaop+VmJaSm4Wse3eodqOPioepb62Kg6iDmZmiipKZi6J+kpiJroV/grNccrNSrn6DgqR/cdd9d4R+j52GmZp3r4aKkZyHd7RhmmWagoGVbJJasFhLmnWYeWZgrV53d4dnmIhqXa93lZ6PeGw1eciusl9CVG9eaGBFUGxfcG1WVU0vZWNpU1lRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6ODifnZSguLCYtMGtqLKnqrK6uLS4v7q4s7a9taW4tKC1rZ+gqauflae2rKiwsauttKSbqaCgqKK1p6aqo5melaWhlJScmZOWo6abk5CnrK+loZWYqZ+ij5GimqmmoZWapqmenaSerJ2gnaCNlJ6bnqCYmJuWl6KglJiRp52GqX19pXmhj4+DqnCtjIKnhpagoYqXl4ijgZCHlKp8gIudeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClGySXKtbWpN/kX9oZ6pkc3uBa5iHcV2sWomgjmtuZU9KQ6FcWk10XWNmTVphX3N0X0pVNUqakllIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT44oZyZmb6smLTCrqutqaa0sLixtb+6urOxt7yqu7WgsaWepaennpOqsamvqrWsqq6hmKGgpqSkuqKjq6GXnJGioJWUn5qUmZ+gkI2MqbCvpp2Xmqemn42SpJioq6iUl6qon5+go62joJ2hjZShmJ+gkpyXnJWeoZWXj6ubj65tcrR0qYx3iqZztHl0s4CSpKOSnIyJpIeOdrhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJql1ytYE2hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdmVG9uLlunT2JTa2VibVliXGBxfGNTWVA+Pm1vM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs8MDAwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eODFCOaSam527opyywK6tq6unt6m4r7XAtbyxr7m4q8G3qquhnKekop2Sq6qntaOyqK6qoZecqKCkq7mdo62clpmPpaOWjZ2hnJmdn5GTlau2r6eZlJusqZeMk6aapa2jkZersqOgnqirsJmgoo+Yopefm5abl6GTnamclJGrmYfUkpq7dLHEgMOGfdWWnLh4iJGXjJeJjKeHeaO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIpumohwbY2kdL1dd31bYXm8altWW2l5XmlgZGZibXhvWVtZQ0FAcj9DRis1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC45Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QDmnmp6ivKKXscOwramqrLGnuK+2xLG7sq67sK7Bsqylo56koZybkaqkqrKktaetpJ+WmqqZpqy5naOumZWhkKWgk42co56YnpqQlpKvubCrlZejqKeUkZalnaStnpGgqKugnKCppLKeo6WOpqKVoZmcl5WkmI+woJKVqp6FkJm1gJGRjbiVeIKTm7V3bmxuc255j4SOiXOewbu8mnuBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV6s6N0dpd1dLB1mJ5mhmmNtnRycHe2jF6Aen2JZ4N5bXlii6xwdYV/WFunakRlWlRmYGNdYlFnZnFtdUJNUExEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PjcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVjgqT11dPSs7VlYnPTs8p56hob+llrPDtKyqp6yrqbuusMavtbSvuKe1uK2po6Kmn6CdmZSspK2qprWoqJ+blqCjnqykvqahqpiVnJGim5KPoaiik52XkpiUsrW2rZiepKSii5KSppylq5yWqaWmnZuiqaamo6mhkq2fl6Oel5eYnp6PsKmUnKeijmp+aZyneIlzfpqOdXplh3u9vsC6bpKDcZSGX3JqWl6aiWFkh46Va2CAlWNtnHZilGt/mpWUZV5gY3GbimhyjH2GlWdqfnF0eX18Ylt3dIFoUFxuhH17i2pYbHmCcklKb4VwTXRNRVddZmFMW1hnY15PW212anJST0RFTjtISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFS09IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SVJfSSdTYFY0KVBeTCgzPltPJz8yPqigqKHBo5q0urajrKWup6i1sqzIrLCzrLWjvrGypqCjqZ2jm5qZrKeupKW1qqWbmJWim6atqb+oqaaWlJuVoJqTmKWpp5GekI+YnLCyv6ybp56noomTkaqbqKSbm6ygo5qbo6esop+qopqwm5Wmn5aUnZ+dl7ClmaKomZyRnpyjpJmno5qcmpuakJaCaG58cXaRl5SRhIm0qY2GmJWOioyXl4eUlYqDkpORiY2RlJmTmJeaoKKbm5SgnY6CeqSFa2p8kHyAdImKgXGCeHl2doqAe4lqc4F0g3Vkd312a3B6bWBjXHBoTVlZZWpfV1lwem5uZlNPRlM5T1pOUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5TMTBUXjorPThdSyw8LUCyoLOhv6KksbK3oKmlsqelsLWqyautsaa1psCotKCepaWcpJaVoKunrKOjt6ygmZaWoJetqqbBn6yklpKcl56Yk5Sin56ip5KRmainssOvmqudq56PlpapnqucnaCtmKGbnaKlr6ahpKifrZiXpp2amqCenpywoJ2ip5aYk5mUoKKWo5+XoI6WlIuKjY6XrY97lZuCkoGJqaiFgZiWioSOn4h7hJCGhZmQh4aJlY6bl42QmJ6jlpqTkZ2Nfo1morOuhYmEdnqPin12eXpvZ3mQgYCJa3WBeYhyaHR/eXWDiIJrdGN5ZmBpZGNkZmpYa3twampcUkxQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RdUTA1TVsxN0U0XEc1PCxAs6C5r76tq66ysqCqprKtoqyzsMWwqqyjs6+9pLScoKeioZ2Zl6imqaakprO1npWUnpmZr6auvqCro5GRnpqZlJGVoZyXqZ2FnqmsorPItKCqpKuWlpiap56pnKCkq5Sen56gqq6ppqOroq2bn6ChmqWenJ+dr6SZn6iTmJedkqWamKmempdmg5J8ZX6Omo9jeI1saGt6kKOra2WamH5nhYplZWloeo2hjmtojJeRondraouYo5+Yc2xueoSNhnlYZV2FgV5rioqBdltoc3d3kYCHgm54gniAc215hHN2iImPg3tqhVhea3RkXXOIaWt8cWxjXVFOV0lkWEBKND5GNz9GRDcxPD0/QUM7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS83Wk82KUVZL0RPMVlDOz8uPaWfury5r6uzsKulqK2usKaurrC9samopK2wsZ+tl6CknqGamaarnKyjpqips66elaOQoq+mtrmlrqOPjpqhmZOSmqCZmaWWe6Wsoqizw7iloqevn56VnqOfpJykqqiSnqGeoKqvqqujqqCom6afqKGslaGbpbCkmJyrlqGem5OlmJ6rmZ5+voOIcrRyhZ6GrWh4ucS4cZKho3ummJlzqoJ8y8DAu3GLooeDn3yVmIiewL2Clp2ejZ3BwXuBepGMmsK/fWulsW+MgW/Ken+beJGDjoB2eYF/eXF6f4dvd4WMk3ltdpJiZl94Y19lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX15cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmplKOvqbCvraayta+rpqamsaufq5iboqCcm6qnop2roqWppaS0pJ2jk6aurLi0p6+ikpGZnaWSkaChl5yfnYemq6Srrb/AsaGqr6qXkp+eopmipKqjk6Chnp2trqmspqOjpqClpZ2uqZGkm6mtqpydqpysopaYpZaho5icf86UeXqlgnmVlptfrY9ejqeAoaB8p5WbdKuDgK9eZI2peqeHhaB0l5KIs2OCq4ahjo2zaoSudHyWh7hhgq1Zo81uj3V723t/mXF+iJJ1f2V7h3Z2a32Ibn2FkJJ+bYGOYHFrcGZgX3hkW3FoamNmYFJUUlddSk9DNUFIRUQ4PjY7QD9BOz04QD4+P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKy0tSjAnO1w6TC0hUEBGNC4xrcLAwLW0sLeYnpGkqqmttKqlsqysrKSsprCqoKebmqaYnKKwn6CfqKejpqGfsKybnpamrq2xq6isoJSSm6Clk4+epZeeqKOerqSrsKi/xrOoqbGulpOdnaKXoKmqn5Whnp2drq+nqqmbp6ajoauSrbOWpqOrqp6jp6ahsKGSmqeaoZuUlJGXoHCFjJd1hKiHcbB8nXKsfqGfgaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIooyRi51+q3uIk4+ggHqtVpzEeo9vksF9gZVtdXCMbWZ2ZYZvYXducm+JipGQg22Rj2Vvc3VvYGZtZF9uaWluZmNXVFxhWlJSQzhJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz5XSi09Jz4xKTNWQEYhHEc6QzEuK6/UxseytJ+do46jo6KtrrauqLGnqaqorqurp6KjnZmilZ+mq5+ipZ+oqKKfnrCsmJuWqKevrainqZ6XlZqkopKUoa2bnaajrqyjrLWpuc2yraaurJeVnJ2imZ+urJ2WoZmen6mxqampm6upo6Krm6+xoqisrqaZpquqqrGjk5ejpZqUkoWkaqR1iXqpdHqycYKliZmMcIigmoekX2BSq4R/roKbda6Cp4aGn3qYloV7ZoCjiaSZhoGjfal+gJSHrl58qFWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojYyYj4FtmpJvbnh3d25sZmVkcXBme2ljXFdfaVhYVExMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmFhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys2NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLWwrqmso6imqqurqaSmoJuln52lp6ajnKyaoquhpJ+vop6bk6qktrCuoKmbnZaVp6SRm6Gon6CmnLCmo6ixrLbIsrWqrKqVkp2dopmfpbOdmqGUnJ+mq6ujrpqsqKKhqqKzraKqs7Kim6qor6+2o5OWpKeYm5F8qmyehId1q3l8sG6CpIuJoJaVn5WB0ri0uMmAgbJeX5Spg6SHh6B6mJWZeKrJc5mjlaipkJKbjH6biZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI+QnpJ7cJeSfnB6dHx6bVxmanJxZoFpXmFYY21cXllJTU1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE9UUR0cOzxGMiwkqKTBxrmtqLKurKWinbK5rKqhpZuopqqsqaegpqWYqqOfrqudpqCsmp+ppZ2ntZ+il5Ooq7ayrJumnKCWkaatkZmcp6OgqqeuoaKmqbC0wrKzqq2olImYnaWboqOvpZehlZmcpaWrmq+draimnqyjt6yhsbmwnZuvp7O0s6WVmKikm6COgp1OeJqBf596hKN8gqSEhqaenJ6ThLh8fHm5gn7MxcK2eJqgkIuffpqWl4p1npeKpJmkqH6whZyEnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkaOWe32SkYl1eXKEfnBbbG53cmqBblpjX2huYmRdS0xRVEFIR0ZJOjlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMjpQW1QcGzY/SCwtIIyHmamspKu5q6+gm6Gss7Smn6CVpa6urqmmnaammqOnobKuoammsqCZqKSUorWio5WXoam1uaSbo56jk5CisZmenKemoaKvrpyjp6K1scOxraqtqpGHkZynnaOknaWXnpiZmaWjqJquoa2lppivpbytore3rp2etbK5srOnmZ6woqSeho/RtcO3eYeOhZGTj4CmeJSid4ygkoSlgotxq4aEtG5yaZmjnJWJn3yYmYaHj3KugqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5OmmH2LjJKLeHx4jYFsaHdpeHNuf3RcZGRubWVoYEpaV1g8R0dAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWSc4yKrr+/u7u1npeopK22oaKZlaOpp66pq5mloZ+loKC1p6Kpp7CjlKujjqSto52QmpqqtLSknaadqZKVl66goJ6npJynnLWZn6mjtqvCsKmrqaKNhI+coqGmo5aZmpyYm5ilpKaYq6etoqWbrae+rJW+sK2fo7Czuqy0p5upsqWomHqokH18sHeKgaSliJxtsm+hh618oY+DqJaZgKyJhK6Fn5SooKKWhZ+AmZWAe5J9q4CdmpaKqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrrl2la3GFmV1gW4ygbpWRp5mClI2Wi3p5gZZ/amx+Yn10bn95YGZlcW9oZ2hDWWBbPUpTMlU4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JNzA1Mi4qLEFUVlZWVVRVVVVVVFRVVFNUV1dXWFZVVVFIRklKIygovJKahKnGw7bBtJ+braCuuKWkjpuko6Cvr6qfo56drZieuaCiq6CvqpqtoZCqqaSWiZqQrrGspp+om62YmI+toqGepaKapZytmJ+opraov6+lqaSfjICOm5qgpp6SlJmalJqapaOjmairq6Okn6movqSXw6yqo6Kss7qsr6ehtLCpq5l2r36Qi5yFh326rYqYZLCMZZWtfaCPg6aVmoGsioSwhaWZpKGikISgW2xqgbNgf617e4KBsWxnbpmXjIixW320W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqiaipeQlZZ6eI2cfWRzfWGDeHOAfGFpZnBtZmVlT1VjW0FUXj1JKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdXWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjnK2mpbaooYuZoJ+ds7OpnqKfnbSYoLOoqquesK2eq5uVrqmijoibjq+sqKajqJmuk5mPqZqhnqWfmqOjpZmfoqmyqLyvpaienY98i5uVoaCZkJGam5GZl6ieoZioraelpaOlqbufoManpamiq7S2ra6noL2ura2WgamSo6+Om4CGpJeYj4GAuMO6g46ck4Wnl5yCrIqCr4imm5qlqpF+1b3CqmKjv718fqOCg9e6uLWFlJODnr2+hGqjgW+rhG6df3qysceDaquwva14d6K+u3SAlY2mnI+akJWceYGQmnlifXpjjGd4gXtga2VramJQYltTalxAVGFCTSk8OjQvHh8kHiUyIB0kKDA0OTY2Nzg7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM/PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbS0sb+5sr2zop2upqWzpp2MmKW/qrexqKG/pqaxm56xnLmonq2vpaeVlK+sl4yDmpGvpqOsoaWcqqGYi6OSpp6nnJqhqKKZnqCrram5rqikm5eTe4eZkaabk4+RmJiPmJOpmZ+Yqaigqqaho6u7nqnFo6Cvo6uztauwqqG8qLCwmnR1qqS3hmWJn3BnrI+Kj21vd6SQmZ+Bda6ZlXCQjHGVp6ObmK6kcm1tbWWKd25tgplxgHlpcWlniZaVmHFoaYWGZ3CGZF6JY2pwWV1nfnemYGJxjpJvZmSAjZKOopeXmJCVnnyHjpR1ZYZ3aIxqeH55ZGxjZmxiS2RYSmtZOlBlRVEnSzkrIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJSts6q6ubKzqqmirp6ksqmYkr2xw8i9tamewKuso6Cmq5+6o6StrKymjpatqo+MhZWXrZ+lqqKfo6OgkYylk6eZqJmWo6qglpylpaevuqusmpuTknuEl42ll42RkJiUjZiVp5Sel6iimrCmnqKtuqCxwqiktKassbKrrqyouaSvuJaKoailtp2JlqKYhqmakJSdk6qzmZuiq6CylqKgnqCinKCkoZWrpoySk4yHkpyclJCZk5iQjpWGgaSal5WNi5OSio+GhH5ni4B0g3Z0iIxxp218lZGUk4GBj4+Pjp2UoJWXlaCCh5OMcGiPdm+Kd3Z8emlsZGRvY1VgWUBpWkdiYE5ZKkU9KyYiNzQwLh8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbivrqKwpK2foLWxkY6rxbzEureqoaWdm6adsKijtqedqbSmp5GYrKOLiImPnKeWrKShmqeenpOVo5epmqiZlKehpJCap5mhtbqoq5iakI18gZSMoZSKlJGVkI+Tl6WPnpmon5y2o52nrbiosMKuo7inr6+wraqqtLqir72Zkqajprajkp2mno2pn42Sn6Osr5qhorCor5ekoJykqp6dnZyXq5ySmaGbk5CWqpmNmJiWkJaekYignZWUhZKMkIyUi4F+ZoyHdYd2eYiDc5xqh5GUlJGKfYyWkpKYk6GSnJWgg4aXhnlxlXJ4iX9xe35qbmRfcGlgW2BZbWJQYGRQWjpHRkU9Mz09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZcXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlaSno7CzrK6jqaetoKi1qpCPnKWzuq6rq6GimXqdorCkpbGplpu4pqOUmamcjoaKiZuikK6epJaooKGSl5mbrouqlo+omaiMmKiPnrm2pKWYm42JeYGTjJqTipWRlJCNkpaijJ2eqJ6fuKR/hLC2o7GwdKS/pLKgeHqgq7O8lXaupJ+KgKp+ZFxidp+OpJ2Dl35uk7Oco6etq6JlnqCTc3mZlnCAmKiXbH+ip4llnKWbkJeYlouRm5GFnZqQlYKSh46OkomFeGuQh3aHcXyGgYBhaYiLlZOLW3aVkWdoj45yeqSYmGV4mIaBd5dpg4mCbnl/a3BlX3Vva2toXGZjYmJvUls+TU5OUkc9QFRCOTEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTFRVVVlcX2hmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJWmo6GwsayrqaWpraOnraSSlqu1r7Glmqqmq5dzi5yvn6irp5OWuKCgj5yjnZF+iIiano2rmqOVp6KejpeSnoV1rY+IppqokZajiJu6tKigmZiLiXV2k46Wk4qTkZCUjI+ToI6an6aZnLKWgIyctZ61jZKPvaihfqeieqOvuIGOjqefhIuFj7Gpr4yJlqKaeYGLrIacnaKnqaiHlYaYd6WbeoebgZemgoF7nLF6ioWfl5mUmJaBkJaWhJmaY3mHkISOj5KLg25xkIh6gXGAgYZ/hnSHhZaSeJZok3SgmnR8mYOfm4aYfpGJgYKYao2MhGp4e3FwZ2R3bmlsaltlamllclteSFNMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj5ARElASUVKS0dSWFpYW2FhaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZSuxr2woZanqLWej4Ocq5ynoqCNkL6emY2fmqCQfYWOmZeIq52ilaChko2UiYaAkaeNhqKco5OWnYafubKnnZqTj4VwdZCKlZCKlI+Pm4uPkZ+Rlp+klp6siJ+0ibSarovKh6uuibeFjbCDsa+EqY2nmI2dfKiPcnt3m46mlmiVpHm0i5+epqiSmcKBf6uImKFxnoCapH2XhZWxgaF8oJOfj5iXgI6Tm4mYkot8hZOGjZWTiYNtc5GGgHtyhoGFfYV0hYKXgY/FZoCph4+iap6Cn5iBmYCKi4OImG+NkoRnd3R7dmdodXBnZ2teYm5sZmxYaEdcUUwyRTQ2TWBjNiY0PERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWV1jZmhnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5saqrppqUoKOkqqKWpam2o69/oKecpZ6diZS9mZONoJGdkHmDlpaRh6uZm5qaoYWPjHebnI+fkIiepJuVmJeGoritpZmbjY1/Ym2Qi5OQjY+MjJeLkJGfj5OfoZmhqH6hp4etnqCWro+fnZ2RhoGgjauvh6SNqpqMmn6jdoCYk2uBq3VNq3iHjZ2Rm6ingaqrfYOhe3qnaZ5/kmtnl4aXtoiefW1gY1iDl3+Me2Rni3OZfXmWbF18l25fU3GEXGBseYNgWWWCfYSBmHGnqmuDo25ypXCfg51nZJ9sWmyIemVZX4J+YVdQb3ZlbnRyampvXmpvbGtoV2lPXVdFOUE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9idmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKitryrrqKZl6ChpaysoJ2utaOokaCfoKacmY6YtJmQi56MlYt1gZSRjYqmlpWXnp5+k4WGrKSHm5CKmKiXmZqRh6WwpqKVmYiJgGluiIeLjo6Ji42Si5CSooyTnqCcoqV/k4GPo6GUoHeclpCng6GngIaqroWleYt9hJp9onBzk4eWe56MeW2Hm4yZkJuomo+HnXyConN2pmaefnekX5h6fJJzom6Yt7S6dJKHgYC2qGSBxrh7cJW3jHGAm6Rjc6yrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN+o16dmbOWb3uXnrN0cluesoJpYm90dXFobllrbHNyZVxpXmJLRD1ENVFBWXEyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWlhgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mayck6COpbi1rq2gm6Kco6OlrZuasa2sk5egmKCkmpqUnqubi4iSeIuFcICWjYqPoJCTlJyWfZGJjqihh5iPipGik5uajIuoqKSej5aHhH5re4Z+fY+Ng4uQkImPlKCClp2gnaCfi4l3nJiijKByoouIqYicp5GXqKt/rox9eqCZeqOTeIBzl4iMnH2Wn4abjZmbpoajZKF8iZaQm41snmiajW6amXp/iqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z1iYp/nmiadYeTkpiOf55umZBrpplcqH53u2p9qVqOhF2zZ1xucXl3amhbcGp5eWJfZlhiQVBFTjdWQlJtNEpaWl9OWkRAMTUxOzs3SD86Q0dUP1lSWV0+RGJdVmBRYWR9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCsnaacnKefnq6anbCoq52Xopmhn5mWlqCjmYaJjWmIgHF7l4iLlpaEkpWXjnmKhJajnYmUj4WLnZGcm4mPqKOgmouRioCAaYGGeH+WjHuIjY6Hj5aaf5Oin6Cik5hyaJ+KoI+McJKMgqmImZ+jqaCofbCtpKK4l3ajs6Kjf4iUeJ16q5p+oo6dm5eIl3KhfIWNr7V9a5qRoXh+mLSjo6uohJh7mnycmX5zqlpdb3uXi3ieYk1/e3uFY3qXQk2fWaJqcnyObYGJhJl1m3mHibGzf3+akqZ0f51tcXyUb5lyaaNdlXZIZWNgc3B9fW1kX2tpd3xkZGFSXlZdVFZAWUVRZ0RSV1tiWF9JRD1COEBCOklFOExEV0FWUVtWREZhXFpgS2BtfnJFQzxVX2JaZWpWZ2hsbmJmZl5hYVxdXmFoYl9lZHZsXmVnZmxkZWxoaGtpk52Bsa6ZhFNfoae0urOzqZqii5upnJypk6GrpKGoj56dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGTlYdygImSoJxykZCAiJiUn5qEjqicmpWKi4p8g2yFhXGBoYx4hY2Ih5KZlXySpKCfo4iuhn21hI+enXumlnqpgpadkIuhnn2naHdtfplzoHNxfJ2FmG+Tgq59o4OmnpqBo3BeqWd1o2NvpWGc05B8epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKovH93g21/v6aqtF6bb35xl2+Bc6JyXaNndKZhaKZtm9OYe4Obbnd5l2ubenaXcmyppWdfZXlwf4RqZmZjbnZ4aGBjU1tlUVFiSVdJVF9XU1tlalxlUUVDS0xKS0JKRDhQP1BNV1NYT1JRYGVlaVJkeHl3SUZFY11kWWhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJibf7CsVFxLfqmwsrWws6OcmIWYpqCgo42kqKCYqYmZl5iTmZOSoJeOh4V7cH2EaH2Pg5OagXeRjY6JcH+Gj5OSbJeTfIiQkaOVg46qmpSSioWJeYN2h4BugZ+Gd4CShoiZopd5k6Kkmp+Js6Gitot6rKekrqVwqYCakIWBnJJ9pICimYaYcp6EoqyuiZeLgIykjZaDrqKUdrW2tcmhc5SKgJ9hnpepbXmVh5+adaGHd6B9kJaKgW9MZqKScJqIc6R7eXRhg4JsfqBscmRgnHJ/dJdpe2mztbTGpnOYfnudapubq3WCmm10d5dpmnl0mHFQRXyzXmp2a3iHZmpnYnR1cW5WXlRZaFBSaElVTFhSVl1na25WZ1dNSkFKTUpISk5BUUpQZWNpbWV0cnN+eHtudYl7e1RQT21daFtraVJqaGlsZ2xmY2VfXFxcXmliZGhre19dZGdjamZvbGVpbGWinImvp4VmP5Shs6uvr7WiopCAl6iioqSMpaednKWCmZeWjZeQkJuSjoiDeWp5hmWDjH6WoHl1j4iMgWmEhZKDjIWdjXqMipSlkoOXqZeMkYuAiXqAfYp4cJChhnmBlYeJlqCWf5SlqJyWloRnbnicbKJkfHGld5yYcGengZeMe6V6oJaDl3KfdoCJlJaPuW6QiqJifZmilYhucmmranWgbG6mYJtpi5BoloealXWigH2aX4uFjHVviGJooWWef2mbdXBkZoiCbnKiWl9bZKFuXomMb3t/c3JkpW54omRnp2iYc4uYbqFvU4iPb6BeZKdUi11TmG1tc2txgW1waGt4c2tvUlhXV2ZZU21JWE9cSFhpaHNqWWtWUVJFVlxMWFJhVWhqXnd1enxwfHxygnt/cnaNgIR2XlFzYWdicGdQamhoa2xuZ2RnX11eXWBrYmppdnVdXGNoY2pqc2xma21jnaWYpnpldG2Lp66lqrCxpp+LgJaqnJ6ljKKhmqKigJWYk42aj4uXkI6Ke4dxgIhoi4t8l5pzdIp9kHtlg4eVioqVmYJ8iIWWpo+BoqyQhZCKgYp9gICPc2mPpYR9hpSNiJigjoiSqqeeiaZ4lpx+pYmWjLKYnpCDr5efpXiWiHqpdKWPhJpupaKMkoSMg7xufKWvgoaFhpOWnKB8pXpxqJSglmeefm+sY5aKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm5tn56SlWF/q4uqdoB/jaefd599haSVnaBpmod2rGeerYy2c3e+jKSTWYOmjathdXJzb3t0cWJqfm5obFNWW1VhYV1rTV1SXUldbG12YFtxWVtgWmdzZW5vcmNxdGB3e355cnmDc4N+gXt7jIGCgHZieGRjbnNkUmxnaG9scmlmaWFfXlxia2JsbHpvXFxiaWJsandtZ2xuYpWmqpyBgJ6klqmqnqinrqOZiYKXqpmepImapZ2pnYSLmo+FnJGFko2MjXSGeoiDb42EfZaTdHSGcpKCbX+MkoeGlI99e4GEl6SNf6WljoGNiYSUdYKHkm9siqiAgouUjomcn4mNk6ujoJCAdZWXiH6BeZSuo3+Bm3GPhniQjIWAe3KnjHF9fXqXlpuEjnh7fn2IlJWTinaQmZ+gg3p9iWyMhVt5eXJ5cWhufpKJcX90gY+Uk3GFg4FljX9fgYCMd3VzlHVvem9uh22Ehl93aXiOZoGCho6qnH50fZdqiYhvgHZ8hXZtbGeMc3h7l3eEW2pYeI9obXdycW93eG9dbIZuaWdWWmBXXGRrZFVhVV5RX3B3eWtqdmVqamp1fHFydHNhb3Vic3uBeHV5gnV/gH+AeIuFg317bX9sZHluXlduZ2h1a3hqaWlkXGBaY2plbHB1blpbYmtkbGx5bWhsb2GOlbmopouhopqmpJmknauioIODl6uRnaCJmqaaqJiCgZuLfpaUh46JiI1ygnyPfX6PhHqXjnRyg3CVhXt9kouGhpCFeH6AhpiijHunoYuFj4+ElYKGjpd3coSphY2SnJCInp6IjJuooKCrg4mOlZp+fomWraiPkqeQeHCekYN7k29+qYVwfZVxam98gZ+Lf5KOjGhtXYOLjJybno5zlYuIcXRrgnZzgFlyboaQgX1+i2ldaWN6hYOIgF9peHubfIOMg3aBhoNpeYuHa2Fxc4N3YHOMgomQp5WGZo2Pg252i4NwhY15b2VmY3mCepVaXGlmbnZbenl3dG1zcoJmXG2Ka2xiWVleWllrcVteYFleXWZzfXtzb3Nja2tpe3xxe3d0ZG10aGx8fnV5fHt6eX+Af2+GioR7fXN+eXN/aVRccWlsdW91Z2tnZF1hWGtoa2pxcm1XW2VubGdzem9oam1gjIyqsKGQo6Gan56Ynpmpo6F9g5erjJ+Uh5uikKWVf3uXhHySmYiIhoaKcn2Ai3aFi4GElopxb4BymIaEfpKEg4aKgXqAg4qano+CpqCHeI6XiJWLi52XhIN6rIGQl5mUip6dh4ihq6CioqOMiJObnKOZlqqhp6agkpuIl498eY+OhKh+f5KRkpOcsKWalJ2QjbKTmISmjIyVm5+JkJuCiZGKa3yOdndlgoaQinyJnYSHi4+HiICEg5B3fHp1mqKJh4ufi4aVf36MgYB2cXSGhYB4iIeKkaaRhIaOiIONkIx8h4qJj4F2a4GDe3mZaXJoYHOKcH16d3Zvd3SBXV5vh2huX19aXF1TZ3FVY1tbYWxodHt8cm5wZGtqaH97bXh/cWlvcGxmgXtygYB3gH1/hHptgoyGfHp4fH56g3hOZHZrc21wemRrZWJiYFt0ZnBmcnFsVV1sdG1oeXpxZ2lrZY2InbqflqKhmJWZmJSYpKCde3+Zqo2ejYWfnIqelnx5lIJ7jpmJhoSEhm14gYBygId+iJOEbWt+eZeGhIOQfoCGhIZ9h4ONmpySh6qeg3KKj4WSkoudkX2NeqmDjZKXlY6cloaGm6egopqdhoOSmpmZkJqmoKadnZCXgZKLd32IjoWle3yPkJGGmKqhnZOcj42qjpKAnoyJk5qego6XfoeOgm94hXF0YH+Dj4Z0i5eAg4+ChoR+hYSUbnl1dZOii42Gm4WFjnSAin19cnN7iYR7eYyOhJOnj4aEj4KDioqKdoWHiIt8bmt9f3ttaGtsZ155fmd8e3Z0dXV7d1xgcH1udWBjWlxeUWZtU2VaXWFraXZ5fnBrbGRraWeAgGxzgGxsdG94boR5boaAdoKAfYV2cYKNiH57enx/e4KKYGl7a3VoaYJkamNgaVtjdWhvYnVtbFRicXllcHp6cmVqbW2Lip+4mqGkn5OSlpeLmp+enXp3naWQm4mGpJSLmJl5eo2FfImRg4yCgYJte394coCFfYqQfGtofICXiIGIjnx+hoSHfI+Bj5qbkYinnH9wi4qLkoegoYqFjHynkYePkpeTlpJ3jaOhoZ6Wmn+BkJqZk4ybo6GkmpeRm3+OhXmAhI+HoYB+jI2PfJekoKCSmZCPpo2QgpuRiZKXm36Skn6HjoF1dIJwdmB9gI2FcYqVfIiMco1+goWFjmh4cnmMmZKQgJh+iItygod8fXF6fIyFenuSjYOWpZOLhpF8hYaHhXWCg4iIemVxen95enBsamZefXJofHV1c3xygGpeYHR2cHhkY1leXlJraFRkWF5hZ2p2eIFxZmtjbGhlf4BqbX5ob3FrfXeGemuLgXKBgX2BdHaCjYZ+fHp/gX1/j2pyg25zaWGHaGxiX3FVdG9tbmB4aG1XanR2YnV6e3Fiam96iY2fspKlpZ2OkJiPhp2gmpx8daOgjZZ/jKKKiJqWeHuGh36DiX6IgoB/cH97dHWChX6JkHhnY3yFl4qCio14fYCMg3mWgJWXlYyWoJp9b4uBkJOGppuHjImDpZWEkoqVl5KRdpGeoaGYlJh6f46Yl46Wm52knpmTlJx6kIaDeIWXjZ5+gYqOjHOXop6hkpiOj6KMjIOWmIOSlpl+mI18iI2BdnF9bXpkgHyKhXCGk3+QgmyHgoF/iYRldW98h5OYjX2UeIyJfICHfXxygHmKh3mFkYqLmKKWgoSMd4iEg4J2e4GJhXVgd3d9dH13ZmtkYH5panZzdHR9cXxjY2FzbnVzbWFZYF5bbGRSYldfYGhrdXmGcGNqY21maHyDbGh0aGxvaH98gnhtkIZxgIKCf3R8g4yBf356goN+fJBtdYl0dG1limxqYWN1VoNpcW5geGZsYmp2cGZ5e3lxYHJshoWQna6Ypqiejo2Xh4agk5eYfHepnIqYeZeci4uYkHl8gIt9fIN7gIKAeHN4enN9gIR/iIuAZF58ipWHfoSHdH1+in99mISWk5aMo6GXfnKHe5ORiqePjI6KkqCRg5GPlJeRioGPmKCakpCSdICNkpSJnZ2ep5iYjZWXdI6PimyGmJCZeoeIkIlvl52ao5OVio2fjIaCkpx/kpKVhpmIe4qJgXpxeWp1bHt+i35thZGClHdwgoN9fouAZHJqfIGXmIV/jnSRiYN5h352eIF+h4F9hI6FjZSkkHmFg3SJh32Ac3SAh4NtYXp0enF8b2FuY2R7YW5vdnJ3d3N0YnZgb2x1bm9dW15dXmpeT11XYmFobXN6iWtfamVqY2h3iG1mbGhqbWiAfHp3bpCHc4CDhH10gYaJeoJ9eoGEfX2OcnmLeXhubIdraF9pcmOHaHFvZnZnbWxhemhqfHp4cGF3bYuBmZqqoKSpnYqKkYaKnoqVl312rZiMln2ek5GWk4h3fnuKfHuAdnd/gHB0c3pvhX2BgIp+fGBcfo+Rhn+DhHN6gIZ6j5GHkZGbkqSblIF9gHyNipKkiY2KjZeajYWRmJOVjomJjJOdk5CMjW6EkI+RiZ6ZoqGXlomXkm+KmoVnhpqPlHqJhZCKcJaalKGSkoiLmYyCgJGefJKPkouZjnuKhId0c3VrcW51fIt0boaQjZFxdIB7gYKIfGVxbXl+mpR9hYl0kYuBdIl5b4F+gYd9hY2KhY2WqI17iH1+i4V3fXBvgIWDY2h3c3VwemJecGFqdF5wanp4eGxycGV5XW1sc21zWFpeX2FqWlBXWGRjZ3Fxf4dmXWloZmJncY5uZGlnZWpogHp3dG6OhXOAgYJ7dYKIhXiEfHeDhXqAiXd/i3x7cnmDamtfcGh0f2txbm1xZ29sZXtibX95dnFsd3eKf6OYoqihp5uHjIqBj52Gk5x0gKmUkYyGoIyVk5B/dHt2hXh4f3Jze4Vrcm95bYl2gICGbnFbWX6RjYiAgIB2dYB/f6CGj4qRnJegk5d3iX6AjIicnoqPhpKXlYSIlJmPlouLjY6NnYqOkIRuiYuPkYqclqGbmJWFmIhrhqSDZ4adipF/i4SLgXeTmJGekZCIiZWOf36Pl3yRjY+NmpJ8in+Cb3Zva21vcHuFaXODjpeKcXeAdIKIgnlmdG92gpqPfImFepWSeneJdHCJfIeNe4uHhImPnKOIfIR3gouAeHhuaoCCgF1ycnFwcHhaXnFhb2peb2l8eXBtbWptdmBwb2tybVlYYWFiblhRU1llZmN1cISCYl1rbWRiZmuSbWBnZl9oa4F1cnJwi4B0f4KAeHaAi4B5hX93h4Z2g4V8h4yAe3aKf2pxY3xihnxvcGx0amhvbHZ3X3F+eXt0dXSAgn+llZqtn6eWhY2Df5eVg4+fdYqfk5KFipqMlY2LenJ4dIJwcoVzcXWIbG9tdW2Id4N9f21uVVGBq5SHgniAdnKCeYKggZGBk5KXm5GaeJF6g4ySpJqTjomVmJKEhpaZjJOLiY+PiJ6FkIp8c4uFiI+InJmfm5aUgJR/aYadiGiHoYiShJGDiXGDkZePmo2PjIuPjXd7kpB6jouMkZaMfIh8gGt2am1ra2x6fmF5fo6VgXZ6gXeDjHx5Z3RsdIeWjH+IhnuUkXF6hXB4jXuLjXuJfoONkZ6ehXx9eIKLfXZwaWuBgnhfd29ta3FyVV5wYnFgX21ueXBncGZnc3VocGthd2VdVmVgYHJTUE5cZWRdeHCIfF9caHJiYmVmkmpfaGRbZ3B+cGtxc4p9dnyFgHR1f4x5e4WAeIiDc4aFfoyMg3t5lXdmcmqDYId+b29remBqbXR/dF90fXiGeHRzhXx5oZCasZymjoOKf4OaiICLnn+KmZOOhIiXjY6OhHZ0dnOAcG+Fc3Bxg29qaXZtgm59fG11c1JOgt/JktaTfHB0g3WDn4KSd5SQmJuPmHuTcoaQn6GTk5CKkpuUhn6WlYiNjYiRjYicgI6BeHqMfoiMipybnZuVk3mNd2iKkohsiaSFkoiXg4ZjjJGYjpSKloyNiotxe5SJe46IipKRiXmFe35se2Vyb2preXlbgHmPjoB6fn5/ho56emhza3OKj4mBhYV9loxsfn9vgY1/jYh+hHuDkJaam4t8d3iDkHlzbWZwf4NsaHRvZ2hzbFNeb2VwWV9rcXhma2piZnhzb3BjX3dgYFZrX152UE5MYGZjXXlxiXRcW2V2YGFlZY5jYWZhWGlzc25rcXaLfHR6hoF1dn6Lc3+Gf3uJf3KJh4GRioh8fph1ZXNufGWIf29wbIBabG55eXNgdnp7jXZyd4p3eZ+Mm6+boJCChXeIlX99iZyHhZ+RjoWMl4STjoeBdXdweXFuhG9tbn5yZGR4cHxten1qaGxjpJrB3K7voXNrdYN1hKGFkW6Vj5SflJuBkXGGi6OXiY6VipCdloOAlZCFiY+AkoqKl3+He3V/iXiGhI2bmpiZjpB2i3dvh4qMfoukhZKJnYWFXouUl4qOiY6LioSJbHuXgn2IhYmQj4Z2hX19a31jeHVpbXhzV4h6kYaFen5/gIWMfnllc2p/iY6JgoOAjJeGbIJ2bomRg5GFf4J6gJGWlJmQdHR4iI11dHFndXmCYXNsb2FodWZSYHFna1VebXN5YHJjX2h9cXJtWmJyYWJXblpcd01NTGNmYV52c4ptW1xkeV5gZGaEX2NjXlhqcmtua3J3i31zd4SBd3d8iHGDhH1+iHt0i4iIloaMfn6Xcmd1cXltjHtvdHCBWHF6dnlxZHd5hoxpdoCJcoCdiJmonKOShH1wjJR4eYudhIWhjY58lYx/mYeEe3N3cHNqb4FraWx8dF5geHZ7cHV7Z2BlfOvatcnD3IhzbHOAdomaiI1pl4+OnJSSgYhxhomgjoSLlYqNmJR8jZOIg4mPe5GLhpCCf3Z4g4Ryh4KSm5aUmIaMdod/cYaDioeaooOUjJ6DiWGDlY6GiYaJjYeAh2l9lH99g4SJjo2CcYZ+f3F3Z3ZyaXN3a1qMfZKBhXyAg4CEioJ2YnRsiIGPioJ+gJORfW6CbHmHkIeThH2BfoGSlJGXiW5yeoyGdWxxa3J4gF9yaG5canVgUWVyaWZTX292dF9vYF1ognFyaVdnaGNpWG1XW3VMSkxlZl5icnOFaFtcZXleXmRnemFkX1xZa25lbmp0d4p+c3OBfnp2eodzhYN8f4d3doqGj5iCjYJ7knRrd3V5eZN1b3h6fVh5hXGAb2d4d5KCZHaGhXGKloWZoZuiioZzb5KLcneOnH2KmoiJe59/g5l/gXlyc25vZHJ+aWZsd3dbX3l7enFxf2lhZ2F/1baOkKZ4bnF3e3GSkIyHapiNiJuRi4Z6aIiLmYaBkpGGh5iNfI2NgYGKjXyQjH6KhXp1e4J6cYaAlZmOk5SCiXWEh3eEgIuTnZ+Glo+ffohhf5OHhIiEiY1/f4JmfZGAfn+Ci4+Qfm2CfIJ0a212dHN2dWtjjYGOf4V+fIR/hIh/cF9zcYV8j42CfH+SiXpxg2Z7hIuHjYR8hX6BlY+Rk4RucHmMf3Vtbmpren1iZ2lpWGt1WlJpcmliUGJyeGxhZV1aaoNtc2JbZ19kbF9uVFpvTkhPZmRcZ25xgGxaW2NyX1xjbHdkZV1cWmxrYm1qc3aGf3Fvf3x8dHiFeIWCfICIdXmJgZKWfImGdomBb3h5e4STb258gXdeg390gW1penOUc2dyiH1ykpGEmp+boIaHdnaUf212k5d9h5CDio2ZfIuadn53cW9samF0fGdiaXV6Wl94fHptcX5lY2hoV52PXnFylrzEhHZxlIiQfnKWi4abkoyHcmqJj5aAe5SMgYSbjHyKhn18iYx/lIh1ioZ2dn2BcXWGgZ6UhZSPg4NygIh1hXyKmZ2Yh5SOnYCIZn2Tgn+Fg4mJcoF9Zn6Le3l+f4eLjnxpgHyDdmZveHhzdnNsao2FioGKf3iCgIWDf2tecnh6fY2KhnyCj4F+coFpeYSIjIaFeYR9gZiNkIx9bm17iX13dG5oZ3x2Y1twYlduclNTbnNoYU1mdHhlYF1cWG6Ab3NZZWFeam1gcE9Za1FEU2dgWmtubXxuWltebGNaYm93ZGdcXWBsaWNsaXN2gYNxbn58f3R1g3qDgnyChXZ+iIGWkXiDinSBiHJ5eH6NkG9ufIFxaYF5en5tbHt1lWtqd4R0bJSOhp6YoJmFiG59jHZqeJiOfoGKgpWXiXmOlm96c3BsamRgc3poYGVxelphcn15Z3F6YWVlj7Gyd0piWqTZ0JZye5CKkHd9lIuEmZGMhW5shpORenmShoGEmIp8h394eImKhJaAcIyIcXR9eml5hYOlkISTjYN/b3+Dd4R5hpyZlIuTkJWFh3B7koJ9goOJg26Bd2iAhXhyf3+DioZ7ZX1+hHVjcHJ/aHhwb3WYjYaCinx2eICEeYFrXHF+coGIhYl+hol7iXKBbnGFh4+FhXOEeoKZjY2EeG5vfoSAd3plaGp8cF9YdlpYcGxOV3FzZ2BKbHZ0YF1bW1l0fXJvV2ddZmpwYG9OV2hRP1lmXlpva2d5cVpaWWtlWWNxeV9oXF5lbWhla2lxd3+Hb2x/foB1b4J7gIF+g392gYWIl4pxgo1xe4Z8eXmEk4x1anp/bG9+dH99b3J7e5RvboF/eGaTi4OhmZySgoZnh4NwaHqViH1+hIGYiYF8jYxpeHJrbGZfYW54bV9ib3hcZGyDemFxdl9lZdTqvooyOj6LjoBxeIWIjo12g5aMfpKNjH9tbIWNjHZ9j3+FgpWIfIJ4bnaHhIOXd2+IhWt1e3RmeYKDp4uCj4uEfW6AdHaEeoedkYyQkpOMioZ+e5KGd3+EjYNsf3JogH54bXx7gYqDd2J5hIFxZHFofm10cXSBm4uAf4V+c3V9gHOBcFttf3V5i4OLe4eAfIh4enFsiYSQhItygnqAl4uLf3Rua3eAgHV1XGlod3BYVntTWnBkTFtycmVbSXB4b1xaWllddX50aFliW2dlbmNpTFdmUT1eZVxddWVfdHBaWVRvZFlkcXlaaF5gZ21naWxpcHd9jmxpgoR+eW6AfHyBf4J6dYKAjZOFcICLbnd+gHt7iJKJf2h7fmp0e3KGe3N3fX+MeXiEfXxrjI2Em52WjIGAbI5+a2h+jYx6fn+DlIF+fYqIa3VxZ2hjW2Jncm5gYWxzYWhwiXpic3ReY2SboI9uXDVZr7V0aYCIfJKGdYWWhXOPiol2cGyFg4d1eYl4iXyTh3p+c2d2iX5+mG9xhn5odnltZXmIhKSHgIeNiX5ufnV/gX2MmYiClJKZiIqEiXyPiHB7fYR7aH5saoB7eml6doKHgHJgd4F+cWRyZnWCbXV7hJSRgXyBf253eXx0f21Yb4B3dYyChniIdoKJenhzboqBkIGGc399f5OJiHpubmpugoJ1bl1nZXNxUVp6TlxvXE9cc3BkVUtzeGlXWVlaYXGAdGBdXWBmZGhpZk5aaE5AYWRbYHVhXHRtWFdTdGFaZG9yV2peYmhrZ21saXB3fJJsaYSJfHxwfn57gX+CeneAf4qLg3F7h29xd4R/e4mNj4Nqfntud3l3ind9eICCh3+Dfn56bYWMiJijjYSDe3aMeWtshIiQeH17gZF/f36Kg3BycGNmXllnX29wYGBncGZqb4l0YXRvW2FkanZ7f76cpqPIuHGFg3KSfHiGk4JzkYyHcnJvg3uDdHWHdIh3k4h5eXFjd4d6gJNpcoR2Znd1Y2p8g4eegX9/jo99cn9zhHmAkpGDeJaOlY6Hgoh7iIhreHl+dWd6aGx/eXNpenaAg31oYHeHfWprdGd7gGl2gIuQlH56fX5we3Z7dH5iVnd+c3OKhIJ9g3GHind4cXCEgo1/fnl+fXaOhoN2aXFpbYiCcnBdaGJybkpkdUxeblVUWnNuYlFPc3hgUlhYXGFvgnNbYVxoZWVja2RRW3BJRGNhWmNwXl13aFVWVXdeW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHh9cnt+eYKBgXx2fYOIhoNwd4NybneDgn2Ji5N/cIB8eHl6gYx0g3h/gYGChHqAdW9+ioubnoh9hXp3h3tndIWLkHp+f3uIhYR2j4Bnb25fZFxYZVltcmBgYHBsa2iJbmBzaVleZG2Ad6naqceGh7JxiXdvjHV7ho6AepOJf3V0dH53gHBxf22EdJSFeHRrYHqCeYiPZnGDb2d2blttfYCQlH+BeZKTfnl7bId2gZGMhHSWipGNhoWFe3+EbHV2f21ndmVte3Vtand2f398YGJ4hXlodHVifXtndIaOjZV7dIB1cX96fG1/WVZ0fnB1hYd/gXlsiYZ0eWx1gIOEfnt9eXtzi4F8c2d0ZW6LhG1zW2pfdWRIbm5MWmFXVlZ4bWJQUnR2V1BVWF5hcYRvXGBjbWRkXm9iVF1yR0JmX11maF1aemJRVVx1W1tna2FWal9gbmVma3FocHV4jnRrjo11fnZ4fXeBg4F7c32DiIeDb3F/dHF1f4WBiY2Ke3d/eIN8fIaHeId8fYF+hIB7fnN2eYyOoI2Jeol2dYN5Xn2FmIx5hoN0hYaEd4l7Ym5tXGJbW2FWanNjYFtnbm9mh3FhcWZXXGNrf3zKzoe5oWptbYpscYRxfISJfnuRhXl5c3l1dXtqbHVjhHWSgXZvZl59gnqLiWVygmtqcWNYbXqGm4iCgnSYlXh/fG2IcYKKjIhymI6Qh4SLg3t4fXFxcH1maHFibXhxamtxeH18elxkeYB3aXV4ZoF2Z3SHi46VfHGHam59gXlufF1Ycn9tdIGLfIJvb4p/cXZod3+BgIF3fXF7dYd8enJmc2FujIJsclhrX3dbSW5rTVVUXlRVe2thT1R1clBRVFZeYnSFaVxga2pmY1luYVhicEdBaFxgZl9dVXtdT1VkcFpbamhdV2hgX3JlamhyZ3Byd4Z4bpWKdH96d354g4d/dXJ/hoWNgnBwe3h3dXqGhYaMhXp8f3WLfn2GhISHf35+fYd/fHh2eXiRk6B/jH2LbXaAeWODhpaFc5GKb4WFgXqDdGNua1pfW11dVGdzZWBZZHJyZoFzYmtlV1tgaX94vq57oLdtYnOGaHN7cXmChXt9jH93eHJ2b3t2ZWpuYId1joByaWJef3h5i4RmcX5oamtaVm93iqOBhH9ym5RygXl0gm6BgpKIdJWIjIeDiIV9eHRybmh5YGptYG12amdqa3l3endbZ318eGVyfW2EdGV1hY2Gln9vi2ZqeoN1bXRiXG98a3V9jHyBZnWHfW5xaHV/eH5/c31se3uBenhwZmxibol+bW1Wa2B3VUpqa09RTmhNWXxoYk5VdWpMUFRVXmZ1g2ZdYHBoZ2FXaV1ba2hKRGpaYWRXWVV5WU5WbWpZXWxlXFplY150ZWxkcWdyb3WBeHCZhXZ/fnd/fIWHfXVzgoiAlYJuc3l7enNzhYaIiIN4gX12j398hIqOhIKEe36Lg3t3fHd3mp2XeoqChml3fXxsg4STgHKPgnCFgn6Bf29mbGdYXVtcW1RkcGRfV2JydWl1b2VlYldcXGh/cG9ygHOJZGR4fml0dXNygoR4gIR5d3R1bmt6cWJna2eGdI2DbWZeX31we4l+aW13ZmlkVVdyb42nfIR8dpeRdHxzfHpufHuRhXeZfYeFgoaDfXRwcmxndFxsaF5sdGRnZml6b3tyWWeAdnRncIB3gXVid4WKfJSAbotqbXqBcWZzZWBtemdzeIp8fmJ2g3Zqa3F0e3F6eXR9Zn5/f3l3bmRmYm6GfG1rVmpicFNLaWpPS05wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWVgVmNXYnBdTEtrWGNiVVVVc1ZMWHVkWl9rYVxaY2Vfd2ZtYnBpc25yf3R0moF3f4B3f3+GhHp8dYKEfpeFbnJ0fHp0cYSFj4GAeYt1dJF/fIGVjoCFhH1+jIZ7foB2e6OlinmIhoRrdXx7dYOCjHpvhXN5hH2Bg3VuamhlVl1bWlpTYm5kW1hhcnppaGxoX2JXX1tqgGlrb4Bna2BoeXhqc3R0boSBen99dXVuemhqeWpfZW5ogXaPg2ZlWGJ3aX6He29pb2dmXVVYb2iPqXeBenyQjnl1cH9wcnV5jn94lXWGgn+Fh3VqcnZnaG5bbGRdbXNfZ2FqeGh7bVptgnJzam+Afnl3YXeEhHePhHKIcW95f3JjcWlccHhkcXSIfHhic4BwZ2p4c3JseHd1eGSDe394dnBkY2NufH1rbFVpYmZTS2xoT0dSa0VheGdhTVNxXEpNVFlla3d7ZV5tcWlkXVZgVm5uV0tTaFdmXlhOVWxUSlx5X1tfa11dW2NlYHpobGFvb3Vub3h1eph9d4CBeoCAh4V6eXqDfoGThHF0dH95dnSEiJB9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSsn396iIiDa3KCenaBf4F1boZufH9ziYBqb21kZFhfWllaVWJqZ1taXnSBaV5ta1xhVlxcbIFlcXR9aWlca3Z2Z3R3cm2Fe319eXVybHloaXhmXWRzaHp3koBiYlRlcGeChXd3ZmhqYFdWWWdjj6hvfneAi456cHF+aHhveYx7d49yhH1+f4ZuZHZzZGhoXGtiXW9vW2dfbXVkemhddIBvcWtxe311dWF0hYp6h4eAf3dydX91YXBtWnJ0YnFyhXx1ZXKAbGFsem9qaXt5dnJmhXZ7enVxZWFlbXN+aWxUaV5dVEtzY1BHVmFHYnZnYUtUb1dKTFdYZ2t2emRlbnFmY1pXXVl2ZVVKXGNXaFhZSVdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bm9udoOXeXKBgHx/iIuFfXV1hnmHjH1zdXWCeXp6gouOfX6EiWlzloF6ip19foV6gXp/fIaIc3GProx7e4ePfWVyiHp0fXx2cm+FbHt+bI96YnBvYmVdZVZZWVZjZmtgXVxyhGhYb21aXldaXGx7YnB3dm1iWmxzc2d1dXBshHl+gHl3bm50ZWl0ZVtndWZ2dpF5Xl1SZmZrg4J0fWJjaVxUWF1iY5ClaHh0goWQeG1vemh4bXuEe3WJc4B4fHh/aGV2bWBmYF5qX11za1llXW9vYnplW3d7a25ub3d4c3RkcoOSfoeCiHp2b3J9c2J4ZFtvcWJxcYJ8c2dygGRebnZpZGd5e3Vub4J1dH1zcWJfZm5vfWRqU2hYWVRNd19RSllYSGJ1ZGFJVG1TSkxaV2lscXtibGxzY2FZWVthdltTTGNdWGlTV0hZYU5HaXVYXmFtW1tfYmJdhWhoYW54eWxvanaBkHhtgn6AgZKHg4F2dIl0jIZzcXd1gnd8fX6Mj4B+k35wd5WDfJmSeYCAeHl+f3SIg3NwmaJ7en+JlHhkdYh5c3h1bHRvfmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYllU3FtWlpYWGBsdmNpdWppXlltc3Fsc3NzaoV8fn98dm5ubGRpcWNbanJkdHaOc1tXU2VhcoB/coJdYmNdU1pgW2OSn2VycYWEkXRsa3ptb3B7fHxxgXd/cnp5eWRldWhdYlpgZ1tedmhXYl1waGF3YFt7dmlpcm53c3J0aHCBlIKGfoR2cmpwfW1md1dca25icXOBenNnb35bYG9xYl9qcX5sbHV+c3F4a3BhXGVsbHphZ1NnVVdSUHVbUlBZUkhjdGJgR1VqUElQWlVra2t8ZW1vcWFbWlhZbHBXU09mV1dpU1RGWlxPSHJ1WF9jbWNYYGBhXYtqY2RteXhrb2l1eYZ7a4N9f4SZfIKEeX2Ibo+GcW93en10goJ8io6Cgpd0d4KThYGfiXWAgIFzf4Jxh4J1b6KXdHuGi4Z7ZXiLb257b2Z4cHpsc3ZyjGtedG5hZ2VrUl1bVWdhbGxaXHCMZE9ubVxWWFVnanRnYnRlZV1ZbnRucHV1eWuHfH98iHaPc2Rka25hXG5tY3N4h2taVFZjZHh9fXGFXGNfY1RaYFljlZVjbnCDhYpzamh7b2Zzd3N8bHp0dW95fnVeZnJjW15WYWRZYXRlVV9gbWRhcV1dfm9oaXNxc3B0dWpthJKBiHuFcXJmbn1wcm9UW2ZrZnF0gXdzY2x2VWJxaltfb2Z9Zm13fXNzc2ptYFpkamp3XmZUZFVWUFRtV1FXU1BIZHNfYUZYaU5IV1RWbWhkfGlreGtiV1xVW3RkU1JXaFFZZlRTSFpaUE14d1tfZWxpWWJgXl6PbmJmbHl1bm9odnZ/f2yDf32Gl3t/h4GKfmuTiHJndIB7dYCCfIiOf4uTcnyKkYWHn4Z7f4aMc4GGc32Ddm6ljHOBjYt2d216jGBlfHBmenN5bG1xdoJnZHtsY2ZnaFNfXlVnX2xvW15ujWhOaWxfVFZTb2dzbGZ4ZGRcWHB0bHJ6d3JtiHt/dpx6eWthZWxtXmBvamVweH5nWlZYYGx4fHtwg19iXmdWWF9XZJuIYmtxgYd9d2treG1cd3Fse2p2c25ve4ByWGpuX1ldVWJjWGRxYlNeYWhiYmxaYH1rZmtzdW5td3ZraIWLfoh6iG1xZXB9bXJtY1lhaWlvdIF0c19pbFNlcWRUYm5iemNxd3t2a3Bta19YYWdodFxlVmFWU05YZVJPXE9PSGVwXWNGWWlNSV9LWG1kX3hobn5kYFReVF11XFRTYGZOXWFUU0pcWVBZdXZdX2ZtaFhjYVtejnBjZ2p3cXNuZ3Z0eoNygYJ5h41+fImHjnpukIp0bHOCdH9/h4SGkYSVj3l+jI+HkZuEgHyMhHKAgXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY2Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjI2MjI2NjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCTqWvra2tra6kn6CgoKCjgGNnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTNBqba0tLS0taijpKSkpKd8XF9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJmZmZmSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaPkJCQkJCRj4+PkI+Pj4uIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk5CKkYyOj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyLi4yMjIyMjIyMjIyMjI2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoeKioaNhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCPhouLho6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+JiI2GjImJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aIh4aIhomPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2Ki4yJjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2hoZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUVAPjo7Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OjY4Ozw+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1c3F0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5ODk6Tj84Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GBgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09Pj49O0Z5Xzs9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEtJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NERD8+PT1ASUhDWHlvQz5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZFTkA6QGV+fnhyd28+OTw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE5MPkE8PD0/PkJDPz9BQUFCQE17ZkBrh4SEg4J6cD85ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkM/VXV5cYGBgoJ8hIByQj09Pz09PkNEPzs8PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUBVdXSBf3yDg3yFhWhBQUBDQEA/QEA+PTw9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQExzc39/fYOFhoaHXz5DQ0VAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTUpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWZ3gYOEhYaHh4mES0RFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHWHSChIaEgoWIiI1jQEJVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExKW4SGh4OBg4aIiX1XbISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEllh4eGgYOFgIGCg4SFhYSEhYaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSmyHhoOAg4SAgYODg4SFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT48PD1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaYWBgH6AgoSEhIODhIaJiouMi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0V2hX+AgYODg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo6Ojw4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2tycnR0dXd5e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I5SIKDgIOEhYSEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDk7PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7PzxXhoOCg4WGhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPz9BPT48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQmCHg4OFhoWFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZFRkZEQEI/PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFARERFY4iDg4WFhoaGiImJiIeGhoaHiYqKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkNISEpghoKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExNS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw7PD06P0A+QEBDRkpKUGiDg4WEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEdFSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QEVJS01Wc4OEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4teUVFQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBSExNUVd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVVJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0ZWTkZPUVFVWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOzpRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hJSEVGSUhJSElqcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f4CAgICAf39/gIB/f39+flRISklJR0dGRT8/QUFFQkNHRURFTFhSTVRWVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A+QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFlnUlVWWFVUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWVhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH+AgICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWFNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUk1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSVFVaXG1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/gH9/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlQSEZPRkRFRkhHSEJDSEdISkdDQkFEQE9QTVJkc3V2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojs+QD8/Pz5rUUthRUZISUVCP0dMTkdNUVVJQkU/Pjw9PD09Pz0/QUNCPz48PUI+Sk1GVW51dXVzdHZ4e3x6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFEQlxdT3tOT09OS0xNT09RTUtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztBSD9cdHV1dnV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZETVJQYVdSWFFQU1NSVVtPT1FWUE1KQ0Y+Ojo2NDg2OTc5OjM2Njc5NjxCPWZ0dXZ3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMWFlaVlhYVlhZXVdXWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNRUFNaV1RUTVFTWVNcZVVPU1RSTktJSEM/QTk5ODg5Nzg4NDc1Nzg1ODhHbnN1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KT09VU1RcVlJVU1JOTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9KR09QT09NUkpPUFBQTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTElMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVCRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFQUVBRTlFPUE9MSkxMT1BOTlBRUU5RT0pMTU1LR0VFREI7PTw8OT1HNjY3NkRucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11nU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSU1MSUxLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E/PT1BQEI9PkVIR0RGRklHS0pARkFBQEZIRUpPSFFSYVxRUFJOU09PT0xMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZEP0JDPjxCRj9CP0FkcXR3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87P0FAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVFNT05XS0xNS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTktHSUZCQUJAP0VGRUhES29wd3p5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBQSEtFP0I9OTk5Oj9CPzxBQkJBRERHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUTEpJTVRGSUlKTEpLTElJTE1PUFJQS0dDTEdDQ0pKTE1PTklKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0NGSEhHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNUEdIS0ZIS0RISUtNSEpMSEhKTEtNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLQ0ZFR0RFRUZFR0NDQD48PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGREI7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1HSUxHRUZJSUxOS0pIRU9JQ0dNTE5NUE1OTk1MSUhJT1JRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUZFQkNCRUBEQj4/Pjo7Oz06PT9DQT9BQ0ZHSkdJSUxIR0dHRkVDQD1FRUI+QURDQ0VHSElHTVBJRkZHS05PS0ZISkZFRERJSUhLSUdIUEtESk1MUE5PTk9PTkpKSE1SVVRST1dkYWFtZ3Byb3N5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPUJBPkE9Ojo9Pzo+PkBCP0BCRUdKRkpHSUdGRkZFREJBQUZGQ0JCQkRFREdHSEZMUUxJT0pKTEtJR0hFRkVEQ0lISEtKSEtSTUNPT05RUE9PTk9PS0tLUFVXVlVUWGBeXWlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmtrc01GRkVIQkJBREQ8QUFAQzw4OT0+Oj89P0I/QEBERkhFSEZGR0ZGRURDRUNESUZDRkVCRUdFRUZHRUpNS0hRTUpLSEhJRUZJSEVDSUlKS01LUFNORFFTUVFSTk9NTlBNTE5TV1ZXWFZYXltdZGBoYmppZ2tfZWVnY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJGRTxAQ0JEPDc6PT47PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0NHSEZIRkVDRkpKR01KTEtJSkxGSUhLSEVLS0xNTk9SVE9JU1VUUVRQUU1OUU5NUVdaVlpZVlpeWlhhYGBgX2hlY2BkZWhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9yc3lNSEhHSURBQ0hFPEBFQ0U9ODo+Pjw8PEFCPD8+QUJGQ0VCQkhEQ0RFRkZHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMSk1LSU5MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZXF9fXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJFR0U8QEdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREdGSEhGSEhJS0pFSkhIS0hGRkxISEhKR0xMTExMSU1LTU5NT0xQUFFVVldPSlZWVVNTUlFMT1JSUVZbW11eW1xeYF9hYGJkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd292SUpMSUxHQkVERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFREZIRUlFRkVJSEZJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOT05PTE9QUlVYVk1OVFZVU1JRUE1OVFNSV1teXl9dXWBgYWFhYGJkZWJjaGJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3BzdnR1dXd2dXV0ZXFza3BxanJ2b3dKTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0ZCQ0RBQUVHQ0hHSEdGSkZDR0pHR0pGSUxISUpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZWFhY2luaGJpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0RBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NCSUVCSEpKSElLRkRLSkdISUlJS0dKSk9LTkxJTEhKTUtaZkpkXEtsUkhPTl9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENEQkVFREdCRkZHQ0RKREVKTExKTE1HR01KSEpKSEtKSUtKTkxNTUxMSUxNTFtzYmRwXmxsVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9ccHVncE1Kcnl2a2Jga2VlbXhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0JCPz1CRkdCRkNFREVFRENISEdERUtHR0xNTUpNTEZKTkhJS0pJTEpKSktNTU5NTU1LTk1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhwY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9Pz9GR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSUxLSUpNSUtKSktPUE5OTUxOTUxcaGR1XWxxV2xOT1FtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR3SU1HSURFRUNBQjxCQEJGREdGTEhFQ0NIS0hIRkpMTEZNS0xSUkxHTU1ITkpJSE5ISkpJSE5PTk5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2diYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISkxNTUxJS0tLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3c0hIRklERURGQUBBRURER0JISkxIRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpJS0tJSEpHS0tLS0dISkpMTExLSUtMTlRbXFRQVE1QT05PT1ZRT09RT09RSkpPUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0lQS0xPS0xXTUlFRUhJSkhJS0hMSkhGSEhKR0dJRUZMSElLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHh5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVFSkpKR0VISFBKTE1KTVNJSEVBSEZKSUtLSUxKSEZFSkhFRkdFRUpHQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjYFlfYltgXltUWFhaX15kYmJhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh2cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tFRkhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUFGSkRASktJT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmJiY2NlWlJZVlVcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJTERDS0pOTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hEREBEQUhJQT9JSkdPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUFBdX2FjY2NjYlxkY2JkY2ZYUVVUU1xYW2FfXl9hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0hHR0pGRkZJTEpORUNLSkxOSkxJS0pISUdCSEhRTUtLT01LS0lIR0VEP0VCSEhBQUdGRFRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJgYGJiYGNiYmRkYlhPUVFSW1NcXl1eXl9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lJS05MTElMS0lJR0RIS1FPTUxQTE1LS0hJQ0VBRUNIR0JBRkVCVlVFXFReU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJcYGBfYmNiXWJiV19fVFBPUFFYUl1cXF1eX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNQRFdfSUdHSERGTUpQUEZKSUpLTkxLS0xLSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0FERUFMSENMTFBPT0xGTUZHSUpIR0xMTU9RSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUFVUXFlZW15eYWFlZmNoY2ttcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXkxHSFlNR0hKSEdOTFFRSUxKS0tOTlVOT0tLTEdHS1BTU05QT05PTk9IS0VgRURfTERmY0RNW0heXHNtT01WbVlMQ1BgVWxXZ0pdWFZeRExRVUxNVFZRUlRYV1RYVVRcVFBmWmhoZFlUa1RXVlVbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USUtHYFRHSk9KSU9NUlFLTUtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzWFBtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlaX1ZVV39qdHV1X2F2X1hiXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4SCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdJTEZSVkxLT0lLUlhXUU5PT01RVE5PUVBLTE9HTVBTW1pUUVJPUFBQSkhaeF1UeGRoWVJUUXZndGxwYm5ma1FyT013bWpycHNycXJwb3CAXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zc3x9b355b39yYGBgYmFaYWBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQT01NSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dRVFBQUFFLR2Z4bGN4cW1aSkxVeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGdvWHZ2anZ1cIBhc2h9aWx4fG9fX19jYlteYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3Z6bnx9eXhybk5KU3ROQ0JFUFBJS0tKTFBPT09NUFpgWlhLVFdQYV5SVlFZU01QSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRoYVZuTHFwXkZoeVd2VEtoeH14YHl7c25hXm1vZFJncnVubXlwd2x2c3RxbG1cc356a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0tbVkhHRUdSUEpMTUtMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZVV2xPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobG1yfGttaGt7dG1ta21PR0pLSEpISFJRTE5QTUxUU1JPU1NXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVNTV1tXWFdaUFNVV1dYUV1YVl1VU09YUldXV1haYFtncl5bXFtdXl9jWl9jZGVmZGNjYlljY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKVFJNUVFQTFZVVFBUVVhVWVVSWl1WVVRXVVlYUE9MTldUUU5VU05QTUxRUEtKUVJLUU1LS09SVFJRUVNTSUhNTk9RUlFRUVRWUlhXXFdTU1BRVVVWVFpRTlNSV1VUWVZUWVVTUlVTVFVYWVdeWl9hXVxbWlxcYGNcXWJjZGdlZGRhWWBhY2FiaWhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUEpLS05PTE1UUU9UUVFNWFdVVFVXV1daVlRcYFZXVllVWFRRUEtPWFNQTlVQTVJOS1NQTU9VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1NPU1VXVVRZVVdZVFJSV1VVV1xZWmBdVllfXV5dXF1hYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RQUFNRT1FaWVhXWFpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFQUlhUUlFPTU9TVU5XUlRVVU9OTlFTVVVUVFJUWFZaXVxaVlZRUldYVltbVlBTVlVVVlhUV1dUUlJYVlVaX1peYF5WXl1eYFxcYGBfX1piYmRoaGVkYlliYGJeX2ZkY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUVdTU1NYTU9QUlRYVVVVU1VZWFteXVxbVlJPVVZWW1tXUVNXVVZYVVNYWlRTUVlXVlxeW19fYFVhXGBhXmBiX1xgXWNhY2dpZGVgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeX1teXmFgX2JcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSTFFUU1laV1VPUk5TWFZUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVlZcXFZRVFZWWFlSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1bYFxgVVxdaWpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVW1laU09TUlZWVVNPVlJTWlJUVVRYXFdYWFNYXFheXVlbXlRVTlZXV15bWFFUVVhYWFRWWFtUU1ZdWV1dYV5jY15ZYFtlYl9kZF5eY2NhXWVmaWRmXV5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXVtcXFtYWlteVl5ZXVBPT1JaUFpVVVdWVFRUXl5gXl5iXGBVXV5ia3l0bH1sWlVaVVFRU1xUVFRVVFZZV0xSWlZdW1xST1VTWFZWU1BYUlNXU1dWVltdWFtZVVpeV19eWVxaUldSWVhZX1pZU1RWWllaVldZXFZUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVpXVl1aXV5bWltcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFhXV1ZWV11YUFVcWV5dXVRTWFJYVlNSVFhSU1ZUWFhYXV5YXVtVXl9YX19YXFZSWVVZWlphWVxVV1daWlpYWVpaWFZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVpbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlRcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFpcWlZYVVdbWllbWlhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdaWlxfXlpfXFZfX1pdXlleVlNZWFlaXWJaXlZXWltbW1pbWVtZWV5fYGBkY2RlZWJkWmJmY2dmZV5hY2BjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1daWFdcW1xgXVZdXVNQVlpXVlpVWFVYV1hdX2JhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xTVlhQVlZWVlZWU1ZUWFxcX2BgXWFdV2BeW15cW15YVlhYW1tfYFxfWFhdXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNhYGVjXWZpZGVoX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYmNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBYV1hYWFdWV1ZdXV5gYWFfYl5ZYV1dXlldXllYVldbXGBfXV9ZWV5dXl5hXVtaWVxfYl9iZGRlZmdnYlpkZmdpZ2NfY15hZmRaaGljZmljZV5iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiYmFdYFhjZGJgY2FjXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNhUlxZT1hXWVtaWVdaWmBdYGJiYGFjX1xiXV9dW19eWVlVWF1dX2BfX1taXl5gYmNcW1dbXWBiYmNlZGdmZWdkXGVmaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11aWl9dXF5cWV1cXl9hY2JhYV1iW2JkYV9jYmJdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGFUX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl9dU1xfYGNkZGZlZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3p6ent8fHx8e3x7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3p6e319fX18fXx6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIjbG1tLS0tLhRJisrKyoii9vS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIuRu8C/wMC/xEkUGxsbGxCO7+Xl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEg4GCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXl5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2AgYGBgYCBd3Nzc3Nzc32FhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5dnZ2ent4e3h3dnh7eHp5eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3p6enp6eXp8fX19fX19e3p6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx6e316fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHt6fXl8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d6e3l8ent6d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en18fH17fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h7enl7eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4SEgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoWEg4ODgYOEhYSEhYWEg4KEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgICNjIGBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYKBgoGAg5aWg4B/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAgoOCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIKDgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKBgoSEgn99fXyHmpiGhIKEgoF/gIKBgoKBgoSCgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4SFg4GBg4OLiIV+fHx9fn+ZmoaEhYSEhIKBgIGCg4KChISDgoKBgYSFhIODg4KCg4SEg4ODg4OFhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhIODg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+AhpqRhnyCf4KKfpCag4GCgYGCgoGAgoKCgoGCg4OCgYGCg4WDg4ODg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYSFhYSDg4SDhIOChpSUkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f36FnZ6Fg4uAgIWAgYmBgYOBgYGBgoSDgYGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIKZoYeEhYiHf39+gYSDhIKDg4OCgICAgoKCgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgpCcg4CAgYF+fn19hIWFhIWCf319fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDhouBgH+Di4F9fXyDh4aDgH5/fn5/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4J/f4WHhIF/foGFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgH+ChYKChIKBgIB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4F/gISEg4GBgYGCgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoGDhIODgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYSBgoSDg4ODgoKCg4F+fX1+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYiDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4SDhJGSkY6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhYCChIODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4GEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4KAgIKDg4ODg4KCf319f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn2AgoODgoOCg4J9fX5+gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH99f359fn+Cg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gIB+fn9/fn58fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f35+f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOAgoOBf4GAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f359fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhYSDg4SDhYSEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgIGCgYKAgYGBgH+Lk4+Mi42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRjIyNjY6KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2MjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIyPjYuKhoSFhISDg4ODgoKCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYeGh4aBhJGOjIuKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9e31+fn+AgIOHiYmJi4mLiYWIkY2LiImHhYWDgoKDhISDgoKCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uLiY2Rjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjpCNi4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICAgoF/gIGDgX5+gH9+foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fomGhoWFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dXSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKDgoSCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4F/gIOCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398fn9/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9/f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH99fn5/f31+foCBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhIOCgoSCgYGCgYCCgYCBf35+fn6Afn1+fH+AgIB/gIF/fIB+gIB/gYCAf32Af35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4eHt4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59gICBgH+AgYB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn58e3t8fHl3fHl3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn6AgX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/gYF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHt7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGEg4OEgYGDgIKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYB/goGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4KBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhIWEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX16fHx9fXx6e35+foB/f4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4KCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCf318fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/f3x9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4KBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+fn9/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISDhIWFg4eGhoSFhISFhIWEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fX59foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhIOFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgoN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3x/fXyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKGhoaFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYqIhoSGhoWFg4WGhYaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYaHh4iGhIaFh4aGhYSFhYSFhYaJioeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEg4SEg4OHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWHhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4SDg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e318e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgoKCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2AfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYeGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOFhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEg4aChYGBgH9/gIB+f4CCfH5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aFhIaHhYeGhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCf31+f35+f4R+e398fICBfYGAfX2DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fb29vb29vb29vb29vb29jW19fX19fX19bW1tbW1tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0j4yMjIyMjIyMjIyMjImiv7y9vb29vb29vb29vL/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFpVVlZWVlZWVlZWVlZSfK6qqqqqqqqqqqqqqqiw0tLS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpZ5fWVpaWlpaWlpaWlpaVoCvq6urq6urq6urq6uqsdHS0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqjaGRlZWVlZWVlZWRkZGGGsq+vr6+vr6+vr6+vrrbS0tLT0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs/Ozs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzMzMzLz9PT0tLS0tLS0tLS09PS1NTU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7O0NTSz87R1dTTzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19bX19fX19bW1tbW1tXV1tXW1tbW1tbW1tfW1tbW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Oz8qWpdHTrYODlc/SpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8+cqp2ty5q6uJm1s5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DLlIianryijICNxZ6YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0b3ImZusoIis1rqZoZ2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Sl5Sisaitm6aymZavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Ts5vEmsGinZWnkJqEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0c6NkJ7Ep7Srn3+gqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHL2qiZsM7awZyAvK2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Nzk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJjqWaoKeRoZ+gmaiWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HKu6Gmp563pKujnsOgq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09OekI222aePj6zYwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0rrE1dLVv7/W0tXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLV1NLS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnp6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9bXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipKmnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6mnqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6KvqqqsqKirsKmoqqihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustq+zsKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYW1odWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW2vLy+vLy+xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0NERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb21ocXhveWppYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbDxMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3lmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDw8HEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIyMnHxcnHyMe/xcfExMfIytPP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLCycHKysjGzMrNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVvdGJdYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBwsO/v77Ey8jKy8e91NPHyM3Iw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnZGplYWptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDubi5u73Bx8HEzb+Qy8bFxMHEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e9xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmdjW1paXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9wLm+urq0wLi1uLOuuru2v9GfiMDOu7/BvLvEvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+urW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vsvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmJnamdmaWVpXVZWVFlPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0FAQz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLewrbe2uMTLjIWbyL27w7W6x7i2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGhoqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2hYWE5LS0tSSUxIQzk9OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7m4sLq0ubzJuoOFhrXEvse3ubitt7W4urS4s7vFxsvBvMbAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3ubG9vrvEtrilh4CLe46cxaN8g4Wxy8bPwsC4rrW1vL64urK+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG54Y2diW2NRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuro7C4ydO2ur68xrSieGVyZVVgZoeNfYeHqs7O0czKxLW6wMPIv761v8G/xsa/y8bDv8G8wMPMysfFxsC5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPEFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLGzv8vI2769vbyBanZgZ3ZeV1Zcc4CJi6jMyMzLzcrGwsTLzsK8ub25ucDDv8jGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLW8tcaQccHTwLR9W0xvYVB8f3ViVmB+hpGpxsLHy8jBw8HAycrCwLu6sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKyr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7vSl3KDtcKbWFRWjWJSZICEhW1JcoaXtMK9v8bAucC8vsXEvb25srCuuLe/w8fDxLy9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pW19gWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPkNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnC15h/couudlJPbJlaUlVampR3TG6OorS4uLjCurO7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9mXVpUSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w9WdiX14lWBOao11XVFdbLq1dVRXj7i1srG3vrmytbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZxbF9jYVtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8DKn4mBfYBYWJKPZ3Fgd3J6l3dua1+LvbOwtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZlhcXVJOTUE+SUJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i5xauViYx4TGagw32Gm5Bdf3lsdXmJsbq1sbS1srSvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7u3lpOgik1okpN2b3lyaGlrdoF3eKW8uLK0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yt6adqJNYgHBzbWRrX1lXWFtiX2yBm7myrbOvrqyutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6aim6OclZCMj4+Qk5CXlZaYn56empiml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR1BNTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6WsqbDAsbN8eHZydGVXVk9JSUtOT09ca3CmtaqytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mao5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01KSEdPUk5KTkc8RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaGmx8SmYWZpcmBST0pwVVZKT0pMVF5dgbevr7O1qqesq6KcmZSOkZaXmZmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHl5YGJSVWBJSUpLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWenLu8fW9pamFUSldwnIt6WUxGR05UVGiusrCwuKymoZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKxtKqyr6KZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKT09VTFNMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpyim56pq5Z9a11UTU1cncTLqW9ZTEVDR01hmLCtrK+nn56ioJeRk5ugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqShoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFJVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKZnpuhoaOKb19VUlFVacDj0rSdh29ZSkVUkZidq6qppJ+fmZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+nqKWkn52qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JXTkpHTUdDRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOid1lSUVRWaIPAzLOYsciwlIqYucWiqa2pqqWfnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqztK+zrqqvo52rp7axraKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHFra3VycGhXW1FFVEhESlBIP0VBNEZIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfn5qhnWhQS1BRaYGctbqnh7Pg29bb2si0rqejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsHGvrq0urq0u7ewtbKqurKuu7e/u7qqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrZGhveGpkWltGS0xFRFNMREJFNzo/OzU0OTk3OD4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaKdnJVdTEdOWH6TwLikkJjV5NvRxLSmn5qcm56emZeXl5KMjpeXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszR0tXO08m9wL/Du8bFyMXS1M3T0NPTzMrCxsbHysjOv8jRzMfFx8XBvMPBvr++tb6zrr+/wsPHxMfErr+4sri8w8HBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOfnJ6WYUpKTmaKutfTv6/A1Mu5rqiin52fmpiWlJKUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NbY0tfNxsfJzMPFys/K09fR19LV1tPTyMzHzM3J0s3O083FyMnKwcbLx8jJxr/Ds7PIxMvKy8/Gyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2gpHVdZ22NvNjc2tbLurKqo52dnaGloJ2alJSVlIl8d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDW1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLW1tnV19PW2M7Sys/RzM7QzNLPv8jHysPMzMzOz8XGx7a/yr/RzcvPxsnIv8PDyM7Mz9DPzcrHzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKR0FFSEk+O0E4PTQ1ODU7ODY6PEA+Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWfo6yKf5Oz0tXa2s+8rqiblZignJuhop+bnJmViXdpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV19fX09bP1dTa1NTOz9XU1NHRzNHN1NfW09XQz9LT0cnT0cjQ2NfY0djS19nV1szPz8rN0svO0MDGwsfFzs3R0dHIzM3AyszF087LzsjEysfGyMzK09PR1c/SzNPBucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaWcgJSWx9jT1sKtpqGYlZeZm52gnpmdnZN9cWVjY19fYV9fYWBfYGBfYGZucHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHG0dTK0dTV1s7S0NjY2NfLyM7Eyc/MyszAyb/Hyc3Oz8vQzc7Mzs/Iy9DQys7KwsnHyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1XRTtAPTMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramnf2yBlNPWzbCbm5aVl5uenp+dlJaYlIhrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Hzs3N1MzO083L19bQzNHUy8zQ0tPKztHV0tXVysDJwcXMwsjJwszDxcjKys/KzczQzdPLxsjPzcjHy8XGwcXKzM3P0cbQzs3NzM/Fx8G4ub3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV5cHFrbWdgYHBoWFhoVkxGTElQUEI7Qz47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKigqmhvfafZ0KqVjo2YlpGTkpGWlpaQi3xlYWJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svQz8W6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL7Ax8zMy87Cy8vIx8vQxMXIu8fDycjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7utpaJfb3i50KuQjo6XkIeEhISCfoWFf3NgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLLycHCzNDFy8i/ucG7xse+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xry8wMPFzMXFu8DKwsXH0sXByb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZujoJuUe3ZzdGZpWmFubFpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srKRX3KAvrCQi5OXh3uBhYaAdnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsba6srKzsrHCvLy8urjBwcLFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDv7zBzcPGvb21wb3Dur3Gu8K6s7zFxMHCtr+2tb2/u8zDvLW6yLq/vsvEwcbCxsnGyMbQxsLMx7LHycPOzcHFw8C9s7ewsqeoqLmwpa2wqq2slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztHKysrHzc3O0cjQxtXU1tfNys/FycXHwbnFvauvg2N1j7WSjImLhXmBh4eAfoR8dHRjW1xdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLW3tLOztLy2vbG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bBwry4vcbBw7u1rrK2ur+0xLe7tau4vb3AvbG6tq+2urPFvLeuu7+1t7TFvL7DxcDDxcbIy8XAxsa7yMu/z8rHw8bCw7fDvb22ub7Hv6y1urW3to55dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTPzdLPzcXHwcXAvrq4ybaqsIFrcpmcjYaJint5foaGd3iCfXRpXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7i4tbCrrKeeoqqnnquts62prKm0r7ewsqmupqyyvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLHAtri9sLCnsrO1u7yrrrWlrrWuu7Kwqbmwrbuuu7i7wMC9ucK/x8PFwbzGwsjLuMXHxb/Gw8O6xMbCu8bJzMuzucK8u7OIc3Z2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx83Bw8a/xMTDw8rCycq+v7zAurK0tMOuqa6Ga2SKkoiOkHx4foqFenuEgXduXl1cXV1fYF9fZGNiY2NiYF9eW1taWl1aWlpaXGRub2hnZ2lrbnKBrbmwta6mpaenmqCloZqcpauupKiirKqsqq+jpp+qrbW2sb25r7evqa64tLS8uLS8r7e5tbK7wbLArqWpoquxsrSovaqrqKusrbSzpqiuoaSvqbKmp6iupqi3rLGyt7q6u7K8vb6+xL+1wsHHyLe/wMS3xMK/u7/Ewr7EyMzKv77EwMCph3N0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HLvrvJtr3DvrrKt8HDwbS1u7WwrrS7rainiGBtjYOIi4B7foB+eHR/fHN3ZV9dXFxeX2BeX2NjYWJgYF9eXVxaWFpbW1lYWlxfZmtmZWdlaWtvcoWqpayloJyipZSepZuYkaGjqqSin6Wlp6WtoJ2cpaassq+2t6ewq6iqtKu0urG2ta62ubGvurqxtqSgpJ+msairqLmqpKeoqKeyraCnpp+bpKasnp+npKCgsa2trLK0srSwtby2u8HBsrq+w8GyubnDs8C9v7W4u72+vMLHxMLDvsDEoIN4cGthZl9rb2BUWV5ITmdPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9taCelZ2hprq2q7Ozu7PEz8nLwsa4t8fBzL+4ybe7xbizxLi0vsCrtbuxq6SusqyfoYthgIeGhoF8eXV0b21rampxaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeWm6KWnKOZlo2eoaOnm5+fo6WiqJ6bopufq7CssbajqaqqrKyktLmtt7Css7WusrWusKqfnZ+korKlpqm4raKmpp+orKuZn6CemZ2fpZqao5ybna+pq6eqq6ytsbK4r7i5u7C2vLy6q7OzubO9tLaxsbW0v7a9wL3Dwbu7vZeDe3NrX2VeZGRYVFddSVdcS1BHSUlGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vEw8++uce4t763ssG0sbu7q7i5sKGdqKqmlp2FZoKFhn94cm5wbmtiXmJmZl1dXl1dXVxdX2FhYmNjYmFfXFtbWlpZWFhXV1hYWFhaXmJkZGVmZmhpa3KNp52UlZWbmJuil5aRnKOiqJ2bnaWmoqacoKCbmK6ura6yoKWirqynorWxsrKsqK+yp7qzprWgop6bo6Kto6Kqtaqio6adpqajlpmel5manaCal56cnJusoauno6SmrauztKq1sLOrsrm0r6mvsrKzt7Ouqayusriwura6vb+3s7GUhXl1ZV5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWjmKWxwrW2va20uMLMyMbAxbbBv8fOt8DEvbO5ubK/trG4uqyxtK2dmKOonpGaemmBg4R/eG9xdHFpZmRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqKclJSQlZeXoJeZlZihnqGclqGiqaSfn6mdnJqrp6+wqpujpLiqoaCuqLaqpqetsKS3sKS3oKKbmZmqpqGarLiwoqGknKKfn5OUoZSVlpuYl5aXnJWfqZ2po6Gdo6qqsK6otKuqp62zsKWrrrKxsLCur6anp7KusbSwvLS5t66jlIF5dWReYVZZV1NSVEtNXkxPS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri9rp2nqKOqu8C9wLmutLjBzMfFwsO9xbfIzLLBwsGuvLu1u7y1uLmvr6+nm5ifp5KPinJ6gHx3cWlscnRwaWhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjY2JjYmNkZmqBlpOVjJKUlJuZnZeXnKCcoJahoKalpKann52fpqCqr6afoqS3qKGhoqi0oqWopbClsK2rtJ6gnZWVqqGilK2xsZ+io52emJuTi6GUkZOYmJOXl5iXnaabp6GimaOlpaukpbCnpaOrq62mqK6vrquoqqmzpaasr7Sxr7y1sa+uoJJ6dnJkYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxse2xsSzwr/Fq7e3vba9u7q1squrpZiXnaGKh3F7h352bmNhZmloZmdqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1pZWltXVVhXVFRWVVNUUlVgYF9gYV9gYWNkaYGUk4mRj5STlJ2VlpekmaCXnKCloq2mpKSjo6KcqqulmZ+lsaqgoZ2lq52nop6trKmprayhoqKVmKObnJCrqbCbn6KfnpeZk4qekY2Sk5aQmJiTnKGinaSgoZWgoqSmm6OrpaKkqqSrrqWtsqmmpaamtKapqK2ztbS5uq+prJ6LcnBvYFtXVlVSR1FPSFpbT1JKVEtTTEVGSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm9sb7EyayxuMG1u8C7tLOoqaSUmJmah35wh4N7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eX19fYmRtjpCEkYeQkY+ak5WTnJujnJugqKmrqKynqKWkmaWupJSZpa+pn5uZm6Cerpmbq7OgpaafoqOhlZOblpaSqaqtmpyfoaCalJCMmY6LkIySjZaVkJ6hoKOcm6OVm6GjoZeiqKOiqKugq6+jrbelo6OirK2qqKuvs7ezvrWzq6+YhHRzaFtYWFJVUUVYTFFbWE1UTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62os7auqaevrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEu7e7w8ixrbi/t7y9urKzo6eelJWWlIV4c4B2d25taG1ubXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZH6NgYt/jJCKko2XkZeZoqCboKyqpq6sqK+kqJqfrKCVlqSop52XkI+anq6WmKiqmZ+dlKWgnpKQkpGTlaerpZqZmZ6elY2Mi5OGiI2DkIuRlZGgnqGjl5WflZqhop6Um6Wlp6iooLGwprG8p5+jrLSrrqewtbC5tcCxrbGrkH1yc2JWU1ZOUklGVlBSUUxMV01KTE5SR01KQUNGREM+QDY1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqaisKudqqepsrGltsa0ubqzysW5usHL0Muxtri8vsHDsbCyt620s7qysaGhmpuWlZKBfnZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKl4mUlJibmZ6pm6CqpqWrnaiZoaWbk4+fo5uXl4WEkpujj5SjnZaWloiim5uTi46KkJqkp5yVlZebkZGHlI6LgYuNf5CKkpKSoJqfopWTmJiVoqaZjZmkpqimoZ+0sqiyt6Gcoresqq2ksrKmtby2rKuxo4l4c21dTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2saWno6mloKilpLOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq25rqudmJmblJKFeoFtX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGEj4uUkZSeoY+bnKOho5ill6KclY2HmJqMc42Dfo2XloaRmZCUjo57mY+cjIKJf4qYn6OekJOYloWNgpR+fnSJjnmQh5OPkJ2amZqRlZCdjqKjjomaoKGkpJuitK+sr6yfmKW4pqaxobGunLC8qqmvqpmCd3NjVk1ST1BNQ1NOTFFNQlBRSElOUk1ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6a0wbiwtLDJxLe5wc7FvrOsusGrrcOtqKKmkp2mtauhnI6UlZGOfHZ9ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5YcpCDl4aOnZeLlJCfmJ2VlJaVj5aJgJOJXztXb3yLlImAjJGMkIaGc4qFloF5gXqFlJ2Ug5WOkZCDhn2TeHFvhY19iYGRjY+XmpiTio+JnIefmIeIlp6aoaCXp6+praion5ats6Kmrpmsq5iotKKpraOTfXJuYFtOU1JWTERUSlBNTEZOT0lFTFFNS09KSU1PRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6OpsKintMG5sbWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUm66gmJWEk46KhntydFxRTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQH+VkZF9iZSNhIqNm42WlYmSiIaVhnmIf2BKUW54ipGEfYSNioV/f25+f5R3dXV3hI2ZcFGNiIqGe354lHZod4aIfoqIlYqNkZKWi4SKiJSEmoyChJKblp6dlKSjqKmlpJ6bsKqhpKSRpqqWoqqcoqaoiXRtZ15bSFFRUk1JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+ir6GnqKWnqK+tqrW8tri3s8G7tqe5yLi2qKi1tqqyvKaelY5/iZOnlZSJfY2DgXx2b21YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJOBkpmLj3uGj4B2f3hzbnVwdI2OgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gXZycpJ3Z3WEhISEe5WJiIqMi4B/hIuMf5SDfIGQmJWclZGfnamen6CdoKmln52Yjaekk6Gflp6epIByaGBcXEpWT1JHSlhST0pMTVJKSkpMUElMUUxSVExFSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5NDc3OTU2NzYyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlraywsaq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGOlIGOm42QfnaFeHt1b25oWEtISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfXlnd42XmI2PfWh5gXZ4gImPfYSYkoFxh498d3tva36tfXOQi397hpKBfX90ZnZ8hmxvaHN8iYyIgGx5cX1wbXWPcWlxgH6OcEOLhIKDhX93d3qLhX6Me3V+jpKPmIqSmpujlpmdmp2eop2WjYqlm4+el46WmI92bm1lYlpXV1RRSlNVVE9QTlBWS05LTk9KUU5ITk9LRUM8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmwr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mPhJJ6iI2KinZxfW50cGlsaVdLRkdFQUBDRElMTE1RUlBRU1VUVFVWV1dXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnp9fnt2b3RzhYJ5gXhwfI6MipSDlpeYmpCTlpeZl56XjIOJn5GLko2GkJZ+bWhtbm5XVVdUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ozk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCirKqota+urLS/q7zCv6aimZWkl52NhIuUoaGYmJGTi3OOeoCFi4Z1b3VscGxka2pYTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVVRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX9wbX96i4l2gYiGdGyaknRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxgHxncXF7bpONj3tzfXxxcG51bYJ/eHl1anmJgoiKhJaTkpCLjZGUlI+XjoB5iJeIhoqGgJCHdmpqbmdkV1FaV1lZW01QVVZZWE5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfprqvq7KwwrG7w8ealo+UmYuNhXmEkJiUjZCMj4Zxh4J0h4yFeXBzcW5vZHBmX1RGSUM/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgYWBeoSGhnlyoZV0eIFzdZSHNXGdqJ2OoaGEooV2cIZ8h3xzjK2NiYBnZmJqbnJtcIN1aW9YdXCOmpJ3bH97fW1xbXCAenN2bmN2hH6GgIWQkYqLiZGLkYyLj4N1eIuPgH6DgH6PenFwb2tfWlxdW1lYYF9STltaWFdMSEpGSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ6kp56vlaW1qq6xrsGyu8HGlpCMlJCAiH1ugZCSiYOKh4+FdYKEbJWIh3t1eHhsd253Y2leSVBHPkA3NDQ5Ozs8PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgYWZhJucYYaqn52Lg5COeneIfomIjXOKl4+Eel1kcXR6e3eKbGdqYnlvhY+Cem6Bd3SEenB0endrbmled4d9h3yIh4+Ai5KXg42FjYd9cYR/hHx1d3t9iXVvcnNlZl9bW11TW2ZeV1FVWFtVR0pLRUtHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcj0yMzMzMUV+VzQ9OVyMeIqAlIySnZ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgXOhhIt9fYF/cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbXyBhod9jmhnaHh+boWHgoVxhIVHa4B3cnl2aG1rX3d9g4l/iIWMepWem4qLiJF/enWLdnx3bW93fn9zcnFqWl1cW2NjWGZlXFVQUFZZUERMS0ZOSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyImJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1ZLQjYwLi8yMzEzMzY2ODo9P0BCRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiZGBmpWCoKGXlZuapa2Tmruxp7vHw6iKjKGlj5SJgZF7coSen5Gcf3aFhYqPiJBqaG+DgHWNh4SLcYaCd4eAe3aFfW52dWeAlI+GiYiIiIehq6GWio6Yf3uCiXp6b2dreH54fXFqY11aWl1pXGFmX1lPS05XUlFJUEpETkdDS0RDQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMgIGRj4ubm6Scoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBi4uCiY2Df4l/bHBqXUJBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISkxLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPop+UmZKEioWPmJGWbHB1iYuCloyNj3aPhHFshYGKlpKDhYhyiaGWh5OJj4+WpbWpm42VooOHk4R9f2tqa3yAf4ByYVxiXllmalxra15XS0dPU1FOTUxGSVBDRE5GQkNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+mJaalJ+fnKegqpaTmJ5nZaSafoSSkXmAkoiQkn2KhZiSkYKAgIuNiYWQhoSIhXh4f2dNUj4vLi4sLy4tLzAwMDIxMjU1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+ElJKFnKGampmnkZGIlaKamnd6fpSYkqGSl5eBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N8fnpwZ2BbX15hZmNgZ2dcUUVKS1BPSUpMRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Kjox7ioaPkI6BgoCJjIqEkoWChoiBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtL24pa6srKeotKywt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsrauki5aYhaamoKKXgaaZjaKqqKSHhZOkoaCqoaSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWriJqJkoqWent+hH1mX2dbZGFdY2NeZmZeW09DSUhUT0ZITEZKR0VGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGUhYiCm4OSkI2S2sidlnNWl4iPiJyPfIaMjoqJeoiCh5GOg4WAi4WGh5KGgoSJhoeHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJTVVVXVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHw6uzxrass8Czub62v7TBtru7pLjGqbbJx7a+ubSoo7StsbGcmpKan4mnr6uklXafpJehq7GzmJaqraiutruyuqyvtaKxrLG1vLe1rrWgp6ijqJupsK2yuri4p5u3qY2ljpGToId5gYJ0WGBjVWVhYGJfYGVfWlVKREVMVVFISkpESUdFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hX6AjXu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeFgY5/gYmOhoCGiIWKh5F6eG5dVkBFTTw2OjQ2QUI3NjUwLzZDSENRW09RVVdVXFdQX1VJS0pBQD9HS0ZFRDs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMm2vMW9s7PAt7jCtb+wuHSytKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KSpbGupq2sp6SYoKyzuqKpsrq1u77Mv8XFvb2zwre6uL+3ure5rK2wprGqrb6wvbvCwqyZuqiUro+YmKuJfoF6aVZhYFdpZGhkVlpjWVZUSUdHTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWVVad2pwf4+EgY6FbnpyeYhiuKGZo4mVk5aTk5ONkJeSh4d7hoGNlYqAhICJenyLh4Z8ioKBioOVfXd5dWVPXGRHRUw6UWRhW15TRj87SFBEWmRRUVlYWWdaVGBgTVNPRUE/SUpIRUZBQEM9RTZCPkhHS0xTWlRdk6+4tbq5ycC7vcnMu73AvLe1vLu3vrW6ssZgdbOlsZqeq72qpairqqOisrWhq6eelZafmZ+upaenpZ6klKKnsLOnsrK8tsG908nK08bCxczCysPAvr2/vLy3tLC5t7fDusa9w8mwnrmqoqyPpai3iYF+cV5hYVxWYV5nZVJYYVZSVUlFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUFBRUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWhsbHGQjYWQc2xzcnOI1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaLf4N/gnh6i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV5vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVlxaW5K5wLm9t8bAu7nKy7q2ura4ubO4tbSutraZZHWonq1wXqKsnJiho5uknqullJ+fkJSOlpiXqJ+ln5+amYOknaykqrCtt7C9udTRz9fPyczSzM/OysfAv8LKvcG9wsDFxMbKv8jPtKS7sLWwm6y5vZp+eGtcX1xZXWFZYmJRW2BTUUtDQkVGRTxART5CSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KRlG5sb3V1iLOsoaGfi5mcmYyMlZGbkoWKin6Ih4yQi4l8gYRze4mDhnyJdIKKhpV/c3t4bG11e2hyZWlsaWZqaWhgZmlobVptdJetpLyIh2dbb2hdWllUSEpOUEpLUUxUUUlMQUpHS1BfX2JmaWGYt8ewubO7vrayxMe2sLmxsLuss7Gnqresjbannpunmk+bnYyOoJaRppillYqTk4mQiY+Qkp6boZiblZaHnpmmm6yvqK+ns7TU1NXW0svP09XO08/NxcLK0L/KycvJ0sjNzcLQ0riwxLzEuqa2u8SigW1iW1xdWGBXWWVZUFxXTlFDQkhFQkg7QUQ+QUg/P0I3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OT05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmINocW95eYOgqp6ml42bm5eLjZWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfXF4dWxxeH5xe214c2xogHBtY2ltcHlpd31+y7/C36dtY3huY1thYEpQUlVOWV5QXV1OUU5UUVVUXG5ud4Jylq64rLSnsLarrb3Asau1pqW4p6yuoay0o46xrpqYmIyRlJGEjpuBjaaRnImDi4SKiYSLg5SVmJeUm5Gcl5mZnp6rrKSnoaysztLV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbGwM7HyMOpv7jQnXhtZFxhXFZfUl1aTk9TUE5IPkFGQkJFPEBCP0VFPj8/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bXdwfX6AoZ6eoYuNmZOTjIuTj5aEeYWQkI2LioiRh3+Ce3J+gIKHeoV1hZORiX9vdnNsc3x7dnxzgXdxaoBycmlvcXp5cnu+y5p+jLGDdnKEdmhhal1DWlpbVmZkWGVrVFhdXGBjXWN4e3+LgZmqpKShoKGppqqxuaqmtKOiraKjraKnsZ+JppqUkpGKko6IgpOJa5WijZiEgYV+kYODk5asi5WNlZmOhZKQnZensKGgoKSkqMfNz8jCy9DT0dTSztPNxtbTzdTY1tbY1dfVydTazcnX1tHKrcTDy4lxbmJfX1dTWVJbT0pHSUlKQDs6O0VCRDxCRD5IQj9CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN5coKJgZ2VnZSFi5aJj4qIjoePf3eElJmLjYiIi4l+g3hze32Dh3eAe4eRl4GDbndwbXV/dnh9c4V8eWyHdnRvfXaEdXl7nbWMPEGKxqV+jXxpZVZJQ2VjZmNoamRveVtfZmhrbmlugIOJkYudn6CdkJeYn6OjprKkpLOgoqWeoamgorGchp6SkpKQi46LhoOPhH6cm4yNgoSFepR+gqmVo4ySipiSi32XipqRq7OYmpunnKe9w8a4tsbN0tDS0MzSy8nUz9HV2tfX2NTZ2M3Y287J2trS1r/MzLR2dW1jXFlSVVBZVkVGSklFRT06NzpAQUM6R0VARUNBREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc1NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqCh3x4hZaXiI+Dh4aHeoR5cXp7hIZ1eoWOjZ16jHB8b3B6f3J8gXGDh4Bujnp1d318gnV/fIeIsHRYqcK2jJKBcG5iPV5ocnBxcG54d4JlaW9ydXhye4uHjpSSm5agloeMk5ugm5+qn6GtnKKamZ+lnp+smYuajJGSjYV9iIeDhYuOoJmTiIOHfm2ZeYSYhoiTjI6VjIZ7m4iTj66rlJWXnpimrra9qK29xsvIycvLz8nE0srU1tjX2NfU29fT2dvW0Nva0dbI1cyVeHpoZ1pZT1JTXUhCRUlJPkE+PTc6PT87Pkg9QEFBQURBPj46ODdEQjc1NTQ3OS41NjY0MzU1NDIzMjM2NDY1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fISXjoeLfoaHgHeCeW57e4aBdHqSno2hdo91gnR1gX10gIRvgZCBb5KEdHyBhXp2hnuJt8akwsm3gZWbj3hwZU5lY4J6gXeGopCLeXl3e4N/fIR2bZSWlJWPl5CDiY+WmpeXppyYoJefk5KXo52aq5aRkYuNkoOMhYmIgYWQkZ6cmYmFi4GGl3uIiJ+XkImNiouCfKGIkIu8oZiTl5mcqKalrp6ntb7AwLnHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvGhXl4ZWhjX1NWVlVNS0RNQzs9PTw5Ojw+OT5BNj4/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU1NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop8foB/gH2Fen6CkYmEhXqFiHt1fXRufH2GfnR/kp2Rn4OSfIZ9eI59eIqKboKagHSYhX6BiYV8fpB6j6mPkMOgu4yco5x9iYR9iXKMin5zppqcmZSFe4+QiYRoR3GhpJ2Mi5CShYiLkZKVj52ak5WRl42MlZ+dlKGUko6OkIt+kI+Oi4SIkpaan5+Ji5SRnZGCi3+mmYiFjoKGhICkhoqLuJidkZSWoaegnZ6do662urWrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3d3dmlpZFZfWlNPTkhETEI9PT45OTs6OTk8PTZAPj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBj4pxcniKe3t/fX98iHp8e4uHgn51g4Z5c3pzbYF+hH13hpugmp6UkoCLh3+Yh4Cckm6HqIV6oIt8kI6DiIScfpqRio2jop+Qo66fi5GLhYuBkoZXcq2Ln6ycj4OYm5CQjlyDopGCjJ+TlYyGiIySk4yUlZSQjI+KiJabnY+VlpGLkpSGgIuJko2Kip2WmaOjhpOdlaCLioiOnJCDiI+Ag4eFpIWLkLOYnJKUl6GhnpmSm52nsbispbzBx83Hxs/Mz8zP18/R1K7W1dja2dra19bZ2Z5ue3NmZVtcV1JWV0NASUQ+Pz46NDk6Ozc6OzozOzs/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieG1ifpKDbm13i3h5fnqBfYZ8e3aGhIBzcIWCe3Z2dXSEg4V9fpKmo56lopaJnZCUlouKqJdyirKNg6aRhJmThJmMopagmZOJmp2hkqivn5GUkI6OiJWLbo23hJrEyLKdoqWbnJiWkbKQY6TNyJWOhoeJkJKOjZOUioWKioaWmpuPkJSTh5WYhICPi5mIjZCql5eko4iZnpWbiY+Hl5eLhY+MgX+Gj6SIjZOomZeTlpihmJ+Zk52borK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6BcX5nYl1dXE5JVFlBQkdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdoGOfXxtfoh4en56goKDfnZ2gIJ8bG6Lf3p8eHh8hIeKfoqjs6ejqrOhlqefpaOWla6ig5C4lZKymYyhoYykm6+jpJ2YkKeWp5msr6SXlJaVkIuYmZagwI6jybmrm6OmrZiRm52ynYWFqKKcmIWJiY6VjYuTj4iBhoeJk5iVjIuUk4aUmIaEkZCcdJGYspaXpaGInJqTkIqRipebiYqWjoZ9jJieiZCQnJqZk5iXn5SgnZWem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LQ1tjT0Ni6cXh1XF9UX1VPSEpOREJDRTU+Ojc3Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p7boWGenyEeIGFgX5weHx+fW9yjXp9gXx4houJhoSSp7usqLK9r6StsrOoo6KwrIqatJ2iuKSVraSXqa23pqSjn5mpl6mjr7CpmZiclJWRl6CYmru7rsqhara4q7CUmZ6jq5OXvaNeqrKCiYqNlIeRfI6OfYOGjpCUlIiHk5aMkJWNi4yXmJKcmbSXlqudi5yUko2RkoyZm4qRnpCLiZWfoY2UjZiZnJKbmJ6UoaCUnJylr6ihpLO4q8LIxLW6vbvFx8fC0aDGyc3NxNfW0cvUoW95Z1tZU15QT0VDPjxDQUI4Pzg3NT9GPDw1PDM1MzU1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo5Nj49NDdUS0NVUUo3PDpJQUVANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEpAi4p/gXOGh32CiHWDioJ/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruzs8C8tK2rs7aLp7Ktrb2qm7ukqK25uKumpqGio6Oor7Kxqp2cpJibl5eeoqalkqS6rqnAvK2tsrmmpKd+iIacrb2wg4yMi5CDj4ORj3qBiJCNjZyIh4+XjYuVl5SRmpedqJqxmpGsnI6aj5KOlZGQlpeOkaCRiZSbo6yUlo+UnJ2ToJ2bmKChlJqep6akoqSws6fBxsOvsLq2xcTCv82mx8THw7zV0c3EyodycmBaWV5aTEpCTEBGRz5BP0I7OjQ+QTw9NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQjVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxlR2BpZ1pdXJOMjIh7h4uGg4x1hpGKgW9+e4F/cX6BepV6kpSUmJCTlaezxsm/wszBw7nHvLqvq7m6l7K2urLArqXApKuvu7yqraujo56nqq60sKqboKqboZuVn7C0p4ujurq2wbysqJyzpaSplIWOqcTEpIKLj4eIhIaVlI16g42Rj5GhjIyUko+Il6CYk5mVmKagrp2MqpyOlo+SkZWVjZCVkY+hlIaXn6CynpSalJ+hmKSfmqCboJSYnqWjpqakr66lv8TCrqi3tcnDvrbPssS/xLyz0cnIwrVzd2tbV1tpUUxIRExKS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk5lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoGQeo2hlqiampi6vcfIycHSycrCzbzBs627vqe6v768xLeswamss7u+qrCppKWjq62zrba1oJ+unqWimKOzvambqL3Bo7e3sKuTsa2rrJeHmqmnpZGCjJOllYmBdoqSeoWNkpCen5OPlIuPjZSjmZeclZWjnqmfkaWajI+Pj5WWiHyPlZKSo5qVoKKctaWQnpeko6Klnp2mmJ6Vl5uko6inorKsqLzAw6+lsrfMwLmvxLO7v8K4rcLDwsCYbHhgV1ZaWkpLTUpGRERIQkJBREw6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+JoJOEeIV/lX9/kIiKkICWoZmupqOYwr7Hw8fF083Ozcu7wrewubyzvMu8w8G1truts7+5vK6vqKCop7atramyt5qerKKnoZ2rt7ippLC/xLG+ubOnqrW0rq6XlqWsqKCRjpKxxaeVjn2RlX2IkZmQqpmYk5OPk5WTpZ6TnZmUoaOinJifmIuMj4+eiFqQlpeSlqSZZZijnrKklqGWrKyqp5ueppeYlpiVoKOopZ+2q6m5u8O0pbO1y8C4qrassru4rqi4ur24gmttWVZUVE1FSlNOSz9CSEVESEdHOTVGTTs+Nz1ASi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZGDh6aTiIKHgpyEg5WQkJOOmqKfr76uoca8xcTGxs7OztLKvru2sbq7u77PtsS9uLi3srG1s7izq6acq6u5qqinr6+Xo66kp6SktcCwq6y0v8O6wLqzp7m1uLOvlaWtrq6li5OVoY10wZp+l5mFj5aajLGVm5qVk5OamaWjlaCblpqpnZyhoJmKjI+WnWBKlpyalZqlllSWsJ+unJ+klK+uq6WaoKWUk5iYjpyfpqKZtKmqs7y7u6qwsse/uaasrK2xsaOhsrK0pG9sZVtZTk9LRU9QUFE7SEpIR0lDQz46S1U/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4unlo6Jk4Wfh4Sdl46doZqjpLXItKnGusLDx8rIx8zNxr67s665uMDBzLXHusG4tbqwr6+ztKajm6q0tKmopq2smqStpaSorLq/qKu2t77Bv765s7LEsrm9rKOutay5poicmKabdr+ghZmdjpOZmouvl6GcnJeVm5+hqZ+ooJmaqpmhp56YkI2RnYNudpKimpWdop6QrrKiqpSoqpeqraOjn6WokpKZnIiUnKKel7Gnqau6tr2zsq2+ubego6eopaecnK2pqYxiZF9eUUpMRkhOSVVMPU1ETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5WcoZ+7r5mUn4uTq5uRkpOJq42Hop+Mo62Uo6O2xr20wbrCwsfIxcLNyMG9ubKvubTAwsq1xbHBvLS6qqitrLCio5iqtLulqaasqp2or6ejqqq+vKetvLS4vce8t7W3wbG+wLSptberv6WPo5iRoqC8n4maoJmXnp6Pt5+pnKWjm5yhmqils6GbnqacqKqemZWPlJuLl4mMpaKUnaKeoLSvpaSTr6uZq6udnaSjqJGVlaCDj56em5WppKGhtLS6ta2otbKznpyjpZqXlZmqoZ52XltfXUpIRkdNUUlNRUZHQlJMSkJFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoFkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+ew62bl6WYmamclpqaj6qWlaemla2tmaGrtsTCu763wcLAx8S+zca7vbmyr7izv8LItb+vu7a4tqakqqutoKCaq6rEoqWoq6aeq6+soaiov7emrb6xuLbHtrW5uL+yv8G3tLO0r76jl6OWlJyUrqCRoqKlo6OfkL2kqZ2oq52doJumn72imKOfoqmroZ2XjZWek56Hj4WNk56koZ21rKWblbGnma+nn5qpnqCNmJSeg42gmpuTpaSamKuxtbGqpaqtrJyYoKCSjpCWqJ6UZ2JYYF1OSEdKTktIRURJQT5QSEA8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm5SRjxLeGViV0yimqOcnsWsoZ+snp2uoJOjn5aloKapq5e2saOqs7XExL2/tr/Cu8jCvsrItri1tbCzs7fBxra+sLi0uLWfpqyqq52dnqWkwaWgqq2fpKmsr6Kmp721pbG8ube2w7Kzt7m/ssTAuLius7W1o52llZKUoa6gmaKdqairo5rCramerK2bm56ZpqG9op2lmKurrKahmY2Zn5KfiY9Xf5afpqGguKqmk5i1o5+yoaCbrpaejpiUnYGOn5eVjqKklZCmrrKrqaGipaWVlZ2Yi4+Rk6SeiWBkWWNgS0hKSk5GRUFGSj49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dySEU2PXVlXEtOnp+hmZ7DqKWitKKcsqiTq6SgpJ+tqaydu7CorLWxyMXBwrPCw7zGw7zEyryvsLatsLSvv8S0ubGwubSsmaiwqamanaWhp8Ktm6yxnKmjrbCppKe9tqa3u72vt8Ots7LCwLLHs7q3rLS2rqqippaVlaSsop+fmqirsK+vu7KmoKmomZmYk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWdmqOfp7OmpoyYs5ujrpqem62QnpOWk5l/kaGWj42foZOLpqywpaahnKCekpKak4WLko2cnn9gZVpnZUpJTEpSQkNASUc7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+jn5ygw6ikqrKho7SqlbOsp6KksqyuqbuyrLC0tMbAxMO1wMS9ycS1wMjBtKu1qK+4rL/EtLeurLa5pZmrsauql5+ml627tJuosJutn620sqequbKourO3srnAqrexw720xqe+r623tamorKGXl5KmpaKjmJilr7iusrW2oJ+opJmVlZOkoLejpKaWr7Kyp6umoZ6bmpuWmKifoJiinq+yoqaMl66YpKuXmZ6kkZuNk5aZhJWelIyPnJ6Ui6mpqqGnoJmelYyOmZCBhZWJlJ94Y2hcampNUE1OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzuko52hpr+mqK+voam0q525sKujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDGwLqptqSsu6zAwre3qayxuqKVrbCtspalp5Gquamgp7CdqqCvtLOqqba2rbuss7O6t6y4sMO6vr+mw6uwt66pq6umnpiZq6KioJGYobGvs6uwuZqcqaCZlpKXpqG3qaWjo7CxtKuyqKufm6Cgm56lnaKXnaOzsJqfj5OlmqCpmpSinpWYiZOXkpWWnJOIkJuZlI6oqKafo5uXm5OHjpmLfYyWhY+bamhsYGxuV1BRWlRBQ0VUQDs7SEE3OlhQZF5QVldEWV5dTUxSTl5LSj5aY15OSFBOW1VZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oauwqqOxuKqltbOsoK21vK6zuLy6vba2wMK/yMS5xMHAwLjEvcC3r7anq7exu76/tKiusbael6utqK2Xp6iOp7ufpK2znquisLCzq6m2tLW9ra+xtaywtLHBusW3q7yvsbisraqjsaaepamgpJeQmaCzqrOqqrOanaebmpWOoKaktK6noq2trrGns62yqqScn6ijnpWhmZuotamXmZGSnpmeoJ6Qq56Xl4WUl4qcmJuTio2Wl5qXpqWioJ2WlZeTgI+UhXuOkoOMlmVscmdvcV5GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2FVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoKSstqStqaWurraqr7W6p6awt8W3sbe+wcK0tLrFvszFucLAub65w7fAubK0q6m6trq5vbSprbC1mJinrKqrm6urjqu9nauusaOroLCts66ttrK5t6qurrKota+zu73Ksqq2tbG0r66nobOgm6itoKWVlpuasqOtoKavl6GkmpqSjqOlp7OpoaayrKq2pa6xta+kmZ2tp5qYn5mZq7eil5OQjpecoZeWk6uem5J/kpeMnZyalpCJlJKemaWioaCYlpGTlXqLj4V7jIqDi5JqbXhtdXtgRWFqWUlIWVo9e0pGRDZBYlRpW01cYEpcXVpSU1JiYUxLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lUS0SZl6CxqLGqraakr661qbe0uaSss7fKurS6ur++tLO3w8DMyLzDvLa9v7+3v7yxva2nuri3tsG2qqyxt5SXpq6rp6OwqpSvu6SssbKnqKOxtLCxsLWxuLOprquyp7evtbTDxbaptbassK2pqKO2oKCnsaCklJyalbGep5ygqo6po56blpimpqW4p6KxtKynsqetsLaspJmgrKibnJ2blKm4nJSOjoqYnKKXj5eloJ2UgpGVj5ycmJaUh5aPl5qnnKOgkpaQkJV2hJCHe4WBhIyLbXB3dXt+XEtlbFxLTmNcPmJ7R0k4R2dXZlxNXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLj1FTFE8M3JrSkNDkZmlrqWtrqunpLCys6q3sbegq7W5ybiuwbvCt7KxtcLCzsXAwb20vL+/ur68ssSnqbiwtra/vK6qs7Kcn6exraalr6WdsrWsq7GxramotLqss7K1rLStqqyorKm4rbGwx7+4pbqwqa2tpaitsKakpK+kqZyenJuvmaOjoqORrJ6joKCiqqamuaWstbWkqquorK+2rqOdo6iqm6CampKks5mOiY2HkKKglI2TnJ+TkYSNkpKdmpmVk4eXkpWZp5ufnoySkY6Qd36NhX18fIeJiHBzcX59fVxTZG9eTllmXEZElltHO05tWGJbTF9iTlZXVldUWGdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis6ST8zQklTLD6PazxHSI+cqquiqbGkqaWztLK0tbKyoautvMy6rsC7x7G0rLTCwtHFxr7Asr3Awry/t7vEp6y3rLO4u7+vqrGtoKOnraqopLCjqrGqr6ywr7Cvq7O7p7awsqmyqaumpaOtuqyqscK5tay6qKioraqosaWppKOuqqiin5yjrJWlnpiemaydoqepoqymo62suLGyoKmioKuvsaydn6enqZmjmJmPoKeYhoSOiouen46LjJWbjo2Fho+Un5yVl5SGlpOTl6SbnJyLkpCNiX5+h4V8d36HhYZ0cnGIdWtfWWBuY1FzcVxLO4R8Rj5XdFhgWk5jXE5VVlVXUVxiXlNPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlFo+TEWVmK2ooaqznKqqsLWtuLWuq6Wqqr3JvLG+t8KvsayzxMPOzsO+v7PAwsO6wLPIw6uut62yuL++sq2tq6SnqrCpp6ixprSuqrCurbGwtK20u6S3squsrqeroKKer7eqqq26tqW2taOqp6ysqq2hqaemsrKkpqahoayWqqGVmqCmnqSiqqWtop+nsbetrqOlopuqq62pnKGlpKSYoJqVj5ick4GCj4iFnJ+Lio2LmI2PioKLl6OakZCai5OSkZOimZuZio6LinyGgIGDenSAhIF9c3aLo4h4al5gbmdXZYdjTj9nk0xFYnlXYlhSZVRNVlVVVE9cXWFVS01pV1VXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIY+SEZEl5KwpaOqsZirqq22q7axq6Wsqqm8wMC4uLO7taWysMTJy9G/wbu4v7/BucG5wMStsbWxs7q/vbKwrq2rqqi2qqaur6q5r6ixsa+yrbaqt7ems7WrrKSpq5yjnrOzqKiktLSgtq2gqqirqaynoKusqbm2qaqqqqKpoKyckqmhnaCko6ajqp6cp7WuqKaqoqOYpaanqpyipKOfmZifkI6PmI1+h4yGhJ6dhoOKiY2Nj4yChZSimY2MmZCRkY+Sn5aYlouKg390hoF/f3l0g396d36Ah52Pb3FnZ3F4XGBziGtPXplWSG14VWRWUmJPTVVUVVBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0pqNk9EO5aOsKGmq66arKWtr7O1r6ulsKqpur68wLGuuK2htq/Jx8jRwL68urzCvbrDwL6/rrGysbW8usGxsbKrs6iktamlrbOyubCjrbaxsLO6q7mvqa21q6qeqayfoqC1raihn6+yorSqnqinqqSqoaKsrai9r6yuraKoqKCsmZCwoZiioKennqibmaqwqaOfraKhk6Kjo6eYmqmlmJeZnY6Kh5SIfY2GhISkloSBgoqGjYyQg4OToJaHkJyQkpCNkZyUl4+KhoV4dIF/fHV4eYB7dHN6aICGo3VpXmVrgXVniIt9U1hwXkp4c1NkU1FeTU1SWWZOTFZZZFhGU2lSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQTSRj7KgpKaspKekrKe0srGqpLGoqri+wbyvqLmqpq6wycfJ0cO8v764vr+8ybvAuLCvtLG6u7fAsrO7rLisorSnp6yytrmzp6i8ta62vbC9pqystautnKmvo5+kq6qnnJ6qsqSzqJqqp6qkqZ2jqaepvau0r66dqaSgrpybs6OVpJylpZ+km5qpq6Wem6qhm5KcoaWdmJepqJKYmpOQioKPhX6Pgn+Ino+Ffn2LhpCNj4R/kpqThZOhjJORi5GakZWGiX5/cnt5fXxod3x6dXBwfWiFeISIZGFoY3KFem1meF1eVkJXem1UYVBSWEtLTnF1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0JKN0dTYFUqPTpEWD8qj5SxmZ+gqaWloault7Kypqmxp6y4wb21sKO5rKioscPJyc3Btr2/tbe/uci2w7WzsbWxvbe5vbWtubW+raGzp6qrsLW4tKufvbyps8Czu6Cvs7Wpq56tsKOcpKiqo56cpbCmsKCfq6mooqqbpKigrbunrrCuoKujpK6enq2ml5+boaOcn5yao6qjmpqkpJaXlJ+ilpuXpquLnpGQkYyCioCAj4B7mpWNiHt+i4WOjYuKg5GXkIaUo4mRkYeQmY+TgIh8eWx9dnh4Y3t6cXBxcnhogHRqg2dkaGFuc45tYWlwYHBBXHhsVV5PUVFKSk1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDFCaFkxM1M9ZV9ETDZLV2VPKTsyT1k9I5OZrJmfmKeko5+opLivrqOvsKqruMK6s66fuK+rqLS7yMvIv7fCvq+0vbfEtsOxrrmxs8C0ur23qbm4vauktKipqrCuubGqm7u9pLDAtbWhrra1pqansbOgnqSmp6GlmZ+sqKmeoKqvp6GmmKOooLC4n6OxrqCroayknKanqZqam5+jlZ2dmp6pppeboKiSmZOZnpOZlqGpkJqJjpCGfYd/go59fKGNjIh4gouEiYuLhYeSmY6JlZ6IkJWCi5eMkXyFe3NwfXFzdGB5eGlvcXBvaX5xY3psaWVjYGaGf19ac2tyTEx+aFhaTVBMSkhQUlBJTlxfblNEWFtSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo+L1lYNSiXnaaZnZatoKChpKG3q7Gks7SqqLnFtrOuoLesrq2wtcbIwbe/wbmwtLy3v7u+r6u9r7S/sLzCuKm7urenqLWoqKuwrLOwp5q+t6WtvLawnrC3sKilp6+xm6CkoKSkoZecr6ahnqKnr6KgopOkpKO3sKGmsaqerKOvmJyqpamemJqepZObnZqdpqqanJyllpWXlZ2OlJejqKGQiYuPhHqFfoSKeo6Xio2GeIGGg4iLjYWNk5eMjpaYio+WfoaXi495gHtwcndvb3RfeXdkbGxraWiDbWVyamtlaFxjc39fWmx2aVpIfV1bWE9PSkhIUlVGMjpfXmxQRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0FmW0hURFVdaEUuOzFgVCwylqOhl5WcqZ2loaOht6qvoLq5pqy9xbOwr6O1r6yur7TExL2zv7q3sLO5uLq4uq6tv7O0uK+/wbisvbq0pqKzq6ips6uusaOcwbamqba1qp6yu6mmpqiwrJmip5ykppSYobKlmZ6kqamcoqCTpZ+kuaikp62mnqWhqJOfqaGhoJmbnaCSm5yXoKKrm5uZoZWSlZaajZSTo6ekj4iKjoV5hHyFhXycjYmKhniAg4eHh5GFlZKSjJCVlI2OlHuDl46Kd357bHRybGxzYXh1aGhqZ2VvhGdoaGRmaWpfaGJpZlplemNhUnNUW1tTTElHSU9TQCEral5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc4Y04nMp6ko5KOpKacnp6epLWsp6q6t6isw8G3sKyitK2nr6+3wMC9scG3sa6xtra4t7Wsqryzr7KxvcC3rry8saWftqympbSpq66goMOrqaaws6ustLqdqKqqsaaYnaqep6WRmaatopmepKqhm6Kdl6Ccp7alr6quoKGdnaGVoKafoaCZm5qckpqelaaeraOYl56VlI6UmIyPmJqnn5GIiYqIeIV3goKCnIeLgol7foSHhoSQhJWVj4+PkZGRjZJ7g5WNhnN+fWZ4b2tqbGd1c2tjZ2RjdH9hZGVmZWlqY2lwWV5YXWxkYU1oV1pgVklHSEtNUlg/OWBsaUdCVVNcW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssMEEqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQTozQWVIJTWbpKCRjK6gmZiglqW0saKxvrehsca8ubCxo7arq66pub28u63Asq+urbavs7izp6u5sK6utLa7tq+4va2mnrWroKGwpauvn6XDobOlr7Gvt621na2vrK6jmZynqqWflZuopaCZpaOpnZqgnJSbnaywpbmnraKhmpqemZ6jmqWdlp6Ym5SaoZKolaypm5ScnJKMlZmOlJSYqKaNjYqJj3uCdIKBipiFh3yJiISEiYyIkoSUnJKSj5CRlo6Qf4CNjYJvgX9meW1oa2pncXJrXGhjYXJ/YGRnam1sZ2poZmxcbG11cWFUYmhjZVlJRkxNT1hRUFVhZYFUQFZTWVRGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUlkQic0k6Kbj46xnZuToZqpsrCfuMC2obTCvL25saa2r6mupbe5t7isu6+tqqu3qrS4raWztbGuqbG2trGytbqoqZ+2qZ6fqqKqrZyqwZmupa+wtrWsrJ6xra+qo5uco6yonJWcp6SdmqmjpZaaoJ2Rm6Orqqm6n6akoJiamp6hj2uilZiccYKWnKSAdpGrqJ6WlqCRiZeZgJeLn494hZOMg21pfneDcGyGioZ9hIqGb11kYGeEl4Zri5CUknV3i4R+g49/ZoeAaHVpZldcaXRuTlBqZGZxgmZeZGZubGleXl+JkIWHaE9LRDhFVGdeSkdQUFVVS0dTYG90ZUVbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTZPa1tOXEtbZmI+RzFQYjwrL42kmYeVsZuck6Cbqq2ro73Fr6m3w7i9vK2ntrCmq6S4tLKzsbmtqqestKawtaOnt7a1qKestrOutK2zoqmftKueoqWcp6iarr2Vp6avs7etraSorqqrpqGenKCop5yXoaamnJynp56Tn6CZkJ6nqqO0r6Oio5yWmJiXo4ihj5Kah6GHlJ6hf6V/p6uek5Ock4mEcniMjoOHoHaIjGmXiGZ9c3igb4iHg36MfH+hoJ+Zf3uInnSIjnabimyHgYNtaGVjemxxYlSGbWNtaZhxWGpwboZXXmlba2pbiHBteXKHaYeEWl5GTj5GXk1GUlZXUVFSV1RnXkxZS1JSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxVmA3LyiMppeEnaydmZmdn6uqqKq/w6+yur23wL6qpLexqqyms7Wur7O2q6mlsa2ltbOcrLW2tKWnqLOxrbKor5+qobOpn6SjmqKjna+2laSmpra8pqynqaqsp6aioJmgp6SZmaajpJmcpKqXlKKclJOipaagtqSjoKOYlZOYlJyIrpCYlImpi5ejnIWxgKStnpSanpV5gtSof4eUwJvHeXixpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4FslrGrsHhoa1ixrm9labySvG5oem1xj9h+U2pjtrJ/gHGUdZqhqpBXT1dhT1ZORlRbWFFQU4tcV1tQQFxFUU5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtcNDEhjqaTgaeqn5ednaWtsqmxwr2ytcC1t77Cq6a0ra2pqK+0qq+2s6inprWlp7iunLKxtaqlpKeyrq2xpqqep6SypKGhn5ecoKCwrZWeo5+0uaKpqKGtrqSinpuaoqmgmJuooZ+YnqinkZynm5SdoaaioLCjnp+jlpaSmJKZhbBraoqNqn5nhJaHrWVxnp2VmqaVca6hpH53unxroY92sV9qtFulgGWckWBmgXpmf2p4aqllvnJnpox2sWp8sXh0kpNjbW2nbVuEoEVpZ4eWRXWcYH1me6Ongllfi6tpgJR4emqnN0qvW1dUbGNaS09XX1xXVjtOiE9XVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5KilYKtp6Wfo6SqsbettL2+sLfFsri6wqepsKyvqamxrqSwurCkpK6zo6m5qZ6zs7CjpaCqrbCsr6ann6OisZyjnJiVmJydrqeXm6GftLKhqpuhra2gnpqXoKKqnZmepKGcmqGnpJCdo5qXoJ+rn6WmoJqfoZWVkZaRmoW1m7V4hamZtZl3h7Obt3+TlpeplX5rgaZ6gYWHkpSSd6tnarFbrHuOh5R0iHCOhoB/iJCXeIOCi5eMg6CPhbB2d59xa2psfItOpFhIY2OZfmNopmB5cnVSk4ZeUKltY3F9hoBinS5Rom5bVGtnYExLXGRYXFpCPrB4V1hBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8yLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dXN0o5YVU1MByWn5SIs6amoq6pp7Osqru2wrC8wq24t8GqrK2ur6ausqmhr7yqoae1raOrtaSms7Ono6Kdp6qyqLCnpZ6gn7CXoJqVlpeYn66jmpqkqLSuoamPqaipm56VmKClqZqfnaOfnKCjpaOVm56Ymp2iqpylmpuboqCWk5GTk52D1ZOZuXCwwn7GhnzWlJu7fJqWpZCNm4ykeo2Ho4KlgnqseY+dVa97iX6farlauXeGg32mgpN8mHqqeY2dj3uxbo6EdJC7hW+UT6+nxYpRoHpjYKpic3KHbJeHX1O1tMiGgIl8Y6QzQp12XVFqaGRQQFhmWmRhSkhNbEtaU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSguMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFRODIlnKGTmLGoqKWzqqW0qKW8t8GwusCxtbW8s7ansbGjsbOmn6+2qJuouq6ir7Ggs7SwoKSenqepsKm0qaWcnZ6rmJmYl5eWl6KrnpqXqK2wqKOfjqyip5ael5yhpqKYoqGioZqioqebnqCelZmapqCcp5Wbm5+gmJCSlZGdiLJuaLVxq4hwjqZytHNytnuamKSNj5uNon6QoKV+sHaDkdLRdVuufIZ/pG+bqqZrhoV9rX2XmY97sXOTnY54s2WWdIWebp5mlFLIi1rCXJ95Yl+tYHdzhmKXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFPal9saVBVRkk5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyL6KdkaSvrKSqu62mtKWotru8sru/t7a0u7uzpbW0orKyo6Csr6SYprqupLGwnLS4qaCmnaGqpbKorKqlmp2aqZ+WlZiZk5OjqaCXk6arsKWilpKsn6WSlKGcpaeglZump6Gao5+tmqCenpCWm6KenKWUnJWZop6VmJaSm4Wse3eodqOPi4epb62Kg6iDmZmiipKZi6J+kpiJroV/grNccrNSrn6DgqR/cdd9d4R+j52GmZp3r4aKkZyHd7RhmmWagoGVbJJasFhLmnWYeWZgrV53d4dnmIhqXa93lZ6PeGw1eciusl9CVG9eZ2BFT2tfcG1WVU0vZWNpU1lRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6ODifnZSguLCYtMGtqLKnqrK6uLS4v7q4s7a9taW4tKC1rZ+gqauflae2rKiwsauttKSbqaCgqKK1p6aqo5melaWilJScmZOWo6abk5CnrK+loZWYqZ+ij5GimqmmoZWapqmenaSerJ2gnaCNlJ6bnqCYmJuVl6GglJiRp52GqX19pXmhj5CDqnCtjIKnhpagoYqXl4ijgZCHlKp8gIudeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClGySXKtbWpN/kX9oZ6pkc3uBa5iHcV2sWomgjmtuZU9KQ6FcWk10XWJmTVphX3N0X0pVNUqakllIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT44oZyZmb6smLTCrqutqaa0sLixtb+6urOxt7yqu7WgsaWepaennpOqsamvqrWsqq6hmKGgpqSkuqKjq6GXm5GioJWUn5qUmZ+gkI2MqbCvpp2Xmqemn42SpJioq6iUl6qon5+go62joJ2hjZShmJ+gkpyXnJWdoZWXj6ubj65tcrR0qYx3iqZztHl0s4CSpKOSnIyJpIeOdrhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJql1ytYE2hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdmVG9uLlunT2JTa2VibFpiXGBxfGNTWVA+Pm1vM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs8MDAwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eODFCOaWam527opyywK6tq6unt6m4r7XAtbyxr7m4q8G3qquhnKekop2Sq6qntaOyqK6qoZecqKCkq7mdo62clpmPpaOWjZ2hnJmdn5GTlau2r6eZlJusqZeMk6aapa2kkpersqSgnqirsJmhoo+Yopegm5abl6GTnKmclJGrmYfUkpq7dLHEgMOGfdWWnLh4iJGXjJeJjKeHeaO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIpumohwbY2kdL1dd31bYXm8alpWW2l5XmlgZGZibXhvWVtZQ0FAcj9DRis1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QDmmmZ6ivKKXscOwramqrLGnuK+2xLG7s667sK7Bsqylo56koZybkKqkqrKktaetpJ+WmqqZpqy5naOumZWhkKagk42co56YnpqQlpKvubCrlZejp6eUkZalnaStnpGgqKugnJ+ppLKeoqSOpqGUoZmcl5akmI+woJKVqp6FkJm1gJGRjbiVeIKTm7V3bmxuc255j4SOiXOewbu8mXqBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycHe2jF6Aen2JZ4N5bXlii6xwdYV/WFunakRkWlRmX2NdYlBnZnFtdUJNUExEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs7VlYnPTs8pp2gob+mlrPDtKyqp6yrqbuusMavtbSvuKe1uK2qo6Kmn6CdmZOspK2qprWoqJ+blqCjnqykvqahqpiVnJGim5KPoaiik56XkpiUsrW2rZidpKSii5KSppylq5yWqaWmnZuiqaemo6igkayel6Oel5eYnZ6PsKmUnKeijmp+aZyneIlzfpqOdXplh3u9vsC6bpKDcZSGX3JqWl2aiWFkh46Va2CAlWNtm3ZilGt/mpWUZV5gY3GbiWhyjH2GlGZqfnF0eX18Ylt3dIFoUFxuhH17i2pYbHmCcklKb4VwTXRNRVdcZmFMW1dmY15PWm12anJST0RFTjtISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SVJfSSdTYFY0KVBeTCgzPltPJz8yPqifqKHBo5q0urajrKWup6i1sqzIrLC0rLWjvrGyp6CjqZ2jm5qZrKeupKW1qqWbmJWim6atqb+oqaaWlJuVoJqTmKWpqJGekI+YnLCyv6ybp52noYmTkaqbqaScm6ygo5qbo6esop+qoZmvmpWmn5aUnZ+dl7ClmaKomZyRnpyjpJmno5qcmpuakJaCaG58cXaRl5SRhIm0qY2FmJWOioyYl4eUlYqDkpKQiY2RlJmTmJeaoKGam5SgnY6CeqSFbGl8kHyAdImKgXGCeHl2doqAe4lqc4F0g3Vkd312a3B6bWBjW29oTVhYZWpfV1lwem9uZlNPRlM5T1pOUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5TMTBUXjorPThdSyw8LUCyoLOhv6KksbK3oKmls6elsLWqyautsaa1psCotKGepaWcpJaVoKunrKOjt6ygmZaWoJetqqbBn6yklpKcl56Yk5Sin56jp5KRmainssOvmaudq56PlpapnqucnqCtmKGbnaKlr6ahpKeerJiXpp2ZmqGenpywoJ2ip5aYk5mUoKKWo5+XoI6WlIuKjY+WrY97lZuCkoGJqaiFgJiWioSOn4h7hJCGhZmQh4aJlY6bl42QmJ6jlpmSkJ2Nfo1lobOuhYmEdnqPin12eXpvZ3mQgYCJa3WBeYhyaHR/enaDiIJrdGN4Zl9oZGNkZmpYa3txampcUkxQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76tq66ysqCqprKtoqyzsMWwqqyjs6+9pLScoKeioZ2Zl6imqaakprO1npWUnpmZr6auvqCro5GRnpqZlJGVoZyXqZ2FnqmsorPItJ+ppKqWlpiap56pnKCkq5Sen56gqq6ppaKqoaybn6CgmKWenJ6cr6SZn6iTmJedkqWamKmempdmg5J8ZX6Omo9jeI1saGt6kKOra2SZmH5nhYplZWloeo2hjmtnjJeRondraouYop+Yc2xueoSNhXlYZV2FgV5rioqBdltoc3d3kYCHgm54gniAc215hHR3iImPg3tohFhdanNkXXOIaWp8cWxjXVFOV0lkWEBKND5GNz9GRDcxPD0/QUM7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS83Wk82KUVZL0RPMVlDOz8uPaWfury5r6uzsKulqK2usKeurrC9samopK2wsaCtl6CknqGamaarnKyjpqips66elaOQoq+mtrmlrqOPjpqhmZOSmqCZmaaWe6Wsoqizw7iloqevn56VnqOfpJykqqiSnqGeoKqvqaqiqZ+nm6afp6CslaGbpbCkmJyrlqGem5OlmJ6rmZ5+voOIcrRyhZ6GrWh4ucS4cZKho3ummJlzqoJ8y8DAu3GLooeDnnyVmIiewL2Clp2djZzBwXuBepGMmsK/fWulsW+MgW/Ken+beJGDjoB2eYF/eXF6f4dweIWMk3lsdZFiZV54ZF9lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmplKOvqbCvraayta+rpqamsaugq5iboqCcm6qnop2roqWppaS0pJ2jk6aurLi0p6+ikpGZnaWSkaChmJygnYemq6Srrb/AsaGqrqqWkp+dopmipKqjk6Chnp2srqmrpaOipaCkpZytqZGkm6iuqpydqpysopaXpZaho5icf86UeXqlgnqVlptfrY9ejqeAoaB8p5WbdKuDgK9eZI2peqeHhZ90l5KIs2OCq4agjY2yaoSudHyWh7hhgq1Zo81uj3V723t/mXF+iJJ1f2V7iHZ2a32Ibn6FkJJ+bICNX3Bqb2ZgX3hkXHFoamNmYFJUUlddSk9DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc3MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKy0uSjAnO1w6TC0hUEBGNC4xrcLAwLW0sLeYnpGkqqmttKumsqytrKSsprCqoKebmqaYnKKwn6CfqKejpqGfsKybnpamrq2xq6isoJSSm5+lk4+epZedqKOerqSrsKi/xrOoqbGulpOcnKKXoKmqn5Whnp2drq+nqqibpqajoKqSrbOWpqOrqp6jp6ahsKGSmqeaoZuUlJGXoHCFjJd1hKiHcbB8nXKsfqGfgaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIoYuRi5x+q3uIko6ggHqtVpzEeo9vksF9gZVtdXCMbWZ2ZYZvYXducm6IipGPg22QjmRuc3VvYGZtZF9uaWluZmNXVFxhWlJSQzhJSUBEPD48QEVEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz5XSi08KD0xKTNWQEYhHEc6QzEuK6/UxseytJ+do46jo6KtrravqbCnqaqorqurp6KjnZmilZ+mq5+ipZ+oqKKfnrCtmJuWqKevrainqZ6XlZqkopKUoa2bnaejrqyjrLWpuc2yraaurJeVm5yimZ+urJ2WoZmen6mxqamomqqoo6Grm6+xoqisrqaZpquqqrGjk5ejpZqUkoWkaqR1iXqpdHqycYKliZiMcIigmoekX2BSq4R/roKbda6Cp4aGn3qYloV7ZoCjiaSYhoGjfal+gJSGrl58qFWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnVojIuXj4FsmZFubXh3d25sZmVkcXBme2ljXFdfaVhYVExMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLWwr6mso6imqqurqaSmoJuln52lp6ajnKyaoquhpJ+vo56bk6qktrCuoKmbnZeVp6SRm6Kon6CmnLCmo6ixrLbIsrWqrKqVkZydopmfpbOdmqGUnJ+mq6uirZmrqKGhqaKzraKqs7Kim6qor6+2o5OWpKeYm5F8qmyehId1q3l8sG6CpIuIn5aVn5WB0re0uMmAgbJeX5Spg6SHh6B6mJWZeKrJc5mjlKepkJKbjH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTY46PnZJ7cJaRfW96dHx6bVxmanJxZoFpXmFYY21cXllJTU1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTk9QTUZMSlZGKkwwLz4tNE9UUR0cOzxGMiwkqKTBxrmtqLKurKWinbK5rKqhppuopqqsqaegpqWYqqOfrqudpqCsmp+ppZ2ntZ+il5Ooq7ayrJumnKCVkKatkZibpqKgqqeuoaOnqbC0wrKzqq2olImXnaWboqOvpZehlZmcpaWrmq6crKelnqujt6yhsbmwnZuvp7O0s6WVmKikm6COgp1OeJqBf596hKN8gqSEhqaenJ6ThLh7fHm5gn7MxcK2eJqgkIuffpqWl4p1npeKpJijqH6whZyEnoOsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWPkaOWe32RkIhzenKEfnBbbG53cmqBblpjX2huYmRdS0xRVEFISEZJOjlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMjpQW1QcGzY/SCwtIIyHmamspKu5q6+gm6Gss7Smn6CVpa6urqmmnaammqOnobKuoammsqCZqKSUorWio5WXoam1uaSbo52jk5CisZmdm6akoaKvrZ2kqKK1scOxraqtqpGHkZynnaOknaWXnpiZmaWjqJmtoaykpZevpbytore3rp2etbK5srOnmZ6woqSeho/RtcO3eYeOhZGTj4CmeJSid4ygkoSlgotxq4aEtG5yaZmjnJWJn3yYmYaHj3KugqWboo2mi5OdiZSQmm1wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5OlmH2Li5GKd3x4jYFsaHdpeHNuf3RcZGRubWVoYEpaV1g8R0dAVDNARj48Kig2My4wMTMpJjQ6Ozw9P0BDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWSc4yKrr+/u7u1npeopK22oaOZlaOpp66pq5mloZ+loKC1p6Kpp7CjlKujjqSto52QmpqqtLSknaacqZKUl66gn52lo5ynnLWaoKqjtqvCsKmrqaKNhI+coqGmo5aZmpyYm5ilpKaYqqasoaSbrKe+rJW+sK2fo7Czuqy0p5upsqWomHqokH18sHeKgKSliJxtsm+gh618oY+DqJaZgKyJhK6Fn5SooKKWhZ+AmZWAe5J9q4CdmpaKqnidoI+Ik5KAea9do4F8pqdknYB8l3Rrr12la3GFmV1gW4ygbpWRppmCk4uVinl5gpZ/amx+Yn10bn95YGZlcW9oZ2hDWWBbPUpUMlQ4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVVFIRklKIygovJKahKnGw7bBtJ+braCuuKWkjpuko6Cvrqmfo56drZieuaCiq6CvqpqtoZCqqaSWiZqQrrCspp+om62YmI+toqGepaGapZytmJ+opraov6+lqaSfjICOm5ugpp6SlJmalJqapKOjmairq6KjnqmovqSXw6yqo6Kss7qsr6ehtLCpq5l2r36QipyFh3y6rYmYZLCMZZWtfaCPg6eWmoGsioSwhaWZpKGikISgW2xqgbNgf617e4KBsWxnbpmXi4ixW320W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqiaiZaPlJV5d42bfWNyfWGDeHOAfGFpZnBtZmVlT1VjW0FUXj1JKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdXWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjnK2mpbapoYuZoJ+ds7KonqKfnbSYoLOoqquesK2erJuVrqmijoibjq+tqKajqJmuk5qPqZqhnqWfmaOjpZmeoqmyqLuvpaienY98i5uWoaCakJGam5GZl6eeoZioraakpKKkqbueoManpamiq7S2ra6noL2ura2WgamSo66Om4CGpJeYj4GAuMO6g46ck4Snl5yCrIqCr4imm5qlqpF+1b3CqmKjv718fqOCg9e6uLWFk5KCnr2+hGqjgW+rhG6cf3qysceDaquwva14d6K+u3SAlY2mm46Zj5WbeICPmXlifHpjjGd4gXtga2VramJQYltTalxAVGFCTSk8OjQvHh8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbS0sb+5sr2zop2upqazpp6MmKW/qrewp6C/pqaxm56xnLmonq2vpaeVlK+sl4yDmpGvpqOsoaWcqqCYi6OSpp6nnJqhqKKZnqCrram5rqikm5eTe4eZkqabk4+RmJiPmJOomZ+Yqaifqaahoqq7nqnFo6Cvo6uztauwqqG8qLCwmnR1qqS3hWWJn29nrI+Kj21vd6SQmZ+Bda+ZlXCQjHGVp6ObmK6kcm1tbWWKd25tgplxgHlpcGlniZWVl3FoaYWGZ3CGZF6JY2pwWV1nfnemYGJxjpJvZmSAjZKOopeWl4+UnXuGjZN0ZYZ3aIxqeH55ZGxjZmxiS2RYSmtZOlBlRVEnSzkrIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJSts6q6ubKzqqmirp+ks6qYkr2xw8i9tamewKuso6Cmq5+6o6StrKymjpatqo+MhZWXrZ+lqqKfpKSgkYylk6eZqJmWo6qglpylpqevuausmpuTknuEl42mmI6RkJiUjZeVp5Sel6iimq+mnaKsuZ+wwaiks6assbKrrqyouaSvuJaKoailtpyJlqGXhqmakJSdk6qzmZujrKGzl6KgnqCinKCkoZWrpoySk4yHkpyclJCZk5iQjpWFgKSal5WNi5OSio+GhH1ni4B0g3Z0h4xxp218lZGUk4GBj4+Pjp2ToJWWlZ+BhpOLcGeOdm+Kd3Z8emlsZGRvY1VgWUBpWkdiYE5ZKkU9KyYiNzQwLh8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5VUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbivrqKwpK2gobaxkI6rxLvEureqoaWdm6adsKijtqedqbSmp5GYrKOLiImPnKeWrKShmqeen5OVo5epmqiZlKehpJCap5mhtbqoq5iakI18gZSMoZSKlJGVkI+Tl6WPnpmon5u1o52mq7eorsKuo7emr6+wraqqtLqir72ZkqajprWikZ2mno2pn42Sn6Osr5qho7GpsJikoZykqp6dnZyXq5ySmaGbk5CWqpmNmJiWkJaekYignZSUhZKMkIyUi4B+ZoyHdYd2eYiDc5xqh5GUlJGKfYyWkpKYkqCRm5WfgoaXhXhxlHJ4iX9xe35qbmRfcGlgW2BZbWJQYGRQWjpHRkU9Mz09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZcXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlaSno7CzrK6jqaetoKi1qpGQnKOyuq6rq6GimXqdorCkpbGplpu4pqOUmamcjoaKiZuikK6epJaooKGSl5mcrouqlo+omaiMmKiPnrm2pKWYm42JeYGUjJuTipWRlJCNkZahjJ2eqJ6et6N/g6+1orCvdKS+o7KgeHqgq7O8lXaupJ+KgKp+ZFthdp+OpJ2Dl35uk7Oco6iuq6NlnqCTc3mZlnCAmKiXbH+ip4llnKWbkJeYlouRm5CFnZqQlIKSh46OkomFd2uPh3aHcXyGgYBhaYiLlZOLW3aVkWdoj41xeqOXlmR4mIaAdpdog4mCbnl/a3BlX3Zva2toXGZjYmJvUls+TU5OUkc9QFRCOTEuHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTFRVVVlcX2hmZ1dRSjxERzw5VlJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqaWpraOnraWSlqq0rrGlmammq5Zzi5yvn6irp5OWuKCgj5yknZF+iIiano2rmqSVp6KejpeSnoV1rpCJppqokZajiJu6tKigmZiLiXV2k46Wk4qTkZCUjI+Sn42an6aZm7KWgIybtZ20jJKPvaehfqeieqOvuIGOjqefhIuFj7Cpr4yJlqKZeYGLrIacnaKoqqiIlYaYd6WbeoebgZemgoF7nLF6ioWfl5mUmJaBkJaWhJmaYnmHkISOj5KLg25xkIh6gXGAgYZ/hnSHhZaSeJZok3SgmnR8mYOem4WYfpGJgYKXaY2MhGp4e3FwZ2R3bWlsaltlamllclteSFNMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaGZZUUg5REs8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZStxrywoZWlqLSdj4Ocq5unoqCNkL6emY2fmqCQfYWOmZeIq52jlqChko2UiYaAkaiOh6Kco5OWnYafubKnnZqTj4VwdZCKlZCKlI+Pm4uPkZ6Rlp+jlZ2siJ+0ibSarovKiKuuibeFjbCDsa+EqY2nmI2dfKiPcnt3m46mlmiVpHm0i5+ep6mSmcKBf6uImKFxnoCapH2XhZWxgaF8oJOfj5iXgI6Tm4mYkot8hZOGjZWTiYNtc5GFgHtyhoGFfYV0hYKXgY/FZoCph4+iap6Cn5iBmYCKi4OImG+NkoRnd3R7dmdodXBmZ2teYm5sZmxYZkZcUEwyRTQ2TWBjNiY0PERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5saqrppqUn6KkqqKVo6m2oq9/oKacpZ6diZS9mZONoJGdkHmDlpaRh6uZnJuaoYWPjHebnI+gkYiepJuVmJeGoritpZmbjY1/Ym2Qi5OQjY+MjJeLkJGejpOfoJihqH6hp4etnaCWro+fnZ2RhoGgjauwh6SNqpqMmn6jdoCYk2uBq3RNq3iHjZ2Rm6mogqqrfYOhe3qnaZ5/kmtnl4aXtoiefW1gY1iDl3+Me2Rni3OZfXmWbF18l25fU3GFXGBseYNgWWWCfYSBmHGnqmuDo25ypXCfg51nZJ9sWmyIemVZX4J+YVdQb3ZlbXRxampvXmpvbGtoV2hOXVdFOUE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9idmBNRDpNT01UYlxbZmZpaWJiZGFkZGJhYmBiZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKitryrrqKZl5+hpaysn5yttKKnkaCfn6acmY6YtJmQi56MlYt1gZSRjYqmlpaYnp5/k4WGrKSHnJGKmKiXmZqRh6WwpqKVmYiJgGluiIeLjo6Ji42Si5CRoYyTnp+boqV/k4GPo6GUoHeclpCng6GngIaqroWleYt9hJp9onBzk4eWe56MeW2Hm4yZkJupm4+HnXyConN2pmaefnekX5h6fJJzom6Yt7S6dJKHgYC2qGSBxrh7cJW3jHGAm6RjdKyrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN+o16dmbOWb3uXnrN0cluesoJpYm9zdXFob1lrbHJyZVxoXWJLRD1ENVFBWXEyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWlhgYHxkSUM4TFdVVmJhWmVma2tiYmVhZGNgYWJgY2NfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mayck6COpbi1rq2gmqKco6OkrJuasayrkpegmKCkmpqUnqubi4iSeIuFcICWjYqPoJCTlJ2XfZGJjqihh5iPipKjk5uajIuoqKSej5aHhH5re4Z+fY+Ng4uQkImPk5+Cl56gnaCfi4l3nJiijKByoouIqYicp5GXqKx/rox9eqCZeqOTeIBzl4iMnH2Wn4abjZmbpoajZKF8iZaQm41snmiajW6amXp/iqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z1iYp/nmiadYeTkpiOf55umZBrpplcqH53u2p9qVqOhF2zZ1xtcXh3a2lbcGl4eGJeZVdiQVBETzdWQlJtNEpaWl9OWkRAMTUxOzs3SD86Q0hVP1hSWV0+RGJdVmBRYWR9aUVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCsnaabm6efna2anbCnq52Xopmhn5mWlqCjmYaJjWmIgHF7l4iLlpaEkpWYj3qKhJajnYmVkIaLnZGcm4mPqKOgmouRioCAaYGGeH+WjHuIjY6HjpWafpSjn6Cik5hyaJ+KoI+McJKMgqmImZ+jqaGofbCtpKK4l3ajs6Kjf4iUeJ16q5p+oo6dm5eIl3KhfIWNr7V9a5qRoXh+mLSjo6uohJh7mnycmX5zqlpdb3uXi3ieYk1/e3uFY3qYQk2fWaJqcnyObYGJhJl1m3mHibGzf3+akqZ0f51tcXyUb5lyaaNdlXZIZWNgc3B8fW5lYGtodntiY2BRXlZcVFZAWUVRZ0RSV1tiWF9JRD1COEBCOklFOExFWEFWUVtWREZhXFpgS2BtfnJFQzxVX2JaZWpWZ2hsbmJmZl5hYVxdXmBoYl9lY3ZsXmVnZmxkZWxoaGtpk52Bsa6ZhFNfoae0urOzqZqii5upnJuokqGro6Cnjp6dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGSlohygImSoJxykZCBiJiUn5qEjqicmpWKi4p8hGyEhXGBoYx4hY2Ih5KYlHyTpKCeo4iuhn21hI+enXumlnqpgpadkIuhnn2naHdtfplzoHNxfJ2FmG+Tgq59o4OmnpqBo3BeqWd1o2NvpWGc05B8epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKovH93g21/v6aqtF6bb35xl2+Bc6JyXaNndKZhaKZtm9OYeoKbbnd5l2ubenaXcmyppWdfZHlwfoRrZ2ZjbXZ3Zl9hUltlUVFiSVdJVF9XU1tlalxlUUVDS0xKS0JKRDhQQFFOV1NYT1JRYGVlaVJkeHl3SUZFY11lWmhqU2loam9jamdgYl9cXV1faGJhaGV7ZF5kZ2RrZGpsZmhsaJibf7CsVFxLfqmwsrWws6OcmIWYpqCgoo2kqJ+XqImZl5iTmZOSoJeNiIV7cH2EaH2Pg5OagXeRjY6JcH+Gj5KSbJeTfIiQkaOVg46qmpSSioWJeYR2h4BugZ+Gd4CShoiZoZZ5k6KjmqCJs6Gitot6rKekrqVwqYCakIWBnJJ9pICimYaYcp6EoqyuiZeLgIykjZaDrqKUdrW2tcmhdJSKgJ9hnpepbXiWhp+adaGHd6B9kJaKgW9MZqKScJqIc6R7eXRhg4JsfqBscmRgnHJ/dJdpe2mztbTGpnOYfnudapuaq3SCmm1zd5dpmnl0mHFQRXyzXmp1aniHZmpnYnR0cG1VXVNZaFBSaElVTFhSVl1na25WZ1dNSkFKTUpISk5BUUpQZWNpbWV0cnN+eHtudYl7e1RQT21daFtraVJqaGlsZ2xmY2VfXFxcXmliZGhre19dZGdjamZubWVpbGWinImvp4VmP5Sis6uvr7WiopCAl6iioaOLpKadnKWBmpeWjZeQkJuSjYiDeWp5hmWDjH6WoHl1j4iMgWmEhZKDjIWdjXqMipSlkoKXqZeMkYuAiXqAfYt5cJChhnmAlIeJlp+Uf5Slp5yWloRnbnicbKJkfHGld5yYcGengZeMe6V6oJaDl3KfdoCJlJaPuW6QiqJifZmilYhucmmqa3WgbG6mYJtpi5BoloealXWigH2aX4uFjHVviGJooWWef2mbdXBkZoiCbnKiWl9bZKFuXomMb3t/c3JkpW54omRnp2iYcouYbqFvUoiPb6BeZKdUi11TmG1tcmpxgWxwaGt4c2tvUVdWVmZZU21JWE9cSFhpaHNqWWtWUVJFVlxMWFJhVWhqXnd1enxwfHxygnt/cnaNgIR2XlFzYWdicGdQamhoa2xuZ2RnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWYpnpldG2Lp66lqrCxpp+LgJaqnJ6kjKGhmqGhgJWYk42aj4uXkI2Ke4ZxgIhoi4t8l5pzdIp9kHtlg4eVioqVmYJ8iIWWpo+BoquQhZCKgYp9gICOc2mPpYR9hZONiJifjYeSqqaeiaZ4lpx+pYmWjLKYnpCDr5efpXiWiHqpdKWPhJpupaKMkoSMg7xufKWvgoaFhpOWnKB9pnpxqJSglmeefm+rYpaKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm5tn56SlWF+q4uqdoB/jaefd599haSVnaBpmod1q2aerYy2c3e+jKSTWYOmjathdXFzb3t0cGJqfm5obFJVWlVgYV1rTV1SXUldbG12YFtxWVtgWmdzZW5vcmNxdGB3e355cnmDc4N+gXt7jIGCgHZieGRjbnNkUmxnaG9scmlmaWFfXlxhamJsbHpvXFxiaWJtaXdtZ2xuYpWmqpyBgJ6klqmqnqinrqOZiYKXqpmdo4mapZyonYSLmo+FnJGFko2LjXSFeoiDb42EfZaTdHSGcpKCbX+LkoeGk499e4GEl6SNf6WljYCNiYSUdYOHkm9siqiAgouTjYicnomMk6qjoJCAdZWXiH6BeZSuo3+Bm3GPhniQjIWAe3KnjHF9fXqXlpuEjnh7fn2IlJWTinaQmZ+hhHt9iWuMhVt5eXJ5cGhufZGJcX90gY+Uk3GFg4FljX9fgYCMd3VzlHVvem9uh22Ehl93aHiOZoGCho6qnH50fZdqiYhvf3V8hHVtbGaMc3h7l3eEW2pYeI9obXdxcG93d29dbIZtaWdWWV9XXGRrZFVhVV5RX3B3eWtqd2Vqamp1fHFxdHNhb3Vic3uBeHV5gnV/gH+AeIuFg317bX9sZHluXlduZ2h1a3hqaWlkXGBaY2llbHB1blpbYmtka2t5bWhsb2GOlbqpp4uhopqmpJmknauioIODl6uRnaCJmqaaqJiCgZuLfpaUh46JiI1ygnyPfX6PhHqXjnRyg3CVhXt9kouGhpCFeH6AhpiijHunoYuFj4+ElYKGjpd3coSphY2SnI+Inp6Hi5qnoKCrg4mOlZp+fomWraiPkqeQeHCekYN7k29+qYVwfZVxam98gZ+Lf5KOjGhtXYOLjJybn49zlYuIcXRrgnZzf1lyboaPgX1+i2ldaWN6hYOIgF9peHubfIOMg3aBhoNpeYuHa2Fxc4N3YHOMgomQp5WGZo2Pg252i4NvhIx4bmRmY3mCepVaXGlmbnZbenl3dG1zcoJmXG2Ka2tiWVldWlhrcVteYFleXWZzfXtzb3Rjamppe3xxend0ZG10aGx8fnV5fHt6eX+Af2+GioR7fXN+eXN/aVRccWlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VubGdzeW5oam1gjIyrsaKQo6Gan56Ynpmpo6F9g5erjJ+Uh5uikKSUf3uXhHySmYiJhoaKcn2Ai3aFi4GElopxb4BymIaEfpKDhIaKgXqAg4qano+CpqCHeI2XiJWLi5yXhYN6rIGQl5mTiZ6dh4ihqp+ioqOMiJObnKOZlqqhp6agkpuIl498eY+OhKh+f5KRkpOcsKWalJ2QjrKTmISmjIyVm6CJkJuCiZGKa3yOdndlgoaQinyJnYSHi4+HiICEg5B3fHp1mqKJh4ufi4aVf36MgYB2cXSGhYB4iIeKkaaRhIaOiIONkIx8hoqHjoB1a4GDe3mZaXJoYHOKcH16dnVvd3SBXF5vh2huX15aW1xTZ3FVY1tbYWxodHt8cm5wY2ppaH97bXh+cWhvcGxmgXtygYB3gH1/hHttgoyGfHp4fH56g3hOZHZqc25we2VrZWJiYFtzZnBmcnFsVV1sdG1peXpwZ2lrZY2InbqflqKhmJWZmJSYpKCde3+Zqo2djYWfnIqelnx4lIJ7jpmJhoOEhm14gYBygId+iJOEbWx+epeGhIOQfoCGhIZ9h4OMmpySh6qegnGKj4WSkYuckX2NeqmDjZKXlY6bloaGm6agopqdhoOSmZmYkJqmn6adnZCXgZKLd32IjoWle3yPkJGGmKmhnJOcj42qjpKAno2Jk5qfg4+Xf4eOgm94hXF0YH6Dj4V0i5eAg46ChoR+hYSUbnl1dZOii42Gm4WFjnSAin19cnN7iYR7eYyOhJOnj4aEj4KDiomJdYSHiIp7bmp9f3ttaGtsZ155fmd8e3ZzdXV6dlxgcH1tdGBiWlxeUWZtU2VaXWFraXZ5fnBrbGNrameAgGtygGxrdG94boR5boaAdoKAfYV2coKNiH57enx/e4KKYGl7a3VoaYNlamNgaVtjdWhvYnVtbFRicXlkcHp6cmVqbW2Lip+4mqGkn5OSlpeLmp+enXp3naWQm4mGpJSLmJl5eY2FfImRg4yCgYJtfH94coCFfYqQfWtofYGXiIGIjnx+hoSHfI+Aj5qakYinnH9wi4qLkoagoYqFjHynkYePkpeTlpJ3jaOgoZ2Wmn+BkJmYk4yaoqGjmpeRm3+OhXmAhI+HoYB+jI2PfJekoKCSmZCPpo2QgZuRiZOYm36Skn6HjoF1dIJwdmB9gI2FcYqVfIeLcYx+goWFjmh4cnmMmZKQgJh+iItygod8fXF6fIyFe3uSjYOWpZOLhpF8hYaHhHWBgoaHeWRxen54eXBsamZefXJofHV1c3xzf2peYHN2cHdkY1leXlJqaFRkWF5hZ2p2eIFxZmtjbGhlf4BqbX5ob3BqfXeFemuLgXKBgX2BdHaCjYZ+fHp/gX1/j2pyg25zaWGIaWxiX3FVdG9tbmB4aG1XanR2YnV6e3Fia296iY2fs5KlpZ2OkJiPhp2gmpx8daOgjZZ/jKKKiJqWeHuGh36DiX6IgoB/cH97dHWChX6JkHhnY32Gl4qCio14fYCMg3mWgJSWlY2Wn5p9b4uBkJOGpZuHjImDpZWEkoqVl5KRdpGdoaGYlJh6f46Ylo6WmpyknpmTlJt6kIaDeIWXjZ5+gYqOjHOXop2gkpiOj6KMjIOXmIOTlpp/mI18iI2BdnF9bXpkgHyKhXCGkn+QgmuHgoF/iYRldW98h5OYjX2UeIyJfICHfXxygHmKh3mFkYqLmKKWgoSMd4iEgoF2eoCIhHRfd3d8c313ZmtkYH5panZzc3R9cHtjY2BzbXVybWFZYF5bbGRSYldfYGhrdXmGcGNqY2xmaHyDa2h0aGxvaH98gXltkIZxgIKCf3R8g4yBf356goN+fJBtdYl0dG1limxqYWN1VoNpcW5geGZsYmp2cGZ5e3lxYHJshoWQna6Ypqiejo2Xh4afk5eYfHepnIqYeZeci4uYkHh7gIt9fIN7gIKAeHN4enN9gIR/iIqAZF59i5WHfoSHdH1+in99mISWk5aMoqCXfnKHe5ORiqaPjI6KkqCRg5GPlJeRioGPmKCakpCSdICNkZOJnJ2eppiYjZWXdI6PimyGmJCZeoeIkIlvl52ZopOUioyfjIaCkpx/k5KVh5mIe4mJgXpxeWp1bHt9i31thZGCk3dvgYN9fouAZHJqfIGXmIV/jnSRiYN5h352eIF+h4F9hI6FjZSkkHmFg3SJh31/cnR/hoJsYHp0eXB7b2FuYmR7YW5vdnJ3d3NzYXZfbmt1bm9dW15dXmpdT11XYmFobXN6iWtfamVqY2h3h21mbGhqbGeAfHp3b5CHc4CDhH10gYaJeoJ9eoGEfX2OcnmLeXhubIdraF9pcmOHaHFvZnZnbWxhemhqfHp4cGF3bYuBmZqqoKSpnYqKkYaKnoqVl312rZiMln2ek5GWk4h3fXuKfHuAdnd/gHB0c3pvhX2BgIl9e2Fcfo+Rhn+DhHN6gIZ6j5GHkZGckqSblIF9gHyNipKkiI2KjZeajYWRmJOVjomJjJOdk5CMjW6EkI6RiJ6ZoaCXlomWkm+KmoVnhpqPlHqJhZCKcJaak6GSkoiLmYyCgJGefZKQk4yZj3uJhId0c3VrcW51e4p0boaQjZFxdIB7gYKIfGVxbXl+mpR9hYl0kYuBdIl5b4F+gYd9hY2KhY2WqI17iH1+i4V3fXBuf4SCYmd3c3RuemJeb2BqdF5wanp4eGxycGV4XW1sc21zWFpeX2FqWk9XWGRjZ3Fxf4dmXWloZmJncY1uZGlnZWlogHp3dW+OhXOAgYJ7dYKIhXiEfHeDhXqAiXd/i3x7cnmDamtfcGh0f2txbm1xZ29sZXtibX95dnFsd3eKf6OYoqihp5uHjIqBj5yGk5x0gKqUkYyGoIyVk5B/dHt2hHd4f3Jze4Vrcm95bYl2gICGbXBbWX6RjYiAgIB2dYB/f6CGj4qRnJegk5d3iX6AjIicnYmPhpKXloSIlJmPlouLjY6NnYqOkIRuiYuPkYqclqCbmJWFmIhrhqSDZ4adipF/i4SLgXeTmJGdkZCIiZWOf36PmHyRjY+NmpJ9in+Cb3Zva21vcHqFaXODjpeJcHeAdIKIgnlmdG92gZqPfImFepWSeneJdHCKfIeNe4uHhImPnKOIfIR3gouAeHhuaX+Bf1xxcnFvb3daXnBgb2peb2l8enBtbWptdmBwb2pxbVlYYWFibVdRU1llZmN1cISCYl1rbWRiZmuSbWBmZl9na4F1cXJwi4B0f4KAeHaAi4B5hX93h4Z2g4V8h4yAe3aKf2pxY3xjhnxvcGx0amhvbHZ3X3F+eXt0dXR/gn+llZqtn6eWhY2Df5eVg4+edYqfk5KFipqMlY2LenJ3dIJwcoVzcXWIbG9tdW2Id4N9f2xtVVGBq5SHgniAdnKCeYKggZGBk5KYm5GaeJF6goySpJqTjoiVmJKDhpaZjJOLiY+PiJ6FkIp9c4uFiI+InJmem5aUgJR/aYadiGiHoYiShJGDiXGDkZeOmo6PjIuPjXd7kpB7joyNkZaNfIh8gGt2am1ra2x6fmF5fY6VgXZ6gXeDjHx5Z3VsdYeWjH+IhnuUkXF6hXB4jXuLjXuJfoONkZ6ehXx9eIKLfXZwaGuAgXdedm9ta3ByVV1uYnFgX21ueXBncGZnc3VocGthd2VdVmVgYHJTUE5bZmVdeHCIfF9caHJiYmVmkWlfaGRbZ3B+b2txc4p9dn2FgHR1f4x5e4WAeIiDc4aFfoyMg3t5lXhmcmqDYId+b29remBpbnR/dF90fXiGeHRyhXx5oZCasZymjoOKf4OaiICLnn6KmZKOhIiXjY6OhHZ0dnOAcG+Fc3Bxg29qaXZtgm59fG11c1JOgt/JktaTfHB0g3WDoIKSd5SQmJuPmHuTcoWQn6GTk5CKkpuThX6WlYiNjYiRjYicgI6BeHqMfoiMiZubnJqVk3mNd2iKkohsiaSFk4iXg4ZjjJGYjpSJlouNiotxe5SJe42IipORinqFe35se2Vyb2preXlbgHmPjYB6fX5/ho56emh0a3SLkIqChoV9loxsfn9vgY1/jYh+hHqDkJaam4t8d3iDj3hybGVwf4JraHRvZ2hzbFNebmRwWV9rcXhma2piZnhzb3BjX3dgYFZrX152UE5MYGZjXXlxinRcW2V2YGFlZY5jYWZhWGlzc25rcXaLfHR5hoF1dn6Lc3+Gf3qJf3KJh4GRioh8fph2ZXNufGWIf29wbIBabG55eXNgdnp7jXZyd4p3eZ+Mm6+boJCChXeIlX99iZyGhJ+QjoWMl4STjoeBdXdweXFuhG9tbn5yZGR4cHxten1qaGxjpJrB3K7voXNrdYN1hKGFkW6Vj5SflJuBkXCFi6OXiY6VipCdlYKAlZCFiY+AkoqKl3+He3V/iXiGhI2bmpeZjpB2i3dviIqMfoukhZKJnYWFXouUl4qOiI6LioSJbHuXgn2IhYmRj4Z2hX19a31jeHVpbXhzV4h6kYaEeX5/gIWMfnlmdGqAio+Kg4OAjJeGbIJ2bomRg5GFf4J6gJGWlJmQdHR4h411c3BmdHmBYXNsb2FodWZSYHBna1VebXN5YHJjX2h9cXJtWmJyYWJXblpcd01NTGNmYV52c4ptW1xkeV5gZGaEX2NjXlhqcmtua3J3i31zd4SBeHd8iHGDhH1+iHt0i4iIlYaMfn6Xc2h1cXlsjHtudHCBWHF6dnlxZHd5hoxpdoCJcoCdiJmonKOShH1wjJR4eYudhISgjY58lYx/mYeEe3N3cHNqb4FraWx8dF5geHZ7cHV7Z2BlfOvatcnD3IhzbHOAdomaiI1pl4+OnJSSgYhwhYigjoSLlYqMmJN8jZKIg4mPe5GLhpCCf3Z4g4Ryh4KSm5aTmIaMdod/cYaDioeaooOUjJ6DiWGDlY6GiYWJjIeAh2l9lH99g4SJjo6CcYZ+f3F3Z3ZyaXN3a1qMfZKBhHx/g4CEioJ2YnRsiYKQi4J/f5ORfW6CbHmHkIeThH2BfoGSlJGXiW5yeoyGdWxwanF3f15zaG5canVgUmRxaGZTX292dF9vYF1ognFyaVdnaGNpWG1XW3VMSkxlZl5icnOFaFtcZXleXmRnemFkX1xZa25lbmp0d4p+c3OBfnp2eodzhYN8f4d3doqFj5iBjYJ7k3Zsd3V5eZN1bnh6fVh5hnGAb2d4d5KCZHaGhXGKloWZoZuiioZzb5KLcneOnH2JmYiJe59/g5l/gXlyc25vZHJ+aWZsd3dbX3h6enFxf2lhZ2F/1baOkKZ4bnF3e3GSkIyHapiNiJuRi4Z7aIeLmYaBkpGGh5eNfI2MgICJjXyQjH6KhXp1e4J6cYWAlJiOkpOBiXWEh3eEgIuUnZ+Glo+ffohhf5OHhIeDiY1/f4JmfZGAfn+CjI+Qf22CfIJ0a212dHN2dWtjjYGOf4R+fIR/hIh/cGBzcYZ8j42CfH+SiXpxg2Z7hIuHjYR8hX6BlY+Rk4RucHmMfnVtbmlqeXxhZ2lpWGt1WlJpcmliUGJyeGxhZV1aaoNtc2JbZ19kbF9uVFpvTkhPZmRcZ25xgGtaW2NyX1xjbHdkZV1cWmxrYm1qc3aGf3Fvf3x8dHiFeIWCfICIdXmJgZKVfIiGdoiBcHh5e4STb217gXdeg390gW1penOUc2dyiH1ykpGEmp+boIaHdnaUf212k5d9h5CDio2ZfIuadn53cW9samF0fGdiaXV6Wl94fHltcX5lY2hoV52PXnFylrzEhHZxlIiQfnKWi4abkoyHcmqIj5aAe5SMgYSbjHyKhnx7iYx/lIh1ioZ2dn2BcXWFgZ2ThZSPg4NygIh1hXyKmZ2Yh5SOnYCIZn2Tgn+Fg4mJcYF9Zn6Le3l+f4eLjn1pgHyDdmZveHhzdnNsao2FioGJf3iBgIWDf2tfcnl7fo2KhnyCj4F+coFpeYSIjIaFeYR9gZiNkIx9bm17iX13dG5nZnt1YltwYlduclNTbnNoYU1mdHhlYF1cWG6Ab3NZZWFeam1gcE9Za1FEU2dgWmtubXxuWltebGNaYm93ZGdcXWBsaWNsaXN2gYNxbn58f3R1g3qDgnyChXZ+iIGWkHiDinSBiHJ5eH6NkG9ve4FxaYF5en5tbHt1lWtqd4R0bJSOhp6YoJmFiG59jHZqeJiOfoGKgpWXiXmOlm96c3BsamRgc3poYGVxelphcn15Z3F6YWVlj7Gyd0piWqTZ0JZye5CKkHd+lIqEmZGMhW5rhZKRenmShoCEmIp8h394eImKhJaAcIyIcXR9eml5hYOkkISTjIN+b3+Dd4R5hpyZlYuTkJSFh3B7koJ9goOIg26Bd2iAhXhyf3+Diod8ZX1+hHVjcHJ/aHhwb3WYjIWCinx2eICEeYFrXHF+c4GIhYl+hol7iXKBbnGFh4+FhXOEeoKZjY2EeG5vfoR/dnpkZ2l7b15YdlpYcGxOV3FzZ2BKbHZ0YF1bW1l0fXJvV2ddZmpwYG9OV2hRP1lmXlpvamd6cVpaWWtlWWNxeV9oXF5lbWhla2lxd3+Hb2x/foB1b4J7gIF/g392gYWIl4pxgo1xe4Z8eXmEk4x1anp/bG9+dX99b3J7e5RvboF/eGaTi4OhmZySgoZnh4NwZ3qViH1+hIGYiYF8jYxpeHJrbGZfYW54bV9ib3hcZGyDemFxdl9lZdTqvooyOj6LjoBxeIWIjo12g5aMfpKNjH9tbIWNjHZ9j3+FgZWIfIJ4bnaHhIOXd2+IhWx1e3RmeYKDpouCj4uDfW6AdXeEeoedkYyRkpOMi4Z+e5KGd3+EjINrf3JogH54bXx8goqEd2J5hIFxZHFofm10cXSBm4uAfoV+c3V9gHOBb1ttf3V4i4OLe4eAfIh4enFsiYSQhItygnqAl4uLf3Rta3eAgHV1XGhndm9YVntSWW9kTFpycmVbSXB4b1xaWllddX50aFliW2dlbmNpTFdmUT1eZVxddWVgdXBaWVRvZFlkcXlaaF5gZ21naWxpcHd9jmxpgoR+eW6AfHyBf4J6dYKBjZOFcICLbnd+gHt7iJKJf2h7fWp0e3KGe3N3fX+MeXiEfXxrjI2Em52WjIGAbI1+a2h+jYx6fn+DlIF+fYqIa3VxZ2hjW2Jncm5gYWtzYWhwiXpic3ReY2SboI9uXDVZr7V0aYCIfJKGdYWWhXOPiol2cGyFg4d1eYl4iXyTh3p+c2d2iX5+mHBxhn5odnltZXmIhKSGgIeNiX5ufnaAgX2MmoiClJGYiYuEiXyPiHB7fYR7aH5saoB7eml6doGHgHJgd4F+cWRyZnWCbXV7hJSRgXyBf253eXx0f21YcIB3dYyChniIdoKJenhzboqBkIGGc399f5OJiHpubWpugoJ1bl1nZHJwUVp6TVpvXE5bcnBkVUtzeGlXWVlaYXGAdGBdXWBmZGhpZk5aaE5AYWRbYHVhXXVtWFdTdGFaZG9yV2pdYWhrZ21saXB3fJJsaYSJfHxwfn57gX+CeneAf4qLg3F7h29xd4R/e4mNj4Nqfnttd3h2ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshIiQeH17gZF/f36Kg3BycWNmXllnX29wYGBncGZqb4l0YXRvW2FkanZ7f76cpqPIuHGFg3KSfHiGk4JzkYyHcnJvg3uDdHWHdIh3k4h5eXFjd4d6gJNpcoR2Z3d1Y2p8goedgX9/jo99cn90hXqAkpGDeZaOlY+Igoh7iIhreHl+dWd6aGx/eXNpenaAg31oYHeHfWpqc2d7gGl2gIuQlH56fX5we3Z7dH5iVnd9cnOKhIJ9g3GHind4cXCEgo1/fnl+fXaOhoN2aXFpbYiCcnBdZ2FxbUpldUtdblVTWXNuYlFPc3hgUlhYXGFvgnNbYVxoZWVja2RRW3BJRGNhWmNwXl14aFVWVXdeW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHh9cnt+eYKBgXx2fYOIhoNwd4NybneDgn2Ji5N/cIB7eHl6gYx0g3h/gYGChHqAdW9+ioubnoh9hXp3hntndIWLkHp+f3uIhYR2j4Bnb25fZFxYZVltcmBgYHBsa2iJbmBzaVleZG2Ad6naqceGh7JxiXdvjHV7ho6AepOJf3V0dX53gHBxf22EdJSGeHVrYHqCeYmPZnGEcGd2blttfICQk3+AeZGSfXl7bYh3gZKMhHSWipGOh4WFe3+EbHV2f21ndmVte3Vtand2f398YGJ4hXlodHVifXtndIaOjJV7dIB1cX96fG1/WVZ0f3B1hYd/gXlsiYZ0eWx1gIOEfnt9eXtzi4F8c2d0ZW6LhG1zW2pedGRHbW1MWmFXVlV4bWJQUnR2V1BVWF5hcYRvXGBjbWRkXm9iVF1yR0JmX11maF1be2JRVVx1W1pna2FWal9gbmVma3FocHV4jnRrjo11fnZ4fXeBg4F7c32DiIeDb3F/dHF1f4WBiY2Ke3d/eIN7fIWHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN5Xn2FmIx5hoN0hYaEd4l7Ym5tXGJbW2FWanNjYFtnbm9mh3FhcWZXXGNrf3zKzoe5oWptbYpscYRxfISJfnuRhXl5c3l1dXxqbHVjhHWSgndvZl59gnqLiWZygmtqcWNYbXqFm4iBgXOXlHd/fG6JcoKLjIhymI6RiYWLg3t4fXFxcH1maHFibXhxamtxeH18elxkeYB3aXV4ZYJ2Z3SHi42UfHGHam59gXlufF1Ycn9udIGLfIJvb4p/cXZod3+BgIF3fXF7dYd8enJmc2FujIJsclhqXXZbSG1qTVVUXlRVe2thT1R1clBRVFZeYnSFaVxga2pmY1luYVhicEdBaFxgZl5dVntdT1VkcFpbamhdV2hgX3JlamhyZ3Byd4Z4bpWKdH96d354g4d/dXJ/hoWNgnBwe3h3dXqGhYaMhXp8f3SLfn2GhISHf35+fYd/fHh2eXiRk6B/jH2LbXWAeWODhpaFc5GKb4WFgXqDdGNuallfW11dVGdzZWBZZHFyZoFzYmtlV1tgaX94vq57oLdtYnOGaHN7cXmChXt9jH93eHJ2b3t2ZWpuYId1joFzamJef3h5i4RncX5oa2taVm93iaOBhH9xmZNxgHl1g26Bg5KIc5WIjYiEiYV9eHRybmh5YGptYG12amdqa3l3endbZ318eGVyfW2EdGV1hYyFlX9vi2ZqeoN1bXRiXHB9bHV9jHyBZnWHfW5xaHV/eH5/c31se3uBenhxZmxibol+bW5Wal92VUppak9RTmhNWXxoYk5VdWpMUFRVXmZ1g2ZdYHBoZ2FXaV1ba2hKRGpaYWRXWVV5WU5WbWpZXWxlXFllY150ZWxkcWdyb3WBeHCZhXZ/fnd/fIWHfXVzgoiAlYJuc3l7enNzhYaIiIN4gX11j358hIqOhIKEe36Lg3t3fHd3mp2XeoqChml2fXxsg4SSf3KPgnCFgn6Bf29mbGdXXVtcW1RkcGRfV2JydWl1cGVlYldcXGh/cG9ygHOJZGR4fml0dXNygoR4gIR5d3R1bWt6cWJna2eGdI2DbmZdX31we4l+aW14ZmlkVVdyb42mfIN7dpaQdHxzfXtufHyRhXeZfIiGg4aDfXRwcmxndFxsaF5sdGRnZml6b3tyWWeAdnRncIB3gXVid4WKfJSAbotqbXqBcWZzZWFue2dzeIp8fmJ2g3Zqa3F1e3F6enR9Zn5/f3l3bmRmYm6FfG1qVmlhb1JKaGpPS05wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWVgVmNXYnBdTEtrWGNhVVRVc1ZMWHVkWl9rYVxaY2Vfd2ZtYnBpc25yf3V0moF3f4B3f3+GhHp8dYKEfpeFbnJ0fHp0cYSFj4GAeot1dJB/fIGVjoCFhH1+jIZ7foB2e6OlinmIhoRrdXx6dYOBi3lvhXN5hH2Bg3VuamhlVl1bWlpTYm5kW1hhc3tpaG1pYGJXX1tqgGlrb4Bna2BoeXhqc3R0boSBen99dXVuemhqeWpfZW5ogXaPhGdlWGJ3aX6He29pcGdmXVVYb2eOqHeBenyQjnl1cH9wc3Z6j4B4lXWGg4CFiHZqcnZnaG5bbGRdbXNfZ2FqeGh7bVptgnJzam+Afnl3YXeEhHePhHKIcW95f3FjcGhccHhkcXSIfHhjc4BwZ2p5dHJseHd2eGSDe394dnBkY2NufHxra1VoYWVTSmtnT0dSa0VheGdhTVNxXEpNVFlla3d7ZV9tcWlkXVZgVm5uV0tTaFdlXlhOVWxUSlx5X1tfa11dW2NlYHpoa2Fvb3Vub3h1eph9d4CBeoCAh4V6eXqDfoGThHF0dH95dnSEiJB9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSsn396iIiDa3KBeXWAf4F0boZufH9ziYBqb21kZFhfWllaVWJqZ1taXnWCaV5tbFxhVlxcbIFlcXR9aWlca3Z1Z3R3cm2Fe319eXVybHloaXhmXWVzaHp3koFjY1RlcGeChXd3Z2lqYFdWWWdjj6dufneAi456cHF9aHpveo18d49yhH1/f4ZuZHVzZGhoXGtiXW9vW2dfbXVkemhddIBvcWtxe311dWF0hYp6h4eAf3dydX91YXBtWnJ0YnFyhXx1ZXKAbGFse29qaXt5dnJmhXZ7enVxZGFlbXN+aWxUaF5cVEtyYlBGVmFHYnZnYUtUb1dKTFdYZ2t2emRlbnFmY1pXXVl2ZVVKXGNXZ1hZSVdlUUhieFpdX2xbXlxhZF5/aWpfbnR4bm9udoOXeXKBgHx/iIuFfXV1hnmHjH1zdXWCeXp6gouOfX6EiWlzloF6ip19foV6gXp/fIaIc3GProx7e4ePfWVxh3lzfHt1cm+FbHt+bI96YnBvYmVdZVZZWVZjZmtgXVxzhWhYcG5aXldaXGx7YnB3dm1iWmxzc2d0dXBshHl+gHl3bm50ZWl0ZVtodWZ2dpF6X11SZmZrg4J0fWJjaVxUWF1iY4+laHh0goWQeG1vemh4bnyFe3WJc4B4fHh/aGV2bWBmYF5qX11za1llXW9vYnplW3d7a25ub3d4c3RkcoOSfoeCiHp2b3J9c2J3ZFtvcWJxcYJ8c2dygGVebnZpZGd5e3Vub4J1dH1zcWJfZm5vfWRpU2dYWFRNd19RSllYSGJ1ZGFJVG1TSkxaV2lscntibGxzY2FZWVthdltTTGNdWGlTV0hZYU5HaXVYXmFtW1tfYmJdhWhnYW54eWxvanaBkHhtgn6AgZKHg4F2dIl0jIZzcXd1gnd8fX6Mj4B+k35wd5WDfJmSeYCAeHl+f3SIg3NwmaJ7en+JlHhkdYh4c3d1bHRvfmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYllU3JuW1pYWGBsdmNpdWppXlltc3Fsc3NzaoV8fn98dm5ubGRpcWNba3JkdHaOc1tXU2VhcoB/coJdYmNeU1pgW2ORnmVycYWEkXRsa3ptb3B7fHxxgXd/c3p6emRldWhdYlpgZ1tedmhXYl1waGF3YFt7dmlpcm53c3J0aHCBlIKGfoR2cmpwfW1md1dca25icXOBenNnb35bYHBxYV9qcX5sbHV+c3F4a3BhXGVsbHphZ1NmVFdRT3VbUU9ZUkhjdGJgRlVqUElQWlVra2t8ZW1vcWFbWlhZbHBXU09mV1doU1RGWlxPSHJ0WF9jbWNYYGBhXYtqY2RteXhrb2l1eYZ7a4N9f4SZfIKEeX2Ibo+GcW93en10goJ8io6Cgpd0d4KThYGfiXWAgIFzf4Jxh4J1b6KXdHuGi4Z7ZXeKbm56bmZ4cHprc3ZyjGtedG5hZ2VrUl1bVWdhbGxaXHCMZE9vbl1WWFVnanRnYnRlZV1ZbnRtcHV1eWuHfH98iHaPc2Rka25hXG5tY3N4h2taVFZjZHh9fXGFXGNfY1RaYFljlZVjbnCDhYpzamh7b2Zzd3N8bHp0dW96fnVeZnJjW15WYWRZYXRlVV9gbWRhcV1dfm9oaXNxc3B0dWpthJKBiHuFcXJmbn1wcm9TW2ZrZnF0gXdzY2x2VWJya1pfb2Z9Zm13fXNzc2ptYFpkamp3XmZUZFRVUFRtV1FWU1BIZHNfYUVYaU5IV1RWbWhkfGlreGtiV1xVW3RkU1JXaFFZZVRTSFpaUE14dlpfZWxpWWJgXl6PbmFmbHl1bm9odnZ/f2yDf32Gl3t/h4GKfmuTiHJndIB7dYCCfIiOf4uTcnyKkYWHn4Z7f4aMc4GGc32Ddm6ljHOBjYt2d216jGBke3BmenN4bG1xdoJnZHtsY2ZnaFNfXlVnX2xvW15ujWhOaW1gVFZTb2dzbGZ4ZGRcWHB0bHF6eHJtiHt/dpx6eWthZWxtXmBvamVxeH5nWlZYYGx4fHtwg19iXmdXWF9XZJuIYmtxgYd9d2treG1cd3Fse2p2c25ve4ByWGpuX1ldVWJjWGRxYlNeYWhiYmxaYH1rZmtzdW5td3ZraIWLfoh6iG1xZXB9bXJtY1lhaWlvdIF0c19pbFNlcWRVYm5iemNxd3t2a3Btal9YYWdodFxlVWFVUk5YZVJPXE9PSGVwXWNGWWlNSV9LWG1kX3hobn5kYFReVF11XFRTYGZOXWFUU0pcWVBZdXVdX2VtaFhjYVtejnFiZ2p3cXNuZ3Z0eoNygYJ5h41+fImHjnpukIp0bHOCdH9/h4SGkYSVj3l+jI+HkZuEgHyMhHKAgXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY2Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjI2MjI2NjY2NjY2NjY2Pj46Ojo2OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCTqWvra2tra6kn6CgoKClXiovLy8wLEiFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTNBqba0tLS0taijpKSkpKpWFRwcHBwXOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fn1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaPkJCQkJCRkI+QkI+Pj4iCg4OCgoKFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5CKkIuLkImPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyLi4yMjIyMjIyMjIyMjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoeIhYmLhoiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCPhoqGh4eFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+JiI6IhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aHh4WIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2Kio6Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2hoZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUVAPjo7Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs8PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs9Ojc6PDw+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3F0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5ODk7Szs5Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBgIGAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09Pj49Ok16Ujo9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEtJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/Pj1ASEdAXnppPT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISktLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VESD87QGN8e3VzeGw5OTw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BxcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE5MPkE8PD0/PkJDPz9BQUFCQEVzYj9rhYSEhIF5bDs5ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISEpKSkxKRkZncG9xcXR2dXd7fH19fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkM/TXR6bYCAg4F7g35wQD09Pz49PkNEPzw8PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SG1vcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUBOc3WAfnuDg3yEhGhBQUBDQEA/QEA+PTw9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQElyc39+fYSFhYWGXT5DQ0VAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTUpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRGZ2gISFhYWHh4mCSkRFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHWXmChYeEgYaJiYxhQEJVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExMYISHiIOBg4eIiXtXbISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTElkh4eFgYOFgIGBg4SGhYSEhYaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSmyHhoJ/g4OBgYODg4SFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT48PD1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaYWBgH6AgoSEhIODhIaJiouMi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0V1hX+AgYODg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo6Ojw4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2tycnR0dXd5e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I5R4GDgIOEhYSEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDk7PDg6Ojs6OTk5PD88PUFCRElKTUtKTExXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7PzxWhoOCg4WGhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPz9BPT48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQmCHg4OFhoWFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZFRkZEQEI/PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFARERFZIiDg4WFhoaGiImJiIeGhoaHiYqKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AQEE/QkNISEpghoKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA5ODw7PD06P0A+QEBDRkpKUGiDg4WEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEdFSklESkhHTEpISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QEVJS01Wc4ODhISFhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4teUVFQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBSExNUVd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVVJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0ZWTkZPUVFVWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOzpRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hJSEVGSUhJSElqcnZ5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f4CAgICAf39/gIB/f39+flRISklJR0dGRT8/QUFFQkNHRURFTFhSTVRWVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A+QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFlnUlVWWFVUVlRPT01KTEpJSUxNS09NVHB0dnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWVhZV1JRTVBRTU1PU1FRVVJidHN2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH+AgICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWFNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYWlpkcXR2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUk1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSVFVaXG1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/gIB/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lVUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlQSEZPRkRFRkhHSEJDSEdISkdDQkFEQE9QTVJkc3V2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojs+QEA/Pz5rUUthRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNCPz48PUI+Sk1GVW51dXVzdHZ4e3x6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtMV05IR0BCPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1dnV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZETVJQYVdSWFFQU1NSVVtPT1FWUE1JQ0Y+Ojo2NDg2OTc5OjM2Njc5NjxCPWZ0dXZ3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFJMWFlaVlhYVlhZXVdXWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNRUFNaV1RUTVFTWVNcZVVPU1RRTkxJSEM/QTk5ODg5Nzg4NDc1Nzg1ODhHbnJ1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KT09UU1RcVlJVU1JOTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3eXp7fH1+fX58fX18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9KR1BQT09NUkpPUFBQTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTElMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFQUVBRTlFPUE9MSkxMT1BOTlBRUU5RT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FNT09NSU1MSUxLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXh7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E/PD1BQEI9PkVIR0RGRklHS0pARkFBQEZIRUpPSFFSYVxRUFJOU09PUExMT0xKTUxNT05bVktNUU9ISkhDSUpMTEtGRkZEP0JDPjxCRj9CP0FkcXR3enp7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVFNT05XS0xOS0xNTExMS05OU2RNSkxSSUlJRUFISkxNTktHSUZCQUJAP0VGRUhES29wd3p5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNvdXRscHByb29vcnZ2clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkJBRERHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUTEpJTVRGSUlKTEpKS0lJTE1PUFJQS0dDTEdDQ0pKTE1PTUlKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW52c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0NGSEhHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNT0dIS0ZIS0RISUtNSEpMSEhKTEtNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLQ0ZFR0RFRUZFR0NDQD48PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGQ0I7QkNDPkBDQ0NFR0xOSEtOSERIRUlNTk1HSUxHRUZJSUxOS0pIRU9JQ0dNTU5NUE5PT01MSUhJT1JRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUZFQkNCRUBEQj4/Pjo7Oz07PT9DQT9BQ0ZHSkdKSUxIR0dHRkVDQD1FRUI+QURDQ0VHSElHTVBJRkZHS05PS0ZISkZFRERJSUhLSUZIUEtESk1MUE5PTk9QTkpKSE1SVVRST1dkYWFtZ3Byb3N5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPUJBPkE9Ojo9Pzs+PkBCP0BCRUdKRklHSUdGRkZFREJBQUZGQ0JCQkRFREdHSEZMUUxJT0pKTEtJR0hFRkVEQ0lISEtKR0tSTUNPT05RUE9PTk9PS0tLUFVXVlVTWGBeXWlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmtrc01GRkVIQkJBREQ8QUFAQzw4OT0+Oj89P0I/QEBERkhFSEZGR0ZGRUNDRUNESUZDRkVCRUdFRUZHRUpNS0hRTUpLSEhJRUZJSEVDSUlKS01LUFNORFFTUVFSTk9NTlBNTE5TV1ZXWFZYXltdZGBoYmppZ2tfZGVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJGRTxAQ0JEPDc6PT47PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0NHSEZIRkVDRkpKR01KTEtISkxGSUhLSEVLS0xNTk9SVE9JU1VUUVRQUU1OUU5NUVdaVlpZVlpeWlhhYGBgX2hlY2BkZWdnamloamZobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9yc3lNSEhHSURBQ0hFPEBFQ0U9ODo+Pjw8PEFCPT8+QUJGQ0VCQkhDQ0RFRkZHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMSk1LSU5MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZXF9fXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJFR0U8QEdEREA5PD5APz4/Q0I8QD5BQUZDRUVDSERGREdGSEhGSEhJS0pFSkhIS0hGRkxISEhKSExMTExMSU1LTU5NT0xQUFFVVldPSlZWVVNTUlFMT1JSUVZbW11eW1xeYF9hYGJkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd292SUpMSUxHQkVERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFRUZHRUlFRkVJSEZJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOT05PTE9QUlVYVk1OVFZVU1JRUE1OVFNSV1teXl9dXWBgYWFhYGJkZWJjaGJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3BzdnR1dXd2dXV0ZXFza3BxanJ2b3dKTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0hHSEdGSkZDR0pHR0pGSUxISUpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZWFhY2luaGJpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0RBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NCSUVCSEpJSEhLRkRLSkdISUlJS0dKSk9LTkxJTEhKTUtaZkpkXEtsUkhPTl9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENEQkVFREZCRkZHQ0RKREVKTExKTE1HR01KSEpKSEtKSUtKTkxNTUxMSUxNTFtzYmRwXmxsVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9ccHVncE1Kcnl2a2Jga2VlbXhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0JCPz1CRkdCRkNFREVFRENISEdERUtHR0xNTUpNTEZKTkhJS0pJTEpKSktNTU5NTU1LTk1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhwY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9Pz9GR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSUxLSUpNSUtKSktPUE5OTUxOTUxcaGR1XWxxV2xOT1FtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR3SU1HSURFRUNBQjxCQEJGREdGS0dFQ0NIS0hIRkpMTEZOS0xSUkxHTU1ITkpJSE5ISkpJSE5PTk5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISkxNTUxJS0tLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYG1oXGpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3c0hIRklERURGQUBBRURER0JISkxHRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpJS0tJSEpHS0tLS0dISkpMTExLSUtMTlRbXFRQVE1QT05PT1ZRT09RT09RSkpOUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0lQS0xPS0xXTUlFRUhJSkhJS0hMSkhGSEhKR0dJRUZMSElLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHh5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVFSkpKR0VISFBKTE1KTVNJSEVBSEZKSUtLSUxKSEZFSkhFRkdFRUpHQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjYFlfYltgXltUWFhaX15kYmJhY2VpZWtycG9wcG5vd4eGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tFRkhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUFGSkRASktJT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmJiY2NlWlJZVlVcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJTERDS0pNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hEREBEQUhJQT9ISUdPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUFBdX2FjY2NjYlxkY2JkY2ZYUVVUU1xYW2FfXl9hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0hHR0pGRkZJTEpORUNLSkxOSkxJS0pISUdCSEhRTUtLT01LS0lIR0VEP0VCSEhBQUZFRFRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJgYGJiYGNiYmRkYlhPUVJSW1NcXl1eXl9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHiIeFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lJS05MTElMS0lJR0RIS1FPTUxQTExLS0hJQ0VBRUNIR0JBRkVCVlVFXFRdU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJcYGBfYmNiXWJiV19fVFBPUFFYUl1cXF1eX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNQRFdfSUdHSERGTUpQUEZKSUpLTkxLS0xLSkpHRUpNUVFOT09NTkxOSEtBREFDREZEQ0FERUFMSENMTFBPT0xGTUZHSUpIR0xMTU9RSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUFVUXFlZW15eYWFlZmNoY2ttcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXkxHSFlNSEhKSEdOTFFRSUxKS0tOTlVOT0tLTEdHS1BTU09QT05PTk9IS0VgRURfTERmY0RNW0heXHNtT01WbVlMQ1BfVWxXZ0pdWFZeRExRVUxNVFZRUlRYV1RYVVRcVFBmWmhoZFlUa1RXVlVbXFxgYGFiYmJgZmlnbmxocnp8fX6BhISEg4ODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USUtHYFRISk9KSU9NUlFLTUtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QUEpLUH9RSXxZWXJzWFBtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlaX1ZVV39qdHV1X2F2X1hiXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdJTEZSVkxLT0lLUlhXUU5PT01RVE5PUVBLTE9HTVBTW1pUUVJPUFBQS0haeF1UeGRoWVJUUXZndGxwYm5ma1FyT013bWpycHNycXJwb3CAXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zc3x9b355b39yX2BgYmFaYWBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQT01NSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dQVFBQUFFLR2Z4bGN4cW1aSkxVeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGdvWHZ2anZ1cIBhc2h9aWx4fG9fX19jYlteYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3V6bnx9eXhybk5KU3ROQ0JFUFBJS0tKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSVNUVVhXV1BVUE9OUkpMcm91dXF1cWRoYVZuTHFwXkZoeVd2VEtoeH14YHl7c25hXm1vZFJncnVubXlwd2x2c3RxbG1cc356a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0tbVkhHRUdSUEpMTUtMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZVV2xPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobG1yfGttaGt7dG1ta21PR0pLSEpISFJRTE5QTUxTU1JPU1NXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVNTV1tXWFdaUFNVV1dYUV1YVl1VU09YUldXV1haYFtncl5bXFtdXl9jWl9jY2VmZGNjYlljY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKVFJNUVFQTFZWVFBUVVhVWVVSWl1WVVRXVVlYUE9MTldUUU5VU05QTUxRUEtKUVFLUU1LS09SVFJRUVNTSUhNTk9RUlFRUVRWUlhXXFdTU1BSVVVWVFpRTlNSV1VUWVZUWVVTUlVTVFVYWVdeWl9hXVxbWlxcYGNcXWJjZGdlZGRhWWBhY2FiaWhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUEpLS05PTE1UUU9UUVFNWFdVVFVXV1daVlRcYFZXVllVWFRRUEtPWFNQTlVQTVJOS1NQTU5VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1NPU1VXVVRZVVdZVFJSV1VVV1xZWmBdVllfXV5dXF1gYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2FQS01MUFFMT1RQUFNRT1FaWVhXWFpaWFhWXWpkVlhZWldWVFRQS09WVFBPVFBQUU5NUVFPUlhUUlFPTU9TVU5XUlRVVU9OTlFTVVVUVFJUWFZaXVxaVlZRUldYVltbVlBTVlVVVlhUV1dUUlJYVlVaX1peYF5WXl1eYF1cYGBfX1piYmRoaGVkYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUVdSU1NYTU9QUlRYVVVVU1VZWFteXVxbVlJPVVdWW1tXUFNXVVZYVVNYWlRTUVlXVlxeW19fYFVhXGBhXmBiX1xgXWNhY2hpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeX1teXmFgX2JcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSTFFUU1laV1VPUk5TWFZUUlRSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVlZcXFZRVFZWWFlSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkaF5cZGBhYGFjZV9iX1laXltcW1lYWVdXWltaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1bYFxgVVxdaWpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVW1laU09TUlZWVVNOVlJTWlJUVVRYXFdYWFNYXFheXVlbXlRVTlZXV15bWFFUVVhYWFRWWFtUU1ZdWV1dYV5jY15ZYFtlYl9kZF5eY2NhXWVmaWVnXl1kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVVdWVFRUXl5gXl5iXGBVXV5ia3l0bH1sWlVaVVFRU1xUVFRVVFZZV0xSWlZdW1xST1VTWFZWU1BXUlNXU1dVVltdWFtZVVpeV19eWVxaUldSWVhZX1paU1RWWllaVldZXFZUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZWViX2RhX2FgYmJfYF5XWF5aXFxaWVpXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFhXV1ZWV11YUFVcWV5dXVRTWFJYVlNSVFhSU1ZUWFhYXV5YXVtVXl9YX19YXFZSWVVZWlphWFxVV1daWlpYWVpaWFZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVpbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlRcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFpcWlZYVVdbWllbWVhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdaWlxfXlpfXFZfX1pdXlleVlNZWFlaXWJZXlZXWltbW1pbWVtZWV5fYGBkY2RlZWJkWmFmY2dmZV5hY2BjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1daWFdcW1xgXVZdXVNQVlpXVlpVWVVYV1heYGJhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xTVllQVlZWVlZWU1ZUWF1cX2BgXWFdV2BeW15cW15YVlhYW1tfYFteWFhdXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNhYGVjXWZpZGVoX2ZeY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFkYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWVhdYGRkX1JYWVBYVlhYWFdWV1ZdXl5gYWFfYl5ZYV1dXlldXllYVldbXGBfXV9ZWV5dXl5hXVtaWVxfYl9iZGRlZmdnYlplZ2dpZ2NfY15hZmRaaGljZmljZV5iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWFddXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcWFpiZWNhUlxZT1hXWVtaWVdaWWBeYWJiYGFjX1xiXV9dW19eWVlVWF1dX2BfX1taXl5gYmNcW1dbXWBiYmNlZGdmZWdkXGZoaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11aWl9dXF5cWF1cXl9hY2JhYV1iW2JkYV9jYmJdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGFUX1pRWVdcXVxbWltbZGFjYmNgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl9dU1xfYGNkZGZlZ2ZlZmVfZmdpaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3p6ent8fHx8fHx7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3p6e319fX18fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIjbG1tLS0tLhRJisrKyolYpKMjI2Njol+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIuRu8C/wMC/xEkUGxsbGxRdlo+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEg4GCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXp6e3hub29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2AgYGBgYCBd3Jzc3Nzcnl9fX1+fn19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnh7eHt6eX15eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3p6enp6eXp8fX19fX19fHt7e3t7fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx7fXp7fXt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHx8fH1+fHd4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d6fHp7fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en18fHx8fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h6enl8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCCg4GChYWGhYaGh4aGhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4SEgoGBgYKEhYiHh4eGhoiHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCg4SEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKCgYGPiIGBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/f4CBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYKBg4KAhJmRgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIKDgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgn9+fX2Im5WFhIKEgoF/gIKBgoKBgoSDgYGBgYKDgoKCg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4SFg4GBg4KJiIV+fHx9foGamISEhYSEhIKBgIGCg4KChISDgoKBgYSFhIODg4KCg4SEg4ODg4OFhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+NjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAf3+Ag5eRhn2BfoKJfpKYgoKCgYGCgoGAgoKCgoKCg4OCgoGCg4WDg4ODg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUk5SSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9/f3+Dm56FhIp/gIR/gomCgYOBgYGBgoSDgYGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGYooeFhImGfn5+gYODhIKDg4OCgICAgoKCg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZCdhICAgYF9fX19hYWFhIWCf319fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDho6CgH+FjIF9fX2Dh4aDgH5/fn5/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4F/gIaGg4B/f4GGgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgH+DhoOCg4KBgIB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIKAgYWEg4GCgYGCgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODg4KDhIODgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYSCgoSDg4ODgoKCg4F+fX1+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYiDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4SDhJGSkY6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhYCChIODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4GEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4GAgIKDg4ODg4KCf319f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn2AgoODgoODg4J9fX5+gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn5/gH99f359foCCg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gIB+fn9/fn58fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f35+f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf3+Af4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOAgoKBf4GAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGBgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f359fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhYSDg4SDhISEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAgICAgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WGhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgIGCgYKAgYGBgH+Lk4+Mi42OjYiHh4WFhISDgoKBgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpORjIyNjY6KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2LjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKMjIuOjYuKhoSFhISEg4ODgoKCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42LioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYOBhYaFhYaGh4aBhJGOjIuKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJioiLiYWIkY6LiImHhYWDgoKDhISDgoKCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiYyQjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+Ni4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH+AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiNjIqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKFhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAg4F/gIGDgX5+gIB9foB+fX5+gIB/gX5/gH9+f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyJioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fYmFhoWFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dXSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX18fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAhoKEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX5/fn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f36Af359e3p7enx7eoKEf4OCgoKCgoOBgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Bg4F/gIOCf3+Af4F/gH98e3t6fHt8gYB/gn9/gYCCgoGBf35/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH5+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OBf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fX+AfH9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYGEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgYSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgIB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9/f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH99fn5/f31+foCBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhIOCgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGBgH5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4eHt4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn58e3t8fHl3fHl3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn6AgX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/gYF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHt7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGEg4OEgYGDgIKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYB/goGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3x6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX56fHx9fXx6e35+foB/f4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn6DgoKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoKCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fX19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+fn9/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODhoKDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgH+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISDhIWFg4eGhoSEhYSFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WCgYSDgH99fX59foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhIOFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgoN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9gH99gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3x/fXyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WEhYWFhIKGhoaFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fX+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhoSGhoWFg4WGhYaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYaHh4iGhIaFh4aGhYSFhYSFhYaJioeGhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaChISChIODhYODgn2Af3t7fH57fHx9f358fH59gH99foB+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhIOFhYKEh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn58fXx/fH5+fH2BgH18fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEg4SDgoOHg4SBgoSEg4GAgIB7e35+fHx8fX18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeGhoiFhoWHhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4eHiIaGhIaFg4SDg4ODhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYiKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4eHh4WDhoWCgYKCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFgoGCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIiHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaHhoaGhIOEhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4iHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYeGh4SGhoaFhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4N/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfoCCgn1+f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYSFhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSFhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3uAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEg4WChYGBgH9/gIB+f4CBfH5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCf31+f35+f4R+e398fICBfYGAfX2DfH5+fX1+e357e3p5enp5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn99f4J8f399fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fb29vb29vb29vb29vb29nX19fX19fX2NfW19fW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0j4yMjIyMjIyMjIyMjIqguri4uLi4uLi4uLi4ubCKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFpVVlZWVlZWVlZWVlZSeaejo6Ojo6Ojo6Ojo6WVU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpZ5fWVpaWlpaWlpaWlpaV3yopKSkpKSkpKSkpKSml1dXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqjaGRlZWVlZWVlZWRkZGGDrKmpqampqampqampq5xiYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs/Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzMzMzLztLS0tLS0tLS0tLS0tLQzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7O0NTSz8/O0NPQztLU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19bX19fX19bW1tbW1tXW1tbW1tbW1tbW1tfX1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Oz8qWpdHP0rmPvtScgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8+cqp2s1cCUsJyxlri5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DLlIianM6joIuRw5N9fq+w0s7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0b3ImZm7moedutTSzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Sl5SgvpmQn6DS08CgoNDP0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Ts5vEm76pr5GhudevoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0c6NkKGsoJqtm6nYo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHL2qiboJqmxZii0Z6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Nzk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJjqWan6+enJubrcefodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HKu6Gmp5zPpquknsW0pKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09OekI221suSkKfXuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0rrE1dHUy73V0tHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLV1NLS0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQEJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9bXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipKmnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6KvqqqsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustq+zsKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW2vLy+vLy+xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb21ocXhueWppYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbDxMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3hmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDw8HEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMnIyMnHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBx8HKysjGzMrNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVvc2JdYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBwsO/v77Ey8jKy8i7usjHyc3Iw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnZGplYWptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDubi5u73Bx8HEyMbHycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWlpaXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9wLm+urq0wLi1t7Kuury2x9S5y77Bu7/BvLvEvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmJnamdmaWVpXVZWVFlPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLevrre1t9PAmNS7v7y7w7W6x7i2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2hYWE5LS0tSSUxIQzk9OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8t7u9wcS5t7e2tbm5ubrStIy4w8LCvse3ubitt7W4urS4s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2kr7C4u7K9vrvEtrW4trjAwMW7zaiElcLLycbPwsC4rrW1vL64urK+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG54Y2diW2NRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuro7G5vb6yur68xbixuLi2w7m/w8SfhIu5yszO0czKxLW6wMPIv761v8G/xsa/y8bDv8G8wMPMysfFxsC5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDPDs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMK9zcS9u8S/ubGVio56iJWtl4WMrsbJyMzLzcrGwsTLzsK8ub25ucDDv8jGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLW8trq8xsjbwrW/vLCManFxWGJmeImKjajBxsLHy8jBw8HAycrCwLu6sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7y9utKywcm2tJJ0eWhifmlbWlxwio+pu8G9vsbAucC8vsXEvb25srCuuLe/w8fDxLy9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pW19gWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLfQtqbGto5nUm5uT3OLf3deWX6Ssbm3uLfCurO7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXVpUSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+2ybSWsaFnWFWLcFNdeoKHgE1omLW2srK3vrmytbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZxbF5iYFtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u8ayk56FWFNnnGZSV1eSqX5YWqfDubOwtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNcZlhcXVJOTUE+SUJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i6t7vPuZiTclJljnxmVGJtpb2GY1N2nru2sbS1srSvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7W5x76gkmRSi5lyenmLcoKSdXB1baLBuLO0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yssC+rJxWXpTElYGYkmZ1dXaAfn2vv7ixrLOvrqyutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrn6aim6OclZCMj4+Qk5CXlZaYn56empiml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqe9ybWkVmSFk35pdGxnY2ZrdXFwkK6zs6qytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6WpsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mao5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01KSEdOUk5KTkc8RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaKftM/ArF14dXh0ZGlZUE9TUldXYHeGqbWur7O1qqasq6KcmZSOkZaXmZmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHl5YGJSVWBJSUpLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWenqnNzZlvenZ0Y1NNVEhQSVBNTFVkZ4i1sLCwuKymoZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKmxr6KZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5UTFNMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpyim56kyrBoamtzYlJTVYV1alNPSkpRVlljp6+trK+nn56ioJeRk5ugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7issrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFJVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKZnpuhoayYeG5rYFRMWHqqsKBsUkhFR0xRVo2rqqqppJ+fmZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLa9s7O1oqyiqaiyqauop6iamZ6aqqefmaegn5+nqKWkn52qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JXTkpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKSgn4htYFVQUVui3eDDjXBbS0RARGGWsK2pqqWfnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7u3s6mzraqztK+zrqquo52rp7ayrKKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHFra3VycGhXW1FFVEhESU9IPkVBNEZIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5RzYldTVFlts9zGsKusjG1VW4GssKajo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3w8nJwsHGvrq0urq0u7ewtbKqurKuu7e/urqqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9eXFrZGhveGpkWltGS0xFRFNMREJFNzo/OzU0OTk3OD4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm52JX1NRVVluh7XFs5Se2Mqso7CsoJmcm56emZeXl5KMjpeXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS083T0NPTzMrCxcbGysjOv8jRzMfFx8XBvMPBvr++tb6zrb+/wsPHxMfErr64sri8w8HBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeHRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOfnJ2bfFNKT1Jng6K2sqWJrcy7sayjnpyfmpiWlJKUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K0tfR19LU1tPTyMzHzM3J0s3O083FyMnKwcbLx8jJxr/Ds7PIxMvKy87Fyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ0dmhjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hpXFORU1Vd5PFyq6co7GpopydnKCkoJ2alJSVlIl8d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3RydLV1tnV19PW2M7Syc/RzM7QzNLPv8jHysPMzMzOz8XGx7a/yr/RzcvPxcnIv8PDyM7Mz9DPzcrHzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdm9jYGVyYl1SXElKR0FFSEk+O0E4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWfoax4TUlOXoS329W4raqalJefm5ugoZ+bnJmViXdpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNDO09fW09XQz9LT0cnT0cfQ2NfY0djS19nV1szPz8nN0svO0MDGwsfFzs3R0dHIy83AyszF087MzsjEycbGyMzK09PR1c/SzNPBucWxpai1rqeaqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooqOzi1tlbYm318avpp+XlZeZmp2gnJmcnZN9cWVjY19fYV9fYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHG0dTK0NTV1s7S0NjY2NfLyM7Eyc/MyszAyb/Hyc3Oz8vQzc7Lzs7Hy9DQys7KwsnGyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp1b3Bua2FkbnBhV1xaSUZGRE1XRTtAPTMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramjs5t4iqfO1LObm5WTl5uenp6clJaYlYhrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVyr/JwcXMwsjJwszDxcjKys/KzczQzdPLxsjPzMjHy8TGwcXKzM3P0cbQzs3NzM/Fx8C4ub3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV5cHJrbWdgYHBoWFhoVkxGTElQUEI7Qz47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKigq6OIjZK41KyUjY2YlZCUkpGWlpaQi3xlYWJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL7Ax8zMy87Cy8vIx8zQxMXHu8fDycjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7uto7WSaICIxK6QjY6Xj4aDhISCfoWFf3NgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLLycHCy9DEy8i/ucG7xse+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xby8wMPFzMXFu8DKwsXH0sTAyL/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZujoJuUe3ZzdGZpWmFubFpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sa+5gmJ+j7aPipKXh3qAhYaAdnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDv7zBzcPGvb21wb3Dur3Gu8K6s7zFxMHCtr+1tb2/u8zDvLW6yLq/vsvDwcXCxsnGyMbQxsLMx7LHycPOzcHFw8C9s7ewsqeoqLmwpa2wqq2slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztHKysrHzc3O0cjQxtXU1tfNys/FycXHwbnFvausrm9ldo+Ti4iKhXmAhoaAfoR8dHRjW1xdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLW3tLOztLq0vbG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bBwry4vcbBw7u1rrK2ur+0xLe7tau4vb2/vbG6tq+2urPFvLeuu7+1t7TFvL7DxcDDxcbIy8XAxsa7x8u/z8rHw8bCw7fDvb22ub7Hv6y1urW3to55dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTPzdLPzcXHwcXAvrm4ybaqr6NlaXWMj4aIiXt4foaGd3iCfXRpXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7i4tbCrrKeeoqqnnquts62pq6m0rrawsqmupqyyvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLHAtri9r7CnsrO0u7yrrbWmrrWvu7Kwqbmwrbuuu7i7wL+9ucK/x8PFwbzGwcfLuMXHxb/Gw8O6xMbCu8bJzMuzucK8u7OIc3Z2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx83Bw8a/xMTDw8rBycq+wLzBurK0tcSvqq+bYWx/kYiOj3t4foqGenuEgXduXl1cXV1fYF5fZGNiY2NiYF9dW1taWl1aWlpaXGRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCjpp+qrbW2sb25r7evqa63tLS8uLS8r7e5tbK7wbLArqWpoquxsrOovaqrqKusrbSzpqitoaSvqbKmp6iupai3rLGyt7q6u7K8vb++xL+1wsDHyLe/wMS3xMK/u7/Ewr7EyMzKv77DwMCph3N0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HLvrvJtr3DvrnKt8HDwbS2vLaxr7W8rqipl2VviIOIi4B7foB+eHR/fHN3ZV9dXFxeX2BeX2NjYWJgYF9eXVxaWFpbW1lYWlxfZmtmZWdlaWtvcoWqpayloJyipZSepJuYkqGjqqSin6Wlp6WtoJ2bpKassq+2t6ewq6iqtKq0urG2ta62ubGvurqxtqSgpJ+msaerqLmqpKeoqKeyraCnpp+bpKasnp+npKCgsa2trLK0srSwtby2u8HBsrq+w8GyubnDs8C9v7W4u72+vMLHxMLDvsDEoIN4cGthZl9rb2BUWV5ITmdPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9taCelZ2hprq2q7Ozu7PEz8nLwsa4t8fBzL+4ybe7xbizxLezv8CstryyrKWvtK2gopRseIWGhoF8eXVzb21ramlxaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeWm6GWm6KYlo2eoaOnm5+fo6WiqJ6bopufq7CssbajqaqprKyktLmtt7Css7WusrWusKqfnZ+korKkpqm4raKmpp+orKqZn6CemZ2fpZqao5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7OzubO9tLaxsbW0v7a9wL3Dwbu7vZeDe3NrX2VeZGRYVFddSVdcS1BHSUlGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vEw8++uce4t763ssG0sbu7rLq6saKeqaunl52QcX+Fhn94cm5wbmtiXmJmZlxdXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZWVmZmhpa3KNp52UlZWbmJuilpaRnKKiqJ2bnaWmoqacoKCamK6ura6yoKWiraunobWxsrKsqK+yp7qzprWgop6bo6Kto6Kptaqio6adpqajlpiel5manaCal52cnJusoauno6Smrauzs6q0sLKqsrm0r6mvsrKzt7Ouqayusriwura5vb+3s7GUhXl1ZV5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWjmKWxwrW2va20uMLMyMbAxbbBv8fOt8DEvbO5ubK/trG4uq2yta+fmqOqoZKZjXl/g4R/eG9xdHFoZmRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqKclJSQlZeXoJeZlZignqGclqGiqaSfnqmcmpqrp6+wqpujpLipoJ+uqLaqpqetsKS3sKS3oKKbmZmqpqCarLiwoqGknKKfn5OVoZSVlpuYl5aXnJWfqZ2po6Gdo6qqsK2otKuqpq2ysKWqrrKxsK+ur6anp7KusbSvvLS5t66jlIF5dWReYVZZV1NSVEtNXkxPS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri9rp2np6Oqu8C9wLmutLjBzMfFwsO9xbfIzLLBwsGtvLu1u7y1ubmwsLGqnJmhqZWQiYyBgHx3cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmqBlpOVjJKUlJuZnZaWnKCcoJahoKalpKann5yfpqCqr6afoqS3qKGhoqi0oqWopbClsK2rtJ6gnZWVqqGhlK2xsZ+io52emJuTi6GUkZOYmJKXl5iXnaabp6GimaOlpaukpbCnpaOrq62mqK6vrquoqqmzpaasr7Sxrry1sa+uoJJ6dnJkYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxse2xsSzwr/Fq7e3vba9u7u2s62tqJmYn6OLiHOJiH52bmNhZmloZmhqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVJUUlVgYF9gYV9gYWNkaYGUk4mRj5STlJ2UlZekmaCXnKCloa2mpKSjo6KcqqulmZ+lsaqgoJ2lq52nop6trKmprayhoqKVmKObnJCrqbCbn6KfnpeZk4qekY2Sk5aQmJiTnKGinaSgoZWgoaSmm6OrpaKkqqSrrqWtsqmmpaamtKapqK2ztbS5uq+prJ6LcnBvYFtXVlVSR1FPSFpbT1JJVEtTTEVGSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb3EyayxuMK1vMG8tLWrrKaVmZubh39yiIN7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eXl9fYmRtjpCEkYeQkY+Zk5WTnJujnJugqKmrqKynqKWjmKSupJSZpa+pn5uZm6Cerpmbq7OgpaafoqOhlZOblpaSqamtmpyfoaCalJCMmY6MkIySjZaVkJ6hoKOcm6OVm6GjoZehqKOiqKugq6+jrbelo6OirK2qqKuvsreyvbWzq6+YhHNzaFtYWFJVUUVYTFFbWE1UTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62os7auqaevrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEure7w8ixrLi/t7y+u7S3p6qglpaYlYV5dIB2d25taG1ubXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXVxcXl9gZH6NgYt/jJCKko2XkZeZoqCboKuqpq6sqK+jqJqfrKGVlqSop52XkI+anq6WmKiqmZ+dlKWgnpKQkpGTlaeqpZqZmZ6elY2Mi5OGiI2DkIuRlZGgnqGjl5WflZqhop6Um6Wlp6iooLGwprG8p5+jrLSrrqewtbC5tcCxrbGrkH1xcmJWU1ZOUklGVlBSUUxMV01KTE5SR01KQUNGREM+QDY1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqaisKudqqepsrGltsa0ubqzysW5usHL0Muxtre8vsHDsbCyuK20tLu0tqWknZyXlpKBfnZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKl4mUlJibmZ6pm6CqpqWrnaeZoKWbk4+fo5uXl4WEkpujj5SjnZaWloiim5uTi46KkJqkp5yVlZeckZGHlI6LgYuNf5CKkpKSoJqfopWTmJiVoqaZjJmkpqimoZ+0sqiyt6Gcoresqq2ksrKltby1q6uxo4l4cm1dTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2saWno6mloKilpLOqorLDtbWys8bGt7rDyszGs6y5vbS3wK+tqbGepq66sLChm5udlZOGeoJtX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGEj4uUkZSeoY+bnKOho5illqKblY2HmJqMc42Dfo2XloaRmZCUjo57mY+cjIKJf4qYn6KekJOYloWNgpR+fnSJjnmQh5OPkJ2amZqRlZCdjqKjjomaoKGjo5uitK+sr6yfmKW4pqaxobGunLC7qqmvqpmCdnJiVU1ST1BNQ1NOTFFNQlBRSElOUk1ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTE3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6a0wbivtLDJxLe5wc7FvrOsusGrrcOtqKKnkp2mt66lopCWl5OPfXd9ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5YcpCDl4aNnJeLlJCfmJ2VlJaUjpaJgJOJXztXb3yLlImAjJGMkIaGc4qFloF5gXqFlJ2Ug5aOkZCDhn2TeHFvhY19iYGRjY+XmpiTio+JnIefmIeIlp6aoaCXp6+praion5ats6Kmrpmsq5intKKpraOTfnJtX1tOU1JWTERUSlBNTEZOT0lFTFFNS09KSU1PRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6OpsKintMG5sLWwx8K3s73Pv7mvrrXCp6rFqaOdmYOUnLGknZqIlJCMh3xzdV1RTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQH+VkZF9iZSNhIqNm42WlYmSiIWVhnmIf2BKUW54ipGEfYSNioV/f25+f5R3dXV3hI2ZcFGNiIqGe354lHZod4aIfoqIlYqNkZKWi4SKiJSEmoyChJKalp6clKSjqKmlpJ6bsKqhpKSRpqqWoamcoqaoiXVsZV5bSFFRUk1JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6KnnZ+ir6GnqKWnqK+tqrW8tri3s8G7tqe5yLi2qKi1tqqyvKaelo5/ipSpl5iNf46EhH13cW5YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJOBkpmLj3uGj4B2f3hzbnVwdI2OgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gHZycpJ3Z3WEhISEe5WJiIqMi4B/hIuMf5SDe4GQmJWclZGfnamen6CdoKmln52Yjaekk6Cflp6epIByaGBcXEpWT1JHSlhST0pMTVJKSkpMUEhMUUxSVExFSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpijoZicn7Spr6mlraywsaq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGOlIGOnI+UgXiIen13cHBpWEtISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfXlnd42XmI2PfWh5gXZ4gImPfYSYkoFyh498d3tva36tfXOQi397hpKBfX90ZnZ8hmxvaHN8iYyIgGx5cX1wbXWPcWlxgH6OcEOLhIKDhX93d3qLhX2Me3V+jpKPmIqSmpujlpmdmp2eop2WjYqlm4+el46WmI92bm1lYlpXV1RRSlNVVE9QTlBWS05LTk9KUU5ITk9LRUM8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ+WoKavrK6rqKmwr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mPhZJ6iY+MjXhyf292cWxua1hLRkdFQUBDRElMTE1RUlBRU1VUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFheZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnp9fnt2b3RzhYJ5gXhwfI6MipSDlpeYmpCTlZaZl56XjIOJn5GLko2GkJZ+bWhtbm5XVVdUUlFZT1JUVFNYVU1OSE5KTU5KQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6lrbCirKqota+urLS/qrvCv6aimZWkl52NhIuUoaGYmJGTi3OOeoCGjYh2cHZtcW1mbGtZTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX9wbX96i4l2gYiGdGyakXRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxgHxncXF7bpONj3tzfXxxcG51bYJ+d3l1anmJgoiJg5aTkpCLjZGUlI+XjoB5iJeIhoqGgJCHdmpqbmdkV1FaV1lZW01QVVZZWE5JSEVKSkhGQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfprqvq7KwwrG7w8ealo6UmYuNhXmEkJiUjZCMj4Zxh4J0h42Ie3FzcW9wZnFnX1RGSUM/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgYWBeoSGhnlyoJVzeIBzdZSHNXGdqJ2OoaGEooV2cIZ8h3xzjK2NiYBnZmJqbnJtcIN1aW9YdXCOmpJ3bH97fW1xbXCAenN1bmN2g36GgIWQkYqLiZGLkYyLj4N1eIuPgH6DgH6PenFwb2tfWlxdW1lYYF5STltaWFdMSEpFSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoeWkZ6kp56vlaW1qq6xrsGyu8HGlo+MlJCAiH1ugZCSiYOKh4+FdYKEbJWIiXx1eHhtd253ZGleSVBHPkA3NDQ4Ozs8PT5AQkVITExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgYWZhJucYYaqn52Lg5COeneIfomIjXOKl4+Eel1kcXR6e3eKbGdqYnlvhY+Cem6Bd3SEenBzendrbmled4d9h3yIh4+Ai5KXg42FjYd9cYR/hHx1d3t9iXVvcnNlZl9bW11TW2ZeV1FVWFtVR0pKREtHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMeIp/lIySnZ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fYF/cIF+emh2a1JXTEBFMjExMjY3Njg4Ojw+QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbXyBhod9jmhnaHh+boWHgoVxhIVHa4B3cXl2aG1rX3Z9g4l/iIWMepWem4qLiJF/enWLdnx3bW93fn9zcnFqWl1cW2NjWGZlW1VPUFZZUERMS0ZOSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpeSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1ZLQjYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiZGBmpWCoKGXlZuapa2Tmruxp7vHw6iKjKGlj5SJgZF7coSen5Gcf3aFhYqPiJBqaG+DgHWNhoSLcYaCd4eAe3aFfW52dWeAlI+GiYiIiIehq6GWiY6Yf3uBiXp6b2dreH54fXFqY11aWl1pXGFmX1lPS05XUlFJUEpETkdDS0RDQURDQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnVwZniDe4CMgIGQj4uamqScoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBi4uCiY2Df4p/bHBqXUJBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPop+UmZKEioWPmJGWbHB1iYuBloyNj3aPhHFshYGKlpKDhYhyiaGWh5OJj4+WpbWpm42VooOHk4R9f2tqa3yAf4ByYVxiXllmalxra15XS0dPU1FOTUxGSVBDRE5GQkNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+l5aalJ+fnKegqpaTmJ5nZaSafoSSkXmAkoiQkn2KhZiSkYKAgIuNiYWQh4SIhXh4f2dNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+ElJKGnKGampmnkZGIlaKamnd6fpSXkaGSl5eBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N8fnpwZ2BbX15hZmNgZ2dcUUVKS1BPSUpMRkZNQ0hMRkZDQkdEQDo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Kjox7ioaPkI6Bg4CJi4qEkoWDhoiBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtL24pa6srKeotKywt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsrauki5aYhaamoKKXgaaZjaKqqKSHhZOjoaCqoKSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWqiJqJkoqVent+hH1mX2dbZGFdY2NeZmZeW09DSUhUT0ZITEZKR0VGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqEdoGUhYiCm4OSkI2S2sidlnNWl4iPiJyPfIaMjoqJeoiCh5GOg4WAi4WGh5KGgoSJhoeHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJTVVVXVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHw6uzxbass8Czub62v7TBtru7pLjGqbbJx7a+ubSoo7StsbGcmpKan4mnr6qklXafpJehq7GzmJaqraiutbuyuqyvtaKxrLG1vLe1rrWgp6ijqJupsK2yuri4p5u3qY2ljpGToId5gYJ0WGBjVWVhYGJfYGVfWlVKREVMVVFISkpESUdFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hX6AjXu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeFgY5/gYmOhn+GiIWKh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFdQX1VJS0pBQD9HS0ZFRDs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMm2u8S9s7PAt7jCtb+wuHSytKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KSpbGtpa2sp6SYoKyzuqKpsrq1u77Mv8XFvb2zwre6uL+3ure5rK2wprGqrb6wvbvCwqyZuqiUro+YmKqJfoF7alZhYFdpZGhkVlpjWVZUSUdHTFFHQ0hJQUhEPj9CQktAQExDOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWVVad2pwf4+EgY6FbnpyeYhiuKGZo4mVk5aTk5ONkJeSh4d7hoGNlYqAhICJenyLh4Z8ioKBioOVfXd5dWVPXGRHRUw6UWRhW15TRj47SFBEWmRRUVlYWWdaVGBgTVNPRUE/SUpIRUZBQEM9RTZCPkhHS0xTWlRdk6+4tbq5ycC7vcnMu73Au7e1vLu3vrW6ssZgdbOlsZqeq72qpairqqOisrWhq6eelZaemJ+upaenpZ6klKKnsLOnsrK8tsG908nK08bCxczCysPAvr2/u7y3tLC5t7fDusa9w8mwnrmqoqyPpai3iYF+cV5hYFxWYV5nZVJYYVZSVUlFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFNRUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWhsbHGQjYWQc2xzcnOI1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaLf4N/gnh6i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV5vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVlxaW5K5wLm9t8bAu7nKy7q2ura4ubO4tbSutraZZHWonq1wXqKsnJihopuknqullJ+fkJSPlpiXqJ+ln56amYOknaykqrCtt7C9udTQz9fPyczSzM/Oyse/v8LKvcG9wsDFxMXKv8jPtKS7sLWwm6y5vZp+eGtcX1tYXWBZYmJRW2BTUUtDQkVGRTxART5CSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KRlG5sb3V1iLOsoaGfi5mcmYyMlZGbkoWKin6Ih4yQi4l8gYRze4mDhnyJdIKKhpV/c3t4bG11e2hyZWlsaWZqaWhgZmlobVptdJetpLyIh2dbb2hdWllUSEpOUEpLUUxUUUlMQUpHS1BfX2JmaWGYt8ewubO7vrayxMe2sLmxsLuss7Gnqresjbannpunmk6bnYyOoJaRppillYqTk4mQiY+Qkp6boZiblJaHnpmmm6yvqK+ns7TU1NTW0cvP09XO08/MxcLK0L/KycvJ0sjNzcLQ0riwxLzEuqa2u8SigW1iW1tdV19XWWVZUFxXTlFDQkhFQkg7QUQ+QUg/P0I3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmINocW95eYOgqp6ml42bm5eLjZWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfXF4dWxxeH5xe214c2xogHBtY2ltcHlpd31+y7/C36dtY3huY1thYEpQUlVOWV5QXV1OUU5UUVVUXG5ud4Jylq64rLSnsLarrb3Asau1pqW4p6yuoay0o46xrpqYmIyRlJGEjpuBjaaRnImDi4SKiYSLg5SVmJeUm5Ccl5mZnp6rrKSnoaysztLV0c3M0tPU0NTRzsjD1NHIztLT09fN0tHF0tbGwM7HyMOpv7jQnXhtZFxhXFVeUV1aTk9TUE5IPkFGQkJFPEBCP0VFPj8/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk+NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bXdwfX6AoZ6eoYuNmZOTjIuTj5aEeYWQkI2LioiRh3+Ce3J+gIKHeoV1hZORiX9vdnNsc3x8dnxzgXdxaoBycmlvcXp5cnu+y5p+jLGDdnKEdmhhal1DWlpbVmZkWGVrVFhdXGBjXWN4e3+LgZmqpKShoKGppqqxuaqmtKOiraKjraKnsZ+JppqUkpGKko6IgpOJa5WijZiEgYV+kYODk5asi5WNlZmOhZKQnZensKGgoKSkqMjNz8fBy9DT0dTTztPNxtbTzdTY1tbY1dfVydTazcnX1tHKrcTDy4lxbmJfX1dSWFJbT0pHSUlKQDs6O0VCRDxCRD5IQj9CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTU7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN5coKJgZ2VnZSFi5aJj4qIjoePf3eElJmLjYiIi4l+g3hze32Dh3eAe4eRl4GDbndwbXV/dnh9c4V8eWyHdnRvfXaEdXl7nbWMPEGKxqV+jXxpZVZJQ2VjZmNoamRveVtfZmhrbmlugIOJkYudn6CdkJeYn6OjprKkpLOgoqWeoamgorGchp6SkpKQi46LhoOPhH6cm4yNgoSFepR+gqmVo4ySipeSi32XipqRq7OYmpunnKe9w8a4tsbN0tDS0MvSy8nUz9HV2tfX2NTZ2M3Y287J2trS1r/MzLR2dW1jXFlSVVBZVUVGSklFRT06NzlAQUM6R0VARUNBREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFZPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqCh3x4hZaXiI+Dh4aHeoR5cXp7hIZ1eoWOjZ16jHB8b3B6f3F8gXGDh4Bujnp1d318gnV/fIeIsHRYqcK2jJKBcG5iPV5ocnBxcG54d4JlaW9ydXhye4uHjpSSm5agloeMk5ugm5+qn6GtnKKamZ+lnp+smYuajJGSjYV9iIeDhYuOoJmTiIOHfm2ZeYSYhoiTjI6UjIV7m4iTj66qlJWXnpimrrW8qK29xsvIycvLz8jE0srU1tjX2NfU29fT2dvWz9va0dbI1cyVeHpoZ1pZT1JTXUhCRUlJPkE+PTc6PT87Pkg9QEFBQURBPj46ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fISXjoeLfoaHgHeCeW57e4aBdHqSno2hdo91gnR1gX10gIRvgZCBb5KEdHyBhXp2hnuJt8akwsm3gZWbj3hwZU5lY4J6gXeGopCLeXl3e4N/fIR2bZSWlJWPl5CDiY+WmpeXppyYoJefk5KXo52Zq5aRkYuNkoOMhYiIgYWQkZ6cmYmFi4GFl3uIiJ+XkImNiouCfKGIkIu8oZiTl5mcqKalrp6ntb7AwLnHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvGhXl4ZWhjX1JWVlVNS0RNQzs9PTw5Ojw+OT5BNj4/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop8foB/gH2Fen6CkYmEhXqFiHt1fXRufH2GfnR/kp2Rn4OSfIZ9eI59eYqKboKagHSYhX6BiYV8fpB6j6mPkMOgu4yco5x9iYR9iXKMin5zppqcmZSFe4+QiYRoR3GhpJ2Mi5CShYiLkZOVj52ak5WRl42MlZ+dlKGUko6OkIt+kI+Oi4SIkpaan5+JjJSRnZCCi3+mmYiFjoKGhICkhoqLuJidkZSWoaegnZ6do662urWrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3d3dmlpZFZfWlNPTkhETEI9PT45OTo6OTk8PTZAPj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmAjopxcniKe3t/fX98iHp8e4uHgn51g4Z5c3pzbYF+hH13hpugmp6UkoCLh3+Yh4Cckm6HqIV6oIt8kI6DiIScfpqRio2jop+Qo66fi5GLhYuBkoZXcq2Ln6ycj4OYm4+QjluDopGCjJ+TlYyGiIySk4yUlZSQjI+KiJabnY+VlpGLkpSGgIuJko2Kip2WmaOihpOdlaCLioiOnJCDiI+Ag4eFpIWLkLOYnJKUl6GhnpmSm52nsbispbzBx83Hxs/Mz8zP18/R1K7W1dja2dra19bZ2Z5ue3NmZVtcV1JWV0NASUQ+Pz46NDg6Ozc6OzozOzs/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieGxifpKDbm13i3h5fnqBfYZ8e3aGhIBzcIWCe3Z2dXSEg4V9fpKmo56lopaJnZCUlouKqJdyirKNg6aRhJmThJmMopagmZOJmp2hkqivn5GUkI6OiJWLbo23hJrEyLKdoqWbnJiWkbKQY6TNyJWOhoeJkJKNjZOUioWKioaWmpuPkJSTh5WYhICPi5mIjZCql5eko4iZnpabiY+Hl5eLhY+MgX+Gj6SIjZOomZeTlpihmJ+Zk52borK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6BcX5nYl1dXE5JVFlBQkdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdoGPfXxtfoh4en56goKDfnZ2gIJ8bG6Lf3p8eHh8hIeKfoqjs6ejqrOhlqefpaOWla6hg5C4lZKymYyhoYykm6+jpJ2YkKeWp5msr6SXlJaVkIuYmZagwI6jybmrm6OmrZiRm52ynYWFqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIuUk4aUmIaEkZCcdJGYspaXpKGInJqTkIqRipebiYqWjoZ9jJieiZCQnJqZk5iXn5SgnZWem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LQ1tjT0Ni6cXh1XF9UX1VPSEpOREJDRTU+Ojc3Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p7boWGenyEeIGFgX5weHx+fW9yjXp9gXx4houJhoSSp7usqLK9r6StsrOoo6KwrIqatZ2iuKSVraSXqa23pqSjn5mpl6mjr7CpmZiclJWRl6CYmru7rsqhara4q7CUmJ6jq5OXvaNeqrKCiYqNlIeRfI6OfYOGjpCUlIiHk5aMkJWNi4yXmJKcmbSXlqudi5yUko6RkoyZm4qRnpCLiZWfoY2UjZiZnJKbmJ6UoaCUnJylr6ihpLO4q8LIxLW6vbvFx8fC0aDGyc3NxNfW0cvUoW95Z1tZU15QTkVDPjxDQUE4Pzg3NT9GPDw1PDM1MzU1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEpAi4p/gXOGh32CiHWDioJ/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruzs8C8s6yrs7aLp7Ktrb2qm7ukqK25uKumpqGio6Oor7Kxqp2cpJibl5eeoqalkqS6rqnAvK2tsrmmpKh+iIacrb2wgoyMi5CDj4ORj3qBh5CNjZyIh4+XjYuVl5SRmpedqJqxmpGsnI6aj5KOlZCQlpeOkaCRiZSbo6yUlo+UnJ2ToJ2bmKChlJqep6akoqSws6fBxsOvsLq2xcTCv82mx8THw7zV0c3EyodycmBaWV5aTEpCS0BGRz5BP0I7OjQ+QTw9NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxlR2BpZ1pdXJOMjIh7h4uGg4x1hpGKgW9+e4F/cX6BepV6kpSUmJCTlaezxsm/wszBw7nHvLqvq7m6l7K2urLArqXApKuvu7yqraujo56nqq60sKqboKqboZuVn7C0p4ujurq2wbysqJyypaSolIWOqcTEpIKLj4eIhIaVlI16g42Rj5GhjIyUkY6Jl5+Yk5mVmKagrp2MqpyOlo+SkZWVjpCVkY+hlIaXn6CynpSalJ+hmKSfmqCboJSYnqWjpqakr66lv8TCrqi3tcnDvrbPssS/xLyz0cnIwrVzd2tbV1tpUUxIQ0xKS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk5lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHuNf3iHgoGQeo2hlqiampi6vcfIycHSycrCzLzBsq27vqe6v768xLeswamss7u+qrCppKWjq62zrba1oJ+unqWimKOzvambqL3Bo7e3sKuTsayrrJeHmqmnpZGCjJOllYmBdoqReoWNkpCen5OPlIuPjZSjmZeclZWjnqmfkaWajI+Pj5WWiHyPlZKSo5qVoKKctaWQnpeko6Klnp2mmJ6Vl5uko6inorKsqLzAw6+lsrfMwLmvxLO7vsK4rcLDwsCYbHhgV1ZaWkpLTUpGRERIQkJBREw6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+JoJOEeIV/lX9/kIiKkICWoZmupqOYwr7Hw8fF083Ozcu7wbewubyzvMu8w8G1truts7+5vK6vqKCop7atramyt5qerKKnoZ2rt7ippLC/xLG+ubOnqrWzra6XlqWsqKCRjpKxxaeVjn2RlH2IkZmQqpmYk5OPkpWTpZ2TnZmUoaOinJifmIuMj4+eiFqQlpeSlqSZZZijnrKklqGWrKyqp5ueppeYlpiVoKOopZ+2q6m5u8O0pbO1y8C4qrassrq4rqi3ur24gmttWVZUVE1FSlNOSz9BSEVESEdHOTVGTTs+Nz1ASi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZGDh6aTiIKHgpyDg5WQkJOOmqKfr76uoca8xcTGxs7OztLKvru2sbq7u77PtsS9uLi3srG1s7izq6acq6u5qqinr6+Xo66kp6SktcCwq6y0v8O6wLqzp7m1uLOvlqWtrq6li5OVoY10wZp9lpmFj5aajLGVm5qVkpOZmaWjlZ+blpqpnZyhoJmKjI+WnWBKlpyalZqlllSWsJ+unJ+klK+uq6WaoKWUk5iYjpyfpqKZtKmqs7y7u6qwsse/uaasq62xsaOhsbK0pG9sZVtZTk9LRU9QUFE7R0pIR0lDQz46S1U/QTo9RU0wNzU0NDpCMzROV088SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4unlo6JkoWfh4Sdl46doZqjpLXItKnGusLDx8rIx8zNxr67s665uMDBzLXHusG4tbqwr6+ztKajm6q0tKmppq2smqStpaSorLq/qKu2t77Bv765s7LEsrm9rKOutay5poibmKabdr+fhJmdjpOZmouvl6Gcm5aVm5+hqZ+noJmaqpmhp56YkI2RnYNudpKimpWdop6QrrKiqpSoqpeqraOjn6WokpKZnIiUnKKel7Gnqau6tr2zsq2+ubego6eopaecm6ypqYxiZF9eUUpMRkhOSVVMPU1ETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5WcoZ+6r5mUn4uTq5uRkpOJq42Hop+Mo62Uo6O2xr20wbrCwcbIxcLNyMG9ubKvuLTAwsq1xbHBvLS6qqitrLCio5iqtLulqKarqp2or6ejqqq+vKetvLS4vce8t7W3wbG+wLSptberv6WPopiRoqC8n4maoJmXnp6Pt5+pnKWim5yhmqils6GbnaWcqKqemZWPlJuKlomMpKKUnaKeoLSvpaSTr6uZq6qdnaSjqJGVlZ+Dj56em5WppKGhtLS6ta2otbKznpyipZqXlZiqoZ52XltfXUpIRUZNUUlNRUZHQlJMSkJFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+ew62bl6WYmamclpqaj6qWlaemla2tmaGrtsTCu763wMLAx8S+zca7vbmyr7izv8LItb+vu7a4tqakqqutoKCaq6rEoqSoq6aeq6+soaiov7emrb6xuLbHtrW5uL+yv8G3tLO0r76jl6OWlJyUrqCRoqKlo6OfkL2kqZ2oq52doJumn72imKOeoqmroZ2WjZWek56Hj4SNk56koJ21rKWblbGnma6mnpmpnZ+NmJSeg42gmpuTpaSamKuxtbGqpaqtrJyYoKCSjpCWqJ6UZ2JYYF1OSEdKTktIRURJQT5QSEA8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm5SRjxLeGViVkyimqOcnsWsoZ+snp2uoJOjn5aln6apq5e2saOqs7XExL2/tr/Cu8jCvsrItri1tbCzs7fBxra+sLi0uLWfpqyqq52dnqWkwaSfqa2fpKmsr6Kmp721pbG8ube2w7Kzt7m/ssTAuLius7W1o52llZKUoa6gmaKdqairo5rCramerK2bm56ZpqG9oZ2kmKurrKahmY2an5KeiY5Xf5afpqGguKqmk5i1o5+xoJ+arpaejpiUnYGOn5eVjqKklZCmrrKrqaGipaWVlZ2Yi4+Rk6SeiWBkWWNgS0hKSk5FRUFGSj49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dySEU2PXVlXEtOnp+hmZ7DqKWitKKcsqiTq6Sgo5+tqaydu7CorLWxyMXBwrPCw7zGw7zEyryvsLatsLSvv8S0ubGwubSsmaiwqamanaWhp8Ksm6ywnKmjrbCppKe9tqa3u72vt8Ots7LCwLLHs7q3rLS2rqqippaVlaSsop+fmqirsK+vu7KmoKmomZmYk6KkuKChpJOvr6ylp56SoZ6Uno+QjZWdmqKep7OmpoyYs5ujrpqdm62QnpOVk5l/kaGWj42foZOLpqywpaahnKCekpKak4WLko2cnn9gZVpnZUpJTEpSQkNASUc7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+jn5ygw6ikqrKho7SqlbOsp6KksqyuqbuyrLC0tMbAxMO1v8S9ycS1wMjBtKu1qK+4rL/Ds7eurLa5pZmrsauql5+ml627tJunsJutn620sqequbKourO3srnAqrexw720xqe+r623tamoq6GXl5KmpaKimJilr7iusrW2oJ+opJmVlZOkoLeipKWWr7Gyp6qmoZ6bmpqWl6ifn5ihnq+yoqaMl66YpKqXmZ6kkJqNk5eZhJWelIyPnJ6Ui6mpqqGnoJmelYyOmZCBhZWJlJ94Y2hcampNUE1OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzuko52hpr+mqK+voam0q525sKujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDGwLqptqSsu6zAwre3qayxuqKVrbCtspalp5GquamgprCdqqCvtLOqqba2rbuss7O6t6y4sMO6vr+mw6uwt66pq6unnpiZq6KioJGYobGvs6uwuZqcqaCZlpKXpqG3qaWjorCxtKuyqKufm6Cgm52lnKGXnaOzsJqfj5Olmp+ompSinZSXiZOXkpWWnJOIkJuZlI6oqKafo5uXm5OHjpmLfYyWhY+bamhsYGxuV1BRWlRBQ0VUQDs7SEE3OlhQZF5QVldEWV5dTUxSTl5LSj5aY15OSFBOW1VZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oauwq6OxuKqltbOsoK21vK6zuLy6vba2wMK/yMS5xMG/v7jEvcC3r7anq7exu76/tKiusbael6utqK2Xp6iOp7ufpKyznquisLCzq6m1tLW9ra+xtaywtLHBusW3q7yvsbisraqjsaaepKmfpJeQmZ+zqrOqqrOanaebmpWOoKaktK6noaytrrGns62xqqScn6ijnpWhmZuotamXmZGSnpmdn52Qqp2Wl4SUl4qcmJuTio2Wl5qXpqWioJ2WlZeTgI+UhXuOkoOMlmVscmdvcV5GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2FVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoKSstqStqaWurraqr7W6p6awt8W3sba+wcK0tLrFvszFucLAub65w7fAubK0q6m6trq5vbSprbC1mJinq6qrm6urjqu9nauusaOroLCts66ttrK5t6qurrKota+zu73Ksqq2tbG0r66nobOgm6itoKWVlZqasqOtoKavl6GkmpqSjqKlp7KpoaayrKq2pa6xta+kmZ2tp5qYn5mZq7eil5OQjpecoZeWk6uempJ/kpeMnZyZlZCJlJKemaWioaCYlpGTlXqLj4V7jIqDi5JqbXhtdXthRWBqWUlIWVo9e0pGRDZBYlRpW01cYEpbXVpSU1JiYUxLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lUS0SZl6CxqLGqraakr661qbe0uaSss7fKurS6ur++tLO3w8DMyLzDvLa9v7+3v7yxva2nuri3tsG2qqyxt5SXpq6rp6OwqpSvu6SssbKnqKOxtLCxsLWxuLKprquyp7evtbTDxbaptbassK2pqKO2oKCnsaCklJuZlbGep5ygqo6po56blpimpaW3p6KxtKynsqetsLaspJmgrKibnJ2blKm4nJSOjoqYnKKXj5eln52UgpGVj5ybl5WUh5aPl5qnnKOgkpaQkJV2hJCHe4WBhIyLbXB3dHt+XEtlbFxLTmNcPmJ7R0k4R2dXZlxNXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLj1FTFE8M3JrSkNDkJmlrqWtrqunpLCys6q3sbegq7W5ybiuwLvDt7KxtcLCzsXAwb20vL+/ur68ssSnqbiwtra/vK6qs7KcoKewraalr6WdsrWsq7GxramotLqstLK1rLSsqqyorKm4rbGwx7+4pbqwqa2tpaitsKakpK+jqZyenJuvmaOjoqORrJ6joKCiqqWmuaWstbWkqquorK+2rqOdo6iqm6CampKks5mOiY2HkKKglI2TnJ+TkYSNkpKdmpiUk4eXkpWZp5ufnoySkY6Qdn6NhX18fIeJiHBzcX18fVxTZG5eTllmXEZElltHO05tWGJbTF9iTlZXVldUWGdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis6ST8zQklTLD6PazxHSI+cqquiqbGkqaWztLK0tbKyoautvcy6rsC7x7G0rLTCwtHFxr7Asr3Awry/t7vEp6y3rLO4u7+vqrGtoKOnraqopLCjqrGqr6ywr7Cvq7O7praxsqmyqaumpaOtuqyqscK5tay6qKioraqosaWppKKuqqiin5yjrJWlnpiemaydoqepoqymo62suLGyoKmioKuvsaydn6enqZmjmJmPoKeYhoSOiouen46LjJWbjo2Fho+Un5yVl5SGlpOTl6SbnJyLkpCNiX5+h4V8d36HhYZ0cnGIdWtfWWBuY1FzcVxLO4R8Rj5XdFhgWk5jXE5VVlVXUVxiXlNPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlFo+TEWVmK2ooaqznKqqsLWtuLWuq6Wqqr3JvLG9t8KvsayzxMPOzsO+v7PAwsO6wLPIw6uut62yuL++sq2tq6SnqbCpp6ixprSuqrCurbGwtK20u6S4s6ysrqeroKKer7eqqq26tqW2taOqp6yrqq2hqKamsbKkpqahoayWqqGVmqCmnqSiqqWtop+nsbetrqOlopuqq62pnKGlpKSYoJqVj5ick4GCj4iFnJ+Lio2LmI2PioKLl6OakZCai5OSkZOimZuZio6LinyGgIGDenSAhIF9c3aLo4d4al5gbmZXZYdjTj9nk0xFYnlXYlhSZVRNVlVVVE9cXWFVS01pV1VXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIY+SEZEl5KwpaOqsZirqq22q7axq6Wsqqm8wMC4uLO7taWysMTJy9G/wbu4v7/BucG5wMStsbWxs7q/vbKwrq2rq6i2qqatr6q5r6ixsa+yrbaqt7emtLerrKSpqpyjnrOzqKiktLSgtq2gqqirqKunoKurqLm2qaqqqqKpoKyckqmhnaCko6ajqp6cp7WuqKaqoqOYpaanqpyipKOfmZifkI6PmI1+h4yGhJ6dhoOKiY2Nj4yChZSimY2MmZCRkY+Sn5aYlouKg390hoF/f3l0g396d36Ah52Pb3FnZ3B4XGBziGtPXplWSG14VWRWUmJPTVVUVVBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg/Qyw+TFRfL0pqNk9EO5aOsKGmq66arKWtr7O1r6ulsKqpur68wLCuuK2htq/Jx8jQwL68urzCvbrDwL6/rrGysbW8usGxsbKrs6iktamlrbOzubCjrbaxsLO6q7mvqa22rKqeqayfoqC1raehn6+yorSqnqinqqOqoaKsrai9r6yuraKoqKCsmZCwoZiioKennqibmaqwqaOfraKhk6Kio6eYmqmlmJeZnY6Kh5SHfY2GhISkloSBgoqGjYyQg4OToJaHkJyQk5CNkZyUl46KhoV4dIF/fHV4eYB6dHN5aH+Go3VpXmVrgXRniIt9U1hwXkp4c1NkU1FeTU1SWWZOTFZZZFhGU2lSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6MzhfPWFkP0YxQ1BbWypITTlVQTSRj7KgpKaspKekrKe0srGqpLGoqri+wbyvp7mqpq6wycfI0cO8v764vr+8ybvAuLCvtLG6u7fAsrO7rLisorSnp6yytrmzp6i8ta62vbC9pqystautnKmvo5+kq6qnnJ6qsqSzqJqqp6mjqZ2jqaepvau0r66dqaSgrpybs6OVpJylpZ+km5qpq6Wem6qhm5KboaSdmJepqJKYmpOQioKPhX6Ogn+Ino+Ffn2LhpCNj4R/kpqThZOhjJSSi5GakZWGiX6Acnt5fXxod3x6dHBwfGeEeISIZGFnY3GFem1meF1eVkJXem1UYVBSWEtLTnF1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYkpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0FKN0dTYFUqPTpEVz4qj5SxmZ+gqaWloault7Kypqmxp6y4wb21sKO5raioscPJyc3Btr2/tbe/uci2w7WzsbWxvbe5vbWtubW+raGzp6qrsLW4tKufvbyps8Czu6Cvs7Wpq56tsKOcpKiqo56cpLCmsKCfq6mnoqqbpKigrbunrrCuoKujpK6enq2ml5+boaOcn5yao6qjmpqkpJaWlJ+hlpuXpquLnpGQkYuCioB/joB7mpWNiHt+i4WOjYuKg5GXkIaUo4mSkoeQmY+TgIh8eWx9dnh4Y3t7cXBwcndnf3Nqg2dkZ2Btc45tYWlwYHBBXHhsVV5PUVFKSk1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzMmLDokNDFCaFkxM1M9ZV9ETDZLVmRPKTsyT1g9I5OZrJmfmKeko5+opLivrqOvsKqruMK6s62fuK+rqLS6yMvIv7fCvq+0vbfEtsOxrrmxs8C0ur23qbm4vauktKipqrCuubGqm7u9pLDAtbWhrra1pqansbOgnqSmp6GlmZ6sqKmeoKqup6CmmKOon7C4n6OxrqCroayknKanqZqam5+jlZ2dmp6pppeboKiSmJOYnpOZlqGpkJmJjo+GfYd+go59fKGNjIh4gouEiYuLhYeSmY6JlZ6IkZWCi5eMkXyFe3NwfXFzdGB5eGlucHBuaH1xY3psaWVjX2WFf19ac2tyTEx+aFhaTVBMSkhQUlBJTlxfblNEV1pSZ09ITEVGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy02Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo+L1hXNSiXnaaZnZatoKChpKG3q7Gks7SqqLnEtbOun7esrq2wtcbIwLe/wbmwtLy3v7u+r6u9r7S/sLzCuKm7urenqLWoqKuwrLOwp5q+t6WtvLawnrC3sKilp6+xm6CkoKSkoZabr6ahnqKnr6GgopOkpKK3r6GmsaqerKOvmJyqpamemJqepZObnZqdpqqanJyllpWXlJyOk5ejqKGQiIuPhXqEfoSKeo6Xio2GeIGGg4iLjYWNk5eMjpaYio+WfoaXi495gHpwcndvb3RfeXdkbGxraWiCbWVyamtkaFtic39fWmx2aVpIfV1bWE9PSkhIUlVGMjpfXmxQQ1dWWWVNSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0FmW0hUQ1RdaEUuOzFfUywylqOhl5WcqZ2loaOht6qvoLq5pqy9xLOwr6K0r6yur7TExLyzv7q3sLO5uLq4uq6tv7O0uK+/wbisvbq0pqKzq6ips6uusaOcwbamqba1qp6yu6mmpqiwrJmip5ykppSYobKlmZ6kqamcoqCTpZ+kuaikp62mnqWhqJOfqaGhoJmbnaCSm5yXoKKrm5uZoZWSlJaajZOTo6ekj4iKjoV5hHyEhXycjYmKhniAg4eHh5GFlZKSjJCVlI2OlHuDl46Kd357bHRybGxzYXh1aGdpZ2VuhGdoaGRmaGpfZ2JpZlplemNhUnNUW1tTTElHSU9TQCEral5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc4Yk4nMp6ko5KOpKacnp6epLWsp6q6t6isw8C3sKyitK2nr6+3wMC9scG3sa6xtra4t7Wsqryzr7KxvcC3rru7saWftqympbSpq66goMOrqaaws6ustLqdqKqqsaaYnaqep6SRmaatopmdpKqhm6Kdl6Ccp7alr6quoKGdnaGVoKafoaCZm5qckpqelaaeraOYl56VlI2Ul4yPmJqnn5GIioqHeIV3goKCnIeLgol7foSHhoSQhJWVj4+PkZGRjZJ7g5WNhnN+fWZ4b2tqbGd1c2tiZ2RjdH9iZGVmZWlqY2hwWV5YXWxkYU1oV1pgVklHSEtNUlg/OWBsaUdCVVNcW0hIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGRHJTWbpKCRjK6gmZiglqW0saKxvrehsca7ubCxorarq66puL28u63Asq+urbavs7izp6u5sK6utLa7tq+4vaymnrWroKGwpauvn6XDobOlr7Gvt621na2vrK6jmZynqqWflZuopZ+ZpKOpnJqfnJSbnaywpbmnraKhmpqemZ6jmqWdlp6Ym5SaoZKolaypm5ScnJKMlZmOlJSYqKaNjYqJjnuCdIKBipiFh3yJiISEiYyIkoSUnJKSj5CRlo6Qf4CNjYJvgX9meW1oa2pncXJrXGhkYnJ/YGRnam1sZ2poZmxcbG11cWFUYmhjZVlJRkxNT1hRUFVhZYFUQFZTWVRGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUlkQic0k6Kbj46xnZuToZqpsq+fuMC2oLTBu725saW2r6mupbe5t7isu6+tqqu3qrS4raWztbGuqbG2trGytbqnqZ+2qZ6fqqKqrZyqwZmupa+wtrWsrJ6xra+qo5uco6yonJWcp6SdmqmjpZWaoJ2Rm6Orqqm6n6akoJiamp6hj2uilZiccYKWnKSAdpGrqJ6WlqCRiZeZgJeLn494hZOMg21pfneDcGyGioZ9hIqGb11kYGeEl4Zri5CUknV3i4R+g49/ZoeAaHVpZldcaXRuTlBqZGZxgmZeZGZubGleXV+JkIWHaE9LRDhFVGdeSkdQUFVVS0dTYG90ZUVbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTZPa1tOXEtbZmI+RzFPYjwrL42kmYeVsZuck6Cbqq2ro73Fr6m3wri9va2ntrCmq6S3tLKzsbmtqqestKawtaOnt7a1qKestrOutK2zoqmftKueoqWcp6iarr2Vp6avs7etraSorqqrpqGenKCop5yXoaamnJunp52SnqCZkJ6nqqO0r6Oio5yWmJiXo4ihj5Kah6GHlJ6hf6V/p6uek5Ock4iEcniMjoOHoHaIjGmXiGZ9c3igb4iHg36MfH+hoJ+Zf3uInnSIjnabimyHgYNtaGVjemxxYlSGbWNtaZhxWGpwboZXXmlba2pbiHBteXKHaYeEWl5GTj5GXk1GUlZXUVFSV1RnXkxZS1JSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxVmA3LyiMppeEnaydmZmdn6uqqKq/w6+yuby3wL+qpLexqqyms7Wur7O2q6mlsa2ltbOcrLW2tKWnqLOxrbKor56qobOpn6SjmqKjna+2laSmpra8pqynqaqsp6aioJmgp6SZmaajpJmcpKmWk6KclJOipaagtqSjoKOYlZOYlJyIrpCYlImpi5ejnIWxgKStnpSanpV5gtSof4eUwJvHeXixpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsHhoa1ixrm9labySvG5oem1xj9h+U2pjtrJ+gHGUdZqhqpBXT1dhT1ZORlRbWFFQU4tcV1tQQFxFUU5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtcNDEhjqWTgaeqn5ednaWtsqmxwr2ytb+1t77Cq6a0ra2pqK+0qq+2s6inprWlp7iunLKxtaqlpKeyrq2xpqqep6SypKGhn5ecoKCwrZWeo5+0uaKpqKGtrqSinpuaoqmgmJuooZ+YnqenkZynm5SdoaaioLCjnp+jlpaSmJKZhbBraoqNqn5nhJaHrWVxnp2VmqaVca6hpH53unxroY92sV9qtFulgGWckWBmgXpmf2p4aqllvnJnpox2sWp8sXh0kpNjbW2nbVuEoEVpZ4eWRXWcYH1me6Ongllfi6tpgJR4emqnN0qvW1dUbGNaS09XX1xXVjtOiE9XVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5KhlYKsp6Wfo6SqsbettL2+sLfFsri6wqeosKyvqamxrqSwuq+kpK6zo6m5qZ6zs7CjpaCqrbCsr6aon6OisZyjnJiVmJydrqeXm6GftLKhqpuhra2gnpqXoKKqnZmepKGcmqGnpJCdo5qXoJ+rn6WmoJqfoZWVkZaRmoW1m7V4hamZtZl3h7Obt3+TlpeplX5rgaZ6gYWHkpSSd6tnarFbrHuOh5R0iHCOhoB/iJCXeIOCi5eMg6CPhbB2d59xa2psfItOpFhIY2OZfmNopmB5cnVSk4ZeUKltY3F9hoBinS5Rom5bVGtnYExLXGRYXFpCPrB4V1hBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YVU1MByWn5SIs6amoq6pp7Osqru2wrC8wq24t8GqrK2ur6ausqmhr7uqoae1raOrtaSms7Ono6Gdp6qyqLCopZ6gn7CXoJqVlZeZn66jmpqkqLSuoamPqaipm56VmKClqZqfnaOfnKCipaOVm56Ymp2iqpylmpuboqCWk5GTk52D1ZOZuXCwwn7GhnzWlJu7fJqWpZCNm4ykeo2GooGlgnqseY+dVa97iX6farlauXeGg32mgpN8mHqqeY2dj3uxbY6EdJC7hW+UT6+nxYpRoHpjYKpic3KGbJeHX1O1tMiGgIl8Y6QzQp12XVFpaGRQQFhmWmRhSkhNbEtaU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFQNzIlnKGTmLGoqKWzqqW0qKW8t8GwusCxtbW8s7ansbGjsbOmn6+2qJuouq6ir7Ggs7SwoKOenqepsKm0qaWcnZ6rmJmYl5eWl6KrnpqXqK2wqKOfjqyip5ael5yhpqKYoqGioZqioqebnqCelZmapqCcp5Wbm5+gmJCSlZGdiLJuaLVxq4hwjqZytHNytnuamKSNj5uNon6Pn6R+sHaDkdLRdVuufIV/pG+bqqZrhoV9rX2XmY97sXOTnY54s2WWdIWebp5mlFLIi1rCXJ95Yl+tYHZzhmKXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFPal9saVBVRkk5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyLqKdkaSvrKSqu62mtKWotru8sru/t7a0u7uzpbS0orKyo6Csr6SYprqupLGwnLS4qaClnaGqpbGorKqlmp2aqZ+WlZiZk5OjqaCXk6arsKWilpKsn6WSlKGcpKeglZump6Kao5+tmqCenpCWm6KenKWUnJWZop6VmJaSm4Wse3eodqOPi4epb62Kg6iDmZmiipKZi6J+kpeHroV/grNccrNSrn2CgqR/cdd9d4R+j52GmZp3r4aKkZyHd7RhmmWagoGVbJJasFhLmnWYeWZgrV53d4dnmIhqXa93lZ6PeGw1eciusl9CVG9daGBFT2tfcW1WVU0vZWNpU1lRO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6NzefnZSguLCYs8GtqLKnqrK6uLS4v7q4s7a9taW4tKC1rZ+gqauflae2rKiwsauttKSbqZ+fqKG1p6aqo5melaWilJScmZOWo6abk5CnrK+loZWYqZ+ij5GimqmmoZWapqmenaSerJ2gnaCNlJ6bnqCYmJuVl6GglJiRp52GqX19pXmhj5CDqnCtjIKnhpagoYqXl4ijgZCHlKp8gIudeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClGySXKtbWpN/kX9oZ6pjcnuBa5iHcV2sWomgjmtuZU9KQ6FcWk10XWNmTVphX3N0X0pVNUqakllIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT03oZyZmb6smLTCrqutqaa0sLixtb+6urOxt7ypu7WgsaWepaennpOqsamvqrWsqq6hmKGgpqSkuaKjq6GXm5GioJWUnpuUmaCgkI2MqbCvpp2Xmqemn42SpJioq6iUl6qon5+go62joJ2hjZShmJ+gkpyXnJWdoZWXj6ubj65tcrR0qYx3iqZztHl0s4CSpKOSnIyJpIeOdbhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJql1ytYE2hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdmVG9uLlunT2JSa2VibFpiXGBxfGNTWVA+Pm1vM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs8MDAwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eOTFBOKWam527opyywK6tq6unt6m4r7XAtbyxr7m4q8G3qquhnKekop2Sq6qntaOyqK6qoZecqKCkq7mdo62clpmPpaOWjZ2hm5mdn5GTlau2r6eZlJusqZeMk6aapa2kkpers6SgnqirsJmhoo+Yopegm5abl6GTnKmclJGrmYfUkpq7dLHEgMOGfdWWnLh4iJGXjJeJjKeHeaK2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIptmohwbY2kdL1dd31bYXm8alpWW2l5XmlgZGZibXhvWVtZQ0FAcj9DRis1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy02QDmmmZ6ivKKXscKwramqrLGnuK+2xLG6sq67sK7Bsqylo56koZybkKqkqrKktaetpJ+WmqqZpqy5naOumZWhkKagk42co56YnpqQlpKvubCrlZejp6eUkZalnaStnpGhqKugnJ+ppLKeoqSOpqGUoZmcl5akmI+woJKVqp6FkJm1gJGRjbiVeIKTm7V3bmxuc255j4SOiXKewbu8mXqBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycHe2jF5/eX2JZ4N5bXlii6xwdYV/WFunakRkWlRmX2NdYlBnZnFtdUJNUExEO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2gob+llrPCtKyqp6yrqbuusMavtbSvuKe1uK2qo6Kmn6CdmZOspa2qprWoqJ+blqCjnqykvqahqpiVnJGim5KPoaihk56XkpiUsrW2rZidpKSii5KSppylq5yWqaWmnZuiqaemo6igkayel6Oel5eYnZ6PsKmUnKeijmp+aZyneIlzfpqOdXplh3u9vsC6bpGCcZSFX3JqWl2aiWFkh46Va2B/lWNtm3ZilGt/mpWUZV5gY3GbiWhyjH2GlGZqfnFzeX18Ylt3dIFoUFxug3x7impYbHmCcklKb4VwTXRNRVdcZmFMW1dmY15PWm12anJST0RFTjtISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPltPJz8yPqifqKHBo5q0urajrKWup6i1sqzIrLCzrLWjvrGypqCjqZ2jm5qZrKeupKW1qqSbmJWim6atqb+oqaaWlJuVoJqTmKWpqJGekI+YnLCyv6ybp52noYmTkaqbqKScm6ygo5qbo6esop+qoZmvmpWmn5aUnZ+dl7ClmaKomZyRnpyjpJmno5qcmpqakJaCaG58cXaQl5SRhIq0qY2FmJWOioyYl4eTlYqDkpKQiY2RlJmTmJeaoKGam5SgnY6CeqSFbGl8kHyAdImKgXGCeHl2doqAe4lqc4F0g3Vkd312a3B6bWBjW29oTVhYZWpfV1lwem9uZlNPRlM5T1pOUk8oKztKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOhv6KksbG3oKmls6elsLWqyautsaa1psCotKGepaWcpJaVoKunrKOjt6ygmZaWoJetqqbBn6yklpKcl56Yk5Sinp6jp5KRmainssOvmaudq56PlpapnqucnqCtmKGbnaKlr6ahpKeerJiXpp2ZmqGenpywoJ2ip5aYk5mUoKKWo5+XoI6WlIuKjY6WrY97lJuCkYGKqaiFgJiWioSOn4h7g5CGhZmQh4aJlY6bl42QmJ6jlpmSkJ2Nfo1lobOuhImEdnqPin12eXpvZ3mQgYCJa3WBeYhyaHR/enaDiIJrdGN4Zl9oZGNkZmpYa3txampcUkxQRF9VRkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAtKC5r76tq62xsqCqprKtoqyzsMWwqqyjsq+8pLScoKeioZ2Zl6imqaakpbO1npWUnpmZr6auvqCro5GRnpqZlJGVoZyXqZ2FnqmsorPHs5+ppKqWlpiap56pnKCkq5Sen56gqq6ppaKqoaybn6CgmKWenJ6cr6SZn6iTmJedkqWamKmempdmg5J8ZX6Omo9jeIxsaGp6kKOra2SZmH5nhYplZWloeo2hjmtnjJeRondraouYop+Yc2xueoSNhXlYZV2FgV5rioqBdltoc3d3kYCHgm54gniAc215hHR3iImPg3tohFhdanNkXXOIaWp8cWxjXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS42Wk82KUVZL0RPMVlDOz8uPaWfury5r6uzsKulqK2usKeurrC9samopK2wsJ+tl6CknqGamaarnKyjpqips66elaOQoq+mtrmlrqOPjpqhmZOSmqCZmaaWe6Wsoqizw7iloqevn56VnqOfpJykqqiSnqGeoKqvqaqiqZ+nm6afp6CslaGbpbCkmJyrlqGem5OlmJ6rmZ5+voOIcrRyhZ2GrWh3ucS4cZKho3ummJlzqoJ8y8DAu3GKooeDnnyVmIiewL2Clp2djZzBwXuBepGMmsK/fWulsW+MgW/Ken+beJGDjoB2eYF/eXF6f4dweIWMk3lsdZFiZV54ZF9lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWo7jDtLCvv6mplKOvqbCvraaytq+qpqamsaugq5iboqCcm6qnop2roqWppaS0pJ2jk6aurLi0p6+ikpGZnaWSkZ+hmJugnYemq6Srrb/AsaGqrqqXkp+dopmipKqjk6Chnp2srqmrpaOipaCkpZytqZGkm6iuqpydqpysopaXpZaho5icf86UeXqlgXmVlptfrY9djqeAoaB8p5WbdKuCgK9eZIypeqeHhZ90l5KIs2OCq4agjY2yaoSudHyWh7hhgq1Zo81uj3V723t/mXF+iJJ1f2V7iHZ2a32Ibn6FkJJ+bICNX3Bqb2ZgX3hkW3FoamNmYFJUUlddSk9DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrcLAwLW0sLeYnpGkqqmttKumsq2trKSsprCqoKebmqaYnKKwn6CfqKejpqGfsKybnpamrq2xq6isoJSSm5+lk4+epZedqKOerqSrsKi/xrOoqbGulpOdnaKXoKmqn5Whnp2drq+nqqibpqajoKqSrLOWpqKqqp6jp6ahsKGSmqeaoZuUlJGXoHCFjJd1hKiHcbB8nXKsfqGfgaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIoYuRi5x+q3uIko6ggHqtVpzEeo9vksF9gZVtdXCMbWZ2ZYZvYXducm6IipGPg22QjmRuc3VvYGZtZF9uaWluZmNXU1xgWlJSQzhJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08Jz0xKTNWQEYhHEc7QzEtK6/UxseytJ+do46jo6KtrravqbGnqaqorqurp6KjnZmilZ+mq5+ipZ+oqKKfnrCtmJuWqKevrainqZ6XlZqkopKUoa2bnaejrqyjrLWpuc2yraaurJeVnJ2imZ+urJ2WoZmen6mxqamomqqoo6Grm6+xoqirrqaZpquqqrGjk5ejpZqUkoWkaqR1iXqpdHqycYKliZiMcIegmoekX2BSq4R/roKbda6BpoaGn3qYloV7ZoCjiaSYhoGjfal+gJSGrl58qFWdopKBeqOfgHvDr8WMc6+zs7lxYqmvwnVojIuXj4FsmZFubXh3d25sZmVkcXBme2ljXVZfaVhYVExMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLWwr6mto6inqqurqaSmoJuln52lp6aknKyaoquhpJ+vo56bk6qktrCuoKmbnZeVp6SRm6Gon6CmnLCmo6ixrLbIsrWqrKqVkp2dopmfpbOdmqGUnJ+mq6uirZmrqKGhqaKyraKqsrKhm6qor6+2o5OWpKeYm5F8qmyehId1q3l8sG6CpIuIn5aVnpWB0re0uMmAgbJeX5Spg6SIh6B6mJWZeKrJc5mjlKepkJKbjH6aiZrGxndloYKlc4KgjoJ9r15vtWOxdUujhm2nR4KTY46PnZJ7cJaRfW96dHx6bVxmanJxZoFpXmFYY21cXllJTU1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE9UUR0cOzxGMiwkqKTBxrmtqLKurKWinbK5rKqhppuopqusqaegpqWYqqOfrqudpqCsmp+ppZ2ntZ+il5Ooq7ayrJumnKCVkKatkZmcp6OgqqeuoaOnqa+0wrKzqq2olImXnaWboqOvpZehlZmcpaWrmq6crKelnqujt6ygsbiwnZuvp7O0s6WVmKikm6COgp1OeJqBf596hKN8gqSEhqaenJ6ThLh7fHm5gn7MxcK2eJqgkIuffpqWl4p1npeKpJijqH6whZuEnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXSOkaOWe32RkIhzenKEfnBbbG53cmqBblpjX2huYmRdS0xRVEFISEZJOjlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMjpQW1QcGzY/SCwtIIyHmamspKu5q6+gm6Gss7Smn6CVpa+urqmmnaammqOnobKuoammsqCZqKSUorWio5WXoam1uaSbo52jk5CisZmenKeloaKvrZ2kqKK1scOxraqtqpGGkZynnaOknaWXnpiZmaWjqJmtoaykpZeupbusobe3rp2etrO5sbOnmZ6woqSeho/RtcO3eYeOhZGTj4CmeJSid4ygkoSlgotxq4aEtG5yaZmjnJWJn3yYmYaHj3KugqWboo2mi5OciJOQmm1wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh3j5OlmH2Li5GKd3x4jYFsaHdpeHNuf3RcZGRtbWVoYEpaV1g8R0dAVDNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWSc4yKrr+/vLu1npeopK22oaOZlaOpp66pq5mloZ+loKC1p6Kpp7CjlKujjqSto52QmpqqtLSknaacqZKUl66goJ6mpJ2nnLWaoKqjtavCsKmrqaKNhI+coqGmo5aZmpyYm5ilpKaYqqasoaSbrKa9rJS9sK2fo7Czuqy0p5upsqWomHqokH18sHeKgaSliJxtsm+gh618oY+DqJaZgKyIhK6Fn5SooKKWhZ+AmZWAe5J9q4CdmpaKqnidn46Ik5KAea9do4F8pqdknYB8l3Rrrl2la3GFmV1gW4ygbZSQppmCk4uVinl5gpZ/amx+Yn10bn95X2ZlcW5nZ2hDWWBbPUpUMlQ4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVVFIRklKIygovJKahKnGw7bBtJ+braCuuKWkjpuko6Cvrqmfo56drZieuaCiq6CvqpqtoZCqqaSWiZqQrrGspp+om62YmI+toqGepaGapZytmJ+opraov6+lqaSfjICOm5ugpp6SlJmalJqapKOjmaeqq6KjnqmovqSXw6yqo6Krs7qsr6ehtLCpq5l2r36QipyFh3y6rYmYZLCMZZWtfaCPg6eWmoGsioSwhaWZpKGikISgW2xqgbNgf617e4KBsWxnbpmXi4ixW320W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqiaiZaPlJV5d42bfWNyfWGDeHN/fGBpZnBtZmVlT1VjXEFUXj1JKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGBiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjnK2mpbapoYuZoJ+ds7KonqKfnbSYoLOoqquesK2drJuUrqmijoibjq+tqKajqJmuk5qPqZqhnqWfmaOjpZmeoqmyqLuvpaienY98i5qWoaCakJGam5GZl6eeoJinrKakpKKkqbueoManpamiq7S2ra6noL2ura2WgamSo66Om4CGpJeYj4GAuMO6g46ck4Snl5yCrIqCr4imm5qlqpF+1b3CqmKjv718fqOCg9e6uLWFk5KCnr2+hGqjgW+rhG6cf3qysceDaquwva14d6K+u3SAlY2mm46Zj5WbeICPmXlifHpjjGd4gXtga2VramJQYltTaVxAVGFCTSk8OjQvHh8kHiUyIB0kKDA0OTY2Nzg7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbS0sb+5sr2zop2upqazpp6MmKW/qrewp6C/pqaxm56xnLmonq2upaeUlK+sl4yDmpGvpqOsoaWcqqCYi6OSpp6nnJqhqKKZnqCrram5rqikm5eTe4eZkaabk4+RmJiPmJOomZ+XqKifqaahoqq7nqnFo6Cvo6uztauwqqG8qLCwmnR1qqS3hWWJn29nrI+Kj21vd6SQmZ+Bda+ZlXCQjHGVp6ObmK6kcm1tbWWKd25tgplxgHlpcGlniZWVl3FoaYWGZ3CGZF6JY2pwWV1nfnemYGJxjpJvZmSAjZKOopeWl4+UnXuGjZN0ZYZ3aIxqeH54ZGxjZmxiS2RYSmtZOlBlRVEnSzkrIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJSts6m6ubKzqqmirp+ks6qYkr2xw8i9tamewKuso6Cmq5+6o6StrKyljZatqo+MhZWXrZ+lqqKfpKSgkYylk6eZqJmWo6qglpylpqevuausmpuTknuEl42ml42RkJiUjZeVp5Sel6eimq+mnaKsuZ+wwaiks6assbGrrqyouaSvuJaKoailtpyJlqGXhqmakJSdk6qzmZujrKGzl6KgnqCinKCkoZWrpoySk4yHkpyclJCZk5iQjpWFgKSal5WNi5OSio+GhH1ni4B0g3Z0h4xxp218lZGUk4GBj4+Pjp2ToJWWlZ+BhpOLcGeOdm+Kd3Z8eWlrZGRvY1VgWUBpWkdiYE5ZKkU9KyYiNzQwLh8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5VUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbiurqKwpK2gobaxkI6rxLvEureqoaWdm6adsKijtqedqbSmp5GXrKOLiImPnKeWrKShmqeen5OVo5epmqiZlKehpJCap5mhtbqoq5iakIx7gZSMoZSKlJGVkI+Tl6WPnpmonpu1o52mq7eorsKuo7emr6+wraqqtLqir72ZkqajprWikZ2mno2pn42Sn6Osr5qho7GpsJikoZykqp6dnZyXq5ySmaGbk5CWqpmNmJiWkJaekYignZSUhZKMkIyUi4B+ZoyHdYd2eYiDc5xqh5GUlJGKfYyWkpKYkqCRm5WfgoaXhXhxlHJ4iX9xe35pbmRfcGlgW19ZbWJQYGRQWjpHRkU9Mz09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlaSno7CzrK6jqaetoKi1qpGQnKOyuq6rq6GimXqdorCkpbGplpu4pqOUmamcjoaKiZuikK6epJaooKGSl5mcrouqlo+omaiMmKiPnrm2pKWYm42IeYGTjJuTipWRlJCNkZahjJ2dp52euKN/g6+1orCvdKS+o7KgeHqgq7O8lXaupJ+KgKp+ZFthdp+OpJ2Dl35uk7Oco6iuq6NlnqCTc3mZlnCAmKiXbH+ip4llnKWbkJeYlouRm5CFnZqQlIKSh46OkomFd2uPh3aHcXyGgYBhaYiLlZOLW3aVkWdoj41xeqOXlmR4mIaAdpdog4mCbnh+anBlX3Vva2toXGVjYmJvUls+TU5OUkc9QFRCOTEuHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTFRVVVlcX2hmZ1dRSjxERzw5VlJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqaWpraOnraWSlqq0rrGlmammq5Zzi5yvn6irp5OWuJ+gj5yjnZF+iIiano2rmqSVp6KejpeSnoV1rpCJppqokZejiJu6tKigmZiLiXV2k46Wk4qTkZCUjI+Sn42an6aYm7KWgIybtZ20jJKPvaehfqeieqOvuIGOjqefhIuFj7Cpr4yJlqKZeYGLrIacnaKoqqiIlYaYd6WbeoebgZemgoF7nLF6ioWfl5mUmJaBkJaWhJmaYnmHkISNj5KLg25xj4h6gXGAgYZ/hnSHhZaSeJZok3SgmnR8mYOem4WYfpGJgYKXaY2MhGt4enBwZ2R3bWlsaltkamllclteSFNMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaGZZUUg5REs8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZStxrywoZWlqLSdj4Ocq5unoqCNkL6emY2fmqCQfYWOmZeIq52jlqChko2TiYaAkaiOh6Kco5OXnoafubKnnZqTj4VwdZCKlZCKlI+Pm4uPkZ6Rlp+jlZ2siJ+0ibSarovKiKuuibeFjbCDsa+EqY2nmI2dfKiPcnt3m46mlmiVpHm0i5+ep6mSmcKBf6uImKFxnoCapH2XhZWxgaF8oJOfj5iXgI6Tm4mYkot8hZOGjZWTiYNtc5GFgHtyhoGFfYV0hYKXgY/FZoCph4+iap6Cn5iBmYCKi4OImG+NkoRnd3R7dmdodXBmZ2teYm5sZmxYZkZcUEwyRTQ2TWBjNiY0PERHRDo2MzY1ODs4Pj09PkJMP05JSktDUFpdXFdiXmpsXFFFPUtNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS4saqrppqUn6KkqqKVo6m2oq9/oKacpZ6diZS9mZONoJGdkHmDlpaRh6uZnJuaoYWPjHebnI+gkYiepJuVmZiGoritpZmbjY1/Ym2Qi5OQjY+MjJeLkJGejpOfoJihqH6hp4etnaCWro+fnZ2RhoGgjauvh6SNqpqMmn6idYCYk2uBq3RNq3iHjZ2Rm6mogqqrfYOhe3qnaZ5/kmtnl4aXtoiefW1gY1iDl3+Me2Rni3OZfXmWa118l25fU3GFXGBseYNgWWWCfYSBmHGnqmuDo25ypXCfg51nZJ9sWmyIemVZX4J+YVdQb3ZlbXRxampvXmpvbGtoV2hOXVdFOUE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9idmBNRDpNT01UYlxbZmZpaWJiZGFkZGJhYmBiZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKhtryrrqKZl5+hpaysn5yttKKnkaCfn6acmY6YtJmQi56MlYt1gZSRjYqmlpaYnp5/k4WGrKSHnJGKmKmYmZqSh6WwpqKVmYiJgGluiIeLjo6Ji42Si5CRoYyTnp+boqV/k4GPo6GUoHeclpCng6GngIaqroWleYt9hJp9onBykoeWe56MeW2Hm4yZkJupm4+HnXyConN2pmaefnekX5h6fJJzom6Yt7S6dJKHgYC2qGSBxrh7cJW2jHGAm6RjdKyrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN+o16dmbOWb3uXnrN0cluesoJpYm9zdXFob1lrbHJyZVxoXWJLRD1ENVFBWXEyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWlhgYHxkSUM4TFdVVmJhWmVma2tiYmVhZGNgYWJgY2NfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mayck6COpbi1rq2gmqKco6OkrJuasayrkpegmKCkmpqUnqubi4iSeIuFcICWjYqPoJCTlJ2XfZGJjqihh5iPipKjk5uajIuop6Sej5aHhH5re4Z+fY+Ng4uQkImPk5+ClpygnaCfi4l3nJiijKByoouIqYicp5GXqKx/rox9eqCZeaOTeIBzl4iMnH2Wn4abjZmbpoajZKF8iZaQm41snmiajW6amXp/iqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z1iYp/nmiadYeTkpiOf55umZBrpplcqH53u2p9qVqOhF2zZ1xtcXh3a2lbcGl4eGJeZVdiQVBETzdWQlJtNEpaWl9OWkRAMTUxOzs3SD86Q0hVP1hSWV0+RGJdVmBRYWR9aUVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCsnaabm6efna2anbCnq52Xopmhn5mWlqCjmYaJjWmIgHF7l4iLlpaEkpWYj3qKhJajnYmVj4aLnZGcm4mPqKKgmouRioCAaYGGeH+WjHuIjY6HjpWafpOhnqCik5hyaJ+KoI+McJKMgqmImZ+jqaGofbCtpKK4l3ajs6Kjf4iUeJ16q5p+oo6dm5eIl3KhfIWNr7V9a5qRoXh+mLSjo6uohJh7mnycmX5zqlpdb3uXi3ieYkx/e3uFY3qYQk2fWaJqcnyObYGJhJl1m3mHibGzf3+akqZ0f51tcXyUb5lyaaNdlXZIZWNgc3B8fW5lYGtodntiY2BRXlZcVFZAWUVRZ0RSV1tiWF9JRD1COEBCOklFOExFWEFWUVtWREZhXFpgS2BtfnJFQzxVXmJaZWpWZ2hsbmJmZl5hYVxdXmBoYl9lY3ZsXmVnZmxkZWxoaGtpk52Bsa6ZhFNeoae0urOzqZqii5upnJuokqGro6Cnjp6dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGTlohygImSoJxykZCBiJiUn5qEjqicmpWKi4p8hGyEhXGBoYx4hY2Ih5KYlHySo6Ceo4iuhn21hI+enXumlnqpgpadkIuhnn2naHdtfplzoHNxfJ2FmG+Tgq59o4OmnpqBo3BeqWd1o2NvpWGc0498epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKnvH93g21/v6aqtF6bb35xl2+Bc6JyXaNndKZhaKZtm9OYeoKbbnd5l2ubenaXcmyppWdfZHlwfoRrZ2ZjbXZ3Zl9hUltlUVFhSVdJVF9XU1tlaltlUUVDS0xKS0JKRDhQQFFOV1NYT1JRYGVlaVJkeHl3SUZFY11lWmhqU2loam9jamdgYl9cXV1faGJhaGV7ZF5kZ2RrZGpsZmhsaJibf7CsVFxLfqmvsrWws6OcmIWYpqCgoo2kqJ+XqImZl5iTmZOSoJeNiIV7cH2EaH2Pg5OagXiRjY6JcH+Gj5KSbJeTfImRkqOVg46qmpSSioWJeYR2h4BugZ+Gd4CShoiZoZZ5k6KjmqCJs6Gitot6rKekrqVwqYCakIWBnJJ9pICimYaYcZ6EoqyuiZeLgIykjZaDrqKUdrW2tcmhdJSKgJ9hnpepbXiWhp+adaGHd6B9kJaKgW9MZqKScJqIc6R7eXRhg4JsfqBscmRgnHJ/dJdpe2mztbTGpnOYfnudapuaq3SCmm1zd5dpmnl0mHFQRXyzXmp1aniHZmpnYnR0cG1VXVNZaFBSaElVTFhSVl1na25WZ1dNSkFKTUpISk5BUUpQZWNpbWV0cnN+eHtudYl7e1RRT2xeaFtraVJqaGlsZ2xmY2VfXFxcXmliZGhre19dZGdjamZubWVpbGWinImvp4VmP5Shs6uvr7WiopCAl6iioaOLpKadnKWBmpeWjZeQkJuSjYiDeWp5hmWDjH6WoHl1j4iMgWmEhZKDjIWdjXqMipWlkoKXqZeMkYuAiXqAfYt5cJChhnmAlIeJlp+Uf5Slp5yWloRnbnicbKJkfHGld5yYcGengZeMe6V6oJaDlnKfdoCJlJaPuW6QiqJifZmilYhucmmqa3WgbG6mYJtpi5BoloealXWigH2aX4uFjHVviGJooWWef2mbdXBkZoiCbnKiWl9bZKFuXomMb3t/c3JkpW54omRnp2iYcouYbqFvUoiPb6BeZKdUi11TmG1tcmpxgWxwaGt4c2tvUVdWVmZZU21JWE9cSFhpaHNqWWtWUVJFVlxMWFJhVWhqXnd1enxwfHxygnt/cnaNgIN2XlFzYWdicGdQamhoa2xuZ2RnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWYpnpldG2Lp66lqrCxpp+LgJaqnJ6kjKGhmqGhgJWYk42aj4uXkI2Ke4ZxgIhoi4t8l5pzdYl9kHtlg4eVioqVmYJ8iIaWppCBoquQhZCKgYp9gICOc2mPpYR9hZONiJifjYeSqqaeiaZ4lpx+pYmWjLKYnpCDr5efpXiWiHqpdKWPhJpupaKMkoSMg7xufKWvgoaFhpOWnKB9pnpxqJSglmeefm+rYpaKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm5tn56SlWF+q4uqdoB/jaefd599haSVnaBpmod1q2aerYy2c3e+jKSTWYOmjathdXFzb3t0cGJqfm5obFJVWlVgYV1rTV1SXUldbG12YFtxWVtgWmdzZW5vcmNxdGB3en55cnmDc4N+gXt7jIGCgHZieGRjbnNkUmxnaG9scmlmaWFfXlxhamJsbHpvXFxiaWJtaXdtZ2xuYpWmqpyBgJ6klqmqnqinrqOZiYKXqpmdo4mapZyonYSLmo+FnJGFko2LjXSFeoiDb42EfZaTdHWGcpGDbX+LkoeGk499e4GFl6WNf6WljYCNiYSUdYOHkm9siqiAgouUjomcnomMk6qjoJCAdZWXiH6BeZSuo3+Bm3GPhniQjIWAe3KnjHF9fXqXlpuEjnh7fn2IlJWTinaQmZ+hhHt9iWuMhVt5eXJ5cGhufZGJcX90gY+Uk3GFg4FljX9fgYCMd3VzlHVvem9uh22Ehl93aHiOZoGCho6qnH50fZdqiYhvf3V8hHVtbGaMc3h7l3eEW2pYeI9obXdxcG93d29dbIZtaWdWWV9XXGRrZFVhVV5RX3B3eWtqd2Vqamp1fHFxdHNhb3Vic3uBeHV5gnV/gH+AeIuFgn17bn9sZHluXlduZ2h1a3hqaWlkXGBaY2llbHB1blpbYmtka2t5bWhsb2GOlbqpp4uhopqmpJmknauioIODl6uRnaCJmqaaqJiCgZuLfpaUh46JiI1ygnyPfX6PhHqXjnRzhHCVhXt9kouGhpCFeH6AhpmjjHunoYuFj4+ElYKGjpd3coSphY2SnJCInp6Hi5qnoKCrg4mOlZp+fomWraiPkqeQeHCekYN7k29+qYVwfZVxam98gZ+Lf5KOjGhtXYOLjJybn45zlYuIcXRrgnZzf1hyboaPgX1+i2ldaWN6hYOIgF9peHubfIOMg3aBhoNpeYuHa2Fxc4N3YHOMgomQp5WGZo2Pg252i4NvhIx4bmRmY3mCepVaXGlmbnZbenl3dG1zcoJmXG2Ka2tiWVldWlhrcVteYFleXWZzfXtzb3Rjamppe3xxend0ZG10aGx8fnV5fHt6eX+Af2+GioR7fXR+eXJ/aFRccWlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VubGdzeW5oam1gjIyrsaKQo6Gan56Ynpmpo6F9g5erjJ+Uh5uikKSUf3uXhHySmYiJhoaKcn2Ai3aFi4GElopyb4BymIaEfpKDhIaKgXqAg4qbn4+CpqCHeI2XiJWLi5yXhYN6rIGQl5mUip6dh4ihqp+ioqOMiJObnKOZlqqhp6agkpuIl498eI+OhKh+f5KRkpOcsKWalJ2QjrKTmISmjIyVm6CJkJuCiJGKa3yOdndlgoaQinyJnYSHi4+HiICEg5B3fHp1mqKJh4ufi4aVf36MgYB2cXSGhYB4iIeKkaaRhIaOiIONkIx8hoqHjoB1a4GDe3mZaXJoYHOKcH16dnVvd3SBXF5vh2huX15aW1xTZ3FVY1tbYWxodHt8cm5wY2ppaH97bXh+cWhvcGxmgHtygYB3gH1/hHttgoyFfHp4fH16g3hOZHZqc25we2VrZWJiYFtzZnBmcnFsVV1sdG1peXpwZ2lrZY2InbqflqKhmJWZmJSYpKCde3+Zqo2djYWfnIqdlnx4lIJ7jpmJhoOEhm14gYBygId9iJOEbWt+epeGhIOQfoCGhIZ9h4ONm52Sh6qegnGKj4WSkYuckX2NeqmDjZKXlY6bloaGm6agopqdhoOSmZmYkJqmn6adnZCXgZKLd32IjoWle3yOkJGGmKmhnJOcj42qjpKAno2Ik5qfg4+XfoaOgm94hXF0YH6Dj4V0i5eAg46ChoR+hYSUbnl1dZOii42Gm4WFjnSAin19cnN7iYR7eYyOhJOnj4aEj4KDiomJdYSHiIp7bmp9f3ttaGtsZ155fmd8e3ZzdXV6dlxgcH1tdGBiWlxeUWZtU2VaXWFraXV5fnBrbGNrameAf2tygGxrdG54boR5boaAdoKAfYV2cYKNh317enx/e4KLYGl7a3VoaYNlamNgaVtjdWhvYnVtbFRicXlkcHp6cmVqbW2Lip+4mqGkn5OSlpeLmp+enXp3naWQm4mGpJSKmJl4eo2FfImRg4yCgYJtfH94coCFfYqQfWtofYGXiIGIjnx+hoSHfI+Aj5ubkYinnH9wi4qLkoagoYqFjHynkYePkpeTlpJ3jaOgoZ2Wmn+BkJmYk4yaoqGjmpeRm3+OhXmAhI+HoYB+jIyPfJekoKCSmZCPpo2QgZuRiZOYm36Skn6HjoF1dIJwdmB9gI2FcYqVfIeLcYx+goWFjmh4cnmMmZKQgJh+iItygod8fXF6fIyFenuSjYOWpZOLhpF8hYaHhHWBgoaHeWRxen54eXBsamZefXJoe3V1c3xzf2peYHN2cHdkY1leXlJqaFRkWF5hZ2p2eIFxZmtjbGhlf4BqbX1nbnBqfXeFemuLgXKBgX2BdHaCjYZ+fHp/gX1/j2pyg25zaWGIaWxiX3FVdG9tbmB4aG1XanR2YnV6e3Fia296iY2fs5KlpZ2OkJiPhp2gmpx8daOgjZZ/jKKKiJqWeHuGh36DiX6IgoB/cH97dHWChX6JkHhnY32Gl4qCio14fYCMg3mWgJWXlY2Wn5p9b4uBkJOGpZuHjImDpZWEkoqVl5KRdpGdoaGYlJh6f46Ylo6WmpyknpmTlJt6kIaDeIWXjZ5+gYqNjHOXop2gkpiOj6KMjIOXmIOTlpp/mI18iI2BdnF9bXpkgHyKhXCGkn+QgmuHgoF/iYRldW98h5OYjX2UeIyJfICHfXxygHiKh3mFkYqLmKKWgoSMd4iEgoF2eoCIhHRfd3d8c313ZmtkYH5panZyc3R9cHtjY2BzbXVybWFZYF5bbGRSYldfYGhrdXmGcGNqY2xmaHyDa2h0aGxvaH98gXhtj4ZxgIKCf3R8g4yBf356goN+fJBtdYl0dG1limxqYWN1VoNpcW5geGZsYmp2cGZ5e3lxYHJshoWQna6Ypqiejo2Xh4afk5eYfHepnIqYeZeci4uYj3h7gIt9fIN7gIKAeHN4enN9gIR/iIqAZF59i5WHfoSHdH1+in99mISWlJaMoqCXfnKHe5ORiqaPjI6KkqCRg5GPlJeRioGPmKCakpCSdICNkZOJnJ2eppiYjZWXdI6PimyGmJCZeoeIkIlvl52ZopOUioyfjIaCkpx/k5KVh5mIe4mJgXpxeWp1bHt9i31thZGCk3dvgYN9fouAZHJqfIGXmIV/jnSRiYN5h352eIF+h4F9hI6FjZSkkHmFg3SJh31/cnR/hoJsYHp0eXB7b2FuYmR7YW5udXJ3d3NzYXZfbmt1bm9dW15dXmpdT11XYmFobXN6iWtfamVqY2h3h21lbGhpbGeAfHp3b4+Hc4CDhH10gYaJeoJ9eoGEfX2OcnmLeXhubIdraF9pcWOHaHFvZXZnbWxhemhqfHp4cGF3bYuBmZqqoKSpnYqKkYaKnoqVl312rZiMln2ek5GWlIh2fXuKfHuAdnd/gHB0c3pvhX2BgIl+fGFcfo+Rhn+DhHN6gIZ6j5GHkZGbkqSblIF9gHyNipKkiI2KjZeajYWRmJOVjomJjJOdk5CMjW6EkI6RiJ6ZoaCXlomWkm+KmoVnhpqPlHqJhZCKcJaak6GSkoiLmYyCgJGefZKPk4yZjnuJhId0c3VrcW51e4p0boaQjZFxdIB7gYKIfGVxbXl+mpR9hYl0kYuBdIl5b4F/gYd9hY2KhY2WqI17iH1+i4V3fXBuf4SCYmd3c3RuemJeb2BqdF5waXp4eGxycGV4XW1sc21zWFpeX2FqWk9XWGRjZ3Fxf4dlXWloZmJncY1uZGlnZGlogHp3dW+OhHOAgYJ7dYKIhXiEfHeDhXqAiXd/i3x7cnmDamtfcGh0f2txbm1xZ29sZXtibX95dnFsd3eKf6KYoqihp5uHjIqBj5yGk5x0gKqUkYyGoIyVk5B/c3t2hHd4f3Jze4Vrcm95bYl2gICGbnBbWX6RjYiAgIB2dYB/f6CGj4qRnJegk5Z3iX6AjIicnYmPhpKXloSIlJmPlouLjY6NnYqOkIRuiYuPkYqclqCbmJWFmIhrhqSDZ4adipF/i4SLgXeTmJGdkZCIiZWOf36PmHyRjY+NmpJ9in+Cb3Zva21vcHqFaXODjpeJcHeAdIKIgnlmdG92gpqPfImFepWSeneJdHCKfIeNe4uHhImPnKOIfIR3gouAeHhuaX+Bf1xxcnFvb3daXnBgb2peb2l8eXBtbWptdmBwb2pxbVlYYWFibVdRU1llZmN1cISCYl1rbWRiZmuSbWBmZl9na4F1cXJwi4B0f4KAeHaAi4B5hX93h4Z2g4V8h4yAe3aKf2pxY3xihnxvcGx0amhvbHZ3X3F+eXt0dXR/gn6llZqtn6eWhY2Df5eVg4+edIqfk5KFipqMlY6LenJ3dIJwcoVzcXWIbG9tdW2Id4N9f21uVVGBq5SHgniAdnKCeYKggZGBk5KYm5GZeJF6goySpJqTjoiVmJKDhpaZjJOLiY+PiJ6FkIp9c4uFiI+InJmem5aUgJR/aYadiGiHoYiShJGDiXGDkZeOmo6PjIuPjXd7kpB6jouNkZaNfIh8gGt2am1ra2x6fmF5fY6VgXZ6gXeDjHx5Z3VsdYeWjH+IhnuUkXF6hXB4jXuLjXuJfoONkZ6ehXx9eIKLfXZwaGuAgXdedm9ta3ByVV1uYnFgX21teXBncGZnc3VocGthd2VdVmVgYHJTUE5bZmRdeHCIfF5caHJiYmVmkWlfZ2RaaHB+b2txc4p9dn2FgHR1f4x5e4aAeIiDc4aFfoyMg3t5lXhmcmqDYId+b29remBpbXR/dF90fHiGeHNyhXx5oZCasZymjoOKf4OaiICLnX6KmZKOhIiXjY6OhHZzdnOAcG+Fc3Bxg29qaXZtgm59fG10c1JOgt/JktaTfHB0g3WDoIKSd5SQmJuPmHuTcoWQn6GTk5CKkpuThX6WlYiNjYiRjYicgI6BeHqMfoiMiZubnJqVk3mNd2iKkohsiaSFkoiXg4ZjjJGYjpSJlouNiotxe5SJe42IipORiXqFe35se2Vyb2preXlbgHmPjYB6fX5/ho56emh0a3SLkIqChoV9loxsfn9vgY1/jYh+hHqDkJaam4t8d3iDj3hybGVwf4JraHRvZ2hzbFNebmRwWV9rcHhma2piZnhzb3BjX3dgYFZrX112T01LYGZjXXlxinRcW2V1YGFlZY5jYWZhWGlzc25rcXaLfHR5hoF1dn6Lc3+Gf3uJf3KJh4GRioh8fph2ZXNufGWIf29wa4BZa255eXNgdnp7jXZyd4p3eZ+Mm6+boJCChXeIlX58iZyHhJ+QjoWMl4STjoeBdXdweXFuhG9tbn5yZGR4cHxtenxqaGxjpJrB3K7voXNrdYN1hKGFkW6Vj5SflJuBkXCFi6OXiY6VipCdlYKAlZCFiY+AkoqKl3+He3V/iXiGhI2bmpeZjpB2i3dviIqMfYukhZKJnYWGXouUl4qOiI6LioSJbHuXgn2IhYmRj4Z2hX19a31jeHVpbXhzV4h6kYaEeX5/gIWMfnlmdGqAio+Kg4OAjJeGa4F2bomSg5GFf4J6gJGWlJmQdHR4h411c3BmdHmBYXNsb2FodWZSYHBna1VebXN5YHJjX2h9cXJtWmJyYWJXblpcd01NTGNmYV52c4ptW1xkeF5gZGaEX2NjXlhqcmtua3J3i31zd4SBeHd8iHGDhH1+iHt0i4iIlYaMfn6Xc2h1cXlsjHtudHCBWHB6dnlxZHd5hoxpdoCJcoCdiJmonKOShH1wjJR4eYqdg4SgjY58lYx/mYeEe3N3cHNqb4FraWx8dF5geHZ7cHR6Z2BlfOvatcnD3IhzbHOAdoqaiI1pl4+OnJSSgYhwhYigjoSLlYqMmJN8jZKIg4mPe5GLhpCCf3Z4g4Ryh4KSm5aTmIaMdod/cIaDioeaooOUjJ6DiWGDlY6GiYWJjIeAh2l9lH99g4SJjo2CcYZ+f3F3Z3ZyaXN3a1qMfZKBhHx/g4CEioJ2YnRsiYKQi4J/f5ORfW6CbHmHkIeThX2BfoGSlJGXiW5yeoyGdWxwanF3f15zaG5canVgUmRxaGZTX292dF9vYF1ognFyaVdnaGNpWG1XW3VMSktlZl5icnOFaFtcZXleXmRnemFkX1xZa25lbmp0d4p+c3OBfnp2eodzhYJ8f4d3doqFj5iBjYJ7k3Zsd3V5eZN1bnh6fVh5hnGAb2d4d5KCZHaGhXGKloWZoZuiioZzb5KLcnaOm32JmYiJe59/g5l/gXlyc25vZHJ+aWZsd3dbX3h6enFxf2lhZ2F/1baOkKZ4bnF3e3GSkIyHapiNiJuRi4Z7aIeLmYaBkpGGh5eNfI2MgICJjXyQjH6KhXp1e4J6cYWAlJiOkpOBiXWEh3eEgIuUnZ+Glo+ff4hhf5OHhIeDiY1/f4JmfZF/fn+CjI+Qfm2CfIJ0a212dHN2dWtjjYGOf4R+fIR/hIh/cGBzcYZ8j42CfH+SiXpxg2Z7hIuHjYR8hX6BlY+Rk4RucHmMfnVtbmlqeXxhZ2lpWGt1WlJpcmliUGJyeGxhZV1aaoNtc2JbZ19kbF9uVFpvTkhOZmRcZ25xgGtaW2NyX1xjbHdkZV1cWmxrYm1qc3aGf3Fvf3x8dHiFeIWCfICIdXmJgZKVfIiGdoiBcHh5e4STb217gXdeg390gW1penOUc2dyiH1ykpGEmp+boIaHdnaUf212k5d9h5CDio2ZfIuadn53cW9samF0fGdiaXV6Wl94fHltcX5lY2hoV52PXnFylrzEhHVxlIiQfnKWi4abkoyHcmqIj5aAe5SMgYSbjHyKhnx7iYx/lIh1ioZ2dn2BcXWFgZ2ThZSPg4NxgIh1hXyKmZ2Yh5SOnYCIZn2Tgn+Fg4mJcYF9Zn6Le3l+f4eLj31pgHyDdmZveHhzdnNsao2FioGJf3iBgIWDf2tfcnl7fo2KhnyCj4F+coFpeYSIjIaFeYR9gZiNkIx9bm17iX13dG5nZnt1YltwYlduclNTbnNoYU1mdHhlYF1cWG6Ab3NZZWFeam1gcE9Za1FEU2dgWmtubXxuWVtebGNaYm93ZGZbXWBsaWNsaXN2gYNxbn58f3R1g3qDgnyBhXZ+iIGWkHiDinSBiHJ5eH6NkG9ve4FxaYF4en5tbHt1lWtqd4R0bJSOhp6YoJmFiG59jHZpeJiOfoCKgpWXiXmOlm96c3BsamRgc3poX2Vxelpgcn15Z3F6YWVlj7Gyd0piWqTZ0JZye5CKkHd9lIqEmZGMhW5rhZKRenmShoCEmIp8h394eImKhJaAcIyIcXR9eml5hYOkkISTjIN+b3+Dd4R5hpyZlYuTkJSFiHB7koJ9goOIg26Bd2iAhXhyf3+Diod8ZX1+hHVjcHJ/aHhwb3WYjIWCinx2eICEeYFrXHF/c4GIhYl+hol7iXKBbnGFh4+FhXOEeoKZjY2EeG5vfoR/dnpkZ2l7b15YdlpYcGxOV3FzZ2BKbHZ0YF1bW1l0fXJvV2ddZmpwYG9OV2hRP1lmXlpvamd6cVpaWWtlWWNxeV9oXF5lbWhla2lxd3+Hb2x/foB1b4J7gIF+gn92gYWIl4pxgo1xe4Z8eXmEk4x1anp/bG9+dH99b3J7e5RvboF/eGaTi4OhmZySgoVnh4NwZ3qWiH1+hIGYiYF8jYxpeHJrbGZfYW54bV9ib3hcZGyDemFxdl9lZdTqvooyOj6LjoBxeIWIjo12g5aMfpKNjH9tbIWNjHZ9j3+FgZWIfIJ4bnaHhIOXd26IhWx1e3RmeYKDpouCj4uDfW6AdXeEeoedkYyRkpOMi4Z/e5KGd3+EjYNrf3JogH54bXx7gYqDd2J5hIFxZHFofm10cXSBm4uAfoV+c3V9gHOBb1ttf3V4i4OLe4eAfIh4enFsiYSQhItygnqAl4uLf3Rta3eAgHV1XGhndm9YVntSWW9kTFpycmVbSXB4b1xaWllddX50aFliW2dlbmNpTVdmUT1eZVxddWVgdXBaWVRvZFlkcXlaaF5gZ21namtpcHd9jmxpgoR+eW6AfHyBf4J6dYKBjZOFcICLbnd+gHt7iJKJf2h7fWp0e3KGe3N3fX+MeXiEfXxrjI2Em52WjICAbI1+a2h+jYx6fn+DlIF+fYqIa3VxZ2hiW2Jncm5gYWtzYWhwiXpic3ReY2SboI9uXDVZr7V0aYCIfJKGdYWWhXOPiol2cGyFg4d1eYl4iXyTh3p+c2d2iX5+mG9xhn5odnltZXmIhKSGgIeNiX5ufnaAgX2MmoiClJGYiYuEiXyPiHB7fYR7aH5saoB7eml6doGHgHJgd4F+cWRyZnWCbXV7hJSRgXyBf253eXx0fmxYcIB3dYyChniIdoKJenhzboqBkIGGc399f5OJiHpubWpugoJ1blxnZHJwUVp6TVpvXE5bcnBkVUtzeGlXWVlaYXGAdGBdXWBmZGhpZU5aaE5AYWRbYHVhXXVtWFdTdGFaZG9yV2pdYWhrZ21saXB3fJJsaYSJfHxwfn57gX+CeneAf4mLg3F7h29xd4R/e4mNj4Nqfnttd3h2ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshIiQeH17gZF/f36Kg3BycWNmXllmX29wYGBncGZqb4l0YXRvW2FkanZ7f76cpqPIuHGFg3KSfHiGk4JzkYyHcnJvg3uDdHWHdIh3k4h5eXFjd4d6gJNpcoR2Z3d1Y2p8goedgX9/jo99cn90hXqAkpGDeZaOlY+Igoh7iIhreHl+dWd6aGx/eXNpenaAg31oYHeHfWpqc2d7gGl2gIuQlH56fX5we3Z7dH5iVnd9cnOKhIJ9g3GHind4cXCEgo1/fnl+fXaOhoN2aXFpbYiCcm9dZ2FxbUpldUtdblVTWXNuYlFPc3hgUlhYXGFvgnNbYVxoZWVja2NQW3BJRGNhWmNwXl13aFVWVXdeW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHh9cnt+eYKBgXx2fYOIhYNwd4NybneDgn2Ji5N/cIB7eHl6gYx0g3h/gYGChHqAdW9+ioubnoh9hXp3hntndIWLkHp+f3uIhYN2j4Bnb25fZFxYZVltcmBgYHBsa2iJbmBzaVleZG2Ad6naqceGh7JxiXdvjHV7ho6AepOJf3V0dX53gHBxf22EdJSGeHVrYHqCeYiPZnKEcGd2blttfICQk3+AeZGSfXl7bYh3gZKMhHSWipGOh4WFe3+EbHV2f21ndmVte3Vtand2f398YGJ4hXlodHVifXtndIaOjJV7dIB1cX96fG1/WVZ0f3B1hYd/gXlsiYZ0eWx1gISEfnt9eXtzi4F8c2d0ZW6LhG1zWmledGRHbW1MWmFXVlV4bWJQUnR2V1BVWF5hcYRvXGBjbWRkXm9iVF1yR0JmX11maF1be2JRVVx1W1pna2FWal9gbmVma3FocHV4jnRrjo11fnZ4fXeBg4F7c32DiIeDb3F/dHF1f4WBiY2Ke3d/eIN7fIWHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN5Xn2FmIx5hoN0hYaEd4l7Ym5tXGJbW2FWaXNjYFtnbm9mh3FhcWZXXGNrf3zKzoe5oWptbYpscYRxfISJfnuRhXl5c3l1dXxqbHVjhHWSgndvZl59gnqLiWZygmtqcWNYbXqFm4iBgXOXlHd/fG6JcoKLjIhymI6RiYWLg3t4fXFxcH1maHFibXhxamtxeH18elxkeYB3aXV4ZYJ2Z3SHi42UfHGHam59gXlufF1Ycn9udIGLfIJvb4p/cXZod3+BgIF3fXF7dYd8enJmc2FujIJrcldqXXZbSG1qTVVUXlRVe2thT1R1clBRVFZeYnSFaVxga2pmY1luYVhicEdBaFxgZl5dVntdT1VkcFpbamhdV2hgX3JlamdyZ3Byd4Z4bpWKdH96d354g4d/dXJ/hoWNgnBwe3h3dXqGhYaMhXp8f3SLfn2GhISHf35+fYd/fHh2eXiRk6B/jHyLbXWAeWODhpaFc5GKb4WFgXqDdGNuallfW11dVGdzZWBZZHFyZoFzYmtlV1tgaX94vq57oLdtYnOGaHN7cXmChXt9jH93eHJ2b3t2ZWpuYId1joFzamJef3h5i4RncX5oamtaVm93iaOBhH9xmZNxgHl1g26Bg5KIc5WIjYiEiYV9eHRybmh5YGptYG12amdqa3l3enZaZ318eGVyfW2EdGV1hYyFlX9vi2ZqeoN1bXViXHB9bHV9jHyBZnWHfW5xaHV/eH5/c31se3uBenhxZmxibol+bG1WaV92VUppak9RTmhNWXxoYk5VdWpMUFRVXmZ1g2ZdYHBoZ2FXaV1ba2hKRGpaYWRXWVV5WU5WbWpZXWxlXFllY150ZWxkcWdyb3WBeHCZhXZ/fnd/fIWHfXVzgoiAlYJuc3l7enNzhYaIiIN4gX11j358hIqOhIKEe36Lg3t3fHd3mp2XeoqChml2fXxsg4SSf3KPgnCFgn6Bf29mbGdXXVtcW1RkcGRfV2JydWl1cGVlYldcXGh/cG9ygHOJZGR4fmlzdXNygoR4gIR5d3R1bWt6cWJna2eGdI2DbmZdX31we4l+aW14ZmlkVVdyb42mfIN7dpaQdHxzfXtufHyRhneZfIiGg4aDfXRwcmxndFxsaF5sdGRnZml6b3tyWWeAdnRncIB3gXVid4WKfJSAbotqbXqBcWZzZWFuemdzeIp8fmJ2g3Zqa3F1e3F6eXR9Zn5/f3l3bmRmYm6FfG1qVWlhb1JKaGpPS05wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWVgVmNXYnBdTEtrWGNhVVRVc1ZMWHVkWl9rYVxaY2VfdmZtYnBpc25yf3V0moF3f4B3f3+GhHp8dYKEfpeFbnJ0fHp0cYSFj4GAeYt1dJB/fIGVjoCFhH1+jIZ7foB2e6OlinmIhoRrdXx6dYOBi3lvhXN5hH2Bg3VuamhlVl1bWlpTYm5kW1hhc3tpaG1pYGJXX1tqgGlrb4Bna2BoeXhqc3N0boSBen99dXVuemhqeWpfZW5ogXaQhWdlWGJ3aX6He29pcGdmXVVYb2eOqHeBenyQjnl1cH9wc3Z6j4B4lXWGg4CFiHZqcnZnaG5bbGRdbXNfZ2FqeGh7bVttgnJzam+Afnl3YXeEhHePhHKIcW95f3FjcGhccHhkcXSIfHlic4BwZ2p5dHJseHd2eGSDe394dnBkY2NufH1ra1VoYWVTSmtnT0dRa0VgeGdhTVNxXEpNVFlla3d6ZV9tcWlkXVZgVm5uV0tTaFdlXlhNVWtUSlx5X1tfa11dW2NlYHloa2Fvb3Vub3h1eph9d4CBeoCAh4V6eHmDfoGThHF0dH95dnSEiJB9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSsn396iIiDa3KBeXWAf4F0boZufH9ziYBqb21kZFhfWllaVWJqZ1taXnWCaV5tbFxhVlxcbIFlcXR9aWlca3Z1Z3R3cmyFe319eXVybHloaXhmXWVyaHp3k4FjY1RlcGeChXd3ZmhqYFdWWWdjj6dufneAi456cHF9aHpveo18d49yhH1/f4ZuZHVzZGhoXGtiXW9vW2dfbXVkemhddIBvcWtxe311dWF0hYp6h4eAf3dydX91YXBtWnJ0YnFyhXx0ZXKAbGFse29qaXt5dnJmhXZ7enVxZGFlbXN+aWxUaF5cVEtyYlBGVmFHYnZnYUtUb1dKTFdYZ2t2emRlbnFmY1pXXVl2ZVVKXGNXZ1hZSFdlUEhieFpdX2xbXlxhY15/aWpfbnR4bm9udoOXeXKBgHx/iIuFfnV1hXiHjH1zdXWCeXp6gouOfX6EiWlzloF6ip19foV6gXp/fIaIc3GProx7e4ePfWVxh3lzfHt1cm6GbHt+bI96YnBvYmVdZVZZWVZjZmtgXVxzhWhYcG5aXldaXGx7YnB3dm1iWmxzc2d0dXBshHl+gHl3bm50ZWl0ZVtndGZ2dpJ6X11SZWZrg4J0fWJjaVxUWF1iY4+laHh0goWQeG1vemh4bnyFe3WJc4B4fHh/aGV2bWBmYF5qX11za1llXW9vYnplXHd7a25ub3d4c3RkcoOSfoeCiHp2b3J9c2J3ZFtvcGJxcYF8c2dygGRebnZpZGd5e3Vub4J1dH1zcWJfZm5vfWRpU2dYWFRNd19RSllYSGJ1ZGFJVG1TSkxaVmlscntibGxzY2FZWVthdltTTGNdWGlTV0dZYE5HaXVYXmFtW1tfYmJdhWhnYW54eWxvanaBkHhtgn6AgZKHg4F2dIl0jIZzcXd1gnd8fX6Mj4B+k35wd5WDfJmSeYCAeHl+f3SIg3NwmaJ7en+JlHhkdYh4c3d1a3Nufmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYllU3JuW1pYWGBsdmNpdWppXlltc3Fsc3NzaYV8fn98dm5ubGRpcWNba3JkdHaOc1tXU2VhcoB/coJdYmNdU1pgW2ORnmVycYWEkXRsa3ptb3B7fHxxgXd/c3p6emRldWhdYlpgZ1tedmhXYl1waGF3YFt7dmlpcm53c3J0aHCBlIKGfoR2cmpwfW1md1dca25icXOBenNmb35bYHBxYV9qcX5sbHV+c3F4a3BhXGVsbHphZ1NmVFdRT3VbUU9YUUhjdGJgRlVqUElQWlVqa2t8ZW1ucWFbWlhZbHBXU09mV1doU1RGWlxOSHJ0WF9jbWNYYGBiXYtqY2RteXhrb2l1eYZ7a4N9f4SZfIKEeXyHbY+GcW93en10goJ8io6Cgpd0d4KThYGfiXWAgIFzf4Jxh4J1b6KXdHuGi4Z7ZXeKbm56bmZ3cHprc3ZyjGtedG5hZ2VrUl1bVWdhbGxaXHCMZE9vbl1WWFVnanRnYnRlZV1ZbnRtcHV1eGqGfH98iHaPc2Rka25hXG5tY3N4h2taVFZjZHh9fXGFXGNfY1RaYFljlZVjbnCDhYpzamh7b2Zzd3N8bHp0dW96fnVeZnJjW15WYWRZYXRlVV9gbWRhcV1dfm9oaXNxc3B0dWpthJKBiHuFcXJmbn1wcm9TW2ZrZnF0gHZzY2x2VWJya1peb2Z9Zm13fXNzc2ptYFpkamp3XmZUZFRVUFRtV1FWU09HZHNfYUVYaU5IV1RWbWhkfGlrd2tiV1xVW3RkU1JXaFFZZVRTSFpaUE14dlpfZWxpWWJgXl6ObmFmbHl1bm9odnZ/f2yDf32Gl3t/h4GJfmuTiHJndIB7dYCCfIiOf4uTcnyKkYWHn4Z7f4aMc4GGc32Ddm6ljHOBjYt2d216jGBke3BmeXJ4bG1xdoJnZHtsY2ZnaFNfXlVnX2xvW15ujWhOaW1gVFZTb2dzbGZ4ZGRcWHB0bHF6eHJsiHt/dpx6eWthZWxtXmBvamVxeX5nWlZYYGx4fHtwg19iXmdXWF9XZJuIYmtxgYd9d2treG1cd3Fse2p2c25ve4ByWGpuX1ldVWJjWGRxYlNeYWhiYmxaYH1rZmtzdW5td3ZraIWLfoh6iG1xZXB9bXJtY1lhaWlvdIF0c15pbFNlcWRVYm5iemNxd3t2a3Btal9YYWdodFxlVWFVUk5YZVJPXE9PSGRwXWNGWWlNSV9LWG1kX3hobn1kYFReVF11XFRTYGZOXWFUU0pcWVBZdXVdX2VtaFhjYVtejXBjZ2p3cXNuZ3Z0eoNygYJ5h41+fImHjnlukIp0bHOCdH9/h4SGkYSVj3l+jI+HkZuEgHyMhHKAgXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2Ojo6Njo6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjI2MjI2Mjo6Ojo6Ojo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCTqWvra2trrFhQERERERDWGhnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTNBqba0tLS0uFkwNTU1NTRNYV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmIiIiIiIeOkJCQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaPkJCQkJCRiYWGhoaGhYeJiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkZKRiYeOipCSk5CKkY+MjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyLi4yMjIyOjo6Ojo6OjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoeKiIiNiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCPhoqFho+JjI+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+Jh4eIjIiOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aIh4aMiI+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY6Mi42Mjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Pjo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2hoZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUVAPjo7Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs9OTc5Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3F0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5ODk5OTg4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Oz09P0A+PE1MOTw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NEREE+PT5AQT8+am9CPT9DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZEQDw8PUBEREVteUk2Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUBBWEA+W3h8e3l5Uzc6ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNBP0Z4WGOEhISDgntfOz49Pz49PkNEPzs8PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDREE/SnR4gIGCgXuDgWg/QUBDQEA/QEA+PTw9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQUBMc3yAe4KDfoWFWT5DQ0VAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk5LSklHR0hLTUpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRUpwfX99g4WGhodoQUVFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpITXJ/g4SEgoWHiIpVQUFVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExMZ4CEhoOAhIiJjHBObYSHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpTgIWGgoCChIaHg4CGhYSEhYaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSl2FhYSAgoWAgoKDhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT48PD1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJYIaEgX6AgoSDgoKDhIaJiouMi4qJiouMiVQ7ODY1Njc2NjY0NTc3MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JehICAgIKDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo6Ojw4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09RV2tycnR0dXd5e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PGqGgYKDhISEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo6Ozg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDk7PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5FeoSBgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUBCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPz9BPT48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQ1CBg4OEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZFRkZEQEI+PEA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGVoOCg4WFhoaGiImJiIeGhoaHiYqKi4yNjIyLioqIV0dMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AQEE/QkJHR0pZhIKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA5ODw7PD06P0A+QEBDRklJUGCCg4WEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEdFSklESkhHTEpISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURHSkxWcoOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4teUVFQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVVJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0ZWTkZNT1BUWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOzpRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hJSEVGSUhJSElqcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUFFQkNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A+QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFlnUlVWWFRUVlNPT01KTEpJSUxNS09NU29zdnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTV1paXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRXWFhaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWFNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUVVTVVRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUk1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSU1RaXG1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/gH9/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lVUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlQSEZPRkRFRkhHSEJDSEdISkdDQkFEQE9QTVNkc3V2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXVybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojs+QD8/Pz5rUUthRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNCPz48PUI+Sk1GVW51dXVzdHZ4e3x6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1dnV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZETVJQYVdSWFFQU1NSVVtPT1FWUE1JQ0Y+Ojo2NDg2OTc5OjM2Njc5NjxCPWZ0dXZ3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMWFlaVlhYVlhZXVdXWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNRUFNaV1RUTVFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1ODhHbnJ1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KTk9UU1RcVlJVU1JOTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9KR1BQT09NUkpPUFBQTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTElMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFQUVBRTlFPUE9MSkxMT1BOTlBRUU5RT0pMTU1LR0VFREI7PTw8OT1HNjY3NkRucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11mUlFTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSU1MSUxLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXh7ent8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0A/PD1BQEI9PkVIR0RGRklHS0pARkFBQEZIRUpPSFBRYVxRUFJOU09PUExMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZEP0JDPjxCRz9CP0FkcXR3enp7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVBMTk5XS0xOS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTktHSUZCQUJAP0VGRUhES29wd3p5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkJBRERHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUS0pITVRGSUlKTEpLTElJTE1PUFJQS0dDTEdDQ0pKTE1PTklKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0NGSEhHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNT0dIS0dIS0RISUtNSEpMSEhKTEtNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLQ0ZFR0RFRUZFR0NDQD48PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGREI7QkNDPkBDQ0NFRktNSEtOSERIRUlMTk1HSUxHRUZJSUxOS0pIRU9JQ0dNTU5NUE5PT01MSUhJT1JRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUZFQkNCRUBEQj4/Pjo7Oz07PT9DQT9BQ0ZHSkdJSUxIR0dHRkVDQD1ERUI+QURDQ0VHSElHTVBJRkZHS05PS0ZISkZFRERJSUhLSUZIUEtESk1MUE5PTk9QTkpKSE1SVVRST1dkYWFtZ3Byb3N5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPUJBPkE9Ojo9Pzs+PkBCP0BCRUdKRkpHSUdGRkZFREJBQUZGQ0JCQkRFREdHSEZMUExJT0pKTEtJR0hFRkVEQ0lISEtKR0tSTUNPT05RUE9PTk9PS0tLUFVXVlVUWGBeXWlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmtrc01GRkVIQkJBREQ8QUFAQzw4OT0+Oj89P0I/QEBERkhFSEZGR0ZGRUNDRUJESUZDRkVCRUdFRUZHRUlNS0hRTUpLSEhJRUZJSEVDSUlKS01LUFNORFFTUVFSTk9NTlBNTE5TV1ZXWFZYXltdZGBoYmppZ2tfZGVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJGRTxAQ0JEPDc6PT47PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0NHSEZIRkVDRkpKR01KTEtJSkxGSUhLSEVLS0xNTk9SVE9JU1VUUVRQUU1OUU5NUVdaVlpZVlpeWlhhYGBgX2hlY2BkZWdnamloamZobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9yc3lNSEhHSURBQ0hFPEBFQ0U9ODo+Pjw8PEFCPD8+QUJGQ0VCQkhDQ0RFRkZHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMSk1LSU5MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZW19fXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJFR0U8QEdEREA5PD5APz4/Q0I8QD5BQUZDRUVDSERGREdGSEhGSEhJS0pFSkhIS0hGRkxISEhKSExMTExMSU1LTU1NT0xQUFFVVldPSlZWVVNTUlFMT1JSUVZaW11eW1xeYGBhYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd293SUpMSUxHQkVERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFRUZHRUlFRkVJSEZJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXWBgYWFhYGJkZWJjaGJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3BzdnR1dXd2dXV0ZXFza3BxanJ2b3dKTExLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0hHSEdGSkZDR0pHR0pGSUxISUpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZWFhY2luaGJpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0RBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NCSUVCSEpJSEhLRkRLSkdISUlJS0dKSk9LTkxJTEhKTUtaZkpkXEtsUkhOTl9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENEQkVFREZCRkZHQ0RKRUVKTExKTE1HR01KSEpKSEtKSUtKTkxNTUxMSUxNTFtzYmRwXmxsVU1OZnNdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9ccHVncE1Kcnl2a2Jga2VlbXhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0JCPz1CRUZCRkNFREVFRENISEdERUtHR0xNTUpNTEZKTkhJS0pJS0pKSktNTU5NTU1LTk1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhwY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9Pz9FR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSUxLSElNSUtKSktPUE5OTUxOTUxcaGR1XWxxV2xOT1FtVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSURFRUNBQjxCQEJGQ0dGS0dFQ0NIS0hIRkpMTEZOS0xSUkxHTU1ITkpHSE5ISkpJSE5PTk5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQUVDSElNSUZDRkpMSUdGSk1LRk9KS1dSS0dLSkpOSUhKTElLSklISkxNTUxJS0tLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYG1oXGpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRURDRkJISkxHRkNGS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpJS0tJSEpHS0tLS0dISkpMTExLSUtMTlRbXFRQVE1QT05PT1ZRT09RT09RSkpOUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdKTEhER0lQS0xPS0xXTUlFRUhJSkhJS0hMSkhGSEhKR0dJRUZMSElLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVFSkpKR0VISFBKTE1KTVNJSEVBSEZKSUtLSUxKSEZFSkhFRkdFRUpHQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjYFlfYltgXltUWFhaX15kYmJhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tFRkhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUJGSkRASktJT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV5eY2FgYmJiY2NlWlJZVlVcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJTERDS0pNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hEREBEQUhJQT9ISUdPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUFBdX2FjZGNjYlxkY2JkY2ZYUVVUU1xYW2FfXl9hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0hHR0pGRkZJTEpORUNLSkxOSkxJS0pISUdCSEhRTUtLT01LS0lIR0VEP0VCSEhBQUZGRFRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYWJhYGJiYGNiYmRkYlhPUVJSW1NcXl1eXl9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lJS05MTElMS0lJR0RIS1FPTUxQTExLS0hJQ0VBRUNIR0JBRkVCVlVFXFRdU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJcYGBfYmNiXWJiV19fVFBPUFFYUl1cXF1eX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNQRFdfSUdHSERGTUpQUEZKSUpLTkxLS0xLSkpHRUpNUVFOT09NTkxOSEtBREFDREZEQ0FERUFMSENMTFBPT0xGTUZHSUpIR0xMTU9RSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUFVUXFlZW15eYWFlZmNoY2ttcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXkxHSFlNR0hKSEdOTFFRSUxKS0tOTlVOT0tLTEdHS1BTU05QT05PTk9IS0VgRURfTERmY0RNW0heXHNtT01WbVlMQ1BfVWxXZ0pdWFZeRExRVUxNVFZRUlRYV1RYVVRcVFBmWmhoZFlUa1RXVlVbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USUtHYFRISk9KSU9NUlFLTUtMT1JVUk9PSkxNR0hNUVtZT1BQTk9QUEpLUH9RSXxZWXJzWFBtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlaX1ZVV39qdHV1X2F2X1hiXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4SCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdJTEZSVkxLT0lLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQS0haeF1UeGRoWVJUUXZndGxwYm5ma1FyT013bWpycHNycXJwb3CAXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zc3x9b355b39yX2BgYmFaYWBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQT01NSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dRVFBQUFFLR2Z4bGN4cW1aSkxVeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGdvWHZ2anZ1cIBhc2h9aWx4fG9fX19jYlteYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3V6bnx9eXhybk5KUnROQ0JFUFBJS0tKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSVNUVVhXV1BVUE9OUkpMcm91dXF1cWRoYVZuTHFwXkZoeVd2VEtoeH14YHl7c25hXm1vZFJncnVubXlwd2x2c3RxbG1cc356a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUEpMTUtMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZVV2xPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobG1yfGttaGt7dG1ta21PR0pLSEpISFJRTE5QTUxTU1JPU1NXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPTkxNT1BKSFFOUFVMS0tTVFJSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVNTV1tXWFdaUFNVV1dYUV1YVl1VU09YUldXV1haYFtncl5bXFtdXl9jWl9jY2VmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKVFJNUVFQTFZVVFBUVVhVWVVSWl1WVVRXVVlYUE9MTldUUU5VU05QTUxRUEtKUVJLUU1LS09RVFJRUVNTSUhNTk9RUlFRUVRWUlhXXFdTU1BRVVVWVFpRTlNSV1VUWVZUWVVTUlVTVFVYWVdeWl9hXVxbWlxcYGNcXWJiZGdlZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUEpLS05PTE1UUU9UUVFNWFdVVFVXV1daVlRcYFZXVllVWFRRUEtPWFNQTlVQTVJOS1NQTU5VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1NPU1VXVVRZVVZZVFJSV1VVV1xZWmBdVllfXV5dXF1gYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2FQS01MUFFMT1RQUFNRT1FaWVhXWFpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFPUlhUUlFPTU9TVU5XUlRVVU9OTlFTVVVUVFJUWFZaXVxaVlZRUldYVltcVlBTVlVVVlhUV1dUUlJYVlVaX1peYF5WXl1eYF1cYGBfX1piYmRoaGVkYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUVdTU1NYTU9QUlRYVVVVU1VZWFteXVxbVlJPVVZWW1tXUVNXVVZYVVNYWlRTUVlXVlxeW19fYFVhXGBhXmBiX1xgXWNhY2dpZGVgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeX1teXmFgX2JcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWF5cX1dcXmpwd3l/Y1xbVlZYUk5PV1NOUVFQUlRSTFFUU1laV1VPUk5TV1ZUUlRSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVlZbW1ZRVFZWWFlSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZl5cZGBhYGFjZF9iX1laXltcW1lYWVdXWltaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1bYFxgVVxdaGpyfXJsaFxVWVdRT1JbU1JRVFJUVVRLUlZVW1laU09TUlZVVVNOVlJTWlJUVVRYXFdYWFNYXFheXVlbXlRVTlZXV15aV1FUVVhYWFRWWFtUU1ZdWV1dYV5jY15ZYFtlYl9kZF5eY2NhXWVmaWRmXV5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVVdWVFRUXl5gXl5iXGBVXV5ia3l0bH1sWlVaVVFRU1xUVFRVVFZZV0xSWlZdW1xST1VTWFZVU1BXUlNXU1dVVltdWFtZVVpeV19eWVxaUldSWVhZX1pZU1RWWllaVldZXFZUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVpXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFhXV1ZWV11YUFVcWV5dXVRTWFJYVlNSVFhSU1ZUWFhYXV5YXVtVXl9YX19YXFZSWVVZWlphWFxVV1daWlpYWVlaWFZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaVlRcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFpcWlZYVVdbWllbWVhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdaWlxfXlpfXFZfX1pdXlleVlNZWFlaXWJZXlZXWltbW1paWVtZWV5fYGBkY2RlZWJkWmJmY2dmZV5hY2BjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1daWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1heYGJhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xTVlhQVlZWVlZWU1VUWF1cX2BgXWBdV2BeW15cW15YVlhYW1tfX1tfWFhdXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNhYGVjXWZpZGVoX2deY2JjYWFgX19bWFlbWVpaWFlYV1tcWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBYVldYWFdWV1ZdXV5gYWFfYl5ZYV1dXlldXllYVldbXGBeXF9ZWl5dXl5hXVtaWVxfYl9iZGRlZmdnYlpkZmdpZ2NfY15hZmRaaGljZmljZV5iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWFddXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FjXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNhUlxZT1hXWVtaWVdaWmBdYGJiYGFjX1xiXV9dW19eWVlVWF1dX19eX1taXl5gYmNcW1dbXWBiYmNlZGdmZWdkXGVmaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11aWl9dXF5cWV1bXl9hY2JhYV1iW2JkYV9jYmJdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGFUX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl5cU1xfYGNkZGZlZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3p6ent7e3x7e3t7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3p6e3t8e3t7e3t6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIjbG1tLS0s7WVh4mJiYmGs9bS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIuRu8C/v7+/wZqKjIyMjIi/6eXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5eXp5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2AgYGBgICBfnx8fHx9fIGEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV4dnZ2ent4e3h3dnh7d3l6en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3p6enp6eXp6e3t7e3t7enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx7fHp5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHx9fXl7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d6fHx8enx5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en18fH16fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h6e3l5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh4eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WEgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgYKEgYKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIGCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKBiJGCgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoKEgoKDgoKLmIeFhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KEhYSDgX9+fIibi4OEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgIONhX58fn9/f5mPgYKCgYGCgoGAgoKCgoGCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+Ag5aKfYB/gop/jY2BgYOBgYGBgoSDgYGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICCmo2Ci4KCg4B/hIODhIKDg4OCgICAgoKCg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgoKYjISFh4d9f36AhoWFhIWCf319fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIaFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWEg5KIgYGAhH9/fn2Fh4aDgH5/fn5/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhoOBgISMgn59fYGGgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhIODgoCBhYSDgoB+foB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgIOFg4KDgoGBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODg4CBhYSEgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWDgoSEg4SDgoKCg4F+fX1+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4SDhJGSkY6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKCg4ODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4GEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4KAgIGDg4ODg4KCf319f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn2AgoODgoOCg4J9fX5+gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgH+Agn+AgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gIB+fn9+fn58fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af39/fn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f35+f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH59gH9/fn5+f39+fn99fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOAgoOBf4GAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgH+AgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWGhoeHhoeHiIaGh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WGhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Mi42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRjIyNjY6KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2LjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIuOjYuKhoSFhISDg4ODgoKCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42LioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYOBhYaFhYaGh4aBhJGOjIuKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJi4mLiYWIkY2LiImHhYWDgoKDhISDgoKCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uLiYyQjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+Ni4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiNjIqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGDgX5+gIB9foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyJioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fYmFhoWFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dXSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAhoKEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKDgoOBgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4F/gIOCf3+Af4F/gH98e3t6fHt8gYB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fX+AfH9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYGEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgYSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9/f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH99fn5/f31+foCBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhIOCgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGBgH5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/fYB/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn58e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn6AgX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/gYF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/gYGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHt7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CBgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGEg4OEgYGDgIKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl5fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYB/goGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgYSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/f3x9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgH+Bg39+fnx+fX1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WCgYSDgH99fX59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhIOFhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgoN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3x/fXyAfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKGhoaFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WGhYaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99f4B+foB/fX18gH1+fn5+fn58fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYSGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhIOFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEg4SEg4OHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWHhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4SDg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWCgYKCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYeGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEg4aChYGBgH9/gIB+f4CCfH5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCf31+f35+f4R+e398fICBfYGAfX2DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fb29vb29vb29vb29vb29nX19fX19fX2NfW19fX1tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0j4yMjIyMjIyMjIyMjIqguri4uLi4uLi4uLi4t73S0tLS0tLS09PT0tPT09zi4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6ODc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFpVVlZWVlZWVlZWVlZSeaejo6Ojo6Ojo6Ojo6Gr0tLS0tLS0tLS0tLS0tHf6urr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpZ5fWVpaWlpaWlpaWlpaV3yopKSkpKSkpKSkpKSjrNLS0tLS0tLS0tLS0tLR3urq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqjaGRlZWVlZWVlZWRkZGGDrKmpqampqampqampqLDS0tLT0tLS0tLS0tLS0d7p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs/Pzs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzMzMzLztLS0tLS0tLS0tLS0tLS1NTU1dXV1dXV1tXW1tbY2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7O0NTSz87P09PPztDU0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19bX19fX19bW1tbW1tXW1tbW1tbW1tbW1tfX1tXW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Oz8qWpdHPz6KXytLGkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8+cqp2s16igq6DOma2as9LOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DLlIiancKclZChs5WGnZ3Oz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0b3ImZurnZ+nmbTAyZeZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Sl5Sgw6KgjKDF05GYoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Ts5vEmNqXxcmU2Kyjv53V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX19jY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0c6NkKC2oJSVobvNiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHL2qidi5+vs52l0NuimbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJjqWao5CimqKcnJGomJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojg6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HKu6Gmp52+nqmgop6poqmc0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk3Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09OekI222a6OkaXUmpGOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0rrE1dLVwb3W09O4yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzY7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLV1NLS0tTV09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2trZ2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg3OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb2tvb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19jY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tna2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb29vc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tra2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PD0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmJiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/P0A6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiZmpqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkJGSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpGQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJycnJycnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZycnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJycnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVJYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqamon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6impqinqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqGin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6KvqqqsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Sgpaisp6alpaOjp6SVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3cH15ZltbYF9aXFZcaGRvY25paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustq+zsKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKOnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYmxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW2vL2+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipaenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwcXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87MzMfBw8fHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjIeSi5iYlZqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJCQT1AQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGwMXHy8jUy8rHxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZKJlZGXlZSZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ4ent2bmtpZ3VaZnJ3c3hmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvre+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnZGplYmptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m9urq0v7i1t7Kvu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+urW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamdmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2hYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvsPAusTCvse4ubitt7W4urS4s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wtLKxsfKycbPwsG4rrW1vL64urK+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2diXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuro7C5vb6zvL68xbiyuLm9x8nKws3ZyMvJyMzO0czKxLW6wMPIv761v8G/xsa/y8bDv8G8wMPMysfFxsC5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9jXmFhTkhNP0VAP0RDPDs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPEFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsbXx6vUxcTKyMzMzcrGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8vrrAysLG08CUwsO/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKyr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t7y2ucG6uri4tcTBxMm5jJ28ucG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pXF9gWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubjAtrXAs7Wysqqupre5r4uPr7a4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nrK+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXVpVSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDo7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ura20cCywLewnZCMfneKjp+MjKW1s7K3vrmztbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4udLMsL+soYBsfW1gZ2l6io6lt7Owtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE+SUJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6rqy8sri5t7u/vL7VxbKpgXh+X2yHamNeYXqRqb22sbS2srSvrbu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5urW5u7W1s7W7vL/Czb2ggGRahF1WhYqMfGFbkK/GubS0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PTw8OjpAPTw8O0A+QkBBPz45NTg7PEZCQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+ysrq4yMWzh2NZa5ZcV2R4iYt5SoK3xrmyrbOwr6yutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWjm6OclZCMj4+Qk5CWlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wtqqi1r8vHpnNXXYSPV1ZhZrKldlBot762s6qytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsaOlqJ6gnJWTkI+RkJiQlpWYlp+Ym5mbo5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENBRD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaKgrajCxpliWn+KdmVkenWvo3ZmX3ebr7Sur7O1qqetrKOcmZSOkZaXmJmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZabl5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6Xn6WenqWkvcOVVmibl3SLmYlvjH51fXl6oqqzsbCwuK2noZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKmxr6KZnJ2eoZmbm5qYmZuUlpuWmJyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5VTFJMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpyim5+hocLIkVFzpbSAhIZ4aXBxe4N4f6ipsK6urLCnoJ+ioJeRlJugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7issbSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqShn56anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnp6ampKZnpyiop/HzY9UdoqKc29qYFtdXF5lYW6NoKqoqqyqpZ+fmZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqaqop6iamZ6aqqefmaagn5+nqKWknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOgxtGTYXx6eWhgV0xJS05QT1Fca4Oqr66pqqagnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7u3s6mzraqztK+zrqquo52rp7axrKKvpqGjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHFra3VycGhXW1FFVEhESU9IPkVBNEVIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw8Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJufoJufoMTIh3F4dmdWUlJuV1dOTURHYY2srqajo6KgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsDGvrq0urq0u7ewtrKqurKuu7e+urqqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrZGhveGplWltGS0xFRFNMREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqoZyeoaKem5qznWtscGhVUFx8ppV5Uk1nlK6soJmcm56emZeXl5KMjpeXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS083T0NPTzMrCxcbHysjOv8jRzMfFx8XBvMPAvr6+tb6zrb+/wsLGxMfErr64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E/PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopaisraqgnaOfnJ2ZrJVybWNXTlJotNPTpI2ks66kn52fmpiWlJKUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K0tfR19LU1tPTyMzHzc3J0s3O08zFx8nKwcbLxsjIxb/Ds7PIxMvKys7Fyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2gpKyYemZYU1JYd9PXv7Kvp52cnaCkoJ2alJSVlIl8d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3RydLV1tnV19PW2M7Sys/RzM7QzNLPv8fGysPMzMvOz8XGx7a/yr/RzMvPxcnHv8PDyM7Mz9DPzcrHzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKR0FFSEk+O0A4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqu1j2daVFVWaJO5rqSalZignJqgoZ+bnJmViXdpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNDO09fW09XQz9LT0cnT0cfQ2NfY0djS19nV1szPz8rN0svOz7/FwsfFzs3R0NHIy83AyszF087LzsjEycbGyMzK09PR1c/SzNPBucWxpai1rqeaqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1FNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztDAvMzJtr6upqqooaSxtH9VUFNSZZOtpp+Ylpiam52gnZmcnZN9cWVjY19fYV9fYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHG0dTK0NTV1s7S0NjY2NfLyM3Eyc/Mysu/yb/Hyc3Oz8vQzc7Lzs7Hy8/Qys7KwsnGyczKy9HSzNPR0c/Pyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1XRTtAPDMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PT9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsaqsraqlsaltTUpOWJKgm5WUl5yen5+dlJaYlIlrXl5eYWRiYGBgYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVysDKwcXMwsjJwszDxcjKys7KzczQzdPLxcjPzMjHysTGwMXKy83P0cbQzs3NzM/Fx8C4ub3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV4cHFrbWdgYHBoWFhoVkxGTElQUEI7RD47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc2Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWwtaihq6qtYUhEUYubjYyYlZCUkpGWlpaQi3xlYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL7Gyb3Cx8nOxMLIwMfNx8PLysvPx8PE0MjGwcXHxL7Ax8vLy87CysvIx8zQxMXHu8fDyMjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd250ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK3vLyupbOns2RJS4KYjo2Wj4aDhISCfoWFf3NgXF5eXmBeYGNkY19dXV5fYGBfW1pcYGtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLLycHCy9DEy8i/ucG7xce9v8bPy8O/w7vJxsi7yMbEyr+9wsvGxcS+xby8v8PEy8XEvMDJwsXH0sTAyL/KycbHxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZqjoJuUe3ZzdGZpWmFubFpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcS/s7G3q7l1V3mWjJOXhnqAhYaAdnh1cnBfWltdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjBwcHFv725vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDvrzBzcPGvb21wb3DurzGu8K5s7zFxMLCtr+1tb2/usvDvLW6yLq/vcvDwcXCxcjGyMbQxsLMx7LHycPOzcHFw8C9srewsqeoqLmwpa2wq62slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGw8TIztHKysrHzc3O0cjQxtXU1tfNys/FycXHwbrHvq2usq6whniRjYqLhXiAhoaAfoR8dHRjW1xdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLW3tLOztLq1vrK3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bAwry4vcbBw7u1rrK2ur60xLe7tau4vb2/vbC6tq+2urLFvLauu7+0trTFvb7CxcDDxcbIy8XAxsa7x8u/z8rHw8bCw7bDvb22ub7Hv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxcjNzNDMzcjKyMrJysTPzdLPzcXHwcXBwLu5y7itsLGvl3+PkIaJint4foaGd3iCfXRpXl1dXV9gX2BkYV5kZWNfX1xbXlxdXlpbW11fbHBtaGZqbW5yfKTHv7i4tbCrrKeeoqqnnquts62pq6m0rbaxsqmupqyyvLq2w7m6urGrtbm7tMK6sL+xvby7trzHucK2raqosLG/tbe8r7CnsrO0u7yrrbWlrrauurGwqriwrbuuu7i7wL+9ucK/x8PFwbzGwcfLuMXHxb/Gw8O5xMbCu8bJzMuzucK8urKIcnZ2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx83Bw8a/xcXDw8rCycq/wL3Cu7S2tsWxq7Cuqnx2k4iPkHx4foqFenuEgXdvXl1cXV1fYF5fZGNiY2NiYF9dW1taWl1aWlpaXGVub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCjpp+qrbS2sb25r7evqK63tLS8uLO8r7i5tLG8wbHArqWooquxsrOnvKqrqKusrbSzpaitoaSvqbKlp6itpai3rLCyt7q6u7G7vb6+xL+1wsDHyLe/wMS3xMK/u7/Ewr7EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HLvrvKt77Ev7vKuMHEwra4vreysLa+sKqqqp1ug4OIi4B7foB+eHR/fHN3Zl9dXF1eX2BeX2NjYWJgYF9eXVxaWFpbW1lYWlxfZmtmZWdlaWtvcoWqpaymoJyhpZSdpJuYkqGjqqOin6WlqKauoJ2bpKWrsq+2t6ewrKeqtKq0urG2ta62ubGvurmxt6Sfo5+msaerqLmqpKenqKeyraCnpp+bpKasnp+npKCgsa2trLK0srSwtby2u8HBsrq+w8GyubnCs8C9v7W4u72+vMLHxMLDv7/EoIN3cGthZl9rb2BUWV5ITmdPVEhFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzc4NjY2Ozo6Ozk7Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9taCelZ2hprq2q7Ozu7PEz8nLwsa4t8fBzL+4yri8xrm0xbi0wMKuuL60rqext7Gjo6aPdIaGhoF8eXV0b21rampxaV5gXVxcXF5gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeVmqGWm6KYlo2eoaKmm5+fo6WiqJ6bopueqrCtsbWiqaqpq6uktLmtt7Css7WusrWusKqfnZ6jorKkpqm4raKmpp+orKqZn6CemZ2fpZqao5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7OzubO9tLaxsbW0v7a9wL3Dwbq7vZeDenJrX2VeZGRYVFddSVdcS1BHSUlGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vEw8++uci5ub+4s8K1sr29rry8tKShq66rmaCfin+Ghn94cm5wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZWVmZmhpa3KNqJ2UlJSbmJuhlpaRnKGiqJ2bnaWmoqacoKCamK2ura6yoKWiraumobSwsbGsqK+yp7qzprahop6bo6Gto6Gptaqio6adpaajlpiel5manaCal52cnJusoaumo6Smrauzs6q0sLKqsrm0r6mvsrKzt7Ouqayusriwura5vb+3srGUhXl1ZV5lXltZVlNaVUtcUUxJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLMyMbAxbfCwMfOt8DEvrS6urPAt7O6vK+1t7Ghnaeto5edmIt/hIR/eG9xdHFpZmRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnqmcmpqrp6+wq5ujo7eqoJ+uqLappqetsKS3sKS3n6KbmJiqpqGarLiwoqGknKKgoJOVoZSVlpuYl5aXnJWfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxsK+ur6anp7KusbSvvLS6t66jlIF5dWReYVZZV1NSVEtNXkxQS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Oqu8C9wLmutLjBzMfFwsO9xrjIzLLBw8Kuvby2vL22uruzs7SsnpykrJeUjZGFgH13cWlscnRwaWhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2NjY2JjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKann5yfpqCqr6afoqO2qKChoqi0oaWopbClsK2stZ6gnZWUqaGilK2xsZ+io52dmJuTi6GUkZOYmJKXl5iXnaabp6GimaOlpaukpbCnpaOrq62mqK6vrquoqqmzpaasr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFJIUmFNV1BPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaett7u8wcW6sbm1xMnJwMPGxsi2xsSzwsDGrLi4vre+vL24trCwq5ybo6aPjXaLh391bmNiZmloZmhqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVJVUlVgYF9gYV9gYWNkaYGTk4iQjpSSk5yUlZajmaCWnKCloa2mpKSio6KcqqulmZ6lsamgoJ2lq56noZ6tramprq2hoaKUl6ObnJCrqbCbn6KfnpeZk4qekY2Sk5aQmJiTnKGinaSgoZWgoaSmm6OrpaKkqqSrrqWtsqmmpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlZSR1BPSFpcT1JJVEtTTEVGSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njo4Njk4OTg5OzlAOXu1tK20u7Kvq7Gtnainr7m5s8DIurXAr8bJzbvByszItcq9sb7Eyq6yucO3vcK+t7eusKmZnqCfioV1iIN7dGlpaWxnamxta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eXl9fYmRtjo+EkYeQkY6Zk5SSnJqinJugp6iqqKqmqKWjmKSupJSZpa+pn5uZm6CerpmbqrOfpaafoqOhlJOblpaSqamtmpyfoaCalJCMmY6LkIySjZaVkJ6hoKOcm6KVm6CioJiiqKOiqKugq6+krrelo6SirK2qqKuvsreyvbWzq6+YhHNzaFtYWFNVUUVYTFFbWU1VTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaevrZupqKy3tqy7yru2v6zMx8a5wc7PyLTFvLe7xMmyrrnBuL7Avba5qq6kmpyemol/d392d25taG1ubXBoZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/jJCKko2XkZeZoqCbn6qppq6qp6+jp5mfrKCVlqSop52XkI+anq6Wl6eqmZ+dlKWhnpKQk5KTlaeqpZqZmZ2dlo2MjJSGiI2DkIuSlZGgnqCjl5WflZqgop2Tm6Wlp6iooLGwprG8p6CjrLSrrqewtbC5tcCxrbGrkX1xcmJWU1ZOUklGVlBSUkxMWE1KTE5SR01KQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6u8LL0MuxuLi8vsHEsrGzua62tr22uaeooaKenpiFhnlqZ2xucW5xanBrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKl4mUlJebmZ2omp+ppaSqnaeYoKWbko+eopqXloWEkpqjj5OinJaWloiimpqTi46LkJqkp5yVlZebkJKHlI6MgYuNf5CKkpKSoZqfopWUmJiVoqWZjJmkpqimoZ+0sqiyt6Gdoresqq2ksrKltbu1q6uxo4l4cm1dTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSno6mloKmlpLOqorLDtbWys8bGt7rDyszGs627vrW4wbCuqrKfqLC9srKkn6ClnZuLf4pwXl9mcnB2cWluaWVoaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGEjoqUkZOdoI+am6Kho5iklqGblY2HmJqMc42CfY2XloWQmZCUjo57mY6cjIKKgImYn6KekJOYloSOgpN+fnSJjnmQh5OQkJ2amZqQlZCdjqKjjomaoKGjo5uitK+sr6yfmaW4pqaxobGunLC7qqmvqpmCdnJiVU1ST1BNQ1NOTFFNQlBRSElOU01ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTE3NjQ3ODk6OjY1Ojg3QTd4t6KjtKilpqijpqWmpqazp6W0wbivtLDJxLe5wc7FvrOtu8KsrsSuqaOok5+oubCopZWcnpuWgn2EZ1dWX2dmaWdobmNqaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeLk5Cfl52VlJaUjpaJf5OJXztXb3uLlImAi5KMkIaGc4qEloF5gnqFlJ2Ug5aOkI+Dhn2SeHJvhY19iYGRjY+XmZiTio+JnIeel4eIlp6aoaCXp6+praionpets6Kmrpmsq5intKKpraOTfnJtX1tOU1JWTERUSlBNTEZOT0lGTFFNS09KSU1QRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6KpsKintMG5sLWwx8K3s73Pv7mvr7bDqKvGqqSemoSVnbSmn56MmpeUjYF4e15QTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQX+VkZF9iZSMhIqNmo2VlYqSiIWVhniIf2BKUW54ipGEfYSNiYV/f25+f5R3dXV3hI2ZcFGNiIqHfH54k3Zod4aIfoqIlYqNkJGWi4SKiJSEmoyBhJKalp6clKSjqKmlpJ6bsKqhpKSRpqqWoamcoqaoiXVsZV5bSFFRUk1JVU1TSUxLT0lIR0tOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+tqra8tri3s8K7tqi6yLi2qKi1tqqzvqiflo+Ai5WrmZqQg5SKioN9dnRaTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJKBkpmLj3uGj4B1f3hzbnVwdI2NgXl9iqqFeXpodnuOcHJteIGLjJJ4eoB7gHZycpJ3aHWEhISEe5WJiIqMioB/hIuMf5SDe4CPmJWclZGfnamen6CdoKmln52Yjaekk6Cflp6epIByZ2BcXEpWT1FHSlhST0pNTVJKSkpNUEhMUUxSVExFSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpijoZicn7Spr6mlraywsaq9tLK7uLa7tbKgt7qyqp2drKmos7Cim5KPlYGPnpGWhHuNf4J8dnVuWktISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfXlnd42XmI6PfWd5gXZ4gImPfISYkoFyh498dntva36tfHOQin97hpKBfX90ZnZ8hmxvaHN8iYyHgGx5cX1wbXWPcWlxgH6OcEOLhIKDhX93d3qLhX2LenV+jpKPmIqSmpujlpmdmp2eop2WjYqlm4+el46WmI92bmxlYlpXV1RRSlNVVE9QTlBWS05LTk9KUU5ITk9LRUM8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ+WoKavrK6rqKmwr7GrvLisu765s62om7CnrJuPlpylqaWhmJqQhpN6ipGOj3p1gnJ6dnBxb1pLRkdFQUBDRElMTE1RUlBRU1VUVFVWV1dXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hufHmIkHl8i4VvbYyReHN4amqAgnKWkYuBfZaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnp9fnt2b3RzhYJ5gXdwfI6MipSDlpeYmpCTlZaZl56XjIOJn5GLko2GkJZ+bWhtbm5XVVdUUlFZT1JUVFNYVU1OSE5KTU5LQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDQ1Njc0ODVIQTg5NXeZkZuZmp6lrbCirKqota+urLS/q7zCv6aimpWkl52NhIuUoaGZmZGUi3SOeoGHjop4c3lvdXBqbm5bTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4l2gYiGdGyakXRze2prnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxgHxncXF7bpONj3tzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlI+XjoB5iJeIhoqGgJCHdmpqbmdkV1FaV1lZW01QVVZZWE5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfprquq7KwwrG7w8eblo+VmYuNhXmEkJiUjZCMj4Zxh4J0iI6JfHN1cnFxaHJqYVRGSUM/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHF8eG19bHKDgYWBeoSGhnlyoJV0eIBzdZSHNXGdqJ2OoaGEooV2cIZ8h3xzjK2NiYBoZmJpbnJtcIN1aW9YdXCOmpJ3bH97fW1xbXCAenN2bWJ2hH+GgIWQkYqLipKLkYyLj4N1eIuPgH6DgH6PenFwb2teWlxdW1lYYF5STltaWFdMSEpFSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoeWkZ6kp56vlaW1qa2xrsGyu8HGl5CMlJCAiH1ugZCSiYOKh4+FdYKEbJaJin13eXlueHB4ZmpeSVBHPkA3NDQ4Ozs8PT5AQkVJTExMTU5QUVNVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8fYWDf4x+dqKZeX6GgYWZhJucYYaqn52KgpCOeneIfomIjnOKl4+De1xkcXR6e3eKbGdqYnlvhY+Cem6Bd3SEenB0eXdrbmldd4d9h3yIh4+Ai5OXg42FjYZ9cYR/hHx1d3t9iXVvcnNlZl9bWl1TW2ZeV1FVWFtVR0pKREtHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyNeIp/lIySnZ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhYx+foJ/cIB+eml3a1JXTEBFMjExMjY3Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+MenyJhn6Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbHyBhod9jmhnaHh+boWGgoVxhIVHa4B3cnl2aG1rX3Z9g4h/iIWMepWenIqLiJF/e3WLdnx3bW93fn9ycnFrWlxcW2NjWGZlW1VPUFZZUERMS0ZOSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpeSl6GdrKGmuK+zvbOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1ZLQjYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzk0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiZGBmpWCoaGXlZuapa2Tmruxp7vHw6iLjKGlj5SJgZF7coSen5Gcf3aFhYqPh5BpaG+DgHSMhoSLcYaCd4eAe3aFfW52dWeAlI+GiYiHiIehq6KWiY6Yf3uCiXp6b2dreH54fXFqY11aWl1pXGFmX1lPS05XUlFJUEtETkdDS0RDQURDQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnVwZ3iDe4CMgIGQj4uamqScoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBi4uCiY2Df4p/bHBqXUNBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPop+UmZKEioWPmJGWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGWhpOKj4+WpbWpm42VooOHk4R+f2tqa3yAf4ByYFxiXllmalxra15XS0dPU1FOTUxGSVBERE5GQkNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuaFlwg3B1h3F2koZ+l5aalJ+fnKegqpaTmJ5nZaSafoSSkXmAkoiQkn2KhZiSkYKAgIuNiYWQh4SIhXh4f2dNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+ElJKGnKGampmnkZGIlaKamnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N8fnpvZ19bX15hZmNgZ2dcUUVKS1BPSUpMRkZNQ0hMRkZDQkdEQDo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcXVgbn1id459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Kjox7ioaPkI6Bg4CJi4qEkoWDhoiBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtL24pa6srKeotKyxt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsrauki5aYhaamoKKXgaaZjaKqqKSHhZOjoKCqoKSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWriZqKk4qVent+hH1mX2dbZGFdY2NeZmZeW09DSUhUT0ZITEZLSEVGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljWGpwWHqFdoGUhYiCm4OSkI2S2sidlnNWl4iPiJyPfIaMjoqJeoiCh5GOg4WAi4WGh5KGgoSJhoeHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJUVVVXVU1bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHw6uzxbass8CzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsbGcmpKan4mnr6qklXafpJehq7GzmJapraiutbuyuqyvtaKxrLG1vLe1rrWgp6ejqJupsK2yuri4p5y3qY2lj5KToIZ5goJ0WGBjVWVhYGJfYGVfWlVKREVMVVFJSkpESkhFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hn6AjXu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeFgY5/gYmOhn+FiIWKh5F6eW5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFdPX1VJS0pBQD9HS0ZFRDs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMm2u8S9s7TBt7jCtb+wt3SxtKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KSpbGtpa2sp6SYoKyyuqKosrm1u77Mv8XFvb2zwre6uL+3ure5ra2xprGqrb6wvbvCwqyZu6iVrY+YmKqJfoJ6aVdhYFdpZGhkVlpjWVZUSUdHTFFHRElKQUhEPj9CQktAQExDOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWlZad2pwf4+EgY6FbnpzeIhiuKGao4mVlJaTlJONkJeSh4d7hoGNlYqAhIGKenyLh4Z9ioKBi4SVfXh5dWVPXGRHRUw6UWRhW15TRj47SFBEWmRRUVlYWmdaVGBhTVNPRUE/SUpIRUZBQEM9RTZCPkhHS01TWlRelK+4tbq5ycC7vcnMu73Au7e1vLu3vrW6ssZgdbKlsZqeq76qpairqqOisrWhq6eelZaemJ+upaempZ+kk6KnsLOosrK8tsG908nJ08bCxczCysPAvr2/u7y3tLC5t7fDusa+w8mwnrqqoqyPpai2iYF+cV5hYFxWYV5nZVJYYVZSVUlFRU5LQD5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzM1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdtbHGQjYWQc21zcnOI1cC1maCNlZmakY6XkZaWjoaHfYaDjJaLf4N/g3h7i4SHe4t5gYqCl390fXprZXB2WV1cUGVlYmBlZF1bWFdcTWRtVVJtbl9vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVl1aXJO5wLm9t8bAu7nKy7u3ura4ubO4tbWutraZZHWpnq1wXqKtnJihopuknqullJ+fkJSPlpiXqJ+ln56amYOknaykqrCtt7C8uNTQztbPyczSzM/OysfAv8LKvcG9wsDFxMbKv8nPtKS7sbWwm6y5vZp+eGpcX1tYXWBZYmJRW2BTUUtDQkVGRTxART5CSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin6Ih4yQjIl8gYNze4qDhXyKdIKKhpV/c3t4bG11fGlzZWlsaWZqamlgZmlobVptdJetpLyHh2dbb2hdWllUSEpOUEpLUUxUUUhMQUpHS1BfX2JnamKXt8ewubO7vrayxMe2sLmxsLuss7Gnq7esjbannpynmk6bno2OoJaRppillYqTk4iRiY+Qkp6boZiblZaHnpmmmqyvqK+ns7PT1NTW0cvP09XO08/MxsPK0L/KycvJ0sjNzcPR0riwxL3Euqa3u8SigG1iW1tcV19XWWVZUFxXTlFDQkhFQkg7QUQ+QUg/P0I3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OT05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CQmYNocW95eYOgqp6ml42bm5iLjZWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfXF4dWxweH9ye254c2xpgHBtY2ltcHlpd31+y7/C36dtY3hvZFthYEpQUlVOWV5QXV1OUE5UUVVUXG5ud4Nylq64rLSosLarrb3Asau1pqW4p6yuoKy0pI+xrpuYmIyRlJGEj5uBjaaRnImDi4SKiYSKg5SVmJeUm5Gbl5mZnp6rrKSnoaysztLV0c3M0tPU0NTRzsjD1NHIztLT09bN0tHF0tbGwM7IyMOpv7jQnXhsZFxhXFVeUV1aTk9TUE5IPkFGQkJFPEBCP0VFPj8/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bXdwfX6AoZ6eoYuNmZOTjIyTkJaFeYaQkI2LioiRh3+Ce3J+gIKHeoV2hZORiX9vdnNsc3x8d3xzgnhxa4BycmlvcXp5cnu+y5p+jLGDdnKFd2hhal1DWlpbV2ZkWGVrVFhdXGBjXWN4e3+LgZmqpKSioKGppqqxuaumtKOiraKjraGnsZ+JppuVk5GKko6IgpSJa5WijZmEgYZ+kYODk5asi5WNlZmOhZKQnZensKKgoKSkqMfNz8fBy9DT0dTSztPNxtbTzdTY1tbY1dfVydTazcnX1tHKrcTDzIpxbWJfXldSWFJbT0pHSUlKQDs6O0VCRDxCRD5IQj9CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKJgZ2VnpSFi5aJjoqIjoiPgHiDlJmLjYiIi4l+g3hze32Eh3eAe4eRl4GDbndwbXV/dnh9dIZ8eWyHdnVvfXaEdXl7nbWMPEGKxqV+jXxqZVdJQ2VjZmNoamRveVtfZmhrbmlugISIkYyen6CekZeYn6OjprKkpbOgoqWeoaiforGch5+SkpORi46LhoOPhH6cm4yNgoSFepR+gqqVo4ySipiSi32XipqRq7OXmpunnKe9w8W5tsXN0tDRz8vSy8nUz9HV2tfX2NTZ2M3Y287J2trS1r/MzbV2dW1jXFhRVVBZVUVGSklFRT06NzpAQUM6R0VARUNBREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXOGjXyXkZ2LfoeSgomGhYqCiH15hZeXiI+Dh4aHeoR5cXp7hIZ2eoaOjZ16jHB8b3B6f3J7gHGEh4Bujnp1d318gnV/fIeJsHRZqcK2jJKBcG5jPV5ocnBxcG54d4JlaW9ydXhye4uHjpOSm5agloiMk5ugm5+qn6GtnKKamZ+lnp+smYyajJGSjoV9iIeDhYuOoJmTiIOHfm2ZeYSZhoiTjI2VjIZ7m4iTj66rlJWXnpimrrW8qK29xsvIycvLz8nD0crU1tjX2NfV29fT2tvW0Nva0dbJ1cyUd3lnZ1pZT1JTXUhCRUlJPkE+PTc6PT87Pkg9QEJBQURBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKEfoR8fYSYjoeMfoaHgHeCeW57e4eCdHqSno2hdo91gnR1gX10gIRvgpCCb5KEdHyBhXp2h3yJuMalw8m3gZWbj3hwZU5lY4J6gXeGopCLeXl3e4R/fIR2bZSWlJWPmJGDiY+WmpeXppyYoJefk5KXo52Zq5aRkYuNkoOMhYmIgYaQkZ6cmYmFi4GFl3uIiZ+XkImNiouCfKGIkIu8oZiTl5mcqKalrp6ntb7AwLnHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvHhXl3ZWhjX1NWVlVNS0RORDs9PTw5Ojw+OT5BNj4/QD1APjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop8foB/f3yFe36CkYqFhnqFiHt1fXVtfX2GfnR/kp6Rn4OSfIZ9eI9+eYuKb4ObgHSZhn2BiYV8fpF7kKmOkMOgvIyco5x9iYR9iXKMi39zppqcmZSFe4+RiYRpR3GhpJ2Mi5CShYiLkZOVj52ak5WRl42MlZ+dlKGUko6OkIt+kI+Oi4SIkpaan5+JjJSRnZCCjH+mmYiFjoKGhICkhoqLuJidkZSWoaegnZ6do662urWrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbt3d3dmlpZFZeWlNPTkhETEI9PT45OTs6OTk8PTZAPj49PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxc3iKe3t/fX97iHt9e4uHg351hIZ5c3p0bYF+hH13hpuhm56UkoCLh3+Yh4Cckm6IqYV6oIt8kI6DiIScfpqRiY2jop+Qo66fi5GLhYuBkoZXcq2Ln6ycj4SYnJCQjlyDopGCjZ+TlYyHiIySk4yUlZSQjI+KiJabnY+VlpGLk5SGgIuJko2Kip2WmaOihpOdlaCKioiOnJCDiI+Ag4eFpIWLkLOYnJKUl6GhnpmSm52nsbispbzBx83Hxs/Mz8zP18/R1K7W1dja2dra19bZ2Z5ue3NmZVtcV1JVV0NASUQ/Pz46NDk6Ozc6OzozOzw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieGxifpKDb213i3h6f3uBfYZ8e3aGhYBzcIWCe3Z3dnSEg4V9f5Kmop+mopaJnZCUl4qKp5dyirKNhKeShJmThJqMo5agmJOJm52hkqivn5GUkI6OiJWLbo23hJrEyLKdoqWbnZiWkbKQZKTNyJWOhoeJkJKNjZOUioWKioaWmpuPkJSTh5WYhICPi5mIjpCql5eko4iZnpaaiY+Gl5eLhY+MgX+Gj6WIjZOomZeTlpihmJ+Zk52borK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6BcX1nYl1dXE5JVFlBQkdEO0E9ODM3Ozw6OD02NDk6PDo3Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdoGPfXxtfoh4en57goKDf3Z2gIN8bW6Lf3p8eHh8hIeKfoujs6ejqrOhlqefpaSWla6ig5G4lZGzmoyhoYykm7CjpJ2YkaeWp5msr6SXlJaVkIuYmZehwI6jybmrnKOmrZmSm52ynYWFqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIuUk4aVmIaEkZCcdZGYspaXpKGInZqTkIqQipebiYqWjoZ9jJieiZCQnJqZk5iXn5SgnZWem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LR1tjT0Ni6cXh0W19UX1VPSEpOREJDRTU+Ojc3Oj88PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p6boWGenyEeYGGgX5weHx+fW9yjXp9gXx4houJhoSSp7usqLK9r6Sts7Ooo6GwrIqatZ2iuKWVraSXqa24p6Sjn5qpl6mjr7CpmZiclJWRl6CYmru7rsqhara4q7CUmZ+jrJOXvaNeqrKDioqNlIeRfI6OfYOGjo+UlYiIk5aMkJaNi4yXmJOdmbSXlqudi5yUko6RkoyYm4qRnpCLiZWfoY2UjZiZnJKbmJ6UoaCUnJylr6ihpLO4q8LIxLW6vbvFx8fC0aDGyc3NxdfW0cvUoW95Z1tZU11QT0VDPjxDQUI4Pzg3NT9HPTw2PDM1MzQ1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEpAi4p/gXOGh32CiHWDioJ/bXx9fX9wd4d3joKHe42PjIaMmarCwK+9xruztMC8tK2rs7aMqLKtrb2rm7ukqK25uKumpqKipKKpr7Kxqp2cpJibmJeeoqalkqS6r6nAvK2tsrmmpKh+iIacrbywg4yMi5CDj4ORjnqBh5CNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpeOkaCRiZSbo6yUlo+UnJ2ToJ2bmKChlJqep6akoqOws6fBxsOvsLq2xcTCv82mx8THw7zV0c3FyodycWBaWF5aTEpCS0BGRz5BP0I7OjQ+QT09NTw2PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRD9DRlxlR2BpZ1pdXJOMjIh7h4yHg4x1hpGKgW9+e4F/cX6Be5V6kpSUmJCTlaezxsm/wszCw7nHvLuvq7m7l7K3urLArqXApKuvu7yqraujo56nq660sKmboKqboZuWn7C1p4ujuru2wbysqJyypaSolIWOqcTDpIKLj4eIhIaVlI16hI2Rj5GijIyUkY6Jl5+Yk5mVmKagrp2MqpyOlo+SkZWVjZCVkY+hlIaXn6CynpSalJ+hmKSfmqCboJSYnqWjpqakr66lv8TDrqi3tsnDvrbPssS/xLyz0cnIwrVzd2tbVlpoUUxIQ0xLS0pBQT1DRDw1QUQ7OzM9OEIzMzIyNjNBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWU5lXGZUY2qZjZeKjIiTkIaJeYaUkIFygHyNf3iHgoKQeo6hlqiampi6vsfIycHSycrCzb3Cs627vqe6v727w7eswamss7u+qrCqpKWkrK6zrba1oJ+un6WimKOzvambqL3BpLe3sKuTsayrrJeHmqmnpZGCjJOllYmBdoqReoWNkpCen5OPlIuPjZSjmZaclJSjnqqfkaWajI+Pj5WWiHyPlZKSo5qVoKKctaWQnpeko6Klnp2mmJ6Wl5uko6mnorKsqLzAxK+lsrfMwLmvxLO7vsK4rcLDwsCYa3hgV1ZaWkpLTUpGRERIQkJBREw6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+JoJOEeIV/lX9/kIiKkICWoZmupqSYwr3Hw8fF083Ozcu8wrewuby0vMu8w8G2truts7+5vK6vqKCpqLatrqmyt5qerKKnoZ6rt7iqpbC/xbG9ubOnqrWzra6XlqWsqKCRjpKyxaeVjn2SlX2IkpmQqpmYk5OPkpWTpZ6SnZmUoaOinJifmIuMj4+eiFqQlpeSlqSZZZijnrOllqGWrKyqp5ueppeYlpiVoKSopZ+2q6m5u8O0pbO1y8C4qrassrq4rqi4ur24gmptWVZTVE1FSlJOSz9BSEVESEdHOTVGTTs+OD1ASi4zMjAyNUI1NVBXTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnBFaUlSZWJMRqWUnJeil6mWjZGDh6aTiIKHgpyDg5WQkJSPmqKfr76voca8xcTGxs7OztLKvru2sbq7vL/PtcO9uLi3srG1s7izq6acq6y5qqmnr6+Xo66kp6SltcCwq6y0v8O6wLqzp7m1uLOvlqWtrq6ki5OVoY10wZp9l5mEj5aajLGVm5qVkpOZmaWjlKCbl5qpnJyhoJmKjZCWnGBKlpyalZqlllSWsJ+vnJ6klK+uq6WaoKWUk5mYjpygp6KZtKmqs7y7u6qwsse/uaasq62xsaOhsbK0pG9sZFtZTk9LRU9QUVE7R0pIR0lDQz46S1U/QTo9RU0wNzU0NDpCMzROV088SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4unlo6Ik4Wfh4Sdl46doZujpLXItanGusLDx8rIyMzNxr67s665uMHBzbXHusG4tbqwrq+ztKakm6q0taqppq2smqStpaSorLq/qKu2t77Cv765s7LEsrm9rKOutay5poibl6abdr+fhJmdjpOZmouul6Gcm5aVm5+hqZ6nn5maqpmhp56YkI2RnYNudpKimpWdop6QrrKiqpSoqpeqraOjn6WokpKZnIiUnKKdlrGnqau6tr2zsq2+ubego6eopaecm6ypqYxhZGBeUUpMRkhNSVZMPU1ETkpLQkNEPFFWPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH9lXkhFq5WcoZ+7r5mUn4uTq5uRkpOJq42Hop+MpK2Uo6O2xr60wLrCwsfIxcLNyMG9ubKvuLTAwsq1xbLBvLS6qqitrbCjo5iqtLumqaarqp2prqejqqu+vKitvLS4vse8t7a4wbG+wbSptbervqWPopiSoqC8n4maoJmXnp6Pt5+pnKWim5yhmqils6GbnaacqKqemZWPlJuLl4mMpKKUnaKeoLWvpaSSr6uZq6qdnaSjqJGVlZ+Dj56em5WppKGhtLS6ta2otbKznpyipZqXlZiqoZ52X1tfXUpIRUZNUUhNRUZHQlJMSUJFR0FWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5Z1xGQ0OccGJHRaeXpJ+ew62bl6WYmamclpubj6qWlaemla2smaKrtsTCvL63wcLAx8S+zca7vbmysLizv8LItb+wvLa4tqakq6ytoaGaqqrFoqSpq6aerK+roqmov7emrb6xuLbHtrW5uMCzv8K3tbO0r76jl6OWlJyUrqCQoaOlo6OfkL2kqZ6oq52doJumn72imaOfoqmroZ2WjZWek56Hj4SNk5+koJ61rKWblbGnma6mnpmpnZ+NmJSehI2gmpuTpaSamKuxtbGrpaqtrJyYoKCSjpCVqJ6UZ2JYYF1OSEdKTktIRURJQT5QSEA8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNDZAOTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm5SRjxLeGViVkyimqOcnsWsoZ+snp2uoJKjn5aln6aqrJe2saOqs7bExL2/tb/Cu8jCvsrItri1tLCzs7fBxba+sbi1uLWfpqyqrJ2dnqWkwaSfqq2gpKmtr6KmqL21pbG8uba2xLK0uLq/s8TBuLius7W1o52llZKUoa6gmaKeqKiro5rCramerK2bm56ZpqG+oZ2kmKurrKaimY2an5KfiY5Xf5afpqGguKqmk5i1o5+xoJ+arpaejpiTnYGOn5eVjqKjlpCmrrKrqaGipaWVlZ2Yi4+RkqSeiWBjWWNgS0hKSk5FRUFGSj49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtOnp+hmZ7DqKWitKKcsqiTq6Wgo5+tqaydu7CorLaxyMXBwrLCw73Gw7zEyryvsLatsLSvv8S0ubGwubSsmaiwqaqanaWhqMGsm6ywnKqjrrGppKi9tqa3u76vt8SttLPDwLPHtLu3rLS2raqippaVlaSsop+fmqirsK+vu7KmoKmompmYk6KkuaChpJOvr6ylp5+SoZ6Vno+QjZWemqKep7SmpoyYs5ujrpqdm62QnpOVk5l/kaGWj42foZOLpqywpaahnKCekpKak4WLkY2cnn9gZVpnZUpJTEpSQkNASUc7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+jn5ygw6mkqrKho7SqlrOsp6KksqyuqbuxrbC1tMbAxMO1wMS9ycS1wMjBtKu1qK+4rL/Ds7eurLa5pZmrsquqmJ+ml627tJunsJutoK60sqerubKnurO4srnAqreyxL61xqi/r623tamnrKGXl5KmpaKimJilr7iusrW2oJ+opJqVlZOkoLeipKWWr7Gyp6qmop+bmpuWl6ifoJihnq+yoqaMl66YpKqXmZ6kkJqNk5eZhZWelIyPnJ2Ti6mpqqGnoJmelYyOmY+BhZWIlJ94YmhcampNUE1OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzujo52hpr+nqK+voam1q526saujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDGwLmptqSsu6zAwre3qqyxuqKVrbGtspalp5GquamfprCdq6CwtLOqqra2rbuss7O5t6y4sMO7vr+mw6uwt66pq6umnpiZq6KioZGXobGvs6ywuZqcqaCZlpKXpqG3qaWjorCxtKuzqKyfm6Cgm52lnaKXnaOzsJqfj5Olmp+ompSinZSXiZOWkpWWnJOIkJqZlI6oqKafo5uXm5OGjpiLfYyWhY6aamhsYGxuV1BRWlRBQ0VUQDs7SEE3OlhQZF5QVldFWV9dTUxSTl5LSj5aY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9p5+doqm9oquwq6OxuKqltrSsoK21va6zuLu6vba2wMK/yMS5xMLAwLjEvcG3r7Wnq7exu76/tKmusbael6uuqK6XpqiOp7ufpKyznqyisbCzrKq2tLW9rrCxtaywtbLBu8W3q72vsbisraqjsaaepamfpJiQmZ+zqrOrqrOanaebmpWOoKaltK6noa2trrGntK2yqqScn6ijnpWimZuotamXmZGSnpmdn52Qqp2Wl4SUloqdmZyTio2Wl5qXpqWioJ2WlZeTf4+UhXuOkoOLlmVscmdvcV5GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoaSstqStqqavrreqr7W6p6ext8W3sbe9wcK1tLrFvszFucLAur65xLfAubK0q6m6tru5vrSprbC1mJinrKqsm6urj6u9nauusqOrn7CttK6ttrK5uKqur7Kota+0vL3Ks6q2tbG0sK+nobOgm6itoKaWlpqasqOtoKWvl6GkmpqSjqOlp7OpoaazrKm1pa+xta+kmZ2tp5qYn5qZq7eil5ORjpecoZeWlKuempJ/kpeMnZyZlpCJlJKemaWioaCYlpGTlXqKj4V7jIqDi5JqbXhtdXthRWBqWUlIWVo9e0pGRDZBYlRpW01cYUpbXVpSUlJiYUxLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lVS0SZl6GxqLGqraakr662qbe0uaSstLfJu7S6ur+/tLO3w8DMyLzDvLe9v7+3v7yxva2nurm3tsK2qqyxt5SXpq6rqKOwqpSvuqOssbOnqKOytLGxsLWxuLSqrquyp7evtrTExraptrassK2pp6O2oKCnsaGklJyZlbGep5ygqo6oo56clpimpqW4p6KytaynsaeusLaspJmgrKibnJ6clKm4nJSOjoqYm6KXj5iln52UgpGVj5ybl5aViJaPl5qnnKOgkpaQkJV2hJCHe4WBhIyLbXB3dHt+XEtlbFxLTmNcPmJ7R0k4R2dXZlxMXmJNWFlXVFdUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLT1FTFE8M3JrSUNDkJmlrqWtrqunpbGztKq3sbegq7W5ybmuwLvCuLOxtcLCzsXAwb20vb+/ur68ssSnqbmwtra/vK6rs7KcoKexraalr6WesrWrqrGyraqptLuttLK1rLStqqyoram5rbKxyMC4pbqwqa2tpaiusKalo6+kqZyenJuvmaOjoqORrJ6joKCiqqamuaWstbalqquora+2rqOdo6mqm6CampKks5mOiY2HkKGglIyUnJ+TkYSNkpKdmpiVk4eXkpWZp5ufnoySkY6Qdn2OhXx8fIeJiHBzcX18fVxTZG5eTllmXEZElltHO05tWGJbTGBiTlZXVldUWWddUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis7SD8zQkhTLD6QaztHSI+cqquiqbGkqaWztLG0tbKyoayuvcy6rsC6x7G0rbTCwtHFxr7Asr3Awry/t7vEp6y3rLO4u8Cvq7GtoKOnraqopLCkq7Kqr6ywr7Cuq7O8p7axsqmyqaumpaOtuqyqscO6tq27qaioraqps6WppKOuqqiin52krJWlnpiemaydoqiqoqymo62suLGyoamioKyvsaydn6eoqZmkmZmPoKeYhoSOiouen46KjJWbjo2Fho+Un5yVl5SGlpOTl6SbnJyKkpCNiX59h4V8d36HhYZzcnGIdWtfWWBuY1FzcVxLO4R8Rj9XdFhhWk5jW05WVlVXUVxiX1NPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlVo+TEWVmK2ooaqznKqqsLatuLWuq6Wrqr3Ju7C9t8KvsayzxMPOz8O/vrO/wsO6wLPIw6uut62yuL++sq2tq6SnqrCpp6ixprSvqrCurbKxtKy0u6S4s6ysrqeroKOesLerqq27t6W3tqSqp6ysq66hqaemsbKkp6aioqyWqqGUm6CmnqSiq6Wtop+nsbetrqOmopuqq62pnKKlpKSZoJqWj5ick4KCj4iFnJ+Lio6LmI2PioKLl6OakZCajJOSkZOimZuaio6LinyFgIGDenSAhIF9c3aLo4d4al5gbmZXZYdjTj9nk0xFYnlXYllSZVRNVlVWVE9cXWFVS01pV1ZXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxCKzpKT140RIY+SEZEl5KwpaOqsZirqq22rLaxq6Wsqqm8wMC4uLO7taayr8TJy9G/wbq4v7/CucG5wMStsbWxs7q/vbKwrq2rq6e2qqatr6q5sKixsq6yrbeqt7emtLerrKSpqpyjnrOzqKiktLWgt66gqqirqayooKusqbm2qaqpqqOpoKyckqqhnaCko6ajqp6cp7WuqKaqo6OYpaenqpyjpKOgmpigkY6PmI1/h4yHg52dhoSKio2Nj4yDhZSimY2MmZCRkY+Sn5aYlouKg390hoB+f3h0g396d36BiJ2Pb3FnZ3F4XGBziGtPXplWSG14VWRWUWNPTVVUVVBPWFtiVUhQaVVWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTMzMSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EO5aOsKGmq66aq6WssLS1r6umsKqpur67wLCuua6ht6/Jx8jQwb69u7zCvbrDwL6/rrKysbW8usGxsbKrs6iktKilrbOyubCjrbaxsLK7q7qvqa22rKqeqqyfo6C2raihn6+yorSqnqinqqOqoaKsrai9r6yuraKoqKCsmZCwopiioKennqebmaqxqaOgraKhlKOjo6eYmqmlmJiYno6Kh5SIfY2GhIOjloSBgYuGjoyQg4OToJaIkJyQk5CNkZyUl46KhoV4dIF/fHV4eYB6dHN5aH+GpHVpXmRrgXRniIx9U1hwXkt4c1NlU1FeTU1SWWZOTFZZZFhGU2lSUT9DTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS4tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWytITTlVQTSRj7KgpKespKejrKe1s7GrpbGoqri+wLyvp7mqpq+wycfI0cO8v765vr+8ybvBuLCvtLG6u7fAsrO7rLisorSnp6yytrmzp6i8ta62vrC9pqystautnKmvpKClraunnJ6qsqSzqJurp6mjqZ2kqaipvay0r66dqaSgrpybs6OVpJylpZ+km5upq6afm6qim5OcoaWemJepqZKYmpSQioKPhX6Ogn+HnY+Ffn2LhpCNj4R/k5qThZKhjJSRi5GakZWGiX5/cnt6fnxoeHx6dXBwfGeEeISIZGFnYnKFem1neF1dVkFXem1UYVBSWEtMTnF1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0FKN0dTYFUqPTlEVz4qj5SxmZ+gqaaloKqluLOzpqmxp624wb21r6K4raiosMLJyczBtr3Atbe/uci1w7WzsbWxvbe5vbWtuba/raGzp6ursLW4taufvbyps8G0vKCvs7Wqq5+tsKOcpaiqo56bpLCmsKCfq6mooamcpKihrbuorrCuoKujpK6en62ml5+boaOcoJyapKqjm5ulpZaXlZ+ilpuXpqyMnpGRkYuCioCAjoB7mZSMiHt+i4WOjYuKg5KYkYaToomSkoeQmY+TgIh8eWx+dnl4Y3t7cXBwcndogHNqg2dlZ2Btc41sYWlvYG9AW3hrVV5PUVFKSk1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDQvLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDFCaFkxM1M9ZV9ETDZLVmRPKjsyTlg9I5OZrJmgmKeko5+npLiwr6SvsKqruMK6s62fuK+rqLS6yMvIv7fCvrC0vbfEtsOxrrmxs8C0ur23qbm4vauktKipqrCuubGqm7u9pLDBtbahrra1pqensbOgnqSmp6GlmZ+sqKmeoKqvp6CmmKOpoLG5n6OxrqCroayknKanqZqam5+jlZ2dm56pppecoKiSmZSYnpOZlqGqkZqIjo+GfYd/go59fKCMjIh4gouEiYuLhYeSmo+IlZ6IkZWCjJeMkXyFe3NwfXF0dGB5eGlucHBuaH1xY3ttaWVjX2WFfl9ac2tyTEx+aFhaTlBMSkhQUlBJTlxfblNEV1pSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo+MFhWNSiXnaaZnZasoKChpKK4q7KltLSqqbnEtbOtn7etrq2wtcbIwbe/wrmxtLy2v7u+r6u9r7S/sLzCuKm7urenqLWpqKuwrbOwp5q+t6WtvLeyn7C3sKilp6+xm6GkoKSkoZebr6ahnqOor6GgoZOkpKK3sKGmsaqerKOvmJyqpamemJqepZObnZuep6uanZ2llpaYlJ2Ok5eiqKKQiIuPhXqEfoSLeo6Xio2GeIGHg4iLjYWNk5iNjpaYio+XfoaXi495gXpwcndvb3RfeXdkbGxraWiCbWVya2tlaFpic39eWmx2aVpIfV1bWE9PSkhIUlVGMjpfXmxQQ1dWWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0JnW0hUQ1RdaEUuOzFfVCwylqOhl5WdqZ6moaOhuKqvobu5pqy9xLOvrqK1r62tr7TExL2zv7q3sbO5uLq4uq6tv7O0uK+/wbisvbq0pqKzq6iqs6uusqOcwbalqbe3q56yu6mmpaivq5mip5ylppSYobKlmZ6kqqmcoaCUpZ+kuaikp62mnqWhqJOfqaKhoZmbnaCSm52XoKKrnJuZoZWTlZabjpOTo6ekj4iKjoZ5hHyFhXycjYmKhniAg4eHh5GFlZOSjJCVk42OlHuCl46Kd357bHVybWxzYnl1aGdpZ2VuhGdnaGRmaGpfZmJpZlplemNgUnNUW1tTTElHSU9TQCEral5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc4Yk0nMp6ko5KOpaacnp6epLWtqKq6t6isw8C3r6yhta6nr6+3wcC9ssG3sa6ytrW4t7Wsqryzr7KxvcC3rry8saWftqymprSpq66hoMOsqaextKystLqdqKqrsaWYnqqeqKWRmaatopmdpKqhm6Kdl6Cdp7amsKquoKGdnaGVoKafoqCZm5qckpqelaaeraKYl56VlI6VmIyPmJqnoJCHioqIeIV3goKCnIeLgol7foSIhoSQhJaVj4+QkZCRjZN7g5WNhnJ+fWd5cGtqbGd1c2tiZ2RjdH9hZGVmZWlqY2hvWV5YXWxkYU1oV1tgVklHSEtMUlg+OWBsaUdCVVNdW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssMEEqSksuLyorMzcyMig1NyQrNy43Mjc4NVx5TjI+SGlaTFpKVmJmQTozQGVHJTWbpKCRjK6gmpigl6W0sqOyvrehscW7ubCxorarq6+pub69vK3Asq+urravs7iyp6u5sa6utLa7trC4va2mnrWroKGxpauvn6XEobOlr7Kvt621na2vrK6imZ2nqqWflZuopqCZpKOpnJqfnJWcna2wprqoraKhmpqemZ+kmqWdlp6Ym5SaoZKolq2pm5SdnJOMlZmOlJSYp6eNjYqJjnuCdIKBipiFh3yJiISEioyIkoWTnJOSj5CRlo6Qf4CNjYNvgX9meW5oa2pncXJrXGhjYnJ/YGRnam1sZ2pnZGxcbG12cWFUYmhjZVpJRkxNT1hRUFVhZYFUQFZTWVVGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOktqW01bS1hkZEBBMUlkQyc0k6Kbj4+xnZuUoZqpsrCfucC2oLTBu725saW2r6mupbe5uLmtu6+tqqu3qrS5raWytbGuqbG3trGztbqoqZ+2qZ6fqqKqrZyqwpmvpa+xtrWsrJ6xra+qopudpKyonJWcp6SdmamjpZWaoJ2RnKOrqqm7n6akoJiamp6ij2uilZiccYOWnKSAdpGrqJ6WlqGRiZeZgJeKn494hZONg21pfneDcGyGioZ9hIqGb11kYGeEl4Zri5CUknV3i4R/g5B/ZoiAaHZpZlhdaXRuTlBqZGZxgmZeZGZubGleXV6JkIWIaE9LRDhFVGdeSkhQUFVVS0hTYG90ZUVbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOXEtbZmI+RzFPYjwrL42kmYeVsZudk6Ccqq2ro73Fr6m3wri9va2ntrCmq6S4tLO0sbmtqqestKawtaKnuLa1qKestrOutK2zoqmftKueoqScp6iarr2VqKewtLitraSorqqrpqKfnKGop5yXoaamnJunp52SnqCZkJ6oqqO1sKOio5yWmJiYpImhj5Kah6GIlJ6hf6V/p6yelJOdk4iDcniNjoOHoHWIjWmXiGZ9c3igb4iHg36MfH+hoJ+Zf3uHnnSIjnabimyIgoNtaWVke21yYlSGbWNtaZhxWGpwboZXXmlba2pbiHBteXKHaYeEWl5GTj5GXk1FUlZWUVBSV1RnXkxZS1JSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTlxMXGdfPUsxVWA3LyiMppeEnaydmZmdn6uqqKq/w6+yuby3wL+qpLexqqyms7Wur7O2q6mlsa2ltbObrLW2tKWnqLOxrbKor5+qobOpoKSkmqKknbC3laWmp7a9pqynqaqsp6aioJmgqKSZmaajpZmcpamWk6KclJOjpqagtqSjoKOYlZOYk5yIrpCYlImpi5iknIaxgKStnpSan5V5gtSof4eUwJvGeHexpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4FslrGrsHlobFixrm9labySvG5oem1xj9h+U2pjtrJ+gHGUdZqhqpBXT1hhT1ZORlRbWFFQU4tcV1tQQFxFUU5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV5nXD5MMVpcNDEhjqaTgaeqn5ednaWtsqmxwr2ytb+1uL/Cq6a0ra2pqK+0qq+2s6inpralp7ivnLKytaqlpKeyr66xpqqep6SypKKin5ecoJ+xrpWfo6C0uqKpqKGtrqWinZuaoqqgmJuooZ+YnaiokZynmpSeoqejoLCjnp+jlpaSmJKZhbBraoqNqn5nhZaHrWVxnp2VmqeWca6hpH53unxroY92sV9qtFulgGWckWBmgXpmf2l4aqllvnJnpox2sWp8sXh1kpRjbW2nblyEoEVpZ4eWRXWcYH1me6Ongllfi6tpgJJ4emqoOEqvW1dUbWNbTE9YX1xXVjtOiE9XVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWTMxG5KilYKsp6Wfo6SqsbettL2+sLfFsri6wqeosKyvqamxr6SxurCkpK+zo6m5qZ6zsrCjpaCqrbCsr6aon6OisZ2knZiVmJudr6iXnKKftLOhq5uhra2gnpqXoKOqnZmepKGcmaGnpJCdo5uYoZ+sn6WmoJqfoZWVkZaRmoa1m7V4hamZtZl3h7Obt3+TlperlX5rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iHCOhoF/iJCXeIOCi5eMg6CPhbB2d59xa2psfItPpVhIY2OZfmNopmB5cXVSk4ZeUKltY3F9hoBhnS9Som5bVGtnYExLXGNYXFpCPrB4V1hBI01oRkNEQUBBMTk+ODk6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDI7RiwwLjg0MCwuKC8yLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o4YVU1MByXoJSIs6amoq6pqLOsqru2wrC8wq24t8GqrK2vrqeus6qir7yqoae1raOrtaSlsrOoo6Gdp6qyqLCopp6goLCWoJqWlpeaoK+jm5qkqLWuoamPqaepmp2WmKClqZufnaOfnKCipaOVm56YmZ2iqpulmpyaoqCWk5GTk52E1ZOZuXGwwn/GhnzWlJy7fJuWppCNnIykeo2GooGlgnqseY+dVq97iX6farlauXeGg32mgpN8mHqqeY6dkHuxbo6EdJC7hW6VUK+nxYpRoHpjYKpic3KGbJeHX1O1tMiFgIl8Y6QzQp11XVBqaGRQQFhmWmRhSkhNa0paU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFQNzIlnKKTmbGoqKWzqqW0p6S8t8GxusCytrS8s7ansrGjsbOmoK+1qJuouq6ir7GgsrSxoaSenqipsKm0qaWcnp6sl5mZl5eWmKKsnpuXqa2wqKOfjqyip5admJyhpqKYoqGjoZqioqebnqCelZmapaCcp5Wbm5+gmJCSlZCdiLJuaLVxq4hwjqZytHRztnubmKSNj5yNon6Pn6R+sHWDkdLRdVuufIV/pG+bqqZrhoV9rX2XmY97sXOTnY94s2WWdIWebp5mlFLJi1rCXJ95Yl+tX3ZzhmKXiF5Zyp1vv4B1TUu1U1XGZFRRamNmWEFPal9saVBVRkk4PVdSW1ZZSUM/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUU+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHJoOSdXaVxCTlRfZVA1Rz1hTTYyLqKdkaWvrKSqu6ymtaWntru8sru/uLe1u7u0prW0orKyo6Csr6SYprqupLGwnLS4qqClnaGqpbKorKqlmp2bqZ+WlZiZkpOjqqGXk6ersKWilpKsn6WSlKGcpKeglZunp6Kao5+tmqCenpCVm6GdnKWVnZWZop6VmZaSm4Wse3eodqOPi4epb62Kg6eEmpmiipKZi6J+kpeHroV/grNccrNSrn2CgqR/cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52d4dnmIhqXa93lZ+PeGw1eciusl9CVG9dZ2BFUGxgcW1WVU0uZWJoU1lQO0JEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6NzegnZSguLCYs8GsqLKnqrK6uLS5vrm4s7a9tqa4tKC1raCgqauflae2rKiwsauttKSbqZ+gqKK1p6aqpJmelaWilJScmpKWo6ablJCnra+loZWYqZ+ij5GimqmmoZWapqmenaSerJ2gnaCNlJ6bnqGYmZyWl6GglJiRpp2GqX19pXmhj5CDqnCtjIGmhpagooqXl4ijgZCHlKp7f4udeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClG2TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZU9KQ6FcWk10XWJmTVphX3J0X0pVNUqaklhIRT1IRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT03opyamr+smLTCrqutqKa0sLixtr+5urOxuL2qu7WgsaWfpqennpOqsamvqrWtqq+hmKGgpqSkuqKjrKGXm5GjoJWVn5uVmaCgkI6MqbCvpp2Xmqimn42SpJioq6iVmKmon5+go62joJ2hjZSgmJ+gkpyXnJWdoZWWj6ubj65ucrR0qYx3iqZztHl0tIGTpaOSnIyJpIeOdbhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6YhnBcr1Y8nHdmVG9uLlunT2JSa2VibFpiXGBwfGNTWVE+Pm1vMkJCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eOTFBOKWam527opyywK6tq6unt6m4r7XBtb2xr7q5rMG2qquhnaekop2Sq6qntaOyqK6qoZecqKClq7mdo62clpmQpaOWjp6hnJmen5GTlau2r6eZlJusqZeMlKaapa2jkpersqSgnqirsJmhoo+YoZegm5abl6GTnKmdlJCqmYfTk5q7dLHEgMOGfdWWm7h5iZKZjJeJjKeHeaK2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+ifox0h6t9vm5zvHSyg3V4gIptmohxbY2kdL1dd31bYXm8alpWW2l5XmlhZGZibXlvWVtZQ0FAcj9DRis1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy02QDmmmZ6ivKKXscKwramqrLGnuK+3xbG7sq68sK7Bsqylo5+koZybkKqkqrKktaetpJ+WmqqZpqy5naOumZWhkKagk42co56YnpqQlpOvubCrlZejp6eUkJalnaStnpGgqKugm5+ppLKeoqSNpqGUoZqbl5akmI+woJKVqZ+FkJm1gJGRjbiVeIKTm7V3bmxvc255j4SOiXOewbu8mXqBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycXe2jF5/eX2IZ4N5bXlii6xwdIV/WFunakRkWVRmX2NdY1FnZ3FtdUJNUE1EO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PjcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NhVzgqT11dPSs7VlYnPTo8pp2gob+mlrPCtKuqqKyrqbuuscavtbSuuKe1ua2po6Onn6CdmJOspK2qprWoqJ+blqCjnqylvqehqpiVnJGim5KPoaihk56XkpiUsrW2rJidpKSii5KSppylq5yWqaWmnJmgqKemo6igkayel6Oel5aYnZ6PsKmTnKeijmp+aZyneIlzfpuOdXplh3u+v8C6bpKCcZWFX3JqWl2aiWFkh46Va2B/lWNtnHZilGuAmpWUZV5fY3GbiWhyjHyGlGZqfnF0eX59Ylt4dIFoUFxug3x7impYbHmBcklKb4VwTnNNRVdcZmFMW1dmY15PWm12anJST0RFTTxISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPltPJz8yPqifqKHBpJq0urajrKaup6i1sqzIrLCzrLakvrKzpqCkqp2jm5mZrKeupKW1qqSbmJWim6atqb+oqaaWlJuWoJqTmKWpp5GekI+YnLCyvqybp52noomTkaqbqKSbm6ygpJqaoqesop+poZmvmpWmn5aUnZ+dl7GlmaKomZyRnpyjpJmno5qdmpqakJaCaG59cXaRl5SRg4m0qY2FmJWOioyYloeTlYqDk5OQiI2RlJmTmZeaoKGam5Sfm42CeqSFbGl7kH2AdYmLgnKCeHl2doqAe4lqc4F0g3Vkd312a3B6bWBjW29nTFhZZWpfV1lwem9uZlNPRlI5T1pOUk8oKztKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOhv6KksbG3oKmms6elsLWqyautsqa1psCotKGepaacpZWVoKunrKOjt6ygmZaWoJetqqbBn6yklpKcl56YlJSinp6jqJKQmainssOvmqudqp6Pl5apnqucnaCtmKGbnKKlr6ahpKeerJiXpp2ZmqGenpywoZ2ip5WYk5mUoKKWo5+YoY6WlIuKjY+XrY97lZuCkYCJqaiFgJiWioSOn4h7g5CGhZqRh4aJlY6bl46QmJ6jlpmSkJyNfo1lobOuhImEd3uQin13eXpvZ3mQgYCJa3WBeYhyaXN/eXWDh4JrdGN4Zl9oZGNkZmpYa3twamtcU0xQRF9VRkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXV1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAtKC5r76sq62xsqCqprKtoqyzsMawq62ks6+8pLScoKeioZ2Zl6imqaakpbO1npWUnpmZr6auvqCso5GRnpqZlJKWoZyXqZ2FnamsorTHs5+ppKqWlpiap56pnKCkq5Sen56gqq6opqOroaybn6CgmKSenJ+csKSZn6iTmJedkqWamKmfm5dmg5J8ZX6Pmo9jeIxsaGp6kKOra2SZl35nhYplZWloeo2hjmtojJeRondraouYop+Yc2xueoSMhnlYZV2Fgl5si4qCdltoc3d3kYCHgm54gnh/c215hHN3iIiOg3tphVhdanNkXXOIaWt8cW1jXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS42Wk82KUVZL0RPMVlCOz8uPaWfury5r6uzsKulqK2usKeurbC9saqopa2wsJ+tmKCknqKamqesnKyjpqips66elaOQoq+mtrmlrqOPjpqhmZOSm6CYmaaWe6Wsoqizw7eloqevn56VnqOfpJykqqiSnqGeoKqvqqqjqp+nm6afp6CslqGcpbGkl5yrlqGem5Oll56rmZ5+voOIcrRyhZ6FrWh3ucS4cZKho3ummJhzqoJ8y8DAu3GKo4eCnnyWmIiewL2Clp2djZzBwHuBepGMmsK/fWulsm+MgW/Ken+bd5GDjoB2eYF/eXF7gIZweIWMk3lsdpFiZV54ZF9lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2FfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWo7jDtLCvv6mplKOvqbCvraayta+qpqelsaufq5iboqCcm6qnop2roqWppaS0pJ2jk6aurLi0p6+ikpGZnaWSkaChl5ugnYemqqSrrb+/saGprqmXkp+eopmipKqjk6Chnp2srqispqOipaCkpZytqJGkm6mtqpyeqp2topaXpZaho5idf86UeXqlgXqWlptfrY9djqiAoKF8p5WadKuDgK9eZIypeqiHhZ90l5KIs2OCq4agjY2zaoSudHyWh7hhgq1Zo81ukHV723t/mXF+iJJ1f2V7iHZ2bH2Hbn2FkJF+bIGNX3Bqb2ZgX3hkXHFoamNmYFJUU1deSk9DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrcLAwLW0sLeYnpGjqqmttKumsq2trKSsprCqoKebmqaYnKKvn6GfqKejpqGfsKybnpamrq2wq6isoJSSm5+lk4+epZedqKOerqSrsKi/xrOoqbGulpKenKKXoaqqn5Whnp2cra6nqqibpqWjoaqSrLOWpaKqqp6kqKahsaKTmqeaoJqUlJGXoHCFjJh1hKiHcbB8nXKsfaCfgaWPnnergn2tf5xyrX6rh4afdpiSe3yXfqqIoYyRi5x+q3uIko6ggHqtVpzEeo9vksF9gZVtdXCMbWZ3ZYZvYXducm6IipGPg22QjmRuc3VvYGZtZF9vaGpuZmNXU1xgWlJSQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/UxseytJ+do46joqKtrravqbGnqauorqurpqKjnZqjlp+mq5+ipqCoqKKfnrCsmJuXqKivrKinqZ6XlZqkopKUoa2bnaejrqyjrLWpuc2yraaurJaVnJ2imZ+urJ2WoZmenqmwqKmomqqoo6Krm6+xoqisr6aap6yqqrKjk5ejpZqUkYSkaqR1iXqpdXqycYKliZiMcIefmoekX2BSq4R/roKbda6Cp4aGn3qZl4V7ZoCjiaSZhoGjfal/gZSGrl58qFWdopKBeqOfgHvDr8WMc6+0s7lxYqmvwnVojIyXjoFsmZFubXh3d25rZmRkcXBme2ljXVZfaVhYVExMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLWwr6qto6inqqurqaSmoJuln52mp6aknayaoquhpJ+vop6bk6qktrCuoKmbnZeVp6SRm6Gon6CmnLCmo6ixrLbIsrWprKqVkZydopmgpbSdmqGUnJ+mqquirZmrp6GhqqKzraKqs7KinKupr6+3pJSWo6eYm5J8qmyehId1q3l8sG6CpIuIn5aVnpWB0re0uMmAgbJeX5Spg6SHh6B6mJWZeKrJc5mjlKipkJOajH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI6PnJJ7cJaRfW96dHx6bVtlanJxZoFpXmFYY21cXllJTExLRURCQj1BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTBxrmtqbOurKWinbK5rKqhppuopqusqaagpqWYqqOfrqydpqGsmp+ppZ2ntaCjmJOoq7ayrJumnKCWkaatkZmcp6OgqqauoaOnqbC0wrGyqq2olImYnaWboqSupZehlZmcpaWqmq6crKalnqyjt6ygsrmwnpyvp7O0tKaVmKikm6COgp1OeJqBf596hKN8gqSEhqaenJ6UhLh7fHm5gn/MxsO2d5uhkIuffpqWl4l2n5eKpJikqH6whZyEnoSsfZmUYaVso3CPhZCBfZeEcqxgpHJxgJpgvH1SVXWOkaOWe3ySj4hzenKEfXBcbG53cmqBblpjX2huYmRdTExRU0FIR0ZJOTlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Gss7Smn6GVpq+urqmmnaammqOnobKuoqmnsqCZqKSUorWjpJaXoqq1uaSco52jk5CisZmenKaloaKvrZ2kqKK1scOxraqtqpGHkZynnaOknKWXnpiZmaWjqJmtoaykpZivpbusobe3rp6etbK5srSomZ6woqSeho/RtcO3eYeOhZGTj4CmeJSid4ugkoWlgotxq4aFtG5yaZmjnJWJn3yXmYaHkHOugqWboo2mi5OciJSQmm1wslylc5N6nGyZf3uZfm6pYaJxcX+fYnOyuGh3j5OkmH2Ki5GKd3x4jYFsaHdpeHNuf3RcZGRtbWVoYEpaV1g8SEY/VDNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krr+/vLu1npeopK22oaKZlaOpp66pq5mloZ+loaC1p6Kpp7CjlKujjqStpJ+QmpqqtLSknaacqZKUl66goJ6mpJynnLWaoKqjtavCr6mrqaKMhI+coqCmo5WZmpyYm5imo6aYqqasoaSbraa9rJW+sK2fo7Czuqy1qJypsqWpmHqnkX18sHeKgKSliJxtsm+gh617oY+DqJWagKyJha6FoJSooaKXhZ+AmZWAe5J+q4CdmpaLq3idoI+Ik5J/ea9do4F8pqdknoB8l3Rrrl2la3GFmV1gW4ygbZSQpZiBk4yVinl5gZZ+amx9Yn10bX95X2ZlcG5nZ2hCWV9bPUpTMlQ4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaV1NQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZWVVFIRklKIygovJKahKnGw7bBtJ+araCuuKWjjpuko6Cvrqmfo56drZieuaCiq6CvqpqtoJCqqaWWiZqQrrCspqCom62YmY+toqGdpaGZpJytmJ+opbaov66kqaOfjICOm5ufpp6SlJmalJmZpKOjmaeqq6KjnqmovqSXw6yro6Kss7qsr6iitLCqq5l2r36QipyFh3y6rYmYZLCMZZWtfaGPg6eWm4GtioSwhaaZpKGikISgW2xqgbNgf617e4KAsmxnbpmXi4ixW320W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqeaiZaPlJV6eI2bfGNzfGGDeHN/fGBpZnBtZmVlT1VjXEFUXj1IKD45PTQhIS0kHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE5KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vbu0wbOjnK2mpbapoIuZoJ+ds7GonqKfnbSYoLOoqquesK2eq5qUrqiijoibjq+sqaejqJmvk5qPqZqhnqWemaOipZmfo6myqLyvpaienY58i5qWoaCZkJGam5GYlqieoJinrKakpKKkqbueoManpamiq7S2ra+ooL2vrq6XgamSo66Om4CGpJeYkIGAuMO6g46dk4SnmJ2CrIqCr4mmm5qlqpF+1b3CqmKjv718fqOCg9e6t7WFk5KCnr2+hGqjgW+rhG6df3qysceDa6uwvax4d6K+u3SAlY2lm46Zj5WbeICQmXlifHpjjGd4gXtga2VramJQYltTaVxAVGBCTCk8OjUvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0sb+6sr2zop2upqWzpp2MmKW/qbawp6G/pqaxm56xnLmon62upaeUk6+sl4yDmpGupqOsoqWcqqCYi6OTpp6nm5qgqKKZnqCsrKm4raejmpeTe4eZkqabk4+RmJiPl5OomZ+XqKifqaahoqu7nqnFo6Cvo6uztauxq6K9qbCwm3R2qqS2hWWJn29nrI+Kj21vd6SQmqCBdbCalnCQjXKWp6ObmK6kcm1tbGWKeG5tgplxgHppcGlmiZaVmHFoaYWGZ3CGZF2KY2lvWV1nfnimYGJyj5JvZmSAjZOOoZeWl4+UnHyGjpR0ZYZ3Z4xqeH54ZGxjZmxiS2RYSmtZOlBkRFAnSjorIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKq7urKzqqmirp6ks6qYkr2xw8i+tKmev6uso6Cmq5+6o6StrK2ljZatqpCMhZWXrZ+lqqKfpKSgkYulkqeZqZmWo6qglpylpqevuaqrmpuTknuEl46ml46RkJiUjZeUppOel6eimrCmnaKsuaCwwqiks6assbKrr62puqWwuZeLoamltpyJlqGXhqmakJSdk6qzmZujrKGzl6OhnqGinKCkoZWrpoySk4yHkpyclJCZk5iQjpWEf6Sal5WOi5OSio+GhH5ni4B0g3Z0h4xxp218lZKUk4GBj4+PjpyToJSWlJ+BhpOLcGeOdm6Jd3V8eWlrZGRvY1VgWUBpWkdiYE5YK0U9KyYhNjQwLx8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKWWqamltriurqKwpa2foLaxkI6qxLvFurepoaWdm6WdsKijtqedqbWmp5GYrKOLiImPnKeWrKSimqien5OVo5eomqmZlKahpJCap5mhtLmnqpiakIx7gZSMoZSKlJGVkI+Sl6SOnpmonpu1o52mrLeor8Kuo7emr6+wraqrtbuisb6akqakprWikZ2mno2pn42Sn6OssJuhpLKpsJmloZ2kq56enZyXq5ySmaKblJCWqpmNmJiWkJaekYegnZWUhZKMkI2Vi4F+Zo2HdYd2eYiEdJxqh5GVlZKKfYyWkpKXkqCRmpSeg4aWhXhxlHJ4iX5xe35pbmRfcGlgW19ZbWJQYGRPWTlHRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlaSno7G0rK6jqaetoKi1qpCPnKOyu66qq6GimXqcorCkpbGplpu4pqOUmKmcjoaKiZuikK6fpJeooKGSl5mbrouqlo+omaiMmKiOnri2o6WYm42IeYGTjJuTipWRlJCNkZahi52dp52euKN/g6+1orCvdKS+o7KgeHqhrLO9lneupaCKgKp+ZFthdp+OpJ2Dl35uk7Oco6ivq6Nln6CUdHqalnCAmKiXbH6iqIplnaWbkJeYlouSm5CEnZqQlIOSh46OkomFd2uQiHaHcXyGgYBhaYmLlZOMW3aVkWdoj41yeaKWl2V3l4aAdpdogomCbnl+anBlX3Zva2toW2VjYWFvUlo9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHRklLTFRVVVldYGhnZ1hRSTxERzw5VlJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqaWpraOnraWSlqq0rrGlmammqpdzi5yvn6irp5OWuJ+gj5yknpB+iIibno2smqSVqKKejpeRnoV0ro+IpZqokZajiJu5s6egmZmLiXV2k42Wk4qTkZCUjI+Tn42anqWYm7KWgIybtZ20jJKPvaehfqeieqSwuYGOjqefhIuFj7Cpr4yJlqKZeYGLrIacnaKoqqiIlYeZd6WbeoebgZemgoF7nLJ6ioafl5mUmJaBkJaWhJmaY3mHkISNj5KLg25xkIh6gXGAgYZ/hnSHhZaSeJZok3SgmnR8mYKdmoWYfZGJgYKYaYyMhGp4enBwZ2R4bmlsaltkaWllcltdSFRMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaGZZUUg5REs8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZStxryvoJWlqLSdj4Ocq5unoqCNkL6emY2fmqGQfIWOmZeIrJ2jlqGhko6UiYaAkaiOh6Kco5OWnYaeubGnnZqTj4VwdZCJlJCKlI+Pm4uOkZ6RlZ6jlZ2siJ+0ibSarovKiKuvibeFjbCDsa+EqY2nmI2dfKiPcnt3m46mlmiVpHm0i5+epqiTmcKCf6uImKFxnoCapX2XhZWxgaF8oJOfj5iXgI6Tm4mYkot8hZOGjZSTiYNtc5KGgHtyhoGEfYV1hoKYgY/FZoCph4+iap2BnpeAmYCKi4OImG+NkoRnd3R7dmdodXBnaGteYm5sZmtYZ0dcUUwyRTQ2TWFjNyY0PERHRDo2MzY1ODs4Pj08PkJMP05JSktDUFpdXFdiXmpsXFFFPUtNQEpkWF1jZ2hnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5saqrp5qUn6KkqqKVpKm2oq9/oKacpZ6diZS8mZONoJGdj3mDlpaRiKuZnJuaooWPjHebnI6gkYiepJuVmJeGorispZmbjY1/Ym2Qi5OQjY+MjJeLj5GfjpKeoJmhqH6hp4etnaCWrpCgnp2RhoKgjayvh6SNqpqMmn6idYCYk2uBq3RNq3iHjZ2Sm6iogqqrfoShe3qnaZ5/kmxnl4aXtYiefW1gY1iDl3+Me2Rni3OZfXmWa118l25fU3GFXGBseYNgWWWCfoSBmHGnqmuDo25ypXCfgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbXRxampuXmpvbGtoV2hOXVhFOUA0R0ReazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpbXV9XXl9idmBNRTpNT01UYlxbZmdpaWJiZGFkZGJhYmBiZGNhYmlrZGJkZGdkYmdlYWNomJadoLmgqqOmrJGhtryrr6KZl5+hpayrn5yttKKnkaCfn6abmY2YtJmQi56MlYt1gZSRjIqmlpaYn55/k4WGrKOHnJGKmKmYmZqRh6WwpqKVmYiJgGluiIeLjo6Ji4yRi4+RoYyTnZ+boqV/k4GPo6GUoHeclpCng6KogIaqrYWleYt9hJp9onBykoeWe56MeW2Hm4uZkZypm4+HnXyConN2pmaefnekXph7fZJzom6Yt7S6c5KHgYC2qGSBxrh7cJW2jHGAm6RjdKyrYH1qnbN+bn2Hg4+Ci5dxgKNsc6RznoJ9o16cmbOWb3uXnrN0cluesoJpYm9zdXFoblhrbHJyZFxoXWFLRD1ENVFBWnEyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWVhgYHxkSUM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi2ra6gmqKco6Okq5uasayrkpegmKCkmZqUnqubi4iReIuFcICWjYmPoZCTlJ2XfZGKjqigh5iPipKik5uajIqop6Sej5aHhH5re4Z+fY+Ng4uPj4mOk5+ClpygnaCfi4l3nJiijaByoouIqYicp5GYqat/rox9eqCZeaOTeIBzl4iMnH2Wn4abjpmcp4ejZKF9iZaQm4xsnmiajW6amXp/iqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z2iYqAnWiadYeTkpiOf55tmZBqpplcqH53u2p9qVqOhF2zZ1xucXh3a2lbcGp5eGFeZFZhQVBFTzdWQlJuNEpaWV5OWkRAMTUxOzs3SD86Q0dVP1hSWF0+RGJdVmBRYWN9akVCOU5bXllkZlhmZ21tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCsnaabm6efnayZnbCnq52Xopmhn5mWlqCjmYaJjWmIgHF7l4iLlpeEkpWYj3qKhJajnImVkIaLnZGcm4iPqKKfmoyRioCAaYGGeX+WjHuIjY6HjpWaf5OhnqCik5hyaJ+KoI+McJKMgqmImaCkqqGofbCtpKK4l3ajs6Kjf4iUeJ16qpp+oo+enJiJmHKhfYWNsLV9a5qRoXh+mLSjo6uohJh7mnycmn5zqlpdb3uXi3ieYkx/e3uFZHqYQk2fWaJqcnyOboGKhJl1m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B9fW5mX2todntiY19QXVZcVFZAWUVRZ0VSVlxhWF9JRD1COEBBOklFOExFWEFWUVpWREZhXFpgS2BtfXJFQzxVXmJaZWpWaGhtb2JmZl5hYFxdXmBoYl9lY3ZsXmVnZmxkZWxoaGtplJ2Bsa6ZhFNfoae0urOzqZqii5upnJynkqCro6Cnj56dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGTlohygImSoJtykpCBiJmUn5qEjqibmZWLiop8g2yEhXGBoYx4hY2Ih5GXlHySo6Ceo4iuhn21hI+enXumlnqpgpaekYuinX2naHdtfplzoHNxfJ2FmG+Tgq59o4Onn5uBpHBeqWh1o2NvpWGc0498epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKnvH93g21/v6aqtF6cb35yl2+Bc6JyXaNndKZgaKZsmtOYeoKbbnd5l2ubeXaXcmyppWdfZHlwf4NrZ2ZjbnZ3Zl9hUVplUFFhSFdJVF9XU1tkaltlUUZDS0xKS0JKRDhQQFBNWFNYT1JRYGVlaVJkeHl3SkZFY11lWmhqU2loam9jamZgY19cXV1faGJhaGV7ZF5kZ2RrZGpsZmhsaJibf7CsVFxLfqmvsrWws6OcmISXpqCgo4ykp5+XqImZl5iTmZORoJeNiIV7cH2EaH2PgpOagXeRjo6JcH+Gj5OSbJiUfImRkqOVg46qmpOSi4WJeYN2h4BugZ6Gd4CShYeYoZZ5k6KjmqCJs6Gitot6rKekrqVwqYCbkYaBnJJ8pICimYaYcZ6Eoq2uiZeLgIykjZaDrqKUdrW2tcmhdJSLgp5hnZepbXmVh5+adaGHd6B9kJaKgW9MZqOScJqIc6V7eXRig4JsfqBscmRgnHJ/dJdqe2mztbTGpnOYfnqdapuaq3SCmm1zd5dpmXl0mHFQRH2zXmp1aniHZmtnYnR0cG1WXVNYZ09SaElVTFhSVl1na25WZ1dNSkFKTUpISk5BUUpQZGNpbWV0cnN+eHtudYl7e1RRTmxeaFtraVJqaGlsZ21mY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinImvp4VmP5Shsqyvr7Wioo9/lqeioaOLpKacm6WBmpeWjZeQj5uSjYiDeWp5hmWDjH6Wn3l1j4iMgWmEhZKDjIWdjXqMipWlkoKXqZeMkYuAiXl/fIt5cI+ghnmBlIaIlp+Uf5Slp5yWloRnbnicbKJkfHGleJyYcGingpiMfKV6oJaDlnKfdoCJlJWPuW6QiqJifZmilolucmmqa3WgbW+mYJtpi5BploealXWigH2aX4uFjHVviGJooWWef2mbdXBkZ4iCbnOiWl9bZKFuXYmMb3t/c3JkpW54omRmp2iYcouYbqFvUoiPbqBeZKdUi11UmG1tcmpxgW1waGt4c2tvUVhWVWVZU21JWE9cSFhpaHNqWWtWUVJFVlxMWFJhVWhqXnd1enxwfHxygnt/c3aNgIN2XlFzYWdicGdQamhoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqrGxpp+Lf5aqnJ2ki6GhmaGhgJWYk42aj4uXkI2Ke4ZxgIhoi4p8l5pzdIl9kHtlg4eViomWmYJ8iIaWppCBoquQhZCKgYp9f3+Oc2mPpYR9hZOMh5ifjYeSqqaeiaZ4lpx+pYmWjLKZnpGDr5efpXmXiHmpdKWPhJpupaKMkoSMg7xufaWvgoaGh5SXnaB9pnpxqJSglmeefm+sY5aKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm5un56RlWJ/q4uqd4B/jaefd599haSVnaBpmod1q2aerYy2c3a+jKSTWYOmjathdXFzb3t0cWJqfm5obFNWWlVgYFxqTFxSXUlebG12YFtxWVtgWmdzZW5vcWNxdGB3en55cnmDcoN+gXt7jIGCgHZieGRjbnNkUmxnaG9tcmlmaWFfXlxhamJsbHpvXFxiaWFtaXdtZ2xuYpWmqp2BgJ6klqqqnqinrqOZiIGWqpmdo4mapJyonYSLmo+FnJGFko2LjXSFeoiDb42EfZeTc3WGcpGDbX+LkoaGlI99e4KFl6WNf6WljYCNiYSUdYKHkm9si6iAgouTjYicnomMk6qjoJCAdJSXiH6BeZSvpH+CnHGPhnmSjISAe3KnjHF9fXqXlpuEjXh7fn6IlJWTineRmaChhHt9iWuMhVt5eXN5cGlufpKJcX90gY+Uk3GFg4JljX9fgYCMeHZ0lHVve29uiW6Ehl93aXiOZoKCho6qnH50fZdqiYhvf3V8hHVtbGaMc3d7l3eEW2pYeY9obndxcG93eG9dbIZtaWdWWl9XXGRrZFVhVV5RX3B3eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV6gXV/gH+BeYuFgn17bX9sZHluXlduZ2h1a3hqaWlkXGBaY2llbHB1blpbYmtka2t5bWhsb2GOlbqpp4uhopumpJmknauioIODlqqRnaCImaaaqJiDgZuLfpaUh46KiI1ygnyPfX6PhHqXjnRyhHCVhXt9kouGhpCFeH6AhpijjHunoYuFj4+ElYKGjpd3cYSqhY2RnI+Hnp6Hi5qooKCrg4mOlZt/foqXraiQk6eQeHGek4N7k29+qYVwfZVxam98gZ+Lf5KOjGhtXYOMjJycn45zlYuIcXRrgnZ0gFlyboaQgX1+i2ldaWN6hYOIgF9peHucfIONg3aBh4NpeYyIa2Jxc4N3X3KNgomQp5WGZo2Pg253i4NvhIx4bmRmY3mCepVaXGlmbnZbenh3dG1zcoJmXG2Ka2tiWlldWVhrcVteYFleXWZzfXtzb3Rjamppe3xyend0ZG10aGx7fnV6fHt5eX+Af3CGioR7fXN+eXJ/aFRccWlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VubGdyeW9oam1gjIyrsaGQo6Gan56Ynpmpo6F9gparjJ6Uh5qhkKSUf3uYhHySmYiIhoaKcn2Ai3aFi4GElopyb4BymIaEfpKDhIaKgXqAhIuan4+CpqCHeI2XiJWLi5yXhYN6rIGQl5mTiZ6dh4ihq5+ioqOLiJObnaOZlqqiqKehk5yJmJB8eY+OhKh+f5KRkpOcsaWalJ2QjrKTmISmjIyWnKCJkZuCiZKKa3yOdndlgoaQinyJnYSHi4+HiICFhJB3fHt1m6OJiIufi4aVf36NgoF2cXSGhX94iYeKkaaRhIaOiIOMkIt7homHjoB1a4GDe3mZaXJoYHSKcH16dnVvd3SBXV1vh2huX19aW1xSZ3FVY1tbYWxodHt8cm5wZGppaH97bXh+cGhvb2xmgHtygYB3f31/hHttg4yGfHp4fH56g3hOZHZqc25xe2VrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2InrqflqKhmJWZmJSYpKCde3+YqY2ejIWfnIqdlnx4lIJ7jpmJhoOEhm14gYBygId+iJOEbWt+epeHhIOQfoCGhIZ9h4ONm52RhqmegnGKj4WSkYuckX2NeqmDjJGXlY6bloaGm6agopqdhoOSmpmYkJqmoKaenpCWgZKLd32IjoSle3yPkJCFmKqgnJOcj42qjpKAno2JlJqfg46XfoaOgm94hnF1YX6Ej4Z0i5eAgo6ChoR+hYSUbnl2dZSjjI6Gm4WFjnWAi319c3N8iYR7eYyPhJOnj4aEj4KDiomJdYWGh4l7bmp9f3ttaGtsZ155fmd8e3Z0dXV6d1xgcH1tdGBjWlteUWZtU2VaXWFqaXV5fnBsbGNqameAf2tyf2tqc254boR5boaAdoKAfYV2cYKNiH57enyAe4KLYGl7a3VoaYNlamNgaVtjdWhvYnVta1RicXllb3l6cmVqbW2Lip+4mqGkn5ORlpeLmp+enXt3nKWQm4mGpJSKmJl4eY2FfImRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hoSHfI+Aj5ubkIemnH9wi4qLkoagoYqFjHynj4aOkpeTlpJ3jaOgoZ2Wmn+BkJmYk4yaoqGjmpiRm36OhXqBhI6HoH9+jIyOfJekoKCSmZCPpo2QgZuRiZOXnH6SkX2GjYB1dIFwdmB9gI6GcYqVfIeKcYx+goWFjmh4cnmNmZKQgJd+iItzgoh9fXJ6fIyFe3qRjYOWpZOLhZF8hYaHhXWBgoWGeWRxen54eXBsaWZefXNofHV1c3xyf2peYHR2cHdkY1hdXlJqaFRkWF5gZ2p2eIFxZmtjbGdlf4BqbX1nbXBqfXeGemuLgXKBgX2BdHaCjYZ/fHqAgX1/j2lyg250aWKIaWxiX3FVdG9tbmB4aGxXanR2YnV6e3Fia295iY2fs5KlpZ2OkJiPhp2gmpx8daOfjZd/jKGKiJqWeHuGh36DiX6IgoF/cH56dHWChX6JkHdnY32Gl4uCio14fYCNg3mWgJWXlY2Vn5p9b4uBkJOGpZuHjImDpZODkYqWl5KRdpGdoaGYlJh6f46Xlo6WmpyknZmTlJt6kIaEeYWWjZ19gYqNi3KXop6gkpiOj6KMjIOXmIOTlpp/l4x7iIyAdnF9bXpjgHyLhXCGk3+PgWuHgoF/iYRmdm99iJOZjn6UeIyJfYCIfXxygHmKhnqEkYqLmKKWgYOMd4iEgoF2e4CHg3Rfd3d8c313ZmtjYH5panZzdHV9cXxjY2FzbnVybWFZX11aa2RSYldfYGhrdXmGcGJqY2xmaHyDa2h0aGxvaH98gXhtj4ZxgIKCf3R8g4yBgH56goN+fJBtdYl0dG1limxqYmN1VoNpcG5geGdsYWp2cGZ5e3lxX3FshYWQna6Yp6iejo2Xh4Wfk5aYfXaom4mYeZaci4yYj3h7gIt9fIN7gIKBeHN4eXN9gIN/iIqAZF59i5WIfoWIdH1+in9+mISWk5aMo6CXfnGHe5OQiqaPjI6Kkp+QgpCPlJeRioGPmKCakpCSdICNkZOJnJ2eppiYjpWWdI6Pi22GmI+ZeoeIkIlvl52aopOUioyfjIaCkpx/k5KWh5mIe4mJgXlxeWp1bHt/i35thZGCk3dvgoN9fouAZXNqfYGXmIV/jnSRiYR6iH52eIF+h4F9g42FjZSkkHmFgnSJh31/cnR/hYFsYHp0eXB8b2FuYmR7YW5vdnN3d3NzYXZgb2t1bm9dW15dXWpdT11XYmFobXN6iWtfaWVqY2h3iG1mbGhpbGeAfHp3b4+Hc4CDhH10gYaJeoN9eoGEfX2OcnmLeXhubIdraF9pcmOHaHFvZXZnbWxhemhrfHt4cGF3bYuBmZqqoaSpnoqKkYaKnoqVl312rJeMlnyek5GWlIh2fXuKfHuAdnd/gG90c3pvhX2BgIl+fGFcfo+RhoCEhHN6gIZ6j5GHkZGbkqSak4F9gHyNiZGjiI2KjZeZjIWRmJOVjomJjJOdk5CMjW6EkI6RiJ6ZoaCXlomXkW+KmoVnhpmOlHqJhZCKcJaak6GSkoiLmYyCgJGefZKPk4yaj3uKhIZzc3VrcW51fIt0boaQjZFxdIB8gYKIfGVxbXp+m5R+hYl0kYuBdIl6b4F/goh9hYyKhY2WqI17iH1+i4V3fnBufoOBYmd3c3RuemJdb2BqdF5wanp4eGxycGV5XW1sc21zWFpdX2FqWk9XV2RjZnFxf4hlXWloZ2JncY1uZGlnZGlogHp3dW+OhHOBgYN7dYKIhXiFfHeDhXqAind/i3t7cnmDamtfcGhzf2txbm1xZ29rZXtibn95dnBrdneJf6OYoqihp5uIjIqBj5yGk5x0gKmUkY2GoIyVk5B/c3t2hHd4f3Jze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYB/f6CGj4qRnJegk5Z3iX6AjIecnYmPhpKXlYOIlJmPlouLjY6NnYqOkIRuiYuPkYqclqCbmJWGmIhrhaSEZ4edipF+i4SLgXeTmJGdkZCIiZWOf36PmHyRjZCOmpJ9i4CCbnZva21vcHuGaXODjpeKcXeAdIKIgnlndG92gpuPfYqFepWSeneKdXGKfIeNe4uGhImPnKOIfIR2gYuAeHhuan+AflxxcnFvb3haXW9gb2peb2l8enBtbWptd2Bwb2pxbVlYYGFhbVdRU1llZmJ1cISCYl1rbWRjZmuSbWBmZl9na4F1cXJwi4B0f4KAeHaAi4B5hn93h4Z2g4V8hoyAe3aKf2pxYnxihXxvcGx0amhubHZ3X3F+eXt0dXN/gn6llZqtn6eWhYyDfpaUg4+edImfk5KFipqMlY2LenJ3dIJvcoVzcXWIbG5sdW2Id4N9f21uVVGBq5SHgnmAdnKCeYKggpGBkpGXm5GZd5B6gouRo5qTjoiVmJGDhpaZi5OLiI+PiJ6FkIp8c4uFiI+InJmem5aUgJR/aYadiWiHoIiShJGDiXGDkZePmo2PjIuPjXd7kpB7joyNkpeNfIh8gGt2aW1rbGx6f2J5fY6VgXZ6gXeDjHx5aHVtdYiWjH+JhnuUkXJ6hXF4jnuLjXuJfoONkZ+ehX19eIGLfXdwaGuAgHded29ta3FyVl1uYXFhX21ueXBncGZmdHVocWthd2VdVmVgYHJTUE5bZWRdeHCIfF5caHFiYmVmkWlfZ2RbaHB+b2txc4p9dn2FgXR1f4x5e4aAeIiDc4aFfoyMhHx5lXhmcWqDX4d+b29remBpbXR/dF90fHiGd3NzhXx5oZCasZyljoKKf4KZiICLnX6KmJKOhIiXjo6OhHZ0dnOAcG+Fc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfG90g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYmcf46BeHqMf4iMipubnJqVk3mNd2mJkohtiaSFk4iYg4ZjjJGYjZSJlouNiYtwepWJfI6JipKRiXqFfH5tfGVyb2treXlbgHmPjoF6fn5/ho56emh0bHWMkIqDhoV9loxsfn9vgYx/jYh+hHuDkZabm4t8d3iDj3hzbGVwf4JraXRvZ2hzbVNebmRwWl9rcXhma2tiZ3hzb3FjX3dgYFZrX152T01LYGZjXXlxinRcW2V2YGFlZY5jYGZiWGlyc21rcXaLfHR5hoJ1dn6Lc3+Gf3uJf3KJh4GRioh9fpl2ZXNufWWIf29wa4Baa255eXNgdnp7jXZyd4p3eZ+Mm6+boJCChXiIlH58iZyHhJ6QjoWMl4STjoeBdHdweXBuhG9tbn5yY2R4cHxuenxqaGxjpJrB3K7voXNrdYN1hKGEkW6Vj5SflJqBkXCFi6OXiY6VipCdlYOAlI+EiI+AkoqKl36He3V/iXiGhY6bmpeZjo91indwh4mMfoylhZOKnYWGXouUl4mOiI6LioSJbHyXgn2IhYmRj4Z2hX5+a31jeHRpbXhzV4h6kYeFeX5/gIWMfnlmdGuBi4+LhIOAjJeGbIJ2bomRg5GFf4J7gZGXk5mQdHR4h4x1c3FmdHmBYXNtb2FodWZSYHBna1VebXN5YHJjYGl9cXJuWmJyYWJXblpcd01NTGNmYV52c4ptW1xkeF5gZGaEX2NjXllpcmtua3J3i31zd4SBeHd8iHGDhH19iHt0i4iIlYeMf3+Yc2h1cXltjHtudHCAV3B5dnlxZHZ4hoxpdoCKcoCdiJmnnKOShHxwjJR4eYqdg4SfjY58lY2AmYeEe3J3cHNqb4FraWx8dF5geHZ7cHR6Z2BlfOvatcnD3IhzbHOAdoqaiIxpl4+OnJSSgYhwhYigjoSKlYqMl5N8jZKIgoiPepGLho+CgHd4g4Ryh4KTm5aTmIaMdYd/cYaCioiao4SVjZ+EiWGDlY+FiIaJjIeAh2h9lH99g4SJjo2CcYZ+f3J3Z3ZyaHN3a1qMfZKChXyAg4CEioJ2YnRtioKRjIN/f5ORfW6CbHmHkIeThH2CfoGTlJGXiW5yeoyFdGxwanF3f15zaG5caXVfUmRxaGZTX292dF9vYF1ognFyaldnaGNpWG1XW3VMSkxlZl5icnOFaFtcZXleXmRnemFkX11Za25lbmp0d4p+c3KBfnp2eodzhYN8f4d3doqFj5iCjYJ7k3Zsd3Z5eJN1bnh6fVh5hXGAb2d4dpGCZHaGhXGKloaZoZuiioZzb5KLcnaOm32JmYiJe59/hJl/gXhxdG5vZHJ+aGZsd3dbX3h7enFxf2lhZ2F/1baOkKZ4bnF3e3GSkIyGapiNiJuRi4Z7aIeLmYaBkpCGhpeNe4yMgICJjXuQjX6JhXp1e4N7cYaAlZmOkpOBiXWEh3eEgIuTnqCHlpCffohhf5OHg4eDiY1/f4JmfZGAfn+CjI+Qfm2DfIJ0a213dXN2dWtjjYGOf4V+fIR/hIh/cGBzcoZ8kI6DfX+SiXpxg2Z7hIuHjYR8hX+BlI+Rk4RucHmMfnRsbmlqeXxhZ2lpWGt1WlJpcmliUGJyeGxiZV5aaoNuc2JbZ19kbV9uVFpvTkhOZmRcZ25xgGtaW2NzX1xjbHdkZV1dWmxsYm1qc3aGf3Fvf3x8dHiFeIWDfICHdXmJgZKVfImGdomBcHh5e4STb217gHZeg390gW1penOUc2dyiH1ykpGEmp+boIaGdXWUfm12k5d9h5CDio2ZfIyadn52cW9samF0fGdiaXV5WmB3e3ltcX5lY2hoV52PXnFylrzEhHZxlIiPfXGWi4abkoyHcmqIj5aAe5SMgYSajHyKhXx7iYt/lIh1iYZ2d32BcnWGgZ6UhZSPg4NygIl1hXyKmZ6Zh5WOnICIZn2Tgn6Eg4mJcoF9Zn6MfHl/f4eLj31pgH2DdmZveXhzdnNsa46FioGKf3iCgIWDf2tfcnl7fo6LhnyCj4F+coFpeYSIjIaFeYR9gpiMkIx9bm17iX12c25nZnt1YltwYlducVNTbnNoYU5mdHhlYF5dWW+Ab3NZZWFeam5gcE9Za1FEU2dgWmtubXxuWVtebWNaYm93ZGdcXWBraWNsanN2gYNwbX98f3R1g3qDgnyChXZ+iIGWkHiEi3SBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0bJONhZ+YoJmEiG59jHZqeJiOfoCJgpSXiXmPlm96c3BsaWRgc3poX2Vxelpgcnx5Z3F6YWVlj7Gyd0piWqTZ0JZxe5CKj3d9k4qEmJGMhW5rhZKSenmShoGEmIp8hn94d4mKhJaAb4uIcXV+emp5hYOlkISSjIN/b3+DdoR5hpuZlYyUkZSEiHB7koJ8goOIg26Bd2iAhHhyf4CDiod8ZX1+hHZjcHOAaHhwb3WZjYaDinx2eICEeYFrXHF/c4KJhop+hol7iXKBbnGFh4+FhXOFeoKZjY2EeG5vfoR/dnlkZ2l7cF5YdlpYcGxOV3FzZ2BLbHZ0YF1cWll0fXNvV2ddZmpxYG9OV2hSP1lmXlpvamd6cVpaWWtlWmNxeV9oXF5lbGhla2lxd3+Hbmx/foB1b4J7gIJ+gn92gYWIl4pxgo1xe4Z8enmEk4x1anp/a29+dH99b3J7epNwb4F/eGeSi4OhmZySgoVmhoNvZ3mViH1+hIGYiYF8jYxpeHJra2ZfYW95bV9ib3hcZGuCemFxdl9lZdTqvYsyOj6Ljn9xeIWIjo12gpWMfpKNjH9tbIWMi3V9j3+FgZWIfIJ4bnaHhIOXd26IhWx1e3RmeYKDp4uCjouEfW6AdXeFeoedkY2RkpOMi4Z/e5KGd3+DjIJrf3JogH54bXx8gYqDd2F5hIFxZHFofm11cXWBm4uAf4WAc3V+gXOBb1xuf3V5i4OLe4eAfIh4enFsiYSQhItyg3qAlouKf3Rta3eAgHR0XGhndm9YVntSWXBkTFpycmVbSXB4b1xbW1lddH50aFliW2dlbmNpTVdmUT1eZVxddWZgdXBaWVRvZFlkcXlaaF1fZm1naWtpcHd9jmxpgoR+eW6AfHyBf4J6dYKBjZOEcICLbnd9gHt7iJKJf2h7fWpze3KGe3N3fn+MeniEfXxrjI2Em52WjICAbI19a2h+jYt6fn6Dk4J+fYqIa3VxZ2hiW2Jnc29fYWtzYGhwiHpic3ReY2SboI9uXDVar7V0aYCIfJKGdoWVhXOOiol2cGyFgoZ0eYl4iXyTiHp+cmd1iX5+mG9xhn5odnluZnmHhKSHgIaMiX5uf3aAgn6NmoiClJGYiYuEiXyPiHB7fYR7aH5sa4B7eml6doGHgHJgd4F+cWRyZnSCbXV7hpWRgXyCgW93en11fmxZcIB3dYyChniIdoKJenhzboqBkIGGc399f5OIiXpubWpugoF0bVxnZHJwUVp6TVtvXE9ccm9kVUtzeGlXWVpaYXGAdGBdXWBmZGhpZk5aaE1AYGNbYHZhXXVtWFdTdGFaZG9yV2peYmhrZ21saXB3fJJsaYSJfHxwfn57gX+CeneAf4qLg3F7iG9xd4N/e4mNj4Nqfnttd3h2ind9eICCh3+Dfn56bYSMiJijjYSDenWLeGtsg4eQeH16gZGAgH6Kg3BycWNmXllmX29vX2BncGZqb4l0YXRvW2FkanZ7gL+cpqTIuHGFg3KSfHiGkoJzkIuHcXJvg3qCc3WHdIh3lIh5eXBjd4d6gJNpcoR2Z3d1Y2p8goidgX9/jo99c4B0hXqBkpCDeZaOlY+Igoh7iIhreHl+dGd6aGx/eXNpenaAg31oYHeHfWprdGd6gGl2gYyRlH56fn5wfHd8dH5iVnh+c3OKhIJ9g3GHind4cXCEgo1/fnl+fXaOhYN2aXFpbYiBcG9dZ2FxbUpldUtdbVVUWnNuYlFPc3hgUlhYXWFvgnNbYVxoZWVja2RRW3BJQ2NgW2NwXl14aFVWVXdeW2VuaFZrXmFpZ2VubmhwdnqSbmmIjHh9cnt+eYKBgXx2fYOIhoNwd4RybXeDgn2Ji5N/cIB7d3l6gYx0g3h/gYGChHqAdW9+ioubnoh9hXp3hXtndIWMj3l+f3uIhYN2j4BncG5fZFtYZVltcmFgYHBsa2iJbmF0aVleZG6Ad6naqseGh7JxiXdvjHV7ho1/epKJf3RzdH53f29xf22EdJSGeHVrYHqCeYmPZnGEcGd2blttfICQk3+AeZGSfXh7boh3gZKNhXSWipGOh4WFe3+EbHR2fm1ndmVte3Vtand2f398YWJ4hXlodXVifXtndYaOjZV7dIB2cYB7fW1/WVd1f3B1hYd/gXlsiYZ0eWx1gISEfnt9eXtzi4F9c2d0ZW6Lg2tzWmledGRHbW1MWmFXVlZ3bWJQUnR2V1BWWF5hcYRvXGBjbWRkXm9jVV5yRkJlX11maF1bemJRVVx1W1pna2FWal9gbmVma3FocHV4jnRrjo11fnZ4fXeBg4F7c32DiIeDb3KAdHF1foWBiY2Ke3d/d4N7fIWHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN4Xn2FmIt4hoN0hYaEd4l7Ym5tW2FaW2FWaXNjYFtnbm9mh3FhcWZXXGNrf3zKzoe5oWptbYpscYRxfIOJfnqQhHl4c3l1dXxqbHVjhHWSgndvZl59gnqLimVygmtqcWNYbXqFm4iCgXOWk3Z+fG+KcYKLjYhymI6RiYWLg3t4fXFxb3xmaHFibXhxamtxeH18el1leYB3aXZ4ZoJ3Z3SHjI6Ue3GHam9+gHlufF1Zc39udIGLfIJvb4p/cXZod3+BgIF3fXF7dYd9enJmc2Fui4FqcldqXnZbSG1qTVZUXlNVe2thT1R1clBRVFdeYnSFaV1ga2pmY1luYVlkcEdAZ1xgZl9cVXpdT1VkcFpbamhdV2hgXnJma2dxZ3Byd4Z4bpWKdH96d354g4d/dXJ/hoWOg3Bwe3h2dXqGhYaMhXp8f3SLfn2GhISHf35+fYd/fHh2eXiRk59/jHyLbXV/eGSChpWFc5GKb4WFgXqDdGNuallfWl1dVGdyZGBYZHFyZoFzYmtlV1tgan94vq57oLZuYnOGaHN7cXmBhHp9i353d3J2b3t2ZWpuYId1joFzamJef3h5i4RmcX9oa2taVm93iaOBhH9xmZJxgHl2hG6Bg5OJc5WIjYiEiYV9eHRybmh4YGptYG12amdqa3l3enZaZ318eGVyfm6EdGV1hY2Gln5vjGdreoN1bXRiXXF9bHV9jHuBZnWHfW5xaHV/eH5/c31se3uCe3hvZWxibol9a21WaV92VUppak9RTmhNWHtoYU5VdWpMUFRVX2Z1g2ZeYHBoZ2FXaV1cbGhKRGpZYWRXWVR4WU5WbWpZXWtkXFllY150ZmxkcWdyb3WBeHCZhXZ/fnd/fIWHfXVzgoiAlYNuc3l7enNyhYaIiIN4gX11j358hIqOhIKEe36Lg3t3fHd3mp2XeoqChml2fXtsg4SSf3GOgXCFgn6Bf3BmbGdXXVpcW1NkcGReV2JydWl1cGVlYldcXGl/cG9ygHOJZGR4fml0dXRygYN3gIN5dnN1bWt6cWJna2eGdI2DbmZdX31we4l/aW14Z2pkVVdyb42mfIR7dpaQdHxzfXxufHyShneZfIiGg4aDfXRwcWxndFxsaF5sdGRnZml6b3tyWWeAdnVocIB4gnZid4WLfJSAboxqbXuCcWZzZWFuemdzeIp8fmJ2g3Zqa3F1e3F6enR9Zn5/gHl3bmNmYm6GfGxqVWlib1JKaGpPS05vR157ZmFNVXRjSk5TV2Fqdn5lXWdzaWVgVmNXY3BdTEtqWGNhVVRUc1ZMWHVkWl5rYFxaY2VfdmdtYnBpc25yf3V0moF3f4B3f3+GhHp8dIKEfpeFbnJ0fHp0cYSFj4GAeYt1dJB/fIGVjoCFhH1+jIZ7foB2e6OlinmIhoRrdXx6dYOBi3puhHN5hH2Bg3VuamhlVl1bWlpTYm1kW1hhc3tpaG1pYGJXX1tqgGlrcIBna2BoeXhqc3R0boSAen98dXVuemhqeWpfZW5ogXaQhGdlWGJ3an6He29pcGdmXVVYb2eOqHeBenyRjnl1cH9wc3Z6j4B4lXWGg4CFiHZqcXVnaG5bbGRdbXJfZ2FqeGh7bVtugnJ0am+Afnl4YXeFhHiPhXOIcm95gHJjcWlccXhkcnSJfHlic4BwZ2p5dHFseHh1eGSDe395d3FkZGNufH1ra1VoYWVSSmtnT0dRa0VheGdhTVNyXUpNVFpla3Z6ZV9tcWlkXVZgVm5uV0tTaFdlXlhOVWxUSlx5X1tfa11dW2NlYHlobGBvb3Vub3h1eph9d4CBeoCAh4Z6eHmCfoGThHF0dH95dnSEiJF9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSrn396iIiDa3KBeXWAf4F0boZufIBzioBqb21kZFhfWllaVGFqZ1taXnSCaV5tbFxhVlxcbIFlcXR9aWlca3Z1Z3N2cm2Fe318eHVybHlnaXhmXWVyaHp3k4FjY1RlcGeChXd3Z2hqYFdWWWdjj6dufneAi497cHF+aHpveo18d49yhH1/f4ZuZHVyZGhoXGthXG9vXGdfbXVkemhddIBvcmtxe311dmJ0hYt7iIeBgHhydX91YXBtW3J0Y3FzhX11ZXKAbGFse29qaXt6dXJmhXZ7e3ZxZWJlbXN+aWxUZ11cVEtyYlBGVmFHYndnYUtUb1dKTFhYZ2t1emRlbnFmZFpXXVh2ZlVKXGNXZ1hZSVdlUEhieFpdX2xbXlxhY15+aWpfbnR4bm9udoOXeXKBgHx/iYyGfnV1hnmHjH1zdXWCeXp6goyOfX6EiWlzloF6ip19foV6gXp/fIaIc3GPrYx7e4ePfWVxh3lzfHt1cm6FbHt+bI96YnBvYmVdZVZZWVZjZmtfXVxyhWhYcG5bXldaXGx7YnB3dm1iWmxzc2d0dXBshHh+f3h3bm50ZGl0ZVtndGZ2dpJ5X11SZmZqg4J0fmJjaVxUWF5iY4+kaHh0g4aReG1ve2l4bnyFe3WJc4B4fHh/aGR2bGBmYF5qX1xza1llXW9vYnplW3d8a25ub3d4c3Rkc4OSfoeDiXt2cHJ+c2J4ZFxwcGJxcoJ9dGdygGVebnZpZGZ5fHVub4J1dH10cmJfZm5vfWRpU2dYV1NNd19RSllYSGJ1ZGFJVG1TSk1aV2lscXtibGxzY2JaWlthd1xTTGNdWGlTV0hZYE1GaXVYXmBsW1tfYmJchGlnYW54eWxvanaBkHhtg36AgZOIhIF2c4h0jIZzcXd1gnd8fX6MkIB+k35wd5WDfJmSeYCAeHp+gHSIg3RwmaJ7en+JlHhkdYd4c3h1a3Nufmt4fHCRcl5wb2BnYmxUW1pXaGNtZlxbcYllU3JuW1pYWGBsdmNpdWppXlltc3Bsc3NzaYR8fn57dm9ubGRpcWNba3JkdHaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEkXRsbHtub3B7fHxxgXd/c3p6emNldWhdYlpgZ1tedmhXYl1vaGF3YFt7dmlqcm53c3J1aHGClYOGfYN2c2pxfW5md1hdbG5jcnOBenRnb35bYHBxYV9qcX1sbHV+c3F4a3BhXGVsbHphZ1NmVFZRUHVbUU9YUUhjdGJgRlVrUElQWlVra2p8ZW1ucWBbWlhZbHFXU09mV1doU1RGWVxOSHJ1WF9jbWNYYGBhXYtqY2RteXhrb2l1eYZ7a4N9f4SafIKEeXyHbo+GcW93en10goJ8i4+Cgpd0d4KThYGfiXWBgIF0f4Jxh4J1b6KXc3uGi4Z7ZXeKbm16bmZ3cHprc3ZyjGtedG5hZ2VrUl1bVmdhbGtaXHCMZE9vbl1WWFVnanRnYnRlZV1ZbXRtb3V0eGqGfH97h3aPc2Rka25hXW5tY3N4h2taVFZjZHh9fXGGXWNfY1RaYFlilZVjbnCDhYp0a2h8cGZzd3N8bHp0dW96fnVeZXJjW15WYWRYYXRlVV9gbWRhcV1dfnBoaXNxc3B0dmtthJOBiHqEcXNnb35xc29UXGdrZnF0gXdzY2x2VWJya1peb2Z9ZW13fXNzc2ttYFpkamp3XmZUZFRVUFRtV1FWU09HZHNfYUVYaU9IV1RWbWhkfGlrd2phV11VW3RkU1JXaFFZZVRTSFpaUE14dlpfZWxpWWJgXl6ObmFma3l1bm9odnZ/f2yDgH2Hl3uAh4GJfmuTiHJndIB7dYCCfYiOf4uTcnyKkYWHn4Z7f4aMc4GGc36Cdm6ljHKBjYt2d216jGBke3BmeHJ4bG1xdoJnZHtsY2ZnaFNfXlVnX2xuW15tjWhOaW1gVFZTb2dzbGZ4ZGRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVxeX5nWlZYYGx4fHtwhF9iXmdXWF9XZJuIYmtwgYd9eGxreW5cd3Fse2p2c25ve4ByWGltXlldVWJjV2RwY1NeYWhhYmxaYH5rZmtzdW5td3ZsaYWMf4l5h21xZnF9bnNuY1phaWlvdIJ0c19pbFNlcWRVYm5iemNxd3t2a3Bta2BZYWdodFxlVWFVUk5YZVJPXE9PSGRwXWNGWWlNSV9LWG1kX3hobn1jX1RfVF11XFRTYGZOXWFUU0pcWVBZdHVdX2VsaFhjYVtejXFjZ2p4cXNuZ3Z0eoNygoN6iI5+fImHjXlukIp0bHOCdH9/h4WGkoSVj3l+jI+HkZuEgHyMhXOAgXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2Ojo6Njo6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjI2MjI2Mjo6Ojo6OjY6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCTqWvra2trrFhQERERERFOC4vLy8vK0iFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTNBqba0tLS0uFkwNTU1NTcnHB0dHR0YOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fX59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZqSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaPkJCQkJCRiYWFhYWFhYSDg4OCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk5CKkY2Nj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyLi4yMjIyOjo6Ojo6Ojo6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx9fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoeJh4eMh4qQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCPhoqHho6GjI+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+Jh4iHjIiJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aHh4aIhomPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH1+fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2KioyJjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KHjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eX1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyNjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHR0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUVAPjo8Pj48RUQ+P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnJ0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTk7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTk1NTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojk5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXFxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QUA/PDs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl7e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA/PDtLRzg4Ojw5PT1APTo8Ozs8Ozg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BxcnJydHV2ent9fXx+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj45N2RsOzg6ODg6Oz0/Pzw7Ozw7Ojs7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fH19fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXtOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNBQD9AQD09RklKa3lNPD49Pz09PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx9fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBfVFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkVDREJAQENbQVF0fYF9e1w/QEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD9AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcG9xcHJ1dHd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQUJAQW9jf4SFgoN+aT9CQ0VAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHREVGRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgICAgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRkNKdoCCgYR7gIV0RERFRENXdYaJin5YR0lKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpJSVF2gXyAhIGDiHBEQ0FVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNDREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKVXiBfoKEhoaHg1VObISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N1dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pYfYOEhIGDh4eIfX+GhYSEhoaGh4eGinVJSUZCPz9APz8+PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3J0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISElJS1F2hIaEfoGFg4OEhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lMSHGGhYF+gYOCg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc3MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0RLe4aEgYKDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6Ojo6Ojw4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09RV2tycnR0dXd6e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PU1+hIKDhISEhISGiYqKiIeIiImKioyKiYmMej46ODg7PD0+OTo6Ozg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8Ozk7PDg6Ojs7OTk5PD88PEFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojk7Pz9BSn2DgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUBCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPj9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PD5ARENVgoOEhYSFhIaJiYiIhoaGh4iJiouLi4qKi4qLXj5ER0lLSUlGR0hERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p5en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUE/QkNHRWiEg4WFhoaGiIiIiIeGhoaHiYqKi4yNjIyLioqIV0dMTE1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lLS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AQEE/QkJGRktKdYSDhYWHiIiJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA5ODw7PD06P0A+QEBDREhIUFt/hIWEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSUdFSkhESkhHS0pISkdHR0tMTkxMSEhJSk1QTk9OTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDk6PDg9Pjs9QT4/QUNGSEpUcYOEhISFhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4teUlJQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FQUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgICAf39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBRklJTlR4hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTlNUT01TTFBTVVZSU1JQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkVHR0dHSEY+QEI9Pz09Qj9CQ0ZWTkVMTk1RVnuGhIWFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlTWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0xLR0hJSEVGSUhJSElqc3Z5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQkNHRURFTFhSTVNUU1ZYfIaFh4aFhoeIiIeIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVddWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01KTEpJSUxNS09NU290dnh5eHd6eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTV1lYWll4hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRXWFhZWm6BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin9mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUVVSVVNXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XlxWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmJh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUFFOS1JUUU1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSU1RaXW1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lVUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUENDQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSEJDSEdISkdEQkFDQE9QTVJkdHV2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHN2ent4eXVybnN0c3l4fn6DgIOCgoCCgIKBgWtMRz4+Ojs+QD8/Pj5qUEthRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNCPz88PUI+Sk1GVW91dXZzdHZ4e3x6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFDQVtcT3tOT09OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1dnV2d3l8fHx9fHx9fX1+fH59fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJTVlhTUllUTllaW1dZXF9fYGVgXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZDTFFPYVdSWFFQU1NSVVtPT1FWUE1JQ0Y+Ojo2NDg2OTc5OjM2NTc5NTxCPWZ0dHZ3d3l5e319fHx7fH19fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LVFRTUFFVT0xSU1RXWVRUWFFMWFlZVlhYVlhZXVdXWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNQT1NaV1RUTVFTWVNcZVVPU1RSTkxJSEM/QTo5ODg5Nzg4NDc1Nzg1ODlHbnJ1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KTk9UU1RcVlJVU1NPTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3enp7fH1+fX58fX18fX19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF5SVFpWV1RTVlRSWFhZWVlSVU9KR1BQT09NUkpPUFBQTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTElMS09RUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFPUFBRTlFPUE9MSkxMT1BOTlBRUU5QT0pNTU1LR0VFREI7PT08OT1HNjY3N0RucXV3ent7fHx9fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11nU1FTQUdVUE9SUVBNTU5MSkxLTE5PT1FNT09NSU1MSUxLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E/PT1BQEI9PkVIRkRGRklHS0pARkFBQEZIRUpPSFFSYVxRUFJOU09PUExMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZFP0NDPj1CRz9CPkFkcXR3e3p7e3x7enp3fHd5fX57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87P0FAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVBNT05XS0xOS0xNTUxMS05OU2RNSkxSSElKRkFJSkxNTktHSUZCQUJAP0VGRUhETG9wd3p6eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkJBRERHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUS0pJTVRGSUlKTEpLS0lKTE1PUFJQS0dDTEhEQ0pKTE1PTUlKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFIS0NGR0dHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNT0dIS0ZIS0RISUtNSEpMSElKTEpNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2dnt4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkcEZLQ0ZFRkRFRUZFR0NDQD48PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGQ0I7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1HSUxHRkZJSUxOS0pIRU9JQ0dNTU5NUE5PT01MSUhJT1NRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUVEQkNCRUBEQj4/Pjo7Oz07PT9DQT9BQ0ZHSkdKSUxIR0dHRkVDQD1FRUI+QURDQ0VHSUlHTVBJRkZHS05PS0ZISUZFRERJSUhLSUZIUEtESk1MUE5PTk9QTkpKSU1SVVVST1dkYWFtZ3Byb3N5emdlaGhjaWxncWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NBQUJEPEJBPkE9Ojo9Pzs+P0BCP0BCRUdKRklHSUdGRkZFRENBQUZGQ0JCQkRFRUdHSEZMUExJT0pKTEtJR0hFRkVEQ0lISEtKR0tSTUNPT05RUE9PTk9PS0tLUFVXVlVTWF9eXWlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01GR0VHQkJBREQ8QUFAQzw4OT0+Oj89P0I/QEBERkhFSEZGSEZFRUNDRUJDSUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9OTlBNTE5TV1ZXWFZYXVpdZGBoYmppZ2tfZGVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJGRTxAQ0JEPDc6PT47PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISkxGSUhKSEVLS0xMTk9TVE9JVFVUUVRQUU1OUU5NUVdaVlpZV1pdWlhhYGBgX2hlY2BkZWdnamhoamZobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURCQ0hFPEBFQkQ8ODo+Pjw8PUJCPT8+QUJGQ0VCQkhDQ0RFRkZHR0lGR0pIQ0lIR0lHRkRIS0lHS0lNS0pLTEhMSk1LSU5MTk5PUlVWT0xWVlRRVFFSTE9RUE9UWVpZXFpaXF9fXmBjXlxhY2tiYGRnaHKFaGdpZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdHJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJFR0U8QEdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREZGSEhGSEdJS0pFSkhIS0hGRkxISEhKSE1MTExMSU1LTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJlXWRgZWdgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXd1dXV3dnV3c2d0cmtxcmtyd293SUpMSUtHQkVERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFREZHRUlFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0tNTUpKTUxNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFhYGNkZWJjaWNkaWpndotsa2lobW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3Bzd3R1dXd2dXV1ZXFza3BxanJ2cHdKTUxMTUdDQ0FEPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0hHSEdGSkZER0pHR0pGSUxISUpNSk1MR0tJSEtLTlFLUlFMU01LTk1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZWJhY2luaWNpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0VBQEQ+PkRFRkM/Q0FFQ0RGQ0NFR0NCSUVCSEpJSEhLRkRLSkdISkhJS0dKSk5LTkxJTEhKTUtaZkpkXEtsUkhPTV9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxrVV93dmlqaGhmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGQ0NDQkVFREZCRkZHRERKRUVKTExKTE1HR01KSEpLR0tKSUpKTkxNTUxMSUxNTFtzYmRwXmxsVU1OZnNeZ2ZxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9cb3VncE1Lcnl2a2Jha2VlbHhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FCPz1CRUdCRkNFREVFRENISEdERUtIR0tNTUpNTEZKTkhKS0pJS0pKSktNTU5NTU1LTk1NW3Jvb25wcGxrTlBRbFhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhvY15rZmJncHBqaW9wcHJzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hGRUVCQUI9Pz9FR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSU1LSElNSUtKSktOT05OTUxOTUxcaGR1XWxxV2xOUFFuVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWRpdHlrb25xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRkpMS0ZNS0xSUkxHTU1ITkpISE5ISkpJSE5PTk5MSk1NSlpzcHBvcXFtbE9RU29ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpbXnRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnRzdnRIS0hKQ0VFRUBAPkNDQUZDSEpNSUZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUhKTElLSklISkxNTUxJS0tLU2tiWmleX2pjcnJaX1pqb2BlZVVrX2NbYWJRYG1oXGpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga25wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFydXR3ckhIRkpERURGQUBBRURDR0JISkxHRkNGS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpJS0tJSElHS0tLS0dISkpMTExLSUtMTlRbXVRQVU1RUE5PT1VSUE9RT09RSkpOUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV6eXh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdKTEhER0lQS0xPS0xXTUlGRUhJSkhJS0hMSkhGSEhKR0dJRUZLSElLTkxJT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVFSkpKRkVISFBKTE1KTVJJSEVBSEZKSUtLSUxKSEZFSkhFRkdFRUpHQkpNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjYFlfYltgXltUWVhaX15kYmJhY2ZpZWtycG9wcG5ud4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tFRklJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUJGSkRASktKT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmJiY2NlWlJYVlZcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl4eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJTERESkpNTUxMSEpKSEpHP0dGTktLS01LS0tJR0hEREBEQUhJQT9JSkdQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUVFdX2FjY2NjYlxkY2JkY2ZYUVZVU1xYW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0lHR0pGRkZJTEpORURKSkxOSkxJS0pJSUdCSEhRTUtLT0xLS0lIR0VEP0VCSEhBQUdGRFRdWV5YX1hfW11VWFhQXV1RS0pXXlheW11WWmFSUl9fYmJgYGJiYGNiYmRkYlhPUlFTXFNcXl1eXl9fYGRoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktKTVBFR0lKS05MTElMS0lJR0RIS1FPTUxQTExLS0hJQ0VBRUNIR0JBRkVCVlVFXFRdU1ZgWE5UVU5aW01KS1VgYVtfWF9eYl1PWWJcYGBfYmNiXWJiV19fVFBPUFFZU15cXF1dXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNRRFdfSUdHSERGTUpQUEZKSUpLTkxMS01LSkpHRUpOUVFOT09NTk1OSEtBREFDREZEQ0FERUFMSENMTFBPT01GTUZGSEpIR0xMTU9QSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUVVUXFlZW11cYWFlZmNoZGtscXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXk1HSFlNSEhKSEdNTFFRSUxKS0tOTVVOT0tLTEdHS1BTU05QT05PT09ITEZgRURfTERmY0RNW0heXHNtT01WbVlMQ1BfVWxXZ0pdV1VeRExRVUxNU1ZRUlRYV1RYVVRcVFBmWmhoZFlUa1RYV1VbXFtgYGFiYmJgZ2lnbmxocnp8fX6BhISEg4ODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USktHYFRISk9KSU9NUlFLTUtMT1JVUk9PSkxNR0hNUVtZT1BQTk9QUEpLUX9RSXxZWXJzV1BtSHFub2FWUHFxdE9Ca3NucXRwU29fW25YXVZcWFVraFVdVmNZYFlaX1ZVV39qdHV1X2F2X1ljXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxMT0hLUlhXUU5PT0xRVE5PUVBLS05HTVBTW1pUUVJPUFBQS0haeF1UeGRoWVJTUHZndGxwYm5ma1JyT0x3bWpycHNycXJwb3CAXWZ6dXhxcXpxfnJ9a3V9YlJofGVzc29zc3x9cH55b39yX2BgYmJbYWBoa25rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEtRT01OSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dRVFBQUVJLR2d4bGN4cW1aS0xUeXB1bXVibnZQZGVJZXZxbXdvgGpmeHhpWHJSaXttaWp6en5seHp/cGdvWHZ2anZ1cIBhc2h9aWx4fG9fX19jYlxfZGVmaWpkZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3V6bnx9eXhybk5KUnROQ0JFUFBIS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OU0pLcm91dXF1cWRoYVZuTHFwXkdoeVd2VEtoeX14YHl7c25hXm1vZFNncnVubXlwd2x2c3RxbG1cc356a215fGx1bXxrcHZ1eF5fX2JeXV9lZGpoaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tTEtaVkhHRUdSUEtMTktMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPTk5RSVJtSGl3S2BkdnVVV2xPbmx7cmFqZ392VUtXa2h9bG1seGBbcHp7X2B6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlaGZlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobW1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTUxTU1JPU1JXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1BKSFFOUFVMS0tSU1JSVFBWVVFRT1JSWFhRTlBVVFhYWFtbVVNTV1tXWFdaUFNVV1dYUV1YVl1VU09YUlZXV1haYFtncl5bXFtdXV9jWl9jY2VnZWNjYlpjY2dmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJNUlFQTFZWVFBUVVhVWlVSWl1WVVRXVVlYUE9MTldVUU5VU05QTkxRUEtJUVFLUU1LS09RVFJRUVNTSUlNTk9RUlFRUVRWUlhXXFdTU1BSVVVWVFpRTlNSV1VUWVZUWVVTUlVTVFVYWFdeWl9hXVxbWl1dYGNcXWJiZGdlZWViWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkZGZoUUpLS05PTE1UUU9UUVFNWFdVVFZYV1daVlRcYFZXVllVWFRRUEtPWFRRTlVQTlFOS1NQTU5VU05STk1OUVNQVFFTVFVOTE5PUVRUUlJRVldVWVpbWVNVUlRYV1dZW1NPU1VXVVRZVVZZVFJSV1VWWFxZW2BdVllfXV5dXF1gYV5bYmJjaGZlZWJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWVFRPS09XVVBPVFBQUU5NUVFPUlhTUlFPTU9TVU5XUVRVVU9OTlFTVVVUVFJUWFZaXVxaVlZRUldYVltcVlBTVlVVVllUV1dUUlJYVlZbX1peYF9WX11eYFxcYGBfX1piYmRoaGVlYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTk5SUFJST0xQU1JVWlVUUFBMUFdVUVZSU1NYTU9QUVRYVVVVU1VZWFteXVxbVlJPVVZWW1tXUVNXVVZYVVNYWlRTUVlXV11fW19fYFZiXGBhXmBiX1xgXWNhY2dpZWdhWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeX1teXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3l/Y1xbVlZZUk5PV1NOUVJRU1RSTFFUU1lbV1VPUk5TWFZTUlRSUlpPUVNTVltWVlZUVlpYXV5cXF5WU05UVlZbXFZRVFZWWFlSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkaF5cZWBhYGFjZF9iX1laX1tcW1lYWVdXWltaYV1dW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1cYFxgVVxdaGpyfXJsaFxVWVdRT1JbU1JRVFNVVVRLUlZVWlpaU09TUlVVVVNOVlJTWlJUVVRYXVdYWFNYXFheXVlbXlVVTlZXV15aV1FVVVhYWFRWWFtUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVnXl1kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFtVVVdWVFRUXl5gX15iXGBVXV5ia3l0bH1sWlVaVlFRVFxUVFRVVVZZV0xSWlZcWlxSUFVTV1VVU09XUlNXU1dWVltdWFtZVVpeWF9eWVxaUldSWVhZYFpZU1VWWllaVldZXFVUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZmViX2RhX2FhYmJfYF5XWF5aXFxaWVpXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFJXVVNSU1hSU1ZUWVhYXV5YXVtVXl9YX19YXFZRWVVZWlphWFxVVldaWlpYWVlaWFZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYltmYmhmY2ZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaV1RcVVZXWVdWXGBhYmNhY19fVltgZGFfenVvaFpcWlZYVlhbWllcWlhZYFZPVF1bYGFcVVVZUFRWVFJWVlJTVVdbW1xfXlpfXFZfX1pdXlleVlNZWFpZXWJZXlZXWltbW1paWVtZWV9fYGBkY2RlZWJkWmJmY2dmZV5hY2BjXmNjaWVkZ19nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVVYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZWU1ZUWF1dX2BgXWFdV2BeW15cW15YVlhYW1pfX1tfWFhdXF1dXVtaXFhaX2FeYGRjZGZmZmJZY2ZlaGdkXmNhX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpaWFpYV1tbWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYmNiX2FgYV9dXV1YV1tbXV1fX1xaXWNYWVhdYGNkX1JZWVBXVldYWFdWV1ZdXV5gYWFfYl5ZYV1dXlldXllYVVdbW2BeXV9ZWV5dXl5gW1paWVtfYV9iZGRlZmdnYlpkZmdpZ2NfY15gZmVaaGljZmljZl9iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcWFpjZWNhUlxZT1hWWVtaWVdaWmBeYWJiYGFjX1xiXV9dW19eWVlUWF1dX19eX1taXl5gYmJcXFdbXWBiYmNlZGdmZWdkXGVmaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXVlhQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9hY2JhYV1iW2JkYV9jYmJdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl5cU1xfYGNkZGZlZ2ZlZmVfZmZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3p6ent7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3p6e3t8e3t7e3t7enp7e3t8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIjbG1tLS0s7WVh4mJiYmKjI2NjY6Ojol/f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIuRu8C/v7+/wZqKjIyMjIyOkI+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4OEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXp5enhvb29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2BgYGBgYCBfnx8fHx8fH19fX1+fn19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnh7d3p6en55eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3p6enp6eXp6e3t7e3t7e3t7e3t7e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx7fHx6fXp3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHt8fXl9eXd4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d6fHx8ent6d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6enx8fXx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h6enl7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZWZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoKCgoGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcIqQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uJg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMj4uKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiYeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIjIuJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjIiGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSkpCLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCgoKHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFg4SEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OCgYODgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoOCg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj5CSkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoKCg4SDgoKDg4OCgoSEg4ODgoOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGTkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGDgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgYGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgYKCgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIKDgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKBgoKEgoKDhIKDhYWGhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GBg4KDhYWDg4OEgoiOg4WEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OFhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+NjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCBgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgIGDgoGAgYF/ipmFgYKCgYGCgoGAgoKDgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGBgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+AgICDgYB/fnuBmIyAgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgYmDfn5/gn2PlYKDhIKDg4OCgICAgoKCgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOFhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KBgYGBgICAgICAf4CBgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgoGDj4OBgX+KhIOShYWEhIWCf319fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWEhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMi4iFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhISDg4ODhIWEgoWSgoqGhYKBfoKGh4aDgX5/fn5/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYGAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDh5KChoSHfn5/f4WFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4aGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4OEhISFhIOCgoODhIOHjYGBf4eCfn5+gIB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGh4eHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDhISEgYCBi4WAf4CBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhYOBgIODgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWFgoCCg4ODgoKCg4F+fX1+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiEg4SDhYSEhYWGiIiGhYOCgoSFh4aHhoaEgoKDhIKDg4SCgYGBgYGDg4SDhJGSkY6PjouHhYaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiYuKhoSGhIKGh4N/gYSDg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GCg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4OEhYOCg4GCg4OEhYSHkpGPjY+MioWEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoGAgIKAf4GDhIODg4KCf319f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5/fn1+g4SDgoODg4J9fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF/fX1/gIF/f35/gIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH99f359fn+Dg4OCgoGBf319fn6AgIB/fn19fXx7e3t6enp6gIB/fn9+fn59fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f35+f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoOBgYKAgYKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp5eXl9gH+AgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIKCg4SCgoKCgoF/fn19fX5+gH19fX19fX19fHt6eXl5eXmAgoKChIOAgoOBgIKAgYGBg4KDg4GBgoCBgH+AgYOChIKAgIGBgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoeFhYWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359f35/gX+AgoGFhYWHhoeHhoeHiIaHh4eGh4eGf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhYR/fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYiJh4WGhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgoGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32DgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+f31+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/gYCBgH59e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Mi42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX18fXx8fYB/gIB+gH5+gZORjIyNjY6KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2LjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKMjIuOjYuKhoSFhISEg4ODgoKCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42LioiEhISDhISDg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHx7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4aChJGOjIuKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3x9en1+fn+AgIOHiYmJioiLiYWIkY2LiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgYB+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiYyQjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5/f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn59foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+Ni4iIhYSEgoGCgoKCgoKBgoKCgoGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiNjIqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGDgX5+gIB+foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXx9fX18fHt8fHt7e3x7fHx8fXyJioiIhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgH+AgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoWGh4WEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dXSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgYGAgICCgX5+gH+BgH+AgIB/fn19fX18fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX5/fn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f36Af359e3p7enx7eoKEf4OCgoKCgoOBgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX+Af3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4F/gIOCf3+Af4F/gH98e3x6fHt8gYB/gn9/gYCCgoGBf35/gYB+gYKCg4GBg4OCg4KEgoGBgYCBgoB+gIB/f31+fn19fX59fnt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+AfoB8fX1+gH5+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OBf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fX2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn19eH5/f3x8fH59foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgYSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN3dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChIWGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4ODgoGCg4KBg4J/gX9/f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH99gH99fn5/f31+foCBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4F8fHp7e3t6e3d2eHVyc3ZxeHlyeIWFhYWDhIOCgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/fIB+gIB/gYCAf32Af35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/fYB/fn9/f319fICAgIGAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn19e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6enp4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/gH18fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn6AgX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYGBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/foCAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f356gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fX17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKCgIGBgYGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e41+d3d5fHx7fXx8fHx7fXx9fX19fH18fn5+f39+fHt8fXt9fXt5ent6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYSDgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKAf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBgICAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXx8fHh4dXh4eXt8fH17fHx8fH1+f39/f359fX6Af4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGFg4OEgYGDgIKDgoGAgIGCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAgH+AgYGAgICAgIGBgIKCgoKAgoGBgYGAf3+Af4CHfn58en18e31/eHd2eXl6fH19fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7enl0cXVud3B1enJ2eYWFgoOCg4OCg4SEgICCgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgICBgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKChoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgYGCgoCBgICAgoKBhIB+gYOCf3+Ag4KAgX6AgoOCgIGBgYKCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6c3B4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4KEgYSEgYOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SEhIWEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH96e3x6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhYWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GCgYCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4SDgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX56fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChoaFhISDg4SEgoSFhYKCg4OEgoOCg4KDgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/f3x9gYGCgoODhoOEg4aEgYOIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KDg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKDhIWDgoKDg4KBhIOBg4OEg4SEhIWEhISFhYWFhIODhH99gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4GAgH+AhISDg4SFg4SDhX9/goqLhYSEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KDg4WCgYSEhYWGhIKAg4eEg4SDhYSFhYSBhIODhoKDgoOBgoKEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgH+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYqJhISDhIWFg4eGhoSEhISFhIWEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeoN/f39/hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WCgYSDgX9+fn59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDg4WFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgoN+g4N9gX1+fn1+goOBfH+AfX+Afn18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhoOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9f359gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOGhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253Z3d6bnB1gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgX+Afn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WEhYWFhIKFhYSFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYaHh4iGhIaFh4aGhYSFhYWFhYaJiYeGhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhoaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFh4aHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGhoWGhoWDgoWFhoWFg4WDhISFhIWFhIWFg4aHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn58fX1+e3x8f3x7e31/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYSGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaDhoaFhoWEhoaFhISFhYOFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXt8fn1+fnx/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFhoeFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoWGhYaHhYWGhoWEg4SEg4SHg4SBgoSEg4GAgIF7e359fHx8fX18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4aGh4SChIOEhoWGhYSEhISEhYaGhoaGhYeFhYeFhYWHhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoeHhoaHh4WHhoiIh4aFh4eIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f35/fHx9f317fX18fXp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHhIeFhoaIhoWHhIaHiYaGiIiHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFh4aHhoaFhoaGhYaGhIOEhYKBgoGAg4OCgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYWGhIWEg4eIhoaGhYSGiYaChoSGhoaFhYeFh4iIhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OFgYCBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIaFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhYKCg4N/foCAgIF/g4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOFhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSFhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg39+f4B/f4CDf3uAfX1/gn2AgX1+gX59fX19f3t/fHt6eXp6eXp6fHl6enp7e3x6e3t7fH1+fX2AfX18fH2Af318hoOGhoaGhoSFg4WChYGBgH9/gIB+f4CCfX5/f36AgIGCgoSEg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAgIKCf319f35+f4R+e398fICBfYGAfX2DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHx7fX59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4F8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fXx+fnx+g358fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt9fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dXU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXU1dTV1NTU1NXU1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19jc3d3d3d3d3d3d3d3d3dzb3Nvb29vc29vb29vb29ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLmzeHNzc3Nzc3Nzc3Nzc3N6goGBgYGBgYGBgYGBgYOLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OlmTIpKysrKysrKysrKyspNUVDQ0NEQ0NDRENDQ0NGU1NTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpps4LzAwMDAwMDAwMDAwLztJSEhISEhISEhISEhHSldXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaugRT0+Pj4+Pj4+Pj4+Pj1IVVRUVFRVVFRUVFVVVFZgYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Oz87Pzs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0crKysrKysrKycnJycnJysvLy8vLy8vLy8vLzMzLzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7Ozs7P0c7O0tTPzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbY19fX19fX2NfW19fX19bX19fX19fX19fX19jY19jY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Ozs7RwafR0qig0M/RpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs7SqY+t0c7Ozs6bt7akosCTnqzTzs7Ozs/P0Z2PxbSeo6fWr5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/P07qvqrifmpOdwJ6YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Pz9OfsZ2omqGctJicop2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz9HAnImen5uWrbmGnpavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Uo6KBoJibgaCWeJuEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDRxJ+Be5qFn6iInHmfqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q1auvvMDTdrSwppyKva2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJh3+FoJWml5edpaeWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HG09PVnJjCoqukm9Cfq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg0tHS16iHzsaQjbfXwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dLPxdTUx8PV0dXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS09TS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLW2vL2+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3hmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnZGpkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwsbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m9urq0v7i1uLOvu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+urW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamdmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWRmb2lla2hYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2diXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8G/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9jXmFhTkhNP0VAP0RDPDs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPEFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcrGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKyr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT0+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBwsO7uLO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pXF9gWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDuMCwr7W4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nrK+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXVpVSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBwr7YwLSxtLK3vrmztbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcPQ0rTItLSwtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE+SUJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLJ1cmXzsS0srS2srSvrbu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG7xbzBy83CjqfJubS0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OzpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+ysrq6t7e4uLu0r7SssK+knLC2t42JtbqyrbOwr6yutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWjm6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGvvcqypqitlYuNdnB/hJ+MhaG3tKuytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsaOlqJ6gnJWTkI+RkJiQlpWYlp+Ym5mbo5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpb3Uq6KdnIBsgXRhY2Vyg4qbt7Wvr7O1qqetrKOcmZSOkZaXmZmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZabl5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6kqK6trKurr6qvqZ6XnqWdnqWmpJ/Az6mSfHeBXmuRdW9lX26QoL60sbGwuK2noZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKmxr6KZnJ2eoZmbm5qYmZuUlpuWmJyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5VTFJMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho5+ewseZeGNhilxXgouQiGxSianDs62trLCnoJ+ioJeRlJugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7issbSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqShn56anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOemaidrp+nnpyhnZ6ampKZnpyhoqCfp8m5iGFadpdaWGFtkI9+TnS0xrOnqqyqpZ+fmZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqefmaagn5+nqKWknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxoreksKafnp2dl5iVmZ6bnKOfna7RqnNZZIyJWFtvabetdlpZoLqzrq6pq6agnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqztK+zrqquo52rp7axrKKvpqGjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHFra3VycGhXW1FFVEhESU9IPkVBNEVIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn52szp5gX4iHd3iFh3WejXJyc5SwrqekpKKgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsDFvrm0ubq0u7ewtbKqurGuu7e+urqqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrZGhveGplWltGS0xFRFNMREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz49Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJuercmYVm+fmXmSnH9renqNprKqoJqdnJ+empeYl5KMj5eXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zT0NPTzMrCxcbHysfOv8jRzMfFxsTBu8PAvr6+tb2zrb+/wsLGxMfErr64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E/PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopaisraqhnaOfnJ2aprfMkVR5oKR6e25mb5Gpsaykn52gm5iXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K0tfR19LU1tPTyMzHzc3J0szO08zFx8nKwcXLxsjIxb7CsrPIxMvKys7Fyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo56ko5+gpKrDzopYeoaEbmhxkK6vpZ2dnaGloZ6alZSWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTSz9HD0NPW2NXW0svJztHLxs3RydLV1tnV19PW2M7Sys/RzM7QzNLPv8fGysPMzMvOz8XGx7bAyr/RzMvPxcnHv8PCyM7Mz9DPzcrIzri3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKR0FFSEk+O0A4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wsWxtqiipaahoqu1z8+PZHt9b26Ura2clZignJuhop+cnZqWindpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNDO09fW09XQz9LT0cnT0cfQ2NfY0djS19nV1szPz8nN0cvOz7/FwsfFzs3R0NHIy8zAysvF087LzsjEycbGyMzK09PR1c/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1FNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq64qKu319TV2dnRztDAvMzJt7+vp6upo6SxtNHHjG92cYSprKGYlpiam52hnZqcnpN9cWVjYl9fYWBfYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHG0dTK0NTV1s7S0NjY2NfLyM3DyM7Mysu/yb/HyM3Oz8vQzc7Lzs7Hy8/Qys7KwsnGyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1XRTtAPDMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspa2uvrSwwNjS19rc1s/Ny8TT0MLBsaqtrqulsrHEoW1sbpChnJWTl5yen5+dlJaYlIlrXl5eYWRiYGBgYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVyr/KwcXMwsjJwszDxcjKys7KzczQzdPLxcjPzMjHysTGwMXKy83P0cbQzs3NzM/Fx8C3ub3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV4cHFrbWdgYHFoWVhoVkxGTElQUEI7RD47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzs8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfCuMvV1dna29jMzc/I1tXFw7ewtamiray4vKFvbY6ajYyXlZCUkpGWlpaQjHxlYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL7Gyb3Cx8nOxMHHwMfNx8PLysvPx8PE0MjGwcXHxL7Ax8vLy87CysvIx8zQxMXHu8fDyMjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd250ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vbrNzcbQ1dXZ2tvY0MrP0NLUycS4vLyupbaqvrqhd4mWjo2Wj4aDhISCfoWFf3RgXF5eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8fKycjKyMHFzMbIy83JxMLLycHCy9DEy8i/ucG7xce9v8bPy8O/w7vJxsi7yMbEyr+9wsvGxcS+xby8v8PEy8XEvMDJwsXH0sTAyL/KycbHxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZqjoJuUe3ZzdGZpWmFubVpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvP0czHwsPHzc7OzNXP1dnY2dDM087O0MrDtsS/tLK6r762iH2VjJOXhnqAhYaAdnh1cnFfWltdYGBiZGRkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjAwcHFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDvrzBzcPGvr61wb3DurzGu8K5s7zFxMLCtr+1tb2/usvDvLW6yLq/vcvDwcXCxcjGyMbQxsLMx7LHycPOzcHFw8C9srewsqeoqLmwpa2wq62slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGw8TIztLLysrHzc7P0snQxtXU1tfOzNDGy8fJxLzIv66wtrS3r4KMjYqLhXiAhoaAfoR8dHVkXFxdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLW3tLKztLq1vrG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bAwry4vcbBw7u1rrK2ur60xLe7tau4vb2/vbC6tq+2urLFvLauu7+0trTFvb7CxcDDxcbIy8XAxsa7yMu/z8rHw8bCw7bDvb22ub7Hv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDMzsjKycvJysTPzdLPz8bJxMnEwr67zLqusre0squMkIaJiXt4foaGd3iCfXRoXl1dXV9gX2BkYV5kZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7i4tbCrrKeeoqqnnquts62pq6m0rbawsqmupqyyvLq2w7m6urGrtbm7tMK6sL+xvby7trzHucK2raqosLG/tbe8r7CnsrO0u7yrrbWlrrauurGwqriwrbuuu7i7wL+9ucK/x8PFwbzGwcjLuMXHxb/Gw8O5xMbCu8bJzMuzucK8urKIcnZ2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs7Sy8PGwsXQx87CxMbAxcXDw8rCycvBwr/Fvre5ucezr7S2r62mkYmPkXx4foqFenuEgXdvXl1cXV1fYF5fZGNiY2NiYF9dW1taWl1aWlpaXGRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCkpp+qrbW2sb25r7evqK63tLS8uLS8r7i5tLG8wbHArqWooquxsrOnvKqrqKusrbSzpaitoaSuqbKlp6itpai3rLCyt7q6u7G7vb6+xL+1wcDHyLe/wMS3xMK/u7/Ewr7EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XR0M3EyLq6zMLMv7zKt77Ev7vLuMLEw7e6wLq1s7nCtbGys6epk4OJjYF8foB+eHR/fHN3Zl9dXF1eX2BeX2NjYWJgYF9dXVxaWFpbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSdpJuYkqGjqqOin6Wlp6Wsn52bpKassq+2t6ewrKeqtKq0urG2ta22ubGvurmxt6SfpJ+msaerqLmqpKeoqKeyraCnpp+bpKWsnp+npJ+gsa2trLK0srSwtby2u8HBsrq+w8GyubnCs8C9v7W4u72+vMLHxMLDv7/EoIN3cGthZl9rb2BUWV5ITmdPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9taCelJ2hprq2q7Ozu7PE0MnLw8e5uMnCzcC5y7i8xrm1xrm1wMOwusG3squ0u7aqrK6lm4SHh4F9enV0b21rampxaV5gXVxcXF5gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeVmqGWm6KYlo2eoaKmm5+fo6Whp56bopufqrCtsbWiqaqpq6uktLmtt7CssrWusrWusKqfnZ6jorKkpqm4raKmpp+orKqZn6CemZ2fpZqao5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7OzubO9tLaxsbW0v7a9wL3Dwbq7vZeDenJrX2VeZGRYVFddSVdcS1BHSUlGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xtDIyMHHvLzFxM+/usi5ucC5tMO2sr2+sL6/uKiksLSxoaipnoiGh4B4c25wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaRnKGiqJ2bnaWmoaWcoKCamK2ura6yoKWiraumobSwsbGsqK+yp7qzprahop6bo6Gto6Gptaqio6adpaajlpiel5manZ+al52dnJysoaumo6Smrauzs6q0sLKqsrm0r6mvsrKzt7Ouqayusriwura5vb+3srGUhXl1ZV5lXltZVlNaVUtcUUxJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLNyMfAxrfBwMjPuMLFvrS7u7TAuLS7vbG3urWloayzqqCnpJR8hISAeXBydHFpZmRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYWFhYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnqmcmpqqpq+wq5ujo7eqoJ+uqLappqetsKO3sKS3n6KbmJiqpqGarLiwoqGknKKgoJOVoZSVlpuYl5aXnJWfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxsLCur6anp7KusbSvvLS6t66jlIF5dWReYVZZV1NSVEtNXkxQS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Oqu8C9wLmutLjCzcnGw8S+xrjJzLPCw8Kvvb23vb63u7y1tbexoqGqs56elpuGgHx4cmptcnRwaWhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKannpyfpZ+qr6afoqO2qKChoqi0oaWnpK+lsK2stZ6gnZWUqaGilKyxsZ6io52dmJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpaukpbCnpaOrq62mqK6vrquoqqmzpaarr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFJIUmFNV1BPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepKett7u8wcW6sbm1xcrLwcTHx8i3xsW0w8DHrLi5v7i/vb65uLK0r6Cgqq2Wln+Rh391bmRiZ2loZmhqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWVtXVVhXVFRXVlNUUlVgYF9gYV9gYWNkaYGTk4iQjpSSk5yUlZajmaCWnKCloa2lpKOio6GbqqulmZ6lsamgoJ2lq56noZ6sramorq2ioaKUl6ObnJCqqLCbn6KfnpeZk4qekY2Sk5WQmJiTm6GinKSgoZWgoaSmm6OrpaKkqqSrrqWtsqmmpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlZSR1FPSFpcT1JJVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6PDw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njo4Njk4OTg5OzlAOXu1tK20u7Kvq7Gtnaenr7m5s8DIurXAr8bJzbvCy8zItsq+sr/Fyq6zusS4vsO/ubmwtK+eo6inlI59i4R8dWlpaWxnamxta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eXl9fYmRtjo+EkYeQkY6Zk5SSnJqinJugp6iqqKqmqKWjmKSupJSZpa+pn5uZm6Cer5mbqrOfpaafo6OhlJOblpaSqKmsmpyfoaCalJCMmY6MkIySjZaVkJ6hoKOcm6KVm6CioJiiqKOiqKugq6+krrelo6SirK2qqKuusreyvbWzq6+YhHNzaFtYWFJVUkVYTFFbWU1VTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaevrZupqKy3tqy8yru2v6zMx8a5ws/Px7TFvLi8xMqyrrrCub/Bv7i7rLKpn6KmopSKfYF3eG9uaG1ubXBoZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/jJCKko2XkZeZoqCbn6qppq6qp6+jp5mfrKCVlqSop52XkI+anq6Wl6eqmZ+clKWhnpKQk5KTlaeqpJqZmZ2dlo2MjJSGiY2DkIuSlZGgnqCjl5WflZqgop2Tm6Wlp6iooLGwprG8p6CjrLSrrqewtLC5tcCxrbGrkX1xcmJWVFZOUklHVlFSUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6u8LL0MqyuLm9v8LFs7K0uq+3t7+4u6qsp6qmpqGQkn9rZ21ucm5xanBrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKl4mUlJebmZ2omp+ppaSqnaeYoKWbko+eopqXloWEkpqjj5OinJWWlYeimpqTi46LkJqjppuVlZebkJKHlI6MgYuNgJCKkpKSoZqfopWUmJiVoqWZjJikpqimoZ+0sqiyt6Gdoresqq2ksrKmtbu1q6uxo4l4cm1dTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSno6mloKmlpLOqorLDtbWys8fGuLvEys3GtK27vra5wbGvq7OfqbG+tLWno6WspqaVipd2X2Bnc3F2cWluaWVoaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGEjoqUkZOdoI+am6Kho5iklqGblY2HmJqMc42CfY2XloWQmZCTjo57mY6cjIKKgImYn6KekJOYloSOgpN+fnSJjnqQh5OQkJ2amZqQlZCdjqKjjomaoKGjo5uitK+sr6yfmaW4pqawobCunLC7qqmvqpmCdnJiVU1ST1BNQ1NOTFFNQlBRSElOU01ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTE3NjQ3ODk6OjY1Ojg3QTd4t6KjtKilpqijpqWmpqazp6W0wbivtLDKxbi6wc/GvrOtu8Ktr8WvqqSpk6CpurKqqJmgpaShjIeSbFdXX2hnaWdobmNqaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeLk5Cfl52VlJaUjpaJf5OJXztXb3uLlImAi5KMj4WGc4qEloF5gnqFlJ2Ug5aOkI+Dhn2SeHJvhY1+iYGRjY+XmZiTio+JnIeel4eIlp6aoaCXp6+praionpets6KmrZisq5intKKpraOTfnJtX1tOU1JWTERUSlBNTEZOT0lGTFFNS09KSU1QRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6KpsKintMG5sLWwyMO4tL7PwLmvr7bDqKzHq6WfmoSXnrWooaCQn52cmIyDiGNRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQX+VkZF9iZSMhIqNmo2VlYqSiIWVhniIf2BKUW54ipGEfYSNiYV/f25+f5R3dXV3hI2ZcFGNiIqHfH54k3Zod4aIfoqIlYqNkJGWi4SKiJSEmoyBhJKblp6clKSjqKmlpJ6bsKqhpKSQpaqWoamcoqaoiXVsZV5bSFFRUk1JVU1TSUxLT0lIR0tOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+tqra8tri3s8K8t6i6ybm2qKm2t6uzvqigmJCBjJasm5yShpmQkoyHgIBfTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJKBkpmLj3uGj4B1f3hzbnVwdI2NgXl9iqqFeXpodnuOcHJteIGLjJJ4eoB7gHZzcpJ3Z3WEhISEe5WJiIqMioB/hIuMf5SDe4CPmJWclZGfnamen6CdoKmln52YjKekk6Cflp6epIByZ2BcXEpWT1JHS1hST0pNTVJKSkpNUEhMUUxSVExFSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpijoZicn7Spr6mlraywsaq9tLK7uLa7tbKgt7uzq52eraqqtLCjnJOQloOQn5KYhn6ShIqDfn54YEtJSUhHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfXlnd42XmI6PfWd5gXZ4gImPfISYkoFyh498dntva36tfHOQin97hpKBfX90ZnZ8hmxvaHN8iYyHgGx5cX1wbXWPcWlxgH6OcEOLhIKDhX93d3qLhX2LenV+jpKPmIqSmpujlpmdmp2eop2WjYqlm4+el46WmI92bmxlYlpXV1RRSlNVVE9QTlFWS05LTk9KUU5ITk9LRUM8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ+WoKavrK6rqKmwr7GrvLisu765s62om7GnrZyQlp2mqqWimZuRhpN7i5KPkXx3hnaAfHh5eGBLRkdGQUBDRElMTE1RUlBRU1VUVFVWV1dXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFhdZXBybYinqsB+dXlie3hufHmIkHl8i4VvbYyReHN4amqAgnKWkYuBfZaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnp9fnt2b3RzhYJ5gXdwfI6MipSDlpeYmpCTlZaZl56XjIOJn5GLko2GkJZ+bWhtbm5XVVdUUlFZT1JVVVNYVU1OSE5KTU5LQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6lrbCirKqota+urLS/q7zCv6aimpWlmJ6OhYyWoqKZmZKVjXSPe4KIjot5dXtxenRwdHZhT0VHREA8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4l2gYiGdGyakXRze2prnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxf3xncXF7bpONj3tzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlI+XjoB5iJeIhoqGgJCHdmpqbmdkV1FaV1lZW01QVVZZWU5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfprquq7KwwrG7w8eblo+VmYuNhnqFkZmVjpGNkYhyiIN2iY6KfXR1c3V0bHZuZVVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHF8eG19bHKDgYWBeoSGhnlyoJV0eIBzdZSHNXGdqJ2OoaGEooV2cIZ8h3xzjK2NiYBoZmJpbnJtcIJ1aW9YdXCOmpJ3bH97fW1xbXCAenN2bWJ2hH+GgIWQkYqLipKLkYyLj4N1eIuPgH6DgH6PenFwb2tgW1xdW1lYYF9TTltaWVhMSEpFSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoeWkZ6kp56vlaW1qa2xrsGyu8HGl5CMlJCBiX1ugpGSiYSLiI+HdoOFbZaJi354eXpwenJ7aW1eSlBHPkA3NDQ4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8fYWDf4x+dqKZeX6GgYWZhJucYYaqn52KgpCOeneIfomIjnOKl4+De1xkcXR6e3eKbGdqYnlvhY+Cem6Bd3SEenB0eXdrbmldd4d9h3yIh4+Ai5OXg42FjYZ9cYR/hHx1d3t9iXVvcnNlZ19bWl1TW2ZeV1FVWVxWR0pKREtHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyNeIp/lIySnZ2fppGgq6CxqK/AsbrFupaOkZSIeoV2a4CMkoN+i4SPjXmDgXSihYx+foKAcoKAfGt4a1NXTEBFMjExMjY3Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+MenyJhn6Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbHyBhod9jmhnaHh+boWGgoVxhIVHa4B3cnl2aG1rX3Z9g4h/iIWMepWenIqLiJF/e3WLdnx3bW93fn9ycnFrW11cW2NjWGdlXFVQUFdZUERMS0ZOSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpeSl6GdrKGmuK+zvbOXjZKLmIt9dHB/iZN/fYyDk5V9hn6GpYiJgIOIhnmIi391hnhfY1ZLQjYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzk0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiZGBmpWCoaGXlZuapa2Tmruxp7vHw6iLjKGlj5SJgZB7coOdn5GcfnaFhYqPh5BpaG+DgHSMhoSLcYaCd4eAe3aFfW52dWeAlI+GiYiHiIehq6KWiY6Yf3uCiXp6b2dreH54fXFqY11aWl1pXGFmX1pPTE5YUlFJUEtETkdDS0RDQURDQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnVwZ3iDe4CMgIGQj4uamqScoaymq6+wl5GRhKGUhHh3f4yUfX+ShpOWf4qAkpuOhIGCjIuCio6EgIp/bHBqXUNBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jKGemISShYKPoZ+TmJKEioWPmJGWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGWhpOKj4+WpbWpm42VooOHk4R+f2tqa3x/f4ByYFxjXllmalxsa15YS0hPU1FOTUxGSVBERE5GQkNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuaFlwg3B1h3F2koZ+l5aalJ+fnKegqpaTmJ5nZaSafoSSknqAkYmRkn2KhZmSkYOAgIuNiYaRh4WIhXh4f2dNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGampmnkZGIlaKamnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N8fnpvZ19bYF5hZmNgZ2dcUkVLS1BPSUpMRkZNQ0hMRkZDQkdEQDo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcXVgbn1id459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Ljo17ioaPkI6Cg4CJjIqFk4WDhoiBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49R0dBQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKeotKyxt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsraqji5aYhaamoKKXgqaZjaKqqKSHhZOjoKCqoKSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWriZqKk4qVent+hH1mX2dbZGFdY2NeZmZfW09ESkhUT0ZITEZLSEVGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljWGpwWHqFdoGUhYiCm4OSkI2S2sidlnNWl4iPiJyPfIaMj4uKeoiCh5GOg4WAi4WFiJKGgoSJhoeHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJUVVVXVU1bUEdHRDw+PkZIQ0RANzs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHIxKuzxbass8CzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsbGbmZKan4inr6qklHafpJehq7GzmJapraiutbuyuqyvtaKxrLG1vLe1rrWgp6ejqJupsK2yuri4p5y3qY2lj5KToIZ5gYJ0WGBjVWVhYWJfYGZfW1RKREVMVlFJSkpESkhFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hn6AjXu/u6O8grSUk42bj4SIj5OJiXmHgIyTjIeFgY5/gYmPhn+FiIWKh5F6eW5dVkBFTjw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFdPX1VJS0pBQD9HS0ZFQzs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMq2u8S9s7TBt7jCtb+wt3SxtKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KRpbGtpa2rp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6uL+3ure5ra2xprGqrb6wvbvCwqyZu6iVrY+YmKqJfoF7aVZhYFdpZGlkVltjWVZUSUhHTFFHRElKQUhEPj9CQktAQExDOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWlZad2pwf4+EgY6FbnpzeIhiuKGao4mVlJaTlJONkJeSh4d7h4GNlYqAhIGKenyLh4Z9ioKBi4SVfXh6dWVPXGRHRUw6UWRhW15TRj47SFBEWmRRUVlYWmdaVGBhTVNPRUE/SUpIRUZBQEM9RTZCPkhHS01TWlRelK+4tbq5ycC7vcrMu73Au7e1vLu3vrW6ssZgdbKlsZqeq76qpairqqSisrWhq6eelZaemJ+upaempZ+kk6KnsLOosrK8tsG908nJ08bCxczCysPAvr2/u7y3tLC5t7fDusa+w8mwnrqqoqyPpai2iYF9cV5hYFxWYV5nZVJYYVZSVklFRk1LQD5IRD1LQj1CQD1GPTtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdtbHGQjYWQc2xzcnOI1cC1maCNlZmakY6XkZaWjoaHfYeDjZaLf4N/g3h7i4SHe4t5gYqCl390fXpsZXB2WV1cUGVlYmBlZF1bWFdcTWRtVVJtbl9vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVl1aXJO5wLm9t8bBu7nKy7u3ura4ubO4tbWutraZZHWpnq1wXqKtnJihopuknqullJ+fkJSPlpiXqJ+ln56amYOknaykqrCtt7C8uNTQztbPyczSzM/OysfAv8LKvcG9wsDFxMbKv8nPtKS7sbWwm6y5vZp+eGpcX1tYXWBZYmJRW2BTUUtDQkVGRTxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQjIl8gYNze4qDhXyKdIKKhpV/c3t5bG11fGlzZWlsaWZqamlgZmlobVptdJetpLyHh2dbb2hdWllUSEpOUEpLUUxUUUhMQUpHS1BfX2JnamKXt8ewubO7vraxxMe2sLmxsLuss7Gnq7esjbannpynmk6bno2OoJaRp5illYqTk4iRiY+RkZ2boZiblZaHnpmmmqyvqK+ns7PT1NTW0cvP09TO08/MxsPK0L/KycvJ0sjNzcPR0rivxLzEuqa3u8SigG1iW1tcV19XWWVZUFxXTlFDQklFQ0k7QUQ+QUg/P0E3O0Q+QEk9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OT05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CQmYNocW95eYOgqp6ml42bm5iLjZWRmo59iYyFjoqKi5CIfISCcH+HgYZ7h3KDkouPfnF5dWxweH9ye254c2xpgHBtY2ltcHlpd31+y7/C36dtY3hvZFthYEpQUlVOWV5QXV1OUE5UUVVUXG5ud4Nylq64rLSosLarrb3Bsau1pqW4p6yuoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSKg5OVmJeUm5GbmJmZnp6rrKSnoaysztLV0c3M0tPT0NTRzsjD1NHIztLT09bN0tHF0tbGwc/IyMOpv7jQnXhsZFxhXFVeUV1aT09UUE5IPkFHQkNGPEFCP0ZFPkA/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bXdwfX6AoZ6eoYuNmZOTjIyTkJaFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBwd3Nsc3x8d3xzgnhxa4BycmlvcXp5c3u+y5p+jLGDdnKFd2hhal1DWlpbV2ZkWGVrVFhdXGBjXWN4e3+LgZmqpKSioKGop6qxuaumtKOiraKjrqKnsZ+JppuVk5GKko6IgpSJa5WijZmEgYZ+kYODk5eti5WNlZmOhZKQnZensKKgoKSkqMfNz8fBy9DT0dTSztPNxtbTzdTY1tbY1dfVydTazcrY1tHKrcTDzIpxbWJfXldSWFJbUEpHSklKQDs6O0VDRDxDRD5IQz9DQjs7OTw5R0M0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKJgZ2VnpSFi5aJjoqIjoiPgHiDlJmLjYiIi4l+g3hze32Eh3eAe4eRl4GEb3hwbXV/dnh9dIZ8eWyHdnVufXaEdXl7nbWMPEGKxqV+jXxqZVdJQ2VjZmNoamRveVtfZmhrbmlugISIkYyen6CekZeYn6SkprKkpbOgoqWeoamgorGch5+SkpORi46LhoOPhH6cnIyNgoSFepR+gqqVo4ySipiSi32XipqRq7OYmpunnKe9w8W5tsXN0dDRz8vSy8nUz9HV2tfX2NTZ2M3Y287J2trS1r/MzbV2dW1jXFhSVVBZVUZGSklFRT06NzpAQUI6R0VARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXOGjXyXkZ2LfoeSgomGhYqDiH15hZeXiY+Dh4aHeoR5cXp7hIZ2eoaOjZ16jHB9b3B6f3J7gHGEh4Bujnp1d318gnV/fIeJsHRZqsK3jZKBcG5jPV5ocnBxcG54d4JlaW9ydXhye4uHjpOSm5agloiMk5ugm5+qn6GtnKKamp+mn5+smYyajJGTjoV9iIeDhYuOoJmTiIOHfm2ZeYSZhoiTjI6VjIZ7m4iTj66qlJWXnpimrrW8qK29xsvIycvLz8jD0crU1tjX2NfV29fT2tvW0Nra0dbI1cyUd3lnZlpZT1JTXUhCRUlJPkE+PTg6PT87Pkg9QEJBQURBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fYSYjoeLfoaHgHeCeW57e4eCdHqSno2hdo92g3R1gX10gIRvgpCCb5KEdXyBhXp2h3yJuMalw8q4gpacj3hwZU5lY4J6gXeGopCLeXl3e4R/fIR2bZSWlJWPmJGDiY+XmpeXppyYoJefk5KXo52Zq5aRkYuOkoOMhYmIgYaQkZ6cmYmFi4GFl3uIiZ+XkImOiouCfKGIkIu8oZiTl5mcqKalrZ6ntb7Av7jHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvHhXl3ZWdjXlJWVlVNS0RORDs9PTw5Ojw+OT5BNz4/QD1APjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVtodHp5bImNknd2eop8foB/gH2Fe36CkYqFhnqFiHt1fXVtfX2GfnR/kp6Rn4OSfIZ9eI9+eYuKb4ObgHSZhn2CioV8fpF7kKmOkMOgvYycpJx+ioR9iXKMi39zppqcmZSFe4+RiYRpR3GhpJ2Mi5CShYiLkZOVj52bk5SRl42MlZ+dlKGUko6OkIx+kI+Oi4SIkpaan5+JjJSRnZCCjH+mmYiFjoOGhICkhoqLuJidkZSWoqegnZ2do662urSrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbt3d3dmlpY1VeWlNPTkhETEI9PT45OTs6OTk8PTZAPj49PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxc3iKe3t/fYB8iHt9e4uHg351hIZ5c3p0bYF+hH13hpuhm56UkoCMh3+Yh4Cckm6IqYV6oIt8kY+DiYScfpqRiY2jop+QpK+gi5GLhouBkoZXcq2Ln6ycj4SYnJCQjlyDopGCjZ+TlYyHiIySk4yUlZWQjI+KiJabnY+VlpGLk5SGgIuJko2Kip2XmaOihpOdlaCKioiOnJCDiI+Ag4eFpIWLkLOYnJKUl6GhnpmSm52nsbispLzBx83Hxs/Mz8zP18/R1K7W1dja2dra19bZ2Z5ue3NlZVtbVlJVV0NASUQ/Pz46NDk6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieGxifpKDb213i3h6f3uBfYZ8e3aGhYBzcIWCe3Z3dnSEg4V9f5Kmop+mopeKnZCUl4qKp5dyirKNhKeShJmUhZqMo5agmJOJm56ik6mwoJGVkI6OiJWLbo23hJrEyLKdoqWbnZiWkbKQZKTNyJWOhoeJkJKOjZOUioWKioaWmpuPkJSTh5WYhH+Pi5mIjpCql5eko4iZnpaaiY+Gl5iKhY+Ngn+Gj6WIjZOpmpeTl5mhmJ+Zk5yaorK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6BcX1mYVxcXU5JVFlBQkdEO0E+ODM3Ozw6OD02NDo6PDo3Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGPfXxtfoh4en57goKDf3Z2gIN8bW6Lf3p8eHh8hIeKfoujs6ejqrOil6efpaSWla6ig5G4lZGzmo2hoYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmZehwI6jybmrnKOmrZmSm52ynYWFqKKcmIWJiY6VjYuTj4iBhoeJk5iVjIuUk4aVmIaEkZCcdZGYspaXpKGInZqTkIqQipebiYuWjod9jJieiZCQnJqZk5iYn5SgnZSem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LR1tjT0Ni6cXh0W19UX1VPSEpOREJDRTU+Ojc3Oj88PDc9NDM2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p6boWGenyEeYGGgX5weHx+fW9yjXp+gnx4houJhoSSp7usqLK9r6Wts7Ooo6GwrIqatZ2iuKWVraSXqa24p6Wjn5qpl6mjr7CqmpmclJWRl6CYmru7rsqhara4q7CUmZ+jrJOXvaNeqrKDioqNlIeQfI6OfYOGjo+UlYiIk5aMkJaNi42XmJOdmbSXlaudi5yUko6RkoyZm4qSnpCLiZWfoY2UjZianZKcmJ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8fC0aDGyc3NxdfW0cvUoW95Z1tZUl1QT0VDPjxDQUI4Pzg4NT9HPTw2PDM1MzQ1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEo/i4p/gXOGh32CiXWDioJ/bXx9fX9wd4d3joKHe42PjIaMmarCwK+9xruztMC8tK2rs7aMqLOtrb2rm7ukqK25uKunpqKipKKpr7Kxq52cpJibmJeeoqalkqS6r6nAvK2tsrmlpah+iIacrbywg4yMi5CDjoORj3qBh5CNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpeOkaCRiZSbpKyUlo+UnJ2ToZ2bmKChlJqep6akoqSws6fBxsOvsLq2xcTCv82mx8THw7zV0c3FyodycWBaWF5aTEpCS0BGRz5BP0I7OjU+QT09NTw2PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRD9DRlxlR2BpZ1pdXJOMjIh7h4yHg4x1hpGKgW9+e4F/cX6Be5V6kpSUmJCTlaezxsm/wszCw7nHvLuvq7m7mLO3urLArqXBpKuwvL2rrqujo56nq660sKqcoKqcoZuWn7C1p4ujuru2wbysqZyypaSplIWOqcTDpIKLj4eIhIaVlI16hI2Rj5GijIyUkY6Jl5+Yk5mVmKagrp2MqpyOlo+SkZWVjZCVkY+hlIaXn6CynpSalJ+gmKSfmqCboJSYnqWjpqakr66lwMTDrqi3tsnDvrbPssS/xLyz0cnIwrVzd2tbVlpoUUxIQ0xLS0pBQT1DRDw1QUQ7OzM9OEIzMzIyNjJBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWU5lXGZUY2qZjZeKjIiTkIaJeYeUkIFygHyNf3iHgoKQeo6hlqiampi6vsfIycHSycrCzb3Cs628vqi6v727w7eswqmss7y+qrCqpKWkrK6zrba1oJ+vn6WimKOzvambqL3BpLa3sKyTsa2srZeHmqmnpZGCjJOllYmBdoqReoWNkpCen5OPlIuPjZSjmZaclJSjnqqfkaWajI+Pj5WWiHyPlZKSo5qVn6GctaWQnpelo6Klnp2mmJ6Wl5uko6mnorKsqLzAxK+lsrfMwLmvxLO7vsK4rcLDwsCYa3hgV1ZaWkpLTUpGRERIQ0JBREw6NERIOTs0PDdFLjEyMzUyQjI1U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+KoJOEeIV/lX9/kIiKkICWoZmupqSYwr3Hw8fF083Ozcu8wrewuby0vcu8w8G2t7yts8C6vK6vqKCpqLatrqmyt5ueraKnoZ6rt7iqpbC/xbG9ubSoqrW0rq+XlqWsqKCRjpKyxaeVjn2SlX2IkpmQqpmYk5OPkpWTpZ6SnZmUoaOinJifmIuMj4+eiFqQlpeSl6WZZZijn7OllqGWrKyqp5ueppeYlpiVoKSopZ+2q6q6u8O0pbO1y8C4qrassrq4rqi4ur24gmptWVZTVE1FSlJOSz9BSEVESEhIOTVGTTs+OD1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnBFaUlSZWJMRqWUnJeil6mWjZCDh6aTiIKHgpyDg5WQkJSPmqKfr76voca8xcTGxs7OztLKvru2sbq7u77PtcO9uLm3srG1s7izq6acq6y5qqmnr6+Yo6+kp6SltcCwq6y0v8O6wLq0qLm1ubOvlqWtrq6ki5OVoY10wZp9l5mEj5aajLGVm5qVkpOZmaWjlKCbl5qpnJyhoJmKjZCWnGBKlpyalZqlllWXsJ+vnJ6klK+urKWaoKWUk5mYjpygp6KZtKmqs7y7u6qwsse/uaasq62xsaOhsbK0pG9sZFtZTk9LRU9QUVE7SEpJR0lDQz46S1U/QTo9RU0wNzU0NDpCNDRNV088SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGYh4uolo6Ik4Wfh4Sdl46doZujpLXItanGusLDx8rJyMzNxr67s665ucHBzLXHusG5tbqwr6+ztaekm6q0taqppq2smqSupaSorLq/qKu2t77Cv765tLPEsrm9rKOvtay5poibl6abdr+fhJmdjpOZmouul6Gcm5aVm5+hqZ6nn5maqpmhp56YkI2RnYNudpKimpWdop6QrrKiqpSoqpeqrqSkn6WokpKZnIiUnKKdlrGnqau6tr2zsq2+ubego6eopaecm6ypqYxhZGBeUUpMRkhNSVZMPU1FTktMQkNEPFFWPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH9lXkhFq5WcoZ+7r5mUn4yTq5uRkpOJq42Hop+MpK2Uo6O2xr60wLrCwsfIxcLNyMG+ubKvuLTAwsq1xbLBvLS6qqmtrbCjo5iqtLumqaarqp2pr6ejqqu+vKitvbS4vse8t7a4wbK+wbSptbervqWPopiSop+8n4maoJmXnp6Pt5+pnKWim5yhmqils6GbnaacqKqemZWPlJuLl4mMpKKUnaKeobWvpaSTr6uZq6qdnaSjqJGVlZ+Dj56em5WppKGhtLS6ta2otbKznpyipZqXlZiqoZ52X1tfXUpIRUZNUUlNRUZHQ1NMSkJFR0FWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5Z1xGQ0OccGJHRaeXpJ+ew62bl6WYmqmclpubj6qWlaemla2smaKrtsTCvL63wcLAx8O/zca7vbmysLizv8LItb+wvLa4tqakq6ytoaGaqqrFoqSpq6aerK+roqmov7inrb6xuLbHtrW5uMCyv8K3tbO0r76jl6OWlJuUrqCQoaOlo6OfkL2kqZ6oq52doJumn72imaOfoqmroZ2WjZWek56Hj4SNk5+koJ61rKWblbGnma6mnpmpnZ+NmJSehI2gmpuTpaSamKuxtbGrpaqtrJyYoKCSjpCVqJ6UZ2JYYF1OSEdKTktIRURJQD5RSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNDZAOTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm5SRjxLeGViVkyimqOcnsWsoZ+snp6uoJKjn5aln6aqrJe2saOqs7bExL2/tb/Cu8jCvsrHtbi1tLCzs7fBxba+sbi1uLWfpqyqrJ2dnqWkwaSfqq2gpKmtr6KmqL21pbG9uba2xLK0uLq/s8TBuLius7W1o52llZGUoa6gmaKeqKiro5rCramerK2bm56ZpqC+oZ2kmKurrKaimY2an5KfiY5Xf5afpqGguKqmk5i1o5+xoJ+arpaejpiTnYGOn5eVjqKjlpCmrrKrqaGipaWVlZ2Yi4+RkqSeiWBjWWNgS0hKSk5FRUFGSj49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtOnp+hmZ7DqKWitKKdsqiTq6Wgo5+tqaydu7CorLaxyMXBwrLCw73Gw7zEybyvsLatsLSvv8S0ubGwurSsmaiwqaqanaWhqMGsm6ywnKqjrrGppKi9tqe3u76vt8SttLPDwLPHtLu3rLS2raqippaVlKSsop+fmqirsK+vu7KmoKmompmYk6KkuaChpJOvr6ylp5+SoZ6Vno+QjZWemqKep7SmpoyYs5ujrpqdm62QnpOVk5l/kaGWj42foZOLpqywpaahnKCekpKak4WLkY2cnn9gZVpnZUpJTEpSQkNASUc7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+joJygw6mkqrOhpLSqlrOsp6KksqyuqbuxrbC1tMbAxMO1wMS9ycS1v8jCtKu1qK+4rL/Ds7eurLe6pZmrsquqmJ+ml627tJunsJutoK60sqerubOourS4srnAqreyxL61xqi/r623tamnrKGXl5GmpaKimJilr7iusrW2oJ+opJqVlZOkoLeipKWWr7Gyp6qmop+bmpuWl6ifoJihnq+yoqaMl66YpKqXmZ6kkJqNk5eZhZWelIyPnJ2Ti6mpqqGnoJmelYyOmY+BhZWIlJ94YmhcampNUE1OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzukpJ2ipr+nqK+woam1q526saujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDFwLqptqSsu6zAwre3qqyyu6KVrbGtspalp5GquamfprCdq6CwtLOqqba2rbyts7O5t6y4sMO7vr+mw6uwt66pq6unnpiZq6GioZGXobGvs6ywuZqcqaCZlpKXpqG3qaWjorCxtKuzqKyfm6Cgm52lnaKXnaOzsJqfj5Olmp+ompSinZSXiZOWkpWWnJOIkJqZlI6oqKafo5uXm5OGjpiLfYyWhY6aamhsYGxuV1BRWlRBQ0RUQDs7SEE3OlhQZF5QVldFWV9dTUxSTl5LSj5aY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9qJ+doqq9oquwq6OxuKqltrSsoK21va6zuLu6vba2wMK/yMS5xMLAwLjEvcG3r7Wnq7exu76/tKmusbefl6uuqK6XpqiOp7ufpKyznqyisbCzrKq2tLW+rrCxtaywtbLBu8W3q72vsbisraqjsaaepaqfpJiQmZ+zqrOrqrOanaebmpWOoKaltK6noa2trrGntK2yqqScn6ijnpWimZuotamXmZGSnpmdn52Qqp2Wl4SUloqdmZyTio2Wl5qXpqWioJ2WlZeTf4+UhXuOkoKMlmVscmdvcV5GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoaSstqWtqqavrreqr7W7qKext8W3sbe9wcK1tLrFvszGucLAur65w7fAubK0q6m6tru5vrSprbC1mJinrKqsm6urj6u+nqyusqOrn7Cts66utrK5uKqur7Kota+0vL3Ks6q2tbG0sK+oorOgm6itoKaWlpqasqKtoKWvl6GkmpqSjqOmqLOpoaazrKq2pa+xta+kmZ2tp5qYn5qZq7eil5ORjpecoZeWlKuempJ/kpeMnZyZlpCJlJKemaWioaCYlpKTlXmKj4V7jIqDipJqbXhtdXthRWBqWUlIWlo9e0pGRDZBYlRpW01cYUpbXVpSUlJiYUxLRV5gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lVS0SZl6GxqLGqraakr662qbe1uqSstLfJu7S6ur+/tLO3w8DMyLzDvLe9v7+3v7yxva2nurm3tsK2qqyxt5SXpq6rqKOwqpSvu6StsbOnqKOytLGysbWxuLOprquyp7evtrTExraptrassK2qqaS2oKCnsaGklJyZlbGep5ygqo6po56clpimpqW4p6OytayosqeusbaspZmgrKibnJ6clKm4nJSOjoqYm6KXj5iloJyUgpGVj52bl5aViJaPl5qnnKOgkpaRkJV1hJCHe4WBhIyLbXB3dHt+XEtlbFxLTmNcP2J7R0k4R2dXZlxMXmJNWFlXVFdUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLT1FTFE8M3JrSUNDkJmlrqWtr6uopbGztKu3sregq7W5ybmuwLvCuLOxtcLDzsXAwb20vb+/ur68ssSnqbmwtra/vK6rs7KcoKexraalr6WesrWsq7GyraqptLustbO1rbSsqqyoram5rbKxyMC4pbqwqa2tpamusKalo6+kqZyenJuvmqOjoqORrJ6joKCiqqamuaSstbalq6yora+2rqOeo6mqm6CampKks5mOiY2HkKGglIyUnJ+SkYONkpKdmpiVk4eXkpWZp5ufnoySkY2Qdn2OhXx8fIeJiHBzcX18fVxTZG5eTllmXEZElltHO05tWGJbTGBiTlZXVldUWWddUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis7SD8zQkhTLD6QaztHSI+cqquiqrGkqaWztLG1tbKyoquuvcy6rsC6x7G0rbTCwtHFxr7Asr3Awry/t7vEp6y3rLO4u8Cvq7GtoKOnraqopLCkq7Kqr6ywr7Cuq7O8p7exsqmzq6ympaOtuqyqscO6tq27qaioraqps6WppKOuqqiin52krZWlnpiemaydoqiqoq2mpK2ruLKyoamioKyvsayeoKeoqZmkmZmPoKeYhoSOiouen46KjJWbjo2Eho+Un5yVl5SGlpOTl6SbnJyLk5GNiX5+h4V8d36HhYZzcnGIdWtfWWBuY1FzcVxLO4R8Rj9XdFhhWk5jW05WVlVXUVxiX1NPTmdYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlVo+TEWVmK2ooquznKqqsLatubavq6arqr3Ju7C9t8KvsayzxMPOz8O/v7TAwsO6wLPIw6uut62yuL++sq2tq6SnqrCpp6ixprSvqrCurbKxtKy0vKS4s62srqisoKOesLerqq27t6W3tqSqp6ysq66hqaemsbKkp6aioqyXqqGVm6CmnqSiq6Wto5+nsbiurqOmopuqq66pnaKlpKSZoJqWj5ick4KCj4iFnJ+Lio6LmI2PioKLl6OakZCajJOSkZOimZuZio+Li3yGgYGDenSAhIF9c3aLo4d4al5gbmZXZYdjTj9nk0xFYnlXYllSZVRNVlVWVE9cXWFVS01oVlZXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxCKzpKT140RIY+SEZEl5KwpaOrsZirqq22rLayrKasqqm8wMC4uLO7taayr8TJy9K/wbu5wL/CucG5wMStsbWxs7q/vbKwrq2rq6e2qqatr6q5sKixsq6yrbeqt7entLerrKSqq5yjnrOzqKiktLWgt66gqqirqayooKusqbm2qaqpqqOqoK2ckqqhnaCkoqajqp6dp7SvqKaqoqOYpaenqpyjpKOgmpigkY6PmI1/h4yHg52dhoSKio2Nj4uChZSimo2MmZCRkY+Sn5aYloyLhH90h4F+f3h0g396d36BiJ2Pb3FnZ3F4XGFziGtPXplWSG14VWRWUWNPTVVUVVBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EO5aOsaGmq66arKWtsLS1r6umsKqpur67wLCuua6ht6/Jx8jRwL69u7zCvbrDwL6/rrKysbW8usGxsbKrs6iktKilrbOzubCjrreysLK7q7qvqq62rKqeqqyfo6C2raihn6+zorWqnqinqqOqoaKsrai9r6yuraKoqKCsmZCwopiioKeonqebmaqxqqOgraKhlKOjo6eYmqmlmJiYno6Kh5SIfY2GhISkloSBgYuGjoyQg4OToJaIkJyQk5CNkZyUl46KhoZ4dIF/fHV4eYB6dHN5aH+GpHVpXmRrgXRniIx9U1hwXkp4c1NlU1FeTU1SWmZOTFZZZFhGU2lSUT9DTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQTSQj7KhpKaspKekrae1s7GrpbGoqri+wLyvp7mqpq+wycfI0cO8v765vr+8ybvBuLCwtLG6u7fAsrO7rLisorSnp6yytrmzqKi9tq62vrC9p62staytnKmvpKClraunnJ6rs6W0qJurp6mjqZ2kqaipvay0r66dqqSgrpybs6OVpJylpZ+km5upq6afm6qim5OcoaWemJepqZKYmpSQioKPhX6Pg4CIno+Ffn2LhpCNj4R/k5qThZKhjJSRi5GakZWGiX5/cnt6fnxoeHx6dXBwfGeEeISIZGFnYnKFem1neF1dVUBXem1UYVBSWEtMTnJ1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0FKN0dTYFUqPTlEVz4qj5SymaCgqaaloauluLOzpqmxp624wb21r6K4raiosMLJyczBtr3Atbe/uci1w7WzsrWyvLe5vbWtuba/raGzp6ursLW4tayfvr2qs8G0vKGvs7Wqq5+tsKOcpaiqo56bpbGnsKCfq6mooamcpKihrbuorrGuoKujpK6en62ml5+boaOcoJyapKqjm5ulpJaXlZ+ilpuXpqyMnpGRkYuCioCAjoF7mpSNiHt+i4WOjYuKg5KYkYaToomSkoeQmY+TgIh8eWx+dnl4Y3t7cXBwcndogHNqg2dlZ2Btc41sYWlvYG8+WnhrVV5PUVFKSU1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDFCaFkxM1M9ZV9ETDZLVmRPKjsyTlg9I5OZrZqgmKeko5+opLiwr6SvsKqruMK6s62fuK+rqLS6yMvIv7fCvrC0vbfEtsOxrrmys7+0ur23qbm4vauktKipqrGuurGrnLy9pbDBtbair7e1pqensbOgnqSlp6GlmZ+sqKmeoKqvp6CmmKOpoLG5n6Oxr6GsoayknKanqZqam5+klZ2dm56qp5icoKmTmZSYnpOZlqGqkZqIjo+GfYd/go59fKGMjYh4gouEiYuLhYeSmo+IlZ6IkZWCjJeMkXyFe3NwfXF0dGB5eGlucHBuaH1xY3ttaWVjX2WFfl9ac2tyS0t/aFhaTlBMSkhQUlBJTlxfblNEWFpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo+MFhWNSiXnqeanZasoKChpKK4q7KltLSqqbnEtbOtn7etrq2wtcbIwbe/wrmxtLy2v7u+r6u9sLO+sbzCuKm7urenqLWpqKuxrbOxqJu+t6atvLeyn7G4sKilp6+xm6GkoKSkoZecr6ehn6Oor6GgoZOkpKK3sKGmsaufrKOvmJyqpamel5qepZObnZuep6ybnZ2ml5aYlJ2Ok5eiqKKQiIuPhXqEfoSLeo6WiY2GeIGHg4iLjYWNk5iNjpaYio+XfoaXi495gXpwcndvb3RfeXdkbGxraWiCbWVya2tlaFpic39eWmx2alpIfV1bWE9PSkhIUlVGMjpfXmxQRFhWWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0JnW0hUQ1RdaEUuOzFfVCwylqOimJWdqZ6moaOhuKqvobu5pqy9xLOvrqK1r62tr7TExL2zv7q3sbO5uLq4uq6tv7O0uK+/wbisvbq0pqKzq6iqs6uusqOdwramqbe3q5+yu6mmpaivq5mip5ylppSYobOmmZ6lqqmcoaCUpZ+kuaikp62mnqWhqJOfqaKhoZmbnaGSm52XoKOsnJuaopaTlZabjpOTo6ekj4iKjoZ5hHyFhn2cjYmKhniAg4eHh5GFlZOSjJCVk42OlHuCl46Kd357bHVybWxzYnl1aGdpZ2VuhGdnaGRmaGpfZmJpZlpme2NhUnNUW1tTTElHSU9TQCEral5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc4Yk0nMp6kpJKOpaacnp6epLWtqKq6t6isw8C3r6yhta6nrq+3wcC9ssG3sa+ytrW4t7Wsqry0r7KxvcC3rry8saWftqymprWpq6+hoMSsqqextKustLqeqKqrsaWYnaqeqKWRmaauo5iepKqhm6Kdl6Cdp7amr6quoaGdnaGVoKafoqCZm5qckpqelaaerqOYl5+WlI6VmIyPmJqnoJCHioqIeIV3goKCnIeLgol7foSIhoSQhJaVj4+QkZCRjZN7g5WNhnJ+fWd5cGtqbGd1c2tiZ2RidH9iZGVmZWlqY2dvWV5YXW1kYU1oV1tgVklHSEtMUlg+OWBsaUdCVVNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQWRHJTWcpKCRjK6gmpigl6W0sqOyvrehscW7ubCxo7asq66pub69vK3Asq+vrravs7myp6u5sa+us7a7trC5vqylnrWroKGxpauvn6XEobOlr7Kvt621nq2vrK6imZ2nqqWflZuopqCZpKOpnJqfnJWcna2wprmnraKhmpqemZ+kmqWdlp6Ym5SaoZKolq2pm5SdnJOMlZmOlJSYp6eNjYqJjnuBdIKCipiFh3yJiISEioyIkoWTnJOSj5CRlo6Qf4CNjYNvgX9meW5oa2pncXJrXGhjYXJ/YGRnam5sZmpnZGxcbG12cWFUYmhjZVpJRkxNT1hRUFVhZYFUQFZTWVVGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUlkQic0k6Kcj4+xnZuUoZqpsrCfucC2oLTBu725saa2sKmupbe5uLmtu6+tq6u3qrS5raWytbGvqbG3trGztrunqZ+2qZ2fqqOqrZ2qwpmvpa+xtrWsrJ6xra+qopudpKyonJWcp6SemqmjpZWaoJ2RnKOrqqm6n6akoJiamp6ij2uilZiccYOWnKSAdpGrqJ6WlqGRiZeZgJeKn494hZONg21pfneEcmyGioZ9hIqGb11kYGeEl4Zri5CUknV3i4R/g5B/ZoiAaHZpZlhdaXRuTlBqY2ZxgmZeZGZubGleXV6JkIWIaE9LRDhFVGdeSkhQUFVVS0hTYG90ZUVbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOXEtbZmI+RzFPYjwrL42kmoeVsZudk6Ccqq2ro73Fr6m3wri9vK2ntrGmq6S4tLO0sbmuqqestKWwtaKnuLa1qKestrOutK6zoqmftKueoqWcp6ibrr2VqKewtLitrqSorqqrpqKfnKGop5yXoaamnJynp52SnqCZkJ6oqqO0r6Oio5yWmJiYpImhj5Kah6GIlJ6hf6V/p6yflJOdk4iDcniNjoOHoHWIjWmXiWZ+c3mgb4iHg36MfH+hoKCZf3uHnnSIjnabimyIgoNtaWVke21yYlSGbWNtaZhxWGlwboZXXWlba2pbiHBteXKHaYeEWl5GTj5GXk1FUlZWUVBSV1RnXkxZS1JSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTlxMW2dfPUsxVWA3LyiNppeEnaydmZmdn6uqqKq/w6+yuby3wL+qpLexqqyms7Wur7O2q6mlsa2ltbObrLW2tKanqLOxrbKorp6qobOpoKSkmqKknbC3laWmp7a9pqynqaqsp6aioJmgqKSZmaajpZmcpamWk6KclJOjpqahtqSjoKOYlZOYk5yIrpCYlImpi5ijnIaxgKSunpWbn5V5gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4FslrGrsHlobFixrm9labySvG5oem1wj9h+U2titrJ+gHGUdZqhqpBXT1hhT1ZORlRbWFFQU4tcV1tQQFxFUU5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV5nXD5MMVpcNDEhjqaTgaeqn5ednaWtsqmxwr2ytb+1uL/Cq6a0ra2pqK+0qq+2tKiopralqLmvnLKytqqlpKeyr66xpquep6SypKKhn5ecoaCxrpWfo6C0uqKqqKGtrqWinZuaoqqgmJuooZ+YnqinkZynmpSeoqejoLCjnp+jlpaSmJKZhbBraoqNqn5nhZaHrWVxn56VmqeWca6hpH53unxroY92sV9qtFulgGWckWBmgXpmgGl4aqllvnJnpox2sWp8sXh1kpRjbW2nblyEoEVpZ4eWRXWcYH1me6Omgllfi6tpgJJ4emqoOEqvW1dUbWNaTE9YX1xXVjtOiE9XVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWTMxG5KilYKsp6Wfo6SqsbettL2+sLfFsri6w6epsKyvqamxr6SxurCkpa+zo6m5qZ6zsrCjpaCqrbCsr6aon6OisZyjnZiVmJ2dr6iXnKKftLOhq5uhra2gnpqXoKOqnZmepKGcmqGnpJCdo5uYoaCsn6amoJqfoZWVkZaRmoa1m7V4hamZtZl3h7Obt3+Ul5erln5rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iHCOhoCAiJCXeIOCi5eMg6CPhbB2d59xa2psfItPpVhIY2OZfmNopV95cXVSkodeUKltY3F9hoBhnS9Som5bVGtnYExLXGNYXFpCPrB4V1hBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7RiwwLjg0MCwuKC8yLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o4YVU1MByXoJSIs6amoq6pqLOsqru2wrC8wq24t8KrrK2vrqeus6qir7yroqe1raOrtqWlsrOoo6Gdp6qyqLCopp6goLCWoJqWlpeaoK+jm5qkqLWuoamPqaiqm52WmKCmqZufnaOfnKCjpaOVm5+Ymp6jq5ulmpyaoqCWk5GTk52E1ZOZuXGwwn/GhnzWlJy7fJuXp5CNnIykeo2GooGlgnqseY+dVq97iX6farlauXeGg32mgpN8mHqqeY6dkHuxbo6EdJC7hW6VUK+nxYpRoHpjYKpic3KGbJeHX1O1tMiFgIl8Y6QzQp11XVBqaGRQQFhmWmRhSkhNa0paU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuMDA0ODMrLSguMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdHOmFQNzIlnKKTmbGoqaWzqqW0qKS8t8GxusCytrW9tLaosrGjsbOmoK+2qZuouq6jsLKhsrSxoaSenqepsam0qaWcnp6sl5mZl5eWmKKsnpuXqa2wqKOfjqyiqJedmJyhp6KYoqGjoZuioqebnqCelZmbpqGcp5Wbm5+gmJCSlZCdiLJuaLVxq4hwjqZytHRztnubmaaNj5yNon6Pn6R+sHWDkdLRdVuufIV/pG+bqqZrhoV9rX2XmY97sXOTnY94s2WWdIWebp5mlFLJi1rCXJ95Yl+tX3ZzhmKXiF5Zyp1vv4B1TUu1U1XGZFRRamNmWEFPal9saVBVRkk4PVdSW1ZZSUM/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHJoOSdXaVxBTlRfZVA1Rz1hTTYyLqKdkaWwraWqu62ntaWntru8sru/uLe1u7u0prW0orKyo6CssKWYp7qupLKxnbS4qqClnaGqpLKorKqlmp2bqZ+WlZiZkpOjqqGXk6ersKWilpKsn6aTlKGcpaeglZunp6Kao5+umqGenpCWnKKenKWVnZWZop6VmZaSm4Wse3eodqOPi4epb62Kg6eDmpqjipKZi6J+kpeHroV/grNccrNSrn2CgqR/cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52d4dnmIhqXa93lZ+PeGw1eciusl9CVG9dZ2BFUGxgcW1WVU0uZWJoU1lQO0JEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wMzMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6NzegnZSguLGYs8GtqLKnqrK6uLS5vrm4s7a+tqa4tKC1raCgqayglae2rKixsquttKSbqZ+gqKK1p6aqpJmelaWilJScmpKWo6ablJCnra+loZWYqZ+ij5GimqmmoZWapqmdnaSerZ2hnKCNlJ+bnqGYmZyWl6GglJiRpp2GqX19pXmhj5CDqnCtjIGmhpahooqXloijgZCHlKp7f4udeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClG2TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZU9KQ6FcWk10XWJmTVphX3J0X0pVNUqaklhIRT1IRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVF9iTDdGSV9DMT03opyamr+smLTCrqutqKa0sLixtr+5urOxuLyqu7WgsaWfpqenn5Sqsamwqratqq+hmKGgpqSkuqKjq6GXm5GjoJWVn5uVmaCgkI6MqbCvpp2Xm6emn42SpJiorKiVmKmonp+gpK2joZ6hjpWhmJ+gkpyXnJWdoZWWj6ubj65ucrR0qYx3iqZztHl0tIGTpaOTnIyJpIeOdbhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6YhnBcr1Y8nHdmVG9uLlunT2JSa2VibFpiXGBwfGNTWVE+Pm1vMkJCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eOTFBOKWam527opyywK6tq6unt6m4r7XBtb2ysLq4q8G2qquhnaekop2Sq6untqOzqK6qoZecqKClq7mdo62clpmQpaOWjp6hm5men5GTlau2r6eZlJusqZeMlKaapa2jkZersqSgnqirsJmhopCZopegm5abl6GTnKmdlJCqmYfTk5q7dLHEgMOGfdWWm7h5iZGYjZeJjKeHeaK2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+ifox0h6t9vm5zvHSyg3V4gIptmohxbY2kdL1dd31bYXm8alpWW2l5XmlhZGZibXlvWVtZQ0FAcj9DRis1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy02QDmnmp+ivKKYscKwramqrLGoua+3xbK8s6+8sK7Bsq2mo5+koZ2ckaqlqrKktaetpKCWmqqZpqy5naOumZWhkKagk42co5+Zn5qQlpOvubCrlZejp6eUkJalnaStn5GgqKufnJ+ppLKeoqSOp6KUoZqcl5akmI+woJKVqZ+FkJm2gJGSjbiVeIKTm7V3bmxuc295j4SOiXOewbu8mXqBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV5s6N1dpd1dLB1mJ5mhmmNtnRycXe2jF5/eX2IZ4N5bXlii6xwdIV/WFunakRkWVRmX2NdY1FmZnFtdUJNUE1EO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlNZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PjcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlrPCtKuqqK2rqruvscawtrSvuKe1ua6rpKKnn6CdmZSspK2qprWoqJ+clqCjnqylvqehqpeVnJGim5KPoaiilJ6XkpiUsrW2rZidpKSii5KSppylq52WqaWmnJuiqaemo6ihkqyel6Kel5eYnZ6PsKmTnKeij2t+aZyoeYlzfpuOdXplh3u+v8C6bpKCcZWFX3JqWl2aiWFkh46Va2B/lWNtnHZilGuAmpWUZV5fY3GbiWhzjXyGlGZqfnF0eX59Ylt4dIFoUFxug3x7impYbHmBcklKb4VwTnNNRVdcZmFMW1dmY15PWm12anJST0RFTTxISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMTs6LjAtNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPltPJz8yPqifqKHBpJq0urajrKaup6i1sqzIrbG0rbakvrGzp6Gkqp2jnJqarKeupKW1qqSbmJaim6atqb+oqaWVlJuWoJqTmKWpqJKfkI+YnLCyv6ybp52noomTkaqbqKScnKyfo5qbo6esop+qopqum5WmoJaVnZ+dl7GlmaKomZyRnpyjpZqno5qdmpqakJaCaG59cXaRl5SRg4m0qY2FmJWOioyYl4eTlYqDk5OQiI2RlJmTmZeaoKGam5SgnI6CeqSFbGl7kH2AdYmLgnKCeHl2dYqAe4lqc4F0g3Vkd312a3B6bWBjW29nTFhZZWpfV1lwem9uZlNPRlI5T1pOUk8oKztKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODEwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KksbG3oKmms6elsLWqyayusqa1psCotKGepaacpZaWoKunrKOjt6ygmZeWoJetqqbBn6yklpKcl56YlJSinp6jqJKQmainssOwmqudqp6Pl5apnqucnqGtmKGbnaKlr6WhpKieq5iXpp2ZmqGenpywoZ2ip5WYlJmUoaOWpJ+YoY6WlIuKjY+XrY97lZuCkYCJqaiFgJiWioSOn4h7g5CGhZqRh4aJlY6bl46QmJ6jlpmSkJ2Nfo1lobOuhImEd3uQin13eXpvZ3mQgYCJa3WBeYhyaXN/eXWDh4JrdGN4Zl9oZGNkZmpYa3twamtcU0xQRF9VRkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXV1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAtKC5r76sq62xsqCqprKtoqyzsMaxrK2ks6+8pLScoKeioZ2Zl6imqaakpbO1npWVnZmZr6auvqCso5KSnpqZlJKWoZyXqZ2FnamsorTHs5+ppKqWlpiap56pnKClq5Sfn52gqq6opKOroaybn5+gmKWenJ+csKSZn6iTmJidkqWamamfm5dmg5J8ZX6Pmo9jeIxsaGp6kKOra2SZl35nhYplZWloeo2hjmtojJeRondraouYop+Yc2xueoSMhnlYZV2Fgl5si4qCdltoc3d3kYCHgm54gnh/c215hHN3iIiOg3tphVhdanNkXXOIaWt8cW1jXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS42Wk82KUVZL0RPMVlCOz8uPaWfury5r6uzsKulqK2usKeurbC9squopa2wsJ+tmKCknqKamqesnKyjpqips66elqOQoq+mtrmlrqOQj5qhmZOSm6CYmaaWe6Wsoqi0w7iloqevn56VnqOeo52kqqiSn6GeoKqvqamjqp6nm6aep6CslqGcpbGkmJyrlqGfm5OlmJ+rmZ5+voOIcrRyhZ6FrWh3ucS4cZKho3ummJhzqoJ8y8DAu3GKo4eCnnyWmIiewL2Clp2djZzBwHuBepGMmsK/fWulsm+MgW/Ken+bd5GDjoB2eYF/eXF7gIZweIWMk3lsdpFiZV54ZF9lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWo7jDtLCvv6mplKOvqbCvraaytrCrpqelsaugq5iboqCcm6qnop2roqWppaW0pJ6jk6aurLi0p6+jkpKZnaWSkaChl5ugnYemq6Srrb/AsaGprqmXkp+eopmjpKqjk6Chnp2srqerpqOhpZ+kpJytqZGkm6mtqpydq52topeYppeipJidf86UeXqlgXqWlptfrY9djqiAoKF8p5WadKuCgK9eZIypeqiHhZ90l5KIs2OCq4agjY2zaoSuc3yWh7hhgq1Zo81ukHV723t/mXF+iJJ1f2V7iHZ2bH2Hbn2FkJF+bICNX3Bqb2ZgX3hkXHFoamNmYFJUU1deSk9DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NDc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1s6TC0hUEBGNC4xrcLAwLW0sLeYnpGjqqmttKumsq2trKSsprCqoaebmqaYnKKvn6GfqKejpqGfsKybnpamrq2wq6isoJSSm5+lk5CfpZedqKOerqSrsKi/xrOoqbGulpKenKKXoaqqn5Whnp2cra6mqaibpqajoKqSrLOWpaKqqp6kp6eisaKTm6eboZuVlJGXoHCFjJh1hKiHcbB8nXKsfaCfgaWPnnergn2tf5xyrX6rh4afdpiSe3yXfqqIoYuRi5x+q3qIko6ggHqtVpzEeo9vksF9gZVtdXCMbWZ3ZYZvYXducm6IipGPg2yPjmRtc3VvYGZtZF9vaGpuZmNXU1xgWlJSQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/UxseytJ+do46joqKtrravqbGnqauorqurpqKjnZqjlp+mq5+ipqCoqKKfnrCsmJuXqKivrKinqZ6XlZqjopKUoa2bnaejrqyjrLWpuc2yraaurJaVnJ2imZ+urJ2WoZmenqmwp6mpmqqoo6Grm6+xoqisr6aZpquqq7Kkk5ikppuVkoWkaqR1iXqpdXqycYKliZiMcIefmoekX2BSq4R/roKbda6Cp4aGn3qZl4V7ZoCjiaSYhoGjfal/gZSGrl58qFWdopKBeqOfgHvDr8WMc6+0s7lxYqmvwnRojIyXjoFsmJFubHh4d25rZmRkcXBme2ljXFZfaVhYVExMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLWwr6mto6inqqurqaSmn5uln52mp6aknayaoquhpJ+vop6bk6qktrCuoKmbnZeVpqOQmqKon6CmnLCmo6ixrLbIsrWprKqVkZydopmgpbSdmqGUnJ+mqqqirZmqqKGhqaKzraKqs7KinKqosLC3pZSXpKiZnZJ8qmyehId1q3l8sG6CpIuIn5aVnpWB0re0uMmAgbJeX5Spg6SHh6B6mJWZeKrJc5mjlKipkJOajH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI6PnJJ7b5WQfW55dHx6bVtlanJxZoFqXmFYY21cXllJTExLRURCQj1BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTBxrmtqbOurKWinbK5rKqhppuopqusqaagpqSYq6OfrqydpqGsmp+ppZ2ntaCjmJOoq7ayrJumnKCWkKatkpqcp6OgqqatoaOnqbC0wrGyqq2olImYnaWboqSupZehlZmcpaWpma6crKelnqujt6ygsrmwnpyvqLS0tKaWmKmkm6GPgp1OeJqBf596hKN8gqSEhqaenJ6UhLh7fHm5gn/MxsO2d5uhkIuffpqWl4l2n5eKpJikqH6whZuEnoSsfZmUYaVso3CPhZCBfZeEcqxgpHJxgJpgvH1SVXWOkaOWe3yRjodyeXKDfXBcbG53cmqBb1pjX2huYmRdTExRU0FIR0ZJOTlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Gss7Smn6GVpq+urqmmnaWlmqOnobKuoqmnsqCZqKSUorWjpJaXoqq1uaSco52jk5Chspmem6aloaKurJykqKK1scOxraqtqpGHkZynnaOknKWXnpiZmaWjp5itoaykpZeupbusobe3rp6etbO5srSomZ+xoqWfh4/RtcO3eYeOhZGTj4CmeJSid4ugkoWlgotxq4aFtG5yaZmjnJWJn3yXmYaHkHOugqWboo2mi5OciJSQmm1wslylc5N6nGyZf3uZfm6pYaJxcX+fYnOyuGh3j5OkmH2Ki5CIdnt4jYFsaHdpeHNugHVdZGRtbWVoYEpaV1g8SEY/VDNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krr+/vLu1npeopK22oaKZlaOpp66pq5mloZ6moaC1p6Kpp7CjlKujjqStpJ6RmpqqtLSknaacqZKUl66goJ6mpJynnLSZoaqjtavCr6mrqaKMhI+coqCmo5WZmpyYm5imo6WXqaasoaSbrKa9rJW+sK2fo7C0u6y1qJ2qs6WpmXuokX18sHeKgaSliJxtsm+gh617oY+DqJaZgKyJha6FoJSooaKXhZ+AmZWAe5J+q4CdmpaLqnidoI+Ik5J/ea9do4F8pqdknoB8l3Rrrl2la3GFmV1gW4ygbZSQpZiBk4uTiXh5gZZ+amx9Yn10bYB6YGdlcG5nZ2hCWV9bPUpTMlQ4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaV1NQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVlFIRklKIygovJKahKnGw7bBtJ+araCuuKWjjpuko6Cvrqmfo56drZieuaCiq6CvqpqtoJCqqaWWiZqQrrCspqCom62YmY+toqGdpaGapZytmKCopbaov66kqaOfi4CNm5ufpp6SlJmZk5qapKOjmKeqqqKjnqmovqSXw6yro6Kss7ussKiitbGqrJl2r36QipyFh326rYmYZLCMZZWtfaGPg6eWm4GtioSwhaaZo6GikYWgW2xqgbNgf617e4KAsmxnbpmXi4ixW320W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqeaipaPk5R5eI2bfGNzfGGDeHOAfGFpZnBtZmVlT1VjXEFUXj1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE5KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vbu0wbOjnK2mpbapoIuZoJ+ds7GonqKfnbSYoLOoqquesK2eq5qUrqiijoibjq+sqaejqJmvk5qPqZqhnqWfmqSjpZmeo6myqLyvpaienY58ipqWoaCZkJGZmpGZl6ien5enrKWkpKKkqbueoManpamirLW3rq+ooL2vrq6XgamSo66Om4CGpJeYkIGAuMO6g46dk4SnmJ2CrIqCr4mnnJqlq5F+1b3CqmKjv718fqOCg9e6t7WFk5KCnr2+hGqjgW+rhG6df3qysceDa6uwvax4d6K+u3SAlY2lm4+ZjpSad4CQmXlifHpjjGd4gXtga2VramFQYltTaVxAVGBCTCk8OjUvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0sb+6sr2zop2upqWzpp2MmKW/qbawp6G/pqaxm56xnLmon62upaeUk6+sl4yDmpGupqOsoqWcqqCYi6OTpp6nnJqhqKKZnqCsrKm4raejmpeTe4eYkqabk4+RmJeOmJSomZ6WqKeeqaahoqu7nqnFo6Cvo6u0tauxq6K8qbCwm3R2qqS2hWWJn3BnrI+Kj21vd6SQmqCBdbCalnCQjXKWqKObmK6kcmxtbGWKeG5tgplxgHppcGlmiZaVl3FoaYWGZ3CGZF2KY2lvWV1nfnimYGJyj5JvZmSAjZOOoZeWl46Um3uGjpR0ZYZ3Z4xqeH54ZGxjZmxiS2VXSmtZOlBkRFAnSjorIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKq7urKzqqmirp6ks6qYkr2xw8e9tKmev6uso6Cmq5+6o6StrK2ljZWtqpCMhZWXrZ+lqqKfpKSgkYulkqeZqZmWo6qglpylpqevuaqrmpuTknuDlY2ml46RkZeTjJeVppOdlqehmbCmnaKsuaCwwqiks6assbKrr62puqWwuZeLoamltp2JlqKYhqmakJSdk6qzmZujrKG0l6OhnqGinaGkoZWrp4ySk4yHkpyclJCZk5iQjpWEf6Sal5WOi5OSio+GhH5ni4B0g3Z0h4xxp218lZKUk4GBj4+PjpyTn5SWlJ6AhpOLcGeOdm6Jd3V8eWlrZGRvY1VgWEBpWkdiYE5YK0U9KyYhNjQwLx8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKWWqamltriurqKwpa2foLaxkI6qxLvEubepoaWdm6WdsKijtqedqbWmp5CXrKOLiImPnKeWrKSimqien5OVo5eomqmZlKehpJCap5mhtLmnqpiakI17gJOMoZSKlJGVj46Sl6SOnZinnpu1o52mrLeor8Kuo7ensK+xrqqrtbuisb6akqakprWikp2mno2pn42Sn6OssJuhpLKqsZmloZ2kqp6enZyXrJ2SmqKblJCWqpmNmJiWkJaekYegnZWUhZKMkI2Vi4F+Zo2HdYd2eYiEdJxqh5GVlZKKfYyWkpKXkaCRm5WegoaWhXhxlHJ4iX5xe35pbmRfcGlgW19ZbWJQYGRPWTlHRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlaSno7G0rK6jqaetoKi1qpCPnKOyuq2qq6GimXqcorCkpbGplpu4pqOTl6mcjoaKiZuikK6fpJeooKGSl5mbrouqlpComaiMmKiOnri2o6WYm42JeYCSjJuTipWRk4+MkZahi5ycp52et6N/g6+1orCvdKS+o7KgeHuhrLO9lneupaCKgKp+ZFxidp+OpJ2Dl35uk7Oco6ivq6Rln6CUdHqal3GAmamYbICjqIplnKWbkJeYlouSm5CEnZqQlIOSh46OkomFd2uQiHaHcXyGgYBhaYmLlZOMW3aVkWdoj4xxeqOXlmR3l4aAdpdogomCbnl+anBlX3Zva2tnXGVjYWFvUlo9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHRklLTFRVVVldYGhnZ1hRSTxERzw5VlJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqaWpraSnraWSlqq0rrGlmammqpdzi52vn6irp5OWuKCgjpuknpB+iIiano2smqSVqKKejpeRnoV0rpCJppqokZajiJu5s6egmJmLiXV2ko2Wk4qTkZCTi4+Tn42ZnqWYm7KWgIybtZ20jJKPvaehfqeie6SwuYKOj6efhIuFj7Gpr4yJlqKZeYGLrIacnaKoq6mIlYeZd6WbeoecgZengoF7nbJ6ioafl5mUmJaBkJaWhJmaY3mHkISNj5KLg25xkIh6gXGAgYZ/hnSHhZaSeJZok3SgmnR7mYKemoSYfZGJgYKYaYyMhGp4enBwZ2R3bWlsalxkaWllcltcSFRMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaGZZUUg5REs8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZStxbyvoJWlqLSdj4Odq5ymoqCNkL6emY2fmqGQfIWOmZiIrJ2jlqGhko6UiYaAkaiOh6Kco5OWnYaeubGnnZqTj4VwdZCJlJCKlI+Om4uOkZ2QlZ6jlJ2siJ+0ibSarovKiKuvibeFjbCDsrCFqY6nmI2dfKiPcnt3m46mlmiVpHm0i5+fp6mTmcKCf6uImKFxnoCapX2XhZWygKF9oJOfj5iXgI6Tm4mYkot8hZOGjZSTiYNtc5KGgHtyhoGEfYV1hoKYgY/FZoCph4+iap2BnpeAmYCKi4OImG+NkoRnd3R7dmdodXBnaGteYm5sZmxYZkZcUUwyRTQ2TWFjNyY0PERHRDo2MzY1ODs4Pj09PkJMP05JSktDUFpdXFdiXmpsXFFFPUtNQEpkWF1jZ2hnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5saqrp5qUnqKkqqKVpKm2oq9/oKacpZ6diZS9mZONoJGdj3mDlpaRiKuZnJuaooWPjHebnI6gkYiepJuVmJeGorispZmbjY1/Ym2Pi5OQjY+MjJeLj5GejZKeoJigqH6hp4etnaCWrpCgnp2RhoKgjayxiKSOq5qMmn6idYCYk2uBq3RNq3iHjZ2Sm6mpgqqrfoShe3qnaZ5/kmxnl4aYtomefm5gY1iDl3+Me2Rni3OZfXmWa118l25fU3GFXGBseYNgWWWCfoSBmHGnqmuDo25ypXCfgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbXRxampuXmpvbGtoV2dOXVhFOUA0R0ReazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpbXV9XXl9idmBNRTpNT01UYlxbZmdpaWJiZGFkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJadoLmgqqOmrJGhtryrr6KZlp+gpaurn5yttKKnkaCfn6abmY2YtJmQi56MlYt1gZSRjYqmlpaYn55/k4WGrKOHnJGKmKmYmZqRh6WwpqKVmYiJgGluiIeLjo6Ji4yRi4+RoIuSnZ+boaV/k4GPo6GUoHeclpCng6KogIarr4aleot9hJp9onBykoeWe56MeW2Hm4uZkZypnI+HnXyConN2pmaefnekXph7fZNzom6Yt7S6c5KHgYC2qGSBxrh7cJW2jHGAm6RjdKyrYH1qnbN+bn2Hg4+Ci5dxgKNsc6RznoJ9o16cmbOWb3uXnrN0cluesoJpYm9zdXFoblhra3JyZFtoXWJMRD1ENVFBWnEyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWVhgYHxkSUM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi2ra6gmqGboqOkq5uasayrkpegmKCkmZqUnqubi4iSeIuFcICWjYqPoZCTlJ2XfZGKjqigh5iPipKik5uajIqop6Sej5aHhH5re4d+fY+Ng4uPj4mOk56BlZufnKCfi4l3nJiijaByoouIqYicp5GXqayArox9eqCZeaOTeIBzl4iMnH2Wn4abjpmcp4ejZKF9iZaQm4xsnmiajW6amXuAiqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z2iYqAnWiadYeTkpiOf55tmZBqpplcqH53u2p9qVqOhF2zZ1xucXh3a2lbcGl3eGFfZldiQlBFTzdWQlJuNEpaWV5OWkRAMTUxOzs3SD86Q0dVP1hSWF0+RGJdVmBRYWN9akVCOU5bXllkZlhmZ21tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCsnaabmqefnayZnbCnq52Xopmhn5mWlqCjmYaJjWmIgHF7l4iMlpeEkpSYj3qKhJajnImVkIaLnZGcm4iPqKKfmoyRioCAaYGGeX+WjHuIjY6HjpWZfpKhnqCik5hyaJ+KoI+McJKMgqmImaCkqaKpfbCtpKK4l3ajs6Kjf4iUeJ16q5p+oo+enJiJmHKhfYWNsLV9a5qRoXh+mLSjo6uohJh7mnycmn5zqlpdb3uXi3ieYkx/e3uFZHqYQk2fWaJqcnyOboGKhJl2m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B9fW5mX2todXtiY2BRXldcVFZAWUVRZ0VSVlxhWF9JRD1COEBBOklFOExFWEFWUVpWREZhXFpgS2BtfXJFQzxVXmJaZWpWaGhtb2JmZl5hYFxdXmBoYl9lZHZsXmVnZmxkZWxoaGtplJ2Bsa6ZhFNfoae0urOzqZqii5qpm5ynkqCro6Cnj56dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGTlohygImSoJtykpCBiJmUn5qEjqibmZWKiop8hGyEhXGBoYx4hY2Ih5GXk3uRop+eo4iuhn21hI+enXumlnqpgpaekYuinn6naHdtfplzoHNxfJ2FmG+Tgq59o4Onn5uBpHBeqWh1o2NvpWGc0498epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKnvH93g21/v6aqtF6cb35yl2+Bc6JyXqRndKZgaKZsmtOYeoKbbnd5l2ubeXaXcmyppWdfZHlwf4RrZ2ZjbXV3Zl9hUltmUFFhSFdJVF9XU1tkaltlUUZDS0xKS0JKRThQQFBNWFNYT1JRYGVlaVJkeHl3SkZFY11lWmhqU2loam9jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZmhsaJibf7CsVFxLfqmvsrWws6OcmISXpqCgo4ykp5+XqImZl5iTmZORoJeOiIV7cH2EaH2Pg5OagXeRjo+JcH+Hj5OSbJiUfImRkqOVg46qmpOSioWJeYR3iIBugZ6Gd4CShYeYoJZ5k6KjmqCJs6Gitot6rKekrqVwqYCbkYaBnZN9pICimYaYcZ6Eoq2uiZeLgIykjZWDr6KUdrW2tcmidJSLgp5hnZepbXmVh5+adaGHd6B9kJaKgW9MZqOScJqIc6V7eXRig4JsfqBscmRgnHJ/dJdre2q0tbTGpnOYfnqcapqaq3SBmm1zd5dpmXl0mHFQRH2zXmp1aniHZmtnYnR0cG1WXVNZaE9SaElVTFhSVlxna25VZ1dNSkFKTUpISk5BUUpQZGNpbWV0cnN+eHtudYl7e1RRT21eaFtraVJqaGlsZ21mY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinImvp4VmP5Shsqyvr7Wioo9/lqeioaOLpKacm6WBmpeWjZeQj5uTjoiDeWp5hmWDjH6Wn3l1j4iMgmmEhZKDjIWdjXqMipWlkoKXqZeMkYuAiXqAfYt5cI+ghnmBlIaIlZ6Vf5Olp5yWloRnbnicbKJkfHGleJyYcGingpiNfKV6oJaDlnKfdoCJlJWPuW6QiqJifZmiloluc2qra3WgbW+mYJtpi5BploealXWigH2aX4uFjHVviGJooWWef2mbdXBkZ4iCbnOiWl9bZKFuXYmMcHt/dHJkpW54omRmp2iXcouYbqFvUoiPbqBeZKdUi11UmG1tcmpxgW1waGt4c2tvUVhWVmZZU21JWE9cSFhoaHNqWWtWUVJFVlxMWFJhVWhqXnd1enxwfHxygnt/c3aNgIN2XlFzYWdicWdQa2hoa2xvaGRnX11dXWBqYmlpdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqrGxpp+Lf5aqnJ2ki6GhmaGhgJWYk42aj4uXkI6Le4ZxgIhoi4p8l5pzdIl9kHxlg4eViomWmYJ8iIaWppCBoquQhZCKgYp9gICOc2mPpYR9hZOMh5efjoeSqqaeiaZ4lpx+pYmWjLKZnpGDr5efpXmXiXqpdKaPhJpupaKMkoSMg7xufaWvgoeGh5SXnaF9pntyqJSglmeefm+sY5aKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm5un56RlWJ/q4uqd4B/jqefd599haSVnaBpmod1rGaerYy2c3a+jKSTWYOmjathdXFzb3t0cWJqfm5obFNWWlZhYFxqTFxSXUldbG12YFtxWVtgWmdzZW5vcWNxdGB3en55cnmDcoN+gXt7jIGCgHZieWRkbnNkUmxnZ29tcmlmaWFfXlxhamJsbHpvXFxiaWFtaXdtZ2xuYpWmqp2BgJ6klqqqnqinrqOZiIGWqpmdo4mapJyonYSLmo+FnJGFko2MjHSFeoiDb42EfZeTc3WGcpGDbn+LkoaGlI99e4KFl6WNf6WljYCNiYSUdYOHkm9si6iAgouTjYibnoiLk6qjoJCAdJSXiH6BeZSvpH+CnHGPhnmSjIWAe3KnjHF9fXqXlpuEjXh7fn6IlJWTi3eRmaChhHt+iWuMhVt5eXN5cGlufpKJcX90gY+Uk3GFg4JljX9fgYCMeHZ0lHVve29uiW6Ehl93aXiOZoKDho+qnH90fZdqiYhvf3V8hHVtbGaMc3d7l3eEW2pYeY9obndycW93eG9dbIZtaWdWWl9XXGRrZFVhVV5RX293eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV6gXV/gH+BeYuFgn17bX9sZHluXlduZ2h1a3hqaWlkXGBaY2llbHF1blpbYmtka2t5bWhsb2GOlbqpp4uhopumpJmknauioIODlqqRnaCImaaaqJiDgZuLfpaUh46KiYxygnyPfX6PhHqXjnRyhHCVhnt9kouGhpCFeH6AhpijjHunoYuFj4+ElYKGjph3cYSqhY2RnI+Hnp2GipqooKCrg4mOlZt/foqXraiQk6eQeHGek4N7k3B/qYZwfZVxam98gZ+Lf5KOi2huXYSMjJycoI9zlYyIcXRrgnZ0gFlyboaQgX1+i2ldaWN6hYOIgF9peHucfIONg3aBh4NpeYyIa2Jxc4N3X3KNgoqQqJaHZ42Pg253i4Jvg4t3bmRmY3mCepVaXGlmbnZbenh3dG1zcoJmXG2Ka2tiWlldWVhrcVteYFleXWZyfXp0b3Rjamppe3xyend0ZG10aGx7fnV6fHt5eX+Af3CGioR7fXN+enJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VubGdyeW9oam1gjIyrsaGQo6Gan56Ynpmpo6F9gparjJ6Uh5qhkKSUf3uYhHySmYiIhoaKcn2Ai3aFi4GElopyb4BymYeEfpKDhIaKgXqAhIuan4+CpqCHeI2XiJWLi5yXhIN6rIGQl5mTiZ2choehq5+ioqOLiJObnaOZlqqiqKehk5yJmJB8eY+Phah+fpKRkpOcsaWalJ2QjbGSmISmjIyWnKCKkZyDiZKKa3yOdndlgoaQinyJnYSHi4+HiICFhJB3fHt1m6OJiIufi4aVf36NgoF2cXSGhX94iYiLkaeRhIeOiIOMkIt7hYmHjYB1a4GDe3mZaXJoYHSKcH16d3ZvdnOBXV1vh2duX19aW1xSZ3FVY1tbYWxodHt8cm5wZGppaH97bXh+cGhvcGxmgHtygYB3f31/hHttg4yGfHp4fH56g3hOZHZqc25xe2VrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2InrqflqKhmJWZmJSYpKCde3+YqY2ejIWfnIqdlnx4lIJ7jpmJhoOEh214gYBygId9h5OEbWt+epeHhIOQfoCGhIZ9h4ONm52RhqmegnGKj4WSkYuckX2NeqmDjZGXlY6cloWFm6agopqdhoSTmpmZkJmmoKaenpCXgpOLeH2Ij4WmfHyPkJGFmKqgnJOcj42qjZGAno2JlJqfg4+Yf4eOg3B4hnF0YX6Ej4Z1jJiAgo6ChoR+hYSVbnl2dZSjjI6Gm4WFjnWAi319c3N8iYR7eY2PhZOokIeEj4KDiomJdYSGh4l7bmp9f3ttaGtsZ155fmd8e3Z0dXV6d1xgcH1tdWBjWlteUWZtU2VaXWFraXV6fnBrbWNraWeAf2tyf2tqc254boN5boaAdoKAfYV2coKNh357enyAe4KLYGl7a3VoaYNlamNgaVtjdWhvYnVta1RicXllb3l6cmVqbW2Lip+4mqGkn5ORlpeLmp+enXt3nKWQm4mGpJSKmJl4eY2FfImRg4yCgoJse394coCEfImQfGtofYKXiYGIjnx+hoSHfI+Aj5ubkIemnH9wi4qMkoagoYqFjHynkYiPkpaTlpJ2jKOgoZ2Wmn+CkZqZk42aoqKkm5iRnH+PhnqBhY+IoYB+jI2PfJekoKCSmZCQpoyPgZySipOXnH6Tk36HjoF2dIJwdmB9gI6HcoqWfIeKcYx+goWGj2h4cnmNmZOQgJh/iYxzgoh9fXJ6fIyFe3uSjoSXppSMhpF8hYaHhXSBgoaGeWRxen54eXBsamZefXNofHV1c3xzf2peYHR2cHdkY1hdXlJqaFRkWF5haGp2eIFxZmtjbGhlf4BqbX1nbXBqfXeFemuLgXKBgX2BdHaCjIZ/fHqAgX1/j2pyg250aWKIaWxiX3FVdG9tbmB4aGxXanR2YnV6e3Fia295iY2fs5KlpZ2OkJiPhp2gmpx8daOfjZd/jKGKiJqVeHuGh36DiX6IgoF/cH56dHWChH2IkHdnY32Gl4uCio14fYCNg3mWgJWXlY2Vn5p9b4uBkJOGpZuHjImDppWEkoqVl5KRdpCdoaGYlJh6gI+Yl4+Xmp2knpmTlJx7kYeEeIaXjp5+goqOjHOXop6gkpiOj6KMi4OYmYSTlpp/mI18iY2Bd3J+bntkgHyLhnCGk4CPgWuHg4GAiYVmdm99iJOZjn6UeYyJfYCIfXxygHmKhnqFkoqMmaOXg4SMd4iEgoF2eoCHhHRfd3d8c313ZmtjYH5panZzdHV9cXxjY2FzbnVybWFZX11aa2RSYldfYGlsdXmGcGNqY2xmaHyDa2h0aGxvaH98gXhtj4ZxgIKCf3R8g4yBgH56goN+fJBtdYl0dG1limxqYWN1VoNpcG5geGdsYWp2cGZ5e3lxX3FshYWQna6Yp6iejo2Xh4Wfk5aYfXaom4mYeZaci4yYj3h7gIt9fIN7gIKBeHN4eXN9gIN/iIqAZF59i5WIfoWIdH1+in9+mISWk5aMo6CXfnGHe5ORiqaPjI6KkqCRg5GPk5eQioCOl6CbkpCSdIGOkpSJnZ2ep5mYjpWYdY+Qi22GmZCZe4eIkIlvl52aopOUio2ejIaBk51/k5KWh5qJfIqKgXpyemt1bHt/i35uhZKDk3dvgoR+fouAZXNqfYGXmIWAjnSRiYR6iH52eIF+h4F9hI6GjZWlkXmFgnSJh31/cnR/hoJsYHp0eXB8b2FuYmR7YW5vdnN3d3NzYXZgb2x1bm9dW15dXWpdT11XYmFobXN6iWtfamVqY2h3iG1mbGhpbGeAfHp3b4+Hc4CDhH10gYaJeoN9eoGEfX2OcnmLeXhubIdraF9qcmOHaHFvZXZnbWxhemhrfHt4cGF3bYuBmZqqoaSpnoqKkYaKnoqVl312rJeMlnyek5GWlIh2fXuKfHuAdnd/gG90c3pvhX2BgIl+fGFcfo+RhoCEhHN6gIZ6j5GHkZGbkqSak4F8gXyNipKjiI2KjZeajYWRmJOVjoiIi5KdlJGNjW6EkI+RiZ6ZoqGXl4mXknCLm4Vnh5qPlHqJhZCKcJaak6GSkoiLmYyCf5GefZKPk4yaj3uKhYd0c3ZrcW51fIt0boaRjpJxdIB8goKIfGVxbXp+m5R+hYp1kYuBdIl6b4F/goh9hY2Kho6Wqo57iH1+i4V3fXBuf4SCYmd3c3RuemJecGFqdF5wanp4eGxycGV5XW1sc21zWFpdX2FqWk9XV2RjZnFxf4hlXWloZ2JncY1uZGlnZWlngHp3dW+OhHOBgYN8dYKIhXiFfHeDhXqAind/i3t7cnmDampfcWlzf2txbm1xZ29rZXtibn95dnBrdneJf6OYoqihp5uIjIqBj5yGk5x0gKmUkY2GoIyVk5B/c3t2hXd4f3Jze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYB/f6CGj4qRnJegk5Z3iX6AjIicnYmPhpKXloWIlJiPlouLjI2MnYuPkYRuiYuPkYqclqGcmJaGmIlshqWFZ4eeipF+jISMgXeTmJGdkZCIiZSNfn6QmHyRjZCOmpJ9i4CDb3ZwbG1vcHuGaXODjpiKcHeAdYKJg3lnc292gpuPfYqFe5WSeneKdXGKfIeNe4uHhYqPnKSJfIR2gYuAd3htaX+Bf1xxcnFvb3haXnBhb2peb2l8enBtbWptd2Bwb2txbVlYYGFhbVdRU1llZmJ1cISCYl1rbWRjZmuSbWBmZl9na4F0cXJwi4B0f4KAeXaAi4B5hn93h4Z2g4V7h4yAe3aKf2pxY31jhXxvcGx0amhubHZ3X3F+eXt0dXN/gn6llZqtn6eWhYyDfpaUg4+edImfk5KFipqMlY2LenJ3dIJwcoVzcXWIbG5sdW2Id4N9f21uVVGBq5SHgnmAdnKCeYKggpGBkpGXm5GZd5B6goySpJqTjoiVmJKDhpaYi5OLiI6PiJ6FkYt9c4uFiI+InJmfm5aVgJSAaYeeiWiHoYiShJGEinGDkZePmo6PjIuPjXd7k5B7jouNkpeNfIh8gWt3am5rbG16f2J5fo6WgXZ6gXeDjXx6aHVtdYiWjH+Jh3uUkXJ6hXF4jnuLjXuJfoSOkZ+fhn19eIGLfXdwaGuAgXded29ta3FyVV5vYnFhX21ueXBncGZmdHVocWxhd2VdVmVgYHJTUE5bZWRceHCIfF5caXFiYmVmkWlfZ2RbZ29+b2txc4p9dn2FgHV2f4x5e4aAeIiDc4aFfoyMhHx5lXhmcWuEYId+b29remBpbXR/dF90fHiGd3NzhXx5oZCasZyljoKKf4KZiICLnX6KmJKOhIiXjo6OhHZ0dnOAcG+Fc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfG90g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYmcf46BeHqMf4iMipybnJuWlHqOd2mKk4ltiaSFk4iYg4ZjjJGYjZSJlouNiYtwepWJfI6Ji5ORinqFfH9tfGVzb2tsenlcgHmPjoB7fX5/ho57eml1a3SMkIqDhoZ9lo1sf39wgY2Ajol+hHuDkZabm4t9d3iCkHlzbGVvfoJraXRvZ2hzbVNebmRwWl9rcnlna2tiZ3hzb3FkX3dgYVZrX152T01LYGVjXHlxinRcW2V1YGFlZY5jYGZiWGlyc21rcXaLfHR5hoJ2d36Lc3+Gf3uJf3KJh4GRioh9fpl2ZXNufWWIf29wa4Baa255eXNgdnp7jXZyd4p3eZ+Mm6+boJCChXiIlH58iZyHhJ6QjoWMl4STjoeBdHdweXBuhG9tbn5yY2R4cHxuenxqaGxjpJrB3K7vonNrdYN1hKGFkW6Vj5SflJqBkXCFi6OXiY6VipCdlYOAlI+EiI+AkoqKl36He3V/iXiGhY6bmpeZj5B2i3dwiIqMfoylhZOKnYWGXouUl4mOiI6LioSJbHyXgn2IhYqRj4Z2hX5+a31jeHRqb3hzWIh6kYeFen9/gIWMfnpmdGqBi4+LhISAjJiGbIJ3b4mSg5GFf4J7gZGXk5mRdXR4ho12c3FmdHiBYXNtb2FodWZSYHBna1VebXR6YXJjYGl9cXJuW2NyYWNXblpcd01NTGNlYV12c4ptW1xkeF5gZGaEX2NjXllpcmtua3J3i31zd4SBeHh8iXGDhH19iHt0i4iIlYeMf3+Yc2h1cXltjHtudHCAV3B5dnlxZHZ4hoxpdoCKcoCdiJmnnKOShHxwjJR4eYqdg4SfjY58lY2AmYeEe3J3cHNqb4FraWx8dF5geHZ7cHR6Z2BlfOvatcnD3IlzbHOAdoqaiI1pl4+OnJSSgYhwhYigjoSKlYqMl5N8jZKIgoiPepGLho+CgHd4g4Ryh4KTm5aUmIaNdod/cYaDioibo4SVjZ+EiWGDlY+FiIaJjIeAh2h9lH99goWJjo6CcYZ+f3J3Z3ZyaXR3bFqMfZKChX2Ag4CEioJ2YnVtioKRjIN/gJOSfm6DbXqIkYiThX2CfoGTlJGXiW9yeoyGdWxwanF3f15zaG5caXVfUmRxaGZTX293dWBvYF1ognFyaldnaWNpWG1XW3VMSkxlZl5hcnOFaFtcZXleXmRnemFkX11Za25lbmp0d4p+c3KBfnt2eod0hYN8f4d3doqFj5iCjYJ7k3Zsd3Z5eJN1bnh6fVh5hXGAb2d4dpGCZHaGhXGKloaZoZuiioZzb5KLcnaOm32JmYiJe59/hJl/gXhxdG5vZHJ+aGZsd3dbX3h7enFxf2lhZ2F/1baOkad4bnF3e3GSkI2HapiNiJuRi4Z7aIeLmYaBkpCGhpeNe4yMgICJjXuQjX6JhXp1e4N7cYaAlZmOkpSCiXWEiHiEgIyVnqCHlpCgf4hhf5OHg4eDiY1/f4JmfZGAfn+CjI+Qf22DfIJ0a213dXR3dmtjjYGOf4R/fIR/hYh+cGB0coZ9kI6DfYCSinpxhGd7hYyIjYR8hX+BlZCRk4VvcHmLf3RtbmlqeHxhZ2lpWGt1WlJpcmliUGJyeW1iZV5aaoNuc2JcZ19lbV9uVFpvTkhOZmRcZm5ygGtaW2NzX1xjbHdkZV1dWmxsYm1qc3aGgHFvf3x9dHiGeIWDfICHdXmJgZKVfImGdomBcHh5e4STb217gHZeg390gW1penOUc2dyiH1ykpGEmp+boIaGdXWUfm12k5d9h5CDio2ZfIyadn52cW9samF0fGdiaXV5WmB3e3ltcX5lY2hoV52PX3Jzl7zEhHZxlIiQfnKWi4abkoyHcmqIj5aAe5SMgYSajHyKhXx7iYt/lIh1iYZ2d32BcnWGgZ6UhZSPg4NygIp2hXyKmp6Zh5WPnYGJZn2Tgn6Eg4mJcoF9Zn6MfHl/f4eLj31pgH2DdmZveXhzd3Nsa46FioGKgHiCgYWDf2tfc3l7fo6LhnyCkIF+c4JpeoSJjIaFeYR9gpmOkYx+bm17iH12c25nZnt1YltwYlducVNTbnNoYU5mdHlmYF5dWW+Ab3NZZWJdam5gcE9Za1FEU2dgWmpubXxuWVtebWNaYm93ZGdcXWBraWNsanN2gYNwbX98f3R1g3qDgnyBhXZ+iIGWkHiEi3SBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0bJONhZ+YoJmEiG59jHZqeJeOfoCJgpSXiXmPlm96c3BsaWRgc3poX2Vxelpgcnx5Z3F6YWVlj7Gyd0tiWqXa0JZxe5CKkHh9k4qEmJGMhW5rhZKRenmShoGEmIp8hn94d4mKhJaAb4uIcXV+emp5hYOlkISTjYN/b3+Ed4R5h52alYyUkZWFiHB7koJ8goOIg26Bd2iAhHhyf4CDiod8ZX1/hHVjcHOAaXlwb3WZjYaDinx2eICFeoFqXHJ/c4KJhop+h4p7iXKCbnKFiI+GhnOEeoKajo6EeG5vfoR/dnlkZ2l7cF5YdlpYcGxOV3FzZ2BLbHZ1YV5cWll0fXNvV2ddZmpyYG9OV2hSP1lmXlpwa2h6cVtaWWtlWmNxeV9oXF5lbGhla2lxd3+Ib2x/foB1b4J7gIJ/gn92gYWIl4pxgo1xe4Z8enmEk4x1anp/a29+dH99b3J7epNwb4F/eGeSi4OhmZySgoVmhoNvZ3mViH1+hIGYiYF8jYxpeHJra2ZfYG95bV9ib3hcZGuCemFxdl9lZdTqvYsyOj6Ljn9xeIWIjo12g5aMfpKNjH9tbIWNjHV8j3+FgZWIfIJ4bnaHhIOXd26IhWx1e3RmeYKDp4uCjouEfm6AdXeFeoiekY2Rk5OOi4d/e5KGd36DjIJrf3JogH54bXx8gYqDd2F5hIJyZHFofm51cXWCm4uAf4WAc3V+gXOBb1xuf3V5i4SLe4eBfYl5e3JtiYSRhYxzgnqAl4yLf3Rta3eAgHR0XGhndm9XVntSWXBkTFpycmVbSXF4b1xbW1lddH50aFliW2dmbmNpTVdmUT1eZVxddWVfdG9aWVRvZFlkcXlaaF1fZm1naWtpcHd9jm1pgoR+eW6AfHyBf4J6dYKBjZOEcICLbnd9gHt7iJOJf2h7fWpze3KGe3N3fn+MeniEfXxsjI2Em52WjICAbI19a2h+jYt6fn6Dk4J+fYqIa3VxZ2hiW2Jnc29fYWtzYGhwiHpic3ReY2SboI9uXDVar7V0aYCIfJKGdYWWhnOOiol2cGyFg4d1eYl4iXyTiHp+cmd1iX5+mG9xhn5odnluZnmHhKSHgIaMiX5uf3aAgn6NmoiDlZKZiouFiXyPiHB6fYR7aH5saoB7emp6d4KHgHJgdoF/cmRyZ3aCbXV7hpWRgXyCgW93enx1f21ZcIB3dYyDh3iIdoOJe3l0b4qBkYKGc39+f5SJiXpvbmpugoF0bl1nZHJwUFp6TVtvXE9ccm9kVUtzeGlXWVlaYXGAdGBdXWBnZGhpZk5aaE1AYGNbYHZhXHRsWFdTdGFaZG9yV2peYmhrZ21saHB3fJNsaISKfHxwf357gX+CeneAf4qLg3F7iG9xd4N/e4qNj4Nqfnttd3h2ind8eICCh3+Dfn56bYSMiJijjYSDenWLeGtsg4eQeH16gZGAgH6Kg3BycWNmXllmX29vX2BncGZqb4l0YXRvW2FkanZ7gL+cpqTIuHGFg3KSfHiGk4NzkIuHcXJvg3uDdHSHdIh3lIh5eXBjd4d6gJNpcoR2Z3d1Y2p8goidgX9/jo99c4B0hXqBkpCDepePlpCIgoh7iIhreHl+dGd6aGt/eXNpenaAg31oYHeHfmtqdGh7gGl2gYyRlH56fn5wfHZ8dH9iVnh+c3OLhYJ9hHGHinh5cXGEg46Af3p+fXaPhoN2aXFpbYiBcW9dZ2FxbUlkdUtdbVVUWnNuYlFPdHhhUlhYXWFvgnNbYV1oZWVka2RRW3BJQ2NgW2NwXlx2Z1VWVXdeW2VuaFZrXmFpZ2Vubmhwd3qTbWmIjHl9cnt+eYKBgXx2fYOIhoNwd4RybXeCgn6KjJN/cIB7d3l6gYt0g3h/gYGChHqAdW9+ioubnoh9hXp3hXtndIWMj3l+f3uIhYN2j4BncG5fZFxYZVltcmFgYHBsa2iJbmF0aVleZG6Ad6naqseGh7JxiXdvjHV7ho6AepKJf3RzdH53gHBxf22EdJSGeHVrYHqCeYmPZnGEcGd2blttfICQk3+AeZGTfnl8boh3gpKMhXWXi5KPh4WGe3+EbHR2fm1ndmRte3VtaXd2f398YWJ4hXpodXVifXtndYaOjZV7dIB2cYB7fW2AWld1f3B2hYh/gXptiYZ0emx2gYSFf3x+eXx0i4J+c2h0ZW6Lg2xzWmledGRHbW1LWmFXVlZ3bWJQUnR2WFBWWF5hcYRvXGBjbWRkXm9jVV5yRkJlX11maF1bemJRVVx1W1pna2FWal9gbmVma3FocHZ4jnRrjo11fnZ4fneBg4F7c32DiIeDb3KAdHF1foWCiY6Ke3eAeIN7fIWHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN4Xn2FmIt4hoN0hYaEd4l6Ym5tXGJbW2FWaXNjYFtnbm9mh3FhcWZXXWNsf3zKzoe5oWptbYpscYRxfIOJfnuRhHl4c3l1dXtqbHZjhHWSgndvZl59gnqLimVygmtqcWNYbXqFm4iCgXOXlHh/fW+KcoSLjIhzmI+RiYaLg3t5fXBwb3xmaHFibXhxamtxeH18el1leYB3aXZ4ZoJ3Z3SHjI6UfXKHam9+gXlufV1Zc39udYGLfIJvcIqAcXdpeICCgIJ3fnN7dYd9e3Nnc2Fui4FrclhqXnZbR21qTFZUXlNVe2thT1R1clBRVFdeYnSFaV1gbGpmY1luYVlkcEdAZ1xgZl5dVnteT1VkcFpbamhdV2hgXnJma2dxZ3Bzd4Z4bpWKdH96eH55g4eAdXJ/hoWOg3Bwe3h2dXqGhYeMhnp8f3SLfn2GhISHf35+fYd/fHh2eHiRk59/jHyLbXV/eGSChpWFc5GKb4WFgXqDdGNuallfW1xdVGdyZGBYZHFyZoFzYmtlV1tgan93vq57oLZuYnOGaHN7cXmBhHt+jH53d3J2b3t2ZWpvYId1joFzamJef3h5i4RmcX9oa2taVm93iaOBhH9xmZNygXl2hG+Cg5GIdJaJjYiFiYV9eHRxbmh4X2psX212amdqa3l3enZaZ318eGVyfm6EdGV1hY2Gln9wjGdreoR1bnViXXF9bHV9jHyCZnaHfW5xaXZ/eX+Ac35te3yCe3lxZmxibYl9bG5Xal92VUppak5RTmhNWHtoYU5VdmtMUVRVX2Z1g2ZeYXFoZ2JXaV1cbGhKRGpZYWRXWVV5WU1WbWpZXWtkXFllY150ZmxkcWdycHWBeHCZhXZ/fnd/fIWHfXVzgoiAlYNuc3l7enNyhYeJiIN5gX51j358hIqOhIKEe36Lg3t2e3d3mp2XeoqChml2fXtsg4SSf3GOgXCFgn6Bf3BmbGdYXVtcW1NkcGReV2JydWl1cGVlYldcXGiAcG9ygHOJZGR4fml0dXNygYN3gIR5dnN1bmt6cWJna2eGdI2DbmZdX31we4l/aW15Z2pkVVdyb42mfIR7dpaRdH1zfXtvfXyRhniafYiGg4aDfXVvcWxndFxsZ15sdGRnZWl6b3tyWWeAdnVocIF4gnZid4WLfJSBb4xqbXuCcWdzZmFuemdzeIt8fmJ3g3dqbHJ2e3F7enR+Z39/gHl3b2RmYm6FfGxrVmlib1JKaGpPS05vR157ZmFNVXRjSk5TV2Fqdn5lXWdzaWZgVmNXY3BdTEtqWGNhVVRVc1ZMWHVkWl5rYFxaY2VfdmdtYnBpc29yf3V0mYJ3f4B3f3+GhXp9dIKEfpeFbnN0fHp0cYSFj4GAeot2dJB/fIGVjoCFhH1+jIZ7foB2e6OlinmIhoRrdXx6dYOBi3puhHN5hH2Bg3VuamhlVl1bWlpTYm1kW1hhc3tpaG1pYGJXX1tqgGprcIBna2BoeXhqc3RzbYOAen98dXVuemhqeWpfZW5ogXaQhGdlWGJ3an6He29qcGdmXVVYb2eOqHeBenyRjnl2cX9wdHd6kIF5lnWGg4CFiHZqcXVnZ25bbGNdbXJfZ2FqeGh7bVtugnJ0am+Bfnp3YXeFhHiPhXOIcm95gHJjcWlccXhkcnSJfHljdIBxaGp6dXJteXh2eWSEfH95d3FkZGNufH1ra1VoYWVSSmxnT0dRa0VheGdhTVNxXUpNVFpla3Z6ZV9tcWlkXVZgVm5uV0tTaFdlXlhOVWxUSlx5X1tfa11dW2NlYHlobGBvb3VucHh1eph9d4CBeoCAh4Z6eHmCfoGThHJ1dH95dnSEiJF9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSrn396iIiDa3KBeXWAf4F0boZufIBzioBqb21kZFhfWllaVGFqZ1taXnSCaV5tbFxhV1xcbIFlcnR9aWlca3Z1Z3N2cWyEe318eHVybHlnaXhmXWVzaHp3k4FjY1RlcGeChXd3Z2lqYFdWWWdjj6dvfneAi457cXJ+aHpwe459eJByhH1/f4ZuZHVyZGdnXGphXG9vXGdfbXVkemhddIBvcmtyfH51dmJ0hYt7iIeBgHhydX91YXBtW3J0Y3FzhXx1ZXOAbWFte3Brant5dnNmhnZ7e3ZxZWJlbXJ+amxUaF1cVEtyYlBGVmFHYndnYUtUb1dKTFhYZ2t1emRlbnFmZFpXXVh2ZVRKXGJXZ1hZSVdlUEhieFpdX2xbXlxhY15+aWpfbnR4bXBudoOXeXKBgHx/iYyGfnV1hnmHjH10dnWCeXp6goyOfX6EiWlzloF6ip19foV6gXp/fIaIc3GPrYx7e4ePfWVxh3lzfHt1cm6FbHt+bI96YnBvYmVdZVZZWVdjZmtfXVxyhWhYcG5bXlhaXGx7Y3B3dm1iWmxzc2d0dW9sg3h+gHh3bm50ZGl0ZVtndWZ2dpJ5X11SZmZqg4J0fmJkaVxUWF5iY4+kaHh0g4aQeW5we2l5bnyGfHaKc4F4fHh/aGR2bGBmX15pXlxza1llXW9vYnplW3d8a25ub3h5c3Vkc4OSfoeDiXt2cHJ+c2J4ZFxwcGJxcoJ9dGdygGVebndpZWh6fHVub4J1dH10cmJfZm5ufWVpVGdYV1NNd19RSllYSGJ1ZGFJVG1TSk1aV2lscXtibGxzY2JaWlthd1xTTGRdWGlTV0hZYE1GaXVYXmBsW1tfYmJchGlnYW54eWxvanaBkHhtg36AgZOIhIF2c4h0jIZ0cnd2gnd8fX6MkIB+k35wd5WDfJmSeYCAeHp+gHSIg3RwmaJ7en+JlHhkdYd4c3h1a3Nufmt4fHCRcl5wb2BnYmxUWlpXaGNtZlxbcYllU3JuW1pYWGBsdmNpdWppXlltc3Bsc3NzaYR8f4B8dm9ubGRpcWNba3JkdXaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VycYWEkXRsbHtucHF7fX1ygXiAc3p6emNldWhdYllgZ1pedmhXYl1vaGF3YFt7dmlqcm54c3J1aHGClYOHfoR2c2pxfW5md1hdbG5jcnOBenRnb35bYHByYmBrcn5tbXV/c3F4a3BhXGVsbHphZ1RmVFZRUHVbUU9YUUhjdGJgRlVrUElQWlVra2p8ZW1ucWJbWlhZbHFXUlBnV1doU1RGWVxOSHJ1WF9jbWNYYGBhXYtqY2RteXhrcGl1eYZ7a4N9f4SafIKEeXyHbo+GcW53en10goJ8i4+Cgpd0d4KThYGfiXWBgIF0f4Jxh4J1b6KXc3uGi4Z7ZXeKbm16bmZ3cHprc3ZyjGtedG5hZ2VrUl1bVWdhbGtaXHCMZE9vbl1WWFVnaXRoYnRlZV1ZbXRtb3V0eGqGfH98iHaPc2Rka25hXG5tY3N4h2taVFZjZHh9fXGGXWNfY1RaYFljlZVjbnCDhYp0a2h8cGZ0eHV9bXp1dm96fnVeZXJjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXNxdHB1dmtthJOBiXuFcXNnb35xc29UXGdrZnF0gXdzY212VmJybFtfcGd+Zm13fnNzc2ttYFpkamp3X2dUZFRVUFRtV1FWU09HZHNfYUVYaU9IV1RWbWhkfGlrd2tiV11VW3RkU1JXaVJZZlRTSFpaUE14dlpfZWxpWWJgXl6ObmFma3l1bm9pdnZ/f2yDgH2Hl3uAh4GJfmuTiHJndIB7dYCCfYiOf4uTcnyKkYWHn4Z7f4aMc4GGc36Cdm6ljHKBjYt2d216jGBke3BmeHJ4bG1xdoJnZHtsY2ZnaFNfXlVnX2xuW15tjWhOaW1gVFZTbmd0a2V4ZGRcWG9zbHF6d3Jsh3uAd5x6eWthZWxtXmBvamVxeX5nWlZYYGx4fHtwhF9iXmdWWF9XZJuIYmtxgYd9eGxreW5cd3Nte2p2dG9ve4ByWGltXlhcVWFiV2RwY1NeYWhhYmxaYH5rZmtzdm9td3dsaYWMf4l7iG1xZnF9bnNuY1phaWlvdIJ0c15pbVNlcWVVY29je2Ryd3x3a3Bta2BZYWdodF1lVmFVUk5YZVJPXE9PSGRwXWNGWWlNSV9LWG1kX3hobn1kYFVfVF11XFRTYGdPXWFVU0pcWVBZdHVdX2VsaFhjYVtejXFjZ2p4cXNuaHZ0eoNygoN6iI5+fImHjXlukIp0bHOCdH9/h4WGkoSVj3l+jI+HkZuEgHyMhXOAgXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjYyMjIyMjI2NjY2NjY6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjY2Njo2Ojo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERBUsza2NjY2NyLaW5ubm5vamZnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTJG2Orn5+fn64tiZ2dnZ2hjX19fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaTlJSUlJSVjYmKioqJiomIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkZKRiYeOipCSkpOPjo6NkYiPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYuLi4uLjIyNjY2NjY2NjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx9fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQkIeJh4aJhYiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCNhIeGhYWFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkYmDhYWHhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjoiHhoaIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Qjo2Mi46Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKHjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLioqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyNjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHR0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnJ0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODk6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VzcnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GBgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0JDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgICBgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIF2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj06Ojo8Ojg6ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXtOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/QD89PkFAPT49Pz09PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkVDREE/QEBAPz1AQDxDY0RAQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjo+PT48PEd7Wz5DQ0VAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERGSERAPjw7PkBERURAQUZCUWVucHlxRURERENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpISUdVZWF+hYWFgHpUQUFVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtLSl56gIODgXyDfmNObISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N1dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLZH+BfoOBfYSCe4CGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISElIS0tmf359goSDgYKEhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6fHt8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0hLR2qAgoKCg4KCg4KDhIaJiouMi4qJiouMiVQ7ODY1Njc2NjY1NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODk7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQkRFZoKCgoGDg4ODgoWJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6Ojs6Ojw4OTg5Nzc3Nzk6OTg4Nzg1ODg7QT0+PkJBP0FLTE9RUFFPT09RV2tycnR0dXd6e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE6PUNTgYODhISEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8Ozk7PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pz5BP1mEg4SFhYWGh4mIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPj9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs8Oz0/Q0JAZ4WEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURGRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PEA+QUBFQk5+g4SFhoaGiIiIiIeGhoaHiYqKi4yNjIyLioqIV0dMTE1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkhHRUtJS0lLS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc8Pjs8Oz5AP0E+QUBEREhDaoWChYWHiIiJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtHRUdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw7PD06P0A+Pz9CQ0ZFTFd+g4SEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSUhGSkpFSkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6Ozg8PTs9QT0+QEJERkdRb4SDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMi4uLi4teUlJQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgICAf39/VUVDRUVHR0VEOz9BOz08OT89PUBCR0ZARUdFSlF3hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTlNUT01TTFBTVVdSU1JQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj5CQkZWTURLTElOUnqGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlTWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0xLR0hJSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQkNGRURFTFhSTFJSUFNVeoaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVddWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01KTEpJSUxNS09NU290dnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNSVlhWWFd3hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFNWV1dXWW2BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUVVSVVNWX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XlxWVVNST0tGQ0RBTV6DbFZSU05PUU9RVlJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSU1RaXW1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lVUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUENDQEM+QkhHVkBJTk1HXWlRSEZPRkRFRkhHSEJDSEdISkdEQkFDQE9QTVJkdHV2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHN2ent4eXVybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojs+QD8/Pj5rUUthRUZISUVCP0hNTUdNUVVKQkU/Pjw9PD09Pz0/QUNCPz88PUI+Sk1GVW91dXZzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFDQlxdT3tOT09OS0xNT09QTEtMV05JR0BCPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1dnV2d3l8fHx9fHx9fX5+fH59fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJTVlhTUllUTllaW1dZXF9fYGVgXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZDTVJQYVdSWFFQU1NSVVtPT1FWUE1JQ0Y+Ojk2NTg2OTc5OjM2NTc5NTxCPWZ0dXZ3d3l5e319fHx7fH19fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LVFRTUFFVT0xSU1RXWFRUWFFMV1lZVlhYVlhZXVdXWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNRUFNaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OThHbnJ1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWWFhZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KTk9UU1RcVlJVU1NPTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3enp7fH1+fX58fX18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFhZWVlSVU9KR09QT09NUkpPUFBQTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTElMS09RUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFPUFBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PT08OT1HNjY3NkRucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11nU1FTQUdVUE9SUVBNTU5MSkxLTE5PT1FNT09NSExLSUtLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1BQEI9PkVIRkRGRklHS0pARkFBQEZIRUpPSFFSYVxRUFJOU09PUExMT01LTUxNT05bVktNUU9HSUhESUpMTEtGRkZEP0NDPj1CRz9CPkFkcXR3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVBNT05XS0xOS0xNTUxMS05OU2ROSkxSSUlJRUFJSkxNTktHSUZCQUJAP0VGRUhETG9wd3p6eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkJBRERHS0ZESUlHR0hDQz9CPz9AQT5ERUNLTlFUS0pJTVRGSUlKTEpLS0lKTE1PUFJQS0dDTEdDQ0pKTE1PTklKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFIS0NGSEhHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNT0dIS0ZIS0RISUtNSEpMSElKTEpNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2dnt4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkcEZLQ0ZFR0RFRUZFR0NDQD08PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGQ0I7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1HSUxHRkZJSUxOS0pIRU9JQ0dNTU5NUE5PT01MSUhJT1NRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUZFQkJBRUBEQj4/Pjo7Oz07PT9DQT9BQ0ZHSkdKSUxIR0dHRkVDPz1FRUI+QUNDQ0VHSElHTVBJRkZHS05PS0ZISUZFRERJSUhLSUZIUEtESk1MUE5PTk9QTkpKSE1SVVVST1dkYWFtZ3Byb3N5emdlaGhjaWxncWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NBQEFEPEJBPkE9Ojo9Pzs+P0BCP0BCRUdKRkpHSUdGRkZFRENBQUZGQ0JCQkRFRUdHSEZMUExJT0pKTEtJRkhFRkVEQ0lISEtKR0tSTUNPT05RUE9PTk9PS0tLUFVXVlVUWWBfXWlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01GR0VHQUJAQ0Q8QUFAQzw4OT0+Oj89P0I/QEBERkhFSEZGSEZFRUNDREJESUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9OTlBNTE5TV1ZXWFZYXltdZGBoYmppZ2tfZGVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJFRTxAQ0JEPDc6PT47PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSEVLS0xMTk9SVE9JVFVUUVRQUU1OUU5NUVdaVlpZV1peW1hhYGBgX2hlY2BkZWdnamhoamZobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURCQ0hFPEBFQkQ8ODo+Pjw8PUJCPD8+QUJGQ0VCQkhDQ0RFRkZHR0lGR0tIQ0lIR0lHRkRIS0lHS0lNS0pLTEhMSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9UWVpZXFpaXF9fXmBjXlxhY2tiYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJFR0U8QEdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREZGSEhGSEdJS0pFSkhIS0hGRkxISEhKSE1MTExMSU1LTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJlXWRgZmdgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXd1dXV3dnV3c2d0cmtxcmtyd293SUpMSUtHQkVERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFREZIRUlFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0tNTUpKTUxNTk5PTE9QUlVXVk5OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFhYGNkZWJkaWNkaWpndotsa2lobW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3Bzd3R1dXd2dXV1ZXFza3BxanJ2cHdKTExMTUdDQ0FEPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0dHR0ZFSkZER0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlFMU01LTk1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZmJhY2luaWNpaGhteHZtaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0VBQEQ+PkRFRkM/Q0FFQ0RGQ0NFR0NCSEVCSElJSEhLRkRLSkdISkhJS0dKSk5LTkxJTEhKTUtaZkpkXEtsUkhPTV9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxrVV93dmlqaGhmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENDQkVFREZCRkZHRERLRUVKTExKTE1HR05KSEpLR0tKSUtLTkxNTUxMSUxNTFtzYmRwXmxsVU1OZXNeZ2ZxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9ccHVncU1Lcnl2a2Jha2VlbHhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnR0Ym11a3BwbHJycXpLTElJR0VEP0FCPz1CRUdCRkNFREVFREJISEdERUtIR0tNTUpNTEZKTkhKS0pJS0pKSUpMTU5NTU1LTk1NW3Jvb25wcGxrTlBRbFhNaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhvY15rZmJncHBqaW9wcHJzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQUI9P0BFR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSU1LSEpNSUtJSkpOT05OTUxOTUxcaGR1XWxxV2xOT1FuVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWRpdHlrb25xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRkpMS0ZNS0xSUkxHTU1ITkpJSE5ISkpISE5PTk5MSk1NSlpzcHBvcXFtbE9RU29Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpbXXRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0VFRUBAPkNDQUZDSElNSEZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUlKTElLSklISkxNTUxJS0tLU2tiWmleX2pjcnJaX1prb2BlZVVrX2NbYWJRYG1oXGpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga25wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFydXR3cklIRkpERURGQUBBRURDR0JISkxHRkRHS0xJRUZKTktJT0lMW1FKRkhIS01JSEpKS0tJSEpHS0tLS0dISkpMTExLSUtMTlRbXVRQVU1RUE5PT1VSUE9RT09RSkpOUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNmX15ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0hQS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKR0dJRUZLSElLTkxJT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1hWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1BQ0RCRElFR0dGS0pLSEVFSkpKR0VISFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdFRUpHQklNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjX1lfYltgXltUWVhaX15kYmJhY2ZpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNGR0VHR0lKSklJREZLS0tGRklJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUJGSkQ/SUtITltjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmJiY2NlWlJYVlZcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJTERESkpNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hEREBEQUhJQT5ISUZPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUVFdX2FjY2NjYlxkY2JkY2ZYUVZVU1xYW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0lHR0pGRkZJTEpORURKSkxOSkxJS0pISUdCSEhRTUtLT01LS0lISEVEP0VCSEhBQEZFRFRdWV5YX1hfW11VWFhQXV1RS0pXXlheW11WWmFSUl9fYmJgYGJiYGNiYmRkYlhPUlJTXFNcXl1eXl9fYGRoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0lJR0RIS1FPTUxQTExLS0lJREVBRUNIRkFARkVCVlVFXFReU1ZgWE5UVU5aW01KS1VgYVtfWF9eYl1PWWJcYGBfYmNiXWJiV19fVFBPUVJZU15cXF1eX2BiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNRRFdfSUdHSERGTUpQUEZKSUpLTkxMS01LSkpHRUlOUVFOT09NTk1OSEtBREFDREZEQkFERUFMSENMTFBPT01GTUZGSEpIR0xMTU9QSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUVVUXFlZW15eYWFlZmNoZGtscXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXk1HSFlNR0hKSEdOTFFRSUxKS0tOTVVOT0tLTEdHS09TU05QT05PT09IS0ZgRURfTERmY0RNW0heXHNtT01WbVlMQ1BfVWxXZ0pdV1VeRExRVUxNU1ZRUlRYV1RYVVRcVFBmWmhoZFlUa1RYV1VbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEg4ODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USktHYFRHSk9KSU9NUlFLTUtMT1JVUk9PSkxNR0hNUVtZT1BQTk9QUEpLUX9RSXxZWXJzV1BtSHFub2FWUHFxdE9Ca3NucXRwU29fW25YXVZcWFVraFVdVmNZYFlaX1ZVV39pdHV1X2F2X1liXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4em12fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxMT0hMUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBRS0laeF1UeGRoWVJTUHZndGxwYm5ma1JyTkx3bWpycHNycXJwb3CAXWZ6dXhxcXpxfnJ9a3V9YlJnfGVzc29zc3x9cH55b39yX2BgYmJbYWBoa25rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEtRT01OSk5XXllVTFFTTllZTFNTUk5MT0lRUlRZV1dRVFBQUVNMSGd4bGN4cW1aS0xUeXB1bXVibnZQZGVJZXZxbXdvgGpmeHhpV3JSaXttaWp6en1seHp/cGdvWHV1anZ1cIBhc2h9aWx4fG9fX19jYlxfZGVmaWpkZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3Z6bnx9eXhybk5KUnROQ0JFUFBJS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OU0pLcm91dXF1cWRoYVZuTHFwXkdoeVd2VEtoeH14YHl7c25hXm1vZFNncnVubXlwd2x2c3RxbG1cc316a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tTEtaVkhHRUdSUEtMTktMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05RSVJtSGl3S2BkdnVVV2xObmx7cmFqZ392VUtXa2h9bG1seGBbcHp7X2B6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobW1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTUxTU1JPU1JXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFOUFVMS0tSU1JSUk9WVVFRT1JSWFhRTlBVVFhYWFtbVVNTV1tXWFdaUFNVV1dYUV1YVl1VU09YUlZXV1haYFtncl5bXFtdXV9jWl9jY2VmZGNjYlpjY2dmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJNUlFQTFZVVFBUVVhVWlVSWl1WVVRXVVlYUE9MTldUUE5VU05QTkxRUEtKUVFLUU1KS09RVFJRUVNSSUlNTk9RUlFRUVRWUlhXXFdTU1FRVVVWVFpRTlNRV1VUWVZUWVVTUlVTVFVYWVheWl9hXVxbWl1dYGNcXWJiZGdlZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVFNWFdVVFZYV1daVlRcYFZXVllVWFRRUEtPWFNQTlVRTlJOTFNQTU5VU05RTk1OUVNQVFFTVFROTE5PUVRUUlJRVldVWVpbWVNVUlRYV1dZW1NPU1RXVVRZVVZZVFJSV1VWWFxaW2BdVllfXV5dXF1gYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFPUlhTUVFPTU9TVU5XUVRUVU9OTlFUVVVUVFJUWFZaXVxaVlZRUldYVltcVlBTVVVVVllUV1dUUlJYVlZbX1teYF9WX11eYFxcYGBfX1piYmRoaGVkYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST01QU1JVWlVTUFBMUFdVUVZSU1NYTU9QUVRYVVVVU1VZWFteXVxbVlJPVVZVW1tWUVNWVVZYVVNYWlRTUVlXV1xfW2BfYFZiXGBhXmBiX1xgXWNhY2dpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5PV1NOUVFQUlRSTFFUU1lbV1VPUk5TWFVTUlRSUlpPUVNTVltWVlZUVlpYXV5cXF5WU05UVlZbW1VRU1RWWFhSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZ15cZWBhYGFjZF9iX1laX1tcW1lYWVdXWltaYV1dW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1cYFxgVVxdaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVWlpaU09TUVVVVVNOVlJTWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZWV15aWFFUVFhYWFNWWVxUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXV5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFtVVVdWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVU09XUlNXU1dVVltdWFtZVVpeWF9eWVxZUldSWVhZX1lZU1VVWllZVVdZXFVUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZmRiX2RhX2FgYmJfYF5XWV5aXFxaWVpXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFJXVVNSU1hSU1ZUWFhYXV5YXVtVXl9YX19YXFZRWVVZWlphWFxVV1daWlpYWVpaV1ZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYVtmY2hmY2ZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaV1RcVVZXWVdWXGBhYWNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVFJWVlJTVVdbW1xfXlpfXFZfX1pdXlleVlNZWFlaXWJZXlZXWltbW1tbWVpYWV9fYGBkY2RlZWJkWmJmY2dmZV5hYmBjXmNjaWVkZ19nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVVYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZWU1VUWF1dX2BgXWFdV2BeW15cW15YVlhYW1pfX1tfWFhcXF1dXltaXFdaX2FeYGVkZGZmZmJZY2ZlaGdkXmNgX2VjXWZpZGVoX2deY2JjYWFgX19bWFlbWVpaWFpYV1tcWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWVhdX2NkX1JZWVBXVldYV1dWV1ZdXV5hYmFfYl5ZYV1dXlldXllYVVdbW2BeXF9ZWV1dXl5gXFpaWVtfYl9iZWRlZmdnYlpkZmdpZ2NfY15gZmVaaWljZmljZl9iYmNhYGBfXV1aWFtZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxcXVhXW11fXWBfXVtgZFxcWFpiZWNhUlxZT1hWWVpZWVdaWmBeYWJjYGFjX1xiXV9dW19eWVlUWF1dX19eX1taXl5gYmJcXFdbXWBiYmNlZGdmZWdkXGVmaGlmY2FiXGNnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYV9jYmJdXFtbWFhqcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWltbY2BjY2NgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl5cU1xfYGNkZGZlZ2ZlZmVfZmZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7e3t6enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHt7e3t8e3p6e3p6enp6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKh3NxcnJycW+pwb6+vr6+ytPS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyJcm9vb29vbLLQzMzMzMzb5uXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f4B5d3d3d3d3eHl5eXp5enhvb29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx6enp6eXl5f4OCgoKCgoSEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dXZ3ent4e3h3dnZ4eHl5eX15eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t7e3t6eXl5eXl6enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3d3x7e3x7fXt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d5fnx8fX1+fHd4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3t+fX18fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt8fHx7fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl3eHp6enl8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZWZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMj4uKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIjIuIioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjIiGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+f39/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCgoKHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFg4SEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoKCg4SDgoKDg4OCgoSEg4ODgoOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgYGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIKDgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWGhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkZGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+NjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCBgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYF/gYGAgIKBgoKCgYGCgoGAgoKCgoGCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGBgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/h4KBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOCgYKSjIKDhIKDg4OCgICAgoKCgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgoGChoaDgoF+f5GZhoWEhIWCf319fX6ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIaFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDgoOFiIJ+fX59hZyMhoaDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4mKgIB+hYp/k4+EgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4aGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhIOCioqDiIKDhYCEhIB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGh4eHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OOiYaGi4N/gICBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhJCHgYKCgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWFiIOCgoKDgoKCg4F+fX5+fn5+fn18fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYGBgYGDg4SDhJGSkY6PjouHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGh4KBgoSDg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GCg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjZCMiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoGAgIKAfn+EhIODg4KCgH19f4CAgX99fn59fH19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn19gISEgoODg4F+fX5/gICBgH59fX19fn18enp6f4KCgX9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF+fX1/gIF/f36AgIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH99f359foCDg4OCgoGBf319fn6AgIB/fn19fXx7e3t6enp6gICAfn9+fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36Bfn6AgoSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoOBgYKAgYOEhIGBgYGAgH19fX5+fn9+fX19fX18fHx7enp5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4KDg4OCgoKCgoF+fn19fX5+gH19fX19fX19fHt6eXl5eXmAgoKChIOAgoOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeIh4aHh4B9gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgH+AgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eGh4eGf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYiJh4WGhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+f31+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Mi42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRjIyNjo+KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2LjY6OjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIuOjYuKhoSFhISDg4ODgoKCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn9/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaFgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42LioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t9fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4aChJGOjIuKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJi4mLiYWIkY6LiImHhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgYB+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnx9fH18fX1+fH59fX19fHt7e3x7fHx7ent7enp6e35+goWIh4iKi4uLiYyQjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+Ni4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiNjIqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGDgX5+gIB+foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx9fX18fHt8fHt7e3x7fHx8fXyJioiIhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoWGh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dXSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAhoKEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKDgoSCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4F/gIOCf3+Af4F/gH98e3t6fHt8gYB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fX2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBhIF/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn19eH5/f3x8fH59foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4ODgoGCg4KBg4J/gX9/f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH99fn5/f31+foCBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZxeHlyeIWFhYWDhIOCgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWGhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/fYB/fn9/fn19fICAgIGAfn9+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn18e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6enp4c3d1cXFycHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgX1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn6AgX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/foCAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f356gZONenx9fHt9eXt6enh5gYF4eXx8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgICBgH5+f3+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/f31+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e41+d3d5fHx7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYSDgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXx8fHd4dXh4eXt8fH17fHx8fH1+f39/f359fX6Af4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYGCg4B/goGFg4OEgYGDgYKCgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAgH+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH19fHx7fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXl0cXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKChoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCAgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t6ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SDhIWEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH96e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KDg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODhH99gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KDg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODhoKDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgH+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYqJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WCgYSDgH9+fn59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfH9zgoN/g4N9gX1+fn1+goOBfH+AfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhoOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9f359gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOGhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYSFhoaFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYSGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaDhoaFhoWFhoaFhIOFhYOFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn18fXx/fH5+fH2BgH18fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoWGhYaHhYWGhoWEg4SEg4SHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4aGh4SChIOEhoWHhYSEg4SEhYaGhoaGhYeFhYeFhoWHhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoeHhoaHh4WHhoiIh4aFh4eHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYSFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYWEg4WFh4aHhoaFhoaGhYaGhIOFhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4iHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4J+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn1+f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WDhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg35+f4B/f4CDf3yAfX1/gn2AgX5+gX59fX19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7e31+fX2BfX18fH2Af318hoOGhoaGhoSEgoWChYGBgH9/gIB+f4CCfX5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCfn19f35+f4R+e398fICBfYGAfX2DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4F8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx+g358fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dXU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXU1dTV1NTU1NXU1NTU1NXV1NLT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19jc3d3d3d3d3d3d3d3d3dzb3Nvb29vc29vb29vc2tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLmzeHNzc3Nzc3Nzc3Nzc3N6goGBgYGBgYGBgYGBgI/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6ODc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OlmTIpKysrKysrKysrKyspNUVDQ0NEQ0NDRENDQz9c09PS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpps4LzAwMDAwMDAwMDAwLztJSEhISEhISEhISEhDYNLT0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaugRT0+Pj4+Pj4+Pj4+Pj1IVVRUVFRVVFRUVFVVUWrS09LS0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Oz8/Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0crKysrKysrKycnJycnJysvLy8vLy8vLy8vLzMzM09TU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7Ozs7P0c7O0NLOz9LU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbY19fX19fX2NfW19fX19bX19fX19fX19fX19jY19bW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Ozs7RwafR0big0NGcgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8/P0Z2PxLOWmLq6lbi5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/P07qvqryfo6iy0ZJ9fq+w0s7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Pz9OfsZu/x4eatNXTzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz9HAnImavdqjmLXU08CgoNDP0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Uo6KBm8DXoZi009OvoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDRxJ+Be5ar2KGYtNPTo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q1auvvMDPk9OhmbXUzZ6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJh3+FnqTZopm118OfoNLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HG09PVnJi/16Gas9mypKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg0tHS16iHy9axg8XWuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dLPxdTR0MPU0dLC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS09TS0tLV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBCRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLeuqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLW2vL2+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87My8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJCQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3hmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFDQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/JzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnZGpkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwsbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m9urq0v7i1uLOvu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vrm8wcHLvr3JxMDAysCxwb+7uLu+urW3s7i8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz05NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88OTc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2diXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmFhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcrGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKyr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBwsO7ubO0usG9v8bAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pXF9gWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nrK+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXFpVSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDo7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3s7KytLK4vrmztbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE+SUJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKyL7AuLi2srS2srSvrbu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLavqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vbWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u76/ubS0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PTw8OzpAPTw8Oz8+QkBBPz45NTg7PEZCQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+ysrq6t7e1tbyzr7Srtrq4wMTBuru/vbeyrbOwr6yutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWjm6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7P0BBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGwrq+yp6awpK+utcG6tbnVx7WztKuytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsaOlqJ6gnJWTkI+RkJiQlpWYlp+Ym5mbo5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENBRD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaSlrqWsrLS8t6y52bO7rbWvr7O1qqetrKOcmZSOkZaXmZmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZabl5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6kqK6trKurr6qvqZ6XnqWdnqWmpKGin6agoq+rrK21sremtdSZwbeysbGwuK2noZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKmxr6KZnJ2eoZmbm5qYmZuUlpuWmJyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5VTFJMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho5+doJ+ioKKvr6ywsaqoqrLJlqbIsK6trLCnoJ+ioJeRlJugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7issbSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqShn56anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOemaidrp6nnpyhnp6ampKZnpyhoqCgnaGkrp2fqayjnpeFe4yRsZSIta+oqqyqpaCemZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqefmaagn5+nqKWknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKafnp2dl5iVmZ6bnKOfn52jps6jm6WgiXaDc2Joa32Hg6Gzrq6pq6egnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqztK+zrqquo52rp7axrKKvpqGjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHJra3VycGhXW1FFVEhESU9IPkVBNEVIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw8Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6foZ2cmJufoJugn5+XorDRq5SOiIFicY5sYl1geKCxr6ekpKOgnqWrpp6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsDFvrm0ubq0u7ewtbKqurGuu7e+urqqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR9enJrZGhveGplWltGS0xFRFNMREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkpy6zqKGbmOHX1eHiI+PnLCqoZqdnJ+fmZeYmJKMj5eXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zT0NPTzMrCxcbHysfOv8jRzMfFxsTBu8PAvr6+tb2zrb+/wsLGxMfErr64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6ydn66mpbGqxcbMzs2/sMGopaisraqhnaOfnJ2aqZOZxsKVa1xql1tUcZuws62kn52gm5iXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K0tfR19LU1tPTyMzHzc3J0szO08zFx8nKwcXLxsjIxb7CsrPIxMvKys7Fyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo5+ko5+gpKyan8+0gVpcfZFrkK6upZ2dnaGloZ6alZSWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTSz9HD0NPW2NXW0svJztHLxs3RydLV1tnV19PW2M7Sys/RzM7QzNLPv8fGysPMzMvOz8XGx7bAyr/RzMvPxcnHv8PCyM7Mz9DPzcrIzri3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKR0FFSEk+O0A4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wsWxtqiipaahoqu1paXSqGpadZWjra2clZignJuhop+cnZqWindpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNDO09fW09XQz9LT0cnT0cfQ2NfY0djS19nV1szPz8nN0cvOz7/FwsfFzs3R0NHIy8zAysvF087LzsjEycbGyMzK09PR1c/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1FNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr66qqqudpq64qKu319TV2dnRztDAvMzJt7+vp6upo6SxtbGvzaFaZJ+tq6KZlpiam52hnZqcnpN+cmVjYl9fYWBfYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHG0dTK0NTV1s7S0NjY2NfLyM3DyM7Mysu/yb/HyM3Oz8vQzc7Lzs7Hys/Qys7KwsnGyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1XRTtAPDMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PT9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWtpa2uvrSwwNjS19rc1s/Ny8TT0MLBsaqtrqulsrG2vsyXWpCinJaTl5yen5+dlJaYlIlrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVysDKwcXMwsjJwszDxcfKys7KzczQzdPLxcjPzMjHysTGwMXKy83P0cbQzs3NzM/Fx8C3uL3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV4cHFrbWdgYHFoWFhoVkxGTElQUEI7RD47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc2Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfCuMvV1tna29jMzc/I1tXFw7extaqjray4t8nNl4iajo2YlZCUkpGWlpaQjHxmYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL7Gyb3Cx8nOxMHHwMfNx8PLysvPx8PD0MjGwcXHxL7Ax8vLy87CysvIx8zQxMXHu8fDyMjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd250ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vbrNzcfQ1dXZ2tvY0MrP0NLUycS5vb6vp7eqvbnOyaGUjo6Xj4aDhISCfoWFf3RgXF5eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsjGwsPAw8fKycjKyMHFzMbIy83JxMLLycHCy9DEy8i/ucG7xce9v8bPy8O/w7vJxsi7yMbEysC9wcvGxcS+xby8v8PEy8XEvMDJwsXH0sTAyL/KycbHxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZqjoJuUe3ZzdGZpWmFubVpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvP0czHwsPHzc/PzNXQ1tnY2dDM087P0MrDt8bAtbW7sL+20rORjJOYh3qAhYaAdnh1cnFfWltdYGBiZGRkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjAwcHFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDvrzBzcPGvr61wb3DurzGu8K5s7zFxMHCtr+1tb2/usvDvLW6yLq/vcvDwcXCxcjGyMbQxsLMx7LHycPOzcHFw8C9srewsqeoqLmwpa2wq62slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGw8TIztLLysrHzc7P0snRxtbU1tjOzNDHzMjKxL3JwbG0uba5tLuTjYqLhXmAhoaAfoR8dHVkXFxdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLS3tLKztLq1vrG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bAwry4vcbBw7u1rrK2ur60xLe7tau4vb2/vbC6tq+2urLFvLauu7+0trTFvb7DxcDDxcbIy8XAxsa7yMu/z8rHw8bCw7bDvb22ub7Hv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDMzsjLycvKy8XRztPQz8fJxcnEw7+8z7yyt7u4tbSbjoeJiXt5foaGd3iCfXRoXl1dXV9gX2BkYV5kZWNfX1xbXlxdXlpbW11fbHBtaGZqbW5yfKTHv7i4tbCrrKeeoqqnnquss62pq6m0rbawsqmupqyyvLq2w7m6urGrtbm7tMK6sL+xvby7trzHucK2raqosLG/tbe8r7CnsbO0u7yrrbWlrrauurGwqriwrbuuu7i7v7+9ucK/x8PFwbzGwcjLuMXHxb/Gw8O5xMbCu8bJzMuzucK8urKIcnZ2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs7SzMPGwsXQx87CxMfAxsbExMvCysvBw8DGv7i6usm2s7m6s7GpkYmPkHx5foqGenuFgXdvXl1cXV1fYF5fZGNiY2NiYF9dW1taWl1aWlpaXGRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCkpp+qrbW2sb25r7evqK63tLS8uLS8r7i5tLG8wbHArqWooquxsrOnvKqrqKusrbSzpaitoaSuqbKlp6itpai3rLCyt7m6u7G7vb6+xL+1wcDHyLe/wMS3xMK/u7/Ewr7EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XR0M3EyLq6zMLMwLzKuL/FwLvLucLFxLi7wbu3tbvDtrO1tqmtlIOJjYF8foB+eHR/fHN3Zl9dXF1eX2BeX2NjYWJgYF9eXVxaWFpbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSdpJuYkqGjqqOin6Wlp6Wsn52bpKassq+2t6ewrKeqtKq0urG2ta22ubGvurmxt6Sfo5+msaerqLmqpKeoqKeyraCnpp+bpKWsnp+npJ+gsa2trLK0srSwtby2u8HBsrq+w8GyubnCs8C9v7W4u72+vMLHxMLDv7/EoIN3cGthZl9rb2BVWV5ITmdPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzc4NjY2Ozo6Ozk7Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9taCelJ2hprq2q7Ozu7PE0MnLw8e5uMnCzcC5y7m8x7u1x7q1wsSxu8O5s622vbisr7GpnoSHh4J9enZ0b21rampxaV5gXVxcXF5gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeVmqGWm6KYlo2eoaKmm5+fo6Whp56bopufqrCtsbWiqaqpq6uktLmtt7CssrWusrWusKqfnZ6jorKkpqm4raKmpp+orKqZn6CemZ2fpZqao5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7OzubO9tLaxsbW0v7a9wL3Dwbq7vZeDenJrX2VeZGRYVFhdSVdcS1BHSUlGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xtDIycHHvLzFxM+/u8m6usG6tMS3s76/sb/BuaqmsbazpKyto4mGh4B5c25wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaRnKGiqJ2bnaWmoaWcoKCamK2ura6yoKWiraumobSwsbGsqK+yp7qzprahop6bo6Gto6Gptaqio6adpaajlpiel5manZ+al52dnJysoaumo6Smrauzs6q0sLKqsrm0r6mvsrKzt7Ouqayusriwura5vb+3srGUhXl1ZV5lXltZVlNaVUtbUUxJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLNyMfBxrjCwcjPuMLGv7W8vLXBubW8vrO4vLemo622raOrqJZ9hIWAeXBydHFpZmRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYWFhYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnqmcmpqqpq+wq5ujo7eqoJ+uqLappqetsKO3sKS3n6KbmJiqpqGarLiwoqGknKKgoJOVoZSVlpuYl5aXnJWfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxsLCur6anp7KusbSvvLS6t66jlIF5dWReYVZZV1NSVEtNXkxQS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Oqu8C9wLmutLjCzcnGw8S+x7nJzbTDxMOwvr64vr+4vb23t7mzpKOtt6Gimp+HgH15cmptcnRwaGhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKannpyfpZ+qr6afoqO2qKChoqi0oaWnpK+lsK2stZ6gnZWUqaGilKyxsZ6io52dmJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpaukpbCnpaOrq62mqK6vrquoqqmzpaarr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepKett7u8wcW6sbm1xcrLwcTHx8i3x8W0xMHIrrm6wLrAvr+7ubS2sqKjrbGZm4OUiIB3b2RiZ2loZmhqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRXVlNUUlVgYF9gYV9gYWNkaYGTk4iQjpSSk5yUlZajmaCWnKCloa2lpKOio6GbqqulmZ6lsamgoJ2lq56noZ6sramorq2ioaKUl6ObnJCqqLCbn6KfnpeZk4qekY2Sk5WQmJiTm6GinKSgoZWgoaSmm6OrpaKkqqSrrqWtsqmmpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlZSR1FPSFpcT1JJVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4Njk4OTg5OzlAOXu1tK20u7Kvq7Gtnaenr7m5s8DIurXAr8bJzbvCy83It8u/s8DGy6+0u8W5v8XBuruztrGgpqupl5KBjIR8dWpqamxoamxta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eXl9fYmRtjo+EkYeQkY6Zk5SSnJqinJugp6iqqKqmqKWjmKSupJSZpa+pn5uZm6Cer5mbqrOfpaafo6OhlJOblpaSqaqtmpyfoaCalJCMmY6LkIySjZaVkJ6hoKOcm6KVm6CioJiiqKOiqKugq6+krrelo6SirK2qqKuusreyvbWzq6+Yg3NzaFtYWFJVUkVYTFFbWU1VTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaevrZupqKy3tqy8yru2v6zMx8a5ws/QyLXGvbm+xcuzr7vDusDCwLq+r7SroaWpppePgIF3eG9uaW5ubnBoZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/jJCKko2XkZeZoqCbn6qppq6qp6+jp5mfrKCVlqSop52XkI+anq6Wl6eqmZ+clKWhnpKQk5KTlaerpZqZmZ2dlo2MjJSGiI2DkIuSlZGgnqCjl5WflZqgop2Tm6Wlp6iooLGwprG8p6CjrLSqrqewtLC5tcCxrbGrkH1xcmJWVFZOUklHVlFSUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIxLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6u8LL0cyzuLq+wMTGtLK1u7C4ucG6va2vqayoqqWVmIJrZ21ucm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKmImUlJebmZ2omp+ppaSqnaeYoKWbko+eopqXloWEkpqjj5OinJWWlYeimpqTi46LkJqkp5yVlZebkJKHlI6MgYuNgJCKkpKSoZqfopWUmJiVoqWZjJikpqimoaC0sqezt6Gdoresqa2ksrKmtbu1q6uxo4h4cWxdTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHS0hHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSopLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSno6mloKmlpLOqorLDtbWys8fGuLvEys3Hta+7v7e6w7KxrLShqrLAtreppqevqaqZkJ95X2Bnc3F2cWpuaWVoaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGDjoqUkZOdoI+am6Kho5iklqGblY2HmJqMc42CfY2XloWQmZCTjo57mY6cjIKKgImYn6KekJOYloSOgpN+fnSJjnqQh5OQkJ2amZqQlZCdjqKjjomaoKGjo5uitK+sr6yfmaW4pqWwobCunLC7qqmvqpmBdnJiVU1ST1BNQ1NOTFFNQlBRSElOU01ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTE3NjQ3ODk6OjY1Ojg3QTd4t6KjtKilpqijpqWmpqazp6W0wbivtLDKxbi6wc/Gv7SuvMOusMawq6WqlKGrvLSsq5ujqKelkY6ab1dXYGhnaWhpbmNqaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeLk5Cfl52VlJaUjpaJf5OJXztXb3uLlImAi5KMj4WGc4qEloF5gnqFlJ2Ug5aOkI+Dhn2SeHJvhY1+iYGRjY+XmZiTio+JnIeel4eIlp6aoaCXp6+praionpets6KmrZisq5intKKpraOSfXJtX1tOU1JWTERUSlBNTEZOT0lGTFFNS09KSU1QRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCgrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6KpsKintMG5sLWwyMO4tL7PwLqwsLfEqq3IrKWgm4WYn7eqo6OSoaCfnJGJkGZRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQX+VkZF9iZSMhIqNmo2VlYqSiIWVhniIf2BKUW54ipGEfYSNiYV/f25+f5R3dXV3hI2ZcFGNiIqHfH54k3Zod4WHfoqIlYqNkJGWi4SKiJSEmoyBhJKblp6clKSjqKmlpJ6bsKqhpKSQpaqWoamcoqaoiHRsZV5bSFFRUk1JVU1TSUxLT0lIR0pOTE1US1FRT0ZIQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKiosNDgzMzk3OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+tqra8tri3s8K8t6i6ybm2qKm2t6y0v6mgmZGBjZeunZ6ViZuSlI+LhYZiTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJKBkpmLj3uGj4B1f3hzbnVwdI2NgXl9iqqFeXpodnuOcHJteIGLjJJ4eoB7gHZzcpJ3Z3WEhISEe5WJiIqMioB/hIuMf5SDe4CPmJWclZGfnamen6CdoKmln52YjKekk6Cflp6epH9yZ2BcXEpWT1JHS1hST0pNTVJKSkpNUEhMUUxSVE1FSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5NDc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTM3MjE5ODc5ODc3NTo8Ozd2rpijoZicn7Spr6mlraywsaq9tLK7uLa7tbKgt7uzq52eraqqs7CjnJOQl4SSoZSaiICUhouFgYJ9YktJSUhHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gXZ4gImPfISYkoFyh498dntva36tfHOQin97hpKBfX90ZnZ8hmxvaHN8iYyHgGx5cX1wbXWPcWhxgH6OcEOKhIKDhX93d3qLhX2LenV+jpKPmIqSmpujlpmcmp2eop2WjYqlm4+el46WmI92bmxlYlpXV1RRSlNVVE9QTlFWS05LTk9KUU5ITk9LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn5+WoKavrK6rp6mxr7GrvLisu765s62om7GnrZyQlp2mqqWimZuRh5R9jJOQkn15h3iCfnt7fGJLRkdGQUBDRElMTE1RUlBRU1VUVFVWV1dXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hufHmIkHl8i4VvbYyReHN4amqAgnKWkYuBfZaASZKYbmh4foJsaWNseYWQkoZrc2x8bnJ7hmhtcH9zjYmEhXp9fnt2b3RzhYJ5gXdwfI6MipSDlpeYmpCTlZaZl56XjIOJn5GLko2GkJZ+bWhtbm5XVVdUUlFZT1JVVVNYVU1OSE5KTU5LQ0hOR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDQ1Njc0ODVIQTg5NXeZkZuZmp6lrbCirKqota+urLS/q7zCv6aimpWlmJ6OhYyWoqKZmZKVjXWQfYOJj4x6dnxye3ZydnlkT0VHREA8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4l2gYiGdGyakXRze2prnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtwf3xncHB7bpONjntzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlI+XjoB5iJeIhoqGgJCHdmpqbmdkV1FaV1lZW01QVVZZWU5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiZkZqWpKiunrKfprquq7KwwrG7w8eblo+VmYuNhnqFkZmVjpGNkYhziIR3io+LfnV2dHZ1bXdxZ1VGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bHKDgYWBeoSGhnlyoJV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiYBoZmJpbnJtcIN1aW9YdXCOmpJ2bH97fW1xbXCAenN2bWJ2hH+GgIWQkYqLipKLkYyLj4N1eIuPgH6DgX6PenFwb2teWlxdW1lYYF9TTltaWVhMSEpFSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ6kp56vlaW1qa2xrsGyu8HGl5CMlJCBiX1ugpGSiYSLiI+HdoOFbpeKjH95entxe3N8am5eSlBHPkA3NDQ4Ozs8PT5AQkVJTExMTU5QUVNVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8fYWDf4x+dqKZeX6GgYWZhJucYYaqn52KgpCNenaIfomIjnOKl4+De1xkcXR6e3eKbGdpYXlvhY+Cem6Bd3SEenB0eXdrbmldd4d9h3yIh4+Ai5OXg42FjYd9cYR/hHx1d3t9iXVvcnNlZl9bWl1TW2ZeV1FVWFxWR0pKREtHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyNeIqAlIySnZ2fppGgq6CxqK/AsbrFupaOkZSIeoV2a4CMkoN+i4SPjXmDgnSiho1/f4KBc4OAfGt5bFNXTEBFMjExMjY3Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+MenyJhn6Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbHyBhod9jmhmZ3h+boWGgoVxhIVHa4B3cnl2aG1rX3Z9g4h/iIWMepWenIqLiJF/e3WLdnx3bW93fn9ycnFqWlxcW2NjWGdlXFVQUFdZUERMS0ZOSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NzU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehXR8foqFiJGPlpiSl6CdrKGmuK+zvbOXjZKLmIt9dHB/iZN/fYyDk5V9hn+HpYiJgYOIhnmIi391hnlfY1ZLQjYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzk0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiZGBmpWCoaGXlZuapa2Tmruxp7vHw6iLjKGljpOJgZB7coOdn5GcfnaFhYqPh5BpaG+DgHSMhoSLcYaCd4eAe3aFfW52dWeAlI+GiYiHiIehq6KWiY6Yf3uCiXp6b2dreH14fHFpY11aWV1pXGFmX1pPTE5YUlFJUEtETkdDS0RDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnVwZ3iDe4CMgIGQj4uamqScoaymq6+wl5GRhKGUhHh3gI2UfX+ShpOWf4qAkpuOhIGCjIuCio6EgIqAbHBqXUNBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jKGemISShYKPoZ+TmJKEioWPmJGWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGWhpOKj4+WpbWpm42VooOHk4R+f2tqa3x+fn9xX1xiXllmalxsa15YS0hPU1FOTUxGSVBDRE5GQkNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuaFlwg3B1h3F2koZ+l5aalJ+fnKegqpaTmJ5nZaSafoWTknqAkYmRkn2KhZmSkYOAgIuNiYaRh4SIhXh4f2dNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDg1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGampmnkZGIlaKamnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N7fXpvZl5bX15gZmNgZ2dcUkVLS1BPSUpMRkZNQ0dNRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcXVgbn1id459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Ljo17ioaPkI6Cg4CJjIqFk4WDhoiBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49R0dBQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKeotKyxt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsraqji5aYhaamoKKXgqaZjaKqqKSHhZOjoKCqoKSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWqiZqKk4qVent+g3xlX2ZbZGBdYmNeZmZfW09ESkhUT0ZITEZLSEVGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljWGpwWHqFdoGUhYiCm4OSkI2S2sidlnNWl4iPiJyPfIaMj4uKeoiCh5GOg4WAi4WFiJKGgoSJhoeHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJUVVVXVU1bUEdHRDw+PkZIQ0RANzs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHIxKuzxbass8CzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsLGbmZKan4inr6qklHafpJehq7GzmJapraiutbuyuqyvtaKxrLG1vLe1rrWgp6ejqJupsK2yuri4p5y3qY2lj5KToIZ5gYFzV2BiVGVgYGJfX2VfW1RKREVMVlFJSkpESkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hn+AjXu/u6O8grSUk46bj4SIj5OJiXmHgIyTjIeFgY5/gYmPhn+FiIWKh5F6eW5dVkBFTjw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFdPX1VJS0pBQD9HS0ZFQzs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMq2u8S9s7TBt7jCtb+wt3SxtKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KRpbGtpa2rp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6uL+3ure5ra2xprGqrb6wvbvCwqyZu6iVrY+YmKqJfoB5aVZhX1dpY2lkVVtjWVZUSUhHTFFHRElKQUhEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWlZad2pwf4+EgY6FbnpzeIhiuKGao4mVlJaTlJONkJeSh4d7h4GNlYqAhIGKenyLh4Z9ioKBi4SVfXh6dWVPXGRHRUw6UWRhW15TRj47SFBEWmRRUVlYWmdaVGBhTVNPRUE/SUpIRUZBQEM9RTZCPkhHS01TWlRelK+4tbq5ycC7vcrMu73Au7e1vLy3vrW6ssZgdbKlsZqeq76qpairqqSisrWgq6ielZaemJ+upaempZ+kk6KnsLOosrK8tsG908nJ08bCxczCysPAvr2/u7y3tLC5t7fDusa+w8mwnrqqoqyPpai2iYB9cF5gYFxWYF1nZVJYYVZSVklFRk5LQD5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzM1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdtbHGQjYWQc2xzcnOI1cC1maCNlZmakY6XkZaWjoaHfYeDjZaLf4N/g3h7i4SHe4t5gYqCl390fXpsZXB2WV1cUGVlYmBlZF1bWFdcTWRtVVJtbl9vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVl1aXJO5wLm9t8bAu7nKy7u3ura4ubO4tbWutraZZHWpnq1wXqKtnJihopuknqullJ+fkJSPlpiXqJ+ln56amYOknaykqrCtt7C8uNTQztbPyczSzM/OysfAv8LKvcG9wsDFxMbKv8nPtKS7sbWwm6y5vZp+eGpcX1tYXWBYYWJRW2BTUUtDQkVGRTxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQjIl8gYNze4qDhXuKdIKKhpV/c3t5bG11fGlzZWlsaWZqamlgZmlobVptdJetpLyHh2dbb2hdWllUSEpOUEpLUUxUUUhMQUpHS1BfX2JnamKXt8ewubO7vraxxMe2sLmxsLuss7Gnq7esjbannpynmk6bno2OoJaRp5illYqTk4iRiY+RkZ2boZiblZaHnpmmmqyvqK+ns7PT1NTW0cvP09TO08/MxsPK0L/KycvJ0sjNzcPR0rivxLzEuqa3u8SigG1iW1tcWF9XWGRZT1xXTlFDQklFQ0k7QUQ+QUg/P0I4O0Q+QEk9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OT05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CQmYNocW95eYOgqp6ml42bm5iLjZWRmo59iYyFjoqKi5CIfISCcH+HgYZ7h3KDkouPfnF5dWxweH9ye254c2xpgHBtY2ltcHlpd31+y7/C36dtY3hvZFthYEpQUlVOWV5QXV1OUE5UUVVUXG5ud4Nylq64rLSosLarrb3Bsau1pqW5p6yuoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSKg5OVmJeUm5GbmJmZnp6rrKSnoaysztLV0c3M0tPT0NTRzsjD1NHIztLT09bN0tHF0tbGwc/IyMOpv7jQnHdtZFtgXFVeUV1aT09UUE5IPkFHQkNGPEFCP0ZFPkA/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNTk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bXdwfX6AoZ6eoYuNmZOTjIyTkJaFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBwd3Nsc3x8d3xzgnhxa4BycmlvcXp5c3u+y5p+jLGDdnKFd2hhal1DWlpbV2ZkWGVrVFhdXWBjXmN4e3+LgZmqpKSioKGop6qxuaumtKOirqKkrqKnsZ+JppuVk5GKko6IgpSJa5WijZmEgYZ+kYODk5eti5WNlZmOhZKQnZensKKgoKSkqMfNz8fBy9DT0dTSztPNxtbTzdTY1tbY1dfVydTazcrY1tHKrcTDzIlxbmFeXVdSWFJbT0pHSklKQDs6O0VDRDxDRD5IQz9DQjs7OTw5R0M0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKJgZ2VnpSFi5aJjoqIjoiPgHiDlJmLjYiIi4l+g3hze32Dh3eAe4eRl4GEb3hwbXV/dnh9dIZ8eWyHdnVufXaEdXl7nbWMPEGKxqV+jXxqZVdJQ2VjZmNoamRveVtfZmhrbmlugISIkYyen6CekZeYn6SkprKkpbOgoqWeoamgorGch5+SkpORi46LhoOPhH6cnIyNgoSFepR+gqqVo4ySipiSi32XipqRq7OYmpunnKe9w8W5tsXN0dDRz8vSy8nUz9HV2tfX2NTZ2M3Y287J2trS1r/MzbR1dG1jW1dRVFBYVUVGSklFRT06NzpAQUI6R0VARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXOGjXyXkZ2LfoeSgomGhYqDiH15hZeXiY+Dh4WHeoR5cXp7hIZ1eoaOjZ16jHB9b3B6f3J7gHGEh4Bujnp1d318gnV/fIeJsHRZqsK3jZKBcG5jPV5ocnBxcG54d4JlaW9ydXhye4uHjpOSm5agloiMk5ugm5+qn6GtnKKamp+mn5+smYyajJGTjoV9iIeDhYuOoJmTiIOHfm2ZeYSZhoiTjI6VjIZ7m4iTj66qlJWXnpimrrW8qK29xsvIycvLz8jD0crU1tjX2NfV29fT2dvWz9va0dbI1cyTdnhnZllYT1JTXEdCRUlJPkE+PTg6PT87Pkg9QEJBQURBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fYSYjoeLfoaHgHeCeW57e4eCdHqSno2hdo92g3R1gX10gIRvgpCCb5KEdXyBhXp2h3yJuMalw8q4gpacj3hwZU5lY4J6gXeGopCLeXl3e4N/fIR2bZSWlJWPmJGDiY+XmpeXppyYoJefk5KXo52Zq5aRkYuOkoOMhYmIgYaQkZ6cmYmFi4GFl3uIiZ+XkImOiouCfKGIkIu8oZiTl5mcqKalrZ6ntb7Av7jHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztzGhXh3ZWdjXlNWVlRMS0RNRDs9PTw5Ojw+OT5BNz4/QD1APjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVtodHp5bImNknd2eop8foB/gH2Fe36CkYqFhnqFiHt1fXVtfX2GfnR/kp6Rn4OSfIZ9eI9+eYuKb4ObgHSZhn2CioV8fpF7kKmOkMOgvYycpJx+ioR9iXKMi39zppqcmZSFe4+RiYRpR3GhpJ2Mi5CShYiLkZOVj52bk5SRl42MlZ+dlKGUko6OkIx+kI+Oi4SIkpaan5+JjJSRnZCCjH+mmYiFjoOGhICkhoqLuJidkZSWoqegnZ2do662urSrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbt3d2dWloZFVfWlJPTkhDTEM9PT45OTs6OTk8PTZAPj49PTk6OjszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxc3iKe3t/fYB8iHt9e4uHg351g4Z6c3p0bYF+hH13hpuhm56UkoCMh3+Yh4Cckm6IqYV6oIt8kY+DiYScfpqRiY2jop+QpK+gi5GLhouBkoZXcq2Ln6ycj4OYnJCQjlyDopGCjZ+TlYyHiIySk4yUlZWQjI+KiJabnY+VlpGLk5SGgIuJko2Kip2XmaOihpOdlaCKioiOnJCDiI+Ag4eFpIWLkLOYnJKUl6GhnpmSm52nsbispLzBx83Hxs/Mz8zP18/R1K7W1dja2Nra19bZ2Z1tenJlZVtbVlJVVkNASUQ/Pz46NDk6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieGxifpKDb213i3h6f3uBfYZ8e3aGhYBzcIWCe3V3dnSEg4V9f5Kmop+mopeKnZCUl4qKp5dyirKNhKeShJmUhZqMo5agmJOJm56ik6mwoJGVkI6OiJWLbo23hJrEyLKcoqWbnZiWkbKQZKTNyJWOhoeJkJKOjZOUioWKioaWmpuPkJSTh5WYhH+Pi5mIjpCql5eko4iZnpWaiY+Gl5iKhY+Ngn+Gj6WIjZOpmpeTl5mhmJ+Zk5yaorK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6AcHxlYFtcXE1JU1hBQkdEO0E+ODM3Ozw6OD02NDo6PDo3Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGPfXxtfoh4en57goKDf3Z2gIN8bW6Lf3p8eHh8hIeKfoujs6ejqrOil6efpaSWla6ig5G4lZGzmo2hoYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmZehwI6jybmrm6OmrZmSm52ynYWFqKKcmIWJiY6VjYuTj4iBhoeJk5iVjIuUk4aVmIaEkZCcdZGYspaXpKGInZqSj4qQipebiYuWjod9jJieiZCQnJqak5iYn5SgnZSem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LR1tjT0Ni6cHdzWl5TXlRPSElNRUJDRDU+Ojc3Oj88PDc9NDM2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p6boWGenyEeYGGgX5weHx+fW9yjXp+gnx4houJhoSSp7usqLK9r6Wts7Ooo6GwrIqatZ2iuKWVraSXqa24p6Wjn5qpl6mjr7CqmpmclJWRl6CYmru7rsqhara4q7CUmZ+jrJOXvaNeqrKDioqNlIeQfI6OfYOGjo+UlYiIk5aMkJaNi42XmJOdmbSXlaudi5yUko6RkoyZm4qSnpCLiZWfoY2UjZianZKcmJ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8fC0aDGyc3NxNfW0cvToG54ZlpYUVxQTkVDPjxDQUI4Pzg4NT9HPTw2PDM1MzQ1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEo/i4p+gXOGh32CiXWDioJ/bXx9fX9wd4d3joKHe42PjIaMmarCwK+9xruztMC8tK2rs7aMqLOtrb2rm7ukqK25uKunpqKipKKpr7Kxq52cpJibmJeeoqalkqS6r6nAvK2tsrmlpah+iIacrbywg4yMi5CDjoORjnqBh5CNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpeOkaCRiZSbpKyUlo+UnJ2ToZ2bmJ+hlJqep6akoqSws6fBxsOvsLq2xcTCv82mx8THw7zW0c3EyoZycF9ZV11ZTEpBS0BGRz5BP0I7OjU+QT09NTw2PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRD9DRlxlR2BpZ1pdXJOMi4h7h4yHg4x1hpGKgW9+e4F/cX6Be5V6kpSUmJCTlaezxsm/wszCw7nHvLuvq7m7mLO3urLArqXBpKuwvL2rrqujo56nq660sKqcoKqcoZuWn7C1p4ujuru2wbysqZyypaSplIWOqcTDpIKLj4eIhIaVlI16hI2Rj5GijIyUko+Jl5+Yk5mVmKagrp2MqpyOlo+SkZWVjZCVkY+hlIaXn6CynpSalJ+gmKSfmqCboJSYnqWjpqakr66lwMTDrqi3tcnCvrbPssS/xLyz0cnIwrRydmpZVlloUExIQkxLS0pBQT1DRDw1QUQ7OzM9OEIzMzIyNjJBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWU5lXGZUY2qZjZeKjIiTkIaJeYeUkIFygHyNf3iHgoKQeo6hlqiampi6vcfIycHSycrCzb3Cs628vqi6v727w7eswqmss7y+qrCqpKWkrK6zrba1oJ+vn6WimKOzvambqL3BpLa3sKyTsa2srZeHmqmnpZGCjJOllYmBdoqReoWNkpCen5OPlIyPjZWjmZaclJSjnqqfkaWajI+Pj5WWiHyPlZKSo5qVn6GctaWQnpelo6Klnp2mmJ6Wl5uko6mnorKsqLzAxK+lsrfMv7mvxLO7vsK4rcLDwsCXandgVlVaWUlKTElGRERIQ0JBREw6NERIOTs0PDdFLjEyMzUyQjI1U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+KoJOEeIV/lX9/kIiKkICWoZmupqSYwr3Hw8fF083Ozcu8wrewuby0vcu8w8G2t7yts8C6vK6vqKCpqLatrqmyt5ueraKnoZ6rt7iqpbC/xbG9ubSoqrW0rq+XlqWsqKCRjpKyxaeVjn2SlX2IkpmQqpmYk5OPk5aTpZ6SnZmUoaOinJifmIuMj4+eiFqQlpeSl6WZZZijn7OllqGWrKypp5ueppeYlpeVoKSopZ+2q6q6u8O0pbO1y8C4qrassru5rqi4ur24gWlsWFVTU01ESlJNSz9BSEVESEhIOTVFTTs+OD1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnBFaUlSZWJMRqWUm5eil6mWjZCDh6aTiIKHgpyDg5WQkJSPmqKfr76voca8xMTGxs7OztLKvru2sbq7u77PtcO9uLm3srG1s7izq6acq6y5qqmnr6+Yo6+kp6SltcCwrKy0v8O6wLq0qLm1ubOvlqWtrq6ki5OVoY10wZp9l5mEj5aajLGVm5qVkpOamqWjlKCbl5qpnJyhoJmKjZCWnGBKlpyalZqlllWXsJ+vnJ6klK+uq6WaoKWUk5iYjZygp6KZtKmqs7u7u6qwsse/uaasq62ysqOhsrK0pG5rY1pYTU9KRE9PUFE7SEtJR0lDQz46S1Q/QTo9RU0wNzU0NDpCNDRNV088SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGYh4uolo6Ik4Wfh4Sdl46doZujpLXItanGucLDx8rJyMzNxr67s665ucHBzLXHusG5tbqwr6+ztaekm6q0taqppq2smqSupaSorLq/qKy2t77Cv765tLPEsrm9rKOvtay5poibl6abdr+fhJmdjpOZmouul6GcnJeVm6ChqJ6nn5maqpmhp56YkI2RnYNudpKimpWdop6QrrKiqpSoqpeqraOjn6SokZGZm4eUnKKelrGnqau5tr2zsq6+ubego6eopaacnK2pqYtgY15eUElLRkdNSVZMPU1FTktMQkNEPFFWPUFBQkRPMTg9Nzc/Qjc1VFdOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH9lXkhFq5WboZ+7r5mUn4yTq5uRkpOJq42Hop+MpK2Uo6O2xr60wLrCwsfIxcLNyMG+ubKvuLTAwsq1xbLBvLW6qqmtrbCjo5iqtLumqaarqp2pr6ejqqu+vKitvbS4vse8t7a4wbK+wbSptbervqWPopiSop+8n4maoJmXnp6Pt5+pnKWim5yhmqiks6GbnaacqKmemZWPlJuLl4mMpKKUnaKeobWvpaSTr6uZq6qdnaOjqJCUlJ+Cj56em5WppKGhs7S6ta2otbKznpyipZqXlZmqoZ51XlpdXElHRUZNUEhNRUdHQ1NMSkJFR0FWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5ZlxGQ0OccGJHRaeXpJ+ew62bl6WYmqmclpubj6qWlaemla2smaKrtsTCvL63wcLAx8O/zca7vbmysLizv8LItb+wvLe5t6Wkq6ytoaGaqqrFoqSpq6aerK+roqmov7inrb6xuLbHtrW5uMCyv8K3tbO0r76jl6OWlJuUrqCQoaOlo6OfkL2kqZ6oq52doJuln72imaOfoqmroZ2WjZWek56Hj4SNk5+koJ61rKWblbGnma+mnZmqnJ+NmJSehI2gmpuSpaSamKuxtbGqpaqtrJyYoKCSjpCVqJ6UZmBYX1xOSEdKTktIRURJQT5RSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNDZAOTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm1SRjxLeGViVkyimqOcnsWsoZ+snp6uoJKjn5aln6aqrJe2saOqs7bExL2/tb/Cu8jCvsrHtbi1tLCzs7fBxba+sbi1uLSfpqyqrJ2dnqWkwaSfqq2gpKmtr6KmqL21pbG9uba2xLK0uLq/s8TBuLius7W1o52llZGUoa6gmaKeqKiro5rCramerK2bm52ZpqC9oZ2kmKurrKaimY2an5KfiY5Xf5afpaGguKqmk5i1o5+xoJ6arpadjZiTnYGOn5eVjqKjlpCmrrKrqaGhpaWVlZ2Yi4+RkqSeiV9iWGJfS0hKSk5FRUFHSz49SkI5OUpKTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtOnp+hmZ7DqKWitKKdsqiTq6Wgo5+tqaydu7CorLaxyMXBwrLCw73Gw7zEybyvsLatsLSvv8S0ubGwubSsmaiwqaqanaWhqMGsm6ywnKqjrrGppKi9tqe3u76vt8SttLPDwLPHtLu3q7O2raqippaVlKSsop+fmqirsK+vu7KmoKmomZmXk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWemqKep7SmpoyYs5ujrpmdm6yQnpOVk5l/kaGVj42foZOLpqyvpaahnKCekpKak4WLkY2cnX9fZFpmZEpJTEpSQkNASUg7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+joJygw6mkq7OhpLSqlrOsp6KksqyuqbuxrbC1tMbAxMO1wMS9ycS1v8jCtKu1qK+4rL/Ds7eurLa5pZiqsquqmJ+ml627tJunsJutoK60sqerubOourS4srnAqreyxL61xqi/r622tamnrKGXl5GmpaKimJilr7iusrW2oJ+opJqVlZOkoLeipKWWr7Gyp6qmop+bmpuWl6ifoJihnq+yoqaMl66YpKqXmZ6kkZqMk5eZhZWelIyPnJ2Ti6ipqqGnoJielYyOmY+BhZWIlJ53YmdcamlMT01OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzuko52ipr+nqK+woam1q526saujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDFwLqptqSsu6zAwre3qayxuqGUrbGtspalp5GquamfprCdq6CwtLOqqba2rbyts7O5t6y4sMO7vr+mw6uwt66pq6unnpiZq6GioZGXobGvs6ywuZqcqaCZlpKXpqG2qaWjorCxtKuzqKyfm6Cgm52lnKKXnaOzsJqfj5Olmp+ompOinpSXiJOWkpWWnJOIkJqZlI6oqKafo5uXm5OGjpiLfYyWhY2ZaWdrYGxtV1BRWlRBQkVUQDs7SEE3OlhQZF5QVldFWV9dTUxSTl5LSj5aY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9qJ+doqq9oquwq6OxuKqltrSsoK21va6zuLu6vba2wMK/yMS5xMLAwLjEvcG3r7Wnq7exu76+tKiusbaelquuqK6XpqiOp7ufpKyznqyisbCzrKq2tLW+rrCxtaywtbLBu8W3q72vsbisraqjsaaepaqfpJiQmZ+zqrOrqrOanaebmpWOoKaltK6noa2trrGntK2yqqScn6ijnpWhmZuotamWmZGSnpmdn52Pq56Wl4SUloqdmJyTiY2Wl5qXpqWioJ2VlZeTf4+UhXuOkoKLlWRrcWdvcV5GWWZWREJNWERaOUhCNj5cUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoaSstqWtqqavrreqr7W7p6axt8W3sbe9wcK1tLrEvszGucLAur65w7fAubG0q6m6tru5vrSprbC1mJinrKqsm6urj6u+nqyusqOrn7Cts66utrK5uKqurrGota+0vL3Ks6q2tbG0sK+nobOgm6itoKaWlpqasqKtoKWvl6GkmpqSjqOmqLOpoaazrKq2pa+xta+kmZ2tp5qYn5qZq7eil5ORjpecoZeWlKuempJ/kpeMnZyZlpCKlJKemaWioaCYlpGTlXmKj4V7jIqCiZFqbXdtdXthRWBrWUlIWlo9e0pGRDZBYlRpW01cYUpbXVpSUlJiYUxLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lVS0SZl6GxqLGqraakr662qbe1uqSstLfJu7S6ur+/tLO3w8DMyLzDvLe+vr+3vryxvK2nurm3tsK2qqywt5SWp66rqKOwqpSvu6StsbOnqKOytLGysbWxuLOprquyp7evtrTExraptrassK2pp6O2oKCnsaGklJyZlbGep5ygqo6pop6blpimpqW4p6OytayosqeusbaspZmgrKibnJ6clKm4nJSOjoqYm6KXj5iloJyUgpGVj52bl5aViJaPmJqnnKOgkpaRkJV1hJCHe4SBg4uKbG92dHt+XEtlbVxLTmNcP2J7R0k4R2dXZVxMXmJNWFlXVFdUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLT1FTFE8M3JrSUNDkJmlrqWtr6uopbGztKu3sregq7W5ybmuwLvCuLOxtcLDzsXAwb20vb+/ur68ssSnqbmwtra/vK6rsrGboKexraalr6WdsrWsq7GyraqptLustbO1rbSsqquorKm5rbKxyMC4pbqwqa2tpaiusKalo6+kqZydnJuvmqOjoqORrJ6joJ+iqqamuaSstbalq6yora+2rqOeo6mqm6CampKks5mOiY2HkKGglIyUnJ+SkYONkpKdmpeVk4eXkpWZp5ufnoySkY2Qdn2OhXx7e4aJiHBycX18fVxTZG9eTllmXEZElltHO05tWGJbTGBiTlZWVVdUWWddUVJMY1paVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis7SD8zQkhTLD6QaztHSI+cqquiqrGkqaWztLG1tbKyoquuvcy6rsC6x7G0rbTCw9HFxr7As77Bwru+t7vEp6y3rLO4vMCvq7Gsn6OnraqopLCkqrKqr6ywr7Cuq7O8p7exsqmzqaulpaOtuqyqssO6tq27qaioramosqWppKOuqqiinpyjrZWlnpiemaydoqepoq2mpK2ruLKyoamioKyvsayeoKeoqZmkmZmPoKaXhoSOiouen46KjJWbjo2EhpCUn5yUl5SGlpSTl6SbnJyKkpCNiX5+h4V8d36FhIVycXCIdWtfWmBuY1FzcVxLO4R8Rj9XdFhhWk5jW05WVlVXUVxiX1NPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlVo+TEWVmK2ooquznKqqsLatubavq6arqr3Ju7C9t8KvsayzxMPOz8O/v7TAwsO6v7PIw6uut62yuL++sq2tq6SnqrCpp6ixpbSuqrCurbKxtKy0vKW4s62srqern6OesLerqq27t6W3tqSqp6yrqq2hqaemsbKkp6WhoayXqqGVm6CmnqSiqqSto5+nsbiurqOmopuqq66pnaKlpKSZoJqWj5ickoGCj4iFnJ+Lio6LmI2PioKLl6ObkZCai5OSkZOjmZuaio6Li3yGgYGDenR/goB8cnWLpId4al5gbmZXZYdjTj9nk0xFYnlXYllSZVRNVlVVVE9cXWFVS01oVlVXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxCKzpKT140RIY+SEZEl5KwpaOrsZirqq22rLayrKasqqm8wMC4uLO7taayr8TJy9G/wbu5v77BuMG5wMStsbWxs7q/vbKwrayqq6e2qqatr6q5sKixsq6yrbeqt7entLerrKSpqpyjnrOzqKiktLWgt66gqqirqKunoKusqbm2qaqpqaKqoK2bkqqhnaCkoqajqp6dp7SvqKaqoqOYpaenqpyjpKOgmpigkY6PmI1+h4yHg52dhoSKio2Nj4uChZSimo2MmZCSkY+Tn5aYloyLg390h4F+f3h0gn55dn6Ah52Pb3FnZ3F4XGFziGtPXplWSG14VWRWUWNPTVVUVFBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EO5aOsaGmq66arKWtsLS1sKymsKqpur67wLCuua6ht6/Ix8jRwL69u7zCvbrDwL6/rrKysbW8u8GxsbKrs6iktKilrbOzubGjrreysLK7q7qvqq62rKqeqqyfo6C2raihn7CzorWqnqinqqOqoaKsrai9r6yurKKoqKCsmZCwopiioKennqebmaqxqqOgraKhlKOjo6eYmqmlmJiYno6Kh5SHfYyGhIOjloSBgYuGjYyQg4OToJaIkJyQk5CNkZyUl4+KhYZ4dIF/fHV4eX96c3N5Z3+GpHVpXmRrgHRniIx9U1hwXkp4c1NlU1FeTU1SWmZOTFZZZFhGU2lSUT9DTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQTSQj7KhpKaspKekrae1s7GrpbCnqri+wLyvp7mqpq+wycfI0cK8v765vr+8ybrAuLCvtLG6u7fAsrO7rLisorSnp6yytrmzqKi9tq62vrC9p62staytnKmvpKClraunnJ6rs6W0qJurp6mjqZ6kqaipvay0r62dqqShrpybs6OVpJylpZ+km5qpq6afm6qim5OcoaWemJepqZKYmpSQioKPhX6OgoCHnY+Ffn2Lh5CNj4R/k5qThZKhjJSRi5GbkpWHiX5/cnt6fnxoeHx6dG9we2eEeISIZGFnYXGEem1neF1dVUBXem1UYVBSWEtMTnJ1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0FKN0dTYFUqPTlEVz4qj5SymqCgqaaloauluLOzpqqxp624wb21r6K4raiosMLJyczBtr3Atbe/uci1wrWzsrWyvLe5vbWtuba/raGzp6ursLW4tayfvr2qs8G0vKGvs7Wqq5+tsKOcpaiqo56bpbGnsKCfq6mooamcpKihrbuorrCtoKujpK+fn62ml5+boaOcn5yapKqjm5ulpJaXlZ+ilpuXpqyMnpGRkYuCioCAjoB7mZONiHx+i4aPjYuKg5KYkYaToomSkoeQmo+TgIh8eWx+dnl4Y3t6cW9vcXZngHNqg2dkZ19sco1sYWlvYG8+WnhrVV5PUVFKSU1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDFBaFkxM1M9ZV9ETDZLVmRPKjsyTlg9I5OZrZqgmKeko5+opLiwr6OvsKqruMG5s62fuK+rqLS6yMvIv7bCvrC0vbfEtsOxrrmys7+0u763qbm4vauktKipqrGuurGrnLy9pbDBtbair7e1pqensbOgnqSlp6GlmZ+sqKmeoKqvp6CmmKOpoLG5n6Owr6Gsoa2knKanqZqam5+klZydmp6pppecoKmTmZSYnpOZlqGqkZqIjo+GfYd+go19fKCMjIh4gouEiYuLhYeTmo+IlZ6IkZWCjJeMkX2Fe3NwfXF0dGB5eGhucHBuaH1xY3ttaWViXmSFfl9acmpxS0p/aFhaTlBMSkhQUlBJTlxfblNEWFpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo+MFhWNSiXnqeanZasoKChpKK4q7KltLSqqbnDtbOtn7etrq2wtcbIwbe+wbmxtLy2v7u+r6q9sLO+sbzCuam7urenqLWpqKuxrbOxqJu+uKatvLeyn7G4sKilp6+xm6GkoKSkoJebr6ehn6Oor6GgoZSkpKK3sKGmsKufrKOvmJyqpamel5qepZObnZqdpquanZ2ml5aYlJ2Ok5eiqKKQiIuPhXqEfoSKeo6WiY2GeIGHg4iLjYWNk5iNjpaYio+XfoaXi495gXpwcndvb3RfeXdka2xraGeCbWVya2tlaFlhc39eWmt1aVlHfV1bWE9PSkhIUlVGMjpfXmxQRFhWWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0JnW0hUQ1RdaEUuOzFfVCwylqOimJWdqZ6loaOhuKqwobu5pqy9xLOwrqK1r62tr7TExL2zvrq3sbO5uLq4uq6tv7O0uK+/wbisvbq0pqKzq6iqs6yusqOdwramqbe3q5+yu6mmpaivq5mip5ylppSYobKmmZ6lqamcoaCUpZ+kuaikp62mnqWhqJOfqaKhoZmbnaGSm52XoKKrnJuaopaTlZabjpOTo6ekj4iKjoZ5hHyFhn2cjImKhniAg4eIiJGFlZOSjJCVk42OlHuCl46Ld357bHVybWxzYnl1aGdpZ2VthGdnaGRmaGleZmJpZlplemJgUXNUW1tTTElHSU9TQCEral5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc4Yk0nMp6kpJKOpaacnp6epLWtqKq6t6esw8C3r6yhta6nrq+3wcC9scG3sK+ytrW4t7Wsqry0r7KxvcC3rry8saWftqymprWqq6+hoMSsqqextKustLqeqKmrsaWYnqqeqKWSmqauo5iepaqhm6Kdl6Cdp7amr6quoaGdnaGVoKafoqCZm5qckpqelaaeraKYl5+WlI6VmIyPmJqnoJCHioqIeIV3goKCnIeKgol7foSIhoSQhJaVj4+QkZCRjZJ7g5WOhnN/fWd5cGtqbGd1c2tiZ2RidH9hZGVmZWlpYmdvWV5YXW1kYE1oV1tgVklHSEtMUlg+OWBsaUdCVVNdW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE49QjwwKjxAO0E8LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQWRHJTWcpKCRjK6gmpigl6W0sqOyvrehscW7ubCxo7asq66pub68u63Asq+vrravs7myp6u5sa+us7a7trC5vqylnrWroKGxpauvn6XEobOlr7Kwt621nqyurK6imZ2nqqWflZynpqCZpKOpnJqgnJWcnq2wprmnraKhmpqemJ6jmqWdlp6Ym5SaoZKolq2pm5SdnJOMlZmOlJSYp6eNjYqJjnuBdIKCipiFh3yJiISEioyIkoWTnJKSj5CRlo6Qf4GNjYNvgX9meW5oa2pncXJrW2hjYXJ/YGRnam5rZmpmZGxcbG12cWFUYmhjZVpJRkxNT1hRUFVhZYFUQFZTWVVGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUlkQic0k6Kcj46xnZuUoZqpsrCfucC2oLTBu725saa2sKmupbe5t7isu6+tq6u3qrS5raWytbGvqbG3trGztrunqZ+2qZ2fqqOqrZ2qwpmvpa+xtrWsrJ6xra+qopudpKypnJWcp6SemqmjpZWaoJ2RnKOrqqm6n6akoJiamp2hj2uilZiccYOWnKSAdpGrqJ6WlqGRiZeZgJeKn494hZONg21pfneEcmyGioZ9hIqGb11kYGeEl4Zri5CUknV3i4R/g5CAZoiAaHZpZlhdaXRuTlBqY2ZxgmZeZGZua2ldXV6JkIWIaE9LRDhFVGdeSkhQUFVVS0hTYG90ZUVbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOXEtbZmI+RzFPYjwrL42kmoeVsZudk6Ccqq2ro73Fr6m3wri9vK2ntrGmq6S4tLKzsLmuqqestKWwtaKnuLa1qKestrOutK6zoqmftKueoqWcp6ibrr2VqKewtLitrqSoraqrpqGfnKGoqJyXoaamnJynqJ2SnqCYkJ+oqqO0r6Oio5yWmJiXo4ihj5KahqGIlJ6hf6V/p6yelJOdk4iDcniMjoOHoHWIjWmXiWZ+c3mgb4iHg36MfH+hoJ+Zf3uHnnSIjnabimyHgoNuaWVke21yYlSGbWNtaZhxWGlwboZXXWlba2paiHBteXKHaYeEWl5GTj5GXk1FUlZWUVBSV1RnXUxZS1JSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTlxMW2dfPUsxVWA3LyiNppeEnaydmZmdn6uqqKq/w6+yuby3wL+qpLexqqyms7Wur7O2q6mlsa2ltbObrLW2tKanqLOxrbKorp6qobOpoKSkmqKknbC3laWmp7e9pqynqaqrp6aioJmgqKSamaejpJmcpaqWk6OclJSkpqahtqSjoKOYlZOYk5yIrpCYlYmpi5ijnIaxgKStnpSan5V5gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsHlobFixrm9labySvG5oem1wj9h+U2titrJ+gHGUdZqhqpBXT1hhT1ZORlRbWFFQUotcV1tQQFxFUU5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV5nXD5MMVpcNDEhjqaTgaeqn5ednaWtsqmxwr2ytb+1uL/Cq6a0ra2pqK+0qq+2tKiopralqLmvnLKytqqlpKeyr66xpquep6SypKKhn5ecoaCxrpWfo6C0uqKqqKCsraSinZuaoqqgmJupoJ+YnqiokZynm5SeoqejobCjnp+jlpaSmJKZhbBraouNqn5nhZaHrWVxnp2VmqeWca6hpH53unxroY92sV9qtFulgGWckWBmgXpmf2l4aqllvnJnpox2sWp8sXh1kpRjbW2nblyEoEVpZ4eWRXWcYH1me6Omgllfi6tpgJJ4emqoOEqvW1dUbWNaTE9YX1xXVjtOiE9WVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWTMxG5KilYKtp6Weo6SqsbettL2+sLfFsri6w6epsKyvqamxr6SxurCkpa+zo6m5qZ6zsrCjpaGqrbCsr6aon6OisZyjnZiVmJ2er6iXnKKftLOhqpuhrKyfnpqXoKOqnZmepaGcmqGnpJCdo5uYoaCsn6amoJqfoZWVkZaRmoa1m7V5hamZtZl3h7Obt3+Tlperln5rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iHCOhoF/iJCXeIOCi5eMg6CPhbB2d59xa2psfItPpVhIY2OZfmNopV95cXVSkodeUKltY3F9hoBhnS9Som5bVGtnYExLXGNYXFpCPrB3V1hBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8yLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o4YVU1MByXn5SIs6amoa6pqLOsqru2wrC8wq24t8KrrK2vrqeus6qir7yroqe1raOrtqWlsrOoo6Gdp6qyqLCopp6goLCWoJqWlpeaoK+jm5qkqLWuoamPqaepm52WmKCmqZufnaOfnKCjpaOVm5+Ymp6jq5ulmpyaoqCWk5GTk52E1ZOZuXGwwn/GhnzWlJy7fJuWppCNnIykeo2GooGlgnqseY+dVq97iX6farlauXeGg32mgpN8mHqqeY6dkHuxbY6EdJC7hW6VUK+nxYpRoHpjYKpic3KGbJeHX1O1tMiFgIl8Y6QzQp11XVBqaGRQQFhmWWRhSkhNa0paU09ZZlpDQz9FPzA8PDU5Ozc0PDw4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuMDA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpXEpbUF9mVDdHOmFQNzIlnKKTmbGoqaWzqqW0p6S8t8GxusCytrW9tLansrGjsbOmoK+2qZuouq6jsLKhsrSxoaSenqepsam0qaWcnp6sl5mZl5eWmKKsnpuXqa2wqKOfjqyip5admJyhpqKYoqGjoZuioqebnqCelZmbpqGcppSbm5+gmJCSlZCdiLJuaLVxq4hwjqZytHRztnubmKWNj5yNon6Pn6R+sHWDkdLRdVuufIV/pG+bqqZrhoV9rX2XmY97sXOTnY94s2WWdIWebp5mlFLJi1rCXJ95Yl+tX3ZzhmKXiF5Zyp1vv4B1TUu1U1XGZFRRamNlWEFPal9saVBVRkk5PVdSW1ZZSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUU+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHJoOSdXaVxBTlRfZVA1Rz1hTTYyLqKdkaWvrKWpuqymtaWntru8sru/uLe1u7u0prW0orKyo6CssKWYp7qupLKxnbS4qqClnaGqpLKorKqlmp2bqZ+WlZiZkpOjqqGYk6ersKWilpKsn6WSlKGcpKeglZunp6Kao5+umqGenpCWnKKenKWUnZWZop6VmZaSm4Wse3eodqOPi4epb62Kg6eEmpmiipKZi6J+kZeHroV/grNccrNSrn2CgqR/cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52d4dnmIhqXa93lZ+PeGw1eciusl9CVG9dZ2BFUGxfcG1WVU0uZWJoU1lQO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6NzegnZSguLGYs8GsqLKnqrK6uLS5vrm4s7a+tqa4tKC1raCgqayglae2rKixsauttKSbqZ+gqKK1p6aqpJmelaWilJScmpKWo6eblJCnra+loZWYqZ+ij5GimqmmoZWapqmdnaSerZ2hnKCNlJ+bnqCYmJyWl6GglJiRpp2GqX19pXmhj5CDqnCtjIGmhpagooqXloijgZCHlKp7f4udeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClG2TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZU9KQ6FcWk10XWJmTVphX3J0X0pVNUqaklhIRT1IRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVF9iTDdGSV9DMT03opyamr+smLPCrqutqKa0sLixtr+5urOyuLyqu7WgsaWfpqenn5Sqsamwqratqq+hmKGgpqSkuqKjq6GXm5GjoJWVn5uVmKCgkI6MqbCvpp2Xm6emn42SpJiorKiVmKmonp+gpK2joZ6hjpWhmJ+gkpyXnJWdoZWWj6ubj65ucrR0qYx3iqZztHl0tIGTpaOTnIyJpIeOdbhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6YhnBcr1Y8nHdmVG9uLlunT2JSa2VibFpiXGBwfGNTWVE+Pm1vMkJCQD9NOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eOTFBOKWam527opyxv66tq6unt6m4r7XBtb2ysLu4q8G2qquhnaekop2Sq6untqOzqK6qoZecqKClq7mdo62clpmQpaOWjp6hnJien5GUlau2r6eZlJusqZeMlKaapa2jkZersqSgnqirsJmhopCZopegm5abl6GTnKmdlJCqmYfTk5q7dLHEgMOGfdWWm7h5iZGYjZeJjKeHeaK2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+ifox0h6t9vm5zvHSyg3V4gIptmohxbY2kdL1dd31bYXm8alpWW2l6XmlhZGZibXlvWVtZQ0FAcj9DRyo1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy02QDmnmZ+ivKKXscKwramqrLGoua+3xbG7s6+8sK7Bsq2mo5+koZ2ckaqlqrKktaetpKCWmquZp6y5naOumZWhkKagk42co56YnpqQlpOvubCrlZejp6eUkJalnaStn5GgqKufnJ+ppLKeoqSOp6KUoZqcl5WkmI+woJKVqZ+FkJm2gJGRjbiVeIKTm7V3bmxuc295j4SOiXOewbu8mXqBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycHe2jF5/eX2IZ4N5bXlii6xwdIV/WFunaURkWVRmX2NdY1FmZnFtdUJNUE1EO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlNZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlrPCtKuqqK2rqruvscavtbSvuKe1ua6rpKKnn6CdmZSspK6qpraoqJ+clqCjnaykvqehqpeVnJGim5KPoaihk56XkpiUsrW2rJidpKSii5KSppylq52WqaWmnJuiqaemo6ihkqyel6Kel5eYnZ6PsKmTnKeij2t+aZyoeYlzfpuOdXplh3u+v8C6bpKCcZWFX3JqWl2aiWFkh46Va2B/lWNtnHZilGuAmpWUZV5fY3GbiWhyjHyGlGZqfnF0eX59Ylt4dIFoUFxug3x7impYbHmBcklKb4VwTnNNRFZcZmFMW1dmY15PWm12anJST0RFTTxISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPltPJz8yPqifqKHBpJq0urajrKaup6i1sqzIrLC0rbakvrGzp6Gkqp2jnJqarKeupKW1qqSbmJWim6atqb6oqKWVlJuWoJqTmKWpp5GekI+YnLCyvqybp52noomTkaqbqKScnKyfo5qbo6esop+qopqum5WmoJaVnZ+dl7GlmaKomZyRnpyjpZqno5qdmpqakJaCaG59cXaRl5SRg4m0qY2FmJWOioyYloeTlYqDk5OQiI2RlJmTmZeaoKGam5Sfm42CeqSFbGl7kH2AdYmLgnKCeHl2dYqAe4lqc4F0g3Vkd312a3B6bF9iW29nTFhZZWpfV1lwem9tZlNPRlI5T1pOUk8oKztKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsbG3oKmms6elsLWqyautsqa1psCotKGepaacpZaWoKunrKOkt6ygmZeWoJetqqbBn6uklpKcl56YlJSinp6jqJKQmainssOvmqudqp6Pl5apnqucnqGtmKGbnaKlr6WhpKieq5iXpp2ZmqGenpywoZ2ip5WYlJmUoaOWpJ+YoY6WlIuKjY+XrY97lZuCkYCJqaiFgJiWioSOn4h7g5CGhZqRh4aJlY6bl46QmJ6jlpmSkJyNfo1lobOuhImEd3uPin53eXpvZ3mQgYCJa3WBeYhyaXN/eXWDh4FqdGN4Zl9oZGNkZmpYa3txamtcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAs6C5r76sq62xsqCqprKtoqyzsMawq62ks6+8pLScoKeioZ2Zl6imqaakprO1npWVnZmZsKauvqCropGRnpqZlJKWoZyXqZ2FnamsorTHs5+ppKqWlpiap56pnKClq5Sfn52gqq6opKOroaybn5+gmKWenJ+csKSZn6iTmJmdkqWamamfm5dmg5J8ZX6Pmo9jeIxsaGp6kKOra2SZl35nhYplZWloeo2hjmtojJeRondraouYop+Yc2xueoSMhnlYZV2Fgl5si4qCdltoc3d3kYCHgm54gnh/c215hHN3iIiOg3tphVhdanNkXXOIaWt8cW1jXVFOV0lkWEBKND1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS42Wk82KUVZL0RPMVlCOz8uPaWfury5r6yysKulqK2usKeurbC9saqopa2wsJ+tmKCknqKamqesnKyjpqips66elqOQo7CmtrmlrqOPj5qhmZOSm6CYmaaWe6Wsoqizw7eloqevn56VnqOeo52kqqiSn6GeoKqvqamjqp6nm6aep6CslqGcpbGkmJyrlqGfm5OlmJ+rmZ5+voOIcrRyhZ6FrWh3ucS4cZKho3ummJhzqoJ8y8DAu3GKo4eCnnyWmIiewL2Clp2djZzBwHuBepGMmsK/fWulsm+MgW/Ken+bd5GDjoB2eYF/eXF7gIZweIWMk3lsdZFiZV54ZF9lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWorjDtLCvv6mplKOvqbCvraayta+rpqelsaugq5iboqCcm6qnop2roqWppaW0pJ6jk6aurLi0p6+ikpGZnaWSkaChl5ugnYemq6Srrb+/saGprqmXkp+eopmjpKqjk6Chnp2srqerpqOhpZ+kpJytqZGkm6mtqpydq52topeYppeipJidf86UeXqlgXqWlptfrY9djqiAoKF8p5WadKuDgK9eZIypeqiHhZ90l5KIs2OCq4agjY2zaoSuc3yWh7hhgq1Zo81ukHV723t/mXF+iJJ1f2V7iHZ2bH2Hbn2FkJF9a4CNX3Bqb2ZgX3hkXHFoamNmYFJUU1deSk9ENUFIRUQ4PjY7QD9BOz04QD4+P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrcG/v7S0sLeYnpGjqqmttKumsq2trKSsprCqoaebmqaYnKKvn6GfqKejpqGfsKybnpamrq2wq6isoJSSm5+lk5CfpJedp6OerqSrsKi/xrOoqbGulpKenKKXoaqqn5Whnp2crq6mqaibpqajoKqSrLOWpaKqqp6kp6eisaKTm6eboZuVlJGXoHCFjJh1hKiHcbB8nXKsfaCfgaWPnnergn2tf5xyrX6rh4afdpiSe3yXfqqIoYuRi5x9q3qIko6ggHqtVpzEeo9vksF9gZVtdXCMbWZ3ZYZvYXducm6IipGPg2yPjmRtc3VvYGZtZF9vaGpuZmNXU1xgWlJSQzhJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/Txcays6Cdo46joqKtrravqbGnqauorqurpqKjnZqjlp+mq5+ipqCpqKKfnrCsmJuXqKivrKinqZ6XlZqjopKUoayanaajr6yjrLWpuc2yraaurJaVnJ2imZ+urJ2WoZmenqqxp6mpmqqoo6Gqmq+xoqisr6aZpquqq7Kkk5ikppuVkoWkaqR1iXqpdXqycYKliZiMcIefmoekX2BSq4R/roKbda6Cp4aGn3qZl4V7ZoCjiaSYhoGjfal+gZSGrl58qFWdopKBeqOfgHzDr8WMc6+0s7lxYqmvwnRojIyXjoFsmJFubHh4d25rZmRkcXBme2ljXFZfaVhYVExMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXVwKGZq6ihr6KfsLWwr6mto6inqqurqaSmn5uln52mp6aknayao6yhpJ+vop2bk6qktrCuoKmbnJeVpqOQmqKnn6CmnLGmo6ixrLbIsrWprKqVkZydopmgpbSdmqGUnJ+nq6mirZmqqKGhqaGzraKqs7KinKqosLC3pZSXpKiZnZJ8qmyehId1q3l8sG6CpIuIn5aVnpWB0re0uMmAgbJeX5Spg6SHh6B6mJWZeKrJc5mjlKeokJKajH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI6PnJJ7b5WQfW55dHx6bVtlanJxZoFqXmFYY21cXllJTExLRURCQj1BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxdXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTAxrmtqbKurKWinbK5rKqhppuopqusqaagpqSYq6OfrqydpqGsmp+ppZ2ntZ+il5Ooq7ayrJumnKCWkKWtkpqcpqKgqqatoaOnqbC0wrGyqq2olImYnaWboqSvppehlZmcpaWpma6cq6aknqujtqygsbmwnpyvqLS0tKaWmKmkm6GPgp1OeJqBf596hKN8gqSEhqaenJ6UhLh7fHm5gn/MxsO2d5uhkIuffpqWl4l2n5eKpJikp36vhJuDnoSsfZmUYaVso3CPhZCBfZeEcqxgpHJxgJpgvH1SVXWOkaOWe3yRjodyeXKDfXBcbG53cmqAblpjX2huYmRdTExRU0FIR0ZJOTlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Gss7Smn6GVpq+urqmmnaWlmqOnobKuoqmnsqCZqaSUorWio5WXoqq1uaSco52jk5Chspmem6akoKKvrZykqKK1scOxraqtqpGHkZynnaOknaWXnpiZmaWjp5itoayipJeupbusobe3rp6etbO5srSomZ+xoqWfh4/RtcO3eYeOhZGTj4CmeJSid4ugkoWlgotxq4aFtG5yaZmjnJWJn3yXmYaHkHOugqWbooymipOciJSQmm1wslylc5N6nGyZf3uZfm6pYaJxcX+fYnOyuGh3j5OkmH2Ki5CIdnt4jYFsaHdpeHNufnRcZGRtbWVoYEpaV1g8SEY/VDNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krb+/vLu1npeopK22oaKZlaOpp66pq5mloZ6moaC1p6Kpp7CjlKujjqSto52QmpqqtLSknaacqZKUl66goJ6mo5ynnLWZoaqjtavCr6mrqaKMhI+coqCmo5aampyYm5imo6WXqaasoKObrKa9rJS+sK2fo7C0u6y1qJ2qs6WpmXuokX18sHeKgaSliJxtsm+gh617oY+DqJaZgKyJha6FoJSooaKXhZ+AmZWAe5J+q4CdmZaKqnedoI+Ik5J/ea9do4F8pqdknoB8l3Rrrl2la3GFmV1gW4ygbZSQpZiCk4uTiXh5gZZ+amx9Yn10bX95YGdlcG5nZ2hCWV9bPUpTMlQ4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaV1NQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVlFIRklKIygovJKahKnGw7bBtJ+araCuuKWjjpuko6Cvrqmfo56drZieuaCiq6CvqpquoZGqqaWWiZqPrrCspqCom62YmY+toqGdpaGZpJytl5+opbaov66kqaOfi4COm5ufpp6SlJmalJqapKOjmKeqqqGjnqmovqWXw6yro6Kss7usr6iitbGqrJl2r36QipyFh326rYmYZLCMZZWtfaGPg6eWm4GtioSwhaaZo6GikYWgW2xqgbNgf617e4KAsWxnbZmXi4ixW320W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqeZiZWPk5R5d4ybfGNzfGGDeHN/fGFpZnBtZmVlT1VjXEFUXj1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBfYGFiX19cW1hVUE5KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9KftLG3vbu0wbOjnK2mpbapoIuZoJ+ds7GonqKfnbSYoLOoqquesK2erJuVrqiijoibjq+sqKejqJmuk5qPqZqhnqWemaOipZieoqmyqLyvpaienY58i5uWoaCZkJKam5GZl6ien5enrKWkpKKkqbueoManpamirLW3rq+oob2vrq6XgamSo66Om4CGpJeYkIGAuMO6g46dk4SnmJ2CrIqCr4mnnJqlq5F+1b3CqmKjv718fqOCg9e6t7WFk5KCnr2+hGqjgW+rhG6df3qysceDa6uwvax4d6K+u3SAlY2lmo2ZjpSad3+PmXhhfHljjGd4gXtga2VramFQYltTaVxAVGBCTCk8OjUvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0sb+6sr2zop2upqWzpp2MmKW/qbawp6G/pqaxm56xnLmon62upaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp6nm5qgqKKYnaCsrKm4raejmpeTe4iZkqabk4+RmJiPmJSomZ6WqKeeqaahoqu7nqnFo6Cvo6u0tauxq6K9qrCwnHR2qqS3hWWJn3BnrI+Kj21vd6SQmqCBdbCalnCQjXKWqKObmK6kcmxtbGWKeG5tgplxgHppcGlmiZaVl3FoaYWGZ3CGZF2KY2lvWV1nfnimYGJyj5JvZmSAjZOOoZaVlo6Um3qFjZN0ZIZ3Z4xqeH54ZGxjZmxiS2VXSmtZOlBkRFAnSjorIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6ubKzqqmirp6ks6qYkr2xw8e9tKmev6uso6Cmq5+6o6StrK2ljpatqpCMhZWXrZ+lqqKfpKOgkYulkqeZqZmWo6qglpylpqevuaqrmpuTknuElo6ml46RkZiTjZeVppOdlqehmbCmnaKsuaCwwqiks6assbKrr62puqWwuZeLoamltZyJlqKYhqmakJSdk6qzmZujrKG0l6OhnqGinKGkoZWsp4ySk4yHkpyclJCZk5iQjpWEf6Sal5WOi5OSio+GhH5ni4B0g3Z0h4xxp218lZKUk4GBj4+PjpySn5SVlJ6AhZKLcGeOdm6Jd3V8eWlrZGRvY1VgWEBpWkdiYE5YK0U9KyYhNjQwLx8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbeurqKwpK2foLaxkI6qxLvEubepoaWdm6WdsKijtqedqbWmp5GYrKOLiImPnKeWrKOhmqienpOVo5eomqmZlKaho4+ap5mhtLmnqpiakI18gZSMoZSKlZGVkI+Sl6SOnZinnpu1o52mrLeor8Kuo7ensK+xrqqrtbuisb6ZkqakprWikp2mno2pn42Sn6OssJuhpLKqsZmloZ2kq56enZyXrJ6SmqKblJCWqpmNmJiWkJaekYegnZWUhZKMkI2Vi4F+Zo2HdYd2eYiEdJxqh5GVlZKKfYyWkpKXkaCRmpSegoaWhXhxlHJ4iX5xe35pbmRfcGlgW19ZbWJQYGRPWTlHRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OXlaSno7CzrK6jqaetoKi1qpCPnKOyuq2qq6GimXqcorCkpbGplpu4pqOUmKmcjoaKiZuikK6epJaooKGSl5mbrouqlo+omaiMmKiOnri2o6WYm42JeYGUjJuTipWRlJCNkZahi5ycp52euKN/g6+1orCvdKS+o7KgeHuhrLS9lneupaCKgKl+ZFxidp+OpJ2Dl35ulLSco6ivrKRln6CUdHqal3GAmamYbICjqIplnKWbkJeYlouSm5CEnZqQlIOSh46OkomFd2uQiHaHcXyGgYBhaYmLlZOMW3aVkWdoj4xxeaKWlmR3l4aAdpdogomCbnl+anBlX3Zva2tnXGVjYWFvUlo9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHR0lLTFRVVVldYGhnZ1hRSTxERzw5VlJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqaWpraSnraSSlqq0rrGlmammqpdzi52vn6irp5OWuKCgj5yknpB+iIiano2rmqSVp6KejpeRnoV0ro+IpZqokZajiJu5s6egmZmLiXV2k42Wk4qTkZCUjI+Tn42ZnqWYm7KWgIybtZ20jJKPvaehfqeie6SwuYKOj6efhIuFj7Gpr4yJlqKZeYGLrIacnaKoq6mIlYeZd6WbeoecgZengoF7nbJ6ioafl5mUmJaBkJaWhJmaY3mHkISNj5KLg25xkIh6gXGAgYZ/hnSHhZaSeJZok3SgmnR7mYKdmoSYfZGIgYKYaYyMhGp4enBwZ2R3bWlsalxkaWllcltcSFRMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaGZZUUg5REs8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZStxbyvoJWlp7Sdj4Ocq5ymoqCNkL6emY2fmqGQfIWOmZiIrJ2jlqGhko2UiYaAkaiOh6Kco5OWnYaeubGnnZqTj4VwdZCJlJCKlI+Om4uOkZ2QlZ6jlJ2rh5+0ibSarovKiKuvibeFjbCDsrCFqY6nmI2dfKiPcnt3m46mlmiVpHm0i5+fp6mTmcKCf6uImKFxnoCapX2XhZWygKF9oJOfj5iXgI6Tm4mYkot8hZOGjZSTiYNtc5KGgHtyhoGEfYV1hoKYgY/FZoCph4+iap2BnpeAmYCKi4OImG+NkoRnd3R7dmdodXBnaGteYm5sZmxYZkZcUUwyRTQ2TWFjNyY0PERHRDo2MzY1ODs4Pj09PkJMP05JSktDUFpdXFdiXmpsXFFFPUtNQEpkWF1jZ2hnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5samrppqUnqKkqqKVpKm1oq9/oKacpZ6diZS9mZONoJGdj3mDlpaRiKuZnJuaooWPjHebnI6gkYiepJuVmJeGorispZmbjY1/Ym2Pi5OQjY+MjJeLj5GejZKeoJigp36hp4etnaCWrpCgnp2RhoKgjayxiKSOq5qMmn6idYCYk2uBq3RNq3iHjZ2Sm6mpgqqrfoShe3qnaZ5/kmxnl4aYtomefm5gY1iDl3+Me2Rni3OZfXmWa118l25fU3GFXGBseYNgWWWCfoSBmHGnqmuDo25ypXCfgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbXRxampuXmpvbGtoV2dOXVhFOUA0R0ReazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpbXV9XXl9idmBNRTpNT01UYlxbZmdpaWJiZGFkZGJhYmBjZGNhYmprZGJkZGdkYmdlYWNomJadoLmgqqOmrJGhtryrrqKZlp+gpaurn5yttKGnkaCfn6abmY2YtJmQi56MlYt1gZSRjYqmlpaYn55+k4WGrKOHnJGKmKmYmZqRh6WwpqKVmYiJgGluiIeLjo6Ji4yRi4+RoIuSnZ+boaV/k4GPo6GUoHeclpCng6KogIarr4aleot9hJp9onBykoeWe56MeW2Hm4uZkZypnI+HnXyConN2pmaefnekXph7fZNzom6Yt7S6c5OHgYC2qGSBxrh7cJW2jHGAm6RjdKyrYH1qnbN+bn2Hg4+Ci5dxgKNsc6RznoJ9o16cmbOWb3uXnrN0cluesoJpYm9zdXFoblhra3JyZFtnXWFLRD1ENVFBWnEyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWVhgYHtkSUM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi1ra2gmqGboqOkq5uasayqkpegmKCkmZqUnqubi4iSeIuFcICWjYqPoZCTlJ2XfZGKjqigh5iPipKik5uajIqop6Sej5aHhH5re4d+fY+Ng4uPj4mOk56BlZufnKCfi4l3nJiijaByoouIqYicp5GXqayArox9eqCZeaOTeIBzl4iMnH2Wn4abjpmcp4ejZKF9iZaQm4xsnmiajW6amXuAiqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z2iYqAnWiadYeTkpiOf55tmZBqpplcqH53u2p9qVqOhF2zZ1xucXh3a2lbcGl3eGFeZFZhQVBFTzdWQlJuNEpaWV5OWkRAMTUxOzs3SD86Q0dVP1hSWF0+RGJdVmBRYWN8aUVCOU5bXllkZlhmZ21tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCrnaWbmqefnayZnbCnqp2Wopmhn5mWlqCjmYaJjWmIgHF7l4iMlpaEkpSYj3qKhJajnImVj4aLnZGcm4iPqKKfmoyRioCAaYGGeX+WjHuIjY6HjpWZfpKhnqCik5hyaJ+KoI+McJKMgqmImaCkqaKpfbCtpKK4l3ajs6Kjf4iUeJ16q5p+oo+enJiJmHKhfYWNsLV9a5qRoXh+mLSjo6uohJh7mnycmn5zqlpdb3uXi3ieYkx/e3uFZHqYQk2fWaJqcnyOboGKhJl2m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B9fW5mX2todXtiY19QXVZcVFZAWUVRZ0VSVlxhWF9JRD1COEBBOklFOExFWEFWUVpWREZhXFpgS2BtfXFFQzxVXmJaZWpWaGhtb2JmZl5hYFxdXmBoYl9lZHZsXmVnZmxkZWxoaGtplJ2Bsa6ZhFNfoae0urOzqJqii5qpm5ynkqCro6Cnjp6dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGTlohygImSoJtykpCBiJmUn5qEjqibmZWLiop8hGyEhXGBoYx4hY2Ih5GXk3uRop+eo4iuhn21hI+enXumlnqpgpaekYuinn6naHdtfplzoHNxfJ2FmG+Tgq59o4Onn5uBpHBeqWh1o2NvpWGc0498epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKnvH93g21/v6aqtF6cb35yl2+Bc6JyXqRndKZgaKZsmtOYeoKbbnZ5l2ubeXaXcmyppWdfZHlwf4RrZ2ZjbXV3Zl9hUVplUFFhSFdJVF9XU1tkaltlUUZDS0xKS0JKRThQQFBNWFNYT1JRYGVlaVJkeHl3SUZFY11lWmhqU2loam9jamZgY19cXV1faWJhaGV8ZF5kZ2RrZGpsZmhsaJibf7CsVFxLfqmvsrWwsqOcmISXpqCgo4ykp5+XqImZl5iTmZORoJeOiIV7cH2EaH2Pg5OagXeRjo+JcH+Hj5OSbJiUfImRkqOVg46qmpOSi4WJeYR3iIBugZ6Gd4CShYeYoJV5kqKjmaCJs6Gitot6rKekrqVwqYCbkYaBnZN9pICimYaYcZ6Eoq2uiZeLgIykjZWDr6KVdrW2tsmidJSLgp5hnpepbXmVhqCbdaGHd6B9kJaKgW9MZqOScJqIc6V7eXRig4JsfqBscmRgnHJ/dJdre2q0tbTGpnOYfnqcapqaq3SBmmxzd5dpmXl0l3FQRH2zXmp1aniHZmtnYnR0cG1VXFJYZ09SaElVTFhSVVxna25VZ1dNSkFKTUpISk5BUUpQZGNpbWV0cnN+eHtudYl7e1RRT21eaFtraVJqaGlsZ21mY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinIivp4VmP5Shs6yvr7Wioo9/lqeioaOLpKacm6WBmpeWjZeQj5uTjoiDeWp5hmWDjH6Wn3l1j4iMgmmEhZKDjIWdjXqMipWlkoKXqZeMkYuAiXqAfYt5cI+ghnmBlIaIlZ6UfpOlp5yWloRnbnicbKJkfHGleJyYcGingpiNfKR6oJaDlnKfdoCJlJWPuW6QiqJifZmiloluc2qra3WgbW+mYJtpi5BploealXWigH2aX4uFjHVviGJooWWef2mbdXBkZ4iCbnKiWl9bY6FuXYmMcHt/dHJkpW54omRmp2iXcouYbqFvUoiPbqBeZKdUi11UmG1tcmpxgW1waGt4c2tvUVZVVWVZU21JWE9cSFhoaHNqWWtWUFJFVlxMWFJhVWhqXnd1enxwfHxygnt/c3aNgIN2XlFzYWdicWdQa2hoa2xvaGRnX11dXWBqYmlpdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqrCxpp+Lf5aqnJ2ki6GhmaGhgJWYk42aj4uXkI6Le4ZxgIhoi4p8l5pzdIl9kHxlg4eViomWmYJ8iIWWppCBoquQhZCKgYp9gICOc2mPpYR9hZOMh5efjYaRqaadiaZ4lpx+pYmWjLKZnpGDr5efpXmXiXqpdKaPhJpupaKMkoSMg7xufaWvgoeGh5SXnaF9pntyqJSglmeefm+sY5aKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm9voJ6RlGF/q4uqd4F/jqefd599haSVnaBpmod1rGaerYy2c3a+jKOTWYOmjatgdXFzb3t1cGJqfm5obFNVWVVgYFxqTFxRXEldbG12YFtxWFtfWmdzZW5vcWNxdGB3en55cnmDcoN+gXt7jIGCgHZieWRkbnNkUmxnZ29scmlmaWFfXlxhamJsbHpvXFxiaWFtaXdtZ2xuYpWmqpyBgJ6klqqqnqinrqOYiIGWqpmdo4mapJyonYSLmo+FnJGFko2MjHSFeoiDb42EfZeTc3WGcpGDbn+LkoaGlI99e4KFl6WNf6WljYCNiYSUdYOHkm9si6iAgouTjYibnoiLkqqioJCAdJSXiH6BeZSvpH+BnHGPhnmSjIWAe3KnjHF9fXqXlpuEjXh7fn6IlJWTi3eRmaChhHt+iWuMhVt5eXN5cGlufpKKcn90gY+Uk3GFg4JljX9fgYCMd3Z0lHVve29viW6Ehl53aXiOZoKDho+qnH90fZdqiYhvf3V8hHVtbGaMc3d7l3eEWmpXeY9obXdycW93eG9dbIZtaWdWWV5XXGRrZFVhVF5RX293eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV5gXV/gH+BeYuFgn17bX9sZHluXlduZ2h1a3hqaWlkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbmpp4uhopumpJmknauin4ODlqqRnaCImaaaqJiDgZuLfpaUh46KiYxygnyPfX6PhHqXjnRyhHCVhnt9kouGhpCFeH6AhpijjHunoYuFj4+ElYKGjph3cYSqhY2RnI+Hnp2Gipqon6Cqg4mOlZt/foqXraiQk6eQeHGek4N7k3B/qYZwfZVxam98gZ+Lf5KOi2huXYSMjJycoI9zloyIcXRrgnZ0gFlyboaRgn5+i2ldaWN6hYOIgF9peHucfIONg3aBh4NpeYyIa2JxcoN3X3KNgoqQqJaHZ42Pg253i4Jvg4t3bmRmY3mCepVaW2lmbXZbenh3dG1zcoJmXG2Ka2tiWVhdWVhrcVteYFleXWVyfXpzb3Rjamppe3xyend0ZG10aGx7fnV6fHt5eX+Af3CGioR7fXN+enJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyqsaGQo6Gan56YnpmooqF9gparjJ6Uh5qhkKSUf3uYhHySmYiIhoaKcn2Ai3aFi4GElopyb4BymYeEfpKDhIaKgXqAhIuan4+CpqCHeI2XiJWLi5yXhIN6rIGQl5mTiZ2choehqp+hoqOLiJObnaOZlqqiqKehk5yJmJB8eY+Phah+fpKRkpOcsaWalJ2QjbGSmISmjIyWnKCKkZyDiZKKa3yOdndlgoaQin2JnYSHi4+HiICFhJB3fHt1m6OJiIufi4aVf36NgoF2cXSGhX94iYiLkaeRhIeOiIOMkIt7hYmHjX91aoGDe3mZaXFoYHOKcH16d3ZvdnOBXF5vh2duX15ZWlxSZ3FVY1tbYWxodHt8cm5wY2ppaH97bXh+cGhvcGxmgHtygYB3f31/hHttg4yGfHp4fH56g3hOZHZqc25xe2VrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2InrqflqKhmJWZmJSYpKCden+YqY2ejIWfnIqdlnx4lIJ7jpmJhoOEh214gYBygId+iJOEbWx+epeHhIOQfoCGhIZ9h4ONm52RhqmegnGKj4WSkYuckX2NeqmDjZGXlY6cloWFm6afopqdhoOSmpmZkJmmoKaenpCXgpOLeH2Ij4WmfHyPkJGFmKqgnJOcj42qjZGAno2JlJugg4+Xf4eOg3B4hnF0YX6Ej4Z1jJiAg4+ChoR+hYSVbnl2dZOjjI6Gm4WFjnWAjH59cnN8iYR7eY2PhZOokIeEj4KDiYmIdYSGhol6bWp9f3ptaGtsZl55fmd8e3Z0dXV6d1xgcH1tdWBjWlteUWZtU2VaXWFraXV6fnBsbGNqameAf2tyf2tqc254boN5boaAdoKAfYV2coKNh357enx/e4KLYGl7a3VoaYNlamNgaVtjdWhvYnVta1RicXllb3l6cmVqbW2Lip+4mqGkn5KRlpeLmp+enXp3nKWQm4mGpJSKmJl4eY2FfImRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hoSHfI+Aj5ubkIemnH9wi4qMkoagoYqFjHynkIePkpaTlpJ2jKOgoZ2Wmn+BkJqZk42aoqKkm5iRnH+PhnqBhY+IoYB+jI2PfJekoKCSmZCQpoyPgZySipSYnH6Tk36HjoF2dIJwdmB9gI6HcoqWfIiMcYx+goWFj2l4cnmNmZOQgJh/iYxzgoh9fXF6fIyFe3uSjoSXppSMhpF8hIWGhHSAgYWFeGRxen54eXBramZefXNofHV1c3xzf2peYHR2cHdkY1hdXlJqaFRkWF5haGp2eIFxZmtjbGdlf4BqbX1nbXBqfXeFemuLgXKBgX2BdHaCjIZ/fHqAgX1/j2pyg250aWKIaWxiX3FVdG9tbmB4aGxXanR2Y3R6enFia295iY2fs5KlpZyOkJiPhpygmpt7daOfjZd/jKGKiJqVeHuGh36DiX6IgoF/cH56dHWChX6JkHdnY32Gl4uCio14fYCNg3mWgJWXlY2Vn5p9b4uBkJOGpZuHjImDppWEkoqVl5KRdpCdoaGYlJh6f46Yl4+Xmp2knpmTlJx7kYeEeIaXjp5+goqOjHOXop6gkpiOj6KMi4OYmYSTlpp/mI18iY2Bd3J+bntkgHyLhnCGk4CQgmuHg4GAiYVmdm99iJOZjn6UeYyJfYCIfXxygHmLhnqFkoqMmaOXg4SMd4eDgoF1eX+Gg3Ned3d8c313ZmtjYH5panZzdHV9cXxjY2FzbnVybWFZX11aa2RSYldfYGlsdXmGcGJqY2xmaHyDa2h0aGxvaH98gXhtj4ZxgIKCf3R8g4yBgH56goN+fJBtdYl0dG1limxqYmN1VoNpcG5geGdsYWp2cGV4e3lwX3FshYWQna6YpqiejY2Xh4WfkpaXfHaom4mYeZaci4yYj3h7gIt9fIN7gIKBeHN4eXN9gIN/iIqAZF59i5WIfoWIdH1+in9+mISWk5aMo6CXfnGHe5ORiqaPjI6KkqCRg5GPk5eQioCOl6CakpCSdICNkpSJnZ2ep5mYjpWYdY+Qi22GmZCae4eIkIlvl52aopOVio2ejIaBk52Ak5OWh5qJfIqKgXpyemt1bHx/i35uhZKDlHhvgoR+fouAZXNqfYGXmIWAjnSRiYR6iH52eIF+h4F9hI6GjZWlkXmFgnSIhnx/cnN/hYFsX3l0eHB7bmFuYmR7YW5vdnN3d3NzYXZgb2x1bm9dW15dXWpdT11XYmFobXN6iWtfaWVqY2h3iG1mbGhpbGeAfHp3b4+Hc4CDhH10gYaJeoN9eoGEfXyOcnmLeXhubIdraF9pcmOHaHFvZXZnbWxhemhqfHt3cGF3bYuBmZqqoKSonYqKkYaKnYqUl3x2rJeMlnyek5GWlIh2fXuKfHuAdnd/gG90c3pvhX2BgIl+fGFcfo+RhoCEhHN6gIZ6j5GHkZGbkqSak4F8gXyNipKjiI2KjZeajYWRmJOVjoiIi5Kdk5CMjW6EkI+RiZ6ZoqGXl4mXknCLm4Vnh5qPlHuJhZCKcJaalKGSkoiLmYyCf5GffZKPk4yaj3uKhYd0c3ZrcW52fIt0boaRjpJxdIB8gYKIfGVxbXp+m5R+hYp1kYuBdIh5boB+gYh9hY2Kho6Wqo57iH1+ioV3fW9uf4OBYmd3c3RuemFdb2BqdF5wanp4eGxycGV5XW1sc21zWFpdX2FqWk9XV2RjZnFxf4hlXWloZ2JncY1uZGlnZWlngHp3dW+OhHOBgYN8dYKIhXiFfHeDhXqAind/i3t7cnmDamtfcGhzf2txbm1xZ29rZXtibn95d3BrdneJf6OYoqihppuIjIqBj5yGkpt0gKmUkY2GoIyVk5B/c3t2hXd4f3Jze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYB/f6CGj4qRnJegk5Z3iX6AjIicnYmPhpKXloWIlJiPlouLjI2MnYqOkIRuiYuPkYqclqGcmJaGmIlshqWFZ4eei5J/jISMgXeTmJGdkZCIiZSNfn6QmXyRjZCOmpJ9i4CDb3ZwbG1vcHuGaXODjpiKcHeAdYKJg3lnc292gpuPfYqFe5WSeneJdHCKfIeNe4uHhYqPnKSJfIR2gYp/d3dtan+Af1xxcnFvb3dZXW9gb2peb2l8enBtbWptd2Bwb2txbVlYYGFhbVdRU1llZmJ1cISCYl1rbWRjZmuSbWBmZl9na4F0cXJwi4B0f4KAeXaAi4B5hn93h4Z2g4V7h4yAe3aKf2pxYnxihXxvcGx0amhubHZ3X3F+eHt0dXN/gn6llZqtn6eWhYyDfpaUgo6edIqfk5KFipqMlY2LenJ3dIJwcoVzcXWIbG5sdW2Id4N9f21uVVGBq5SHgnmAdnKCeYKggpGBkpGXm5GZd5B6goySpJqTjoiUmJKDhpaYi5OLiI6PiJ6EkIp8c4uFiI+InJmfm5aVgJSAaYeeiWiHoYiThZGEinGDkZePmo6PjIuPjXd7k5F7jouNkpeNfIh8gWt3am5rbG16f2J5fo6WgXZ6gXeDjX16aHVtdYiWjH+Jh3uUkXJ7hXB3jXuLjXuJfoSOkZ+fhn19eIGKfHZvaGt/gHded29ta3ByVV1uYXFhX21ueXBncGZmc3VocWxhd2VdVmVgYHJTUE5bZWRceHCIfF5caHFiYmVmkWlfZ2RbZ29+b2txc4p9dn2FgHV2f4x5e4aAeIiDc4aFfoyMhHx5lXhmcWqDX4d+b29remBpbXR/dF9zfHiGd3NzhXx5oZCasZyljoKKf4KZiH+KnH6KmJKOhIiXjo6OhHZ0dnOAcG+Fc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfG90g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYmcf46BeHqMf4iMipybnJuWlHqOd2mKk4ltiaWGk4mYg4ZjjJGYjZSJlouNiYtwepWJfI6Ji5ORinqFfH9tfGVzb2tsenlcgHmPjoB7fX5/ho57eml1a3SMkIqDhoZ9lo1sf4Bwgo2Ajol+hHuDkZabm4x9d3iCj3hya2VufYFraXRvZ2hzbFNeb2RwWl9scndma2tiZ3hzb3FkX3dgYVZrX151T01LYGVjXHlxinRcW2V2YGFlZY5jYGZiWGlyc21rcXaLfHR5hoJ2d36Lc3+GfnqJf3KJh4GRioh9fpl2ZXNufGWHf25wa4Baa254eXJgdnp7jXZydop2eZ+Mm6+boJCChXiIlH57iJyGhJ6QjoWMl4STjoeBdHdweXBuhG9tbn5yY2R4cHxuenxqaGxjpJrB3K7vonNrdYN1hKGEkW6Vj5SflJqBkXCFi6OXiY6VipCdlYOAlI+EiI+AkoqKl36He3V/iXiGhY6bmpeZj5B2i3dwiIqMfoylhZKKnYWGXouUl4mOiI6LioSJbHyXgn2IhoqRj4Z2hX5+a31jeHRqb3hzWIh6kYeFen9/gIWMfnpmdGqBi4+LhISAjJiGbIJ3b4mSg5GFf4J7gZGXlJuRdXR4hox1cnBlc3eAYHNsb2FodWZSYHBna1VfbnR5YXJjYGl9cXJuW2NyYWNXblpcd0xMTGNlYV12c4ptW1xkeF5gZGaEX2NjXllpcmtua3J3i31zd4SBeHh8iXGDhHx9iHt0i4mIlYaMf3+Yc2h1cXlsi3tudHCAV3B5dnlxZHZ4hoxodoCJcYCdiJmnnKOShHxwjJR3eImcg4SfjY58lY2AmYeEe3J3cHNqb4FraWx8dF5geHZ7cHR6Z2BlfOvatcnD3IlzbHOAdoqaiIxpl4+OnJSSgYhwhYigjoSKlYqMl5N8jZKIgoiPepGLho+CgHd4g4Ryh4KTm5aUmIaNdod/cYaDioiapISVjZ+EiWGDlY+FiIaJjIeAh2h9lH99goWJjo+CcYZ/f3J3Z3ZyaXR3bFqMfZKChX2Ag4CEioJ2YnVtioKRjIN/gJOSfm6DbXqIkYiThX2CfoGTlJGYim9yeoyFdGtvaXB2fl5zaG5caXVfUmRxaGZTX3B2dGBvYF1ognFyaldnaWNpWG1XW3RMSkxlZl5hcnOFaFtcZXleXmRnemFkX11Za25lbmp0d4p+c3KBfnt2eod0hYN8f4d3doqFj5iBjYJ7k3Zsd3Z5eJJ1bnd6fVh5hXF/bmZ4dpGCZHaGhXGKloaZoZuiioZzb5KLcnaNmnyJmYiJe59/hJl/gXhxdG5vZHJ+aGZsd3dbX3h7enFxf2lhZ2F/1baOkaZ4bnF3e3GSkIyGapiNiJuRi4Z7aIeLmYaBkpCGhpeNe4yMgICJjXuQjX6JhXp1e4N7cYaAlZmOkpSCiXWEiHiFgYyVnqCHlpCgf4hhf5OHg4eDiY1/f4JmfZGAfn+CjI+Qf22DfIJ0a213dXR3dmtjjYGOf4R/fIR/hYh/cGB0coZ9kI6DfYCSinpxhGd7hYyIjYR8hX+BlZCSlIVvcHmLf3RsbWlqd3phZ2lpWGt1WlJpcmliUGJyeGxiZV5aaoNuc2JcZ19lbV9uVFpvTkdOZmRcZm5ygGtaW2NzX1xjbHdkZV1dWmxsYm1qc3aGgHFvf3x9dHiGeIWDfICIdniJgZKVe4mGdomBb3h5e4OSb217gHZeg39zgW1oenOUc2dzh3xykpGEmp+boIaGdXWUfm11kpZ9h5CDio2ZfIyadn52cW9samF0fGdiaXV5WmB3e3ltcX5lY2hoV52PX3Jzl7zEhHZxlIiPfXGWi4abkoyHcmqIj5aAe5SMgYSajHyKhXx7iYt/lIh1iYZ2d32BcnWGgZ6UhZSPg4NygIp2hn2Lmp6ah5WPnYGJZn2Tgn6Eg4mJcoF9Zn6MfHl/f4eLj31pgH2DdmZveXhzd3Nsa46FioGKgHiCgYWEgWtfc3l7fo6LhnyCkIF+c4JpeoSJjIaFeYR9gpmNkY1+bm17iH12dG5mZXt0YltwYlducVNTbXJoYU5mdHhmYF5dWW+Ab3NZZWJdam5gcE9Za1FEU2dgWmpubXxuWVtebWNaYm93ZGdcXWBraWNsanN2gYNwbX98f3R1g3qDgnyBhXZ+iIGWkHiEi3SBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0a5ONhZ+YoJmEiG59jHZpd5eOfoCJgpSXiXmPlm96c3BsaWRgc3poX2Vxelpgcnx5Z3F6YWVlj7Gyd0tiWqXZ0JZxe5CKj3d9k4qEmJGMhW5rhZKRenmShoGEmIp8hn94d4mKhJaAb4uIcXV+emp5hYOlkISTjYN/b3+Ed4V6h52alYyUkZWFiHB7koJ8goOIg26Bd2iAhHhyf4CDiod8ZX1+hHZjcHOAaXlwb3WZjYaDinx2eICFeoNrXHJ/c4KJhop+h4p7iXKCbnKFiI+GhnOEeoKajY6FeW5vfoR/dnpkZmh7b15YdlpYcGxOV3FzZmBLbHd0YV1cWll0fXNvV2ddZmpyYG9OV2hSP1hmXlpwa2h6cVtaWWtlWmNxeV9oXF5lbGhla2lxd3+Ib2x/foB1b4J7gIJ/gn92gYWIl4lxgo1xe4Z8enmDk4x1anl+a29+dH99b3J7epNwb4F+eGeSi4OhmZyRgoVmhoNvZ3mViH1+hIGYiYF8jYxoeHJrbGZfYG95bV9ib3hcZGuCemFxdl9lZdTqvYsyOj6Ljn9xeIWIjo12gpWMfpKNjH9tbIWNjHV8j3+FgZWIfIJ4bnaHhIOXd26IhWx1e3RmeYKDp4uCjouEfm6AdniFe4ieko2Rk5OOi4d/e5KGd36DjIJrf3JogH54bXx8goqDd2F5hIFxZHFofm51cXWCm4uAf4WAc3V+gXOBb1xuf3V5i4SLe4iBfYl4enJtiYSRhYxzgnqAl4yLgHVta3aAgHV0W2dndW5XVntSWXBkS1pycmVbSXB4b1xbW1lddH50aFliW2dmb2RqTVdmUT5eZVxddWVgdXBaWVRuZFlkcXlaaF1fZm1naWtpcHd9jm1pgoR+eW6AfHyBf4J6dYKBjZOEcICLbnd9gHt7h5KJf2h7fWpze3KFenN3fn6MeniEfXxrjI2Em52WjIGAbI19a2h+jYt6fn6Dk4J+fYqIa3VxZ2hiW2Jnc29fYWtzYGhwiHpic3ReY2SboI9uXDVar7V0aYCIfJKGdYWVhXOOiol2cGyFg4d1eYl4iXyTiHp+cmd1iX5+mG9xhn5odnluZnmHhKSHgIaMiX5uf3eBgn6Om4iDlZKZiouFiXyPiHB6fYR7aH5saoB7emp6d4KHgHJgd4F+cWRyZ3aCbXV7hpWRgXyCgW93enx1f21ZcIB3dY2Dh3iIdoOJenhzb4uBkYKHc39+f5SJintvbmptgYF0bVxmZHJwUFp6TVtvXE9bcm9kVUtzeGlXWVlaYXGAdGBdXWBnZGlpZk5ZaE1AYGNbYHVhXXVsWFdTdGFaZG9yV2peYmhrZ21saHB3fJNsaISKfHxwf357gX+CeneAf4qLg3F7iG9xd4N/e4mMj4Nqfnttd3h2ind8eICBh3+Dfn56bYSMiJijjYSDenWLeGtsg4eQeH16gZGAgH6Kg3BycGNmXllmX29vX2BncGZqb4l0YXRvW2FkanZ7gL+cpqTIuHGFg3KSfHiGkoJzkIuHcXJvg3uDdHSHdIh3lIh5eXBjd4d6gJNpcoR2Z3d1Y2p8goidgX9/jo99c4B1hnqBk5GEepePlpCIgoh7iIhreHl+dGd6aGt/eXNpenaAg31oYHeHfWpqdGh7gGl2gYyRlH56fn5wfHZ8dH9iVnh+c3OLhYJ9hHGHind4cXGEg46Af3p+fXaPhoR3anFpbIeBcW9cZmFxbUlkdUtdbVVTWXJuYlFPdHhhUlhYXWFvgnNbYV1oZWVka2RQW3BJQ2NgW2NwXl13aFVWVXZdW2VuaFZrXmFpZ2Vubmhwd3qTbWmIjHl9cnt+eYKBgXx1fIOIhoNwd4RybXeCgn6Ji5N/cIB7d3l6gYt0g3h+gYGChHqAdW9+ioubnoh9hXp3hXtndIWMj3l+f3uIhYN2j39nb25fZFxYZVltcmFgYHBsa2iJbmF0aVleZG6Ad6naqseGh7JxiXdvjHV7ho1/epKJf3RzdH53gHBxf22EdJSGeHVrYHqCeYmPZnGEcGd2blttfICQk3+AeZGTfnl8bol3gpKNhXWXi5KPh4WGe3+EbHR2fm1ndmRte3VtaXd2f398YWJ4hnpodXVifXtndYaOjZV7dIB2cYB7fW2AWld1f3B2hYh/gHptiYZ0eWx2gYSFf3x+eXx0i4J+dGh0ZW6Kg2xzWWhec2RHbW1LWmFXVlV3bWJQUnR2WFBWWF5hcYRvXGBjbWRkXm9jVF1yRkJlX11mZ11be2JRVVx1W1tna2FWal9gbmVma3FocHZ4jnRrjo11fnZ4fneBg4F7c32DiIeDb3KAdHF1foWBiY2Ke3eAeIN7fIWHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN4Xn2FmIt4hoN0hYaEd4l6Ym5sW2JbW2FWaXNjYFtnbm9mh3FhcWZXXWNsf3zKzoe5oWptbYpscYRxfIOJfnqQhHl4c3l1dXtqbHZjhHWSgndvZl59gnqLimVygmtqcWNYbXqFm4iCgXOXlHh/fW+JcoSLjYlzmI+RiYaLg3t5fXBwb3xmaHFibXhxamtxeH18el1leYB4aXZ4ZoJ3Z3SHjI6UfXKHam9+gXlvfV5Zc39udYGLfIJvcIqAcXdpeICCgIJ4fnN7dYd9e3Nnc2Fui4FrcVdpXXZbR21qTFZUXlNVe2thT1R1clBRVFdeYnSFaV1gbGpmY1pvYVhjcEdAZ1xgZV5cVnteTlZlcFlbamhdV2hgXnJma2dxZ3Bzd4Z4bpWKdH96eH55g4eAdXF/hoWOg3Bwe3h2dXqGhYeMhnp8f3SLfn2GhISHf35+fYd/fHh2eHiRk59/jH2LbXV/eGSChpWFc5GKb4WFgXqDdGNuallfW1xdVGdyZGBYZHFyZoFzYmtlV1tgan93vq57oLZuYnOGaHN7cXmBhHp9i353d3J2b3t2ZWpvYId1joFzamJef3h5i4RmcX9oa2taVm93iaOBhH9xmZNygXl2hG+Cg5OJdJaKjoiFiYV9eHRxbmh4X2psX212amdqa3l3enZaZ318eGVzfm6EdGV1hY2Gln9wjGdreoR1bnViXXF9bHV9jHuCZnaHfW5xaXZ/eX+Ac35te3yCe3lxZmxibYl9bG1VaV92VUppak5RTmhNWHtoYU5VdmtMUVRVX2Z1g2ZeYHFoZ2JXaV1ca2hKRGpZYWRWWVV5WU1WbWpZXWtkXFllY150ZmxkcWdycHWBeHCZhXZ/fnd/fIWHfXVygoiAlYNuc3l7enNyhYeJiIN5gX51j358hIqOhIKDen6Lg3t2e3d3mp2XeomChml2fXtsg4SSf3GOgXCFgn6Bf3BmbGdYXVtcW1NkcGReV2JydWl1cGVlYldcXGiAcG9ygHOJZGR4fml0dXNygYN3gIN5dnN1bmt6cWJna2eGdI2DbmZdX31we4l/aW15Z2pkVVdyb42mfIR7dpaRdH1zfXtvfXySh3iafYiGg4aDfXVvcWxndFxsZ15sdGRnZWl6b3tyWWiBd3VocIF4gnZid4WLfJSBb4xqbXuCcWdzZmFuemdzeIt8fmJ3g3dqbHJ2e3F7enR+Z39/gHl3b2RmYm6Fe2xqVWhib1JKaGpPS05vR117ZmFNVXRjSk5TV2Fqdn5lXWdzaWZgVmNXYnBdTEtqWGNhVVRVc1ZMWHVkWV5rYFxaY2VfdmdtYnBpc29yfnV0mYJ3f4B3f3+GhXp8dIKEfpeFbnJ0fHp0cYSFj4GAeot2dJB/fIGVjoCFhHx+jIZ7foB2e6OlinmIhYRrdXx6dYOAi3puhHN5hH2Bg3VuamhlVl1bWlpTYm1kW1hhc3tpaG1pYGJXX1tqgGprcIBna2BoeXhqc3RzbYOAen98dXVuemhqeWpfZW5ogXaQhGdlWGJ3an6He29qcGdmXVRYb2eOqHeBenyRjnp2cX9wdHd6kIF5lnSFg4CFiHZqcXVnZ25bbGNdbXJfZ2FqeGh8bVtugnJ0am+Bfnp3YXeFhHiPhXOIcm95gHJjcWlccXhkcnSJfHljdIBxaGp6dXJteXh2eWSEfH95d3FkZGNufHxqalRoYWVTSmtnT0dRa0VgeGZhTVNxXUpNVFpla3Z7ZV9tcWlkXVZgVm5uV0tTaFdlXlhNVWxUSlx5X1tea11dW2NlYHlobGBvb3VucHd1eph9d4CBeoCAh4Z6eHmCfoGThHF0dH95dnSEiJF9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSrn396iIeDa3KBeXWAfoB0boZufIBzioBqb21kZFhfWllaVGFqZ1taXnSCaV5tbFxhV1xcbIFlcnR9aWlca3Z1Z3N2cWyEe318eHVybHlnaXhmXWVzZ3p3k4FjY1RlcGeChXd3Z2lqYFdWWWdjj6dufneAi457cXJ+aHpwe459eJBxhH1/f4ZuZHVyZGdnXGphXG9vXGdfbXVkemhddIBvcmtyfH51dmJ0hYt7iIeBgHhydX91YXBtW3J0Y3FzhXx1ZXOAbWFte3Brant5dnNmhnZ7e3ZxZWJlbXN9aWtTZ11cVEtxYlBGVmFHYnZmYUtUb1dKTFhYZ2t1emRlbnFmZFpXXVh2ZVRKXGJXZ1dZSFdlUEhieFpdX2xbXlxhY15+aWpfbnR4bXBudoOXeXKBgHx/iYyGfnV1hnmHjHx0dXWCeXp6goyOfX6EiWlzloF6ip19foV6gXp/fIaIc3GPrYx7e4ePfWRxh3lzfHp1cm+FbHt+bI96YnBvYmVdZVZZWVdjZmtfXVxyhWhYcG5bXlhaXGx7Y3B3dm1iWmxzc2d0dW9sg3h+f3h3bm50ZGl0ZVtndWZ2dpJ5X11SZmZqg4J0fmJkaVxUV11iY4+kaHh0g4aReW1we2l5bnyGfHaJc4B4fHh/aGR2bGBmX15pXlxza1llXW9vYnplW3d8a25ub3h5c3Vkc4OSfoeDiXt3cHJ+c2J4ZFxwcGJxcoJ9dGdygGVebndpZWh6fHVub4J1dH10cmJfZm5ufGRoU2dYV1NMdl9QSllYSGJ0Y2FJVG1TSk1aV2lscXtibWxzY2JaWlthd1xTTGNdWGlTV0dZYE1GaXVYXmBsW1tfYmJchGlnYW54eWxvanaBkHhtg36AgZOIhIF2c4h0jIZ0cnZ1gnd8fX6MkIB+k35wd5WDfJmSeYCAeHp+gHSIg3RwmKB6e3+JlHhjdYd4c3d0a3Rvfmt4fHCRcl5wb2BnYmxUWlpXaGNtZlxbcYllU3JuW1pYWGBsdmNpdWppXlltc3Bsc3NzaYR8fn57dm9ubGRpcWNba3JkdHaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEkXRsbHtucHF7fX1xgXiAc3p6emNldWhdYllgZ1pedmhXYl1vaGF3YFt7dmlqcm54c3J1aHGClYOHfoR2c2pxfW5md1hdbG5jcnOBenRnb35bYHByYmBrcn5tbXV/c3F4a3BhXGVsbHlgZlJlVFZRT3RaUU9YUUhjc2JgRlVrUElQWlVra2t8ZW1vcWJbWlhZbHFXUlBmV1ZoU1RGWlxOSHF0WF9jbWNYYGBhXYtqY2RteXhrcGl1eYZ7a4N9f4SafIKEeXyHbo+Hcm92en10gYJ8i4+Cgpd0eIGThYGfiXWBgIF0f4Jxh4J1b6GWc3uGi4Z6ZXeKbm16bmZ4cHprc3ZyjGtedG5hZ2VrUl1bVWdhbGtaXHCMZE9vbl1WWFVnaXRoYnRlZV1ZbXRtb3V0eGqGfH97h3aPc2Rka25hXG5tY3N4h2taVFZjZHh9fXGGXWNfY1NaX1lilZVjbnCDhYp0a2h8cGZ0eHV9bHp1dm96fnVeZXJjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXNxdHB1dmtthJOBiXuFcXNncH5xc29UXGdrZnF0gXdzY212VmJybFtfcGd+Zm13fnNzc2ttYFpkamp2XmZTY1RVUFNsVlBWU09HZHJfYUVYaU9IV1RWbWhkfGlreGtiV11VW3RkU1JXaFFYZVRTSFpaUE13dlpfZWxpWWJgXl6ObmFma3l1bm9pdnZ/f2yDgH2Hl3uAh4GJfmuTiHJndIB7dX+CfYiOf4uTcnyKkYWHn4Z7f4aMc4GGc36Cdm6ki3KBjYt2d2x6jGBke3BmenN4bG1xdoJnZHtsY2ZnaFNfXlVnX2xuW15tjWhOaW1gVFZTbmd0a2V4ZGRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVweX5nWlZYYGx4fHtwhF9iXmdWWF9XY5uIYmtwgYd9eGxreW5cd3Nte2l1dG9ve4ByWGltXlhcVWFiV2RwY1NeYWhhYmxaYH5rZmtzdm9td3dsaYWMf4l7iG1yZ3F9bnNuZFphaWlvdIJ0c15pbVNlcWVVY29je2Ryd3x3a3Bta2BZYWdodFxkVWBVUk5XZFJOW09PR2RvXWJGWWlNSV9LWG1kYHhpbn5kYFVfVF11XFRTYGZOXWFVU0pcWVBZdHVdX2VsaFhjYVtejXFjZ2p4cXNuaHZ0eoNygoN6iI5+fImHjXlukIp1bHOCdH9/h4WGkoSVj3l9jI+HkZuEgHyMhXOAgXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjYyMjIyMjI2NjY2NjY6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjY2Njo2Ojo6Pj4+Ojo6NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERBUsza2NjY2NyLaW5ubm5xSSwwMC8vLEmFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTJG2Orn5+fn64tiZ2dnZ2w8GBwcHR0YO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fX59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmIiIiIiIeNkJCQkJCQjIeHh4eIh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaTlJSUlJSVjYmKioqJioaCgoKCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkpKRiYeOipCSkpOPjo6OjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYuLi4uLjIyNjY2NjY2NjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx9fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQkIeKiYmOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCNhIqNiJCJi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkYmCiIyIj4eNj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjoiIjIiNho+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH1+fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2QjoyNi42Ljo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KHjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eX1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyNjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4eHp7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ+P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF1eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTk7OzpAOjs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTk1NTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnd5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODk6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Oz08Pj89PD07Ojw9PT08PDw8Ozw6Ozw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXFxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl7e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BxcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj06Ojo8Ojg6ODg6Oz0/Pzw7Ozw7Ojs7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXtOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/Pz48PkA/PT09Pz49PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dIRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxwcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBfVFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjo+PD89PDo9PEBCQkVAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHREVGRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgICAgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFERUNAPUhEQURERENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIRkhJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUFDRkpISUZISEpIRkFAX2hEQkFVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKS0xLTEhUX2hxe1dObISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N1dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tMTGBYZ3+EhoR+eX+GhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lIS0xPbXmDhIN/gIGEhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6fHt8fH5/fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BCRkhLSFB1goGAgoKCg4ODhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODk7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9OjxEQkRFTXaBf4GCg4OCg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6Ojo6Ojw4OTg5Nzc3Nzk6Ojg4Nzg1ODg7QT0+PkJBP0FLTE9RUFFPT1BRV2tycnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PEROeIKCg4OEhISGiYqKiIeHiImKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDo7PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pj1AQE9/goOEhIaGh4mIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPj9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PDw6Ozs8Oz0+QUE/YoODhYSFhIaJiYiHhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURGRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pj8/PEA+QUBEQU1/g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqIV0dMTE1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkhHRUtJS0lLS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc8Pjs8Oj0/P0E9QEBEQ0dCaoWChYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtHRUdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw7Ozw5PkA+Pz9BQkVES1Z+g4SEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSUhGSkpFSkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6Ozg8PTs9QT0+P0FERUZOboSDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMi4uLi4teUlJQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRUdJRkVFQkBCQlxwcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgICAf39/VUVDRUVHR0VEOz9BOz08OT89PkBCR0Y/REZESE11hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTlNUT01TTFBTVVdSU1JQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj5CQ0ZWTUNKS0hMT3mGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlTWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hJSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQkNGRURFTFhSTFFRUFJTeoaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLhmxbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVddWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01KTEpJSUxNS09NU290dnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNSVldWV1Z2hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3lucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTUtKSUlGQkRAQTpQUVFXWFBQT1FTVFNXV1dYWG2BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TT09NS0pFQz9AO1BQWlpbU1NRT1JSUVVSVVNWX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX59fn19fn9/f4CAgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XlxWVVNST0tGQ0RBTV6DbFZSU05PUU9RVlJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUFFOS1JUUU1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSU1RaXW1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lVUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUENEQEM+QkhHVkBJTk1HXWlRSEZPRkRFRkhHSEJDSEdISkdEQkFDQE5QTVJkdHV2dXN0dXp8ent7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHN2ent4eXVybnN0c3l4fn6DgIOCgoCCgIKBgWtMRz4+Ojs+QD8/Pj5qUEphRUZISUVCP0hNTUdNUVVKQkU/Pjw9PD09Pz0/QUNCPz88PUI+Sk1GVW91dnZzdHZ4e3x7fXt8fX19fXx+fX18fn5/f3+Af39/f3t5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVlRXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQkFDQVtcTntOT09OS0xNT09QTEtMV05JR0BCPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV2dnV2d3l8fHx9fHx8fX5+fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJTVlhTUllUTllaW1dZXF9fYGVgXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZDTFFPYVdSWFFQU1NSVVtPT1FWUE1JQ0Y+Ojk2NTg2OTc5OjM2NTc5NTxCPWZ0dXd4d3l5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LVFRTUFFVT0xSU1RXWFRUWFFMV1lZVlhYVlhZXVdXWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OThHbnJ1eHl6e3t9fn19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KTk9UU1RcVlJVU1NPTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR4eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFhZWVlSVU9KR09QT09NUkpPUFBQTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTElMS09RUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFPUFBRTlFPUE9MSkxMT1BOTlBRUU5QT0pNTU1LR0VFREI7PT08OT1HNjY3N0RucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11nU1FTQUdVUE9SUVBNTU5MSkxLTE5PT1FNT09NSExLSUtLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1BQEI9PkVIRkRGRklHSkpARkFBQEZIRUpPSFFSYVxRUFJOU09PUExMT01LTUxNT05bVktNUU9HSUhESUpMTEtGRkZEP0NDPj1CRz9CPkFkcXR3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVBNT05XS0xOS0xNTUxMS05OU2ROSkxSSUlJRUFISkxNTktHSUZCQkJAP0VGRUhETG9wd3p6eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkFBRERHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUS0pJTVRGSUlKTEpLS0lKTE1PUFJQS0dDTEdDQ0pKTE1PTUlKSUdDQ0NESUpNTElac254eXh6e3t5fHZycHVydHl5dnhqcW9qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFIS0NGSEhHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNT0dIS0ZIS0RISUtNSEpMSElKTEpNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuand2dnt4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkcEZLQ0ZFR0RFRUZFR0NDQD08PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGQ0I7QkNDPkBDQ0NER0xOSEtOSERIRUlMTk1HSUxHRkZJSUxOS0pIRU9JQ0dNTU5NUE5PT01MSUhJT1NRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUZFQkJBRUBEQj4/Pjo7Oz07PT9DQT9BQ0ZHSkdKSUxIR0dHRkVDPz1FRUI+QUNDQ0RHSUlHTVBJRkZHS05PS0ZISUZFRERJSUhLSUZIUEtESk1MUE5PTk9QTkpKSE1SVVVST1dkYWFtZ3Fyb3N5emdlaGhjaWxncWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NBQEFEPEJBPkE9Ojo9Pzs+P0BCP0BCRUdKRkpHSUdGRkZFRENBQUZGQ0JCQkRFRUdHSEZMUExJT0pKTEtJRkhFRkVEQ0lISEtKR0tSTUNPT05RUE9PTk9PS0tLUFVXVlVTWWBfXWlhbmluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01GR0VHQUJAQ0Q8QUFAQzw4Oj0+Oj89P0I/QEBERkhFSEZGSEZFRUNDREJESUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9OTlBNTE5TV1ZXWFZYXlpdZGBoYmppZ2tfZGVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJFRTxAQ0JEPDc6PT46PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSEVLS0xMTk9SVE9JVFVUUVRQUU1OUU5NUVdaVlpZV1peWlhhYGBgX2hlY2BkZWdnamhoamZobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURBQ0hFPEBFQkQ8ODo+Pj08PEJCPEA+QUJGQ0VCQkhDQ0RFRkZHR0lGR0tIQ0lIR0lHRkRIS0lHS0lNS0pLTEhMSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9UWVpZXFpaXF9fXmBjXlxhY2tiYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJER0U8QEdEREA5PD5APz4/Q0I8QD5CQUZDRURDSERGREZGSEhGSEdJS0pFSkhIS0hGRkxISEhKSE1MTExMSU1LTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGFlXWRgZmdgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXd1dXV3dnV3c2d0cmtxcmtyd293SUpLSUtHQkRERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFREZIRUlFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0tNTEpKTUxNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9cXmBgYWFhYGNkZWJkaWNkaWpndotsa2lobW9zcXBxcHByeXdydXV0c21tc3NtcXNvdHV0c3Bzd3R1dXd2dXV1ZXFza3BxanJ2cHdKTEtLTEdDQ0FEPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0dHSEZFSUZDR0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlFMU01LTk1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZmJhY2luaWNpaGhteHZtaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0VBQEQ+PkRFRkM/Q0FFQ0RGQ0NFR0NCSEVCSElJSEhLRkRLSkdISkhJS0dKSk5LTktJTEhKTUtaZkpkXEtsUkhPTV9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxrVV93dmlqaGhmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENDQkVFREZCRkZHRERLRERKTExKTE1HR05JSEpLR0tKSUtLTkxNTExMSUxMTFtzYmRwXmxsVU1OZXJdZ2ZxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9cb3VncU1Lcnl2a2Jha2VlbHhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FCPz1CRUdCRkNFREVFREJISEdERUtIR0tNTUpNTEZKTkhKS0pJS0pKSUpMTU5NTU1LTk1NW3Jvb25wcGxrTlBRbFhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhvY15rZmJncHBqaW9wcHNzcHFwcHFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hGRUVCQUI9Pz9FR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSU1LSEpNSUtJSkpOT05OTUxOTUxcaGR1XWxxV2xOT1FuVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRkpMS0ZNS0xSUkxHTU1ITkpJSE5ISkpISE5PTk5MSk1NSlpzcHBvcXFtbE9RU29Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpbXXRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hKQ0VFRUBAPkNDQUZDSElNSEZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUlKTElLSklIS01NTUxJS0tLU2tiWmleX2pjcnJaX1prb2BlZVVrX2NbYWJRYG1oXGpcbmlpZFpvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga25wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRURDR0JISkxHRkRHS0xJRUZKTktJT0lMW1FKRkhIS01JSEpKS0tJSEpHTEtLS0dISkpMTExLSUtMTlRbXVRQVU1RUE5PT1VSUE9RT09RSkpOUFFkcWlUWVZbW1xVWVtdWF1cXGNmYWFmYmNmX15ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0hQS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKR0dJRUZLSElLTkxJT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGFhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHh5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVGSkpKRkVISFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdFRUpHQklNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjX1lfYltgXltUWVhaX15kYmJhY2ZpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh2cnl2eHJxeHZ0dmFTSkpNSURCQkNGR0VHR0lKSklJREdLSktGRklJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUJGSkQ/SUtITltjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmJiY2NlWlJYVlZcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJS0RESkpNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hFREBEQUhJQT5ISUZPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUVFdX2FjY2NjYlxkY2JkY2ZYUVZVU1xYW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0lHR0pGRkZJTEpORURKSkxOSkxJS0pISUdCSEhRTUtLT01LS0lISEVEP0VCSEhBQEZFQ1RdWV5YX1hfW11VWFhQXV1RS0pWXlheW11WWmFSUl9fYmJgYGJiYGNiYmRkYlhPUlJTXFNcXl1eXl9fYGRoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0lJR0RIS1FPTUxQTExLS0lJQ0VBRUNIRkFBRkRBVlVFXFReU1ZgWE5UVU5aW01KS1RgYVtfWF9eYl1PWWJcYGBfYmNiXWJiV19fVFBPUVJZU15cXF1eX2BiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNRRFdfSUdHSERGTUpQUEZJSUpLTkxMS01LSkpHRUlOUVFOT09NTk1OSEtBREFDREZEQkFDREBMSEJMTFBPT01GTUZGSElIR0xMTU9QSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUVVUXFlZW15eYWFlZmNoZGtscXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXk1HSFlNR0hKSEdOTFFRSUtKS0tOTVVOT0tLTEdHS09TU09QT05PT09IS0ZgRURfTERmY0NMW0heW3NtT01WbVlMQ1BfVGxXZ0pdV1VeRE1RVUxNU1ZRUlRYV1RYVVRcVFBmWmhoZFlUa1RYV1VbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0tJRUZGSEVFS09USktHYFRHSk9KSU9NUlFLTUtMT1JVUk9PSkxNR0hNUVtZT1BQTk9QUEpLUX9RSXxZWXJzV1BtSHFub2FWUHFxdE9Ca3NucXRwU29fW25YXVZcWFVraFVdVmNZYFlaX1ZVV39pdHV1X2F2X1liXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4foB8foCBgoR8gIN6f4F/fnd3TUlFSE1NQkRMTEdKTEZSVkxMT0hMUlhXUU5PT0xRVE5PUVBLS05HTVBTW1pUUVJPUFBRS0laeF1UeGRoWVJTUHZndGxwYm5ma1JyTkx3bWpycHNycXJwb3CAXWZ6dXhxcXpxfnJ9a3V9YlJnfGVzc29zc3x9cH55b39yX2BgYmJbYWBoa25rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpRT01OSk5XXllVTFFTTllZTFNTUk5MT0lRUlRZV1dRVFBQUVNMSGd4bGN4cW1aS0xUeXB1bXVibnZQZGVJZXZxbXdvgGpmeHhpWHJSaXttaWp6en1seHp/cGdvWHV1anZ1cIBhc2h9aWx4fG9fX19jYlxfZGVmaWpkZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3J1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFBJS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OU0pLcm91dXF1cWRoYVZuTHFwXkdoeVd2VEtoeH14YHl7c25hXm1vZFNncnVubXlwd2x2c3RxbG1cc316a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUEtMTktMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05RSVJtSGl3S2BkdnVVV2xObmx7cmFqZ392VUtXa2h9bG1seGBbcHp7X2B6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxobW1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTUxTU1JPU1JXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFOUFVMS0tSU1JSUk9WVVFRT1JSWFhRTlBVVFhYWFtbVVNTV1tXWFdbT1JUV1dYUV1YVl1VU09YUlZXV1haYFtncl5bW1tdXV9jWl9jY2VmZGNjYlpjY2dmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJNUlFQTFZVVFBUVVhVWlVSWl1WVVRXVVlYUE9MTldUUE5VU05QTkxRUEtKUVFLUU1KS09RVFJRUVNSSUlNTk9RUlFRUVRWUlhXXFdTU1FRVVVWVFpRTlNRV1VUWVZUWVVTUlVTVFVYWVheWl9hXVxbWl1dYGNcXWJjZGdlZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkZGZoUUpLS05PTE1UUU9UUVFNWFdVVFZYV1daVlRcYFZXVllVWFRRUEtPWFNQTlVRTlJOTFNQTU5VU05RTk1OUVNQVFFTVFROTE5PUVRUUlJRVldVWVpbWVNVUlRYV1dZW1NPU1RXVVRZVVZZVFJSV1VWWFxaW2BdVllfXV5dXF1gYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFPUlhTUVFPTU9TVU5XUVRUVU9OTlFUVVVUVFJUWFZaXVxaVlZRUldYVltcVlBTVVVVVlhUV1dUUlJYVlZbX1teYF9WX11eYFxcYGBfX1piYmRoaGVkYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST01QU1JVWlVTUFBMUFdVUVZSU1NYTU9QUVRYVVVVU1VZWFteXVxbVlJPVVZVW1tWUVNWVVZYVFNYWlRTUVlXV11fW2BfYFZiXGBhXWBiX1xgXWNhY2hpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5PV1NOUVFQUlRSTFFUU1lbV1VPUk5TWFVTUlRSUlpPUVNTVltVVlZUVlpYXV5cXF5WU05UVlZbW1VRU1RWWFhSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZ15cZWBhYGFjZF9iX1laX1tcW1hYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1cYFxgVVxdaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVWlpaU09TUVVVVVNOVVFSWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZWV15aWFFVVFhYWFNWWVxUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXV5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFtVVVdWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVU09XUVNXU1dVVltdWFtZVVpeWF9eWVxZUldSWVhZX1lZU1VVWllZVVdZXFVUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZmRiX2RhX2FgYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFJXVVNSU1hSU1ZUWFhYXV5YXVtVXl9YX19YXFZRWVVZWlphWFxVVldaWlpYWVpaV1ZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYVtmYmhmY2ZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaV1RcVVZXWVdWXGBhYWNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVFJWVlJUVVdbW1xfXlpfXFZfX1pdXlleVlNZWFlaXWFZXlZXWltaW1tbWVpYWV9fYGBkY2RlZWJkWmJmY2dmZV5hYmBjXmNjaWVkZ19nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVVYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZWU1ZUWF1dX2BgXWFdV2BeW15cW15YVlhYW1pfX1peWFhcXF1dXltaXFdaX2FeYGVkZGZmZmJZY2ZlaGdkXmNgX2VjXWZpZGVoX2deY2JjYWFgX19bWFlbWVpaWFpYV1tbWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9dXV1YV1tbXV1fX1xaXWNYWVdcYGNkX1JZWVBXVldYV1ZWV1ZdXV5hYmFfYl5ZYV1dXlldXllYVVdbW2BeXF9ZWV1dXl5gXFpaWVtfYV9iZWRlZmdnYlpkZmdpZ2NfY15gZmVaaWljZmljZl9iYmNhYGBfXV1aWFtZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcV1piZWNhUlxZT1hWWVtZWVdaWmBeYWJjYGFjX1xiXV9dW19eWVlUWF1dX19eX1taXl5gYmJcXFdbXWBiYmNlZGdmZWdkXWVmaGlmY2FiXGNnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXVlhQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYV9jYmJdXFtaV1hqcWBcYF9dXGFjX11YWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl5cU1xfYGNkZGZlZ2ZlZmVfZmZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHt7e3t8e3p6e3p6enp7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKh3NxcnJycW+pwb6+vr7BooqMjIyMjYl+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyJcm9vb29vbLLQzMzMzNCqjZCQkJCSi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4OEg4GCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5eXp6endvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx6enp6enl5f4OCgoKCg4B8fH19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV4dnZ2ent4e3h3dnZ4eXh5en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t7e3t6eXl5eXl6e3t7e3x8e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3d3x7e3x5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d5fnt5e3h8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3t+e3l7d3x5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt7eXx4fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl3eHp5eXl5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZWZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcIqQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uJg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMj4uKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKjIiGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjIiGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4OCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCgoKHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFg4SEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OCgYODgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4SDgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgYKDg4OCgoSEg4ODgoKEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGTkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgoKBgYGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIKDgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWGhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4KBg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OFhYSEg4OCgoGCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCBgYCBgYB/gIGBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYGAgYGAgIKBgoKCgYGCgoGAgoKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGBgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOCgYKCg4ODhIKDg4OCgICAgoKCgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhISDhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KBgYKBgICAgICAf4CBgICEg4WFhIWFhYWEhYWDhISFg4OEhYSCgoKDgoKEgoGChoWDhYODhISFhoWEhIWCf319fX6ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgIGAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDgoOEhYWGhYaGh42Hh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYGAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWEg4GHmYyFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4aGhoWEg4SFhYaEhYWGhoeHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhIODgoWGgoB+fn6PiX9/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGh4eHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4ODioZ/gYCFgYCAgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhYSPgoWDgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoOCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWEhZGDhIODgoKCg4F+fX5+fn5+fn18fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiEg4SDhYSEhYWGiIeGhYOCgoSFh4aHhoaDgoKDhIKDhISCgYKBgYGDg4SDhJGSkY6PjouHhYaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWGiIuKhoSGhIKGhoGDkISDg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4OEhYOCg4GCg4OEhYSIkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoGAgIF/fYCGg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5/fnx8gIODgoODg4F+fX5/gICBgH59fX19fn18enp6f4KCgX9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF+fX1/gIF/f36AgIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH99f359fn+Dg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gICAf39+fn58fn9+f4B/fn9/gH+BgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36Bfn6AgoSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoOBgYJ/gYOEhIGBgYGAgH59fX5+fn9+fX19fX18fHx7enp5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf3+Af4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GCg4OCgoKCgoF/fn19fX5+gH19fX19fX19fHt6eXl5eXmAgoKChIOAgoOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGBgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoWEgoKBgYKCg4ODg4OCg4OCgoGAgICBgYGBgH9/f3+AgICAf4CBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYWAgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoCBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeIh4aHhn99gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYSGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359f35/gX+AgoGFhYWHhoeHhoeIiIaGh4eGh4eHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoWAfXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYiJh4WGhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhIWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32DgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4SFhYWDg4OEgoGCg4KDgoKBgYCAf4F+f31+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH59e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42OjYiHh4WFhISDgoKBgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX18fXx8fYB/gIB+gH5+gZORjIyMjY+KhYaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/fn+LkI2LjI6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgYGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36MhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJGMjIuOjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn9/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaFgoSDgn+Afn+CgoJ/f4KCf4CLj4yMi4yLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t9fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4aChJGOjIuKioeIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJi4mLiYWIkY2LiImHhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgYB+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnx9fH18fX1+fH59fX19fHt7e3x7fHx7ent7enp6e35+goWIh4iKi4uLiYyQjYyJiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4ODhIeJioiJjY+MioiIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Ign9+gpCEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiNjImJhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiYyJi4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGDgX5+gIB+foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyJiYeIhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dXSAgIKCgoOCg4WDhIOCg4SEhISEhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAhoKEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX5/fn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBf4B/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f36Af359e3p7enx7eoKEgIOCgoKDgoSCgYGAgIKBgICCgYOBgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOCf3+Af4F/gH98e3t6fHt8gYB/gX9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhYSEgoSDgYOCgICBfn+AfoB8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fX2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn19eH5/f3x8fH59foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN3dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH99fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZxeHlyeIWFhYWDhIOCgoOCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/fIB+gIB/gYCAf32Af35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWGhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/fYB/fn9/f319fICAgIGAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn19e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFycHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/gH18fn2AgIKBgH+BgX1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39/fn18fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn6AgX+Af4CCgICAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgIGAgIB+fYB/gH+BgoJ/goJ/gIF+f4GBf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f356gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH19fn5+fXx6fHx7fX17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKCgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIJ/gICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHt8fXt9fXt5eXt6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYSDgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgYKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKAf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+BgIB/gIB/gIGBf4CAgICBgICBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH17fHx8fH1+f39/f359fX6Af4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYGCg4B/goGFg4OEgYGDgYKCgYGAgIGCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAgH+AgYGAgICAgIGBgIKDgoKBgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl6fH19fH17fH19fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKChoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYKCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYKDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SEhIWEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3x6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Dh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KDgX6AgIKCg4KDg4OEgoGCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gYGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KDg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgIKEhIWDgoKDg4KBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4GAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KDg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgH+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYqJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIR8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYF9gXWBeoN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WCgYSDgH9+fn59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgoN/g4N9gX1+fn1+goOBfH+AfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhoOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9f359gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOGhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB1gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WDhYWFhIKFhYSFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYWFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEg4GDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WDhISFhIWFhIWFg4aHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn58fH1+e3x8f3x7e31/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYSGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaDhoaFhoWFhoaFhISFhYKFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn18fXx/fH5+fH2BgHx8fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEg4SDgoSHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHiIaGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWHhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4eHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYSFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f35+fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiYaGiIiHh4aHiIaEh4aGh4WFh4OEhYSHhoaHhYWEg4WFh4aHhoaFhoaGhYaGhIOFhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYWGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIaFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhoKCgoR/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfoCCgn1+f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYSFhISGhoeIh4WFiIaJh4WDhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg35+f4B/f4CDf3uAfX1/gn2AgX5+gX59fn19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7fH1+fX2BfX18fH2Af318hoOGhoaGhYOEgoWChYGBgH9/gIB+f4CBfH5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCfn19f35+f4R+e398fICBfYGAfX2DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHx7fX59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx+g358fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dXU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXU1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fc3d3d3d3d3d3d3d3d3drW19fX19fX19bW1tbW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0e3Nzc3Nzc3Nzc3Nzc3CUwLy9vb29vb29vb29vrSKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OlmjQpKysrKysrKysrKyskZLCpqqqqqqqqqqqqqqybU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpp49LjAwMDAwMDAwMDAwKmiyq6urq6urq6urq6uunVhXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaujSzw+Pj4+Pj4+Pj4+PjlxtK+vr6+vr6+vr6+vsaFiYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Oz87Ozs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0crJysrKysrKycnJycnJzdPT0tLS0tLS0tLS09PRzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7Ozs7P0c7Q1NLPztDU0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbY19fX19fX2NfW19fX19bV1tXW1tbW1tbW1tfW1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Ozs7RwafTyJSo0tDGk6vSzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8/P0Z2PwJyrm7DQma2Zs9LOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/P07qvq7WVh5yexZOGnZ3Oz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Pz9OfsZu/vsiYmca9yZaZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz9HAnImavdOUlp/O0ZGYoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Uo6KBm8Syn8Kb2q2jv53V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDRxJ+Be5at0IuTnsfLiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q1auvvMDPlMrbpZmz0NuimbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJh3+FoJuRp5mgrZComJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HG09PVnJulpqSooK+noqmc0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg0tHS16iIzJ2RjrrVmpGOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dLPxdTTucfW09O4yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS09TS0tXU09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhRSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtoZ3VaZnJ3c3hmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwsbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m9urq0v7i1t7Ovu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2diXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmFhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcrGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBwsO7ubO0usG9v8bAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pXF9gWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXFpVSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3s7KytLK4vrmztbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE+SUJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKyL7AuLi2srS2srSvrbu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u7+/ubS0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+ysrq6t7e1tbyzr7Srtrq4wMTBu7W8vbeyrbOwr6yutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWjm6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGwrq+yp6awpK+utcG6tbeyt7aztKuytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsaOlqJ6gnJWTkI+RkJiQlpWYlp+Ym5mbo5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaSlrqWsrLS8t62zsa+xrrWvr7O1qqetrKObmZSOkZaXmZmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZabl5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOT5CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6kqK6trKurr6qvqZ6XnqWdnqWmpKGin6agoq+rrK21sramr7Orqaq0sbGwuK2noZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKmxr6KZnJ2eoZmbm5qYmZuUlpuWmJykoaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5VTFJMQTc9Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho5+doKCjoKKvr6yvsay2qK6xsKimsa6trLCnn56ioJeRlJugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7issbSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqShn56anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOemaidrp6nnpyhnZ6ampKZnpyhoqCgnaKgn56fqaunrKmqtKyrrMrApKuoqqyqpaCemZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqefmaagn5+nqKWknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKafnp2dl5iVmZ6bnKOfn52knpudnKWipKOiqrCspqjUtKWsr66pq6efnp6hop2enZqcnJSTlZSenZiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqztK+zrqquo52rp7axrKKvpaCjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHJra3VycGhXW1FFVEhESU9IPkVBNEVIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpJ2Vm5ufm56cn6WmpaCjyLSyrqekpKOgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsDFvrm0ubq0u7ewtbKqurGuu7e+urqqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR9enJrZGhveGpkWltGS0xFRFNMREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkqCfkpmfmZKamJ+Zj4misbOooJqdnJ+empeYl5KMj5aXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zT0NPTzMrCxcbHysfOv8jRzMfFxsTBu8PAvr6+tb2zrb+/wsLGxMfErr64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6ydn66mpbGqxcbMzs2/sMGopaisraqhnaOfnJ2aqZOaoJq+o5KOloyCi5qpsKqjn52gm5iXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K0tfR19LU1dPTyMzHzc3J0szO08zFx8nKwcXLxsjIxb7CsrPIxMvKys7Fyr++v7zBx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/enJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo5+ko5+gpKyblqevy6yMjZGLma+vpp2dnaGloZ6blZSWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTSz9HD0NPW2NXW0svJztHLxs3RydLV1tnV19PW2M7Sys/RzM7QzNLPv8fGysPMzMvOz8XGx7bAyr/RzMvPxcnHv8PDyM7Mz9DPzcrIzri3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wsWxtqiipaahoqu1p5qvxMalhoagr6yclZignJuhop+cnZqVindpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNDO09fW09XQz9LT0cnT0cfQ2NfY0djS19nV1szPz8nN0cvOz7/FwsfFzs3R0NHIy8zAysvF087LzsjEycbGyMzK09PR1c/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr66qqqudpq64qKu319TV2dnRztDAvMzJt7+vp6upo6SxtbKjt8u7m5Sqq6GYlpiam52gnpmcnpN+cWVjYl9fYV9fYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHG0dTK0NTV1s7S0NjY2NfLyM3DyM7Mysu/yb/HyM3Oz8vQzc7Lzs7Hys/Qys7KwsnGyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bua2FkbnBhV1xaSUZGRE1XRTtAPDMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snnri2tbWtpa2uvrSwwNjS19rc1s/Ny8TT0MLBsaqtrqulsrG4qrvOr6OenJaTl5yen5+dlJeYlIlrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVysDJwcXMwsjJwszDxcjKys7KzczQzdPLxcjPzMjHysTGwMXKy83P0cbQzs3NzM/Fx8C3uL3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV4cHFrbWdgYHFoWFhoVkxGTElQUEI7RD47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfCuMvV1tna29jMzc/I1tXFw7extaqjray4ua+/yqGXjo2YlZCTkpGWlpaQjHxmYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL7Gyb3Cx8nOxMHHwMfNx8PLysvPx8PD0MjGwcXHxL7Ax8vLy87CysvIx8zQxMXHu8fDyMjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd250ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vbrNzcfQ1dXZ2tvY0MrP0NLUycS5vb6vp7eqvbi3w6ySjo6Xj4aDhISCfoWFf3RgXF5eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsjGwsPAw8fKycjKyMHFzMbIy83JxMLLycHCy9DEy8i/ucG7xce9v8bPy8O/w7vJxsi7yMbEysC9wcvGxcS+xby8v8PEy8XEvMDJwsXH0sTAyL/KycbHxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZqjoJuUe3ZzdGZpWmFubVpbWFFETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvP0czHwsPHzc/PzNXQ1tnY2dDM087P0MrDt8bAtbW7sL+2uLCRjJOYh3qAhYaAdnh1cnFfWltdYGBiZGRkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjAwcHFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDvrzBzcPGvr61wb3DurzGu8K5s7zFxMHCtr+1tb2/usvDvLW6yLq/vcvDwcXCxcjGyMbQxsLMx7LHycPOzcHFw8C9srewsqeoqLmwpa2wq62slHl2d2pkZ2Bob2NWXllKRUpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc7P0snRxtbU1tjOzNDHzMjKxL3JwbG0uba5tK6RjYqLhXmAhoaAfoR8dHVkXFxdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLS3tLKztLq1vbG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bAwry4vcbBw7u1rrK2ur60xLe7tau4vb2/vbC6tq+2urLFvLauu7+0trTFvb7DxcDDxcbIy8XAxsa7yMu/z8rHw8bCw7bDvb22ub7Hv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDMzsjLycvKy8XRztPQz8fJxcnEw7+8z7yyt7u4trWbjoeJiXt5foaGd3iCfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7i4tbCrrKeeoqqnnquss62pq6m0rbawsqmupqyyvLq2w7m6urGrtbm7tMK6sL+xvby7trzHucK2raqosLG/tbe8r7CnsbO0u7yrrbWlrrauurGwqriwrbuuu7i7v7+9ucK/x8PFwbzGwcjLuMXHxb/Gw8O5xMbCu8bJzMuzucK8urKIcnZ2a2lhYmxoWVdXW0FMS0xJRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs7Sy8PGwsXQx87CxMfAxsbExMvCysvCw8DGv7m7usm2s7q7tLOqkYmPkHx5foqGenuFgXdvXl1cXV1fYF5fZGNiY2NiYF9dW1taWl1aWlpaXGRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCkpp+qrbW2sb25r7evqK63tLS8uLS8r7i5tLG8wbHArqWooquxsrOnvKqrqKusrbSzpaitoaSuqbKlp6itpai3rLCyt7m6u7G7vb6+xL+1wcDHyLe/wMS3xMK/u7/Ewr7EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7rEsLawm5mVnJiqqbCxs7W9r8XR0M3EyLq6zMLMwLzKuL/FwLvLucLFxLm7wry4trzEt7S3uaywlYOJjYF8foB+eHR/fHN3Zl9dXF1eX2BeX2NjYWJgYF9eXVxaWFpbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSdpJuYkqGjqqOin6Wlp6Wsn52bpKassq+2t6ewrKeqtKq0urG2ta22ubGvurmxt6SfpJ+msaerqLmqpKeoqKeyraCnpp+bpKWsnp+npJ+gsa2trLK0srSwtby2u8HBsrq+w8GyubrCs8C9v7W4u72+vMLHxMLDv7/EoIN3cGthZl9rb2BVWV5ITmdPVEdFSkY8PUA9Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wbu9taCelJ2hprq2q7Ozu7PE0MnLw8e5uMnCzcC5y7m8x7u1x7q1wsWxvMS6ta63vrqvsbStoYSHh4J9enZ0b21rampxaV5gXVxcXF5gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeVmqGWm6KYlo2eoaKmm5+fo6Whp56bopufqrCtsbWiqaqpq6uktLmtt7CssrWusrWusKqfnZ6jorKkpqm4raKmpp+orKqZn6CemZ2fpZqao5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7KyubK9tLaxsbW0v7a9wL3Dwbq7vZeDenJrX2VeZGRYVFhdSVdcS1BHSUlGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xtDIycHHvLzFxM+/u8m6usG6tMS3s8DAssDCu6uos7i1pq+wpoqGiIB5c25wbmtiXmJmZlxdXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaRnKGiqJ2bnaWmoaWcoKCamK2ura6yoKWiraumobSwsbGsqK+yp7qzprahop6bo6Gto6Gptaqio6adpaajlpiel5manZ+al52cnJysoaumo6Smrauzs6q0sLKqsrm0r6mvsrKyt7Ouqayusriwura5vb+3srGUhXl1ZV5lXltZVlNaVUtbUUxJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWjmKWxwrW2va20uMLNyMfBxrjCwcjPuMLGv7W8vLbCubW9v7S5vbmopK+5r6WvrJl9hIWAeXBydHFoZWRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYWFhYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnqmcmpqqpq+wq5ujo7eqoJ+uqLappqetsKO3sKS3n6KbmJiqpqGarLiwoqGknKKgoJOVoZSVlpuYl5aXnJWfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxr7Cur6anp7KusbSvvLS6t66jlIF5dWReYVZZV1NSVEtNXkxQS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri9rp2np6Oqu8C9wLmutLjCzcnGw8S+x7nJzbTDxMOwvr+4v8C5vr+4uLu1paWuuaSmn6KIgH15cmptcnRwaGhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKannpyfpZ+qr6afoqO2qKChoqi0oaWnpK+lsK2stZ6gnZWUqaGilKyxsZ6io52dmJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpaukpbCnpaOrq62mqK6vrquoqqmzpaarr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepKett7u8wcW6sbm1xcrLwcTHx8i3x8W0xMHIrrm6wbvBv8C8ura4tKSlr7Obn4eXiIB3b2RiZ2lpZmdpZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRXVlNUUlVgYF9gYV9gYWNkaYGTk4iQjpSSk5yUlZajmaCWnKCloa2lpKOio6GbqqulmZ6lsamgoJ2lq56noZ6sramorq2ioaKUl6ObnJCrqLCbn6KfnpeZk4qekY2Sk5WQmJiTm6GinKSgoZWgoaSmm6OrpaKkqqSrrqWtsammpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlVRRlFPSFpcT1JJVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7KwrLKtnaenr7m5s8DIurXAr8bJzbvCy83It8u/s8DGy6+0vMa6wMXCvL21uLOjqK6smpaEjYN8dWpqamxoamxta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eXl9fYmRtjo+EkYaQkY6Zk5SSnJqinJugp6iqqKqmqKWjmKSupJSZpa+pn5uZm6Cer5mbqrOfpaafo6OhlJOblpaSqKqtmpyfoaCalJCMmY6LkIySjJaUkJ6hoKOcm6KVm6CioJiiqKOiqKugq6+krbelo6SirK2qqKuusreyvbWzq6+Yg3NzaFtYWFJVUkVYTFFbWU1VTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaivrZupqKy3tqy8yru2v6zMx8a5ws/QyLXGvbm+xcu0r7vDu8HDwry/sbatpKisqZuTg4F3eG9uaW5ubnBoZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt+jJCKko2XkZeZoqCbn6qppq6qp6+jp5mfrKCVlqSop52XkI+anq6Wl6eqmZ+clKWhnpKQk5KTlaerpZqZmZ2dlo2MjJSGiI2DkIuSlJCgnqCjl5WflZqgop2Tm6Wlp6iooLGwprC8p5+jrLSqrqewtLC5tcCxrbGrkH1xcmJWVFZOUklHVlFSUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6u8LL0cyzuLq+wMTGtbO2vLG5usK8v6+xq66rraiZnoVrZ21ucm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKmImUlJebmZ2omp+ppaSqnaeYoKWbko+eopqXloWEkpqjj5OinJWWlYeimpqTi46LkJmkqJyVlZebkJKHlI6MgYuNgJCKkpKRoZqfopWUmJiVoqWZjJikpqimoaC0sqeyt6Gdoresqa2ksrKmtbu1q6uxo4h4cWxdTlBRTE9DTU5OUEtGTk5KSk5NUUlNSkFHS0hHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSno6mloKmlpLOqorLDtbWys8fGuLvEys3Hta+7v7e6w7KxrbWhq7TBuLmsqKmxrKyck6N7XmBnc3F2cWpuaWVoaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGDjoqUkZOdoI+am6Kho5iklqGblY2HmJqMc42CfY2XloWQmZCTjo57mY6cjIKKf4qYn6KekJOYloSOgpN+fnSJjnqQhpKQkJ2amZqQlZCdjqKjjomaoKGjo5uitK+sr6yfmaW4pqWwobCunLC7qqmvqpmBdnJiVU1ST1BNQ1NOTFFNQlBRSElOU01ISkpDSkxGS0o8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTE3NjQ3ODk6OjY1Ojg3QTd3t6KjtKilpqijpqWmpqazp6W0wbivtLDKxbi6wc/Gv7SuvMOusMawrKaqlKKsvbaurp2lqqqok5GecFdXYGhnaWhpbmNqaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeLk5Cfl52VlJaUjpaJf5OJXztXb3uLlImAi5KMj4WGc4qEloF5gnqFk52Ug5aOkI+Dhn2SeHJvhY1+iYCQjY+XmZiTio+JnIeel4eIlp6aoaCXp6+prainnpets6KmrZisq5intKKpraOSfXJtX1tOU1JWTERUSlBNTEZOT0lFTFFNS09KSU1QRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6KpsKintMG5sLWwyMO4tL7PwLqwsLfEqa3IrKahnIWZoLirpaaUo6Khn5SMk2dRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXuCdFBCQX+VkZF9iZSMhIqNmo2VlYqSiIWVhniIf2BKUW54ipGEfYSNiYV/f25+f5R3dXV3hI2ZcFGNiIqHfH54k3Zod4WIfoqIlYqNkJGWi4SKiJSEmoyBhJKblp6clKSjqKmlo56bsKqhpKSQpaqWoamcoqaoiHRsZV5bSFFRUk1JVU1TSUxLT0lIRktOTE1US1FRT0ZIQjw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+tqra8tri3s8K8t6i6ybm2qKm2t6y1v6qhmpGCjpivnqCXi52UlpKPiIpjTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJKBkpmLj3uGj4B1f3hzbnVwdI2NgXl9iqqFeXpodnuOcHJteIGKjJJ4eoB7gHZzcpJ3Z3WEhISEepWJiIqMioB/hIuMf5SDe4CPmJWclZGfnamen6CdoKmln52YjKekk6Cflp6epH9xZ2BcXEpWT1JHS1hST0pNTVJKSkpNUEhMUUxSVE1FSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpijoZicn7Spr6mlraywsaq9tLK7uLa7tbKgt7uzq52eraqrtLKknZWRl4SSopWbioGVh42IhIWBZEtJSUhHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gXZ4gImPfISYkoFyh498dntva36tfHOQin97hpKBfX90ZnZ8hWxvaHN8iYyHgGx5cX1wbXWPcWhxgH2OcEOKhIKDhX53d3qLhX2LenV+jpKPmIqSmpujlpmdmp2eop2WjYqlm4+el46WmI92bWxlYlpXV1RRSlNVVE9QTlFWS05LTk9KUU5ITk9LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn5+WoKavrK6rqKmxr7GrvLisu765s62om7GnrZyQlp2nq6ajmpySh5R9jZSRk396iHiDgH1+f2RKRkdGQUBDRElMTE1RUlBRU1VUVFVWV1dXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hufHmIkHl8i4VvbYyReHN4amqAgnKWkYuBfZaASZKYbmh4foFsaWNseYWQkoZrc2x8bnJ7hmhtcH5zjYiEhXp9fnt2b3RzhYJ5gXdwfI6MipODlpeYmpCTlZaZl56XjIOJn5GKko2GkJZ+bWhtbm5XVVdUUlFZT1JVVVNYVU1OSE5KTU5LQ0hOR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6lrbCirKqota+urLS/q7zCv6aimpWlmJ6OhYyWoqOZmpOWjnWQfYSKkI58d31zfHd0d3tmTkVHREA8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4l2gYiGdGyakXRze2prnY9NeYWSiYSOZzF2hnNsfn2DdGZldH6Eg4WAZmlsdWtwf3xncHB7bpKNjntzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlI+XjoB5iJeIhomGgJCHdWlpbmdkV1FaV1lZW01QVVZZWU5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiZkZqWpKiunrKfprquq7KwwrG7w8eblo+VmYuNhnqFkZmVj5GNkolziIR3io+Mf3Z3dXd2b3hzaVRGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bHKDgYWBeoSGhnlyoJV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8hnxzjK2NiIBoZmJpbnJtcIN1aW9YdW+OmpJ2bH97fG1xbXB/enN2bWJ2hH+GgIWQkYqLipKLkYyLj4N1eIuPgH6DgX6PeXBvbmpeWlxdW1lYYF9TTltaWVhMSEpFSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW1qa2xrsGyu8HGl5CMlJCBiX1ugpGSiYSLiJCHdoOFbpeKjH95entxe3R8a29eSlBHPkA3NDQ4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8fYWDf4x+dqKZeX6GgYSZhJucYYaqn52KgpCNenaIfomIjXOKl4+De1xkcXR6e3eKbGdpYXhvhY+Cem6Bd3SEenBzeXdrbmldd4d9h3yIh4+Ai5OXg42FjYd9cYR/hHx1d3t9iXVucXJlZl9bWl1TW2ZeV1FVWFxWR0pLRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMeIqAlIyRnZ2fppGgq6CxqK/AsbrFupaOkZSIeoV2a4CMkoN+i4SQjnmDgnSiho1/f4KBc4OBfWx6bFNXTEBFMjExMjY3Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+MenyJhn6Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbHyBhod9jmhnZ3h+boWGgoVxhIVHa4B3cXl2aG1rX3Z9g4h/iIWMepWenIqLiJF/e3WLdnx3bW93fn9ycXBqWlxcW2NjWGdlXFVQUFdZUERMTEZPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpiSl6CdrKGmuK+zvbOXjZKLmIt9dHB/iZN/fYyDk5V9hn+HpYiJgYOIhnmIi391hnlfY1ZLQjYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiZGBmpWCoaGXlZuapa2Tmruxp7vHw6iLjKGljpOJgZB7coOdn5GcfnaFhYqPh5BpaG+DgHSMhoSLcYaCd4eAe3aFfW52dWeAlI+GiYiHiIehq6KWiY6Yf3uCiXp6b2dreH14fHFpY11aWV1pXGBmX1pPTE5YUlFJUEtETkdDS0RDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnVwZ3iDe4CMgIGQj4uamqScoaymq6+wl5GRhKGUhHh3gIyUfX+ShpOWf4qAkpuOhIGCjIuCio6EgIqAbHBqXUNBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jKGemISShYKPoZ+TmJKEioWPmJGWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGWhpOKj4+WpbWpm42VooOHk4R+f2tqa3x+foBxX1xiXllmalxra15YS0hPU1FOTUxGSVBERE5GQkNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwg3B1h3F2kYZ+l5aalJ+fnKegqpaTmJ5nZaSafoWTkXmAkYmRkn2KhZmSkYOAgIuNiYaRh4SIhXh4f2dNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGampmnkZGIlaKamnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N7fXpvZl5bX15gZmNgZ2ZcUkVLS1BPSUpMRkZNQ0dNRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcXVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Ljo17ioaPkI6Cg4CJjIqFk4WDhoiBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49RkdBQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKeotKyxt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsraqji5aYhaamoKKXgqaZjaKqqKSHhZOjoKCqoKSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWqiZqKk4qVent+g3xlX2ZbZGBdYmNeZmZfW09ESkhUT0ZITEZLR0VGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljWGpwWHqFdoGUhYiCm4OSkI2T2sidlnNWl4iPiJyPfIaMj4qKeoiCh5GOg4WAi4WFiJKGgoSJhoeHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJUVVVXVU1bUEdHRDw+PkZIQ0RANzs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHIxKuzxbass8CzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsLGbmZKan4inr6qklHafpJehq7GzmJapraiutbuyuqyvtaKxrLG1vLe1rrWgp6ejqJupsK2yuri4p5y3qY2lj5KToIZ5gYFzV2BiVGVgYGJfX2VfW1RJREVMVlFJSkpESkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFiZFd6dXGBlH2EhpN2hn6AjHu/u6O8grSUk46bj4SIj5OJiXmHgIyTjIeFgY5/gYmPhn+FiIWKh5F6eW5dVkBFTjw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFdPX1VJS0pBQD9HS0ZFQzs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMq2u8S9s7TBt7jCtb+wt3SxtKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KRpbGtpa2rp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6uL+3ure5ra2xprGqrb6wvbvCwqyZu6iVrY+YmKqJfoB6aVZhX1dpY2lkVVtjWVZUSUhHTFFHRElKQUhEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWVZad2pwf4+EgY6FbnpyeIdiuKGao4mVlJaTlJONkJeSh4d7h4GNlYqAhIGKenyLh4Z9ioKBi4SVfXh6dWVPXGRHRUw6UWRhW15TRj47SFBEWmRRUVlYWmdaVGBhTVNPRUE/SUpIRUZBQEM9RTZCPkhHS01TWlRelK+4tbq5ycC7vcrMu73Au7i1vLy3vrW6ssZgdbKlsZqeq76qpairqqSisrWgq6ielZaemJ+upaempZ+kk6KnsLOosrK8tsG908nJ08bCxczCysPAvr2/u7y3tLC5t7fDusa+w8mwnrqqoqyPpai2iYB9b11gX1xVYF1oZVJYYVZSVklFRk1LQD5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdtbHGQjYWQc2xzcnOI1cC1maCNlZmakY6XkZaWjoaHfYeDjZaLf4N/g3h7i4SHe4t5gYqCl390fXpsZXB2WV1cUGVlYmBlZF1bWFdcTWRtVVJtbl9vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVl1aXJO5wLm9t8bAu7nKy7u3ura4ubO4tbWutraZZHWpnq1wXqKtnJihopuknqullJ+fkJSPlpiXqJ+ln56amYOknaykqrCtt7C8uNTQztbPyczSzM/OysfAv8LKvcG9wsDFxMbKv8nPtKS7sbWwm6y5vZp9d2lbXlpYW19YYWJRW2BTUUtDQkVGRTxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQjIl8gYNze4qDhXuKdIKKhpV/c3t5bG11fGlzZWlsaWZqaWlgZmlobVptdJetpLyHh2dbb2hdWllUSEpOUEpLUUxUUUhMQUpHS1BfX2JnamKXt8ewubO7vraxxMe2sLmxsLuss7Gnq7esjbannpynmk6ano2OoJaRp5illYqTk4iRiY+RkZ2boZiblZaHnpmmmqyvqK+ns7PT1NTW0cvP09TO08/MxsPK0L/KycvJ0sjNzcPR0rivxLzEuqa3u8Sif2xhWltcV19XWGRZT1xXTlFDQklFQ0k7QUQ+QUg/P0I4O0Q+QEk9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CQmYNocW95eYOgqp6ml42bm5iLjZWRmo59iYyFjoqKi5CIfISCcH+HgYZ7h3KDkYuPfnF5dWxweH9ye254c2xpgHBtY2ltcHlpd31+y7/C36dtY3hvZFthYEpQUlVOWV5QXV1OUE5UUVVUXG5ud4Nylq64rLSosLarrb3Bsau1pqW5p6yuoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSKg5OVmJeUm5GbmJmZnp6rrKSnoaysztLV0c3M0tPT0NTRzsjD1NHIztLT09bN0tHF0tbGwc/IyMOpv7jQnHdsY1tgW1VeUVxaT09UUE5IPkFHQkNGPEFCP0ZFPkA/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bXdwfX6AoZ6eoYuNmZOTjIyTkJaFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBwd3Nsc3x8d3xzgnhxa4BycmlvcXp5c3u+y5p+jLGDdnKFd2hhal1DWlpbV2ZkWGVrVFhdXWBjXmN4e3+LgZmqpKSioKGop6qxuaumtKOirqKkrqKnsZ+JppuVk5GKko+IgpSJa5WijZmEgYZ+kYODk5eti5WNlZmOhZKQnZensKKgoKSkqMfNz8fBy9DT0dTSztPNxtbTzNTY1tbY1dfVydTazcrY1tHKrcTDzIlwbWBeXVZSV1FbT0pHSklKQDs6O0VDRDxDRD5IQz9DQjs7OTw5R0M0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKJgZ2VnpSFi5aJjoqIjoiPgHiDlJmLjYiIi4l+g3hze32Dh3eAe4eRl4GEb3hwbXV/dnh9dIZ8eWyHdnVufXaEdXl7nbWMPEGKxqV+jXxqZVdJQ2VjZmNoamRveVtfZmhrbmlugISIkYyen6CekZeYn6SkprKkpbOgoqWeoamgorGch5+SkpORi46LhoOPhH6cnIyNgoSFepR+gqqVo4ySipiSi32XipqRq7OYmpunnKe9w8W5tsXN0dDRz8vSy8nUztHV2tfX2NTZ2M3Y287J2trS1r/MzbR1dGxiW1hRU1BYVUVGSklFRT06NzpAQUI6R0VARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXOGjXyXkZ2LfoeSgomGhYqDiH15hZeXiY+Dh4aHeoR5cXp7hIZ1eoaOjZ16jHB9b3B6f3J7gHGEh4Bujnp1d318gnV/fIeJsHRZqsK3jZKBcG5jPV5ocnBxcG54d4JlaW9ydXhye4uHjpOSm5agloiMk5ugm5+qn6GsnKKamp+mn5+smYyajJGSjoV9iIeDhYuOoJmTiIOHfm2ZeYSZhoiTjI6VjIZ7m4iTj66qlJWXnpimrrW8qK29xsvIycvLz8nD0srU1tjX2NfU29fT2dvWz9va0dbI1cyTdnhmZVlYTlFSXEdCRUlJPkE+PTg6PT87Pkg9QEJBQURBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fYSYjoeLfoaHgHeCeW57e4aCdHqSno2hdo92g3R1gX10gIRvgpCCb5KEdXyBhXp2h3yJuMalw8q4gpacj3hwZU5lY4J6gXeGopCLeXl3e4N/fIR2bZSWlJWPmJGDiY+XmpeXppyYoJefk5KXo52Zq5aRkYuOkoOMhYmIgYaQkZ6cmYmFi4GFl3uIiZ+XkImNiouCfKGIkIu8oZiTl5mcqKWlrZ6ntb7Av7jHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztzGhXh2ZGZiXVJWVVRMS0RNRDs9PTw5Ojw+OT5BNz4/QD1APjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVtodHp5bImNknd2eop8foB/gH2Fe36CkYqFhnqFiHt1fXVtfX2GfnR/kp2Rn4OSfIZ9eI9+eYuKb4ObgHSZhn2CioV8fpF7kKmOkMOgvYybpJx+ioR9iXKMi39zppqcmZSFe4+RiYRpR3GhpJ2Mi5CShYiLkZOVj52bk5SRl42MlZ+dlKGUko6OkIx+kI+Oi4SIkpaan5+JjJSRnZCCjH+mmYiFjoOFhICkhoqLuJidkZSWoaagnZ2do662urSrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbt3d2dWhnY1ReWVJPTkhDTEM9PT45OTs6OTk8PTZAPj49PTk6OjszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PERSU1JYXlVYZm1tbWmBjopxc3iKe3t/fYB8iHt9e4uHg351g4Z6c3p0bYF+hH13hpuhm56UkoCMh3+Yh4Cckm6IqYV6oIt8kY6DiYScfpqRiY2jop+QpK+gi5GLhouBkoZXcq2Ln6ycj4OYnJCQjluDopGCjZ+TlYyGiIySk4yUlZWQjI+KiJabnY+VlpGLk5SGgIuJko2Kip2XmaOihpOdlaCKioiOnJCDiI+Ag4eFpIWLkLOYnJKUl6GhnpmSm52nsbispLzBx83Hxs/Mz8zP18/R1K7W1dja2Nra19bZ2Z1tenJkZFpaVlFVVkNASUQ/Pz46NDk6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieGxifpKDb213i3h6f3uBfYZ8e3aGhYBzcIWCe3V3dnSEg4V9f5Kmop+mopeKnZCUl4qKp5dyirKNhKeShJmUhZqMo5agmJOJm56ik6mwoJGVkI6OiJWLbo23hJrEyLKcoqWbnZiWkbGQZKTNyJWOhoeJkJKOjZOUioWKioaWmpuPkJSTh5WYhH+Pi5mIjpCql5ekooiZnpWaiY+Gl5iKhY+NgX+Gj6WIjZOompeTl5mhmJ+Zk5yaorK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6AcHxlYFtcXE1JU1hBQkdEO0E+ODM3Ozw6OD02NDo6PDo3Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGPfXxtfoh4en57goKDf3Z2gIN8bW6Lf3p8eHh8hIeKfoujs6ejqrOil6efpaSWla6ig5G4lZGzmoyhoYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmZehwI6jybmrm6OmrZmSm52ynYWFqKKcmIWJiY6VjYuTj4iBhoeJk5iVjIuUk4aVmIaEkZCcdZGYspaWpKGHnZqSj4qQipebiYuWjod9jJieiZCQnJqZk5iXn5OgnZSem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LR1tjT0Ni6cHdzWl5TXlRPSElNRUJDRDU+Ojc3Oj88PDc9NDM2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p6boWGenyEeYGGgX5weHx+fW9yjXp+gnx4houJhoSSp7usqLK9r6Wts7Ooo6GwrIqatZ2iuKWVraSXqa24p6Wjn5qpl6mjrrCqmpmclJWRl5+Xmru7rsqhara4q7CUmZ+jrJOXvaNeqrKDioqNlIeQfI6OfYOGjo+UlYiIkpaMkJWNi42WmJOdmbSXlaudipyUko6RkoyZm4qSnpCLiZWfoY2UjZianZKcmJ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8fC0aDGyc3NxdfW0cvToG54ZlpYUVxQTkVDPjxDQUI4Pzg4NT9HPTw2PDM1MzQ1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEo/i4p+gXOGh32CiXWDioJ/bXx9fX9wd4d3joKHe42PjIaMmarCwK+9xruztMC8tK2rs7aMqLOtrb2rm7ukqK25uKunpqKipKKpr7Kxq52cpJibmJeeoqalkqS6r6nAvK2tsrmlpKh+iIacrbywg4yMi5CDjoORj3qBh5CNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpeOkaCRiZSbpKyUlo+UnJ2ToZ2bmJ+hlJqep6akoqSws6fBxsOvsLq2xcTCv82mx8THw7zW0c3EyoZycF9ZV11ZTEpBS0BGRz5BP0I7OjU+QT09NTw2PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRD9DRlxlR2BpZ1pdXJOMi4h7h4yHg4x1hpGKgW9+e4F/cX6Be5V6kpSUmJCTlaezxsm/wszCw7nHvLuvq7m7mLO3urLArqXBpKuwvL2rrqujo56nq660sKqcoKqcoZuWn7C1p4ujurq2wbysqZyypaSolIWOqcTDpIKLj4eIhIaVlI16g42Rj5GijIyUko6Jl5+Yk5mVmKagrp2MqpyOlo+SkZWVjZCVkY+hlIaXn6CynpSalJ+gmKSfmqCboJSYnqWjpqakr66lwMTDrqi3tcnCvrbPssS/xLyz0crIwrRydmpZVlloUExIQkxLS0pBQT1DRDw1QUQ7OzM9OEIzMzIyNjJBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWU5lXGZUY2qZjZeKjIiTkIaJeYeUkIFygHyNf3iHgoKQeo6hlqiampi6vcfIycHSycrCzb3Cs628vqi6v727w7eswqmss7y+qrCqpKWkrK6zrba1oJ+vn6WimKOzvambqL3BpLa3sKyTsa2srZeHmqmnpZGCjJOllYmBdoqReYWNkpCen5OPlIyPjZSjmZaclJSjnqqfkaWajI+Pj5WWiHyPlZKSopqVn6GctaWQnpelo6Klnp2mmJ6Wl5uko6mnorKsqLzAxK+lsrfMv7mvxLO7vsG4rMLDwsCXandgVlVaWUlKTElGRERIQ0JBREw6NERIOTs0PDdFLjEyMzUyQjI1U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+KoJOEeIV/lX9/kIiKkICWoZmupqSYwr3Hw8fF083Ozcu8wrewuby0vcu8w8G2t7yts7+6vK6vqKCpqLatrqmyt5ueraKnoZ6rt7iqpa+/xbG9ubSoqrW0rq+XlqWsqKCRjpKyxaeVjn2SlX2HkZmQqpmYk5OPkpaTpZ6SnZmUoaOinJifmIuMj4+eiFqQlpeSl6SZZZijn7OllqGWrKypp5ueppeYlpeVoKSopZ+2q6q6u8O0pbO1y8C4qrassru5rqi4ur24gWlsWFVTU01ESlJNSz9BSEVESEhIOTVFTTs+OD1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnBFaUlSZWJMRqWUm5eil6mWjZCDh6aTiIKHgpyDg5WQkJSPmqKfr76voca8xMTGxs7OztLKvru2sbq7u77PtcO9uLm3srG1s7izq6acq6y5qqmor6+Yo6+kp6SltcCwrKy0vsO6wLq0qLm1ubOvlqWtrq6ki5OVoY10wZp9l5mEjpaajLGVm5qVkpKamqWjlKCbl5qpnJyhoJmKjZCWnGBKlpyalZqlllWXsJ+vnJ6klK+uq6WaoKWUk5iYjZygp6KZtKmqs7u7u6qwsse/uaarq62ysqOhsrK0pG5rY1pYTU9KRE9PUFE7SEtJR0lDQz46S1Q/QTo9RU0wNzU0NDpCNDRNV088SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGYh4uolo6Ik4Wfh4Sdl46doZujpLXItanGucLDx8rJyMzNxr66s665ucHBzLXHusG5tbqwr6+ztaekm6q0taqppq2smqSupaSorLq/qKy2t77Cv765tLPEsrm9rKOvtay5poibl6abdr+fhJmdjpOZmouul6GcnJeUmqChqJ6nn5maqpmhp56YkI2RnYNudpKjmpWdop2QrrKiqpSoqpeqraOjn6SokZGZm4eUnKKelrGnqau5tr2zsq6+ubego6eopaacm62pqYtgY15eUElLRkdNSVZMPU1FTktMQkNEPFFWPUFBQkRPMTg9Nzc/Qjc1VFdOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH9lXkhFq5WboZ+7r5mUn4yTq5uRkpOJq42Gop+MpK2Uo6O2xr60wLrCwsfIxcLNyMG+ubKvuLTBwsq1xbLBvLW6qqmtrbCjo5iqtLumqaarqp2pr6ejqqu+vKitvbS4vse8t7a4wbK+wbSptbervqWPopeSop+8n4maoJmXnp6Pt5+pnKWim5yhmqiks6GbnaacqKmemZWPlJuLl4mMpKGUnaKdoLWvpaSTr6uZq6qdnaOjqJCUlJ+Cj56em5WppKGhs7S6ta2otbKznpyipZqXlJmqoZ51XlpdXElHRUZMUEhNRUdHQ1NMSkJFR0FWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5ZlxGQ0OccGJHRaeXpJ+ew62bl6WYmqmclpubj6qWlaemla2smaKrtsTCvL63wcLAx8O/zca7vbmysLizv8PItb+wvLe5t6Wkq6ytoaGaqqrFoqSpq6aerK+roqmov7inrb6xuLbHtrW5uMCyv8K3tbO0r76jl6OWlJuUrqCQoaOlo6OfkL2kqZ6oq52doJuln72imaOfoqmroZ2WjZWek56Hj4SNk5+koJ61rKWblbGnma+mnZmqnJ+NmJSehI2gmpuSpaSamKuxtbGqpaqtrJyYoKCSjpCVqJ6UZmBYX1xOSEdKTUtIRURJQT5RSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhWktDTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNDZAOTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm1SRjxLeGVhVkuimqOcnsWsoZ+snp6uoJKjn5aln6aqrJe2saOqs7bExL2/tb/Cu8jCvsrHtbi1tLCztLfBxba+sbi1uLSfpqyqrJ2dnqWkwaSfqq2gpKmtr6KmqL21pbG9uba2xLK0uLq/s8TBuLius7W1o52llZGUoa6gmaKeqKiro5rCrKmerK2bm52ZpqC9oZ2kmKurrKaimY2an5KfiY5Xf5afpaGguKqmk5i1o5+xoJ6arpadjZiTnYGOn5eVjqKjlpCmrrKrqaGhpaWVlZ2Yi4+RkqSeiV9iWGJfS0hKSk5FRUFHSz49SkI5OUpKTl1RUUk9TFZcOUZJPURNSThIYltMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtOnp+hmZ7DqKWitKKdsqeTq6Wgo5+tqaydu7CorLaxyMXBwrLCw73Gw7zEybyvsLatsLSvvsS0ubGwubSsmaiwqaqanaWhqMGsm6ywnKqjrrGppKi9tqe3u76vt8SttLPDwLPHtLu3q7O2raqippaVlKSsop+fmqirsK+vu7KmoKmomZmXk6KkuKCho5Ovr6ylp5+SoZ6Vno+QjZWemqKep7OmpoyYs5ujrpmdm6yQnpOVk5l/kaGVj42foZOLpqyvpaahnKCekpKak4WLkY2cnX9fZFpmZEpJS0pSQkNASUg7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TmNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+joJygw6mkqrOhpLSqlrOsp6KksqyuqbuxrbC1tMbAxMO1wMS9ycS1v8jBtKu1qLC4rL/Ds7eurLa5pZiqsquqmJ+ml627tJunsJutoK60sqerubOourS4srnAqreyxL61xqi/r622tamnrKGXl5GmpaKimJilr7iusrW2oJ+opJqVlZOkoLeipKWWr7Gyp6qmop6ampuWl6ifoJihnq6yoqaMl66YpKqXmZ6kkZqMk5eZhZWelIyPnJ2Ti6ipqqGnoJielYyOmY+BhZWIlJ53YmdcamlNT01OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzuko52ipr+nqK+woam1q526saujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDFwLmptqSsu63Awre3qayxuqGUrbGtspalp5GquamfprCdq6CwtLOqqba2rbyts7O5t6y5sMO7vr+mw6uwt66pq6unnpiZq6GioZGXobGvs6ywuZqcqaCZlpKXpqG2qaWjorCxtKyzqKyfm6Cgm52lnKKXnaOzsJqfj5Olmp+ompOinpSXiJOWkpWWnJOIkJqZlI6oqKafo5uXm5OGjpiLfYyWhY2ZaWdrYGxtV1BRWlVBQkVUQDs7SEE3OlhQZF5QVldFWV9dTUxSTl5LSj5aY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9qJ+doqq9oquwq6OxuKqltrSsoK21va6zuLu6vba2wMK/yMS5xMLAwLjEvcG3r7Wnq7exvL6+tKiusbaelqutqK6XpqiOp7ufpKyznqyisbCzrKq2tLW+rrCxtaywtLLBu8W3q72vsbisraqjsaaepaqfpJiQmZ+zqrOrqrOanaebmpWOoKaltK6noa2trrGntK2yqqScn6ijnpWhmZuotamWmZGRnZmdn52Pq56Wl4SUloqdmJyTiY2Wl5qXpqWioJ2VlZeTf4+UhXuOkoKLlWRrcWdvcV5GWWZWREJNWERaOUhCNj5cUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoaSstqWtqqavrreqr7W7p6axt8W3sbe9wcK1tLrEvszGucLAub65w7fAubG0rKm6trq5vrSprbC1mJinq6qsm6urj6u+nqyusqOrn7Cts66utrK5uKqurrGota+0vL3Ks6q2tbG0r66nobOgm6itoKaWlpqasqKtoKWvl6GkmpqSjqOmqLOpoaazrKq2pa+xta+kmZ2tp5qYn5qZq7eil5ORjpecoZeWlKuempJ/kpeMnZyZlpCJlJKemaWioaCYlpGTlXmKj4V7jIqCiZFqbXdtdXtgRWBrWUlIWlo9e0pGRDZBYlRpW01cYUpbXVpSUlJiYUxLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuK0IvSkdQW0gzY1lVS0SZl6GxqLGqraakr662qbe1uqSstLfJu7S6ur+/tLO3w8DMyLzDvLa9v7+3vryxvK2murm3tsK2qqywt5SWp66rqKOwqpSvu6StsbOnqKOytLGysbWxuLOprquyp7evtrTExraptrassK2pp6O2oKCnsaGklJyZlbGep5ygqo6pop6blpimpqW4p6OytayosqeusbaspZmgrKibnJ6clKm4nJSOjoqYm6KXj5iloJyUgpCUj5ybl5aViJaQmJqnnKOgkpaRkJV1hJCHe4SBg4uKbG92dHt+XEtlbVxKTmNcP2J7R0k4R2dXZVxMXmJNWFlXVFdUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLT1FTFE8M3JrSUNDkJmlrqWtr6uopbGztKu3sregq7W5ybmuwLvCuLOxtcLDzsXAwb20vb+/ur68ssSnqbmvtra/vK6qsrGboKexraalr6WdsrWsq7GyraqptLustbO1rbSsqquorKm5rbKxyMC4pbqwqayspaiusKalo6+kqZydnJuvmqOjoqORrJ6joJ+iqqamuaSstbalq6yora+2rqOeo6mqm6CampKks5mOiY2HkKGglIyUnJ+SkYONkpKcmpeVk4eXkpWZp5ufnoySkY2Qdn2OhXx7e4aJiHBycX18fFxTZG5eTllmXEZElltHO05tWGJbTGBiTlZWVVdUWWddUVJMY1paVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISis6SD8zQkhTLD6QaztHSI+cqquiqrGkqaWztLG1tbKyoquuvcy6rsC6x7G0rbTCw9HFxr7Asr7Bwru+t7vEp6y3q7K3u7+vq7Gsn6OnraqopLCkqrKqr6ywr7Cuq7O8p7exsqmzqaulpaOtuqyqssO6tq27qamnrKmosqWppKOuqqiinpyjrZWlnpiemaydoqepoq2mpK2ruLKyoamioKyvsayeoKeoqZmkmZmPoKaXhoSOiouen46KjJWbjo2Eho+Un5yUl5SGlpSTl6SbnJyKkpCNiX5+h4V8d36FhIVycXCIdWtfWmBuYlFzcVxLO4R8RT9XdFhhWk5jW05WVlVXUVxiX1NPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlVo+TEWVmK2ooquznKqqsLatubavq6arqr3Ju7C9t8KvsayzxMPOz8O+v7TAwsO6v7PIw6uut62yuL6+sqytq6SnqrCpp6ixpbSuqrCurbKxtKy0vKS3s6ysrqern6OesLerqq27t6W3tqSpp6urqq2hqaemsbKkp6WhoayXqqGVm6CmnqSiq6Sto5+nsbiurqOmopuqq66pnaKlpKSZoJqWj5ickoGCj4iFnJ+Lio6LmI2PioKLl6ObkZCai5OSkZOjmZuaio6Li3yGgYGDenR/goB8cnWLpId4al5gbmZXZYdjTj9nk0xFYnlXYllSZVRNVlVVVE9cXWFVS01oVlVXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxCKzpKT140RIY+SEZEl5KwpaOrsZirqq22rLayrKasqqm8wMC4uLO7taayr8TJy9G/wLu5v77BuMG5wMStsbWxs7q/vbKwrayqq6e2qqatr6q5sKixsq6yrbeqt7entLerrKSpqpyjnrOzqKiktLWgt66gqqiqqKunoKusqbm2qaqpqaKqoK2ckqqhnaCkoqajqp6dp7SvqKaqoqOYpaenqpyjpKOgmpigkY6PmI1+h4yHg52dhoOKio2Nj4uChZSimo2MmZCRkY+Tn5aYloyLg390h4F+f3h0gn55dn6Ah52Pb3FnZ3B3XGFziGtPXplWSG14VWRWUWNPTVVUVFBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EO5aOsaGmq66arKWtsLS1sKymsKqpur67wLCuua6ht6/Ix8jRwL69u7zCvbrDwL6/rrKysbW8usGxsbKrs6iktailrbOzubGjrreysLK7q7qvqq62rKqeqqyfo6C2raihn7CzorWqnqinqaOqoaKsrai9r6yurKKoqJ+smZCwoZiioKennqebmaqxqqOgraKhlKOjo6eYmqmlmJiYno6Kh5SHfYyGhIOjloSBgIuGjYuQg4OToJaIkJyQk5CNkZyUl4+KhYZ4dIF/fHV4eX96c3N5Z3+GpHVpXmRqgHRniIx9U1hwXkp3c1NkVFFeTU1SWmZOTFZZZFhGU2lSUT9DTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQTSQj7KhpKaspKekrae1s7GrpbCnqri+wLyvp7mqpq+wycfI0cK8v765vr+8ybrAuLCvtLG6u7fAsrO6rLisorSnp6yytrmzqKi9tq62vrC9p62staytnKmvpKClraunnJ6rs6W0qJqqp6mjqZ6kqaipvay0r62dqqSgrpybs6OVpJylpZ+km5qpq6afm6qim5OcoaWemJepqZKYmpSQioKPhX6OgoCHnY+Ffn2Lh5CNj4R/k5qThZKhjJSRi5GbkpWHiX5/cnt6fnxoeHx6dG9we2eEeISIZGFnYXGEem1neF1dVUBWemxUYlBRWEtMTnJ1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYkpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0FKN0dTYFUqPTlEVz4qj5SymqCgqaaloauluLOzpqqxp624wb21r6K4raiosMLJyczBtr3Atbe/uci1wrWzsrWyvLe5vbWtubW/raCzp6ursLW4tayfvr2qs8G0vKGvs7Wqq5+tsKOcpaiqo56bpbGnsKCfq6mnoamcpKihrbuorrCtoKujpK+en62ml5+boaOcn5yapKqjm5ulpJaXlZ+ilpuXpqyMnpGRkYuCioCAjoB7mZONiHt+i4aPjYuKg5KYkYaToomSkoeQmo+TgIh8eWx+dnl4Y3t6cW9vcXZngHNqg2dkZ19sco1sYWlvYG8+WnhrVV5PUFFKSU1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDFBaFkxM1M9ZV9ETDZLVmRPKjsyTlg9I5OZrZqgmKeko5+opLiwr6OvsKqruMG5s62fuK+rqLS6yMvIv7bCvrC0vbfEtsOxrrmys7+0ur23qLm3vaqjtKipqrGuurGqnLy9pbDBtbair7e1pqensbOgnqSlp6GlmZ+sqKmeoKqupqCmmKOpoLG5n6Owr6Gsoa2knKamqZqam5+klZydmp6pppecoKmTmZSYnpOZlqGqkZqIjo+GfYd+go19fKCMjIh4gouEiYuLhYeTmo+IlZ6IkZWCjJeMkX2Fe3NwfXF0dGB5eGhucHBuaH1xY3ttaWViXmSFfl9acmpxS0p+aFhaTlBMSkhQUlBJT1xfblNEWFpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo+L1hWNSiXnqeanZasoKChpKK4q7KltLSqqbnDtbOtn7etrq2wtcbIwbe+wbmxtLy2v7u+r6q9sLO+sLzCuai7uremp7WoqKuxrbOxqJu+t6atvLeyn7G4sKilp6+xm6GkoKSkoJebr6ehn6Oor6GfopSkpKK3sKGmsKufrKOvmJyqpKiel5qepZObnZqdpquanZ2ml5aYlJ2Ok5eiqKKQiIuPhXqEfoSKeo6WiY2GeIGHg4eLjYWNk5iNjpaYio+XfoaXi495gXpwcndvb3RfeXdka2xraGeCbWVya2tlaFlhc39eWmt1aVlHfF1bWE9OSkhIUlVGMjpeXmxQRFhWWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0JnW0hUQ1RdaEUuOzFeUywylqOimJWdqZ6moaOhuKqwobu5pqy9xLOwrqK1r62tr7TExL2zvrq3sbO5uLq4uq6tv7O0uK+/wbesvbq0paKzq6iqs6yusqOdwramqbe3q5+yu6mmpaivq5mjp5ylppSYobOmmZ6lqamboaCUpZ+kuaikp62mnqWhqJOfqaGhoZmbnaGSm52XoKKrnJuaopaTlZabjpOTo6ekj4iKjoZ5hHyFhn2cjImKhniAg4eIh5GFlZOSjJCVk42OlHuCl46Ld357bHVybWxzYnl1aGdpZ2VthGdnaGRmaGleZmJpZlplemJgUXNUW1tTS0lHSU9TQCEraV5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc3YU0nMp6kpJKOpaacnp6epLWtqKq6t6esw8C3r6yhta6nrq+3wcC9scG3sK+ytrW4t7Wsqry0r7KwvcC3rry8saSftqymprWpq6+hoMSsqqextKustLqeqKmrsaWYnaqeqKWSmqauo5idpKqhm6Kdl6Cdp7amr6mtoaGenaGVoKafoqCZm5qckpqelaaeraKYl5+WlI6VmIyPmJqnoJCHioqIeIV3goKCnIeKgol7foSIhoSQhJaVj4+QkZCRjZJ7g5WOhnN/fWd5cGtqbGd1c2tiZ2RidH9hZGVmZWlpYmdvWV5YXWxjYE1nV1pgVklHSEtMUlg+OWBsaUdCVVNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGNGJTWcpKCRjK6gmpigl6W0sqOyvrehscW7ubCxo7asq66pub68u63Asq+vrravs7myp6u5sa+us7a7trC5vqylnrWroKGxpauvn6XFobOlr7Kwt621nqyurK6imZ2nqqWflZynpqCZpKOpnJqgnJWcnq2wprmnrqKhmpqemJ6jmqWdlp6Ym5SaoZKolq2pm5SdnJOMlZmOlJSYp6eNjYqJjnuBdIKCipiFh3yJiISEioyIkoWTnJKSj5CRlo6Qf4GNjYNvgX9meW5oa2pncXJrW2hjYXJ/YGRnam5rZmpmZGxcbG12cWBTYmhjZVpJRkxNT1hRUFVhZYFUQFZTWVVGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUhjQic0k6Kcj46xnZuUoZqpsrCfucC2oLPBu725saa2sKmupbe5t7isu6+tq6u3qrS5raWytbGvqbG2trGztrunqZ+2qZ2fqqOqrZ2rw5mvpa+xtrWsrJ6xra+qopudpKypnJWcp6SdmamjpZWaoJ2RnKOrqqm6nqekoJeamp2hj2uilZiccYOWnKSAdpGrqJ6WlqGRiZeZgJeKn494hZONg21pfneEcmyGioZ9hIqGb11kYGeEl4Zri5CUknV3i4R/g5CAZoiAaHZpZlhdaXRuTlBqY2ZxgmZeZGZua2ldXV6JkIWIaE9LQzdEVGddSkhQUFVVS0hTYG90ZUVbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOXEtbZmI+RzFPYTwrL42kmoeVsZudk6Ccqq2ro73Fr6m3wri9vK2ntrGmq6S4tLKzsLmuqqestKWwtaKnuLa1qKestrOutK6zoqmftKueoqWcp6ibr76VqKewtLitrqSoraqrpqGfnKGoqJyXoaamnJunqJ2SnqCYkJ+oqqO0r6Oio5yWmJiXo4ihj5KahqGIlJ6hf6V/p6yelJOdk4iDcniMjoOHoHWIjWmXiWZ+c3mgb4iHg36MfH+hoJ+Zf3uHnnSIjnabimyHgoNuaWVke21yYlSGbWNtaZhxWGlwboZXXWlba2paiHBteXKHaIeEWV5GTT5GXk1FUlZWUVBSV1RnXUxZS1JST0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTlxMW2dfPUsxVV83MCiNppeEnaydmZmdn6uqqKq/w66yury3wL+qpLexqqyms7Wur7O2q6mlsa2ltbObrLW2tKanqLOxrbKorp6qobOpoKSkmqKknbC3laWmp7e9pqynqaqrp6aioJmgqKSamaejpJmcpaqWk6OclJSkpqahtqSjoKSYlZOYk5yIrpCYlYmpi5ijnIaxgKStnpSan5V5gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsHlobFixrm9labySvG5oem1wj9h+U2titrJ+gHGUdZqhqpBWTldhT1ZORlRbWFFQUotcV1tQQFxFUU5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV5nXD5MMVpcNDEhjqaTgaeqn5ednaWtsqmxwr2ytb+1uL/Cq6a0ra2pqK+0qq+2tKiopralqLmvnLKytqqlpKeyr62xpquep6SypKKhn5ecoaCxrpWfo6C0uqKqqKCsraSinZuaoqqgmJupoJ+YnaiokZynm5SeoqejobCjnp+jlpaSmJKZhbBraouNqn5nhZaHrWVxnp2VmqeWca6hpH53unxroY92sV9qtFulgGWckGBmgXpmf2l4aqllvnJnpox2sWp8sXh1kpRjbW2nblyEoEVpZ4eWRXWcYH1me6Omgllfi6tpgJJ4emqoOEqvW1dTbGNaTE9YX1xXVjtOiE9WVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWDMxG5KilYKtp6Weo6SqsbettL2+sLbFsri6w6epsKyvqamxr6SxurCkpa+zo6m5qZ6zsrCjpaGqrbCsr6aon6OisZyjnZiVmJ2esKiXnKKgtLOhqpuhrKyfnpqXoKOqnZmepaGdmqGnpJCdo5uYoaCsn6WmoJqgoZWVkZaRmoa1m7V5hamZtZl3h7Obt3+Tlperln5rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iHCOhoB/iJCXeIOCi5eMg6CPhbB2d59xa2psfItPpVhIY2OZfmNopV95cXVSkodeUKltY3F9hoBhnS9Som5bU2tnX0xLXGNYXFpCPrB3V1hBI01oRkJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YVU1MByWn5SIs6amoa6pqLOsqru2wrC8wq24t8KrrK2vrqeus6qir7yroqe1raOrtqWlsrOoo6Gdp6qyqLCopp6goLCWoJqWlpeaoK+jm5qkqLWuoaiPqaepm52WmKCmqZufnaOfnKCjpaOVm5+Ymp6jq5ulmpyaoqCWk5GTk52E1ZOZuXGwwn/GhnzWlJy7fJuWppCNnIykeo2GooGlgnqseY+dVa97iX6farlauXeFg32mgpN8mHqqeY6dkHuxbY6EdJC7hW6VUK+nxYpRoHpjYKpic3KGbJeHX1O1tMiFgIl8Y6QzQp11XVBqaGRQQFhmWWRhSkhNa0paU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdHOmFQNzIlnKKSmLGoqaWzqqW0p6S8t8GxusCytrW9tLansrGjsbOmoK+2qZuouq6jsLKhsrSxoaSenqepsam0qaWcnp6sl5mZl5eWmKKsnpuXqa2wqKOejqyip5admJyhpqKYoqGjoZuioqebnqCelZmbpqGcppSbm5+gmJCSlZCdiLJuaLVxq4hwjqZytHRztnubmKWNj5yNon6Pn6R+sHWDkdLRdVuufIV/pG6bqqZrhoV9rX2XmY97sXOTnY94s2WWdIWebp5mlFLJi1rCXJ95Yl+tX3ZzhmKXiF5Zyp1vv4B1TUu1U1XGZFRRamNlWEFPal9saVBVRkk5PVdSW1ZZSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxBTlRfZVA1Rz1hTTYyLqKdkaWvrKWpuqymtaWntru8sru/uLe1u7u0prW0orKyo6CssKWYp7qupLKxnbS4qqClnaGqpLKorKqkmp2bqZ+WlZiZkpOjqqGYk6ersKWhlpKsn6WSlKGcpKeglZunp6Kao5+umqGenpCWnKKenKWUnZWZop6VmZaSm4Wse3eodqOPi4epb62Kg6eEmpmiipKZi6J+kZeHroV/grNccrNSrn2CgqN+cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52d4dnmIhqXa93lZ+PeGw1eciusl9CVG9dZ2BFUGxfcG1WVU0uZWJoU1lQO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6NzegnZOguLGYs8GsqLKnqrK6uLS5vrm4s7a+tqa4tKC1raCgqayglae2rKixsauttKSbqZ+gqKK1p6aqo5melaWilJScmpKWo6ablJCnra+loJSYqZ+ij5GimqmmoZWapqmdnaSerZ2hnKCNlJ+bnqCYmJyWl6GglJiRpp2GqX19pXmhj5CDqnCtjIGmhpagooqXloijgZCHlKp7gIudeW+xWqiDgoigeHTYf3aHdKeBjpuNkqR8lZCfhHuyXpxkoH2ClG2TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZU9KQ6FcWk10XWJmTVphX3J0X0pVNUqaklhIRT1IRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxPZWRBJlVmWz8xVF9iTDdGSV9DMT03opyZmb+smLPCrqutqKa0sLixtr+5urOyuLyqu7WgsaWfpqenn5Sqsamwqratqq+hmKGgpqSkuqKjq6GXm5GjoJWVn5uVmKCgkI6LqbCvpp2Wmqemn42SpJiorKiVmKmonp+gpK2joZ6hjpWhmJ+gkpyXnJWdoZWWj6ubj65ucrR0qYx3iqZztHl0tIGTpaOTnIyJpIeOdbhui3uLomtrtlqhhmWXl2igoqdtlHK0dJOYf7JqhZKIrWp1tGGdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6YhnBcr1Y8nHdmVG9uLlunT2JSa2VibFpiXGBwfGNTWVE+Pm1vMkJCQD9NOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eOTFBOKWanJ26opyxv66tq6unt6m4r7XBtb2ysLu4q8G2qquhnaekop2Sq6untqOzqK6qoZecqKClq7mdo62clpmQpaOWjp6hnJien5GTlau2r6aZk5usqZeMlKaapa2jkZersqSgnqirsJmhopCZopegm5abl6GTnKmdlJCqmYfTk5q7dLHEgMOGftWWm7h5iZGYjZeJjKeHeaK2dH13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+ifox0h6t9vm5zvHSyg3V4gIptmohxbY2kdL1dd31bYXm8alpWW2l6XmlhZGZibXlvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9UXmBLNTtMWy02QDmnmZ+ivKKXscKvramqrLGoua+3xbG7s6+8sK7Bsq2mo5+koZ2ckaqlqrKktaetpKCWmquZp6y5naOtmZWhkKagk42co56YnpqQlpKvubCrlZejp6eUkJalnaStn5GgqKufnJ+ppLKeoqSOp6KUoZqbl5WkmI+woJKVqZ+FkJm2gJGRjbiVeIKTm7V3bmxuc295j4SOiXKewbu8mXqBsqhwgHSRuYN7hoaKho17ioaNl3yku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycHe2jF5/eX2IZ4N5bXlii6xwdIV/WFunaURkWVRmX2NdY1FmZnFtdUJNT0xEO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlrPCs6uqqKyrqruvscavtbSvuKe1ua6rpKKnn6CdmZSspK6qpraoqJ+clqCjnaykvqehqpeVnJGim5KPoaihk56XkpiUsrW2rJieo6Sii5KSppylq52WqaWmnJqhqaemo6ihkqyel6Kel5aYnZ6PsKmTnKeij2t+aZyoeYhzfpuOdXplh3u+v8C6bpKCcZSFX3JqWl2aiWFkh46Va2B/lGNtm3ZilGuAmpWUZV5fYnGaiWhyjHyGlGZqfnF0eX59Ylt4dIFoUFxug3x7impYbHmBcklKb4VwTnNNRFZcZmFMW1dmY15PWm12anJST0RFTTxISTxMPjIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPltPJz8yPqifqKHBpJq0ubajrKaup6i1sqzIrLC0rbakvrGzp6Gkqp2jnJqarKeupKW1qqSbmJWim6atqb6oqKWVlJuWoJqTmKWpp5GekI+YnLCyvqybp52noomTkaqbqKScnKyfo5qbo6esoZ+qopqum5WmoJaUnZ+dl7GlmaKomZyRnpyjpZqno5qdmpqakJaCaG59cXaRl5OQg4m0qY2FmJWOioyYloeTlYmDk5OQiI2RlJmTmZeaoKGam5Sfm42CeqSFbGl7kH2AdYmLgnKCeHl2dYqAe4lqc4F0g3Vkd312a3B6bF9iW29nTFhZZWpfV1lwem9tZlNPRlI5T1pOUk8oKztKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsbG3oKmms6elsLWqyautsqa1psCotKGepaacpZaWoKunraOkt6ygmZeWoJetqqbBn6uklpKcl56YlJSinp6jqJKQmainssOvmaucqp6Pl5apnqucnqGtmKGbnaKlr6WhpKieq5iXpp2ZmqGenpywoZ2ip5WYlJmUoaOWpJ+YoY6WlIuKjo+XrY97lZuCkYCJqaiFgJiWioSOn4h7g5CFhZqRhoWJlY6bl46QmJ6jlpmSkJyNfo1lobOuhImEd3uPin53eXpvZ3mQgYCJa3WBeYhyaXN/eXWDh4FqdGN4Zl9oZGNkZmpYa3txamtcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAs6C5r76sq62xsqCqprKtoqyzsMawq62ks6+8pLScoKeioZ2Zl6imqaakprO1npSVnZmZsKauvqCropGRnpqZlJKWoZyXqZ2FnamsorTHs5+ppKqWlpiap56pnKClq5Sfn52gqq6opKOroaybn5+gmKSenJ+csKSZn6iTmJmdkqWamamfm5dmg5J8ZX6Pmo9jeIxsaGp6kKOra2SZl35nhYplZWloeo2hjmpnjJeRondraouYop6YcmtueoSMhnlYZV2Fgl5si4qCdltoc3d3kYCHgm54gnh/c215hHN3iIiOg3tphVhdanNkXXOIaWt8cW1jXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS42Wk82KUVZL0RPMVlCOz8uPaWfury5r6yysKulqK2usKeurbC9saqopa2wsJ+tmKCknqKamqesnKyjpqips66elqOQo7CmtrmlrqOPj5qhmZOSm6CYmaaWe6Wsoqizw7eloqevn56VnqOeo52kqqiSn6GeoKqvqamjqp6nm6aep6CslqGcpbGkmJyrlqGfm5OlmJ+rmZ5+voOIcrRyhZ6FrWh3ucS4cZKho3ummJhzqoJ8y8DAu3GKo4eCnnyWmIiewL2Clp2djJzBwHuBepGMmsK/fWulsm+MgW/Ken+bd5GDjoB2eYF/eXF7gIZweIWMk3lsdZFiZV54Y15lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWorjDtLCvv6mplKOvqbCvraayta+qpqelsaugq5iboqCcm6qnop2roqWopaW0pJ6jk6aurLi0p6+ikpGZnaWSkaChl5ugnYemqqSrrb+/saGprqmXkp+eopmjpKqjk6Chnp2srqerpqOhpZ+kpJytqJGkm6mtqpydq52topeYppeipJidf86UeXqlgXqWlptfrY9djqiAoKF8p5WadKuCgK9eZIypeqiHhZ90l5KIs2OCq4agjY2zaoSuc3yWh7hhgq1Zo81ukHV723t/mXF+iJJ1f2V7iHZ2bH2Hbn2FkJF9a4CNX3Bqb2ZgX3hkW3FoamNmYFJUU1deSk9DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrcG/v7S0sLeYnpGjqqmttKumsq2srKSsprCqoaebmqaYnKKvn6GfqKejpaGfsKybnpamrq2wq6isoJSSm5+lk5CfpJedp6OeraOrsKi/xrOoqbGulpKenKKXoaqqn5Whnp2crq6mqaibpaWjoaqSrLOWpaKqqp6kp6eisaKTm6eboZuVlJGXoHCFjJh1hKiHcbB8nXKsfaCfgaWPnnergn2tf5xyrX6rh4afdpiSe3yXfqqIoYuRi5x9q3qIko+ff3qtVpzEeo9vksF9gZVtdXCMbWZ3ZYZvYXducm6IipGPg2yPjmRtc3VvYGZtZF9vaGpuZmNXU1xgWlJSQzhJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/Txcays6Cdo46joqKtrravqbGnqKqorqurpqKjnZqjlZ+mq5+ipqCpqKOfnrCtmJuWqKevrKinqZ6XlZqjopKUoayanaajr6yjrLWpuc2yraaurJaVnJ2imZ+urJ2WoZmenqqxp6mpmqmno6Gqmq+xoqisr6aZpquqq7Kkk5ikppuVkoWkaqR1iXqpdXqycYKliZiMcIefmoekX2BSq4R/roKbda6Cp4aGn3qZl4V7ZoCjiaSYhoGjfal+gZSGrl57qFWdopKBeqOfgHzDr8WMc6+0s7lxYqmvwnRojIyXjoFsmJFubHh4d25rZmRkcXBme2ljXFZfaVhYVExMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXVwKGZq6ihr6KfsLWwr6mto6inqqurqaSmn5uln52mp6aknayaoqyho5+vo56bk6qktrCuoKmbnJeVpqOQmqKnn6Cmm7Gmo6ixrLbIsrWprKqVkZydopmgpbSdmqGUnJ+nq6mirZmqp6GhqaGzraKqs7KinKqosLC3pZSXpKiZnZJ8qmyehId1q3l8sG6CpIuIn5aVnpWB0re0uMmAgbJeX5Spg6SHh6B6mJWZeKrJc5mjlKeokJKajH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI6PnJJ7b5WQfW55dHx6bVtlanJxZoFqXmFYY21cXllJTExLRURCQj1BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTAxrmtqbKurKWinbK5rKqhppuopqqsqaagpqSYq6OfrqudpqGsmp6ppZ2mtZ+il5Ooq7ayrJumnKCWkKWtkpqcpqKgqqatoaKnqbC0wrGyqq2olImYnaWboqSvppehlZmcpaWpma6crKalnaujtqygsbmwnpyvqLS0tKaWmKmkm6GPgp1OeJqBf596hKN8gqSEhqaenJ6UhLh7fHm5gn/MxsO2d5uhkIuffpqWl4l2n5eKpJikp36vhJuDnoSsfZmUYaVso3CPhZCBfZeEcqxgpHJxgJpgvH1SVXWOkaOWe3yRjodyeXKDfXBcbG53cmqAblpjX2huYmRdTExRU0FIR0ZJOTlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Gss7Smn6GVpa+urqmmnaWlmqOnoLKuoqmnsqCZqaSUo7Wjo5WXoqq1uaSco52jk5Chspmem6akoKKvrZyjqKK1scOxraqtqpGHkZynnaOknaWXnpiZmaWjp5itoayjpZeupbusobe3rp6etbO5srSomZ+xoqWfh4/RtcO3eYeOhZGTj4CmeJSid4ugkoWlgotxq4aFtG5yaZmjnJWJn3yXmYaHkHOugqWbooymipOciJSQmm1wslylc5N6nGyZf3uZfm6pYaJxcX+fYnOyuGh3j5OkmH2Ki5CIdnt4jYFsaHdpeHNufnRcZGRtbWVoYEpaV1g8SEY/VDNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krb+/vLu1npeopK22oaOZlaOpp66pq5mloZ6moaC1p6Kpp7CjlKujj6Sto52QmpqqtLSknaacqZKUl66goJ6mo5ynnLWZoKqjtavCr6mrqaKMhI+coqCmo5aampyYm5imo6WXqaasoaSbrKa9rJS+sK2fo7C0u6y1qJ2qs6WpmXuokX18sHeKgaSliJxtsm+gh617oY+DqJaZgKyJha6FoJSooaKXhZ+AmZWAe5J+q4CdmZaKqnedoI+Ik5J/ea9do4F8pqdknoB8l3Rrrl2la3GFmV1gW4ygbZSQpZiCk4uTiXh5gZZ+amx9Yn10bX95X2dlcG9nZ2hCWV9bPUpTMlQ4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVlFIRklKIygovJKahKnGw7bBtJ+araCuuKWjjpqko6Cvrqmfo56drZieuaCiq6CvqpquoZGqqaWWiZqPrrCspqCom62YmY+toqGdpaGZpJytl5+opbaov66kqaOfi4COm5ufpp6SlJmalJqapKOjmKeqqqGinqmovaSXw6yro6Kss7usr6iitbGqrJl2r36QipyFh326rYmYZLCMZZWtfaGPg6eWm4GsioSwhaaZo6GikYWgW2xqgbNgf617eoKAsWxnbZmXi4ixWn20W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqeZiZWPk5R5d4ybfGNzfGGDeHN/fGBpZnBtZmVlT1VjXEFUXj1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9KftLG3vbu0wbOjnK2mpbapoIuZoJ+ds7GonqKfnbSYoLOoqquesK2erJuVrqiijoibjq+sqKejqJmuk5qPqZqhnqWemaOipZieoqmyqLyvpaienY58i5uWoaCZkJKam5GZl6ien5enrKWjpKKkqbqeoManpamhrLW3rq+oob2vrq6XgamSo66Om4CGpJeYkICAuMO6g46dk4SnmJ2CrIqCr4mnnJqlq5F+1b3CqmKkv719fqOCg9e6t7WFk5KCnr2+hGqjgW+rhG6df3qysceDa6uwvax4d6K+u3SAlY2lmo2ZjpSad3+PmXhhfHljjGd4gXtga2VqaWJQYltTaVxAVGBCTCk8OjUvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0sb+6sr2zop2upqWzpp2MmKW/qbawp6G/pqaxm56xnLmon62upaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp6nm5qgqKKYnaCsrKm4raejmpeTe4iZkqabk4+RmJiPmJSomZ6WqKeeqaahoqu6nqnFo6GwpKu0tauxq6K9qrCwnHR2qqS3hWWJn3BnrI+Kj25vd6SQmqCBdbCalnCQjXKWqKObmK6kcmxtbGWKeG5tgplxgHppcGlmiZWVl3FoaYWGZ3CGZF2KY2lvWV1nfnimYGJyj5JvZmSAjZOOoZaVlo6Um3qFjZN0ZIZ3Z4xqeH54ZGxjZWxiS2VXSmtZOlBkRFAnSjorIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6ubKzqqmirp6ks6qYkr2xw8e9tKmev6uso6Cmq5+6o6StrK2ljpatqpCMhZWXrZ+lqqKfpKOgkYulkqeZqZmWo6qglpylpqevuaqrmpuTknuElo6ml46RkZiUjZeVppOdlqeima+mnaKsuZ+wwqiktKassbKrr62puqWwuZeLoamltZyJlqKYhqmakJSdkqqzmZujrKG0l6OhnqGinKGkoZWsp4ySk4yHkpyclJCZk5iQjpWEf6Sal5WNi5KSio+GhH5ni4B0g3Z0h4xxp218lZKUk4GBj4+PjpySn5SVlJ6AhZKLcGeOdm6Jd3V8eWlrZGRvY1VgWEBpWkdiYE5YK0U9KyYhNjQwLx8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbeurqKwpK2foLaxkI6qxLvEubepoaWdm6WdsKijtqedqbWmp5GYrKOLiImPnKeWrKOhmqienpOVo5eomqmZlKaho4+ap5mhtLmnqpiakI18gZSMoZSKlZGVkI+Sl6SOnZinnpu1o52mq7eor8KvpLinsK+xrqqrtbuisb6ZkqakprWikp2mno2on4yRn6OssJqhpLKqsZmloZ2kq56enZyXrJ6SmqKblJCWqpmNmJiWkJaekYegnZWUhZKMj42Vi4F+Zo2HdYd2eYiEdJxqh5GVlZKJfYyWkpKXkaCRmpSegoaWhXhxlHJ4iX5xe35pbmRecGlgW19ZbWJQYGRPWTlHRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OXlaSno7CzrK6jqaetoKi1qpCPnKOyuq2qq6GimXqcorCkpbGplpu4pqOUmKmcjoaKiZuikK6epJaooKGSl5mbrouqlo+omaiMmKiOnri2o6WYm42JeYGUjJuTipWRk5CNkZahi5ycp52et6N/g6+1orCwdKS/pLKgeHuhrLS9lneupaCKgKl+ZFxidp+Oo52Dln5ulLSco6ivrKRln6CUdHqal3CAmamYbICjqIplnKWckJeYlouSm5CEnZqQlIOSh46OkomFd2uQiHaHcXyGgYBhaYmLlZOMW3aVkWdoj4xxeaKWlmR3l4aAdpdogomCbnl+anBlX3Vva2tnXGVjYWFvUlo9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHRklLTFRVVVldYGhnZ1hRSTxERzw5VlJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqaWpraSnraSSlqq0rrGlmammqpdzi52vn6irp5OWuJ+gj5yknpB+iIiano2rmqSVp6KejpeRnoV0ro+IpZqokZajiJu5s6egmZmLiXV3k42Wk4qTkZCUjI+Tn42ZnqWYm7KWgIybtZ20jZKPvaehfqeie6SwuYKOj6efhIuFj7Gpr4yJlqKZeYCLrIacnaKoq6mIlYeZd6WbeoecgZengoF7nbJ6ioagl5mUmJaBkJaWhJmaY3mHkISNj5KLg25xkIh6gXGAgYZ/hnSHhZaSeJZok3SgmnR7mYKdmoSYfZGIgYKYaYyMhGp4enBwZ2R4bWlsalxkaWllcltcSFRMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZStxbyvoJWlp7Sdj4Ocq5ymoqCNkL6emY2fmqGQfIWOmZiIrJ2jlqGhko2UiYaAkaiOh6Kco5OWnYaeubGnnZqTj4VwdZCJlJCKlI+Om4uOkZ2QlZ6jlJ2rh5+0ibSarovKiKuvibeFjbCDsrCFqY6nmI2dfKiPcnt3m46llmeUpHm0jJ+fp6mTmcKCf6uImKFxnoCapX2XhZWygKF9oJOfj5iXgI6Tm4mYkot8hZOGjZSTiYNtc5KGgHtyhoGEfYV1hoKYgY/FZoCph4+iap2BnpeAmYCKjIOImG+NkoRnd3R7dmdodXBnaGteYm5sZmxYZkZcUUwyRTQ2TWBjNyY0PERHRDo2MzY1ODs4Pj09PkJMP05JSktDUFpdXFdiXmpsXFFFPUtNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5samrppqUnqKkqqKVpKm1oq9/oKacpZ6diZS8mZONoJGdj3mDlpaRiKuZnJuaooWPjHebnI6gkYiepJuVmJeGorispZmbjY1/Ym2Pi5OQjY+MjJeLj5GejZKeoJigp36hp4etnaCWrpCgnp2RhoKgjayxiKSOq5qMmn6idYCYk2uBqnRMqniHjZ2Sm6mpgqqrfoShe3qnaZ5/kmxnl4aYtomefm5gY1iDl3+Me2Rni3OZfXmWa118l25fU3GFXGBseYNgWWWCfoSBmHGnqmuDo25ypXCfgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbXRxampuXmpvbGtoV2dOXVhFOUA0R0ReazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpbXV9XXl9idmBNRTpNT01UYlxbZmZpaWJiZGFkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJadoLmgqqOmrJGhtryrrqKZlp+gpaurn5yttKGnkaCfn6abmY2YtJmQi56MlYt1gZSRjYqmlpaYn55+k4WGrKOHnJGKmKmYmZqRh6WwpqKVmYiJgGluiIeLjo6Ji4yRi4+RoIuSnZ+boaV/k4GPo6GUoHeclpCng6KogIarr4aleot9hJp9onBykoeWe52MeW2Hm4uZkZypnI+HnXyConN2pmaefnekXph7fZNzom6Yt7S6c5KIgYC2qGSBxrh7cJW2jHGAm6RjdKyrYH1qnbN+bn2Hg4+Ci5dxgKNsc6RznoJ9o16cmbOWb3uXnrN0cluesoJpYm9zdXFoblhra3JyZFtnXWFLRD1ENVFBWnAyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWVhgYHtkSUM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGNfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi1ra2gmqGboqOkq5uasayqkpegmKCkmZqUnqubi4iReIuFcICWjYqPoZCTlJ2XfZGKjqigh5iPipKik5uajIqop6Sej5aHhH5re4d+fY+Ng4uPj4mOk56BlZufnKCfi4l3nJiijaByoouIqYicp5GXqayArox9eqCZeaOTeIBzl4iLnH2Vn4abjpmcp4ejZKF9iZaQm4xsnmiajW6amXuAiqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z2iYqAnWiadYeTkpiOf55tmZBqpplcqH53u2p9qVqOhF2zZ1tucXh3a2lbcGl3eGFeZFZhQVBFTzdWQlJtNEpaWV5OWkRAMTUxOzs3SD86Q0dVP1hSWF0+RGJdVmBRYWR8aUVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkbnFgZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCrnaWbmqefnayZnbCnqp2Wopmhn5mWlqCjmYaJjWmIgHF7l4iMlpaEkpSYj3qKhJajnImVj4aLnZGcm4iPqKKfmoyRioCAaYGGeX+WjHuIjY6HjpWZfpKhnqCik5hyaJ+KoI+McJKMgqmImaCkqaKpfbCtpKK4l3ajs6Kjf4iUeJx6qpl/oo+enJiJmHKhfYWNsLV9a5qRoXh+mLSjo6uohJh7mnycmn5zqlpdb3uXi3ieYkx/e3uFZHqYQk2fWaJqcnyOboGKhJl2m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B8fW5mX2todXtiY19QXVZcVFZAWUVRZ0VSVlxhWF9JRD1COEBBOklFOExFWEFWUVpWREZhXFpgS2BtfXFFQzxVXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lZHZsXmVnZmxkZWxoaGtplJ2Bsa6ZhFNfoae0urOzqJqii5qpm5ynkqCro6Cnjp6dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGTlohygImSoJtykpCBiJmUn5qEjqibmZWLiop8hGyEhXGBoYx4hY2Ih5GXk3uRop+eo4iuhn21hI+enXumlnqpgpaekYuinn6naHdtfplzoHNxfJ2GmW+Sgq18o4Onn5uBpHBeqWh1o2NvpWGc0498epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKnvH93g21/v6aqtF6cb35yl2+Bc6JyXqRndKZgaKZsmtOYeoKbbnZ5l2ubeXaXcmyppWdfZHlwf4RrZ2ZjbXV3Zl9hUVplUFFhSFdJVF9XU1tkaltlUUVDS0xKS0JKRThQQFBNWFNYT1JRYGVlaVJkeHl3SUZFY11lWmhqU2loam9jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZmhsaJibf7CsVFxLfqmvsrWwsqOcmISXpqCgo4ykp5+XqImZl5iTmZORoJeOiIV7cH2EaH2Pg5OagXeRjo+JcH+Hj5OSbJiUfImRkqOVg46pmpOSi4WJeYN2iIBugZ6Gd4CShYeYoJV5kqKjmaCJs6Gitot6rKekrqVwqYCbkYaBnZN9pICimYaYcZ6Eoq2uiZeLf4ykjZWDr6KVdrW2tcmidJSLgp5hnpepbXmVhqCbdaGHd6B9kJaKgW9MZqOScJqIc6V7eXRig4JsfqBscmRgnHJ/dJdre2q0tbTGpnOYfnqcapqaq3SBmmxzd5dpmXl0l3FQRH2zXml1aniHZmtnYnN0cG1VXFJYZ09SaElVTFhSVVxna25VZ1dNSkFKTUpISk5BUUpQZGNpbWV0cnN+eHtudYl6e1RRT21eaFtraVJqaGlsZ21mY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinIivp4VmP5Shs6yvr7Wioo9/lqeioaOLpKacm6WBmpeWjZeQj5uTjoiDeWp5hmWDjH6Wn3l1j4iMgmmEhZKDjIWdjXqMipWlkoKXqJeMkYuAiXqAfYt5cI+ghnmBlIaIlZ6UfpOlp5yWloRnbnicbKJkfHGleJyYcGingpiNfKR6oJaDlnKfdoCJlJWPuW2PiqJifZmiloluc2qra3WgbW+mYJtpi5BploealXWigH2aX4uFjHVviGJooWWef2mbdXBkZ4iCbnKiWl9bY6FuXYmMcHt/dHJkpW54omRmp2iXcouYbqFvUoiPbqBeZKdUi11UmG1tcmpxgW1waGt4c2tvUVZVVWVZU21JWE9cSFhoaHNqWWtWUFJFVlxMWFJhVWhqXnd1enxwfHxygnt/c3aNgIN2XlFzYWZicWdQa2hoa2xvaGRnX11dXWBqYmlpdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqrCxpp+Lf5aqnJ2ki6GhmaGhgJWYk42aj4uXkI6Le4ZxgIhoi4p8l5pzdIl9kHxlgoeViomWmYJ8iIWWppCBoauQhZCKgYp9gICOc2mPpYR9hZOMh5efjYaRqaadiaZ4lpx+pYmWjLKZnpGDr5efpXmXiXqpdKaPhJpupaKMkoSMg7xtfKWvgoeGh5SXnaF9pntyqJSglmeefm+sY5aKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm9voJ6RlGF/q4uqd4F/jqefd599haSVnaBpmod1rGaerYy2c3a+jKOTWYOmjatgdXFzb3t1cGJqfm5nbFNVWVVgYFxqTFxRXEldbG12YFtxWFtfWmdzZW5vcWNxdGB3en55cnmDcoN+gXt7jIGCgHZieWRjbnNkUmxnZ29scmlmaWFfXlxhamJsbHpvXFxiaWFtaXdtZ2xuYpWmqpyBgJ6klqqqnqinrqOYiIGWqpmdo4mapJyonYSLmo+FnJGFko2MjHSFeoiDb42EfZeTc3WGcpGDbn+LkoaGlI99e4KFl6WNf6WljYCNiYSUdYKHkm9si6iAgouTjYibnoiLkqqioJCAdJSXiH6BeZSvpH+BnHGPhnmSjIWAe3KnjHF9fXqXlpuEjXh7fX2IlJWTi3eRmaChhHt+iWuMhVt5eXN5cGlufpKKcn90gY+Uk3GFg4JljX9fgYCMd3Z0lHVve29viW6Ehl53aXiOZoKDho+qnH90fZdqiYhvf3V8hHVtbGaMc3d7l3eEWmpXeY9obXdycW93eG9dbIZtaWdWWV5XXGRrZFVhVF5RX293eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV5gXV/gH+AeYuFgn17bX9sZHluXlduZ2h1a3hqaWlkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbmpp4uhopumpJmknauin4ODlqqRnaCImaaaqJiCgZuLfpaUh46KiYxygnyPfX6PhHqXjnRyhHCVhnt9kouGhpCFeH6AhpijjHunoIuFj4+ElYKGjph3cYSqhY2RnI+Hnp2Gipqon6Cqg4mOlZt/foqXraiQk6eQeHGek4N7k3B/qYZwfZVxam98gZ+Lf5GOi2huXYSMjJycoI9zloyIcXRrgnZ0gFlyboaRgn5+i2ldaWN6hYOIgF9peHucfIONg3aBh4NpeYyIa2JxcoN3X3KNgoqQqJaHZ42Pg253i4Jvg4t3bmRmY3mCepVaW2lmbXZbenh3dG1zcoJmXG2Ka2tiWVhdWVhrcVteYFleXWVyfXpzb3Rjamppe3xyend0ZG10aGx7fnV6fHt5eX+Afm+FiYR7fXN+eXJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyqsaGQo6Gan56YnpmooqF9gparjJ6Uh5qhkKSUf3uYhHySmYiIhoaKcn2Ai3aFi4GElopyb4BymIeDfpKDhIaKgXqAg4uan4+CpqCGeI2XiJWLi5yXhIN6rIGQl5mTiZ2choehqp+hoqOLiJObnaOZlqqiqKehk5yJmJB8eY+Phah+fpKRkpOcsaWalJ2PjbGSmISmjIyWnKCKkZyDiZKKa3yOdndlgoaQin2JnYSHi4+HiICFhJB3fHt1m6OJiIufi4aVf36NgoF2cXSGhX94iYiLkaeRhIeOiIOMkIt7hYmHjX91aoGDe3mZaXFoYHOKcH16d3ZvdnOBXF5vh2duX15ZWlxSZ3FVY1tbYWxodHt8cm5wY2ppaH97bXh+cGhvcGxmgHtygYB3f31/hHttg4yGfHp4fH56g3hOZHZqc25xe2VrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2InrqflqKhmJWZmJSYpKCden+YqY2ejIWfnIqdlnx4lIJ7jpmJhoOEh214gYBygId+iJOEbWt+epeHhIOQfoCGhIZ9h4ONm52RhqmegnKKj4WSkYuckX2NeqmDjZGXlY6cloWFm6afopqdhoOSmpmZkJmmoKaenpCXgpOLeH2Ij4WmfHyPkJGFmKmgnJOcjo2pjZGAno2JlJugg4+Xf4eOg3B4hnF0YX6Ej4Z1jJiAg4+ChoR+hYSVbnl2dZOjjI2Gm4WFjnWBjH59cnN8iYR7eY2PhZOokIeEj4KDiYmIdYSGhol6bWp9f3ptaGtsZl55fmd8e3Z0dXV6d1xgcH1tdGBjWlteUWZtU2VaXWFqaHV6fnBsbGNqameAf2tyf2tqc254boN5boaAdoKAfYV2coKNh357enx/e4KLYGl7a3VoaYNlamNgaVtjdWhvYnVta1RicXllb3l6cmVqbW2Lip+4mqGkn5KRlpeLmp+enXp3nKWQm4mGpJSKmJl4eY2FfImRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hoSHfI+Aj5ubkIemnH9vi4qMkoagoYqFjHynkIePkpaTlpJ2jKOgoZ2Wmn+BkJqZk42aoqKkm5iRnH+PhnqBhY+IoYB+jI2PfJekoKCSmY+QpoyPgZuSiZSYnH6Tk36HjoF2dIJwdmB9gI6HcoqWfIiMcYx+goWFj2l4cnmNmZOQgJh/iYxzg4l9fXF6fIyFe3uSjoSXppSMhpF8hIWGhHSAgYWFeGRxen54eXBramZefXNnfHV2c3xzf2peYHR2cHdkY1hdXlJqaFRlWF5gZ2l2eIFxZmtjbGdlf4BqbX1nbXBqfXeFemuLgXKBgX2BdHaCjIZ/fHqAgX1/j2pyg250aWKIaWxiX3FVdG9tbmB4aGxXanR2Y3R6enFia295iY2fs5KlpZyOkJiPhpygmpt7daOfjZd/jKGKiJqVeHuGh36DiX6IgoF/cH56dHWChX6JkHdnY32Gl4uCio14fYCNg3mWgJWXlY2Vn5p9b4uBkJOGpZuHjImDppWEkoqVl5KRdpCdoaGYlJh6f46Yl4+Xmp2knpmTlJx7kYeEeIaXjp5+goqOjHOXop2gkpiNj6GMi4OXmIOTlpp/mI18iY2Bd3J+bntkgHyLhnCGk4CQgmuHg4GAiYVmdm99iJOZjX6UeYyJfYGJfXxygHmLhnqFkouMmaOXg4SMd4eDgoF1en+Gg3Ned3d8c313ZmtjYH5panZzc3V9cXxjY2FzbnVybWFZX11aa2RSYldfYGhrdHmGcGJqY2xmaHyCa2h0aGxvaH98gXlsj4VxgIKCf3R8g4yBgH56goN+fJBtdYl0dG1limxqYmN1VoNpcG5geGdsYWp2cGV4e3lwX3FshYWQna6YpqiejY2Xh4WfkpaXfHaom4mYeZaci4yYj3h7gIt9fIN7gIKBeHN4eXN9gIN/iIqAZF59i5WIfoWHdH1+in9+l4SWk5aMo6CXfnGHe5ORiqaPjI6KkqCRg5GPk5eQioCOl6CakpCSdICNkpSJnZ2ep5mYjpWYdY+Qi22GmZCae4eIkIlvl52ZoZOVioyejIaBk5x/k5OWh5qJfIqKgXpyemt1bHx/i35uhZKDlHhvgoR+fouAZXNqfYGXmIWAjnSRiYR5iH52eIF+h4F9hI6GjZWlkXmFgnSIhnx/cXN+hYFsX3l0eHB7bmFuYmR7YW1vdnJ3d3NzYXZgb2x1bm9dW15dXWpdT1xXYmFobXN6iWtfaWVqY2h3h21mbGhpbGeAfHp3bpCIc4CDhH10gYaKeoN9eoGEfXyOcnmLeXhubIdraF9pcmOHaHFvZXZnbWxhemhqfHt3cGF3bYuBmZqqoKSonYqKkYaKnYqUl3x2rJeMlnyek5GWlIh2fXuKfHuAdnd/gG90c3pvhX2BgIl+fGFcfo+Rhn+EhHN6gIZ6j5GGkZGbkqSak4F8gXyNipKjiI2KjZeajYWRmJOVjoiIi5Kdk5CMjW6EkI+RiZ6ZoqGXl4mXknCLm4Vnh5qPlHuJhZCKcJaak6CRkYiKmYyCf5KffZKPk4yaj3uKhYd0c3ZrcW52fIt0boaRjpJxdIB8gYKIfGVxbXp+m5R+hYp1kYuCdYl6b4F/gYh9hY2Kho6Wqo57iH1+ioV3fW9tfoOBYmd3c3RuemFdb2BqdF5wanp5eGxycGV5XW1sc21zWFpdX2FqWk9XV2RjZnFxf4dlXWloZ2JncY1uZGlnZWlngHp3dW6OhXOBgYN8dYKIhXiFfHeDhXqAind/i3t7cnmDamtfcGhzf2txbm1xZ29rZXtibn95d3BrdneJf6OYoqihppuIjIqBj5yGkpt0gKmUkY2GoIyVk5B/c3t2hXd4f3Jze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYB/f6CGj4qRnJegk5Z3iX6AjIicnYmPhpKXloWIlJiPlouLjI2MnYqOkIRuiYuPkYqclqGcmJaGmIlshqWFZ4eei5J/jISMgXeTmJGdkJCIiZSNfn6QmXyRjZCOmpJ9i4CDb3ZwbG1vcHuGaXODjpiKcHeAdYKJg3lnc292gpuPfYqFe5WSe3eKdXGLfIaNe4uHhYqPnKWJfIR2gYp/d3dsaX6Af1xxcnFvb3dZXW9gb2peb2p8enBtbWptd2Bwb2txbVlYYGFhbVdQU1llZmJ1b4SCYV1rbWRiZmuSbWBmZl9na4F0cXJvi4B0f4KAeXaAi4B5hn93h4Z2g4V7h4yAe3aKf2pxYnxihXxvcGx0amhubHZ3X3F+eHt0dXN/gn6llZqtn6eWhYyDfpaUgo6edIqfk5KFipqMlY2LenJ3dIJwcoVzcXWIbG5sdW2Id4N9f21uVVGBq5SHgniAdnKCeYKggpGBkpGXm5GYd5F6goySpJqTjoiUmJKDhpaYi5OLiI6PiJ6EkIp9c4uFiI+InJmfm5aVgJSAaYeeiWiHoYiThZGEinGDkZePmo2PjIuPjXd7k5F7jouNkpaNfIh8gWt3am5rbG16f2J5fo6WgXZ6gXeDjX16aHVtdYiXjICJh3uUkXJ7hnF4jnuLjXuJfoSOkZ+fhn19eIGKfHZvaGp/gHded29ta3ByVV1uYXFhX2xueXBncGZmc3VocWxhd2VdVmVgYHFTUE5bZWRceHCIe15caHFiYmVlkWlfZ2RbZ29+b2txc4p9dnyFgHV2f4x5e4aAeIiDc4aFfoyMhHx5lXhmcWqDX4d+b29remBpbXR/dF9zfHiGd3NzhXx5oZCasZyljoKKf4KZiH+KnH6KmJKOhIiXjo6OhHZ0dnOAcG+Fc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfG90g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYmcf46BeHqMf4iMipybnJuWlHqOd2mKk4ltiaWGk4mYg4ZjjJGYjZSJlYuMiYtwepWJfI6Ji5ORinqFfH9tfGVzb2tsenlcgHmPjoB7fX5/ho57eml1a3SMkIqDhoZ9lo1sf4BwgY2Ajol+hHuDkZabm4x9d3iCj3hya2VufYFqaXRuZ2hzbFNeb2RwWl9scndma2tiZ3hzb3FjX3dgYVVrX151T01LYGVjXHlxinRcW2V1YGFlZI5jYGZiWGlyc21rcXaLfHR5hoJ2d36Lc3+GfnqJf3KJh4GRioh9fpl2ZXNufGWHf25wa4Baa254eXJgdnp7jXZydop2eZ+Mm6+boJCChXiIlH57iJyGhJ6QjoWMl4STjoeBdHdweXBuhG9tbn5yY2R4cHxuenxqaGxjpJrB3K7vonNrdYN1hKGEkW6Vj5Sfk5qBkXCFi6OXiY6VipCdlYOAlI+EiI+AkoqKl36He3V/iXiGhY6bmpeZj5B2i3dwiIqMfoylhZKKnYWGXouUl4mOiI2KioSJbHyXgn2IhoqRj4Z2hX5+a31jeHRqb3hzWIh6kYeFen9/gIWMfnpmdGqBi4+LhISAjJiGbIJ3b4mSg5GFf4J7gZGXlJuRdXR4hox1cnBlc3eAYHNtb2FodWZSYHBna1VfbnR5YXJjYGl9cXJuW2NyYWNWblpcd0xMTGNlYV12c4ptW1xkeF5gZGWEX2NjXllpcmtua3J3i31zd4SBeHh8iXGDhHx9iHt0i4iIlYaMf3+Yc2h1cXlsi3tudHCAV3B5dnlxZHZ4hoxodoCJcYCdiJmnnKOShHxwjJR3eImcg4SfjY58lYx/mYeEe3J3cHNqb4FraWx8dF5geHZ7cHR6Z2BlfOvatcnD3IlzbHOAdoqaiIxpl4+OnJORgYhwhYigjoSKlYqMl5N8jZKIgoiPepGLho+CgHd4g4Ryh4KTm5aUmIaNdod/cYaDioiapISVjZ+EiWGDlY+FiIWIjIaAh2h9lH99goWJjo+CcYZ/f3J3Z3ZyaXR3bFqMfZKChX2Ag4CEioJ2YnVtioKRjIN/gJOSfm6DbXqIkYiThX2CfoGTlJGYim9yeoyFdGtvaXB2fl1zaG5caXVfUmRxaGZTX3B2dGBvYFxognFyaldnaWNpWG1XW3RMSkxlZl5hcnOFaVtcZXleXmRnemBkX11Za25lbmp0d4p+c3KBfnt2eoh0hYN8f4d2doqFj5iBjYJ7k3Zsd3Z5eJJ1bnd6fVh5hXF/bmZ4dpGCZHaGhXGKloaZoZuiioZzb5KLcnaNmnyJmYiJe59/g5l/gXhxdG5vZHJ+aGZsd3dbX3h7enFxf2lhZ2F/1baOkaZ4bnF3e3GSkIyGapiNiJuQioV7aIeLmYaBkpCGhpeNe4yMgICJjXuQjX6JhXp1e4N7cYaAlZmOkpSCiXWEiHiFgYyVnqCHlpCgf4hhf5OHg4eDiIx/f4JmfZGAfn+CjI+Qf22DfIJ0a213dXR3dmtjjYGOf4R/fIR/hYh/cGB0coZ9kI6DfYCSinpxhGd7hYyIjYR8hX+BlZCSlIVvcHmLf3RsbWlqd3phZ2ppWGt1WlJpcmliUGJyeGxiZV5aaoNuc2JcZ19lbV9uVFpvTkdOZmRcZm5ygGtaW2NzX1xja3ZkZV1dWmxsYm1qc3aGgHFvf3x9dHiGeIWDfICIdniJgZKVe4mGdomBb3h5e4OSb217gHZeg39zgW1oenOUc2dzh3xykpGEmp+boIaGdXWUfm11kpZ9h5CDio2ZfIyadn52cW9samF0fGdiaXV5WmB3e3ltcX5lY2hoV52PX3Jzl7zEhHZxlIiPfXGWi4abkouHcmqIj5aAe5SMgYSajHyKhXx7iYt/lIh1iYZ2d32BcnWGgZ6UhZSPg4NygIp2hn2Lmp6ah5WPnYGJZn2Tgn6EgoiJcYF9Zn6MfHl/f4eLj31pgH2DdmZveXhzd3Nsa46FioGKgHiCgYWEgWtfc3l7fo6LhnyCkIF+c4JpeoSJjIaFeYR9gpmNkY1+bm17iH12dG5mZXt0YltwYlducVNTbXJoYU5mdHhmYF5cWW+Ab3NZZWJdam5gcE9Za1FEU2dgWmpubXxuWVtdbWNaYnB2ZGdcXWBraWNsanN2gYNwbX98f3R1g3qDgnyBhXZ+iIGWkHiEi3SBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0a5ONhZ+YoJmEiG59jHZpd5eOfoCJgpSXiXmPlW96c3BsaWRgc3poX2Vxelpgcnx5Z3F6YWVlj7Gyd0tiWqXZ0JZxe5CKj3d9k4qEmJCLhW5rhZKRenmShoGEmIp8hn94d4mKhJaAb4uIcXV+emp5hYOlkISTjYN/b3+Ed4V6h52alYyUkZWFiHB7koJ8goKIg26Ad2iAhHhyf4CDiod8ZX1+hHZjcHOAaXhwb3WZjYaDinx2eICFeoNrXHJ/c4KJh4p+h4p7iXKCbnKFiI+GhnOEeoKajY6FeW5vfoR/dnpkZmh7b15YdlpXcGxOV3FzZmBLbHd0YV1bWll0fXNvV2ddZmpyYG9OV2hSP1hmXlpwa2h6cVtaWGtlWmNweV9oXF5lbGhla2lxd3+Ib2x/foB1b4J6f4J/gn92gYSIl4lxgo1xe4Z8enmDk4x1anl+a29+dH99b3J7epNwb4F+eGeSi4OhmZyRgoVmhoNvZ3mViH1+hIGYiYF8jYxoeHJrbGZfYG95bV9ib3hcZGuCemFxdl9lZdTqvYsyOj6Ljn9xeIWHjY11gpWMfpGMi39tbIWMjHV8j3+FgZWIfIJ4bnaHhIOXd26IhWx1e3RmeYKDp4uCjouEfm6AdniFe4ieko2Rk5OOi4d/e5KGd36DjIJrf3JogH54bXx8goqDd2F5hIFxZHFofm51cXWCm4uAf4WAc3V+gXOBb1xuf3V5i4SLe4eBfYh5e3JtiYSRhYxzgnqAl4yMgHVta3aAgHV0W2dndW5XVntSWXBkS1pycmVbSXB4b1xbW1lddH50aFliW2dmb2RqTVdmUT5dZVxddWVgdXBaWVRuZFlkcXlaaF1fZm1naWtpcHd9jm1pgoR+eW6AfHyBf4J6dYGBjZOEcICLbnd9gHt7h5KJf2h6fWpze3KFenN3fn6MeniEfXxrjI2Em52WjIGAbI19a2h+jYt6fn6Dk4J+fYqIa3VxZ2hiW2Jnc29fYWtzYGhwiHpic3ReY2SboI9uXDVar7V0aYCIfJKGdYWVhXOOiol2cGyFg4d1eYl4iXyTh3l+cmd1iX5+mG9xhn5odnluZnmHhKSHgIaMiX5uf3eBgn6Om4iDlZKZiouFiXyPiHB6fYR7aH5saoB7emp6d4KHgHJgd4F+cWRyZ3aCbXV7hpWRgXyCgW93enx1f21ZcIB3dY2Dh3iIdoOJe3l0b4uBkYKGc39+f5SJintvbmptgYF0bVxmZHJwUFp6TVtvXE9bcm9kVUtzeGlXWVlaYXCAdGBdXWBnZGlpZk5ZaE1AYGNbYHVhXXVsWFdTdGFaZG9yV2peYmhrZ21saHB3fJNsaISKfHxwf357gX+CeneAf4qLg3F7iG9xd4N/e4mMj4NqfXttd3h2ind8eICBh3+Dfn56bYSMiJijjYSDenWLeGtsg4eQeH16gZF/f36Kg3BycGNmXllmX29vX2BncGZqb4l0YXRvW2FkanZ7gL+cpqTIuHGFg3KSfHeGkoJzkIuHcXJvg3uDdHSHdIh3lIh5eXBjd4d6gJNpcoR2Z3d1Y2p8goidgX9/jo99c4B1hnqBk5GEepePlpCIgol7iIhreHl+dGd6aGt/eXNpenaAg31oYHeHfWpqdGh7gGl2gYyRlH56fn5wfHZ8dH9iVnh+c3OLhYJ9hHGHiXh5cXGEg46Af3p+fXaPhoR3anFpbIeBcW9cZmFxbUlkdUtdbVVTWXJuYlFPdHhhUlhYXWFwgnNbYV1oZWVka2RQW3BJQ2NgW2NwXl13aFVWVXZdW2VuaFZrXmFpZ2Vubmhwd3qTbWmIjHl9cnt+eYKBgXx1fIOIhoNwd4RybXeCgn6Ji5N/cIB7d3l6gYt0g3h+gYGChHqAdW9+ioubnoh9hXp3hXtndIWMj3l+f3uIhYN2j39nb25fZFxYZVltcmFgYHBsa2iJbmF0aVleZG6Ad6naqseGh7JxiXdvjHR6hY1/epKJf3RzdH53gHBxf22EdJSFeHVrYHqCeYmPZnGEcGd2blttfICQk3+AeZGTfnl8bol3gpKNhXWXi5KPh4WFe3+EbHR2fm1ndmRte3VtaXd2f398YWJ4hnpodXVifXtndYaOjZV7dIB2cYB7fW2AWld1f3B2hYh/gHptiYZ0emx2gYSFf3x+eXx0i4J+dGh0ZW6Kg2xzWWhec2RHbW1LWmFXVlV3bWJQUnR2WFBWWF5hcYRvXGBjbWRkXm9jVF1yRkJlX11mZ11be2JRVVx1W1tna2FWal9gbmVma3FocHZ4jnRrjo11fnZ4fnaBg4F7c32DiIeDb3KAdHF1foWBiY2Ke3d/d4N7fIWHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN4Xn2FmIt4hoN0hYaEd4l6Ym5sW2JbW2FWaXNjYFtnbm9mh3FhcWZXXWNsf3zKzoe5oWptbYpscYNxe4OJfnqQhHl4c3l1dXtqbHZjhHWSgnZvZl59gnqLimVygmtqcWNYbXqFm4iCgXOXlHh/fW+JcoSLjYlzmI+RiYaLg3t5fXBwb3xmaHFibXhxamtxeH18el1leYB4aXZ4ZoJ3Z3SHjI6UfXKHam9+gXlvfV5Zc39udYGLfIJvcIqAcXdpeICCgIJ3fnN7dYd9e3Nnc2Fui4FrcVdpXXZbR21qTFZUXlNVe2thT1R1clBRVFdeYnSFaV1gbGpmY1pvYVhjcEdAZ1xgZV5cVnteTlZlcFlbamhdV2hgXnJma2dxZ3Bzd4Z4bpWKdH96eH55goeAdXF/hoWOg3Bwe3h2dXqGhYeMhXp8f3SLfn2GhISHf35+fYd/fHh2eHiRk59/jH2LbXV/eGSChpWFc5GKb4WFgXqDdGNuallfW1xdVGdyZGBYZHFyZoFzYmtlV1tgan93vq57oLZuYnOGaHN7cXiBhHp9i353d3J2b3t2ZWpvYId1joBzamJef3h5i4RmcX9oa2taVm93iaOBhH9xmZNygXl2hG+Cg5OJdJaKjoiFiYV9eHRxbmh4X2psX212amdqa3l3enZaZ318eGVzfm6EdGV1hY2Gln9wjGdreoR1bnViXXF9bHV9jHuCZnaHfW5xaXZ/eX+Ac35te3yCe3hxZmxibYl9bG1VaV92VUppak5RTmhNWHtoYU5VdmtMUVRVX2Z1g2ZeYHFoZ2JXaV1ca2hKRGpZYWRWWVV5WU1WbWpZXWtkXFllY150ZmxkcWdycHWBeHCZhXZ/fnd/fIWHfXVygoiAlYNuc3l7enNyhYeJiIN5gX11j358hIqOhIKDen6Lg3t2e3d3mp2XeomChml2fXtsg4SSf3GOgXCFgn6Bf3BmbGdYXVtcW1NkcGReV2JydWl1cGVlYldcXGiAcG9ygHOJZGR4fml0dXNygYN3gIN4dnN1bmt6cWJna2eGdI2DbmZdX31we4l/aW15Z2pkVVdyb42mfIR7dpaRdH1zfXtvfXySh3iafYiHg4aDfXVvcWxndFxsZ15sdGRnZWl6b3tyWWeBd3VocIF4gnZid4WLfJSBb4xqbXuCcWdzZmFuemdzeIt8fmJ3g3dqbHJ2e3F7enR+Z39/gHl3b2RmYm2Fe2xqVWhib1JKaGpPS05vR117ZmFNVXRjSk5TV2Fqdn5lXWdzaWZgVmNXYnBdTEtqWGNhVVRVc1ZMWHVkWV5rYFxaY2VfdmdtYnBpc29yfnV0mYJ3f4B3f3+GhXp8dIKEfpeFbnJ0fHp0cYSFj4GAeot1dJB/fIGVjoCFhHx9jIZ7foB2e6OlinmIhYRrdXx6dYOAi3puhHN5hHyBg3VuamhlVl1bWlpTYm1kW1hhc3tpaG1pYGJXX1tqgGprb4Bna2BoeXhqc3RzbYOAen98dXRtemhqeWpfZW5ogXaQhGhlWGJ3an6He29qcGdmXVRYb2eOqHeBenyQjnp2cX9wdHd6kIF5lnWGg4CFiHZqcXVnZ25bbGNdbXJfZ2FqeGh7bVtugnJ0am+Bfnp3YXeFhHiPhXOIcm95gHJjcWlccXhkcnSJfHljdIBxaGp6dXJteXh2eWSEfH95d3FkZGNufHxqalRoYWVTSmtnT0dRa0VgeGZhTVNyXUpNVFpla3Z6ZV5tcWlkXVZgVm5uV0tTaFdlXlhNVWxUSlx5X1tea11dW2NlYHlobGBvb3VucHd1eph9dn+BeYCAh4Z6eHmCfoGThHF0dH95dnSEiJF9gHyQa3OVgHuCn4V+h32AfoaCgIp7doSrn396iIeDa3KBeXWAfoB0boZufH9zioBqb21kZFhfWllaVGFqZ1taXnSCaV5tbFxhV1xcbIFlcnR9aWlca3Z1Z3N2cWyEe318eHVybHlnaXhmXWVzZ3p3k4FjY1RlcGeChXd3Z2lqYFdWWWdjj6dufneAi457cXJ+aHpwe459eJByhH5/f4ZuZHVyZGdnXGphXG9vXGdfbXVkemhddIBvcmtyfH51dmJ0hYt7iIeBgHhydX91YXBtW3J0Y3FzhXx1ZXOAbWFte3Brant5dnNmhnZ7e3ZxZWJlbXJ9aWtTZ11cVEtxYlBGVmFHYnZmYUtUb1dKTFhYZ2t1emRlbnFmZFpXXVh2ZVRKXGJXZ1dZSFdlUEhieFpdX2xbXlxhY15+aWpfbnR4bXBudoOXeXKBgHx/iYyGfnV1hnmHjHx0dXWCeXp6goyOfX6EiWlzloF6ip19foV6gXp/fIaIc3GPrYx7e4ePfWRxh3lzfHp1cm6FbHt+bI96YnBvYmVdZVZZWVdjZmtfXVxyhWhYcG5bXlhaXGx7Y3B3dWxiWWxzc2d0dW9sg3h+f3h2bW50ZGl0ZVtndWZ2dpJ5X11SZmZqg4J0fmJkaVxUV11iY4+kaHh0g4aReW1we2l5bnyGfHaKc4F5fHh/aGR2bGBmX15pXlxza1llXW9vYnplW3d8a25ub3h5c3Vkc4OSfoeDiXt3b3J+c2J4ZFxwcGJxcoJ9dGdygGVebndpZWh6fHVub4J1dH10cmJfZm5ufGRoU2dYV1NMdl9QSllYSGJ0Y2FJVG1TSk1aV2lscXtibWxzY2JaWlthd1xTTGNdWGlTV0dZYE1GaXVYXmBsW1tfYmJchGlnYW54eWxvanaBkHhtg35/gZOIhIF2c4h0jIZ0cnZ1gnd8fX6MkIB+k35wd5WDfJmSeYCAeHp+gHSIg3RwmKB6e3+JlHhjdYd4c3d0a3Nufmt4fHCRcl5wb2BnYmxUWlpXaGNtZlxbcYllU3JuW1pYWGBsdmNpdWppXlltc3Bsc3NzaYR8fn57dm5ubGRpcWNba3JkdHaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEkXRsbHtucHF7fX1zgXeAc3p6emRldWhdYllgZ1pedmhXYl1vaGF3YFt7dmlqcm54c3J1aHGClYOHfoR2c2pxfW5md1hdbG5jcnOBenRnb35bYHByYmBrcn5tbXV/c3F4a3BhXGVsbHlgZlJlVFZRT3RaUU9YUUhjc2JgRlVqUElQWlVra2t8Zm5vcWJbWlhZbHFXUlBmV1ZoU1RGWlxOSHF0WF9jbWNYYGBhXYtqY2RteXhrcGl1eYZ7a4N9f4SafIKEeXyHbo+Hcm92en10gYJ8i4+Cgpd0eIGThYGfiXWBgIF0f4Jxh4J1b6GWc3uGi4Z6ZXeKbm16bmZ3cHprc3ZyjGtedG5hZ2VrUl1bVWdhbGtaXHCMZE9vbl1WWFVnaXRoYnRlZFxYbXRtb3V0eGqGfH97h3aPc2Nka25hXG5tY3N4h2taVFZjZHh9fXGGXWNfY1NaX1lilZVjbnCDhYp0a2h8cGZ0eHV9bXp1dnB6f3ZfZXJjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXNxdHB1dmtthJOBiXuFcXNncH5xc29UXGdrZnF0gXdzY212VmJybFtfcGd+Zm13fnNzc2ttYFpkaml2XmZTY1RVUFNsVlBWU09HZHJfYUVYaU5IV1RWbWhkfGlreGtiV11VW3RkU1JXaFFYZVRTSFpaUE13dlpfZWxpWWJgXl6ObmFma3l1bm9pdnZ/f2yDf32Hl3uAh4GJfmuTiHJndIB7dX+CfYiOf4uTcnyKkYWHn4Z7f4aMc4GGc32Cdm6ki3KBjYt2d2x6jGBke3BmeHJ4bG1xdoJnZHtsY2ZnaFNfXlVnX2xuW15tjWhOaW1gVFZTbmd0a2V4ZGRcWG9zbHF6d3Jsh3t/dpt6eGthZWxtXmBvamVweX5nWlZYYGx4fHtwhF9iXmdWWF9XY5uIYmtwgYd9eGxreW5cd3Nte2p2dG9wfIBzWGltXlhcVWFiV2RwY1NeYWhhYmxaYH5rZmtzdm9td3dsaYWMf4l7iG1yZ3F9bnNuZFphaWlvdIJ0c15pbVNlcWVVY29je2Ryd3x3a3Bta2BZYWZndFxkVWBVUk5XZFJOW09PR2RvXWJGWWlNSV9LWG1kYHhpbn5kYFVfVF11XFRTYGZOXWFVU0pcWVBZdHVdX2VsaFhjYVtejXFjZ2p4cXNuaHZ0eoNygoJ6iI5+fImHjXlukIp1bHOCdH9/h4WGkoSVj3l9jI+HkZuEgHyMhXOAgXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjYyMjIyMjI2NjY2NjY2Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjI2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERBUsza2NjY2NqwnaCgoKCjgGNnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTJG2Orn5+fn6bago6SkpKd8XF9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaSlJSUlJSUkI+Pj4+Pj4uIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSkpOPjoyOjoePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYuKi4uLjIyMjIyMjIyMjI2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQkIeJi4aMhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCNhIqLho6FjI+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkYmCh42GjImJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjoiGh4aIhomPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2QjoyKi4yJjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2hoZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj06Ojo8Ojg5ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/QD48PkA/PT09Pz09PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjo+PD89PDo+PT9CQkVAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFDREI/PkE/QURFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpISUdISElHR0NERUNEQ0FVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKS0xKS0lIRkVHTkdPbISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTkxLTUxISU9wcICGhYSEhYaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXp7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lJS0xPUVRPWGxzeoGFhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BCRkhLSEtUcGV8g4SDgoKDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODk7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9OjxEQkRGRF18f4KCgoKCgoWJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6Ojs6Ojw4OTg5Nzc3Nzk6Ojg4Nzg1ODg7QT0+PkJBP0FLTE9RUFFPT09RV2tycnR0dXd5e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PEQ/ZoOCg4OEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDo7PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pj0/QER3g4OEhIaGh4mIh4aGhoiJiImLjIuJioqMbDw7PkFDRUVBQUFCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPj9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PDw6Ozs8Oz0+QUA+YoWDhIOFhIaJiYiHhoaGh4iJiouLioqKi4qLXj5ERklLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURGRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pj4/Oz89QD9DP0t+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqIV0dMTE1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkhHRUtJS0lLS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc8Pjs8Oj0/PkA8Pz9DQkVAaISChYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtHRUdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw7Ozw5PT89Pj5AQURDSVR+g4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSUhGSkpFSkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h4enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6Ozg8PTo9Pzw9PkBCREVNbYSDhISEhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIuLi4teUlJQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRUdJRkVFQkBCQlxwcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OT89PT9BRUU+Q0VDR0x1hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTlNUT01TTFBTVVdSU1JQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj5BQUVVTEJJSkdLTXmGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlTWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hJSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQkNGRURES1dRS1BQT1BReYaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVddWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01KTEpJSUxNS09NU290dnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUpPU1JRVVZWVlR1hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTUtKSUlGQkRAQTpQUVFXWFBQT1FTU1JWV1dXV2yBgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TT09NS0pFQz9AO1BQWlpaUlNRT1JSUVVSVVNWXnV4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVlJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSU1RaXW1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lVUUxJTElhbJJ0UFFTTlFSUFNbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUENEQEM+QkhHVkBJTk1HXWlRSEZPRkRFRkhHSEJDSEdISkdEQkFDQE5QTVJkdHV2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVJQVVlTVVFRVFJPVmBrbHN2ent4eXVybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojs+QD8/Pj5qUEphRUZISUVCP0hNTUdNUVVKQkU/Pjw9PD09Pz0/QUNCPz88PUI+Sk1GVW91dnZzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJpbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFDQVtcTntOT09OS0xNT09QTEtMV05JR0BCPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV2dnV2d3l8fHx9fHx8fH59fH19fX1/f39/f35/f399eHV3ent6dnl4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJTVlhTUllUTllaW1dZXF9eX2VgXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FWUE1JQ0Y+Ojk2NTg2OTc5OjM2NTc5NTxCPWZ0dXd4d3l5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHl4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LVFRTUFFVT0xSU1RXWFRUWFFMV1lZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT01MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OThHbnJ1eHl6e3t9fn19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5NTUxKRlBQVVlTVE5KTk9UU1RcVlJVU1NPTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFhZWVlSVU9KR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFBPTk5NUE5UUlBSTElMS09RUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBHVFFPUFBRTlFPUE9MSkxMT1BOTVBRUU5QT0pMTU1LR0VFREI7PT08OT1HNjY3NkRucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11nU1FTQUdVUFBSUVBNTU5MSkxLTE5PUFFMTk5NSExLSUtLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1BQEI9PkVIRkRGRklHSkpARkFBQEZIRUpPSFFSYVxRUFJOU09PT0xMT01LTUxNT05bVkpNUU9HSUhESUpMTEtGRkZEP0NDPj1CRz9CPkFkcXR3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVBNT05XS0xOS0tNTUxMS05OU2RNSkxSSUlJRUFISkxNTktHSUZCQkJAP0VGRUhETG9wd3p6eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkFBRERHS0ZESUlHR0hDQz9CPz9AQT1DRUNLTlFUS0pJTVRGSUlKTEpLS0lKTE1PUFJQS0dDTEdDQ0pKTE1PTklKSUdDQ0NESUpNTElac254eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFIS0NGR0dHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AP0JFQ0lNT0dIS0ZIS0RISUtNSEpMSElKTEpNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuand2dnt4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkcEZLQ0ZFRkRFRUZFR0NDQD08PTo7OjpAREE/QkNFRUlGSkpMRklJR0ZGREI7QkNDPj9CQ0NER0xOSEtOSERIRElMTk1HSUxHRkZJSUxOS0pIRU9JQ0dNTU5NUE5PT01MSUhJT1NRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUVFQkJBRUBEQj4/Pjo7Oz07PT9DQj9BQ0ZHSkdKSUxIR0dHRkVDPz1FRUI+QUNCQ0VHSElHTVBJRkZGS05PS0ZISUZFRERJSUhLSUZIUEtESk1MUE5PTk9QTkpKSE1SVVVST1dkYWFtZ3Fyb3N5emdlaGhjaWxncWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0RFR0NBQEFEPEJBPkE9Ojo9Pzs+P0BCP0BCRUdKRkpHSUdGRkZEQ0JBQUZGQ0JCQkRFRUdHSEZMUExJT0pKTEtJRkhFRkVEQ0lISEtKR0tSTUNPT05RUE9PTk9PS0tLUFVXVlVUWWBfXWlhbmluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01GR0VHQUJAQ0Q8QUFAQzw4Oj0+Oj89P0I/QEBERkhFSEZGSEZFRUNDRUJESUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9OTlBNTE5TV1ZXWFZYXlpdZGBoYmppZ2tfZGVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJFRTxAQ0JEPDc6PT46PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSEVLS0xMTk9SVE9JVFVUUVRQUU1OUU5NUVdaVlpZV1peWlhhYGBgX2hlY2BkZWdnamloamZobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURBQ0hFPEBFQkQ8ODo+Pj08PEJCPEA+QUJGQ0VCQkdDQ0RFRkZHR0lGR0tIQ0lIR0lHRkRIS0lHS0hNS0pLTEhMSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9UWVpZXFpaXF9fXmBjXlxhY2tiYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtIS0hKRUJER0U8QEdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREZGSEhGSEdJS0pFSkhISkhGRkxISEhKR0xMTExMSU1LTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGFlXWRgZmdgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd293SUpLSUtHQkRERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFREZHRUlFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0tNTEpKTUxNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9cXmBgYWFhYGNkZWJkaWNkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3Bzd3R1dXd2dXV0ZXFza3BxanJ2cHdKTEtLTEdDQ0FEPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0dHR0ZFSUZDR0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlFMU01LTk1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZmJhY2luaGNpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0VBQEQ+PkRFRkM/Q0FFQ0RGQ0NFR0NCSUVCSElJR0hKRkRLSkdISkhJS0dKSk5LTktJTEhKTUtaZkpkXEtsUkhPTV9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxrVV93dmlqaGhmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENDQkVFREZCRkZHQ0RLRERKTEtJS0xHR05KSEpLR0tKSUpKTkxNTExMSU1MTFtzYmRwXmxsVU1OZXJdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9ccHVncU1Lcnl2a2Fha2VlbHhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FCPz1CRUdCRkNFREVFREJISEdERUtHR0tNTUpNTEZKTkhKS0pJS0pKSUpMTU5NTU1LTk1NW3Jvb25wcGxrTVBRbFhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0hGRUVCQUI9Pz9FR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSU1LSEpNSUtJSkpOT05OTUxOTUxcaGR1XWxxV2xOT1FuVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SE1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRklMS0ZNS0xSUkxHTU1ITkpJSE5ISkpISE5PTk5MSk1NSlpzcHBvcXFtbE9RU29Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpbXXRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0VFRUBAPkNDQUZDSElNSEZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUlKTElLSklIS01NTUxJS0tLU2tiWmleX2pjcnJaX1lrb2BlZVVrX2NbYWJRYG1oXGpcbmlpZFpvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3cklIRklERURGQUBBRURDR0JISkxHRkRHS0xJRUZKTktJT0lMW1FKRkhIS01JSEpKS0tJSEpHTEtLS0dISkpMTExLSUtMTlRbXVRQVU1RUE5PT1VSUE9RT09RSkpPUFFkcWlUWVZbW1xVWVtdWF1cXGNmYWFmYmNmX15ma21obXR4cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0hQS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKR0dJRUZLSElLTkxJT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVGSkpKRkRISFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdFRUpHQklNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjX1lfYltgXltUWVhaX15kYmJhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREdLSkpERUlJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRUNERUJGSkQ/SUtITltjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmFiY2NlWlJYVlZcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJS0RESkpNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hEREBEQUhJQT5ISUZPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUVFdX2FjY2NjYlxkYmFkY2ZYUVZVU1xYW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0lHR0pGRkZJTEpORURKSkxOSkxJS0pISUdCSEhRTUtLT01LS0lISEVEP0VCSEhBQEZFQ1RdWV5YX1hfW11VWFhQXV1RS0pWXlheW11WWmFSUl9fYmJgYGJiYGNiYWRkYlhPUlJTXFNcXl1eXl9fYGRoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0lJR0RIS1FPTUxQTExLS0lJREVBRUNIRkFBRkRBVlVFXFReU1ZgWE5UVU5aW01KS1RgYVtfWF9eYl1PWWJcYGBfYmNiXWJiV19fVFBPUVJZU15cXF1eX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNRRFdfSUdHSERGTUpQUEZJSUpLTkxMS01LSkpHRUlOUVFOT09NTk1OSEtBREFDREZEQkFDREBMSEJMTFBPT01GTUZGSElIR0xMTU9QSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUVVUXFlZW15eYWFlZmNoZGtscXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXk1HSFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS09TU05QT05PT09IS0ZgRURfTERmY0NMW0heW3NtT05WbVlMQ1BfVGxXZ0pdV1VeRExRVUxNU1ZRUlRYV1RYVVRcVFBmWmhoZFlUa1RYV1VbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0tJRUZGSEVFS09USktHYFRISk9KSU9NUlFLTUtMT1JVUk9PSkxNR0hNUVtZT1BQTk9QUElLUX9RSXxZWXJzV1BtSHFub2FWUnJxdE9Ca3NucXRwU29fW25YXVZcWFVraFVdVmNZYFlaX1ZVV39pdHV1X2F2YFliXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4foB8foCBgoR8gIN6f4F/fnd3TUlFSE1NQkRMTEdKTEZSVkxMT0hLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBRS0laeF1UeGRoWVJTUHZndGxwYm5na1FyT0x3bWpycHNycXJwb3CAXWZ6dXhxcXpxfnJ9a3V9YlJnfGVzc29zc3x9b355b39yX2BgYmJbYWBoa25rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpRT01OSk5WXllVTFFTTllZTFNTUk5MT0lRUlRZV1dRVFBQUVNMSGd4bGN4cW1aS0xUeXB1bXVib3dRZGRJZXZxbXdvgGpmeHhpV3JSaXttaWp6en1seHp/cGdvWHV1anZ1cIBhc2h8aWx4fG9fX19jYlxfZGVmaWpkZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3J1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFBJS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OU0pLcm91dXF1cWRoYVZuTHFwXkdoeVd2VEtoeH14YHl7c25hXm1vZFNncnVubXlwd2x2c3RxbG1cc316a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUEtMTktMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05RSVJtSGl3S2BkdnVVV2xObmx7cmFqZ391VEtXa2h9bG1seGBbcHp7X2B6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxobW1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTUxTU1JPU1JXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFOUFVMS0tSU1JSUk9WVVFRT1JSWFhQTlBVVFhYWFtbVVNTV1tXWFdbT1JUV1dYUV1YVl1VU09YUlZXV1haYFtncl5bW1tdXV9jWl9jY2VmZGNjYlpjY2dmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJNUlFQTFZVVFBUVVhVWlVSWl1WVVRXVVlYUE9MTldUUE5VU05QTkxRUEtKUVFLUU1KS09RVFJQUVNSSUlNTk9RUlBQUVRWUlhXXFdTU1FRVVVWVFpRTlJRV1VUWVZUWVVTUVVTVFVYWVheWl9hXVxaWl1dYGNcXWJiZGdlZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVFNWFdVVFZYV1daVlRcYFZXVVlVWFRRUEtPWFNQTlVRTlJOTFNQTU5VU05RTk1OUVNQVFBSVFROTE5PUVRUUVFRVldVWVpbWVNVUlRYV1dZW1NPUlRXVVRZVVZZVVFRV1VWWFxaW2BdVllfXV5dXF1gYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFPUlhTUVFPTU9TVU5XUVRUVU9OTlFUVVVSUlJUWFZaXVxaVlZRUldYVltcVlBTVVVVVlhTV1dUUlFYVlZbX1teYF9WX11eYFxcYGBfX1piYmRoaGVkYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST01QU1JVWlVTUFBMUFdVUVZSU1JYTU9QUVRYVVRUU1VZWFteXVxbVlJPVVZVW1tWUVNWVVZYVFNYWlRTUVlXV11fW2BfYFZiXGBhXWBiX1xgXWNgY2dpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5PV1NOUVFQUlRSTFFUU1lbV1VPUk5TWFVTUlRSUlpPUVNTVltWVlZUVlpYXV5cXF5WU05UVlZbW1VRVFRWWFhSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZ15cZWBhYGFjZF9iX1laX1tcW1hYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1cYFxgVVxdaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVWlpaU09TUVVVVVNOVVFSWlJUVVRYXVdYWFNYXFheXVlaXVRVTlZWV15aWFFUVFhYWFNWWVxUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXV5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFtVVVdWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVU09XUVNXU1dVVltdWFtZVVpeWF9eWVxZUldSWVhZX1lZUlRVWllZVVdZXFVUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZmRiX2RhX2FgYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFJXVVNSU1dRU1ZUWFhYXV5YXVtVXl9YX19YXFZRWVVZWlphWFtUVldaWlpYWVlaV1ZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYVtmY2hmY2ZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaV1RcVVZXWVdWXGBhYWNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVFJWVVFTVVdbW1xfXlpfXFZfX1pdXlleVlNZWFlaXWFZXVVWWltaW1paWVpYWV9fYGBkY2RlZWJkWmJmY2dmZV5hYmBjXmNjaWVkZ19nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVVYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZVU1VUWF1dX2BgXWFdV2BeW15cW15YVlhYW1pfX1peV1hcXF1dXVtaXFdaX2FeYGVkZGZmZmJZY2ZlaGdkXmNgX2VjXWZpZGVoX2deY2JjYWFgX19bWFlbWVpaWFpYV1tcWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9dXV1YV1tbXV1fX1xaXWNYWVdcYGNkX1JZWVBXVldYV1ZWV1ZdXV5hYmFfYl5ZYV1dXlldXllYVVdbW2BeXF9ZWV1dXl5gXFpaWVtfYl9iZWRlZmdnYlpkZmdpZ2NfY15gZmVaaWljZmljZl9iYmNhYGBfXV1aWFtZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcV1piZWNhUlxZT1hWWVtZWVdaWmBeYWJjYGFjX1xiXV9dW19eWVlUWF1dX19eX1taXl5gYmJcXFdbXWBiYmNlZGdmZWdkXWVmaGlmY2FiXGNnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYV9jYmJdXFtaV1hpcWBcYF9dXGFjX11YWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl5cU1xfYGNkZGZlZ2ZlZmVfZmZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t8fHx8e3x7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHt7e3t7fH19fX18fXx6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKh3NxcnJycnQ+KCsrKyoii9vS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyJcm9vb29vcjIXGxsbGxCO7+Xl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXl5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx6enp6enp6dXNzc3Nzc32FhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnZ4eXp5en55eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t7e3t8fX19fX19e3p6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3d3x7enx6fXt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d5fnt5fXl9enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3t+fHl8ent6d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt8fH17fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl3eHp7enl7eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fX6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoCBgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYKDgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWGhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYF/gYGAgIKBgoKCgYGCgoGAgoKCgoGCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOCgYKCg4ODhIKDg4OCgICAgoKCg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgoGChoWDhYODhISEhYWEhIWCf319fX6ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIaFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDgoOEhYWGhYaGhYWHh4aDgH5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eGh4eFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4aGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhIODgoSFhIWHh4WHg4B/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OChYSDhIKBgYGBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODhYOIiIOBgYGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWEg4qNgoKCgoKCg4F+fX5+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4SDhJGSkY6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWGiIuKhoSGhIKGhoKAh4aDg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4GEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoGAgIF/fX6Dg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5/fnx8f4ODgoOCg4F9fX5/gICBgH59fX19fn18enp6f4KCgX9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF+fX1/gIF/f36AgIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH59fn18fX6Cg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gICAfn9+fn58fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36Afn1/gYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoOBgYF+gIKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDg4OCgoKCgoF+fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKChIOAgoOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eGh4iHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoWAfXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYiJh4WGhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGDg4KDgoKBgYCAf4F+f31+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42NjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gZORjIyNjY+KhYaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoCBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/fn+LkI2MjI6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAfoB+fn99f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJGMi4uOjYuKhoSFhISDg4ODgoOCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn9/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaFgoSDgn+Afn+CgoJ/f4KCf4CLj4yKioyLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t9fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4aChJGOjIqIioeIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJi4mLiYWIkY2LiIiGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH19fX19fnx9fH18fX1+fH59fX19fHt7e3x7fHx7ent7enp6e35+goWIh4iKi4uLiYyQjYyJiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+MioiIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX19fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiNjImJhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx9fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiYyJi4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGBgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGDgX5+gIB9foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyJiYeIhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYKCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fomFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAhoKEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEgIKCgoKDgoSCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOCf3+Af4F/gH98e3t6fHt8gYB/gX9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Afn98fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fX2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn19eH5/f3x8fH59foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH99fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3Zxd3lyeIWFhYWDhIOCgoOCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGCgH5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWGhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH9/gYB8gH+Afn+BgH9/fYB/fn9/fn19fICAgIGAfn9+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn58e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFycHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgX1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn6AgX+Af4CCgICAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYSDgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGFg4OEgYGDgIKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl5fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKChoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCAgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoSEg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Dh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgH+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYuJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WCgYSDgH9+fn59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2ChHVzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfH9zgoN/g4N9gX1+fn1+goOBfH+AfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhoOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ6eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9f359gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOGhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYSFhoaFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYSGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaDhoaFhoWFhoaFhIOFhYKFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn18fXx/fH5+fH2BgH18fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoWGhYaHhYWGhoWEg4SDgoSHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWHhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODgoKDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYOFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYWEg4WFh4WHhoaFhoaGhYaGhIOFhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH5+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhYaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18f359fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WDhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg35+f4B/f4CDf3yAfX1/gn2AgX5+gX59fX19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOGhoaGhYOEgoWChYGBgH9/gIB+f4CCfH5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCfn19f35+f4R+e398fICBfYGAfX2DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx+g358fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dXU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXU1dXV1dXV1dXV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19jc3d3d3d3d3d3d3d3d3drW19fX19fX19bW1tbW1tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLmzeHNzc3Nzc3Nzc3Nzc3CUwLy9vb29vb29vb29vL/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OlmTIpKysrKysrKysrKyskZLCpqqqqqqqqqqqqqqiw0tLS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpps4LzAwMDAwMDAwMDAwKmiyq6urq6urq6urq6uqsdHS0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaugRT0+Pj4+Pj4+Pj4+PjlxtK+vr6+vr6+vr6+vrrbS0tLT0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0crKysrKysrKycnJycnJzdPT0tLS0tLS0tLS09LS1dTU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7Ozs7P0c7R1NTTzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbY19fX19fX2NfW19fX19bV1tXW1tbW1tbV1tbW1tXV1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Ozs7RwafUrYODlc/SpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Ozs/P0Z2QuZy8uJm1s5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/P07qvrKymjoCNxp+YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PD06Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Pz9OfsZ6ooYms1rqYoZ2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz9HAnImdpKqsm6WymZavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PEJAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Uo6KBnq2knJWokJqFnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw7Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDRxJ+Be5atp7Orn3+fqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q1auvvMDPlMjZwZyAvK2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzs7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJh3+FoJePoJ+fmKiWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HG09PVnJuspauin8Ogq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg0tHS16iHz6mOjq3Ywo+Nu9XS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dLPxdTUv7/V0tXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojw9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS09TS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk4NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzs4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj47PDk7Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODc4NDs/PD89OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Nzc3NjQ2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NTU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyampubm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87My8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtoZ3VaZnJ3c3hmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/JzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwsbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m9urq0v7i1t7Ovu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2diXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxbW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmFhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcvGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdW15dWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBw8O7ubO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pXF9fWVNQQUVJR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXFpVSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3srKytLK3vrqztbK8ury2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdT0hBPz1IQ0ZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq2tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE/SkJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKx77AuLm2srS2s7SvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk1GODY2NTo2Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vbWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u7+/ubS0s7GxrrC5uba8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2rqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28t8DBvry8vLmura+ysrq6t7e1tby0r7Srtrq4wMTBu7a8vbiyrbOwr6yut7aztLWvqqSem5ycnqion6CoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWim6OclZCMj4+Pk5CWlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09MTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGwrq+yp6awpK+utcG6tbeyt7aytKuytK6qq6+wsrOupZ6SmJSPmaCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlp56gnJWTkI+RkJiQlpWYl5+Ym5mbo5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7REA9Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaOkrqWsrLS8t6yysa+xrbWvr7O1qqetrKOcmZSOkpaXmZmcoKOim52lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+prrKrpaqqoJqYmJiVk5aak5WVmZaal5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOD5CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6jqK6trKurr6qvqZ+XnqWenqWmpKCin6agoq6rrK21sramr7Srqaq0sbCwuK2noZydmpSYmpqRjpGVkYyPjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKxtKmxr6KZnJ2eoZmbm5qYmZuUlZuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5VTFJMQTc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho56doJ+joKKvr6yvsay2p62xraamsK6trLCooJ+ioJeRlJyhnJmYkpOfnaKkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7issbSjoJ2loKyhoaKgoJqYlpWfm5uYpKGgnqShoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTUc9Skg4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjpOemaidrp6nnpyhnZ6ampKZnpyioqCgnaKfn56fqaynrKmqtKurraulpauoqqyqpaCemZKSlJiZl5aWjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oauiqaiyqaqop6iamZ2aqqefmaegn5+nqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKagnp2dl5iWmZ6bnKSfn52knZqdnKWipKOiqq+sp6mjoKGsrq6qq6egnp6io56fnpqcnJSTlZSenpiUhp6aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLS7xsS8wru3s6myraqztK+zrqquo52rp7axrKKvpaCjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3VycGhXW1FFVEhESU9IPkVBM0VIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpZ2Vm5ufmp6cnqWmp52goKuxrqekpKOgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr3HxsK3w8nIwsDFvrm0ubq1u7ewtbKqurGuu7e+urqqt62rqri6tLyurrmjpqOep6Wio6mmmpufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR9enJrZGhveGplWltGSkxERFNMREJENzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlZqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkp+fkJafmZKalp2bmaOhr7OpoZqdnZ+fmpeYl5KMj5aXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3MyMnRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zT0NPTzMrCxcbGysfOv8nQy8bExsTBu8PBvr6+tb2zrb+/wsPGxMfErr+4sri8xMHBury8ta6np66ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURCQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6yen66mpbGqxcbMzs2/sMKppaitraqhnaOfnJ2aqZOZoZCOoJONlJKXmaSxsaukoJ2gm5mXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXX0tfNxsfJzMPFys/K09fR19LU1dPTyMzHzc3J0szO083Ex8nKwcXLxsjIxb7Cs7PIxMvKys7Fyr++v7zBx8TMzMjJwMO/rbCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/enJ1dWdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjNAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo56ko5+gpKyblqmWjJaNjI2XprCupZ2enaGloZ6blZSWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTTz9LD0NPW19XW0svJztHLxs3SytLV1tnV19PW2M7Syc7RzM7QzNLPv8fGysPMzMvOz8XGx7bAyr/SzcvPxcnIv8PDyM7Mz9DPzMrIzri3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHdzdm9jYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU6NzY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopuppqKmq5qjsLGpqLXQ1Nfa0sfGy7S2wsWytqmipaahoqu1p5qxoJidjJCmrauclZihnZuhop+cnZuVindpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTPz9XU1NHSzNHO09fW09XQz9LT0cnT0cjQ2NfY0dfS19nV1szOz8nN0cvOz7/FwsfFzs3R0NHIy8zAysvF1M7LzsjEycbGyMzK09PR1c/SzNLBucWypai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NDQ6PTUyNzU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamgr66qqqyepq64qKu32NTV2dnRztDAvMzJt8Cvp6upo6SxtrOjtqqsw6epqaGYlpiam52hnpqdnpR+cmVjYl9fYWBfYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvTzdXU0srPzNPW0tHWzc/V1dHG0dTK0dTV1s7S0NjY2NfLyM3Dyc7Mycu/yL/Iyc3Oz8vQzc7Lzs/Hy8/Qys7KwsnGyczKy9HSzNPS0c/Qyr3IubCtu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bua2FkbnBhV1xaSUZGRExXRTtAPDMzPD04Njg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PT9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Onnri2tbWtpa2uvrSxwNnS19rc18/Ny8TT0MLCsqutrqyms7K5q7K8xqKhnJaUl5uen5+dlJaXlYlsXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVysDKwcXMwsjJwszDxcjKys7KzczQzdPLxcjPzMjHysTHwMXJy83Q0cbQzs3NzM/Fx8C3ub3Dw73DubKzvrG8xMS1qpilopmWkZWWkouUjZqRlJSPj5SCiYV4cHFrbmhgYHFoWVhoVk1HTElQUEI7RD47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc2Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfDucvV1tna29jNzdDJ1tbFxLiytqqkrqy5ubGyxKyWjY2YlpCTkpGWlpaQjHxlYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytHIy87NxtHSz87M1MrHy87Px8fP0svQz8a6xL7Gyb3Cx8nOxMLHwMfNx8PLysvPx8PDz8jGwcXIw77Ax8vLzM7CysvIx8vQxMXHu8fDyMjCz8C9vL+xwcrHur2qsbKnpZ2inZiQmpCkmZeZkZWYiY+Cd250ZGxgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJuls7Gsyc3KyMS+vbrNzcfQ1dbZ2tvY0MrQ0NLUysW6vr6wqLervrm4s6WRjo6WkIaDhISCfoWFf3RgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsjGwsPAw8fKycjKx8HFzMbIy83JxMLLycLCy9DEy8i/ucG7xce9v8bPy8O/w7vJxsi7yMbEysC9wcvGxcS+xby8v8PEy8XFvMDJwsXH0sXAyL/KysbIxtDDw8bDr8TLx8TKt7+8urSprKWlmJ+YrKOhpZqjoJuUe3ZzdGZqW2FubVpbWFFETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvP0czHwsPHzc/PzdbQ1tnY2dDN1M7P0MvEuMbBtrW8scC2uq2RjJOXh3uAhYaAdnh1cnBfWltdYGFiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsba6srKzsrHCvLy7ubjAwcHFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDvrzBzcLGvr61wb3DurzGu8K5s7zFw8LCtr+1tb6/usvDvLW6yLq/vcvEwcXCxsjGyMbQxsLMyLLHysPOzcHFw8C9s7ews6ioqLmxpa2wq62slHl2d2plaGBob2NWXllKRUpGSEtBRkJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc7P0snRx9bV1tjOzNDIzcjKxb7KwbK1ure6tq+RjYqLhXmAhoaAfoR8dHVkXFxdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLS3tLOys7q1vbG3sLWvsrvCvMHEvL+7tbO7vsC4x7m0u7bAwry4vcbBw7y1rrK2ur60xbe7tau4vL3AvbC6tq+2urLFvLavu7+0trTFvb7DxcDDxcbIy8bAxsa7yMu/z8rHw8bCw7fDvr22ub7Hv6y1urW3to54dHhnZ2Via25eVl5gRktISEpGQkNBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDNzsnLycvKy8bRz9PRz8jKxsrGxMC9z72zuL25t7abjoeJiXt5foaGd3iCfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7i4tbCrrKeeoqqnnquss62pq6mzrbawsqmupqyyvLq2w7m6urGrtbm7tMK6sL+xvb27trzIucO3raqosLLAtri8r7CnsbO0u7yrrbWmrrauurGwqrmvrbuuu7i7v7+9ucK/x8PFwbzGwcjLuMXHxb/HxMO6xMbCu8bJzMuzucK8urKIcnZ2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj49OUE9P0A/PD46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs7SzMTGwcXQyM/DxMfBxsbFxczDyszCxMHHwLq8u8q3tLu9tbWrkYmQkHx5foqFenuEgXduXl1dXV1fYF9fZGJiY2NiYF9eW1taWl1aWllaXWVub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCjpp+qrbW2sb25r7evqK64tLS8uLO8r7i5tbK8wbLBrqWpoquxsrOovKqrqKusrbS0pqiuoaSvqbKlp6iupai3rLCyt7m6u7G8vb6+xL+1wcHHyLe/wMW3xMK/u7/Ew77EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWlJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7rEsLawm5mVnJiqqbCxs7W9r8bR0M3EyLu7zMPMwL3KuL/FwLzMusPGxbq8w725t73FuLW4u66ylYOJjYF7foB+eHR/fHN3Zl9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSepJuXkaGjqqOin6Wlp6WsoJ2bpKassq+2t6ewrKeqtKu0ubC2tK22ubKwurmxt6Sfo5+msaerqLmqpKenqKeyraCnpp+bpKasnp+npJ+gsa2trLK0srSwtby2u8HBsrq+w8GyubrCs8C9v7W4u72+vMLHxMLDv7/EoIN3cGthZl9rb2BVWV9ITmhPVEhFSkY8PUA9Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzc4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbu+taCelZ6hprq2q7Ozu7PF0MnMw8e5uMnCzsG6y7m9yLu3x7u2w8azvcW7tq+4v7uwsrawooSHh4J9eXZ0b21rampxaV9gXVxcXV9gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXV5kY2JlZ2dnam1viJ2poJeVmqGWm6KYlY2eoaKmm5+fo6Whp56bopufqrCtsbWiqaqpq6yktbitt6+ss7Wus7WusKqfnZ6jorKkpqm4raKmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7KyubK9tLaxsbW0v7W9wL3Dwbq7vZeDenJrX2VeZGRYVFheSVddS1BHSUpGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmbpKbAsq+2rLS3xtDJycHHvLzFxdDAvMq6usK7tcW4tcDBs8HDu6yptLm3p7CzqYuGiIB5c25wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWltZWFdXV1dYWFhbXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaQnKGhqJ2bnaWmoaWcoKCamK2ura6yoKWiraunobWwsbGsqK+zp7qzprahop6bo6Gto6Gptaqio6adpaajlpiel5manZ+Zl52cnJusoaumo6Smrauzs6q0sLKqsrm0r6mvsrKyt7Ouqayusbewura5vb+3srGUhXl1ZV9lXltZVlNaVUtbUUxJRUhLSUI9P0FBQEA6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vb+znaWjmKWxwrW2va20uMPNycjBxrjCwcjQucPHwLa8vbbDura/wLW6vrqpprC6sKexr5t9hYWAeXBxdHFoZmRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnqmdm5qqpq+wq5ujo7eqoJ+uqLappqetsKS3sKS3oKKbmJiqpqGarLiwoqGknKGfoJOVoZSWlpuYl5aXnJSfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxr7Cur6anp7KusbSvvLS5t66jlIF5dWReYVZZV1NSVEtNXkxQS0dHTEtFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp6np6Oqu8C9wLmutLjCzcjHxMW+x7rKzbXExcWxv7+5wMG5v8C5uby3p6awu6WooKSJgX54cmpscnRwaWhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtcWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKann5yfpJ+qr6afoqO2qKChoqizoaWnpK+lsa2stZ6gnZWUqaGilKyxsZ6iop2emJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpaukpbCnpaOrq62lqK6vrquoqqmzpaarr7Sxrry1sa+voJJ6dnJkYVxbXVhOTFFHUmFNV1BPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuyt6yepKett7u8wcW6sbm1xcrLwcTHx8m4yMa1xcLJr7q8wrvCwMG9u7e5taWmsbWdoYmYiIB3b2RiZ2loZmhqZ2ptYF1cW1paWVpcXVxbXF5fXFpZW1lZWltXVVhXVFRXVVNUUlVgYF9gYV9gYWNkaYGUk4mRjpSSk5yUlZajmaCWnKCloa2lpKSio6GbqqqlmZ6lsamgoJykqp2noZ6sramorq2ioaKUl6ObnI+rqbCbn6KenpeYk4qeko2Sk5WPmJiSm6GinKSgoZWgoaSmm6OrpaKkqqOrrqSusammpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlVRRlFPSFpcT1JKVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Nzs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njo4NTk4OTg5OzlAOXu1tK20u7KwrLKtnaenr7m5s8DIurXAr8bJzrvCy83Jt8u/tMDHzLC2vce7wcfDvb62ubSkqq+unJmHjoN8dWlqam1oamxua2ttZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eX19fYmRtjo+EkYaPkY+Zk5SSnJqinJugp6iqqKqmqKWjmKSupJSZpa+pn5uYm6CerpmbqrOfpaafo6OhlJOblpaSqKqtmpygoaCalJCMmY6LkIySjJaUkJ6hoKOcm6KVm6CioJiiqKOiqKugq6+krbelo6OirK2qqKuvs7iyvbWzq6+YhHNzaFtZWVJVUkZZTFBcWU1UTlBMUFJJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9NTc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaivrZupqKy3tqy8yru2v6zMx8a5ws/QybXGvrq+xsu1sb3EvMLEw73Asriupaquqp2XhoF3eG9uaW5ubnFnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXV1cXl9gZH6NgYt/i5CKko2XkZeZoqCbn6qppq2qp6+jp5mfrKCVlqSop52XkI+anq6Wl6eqmZ+dlKWhnpKQkpKTlaerpZqZmp2dlo2MjJSGiI2DkIuSlJCgnqCjl5WflZqgop6Tm6Wlp6iooLGwprC8p6CjrLSrrqewtLC5tcCxrbGrkH1xcmJWVFVOUklHVlFTUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6vMPL0cyzubq+wMTHtrS3vbK6u8O9wbCzrbCtr6qboohraG5vcm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/dYmOh5CJmImUlJebmZ2om5+qpaSqnaeYoKWbko+eopqXloWEkpqjj5OinJWWlYeimpqTi46LkJmkp5yVlZebkJKHlI6MgYuNgJCKkpKRoZqfoZWUmJiVoqWZjJmkpqimoaC0sqeyt6Gdoresqq2ksrKmtby1q6uxo4h4cm1dTlBRTE9DTU5OUEtGTk5KSk5NUUlNSkFHS0hIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKmloKmlpLOqorLDtbWys8fHuLvEys3Hta+8v7i8xLOzrrairLTDubqtqauzrq6elqd9XmBnc3F2cWpuaWZoaGpfWFlYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWWFhZWFtdYW9zdnGFiIKHgJGDjoqUkZOdoI+anKKho5iklqGblY2HmJqMc42CfY2XloWQmZCTjo57mY6cjIKKgIqYn6KekJOYloSOgpN+fnSJjnqQhpKQkJ2amZqQlZCdjqKjjomaoKGko5uitK+sr6yfmKW5pqWwobCunLC7qqmvqpmBdnJjVk1ST1BNQ1NOTFFNQ1BQSElOU01ISkpESkxGS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd3t6KjtKilpaijpqWmpqazp6W0wbivtLDKxrm6ws/Hv7WvvcOvsceyraerlaSuv7ewr5+mrKyqlZSicldWX2hnaWhpbmNqaGdiXFhYWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeLk5Cfl52VlJaUjpaJf5OJXztXb3uLlIl/i5GMj4WGc4qEloF5gnqFk52Ug5WOkY+Dhn2TeHJvhY1+iYCQjY+XmZiTio+JnIiel4eIlp6aoaCXp6+pramon5ettKKmrZisq5intKKpraOSfXJtX1tOU1JWTERUSlBNTEZPT0lFTFFNS1BKSU1QRklIPTc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5eLego66hpqaqoKepp6KpsKintMG6sbWwycO5tL/PwLqxsbjEq67JrqejnYaaormspqeVpaSjoJaOlmlRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXuCdFBCQH+VkZF9iZSMhIqNm42WlYqSiIaVhniIf2BKUW54ipKEfISMiYR/f25+f5R3dXZ4hI2ZcFGNiIqHfH54lHZod4WIfoqIlYqNkJKWi4SKiJSEmoyBhJKblp6clKSjqKmlo56bsKuhpKSQpqqWoaqcoqaoiHRsZV5bSFFRUk1JVU1TSUxMUElIRktOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj03Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXa2nKOnnZ+hrqGnqKWnqK+tqra8tri3s8K8t6i6ybm3qaq3uK22wKqim5KDj5mxn6GZjJ+WmJSRioxlTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+GgXuFjJKBkpmLj3uGj4B1f3hzbnVwdI2OgXl9iqqFeXpodnuOcHJteIGKjJJ4eoB7gHZzcpJ3Z3WEhISEepWJiIqMi4B/hIuMf5SDe4CPmJWclZGfnamen6CeoKmln52YjKekk6Cglp2epH9xZ2BcXEpWT1FHS1hST0pNTVJKSkpNUEhMUUxSVE1FSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8PDd2rpijoZicnrOpr6mlrKywsaq9tLK8uLa6tbKgt7uzq52fraustbOlnZaSmIaTo5aci4KXiY+JhoaDZkpJSklHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhZWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gXZ4f4mPfISYkoFyh498dntva36tfHOQin97hpKBfX90ZnZ8hWxvaHN8iYyHgGx5cX1wbXWPcWhxgH2OcEOKhIKDhX53d3qLhX2LenV+jpKPmIqSmpujlpmdm52eop2WjYqkm4+dl46WmI92bWxlYlpYWFRRSlNVVE9QTlFWS05LTk9KUU9JT09LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn56WoKavrK6rqKmxr7GsvLisu765s62om7GorZyQl56nrKekm52TiJZ+jpWRlYB8inqFgH9/gWVKR0hGQkBDRElMTE1RUlBRU1VUVFVWV1dXWFdZWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hvfHmIj3l8i4VvbYyReHN4amp/gnKWkYuBfZWASpKYbmh3foFsaWNseYWQkoZrc2x8bnJ7hmhtcH5zjYiDhXp9fnt2b3R0hYJ5gXdwfI6MipODlpeYmpCTlpeZl56XjIOJn5GKkoyGkJZ+bWhtbm5XVVdUUVFaT1NVVVRYVU1OSE1KTU5LQ0lOR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6kra+irKqota+urLS/q7zCv6ajmpWlmJ6OhYyWoqSbmpOXj3aRfoWLkY98eH50fXh1d3xmT0VHREA8Pj5BRkdHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpyQZlvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4h1gYiGdGyakXRze2prnY5MeYSSiYSOZzF2hnNsfn2DdGZldH6EhIWAZmlsdWtwf3xncHB7bpKNjntzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlY+XjoB5iJeIhomGf5CHdWlpbmdkV1FZV1hZW01QVVZaWU5JSUVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiZkZqWpKitnrKfprquq7Kww7K7w8ebl4+UmYuOhnqFkZqWj5KOkol0ioR3i4+Mf3Z3dnl3b3hzaVVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bXGDgYWBeYSGhnlyoJV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiIBoZmJpbnJtcIN1aW9YdW+OmpF2bH96fG1xbXB/enN1bWJ2hH+GgIWQkYqLipKLkYyLj4N1eIuPgH6CgH2PeXBvbmpeWlxdW1lYYF9TTltbWVhMSEpGSkc/Q0FCRz9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW1qa2xrsGzu8HGl5CMlJCBiX1ugpGTioSLiJCIdoSFb5iKjH95e3tyfHR8a29eSlBHPkA3NDU4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8fYWDf4x+dqKZeX6GgISZhZucYYaqn52KgpCNenaJfomIjnOKl4+De1xkcXR6e3eKbGdpYXhvhY+Cem6Bd3OEenBzeXdrbmldd4d9h3yIh4+Ai5OXg42GjYZ9cYR/hHx1d3t9iHRucXJlZl5bWl1TW2ZeV1FVWV1WR0tLRUxHP0ZAREM/QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMd4l/lIyRnZ2fppGgq6Cxqa/AsrvGupaPkZSIeoZ2a4CMkoN+i4WQjnmEgnWiho1/f4KAc4OBfWx5bFNYTEFFMzExMjY2Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSS2mEiHuJeXtxfI+Me3yJhn6Xh3ahmYiHj5KUpY2sqUiHrbCvioCAk4qCi4KEkamHgJiYipxzbHyBhod9jmhnZ3h+boWGgYVxhIZHa4B3cXl2aG1rX3d9g4h/iIWMepWenIqLiZF/e3WLdnx3bW93fn5ycXBqW1xcW2NiWGdlXFVQUVhaUURMTEdPSURGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NzU2NzY4O0RGTE1NTEM3KyImJyspKysrLzAwK251MjI0MjBMgVw1PTxehHR8foqFh5GPlpiSl6GdrKGmuK+zvbSXjZKLmIt9dHB/ipN/fo2DlJV9hn+HpYiJgYOIhnmJi4B1hnlfY1dMQzYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVRUVVRUVlVTUU9HQz84MCwjh1s+Pzk0Ll2WcHOjVUZJS01OUFdgWXBaXF9qjZOHlYCEgoWRk36FiZGBmpaCoKGYlZuapa2Tmbuxp7vHw6eKjKGljpOJgZB8coSen5GdfnaFhYuPh5BpaG+DgHSMhoSLcYaCd4d/e3aFfW52dWeBlY+GiYiIiYiiq6OWiY6YgHuCiXp6b2dreH14fHFpY11aWV1pXGFmX1pPTE5YU1FJUUtETkdDS0RDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnZwZ3iDe4CMgIGQj4ubmqScoaymq6+wl5KRhKGUhHh3gI2UfX+ShpOWfoqBkpyOhIGCjIuCio6EgIuAbXBqXkNBNC0tLy8vLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISUtLS05WYGN/Z2dudZ2bj5qTk4uNjpqIk4+di6ChkqOppaOsk6i2oqjBw67Ir3i6lJp8jKGemISThYKPoZ+TmZKEioWPmJGWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGXh5OJj4+Xpbapm42VooOHk4R+f2tqa31+fn9xX1tiXllmalxsa19YS0hPU1FOTUxGSVFERE5GQkNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwg3B1h3F2kYZ+l5aalJ+fm6egqpaTmJ5oZqSafoWTknqBkomSkn2LhZmSkYOAgYuNiYaRh4SIhXh4f2hOUj4vLy4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDg1Mjw/UjVISEhMTE1OUl5vinxzgn2gnZunpqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMm3ydHPvpugcGmrqZ+Ek5KFnKGampqnkZGIlaKamnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZWenI6Tlpqko6e2sJ2SmqiIl5COgYhsc3N8fXpuZl5bX15hZ2RgZ2dcUkVLS1FPSUpNRkZNQ0hNRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTQ2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYzQUBpYl5QcXVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mImI15go2Ljo18ioaQkI+Cg4CJjImFk4WDhomBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49RkhAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKiptayxt7Kyrbuxs76cs8Ssu8nLuMS/t6WjsLKsraqji5aYhaamoKKYgqaZjaKqqKSHhZOjoKCqoKSpjpyxi5Wjp7e7nKGjsJOjnaOekaSiq7Cts7WilaaqiZqKk4qVent+g3xlXmZaY2BdYmNeZmdfW09ESkhUT0ZJTEZLR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo1NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljWGpwWHqFdoGUhYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMj4uKe4iDh5GPg4WBjIaFiJKGgoSJhoeHh3FuYUBFNjQ8My8xMTAtLCstMS8tND9EQU5WUVJUVVVXVU1cUUdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHxKuzxbattMCzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsLGbmZKan4mnr6qklXefpJehq7GzmJapraiutbuyuqyvtaKxrLK1vLi0rrWgqKijqJupsK2zuri4qJy4qY2lj5KToId5gYFzWF9iVWRgYGJfX2ZgW1VKREVMVlFJSktFSkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxcWlFiZFd6dXGBlX2EhpN2hn6AjXu/u6O8grSUk46bj4SIj5OKiXqHgYyTjYeFgY6AgYqPhoCGiIWKh5F6eW5dV0BFTjw2OjQ2QUI3NjQvLzZDSENRXE9RVVdVXVdQX1VJS0pBQD9HS0ZGRDs+QDdENz9CSkpFR1dUUF6PpK6ksrTDtrjBzMq2u8S9s7TBt7jCtb+wuHSxtKa6xaSwxrmxs7K0qKS2tqqxoKKWm6KSpbGtpa2sp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6t7+4uri6ra2xprGqrr6wvbzDw6yZu6iVro+YmauJfoB6aFVgX1ZoY2lkVltjWVZUSUhHTFFHRElKQUlEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVZad2pwf4+EgY6Fb3tyeIhiuaGZo4mVlJaTlJSOkJeSh4d7h4KOloqBhIGKe3yLiIZ8ioKBi4SVfXh6dWZPXGRHRUw6UWRgW15TRj87SFBEWmNRUVlZWmdaVGBhTVNPRUE/SUpIRUZBQEM9RTZCP0hHS01TWlRelK+4tbu5ycC7vcrNvL3BvLi2vLy3vrW6s8ZhdbKlsZqeq76qpairqqSisrWgq6ielZaemJ+upaenpZ+kk6KnsLOosrK8tsG908nJ08bCxczCysTAvr7AvLy4tLC5t7fDusa+xMmwnrqroqyPpam3iYB8b11fX11VX11oZVNZYVZSVklFRk5LQT5IRT1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASk1QUkxRXWhtbHGPjYaQc2xycnSI1cC1mqCNlZmZkY6XkpaWjoaIfYeDjZaLf4OAg3l7i4SHe4t5gYqCl390fXprZXB2WV1cUGVlYmBlZF1bWFhcTWRtVVJtbl9vX1hnZVVZVUtEQktLSEZISEhIQkk5REBIS1RUVl1aXJO5wLm+uMbBu7nKy7u3ura5ubS4tbWutreZZHWpnq1wXqKtnJihopuknqullJ+fkJSOlpiXqJ6mn5+amYOknaykqrGtt7C8uNTQztbPyczSzM/OysfAv8LKvsG9wsDFxMbKwMnPtKS8sbWwnKy5vZp9dmlbXlpYW15YYmJRW2BTUUtDQkZHRTxARj9CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LiYqKigtLjAsQE0rLzU0bYlJMEiJdD8+QkRAQ0RHS09EUlxaaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQjIl8gYRze4qDhXuKdIGKh5V/dHt5bG11fGlzZWlsaGZqaWlgZmlpbVptdJetpL2Ih2dbb2heWllUSEtPUEpLUUxUUUhMQUpHS1BfX2JnamKXt8ewurS7vraxxce2sLmxsbuts7Goq7itjbaonpynmk6anoyPoJaRp5illYqTk4mRiY+Rkp2boZiblZaHnpmmmqywqK+ns7PT1NTW0cvP09TO08/MxsPK0L/KycvJ0sjNzsPQ0riwxL3Euqa3u8Sif2xhWltcV15WWGRZT1xXTlFDQklFQ0k8QUQ+Qkg/QEI4O0Q+QEk9NTY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CRmYNocm95eYOhqp6ml4ybm5iLjpWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfnF5dWxweH9ye254c2xpgHBtY2lucHlpd31+y7/D36duY3hvZFthYEtQUlVOWV9QXl1OUU5UUVVUXG5ud4Nylq64rLWosLarrb3Bsqu1pqW5qKyvoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSLg5SVl5eUm5CcmJmZnp6rrKSnoqysztLV0c3M0tPT0NTRzsjD1NHIztLT09fN0tHF0tbGwc/IyMOpv7jQnHdsY1tgW1VeUVxaT09UUE5IPkFHQkNGPUFCP0ZFPkA/Oj09PTxKQjQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bHdwfX6AoJ6eoYyNmZOUi4yTj5aFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBvd3Nsc318d3xzgnhxa4Bycmlwcnp5c3u+y5p/jbKEdnKFd2lhal1DWlpbV2ZkWGVrVFhdXWBjXmN4e3+LgZmqpKSioKGppqqxuaumtKOirqKkrqKnsZ+JppuVk5GKko+IgpSJa5WijZmEgYZ+kYODk5esi5WOlZqOhpKRnZensKKgoaWkqMjNz8fCy9DT0dTSztPNxtbTzdTY1tbY1dfVytTazcrY1tHLrcTDzIlwbWBeXVZSV1JaT0pHSklKQDs6O0VCRD1DRD5IQz9DQjs8OTw6R0M0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKKgJ2VnpSFi5aJj4qJjoiPgHiElJmLjYiIi4l+g3hzfH2Eh3eAe4eRl4GEb3hxbXV/dnh9dIZ8eWyHdnVufXaFdnl7nbWMPEGLxqV+jX1qZVdJQ2VjZmNoamRveVtfZmhrbmlugYSJkYyen6CekZeZoKOkprKkpbOgoqWfoamhorGch5+SkpORi46Lh4SPhH6cnIyNgoSFepR/g6qWo4ySi5iTi32XipqRqrOYm5ynnKa9w8W5tsXN0dDS0MvSy8nUz9HV2tfX2NTZ2M3Y287J2trS1r/MzbR1dGxiW1dRU1BYVUVGSklFRT06NzpAQkM6SEVARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MiooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXSGjX2XkZ6MfoeSg4mGhYqCiH14hZeXiY+Dh4aHeoR5cXt7hYZ1eoaOjp16jXB9cHB6gHJ7gXKEh4Bujnp1d319gnV/fIeJsHRZqsK3jZKCcW5jPV5ocnBxcG54d4JlaW9ydnhye4yHj5OSm5agloiMk5yfm5+roKGsnKKamqCmn5+smYyajZGTjoV9iIiDhYuOoJmTiIOHfmyZeYSZh4iTjI6VjIZ7m4iTj66rlJWXn5imrrW8qa29xsvIycvLz8nE0srU19jX2NfU29fT2dvWz9va0tbJ1cyTdXhmZVhXTlFSXEdCRUlJPkE+PTg6PkA8Pkg9QEJBQUVBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmx2gIhxkZCbgHmAjn6DgYKFf4R8fYSYjoeLfoaHgXeDeW57e4eCdHqSno6hdo92g3R1gX50gIRvgZCCb5KFdXyBhXp2h3yJuMalw8q4gpacj3hwZk5lY4J7gXeGopCLeXp3e4SAfIR1bZSWlZaQmJGDiY+XmpeXpp2YoJafk5KXo56aq5aRkYuOk4OMhYmJgYaQkZ6cmYmFi4GGl3uIiZ+XkImOiouCfKGJkIu8oZiTl5qcqKalrZ6ntb7Av7jGyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvGg3Z2ZGZhXVJVVVRNS0RNRDs9PDw5Ojw/OT1BNz4/QD0/Pj05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs5OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVxpdHp5bImNknd2eop8foB/gH6Fe36CkYqFhnqFiHx2fnVtfX2HfnR/kp6Rn4OSfId+eI9+eYuKb4ObgXSZhn2CioV8fpF7kKmPkMOgvYybpJx+ioR9iXOMi39zppqcmJSFe4+RiYRpR3GhpJ6MjJGShYiLkJKVj52bk5SRl42MlZ+dlKGVko6OkYx/kI+Oi4SJk5aan5+JjJSSnZGDjH+mmYiFjoOGhIClhoqLuJidkZWWoaagnZ2do662urSrwMbK0MjHzc/T0tLY0tXXwNfY2dvY2trZ2dfbtnZ1dGdmYlRdWVJPT0hDTEM9PT45OTs6OTk8PTZAPj89PTk6OjszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdPPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PERSU1JYX1ZYZm1tbWmBjopxc3iKe3uAfH98iHt9fIuHg351hIZ6c3pzbYF+hX53hpuhm56UkoCMiH+Yh4Cckm6IqYV7oIx8kY6DiYScfpuRio2jop+RpK+gi5GLhouBk4ZXcq2Ln6ubkIOZnJCPjluDopGCjZ+TlIyGiIySkoyUlZWQjI+KiJabnY+Vl5KMk5SGgIuJk46Kip2XmaOihpOdlqCLiomOnZCDiI+Ag4eFpYWLkLOYnJKUl6GgnpmSm52nsbispL3Cx83Ixs/M0MzO18/R1K7W1dja2Nra19bZ2p1seXFjY1paVlFVV0NASUQ/Pz46NDk6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieGxifpGDb213i3h6f3uBfYd8fHeGhYBzcIWCe3V3dnSFg4V9f5Kmop+mopeKnZCUl4uKqJdyirKNhKiShJmUhZqMo5agmJOJm56ik6mwoJGVkY6OiJaMb423hJrEyLKcoqacnJiWkbGQZKTNx5WOhoeJkJKNjZOVioWKioaWmZuPkJSTh5aYhICPi5mIjpCql5ekooiZnpaaiY+HmJiKhY+NgX+Hj6WIjZOompeUlpihmJ+Zk5yaorK0paO8wb7HxsXJyMnCytPMzdSo0tHW1tbY2tTT2s5/b3tkYFtcW01JU1lCQUdEO0I+ODM3PDw6OD42NDo6PDo3Mj86OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGOfXxtfoh4en57goKDf3d2gYN8bW6Lf3t9eHh8hYeKfouis6ejq7Oil6efpaSWla6ig5G4lZKzmoyioYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmpehwI6jybirnKOmrZiSm52ynYWGqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIuUk4eVmYaEkZCcdZGYs5aXpaGHnZqTj4uQipebiYuWjoZ9jJieiZCQnJuak5iXn5OgnZSem6CxrqKkt760xcfEvcPDwMbNysnTps7M09LR1tjT0Ni6b3ZyWV5TXlROSElNRUJDRDU+Ojc3Oj88PDc9NDI2Njk3NzQ+NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdNWlxZSmZgO0iEi3p6boWGenyEeIGGgX5weHx+fW9yjXp+gnx4houJhoSSprutqLK9sKWts7Ooo6GwrIqatZ2juKWVraWXqa24p6Sjn5qpmKqkrrCqmpmclJWRl6CYmru7rsqhare4q7CUmZ+jrJOXvqNeqrKDioqNlIeQfI6OfYOGjo+UlYiIk5aMkJaNi42WmJOdmbSXlqudipyUko6RkoyZm4qSnpCLiZafoY2UjZianZKcmJ6UoaCUnJ2lr6ihpbO4rMLIxLa6vbzFx8fC0aDGyc3NxdfW0cvTn213ZVlXUFxQTkVDPjxDQUI4QDg4NT9HPT02PDM1MzQ1NDU0QjQ5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRIYmBicEpAi4p+gHOGh32CiHWDioJ/bn18fX9wd4d3joKHfI2PjIaMmarCwK+9xruztMC9tK2rs7aMqLOtrb2rm7ulqK26uKunpqKipKOpr7Kxq52cpJmbmJefoqamkqS6r6nAvK2usrmlpKh+iIacrb2wgouMi5CDjoORj3qBiJCNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpiPkqGRiZSbpKyUlo+UnJ2ToZ2bmJ+hlJqep6akoqSws6fBxsOvsLq3xcTDv82mx8THxL3W0M3EyoVxcF9ZV1xYTEpBS0FGRz9BQEM7OjQ+QT09NT02PjM0MzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRD9DRlxlRmBpZ1pdXJOMjIl7h4yHg4x1h5GKgW9+e4J/cX6Be5V6kpSUmJCTlqezxsm/wszCw7nHvbuvq7m7mLO3urLArqXBpKuwvL2qrqujo56nq660sKqcoKqcoZyWn7C1qIyjurq2wbysqZ2zpaSolIWOqcTDpIKLj4eIhIaVlI15g42Rj5GhjIyUko6Jl5+Yk5mVmKagr52Mq5yNlo+SkZWVjpCVko+hlIaXn6CynpSZk6CgmKSfmqCboJSYnqWkpqakr66mwMTDrqi3tsnDvrbPssS/xLyz0crIwrRydmpaVVlnUExIQkxLTEpBQT5ERDw1QUU7OzM9OEIzMzIyNjNBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWk1lXGZUYmuZjZaKjIiTkIaJeYeUkIFygHuNf3iHgoKQeo2hlqiampm6vcfIycHSycrCzb3Cs628vqi7wL27w7eswamss7y+qrCqpKWkrK6zrba1oJ+vn6WimKOzvambqL3BpLa4sKyUsqysrJeHmqmmpZGCjJOlloqBdYqSeYWOkpCeoJOPk4yPjZSjmZaclZWjnqqfkaWajI+Pj5WWiHyPlpOSo5qVn6GctaWQnpalo6Klnp2mmJ6Vl5uko6mnorKsqLzAw6+ls7fMv7mvxLO7vsG4rMLDwsCXandfVlVZWEpKTElGRERIQ0NBREw6NERJOjs0PDhFLjEyMzUyQjI1U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+aUhfWGJaY2NWno+cjpeOnpKJin+KoJOEeIV/ln9/kIiKkYCWoZmup6SYwr3Hw8fF083Ozcu8wrewury0vcu8w8G2t7yts7+6va6vqKCpqLatrqmyt5ueraOooZ6rt7iqpbC/xbK+urSoq7a0rq6XlqWsqJ+RjZKyxaeWjnySlXyHkpmPqpmYk5OPkpWTpJ2TnZmUoaOinJifmIuMj4+eiFqQlpeSl6SZZZijn7KllaGWq6upp5ufppeYlpiVoaSopZ+2q6q6u8O0pbS1y8C4qrarsru4rqi4ur24gGhrWFVTU01FSVJNSz9BSEVFSEhIOTVFTTs+OD1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs+QEJGQnBFaklSZWFMRqWUnJeil6mWjJGDiKaTiIKHgpyEg5WQkJSPmqKfr76voce8xMTHxs7OztLKvru2sbq7vL7PtcO9uLm3s7G1s7izq6ecq6y5qqmnr6+Yo6+lp6SltcCxrKy0v8O6wLq0qLq2ubSvlqWtrq6ki5OUoY10wpp9l5mEjpeZjLGVm5qVkpKZmaWjlaCbl5qpnZuhoJmKjZCWnGBKlpyalZqlllWXsKCvnJ+klK6uq6WaoKWUk5iYjZygp6KatKmqs7u7u6qxssfAuaasq62ysqOhsrK0pG1rY1pXTU9KRE9PUFI7R0tJR0lDQz46S1U/QTo9RU0wNzUzNDpCNDRNV088SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiqlpmgoqiwmZGXh4uolo6Ik4WgiISdl4+doZujpbXJtanGusLDyMrJyMzNxr+7s665ucHBzLXHusG5tbqwr6+ztaekm6q0taqppq2smqSupaSorLu/qKy2t7/Bv765tLPEsrm+raOvtay5poibl6abdr+fhJmdjpOamoyul6GcnJeUm6ChqJ6on5maqpqhp56YkI2RnYNudpKimpWdop2RrrKjqpSoqpeqraOjn6SokZGZnIeUnaKelrGnqau5tr2ysq6+ubago6eopaacm62pqYtgY19eT0pLRkdNSlZMPU1FTktMQkNEPFFWPUFBQkRPMTg9Nzc/Qjc1VVhPP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH5lXkhFq5WboZ+7r5mVn4yTq5yRkpOJq42GoZ6Mo62Uo6S2xr60wLrCwsfJxcLOyMK+ubKvubXBwsq1xbLBvLW6qqitrbCjo5iqtLumqaarqp2pr6ejqqu9vKitvbW4vse8t7a4wbK+wbSqtbervqWQo5iSoqC9n4maoJmXnp6Pt5+pnKWim5yhmqiks6CbnaacqKqemJWPlJuLl4mMpKKUnaKdoLWvpaSTr6uZqqqdnaOjqJCUlJ+Cj56enJWppKGhs7S6tK2otbKznpyjpZqXlZiqoZ51XVpeXElHRUZNUUlNRUdHQlNMSkJFR0FWU0NIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoFkVDQ5LTE5ZlxGQ0OdcGJHRaeXpJ+ew62cl6WYmqqclpubj6qWlaemla2smKKrtsTCvL63wcLAx8S/zca7vbmysLmzv8PItb+wvLa5tqakq6ytoaGaqqvFoqSpq6aerK+roqmpvrinrb+yuLfHtrW5uMCzwMK4tbO0r76jl6OXlJyUrp+QoqOlo6OfkL2kqZ6orJ2doZulnr2hmaOfoqmsoZ2XjZWek56Hj4SNk5+koJ61rKWclbGnma6mnZmpnZ+NmJSeg46gmpuSpaSamKuxtbGqpaqurJuYoKCSj5CVqJ6UZV9XYFxOSEdKTkxIRURJQT5RSUE8R0lIXFJPSz1IT1U0QkY5PkhHNUNhW0tCTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNDZAOTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW1SRjxLeGVhVkuimqOcnsWsoZ6sn56uoJOjn5akoKaprJi2saKqs7bFxL2/tb/Cu8jCv8rHtbi1tLGztLfBxba+sbi1ubSfp6yqrJ2enqWkwaWfqq6gpamtr6KmqL21prG9ube2xLO0uLq/tMTBubmus7W1o52llZKUoa6gmaKeqKiro5rCrKmerK6bm56ZpqC9oZ2kmKusrKaimo2an5OeiY5Xf5afpaGguKqmk5i1o56xoJ+arpadjZiTnIGOn5eVjqKklpCmrbKqqaKipaWVlZ2Yi4+RkqSeiV9iWGJfS0hKSk5GRUFHSz89SkI5OUpKTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtNnp+hmZ7EqKWitKKds6iTq6Wgo5+sqaydu7CorLaxx8XBwrLCw73GxL3EybyvsLatsLSvv8S0ubGwubSsmaixqaqanaWhp8Ktm6yxnKqjrrGppKi9tqe3u76vt8SttLPDwLTHtLu4rLS2raqippaVlaSsop+gm6ersK+vu7KmoKmpmZmYk6KjuKCho5KvsKylp5+SoZ6VnpCQjZWemqKep7OmpoyYs5uirZqdm6yQnZOVkpl/kaGWj42foZSLpquvpKainKCekZGak4WLkY2bnX9fZFpmZEpITEpTQkNASUg7O0Y/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwyNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+joJygw6mkqrOipLWqlrOtp6GksqyuqbuyrbG1tMbAxMO1wMS+ycS1v8jCtKu1qLC5rL/Es7eurLa5pZiqsquqmJ+ml627tJuosJutoK60sqerubOourS5s7nAqreyxL61x6i/r662tamnrKGYl5KmpaKimJilr7iusrW2oJ+opJqVlZSkoLeipaWWr7Kyp6qmop6ampuWmKifoJihnq6yoqaNl66YpKuWmZ6jkJqMkpaYhZWelIyPnJ2Ui6ipqqGnoZielYuOmY+BhZSIk553YmdcamlNT05OVD5DQU5DOzpJPzc3Uk9dX1JWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDEtLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJb2hVQ1dGjHlmQzuko52ipr+np6+xoam2q566sayjq7S2sbC5t7C3uLjEvcPHvb3EwsbAuMDFwLqptqSsu63Bwre3qayxuqKUrbGtspakp5GquaqfprGdq6CwtLOqqba2rb2ttLO5uK25scO7v7+mxKuxt6+pq6unn5iZq6GioZGYorGvs6ywuZqcqaCal5OYp6C2qaajorGxtKyzqKyfm6Cgm56lnKKXnaOzsJqfkJOlmp+omZSinZSXiJOWkpWWnJOIkJqZlI6pqKafo5yXm5KFjpmLfYuVhI2ZaWdrYGxtV1BRW1VBQkVUQDw7SUE3OlhQZF5QV1dFWV9eTUxSTl5LSj5aY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNjEtLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9qJ+doqq9oqqwrKSyuKqmtrWsoK21va+zuLu6vre2wMK/yMS5xcLAv7jEvcG3r7Wnq7eyvL6+tKiusbaelquuqK6XpqiOp7ufpayzn6yisbCzrKq2tLW+rrCxtaywtLPBu8a3rL2wsbisraqjsqaepaqfpJeRmqCzqrOrqrOanaecmpWOoaaktK6ooa2urrGotK2yqqScn6iknpWimZuotamWmZKSnZmdn52Qq52Wl4SUloqdmJyTio2Wl5qXpqWjn52WlZeSf4+UhXuNkoKLlWRrcWdvcV5GWWZWREJNWERaOUhCNj5cUWhcT1ldR1teXU9NUlhkSkpDXGJfUEtNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVVxnSzaMemZMQKSaoaWtt6Wtqqavrreqr7W7p6axt8W3sba9wcK1tbrEvszGucPAub65w7jAubK0q6m6trq5vrSqrbC1mJinrKqsm6urj6u+nqyusqOroLGts66utrK5uKqur7Gota+1vL3Ks6q3tbG0r66nobSgm6itoKaWlpqasqKtoKavl6GkmpqTjqOlqLOpoaazrKu2pa+yta+kmZ2sp5qYn5qZq7ejl5ORjpecoZeWlKqdmpF/kpeMnZyZlpCKlJOemaWioqCYlpKTlXqLj4V7jIqCipFqbXdtdXthRWBrWUlIWlo9e0pGRDZBYlRpW01cYUtcXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVF9UXy81KENfUVwuK0IvSkdQW0czY1lUS0SZl6GxqbKqraakr662qbe1uqSstLfJu7S7ur+/tLO3w8DMyLzDvLa9v7+3v7yxva2nurm3tsK2q6yxt5SWp66rqKOwqpSvu6StsbOnqKOytLGysbWxuLSpr6yyp7evt7TExreptrassK2pqKO2oKCnsaGklJyZlbGep5ygqo6po56blpimpqW4p6OytayosqeusbaspZmgrKibnJ6clKm4nJSOjoqYm6KXj5iloJyTgpCUj5ybl5aViJaQmJqnnKSgkpaRkJV2hI+He4SBg4uKbG92dHt+XEtlbVxKTmRcP2J7R0k4R2dXZVxMXmNNWFlXVVdUaV1PT0hgXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOR2YyNydHYkxWJS1CLj1FTFE8M3JrSUNDkZqlr6Wur6uopbGztKu3srihq7W5ybmtwbvCuLOxtcLCzsXAwb20vb+/ur68ssSnqbmwtra/vK6rs7GcoKexraamr6WdsrWtq7GyrKmotbustbO1rbStqqyorKm5rrKxyMC5pbqwqayspaiusaalo6+kqZydnJuvmqOjo6ORrZ+koKCiq6anuaSstbalq6yprbC2rqKeo6mqm6Cbm5KktJmOiY2HkKGglIyUnJ+SkIONkpKcmpeVk4eXk5WZp5ufnoySkY2Qdn2NhXx7fIaJiHBycX18fVxTZG5eTllnXEZElltHO05tWGJbTGBiTlZXVldUWGddUVJMY1lbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvKzEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISis6SD4zQkhTLD6QaztHSI+cqquiqrGlqaWztbK1trKyoauuvcy6rcC6x7G0rbTCw9LFxr7Asr7Awru+t7vEp6y3rLK3vMCvq7GsoKOnraqopLCjqrKqsKywr7Cuq7O8p7exsqmzqqulpaOtuq2qssO6tq27qamnrKmosqaqpKOuqqiinpyjrZWlnpiemaydoqepoq2mpK2ruLKyoaqioKyvsayeoKenqZmjmZmPoKaXhoSOioueoI6KjJWajo2EhY+Un5yUl5SGlpSTl6ScnJyKkpCNiX9+h4V8dn6FhIVycXCIdWtfWWBuYlFzcVxLO4R8Rj9XdFhhWk5kW05WVlVXUVxhXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE7XEowLkpnREY4O0IwNUVLWDFAlVk9TEWVmK2ooquznKqqsLetuLavq6arq73JvLC9tsKvsayzxMPOz8O+v7TAwsO6v7PIw6uut62yuL6+sq2tq6SnqrCop6ixpbSuq7GvrbKxtKy0vKS4s62sr6irn6OesLerqq27t6W3tqSpp6urqq6hqaemsbKkp6WhoayXqqGVm6CmnqWiq6Sto5+nsbiurqOmo5uqq66pnaKlpKSYn5uWj5ickoGCj4iFnJ+Lio6LmI2OiYKLl6KbkZCai5OSkZOjmZuaio6Li32GgYGDenN/goB8cnWLpId4a15gbmZXZYdjTj9nk0xFYnlXYllSZVRNVlVWVE9cXWFVS05oVlZXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlZaLjBKZ0FBPDxCKzpKT140RIY9R0ZEl5OxpqOssZirqq22rLayrKasqqm8wMC3uLK7taayr8TJy9G/wLu5v77BucG5wMStsbWxs7rAvrKwrqyqq6i2qqaur6q5sKiysq+zrbeqt7entLerrKWpqpyknrSzqaiktLWgt66gqqiqqKunoKusqbm1qaqpqaKqoK2ck6qhnaCloqajqp+dp7SvqKaqo6OYpaenqpyipKOgmZigkY6PmI1+h4yHg52dhoOKio6NjouChZSimo2MmZCSkY+Tn5eZloyKg390hoF/f3h0gn55dn6Ah52Pb3JnZ3B3XGFziGtPXplWSG14VWRWUWNPTVZUVVBPWFtiVUhPaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjEmLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EPJaOsaKmq6+arKWtsLS1sKymsKqour67wLCuua6htrDIx8jRwL69u7vBvbrCwL6/rrKysbW8u8KxsbOrs6mktailrbOzubGjrriysLK7q7qwqq62q6qfqqyfo6C2ramhn7CzorWqnqinqaOqoaKsrai9r6yuraKoqKCsmZCwoZiioKennqibmaqxqqOgrqKhlKOjo6iYmqilmJeYno+Kh5WIfY2GhISjloSBgYuGjYuQg4OTn5aIkZyQk5CNkZyUl4+KhoZ3dIF/fHV4eX95c3N5Z3+GpHZpX2VrgHRniIx9U1hvXkp4c1NkVFFeTU1SWmZOTFZZZFhHUmhSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQDSRkLOhpaespKekrae1s7KrpbGnqri+wLyvp7mqpq+xycfI0cO8v764vb68yLrBuLCvtLG6u7jAsrK6rLisorSnp6yytrmzqKi9tq62vrC9p66staytnKmvo6ClrauonJ6rs6W0qJuqp6mjqZ6jqaipvay0sK6dqqShrpybs6OWpJylpZ+lnJupq6afnKuinJOcoqWemJeoqZKYmpSQioKPhX6Pg4CInY+Ffn2Lh5CNj4N/k5qThZOijJSRi5GbkpWHiX5/cnt6fnxoeHx5dG9we2eEeISJZGFnYXKEem1neF1eVD9Xe21UYlBRWEtMTnJ1XUhaW2dZRVVlUEQ+Sk9EQ0E5SEdLUz9qYkpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0JKN0dTYFUqPTlEVz0qkJWymqCgqqaloauluLOzpqmxpqy4wb21r6K4raiosMLJyczBtr3AtLe/usi1wrWzsrWyvLe5vbWtubW/raCzp6ursLW4tayfvr2qs8G0vKGvs7WqrJ+tsKOcpqmqpJ6bpbGnsKCfq6mnoamcpKihrbyorrGuoaujpK+fn62ml5+boaOcn5yapKujnJulpZaXlaCjl5uXpayMnpGRkYuCioCAjoB7mZSNiHt9i4aPjYuJhJKYkIaUo4mSkoeQmpCTgYl9eWt+dnl4Y3x6cG9vcXZngHNqhGhlZ19sc41sYWlvYG89WnlrVV5PUFFKSU1UWldNXV5sV0RXX09eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+KR00OSYnLjM0LjArLzQmLDokNDFBaFkxM1M+ZV9ETDZLVmRPKjsxTlc9I5SZrZqhmKilo5+opLiwr6SvsKmruMG5s62fua+rqLS6yMvIv7bCvq+0vbfEtsOyrrmys7+0ur23qLm4vaqjtKipqrGuurGqnLy9pbDBtbair7a1p6ansLOfnqSmqKKlmZ+sqKmeoKuupqCmmKOooLG5n6Oxr6Gsoa2knKemqZqam5+klZ2dm56qp5ecoaqTmZSZn5OZlqGpkZqJjpCGfId+go19fKCMjYh4gouEiYuLhYeTmo+JlZ6IkZWCjJeNkX2FfHNwfXF0dGB6eGhtb3BuaH1xY3ttaWViXWWFfl9ac2pxSkl/aVhaTlBMSkhQUlFJT1xfblNEWFpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1CKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo+L1dVNSiXnqeanZetoaGhpKK4qrGltLSpqLnEtbOtn7etrq2wtMbIwLa+wbmwtLy2vru+r6u9sLO+sLzDuai7urenp7WoqKuxrbOxqJy/uKatvLeyn7G3sKilp6+xm6GkoKWloJebsKehn6Oor6GfoZSkpKK3sKGmsaufrKOvmJyqpKmfl5qepZObnZuep6uanJ6ml5aYlp6Ok5eiqKKQiYuPhnqEfoSKeo6WiY2GeIGHg4eLjYWNk5iNj5aZio+XfoaYjI96gXpwcndvb3RfeXdka2traGeCbWVya2tkaFhhc39eWmx1aVlFfV1bWE9PS0hIUlVHMjpeXmxQRFdVWWVNSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0SEJnW0hUQ1RdaEUuOzFeUSwylqSjmJadqp6moaOhuKmuobu4pay9xLOwrqK1r62tr7TExL2zvrq3sLO5uLq4uq6tv7O0uK+/wbervbq0paKzq6iqs6yusqOdw7emqbe3q5+zu6qnpqivq5mip5ykp5SYobOmmp6lqamcoaCUpZ+kuamkp62mnqWhqJOfqaGhoZmbnaGSm52XoaOsnJyaopaTlZabjpOTo6ekkIiKjoZ5hHyFhn2cjYmKhniAg4eIh5GFlZOSjJGVlI6OlHuCl4+Ld398bHVybWxzYnl0aGZpZ2VthGdnaGRmaGleZWJpZlllemJgUHNUW1tTS0lHSU9TQCEraV5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc3YUwnMp+kpZOPpaecnp6epLWtp6q6t6esw8C3r6yita6nrq+3wcC9scG3sK6ytrW5uLWsqry0r7KxvcC3rry8saSftqymprWqq6+hoMWsqqextaystLqeqKmrsaWYnaqeqKWSmqauo5mepKqhm6GcmKCdp7amr6quoaGenaGVoKafoqCZnJqck5qelaafrqOYl5+WlY6VmIyPmJqooJCHioqIeIV3goKCnIeKgoh7f4SIhoSQhJaVj4+QkZCRjJN7g5WOhnN/fWd5cGtrbGd1c2thZ2Ric39hZGVmZWlpYmZvWl5YXWxjYU1nV1tgVklHSEtNUlg/OWBsaUdCVVNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssL0EqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGJGJTWdpKGSjK6gmpmgl6W0sqOyvrehsca7urCwo7asq66pub69u63Asq+vrraus7mzp6u5sa+us7a7tq+5vqymnrWroKGxpauwoKbFobOmsLOwt621nqyurK6imZ2nqqaflZynpqCZpaOpnJqfnJWdnq2wprmnrqKhmpqemZ+jmqWdl5+YnJWaoZOpl62om5SenZSNlZqOlZSYp6eNjYqJjnuBdIKCi5iFhnyJiISEioyIkoWTnJKRkJCRl4+Qf4GNjYNwgn9neW5oa2pncXJrW2hjYXJ/YGRna25rZmpmZGxcbW12cWFTYmhjZVpJR0xNT1lRUFZhZYFUQFZSWlRGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjQ8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUhiQic0lKOcj4+xnZuUoZups7CfucC2obTCu725saa2sKmupbi6uLisu7Ctq6u3qrW5raWytbGvqbG2trGztrunqaC2qZ2fqqOqrp2rxJmvprCxt7WsrJ6xra+qopudpKypnJWcp6SemaqjpZWaoJ2SnKOrqqm6nqekoJeamp6hj2ujlpmdcYOXnKWBdpKsqJ6Vl6KSipiZgJeKn494hZONg21pfneEcmyGioZ9hIqGb11kYGeEl4Zri5CUknV4i4R/g5CAZ4iAaHZpZlhdaXRuTlBqY2ZxgmZeZGZva2ldXF6JkIWIaE9LQzhFVGddSkhQUFVWTEhTYXB0ZUZbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOXEtbZmI+RzFOYTwrL46kmoiVsZudk6Ccq66ro73Fr6m3wri+vK2ntrGmq6S4tLOzsLmuqqestKWxtaKnuLa1qKettrOutK60oqmftKueo6Wdp6ibsL+VqKextLmtrqSoraqrpqGfnKGoqJyXoaamnJynqJ2TnqCZkZ+oqqO0r6Oio5yWmJmXo4ihj5KaiKGIlZ+if6WAqK2flJSelImEcniMjoOIoHWIjWmXiWZ+c3mgb4eHg36MfH+hoJ+Zf3uHnnSIjnabimyHgoNuaWVke21yYlSGbWNtaZhxWGlwboZXXWlba2paiHBteXKHaIeEWV5GTT5GXk1FUlZWUVBSV1RnXkxaTFJSUEVGRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk6LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTlxMW2dfPUsxVF43LyiNp5iEnaydmZmdn6uqqKq/w6+yury4wb+qpLexqqymtLWur7O2q6mlsa2ltrObrLW2tKanqLOxrbKorp6robOpoKSlm6KlnrG4laanp7e+pqynqaqrp6aioJmhqKSamaejpZmcpaqWk6OclZSkpqahtqSjoKSYlZSYlJyIrpCYlYqqjJijnYaxgaWunpWboJd6gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsXlobFixrm9labySvG5oem1wj9h+U2titrJ+gHGUdZqhqpBWTlhhT1ZORlVcWFFQUotcV1tQQFxEUE5DRkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV5nXD5MMVpbNDEhj6eUgaeqn5ednqWtsqmxwr2ytcC1uL/Cq6a0ra2pqLC1qrC2tKioprWlqLmvnLKytqqlpKeyr66xpquep6SypKKhoJecoqCyr5afpKG1uqKqqKCsraSinZuao6qgmJupoZ+YnqiokZynm5SeoqejobCjnp+jlpeTmJKZha9raouOqn9ohZaHrWZxn56Wm6iXca6hpH53unxsoY92sV9qtFulgGWckGBmgXpmf2l4aqllvnJnpox2sWp8sXh1kZRjbW2nblyEoEVpZ4eWRXWcYH1me6Omgllfi6tof5F4emqoOEqvW1hUbWNaTE9YX1xXVjtOiFBXVi9JU1NKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy8uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWDMxG5KilYOtp6Wfo6WrsrittL2+sLfFsri7w6epsKywqaqxr6SxurClpa+zo6q5qZ6zsrCjpaGqrbCsr6aon6OisZyjnZmWmZ2esKmYnKKgtbOhqpuhrKyfnpqXoKOqnZmepaGdmqGopJCdo5uYoaCsn6WmoJqgoZaVkZeRmoa1m7V5hqqatpl3h7Obt3+Ul5isl39rgaZ6gYWHkZSSd6tnarFbrHuOh5R0iHCOhoB/iJCXeIOCipeMg6CPhbB2d59xa2ttfItPpVhIY2OZfmNopV95cXVSkodeUKluY3F8hoBhnS9Som5bVGtnYExLXGRYXFpCPrB3V1hBI01pRkJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7Ri0wLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YVQ1MByXoJSJs6amoa6pqLOsqru2wrC8w625t8Krra2vr6evs6qir7yroqi1raOstqWlsrOoo6Kdp6qzqbCopp6goLCWoJqWlpeboLCjm5qkqLWvoaiPqaeqm52WmKCmqZqfnaOgnKCjpaSWm56Ymp6jq5ulmpyaoqCWk5GTk52E1ZOZuXGxwn/Gh33WlJy7fZyXqJKPnY2ke42GooGlgnqseY+dVq97iX6farlauXeFhH2mgpR8mXqqeY6dkHuxbY6EdJC7hm+VUK+nxYpRoHpjYKpic3KHbJeHX1K1tMiFf4l8Y6QzQp11XFBqaGRQQFhmWWRhSkhNa0pbU09ZZlpDQz9FPzA8PDU5PDc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdIOmFQNzIlnKOTmbGoqaWzqqW0p6S8t8GwusCyt7W9tLaosrGksrOmoK+2qZuouq6jsLKhsrSxoaSenqipsam0qaWcnp6sl5mZmJiWmaKsnpuXqa6xqaOejqyip5admJyhp6KYoqGioZuio6icn6GelZmbp6GcppSbm5+gmJCSlZCdiLJuaLVxq4hwjqdztHV0tnucmaaOkJ2No36PnqN+sHWDkdLSdVyufIV/pG6bqqZqhoV9rX2YmZB7sXOTnY95s2WWdIWebp9mlFLJi1rCXJ95Yl+tX3ZzhmKXiF5Zyp1vwIB0TUu1U1XGZFVRamNlWEFPal9saVBVRkk5PVdSW1ZZSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxBTlRfZVA1Rz1hTTYyLqOekaWvraWpuqymtaWntru8sru/uLe1vLy0prW1o7Kyo6CssKWYp7qupLKxnbS4qqClnaGqpbKorKqlmp2bqZ+WlZmZk5SkqqGYk6ersaahlpKsn6WSlKGcpaeglZump6Kbo6CumqGenpCWnKOfnKWUnZWZop6VmZaSm4WsfHiodqOPi4epcK6LhKiEmpqji5Oai6J9kpeHroR/grNccrJTr32CgqN+cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52d4dnmIhqXa93lZ+PeGw1ecius19DVG9eZ2BFUGxfcG1WVU0uZWNoUllQO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdCYEk6NzegnZSft7GZs8GsqLKnqrK6uLS5vrm4s7e+tqa5taG1raCgqayglae2rKixsauttKSbqaCgqKK1p6aqpJmelaWilJScmZKVpKeblJCnrbCloJSYqZ+ij5GimqmmoZWapqmenaSfrZ2hnaCOlZ+cn6CYmJyWl6GglJiRpp2HqX5/pnmhj5CEqnCtjYKnhpehooqYl4ijgZCGlKp6f4udeXCxWqiDgoigeHTYf3aHdKeBjpuNkqR8lZCfhHuyXpxkoH2ClW6TXKtcW5N/kX9oZ6pjcnuAapiGcV6rWomgj2tuZU9KQ6FcWk10XWJmTVphX3J0X0pVNkqakVhIRT1HRUFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxPZWRBJlVmWz8xVF9iTDdGSF9DMT03op2ZmL6tmLPCrqutqKa0sLixtb+5urOyubyqu7ahsqWfpqenn5Sqsamwqratqq+hmKKgpqSkuqOjrKGXm5GjoJWVnpqUmKGhkI6MqbCwpp2Wmqemn42SpJiorKiVmKmon5+gpK6joZ6hjpWhmZ+gkpyXnJWdoZWWj6ubj65ucrR0qYx3i6Z0tHp1tIKUpqSUnY2JpIeOdbhui3uLomtrtlqhhmWXl2igoqdtlHK0c5OZf7NqhZKIrWp1tGGdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6YhnBcr1Y8nHdmVG9uLlunT2JSa2VibFpiXGBwfGNTWlE+P2xvMkJCQD5NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFBOKWam5y6o5yxv66tq6unt6m4r7XBtb2ysbu4q8K3qqyhnaekop2Sq6untqOzqK6qoZedqKClq7ido62clpmQpaOWjp2gm5ieoJGTlau2sKaZk5usqZeMlKaapa2jkZersqSgnqissJmho5CZopegm5abl6GTnKmdlJCqmYfUlJq7dbHEgMSHftaXnLh5ipKZjpiKjKeHeaK2dX13dsKCmrJhg7p5wHx1uGK1gYyHqX2WgqypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gYptmohxbY2kdL1dd31bYXm8alpWW2l5XmlhZGZibXlvWFtZQ0FAcT9DRys0SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9UXmBLNTxMXC02QDmnmp+hu6OYscOvramqrLGoua+3xbG7s6+8sK7Bsq2mo5+kopyckaqlqrKktaetpJ+WmquZp624naOumZWhkKagk46do56Yn5qRlpOvubCrlZejp6eUkJalnaStn5GgqKufm5+ppLKeo6WOp6KVopqcl5WkmZCwoJKVqp+FkJm2gJKSjbiWeIOTm7Z3bmxvdG95j4SOiXKewbu8mXqBsqhwgHSRuYN8hoaKh417ioaNl32ku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycXe2jF5/eX2JZ4N5bXlii6xwdYV/WFunaURkWVRmX2NdY1FnZnFtdUJNT0xEO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+nlrPCs6uqqKyrqruvscavtbSwuKe1ua6rpKKnn6CdmZSspK6qpraoqJ+clqGknqylvqehqpeVnJGim5KQoqiik56XkpiUsrW2rJieo6Sii5OSppymq52WqaWmnJmgqKeno6mhkqyel6Kel5aYnZ6QsKmUnKeij2t/apypeYl0f5uPdntmh3u+v8C6b5KDcZSFX3JqWl2aiWFkh46Va2B/lGNtnHZilGuAmpWUZV5gY3GaiWhyjHyGlGZqfnF0eX59Ylt4dIFoUFxug3x7impYbHmBcklKb4VwTnNNRFZcZmBMWldmY19PWm12anJST0RFTTxISTxMPjIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVDRlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPlxPJz8yPqifqKHCpJq0ubajrKaup6i1sqzIrLC0rbakvrGzp6Gkqp2jnJqarKeupKW1qqSbmJWinKetqb6oqaWVlJuWoJqTmaapqJGfkI+YnLCyvqybp52noomTkqmbqKScnKyfo5qaoqesop+qopqum5WmoJeVnZ+dmLGlmaKomZ2Sn52kppuopJudmpybkZeCaG59cneRl5SQhIm0qo2FmJWOioyYloeUlYmDk5OQiY2RlJmTmZean6Gam5Sfm42CeqSFbGl7kX2AdYmLgnKCeHl2dYqAe4lqc4J0g3Vkd312a3B6bF9iW29nTVhZZmpfV1lwem9tZlNPRlI5UFpOUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsbG3oKmms6elsLWqyautsqa1psCotKGepaacpZaWoKunraOkt6ygmZeWoJitqqbBn6yklpKcl5+YlJWin56jqJORmaiossOvmaucqp6PlpapnqucnqGtmKGbnKGlr6ahpKierJmXpp2ZmqGenp2woZ2ip5aZlJqUoaOXpKCZoY6XlYuLjpCYro98lZuCkYGJqaiGgJeWioSOn4h7hJGGhZqRh4aKlY6bl46QmJ6jlpmSkJyNf41lobOuhImEd3uQin53eXpvZ3mQgYCJa3WBeYhyaXR/eXWDh4FqdGN3ZV9oZGNkZmpYa3txamtcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAs6C5r7+tq62xsqCqprKtoqyzsMawq62ks6+8pLScoKijoZ6Zl6imqaakprO1npWVnpqasKauvqGsopGRnpqalJKWopyXqZ2Fnaqso7THs5+ppKqWlpiap56pnKClq5Sfn5yfqq6opaOroaybn5+hmKSenJ+dsKSZn6mUmZmek6abmaqfnJdmhJN9ZX+Pm5BjeYxsaGp6kKOra2SZl35nhYplZWloeo2ijmtojJeRondraouZop+Yc2xueoSMhnlYZV2Fgl5si4qCd1xnc3d3kYCHgm94gnh/c215hHN3iIiOg3tphVhdanNkXXOIaWt8cW1jXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1dX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSi42Wk82KUVZL0RPMVlCOz8uPaWfur26r6yzsKulqK2usKaurrC9saqopa6wsJ+tmKCknqKamqesnKyjpqips66elqSQo7CmtrmlrqOPj5qimpOSm6CZmaaWe6Wsoqi0w7eloqevn52VnqOeo52kqqiSn6Cdn6qvqaqjqp6nm6aep6CslqGcpbGkl52slqKfm5SmmaCsmZ9+vYSJc7RzhZ+GrWh3ucS4cZKho3ummJhzqoJ8y8DAunGLo4eDnn2WmIiewL2Clp2djZzBwXyBepGMmsLAfWulsm+NgW/Ken+bd5GDjoB3eYGAeXF7gIZweIWLk3lsdZFiZV53Y19lgGJedGhtZGJYS1ZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2FfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0NQLyNGWzNQWS9VQUI7LziWornDtLCvv6mplKOvqbCvraaytq+qpqemsaugq5ibo6Ccm6qnop2roqWopaW0pJ6jk6aurLi0p6+ikpGZnaaTkaChmJugnoimq6Srrb+/saGpr6mWkp+eopmjpKqjk6ChnZysrqirpqOipZ+kpZytqZGkm6muqpyeq52uo5eYppeipJidf86UenulgnqWl5tfrY9djqiAoaF9p5WbdKuDgK9eZIyqe6iHhaB0l5OIs2OCq4agjY2zaoSvdHyWh7hhgq5Zo81ukHZ723t/mXF+iJJ1f2V7iHZ2bH6Hbn2FkJF9a4CMX3Bqb2ZgX3hkW3FoamNmYFJUU1deSk9DNUFIRUQ4PjU7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11bV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrMHAv7S0sLeYnpGjqqmttaymsq2srKSsprCqoaecmqaYnKKvn6GfqKejpqGfsKybnpamrq2wq6isoJSSm5+lk5CfpZedqKOeraOqsKi/xbOoqbGulpOenKKXoaqqn5Whnpybra6mqaibpqajoKqSrLOWpaKqqp6kp6eisqKTm6eboZuVlJGXoHGGjJh2haiHcbF8nXGsfaCggaWPnnirgn6tf51yrX+sh4afdpiSe3yXfqqIoYuRi5x9q3qIko+ff3qtVpzEe5Bwk8F9gZVtdXCMbWZ3ZYZvYXducm6IipCPg2yPjmRtc3VvYGZtZF9vaWpuZmNXU1xgWlJSQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/Txseys5+do4+joqKtr7evqbGnqKqorqurp6KknZqjlp+mq6CipqCoqKOfnrCtmJuWqKevrKinqZ6XlZqkopKUoa2anaejr6yirLWpucyxraauq5aVnJ2imZ+urJ2WoZmdnamxp6mom6qoo6Gqm6+xoqirrqaap6urq7Okk5ikppuVkoWkaqR1inqpdXuycYKlipiMcIigm4ekX2FSq4WAroOcda6CqIaGn3qZl4Z7ZoCjiqSYhoGjfal/gZSGrl57qFWdopKBeqOfgHzEsMWMc6+0s7lyYqmvwnVojIuXjoFsmJBubHh4d25rZmRkcXFme2ljXFZfaVhYVExMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICcnISstIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLWwsKmto6inqqurqKSmoJuln52mp6aknayaoqyho5+vo56bk6qktbCuoKmbnJaVp6SRm6Kon6CmnLCloqixrLbHsbWprKmVkZ2dopmgpbSdmqGUm56nq6mirZqrqKGhqaKzraKqs7KinKupsLC4pZSXpKiZnZJ8qmyehIh2q3l8sG6CpIuJn5aVnpaB0ri0uMmBgrJfYZSpg6WIh6B6mJaaearJdJqjlKeokJKajH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4OTZI6PnJF7b5WQfW55dHx6bVtlanJxZoBqXmFYY21cXllJTExKRURCQT1BPEE/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTAxrmtqbKuraWinbO5rKuhppuopqqsqaagpqWYqqOfrqydpqGtmp+ppZ2ntaCjmJSoq7ayrJumnKCWkKatkpqcp6OgqqeuoaOnqbCzwbGyqa2olImYnaWboqSvppehlZebpaWpma6cq6aknqujtqyhsbmwnpywqLS0taaWmamkm6GPgp1OeJqCgJ96hKN8gqSEhqafnJ+UhLh8fHq5gn/MxsO2d5uikYuffpmXl4p2n5eKpJikp36vhZuDnoSsfZmUYaVso3CPhZCBfZaEcqxgpHNxgJphvH1SVXWOkaKWe3yRjodyeXKDfXBcbG53cmqAblpjX2huYmRdTExRU0FIR0ZIOjpLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Kss7Wmn6GVpa+urqinnqWlmqSnobKuoqmns6CaqaSUo7Wjo5WXoam1uaSco52jk5Cispmem6aloaKvrZykqKK1scKwraqtqpGHkZynnaOknaWXnpiYmKWjp5itoayipJevpbusore2rp6etrO6s7Wpmp+xoqWfh4/RtcO3eoeOhZGTj4CmeJSid4yhkoWlg4tyq4eGtG5yaZmknZWKn32XmYeHkHOugqWbooymipOciJSQmm1wslylc5N6nGyZf3uZfm6pYaJycn6fYnOyuGh3j5Okl32Ki5CIdnt4jYFsaHdpeHNufnRcZGRtbWVoYEpaV1g8SEY/UzNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krr+/vLu1npeopK62oqOZlaOpp62pqpmlop+moaC1p6Kpp7GklKujj6StpJ2QmpqqtLSknaacqZKUl6+goJ6mo5ynnLWZoKqjtarCr6mrqaKMhI+coqGmo5aampyYmpelo6WXqaesoKObrKa9rJW+sK2fo7G0u622qZ2rtKWpmXuokX18sHiLgKSliJxtsm+hh618oo+DqJeagayJhq2FoJSooKOXhZ+BmZaBe5J+q4GdmZaKqnedoI+Ik5J/ea9do4F8pqdknoB8l3Rrrl2lbHKFmV1gW4ygbZSQpZiCk4uTiXh5gZZ+amx9Yn10bX95X2dlcG5nZ2hCWV9aPUpTMlM4QUFDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JODE1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZWVVFIRklKIygovJKbhKnGw7bBtJ+araCuuaajjpqjo6Cvrqmfo56drZmeuaCjq6CvqpquoZGqqaWWiZqPrbCsp6Com62YmY+toqGdpaGZpJytl5+opbaovq6kqaOfjICOm5ugpp6SlJmak5mZpaOimKeqqqGjnqmovaSXw62ro6Kss7utsKmjtbGqrJl2r36QipyFh326rYmYZLCMZZatfaGPg6eXnIKti4WwhqeapKKikYWgXGxrgrNgf617e4KAsWxmbpmXi4ixWn20XKSDa8iiZp+Be7tZdrVasn1Tr4F6rFiAoW2XjqeZiJWOk5R5d4ybfWNzfGKDeHSAfGFqZnBtZmVlT1VjXEFUXj1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vbu0wbOjnK2mpbepoIuZoJ+dsrGonqKfnbWYoLOoqquesK2erJyVrqiijoibjq+sqaejqJmuk5qPqZqhnqWemaOipZieoqixqLuupKienY99i5uWoaCZkJGam5KZl6ien5enrKWkpKKkqbqfoManpqmhrLW3rrCpob6wrq6XgamSo66Om4CGpJeYkICAuMO6g46dk4SomZ2DrIuDr4qonJumq5F+1b3CqmKkv719f6OCg9e6t7WElJKCnr2+hGqjgW+rhG6df3qysceDa6uwva15eKK+u3SAlY2lmo2ZjpSad3+PmXlifHpkjGd5gXtga2VramFQYltTaVxAVGBCTCk8OjQvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0sb+6sr2zop2up6azpp2Ml6W/qbavp6G/pqaym56xnbmon62vpaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp6nm5qgqKKYnaCrrKm4rKejmpeTe4iZkqabk4+RmJiPl5OomJ6WqKeeqKahoqu6nqnFo6GwpKu0tauyrKO+qrCwnHR2qqS3hWWJn3BnrJCKj25ud6WPmqCBdrGbl3GRjnKXqaSbmK+kcmxtbWaLeG9ug5lxgHppcGlniZaVl3FoaYWGZ3CGZF2KY2lvWl1nfnimYGJyj5JwZmSAjZKOoZaVl46Tm3qFjZN0ZIZ3aIxqeH55ZGxjZmxiS2VXSmtZOlBkRFAnSjkrIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6ubKzqqmirp+ks6qZkr2xw8e8tKmev6uso6Cnq6C6o6StrKymjpatqpCMhZWXrZ+mqqKfpKOgkYulkqeZqZmWo6mglpylpaauuaqsmZqTknuEl46ml46RkZiUjZeUppOdlqeima+mnaKsuaCwwqiltKessbKrr66qvKawuZeLoamltZyJlqKYhqmbkJSdkqq0mZujrKK0mKSin6KjnaKlopasp4ySk42Hk52dlZCZk5iQjpWEf6Sal5WOi5OSio+GhH5njIF0g3d0h4xxp219lpOUlIGBj4+OjpySnpSVk56AhZOLcGiPdm+Kd3Z8eWlsZWRvY1VhWEBpWkdiYE5YK0U9KyYhNjQwLx8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbeurqKwpa2gobexkY6qxLzDubapoaSdm6WdsKikt6edqbSlp5GYrKOLiImPnKeWraShmqienpOVo5eomqmZlKago4+ap5igtLmnqpiakI18gZWMoZSLlZGVkI+Sl6SOnZinnpu1o52mq7eor8KvpLinsK+xrqustryjsb6ZkqakprWikp2mno2pn42Sn6KtsZqhpLKrspqmop6lq5+fnp2XrZ6TmqKclJCXq5mNmJiWkJaekYegnpSUhZOMj42Vi4F/Zo2IdYh3eomEdJxqiJKWlZKJfYyWkZGXkZ+QmpOdgoaXhXhxlHJ5iX9xe35qbmRfcGlgXF9ZbWJQYGRPWDlGRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlqSoo7CzrK6jqaetoKi1qpCPm6Oyua2qq6GimXqcorGkprGplpu4paKUmKmcjoaKiZuikK+epJaooKGSl5mbrouqlo+omKeMmKiOnbi1o6WYm42JeYKUjJuTipWRk5CNkZahi5ycp52et6N/g6+1o7CwdaS/pLKgeHqirbW+l3eupaCKgKl+ZFxidp+OpJ6Dln5tlLSco6ivrKVmoKGUdHqbmHCBmaqZbICjqYplnKWckZeYlouSm5CEnZuQlIOTh46OkomFeGuQiHaHcXyGgYFhaYmMlZOMW3aVkWdoj41xeaGWlWR4mIWAdpdog4mCbnl/anBlX3Zva2tnXGVjYWFvUlk9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHR0lLTFRVVVldYGhmZ1hRSTxERzw5VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqqWprqSnraWSlqq0rrClmamlqpdzi52vn6irp5SWuZ+gj5yknpF+iIiano2smqSVp6KejpeRnoV1ro+IpZqokZajiJu5s6egmJiLiXV3k42Wk4qTkZCUjI+Tn42ZnqWYm7KWgIybtZ20jZKPvaehfqeje6WxuoOOj6efhIuFj7Gpr4yJlqKaeYCLrIacnqOpq6mJloeZd6ace4icgZing4F7nbN7ioagmJmVmJaBkJaWg5maYnmIkYSOj5KLhG5xkIh6gnGBgYaAh3SHhZeTeJZok3SgmnR7mYKcmoSYfpGIgYKYaYyMhGt4e3FwZ2R4bmlsalxkaWllcltcSFNMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaWZZUUg5REw8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2YpJ+mrq6rqK2gqbGnp6mlmZStxbyvoJSlp7Sdj4Ocq5ymoqCNkL6emY2fmqGRfYaPmJeIrJ2jlqGhko2UiYaAkaiOh6Kco5OWnYaeubGnnZqTj4VwdZCJlJCKlI+Om4uOkZ2QlZ6jlJ2rh5+0ibSarovKiKuvireFjbCEs7GFqY6nmI2dfKiPcnt3nI6mlmiVpHm0jKCgqKqTmcKCgKuJmaFynoCbpX2XhZWzgaF9oZOfj5iXgI6UnImYkot8hZOGjZWTioRudJKGgHtzh4GEfYV1hoOYgY/FZoCph4+iap2BnpeAmYCKi4OImG+NkoRnd3R7dmdodXBnaGteY25sZmxYZUZdUUwyRTQ2TWBjNyYzPEVHRDo2MzY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQElkWF1jZmhnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6OgsKmpqKasoKW5samrppqUnqKkqaGUo6m1oq9/oKacpZ6diZS9mpONoJKdkHmDlpWRiKuZnJuaooWPjHebnI6gkYieo5uWmJeGorispZmbjY1/Ym2Pi5OQjY+MjJeLj5GejZKeoJigp36hp4etnaCWrpCgnp2Rh4Kgja2xiKSOq5qMmn6idoCZlGuBq3VNq3iHjZ2SnKqpgqqrfoShfHunap6Ak2xnl4aYt4mefm5gY1iDl3+Me2Rni3OZfXmXbF18l25gU3GFXGBteoRgWWWCfoWBmXGoq2uDo25ypXCfgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbXRxampvXmpvbGtoV2dOXVhFOUA0R0ReazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUktNQkpbXV9XXl9jdWBNRTpNTk1UYlxbZmZpaWJiZGFkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJeeoLmhqqSmrJKitr2rrqKZlp+gpaurn5yttKGnkaCfn6abmY6ZtJmQi56MlYt1gZSRjYqmlpaYn55+k4WGrKSHnJGKmKiYmZmRh6WvpqKVmYiJgGluiIeLjo6Ji42Ri4+RoIuSnZ+boaV/k4GPo6GUoHeclpCng6OpgIasr4eleot9hJp9onBzk4eVe56MeW2HnIyakp2qnI+HnX2DonR3pmeefnelXph7fZNzom6Yt7S6c5KIgYC2qGSBxrh8cJW2jHGAm6NjdKyrYX5qnbN+bn6Ig4+DjJhxgKNsc6RznoJ+o16cmbOWb3uXnrN0cluesoJpYm9zdXFpb1hra3JyZFtnXWFMRD1ENVFBWnAyPFJHX0pSPTwzOTU6OjZDPDtASVA/VE5OUUBFX15bWVhgYHtkSUM4TFdVVmNhWmZma2tiYmVhZGNgYWJgZGNfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi1ra2gmqGboqOkrJqasayrkpegmKCkmZqUnqybi4mReIuFcYCWjYqPoZCTlJ2XfZGJjqigh5iPipKik5uajIqop6Sej5aHhH5re4d+fY+Ng4uQkImOk56BlZufnKCfi4l3nJiijaByoYyJqYmdqJGYqq2Arox9eqCZeaOTeIBzl4iMnH2Vn4ecjpqdp4ijZKF+ipaQm41tnmibjm+amXuAiqd9cmh0qoOdgnOqZ5SaXZuFdoWdaKpqgbhmXKlwgZxhlYxfp3Z3ioqAnWiadYeTkpiOf55tmZBqpplcqH53u2p9qVqOhF2zZ1tucXh3a2lbcGl3eGFeZVZhQlBFTzdWQlJuNEpaWl5OWkRAMTUxOzs3SD86Q0hVP1lTWF0+RGJdVmBRYWN8aUVCOU5bXVhkZlhmZm5tYmJlX2FhX19gYGVjXmJkb3FgZGVla2RjaWhna2mWnYmqtpyoiWOVnKy7srCrnaWbmqefnayZnbCnqp2Wopmhn5mWlqCjmYaJjWmIgHJ7l4eMlpaEkpSYj3qKhJaknYmVkIaLnZGcm4iPqKGfmoyRioCAaYGGeX+WjHuIjY6IjpWZfpKhnqCik5hyaJ+KoI+McJKMgqmJmqGlqqOqfrCtpKK4l3ajs6Kjf4iUeJ16qpl/oo+enZiJmHKhfYeNsLV9bJqRoXh+mbWjo6uohJl8mnycmn5zqlpdb3uXi3ieYk1/e3uFZHqYQk2fWaJqc3yOb4KKhJl2m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B8fW5mX2xodXtiY19QXVZcVFZAWUVRZ0VSVlxhWF5JRD1COD9BOkhFOExFWEFXUlpWRUZhXFpgS2BtfXFFQzxVXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lZHZsXmVnZmxkZWxoaGtplJ2Bsa6ahFNeoae0urOzqJqii5qpm5unkqCro6Cnj56dnJqZlZihnZaHh4l3hYFueZWEkJuLfZGTlohygImSoZtykpCBiJiUn5qEjqibmZWLiop8g2yEhXGBoYx4hY2Ih5GXk3uRop+eo4iuhn21hI+enXumlnqpgpeekYyjoH6naHdtfplzoHNxfJ2FmG+Tgq18o4Snn5uCpHBeqWh2o2RwpmGc0498e5l4cnNjooaQfqJyoo91a4+zi2CCmIp0qrKovH93g25/v6aqtF6cb39yl3CCc6JyXqRndKZgaKZsmtOYeoKbbnZ5l2ubeXaXcmyppWdfZHlwf4NsaGZkbXV3Zl9hUlplUFFhSFdJVF9XU1tkaltkUEVDS0xKS0FKRDhQQFBNWFNYT1NRYGVlaVNkeHl3SUZFY11lWmhpU2loam9jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZmhsaJibf7GsVF1LfqmvsrWwsqOcmISXpqCgooykp5+XqYmZl5iTmZOSoJeOh4Z7cH2EaHyPg5OagneRjo+KcICGj5OSbJiUfIiRkqOVg46pmpOSioWJeYR2iIBugZ+Gd4CShYeYoJV5kqKjmaCJs6Gitot6rKekrqVwqYCbkYaBnpR9pIGimoaYcZ6Eoq2uiZeLf4ykjZWDr6OVd7W2tsmic5SLgp9gnpepbXmWh6CbdaGHd6B+kJaLgW9MZqOScZuIc6V7enVig4JtfqBscmRgnHN/dJdre2q0trTGpnOYfnqcapqaq3SBmmxzd5dpmXl0l3FQRH2zXmp2a3iHZmtmYnN0cG1VXFJYZ09SaElVTFhSVVxna25VZ1dNSkFKTUtIS05BUUpQZGNqbWV1c3N+eHtudYl6e1VRT21eaFxraVJqaGlsZ21nY2VfXFxcX2liZGhre19dZGdjamZubGVpbWWinYmwqIVlQJShs6yvr7Wioo9/lqeioaOLpKacm6aCmpeWjZeQkJuSjoiDeWt5hmWDjH+Xn3l1j4iMgmqFhZKEi4WdjXqMipWlkoKXqJeMkYuAiXqAfYt5cI+ghnmBlIaIlZ6UfpOlp5yWloRnbnicbKJkfHKleJyYcGingpmOfaV7oZeDlnKfdoCJlJWPuW2PiqJifZmjl4luc2ura3WgbW+mYJtpi5BploeblXWigX6aYIuGjXVviGJooWaef2qbdXBkZ4iCb3KiW19bZKFuXomMcXyAdHJkpW54omRmp2iXcouXbaFvUoiPbqBeZKdUi11UmG1tcmtxgW1waGt4c2tvUVZVVWVZU21JWE9cSFhoaHNqWWtWUVJFVlxNWFNhVWhqXnd1e3xwfXxygnt/c3eOgIR3XlFzYWdicGdQa2hoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqrCxpp+Lf5aqnJ2ki6GhmqGhgJWYk42aj4uXkI6KfIZxgIhoi4p8l5pzdYl9kHxlg4eViomVmoJ8iIaWpo+AoauQhZCKgYp9gICOc2mPpYR9hZOMh5efjYaRqaadiaZ4lpx+pYmWjLKZnpGEr5efpXmYiXupdaeQhJpupaKMkoSMg7xtfKWvgoeGh5WXnaJ+pntyqJSglmiffm+sY5aKlpN4qG2qo4GJdYiCd6uRpohrkrFsd7OMqWyLhm9voJ6SlWJ/q4yqd4GAjqefd599haSVnaBomod1q2aerYy2c3a+jKOTWYOmjathdXJ0b3t1cGJqfm5nbFNVWVVgYFxrTFxSXEldbG12YFtxWFtfWmdzZW5vcWNxdGB3en55cnmDcoN+gXt7jYGCgHdieWRjbnNkUmxnZ29tcmlnaWFfXlxhamJsbHtvXFxiaWJtaXdtZ2xuYpamq52BgJ6klqmqnqinrqOZiIGWqZmdo4mapJyonYSLmo+FnJGFko2MjHSFeoiDb42FfpeTc3WGcpGDbn+LkoeGlJB9e4KFl6SNf6WljYCNiYSUdYKHk29si6iAgouTjYibnoiLkqqioJCAdJSXiH6BeZSvpH+CnHGPhnmSjYaAe3KojXF9fXqXlpuEjXh7fX2IlJWTi3eRmaGihXx/iWuMhVx6eXN6cWlvfpOKcYB0go+Uk3GGhIJljX9fgYGMeHd0lHVwem9viW+Fhl93aXiOZ4KDho+qnH90fZdqiYhvfnV8g3VtbGaMc3h7l3eEWmpXeY9pbndycW93eG9da4VtaWdWWV5WXGRrZFVhVV5RX293eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV5gnV/gH+AeYuFgn58boBtZHluXlduZ2l1a3hqaWlkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbqpp4uhopumpJmknauioIODlqqRnaCJmaaaqJiDgZuLfpaUh46KiYxygnyOfH6PhHuXjnRyhHCVhnx9kouGho+GeX6AhpijjHunoIqFj4+ElYOGjph3cYSqhY2RnI+Hnp2Gipqon6Cqg4mOlZt/foqXraiQk6iReHGfk4R8lHB/qodwfZVxam98gZ+Lf5GOi2huXYSNjZydoJBzl4yIcXRrg3Z0gFlyb4eRgn5/jGpdaWR7hYSIgGBpeHucfIONg3aCh4RpeoyJbGJxc4N3X3ONg4qRqJaHZ42Pg253i4Jvg4t3bWRlY3mCepVaW2lmbXZbe3l3dG1zcoNmXG2Ka2tiWVhdWVhrcVteYFleXWVyfntzb3Rjamppe3xyend0ZG10aGx7f3V6fXt5eX+Af3CGiYR7fXN+enJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyrsaGQo6Gan56Ynpmoo6F9gparjJ+Uh5qhkKSVf3uYhHySmYmIhoaKcn2Ai3aFi4KElopyb4BymIeEfpODg4aKgnqAhIqan4+CpqCGeI6XiJWLi5yXhIN6rIGQl5mTiZ2choehqp+hoqOLiJObnaOZlquiqKehk5yJmZB9epCQhql/f5KRkpOcsaWalJ2PjbGSmISmjY2WnaGKkZ2DiZKKbH2Od3dmg4aRi3yJnoWHi4+IiIGFhJF3fHt1m6SKiIugjIeWf4CNg4F3cXWGhX95iYiLkaeRhIeOiIOMkIt6hYmHjX91aoCDfHmZaXFoYHOKcH17d3Zvd3SBXV5vh2duX15ZWlxSZ3FVY1tbYWxodHt8cm5wY2ppaH97bXh+cGhvcGxmgHtygoB3f31/hHttg4yGfHp5fH16g3hOZHZqc25xe2VrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2InrqflqOhmJWZmJSYpKCde3+YqY2djIWfnIqdlnx4lIJ7jpmJhoOEh214gH9ygId+iJOEbWt+epeHhIOQfoCGhId8h4ONm52Rhqmeg3KKj4aSkouckXyNe6mDjZGXlY6bloWFm6afopqdhoOSmpmZkJmmoaaenpCXgpOMeH2Jj4WnfH2PkJGFmKmgnJOcjo2pjZKAno2JlJughI+Yf4iPhHB5hnJ1YX+EkId2jJiBg4+ChoR+hoSVbnp2dZSkjI6Gm4aGkHWBjH5+c3N8iYV7eY2PhZSokIeEj4KDiYmIdIOGhol6bWp8f3ttaGtsZ155fmd8fHZ0dnV6d1xgcH1tdGBjWltdUGZtU2VaXWFqaHV6fnBsbGNqameAf2tyf2tqdG53boR5boaAdoKAfYV3coONh358e3yAe4KLYGl7a3ZoaYNlamNgaVxjdWdvYnVta1RicXllb3l6cmVqbW2Lip+4mqGkn5OSlpeLmp+enHp3nKWQm4mGpJOKmJl5eY2FfImRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hoSHfY+Aj5ubkIimnH9wi4uMkoagoYqFjHynkIeOkZaSlZJ3jKOgoZ2Wmn+BkJqZk42ao6Kkm5iSnICQh3uBhY+IooF+jY2QfJekoKCSmZCQpYyPgZyRiZSYnH+Tk3+Ij4J2dYJxd2F+gY6Hc4qWfYiMcYx+goWGj2h4cnmNmpORgJh/iYxzg4l9fXJ6fIyFe3uSjoSXppSNhpF8hIWGhHSAgYWFeGRxen54eXBramZefXNnfHV2c3xyf2peYHR2cHdkY1hdXlJqaFRlWF5gZ2l2eIFxZmtjbGdlf4FqbX1nbnBqfXeFemuLgXKBgX6BdXaCjYZ/fHqAgX1/j2pyg250aWKIaWxiX3FWdG9sbmB4aGxXanR2Y3R6enFia295iY2fs5Klpp2OkJiPhpygmpt8daOfjZd/jKGKiJqWd3uGh36DiX6IgoF/cH56dHWChX6JkHdnY32Gl4qCio14fYCNg3mWgJWXlY2Vn5p9b4uBkZOFpZuHjImDppWEkYqVl5KRdpGdoaGYlJh6f46Yl4+Xmp2lnpqUlZ17koiFeYeXjp9/goqOjXOXop2gkpiOj6GMjIOXmIOTlpp/mY59io6Cd3J+bntkgHyLhnGHk4CRgmuHg4GAioVmdm99iJSajn6UeY2LfYKJfnxygHmLhnqFkouMmaOXg4SMd4eDgoF1en+Gg3Ned3d8c313ZmtjYH5panZzc3V9cXxjY2FzbnVybWFZX11aa2RSYldfYGhrdHmGcWJqY2xmaHyCa2h0aGxvaH98gXlsj4VxgIODf3R8g42BgH56goN+fJBtdYl0dG1mimxqYmN1VoNpcG1geWdsYWp2cGV4e3lwX3FshYWQna+Yp6mejo2Xh4Wfk5WXfHeom4mYeZaci4yZkHh7gIt9fIN7gIKBeHN4eXN9gIN/iIqAZF59i5WIfoWHdH1/in9+mISWk5aMo6CXfnKHe5ORiqaPjI6KkqCRg5CPk5eQioGPmKCakpCSdICOkpSKnZ2ep5mYjpWYdZCRi22HmZCbe4iJkIlvl52ZopOVioydi4aBk51/k5OWiJqKfIuKgnpyemt2bXx/jH9uhZODlHhvgoR+fouBZXNqfYKYmIWAjnSSioV6iX93eYF+h4F9hI6GjZWlkXmFgnSIhnx/cXN+hYFsYHp0eXB7bmFuYmR7YW1vdnJ3d3NzYXZgb2x1bm9cWl5dXWpdT1xXYmFobXN6iWtfaWVqY2h3h21mbGhpbGeAfHp3bpCIc4CDhH10gYaJeoN9eoGEfXyOcnmLeXhubIdraF9pcmKHaHFvZnZnbWxhemhqfHt3cGF3bYuBmZqroaSpnoqLkYaJnoqUlnx2rJeMlnyek5GWlIh2fXuKfHuAdnd/gG90c3pvhX2BgIl+fGFcfo+Rhn+EhHN6gIZ6j5GHkZGbkqSbk4F9gXyNipKjiY2KjZaajIWQl5KVjomIjJKdk4+MjW6EkI6RiZ6ZoqGYl4qXk3CLm4ZniJqPlHqKhZGLcJaak6GRkoeJmIyCf5KffZKPk4yZj3yLhoh0c3ZrcW92fYt1b4aRjpNydIB8goKJfWVxbXp/m5V+hYl0koyCdYp7cIJ/goh9hY2Kho6Wqo57iH1+ioV3fW9tfoOBYmd3c3RuemFeb2BqdF5wanp5eGxycGV5XW1sc21zWFpdX2FqWk9XV2RjZnFxf4dlXWloZ2JncY1uY2hoZWlngHp3dW+OhXOBgYN8dYKJhXiFfHiEhnqAiXd/i3t7c3mDamtfcGh0f2txb21xZ29rZXtibn96d3Brd3eJf6OZo6ihp5uIjIqBj52Gkpp0gKmUkY2GoIyVk5CAc3t2hXd4f3Jze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYF/f6CGj4qRnJegk5Z3iX6AjIicnYqPhpKXloWIlJiOloyLjY6MnYqOkYRuiouPkYqclqGcmZaGmYlsh6WFaIieipJ/jISMgXiTmJGdkZCHiJSNf36QmXyRjZCOmpJ9i4GEcHZwbG5vcXyHanODj5mKcXiAdYKJg3pnc292gpuQfYmFepWTe3iKdXGLfIeOe4uHhYqPnKWJfIR3gYp/d3dsaX6Af1xxcnFvb3dZXm9gb2peb2p8enBtbWptd2Bwb2txbVlYYGFhbVdQU1llZmJ1b4SCYl1rbWRjZmuSbWBmZl9naoF1cnJvi4B0f4KAeXaAi4B5hX53h4Z2g4V7h4yAe3eKf2pxYnxihXxvcGx1amhubHZ3X3F+eXt0dXN/gn6llputn6eWhYyDfpeVg46ddIqfk5KFipqMlY6MenJ3dIJwcoVzcXWIbG5sdGyHdoN9f21uVVGBq5SHgniAdnKDeYKggpGBkpGXm5GZd5F6goySpJqTjoiUmJKEhZaYi5OLiY6Ph52EkYt9c4uFiI+InJmfm5eVgZWAaoifiWiIoYiThZKEinGDkZePmo2Pi4qOjXd7k5F7jouNkpeNfIl9gWx3am9sbG17f2J6fo+WgXd6gXiDjX16aHVtdYiXjICJhnyVkXJ7hnF4jnuLjnuJfoSOkZ+fhn19eIGKfHZvZ2p/gHded29ta3ByVV1uYXFhX2xueXBncGZndHVocWxhd2VdVWVgYHFSUE5bZWRdeG+Ie15caHFiYmVlkWlfaGVbZ299b2txc4p9dn2FgHV2f4x5e4aAeIeDc4aFfoyMhHx6lXhncWqDYId+b29re2BpbXR/dF90fHiGeHNzhXx5oZCasZ2mjoKKf4KZiX+KnH6KmJKOhIiXjo6OhHd0dnOAcG+Fc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfHB0g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYicf46BeHuMf4iMipycnJuWlHqOeGmLlIpuiqWGlImXg4ZjjJGYjZSJlouMiYtwepWJfI6Ji5SSinqGfX9tfGVzcGtte3pcgXmQjoF7fn+Aho97eml1a3SMkIqDh4Z+l41tf4Bwgo6Ajol+hHuDkZabm4x9d3iCj3hybGVufYFqaXRvZ2hzbFNdb2RwWl9scndma2tjZ3hzb3BjX3dgYVVrX151T05LYGZiXHhwinRcW2V2YGFkZI5jYGZiWGlzc21rcXaLfHR5hoJ2d36Lc3+Gf3qJf3GJh4GRioh9fpl2ZXNufGWHf25va4Baa255eXJgdnp7jXZydop2ep+MnK+boJCChXiIlH57iJyHhJ6QjoWMl4STjoeBdXdweXBuhG9tbn5yY2R4cHxuenxqaGxipJrB3K7vonNsdYN1hKGEkW6Vj5Sfk5qAkXCFi6OXiY6VipCdlYOAlI+FiI+AkoqKl36He3Z/iXiGhY6bm5eZj5B2i3hwiYuNf42mhpOLnYWGXouUl4mOiI2KioSJbHyXgn2IhoqSkIZ2hn5+bH1keHVqb3p0WIh6kYeGen9/gIaNf3pmdGuBi4+LhISBjZiGbYN3b4mTg5KFf4J7gZGXlJuRdXR4h4x0cnBlc3eAYHNtb2FodGZSYHBna1VfbnR5YXNjYGl9cXJuW2NyYWNWblpcd01NTGNmYV12c4ptW1xkeF5gZGaEX2NjXlhpcmtua3J3i31zd4SBeHh8iXGDhH19iHt0i4iIlYaMf3+Yc2h1cXlsi3tudHCAV3B5dnlxZHZ5hoxodoCJcYCdiJmonKKShHxwjJR3eImcg4SfjY58lYx/moiEfHN3cHNqb4FraWx8dF5geHZ7cHR6Z2BlfOvatcnD3IlzbHSAdoqaiIxpl4+Om5ORgYhwhYigjoWLlYqMl5N8jZKIgoiPepGLho+CgHd4g4Ryh4KTm5aUmIaNdoiAcoeEi4mcpIWWjp+EiWGDlY+FiIWIjIaAh2h9lH99goWKjo+Ccod/gHJ3aHZyaXR4bVqMfZKChn2Ag4GEi4N2YnVtioKRjIOAgJOSfm+DbXqIkYiUhX2CfoGTlJGYim9yeoyFdGtvaXB2fl1zaG5caXRfUWRxaGZTX3B2dGBwYF1ognFyaldnaWNpV21XW3RMSkxlZl5hcnOFaVtcZXleXmRnemBkX11Za25lbmp0d4p+c3KBf3t2eoh0hYN8f4d2doqFj5iBjYJ7k3Zsd3Z5eZN1bnd6fVh5hXGAbmd4dpGCZHaGhXGKloaaoZuhioZzb5KLcXaNmn2JmYiJe59/g5l/gnlxdG5vZHJ+aGZsd3dbX3h6enFxf2lhZ2F/1baOkaZ4bnF3e3GSkIyGapiNiJqQioV6aIeLmYaBkpGGhpeNe4yMgICJjXuQjX6JhXp1e4N8cYaAlZmOk5SCiXaEiHiFgo2Vn6GIl5Ggf4hhf5OHg4eDiIx/f4JmfZGAfn+DjI+Rf22DfYN1bG13dXR3dmxjjYGOf4V/fISAhYmAcWB0coZ9kI6DfYCSinpyhWd7hYyIjYV8hX+BlZCSlIVvcHmLf3RsbWlpd3phZ2ppWGt0WVJocmliUGJyeGxiZV5aaoNuc2JcZ19lbV9vVFpvTkhOZmRcZm5ygGtaW2NzX1xja3ZkZV1dWmxsYm1qc3aGgHFvf3x9dHiGeIWDfICIdniJgZKVe4mGdomBb3h5e4OSb217gHZeg390gW1oenOUc2dzh3xykpKEmp+bn4aHdXWUfm11kpZ9h5CDio2ZfIyadn52cW9samF0fGdiaXV6WmB3e3ltcX5lZGhoV52PX3Jzl7zEhHZxlIiPfXGWi4abkouHcmqIj5aAe5WMgYSajHyKhXx7iYt/lIh1iYZ2d36BcnWGgZ6UhZSPhIRygYp3h36Lm5+aiJWPnYGJZn2Tgn6EgoiJcYF9Zn6MfHl/f4eMj31pgX6EdmdweXhzd3Rsa46FioGKgHmCgYWEgWxfc3l7fo6LhnyCkIF/c4JqeoWJjYeFeYR9gpmOkY1+bm17iX12dG5mZXt0YltwYlducVNTbXJoYU5mdHhmYF5dWW+Ab3NZZWJdam5gcE9Za1FEU2dgWmpubXxuWVtdbWNaYnB2Y2ZcXWBraWNsanN2gYNwbX58gHR1g3qDgnyBhXZ+iIGWkHiEinSBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0a5ONhp+ZoJmEiG59jHZpd5eOfoGKgpSXiXmPlW96dHFsaWRgc3poX2Vxelphcnx5Z3F5YGVlj7Gyd0tiWqXZ0JZxe5CKj3d9k4qEmJCLhW5rhZKRenmSh4GEmIp8hn94d4mKhJaAb4uIcXV+e2p5hYOlkISTjYR/cICEeIZ7iJ2blo2VkZWFiHB7koJ8gYKIg26Ad2iAhHhyf4CDioh8ZX5/hHZkcXOAaXlxb3WZjYaDi313eYGFeoNrXHJ/c4KJh4p+h4p7iXOCb3KFiJCGhnOFeoKajY6FeW5vfoR/dnpkZmh7b15YdlpYcGtOV3FyZmBLbHd0YV5cW1p1fXJvV2ddZmpxYG9OV2hSP1hmXlpva2d6cVtaWGtlWmNweV5nXF5lbGdla2lxd3+Ib2x/foB1b4J7gIJ/gn92gYWIl4lxgo1xe4Z8enmEk4x1anl+a29+dH99b3J7epNvboF+eGeSi4OhmZyRgoVmhoNvZ3mViH1+hIKYiYF8jo1peHNra2ZfYW95bV9ib3hcZGuCemFxdl9lZdTqvYsyOj6Ljn9xeIWHjY11gpaMfpKNjH5tbIWMjHV8j3+FgZWIfIJ4bnaHhIOXd26IhWx1e3VmeYKDp4uCj4uEfm6BdnmGfIifko2Rk5SOi4d/e5KGd36DjIJrf3JogH54bXx8gouDeGJ6hYJyZHJpfm51cXWCm4uAf4WAc3Z+gXOCcFxuf3V5i4SLe4iBfol5e3JtiYSRhYxzg3qAl4yMgHVua3aAgHVzW2dndW5XVntSWW9kTFpycmVbSXB4b1xbW1lddH50aFliW2dlb2RqTVdmUT1dZVxddWVgdXBaWVVuY1lkcXlaaF1fZ21naWtpcHd9jm1pgoR+eW6AfH2Bf4J5dIGBjZOEcIGLbnd+gHt7iJKJf2h6fWpze3KFenN2fX6MeniEfXxrjI2Em56WjIGAbI19a2h+jYt6fn6Dk4J+fYqIa3ZyZ2hiW2Jnc29fYWtzYGhwiHlic3ReY2SboI9uXDVar7V0aYCIfJKGdYWVhXOOiol2b2yFg4d1eYl4iXyTh3l+cmd1iX5+mG9xhn5odnluZnmHhKSHgIeNin5vgHeCg3+Om4iDlZKZiouFiXyPiHB6fYR7aH5saoB7emp6d4KIgXJgd4F+cmRyZ3aCbXV7hpWRgXyCgW93enx1f21ZcIB3dY2Dh3iIdoOJe3l0b4uBkYKGc4B+f5SJintvbmptgYF0bVxmZHJwUFp6TVtuW09bcm9kVUtzeGlXWVlaYXCAdGBdXWFnZGlpZk5ZaE1AYGNbYHVhXXVsWFdTdGFaZG9yV2peYmhqZ21saHB3fJNsaISKfHxwfn57gYCBenZ/f4qLg3F8h29xd4N/e4mMj4NqfXttd3h2inZ8eH+Ch3+Dfn16bYWMiJmjjYSDe3WLeGtshIeQeH57gpGAgH6Lg3BzcWNmXllmX29vX2BncGZqboh0YXRvW2FkanZ7gL+cpqTIuHGEgnKSfHeGkoJzkIuHcnJvg3uDdHSHdIh3lIh5eXBjd4d6gJNpcoR2Z3d1Y2p8goidgYB/jo9+c4B1h3uCk5GEepePlpCIgol7iIhreHl+dGd6aGt/eXNpenaAg31oYHiIfWtrdGh8gGl2gYyRlH56f39xfHZ8dH9iVnh+c3OLhYJ9hHGHinh5cXGEg46Af3p/fnePhoR3anFpbIeBcW9cZmFxbUlkdUtdbFRTWXJuYlFPdHhhUlhYXWFwgnNbYVxpZWVka2RQW3BJRGNgW2NwXl13aFVXVnZdW2VuaFZrXmFpZ2VubmhwdnqTbWmIjXh9cnt+eYKBgXt1fIOIhoNwd4RybXeCgn6Ji5N/cIB7d3l6gYx0gnh+gYGChHmAdW9+ioubnoh9hXp3hXtndIWLkHl+f3uIhoR2j4BncG5fZFxYZVltcmFgYHBsa2iIbmF0aVleZG6Ad6naqceGh7JxiHdvjHR7hY1/epKJf3RzdH53gHBxf22EdJSFeHVrYHqCeYmPZnGEcGd2blttfYCQk3+AeZGTfnl8bop3gpONhXWXi5KPh4WFe3+EbHR2fmxndmRte3ZtaXd3f398YWJ4hnppdXVjfntndYaOjZV7dIF3cYB7fW6AWld1f3B2hYh/gHptiYZ0emx2gYSFf3x+en10i4F+dGh0ZW6Lg2xzWWhec2RHbW1LWmBXVlV3bWJQUnR2WFBWWF5hcYRvXGBjbWVkXm9jVFxyR0JmX11mZ11be2JRVlx0W1tna2FWal9gbmVma3BncHZ4jnRrjo11fnZ4fneBhIF7c32DiIeDb3KAdHF1foWCiY2Ke3d/eIN7fIaHd4d8fYF+hIB7fnJ1eYyNoIyJeYl1dIN4Xn2Fl4t4hoNzhYaEd4l7Ym5tXGJbW2FWaXNjYFtnbnBmh3FhcWZXXWNrf3zKzoe5oWptbYpscYNxfIOJfnqQhHl4c3l1dXtqbHZjhHWSgnZvZl59gnqLimVygmtqcWNYbXqFm4iCgXOXlHh/fW+KcoSLjYlzmI+RiYaLg3t5fXBwb3xmaHFibXhxamtxeH19el1leoB4anZ4ZoN3Z3SHjI6UfXKIam9+gXlvfV1Zc39udYGLfIJvcIqAcXdpeICCgIJ4fnN8dYd9e3Nnc2Fui4FrcVdpXXZbR21qTFZVXVNVe2thT1R1clBRVFdeYnSFaV1gbGpmY1pvYVhicEhBZ1xgZV5cVnteTlVlcFlbamhdV2hgXnJla2dwZ3Fzd4Z4bpWLdH96eH55g4h/dXJ/hoWOg3Bwe3h3dnmGhoeMhnp8f3SLfn2GhIOHfn5+fYd/fHh1eHiRk59/jHyKbXV/eGSDhpWFc5GKb4WFgXqDdGRuallfW1xdVGdyZGBZZHFyZ4ByYmtlV1tgan93vq57oLZuYXOFaHN7cXiBhHp9i353d3J2b3t2ZWpvYYd1joBzamJef3h5i4RmcX9oa2taVm93iaOBhX9xmZNygXp3hG+Cg5OJdJaKjoiFiYV9eHRxbmh5X2psYG12amdqa3l3enZaZ318eWZzfm2FdGV1hY2Gln9wjGdre4R1bnViXXF9bHV9jHuCZ3aHfm5xaXZ/eX+Ac35te3yCe3lxZmxibol9bG1WaV92VUppak5RTmdMWHtoYU5VdWtMUVRVX2Z1g2ZeYHFoZ2JXal1ca2hKRGpZYWRWWVV5WU1WbWpZXWtkXFllY150ZW1kcGZycHWBeHGZhnZ/fnd/fIWHfXVzgoiAlYJuc3l7enNzhYeJiYN4gX11j358hIqNg4GEe36Lg3t2e3d3mp2YeomChml2fXtsg4OSf3KOgXCFgn+Cf3BnbGdYXVtcW1NkcGReV2JydWp1b2VlYldcXGh/cG9ygHOJZGR5fWlzdXNygYN3gIN4dnJ1bmt6cWJna2eGdI2DbmZdX31we4l/aW15Z2pkVVdyb42mfIR7dpaRdX10fnxvfXySh3iafYiHg4aDfXVvcWxndFxsZ15sdGRnZWl6b3tyWWiBd3VocIF4gnZid4WLfJSBb4xrbXuCcWd0ZmFuemdzeIt8fmN3hHdqbHJ2e3F7enR/Z39/gHl3b2RmYm6Fe2xqVWhhb1JKaGpPS05vR116ZmFNVXRkSk9TV2Fqdn5lXWdzaWZgVmRXYnBdTEtqWGNhVVRVc1ZMWHVkWV5rYFxaY2VfdmdtYm9pdG9yfnR0moJ3f4B3gH+GhHp9dYKEfpeFbnJ0fHp1cYSFj4GAeot1dJB/fIGVjYCFhH19jIZ6fYB2e6OlinmIhYRrdXx6dYOBi3puhHN5hH2Cg3ZvamllVl1bWlpTYm1kW1hhc3tqaG1pYGJXX1tqgGprb4Bna2BoeXhqcnNzbYOAen98dXRtemhqeWpfZW5ogXaQhGhlWGJ3an6He29qcGdmXVRYb2eOqHeBenyQjnp2cYBxdHd6kIF5lnWGg4CFiHZqcXVnZ25bbGNdbXJfZ2FqeGh7bFtug3N0anCBfnp3YXeFhXmQhnSIcm95gHJjcWldcXhlcnSJfHljdIBxaGp6dXJteXh2eWSEfH95d3FkZGNufHxqalRoYWVTSmtnT0dRakVgd2ZhTVNyXUpNVFpla3Z6ZV5tcWlkXVZhVW5uV0tTaFdmXlhNVWxUSlx5X1tea11dWmNlYHlobGBvb3ZucHd1eph+d3+BeYCAh4Z6eXqDfoGThHF0dH95dnSFiJF9gHyQa3OVgXuCn4Z+h32AfoaCgIp7doSrn396h4eDa3KBeXWAfoF0boZufIBzioBqcG5kZFhfWllaVGFqZ1taX3WCaV5tbFxhV1xcbIFlcnR9aWlca3Z1Z3N2cWyEe318eHVybHlnaXhmXWVzaHp3k4FjY1RlcGiChXh4Z2lqYVdWWWdjj6dufneAi457cXJ/aXpwe459eJByhH5/f4ZuZHVyZGdnXGphXG9vXGdfbXRlemhddIBvcmtyfH51dmJ0hYt8iYiBgHhydX91YXBtW3J0Y3FzhXx1ZXOAbWFte3Brant5dnNmhnZ7e3ZxZWJlbXJ9aWtTZ15cVEtxYlBGVWBHYnZmYUtUb1hKTVhYZ2t1emRlbnFmZFpXXlh3ZVRKXGJXaFhZSFdlUEhieFpdX2xaXlxhY15+aWpfbnR4bXBudoOXenKBgHx/iYyGfXV1hnmHjHx0dXWCeXp6goyOfX6EiWlzloF6ip1+foV6gXp/fIaIc3GPrYx7e4aPfWRxh3lzfHp1cm+GbHt+bI96Y3BvYmVdZVZZWVdjZmtfXV1zhWhYcW5bXlhaXGx7Y3B3dWxiWWxzc2d0dW9sg3h+f3h2bW50ZGl0ZVtndWZ2dpJ5X11SZmZrg4J0fmJkalxUV11iY4+kaHh0g4aReW5xfGl6bnyGfHaKc4F5fHh/aGR2bGBmX15pXlxza1llXW9vYnplXHd8a25ucHh5dHVkc4OSf4iEiXt3b3J+c2J4ZFxxcWJxcoJ9dGdygGVebndpZWh6fHVub4J1dH10cmJfZm5ufGRoU2dYWFRNdl9QSllXSGJ0Y2FJVG1TSk1aV2lscXtibWxzY2JaWlthd1xTTGNdWGlTV0dZYE1HaXVYXmBsW1tfYmJchGlnYW54eW1vanaBkHltg3+AgZOIhIF2dIh0jIZ0cnZ1gnd8fX6MkIB+k35wd5aDfJmTeYCAeHp+gHSIg3RwmaF6en+JlHdjdYd4c3d0a3Rvfmt4fHCRc15wbmBnYmxUWlpXaGNtZltccYllU3JuW1pYWGBsdmNpdWppXlltc3Bsc3NzaYR8fn57dm5ubGRpcWNba3JkdXaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEknVsbHtvcHF7fX1zgXeAc3p6emRldWhdYllgZ1pedmhXYl1waGF3YVt8dmlqcm94dHN1aHGClYOHf4V2c2pxfW5md1hdbG5jcnSBenRncH5bYHByYmBrcn5tbXV/c3J4a3FhXGVsbXpgZlJlVFdRUHVbUU9YUUhjc2FgR1ZrUUlQWlVra2t8Zm5vcWJbWlhZbHFXUlBmV1ZoU1RGWlxOSHF0WF9jbGJYYGBhXYtqY2RteXhscGl1eYd7a4N9f4SafIOEeXyHbo+Hcm92en10goJ8i4+Dgpd0eIKUhYGfiXWBgIF0f4Jxh4J1b6GWc3uGi4Z6ZXeKbm16bmZ4cHprc3ZzjWtedW5hZ2VrUl1bVWdhbGtaXHGMZE9vbl1WWFVnanRoYnRlZFxYbXRtb3V0eGqGfH97h3aPc2Nka25hXG5tY3N4h2taVFZjZHh9fXGGXWRfY1RaX1lilZVjbnCDhYp0a2l8cGZ0eHV9bXp1dnB6f3ZfZXJjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXRxdHF1dmtthJOBiXyGcXNncH5xc29UXGdrZnJ1gXd0Y212VmJybFtfcGd+Zm13fnN0c2tuYVpkamp3XmVTY1RVUFRsVlBWUlBHZHJfYUZYaU9JWFRWbWhkfGlreGtiV11VW3RkU1JXaFFYZlRTSFpaUE13dlpfZWtpWWFgXl6ObmFma3l1bm9pdnaAf2yDgH2HmHuAh4GJfmuTiHJndIB7dYCDfYmPf4uTcnyKkYWHn4d7f4aMdIGGc32Cdm6ki3KBjYt2d2x6jGBke3BmeXN4bG1xd4NnZHxtY2ZnaFNfXlVnX2xuW15ujWhOaW1gVFZTbmd0a2V4ZGRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVxeX5nWlZYYGx4fHtwhF9jX2dWWF9XY5uIYmtwgYd9eGxsem5cd3Nte2p2dG9wfIBzWGltXlhcVWFiV2RwY1NeYmlhYmxaYX5sZmx0dm9td3dsaYWMf4l8iW1yZ3F9bnNuY1thaWlwdIJ0c15pbVNlcWVVY29je2Ryd3x3bHBta2BZYWZndFxkVWBVUk5XZFJPW05PSGRvXGJHWWlNSl9LWG1kYHhpbn5kYFVfVF11XFRTYGZOXWFVU0pcWVBZdHVdX2VraFhiYVtejXFjZ2p4cXNuaHZ0eoRygoN6iI5+fImHjXlukIp1bHOCdH9/iIWHkYSVj3l9jI+HkZuFgHyMhXOAgXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjYyMjIyMjI2NjY2NjY2Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjI2NjY2NjY2Pj46Ojo2OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERBUsza2NjY2NqwnaCgoKClXiovLy8wLEiFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTJG2Orn5+fn6bago6SkpKpWFRwcHBwXOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHhomTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaTlJSUlJSUkI+Pj4+Pj4iCg4OCgoKFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkZKRiYeOipCSkpOPjYuKkImPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYuKi4uLjIyMjIyMjIyMjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQkIeIhYmKhoiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCNhImGhoeFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkYmCh46IhIWIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjoiGh4aIhIqQj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2QjoyKio6Kjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCBgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9/f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX5+fn9+f39/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn19f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn19f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn1+f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYWFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4fHt7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3ent8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTk7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl7e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj06Ojo8Ojg5ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkVISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dnd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/QD48PkA/PT09Pz49PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkVDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjs+PD89PDo+PT9CQkVAP0BOYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk1LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFDREI/PUE/QURFRUNXdYaJin5YR0lKTExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm9wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpISUdISElHR0JERkREQ0FWdIeJh4eGiIJXSUxNTE1NTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExLTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKS01KS0lIRkZHRkVQbISHhoaGh4eIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz8/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9f399fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTUxLTU1JRkpWbIGGhYSFhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQUNGSElISEhLTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lJS0xPTk5RTlFecoGFg4SFhYaHiIiIiYmMjmZCQj44ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QTs5OTk9PT47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5/fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njs8Q0BCRkhLSExLT1Vne4SEg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY1NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODo7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn9+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9OjxEQkRGRkVmeoOEgoKDgoWJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc3OTk3NjY3NjU6Ojo6Ojw4OTg5OTg3Nzo6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT1BRV2tycnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PERAUX+Dg4OEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj48Ojw7PDs8Ozk6PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3J0dXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pj0/QER2g4OEhIWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBDQUA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEFAPz9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PDw6Ozs8Oz0+QUA+YoWDhIOFhIaJiYiHhoaGh4iJiouLi4qKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURGRUFGRUZERkZEQEI/PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj06PDs+Pj4/Oz89QD9DP0p+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqHV0dMTE1LTklJS0hJSkpJRUNERkdGRENFRkRCSElMR0dHRkhHRUtKTElLS0pDRkNDREJBQUNCRENDRERDQT08PkBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc8Pjs8Oj4/PkA9Pz9CQkU/aISChYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtGREdISElFRUhGRkVMTE1JSkdHSElKTk1PTUxOS0hGR0dFRUNGRkZGREVISEZDQT9ATG1wdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw6Ozw6Pj89Pj5AQURDSVN+g4SEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMTExKSUhGSklESkhHS0pISkdHR0tNTkxMSEhJSk1QTk9OTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVb3F2dnh6e3h4enp8fH5+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6Ozc8PTo8Pzw9PkBCRERNbYSDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIuLi4teUlJQTU5NS0pHR0NISkdMSkZLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEO0BBOz08OD89PT5ARUU+Q0VDR0t1hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUZGS09OT1dWUVBPUVNSTlNUT01TTFBTVVdSU1JQTEpNTU1LTkdHSkZGSUpEREVFQkRDY3F1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz08QT9BQUVVTEJJSkdKTHmGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlTWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0xLR0hKSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQUNGRENES1ZQS1BQTlBQeYaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLhmxbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVddWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01KTEpJSUxNS09NU290dnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SExJTVBLSUpPU1JRVVZVVlR1hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXl5bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktKSUlGQkRAQTpPUVFXWFBQUFFSU1JWV1dXV2yBgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaWlhcaGJHT1ppZ11bXF1dV1JOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpaUlNRT1FSUVVSVVNWXnV4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5UUVFQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fH19fX5/fX59fn19fn9/f3+AgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVlJTUlJUY2R2gIOCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUFFOS1JVUk1PWVFNTlFTVVVNUVNSUE9NTEhDSUdSU1RaXW1ydnZ1dHR3e3p7e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRgZF1eW1lVUUxJTElhbJJ0UFFTTlFSUFNbUlNSUVJVVWJze3x+gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5CQkNDQj9EUENEQEM+QkhHVkBJTk1HXWlRSEZPRkRFRkhHSEJDSEdIS0dEQkFDQE5QTVJkdHV2dXN0dnp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVJQVVlTVVFRVFJPVmBrbHN2ent4eXVybnN0c3l4fn6DgIODgoGCgIKBgWtMRz4+Ojo+QD8/Pj5qUEphRUZISUVCP0hNTUdNUVVKQkU/Pjw9PD09Pz0/QUNDQD88PUI+SU1GVW91dXZzdHZ4e3x6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKT1BOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJpbWxxdXt6fXt4enx8eHd4ZEJAQEE8OkJDQUFDQVtcTntOT09OS0xNT09QTEtMV09JR0FBPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV2d3V2d3l8fHx9fHx8fX59fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT09eXFpJR09RUU9NUFFOUVJTVlhTUllUTllaW1dZXF9eX2VgXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FXUE1KREY+Ojk2NTg2OTc5OjM2NTc5NTxCPWZ0dXd4d3l5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LU1RTUFFVT0xSU1RXWFNUWFFMWFlZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT01MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5OTg5Nzg4NDc1Nzg1OTlHbnJ1eXl6e3t9fX19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5NTUxKRlBQVVlTVE9KTk9VU1RcVlJVU1NPTUxJSEhGPz89Ojc4NzY1OTk2NzU2NVdxcXR4enp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFhZWVlSVU9KR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFBPTk5NUE5UUlBSTElMS09RUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkZBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjRAPmpvYVJSUUBHVFFPUFBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PT08OT1HNjY3NkRucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOERNU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FMTk5NSU1MSUtLTEtHRkZFRDxBQT47QEU7PDg5VHJzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1BQEI9PkVIRkRGRklHSkpARkFBQEZHRElPSFFSYVxRUFJPU05PT0xMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZFP0JDPj1CRz9CP0BkcnV3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0FAR0lETU9iZVBNT01XS0xOS0tNTUxMS05OU2RNSkxSSUlJRUJJSkxNTkpHSUdCQUJAP0VGRUhETG9wdnp5eXt7ent6d3R4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPSEtFP0I9OTk5Oj9CPzxBQkFBRERHS0ZESUlHR0hDQz9CPz9AQD1DRURMTVFUTEpJTVRGSUlKTElKS0lKTE1PUFJQS0dDTEdDQ0tKTE5PTklKSUdDQ0NESUpNTElac254eXh6e3t5fHZycHVydHl5dnhqcW9qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFIS0NGR0hHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRUpMSkVJSUZHR0NEO0FAQj5AP0JFRElNT0dISkdIS0RISUtNSEpMSElKTEpNXVJJSEROR0JFTEtOTlFOTE1KS0ZHR0pNTlJOTWNuand2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhlcEZLQ0ZFRkRFRUZFR0NDQD08PTo7OjtBREE/QkNFRUlGSkpMRklJR0ZGQ0I7QkNDPj9DQ0NERkxOSEpOSERIRElMTk1ISUxHRkZJSUxOS0pIRU9JQ0dOTVBOUE5PT01LSUhJT1NRUk5TZ2dmcm9zeHZ7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV3dlhWdXVrb3Rya292bGhtZl9wR0pDRUVEQkJBRUBEQj4/Pjo7Oz07PT9EQj9BQ0ZHS0ZKSUxIR0dHRkVDPz1ERUI+QUNCQ0VHSElHTVBJRkZGS05PS0ZISUZFREVJSUhLSUZIUEtESk1NUU5PTk9QTkpKSU1SVVVSUFhlYWFtZ3Fyb3J5emdlaGhjaWxmcWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFRkJBQEFEPEJBPkE9Ojo9Pzs+P0FCP0BCRUdLRkpHSUdGRkZFRENBQUZGQ0JCQkRFRUdHSEZMUExJT0pKTEtJRkhFRkVEQ0lISEtKR0tSTUNPT05RT09PTk9PS0tLUFVXVlZUWWBfXWlhbmpuaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXV2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01HR0VHQUFAQ0Q8QUFAQzw4Oj0+Oj89QEJAQEBERkhFSEZGSEZFRURDREJESUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9OT1BNTE5TV1ZXWVZYXlpdZGBoY2ppZ2tfZGVmY2hoZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hBQUJFRTxAQ0JEPDc6PT47PjtBQj4/P0NFRkRGRERHRUNFQ0RGRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSEVLS0xMTk9SVE9JVFVUUVRQUU1OUU5NUVdaVlpZV1peWlhhYGBgXmhlY2BkZWdnamhoamdobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURBQ0dFPEBFQkQ8ODo+Pj48PEJCPUA+QUJGQ0VCQkdDQ0RFRkdHR0lGR0tIQ0lIR0lHRkRIS0lHS0hNS0pLTEhMSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9VWVpZXFpaXF9fXmBjXlxiZGxjYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJER0U9QUdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREZGSEhGSEdJS0pFSkhISkhGRkxISEhKR0xMTExMSU1LTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJlXmRgZmhgZWhqZHNzZmpoZmxwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd3B3SUpLSUtHQkVERTxBRkREQjs/P0FAQEFEQUBCPkFDSEJFREZHRUlFRkVJSEZJSEpMSEhKSklLSkZKS0hJSklHS0tNTEpKTUtNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFiYGNkZWJkaWNkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV1c3Bzd3R1dXd2dXV0ZXFza3BxanJ2cHdKTEtLTEdDQ0FFPD9FRUVDPUFBQ0JCQ0VCQ0RBQUVHQ0dGSEZFSUZDR0pHR0pGSUxISUpNSkxLR0tJSEtLTlFLUlFMU01KTk1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5hY15gZmJhY2luaGNpaGhteHZtaGlub3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnNxcXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0VBQEQ+PURFRkM/Q0FFRERGQ0JFR0NDSUVCSEpJR0hKRkRLSkdISklJS0dKSk9LTUtJTEhKTUtaZkpkXEtsUkdOTl9uVWxzW3FwYndjUlBidnVodWNhdmFYbnFiZHZpbnpmXGx1YGxrVWB4dmlqaGhmZ2xtam1vam1vc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cnFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj88REVGRENDQ0VFREZCRkZHRERKRERKTEtJS0xHR05JSEpLR0tKSUtKTkxMTExMSU1MTFtzYmRwXmxsVUxOZXJdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm5ccHZncU5Lcnl2a2Fha2VlbHhta3Zsbm9zcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FBPz1CRUZCRUNFREVFREJISEdERUtIR0tNTUlMTEZKTkhKS0pJS0pKSktNTU5NTU1LTk1NW3Jwb25wcGxrTVBRbFhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcF1gc2xxalV1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hGRUVCQUI9Pz9FR0JHRElFRURCRklISERHS0pHTUxOSkxNR0xOSU1LSEpNSUpKSkpOT05OTUxOTUxcaGR1XWxxV2xOT1FtVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRklMS0ZNS0tRUUxITU1ITkpJSE5HSkpISE5PTU5MSk1NSlp0cHBvcXFtbE9RUm5Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpbXnRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0VFRUBAPkNDQUZDSElNSEZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUlKTElLSklJS01NTUxJS0tLU2tiWmleX2pjcnJaX1lrb2BlZVVrX2RbYWJRYG1oXGpcbmlpZFpvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3cklIRklERURGQUBBRURDR0JISkxHRkRHS0xJRUZKT0xJT0pMW1FKRkhIS01JSEpKS0tJSEpHTEtLS0dISkpMTExLSUtMTlRbXVRQVU1RUE5PT1VSUFBRT09RSkpOUFFkcWlUWVZbW1xVWVtdWF1cXGNmYWFmYmNmX15ma21obXR4cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0lRS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKSEhIRUZMSElLTkxJT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZFxiWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVFSkpKRkVISFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdERUpHQklNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teZF9aXWBjX1lfYltgXltVWVhaX15kYmJhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN1eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLSkpFRklJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUFFSUQ/SUtITltjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19iYV1eY2FgYmJiY2NlWlJZVlddW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkRHRUJFR0hGR0hJRkdKR0hGSEtJS0RESkpNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hEREBEQEdIQT5ISUZPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUVFdX2JjY2NjYlxkY2JkY2VYUldVVF1ZW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSUZHR0lHR0pGRkZJTEpORUNKSkxOSkxJS0pJSUdCSEhRTUtLT01LS0lISEVEP0VCSEhBQEZFQ1RdWV5YX1lfW11VWFhQXV1RS0pWXlheW11WWmFSUl9fYmJgYGJiYGNiYmRkYlhQUlJTXFRcXV5eXl9fYGRoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0pJR0RIS1FPTUxQTExLS0lKREVBRUNIRkFBRkRBVlVFXFReU1ZfWE5UVU5aW01KS1RgYVtfWF9eYl1PWGJcYGBfYmNiXWJiV19fVFFQUVJZU15cXF1eX2BiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJU2NRRVdfSUdHSERGTUpQUEZJSUpLTkxMS01LSkpHRUlOUVFOT09NTk1OSExCREFDQ0ZEQkFDREBMSEJMTFBPTkxGTUZGSElIR0xMTU9QSUxPUFBTUExRVFJVWlhXWVdYZFZPU1RQUU9PUVVUXFlZW15eYWFlZmNoZGxtcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXk1ISFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS1BUU05QT05PT09IS0ZgRUReTERmY0NMW0heW3NtT01WbVlMQ1BfVGxXZ0pdV1VeRExRVUxNU1ZRUlRYVlRYVVRcVFBmWmhoZVpUa1RYV1VbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEg4ODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USktHYFRHSk9KSU9NUlFLTUtMT1JVUk9QSkxOR0hNUVtZT1BQTk9QUEpLUX9RSXxZWXJzV1BtSHFub2FWUHFxdE9Ca3NucXRwU29fW25YXVZcWFVraFVdVmNZYFlaX1ZVV39pdHV1X2F2X1liXFxmW19hYWFiXmBjZ21wbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4fYB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxLT0hMUlhXUU5PT01RVE5PUVBLTE9HTVBTW1pUUVJPUFBRS0laeF1UeGRoWFFTUHZndGxwYm5ma1JyT0x3bWpycHNycXJwb3CAXWZ6dXhxcXpxfnJ9a3V9YVJofGVzc29zc3x9cH54b39yX2BgYmJbYWFoa25rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpRT01OSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dRVFBQUVNMSGd4bGN4cW1aSkxUeXB1bXVibnZQZGRJZXZxbXdvgGpmeHhpWHJSaXttaWp6en1seHp/cGduWHV1anZ1cIBhc2h9aWx4fG9fX19jYlxeZGVmaWplZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFFJS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV09VUE9OU0pLcm91dXF1cWNoYVZuTHFwXkdoeVd2VEtoeH14YHl7c25hXW1vZFNncnVubXlwd2x2c3RxbG1cc316a215fGx1bnxscXZ1eF5fX2JeXV9lZWlnaGZlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUUtNTkxMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05RSVJtSGl3S2BkdnVVV2xObmx7cmFqZ391VEtXa2h9bG1seF9acHp7X2B6c2Nyb3hxaGR8aXJ7XVRLbF92dWxqdnx7bX55a3xwXV5eYlteYmRlZ2ZmZWNbY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxobW1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTUxTU1JPU1NYUldUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFOUFVMS0tSU1JSUk9WVVFRT1JSWFhRTlBVVFhYWFtbVVFSV1tXWFdbT1JUV1dYUV1YVl1VU09YUldXWFlaYFxncl9bW1pdXV9jWl9jY2VnZGRkY1pkYmdmZm1ubXVmZmdjYGZeXmdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJOUlFQTFZWVFBUVVhVWlZSW11WVVRXVVlYT09MTldUUE5VU05QTkxRUEtKUlFLUU1KSk9RVFJQUVNSSUlNT1BRUlFRUVRVUVhXXFdTUlFRVVVWVFpRTlJSV1VTWVZUWVVTUVVTVVVZWVheWl9hXVxbWl1dYGNcXWJjZGZkZWViWWBhY2FiaGhqbmNhZF5fY11aY1xibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVFNWFdVVFZYV1daVlRcYFZXVllVWFRRUEtPWFNQTlVQTlFOTFNQTU5VU05RTk1OUVNQVFBSVFROTE5PUlRUUlJRVlZTWFpbWVNVUlRYV1dZW1NPU1RXVVRZVVZZVVFRV1VWWFxaXGBdV1lfXV5dXF1gYV5bYmJjZ2ZlZWJYYGBiXWBoZWdlYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFhWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFPUVhUUVFPTU9TVU5XUVRUVU9OTlFUVVVUVFJUV1VaXVxaVlZRUldYVltcVlBTVVVVVlhTV1dUUlFYVlZbX1tfYF9WX11eYFxcYGBfX1piY2RoZ2VlYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTldTTU1ST1FST01QU1FVWlVUUFBMUFdVUVZSVFNYTU9QUlVYVVVVU1VYV1teXVxbVlJPVVZWW1tWUVNWVVZYVFNXWlNTUVlXV11fW2BfYFZiXGBhXWBiX1xgXWNhY2dpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5QV1NOUVFQUlRSTFFUU1lbV1VPUk5TWFZTUlRSUlpPUVNTVltVVlZUV1pYXV5cXF5WU05UVlZbW1VRVFRWV1hSU1hbU1JSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2llZ11cZWBhYGFjZF9iX1laX1tcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1cYFxgVlxdaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVWlpaU09TUVVVVVNOVVFSWlJUVVRYXVdYWFNYXFheXVlaXVRVTlZWV15aWFFUVVhYWFNWWFtTUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXl5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVldWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVU09XUVNXU1dVVlteWFtZVVpeWF9eWVxZUldSWVhYX1lZUlRVWllZVVdZW1VUWl1dXmFiYGVkXV5dXWVhYmZkXl9kY2BcZ2VoZmRiYGVhX2FhYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFdXV1ZWV11YT1VcWV5dXVRTWFNXVVNSU1dRU1ZUWFhYXl5YXVtVXl9YX19YXFZRWVVZWlphWFtUVldaWlpYWVlaV1ZdX2BfZGNiZWVeYlxgZmJkZmRfYGRiYVtmY2hmZGZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlRcVVdXWVdWXGBhYWNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVFJWVVFTVVdbW11fX1pfXFZfX1pdXlleVlNZWFlZXGFZXVVWWltaW1paWVpYWV9fYGBkY2RlZWNkWmJmY2dmZV5hYmBjXWJjaWVkaF9nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVZYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZVU1ZUWF1dX2BgXWFdV2BeW15cW15YVlhYW1pfX1peV1hcXF1dXVtaXFdaX2FeYGVkZGZmZ2NZY2ZlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpZWFpYV1tbWltXWFpUWl1cW2BcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXV1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBXVldYV1ZWV1ZdXV5hYmFfYl5ZYV1dXlldXllYVVdbW2BeXF9ZWV5dXl5gXFpaWVtfYl9iZWRlZmdoY1plZmdpZ2NfY15gZmVaaWljZmljZl9iYmNhYGBfXV1aWFtZWVhYWllXWltaWVdZVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcWFpiZWNhUlxZT1hWWVtZWVdaWmBeYWJjYGFjX1xiXV9dW19eWVlUWF1dX19eX1taXl5gYmJcXFdbXWBiYmNlZGdmZmdlXWVnaGlmY2FiXGNnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYmBjYmJdXFtaV1hpcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl5cU1xfYGNkZGZlZ2dmZmZgZmdoaGdkZGBbZmdeYWhoY2loZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYWFxnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t8fHx8fHx7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHt7e3t7fH19fX18fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKh3NxcnJycnQ+KCsrKyolYpKMjI2Njol+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyJcm9vb29vcjIXGxsbGxRdlo+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f4B5d3d3d3d3eHl5eXl5e3hub29wcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx6enp6enp6dXNzc3Nzcnl9fX1+fn19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dXZ3ent4e3h3dnZ4eXt6eX15eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t7e3t8fX19fX19fHt7e3t7fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3d3x8fXp7fXt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d5fnx8fXx9fHh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3t+fHh7fXx8eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt8fHx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoF/gIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl3eHp6enh7eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYKCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgYGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYKCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qKi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhIWCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYWEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioaGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLioqLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoGCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYKDgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoKDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWGhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GBg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KDhIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAf3+BgICCgYF/gYGAgIKBgoKCgYGCgoGAgoKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9/f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgYGAgIOCgoOCgYKCg4ODhIKDg4OCgICAgoKCgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhYSCgoKDg4KEgoGChoWEhYSDhISEhoWEhIWCf319fX6ChIODg4ODg4ODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhoaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMi4iFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIOEg4ODhIWDgoOEhYWGhYaGhYaHh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eFhYeFgX9/f39/f39+gICEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoeGhoWEg4SFhYaEhYWGhoeHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhIODgoOFhIWHh4WEgoB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iJiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OCg4WEhIWEgYCBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhISFhYODgoGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODg4KDhYmKiYeFh4WEhYWEhIaGg4KCgoKCg4F+fX5+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4iJh4iGiIeHiYiEg4SDhYSEhYWHiIiGhYOCgoOFh4aHhoaDgoKDhIKDhISCgYKBgYGDg4SDhJGSkY6PjouHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoKChISDgoWGiIuKhoWGhIKGhoKAg4ODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GCg4SFhYWDg4WEhISEhYSFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjZCNiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFg4GAgIF/fn2Cg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIKCgoCAgICBgYGBgoGBgoSDg4WEgoKEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5/fnx8f4ODgoOCg4F9fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBgH9/gYJ+fX1/gIF/f35/gIB/gICAgX+AgoCAgoKBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDg4OEhYCBf3x9fX59fX6AgH59fn58fX6Cg4OCgoGBf319fn6AgIB/fn19fXx7e3t6enl6gIB/fn9+fn58fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gICAf3+Afn1/gYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f39+f39/fn1+f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoKBg4SFg4SAgYCAgYCBgIGCgoOBgYF+gIKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+BgH+Bf4CAgIGBgoKAfoB+f35+f36BgIKBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDg4OCgoKBgoF+fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKChIOAgoOBgIKAgYGBg4KCg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoWEgoKBgYKCg4ODg4OCg4KCgoGAgICBgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoCBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCCg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYSGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359f35/gX+AgoGFhYWGhoeHhoeHiIaHh4eGh4eHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgoKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fHx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYmJh4WGhYODgoGCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoODg4KDgoKFhoSEhYWEhoSDhIOCgoGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgYCCgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDhIWFhYWDg4OEgoGDg4KDgoKBgYCAf4F/f35+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHyAgYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH59e4qCfYB/foGAgIGCgYKAgYCBgH+Lk4+Mi42OjYiHiIaFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/f4B8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICBgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRi4yNjY+KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317en2AgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fn1+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2LjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn9+f4CAf4CAf399fHx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKMjIuOjYuKhoSGhISEg4ODgoOCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn9/fXx+fX59fXx7fHx8enx6fX5/gISDgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yKioyLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t9fHp6fXp+gn+Bg4SCgYKBhYaFhYaGh4WChJGOjIqJioeIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJiomKiYWIkY2LiIiGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgYB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH18fX19fnx9fH18fX1+fH59fX19fHt7e3x7fHx7ent7enp6e35+g4WIh4iKi4uKiYyQjYyJiIaFhIOCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+MioiIhYSEg4GCgoKCg4KBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX19fn1+f319fXt8fX58fHt8fXp6eXl6eXt7fn6AgYOHhIiNjImJhoWEhIOCgoKDgoKCgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiYyJioeFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGEgX5+gIB+foB+fX5+gIB/gX5/gH9/f4B/fX5/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyJiYeHhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99gH99fX99fn59fnx7fHp8e3qAhYKEhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIOBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+gH+Af359e3p7enx7eoKDgIKCgoKDgoOCgYGAgIKBgICCgYOBgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4OBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOBf3+Af4F/gH98e3x6fHt8gYB/gX9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fnt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAgICBgIGCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fn2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn1+eX5/f3x8fH59foGAgYGBgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9/gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/foCBfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhIWFg4ODg4ODgoGCg4KBg4J/gYB/f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH9+fn5/f31+foGCgoJ+f359fn5+fn9/gH99gIGAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4F8fHp7e3t6e3d2eHVyc3Zxd3lyeIWFhYWDhISCgoOCgYGCgYCDgYCAf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYCAf32Af35+f399fX1+gIGBgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH9/goB8gH+Afn+BgH9/fYB/fn9/f319fICAgICAf39+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn19e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f359fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzcHh3cXuFh4WFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgX1+gH9+f4F/gH9/gYB/gH9+fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WHhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcXB3dHN8hYaDhIKDgoGCgYKCgoGCgYGBgoGAgICAgIB+fYB/gH+BgoJ/goJ/gIF+f4GBf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gICBgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIJ/gICAgH9/gIB/f31+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5eXt6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYSDgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX+Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt7fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXZ2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKAf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gH9/gIGBf4CAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGFg4OEgYGDgIKCgYGAgIGCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCf3+AgoB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDg4OBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgICBgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX17f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKChoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgYGCgoCAgIGAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYKCg4KBgYOCgoSBgIGDgYGChIODhISDg4SDg4KBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4KEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOBgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH96e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKChYWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX56fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4KDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9f31/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhYSDgoKAfYGCf318fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/f3x9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KDg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4KBhIOBg4OEg4SEhIWEhISFhYWFhIODhH99gYR/fX18fHx8f4F+fn5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WFhYWEgX+ChH9+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYqJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYF9gXWBeoN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+Ee4WDgYSDgH9+fn59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgYN/g4N9gX1+fn1+goOBfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9f359gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB1gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeHiIaHhIaGi4qFhIaHh4WEhYWFhIKFhYWFhoaFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goGBfn5/fX17fXt8fX1/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYaHh4iGhIaFhoaGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhoaFhoSGhIOEhIaEg4GDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISDgoF9f357fHt+e3x8fX9+fXx+fYGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFh4aHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoSGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFhIaHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH59foB+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e36AiIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYSIhYaHhoeGiIaHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaEhoaFhoWFhoaFhYOFhYKFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXt8fn1+fnx/fn19fn59fXx/fH5+fH2BgH18fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEg4SDgoSHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYWEg4SEhYaGhoaGhoeGhoiFhoaGhYSCg4KDg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4eHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWHh4eHiIaGhIaFg4KCgoKDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYiKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYSFhYaGhoaHhYaGh4eHh4WEhoWDgYGBgIOFgoN+gYGBf4OBf35+f35+fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFgoGCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoeIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4aFh4OEhYSGhoaIhYWEg4WFh4WHhoeFhoaHhoaGhIOEhYKAgYCAg4ODgn2BgYB+g4F+f3+BfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaFhYWFhYWDg4GDgYCBgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeGh4iIhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaFhYaDg4OFgYCBgICEgIOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH5+fnt7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhoKCg4R/foCAgIF/g4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18f359fHx9f358e4iFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYSFhISGhoeIh4WFiIaJh4WDhISChYOEhoKEhYSFhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYGDg39+f4B/f3+Df3uAfX1/gn2AgX1+gX59fX19f3t/fHt6eXp6eXp6fHl6ent7e316e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEgoWChYGBgH9/gIB+f4CCfH5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCf319f35+gIN+e398fICBfYGAfX2DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx/g318fnx8gYB+gn99f4J8f359fX18fHt7enp6enl7enp6enp6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIaEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dXU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXU1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19jc3d3d3d3d3d3d3d3d3tvX2NfY19fX2NfW19fW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLmzeHNzc3Nzc3Nzc3Nzc3CSu7i4uLi4uLi4uLi4ubCKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OlmTIpKysrKysrKysrKyolYamkpKOjo6Ojo6Ojo6WVU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpps4LzAwMDAwMDAwMDAwK2WqpaWlpKSkpKSkpKSml1dXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaugRT0+Pj4+Pj4+Pj4+Pjlur6mpqampqampqampq5xiYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs/Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0crKysrKysrKycnJycnJzNLR0dLS0tLS0tLS0tLQzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7Ozs7P0c7O0NPQztLU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbY19fX19fX2NfW19fX19bW1tbW1tbW1tbW1tfX1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Ozs7RwafR0rmPvtScgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Ozs/P0Z2Pw8KUsJyxlri5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/P07qvqr6koIuRw5N9fq+w0s7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Pz9OfsZu4m4edutTSzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz9HAnImbsJuQn6DS08CgoNDP0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Uo6KBnqqrr5GhudevoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDRxJ+Be5mWopqtm6nYo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q1auvvMDRhZWmxZii0Z6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzs7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJh3+Fn6CfnJubrcefodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HG09PVnJjDp6uknsW0pKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg0tHS16iHzc2SkKfXuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dLPxdTUy73V0tHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojw9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS09TS0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ojw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk4NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzs4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg3NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2Nzc4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0Nzc3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyampubm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhRSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtoZ3VaZnJ3c3hmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7q9wLm9urq0v7i1t7Ovu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2dhXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcvGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdW15cWVFFRENNSUFEPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBw8O7ubO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pXF9fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXVtUSjw+P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m4s7KytLK3vrqztbK8ury2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdTkhBPz1IQ0ZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTEu7u2tLSwtrq2tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE+SkJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKyL7AuLm2srS2s7SvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxBRk1GODY2NTo2Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vbWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u7+/ubS0s7GxrrC5uba8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIP0hRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmura+ysrq6t7e1tby0r7Srtrq4wMTBu7W8vbiyrbOwr6yutraytLSvqqSem5ycnqion6CoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWim6OclZCMj4+Pk5CXlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGwrq+yp6avo6+utcG6tbeyt7aytKuytK6qq6+wsrOtpZ6SmJSPmaCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsKOlp56gnJWTkI+RkJiQlpWYl5+Ym5mbo5mXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7REA9Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaOkrqWsrLS8t6yysa+xrbWvr7O1qqetrKOcmZSOkZaXmZmcoKOim52lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZabl5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOD5CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6jqK6trKurr6qvqZ+XnqWenqWmpKCin6agoq6rrK21sramr7Srqaq0sbCwuK2noZydmpSYm5qRjpGVkYyPjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrbGxtKmxr6KZnJ2eoZmbm5qYmZuUlpuWmJyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5VTFJMQTc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho56doJ+joKKvrqyvsay2p62xraamsK6trLCnoJ+ioJeRlJyhnJmXkpOfnaKkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7essbSjoJ2loKyhoaKgoJqYlpafm5uYpKGgnqShoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTUc9Skg4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjpOemaidrp6nnpyhnZ6amZKZnpyioqCgnaKfn56fqaunrKmqtKurraulpauoqqyqpZ+emZKSlJiZlpaWjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oauiqaiyqauop6iamZ6aqqafmaegn5+nqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKagnp2dl5iWmZ6bnKSfn52knZqdnKSipKOiqq+sp6mjoKGsrq6qq6agnp6ho56enpudnJSTlZSenpiUhp6aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLS7xcO8wru3s6myraqztK+zrqquo52rp7axrKKvpaCjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHJra3VycGhXW1FFVEhESU9IPkVBM0VIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpZ2Vm5ufmp6cnqWmp52goKuxrqekpKOgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr3HxsK3w8nIwsDFvrm0ubq1u7ewtbKqurKuu7a+urqqt62rqri6tLyurbijpaKep6Wio6mmmZufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR9enJrZGhveGplWltGSkxERFNMREJENzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlZqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkp+fkJafmZKalp2bmaOhr7OpoZqdnZ+fmpeYl5KMj5aXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3MyMnRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zT0NPTzMrCxcbGysfOv8nQy8bExsTBu8PBvr6+tb2zrb+/wsPGxMfErr64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURCQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6yen66mpbGqxcbMzs2/sMKppaitraqhnaOfnJ2aqZOZoZCOoJONlJKXmaSxsaukoJ2gm5mXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LU1dPTyMzHzc3J0szO083Ex8nKwcXLxsjIxb7Cs7PHxMvKys7Fyr++v7zBx8TMzMjJv8O/rbCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/enJ1dWdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjNAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo5+ko5+gpKyblqmWjZeNjI2XprCupZ2enaGloZ6blZSWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTTz9LD0NPW19XW0svJztHLxs3SytLV1tnV19PW2M7Syc7RzM7QzNLPv8fGysPMzMvOz8XGx7a/yb/SzcvPxcnIv8PCyM7Mz9DPzMrHzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHdzdm9jYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU6NzY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopuppqKmq5qjsLGpqLXQ1Nfa0sfGy7S2wsaytqmipaahoqu1p5qxoZWUjJCmrauclZihnZuhop+cnZuVindpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTPz9XU1NHSzNHO09fW09XQz9LT0cnT0cjQ2NfY0dfS19nV1szOz8nN0cvOz7/FwsfFzs3R0NHIy8zAysvF087LzsjEycbGyMzK09PR1c/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NDQ6PTUyNzU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamgr66qqqyepq64qKu32NTV2dnRztDAvMzJt8Cvp6upo6SxtrOjtqmoqKGqqaGYlpiam52hnpqdnpR+cmVjYl9fYWBfYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvTzdXU0srPzNPW0tHWzc/V1dHG0dTK0dTV1s7S0NjY2NfLyM3Dyc7Mycu/yL/Iyc3Nz8vQzc7Lzs/Hy8/Qys7KwsnGyczKy9HSzNPR0M/Pyr3IubCtu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bua2FkbnBhV1xaSUZGRExXRTtAPDMzPD04Njg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabnqOnnri2tbWtpa2uvrSxwNnS19rc1s/Ny8PT0MLCsqutrqyms7G4q7LOuaufnJaUl5uen5+dlJaXlYlsXl5eYWRiYGBgYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVysDKwcXMwsjJwszDxcjKys7KzMzPzdPLxcjPzMjHysTGwMXJy83Q0cbQzs3NzM/Fx8C3ub3Dw73DubKzvrG8xMS1qpiloZmWkZWVkouUjZuRlJSPj5SCiYV4cHFrbmhgYHFoWVhoVk1HTElQUEI7RD47Njc6ODk6NTY9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfDucvV1tna29jMzM/J1tbFxLiytqqkrqy5ubC21aGVjo2YlpCTkpGWlpaQjHxlYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL7Gyb3CxsjOxMLHwMfNx8PLycvPx8PDz8jGwcbHw77Ax8vLzM7CysvIx8vQxMXHu8fDyMjCz8C9vL+wwcrHur2qsbKnpZ2inJiQm5CkmZeZkZWYiY+Cd250ZGxgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJuls7Gsyc3KyMS+vbrNzcbQ1dXZ2tvY0MrQ0NLUysW6vr6wqLervrq3wa6Rjo6WkIaDhISCfoWFf3RgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsjGwsPAw8fKycjKyMHFzMbIy83JxMLLycLCy9DEy8i/ucG7xce9v8bPysO/w7vJxsi6x8bEysC9wcvGxcO9xby8v8PEy8XFvMDJwsXH0sXAyL/KysbIxtDDw8bDr8TLx8TKt7+8urSprKWlmJ+YrKOhpZqjoJuUe3ZzdGZqW2FubVpbWFFETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPHzc/OzdXQ1tnY2dDN1M7P0MvEuMbBtrW8scC3urCRjJOXh3uAhYaAdnh1cnBfWltdYGFiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsba6srKzsrHCvLy7ubjAwcHFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDvrzBzcLGvr61wL3DurzGu8K5s7zFw8LCtr+1tb6/usvDvLW6yLq/vcvDwcXCxsjGyMbQxsLMyLLHysPOzcHFwr+9srews6eoqLmxpa2wq62slHl2d2plaGBob2NWXllKRUpGSEtBRkJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc7P0snRxtbV1tjOzNDIzcjKxb7KwbK1ure7trCRjYqLhXmAhoaAfoR8dHVkXFxdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLS3tLOys7q1vbG3sLWvsrvCvMHEvL+7tbK6vsC4x7m0u7bAwry3vcbAw7y1rrK2ur6zxLe7tau4vL3AvbC6ta+2urLFvLavu7+0trTFvL7DxcDDxcbIy8bAxsa7yMu/z8rHw8bBw7fDvr22ub7Gv6y1urW3to54dHhnZ2Via25eVl5gRktISEpGQkNBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDNzsnLyczKy8bRz9PRz8jLxsrGxMC9z72zub25uLecjoeJiXt5foaGd3iCfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7m4tbCsrKeeoqqnnquss62pq6mzrrawsqmupqyyvLq2w7m6urGqtbm7tMK6sL+xvb27tbvHucK3raqosLHAtbi8r7CnsbO0u7yrrbWlrrauurGwqrmvrbuuu7i7v7+9ucK/x8PFwbzGwcjLuMXHxb/Hw8O6xMbCu8XJzMuzucK8urKIcnZ2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj49OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs/SzMTGwcXQyM/CxMfBxsbFxczEy8zCxMHIwbq8u8q3tLy9trWrkYmQkHx5foqFenuEgXduXl1dXV1fYF9fZGNiY2NiYF9eW1taWl1aWllaXWVub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCjpp+qrbW2sb25r7ivqK64tLS8uLO8r7e5tbG7wbHBrqWooqyxsrOnvKqrqKusrbS0pqiuoaSvqbKlp6iupai3rLCyt7m6u7G8vb6+xL+1wcHHyLe/wMW3xMK/u7/Ew77EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWlJTS0ZGRT4/QDk3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7rEsLawm5mVnJiqqbCxs7W9r8bR0M3EyLu7zMPMwLzKucDGwLzMusPHxbq9xL66t73Guba5u66ylYOJjYF7foB+eHR/fHN3Zl9dXFxeX2BeX2NjYWJgYF9eXVxaWFpbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSepJuXkaGjqqOin6Wlp6WsoJ2bpKassq+2t6ewrKeqtKu0ubC2tKy2uLGwurmxt6Sfo5+nsaerqLmqpKanqKeyraCnpp+bpKasnp+npJ+gsa2trLK0srSwtby2u8HBsrq+w8GyubrCs8C9v7W4u72+vMLHxMLDv7/EoIN3cGthZV9rb2BVWV9ITmhPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbu+taCelZ6hprq2q7Ozu7PF0MnMw8e5uMnCzsG6y7m9yLu3yLu3xMazvsW8t7C5wLuxs7ewooSHh4J9eXZ0b21rampxaV9gXVxcXV9gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXV5kY2JlZ2dnam1viJ2poJeVmqGWm6KYlY2eoaKmm5+fo6Whp56bopufqrCtsbWiqaqpq6yktbitt6+ssrSusrWusKqfnZ6jorKkpam4raGmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7KyubK9tLaxsbW0v7a9wL3Dwbq7vZeDenJrX2VeZGRYVFheSVddS1BHSUpGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmbpKbAsq+2rLS3xtDJycHHvLzFxdDAvMq7u8G7tsW4tcHBs8LEvK2qtbq3qLGzqYuGiIB5c25wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWltZWFhXV1dYWFhbXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaQnKGhqJ2bnaWmoaWcoKCamK2ura6yoKWiraunobWwsbGsp66yp7qzprahop6ao6KtoqGptaqio6adpaajlpiel5manZ+Zl52cnJusoaumo6Smrauzs6q0sLKqsrm0r6mvsrKyt7Ouqayusriwura5vb+3srGUhXl1ZV5lXltZVlNaVUtbUUxJRUhLSUI9P0FBQEA6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vb+znaWjmKWxwrW2va20uMPNycjBxrjCwcjQusPGwLa8vbbDura/wbW7v7uqprG7saiyr5t9hYWAeXBxdHFoZmRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnqicm5qqpq+wq5ujo7eqoJ+uqLappqassKO3sKS3oKKbmJiqpqGbrLivoqGknKGfoJOVoZSWlpuYl5aXnJSfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxr7Cur6anp7KusbSvvLS5t66jlIF5dWReYVZZV1NSVEtNXkxQS0dHTEtFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp6np6Oqu8C9wLmutLjCzcjHxMW+x7rKzbXExcWxv8C5wMG6wMC5ur23qKixu6apoqWJgX54cmpscnRwaWhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtcWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKann5yfpJ+qr6afoqO2qKChoqizoaWnpK+lsK2stZ6gnZWUqaGhlKyxsJ6iop2emJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpaukpbCnpaOrq62lqK6vrquoqqmzpaarr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFFHUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuyt6yepKett7u8wcW6sbm1xcrLwcTHx8m4yMa1xcLJr7q8wrzDwMG9vLe6tqansraeooqZiIB3b2RiZ2loZmhqZ2ptYF1cW1paWVpcXVxbXF5fXFpZW1lZWltXVVhXVFRXVVNUUlVgYF9gYV9gYWNkaYGUk4mRjpSSk5yUlZajmaCWnKCloa2lpKSio6GbqqqlmZ6lsamgoJ2kqp2noZ6srKmora2ioaGUl6ObnJCrqbCbn6KenpeYk4qeko2Sk5WPmJiSm6GinKSgoZWgoaSmm6OrpaKkqqOrrqSusammpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlVRRlFPSFpcT1JJVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Nzs8OD41OTg6ODg2NTk6Ozw5Nz88OTU3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7KwrLKtnaenr7m5s8DIurXAr8bJzrvCy83Jt8u/tMDHzLC2vci7wsfEvb+3urWlq7CunZqHjoN8dWlqam1oamxua2ttZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eXl9fYmRtjo+EkYaPkY+Zk5SSnJqinJugp6iqqKqmqKSjmKSupJSZpa+pn5uYmqCerpmbqrOfpaafo6OhlJOblpWSqKmtmpygoaCalJCMmY6LkIySjJaUkJ2hoKOcm6KVm6CioJeiqKOiqKugq6+krbelo6OirK2pqKuvs7iyvbWzq6+Yg3JyaFtYWVNVUkVZTFBcWU1UTlBMUFJJTklCPD8/QT89NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaivrZupqKy3tqy8yru2v6zMx8a5ws/QybXGvrq+xsu1sb3FvcPGxL3Bs7mvpquvq56XhoF3eG9uaW5ubnFnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/i5CKko2XkZeZoqCbn6qppq2qp6+ip5mfrKCVlqSop52Xj46Zna6Wl6eqmZ+dlKWhnpKQkpKSlaeqpJmZmp2dlo2Mi5SGiI2DkIuSlJCgnqCjl5WflZqgop6Tm6Wlp6iooLGwprC8p6CjrLSrraewtLC5tcCxrbGrkH1wcmJWVFVOUklHVlFTUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NzYxMzIxLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6vMPL0cyzubq+wMTHtrS3vbO7vMS+wrG0rrGusaycoohraG5vcm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/dYmOh5CJmImUlJebmZ2om5+qpaSqnKeYoKWbko+eopqXloSDkZqjj5OinJWWlYeimpqTi46Kj5mjp5yVlZebkJKHlI6MgYuNgJCKkpKRoZqfoZWTmJiVoqWZjJmkpqimoaC0sqeyt6Gdoresqq2ksrKmtby1q6uxo4h4cm1dTlBRTE9DTk5OUEtGTk5KSk5NUUlNSkFHS0hIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSopLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKmloKmlpLOqorLDtbWys8fHuLvEys3Hta+8v7i8xLOzrrairbXEuruvqqy0r6+gl6h9XmBnc3F2cWpuaWZoaGpfWFlYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWWFhZWFtdYW9zdnGFiIKHgJGDjoqUkZOdoI6anKKho5iklqGblY2HmJqMc42CfY2WloWQmZCTjo57mY6cjIKKf4mYn6KekJOYloSOgpN+fnSJjnqQhpKQkJ2amZqQlY+djqKjjomaoKGko5uitK+sr6yfmKW5pqWwobCunLC7qqmvqpmBdnJiVkxRT1BNQ1NOTFFNQ1BQSElOU01ISkpESkxFSks9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd3t6KjtKilpaijpqWmpqazp6W0wLiwtLDKxrm6ws/Hv7WvvcOvsceyraeslaSuv7ixsJ+nra2rlpWicldWX2hnaWhpbmNqaGdiXFhYWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeKk5Cfl52VlJaUjpaJf5OJXztXb3uLk4l/i5GMj4WGc4qEloF5gnqFk52Ug5WOkI+Chn2SeHFvhY1+iYCQjY+XmZiTio+InIiel4eIlp6aoaCXp6+oramon5ettKKmrZisq5intKKpraOSfXFtX1pOU1FWTERUSlBNTEZPT0lFTFFNS1BKSU1QRklIPTc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCgrKy0zODU0Nzc5PDo3OTs4NkE5eLego66hpqaqoKepp6KpsKintMG5sbWwycO5tL/PwLqxsbjEq67Jrqejnoaborqtp6iWpqWkoZePlmlRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXuCdFBCQH+VkZF9iZSMhIqNm42WlYqSiIaVhnmIf2BKUW54ipGEfISMiYR/f25+f5R3dXZ4hI2ZcFGNiIqGe354lHZnd4WIfoqIlYqNkJKWi4OJh5SEmoyBhJKblp6clKSjp6mlo56bsKuhpKSQpqqWoaqcoqaoiHRrZV1bSFFRU0xJVU1TSUxMUElIRktOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj03Ozw2Ozs0Nzg7Nzc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKiosNDgzMzk3OTo5OTo6Ojo/OXa2nKOnnZ+hrqGnqKWnqK+sqra8tri2s8K8t6i6ybm3qaq3uK22wKqim5ODj5myn6KajaCWmZSRi4xlTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+GgXuFjJKBkpmLj3uGj391f3hzbnVwdI2NgXl9iaqFeXpodnuOcHJteIGKjJJ4eoB7gHZzcpJ3Z3WEhISEepWJiIqMi4B/hIqMf5SDe4CPmJSblZGfnaien6CeoKmln52YjKekk6Cglp2epH9xZ2BcXEpWT1FHS1hST0pNTVJKSkpNUEhMUUxSVE1FSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5NDc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8PDd2rpijoZicnrOpr6mlrKywsaq9tLK8uLa6tbKgt7uzq52fraustbOlnpaSmIaUpJadjIOXiY+JhoaDZkpJSklHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhZWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gXZ4f4mPfISYkoFyh498dntva36tfHOQin97hpKAfX90ZnZ8hWxvaHN8iYyHgGx5cX1wbXWPcWhxgH2OcEOKhIKDhX53d3qLhX2LenV+jpKPmIqSmpujl5mdm52eop2WjYqkm4+dl46WmI51bWtlYVlXWFRRSlJVVE9QTlFWS05LTk9KUU9JT09LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn56WoKavrK6rp6mwr7GsvLisu765s62om7GorZyQl56nrKekm52TiJZ+jpWSlYB8inqFgH9/gWVKR0hGQkBDRElMTE1RUlBRU1VUVFVWV1dXWFdZWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hvfHmIj3l8i4VvbYyReHN4amp/gnKWkYuBfZZ/SZKYbmh3foFsaWNseYWQkoZrc2x8bnJ7hmhtcH5zjYiDhXp9fnt2b3R0hYJ5gXdwfI6MipODlpeYmpCTlpeZl56XjIOJn5GKkoyGkJZ9bGhtbm1XVVdUUVFZT1NVVVRYVU1OSE1KTU5LQ0lOR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6kra+iraqota+urLS/q7zCv6ajmpWlmJ6OhYyWoqSbmpSXj3aRfoWLkI98eH50fXh1d3xmT0VHREA8Pj5BRkdHS0tLTVBTUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpyQZlvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4h1gYiGdGyZkXRze2prnY5MeYSSiYSOZzF2hnNsfn2DdGZldH6EhIWAZmlsdWtwf3xncHB7bpKNjntzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlY+XjoB5iJeIhomGf5CHdWlpbmdjV1FZV1hZW01QVVZaWU5JSUVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiZkZqWpKitnrKeprquq7KwwrK7w8ebl4+UmYuOhnqFkZqWj5KOkol0ioR3i4+Mf3Z3dXh2b3hzaVVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bXGDgYWBeYSGhnlyoJR0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiIBoZmJpbnJtcIN1aW9YdW+OmpF2bH96fG1xbXB/enN1bWJ2hH+GgIWQkYqLipKLkYyLj4N1eIuPgH6CgH2PeHBubmpeWltdW1lYYF9TTltbWVhMSEpGSkc/Q0FCRz9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW0qK2xrsGzusHGl5CMlJCBiX1ugpGTioSLiJCIdoSFb5iKjH95e3txe3R8a29eSlBHPkA3NDU4Ozs8PT5AQkVITExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8fYWDf4x+dqKZeX6GgISZhZucYYaqn52LgpCNenaJfomIjnOKl4+De1xkcXR6e3eKbGdpYXhvhY+Cem6Bd3OEenBzeXdrbmldd4d9h3yIh4+Ai5OXg42GjYZ9cYR/hHx1d3t9iHRtcXJkZV5aWl1TW2ZeWFFVWV1WR0tLRUxHP0ZAREM/QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMd4l/lIyRnZ2fppGgqp+wqa/AsbvGupaPkZSIeoZ2a4CMkoN+i4WQjXmEgnWiho1+foKAc4OBfWx5bFNYTEFFMzExMjY2Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXtxfI+Me3yJhn6Xh3ahmYiHj5KUpY2sqUiGra+vioCAk4qCi4KEkaiHgJiYipxzbHyBhod9jmhnZ3h+boWGgYVxhIZHa4B3cXl2aG1rX3d9g4h/iIWMepWenIqLiZF/e3WLdnx3bW93fn1xcXBqWltbWmNiV2dlXFVQUVhaUURMTEdPSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFh5GPlpiSl6CdrKGmuK+zvbSXjZKLmIt9dHB/ipN/fo2DlJV9hn+HpYeJgIOIhnmJi4B1hXlfY1ZMQzYwLi8yMjEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiZGBmpaCoKGYlZuapa2Tmbuxp7vHw6eKjKGljpOJgZB7coOen5GcfnaFhYuPh5BpaG+DgHSMhoSLcYaCd4d/e3aFfW52dWeBlI+GiYiIiYiiq6OWiY6YgHuCiXp6b2dreH13fHFpY1xZWVxoXGFmX1pPTE5YU1FJUEtETkdDSkRDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnZwZ3iDe4CMgIGQj4uamqScoaymq6+wl5KRhKGUhHh3gI2UfX+ShpOWfoqBkpuOhIGCjIuCio6EgIqAbXBqXkNBNC0tLy8vLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6ChkqOppaOsk6i2oqfBwq7Ir3i6lJp8jKGemISThYKPoZ6TmZKEioWPmJGWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGXh5OJj4+Xpbapm42VooOHk4R+f2tqbH1+fX9xX1tiXllmalxsa19YS0hPU1FOTUxGSVFERE5GQkNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwg3B1h3F2kYZ+l5aalJ+fm6egqpaTmJ5oZqSafoWTknqBkomSkn2LhZmSkYOBgYuOiYaRh4SIhXh4f2hOUj4vLy4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMm3yNHPvpugcGmrqZ+Ek5KFnKCampmnkZGIlaKamnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZWenI6Tlpqko6e2sJ2RmaiIl5COgYhsc3N7fHluZl5bX15hZ2NfZ2dcUkVLS1FPSUpNRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTQ2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYzQUBpYl5QcXVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mImI15go2Ljo18ioaPkI6Bg4CJjImFk4WChomBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49RkhAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKiptayxt7Kyrbuxs76cs8Ssu8nLuMO/t6WjsLKsraqji5aYhaWmoKKYgqaZjaKqqKSHhZOjoKCqoKSpjpyxi5Wjp7e7nKGjsJOjnaOekaSiq7Cts7WilaaqiZqKk4qVent+g3tlXmZaY2BdYmJeZmdfW09ESkhUT0ZITEZLR0ZGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo1NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGUhYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMj4uKe4iDh5GOg4WBjIaFiJKGgoSJhoeHh3FuYUBFNjQ8My8xMTAtLCstMS8tND9EQU5WUVJUVVVXVU1cUUdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHxKuzxbattMCzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsLGbmZKan4mnr6qklXefpJehq7GzmJapraiutbuyuqyvtaKxrLK1vLi0rrWgqKijqJupsK2zuri4qJy4qY2lj5KToId5gYByV19iVWRgYGFeX2ZgW1VKREVMVlFJSkpFSkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxcWlFjZFd6dXGBlX2EhpN2hn6AjXu/u6O8grSUk46bj4SIj5OKiXqHgYyTjYeFgY6AgYqPhoCGiIWKh5F6eW5dV0BFTjw2OjQ2QUI3NjQvLzZDSENRXE9RVVdVXVdPX1VJS0pBQD9HS0ZGRDs+QDdENz9CSkpFR1dUUF6PpK2ksrTDtrjBzMq2u8S9s7TBt7jCtb+wuHSxtKa6xaSwxrmxs7K0qKS2tqqxoKKWm6KSpbGtpa2sp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6t7+4uri6ra2xprGqrr6wvbzDw6yZu6iVro+YmauJfoB5aFVhX1ZoY2hkVltjWVZUSkhHTFFHRElKQUlEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVZad2pwf4+EgY6Fb3tyeIhiuaGZo4mVlJaTlJSOkJeSh4d7h4GOloqBhIGKenyLiIZ8ioKBi4SVfXh6dWZPXGRHRUw6UWRgW15TRj87SFBEWmNRUVlZWmdaU2BhTVNPRUE/SUpIRUZBQEM9RTZCP0hHS01TWlRelK+4tbu5ycC7vcrNvLzBvLi2vLu3vrW6s8ZhdbKlsZqeq76qpairqqSisrWgq6eelZaemJ+upaenpZ+kk6KnsLOosrK8tsG908nJ08bCxczCysTAvr6/vLy4tLC5t7fDusa+xMmwnrqroqyPpam3iYB8bl1fXlxVX11oZVNYYVZTVklFRk5LQT5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASk1QUkxRXWhtbHGPjYaQc2xycnSI1cC1mqCNlZmZkY6XkpaWjoaIfYeDjZaKfoJ/g3l7i4SHe4t5gYqCl390fXprZXB2WV1cUGVlYmBlZF1bWFhcTWRtVVJtbl9vX1hnZVVZVEtEQktKSEZISEhIQkk5REBIS1RUVl1aXJO5wLm+uMbBu7nKy7u2ura4ubS4tbWutreZZHWpnq1wXqKtnJihopuknqullJ+fkJSOlpiXqJ6mn5+amYOjnaykqrGtt7C8uNTQztbPyczSzM/OysfAv8LKvcG9wsDFxMbKwMnPtKS8sbWwnKy5vZp9dmlbXVlXW19YYmJRW2FUUkxDQkZHRTxARj9CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LiYqKigtLjAsQE0rLzU0bYlJMEiJdD8+QkRAQ0RHS09EUlxaaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQi4l8gYRze4qDhXuKdIGKh5V/dHt5bG11fGlzZWlsaGZqaWlgZmlpbVptdJetpL2Ih2dbb2hdWllUSEtPUEpLUEtUUUhMQUpGS1BfX2JnamKXt8ewurS7vraxxce2sLmxsbuts7Goq7itjbaonpynmk6anoyPoJaRp5illYqTk4iRiY+Rkp2boZiblZaHnpmmmqywqK+ns7PT1NTW0cvP09TO08/MxsPK0L/KycvJ0sjNzsPQ0riwxL3Euqa3u8Sif2xhWltbVl5WWGRZT1xYT1FDQklFQ0k8QUQ+Qkg/QEI4O0Q+QEk9NTY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CRmYNocm95eYOhqp6ml4ybm5iLjpWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfnF5dWxweH9ye254c2xpgHBtY2lucHlpd31+y7/D36duY3huZFthYEtQUlVOWV5QXl1OUU5UUVVUXG5ud4Nylq64rLWosLarrb3Bsqu1pqW5p6yvoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSLg5SVl5eUm5CcmJmZnp6rrKSnoqysztLV0c3M0tPT0NTRzsjD1NHIztLT09fN0tHF0tbGwc/IyMOpv7jQnHdsY1tgW1ReUVxaT09TUE9JPkFHQkNGPUFCP0ZFPkA/Oj09PTxKQjQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bHdwfX6AoJ6eoYyNmZOUi4yTj5aFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBvd3Nsc318d3xzgnhxa4Bycmlwcnp5cnu+y5p/jbKEdnKFd2lhaV1EWlpbV2ZkWGVrVFhdXWBjXmN4e3+LgZmqpKSioKGppqqxuaumtKOirqKkrqKnsZ+JppuVk5GKko+IgpSJa5WijZmEgYZ+kYODk5esi5WOlZqOhZKQnZensKKgoaWkqMjNz8fCy9DT0dTSztPNxtbTzdTY1tbY1dfVytTazcrY1tHLrcTDy4hwbWBeXVZSV1JaT0pHSkpKQDs6O0VCRD1DRD5IQz9DQjs8OTw6R0M0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKKgJ2VnpSFi5aJj4qJjoiPgHiElJmLjYiIi4l+g3hzfH2Eh3eAe4eRl4GEb3hxbXV/dnh9dIZ8eWyHdnVufXaFdXl7nbWMPEGLxqV+jX1qZVdJQ2VjZmNoamRveVtfZmhrbmlugYSJkYyen6CekZeZoKOkprKkpbKgoqWfoqmhorGch5+SkpORi46Lh4SPhH6cnIyNgoSFepR/gqqWo4ySi5iTi32XipqRqrOYm5ynnKa9w8W5tsXN0dDS0MvSy8nUztHV2tfX2NTZ2M3Y287J2trS1r/MzbR1c2xiW1dRU1BYVUVGSklGRj06NzpAQkM6SEVARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MiooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXSGjX2XkZ6LfoeSgomGhYqCiH14hZeXiY+Dh4aHeoR5cXt7hYZ1eoaOjp16jXB9cHB6gHJ7gXKEh4Bujnp1d319gnV/fIeJsHRZqsK3jZKBcG5jPV5ocnFxcG53d4JlaW9ydnhye4yHj5OSm5agloiMk5yfm5+roKGsnKKamqCmn5+smYyajZGTjoV9iIiDhYuOoJmTiIOHfmyZeYSZh4iTjI6VjIZ7m4iTjq2qlJWXn5imrrW8qK29xsvIycvLz8nE0srU19jX2NfU29fT2dvWz9va0tbJ1cyTdXdmZVhXTlFSXEdCRUlJPkI+PTg6PkA8Pkg9QEJBQkVBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmx2gIhxkZCbgHmAjn6CgYKFf4R8fYSYjoeLfoaHgXeDeW57e4eCdHqSno6hdo92g3R1gX50gIRvgZCCb5KFdXyBhXp2h3yJuMalw8q4gpacj3hwZk5lY4J7gneFoZCLeXp3e4SAfIR1bZSWlZaQmJGDiY+XmpeXpp2YoJefk5KXo56aq5aRkYuNk4OMhYmJgYaQkZ6cmYiFi4GFl3qIiZ+XkImOiouCfKGJkIu8oJiTl5qcqKalrZ6ntb7Av7jGyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvGg3Z2ZGZhXVJVVVRNS0RNRDs9PDw5Ojw/OT1BNz4/QD1APj05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs5OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVxpdHp5bImNknd2eot8foB/gH6Fe36CkYqFhnqFiHx2fnVtfH2HfnR/kp2Rn4OSfId+eI9+eYuKb4ObgXSZhn2CioV8fpF7kKmPkMOgvYybpJx+ioR9iXOMi39zppqcmJSFe4+RiYRpR3GhpJ6MjJGShYiLkJKVj52bk5SRl42MlZ+dlKGVk46OkIx/kI+Oi4SJk5aZn5+IjJSRnZCCjH+mmYiFjoOGhIClhoqLuJedkZSWoaagnZ2do662urSrwMbK0MjHzc/T0tLY0tXXwNfY2dvY2trZ2dfbtnZ1dGdmYlRdWVJPT0hDTEM9PT45OTs6OTk8PTZAPj49PTk6OjszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdPPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PERSU1JYX1ZYZm1tbWmBjopxc3mKe3uAfH98iHt9fIuHg351hIZ6c3pzbYF+hX53hpuhm56UkoCMiH+Yh4Cckm6IqYV7oIx8kY6DiYScfpuRio2jop+RpK+gi5GLhouBk4ZXcq2Ln6ubkIOZnJCPjluDopGCjZ+TlIyGiIySkoyUlZWQjI+KiJabnY+VlpKMk5SGgIuJk46Kip2XmKOihpOdlaCLiomOnZCDiI+Ag4eFpYWLkLKYnJKUl6GgnpmSm52nsbispL3Cx83Ixs/M0MzO18/R1K7W1dja2Nra19bZ2p1seXFjY1paVlFVV0NASUQ/Pz46NDk6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieGxifpGDb254i3h6f3uBfYd8fHeGhYBzcIWCe3V3dnSFg4V9f5Kmop+mopeKnZCUl4uKqJdyirKNhKiShJmUhZqMo5agmJOJm56ik6mwoJGVkY6OiJaMb423hJrEyLKcoqacnJiWkbGQZKTNx5WOhoeJkJKNjZOVioWKioaWmZuPkJSTh5WYhICPi5mIjpCql5eko4iZnpaaiI+Hl5iKhY+NgX+Hj6WIjZOomZeTlpihmJ+Zk5yaorK0paO8wb7HxsXJyMnCytPMzdSo0tHW1tbY2tTT2s5/b3tkYFtcW01JU1lCQUdEO0I+ODM3PDw6OD42NDo6PDo3Mj86OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGOfXxtfoh4en57goKDf3d2gYN8bW6Lf3t9eHh8hIeKfouis6ejq7Oil6efpaSWla6ig5G4lZKzmoyioYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmpehwI6jybirnKOmrZiSm52ynYWGqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIuUk4eUmIaEkZCcdZGZspWWpKGHnJmSkIuQipebiYuWjoZ9jJieiZCQnJqak5iXn5OgnZSem6CxrqKkt760xcfEvcPDwMbNysnTps7M09LR1tjT0Ni6b3ZyWV5TXlROSElNRUJDRDU+Ojc3Oj88PDc9NDI2Njk3NzQ+NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdNWlxZSmZgO0iEi3p6boWGenyEeIGGgX5weHx+fW9yjXp+gnx4houJhoSSprusqLG9sKWts7Ooo6KwrIqatZ2juKWVraWXqa24p6Sjn5qpmKqkrrCqmpmclJWRl6CYmru7rsqhara4q7CUmZ+jrJOXvqNeqrKDioqNlIeQfI6OfYOGjo+UlYiIk5aMkJWNi42WmJOdmbSWlaudipyUko6RkoyYm4qSnpCLiZafoY2UjZiZnZKbmJ6UoaCUnJ2lr6ihpbO4rMLIxLa6vbzFx8fC0aDGyc3NxdfW0cvTn213ZVlXUFxQTkVDPjxDQUI4QDg4NT9HPT02PDM1MzQ1NDU0QjQ5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRIYmBicEpAi4p+gHOGh32CiHWDioJ/bn18fX9wd4d3joKHfI2PjIaMmanCwK+9xruztMC9tK2rs7aMqLKtrb2rm7ulqK25uKumpqKipKOpr7Kxqp2cpJmbmJefoqalkqS6r6nAvK2usrmlpKh+iIacrb2wgouMi5CDjoORj3qBiJCNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpiPkqGRiZSbpKyUlo+TnJ2ToJ2bmJ+hlJqep6akoqOwsqbBxsOvsLq3xcTDv82mx8THxL3W0M3EyoVwb15ZV1xYTEpBS0FGRz9BQEM7OjQ+QT09NT02PjM0MzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVONzlHRD9DRlxlRmBpZ1pdXJOMjIl7h4yHg4x1h5GKgW9+e4J/cX6Be5V6kpSUmJCTlqezxsm/wszCw7nHvbuvq7m7mLO3urLArqXBpKuvvL2qrqujo56nq661sKqcoKucoZyWn6+1p4ujurq2wbysqZ2zpaSolIWOqcTDpIKLj4eIhIaVlI15g42Rj5GhjIyUko6Jl5+Yk5mVmKagr5yMq5yNlo+SkZWVjpCVko+hlIaXn6CynpSZk5+gmKSemp+boJSYnqWkpqakr62lwMTDrqi3tsnDvrbPssS/xLyz0crIwrRxdWlZVVlnUExIQkxLTEpBQT5ERDw1QUU7OzM9OEIzMzIyNjNBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWk1lXGZUYmuZjZaKjIiTkIaJeYeUkIFygHuNf3iHgoKQeo2hlqiZmpm6vcfIycHSycvCzb3Cs628vqi6v727w7eswamss7y+qrCqpKWkrK6zrba1oZ+vn6WimKOzvaqbqL3BpLa4r6yUsqysrJeHmqmmpZGCjJOlloqBdYqSeYWOkpCeoJOPk4yPjZSjmZaclZWjnqqekaWajI+Pj5WWiHyPlpOSo5qVn6GctaWQnpako6GlnZ2mmJ2Vl5qko6mnorKsqLvAw6+ls7fMv7mvxLO7vsG4rMLDwsCXanZeVVRZWEpKTElGRERIQ0NBREw6NERJOjs0PDhFLjEyMzUyQjI2U0hPPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+aUhfWGJaY2NWno+cjpeOnpKJin+KoJOEeIV/ln9/kIiKkYCWoZmup6SYwr3Hw8fF087Ozcu8wrewury0vcu8w8G2t7yts7+6va6vqKCpqLatrqmyt5qeraOnoZ2rt7iqpbC/xLK9ubSoq7a0rq6XlqWsqJ+RjZKyxaeWjnySlXyHkpmPqpmYk5OPkpWTpJ2TnZmUoaOinJifmIuMj4+eiFqQlpeSl6SZZZijn7KllaGVq6upppueppaYlpiUoKSopZ+2q6m5u8O0pbS1y8C4qrarsru4rqi4ur24gGhrV1RSU01FSVJNSz9BSEVFSEhIOTVFTTs+OD1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs+QEJGQnBFaklSZWFMRqWUnJeil6mWjJGDiKaTiIKHgpyEg5WQkJSPmqKer76voca8xMTHxs/PztLKv7u2sbq7u77PtcO9uLm3s7G1s7izq6ecq6y5qqmnr7CYo6+lp6OltcCwrKy0v8O6wLq0p7q2ubSvlqWtrq6ki5OUoY10wpp9l5mEjpeZjLGVm5qVkpKZmaWjlaCbl5qpnZugoJmKjZCWnGBKlpyalZqlllWXsKCvnJ+klK6tqqSaoKWTk5iYjZygp6KatKiqs7u7u6qxssfAuaasq62ysqOhsrK0pG1qYllXTU9KRE9PUFI7R0tJR0lDQz46S1U/QTo9RU0wNzUzNDpCNDRNV087SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiqlpmgoqivmZGXh4uolo6Ik4WgiISdl4+doZqjpLXJtanFucLDyMrJyM3Nxr+7s665ucHBzLXHusG5tbqwr6+ztaekm6q0taqppq2smqSupaSorLu/qKy2t7/Bv765s7LEsrm+raOvtay5poibl6abdr+fhJmdjpOamoyul6GcnJeUm6ChqJ6on5qaqpqhp56YkI2RnYNudpKimpWdop2RrrKjqpSoqpepraOinqSnkZGZnIeUnaKelrGmqau5tr2ysq6+ubago6eopaacm62pqYtgYl5dTkpLRkdNSlZMPU1FTktMQkNEPFFWPUFBQkRPMTg9Nzc/Qjc1VVhPP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH5lXkhFq5Wbop+7r5mUn4yTq5uRkpOJq42GoZ6Mo62Uo6O2xr60wLnCwsfJxcLOyMK+ubKvubXBwsq1xrLCvLW6qqitrbCjo5iqtLumqaarqp2pr6ejqqu9u6itvbW4vse8t7a4wrK+wbSqtbervqWPo5iSoqC8n4maoJmXn56Pt5+pnKWim5yhmqiks6CbnaacqKqemJWPlJuLlomMpKGUnaKdoLWvpaSSr6uZqqqcnKOiqJCUlJ+Cj56enJWppKGhs7S6tK2otbKznpyjpZqXlZiqoZ51XVpdW0hHRUZMUUlNRUdHQlNMSkJFR0FWU0NIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5ZlxGQ0OdcGJHRaeXo5+ew62cl6WYmqqclpqaj6qWlaemla2smKKrtsPDvL62wcLAx8S/zca7vbmysLmzv8PItb+wvLe5tqakq6ytoaGZqqrEoqSprKaerK+roqmpvrinrb+yuLfHtrW5uMCzwMK4tbO0r76jl6OXlJyUrp+QoqOlo6OgkL2kqZ6oq52doZulnr2hmaOfoqmsoZ2XjZWek56Hj4SNk5+koJ61rKWblbCmma+lnJmonJ6MmJSeg46gmpuSpaSal6uxtbGqpaqurJuYoKCSj5CVqJ6UZV9XX1tNSEdKTkxIRURJQT5RSUE8R0lIXFJPSz1IT1U0QkY5PkhHNUNhW0tCTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW1SRjxLeGVhVkuimqOcnsWsoZ6sn56uoJKjn5akoKaprJi2saKqs7bFxL2/tcDCu8jCv8rHtbi1tLGztLfBxba+sbi1ubSfp6yqrJ2enqWkwaWfqq2gpKmtr6GmqL21prG9ube2xLK0uLq/tMTBubmus7W1o52llZKUoa6gmaKeqaiso5rCrKmerK6bm56ZpqC9oZ2kmKusrKaimo2an5KeiY5Xf5afpaGguKqnk5i0op6xn56ZrpWdjZiTnIGOn5eVjqGjlZClrbKqqaKipaWVlZ2Yi4+RkqSeiV9iWGJfS0dKSk5GRUFHSz89SkI5OUpKTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtNnp6hmZ/EqKWitKKds6eTq6Wgo5+sqaydu7CorLaxx8XBwrLDw73GxL3EybyvsLatsLSvv8S0ubGwurSsmaixqaqanaWhp8Ktm6yxm6qjrrCppam8tqe3u76vt8Sts7PDwLTHtLu4rLS2raqippaVlaSsop+gm6eqsK+vu7KmoKmpmZmYk6KjuKCho5KvsKylp5+SoZ6Vno+QjZWem6Kep7OmpoyXspuirZmcmqyPnZKVkpl/kaGWj42foJOLpquvpKainKCekZGak4WLkY2bnX9fY1lmZElITEpTQkNASUg7O0Y/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwyNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ6jn5ygw6mkqrOipLWqlrOsp6GksqyuqbuyrbG1tMbAxMK0wMS+ycS1v8jCtKu1qLC5rL/Es7eurba4pZiqsquqmJ+ml627tJuosJqsoK20sqirubKourS5s7jAqreyxL21x6i/r662tamnrKGYl5KmpaKimJilrriusrW2oJ+opJqVlZSkoLeipaWWr7Kyp6qmop6ampuVl6ifoJihnq6yoqaMl62YpKuWmJ2ij5qMkpaYhZWelIyPm52TiqipqqGnoZielYuOmY+BhZSIk553YmdbamlMT05OVD5DQU5DOzpJPzc3Uk9dX1JWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDEtLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJb2hVQ1dGjHlmQzujo52hpr+np6+xoam2q566sayjq7S2sbC5t7C3uLjEvcPHvb3EwsbAuMDFwLqptqSsu63Bwre3qq2yuqKUrbGtspakp5GquaqfprCcq6CvtLOrqba2rbyttLO5t6y4scO7v7+mxKuxt6+oq6unnpiZq6GioZGYobGvs6ywuZqcqaCal5OYp6C2qaajorGxtKyzqKyfnKCgm56lnKKXnaOzsJqfkJOkmZ+omZOhnZOWiJOWkpWWnJOIkJqYlI6pqKafo5yXm5KFjpmLfYuVhI2ZaWdrYGxtV1BRW1VBQkVUQDw7SUE3OlhQZF5QV1dFWV9eTUxSTl5LSj5aY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEtLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9p5+doqm9oqqwrKSyuKqmtrSsoK21va+zuLu6vre2wMK/ycS5xMLAv7jEvcG3r7Wnq7eyvL6/tKmusbaelquuqK6XpqiOp7ufpayznquisbCzrKm2tLW+rrGytaywtLPBu8a3rL2wsbisrKqjsqaepaqgpJeRmp+zqrOrq7OanaecmpWOoaaktK6ooa2urrGotK2yqqScn6iknpWimZuotamWmZKSnZmdn52QqpyVloSUloqdmJyTio2WlpqWpqWjn52WlZeSf4+UhXuNkoKLlWRrcWZvcV5GWWdWREJNWERaOUhCNj5cUWhcT1ldR1teXU9NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVVxnSzaMemZMQKSaoaWtt6Wsqqavrreqr7W7p6axt8W3sba9wcO1tbrEvszGucPAub65w7jAubK0q6m6trq5vrSqrbC1l5inrKmsm6urjqu+nqyusqOroLGts66utrK5uKqurrGota+1vL3Ks6q3tbG0r66mobSgm6itoKaWlpuasqKtoKavl6GkmpqTjqOlqLOqoaazraq2pa+yta+kmZ2sp5qYn5qZq7ejl5OQjpecoJeWk6qempF/kpeMnZuYlZCKlJKemaSioqCYlpKTlXqLj4V7jIqCipFqbXdtdXthRmFrWUlIWlo9e0pGRDZBYlRpW01cYUtcXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVF9UXy81KENfUVwuK0IvSkdQW0czY1lUS0SZl6GxqbKqrKakr662qbe1uqSstLfJu7S7ur+/tLO3w8DMyLzDvLa9vr+3v7yxvK2nurm3tsK2q6yxt5SWpq6rqKOwqZSvu6StsbOnqKOytLGysbWxuLSpr6yyp7evt7TExreptrassK2pp6O2oKCnsaGklZyalbGep5ygqo6po56blpimpqW4qKOytayosqeusbWspZmgrKibnJ6clKm4nJSOjoqXm6KXj5ekoJyTgpCUj5ybl5aViJaPl5qnnKSgkZaRkJV2hI+He4SBg4uKbG92dHt+XExmbVxKTmRcP2J7R0k4R2dXZlxMXmJNWFlXVVdUaV1PT0hgXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOR2YyNydHYkxWJS1CLj1FTFE8M3JrSUNDkZmlr6Wur6uopbGztKu3srihq7W5ybmtwbvCuLOxtcLCzsXAwb20vb+/ur68ssOnqbmwtra/vK6rsrGboKexraamr6WdsrWtq7GyrKmotbustbO1rbStqqyorKm5rrKxyMC5pbqwqayspaiusaalo6+kqZyenZuvmqOjo6ORrZ+joKCiq6anuaWstbelq6yprbC2rqKeo6mqm6Cbm5KktJmOio2HkKGglIyUnJ+SkIONkpKcmpeVlIeXkpWZppufnoySkY2Qdn2NhXx7fIaIiHBycX18fVxTZG9eTllnXEZElltHO05tWGJbTGBiTlZXVldUWGddUVJMY1lbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvKzEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISis6SD4zQkhTLD6QaztHSI+cqquiqrGkqaWztbK1trKyoauuvcy6rcC6x7G0rbTBw9HFxr7Asr7Awru+t7vEpqy3rLK3vMCvq7Gsn6OnramopLCjqrKqsKywr7Cuq7O8p7exsqmzqqulpaOtuq2qssO6tq27qamnrKmnsaWqpKOuqqiin5yjrZWlnpiemaydoqepoq2mpK2suLKyoqqioKyvsayeoKenqZmjmZmPoKaXhoSOioueoI6KjJWajo2EhY+Un5yUl5WGlpOTl6SbnJyKkpCNiX9+h4V8dn6Fg4VycXCIdWtfWmBuYlFzcVxLO4R8Rj9YdVhgWk5kW05WVlVXUVxhXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE7XEowLkpnREY4O0IwNUVLWDFAlVk9TEWVmK2ooquznKqqsLetuLavq6arq73JvLC9tsKvsauzw8POz8O+v7TAwsO6v7PHw6qut62yuL6+sq2tqqSnqrCop6ixpbSuq7GvrbKxtKy0vKS4s62sr6irn6OesLerqq27t6W3tqSpp6urqq2hqaemsbKkp6WhoayXqqGVm6CmnqWiq6Sto5+nsbiurqSmo5uqq66pnaKlpKSYn5uWj5ickoGCkImEnJ+Lio6LmI2OiYKLl6KbkJCbi5OSkZOimZuZio6Li32GgYGDenN/goB8cnWLpId4a19gbmZXZYdjTj9nk0xFYnlXYlhSZVRNVlVWVE9cXWFVS05oVlZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlZaLjBKZ0FBPDxCKzpKT140RIY9R0ZEl5OwpqOrsZirqq22rLayrKasqqm8wMC3uLK7taWyr8PJy9G/wLu5v77BucG5wMSssbWxs7rAvrKxrqyqq6i2qaaur6q5sKiysq+zrbeqt7entLerrKWpqpyjnrOzqaiktLWgt66gqqiqqKunoKusqbm1qqqpqaKqoK2ck6qhnaCloqajqp+dp7Svqaero6OYpaenqpyipKOgmZigkY6PmI1+h42HhJ2dhoOJiY6NjouChZSimo2NmpCRkY+Sn5eYloyKg390hoF/f3h0gn55dn2Ah52Pb3JnZnB3XGFziGtPXplWSG55VWRWUWNPTVZUVVBPWFtiVUhPaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EPJaOsaKmq6+arKatsLS1sKymsKqour67wLCtua6htq/Ix8jRwL69u7vBvbrCwL6/rrKysrW8u8KxsbOqs6mktKilrbOzubCjrriysLK7q7qwqq62rKqfqqyfo6C2ramhn7CzorWqnqinqaOqoaKsrai9r6yuraKoqKCsmZCwoZiioKennqibmaqxqqOgrqKhlKOjo6eYmqilmJeYno+Kh5SIfY2GhISjloSBgYuGjYuQg4OTn5aIkZyQk5GNkZyUl4+KhoZ3dIF/fHV4eX95c3J4Zn+GpHZpX2RqgHRniIx9U1hvXkp4c1NkU1FeTU1SWmZOTFZZZFhHUmhSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQDSRkLOhpaetpKekrae1s7KrpbGnqri+wLuvp7mqpq+xycfI0cO8v764vb68yLrBuLCvtLG6u7jAsrK6rLisorSnp6yyt7qzqKi9tq62vrC9p66staytnKmvo6ClrauonJ6rs6W0qJuqp6mjqJ2jqaipvay0sK6dqqSgrpybs6OWpJylpZ+lnJupq6afnKuinJOcoqWemJeoqZKYmpSQioKPhX6Pg4CInY+Ffn2Lh5CNj4N/k5qThZOhjJWRi5GbkpWHiX5/cnt6fnxoeHx5dG9ve2aEeISJZGFnYXKEem1neF1eVD9Xe21UYlBRWEtMTnJ1XUhaW2dZRVVlUEQ+Sk9EQ0E5SEdLUz9qYkpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mYkFKN0dTYFUqPTlEVz0qkJWymqCgqqaloayluLOzpqmxpqy4wb21r6K4raiosMLJyczBtr3AtLe/usi1wrWzsrWyvbi5vbWtubW+raCzp6ursLa4tayfvr2qs8G0vKGvs7WqrJ+tsKOcpqmqpJ6bpbGnsKCfq6mnoamcpKihrbyorrGuoaujpK6en62ml5+boaOcn5yapKujnJulpZaXlaCjl5uXpayMnpGRkYuCioCAjoB7mZSMiHt9i4aPjYuJhJKYkIaUo4mTkoeRmpCTgYh9eWt+dnl4Y3x6cG9vcXZnf3NphGhlZ19sc41sYWlvYG89WnlrVV5OUFFKSU1UWldNXV5sV0RXX09eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+KR00OSYnLjM0LjArLzQmLDokNDFBaFkxNFM9ZV9ETDZLVmRPKjsxTlc9I5SZrZqhmKilpKCopLiwr6SvsKmruMG5sq2fua+rqLS6yMvIv7bCvq+0vbfEtsOyrrmys8C0ur23qLm4vaqjtKipqrGvubGrnLy9pbDBtbair7a1p6ansLOfnqSmqKKlmZ+sqKmeoKqupqCmmKOooLG5n6Oxr6GsoayknKemqZqam5+klZ2dm56qp5ecoaqTmZSZn5OZlqGpkZqJjpCGfId+go19fKCMjYh4gouEiYuLhYeTmo6JlZ6IkZWCi5aNkXyFfHNwfXF0dGB6eGhtb29taH1xYnttaWViXWWFfl9ac2pxSkl/aVhaTVBMSkhQUlFJT1xfblNEWFpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1CKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo+L1dVNSiXnqeanZetoaGhpaK4q7KltLSpqLnEtbKtn7etrq2wtMbIwLa+wbmwtLy2vru+r6u9sLS/sLzDuai7urenp7WoqKuxrbSxqJy/uKatvLeyn7G3sKilp6+xm6GkoKWloJebsKehn6Oor6GfoZOkpKK3sKGmsaufrKOvmJyqpKmfl5qepZObnZuep6uanJ6ml5aYlp6Ok5eiqKKQiYuPhnqEfoSKeo+WiY2GeIGHg4eLjYWNk5iNj5aZio+XfoaXjI95gXpwcndvb3RfeXdka2tqZ2eCbGVya2tkaFhhc39eWmx1aVlFfV1bWE9PS0hIUlVHMjpeXmxQRFdVWWVNSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0SEJmW0hUQ1RdaEUuOzFeUSwylqSjmJadqp6moaOhuKqwobu4pay9xLKvrqK1r62tr7TExL2zvrq3sLO5uLq4uq6tv7O0ua6/wbervbq0paKzq6iqs6yusqSdw7emqbe3q5+yvKqnpqivq5mjp5ylppSYobOmmp6lqamcoZ+UpZ+kuamkp62mnqWhqJOfqaGhoZmbnaGSm52XoaOsnJybo5aTlZabjpOTo6ekkIiKjoZ5hHyFhn2cjYmKhniAg4eIh5GFlZOSjJGVlI2OlHuDl4+Kd398bHVybWxzYnl0aGZpZmNthGZnaGRmaGleZWJpZlplemJgUHNUW1tTS0lHSU9TQCEraV5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc3YUwnMp+kpZOPpqecn56epLatqKq6t6esw8C2r6yita6nrq+3wcC9scG3sK6ytrW5uLWsqry0r7KxvcC3rry8saSftqymprWqq6+hoMWsqqextaystbqeqKmrsaWYnaqep6WSmaWuo5mepKqhm6GcmKCdp7amr6muoaGdnaGVoKafoqCZnJqck5qelaafrqOYmJ+WlY6VmIyPmJqnoJCHioqIeIV3goKCnIeKgol7foWIhoSQhJaVj4+QkZCRjZJ7g5WOhXN/fWd5cGtrbGd1c2thZ2Nic39hY2VmZWlpYmVvWV5YXGxjYUxnV1tgVklHSEtNUlg+OWBsaUdCVVNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyosL0EqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGJGJTWdpKGSja6hmpmgl6W0sqOyvrehsca7ubCwo7asq66pub69u63Asq+vrraus7myp6u5sa+us7a7tq+5vqymnrWroKGypauwn6bFobOmsLOwt661nq2urK6imZ2nqqWelZunpqCZpaOpnJqfnJWdnq2wprinrqKhmpqemJ6jmqWdl5+YnJWaoZOpl62pnJWenZSNlZqOlZSYp6eNjIqJjnuBdIKCi5iFhnyJiISFioyIkoWTnJKRkJCRl4+Qf4GNjoJvgn9neW5oa2pncXJrW2hjYXJ/YGRnam5rZWllY2xcbGx1cWFTYmhjZVpJR0xNT1lRUFVhZYFUQFZSWlRGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjQ8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUhiQic0lKOcj4+xnZyUoZups7CfucC2oLTCu725saa2sKmupbi6uLisu7Ctq6u3qrW5raSytbGvqbG2trGztrunqaC2qZ2fqqOqrp2sxJmvprCxt7atrJ6xra+qopudpKypm5Wcp6SemaqjpZWaoJ2SnKOrqqi5nqekoJeamp2hj2ujlpmdcYOXnKWBdpKsqZ+Wl6KSipiZgJeKn454hZKNg21pfneEcWyGioZ9hIqGb11kYGeEl4Zri5CUknV4i4R/g5B/ZoiAaHZpZlhdaXRuTlBqY2Zxg2ZdZGZua2hdW12JkIWHaE9LQzhFVGdeSkhQUFVWS0hSYXB0ZUZbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOW0tbZmI+RzFOYTwrL46kmoiWspudlKGcqq6ro73Fr6m3wri+vK2ntrGmq6S4tLOzsLmuqqestKWxtaKnuLa1qKettrOutK60oqmftKueo6Wdp6ibsL+VqKextLmtrqSoraqrpqGfnKGop5uYoaWmnJynqJ2TnqCZkZ+oqqOzr6Oio5yWmJiXo4ihj5KaiKGIlZ+if6WAqK2flJSelImEcniMjoOIoHWHjWmXiWZ+c3igb4eHhH6MfH+hoJ+Zf3uHnnSIjnabimyHgoNtaGRke21yYlSGbWNtaZhxWGlwboZXXWhaa2paiHBseXKHaIeEWV5GTT5GXk1FUlZWUVBSV1RnXkxaTFJSUEVGRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk6LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTltMW2dfPUsxVF43LyiNp5iEnaydmpqdn6uqqKq/w6+yury3wb+qpLexqqymtLWur7O2q6mlsa2ltrObrLW2tKanqLOxrbKorp6robOpoKSlm6KlnrG4laanp7e+pqynqaqrp6aioJmhqKOZmaejpZmcpaqWk6OclZSkpqahtqSjoKSYlZOYk5yIrpCYlYqqjJmjnYaxgaWun5WboZd6gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsXlobFixrm9labySvG5oem1xj9h9UmtitrJ9f3CUdZqhqpBWTlhhT1ZORlVcWFBQU4tbV1tQQFxEUE5DRkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV1nXD5MMVpbNDEhj6eUgaiqn5idnqWtsqmxwr2ytcC1uL/Cq6a0ra2pqLC1qrC2tKioprWlqLmunLKytqqlpKeyr66xpquep6SypKKhoJecoqCyr5afpKG1uqOqqKGtraSinZuao6mgmJypoJ+YnqiokZynm5SeoqejobCjnp+jlpaSmJKZha9raouOqn9ohZaHrWZxn56Vm6mXca6hpH53unxroI92sV9qtFulgGWckGBmgXpmf2l4aqllvnJnpox2sWp8sXh1kZRjbW2nblyEoEVpZ4eWRXWcYH1me6OmgVhfi6tofY94emqoOEqvW1hUbWNaS09YX1xWVjtOh1BXVi9JU1NKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy8uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWDMxG5KilYOtp6afo6SrsrittL2+sLfFsri7w6epsKywqaqxr6SxurClpa+zo6q5qZ2ysrCjpaGqrbCsr6aon6OisZyjnZmWmZ2esKmYnKKgtbOhq5uhrayfnpqXoKOpnZmepaCdmqGopJCdo5uXoaCsn6WmoJqgoZaVkZaRmoa1m7V5hqmatpl3h7Obt3+Ul5isl39rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iXCPhoB/iJCXeIOCipeMg6CPhbB2d59xa2ttfItPpVhIY2OZfmNopV95cXVSkoZdUKluY3B7hYBhnS9Som5bVGtnYExLXGRYXFpCPrB3V1hBI01pRkJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YVQ1MByXoJSJs6amoa6pqLOsqru2wrC8w625t8Krra2vr6evs6qir7yroqi2raSstaSlsrOoo6Kdp6qzqbCopp6goLCWoJqWlpeboLCknJukqLWvoaiPqaeqm52WmKCmqZufnaOgnKCjpaSWm5+Ymp6jq5ulmpyaoqCXk5KTk52E1ZOZuXGxwn/Gh33WlJy7fZyXqJKPnY2ke42GooGlgnmreY+dVq97iX6farlauXeFhH2mgpR8mXqqeY6dkHuxbY6EdJC7hm+VUK+nxYpRoHpjYKpic3KHa5aHXlK1tMiFfoh8Y6QzQp12XVFqaGRQQFhmWWRhSkdMakpaU09ZZlpDQz9FPzA8PDU5PDc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdIOmFQNzIlnKOTmbGoqaWzqqW0p6S8t8GwusCyt7W9tLaosrGksrOmoK+2qZuouq6ksLGhsrSxoaSenqipsam0qaWcnp6sl5mZmJiWmKOun5yXqK6xqaOejqyip5admJyhp6KYoqGioZuio6icn6GelZmbp6GcppSbm5+hmJCSlZCdiLJuaLVyrIhwjqdztHV0tnucmaaOkJ2No36PnqN+sHWCkNLSdVyufIV/pG6bqqZqhoV9rX2YmZB7sXOTnY95s2WWdIWebp9mlFLJi1rCXJ95Yl+tX3ZzhmGWiF1Zyp1vwIB0TUu1U1XGZFZSamNlWEFPal9saVBVRkg5PVdSW1ZZSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxBTlRfZVA1Rz1hTTYyLqOekaWvraWpuqymtaWntru8sru/uLe1vLy0prW1o7Kyo6CssKWYp7uupbKxnbS4qqClnaGqpbKorKqlmp2bqZ+WlZmZk5Skq6KYk6ersaahlpKsn6WSlKGcpaeglZump6Kbo6CumqGenpCWnKOfnKWUnZWZo5+WmZaTm4WsfHiod6OPi4epcK6LhKiEmpqji5Oai6J9kpeHroR/gbNccrJTr32CgqN+cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52d4dnl4hqXa93lZ+Pd2w1ecius2BEVW9eZ2BFUGxfcG1WVU0uZWNoUllQO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdCYEk6NzegnZSgt7GZs8GtqLKnqrK6uLS5vrm4s7e+tqa5taG1raCgqayglai2rKixsquttKSbqaCgqKK1p6aqpJmelaWilJSdmpKWpKiclJCnrbCloJSYqZ+ij5GimqmmoZWapqmenaSfrZ2hnaCOlJ+cn6CYmJyWl6KglJiRp56HqX5/pnmhj5CEqnCtjYKnhpehooqYl4ijgZCGlKp6f4udeXCxWqiDgoigeHTYf3aHdKeBjpuNkqR8lZCfhHuyXpxkoH2ClW6TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZE9KQ6FcW010XWJmTVphX3J0X0pVNUqakVhIRT1IRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxPZWRBJlVmWz8xVF9iTDdGSF9DMT03op2amr6tmLPBrqutqKa0sLixtb+5urOyubyqu7ahsqWfpqenn5Orsqmwqratqq+hmKKgpqSkuqOjrKGXm5GjoJWVn5uVmaGhkY6MqbCwpp2Wmqemn42SpJiorKiVmKmon5+gpK6joZ6hjpWhmZ+gkpyXnJaeoZaXj6ycj65ucrR0qYx3i6Z0tHp1tIKUpqSTnY2JpIeOdbhui3uLomtrtlqhhmWXl2igoqdtlHK0c5OZf7NqhZKIrWp1tGGdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdlVG9uLlunT2JSa2VibFliXGBwfGNTWVE+P2xvMkJCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFBOKWanJ66o5yxv66tq6unt6m4r7XBtb2ysbu4q8K3qqyhnaekop2Sq6uotqOzqK6qoZedqKClq7ido62clpmQpaOWjp6hnJmen5GTlau2sKaZk5usqZeMlKaapa2jkZersqSgnqissJmho5CZoZegm5abl6GUnamdlJCrmYfUlJq7dbHEgMSHftaXnLh5ipKZjpiKjKeHeaK2dX13dsKCmrJhg7p5wHx1uGK1gYyHqX2WgqypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gYptmohwbY2kdL1dd31bYXm8alpWW2l5XmlgZGZibXlvWFtZQ0FAcT9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9UXmBLNTxMWy02QDmnmp+ivKOXsMOvramqrLGoua+3xbG7s6+8sK7Bsq2mo5+kopyckaqlqrKktaetpJ+WmquZp624naOumZWhkKagk46dpJ+Zn5qQlpOvubGrlZejp6eUkJalnaStn5GgqKufnJ+ppLKeoqWOpqGVoZqcl5WkmZCwoJKVqp+FkJm2gJKSjbiWeIOTm7Z3bmxvdG95j4SOiXKewLu8mnuBsqhwgHSRuYN8hoaKh417ioaNl32ku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycXe2jF5/eX2JZ4N5bHlii6xwdIV+WFunaURkWVRmX2NdY1FnZnFtdUJNT0xEO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlbLCs6uqqKyrqruvscavtbSwuKe1ua6rpKKnn6CdmZSspK6qpraoqJ+clqGknqylvqehqpeVnJGim5KQoqiik56XkpiUsrW2rJieo6Sii5OSppymq52WqaWmnJuhqaeno6mhkayel6Kel5aYnZ6PsKmUnKeij2t/apypeYl0f5uPdntmh3u+v8C6b5KDcZSFX3JqWl6biWFjh46Va2B/lGNtnHZilGuAmpWUZV5gY3GaiWhyjHyGlGZqfnB0eH59Ylt4dIFoUFxuhHx8impYbHmBcklKb4VwTnJNRFZcZmBMWldmY19PWm12anJST0RFTTxISTxMPjIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVDRlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPlxPJz8yPqifqKHBpJm0ubajrKaup6i1sqzIrLC0rbakvrGzp6Gkqp2jnJqarKeupKW1qqSbmJWinKetqb6oqaWVlJuWoJqTmaapqJGfkI+YnLCyvqybp52noomTkqmbqKScnKyfo5qco6etop+qopqum5SmoJeVnZ+dmLGlmaKomZ2Sn52kppuopJudmpybkZeCaG59cneRl5SQhIm0qo2FmJWPioyYloeUlYmDk5OQiY2RlJmTmZean6Gam5Sfm42CeqSFbGl7kH2AdYmLgnKCeHl2doqAfIlqc4J0g3Vkd312a295bF9iW29nTVhZZmpfV1lwem9tZlNPRlI5UFpOUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsLG3oKmms6elsLWqyautsqa1psCotKGepaacpZaWoKunraOkt6ygmZeWoJitqqbBn6yklpKcl5+YlJWin56jqJOQmKiossOvmaucqp6PlpapnqucnqGtmKGbnaKlr6ahpKierJiWpZ2ZmqGenp2woZ2ip5aZlJqUoaOXpKCZoY6XlYuLjpCYro98lZuCkYGJqaiFgJiWi4SOn4h7hJGGhZqRh4aKlY6bl46QmJ6jlpmSkJyNf41lobOuhImEd3uQin53eXpvZ3mRgYGJa3WBeYhyaHN/eXWDhoFqdGJ4ZV9oZGNkZmpYa3txamtcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAs6C5r76tqq2xsqCqprKtoqyzsMWwq62ks6+8pLScoKijoZ6Zl6imqaakprO1npWVnpqasKauvqGsopGRnpqalJKWopyXqZ2Enamro7THs5+ppKqWlpiap56pnKClq5Sfn52fqq6opaOroauanp+hmKSenJ+dsKSZn6mUmZmek6abmaqfnJdmhJN9ZX+Pm5BjeYxsaGp6kKOramWamH5ohYplZWloeo2ijmtojJeRondraouZop+Yc2xueoSMhnlYZV2FgV5si4qCd1xnc3d3koCIgm94gnh/c215hHN2iIeNgnpohFhdanNkXXOIaWt8cW1jXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1dX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSi42Wk82KUVZL0RPMVlCOz8uPaSeur25r6uzsKulqK2usKaurrC9saqopa6wsJ+tmKCknqKamqesnKyjpqips66elqSQo7CmtrmlrqOPj5qimpOSm6CZmaaWe6Sroqi0w7eloaevn52VnqOeo52kqqiSn6GeoKqvqaqjqp6mm6Wep6CslqGcpbGkl52slqKfm5SmmaCsmZ9+vYSJc7RzhZ+GrWh3ucS4cZKho3qmmJl0qoF8y8DAunGLo4eDnn2WmIiewL2Clp2djZzBwXyBepGMmsLAfWqlsm+NgW/Ken+beJKEj4B3eYGAeXF7gIZwd4WLknhsdZFiZV53Y19lgGJedGhtZGJYS1ZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2FfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0NQLyNGWzNQWS9VQUI7LziVornDtK+vv6mplKOvqbCvraaytq+qpqemsaugq5ibo6Ccm6qnop2roqWopaW0pJ6jk6aurbi0p6+ikpGZnaaTkaChmJugnoimq6Srrb+/saGpr6mWkp+eopmjpKqjk6Chnp2srqirpaOhpJ+kpZytqZGkm6muqpyeq52uo5eYppeipJidf86UenulgnqWl5tfrY9djqiAoaF8p5WbdauDgK9eZIyqe6iHhaB0l5OIs2OCq4agjY2zaoSvdHyWh7hhgq1Zo81ukHZ723t/mXF+iJN2f2V7iHZ2bH6HbX2Fj5B9a4CMX3Bqb2ZgX3hkW3FoamRmYFJUU1deSk9DNUFIRUQ4PjU7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11bV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1s6TC0hUEBGNC4xrMHAv7S0sLeYnpGjqqmttaymsq2srKSsprCqoaecmqaYnKKvn6GfqKejpqGfsKybnpamrq2xq6isoJSSm5+lk5CfpZedqKOeraOqsKi/xbOoqbGulpOenKKXoaqqn5Whnp2cra6mqaibpaWjoaqSrLOWpaKqqp6kp6eisqKTm6ecoZyWlZGXoXKFjJh2haiHcbF8nXGsfaCggaWPnnirgn6tf51yrX+sh4afdpiSe3yXfqqIooyRi5x9q3qIko+ff3qtVpzEe5Bwk8F9gZVtdXCMbWZ3ZYZvYXducm6IiY+Og2yPjWNtc3VvYGZtZF9vaWpuZmNXU1xgWlJSQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/Txseys5+do4+joqKtr7evqbGnqKqorqurp6KknZqjlZ+mq6CipqCoqKOfnrCtmJuWqKevrainqZ6XlZqkopKUoa2anaejr6yirLWpucyxraauq5aVnJ2imZ+urJ2WoZmenqmxp6iom6qno6Kqmq+xoqirrqaap6urq7Okk5ikp5yWk4Wka6R1inqpdXuycYKlipiMcIigm4ekX2FSq4WAroOcda6CqIaGn3qZl4Z7ZoCjiqSYhoGjfal/gZSGrl57qFWdopKBeqOfgHzEsMWMc6+0s7lyYqmvwnVoi4uWjYBrl5Bta3h4d25rZmRkcXFme2ljXFZfaVhYVExMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICcnISstIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLSwsKmto6inqqurqKSmoJuln52mp6aknayaoqyho5+vo56bk6qktbCvoambnJaVp6SRm6Kon6CmnLCloqixrLbHsbWprKmVkZ2dopmgpbOdmqGUnJ6nqqqirZqrp6ChqaKyrKGqs7KinKupsLC4pZSXpamanZN9qm2fhIh2q3l8sG6CpIuJn5aVnpaB0ri0uMmBgrJfYZSpg6WIh6B6mJaaearJdJqjlKipkJKajH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4OTZI6Pm5F7b5SPfG15dHx6bVtlanJxZoBpXmFYY21cXllJTExKRURCQT1BPEE/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTAxrmtqbKuraWinbO5rKuhppuopqqsqaagpqWYq6Ofr6ydpqGtmp+ppZ2ntaCjmJSoq7azrJumnKCWkKatkpqcp6OgqqeuoaOnqbCzwbGyqa2olImYnaWboqSvppeilZicpaWpma6crKalnaujtqyhsbmwnpywqLS0taaWmamlnKGQg55Od5qCgJ96hKN8gqSEhqafnJ+UhLh8fHq5gn/MxsO2d5uikYuffpmXl4p2n5eKpJikqH6vhZuDnoSsfZmUYaVso3CPhZCBfZaEcqxgpHNxgJphvH1SVXWNkaGVenyQjodyeXKEfm9bbG53cmqBblpjX2huYmRdTExRU0FIR0ZIOjpLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Kss7Wmn6GVpq+urqinnqWlmqSnobOuoqmns6CaqaSUo7Wjo5WXoam1uaSco52jk5Cispmem6aloaKvrZykqKK1scKwraqtqpGHkZynnaOknKWXnpiYmaWjp5itoayjpJeupbusore2rp6etrO6s7Wpmp+xo6agiJDStcO3eoeOhZGTj4CmeJSid4yhkoWlg4tyq4eGtG5yaZmknZWJn32XmYeHkHOugqWbo42mipOciJSQmm1wslylc5N6nGyZf3uZfm6pYaJycn6fYnOyuGh3jpKkl3yJio+IdXt4jYFsaHdpeHNuf3RcZGRtbWZoYEpaV1g8SEY/UzNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krr+/vLu1npeopK62oqKZlaOqp62pqpmlop+moaC1p6Kpp7GklKujj6StpJ2QmpqqtLSknaWcqZKUl6+goJ6mo5ynnLWZoKqjtarCr6mrqaKMhI+coqGmo5WampyYmpimo6WXqaeroKSbrKa8rJW9sK2fo7G0u622qZ2rtKaqmnyokX18sHiLgKSliJxtsm+hh618oo+DqJeagayJhq2FoJSooKOXhZ+BmZaBe5J+q4GdmZaLq3edoI+Ik5J/ea9do4F8pqdknoB8l3Rrrl2lbHKFmV1gW4ygbZSPpJeBkoqTiHd5gZZ+amx+Yn10bX95X2dlcG9oZ2hCWV9aPUpTMlM4QUFDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JODE1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVlFIRklKIygovJKbhKnGw7fBtJ+araCuuaajjpqjpKCvrqmfo56drZieuaCiq6CvqpquoZGqqaWWipuQrrGsp6Com62YmY+toqGepaGZpJytl5+opbaovq6kqaOfjICOm5ugpp6SlJmblJmZpaOimKeqqqGinqiovKSXw62ro6KttLytsKmjtbGqrZp3r36Ri5yFh326rYmYZLCMZZaufaGQhKeXnIKti4WwhqeapKKikYWgXGxrgrNgf618e4KAsmxmbpmXi4ixWn20W6SDa8iiZp+Be7tZdrVasn1Tr4F6rFiAoW2XjaaZiJWOkpN4d4ybfGNzfGKDd3SAfGFqZnBtZmVlT1VjXEFUXT1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vru0wbOjnK2mpbepoIuZoJ+dsrGonqKfnbWYoLOoqquesK2erJyVrqiijombjq+sqaejqJmuk5qPqZqhnaSemaOipZieoqixqLuupKienY99i5uWoaCZkJGanJGZl6ien5enrKSjpKKkqbqeoManpqmhrLa3rrCpob6wr6+XgqqSo6+Om4CGpJeYkICAuMO6hI+dk4WomZ2DrIuDr4qonJumq5F+1b3CqmKkv719f6OCg9e6t7WElJKCnr2+hGqjgW+rhG6df3qysceDa6uwvax5eKK+u3SAlYykmo2ZjpOZd3+PmXlifHlkjGZ4gXtga2VramJQYltTaVxAVGBCTCk8OjQvHx8kHiUyIBwkKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0scC6sr2zop2up6azpp2Ml6W/qbavp6G/pqaxm56xnLmon62vpaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp2nm5qgqKKYnaCrrKm4rKejmpeTe4iZkqabk4+QmJmOl5OomJ6WqKeeqKagoqq6nqnFo6GwpKy0tqyyrKO+q7GxnHV2qqW3hWWJn3BnrJCKj25ud6WQm6CCdrGbl3GRjnKXqaSbmK+kcmxtbWaLeG9tg5lxgHppcGlniZaVl3FoaYWGZ3GGZF2KY2lvWl1nfnimYGJykJJwZmSAjZKNoJaVl46TmnqFjZN0ZIZ3Z4xqeH55ZGxjZmxiS2VXSmtZOlBkRFAnSjkrIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6urK0qqmirp+ks6qZkr2xw8e8tKmev6uso6Cnq6C6o6StrK2mjpatqpCMhZWXrZ+mqqKfpKOgkYulkqaZqZmWo6mglpylpaauuaqsmZqTknuEl46ml46RkJeUjZeUppOdlqeima+lnaKruZ+wwailtKetsbOsr66qvKexupiMoqmmtpyJlqKYhqmbkJSdkqq0mpykraK0mKSin6KjnaKlopasp4ySk42Hk52dlZCZk5iQjpWEf6Sal5WOi5OSipCHhH5njIF0g3d0h4xxp219lpOUlIGBj4+OjZuSnpSVk52AhZKLcGiPdm+Jd3Z8eWlsZWRvZFVhWEBpWkdiX01YK0U9KyYhNjQwLx8cICUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbevrqKwpa2gobexkY6qxLzDubapoaSdm6WdsKikt6edqbWnqJGYrKOLiImPnKeWraShmqienpOVpJeomqmZlKago4+ap5igtLmnqpiakI18gZWMoZSLlZGVkI+Sl6SOnZinnpq0o5ymq7eor8KvpLinsLCyrqustryjsr+ak6ekprWikp2mno2pn42Sn6KtsZuipLOrspqmop6lq5+fnp2XrZ6TmqKclJCXq5mNmJiWkJaekYegnpSUhZOMj42VjIF/Zo2IdYh3eomEdJxqiJKWlZKJfYyWkZCWkZ+QmpOdgYaWhXhxlHJ5iX9xe35qbmRfcGlgXF9ZbWJQYGJPWDlGRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlqSoo7CzrK6jqaetoKi1qpCPm6Oyua2qq6GimXqcobCkprGolpu4pqOUmKmcjoaKiZuikK+epJaooKGSl5mcrouqlo+omKeMmKiOnbi1o6WYm42JeYKUjJuTipWRk5CNkZahi5ycp52dt6J/g661orCwdaS/pLOheXuirbW+l3ivpqGKgKp/ZFxidp+OpJ6Dln5tlLWdpKmwrKVmoKGUdHqbmHCBmaqZbH+kqYplnKWckZeYlouSm5CEnZuQlIOTh46OkoqFeGuQiHaHcXyGgYFhaYmMlZOMW3aVkWdnjoxyeaGWlWR4l4WAdpdogomCbnl/anBlX3Zva2tnXGVjYWFtUVk9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHR0lLTFRVVVldYGhmZ1hRSTxERzw5VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqqWprqSnraWSlqq0rrClmamlqpdzi5yvoKirp5OWuaCgj5yknpF+iIiano2smqSVp6KejpeSnoV1ro+IpZqokZajiJu5s6egmJiLiXV3k42Wk4qTkJCUjI+Sn42ZnqWYm7GVgIybtZ20jJKPvaiifqeje6WxuoOOj6ifhIyGj7Gpr4yJlqKaeYCLrIadnqOpq6mJloeZd6ace4icgZing4F7nbN7ioagmJmUmJaBkJaWg5maYnmIkYSNj5KLhG5xkIh6gnGBgYaAh3SHhZeTeJZok3SgmnN7mYKcmYSYfpGIgYKYaYyMhGp4e3FwZ2V4bmlsalxkaWllcVpcR1NMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaWZZUUg5REw8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2YpJ+mrq6rqK2gqbGnp6qlmZStxbyvoJSlp7Sdj4OcrJynoqCNkL6emY2fmqGRfYaPmJeIrJ2jlqGhko2UiYaAkaiOh6Kco5OWnYaeubGnnZqSjoVwdZCJlZCKlI+Om4uNkJ2QlZ6jlJ2rh5+0ibSarovKiKuvireFjbCEs7GFqY6pmY2dfKiPcnt3nI6mlmiVpHm0jKGgqKqTmcKCgKuJmaFynoCbpX2XhZWzgaF9oZOfj5iYgI6UnImYkot8hZSGjZWTioRudJKGgHtzh4GEfYV1hoOYgY/FZoCph4+iap2BnpeAmYCKi4OImG+NkoRnd3R7dmdodXBnaGteYm5sZmxXZEZdUUwyRTQ2TWBjNyYzPEVHRDo2MzY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQElkWF1jZmhnYmJiYmNjX19iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6OgsKmpqKasoKW5saqrppqUnqKkqaGUo6m1oq9/oKedpZ6diZS9mpONoJKdkHmDlpWRiKuZnJuaooWPjHabm46gkYieo5uWmJeGorispZmbjIx/Ym2Pi5OQjY+LjJeLjpCejZKeoJigp36hp4etnaCWrpCgnp2Rh4Kgja2xiKSOrJuMmn6idoCZlGuBq3VNq3iHjZ2TnKqpgqqrfoShfHunap6Ak2xnl4aYt4mefm5gY1iDl3+Ne2Rni3OZfXmXbFx8l25gU3GFXGBteoRgWWWCfoWBmXGoq2uDo25ypXCfgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbnRxampvXWlvbGtoV2ZNXVhFOUE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUktNQkpbXV9XXl9jdWBNRTpNTk1UYlxbZmZpaWJiZGJkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJeeoLmhqqSmrJKitr2rr6KZlp+gpaurn5yttKGnkaCfoKecmY6ZtJmQi56MlYt1gZSRjYqmlpaYn55+k4WFrKOHnJGKmKiYmZmRh6WvpqKVmYeJgGluiIiLjo6Jio2Ri46RoIuSnZ+aoaV/k4GPo6GUoHeclpCng6OpgIassIeleox+hJp9onBzk4eVe56MeW2HnIuakpyqnI+HnX2DonR3pmeefnelXph7fZNzom6Yt7S6c5OIgYC2qGSBxrh8cZW2jHGAm6NjdKyrYX5qnbN+bn6Ig4+DjJhxgKNsc6RznoJ+o16cmbOWb3uXnrN0cluesoJpYnB0dXFob1hqa3JyZVtmXGFMRD1ENVFBWXAyPFJHX0pSPTwzOTU6OjZDPDtASVA/VE5OUUBFX15bWVhgYHtkSUM4TFdVVmNhWmZma2tiYmVhZGNgYWJgZGNfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi2ra2gmqGboqOkrJqasayrkpegmaGkmZqUnqybi4mReIuFcYCWjYqPoZCTlJ2XfZGJjqighpiPipKik5uajIqop6Sej5aHhH5re4d/fY+Ng4uQkImOk56BlZufm6Cfi4l3nJiijaByoYyJqYmdqJGYqq2Arox+eqCZeaOTeIBzl4iMnH2Vn4ebjpqdqIijZKF+ipaQm41tnmibjm+amXuAiqd9cmh0qoOeg3OqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxfp3Z3ioqAnWiadYeTkpiNf55tmZBqpplcqH53u2p9qVqOhF2zZ1xucXh3a2lbcGl3eGFeZFZhQlBFTzdWQlJtNEpaWl5OWkRAMTUxOzs3SD86Q0hVP1lTWF0+RGJdVmBRYWN8aUVCOU5bXVhkZlhmZm5tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mWnYmqtpyoiWOVnKy7srCsnaWbmqefnayZnbCnqp2Xo5qin5mWlqCjmYaJjWmIgHJ7l4eMlpaEkpSYj3qKhJaknImVkIaLnZGcm4iPqKGfmouQioCAaYGGeX+XjHuIjY6HjpWZfpKhnqChk5hyaJ+KoI+McJKMgqmJmqGlqqOqfrCtpKK4l3ajs6Kjf4iUeJ16qpl/oo+fnZmJmHKhfYeNsLV9bJqRoXh+mbWjo6uohJl8mnycmn90qlpdb3uXjHieYk1/e3uFZHqYQk2fWaJqc3yOb4KKhJl2m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B9fW5lX2tndXtiY19QXVZcVFZAWUVQZkRSVlxhWF5JRD1COD9BOkhFOExFWEFXUlpWRUZhXFpgS2BtfXFFQzxVXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lZHZsXmVnZmxkZWxoaGtplJ2Bsa6ahFNfoae0urOzqZqii5qpm5unkqCro6Cnj56dnZqZlZihnZaHh4l3hYFueZWEkJuLfZGTlohygImSoZtykpCBiJiUn5qEjqibmZWKiop8g2yEhXGCoYx4hIyIh5GXk3uRop+eo4iuhn21hI+enXumlnqpgpeekYyjoH+naHhufplzoHNxfJ2FmG+Tgq18o4Snn5uDpHBeqWh2o2RwpmGc0498e5l4cnNjooaQfqJyo5B2a5Czi2CCmIp0qrKovH93g25/v6aqtF6cb39yl3CCc6JyXqRndKZgaKZsmtOYeoKbbnZ5l2ubeXaXcmyppWdfZHlxf4RsaGZjbXV3Zl9hUVplUFFhSFZJVF9XU1tkaltkUEVDS0xKS0FKRDhQQFBNWFNYT1NRYGVlaVNkeHl3SUZFY11lWmhpU2loam5jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZmhsaJibf7GsVF1Lf6qwsrWws6KcmISXpqCgooykp5+XqYmZmJiUmZOSoJeNh4V7cH2EaHyPg5OagneRjo+KcICGj5OSbJiUfIiRkqOVg42pmZOSioSJeYN2iIBugZ+Gd4CShYeYoJV5kaGimZ+Js6Gitot6rKekrqVwqYCbkYaBnpR9pIGimoaYcZ6Eoq2uiZeLf4ykjZWDr6OVd7W2tsmic5SMg59gnpepbXmWh6CbdaGHd6B+kJaLgW9NZqOScZqIc6V7enVig4JtfqBscmRgnHN/dJdre2q0trTGpnOYfnqcapqaq3SBmmxzd5dpmXl0l3FQRH2zXmp1a3iGZmtmYnN0cG1VW1JYZ09SZ0lVTFhSVVxna25VZ1dNSkFKTUtHSk5BUUpQZGNqbWV1c3N+eHtudYl6e1VRT21eaFxraVJqaGlsZ21nY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinYmwqIVlQJSisqyvr7Whoo9/lqehoaOLpKacm6aCmZeXjpeQkJuSjYeDeWt5hmWDjH+Wn3l1j4iMgmqFhZKEi4WdjXqMipWlkoKXqJaLkYuAiXqAfYt5cI+ghXmBlIaIlZ6UfpKjppuVloNnbnicbKJkfHKleJyYcGingpmOfaV7oZeDlnKfdoCJlJWPuW2PiqJifZmjl4luc2ura3Wgbm+mYJtpi5BploeblXWigX6aYIuGjXVviGJooWaef2qbdXBkZ4iCb3KiW19bZKFuXoiMcXyAdHJkpW54omRmp2iXcouXbaFvUoiPbqBeZKdUi11UmG1tcmtxgW1waGt3c2pvUVZVVWVZU2xJWE9cSFhoaHJqWWtWUFJFVlxNWFNhVWhqXnd1e3xwfXxygnt/c3eOgIR3XlFzYWdicGdQa2hoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqbCxpp+Kf5apnJ2ji6GhmqGhgJWZlI6aj4uXkI2Je4ZxgIhoi4p8l5pzdIl9kHxlg4eViomVmoJ8iIaWpo+AoaqPhZCKgYp9gICOc2mPpYR9hZOMh5efjYaQqKWciaZ4lpt+pYmWjLKZnpGEr5efpXmYiXupdaeQhJpupaKMkoSMg7xtfKWvgoeGh5WXnaJ+pntyqJWhlmiffm+sY5aKlpN4qG2qo4GJdYiCd6uRpohrkrFsd7OMqWyLhm9voJ6SlWJ/q4yqd4GAjqefd599haSVnaBomod1q2aerYy2c3a+jKOTWYOmjathdXJ0b3t1cGJqfW5nbVNUWFRgYFxrTFxSXEldbG12X1txWFtfWmdzZW1vcWNxdGB3en55cnmDcoN+gXt7jYGCgHdieWRjbnNkUmxnZ29tcmlmaWFfXlxhamJsbHtvXFxiaWJtaXdtZ2xuYpamq52BgJ6klqqqnqinraOZiIGWqZmdoomapJyonYSMmpCGnJGFko2MjHSFeoiDb42FfZaSc3SGcpGDbn+LkoeGlJB9e4KFl6SNf6WkjYCOiYSUdYKHk25si6iAgouTjYianYiLkqqioI+AdJSXiH6BeZSvpH+CnHGPhnmSjYaAe3KojXJ9fXqXlpuEjXh7fX2IlJWTi3eRmaGihXt/imyMhlx6eXN6cWlvfpOKcYB0go+Uk3GGhIJljX9fgYGMeHZzlHVwem9viW+Fhl93aXiOZoKDho+qnH90fZZqiYhvfnV8g3VtbGaMc3h7l3eEWmpXeY9pbndycW93eG9da4VuaWdWWV5WXGRqY1VgVV5RX293eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV5gnV/gH+AeYuFgn58boBtZHluXlduZ2h1a3hqaWlkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbqpp4uhopunpJmknauioIODlqqQnZ+ImaaaqJiDgZyLfpaUh46KiYxygnyOfH6PhHqWjnRyg3CVhnx9kouGho+GeX6AhpijjHumn4qFj4+ElYOGjph3cYSqhY2RnI+HnZyGipqon6Cqg4mNlZt/foqXraiQk6iReHGfk4R8lHB/qodxfpVxam98gZ+Lf5GOi2huXYSNjZydoJBzl4yJcnVsg3Z0gFlyb4eRgn5/jGpdaWR7hYSIgGBpeHucfISNg3aCh4RpeoyJbGJxc4N3X3ONg4qRqJaHZ42Og253i4Jvg4t3bWRlY3mCepVaW2lmbXZbe3l3dG5zcoNmXG2Ja2tiWVhcWVhqcVpeYFleXWVyfXp0b3Rjamppe3xyenZ0ZG10aGx7f3V6fXt5eX+Af3CGiYR7fXN+enJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyrsaGQo6Gan5+YnpmooqF9gparjJ+ThpqhkKSVf3uYhXySmYmIhoaKcnyAi3aFi4KElYlyb4BzmIaEfpODg4aKgnqAhIqan4+BpZ+Gd46XiJWLi5yXhIN6rIGQl5mTiZybhoehqp+hoqOLiJObnaOZlquiqKehk5yJmZB+epCQhql/gJORkpOcsaWalJ2PjbGSmISmjY2WnaGKkZ2EiZOLbH2Od3dmg4aRi32JnoWHi4+IiIGFhJF3fHp1m6SKh4ugjIeWf4CNg4F3cXWGhH94iYiLkaeRhIeOh4OMkIt6hYmHjX91aoCDfHmZaXFoYHOKcH17d3Zvd3SBXV5vhmduX15ZWlxTZ3BVY1tbYWxoc3t7cm5wY2ppaH97bXh+cGhwcGxmgHtygoB3f31/hHttg4yGfHp5fH16g3hOZHZqc25xe2RrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2InrqflqOhmJWZmJSYpKCden6XqY2djIWfnIqdlnx4lIN7jpmJhoOEhm14gH9ygId+iJKDbWt+epeHhIOQfoCGhId8h4ONm52RhqmegnKKj4aSkouckXyNe6mDjZGXlY6alYaFm6afopqdhoOSmpmZkJmmoaaenpCXgpOMeH2JkIanfH2PkJGGmKmgnJOcjo2pjZKAno2KlJughI+YgIiPhHF5hnJ1YX+EkId2jJmBg4+ChoV/hoSVb3p2dZSkjI2Gm4aGkHWBjH5+c3N8iYV7eY2PhZSokIeFj4GCiYmIdIOGhol5bWp8f3ttaGtsZl55f2h8fHZ0dnR6d1xgcH1udGBjWlteUWZsU2RaXWFqaHV5fnBsbGNqameAf2tyf2trdG53boR5boaAdoKAfYV3coONh358e3yAe4KLYGl7a3VoaoNkamNgaVxjdWdvYnVta1RicXllb3l6cmVqbW2Lip+4mqGkn5OSlpeLmp+enHp3nKSQm4mGpJOKmJl4eYyFe4mRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hYSHfI+Aj5ubkIimm39wi4uMkoagoYqFjHynkIeOkZaSlJF3jKOgoZ2Wmn+BkJqZk42ao6Kkm5iSnICQh3uBhZCJoYF+jY2PfJekoKCSmZCQpYyPgZySipSZnX+Tk3+Ij4J2dYJxd2F+gY6Hc4qWfYiMcYx+goWGj2p5cnqOmpORgJh/iYxzg4l9fXJ6fI2GfHuTjoSXppSNhpB8hIWGhHSAgYWFeGRwen54eXBramZefXNofHV1c3xyf2peYHR2cHdkY1hdXlJqaFRlWF5gZ2l2eIFxZmtjbGdlf4BqbX1nbXBqfXeFemuLgXKBgX6BdXaCjYZ/fHqAgX1/j2pyg250aWKIaGxiX3FWdG9sbWB4aGxXanN2Y3R6enFia295iY2fs5Klpp2OkJiPhpygmpt7daOejZd/jKGKiJqWd3qFh36DiX6IgoF/cH56dHWChX6JkHdnY32Gl4qCio14fYCNg3mWgJWXlY2Vn5p9b4uBkZOFpZuHjImDppWEkYqVlpGQdZGdoaGYlJd5f46Yl4+Xmp2lnpqUlZ17koiFeYeYj59/goqOjHOXop2gkpiOj6GMjIOYmISUl5t/mY59io6CeHJ+bntkgHyLhnGHk4CRgmuHg4GAioVnd3B9iJSajn6UeY2LfYKJfnxygHmLhnqFkouMmaOXg4SMd4eDgoF1en+Gg3Nednd8c312ZmtjYH5qa3Zzc3V9cHtjY2FzbnVybWFZX11aa2RSYldfYGhrdHmGcWJqY2xmaHyCa2h0aGxvaH98gXlsj4VxgIODf3R8g42BgH56goN+fJBtdYl0dG1mimxqYmN1VoNpcG1geWdsYWp2cWV4e3lwX3FshYWQna+Yp6mejo2Xh4Wfk5WXfHaomomYeZaci4yZkHh7gIt9fIN7gIKBeHN4eXN9gIN/iIqAZF59i5SHf4WHdH1+in9+mISWk5aMo6CXfnKHe5ORiqaPjI6KkqCRg5CPk5eQioCPmKCakpCRdICOkpSKnZ2ep5mYjpWXdZCRi22HmpGbfIiJkIlvl52ZopOVioydi4aBk52AlJOWh5mJfIuKgntxemt2bXx/jH9uhZODlHhvgoR+fouBZnRqfYKYmIWAjnWSioV6iX93eYF+h4F9hI+GjZWlkXmFgnSIhnx/cXN+hYFrYHl0eXB8bmFuYmR7Ym5vdnN4d3JzYXZgb2x1bm9cWl5dXWpdT1xXYmFobXN6iWtfaWVqY2h3h21mbGhpbGeAfHp3bpCIc4CDhH10gYaJeoN9eoGEfXyOcnmLeHhtbIdraF9pcmKHaHFvZnZnbWxhemhqfHt3cGF3bYqBmZqroaSpnoqLkYaJnoqUlnx2rJeMlnyek5GWlIh2fnuKfHuAdnd/gG90c3pvhX2BgIl+fGFcfo+Shn+EhHJ6gIZ6j5GHkZGbkqSbk4F9gXyNipKjiY2KjZaajIWQl5KVjYiIjJKdk4+MjW6EkI+RiZ6ZoqGYl4qXk3CLm4ZniJuQlXuKhZCKcJaak6GRkoiKmIyCf5KffpOQk4uZj3yLhoh0c3VrcW92fYt1b4aRjpNydIB8goKJfWVybnp/m5V+hYp1koyCdYp7cIJ/god9ho2LhY6Wqo57iH1+ioR3fW5tfoOBYWZ3c3RuemFeb2BqdF5vanp5eWxycGV5XW1sc21zWFpdX2FqWk9XV2RjZnFxf4dlXWloZ2JncY1uY2hoZWlngHp3dW+OhXOBgYN8dYKJhXiFfHiEhnqAiXd/i3t6cnmDamtfcGh0f2txb21xZ29rZXtibn96d3Brd3eJf6OZo6ihp5uIjIqBj52Gkpp0f6iTkY2GoIyVk5CAc3x2hXh4f3Jze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYF/f6CGj4qRnJegk5Z3iX6AjIicnYqPhpKXloWIlJiOlouKjY6MnYqOkYRtiYuPkYqclqGcmZaGmYlsh6WFZ4ifi5OAjYSMgXiTmJGdkZCJiZSNf36QmX2SjpCNmpJ9i4GEcHZwbG5vcXyHanODj5iKcXiAdYKJg3pndHB3gpuQfYqFe5WTe3iKdXKLfIeOe4uHhYqPnKWJfIR3gYp/d3dsaX6Af1txcnFvb3ZZXm9gb2peb2p8enFubWptd2Bwb2txbVlYYGFhbVdQU1llZmJ1b4SCYl1rbWRjZWuSbWBmZl9naoF1cnJvi4B0f4KAeXaAi4B5hX53h4Z2g4V7h4t/e3aKf2pxYnxihXxvcGx1amhubHd4X3F+eXtzdXN/gn6llputn6eXhYyDfpaVg46ddImek5KFipqMlY6MenJ4dIJwcoVzcXWIbG5sdGyHdoN9f21uVVGBq5SHgniAdnKDeYKggpCBkpGXm5GZd5F6goySpJqTjoiUmJKEhZaYi5OLiY6Ph52EkYt9couFiI+InJmfm5eVgZWAaoifiWiIoomUhZKEinGDkZePmo2PjIuPjXd7k5F7j4yNkpeMfIl9gWx3am9rbG17f2J6fo+XgXd6gXiDjX16aHVtdomXjICJh3yVkXJ7hnF4jnuLjnuJf4SOkZ+fhn19eIGKfHZvZ2p/gHdddm5ta3ByVV1uYXFhX2xueXBocGZnc3VocWxhd2VdVWVgYHFTUE5bZWRdeG+Ie15caHFiYmVlkWlfaGVbZ299b2txc4p9dn2FgHV2f4x5e4aAeIeDc4aFfoyMhHx5lXhncWqDYId+b29re2BpbXSAdF90fHiGd3NzhXx5oZCasZymj4OKf4KZiX+KnH6KmJKOhIiXjo6OhHd0dnOAcG+Fc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfHB0g3WDn4KRdpSQmJuQmXuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYicf46BeHuMf4iMipycnJuWlHqOeGmLlIpuiqWGlImYhIZjjJGYjZSJlouMiYtwepWJfI+Ji5OSinqGfX9tfGVzcGtte3pcgXqQj4F7fn+Aho97eml1a3SMkIqDh4Z+l4xtf4Bwgo6Ajol+hXuEkZabm4x9d3iCj3hya2VufYFqZ3NuZ2hzbFNdb2RwWl9scndmbGtiZ3hzcHBkX3dgYVVrX150T01LX2ZjXHhwinRcW2V2YGFkZI5jYGZiWGlzc21rcXaLfHR5hoJ2d36Lc3+Gf3qJf3GJh4GQioh8fpl2ZXNufGWHf25wa4Baa255enJgdnp7jXZydop2ep+MnK+boJGDhXiIlX57iJyGhJ6QjoWMl4STjoeBdXdweXBuhG9tbn5yY2R3cHxuenxqaGxipJrB3K7vonNsdYN1hKGEkW6Vj5SflJuAkXCFi6OXiY6VipCdlYOAlI+FiI+AkoqKl36He3Z/iXiGhY6bm5eZj5B2i3hwiYuNf42mhpOLnoaGXouUl4mOiI2KioSJbHyXgn6Kh4qRkIZ2hn5+bH1keHVqb3p0WIh7koeGen9/gIaNf3pmdGqBi5CLhISBjZiGbYN3b4mTg5KGf4R7gpKXlJqRdXR4h4x0cnBlc3eAYHJsb2FodGZSYHBna1VfbnR5YXJjYGl+cXJuW2NyYWNWblpcd0xMS2NmYV12c4ptW1xkeF5gZGaEX2NjXlhpcmtua3J3i31zd4SBeHh8iXGDhHx9iHt0i4iHlYWMf3+Yc2h1cXlsi3tudHCAV3B5dnlxZHZ5hoxodoCJcYCdiJmonKOThX1xjJN4eImcg4SfjI58lYx/moiEfHN3cHNqb4FraWx8dF5gd3Z7cHR6Z2BlfOvatcnD3IlzbHSAdoqaiIxpl4+OnJWSgYhwhYigjoWLlYqMl5N8jZKHgoiPepGLho+CgHd4g4Ryh4KTm5aUmIaNdoiAcoeEi4mcpIWWjqCEimGDlY+FiIWIjIaAh2h9lH99hIWKjo+Ccod/gHJ3aHZyaXR4bVqNfZODhn2Ag4GEi4N2YnVtioKRjISAgJOSfm+DbXqIkYiUhX2Cf4KTlJKYiW9yeoyFdGtvaXB2f11xZ25caXRfUWRxaGZTX3B2dGBwYF1og3FzaldnaWNpV21XW3RMSktlZl5hcnOFaVtcZXleXmRnemBkX11Za25lbmp0d4p+c3KBf3t2eohzhYN8f4d2doqFj5iBjYJ7k3Zsd3Z5eZN1bnd6fVh5hXGAbmd4dpGCZHaGhXGKloaaoZuhioZzb5KLcXaNmnyJmYiJe59/g5l/gnlxdG5vZHJ+aGZsdnZbX3h7enFxf2lhZ2F/1baOkaZ4bnF3e3GSkIyGapiNiJqQi4V6aIeLmYaBkpGGhpeMe4yMgICJjXuQjX6JhXp1e4N8cYaAlZmOk5SCiXaEiHiFgo2Vn6GIl5GhgIlhf5SHhIeDiIx/f4JmfZGAfoGEjI+Qfm2DfYN1bG13dXR3dmxjjoKPgIV/fISAhYl/cGB0coZ9kI6DfX+SinpyhWd7hYyIjYV8hYCBlZCRk4VvcHmLfnRsbWlpd3phZ2ppWGt0WVJocmliUGJyeGxiZV5aaoRudGJcZ19lbV9vVFpuTUdOZmRcZm5ygGtaW2NzX1xja3ZkZV1dWmxsYm1qc3aGgHFvf3x9dHiGeIWDfICHdXiJgZKVe4mGdomBb3h5e4OSb217gHZeg390gWxoenOUc2dzh3xykpKEmp+bn4aHdXWTfm11kpZ9h5CDio2ZfIyadn52cW9samF0fGdiaXN5WmB3e3ltcX5lZGhoV52PX3Jzl7zEhHZxlIiPfXGWi4abkouHcmqIj5aAe5WMgYSai3uKhnx7iYt/lIh1iYZ2d36BcnWGgZ6UhZSPhIRygYp3h36Lm5+aiJWPnoGJZn6Tgn+FgoiJcYF9Zn6MfHmAgIiMj31pgX6EdmdweXhzd3Rsa46Gi4KKgHmCgYWEgWxfc3l7fo6Lh3yCkIF/c4JqeoWJjYeFeYV+gpmOkY1+bm17iX12dG5mZXt0YltwYlducVNTbXJoYU5mdHhmYF5dWW+Bb3NaZWJdam5gcE9ZalFEU2ZgWmpubXxuWVtdbWNaYnB2Y2ZcXWBraWNsanN2gYNwbX58f3R1g3qDgnyBhXZ+iIGWkHiEinSBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0a5ONhp+ZoJmEiG59i3Vpd5eOfoGKgpSXiXmPlW96dHFraWRgc3poYGVweVpgcnx5Z3F5YWVlj7Gyd0tiWqXZ0JZxe5CKj3d9k4qEmJCLhW5rhZKSenmSh4GEmIl7hn93d4mKhJaAcIuIcXV+e2p5hYOlkISTjYR/cICEeIZ7iJ2blo2VkpaGiHF7k4N9goKIgm2Ad2iAhHhygIGDioh8ZX5/hHZkcXOAaXlxb3WZjoaDi313eYGFeoNrXHJ/c4KJh4p+h4p7iXOCb3KFiJCGhnOFe4KajY6FeW5vfoR/dnpkZmh7b15YdlpYcGtOV3FyZmBLbHd0YV5cW1p1fnNwWGddZmpyYG9OV2dSP1hmXlpva2d6cVtaWGtlWWNweV5nXF5lbGdla2lxd3+Ib2x/foB1b4J7f4J/gn92gYSJl4lxgo1xe4Z8enmEk4x1anl+a29+dH98b3J7epNvboF+eGeSi4OhmZyRgoVmhoNvZ3mViH1+hIKYiYF8jo1peHNra2ZfYW95bV9ib3hcZGuCeWFxdl9lZdTqvYsyOj6Ljn9xeIWHjY11gpaMfpKNi35ta4SMjHV8j3+FgZSIfIJ3bnaHhIOXd2+IhWx1e3VmeYKDp4uCj4uEfm6BdnmFfImfko6Sk5SOjId/e5KGd36DjIJqf3JogH54bnx9gouEd2J6hYJyZHJpfm51cnWCnIyBgIWAdHZ+gHOCb1xuf3V5i4SLfIiBfol5e3JtioWRhYxzg3qAl4yLgHVua3aAgHV0W2dndW5XVntSWW9kTFpycmVbSXB4b1xbW1lddH50aFliW2dmb2RqTVdmUT1dZVxddWVgdXBaWVRuY1lkcHhZaF1fZ21naWtpcHd9jm1pgoR/eW6AfH2Bf4F6dYKAjZOEcIGLbnd+gHt7iJKJf2h6fWpze3KFenN2fX6MeXiEfXxrjI2Em56WjIGAbI19a2h+jYt6fX6Dk4J+fYqIa3ZyZ2hiW2Jnc29fYWtzYGhwiHlic3ReY2SboI9uXDVar7V0aYCIfJGGdYWVhXOOiol2b2yEgoZ0eYl4iXySh3l+cmd2iX5+mG9xh39pdnluZnmHhKSHgIeNin5vgHeCg3+Pm4mElpOZioyFiXyPiHB6fYR7aH5saoB7emp7d4KIgXJgd4F+cmRyZ3aDbnV7hpaSgn2CgW93enx1f21ZcIB3dY2Dh3iIdoOJe3l0b4uCkYKGc4B+f5SJinxvbmltgYF0bVxmZHJwUFp6TVtuW09bcm9kVUtzeGlXWVlaYXCAdGBdXWFnZGlpZk5ZaE1AYGNbYHVhXXVsWFdTdGFaZG5xVmpeYmhqZ21saHB3fJNsaISKfX1wfn57gYCBend/f4qLg3F8h29xd4N/e4mMj4NqfXttd3h2inZ8eH+Chn+Dfn16bYWMiJmjjYSDe3WLeGtshIeQeH16gpGAgH6Lg3BzcWNmXllmX29vX2BncGZqboh0YXRvW2FkanZ7gL+cpqTIuHGEgnKSe3eFkoJzkIuHcnJvg3uDdHSHdIh3k4h5eXBjd4d6gJNpcoR2Z3d1Y2p8goidgYB/jo9+c4B1h3uClJKFepiPlpCIgol7iIhreHl+dGd6aGt/eXRpeneAg31oYHiIfWtrdGh8gWp2gYyRlX97fn9xfHZ8dH9iVnh+c3SLhYN9hHGHinh5cXGFhI6Af3p/fnePhoR3anFpbIeBcW9cZmFxbUlkdUtdbFRTWXJuYlFPdHhhUlhYXWFwgnNbYVxpZWVka2RQW3BJRGNgW2NwXl13aFVXVnZdW2VtZ1VrXmFpZ2VubmhwdnqTbWmIjXl9cnt+eYKBgXx2fYOIhoNwd4RybXeCgn6Ji5N/cIB7d3h6gIx0gnh+gYGChHmAdW9+ioubnoh9hXp3hXtndIWLkHl+f3uIhoR2j4BncG5fZFxYZVltcmFgYHBsa2iIbmF0aVlfZG6Ad6naqceGh7JxiHdvjHR6hY1/eZKJf3RzdH13f29xf22FdJOFeHRrYHqCeYmPZnKEcGd1blttfYCQk3+AeJGTfnl8bop4g5OOhnaYjJOQiIaGe3+EbHR2fmxndmRte3Ztand3f398YWJ4hnppdXVjfnxndYePjZZ8dYF3cYB7fW6AWld1f3B2hYh/gXptiYZ0emx2gYSFf3x+en10jIJ+dGh0ZW6Kg2xzWWhec2RHbW1LWmBXVlV3bWJQUnR2WFBWWF5hcYRvXGBjbWVkXm9jVFxyR0JmX11mZ11be2JRVlx0W1tna2FVal9gbmVma3FocHZ4jnRrjo11f3Z4fneBhIF7dH2DiIeDb3KAdHF1foWCiY2Ke3d/eIN7fIWHd4d8fYF+hIB7fnJ1eYyNoIyJeYl1dIN4Xn2Fl4t4hoNzhYaEd4l7Ym5tXGJbW2FWaXNjYFtnbnBmh3FhcWZXXWNrf3zKzoe5oWptbYpscYNxe4OJfnqQhHl4c3h1dHtqbHZjhHWRgnZvZl99gnqLimVygmtqcWNYbXqFm4iCgXOXlHh/fW+Kc4WMjol0mZCSiYaLg3x5fXBwb3xmaHFibXhxamxxeH19el1leoB4anZ4ZoN3Z3WIjI6VfXKIam9+gXlvfV1Zc39udYGMfIJvcIqAcXdpeIGCgYJ4fnN8dYd9e3Nnc2Fui4FrcVdpXXZbR21qTFZVXVNVe2thT1R1clBRVFdeYnSFaV1gbGpmY1pvYVhicEhBZ1xgZV5cVnteTlVlcFlbamhdV2hgXnJlamhyaHBzd4Z4bpWLdH96eH55g4h/dXJ/hoWOgnBwe3h3dnmGhoeMhnp8f3SLfX2GhIOHfn5+fYd/fHh1eHiRk59/jHyKbXWAeGSDhpWFc5GKb4WFgXqDdGRuallfW1xdVGdyZGBZZHFyZ4ByYmtlV1tgan94vq57n7duYXOFaHN6cXiBhHp9i353d3J2b3t2ZWpvYYd1joBzamJefnh5i4RmcX9oa2taVm93iaOBhX9xmZNygXp3hG+DhJSKdZeKjomFiYV9eHRxbmh4X2psYG12amdqbHl3enZaZ318eWZzfm2FdGV1ho2GloBwjGdre4R1bnViXXF9bHV9jHyCZ3aHfm5xaXZ/eX+AdH5te3yCe3lxZmxibol9bG1WaV92VUppak5RTmdMWHtoYU5VdWtMUVRVX2Z1g2ZeYHFoZ2JXal1ca2hKRGpZYWRWWVV5WU1WbWpZXWtkXFllY150ZW1kcWdycHWBeHGZhnZ/fnd/fIWHfXVzgoiAlYJuc3l7enNzhYeJiYN4gX11j358hIqNg4GEe36Lg3t2e3d3mp2YeomChml2fHtsg4OSf3KOgXCFgn+Cf3BnbGdYXVtcW1NkcGReV2JydWp1b2VlY1dcW2h/cG9ygHOJZGR5fWlzdXNygYN3gIN4dnJ1bmt6cWFna2eGc42DbWZdX31we4l/aW14Z2pkVVdyb42mfIR7dpaRdH10fnxvfn2Th3iafYmHg4eDfXVwcWxndFxsZ15sdGRnZWl6b3tyWWiBd3VocIF4gnZid4aLfJWBb4xrbXuCcWd0ZmFuemdzeIt8f2J3hHdqbHJ1fHJ7e3R/aIB/gHl3b2RmYm2Fe2xqVWhhb1JKaGpPS05vR116ZmFNVXRkSk9TV2Fqdn5mXWdzaWZgVmRXYnBcTEtqV2NhVVRVc1ZMWHVkWV5rYFxaY2VfdmdtYnBpdG9yfnR0mYJ3f4B4gH+GhHp9dYKEf5eFbnJ0fHp1cYSFj4GAeot1c5B/fIGVjYCFhH19jIZ6fYB2e6OlinmIhYRrdHt6dYKAi3puhHN5hH2Cg3ZvamllVl1bWlpTYm5kW1hhc3tqaG1pYGJYX1ppf2lrb4BnbGBoeXhqcnNzbYOAen98dXRtemhqeWpfZW5ogXaPhGdlWGJ3an6He29qcGdmXVRYb2eOp3eBenyQjnl2cYBxdXh7kYF6l3aHg4CFiHZqcnVnZ25bbGNdbXJfZ2FqeGh7bFtug3N0anCBfnp4YXeGhXmQhXSJcnB6gXNkcmldcXhlcnSJfHljdIBxZ2p5dXNteXh2eWWEfH95d3FkZGNte3xqalRnYWVTSmtnT0dRakVgd2ZhTVNyXUpNVFpla3d8Zl5tcWlkXVZhVW5uVkpTZ1dmXlhNVWxUSlt4Xltea11dWmNlYHlobGFvb3ZucHd1eph+d3+BeYCAh4Z6eXqDfoGThHF0dH95dnSFiJF9gHyQa3KVgHuCn4V+h32AfoaCgIp7doSrnn96h4eDa3KBeXWAfoB0boZufIBzioBqcG5kZFhfWllaVGJqZ1taX3WCaV5tbFxhV1xca4FlcnR9aWlca3Z1Z3N2cWyEe318eHVybHlnaXhmXWRzaHp3koFjY1RlcGiChXh4Z2lqYVdWWWdjjqdvfneAi457cXJ/aXtxfI59eJBzhX5/f4ZuZHVyZGdnXGphXG9vXGdfbXRlemhddIBvcmtxfH51dmJ1hox7iIiBgHlzdYB2YnFuW3J0Y3FzhXx1ZXOAbWFte3Branx6dnNnh3Z7enZxZWJkbXJ9aWtTZ11cVEtxYlBGVWBHYnZmYUtTb1hKTVhYZ2t1e2VlbnFmZFpXXlh3ZVRKXGJXaFhZSFdlUEhhd1pdX2xaXlxhY15+aWpgb3R4bXBudoOXenKAgHx/iYyGfXV1hniHjHx0dXWCeXp6goyOfX6EiWlzloF6ip1+foV6gXp/fIaIc3GPrYx7e4aPfWVxh3lzfHp1cm+GbHt+bI96Y3BvYmVdZVZZWVdjZmtfXV1zhWhYcW5bXlhaXGx7YnB3dWxhWWxzc2d0dW9sg3h+f3h2bW50ZGl0ZVtndWZ2dpF6X11SZmZrg4J0fmJkalxUV11iY4+laHh0g4aReW5xfGp6b32HfXaKdIJ5fHh/aGR2bGBmX15pXlxza1llXW9vYnplXHd8a25ucHh5dHVlc4STf4iDiXx3cHN/dGN4ZVxxcWJxcoJ9dGdygGVfbndqZWh6fXVvcIN2dH10cmJfZm1ufGRoU2dXWFNNdl9QSllXSGJ0Y2FJVG1TSk1aV2lscXxjbWxzY2JaWlthd1xTS2NdWGlTV0dZYE1HaXRYXmBsW1tfYmJchGloYW54eW1vanaBkHltg36AgZOIhIF2dIl0jIZ0cnZ2gnh9fX6MkIB+k35wd5WDfJiSeYCAeHp+gHSIg3RwmaF6en+JlHdjdIZ4c3d0a3Rufmt4fHCRc15wbmBnYmxUWlpXaGNtZltccYllU3JuW1pYV2BsdmNpdWppXlltc3Brc3NzaYR8fn57dm5ubGRpcWNbanJkdHaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEknVsbHtvcHJ8fn1zgniAc3p6emRldWddYllgZ1pedmhXYl1waGF3YVt8dmlqcm94dHN1aXGCloSHf4V3dGtxfm9neFhdbG5jcnSBenRncH5cYHByYmBrcn9tbnZ/c3J4a3FhXGVsbHpgZlJlU1ZRT3VbUU9YUUhjc2FgR1ZqUElQWlVra2t8ZW5vcWJbWlhZbHFXUlBmVlZoU1RGWlxOSHF0WF9jbGJYYGBhXYtqY2RtenhscGl1eYd7a4N9f4SafIOEeXyHbY+Hcm92enx0goJ8i4+Dgpd0eIGThYGeiXWBgIF0f4Jxh4J1b6GWc3qGi4Z6ZHaJbm16bmZ4cHprc3ZzjWtedW5hZ2VrUl1bVWdhbGtaXHGMZE9vbl1WWFVnaXNoYnRlZFxYbXRsb3V0eGqGfH97h3aPc2Nka25hXG5tY3N4h2taVFZjZHh9fXGGXWRfY1RaX1lilZVjbnCDhYp0a2l8cGd1eHV9bXt1dnB6f3ZfZnJjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXRxdHF1d2tthZSCiXyGcnNncH5ydHBUXGdrZnJ1gXd0Y212VmNybFtfcGd+Zm54fnR0c2tuYVpkaWp3XmVTY1RVUFNsVlBWUlBHZHJfYUZYaU5JWFRWbWhkfGlreGtiV11VW3RkU1JXaFFYZlRTSFpaUE13dlpfZWtpWWFgXl6ObmJma3l1bm9pdnaAf2yDgH2HmHuAh4GJfmuTiHJndIB7dYCDfYmPf4uTcnyKkYWHn4Z7f4aMc4GGc32Cdm6ki3KAjYt2d2x5i2Bke3BmeXN4bG1xd4NnZHxtY2ZnaFNfXlVnX2xuW15ujWhOaW1gVFZTb2dza2V4ZGRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVweH5nWlZYYGx4fHtwhF9jX2dWWF9XY5uIYmtwgYd9eGxsem5deHNufGt2dG9wfIBzWGpuXlhcVWFiV2RwY1NeYmlhYmxaYX5sZmx0dm9td3dsaYaMgIp7iW5yZnJ+bnRuZFthaWlwdIF0c15pbVNlcWVWY29kfGRzeH13bHBta2BZYWZndFxkVWBVUk5XZFJPW05PSGRvXGJHWWlNSl9LWG1kYHhpbn5kYFVfVF11XFNSYGZOXWFVU0pcWVBZdHVdX2VraFhiYVtejXFjZ2p4cXNuaHZ0eoRygoN6iI5+fImHjXlukIp1bHOCdH9/iIWHkYSVj3l9jI6HkZuEgHyMhXN/gXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjYyMjIyMjI2Ojo6Njo6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjY6Ojo6Ojo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERBUsza2NjY2N1tPURERERDWGhnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTJG2Orn5+fn7WcuNTU1NTRNYV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmIiIiIiIeNkJCQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWFhYWFhYaTlJSUlJSVioWFhYWFhYeJiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkpKRiYeOipCSkpOPjo+MjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYuKi4uLjIuNjo6Ojo6OjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQkIeJiIiNiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCNhIiFho+JjI+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkYmDhoeIjIiOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjoiHiIaMiI+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Qjo2Mi42Mjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Pjo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4CBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9/f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhYaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3ent8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl7e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj06Ojo8Ojg5ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/QD48PkA/PT09Pz49PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkVDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjs+PD89PDo+PT9CQkVAP0BOYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8e3t8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFDREI/PkE/QURFRENXdYaJin5YR0lKTExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm9wcXJ2dnl7e3t6fX1+fn19fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpISUdISElHRkJERkREQ0FVdIeJh4eGiIJXSUxNTE1NTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKS01KS0hIRkZHRkVQbISHhoaGh4eIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz8/REZIREVHSUtJSUdISUdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTUxLTUxJRkpWbIGGhYSEhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lJS0xPTk5RTlFecoGFg4SFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QTs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5/fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njs8Q0BCRkhLSExLTVRne4SEg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODo7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn9+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9OjxEQkRGRUpieISEgoKDgoWJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc3OTk3NjY3NjU6Ojs6Ojw4OTg5OTg3Nzo6Ojg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT1BRV2tycnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PEQ/XYSDg4OEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj48Ojw7PDs8Ozk6PDg6Ojs6OTk5PD88PUFCRElKTEtKS0xXb3J0dXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pj0/P0R3goOEhIWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVCQUFCPkBDQUA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEFAPz9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6Ozw6Ojo8Oz0+QD89YYWChIOFhIaJiYiHhoaGh4iJiouLioqKi4qLXj5ER0lLSkpGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj06PDo9PT4+Oz48Pz5CP0p+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqHV0dMTE1LTklJS0hJSkpJRUNERkdGRENFRkRCSElLR0hHRkdHRUtKTElLS0pDRkNDREJBQUNCRENDRERDQT08PkBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f3+AgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc7Pjs8Oj0/Pj88Pz5CQUQ+aISChYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtGREdISElFRUhGRkVMTE1JSkdHSElKTk1PTUxOS0hHR0dFRUNGRkZGREVISEZDQT9ATG1wdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw6Ozw6PT88PT0/QENCSFN+g4SEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMTExKSEhGSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTk9OTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVb3F1dnh6e3h4enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6Ozc8PTo8Pzw8PT9CQ0NMbYSDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIuLi4teUlJQTU5NS0pHRkNISkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OD89PT5ARUQ9QkRDRkp1hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUZGS09OT1dWUVBPUVNSTlNUT01TTFBTVVdSU1JQTEpNTU1LTkdHSkZGSUpEREVFQkRDY3F1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz08QT9BQURUS0JISUZJS3iGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlTWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hKSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQUNGRENES1ZQSk9PTlBQeYaFh4aFhoeIiIeIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVddWlZFUVlbXFlfVFlnUlVWWFRUVlNPT01LTEpJSUxNS09NU290dnh5eHd5eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SExJTVBLSUpPU1FQVFZVVlR1hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXl5bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktKSUlGQkRAQTpPUVFXWFBQUFFSU1JWV1dXV2yBgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaWlhcaGJHT1ppZ1xbXF1dV1JOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpaUlNRT1FSUVVSVVNWXnV4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5UUVFQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAgH9/gH5+enh3dnN1e39/gIB0a35+a3F5XltWVVNST0tGQ0RBTV6DbFZSU09PUU9RVlFTUlJUY2R2gIOCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JVUk1PWVFNTlFTVVVNUVNSUE9NTEhDSUdSU1RaXW1ydnZ1dHR3e3p6e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRgZF1eW1lVUUxJTElhbJJ0UFFTTVFSUFNbUlNSUVJVVWJze3x+gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5CQkNDQT9EUENEQEM+QkhHVkBJTk1HXWlRSEZPRkRFRkhHSEJDSEdIS0dEQkFDQE5QTVJkdHV2dXN0dnl8ent7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZoZWViXFhTUVBVUnNXZVtPT05MUVJQVVlTVVFRVFJPVmBrbHN2ent4eXVybnN0c3l4fn6DgIODgoGCgIKBgWtMRz4+Ojo+QD8+Pj5qUEphRUZISUVCP0hNTUdNUVVKQkU/Pjw9PD09Pz0/QUNDQD88PUI+SU1GVW91dXZzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKT1BOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJpbWxxdXt6fXt4enx8eHd4ZEJAQEE8OkJDQUFDQVtcTntOT09OS0xNT09QTEtMV05IR0FBPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1d3V2d3l8fHx9fHx8fH59fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT09eXFpJR09RUU9NUFFOUVJTVlhTUllUTllaW1dZXF9eX2VgXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FXUE1KREY+Ojk2NTg3OTc5OjM2NTc5NTxCPWZ0dXd4d3l5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LU1RTUFFVT0xSU1RXWFNUWFFMWFlZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT01MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnJ1eXl6e3t9fX19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5NTUxKRlBQVVlTVE9KTk9VU1RcVlJVU1NPTUxJSEhGPz49Ojc4NzY1OTk2NzU2NVdxcXR4enp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFhZWVlSVU9JR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFBPTk5NUE5UUlBSTElMS09SUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkZBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPTNAPmpvYVJSUUBHVFFPUFBRTlFPUE9MSkxMT1BOTVBRUU5QT0pMTU1LR0VFQ0I7PT08OT1HNjY3NkRucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JCOERNU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FMTk5NSU1MSUtLTEtHRkZFRDxBQT47QEU7PDg5VHJzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1BQEI9PkVIRkRGRklHSkpARkFBQEVHRElPSFFSYVxRUFJPU05PT0xMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZFP0JDPj1CRz9CP0BkcnV3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48QkFAR0lETU9iZVBNT01XS0xOS0tNTUxMS05OU2RNSkxSSUlJRUJJSkxNTkpHSUZCQkJAP0VGRUhETG9wdnp5eXt7enx6d3R4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPSEtFP0I9OTk5Oj9CPzxBQkFBRERHS0ZESUlHR0hDQz9CPj8/QD5DRURMTVFUTEpJTVRGSUlKTElKS0lKTE1PUFJQS0dDS0dDQ0tKTE5PTklKSUdDQ0NESUpNTElac254eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFISkNGR0hHSktJSkxER0I8Pj06Ojo7QUI/PUJCQ0NIRUpMSkVJSUZHSENDO0FAQj5AP0JFRElNT0dISkdIS0RISUtNSEpMSElKTEpNXVJISUROR0JFTEtOTlFOTE1KS0ZHR0pNTlJOTWNuand2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhlcEZKQ0ZFRkRFRUZFR0NDQD08PTo7OjtBREE/QkNFRUlGSkpMRklJR0ZGREI6QUNDPj9DQ0NER0tNSEpOSERIRElMTk1ISUxHRkZJSUxOS0lIRU9JQ0dOTVBOUE5PT01LSUhJT1NRUk5TZ2dmcm9zeHZ7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZl9wR0pDRUVEQkJBRUBEQj4/Pjs7Oz07PT9EQj9BQ0ZHSkZKSUxIR0dHRkVDPz1ERUI+QUNCQ0VHSElHTVBJRkZGS05PS0ZISUZFQ0RJSUhLSUdIUEtESk1NUU5PTk9QTkpKSU1SVVVSUFhlYWFtZnByb3J5emdlaGhjaWxmcWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VERkJBQEFEPEJBPkE9Ojo9Pzs+P0FCP0BCRUdKRkpHSUdGRkZFRENBQUVGQ0JCQkRFRUdHSEZMUExJT0pKTEtJRkhFRkVDQ0hISEtKR0tSTUNPT05RT09PTk9PS0tLUFVXVlZUWWBfXWlgbWpuaHJzYmVmZmRoaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01HR0VHQUFAQ0Q8QUFAQzw4Oj0+Oj89QEJAQEBERkhFSEZGSEZFRURDREJESUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9NT1BNTE5TV1ZXWVZYXlpdZGBoY2ppZ2tfZGVmY2hnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hBQUJFRTxAQ0JEPDc6PT47PjtBQj4/P0NFRkRGRERHRUNFQ0RGRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSEVLS0xMTk9SVE9IVFVUUVRQUU1OUU5NUVdaVlpZV1peWlhhYGBgXmhlY2BkZWdnamhoamdobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURBQ0dFPEBFQkQ8ODo+Pj48PEJDPUA+QUJGQ0VDQ0dEQ0RFRkdHR0lGR0tIQ0lIR0lHRkRIS0lHS0hNS0pLTEhLSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9UWVpZXFpaXF9fXWBjXlxiZGxjYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRkJER0U9QUdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREZGSEhGSEdJS0pFSkhISkhGRkxISEhKR0xMTExMSU1KTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJlXmRgZmhgZWhqZHNzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd3B3SUpMSUtHQkVERTxBRkREQjs/P0FAQEFEQUBCPkFDSEJFREZHRUlFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0tNTEpJTEtNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFiYGNkZWJkaWNkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV1c3Bzd3R1dXd2dXV0ZXFza3BxanJ2cHdKTEtLTEdDQ0FFPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0dHSEZFSUZDR0pHR0pFSUxISUpNS01MR0tJSEtLTlFLUlFMU01KTU1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5hY15gZmJhY2luaGNpaGhteHZtaGlub3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnNxcXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0RBQEQ+PURFRkM/Q0FFRERGQ0JFR0NDSUVCSEpJR0hKRkRLSkdISkhJS0dKSk5LTkxJTEhKTUtaZkpkXEtsUkdOTV9uVWxzW3FwYndjUlBidnVodWNhdmFYbnFiZHZpbnpmXGx1YGxrVV93dmlqaGhmZ2xtam1vam1vc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cnFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj88REVGRENDQ0VFREZCRUZHRERKRERKTEtJS0xHR05KSEpLR0tKSUtKTkxNTUxMSU1MTFtzYmRwXmxsVUxOZXJdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm5ccHZncE5LcXl2a2Fha2VlbHhta3Zsbm9zcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FBPz1CRUZCRUNFREVFRENISEdERUtIR0tNTUpMTEZKTkhKS0pJS0pKSUtNTU5NTU1LTk1NW3Jwb25wcGxrTVBRbFhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcF1gc2xxalV1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dGRUVCQUI9Pz9FR0JHRElFRURCRklISERHS0pHTUxOSkxNR0xOSU1LSEpNSUpKSkpOT05OTUxOTUxcaGR1XWxxV2xOT1FtVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRklMS0ZNS0tSUkxITU1ITkpJSE5HSkpISE5PTU5MSk5NSlp0cHBvcXFtbE9RUm5Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpbXnRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0VFRUBAPkNDQUZDSElNSEZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUlKTElLSklJS0xNTUxJS0tLU2tiWWleX2pjcnJaX1lqb19lZVVrX2RbYWJRYG1oXGpcbmlpZFtvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRURDR0JISkxHRkRHS0xJRUZKT0xJT0pMW1FKRkhIS01JSEpKS0tJSEpHS0tLS0dIS0pMS0xKSUtMTlRbXVRQVU1RT05PT1VSUFBRT09RSkpOUFFkcWlUWVZbW1xVWVtdWF1cXGNmYWFmYmNmX15ma21obXR4cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0lQS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKSEhIRUZMSEhKTktIT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZFxhWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1BQ0RCRElFR0dGS0pLSEVFSkpKRkRHSFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdFRUpHQklNSUpUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teZF5aXWBjX1lfYltgXltVWVhaX15kY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN1eXp6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLSkpFRUhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRkNERUJGSkQ/SUtJTltjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19iYV1eY2FgYmJiY2NlWlJZVlddW15kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkRHRUJFR0hGR0hJRkdKR0hGSEtJS0RDS0pNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0lFRUBEQUhJQT5ISUZPXWFaW2RdX1RRUlhdXFxcX1tLV1xMUlxZSU1eUVFdX2JjY2NjYlxkY2JkY2VYUlZVVF1ZW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSUZHR0lHR0pGRkZJTEpORUNLSkxOSkxJS0pJSUdCSEhRTUtLT01LS0lISEZFP0VCSEhBQEZFQ1RdWV5YX1lfW11VWFhQXV1RS0pWXlheW11WWmFSUl9fYmJgYGJiX2NiYmRkYlhQUlJTXFRcXV1eXl9fYGRoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0pJR0RIS1FPTUxQTUxLS0lKREVBRUNIRkFBRkRBVlVFXFReU1ZfWE5UVU5aW01KS1RgYVtfWF9eYl1PWGJcYGBfYmNhXWJiV19fVFFQUVJZU15cW11eX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJU2NRRVdfSUdHSERGTUpQUEZJSUpLTkxMS01LSkpHRUlOUVFOT1BNTk1OSExCREFDQ0ZEQ0FDREBMSENMTFBPTkxGTUZGSElIR0xMTU9QSUxPUFBTUExRVFJVWlhXWVdXY1ZPU1RQUU9PUVVUXFlZW15eYWFlZmNoZGxtcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXk1ISFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS1BUU05QUE5PT09IS0ZgRUReTERmY0NMW0heXHNtT01WbVlMQ09fVGxXZ0pdV1VeRExRVUxNU1ZRUlRYVlRYVFRcVFBmWmhoZVpUa1RYV1VbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USktHYFRISk9KSU9NUlFLTUtMT1JVUk9QSkxOR0hNUVtZT1BQTk9QUEpLUX9RSXxZWXJzV1BtR3Fub2FWUHFxdE9CanNucXRwU29fW25YXVZcWFVraFVdVmNZYFlaXlVVV39pdHV1X2F2X1liXFxmW19hYWFiXmBjZ21vbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4fYB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxLT0hMUlhXUU5PT01RVE5PUVBLTE9HTVBTW1pUUVJPUFBQS0laeF1UeGRoWFJTUHZmdGxwYm5ma1JyTkx3bWpycHNycXJwb3CAXWV6dXhxcXpxfnJ9a3V9YVJofGVzc29zc3x9cH54b39yYGBgYmJbYWFobG5rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpRT01OSk5WXllVTFFTTllZTFNSUk5MUElRUlRZV1dRVFBQUVJLSGd4bGN4cW1aSkxUeXB1bXVibnZQZGRIZXZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGhuWHV1anZ1cIBhc2h9aWx4fG9fX19jYlxfZGVnamplZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFFIS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OU0pLcm91dXF1cWNoYVZuTHFwXkdoeVd2VEtoeH13YHl7c25hXW1vZFNncnVubXlwd2x2c3RxbG1cc356a215fGx1bnxscXZ1eF5fX2JfXV9lZWlnaGZlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUUtNTkxMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05RSVJtSGl3S2BkdnVVV2xObmx7cmFqZ391VEtXa2d8bG1seF9acHp7X2B6c2Nyb3hxaGR8aXJ7XVRLa192dWxqdnx7bX55a3xwXV5eYltfYmRlZ2ZmZWNbY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxnbG1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTUxTU1JPU1JYUldUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFNT1VMS0tSU1JSUk9WVVFRT1JSWFhQTlBVVFdYWFtbVVFSV1tXWFdbT1JUV1dYUV1YVlxVVE9YUldXWFlaYFxncl9bW1pdXV9jWl9jY2VnZGRkY1pkYmdmZm1ubXVmZmdjYGZeXmdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJOUlFQTFZVVFBUVVhVWlZSW11WVVRXVVlYT09MTldUUE5VU05QTkxRUEtJUVFLUU1KSk9RVFJQUVNSSUlNT1BRUlBQUFRVUlhXXFdTUlBRVVVVU1pRTlJRV1VTWVZUWFRTUVRTVVVZWVheWl9hXVxaWlxcYGNcXmJiZGdlZWViWWBhY2FiaGhqbmNhZF5fY11aY1xibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVFNWFdVVFZYV1daVlNcYFZXVllVWFRRUEtPWFNQTlVQTlFOTFNQTU5VU05RTk1OUVNQVFBSVFROTE5PUlRUUVFRVVdVWVpbWlNVUlRYV1ZZXFNPU1RXVVRZVVZYVFJRV1VWWFxaXGBdV1lfXV5dXF1gYV5bYmNjaGdmZWJYYGBiXWBoZWdlYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWU1RPS09WVFBPVFBQUU5NUlFPUVhUUVFPTU9SVE5XUVRUVU9OTlFUVVVSUlJUWFZaXVxaVlZRUldYVVtbVlBTVVVVVlhTV1dUUlFYVlZbX1tfYF9WX11eYFxcYGBfX1piY2VpaGVlYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVlxaWldbW1xZWltkcW1oZF9bWVZWWFJNTldTTU1ST1FST01QU1JVWlVUUFBMUFdVUVZSU1JYTU9QUlVYVVRUU1RZWFteXVxbVlJPVVZVW1tWUVNWVFZYVFNYWlNSUVlXV11fW2BfYFZiXGBhXWBiX1xgXWNhY2hpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5QV1NOUVFQUlRSTFFUU1lbV1VPUk5TWFZTUlRSUlpPUVNTVltWVlZTVlpYXV5cXF5WU05UVlZbW1VRVFRVV1hSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2llZ11cZWBhYGFjZF9iX1laX1tcW1hYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1cYFxgVVxcaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVWlpaU09TUVVVVVNOVVFSWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZWV15aWFFUVFdYWFNWWVxUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXl5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVldWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVU09XUVNYU1dVVlteWFtZVVpeWF9eWVxZUldSWVhZX1lZUlRVWVlZVVdZXFVUWl1dXmFiYGVkXV5dXWVhYmZkXl9kY2BcZ2VoZmRiYGVhX2FhYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFNXVVRSU1dRU1ZUWFhYXl5YXVtVXV9YX19YXFZRWVRZWlphWFtUVldaWlpYWVlaV1ZdX2BfZGNiZWVeYlxgZmJkZmRfYGRiYVtmY2hmZGZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlRcVVdXWVdWXGBhYWNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVVJWVVFTVVdbW1xfX1pfXFZfX1ldXlleVlNZV1lZXGFZXVVWWltaW1paWVpYWV9fYGBkY2RlZWNkWmJmY2dmZV5hYmBjXWJjaWVkaF9nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVZYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZVU1VUWF1dX2BgXWFdV2FeW15cW15YVlhXW1pfX1peV1hcXFxdXVtaXFdaX2FeYGRkZGZmZ2NZY2ZlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpZWFpYV1tbWltXWFpUWl1cW2BcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9dXV1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBXVVdYV1ZWV1ZdXV5hYmFfYl5ZYV1dXllcXllYVVZbW2BeXF9ZWV5dXl5gXFpaWVtfYl9iZWRlZmdoY1plZmdpZ2NfY15gZmVaaWljZmljZl9iYmNhYGBfXV1aWFtZWVhYWllXWltaWVdZVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcWFpiZWNhUlxZT1hWWVtZWVdaWmBeYWJjYGFjX1xiXV9dW15eWVlUWF1cX19eX1taXl5gYmJcXFdbXWBiYmNlZGdmZmdlXWVnaGlmY2FiXGNnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYmBjYmJdXFtaV1hpcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeXl9aWFZbXlxcYWFfXVtgYWJmYl5cU1xfYGNkZGZlZ2dmZmZgZmdoaGdkZGBbZmdeYWhoY2loZmNgYmBjYl9fX11dW1pbWVhYWFZaV1xbWlZWVUxYWFxnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3x7e3t7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHt7e3t8e3x8e3t7e3t6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKh3NxcnJycnGDiomJiYmGs9bS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyJcm9vb29vboWNjIyMjIi/6eXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5eXp5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx6enp6enl6e318fHx8e4GEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV4dnZ2ent4e3h3dnZ4eXl6en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t7e3t7e3t7e3t7enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3d3x8fXp5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d5fnx9fXl7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3t+fHx8enx5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt8fH16fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl3eHp6e3l5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh4eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGBgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qKi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHg4WCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uHjYmIiYWEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioaGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoWDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLioqLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoGCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYKDgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWGhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GBg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KDhIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYF/gYGAgIKBgoKCgYGCgoGAgoKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH5+f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOCgYKCg4ODhIKDg4OCgICAgoKCgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhYWCgYKDgoKEgoGChoWDhYODhISEhoWEhIWCf319fX6ChIODg4ODg4ODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIWFhYWEhoaFhoaFhYWFhIWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMi4iFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIOEg4ODhIWDgoOEhYWGhYaGhYaHh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eFhYeFgX9/f39/f39+gICEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoeGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4OEhISFhIOCgoODhIODgoOFhIWHh4WEgoB/f39/f4B/f3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OChISEhIWEgYCBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhYOFg4ODgoGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWEg4aFg4KCgoKCg4F+fX5+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiEg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDhISCgYGBgYGDg4SDhJGSkY6PjYuHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoKChISDgoWGiIuKhoSGhIKGhoKAhYSDg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjZCNiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFg4GAgIF/fn2Cg4ODg4KCgH19f4CAgX99fn59fH19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICBgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5/fnx8f4ODgoOCg4F9fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF+fX1/gIF/f35/gIB/gICAgX+AgoCAgoKBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDg4OEhYCBf3x9fX59fX6AgH59fn17fX6Cg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gIB/fn9+fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36AfX1/gYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7f39+f39/fn1+f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoKBg4SEg4SAgYCAgYCBgIGCgoOBgIF/gIKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+BgH+Bf4CAgIGBgoKAfoB+f35+f36BgIKBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDg4OCgoKBgoF+fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKChIOAgYOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoWEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeIh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWGhoeHhoeHiIaHh4eGh4eHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GDhYWGhoSDhYWDhISDg4SDhISEiJKOi4mIiImHh4eFhoWEhYSCgoKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fHx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYmJh4WGhYODgoGCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoOEg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjYuMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4WFhYWDg4OEgoGDg4KDgoKBgICAf4F+f35+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH59e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42OjYiHh4WFhISDgoKBgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICBgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX19fXx8fYB/gIB+gH5+gZSRi4yNjY+KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fn1+gICBgH9/fn19fX1+e3t9f39/gH1/foCMkY2LjI2NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn9+f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19fn9/fX6Afn5+hJKMi4uOjYuKhoSFhISDg4ODgoOCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gISDgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgYJ/f4KCf4CKj4yKioyLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t8fHp6fXp+gn+Bg4SCgYKBhYaFhYaGh4WChJGOjIqJioeIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJiomKiYWIkY2LiIiGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH18fX19fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uKiYyQjYyJiIaFhIOCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+MioiIhYSEg4GCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX19fn1+f319fXt8fX58fHt8fXp6eXl6eXt7fn6AgYOHhIiNjImJhoWEhIOCgoKDgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiYyJioeFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGEgX5+gIB9foB+fX5+gIB/gX5/gH9/f4B/fX5/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyJiYeHhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX1+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99gH99fX99fn59fnx7fHp8e3qAhYKDhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIOBf3+AfoCBfoCBgIB/fn5+fn5+f35+hYWAgYB/gIOBf36BgH9+gH+Af359e3p7enx7eoKDf4KCgoKDgoOCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOBf3+Af4F/gH98e3t6fHt8gYB/gX9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fn2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSBfnt7fHx8fX19fn16fn1+eX5/f3x8fH59foGAgYGBgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhIWFg4ODg4ODgoGCg4KBg4J/gYB/f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH9+fn5/f31+foCBgoJ+f359fn5+fn9/gH99gIGAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3Zxd3lyeIWFhYWDhISCgoOCgYGCgYCDgYCAf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGBgX5/fn5+fX19f35/fnx+gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH9/goB8gH+Afn+BgH9/fYB/fn9/fn19fICAgICAfn9+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYOCgoOFhYKCfn58e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzcHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgX1+gH9+f4F/gH9/gYB/gH9+fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WHhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKMenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX+Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+BgIB/gIB/gIGBf4CAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGDg4B/goGFg4OEgYGDgIKDgYGAgIGCg4KAgoKFg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgYB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKCgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl5fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDg4OBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgICBgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgYGDgYCAgIGAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIODhISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKChYSEg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnR9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4KDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9f31/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn91dn+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx8gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYR/fX18fHx8f4F+fX5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WFhIWEgX+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYuJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgISDgH9+fn59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfH9zgoN/g4N9gX1+fn1+goOBfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeHiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoaFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgoF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFhIaHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59f399foB+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYSIhYaHhoeGiIaHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaEhoaFhoWEhoaFhIOFhYKFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn59fXx/fH5+fH2BgH18fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEg4SDgoSHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYWEg4SEhYaGhoaGhoeFhYeFhoaGhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODgoKDhoGDfoKCg4CDg39/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYOFhYaGhoaHhYeGh4aHh4WEhoWDgYOCgIOFgoN+gYGBf4OBf35+f35/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFh4eIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4aFh4OEhYSGhoaHhYWEg4WFh4WHhoeFhoaGhYaGhIOFhYKBgoGAg4ODgn2BgYB+g4F+f3+BfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaFhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWGhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OFgICBgICEgIOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH5+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhoKCg4R/foCAgIF/g4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18f359fHx9f358e4iFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WDhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg39+f4B/f3+Df3yAfX1/gn2AgX5+gX59fX19f3t/fHt6eXp6eXp6fHl6ent7e316e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEgoWChYGBgH9/gIB+f4CCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaGhYWHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCf319f35+gIN+e398fICBfYGAfX2DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5+gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx/g318fnx8gYB+gn99f4J8f359fX18fHt7enp6enl7enp6enp6ent8eXt9e3x/f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIaEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhIWFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo7ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dXU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXU1dXV1dXV1dXV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19jc3d3d3d3d3d3d3d3d3tvX2NfY19fX2NfW19fX1tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLmzeHNzc3Nzc3Nzc3Nzc3CSu7i4uLi4uLi4uLi4t73S0tLS0tLS09PT0tPT09zi4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OlmTIpKysrKysrKysrKyolYamkpKOjo6Ojo6Ojo6Gr0tLS0tLS0tLS0tLS0tHf6urr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpps4LzAwMDAwMDAwMDAwK2WqpaWlpKSkpKSkpKSjrNLS0tLS0tLS0tLS0tLR3urq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaugRT0+Pj4+Pj4+Pj4+Pjlur6mpqampqampqampqLDS0tLT0tLS0tLS0tLS0d7p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0crKysrKysrKycnJycnJzNLR0dLS0tLS0tLS0tLS1NTU1dXV1dXV1tXW1tbY2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7Ozs7P0c7P09PPztDU0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbY19fX19fX2NfW19fX19bW1tbW1tbW1tbW1tfX1tXW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Ozs7RwafSz6GWy9HGk6vSzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Ozs/P0Z2Pxaqgq5/Oma2Zs9LOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/P07qvq7GflY+htJWHnZ3Oz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Pz9OfsZ6nnZ+nmbS/yZaZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz9HAnImbtaSgi5/D0pGYoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PEJAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Uo6KBm8WZxcmU2Kyjv53V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw7Ojk/QD08PT1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDRxJ+Be5efopWVobvNiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ozs4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q1auvvMDTeZuws52l0NuimbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzs7OT0+PT07Oz08QENCPz4+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJh3+FooKjm6KdnJGomJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HG09PVnJqyoKmgop6poqmc0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFDQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg0tHS16iIz7CNkaXUmpGOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw5PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dLPxdTVwL3W1NO4yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojw9Pzo7OTo8PUJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS09TS0tTV09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Ojw+Ozo4Ojs/Pz9CQkE+QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njs9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk6PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pj9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD9CPzo4Nzc2PT8/QD1AQD8/PT07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT0tLS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+PTw/QD88NTY3Njw+Pz48QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFBPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBDQENDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojs8Pjs9PTs+PDo7ODk6ODlBQUJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I7OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTs/PTo5OTo8OTtFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY7REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc2ODU4QD5AOzw5PDs8Pjo6Ozk6OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODo4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg3NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc3NjY2ODc4NDs/Oz49OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Nzc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODY3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY3NTU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzY2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NjM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3ODYzNzY3OjY2NjU5Pj86PD87Pzk7Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09PD86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc4Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzg5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTY2Njc4ODo8Oz0+Ojs6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFREtQTjw5ODg2NTUzOTU2Njc2ODc5Pjo9Pjo8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk1NDc3NTY3OT06PT47PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNDY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDQ3Mzc4NTc2Njo9Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE4PDs2OjU2NTM0NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NjQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp6goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5aWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJycnJydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWl5eXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeSlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJqbm5ubm5mYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vri2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyampubm5qbmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+s6+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMj4+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouHiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz86PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhRSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg6OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxkY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGdiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFFAPzs6ODo4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87MzMfBw8fHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMvQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtoZ3VaZnJ3c3hmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLFyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3YmJgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lodG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZHRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFlYmFiY2NqYmZjWllZXFlRTkU9Ozg6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7q9v7m9urq0v7i1t7Ovu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDByr+xwr+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVZVU1lPU0tFOD82Ojo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wbu7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0tSSUxIQzk+OD07Njo7OjY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg9PDc7Ozo3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2dhXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcvGwsPLzsK8ub66ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW7trnEuLS8trq9wby7vra/wb+8v7rAy8LHyMC/vLzAxcLHy8jBw8DAycvCwLu7sLS8vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdWl5cWVFFRENNSUFEPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBw8O7ubO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypqKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pW19fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7K0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXVtUSjw+P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3srKytLK3vrqztbK8ury2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdTkhBPz1IQ0ZNRD83NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq2tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsaawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqqvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE+SkJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKx77AuLm2srS2s7SvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxBRk1GODY2NTo1Oj04Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW+u7+/ubS0s7GxrrC5uba8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIP0hRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmura+ysrq6t7e1tby0r7Srtrq4wMTBu7a8vbiyrbOwr6yut7aytLSvqqSenJycnqion6CoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKqrnqWjm6OclZCMj4+Qk5CWlZaYn56empmml5OPkpadoqClo6akp6CipKOhoayrpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGwrq+yp6avo6+utcG6tbeyt7aytKuytK6qq6+wsrOtpZ6SmJSPmaCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsKOlp56gnJWTkI+RkZiQlpWYlp+Ym5mbo5mXlJWanaCdp6iloKOjoaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7REA9Mj83NDk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaOkrqWsrLS8t6yysa+xrbWvr7O1qqetrKOcmZSOkZaXmZmcoKOim52lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6ieo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZaal5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh6YGJSVV9ISUlLU1RJUlBMOD5CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6jqK6trKurr6qvqZ+XnqWenqWmpKCin6agoq6rrK21sramr7Srqaq0sbCwuK2noZydmpSYm5qRjpGVkYyPjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrbGxtKmxr6KZnJ2eoZibm5qYmZuUlZqWmJyloaCao6GanZmfpKKeoJ+ipp2bpaalpKSoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVcU1pZTVFKTk5VTFJMQTc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho56doJ+joKKvrqyvsay2p62xraamsK6trLCnoJ+ioJeRlJyhnJmYkpOfnaKkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7essbSjoJ2loKyhoaKgoJqYlpWfm5uYpKGgnqShoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1tWlJgSFFVSEZVVkpCTUc9Skg4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjpOemaidrp6nnpyhnZ6amZKZnpyioqCgnaKfn56fqaunrKmqtKurraulpauoqqyqpZ+emZKSlJiZlpaWjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oauiqaiyqauop6iamZ2aqqafmaegn5+nqKWknp2qoqKem5+ooKWnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imJybpJ+gm6Cco4mFhH52cW1pd21obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQURBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKagnp2dl5iWmZ6bnKSfn52knZqdnKSipKOiqq+sp6mjoKGsrq6qq6agnp6ho56enpudnJSTlZSenpiUhp2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLS7xcO8wru3s6myraqzta+zrqquo52rp7axrKKvpaCjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOioaSeppmboqSen5ubm5yHhYF7dHFra3VycGhXXFFFVEhESU9IPkVBM0VIOTU7PTY7PD88PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Qz9BQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpZ2Vm5ufmp6cn6Wmp52goKuxrqekpKOgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMHAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr3HxsK3w8nIwsDFvrm0ubq1urewtbKqurGuu7a+u7qqt62rqri6tLyurbiipaKep6Wio6mmmpufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqifnp+inZiZlJiUiIR9enJrZGlveGplWltGSkxERFNMREJENzo/OzU0OTk3OT0+PDw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PUE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlZqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkp+fkJafmZKalp2bmaOhr7OpoZqdnZ+fmpeYl5KMj5aXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3MyMnRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zT0NPTzMrCxcbGysfOv8nQy8bExsTBu8PAvr6+tb2zrb6/wsPGxMfErr64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURCQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6yen66mpbGqxcbMzs2/sMKppaitraqhnaOfnJ2aqZOZoZCOoJONlJKXmaSxsaukoJ2gm5mXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LU1dPTyMzHzc3J0szO083Ex8nKwcXLxsjIxb7Cs7PHxMvKys7Fyr++v7zBx8TMzMjJv8O/rbCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/enJ1dWdiZ3ZpZFZXUURNRkBJUUI9Qjw6MjNAPEQ8Nzk8Qj08PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo5+ko5+gpKyblqmWjZeNjI2XprCupZ2enaGloZ6blZSWlIp8d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dHX1tbS1s3U1tfU09HT1NTSz9HD0NPW19XW0svJztHLxs3SytLV1tnV19PW2M7Syc7RzM/QzNLPv8fGysPMzMvOz8XGx7a/yb/SzMvPxcnIv8PCyM7Mz9DPzMrHzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHdzdm9jYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU6NzY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopuppqKmq5qjsLGpqLXQ1Nfa0sfGy7S2wsaytqmipaahoqu1p5qxoZaVjJCmrauclZihnZuhop+cnZuVindpY2FfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTPz9XU1NHRzNHO09fW09XQz9LT0cnT0cjQ2NfY0dfS19nV1szOz8nN0cvOz7/FwsfFzs3Q0NHIy8zAysvF087LzsjEycbGyMzK09PR1c/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NDQ6PTUyNzU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr66qqqyepq64qKu32NTV2dnRztDAvMzJt8Cvp6upo6SxtrOktqqfnaGqqaGYlpiam52hnpqdnpR+cmVjYl9fYV9fYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvTzdXU0crPzNPW0tHWzdDV1dHG0dTK0dTV1s7S0NjY2NfLyM3DyM7Mycu/yL/Iyc3Nz8rQzc7Lzs7Hys/Qys7KwsnGyczKzNHSzNPR0M/Pyr3IubCtu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bua2JlbnBhV1xaSUZGRExXRTtAPDM0PD04Njg1NTs+QDw5PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PT9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snnri2tbWtpa2uvrSxwNnS19rc1s/Ny8PT0MLCsqutrqyms7G4q7G2qaOfnJaUl5uen5+dlJaXlYlsXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHTy8zQ0dPKztHV0tXVysDJwcXMwsjJwszCxcjJys7KzMzPzdPLxcfPzMfHysTGwMXJy83Q0cbPzs3NzM/Fx8C3ub3Dw73DubKzvrG8xMS1qpiloZmWkZWVkouUjZqRlJSPj5SCiYV4cHFrbmhgYHFoWFhoVk1HTElQUEI7RD47Njc6ODk6NTc9PUA7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc2Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfDucvV1tna29jNzM/J1tbFxLiytqqkrq24u8HFyaGXjo2YlpCTkpGWlpaQjHxlYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytHIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL7GybzCxsjOxMLHwMbNx8PLycvPx8PDz8jGwcbHw77Ax8vLy87CysvIx8vPxMXHu8fDyMjCz8C9vL+wwcrHur2qsbKnpZ2inJiQm5CkmZeZkZWYiY+Cd250ZGxgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJuls7Gsyc3KyMS+vbrNzcbQ1dXZ2tvY0MrQ0NLUysW6vr6wqLeqxd3Wx7GRjo6WkIaDhISCfoWFf3RgW15eXmBeYGNkY19dXV5fYGBfW1pcYGtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsjGwsPAw8fKycjKx8HFzMbIy83JxMLLycLCy9DEy8i/ucG6xce9v8bPysO/w7rJx8i6x8bEysC9wcvGxcO9xby8v8PEy8TEvL/JwsXH0cXAyL/KysbIxtDDw8bDr8TLx8TKt7+8urSprKWlmJ+YrKOhpZqjoJuUe3ZzdGZqW2FubVpbWFFETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPHzc/OzdXQ1tnY2dDN1M7P0MvEuMbBtrW8r9jDdX2SjJOXh3uAhYaAdnh1cnBfWltdYGFiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsba6srKzsrHCvLy7ubjAwcHFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e6usXCvrzBzcLGvr21wL3DurzGu8K5s7zFw8LCtr+1tb6/usvDvLW6yLq/vcvDwcXCxsjGyMbQxsLMyLLHysPOzcHFwr+9srews6eoqLmxpa2wq62slHl2d2plaGBob2NWXllKRUpGSEtBRkJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc7P0snRxtbV1tjOzNDIzcjKxb7KwbK1urrTcFaOjoqLhXmAhoaAfoR8dHVkXFxdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLS3tLOys7q1vbG3sLWvsrvCvMHEvL+7tbK6vsC4x7i0u7XAwry3vcbAw7u0rrK2ur6zxLe7tau4vL3AvbC6ta+2urLFvLauu7+0trTFvL7DxcDDxcbIy8bAxsa7yMu/z8rHw8bBw7fDvr22ub7Gv6y1urW3to54dHhnZ2Via25eVl5gRktISEpGQkNBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDNzsnLyczKy8bRz9PRz8jLxsrGxMC9z72zub29uVh/koaJiXt5foaGd3iCfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBtaGZqbW5yfKTHv7m4tbCsrKeeoqqnnquss62pq6mzrbawsqmupqyyvLq2w7m6urGqtbm7tMK6sL+wvby7tbvHucK2raqosLHAtbi8r7CnsbO0u7yrrbWlrrauurGwqrmvrbuuu7i7v7+9ucK/x8PFwbzGwcjLuMXHxb/Hw8O6xMbCu8XJzMuzucK8urKIcnZ2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/PD46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs/SzMTGwcXQyM/CxMfBxsbFxczEy8zCxMHIwbq8u8q3tLy9t613k4mPkHx5foqFenuEgXduXl1dXV1fYF9fZGNiY2NiYF9eW1taWl1aWlpaXWRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6msqrCjpp+qrbW2sb25r7ivqK64tLS8uLO8rre5tLG7wbHBrqWpoqyxsrOnvKqrqKusrbS0pqiuoaSuqbKlp6iupai3rLCyt7m6u7G8vb6+xL+1wcHHyLe/wMW3xMK/u7/Ew77EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWlJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7rEsLawm5mVnJiqqbCxs7W9r8bR0M3EyLu7zMPMwLzKucDGwLzMusPHxbq9xL66t73Guba5u6+ykoSJjYF7foB+eHR/fHN3Zl9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSepJuXkaGjqqOin6Wlp6Ssn52bpKassq+2t6ewrKeqtKu0ubC2tKy2uLGvurmxt6Sfo5+nsaerqLmqpKanqKeyraCnpp6bpKasnp+npJ+gsa2trLK0srSwtby2u8HBsrq+w8GyubrCs8C9v7W4u72+vMLHxMLDvr/DoIN3cGthZV9rb2BVWV9ITmhPVEhFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzc4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbu+taCelZ6hprq2q7Ozu7PF0MnMw8e5uMnCzsG6y7m9yLu3yLu3xMazvsW8t7C5wLuxs7ewo4WHh4J9eXZ0b21rampxaV9gXVxcXV9gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXV5kY2JlZ2dnam1viJ2poJeVmqGWm6KYlY2eoaKmm5+fo6Whp56aopufqrCtsbWiqaqpq6yktbitt6+ssrSusrSusKqfnZ6jorKkpam4raGmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7KyubK9tLaxsbW0v7W9wL3Dwbq6vZeDenJrX2VeZGRYVFheSVddS1BHSUpGQTw/P0A7PzwwNDUzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmbpKbAsq+2rLS3xtDJycHHvLzFxdDAvMq7u8G7tsW4tcHBs8LEvK2qtbq3qLGzqYuGiIB5c25wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWltZWFdXV1dYWFhbXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaQnKGhqJ2bnKWmoaSbn6CamK2ura6yoKWiraunobWwsbGsp66yp7mzprWhop6ao6KtoqGptaqio6adpaajlpiel5ianZ+Zl52cnJusoaumo6Smrauzs6q0sLKqsrm0r6mvsrKyt7Otqayusbewura5vb+2srGUhXl1ZV5lXltZVlNaVUtbUUxJRUhLSUI9P0FBQEA6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vb+znaWjmKWxwrW2va20uMPNycjBxrjCwcjQusPGwLa8vbbDura/wbW7v7uqprG7saiyr5t9hYWAeXBxdHFoZmRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnaicmpqqpq+wq5ujo7eqoJ+uqLappqassKO3sKO2oKKbmJiqpqGbrLivoqGknKGfoJOVoZSWlpuYl5aXnJSfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxr7Curqenp7KusbSvvLS5tq6jlIF5dWReYVZZV1NSVEtNXkxQS0dHTEtFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp6np6Oqu8C9wLmutLjCzcjHxMW+x7rKzbXExcWxv8C5wMG6wMC5ur23qKixu6apoqWJgX54cmpscnRwaWhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtcWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKWmnpyfpJ+qr6afoqO2qKChoqizoaWnpK+lsKyrtJ6gnZWUqaGhlKyxsJ6iop2emJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpaukpbCnpaOrq62lqK6vrquoqqqzpaarr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFFHUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuyt6yepKett7u8wcW6sbm1xcrLwcTHx8m4yMa1xcLJr7q8wrzDwMG9vLe6tqansraeooqZh4B3b2RiZ2loZmhqZ2ptYF1cW1paWVpcXVxbXF5fXFpZW1lZWltXVVhXVFRXVVNUUlVgYF9gYV9gYWNkaYGUk4mRjpSSk5yUlZajmaCWnKCloa2lo6Oio6GbqqqlmZ6lsamgoJ2kqp2noZ6srKmorayioaGUl6ObnJCrqbCbn6KenpeYk4qeko2Sk5WPmJiSm6GinKSgoZWgoaSmm6OrpaKkqqOrrqSusammpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlVRRlFPSFpcT1JJVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Nzs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njo4NTk4OTg6OzlAOXu1tK20u7KwrLKtnaenr7m5s8DIurXAr8bJzrvCy83Jt8u/tMDHzLC2vci7wsfEvb+3urWlq7CunZqHjoN8dWlqam1oamxua2ttZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eX19fYmRtjo+EkYaPkY+Zk5SSnJqinJugp6iqp6qlqKSjmKSupJSZpa+pn5uYmqCerpmbqrOfpaaeoqOglJOblpWSqKmtmpygoaCalJCMmY6LkIySjJaUkJ2hoKOcm6KVm6CioJeiqKOiqKugq6+krbelo6OirK2pqKuvs7iyvbWzq6+Yg3JyaFtYWVNVUkVZTFBcWU1UT1BMUFJJTklCPD8/QT89NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaivrZupqKy3tqy8yru2v6zMx8a5ws/QybXGvrq+xsu1sb3FvcPGxL3Bs7mvpquvq56XhoF3eG9uaW5ubnFnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/i5CKko2XkZeZoqCbn6qppq2qpq+ip5mfrKCVlqSop52Xj46Zna6Wl6eqmZ+dk6WgnZGQkpKSlaeqpJmZmp2dlo2Mi5SGiI2DkIuSlJCgnqCjl5WflZqgop2Tm6Wlp6iooLGwprC8p6CjrLSrraewtLC5tcCxrbGrkH1wcmJWVFVOUklHVlFTUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6vMPL0cyzubq+wMTHtrS3vbO7vMS+wrG0rrGusaycoohraG5vcm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/dYmOh5CJmImUlJebmZ2om5+qpKSqnKeYoKWbko+eopqXloSDkZqjj5OinJWVloehmpqTi46Kj5mjp5yVlZebkJKHlI6MgYuNgJCKkpKRoZqfoZWTmJiVoqWYjJmkpqimoaC0sqeyt6Gdoresqq2ksrKmtby1rKuxo4h4cm1dTlBRTE9DTk5OUEtGTk5LSk5NUUlNSkFHS0hIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKmloKmlpLOqorLDtbWys8fHuLvEys3Hta+8v7i8xLOzrrairbXEuruvqqy0r6+gl6h9XmBnc3F2cWpuaWZoaGpfWFlYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWWFhZWFtdYW9zdnGFiIKHgJGDjoqUkZOdoI6am6Kgo5iklqGblY2HmJqMc42CfY2WloWQmZCTjY56mI6cjIKKf4mYn6KekJOYloSOgpN+fnSJjnqQhpKQkJ2amZqQlY+djqKjjomaoKGko5uitK+sr6yfmKW5pqWwobCunLC7qqmvqpmBdnJiVkxRT1BNQ1NOTFFNQ1BQSElOU01ISkpESkxFSks9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd3t6KjtKilpaijpqWmpqazp6W0wLiwtLDKxrm6ws/Hv7WvvcOvsceyraeslaSuv7ixsJ+nra2rlpWicldWX2hnaWhpbmNqaGdiXFhYWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeKk5Cel5yVlJaUjpaJf5OJXztXb3uLk4l/i5GMj4WGcoqEloF5gnqFk52Ug5WOkI+Chn2SeHFvhY1+iYCQjY+XmZiTio+InIiel4eHlp6aoaCXp6+oramon5ettKKmrZisq5intKKpraOSfXFtX1pOU1FWTERUSlBNTEZPT0pGTFFNS1BKSU1QRklIPTc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5eLego66hpqaqoKepp6KpsKintMG5sbWwycO5tL/PwLqxsbjEq67Jrqejnoaborqtp6iWpqWkoZePlmlRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXuCdFBCQH+VkZF9iZSMhIqNmoyWlYqSiIaVhnmIf2BKUW54ipGEfISMiYR/f25+f5R3dXZ4hI2ZcFGNiIqGe354lHZnd4WIfoqIlYqNkJKWi4OJh5SEmoyBhJKblp6clKSjp6mlo56bsKuhpKSQpqqWoaqcoqaoiHRrZV1bSFFRU0xJVU1TSUxMUElIRktPTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj03Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXa2nKOnnZ+hrqGnqKWnqK+sqra8tri2s8K8t6i6ybm3qaq3uK22wKqim5ODj5myn6KajaCWmZSQioxkTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+GgXuFjJKBkpmLj3uGj391f3hzbnVwdI2NgXl9iaqFeXpodnuOcHJteICKjJJ4eoB7gHZzcpJ3Z3WEhISEepWJiIqMi4B/hIqMf5SDe4CPmJSblZGfnaien6CeoKmln52YjKekk6Cglp2epH9xZ2BcXEpWT1FHS1hST0pMTVJKSkpNUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLi8yMDAvLSsoKCkuMTI2MjE5ODc5ODc3Njo8PDd2rpijoZicnrOpr6mlrKywsaq9tLK8uLa6tbKgt7uzq52fraustbOlnpaSmIaUpJadjIOXiY+JhYWCZEtJSklHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gXZ4f4mPfISYkoFyh498dntva36tfHOQin97hpKAfX90ZnZ8hWxvaHN8iYyHgGx5cX1wbXWPcWhxgH2OcEOKhIKDhX53d3qLhX2LenV+jpKPmIqSmpujl5mdm52eop2WjYqkm4+dl46WmI51bWtlYVlXWFRRSlJVVE9QTlFWS05LTk9KUU9JT09LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn56WoKavrK6rp6mwr7GsvLisu765s62om7GorZyQl56nrKekm52TiJZ+jpWSlYB8inqFgH5+f2JKR0hGQkBDRElMTE1RUlBRU1VUVFVWV1dXWFdZWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hvfHmIj3l8i4VvbYyReHN4amp/gnKWkYuBfZZ/SZKYbmh3foFsaWNseYWQkoZrc2x8bnJ7hmhtcH5zjYiDhXp9fnt2b3R0hYJ5gXdwfI6MipODlpeYmpCTlpeZl56XjIOJn5GKkoyGkJZ9bGhtbm1XVVdUUVFZT1NVVFRYVU1OSE1KTU5LQ0lOR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6kra+iraqota+urLS/q7zCv6ajmpWlmJ6OhYyWoqSbmpSXj3aRfoWLkI98eH50fXh0d3lkT0VHREA8Pj5BRkdHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpyQZlvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4h1gYiGdGyZkXRze2prnY5MeYSSiYSOZzF2hnNsfn2DdGZldH6EhIWAZmlsdWtwf3xncHB7bpKNjntzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlY+XjoB5iJeIhomGf5CHdWlpbmdjV1FZV1hZW01QVVZaWU5JSUVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LSs1Nzc1NDc4aU84OzVukoiZkZqWpKitnrKeprquq7KwwrK7w8ebl4+UmYuOhnqFkZqWj5KOkol0ioR3i4+Mf3Z3dXh2b3hyaFVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bXGDgYWBeYSGhnlyoJR0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiIBoZmJpbnJtcIN1aW9YdW+OmpF2bH96fG1xbXB/enN1bWJ2hH+GgIWQkYqLiZGLkYyLj4N1eIuPgH6CgH2PeHBubmpeWltdW1lYYF9TTltaWVhMSEpGSkc/Q0FCRz9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW0qK2xrsGzusHGl5CMlJCBiX1ugpGTioSLiJCIdoSFb5iKjH95e3txe3R8a29fSlBHPkA3NDU4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8fYWDf4x+dqKZeX6GgISZhZucYYaqn52LgpCNenaJfomIjnOKl4+De1xkcXR6e3eKbGdpYXhvhY+Cem6Bd3OEenBzeXdrbmldd4d9h3yIh4+Ai5OXg42GjYZ9cYR/hHx1d3t9iHRtcXJkZV5aWl1TW2ZeWFFVWVxWR0tLRUxHP0ZAREM/QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMd4l/lIyRnZ2fppGgqp+wqa/AsbvGupaPkZSIeoZ2a4CMkoN+i4WQjXmEgnWiho1+foKAc4OBfWt6bFNYTEFFMzExMjY2Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiXuJeXtxfI+Me3yJhn6Xh3ahmYiHj5KUpY2sqUiGra+vioCAk4qCi4KEkaiHgJiYipxzbHyBhod9jmhnZ3h+boWGgYVxhIZHa4B3cXl2aG1rX3d9g4h/iIWMepWenIqLiZF/e3WLdnx3bW93fn1xcXBqWltbWmNiV2dlXFVQUVhaUURMTEdPSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NzU2NzY4O0RGTE1NTEM3KyImJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFh5GPlpiSl6CdrKGmuK+zvbSXjZKLmIt9dHB/ipN/fo2DlJV9hn+HpYeJgIOIhnmJi4B1hXlfY1ZMQzYwLi8yMjEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiZGBmpaCoKGYlZuapa2Tmbuxp7vHw6eKjKGljpOJgZB7coOen5GcfnaFhYuPh5BpaG+DgHSMhoSLcYaCd4d/e3aFfW52dWeBlI+GiYiIiYiiq6OWiY6YgHuCiXp6b2dreH13fHFpY1xZWVxoXGFmX1pPTE5YU1FJUEtETkdDSkRDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnZwZ3iDe4CMgIGQj4uamqScoaymq6+wl5KRhKGUhHh3gI2UfX+ShpOWfoqBkpuOhIGCjIuCio6EgIqAbXBqXkNBNC0tLy8vLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6ChkqOppaOsk6i2oqfBwq7Ir3i6lJp8jKGemISThYKPoZ6TmZKEioWPmJCWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGXh5OJj4+Xpbapm42VooOHk4R+f2tqbH1+fX9xX1tiXllmalxsa19YS0hQU1FOTUxGSVFERE5GQkNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwg3B1h3F2kYZ+l5aalJ+fm6egqpaTmJ5oZqSafoWTknqBkomSkn2LhZmSkYOBgYuOiYaRh4SIhXh4f2hOUj4vLy4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMm3yNHPvpugcGmrqZ+Ek5KFnKCampmnkZGIlaGZmnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZWenI6Tlpqko6e2sJ2RmaiIl5COgYhsc3N7fHluZl5bX15hZ2NfZ2dcUkVLS1FPSUpNRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTQ2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYzQUBpYl5QcXVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mImI15go2Ljo18ioaPkI6Bg4CJjImFk4WChomBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49RkhAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKiptayxt7Kyrbuxs76cs8Ssu8nLuMO/t6WjsLKsraqji5aYhaWmoKKYgqaZjaKqp6SHhZOjoKCqoKSpjpyxi5Wjp7e7nKGjsJOjnaOekaSiq7Cts7WilaaqiZqKk4qVent+g3tlXmZaY2BdYmJeZmdfW09ESUhUT0ZITEZLR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo1NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGUhYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMj4uKe4iDh5GOg4WBjIaFiJKGgoSJhoeHh3FuYUBFNjQ8My8xMTAtLCstMS8tND9EQU5WUVJTVVVXVU1cUUdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHxKuzxbattMCzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsLGbmZKan4mnr6qklXefpJehq7GzmJapraiutbuyuqyvtaKxrLK1vLi0rrWgqKijqJupsK2zuri4qJy4qY2lj5KToId5gYByV19iVWRgYGFeX2ZgW1VKREVMVlFJSkpFSkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxcWlFjZFd6dXGBlX2EhpN2hn6AjXu/u6O8grSUk46bj4SIj5OKiXqHgYyTjYeFgY6AgYqPhoCGiIWKh5F6eW5dV0BFTjw2OjQ2QUI3NjQvLzZDSENRXE9RVVhVXFdPX1VJS0pBQD9HS0ZGRDs+QDdENz9CSkpFR1dUUF6PpK2ksrTDtrjBzMq2u8S9s7TBt7jCtb+wuHSxtKa6xaSwxrmxs7K0qKS2tqqxoKKWm6KSpbGtpa2sp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6t7+4uri6ra2xprGqrr6wvbzDw6yZu6iVro+YmauJfoB5aFVhX1ZoY2hkVltjWVZUSkdHTFJHRElKQUlEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVZad2pwf4+EgY6Fb3tyeIhiuaGZo4mVlJaTlJSOkJeSh4d7h4GOloqBhIGKenyLiIZ8ioKBi4SVfXh6dWZPXGRHRUw6UWRgW15TRj87SFBEWmNRUVlZWmdaU2BhTVNPRUE/SUpIRUZBQEM9RTZCP0hHS01TWlRelK+4tbu5ycC7vcrNvLzBvLi2vLu3vrW6s8ZhdbKlsZqeq76qpairqqSisrWgq6eelZaemJ+upaenpZ+kk6KnsLOosrK8tsG908nJ08bCxczCysTAvr6/vLy4tLC5t7fDusa+xMmwnrqroqyPpam3iYB8blxeXlxVX11nZlNZYVZSVklFRk5LQT5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASk1QUkxRXWhtbHGPjYaQc2xycnSI1cC1mqCNlZmZkY6XkpaWjoaIfYeDjZaKfoJ/g3l7i4SHe4t5gYqCl390fXpsZXB2WV1cUGVlYmBlZF1bWFhcTWRtVVJtbl9vX1hnZVVZVEtEQktLSEZISEhIQkk5REBIS1RUVl1aXJO5wLm+uMbBu7nKy7u2ura4ubS4tbWutreZZHWpnq1wXqKtnJihopuknqullJ+fkJSOlpiXqJ6mn5+amYOjnaykqrGtt7C8uNTQztbPyczSzM/OysfAv8LKvcG9wsDFxMbKwMnPtKS8sbWwnKy5vZp9dmlbXFlXW19YYWJRXGFUUkxDQkZHRTxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LiYqKigtLjAsQE0rLzU0bYlJMEiJdD8+QkRAQ0RHS09EUlxaaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQi4l8gYRze4qDhXuKdIGKh5V/dHt5bG11fGlzZWlsaGZqaWhgZmlpbVptdJetpL2Ih2dbb2hdWllUSEtPUEpLUEtUUUhMQUpGS1BfX2JnamKXt8ewurS7vraxxce2sLmxsbuts7Goq7itjbaonpynmk6anoyPoJaRp5illYqTk4iRiY+Rkp2boZiblZaHnpmmmqywqK+ns7PT1NTW0cvP09TO08/MxsPK0L/KycvJ0sjNzsPQ0riwxL3Euqa3u8Sif2thWlpbVl5WWWNZUF1YT1JDQklFQ0k7QUQ+Qkg/QEI4O0Q+QEk9NTY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CRmYNocm95eYOhqp6ml4ybm5iLjpWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfnF5dWxweH9ye254c2xpgHBtY2lucHlpd31+y7/D36duY3huZFthYEtQUlVOWV5QXl1OUU5UUVVUXG5ud4Nylq64rLWosLarrb3Bsqu1pqW5p6yvoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSLg5SVl5eUm5CcmJmZnp6rrKSnoqysztLV0c3M0tPT0NTRzsjD1NHIztLT09fN0tHF0tbGwc/IyMOpv7jQnHZrYlpfW1ReUVxZT1BUUE5JPkFHQkNGPUFCP0ZFPkA/Oj09PDxKQjQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bHdwfX6AoJ6eoYyNmZOUi4yTj5aFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBvd3Nsc318d3xzgnhxa4Bycmlwcnp5cnu+y5p/jbKEdnKFd2lhaV1EWlpbV2ZkWGVrVFhdXWBjXmN4e3+LgZmqpKSioKGppqqxuaumtKOirqKkrqKnsZ+JppuVk5GKko+IgpSJa5WijZmEgYZ+kYODk5esi5WOlZqOhZKQnZensKKgoaWkqMjNz8fCy9DT0dTSztPNxtbTzdTY1tbY1dfVytTazcrY1tHLrcTDy4hvbF9cXFZSV1JaT0pHSUpKQDs6O0VCRD1DRD5IQz9DQjs8OTw6R0M0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKKgJ2VnpSFi5aJj4qJjoiPgHiElJmLjYiIi4l+g3hzfH2Eh3eAe4eRl4GEb3hxbXV/dnh9dIZ8eWyHdnRufXaFdXl7nbWMPEGLxqV+jX1qZVdJQ2VjZmNoamRveVtfZmhrbmlugYSJkYyen6CekZeZoKOkprKkpbKgoqWfoqmhorGch5+SkpORi4+Lh4SPhH6cnIyNgoSFepR/gqqWo4ySi5iTi32XipqRqrOYm5ynnKa9w8W5tsXN0dDS0MvSy8nUztHV2tfX2NTZ2M3Y287J2trS1r/MzbR1c2thWldQU1BYVUVHSklGRT06NzpAQkM6SEVARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MiooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXSGjX2XkZ6LfoeSgomGhYqCiH14hZeXiY+Dh4aHeoR5cXt7hYZ1eoaOjp16jXB9cHB6gHJ7gXKEh4Bujnp1d319gnV/fIeJsHRZqsK3jZKBcG5jPV5ocnBxcG53d4JlaW9ydnhye4yHj5OSm5agloiMk5yfm5+roKGsnKKamqCmn5+smYyajZGTjoV9iIeDhYuOoJmTiIOHfmyZeYSZh4iTjI6VjIZ7m4iTjq2qlJWXn5imrrW8qK29x8vIycvLz8nE0srU19jX2NfU29fT2dvWz9va0tbJ1cyTdXdlZFhXTlFSW0dDRklIPkI+PTg6PkA8Pkg9QEJBQUVBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmx2gIhxkZCbgHmAjn6CgYKFf4R8fYSYjoeMf4aHgXeDeW57e4eCdHqSno6hdo92g3R1gX50gIRvgZCCb5KFdXyBhXp2h3yJuMalw8q4gpacj3hwZk5lY4J6gneFoZCLeXp3e4SAfIR1bZSWlZaQmJGDiY+XmpeXpp2YoJefk5KXo56aq5aRkYuNk4OMhYmJgYaPkZ6cmYiFi4GFl3qIiZ+XkImOiouCfKGJkIu8oJiTl5qcqKalrZ6ntb+/v7jGyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvGg3Z2ZGZhXVJVVFRNS0RNQzs9PDw5Ojw/OT1BNz4/QD0/Pj05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs5OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVxpdHp5bImNknd2eot8foB/gH6Fe36CkYqFhnuFiHx1fnVtfH2HfnR/kp2Rn4OSfId+eI9+eYuKb4ObgXSZhn2CioV8fpF7kKmPkMOgvYybpJx+ioV9iXOMi39zppqcmJSFe4+RiYRpR3GhpJ6MjJGShYiLkJKVj52bk5SRl42MlZ+dlKGVk46OkIx/kI+Oi4SJkpaZn5+IjJSRnZCCjH+mmYiFjoOGhIClhoqLuJedkZSWoaagnZ2do662ubSrwMbK0MjHzc/T0tLY0tXXwNfY2dvY2trZ2dfbtnZ1dGdmYlRdWVJOTkhDTEM9PT45OTs6OTk8PTZAPj89PTk6OjszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdPPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PERSU1JYX1ZYZm1tbWmBjopxc3mKe3uAfH98iHt9fIuHg351hIZ6c3pzbYF+hX53hpuhm56UkoCMiH+Yh4Cckm6IqYV7oIx8kY6DiYScfpuRio2jop+RpK+gi5GLhYuBk4ZXcq2Ln6ubkIOZnJCPjluDopGCjZ+TlIyGiIySkoyUlZWQjI+KiJabnY+VlpKMk5SGgIyJko6Kip2XmKOihpOdlaCLiomOnZCDiI+Ag4eFpYWLkLKYnJKUl6GgnpmSm52nsrispb3Cx83Ixs/M0MzO18/R1K7W1dja2Nra19bZ2p1seXFjY1paVVFVVkNASUM/Pz46NDg6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieGxifpGDb254i3h6f3uBfYd8fHeGhYBzcIWCe3V3dnSFg4V9f5Kmop+mopeKnZCUl4uKqJdyirKNhKiShJmUhZqMo5agmJOJm56ik6mwoJGVkY6OiJaMb423hJrEyLKcoqacnJiWkbGQZKTNx5WOhoeJkJKNjZOVioWKioaWmZuPkJSTh5WYhICPi5mIjpCrl5eko4iZnpaaiI+Hl5iKhY+NgX+Hj6WIjZOomZeTlpihmJ+Zk5yaorK0paO8wb7HxsXJyMnCytPMzdSo0tHW1tbY2tTT2s5/b3tkYFtbW01IU1lCQUdEO0I+ODM3Ozw6OT42NDo6PDo3Mj86OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGOfXxtfoh4en57goKDf3d2gYN8bW+Lf3t9eHh8hIeKfouis6ejq7Oil6efpaSWla6ig5G4lZKzmoyhoYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmpehwI6jybirnKOmrZiSm52ynYWGqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIuUk4eUmIaEkZCcdZGZspWWpKGHnJmSkIuQipebiYuWjoZ9jJieiZCQnJqak5iXn5OgnZSem6CxrqKjt760xcfEvcPDwMbNysnTps7M09LR1tjT0Ni6b3ZyWV5TXVROR0lNREFDRDU+Ojc3Oj88PDc9NDI2Njk3NzQ+NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdNWlxZSmZgO0iEi3p6boWGenyEeIGGgX5weHx+fW9zjXp+gnx4houJhoSSprusqLG9sKWts7Ooo6KwrIqatZ2juKWVraWXqa24p6Sjn5qpmKqkrrCqmpmdlJaRl6CYmru7rsqhara4q7CUmZ+jrJOXvqNeqrKDioqNlIeQfI6OfYOGjo+UlYiIk5aMkJWNi42WmJOdmbSWlaudipyUkY6RkoyYm4qSnpCLiZafoY2UjZiZnZKbmJ6UoaCUnJ2lr6ihpLO4rMLIxLa6vbzFx8fC0aDGyc3NxdfW0cvTn213ZVlXUFtPTkVDPjxCQUI4QDg4NT9HPTw1PDM1MzQ1NDU0QjQ5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRIYmBicEpAi4p+gHOGh32CiHWDioJ/bn18fX9wd4d3joKHfI2PjIaMmanCwK+9xruztMC9tK2rs7aMqLKurb6rm7ulp625uKumpqKipKOpr7Kxqp2cpZmbmJefoqalkqS6r6nAvK2usrmlpKh+iIacrb2wgouMi5CDjoORj3qBiJCNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpePkaCRiZSbpKyUlo+TnJ2ToJ2bmJ+hlJqep6akoqOwsqbBxsOvsLq3xcTDv82mx8THxL3W0M3EyoVwb15ZV1xYTEpBS0FGRz9BQEM7OjQ+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVONzlHRD9DRlxlRmBpZ1pdXJOMjIl7h4yHg4x1h5GKgW9+e4J/cX6Be5V6kpSUmJCTlqezxsm/wczCw7nHvbuvq7m7mLO3urLBrqXApKuvvL2qrqujo56nq661sKqcoKucoZyWn6+1p4ujurq2wbysqZ2zpaSolIWOqcTDpIKLj4eIhIaVlI15g42Rj5GhjIyUko6Jl5+Yk5mVl6agr5yMq5yNlo+RkZWVjpGVko+glIaXn6CynpSZk5+gmKSemp+boJSYnqWkpqakr62lwMTDrqi3tsnDvrbPssS/xLyz0crIwrRxdWlZVVlnUUxIQkxLTEpBQT5ERDw1QUU7OzM9OEIzMzIyNjJBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWk1lXGZUYmuZjZaKjIiTkIaJeYeUkIFygHuNf3iHgoKQeo2hlqiZmpm6vcfIycHSycvCzL3Cs628vqi6wL67xLeswamss7y+qrCqpKWkrK6zrba1oZ+vn6WimKOzvaqbqL3BpLa4r6yUsqysrJeHmqmmpZGCjJOlloqBdYqSeYWOkpCeoJOPk4yPjZSjmZaclZSjnqqekaWajI+Pj5WWiHyPlZOSo5qVn6KctaWQnpako6GlnZ2mmJ2Vl5qko6mnorKsqLvAw6+ls7fMv7mvxLO7vsG4rMLDwsCXanZeVVRZWEpKTElGRERIQ0NBREw6NERJOjs0PDhFLjEyMjQyQjI2U0hPPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+aUhfWGJaY2NWno+cjpeOnpKJin+KoJOEeIV/ln9+kIiKkYCWoZmup6SYwr3Hw8fF087Ozcu8wrewury0vcu8w8K2t7yts7+6va6vqKCpqLatrqmyt5qeraOnoZ2rt7iqpbC/xLK9ubSoq7a0rq6XlqWsqJ+RjZKyxaeWjnySlXyHkpmPqpmYk5OPkpWTpJ2TnZmToaOinJifmIuMj46diFqQl5eSl6SZZZiin7OllaGVq6upppueppaYlpiUoKSopZ+2q6m5u8O0pbS1y8C4qrarsru4rqi4ur24gGhrV1RSU01FSVJNSz9BSEVFSUhIOTVFTTs+OD1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs+QEJGQnBFaklSZWFMRqWUnJeil6mWjJGDiKaTiIKHgpyEg5WQkJSPmqKer76voca8xMTGxs7PztLKv7u2sbq7u77PtsS9uLm3s7G1s7izq6ecq6y5qqmnr7CYo6+lp6OltcCwrKy0v8O6wLq0p7q2ubSvlqWtr66ki5OUoY10wpp9l5mEjpeZjLGVm5qVkpKZmaWjlaCbl5qpnZugoJmKjY+VnGBKlpyalJqlllSWr5+vnJ+klK6tqqSaoKWTk5iYjZygp6KatKiqs7u7u6qxssfAuaasq62ysqOhsrK0pG1qYllXTU9KRE9PUFI7R0tJR0lDQz46S1U/QTo9RU0wNzU0NDpCNDRNV087SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiqlpmgoqivmZGXh4uolo6Ik4Wgh4Sdl4+doZqjpLXJtanFucLDyMrJyM3Nxr+7s665ucHBzLXHusG5tbqwr6+ztaekm6q0tKqppq2smqSupaSorLu/qKy2t7/Bv765s7LEsrm+raOvtay5poibl6abdr+fhJmdjpOamoyul6GcnJeUm6ChqJ6on5maqpqhp56YkI2RnYNudpKimpWdop2RrrKjqpSoqpepraOinqSnkZGZnIeUnaKelrGmqau5tr2ysq6+ubago6eopaacm62pqYtgYl5dTkpLRkdNSlZMPU1FTktMQkNEPFFWPUFBQkRPMTg9NzY/Qjc1VVhPP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH5lXkhFq5Wbop+7r5mUoIyTq5uRkpOJq42GoZ6Mo62Uo6O2xr60wLnCwsfJxcLNyMK+ubKvubTAwsq1xrLCvLW6qqitrbCjo5iqtLumqaarqp2pr6ejqqu9u6itvbW4vse8t7a4wrK+wbWqtbervqWPo5iSoqC8n4maoJmXn56Pt5+pnKWim5yhmqiks6CbnaacqKqemJWPlJuLlomMpKGUnaKdoLSvpaSSr6uZqqqcnKOiqJCUlJ+Cj56em5WppKGhs7S6tK2otbKznpyjpZqXlZiqoZ51XVpdW0hHRUZMUUlNRUdHQlNMSkJFR0FWU0NIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoFkVDQ5LTE5ZlxGQ0OdcGJHRaeXo5+ew62cl6WYmqqclpqaj6qWlaemla2smKKrtsPDvL62wcLAx8S/zca7vbmysLmzv8LHtb+wvLe5tqakq6utoKGZqqrEoqSprKaerK+roqmpvrinrb+yuLfHtrW5uMCzwMK4tbO0r76jl6OXlJyUrp+QoqOlo6OgkL2lqZ2pq52doZulnr2hmaOfoqmsoZ2XjZWek56Hj4SNk5+koJ61rKaclbCmma+lnJmonJ6MmJSeg46gmZuSpaSal6uxtbGqpaqurJuYoKCSj5CVqJ6UZV9XX1tNSEdKTkxIRURJQT5RSUE8R0lJXFJPSz1IT1U0QkY5PkhHNUNhW0tCTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW1SRjxLeGVhVkuimqOcnsWsoZ6sn56uoJKjn5akoKaprJi2saKqs7bFxL2/tcDCu8jCvsrHtbi1tLGztLfBxba+sbi1ubSfp6yqrJ2enqWkwaWfqq2gpKmtr6GmqL21prG9ube2xLK0uLq/tMTBubmvs7W1o52llZKUoa6gmaKeqaiso5rCrKmerK6bm56ZpqC9oZ2kmKusrKaimo2an5KeiY5Xf5afpaGguKqnk5i0op6xn56ZrpWdjZiTnIGOn5eVjaGjlZClrbKqqaKipaWVlZ2Yi4+RkqSeiV9iWGJfS0dKSk5GRUFHSz89SkI5OUpLTl5RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtNnp6hmZ/EqKWhtKKds6eTq6Wgo5+sqaydu7CorLaxx8XBwrLDw73GxLzEybyvsLatsLSvvsS0ubGwurSsmaixqaqanaWhp8Ktm6yxm6qjrrCppam8tqe3u76vt8Sts7PDwLTHtLu4rLS2raqippaVlaSsop+gm6eqsK+vu7GmoKmpmpmYk6KjuKCho5KvsKylp5+SoZ6Vno+QjZWem6Kep7SnpoyXspuirZmcmqyPnZKVkpl/kaCVjo2foJOLpquvpKainKCekZGak4WLkY2bnX9fY1lmZElITEpTQkNASUg7O0Y/OTlPTlZeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwyNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ6jn5ygw6mkqrOipLWqlrOsp6GksqyuqbuyrbG1tMbAxMK0wMS+ycS1v8jBtKu1qK+4rL/Ds7eurba4pZiqsqurmJ+ml627tJuosJqsoK20sqirubKourS5s7jAqreyxL21x6i/r662tamnrKGYl5KmpaKimJilrriusrW2oJ+ppJqVlpSkoLeipaWWr7Kyp6qmop6ampuVl6ifoJihnq+yoqaMl62YpKuWmJ2ij5qMkpaYhZWek4uQm52TiqipqqGnoZielYuOmY+BhZSIk553YmdbamlMT05OVD5DQU5DOjpJPzc3Uk9dX1JWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDEtLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJb2hVQ1dGjHlmQzujo52hpr+np6+xoqm2q566sayjq7S2sbC5t7C3uLjEvcPHvb3EwsbAuMDGwLmptqSsu63Awbe3qq2yuqKUrbGtspakp5GquaqfprCcq6CvtLOrqba2rbyttLO5t6y4scO7v7+mxKuxt6+oq6unnpiZq6GioZGYobGvs6ywuZqbqaCal5OYp6C2qaajorGxtKyzqKyfnKCgm56lnKKXnaOzr5ufkJOkmZ+omZOhnZOWiJOWkpWWnJKIkJqYlI6pqKafo5yXm5KFjpmLfYuVhI2ZaWdrYGxtV1BRW1VBQkVUQDs7SUE3OlhQZF5QV1dFWV9eTUxSTl5LSj5ZY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEtLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9p5+doqm9oqqwrKSyuaqmtrSsoK21va+zuLu6vre2wMK/ycS5xMLAv7fDvcC3rrWnq7exu72+tKmusbaelquup66XpqiOp7ufpayznquisbCzrKm2tLW+rrGytaywtLPBu8a3rL2wsbisrKqjsqaepaqgpJeRmp+zqrOrq7OanaecmpWOoaaktK6ooa2urrGotK2yqqScn6iknpWimZuotamXmZKSnZmdn52QqpyVloSUloqdmJuTio2WlpqWpqWjn52WlZeSf4+UhXuNkoKLlWRrcWZvcV5GWWdWREJNWERaOUhCNj5dUWhcT1ldR1teXU9NUlhkSkpCXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVVxnSzaMemZMQKSaoaWtt6Wsqqavrreqr7W7p6axt8W3sba9wcO1tbrEvszGucPAub65w7jAuLK0q6m6trq5vrSprbC1l5inrKmsm6urjqu+nqyusqOroLGus66ttbK5uKqurrGota+1u7zKs6q3tbG0r66mobSgm6itoKaWlpuasqOtoKavl6GkmpqTjqOlqLOqoaazraq1pa+yta+kmZ2sp5qYn5qZq7ejl5OQjpecoJeWk6qempF/kpeMnZuYlZCKlJKemaWioqCYlpKTlXqLj4V7jIqCipFqbXdtdXthRmFrWUlHWlo9e0pGRDZBYlRpW01cYUtcXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVF9UXy81KENfUVwuK0IvSkdQW0czY1lUS0SZl6GxqbKqrKakr662qbe1uqSstLfJu7S7ur+/tLO3w8DMyLzDvLa9vr+3vryxvK2nurm3tcK2qq2xt5SWpq6rqKOwqZSvu6StsbOnqKOytbGxsLWxuLSpr6yyp7evt7TExreptrassK2pp6O2oKCnsaGklZyalbGep5ygqo6po56blpimpqW4qKOytayosaeusbWspZmgrKibnJ6clKm4nJSOjoqXm6KXj5ekoJyTgpCUj5ybl5aViJaQmJqnnKSgkZaRkJV2hI+He4SBg4uKbG92dHt+XExmbVxKTmNcPmJ7R0k4R2dXZlxMXmJNWFlXVVdUaV1PT0hgXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOR2YyNydHYkxWJS1CLj1FTFE8M3JrSUNDkZmlr6Wur6uopbGztKu3srihq7W5ybmtwbvCuLOxtcLCzsXAwb20vb++ur68ssOnqbmwtbW/vK6ssrGboKexraamr6WdsrWtq7GyrKmotbustLK1rbStqqyorKm4rbKwyMC5pbqwqayspaiusaalo6+kqZyenZuwmqOjo6ORrZ+koKCiq6anuaWstralq6yprbC2rqKeo6mqm6Cbm5KktJmOio2HkKGglIyUnJ+SkIONkpKcmpeVlIeXkpWZp5ufnoySkY2Qdn2NhXx7fIWIiHBycX18fVxTZG9eTlhmXEZElltHO05tWGJbTGBiTlZXVldUWGddUVJMY1lbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvKzEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISis6SD4zQkhTLD6QaztHSI+cqquiqrGkqaWztbK1trKyoauuvcy6rcC6x7G0rbTBw9HFxr7Asr7Awru+t7vEpqy2q7K3u8Cvq7Gsn6OnramopLCjqrKqsKywr7Cuq7O9p7awsqmzqqulpaOtuq2qssO6tq27qamnrKmnsaWqpKOuqqiin5yjrZWlnpiemaydoqepoq2mpK2ruLOyoqqioKyvsayeoKenqZmjmZmPoKaXhoSOioueoI6KjJWajo2EhY+Un5yUl5WGlpSTl6SbnJyKkpCNiX9+h4V8dn6Fg4VycXCIdWtfWmBuYlFycFxLO4R8Rj9YdVhgWk5kW05WVlVXUVxhXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE7XEowLkpnREY4O0IwNUVLWDFAlVk9TEWVmK2ooquznKqqsLetuLavq6arq73JvLC9tsKvsauzw8POz8O+v7TAwcO5v7PHw6qutq2yuL6+sq2tqqSnqrCop6ixpbSuq7GvrrKxtKy0vKS3s6ysr6irn6OesLerqq26t6W3tqSqp6uqqq2hqaemsbKkp6WhoayXqqGVm6CmnqWiq6Sto5+nsbiurqSmo5uqq66pnaKlpKSYn5uWj5ickoGCkImEnJ+Lio6LmI2OiYKLl6KbkJCbjJOSkZOjmZuZio6Li32GgYGDenN/gn98cnWLpId4a19gbmZXZIZjTj9nk0xFYnlXYlhSZVRNVlVWVE9cXWFVS05oVlZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlZaLjBKZ0FBPDxCKzpKT140RIY9R0ZEl5OwpqOrsZirqq22rLayrKasqqm8wMC3uLK7taWyr8PJy9G/wLu5v77BuMG5wMSssbSxs7q/vbKwrqyqq6i2qaaur6q5sKiysq+zrbequLimtLarrKWpqpyjnrOzqaiktLSgt66gqqiqqKunoKusqbm1qqqpqaKqoK2bkqqhnaCloqajqp+dp7Svqaero6OYpaenqpyipKOgmZigkY6PmI1+h42HhJ2dhoOJiY6NjouChZSimo2NmpGSkY+Tn5eYloyKg390hoF/gHh0gn54dn2Ah52Pb3JnZnB3XGByh2pPXplWSG55VWRWUWNPTVZUVVBPWFtiVUhPaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EPJaOsaKmq6+arKWtsLS1sKymsKqour67wLCtua6htq/Ix8jRwL69u7vBvbrCv76/rbGxsbW8u8KxsbOqs6mktKilrbOzubCjrriysLO7rLqwqq62rKqfqqyfo6C2ramhn7CzorWqnqinqaOqoaKsrai9r6yuraKoqJ+smZCwoZiioaion6icmaqxqqOgrqKhlKOjo6eYmqilmJeYno+Kh5SIfY2GhISjloSBgYqGjoyQg4OTn5aIkZyQk5GNkZyUl4+KhoZ3dIF/fHV4eX95cnJ4Zn+GpHZpX2RpgHRmiIt8U1hvXkp4c1NkU1FeTU1SWmZOTVZZZFhHUmhSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQDSRkLOhpaetpKekrae1s7KrpbGnqri+wLuvp7mqpq+xycfI0cO8v764vb68yLrAt6+vs7G5u7jAsrK6rLisorSnqKyytrmzqKi9tq63vrC+p62staytnKmvo6ClrauonJ6rs6W0qJqrp6mjqJ2jqaipvqu0sK6dqqShr5ybs6OWpJylpqClnJupq6afnKuinJOcoqWemJeoqZKYmpSQioKPhX6Pg4CInY+Ffn2Lh5GNj4N/k5qThZOhjJSRi5GbkpWHiX5/cnt6fnxoeHx5c25ve2aEeISJZGFnYHKEemxmeF1eVD9Xe21UYlBRWEtMTnJ1XUhaW2dZRVVlUEQ+Sk9EQ0E5SEdLUz9qYkpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mYkFKN0dTYFUqPTlEVz0qkJWymqCgqqaloauluLOzpqmxpqy4wb21r6K4raiosMLJyczBtr3AtLe/usi1wrSysrSxvLi5vbWtubW+raCzp6ursLa4tayfvr2qs8G0vKGvs7WqrJ+tsKOcpqmqpJ6bpbCnsKCfq6mnoamcpKihrbyorrGuoaujpK+en62ml5+boaSdn5yapKujnJulpZaXlaCjl5uXpayMnpGRkYuCioCAjoB7mZSMiHt9i4aPjYuJhJKYkIaUo4mTkoeRmpCTgYh9eWt+dnl4Y3x6cG5vcXZnf3NphGhlZ15sc41sYGlvYG89WnlsVV5OUFFKSU1UWldNXV5sV0RXX09eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+KR00OSYnLjM0LjArLzQmLDokNDFBaFkxNFM9ZV9ETDZLVmRPKjsxTlc9I5SZrZqhmKilpKCopLiwr6SvsKmruMG5sq2fua+rqLS6yMvIv7bCvq+0vbfEtsKxrbmxs8C0ur23qLm4vaqjtKipqrGuubGrnLy9pbDBtreir7a1p6ansLOfnqSmqKKlmZ+sqKmeoKuupqCmmKOooLG5n6Oxr6Gsoa2knKemqZqam5+llp2dm56qp5ecoaqTmZSZn5OZlqGpkZqJjpCGfId+go19fKCMjYh4gouEiYuLhYeTmo6JlZ6IkZWCi5aNkXyFfHNwfXF0dGB6eGhtb29taH1xYnttaWViXGSEfl5Zc2pxSkl/aVhaTVBMSkhQUlFJT11fblNEWFpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1CKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo+L1dVNSiXnqeanZetoaGhpaG4q7KltLSpqLnEtbKtn7etrq2wtMbIwLa+wbmwtLy2vru+r6q9sLS/sLzDuai7urenp7WpqKyxrbSxqJy/uKauvbeyn7G3sKmlp6+xm6GkoKWloJebsKehnqOor6GfoZOkpKK3sKGmsaufrKOvmJyqpKmfl5qepZSbnZuep6uanJ6ml5aYlp6Ok5eiqKKQiYuPhnqEfoSKeo+WiY2GeIGHg4eLjYWNk5iNj5aZio+XfoaXjI95gXpwcndvb3RfeXdkamtqZ2eCbGVya2tkZ1dhcn9eWWt1aVlFfV5bWE9PS0hIUlVHMjpfXm1QRFdVWWVNSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0SEJmW0hUQ1RdaEUuOzFeUSwylqSjmJadqp6moaOhuKqwobu4pay9xLKvrqK1r62tr7TExL2zvrq3sLO5uLq4uq2tv7O0uK6/wbervbq0paKzq6iqs6yusqSdw7emqri3rJ+yvKqnpaivq5mjp5ylppSYobOmmZ6lqamcoZ+UpZ+kuaikp62mnqWhqZOfqaGhoZmbnqGTm52XoaOsnJybo5aTlZabjpOTo6ekkIiKjoZ5hHyFhn2cjYmKhniAg4eIh5GFlJOSjJGVlI2OlHuDl4+Kd398bHVybWxzYnl0Z2ZpZmNthGZnaGRmZ2hdZGJpZVplemJgUHNUW1tTS0lHSU9TQCAqal5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc3YUwnMp+kpZOPpqecn56epLatqKq6t6esw8C2r6yita6nr6+3wcC9scG3sK6ytrW5uLWsqryzr7KxvcC3rry8saSftqymprWqq6+hoMWsqqiytayttbqeqKqrsaWYnaqep6WSmaWto5idpKqhm6Gcl6Cdp7alr6qtoaGenaKVoKafoqCZnJuck5qelaafrqOYmJ+WlY6VmIyPmJqnoJCHioqIeIV3goKCnIeKgoh7foWIhoSQhJaVj4+QkZCRjZJ7g5WOhXN/fWd5cGxrbGd1c2thZ2Nic39hY2VmZWhoYWVuWV1YXGxjYUxnV1tgVklHSEtNUlg+OWBsaUhCVVNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssL0EqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGJGJTWdpKGSja6hmpmgl6W0sqOyvrehsca8ubCwo7asq6+pub69u63Asq+vrraus7myp6u5sa+us7a7tq+5vqylnrWroKKypauwn6bFobOmsLOwt661nqyvrK6imZ2nqqWelZunpqCZpaOpnJqfm5Wdna2wprmnrqKhmpqemZ+jmqWdl5+Ym5WaoZOql62pnJWenZSNlZqOlZSYp6eNjIqJjnuBdIKCi5iFhnyIiISFioyIkoWUnJKRkJCRl4+Qf4GNjoJvgn9neW5obGpncXJrW2hjYXJ/YGRnam5rZWllY2xcbGx1cGFTYmhjZVpJR0xNT1lRUFVhZYFUQFZSWlRGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjQ8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUhiQic0lKOcj4+xnZyUoZups7CfuMC2oLTCu725saa2sKmupbi6uLisu7Ctq6u3qrW5raSytbGvqbG2trGztrunqaC2qp6gqqOqrp2sxJmvprCxt7atrJ6xra+qopudpKypm5WcpqSdmqqjpZaaoJySnKOrqqm6nqakoJeamp6hj2ujlpmdcYOXnKWBdpKsqZ+Wl6KSipiZgJeKn454hZKNg21pfneEcWyGioZ9hIqGb11kYGeEmIZri5CUknV4i4R/g5B/ZoiAaHZpZlhcaXRuTlBqY2Zxg2ZdZGZua2hdW12JkIWHaE5LQzhFVGdeSkhQUFVWS0hSYXB0ZUZbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOW0tbZmI+RzFOYTwrL46kmoiWspudlKGcqq6so73Fr6m3wri+vK2nt7Gmq6S4tLOzsLmuqqestKWxtaKnuLa1qKettrOutK60oqmftKueo6Wdp6ibsL+VqKextLmtrqSoraurpaGfnKGop5uYoaWmnJynqJ2TnqCZkJ+oqqO0r6Oio5yWmJmXo4ihj5KaiKGIlZ+if6WAqK2flJSelImEcniMjoOIoHWHjWmXiWZ+c3igb4eHhH6MfH+hoJ+Zf3yInnSIjnabimyHgoNtaGRke21yYlSGbWNtaZhxWGlwboZXXWhaa2paiHBseXKHaIeEWV5GTj5GXk1FUlZWUVBSV1RnXkxaTFJSUEVGRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk6LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTltMW2dfPUsxVF43LyiNp5iEnaydmpqdn6uqqKq+w66yury3wb+qpLixqqyms7Wur7O2q6mlsa2ltrObrLW2tKanqLOxrbKorp6robOqoKWlm6KlnrG4laanp7e+pqynqaqsp6Whn5mhqKOZmaejpJicpaqWk6OclJOkpqahtqSjn6OYlZSYlJyIrpCYlYqqjJmjnYaxgaWun5WboZd6gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsXlobFixrm9labySvG5oem1xj9h9UmtitrJ9f3CUdZqhqpBWTlhhT1ZORlVcWFBQU4tbV1tQQFxEUE5DRkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV1nXD5MMVpbNDEhj6eUgaiqn5idnqWtsqqwwr2ytcC1uL/Cq6a0rq6pqLC1qq+2tKioprWlqLmunLKytqqlpKeyr66xpquep6WzpaKioJecoqCyr5afpKG1uqOqqKGtraSinZqao6mgmJypoJ+XnqiokZynm5SeoqejobCjnp+jlpeTmJKZha9raouOqn9ohZaHrWZxn56Vm6mXca6hpH53unxroI92sV9qtFulgGWckGBmgXpmf2l4aqllvnJnpox2sWp8sXh1kZRjbW2nblyEoEVpZ4eWRXWcYH1me6OmgVhfi6tofY94emqoOEqvW1hUbWNaS09YX1xWVjtOh1BXVi9JU1NKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy8uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWDMxG5KilYOtp6afo6WrsrittL2+sLfFsri7w6epsKywqaqxr6SwurClpa+zo6q5qZ2ysrCjpaGqrbCsr6aooKOisZyknpmWmZ2esKmYnKKgtbOhq5uhra2fnZmXoaOpnZmepaCcmaGnpJCdo5qXoaCsn6amoJqfoZaVkZeRmoa1m7V5hqmatpl3h7Obt3+Ul5isl39rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iXCOhoB/iJCXeIOCipeMg6CPhbB2d59xa2ttfItPpVhIY2OZfmNopV95cXVSkoZdUKluY3B7hYBhnS9Som5bVGtnYExLXGRYXFpCPrB3V1hBI01pRkJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YVQ1MByXoJSJs6amoa6pqLOsqru2wrC8w625t8Krra2vr6ivs6qir7yroqi2raSstaSlsrOoo6Kdp6qzqbCopp+goLCXoJuWlpeboLCknJukqLWvoaiPqaeqm52WmKGmqZqfnaOgnKCjpaOWm56Ymp6jq5ymmpyaoqCWk5KUk52E1ZOZuXGxwn/Gh33WlJy7fZyXqJKOnY2ke42GooGlgnmreY+dVq97iX6farlauXeGhH2mgpR8mXqqeY6dkHuxbY6EdJC7hm+VUK+nxYpRoHpjYKpic3KGa5aHXlK1tMiFfoh8Y6QzQp11XVBqaGRQQFhmWWRhSkdMakpaU09ZZlpDQz9FPzA8PDU5PDc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdIOmFQNzIlnKOTmbGoqaWzqqW1qKS8t8GwusCyt7W9tLaosrGksrOnoK+2qZuouq6ksLGhsrSxoaSenqipsam0qaacnp+smJmZmJiWmKOun5yXqK2xqaOej6yip5Wdl5yhpqGYoqGioZuioqicn6CelJmbp6Gcp5Wbm5+gmJCSlZCdiLJuaLVyrIhwj6dytHV0tnucmaaOkJ2No36PnqN+sHWCkNLSdVyufIV/pG6bqqZqhoV9rX2YmZB7sXOTnY95s2WWdIWebp9mlFLJi1rCXJ95Yl+tX3ZzhWGWiF1Zyp1vwIB0TUu1U1XGZFVRamNlWEFPal9saVBVRkg5PVdSW1ZZSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxBTlRfZVA1Rz1hTTYyLqOekaWvraWpu62mtaWntru8sru/uLe1vLy0prW1o7Oyo6CssKWYp7uupbKxnbS4qqClnaGqpbKorKqlmp2bqp+WlpmZk5Skq6KYk6arsaahlZKrn6WSlKGcpaeglZump6Kbo5+umqCenpCWnKOfnaWUnZWZop6VmZaTm4WsfHiod6OPi4eqcK6LhKiEmpqji5Oai6J9kpeHroR/gbNccrJTr32CgqN+cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52doZnl4hqXa93lZ+Pd2w1ecius19DVG9eZ2BFUGxfcG1WVU0uZWNoUllQO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdCYEk6NzegnZSgt7GZs8GtqLKnqrK6uLS5vrm4s7e+tqa5taG2rqCgqayflai2rKixsquttKSbqaCgqKK1p6aqpJqelqWilJSdmpKWpKiclJCnrbCloJSZqJ+ij5GimqmmoZWapqmenaSfrZ2gnaCNlJ+cn6GZmJyWl6GglJiRp56HqX5/pnmhj5CEqnCtjYOnhpeho4qYl4ijgZCGlKp6f4udeXCxWqiDgoigeHTYf3aHdKeBjpuNkqR8lZCfhHuyXpxkoH2ClW6TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZE9KQ6FcWk10XWJmTVphX3J0X0pVNUqakVhIRT1HRUFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxPZWRBJlVmWz8xVF9iTDdGSF9DMT03op2amr6tmLPBrqusqKa0sLixtb+5urOyubyqu7ahsqWfpqennpOrsqmwqratqq+hmKKgpqSkuqOjrKGXnJKjoJaVn5uVmaGhkY6MqbCwpp2Wmqemn42SpJioq6iVmKmon5+gpK2joJ6hjpWhmaCgkpyXnJWdoZWXj6ycj65ucrR0qYx3i6Z0tHp1tIKUp6STnY2JpIeOdbhui3uLomtrtlqhhmWXl2igoqdtlHK0c5OZf7NqhZKIrWp1tGGdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdlVG9uLlunT2JSa2VibFliXGBwfGNTWVE+P2xvMkJCQD5NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFBOKWanJ66o5yxwK6uq6unt6m4r7XBtb2ysbu4rMK3qqyhnaekop2Sq6uotqOzqK6qoZedqKClq7ido66clpmQpqOXjp6hnJmen5GTlau2sKaYk5usqZaMk6aapa2jkZersqSgnqissJihopCZoZegm5abl6GTnKmdlJCrmYfUlJq7dbHEgMSHftaXnLh5ipKZjpiKjKeHeaK2dX13dsKCmrJhg7p5wHx1uGK1gYyHqX2WgqypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gYptmohwbY2kdL1dd31bYXm8alpWW2l5XmlgZGZibXlvWFtZQ0FAcT9DRys0SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9UXmBLNTxMWy02QDmnmp+ivKOXsMOvraqqrLGoua+3xbG7s6+8sK7Bsq2mo5+kopyckaulqrKltaetpJ+WmquZp624naOumZWhkKagk46do5+Zn5qQlpOvubGrlZajp6aUkJalnaStn5GgqKufnJ+ppLKdoqSOpqGVoZmblpWkmZCwoJKVqp+FkJm2gJKSjbiWeIOTm7Z3bmxvdG95j4SOiXKewLu8mnuBsqhwgHSRuYN8hoaKh417i4aNl32ku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycXe2jF5/eX2IZ4N5bHlii6xwdIV+WFunaURkWVRmX2NdY1FnZnFtdUJNT0xEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlbLCs6uqqKyrqruvscavtbSwuKe1ua6rpKKnn6CdmZStpa6qp7aoqJ+clqGknqylvqehqpeVnJGim5KQoqiik56XkpiUsrW2rJido6Sii5OSppymq52WqaWmnJuhqaenoqigkayel6Kel5aYnZ6PsKmUnKeij2t/apypeYl0f5uPdntmiHu9vsC6b5KDcZSFX3JqWl6biWFjh4+WbGB/lGNtnHZilWuAmpWUZV5gY3GaiWhyjHyGlGZqfnB0eH59Ylt4dIFoUFxuhHx8i2pXbHqBcklKb4VwTnJNRFZcZmBMWldmY19PWm12anJST0RETTxISTxMPjIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVDRlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPlxPJz8yPqifqKHBpJm0ubajrKaup6i1sqzIrLC0rbakvrKzqKGkqp6jnJqarKeupKW1qqSbmJWinKetqb6oqaWVlJuWoJqTmaapqJGfkI+YnLCyvqyapp2noomTkqmbqKScnKyfo5qco6etop+poZmum5SmoJeUnp+dmLGlmaKomZ2Sn52kppuopJudmpybkZeCaG59cneRl5SQhIm0qo2FmJWPioyYl4iUlYmDk5OQiY2SlJmTmZean6Gam5Sfm42CeqSFbGl7kH2AdYmLgnKCeHl2doqAfIlqc4F0g3Vkd312a295bF9iW29nTVhZZmpfV1lwem9tZlNPRlM5UFpOUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsLG3oKqms6elsLWqyautsqa1psCptKGfpaacpZaWoaunraOkt6ygmZeWoJitqqbBn6yklpKcl5+YlJWjn56jqJOQmKiossOvmaqcqp6PlpapnqucnqGtmKGbnaKlr6ahpKeerJiWpZ2ZmaGenp2woZ2ip5aZlJqUoaOXpKCZoY6XlYuLjpCYro98lZuCkYGJqaiFgJiWi4SOn4h7hJGGhZqRh4aKlY+bl46QmJ6jlpmSkJyNf41lobOuhImEd3uQin53eXpvZ3mRgYGJa3WBeYhyaHN/eXWDhoFqdGJ4ZV9oZGNkZmpYa3txamtcU0xQRF9VRkA+Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAs6C5r76tqq2xsqCqprKtoqyzsMWwq62ks6+8pLScoaijoZ6al6imqaakprO1npWVnpqasKauvqGsopGRnpqalJKWopyXqZ2Enamro7THs5+po6qWlpiap56pnKClq5Sfn52fqq6opKKroKuanp+hmKSenJ+dsKSZn6mUmZmek6abmaqfnJdmhJN9ZX+Pm5BjeYxsaGp6kKOramWamH5nhYtlZWloeo2ijmtojJiRo3hraouZo5+Yc2xueoSMhnlYZV2FgV5si4qCd1xnc3d3koCIgm93gnh/c215hHN2iIeNgnpohFhdanNkXXOIaWt8cW1jXVFOVklkWEBJMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1dX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSi42Wk82KUVZL0RPMVlCOz8uPaSeur25r6uzsKulqK2usKaurrC9saqopa6wsKCtl6GknqKamqesnK2kpqips66elqSQo7CmtrmlrqOPj5qimpOSm6CZmaaWe6Sroqi0w7eloaavnp2VnqOeo52kqqiSn6GeoKqvqqmiqp6mm6Wep6CrlqGcpbGkl52slqKfm5SmmaCsmZ9+vYSJc7RzhZ+GrWh3ucS4cZKho3qmmJl0q4J9y8DAunGLo4eDnn2WmIiewL2Clp2djZzBwXyBepGMmsLAfWqlsm+NgW/Ken+beJKEj4B2eYGAeXF7gIZwd4WLknhsdZFiZV53Y19lgGJedGhtZGJYS1VJUVlIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fYGFfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0NQLyNGWzNQWS9VQUI7LziVornDtK+vv6mplKOwqbCvraaytq+qpqemsaugq5ibo6Ccm6qnop2so6WopaW0pJ6jk6aurbi0p6+ikpGZnaaTkaChmJugnoimq6Srrb+/saCor6mWkZ+dopmjpKqjk6Chnp2srqiqpaOhpJ+jpJytqZGkm6muqpyeq52uo5eYppeipJidf86UenulgnqWl5tfrY9djqiAoaF8p5WbdauDga9eZIyqe6iHhaB0l5OIs2OCq4agjY2zaoSvdHyWh7hhgq1Zo81ukHZ723t/mXF+iJN2f2V7iHV2bH6HbX2Fj5B9a4CMX3Bqb2ZgX3hkW3FoamRmYFJUU1deSk9DNUFIRUQ4PjU7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xfX19eXV1fYGBfX11bV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrMHAv7S0sLeYnpGjqqmttaymsq2srKSsprCqoaecmqaYnKKvn6GfqKejpqGfsKybnpamrq2xq6isoJSSm5+lk5CfpZedqKOeraOqsKi/xbKnqbGtlpKenKKXoaqqn5Whnp2cra6mqaibpaWioKqSrLOWpaKqqp6kp6eisqKTm6ecoZyWlZGXoXKGjJh2hqiHcbF8nXGsfaCggaWPnnirgn6tf51yrX+sh4afdpiSe3yXfqqIooyRi5x9q3qIko+ff3qtVpzEe5Bwk8F9gZVtdXCMbWZ3ZYZvYXhucm6IiY+Og2yPjWNtc3VvYGZtZF9vaWpuZmNXU1xgWlJSQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/Txseys5+do4+joqKtr7evqbGnqKqorqurp6KknZqjlZ+mq6CipqCoqKOfnrCtmJuWqKevrainqZ6XlZqkopKUoa2anaejr6yirLWpucyxrKatq5aUnJ2imZ+urJ2WoZmenqmxp6iom6qno6Gqmq+xoqirrqaap6urq7Okk5ikp5yWk4Wka6R1inqpdXuycYKlipiMcIigm4ekX2FSq4WAroOcda6CqIaGn3qZl4Z7ZoCjiqSYhoGjfal/gZSGrl57qFWdopKBe6OfgHzEsMWMc6+0s7lyYqmvwnVoi4uWjYBrl5Bta3h4d25rZmRkcXFme2ljXFZfaVhYVExMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICcnISstIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLSwsKmto6enqqurqKSmoJuln52mp6aknayaoqyho5+vo56bk6qktbCvoambnJaVp6SRm6Kon6CmnLCloqixrLbHsbSoq6mVkZ2dopmgpbOdmqGUnJ6nqqqirZqqpqChqaKyrKGqs7KinKupsbC4pZSXpamanZN9qm2fhIh2q3l8sG6CpIuJn5aVnpaB0ri0uMmBgrJfYZSpg6WIh6B6mJaaearJdJqjlKipkJKajH6aiZrGxndloYKlc4GfjoJ9r19vtWOxdUujhm2nR4OTZI6Pm5F7b5SPfG15dHx6bVtlanJxZoBpXmFYY21cXllJTExKRURCQT1BPEE/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTAxrmtqbKuraainbO5rKuhpZuopqqsqaagpqWYq6Ofr6ydpqGtmp+ppZ2ntaCjmJSoq7azrJymnKCWkKatkpqcp6OgqqeuoaOnqbCzwbGyqaynlImYnaWboqSvppeilZicpaWpma6cq6WknaujtqyhsbmwnpywqLS0taaWmamlnKGQg55Od5qCgJ96hKN8gqSEhqafnJ+UhLh8fHq5gn/MxsO2d5uikYuffpmXl4p2n5eKpJikqH6vhZuDnoSsfZmUYaVso3CPhZCBfZaEcqxgpHNxgJphvH1SVXWNkaGVenyQjodyeXKEfm9bbG53cmqBblpjX2huYmRdTExRU0FIR0ZIOjpLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Kss7Wmn6GVpa+urqinnqWlmqSnobOuoqmns6CaqaSUo7Wjo5WXoam1uaSco52jk5Cispmem6aloaKvrZykqKK1scOwramsqZGGkZynnaOknKWXnpiYmaWjp5itoauipJeupbusore2rp6etrS6s7WomqCxo6agiJDStcO3eoeOhZGTj4CmeJSid4yhkoWlg4tyq4eGtG5yaZmknZWJn32XmYeHkHOugqWbo42mipOciJSQmm1wslylc5N6nGyZf3uZfm6pYaJycn6fYnOyuGh3jpKkl3yJio+IdXt4jYFsaHdpeHNuf3RcZGRtbWZoYEpaV1g8SEY/UzNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krr+/vLu1npeopK62oqKZlaOqp62pqpmlop+moKC1pqKpp7GklKujj6StpJ2QmpqqtLSknaWcqZKUl6+goJ6mo5ynnLWZoKqjtarCr6iqqKGMhI+coqGmo5WampyYmpimo6WXqaeroKObrKa8rJW9sK2fo7G1u622qZ6rtKaqmnyokX18sHiLgKSliJxtsm+hh618oo+DqJeagayJhq2FoJSooKOXhZ+BmZaBe5J+q4GdmZaLq3edoI+Ik5J/ea9do4F8pqdknoB8l3Vqrl2lbHKFmV1gW4ygbZSPpJeBkoqTiHd5gZZ+aWx+Yn10bX95X2dlcG9nZ2hCWV9aPUpTMlM4QUFDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JODE1Mi4qLEFUVlZWVVRVVVVVVFRVVFNTVldXWFZVVlFIRklKIygovJKbhKnGw7fBtJ+araCuuaajjpqjpKCvrqmfo56drZieuaCjq6GwqpquoZGqqaWWipqQrbGsp6Com62YmY+toqGepaGZpJytl5+opbaovq6kqaOfjICOm5ugpp6SlJmblJmZpaOimKerqqGinqinvKSXw62ro6KttLytsKmjtrGrrZp3r36Ri5yFh3y6rYmYZLCMZZaufaGQhKeXnIKti4WwhqeapKKikYWgXGxrgrNgf618e4KBsmxmbpmXi4ixWn20W6SDa8iiZp+BfLtZdrVasn1Tr4F6rFiAoW2XjaaYiJSNkpN4d4ybfWNzfGKDd3SAfGFqZm9tZmVlT1VjXEFUXT1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdXWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vru0wbOjnK2mpbepoIuZoJ+dsrGonqKfnbWYoLOoqquesK2erJyVrqiijombjq+sqaejqJquk5qPqZqhnaWfmaOipZieoqixqLuupKienY99i5uWoaCZkJGanJGZl6ien5enraWjpKKkqbqeoManpqmhrLa3rrCpob+wsLCYgqqSo6+Om4CGpJeYkICAuMO6hI+dk4WomZ2DrIuDr4qonJumq5F+1b3CqmKkv719f6OCg9e6t7WElJKCnr2+hGqjgW+rhG6df3qysceDa6uxvax5eKK+u3SAlYykmY2YjZOZd3+PmXlifHlkjGZ4gXtga2VqamJQYltTaVxAVGBCTCk8OjQvHx8kHiUyIBwkKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0scC5sr2zop2up6azpp2Ml6W/qbavp6G/pqaxm56xnLmon66vpaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp2nm5qgqKKYnaCrrKm4rKejmpeTe4iZkqabk4+QmJmOl5OomJ6WqKieqKagoqq6nqnFo6GwpKy0tqyyrKO/q7KynHV2qqW3hWWKoHBnrJCKj25ud6WQm6CCdrGbl3CRjnKXqaSbmK+kcmxtbWaLeG9tg5lxgXppcGlniZaVl3FoaYWGZ3GGZF2KY2lvWl1nfnimYGJykJNwZmSAjZKNoJWVl42SmnqFjZN0ZIZ3Z4xqeH55ZGxjZmxiSmVXSmtZOlBkRFAnSjkrIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6ubK0qqmirp+ks6qZkr2xw8e8tKmev6uso6Cnq6C6o6SurK2mjpatqpCMhZWWrZ+mqqKfpKOgkYulkqaZqZmWo6mglpylpaauuaqsmZqTknuEl46ml46RkJeUjZeUppOdlqeima+lnaKruZ+wwailtKetsbOssK6qvKexu5iMoqmmtpyJl6OYhqmbkJSdkqq0mpykraK0mKSjn6KjnqKlopasp4ySk42Hk52dlZCZk5iQjZWEf6Sal5WOi5OSipCHhH5njIF0g3d0h4xxp219lpOUlIGBj4+OjZuRnZOUk52AhZKLcGiPdm+Jd3Z8eWlsZWRvY1VhWEBpWkdiX01YK0U9KyYhNjQwLx8cICUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbevrqKwpa2goLaxkY6qxLzDubapoaSdm6WdsKikt6edqbWnqJGYrKOLiImPnKeWraShmqien5OVpJeomqmZlKago4+ap5igtLmnqpiakI18gZWMoZSLlZGVkI+Sl6SOnZionpq0o5ymq7eor8KvpLinsLCyr6ustr2jssCak6ekprWikp2nn42pn42Sn6KtsZuipLOrs5qmo56mrKCfnp2XrZ6TmqKclJCXq5mNmJmXkJaekYegnpSUhpOMj42VjIF/Zo2IdYh3eomEdJxqiJKWlZKJfYyWkZCWkJ6QmZKdgYaWhXhxlHJ5iX9xe35qb2RfcGlgXF9ZbWJQYGJPWDlGRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlqSoo7CzrK6jqaetoKi1qpCPm6Oyua2qq6GimXqcobCkprGpl5y4pqOUmKmcjoaKiZuikK+epJaooKGSl5mcrourlo+omaeMmKiOnbi1o6WYm42JeYKUjJuTipWRk5CNkZahi5ydp5ydt6J/g661orCwdaS/pLOheXuirbW/l3iwpqGKgKp/ZFxid6COpJ6Dln5tlLWdpKmwrKVmoKGUdHqbmHCBmaqZbH+kqYplnKWckZeYl4uSm5CEnZuQlIOTh46OkoqFeGuQiHaHcXyGgYFhaYmMlZOMW3aVkWdnjoxxeaGVlWR4l4WAdpdogomCbnl/a3BlX3Zva2tnXGVjYWFtUVk9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHR0lLTFRVVVldYGhmZ1hRSTxERzw5VVJbYGFiYF5fX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqqWprqOnraWSlaq0rrClmamlqpdzi5yvoKirp5SXuaCgj5yknpF+iIiano2smqSVp6KejpeSnoV1ro+IppqokZajiJu5s6egmJiLiXV3k42Wk4qTkJCUjI+Tn42ZnqWYm7GVgIybtZ20jJKPvaiifqeje6WxuoOOj6ifhIyGj7Gpr4yKlqKaeYCLrIadnqOpq6mJloead6ace4icgZing4F7nbN7ioagmJmUmJaBkJaWg5maYnmIkYSOj5KLhG5xkIh6gnGBgYaAh3SIhZeTeJZok3SgmnN7mYKcmYSYfpGIgYKYaYyMhGp4e3FwZ2V4bmlsalxkaWlkcVpcR1NLUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaWZZUUg5REw8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2YpJ+mrq6rqK2gqbGnp6qlmZOsxLyvoJSlp7Sdj4OcrJynoqCNkL6emY2fmqGRfYaPmJeIrJ2jlqGhko2UiYaAkaiOh6Kco5OWnYaeubGnnZqSjoVwdZCJlZCKlI+Om4uOkZ6QlZ6jlJ2rh5+0ibSarovKiKuvireFjbCEs7KGqY6pmY2dfKiPcnt3nI6mlmiVpHm0jKGgqKqTmcKCgKuJmaFynoCbpX2XhZWzgaF9oZOfj5iYgI6UnImYkot8hZSGjZWTioRudJKGgHtzh4GEfYV1hoOYgY/FZoCph4+iap2BnpeAmYCKjIOImG+NkoRnd3R7dmdodXBnaGteYm5sZmpXZEVcUEwyRTQ2TWBjNyYzPEVHRDo2MzY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQElkWF1jZmhnYmJiYmNjX19iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6OgsKmpqKasoKW5saqrppqUnqGkqaGUo6m1oq9/oKedpZ6diZS9mpONoJKdkHmDlpWRiKuZnJuaooWPjHabm46gkYieo5uWmJeGorispZmbjIx/Ym2Pi5OQjY+LjJeLj5GejZKeoJigp36hp4etnaCWrpCgnp2Rh4Khja2yiKSOrJuMmn6idoCZlGuBq3VNq3iHjZ2TnKqpgqqrfoShfHunap6Ak2xnl4aYt4mefm5gY1iDl3+Ne2Rni3OZfXmXbFx8l25gU3GFXGBteoRgWWWCfoWBmXGoq2uDo25ypW+fgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbnRxampvXWlvbGpnV2ZNXFdFOUE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUktNQkpbXV9XXl9jdWBNRTpNTk1UYlxbZmZpaWJiZGJkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJeeoLmhqqSmrJKitr2rr6KZlp6gpaurn5yttKGnkaCfoKecmY6ZtJmQi56MlYt1gZSRjYqmlpaYnp9+k4WFrKOHnJGKmKiYmZmRh6WvpqKVmYeJgGluiIiLjo6Jio2Ri4+RoYuSnZ+aoaV/k4GPo6GUoHeclpCng6OpgIassIeleox+hJp9onBzk4eVe56MeW2HnIyakpyqnI+HnX2DonR3pmeefnelXph7fZNzom6Yt7S6c5OIgYC2qGSBxrh8cZW2jHGAm6NjdKyrYX5qnbN+bn6Ig4+DjJhxgKNscqNynoJ+o16cmbOWb3uXnrN0cluesoJpYnB0dXFob1hqa3FwZFtmXGFLRD1ENVFBWXAyPFJHX0pSPTwzOTU6OjZDPDtASVA/VE5OUUBFX15bWVhgYHtkSUM4TFdVVmNhWmZma2tiYmVhZGNgYWJgZGNfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi2ra2gmqGboqOkrJqasayrkpegmaGlmZqUnqybi4mReIuFcYCWjYqPoZCTlJ2XfZGKjqighpiPipKik5uajIqop6Sej5aHhH5re4d/fY+Ng4uQkImOk5+BlZufm6Cfi4l3nJiijaByoYyJqYmdqJGYqq6Brox+eqCZeaOTeIBzl4iMnH2Vn4ebjpqdqIijZKF+ipaQm41tnmibjm+amXuAiqd9cmh0qoOeg3OqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxfp3Z3ioqAnWiadYeTkpiNfp5tmZBqpplcqH53u2p9qVqOhF2zZ1xucXh3a2lbcGl3d2FeY1ZhQVBFTzdWQlJtNEpaWl5OWkRAMTUxOzs3SD86Q0hVP1lTWF0+RGJdVmBRYWN8aUVCOU5bXVhkZlhmZm5tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mWnYmqtpyoiWOVnKy7srCsnaWbmqefnayZnbCnqp2Xo5qioJmWlqCjmYaJjWmIgHJ7l4eMlpaEkpSYj3qLhJaknImVkIaLnZGcm4iPqKGfmouQioCAaYGGeX+XjHuIjY6HjpWZfZKhnqChk5hyaJ+KoI+McJKNg6mJmqGlqqOqfrCtpKK4l3ajs6Kjf4iUeJ16qpl/oo+fnZmJmHKhfYeNsLV9bJqRoXh+mbWjo6uohJl8mnycmn90qlpdb3uXjHieYk1/e3uFZHqYQk2fWaJqc3yOb4KKhJl2m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B9fW5lX2tndXpiYl5PXVZcVFZAWUVQZkRSVlxhWF5JRD1COD9BOkhFOExFWEFXUlpWRUZhXFpgS2BtfXFFQzxVXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lZHZsXmVnZmxkZWxoaGxplJ2Bsa6ahFNfoae0urOzqZqii5qpm5unkqCro6Cnj56dnZqZlZihnZaHh4l3hYFueZWEkJuLfZGTlohygYmSoZtykpCBiJiUn5qEjqibmZWKiop8g2yEhXGCoYx4hIyIhpGYlHuRop+eo4iuhn21hI+enXumlnqpgpeekYyjoH+naHhufplzoHNxfJ2FmG+Tgq18pISnn5uDpHBeqWh2o2RwpmGd0498e5l4cnNjooaQfqJyo5B2a5Czi2CCmIp0qrKovH93g25/v6aqtF6cb39yl3CCc6JyXqRndKZgaKZsmtOYeoKbbnZ5l2ubeXaXcmyppWdfZHlxf4RsaGZjbXV2Zl5gUVplUFFhSFZJVF9XU1tkaltlUEVDS0xKS0FKRDhQQFBNWFNYT1NRYGVlaVNkeHl3SUZFY11lWmhpU2loam5jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZmhsaJibf7GsVF1Lf6qwsrWws6KcmISXpqCgooykp5+WqImZmJmUmZOSoJeOiIV7cH2EaHyPg5OagneRjo+KcICGj5OSbJiUfIiRkqOVg42pmZOSioSJeYN2iIBugZ+Gd4CRhYeYoJV5kqGjmZ+Js6Gitot6rKekrqVwqYCbkYaBnpR+pYGjmoaYcZ6Eo62viZeLf4ykjZWDr6OVd7W2tsmic5SMg59gnpepbXmWh6CbdaGHeKB+kJaLgW9NZqOScZqIc6V7enVig4JtfqBscmRgnHN/dJdre2q0trTGpnOYfXmcapqaq3SBmmxzd5dpmXl0l3FQRH2zXmp1a3iGZmtmYnN0b2xVW1JYZ09SZ0lVTFhSVVxna25VZ1dNSkFKTUtHSk5BUUpQZGNqbWV1c3N+eHtudYl6e1RRTm1eaFxraVJqaGlsZ21nY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinYmwqIVlQJSisqyvr7Whoo9/lqehoaOLpKacm6WCmZeXjpeQkJuTjoiDeWt5hmWDjH+Wn3l1j4iMgmqFhZKEi4WdjXqMipWlkoKXqJaLkYuAiXqAfYt5cI+ghXmBlIaIlZ6UfpOkppuVloNnbnicbKJkfHKleJyYcGingpmOfaV7oZeDlnKfdoGJlJWPuW2PiqJifZmjl4luc2ura3Wgbm+mYJtpi5BploeblXWigX6aYIuGjXVviGJooWaef2qbdXBkZ4iCb3KiW19bZKFuXoiMcXyAdHJkpW54omNmp2eXcouXbaFvUoiPbqBeZKdUi11UmG1tcmtxgW1waGt3c2puUVZVVWVZU2xJWE9cSFhoaHJqWWtWUFJFVlxNWFNhVWhqXnd1e3xwfXxygnt/c3eOgIN3XlFzYWdicGdQa2hoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqbCxpZ+Lf5apnJ2ji6GhmqGigJWZk46aj4uXkI6Ke4ZxgIhoi4p8l5pzdIl9kHxlg4eViomVmoJ8iIaWpo+AoaqPhZCKgYp9gICOc2mPpYR9hZKMh5efjYaRqaWdiaZ4lpt+pYmWjLKZnpGEr5efpXmYinupdaiQhJpupaKMkoSMg7xtfKWvgoeGh5WXnaJ+pnxyqJWhlmiffm+sY5aKlpN4qG2qo4GJdYiCd6uRpohrkrFsd7OMqWyLhm9voJ6SlWJ/q4yqd4GAjqefd599haSVnaBomod1q2aerYy2c3a+jKOTWYOmjathdXJ0b3t1cGJqfW5nbFJUWFRgYFxrTFxSXEldbG12X1txWFtfWmdzZW1vcWNxdGB3en55cnmDcoN+gXt7jYGCgHZieWRjbnNkUmxnZ29tcmlmaWFfXlxhamJsbHtvXFxiaWJtaXdtZ2xuYpamq52BgJ6klqqqnqinraOYiIGWqZmdoomapJyonISMmo+GnJGFko2MjHSFeoiDb42FfpeTc3SGcpGDbn+LkoeGlJB9e4KFl6SNf6WkjYCOiYSUdYKHk25si6iAgouTjYibnoiLkqqioI+AdJSXiH6BeJSvpH+CnHGPhnmTjoaBe3OpjXJ9fXqXlpuEjXh7fX2IlJWTi3eRmaGihXt/imyMhlx6eXN6cWlvfpOKcYB0go+Uk3GGhIJljX9fgYGMeHZzlHVwem9viW+Fhl93aXiOZoKDho+qnH90fZZpiYhvfnV8g3VtbGaMc3h7l3eEWmpXeY9pbndycW93eG9da4VuaGdWWV5WXGRqY1VgVV5RX293eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV5gnV/gH+BeYuFgn17bYBtZHluXlduZ2h1a3hqaWlkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbqpp4uhopunpJmknauhn4ODlqqQnZ+ImaaaqJiCgZyLfpaUh46KiYxygnyOfH6PhHuXjnRyg3CVhnx9kouGho+GeX6AhpijjHumn4qFj4+ElYOGjph3cYSqhY2RnI+Hnp2GipqooKCrg4mNlZt/foqXraiQk6iReHGfk4V9lHB/q4dxfpVxam98gZ+Lf5GOi2huXYSNjZydoJBzl42JcnVsg3Z0gFlyb4eRgn5/jGpdaWR7hYSIgGBpeHucfISNg3aCh4RpeoyJbGJxc4N3X3ONg4qRqJaHZ42Ogmx2ioJug4t3bWRlY3qCepVaW2lmbXZbe3l3dG5zcoNmXG2Ja2tiWVhcWVhqcVpeYFleXWVyfXp0b3Rjamppe3xyenZ0ZG10aGx7f3V6fXt5eX+Af3CGiYN7fXN+enJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyrsaGQo6Gan5+YnpmooaB9gparjJ+ThpqhkaSVf3uYhXySmYmIhoaKcnyAi3aFi4KElopyb4BzmIaEfpODg4aKgnqAhIqan4+BpZ+Gd46XiJWLi5yXhIN6rIGQl5iTiZ2choehqp+ioqOLiJObnaOZlquiqKehk5yJmZF+epCQhql/gJORkpOcsaWalJ2PjbGSmISmjo2WnaGKkZ2EiZOLbH2Od3dmg4aRi32JnoWHi4+IiIGFhJF3fHt1m6SKh4ugjIeWf4CNg4F3cXWGhH94iYiLkaeRhIeOh4KLj4p6hYmHjX91aoCDfHmZaXFoYHOKcH17d3Zvd3SBXV5vhmduX15ZWlxTZ3BVY1tbYWxodHt7cm5wY2ppaH97bXh+cGhwcGxmgHtygoB3f31/hHttg4yFfHp5fH56g3hOZHZqc25xe2RrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2Inrqfl6OhmJWZmJSYpKCcen6XqY2djIWfnIqdlnx5lYN7jpmJhoOEhm14gH9ygId+iJOEbWt+epeHhIOQfoCGhId8h4ONm52ShqmegnKKj4aSkouckXyNe6mDjZGXlY6bloWFm6afopqdhoOSmpmZkJmmoaaenpCXgpOMeH2JkIanfH2PkJGGmKqhnJOcjo2pjZKAno2JlJughI+YgIiPhHF5hnJ1YX+EkId2jJmBg4+ChoV/hoSVbnp2dZSkjI2Gm4aGkHWBjH5+c3N8iYV7eY2PhZSokIeEj4GCiYiIdIKGhoh5bWp8f3ttaGtsZl55f2h8e3Z0dnV7d1xgcH1udGBjWlteUWZsU2RaXWBqaHR5fnBsbGNqameAf2tyf2trdG53boR5boaAdoKAfYV3coONh357e3yAe4KLYGl7a3VoaoNkamNgaVxjdWdvYnVtbFRicXllb3l6cmVqbW2Lip+4mqKkn5OSlpeLmp+enHp3nKSQm4mGpJOKmJl5eo2Fe4qRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hYSHfI+Aj5ubkIimm39wi4uMkoagoYqFjHynkIeOkZaSlpJ3jKOgoZ2Wmn+BkJqYk42ao6Kkm5iSnICQh3uBhpGJoYF+jY2PfJekoKCSmZCPpYyPgZySipSZnX+Tk3+Ij4J2dYJxd2F+gY6Gc4qWfYiMcYx+goWGj2h4cnqOmpORgJh/iYxzg4l9fXJ6fI2GfHuTjoSXppSNhpB7hIWGhHN/gISFeGRwen54eXBramZefnNpfHV1c3xzgGpeYHR2cHdkY1hdXlJpaFNkWF5fZ2l1eIFxZmtjbGdlf4BqbX1nbXBqfXeFemuLgXKBgX6BdXaCjYZ/fHqAgX1/j2pyg250aWKIaGxiX3FWdG9sbWB4aGxXanR2Y3R6enFia295iY2fs5Klpp2OkJiPhpygmpt7daOejZd/jKGKiJqWeHyGh36Ein6IgoF/cH56dHWChX6JkHdnY32Gl4qCio14fYCNg3mWgJWXlY2Wn5p9b4uBkZOFpZuHjImDppWEkYqVl5KRdpGdoaGYlJd5f46Yl46Wmp2lnpqUlZ17koiFeYeYj59/goqOjHOXop6gkpiOj6GMjIOYmISUl5p/mY59io6CeHJ+bntkgHyLhnGHk4CRgmuHg4GAioVmdnB9iJSajn6UeY2LfYKJfnxygHmLhnqFkouMmaOXgoSLdoeDgYB0eH+GgnNednd8c312ZmtkYH5qa3dzc3V9cXxjY2FzbnVybWFZX11aa2NSYldfX2dqdHmFcGJqY2xmaHyCa2h0aGxvaH98gXlsj4VxgIODf3R8g42BgH56goN+fJBtdYl0dG1mimxqYmN1VoNpcG1geWdsYWp2cGV4e3lwX3FshYWQna+Yp6mejo2Xh4Wfk5WXfHaomomYeZaci4yZkHh8gYt9fYR7gIKBeHN4eXN9gIN/iIqAZF59i5SHf4WHdH1+in9+mISWk5aMo6CXfnKHe5ORiqaPjI6KkqCRg5CPk5eRioGPmKCakpCRdICOkpSJnZ2ep5mYjpWXdZCRi22ImpGbfIiJkIlvl52aopKVioydi4aBk52AlJOWiJqKfYuKgntxemt2bXx/jH9uhZODlHhvgoR+fouBZXNqfYKYmIWAjnWSioV6iX93eYF+h4F9hI+GjZWlkXmFgnSIhnt+cXJ+hIFrYHl0eXB8bmFuYmV7Ym5vdnN4d3N0YXZgb2x1bm9cWl5dXWldT1xXYmBnbHJ6iGpfaWVqY2h3h21mbGhpbGeAfHp3bpCIc4CDhH10gYaJeoN9eoGEfXyOcnmLeHhtbIdraF9pcmKHaHFvZXZnbWxhemhqfHt3cGF3bYqBmZqroaWpnoqLkYaJnoqUlnx2rJeMlnyek5GWlIh2fnuKfHyAdnd/gG90c3pvhX2BgIl+fGFcfo+Shn+EhHJ6gIZ6j5GHkZGbkqSbk4F9gXyNipKjiY2KjZaajIWQl5KVjYiIjJKdk4+MjW6EkI+RiZ6ZoqGYl4qXk3CLm4ZniZuQlXuKhZCKcJaalKGRkYiKmIyCf5KffpOQlI2akHyLhoh0c3VrcW92fYx1b4aRjpNydIB8goKJfWVybnp/m5V+hYp1koyCdYp7cIJ/god9ho2LhY6Wqo57iH1+ioR2fG5sfYKAYWZ3c3RuemFeb2BrdF5want5eWxycGV5Xm5sc21zWFpdX2FpWk9WV2RiZ3Bxf4dlXWloZ2JncY1uY2hoZWlngHp3dW+OhXOBgYN8dYKJhXiFfHiEhnqAiXd/i3t6cnmDamtfcGh0f2txbm1xZ29rZXtibn96d3Brd3eJf6OZo6ihp5uIjIqBj52Gkpp0f6iTkY2GoIyVk5CAc3x2hXh5gHJze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYF/f6CGj4qRnJegk5Z3iX6AjIicnYqPhpKXloWIlJiOlouKjY6MnYqOkYRtiYuPkYqclqGcmZaGmYlsh6WFZ4ifjJOAjYSMgXiTmJKdkZCIiZSNf36QmX2SjpGOm5N9i4GEcHZwbG5vcXyHanODj5iKcXiAdYKJg3pndHB3gpuQfYqFe5WTe3iKdXKLfIeOe4uHhYqPnKWJfIR2gYl+d3dsaH1/fltxcnFvb3ZZXm9gcGpeb2p8enFubWptd2Bwb2txbVlYYGFhbFdQUlllZWJ1b4SBYV1rbWRjZWuSbWBmZl9naoF1cnJvi4B0f4KAeXaAi4B5hX53h4Z2g4V7h4t/e3aKf2pxYnxihXxvcGx1amhubHZ3X3F+eXtzdXN/gn6llputn6eXhYyDfpaVg46ddImek5KGipqMlY6MenJ4dIJwcoV0cXWIbG5sdGyHdoN9f21uVVGBq5SHgniAdnKDeYKggpCBk5KYm5GZd5F6goySpJqTjoiUmJKEhZaYi5OLiY6Ph52EkYt9couFiI+InJmfm5eVgZWAaoifiWiIoomUhZKEinGDkZePmo2PjIuOjXd7k5F7j4yOk5iNfIl9gWx3am9rbG17gGJ6fo+XgXd6gXiDjX16aHVtdomXjICJh3yVkXJ7hnF4jnuLjnuJf4SOkZ+fhn18d4GKfHZvZ2l+f3Zddm5ta3ByVV1uYnJhX21ueXBocGZnc3VocGxhd2VdVWVgYHBTUE5bZWRdeG+Ie15caHFiYmVlkWlfaGVbZ29+b2txc4p9dn2FgHV2f4x5e4aAeIeDc4aFfoyMhHx5lXhncmqDYId+b29re2BpbXR/dF90fHiGd3NzhXx5oZCasZymj4OKf4KZiX+KnH6KmJKOhIiXjo6OhHd0d3OAcHCFc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfHB0g3WDn4KRdpSQmJuQmXuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYicf46BeHuMf4iMipycnJuWlHqOeGmLlIpuiqWGlImYhIZjjJGYjZSJlouMiYtwepWKfI6Ji5OSinqGfX9tfGVzcGtte3pcgXqQj4F7fn+Aho97eml1a3SMkIqDh4Z+l4xtf4Bwgo6Ajol+hXuEkZabnIx9d3iCjndya2RufIBpZ3NuZ2hzbFNdb2RwWl9scXdna2tiZ3hzcHBkYHhgYVVrX150T01KX2ZiXHhwiXRcW2V1YGFkZI5jYGZiWGlzdG5scXaLfHR5hoJ2d36Lc3+Gf3qJf3GJh4GQioh8fpl2ZXNufWWHf25wa4BZa255enJgdnp7jXZydop2ep+MnK+boJGDhXiIlX57iJyGhJ6QjoWMl4STjoeBdXdweXFvhG9tbn5yY2R3cHxuenxqaGxipJrB3K7vonNsdYN1hKGEkW6Vj5SflJuAkXCFi6OXiY6VipCdlYOAlI+FiI+AkoqKl36He3Z/iXiGhY6cmpeZj5B2i3hwiYuOf42mhpOLnoaGXouUl4mOiI2KioSJbHyXg36JhoqRkIZ2hn5+bH1keHVqb3p0WIh7koeGen9/gIaNf3pmdGqBi5CLhISBjZiGbYN3b4mTg5KGf4R7gpKXlJqRdXR4h4t0cnBkcnZ/X3Jsb2FodGZSYHBna1VebnN5YXJjYGl+cXJuW2NyYWNWblpcd0xMS2NmYV12coltW1xkeF5gZGaEX2NjXlhpcmtua3J3i31zd4SBeHh8iXGDhHx9iHt0i4iHlYWMf3+Yc2h1cnlti3tudHCAV3B6dnlxZHZ5hoxodoCJcYCdiJmonKOThX1xjJN4eImcg4SfjI58lo2AmoiEfHN3cHNqb4Fsam18dF5gd3Z7cHR6Z2BlfOvatcnD3IlzbHSAdoqaiIxpl4+OnJWSgYhwhYigjoWLlYqMl5N8jZKHgoiPepGLho+CgHd4g4Ryh4KTm5aTmIaNdoiAcoeEjImcpIWWjqCEimGDlY+FiIWIjIaAh2h9lIB+g4WKjo+Ccod/gHJ3aHZyaXR4bVqNfZODhn2Ag4GEi4N2YnVtioKRjISAgJOSfm+DbXqIkYiUhX2Cf4KTlJKYiW5xeYuEdGpvaW92fl1yaG1caXRfUWRxaGZTX3F2dGBwYF1og3FzalhnaWNpV21XW3RMSktlZl5hcnOFaVtcZXleXmRnemBkX11Za25lbmp0d4p+c3KBf3t2eohzhYN8f4d2doqFj5iBjYJ7k3Zsd3Z5eJN1bnd6fVh5hXGAbmd4dpGCZHaGhXGKloaaoZuhioZzb5KLcXaNmnyJmYiJfJ9/hJl/gnlydG5vZHJ+aWZsd3dbX3h7enFxf2lhZ2F/1baOkaZ4bnF3e3GSkIyGapiNiJqQi4V6aIeLmYaBkpCGhpeNe4yMgICJjXuQjX6JhXp1e4N8cYaAlZmOkpSCiXaEiHiGg42VoKGIl5GhgIlhf5SHhIeDiIx/f4JmfZGAf4CDjI+Qfm2DfYN1bG13dXR3dmtjjoKPgIV/fISAhYl/cGB0coZ9kI6DfX+SinpyhWd7hYyIjYV8hYCBlZCRk4Vub3iLfnRsbWhpd3pgZ2lpWGt0WVJocmliUGJyeG1iZV5aaoRudGJcaGBlbV9vVFpuTUdOZmRcZm5xgGtaW2NzX1xja3ZkZV1dWmxsYmxqc3aGgHFvf3x9dHiGeIWDfICHdXiJgZKVe4mGdomBb3h5e4STb217gHZeg390gWxoenOUc2dzh3xykpKEmp+bn4aHdXWTfm11kpZ9h5CDio2afIyadn52cW9samF0fGdiaXV5WmB3e3ltcX5lZGhoV52PX3Jzl7zEhHZxlIiPfXGWi4abkouHcmqIj5aAe5WLgYSajHyKhXx7iYt/lIh1iYZ2d36BcnWGgZ6UhZSPhINygYp3hn6Mm5+aiJWPnoGJZn6Tgn+FgoiJcYF9Zn6MfHl/gIiMj31pgX6EdmdweXhzd3Rsa46Gi4KKgHmCgYWEgWxfc3l7fo6Lh3yCkIF/c4JqeoWJjYeFeYV+gpmOkY1+bm16iHx1c21lZXtzYVtwYlducVNTbXJoYU5ndXhmYF5dWW+Bb3NaZWJeam5gcE9ZalFEU2ZgWmpubXxuWVtdbWNaYnB2Y2ZcXWBraWNsanN2gYNwbX58f3R1g3qDgnyBhXZ+iIGWkHiEinSBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0a5ONhp+ZoJmEh259i3Vpd5eOfoGKgpSXinmPlW96dHFsamRgc3poYGVxelpgcnx5Z3F5YWVlj7Gyd0tiWqXZ0JZxe5CKj3d9k4qEmJCLhW5rhZKSenmShoGEmIp8hn93d4mKhJaAcIuIcXV+e2p5hYOlkISTjYR/cICEeIZ7iJ6blo2VkpaFiHB7k4J9goKIgm2Ad2iAhXlygIGDioh8ZX5/hHZkcXOAaXlxcHWZjoaDi313eYGFeoNrXHJ/c4KJh4p+h4p7iXOCb3KFiJCGhnOFe4KajY6FeW5ufYN+dXljZWh7bl5YdlpXcGtOV3FyZmBLbHd0YV5cW1p1fnNwWGdeZ2tyYG9OV2dSP1hmXlpva2d5cVtaWGtlWWNweV5nXF5lbGdma2lxd3+Ib2x/foB1b4J7f4J/gn92gYSJl4lxgo1xe4Z8enmEk4x1anl+a29+dH98b3J7epNvboF+eGeSi4OhmZyRgoVnhoNvZ3mViH1+hIKYioF8jo1peHNra2ZfYW95bV9ib3hcZGuCeWFxdl9lZdTqvYsyOj6Ljn9xeIWHjY11gpaMfpKNi35ta4SMjHV8j3+FgZSIfIJ3bnaHhIOXd2+IhWx1e3VmeYKDpouCj4uEfm6BdniFfImfko6Sk5SOjId/e5KGd36DjIJqf3JogH55bnx8gouEd2J6hYJyZHJpfm52cnWCnIyBgIWAdHZ+gHOCb1xugHV5i4SLfIiBfol5e3JtioWRhYxzg3qAl4yLgHVtanaAf3RzW2dndW5XVntSWW9kTFpycmVbSXF4b1xbW1lddX50aFliW2hmb2RqTVdlUD1dZVxddWVgdW9aWVRuY1ljcXlaaF1gZ21naWtpcHd9jm1pgoR/eW6AfH2Bf4F6dYKAjZOEcIGLbnd+gHt7iJKJf2h6fWpze3KFenN2fX6MeXiEfXxrjI2Em56WjIGAbI19a2h+jYt6fX6Dk4J+fYqIa3ZxZ2hiW2Jnc29fYWtzYGhwiHlic3ReY2SboI9uXDVar7V0aYCIfJGGdYWVhXOOiol2b2yEgoZ0eYl4iXySh3l+cmd2iX5+mG9xh39pdnluZnmHhKSGgIeNin5vgHeCg3+Pm4mElpOZioyFiXyQiHB6fYR7aH5saoB7emp7d4KIgXJgd4F+cmRyZ3aDbnV8hpaSgn2CgW93enx1f21ZcYF3dY2Dh3iIdoSJe3l0b4uCkYKGc4B+f5SJinxvbmltgYF0bVtlZHFvUFp6TVtuW09bcm9kVUtzeGlXWVpaYXGAdGBdXWBnZGlpZk5ZZ01AYGNbYHVgXXVsWFdTdGBaZG9yV2peYmhqZ21saHB3fJNsaISKfX1wfn57gYCBend/f4qLg3F8h29xd4N/e4mMj4NpfXttd3h2inZ8eH+Chn+Dfn16bYWMiJmjjYSDe3WLeGtshIeQeH16gpGAgH6Lg3BycWNmXllmX29vX2BncGZqboh0YXRvW2FkanZ7gL+cpqTIuHGEgnKSe3eFkoJzkIuHcnJvg3uDdHSHdIh3k4h5eXBjd4d6gJNpcoR2Z3d1Y2p8goedgYB/jo9+c4B1h3uClJKFepiPlpCIgol7iYlreHl+dGd6aGt/eXRpeneAg31oYHiIfWtrdGh8gWp2goyRlX97fn9xfHZ8dH9iVnh+c3SLhYN9hHGHinh5cXGFhI6Af3p/fnaPhoR3anFpbIeBcW9cZmBxbElkdUtdbFRTWXJuYlFPdHhhUlhYXWFwgnNbYVxpZWVka2RQW3BJQ2NgW2NvXV13aFVXVnZdW2VuaFZrXmFqZ2VubmhwdnqTbWmIjXl9cnt+eYKBgXx2fYOIhoNwd4RybXeCgn6Ji5N/cIB7d3h6gIx0gnh+gYGChHmAdW9+ioubnoh9hXp3hXtodIWLkHl+f3uIhoR2j4BncG5fZFxYZVltcmFgYHBsa2iIbmF0aVlfZG6Ad6naqceGh7JxiHdvjHR6hY1/eZKJf3RzdH13f29xf22FdJOFeHRrYHqCeYmPZnKEcGd1blttfYCQk3+AeJGTfnl8bop4g5OOhnaYjJOQiIaGfH+FbHR1fmxndmRte3Ztand3f398YWJ4hnppdXVjfnxodYePjZZ8dYF3cYB7fW6AWld1f3B2hYh/gXptiYZ0emx2goSFf3x+en10jIJ+dGh0ZW6Kg2xzWmhdc2RHbW1LWmBXVlV3bWJQUnR2WFBWWF5hcoRvXGBjbWVkXm9jVFxxRkJlXl1lZ11be2JRVlx0W1pna2BWal9gb2Zma3FocHZ4jnRrjo12f3Z4fneBhIF7dH2DiIeDb3KAdHF1foWCiY2KenZ/eIN7fIWHd4d8fYF+hIB7fnJ1eYyNoIyJeYl2dIN4Xn2Fl4t4hoNzhYaEd4l6Ym5tXGJbW2FWaXNjYFtnbnBmh3FhcWZXXWNrf3zKzoe5oWptbYpscYNxe4OJfnqQhHl4c3h1dHtqbHZjhHWRgnZvZl99gnqLimVygmtqcWNYbHqFm4iCgXOXlHh/fW+Kc4SMjol0mZCSiYaLg3t5fXFwb3xmaHFibXhxamxxeH19el1leoB4anZ4ZoN3aHWJjI6VfXKIam9+gXlvfV1Zc39udYGMfIJvcIqAcXdpeIGCgYJ4fnN8dYd9e3Nnc2Fui4BrcVdpXHZbR21qTFZVXVNVe2thT1R1clBRVFdeY3SFaV1gbGpmY1pvYVhib0dBZ1xgZV1cVnteTlVlcFlbamhdV2dgXnJlamhyaHBzd4Z4bpWLdH96eH55g4h/dXJ/hoWOgnBwe3h3dnmGhoeMhnl7f3SLfX2GhIOHfn5+fYd/fHh1eHiRk59/jHyKbXWAeGSDhpWFc5GKb4WFgXqDdGRuallfW1xdVGdyZGBZZHFyZ4ByYmtlV1tgan94vq57n7duYXOFaHN6cXiBhHp9i353d3J2b3t2ZWpvYYd1joBzamJefnh5i4RmcX9oa2taVm93iKKAhH9xmZNygXp2hG+DhJSKdZeKjomFiYV9eHRxbmh4X2psYG12amdqbHl3enZaZ318eWZzfm2FdWV1h42GloBwjGdre4R1bnViXXF9bHV9jHyCZ3aHfm5xaXaAeX+AdH5te3yCe3lxZmxibol9bGxVaV92VUppak5RTmdMWHtoYU5VdWtMUVRVX2d2g2ZeYHFoZ2JXal1ca2dKRGpZYmNWWVV5WU1WbWpZXWtkXFllY150ZW1kcWdycHWBeHGZhnZ/fnd/fIWHfXVzgoiAlYJuc3l7enNzhYeJiYN4gX11j358hIqNg4GEe36Lg3t2e3d3mp2YeomChml2fHtsg4OSf3KOgXCFgn+Cf3BnbGdYXVtcW1NkcGReV2JydWp1b2VlY1dcW2h/cG9ygHOJZGR5fWlzdXNygYN3gIN4dnJ1bWp6cWFna2eGc42DbWZdX31we4l/aW14Z2pkVVdyb4ymfIR7dpaRdH10fnxvfn2TiHibfYmHhIeDfXVwcWxndFxsZ15sdGRnZWl6b3tyWWiBd3VocIF4gndid4aLfJWBb4xqbXuCcWd0ZmFuemhzeIt8f2N3hHdqbHJ1fHJ7e3R/aIB/gHl3b2RmYm2Fe2xqVWhhb1JKaGpPS05vR116ZmFNVXRkSk9TV2Frd35mXWdzaWZgVmRXYnBcS0tqV2NhVVRVc1ZMWHVkWV5rYFtaY2VfdmdtYnBpdG9yfnR0mYJ3f4B4gH+GhHp9dYKEf5eFbnJ0fHp1cYSFj4GAeot1c5B/fIGVjYCFhH19jIZ6fYB3e6OlinmIhYRrdHt6dYKAi3puhHN5hH2Cg3ZvamllVl1bWlpTYm5kW1hhc3tqaG1pYGJYX1ppf2lrb4BnbGBoeXhqcnNzbYOAen98dXRtemhqeWpfZW5ogXaPhGdlWGJ3an6He29qcGdmXVRYb2eNp3aAenyQjnp2cYBxdXh7kYF6l3aHg4CGiHZqcnVnZ25bbGRdbXJfZ2FqeGh7bFtug3N0anCBfnp4YXeGhXmRhXSJcnB6gXNkcmldcXhlcnSJfHljdIBxZ2p5dXNteXh2eWWFfH95d3FkZGNte3xqalRnYWVTSmtnT0dRakVgd2ZhTVNyXUpNVVplbHh8Zl9ucWlkXVZhVW5uVkpTZ1dlXVhNVWtUSlt5X1tfa11dWmJlYHlobGFvb3ZucHd1eph+d3+BeYCAh4Z6eXqDfoGTg3F0dH56dnSFiJF9gHyQa3KVgHuCn4V+h32AfoaCgIp7d4Srnn96h4eDa3KBeXWAfoB0boZufIBzioBqcG5kZFhfWllaVGJqZ1taX3WCaV5tbFxhV1xca4FlcnR9aWlca3Z1Z3N2cWyEe318eHVybHlnaXhmXWRzaHp3koFjY1RlcGiChXh4Z2lqYVdWWWdjjqdvfneAi457cXJ/aXtxfI59eJBzhX6AgIZuZHVyZGdnXGphXW9vXGdfbXRlemhddIBvcmtxfH51dmJ0hox7iYiBgXlzdYB2YnFuW3J0Y3FzhXx1ZXOAbWFte3Branx6dnRnh3Z7enZxZWJkbXJ9aWtTZ11cVEtxYlBGVWBHYnZmYUtTb1hKTVhYaGt2e2VlbnFmZFpXXlh3ZVRKXGJXZ1dZSFdkUEhieFpdX2xaXlxhY15+aWpgb3R4bXBudoOXenKAgHx/iYyGfXV1hniHjHxzdXWBeXp6goyOfX6EiWlzloF6ip1+foV6gXp/fIaJc3GPrYx7e4aPfWRxh3lzfHp1cm+GbHt+bI96Y3BvYmVdZVZZWVdjZmtfXV1zhWhYcW5bXlhaXGx7YnB3dWxhWWxzc2d0dW9sg3h+f3h2bW50ZGh0ZVtndWZ2dpF6X11SZmZrg4J0fmJkalxUV11iY46kaXhzg4aReW5xfGp6b32HfXaKdIJ5fXmAaWR2bGBmX15pX110a1llXW9vYnplXHd8a25ucHh5dHVlc4STgIiDiXt3cHN/dGN4ZVxxcWJxcoJ9dGdygGVfbndqZWh6fXVvcIN2dH10cmJfZm1ufGRoU2dXWFNNdl9QSllXSGJ0Y2FJVG1TSk1aV2pscnxjbW1zY2JaWlthd1xTS2NdV2hTVkZYYE1HaXVYXmBsW1tfYmJchGloYW54eW1vanaBkHltg36AgZOIhIF2dIl0jIZ0cXZ2gXh9fX6MkIB+k35wd5WDfJiSeYCAeHp+gHSIhHRxmaF6en+JlHdjdYd4c3d0a3Rufmt4fHCRc15wbmBnYmxUWlpXaGNtZltccYllU3JuW1pYV2BsdmNpdWppXlltc3Brc3NzaYR8fn56dm5ubGRpcWNbanJkdHaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEknVsbHtvcHJ8fn1zgniBdHt6e2RldWddYllgZ1tedmhXYl1waGF3YVt8dmlqcm94dHN1aXGCloSHf4V3dGtxfm9neFhdbG5jcnSBenRncH5cYHByYmBrc39tbnZ/c3F4a3FhXGVsbHpgZlJlU1ZRT3VbUU9YUUhjc2FgR1ZqUElQWlZra2t9Zm5vcWJbWlhZbHFXUlBmVlZoU1RFWVtOSHJ1WF9jbGJYYGBhXYtqY2RtenhscGl1eYd7a4N9f4SafIOEeXyHbY+Hcm52enx0goJ8i4+Dgpd0eIGThYGeiXWBgIF0f4JxiIN2cKGWc3qGi4Z6ZXeKbm16bmZ4cHprc3ZzjWtedW5hZ2VrUl1bVWdhbGtaXHGMZE9vbl1WWFVnaXNoYnRlZFxYbXRsb3V0eGqGfH97h3aPc2Nka25hXG5tY3N4h2taVFZjZHh9fXGGXWRfY1RaX1lilZVjbXCDhYp0a2l8cGd1eHV9bXt1dnB7f3ZfZnJjW11WYWNYYXVlVV9gbWRhcV1dfnBoaXRxdHF1d2tthZSCiX2HcnNncH9ydHBUXGdrZnJ1gXd0Y212VmNybFtfcGd+Zm54fnN0c2tuYVpkaWp3XmVTY1RVUFNsVlBWUlBHZHJfYUZYaU5JWFRXbmllfWlseGtiV11VW3RkU1JXaFFYZlRTR1lZT014dltfZWtpWWFgXl6ObmJma3l1bm9pdnaAf2yDgH2HmHuAh4GJfmuTiHJmdIB7dYCDfYmPf4uTcnyKkYWHn4Z7f4aMc4GGc36Cdm6ki3KAjYt2d2x6jGBke3BmeXN4bG1xd4NnZHxtY2ZnaFNfXlVnX2xuW15ujWhOaW1gVFZTb2dza2V4ZGRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVweH5nWlZYYGx4fHtwhF9jX2dWWF9XY5uIYmtwgYd9eGxsem5deHNufGt2dG9wfIFzWGpuXlhcVWFiV2RwY1NeYmlhYmxaYX5sZmx0dm9td3dsaYaNgIp7iW5yZnJ+bnRuZFthaWlwdIF0c15pbVNlcWVWY29kfGRzeH13bHBta2BZYWZndFxkVWBVUk5XZFJPW05PSGRvXGJHWWlNSl9LWW1kYHlpbn5kYFVfVF11XFNSYGZOXGBVUklbWFBZdHVdX2VraFhiYVtejXFjZ2p4cXNuaHZ0e4RygoN6iI5+fImHjXlukIl0a3OBdH9/iIWHkYSVj3l9jI6HkZuEgHyMhXN/gXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjYyMjIyMjI2Ojo6Njo6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjY6Ojo6OjY6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERBUsza2NjY2N1tPURERERFOC4vLy8vK0iFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTJG2Orn5+fn7WcuNTU1NTcnHB0dHR0YOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWFhYWFhYaTlJSVlZSVioWFhYWFhYSDg4OCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSkpOPjo2NjoePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYuLi4uLjIuNjo6Ojo6Ojo6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQkIeIh4eLhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCNhIiGho6FjI+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkYmDhYaHjImJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjomGhoaIhomPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Qjo2LioyJjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4CBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9/f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX5+fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn19f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn9/f4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn19f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn1+f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYWFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4fHt7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e31+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fX59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTk7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnd5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Oz08Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fX5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUA9PD07Pj06Ojo8Ojg5ODg6Oz1APzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkVISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz4/QD0/Pz48PkA/PT09Pz09PkNEPzs8PT5APT0/QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjs+PD89PDo+PT9CQkVAPz9OYV9KQENFSUlJSUxNS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk1LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8e3t8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFDREI/PkE/QURERENXdYaJin5YR0hKTExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm9wcXJ2dnl7e3t6fX1+fn19fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpISUdISElHRkJERkREQ0FVdIeJh4eGiIJXSUxNTE1NTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKS01KS0hIRkZHRkVQbISHhoaGh4eIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz8/REZIREVHSUtJSUdISUdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTUxLTUxJRkpWbIGGhYSEhoaGh4iGinVJSUZCPz9APz8+PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUtHSUpNTU5NSkpLS0pMTVNsb3J0c3N3eXp7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf3+AflFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lIS0xPTk5RTlFecoGFg4SFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QTs5OTk9PT47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5/fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BCRkhLSExLTlRne4SEg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0Njc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODo7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BPUlRlcHFzdHR3eXt8e3x9fn9+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9OjxEQkRGQ0NWeISEgoKDgoWJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc3OTk3NjY3NjU6Ojs6Ojw4OTg5OTg3Nzo6Ojg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT1BRV2tycnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PEdSYHyEg4OEhISGiYqKiIeIiImKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozw9Oj48Ojw7PDs8PDo6PDg6Ojs7OTk5PD88PUFCRElKTUtKS0xXb3J0dXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pj0+T3eBgoOEhIWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVCQUFCPkBDQUA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEFAPz9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUJBR0pOT0xJR0s6ODo7OTo6Ozw6Ojo8Oz0+QD5OfYKDhIOFhIaJiYiHhoaGh4iJiouLioqKi4qLXj5ER0lLSkpGR0dERkhHRUNBQENFQ0JAQkNCP0BESEVDRURFRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj06PDo9PT4+Oz48Pz5CP0x+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqHV0dMTE1LTklJS0hJSkpJRkRERkdGRENFRkRCSElLR0hHRkdHRUtKTElLS0pDRkNDREJBQUNCRENDRERDQT08PkBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc7Pjs8Oj0/Pj88Pz5CQUQ+Z4OChYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtHRUdISElFRUhGRkVMTE1JSkdHSElKTk1PTUxOS0hGR0dFRUNGRkZGREVISEZDQT9ATG1wdHV2eHl5eXx8fH19fn5/f359fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw6Ozw6PT88PT0/QENCSFN+g4SEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMTExKSUhGSkpFSkhHS0pISkdHR0tMTkxMSEhJSk1QTk9OTE9LSUdJSkhJRElISEZGR0dJR0NCQUNVb3F1dnh6e3h4enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6Ozc8PTo8Pzw8PT9CQ0NMbYSDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMi4uLi4teUlJQTU5NS0pHRkNISkdMSkdLT0xLSkpMTUxPUE5ISUtMT1FQUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgICAfn9/VUVDRUVHR0VEOz9BOz08OD89PT5ARUQ9QkRDRkp0hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUZGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1JQTEtNTU1LTkdHSkZGSUpEREVFQkRDY3F1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz08QT9BQURUS0JISUZJS3iGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hKSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQUNGRENES1ZQSk9PTlBReYaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVZdWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01LTEpJSUxNS09NU290dnh5eHd5enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SExJTVBLSUpPU1FQVFZVV1V2hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXl5bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktKSUlGQkRAQTpPUVFXWFBQUFFSU1JWV1dYWG2BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaWlhcaGJHT1ppZ11bXF1dV1NOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpaUlNRT1FSUVVSVVNWX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX59fn19fn9/f3+AgH9/gH5+enh3dnN1e39/gIB0a35+a3F5XltWVVNST0tGQ0RBTV6DbFZSU09PUU9RVlFTUlJUY2R2gIOCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JVUk1PWVFNTlFTVVVNUVNSUE5MTEhDSUdSU1RaXW1ydnZ1dHR3e3p6e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRgZF1eW1lVUUxJTElhbJJ0UFFTTVFSUFNbUlNSUVJVVWJze3x+gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5CQkNDQT9EUENDQEM+QkhHVkBJTk1HXWlRSEZPRkRFRkhHSEJDSEdISkdEQkFDQE5QTVJkdHV2dXN0dnl8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZoZWViXFhTUVBVUnNXZVtPT05MUVJQVVlTVVFRVFJPVmBrbHN2ent4eXRybnN0c3l4fn6DgIODgoGCgIKBgWtMRz4+Ojo+QD8+Pj5qUEthRUZISUVCP0hNTUdNUVVKQkU/Pjw9PD09Pz0/QUNCPz88PUI+SU1GVW91dXZ0dHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKT1BOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxuamhgbnJpbWxxdXt6fXt4enx8eHd4ZEJAQEE8OkJDQUFDQVtcT3tOT09OS0xNT09QTEtMV05IR0FBPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV2dnV2d3l8fHx9fHx8fX59fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT09eXFpJR09RUU9NUFFOUVJTVlhTUllUTllaW1dZXF9eX2VfXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FXUE1KREY+Ojk2NTg3OTc5OjM2NTc5NTxCPWZ0dXd4d3p5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LU1RTUFFVT0xSU1RXWFNUWFFMWFlZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT01MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnJ1eXl6e3t9fX19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5NTUxKRlBQVVlTVE9KTk9VU1RcVlJVU1NPTUxJSEhGPz49Ojc4NzY1OTk2NzU2NVdxcXR4enp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFdZWVlSVU9JR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFBPTk5NUE5UUlBSTElMS09SUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVlFTRkZBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPTNAPmpvYVJSUUBHVFFPUFBRTlFPUE9MSkxMT1BOTVBRUU5QT0pMTU1LR0VFQ0I7PT08OT1HNjY3NkRucXV3ent7fHx9fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVVlZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JCOERNU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FMTk5NSU1MSUtLTEtHRkZFRDxBQT47QEU7PDg5VHJzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1AQEI9PkVIRkRGRklHSkpARkFBQEVHRElPSFFSYVxRUFJPU05PT0xMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZFP0JDPj1CRz9CP0BkcnV3e3p7e3x7enp3fHd5fX57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48QkFAR0pFTU9iZVBNT01XS0xOS0tNTUxMS05OU2RNSkxSSUlJRUJJSkxNTkpHSUZCQkJAP0VGRUhETG9wdnp5eXp7enx6d3R4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPSEtFP0I9OTk5Oj9CPzxBQkFBRERHS0ZESUlHR0hDQz9CPj8/QD5DRURMTVFUTEpJTVRGSUlKTElKS0lKTE1PUFFQS0dDS0dDQ0tKTE5PTklKSUdDQ0NESUpNTElac254eXh6ent5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFISkNGR0hHSktJSkxER0I8Pj06Ojo7QUI/PUJCQ0NIRUpMSkVJSUZHSENDO0FAQj5AP0JERElNT0dISkdIS0RISUtNSEpMSElKTEpNXVJISUROR0JFTEtOTlFOS01KS0ZHR0pNTlJOTWNuand2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhlcEZKQ0ZFRkRFRUZFR0NDQD08PTo7OjtBREA/QkNFRUlGSkpMRklJR0ZGREI6QUNDPj9DQ0NER0tOSEpOSERIRUlMTk1ISUxHRkZJSUxOS0lIRU9JQ0dOTVBOUE5OT01LSUhJT1NRUk5TZ2dmcm9zeHZ7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZl9wR0pDRUVEQkJBRUBEQj4/Pjs7Oz07PT9EQj9BQ0ZHS0dKSUxIR0dHRkVDPz1ERUI+QUNCQ0VHSElHTVBJRkZHS05PS0ZISUZFQ0RJSUhLSUdIUEtESk1NUU5PTk9QTkpKSU1SVVVSUFhlYWFtZnByb3J5emdlaGhjaWxmcWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VERkJBQEFEPEJBPkE9Ojo9Pzs+P0FCP0BCRUdKRklHSUdGRkZEQ0JBQUVGQ0JCQkRFRUdHSEZMUExJT0pKTEtJRkhFRkVDQ0hISEtKR0tSTUNPT05RT09PTk9PS0tLUFVXVlZUWWBfXWlgbWluaHJzYmVmZmRoaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXV2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01HR0VHQUFAQ0Q8QUFAQzw4Oj0+Oj89QEJAQEBERkhFSEZGSEZFRURDRUJESUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9NT1BNTE5TV1ZXWVZYXlpdZGBoY2ppZ2tfZGVmY2hnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hBQUJFRTxAQ0JEPDc6PT47PjtBQj4/P0NFRkRGRERHRUNFQ0RGRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSERLS0xMTk9SVE9IVFVUUVRQUU1OUU5NUVdaVlpZV1peWlhhYGBgXmhlY2BkZWdnamhoamdobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSUNBQ0dFPEBFQkQ8ODo+Pj48PEJCPUA+QUJGQ0VDQ0dEQ0RERkdHR0lGSEpIQ0lIR0lHRkRIS0lGS0hNS0pLS0hLSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9UWVpZXFpaXF9fXV9jXlxiZGxjYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJER0U9QUdEREA5PD5APz4/Q0I8QD5BQUdDRURDSERFREZGSEhGSEdJS0pFSkhISkhGRkxISEhKR0xMTExMSU1KTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJmXWRgZmhgZWhqZHNzZmpoZmxwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd3B3SUpMSUtHQkVERTxBRkREQjs/P0FAQEBEQUBCPkFDSEJFREZHRUhFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0tNTElJTEtNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFiYGNkZWFkaWNkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV1c3Bzd3R1dXd2dXV0ZXFza3BxanJ2cHdKTEtLTEdDQ0FFPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0hGSEZFSUZDR0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlFMU01KTU1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5hY15gZmNhYmduaWNpaGhteHZtaGlub3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnNxcXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0RBQEQ+PURFRkM/Q0FFRERGQ0JFR0NDSUZCSEpJR0hKRkRLSkdISklJS0dKSk5LTkxJTEhKTUtaZkpkXEtsUkdOTV9uVWxzW3FwYndjUlBidnVodWNhdmFYbnFiZHZpbnpmXGx1YGxrVmB3dWhqaGhmZ2xtam1vam1vc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cnFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj88REVGRENDQ0VFREZCRUZHRERLRUVKTEtJS0xHR05JSEpLR0tKSUpKTkxNTUxMSU1MTFtzYmRwXmxsVUxOZXJdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm5ccHZncE5Mcnl2a2Fha2VlbHhta3Zsbm9zcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FBPz1CRUZCRkNFREVFRENISEdEREtIR0tNTUpMTEZKT0hKS0pJTEpKSUpNTU5NTU1LTk1NW3Jwb25wcGxrTU9QbVhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcF1gc2xxalV1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dFRUVCQUI9Pz9FR0JHREhFRURCRklISEVHS0pHTUxOSkxNR0xOSU1LSEpNSUpJSkpOT05OTUxOTUxcaGR1XWxxV2xNT1FuVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRklMS0ZNS0tSUkxITU1JTkpJSE5HSkpISU5PTU5MSk1NSlp0cHBvcXFtbE9RUm5Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpaXnRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0RERUBAPkNDQUZDSElNSEZDRkpMSUdGSk1MRk9KSldSS0dLSkpOSUlKTElLSklJS0xNTUxJS0tLU2tiWWleX2pjcnJaX1lqb19lZVVrX2RbYWJRYG1oXGpcbmlpZFtvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRkpERUNGQUBBRURDRkJISkxHRkRHS0xJRUZKT0xJT0pMW1FKRkhIS01JSEpKS0tJSElHS0tLS0dIS0pMS0xKSUtMTlRbXVRQVU1RT05PT1VSUFBRT09RSkpOUFFkcWlUWVZbW1xVWVpdWF1cXGNmYWFmYmNmX15ma21obXR4cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQEVDP0NHREVHQ0lLTEhGREdLTEhER0lQS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKSEhIRUZMSEhKTktIT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZFxhWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVFSkpKRkRHSFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdFRUpHQklNSUpUX1lgWGBhW2BVWFlUXV5aX1JZXFBeXFlOX1xeU1teZF5aXWBjX1lfYltgXltVWVhaX15jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN1eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklIREZLSkpFRUhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRkNERUJGSkQ/SUtITltjWV5eYV9SVFNXX19cXVleUVlcTVZfV0tRWVtRW19iYV1eY2FgYmJiY2NlWlJZVlddWl5kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkRHRUJFR0hGR0hJRkdKR0hGSEtJS0RDS0pNTUxMSEpKSEpHP0dGTktLS01LS0tJR0lFRUBEQUhJQT5ISUZPXWFaW2RdX1RRUlhdXFxcX1tLV1xMUlxZSU1eUVFdX2JjY2NjYlxkY2JkY2VYUldVVF1ZW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0VLSUZHR0lHR0pGRkZJTEpORUNLSkxOSkxJS0pJSUdCSEhRTUtLT01LS0lISEZFP0VCSEhBQEZFQ1RdWV5YX1lfW11VWFhQXV1RS0pWXlheW11WWmFSUl9fYmJgYGJiX2NiYmRkYlhQUlJTXFRcXV1eXl9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0dERk1SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0pJR0RIS1FPTUxQTUxLS0lKREVBRUNIRkFBRkRBVlVFXFReU1ZfWE5UVU5aW01KS1RgYVtfWF9eYl1PWWJcYGBfYmNhXWJiV2BfVFFQUVJZU15cW11eX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJU2NRRVdfSUdHSERGTUpQUEZJSUpLTkxMS01LSkpHRUlOUVFOT1BNTk1OSUxCREFDQ0ZEQ0FDREBMSENMTFBPTkxGTUZGSElIR0xMTU9QSUxPUFBTUExRU1JVWlhXWVdXY1ZOUlRQUVBPUVVUXFlZW15eYWFlZmNoZGxtcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtOXk1ISFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS1BUU05QUE5PT09ITEZgRUReTERmY0NMW0heXHNtT01WbVlMQ09fVGxXZ0pdV1VeRE1RVUxNU1ZRUlRYVlRYVFRcVE9lWmhoZVpVa1RYV1VbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEg4ODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS1BUSktHYFRISk9KSU9NUlFLTUtMT1JVUk9QSkxOR0hNUVtZT1BQTlBRUEpLUX9RSXxZWXJzV1BtR3Fub2FWUHFxdE9CanNucXRwU29fW25YXVZcWFVraFVdVmNZYFlaXlVVV39pdHV1X2F2X1liXFxmW19hYWFiXmBjZ21vbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4fYB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxLT0hMUlhXUU5PT0xRVE5PUVBLTE9HTVBTW1pUUVJPUFBQS0laeF1UeGRoWFJTUHZmdGxwYm5ma1JyTkx3bWpycHNycXJwb2+AXWV6dXhxcXpxfnJ9a3V9YVJofGVzc29zc3x9cH54b39yYGBgYmJbYWFobG5rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpRT01OSk5WXllVTFFTTllZTFNSUk5MUElRUlRZV1dQVFBQUVJLSGd4bGN4cW1aSkxUeXB1bXVibnZQZGRIZXZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGhuWHV1anZ1cIBhc2h9aWx4fG9fX19jYlxfZGVnamplaGJjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFFIS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OUkpLcm91dXF1cWNoYFVuS3FwXkdoeVd2VEtoeH13YHl7c25hXW1vZFNncnVubXlwd2x2c3RxbG1cc356a215fGx1bnxscXZ1eF5fX2JfXV9lZGlnaGZlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUUtNTkxMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05RSVJtSGl3S2BkdnZUVmxObmx7cmFqZ391VEtWa2d8bG1seF9acHp7X2B6c2Nyb3hxaGR8aXJ7XVRLa192dWxqdnx7bX55a3xwXV5eYltfYmRlZ2ZmZWNbY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxnbG1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTExTU1JPU1JYUldUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFNT1VMS0tSU1JRUk9WVVFRT1JSWFhQTU9VVFdYWFtbVVFSV1tXWFdbT1JUV1dYUV1YVlxVVE9YUldXWFlaYFxncl9bW1tdXV9jWl9jY2VnZGRkY1pkYmdmZm1ubXVmZmdjYGZeXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJOUlFQTFZWVFBUVVhVWlZSW11WVVRXVVlYT09MTldUUE5VU05QTkxRUEtJUVFLUU1KSk9RVFFQUVNSSkhNT1BRUlBQUFRWUlhXXFdTUlBRVVVVU1pRTlJRV1VTWVZUWFRTUVRTVVVZWVheWl9hXVxbWlxcYGNcXWJjZGdlZWViWWBhY2FiaGhqbmNhZF5fY11aY1xibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVJNWFdVVFZYV1daVlNcYFZXVllVWFRRUEtPWFNQTlVQTlFOTFNQTU5VU05RTk1OUVNQVFBSVFROS01PUlRUUVFRVVdVWVpbWlNVUlRYV1ZZXFNPU1RXVVRZVVZYVFJRV1VWWFxaXGBdV1lfXV5dXF1gYV5bYmJjaGdmZWJYYGBiXWBoZWdlYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWU1RPS09WVFBPVFBQUU5NUlFPUVhUUVFPTU9SVE5XUVNUVU9OTlFUVlVSU1JUWFZaXVxaVlZRUldYVVtbVlBTVVVVVlhTV1dUUlFYVlZbX1teYF9WX11eYF1cYF9fX1piY2VoaGVlYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVVFPVlxaWldbW1xZWltkcW1oZF9bWVZWWFJNTldTTU1ST1FST01QU1FVWlVUUFBMUFdVUVZSU1JYTU9QUlVYVVRUU1RZWFteXVxbVlJPVVZVW1tWUVNWVFZYVFNYWlNSUVlXV11fW2BgYFZiXGBhXWBiX1xgXWNhY2hpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5QV1NOUVFQUlRSTFFUU1lbV1VPUk5TWFVTUVRRUllPUVNTVltVVlZTVlpYXV5cXF5WU05UVlZbW1VRVFRVV1hSU1lcVFJSXFhaXV5dYmFgV2JbY2JeYWNfXGJhYl9kZ2llZ11cZGBhYGFjZF9iX1laX1tcW1hYWVdXWlpaYV1dW11cXFpdYFdbW1pQT09PWVBVVVNSWFNUUFtdXl1cYFxgVVxcaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVWlpaU09TUVVVVFJOVVFSWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZWV15aWFFUVFdYWFNWWVxUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXl5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVldWVFRUXl5gX15iXWBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVUk9XUVNXU1dVVlteWFtZVVpeWF9eWVxZUldSWVhZX1lZUlRVWVlZVVdZXFVUWl1dXmFiYGVkXV5dXWVhYmZkXl9kY2BcZ2VoZmRiYGVhX2FhYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFNXVVRSU1dRU1ZUWFhYXl5YXVtVXV9YX19YXFZRWVRZWlphWFtUVlhbWVpYWVlaV1ZdX2BfZGNiZWVeYlxgZmJkZmRfYGRiYVtmY2hmZGZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaV1RcVVdXWVdWXGBhYWNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVFJWVVFTVVdbW1xfX1pfXFZfX1ldXlleVlNZV1lZXGJZXVVWWlxaW1paWVpYWV9fYGBkY2RlZWNkWmJmY2dmZV5hYmBjXWJjaWVkaF9nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVZYV1hdX2JhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZVU1VUWF1dX2BgXWFdV2FeW15cW15YVlhXW1pfX1teV1hcXFxdXVtaXFdaX2FeYGVkZGZmZ2NZY2ZlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpZWFpYV1tbWltXWFpUWl1cW2BcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9dXV1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBXVVdYV1ZWV1ZdXV5hYmFfYl5ZYV1dXllcXVlYVVZbW2BeXF9ZWV5dXl5gXFpaWVtfYl9iZWRlZmdoY1plZmdpZ2NfY15gZmVaaWljZmljZl9iYmNhYGBfXV1aWFtZWVhYWllXWltaWVdZVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW1xfXWBfXVtgZFxcWFpiZWNhUlxZT1hWWVtZWVdaWmBeYWJjYGFjX1xiXV9dW15dWVlUWF1cX19eX1taXl5gYmJbW1dbXWBiYmNlZGdmZmdlXWVnaGlmY2FiXGNnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYmBjYmJdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeXl5aWFVbXlxcYWFfXVtgYWJmYl5bU1xfYGNkZGZlZ2dmZmZgZmdoaGdkZGBbZmdeYWhoY2loZmNgYmBjYl9fX11dW1pbWVhYWFZaV1xbWlZWVUxYWFxnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIeJh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHt7e3t8e3x8e3t7e3t7enp7e3t8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKh3NxcnJycnGDiomJiYmKjI2NjY6Ojol/f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyJcm9vb29vboWNjIyMjIyOkI+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXp5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx6enp6eXl5e318fHx8fHx9fX1+fn19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnZ4eXp6en55eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3d3x8fXx6fXt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d5fnx9fXl9enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3t+fXx8ent6d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt9fXx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoF/gIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl3eHp6enp7eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYKCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGCgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgYGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYKCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKCgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qKi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhIWCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYWEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHR3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uIioaGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLioqLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoGCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYKDgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGDgoKBgoGCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgYKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWFhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkZGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4KAg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWFhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+NjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYGAgYGAgIKBgoKCgYGCgoGAgoKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOCgYKCg4ODhIKDg4OCgICAgoKCgoKCgoODg4KDg4SCgoKDg4OCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWEg4SFg4OEhYSCgoKDgoKEgoGChoWDhYODhISEhoWEhIWCf319fX6ChIODg4ODg4ODg4SEhIOChISEhIOEhISDhIODhYaFhYWEhYWFhYWEhoaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMi4iFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIOEg4ODhIWDgoOEhYWGhYaGhYaHh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoaGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eFhYeFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4eGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CBgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhIODgoSFhIWHh4WEgoB/f39/f4B/f3+Af3+FhYaHiIiHh4eHiIiIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aHhYSDhIWGhoWFhYaGhoeHhYaHhoeGh4eHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OChISEhIWEgYCBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIh4eIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhYOFhIODgoGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiImKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWEhIWEg4KCgoKCg4F+fX5+fn5+fn18fn19fYOHiYqKh4eFhoeHh4eIh4iJh4iGiIeHiYiEg4SDhYSEhYWGiIeGhYOCgoSFh4aHhoaEgoKDhIKDhIWCgYKBgYGDg4SDhJGSkY6PjYuHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWGiIuKhoWGhIKGhYGEhYODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GCg4SFhYWDg4WEhISEhYSFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYaHiIeGgIGBhYODhIWEh4iFg4GAgIF/gYyGg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICBgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5/fnx/h4ODgoOCg4F9fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF/fX1/gIF/f35/gIB/gICAgX+AgoCAgoKBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCBf3x9fX59fX6AgH59fn17fX6Bg4OCgoGBf319fn6AgIB/fn19fXx7e3t6enl6gIB/fn9+fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36AfX1/gYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f39+f39/fn1+f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZKSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgIB/f36AgYSDgoKBg4SEg4SAgYCAgYCBgIGCgoOBgIF/gIKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp5eXl9gH+AgYGBf3+BgH+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf39/f4GAfn9/gH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDg4OCgoKBgoF+fn19fX5+gH19fX19fX19fHt6eXl5eXmAgoKChYOAgoOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4KCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeIh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgYB/f359f35/gX+AgoGFhYWGhoeHhoeHiIaHh4eGh4eHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgICBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fHx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgoCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYmJh4WGhYODgoGCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoOEg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgYCCgoCDg4SEhISEgoSDhIWChJGRjYuMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4WFhYWDg4OEgoGDg4KDgoKBgICAf4F+fn5+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42OjYiIh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/f4B8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICBgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX19fXx8fYB/gIB+gH5+gpSRi4yNjY+KhYaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317en2AgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4d/fXx+gICBgH9/fn19fX1+e3t9f39/gH1/foCMkY2LjI2NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn9+f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19fn9/fX6Afn5+hJKMjIuOjIuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gISDgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yKioyLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKAf4CAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t8fHp6fXp+gn+Bg4SCgYKBhYaFhYaGh4WChJGOjIqJioeHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn59f358fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJiomKiYWIkY2Lh4iGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH18fX19fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uKiYyQjYyIiIaFhIOCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+MioiIhYSEg4GCgoKCg4KBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgYCAgYOCgH+Bf31+gH58f3+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl6eXt7fn6AgYOHhIiNjImJhoWEhIOCgoKCgoKCgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKFhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn59fn6Af319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiYyJioeFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGEgX5+gIB9foB+fX5+gIB/gX5/gH9/f4B/fX5/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyJiYeHhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX1+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99gH99fX59fn59fnx7fHp8e3qAhYKDhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn19fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIOBf3+AfoCBfoCBf4B/fn5+fn5+f35+hYWAgYB/gIOBf36BgH9+gH6Af359e3p7enx7eoKDf4KCgoKDgoOCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOBf3+Af4F/gH98e3t6fHt8gYB/gX9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OBf3+BgYCCgYGBgICBgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fn2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSBfnt7fHx8fX19fn16fn1+eX5/f3x8fH59foGAgYGBgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChIWGg4B+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhIWFg4ODg4ODgoGCg4KBg4J/gYB/f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH99gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gIGAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3Zxd3lyeIWFhYWDhISCgoOCgYGCgYCDgYCAf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGBgX5/fn5+fX19f35/fnx+gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgIB/fX5+f4B9fH59f4CBgH9/goB8gH+Afn+BgH9/fYB/fn9/fn19fICAgICAfn9+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYOCgoOFhYKCfn19e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzcHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgX1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39/fn18fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WHhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKMenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX+Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt7fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKAf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+BgIB/gIB/gIGBf4CAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGFg4OEgYGDgYKCgoGAgICCg4KAgoKFg3+BgH6Cg4CAgYCAgH+AgH+BgYCCf3+AgYB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKCgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl5fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX17f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgoGCgYCAgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIODhISDg4SDg4KBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYKDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH96e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKChYSEg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnR9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4KDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9f31/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn91dn+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoKCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISEhIODhIWEhISDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx8gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgIKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+fX5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fXx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYuJhISDhIWFg4eGhoSEhISFhIWEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeoN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgISDgH99fX59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfH9zgoN/g4N9gX1+fn1+goOBfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9gH99gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeHiIaHhIaGi4mFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foN0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYaHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhoaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISDgoF9f357fHt+e3x8fX9+fXx+foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFh4aHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGhoWGhoWDgoWFhoWFg4WEhISFhIWFhIWFhIaHhoaFhIaHhoSEhIWDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn58fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYSIhYaHhoeGiIaHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaEhoaFhoWEhoaFhIOEhIOFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4aFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEgoSDgoSHg4SBgoSEg4GAgIB7e35+fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH18fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoWHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYWEg4SEhYaGhoaGhoeFhYeFhoWGhYSChIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eGiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODgoKDhoGDfoKCg4CDg39/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYOFhYaGhoaHhYeGh4aHh4WEhYWDgYOCgIOFgoN+gYGBf4OBf39+f35/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYWFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHhIeFhoaIhoWHhIaHiYaGiIiHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYWEg4WFh4WHhoeFhoaGhYaGhIOEhYGBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaFhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeGh4iJhoWIh4iHhoaHhYSGhYWGhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OEgH+BgICDgIOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH5+fnx7e31+fXyIhoWGhoaFhYWEhYWEg4KBgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhoKCg4N/foCAgIF/g4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18f359fHx9f358e4iFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WDhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg39+f4B/f3+Df3uAfX1/gn2AgX1+gX59fn19f3t/fHt6eXp6eXp6fHl6ent7e316e3t7fH1+fX2BfX18fH2Af318hoOGhoaGhoOEgoWChYGBgH9/gIB+f4CCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaGhYWHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCf319f35+gIN+e398fICBfYGAfX2DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHx7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5+gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDg4SDg4B/gIF+fXx+fnx/g318fnx8gYB+gn99f4J8f399fXx8fHt7enp6enl7enp6enp6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIaEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhIWFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfX2AgX9+f318e3x9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo7ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1NXU1NTU1NTV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2tra2dnZ2dnZ2dra2tra2dna29vb29vb29rb3Nvb29vc29vb29vb29vb29vb29ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqJkpmYmJiYmJiYmJiYmJiXjIuKioqKioqKioqKiouGgYKBgYGBgYGBgYGBgYOLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTUWJsa2tra2tra2tra2traVVTU1NTU1NTU1NTU1NUS0NDRENDRENDRERDQ0NGU1NTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1ZlcG9vb29vb29vb29vb21ZV1dXV1dXV1dXV1dXWFBHSEhISEhISEhISEhHSldXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJhb3h3d3d3d3d3d3d3d3d1Y2JiYmJiYmJiYmJiYmJcU1RUVFVVVVVVVVVVVFZgYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs7Pzs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy83Ozs7Ozs7Ozs7Ozs7OzczMzMzMzMzMzMzLy8vMzMvLy8vLy8zMy8vMzMzLzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7O0dTU08/O0tTPzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tfX19fX19bX19fX19bX19fX19fX19bW1tbW1tbX19fX19fX19fX19jY19jY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7O0bCCg5PN0qig0M/RpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8mburibsLeeo6fWr5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9HDoo9/icWempOdwJ6YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv56KqNO+mKGctJicop2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P0bqkrZyhtJmWrbmGnpavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz9HAoJ6TqZCbgaCWeJuEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0qawrp+An6iInHmfqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHJ18ScgrivppyKva2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXFjZ6gn5mnl5edpaeWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HJwaGtoaDBoqukm9Cfq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09WrjY+p2MWQjbfXwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MG+1dLUx8PW0tXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHU1dLS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ubm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMj4+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhRSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxkY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGdiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3Npc2NpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bm1bYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtoZ3VaZnJ3c3hmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3YmJgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lodG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMXJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZHRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8O/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7q9wLm9urq0v7i1t7Ovu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2dhXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcvGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdWl5cWVFFRENNSUFEPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBw8O7ubO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG1oXF9fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d21wYF5lXVtUSjw+P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3srKytLK3vrqztbK8ury2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdTkhBPz1IQ0ZNRD83NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq2tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNcZlhcXVJOTUE+SkJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKx77AuLm2srS2s7SvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdWmpUXVxPTUhERkxBRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u7+/ubS0s7GxrrC5uba8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIP0hRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmura+ysrq6t7e1tby0r7Srtrq4wMTBu7W8vbiyrbOwr6yutraytLSvqqSenJycnqion6CoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWjm6OclJCMjo+Qk5CXlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFBoVFBOR09NTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGwrq+yp6avo6+utcG6tbeyt7aytKuytK6qq6+wsrOtpZ6SmJSPmaCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsKOlp56gnJWTj4+RkJiQlpWYl5+Ym5mbo5mXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7REA9Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaOkrqWsrLS8t6yysa+xrbWvr7O1qqetrKOcmZSOkZaXmZmcoKOim52lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZaal5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh6YGJSVV9ISUlLU1RJUlBMOD5CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6jqK6trKurr6qvqZ+XnqWenqWmpKCin6agoq6rrK21sramr7Srqaq0sbCwuK2noZydmpSYm5qRjpGVkYyPjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrbGxtKmxr6KZnJ2eoZibm5qYmZuUlZqWmJyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1pZTVFKTk5VTFJMQTc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho56doJ+joKKvrqyvsay2p62xraamsK6trLCnoJ+ioJeRlJyhnJmYkpOfnaKkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwp6uosrW3s7essbSjoJ2ln6uhoaKgn5qYlpWfm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTUc9Skg4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjpOemaidrp6nnpyhnZ6amZKZnpyioqCgnaKfn56fqaunrKmqtKurraulpauoqqyqpZ+emZKSlJiZlpaWjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oauiqaixqaqop6eamZ2aqqafmaegn5+nqKWknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pd21obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKagnp2dl5iWmZ6bnKSfn52knZqdnKSipKOiqq+sp6mjoKGsrq6qq6agnp6ho56enpudnJSTlZSenpiUhp2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK6nsa2xwra4wsbAyMrAyr+wubm9ucK9uLO7xcO8wru3s6myraqztK+zrqmuo52rp7axrKKvpaCjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHJra3VycGdXXFFFVEhESU9IPkVBM0VIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpZ2Vm5ufmp6cnqWmp52goKuxrqekpKOgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczLzNLHvr/Awr3HxsK3w8nIwsDFvrm0ubq1urewtbKqurGuu7a+u7qqt6yqqri6tLuurbijpaKep6Wio6mmmZufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR9enJrZGlveGplWltGSkxERFNMREJENzo/OzU0OTk3OD4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlZqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkp+fkJafmZKalp2bmaOhr7OpoZqdnZ+fmpeYl5KMj5aXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXR08zTz9PTzMrCxcbGysfOv8jQy8bExsTAu8PAvr6+tb2zrb6/wsPGxMfDrb64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURCQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6yen66mpbGqxcbMzs2/sMKppaitraqhnaOfnJ2aqZOZoZCOoJONlJKXmaSxsaukoJ2gm5mXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LU1dPTyMzHzc3J0szN083Ex8nJwMbLxsjIxb7Cs7PHxMvKys7Fyb+9v7zBx8TMzMjJv8O/rbCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/enJ1dWdiZ3ZpZFZXUURNRkBJUUI9Qjw6MjNAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo5+ko5+gpKyblqmWjZeNjI2XprCupZ2enaGloZ6blZSWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HS1NTSz9HD0NPW19XW0svJztDLxs3SydLV1tnV19PW2M7Syc7RzM7Qy9LPv8fGycPLy8vOz8XGx7a/yb/SzMvPxcnHv8PCx87M0NDPzMrHzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHdzdm9jYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU6NzY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopuppqKmq5qjsLGpqLXQ1Nfa0sfGy7S2wsaytqmipaahoqu1p5qxoZaVjJCmrauclZihnZuhop+cnZuVindpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNHO09fW09XQz9LT0cnT0cfQ2NfY0dfS19nV1szOz8nM0cvO0L/FwcfFzczQ0NHIy8zAysvF087LzsjEycbGyMvK09PQ1c/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NDQ6PTUyNzU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr66qqqyepq64qKu32NTV2dnRztDAvMzJt8Cvp6upo6SxtrOjtqqfnaGqqaGYlpiam52hnpqdnpR+cmVjYl9fYV9fYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvTzdXU0crPzNPW0tHWzdDV1dHF0dTK0NTV1s7S0NjY2NfLyM3DyM7Mysu/yb/HyM3Nz8rQzc7Lzs7Hys/Qys7KwsjGyczKy9HSzNPR0M/Pyr3IubCtu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bua2JlbnBhV1xaSUZGRExXRTtAPDMzPD04Njg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snnri2tbWtpa2uvrSxwNnS19rc1s/Ny8PT0MLCsqutrqyms7G4q7O3qaOfnJaUl5uen5+dlJaXlYlsXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztPLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHTy8vP0dPJztHV0tXVysDJwcXMwsjJwszCxcjJys7KzMzPzdPLxcfPzMfHysTGwMXJy83P0MbPzs3NzM/Fx8C3ub3Cw73DubKzvrC7w8S1qZiloZmWkZWVkouUjZqRlJSPj5SCiYV4cHFrbWhgYHFoWFhoVk1HTElQUEI7RD47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfDucvV1tna29jNzM/J1tbFxLiytqqkrqy5ubGywKGXjo2YlpCTkpGWlpaQjHxlYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycTJycbGv8PFzs7HxcfNytHIy87NxtHSz87M1MrHys3Ox8fP0svQz8W6xL7GybzCxsjOxMLHwMbNx8PLycvPx8PDz8jGwcbHw77Ax8vLy87CysvIx8vPxMXHu8fCyMjCz8C9vL+wwcrHur2qsLKnpZ2inJiQm5CkmZeZkZWYiY+Cd250ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJuls7Gsyc3KyMS+vbrNzcbQ1dXZ2tvY0MrQ0NLUysW6vr6wqLervrm5s6WSjo6WkIaDhISCfoWFf3RgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6v8O7u7q5vsjGwsPAw8fKycjKx8HFy8bIy83JxMLKycHCy9DEy8i/ucG6xce9v8bPysO/w7rJx8i6x8bEysC9wcvGxcO9xby8v8PEy8TEvL/JwsXH0cXAyL/KycbHxtDDw8bDr8TLx8TKt7+8urSprKWlmJ+YrKOhpZqjoJuUe3ZydGZpWmFubVpbWFFETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPHzc/OzdXQ1tnY2dDN1M7P0MvEuMbBtrW8scC3uq2RjJOXh3uAhYaAdnh1cnBfWltdYGFiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbBsLa6srK0srHBvLu7ubjAwcHFvr25vb+5xMrFxsK9xsC3u8TJv8LJu7e6usXCvrzBzcLGvr21wL3DurzGu8K5s7zFw8LCtr+1tb6/usvDvLW6yLq/vcvDwcXCxcjFyMXQxsLMx7LGycPOzcHFwr+9srews6eoqLmxpa2wq62slHl2d2plaGBob2NWXllKRUpGSEtBRkJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc7P0snRxtbV1tjOzNDIzcjKxb7KwbK1ure7trCRjYqLhXmAhoaAfoR8dHVkXFxdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rAuK2wsKeqraynuLS2tLOys7q1vbG3sLSusrvCvMHEvL+6tbK6vsC4x7i0u7XAwry3vcbAw7u0rrK2ur6zxLe7tau4vL3AvbC6ta+2urLFvLauu7+0trTFvL7Dxb/DxMXHy8XAxsa7x8u/z8nHw8bBw7fDvr22ub7Gv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkNBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDNzsnLyczKy8bRz9PRz8jLxsrGxMC9z72zub25uLecjoeJiXt5foaGd3iCfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7m4tbCrrKeeoqqnnquss62pq6mzrbawsqiupqyyvLq2w7m6ubCrtbm7tMK6sL+wvby7tbvHucK2raqosLHAtbi8r7CnsbO0u7yrrbWlrrauurGwqrmvrbuuu7i7v7+9ucK/xsLFwLzGwcjLuMXHxb/Hw8O6xMbCu8XJzMuzucK8urKIcnZ2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs/SzMTGwcXQyM/CxMfBxsbFxczEy8zCxMHIwbq8u8q3tLy9trWrkYmQkHx5foqFenuEgXduXl1dXV1fYF9fZGNiY2NiYF9dW1taWl1aWlpaXWRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauto6eiq6msqrCjpp+qrbW2sb25r7evqK64tLS8uLO8rre5tLG7wbHBrqWpoqyxsrOnvKqrqKusrbS0pqiuoaSuqbKlp6iupai3rLCyt7m6u7G8vb6+xL+1wcHHyLe/wMW3xMK/u7/Ew77EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWlJTS0ZGRT4/QDk3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7rEsLawm5mVnJiqqbCxs7W9r8bR0M3EyLu7zMPMwLzKucDGwLzMusPHxbq9xL66t73Guba5u66ylYOJjYF7foB+eHR/fHN3Zl9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSepJuXkaGjqqOin6Wlp6Ssn52bpKassq+2t6ewrKeqtKu0ubC2tKy2uLGvurmxt6Sfo5+nsaerqLmqpKanqKeyraCnpp6bpKasnp+npJ+gsa2trLK0srOwtby2u8HBsrq+w8GyubrCs8C9v7W4u72+vMLHxMLDvr/DoIN3cGthZV9rb2BVWV9ITmhPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbu+taCelJ2hprq2q7Ozu7PF0MnMw8e5uMnCzsG6y7m9yLu3yLu3xMazvsW8t7C5wLuxs7ewooSHh4J9eXZ0b21rampxaV9gXVxcXV9gX2FjYmBgYGBdW1tbXFhZWFhYVlhbXV5kY2JlZ2dnam1viJ2poJeVmqGWm6KYlY2eoaKmm5+fo6Whp56aopufqrCtsbWiqaqpq6yktbitt6+ssrSusrSusKqfnZ6jorKkpam4raGmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7KyubK9tLaxsbW0v7W9wL3Dwbq6vZeCenJrX2VeZGRYVFheSVddS1BHSUpGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xtDJycHHvLzFxdDAvMq7u8G7tsW4tcHBs8LEvK2qtbq3qLGzqYuGiIB5c25wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWltZWFdXV1dYWFhbXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaQnKGhqJ2bnKWmoaSbn6CamK2ura6yoKWiraunobWwsbGsp66yp7mzprWhop6ao6KtoqGptaqio6adpaajlpiel5ianZ+Zl52cnJusoaumo6Smrauys6q0sLKqsrm0r6mvsrKyt7Otqayusbewura5vb+2srGUhHl1ZV5lXltZVlNaVUtbUUxJRUhLSUI9P0FBQEA6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vb+znaWjmKWxwrW2va20uMPNycjBxrjCwcjQusPGwLa8vbbDura/wbW7v7uqprG7saiyr5t9hYWAeXBxdHFoZmRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnaicmpqqpq+wq5ujo7eqoJ+uqLappqassKO3sKO2oKKbmJiqpqGbrLivoqGknKGfoJOVoZSWlpuYl5aXnJSfqZ2po6Gdo6qqsK2otKuqpq2ysKWqrrKxr7Curqenp7KusbSvvLS5tq6jlIF5dWReYVZZV1NSVEtNXkxQS0dHTEtFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Oqu8C9wLmutLjCzcjHxMW+x7rKzbXExcWxv8C5wMG6wMC5ur23qKixu6apoqWJgX54cmpscnRwaWhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtcWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKWmnpyfpJ+qr6afoqO2qKChoqizoaWnpK+lsKyrtJ6gnZWUqaGhlKyxsJ6iop2emJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpKukpbCnpaOrq62lqK6vrquoqqqzpaarr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFFHUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuyt6yepKett7u8wcW6sbm1xcrLwcTHx8m4yMa1xcLJr7q8wrzDwMG9vLe6tqansraeooqZiIB3b2RiZ2loZmhqZ2ptYF1cW1paWVpcXVxbXF5fXFpZW1lZWltXVVhXVFRXVVNUUlVgYF9gYV9gYWNkaYGUk4mRjpSSk5yUlZajmaCWnKCloa2lo6Oio6GbqqqlmZ6lsamgoJ2kqp2noZ6srKmorayioaGUl6ObnJCrqbCbn6KenpeYk4qeko2Sk5WPmJiSm6GinKSgoZWgoaOlm6OrpaKkqqOrrqStsammpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlVRRlFPSFpcT1JJVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7KwrLKtnaenr7m5s8DIurXAr8bJzrvCy83Jt8u/tMDHzLC2vci7wsfEvb+3urWlq7CunZqHjoN8dWlqam1oamxua2ttZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eXl9fYmRtjo+EkYaPkY6Zk5SSnJqinJugp6iqp6qlqKSjmKSupJSZpa+pn5uYmqCerpmbqrOfpaaeoqOglJOblpWSqKmtmpygoaCalJCMmY6LkIySjJaUkJ2hoKOcm6KVm6CioJeiqKOiqKugq6+krbelo6OirK2pqKuvs7iyvbWzq6+Yg3JyaFtYWVNVUkVZTFBcWU1UTlBMUFJJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62os7auqaivrZupqKy3tqy8yru2v6zMx8a5ws/QybXGvrq+xsu1sb3FvcPGxL3Bs7mvpquvq56XhoF3eG9uaW5ubnFnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/i5CKko2XkZeZoqCbn6qppq2qpq+ip5mfrKCVlqSop52Xj46Zna6Wl6eqmZ+dk6WgnZGQkpKSlaeqpJmZmp2dlo2Mi5SGiI2DkIuSlJCgnqCjl5WflZqgop2Tm6Wlp6iooLGwprG8p5+jrLSrraewtLC4tcCxrbGrkH1wcmJWVFVOUklHVlFTUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqaisKudqqepsrGktsa0ubqzy8a6vMPL0cyzubq+wMTHtrS3vbO7vMS+wrG0rrGusaycoohraG5vcm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWllZWVxcXWFqgHp/domOh5CJmImUlJebmZ2om5+qpKSqnKeYoKWbko+eopqXloSDkZqjj5OinJWVloehmpqTi46Kj5mjp5yVlZebkJKHlI6MgYuNgJCKkpKRoZqfoZWTmJiVoqWYjJmkpqimoaC0sqeyt6Gdoresqq2ksrKmtby1q6uxo4h4cm1dTlBRTE9DTk5OUEtGTk5LSk5NUUhNSkFHS0hIQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKmloKmlpLOqorLDtbWys8fHuLvEys3Hta+8v7i8xLOzrrairbXEuruvqqy0r6+gl6h9XmBnc3F2cWpuaWZoaGpfWFlYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWWFhZWFtdYW9zdnCEiIKHgJGDjoqUkZOdoI6am6Kgo5iklqGblY2HmJqMc42CfY2WloWQmZCTjY56mI6cjIKKf4mYn6KekJOYloSOgpN+fnOJjXqQhpKQkJ2amZqQlY+djqKjjomaoKGko5uitK+sr6yfmKW5pqWwobCunLC7qqmvqpmBdnJiVkxRT1BNQ1NOTFFNQ1BQSElOU01ISkpESkxFS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd3t6GjtKilpaijpqWmpqazp6W0wLiwtLDKxrm6ws/Hv7WvvcOvsceyraeslaSuv7ixsJ+nra2rlpWicldWX2hnaWhpbmNqaGdiXFhYWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeKk5Cel5yVlJaUjpaJf5OJXztXb3uLk4l/i5GMj4WGcoqEloF5gnqFk52Ug5WOkI+Chn2SeHFvhYx9iYCQjY+XmZiTio+InIiel4eHlp6aoaCXp6+oramonpattKKmrZisq5ins6GpraOSfXFtX1pOU1FWTERUSlBNTEZPT0lFTFFNS09KSU1QRklIPTc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5eLego66hpqaqoKepp6KpsKintMG5sbWwycO5tL/PwLqxsbjEq67Jrqejnoaborqtp6iWpqWkoZePlmlRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXqCdFBCQH+VkZF9iZSMhIqNmoyWlYqSiIaVhnmIf2BKUW54ipGEfISMiYR/f25+f5R3dXZ4hI2ZcFGNiIqGe354lHZnd4WHfomIlYqNkJKWi4OJh5SEmoyBhJKblp6clKSjp6mlo56bsauhpKSQpqqWoamcoqaoiHRrZV1bSFFRU0xJVU1TSUxMUElHRktOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj03Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXa2nKKnnZ+hrqGnqKWnqK+sqra8tri2s8K8t6i6ybm3qaq3uK22wKqim5ODj5myn6KajaCWmZSRi4xlTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+GgXuFjJKBkpmLj3uGj391f3hzbnVwdI2NgXl9iaqFeXpodnuOcHJteICKjJJ4eoB7gHZycpJ3Z3WEhISEepWJiIqMi4B/g4qMf5ODe4CPmJSblZGfnaien6CeoKmln52YjKekk6CflZ2epH9xZ2BcXEpWT1FHS1hST0pMTVJKSkpNUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLi8yMDAvLSsoKCkuMTI2MjE5ODc5ODc3NTo8PDd2rpijoZicnrOpr6mlrKywsaq9tLK8uLa6tbKgt7uzq52fraustbOlnpaSmIaUpJadjIOXiY+JhoaDZkpJSklHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhZWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gXZ4f4mPfISYkoFyh498dntva36tfHOQin97hpKAfX90ZnZ8hWxvaHN8iYyHgGx5cX1wbXWPcWhxgH2OcEOKhIKDhX53d3qLhX2LenV+jpKPmIqSmpujl5mdm52eop2WjYqkm4+dl46WmI51bWtlYVlXWFRRSlJVVE9QTlFWS05LTk9KUU9JTk9LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn56WoKavrK6rp6mwr7GsvLisu765s62om7GorZyQl56nrKekm52TiJZ+jpWSlYB8inqFgH9/gWVKR0hGQkBDRElMTE1RUlBRU1VUVFVWV1dXWFdZWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hvfHmIj3l8i4VvbYyReHN4amp/gnKWkYuBfZZ/SZKYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmhtcH5zjYiDhXp9fnt2b3RzhYJ5gXdwfI6MipODlpeYmpCTlpeZl56XjIOJn5GKkoyGkJZ9bGhtbm1XVVdUUVFZT1NVVFRYVU1OSE1KTU5LQ0lOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6kra+iraqota+urLS/q7zCv6ajmpWlmJ6OhYyWoqSbmpSXj3aRfoWLkI98eH50fXh1d3xmT0VHREA8Pj5BRkdHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpyQZlvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4h1gYiGdGyZkXRze2prnY5MeYSSiYSOZzF2hnNsfn2DdGZldH6EhIWAZmlsdWtwf3xncHB7bpKNjntzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlY+XjoB5iJeIhomGf5CHdWlpbmdjV1FZV1hZW01QVVZaWU5JSUVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LSs1Nzc1NDc4aU84OzVukoiZkZqWpKitnrKeprquq7KwwrK7w8ebl4+UmYuOhnqFkZqWj5KOkol0ioR3i4+Mf3Z3dXh2b3hzaVVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bXGDgYWBeYSGhnlyoJR0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8hntzjK2NiIBoZmJpbXFtb4N1aW9YdW+OmpF2bH96fG1xbXB/enN1bWJ2hH+GgIWQkYqLiZGLkYyLj4N1eIuPgH6CgH2PeHBubmpeWltdW1lYYF9TTltaWVhMSEpGSkc/Q0FCRz9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW0qK2xrsGzusHGl5CMlJCBiX1ugpGTioSLiJCIdoSFb5iKjH95e3txe3R8a29eSlBHPkA3NDU4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8fYWDf4x+dqKZeX6GgISZhZucYYaqn52LgpCNenaJfomHjnOKl4+De1xkcXR6e3eKbGdpYXlvhY+Cem6Bd3OEenBzeXdrbmldd4d9h3yIh4+Ai5OXg42GjYZ9cYR/hHx1d3t9iHRtcXJkZV5aWl1TW2ZeWFFVWVxWR0tLRUxHP0ZAREM/QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMd4l/lIyRnZ2fppGgqp+wqa/AsbvGupaPkZSIeoZ2a4CMkoN+i4WQjXmEgnWiho1+foKAc4OBfWx5bFNYTEFFMzExMjY2Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXtxfI+Me3yJhn6Xh3ahmYiHj5KUpY2sqUiGra+vioCAk4qCi4KEkaiHgJiYipxzbHyBhod9jmhnZ3h+bYWGgYVxhIZHa4B3cXl2aG1rX3d9g4h/iIWMepWenIqLiZF/e3WLdnx3bW93fn1xcXBqWltbWmNiV2dlXFVQUVhaUURMTEdPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFh5GPlpiSl6CdrKGmuK+zvbSXjZKLmIt9dHB/ipN/fo2DlJV9hn+HpYeJgIOIhnmJi4B1hXlfY1ZMQzYwLi8yMjEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiZGBmpaCoKGYlZuapa2Tmbuxp7vHw6eKjKGljpOJgZB7coOen5GcfnaFhYuPh5BpaG+DgHSMhoSLcYaCd4d/e3aFfW52dWeBlI+GiYiHiYihq6OWiY6YgHuCiXp6b2dreH13fHFpY1xZWVxoXGFmX1pPTE5YU1FJUEtETkdDSkRDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnZwZ3iDe4CMgIGQj4uamqScoaymq6+wl5KRhKGUhHh3gI2UfX+ShpOWfoqBkpuOhIGCjIuCio6EgIqAbXBqXkNBNC0tLy8vLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6ChkqOppaOsk6i2oqfBwq7Ir3i6lJp8jKGemISThIKPoZ6TmZKEioWPmJCWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGXh5OJj5CXpbapm42VooOHk4R+f2tqbH1+fX9xX1tiXllmalxsa19YS0hQU1FOTUxGSVFERE5GQkNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwg3B1h3F2kYZ+l5aalJ+fm6egqpaTmJ5oZqSafoWTknqBkomSkn2LhZmSkYOBgYuOiYaRh4SIhXh4f2hOUj4vLy4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMm3yNHPvpugcGmrqZ6Ek5GFnKCampmnkZGIlaGZmnd6fpSYkaGSlpeBlJ57dpWSq7OJjZegfZWenI6Tlpqko6e2sJ2RmaiIl5COgYhsc3N7fHluZl5bX15hZ2NfZ2dcUkVLS1FPSUpNRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTQ2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYzQUBpYl5QcXVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mImI15go2Ljo18ioaPkI6Bg4CJjImFk4WChomBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49RkhAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKiptayxt7Kyrbuxs76cs8Ssu8nLuMO/t6WjsLKsraqjipaYhaWmoKKYgqaZjaKqp6SHhZOjoKCqoaSpjpyxi5Wjp7e7nKGjsJOjnaOekaSiq7Cus7WilaaqiZqKkoqVent+g3tlXmZaY2BdYmJeZmdfW09ESUhUT0ZITEZLR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGUhYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMj4uKe4iDh5GOg4WBjIaFiJKGgoSJhoeHh3FuYUBFNjQ8My8xMTAtLCstMS8tND9EQU5WUVJTVVVXVU1cUUdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHxKuzxbattMCzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsLGbmZKan4mnr6qklXefpJehq7GzmJapraiutbuyuqyvtaKxrLK1vLi1rrWgqKijqJupsK2zuri4qJy4qY2lj5KToIZ5gYByV19iVWRgYGFeX2ZgW1VKREVMVlFJSkpFSkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxcWlFjZFd6dXGBlX2EhpN2hn6AjXu/u6O8grSUk46bj4SIj5OKiXqHgYyTjYeFgY6AgYqPhoCGiIWKh5F6eW5dV0BFTjw2OjQ2QUI3NjQvLzZDSENRXE9RVVhVXFdPX1VJS0pBQD5HS0ZGRDs+QDdENz9CSkpFR1dUUF6PpK2ksrTDtrjBzMq2u8S9s7TBt7jCtb+wuHSxtKa6xaSwxrmxs7K0qKS2tqqxoKKWm6KSpbGtpa2sp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6uL+4uri6ra2xprGqrr6wvbzCw6yZu6iVro+YmKuJfoB5aFVhX1ZoY2hkVltjWVZUSkdHTFJHRElKQUlEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVZad2pwf4+EgY6Fb3tyeIhiuaGZo4mVlJaTlJSOkJeSh4d7h4GOloqBhIGKenyLiIZ8ioKBi4SVfXh6dWVPXGRHRUw6UWRgW15TRj87SFBEWmNRUVlZWmdaU2BhTVNPRUE/SUpIRUZBQEM8RDZCP0hHS01TWlRelK+4tbu5ycC7vcrNvLzBvLi2vLu3vrW6s8ZhdbKlsZqeq76qpairqqSisrWgq6eelZaemJ+upaenpZ6jk6KnsLOosbK8tsG908nJ08bCxczCysPBvr6/vLy4tLC5t7fDusa+xMmwnrqroqyPpam3iYB8blxeXlxVX11nZlNZYVZSVklFRk5LQT5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtKy9QPiguNDiAfTwyS4hxOT5DS0VASk1QUkxRXWhtbHGPjYaQc2xycnSI1cC1mqCNlZmZkY6XkpaWjoaIfYeDjZaKfoJ/g3l7i4SHe4t5gYqCl390fXprZXB2WV1cUGVlYmBlZF1bWFhcTWRtVVJtbl9vX1hnZVVZVEpEQktLSEZISEhIQkk5REBIS1RUVl1aXJO5wLm+uMbBu7nKy7u2ura4ubS4tbWutreZZHWpnq1wXqKtnJihopuknqullJ+fkJSOlpiXqJ6mn5+amYOjnaykqrCst7C8uNTQztbPyczSzM/OysfAwMLKvcG9wsDFxMbKwMnPtKS8sbWwnKy5vZp9dmlbXFlXW19YYWJRXGFUUkxDQkZHRTxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LiYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RHS09EUlxaaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQi4l8gYRze4qDhXuKdIGKh5V/dHt5bG11fGlzZWlsaGZqaWhgZmlpbVptdJetpL2Ih2dbb2hdWllUSEtPUEpLUExTUUhMQUpGS1BfX2JnamKXt8ewurS7vraxxce2sLmxsbuts7Goq7itjbaonpynmk6anoyPoJaRp5illYqTk4iRiY+Rkp2boZiblJaHnpmmmqyvqK+ns7PU1NTW0cvP09TO08/MxcLK0L/KycvJ0sjNzsPQ0riwxL3Euqa3u8Sif2thWlpbVl5WWWNZUF1YT1JDQklFQ0k7QUQ+Qkg/QEI4O0Q+QEk9NTY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CRmYNocm95eYOhqp6ml4ybm5iLjpWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfnF5dWxweH9ye254c2xpgHBtY2lucHlpd31+y7/D36duY3huZFthYEpQUlVOWV5QXV1NUU5UUVVUXG5ud4Nylq64rLWosLarrb3Bsqu1pqW5p6yvoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSLg5SVl5eUm5CbmJmZnp2rrKSnoqysztLV0c3L0tPT0NTRzsjD1NHIztLT09fN0tHF0tbGwc/IyMOpv7jQnHZrYlpfW1ReUVxZT1BUUE5JPkFHQkNGPUFCP0ZFPkA/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bHdwfX6AoJ6eoYyNmZOUi4yTj5aFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBvd3Nsc318d3xzgnhxa4Bycmlwcnp5cnu+y5p/jbKEdnKFd2lhaV1DWlpbV2ZkWGVrVFhdXWBjXmN4e3+LgZmqpKSioKGppqqxuaumtKOirqKkrqKnsZ+JppuVk5GKko+IgpSJa5WijZmEgYZ+kYODk5esi5WOlZqOhZKQnZensKKgoKWkqMjNz8fCy9HT0dTSztPNxtbTzdTY1tbY1dfVytTazcrY1tHLrcTDy4hvbF9cXFZSV1JaT0pHSUpKQDs6O0VCRD1DRD5IQz9DQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKKgJ2VnpSFi5aJj4qJjoiPgHiElJmLjYiIi4l+g3hzfH2Eh3eAe4eRl4GEb3hxbXV/dnh9dIZ8eWyHdnRufXaFdXl7nbWMPEGLxqV+jX1qZVdJQ2VjZmNoamRveVtfZmhrbmlugYOJkYyen6CekZeZoKOkprKkpbKgoqWfoqmhorGch5+SkpORi4+Lh4SPhH6cnIyNgoSFepR/gqqWo4ySi5iTi32XipqRqrOYmpynnKa9w8W4tsXN0dDS0MvSy8nUztHV2tfX2NTZ2M3Y287J2trS1r/MzbR1c2thWldQU1BYVUVHSklGRT06NzpAQkM6SEVARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MiooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qj48OVFFQ0pUbG5vcGJxcXSGjX2XkZ6LfoeSgomGhYqCiH14hZeXiY+Dh4aHeoR5cXt7hYZ1eoaOjp16jXB9cHB6gHJ7gXKEh4Bujnp1d319gnV/fIeJsHRZqsK3jZKBcG5jPV5ocnBxcG53d4JlaW9ydnhyeouHj5OSm5agloiMk5yfm5+roKGsnKKamqCmn5+smYyajZGTjoV9iIeDhYuOoJmTiIOHfmyZeYSZhoiTjI6VjIZ7m4iTjq2qlJWXn5imrrW8qK29x8vIycvLz8nE0srU19jX2NfU29fT2dvWz9va0tbJ1cyTdXdlZFhXTlFSW0dDRklIPkI+PTg6PkA8Pkg9QEJBQUVBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEE8OjlEP0NHUmtfbWRiZmx2gIhxkZCbgHmAjn6CgYKFf4R8fYSYjoeMf4aHgXeDeW57e4eCdHqSno6hdo92g3R1gX50gIRvgZCCb5KFdXyBhXp2h3yJuMalw8q4gpacj3hwZU5lY4J6gneFoZCLeXp3e4SAfIR2bZSWlZaQmJGDiY+XmpeXpp2YoJefk5KXo56aq5aRkYuNk4OMhYmJgYaPkZ6cmYiFi4GFl3qIiZ+Xj4mOiouCfKGJkIq7oZiTl5qcqKalrZ6ntb+/v7jGyc3Oxc3J0dXV1NnV19vU19na29fb2tnYztvGg3Z2ZGZhXVJVVFRNS0RNQzs9PDw5Ojw/OT1BNz4/QD0/Pj05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs5OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVxpdHp5bImNknd2eot8foB/gH6Fe36CkYqFhnqFiHx1fnVtfH2HfnR/kp2Rn4OSfId+eI9+eYuKb4ObgXSZhn2CioV8fpF7kKmPkMOgvYybpJx9iYV9iXOMi39zppqcmJSFe4+RiYRpR3GhpJ6MjJGShYiLkJKVj52bk5SRl42MlZ+dlKGVk46OkIx/kI+Oi4SJkpaZn5+IjJSRnZCCjH+mmYiFjoOGhICkhoqLt5edkZSWoaagnZ2do662ubSrwMbK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbtnZ1dGdmYlRdWVJOTkhDTEM9PT45OTs6OTk8PTZAPj89PTk6OjszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdPPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PERSU1JYX1ZYZm1tbWmBjopxc3mKe3uAfH98iHt9fIuHgn51g4Z6c3pzbYF+hX53hpuhm56UkoCMiH+Yh4Cckm6IqYV7oIx8kY6DiYScfpuRio2jop+RpK+gi5GLhYuBk4ZXcq2Ln6ubkIOZnJCPjluDopGCjZ+TlIyGiIySkoyUlZWQjI+KiJabnY+VlpKMk5SGgIuJko6Kip2XmKOihpOdlaCLiomOnJCDiI+Ag4eFpISLkLKYnJKUl6GgnpmSm52nsrispb3Cx83Ixs/Lz8zO18/R1K7W1dja2Nra19bZ2p1seXFjY1paVVFVVkNASUM/Pz46NDg6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieGxifpGDb254i3h6f3uBfYd8fHeGhYBzcIWCe3V3dnSFg4V9f5Kmop+mopeKnZCUl4uKqJdyirKNhKiShJmUhZqMo5agmJOJm56ik6mwoJGVkY6OiJaMb423hJrEyLKcoqacnJiWkbGQZKTNx5WOhoeJkJKNjZOVioWKioaWmZuPkJSTh5WYhICPi5mIjpCrl5eko4iZnpaaiI+Hl5eKhY+NgX+Hj6WIjZOompeTlpihmJ+Zk5yaorK0paO8wb7HxsXIyMnCytPMzdSo0tHW1tbY2tTT2s5/b3tkYFtbW01IU1lCQUdEO0I+ODM3Ozw6OT42NDo6PDo3Mj86OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGOfXxtfoh4en57goKDf3d2gIN8bW6Lf3t9eHh8hIeKfouis6ejq7Oil6efpaSWla6ig5G4lZKzmoyhoYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmpehwI6jybirnKOmrZiSm52ynYWGqKOcmIWJiY6VjIuTj4iBhoeJk5iVjIuUk4eUmIaEkZCcdZGZspWWpKGHnJmSkIuQipebiYuWjoZ9jJieiZCQm5qak5iXn5OgnZSem6CxrqKjt760xcfEvcPDwMbNysnTps7M09LR1tjT0Ni6b3ZyWV5TXVROR0lNREFDRDU+Ojc3Oj88PDc9NDI2Njk3NzQ+NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdNWlxZSmZgO0iEi3p6boWGenyEeIGGgX5weHx+fW9zjXp+gnx4houJhoSSprusqLG9sKWts7Ooo6KwrIqatZ2juKWVraWXqa24p6Sjn5qpmKqkrrCqmpmclJaRl6CYmru7rsqhara4q7CUmZ+jrJOXvqNeqrKDioqNlIeQfI6OfYOGjo+UlYiIk5aMkJWNi42WmJOdmbSWlaudipyUkY6RkoyZm4qSnpCLiZafoYyUjZeZnZKbmJ6UoaCUnJ2lrqihpLO4rMLIxLW6vbzFx8fC0aDGyc3NxdfW0cvTn213ZVlXUFtPTkVDPjxCQUI4QDg4NT9HPTw1PDM1MzQ1NDU0QjQ5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRIYmBicEpAi4p+gHOGh32CiHWDioJ/bn18fX9wd4d3joKHfI2PjIaMmanCwK+9xruztMC9tK2rs7aMqLKurr2rm7ulp625uKumpqKipKOpr7Kxqp2cpJmbmJefoqalkqS6r6nAvK2usrmlpKh+iIacrb2wgouMi5CDjoORj3qBiJCNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpePkaCRiZSbpKyUlo+TnJ2ToJ2bmJ+hlJqep6akoqOwsqbBxsOvsLq3xcTDv82mx8THxL3W0M3EyoVwb15ZV1xYTEpBS0BFRz5BQEM7OjU+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVONzlHRD9DRlxlRmBpZ1pdXJOMjIl7h4yHg4x1h5GKgW9+e4J/cX6Be5V6kpSUmJCTlqezxsm/wczCw7nHvbuvq7m7mLO3urLArqXApKuvvL2qrqujo56nq661sKqcoKucoZyWn6+1p4ujurq2wbysqZ2zpaSolIWNqsPDpIKLj4eIhIaVlI15g42Rj5GhjIyUko6Jl5+Yk5mVl6agr5yMq5yNlo+RkZWVjZGVko+glIaXn6CynpSZk5+gmKSemp+boJSYnqWjpqakr62lwMTDrqi3tsnDvrbPssS/xLyz0crIwrRxdWlZVVlnUUxIQkxLS0pBQj1DRDw1QUU7OzM9OEIzMzIyNjJBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWk1lXGZUYmuZjZaKjIiTkIaJeYeUkIFygHuNf3iHgoKQeo2hlqiZmpm6vcfIycHSycvCzL3Cs628vqi6wL27xLeswamss7y+qrCqpKWkrK6zrba1oZ+vn6WimKOzvaqbqL3BpLa4r6yUsqysrJeGmqmmpZGCjJOlloqBdYqSeYWOkpCeoJOPk4yPjZSjmZaclZSjnqqekaWajI+Pj5WWiHyPlZOSo5qVn6KctaWQnpako6GlnZ2mmJ2Vl5qko6mnorKsqLvAw6+ls7fMv7mvxLO7vsG4rMLDwsCXanZeVVRZWEpKTElGRERIQ0NBREw6NERJOjs0PDhFLjEyMjQyQjI2U0hPPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+aUhfWGJaY2NWno+cjpeOnpKJin+KoJOEeIV/ln9+kIiKkYCWoZmup6SYwr3Hw8fF087Ozcu8wrewury0vcu7w8K2t7yts7+6va6vqKCpqLatrqmyt5qeraOnoZ2rt7iqpbC/xLK9ubSoq7a0rq6XlqWsqJ+RjZKyxaeWjnySlXyHkpmPqpmYk5OPkpWTpJ2TnZmToaOinJifmIuMj46diFqQl5eSl6SZZZiin7OllaGVq6upppueppaYlpiUoaOopZ62q6m5u8O0pbS1y8C4qrarsru4rqi4ur24gGhrV1RSU01FSVJMSz9BSEVFSEdHOTVGTTs+Nz1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs+QEJGQnBFaklSZWFMRqWUnJeil6mWjJGDiKaTiIKHgpyEg5WQkJSPmqKer76voca8xMTGxs7PztLKvru2sbq7u77PtcO9uLm3s7G1s7izq6ecq6y5qqmnr7CYo6+lp6OltcCwrKy0v8O6wLq0p7q2ubSvlqWtrq6ki5OUoY10wpp9l5mEjpeZjLGVm5qVkpKZmaWjlaCbl5qpnZugoJmKjY+VnGBKlpyalJqlllSWr5+vnJ+klK6tqqSaoKWTk5iYjZyfp6KZtKiqs7u7u6qxssfAuaasq62ysqOhsrK0pG1qYllXTU9KRE9PUFI7SEtJR0lDQz46S1U/QTo9RU0wNzU0NDpCNDRNV087SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiqlpmgoqivmZGXh4uolo6Ik4Wgh4Sdl4+doZqjpLXJtanFucLDyMrIyMzNxr+7s665ucHBzLXHusG5tbqwr6+ztaekm6q0tKqppq2smqSupaSorLu/qKy2t7/Bv765s7LEsrm+raOvtay5poibl6abdr+fhJmdjpOamoyul6GcnJeUm6ChqJ6on5maqpqhp56YkI2RnYNudpKimpWdop2RrrKjqpSoqpepraOinqSnkZGZnIeUnaKelrGmqau5tr2ysq6+ubago6eopaacm62pqYtgYl5dTkpLRkdNSlZMPU1FTktMQkNEPFFWPUFBQkRPMTg9NzY/Qjc1VVhPP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH5lXkhFq5Wbop+7r5mUn4yTq5uRkpOJq42GoZ6Mo62Uo6O2xr60wLnCwsfJxcLNyMG+ubKvubTAwsm1xrLCvLW6qqitrbCjo5iqtLumqaarqp2pr6ejqqu9u6itvbW4vse8t7a4wrK+wbWqtbarvqWPo5iSoqC8n4maoJmXn56Pt5+pnKWim5yhmqiks6CbnaacqKqemJWPlJuLlomMpKGUnaKdoLSvpaSSr6uZqqqcnKOiqJCUlJ+Cj56em5WppKGhs7S6tK2otbKznpyjpZqXlZiqoZ51XVpdW0hHRUZMUElNRUdHQlNMSkJFR0FXU0NIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5ZlxGQ0OdcGJHRaeXo5+ew62cl6WYmamclpqaj6qWlaemla2smKKrtsPDvL62wcLAx8S/zca7vbmysLmzv8LHtb+wvLe5tqakq6utoKGZqqrEoqSpq6aerK+roqmpvrinrb+yuLfHtrW5uMCywMK3tbO0r72jl6OXlJyUrp+QoqOlo6OgkL2lqZ2pq5ycoZulnr2hmaOfoqmroZ2XjZWek56Hj4SNk5+koJ61rKaclbCmma+lnJmonJ6MmJSeg46gmZuSpaSal6uxtbGqpaqurJuYoKCSj5CVqJ6UZV9XX1tNSEdJTkxIRURJQT5RSUE8R0lJXFJPSz1IT1U0QkY5PkhHNUNhW0tCTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW1SRjxLeGVhVkuimqOcnsWsoZ6sn52uoJKjn5akoKaprJi2saKqs7bFxL2/tcDCu8jCvsrHtbi1tLGztLfBxba+sbi1ubSfp6yqrJ2enqWkwaWfqa2gpKmtr6GmqL21prG9ube2xLK0uLq/tMTBuLmus7W1o52llZKUoa6gmaKeqaiso5rCrKmerK6bm56ZpqC9oZ2kmKurrKahmo2an5KeiY5Xf5afpaGguKqnk5i0op6xn56ZrpWdjZiTnIGOn5eVjaGjlZClrbKqqaKipaWVlZ2Yi4+RkqSeiV9iWGJfS0dKSk5GRUFHSz89SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtNnp6hmZ/EqKWhtKKds6eTq6Wgo5+sqaydu7CorLaxx8XBwrLDw73GxLzEybyvsLatsLSvvsS0ubGwurSsmaixqaqanaWhp8Gtm6yxm6qjrrCppam8tqe3u76vt8Sts7PDwLTHtLu3rLO2raqippaVlaSsop+gm6eqsK+vu7GmoKmompmYk6KjuKCho5Kwr6ylpp+SoZ6Vno+QjZWem6Kep7SnpoyXspuirZmcmqyPnZKVkpl/kaCVjo2foJOLpquvpKainKCekZGak4WLkY2bnX9fY1lmZElITElTQUNASUg7O0Y/OTlPTlZeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwyNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ6jn5ygw6mkqrOipLWqlrOsp6GksqyuqbuyrbG1tMbAxMK0wMS+ycS1v8jBtKu1qK+4rL/Ds7eurba4pZiqsqurmJ+ml627tJuosJqsoK20sqirubKourS5s7jAqreyxL21xqi/r622tamnrKGYl5KmpaKimJilrriusrW2oJ+ppJqUlpSkoLeipaWWr7Gyp6umop6ampuVl6ifoJihnq+yoqaMl62YpKuWmJ2ij5qMkpaYhZWek4uQm52TiqipqqGnoZielYuOmY+BhZSIk553YmdbamlMT01OVD1CQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDEtLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJb2hVQ1dGjHlmQzujo52hpr+np6+xoqm1q566sayjq7S2sbC5t7C3uLjEvcPHvb3EwsbAuMDGwLmptqSsu63Awbe3qq2yuqKUrbGtspakp5GquaqfprCcq6CvtLOrqba2rbyttLO5t6y4scO7v7+mw6uwtq6oq6unnpiZq6GioZGYobGvs6ywuZqbqZ+al5OYp6C2qaajorCxtKyzp6yfnKCgm56lnKKXnaOzr5ufkJOkmZ+omZOhnZOWiJOWkpWWnJKIkJqYlI6pqKafo5yXm5KFjpmLfYuVhI2ZaWdrYGxtV1BRW1VBQkVUQDs7SUE3OlhQZF5QV1dFWV9eTUxSTl5LSj5ZY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEtLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9p5+doqm9oqqwrKSyuaqmtrSsoK21va+zuLu6vre2wMK/ycS5xMLAv7fDvcC3rrWnq7exu72+tKmusbaelquup66XpqiOp7ufpKyznquisbCzrKm2tLW+rrGytaywtLPBusW3rL2wsberrKqjsqaepaqgpJeRmp+zqrOrq7OanaecmpWOoaaktK6ooa2urrGotK2yqqScn6iknpWimZuotamXmZKSnZmdn52QqpyVloSUloqdmJuTio2WlpqWpqWjn52WlZeSf4+UhXuNkoKLlWRrcWZvcV5GWWdWREJNWERaOUhCNj5dUWhcTlpdR1teXU9NUlhkSkpCXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVVxnSzaMemZMQKSaoaWtt6Wsqqavrreqr7W7p6axt8W3sba9wcO1tbrEvszGucPAub65w7jAuLK0q6m6trq5vrSprbC1l5inrKmsm6urjqu+nqutsqOroLGus66ttbK5uKqurrGota+1u7zKs6q3tbG0r66mobSgm6itoKaWlpuasqOtoKavl6GkmpqTjqOlp7Oqoaazraq1pa+yta+kmZ2sp5qYn5qZq7ejl5OQjpecoJeWk6qempF/kpeMnZuYlZCKlJKemaSioqCYlpKTlXqLj4V7jIqCipFqbXdsdXphRmFrWUlHWlo9e0pGRDZBYlRpW01cYUtcXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVF9UXy81KENfUVwuK0IvSkdQW0czY1lUS0SZl6GxqbKqrKakr662qbe1uqSstLfJu7S7ur+/tLO3w8DMyLzDvLa9vr+3vryxvK2nurm3tcK2qq2xt5SWpq6rqKOwqZSvu6StsbOnqKOytbGxsLWxuLSpr6yyp7evt7TExreptrassK2pp6O2oKCnsqGklZyalbGep5ygqo6po56blpimpqW4qKOytayosaeusbWspZmgrKibnJ6clKm4m5SOjoqXm6KXj5ekoJyTgpCUj5ybl5aViJaPl5qnnKSgkZaRkJV2hI+He4SBg4uKbG92dHt+XExmbVxKTmNcPmJ7R0k4R2dXZlxMXmJNWFlXVVdUaV1PT0hgXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOR2YyNydHYkxWJS1CLj1FTFE8M3JrSUNDkZmlr6Wur6uopbGztKu3srihq7W5ybmtwbvCuLOxtcLCzsXAwb20vb++ur68ssOnqbmwtbW/vK6ssrGboKexraamr6WdsrWtqrGxrKmotbustLK1rbStqqyorKm4rbKwyMC5pbqwqayspaiusaalo6+kqZyenZuvmqOjo6ORrZ6joKCiq6amuaWstralq6yprbC2rqKeo6mqm6Cbm5Kjs5mOio2HkKGglIyUnJ+SkIONkpKcmpeVlIeXkpWZp5ufnoySkY2Qdn2NhXx7fIWIiHBycX18fVxTZG9eTlhmXEZElltHO05tWGJbTGBiTlZXVldUWGddUVJMY1lbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvKzEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISis6SD4zQkhTLD6QaztHSI+cqquiqrGkqaWztbK1trKyoauuvcy6rcC6x7G0rbTBw9HFxr7Asr7Awru+t7vEpqy2q7K3u8Cvq7Gsn6OnramopLCjqrKqsKuwr7Cuq7O9p7awsqmzqqulpaOtuq2qssO6tq27qamnrKmnsaWqpaOuqqiin5yjrZWlnpiemaydoqepoq2mpK2ruLOyoqqioKyvsayeoKenqZmjmZmPoKaXhoSOioueoI6KjJWajo2EhY+Un5yUl5WGlpSTl6SbnJyKkpCNiX9+h4V8dn6Fg4RycXCIdWtfWmBuYlFycFxLO4R8Rj9YdVhgWk5kW05WVlVXUVxhXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE7XEowLkpnREY4O0IwNUVLWDFAlVk9TEWVmK2ooquznKqqsLetuLavq6arq73JvLC9tsKvsauzw8POz8O+v7TAwcO5v7PHw6qutq2yuL6+sq2tqqSnqrCop6ixpbSuqrGurrKxtKy0vKS3s6ysr6irn6OesLerqq26t6W3tqSqp6uqqq2hqaensrKkp6WhoayXqqGVm6CmnqWiq6Stop+nsbiurqSmo5uqq66pnaKlpKSYn5uWj5ickoGCkImEnJ+Lio6LmI2OiYKLl6KbkJCbjJOSkZOjmZuZio6Li32GgYGDenN/gn98cnWLpId4a19gbmZXZIZjTj9nk0xFYnlXYlhSZVRNVlVWVE9cXWFVS05oVlVWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlZaLjBKZ0FBPDxCKzpKT140RIY9R0ZEl5OwpqOrsZirqq22rLayrKasqqm8wMC3uLK7taWyr8PJy9G/wLu5v77BuMG5wMSssbSxs7q/vbKwrqyqq6i2qaaur6q5sKiysq+yrbequLims7arrKWpqpyjnrOzqaiktLSgt66gqqiqqKunoKusqbq2qqqpqaKqoK2bkqqhnaCloqajqp+dp7Svqaero6OYpaenqpyipKOgmZigkY6PmI1+h42HhJ2dhoOJiY6NjouChZSimo2NmpGSkY+Tn5eYloyKg390hoF/gHh0gn54dn2Ah52Pb3JnZnB3XGByh2pPXplWSG15VGRWUWNPTVZUVVBPWFtiVUhPaVRWU0dPWFVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EPJaOsaKmq6+arKWtsLS1sKymsKqour67wLCtua6htq/Ix8jRwL69u7vBvbrCv76/rbGxsbW8u8KxsbOqs6mktKilrbOzubCjrriysLO7rLqwqa22q6qfqqyfo6C2ramhn7CzorWqnqinqaOqoaKtrai9r6yuraKoqJ+smZCwoZiioaion6ibmaqxqqOgrqKhlKOjo6eYmqilmJeYno+Kh5SIfY2GhISjloSBgYqFjouQg4OTn5aIkZyQk5CNkZyUl4+KhoZ3dIF/fHV4eX95cnJ4Zn+GpHZpX2RpgHRmiIt8U1hvXkp4c1NkU1FfTU1SWmZOTVZZZFhHUmhRUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQDSRkLOhpaatpKekrae1s7KrpbGnqri+wLuvp7mqpq+xycfI0cO8v764vb68yLrAt6+vs7G5u7jAsrK6rLisorSnqKyytrmzqKi9tq63vrC+p62stautnKmvo6ClrauonJ6rs6W0qJqqp6mjqJ2jqaipvqu0sK6dqqShr5ybs6OWpJylpqClnJupq6afnKuinJOcoqWemJeoqZKYmpSQioKPhX6Pg4CInY+Ffn2Lh5CNjoN/k5qThZOhjJSRi5GbkpWHiX5/cnt6fnxoeHx5c25ve2aEeISJZGFnYHKEemxmeF1eVD9Xe2xUYVBRWUtMTnJ1XUhaW2dZRVVlUEQ+Sk5EQ0E5SEdLUz9qYkpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mYkFKN0dTYFUqPTlEVz0qkJWymqCgqqaloauluLOzpqmxpqy4wb21r6K4raiosMLJyczBtr3AtLe/usi1wrSysrSxvLi5vbWtubW+raCzp6ursLa4tayfv72qs8G0vKGvsrWqrJ+tsKOcpqmqpJ6bpbCnsKCfq6mnoamcpamhrbyorrGuoaujpK+en62ml5+aoaSdn5yapKujnJulpZaXlaCjl5uXpayMnpGRkYuCioCAjoB7mZSMiHt+i4WPjYuJhJKYkIaUo4mTkoeRmpCTgYh9eWt+dnl4Y3x6cG5vcXZnf3NphGhlZ15sc41sYGlvYG89WnhsVV1OUFJLSU1UWldNXV5sV0RXX09eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+KR00OSYnLjM0LjArLzQmLDokNDFBaFkxNFM9ZV9ETDZLVmRPKjsxTlc9I5SZrZqgmKilpKCopLiwr6SvsKmruMG5sq2fua+rqLS6yMvIv7bCvq+0vbfEtsKxrbmxs8C0ur23qLm4vaqjtKipqrGuubGrnLy9pbDBtreir7a1p6ansLOfnqSmqKKlmZ+sqKmeoKqupqCmmKSpoLG5n6Oxr6Gsoa2knKemqZqam5+llp2dm56qp5ecoaqTmZSZn5OZlqGpkZqJjpCGfId+go19fKCMjYh4gouEiYuLhYeTmo6JlZ6IkZWCi5eNkX2FfHNwfXF0dGB6eGhtb29taH1xYnttaWViXGSEfl5Zc2pxSkl+aVhZTVBMSkhQUlFJT11fblNEWFpSaE5HS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1CKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo+L1dVNSiXnqeanZeuoaGhpaG4q7KltLSpqLnEtbKtn7etrq2wtMbIwLa+wbmwtLy2vru+r6q9sLS/sLzDuai7urenp7WpqKyxrbSxqJu/t6auvbeyn7G3sKmlp6+xm6GkoKWloJebsKehnqOor6GfoZOlpaO3sKGmsaufrKOvmJyqpKmfl5qepZSbnZuep6uanJ6ml5aYlp6Ok5eiqKKQiYuPhnqEfoSKeo+WiY2GeIGHg4eLjYWNk5iNj5aZio+XfoaXjI95gnpwcndvb3RfeXdkamtqZ2eCbGVya2tkZ1dhcn9eWWt1aVlFfV5bWE9PS0hIUlVHMjpfXm1QRFdVWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0SEJmW0hUQ1RdaEUuOzFeUSwylqSjmJadq56moaOhuKqwobu4pay9xLKvrqK1r62tr7TExL2zvrq3sLO5uLq4uq2tv7O0uK6/wbervbq0paKzq6iqs6yusqOdw7emqri3rJ+yu6qnpaivq5mjp5ylppSYobOmmZ6kqamcoZ+UpqCkuaikp62mnqWhqZOfqaGhoZmbnqGTm52XoaOsnJybo5aTlZabjpOTo6ekkIiKjoZ5hHyFhn2cjYmKhniAg4eIh5GFlZOSjJGVlI2OlHuDl4+Kd398bHVybWxzYnl0Z2ZpZmNthGZnaGRmZ2hdZGJpZVplemJgUHJUW1tSS0pHSU9TQCAqal5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc3YUwnMp+kpZOPpqecn56epLatqKq6t6erw8C2r6yita6nr6+3wcC9scC2sa6ytrW5uLWsqryzr7KwvcC3rry8sKSftqymprWqq6+hocWsqaiytaystLmdqKqrsaWYnaqep6WSmaWto5idpKqhm6GcmKGep7emr6qtoaGenaKVoKafoqCZnJuclJqelaafrqOYmJ+WlY6VmIyPmJqnoJCHioqIeIV3goKCnIeKgoh7foWIhoSQg5aVj4+QkZCRjZJ7g5WOhXN/fWd5cGxrbGd1c2thZ2Nic39hY2VmZWhoYWVuWV1YXGxjYUxnV1pgVklHSEtNUlg+OWBsaUhCVVNcW0hIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssL0EqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGJGJTWdpKGSjK6hmpmgl6W0sqOyvrehscW7ubCwo7asq66pub69u63Asq6vrraus7myp6u5sK+utLa7tq+5vqymnbWroKGypauwn6bFobOmsLKxt620nayvrK6imZ2nqqWelZunpqCZpaOonJqem5Wdna2wprmnrqKhmpqemZ+jmqWdl5+Ym5aboZOql62pnJWenZSNlZqOlZSYp6eNjIqJjnuBdIKCi5iFhnyIiISFioyIkoWUnJKRkJCRl4+Qf4GNjoJvgn9neW5pa2pncXJrW2hjYXF/YGRnam5rZWllY2xcbGx1cGFTYmhjZVpJRkxNT1lRUFVhZYFUQFZSWlRGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUhiQic0lKOcj4+xnZyVoZups7CfuMC2oLTBu725saa2sKmupbi6uLisu6+sq6u3qrW5raSztbGvqbG2trGztrunqaC2qp6fqqOqrp2sxJmvprCxt7asq56wra+qopudpKypm5WcpqSdmqqjpJaaoJySnKOsq6m6nqakoJeamp6hj2ujlpmdcYOYnaWBdpKsqZ+Wl6KSipiZgJeKn454hZKNg21pfneEcWyGioZ9hIqGb11kYGeEmIZri5CUknV4i4R/g5B/ZoiAaHZpZldcaXRuTlBqY2Vxg2ZdZGZua2hdW12JkIWHaE5LQzhFVGdeSkhQUFVWS0hSYXB0ZUZbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOW0tbZmI+RzFOYTwrL46kmoiWspudlKGcqq6so73Fr6m3wri+vK2nt7Gmq6S4tLOzsLmtqaestKWxtaKnuLa1qKettrOutK60oqmftKueo6Wdp6ibsL+VqKewtbmtraOorKurpaGfnKGop5uYoaWmnJynqJ2Tnp+ZkJ+oq6S0r6Oio5yWmJmXo4ihj5KbiKGIlZ+igKWAqK2flJSelImEcniMjoOIoHWHjWmXiWZ+c3igb4eHhH6MfH+hoJ+Zf3yHn3SIjnabimyHgoNtaGRke21yYlSGbWNtaZhxWGlvboZXXWhaa2paiHBseXKHaIeEWV5GTj5GXk1FUlZWUVBSV1RnXkxaTFJSUEVGRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk6LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTltMW2dfPUsxVF43LyiNp5iEnqydmpqdn6uqqKq+w6+yuby3wb+qpLexqqyms7Wur7O2q6mlsa2ltrObrLW2taWmqbOxrbKorp6qobOpoKSlm6KlnrG4laanp7e9pqymqamsp6Whn5mhqKOZmaejpJicpaqWlKKclJOkpqehtqSjn6OYlZSYlJyIrpCYlYqqjJmjnYaxgaWun5WboZd6gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsXlobFixrm5labySvG5oeW1xj9h9UmtitrJ9fnCUdZqhqpBWTldhT1ZORlVcWFBQU4tbV1tQQFxEUE5DRkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkFFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV1nXD5MMVpbNDEhj6eUgaiqn5idnqWtsqqwwr2ytcC1t7/Cq6a0rq2pqLC1qq+2tKioprWlqLmunLKytqqlpKeyr66xpquep6WypaKioJecoqCyr5afpKG1uqOpqKCsraSinZqao6mgmJypoJ+XnqiokZynm5SeoqejobCjnp+jlpeTmJKZha9raoyOqn9ohZaHrWZxn56Vm6mXca6hpH53unxroI92sV9qtFulgGWckGBmgXpmf2l4aqllvnJnpox2sWp8sXh1kZRjbW2nblyEoEVpZ4eWRXWcYH1me6OmgVhfi6tofY94emqoOEqvW1hUbGNaS09YX1xWVjtOh1BXVi9JU1NKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy8uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWDMxG5KilYOtp6afo6WrsrittL2+sLfFsri6w6epsKywqaqxr6SxurCkpa+zo6q5qZ2ysrCjpKCqrbCsr6aon6OisZyknpmWmZ2esKmYnKKgtbOhqpuhra2fnZmXoaOpnZmepaCcmaGopI+copqXoaCsn6amoJqfoZaVkZeRmoa1m7V5h6matpl3h7Obt3+Ul5isl39rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iXCOhoB/iJCXeIOCipeMg6CPhbB2d59xa2ttfItPpVhIY2OZfmNopV95cXVSkoZdUKluY3B6hYBhnS9Som5bVGtnYExLXGRYXFpCPrB3V1hBI01pRkJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7RSwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YVQ1MByXoJSJs6amoa6pqLOsqru3wrC8w625tsKrrK2vr6ivs6qir7yroqi2raSstaSlsrOoo6Kdp6qzqbCopp+goLCXoJuWlpeboLCknJukqLWvoaiOqaeqm52WmKGmqZqfnaOgnKCjpaOWm56Ymp6jq5ymmpyaoqCXk5GTk52E1ZOZuXGxwn/Gh33WlJy7fZyXqJKPnY2ke42GooGlgnmreY+dVq97iX6farlauXeGhH2mgpR8mXqqeY6dkHuxbY6EdJC7hm+VUK+nxYpRoHpjYKpic3KGa5aHXlK1tMiFfoh8Y6QzQp11XVBqaGRQQFhmWWRhSkdMakpaU09ZZlpDQz9FPzA8PDU5PDc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREIuMDA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdIOmFQNzIlnKOTmbGoqaWzqqW1qKS8uMGwusCyt7S9tLaosrGksrOnoK+2qZuouq6ksLGhsrSxoaSenqipsam0qaacnp+smJmZmJiWmKOun5yXqK2xqaOej6yip5Wdl5yhpqGYoqGioZuioqicn6CelZmbp6Gcp5Wbmp+hmJCSlZCdiLJuaLVyrIhwj6dytHV0tnucmaaOkJ2No36PnqN+sHWCkNLSdVyufIV/pG6bqqZqhoV9rX2YmZB7sXOTnY95s2WWdIWebp9mlFLJi1rCXJ95Yl+tX3ZzhWGWiF1Zyp1vwIB0TUu1U1XGZFVRamNlWEFPal9saVBVRkg5PVdSW1ZZSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxBTlRfZVA1Rz1hTTYyLqOekaWvraWpu62mtaWotru8s7u/uLe1vLy0prW1o7OypKCssKWYp7uupbKxnbS4qqClnaGqpbKorKqlmp2bqp+WlpmZk5Skq6KYk6arsaahlZKrn6WSlKGcpaeglZump6Kbo5+umqCenpCWnKOfnaWUnZWZo56VmZaTm4WsfHiod6OPi4eqcK6LhaiEmpqji5Oai6J9kpeHroR/gbNccrJTr32CgqN+cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52doZnl4hqXa93lZ+Pd2w1ecius19DVG9eZ2BFUGxfcG1WVU0uZWNoUllQO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdCYEk6NzegnZSgt7GZs8GtqLKnqrK6t7W5vrm4s7e+taa5taG2raCgqayflai2rKixsquttKSbqaCgqKK1p6aqpJqelqWhlJSdmpKWpKiclJCnrbCloJSZqJ+ij5GimqmmoZWapqmenaSfrZ2gnaCNlJ+cn6GZmJyVlqKglJiRpp2GqX5/pnmhj5CEqnCtjYOnhpeho4qYl4ijgZCGlKp6f4udeXCxWqiDgoigeHTYf3aHdKeBjpuNkqR8lZCfhHuyXpxkoH2ClW6TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZE9KQ6FcWk10XWJmTVphX3J0X0pVNUqakVhIRT1HRUFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxPZWRBJlVmWz8xVF9iTDdGSF9DMT03op2amr6tmLPBrqusqKe1sbixtb+5urOyubyqu7ahsqWfpqennpOrsqmwqratqq+hmKKgpqSkuqOjrKGXnJKjoJaVn5uVmaGhkY6MqbCwpp2Wmqemn42SpJioq6iVmKmon5+gpK2joJ6hjpWhmaCgkpyXm5WeoZaXj6ucj65ucrR0qYx3i6Z0tHp1tIKUp6STnY2JpIeOdbhui3uLomtrtlqhhmWXl2igoqdtlHK0c5OZf7NqhZKIrWp1tGGdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdlVG9uLlunT2JSa2VibFliXGBwfGNTWVE+P2xvMkJCQD5NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFBOKWanJ66o5yxwK6uq6uot6q4r7XBtb2ysbu4rMK3qqyhnKekop2Sq6uotqOzqK6qoZedqKClq7ido66clpmQpqOXjp6hnJmen5GTlau2sKaYk5usqZaMk6aapa2jkZersqSgnqissJihopCZoZegm5abl6GTnamdlJCrmYfTlJq7dbHEgMSHftaXnLh5ipKZjpiKjKeHeaK2dX13dsKCmrJhg7p5wHx1uGK1gYyHqX2WgqypcXt/dbyIp6BpnWGmjq+hfYx0h6t9vm5zvHSyg3V4gYptmohwbY2kdL1dd31bYXm8alpWW2l5XmlgZGZibXhvWFtZQ0FAcT9DRys0SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9UXmBLNTxMXC02QDmnmp+ivKOXsMOvraqqrbGoua+3xbG7s6+8sK7Bsq2mo5+kopyckaulqrKltaetpJ+WmquZp624naOumZWhkaagk46do5+Zn5qQlpOvubGrlZajp6aUkJalnaStn5GgqKugnJ+ppLKdoqSOpqGVoZmblpWkmZCwoJKVqp+FkJm2gJKSjbiWeIOTm7Z3bmxvdG95j4SOiXKewLu8mnuBsqhwgXSRuYN8hoaLhox7ioeMl32ku7m9nHV5s6N0dZd1dLB1mJ5mhmmNtnRycXe2jF5/eX2IZ4N5bHlii6xwdIV+WFunaURkWVRmX2NdY1FnZnFtdUJNT0xEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlbLCs6uqqKyrqruvscavtbSwuKi1ua6rpKKnn6CdmZStpa6qp7aoqJ+clqGknqylvqehqpeVnJGim5KQoqiik56XkpiUsrW2rJido6Sii5OSppymq52WqaWmnZuhqaenoqigkayel6Kel5aYnZ6PsKmUnKeij2t/apypeYl0f5uPdntmiHu9vsC6b5KDcZSFX3JqWl6biWFjh4+WbGB/lGNtnHZilWyAmZWUZV5gY3GaiWhyjHuGlGZqfnB0eH59Ylt4dIFoUFxuhHx8impXbHqBcklKb4VwTnJNRFZcZmBMWldmY19PWm12anJST0RETTxISTxMPjIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVDRlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJeSSdTX1Y0KVBeTCgzPlxPJz8yPqifqKHBpJm0ubajrKaup6i1sqzIrLC0rbakvrKzqKGkqp6jnJqarKeupKW1qqSbmJWinKetqb6oqaWVlJuWoJqTmaapqJGfkI+YnLCyvqyapp2noomTkqmbqKScnKygo5qco6etop+poZmum5SmoJeUnp+dmLGlmaKomZ2Sn52kppuopJudmpybkZeCaG59cneRl5SQhIm0qo2FmJWPioyYl4iUlYmDk5OQiY2SlJmTmZean6Gam5Sfm42BeaSFbGl7kH2AdYmLgnKCeHl2dop/fIlqc4F0g3Vkd312a295bF9iW29nTVhZZmpfV1lwem9tZlNPRlM5UFpOUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsLG3oKqms6emsLWqyautsqa1psCptKGfpaacpZaVoaunraOkt6ygmZeWoJitqqbBn6yklpKcl5+YlJWjn56jqJOQmKiossOvmaqcqp6PlpapnqucnqGtmKGbnaKlr6ahpKeerJiWpZ2ZmaGenp2woZ2ip5aZlJqUoaOXpJ+ZoY6YlYuLjpCYro98lZuCkYGJqaiFgJiWi4SOn4h7hJGFhZqRh4aKlY+bl46QmJ6jlpmSkJyNfo1lobOuhImEd3uQin53eXpvZ3mRgIGIanWBeYhyaHN/eXWDhoFqdGJ4ZV9oZGNkZmpYa3txamtcU0xQRF9VRkA+Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAs6C5r76tqq2xsqCqprKto6yzsMWwq62ks6+8pLScoaijoZ6al6imqaakprO1n5WVnpqasKauvqGsopGRnpqalJKWopyXqZ2Enamro7THs5+po6qWlpiap56pnKClrJSfn52fqq6opKKroKuanp+hmKSenJ+dsKSZn6mUmZmek6abmaqfnJdmhZN9ZX+Pm5BjeYxsaGp6kKOramWamH5nhYtlZWloeo2ijmtojJiRondraouZo5+Yc2tteoSMhnlYZV2FgV5si4qCd1xnc3d3koCIgW53gnh/c215hHN2iIeNgnpohFhdanNkXXOIaWp8cW1jXVFOVklkWEBJMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1dX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSi42Wk82KUVZL0RPMVlCOz8uPaSeur25r6uzsKulqK2usKeurrC9saqopa6wsKCtl6GknqKamqasnK2kpqips66elqSQo7CmtrmlrqOPj5qimpOSm6CZmaaWe6Sroqi0w7eloaavnp2VnqOeo52kqqmSn6GeoKqvqqmiqp6mm6Wep6CrlqGcpbGkl52slqKfm5SmmaCsmZ9+vYSJc7RzhZ+GrWh3ucS4cZKho3qmmJl0q4J9y8DAunGLo4eDnn2WmIiewL2Clp2djZzBwXuBepGMmsLAfWqlsm+NgW/Ken+beJKEj4B2eYGAeXF7gIZwd4WLknhsdZFiZV53Y19lgGJedGhtZGJYS1VJUVlIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fYGFfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0NQLyNGWzNQWS9VQUI7LziVornDtK+vv6mplKOwqrCvrqayta+qpqemsaugq5ibo6Ccm6qnop2so6WopaW0pJ6jk6aurbi0p6+ikpGZnaaTkaChmJugnoimq6Srrb+/saCor6mWkZ+dopmjpKqjk6Ghnp2srqiqpaOhpJ+jpJytqZGkm6muqpyeq52uo5eYppeipJief86UenulgnqWl5tfrY9djqiAoaF8p5WbdauDga9eZIyqe6iHhaB0l5OIs2OCq4agjY2zaoSvdHyWh7hhgq1Zo81ukHZ723t/mXF+iJN2f2V7iHV2bH6HbX2Fj5B9a4CMX3Bqb2ZgX3hkW3FoamRmYFJUU1deSk9DNUFIRUQ4PjU7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xfX19eXV1fYGBfX11bV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3OlNMKywtSjAnO1s6TC0hUEBGNC4xrMHAv7S0sLeYnpGjqqmttaumsq2srKSsprCqoaecmqaYnKKvn6GfqKejpqGfsKybnpamrq2xq6isoJSSm5+lk5CfpZedqKOeraOqsKi/xbKnqbGtlpKenKKXoaqqn5Whnp2cra6mqaibpaWioKqSrLOWpaKqqp6kp6eisqKTm6ecoZyWlZGXoXKGjJh2hqiHcbF8nXGsfaCggaWPnnirgn6tf51yrX+sh4afdpiSe3yXfqqIooyRi5x9q3qIko+ff3qtVpzEe5BwksF9gZVtdXCMbWZ3ZYZvYXhucm6IiY+Og2yPjWNtc3VvYGZtZF9vaWpuZmNXU1xgWlJSQzhJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/Txseys5+do4+joqKtr7evqbGnqKqorqurp6KknZqjlZ+mq6CipqCoqKOfnrCtmJuWqKevrainqZ6XlZqkopKUoa2bnaejr6yirLWpucyxrKatq5aUnJ2imZ+urJ2WoZmenqmxp6iom6qno6Gqmq+xoqirrqaap6urq7Okk5ikp5yWk4Wka6R1inqpdXuycYKlipiMcIigm4ekX2FSq4WAroOcda6CqIaGn3qZl4Z7ZoCjiqSYhoGjfal/gZSGrl57qFWdopKBe6OfgHzEsMWMc6+0s7lyYqmvwnRoi4uWjYBrl5Bta3h4d25rZmRkcXFme2ljXFZfaVhYVExMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICcnISstIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLSwsKmto6enqqurqKSmoJuln52mp6aknayaoqyho5+vo56bk6qktbCvoambnJaVp6SRm6Kon5+mnLCloqixrLbHsbSoq6mVkZ2doZmgpbOdmqGUnJ6nqqqirZqqpqChqaKyrKGqs7KinKupsbC4pZSXpaqanZN9qm2fg4h2q3l8sG6CpIuJn5aVnpaB0ri0uMmBgrJfYZSpg6WIh6B6mJaaearJdJqjlKipkJKajH6aiZrGxndloYKlc4GfjoJ9r19vtWOxdUujhm2nR4OTZI6Pm5F7b5SPfG15dHx6bVtlanJxZoBpXmFYY21cXllJTExKRURCQT1BPEE/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTAxrmtqbKuraainLK5rKuhpZuopqqsqaagpqWYq6Ofr6ydpqGtmp+ppZ2ntaCjmJSoq7azrJymnKCWkKatkpqcp6OgqqeuoaOnqbCzwbGyqaynlImYnaWboqSvppeilZicpaWpma6cq6WknaujtqyhsbmwnpywqLS0taaWmaqmnKGQg55Od5qCgJ56hKN8gqSEhqafnJ+UhLh8fHq5gn/MxsO2d5uikYuffpmXl4p2n5eKpJikp36vhZuDnoSsfZmUYaVso3CPhZCBfZaEcqxgpHNxgJphvH1SVXWNkaGVenyQjodyeXKEfm9bbG53cmqBblpjX2huYmRdTExRU0FIR0ZIOjpLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Kss7Wmn6GVpa+urqinnqWlmqSnobOuoqmns6CaqaSUo7Wjo5WXoam1uaSco52jk5Cispmem6aloKKvrZykqKK1scOwramsqZGGkZynnaOknKWXnpiYmaWjp5itoauipJeupbusore2rp6etrS6s7WomqCxpKagiJDStcO3eYeOhZGTj4CmeJSid4yhkoWlg4tyq4eGtG5yaZmknZWJn32XmYeHkHOugqWbo42mipOciJSQmm1wslylc5N6nGyZf3uZfm6pYaJycn6gYnOyuGh3jpKkl3yJio+IdXt4jYFsaHdpeHNuf3RcZGRtbWZoYEpaV1g8SEY/UzNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBfXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krr+/vLu1npeopK62oqKZlaOqp62pqpmlop+moKC1pqKpp7GklKujj6StpJ2QmpqqtLSknaWcqZKUl6+goJ6mo5ynnLWZoKqjtarCr6iqqKGMhI+coqGmo5WampyYmpimo6WXqaeroKObrKa8rJW9sK2fo7G1u622qZ2rtKarmnyokX18sHiLgKSliJxtsm+hh618oo+DqJeagayJhq2FoJSooKOXhZ+BmZaBe5J+q4GdmZaLq3edoI+Ik5J/ea9do4F8pqdknoB8l3Vqrl2lbHKFmV1gW4ygbZSPpJeBkoqTiHd5gZZ+aWx+Yn10bX95X2dlcG9nZ2hCWV9aPUpTMlM4QUFDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JODE1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVlFIRklKIygovJKbhKnGw7fBtJ+araCuuaajjpqjpKCvrqmfo56drZieuaCjq6GwqpquoZGqqaWWipqQrbGsp6Com62YmY+toqGdpaGZpJytl5+opbaovq6kqaOfi3+Om5ugpp6SlJmblJmZpaOimKerqqGinqinvKSXw62ro6KttLytsKmjtrGrrZp3r36Ri5yGh3y6rYmYZLCMZZaufaGQhKeXnIKti4WwhqiapKKikYWgXGxrgrNgf618e4KBsmxmbpmXi4ixWn20W6SDa8iiZp+BfLtZdrVasn1Tr4F6rFiAoW2XjaaYiJSNkpN4d4ybfGNzfGKDd3SAfGFpZm9tZmVmT1VjXEFUXT1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vru0wbOjnK2mpbepoIuZoJ+dsrGonqKfnbWYoLOoqquesK2erJyVrqiijombjq+sqaejqJquk5qPqZqhnaWfmaOipZieoqixqLuupKienY58i5qWoaCZkJGanJGZl6ien5enraWjpKKkqbqeoManpqmhrLa3rrCpob+wsLCYgqqSo6+Om4CGpJeYkICAuMO6hI+dk4WomZ2DrIuDr4qpnZqmq5F+1b3CqmKkv719f6OCg9e6t7WElJKCnr2+hGqjgW+rhG6df3qysceDa6uxvax5eKK+u3SAlYykmY2YjZOZd3+PmXlifHlkjGZ4gXtga2VqamJQYltTaVxAVGBCTCk8OjQvHx8kHiUyIBwkKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0scC5sr2zop2up6azpp2Ml6W/qbavp6G/pqaxm56xnLmon66vpaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp2nm5qgqKKYnaCrrKm4rKejmpeSe4eZkaabko+QmJmOl5OomJ6WqKieqKagoqq6nqnFo6GwpKy0tayyrKO/q7KynHV2qqW3hmWKoHBnrJCKj25ud6WQm6CCdrGbl3CRjnKXqqSbma+kcmxtbWaLeG9tg5lxgHppcGlniZaVl3FoaYWGZ3GGZF2KY2lvWl1nfnimYGJykJJwZmSAjZKNoJWVl42SmnqFjZN0ZIZ3Z4xqeH55ZGxjZmxiSmRXSWpZOlBkRFAnSjkrIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6ubK0qqmirp+ks6qZkr2xw8e8tKmev6uso6Cnq6C6o6SurK2mjpatqpCMhZWWrZ+mqqKfpKOgkYulkqaZqZmWo6mglpylpaauuaqsmZqTknuEl42ml42RkJeUjZeUppOdlqeima+lnaKruZ+wwailtKetsbOssK6qvKexu5iMoqmmtZyJl6OYhqmbkJSdkqq0mpykraK0mKSjn6KjnqOlopesp4ySk42Hk52dlZCZk5iQjZWEf6Sal5WOi5OSipCHhH5njIF0g3d0h4xxp219lpOUlIGBj4+OjZuRnZOUk52AhZKLcGiPdm+Jd3V8eWlrZGRvY1VhWEBpWkdiX01YK0U9KyYhNjQwLx8cICUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbevrqKwpa2goLaxkY6qxLzDubapoaSdm6WdsKikt6edqbWnqJGYrKOLiImPnKeWraShmqien5OVpJeomqmZlKago4+ap5igtLmnqpiakIx7gZSMoZSKlZGVkI+Sl6SOnZionpq0o5ymq7eor8KvpLinsLCyr6ustr2jssCak6ekprWikp2nn42pn42Sn6KtsZuipLOrs5qmo56mrKCfnp2YrZ6TmqKclJCXq5mNmJmXkJaekYegnpSUhpOMj42VjIF/Zo2IdYh3eomEdJxqiJKWlZKJfYyWkZCWkJ6QmZKdgYaWhXhxlHJ5iX9xe35qbmRfcGlgXF9ZbWJQYGJPWDlGRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlqSoo7CzrK6jqaetoKi1qpCPm6Oyua2qq6GimXqcobCkprGpl5y4pqOUmKmcjoaKiZuikK+epJaooKGSl5mcrourlo+omaeMmKiOnbi1o6WYm42IeYKTjJuTiZWRk5CNkZahi5ydp5ydt6J/g661orCwdaS/pLOgeXuirbW/l3iwpqGKgKp/ZFxid6COpJ6Dln5tlLWdpKmwrKVmoKGUdHqbmXCBmaqZbH+kqYplnKWckZeYl4uSm5CEnZuQlIOTh46OkoqFeGuQiHaHcXyGgYFhaYmMlZOMW3aVkWdnjoxxeaGVlWR4l4WAdpdogomCbnl/a3BkX3Zva2tnW2VjYWFtUVk9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHRklLTFRVVVldYGhmZ1hRSTxERzw5VVJbYGFiYF5fX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqqWprqOnraWSlaq0rrClmamlqpdzi5yvoKirp5SXuaCgj5yknpF+iIiano2smqSVp6KejpeSnoV1ro+IppqokZajiJu5s6egmJiLiXR2ko2Wk4mTkJCUjI+Tn42ZnqWYm7GVgIybtZ20jJKPvaiifqeje6WxuoOOj6ifhIyGj7Gpr4yKlqKaeYCLrIadnqOpq6mJloead6Wce4icgZing4F7nbN7ioagmJmUmJaBkJaWg5maYnmIkYSNj5KLhG5xkIh6gnGBgYaAh3SIhZeTeJZok3SgmnN7mYKbmYSYfpGIgYKYaYyMhGp4e3FwZmV4bmlsaltkaWlkcVpcR1NLUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaWZZUUg5REw8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2YpJ+mrq6rqK2gqbGnp6qlmZOsxLyvoJSlp7Sdj4Ocq5ynoqCNkL6emY2fmqGRfYaPmJeIrJ2jlqGhko2UiYaAkaiOh6Kco5OWnYaeubGnnZqSjoVwdY+JlZCKlI+Om4uOkZ6QlZ6jlJ2rh5+0ibSarovKiKuvireFjbCEs7KGqY6pmY2dfKiPcnt3nI6mlmiVpHm0jKGgqKqTmcKCgKuJmaFynoCbpX2XhZWzgaF9oZOfj5iYgI6UnImYkot8hZSGjZWTioRudJKGgHtzh4GEfYV1hoOYgY/FZoCph4+iap2BnZeAmYCKjIOImG+NkoRnd3R7dmdodXBnaGteYm5sZmpXZEVcUEwyRTQ2TWBjNyYzPEVHRDo2MzY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQElkWF1jZmhnYmJiYmNjX19iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6OgsKmpqKasoKW5samrppqUnqGkqaGUo6m1oq9/oKadpZ6diZS9mpONoJKdkHmDlpWRiKuZnJuaooWPjHabm46gkYieo5uWmJeGorispZmbjIx+Ym2Pi5OQjI+LjJeLj5GejZKeoJigp36hp4etnaCWrpCgnp2Rh4Khja2yiKSOrJuMmn6idoCZlGuBq3VNq3iHjZ2TnKqpgqqrfoShfHunap6Ak2xnl4aYt4mefm5gY1iDl3+Ne2Rni3OZfXmXbFx8l25gU3GFXGBteoRgWWWCfoWBmXGoqmuDo25ypW+fgZtnZJ5sWmyIemVZX4J+YVdQb3ZlbnRxampvXWlvbGpnV2ZNXFdFOEE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUktNQkpbXV9XXl5jdWBNRTpNTk1UYlxbZmZpaWJiZGJkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJeeoLmhqqSmrJKitr2rr6KZlp6gpaurn5yttKGnkaCfoKecmY6ZtJmQi56MlYt1gZSRjYqmlpaYnp9+k4WFrKOHnJGKmKiYmZmRh6WvpqKVmYeJgGluiIiLjo6Jio2Ri4+RoYuSnZ+aoaV/k4GPo6GUoHeclpCng6OpgIassIeleox+hJp9onBzk4eVe56MeW2HnIuakpyqnI+HnX2DonR3pmeefnelXph7fZNzom6Yt7S6c5OIgYC2qGSBxrh8cZW2jHGAm6NjdKyrYX5qnbN+bn6Ig4+DjJhxgKNscqNynoJ9o16cmbOVb3uXnrN0cluesoJpYnB0dXFob1hqa3FwZFtmXGFLQz1ENVFBWXAyPFJHX0pSPTwzOTU6OjZDPDtASVA/VE5OUUBFX15bWVdgYHtkSUM4TFdVVmNhWmZma2tiYmVhZGNgYWJgY2NfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi1ra2gmqGboqOkrJqasayrkpegmaGlmZqUnqybi4mReIuFcYCWjYqPoZCTlJ2XfZGKjqighpiPipKik5uajIqop6Sej5aHhH5re4Z/fY+Ng4uQkImOk5+BlZufm6Cfi4l3nJiijaByoYyJqYmdqJGYqq6Brox+eqCZeaOTeIBzl4iMnH2Vn4ebjpqdqIijZKF+ipaQm41tnmibjm+amXuAiqd9cmh0qoOeg3OqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxfp3Z3ioqAnWiadYeTkpiNfp5smI9qpplcqH53u2p9qVqOhF2zZ1xucXh3a2lbcGl3d2FeY1ZhQVBFTjdWQlJtNEpaWl5OWkRAMTUxOzs3SD86Q0hVP1lTWF0+RGJdVmBRYWR8aUVCOU5bXVhkZlhmZm5tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnYmqtpyoiWOVnKy7srCsnaWbmqefnayZnbCnqp2Xo5qin5mWlqCjmYaJjWmIgHJ7l4eMlpaEkpSYj3qLhJaknImVkIaLnZGcm4iPqKGfmouQioCAaYGGeX+WjHuIjY6HjpWZfZKhnqChk5hyaJ+KoI+McJKNgqmJmqGlqqKqfrCtpKK4l3ajs6Kjf4iUeJ16qpl/oo+fnZmJmHKhfYeNsLV9bJqRoXh+mbWjo6uohJl8mnycmn90qlpdb3uXjHieYk1/e3uFZHqYQk2fWaJqc3yOb4KKhJl2m3mHibGzf36akqZzfZ1tcHyUb5lyaaNdlXZIZWNgc3B9fW5lX2tndXpiYl5PXVZcVFZAWUVQZkRSVlxhWF5JRD1COD9COkhFOExFWEFXUlpWRUZhXFpgS2BtfXFFQzxVXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lY3ZsXmVnZmxkZWxoaGxplJ2Bsa6ahFRfoae0urOzqZqii5qpm5unkqCro6Cnj56dnZqZlZihnZaHh4l3hYFueZWEkJuLfZGTlohygYmSoZtykpCBiJiUn5qEjqibmZWKiop8g2yEhXGCoYx3hIyIhpGYlHuRop+eo4iuhn21hI+enXumlnqpgpeekYyjoH+naHhufplzoHNxfJ2FmG+Tgq18pISnn5uCpHBeqWh2o2RwpmGc0498e5l4cnNjooaQfqJyo5B2a5Czi2CCmIp0qrKovH93g25/v6aqtF6cb39yl3CCc6JyXqRndKZgaKZsm9OYeYGabnZ5l2ubeXaXcmyppWdfZHlxf4RsaGZjbXV2Zl5gUVplUFFhSFZJVF9XU1tkaltlUEVDS0xKS0FKRDhQQFBNWFNYT1NRYGVlalNkeHl3SUZFY11lWmhpU2loam5jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZmhsaJibf7GsVF1Lf6qwsrWws6KcmISXpqCgooykp5+WqImZmJmUmZOSoJeOiIV7cH2EaHyPg5OagneRjo+KcICGj5OSbJiUfIiRkqOVg42pmZOSioWJeYN2iIBugZ+Gd4CRhYeYoZV4kqGjmZ+Js6Gitot6rKekrqVwqYCbkYaBnpR+pYGjmoaYcZ6Eoq2viZeLf4ykjZWDr6OVd7W2tsmic5SMg59hnZepbXmWh6CbdaGHd6B+kJaLgW9NZqOScZqIc6V7enVig4JtfqBscmRgnHN/dJdre2q0trTGpnOYfXmcapqZq3OBmmxzd5dpmXl0l3FQRH2zXmp1a3iGZmtmYnN0b2xVW1JYZ09RZ0lVTFhSVVxna25VZ1dNSkFJTUpHSk5BUUpQZGNqbWV1c3N+eHtudIl6e1RRTm1eaFxraVJqaGlsZ21nY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinYmwqIVlP5Sisqyvr7Whoo9/lqehoaOLpKacm6WCmZeXjpeQkJuTjoiDeWt5hmWDjH+Wn3l1j4iMgmqFhZKEi4WdjXqMipWlkoKXqJaLkYuAiHqAfYt5cJCghXmBlIaIlZ6UfpOkppuWloNnbnicbKJkfHKleJyYcGingpmOfaV7oZeDlnKfdoGJlJWPuW2PiqJifZmjl4luc2ura3Wgbm+mYZtpi5BploeblXWigX6aYIuGjXVviGJooWaef2qbdXBkZ4iCb3KiW19bZKFuXoiMcXyAdHJkpW54omNmp2eXcYuXbaFvUoiPbqBeZKdUi11UmG1tcmtxgW1waGt3c2puUVZVVWVZU2xJWE5bSFdoaHJqWWtWUFJFVlxNWFNhVWhqXnd1e3xwfXxygnt/c3eNgIN3XlFzYWdicGdQa2hoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqbCxpZ+Lf5apnJ2ji6GhmqGigJWZk46aj4uXkI6Ke4ZxgIhoi4p8l5pzdIl9kHxlg4eViomVmoJ8iIaWpo+AoaqPhZCKgYl9gICOc2mPpYN9hZKMh5eejYeRqaWdiaZ4lpt+pYmWjLKZnpGEr5efpXmYinupdaiQhJpupaKMkoSMg7xtfKWvgoeFh5WXnqJ+pnxyqJWhlmiffm+sY5aKlpN4qG2qo4GJdYiCd6uRpohrkrFsd7OMqWyLhm9voJ6SlWJ/q4yqd4GAjqefd599haSVnaBnmYd1rGaerYy2c3a+jKOTWYOmjathdXJ0b3t1cGJqfW5nbFJUWFRgYFxrTFtRW0ldbG12X1txWVtfWmdzZG1vcWNxdGB3en55cnmDc4N+gXt7jIGCgHZieWRjbnNkUmxnZ29tcmlmaWFfXlxhamJsbHtvXFxiaWJtaXdtZ2xuYpamq52BgJ6klqqqnqinraOYiIGWqZmdoomapJyonISMmo+GnJGFko2MjHSFeoiDb42FfpeTc3SGcpGDbn+LkoeGlJB9e4KFl6SNf6WkjYCOiYSUdYKHk25si6iAgouTjYibnoiLkqqioI+AdJSXiH6BeJSvpH+CnHGPhnmTjoaBe3OpjXJ9fXqXlpuEjXh7fX2IlJWTi3eRmaGihXt/imyMhlx6eXN6cWlufpOKcYB0go+Uk3GGhIJljX9fgYGMeHZzlHVwem9viW+Fhl93aXiOZoKDho+qnH90fZZpiYhvfnV7gnRtbGaMc3d7l3eEWmpXeY9pbndycW93eG9da4VuaGdWWV5WXGRqY1VgVF1RXm93eWtqd2Rpamp1fHBxdHNhb3Vic3uBeHV5gnV/gH+BeYuFgn17bYBtZHluXlduZ2h1a3hqaWlkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbqpp4uhopunpJmknauhn4ODlqqQnZ+ImaaaqJiCgZyLfpaUh46KiYxygnyOfH6PhHuXjnRyg3CVhnx9kouGho+GeX6AhpijjHumn4qFj4+ElYKGjph3cYSqhY2RnI+Hnp2Gi5unn6Crg4mNlZt/foqXraiQk6iReHGfk4V9lHB/q4dxfpVxam98gZ+Lf5GOi2huXYSNjZydoJBzl42JcnVsg3Z0gFlyb4eRgn5/jGpdaWR7hYSIgGBpeHucfISNg3aCh4RpeoyJbGJxc4N3X3ONg4qRqJaHZ42Ogmx2ioJugop3bWRlY3mCepVaW2lmbXZbe3l3dG5zcoNmXG2Ja2tiWVhcWVhqcVpeYFldXWRyfXp0b3Riamppe3xxenZ0ZG10aGx7f3V6fXt5eoCAf2+GiYN7fXN+enJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyrsaGQo6Gan5+YnpmooaB9gparjJ+ThpqhkaSVf3uYhXySmYmIhoaKcnyAi3aFi4KElopyb4BzmIaEfpODg4aKgnqAhIqan4+BpZ+Gd46XiJWKi5yXhIN5rIGQl5iTiZ2choehqp6ioqOLiJObnaOZlquiqKehk5yJmZF+epCQhql/gJORkpOcsaWalJ2PjbGSmISmjY2WnaGKkZ2EiZOLbH2Od3dmgoaRi32JnoWHi4+IiIGFhJF3fHt1m6SKh4ugjIeWf4CNg4F3cXWGhH94iYiLkaeRhIeOh4KLj4p6g4iGjH91aoCDfHmZaXFoYHOKcH17d3Zvd3SBXV5vhmduX15ZWlxTZ3BVY1tbYGxndHt7cm5vY2ppaH97bXh+cGhwcGxmgHtygoB3f31/hHttg4yFfHp5fH56g3hOZHZqc25xe2RrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2Inrqfl6KhmJWZmJSYpKCcen6XqY2djIWfnIqdlnx5lYN7jpmJhoOEhm14gH9ygId+iJOEbWt+epeHhIOQfoCGhId8h4OMmpyShqmdgnKKj4WSkYuckXyNeqmDjZGXlY6bloWFm6afopqdhoOSmpmZkJmmoaaenpCXgpONeH2JkIanfH2PkJGGmKqhnJOcjo2pjZKAno2JlZughI+YgIiPhHF5hnJ1YX+EkId2jJmBg4+ChoV/hoSVbnp2dZSkjI2Gm4aGkHWBjH5+c3N8iYV7eY2PhZSokIeEj4GCiYiIdIKFhoh5bWp8f3ttaGtsZl55f2d8e3Z0dnV7d1xgcH1udGBjWlteUWZsU2RaXWBqaHR5fnBsbGNqameAf2tyf2trdG53boR5boaAdoKAfYV3cYKNh357e3yAe4KLYGl7a3VoaoNkamNgaVxjdWdvYnVtbFRicXllb3l6cmVqbW2Lip+4mqGkn5OSlpeLmp+enHp3nKSQm4mGpJOKmJl5eo2Fe4qRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hYSHfI+AjpubkIemm39wioqLkoagoYqFjHynkIeOkZaSlpJ3jKOgoZ2Wmn+BkJqYk42ao6Kkm5iSnICQh3uBhpGJoYF+jY2PfJekoKCSmZCPpYyPgZySipWZnX+Tk3+Ij4N1dYJxd2F9gY6Gc4qWfYiMcYx+goWGj2h4cnqOmpORgJh/iYxzg4l9fXJ6fI2GfHuTjoSXppSNhpB7hIWGhHN/gISFd2Rwen54eXBramZefnNofHV1c3xzgGpeYHR2cHdkY1hdXlJpaFNkWF5gZ2l1eIFxZmtjbGdlf4BqbX1nbXBqfXeFemuLgXKBgX6BdXaCjYZ/fHqAgX1/j2pyg250aWKIaGxiX3FWdG9sbWB4aGxXanN2Y3R6enFia295iY2fs5Klpp2OkJiPhpygmpt7daOejZd/jKGKiJqWeHyGh36Ein6IgoF/cH56dHWChX6JkHdnY32Gl4qCio14fYCNg3mWgJWXlYyVnpp9b4uBkJOFpZuHjImDppWEkYqVl5KRdpGdoaGYlJd5f46Yl46Wmp2lnpqUlZ17komFeYeYj59/goqOjHOXop6gkpiOj6GMjIOYmISUl5p/mY59io6Cd3J+bntkgHyLhnGHk4CRgmuHg4GAioVmdnB9iJSajn6UeY2LfYKJfnxygHmLhnqFkouMmaOXgoSLdoeDgYB0eH+GgnNednd8c312ZmtkYH5pandzc3V9cXxjY2FzbnVybWFZX11aa2NSYldfX2dqdHmFcGJqY2xmaHyCa2h0aGxvaH98gXhsj4VxgIODf3R8g4yBgH56goN+fJBtdYl0dG1mimxqYWN1VoNpcG1geWdsYWp2cGV4e3lwX3FshYWQna+Yp6mejo2Xh4Wfk5WXfHaomomYeZaci4yZkHh8gYt9fYR7gIKAeHN4eXN9gIN/iIqAZF59i5SHf4WHdH1+in9+mISWk5aMo6CXfnGGe5ORiqaPjI6KkqCRg5CPk5eRioGPmKCakpCRdICOkpSJnZ2ep5mYjpWXdZCRi22ImpGbfIiJkIlvl52aopKVioydi4aBk52AlJSWiJqKfYuKgntxemt2bXt/jH9uhZODlHhvgoR+fouBZXNqfYKYmIWAjnWSioV6iX93eYF+h4F9hI+GjZWlkXmFgnSIhnt+cXJ+hIFrYHl0eXB8bmBtYmV7Ym5vdnN4d3N0YXZgb2x1bm9cWl5dXWldT1xXYmBnbHJ6iGtfaWRqY2h3h21mbGhpbGeAfHp3bpCIc4CDhH10gYaJeoN9eoGEfXyOcnmLeHhtbIdraF9pcWKHaHFvZXZnbWxhemhqfHt3cGF3bYqBmZqroaSpnoqLkYaJnoqUlnx2rJeMlnyek5GWlIh2fnuKfHyAdnd/gHB0c3pvhX2BgIl+fGFcfo+Shn+EhHJ6gIZ6j5GHkZGbkaSak4F9gHyNipKjiY2KjZaajIWQl5KVjYiIjJKdk4+MjW6EkI+RiZ6ZoqGYl4qXk3CMnIZniZuQlXuKhZCKcJaalKGRkYiKmIyCf5KffZORlI2akHyLhoh0c3VrcW91fYt1b4aRjpNydIB8goKJfWVybnp/m5V+hYp1koyCdYp7cIJ/god9ho2LhY6Wqo57iH1+ioR2fG5sfYKAYWZ3c3RuemFeb2BrdF5wanp5eWxycGV5Xm5sc21zWFpdX2FpWk9WV2RiZXBxf4dlXWloZ2JncY1uY2hoZWlngHp3dW+OhXOBgYN8dYKJhXiFfHiEhnqAiXd/i3t6cnmDa2tfb2h0f2txbm1xZ29rZXthbX96d3Brd3eJf6OZo6ihppuIjIqBj52Gkpp0f6iTkY2GoIyVk5CAc3x2hXh5gHJzeoZscm95bYl2f4CGbnFbWX6SjYiAgYF2dYF/f6CGj4qRm5egkpZ3iX6AjIicnYqPhpKXloWIlJiOlouKjY6MnYqOkYRtiYuPkYqclqGcmZaGmYlsh6aFZ4ifjJOAjYSMgXiTmJKdkZCIiZSNf36QmX2SjpGOm5N9i4GEcHZwbG5vcHyGaXODj5iKcXiAdYKJg3pndHB3gpuQfYqFe5WTe3iKdXKLfIeOe4uHhYqPnKWJfIR2gYl+d3dsaH1/fltxcnFvb3ZZXm9gcGpeb2p8enFubWptd2Bwb2txbVlYYGFhbFdQUlllZWF0b4SBYVxrbWRjZWuSbWBmZl9naoF1cnJvi4B0f4KAeXaAi4B5hX53h4Z2g4V7h4t/e3aKf2pxY3xihXxvcGx1amhubHd3X3F+eXtzdXN/gn6llZutn6eWhYyDfpaVg46ddImek5KGipqMlY6MenJ4dIJwcoV0cXWIbG9sdGyHdoN9f21uVVGBq5SHgniAdnKDeYKggpCBkpKYm5GYd5B6goySpJqTjoiUmJKEhZaYi5OLiY6Ph52EkYt9couFiI+InJmfm5eVgZWAaoifimiIoomUhZKEinGDkZePmo2PjIuOjXd7k5F7kIyOk5iNfIl9gWx3am9rbG17gGJ6fo+XgXd6gXiDjX16aHVtdomXjICJh3yVkXJ7hnF4jnuLjnuJf4SOkZ+fhn18d4GKfHZvZ2l+f3Zddm5ta3ByVV1uYnJhX21ueXBocGZnc3VocGxhd2VdVWVgYHFTUE5bZWNcd2+Ie15caHFiYmVlkWlfaGVbZ29+b2txc4p9dn2FgHV2f4x5e4aAeIeDc4aFfoyMhHx5lXhmcmuDYId+b29qe2BpbXSAdF5zfHiGd3NzhXx4oJCbsZ2mjoKKf4KZiX+KnH6KmJKOhIeXjo6OhHd0d3OAcHCFc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfHB0g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYicf46BeHuMf4iMipycnJuWlHqOeGmLlIpuiqWGlImYhIZjjJGYjZSJlouMiYtwepWKfI+Ji5OSinqHfX9tfGVzb2tte3pcgXmQj4F7fn+Aho97eml1a3SMkIqDh4Z+l4xtf4Bwgo6Ajol+hXuEkZabnIx9d3iCjndya2RufIBpZ3NuZ2hzbFNdb2RwWl9scXdna2tiZ3hzcHBkYHhgYFVrX150T01LX2ZiW3dwiXRcW2V1YGFkZI5jYGZiWGlzdG5rcXaLfHR5hoJ2d36Lc3+Gf3qJf3GJh4GQioh8fpl2ZXNufGWHfm5va39Za255enJgdnp7jXZydop2eZ+MnK+boJCChXiIlX57iJyGhJ6QjoWMl4STjoeBdXdveXFvg29tbn5yY2R3cHxuenxqaGxipJrB3K7vonNsdYN1hKGEkW6Vj5Sfk5qAkXCFi6OXiY6VipCdloOAlI+FiI+AkoqKl3+He3Z/iXiGhY6cmpeZj5B2i3hwiYuOf42mh5SLnoaGXouUl4mOiI2KioSJbHyXg36JhoqRkIZ2h35+bH1keHVqb3l0WIh7koeGen9/gIaNf3pndGqBi5CLhISBjZiGbYN3b4mTg5KGf4R7gpKXlJqRdXR4h4t0cnBkcnZ/X3Jsb2FodGZSYHBna1VfbnN5YXJjYGl+cXJuW2NyYWJWblpcd0xMS2NmYF11coltW1xkeV5gZGaEX2NjXlhpcmtua3J3i31zd4SBeHh8iXGDhHx9iHt0i4iHlYWMf3+Yc2h1cnlti3puc3CAV3B6dnlxZHZ5hoxodoCJcYCdh5monKKShH1xjJN4eImcg4SfjI58lo2AmoiEfHN2cHNqb4Fsam18dF5gd3Z7cHR6Z2BlfOvatcnD3IlzbHSAdoqaiIxpl4+Om5ORgYhwhYigjoWLlYqMl5N7jZKHgoiQepGLho+CgHd4g4Ryh4KSm5aTmIaNdoiAcoeEjImcpIWWjqCEimGDlY+FiIWIjIaAh2h9lIB+g4WKjo+Ccod/gHJ3aHZyaXR4bVqMfZODhn2Ag4GEi4N3YnVtioKRjIOAgJOSfm+DbXqIkYiUhX2Cf4KTlJKYiW5xeYuEdGpvaW92fl1yaG1caXRfUWRxaGZTX3F2dGBwYF1og3FyaldnaWNoV21XW3RMSktlZl5hcXOFaVtcZXleXmRnemBkX11Za25lbmpzd4p9c3KBf3t2eohzhYN8f4d2doqFj5iBjYJ7k3Zsd3Z5eJN0bnd6fVh5hXGAbmd4dpGCZHaGhXGKl4aaoZuhioZzb5KLcXaNmnyJmYiJfJ9/hJl/gnlyc25vZHJ+aWZsd3dbX3h7enFxf2lhZ2F/1baOkaZ4bnF3e3GSkIyGapiNiJqQioV6aIeKmYeBkpCGhpeNfIyMgICJjXuQjX2JhXp1e4N8cYaAlZmOkpSCiXaEiHiGg42VoKGImJGhgIlhf5SHhIeDiIx/f4JmfZGAf4CDjI+Qfm2DfYN1bG13dXR3dmtjjoKPgIV/fISAhYl/cGB0coZ9kI6DfX+SinpyhWd7hYyIjYV8hYCBlZCRk4Vub3iLfnRsbWhpd3pgZ2lpWGt0WVJocmliUGJyeG1iZV5aaoRudGJcaGBlbV9vVFpuTUdOZmRbZm1xgGtaW2NzX1xja3ZkZV1dWmxsYmxqc3aGf3Fvf3x9dHiGeIWDfICHdXiJgZKVe4mGdomBb3h5e4SSb216gHZeg390gWxoenOUc2dzh3xykpKEmp+bn4aHdXWTfm11kpZ9h5CDio2afIyadn52cW9samF0fGdiaXV5WmB3e3ltcX5lZGhoV52PX3Jzl7zEhHZxlIiPfXGWi4abkouHcmqIjpaAe5WLgYSai3yKhXx7iYt/lIh1iYZ2d36BcnWGgZ2ThZSPhINygYp3hn6Mm5+biJWPnoGJZn6Tgn+FgoiJcYF9Zn6MfHl/gIiMj31pgX6EdmdweXhzd3Rsa46Gi4KLgHmCgYWEgWxfc3l7fo6LhnyCkIF/c4JqeoWJjYeFeYV+gpmOkY1+bm16iHx1c21lZXtzYVtwYlducVNTbXJoYU5ndXhmYF5dWW+Bb3NaZWJeam5gcE9ZalFEU2ZgWWptbXxuWVtdbWNaYnB2Y2ZcXWBraWNsanN2gYNxbX58f3R1g3qDgnyBhXZ+iIGWkHiEinSBiHJ4eX6NkG9veoBxaYF4en5tbHt1lWtqeIR0a5ONhp+ZoJmEh259i3Vpd5eOfoGKgpSXinmPlW96dHFramRgc3poX2Vxelpgcnx5Z3F5YWVlj7Gyd0tiWqXZ0JZxe5CKj3d9k4qEmJCLhW5rhZKSenmShoGEmIp8hn93d4mKhJaAb4uIcXV+e2p5hYOkkISTjYR/cICEeIZ7iJ6bl42VkpaFiHB7k4J9goKIgm2AdmiAhXlygIGDioh8ZX5/hXZkcXOAaXlxcHWZjoaDi313eYGFeoNrXHJ/c4KJh4p+h4p7iXOCb3KFiJCGhnOFe4KajY6FeW5ufYN+dXljZWh7bl5YdlpXcGtOV3FyZmBLbHd0YV5cW1p1fnNwWGddZ2pyYG9OV2dSP1hmXlpvamd5cVpaWGtlWWNweV5nXF5lbGdma2lxd3+Hbmx/foB1cIJ7f4J/gn92gYSJl4lxgo1xe4Z8enmDk4x1anl+a29+dH98b3J7epNvboF+eGeSi4KhmZyRgoVnhoNvZ3mViH1+hIKYioF8jY1peHNra2ZfYW95bV9ib3hcZGuCeWFxdl9lZdTqvYsyOj6Ljn9xeIWHjY11gpaMfpKNi35ta4SMjHV8j3+FgZSIfIJ3bnaHhIOXd26IhWx1e3VmeYKDpouCj4uEfm6BdniFfImfko+Sk5SOjId/e5KGd36DjIJqf3FogH55bnx8gouEd2J6hYJyZHJpfm51cnWCnIyBgIWAdHZ+gHOCb1xugHV5i4SLfIiBfol5e3JtioWRhYxzg3qAl4uLgHVtanaAf3RzW2dndW5XVntSWW9kTFpycmVbSXF4b1xbW1lddX91aVliW2hmb2RqTVdlUD1dZVxddWVgdG9aWVRuY1ljcXlaaF1gZ21naWtpcHd9jmxpgoR/eW6AfHyBf4F6dYKAjZOEcIGLbnd+gHt7iJKJf2h6fWpze3KFenN2fX6MeXiEfXxrjI2Dm56WjIGAbIx9a2h+jYt6fX6DlIJ+fYqIa3ZxZ2hiW2Jncm9gYWtzYGhwiHlic3ReY2SboI9uXDVar7V0aYCIfJGGdYWVhXOOiol2b2yEgod0eYl4iXySh3l+cmd2iX5+mG9xh39pdnluZnmHhKSGgIeMin5vgHeCg4CPnImElpOZioyFiXyQiHB6fYR7aH5saoB7emp7d4KIgXJgd4F+cmRyZ3aDbnV8hpaSgn2CgW93enx1f21ZcIB3dY2Dh3iIdoOJe3l0b4uCkYKGc4B+f5SJinxvbmltgYF0bVtlZHFvUFp6TVtuW09bcm9kVUtzeGlXWVpaYXGBdWFeXWBnZGlpZk5ZZ01AYGNbYHVgXXVsV1dTdGBaZG9yV2peYmhqZ21saHB3fJJraISKfXxvfn57gYCBend/f4qLg3F8h29xd4N/e4mMj4NpfXttd3h2inZ8eH+Chn+Dfn16bYSMiJmjjYSDe3WLeGtshIeQeH16gpGAgH6Lg3BycWNmXllmX3BwX2BncGZqboh0YXRvW2FkanZ7gL+cpqTIuHGEgnKSe3eFkoJzkIuHcnJvg3uDc3SGdIh3k4h5eXBjd4d6gJNpcoR2Z3d1Y2p8goedgYB/jo9+c4B1h3uClZKFe5iPlpCIgol7iYlreHl+dGd6aGt/eXRpeneAg31oYHiIfWtrdGh8gWl2goyRlX97fn9xfHZ8dH9iVnh+c3SLhYJ9hHGHinh5cXGFhI6Af3p/fnaPhoN3anFobIeBcW9cZmBxbElkdUtdbFRTWXJuYlFPdHhhUlhYXWFwg3RcYVxpZWVka2RQW3BJQ2NgW2NvXV14Z1RXVnZdW2VuaFZrXmFqZ2VubmhwdnqSbWmIjHl9cnt+eYKBgXx2fYOIhoNwd4RybXeCgn6Ji5N/cIB7d3h6gIx0gnh+gYGChHmAdW9+ioubnoh9hXp3hXtndIWLkHl+f3uIhoR2j4BncG5fZFxYZVltc2FgYHBsa2iIbmF0aVlfZG6Ad6naqceGh7JxiHdvjHR6hY1/eZKJf3RzdH13f29xf22FdJOFeHRrYHqCeYmPZnKEcGd1blttfYCQk3+AeJGTfnl8bop4g5ONhneYjJOQiIaFfH+FbHR2fmxndmRte3Ztand3f398YWJ4hnppdXVjfnxodYePjZZ8dYF3cYB7fW6AWld1f3B2hYh/gXltiYZ0emx2goSFf3x+en10jIJ9dGh0ZW6Kg2xzWmhdc2RHbW1LWmBXVlV3bWJQUnR2WFBWWF5gcoRvXWBjbWVkXm9jVFxxRkJlXl1lZ11bemJRVlx0W1pna2BWal9gb2Zma3FocHZ4jnRqjo11fnZ4fXeBhIF7dH2DiIeDb3KAdHF1foWCiY2KenZ/eIN7fIWHd4d8fYF+hIB7fnJ1eYyNoIyJeYl2dIJ4Xn2Fl4t4hoNzhYaEd4l6Ym5tXGJbW2FWaXNjYFtnbnBmh3FhcWZXXWNrf3zKzoe5oWptbYpscYNxe4OJfnqQhHl4c3h1dHtqbHZjhHWRgnZvZl99gnqMimVygmtqcWNYbHqFm4iCgXKWlHd/fW+Kc4WNjop0mZCSiYaLg3t5fXBwb3xmaHFhbXhxamxxeH19el1leoB4anZ4ZoN3aHSIjI6VfXKIam9+gXlvfV1Zc39udIGLfIJvb4qAcXdpeIGCgYJ4fnN8dYd9e3Nnc2Fui4BrcVdpXHZbR21qTFZVXVNVe2thT1R1clBRVFdeY3WGaV1gbGpmY1pvYVhib0dBZ1xgZV1cVntdTlVlcFlbamhdV2dgXnJlamhyZ3Bzd4Z4bpWLdH96eH55g4h/dXJ/hoWOgnBwe3h3dnmGhYeMhnl7f3SLfX2GhIOHfn5+fYd/fHh1eHiRk59/jHyKbXV/eGSDhpWFc5GKb4WFgXqDdGRuallfW1xdVGdzZWBYY3FyZ4ByYmtlV1tgan94vq57n7duYXOFaHN6cXiBhHp9i353d3J2b3t2ZWpvYYd1joBzamJefnh5i4RmcX9oa2taVm93iKKAhH9xmZNygXp2hG+DhJSKdZeKjomFiYV9eHRxbmh4X2psYG12amdqa3l3enZaZ318eWZzfm2FdWV1ho2Gl4BwjGdre4R1bnViXXF9bHV9jHuCZ3WHfm5xaXaAeX+AdH5te3yCe3hxZmxhbYl9bGxVaV92VUppak5RTmdMWHtoYU5VdWtMUVRVX2d2hGdeYXFoZ2JXal1ca2dKRGpZYmNWWVV5WU1WbWpZXWtkXFlkYl50ZW1kcWdycHWAd3CZhnZ/fnd/fIWHfXVzgoiAlYJuc3l7enNyhIeJiIN4gX11j358hIqNg4GEe36Lg3t2e3d3mp2YeomChml2fHtsg4OSf3KOgXCFgn+Cf3BnbGdYXVtcW1NkcGReV2JydWp1b2VlY1dcW2h/cG9ygHOJZGR5fWlzdXNygYN3gIN4dnJ1bWp6cWFna2eGc42DbWZdX31we4l/aW14Z2pkVVdyb4ymfIR7dpaRdH10fnxvfn2TiHibfYmHg4eDfXVwcWxndFxsZ15sdGRnZWl6b3tyWWeBd3VocIF4gndid4aLfJWCb4xqbXuCcWd0ZmFuemhzeIp7fmJ2hHdqbHJ1fHJ7e3R/aIB/gHl3b2RmYm2Fe2xqVWhhb1JKaGpPS05vR116ZmFNVXRkSk9TV2Frd39mXWd0aWZgVmRXYnBcS0tqV2NhVVRVc1ZMWHVkWV5rYFtaY2RfdmdtYnBpdG9yfnR0mYJ3foB4gH+GhHp9dYKEf5eFbnJ0fHp1cYSFj4GAeot1c5B/fIGVjYCFhH19jIZ6fYB3e6OlinmIhYRrdHt6dYKAi3puhHN5hH2Cg3ZvamllVl1bWlpTYm5kW1hhc3tqaG1pYGJYX1ppf2lrb4BnbGBoeXhqcnNzbYOAen98dXRtemhqeWpfZW5ogXaPhGdlWGJ3an+He29qcGdmXVRYb2eNp3aAenyQjnp2cYBxdXh7koJ6l3aGhICGiHZqcnVnZ25bbGNdbXJfZ2FqeGh7bFtug3J0anCBfnp4YXeGhXmQhXSJcnB6gXJjcmldcXhlcnSIfHljdIBxZ2p5dXNteXl2eWWFfH95d3FkZGNte3xqalRnYWVTSWtmT0dRakVgd2ZhTVNyXUpNVVllbHh8Zl9ucWplXVZhVW5uVkpTZ1dlXVhNVWtUSlt5X1tfa11dWmJlX3lobGFvb3ZucHd1eph+dn+BeYCAh4Z6eXqDfoGTg3F0dH56dnSEiJF9gHyQa3KVgHuCn4V+h32AfoaCgIp7d4Srnn96h4eDa3KBeXWAfoB0boZufIBzioBqcG5kZFhfWllaVGJqZ1taX3WCaV5tbFxhV1xca4FlcnR9aWlca3Z1Z3N2cWyEe318eHVxbHlnaXhmXWRzaHp3koFjY1RlcGiChXh4Z2lqYVdWWWdjjqdvfneAi457cXJ/aXtxfI59eJBzhX6AgIZuZHVyZGdnXGphXW9vW2debXRlemhddIBvcmtxfH51dmJ0hox7iYiBgXlzdYB2YnFuW3J0Y3FzhXx1ZXOAbWFte3Branx6dnRnh3Z7e3ZxZWJkbXJ9aWtTZ11cVEtxYlBGVWBHYnZmYUtTb1hKTVhYaGt2e2VlbnFnZFpXXlh3ZVRKXGJXZ1dZSFdkUEhieFpdX2xaXlxiY11+aWpgb3R4bXBudoOXenKAgHx/iYyGfXV1hniHjHxzdXWBeXp6gYyOfH6EiWlzloF6ip1+foV6gXp/fIaJc3GPrYx7e4aPfWRxh3lzfHp1cm6GbHt+bI96Y3BvYmVdZVZZWVdjZmtfXVxzhWhYcW5bXlhaXGx7YnB3dWxhWWxzc2d0dW9sg3h+f3h2bW5zZGh0ZVtndWZ2dpF6X11SZmdrg4J0fmJkalxUV11iY46kaXhzg4aReW5xfGp6b36IfXaKdIJ5fXmAaWR2bGBmX15pX110a1llXG9vYnplXHd8a25ucHh5dHVlc4STgIiDiXt3cHN/dGN4ZVxxcWJxcoJ8dGdygGVfbndqZWh6fXVvcIN2dH1zcmJfZm1ufGRoU2dXWFNNdl5QSVlXSGJ0Y2FJVG1TSk1aV2pscnxjbW1zY2JaWlthd1xTS2NdV2hTVkZYYE1HaXVYXmBsW1tfYWJchGloYW54eW1vanaBkHltgn6AgZOIhIF2dIl0jIZ0cXZ2gXh9fX6MkH9+k35wd5WDfJiSeYCAeHp+gHSIhHRxmaF6en+JlHdjdYd4c3d0a3Rvfmt4fHCRc15wbmBnYmxUWlpXaGNtZlxccYllU3JuW1pYV2BsdmNpdWppXlltc3Brc3NzaYR8fn56dm5ta2RpcWNbanJkdHaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEknVsbHtvcHJ8fX1zgniBdHt6emRldWddYllgZ1tedmhXYl1waGF3YVt8dmlqcm94dHN1aXGCloSHf4V3dGtxfm9neFhdbG5jcnOAenNncH5cYHByYmBrc39tbnZ/c3F4a3BhXGVsbHpgZlJlU1ZRT3VaUU9YUUhjc2FgR1ZqUElQWlZra2t9Zm5vcmJbWlhZbHFXUlBmVlZoU1RFWVtOSHF0WF9jbGJYYGBhXYtqY2RtenhscGl1eYd7a4N9f4SafIOEeXyHbY+Hcm52enx0goJ8i4+Cgpd0eIGThYGeiXWBgIF0f4JxiIN2cKGWc3qGi4Z6ZXeKbm16bmZ4cHprc3ZzjWtedW5hZ2VrUl1bVWdhbGtaXHGMZE9vbl1WWFVnaXNoYnRlZFxYbXRsb3V0eGqGfH97h3aPcmNka25hXG5tY3N4h2taVFZjZHh9fXGGXWRfY1RaX1lilZVjbXCDhYp0a2l8cGd1eXV9bXt1dnB7f3VfZnJjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXRxdHF1d2tthZSCiX2HcnNncH9ydHBUXGdrZnJ0gHZzY212VmNybFtfcGd+Zm54fnN0c2ptYVpkaWp3XmVTY1RVUFNsVlBWUlBHZHJfYUZYaU5JWFRXbmllfWlseGxiV11VW3RkU1JXaFFYZlRTR1lZT013dlpfZWtpWWFgXl2ObmJma3l1bm9pdnaAf2yDgH2HmHuAh4GJfmuTiHJmdIB7dYCDfYmOf4uTcnyKkYWHn4Z7f4aMc4GGc36Cdm6ki3KAjYt2d2x6jGBke3BmeXN4bG1xd4NnZHxtY2ZnaFNfXlVnX2xuW15ujWhOaW1gVFZTb2dza2V4ZGRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVweH5nWlZYYGx4fHtwhF9jX2dWWF9XY5uIYmtwgYd9eGxsem5deHNtfGt2dG9wfIFzWGpuXlhcVWFiV2RwY1NeYmlhYmxaYX5sZmx0dm9td3dsaYaNgIp7iW5yZnJ+bnRuZFthaWlwdIF0c15pbVNlcWVWY29kfGRzeH13bHBta2BZYWZndFxkVWBVUk5XZFFPW05PSGRvXGJHWWlNSl9LWW1kYHlpbn5lYFVfVF11XFNSYGZOXGBVUklbWFBZdHVdX2VraFhiYFtejXFjZ2p4cXNuaHZ0e4RygoN6iI5+fImHjXlukIl0a3OBdH9/iIWHkYSVj3l9jI6HkZuEgHyMhXN/gXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY2NjY2Njo2NjY2NjY2NjY2NjY6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6OjY2MjIyMjIyNjY2NjY2NjY2Njo6Ojo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmOAvru7u7u9s21mZ2dnZ2dtbm5ubm5vamZnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fW37IxMTExMa7Z15fX19fX2VnZ2dnZ2hjX19fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJjJKRkZGRkZCJiImJiYmJiYqKioqKiomIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkZKRiYeOipCSk46Ijo6NkYiPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6Mi4uLi4uLi42NjY6Ojo6NjY2NjY2NjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCRioaNh4aJhYiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJGKhImGhYWFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+NhYSHhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4WIhoaIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2Mi46Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2hoZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj06Ojo8Ojg5ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/QD48PkA/PT09Pz09PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjs+PD89PDo+PT9CQkVAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8e3t8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/O0FDREI/PkE/QURFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpISUdISElHRkJERkREQ0FVdIeJh4eGiIJXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKS01KS0hIRkZHRkVQbISHhoaGh4eIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz8/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9fn99fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTUxLTUxJRkpWbIGGhYSEhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXp7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lJS0xPTk5RTlFecoGFg4SFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QTs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5/fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BCRkhLSExLTlRne4SEg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODo7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn9+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9OjxEQkRGRkRWeISEgoKDgoWJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc3OTk3NjY3NjU6Ojs6Ojw4OTg5OTg3Nzo6Ojg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09RV2tycnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PEQ/UH2Eg4OEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj48Ojw7PDs8PDo6PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pj0/P0N2hIOEhIWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVCQUFCPkBDQUA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEFAPz9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6Ozw6Ojo8Oz0+QD89YYWDhIOFhIaJiYiHhoaGh4iJiouLioqKi4qLXj5ER0lLSkpGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj06PDo9PT4+Oz48Pz5CP0p+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqHV0dMTE1LTklJS0hJSkpJRUNERkdGRENFRkRCSElLR0hHRkdHRUtKTElLS0pDRkNDREJBQUNCRENDRERDQT08PkBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc7Pjs8Oj0/Pj88Pz5CQUQ+aISChYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtGREdISElFRUhGRkVMTE1JSkdHSElKTk1PTUxOS0hGR0dFRUNGRkZGREVISEZDQT9ATG1wdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw6Ozw6PT88PT0/QENCSFN+g4SEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMTExKSUhGSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTk9OTE9LSUdJSkhJRElISEZGR0dJRkNCQUNVb3B1d3h6e3h4enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6Ozc8PTo8Pzw8PT9CQ0NMbYSDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIuLi4teUlJQTU5NS0pHRkNISkdMSkdLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OD89PT5ARUQ9QkRDRkp1hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUZGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1JQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz08QT9BQURUS0JISUZJS3iGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hKSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQUNGRENES1ZQSk9PTlBQeYaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVZdWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01LTEpJSUxNS09NU290dnh5eHd5enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SExJTVBLSUpPU1FQVFZVVlR1hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXl5bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktKSUlGQkRAQTpPUVFXWFBQUFFSU1JWV1dXV2yBgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaWlhcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpaUlNRT1FSUVVSVVNWXnV4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU09PUU9RVlFTUlJUY2R2gIOCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JVUk1PWVFNTlFTVVVNUVNSUE5MS0dDSUdSU1RaXW1ydnZ1dHR3e3p6e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRgZF1eW1lVUUxJTElhbJJ0UFFTTVFSUFNbUlNSUVJVVWJze3x+gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5CQkNDQT9EUENDQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSEJDSEdISkdDQkFDQE5QTVJkdHV2dXN0dnl8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZoZWViXFhTUVBVUnNXZVtPT05MUVJQVVlTVVFRVFJPVmBrbHN2ent4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojo+QD8+Pj5qUEthRUZISUVCP0hMTUdNUVVKQkU/Pjw9PD09Pz0/QUNCPz48PUI+SU1GVW91dXZzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKT1BOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxuamhgbnJpbWxxdXt6fXt4enx8eHd4ZEJAQEE8OkJDQUFDQVtcT3tOT09OS0xNT09QTEtMV05IR0FBPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1dnV2d3l8fHx9fHx8fH59fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT09eXFpJR09RUU9NUFFOUVJTVlhTUllUTllaW1dZXF9eX2VfXV5xd2teYGdrd29vbGpvbW5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FXUE1JREY+OTk2NTg3OTc5OjM2NTc5NTxCPWZ0dXd4d3p5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LU1RTUFFVT0xSU1RXWFNUWFFMWFlZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT01MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnJ1eXl6e3t9fX19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5NTUxKRlBQVVlTVE9KTk9VU1RcVlJVU1NPTUxJSEhGPz49Ojc4NzY1OTk2NzU2NVdxcXR4enp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFdZWVlSVU9JR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFBPTk5NUE5UUlBSTElMS09SUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVlFTRkZBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPTNAPmpvYVJSUUBHVFFPUFBRTlFPUE9MSkxMT1BOTVBRUU5QT0pMTU1LR0VFQ0I7PT08OT1HNjY3NkRucXV3ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVVlZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JCOERNU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FMTk5NSU1MSUtLTEtHRkZFRDxBQT47QEU7PDg5VHJzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1BQEI9PkVIRkRGRklHSkpARkFBQEVHRElPSFFSYVxRUFJPU05PT0xMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZFP0JDPj1CRz9CP0BkcnV3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU05LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48QkFAR0pFTU9iZVBNT01XS0xOS0tNTUxMS05OU2RNSkxSSUlJRUJJSkxNTkpHSUZCQkJAP0VGRUhETG9wdnp5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkFBRERHS0ZESUlHR0hDQz9CPj8/QD1DRURMTVFUTEpJTVRGSUlKTElKS0lJTE1PUFFQS0dDS0dDQ0tKTE5PTklKSUdDQ0NESUpNTElac254eXh6ent5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFISkNGR0hHSktJSkxER0I8Pj06Ojo7QUI/PUJCQ0NIRUpMSkVJSUZHSENDO0FAQj5AP0JERElNT0dISkdIS0RISUtNSEpMSElKTEpNXVJISUROR0JFTEtOTlFOS01KS0ZHR0pNTlJOTWNuand2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhlcEZKQ0ZFRkRFRUZFR0NDQD08PTo7OjtBREA/QkNFRUlGSkpMRklJR0ZGREI6QUNDPj9DQ0NER0tNSEpOSERIRUlMTk1ISUxHRkZJSUxOS0lIRU9JQ0dOTVBOUE5OT01LSUhJT1NRUk5TZ2dmcm9zeHZ7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZl9wR0pDRUVEQkJBRUBEQj4/Pjs7Oz07PT9EQj9BQ0ZHSkZKSUxIR0dHRkVDPz1ERUI+QUNCQ0VHSElHTVBJRkVGS05PS0ZISUZFQ0RJSUhLSUdIUEtESk1NUU5PTk9QTkpKSU1SVVVSUFhlYWFtZnByb3J5emdlaGhjaWxmcWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VERkJBQEFEPEJBPkE9Ojo9Pzs+P0FCP0BCRUdKRkpHSUdGRkZEQ0JBQUVGQ0JCQkRFRUdHSEZMUExITklKTEtJRkhFRkVDQ0hISEtKR0tSTUNPT05RT09PTk9PS0tLUFVXVlZUWWBfXWlgbWluaHJzYmVmZmRoaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01HR0VHQUFAQ0Q8QUFAQzw4Oj0+Oj89QEJAQEBERkhFSEZGSEZFRURDRUJESUZDR0VBRUdFRkZHRUlNS0hRTEpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9NT1BNTE5TV1ZXWVZYXlpdZGBoY2ppZ2tfZGVmY2hnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hBQUJFRTxAQ0JEPDc6PT47PjtBQj4/P0NFRkRGRERHRUNFQ0RGRkZKRUVJR0JHSEZHRkVDRkpKR01KTEtISktGSUhKSEVLS0xMTk9SVE9IVFVUUVRQUU1OUU5NUVdaVlpZV1peWlhhYGBgXmhlY2BkZWdnamhoamdobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSENBQ0dFPEBFQkQ8ODo+Pj48PEJCPUA+QUJGQ0VDQ0dDQ0RERkdHR0lGR0tIQ0lIR0lHRkRIS0lGS0hNS0pLS0hLSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9UWVpZXFpaXF9fXV9jXlxiZGxjYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJSkhKRUJER0U9QUdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERFREZGR0hGSEdJS0pFSkhISkhGRkxISEhKR0xLTExMSU1KTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJmXWRgZmdgZWhqZHNzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd3B3SUpLSUtHQkVERTxBRkREQjs/P0FAQEBEQUBCPkFDSEJFREZHRUhFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0pMTElJTEtNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFiYGNkZWFkaWJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV1c3Bzd3R1dXd2dXV0ZXFza3BxanJ2cHdKTExLTEdDQ0FFPD9FRURDPUFBQ0JCQ0VBQ0RBQUVHQ0dHSEZFSUZDR0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlBMU01KTU1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5hY15gZmNhYmduaGJpaGhteHZtaGlub3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnNxcXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0RBQEQ+PURFRkM/Q0FFRERGQ0JFR0NCSEZCSEpJR0hKRkRLSkdISkhJS0dKSk5LTkxJTEhKTUtaZkpkW0tsUkdOTV9uVWxzW3FwYndjUlBidnVodWNhdmFYbnFiZHZpbnpmXGx1YGxrVmB3dWhqZ2hmZ2xtam1vam1vc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cnFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj88RERGRENDQkVFREZCRUZHRERKRUVKTEtJS0xHR05KSEpLR0tKSUpKTkxNTUxMSU1MTFtzYmRwXmxsVUxOZXJdZ2VxbG50Z3BpX2FZbm1icHBia2lqZ29xdGV0bm5ccHZncE5Mcnl2a2Fha2VlbHhta3Zsbm9zcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FBPz1CRUZCRUNFREVFRENISEdEREtIR0tNTUpMTEZKTkhKS0pJTEpKSUpNTU5NTU1LTk1NW3Jwb25wcGtqTE9QbVhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcF1gc2xxalV1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dFRUVCQUI9Pz9FR0JHREhFRURCRklISEVHS0pHTUxOSkxNR0xOSU1LSEpNSUpJSkpOT05OTUxOTUxcaGR1XWxxVmtNT1FuVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRklMS0ZNS0tSUkxITU1JTkpJSE5HSkpISU5PTU5MSk1NSlp0cHBvcXFsa09RUm5Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpaXnRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0RERUBAPkNDQUZDSElNSEZDRkpMSUdGSk1MRk9KSldSS0dLSkpOSUlKTElLSklJS0xNTUxJS0tLU2tiWWleX2pjcnJaX1lqb19lZVVrX2NbYWFRYG1oXGpcbmlpZFtvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRkpERUNGQUBBRURDRkJISkxHRkNGS0xJRUZKT0xJT0pMW1FKRkhIS01JSEpKS0tJSElHS0tLS0dIS0pMS0xKSUtMTlRbXVRQVU1RT05PT1ZRT1BRTk9RSkpOUFFkcWlUWVZbW1xVWVpdWF1cXGNmYWFmYmNmX15ma21obXR4cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQEVDPkNHREVHQ0lLTEdGREdKTEhER0lQS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKSEhIRUZMSUhKTktIT1xXXk9cXGBeT1hZU1xcYl5NWFpNWGFSS1lhWlNgZFxhWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETExBQ0RBRElFR0dGS0pLR0VFSkpKRkRHSFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdFRUpHQklMSUpUX1lgWGBhW2BVWFlUXV5aX1JZXFBeXFlOX1xeU1teZF5aXWBjX1lfYltgXltVWVhaX15jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN1eXp6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSERDQkNGR0VHR0lKSklIREZLS0tFRUhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRkNERUJGSkQ/SUpITlpiWV5eYV9SVFNXX19cXVleUVlcTVZfV0tRWVtRW19iYV1eY2FgYmJiY2NlWlJZVlddWl5kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkRHRUJFR0hGR0hJRkdKR0hGSEtJS0RDS0pNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0lFRUBEQUhJQT5ISUZPXWBaW2RdX1RRUlhdXFxcX1tLV1xMUlxZSU1eUVFdX2JjY2NjYlxkY2JkY2VYUldVVF1ZW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0VLSUZHR0lHR0pGRkZJTEpORUNLSkxOSkxJS0pJSUdCSEhRTUtLT01LS0lISEZFP0VCSEhBQEZFQ1NdWV5YX1lfW11VWFhPXFxRS0pWXlheW11WWmFSUl9fYmJgYGJiX2NiYmRkYlhQUlJTXFRcXV1eXl9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0dERk1SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0pJR0RIS1FPTUxQTUxLS0lKREVBRUNIRkFBRkNBVVVFXFReU1ZfWE5UVU1ZWkxKS1RgYVtfWF9eYl1PWWJcYGBfYmNhXWJhV2BfVFFQUVJZU15cW11dXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJU2NRRVdfSUdHSERGTUpQUEZJSEpLTkxMS01LSkpHRUpOUVFOTlBNTk1OSUxCREFDQ0ZDQkBDREBMSENMTFBPTkxGTUZGSElHRkxLTU9QSUxPUFBTUExRU1JVWlhXWVdXY1ZOUlRQUVBPUVVUXFlZW11cYWFlZmNoZGxtcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtOXk1ISFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS1BTU05QUE5PT09ITEZgRUReTERmYkNMWkheXHNtT01WbVhLQ09fVGtWZ0ldV1VeRExRVUxNU1ZRUlRYVlRYVFRcVE9lWmhoZVpVa1RYV1VbXFtgYGFiYmJgZ2lnbmxocnp8fX6BhISEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS1BUSktHYFRISk9KSU9NUlFLTUtMT1JVUk9QSkxOR0hNUVtZT1BQTlBRUEpLUX9RSXxZWXJzV1BtR3Fub2FWUHFxdE9CanNucXNwU29fW25YXVZcWFVraFVdVmNZYFlaXlVVV39pdHV1X2F2X1hiXFxmW19hYWFiXmBjZ21vbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4fYB8foCBgoR8gIN6f4F/fnd3TUlFSE1NQkRMTEdKTEZSVkxLT0hMUlhXUU5PT01RVE5PUVBLTE9HTVBTW1pUUVJPUFBQS0laeF1UeGRoWFJTUHZmdGxwYm5ma1JyTkx3bWpycHNycXJwb2+AXWV6dXhxcXpxfnJ9a3V9YVJofGVzc29zc3x9b354b39yYGBgYmJbYWFobG5rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NNS0ZgXUdBRU1NSEtLSEpQT01OSk5WXllVTFFTTllZTFNSUk5MUElRUlRZV1dRVFBQUFJLSGd4bGN4cW1aSktUeXB1bXVibnZQZGRIZXZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGhuWHV1anZ1cIBhc2h9aWx4fG9fX19jYlxfZGVnamplZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3Z6bnx9eXhybk1JUnROQ0JFUFFIS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OU0pLcm91dXF1cWNoYFZuS3FwXkdoeVd2VEtoeH13YHl7c25hXW1vZFNncnVubXlwd2x2c3RxbG1cc356a215fGx1bnxscXZ1eF5fX2JfXV9lZWlnaGZlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUUtNTkxMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05SSVJtSGl3S2BkdnZUVmxObmx7cmFqZ391VEtXa2d8bG1seF9acHp7X2B6c2Nyb3hxaGR8aXJ7XVRLa192dWxqdnx7bX55a3xwXV5eYltfYmRlZ2ZlZWNbY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxnbG1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTExTU1JPU1JYUldUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFNT1VMS0tSU1JRUk9WVVFRT1JSWFhQTU9VVFdYWFtbVVFSV1tXWFdbT1JUV1dYUV1YVlxVVE9YUldXWFlaYFxncl9bW1pdXV9jWl9jY2VnZGRkY1pkYmdmZm1ubXVmZmdjYGZeXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJOUlFQTFZVVFBUVVhVWlZSW11WVVRXVVlYT09MTldUUE5VU05QTkxRUEtJUVFLUU1KSk9RVFFQUVNSSkhNT1BRUlBQUFRVUlhXXFdTUlBRVVVVU1pRTlJRV1VTWVZUWFRTUVRTVVVZWVheWl9hXVxaWlxcYGNcXmJiZGdlZWViWWBhY2FiaGhqbmNhZF5fY11aY1xibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVJNWFdVVFZYV1daVlNcYFZXVllVWFRRUEtPWFNQTlVQTlFOTFNQTU5VU05RTk1OUVNPVFBSVFROS01PUlRUUVFRVVdVWVpbWVJVUlRYV1ZZXFNPU1RXVVRZVVZYVFJRV1VWWFxaXGBdV1lfXV5dXF1gYV5bYmNjaGdmZWJYYGBiXWBoZWdlYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWU1RPS09WVFBPVFBQUU5NUlFPUVhUUVFPTU9SVE1XUVNUVU9OTlFUVlVSUlJUWFZaXVxaVlZRUldYVVtbVlBTVVVVVlhTV1dUUlFYVlZbX1tfYF9WX11eYF1cYF9fX1piY2VpaGVlYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVVFPVlxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVdTTU1ST1FST01QU1JVWlVUUFBMUFdVUFZSU1JYTU9QUlVYVVRUU1RZWFteXVxbVlJPVVZVW1pWUVNWVFZYVFNYWlNSUVlXV11fW2BgYFZiXGBhXWBiX1xgXWNhY2hpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5QV1NOUVFQUlRSTFJUU1lbV1VPUk5TWFVTUVRRUVlPUVNTVltWVlZTVlpYXV5cXF5WU05UVlZbW1VRVFRVV1hSU1lcVFJSXFhaXV5dYmFgV2JbY2JeYWNfXGJhYl9kZ2llZ11cZGBhYGFjZF9iX1laX1tcW1hYWVdXWlpaYV1dW11cXFpdYFdbW1pQT09PWVBVVVNSWFJUUFtdXl1cYFxgVVxcaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUVZVWlpaU09TUVVVVFJOVVFSWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZWV15aV1FUVFdYWFNWWVxUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXl5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVldWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVUk9XUVNXU1dVVlteWFtZVVpeWF9eWVxZUldSWVhZX1lZUlRVWVlZVVdZXFVUWl1dXmFiYGVkXV5dXWVhYmZkXl9kY2BcZ2VoZmRiYGVhX2FhYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lRXFVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFJWVVNRUldRU1ZUWFhYXl5YXVtVXV9YX19YXFZRWFRZWlphWFtUVlhbWVpXWFlaV1ZdXmBfZGNiZWVeYlxgZmJkZmRfYGRiYVtmY2hmZGZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlRcVVdXWVdWXGBhYmNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVFJVVVFTVVdbW1xfX1pfXFZfX1ldXlldVlJYV1lZXGJZXVVWWlxaW1paWVpYWV9fYGBkY2RlZWNkWmJmY2dmZV5hYmBjXWJjaWVkaF9nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVZYV1hdX2JhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVVVU1VUWF1dX2BgXWFdV2FeW15cW15YVVhXW1pfX1teV1hcXFxdXVtaXFdaX2FeYGRkZGZmZ2NZY2ZlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpZWFpYV1tbWltXWFpUWl1cW2BcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9dXV1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBXVVdYV1ZWV1ZdXV5hYmFfYl5ZYV1dXllcXVlYVVZbW2BeXF9ZWV5dXl5gXFpaWVtfYl9iZWRlZmdoY1plZmdpZ2NfY15hZmVaaWljZmljZl9iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVbXV1dYGBiYXhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW1xfXWBfXVtgZFxcWFpiZWNhUlxZT1hWWVtZWVdZWmBeYWJjYGFjX1xiXV9dW15dWVlUWF1cX19eX1taXl5gYmJbW1dbXWBiYmNlZGdmZmdlXWVnaGlmY2FiW2NnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXVlhQWFpdYWNmZnJrf0pZV11bWl9dXF5cWF1bXl9iY2JhYV1iW2JkYmBjYmJdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeXl5aWFVbXlxcYWFfXVtgYWJmYl5bU1xfYGNkZGZlZ2dmZmZgZmdoaGdkZGBbZWdeYWhoY2loZmNgYmBjYl9fX11dW1pbWVhYWFZaV1xbWlZWVUxYWFxnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaJh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl6e3t6ent6enp6enp6enp7e3t7enp6enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXp6ent7enp6enp6enp6e3t6e3p6enp6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09PPxMXFxcXFx9LU1NTT09PEvr6+vr6+ytPS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk5eDU1NTU1NTW4+Xl5eXk5dLLzM3Mzczb5uXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f4B5d3d3d3d3eHl6enp6enhvb29wcHBwcnJycnJycnd6eXl6enp+g4ODg4ODg4KCg4ODgoOEhISEhIODgoKCgoKCgoSEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dXZ3ent4e3h3dnl8enp6eX15eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl6enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2enx5fX17fXt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fnt9fX1+fHh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3h5fX17fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eHp6enx8fHx7fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h6enl8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLioqLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoGCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYKDgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWFhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYF/gYGAgIKBgoKCgYGCgoGAgoKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOCgYKCg4ODhIKDg4OCgICAgoKCg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhYSCgoKDgoKEgoGChoWDhYODhISEhoWEhIWCf319fX6ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIaFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIOEg4ODhIWDgoOEhYWGhYaGhYaHh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eFhYeFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4aGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhIODgoOFhIWHh4WEgoB/f39/f4B/f3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OChISEhIWEgYCBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhYOFhIODgoGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiHiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWEg4WEg4KCgoKCg4F+fX5+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiEg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4ODhJGSkY6PjYuHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWGiIuKhoSGhIKGhoKAg4ODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4GEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFg4GAgIF/fn2Cg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICBgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5/fnx8f4ODgoOCg4F9fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF+fX1/gIF/f35/gIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCBf3x9fX59fX6AgH59fn17fX6Cg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gIB/fn9+fn58fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36AfX1/gYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f39+f39/fn1+f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZKSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoOBgIF/gIKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+BgH+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDg4OCgoKBgoF+fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKChIOAgoOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeIh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWGhoeHhoeHiIaHh4eGh4eHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fHx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYmJh4WGhYODgoGCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoOEg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjYuMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGDg4KDgoKBgICAf4F+f35+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICBgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRi4yNjY+KhYaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4d/fXx+gICBgH9/fn19fX1+e3t9f39/gH1/foCMkY2LjI2NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn9+f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19fn9/fX6Afn5+hJKMi4uOjIuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yKioyLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBf4CAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4WChJGOjIqJioeHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn59f358fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3p8eXt8e3t9e31+fn+AgIOHiYmJiomKiYWIkY2Lh4iGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH18fX19fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uKiYyQjYyIiIaFhIOCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+MioiIhYSEg4GCgoKCg4KBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX19fn1+f319fXt8fX58fHt8fXp6eXl6eXt7fn6AgYOHhIiNjImJhoWEhIOCgoKCgoKCgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSBgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiYyJioeFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGEgX5+gIB9foB+fX5+gIB/gX5/gH9/f4B/fX5/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyJiYeHhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX1+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99gH99fX59fn59fnx7fHp8e3qAhYKDhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIOBf3+AfoCBfoCBgIB/fn5+fn59f35+hYWAgYB/gIOBf36BgH9+gH6Af359e3p7enx7eoKDf4KCgoKDgoOCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOBf3+Af4F/gH98e3t6fHt8gYB/gX9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAf4CBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fn2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSBfnt7fHx8fX19fn16fn1+eX5/f3x8fH59foGAgYGBgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4ODgoGCg4KBg4J/gYB/f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gIGAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3Zxd3lyeIWFhYWDhISCgoOCgYGCgYCDgYCAf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGBgX5/fn5+fX19f35/fnx+gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH9/gYB8gH+Afn+BgH9/fYB/fn9/fn19fICAgICAfn9+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYOCgoOFhYKCfn58e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzcHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgH1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WHhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYGBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKMenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgYGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX+Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+BgIB/gIB/gIGBf4CAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGFg4OEgYGDgIKDgYGAgICCg4KAgoKFg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgYB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKCgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl5fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICCgYaChIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgYGDgYCAgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIODhISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKChYSEg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnR9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4KDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9f31/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn91dn+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4F/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhISDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx8gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4KDgX+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+fX5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WBgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fXx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYuJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgISDgH99fX59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfH9zgoN/g4N9gX19fn1+goOBfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9+fX6BgIF9gH59gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeHiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoaFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoWEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgoF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFhIaHhoaFhIaHhoSEhIWDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59f399foB+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYSIhYaHhoeGiIaHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaEhoaFhoWEhoaFhIOEhIOFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGg4SEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEgoSDgoSHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYWEg4SEhYaGhoaGhoeFhYeFhoWGhYSChIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eGiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODgoKDhoGDfoKCg4CDg39/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYOFhYaGhoaHhYeGh4aHh4WEhYWDgYOCgIOFgoN+gYGBf4OBf39+f35/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFh4aIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4aFh4OEhYSGhoaHhYWEg4WFh4WHhoeFhoaGhYaGhIOEhYGBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaFhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWGhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OFgH+BgICEgIOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH5+fnx7e31+fXyHhoWGhoaFhYWEhYWEg4KBgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhoKCg4R/foCAgIF/g4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18f359fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WDhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg39+f4B/f3+Df3yAfX1/gn2AgX5+gX59fX19f3t/fHt6eXp6eXp6fHl6ent7e316e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEgoWChYGBgH9/gIB+f4CCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIWHhYeFhYKDgoGDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCf319f35+gIN+e398fICBfYGAfX2DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5+gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDg4SDg4B/gIF+fXx+fnx/g318fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6enp6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIaEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhIWFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfn2AgX9+f318e3x9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc6PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw4Ojw+Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo7ODk6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk3Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1NXU1NTU1NTV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2tra2dnZ2dnZ2dra2tra2dna29vb29vb29rb3Nvb29vc29vb29vb29vb29vb2tPS09PT09PU1NTU1NTV1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqJkpmYmJiYmJiYmJiYmJiXjIuKioqKioqKioqKiouGgYKBgYGBgYGBgYGBf4/T0tLS0tLS09PT0tPT0t3j4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTUWJsa2tra2tra2tra2traVVTU1NTU1NTU1NTU1NUS0NDRENDRENDRERDQz9d0tPS0tLS0tLS0tLS0tDg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1ZlcG9vb29vb29vb29vb21ZV1dXV1dXV1dXV1dXWFBHSEhISEhISEhISEhEYNHT0tLS0tLS0tLS0tLQ3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJhb3h3d3d3d3d3d3d3d3d1Y2JiYmJiYmJiYmJiYmJcU1RUVFVVVVVVVVVVUWvS09LS0tLS0tLS0tLS0t7p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy83Ozs7Ozs7Ozs7Ozs7OzczMzMzMzMzMzMzLy8vMzMvLy8vLy8zMy8vMzMvN1NTU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7O0dTU08/O0dLOz9LU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tfX19fX19bX19fX19bX19fX19fX19bW1tbW1tbX19fX19fX19fX19jY19bW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7O0bCDhJPO07iez9GcgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8mbu7idr7eXmbm6lbi5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9HDoo+Aicmdo6iy0ZJ9fq+x0s7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv56Kp9DTwoaatdXTzZ6exNDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P0bqkrJye0dajmLTU08CgoNDQ0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz9HAoJ6TpbfYopm11NWwoqnV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU6OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0qavrpum2aKZtdTVpKG51NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHJ18SYoNmimrbUzp6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzs8OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXFjZ6gnajao5q118OfodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HJwaGtoaC/2KKbtNmypKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09WrjY+p1dayhMbWuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MG91dLS0cTV0dHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQD43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHU1dLS0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODc4NDs/PD89OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg8OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTY2Njc4ODo9Ozw+Ojw6Oj09OTw8PTw9PTw7PURIRENBPDw8PD4+QDs4PDgxNTpBRkVXrrW1tba3uLi5uLi4uLi3uLm6uri4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODg5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg1NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU5NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTc4Nzk3Ozo6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlqKmmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTo+NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFCPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNAREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9CQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6Ozs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ozk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD4/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5AQD1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo8PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8Ojc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3Ojo7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ubm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuOj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDY8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVj4uUk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODUzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMj4+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEFCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouHiIWEiIiJhICCf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo8Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU3QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIx/h42Mi4uHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI1NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpKOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhRSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxkY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGdiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbX15aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MjQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2rpamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk7Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3ODo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFoYGZzb3NpdGNpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bm1bYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw7PkJERT4+PUBDQ0NERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tbPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqTkZmXnqGVmJqSmJSVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJCQD1AQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGwMXHy8jUy8rIxr+7u77EvsXIxsbDxMO4tMC3tL3BwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4uLu2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmbmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3hmZl1kW1JYSUY/Ozc4ODc2MTY5NzU0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw6PTs7Pj5EQUFDQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/JzsnBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvbi+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3YmJgYF1YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNTs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lodG14bF1kW1VfWUxIRDY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw/PT9CP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLysjGzMnNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZHRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8O/v77Ey8jKy8i8u8jHyc3Iw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr7CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZiWllZXFhRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs7Ojo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7q9wLm9urq0v7i1t7Ovu7y3wLe+wr/Bu7/AvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCnoaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVVVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6PD1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wMC3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGhoqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWRmb2lla2dYWE5LS0pSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88OTc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8try8wMS5t7e3trq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8u7q0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYmxfW1RIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz89PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4trfAv8S8wsXFx8fKycbPwsG4rra1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrq/wb+9tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2dhW2JQS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw7Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuro7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmFhTUhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPEFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+ts720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcvGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+QkVJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PUA+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLW8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdWl5cWVFFRENNSUFEPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCOz8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBw8O7ubO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypqKlqqyvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG1oXF9fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcmJqYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d21wYF5lXVtUSjw+P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3srKytLK3vrqztbK8ury2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZxbF5iYFtdTkhBPz1IQ0ZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWTmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq2tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d298b3VybWNcZlhcXVJOTUE+SkJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY2OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKx77AuLm2srS2s7SvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqZqanpqhp6emp6mvtrKrtLavqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c210aWtdW2pUXVxPTUhERkxBRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vbWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u7+/ubO0s7GxrrC5uba8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIP0hRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODs9Pjs8PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aipJ6gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmura+ysrq6t7e1tby0r7Srtrq4wMTBu7W8vbiyrbOwr6yut7aytLWvqqSem5ycnqion6CoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWjm6OclZCMj4+Qk5CWlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFBoVFBOR09MTENPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Oj07OTs9Ozw8PT48QD0/PDg7QEBBPz8/OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLm1p6Wsqqi1srGwrq+yp6avo6+utcG6tbeyt7aytKuytK6qq6+wsrSupZ6SmJSPmaCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsKOlp56gnJWTkI+RkJiQlpWYl5+Ym5mbo5mXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk1KTUc7REA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaOkrqWsrLS8t6yysa+xrbWvr7O1qqetrKOcmZSOkZaXmZmdoKOim52lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZWal5eYoJ6cnJeboZuemqOnpZ+hoqKjnJuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh6YGJSVV9ISUlLU1RJUlBMOT5BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6jqK6trKurr6qvqZ+XnqWenqWmpKCin6agoq6rrK21sramr7Srqaq0sbCwuK2noZyempSYm5qRjpGWkYyPjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruqimq6erq6msrKegoKOxrbGxtKmxr6KZnJ2eoZmbm5qYmZuUlZqWmJykoaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVcU1pZTVFKTk9UTFJMQTc+QjY4PDc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpJ+ckpyim5+ho56doJ+joKKvrqyvsay2p62xraamsK6trLCnoJ+ioJeRlJyhnJmYkpOfnaGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwp6uosrW3s7essbSjoJ2loKyhoaKgn5qYlpWfm5uYpKGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1tWlJgSFFVSEZVVkpCTUc9Skg4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjpOemaidrp6nnpyhnZ6ampKYnpyioqCgnaKfn56fqaunrKmqtKurraulpaqoq6yqpZ+emZKSlJiZlpaWjIiLj5WdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oauiqaiyqaqop6eamZ6Zqaagmaegn5+nqKWknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKagnp2dl5mWmZ6bnKSfn52knZqdnKSipKOiqq+sp6mjoKGsr66qq6egnp+io56fnpudnJSUlZWenpiUhp2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK6nsa2xwra4wsbAyMrAyr+wubm9ucK9uLO7xcO8wru3s6myraqztK+zrqmuo52rp7axrKKvpaCjr7GtsKSkr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppmboqSen5ubm5yHhoF7dHJra3VycGhXXFFFVEhESVBIPkVBNEVIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpZ2Vm5ufmp6dn6Wmp52goKyxr6ekpKOhn6aspp+XnJSRmZ2ZlYyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczLzNLHvr/Awr3HxsK3w8nIwsDFvbmzubq0u7ewtbKqurGuu7a+urqqt6yqqri6tLuurbijpaKep6Wio6mmmZufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR+enJrZGlveGplWltGSkxERFNMREJENzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlZqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkp+fkJafmZKalp2bmaOhr7OpoZudnZ+fmpeYmJONj5aXk46NkIyCg4J3c3FucI+mra60ucW7zcfLv8LMzs3MyMnRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zTz9PTzMrCxcbGysfOv8jQy8bFxsTAu8LAvr6+tb2zrb6/wsPGxMbDrb64sri8w8HBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURCQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6yen66mpbGqxcbMzs2/sMKppaitraqhnaOfnJ2aqZOZoZCOoJONlJKXmaSxsaukoJ2gnJmXlZOUl5GQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXX0tfNxsfJzMPFys/K09fR19LV1dPTyMzHzc3J0szN083Ex8nJwMXLx8jIxb7Cs7PHxMvKys7Fyb+9v7zBxsTMzMjJv8O/ra+yqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/e3J1dmdiaHdpZFZXUURNRkBJUUI9Qjw6MjNAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmflKOYlp+enaSvm6Cwq6isscnN1NfPxrvHrK20uKyuo5+ko5+gpKyblqmWjZeNjI2XprCupZ2enaGlop6blpWWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTSz9HD0NPW19XW0svJztDLxs3SytLV1tnV19PW2M7Syc7RzM7Qy9LPv8fGycLLy8vOz8XGx7a/yr/SzMvPxcnHv8PCyM7Mz9DOzMrHzbi3u6ifpqunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU6NzY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopuppqKmrJqksLGpqLXQ1Nfa0sfGy7S2wsaytqmipaahoqu1p5qxoZaVjJCmrauclZmhnZuhop+dnpuWinhpZGFfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTPz9XU1NHRzNHO09fW09XQz9LT0cnT0cjQ2NfY0dfS19nV1szOz8nM0cvO0L/FwcbFzszQ0NHIy8zAysvF087LzsfDycbGyMvK1NPQ1M/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NDQ6PTUyNzU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr66rqqudpq64qKu32NTV2dnRztDAvMzJt8Cvp6upo6SxtrOjtqqfnaGqqaGYlpiam52hnpqdnpR+cmZjY19fYWBfYWBfYGBfYGZtcHBua29ydnebzMDS1dPY2NbZ0dLS18/TzsvTzdXU0crPzNPW0tHWzdDV1dHG0dTK0dTV1s7S0NjY2NfLyM7DyM7Lysy/yb/HyM3Nz8rQzc7Lzs/Hys/Qys7KwcjGyczKy9HSzNPR0c/Pyr3HubCtu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bva2JlbnBhV1xaSUZGRExXRTtAPDMzPD04Njg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw9PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snnri2tbWtpa2uvrWxwNnT19rc1s/Ny8PT0MLCsqutrqyms7K5q7O3qaOfnJaUl5yen5+elZaYlYpsX19eYWRiYGBhYWBgYV5fX15dYm1yb29zdHV2eaS+y9XR1tTT2NbOztPLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zP0dPKzdHV0tXVysDJwcXMwsjJwszCxcfKys7KzMzQzdPLxcfPzMfHysTGwMXJy83P0MbPzs3NzM/Fx8C3ub3Cw73DubKzvrC7w8S2qpiloZmWkZWVkouUjZqRlJSPj5SCiYV4cHJrbWhgYHFoWFhoVk1HTElQUEI7RD47Njc6ODk6NTY9PUE8Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfDucvV1tna29jMzc/J1tbFxLiytqqkrq25ubGywKGXjo2YlpCUkpGWl5aRjH1mYmNiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycTJycbGv8PFzs7HxcfNytHIy87NxtHSz87M1MrHys3Ox8bP0svQz8W6xL7GybzCxsjOxMLHwMbNx8PLycvPx8PDz8jGwcbHw7/Ax8vLy87CysvIx8zQxMXHusfDyMjCz8C9vL+wwcrHur2qsbKnpZ2inJiQm5CkmZeZkZWYiY+Cd250ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU8PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTs+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJuls7Gsyc3KyMS+vbrNzcbQ1dXZ2tvY0MrQ0NLUysW6vr6wqberv7q5s6WSjo6WkIaDhISCfoWFgHRgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6v8O7u7q5vsjGwsPAw8fKycjKx8HFy8bIy83JxMHJycHBy9DEy8i/ucG6xce9v8XOysO/w7rJx8i6x8bEysC9wcvGxcO9xby8v8PEy8TEu7/JwsXH0sXByL7KycbHxtDDw8bDr8TLx8TKt7+8urSprKWlmJ+YrKOhpZqjoJuUe3ZydGZpWmFubVpbWFFETEZCR0RMQ0ZSPzU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvQ0czHwsPHzc/OzdXQ1tnY2dDM1M7P0MvEuMbBtrW8scC2uqyRjJOXh3uAhYaAdnh1c3FfWltdYGFiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbBsLa6srK0srHBvLu7ubjAwcHFvr25vb+5xMrFxsK9xsC3u8TJv8LJu7e6usXCvrzBzcLGvr21wL3DurzGu8K5s7zFw8LCtr+2tb6/usvCvLW6yLq/vcvDwcXCxcjFyMXQxsLMx7LGycPOzcHFwr+9srews6eoqLmxpa2wq62slHl2d2plaGBob2NWXllKRUpGSEtBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk7PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc3P0snRxtbV1tjPzNDIzcjKxb3KwbK1ure7tq+RjYqMhXmAhoaAfoR8dHVkXFxdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rAuK2wsKeqraynuLS2tLOys7q1vbG3sLSusrvCvMHEvL+6tbK6vsC4x7izu7XAwry3vcbAw7u1rrK2ur6zxLe6tau4vL3AvbC6tq+2urLFvLauu7+0trTFvL7Cxb/DxMXHy8XAxsa7x8vAz8nHw8bBw7fDvr62ub7Gv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkNBREU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6ars7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDNzsnLyczKy8bRz9PRz8fKxsrFxMC8z72zub25uLebjoeJint5foeGd3iBfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBtaGZqbm5yfKTHv7m4tbCrrKeeoqqnnquss62pq6mzrbawsqiupqyyvLq2w7m6ubCrtbm7tMK5r7+wvby7tbvHucK2raqosLHAtbi8r7CnsbO0u7yrrbWlrrauurGwqrmvrbutu7i7v7+9ucK/xsLFwLzGwcjLuMXHxb/Hw8O6xMbCu8XJzMuzucK8urKIcnZ2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOzk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojk7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs/SzMTGwsXQyM/DxMfBxsbFxczDyszDxMHHwLq8u8q3tLu9tbWrkYmQkHx5foqGenuEgXhuXl1dXV1fYF9fZGNiY2NiYF9eW1taWl1aWlpaXWRtb2hnZ2lrbnKBrbmwta6mpaenmqCkoJqcpauto6eiq6msqrCjpp+qrbW2sb25r7evqK64tLS7t7O8rre5tLG7wbHBrqWooquxsrOnvKqrqKusrbS0pqiuoaSvqbKlp6iupai3rLCyt7m6u7G8vb6+xL+1wcHHyLe/wMW3xMLAu7/Ew77EyMzKv77DwMCphnJzcmppXWFvZFdWWFBIWlJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7rEsLawm5mVnJiqqbCxs7W9r8bR0M3EyLu7zMPMwL3KucDFwLzMusPHxbq9xL66t73FuLa4u66xlYOJjYF7foB/eHR/fHN3Zl9dXVxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSeo5uXkaGjqqOin6Wlp6Wtn52bpKWrsq+2t6ewrKeqtKu0ubC2tKy2uLGvurmxt6Sfo5+msaerp7mqpKanqKeyraCnpp6apKasnp+npJ+gsa2trLGzsrOwtby2u8HBsrq+w8GxubnCs8C9v7W4u72+vMLGxMLDvr/DoIN3cGthZV9rb2BVWV9ITmhPVEdFSkY8PUA9Ojs7ODI1NTM2OTo4Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzc4NjY2Ozo6Ozk7Ozw4NTk8Oj4+QDuNyLW2vbi6wbu+taCelJ2hprq2q7Ozu7PF0MnMw8e5uMnCzsG6y7m9yLu2x7u3xMazvsW8t7C5v7uws7avooSHh4J9eXZ0cG1rampxaV9gXVxcXV9gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXV5kY2JlZ2dnam1viJ2poJeVmqGWm6KYlY2eoaKmm5+fo6Whp56aopufqrCssbWiqaqpq6yktbitt6+ssrSus7WusaqfnZ6jorKkpam4raGmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqq6ytsLK4rri5u7C2u7u6q7OyubK9tLaxsbW0v7W9v73Cwbq6vZeDenJrX2VeZGRYVFheSVddS1BHSUpGQTw/P0A7PzwwNDUzNTo7OTo4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xtDJycHHvLzFxdDBvMq7u8G7tcW4tcHBs8LEvK2qtbm3p7GyqYuGiIB5c25wbmtjXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWltZWFhXV1dYWFhbXmJkZGVmZmhpa3KNqJ2UlJSbl5uhlpaQnKGhqJ2bnKWmoaSbn6CamK2tra+yoKWiraunobWwsbGsp66yp7mzprahop6ao6GtoqGptaqio6adpaajlpiel5ibnZ+Zl52cnJusoaumoqOlrauys6q0sLKqsrm0r6mvsrKyt7OtqayusbewurW5vb62s7GUhHl1ZV5lXltZVlNaVUxcUUxKRUhLSUI9P0FBQEA6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vb+znaWjmKWxwrW2va21uMPNycjBxrjCwcjQusPGwLa8vbbDura/wbW7v7uqprG6saexr5p9hYWAeXBxdHFoZWRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hYVldhZGVjZGVkZGhqdqKclJSPlZeXn5eZlJifnqGclqGhqKOfnaicm5qqpq6wq5ujo7eqoJ+uqLappqassKO3sKO2oKKbmJirpqGbrLivoqGknKGfoJOVoZSWlpuYl5aXnJSfqZ2po6Gco6qqsK2otKuqpq2ysKWqrrKxr7Cur6anp7KusbSvu7O5t62jlIF5dWReYVZZV1NSVEtNXkxQTEdITEtFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Oqu8C9wLmutLjCzcjHxMW+x7rKzbXExcSxv7+5wMG6wMC5ur23qKixu6aooaSJgX54cmpscnRwaWhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWltcWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5KUk5uYnJaWm6Ccn5Wgn6alpKWmnpyfpJ+qr6afoqO2qKChoqizoaWnpK+lsKyrtJ6gnZWUqaGhlKyxsJ6io52emJuTi6GUkZOXmJKXl5iWnaabpqGimaSkpKujpbCnpaOrq62lqK6urquoqamzpaarr7Sxrru1sK+un5J5dnJlYVxaXVhOTFFHUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc8ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuyt6yepKatt7u8wcW6sbm2xcrLwcTHx8m4yMa1xcLIrrq8wrzCwMG9vLe6tqansrWeooqYh4B3b2RiZ2loZmhqZ2ptYF1cW1paWVpcXVxbXF5fXFpZW1lZWVtXVVhXVFRXVVNUUlVgYF9gYV9gYWNkaYGUk4mRjpOSk5yUlZajmaCWnKCloa2lo6Oio6GbqqqlmZ6lsamgoJ2kqp2noZ2srKmora2ioaKUl6KanI+rqbCbn6KfnpeYk4qeko2SkpWPmJiTm6GinKSgoZWgoaOkmqOrpaKkqqOrrqWtsammpaamtaapqK2ztbS5uq+prJ6LcnBvYFtXVlVRRlFPSFpcT1JKVEtTTEVHSUM4Ozs9PDg2NjY6OTs6Ojc2OTc3Ojs6PTw9Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4Njk4OTg6OzlAOXu1tK20u7KwrLKtnaenr7m5s7/IurbAr8bJzrzCy83Jt8vAtMDHzLC2vce7wcfDvb+3urWkqq+unZmHjoN8dWlqam1oamxua2ttZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5fX19fYmRtjo+EkYaPkY6Zk5SSnJqinJugp6iqp6qlqKSimKSupJSZpa+pn5uYmqCerpmbqbKfpKafo6SglJOblpWRqamtmpygoaCalJCMmY6LkIySjJaUkJ2hoKKcm6KVm6CioJehqKOiqKugq6+krbeloqOirK2pqKuvs7iyvbWzq6+Yg3JyaFtZWVNVUkVZTFFcWU1UTlBMUVJJTklCPD8/QT89NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqKevrZupqKy3tqy7yru2v6zMx8a5ws/QybXGvrq+xsy1sb3EvMLFw73Bs7mvpaqvq56XhoF3eG9uaW5ubnFnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/i5CKko2XkZaZoqCbn6qppq2qpq+ip5mfrKCUlaSop52Xj46Zna6Wl6apmJ6ck6WhnpGQkpKSlaeqpJmZmp2dlo6Mi5SGiI2DkIqRlJCgnaCjl5WflZqgoZ2Sm6Wlp6iooLGwprG8pp+jrLSrraewtLC5tb+xrbGrkHxwcmJWVFVOUklHVlFSUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo6ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqWisKudqqepsrCktsa0ubqzy8a6vMPL0cyzubq+wMXHtrS3vLK6u8S+wrGzrbCusKycoohraG1vcm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CJmImUk5iamJ2om5+qpKSqnKeZoKWbko+eopqXloSDkZqjj5OinJWVloeimpqTi46Kj5mjp5yVlZebkJKHlI6MgYuNgJCKkZKRoJmfoZWTmJiUoaSYjJmkpqimoaC0sqeyt6Ccoresqq2ksrKmtby1q6uxo4h4cm1dTlBRTE9DTk5OUExGTk5LSk5OUUhNSkFHS0hIQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSno6mloKmlpLOqorLDtbWys8fHuLvEys3Hta+8v7i8xLOzrrairLXEuruvqqy0r6+gl6h9XmBnc3F2cWpuaWZoaGpfWFlYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWWFhZWFtdYW9zdnCEiIKHgJGDjoqUkJOdoI6am6Kgo5iklqGblYyHmJqMc42CfYyWloWQmZCTjY56mY+cjIKJf4mYn6KekJOYloSOgpN+fnSJjnqQhpKQkJyamZmQlY+djaKijYmaoKGko5uitK+sr6yfmKW5pqWwobGunLC7qqmvqpmBdnJiVkxRT1BNQ1NOTFFNQ1BQSEhNU01ISkpESkxFSko8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd3t6KjtKilpaijpqWmpaazp6W0wbiwtLDKxrm6ws/Hv7WvvcOvsceyraeslaOtv7ixsKCorayqlpWicldWYGhnaWhpbmNqaGdiXFhYWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVdZW11pbHJsf4V8dE5Yco+Cl4aNnJeKk5Cel5yVlJaUjpaIf5OJXztXb3uKk4l/i5GMj4WGcoqEloF5gnqFk52Ug5WOkI+Chn2SeHFvhY1+iYCQjY+XmZiTio+InIeel4aHlp6aoaCXp6+oramonpattKKmrZmsq5ins6GpraOSfHFtX1pOU1FWTERUSlBNTUZPT0pFTFFNS09KSU1PRklIPTc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5eLegoq2hpqapoKeop6KpsKintMK5sbWwycO5tL/PwLqxsbjEq67JrqeinYWaorqtp6iWpqWjoJePlmlQTlJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXqCdFBCQH+VkZF9iZSMhIqNmoyWlYqSiIaVhXiIf2BKUW54ipGEfISMiYR+f25+f5R3dXZ4hI2ZcFGNiIqGe354lHZnd4WIfoqIlYqNkJGWi4OJh5SEmouBhJKblp6clKSjp6mlo56bsauhpKSRpqqWoamcoqaoh3NrZV1bSFFRU01JVU1TSUxMUElHRkpOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj03Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXa2nKKmnZ+hrqGnqKWmp6+sqra8tri2s8K8t6i7ybm3qaq3uK22wKqim5KCj5myn6KajaCWmJSRi4xlTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+GgXuFjJKAkZmLj3uGj391f3hzbnVwdI2NgXl9iaqEeXpodnuOcHJteICKjJJ4eoB7gHZycpJ4Z3WEhISEepWJiIqMioB/g4qMf5ODeoCPmJSblZGfnaien5+doKmln52Yjaikk6CflZ6epH9xZmBcXEpWT1FHS1hST0pNTVNKSkpMUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI2MjE5ODc5ODc3NTo8PDd2rpijoZicnrOpr6mlrKuwsaq9tLK8uLa7tbOguLuzq52fraustbOlnpaRmIaUpJadjIOXiY+JhoaDZkpJSklHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhZWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gHZ4f4mPfISYkoFyh498dntva36tfHOQin97hpKAfX90ZnZ8hWxvaHN8iYyHgGx5cX1wbXWPcmhxgH2OcEOKhIKDhH93d3qKhH2LenR+jpKPmIqSmpujl5mdmp2eop2WjYulm4+dl46WmI51bWtlYVlXWFRRSlNWVE9QT1FXS05LT09KUU9JT09LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn56WoKawrK6rp6mwr7GsvLisu765tK6pm7GorZyQl56nrKekm52Th5Z9jpWSlYB8inqFgH9/gWVKR0hGQkBDRElMTE1RUlBRU1VUVFVWV1dXWFhZWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3dvfHmIj3l8i4VvbYyReHN4amp/gnKWkYuBfZZ/SZKYbmh3foJsaWNseYWQkoZrc2x8bnJ7hWltcH5zjYiDhXp9fnp2b3R0hYF5gXdwfI6MipODlpeYmpCTlpeZl56XjIOJn5KKko2GkJZ9bGhtbm1XVVdUUlFZT1NVVVRZVk1OSE5LTk5LQ0lOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6kra+iraqota+urLS/q7zCv6ajmpWlmJ+OhYyWoqSbm5SWj3aRfYSLkI98eH50fXh1d3xmT0VHREA8Pj5BRkdHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpyQZlvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5vbX96i4h1gYiGdGyZkXRzfGprnY5MeYSSiYSOZzF2hnNsfn2DdGZldH6EhIWAZmlsdWtwf3tncHB7bpKNjntzfX1xcG51bYJ+d3l0anmJgoiJg5aTkpCLjZGUlY+XjoB5iJeIhomGf5CHdWlpbmdjV1FZV1hZXE5QVldaWU9JSUVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKiwsKyspKCsnKSwsMjI2LSs1Nzc1NDc4aU84OzVukoiZkZqWpKitnrKeprquq7KwwrK7w8ebl4+UmYuOhnqFkZqWj5KOkopziYR3i4+Mf3Z3dXh2b3hzaVVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bHGDgYWBeYOGhnlyoJR0eIBzdZSHNXGdqJ2OoaGEooR2cIZ7hntzjK2NiIBoZmJpbXFtb4J1aW9YdW+OmpF2bH97fG1ybnB/enN1bWJ2hH+GgIWQkYqLipKLkYyLj4N2eYuPgH6DgH2OeHBubmpeWltdW1lYYWBTT1xbWVhMSEpGSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW0qK2wrsGzusHGl5CMlJCBiX1ugpGTioSLiZCId4SFbpiKjH95e3txe3R8a29eSlBHPkA3NDU4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8+koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx3h4d8fYWCf4x+dqKZeX6GgISZhZucYYaqn52LgpCNenaIfomHjnOKl4+De1xkcXR6e3eKbWdpYXlvhY+Cem6Bd3OEenFzeXdrbmldd4d9h3yIh4+Ai5OXg42GjYd9cYWAhHx1d3t8h3RtcXJkZV5aWl1TW2deWFFWWV1XR0tLRUxHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMd4l/lIyRnZ2fppGgqp+wqa/AsbvFupaPkZSIeoZ2a4CMkoN+i4WQjXmEgnSihY1/f4OBc4OBfWx5bFNYTEFFMzExMjY3Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxyfI+LenyIhn6Xh3ahmYiHj5KUpY2sqUiGra+vioCAk4qBi4GEkaiHgJiYipxzbHyBhod9jmhnZ3h+bYWGgYVxhIVHa4B4cXl2aG1rX3d9g4h/iIWMepWenIqLiZKAe3WLdnx4bW93fn1xcXBqWlxbWmNjV2dmXFZQUVhaUURMTEdPSURGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFh5GPlpiSl6CdrKCnua+zvbSXjZKLmIt9dHF/ipN/fo2DlJV9h3+GpYeJgIOIhnmJioB1hXlfY1ZMQzYwLi8yMzEzMzY2ODo9Pz9CRUdISkxOUVRUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiZGAmpaCoKGYlZuapa2Tmbuxp7vIxKeKjKGkjpOJgJB7coOen5GcfnaFhYuPh5BpaG+DgHSMhoSLcYaCdoeAe3aFfW52dWeBlI+GiYmIiYiiq6OWiY+YgHuCint6b2dreH13fHFpY1xZWVxpXWFnYFpPTE5YU1JJUUtETkdDS0RDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnZwZ3iDe4CMgIGRj4uamqScoaymq6+wl5KRhKGUhHh3gI2UfX+ShpOWf4uBkpuOhIGCjIyCio6FgIqAbXBqXkNBNC0tLy8vLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISktMS05WYGN/Z2dtdZ2bj5qTk4uOj5qIk4+di6ChkqOppaOsk6i2oqfBwq7Ir3i6lJp8jKGemYSShIKPoZ6TmZKEioWPmJCWbHB1iYuBlYyNj3aPhHFshYGKl5KDhYhyiaGXh5OKj5CXpbapm42WooOHk4V+gGtqa31+fX9xX1tiXllmalxsbF9YS0hPU1FOTkxGSVFERE5GQkNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuaFlwg3B1h3F2kYZ+l5aalJ+fm6egqpaTmJ5oZqSafYWTknqBkomSkn2LhZmSkYOAgYuOiYaSiISJhXh4f2hOUj4vLy4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFRU1FOUElFRT47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpqKZoZeilZyfqJ6pq5+orKmqtZervqu2yMm3yNHPvpugcGmqqJ+Ek5GFnKCampmnkZGIlaGZmnd6fpSYkaGSlpeBlJ57dpWSq7OJjZegfZWenI6Tlpqko6e2sJ6RmqiIl5COgolsc3N7fHluZl5bX19hZ2NgZ2ddUkVLS1FPSkpNRkZNQ0hNRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTQ2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYzQUBpYl9QcXVgbn1hd459fJSOjoqfkpeelZyqmJ6qQkR9h4mImI15go2Ljo18ioaQkY+Cg4GJjIqFk4WChomBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSVFVTTlNMRUVAPD49RkhAQUA4NjYyPDk7RkhHSUpOT1FZbYaQd5WLo6eqtb24pa6srKiptayxt7Kyrbuxs76cs8Osu8nLuMO/t6WjsLKsrKqjipaYhaWmoKKYgqaZjaKqp6SHhZOjoKCqoaSpjpywi5Wkp7i7nKGjsJOjnaOekaSirLCts7ajlaariZqKk4uVent+g3tlXmZaY2BdYmNeZmdgW09ESUhUT0ZITEZLR0ZHSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo1NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoKThYiCnIOSkYyS2sidlnNWl4iPiJyPfIaMj4uKe4mDh5GPg4WBjIaFiJKGgoSJhoeHh3FuYUBFNjQ8My8xMTAtLCstMS8tND9EQU5WUVJTVVVXVU1cUUdHRDw+PkZIQ0RBODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHxKuzxbattMCzuL62v7XBtru7pLjGqbbJx7a+ubSoo7StsLCbmZKan4mnr6qklXefpJehq7GzmJapraiutbuyuqyvtaKxrLK1vLi1rrWgp6ijqJupsK6zuri5qJy4qo2lj5KUoIZ6gYByV19iVWRgYGFfX2ZgXFVKREVMVlJJSktFSkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxcWlFjZFd6dXGBlH2EhpN2hn6AjXu/u6O8grSUk46bj4SIj5OKiXqHgYyTjYiFgo6AgYmPhn+GiIWKh5F6eW9dV0BFTjw2OjQ2QUI3NjQvLzdDSENRXE9RVVhVXFdPX1VJS0pBQD5HS0ZGRDs+QDdENz9CSkpFR1dUUF6PpK2ksrTDtrjBzMq3vMS9s7TBt7jCtb+wuHSxtKa6xaSwxrmxs7K0qKS2tqqwoKKWm6KSpbGtpa2sp6SYoKyzuqKpsrm1u77Mv8XFvb2zwri6uL+4u7i6ra2xprGqrr6xvbzDw62Zu6mVro+YmauJfoB5aFVhYFdpY2llVltkWldVSkdHTFJIRElLQUlEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTc6OjY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVZad2pwf4+EgY6Eb3tyeIhiuaGao4mVlJaTlJSOkJeSh4d8h4GOloqBhIGKenyLiIZ8ioKBi4SVfXh6dWZQXGRHRUw6UWRgW15TRj87SFBFW2NRUVlZWmdaU2BhTVNPRUE/SUpIRUZBQEM8RDZCP0hHS01UWlRelK+4tbu5ycC7vcrNvL3BvLi2vLu3vrW6ssZhdbKlsZqeq76qpairqqSis7Wgq6eelZaemJ+upaenpZ6jlKKnsLOnsrK8tsG908nJ08bCxczCysPBvr6/vLy4tbC5t7fDusa+xMmxnrqroqyPpqm3ioB8b11eXlxVYF1oZlNZYldTV0lFRk9LQD5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUFBRUlFKQTkvLCwsKisoKCwtKy9QPiguNDiAfTwyS4hxOT5DS0VASk1QUkxRXWhtbHGQjYaQc2xycnOI1cC2mqCNlZmZkY6XkpaWjoaIfYeDjZaKf4OAgnl7i4SHe4t5gYqCl390fXpsZnB2WV1cUGVlYmBlZF1bWFhcTmRtVVJtbl9vX1hnZVVZVEpEQktLSEZISEhIQkk5REBIS1RUVl1aW5O5wLm+uMbBu7nKy7u2ura4ubS4tbWut7eZZHWpnq1wXqKtnJihopuknqullJ+fkJSOlpiYqJ6mn5+amYOjnaykqrCst7C8uNTQztbPyczSzM/OysfAwMLKvcG9wcHFxMbKwMnPtKS8sbWwnKy5vZp9d2lbXVlXW19YYWJRXGFUUkxDQkZIRjxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LiYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RHS09EUlxaaWBwl5ORlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Jh4yQjIl8gYNze4qDhXuKdIGKh5V/dHt5bG11fGlzZWlsaGZqaWhgZmlpbVpudJetpL2Ih2dbb2hdWllUSEtPUEpLUExTUUhMQUpGS1BfX2JnamKYuMewurS7vraxxce2sLmxsbuts7KorLitjbaonpynmk6anoyPoJaRp5illYqTk4iRiZCRkp2boZiblZaHnpmmmqyvqK+ns7PU1NTW0cvP09TO08/MxcLK0L/KycvJ0sjNzsPQ0riwxL3Euqa3u8WifmxhWlpbVl5WWWRaUF1YT1JDQkhGREo7QUQ+Qkg/QEI4O0Q+QEk9NTY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CRmYJocnB5eYOhqp6ml4ybm5iLjpWRmo59iYuGjouLi5CIfIWCcH+HgoZ7h3KDkoyPfnF5dWxxeH9ye254c2xpgHBtY2lucHlpeH1+y7/D36duY3huZFthYEtQUlVOWV5QXV1NUU5UUVVUXG5ud4Nyl664rLWosLarrb3Bsqu1pqW5p6yvoqy0pI+xrpuYmIyRlJGEj5uBjaeSnImDi4SKiYSLhJSVl5eUm5CcmJmZnp2rrKSnoqysztLV0c3L0tPT0NTRzsjD1NHIztLT09bN0tHF0tbGwc/IyMOpv7jQnHZrYlpfW1VeUVxaUFBVUU9JPkFHQkNGPUFCP0ZFPkA/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bHdwfX6AoJ6eoYyNmZOUi4yTj5aFeYWQkY+MioiRh3+De3J+gIKHeoV2hZORiYBvd3Nsc318d3xzgnhxa4Bycmlwcnp5cnu+y5t/jbKEdnKFd2lhaV1EWlpbV2ZkWGVrVFhdXWFjXmN4e3+MgpmqpKSioKGppqqxuaumtKOirqKkrqOnsqCJppuVk5GKko+IgpSJa5WjjZmEgYZ+kYODlJeti5WOlZqOhZKQnZenr6GgoKWkqMjNz8fCy9HT0dTSztPNxtbTzdTY1tbY1dfVytXazcrY1tHLrcTDzIdva2BdXFZSV1JbUEpISkpLQDs6O0VCRD1DRD5IQz9DQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lxgHZ+aXN5coKKgJ2VnpSFi5aJj4qJjoiPgHiElJmLjYmIi4l/hHlze32Dh3eAe4eRl4GEb3hxbnZ/dnh9dIZ8eWyHdnVufXaEdXl8nraNPEGLxqV+jX1qZVdJQ2VjZmNoamRveVtfZmhsbmlugYOJkoyen6CekZeZoKOkprKkpbKgoqWfoqmio7Kch5+SkpORi4+Lh4SPhH6cnIyNgoSFepR/gqqWo4ySi5iTi32XipqRqrOYmpynnKa9w8W4tsXN0dDS0MvSy8nUztHV2tfX2NTZ2M3Y287J2trS1r/MzbR0c2thWldQU1BYVUVHS0pGRj46NzpAQkM6R0VARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc1NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MiooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qj48OVFFQ0pUbG5vcGJxcXSGjX2XkZ6Lf4eSg4mGhYqCiH14hZeXiY+Dh4aHe4V5cXt7hIZ2e4aOjp56jXB9cHB6gHJ7gXKEh4Bujnp1d319g3WAfYeJsHRZqsK3jZKBcG5jPV5ocnFxcG53d4JmaW9ydnlyeouHj5SSm5agloiMk5yfm5+roKGsnKKamqCmn6CsmoyajZGTjoV9iIeDhYuOoJmUiIOHfmyZeoSZh4iTjI6VjIZ7m4iTj66rk5WXn5imrrW8qK29x8vIycvLz8nE0srU19jX2NfU29fT2tvW0Nra0tbJ1cyTdXdmZVhXTlFSXEdDRklJP0I+PTg6PkA8Pkk9QEJBQUVBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEE8OjlEPkNHUmtfbWRiZmx2gIhxkZCbgHmAjn6DgYKFf4R8fYSYjoeMf4aHgXeDeW97e4eCdHqSno6hdpB2g3R1gX50gIRvgZCCb5KFdX2ChXp3h3yJuMalw8q4gpacj3hwZk5lY4J6gneFoZGLeXl3e4SAfIR2bZSWlZaQmJGDiY+XmpeXpp2YoJefk5OYo56brJaRkYuNk4OMhYmJgYaPkZ6cmoiFjIGGl3uIiZ+Xj4mOi4uCfKCIkIq8oJiTl5qcqKalrZ6ntb+/v7jHyc3Oxc3J0dXV1NnV19vU19na29fb2tnYztvGg3Z2ZGZhXVJVVVRNS0RORDs9PT05Ojw/OT5BNz4/QD0/Pj05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs5OzdJUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVxpdHp5bImNknd2eop8foB/gH6Ge36CkYqFhnqFiHx2fnVufX2HfnR/kp6RoIOSfIZ+eI9+eYuKb4ObgXSZh36CioV8fpF7kKmPkMOgvYybpJx+ioV9iXOMi4BzppqcmJSFe4+RiYRpR3ChpJ6MjJGShYiLkZOVj52bk5SRl42Mlp+dlKGVk46OkYx+kI+Oi4SJkpaZn5+IjJSRnZGDjH+mmYiFjoOGhICkhYqLt5edkZSWoaagnZ2do662ubSrwMbK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbt3V1dGdmYlRdWVJPTkhETEM+PT85OTs6Ojo8PjZBPj89PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw6RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlZYZm1tbWmBjopxc3iKe3uAfH98iHt9fIuHgn51g4Z6c3p0bYF+hH53hZuhm56Uk4CMiH+Yh4Cckm6IqYV7oYx9kY6DiYWdf5uRio2jop+RpK+gi5GLhYuBk4ZXcq2Ln6uckIOZnJCQjluCopGCjZ+TlYyHiIySkoyUlZWQjI+KiJacnY+Wl5KMk5SGgIyJko6Kip2XmKOjhpOdlaCLiomOnJCDiY+Ag4eFpISLkLKYnJKUl6GgnpmSm52nsrispb3Cx83Ixs/Lz8zO18/R1K7W1dja2Nra19bZ2p1seXFjY1paVVFVV0NASUQ/Pz86NDk6Ozc6PDs0PDw/PT43Ozo6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs4ODs8QDtCUUtLU1lQVGNieW1ifpGDb254i3l6f3uBfYd8fHeGhYBzcIWCe3V3dnSFgoR9f5Kmop+mopeKnZCUl4uKqJdyirONhKiShJmUhZqNo5agmJOJm56ik6mwn5GVkY6OiJaMb423hJrEyLKdoqadnJiWkbKQZKTNx5WOhoeJkJKNjZOVioWKioaWmpyPkZWTh5WYhICQjJmIjpCrl5eko4iZnpWaiY+HmJeKhY+NgX+Hj6SIjZOompeTlpihmJ+Zk5yborK0paO9wb7HxsXIyMnCytPMzdSo0tHW1tbY2tTT2s5/b3tkYFtbW0xIVFpCQkhEPEI+ODM3PDw6OT42NDo6PDo3Mj86OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFNXU1JCY4JHdoGOfXxtfoh5e357goKDf3d3gIN8bW6Lf3t9eHh8hYeKfoqis6ejqrOil6egpaSWla6ig5G4lZKzmo2ioYylnLCjpJ2ZkaeWqJmsr6SYlZaVkIuYmpehwI6jybirnKOmrpiSm52ynYWGqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIyUk4eUmIaEkpCcdZGZspaXpaGHnJmSj4uRipebiYuXjoZ+jJieiZCQm5qak5iXn5SgnZSem6CxrqKkuL60xcfEvcPDwMbNysnTps7N1NLQ1tjT0Ni6b3ZyWV5TXVVOR0lORUFDRTU/Ozc3Oj88PDc9NDM2Njk3NzQ+NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg0Njc9OkpGREdOWlxZSmZgO0mEi3p6boWGen2EeIGGgX5weH1+fW9zjXp+gnx5houJhoSSprusqLG9r6Wts7OppKKwrIqatZ2juaaVraWWqq24p6SjoJqpmKqkrrCqmpmclJaRl6CYmru7rsqhare4q7CVmZ6jrJOXvqNeqrKDioqNlIeRfI6OfYOGjpCUlYiIk5aMkJWNi42XmJOdmbSXlaudipyUkY6RkoyZm4uTnpCLipafoYyUjZeZnZKbmJ6UoaCUnJ2lrqihpLS4q8LIxLW6vbzFx8fC0aHGys3NxdfW0cvUn213ZVlXUVxQTkVDPz1DQkI4QDg4NT9HPTw2PDM1MzQ1NDU0QjQ5OkJNOkI7QUhDOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRIYmBicElAi4p+gXOGh32CiHWDioJ/bn18fX9wd4d3joKHfI2PjIaMmanBwK+9xruztMC9ta2rs7aLqLKurr6rm7ulqK25uaunpqKipKOqr7Kxqp6cpJmbmJifo6alkqS6r6nAvK2usrmlpKh+iIecrb2wgouMi5CDjoORj3qBiJCNjZyJiI+XjYyVl5SRmpedqJuxmpGsnI6aj5KOlJCQlpePkaCRiZWbo6yUlo+UnJ2SoJ2bmJ+hlJqepqWkoqOwsqbBxsOvsLq3xcTDv82mx8THxL3W0c3FyoVwb15ZV1xZTEpCS0FGSD9BQEM7OjU+QT49NT03PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OjVCPjc5VktEV09GOD00S0BDPjRFS0hOPkJBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVONzlHRD9DRlxlRmBpZ1pdXZOMjIl7h4yHg4x1h5GKgW9+e4J/cX6BepV6kpSUmJCTlqezxsm/wczCw7nHvbuvq7q7mLO3urLArqXApKuwu72qrqujo56nq661sKqcoKucoZyWn7C1p4yju7u2wbysqZ2zpaSolIWOqsTDpIKLj4eIhIaVlI16g42Rj5GhjIyUko6Jl5+Yk5mVl6agr5yMq5yNlo+RkZWVjpGVko+glIeXn6GznpSZk5+gl6Semp+boJSYnqWjpqakr62lwMTDrqi3tsnDvrbPssS/xLyz0crIwrRxdWlZVVlnUUxIQ01LTEpBQj5ERTw1QUU8OzM9OEIzMzIyNjNBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWk1lXGVUYmqZjZaKjIiTkIaJeYeUkIFygHuNf3iHgoKQeY2hlqiZmpm6vcfIycHSycrCzb3Cs628vqi6wL27xLeswamss7y/qrCqpKWkrK6zrba1oaCwn6WimaO0vaqcqb3CpLa3r6yUsqysrJeHmqqmpZGCjJOlloqBdYqSeYWOkpCeoJOPk4uPjZSjmZeclZSjnqqekaWajI+Pj5WWiHyPlZOSo5qVoKKctaWQnpako6GlnZ2lmJ2Vl5uko6mnorKsqLvAw6+ls7fMwLmvxLO7vsK5rcLDwsCXaXZeVVRZWEpKTElGRERJRENCREw6NERJOjs0PThGLjEyMjQyQjI2U0hPPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+aUhfWGFaY2NWno+djpeOnpKJin+KoJOEeIV/lX9/kIiKkYCWoZmup6SYwr3Hw8fF087Ozcu8wriwury0vcu7w8K2t7yts7+5va6vqKCpqLauramyt5ufraKnoZ6rt7iqpa+/xbK9urOoq7a0rq6XlqWsp5+RjZKyxaeWjnySlXyHkpmPqpmYk5OPkpWTpZ2TnZmToaOinJifmIuMj46diFqQl5eSl6SZZZiin7KllaGVqqupppqeppeYlpiUoKOopZ62q6m5u8O0pbS2y8C4qrarsru4rqi4ur23f2hrV1RSU01FSlJNSz9CSEVFSUhHOTZGTTs+Nz5BSy4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M+NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs+QEJGQnBFaklSZWFMRqWUnJeil6mWjJGDiKaTiIKHgpyEg5WQkJSPmqKer76voca8xMTGxs7OztLKv7u2sru7u77PtcS+ubm3s7G1s7izq6ecq6y5qqinr7CYpK+kp6SltcCxrKy0v8O6wLq0qLq2ubSvlqWtr66ki5OUoY10wpp9l5qEjpeZjLGVm5qVkpKZmaWjlaCalpqpnZugoJmKjY+VnGBKlpyalJqlllSWr5+vnJ6jlK6tqqSZoKWTk5iYjZufp6KZtKiqs7u7u6qwssjAuaasq62ysqOhsrK0pG1rY1lXTU9KRE9QUFI7SEtJSEpDRD46S1U/QTo9RU0wNzU0NDpCNDRNV087SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzVFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4uolo6Ik4Wgh4Sdl4+doJqjpLXJtanFucLEyMrJyMzNx7+7s665ucHBzLXIusK5tbqwr6+ztaajm6q0taqppq2smqWupaSorLq/qKy2uL/CwL65s7PFsrm+raSvtay5poibl6abdr+fhJmejpOamoyul6Gcm5eUmp+hqZ6on5maqpqhp56YkI2RnYNudpKimpWdop2RrrKjq5SnqZeqrKOinqSnkpGZnIeUnKKdlrGmqau5tr2ysq6+ubego6eopaacm62pqYtfYl5dT0pLRkdNSlZNPU5GT0tNQkREPFFWPUFBQkRPMTg9NzY/Qjc1VVhPP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH5lXkhFq5Wbop+7r5mUoIyTq5uRkpOJq42GoZ6Mo6yUo6S2xr60wLnCwsfJxcLNyMK+ubKvurXBwsq1xrLCvLW6qqitrbCio5iqtLumqaarqp2pr6ejqqu9u6itvbW4vse8t7a5wrK/wbWqtresvqWPo5iSoqC9n4maoZmXn56Pt5+pnKaim5yhmqiks6CbnaacqKqemJWQlJuLlomMpKGUnaKdoLSvpaWSr6qZqqmcnKKiqJCUlJ+Cj56em5WppKGhs7S6tK2otrKznp2jpZuXlJiqoZ51XFpdXEhHRUZMUElORUdIQ1NMSkJFR0FXU0NIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlEQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5ZlxGQ0OdcGJHRaeXpJ+ew62cl6WYmqqclpqaj6qWlaemla2smaKrtsTDvL62wcLAx8S/zMW7vbmysLmzv8LHtb+wvLe5tqakq6utoKGZqqrEoqSpq6aerK+roqmpvrenrb+yubfHtrW5ucCzwMO4trO0sL2jl6OXlJyUrqCQoqOlo6OgkL2lqZ2pq5ycoZulnr2imaOfoqmsoZ2Xjpaek56Hj4SNk5+koJ61rKaclbCmma6lnJmonJ+MmJSeg46gmZuSpaSamKuxtbGqpaqurJuYoKCSjpCVqJ6UZV9XX1tNSEdJTkxIRkRJQT5RSUE8R0lJXFJPSz1JT1U1QkY5PkhHNUNhW0tCTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTU/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW1RRjxLeGVhVkuimqOcnsWsoZ+sn56uoJKjn5akoKaprJi2saOqs7bFxL2/tcDCu8jCvsnHtri1tLGztLfBxba+sbi1ubSfpqyqrJ2enqWkwaWfqa2gpKmtr6KmqLy1prG9ube2xLK0uLvAtMXCubmvs7W1o52llZKUoa6gmaKeqaiso5rCrKmerK6bm56ZpqC9oZ2kmKurrKahmo2an5KeiY5Xf5afpaGguKqmk5i0op6wn52ZrpWdjZiTnIGOn5eVjaGjlpClrbGrqaKipaWVlZ2Yi46RkqSeiF5hWGJfS0dKSk5GRUFHSz89SkI5OUpLTl1RUUk9TFdcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUpMP0g/NUhMWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNba1dxR0U2PXVlXEtNnp6hmZ/EqKahtKKds6iTq6Wgo5+sqaydu7CorLaxx8XBwrLDw73Gw7zEybyvsLatsLWvvsS0ubKwurSsmaixqaqanaWhp8Gtm6yxm6qjrrCppKi8tqe3u76wt8Sts7PDwLTItLy4rLS2raqippaVlaSsop+gm6ersK+vu7GmoKmompmYk6KjuKCho5KwsKylpp+Top6Vno+QjZWem6Kep7SnpoyXspuirZmcmqyPnZOVkpl/kaCVjo2foJSLpauvpaainKCekZKak4WKkY2bnX5fZFlmZElITElTQUNASUg7O0Y/OTlPTlZeUlNKP1BeXT1IUEJMTEk5TmNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwyNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF1lcEA4O0iWd2VBNJ6jn5ygw6mkqrOipLWqlrOsp6GksqyuqbuyrbG1tMbAxMK0wMS+ycS1v8fBtKu1qLC5rL/Ds7ivrba5pZiqsqurmJ+ml627tJuosJqsoK20sqerubKourS5s7nAqreyxL62x6jAr663tamnrKGYl5KmpaKimJmlr7iusrW2oJ+ppJqUlpSkoLeipaWWsLKyp6umop+ampuVl6ifoJihnq+yoqaNlq2YpKqWl52ij5qMkpaYhZWek4uQm52TiqioqqKmoZielYuOmY+BhZSIk553YWdbamlMT01OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlVkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDEtLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDRJb2dVQ1dGjHlmQzujo52hpr+nqK+xoqq1q566sayjq7S2sbC5t7C3uLjFvcPHvb3EwsbAuMDFwLmptqSsu63Awbe3qq2yuqKUrbGtspakp5GquaqfprCcq6CvtLOrqbW2rbyttLO5t6y4scO7wMCnxKuxt6+pq6unnpiZq6GioZGYobGvs6ywuZqbqZ+al5OYp6C3qaajorGxtKyzqK2gnKCgm56lnKKXnaOzr5ufkJOkmZ+nmZOhnZOXiJOWkpWWnJKIkJqYlI6oqKafopyXm5KFjpmLfYuVhI2ZaGZrYGxtV1BRW1VBQkVUQDs7SUE3OlhQZF5QV1dFWV9eTk1STl5LSj5ZY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERUJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEtLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9p5+doqq9oqqwrKSyuaqmtrWsoa21va+zuLu6vre3wMK/ycS5xMPAv7fDvMC2rrWnq7exu72+tKmusbaelquup66XpqiOp7ufpKyznquisbCzrKm1tLW9rrGytaywtLPBu8a3rL2wsbisraqjsqaepaqgpJeQmp+zqrOrq7Oanaecm5aOoaaltK6ooa2urrGotK2yqqScn6iknpWimZuotamXmZGRnZmdn52PqpyVl4SUloqdmJuTio2WlpqWpqWjoJ2WlZeTf4+UhXuNkoKLlGRqcWZvcV5GWWdWRENNV0RaOUhCNj5dUWhcTlpdR1teXk9OUlhkSkpCXGJfUExNT1hXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7R0RGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgqQzNZVVxnSzaMemZMQKSaoaWtt6Wsqqavrreqr7a8qKext8a3sba9wcO1tbrEvszGucPAub65w7fAuLK0rKm6trq5vrSprbC1l5inrKmsm6urjqu+nautsaOroLGts66ttbK4uKqur7Gota+1u7zKs6q3trG0r66mobSgm6mtoKaWlpuasqOuoaavl6GkmpqTjqOmqLOqoqezrau2pa+xta+jmZ2sp5qXn5uZq7eil5OQjpicoZeWk6qdmpJ/kZeMnZuYlpCKlJKemaSioqCYlpKTlXqLj4V7jIqCipFqbXdsdHthRmFrWUlHWlo9e0pGRDZBYlRpW01cYktcXVtSU1JiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYoKDkuJDpLNS4iVV9UXy81KENfUVwuKkEvSkdQW0czY1lVS0SZl6GyqbKqrKakr662qri2uqWstLfKu7S7ur+/tbO3w8DMyLzDvLW9v7+3vryxvK2nurm3tcK2qq2wt5SWp66rqaOwqZSvuqSssbOnqKOytLGysLSxt7Opr6yyp7evt7TExreptressa2pp6O2oKCosqGllZyalbKeqJygqo6po56blpimpqW4qKOytayosqiusbWrpJmgq6ibnJ6clKm4nJSOjoqXm6KXj5ekn5uUgpCVj5ybl5aViJaPl5qnnKSgkZaRkJV2hI+He4SBg4uKbG92dHt+XExmbVxLTmNcPmJ7R0k4R2dXZlxMXmNNWVlXVVhUaV1PT0hgXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOR2UyNydHYkxWJS1BLj1FTFE8M3JrSUNDkZmlr6Wtr6uopbGztKu4srihrLW5ybmtwbvCuLOxtcLCzsW/wb2zvL++ur68ssOoqbmwtbW/vK6rsrGboKexraamr6WdsrWtqrGxrKmotbuttLK0rbOtqqyorKm4rbKwyMG5pbqxqa2tpaiusaalpK+kqZyenZuwmqOjo6ORrZ+koKCiq6anuqWstramq6yprbC1rqOeo6iqm6Cbm5Kjs5mPiY2GkKGflIyUm56RkYONkpKcmpeVlIeXkpWZp5ygnoyTkY6Qd32OhXx7fIWIiHBycX18fFxTZG9eTlhmXEZElltHO05tWGJcTWBiTlZXVldUWGddUVJMY1lbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvKzEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISis6Rz4zQkhTLD6QaztHSI+cqqyiqrGkqaW0tbK1trKyoqyuvcy6rcC6x7G0rbTBw9HFxr7Asr7Awru+t7vEp6y2rLK3vMCvq7Gsn6OnramppbCjqrKqsKuvrrCuq7O8p7awsqmyqaulpaOtuq2qssO6tq27qamorKmnsaWqpaOvqqiin5yjrZWlnpiemaydoqepoq2mpK6suLOyoqqjoKuvsKydn6anqZmkmZmPn6aYh4SOiYudoI6KjJWajY2EhY+Un5yUl5WGlpSTl6ScnZyLkpGOiX5+h4V8dn6Fg4RycXCHdGxfWmFuYlFycFxLPIV8Rj9YdVhhWk5kXE5WVlVXUVxhXlNPTmdYVlZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE7XEowLkpnREY4PEIvNEVLWDJAlVk9TEWWmK2poquznKqqsbetubevrKarq73JvLC9tsKvsayzw8POz8O+v7PAwcO5v7PHw6uvt62yuL++saytq6SnqrCoqKmxpbSuqrGurbGxtKy0vKS3s6ysrqiroKOesLerqq26t6W3tqSqp6yrqq2hqaensrKkp6ahoayXqqGVm6CmnqWiqqSto6CnsbiurqSmo5uqrK2pnKGko6SYoJuWj5eck4KDj4iFm6CLio6Ll42OiYKLl6ObkJCbjJOSkZOjmpuaio+Li3yGgYGDenN/gn98cnWLpId4a19gbWVXZIZjTj9nk0xFYnlXYllSZVVOVlVWVE9cXWFVS05oVlVWSUpISU9CR0lTUVlvQU5YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlZaLjBKZ0FBPDxCKzpKT140RIc9R0ZEl5OwpqOrsZirqq62rLezrKasqqm8wMC3uLK8taaysMPJy9G/wLq4v77BucG5wMSssbSxs7rAvrKwrqyrq6i2qqeur6q5sKiysa6yrbequLimtLarrKSpqp2knrOzqaiktLSgt66gqqiqqKunoKusqbq2qquqqqKqoK2bkqqhnaCloqajqp+dqLWvqaaro6SZpainqZuio6OfmZmgkI2PmI1+h4yHg52dhoOJiY2MjouChZWimo2NmpCSkY+Tn5eZloyLg391h4F/gHh0gn54dn2Ah52Pb3FnZm93XGByh2pPXplWSG55VWVXUWNQTVZUVVBPWFpiVUhPaVRWU0dPWFVJPklIT1FQeExOVz08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzFQYjAyP2Y9Tlg+Qyw+TFRfMEppNU9EPJePsaKmrK+arKatsLS1sKymsKqpur67wLCtua6htrDJx8jRwL68urvBvbrCv76/rbGxsbW8u8GxsbOqs6mktKmmrrOzubGjrriysLO7rLuwqa22rKqeqqufo6C2rqmhn7CzoraqnqinqqOqoaKtrai9r6yuraKoqKCsmZCwoZiioaeon6ibmquxqqOgrqKhlKKko6eYmqilmJeYno+Kh5SIfY2GhISjloSBgYqFjouQg4OTn5aIkZyQk5CNkZyUl4+KhoZ4dIJ/fHV4eX95cnJ4Zn+GpHZpX2RpgHRmiIt8UlhwX0p4c1NkVFFfTU1TWmZOTFZZZFhHUmhSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwS2c6NDhfPWFkP0YxQ1BbWypITDlVQDSSkLOhpaetpKekrae1s7KrpbGnqri+wLuvp7mqpq+xycfI0cO8v764vb68yLrAt6+vs7G5u7jAs7K6rLisorSnqK2zt7qzqKi+tq+3vrC/p62stautnKmvo6ClrayonJ6rs6W0qJqqp6mjqJ2jqaipvqu0sK6dqqShr5ybs6OWpJylpqClm5uqrKagnKuinJOcoqadmJeoqZKYmpSQioKPhX6Pg4CInY+Ffn2Lh5CNj4N/k5qThZOhjJSRi5GbkpWHiX+Acnt6fnxpeHx5c25ve2aEd4WKZGFnX3KEemxmeF1eVD9Xe2xUYVBRWUxMTnJ1XUhaW2dZRVVlT0M+Sk5EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mYkFKN0dTYFUqPTlDVj0qkJWymqChqqaloquluLO0pqqxpqy4wb21r6K5raiosMLKyczBtr3AtLe/usi0wrSysbSxvLi5vbWtuLW+rKGzp6ussba4tayfv72qs8K0vaGvsrWqrJ+tsKOcpqmqpJ6bpbGnsKCfq6mnoamcpamhrbyorrGuoaujpK+fn62mmJ+boaSdoJ2bpKujm5ulpZaXlaCjl5uWpayMnpGRkYuCioCAjoF7mZSMiHt+i4aPjYuJhJKYkIaUo4mTkoeRmpGTgIl9eWx+dnl4Y3x6cG5vcXZnf3JqhGdlZ11sc41sYGhwYG89W3hsVV1OUFJLSk1UWldNXF5sV0RXX09eT0hNREY7N0hFS088cmhLSzlBRTs7PT47Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+KR00OSYnLjM0LjArLzQmLDokNDFBaFkxNFM9ZV9ETDZLVmRPKjsxTlc9I5SarZqgmKikpKCopLiwr6SvsKmruMG5sq2fua+rqLS6yMvIvrbCvq+0vbfEtsKxrbixs8C0u723qLm3vaqjtKipq7KvurGrnL2+prDBtreirra1p6ansLOgnqWmqKKlmZ+tqKqeoKqupqCmmKSpoLG5n6Oxr6Gsoa2lnKenqZqam5+llp2dm5+rp5edoaqTmpSZn5SZlqGpkZqJjpCGfId+go19fKCMjYh4gouEiYuLhYeTmo6JlZ6IkZWCi5eOkX2FfHNwfnJ0dGB6eGhtb29taH1xY3ttaWVhXGSEfl5Zc2pySUh+aVhZTVBMS0hQUlFJT1xfblNEWFpSZ05HS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1CKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo9L1dUNSiXn6eanZeuoaGhpaG3q7KmtLSqqLnEtLKtoLetrq2wtcbIwLa+wbmwtLy3vru9r6q9sLS/sL3Duam7urenp7WpqKyyrbSxqJy/uKauvbizn7G3sKmlp6+xm6GkoaWloJebr6ahnqOor6GfoZOlpaO3sKGmsaufrKOvmJyqpamfl5qeppSbnZueqKyanZ+ml5eYlp6Ok5eiqKKQiYuPhnqEfoSLeo+XiY2GeIGHg4eLjYWNk5iNj5aZio+XfoaXjY95gXpwcndwcHRfeXdkamtqZ2eCbGVyamtkZ1dhcn9eWWt1aVhFfV5bWE9PS0hIUlVHMjleXm1QRFdVWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0SEJmW0hUQ1RdaEUuOjFdUSwyl6SjmJadq56moaOhuKqwobu4pay9xLKvrqK1sKytr7XExL2zvrq3sLO5uLq4uq6tv7O0uK+/wbirvbq0paKzq6mrtK2us6SexLenqri3rJ+yu6qnpaivq5mjp5ykppSYobKlmZ6kqamcoZ+UpqCkuaikp62mnqWhqJOgqaGhoZmbnqGTnJ2XoaOsnJybo5aTlpacjpSTo6ekkImKjoZ5hHyFhn2djYmKhniAg4eIiJGFlJOSjJGVlI2OlHuDl5CLd398bXVzbW10Ynl0aGZpZmNthGZnaGRmZ2hdZGJpZVplemJgUHJUW1tSS0pISU9TQCAqaV5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTz8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc3YEwnMp+kpZOPpqecn56epLatqKq6t6esw8C2r6yita6nr6+3wcC9scG3sa6ytrW5uLWsqryzr7KxvcC3rry8sKWftqymp7Wqq6+hocWsqqiyta2stLmdqKqrsaWYnaqfp6WSmaWtopidpKqhm6GcmKGep7emr6qtoaGenaKVoaafoqCZnJqdlJuelaafrqOZmJ+WlY+VmYyPmJqnoJCHioqIeIV3goKCnYeKgoh7f4WIhoWQhJaVj4+QkZCRjZJ7g5WPhXN/fmd5cGxrbGd1c2phZmNhc39hZGVmZGhoYWVuWV1YXGxjYU1nV1pgVklISUtNUlg+OWBsaUhCVVNcWklHRkVBLjw/OUE4OVJHQDc6QjAzNz03NjkzOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssL0EqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGFFJTWdpaGSja6hmpmgl6W0sqOyvrehscW7ubCxo7erq66pub69u63Asq6vrravs7myp6u5sK+utLa7tq+5vq2mnrWroKGypquwoKbFobOmsLKxt620nayvrK6imZ2oq6aflZunpqCZpaOpnZqfm5Wdna2xprqorqKhmpuemZ+kmqWdl5+Ym5aaoZSql62pnJWenZSNlZqOlZSYp6eNjIqJjnuBdIKCi5iFhnyIiISFioyIk4WUnJOSkJCRl4+Qf4GNjoNvgn9neW5pbGpncXJrWmhjYXF/YGRnam5rZWllY2xcbGx1cWJTYmljZVpJR0xNT1lRUFVhZYFUQFZSWlVGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOkxqW01bS1hkY0BBMUdgQSc0lKOcj4+xnZyVoZups7CfuMC2oLTBu725saa2sKmupbi6uLitu7Ctq6u3qrW5raSztbGvqbG2trGztrunqaC2qp6fq6Oqrp2sxJmvprCxt7asq56wra+qopudpK2pm5Wdp6SdmqqjpZaaoJySnKOsq6m7nqakoJeamp6hj2ujlpmdcYOYnaWAdpKsqZ+Wl6KSipiZgJeKn454hZKNgmxpfneEcWyGioZ9hIuGb11kYWeEmIZsi5CUknV5i4R/g5B/ZoiBaHZqZlhcaXRuTU9pYmVwg2ZdZGZua2hdW1yJkISIaE9LRDhGVGdeSkhRUFVWS0hSYXB0ZUZbUVVQRkdGQz4xOz02PTY8NGZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjg2WIFsMTVPa1xOW0tbZmI+RzFOXzsrLo+km4iWsZudlKGcqq6so73Fr6m3wri+vK2nt7Gmq6S4tLO0sLmuqaestKaxtaKnuLa1qKettrOutK60oqqftKueo6adp6mcsL+VqKewtbmtraOorKurpaGfnKGoqJuYoqamnJynqJ2Tnp+ZkJ+oq6S1sKOio5yWmJmYo4ihj5Kah6GIlZ+igKWAqK2flJSelImEcniNjoOIoHWHjGmWiGZ+c3igb4eHhH6MfH+hoKCZgHyHn3SIjnabimuHgoNuaWVke21yYlSGbWRtaZhxWGlvbYZXXWhaa2paiHBreXKHaIeEWV5GTj5GXk1GUlZWUVBSV1RnXk1aTFJSUEVGRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk6LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbT1tMW2dfPUsxVF03LyiOp5iEnqydmpqdn6uqqKq+w6+yuby3wb+qpLexqqymtLWur7O3q6mlsq2ltrObrLW2taWmqbOxrbKor56qobKpoKWlnKKlnrG4laanp7e9pqymqamsp6Whn5mhqKSamaejpJicpaqXlKKclJOkpqeht6Wjn6OYlZSYlJ2IrpCYlYqqjJmknYaxgaWun5WboZd6gtSogIeUwJvGeHexpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Jsl7GrsXlpbFixrm9maryTvG5neW1xj9h+UmtitrJ9fnCVdZqhqpBWTldhT1ZOR1ZcWFBQU4tcV1tQQVxEUE5DRkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkFFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV1nXD5MMVlaNDEhj6eUgaiqn5idnqWtsqqwwr2ytcC1t7/Cq6a0rq2pqLC1qrC2tKiopramqLmunLKytqqlpKeyr66xp6uep6WypaKioJicoqGyr5afpKG1uqOpqKCsraSinZqao6mgmJupoJ+XnqiokZ2nm5SeoqejobCjnp+jlpeTmJKZha9raoyOqn9ohZaHrWZxn56Vm6mXca6hpH93unxroI92sV9qtFulgGWckGBmgXpmf2l4a6plvnNnpox2sWp8sXh1kpRjbW2nblyEoEVpZ4iWRXWcX31me6Ongllfi6tofIx3e2qoOEqvW1hUbGNaS09ZYFxWVjtOiFBXVjBJU1NKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy8uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TjVdVzMxG5KjloOtp6afo6WrsrittL2+sLfFsri6w6epsKywqaqxr6Sxu7Glpa+zo6q5qZ2ysrCjpKCqrbCsr6eooKOjsZyknpmXmZ6fsKmYnKKgtbOhqpuhra2fnZqXoaOpnZmepaCcmaGnpJCdopqXoaCsn6amoJqfoZaVkZeRm4a1m7V5h6matpl4iLSbt3+Ul5isl39rgaZ7gYWGkZSSd6tnarFbrHuOh5R0iXCOhoF/iJGXeIODi5eMg6CPhbB2d59ya2ttfItPpVhIZGSZfmNopl94cXRSkoZdUKluY3B6hYBhnS9Tom5bVGtnYExLXWRYXFpCPrB3V1hBI01pRUJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7RSwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YFQ1MByXoJWJtKanoa2pqLOsqru3wrC8w625tsKrra2vr6ivs6qisLyroqi2raOstaSlsrOoo6KdqKuzqbCopp+goLCXoJuXlpebobGlnJukqLavoaiOqaeqm52WmKCmqZufnaSgnKCjpaOWm56Ymp6jq5ymmpyaoqCXk5GUk52E1ZOZuXGxwn/Gh33WlJy7fZyXqJKPnY2ke42GoYClgnmreY+dVq97iX6farlauXeHhH2mg5R8mXupeY6dkHuxbY6EdZC8hm+VUK+nxYpRoHpjYKphc3KGa5aHXlK1tMiFfol8Y6Q0Q511XVBqaGRQQFhnWWRhSkhNakpaU09ZZlpDRD9FPzA8PDU5PDc0PDw4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuMDA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdIOmFQNzIlnKOTmbKoqaWzqqW1qKS8uMGwusCyt7S9tLaosrGksrSnoK+2qZupu66jsbKhsrSxoaSenqiqsam0qaadnp+smJmZmJiXmaSun5yXqK2xqaOejquip5WdmJuhp6GYoqKjoZuioqicnqCelZmbp6Gcp5Wbmp+hmJCSlZCdiLJuaLVyrIhwj6dytHZ0tnucmqaOkJ2No36PnqN9sHWCkNLSdVyufIV/pG6bqqZrh4V9rX2YmZB7sXOTnY95s2WWdIWeb59mlFLJi1rCXJ95Yl+tX3ZzhWGWiF1Zyp1vv35yTUu1U1XGZFVRamNlWEFPa19saVBVRkg5PVdSW1dYSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxBTlRfZVA1Rz1hTTYyLqOekaawraWpu62mtaWntru8s7u/uLi1vLy0prW1o7Oyo6CssKWYqLuupbKxnLS4qqClnaGqpbKorKqlmp2bqZ+Wlpqak5Wlq6KYk6arsaahlZKsn6WSlKGcpaeglZump6Kbo6CumqCenZCWm6OfnaaUnZWZo56VmZaSm4WsfHiod6OPi4eqcK2MhaiEmpuji5Obi6J+kZeHroR/gbNccrJTr32CgqN+cdd9d4V+j56HmZp3r4aKkZyId7RhmmWbgoKVbJJbsFdLmnWYeWZgrV52doZnl4hqXa92lZ6Pd2s1ecius19DVG9eZ2BFUGxfcG1WVU0uZWNoUllRO0FDQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITA0NzY3PVBrZT4mVmdcQD1WX2NONkdCYEk6NzegnZSht7GZs8GtqLKnqrO6t7W5v7q4s7e+tqa4taG2rqCgqayflam2q6mysquttKSbqaCgqKK1p6aqpJmelaWhlJSdmpOXpaiclJCnrbCloJSZqJ+ij5GimqmloZWapqmenaSfrZygnZ+NlJ6cn6GZmJyVlqKglJiRp52HqX5/pnmhj5CEqnCtjYOnhpeho4uYl4ijgZCGlKp6f4udeXCxWqiDgoigeHTYf3aHdKiCj5uNkqR8lpCfhHuyXpxkoH6ClW6TXatcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2ttZE9KQ6FcWk10XWJmTVphX3J0X0pVNUqakVhIRT1HRUFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4xMDIxNTQrKjA1LzcsJjIxKCQlNjY3MTxPZWRBJlVmWz8xVF9iTDdGSF9DMT03op2amr+tmLPCrqusqKe1sbixtb+6u7OyuLyqu7ahsqWfpqion5Ossamwq7etqq+hmKKgpqWkuqOjrKGXnJKjoJaVn5uVmqKhkY6MqbCwpp2Wmqemn42SpJinq6iWmKmon6ChpK6joJ6hjpWhmaCgkpyXm5WeoZaWj6ycj65ucrR0qYx3i6Z0tHp1tIKUp6SUnY2JpIeOdbhvi3uLomtrtlqhhmWXl2igoqdtlHK0dJOZf7NqhpKIrWp1tGGdZqJvh5JrmF2tYE6hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdlVG9uLlunT2JSa2VibFpiXGBwfGNTWVE+P2xvMkJCQD5NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFBOKWanJ66pJuxwK6uq6uot6q4r7XBtb2ysbu4rMK3qqyhnaekop2SrKuotqS0qK6qoZedqKClq7ido62clpmQpqOXjp6hnJmfn5GUlau2sKaYk5usqZaMlKaapa2jkpirs6SgnqissJihopCZoZegm5abl6GTnamdlJCrmYfUlJq7dbHEgMSHftaXnLh5ipKZjpiKjKeHeaK2dX13dsGDmrJhg7p5wHx1uGK1gYyHqX2VgqypcXt/dbyIp6BpnWGmj6+ifo11h6t9vm5zvHSyg3V4gYptmohwbY2kdL1dd31bYXm8alpWW2l5XmlhY2ZibXhvWFtZQ0FAcT9DRys0SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9UXmBLNTxMXC02Pzmnmp+ivKOXsMOvraqqrbGoua+3xbG7s6+8sK7Csq2mo5+lop2ckaulqrOltaetpKCWmquZp625naOumJWhkaagk46do56Zn5qQlpOvubGrlZajp6aUkJalnaStn5GhqKygnJ+ppLKdoqSOpqGVoZqcl5WkmZCwoJKVqp6FkJm2gJKSjbiWeYOTm7Z3bmxvdG95j4SOiXKewLu8mnuBsqhwgXSRuYN8hoaLho17ioeMl32ku7m9nHV5s6N0dZd1dLB1mZ5mh2qNtnRzcXe2jF6AeX2IZ4N5bHpii6xwdIV+V1unaURkWVRmX2NdY1FnZnFtdUJNT0xEO1pMPkoyOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PjcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlbLCs6uqqK2rqruvscavtbSwuai1ua6rpKKnn6CdmZStpa6rp7aoqJ+clqGknqylvqehqpeVnJGim5KQoqiilJ+XkpiUsrW2rJedo6Oii5KSppymq52WqaWmnJuhqqamoqihkayel6Kel5aYnZ6QsKmUnKeij2t/ap2qeol0f5yPdntmiHu9vsC6b5KDcZSFX3JqWl6bimFkh4+WbGB/lWNtnHZilWyAmZWUZl5gY3GbiWhyjHyGlGZqfnF0eH9+Y1x4dYFoUFxuhHx8impXbHqCcklKb4VwTnFNRFZcZmBMWldmY19PW211anFST0RETTxISDxMPzEsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVDRlVFS09IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJeSSdTX1Y0KVBeTCgzPlxPJz8yPqifqaLBpJqzubajrKavpqi2sqzIrLC0rbakvrKzp6Gkqp2jnJqarKeupKW2qqWbmJainKetqb6oqaWVlJuWoJqTmaapqJKfkI+YnLCyvquapp2noomTkambqaScnKygo5qbo6esop+poZmum5SmoJeUnZ+dmLGlmaKomZ2Sn52kppuopJuem5ybkZeCaG9+cXeRl5SQhIm0qo2FmJWPioyZl4iUlYmDk5ORiY6SlJiUmZean6Gam5Sfm42BeqSFa2p8kX2BdYqLg3KCeHp2dot/fIlqc4F0g3Vkd312a294bF9iW29nTVhZZmpfV1lveW5tZlNPRlM5UFpOUk8nKjtLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0knUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsLG3oKqms6elsLWqyautsqe2psGotaGfpaacpZaVoaynraSkt6ygmZeXoZitqqbBn6yklpKcl5+YlJWjnp2jqJOQmKiossKvmaqcqp6PlZapnqqcnqGtmKGbnaKlr6aho6eerJiWpZ2ZmqGenp2woZ2ip5aZlJqVoqSYpKCZoo+YlYuLjpCYrpB8lZyCkYGJqaiFgJiXi4SPoIh7hJGFhZqRh4aKlY+bl46RmJ6jlpmSkJyNfo1lobOuhYqEd3uQi354eXpwZ3mRgYGIa3WBeYhyaHN/eXWDhoFqdGJ4ZV9oZGNkZmpZa3twampcU0xQRF9VRkA+Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAsp+5r76tq62xsqCqprKto6yzsMWwq66ks6+8pbWcoaijoZ6Zl6mnqqalprO2n5WVnpqasKauv6GsopGRnpqalJKWop2XqZ2Enamro7THs5+po6qWlZeap56pnKClrJSfn52fqq6opKKqoauanp+hmKWfnJ+dsKSZn6mUmZmekqacmqqfnJhmhZN9ZX+Pm5Bjeo1taGp6kKOramWamH5nhYtlZWloeo2ijmtojJiRondraouZo5+Yc2xueoSMhnlYZV2Ggl5si4uDd1xodHd3koCHgW93gnh/c215hHN2iIeNgnpohFhdanNkXXOJaWp8cm1jXVFOVkpkWEBJMz1GOD9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1dX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQklbSi42Wk82KUVZL0RPMVlCOz8uPaSeury5r6uysKulqK2vsaeurrC9saqppa6wsaCtl6GknqKamqasna2kpqiqs66elqSQo7Cmt7mlrqOPj5qimpOSm6CZmaaWe6Sroqi0w7ekoaaunp2UnqOfpJ2kqqmSn6CeoKqvqamiqZ6mm6Wep6Csl6KcpbGlmJ2slqKfm5OnmaGsmqB/vYSJc7RzhZ+GrWh3ucS4cZKho3qmmZl0q4J9y8DAunGLo4eDnn2WmIiewL2Clp2djZzBwXyBepGMmsLAfWqlsnCOgm/KeoCbeJKDjoB2eYGAeXF7gIZweISKknhsdZFiZV53Y19lgWJddGhtZGJYS1VJUVlIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fYGFfXl5eXl9fX15cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0NQLyNGWzNQWS9VQUI7LziVobnDtK+vv6mplKOwqrCvrqayta+rpqemsaugq5ibo6Ccm6qno56so6WppaW0pJ6jlKaurbi0p6+ikpGZnaaTkaCimJygnoimq6Srrb+/sKCorqiWkZ+dopmjpKqjk6GhnZ2srqiqpaOipJ+jpJytqZKkm6muqpyeq52uo5eYp5ijpJmef86UenulgnqWl5tfrY9djqiAoaF8p5WbdauDga9eZIyqe6iHhaB0l5OIs2OCq4agjY2zaoSvdHyWh7hhgq1Zo81ukXZ723t/mXF+iJJ1f2V7iHZ2bH6HbX2EjpB9a4CMX3Bqb2ZgX3hkW3FoamNmYFJUU1deSk9DNEFIRUQ4PjU7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xfX19eXV1fYGBfXl5bV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrMHAwLS0sLeYnpGkqqmttaumsqysrKWsprCqoaecmqaYnKKvn6GfqKejpqGfsaycnpWmrq2xq6isoJSSm5+lk5CfpZedqKSeraOqsKi/xbKnqbGtlpKenKKXoaqqn5Whnp2cra6mqaibpaWioKqSrLOWpaKrqp6kqKejsqKUm6icoZyWlZGXoXKGjJh2hqiHcbB8nXGsfaCggqWPnnirgn6tf51yrX+sh4afdpiSe3yXf6qIooyRjJx9q3qIk4+ff3qtVpzEe5Bwk8F9gZVtdXCMbWZ3ZYduYXhucm6HiY+OgmyOjWNuc3VvYGZtZF9vaWpuZmNYU1xgWlJSQzhJSEBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEuK6/Txseys5+do4+jo6Kur7evqbGnqKqprqusp6KknZqjlZ+mq6CipqCoqKOfnrCtmJuWqKevrainqZ6XlZqkopKUoa6anaejrqyirLWpucyxrKatq5aUnJ2imZ+urJ2WoZmenqmxqKiom6qmo6Gqmq+xoqisr6aap6yrq7Okk5mlp5yWk4Wka6R1inqpdXuycYKlipiLcYigm4ekX2FSq4WAroOcda6CqIaGn3qZl4Z7ZoCjiqSYhoKjfal/gZSGrl57qFWdopKCe6OfgHzEsMWMc6+0s7lyYqmvwnRoi4uVjYBrlo9tbHh3d25rZmVkcXFmfGljXVZfaVhYVExMUExDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmFhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICcnISstIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfBydbWwKGZq6ihr6KfsbSwr6mso6enq6urqaWmoJuln52mp6aknayaoqyhpKCvo56bk6qktbCvoambnJaVp6SRm6Kon5+mnLCloqixrLbHsbSpq6mVkZ2doZmgpbOdmqGUnJ6nqqqirZqqpqChqaKyrKGqs7KhnKuqsbG5ppSYpamanZN9qm2fhIh2q3l8sG6CpIuIn5aVnpaB0ri0uMmBgrJfYJSpg6WIh6B6mJaaearJdJqjlKipkJKajH6aiZrGxndloYKldIKgjoJ9r19vtWOxdUujh22nR4OTZI2PnJB6bpSOfG55dHx6bVtmanJxZ4FpXmFYY21cXllJTExKRURCQj1BPEE/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fYF5cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE9UUR0cOzxGMi0kp6TAx7mtqbKuraWjnLO5rKuhpZuopqusqaagpqWYq6Ofr6ydpqGtmp+ppZ2ntqCjmJSoq7azrJymnKCWkKatkpqcp6OgqqatoKKmqbCzwbGyqaynk4mXnaWboqSvppeilZicpaWpma6cq6WknaujtqyhsbmwnpywqLW1tqeWmaqmnKGQg55Od5qCgJ97hKN8gqSDhqafnJ+UhLh8fXq5g4DNxsO2eJuikouffpmXl4p2n5eKpJikqH6vhZyDnoSsfZmUYaVso3GQhZCBfZaEcqxgpHNxgJphvH1SVXWNkaGUenuPjYZyeXOEfm9bbG53c2qBblpkX2huYmRdS0tRU0FHR0ZIOjpLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIYuHmamspKu5q6+gnKGts7Smn6GVpa+urqmnnqWlmqSnobOuoqmns6CaqaSUo7Wjo5aXoam1uaSbo52jk5Cispmem6aloKKvrJujp6K1scOwramsqZGHkJynnaOknKWXnpiYmaWjqJitoauipJeupbusore2rp6etrS6s7apmqCyo6agiJDStcO3eoeOhpGTj4Cmd5Sid4yhkoWlg4xyq4iGtG5zapqknZaKn32XmYeHkHOugqWbo42mipOdiJSQmm1wslylc5N6nGyZf3uZfm6pYaJyc36fYnOyuGh3jpKjlnuJiY6HdXt4jYFsaHdoeHNugHRdZGRtbWZoYEpZV1c8R0Y/UzNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKiWSco2Krb+/vLu1npeopK62oqKZlaOqqK6pq5mlop+moKC1pqKpp7GklKujj6StpJ6RmpqqtLSknaWcqZKUl6+goJ6mo5ynnLOYn6mjtarCr6iqqKGMg4+doqGmo5WampyYmpimo6WXqaeroKObrKa8rJW9sK2fo7K1u623qZ6staarmnyokn18sHiLgKSliJxtsW+gh618oo+DqJeagqyKhq2GoZWooaOYhp+BmZaBe5J+q4GdmZaLq3edoI+Ik5J/eq9do4F9pqdlnoB8l3Vqrl2lbHKGmV1gW4ygbZSPo5aAkYmSiHh5gZZ+aWx+Yn10bYB5YGdlcG9nZ2hCWF9aPUpTMlM4QUFDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JODE1Mi4qLEFUVlZWVVRVVVVVVFRVVFNTVldXWFZVVlFIRklKJCkpvJKahKnGw7fBtJ+braCuuaajjpqjpKCvrqmfo56drZieuaCjq6GwqpquoZGqqaWXipqQrrGtp6Com62YmY+toqGdpaGZpZytl5+opbaovq6kqaOfi3+Om5qgpp6Sk5mak5qZpaOimKerqqGinqiovKSXw6yro6KttLutsKmjtrGsrpp3r3+QipyGh3y6rYmYZLCMZJaufaGQhKeXnIKtjIawh6iapKKjkoWgXGxrgrNgf618e4KBsmxnbpmXi4exWn21XKSDa8iiZp+BfLtZdrVasn1Tr4F6rFiAoW2WjaWYiJSNkpN5d4ybfGNzfGKDd3SAfGFpZm9uZmVmT1RiW0FTXT1IKD45PTQhIS0kHzEuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiX19cW1hVUE5KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vru0wrOjnK2npbepoIuZoJ+dsrGonqKfnbWYoLOoqquesK2erJyVr6mjjombjq+sqaejqJquk5qPqZqhnaWfmaSipZieoqixqLuupKienY58i5uWoaCZj5GZm5GZl6ien5enraWkpKKkqLqfoManpqmhrLa3rrCpob+wsLCYgqqTo66Om4CGpJeYkIGAuMO6hI+dlIWomZ6DrIyEr4qpnZqmq5J/1r3CqmKkv719f6OCg9e7uLWElJKCnr2+hGujgnCrhW+df3qysceDa6uxvax5eKK+u3SAlIyjmY2YjZOZd3+PmXlifHlkjGZ4gXtga2VqamJQYltSaVw/U2BCTCk8OjQvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0ssC6sr6zop2vp6azp52Ml6W/qbavp6G/pqaxm56xnLmon66vpaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp2nm5qgqKKYnaCsrKm4raejmpeSe4eZkaebk46Pl5iPmJOpmJ6WqKieqKagoqq6nqnFo6GwpKy0tayyrKO/q7OynXV2qqS2hWWKoHBnrJCKj25ud6WQm6GCdrKcmHGRjnKXqqSbmbClcm1tbWaLeG9tg5pxgXpqcWlniZaVl3JpaYWHZ3GHZF6LY2lvWl1nfnimYGJykJJwZmSAjJGOn5WVl42SmnqFjZN0ZIZ3Z4xqeH55ZGxjZWxiSmRXSWpZOU9jRE8nSjkrIxwgGyIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdbXGBgYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6urKzq6mirp+ktKqZkr2xw8e8tKmev6uso6Cnq6C6o6SurK2mjpatqpCMhZWXrZ+mq6KfpKSgkoulkqaZqZqWo6mglZylpaauuaqrmZqTknuEl42ml42RkJeUjpeVppOdlqeima+lnaGruZ+wwailtKetsbOssK6qvKeyu5iMo6mltZyJl6OYh6mbkJSdkqq0mpykrqK1maWjoKOknqOlopesp42Tk42Hk52dlZCZk5iRj5WFf6Sal5aOjJSTipCIhX9ojIF0g3d0h4xxp219lpOUlIGBj4+OjpuRnpOUk52AhZOLcGiPdm+Jd3V8eWlrZWNvY1VhWD9oWkdhXk1XK0U9KyYhNjQwLh8cICUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleYGFiXV5VUUtFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbiur6Kwpa6gobexkY6qxLzDubapoaSdm6WdsKikt6edqbWnqJGYrKOMiIqPnKeWraShmqien5OWpJeomqmZlKago4+ap5igtLmnqpiakI17gZWLoZSKlZGVkI+Sl6SOnpinnpq0o5ymq7eor8KvpLinsLCyr6ustr2jssCak6elprSikp2nn46poI2Sn6KtsZuipbOrs5qmo5+nrKCfnp2YrZ6TmqKclJCXq5mNmZqXkJefkYegnpWUhpSNkI6WjYJ/Zo6IdYh3eomEdJxqiJKWlZKJfYyWkZKWkJ6QmZKdgYaXhXhxlHJ5iX9xe35qbmRecGlgXF9YbGJPX2JOWDlGRkQ9Mjw9Ny4qJSspJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBhaWFlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlqSoo7C0rK+jqqeuoKi2qpGPm6Oyua2qq6GimXqcobCkprGpl5y4pqOUmKmcjoaKiZyjkK+fpJapoKGTl5mcrourlo+omaeMmKiOnbi1o6WXm42JeYKTjJuTipWRk5COkZahi5ydp52dt6J/g661orCwdaS/pLOgeXuirbW/l3evpqGKgKp+ZFxid6CPpJ6Dln5tlLWdpamxraZmoKKVdXucmXCBmaqZbYCkqYplnKWckZiZl4yTnJGEnZuQlYSUiI+Pk4uGeWyRiHaHcXyGgYFhaYmMlZOMW3aVkGZojoxxeaGVlWR4l4WAdpdogomCbnl/a3BlYHZva2toW2RjYWBsUFk9TU1NUkY9P1NCOTAvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHR0lLTFRVVVldX2dnZ1hRSjxESDw5VlJbYGFiYF5fX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqqaprqOnraWSlaq0rrClmamlqpZ0i5yvoKirp5SXuaCgj5yknpF+iImbno6smqSVqKKejpeSnoV1ro+IppqokZajiJu5s6efmJiLiXV3ko2Xk4mTkJCTjI+Sn42ZnqWYm7GVgIybtZ20jJKPvaeifqeje6WxuoOOj6mghIyFj7Gqr4yKlqOaeYGLrIadn6Opq6qJloibd6Wce4icgZinhIJ7nrN7ioagmJmVmJeCkZeWhJqaYnmIkoWOkJOLhG5ykYh6gnGBgYaAh3SIhpeTeJZok3SgmnR7mYKbmYSYfpGIgYKYaYyMhGp4e3FwZ2V4bWlsaltjaWhkcFpbSFNLUEBFNS1ZU1Q2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dTWFtYW2FhaWZZUUg5RUw8P2JWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2YpKCmrq6rqK2gqbGmp6qlmZOsxLyvoJSlp7SdkIOdrJ2noqCNkL6emY2fmqGRfYaOmJeIrJ2jlqGhko2UiYaAkaiOhqGco5OWnYaeubGnnZqSjoVwdY+JlZCKlI+Om4uOkZ2QlZ6jlJ2rh5+0ibSarovKiKuvireFjbCEs7GGqY+qmo2dfKiPcnt3nI6mlmiVpHm0jKGgqKqUmsKDgauJmaFynoCbpX6XhpaygaF9oZOfj5iYgI+Um4mZkot8hZSHjZaUioVudJOGgHtzh4KEfYV1hoOYgo/FZoCph4+iap2BnZeAmYCKjIOImG+NkoRnd3R7dmdpdnBnaGteYm5sZmpXZEZcUUwyRTQ2TWBjNyYzPEVHRDo2MzY1ODs4Pj09PkJMP05JSkxDUVpdXFdiXmpsW1FFPUtNQElkWF1jZmhnYmJiYmNjX19iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KgsKmpqKasoKW5samrppqUnqGkqaGUo6m2orB/oKedpZ6diZS9mpONoJKdkHmDlpaRiKuZnJuaooWPjHabm46gkYedo5uWmJeGorispZmbjIx+Ym2Pi5OQjJCMjJeLj5GejZKeoJihp36hp4etnaCWrpCgnp2Rh4Khja2yiaSPrJyMmn6idoCZlGuCq3VNq3iHjZ2TnKqpgqqrf4WifHunap6Ak2xnl4aYt4mefm5gY1iDmH+NfGRnjHOZfXmXbF19mG9hVHKGXWBteoRgWWWCfoWBmXKoqmuDo25ypW+fgZtnZJ5sWmyJe2VZX4J+YVdQb3Zlb3RxampvXWlvbGpnV2ZNXFdFOEE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUktNQkpcXV9XXl5jdV9NRDpNTk1UYlxcZmZpaWJiZGJkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJedobmhqqSmrJKitryrr6KZlp6gpaurn5yttKKokqCgoaecmY6YtJmQi56MlYt1gZSSjYqmlpaYnp9+k4WFrKOHnJGKmKiXmZqRh6WvpqKVmYeJgGluiIiLjo6Ji4yRi4+RoYqSnZ+aoaR/k4GPo6GUoHeclpCng6OpgIesr4eleo1/hJp9onBzk4eVe56MeW2HnIuakp2qnI+HnX6EonR3pmeefnelX5h7fZNzom6Yt7S6dJOIgoC2qGSBxrh8cZW2jHKBm6RkdKyrYX5qnbN+bn6JhI+DjJhxgKNscqNynoJ9o16cmbOVcHyXnrN0cluesoJpYnF0dXFob1hqa3FwZFtnXGFLQz1ENVFBWXEyPFNHX0pSPTwzOTU6OjZDPDtASVA/VE5OUUBEX15bWldgYHtkSUM3TFdVVmNhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaS5mauck6COpbi2ra6gmqGboqOkrJqasayrk5ehmaGlmpqUnqybi4mReIuFcYCWjYmQoZCTlJ2XfZGKjqighpiOiZGik5uajIuop6Sej5aHhH5re4Z/fY+Ng4uQkImOk5+BlZufnKCfi4l3nJiijaByoYyJqYmdqJKZqq6Bro1+eqCZeaOTeIBzl4eMnH2Vn4ebjpqdqIijZKF+jJeQm41tnmibjm+amXuAiqd9cmh0q4Oeg3OqZ5SaXZuFdoSdaKpqgLlmXKlwgZxhlYxfp3Z3iouAnWiadYeTkpiNfp5smI9qpplcqH53u2p9qVqOhF2zZ1tucnh3a2lbcGl3d2FeZFZhQVBETjZWQlJtNEpaWl5OWkRAMTUxOzs3SD86Q0hVP1lTWF0+RGJdVmBRYWR8aUZCOU5bXVhlZlhmZm5tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mWnYmqtpyoiWOVnKy7srCsnaWbmqefnayZnbCnq56Xo5qioJmWlqCkmYaJjWmIgHJ7l4iLlpaEkpWYj3qLhJaknImVj4aKnZKcm4iPqKGfmouQioCAaYGGeX+WjHuIjY6HjpWZfZKhnp+hk5hyaJ+KoI+McJKNgqmJmqGlq6Kqf7GupKK4l3ejs6Kjf4iUeJ16qpl/oo+fnZmJmHKhfoiOsLV9bJqRoXh+mbWjo6uohJl8m32cm390qlpdb3uXi3ieYk1/e3uGZXqYQk2fWaJqc32Pb4KKhJl2m3mHibGzf36akqZzfZ1tcHyUb5lyaaNdlXZIZWNfdHF8fW5lX2tndXpiY19QXVdcU1ZAWUVRZ0RSVlxhWF5JRD1COD9BOkhFOExFWEFXUlpWRUZiXFpgS2BtfXFFQzxWXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lY3ZsXmVnZmxkZWxoaWxplJ6Bsa6ahFNfoae0urOzqJqii5qpm5unkqCro6Coj56enZqZlZignZaHh4l3hYFueJWFkJuLfZGTlohygYmSoZtykpCAiJiUn5qEjqibmZWKiop8g2yEhXGCoYx4hYyIh5GYlHqRo5+eo4iuhn21hI+enXumlnqpgpefkYyjn3+naXhufpl0oHNxfJ2FmG+Tgq18pISnn5uDpHBeqWh2o2RwpmGc0498e5l4cnNjooaRfqJyo5B2a5CzjGCDmIp0qrKovH93hG9/v6aqtF6cb39yl3CCdKNyXqRndKZgaKZsm9OYeYGabnZ5l2ubeXaXcmyppWdfZXlxf4RsaGZjbXV2Zl5hUVplUFFhSFZJVF9XU1tlaltlUEVDS0xKS0FKRDhQQFFOWFNYT1NRYGVlalNkeHl3SkdFZF1lWmhpU2loam5jamZgY19cXV1faWJhaGV8ZF5kZ2RrZGpsZmhtaJibf7CsVF1LfqqvsbSws6KcmISXpqCgooykp5+XqYqZmJmUmpOSoJiOiIV7cH2DaH2PgpOagXeRjo+KcICGj5OSbJiTfIiRkqOVg46pmZOSioWJeYN2iIBugZ+Gd4CRhYeYoZZ4kqGjmZ+Js6Gitot6rKekrqVxqYCbkYaCn5V+pYGjm4aYcZ6Eoq2uiZeLf4ykjZWDr6OVd7W2tsmidJSNg59gnZepbXmWh6CbdaGHd6B+kZeLgW9NZqOTcpuJdKV7enVihINufqFtcmRgnHN/dJhre2q0trTGpnOYfXmcapqZq3OAmmxzd5dpmXl0mHFQRH2zXmp2a3iHZmtmYnN0b2xVW1JZaE9RaElVTFhSVVxna25VZ1dNSkFKTUtISk5BUUpQZWNqbWV1c3N+eHtudIl6e1VRTm1eaFxraVJqaGlsZ21mY2VfXFxcX2liZGhre19dZGdjamZubWVpbWWinYmwqIVlQJSisquvr7Whoo9/lqehoaOLpKadnKaCmZeXjpeQkJuTjoiDeWt5hmWDjH+Xn3l1j4iMgmqFhZKEi4WdjXqMipWlkoKXqJaLkYuAiHqAfYt5cI+ghXmBlIaIlZ6UfpOkppuVloNnbnicbKJkfHKleJyYcGing5qOfaV7opeDlnKfdoCJlJWPuW6QiqJifZmjl4luc2ura3WgbnCnYZtqi5BploeblXWigX6aYIuGjXVviGJooWaef2qbdXFlZ4mCb3OiW19bZKFuXomNcXyAdHJkpW54omNmp2eXcYuXbaFvUoiPbqBeZKdUi11UmG1tcmtxgW1waGt3c2puUVZVVWVYU2xJWE5bSFdoaHNqWWtWUFJFVlxNWFJhVWhqXnd1e3xwfXxygnt/c3eNgIN3XlFzYWdicGdQa2hoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWZpnpldG2Mp66lqbCxpZ+Lf5apnJ2ji6GhmqKigJWZk46akIuXkY6Ke4ZxgIhoi4p8l5pzdYl9kHxlg4eViomVmoJ8iIaWpo+AoaqPhZCKgYl9gICOc2mPpoN9hZKMh5efjYaRqaWdiaZ4lpt+pYmWjLKZnpGEr5efpXqYiXupdaiQhJpupaKMkoSMg7xtfKWvgoeFh5WYnqJ+pnxzqJWhlmmff3CsY5aKlpN4qG2qo4GJdomDd6uRpohrkrFsd7ONqWyLhm9voJ6SlWJ/q4yqeIGAjqefd599haSWnaBomYd1rGaerYy2c3a+jKSTWYOmjathdXJ0b3t1cGJqfW5nbFJUWFRgYFxrTFxRW0ldbG12X1txWFtfWmdzZW5vcWNxdGB3en55cnmDc4N+gXt7jIGCgHZieWRjbnNkUmxnZ29tcmlmaWFfXlxhamJsbHpvXFxiaWJtaXdtZ2xvYpamq52BgJ+llqqqnqenraOYiIGWqZmdoomapJyonYSMmo+GnJGFko2MjHSFeoiDb42FfpeTdHWGcpGDbn+LkoeGlI98e4GFl6SNf6WkjYCOiYSUdYKHk25si6iAgouTjYibnoiLkqqioJCAdJSXiH6BeZSvpH+CnXGPhnmTjoeBe3OpjXF9fXqYlpuEjXh7fX2Hk5WTi3eSmqGihHt/i22Nhlx6eXN7cWlufpOKcoB0go+Uk3GGhINmjX9fgoGMeHd0lXZwem9wiW6Fhl93aXiOZ4KDho+qnH90fZZpiYhvfXV7gnRsbGaMc3h7l3eEW2tXeY9pbndycW93eG9da4VuaWdWWV5WXGVqY1VgVF1RXm93eWtqdmRpamp1fHBxdHNhb3RidHuBeHV5gnV/gH+BeYuFgn57boBtZHluXlduZ2h1a3hqaWpkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbqpp4uho5umpJmknauhn4ODlqqRnZ+ImaaaqJmDgZyLfpaUh46KiYxygnyOfH6PhHuXjnRzhHCVhnx9kouGho+FeH6AhpijjHumn4qFj4+ElYKGjph3cYSqhY2RnI+Hnp2Hi5qnn6Crg4mNlZt/foqXraiQk6iReXGflIV9lXCAq4dxfpVxam98gZ+Lf5GNimdtXYSNjp2eoJBzl42Kc3Vsg3d0gVlyb4eRgn5/jGpdaWR7hYSJgGBpeXycfISNhHeCiIVqeo2JbGJxc4N3YHSNg4qRqJaHZ42Ogmx2ioFugop3bWNlY3mDepVaXGlnbnZbe3l3dG1zcoNmXG2Ka2tiWVhcWVhrcVteYFldXWVyfXp0b3Riampqe3xxenZ0ZG10aG17fnV6fXt5eoCAf2+GiYN7fXN/enN/aFRccmlsdnB1Z2xnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyrsqKQo6Ganp6YnZmooaB9gparjJ+ThpqikaWVf3uYhXySmYmIhoaKcn2AinaEi4KElopyb4BzmIaEfpODg4aKgnqAg4qan4+BpaCGeI6XiJWKi5yXhIN5rIGQl5iTiZ2choehqp6ioqSLh5ObnaOalquiqKiik52JmZF+epGQhqqAf5ORkpOcsaWalJ6OjLCRmISmjo6WnaGKkZ2EipOLbH2Pd3hmgoaRi32JnoSIjI+IiIGFhJF4fHt1nKSKiIygjIeWgICOg4F3cXWGhYB5iYiLkaeRhIeOh4KLj4p6g4iGjH90aoGDfHmZaXJoYHSKcX57d3ZvdnSBXV5vh2duX15ZWlxTZ3FVY1tbYGxndHt7cm5vY2pqaH97bXh+cGhvb2tmgHtygoB3f31/hXttg4yFfHp5fH16hHhOZHZqc25xe2VsZWJiYFtzZnBmcnFtVV1sdG1oeHpwZ2lrZY2Inrufl6OhmJWZmJSYpKCcen6XqY2djIWfnIuel314lYN7jpmJh4OEhm14gH9ygId+iJOEbWx+epeHhIOQfoCGhId8h4OMmp2ShqmdgnKKj4WSkYudkXyNe6mDjZGXlY6bloWFm6afopqehoOSmpmZkJmmoaaenpCXgpSNeX6KkIanfH2PkJGGmKqhnJKcjo2pjZGAno6KlZyghI+YgIiQhHB5h3J1YX+EkIh3jJmBhI+BhoV/hoSVbnp2dZSkjI2HnIaGj3WCjH5+c3N8ioV8eo6PhZSokIeEj4GCiYeHc4KFhoh5bWp9f3ttaGtsZ155f2d9e3Z1dnV7d1xgcH1udGBjWltdUWZsU2RaXWBqaHV5fnBsbGNrameAf2tyf2trdG53bYR5boaAdoKAfYV3cYKNh357e32Ae4KLYGl7a3VoaoNlamNgaVxjdWdvYnVtbFRicXllb3l6cmVqbW2Lip+4mqKkn5OSlpeLmp+enHp3m6SQm4mGpJSLmJp5eo6FfIqRg4yCgoJse394coCFfYqQfWtofYKXiYGIjnx+hYSHfI+Bj5ubkIimm39vioqLkoagoYqFjHyokIeOkZaSlpJ3jKOgoZ2Wm4CBkJqYk42ao6Kkm5iSnH+QiHuChpCJoYF+jY2PfJekoKCRmZCPpYyPgZySipSZnX+Tk3+IkIN1dYJxd2F+gY6Ic4qWfYmMcY1/g4aHj2h4cnqOmpORgZmAiYxzg4l9fnJ6fI2GfHuTjoSXppSMhpB7hIWFgnN/gISFeGRwen94eXBsamZefnNofHV2dHxzgGpeYHR3cHdkY1hdXlJpaFRkWF5gZ2l1eYFxZmpjbGdlf4BqbX1nbXBqfXeGemuLgXKBgX6BdXaCjYZ/fHuAgX1/j2pyg250aWKIaWxiX3FWdG9sbWB4aG1XanN2Y3R6enFia295iY2fs5Klpp2OkJiPhZyhmpt8daOfjZd/jKGKiJuWeHyGh36Ein6IgoB/cH57dHWChX6JkHdnY32Gl4qCio14fYCMg3mWgJWXlY2Vnpl9b4uBkJOFpZuHjImDppWEkoqVl5KRdpGdoaGYlJh6f4+Yl46Wmp2lnpqUlZ17komFeoiYj59/gouOjHOXop6gkZeOjqGMjIOYmISUl5p/mY59io6CeHJ+bntkgX2Lh3GHlICRgmuHg4KAi4ZmdnB9iJSajn6VeY2LfYKJfn1ygHmLh3uGkouMmaSXgoSMdoeDgH90eH+GgnNednd9c312ZmxlYX9pandzdHV9cXxjZGFzbnVybWFZX11aa2NSYldfX2dqdHmFcGJqYmtmaHyCa2h0aGxuaH98gnlsj4VxgIODf3R8g4yBgH56goN+fJBtdYl0dG1mimxqYWN1VoNpcG5geGdsYWp2cGZ4e3lxX3FshYWQna+Yp6mejo2Xh4Wfk5WXfHeom4qYeZaci4yZkHl8gYx9fYN7gIOAeHN4eXN9gIN/iIuAZF59i5WHf4WIdH1+iX9+mISWlJaMo6CWfnGGe5ORiqaPjI6KkqCRg5CPk5eRioGPl6CakpCSdICOkpSJnZ2ep5mZjpWXdZGSjG2ImpGbe4iJkIlvl52aopGUioudi4aBk52AlJSWiJqKfYuKgntxemt2bXx/jH9uhZODlXhwgoR+f4yBZXNqfYKYmIWAj3WSioV6iX93eIF+h4J+hY+HjZWlkXmFgnSIhnt+cXJ+hIFrYHl0eXB8bmFuY2V7Ym5vdnN4d3R0YXdgb2x1bnBdWl5dXWldT1xXYmBnbHJ6iGtfaWRpY2h3h21mbGhpbGeAfHp3bpCIc4CDhX10gYaJeoN9eoGEfXyOcnmLeHhubIhraF9pcWKHaHFvZXZnbWxhemhqfHt4cGF3bYuBmZqroaWpnouLkYaJnYuUlnx2rJiMlnyek5GXlIl3fnuKfXyAdnh/gHB0c3pvhX2BgIl+fGFcfo+Rh4CEhHJ6f4Z6j5GHkZGbkqSak4F8gXyNipKkiY2KjZaajIWQl5KVjYiIjJKdk4+MjW6EkI+RiZ6ZoqGYmIqXk3CMnIZoiZuQlXuJhZCKcJaalKGQkIiKmIyCf5KffZORlI2akHyLhol1c3VrcW51fYt1b4aRjpJydIB8goKKfmVybnp/m5V+hYp1koyCdYp7cIJ/goh+ho6Lho6Wq457iH1+ioR2fG5sfoKAYWZ3c3RuemJeb2FrdF5wanp5eW10cWV6Xm5sc21zWVldX2BpWk9WV2RiZXBxf4dlXWloZmJncY1uY2hoZWlogXp3dW+OhXOBgoN8doOJhXiFfHiEhnqAiXd/i3t7c3mEa2tfb2h0f2txb21xZ29rZXthbX95d3Bsd3eJf6OZo6ihp5uIi4qBjpyGkpp0f6iUko2GoIyWlJGBdHx2hXh4f3JzeoZscm94bYl2gICHbnFbWX6SjYiAgYF2dYB/f6CGj4qSnJegkpZ3iX6AjIicnoqPhpKXloWIk5iOlouKjY6MnYqOkYRtiYuPkYqclqGcmZaGmYlsiKaFaImfjJOAjYWMgXiTmJKdkI+IiJONf36QmX2SjpGOm5N9i4GFcHZwbG5vcXyHanODj5mLcniAdYKJhHpndHB3gpuQfYqFe5WTe3iKdXKLfIeOfIyIhYqPnKWJfIR2gYl+d3dsaH1/fltxcnFvb3daXnBgcGteb2p8enFubWptd2Bwb2txbllYYGBgbFdQU1llZWF0b4SCYV1rbGRiZmuSbmBmZl9naoF1cnJvi4B0f4OBeXaBi4B5hn94h4Z2g4V7h4t/fHeLf2pxY3xihXxvcGx0amhubHd3X3F+eXt0dXN/gn6llZutn6eXhYyDfpaVg46ddImek5KGi5qMlo6MenJ4dIJwcoR0cXWIbG9sdGyHdoN9f21uVVGBq5SHgniAdnKCeYGggpCBkpKYmpGYd5B6goySo5qTjoiUmJKEhZaYi5OLiY6PiJ2EkYt9couFiI+InJqfm5eWgZWAaomfimmJoomUhZKEinGDkZePmoyOi4uOjXd7k5F7kIyOk5iNfIl+gmx3am9sbG17gGJ6fpCXgnd6gniDjX16aHVtdoiXjICJh3yVknJ8hnJ4jnuMjnyKf4WOkZ+ghn18d4GKfHZvZ2l+f3Zddm5ta3ByVV1uYnJhX21ueXBocGZndHZpcWxhd2ZdVWVgX3FTUE5bZWNcd2+Ie15caHBhYmVmkWpfZ2RbZ29+b2xxc4p9dnyGgXV2f4x5fIaAeIeDc4aFfoyMhHx6lXhncmuDYId+b29re2BpbXSAdF5zfHiGeHRzhXx5oZCasZylj4OKf4KZiH+Jm36KmJKOhIiYjo+PhHd0d3OAcHCFdHBxg29qaXVtgm59fG11c1JOgt/JktaTfG90g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYmcf46BeHuNf4iMiZycnJuWlHqOeGmLlIpuiqWGlImYhIZjjJGYjZSJlouMiYtwepWKfI+Ji5OSinqHfX9tfGVzb2tte3pcgXqQkIF7fn+Aho97eml1a3SMkIuDh4Z+l41tgIBwgo6Ajol+hXyEkZabnIx9d3iCjndya2RufIBpZ3NuZ2lzbFNdbmRwWV9scXdna2tiZ3l0cHBkYHhhYFVrX150T01LX2ZiW3dwiXRcW2R1YGJlZY5jYGZiWGlzc21rcXaLfHR5h4J2d36Lc4CHf3qJf3KJh4GQioh9fpl2ZXNufGWHfm5va39ZbG55enJgdnp7jXZydol2eZ+MnK+boJCChHiHlH57iJuGhJ6QjoWMl4STj4iBdXdweXFvg3Btbn5yY2R3cHxuenxqaGxipJrB3K7vonNsdoN1hKGEkW6Vj5Wfk5qAkXCFi6OXiY6VipCdloOAlI+FiI+AkoqKl3+He3Z/iniGhY2bm5eZkJB2i3hwiYuOf42mhpOLnoaGXouUl4mOiI2KioSJbHyXg36JhoqRkIZ2h35+bH1keHVqb3p0WIl7koiGen9/gIaNf3pndGqBio+LhISBjZiHbYN3cImSg5KGgIR8gZKXlJuRdXR4h4t0cm9kcnZ/X3Jsb2FodGZSYHBna1VfbnN5YXJjYGl+cXNuW2NzYmNWblpcd0xMS2NmYF11coltW1xkeF5gZGWEX2NjXlhpcmtua3J3i31zd4SBeXh8iXGDhX19iHt0i4mHlYaNf36Yc2d1cXlti3puc3CAV3F6dnlxZHZ5hoxodoCJcYCdiJmonKOShH1wi5N3eImbg4SfjI58lo1/moiFfHN3cHNqb4Fsam18dF5gd3Z7cHR6Z2BlfOvatcnD3IlzbHSBdoqaiIxpl4+Pm5SSgYhwhYigjYWLlYqMl5N7jZKHgoiPepGLho+CgHd4g4Ryh4KSm5aTmIeMdoiAcoeEjImcpIWWjqCEimGDlY+FiIWIjIaAh2h9lIB+g4WKjo+Ccod/gHJ3aHZyaXV4bVqNfZODhn2Ag4GEi4N3YnVtioKRjIN/gJSTf3CDbXqIkYiUhn2Df4GTlJGYiW5xeYuEdGpvaW91fl1yaG1caXRfUWRxaGZTX3F2dGBwYF1ohHFzaldnaWRpWG1XW3RMSktlZl5hcXOFaVtcZXhdXmRnemBkX11Za25lbmpzd4p+c3OCf3t2eohzhYR8f4d2doqGj5iBjYJ7k3Zsd3Z5eJN0bnd6fFh5hnGAbmd4dpGCZHaGhXCKl4aaoZuiioZzbpGKcnaNmnyJmYiJfJ9/hJp/gnlyc25vZHJ+aWZsd3dbX3h7enFxf2lhZ2F/1baOkaZ4bnF3e3CSkIyGapiNiJqQi4V6aIeLmYaBkpCGhpeNfIyMgICJjXuQjX6JhXp1e4N8cYaAlZmNkpSCiXaEiHiGg42VoKGIl5GhgIlhf5SHhIeDiIx/f4JmfZGAf4CDjI+Qfm2DfYN1bG13dXR4dmtjjoKPgYV/fISAhYl/cGB0coZ9kI6DfYCSintyhWd7hYyJjoV9hoCBlZCRlIVub3iLfnRsbWhod3lfZ2lpWGt0WVJocmliUGJyeG1iZV5aaoRudGNcaGBlbV9vVFpuTUdOZmRbZm1xgGtaW2JyX1xjbHZkZV1dWmxsYmxqc3aGf3Fvf3x9dHiGeIWDfYCHdXiJgZKVfImGdomBb3h5eoSSb216gHZeg390gWxoenOUc2dyh3xxkpKEmp+boIeGdXWTfm11kpV9h5CDio2afYyadn53cm9samF0fGdiaXV5WmB3e3ltcX5lZGhoV52PX3Jzl7zEhHVxlIiPfXGWi4abkouHcmmIjpWAe5WLgYSai3yKhXx7iYt/lIh1iYZ2d36BcnWFgZ2UhZSPhIRygYp3hn6Mm5+aiJWPnoGJZn6Tgn+FgoiIcYF9Zn6MfHl/gIiMj31pgX6EdmdweXh0eHRsao+Gi4KLgHmCgYWEgWxfc3l7fo6LhnyDkIJ/c4NqeoWJjYiGeYV+gpmOkY1+bm16iHx1c21mZXpzYVtwYlducVNTbXJoYU5ndXhmYF5dWW+Bb3RaZmJea25gcE9ZalFEU2ZgWWptbXxuWVtdbGJaYm92ZGdcXWBraWNranN2gYNxbn98gHR1g3qDg32BhXZ+iIGWkHiEinSBiHJ4eX6NkG9veoBxaYF4en5tbHt1lWpqd4RzbJONhp+Zn5mFh259i3Vpd5aNfoGKgpSXinqQlm97dHFramRgc3toYGVxelpgcnx5Z3F5YGVlj7Gyd0tiWqXZ0JZxepCKj3d9k4qEmJCLhW5rhZGRenmShoGEmIp8hn93d4mKhJaAb4uIcXV+e2p5hYOkkIOTjYSAcICEeIZ7iJ6blo2VkZaFiHB7k4J9goKIgm2BdmiAhXhygIGDioh8ZX5/hXZkcXOAaXlxcHWZjoaDin13eYGFeoNrXHJ/c4KJhop+h4p8iXOCbnKGiJGHh3SGe4KajY6FeW5ufYN+dXljZWd6bl1YdlpXcGtOV3FyZmBLbHd0YV5cW1p1fnNwWGdeZ2pyYG9OV2dSP1hmXlpvamd5cVtaWGplWWNweF9nXF5lbGdma2lxd3+Hb2x/foB1cIJ7gIJ/gn92gYSIl4lxgo1xe4Z8enmElIx1anl+a29+dH98b3J7epNvboF+eGeSi4KhmZyRgoVmhoJvZ3mUiH1+hIKYioF8jo1oeHNra2ZfYW94bV9ib3hcZGuCeWFxdV9lZdTqvYsyOj6Ljn9xeYWHjY11gpaMfpKNi35ta4SMjHV9j3+FgZSIfIJ3bnaHhIOXd26IhWx1e3VmeYKDpouCjouEfm6BdniFfImfko+Sk5SOjId/e5KGd36DjIJrf3FogH55bnx8gouEd2J6hYJyZHJpfm51cnWCnIyBgIaAdHZ/gXSCcFxugHV5jISLfIiBfol5e3JtioWShY10g3qAmIyLgHVtanaAf3RzW2dndW5XVnxTWW9kTFpycmVbSXF4b1xbW1lddX91aVpiW2hmb2RqTVdlUD1dZVxddWVgdG9aWVVuY1lkcXlaaF1gZ21naWtpcHd9jmxpgoR/eW6AfH2Bf4J6dYKBjZOEcIGLbnh+gHt7iJOJf2h6fWpze3KGenN2fX6MeXiEfXxri42Dm56Wi4GAbIx9amh+jYt6fX6DlIJ+fYqIa3VxZ2hiW2Jncm5fYWtzYGhwiHlic3NeY2SboI9uXTZar7V0aYCIfJGGdYWVhXOOiol2b2yEgoZ0eYl4iXySh3l+cmd2iX5+mG9xh39pdnluZnmHhKSHgIeMin9vgHeCg4CPnImElpOZioyFiXyQiHB6fYR7aH5saoB7emp7d4KIgXJgd4F+cmRyZ3aDbnV8hpaSgn2DgXB4enx1gG1ZcIB3dY2Dh3iIdoSJfHl0b4uCkoKHc4B+f5SJinxvbmltgYF0bVtlZHFvUFp6TltuW09bcm9kVUtzeGlXWVpaYXGBdWFeXWBnZGlpZk5ZZ01AYGNbYHVgXXVsV1dTdGBaZG9yV2peYmhrZ21saXB3fJJraISKfXxvfn57gYCBeneAf4qLg3F8h29yeIN/e4mMj4NpfXttd3h2i3Z8eH+Chn+Dfn16bYSLh5ijjISDe3WKeGpsg4eQeH16gpGAgH6Lg3BycGNmXllnX3BvX2BncGZqbol0YXRvW2FkanV6gL+cpqTIuHGEgnKSe3eFkoJzkIuHcnJvg3uDc3SHdIh3k4h5eXBjd4d6gJNpcoR3Z3d1Y2p8goedgYB/jo9+c4B1h3uClZKFe5iPlpCIgol7iYlreHl+dGd6aGt/eXRpeneAg31oYHiIfWtrdGh8gWl2goySlX98f4BxfHd8dIBjVnh+c3SLhYJ9hHKIinl5cnGFg4+AgHp/fneQhoR3anFobIeBcW9cZmBxbElkdUtdbFRTWXJuYlFPdHhhUlhYXWFwgnRdYlxpZWVka2RQW3BJQ2NgW2NvXV14Z1RXVnZeW2ZuaFZrXmFqZ2Vubmlwd3qSbWmIjHl9cnt+eYKBgXx2fYOIhoNwd4RybneCgn6Ii5N/cIB7eHl6gYx0gnh/gYGChHqAdW9+ioubnod9hXl3hXpndIWLkHl+f3uIhYR3kIBncG5fZFxYZVlscmFgYHBsa2iJbmBzaFleY25/d6naqceGh7JxiHdvjHR6hY1/eZKJf3RzdH13f3Bxf22EdJOFeHRrYHqCeYmPZnKEcGh1blttfYCQk3+AeJGTfnl8bop4g5ONhneYjJOQiIaFfH+FbHR2fmxndmRte3Ztand3f398YWJ4hnppdXVjfnxodYePjZZ9doF3cYB7fW6BWld1f3B2hYh/gHptiod1eWx2goSFf31+en10jIJ+dGh0ZW6Kg2xyWWhdc2RGbW1LWmBXVlV3bWJQUnR2WFBWWF5gcoRwXmFjbWVkXm9jVFxxRkJlXl1lZ11bemJRVlx0W1tna2BWal9gb2Zma3BocHZ4jnRrjo11f3Z4fXeBhIF7dH2DiIeDb3KAdHF1foWBiY2KenZ/eIN7fIaHd4d8fYF9hIB7fnJ1eYuNoIyIeYh2dIJ4Xn2Fl4t4hoN0hYaEeIp7Ym5sW2JbW2FWaXNiYFtnbnBmh3JhcWVXXGJrf3zKzoe5oWptbYpscYNxe4OJfnqQhHl4c3h1dHtqbHZjhHWRgnZvZl99gnqMimVygmtqcWNYbHqFm4iCgXKWlXd/fW+Kc4WNjop0mZCSiYaLg3t5fXBwb3xmZ3FhbXhxamxxeH19el1leoB4anZ4ZoN3aHSIjI6WfnOJa29+gnlvfV5Zc39udIGLfIJvcIqAcndpeIGCgYN4f3N7dYh9e3Nnc2Fui4BrcFZpXHZbR21qTVZVXVNVe2thT1R1clBRVFdeY3WGaV1gbGpmY1pvYVhib0dBZ1xgZV5cVntdTlVlcFlbamhdV2dgX3Jma2dxZ3Bzd4Z4bpWLdH96eH55g4h/dXJ/h4WOg3BwfHh3dnqFhYeMhnl7f3SLfX2GhIOHf35+fYZ+fHl1eHeRk59+i3yKbXV/eGOChpWGc5GKb4WFgXuEdWNuallfW1xdVGdzZGBYY3FyZ4ByYmtkVlpfan94vq57n7duYXOFaHN6cXiBhXp9i353d3J2b3t2ZWpvYYd1joBzamJefnl5i4RmcX9oa2taVm93iaOBhX9wmZNygXp2hG+DhJSKdZeKjomFiYV9eHRxbmh4X2psYG12amdqbHl3enZaZ318eWZzfm2FdWV1ho6Gl4BxjWhre4R1bnZjXXF9bHV9jHuCZ3aIfm9yaXeAeoCBdH5te3yDe3hxZmxhbYl9a2xVaV92VUppak5STmdMWHtoYU5VdWtMUFRVX2d2hGdeYXFoZ2JYaV1ca2dKRGpZYmNWWVV5WU1WbWpZXWtkXFlkYl50ZmxkcWdycHWBd3GZhnZ/fnd/fIWHfXVzgoiAlYNuc3l7enRzhIaJiYN4gX11j358hYqNg4KEe36Kg3t3fHd3mpyXeoiChml2fHtsg4OSgHKOgXGGgn+DgHBmbGdYXVtcW1NkcGReV2JydWl1b2VlYldbW2h/cG9ygHOJZGR5fWlzdXNygYN3gIN4dnJ1bWp6cWFna2eGc42DbWZdX31we4l/aW14Z2pkVVdyb4ymfIR7dpaRdH10fnxvfn2TiHibfYmHg4eDfXVwcWxndFxsZ15sdGRnZml6b3tyWWeBd3VocIF4gndid4aLfJWCb41rbnuDcmd0ZmFuemhzeIt7fmN3hHdrbHJ1fHJ7e3V/aH+AgHl3b2RmYm2Fe2xqVWhhb1JKaGpPS05vR156ZmFNVXRkSk9TV2Frd39mXWd0aWZgV2RXYnBcS0tqV2NhVVRVclZLWHVkWl9rYFtaY2RfdmdtYnBpdG9yf3V0mYJ3f4B4gH+GhHp8dYKEfpeFbnJ0fHp1cYSFj4GAeot2c5B/fIGVjYCFhH19jIZ6foB3e6OlinmHhYNrdHt6dYKAi3puhHN5hH2Cg3ZvamllVl1bWlpTYm5kW1hhc3tqaG1pYGJYXlppf2lrcIBnbGBoeXhqcnNzbYOAen98dXRtemdpeWpfZW5ogXaPhGdlWGJ3an6He29qcGdmXVRYb2eNp3aAenyQjnp2cYBxdXh8k4J6l3aGhICGiHZqcnVnZ25bbGRdbXJfaGFqeWh7bFtug3J0anCBfnp4YXeGhXmQhXSJcnB6gXNjcmpdcXhlcnSIfHljdIFxZ2p5dXNteXh2eWWEfIB5d3FkZGNte3xqalRnYWVTSmtmT0dRakVheGZhTVNyXUpOVVllbHh8Zl9ucWplXVZhVW5uVkpTZ1dlXVhNVWtUSVt5X1tfal1dWmJlX3lobGFvb3ZucHh1eph+d3+BeYCAh4Z6eHmDfoGTg3F0dH56dnSEiJF9gXyRa3KVgHuDn4V+h32AfoaCgIp7d4Srnn96h4eCanKAeXWAfoF0boZufYBzioBqcG5kZFlfWllaVGJqZ1taX3WCaV5tbFxhV1tba4FlcXR9aWlca3Z1Z3N2cWyEe318eHVybHlmaXdmXWRzaHp3koFjY1RlcGiChXh4Z2lqYVdWWWdjjqdvfneAi457cXJ/aXtxfY9+eJBzhX6AgIZuZHZyZGdnXGphXW9vW2hfbXVlemhddIBvcmtyfH51dmJ1hox7iYiBgXlzdYB2YnFuW3J0Y3FzhXx1ZXOAbWFte3Branx6dnRnh3d7enZxZWJkbXJ9aWpTZ11cVEtxYlBGVmBHY3ZmYUtTb1hLTVhYaGt2e2VlbnFnZFtXXVh3ZVRKXGJXZ1dZSFdkT0dheFpdX2xaXlxiY15+aWpgb3R4bXBvdoOYenKAgHx/iYyGfXV1hXmHjHxzdXWBeXp6gYyOfH6FiWlzloF6ipx+foV6gXt/fYaJc3GPrYt7e4aPfGVxh3lzfHp1cm6FbHt+bI96Y3BvYmVeZVZZWVdjZmtfXVxzhWhYcW5bXlhaW2t6YnB3dmxhWWxzc2d0dW9sg3h+f3h2bW5zZGh0ZVtndWZ2dpF6X11SZmdrg4J0fmJkalxUV11iY46kaXhzg4aReW5xfGp6b3+JfnaKdIJ5fXmAaWR2bWBmX15pX110a1lmXW9vYnplXHd8a25vcHh5dHVlc4STgIiDiXt3cHN+dGN4ZVxxcWJxcoJ8dGdzgWVfbndqZWh6fXVvcIN2dH1zcmJfZm1ufGRoU2ZXWFNNdl5QSVlXSGJ0Y2FJVG1TSk5aV2pscnxjbW1zY2JaWlthd1xTS2NdV2hTVkZYX01GaXVYXmBsW1tfYWJdhGloYW54eW1wa3aBkHltgn6AgZOIhIF2dIh0jIZ0cXZ2gXh9fX6MkH9+lH5wd5WDfZmSeYCAeHp9f3SIhHRxmaB6en6HlHdjdId4cnd0a3Rvfmt4fHCRc15wb2BnYmxUWlpXaGNtZlxccYllU3JuW1lYV19rdmRpdWppXVltc3Brc3NzaYR8fn56dm5ta2RpcGNbanJkdHaOc1tWU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEknVsbHtvcHJ9f35zgniBdHt6emRldWddYllgZ1tedmhXYl1waWF3YVt8dmlqcm94dHN1aXGCloSHf4V3dGtxfm9neFhdbG5jcnOAenRncH5cYHByYmBrc39tbnZ/c3F4a3BhXGVsbHpgZlJlVFdRT3VaUU9YUUhjc2FgR1ZqUUlRWlZra2t9Zm5vcmJbWlhZbHFXUlBmVlZoU1RFWVtOSHF0WF9jbGJYYGBgXYtqY2RtenhscGl1eYd7a4N9gISafIOEeXyIbo+Hcm52enx0goJ8i4+Cg5h0eIGThYGeiXWBgIJ0f4JxiIN2cKGWc3mFioZ6ZHaKbm56bmZ4cHlrcnZzjWtedW9hZ2VrUl1bVWdhbGtaXHGMZE9vblxWV1RmaXNoYnRlZFxYbnRsb3V0eGqGfH97h3aPc2Nka25gXG5tY3N4h2taVFZjZHh9fXGGXWRfY1RaX1lilZVjbXCDhYp0a2l8cGd1eXZ+bXt1dnB7f3VfZnNjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXRxdHF1d2tthZSCiX2HcnNncH9ydHBUXGdrZnJ0gHZ0Y213VmNybFtfcGd+Zm54fnN0c2ptYVpkaWp3XmVTY1RVUFNsVlBWU1BHZHJfYUZYaU9JWFRXbmllfWpseGxiV11VW3RkU1JXaFFYZlRTR1lZT013dlpfZWtpWWFgXV6ObmJma3l2bm9pdnaAf2yDgH2HmHuAh4CJf2uTiHJmdIB7dYCDfYmOf4yTcnyKkYSHn4Z7f4aNdIGGc36Ddm6ki3KAjIp2dmx5i2Bke3BmeXN4bG1yd4NnZHxtY2ZnaFNfXlVnX2tvW15ujWhOaW1gVVZTbmZza2V4ZWRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVxeH5nWlZYYGx4fHtwhF9jXmdWWF9XY5uIYmtwgYd9eGxsem5deHRufGt2dG9wfIFzWGpuX1lcVWFiV2RwYlNfYmliYmxaYX5sZmx0dm9td3dsaYaNgIp7iW5yZnJ+bnRuZFthaWlwdIF0c19pbVNlcWVWY29kfGRzeH13bHBta2BZYWZndFxkVWBVUk5XZFFPW05PSGRvXGJHWWlNSl9LWW1kYHlpbn5lYFVfVF11XFNSYGZOXGBVUklbWFBZdHVdX2VraFhiYFpejXFjZ2p4cXNuaHZ0e4RygoN6iI5+fImIjXlukIl0a3OBdH9/iIWHkYSWj3l9jI+HkZuEgHyNhXOAgXN0eXNvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fn5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY2NjY2Njo2NjY2NjY2NjY2NjY6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6OjY2MjIyMjIyNjY2NjY2NjY2Njo6Ojo6Pj4+Ojo6NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmOAvru7u7u9s21mZ2dnZ2dtbm5ubm9ySiwwMC8vLEmFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fW37IxMTExMa7Z15fX19fX2VnZ2dnaGs9Gh0dHBwYO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmIiIiIiIeNkJCQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJjJKRkZGRkZCJiImJiYmJioqKioqKioaDg4OCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkpKRiYeOipCSk4+IjY6OjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6Mi4uLi4uLi42NjY6Ojo6NjY2NjY2NjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCRioaOiYmOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJGKhIuNiZCJi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+NiIyIj4eNj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aJjIiNho+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2Ni42Ljo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn19f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/f4B/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYWFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Qjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX1+fX9+f39+fn5/fn99fn9/fn5+fX9/f4CAgIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f39+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f4B/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX1+fn5+fX5/f35/f39/f4CAf4B/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf3+AgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk9PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+f39/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUlFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3ent8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9PT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgIB/gWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09OTE9STllwcHJ3eHd3dHR0d3p8fn1+fn5+fn5+fn5/f4CBgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBwcnh4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gH+AgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzw4OTk7OzpAOjs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnd4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYGCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4ODo4Nzo8OTc4Ozs+PTs7Ojg6QEBCQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3F0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7PD9AQUJAPTw5PD08OTc5Ojo5ODk6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklOSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+Af4CAgICBf4CBf4GBgYBWTE5QUE5SUVBQUVFOOD0/PTw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozw6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAgH9/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQj89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFBQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj46Ojo8Ojg5ODg6Oz1APzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dnd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFAO0JDQkNAPz8/QD0/QD48PkA/PT09Pz09PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxwcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkA/PUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHx8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjs+PD89PDo+PT9CQkVAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk1LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRWVvcHFxdHZ1eHt8e3x8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFDREI/PkE/QURFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm9wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gIGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRklISUdISElHRkJERkREQ0FVdIeJh4eGiIJXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExLTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent+fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLS0tKS01KS0hIRkZHRkVQbISHhoaGh4eIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz8/REZHREVHSUtJSUdISUdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9f359fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTUxLTUxJRkpWbIGGhYSEhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lIS0xPTk5RTlFecoGFhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7PDw+QTs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BCRkhLSExLTlRne4SEg4KDhIaJiouMi4qJiouMiVQ6ODY1Njc2NjY0Njc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc4ODo7NzY4ODk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn9+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1EQkRGRkRWeISEgoKDgoaJioqJiYqKioqLiYqKgUg2NzY0Njg4NzQ1Nzg0Njc3OTk3NzY3NjU6Ojs6Ojw4OTk5OTg3Nzo6Ojg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT1BRV2txcnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PEQ/UH2Eg4OEhISGiYqKiIeIiImKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo6OTs6Oj49PT87Ozw9Oj48Ojw7PDw9PDo6PDg6Ojs6OTk5PD88PUFCRElJTEtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj87Ozw6ODk5ODk5OTk6Pj0/P0N2hIOEhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVCQUFCPkBDQUA/PT4+QD8/P0A/QD09P0I/QUE/QT89QUFAPz9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUJBR0pOT0xJR0s6ODo7OTo6PDw6Ojo8Oz0+QD89YYWDhISFhIaJiYiHhoaGh4iJiouLioqKi4mLXj5ER0lLSkpGR0dERkhHRUNBQENFQ0NAQkNCP0BESEVDRURFRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3OT06PDs+PT4+Oz48Pz9DPkp+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqHV0dMTE1LTklJS0hJSkpJRkRERkdGRENGR0VCSElLR0hHRkdHRUtKTElKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgH9/gIB/T0E+PT9ETEtAQkJBOTc7Pjs8Oj0/Pj88Pz5CQUU/aISChYWHiIiJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtHRUdISElFRUlHRkVMTE1JSkdHSElKTk1PTUxOS0hHR0dFRUNGRkZGREVISEZDQT9ATG1wdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw6Ozw6PT88PT0/QENCSFN+g4SEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMTExJSEhGSkpFSkhHS0pJSkhIR0tMTkxMSEhJSk1QTk9OTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVb3F1d3h6e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6Ozc8PTo8Pzw9PkBCQ0NMbYSDhISFhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4teUlJQTU5NS0pHRkNIS0dMSkZLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pJSkpNS0xGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl7ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OD89PT5ARUQ+QkRDRkp0hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtLRUZGS09OT1dWUVBPUlNSTVNUT01TTFBTVVdSU1JQTEpNTU1MTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkVHR0dHSEY+QEI9Pz08QT9BQURUS0JISUZJS3iGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBLOztRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFFRS0tLR0hKSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0ZGRT8/QUBFQUNGRENES1ZQSlBQTlBQeYaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJeXVZdWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01LTEpJSUxNS09NVHB0dnh5eHh6eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SExJTVBLSUpPU1JRVFZVVlR1hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXl5bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJidHN2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktKSUlGQkRAQTpPUVFXWFBQUFFSU1JWV1dXV2yBgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaWlhcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdHd2dnR3eHh7e3x9fX1+f35+fX59fX1/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpaUlNRT1FSUVVSVVNWXnV4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBPSU5PV1ZYWlpkcXR3dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f3+AgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU09PUU9RVlFTUlJUY2R2gIOCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JVUk1PWVFNTlFTVVVNUVNSUE5MS0hDSUdSU1RZXW1ydnd1dHR3e3p6e3t9fH19fX59fX1+fX5/f39/gIB/fX1+fn5/f4CAfnt2c3d9fn5kdX1pcXRgZF1dW1lVUUxITElhbJJ0UFFTTVFSUFNbUlNSUVJVVWJze3x+gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5CQkNDQT9EUENDQEM+QkhHVkBITk1HXWlRSEdPRkRFRkhHSEJDSEdISkdEQUFDQE5QTVJkdHV2dXR0dnl8e3t7e319fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUlJQVVlTVVFRVFJPVmBrbHN2ent4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojo+QD8+Pj5qUEthRUZISUVCP0dMTUdNUVVKQkU/Pjw9PD09Pz0/QUNCPz48PUI+SU1GVW91dXZzdHZ4e3x7fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKT1BOS0xRUlFUVlVXUVFXVlBYW2JdYWdtbWxuamhgbnJpbWxxdXt6fXt4enx8eHd4ZEJAQEE8OkJDQUFDQVtcT3tOT09OS0xNT09QTEtMV05JR0FBPDk3NzU5OT07Ozs4OTg5PztCRz5cdHV2dnV2d3l8fHx9fHx9fX59fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT09eXFpJR09RUU9NUFFOUVJUVlhTUllUTllaW1dZXF9eX2VfXV5xd2teYGdrd29vbGpvbW5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FWUE1JREY+OTk2NTg3OTc5OjM2NTc5NTxCPWZ0dXd4d3p5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LU1RTUFFVT0xSU1RXWFNUWFFMWFlZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnJ1eXl6e3t9fX19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdTW2ZKTFBSUk9NTU5NTUxKRlBQVVlTVE9KTk9VU1RcVlJVU1JOTUxJSEhGPz49Ojc4NzY1OTk2NzY2NVhxcXR4enp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFdZWVlSVU9JR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlAUT1jYFFTUVBNUFBPTk5NUE5UUlBSTElMS09SUFFSUlRRUk9MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVlFTRkZBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjRAPmpvYVJSUUBHVFFPUFBRTlFPUE9MSkxMUFBOTVBRUU5RT0pMTU1LR0VFQ0I7PT08OT1HNjY3NkVucXV3ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVVlZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOERNU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FMT05NSUxLSUtLTEtHRkZFRDxBQT47QEU7PDg5VHJzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E/PT1BQEI9PUVIRkRGRklHSkpARkFBQEZHRElPSFFSYVxRUFJPU05PT0xMT01LTUxNT05bVktNUU9HSUhDSUtMTEtGRkZFP0JDPj1CRz9CP0BkcnV3e3p7e3x7enp3fHh5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRUpFQ0hHSUdJRUJCPz48QkBAR0pFTU9iZVBNT01XS0xOS0xNTUxMS05OU2RNSkxSSUlJRkJKS0xNTkpHSUZCQkJAP0VGRUhETG9wdnp5eXt7enx6d3N4dXh8fHl6bnFxbW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPSEtFP0I9OTk6Oj9CPzxBQkFBREVHS0ZESUlHR0hDQz9CPj9AQD1DRURMTVFUTEpJTVRGSUlKTElKS0lJTE1PUFFQS0dDS0hDQ0tLTE5PTklKSUdDQ0NESUpNTElac254eXh6ent5fHZycHVydHl5dnhqcW9rbGxudHRtc3Z7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0NGR0hHSktJSkxER0I8Pj06Ojo7QUI/PUJCQ0NIRUpMSkVJSUZHSENDO0FAQj5AP0JERElNT0dISkdIS0RISUtNSEpMSElKTEpNXVJISUROR0JFTExOTlBOS01KS0ZHR0pNTlJOTWNuand2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnp0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGhlcEZKQ0ZFRkRFRUZFR0NDQD08PTo7OjtBREA/QkNFRUlGSkpMRklJR0ZGREI6QUNDPj9DQ0NFR0tNSEpOSERIRUlMTk1ISUxHRkZJSUxOS0lIRU9JQ0dOTU9NUE5OT01LSUhJT1NRUk5TZ2dmcm9zeHZ7enxsaGpvZWtwbXNxZm1saGlrbHRtb3V0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZl9wR0pDRUVEQkJBRUBEQj4/Pjs7Oz47PT9EQj9BQ0ZHS0dKSUxIR0dHRkVDPz1ERUI+QUNCQ0VHSElHTVBJRUZHS05PS0ZISUZFQ0RJSkhLSUdIUEtESk5MUU5PTk9QT0pKSU1SVVVSUFhlYWFtZnByb3J5emdlaGhjaWxmcWxmbG1naWtsc21wd3V0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VERkJBQEFEPEJBPkE9Ojo9Pzs+P0FCP0BCRUdKRkpHSUdGRkZEQ0JBQUVGQ0JCQkRFRUdHSEZMUExITkpKTEtJRkhFRkVDQ0hJSEtKR0tSTkNPT05RUE9PTk9QS0tLUFVXVlZUWWBfXWlgbmluaHJzYmVmZmRoaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxc2trc01HR0VGQUJAREU8QUFAQzw4Oj0+OkA9QENAQEFERklFSEZGSEZFRURDRUJESUZDR0VBRUdFRkZHRUlNS0hRTUpLSEhJRUZISEVDSUlJS01LUFNORFJTUlFTTlBNT1BNTE5TV1ZYWVZYXlpdZGBpY2ppZ2tfZGVmY2hnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJFRTxAQ0JEPDc6Pj47PjtBQj4/P0NFR0RGRERHRUNFQ0RGRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSEVLS0xMTk9SVE9IVFVUUVRQUk1OUU9NUVdaVlpZV1peWlhhYGFgXmhlY2BkZWdnamhoamdobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lOSEhHSURCQ0hFPUBFQkQ9ODo+Pj08PEJCPUA+QUJGQ0VDQ0dDQ0RERkdHR0lGSEpIQ0lIR0lHRkRIS0lHS0hNS0pLTEhLSk1LSU5MT05PUlVWT0xWVlRRVFJSTE9RUE9UWlpZXFpaXF9fXV9jX1xiZGxjYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUxJSkhKRkJER0U9QUdEREA6PD5APz4/Q0I8QD5BQUdDRURDSERFREZGR0hGSEdJS0pFSkhISkhGRkxISEhKR0xLTExMSU1KTU5NT0xQUFJVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJmXWRgZmdgZWlqZHNzZmpoZmxwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3c2d0cmtxcmtyd3B3SkpLSUtHQkVERTxBRkREQjs/P0FAQEFEQUBCPkFDSEJFREZHRUhFRkVJSEZJSEpMSEhKSklLSkZKS0hJS0pHS0tMTElJTUtNTk5PTE9RUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWJiYGRkZWJkaWJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV1c3Bzd3R1dXd2dXV1ZnFza3BxanJ2cHdKTExLTEdDQ0FFPEBFRURDPUFBQ0JCQ0VBQ0RBQUVHQ0dHSEZFSUZDR0pHR0pGSUxISUpNSk1MR0tJSExLTlFLUlBMUkxKTU1OUFBQVU9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5hY19hZmNhYmhuaGJpaGhteHZtaGlub3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnNxcXV2dXN3eXd1dHVjbXRrb3BqcXRxd0xNTExMR0RBQEQ+PkRFRkM/Q0FFRERGQ0JFR0NCSEZCSEpJR0hKRkRLSkdISkhJS0dKSk5LTkxJTEhKTUpaZkpkW0psUkdOTV9uVWxzW3FwYndjUlBidnVodWNhdmFYbnFiZHZpbXpmXGx0YGxrVmB3dmlqZ2hmZ2xtam1vam1vc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cnFzdHZ2dXV5d3V0dGBrdGtwcGtxc3J5TE5KS0pGQj9AQj88RERGRENDQ0VFREZCRUZHRERKRUVKTEtJS0xHR05JSEpLR0tKSUpKTkxNTUxMSU1NTFtzYmRwXWxsVUxOZXJdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9ccHZncE9Mcnl2a2Fha2VlbHhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd5dnR0Ym11a3BwbHJycntLTElIR0VEP0FBPz1CRUZCRUNFREVFRENISEdEREtIR0tNTUpMTEZKT0hKS0pJS0pKSUpNTU5NTU1LTk1OW3Jwb25wcGtqTE9QbVhOaWJ0cnBhbW92XFlsUFttbVpxbWtwbHh4dHNpcFxgc2xxa1V1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dFRURCQUI9Pz9FR0JHREhFRURCRklISEVHS0pHTUxOSkxNR0xOSU1LSElNSUpJSkpOT05OTUxOTUxcaGR1XWxxVmtNT1FuVVprXmtsdmFsZHRUZWNObFlsXHRvbGpseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cnNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1GSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRklMS0ZNS0tSUkxITU1JTkpJR01HSkpISU5PTU5MSk1NSlp0cHBvcXFsa09RUm5Zc2tnb29xcW9tdF5uWGF0X25vcG9xc29vdXN0dGpaXnRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0RERUBAPkNDQUZDSElNSEZDRkpMSUdGSk1MRk9KSldSS0dMS0tOSUlKTElLSklJS0xNTUxJS0tKU2tiWWleX2pjcnJaX1lqb19lZVVrX2NbYWFRYG1oXGpcbmlqZFtvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFydXR3ckhIRkpERUNGQUBBRURDRkJISkxHRkNGS0xJRUZKT0xJT0pMW1FKRkhJTE1JSEpKS0tJSElHS0tLS0dISklLS0xKSUtMTlRbXVRQVU1RT05PT1ZRT1BRTk9RSkpOUFFkcWlUWVZbW1xVWVpdWF1cXGNmYWFmYmNmX15ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzSENFR0ZGQEVDP0NHREZHQ0lLTEdGREdKTEhER0lQS0xPS0xXTUlGRUhKSkhJS0hMSklHSEhKSEhIRUZLSEhKTktIT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZFxhWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRQQkNETE1BQ0NCRElFR0dGS0pLSEVFSkpKRkVISFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdGSkhFRkdFRUpGQklMSUpTX1lgWGBhW2BVWFpUXV5aX1JZXFBeXFlOX1xeU1teZF5aXWBjX1lfYltgXltVWVlaX15jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN1eXp6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURDQUNGR0VHR0lKSklJREZLS0tFRklJTkpOTEhMTkdIRj5IR0xJS0tKS0tJR0VJRkNERUJGSkQ/SUtITlpiWV5eYV9SVFNXX19cXVleUVlcTVZfV0tRWVtRW19iYV1eY2FgYmFiY2NlWlJaV1ddWl1kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WVFKRkRHRUJESEhGR0hJRkdKR0hGSEtJS0RESkpNTUxMSEpKSEpHQEdGTktLS01LS0tJR0lFRUBEQUhJQT5ISUZPXWBaW2RdX1RRUlhdXFxcX1tLV1xMUlxZSU1eUVFdX2JjY2NjYlxkYmFkY2ZYUldVVFxYW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoaGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0VLSUZHR0lHR0pHRkZJTEpORUNKSkxOSkxJS0tJSUdDSEhRTUtLT01LS0lISEZFP0VCSEhBQEZFQ1NdWV5YX1hfW11VWFhPXVxRS0pWXlheW11WWmFSUl9fYmJgYGJiX2NiYWRkYVhQUlJTXFNcXV1eXl9fX2RpZ2xrbm5we3t8fnuAgoOEhYWFhYWFhISFg4SFh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTEpMTEpJR0RIS1FPTUxQTU1LTElKREVBRUNIRkFBRkNBVVVFXFReU1dgWE5UVU1ZWkxKS1RgYVtfWF9eYl1PWWJcYGBfYmNhXWJhV2BfVVFQUVJZU15cW11dXmBiZmZmbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJU2NRRVdfSUdHSERGTUpQUEZJSUpLTkxMS01MSkpHRUpOUVFOTlBNTk1OSUxCRUFDQ0ZDQkBDRD9MR0NMTFBPT01GTUZGSElHRkxLTU9QSUxPUFBTUExRVFNVWlhXWVdXY1ZOUlRQUVBPUVZUXFlZW11cYWFlZmRoZGxtcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtOXk1ISFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS1BTU05QUE5PT09JTEZhRUReTERmYkNMWkdeXHNtT01WbllLQ1BfVGtWZ0pdWFVeRExRVUxNU1ZRUlRYVlRYVFRcVE9lWmhoZVpVa1RYV1VbXFtgYGFiYmNhZ2lnbmxoc3p8fX6BhISEg4ODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFTFBUSktHYFRISk9KSU9NUlFLTUtMT1JVUk9QSkxOR0hNUVtZT1BQTlBRUEpLUX9RSXxZWXJzV1BtR3Fub2FWUHFxdE9Ca3NtcXNwU29fW25YXVZcWFVraFVdVmNZYFlaXlVVV39pdHV1YGF2X1liXFxmW19hYWFiX2FjZ21vbWBwd3R4gYGCg4SCf31+gHZ4em12fnR4fYB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxLT0hMUlhXUU5PT01RVE5PUVBMTE9HTVBTW1pUUVJPUFBRTElaeF1UeGRoWFJTUHZmdGxwYm5ma1JyTkx3bWpycHNycXJwb2+AXWV6dXhxcXpxfnJ9a3V9YVJofGVzc3Bzc3x9cH54b39yYGBgYmJbYmFobG5rYmxmZ213foGAg357eHeAdHZ6aXF+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRE1NSEtLSEtQT01OSk5WXllVTFFTTllZTFNTU05MUElRUlRZV1dQVFBQUFNMSGd4bGN4cW1aSktUeXB1bXVibnZQZGRIZXZxbXdvgGpmeHhpV3JRaHptaWp6en5seHp/cGhuWHV1anZ1cYFhc2h9aWx4fG9fX19jYlxfY2VnamplZ2JjZGxtcHBzdHNzc3lxcnhibXRncnl7c3N1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFFIS0xKTFFPT09NUFpgWlhLU1dQYV5SVlFZU01QSlNUVlhXV09VUE9OUktMcm91dXF1cWNoYFVuS3FwXkdoeVd2VEtoeH13YHl7c25hXW1vZFNncnVubXlwd2t1c3RxbG1cc356a215fGx1bnxrcXd1eF5fX2JfXmBlZGlnaGZlXmJiaWlpamtub2txbm1qcGFjZmNvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUUtNTkxMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRXV1lXT1NPT05SSVJtSGl3S2BkdnZUVmxObmx7cmFqZ391VEtXa2d8bG1seF9acHp7X2B6c2Nyb3hxZ2N8aXJ7XVRLbF92dWxqdnx7bn95bHxwXV5eYltfY2VlZ2ZlZWNbY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxnbG1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTExTU1JPU1JYUldUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FLSFFOUFVMS0tSU1JRUk9WVVFRT1JSWFhQTU9VVFdYWFtbVVFSV1tXWFdbT1JUV1dYUV1YVlxVVE9YUldXWFlaYFxoc19cW1tdXV9jWl9kZGVnZGRkY1pkYmdmZm1ubXVmZmdjYGZeXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJOUlFQTFZWVFBUVVhVWlVSWl1VVVRXVVlYT09MTldUUE5VU05QTkxRUEtJUVFLUU1KSk9RVFFQUVNSSkhNT1BRUlBQUFRVUlhXXFdTU1BRVVVWU1pRTlJSV1RSWFVTWFRTUVVTVVVZWVheWl9hXVxbWlxcYGNcXmJjZGdlZWVjWmBhZGFiaGhqbmNhZF5fY11aY1xibWFeZmZnbXNkaWhra2VkY2doUUpLS05PTE1UUU9UUVJNWFdVVFZYV1daVlNcYFZXVllVWFRRUEtPWFNQTlVQTlFPTFNQTU9VU05RTk1OUVNQVFBRVFROS01PUlRUUVFRVVdVWVpbWVJVUlRYV1ZZXFNPU1RXVFNZVFZYVFJRV1ZWWFxaXGBdV1lfXV5dXF1hYV5bYmNjaGdmZGNYYGBiXmBoZWdlYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMUFVQUFRRT1FaWVhXWVpaWFhWXWpkVlhZWldWU1RPS09WVFBPVFBQUU9NUlFPUlhUUVFPTU9SVE1XUVNUVU9OTlFUVlVSUlJUWFZaXVxaVlZRUldYVVtbVlBTVVVVVVhTV1hUUlFYVlZbX1teYF9WX11eYF1cYF9fX1pjY2VoaGVlYlliYGJeX2ZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVlxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVdTTU1ST1JTT01QU1JVW1VUUFBMUFdVUFZRUlJYTU9QUlVYVVRUU1RZWFteXVxbVlJPVVdVW1pWUVNWVFVXVVNYWlNSUVpXV11fW2BgYFZiXGBhXWBiX1xgXWNhY2hpZWdhWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcWmBeX1teXmFgX2NcWWBaUU5PTlZRUFVTUFVVU1BXXFxcWV5dX1dcXmpwd3mAY1xbVlZZUk5QV1NOUVFQUlRSTFJUVFlbV1VPUk5TWFVTUVJQUlpPUVNUVltWVlZTVlpYXV5cXF5WU05UVlZbW1VRVFVVV1hSU1lbU1JSXFhaXl9dYmFgV2JbY2JeYWNfXGJhYl9kZ2llZ15cZGBhYGFjZF9iX1laX1tcW1hYWVdXWlpaYV1dW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1cYFxgVVxcaGpyfXNsaFxVWVdRT1NbU1JRU1JVVVVLUldWWlpaU09TUVVVVFJNVFBSWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZWV15aV1FUVVdYWFNWWVtUUlZdWV1eYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVnX15kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JbUFpVVldWU1RUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRWVFZZV0xSWlZcW1xSUFVTV1VVUk9WUFNYU1dVVlteWFtZVVpeWF9eWVxZUldSWVhZX1lZUlRVWVlZVVdZW1VUWl1dXmFiYGVkXV5dXWVhYmZkXl9kY2BcZ2VoZmViYGVhX2FhYmJfYF5WWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lRXVVXWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZXV11YT1VcWV5dXVRTWFJWVVNRUldRU1ZUWFhYXl5YXVtVXV9YX19YXFZRWFRaWlphWFtUVldaWVpXWFlZV1ZdXmBfZGNiZmVeYlxgZmJkZmRfYGRiYVtmY2hmZGZhZl9fYmJhYWBfXlZVXVpbXFtZXFlZXVtbW1hYWVtaWlpdX11UWV1VTlRaVlRcVVdXWVdWXGBhYmNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVV1bYGFcVVVZUFRWVFJVVVFUVVdbW1xfX1pfXFZfX1ldXlldVlJYV1pZXGJZXVVWWltaW1paWFpYWV9fYGBkY2RlZWNkWmJmY2dmZV5hYmBjXWJjaWVkZ2BoXmJiY2FhYF5fWVRbWlpbW1hcWFhcW1pbV1daWFhcW1xgXVZdXVNPVlpWVlpWWVZYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1hZWlxcXF9bWltiVlNXXl1hY1xTVllQVlVVVVVVU1VUWF1dX2BgXWFdV2FeW15cW15YVVhXW1pfX1teV1hcXFxdXVtaXFdaX2FeYGRkZWZmZ2NZY2ZlaGdkXmNgX2VjXWZpZGVpYGdeY2JjYWFgX19cWFlbWVpZWVpYV1tbWltXWFpUWl1cW2BcVV5iTVJXWldXWllbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYV9cXV1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBXVVdYV1ZWV1ZdXV5hYmFfYl5ZYV1dXlldXVlYVVZbW2BeXV9ZWV5dXl5gXFpaWVtfYl9jZmRmZ2ZoY1plZmdpZ2NfY15hZmVaaWljZmpkZl9iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVcXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcWFpiZWNhUlxZT1hWWVtZWVdZWmBeYWJjYGFjX1xiXV9dW15dWVlUWF1cX19eX1taXl5gYmJbW1dbXWBiYmRmZGdmZmhlXWVnaGlmY2FiW2NnYFxpaWNoamdlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXVlhQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYmBjYmJdXVtaV1hqcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeXl5aWFVbXlxcYWFfXVtgYWJmYl5bU1xfYGNkZGZlZ2ZmZ2ZfZmdoaGdkZGBbZWdeYWhoY2hpZ2RgYmBjYl9fX11dW1pbWVhYWFZaVlxbWlZWVUxYWFxnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIeJh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl6e3t6ent6enp6enp6enp7e3t7enp7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXp6ent7enp6enp6enp6e3t6e3p6enp7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODg4KCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09PPxMXFxcXFx9LU1NTT09PEvr6+vr7CooqMjIyMjYl+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk5eDU1NTU1NTW4+Xl5eXk5dLLzM3MzdCqjZCQkJCSi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5enp5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4ODg4KCg4ODgoOEhISEhIODgoKDg4OCg4B8fH19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV4dnZ2ent4e3h3dnh8enl5en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl6e3t7e3x8e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2en15e3t5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fnp5e3h7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3h5fHp8d3x5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eHp6en18enx4fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBgICAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3l5enl5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eXl5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veHl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKCgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qKi4eHh4SDgoGBgYGBgYGCgYKCgYGBgIGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhIWCgYGBgYGBgYKBgoKBgYGAgYKBgYGCgoKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYGCgoGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoKBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIODgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4SCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGAgYKBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCg4KCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKjIiGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgYGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fX18fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19f4CBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioaGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgYGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjIiGh4mMi4uKhoWDgoKCgYGBgoKDgoKCgYCBgYKCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioeIio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/f39/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDhIOCgoeSk5CLioqLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgYGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoGCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKBgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISEhIWFg4OCgYKDgYCCg4GDhYWFhYaGh4aGhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SFhYSFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKCg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjpCOkJGPi4mHgoKCgoKCgYGBgYKCgoKBgYGBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgoOEhYSEhYWEg4KEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiIiHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgoKBgIGDgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoKBgYGBgYGBgYCAgIGBgIKEg4OCg4KCgoGCg4OIh4eHh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmJh4WEg4GChISDgYGBgoKDgoKDhIKDhIWFhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkZGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDhISEg4KBg4KDhYWDg4OEg4SDg4WEhYSEhIGBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWGhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYKCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYGAgYGAgIKBgoKCgYGCgoGAgYKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGBgoODg4OEhYSFhYSDhIWFhoWFhYSEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgoKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeHhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhIWFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOBgYKCg4ODhIKDg4OCgICAgoKCg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhYWCgYKDgoKEgoGChoWEhIODhISEhoWEhIWCf319fX6ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIWFhYWEhYaFhoWFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMi4iFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgIGAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIOEg4ODhIWDgoOEhYWGhYaGhYaHh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYWFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eFhYeFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoeHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4OEhISFhIOCgoODhIODgoSFhIWHh4WEgoB/f39/f4B/f3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHiIaHhYSDhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OChISEhIWEgYCBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qJiIiHiIiIh4eIh4eIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4ODg4SJioeHhISFhIODhIOFhIODgoGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KFiIiIh4eFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoODhYmKiYeFh4WEhYWEg4WEg4KCgoKCg4F+fX5+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiEg4SDhYSEhYWGiIeGhYOCgoSFh4aHhoaDgoKDhIKDhISCgYGBgYGDg4SDhJGSkY6PjYuHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/gICAf4WGhoWGhoaHh4iHhoGChISDg4WGiIuKhoWGhIKGhoKAg4ODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhYSFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAhISFhIWFhYeHh4eGgIGBhYODhYWEh4iFg4GAgIF/fn2Cg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIGDgoCAgICBgYGBgoGBgoSDg4WEgoKEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4N/fn5/fnx8f4ODgoOCg4F+fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f4CAfn2Af3+AgIF/gICBgH9/gYF/fX1/gIF/f35/gIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCBf3x9fX59fX6AgH59fn18fX6Cg4OCgoGBf319fn6AgIB/fn19fXx7e3t6enl6gIB/fn9+fn58fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36AfX1/gYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f39+f39/fn1+f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39/f36AgH9+gH9/fn5+f39+fn99fHx9hZKSjYyLioiJiISFhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgIB/f36AgYSDgoGBg4SEg4SAgYGAgYCBgIGCgoOBgIF/gIKDg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+BgH+Bf4CAgIGBgoKAfoB+f35+fn6BgYKBf39/f4CAf3+Af4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qIh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDgoOCgoKBgoF/fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKDhYOAgYOBgIKAgYGBg4KCg4GBgn+BgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICBgYGBgH9/f3+AgICAf4CBgX9+fX5+f39/foOGh4eIgoaEhYSEhYSFhoWGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyDg4SFgoGEg4KCg4WGgoOEg4GCgoODgYOCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoCBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf39/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCCg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeIh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgYB/f359f35/gX+AgoGFhYWGhoeHhoeHiIaHh4eGhoiHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgYKBhYWLg4GChYWGhoSDhYWDhISDg4SDhISEiJKOi4mIiIqHiIeFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICBgICAf39/f3+AgICAgICBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fHx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiomKh4WGhYODgoGCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoOEg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gHp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjYuMjI6KiYmGhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDhIWFhYWDg4OEgoGDg4KDgoKBgICAf4F+f35+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fIB/goCBgH59e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42OjIiHiIWFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICBgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3t6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX19fXx8fYB/gIB+gH5+gpORi4yMjY+KhYaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgICAgH9/f317enyAgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4d/fXx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2LjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYCAgYGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36MhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKMjIuOjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAe359fH5+gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8e3x6fX5/gIODgn9+f3x9fH18fYGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yKioyLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH9+f399fn9/f36Af39/f39/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBf4CAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4aChJCOjIqJioaHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIKCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn59f358fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJiomLiYWIkI2LiIiGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4OAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH18fX19fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iLi4uKiYyQjYyJh4aFhIOCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5/f4B/gICAf35/foCBf3+AgICBgIKEg4GAgIGBgIF/gIGBgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIiJioiJjY+MioeIhYSEg4GCgoKCg4KBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXl8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX19fn1+f319fXt8fX58fHt8fXp6eXl6eXt7fn6BgYOHhIiNjIqJhYWEhIOCgoKCgoKCgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH6CgIGCgoCAgYCBgYCAgYKCgoKGhYSBgYGBgYOBf4CChIF/foGAfX6Bfn1/f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIN/iIyJioeFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGEgX5+gIB9foB+fX5+gIB/gX5/gH9/f4B/fX5/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyIiYeHhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHV3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gYF/fH5+fX19e3x+fH18fHx7fHt8fYiGhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX1+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99gH99fX59fn59fnx7fHp8e3qAhYKDhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgoGCgYGDgH+AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIOBf3+AfoCBfoCBgIB/fn5+fn59f35+hYWAgYB/gIOBf36BgH9+gH6Af359e3p7enx7eoKDf4KCgoKDgoOCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7cnl7fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX+Af3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOBf3+Af4F/gH98e3t6fHt8gYB/gX9/gYGBgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fn2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5+fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn1+eX5/f3x8fH59foGAgYGBgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYSDgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn59fX2Af4CBgYF/fnx+gH5/f4GCf4GBgoOHhYGAf35+gH+AgYCAgICBgoGAgH6Agn9/gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN3dnN0hoSEhYOCg4SEg4OCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398fn9/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/foCBfn+AgoKAgYSChIWGg4B+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4KDgoGCg4KBg4J/gYB/f35/gH19fXx/gICAf39/f3yAf3+BgIGAgH99gH9+fn5/f31+foGCgoJ+f359fn5+fn9/gH99gIGAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36GfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZxeHlyeIWFhYWDhISCgoOCgYGCgYCDgYCAf35+fn6Afn1+fH+AgIB/gIF/e4B+gIB/gYCAf32Af35+f399fX1+gIGCgX5/fn5+fX19f35/fnx+gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKAgICAfX5+f4B9fH59f4CBgH9/gYB8gH+Afn+BgH9/fYB/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYOCgoSFhYKCfn19e3t8fHp3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzcHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgH1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39/fn18fn9/f399fX9/fX5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WHhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gH+Af4CCgICAfn1+fH9/gYGAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2EfXR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goJ/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f3+Af39/f4B/gICAgIB/gIGBgYGBgoGAgH9/f359f356gZKLenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2Fh4ODgoOCgIGAgoKBgIGBgYGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIJ/gICAgH9/gIB/f31+gH59gIB/f39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhoh8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fH19fH18fn5+f39+fHp8fXt9fXt5ent6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX+Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBgICAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXx8fHd4dXh4eXt8fH17fHx8fH1+f39/f359fX6Af4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYGDg4B/goGFg4OEgYGDgYKCgYGAgICCg4KAgoKFg3+AgH6Cg4GAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKCgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl5fH18fHx7fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDg4OBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgoGCgYCBgICAgYKBhIB+gYOCf36Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIODhISDg4SDg4KBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGDhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3x6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKChYSEg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GCgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foB/f4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnR9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4KDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9f31/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn91dn+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KDgX6AgIKCg4KDg4OEgoGCgoODgoOBgoGBg4F/gYSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhISDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx8gYGCgoODhoOEg4aEgYKIh4WEg4OEhIWChIWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4KDgX+Bg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEhISEhYWEhISFhYWFhIODg399gYR/fX18fHx8f4F+fX5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WBgYOEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYqJhISDhIWFg4eGhoSEhISFhIWEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeoN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgISDgX9+fX59fYKDgX17f31+gH59e3x8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIaEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2ChHVzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgoN/g4N9gX19fn1+goOBfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ6eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9+fX6BgIF9gH59gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgX+Afn5/gYB/f4KDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhYaGi4qFhIaHh4WEhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foN0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSBgYCBgYB9f3+BfoB+fX6BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYSGhYeGhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dHBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFhoaGhYSFhYWFhYaJiYeFhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDhoaFhYOEhoaFhoSGhIOEhIaEhIGEg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWFhIV9d4WEhISDgoF9f357fHt+e3x8fX9+fXx+foCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4eFhYWFhoaHiIaEhoWGhoWFg4WFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGh4iGhYiHiIWHhoaIhYWGh4WGhoWEg4WFhoWFg4SEhISFhIWFhIWFhIaHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn58fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYSIhYaHh4eGiIaHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaEhoaFhoWEhoaFhIOFhYKFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGg4WEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFh4eGh4aHhoeFiIiHh4WGhoeFh4eFgYSEhYaFhYSEhIOEhYWGhoaFhoSHhoaHhYWGhoWEg4SDgoSHg4SBgoSEg4GAgIB7e35+fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoWHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYWEg4SEhYaGhoaGhoeGhoiFhoWGhYSCg4KDg4eBg4CCg4OCgoJ/gHt9fn57fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWHh4eHiIaGhIaFg4OCgoKDhoGDfoKCg4CDg39/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhYSFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYOFhYaGhoaHhYeGh4eHh4WEhYWDgYKBgIOFgoN+gYGBf4OBfn9+f35/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYWFhISDhIKAg4GFgoGCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHhIeFh4aIhoWHhIaHiYaGiIiHh4aHiIaEhoaGh4aFh4OEhYSGhoaHhYWEg4WFh4WHhoeFhoaHhoaGhIOEhYGAgYGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaFhYWFhYWDg4GDgYCBgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWGhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaFhYaDg4OEgH+BgICEgIOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH5+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGh4WFhoKCg4N/foCAgIF/g4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx9f358e4iFhYaGhoaEhYSFg4WCgYCAgIGAfoCCgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISFhoeIh4WFiIaJh4WDhISChYOEhoKDhYWFhoSHhoWFhYaDhIWEhYaFhoSDhYWGg4WFgYGDg39+f4B/fn+Df3uAfX1/gn2AgX5+gX59fX19f3t/fHt6eXp6eXp6fHl6enp7e3x6e3t7fH1+fX2BfX18fH2Af318hoOGhoaGhYOEg4WChYGBgH9/gIB+f4CBfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIWHhYeFhYKDgoGDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCf319f35+gIR+e398fICBfYGAfX2DfH5+fX1+e357e3p5enp5enp7eXp6ent7fHp7fHt7fX59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4F8fX9/fn5+gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhoSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx/g318fnx8gYB+gn99f4J8f359fHx8fHt7enp6enl7enp6enp6ent8eXt9fHx+f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIaEg4OFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhIWFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfn2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc6PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ5Ozw4Ojw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODk6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk3Ojk7Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dTV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2tra2dnZ2dnZ2dra2tra2dna29vb29vb29rb3Nvc29nX19fX19fX19bW1tbW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqJkpmYmJiYmJiYmJiYmJiXjIuKioqKioqKioqKioigv7y9vb29vb29vb29vrSKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTUWJsa2tra2tra2tra2traVVTU1NTU1NTU1NTU1NOeq+qqqqqqqqqqqqqqqybU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3PT87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1ZlcG9vb29vb29vb29vb21ZV1dXV1dXV1dXV1dXU36wrKurq6urq6urq6uunVhXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJhb3h3d3d3d3d3d3d3d3d1Y2JiYmJiYmJiYmJiYl6Fsq+vr6+vr6+vr6+vsaFiYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs7Ozs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy83Ozs7Ozs7Ozs7Ozs7OzczMzMzMzMzMzMzLy8vLz9PT0tLS0tLS0tLS09PRzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7O0dTU087Q1NLPztDU0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tfX19fX19bX19fX19bX19fX19fX19bW1tbW1tXV1tXW1tbW1tbW1tfW1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7O0bCDhJPPyZSo0tDGk6vSzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8mburidrJ6rm7DQma2Zs9LOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9HDoo9/isKUh5yexZOGnZ3Oz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv56KqNDUu8iYmca9yZaZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P0bqlrZye0tGUlp/O0ZGYoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz9HAoJ+Tpbyzn8Kb2q2jv53V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0qavrpun0IuTnsfLiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHJ18SYodDapZmz0NuimbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXFjZ6gnqCSp5mgrZComJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HJwaGtoaOlpqSooK+noqmc0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09WrjY+q1pyRjrrVmpGOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MG+1dPTucfW09O4yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQD43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHU1dLS0tXU09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk4NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg3NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODc4NDs/PD89OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTs8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6uri4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODg5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTc4Nzk3Ozo6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlqKmmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTo+NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFCPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDo7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNAREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9CQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6Ozs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ozk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD4/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5AQD1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo8PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8Ojc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTo7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ubm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVj4uUk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODUzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFS09JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEFCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhICCf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo8Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTEhRSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxkY1tcWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGdiYVpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJgaF9jU1FYVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbX15aXFZcaGRvY21paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYlpycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWttYV9kYFBPQUA8Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3ODo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV1ZU2FoYGZzb3NpdGNpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0NERDo6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqTkZmXnqGVmJqSl5SUkZSamJOPk52WkouRfnp8f3RrbG5jb2xocXdueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQysbGwMXHy8jUy8rIxr+7u77EvsXIxsbDxMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4uLu2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmbmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3hlZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw6PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQi4uMjZKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsnBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvbi+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWlnXWlvbXh3YmJgYF1YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYGd1Z2lpdG14bF1kW1VfWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw/PT9CP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLysjGzMnNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZHRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8i8u8jHyc3Iw8jJycXFw8LBwsfHyMrHzMjHyM3GzM/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjQwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZiWllZXFhRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7q9v7m9urq0v7i1t7Ovu7y3wLe+wr/Bu7/AvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVVVU1lPU0tFOD82Ozs3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz05NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wMC3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0pSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+3vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3trq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8u7q0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYmxfW1RIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9vrvEt7a4trfAv8S8wsXFx8fKycbPwsG4r7W1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrq/wb+9tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2dhW2JQS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC4r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxbW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmFhTUhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+ts720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcvGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+QkVJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PUA+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6tbnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdWl5cWVFFRENNSUFEPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBw8O7ubO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bHV6cG1oXF9fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6cnZ2d21wYF5lXVtUSjw+P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3srKytLK3vrqztbK8ury2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXN3dHZxbF5iYFtdTkhBPz1IQ0ZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWTmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq2tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xci6vb62saeknqGpsa61uLaysKu0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/dm97b3VybWJcZlhcXVJOTUE+SkJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKx77AuLm2srS2s7SvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLGusqmmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLavqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXF2c210aWtdW2pUXFxPTUhERkxBRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDs8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u7+/ubO0s7GxrrC5uba8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIP0hRQ01DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6efqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28t8DBvry8vLmura+ysrq6t7e1tby0r7Srtrq4wMTBu7W8vbiyrbOwr6yut7aytLSvqqSem5ycnqion6CoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWim6OclJCMjo+Qk5CWlZaYn56empiml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh5g3x2f3lidmxuXFBoVFBOR09MTENPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpKaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLm1p6Wsqqi1srGwrq+yp6avo6+utcG6tbeyt7aytKuytK6qq6+wsrSupZ6SmJSPmaCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsKOlp56gnJWTj4+RkJiQlpWYl5+Ym5mbo5mXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fYB1dX1ta3tkaFVRY01JSEdOUk1KTUc7REA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaOkrqWsrLS8t6yysa+xrbWvr7O1qqetrKOcmZSOkZaXmZmdoKOim52lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrGqpaqqoJqYmJiVk5aak5WVmZWal5eYoJ6cnJeboZqemqKnpZ+hoqKjnJuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOT5BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6jqK6trKurr6qvqZ+XnqWenqWmpKCin6agoq6rrK21sramr7Srqaq0sbCwuK2noZyempSYmpqRjpKWkYyPjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruqimq6erq6msrKegoKOxrbKwtKmxr6KZnJ2eoZibm5qYmZuUlZqWmJykoaCao6CanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1pZTVFKTk9UTFJMQTc+QjY4PDc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlJmSkpyYoZ2qoqagnqehpJ+ckpyim5+ho56doJ+joKKvrqyvsay2p62xraamsK6trLCnn5+joJeRlJyhnJqYkpOfnaGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwp6uosrW3s7essbSjoJ2ln6uhoaKgn5qYlZWfm5uYpKGgnaOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTUc9Skg4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pzc1OD0+P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjpOemaidrp6nnpuhnZ6ampKYnpyioqCgnaKfn56fqaunrKmqtKurraulpaqoq6yqpaCfmpKSlJiZlpaWjIiLj5WdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe8srK0oauiqaixqaqop6eamJ2Zqaagmaegn56np6Wknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84Njc8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKagnp2dl5mWmZ6bnKSfn52knZqdnKSipKOiqq+sp6mjoKGsr66qq6egn5+io56fnpudm5SUlZWenpiUhp2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK6nsa2xwra4wsbAyMrAyr+wubm9ucK9uLO7xcO8wrq2s6myraqytK+zrqmuo52rprWxrKKvpaCir7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppmboqSen5ubm5yHhYF7dHJra3VycGhXW1FFVEhESVBIPkVBNEVIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56goZyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpJ2Vm5uemp6cn6Wmp52goKyxr6ekpKOhn6asp5+XnJWSmp2ZlYyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczLy9LGvr/Awr3HxsK3w8nIwsDFvbmzubq0u7ewtbKqurGuura+urqqt6yqqri6tLuurbijpqKep6Wio6mmmZufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR9enJrZGlveGplWltGSkxERFNMREJENzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlZqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkp+fkJafmZKalp2bmaOhr7OpoZudnZ+fmpeYmJONj5aXlI+NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3MyMnRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXR08zTz9LTzMrCxcbGysfOv8jQy8bExsTAu8LAvr6+tb2zrb6/wsLGxMbDrb64sbi8w8HBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURCQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE8Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6yen66mpbGqxcbMzs2/sMKppaitraqhnaOfnJ2aqZOZoZCOoJONlJKXmaSxsaukoJ2gnJmXlZOUl5KQj4yHhISJh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys7K09fR19LU1dPTyMzGzM3J0szN083ExsnJwMXLx8jIxb7Cs7PHxMvKys7Fyb+9vrzBx8TMzMjJwMO/ra+yqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/e3J1dmdiaHdpZFZXUURNRkBJUUI9Qjw6MjNAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOzk+OTo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmflKOYlp+enaSvm6Cwq6isscnN1NfPxrvHrK20uKyuo5+ko56gpKyblqmWjZeNjI2XprCupZ2enaGlop6blpWWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTSz9HD0NPW19XW0svJztDLxs3RydHV1tnV19LW2M7Syc7RzM7Qy9LPvsbGycLLy8vOz8XGxra/yb7SzMvPxcnHvsLCx87Mz9DOzMrHzbi3u6ifpqunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU6NzY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopuppqKmrJqksLGpqLXQ1Nfa0sfGy7S2wsaytqmipaahoqu1p5qxoZaVjJCmrauclZihnZuhop+dnpuWinhpZGFfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTPz9XU1NHRzNHO09fW09XQz9LT0cnT0MfQ2NfY0NfS19nV1czOz8nM0cvOz7/FwcbFzszQ0NHIy8u/ycvF083LzsfDycbGyMvK1NPQ1M/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NDQ6PTUyNzU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7Oj03NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr66rqqudpq64qKu32NTV2dnRztDAvMzJt8Cvp6upo6SxtrOjtqqfnaGqqaGYlpiam52hnpmdnpR+cmZjY19fYWBfYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvTzdXU0crPzNPW0tHWzdDV1dHF0dTK0NTV1c3R0NjX19fLyM7DyM7Mycy/yL7HyM3Nz8rQzc7Lzs7Hys/Pys7KwcjGyczJy9HSzNPR0c/Pyr3HubCtu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bva2JlbnBhV1xaSUZGRExXRTtAPDMzPD04Njg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw9PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snnri2tbWtpa2uvrWxwNnS19rc1s/Ny8PT0MLCsqutrqyms7G4q7O3qaOfnJaUl5uen5+elZaYlYpsX19eYWRiYGBgYWBgYV5fX15dYm1yb29zdHV2eaS+y9XR1tTT2NbOztPLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHTysvQ0dPJzdHV0tXVysDJwcXMwsfJwszCxcfKys7KzMzPzdPLxcfPzMfHysTGwMXJy8zP0MbPzs3NzM/Fx8C3ub3Cw73DubKzvrC7w8S2qpiloZmWkZWVkouUjZqRlJSPj5SCiYV4cHJrbWhgYHFoWFhoVk1HTElQUEI7RD47Njc6ODk6NTc9PUA7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ojs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfCucvV1tna29jMzc/J1tbFxLiytqqjrq24ubGywKGXjo2YlpCUkpGWl5aRjH1mYmNiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycTJycbGv8PFzs7HxcfNytHIy87NxtHSz87M1MrHys3Ox8bP0svQz8W6xL7GybzCxsjOxMLHwMbNx8PLycrPx8PDz8jGwcbHw7/AxsvLy87CysvIx8zQxMXHusfDyMjCz8C9vL+wwcrHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd250ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU8PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJuls7Gsyc3KyMS+vbrNzcbQ1dXZ2tvY0MrQ0NLUysW6vr6wqLeqvrm5s6WSjo6WkIaDhISCfoWFgHRgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6v8O7u7q5vsjGwsPAw8fKycjKx8HFy8bIy83JxMHJycHBy9DEy8i/ucG6xce9v8XOysK/w7rJx8i6x8XEyr+9wcvGxcO+xby8v8LEy8TEu7/JwsXH0sXByL7KycbHxtDDw8bDr8TLx8PKt7+8urSprKWlmJ+YrKOgpZqjoJuUe3ZydGZpWmFubVpbWFFETEZCR0RMQ0ZSPzU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvQ0szHwsPHzc/OzdXQ1tnY2dDM1M7P0MvEuMbBtrW8scC2uqyRjJOXh3uAhYaAdnh1c3FfWltdYGFiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbBsLa6srK0srHBvLu7ubjAwcHFvr25vb+5xMrFxcK9xsC3u8TJv8LJu7e6usXDvrzBzcLGvr21wL3DurzGusK5s7vFw8LCtr+2tb6/usvCvLW6yLq/vcvDwcXCxcjFyMXQxsLMx7LGycPOzcDFwr+9srews6eoqLmxpa2wq62slHl2d2plaGBob2NWXllKRUpGSEtBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc3P0snRxtbV1tjPzNDIzcjKxb3KwbK1ure6tq+RjYqMhXmAhoaAfoR8dHVkXFxdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rAuK2wsKeqraynuLS2tLOys7q1vbG3sLSusrvCu8HEvL+6tbK6vsC4x7izu7XAwry3vcbAw7u0r7K2ur6zxLa6tay4vL3AvbC5tq62urLFvLauu7+0trTFvL7Cxb/DxMXHy8XAxsa7x8vAz8nHw8bBw7fDvr62ub7Gv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkNBREU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6ars7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDNzsnLycvKy8bRz9PRz8fKxsrFxMC8z72zub25uLebjoeJint5foaGd3iBfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7m4tbCrrKeeoqqnnquss62pq6mzrbawsqiup6yyu7q2wrm6ubCrtbm7tMK5r7+wvby7tbvHucK2raqosLHAtbi8r7CnsbO0u7yrrbWlrrauurGwqrmvrbutu7i7v7+9ucK/xsLFwLzGwcfLuMXHxb/Hw8O6xMbCu8XJzMuzucK8urKIcnZ2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOzk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs/SzMTGwsXQyM/DxMfBxsbFxczDyszDxMHHwLq7u8q3tLu9tbWrkYmQkHx5foqFenuEgXhuXl1dXV1fYF9fZGNiY2NiYF9eW1taWl1aWlpaXWRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauto6eiq6msqrCjpp+qrbS2sb25r7evqK64tLS7t7O8rre5tLG7wbHBrqSooquxsrOnvKqrqKusrbSzpaitoKSvqbKlp6iupae2rLCyt7m6u7G8vb6+xL+1wcDHyLe/wMS3xMLAu7/Ew77EyMzKv77DwMCphnJzcmppXWFvZFdWWFBIWlJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8bR0M3EyLu7zMPMwL3KucDFwLzMusPGxbq8xL25trzFuLa4u66xlYOJjYF7foB/eHR/fHN3Zl9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSeo5uXkaGjqqOin6Skp6Ssn52bpKWrsq+2t6ewrKeqtKu0ubC2tKy2uLGvurmwt6Sfo5+msaerp7mqpKanqKeyraCnpp6apKasnp+npJ+gsKysrLGzsrOwtby2u8HBsrq+w8GxubnCs8C9v7W4u72+vMLGxMLDvr/DoIN3cGxhZV9rb2BVWV9ITmhPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbu+taCelJ2hprq2q7Ozu7PF0MnMw8e5uMnCzsG6y7m9yLu2x7u3w8azvsW7tq+4v7uws7avooSHh4J9eXZ0cG1rampxaV9gXVxcXV9gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXV5kY2JlZ2dnam1viJ2poJeVmqGWm6KYlY2eoaKmm56fo6Wgp56aopufqrCssbWiqaqpq6yktbittq+ssrSusrWusKqfnZ6jorKkpam4raGmpp+orKuZn5+dmZ2fpZqZo5ybna+oq6eqq6ytsLK4rri5urC2u7u6q7OyubK9tLaxsbW0v7W9v73Cwbq6vZeDenJrX2VeZGRYVFheSVddS1BHSUpGQTw/P0A7PzwwNDUzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xtDJycHHvLzFxdDBvMq7u8G7tcW4tcHBs8LDu6yptLm3p7GyqYuGiIB5c25wbmtjXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWltZWFhXV1dYWFhbXmJkZGVmZmhpa3KNqJ2UlJSbl5uhlpaQnKGhqJ2bnKWloKSbn6CamK2tra+yoKWiraumobWwsbGsp66yp7mypragop6ao6GtoqGptaqio6adpaajlpidl5ibnZ+Zl52cnJusoaumoqOlrauys6q0sLKqsrizrqmvsrKyt7OtqayusbewurW5vb62s7GUhHl1ZV5lXltZVlNaVUxcUUxKRUhLSUI9P0FBQEA6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vb+znaWjmKWxwrW2va21uMPNycjBxrjCwcjQusPGwLa8vbbDura/wbW7v7qqprC6saexr5p9hYWAeXBxdHFoZWRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hYVldhZGVjZGVkZGhqdqKclJSPlZeXn5eZlJifnaGblqChqKOfnaicm5qqpq6wq5ujo7apoJ+uqLWppqassKO2r6O2oKKbmJirpqGbrLivoqGjnKGfoJOVoZSWlpuYl5aXnJWfqJ2po6Gco6qqsK2ns6uqpqyysKWqrrKxr7Cur6anp7KusbSvu7O5t62jlIF5dWReYVZZV1NSVEtNXkxQTEdITEtFPEA+PEI8Ozc1NTMzOTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy1ucKxvri8rp2np6Oqu8C9wLmutLjCzcjHxMW+x7rKzbXExcSxv7+5wMG6v7+5uby3p6awu6aooaSJgX54cmpscnRwaWhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtcWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5KUk5uYnJaWm6Ccn5Wgn6Wko6WmnpyfpJ+qr6afoqS1p6ChoqezoaWnpK6ksKyrtJ6gnZSUqaGhlKyxsJ6io52emJuTi6GUkZOXmJKXl5iWnaabpqGimaSkpKukpLCmpaKqq6ylqK6urquoqamzpaarrrOxrru1sK+un5J5dnJlYVxaXVhOTFFHUmFNVlBPSk1PRUJEPzk9Njk6NzU0NTk5Ozk4ODc8ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuyt6yepKatt7u8wcW6sbm2xcrLwcTHx8m4yMa1xcLIrrq8wrzCwMG9vLe6tqWnsbWdooqYiIB3b2RiZ2loZmhqZ2ptYF1cW1paWVpcXVxbXF5fXFpZW1lZWVtXVVhXVFRXVVNUU1VgYF9gYV9gYWNkaYGUk4mRjpOSk5yUlZakmaCWnJ+koaylo6Oio6GbqqqlmZ6lsKmfn5ykqp2noZ2rq6mora2ioaGUl6KanI+qqLCbn6KfnpeYk4qeko2SkpWPmJiTm6CinKSgoZWgoaOkm6KqpKKkqqKrraWtsammpaamtaaqqK2ztbS5uq+prJ6LcnBvYFtXVlVSRlFPSFpcT1JKVEtTTEVHSUM4Ozs9PDg2NjY6OTs6Ojc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njo4NTk4OTg6OzlAOXu1tK20u7KwrLKtnaenr7m5s7/IurbAr8bJzrzCy83Jt8vAtMDHzLC1vMe7wcfDvb62urWkqq+unZmHjoN8dWlqam1oamxua2ttZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5fX19fYmRtjo+EkYaPkY6Zk5SSnJqinJugp6iqp6qlqKSimKSupJSZpa+pn5uYmqCerpmbqbKfpKafo6OglJOblpWRqKmsmpygoaCalJCMmY6LkIySjJaUkJ2hoKKcm6KVm6CioJehqKKiqKugq6+krbeloqOirK2pqKuvs7iyvbWzq6+Yg3JyaFtYWVNVUkVZTFFcWU1UTlBMUVJJTklCPD8/QT89NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDAtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqKevrZupqKy3tqy7yru2v6zMx8a5ws/QybXGvrq+xsu0sL3EvMLEw7zAsrmvpaqvq56XhoF3eG9uaW5ubnFnaGlnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOT1FZWlpaXVxcXl9gZH6NgYt/i5CKko2XkZaZoqCbn6qqpq2qpq+ip5mfrKCUlaSop52Xj46Zna6Wl6apmJ6ck6WgnZGQkpKSlaeqpJmZmZ2dlo6Mi5OGiI2DkIqRlJCgnaCjl5WflZqgoZ2Sm6Wlp6iooLGwprG8pp+jrLWrraewtLC5tb+xrbGrkHxwcmJWVFVOUklHVlBTUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo6ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqWisKudqqepsrCktsa0ubqzy8a6vMPL0cy0ubq+wMTHtbS2vLK6u8O+wbCzrbCusKuboohraG1vcm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CJmImUk5iamJ2om5+qpKSrnKaYoKWbko+eopqXloSDkZqjj5OinJWVloehmpqTi46Kj5mjp5yVlZebkJKHlI6MgIuNgJCKkZKRoJmfoZWTmJiUoaSYjJmkpqemoJ+0sqeyt6Ccoresqq2ksrKmtby1q6uxo4h4cm1dTlBRTE9ETk5OUExGTk5LSk5OUUhNSkFHS0hIQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSopLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSno6mloKmlpLOqorLDtbWys8fHuLvEys3Hta+8v7i8xLOyrrairLXDurquqqu0r6+fl6d9XmBnc3F2cWpuaWZoaGpfWFlYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWWFhZWFtdYW9zdnCEiIKHgJGDjoqUkJOdoY6am6KgopeklqGblYyHmJqMc42CfYyWloWQmZCTjY56mY6bi4KJf4mYn6KekJOYloSOgZN+fnOJjnqQhpKQkJyamZmQlY+djaKijYmaoKGjo5uitK+sr6yfmKW4pqWwobGunLC7qqmvqpmBdnJiVkxRT1BNQ1NOTFFNQ1BQSElOU01ISkpESkxFSko8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ4ODk6OjY1Ojg3QTd3t6KjtKilpaijpqWmpaazp6W0wbiwtLDKxrm6ws/Hv7SvvcOvsceyraeslaOtv7ewr5+nrKyqlpSicldWYGhnaWhpbmNqaGdiXFhYWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJsf4V8dE5Yco+Cl4aNnJeKk5Cel5yVlJWTjpaIf5OJXztXb3uKk4l/i5GMj4WGcoqEloF4gnqFk52Ug5WOkY+ChnySeHFvhY1+iYCQjY+XmZiTio+InIeel4aHlp6aoKCXp6+oramonpattKKmrZmsq5ins6GpraOSfHFtX1pOU1FWTERUSlBNTUZPT0pFTFFNS09KSU1PRklIPTc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODQ0ODc5PDo3OTs4NkE5eLegoq2hpqapoKeop6KpsKintMK5sbWwycO5tL/PwLqxsbjEq67JrqeinYWaorqtpqeVpaSjoJaOlmlQTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STktIRkhOUVFNUFJUVlhaYG1vaXqCdFBCQH+VkZF9iZSMhIqNmoyWlYqSh4WVhXiIf2BKUW54ipGEfISMiYR+f25+f5N3dXZ4hI2ZcFGNiIqHe354lHZnd4WIfoqIlYqNkJGWi4OJh5SEmouBhJKblp6clKSjp6mlo56bsauhpKSRpqqWoamcoqaoh3NrZV1bSFFRU01JVU1TSUxMUElHRktOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj03Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXa2nKKmnZ+hrqGnqKWmp6+sqra8tri2s8K8t6i7ybm3qaq3uK22wKqim5KCj5mxn6GZjJ+WmJSRioxlTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+GgHuFjJKAkZmLj3uGj391f3hzbnVwdI2NgXl9iaqEeXpodnuOcHJteICKjJJ4eoB7gHZycZJ4Z3WEg4SEepWJiIqMioB/g4qMf5ODeoCPmJSblZGfnaien5+doKmln52Yjaikk6CflZ6epH9xZmBcXEpWT1FHS1hST0pNTVNKSkpNUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLi8yMDAvLSsoKCkuMTI2MjE5ODc5ODc3Njo8PDd2rpijoZicnrSpr6mlrKuwsaq9tLK8uLa7tbOguLuzq52fraustbOlnpaRmIaTpJacjIKWiI+JhoaDZkpJSklHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhZWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gHZ4f4mPfISYkoFyho97dnpva36tfHOQin97hpKAfX90ZnZ8hWxvZ3N8iYyHgGx5cX1wbXWPcmhxgH2OcEOKhIKDhH93d3qKhH2LenR+jpKPmIqSm5ujl5mdmp2eop2WjYulm4+dl46WmI51bWtlYVlXWFRRSlNWVE9QT1FXS05LT09KUU9JT09LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn56WoKawrK6rp6mwr7GsvLisu765tK6pm7GorZyQl56nrKekm52Th5Z9jpWRlIB7inqEgH5+gGVKR0hGQkBDRElMTE1RUlBRU1VUVFVWV1dXWFdZWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3dvfHmIj3l8i4VvbYyReHN4amp/gnKWkYuBfZZ/SZKYbmh3foJsaWNseYWQkoZrc2x8bnJ7hWltcH5zjIiDhXp9fnp2b3R0hYF5gXdwfI6MipODlpeYmpCTlpeZl56XjIOJn5KKko2GkJZ9bGhtbm1XVVdUUlFZT1NVVVRZVk1OSE5LTk5LQ0lOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6krbCiraqota+urLS/q7zCv6ajmpWlmJ+OhYyWoqSbm5SWj3aRfYSLkI98eH50fXd0d3xmT0VHREA8Pj5BRkdHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpyQZlvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5vbX96i4h1gYiGdGyZkXNzfGprnY5MeYSSiYSOZzF2hnNsfn2DdGZldH6EhIWAZmlsdWtwf3tncHB7bpKNjntzfX1xcG51bYJ+d3l0anmJgoiJg5aTkpCLjZGUlY+XjoB5iJeIhomGf5CHdWlpbmdjV1FZV1hZXE5QVldaWU9JSUVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKiwsKyspKCsnKSwsMjI2LSs1Nzc1NDc4aU84OzVukoiZkZqWpKiunrKeprquq7KwwrK7w8ebl4+UmYuOhnqFkZqWj5KOkopziYR3i4+Mf3Z3dXh2b3hzaVVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bHGDgYWBeYOGhnlxn5RzeIBzdZSHNXGdqJ2OoaGEooR2cIZ7hntzjK2NiIBoZmJpbXFtb4J1aW9YdW+NmpF2bH97fG1ybnB/enN1bWJ2hH+GgIaRkYqLipKLkYyLj4N2eYuPgH6DgH2OeHBubmpeWltdW1lYYWBTT1xbWVhMSEpGSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW0qK2wrsGzusHGl5CMlJCBiX1ugpGTioSLiZCId4SFbpeKjH95e3txe3R8a29eSlBHPkA3NDU4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8+koOprl9ITE1OUEw3Q01SU0RKhnaAfHx2fmx3h4d8fYWCf4x+daGZeX6GgISZhZucYYaqn52LgpCNenaIfomHjnOKl4+De1xkcXR6e3eKbWdpYXluhY+Cem6Bd3OEenFzeXdrbmldd4d9h3yIiI+Ai5OXg42GjYd9cYWAhHx1d3t8h3RtcXJkZV5aWl1TW2deWFFWWV1XR0tLRUxHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQxMDQ2NDY2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMd4l/lIyRnZ2fppGgqp+wqa/AsbvFupaPkZSIeoZ2a4CMkoN+i4WQjXmEgnSihY1/f4OAc4OBfWx5bFNYTEFFMzExMjY3Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxyfI+LenyIhn6Xh3ehmYiGj5KUpY2sqUiGra+vioCAk4qBi4GEkaiHgJiYipxzbHyBhod9jmhnZ3h+bYWGgYVxhIVHa4B4cXl2aG1rX3d9g4h/iIWMepWenIqLiZJ/e3WLdnx4bW93fn1xcXBqWlxbWmNjV2dmXVZQUVhaUURMTEdPSURGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFh5GPlpiSl6CdrKCnua+zvbSXjZKLmIt9dHF/ipN/fo2DlJV9h3+GpYeJgIOIhnmIioB1hXlfY1ZMQzYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2VcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiJCAmpaCoKCXlZuapa2Tmbuxp7vIw6eKjKGkjpOJgJB7coOen5GcfnaFhYuPh5BpaG+DgHSMhoSLcYeCdoeAe3aFfW52dWeBlI+GiYmIiYiiq6OWiY+YgHuCint6b2dreX53e3BpY1xZWVxpXWFnYFtQTU5ZU1JJUUtETkdDS0RCQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnZwZ3iDe4CMgIGRj4uamqScoaymq6+wl5KRhKGUhHh3gI2UfX+ShpOWf4uBkpuOhICCjIuCiY6FgIqAbXBqXkNBNC0tLy8vLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVFJSUtMS05WYGN/Z2dtdZ2bj5qTk4uOj5qIk4+di6ChkqOppKOsk6i2oqfBwq7Hr3i6lJp8jKGemYSShIKPoZ6TmZKEioWPmJCVbG91iYuBlYyNj3eQhHFshYGKl5KDhYhyiaGXh5OKj5CXpbapm42WooOHk4V+gGtqa31+fX9xX1tiXllmalxsbF9ZTEhQU1FOTk1HSVFERE5GQUNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuaFlwg3B1h3F2kYZ+l5aalJ+fm6egqpaTmJ5oZqSafoWUknqAkYmSkn2LhZmSkYOAgYuOiYaSiISJhXh4f2hOUj4vLy4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFRU1FOUElFRT47PDpDRj8+PDc1MjxAUjVISEhMTE1OUl5vinxzgX2gnZunpqKZoZeilZyfqJ6pq5+orKmqtZervqu2yMm3yNHPvpugcGmqqJ+Ek5GFnKCampmnkZGIlaGZmnd6fpSYkaGSl5eBlJ57dpWSq7OJjZegfZWenI6Tlpqko6e2sJ6RmqiIl5COgolsc3N8fHluZl5bX19hZ2NgZ2ddUkVLS1FPSkpNR0dNQ0hNRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTQ2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYzQUBpYl9QcXVgbn1hd459fJSOjoqfkpeelZyqmJ6qQkR9h4mImY55go2Ljo18ioaQkY+Cg4GJjIqFk4WChomBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSVFVTTlNMRUVAPD49RkhAQUA4NjYyPDk8RkhHSUpOT1FZbYaQd5WLo6eqtb24pa6srKiptKywt7Kyrbuxs76cs8Osu8nLuMO/t6WjsLKsrKqjipaYhaWmoKKYgqaZjaKqp6SHhZOjoKCqoaSpjpywi5Wkp7i7nKGjsJOjnaOekaSirLCts7WjlaariZqKk4uVent+g3tlXmZaY2BdYmNeZmdgW1BESkhUT0ZITEdLSEZHSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo1NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoKThYiCnIOSkYyS2sidlnNWl4iPiJyPfYaMj4uKe4mDh5GOg4WBjIaFiJKGgoSJhoeHh3FuYUBFNjQ8My8xMTAtLCstMS8tND9EQU5WUVJTVVVXVU1cUUdHRDw+PkZIQ0RAODs8NUM7PUZLSkdIUk9QV4GToISuo7OqssHHxKuzxbats8CzuL62v7XBtru7pLjGqbbJx7a+ubSoo7StsLCbmZKan4mnr6qklXefpJehq7GymJapraiutbuyuqyvtaKxrLK1vLi1rrWgp6ijqJupsK6zure5qJy4qo2lj5KUoIZ6gYByWF9iVWRgYGFfX2ZgXFVKREVMVlJJSktFS0hFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjU5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxcWlFjZFd6dXGBlH2EhpN2hn6AjXu/u6O8grSUk46bj4SIj5OKiXqHgYyTjYiFgo6AgYmPhn+GiIWKh5F6eW9dV0BFTjw2OjQ2QUI3NjQvLzdDSENRXE9RVVhVXFdPX1VJS0pBQD5HS0ZGRDs+QDdENz9CSktFRldUUF6PpK2ksrTDtrjBzMq3vMS9s7TCuLjCtb+wuHSxtKa6xaSwxrmxs7K0qKS2tqqwoKKWm6KSpbGtpa2sp6SYoKyzuaGosbm1u77Mv8XFvbyzwri6uL+4u7i6ra2xprGqrr6xvbzCwq2Zu6mVro+YmauJfoB5aFVhX1ZoY2llVltkWldVSkhHTVJIRElLQUlEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OjY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVZad2pwf4+EgY6Eb3tyeIhiuaGao4mVlJaTlJONj5eSh4d7h4GNlYqBhIGKenyLiIZ8ioKBi4SVfXh6dWZQXGRHRUw6UWRgW15TRj87SFBFW2NRUVlZWmdaU2BhTVNPRUE/SUpIRUZBQEM8RDZCP0hHSkxUWlRelK+4tbu5ycC7vcrNvL3BvLi2vLy3vrW6ssZgdbKlsZqeq76qpairqqSis7Wgq6eelZaemJ+upaenpZ6jlKKnsLOnsrK8tsG908nJ08bCxczCysPBvr6/vL24tbC5t7fDusa+xMmxnrqroqyPpqm3ioB8b1xeXlxVYF1oZlNZYldTV0pGRk5LQT5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUFBRUlFKQTkvLCwsKisoKCwtKy9QPiguNDiAfTwyS4hxOT5DS0VASk1QUkxRXWhtbHGQjYaQc2xycnOI1cC2mqCNlZmZkY+XkpaWjoaIfYeDjJaKf4KAgnl7i4SHe4t5gYqCl390fXpsZnB2WV1cUGVlYmBlZF1bWFhcTmRtVVJtbl9vX1hnZVVZVEpEQktLSEZISEhIQkk5REBIS1RUVl1aW5O5wLm+uMbBu7nKy7u3ura4ubS4tbWut7eZZHWpnq1wXqKtnZihopuknqullJ+fkJSOlpiYqJ6mn5+amYOjnaykqrCst7C8uNTQztbPycvRzM/OysfAwMLKvsG9wcHFxMbKwMnPtKS8sbWwnKy5vZp9d2lbXFlXW19YYWJRXGFUUkxEQkZIRjxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LiYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RHS09EUlxaaWBwl5ORlG5sb3R1h7OsoaGfi5mcmY2NlpGbkoWKin+JhoyQjIl8gYNze4qDhXuKdIGKh5V/dHt5bG11fGlzZWlsaGZqaWhgZmlpbVpudJetpL2Ih2dbb2hdWllUSEtPUEpLUExTUUhMQUpGS1BfX2JnamKYuMewurS7vraxxce2sLmxsbuts7KorLitjbaonpynmk6bno2PoJaRp5illYqTk4iRiZCRkp2boZiblZaHnpmmmqyvqK+ns7PU1NTW0cvP09TO08/MxcLK0L/KycvJ0sjNzsPQ0riwxL3Euqa3u8WifmxhWVpbVl5WWWRaUF1YT1JDQ0lGREo7QUQ+Qkg/QEI4O0Q+QEk9NTY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CRmYJocnB5eYOhqp6ml4ybm5iLjpWRmo59iYuGjoqKi5CIfIWCcH+HgoZ7h3KDkouPfnF5dWxxeH9ye254c2xpgHBtY2lucHlpeH1+y7/D36duY3huZFthYEtQUlVOWV5QXV1NUU5UUVVUXG5ud4Nyl664rLWosLarrb3Bsqu1pqW5p6yvoqy0pI+xrpuYmIyRlJKFj5uBjaeSnImDi4SKiYSLhJSVl5eUm5CcmJmZnp2rrKSnoqysztLV0c3L0tPT0NTRzsjD1NHIztLT09bN0tHF0tbGwc/IyMOpv7jQnHZrYlpfW1VeUVxaUFBVUU9JPkFHQkNGPUFCP0ZFPkA/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bHdwfX6AoJ6eoYyNmZOUi4yTj5aFeYWQkY+MioiRh3+De3J+gIKHeoV2hZORiYBvd3Nsc3x8d3xzgnhxa4Bycmlwcnp5cnu+y5t/jbKEdnKFd2lhaV1EWlpbV2ZkWGVrVFhdXWFjXmN4e3+MgpmqpKSioKGppqqyuqumtKOirqKkrqOnsqCJppuVk5GKko+JgpSJa5WjjZmEgYZ+kYODlJeti5WOlZqOhZKQnZenr6GgoKWkqMjNz8fCy9DT0dTSztPNxtbTzdTY1tbY1dfVytXazcrY1tHLrcTDzIdva19dXFZSV1JbUEpISkpLQDs6PEVDRT1DRD5IQz9DQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lxgHZ+aXN5coKKgJ2VnpSFi5aJj4qJjoiPgHiElJmLjYmIi4l/hHlze32Dh3eAe4eRl4GEb3hxbnWAdnh9dIZ8eWyHdnVufXaEdXl8nraNPEGLxqV+jX1qZVdJQ2VjZmNoamRveVtfZmhrbmlugYOJkoyen6CekZeZoKOkp7OlpLKgoqWfoqmio7Kch5+SkpORi4+Lh4SPhH6cnIyNgoSFepR/gqqWo4ySi5iTi32XipqRqrOYmpynnKa9w8W4tsXN0dDS0MvSy8nUztHV2tfX2NTZ2M3Y287J2trS1r/MzbR0c2phWVZQU1BYVUVHS0pGRj46NzpAQkM6R0VARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MiooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qj48OVFFQ0pUbG5vcGJxcXSGjX2XkZ6Lf4eSg4mGhYqCiH14hZeXiY+DiIaHe4V5cXt7hIV1eoWOjZ56jXB9cHB6gHJ7gXKEh4Bujnp1d319g3WAfYeJsHRZqsK3jZKBcG5jPV5ocnFxcG53d4JmaW9ydXlyeouHj5SSm5agloiMk5yfm5+roKGsnKKamqCmn6CsmoyajZGTjoV9iIiDhYuOoJmUiIOHfmyZeoSZh4iTjI6VjIZ7m4iTj66rk5WXnpimrrW8qK29xsvIycvLz8nD0srU19jX2NfU29fT2dvWz9va0tbJ1cySdHdlZFhXTlFSXEdDRklJP0I+PTg6PkA7Pkk9QEJBQkVBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2BWPiw1TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEE8OjlEPkNHUmtfbWRiZmx2gIhxkZCbgHmAjn6DgYKFf4R8fYSYjoeMf4aHgXeDeW97e4eCdHqSno6hdpB2g3R1gX50gIRvgZCCb5KFdX2ChXp3h3yJuMalw8q4gpacj3hwZk5lY4J6gneFoZGLeXl3e4SAfIR2bZSWlZaQmJGDiY+XmpeXpp2YoJefk5OYo56brJaRkIuOk4OMhYmJgoaQkZ6cmoiFjIGGmHuIiZ+Xj4mOi4uCfKCIkIq8oJiTl5mcqKalrZ6ntb+/v7jHyc3OxM3K0dXV1NnV19vU19na29fb2tnYztvGgnV1Y2VhXVJVVVRNS0RORDs9PTw5Ojw/OT5BNj4/QD0/Pj05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs5OzdJUFxaUlVYTDlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVxpdHp5bImNknd2eop8foB/gH6Ge36CkYqFhnqFiHx2fnVtfX2HfnR/kp6RoIOSfIZ+eI9+eYuKb4ObgXSZh36CioV8fpF7kKmPkMOgvY2cpJx+ioV9iXOMi4BzppqcmJSFe4+RiYRpR3ChpJ6MjJGShYiLkZOVj52bk5SRl42Mlp+dlKGVko6OkYx+kI+Oi4SJkpaZn5+IjJSRnZCDjH+mmYiFjoOGhICkhYqLt5edkZSVoaagnZ2do662ubSrwMbK0MfHzM/T0tLY0tXXwNfY2dvY2trZ2dfctnR0c2ZmYlRdWVJPTkhETEM+PT45OTs6Ojo8PTZBPj89PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw6RFdPPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlZYZm1tbWmBjopxc3iKe3uAfH98iHt9fIuHgn51g4Z6c3p0bYF+hX53hpuhm56Uk4CMiH+Yh4Cckm6IqYV7oYx9kY6DiYWdf5uRio2jop+RpK+gi5GLhYuBk4ZXcq2Ln6uckIOZnJCQjluCopGCjZ+TlYyHiIySkoyUlZWQjI+KiJacnY+Wl5KMk5SGgIyJko6Lip2XmKOjhpOdlaCKioiOnJCDiY+Ag4eFpISLkLKYnJKUl6GgnpmSm52nsrispb3Cx83Hxs/Lz8zO1tDR1K3W1dja2Nra19bZ2ZxreHBjY1lZVVFVV0NASUQ/Pz86NDg6Ozc6PDs0PDw/PT43Ozo6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs4ODs8QDtCUUtLU1lQVGNieW1ifpGDb254i3l6f3uBfYd8fHeGhYBzcIWCe3V3dnSEgoV9f5Kmop+mopeKnZCUl4uKqJdyirONhKiShJmUhZqNo5agmJOJm56ik6mwn5GVkY6OiJaMb423hJrEyLKdoqadnJiWkbKQZKTNx5WOhoeJkJKNjZOVioWKioaWmpyPkZWTh5WYhICQjJmJjpCrl5eko4iZnpWaiY+Hl5eKhY+NgX+Hj6SIjZOompeTlpihmJ6Zk5yborK0paO9wb7HxcXIyMnCytLNzdSo0tHW1tbY2tTT2s5/bnpkX1taW0xIVFpCQkhEO0I+ODM3PDw6OT42NDo6PDo3Mj86OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFNXU1JCY4JHdoGOfXxtfoh5e357goKDf3d3gIN8bW6Lf3t9eHh8hIeKfouis6ejqrOil6egpaSWla6ig5G4lZKzmo2ioYylnLCjpJ2ZkaeWqZqsr6SYlZaVkIuYmpehwI6jybirnKOmrpiSm52ynYWGqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIyUk4eUmIaEkpCcdZKZs5aXpaGHnJmSj4qRipebiYuXjoZ+jJieiZCQm5qak5iXn5OgnZSem6CxrqKkuL60xcfEvcPDwMbNysnSps7N1NLQ1tjT0Ni5bnVxWV1SXVVOR0lORUFDRTU+Ozc3Oj88PDc9NDM2Njk3NzQ+NTs1PEs8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg0Njc9OkpGREdOWlxZSmZgO0mEi3p6boWGen2EeIGGgX5weH1+fW9zjXp+gnx4houJhoSSprusqLG9r6Wts7OppKKwrIqatZ2juaaVraWWqq24p6SjoJqpmKqkrrCqmpmclJaRl6CYmru7rsqhare4q7CVmZ6jrJOXvqNeqrKDioqNlIeRfI6OfYOGjpCUlYiIk5aMkJWNi42XmZOdmbSXlaudipyUkY2QkoyZm4uTnpCLipafoYyUjZeZnZKbmJ6UoaCUnJ2lrqihpLS4rMLIxbW6vbzFx8jC0aDGys3NxdfW0cvUnmx2ZFlXUFtQTkVDPz1DQkI4QDg4NT9HPTw2PDM1MzQ1NDU0QjQ5OkJMOkI7QUhDOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRIYmBicElAi4p+gXOGh32CiHWDioJ/bn19fX9wd4d3joKHfI2PjIaMmarCwK+9xruztMC9ta2rs7aMqLKurb2rm7ulqK25uaunpqKipKOqr7Kxqp6cpJmbmJifo6alkqO6r6m/vK2usrmlpah+iIecrb2wg4yMi5CDjoORj3qBiJCNjpyIiI+XjYuVl5SRmpadqJqxmpGsnI6aj5KOlJCQlpePkqCSiZWbo6yUlo+UnJ2SoJ2bmJ+gk5qepqWkoqOwsqbBxsOwsLu3xcPDv82mx8THxL3W0c3FyoVvb15ZV1xZTEpCS0FGSD9BQEM7OjU+QT4+NTw3PTMzMzI0MUExN0BCTT5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OjVCPjc5VktEV09GOD00S0BDPjRFS0hOPkJBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVONzlHRD9DRlxlRmBpZ1pdXZOMjIl7h4yHg4x1h5GKgW9+e4J/cX6BepV6kpSUmJCTlqezxsm/wczCw7nHvbuvq7q7mLO3urLArqbApKuwu72qrqujo56nq661sKmboKqcoZyWn7C1p4yju7q2wbysqZ20paWplIWOqsTDpIKLj4eIhIaVlI16g42Rj5GhjIyUko6Jl5+Yk5mVl6agr5yMq5yNlo+RkZWVjpGVkpChlIeXn6GznpSZk5+gl6Semp+bn5SYnqWjpqakr62lwMTDrqi3tsnDvbbPssS/xLyz0crIwrRwdWlZVVlnUEtIQ01LTEpBQj5ERTw1QUU8OzM9OUIzMzIyNjNBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWk1lXGVUYmqZjZaKi4iTkIaJeYeUkIFygHuNf3iHgoKQeY2hlqiZmpm6vcfIycHSycrCzb3Cs628vqe6wL27xLeswamss7y/qrCqpKWkrK6zrba1oKCvn6WimaO0vamcqb3Co7a3r6yUsqysrZeHmqqmpZGCjJOlloqBdYqSeYWOkpCdn5OPlIuPjZSjmZeclJSjnqqekaWajI+Pj5WWiHyPlpOTo5uVoKKctaWQnpako6GlnZ2lmJ2Vl5uko6mnorKsqLvAxK+ls7fMv7mvxLO7vsK5rcLDwsCXaHVeVlRYWElKTElGRERJRENCREw6NERJOjs0PThFLjEyMjQyQjI2U0hPPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+aUhfWGFaY2NWno+djpeOnpKJin+KoJOEeIV/lX9/kIiKkYCWoZmtp6SYwr3Hw8fF087Ozcu8wriwury0vcu7w8K2tryts7+5va6vqKCpqLauramyt5qeraKnoZ6rt7iqpa+/xbG9urOoq7e0r6+XlqWsqKCRjpOyxaeWjnySlXyHkpmPqZiXk5OPkpWTpZ2TnZmToaOinJifmIuMj46diFqQl5eSl6SZZZiin7KllaGVqqupppqeppeYlpiUoKOopZ62q6m5u8O0pbS2y8C4qrarsru4rqi4ur23f2dqV1RSU01FSlJNSz9CSEVFSUhHOTZGTTs+Nz5BSi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M+NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs+QEJGQnBFaklSZWFMRqWUnJeil6mWjJGDiKaTiIKHgpyEg5WQkJSPmqKer76voca8xMTGxs7OztLKv7u2sru7u77PtcS+ubm3s7G1s7izq6ecq6y5qqinr6+YpK+kp6SltcCwrKy0v8O5wLq0qLq3ubSwlqWtr66ki5OVoY10wpp9l5qEjpeZjLCVmpqVkpKZmaWjlaCalpqpnZugoJmKjY+VnGBKlpyblZqlllSWr5+vnJ6jlK6tqqSZoKWTk5iYjZufp6KZtKiqs7u7u6uwssi/uKasq62ysqOhsrK0pG1qYllXTU9KRE9QUFI7SEtJSEpDRD46S1U/QTo9RU0wNzU0NDpCNDRNV087SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzVFQTpBPz5IQDUrQzUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4uolo6Ik4Wgh4Sdl4+doJujpLTJtanFucLEyMrJyMzNx7+7s665ucHBzLXIusK5tbqwr6+ztaajm6q0taqppq2smqWupaSorLq/qKy2t7/CwL65s7PFs7q+raSvtay5poibmKabdr+fhJmejpOamoyul6Gcm5eUmp+gqJ6on5maqpqhp56YkI2RnYNudpKimpWdop2RrrKjq5SnqZeqrKOinqSnkpGZnIeUnKKdlrGmqau5tr2ysq6+ubago6eopaacm62pqYtfYl5dT0pLRkdNSlZNPU5GT0tNQkREPFFWPUFBQkRPMTg9NzY/Qjc1VVhPP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH5lXkhFq5WboZ+7r5mUoIyTq5yRkpOJq42GoZ6Mo6yUo6S2xr60wLnCwsfJxcLNyMK+ubKvurXBwsm1xrLCvLW6qqitrbCio5iqtLumqaarqp2pr6ejqqu9u6isvbW4vse8t7a5wrO/wbWqtresvqWPo5iSoqC9n4maoZmXn56Pt5+pnKWim5yhmqiks6CbnaacqKqemJWQlJuLlomMpKGUnaKdoLSvpaWSr6qZqqmcnKKiqJCUlJ+Cj56em5WppKGhs7S6tK2otrKynp2jpZuXlJiqoZ51XFldXEhHRUZMUElORUdIQ1NMSkJFR0FXU0NIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlEQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8oOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5ZlxGQ0OdcGJHRaeXo5+ew62cl6WYmqqcl5uaj6qWlaemla2smaKrtsTDvL62wcLAx8O/zMW7vbmysLmzv8LHtb+wvLe5tqWkq6utoKGZqqrEoqSpq6WerK+roqmpvrenrb+yubfHtrW5ucCzwMO4trO0sL2jl6OXlJyUrp+QoqOlo6OgkL2lqZ2pq5ycoZulnr2imaOfoqmsoZ2Xjpaek56Hj4SNk5+koJ61rKaclbCmma6lnJmonJ+MmJSeg46gmZuSpaSamKuxtbGqpaqtrJyYoKCSjpCVqJ6UZV9XX1xNSEdJTkxIRkRJQj5RSUE8R0lJXFJPSz1JT1U1QkY5PkdHNUNhWktCTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTU/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW1RRjxLeGVhVkuimqOcnsWsoZ+sn56uoJOjn5aloKaprJi2saOqs7bFxL2/tcDCu8jBvsnHtri1tLGztLfBxba+sbi1uLSfpqyqrJ2enqWkwaWfqa2fpKqtr6KmqLy1prG9ube2xLK0uLvAtMXCubmvs7W1o52llZKUoa6fmaKeqaiso5rCrKmerK6bm56ZpaC9oZ2kmKurrKahmo2an5KeiY5Xf5afpaGguKqmk5i0op6wn52ZrZWdjpiTnIGOn5eVjaGjlpClrbGrqaGipaSVlZ2Yio6RkqSeiF5hWGJfS0hKSk5GRUFHSz8+S0I6OUpLTl1RUUk9TFdcOUZJPURNSDhIYltLQ0xQU1lZVldPWl5JQT1XUUpMP0g/NUhMWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNba1dxR0U2PXVlXEtNnp6hmZ/EqKahtKKds6iUq6WgpJ+tqaydu7CorLaxx8XBwrLDw73Gw7zEybyvsLatsLSvvsO0ubKwurSsmaixqaqanaWhp8Gtm6ywm6qjrrGppKi8tqe3u76wt8Sts7PDwLTItLy4rLS2raqippaVlaOsoZ+gm6ersK+vu7GmoKmompmYk6KjuKCho5KwsKylpp+Top6Vno+QjZWem6Kep7SnpoyXspuirZmcmquPnZKVkpl/kaCVjo2foJSLpauvpaahnKCdkZGak4WKkY2bnX5fZFlmZUlITElTQUNASUg7O0c/OTlPTlZeUlNKP1BeXT1IUEJMTEk5TmNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwyNS0vNEAxKyZWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF1lcEA4O0iWd2VBNJ6jn5ugw6mkqrOipLWqlrOtp6KksqyuqbuyrbG1tMbAxMK0wMS9ycS1v8fBtKu1qK+4rL/Ds7ivrba5pZiqsqurmJ+ml627tJuosJqtoK20sqerubKourS5s7nAqreyxL62x6jAr663tamnrKGYl5KmpaKimJmlr7iusrW2oJ+ppJqUlpSkoLeipaWWsLKyp6umop+ampuVl6ifoJihnq+yoqaNlq2YpKqWl5yij5qMkpaYhZWek4uQm52TiqioqqKmoJmdlYuOmY+BhZSIk553YWdbamlMT01OVD1DQU5DOzpJQDc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDEtLy48Ni0jQnFnc2syMy8xW2JaMjM4MDZwW2JIMDRJb2dVQ1dGjHlmQzujo52hpsCnqK+xoqq1q566saykq7S2sbC5t7C3uLjFvcPHvb3EwsW/uMDFwLmptqSsu63Awbe3qq2xuqGTrbGtspakp5GquaqfprGcq6CvtLOrqbW2rbyttLO5t6y4scO7wMCnxKuxt6+pq6unnpiZq6GioZGYobGvs6ywuZqbqZ+al5OYp6C2qaajorGxtKyzqK2gnKCgm56lnKKXnaOzr5ufkJOkmZ+nmZOhnZOXiJOWkpWWnJKIkJqYlI6oqKafopuYm5KFjZmKfYuVhI2ZaGZrYGxtV1BRW1VBQkVUQDw7SUE4OlhQZF5QV1dFWV9eTk1STl5LSj5ZY15PSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERUJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEtLS4sMT0qJys9XHA9PjEuMGRaYz8xNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M+p5+doqq9oqqwrKSyuaqmtrWsoa21va+zuLu7vre2wMK/ycS5xMO/v7fDvMC2rrWmq7exu72+tKmusbaelquup66XpqiOp7ufpKyznqyisbCzrKm1tLW9rrGytaywtLPBu8a3rL2wsbisraqjsqaepaqgpJeQmp+zqrOrq7Oanaecm5aOoaaktK6ooa2urrGotK2zqqScn6iknpWimZuotamXmZGRnZmdn52PqZyVl4SUloqdmJuTio2WlpqWpqWjoJyWlZaSf4+UhXqOkoKLlGRqcWZvcV5GWWdWRENNV0RbOUhDNj5dUWhcTlpdR1teXk9OUlhkSkpCXGJfUUxNT1hXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7R0RGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfXl9UMTUwPWBWXjgqQzNZVVxnSzaMemZMQKSaoaWtt6Ssqqavrreqr7a8qKext8a3sba9wcO1tbrEvszGucPAub65w7fAuLGzq6m6trq5vrSprbC1l5inrKmsm6urjqu+nautsaOroLGts66ttbK4uKqur7Gota+1u7zKs6q3trG0r66mobSgm6mtoKaWlpuasqOuoaavl6GkmpqTjqOmqLOqoqezrau2pa+ytq+jmZ2sp5qXn5uZq7eil5OQjpicoJeWkqmdmpJ/kZeMnJuYlpCKlJKemaShoqCYlpKSlXqLj4V6jIqCipFqbXdsdHthRmFrWUlHWlo9e0pGRDZBYlRpW01cYktcXVtSU1JiYExLRV9gX1FMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYoKDkuJDpLNS4iVV9UXy81KENfUVwuKkEvSkdQW0czY1lVS0SZl6GyqbKqraakr662qri2uqWstLfKu7S7ur+/tbO3w8DMyLzDvLa9v7+3vruwu62mubm2tcK2qq2wt5SWp66rqaOwqZSvuqSssbOnqKOytLGysLSxt7Opr6yyp7evt7TExreptressa2pp6O2oKCosqGllZyalbKeqJygqo6po56blpimpqW4qKOytayosqiusrarpJmgq6ibnJ6clKm4nJSOjoqXm6GXj5akn5uUgpCUj5yal5aViJaPl5qnnKSfkZeRkJV2g4+He4SBg4uKbG92dHt+XExmbVtLTmNcPmJ7R0k4R2dXZlxMXmNNWVlXVVhUaV1PT0hgXF5QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOR2UyNydHYkxWJSxBLj1FTFE8M3JrSUNDkZmlr6Wur6uopbGztKu4srihrLW5ybmuwbvDuLOxtcLCzsXAwb20vb++ur68ssOnqLiwtbW/vK6rsrGboKexraamr6WdsrWtqrGxrKmotbuttLK0rbOtqqyorKm4rbKwyMG5pbqxqa2tpaiusaalpK+kqZyenZuwmqOjo6ORrZ+koKCiq6anuqWstramq6yprbG2rqOeo6iqm6Cbm5Kjs5mPiY2GkKGflIyTm56RkYOMkpKcmZeVlIeXkpWZp5ugnoyTkY6Qd32NhXx7fIaIiHBycX18fFxTZG9dTlhlXEZElltHO05tWGJcTWBiTlZXVldUWGddUVJMY1laVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvKzEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISio6Rz4zQkhTLD6QaztHSI+cqqyjqrGkqaW0tbK1trKyoqyuvcy6rsC6x7G0rbTCw9HFxr7Asr7Awru+t7vEpqu2q7K2vMCvq7Gsn6OnramppbCjqrKqr6ywr7CurLS9p7awsqmyqaulpaOtuq2qssO6tq27qamorKmnsaWqpaOvqqiin5yjrZWlnpiemaydoqepoq2mpK6suLOyoqqjoKuvsayen6anqZmkmZmPn6aYh4SOiYudoI6Ki5SajY2EhY+UnpyUl5WGlpSTl6ScnZuLkpCOiX5+h4V8dn6Fg4RycXCHdGxfWmBtYVFycFxLPIV8Rj9YdFhhWk5kXE5WVlVXUVxhXlNPTmdYVlZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE7XEowLkpnRUY2O0IvNEVLWDJAlVk9TEWWmK2poquznKqqsbetubevrKarq73JvLC9tsKvsauzw8POz8O/v7TAwcO5v7PHw6qutq2yuL++saytq6SnqrCoqKmxpbSuqrGurrKxtK61vaS3s6ysrqiroKOesLerqq26t6W3tqSqp6yrqq2hqaensrKkp6ahoayXqqGVm6CmnqWiqqSto6CnsbiurqSmo5uqrK2qnaKko6SYoJuWj5eck4KDj4iFm6CLiY2Kl42OiYKLl6KakJCbjJOSkZOjmpuaiY+Li3yGgIGDenN/gn98cnWLpId4a19gbGVXZIZjTj9nk0xFYnlXY1lSZVVOVlVWVE9cXWFVS01oVlVWSUpISU9CR0lTUVlvQU5YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlZZLjBKZ0FBOztCKzpKT140RIc9R0ZEl5OwpqOrsZirqq62rLezrKasqqm8wMC3uLK8taaysMPJy9HAwLu5v77BucG5wMOssbSxs7rAvrKwrqyrq6i2qqeur6q5sKiysq+zrberubimtLerrKSpqp2knrOzqaiktLSgt66gqqiqqKunoKusqbm2qqqqqqKqoK2ckqqhnaCloqajqp+dqLWvqaaro6SZpainqpyio6OfmZmgkI2PmI1+h4yHg52dhoOIiY2MjouChZWhmY2NmpCSkY+Tn5eZloyLg391h4F/f3h0gn54dn2Ah52Pb3FnZm93XF9yiGpPXplWSG55VWVXUWNQTVZUVVBPWFpiVUhPaVRVU0dPWFVJPklIT1FQeExOVz08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzFQYTAyP2Y9Tlg/Qyw+TFRfMEppNU9EPJePsaKmrK+arKatsLS1sKymsKqpur67v7Ctua6itq/Jx8jRwL69u7vBvbrDv76/rbGxsbW8u8GxsLOqs6mktKmlrrOzubGjrriysbO7q7uwqq62q6qeqqufo6C2rqmhn7CyobaqnqinqqOqoaKtrai+sKyuraKoqKCsmZCwoZiioKeon6ibmquxqqOgrqKhlKKko6eYmqilmJeYno+Kh5SIfY2GhISjloSBgYqFjYuQg4OTn5aHkZ2Qk5CNkZyUl4+KhoZ4dYJ/fHV4eX95cnF3Zn6GpHZpX2NpgHRmiIx8UlhwX0t4c1NkVFFfTU1TWmZOTFZZZFhHUmhSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwS2c6NDhfPWFkP0YxQ1BbWypITDlVQDSSkLOhpaetpKekrae1s7KrpbCnqre9wLuvp7mqpq6wycfI0cO8v764vb68yLrAt6+vs7G6urfAsrK6rLisorSnqK2zt7qzqKi+tq+3vrC/p62stautnKmvo5+krayonJ6qsqS0qJurp6mjqJ2jqaipvqy0sK6dqqSgrpybs6KVpJukpqClm5uqrKagnKuinJOcoqadmJeoqZKYmpSQioKPhX6Pg4CInY+Ffn2LhpCNj4N/k5qShZOijJSRi5GbkpWHiX+Acnt6fnxpeHx5c25uemaDd4WKZGFmX3GDeWxmeF1eVD9Xe21UYlBRWUxMTnJ1XUhaW2dZRVVlT0M+Sk5EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdpSTI0WD1mYkFKN0dTYFUqPTlDVj0qkJWymqChqqaloquluLO0pqqxpqy3wb21r6K5rKensMLKyczBtr3AtLe/usi0wrSysbSxvbe5vbWtuLW+rKGzp6ussba4tayfv72qs8G0vKGvs7WqrJ+tsKOcpamqpJ6cpLClsKCfq6mnoamcpamhrbyorrGuoaujpK6en62ml5+boaSdoJ2bpKujm5ulpZaXlaCjl5uWpayMnpGRkYuCioCAjoF7mZSMiHt+i4WOjYuJhJKXkIaUo4qTkoeRmpGTgIl9eWx+dnl4Y3x6cG5ucHVmf3JqhGhkZl1rcoxsYGhwYG89W3lsVV5OUFJLSk1UWldNXF5sV0RXX09eT0hNREY7N0hFS088cmhLSzlBRTs7PT47Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+KR00OSYnLjM0LjArLzQmLDokNDFBZ1kxNFM9ZV9ETDZLVmRPKjsxTlc9I5SarZqgmKikpKCopLiwr6Svr6mruMG5sq2fua+rqLS6yMvIvrbCvq+0vbfEtsKxrbixssC0u723qLm3vaqjtKipq7KvurGrnL2+prDBtreir7a1p6ansLOfnqWmqKKmmZ+sqKmeoaqupqCmmKSpoLG5n6Sxr6GsoayknKenqJmam5+llp2dm5+rp5edoaqTmpSZn5SZlqGpkZqJjpCGfId+go19fKCMjYh4gouEiYuLhYeTmo6JlZ+JkZWCi5eOkX2FfHNwfnJ0dGB6eGhtbm5tZ31xY3ttaWRgW2SEfl5Zc2pySUl/aVhaTVBMS0hQUlFJT1xfblNEWFpSZ05HS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1CKiw0O05OQDs3My0uKy03Kio8JTUzPGVjMjRNP2VdRk89UVpnSCo9L1dUNSiXn6eanZeuoaGhpaG3q7KmtLSpqLnDtLKtoLitrq2wtcbIwLa+wbmwtLy3vru9r6q9sLS/sb3Duam7urenp7WpqKyyrrSxqJy/uKauvbizoLG3sKilp6+xm6GkoKWloJecr6ahnqOor6GfoZSlpaK4sKGmsaufrKOvmJyqpaiel5qepZSbnZueqKyanZ+ml5eYlp6Ok5eiqKKQiYuPhnqEfoSLeo+XiY2GeIGGg4eLjYWNk5iNjpaZio+XfoaXjY95gXpwcndwcHRfeXdka2tqZ2aCbGVyamtkZ1dgcn9eWWt1aVhFfl5aWE9PS0hIUlVHMjleXm1QRFdVWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0SEJmW0hUQ1RdaEUuOjFdUSwyl6SjmJadq56moaOhuKqwobu4pay9w7KvrqK1sKytr7XFxL2zvrq3sLO5uLq4uq6tv7O1uK+/wbirvbq0paKzq6mrtK2us6Sew7anqri3rKCzvKqnpaivq5mip5ykppSYobKlmZ6kqamcoZ+UpqCkuaikp62mnqWhqJOgqaGhoJmbnqGTnJ2XoaOsnJybo5aTlpacjpSTo6ekkImKjoZ5hHyFhn2djYmKhniAhIeHiJGFlJOSjJCVlI2OlHuDl5CLd398bXVzbW10Ynh0aGZpZmNtg2ZnaGRmZ2hdZGFoZVplemJgUHNUW1tTS0pISU9TQCAqaV5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTz8uKy03LTExOTUsJi41LTgwNTc2YHNCM0NEaFtLV0dVYGhCMzc3YEwnMp+kpZOPpqecn56epLatqKq6t6esw8C2r6yitq6nr6+3wMC8scG3sa6ytrW5uLWsqryzr7Kxvb+3rry8sKWftqymp7Wqq6+hocWsqqiytayttLqdp6mrsaWXnaqfp6WSmaWtopidpKqhm6GcmKGep7elsKutoaGenaGVoaafoqCZnJqclJuelaafrqOZmJ+WlY+VmYyPmJqnoJCHioqIeIV3goKCnYeKgoh7f4WIhYWQhJaVj4+QkZCRjZJ7g5WPhXN/fmd5cGxrbGd1c2thZmNhc35hZGVmZGhoYmVuWV1YXGxjYUxnV1pgVklHSUtNUlg+OWBsaUhCVVNcWklHRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssL0EqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGFFJTWdpaGSjK+hmpmgl6W0sqOyvrehscW7ubCxo7erq66pub28u63Asq6vrravs7myp6u5sK+utLa7tq+5vq2mnrWroKGypquwoKbFobOmsLKxt620nauurK6imZ2oq6aflZunpqCZpaOpnZqfm5Wdna2xpbqorqKhmpuemZ+kmqWdl5+YnJaaoZSql62qnJWenZSNlZqOlZSYp6eNjIqJjnuBdIKCi5iFhnyIiISFioyIkoWUnJOSkJCRl4+Qf4GNjoNvgn9neW5pbGpncXJrWmhjYXF/YGRnam1qZGhlY2xcbGx1cWJTYmljZVpJR0xNT1lRUFVhZYFUQFZSWlRGR0ZFQC88PTc/NjxFTWE4Oj8yNDlAMzc4MTg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOkxqW01bS1hkY0BBMUdgQSc0lKOdj4+ynZyVoZups7CfuMC2oLTBu725saa2sKmupbi5t7etu7Ctq6u3qrW5raSztbGvqbG2trGztrunqaC2qp6fq6Oqrp2sxJmvp7CyuLWsq56wra+qopudpK2pm5Wdp6SdmqqjpZaaoJySnKOsq6m7nqakoJeamp2hj2ujlpmdcYOYnaWAdpKsqZ6XmKKTipiZgJeKn454hZKNgmxpfneEcWyGioZ9hIuGb11kYWeEmIZsi5CUknV4i4R/g5B/ZoiBaHZqZlhcaXRuTU9pYmVwg2VdZGZuamdcW1yJkISIaE9LRDhGVGdeSkhRUFVWS0hSYXB0ZUZbUVVQRUdGQz4xOz02PTY8NGZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjg2WIFsMTVPa1xOW0tbZmI+RzFOXzsrLo+km4iWspudlKGcqq6so73Fr6m3wri+vK2nt7Gmq6S4tLKzsbmuqaestKaxtaKnuLa1qKettrOutK60oqqftKueo6adp6mcsL+VqKixtbmtraSorKqrpaGfnKGoqJuYoqamnJynqJ2Tnp+ZkJ+oq6S1sKOio5yWmJmXo4ihj5Kah6GIlZ+igKWAqK2flZSelImEcniNjoOIoHWHjGmWiGZ+c3igb4eHhH6MfH+hoKCZgHyHn3SIjnabimuHgoNuaWVke21yYlSGbWRtaZhxWGlvbYZWXWhaa2lZh3BreXKHaIeEWV5GTj5GXk1GU1ZWUVBSV1RnXk1aTFJSUEVGRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk6LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbT1tMW2dfPUsxVF03LyiOp5iEnq2dmpmdn6uqqKq+w66yuby3wb+qpLexqqyms7Wvr7O3q6mlsq2ltrSbrLW2taWmqbOyrbKor56qobKpoKSlnKKlnrG4laaoqLe+pq2mqamsp6Whn5mhqKSamaejpJicpaqXlKKclJOkpqeht6Wjn6OYlZOYlJ2IrpCYlYqqjJmknYaxgaWvoJWboZd6gtSogIeUwJvGeHexpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsXlpbFixrm9maryTvG5neW1xjth9UmpitrJ8fnCVdZqhqpBWTldhT1ZNRlZcWFBQU4tcV1tQQVxEUE5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkFFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV1nXD5MMVlaNDEhj6eUgaiqn5idnqWtsqqwwr2ytcC1t7/Cq6a0rq2pqK+0qrC2tKiopramqLmvnLKytqqlpKeyr66xp6uep6WypaKioJicoqGyr5afpKG1uqOqqKCsraShnZuao6mgmJupoJ+XnqiokZ2nm5SeoqejobCjnp+jlpaTmJKZha9raoyOqn9ohZaHrWZyoJ+Wm6mXca6hpH93unxroI92sV9qtFulgGWckGBmgXpmf2l4a6plvnNnpox2sWp8sXh1kpRjbW2nblyEoEVpZ4iWRXWcX31me6OmgVheiqtnfIx3e2qoOEqvW1hUbGNaS09ZYFxWVjtOiFBXVjBJU1NKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy8uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TjVdVzMxG5KjloOtp6Wfo6WrsrittL2+sLfFsri6w6epsKywqaqxr6Sxu7Glpa+zo6q5qZ2zs7GjpKCqrbCsr6eooKOjsZyknpmWmZ2esKmYnKOgtbOhq5qhrKyfnZqXoKOpnZmepaCcmaGnpJCdopuXoaCsn6amoJqfoZWUkZeRm4a1m7V5h6matpl4h7Sbt3+VmJisl39rgaZ7gYWGkZSSd6tnarFbrHuOh5R0iXCOhoF/iJGXeIODi5eMg6CPhbB2d59ya2ttfItPpVhIZGSZfmNopl94cXRSkoZdT6ltYm96hYBhnS9Tom5bVGtnYExLXWRYXFpCPrB3V1hBI01pRUJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7RSwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0s5YFQ1MByXoJWJtKenoa2pqLOsqru3wrC8wq25tsKrra2vr6ivs6qisLyroqi2raOstaSls7Soo6KdqKqyqLCopp+goLCXoJuWlpebobGlnJulqbavoaiOqaepm52WmKCmqZufnaSgnKCjpaOWm56Ymp6jq5ymmpyaoqCWk5GTk52E1ZOZuXGxwn/Gh33WlJy7fZyXqJKPnY2ke42GoYClgnmreY+dVq97iX6farlauXeHhH2mg5R8mXupeY6dkHuxbY6EdZC8hm+VUK+nxYpRoHpjYKphc3KGa5aHXlK1tMiFfol8Y6Q0Q511XVFpaGRQQFhnWWNhSkhNakpaU09ZZlpDRD9FPzA8PDU5Ozc0PDw4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuMDA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdIOmFQNzIlnKOTmbKoqaWzqqW1qKS8uMGwusCyt7S9tLansrGksrSnoK+2qZupu66jsbKhsrSxoaSenqipsKm0qaadnp+smJmZmJiWmKOuoJyXqa6xqaOejqyip5Wdl5uhp6GYoqKjoZuioqicnqCelZmbp6Gcp5Sbmp+hmJCSlZCdiLJuaLVyrIhwj6dytHZ0tnucmqaOkJ2No36PnqN9sHWCkNLSdVyufIV/pG6bqqZrh4V9rX2YmZB7sXOTnY95s2WWdIWebp9mlFLJi1rCXJ95Yl+tX3ZzhGGWiF1Zyp1vv35yTUu1U1XGZFVRamNlWEFPa19saFBVRkg5PVdSW1dYSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTVRfZVA1Rz1hTTYyLqOekaawraWpu62mtKWntru8s7u+uLi1vLy0prW1o7Oyo6CssKWYqLuupbKxnLS4qqClnaGqpbKorKqlmp2bqZ+WlpmZk5Slq6KYlKersaahlZKsn6WSlKGcpaeglZump6Kbo6CumqCenZCWm6OfnKWUnZWZo56VmZaSm4WsfHiod6OPi4eqcK2MhaiEmpuji5Obi6J+kZeHroR/gbNccrJTr32CgqN+cdd9d4V+j56HmZp3r4aKkZyId7RhmmWbgYGVbJJbsFdLmnWYeWZhrV52doVml4hqXa92lZ6Pd2s1ecius2BEVW9dZ2BFUGxfcG1WVU0uZWNoUllRO0FDQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITA0NzY3PVBrZT4mVmdcQDxVX2NONkdCYEk6NzegnZSht7GZs8GtqLKnqrO6t7W5vrq4s7e+tqa4taG2rqCgqayflam2q6mysquttKSbqaCgqKK1p6aqpJmelaWhlJSdmpKWpaiclJGorbCloJSZqJ6ij5GimqmloZWapqmenaSfrZygnZ+NlJ6cn6GZmJuVlqKglJiRp52HqX5/pnmhj5CEqnCtjYOnhpeho4uYl4ijgZCGlKp6f4udeXCxWqiDgoigeHTYf3aHdKiCj5uNkqR8lpCfhHuyXpxkoH2ClW6TXatcW5N/kX9oZ6pjcnqAapiGcV2rWomgj2ttZE9KQ6FcW010XWJmTVphX3J0YEpVNUqakVhIRT1HRUFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4xMDIxNTQrKjA1LzcsJjIxKCQlNjY3MTxPZWRBJlVmWz8wVF9iTDdGSF9DMT03op2amr+tmLPCrqusqKe1sbixtb66u7Oyubyqu7ahsqWfpqion5Ossamwq7etqq+hmKKgpqWkuaOjrKGXnJKjoJaVn5uVmaKhkY6MqrCwpp2Wmqemn4ySpJinq6iWmKmon6ChpK6joJ6hjpWhmaCgkpyXm5WeoZaWj6ycj65ucrR0qYx3i6Z0tHp1tIKUp6SUnY2JpIeOdbhvi3uLomtrtlqhhmWXl2igoqdtlHK0dJOZf7NqhpKIrWp1tGGdZqJvhpJrmF2tYE6hfIeRUnOjbHl+fW6Yhm9cr1Y8nHdlVG9uLlunT2NSa2VibFpiXGBxfGNTWVE+P2xvMkJCQD5NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+LlVeYkw1Rk1eODFBOKWanJ66pJuxwK6tq6uot6q4r7XAtb2ysbu4rMK3qqyhnaekop2SrKuotqS0qK6qoZedqKClq7ido62clpmQpqOXjp6hnJmfoJGUlay2sKaYk5usqZaMlKaZpa2jkpers6SgnqissJihopCZoZegm5abl6CUnamdlJCrmYfUlJq7dbHEgMSHftaXnLh5ipKZjpiKjKeHeaK2dX13dsGDmrJhg7p5wHx1uGK1gYyHqX2VgqypcXt/dbyIp6BpnWGmjq+ifo11h6t9vm5zvHSyg3V4gIltmohwbY2kdL1dd31bYXm8alpWXGp6XmlhY2ZibnlvWFtZQ0FAcT9DRys0SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9TXWBLNTxMWy02Pzmnmp+ivKOXsMOvramrrbGoua+3xLG7s6+8sK7Csq2mo5+lop2ckaulqrOltaetpKCWmquZp6y4naOumJWhkaagk46do56Zn5qQlpOwubGrlZajp6eUkJalnaStn5GhqKygnJ+ppLKdoqSOpqGVoZmblpWjmZCwoJKVqp6FkJm2gJKSjbiWeYOTm7Z3bmxvdG95j4SOiXKewLu8mnuBsqhwgXSRuYN8hoaLho17ioeMl32ku7m9nHV5s6N0dZd1dLB1mZ5mh2qNtnRzcXe2i16AeXyIZ4N5bHpii6xwdIV+V1unaURkWlRmX2NdYlBnZnFudUJNT0xEO1pMPkoyOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlbLCs6yqqK2rqruvsMavtbSwuKe1ua6rpKKnn6CdmZStpa6rp7aoqJ+clqGknqykvaehqpeVnJGim5KQoqiilJ+XkpiUsrW2rJedo6Oii5KSppulq5yWqaWmnJuhqqamoqihkayel6Kel5aXnZ6PsKmUnKeij2t/ap2qeol0f5yPdntmiHu9vsC6b5KDcZSFX3JqWl6bimFjh4+WbGB/lWNtnHZilWyAmZWUZl5gY3GbiWhyjHyGlGZqfnF0eH9+Y1x4dYFoUFxuhHx8impYbHqCcUhKb4VwTnFNRFZcZmFMW1dmY15PW211a3JST0RETTxISDxMPzEsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVDRlRFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJeSSdTX1Y0KVBeTCgzPlxPJz8yPqifqaLBpJqzubajrKavpqi2sqzIrLC0rbakvrKzp6Gkqp2jnJqarKeupKW2qqWbmJainKetqb6oqaWVlJuWoJqTmaapqJKfkI+YnLCyvquapp2noomTkambqKScnKygo5qbo6esop+poZmum5SmoJaUnZ+dl7GlmaKomZ2Sn52lppuopJuem5ybkpeCaG9+cXeRl5SQhIm0qo2FmJWPioyZl4iUlYmDk5ORiY6SlJiUmZean6Gam5Sfm42BeqSFa2p8kX2BdYqLg3KCd3l2dot/fIlqc4F0hHRjdn12a294bF9iW29nTVhZZmpfV1lvem9uZlNPRlI5UFpOUk8nKjtLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NSR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0knUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsLG3oKqms6elsLWqyKuts6e2psGotaGfpaacpZaVoaynraSkt6ygmZeWoZitqqXBn6yklpKcl5+YlJWjnp2jqJOQmKiossKvmaqcqp6PlZapnqqcnqGtmaGbnaKlr6aho6eerJiWpZ2ZmqGenp2woZ2ip5aZlJmUoqSYpKCZoo+YlYyLjpCYrpB8lZyCkYGJqaiFgJiXi4SPoIh7hJGFhZqRh4aKlY+bl46RmJ6jlpmSkJyNfo1lobOuhYqEd3uQi354eXpvZnmRgYGIa3WBeYlxaHN/eXWDhoBqc2J3ZV9oZWNkZmpZa3txampcUktQRF9VRkA+Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAsp+5r76tq62xsqCqprKto6yzsMWwq66ks6+8pbWcoaijoZ6Zl6mnqqalprO2n5WVnpqasKauvqGsopGRnpqalJKWoZuXqZ2Enamro7THs5+po6qWlZeap56onKCkrJSfn52fqq6opKKqoauanp+gmKWfnJ6dsKSZn6mUmpmekqacmqqfnJhmhZR9ZX+Pm5Bjeo1taGp6kKOramWamH5nhYtlZWloeo2ijmtojJiRondraouZo5+Yc2xteoSMhnlYZV2Ggl5si4uDd1xodHd3koCHgW94gniAcm14hHN2iIeOg3pohFhdanRkXXOIaGp8cW1jXVFNV0pkWEBJMz1GOD9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1dX15aVE9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQklbSi42Wk82KUVZL0RPMVlCOz8uPaSeury5r6uysKulqK2vsaeurrC9saqppa6wsaCtl6GknqKamqasna2kpqiqtK6elqSQo7Cmt7mlrqOPj5qimpOSm6CYmKaWe6Sroqi0w7ekoaaunp2UnqOfo52kqqmTn6CeoKqvqamiqZ6mm6Wep6Csl6GbpbGlmJ2slqOfm5OnmaCsmp9/vYSKdLRzhZ+GrWh3ucS4cZKho3qmmZl0q4J9y8DAunGLo4eDnn2WmIiewL2Clp2djZzBwXyBepGMmsLAfWqlsnCOgm/KeoCbeJKDjoB3eYGAeXB7f4ZweISKknhsdZFhZV54ZF9lgWJddGhtZGJYTFVJUVlIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fYGFfXl5eXl9fX15cU01QR1VOQT8/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0NQLyNGWzNQWS9VQUI7LziVobnDtK+vv6mplKOwqrCvrqayta+qp6emsaugq5ibo6Ccm6qno56so6WppaW0pJ6jlKaurLi0p6+ikpGZnaaTkaChl5ugnoimq6Srrb+/sKCorqiWkZ+dopmipKqklKGhnZ2srqiqpaKipJ+jpJytqZKkmqiuqpyeq52uo5eYp5ijpJmef86UenulgnqWl5tfrY9djqiAoaF8p5WbdauDga9eZIyqe6iHhaB0l5OIs2OCq4agjY2zaoSvdHyWh7hhgq1Zo81ukXZ723t/mXF+iJJ2f2V7iHV2a32HbX2EjpB+a4CMXnBqcGdgX3hkW3FoamNlYFJUU1deSk9DNEFIRUQ4PjU7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xfX19eXV1fYGBfXl5bV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrMHAwLS0sLeYnpGkqqmttaumsqysrKWtprCqoaecmqaYnKKvn6GfqKejpqGfsaycn5Wmrq2xq6isoJSSm5+lk5CfpZedqKSeraOqsKi/xbKnqbGtlpKenKKXoaqqn5Whnp2cra6mqaebpqWioKqSrLOWpaKrqp6kqKejsqKTm6mcopyWlZGXoXKGjJh2hqiHcbB8nXGsfaCggqWPnnirgn6tf51yrX+sh4afdpiSe3yXf6qIooyRjJx9q3qIk4+ff3qtVpzEe5Bwk8F9gZVtdXCMbWZ3ZYduYXhucm6HiY+OgmyOjWNuc3VvYGZtZF9vaWpuZmNYU1xgWlJSQzhJSEBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi09KD4xKTNWQEYhHEc7QzEuK6/Txseys6Cdo4+jo6Kur7evqbGnqKqprqusp6KknZqjlZ+mq6CipqCoqKOfnrCsmJuWqKevrainqZ6XlZqkopKUoa6anaejrqyirLWpucyxrKatq5aUnJ2imZ+urJ2WoZmenqmxp6iomqqmo6Gqmq6xoqirr6aap6yrq7Okk5mlp5yWk4Wka6R1inqpdXuycYKlipiLcYigm4ekX2FSq4WAroOcda6CqIaGn3qZl4Z7ZoCjiqSYhoKjfal/gZSGrl57qFWdopKCe6OfgHzEsMWMc6+0s7lyYqmvwnRoi4uVjYBrlo9tbHh3d25rZmVkcXFmfGljXVZfaVhYVExMUExDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmFhYF9eXVxdW1NJQjY3OTo2NjQsJiQiICcnISstIiQuITMtJkBEV0gsRys2NioxUEtMIyBBOUQ0LCfBydbWwKCZq6ihr6KfsbSwr6mso6enq6urqaWmoJuln52mp6aknayaoqyhpKCvo56bk6qktbCvoambnJaVp6SRm6Kon5+mnLCloqixrLbHsbSpq6mVkZ2doZmgpbOdmqGUnJ6nqqqirJmqpqChqaGyraGpsrKhnKuqsbC4ppSYpqqanZN9qm2fhIh2q3l8sG6CpIuIn5aVnpaB0ri0uMmBgrJfYJSpg6WIh6B6mJaaearJdJqjlKipkJKajH6aiZrGxndloYKldIKgjoJ9r19vtWOxdUujh22nR4OTZI2PnJB6bpSOfG55dHx6bVtmanJxZ4FpXmFXY21cXllJTExKRURCQj1BPEE/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fYF5cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwxLz0tNE9UUR0cOzxGMiwkp6TAx7mtqbKuraWjnLO5rKuhpZuopqusqaagpqWYq6Ofr6ydpqGtmp+ppZ2ntaCkmJSoq7azrJymnKCWkKatkpqcp6OgqqatoKOnqbCzwbGyqaynk4mXnaWboqSvppeilZicpaWpma2cq6WknaujtqugsbiwnpywqLW1tqeWmaqmnKGQg55Od5qCgJ97hKN8gqSDhqafnJ+UhLh8fXq5g4DNxsO2eJuikouffpmXl4p2n5eKpJikqH6vhZyDnoOsfZmUYaVso3GQhZCBfZaEcqxgpHNxgJphvH1SVXWNkaGUenuPjYZyeXOFf3BbbG53c2qBblpkXmduYmRdS0tRU0FHR0ZIOjpLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1McGzY/RywtIIuHmamrpKu5q6+gnKGts7Smn6GVpa+urqmnnqWlmqSnobOuoqmns6CaqaSUo7Wjo5aXoam1uaSbo52jk5Cispmem6aloKKvrJykqKK1scOwramsqZGHkJynnaOknKWXnpiYmaWjqJisoauipJeupLqsoba2rp6etrS6s7apmqCypKagiJDStcO3eoeOhpGTj4Cmd5Sid4yhkoWlg4xyq4iGtG5zapqknZaKn32XmYeHkHOugqWbo42mipOdiJSQmm1wslylc5N6nGyZf3uZfm6pYaJyc36fYnOyuGh3jpKjlnuJiY6HdXt4joJsaHdoeHNugHRdZGNtbWZoYEpZV1c8R0Y/UzNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVVFPUVtVJSEyQUgjKiWSco2Krb+/vLu1npeopK62oqKZlaOqqK6pq5mlop+moKC1pqKpp7GklKujj6StpJ6RmpqqtLSknaWcqZKUl6+goJ6mo5ynnLOZoKqjtarCr6iqqKGMg4+doqGmo5WampyYmpimo6WXqaaroKObrKa8rJS9sK2fo7G1u623qZ6rtaermnyokn18sHiLgKSliJxtsW+gh618oo+DqJeagqyKhq2GoZWooaOYhp+BmZaBe5J+q4GdmZaLq3edoI+Ik5J/eq9do4F9pqdlnoB8l3Vqrl2lbHKGmV1gW4ygbZSPo5aAkYmSiHh5gZd/amx+Yn10bYB5YGhlb29oZ2hCWF9aPUpTMlM4QUFDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaV1NQT05JODE1Mi4qLEFUVlZWVVRVVVVVVFRVVFNTVldXWFZVVVFIRklKIygovJKahKnGw7fBtJ+braCuuaajjpqjpKCvrqmfo56drZieuaCjq6GwqpquoZGqqaWXipqQrbGtp6Com62YmY+toqGdpaGZpJytl5+opbaovq6kqaOfi3+Om5qgpp6SlJmak5qZpKOimKeqqqCinqenvKSXwqyro6KttLutsKmjtrKsrpp3r3+QipyFh3y6rYmYZLCMZJaufaGQhKeXnIKtjIWwh6iapKKjkoWgXGxrgrNgf618e4KBsmxnbpmXi4exWn21XKSDa8iiZp+Be7tZdrVasn1Tr4F6rFiAoW2WjaWYh5SNkZJ5d4ycfWNzfGKDd3SAfGFqZm9uZmVmT1RiW0FTXT1IKD45PTQhISwkHzEuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBfYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdXWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vru0wrOjnK2npbepoIuZoJ+dsrGonqKfnbWYoLOoqquesK2erJyVr6mjjombjq6sqaejqJquk5qPqZqhnaSfmaOipZieoqixqLuupKienY58i5uWoaCZkJKam5GZl6ien5enrKSjpKKjqLqen8anpqmhrLa3rrGqob+xsLCYgqqTo66Om4CGpJeYkICAuMO6hI+dlIWomZ6DrIyEr4qpnZumq5J/1b3CqmKkv719f6OCg9e7uLWElJKCnr2+hGujgnCrhG+dgHqysceDa6uxvax5eKK+u3SAlIyjmYyYjZKZd3+PmXlifHlkjGZ4gXtga2VqamJQYltSaVw/U2BCTCk8OjQvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0ssC6sr6zop2up6Wzp52Ml6W/qbavp6G/pqaxm56xnLmon66vpaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp2mm5qgqKKYnaCsrKm4raejmpeSe4eZkaebk4+Ql5iPmJOpmJ6WqKeeqKagoaq6najFo6GwpKy0tayyrKO/q7OynXV2qqS2hWWJn3BnrJCKj25ud6WQm6GCdrKcmHGRjnKXq6Sbma+lcm1tbWaLeG9tg5pxgXpqcWlniZaVl3JpaYWHZ3GHZF6LY2pwWl1nfnimYGJykJJwZmSAjJGOn5SUlo2SmnqEjZN0ZIZ3Z4xqeH55ZGxjZWxiSmRXSWpZOU9jRE8nSjkrIxwgGyIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdbXGBgYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6urKzq6mirp+js6qYkr2xw8e8tKmev6uso6Cnq6C6o6SurK2mjpatqpCMhZWWrZ+mq6KfpKSgkoulkqaZqZqWoqmglZylpaauuaqrmZqTknuEl42ml42RkJeUjpeVppOdlqahma6lnKGruJ6wwailtKetsbOssK6qvKeyvJiMo6mltZyJlqKYh6mbj5Sdkqq0mpykrqK1maWkoKOkn6Smopasp42Tk42Hk52dlZCZk5iRj5WFf6Sal5aOjJSTipCIhX9ojIF1g3d1h4xxp219lpOUlIGBj4+OjpuQnZKTkp1/hZOMcGiPdm+Jd3V8eWlrZWNvY1VhWD9oWkdiX05XK0U9KyYhNjQwLh8cICUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdUVlleYGFiXV5VUEtFQz45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbiur6Kwpa6goLexkI6qxLzDubapoaSdm6WdsKikt6edqbWnqJGYrKOMiIqPnKeWraShmqien5OWpJeomqiZk6Wgo4+ap5igtLmnqpiakI17gZWLoZSKlZGVkI+Sl6SOnZinnpqzopylqranrsGvpLinsLCyr6yttr6ks8Gak6elprSikp2mno6poIySn6KtsZuipbOrs5qmo5+nrKCgnp6YrZ6TmqKclJCXq5mNmZqXkJefkYegnZWUhpSNkI6WjYJ/Zo6Idoh3eoiEdJxqiJKWlZKJfYyWkZKWkJ2OmJKdgYWXhnpxlHJ5iX9xe35qbmRecGlgXF9YbGJPX2NPWDlGRkQ9Mjw9Ny4qJSspJh0mNDE2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBhaWFlVVBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlqSoo7C0rK+jqqeuoKe1qpGPm6Oyua2qq6GimXqcobCkprGpl5y4pqOUmKmcjoaKiZyikK+fpJapoKGTl5mcrouqlo6nmKeMmKiOnbi1o6WXm42JeYKTjJuTipWRk5COkZahi5ydppydtqJ+g660orCvdaS/pLOgeXujrbXAmHiwpqGKgKp+ZFxidp+PpJ6Dln5tlLWdpamxraZmoKKVdXucmXGBmaqZbYCkqYplnKWckZiZl4yTnJGFnZuQlYSUiI+Pk4uGeWyRiHaIcnyGgYFhaYmMlZOMW3aVkGZojotxeJ+VlGR3l4aBd5dogomCbnl/a3BlYHZva2toW2RjYWFtUVk9TU1NUkY9P1NCOTAvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHRklLTFRVVVldX2dnZ1dRSTxESDw5VlJbYGFiYF5fX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqqaprqOnraWSlaq0rrClmamlqpZzi5yvoKirp5SXuaCgj5yknpF+iImano2smqSVqKKejpeSnoV1ro+IpZmokZajiJq4s6efmJiLiXR3ko2Xk4mTkJCTjI+Sn4yZnqSYm7CUgIybtZ20jJKPvaeifqeje6Wyu4SOkKmghIyFj7Gqr4yJlqOaeYCLrIadn6Opq6qJloibd6Wce4icgZinhIJ7nrN7ioagmJmVmJeBkZeWhJqaYnmIkoWOkJOLhG5ykYh6gnKBgYaAh3SIhpeTeJZok3SgmnR7mYGbmISYfpCJgYKXaYyMhGp4e3FwZ2V4bWlsaltjaWhkcVpbSFNLUEBFNS1ZU1Q2KSEwOT0+NzQzNTY4Ozo9Pj4/RElASUVKS0dTWFtYW2FhaWZZUUg5RUw8P2JWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2YpKCmrq6rqK2gqbGmp6qlmZOsxLyvoJSlp7Ocj4OdrJ2noqCNkL6emY2fmqGRfYaOmJeIrJ2jlqGhko2UiYaAkaiOhqGco5OWnYWeuLGonZqSj4VwdZCJlZCKk4+Om4uOkZ2QlZ6ilJ2qhp+0ibSarovKiKuvireFjbCEs7OHqY+qmo2de6iPcnt3nI6mlmiVpHm0jKGgqKqUmsKCgauJmaFynoCbpX6XhpaygaF9oZOfj5iYgI+Um4mZkot9hpSHjZaUioVudJOGgHtzh4KEfYV1hoOYgo/FZoCph4+iaZ2BnZaAmYCKi4OImG+NkoRnd3R8d2dpdnBnaGteYm5sZmpXZEZcUUwyRTQ2TWBjNyYzPEVHRDo2MzY1ODs4Pj09PkJMP05JSkxDUVpdXFdiXmpsW1FFPUtNQEpkWF1jZmhnYmJiYmNjX19iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KgsKmpqKasoKW5samrppqUnqGkqaGUo6i1oa9/oKedpZ6diZS9mpONoJKdkHmDlpaRiKuZnJuaooWPjHebnI6gkYedo5uWmJeFobitpZmbjIx+Ym2Pi5OPjI+MjJeLj5GejZKen5egpn2hp4etnaCWrpCgnp2Rh4Khja6ziaSPrJyMmn2idYCZlGuCq3VNq3iHjZ2TnKqpgqqrf4WifHunap6Ak2xnl4aYt4mefm5gY1iDmH+NfGRnjHOZfnqYbF19mG9hVHKHXWBteoRgWWWCfoWBmXKoqmuDo25ypW+fgZpnZJ5sWmyJe2VZX4J+YVdQcHZlb3RxampvXWlvbGpnV2ZNXFdFOEE0RkNeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUktNQkpcXV9XXl5jdV9NRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJedobmhqqSmrJKitryqrqKZlp6gpaurn5yttKGnkaCgoaecmY6YtJmQi56MlYt1gZSRjYqmlpaYnp9+k4WGrKSHnJGKmKiXmZqRh6SvpqKVmYeJgGluiIiLjo2Jio2Ri4+RoYqSnJ6aoaN/k4GPo6GUoHeclpCng6OpgIessYileo1/hJp8onByk4eVe56MeW2Hm4uakp2qnI+HnX6EonR3pmeefnelX5h7fZNzom6Yt7S6dJOIgoC2qGSBxbl8cZW2jHKBm6RkdayrYX5qnbN+bn6JhI+DjJhxgKNrcqNynoF8o16cmbOVcHyXnrN0cluesoNqYnF0dXFob1hqa3FwZFtnXGFLQz1ENlFBWXEyPFNHX0pSPTwzOTU6OTZDPDtASVA/VE5OUUBFX15bWVdgYHtkSUM3TFdVVmNhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaS5mauck6COpbi1rK2gmqGboqOkrJqasayrk5ihmaGlmpqUnqybi4mReIuFcYCVjImQoZCTlJ2XfZGKjqigh5iOiZGik5uajIqop6Sej5aHhH5qeoZ+fY+Ng4qPkImOk5+BlJyem5+ei4l3nJiijaByoYyJqYmdqJKZq66Cro1+eqCZeaOTeIBzl4eMnH2UnoabjpqdqIijZKF+jJeQm41tnmibjm+amXuAiqd9cmh0q4Oeg3OqZ5SaXZuFd4WeaKpqgLlmXKlwgZxhlYxfp3Z3iouAnWiadYeTkpiNfZ5smI9qpplcqH53u2p9qVqOhF2zZ1tucnh3a2lbcGl3d2FeZFZhQVBETjdVQlFtNEpaWl5OWkRAMTUxPDs3SD86Q0hVP1lTWF0+RGJdVmBRYWR8aUZCOU5bXVllZlhmZm5tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mWnYmqtpyoiWOVnKy7sa+rnaWbmqefnayZnbCnq56Xo5qioJmWlqCkmYaJjWmIgHJ6loiLlpaEkpSYj3qLhJaknImVj4aKnZKcm4iPqKKfmouQioCAaYCFeX+Wi3qIjY6HjpWZfZKhnZ+hkpdyaJ+KoI+McJKNgqmJmqGlqqOrf7CupKK4l3ajs6Kjf4iUeJ16qZh/oo+fnZmJmHKgfYiOsLV9bJqRoXh+mbWjo6uohJl8m32cm390qlpdb3uXjHmeY01/e3uGZXqYQk2fWaJqc32Pb4KKhJl2m3mHibGzf32ZkqZzfZ1tcHyUb5lyaaNdlXZIZWNfdHF8fW5lX2tndXpiY19QXVdcU1ZAWUVQZ0RSVlxhWF5JRD1COD9COklFN0xFWEFXUltWRUZiXFpgS2BtfXFFQzxWXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lY3ZsXmVnZmxkZWxoaWxplJ6BsK6ahFNfoae0urKyqJqii5qpm5unkqCro6Coj56enZqZlZignZaHh4l3hYFueJSEj5uLfZGTlohygYmSoZtykpCAiJiUn5qEjqicmpWKiop8g2yEhXGCoYt3hIyIh5GYlHqRop+dooethn21hI+enXumlnqpgpefkYykoYCnaXhufplzoHNxfJ2FmG+Tgqx7o4Snn5uDpHBfqWh2o2RwpmGc0498e5l4cnNjooaRfqJyo5B2a5CzjGCDmIt1q7OovH93hG9/v6aqtF6cb39yl3CCdKNyXqRndKZgaKZrmtOYeYGabnZ5l2ubeXaXcmyppWdfZXlxf4RsaGZjbXV2Zl9hUVplUFFhSFZJVF9XU1tlaltlUEVDS0xJS0JLRThQQFFOWFNYT1NRYGVkaVNkeHl3SkdFZF1lWmhpU2loam5jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZ2htaJibf7CsVF1LfqqvsbSwsqKcmISXpqCgooykp5+XqYqZmJmUmpOSoJiOh4V7cH2DaHyPgpOagXeRjo+KcICGj5ORa5iTfIiRkqOVgo2omZOSioWJeYN2iIBugZ+Gd3+RhYaXoJV4kaCimZ+Is6Gitot6rKekrqVxqYCbkYaCn5V+pYGjm4aYcZ6Eoq2vipeLf4ykjZWDr6OVd7W2tsqidJSNg59gnZepbXmWh6CbdaGHd6B+kZeLgW9NZqOTcZuJdKV7enVihINufqBtcmRgnHN/dJhre2q0trTGpnOYfXmcapqZq3OAmmxzd5dpmXl0mHFQRH2zXml2a3iGZmtmYnN0b2xVW1JZaE9RZ0lVTFhSVVxna25VZ1dNSkFJTUtISk5BUUpQZWNqbWV1c3N/eXtudIl6e1VRTm1eaFtraVJqaGlsZ21mY2VfXFxcX2liZGhre19dZGdjamZubGVpbWWinYivp4VlQJSisquvr7Whoo9/lqehoaOLpKadnKaCmZeXjpeQkJuTjoiDeWt5hmWDjH+XoHl1j4iMgmqFhZKEi4WdjXqMipWlkoKXqJaMkYuAiHqAfYt5cI+ghXmAlIaIlZ6UfpKkppuVloRmbnicbKJkfHKleJyYcGing5qOfaV7opeDlnKfdoGJlJaPuW6QiqJifZqjl4ludGura3WgbnCnYZtqi5BploeblXWigX6aYIuGjXVviGJooWaef2qbdXFlZ4mCb3OiW19bZKFuXomNcXyAdHJkpW54omNmp2eXcYqXbaFvUoiPbqBeZKdUi11UmG1tc2txgW1waGt3c2puUVZVVWVYUmxJWE9bSFdoaHNqWWtWUFJFVlxMWFJhVWhqXnd1e3xwfXxyg3t/c3eNgIN3XlFzYWdicGdQa2hoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaaZpntldG2Mp66lqbCxpZ+Lf5WpnJ2ji6GhmqKigJWZk46akIuXkY6Ke4ZxgIhoiop8l5tzdYl9kHxlg4eViomVmoJ8iIaWppCAoaqPhJCKgYl9gICOc2mPpoN9hZKMh5efjYaRqKWciKZ4lZt+pYmWjLKZnpGEr5efpXqYiXupdaiRhJpupaKMkoSMg7xtfKWvgoeFh5WYnqN+pnxzqJWhlmmff3CsY5aKlpN4qG2qo4GJdomDd6uRpohrkrFsd7ONqWyLhm9voJ6SlWJ/q4yqeIGAjqefd599haSWnaBnmYZ0q2aerYy2c3a+jKSTWYOmjathdnJ0b3t1cGJqfm5nbFJUWFRgYFxqTFxRW0hdbG12X1txWFtfWmdzZW5vcWNxdGB3en55cnmDc4R+gXt7jIGCgHZieWRjbnNkUmxnZ29tcmlmaWFfXlxhamJsbHpvXFxiaWJtaXdtZ2xvYpamqp2BgJ+llqqqnqenraOYiIGWqZmdoomapJyonYSMmo+GnJGFko2MjHSFeoiDb4yEfpeTdHWGcpGDbn+LkoaFlI98e4GFl6SNf6SkjYCNiYSUdYKHk25si6iAgoqTjYibnYiKkqmin49/dJOXiH6BeZSvpH+CnXGPhnmTjoaBe3OpjXF9fXqXlpuFjnh7fX2Gk5WTi3eSmqGjhXx/i22Nhlx6eXN7cWlufpOKcoB0go+Uk3GGhINmjX9fgoGMeHd0lXZwem9wiW6Fhl93aXiOZ4KDho+qnH90fZZpiYhvfXV7gnRsbGaMc3h7l3eEW2tXeY9pbndycm93eG9ca4VuaWZWWV5WXGVqY1VgVF1QXm93eWtqdmRpamp1e3BxdHNhb3RidHuBeHV6gnV/gH+BeYuFgn57boBtZHluXlduaGh1a3hqaWpkXGBaY2llbHF1blpbYmtkbGt5bWhsb2COlLmpp4uho5umpJmknauhn4ODlqmRnZ+ImaaaqJmDgZyLfpaUh46KiY1ygnyOfH6OhHuXjnRzhHCVhnx9kouGho+FeH6AhpijjHumn4qEj4+ElYKGjph3cYSqhY2Rm46HnZ2Gipqmn6Crg4iNlJt/foqXraiQk6iReXGflIV8lXCArIdxfpVxanB9gZ+Lf5GNimdtXYSMjp2eoZF0l46Kc3Vsg3d0gVlyb4eRgn5/jGpdaWR7hYSJgGBpeXycfISNhHeCiIVqeo2JbGJxc4N3YHSNg4qRqJaHZ42Ogmx2ioFtgop2bWNlY3mDepVaXGlnbnZbe3l3dW5zcoNmW2yJa2tiWVhcWVhrcVteX1ldXGVyfXp0b3Riamppe3txenZ0ZG10aG17fnV6fXt5eoCAf2+GiYN7fXN/enN/aFRccmlsdm91Z2xnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyrsaKQo6Ganp6YnZmooaB9gparjJ+ThpqikaWVf3uYhXySmYmIh4eKcX2AinaEi4GElopyb4BzmIeEfpODg4aKgnqAg4qan4+BpZ+Gd46XiJWKi5yXhIN5rIGQl5iTiZ2chYegqZ6hoqOLh5KbnaOalquiqKiik52JmZF+epGQhqp/f5ORkpOdsqaalJ6OjLCRmISnjo6WnaKLkp2FipOLbH2Pd3hmgoaRi32JnoSIjI+IiIGFhJF4fHt1nKSKiIygjIeWgICOg4F3cXWGhYB5ioiLkaeRhIeOh4KLj4p5g4iFjH90aoGDfHmZaXJoYXOKcX57d3dwd3SBXV1uhmhuX15ZWlxTZ3FVY1taYGtndHt7cm5vY2pqaH57bHh+cGhvb2tmgHtygoB3f31/hHttg4yFfHp5fH16hHlPZHdrc25wemVsZWJiYFtzZnBmcnFtVV1sdG1oeHpwZ2lrZY2Inrufl6OhmJWZmJSYpKCcen6XqY2djIWfnIuel314lYN7jpmJhoOEhm14gH9ygId+iJOEbWt+epeHhIOQfoCGhId8h4KMmp2ShqmdgnKKj4WSkYudkXyNe6mDjZGWlI2blYWFmqWfopqehoOSmpmZkJmmoKaenpCXgpSNeX6KkIanfH2PkJGGmKqhnZOdjo2ojJGAn46KlZyhhJCZgIiPhHB5h3J1YX+EkIh3jJmBhI+BhoV/hoSVbnp2dZSkjI6HnIaGkHaCjX5+dHN8ioV8eo6PhZSokIeEj4GCiYiIc4KFhYh5bWp9f3ttaGtsZ155f2d9e3Z1dnV7d1xfcH1tdGBjWlteUGZsU2RaXWBqaHR5fnBsbGNrameAf2tyf2trdG53bYR5boaAdoKAfYV2cYKNh357e32Ae4KLYGl8a3VoaYNlamNgaVxjdWdvYnVtbFRicXllb3l6cmVqbW2Lip+4mqKkn5OSlpeLmp+enHp3m6SQm4mGpJSLmJp5eo2GfIqSg4yCgoJte353coCFfYqQfWtofYGXiYGIjnx+hYSHfI+Bj5ubkIimm39wi4qLkoagoYqFjHyokIeOkZWRlJF3jKOgoZ2Wm4CBkJqYk42aoqKkm5iSnH+QiHuChpGJo4F+jY2PfJikoKCSmpCPpYuPgZySipSZnYCUlH+Ij4J1dYJxd2F+gY6Ic4qWfYmMcY1/g4aHj2h4cnqOmpSRgZmAio10hIp+f3N7fI2GfHuTjoSXppSMhpB7hIWGg3N+gISFeGRwen93eXBsamZefXNofHV2dHxzgGpeYHR3cHdkY1hdXlJpZ1RkWF5gZ2l1eIFwZmtjbGdlf4FqbX1nbXBqfHeGemuLgXKBgX6BdXaCjYZ/fHuAgX1/j2pyhG50aWKIaWxiX3FWdG9sbWB4aG1XanN2Y3R6enFia295iY2fs5Klpp2OkJiPhZyhmpt8daKejZd/jKGKiJuWeHyGiH6Ein6IgoF/cH96c3WChX6JkHdnY32Gl4qCio14fYCMg3mWgJWXlY2Vnpl9b4uBkJOFpZuHjImDppSEkYmUlZGQdZGdoaGYlJh6f4+Yl46Wmp2lnpqUlZ17komFeoiZj6B/gouOjHOYo56gkpiOjqCLi4OYmISUl5uAmo99iY6Cd3J+bntkgH2Lh3GHlICRgmuHg4KAi4ZmdnB9iJSajn+VeY6LfoKJfn1zgXmLh3uGkouMmaSXg4SLdoeDgYBzeH+GgnNednd9cn12ZmxlYH9pandzdHV9cXxjZGFzb3VybWFZX11aamNSYldfX2dqdHiGcGJqYmtmaHyCa2h0aGxvaH98gXlsj4VxgIODf3R8g4yBgH56goN+fJBtdYl0dG1mimxqYmN1VoNpcG5geGdsYWp2cGZ4e3lxX3FshYWQna+Yp6mejo2Xh4Wfk5WXfHanm4qYeZeci4yZkHl8gYx9fYN7gIKAeHN4eXN9gIN/iIuAZF59i5WHf4WIdH1+iX9+mISWlJaMo6CWfnGGe5ORiqaPjI6KkqCQgo+Ok5aQioCPl6CakpCSc4COkpSJnZ2ep5mZjpWXdZGSjG2ImpKcfIiJkIlvmJ2aopKVioudi4aBk52AlJSXiJuKfYqKgntxemt2bXx/jH9uhZODlXhwgoR+f4yBZXNqfYKYmIaBj3WSi4Z7iX93eoJ/iIJ+hY+HjZWlkXmFgnSIhnt+cXJ+hIBrYHl0eXB7bmFuY2V7Ym5vdnN4d3R0YXdgb2x1bnBdWl5dXWldT1xXYmBnbHJ6iGpfaWRpY2h3h21mbGhpbGeAfHp3bo+Ic4CDhX10gYaJeoN9eoGEfXyOcnmLeXhubIdraF9pcmKHaHFvZXZnbWxhemhqfHt4cGF3bYuBmZmroaWpnouLkYaJnYuUlnx2rJiMlnyfk5GXlIl3fnuKfHyAdnh/gG9zc3pvhXyAgIl+fGBbfo+Rh4CEhHJ6f4Z6j5GHkZGbkqSak4F8gXyNipKkiY2KjZaajISPl5GUjYiIjJKdk5CMjW6EkI+RiZ6ZoqGYmIqXk3CMnIZoipuRlnuJhZCKcJaalKGRkYiKmIyCf5KffZORlI2akHyLhoh1c3VrcW51fYt1b4aRjpJydIB8goKKfmdzbnp/m5V+hop2ko2DdYp7cYOAg4l+ho6Lho6Wq457iHx+ioR2fG5sfYKAYWZ3c3RuemFeb2FrdF5wanp5eW10cWV6Xm5sc21zWVldX2BpWk9WV2RiZXBwfodlXWloZmJncI1uY2hoZWhngHp3dG+OhXOBgoN8doOJhXiFfHiEhnqAiXd/i3x7c3mDampfcGh0f2txb21xZ29rZXthbX95d3Bsd3eJf6OYo6ihp5uIi4qBjpyGkpp0f6iUkY2HoY2WlJGBdHx2hXh4f3JzeoVscW94bIl2f4CGbnFbWX6SjYiAgYF2dYB/f6CGj4qSnJegkpZ3iX6AjIicnYqPhpKXloWIk5iOlouKjY6MnYqOkYNtiYuPkYqclqGcmZaGmYlsiKaFaImgjJOAjYWMgXiUmJKdkZCIiJONf36QmX2SjpGPm5N9i4GFcHZwbG5vcHyGanODj5mLcniAdYKJg3podXB3gpuQfYqGe5aTfHiKdnKMfYiPfIyIhYqPnKWJfIR2gYp+d3draH5/fltxcnFvb3daXnBhcGteb2p8enFubWptd2Bwb2txbllYYGBgbFdQUlllZWF0b4SBYV1rbGRiZmuSbmBmZl9maoF1cXJvi4B0f4OBeXaBi4B5hn94h4Z2g4V7houAe3eLf2pwY3xihXxvcGx0amhubHd3X3F+eXt0dXN/gn6llZutn6eXhYyDfpaVg46ddImek5KFi5uMlo6MenJ4dIJwcoR0cXWIbG5sdGyHdoJ9f21uVVGBq5SHgniAdnKCeYKggpCBkpKYmpGYd5B6goySo5qTjoiUmJKDhZWYipKLiY6PiJ2EkYt9coqFiI+InJmem5eWgZWAaYmfimmJo4qUhpKEinGDkZiPmo2Pi4uOjXd7k5F7kIyOk5eOfYl+gmx3am9sbG17gGJ6fpCXgnd7gniDjX16aXZtdoiXjICJiH2VknN7hnJ5j3yMj3yKf4WOkZ+gh318d4GKfHZvZ2l+f3Zddm5ta3ByVV1uYnJhX21ueXBocGZndHZpcWxhd2ZdVWVgX3FTUE1bZWNcd2+Ie15caHBhYmVmkWpfZ2RbZ299b2xxc4l9dnyGgXV2f4x5fIaAeIeDc4aFfoyMhHx6lXhncWqDYId+b29re2BpbXSAdF5zfHiGeHRzhXx5oZCasZylj4OKf4KZiH+Jm36JmJKOhIiYjo+PhHd0d3OAcG+EdHBxg29qaXVtgm58fG10c1JOgt/JktaTfG90g3WDn4KRdpSQmJuPmHuTcoWPnaGTk5CJkpqThX2VlYeMjYeSjYmcf46BeHuNf4iMiZycnJuWlHuOd2mMlIpui6aHlYqYhIZjjJGYjpSJlouMiYtwepWKfI6Ji5SSi3uHfYBtfGVzb2tte3pbgXqQkIF7fn+Aho97eml1a3SMkIuDh4Z+l41tgIBwgo6Ajol+hXyEkZabnIx9d3iCjndxa2RufIBpZ3NuZ2lzbFNeb2VwWV9scXdna2tiZ3l0cHBkYHhhYFVrX110T01LX2ViW3dwiXNcW2R1YGJlZY5jYGZiWGlzc21rcXaLfHN5hoJ2d36Lc4CHf3qJf3KJh4GQiYl9fpl2ZXNufGWHfm5va39ZbG55enJgdnp7jXZydol2eZ+MnK+boJCChHiHlH57iJuGhJ2QjoWMl4STj4iBdXdweXFvhHBtbX5yY2R3cHxteXxqaGxjpJrB3K7vonNsdoN1hKGEkG6Vj5Wfk5qAkXCFiqGWiY6VipCclYKAlI+FiI+AkoqKl3+He3Z/iniGhY2bm5eZkJB3jHdwiouOgI2nh5SLnoaGXouUl4qOiI2KioSJbHyXg36JhouTkId3h39/bH1keHVqb3p0WIl7koiGe39/gIaNf3pndGqBio+LhISBjZiHbYN3cImSg5KGgIR8gZKXlJuRdXR4h4t0cnBkcnZ/X3Jsb2FodGZSYHFna1VfbnN5YXJjYGl+cXNuW2NzYWNWblpbdkxMS2JlYF11coltW1xkeF5gZGWEX2NjXlhpcmtua3J3i31zdoSBeHh8iXGDhX19iHt0i4iHlYWMf3+Yc2h1cXlti3puc3CAV3F6dnlxZHZ5hoxodoCJcYCdiJmonKOShH1wi5N3eImbg4SfjY58lo1/moiFfHN3cHNqb4Fsamx8dF5gd3Z7cHR6Z2BlfOvatcnD3IlzbHSBdomZiIxol4+Pm5SSgYhwhYifjYWLlYqMl5N7jJKHgoiPepGLho+CgHd4g4Ryh4KSm5aTmIeNdoh/cYiFjIqdpYaXjqCEimGElY+GiIWIjIaAh2h9lIB+g4WLj4+DcoiAgHJ3aHZyaXV3bFqNfZODhn6BhIGEi4N3YnVtioKRjIN/gJSTf3CDbXqIkYiUhn2Df4GTlJGYim5xeYuFdGpvaW91fl1yaG1caXRfUmRxaWZTX3F2dGBwYF1ohHFzaldnaWRpV21XW3NLSUtkZV1hcXKFaVtcZXhdXmRnemBkX11Za25lbmpzd4p+c3OBfnt2eohzhYR8f4d2domFj5iBjIJ8lHZsd3Z5eJN0bnd6fFh5hnGAbmd4dpGCZHaGhXCKl4aaoZuiioZzbpGKcnaNmn2KmYiJfJ9/hJp/gnlyc25vZHJ+aWZsd3dbX3h6enFxf2lhZ2F/1baOkaZ4bnF3e3CSkIyFaZiNiJqQi4V6aIeLmYaBkpCGhpeNe4yMgICJjXuQjX6JhXp1e4N8cYaAlZmNkpSCiXaFiHmGg46WoKKJmJKhgIlhf5SHhIeDiIx/f4JmfZGAf4CDjpCRf26EfoR1bG13dXR4dmtjjoKPgYZ/fYWAhYl/cGB0coZ9kI6DfYCSintyhWd7hYyJjoV9hoCBlZCRlIVub3iLfnRsbWhpeHpgZ2lpWGt1WVJpcmliUWJyeG1iZV5aaoRudGJcaGBlbV5uVFptTUdOZWNbZm1wf2tZW2JyX1xjbHZkZV1dWmxsYmxqc3aGf3Fvf3x9dHiGeIWDfYCHdXiJgJKVfImGd4mBb3h5eoSSb216gHZeg390gWxoenOUc2dyh3xxkpKEmp+boIeGdXWTfm11kpV9h4+Eio2afYyadn53cm9samF0fGdiaXV5WmB3e3ltcH5lZGhoV52PX3Jzl7zEhHVxlIiPfXGWi4abkouHcmmIjpWAe5WLgYSai3uKhnx6iYt/lIh1iYZ2d36BcnWFgZ2UhZSPhIRzgYp3h3+MnKCciZaPnoGJZn2Tgn+FgoiIcYF9Zn6MfHl/gImNkH5qgX6FdmZweXh0eHRsao+Gi4KLgXmDgYWEgWxfc3l7fo6LhnyDkIJ/c4NqeoWJjYiGeYV+gpmOkY1+bm16iHx1c21mZXt0YltwYlducVNTbnNoYU5ndXhmYF5dWW+Bb3RaZmJea25gcFBZalFEUmZgWWptbHtuWVtdbGJaYm92ZGdcXWBraWNranN2gYJwbn58gHR1g3qDg32BhXZ9iIGWkHiEi3WBiHJ4eX6NkG9veoBxaYF4en5tbHt1lWtqd4RzbJONhp+Zn5mFh259i3Vpd5aNfoCJg5WXinqQlm97dHFramRgc3poX2Vxelphcnx5Z3B5YWVkj7Gyd0tiWqXZ0JZxepCKj3d8k4qEmJCLhW5rhZGRenmShoGEmIl7hn93d4mKhJaAb4uIcXV+e2p5hYOlkIOTjYSAcICFeIZ8iZ+cmI6WkpaFiHB7k4J9goKIgm2BdmiAhXlygIGFi4h9Zn5/hXZkcXOAaXlwcHWZjoaDi313eYGEeoNrXHJ/c4KJhop+h4p8iXOCbnKGiJGHh3SGe4KajY6FeW5ufYN+dXljZmh7b15YdlpXcGxOV3FzZ2BLbHd0YV5cW1p1fnNwWGdeZ2pxYG9OV2dRPlhlXVluamd5cFpaWGplWWNweF9nXF5lbGdma2lxd3+Hbmx/foB1cIJ7gIJ/gn92gYSIl4lxgo1xe4Z8enmElIx1anl+a29+dH98b3J7epNvb4F+eGeSi4KhmZyRgoVmhoJvZ3mUiH1+hIKYiYF8jo1oeHNra2ZfYG94bV9ib3hcZGuCemBxdV9lZdTqvYsyOj6Ljn9xeYWHjYx1gpaMfpKNi35ta4SMjHV9j3+EgZSIe4J3bXWGhIOXd26IhWx1e3VmeYGDpouCj4uEfm6BdnmGfYmgk4+TlJWOjId/e5KGeH+DjIJrf3FogH55bnx8g4uEeGJ6hYJyZXJpf251cnWCnIyBgIaAdHZ/gXSCcFtugHV5jISLfIiBfol5e3JtioWShY10g3qAmIyLgHVuanaAf3RzW2dndW5XVnxTWW9kS1pycmVbSXF4b1xbW1lddX90aVpiW2hmb2NqTVdlUD1dZVxcdWVgdG9aWFRuY1lkcXlaaF1gZ21naWtpcHd9jmxpgoR/eW6AfH2CgIJ6dYKAjZOEcICLbnh+gHt7iJOKf2h6fWpze3KGenN2fX6MeXiEfXxri42Dm56Wi4GAbIx9amh+jYt6fX6DlIJ+fYqIa3VxZ2hiW2Jmcm5fYWtzYGhwiHlic3NeY2SboI9uXTZar7V0aYCIfJGGdYWVhXOOiol2b2uEgod0eYl4iHySh3l+cmZ1iH5+mG9xh39pdnluZnmHhKSGgIeMin9vgHiChICQnIqFl5OaioyFiXyQiHF7fYR7aH5saoB7emp7d4OIgXNgeIJ/cmVzZ3aDbnV8hpaSgn2DgXB4enx1gG1YcIB3dY2Dh3iIdoSJfHl0b4uCkoKHc4B+f5SJinxvbmltgYF0bVtlZHFvUFp6TltvW05bcm9kVUtzeGlXWVpaYXGBdWFeXWBnZGlpZk5ZZ01AYGNbYHVgXXVsV1dTdGBaZG9yV2pdYmhrZ21saHB3fJJraISKfXxvfn58goCBeneAf4qLg3F8h29yeIN/e4mMj4NqfXttdnh2inZ8eH+Chn+Dfn16bYSLh5ijjISDe3WKeGpsg4eQeH16gpGAgH6Lg3BycGNmXllmX3BvX2Bnb2Zqbol0YXRvW2FkanV6gL+cpqTIuHGFgnKSe3eFkoJzkIuHcnJvg3qDc3SHdId3k4d4eXBidod6gJNpcoR3Z3d1Y2p8goedgYB/jo9+c4F1h3yDlpOGe5mQl5CIgol7iYlreHl+dGd6aGt/eXNpeneBhH5oYHiJfmxrdGh8gWl2goySlX98f4BxfHd8dIBiVnh+c3SLhYJ9hHKIinl5cnGFg4+AgHp/fnePhoR3anFobIeBcW9cZmBxbElkdUtdbVVTWXNuYlFPdHhhUlhYXWFwg3NcYlxpZWVka2RRW3BJQ2NgW2NvXV14Z1RWVXZeW2VuaFZrXWBqZ2Vubmhwd3qSbWmIjHl9cnt+eYKBgXx2fYOIhoNvd4RybneCgn6Ii5N/cIB8d3h6gYx0gnh/gYGChHqAdW9+ioubnod9hXl3hXpndIWLkHl+f3uIhYR3kIBncG5fZFxYZFlscmFgYHBsa2iJbmBzaFleY25/d6naqceGh7JxiHdvjHR6hY1/eZKJf3Rzc312f29xf22Ec5OFeHRrYHmCeYmPZnKEcGh1blttfX+Qkn+AeJGTfnl8b4p4hJSOh3eZjZOQiIaFfICFbXR1fmxmdmRte3Zua3d3gIB9YWN5h3ppdnZjfnxodYePjZZ9doF3cYB7fW6BWld1f3B2hYh/gHptiod1eWx2goSFf31+en10jIJ+dGh0ZW6Kg2xyWWhdc2RGbW1LWmFXVlV4bWJQUnR2WFBWWF5gcoRvXWFjbWVkXm9jVFxxRkJlXl1lZ11bemJRVVt0W1pna2BWal5gb2Zma3FocHZ4jnRrjo11f3Z4fneBhIF7dH2DiIeDb3KAdHF1foWBiY2Le3eAeIJ7fIWHd4d8fYF9hIB7fnJ1eYuNoIyIeYh2dIJ4Xn2Fl4t4hYN0hYaEeIp7Ym5sW2JbW2BWaXNiYFtnbm9mh3JhcWVXXGJrf3zKzoe5oWptbYlrcYNxe4OJfnqQhHl4c3h0dHtqbHVig3WRgXZuZl99gnqMimVygmtqcWNYbHqEm4iBgXKWlXd/fXCLc4WNj4p0mpCSiYaLg3t5fnFwb3xkZ3BhbXhxa21xeH5+el1me4F4anZ5ZoN3aHSIjI6WfnOJa29+gnlvfV5ZdIBtdIGLfIJvcIqAcndpeIGCgYN4f3N7dYh9e3NncmFui4BrcFZpXHZbR21qTVZVXVNVe2thT1R1clBRVFdeY3WFaV1gbGpmY1pvYVhib0dBZ1xgZV5cVntdTlVkb1laamhdV2dgX3JmamhyZ3Bzd4Z4bpWLdH96d356g4h/dXJ/h4WOgnBwfHh2dnqFhYeMhnp7f3SKfX2GhIOHf35+fYZ+fHl1eHeRk59+i3yKbXV/eGOChpWGc5GKb4WFgXuEdWNuallfWlxdVGdzZGBYZHFyZ4ByYmtkVlpfan94vq57n7ZtYXOEZ3N6cXiBhXp9i353d3J1b3t2ZWpuYIZ1joBzaWFefnl5i4RmcX9oa2taVm93iaKAhH9wmZNygXp3hXCFhZWLdpiLjomFiYV9eXRyb2h4X2lsYG12a2hra3l4e3dbZ359eWZzfm2FdWV1ho6Gl4BxjWhre4R1bnZjXXJ+bHV9jHuCZ3aIfm9yaXeAeoCBdH5te3yDe3hxZmxhbYl9a2xVaV92VUppak5STmdMWHxoYU5VdWtMUFRVX2d2g2deYXFoZ2JYaV1ca2dKRGpZYmNWWVV5WU1WbWlZXWtkXFlkYl50ZmxkcWdycHWBd3CZhnZ/fnd/fYWHfXVzgoiAlIJuc3l7enRzhIaJiYN5gX51jn58hIqNg4KEe36Kg3t3fHd3mpyXeoiChml2fHtsg4OSf3KOgXGGgn+DgHBmbGZXXVtcWlNkcGReV2JydWl1b2VlYldbW2h/cG9ygHOJZGR5fGhzdXNygYN3gIJ4dnJ1bWp6cWFna2aGc42DbWZdX31we4l/aW14Z2pkVVdyb4ylfIR7dpaRdH10fn1wf36UiHmbfomHg4eDfXVwcWxndFtrZ15sdGRoZml6b3xyWmiBd3VpcYF4gndid4aLfJWCcI1rbnuDcmd0ZmFve2dzeIp8fmN3hHdrbHJ2fHJ8e3V/aH+AgHl3b2RmYm2Fe2xqVWhhb1JKaGlPS05vR156ZmFNVXRkSk9TV2Frd39mXWd0aWZgV2RXYnBcS0tqV2NhVVRVclZLWHVkWV5rYFtaY2RfdmZtYnBpdG9yf3V0mYJ3f4B3f3+GhHp9dYKEfpeFbXJ0fHp1cYSFj4GAeot2c5B/fIGVjYCFhH19jIZ6foF3e6OlinmHhYNrdHt6dYKAi3luhHN5hH2Cg3ZvamhlVl1bWllTYm5kW1hhc3tqaGxpYGJYXlppf2lrcIBnbGBneXdpcnNzbIOAeX57dXRtemdpeWpfZW5ogHaPhGZlWGJ3an+He29qcGdmXVRYb2eNp3aAenyQjnp2cYBxdXh8k4N7l3aGhICGiHZqcnVnZ25bbGRdbXJfaGFqeWh8bVtug3N1a3CBfnp4YXeGhXmRhnSJcnF6gXNjcmpdcHhlcnSIfHljdIFxZ2p6dXNtenl2eWWEfIB5d3FkZGNte3xqalRnYWVTSmtmT0dRakVheGZhTVNyXUpOVVllbHh7Zl9ucWpkXVZhVW5uVkpTZ1dlXVhNVWtUSVt4Xltfa11dWmJlX3lobGFvb3ZucHh1eph+d3+BeYCAh4Z6eXqDfoGTg3F0dH96d3SEiJF9gXyRa3KVgHuCn4V+h32AfoaCgIl7d4Srnn96h4eCanKAeXWAfoB0boZufYBzioBqb21kZFlfWllZVGJqZ1taX3WCaV5tbFxhV1tba4FlcXR9aWlcanZ0ZnN2cWuDen18eHVybHlmaXdmXWRyZ3l3koBiYlRlcGiChXh4Z2lqYVdWWWdijqdvfneAi457cXJ/aXtxfY9/eZFzhX6AgIZuZHZyZGdnXGphXW9vW2hfbXVle2hedYFvcmtyfH51dmJ1hox7iYiCgXlzdoB2YnFuW3J0Y3FyhXx1ZXOAbWFte3Franx7dnNnh3d7enZxZWJkbXJ9aWpTZ11cVEtxYVBGVmBHY3ZmYUtTb1hLTVhYaGt2e2VlbnFnZFpYXVh3ZVRKXGJXZ1dZSFdkT0dheFpdX2xbXlxhY15+aWpgb3R4bXBvdoOYenKAgHx/iYyGfXZ2hniHjHxzdXWCeXt6goyOfH6FiWlzloF6ipx+foV6gXt/fYaJc3GPrYt7e4aPfGVxh3lzfHp1cm6FbHt+bI96Y3BvYmVdZVZZWVZjZmtfXVxzhWhYcG5aXlhaW2t6YnB3dmxhWWxycmZ0dW9rg3d+f3h2bW5zZGh0ZVtndGV1dpF5XlxSZmdrg4J0fmJkalxUV11hYo6kaXhzg4aReW5xfGp6b3+JfneLdIJ5fXmAaWR2bWBmX15pX110a1lmXW9vY3plXHh9bG9vcHh5dHVlc4STgIeEinx4cHN+dGN4ZVxxcWJxcoF8dGdzgWVfbndqZWh7fXVvcIN2dH1zcmJfZm1ufGRoU2ZXWFNNdl5QSVlXSGJ0Y2FJU2xTSk5aV2pscnxkbW1zY2FaWlthd1xTS2NdV2hTVkZYX01GaXVYXmBsW1teYWJdhGloYW54eW1wa3aAkHltgn6AgZOIhIF2dIl0jIZ0cXZ1gnh9fX6MkH9+lH5wd5WDfZmSeYCAeHp9f3SIhHRwmaB6en6HlHdjdId4cnd0a3Rvfmt4fHCRc15wb2BnYmxUWlpXaGNtZlxccYllU3FuW1pYV19rdmRpdWppXllscm9rc3NyaIR8fn97dm5ta2RpcGNba3JkdHaOc1pWVGVhcoB/coJdYmNdU1lgW2OQn2VxcYWEknVsbHtvcHJ9f35zgniBdHt6emRldWddYllgZ1tedmhXYl1waWF4YVx8dmprcm94dHN1aXGCloSHgIV3dGtyfm9neFhdbG5jcnOAenRncH5cYHFzY2Frc4BtbnZ/c3J4a3BhXGVsbHpgZlJlVFdRT3VaUE9YUUhjc2FgRlVqUUpRWlZra2t9Zm5vcmJbWlhZbHFXUlBmVlZoU1RFWVtOSHF0WF9jbGJYYGBgXYtqY2RtenhscGl1eYd7a4N9gISafIOEeXyIbo+Hcm52en10goJ8i4+Cg5h0eIGThYGeiXWBgIJ0f4JxiIN2cKGWc3mFioZ6ZHaKbm56bmZ4cHlrcnZzjWtedG5hZ2VrUl1bVWdhbGtaXHGMZE9vbVxWV1RmaXNoYnRlZFxYbXRsb3V0eGqFfH97h3aPc2Nka25gXG1tY3N4h2tZVFZjZHh9fXGGXWRfY1RaX1hilZVjbXCDhYp0a2l8cGd1eXZ+bXt1dnB7f3VfZnNjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXRxdHF1d2tthZSCiX2HcnNocH9xdHBUXGdrZnF0gHZzY213VmNzbFxgcGh/Z254fnNzc2ptYVpkaWp3XmVTY1RVUFNsVlBWU1BHZHJfYEVXaU9JWFRXbmllfWlseGxiV11VW3RkU1JXaFFYZlRTR1lZT013dVpfZWtpWWFgXV6ObmJma3l2bm9pdXaAf2yDgH2HmHuAh4CJf2uTiHJmdIB7dYCDfYmPf4yTcnyKkYSHn4Z7f4aNdIGGc36Cdm6ki3KAjIp2dmx5i2Bke3BmeXN4bG1yd4NnZHtsYmZnaFNfXlVnX2tvW15ujWhNaWxgVVZTbmZza2V4ZWRcWG9za3F6d3Jrh3p/dpx6eWthZWxtXmBuamVxeH5nWVZYYGx4fHtwhF9jXmdWWF9XY5uIYmtwgYd9eGxsem5deHNufWt2dG9wfIFzWGpuX1lcVWFiV2RwYlNfYmliYmxaYX5sZmx0dm9td3dsaYaNgIp8iW5yZ3F+bnRuZFthaWlvdIB0cl9pbVNlcmVWZHBkfGVzeH13a3Bta2BZYWZndFxkVWBVUk5XZFFOW05PSGRvXGJGWWlNSl9LWW1kYHlpbn5lYFVfVF11XFNSYGZOXGBVUklbWFBZdHVdX2VraFhiYFpejXFjZ2p4cXNuaHZze4NygoN6iI5+fImHjXlukIl0a3OBdH9/iIWHkoSWj3l9jI+HkZuEgHyNhXOAgXN0eHNvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fn5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY2NjY2Njo2NjY2NjY2NjY2NjY2Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6OjY2MjIyMjIyNjY2NjY2NjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmOAvru7u7u9s21mZ2dnZ2WQoaCgoKCjgGNnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fW37IxMTExMa7Z15fX19fXZClo6SkpKd8XF9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJjJKRkZGRkZCJiImJiYmJjo+QkI+Pj4uIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk4+IjYyOj4iPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6Mi4uLi4uLi42NjY6Ojo6NjIyMjIyMjI2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCRioeOi4eNh4qQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJGKhIyLho+GjI+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+Nh42GjImJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4WHh4aIhomPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2Ki4yJjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn19f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn9/f35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhYaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Qjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX1+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f39+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f4B/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX1+fn5+fX5/f35/f39/f4CAf4B/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39+fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f35+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+BgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUlBRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3ent8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9PT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTk1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NS09STllwcHJ3eHd3dHR0d3p8fn1+fn5+fn5+fn5/f4CBgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT09OUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFFUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUFBQEJBPzs+PD4/Pzw4OTg7OzpAOjs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4ODo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1c3F0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7PD9AQUJAPTw5PD08OTc5Ojo5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+Af4CAgICBf4GBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozw6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0JDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUA9PD07Pj06Ojo8Ojg5ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkVISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dnd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/Pz48PkA/PT09Pz09PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxwcHBxdHV2eXx8fXx8f359fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQ0RDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHx8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjs+PD89PDo+PT9CQkRAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHREVHRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRWVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFDREI/PUE/QURFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gIGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRklISUdISElHRkJERkREQ0FVdIeJh4eGiIJXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent+fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4CAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLS0tKS01KS0hIRkZHRkVQbISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz8/REZHREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9f359fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTUxLTUxJRkpVbIGGhYSEhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lIS0xPTk5RTlFecoGFhISFhYaHh4iIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7PDw+QTs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BCRkhLSExLTlRne4SEg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc4ODo7NzY4ODk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn9+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSERCQDU3ODg9OjxEQkRGRkRWeISEgoKDg4WJioqJiYqKioqLiYqKgUg2NzY0Njg4NzQ1Nzg0Njc3OTk3NzY3NjU6Ojs6Ojw4OTk5OTg3Nzo6Ojg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT1BRV2txcnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBPzw6NTc5ODk3OkE5PEQ/UH2Eg4OEhISGiYqKiIeIiIiKioyKiYmNej46ODg7PD0+OTo7PDg5Ozk6Ozo6OTs6Oj49PT87Ozs9Oj48Ojw7PDw9Ozo6PDg6Ojs6OTk5PD88PUFCRElKTEtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj87Ozw6ODk5ODk5OTk6Pj0/P0N2hIOEhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVCQUFCPkBDQUA/PT4+QD8/P0A/QD09P0I/QUE/QT89QUFAPz9BPD48Ozo7Ojk7Pz06Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODk7OTo6PDw6Ojo8Oz0+QD89YYWDhISFhYaJiYiHhoaGh4iJiouLioqKi4mLXj5ER0lLSkpGR0dERkhHRUNAQENFQ0NBQkNCP0BESEVDRURFRUFGRUZERkZEQEI+PUA+PT9APj4+Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3OT06PDs+PT4+Oz48Pz9DPkp+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqHV0dMTE1LTklJS0hJSkpJRUNERkdGRENGR0VCSElLR0hHRkdHRUtKTElKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgH9/gIB/T0E+PT9ETEtAQkJBOTc7Pjs8Oj0/Pj88Pz5CQUU/aISChYWHh4iIiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtGREdISElFRUlHRkVMTE1JSkdHSElKTk1PTUxOS0hGR0dFRUNGRkZGREVISEZDQT9ATG1wdHV2eHl5eXx8fH19fn5/f359fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw6Ozw6PT88PT0/QENCSFN+g4SEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMTExJSEhGSklESkhHS0pJSkhIR0tMTkxMSEhJSk1QTk9OTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVb3F1d3h5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6Ozc8PTo8Pzw9PUBCQ0RMbYSDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIuLi4teUlJQTU5NS0pHRkNISkdMSkdLT0xLS0pMTUxPUE5ISUtMT1FRUFFPT0pJSkpNS0xGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl7ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgICAfn9/VUVDRUVHR0VEOz9BOz08OD89PT5ARUQ+Q0RDRkp1hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtLRUZGS09OT1dWUVBPUlNSTVNUT01TTFBTVVdSU1JQTEpNTU1MTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz08QT9BQURUS0JISUZJTHmGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBLOzpRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFFRS0tLR0hKSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0ZGRT8/QUBFQUNGRENES1ZQSlBQTk9QeYaFh4aFhoeIiIiIiIiIiIiIiIiJiJScjIqKjH1hiouLh2xbZFU6WFhYU1E+QFZVWVxkYFZZYnJeXVZdWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01LTEpJSUxNS09NVHB0dnh5eHd5eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SExJTVBLSUpPU1JRVFZVVlR1hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JWVlRaWnWDWVV9kGFcWF1eV0lWXl5bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJidHN2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktKSUlGQkRAQTpPUVFXWFBQUFFSU1JWV1dXV2yBgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaWlhcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpaUlNRT1FSUVVSVVNWXnV4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWVdXV3prWFpcXF5TUFBPSU5PV1ZYWlplcXR3dnR0dnh5eXt7fH19fX5/fX59fn19fn9/f3+AgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU09PUU9RVlFTUlJUY2R2gIOCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JVUk1PWVJOT1FTVVVNUVNSUE5MS0hDSUdSU1RZXW1ydnd1dHR3e3p6e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f4CAfnt2c3d9fn5kdX1pcXRgZF1dW1lVUUxITElhbJJ0UFFTTVFSUFNbUlNSUVJVVWJze3x+gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5CQkNDQT9EUENDQEM+QkhHVkBITk1HXWlRSEZPRkVGRkhHSEJDSEdISkdEQUFDQE5QTVJkdHV2dXR0dnl8e3p7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVJQVVlTVVFRVFJPVmBrbHN2ent4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojo+QD8+Pj5qUEthRUZISUVCP0dMTUdNUVVKQkU/Pz09PD09Pz0/QUNCPz48PUI+SU1GVW91dXZzdHZ4e3x6fHt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKT1BOS0xRUlFUVlVXUVFXVlBYW2JdYWdtbWxuamhgbnJpbWxxdXt6fXt4enx8eHd4ZEJAQEE8OkJDQUFDQVtcT3tOT09OS0xNT09QTEtMV05JR0FBPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1dnV2d3l8fHx9fHx9fH59fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT09eXFpJR09RUU9NUFFOUVJUVlhTUllUTllaW1dZXF9eX2VfXV5xd2teYGdrd29vbGpvbW5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FWUE1JREY+OTk2NTg2OTc5OjM2NTc5NTxCPWZ0dXd4d3p5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LU1RTUFFVT0xSU1RXWFNUWFFMWFlZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRUNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnJ1eXl6e3t9fX19fHt9fX1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdTW2ZKTFBSUk9NTU5NTUxKRVBQVVlTVE9KTk9VU1NcVlJVU1JOTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVhxcXR4enp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFdZWVlSVU9JR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlAUT1jYFFTUVBNUFBPTk1MUE5UUlBSTElMS09SUFFSUlRRUk9MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVlFTRkZBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjRAPmpvYVJSUUBHVFBPUE9RTlFPUE9MSkxMT1BOTVBRUU5RT0pMTU1LR0VFQ0I7PT08OT1HNjY3NkVucXV3ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVVlZVlFRUU9APjs9P0BCQUM/QkVEQUBHSEdIRkZISk1MREdDT1JDOEVNU11nU1FTQUdVT09RUFBNTU5MSkxLTE5PT1FMT05NSUxLSUtLTEtHRkZFRDxBQT47QEU7PDg5VHJzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E/PD1BQEI9PUVIRkRGRklHSkpARkFBQEZHRElPSFFSYVxRUFJPU09PT0xNT01LTUxNT05bVktNUU9HSUhDSUtMTEtGRkZFP0JEPj1CRz9CP0BkcnV3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRUpFQ0hHSUdJRUJCPz48QkFAR0pFTU9iZVBNT01WS0xOS0xNTUxMS05OU2RNSkxSSUlJRkJKS0xNTkpHSUZCQkJAP0VGRUhETG9wdnp5eXp7enx6d3N4dHh8fHl6bnFxbW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPSEtFP0I9OTk6Oj9CPzxBQkFBREVHS0ZESUlHR0hDQz9CPj9AQT1DRURMTVFUTEpJTVRGSUlKTElKS0lJTE1PUFJQS0dDS0hDQ0tKTE5PTklKSUdEQ0NESUpNTElac254eXh6ent5fHZycHVydHl5dnhqcW9rbGxudHRtc3Z7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0NGR0hHSktJSkxER0I8Pj06Ojo7QUI/PUJCQ0NIRUpMSkVJSUZHSENDO0FAQj5AP0JERElNT0dISkdIS0RISUtNSEpMSElKTEpNXVJISUROR0JFTEtOTlBOS01KS0ZHR0pNTlJOTWNuand2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnp0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGhlcEZKQ0ZFRkRFRUZFR0NDQD08PTo7OjtBREA/QkNFRUlGSkpMRklJR0ZGREI6QUNDPj9DQ0NFR0tNSEpOSERIRUlMTk1ISUxHRkZJSUxOS0lIRU9JQ0dOTU9NUE5OT01LSUhJT1NRUk5TZ2dmcm9zeHZ7enxsaGpvZWtwbXNxZ25saGlrbHRtb3V0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZl9wR0pDRUVEQkJBRUBEQj4/Pjs7Oz47PT9DQj9BQ0ZHSkdKSUxIR0dHRkVDPz1ERUI+QUNCQ0VHSElHTVBJRUZHS05PS0ZISUZFQ0RJSUhLSUdIUEtESk5MUE5PTk9QT0pKSU1SVVVST1hlYWFtZnByb3J5emdlaGhjaWxmcWxmbG1naWtsc21wd3V0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFRkJBQEFEPEJBPkE9Ojo9Pzs+P0FCP0BCRUdKRkpHSUdGRkZEQ0JBQUVGQ0JCQkRFRUdHSEZMUExITkpKTEtJRkhFRkVDQ0hISEtKR0tSTkNPT05RUE9PTk9QS0tLUFVXVlVUWWBfXWlhbmluaHJzYmVmZmRoaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxc2trc01HR0VHQUJAREU8QUFAQzw4Oj0+OkA9QENAQEFERklFSEZGSEZFRURDRUJESUZDR0VBRUdFRkZHRUlNS0hRTUpLSEhJRUZISEVDSUlJS01LUFNORFJTUlFTTlBNT1BNTE5TV1ZYWVdZXltdZGBpY2ppZ2tfZGVmY2hnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJFRTxAQ0JEPDc6Pj47PjtAQj4/P0NFR0RGRERHRUNFQ0RGRkZKRUVJR0JHSEZHRkVDRkpKR01KTEtISktGSUhKSEVLS0xMTk9SVE9IVFVUUVRQUk1OUk9NUVdaVlpZV1teWlhhYGBgXmhlY2BkZWdnamhoamdobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURCQ0hFPUBFQkQ9ODo+Pj08PEJCPUA+QUJGQ0VDQ0dDQ0RERkdHR0lGSEtIQ0lIR0lHRkRIS0lHSkhNS0pLTEhLSk1LSU5MT05PUlVWT0xWVlRRVFJSTE9RUE9UWlpZXFpaXWBfXV9jX1xiZGxjYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUxJSkhKRkJER0U9QUdEREA6PD5APz4/Q0I8QD5BQUZDRURER0RFREZGSEhGSEdJS0pFSkhIS0hFRkxISEhKR0xLTExMSU1KTU5NT0xQUFJVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYF9hYGJmXWRgZmhgZWlqZHNzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3c2d0cmtxcmtyd3B3SkpLSUtHQkVERTxBRkREQjs/P0FAQEFEQUBCPkFDSEJFREZHRUhERkVJSEZJSEpNSEhKSklMSkVKS0hJSkpHS0pMTElJTUtNTk5PTE9RUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFiYGRkZWJkaWJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV1c3Bzd3R1dXd2dXV1ZnFza3BxanJ2cHdKTExLTEdDQ0FFPEBFRURDPUFBQ0JCQ0VBQ0RBQUVHQ0dHSEZFSUVDR0lHR0pGSUxISUpNS01MRktJSEtLTlFLUlBMUkxKTU1OUFBQVU9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5hY19hZmNhYmhuaGJpaGhteHZtaGlub3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnNxcXV2dXN3eXd1dHVjbXRrb3BqcXRxd0xNS0xMR0RBQEQ+PkRFRkM/Q0FFRERGQ0JFR0NCSEZCSElJR0hKRkRLSkdISkhJS0dKSk5LTkxJTEhLTEpaZkpkW0psUkdOTV9uVWxzW3FwYndjUlBidnVodWNhdmFYbnFiZHZpbXpmXGx0YGxrVmB3dmlqZ2hmZ2xtam1vam1vc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cnFzdHZ2dXV5d3V0dGBrdGtwcGtxc3J5TE5KSkpGQj9AQz88RERGRENDQ0VFREZCRUZHRERKRUVJS0tJS0xHR05KSEpLR0tKSUpKTkxNTUxMSU1NTFtzYmRvXWxsVUxOZXJdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9ccHZncE9Mcnl2a2Fha2VlbHhta3Zsbm9zcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd5dnR0Ym11a3BwbHJycntLTElIR0VEP0FBPz1CRUZCRUNFREVFREJISEdEREtIR0tNTUpMTEZKTkhKS0pJS0pKSUpNTU5NTU1LTk1NW3Jwb25wcGtqTE9QbVhOaWJ0cnBhbW92XFlsUFttbVpxbWtwbHh4dHNpcF1gc2xxa1V1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dFRURCQUI9Pz9FR0JHREhFRURCRklISEVHS0pHTUxOSkxNR0xOSU1LSElNSUpJSkpOT05OTUxOTUxcaGR1XWxxVmtNT1FuVVprXmtsdmFsZHRUZWNObFlsXHRvbGpseGp3dWhvXWBza2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cnNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1GSUVFRENBQjxCQEJGQ0dGS0dFQ0NISkhIRklMS0ZNS0tSUkxITU1JTkpJR01HSkpISU5PTU5MSk1NSlp0cHBvcXFsak9RUm5Zc2tnb29xcW9tdF5uWGF0X25vcG9xc29vdXN0dGpbXnRjd3hyam56aGFhY2ZhYmptdHVwc3R2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXVwbnNzdnRJS0hKQ0RERUBAPUNDQUZDSElNSEZDRkpMSUdGSk1MRk9KSldSS0dLSkpOSUhJS0lLSklJS0xNTUxJS0tKU2tiWWleXmlicnJaX1lqb19lZVVrX2NbYWFRYG1oXGpcbmlqZFtvZWRwXFpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRkpERUNGQUBBRURDRkJISkxHRkNGS0xJRUZKT0xJT0pMW1FKRkhIS01JSEpJS0tJSElHS0tLS0dISklLS0xKSUpMTVNbXVRQVU1RT05PT1ZRT1BRTk9RSkpOUFFkcWlUWVZbW1xVWVtdWF1cXGNmYWFmYmNmX15ma21obXR4cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzSENFR0ZGQEVDP0NHREZHQ0lLTEdGREdKTEhER0lQS0xPS0xXTUlGRUdJSkhJSkhMSklHSEhKSEhIRUVLSEhKTktIT1xWXU9dXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZFxhWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRQQkNETE1BQ0NCRElFR0dGS0pLR0VFSkpKRkVISFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdGSkhFRkdFRUpGQklMSUpUX1lfWGBhW2BVWFpUXV5aX1JZXFBeXFlOX1xeU1teZF5aXWBjX1lfYltgXltVWVlaX15jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN1eXp6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURDQUNGR0VHR0lKSklJREZLS0tFRklJTkpOTEhMTkdIRj5IR0xJS0tKS0tJR0VJRkRERUJGSkQ/SUtITlpiWV5eYV9SVFNXX19cXVleUVlcTVZfV0tRWVtRW19iYV1eY2FgYmFiY2NlWlJaV1ddWl1kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WVFKRkNHRUJESEhGR0hJRkdKR0hGSEtJS0RESkpNTUxMSEpKSElHQEdGTkpLS01LS0tJR0lFRUBEQUhJQT5ISUZPXWBaW2RdX1RRUlhdXFxcX1tLV1xMUlxZSU1eUVFdX2JjY2NjYlxkYmFkY2ZYUldVVFxYW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoaGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0VLSUZHR0lHR0pGRkZJTEpORUNKSkxOSkxJS0tJSUdDSEhRTUtLT01LS0lISEZFQEVCSEhBQEZFQ1NdWV5YX1hfW11VWFhQXVxRS0pWXlheW11WWmFSUl9fYmJgYGJiX2NiYWRkYVhQUlJTXFNcXV1eXl9fX2RpZ2xrbm5we3t8fnuAgoOEhYWFhYWFhISFg4SFh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTEpMTEpJR0RIS1FPTUxQTU1LTElKREVBRUNIRkFBRkNBVVVFXFReU1ZgWE5UVU1ZWkxKS1RgYVtfWF9eYl1PWWJcYGBeYmNhXWJhV2BfVVFQUVJZU15cW11dXmBiZmZmbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJU2NRRVdfSUdHSERGTUpQUEZJSUpLTkxMS01MSkpHRUpOUVFOTlBNTkxOSUxCRUFDQ0ZDQkBDRD9MR0NMTE9PT01GTUZGSElHRkxLTU9QSUxPUFBTUExRVFNVWVhXWVdXY1ZOUlRQUVBPUVZUXFlZW11cYWFlZmRoZGxtcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtOXk1ISFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS1BTU05QUE5PT09JTEZhRUReTERmYkNMWkdeXHNtT0xWbllLQ09fVGtWZ0ldV1VeRExRVUxNU1ZRU1RYVlRYVFRcVE9lWmhoZVpVa1RYV1VbXFtgYGFiYmNhZ2lnbmxocnp9fX6Bg4SEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFTFBUSktHYFRISk9KSU9NUlFLTUtMT1JVUk9QSkxOR0lNUVtZT1BQTlBRUEpLUX9RSXxZWXJzV1BtR3Fub2FWUXFxdE9CanNucXNwU29fW25YXVZcWFVraFVdVmNZYFlaXlVVV39pdHV1YGF2X1liXFxmW19hYWFiX2FjZ21vbWBwd3R4gYGCg4OCf31+gHZ4em12fnR4fYB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxLT0hMUlhXUU5PT01RVE5PUVBMTE9ITlBTW1pUUVJPUFBRTElaeF1UeGRoWFJTUHZmdGxwYm5ma1JyTkx3bWpycHNycXJwb2+AXWV6dXhxcXpxfnJ9a3V9YVJofGVzc3Bzc3x9cH54b39yYGBgYmJbYmFobG5rYmxmZ213foGAg357eHeAdHZ6aXF+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRE1NSEtLSEtQT01OSk5WXllVTFFTTllZTFNTU05MUElSUlRZV1dRVFBQUFJMSGd4bGN4cW1aSktUeXB1bXVibnZQZGRIZXZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGhuWHV1anZ1cYFhc2h9aWx4fG9fX19jYlxfZGVnamplZ2JjZGxscHBzdHNzc3lxcnhibXRncnl7c3N1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFFIS0xKTFFPT09NUFlgWlhLVFdQYV5SVlFZU01QSlNUVlhXV1BVUE9OUkpMcm91dXF1cWNoYFZuS3FwXkdoeVd2VEtoeH13YHl7c21gXW1vZFNncnVubXlwd2t1c3RxbG1cc356a215fGx1bnxrcXd1eF5fX2JfXmBlZGlnaGZlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUUpNTkxMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRXV1lXT1NPT05RSVJtSGl3S2BkdnZUVmxObmx7cmFqZ391VEtWa2d8bG1sd15acHp7X2B6c2Nyb3hxZ2N8aXJ7XVRLbF92dWxqdnx7bn95bHxwXV5eYltfY2VlZ2ZlZWNbY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtnbG1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTExTU1JPU1JYUldUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FLSFFOUFVMS0tSU1JRUk9WVVFRT1JSWFhQTU9VVFdYWFpaVFFSV1tXV1dbT1JUV1dYUV1YVlxVVE9YUldYWFlaYFxoc19cW1lcXV9jWl9kZGVnZGRjYlpkYmdmZm1ubXVmZmdjYGZeXWdgZGxnZWdraHB6aGdna3VqaGhpbFBJS0tMTUtKVFJOUlFQTFZVVFBUVVhVWlZSW11WVVRXVVlYT09MTldUUE5VU05QTkxRUEtJUVFLUU1KSk9RVFFQUVNSSkhNT1BRUVBQUFNVUlhXXFdSUlBRVVVWU1pRTlJSV1RTWFVTWFRTUVVUVVZZWVheWl9hXVxbWlxcYGNcXmJjZGdlZWVjWmBhZGFiaGhqbmNhZF5fY11aY1xibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVJNWFdVVFZYV1daVlNcYFZXVllVWFRRUEtPWFNQTlVQTVFPTFNQTU9VU05RTk1OUVNQVFBRVFROS01PUlRUUVFRVVZTWFpbWVJVUlRYV1ZZXFNPU1RXVFNZVFZYVFJRV1ZWWFxaXGBdVllfXV5dXF1hYV5bYmNjaGdmZGNYYGBiXmBoZWdlYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMUFVQUFRRT1FaWVhXWVtaWFlWXWpkVlhZWldWU1RPS09WVFBPVFBQUU9NUlFPUlhUUVFPTU9SVE1XUVNUVU9NTlFUVlVSUlJUV1VaXVxaVlZRUldYVVtbVlBTVVVUVVhTV1hUUlFYVlZbX1tfYF9WX11eYF1cYF9fX1pjY2VoaGVlYlliYGJeX2ZkY2BiXVxcXFxZWltYW2JcXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVlxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVdTTU1ST1JST0xQU1JVW1VUUFBMT1dVUFZSU1JYTU9QUlVYVVRUUlRYWFteXVxbVlJPVVdVW1pWUVNWVFVXVVNYWlNSUVpXV11fW2BgYFZiXGBhXWBiX1xgXWNhY2hpZWdhWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcWmBeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVVU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5QV1NOUVFQUlRSTFJUVFlbV1VPUk5SV1VSUlRRUllPUVNUVltWVlZTVlpYXV5cXF5WU05UVlZbW1VRVFVVV1hSU1lbU1JSXFhaXl9dYmFgV2JbY2JeYWNeXGJhYl9kZ2llZ15cZGBhYGFjZF9iX1paXltcW1hYWVdXWlpaYV1dW11cXFpdYFdbW1pQT09PWVBVVVNSWFJUUFtdXl1cYFxgVVxcaGpyfXNsaFxVWVdRT1NbU1JRU1JVVVVLUldWWlpaU09TUVVVVFJOVlFSWlJUVVRYXVdYWFNXXFheXVlaXVVVTlZWV15aV1FUVVdYWFNWWVtUUlZdWV1eYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVnX15kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JbUFpVVldWVFRUXl5gX15iXGBVXV5ia3l1bX5sW1VaVlFRVFxUVFRVVFZZV0xSWlZcW1xSUFVTV1VVUk9XUVNXU1dVVlteWFtZVVpeWF9eWVxZUldSWVlZX1lZUlRVWVlZVVdZW1VUWl1dXmFiYGVkXV5dXWVhYmZkXl5kY2BcZ2VoZmViYGVhX2FhYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lRXVVXWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2lZWVpUVlRWXFhXV1ZXV11YT1VcWV5dXVRTWFJWVVNRU1dRU1ZUWFhYXl5YXVtWXV9YX19YXFZRWFRaWlphWFtUVldaWVpXWFlZV1ZdX2BfZGNiZmVeYlxgZmJkZmRfYGRiYVtmY2hmZGZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtaWlpdX11UWV1VTlRaVlRcVVdXWVdWXGBhYmNhY19fVltgZGFfenVwaVpcWlZYVlhbWllbWVhZYFZPVV1bYGFcVFVZUFRWVFJVVVFTVVdbW1xfX1pfXFZfX1ldXlldVlJYV1pZXGFZXVVWWltaW1paWFpYWV9fYGBkY2RlZWNkWmJmY2dmZV5hYmBjXWJjaWVkZ2BoXmJiY2FhYF5fWVRbWlpbW1hcWFhcW1pbV1daWFhcW1xgXVZdXVNPVlpWVlpWWVZYV1heYGJhZGFkYV5ZWWFkYmBrZmhfXV1bV1hZWlxcXF9bWltiVlNXXl1hY1xTVllQVlVVVVVVU1VUWF1dX2BgXWFdV2FeW15cW15YVVhXW1pfX1peV1hcXFxdXVtaXFdaX2FeYGRkZWZmZ2NZY2ZlaGdkXmNgX2VjXWZpZGVpYGdeY2JjYWFgX19cWFlaWVpZWFpYV1tbWltXWFpUWl1cW2BcVV5iTVJXWldXWllbXFhXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXV1YWFxbXV1fX1xaXWNYWVhdYGNkX1JYWVBXVVdXV1ZWV1ZdXV5hYmFfYl5ZYV1dXlldXVlYVVZbW2BeXF9ZWV5dXl5gXFpaWVtfYl9jZmRmZ2ZoY1plZmdpZ2NfY15hZmVaaWljZmljZl9iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdZVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhYXFxfXWBfXVtgZFxcWFpiZWNhUlxZT1hWWFlYWVdZWmBeYWJjYGFjX1xiXV9dW15dWVlUWF1cX19eX1taXl5gYmJbW1dbXWBiYmRmZGdmZmhlXWVnaGlmY2FiW2NnYFxpaWNoaWZlYGJiY2FfYF9dXVxZXFlYV1hZWVdcW1pXVlhQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYmBjYmJdXVtaV1hqcWBcYF9dXGFjX15ZWWNlZGFUX1pRWVdbXFtbWVtbY2BjY2NgYmRhYGNeYFxeXl5ZWFVbXlxcYWFfXVtgYWJmYl5bU1xfYGNkZGZlZ2ZmZ2ZfZmdoaGdkZGBbZWdeYWhoY2loZmNgYmFjYl9fX11dW1pbWVhYWFZaVlxbWlZWVk1YWFxnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl6e3t6ent6enp6enp6ent8fHx8e3x7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXp6ent7enp6enp6enp6e319fX18fXx6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09PPxMXFxcXFx9LU1NTT09haJSsrKyoii9vS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk5eDU1NTU1NTW4+Xl5eXl61QTGxsbGxCP7+Xl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5enp5endvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4ODg4KCg4ODgoOEhISEhIOEd3Nzc3NzcnyFhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnl8enp5eX15eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5eXl5eXl5eXl5eXl5eXl8fX19fX19e3p6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2en16ent5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fnp5fXh8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3h5fXl8ent6d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eHp6enx8fH17fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3l6enl7eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHl5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veHl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qKi4eHh4SDgoGBgYGBgYGCgYKCgYGBgIGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHg4WCgYGBgYGBgYKBgoKBgYGAgYKBgYGCgoKCgoCAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uHjYmIiYWEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgYGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYGCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoKBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGAgYKBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fX18fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIjIuIioaGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjIiGh4mMi4uKhoWDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39+fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioeIio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSkpCLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoGCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCgoKHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCg4SDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYKDgYCCg4GChYWFhYaGh4aGhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIGCgoKBgYKCgYF/gIGDgYCAgH+AgoKCg4OCgoGDg4OEg4OCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJGPi4mHgoKCgoKCgYGBgYKCgoKBgYGBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDgoOEhYSEhYWEg4KEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiIiHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgoCAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoKBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eHh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKDgoKDhIKDhIWFhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDhIOFg4GBg4KDhYWDg4OEg4SDg4WEhYSEhIGBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoGCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYGAgYGAgIKBgoKCgYKCgoGAgoKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGBgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoaGhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/gYGBgYOAgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOBgYKCg4ODhIKDg4OCgICAgoKCg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhYSCgoKDgoKEgoGChoWDhIODhISEhoWEhIWCf319fX6ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMi4iFhoWFgoKBgYKDg4ODgoOCgYGCg4ODgoKCgYCBgICAgICAgIB/gICAgIWFhoWFhoeHhoWFhYSEhYWEhISEhIOEg4ODhIWDgoOEhYWGhYaGhYaHh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eFhYeFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4aGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4OEhISFhIOCgoODhIODgoOFhIWHiIWDgoB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHiIaGhYSDhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH+AgIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OChISEhIWEgYCBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4ODg4SJioeHhIWFhIODhYOFhIODgoGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoaEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoODhYmKiYeFh4WEhYWEg4WEg4KCgoKCg4F+fX5+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJh4iGiIeHiYiEg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDhISCgYGBgYGDg4SDhJGSkY6PjYuHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWGiIuKhoWGhIKGhoKAg4ODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4OEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhYWEh4iFg4GAgIF/fn2Cg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIGDgoCAgICBgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fnx8f4ODgoOCg4F9fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF+fX1/gIF/f35/gIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCBf3x9fX59fX6AgH59fn57fX6Cg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gIB/fn9+fn58fn9+f4B/fn9/gH+BgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36AfX1/gYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7f39+f39/fn1+f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39/f36AgH9+gH9/fn5+f39+fn99fHx9hZKSjYyLioiJiISFhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgIB/f36AgYSDgoGBg4SEg4SAgYGAgYCBgIGCgoOBgIF+gIKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+BgH+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf3+Af4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f3+Af4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDg4OCgoKBgoF+fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKChIOAgYOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f4CAgICAgICBgX9+fX5+f39/foOGh4eIgoaEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgYOCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf39/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCCg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgYB/f359f35/gX+AgoGFhYWGhoeHhoeHiIaHh4eGh4eHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHiIeFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICAgICAf39/f3+AgICAgICBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fHx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEgoGDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiomKh4WGhYODgoGCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoOEg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gHp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjYuMjI6KiYmGhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGDg4KDgoKBgICAf4F+f35+fXx8fHx8fHx8fHx8fHx8fX18fH5+ioJ7ent6eHp7enx9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH59e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42OjYiHiIaFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3t6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX18fXx8fYB/gIB+gH5+gZSRi4yMjY+KhoaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4d/fXx+gICBgH9/fn19fX19enx9f39/gH1/foCMkY2MjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYCAgYGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+ChIaGhX9/hYF+f4CAf4B+fn9+f4CAf4CAf399fHx8fX59fH19fX19fXx+fH18e318fHp7ent9fX+GhIKAgIF9fn1+f32LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn18fn9/fX6Afn5+hJKMjIuOjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAe359fH5+gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fYGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4uKioyLioiEhIWDhIODg4KCgoKCgoKCgYGBgIKCgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH9+f399fn5/f36Af39/f39/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBf4CAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4aChJCNi4qJioaHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/gIKCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn59f358fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJiomLiYWIkIyKiIiGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4OAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH18fX19fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4eLi4uKiYyQjYyJh4aFhIOCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5/f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGBgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SChIiJioiJjY+MioeIhYSEg4GCgoKCg4KBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXl8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX19fn1+f319fXt8fX58fHt8fXp6eXl6eXt7fn6AgYOHhIiNjImJhYWEhIOCgoKCgoKCgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH6CgIGCgoCAgYCBgYCAgYKCgoKGhYSBgYGBgYOBf4CChIF/foGAfX6Bfn1/f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIN/iIyJiYeFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGEgX5+gIB9foB9fX5+gIB+gX5/gH9/f4B/fX5/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyIiYeHhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3t6fHx7dnt0d39+dnJ7fn57eHV3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gYF/fH5+fX19e3x+fH18fHx7fHt8fYiFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX1+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99gH99fX59fn59fnx7fHp8e3qAhYKDhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgoGCgYGDgH+AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIOBf3+AfoCBfoCBgIB/fn5+fn59f35+hYWAgYB/gIOBf36BgH9+gH6Af359e3p7enx7eoKDf4KCgoKDgoOCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7cnl7fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX+Af3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOBf3+Af4F/gH98e3t6fHt8gYB/gX9/gYGBgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChYSChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fX2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn19eX5/f3x8fH59foGAgYGBgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWFgYSEhYSDgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn59fX2Af4CBgYF/fnx+gH5/f4GCf4GBgoOHhYGAf35+gH+AgYCAgICBgoGAgH6Agn9/gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KBgoOBgoKBgIGBfIB/foB9fn1+f4CAgH9+f358fn9/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4KDgoGCg4KBg4J/gYB/f35/gH59fXx/gICAf3+Af3yAf3+BgIGAgH98gH9+fn5/f31+foCBgoJ+f359fn5+fn9/gH99gIGAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36GfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3Zxd3lyeIWFhYWDhISCgoOCgYGCgYCDgYCAf35+fn6Afn1+fH+AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGCgX5/fn5+fX19f35/fnx+gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGAgICAfX5+f4B9fH59f4CBgH9/gYB8gH+Afn+BgH9/fYB/fn9/fn19fICAgICAfn9+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYOCgoOFhYKCfn19e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzcHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgH1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39+f358fn9/f399fX9/fX5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3h6endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WHhIWDhIKBg4KCgoGBgoGCgIGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gH+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2EfXR8fXp6enp8eXl6eoaFd3l8fHx8fH17fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKAgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f3+Af39/f4B/gICAgIB/gICBgYGBgoGAgH9/f359f356gZGLenx9fHt9eXt6enh5gYF4eXt8fH18fHt8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2Fh4ODgoOCgIGAgoKBgIGBgYGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB+f31+gH59gIB/f39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhoh8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fH19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICBgYF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX+Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+BgIB/gIB/gIGBf4CAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYGCg4B/goGFg4OEgYGDgYKCgoGAf4CCg4KAgoKFg3+AgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgYB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKCgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl5fH19fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDg4OBgoSAhIOCgoB/goKEgYGCgoSCf4CAf4GDgoGBgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgoGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgYGDgYCAgICAgYKBhIB+gYOBfn+Ag4KAgX6AgoOCgIGBgYKCg4KBgYOCgoSBgIGDgYGChIODhISDg4SDg4GCgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4KEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F+f4GEhIGDf4KCgYOCgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKChYSEg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgX+AgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foB/f4GBgICAgICBgYCAf319fHx9fHZydnh4dnR+dnV9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4KDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYOBf4GDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9f31/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92dn+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4F+gYSEg4OChH+BhIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhISDgYKAfYGCf318fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx8gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWChIWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4KDgX+BhIODg4KDf4GFg4ODg4SDg4SDgIKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYR/fX18fHx8f4F+fX5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WBgYOEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYuJhISDhIWFg4eGhoSEhISFhISEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+Ee4WDgISDgH9+fX59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2ChHVzcYOGdHB1cnN0g3Z7fXWBf4KDgIJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgYN/g4N9gX19fn1+goOBfH+BfX6AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYSChYaEhYWDgoOEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ6eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9+fX6BgIF9gH59gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiIhYOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/f4KDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WDhYWFhIKFhYWFhoaFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYSGhYeGhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dHBvemtzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhoaFhoSGhIOEhIaEhIGEg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWFhIV9d4WDhISDgoF9f357fHt+e3x8fX9+fXx+foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGh4iGhYiHiIWHhoaIhYWGhoWGhoWDgoWFhoWFg4SEhISFhIWFhIWFhIaHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn98fX1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYSIhYaHhoeGiIaHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaEhoaFhoWEhoaFhIOFhYKFh4WDgoKFg4SBfoCAfHt9fXt8e31+fXx8fn1+fnx/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGg4SEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFh4eGh4aHhoeFiIiHh4WGhoeFh4eFgYSEhYaFhYSEhIOEhYWGhoaFhoSHhoaHhYWGhoWEg4SDgoSHg4SBgoSEg4GAgIB7e359e3x8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYWEg4SEhYaGhoaGhoeFhYeFhoWGhYSCg4KDg4eBg4CCg4OCgoJ/gHt8fn58fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eGiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWHh4aGh4aGhIaFg4OCgoKDhoGDfoKCg4CDg39/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhYSFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYiKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYOFhYaGhoaHhYeGh4aHh4WEhYWDgYKBgIOFgoN+gYGBf4OBfn9+f31/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFh4aIhoWHhIaHiIaGiIiHh4aHiIaEhoaGh4aFh4OEhYSGhoaHhYWEg4WFh4WHhoeFhoaGhYaGhIOEhYGAgYGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaFhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeGh4iJhoWIh4mHhoaHhYSGhYWGhYWHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaFhYaDg4OFgH+BgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5eXp5en19eXp6e3x7fHt7ent9fXx9fH5+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIOEhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eHiIiFhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGh4WFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx9f358e4iFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeHh4WFiIaJh4aEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYWGg4WFgYGDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX59fX19f3t/fHt6eXp6eXp6fHl6ent7e316e3t7fH1+fX2AfX18fH2Af318hoOGhoaGhYOEgoWChYGBgH9/gIB+f4CCfH5/f36AgIKCgoOEg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIWHhYeFhYKDgoGDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCf319f35+gIR+e398fICBfYGAfX2DfH5+fX1+e357e3p5enp5enp7eXp6ent7fHp7fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5+gYGCg4OCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhoSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx/g318fnx8gYB+gn99f4J8f359fHx8fHt7enl6enl7enp6enp6ent8eXt9fHx/f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIaEg4OFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhYWFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+e32Bf4CDfn2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5hYWMgYi9tZWRpYS9yZXMvYmJiX2FhY19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmFhYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MzExMDJkCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5hYWMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIGIvbWVkaWEvcmVzL2JiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQxMjRmMzAKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2FhY19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8KQEAgLTAsMCArMSw0NjkgQEAKKzUgMTI4IDAKKzUgMTI4IDAKKzMzNyAzMiAwCiszMjIgMzIgMjEzMzMKKzI3OSAzMiA0MjY2NgorMjgwIDMyIDY0MDAwCisyODMgMzIgODUzMzMKKzMxNyAzMiAxMDY2NjYKKzMxOCAzMiAxMjgwMDAKKzMyMSAzMiAxNDkzMzMKKzMxMyAzMiAxNzA2NjYKKzMxMiAzMiAxOTIwMDAKKzMxNyAzMiAyMTMzMzMKKzMzMCAzMiAyMzQ2NjYKKzM1MCAzMiAyNTYwMDAKKzM1NSAzMiAyNzczMzMKKzMzMyAzMiAyOTg2NjYKKzMyNSAzMiAzMjAwMDAKKzM3NiAzMiAzNDEzMzMKKzMzNSAzMiAzNjI2NjYKKzM1MSAzMiAzODQwMDAKKzM1MCAzMiA0MDUzMzMKKzMzOSAzMiA0MjY2NjYKKzMyOSAzMiA0NDgwMDAKKzM1MCAzMiA0NjkzMzMKKzMzMCAzMiA0OTA2NjYKKzM1OSAzMiA1MTIwMDAKKzMxNiAzMiA1MzMzMzMKKzM0NSAzMiA1NTQ2NjYKKzM1NyAzMiA1NzYwMDAKKzMyNSAzMiA1OTczMzMKKzMzNiAzMiA2MTg2NjYKKzMzOSAzMiA2NDAwMDAKKzMxMiAzMiA2NjEzMzMKKzM1MCAzMiA2ODI2NjYKKzMzOCAzMiA3MDQwMDAKKzM1MyAzMiA3MjUzMzMKKzM0MCAzMiA3NDY2NjYKKzMzMiAzMiA3NjgwMDAKKzM0MCAzMiA3ODkzMzMKKzMzOSAzMiA4MTA2NjYKKzMzMyAzMiA4MzIwMDAKKzMzMyAzMiA4NTMzMzMKKzM0NSAzMiA4NzQ2NjYKKzM0MCAzMiA4OTYwMDAKKzM0MyAzMiA5MTczMzMKKzMzNSAzMiA5Mzg2NjYKKzMzOSAzMiA5NjAwMDAKKzM0MiAzMiA5ODEzMzMKKzM0OCAzMiAxMDAyNjY2CiszNTAgMzIgMTAyNDAwMAorMzUxIDMyIDEwNDUzMzMKKzM0MiAzMiAxMDY2NjY2CiszNjYgMzIgMTA4ODAwMAorMzQwIDMyIDExMDkzMzMKKzM1NCAzMiAxMTMwNjY2CiszNDAgMzIgMTE1MjAwMAorMzM0IDMyIDExNzMzMzMKKzMzOCAzMiAxMTk0NjY2CiszNDAgMzIgMTIxNjAwMAorMzUxIDMyIDEyMzczMzMKKzM0NiAzMiAxMjU4NjY2CiszMzEgMzIgMTI4MDAwMAorMzIxIDMyIDEzMDEzMzMKKzM0MyAzMiAxMzIyNjY2CiszNDIgMzIgMTM0NDAwMAorMzQ1IDMyIDEzNjUzMzMKKzMyNiAzMiAxMzg2NjY2CiszNDIgMzIgMTQwODAwMAorMzU2IDMyIDE0MjkzMzMKKzM1MSAzMiAxNDUwNjY2CiszNDMgMzIgMTQ3MjAwMAorMzQ3IDMyIDE0OTMzMzMKKzM0OSAzMiAxNTE0NjY2CiszNTAgMzIgMTUzNjAwMAorMzMwIDMyIDE1NTczMzMKKzM0MSAzMiAxNTc4NjY2CiszNDAgMzIgMTYwMDAwMAorMzMwIDMyIDE2MjEzMzMKKzM0MCAzMiAxNjQyNjY2CiszMzUgMzIgMTY2NDAwMAorMzQ0IDMyIDE2ODUzMzMKKzM1OSAzMiAxNzA2NjY2CiszMzcgMzIgMTcyODAwMAorMzQ2IDMyIDE3NDkzMzMKKzMzMCAzMiAxNzcwNjY2CiszNTEgMzIgMTc5MjAwMAorMzU1IDMyIDE4MTMzMzMKKzM1MiAzMiAxODM0NjY2CiszMjUgMzIgMTg1NjAwMAorMzQyIDMyIDE4NzczMzMKKzMyNyAzMiAxODk4NjY2CiszNDkgMzIgMTkyMDAwMAorMzI2IDMyIDE5NDEzMzMKKzMzNyAzMiAxOTYyNjY2CiszNzggMzIgMTk4NDAwMAorMzIxIDMyIDIwMDUzMzMKKzMxOSAzMiAyMDI2NjY2CiszNDYgMzIgMjA0ODAwMAorMzUyIDMyIDIwNjkzMzMKKzM0OSAzMiAyMDkwNjY2CiszMzEgMzIgMjExMjAwMAorMzMwIDMyIDIxMzMzMzMKKzMyOSAzMiAyMTU0NjY2CiszMzMgMzIgMjE3NjAwMAorMzY3IDMyIDIxOTczMzMKKzM2MiAzMiAyMjE4NjY2CiszMzcgMzIgMjI0MDAwMAorMzM3IDMyIDIyNjEzMzMKKzM2MCAzMiAyMjgyNjY2CiszMzMgMzIgMjMwNDAwMAorMzE3IDMyIDIzMjUzMzMKKzM0NCAzMiAyMzQ2NjY2CiszMzUgMzIgMjM2ODAwMAorMzM3IDMyIDIzODkzMzMKKzM0OSAzMiAyNDEwNjY2CiszMzYgMzIgMjQzMjAwMAorMzQ4IDMyIDI0NTMzMzMKKzM0OSAzMiAyNDc0NjY2CiszNDIgMzIgMjQ5NjAwMAorMzU5IDMyIDI1MTczMzMKKzM0MCAzMiAyNTM4NjY2CiszNDAgMzIgMjU2MDAwMAorMzQ4IDMyIDI1ODEzMzMKKzMzNCAzMiAyNjAyNjY2CiszMjggMzIgMjYyNDAwMAorMzQxIDMyIDI2NDUzMzMKKzMzOSAzMiAyNjY2NjY2CiszMzcgMzIgMjY4ODAwMAorMzUwIDMyIDI3MDkzMzMKKzMyNiAzMiAyNzMwNjY2CiszNjAgMzIgMjc1MjAwMAorMzQ0IDMyIDI3NzMzMzMKKzM0MCAzMiAyNzk0NjY2CiszNDMgMzIgMjgxNjAwMAorMzYxIDMyIDI4MzczMzMKKzMyOSAzMiAyODU4NjY2CiszNDUgMzIgMjg4MDAwMAorMzQ1IDMyIDI5MDEzMzMKKzMzMCAzMiAyOTIyNjY2CiszNDIgMzIgMjk0NDAwMAorMzQ0IDMyIDI5NjUzMzMKKzMzMCAzMiAyOTg2NjY2CiszMjkgMzIgMzAwODAwMAorMzM1IDMyIDMwMjkzMzMKKzM2NiAzMiAzMDUwNjY2CiszMjggMzIgMzA3MjAwMAorMzQ5IDMyIDMwOTMzMzMKKzMzOSAzMiAzMTE0NjY2CiszNDAgMzIgMzEzNjAwMAorMzM1IDMyIDMxNTczMzMKKzMyNyAzMiAzMTc4NjY2CiszNDggMzIgMzIwMDAwMAorMzM5IDMyIDMyMjEzMzMKKzMzNCAzMiAzMjQyNjY2CiszNTAgMzIgMzI2NDAwMAorMzI1IDMyIDMyODUzMzMKKzM2MSAzMiAzMzA2NjY2CiszMzggMzIgMzMyODAwMAorMzUwIDMyIDMzNDkzMzMKKzM1MyAzMiAzMzcwNjY2CiszMjcgMzIgMzM5MjAwMAorMzQ2IDMyIDM0MTMzMzMKKzM0OCAzMiAzNDM0NjY2CiszMzkgMzIgMzQ1NjAwMAorMzQyIDMyIDM0NzczMzMKKzMzNCAzMiAzNDk4NjY2CiszNTAgMzIgMzUyMDAwMAorMzU0IDMyIDM1NDEzMzMKKzM2MyAzMiAzNTYyNjY2CiszMjIgMzIgMzU4NDAwMAorMzM3IDMyIDM2MDUzMzMKKzM1NSAzMiAzNjI2NjY2CiszMjkgMzIgMzY0ODAwMAorMzI0IDMyIDM2NjkzMzMKKzMzOCAzMiAzNjkwNjY2CiszNTYgMzIgMzcxMjAwMAorMzMwIDMyIDM3MzMzMzMKKzMyMSAzMiAzNzU0NjY2CiszMzcgMzIgMzc3NjAwMAorMzQ1IDMyIDM3OTczMzMKKzMzNSAzMiAzODE4NjY2CiszNDggMzIgMzg0MDAwMAorMzQyIDMyIDM4NjEzMzMKKzM0OCAzMiAzODgyNjY2CiszMzUgMzIgMzkwNDAwMAorMzQ0IDMyIDM5MjUzMzMKKzM1NyAzMiAzOTQ2NjY2CiszNjggMzIgMzk2ODAwMAorMzI0IDMyIDM5ODkzMzMKKzM0MyAzMiA0MDEwNjY2CiszNDEgMzIgNDAzMjAwMAorMzI5IDMyIDQwNTMzMzMKKzM1NiAzMiA0MDc0NjY2CiszMTcgMzIgNDA5NjAwMAorMzUxIDMyIDQxMTczMzMKKzM0MCAzMiA0MTM4NjY2CiszNDAgMzIgNDE2MDAwMAorMzMyIDMyIDQxODEzMzMKKzM1NSAzMiA0MjAyNjY2CiszNTcgMzIgNDIyNDAwMAorMzI3IDMyIDQyNDUzMzMKKzMzOCAzMiA0MjY2NjY2CiszMjMgMzIgNDI4ODAwMAorMzQ2IDMyIDQzMDkzMzMKKzM1MiAzMiA0MzMwNjY2CiszNDcgMzIgNDM1MjAwMAorMzQzIDMyIDQzNzMzMzMKKzMxMSAzMiA0Mzk0NjY2CiszMzggMzIgNDQxNjAwMAorMzY1IDMyIDQ0MzczMzMKKzM0OSAzMiA0NDU4NjY2CiszMjcgMzIgNDQ4MDAwMAorMzU1IDMyIDQ1MDEzMzMKKzMxOSAzMiA0NTIyNjY2CiszNDkgMzIgNDU0NDAwMAorMzUxIDMyIDQ1NjUzMzMKKzMzNyAzMiA0NTg2NjY2CiszNDAgMzIgNDYwODAwMAorMzQ5IDMyIDQ2MjkzMzMKKzMxNiAzMiA0NjUwNjY2CiszNDQgMzIgNDY3MjAwMAorMzM0IDMyIDQ2OTMzMzMKKzM0NCAzMiA0NzE0NjY2CiszNDcgMzIgNDczNjAwMAorMzQ4IDMyIDQ3NTczMzMKKzMzNCAzMiA0Nzc4NjY2CiszMzggMzIgNDgwMDAwMAorMzMxIDMyIDQ4MjEzMzMKKzM0NCAzMiA0ODQyNjY2CiszNDIgMzIgNDg2NDAwMAorMzM2IDMyIDQ4ODUzMzMKKzMyNiAzMiA0OTA2NjY2CiszNjQgMzIgNDkyODAwMAorMzUwIDMyIDQ5NDkzMzMKKzM1MCAzMiA0OTcwNjY2CiszNjMgMzIgNDk5MjAwMAorMzU4IDMyIDUwMTMzMzMKKzMwNSAzMiA1MDM0NjY2CiszNDQgMzIgNTA1NjAwMAorMzQ2IDMyIDUwNzczMzMKKzM0MiAzMiA1MDk4NjY2CiszMzAgMzIgNTEyMDAwMAorMzE4IDMyIDUxNDEzMzMKKzM2MSAzMiA1MTYyNjY2CiszNTQgMzIgNTE4NDAwMAorMzEzIDMyIDUyMDUzMzMKKzMzMCAzMiA1MjI2NjY2CiszNTAgMzIgNTI0ODAwMAorMzQ3IDMyIDUyNjkzMzMKKzM0NiAzMiA1MjkwNjY2CiszNTcgMzIgNTMxMjAwMAorMzI1IDMyIDUzMzMzMzMKKzMzNSAzMiA1MzU0NjY2CiszMzEgMzIgNTM3NjAwMAorMzY2IDMyIDUzOTczMzMKKzMyOSAzMiA1NDE4NjY2CiszNDkgMzIgNTQ0MDAwMAorMzcxIDMyIDU0NjEzMzMKKzMyNiAzMiA1NDgyNjY2CiszMzMgMzIgNTUwNDAwMAorMzE5IDMyIDU1MjUzMzMKKzMyNyAzMiA1NTQ2NjY2CiszNTMgMzIgNTU2ODAwMAorMzU2IDMyIDU1ODkzMzMKKzM0OCAzMiA1NjEwNjY2CiszMzggMzIgNTYzMjAwMAorMzMxIDMyIDU2NTMzMzMKKzM0MSAzMiA1Njc0NjY2CiszNjIgMzIgNTY5NjAwMAorMzI2IDMyIDU3MTczMzMKKzM1OSAzMiA1NzM4NjY2CiszMTUgMzIgNTc2MDAwMAorMzc2IDMyIDU3ODEzMzMKKzM0MyAzMiA1ODAyNjY2CiszNTQgMzIgNTgyNDAwMAorMzUzIDMyIDU4NDUzMzMKKzM0NCAzMiA1ODY2NjY2CiszMzQgMzIgNTg4ODAwMAorMzQ1IDMyIDU5MDkzMzMKKzM1NSAzMiA1OTMwNjY2CiszMjIgMzIgNTk1MjAwMAorMzM0IDMyIDU5NzMzMzMKKzM1MyAzMiA1OTk0NjY2CiszMzggMzIgNjAxNjAwMAorMzUxIDMyIDYwMzczMzMKKzMzNCAzMiA2MDU4NjY2CiszMzkgMzIgNjA4MDAwMAorMzQ1IDMyIDYxMDEzMzMKKzM0NyAzMiA2MTIyNjY2CiszNTUgMzIgNjE0NDAwMAorMzEyIDMyIDYxNjUzMzMKKzM1MiAzMiA2MTg2NjY2CiszNTQgMzIgNjIwODAwMAorMzE4IDMyIDYyMjkzMzMKKzM0NCAzMiA2MjUwNjY2CiszNjMgMzIgNjI3MjAwMAorMzIxIDMyIDYyOTMzMzMKKzMzOSAzMiA2MzE0NjY2CiszNTYgMzIgNjMzNjAwMAorMzM0IDMyIDYzNTczMzMKKzM1NCAzMiA2Mzc4NjY2CiszMjUgMzIgNjQwMDAwMAorMzIxIDMyIDY0MjEzMzMKKzM0MSAzMiA2NDQyNjY2CiszMzcgMzIgNjQ2NDAwMAorMzUxIDMyIDY0ODUzMzMKKzM0MyAzMiA2NTA2NjY2CiszNDEgMzIgNjUyODAwMAorMzQ0IDMyIDY1NDkzMzMKKzM0MSAzMiA2NTcwNjY2CiszNjQgMzIgNjU5MjAwMAorMzE5IDMyIDY2MTMzMzMKKzM0OCAzMiA2NjM0NjY2CiszMzIgMzIgNjY1NjAwMAorMzMzIDMyIDY2NzczMzMKKzM0MyAzMiA2Njk4NjY2CiszNDggMzIgNjcyMDAwMAorMzQ3IDMyIDY3NDEzMzMKKzM1MCAzMiA2NzYyNjY2CiszNDIgMzIgNjc4NDAwMAorMzQxIDMyIDY4MDUzMzMKKzMyNiAzMiA2ODI2NjY2CiszNTEgMzIgNjg0ODAwMAorMzI5IDMyIDY4NjkzMzMKKzMyMyAzMiA2ODkwNjY2CiszNTAgMzIgNjkxMjAwMAorMzYxIDMyIDY5MzMzMzMKKzMyNiAzMiA2OTU0NjY2CiszNDUgMzIgNjk3NjAwMAorMzQ1IDMyIDY5OTczMzMKKzMxMSAzMiA3MDE4NjY2CiszNDkgMzIgNzA0MDAwMAorMzU4IDMyIDcwNjEzMzMKKzM1MiAzMiA3MDgyNjY2CiszNDcgMzIgNzEwNDAwMAorMzY0IDMyIDcxMjUzMzMKKzMyOCAzMiA3MTQ2NjY2CiszMTggMzIgNzE2ODAwMAorMzUxIDMyIDcxODkzMzMKKzM0MCAzMiA3MjEwNjY2CiszNDEgMzIgNzIzMjAwMAorMzU1IDMyIDcyNTMzMzMKKzMzNiAzMiA3Mjc0NjY2CiszNTIgMzIgNzI5NjAwMAorMzQxIDMyIDczMTczMzMKKzMzNCAzMiA3MzM4NjY2CiszNDggMzIgNzM2MDAwMAorMzQyIDMyIDczODEzMzMKKzMzNSAzMiA3NDAyNjY2CiszNDIgMzIgNzQyNDAwMAorMzU5IDMyIDc0NDUzMzMKKzM0OSAzMiA3NDY2NjY2CiszMjkgMzIgNzQ4ODAwMAorMzU2IDMyIDc1MDkzMzMKKzI5MiAzMiA3NTMwNjY2CiszMTYgMzIgNzU1MjAwMAorMzE4IDMyIDc1NzMzMzMKKzMyMCAzMiA3NTk0NjY2CiszNDIgMzIgNzYxNjAwMAorMjg1IDMyIDc2MzczMzMKKzMyNiAzMiA3NjU4NjY2CiszNTIgMzIgNzY4MDAwMAorMzkyIDMyIDc3MDEzMzMKKzM2NCAzMiA3NzIyNjY2CiszODQgMzIgNzc0NDAwMAorMzM0IDMyIDc3NjUzMzMKKzMxNyAzMiA3Nzg2NjY2CiszMjYgMzIgNzgwODAwMAorMzczIDMyIDc4MjkzMzMKKzM1NCAzMiA3ODUwNjY2CiszMjkgMzIgNzg3MjAwMAorMzQ3IDMyIDc4OTMzMzMKKzM1MyAzMiA3OTE0NjY2CiszMzggMzIgNzkzNjAwMAorMzE3IDMyIDc5NTczMzMKKzM1NCAzMiA3OTc4NjY2CiszNDUgMzIgODAwMDAwMAorMzUwIDMyIDgwMjEzMzMKKzM1MSAzMiA4MDQyNjY2CiszMzIgMzIgODA2NDAwMAorMzU4IDMyIDgwODUzMzMKKzMxNSAzMiA4MTA2NjY2CiszMzYgMzIgODEyODAwMAorMzU4IDMyIDgxNDkzMzMKKzM0MyAzMiA4MTcwNjY2CiszMTkgMzIgODE5MjAwMAorMzcwIDMyIDgyMTMzMzMKKzM0NCAzMiA4MjM0NjY2CiszNjEgMzIgODI1NjAwMAorMzQzIDMyIDgyNzczMzMKKzMzNyAzMiA4Mjk4NjY2CiszNTQgMzIgODMyMDAwMAorMzMyIDMyIDgzNDEzMzMKKzM0OCAzMiA4MzYyNjY2CiszMjggMzIgODM4NDAwMAorMzQ1IDMyIDg0MDUzMzMKKzM0MCAzMiA4NDI2NjY2CiszNDYgMzIgODQ0ODAwMAorMzQxIDMyIDg0NjkzMzMKKzM0NCAzMiA4NDkwNjY2CiszNDIgMzIgODUxMjAwMAorMzQxIDMyIDg1MzMzMzMKKzM0NSAzMiA4NTU0NjY2CiszMzcgMzIgODU3NjAwMAorMzM1IDMyIDg1OTczMzMKKzMzNSAzMiA4NjE4NjY2CiszNDAgMzIgODY0MDAwMAorMzQ1IDMyIDg2NjEzMzMKKzM0MSAzMiA4NjgyNjY2CiszNDIgMzIgODcwNDAwMAorMzM4IDMyIDg3MjUzMzMKKzM0MyAzMiA4NzQ2NjY2CiszMzYgMzIgODc2ODAwMAorMzM4IDMyIDg3ODkzMzMKKzM1MyAzMiA4ODEwNjY2CiszMzkgMzIgODgzMjAwMAorMzI5IDMyIDg4NTMzMzMKKzM0OSAzMiA4ODc0NjY2CiszMjMgMzIgODg5NjAwMAorMzUxIDMyIDg5MTczMzMKKzM1OSAzMiA4OTM4NjY2CiszNTcgMzIgODk2MDAwMAorMzQxIDMyIDg5ODEzMzMKKzMzMyAzMiA5MDAyNjY2CiszMzUgMzIgOTAyNDAwMAorMzI4IDMyIDkwNDUzMzMKKzM0NyAzMiA5MDY2NjY2CiszNDMgMzIgOTA4ODAwMAorMzY5IDMyIDkxMDkzMzMKKzMzMSAzMiA5MTMwNjY2CiszNDQgMzIgOTE1MjAwMAorMzMwIDMyIDkxNzMzMzMKKzM0NiAzMiA5MTk0NjY2CiszMzcgMzIgOTIxNjAwMAorMzQxIDMyIDkyMzczMzMKKzMzOCAzMiA5MjU4NjY2CiszMjkgMzIgOTI4MDAwMAorMzYwIDMyIDkzMDEzMzMKKzMzNiAzMiA5MzIyNjY2CiszNDEgMzIgOTM0NDAwMAorMzQxIDMyIDkzNjUzMzMKKzM0NSAzMiA5Mzg2NjY2CiszNTEgMzIgOTQwODAwMAorMzQ5IDMyIDk0MjkzMzMKKzMzNiAzMiA5NDUwNjY2CiszMjYgMzIgOTQ3MjAwMAorMzQ5IDMyIDk0OTMzMzMKKzM0MyAzMiA5NTE0NjY2CiszNTcgMzIgOTUzNjAwMAorMzQyIDMyIDk1NTczMzMKKzMyNSAzMiA5NTc4NjY2CiszNDYgMzIgOTYwMDAwMAorMzI2IDMyIDk2MjEzMzMKKzQwMiAzMiA5NjQyNjY2CiszMzEgMzIgOTY2NDAwMAorMzM5IDMyIDk2ODUzMzMKKzM3MSAzMiA5NzA2NjY2CiszMTQgMzIgOTcyODAwMAorMzEwIDMyIDk3NDkzMzMKKzM2NCAzMiA5NzcwNjY2CiszMzggMzIgOTc5MjAwMAorMzM5IDMyIDk4MTMzMzMKKzMzNyAzMiA5ODM0NjY2CiszNTUgMzIgOTg1NjAwMAorMzUxIDMyIDk4NzczMzMKKzMzMiAzMiA5ODk4NjY2CiszMTYgMzIgOTkyMDAwMAorNDc0IDMyIDk5NDEzMzMKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmFtcndiIGIvbWVkaWEvcmVzL2JiYl9hbXJ3Yl8xY2hfMTRrYnBzXzE2MDAwaHouYW1yd2IKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGQ4MjU5MwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmFtcndiCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmluZm8gYi9tZWRpYS9yZXMvYmJiX2FtcndiXzFjaF8xNGticHNfMTYwMDBoei5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcxY2ZmZWYKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2FtcndiXzFjaF8xNGticHNfMTYwMDBoei5pbmZvCkBAIC0wLDAgKzEsNDk0IEBACis0MSAzMiAwCis0MSAzMiAyMDAwMAorNDEgMzIgNDAwMDAKKzQxIDMyIDYwMDAwCis0MSAzMiA4MDAwMAorNDEgMzIgMTAwMDAwCis0MSAzMiAxMjAwMDAKKzQxIDMyIDE0MDAwMAorNDEgMzIgMTYwMDAwCis0MSAzMiAxODAwMDAKKzQxIDMyIDIwMDAwMAorNDEgMzIgMjIwMDAwCis0MSAzMiAyNDAwMDAKKzQxIDMyIDI2MDAwMAorNDEgMzIgMjgwMDAwCis0MSAzMiAzMDAwMDAKKzQxIDMyIDMyMDAwMAorNDEgMzIgMzQwMDAwCis0MSAzMiAzNjAwMDAKKzQxIDMyIDM4MDAwMAorNDEgMzIgNDAwMDAwCis0MSAzMiA0MjAwMDAKKzQxIDMyIDQ0MDAwMAorNDEgMzIgNDYwMDAwCis0MSAzMiA0ODAwMDAKKzQxIDMyIDUwMDAwMAorNDEgMzIgNTIwMDAwCis0MSAzMiA1NDAwMDAKKzQxIDMyIDU2MDAwMAorNDEgMzIgNTgwMDAwCis0MSAzMiA2MDAwMDAKKzQxIDMyIDYyMDAwMAorNDEgMzIgNjQwMDAwCis0MSAzMiA2NjAwMDAKKzQxIDMyIDY4MDAwMAorNDEgMzIgNzAwMDAwCis0MSAzMiA3MjAwMDAKKzQxIDMyIDc0MDAwMAorNDEgMzIgNzYwMDAwCis0MSAzMiA3ODAwMDAKKzQxIDMyIDgwMDAwMAorNDEgMzIgODIwMDAwCis0MSAzMiA4NDAwMDAKKzQxIDMyIDg2MDAwMAorNDEgMzIgODgwMDAwCis0MSAzMiA5MDAwMDAKKzQxIDMyIDkyMDAwMAorNDEgMzIgOTQwMDAwCis0MSAzMiA5NjAwMDAKKzQxIDMyIDk4MDAwMAorNDEgMzIgMTAwMDAwMAorNDEgMzIgMTAyMDAwMAorNDEgMzIgMTA0MDAwMAorNDEgMzIgMTA2MDAwMAorNDEgMzIgMTA4MDAwMAorNDEgMzIgMTEwMDAwMAorNDEgMzIgMTEyMDAwMAorNDEgMzIgMTE0MDAwMAorNDEgMzIgMTE2MDAwMAorNDEgMzIgMTE4MDAwMAorNDEgMzIgMTIwMDAwMAorNDEgMzIgMTIyMDAwMAorNDEgMzIgMTI0MDAwMAorNDEgMzIgMTI2MDAwMAorNDEgMzIgMTI4MDAwMAorNDEgMzIgMTMwMDAwMAorNDEgMzIgMTMyMDAwMAorNDEgMzIgMTM0MDAwMAorNDEgMzIgMTM2MDAwMAorNDEgMzIgMTM4MDAwMAorNDEgMzIgMTQwMDAwMAorNDEgMzIgMTQyMDAwMAorNDEgMzIgMTQ0MDAwMAorNDEgMzIgMTQ2MDAwMAorNDEgMzIgMTQ4MDAwMAorNDEgMzIgMTUwMDAwMAorNDEgMzIgMTUyMDAwMAorNDEgMzIgMTU0MDAwMAorNDEgMzIgMTU2MDAwMAorNDEgMzIgMTU4MDAwMAorNDEgMzIgMTYwMDAwMAorNDEgMzIgMTYyMDAwMAorNDEgMzIgMTY0MDAwMAorNDEgMzIgMTY2MDAwMAorNDEgMzIgMTY4MDAwMAorNDEgMzIgMTcwMDAwMAorNDEgMzIgMTcyMDAwMAorNDEgMzIgMTc0MDAwMAorNDEgMzIgMTc2MDAwMAorNDEgMzIgMTc4MDAwMAorNDEgMzIgMTgwMDAwMAorNDEgMzIgMTgyMDAwMAorNDEgMzIgMTg0MDAwMAorNDEgMzIgMTg2MDAwMAorNDEgMzIgMTg4MDAwMAorNDEgMzIgMTkwMDAwMAorNDEgMzIgMTkyMDAwMAorNDEgMzIgMTk0MDAwMAorNDEgMzIgMTk2MDAwMAorNDEgMzIgMTk4MDAwMAorNDEgMzIgMjAwMDAwMAorNDEgMzIgMjAyMDAwMAorNDEgMzIgMjA0MDAwMAorNDEgMzIgMjA2MDAwMAorNDEgMzIgMjA4MDAwMAorNDEgMzIgMjEwMDAwMAorNDEgMzIgMjEyMDAwMAorNDEgMzIgMjE0MDAwMAorNDEgMzIgMjE2MDAwMAorNDEgMzIgMjE4MDAwMAorNDEgMzIgMjIwMDAwMAorNDEgMzIgMjIyMDAwMAorNDEgMzIgMjI0MDAwMAorNDEgMzIgMjI2MDAwMAorNDEgMzIgMjI4MDAwMAorNDEgMzIgMjMwMDAwMAorNDEgMzIgMjMyMDAwMAorNDEgMzIgMjM0MDAwMAorNDEgMzIgMjM2MDAwMAorNDEgMzIgMjM4MDAwMAorNDEgMzIgMjQwMDAwMAorNDEgMzIgMjQyMDAwMAorNDEgMzIgMjQ0MDAwMAorNDEgMzIgMjQ2MDAwMAorNDEgMzIgMjQ4MDAwMAorNDEgMzIgMjUwMDAwMAorNDEgMzIgMjUyMDAwMAorNDEgMzIgMjU0MDAwMAorNDEgMzIgMjU2MDAwMAorNDEgMzIgMjU4MDAwMAorNDEgMzIgMjYwMDAwMAorNDEgMzIgMjYyMDAwMAorNDEgMzIgMjY0MDAwMAorNDEgMzIgMjY2MDAwMAorNDEgMzIgMjY4MDAwMAorNDEgMzIgMjcwMDAwMAorNDEgMzIgMjcyMDAwMAorNDEgMzIgMjc0MDAwMAorNDEgMzIgMjc2MDAwMAorNDEgMzIgMjc4MDAwMAorNDEgMzIgMjgwMDAwMAorNDEgMzIgMjgyMDAwMAorNDEgMzIgMjg0MDAwMAorNDEgMzIgMjg2MDAwMAorNDEgMzIgMjg4MDAwMAorNDEgMzIgMjkwMDAwMAorNDEgMzIgMjkyMDAwMAorNDEgMzIgMjk0MDAwMAorNDEgMzIgMjk2MDAwMAorNDEgMzIgMjk4MDAwMAorNDEgMzIgMzAwMDAwMAorNDEgMzIgMzAyMDAwMAorNDEgMzIgMzA0MDAwMAorNDEgMzIgMzA2MDAwMAorNDEgMzIgMzA4MDAwMAorNDEgMzIgMzEwMDAwMAorNDEgMzIgMzEyMDAwMAorNDEgMzIgMzE0MDAwMAorNDEgMzIgMzE2MDAwMAorNDEgMzIgMzE4MDAwMAorNDEgMzIgMzIwMDAwMAorNDEgMzIgMzIyMDAwMAorNDEgMzIgMzI0MDAwMAorNDEgMzIgMzI2MDAwMAorNDEgMzIgMzI4MDAwMAorNDEgMzIgMzMwMDAwMAorNDEgMzIgMzMyMDAwMAorNDEgMzIgMzM0MDAwMAorNDEgMzIgMzM2MDAwMAorNDEgMzIgMzM4MDAwMAorNDEgMzIgMzQwMDAwMAorNDEgMzIgMzQyMDAwMAorNDEgMzIgMzQ0MDAwMAorNDEgMzIgMzQ2MDAwMAorNDEgMzIgMzQ4MDAwMAorNDEgMzIgMzUwMDAwMAorNDEgMzIgMzUyMDAwMAorNDEgMzIgMzU0MDAwMAorNDEgMzIgMzU2MDAwMAorNDEgMzIgMzU4MDAwMAorNDEgMzIgMzYwMDAwMAorNDEgMzIgMzYyMDAwMAorNDEgMzIgMzY0MDAwMAorNDEgMzIgMzY2MDAwMAorNDEgMzIgMzY4MDAwMAorNDEgMzIgMzcwMDAwMAorNDEgMzIgMzcyMDAwMAorNDEgMzIgMzc0MDAwMAorNDEgMzIgMzc2MDAwMAorNDEgMzIgMzc4MDAwMAorNDEgMzIgMzgwMDAwMAorNDEgMzIgMzgyMDAwMAorNDEgMzIgMzg0MDAwMAorNDEgMzIgMzg2MDAwMAorNDEgMzIgMzg4MDAwMAorNDEgMzIgMzkwMDAwMAorNDEgMzIgMzkyMDAwMAorNDEgMzIgMzk0MDAwMAorNDEgMzIgMzk2MDAwMAorNDEgMzIgMzk4MDAwMAorNDEgMzIgNDAwMDAwMAorNDEgMzIgNDAyMDAwMAorNDEgMzIgNDA0MDAwMAorNDEgMzIgNDA2MDAwMAorNDEgMzIgNDA4MDAwMAorNDEgMzIgNDEwMDAwMAorNDEgMzIgNDEyMDAwMAorNDEgMzIgNDE0MDAwMAorNDEgMzIgNDE2MDAwMAorNDEgMzIgNDE4MDAwMAorNDEgMzIgNDIwMDAwMAorNDEgMzIgNDIyMDAwMAorNDEgMzIgNDI0MDAwMAorNDEgMzIgNDI2MDAwMAorNDEgMzIgNDI4MDAwMAorNDEgMzIgNDMwMDAwMAorNDEgMzIgNDMyMDAwMAorNDEgMzIgNDM0MDAwMAorNDEgMzIgNDM2MDAwMAorNDEgMzIgNDM4MDAwMAorNDEgMzIgNDQwMDAwMAorNDEgMzIgNDQyMDAwMAorNDEgMzIgNDQ0MDAwMAorNDEgMzIgNDQ2MDAwMAorNDEgMzIgNDQ4MDAwMAorNDEgMzIgNDUwMDAwMAorNDEgMzIgNDUyMDAwMAorNDEgMzIgNDU0MDAwMAorNDEgMzIgNDU2MDAwMAorNDEgMzIgNDU4MDAwMAorNDEgMzIgNDYwMDAwMAorNDEgMzIgNDYyMDAwMAorNDEgMzIgNDY0MDAwMAorNDEgMzIgNDY2MDAwMAorNDEgMzIgNDY4MDAwMAorNDEgMzIgNDcwMDAwMAorNDEgMzIgNDcyMDAwMAorNDEgMzIgNDc0MDAwMAorNDEgMzIgNDc2MDAwMAorNDEgMzIgNDc4MDAwMAorNDEgMzIgNDgwMDAwMAorNDEgMzIgNDgyMDAwMAorNDEgMzIgNDg0MDAwMAorNDEgMzIgNDg2MDAwMAorNDEgMzIgNDg4MDAwMAorNDEgMzIgNDkwMDAwMAorNDEgMzIgNDkyMDAwMAorNDEgMzIgNDk0MDAwMAorNDEgMzIgNDk2MDAwMAorNDEgMzIgNDk4MDAwMAorNDEgMzIgNTAwMDAwMAorNDEgMzIgNTAyMDAwMAorNDEgMzIgNTA0MDAwMAorNDEgMzIgNTA2MDAwMAorNDEgMzIgNTA4MDAwMAorNDEgMzIgNTEwMDAwMAorNDEgMzIgNTEyMDAwMAorNDEgMzIgNTE0MDAwMAorNDEgMzIgNTE2MDAwMAorNDEgMzIgNTE4MDAwMAorNDEgMzIgNTIwMDAwMAorNDEgMzIgNTIyMDAwMAorNDEgMzIgNTI0MDAwMAorNDEgMzIgNTI2MDAwMAorNDEgMzIgNTI4MDAwMAorNDEgMzIgNTMwMDAwMAorNDEgMzIgNTMyMDAwMAorNDEgMzIgNTM0MDAwMAorNDEgMzIgNTM2MDAwMAorNDEgMzIgNTM4MDAwMAorNDEgMzIgNTQwMDAwMAorNDEgMzIgNTQyMDAwMAorNDEgMzIgNTQ0MDAwMAorNDEgMzIgNTQ2MDAwMAorNDEgMzIgNTQ4MDAwMAorNDEgMzIgNTUwMDAwMAorNDEgMzIgNTUyMDAwMAorNDEgMzIgNTU0MDAwMAorNDEgMzIgNTU2MDAwMAorNDEgMzIgNTU4MDAwMAorNDEgMzIgNTYwMDAwMAorNDEgMzIgNTYyMDAwMAorNDEgMzIgNTY0MDAwMAorNDEgMzIgNTY2MDAwMAorNDEgMzIgNTY4MDAwMAorNDEgMzIgNTcwMDAwMAorNDEgMzIgNTcyMDAwMAorNDEgMzIgNTc0MDAwMAorNDEgMzIgNTc2MDAwMAorNDEgMzIgNTc4MDAwMAorNDEgMzIgNTgwMDAwMAorNDEgMzIgNTgyMDAwMAorNDEgMzIgNTg0MDAwMAorNDEgMzIgNTg2MDAwMAorNDEgMzIgNTg4MDAwMAorNDEgMzIgNTkwMDAwMAorNDEgMzIgNTkyMDAwMAorNDEgMzIgNTk0MDAwMAorNDEgMzIgNTk2MDAwMAorNDEgMzIgNTk4MDAwMAorNDEgMzIgNjAwMDAwMAorNDEgMzIgNjAyMDAwMAorNDEgMzIgNjA0MDAwMAorNDEgMzIgNjA2MDAwMAorNDEgMzIgNjA4MDAwMAorNDEgMzIgNjEwMDAwMAorNDEgMzIgNjEyMDAwMAorNDEgMzIgNjE0MDAwMAorNDEgMzIgNjE2MDAwMAorNDEgMzIgNjE4MDAwMAorNDEgMzIgNjIwMDAwMAorNDEgMzIgNjIyMDAwMAorNDEgMzIgNjI0MDAwMAorNDEgMzIgNjI2MDAwMAorNDEgMzIgNjI4MDAwMAorNDEgMzIgNjMwMDAwMAorNDEgMzIgNjMyMDAwMAorNDEgMzIgNjM0MDAwMAorNDEgMzIgNjM2MDAwMAorNDEgMzIgNjM4MDAwMAorNDEgMzIgNjQwMDAwMAorNDEgMzIgNjQyMDAwMAorNDEgMzIgNjQ0MDAwMAorNDEgMzIgNjQ2MDAwMAorNDEgMzIgNjQ4MDAwMAorNDEgMzIgNjUwMDAwMAorNDEgMzIgNjUyMDAwMAorNDEgMzIgNjU0MDAwMAorNDEgMzIgNjU2MDAwMAorNDEgMzIgNjU4MDAwMAorNDEgMzIgNjYwMDAwMAorNDEgMzIgNjYyMDAwMAorNDEgMzIgNjY0MDAwMAorNDEgMzIgNjY2MDAwMAorNDEgMzIgNjY4MDAwMAorNDEgMzIgNjcwMDAwMAorNDEgMzIgNjcyMDAwMAorNDEgMzIgNjc0MDAwMAorNDEgMzIgNjc2MDAwMAorNDEgMzIgNjc4MDAwMAorNDEgMzIgNjgwMDAwMAorNDEgMzIgNjgyMDAwMAorNDEgMzIgNjg0MDAwMAorNDEgMzIgNjg2MDAwMAorNDEgMzIgNjg4MDAwMAorNDEgMzIgNjkwMDAwMAorNDEgMzIgNjkyMDAwMAorNDEgMzIgNjk0MDAwMAorNDEgMzIgNjk2MDAwMAorNDEgMzIgNjk4MDAwMAorNDEgMzIgNzAwMDAwMAorNDEgMzIgNzAyMDAwMAorNDEgMzIgNzA0MDAwMAorNDEgMzIgNzA2MDAwMAorNDEgMzIgNzA4MDAwMAorNDEgMzIgNzEwMDAwMAorNDEgMzIgNzEyMDAwMAorNDEgMzIgNzE0MDAwMAorNDEgMzIgNzE2MDAwMAorNDEgMzIgNzE4MDAwMAorNDEgMzIgNzIwMDAwMAorNDEgMzIgNzIyMDAwMAorNDEgMzIgNzI0MDAwMAorNDEgMzIgNzI2MDAwMAorNDEgMzIgNzI4MDAwMAorNDEgMzIgNzMwMDAwMAorNDEgMzIgNzMyMDAwMAorNDEgMzIgNzM0MDAwMAorNDEgMzIgNzM2MDAwMAorNDEgMzIgNzM4MDAwMAorNDEgMzIgNzQwMDAwMAorNDEgMzIgNzQyMDAwMAorNDEgMzIgNzQ0MDAwMAorNDEgMzIgNzQ2MDAwMAorNDEgMzIgNzQ4MDAwMAorNDEgMzIgNzUwMDAwMAorNDEgMzIgNzUyMDAwMAorNDEgMzIgNzU0MDAwMAorNDEgMzIgNzU2MDAwMAorNDEgMzIgNzU4MDAwMAorNDEgMzIgNzYwMDAwMAorNDEgMzIgNzYyMDAwMAorNDEgMzIgNzY0MDAwMAorNDEgMzIgNzY2MDAwMAorNDEgMzIgNzY4MDAwMAorNDEgMzIgNzcwMDAwMAorNDEgMzIgNzcyMDAwMAorNDEgMzIgNzc0MDAwMAorNDEgMzIgNzc2MDAwMAorNDEgMzIgNzc4MDAwMAorNDEgMzIgNzgwMDAwMAorNDEgMzIgNzgyMDAwMAorNDEgMzIgNzg0MDAwMAorNDEgMzIgNzg2MDAwMAorNDEgMzIgNzg4MDAwMAorNDEgMzIgNzkwMDAwMAorNDEgMzIgNzkyMDAwMAorNDEgMzIgNzk0MDAwMAorNDEgMzIgNzk2MDAwMAorNDEgMzIgNzk4MDAwMAorNDEgMzIgODAwMDAwMAorNDEgMzIgODAyMDAwMAorNDEgMzIgODA0MDAwMAorNDEgMzIgODA2MDAwMAorNDEgMzIgODA4MDAwMAorNDEgMzIgODEwMDAwMAorNDEgMzIgODEyMDAwMAorNDEgMzIgODE0MDAwMAorNDEgMzIgODE2MDAwMAorNDEgMzIgODE4MDAwMAorNDEgMzIgODIwMDAwMAorNDEgMzIgODIyMDAwMAorNDEgMzIgODI0MDAwMAorNDEgMzIgODI2MDAwMAorNDEgMzIgODI4MDAwMAorNDEgMzIgODMwMDAwMAorNDEgMzIgODMyMDAwMAorNDEgMzIgODM0MDAwMAorNDEgMzIgODM2MDAwMAorNDEgMzIgODM4MDAwMAorNDEgMzIgODQwMDAwMAorNDEgMzIgODQyMDAwMAorNDEgMzIgODQ0MDAwMAorNDEgMzIgODQ2MDAwMAorNDEgMzIgODQ4MDAwMAorNDEgMzIgODUwMDAwMAorNDEgMzIgODUyMDAwMAorNDEgMzIgODU0MDAwMAorNDEgMzIgODU2MDAwMAorNDEgMzIgODU4MDAwMAorNDEgMzIgODYwMDAwMAorNDEgMzIgODYyMDAwMAorNDEgMzIgODY0MDAwMAorNDEgMzIgODY2MDAwMAorNDEgMzIgODY4MDAwMAorNDEgMzIgODcwMDAwMAorNDEgMzIgODcyMDAwMAorNDEgMzIgODc0MDAwMAorNDEgMzIgODc2MDAwMAorNDEgMzIgODc4MDAwMAorNDEgMzIgODgwMDAwMAorNDEgMzIgODgyMDAwMAorNDEgMzIgODg0MDAwMAorNDEgMzIgODg2MDAwMAorNDEgMzIgODg4MDAwMAorNDEgMzIgODkwMDAwMAorNDEgMzIgODkyMDAwMAorNDEgMzIgODk0MDAwMAorNDEgMzIgODk2MDAwMAorNDEgMzIgODk4MDAwMAorNDEgMzIgOTAwMDAwMAorNDEgMzIgOTAyMDAwMAorNDEgMzIgOTA0MDAwMAorNDEgMzIgOTA2MDAwMAorNDEgMzIgOTA4MDAwMAorNDEgMzIgOTEwMDAwMAorNDEgMzIgOTEyMDAwMAorNDEgMzIgOTE0MDAwMAorNDEgMzIgOTE2MDAwMAorNDEgMzIgOTE4MDAwMAorNDEgMzIgOTIwMDAwMAorNDEgMzIgOTIyMDAwMAorNDEgMzIgOTI0MDAwMAorNDEgMzIgOTI2MDAwMAorNDEgMzIgOTI4MDAwMAorNDEgMzIgOTMwMDAwMAorNDEgMzIgOTMyMDAwMAorNDEgMzIgOTM0MDAwMAorNDEgMzIgOTM2MDAwMAorNDEgMzIgOTM4MDAwMAorNDEgMzIgOTQwMDAwMAorNDEgMzIgOTQyMDAwMAorNDEgMzIgOTQ0MDAwMAorNDEgMzIgOTQ2MDAwMAorNDEgMzIgOTQ4MDAwMAorNDEgMzIgOTUwMDAwMAorNDEgMzIgOTUyMDAwMAorNDEgMzIgOTU0MDAwMAorNDEgMzIgOTU2MDAwMAorNDEgMzIgOTU4MDAwMAorNDEgMzIgOTYwMDAwMAorNDEgMzIgOTYyMDAwMAorNDEgMzIgOTY0MDAwMAorNDEgMzIgOTY2MDAwMAorNDEgMzIgOTY4MDAwMAorNDEgMzIgOTcwMDAwMAorNDEgMzIgOTcyMDAwMAorNDEgMzIgOTc0MDAwMAorNDEgMzIgOTc2MDAwMAorNDEgMzIgOTc4MDAwMAorNDEgMzIgOTgwMDAwMAorNDEgMzIgOTgyMDAwMAorNDEgMzIgOTg0MDAwMAorNDEgMzIgOTg2MDAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9hdmNfMTkyMHgxMDgwXzUwMDBrYnBzXzMwZnBzLmgyNjQgYi9tZWRpYS9yZXMvYmJiX2F2Y18xOTIweDEwODBfNTAwMGticHNfMzBmcHMuaDI2NApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjhmOWViCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9hdmNfMTkyMHgxMDgwXzUwMDBrYnBzXzMwZnBzLmgyNjQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9hdmNfMTkyMHgxMDgwXzUwMDBrYnBzXzMwZnBzLmluZm8gYi9tZWRpYS9yZXMvYmJiX2F2Y18xOTIweDEwODBfNTAwMGticHNfMzBmcHMuaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWFmOTc0Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9hdmNfMTkyMHgxMDgwXzUwMDBrYnBzXzMwZnBzLmluZm8KQEAgLTAsMCArMSwyNDIgQEAKKzMxIDEyOCAwCis4IDEyOCAwCis0ODE3MDIgMzIgMAorMTM3ODk1IDAgMzMzMzMKKzgxODYzIDAgMTAwMDAwCis5ODkxNCAwIDEzMzMzMworNjg1NSAwIDE2NjY2NgorMjczOCAwIDIwMDAwMAorMTM0MCAwIDI2NjY2NgorMTY4MCAwIDMwMDAwMAorMjIxNyAwIDMzMzMzMworMzI3NSAwIDM2NjY2NgorMzUwOSAwIDQzMzMzMworNDY4OCAwIDQ2NjY2NgorNDk5NiAwIDUwMDAwMAorNjA1NyAwIDUzMzMzMworNzA2MSAwIDYwMDAwMAorNzQyNyAwIDYzMzMzMworNzQ4NCAwIDY2NjY2NgorODM2MSAwIDcwMDAwMAorNzgwMyAwIDc2NjY2NgorODUwNiAwIDgwMDAwMAorODEzMiAwIDgzMzMzMworODY1MSAwIDg2NjY2NgorODQyNCAwIDkzMzMzMworODg2MSAwIDk2NjY2NgorOTAwNCAwIDEwMDAwMDAKKzk0MzEgMCAxMDMzMzMzCis4ODU0IDAgMTEwMDAwMAorOTY4MSAwIDExMzMzMzMKKzk0OTggMCAxMTY2NjY2Cis5Njk0IDAgMTIwMDAwMAorMTc1NzEgMCAxMjY2NjY2CisxMDAyOSAwIDEzMDAwMDAKKzEwMDIyIDAgMTMzMzMzMworOTkzOSAwIDEzNjY2NjYKKzg0MjcgMCAxNDMzMzMzCis5NTIyIDAgMTQ2NjY2NgorNzE5MiAwIDE1MDAwMDAKKzk4NDQgMCAxNTMzMzMzCis1NjkzIDAgMTYwMDAwMAorODA1NyAwIDE2MzMzMzMKKzU5OTcgMCAxNjY2NjY2Cis0MDI4IDAgMTcwMDAwMAorMjMwMyAwIDE3NjY2NjYKKzg0NSAwIDE4MDAwMDAKKzE5MTQxNCAzMiAxODMzMzMzCisxMzI2NiAwIDE4NjY2NjYKKzE2MTIwIDAgMTkzMzMzMworMTk3NTEgMCAxOTY2NjY2Cis2NTU5IDAgMjAwMDAwMAorODA5OCAwIDIwMzMzMzMKKzg1OTYgMCAyMTAwMDAwCis5MzMxIDAgMjEzMzMzMworOTkwOCAwIDIxNjY2NjYKKzEzODQzIDAgMjIwMDAwMAorMTM3NzYgMCAyMjY2NjY2CisxNDU1NiAwIDIzMDAwMDAKKzE0NTI0IDAgMjMzMzMzMworMTUwODkgMCAyMzY2NjY2CisxNDY2NiAwIDI0MzMzMzMKKzE1NTUyIDAgMjQ2NjY2NgorMTUwMjAgMCAyNTAwMDAwCisxNjUwNiAwIDI1MzMzMzMKKzE1NjY0IDAgMjYwMDAwMAorMTY0OTkgMCAyNjMzMzMzCisxNjExMyAwIDI2NjY2NjYKKzE2OTI0IDAgMjcwMDAwMAorMTU5NDggMCAyNzY2NjY2CisxNzIxOSAwIDI4MDAwMDAKKzE2NDQ4IDAgMjgzMzMzMworMTc3MjkgMCAyODY2NjY2CisxNjg4NCAwIDI5MzMzMzMKKzE3OTQxIDAgMjk2NjY2NgorMTcyMTUgMCAzMDAwMDAwCisxODE1OSAwIDMwMzMzMzMKKzE3NDI0IDAgMzEwMDAwMAorMTg0NzkgMCAzMTMzMzMzCisxNzI1NSAwIDMxNjY2NjYKKzE4NDYzIDAgMzIwMDAwMAorMTg3MjMgMCAzMjY2NjY2CisxOTI5MSAwIDMzMDAwMDAKKzE4Mjk3IDAgMzMzMzMzMworMTk2MzMgMCAzMzY2NjY2CisxODcxOSAwIDM0MzMzMzMKKzIwMzIzIDAgMzQ2NjY2NgorMTcwMzUgMCAzNTAwMDAwCisxOTA3MSAwIDM1MzMzMzMKKzE3OTIxIDAgMzYwMDAwMAorMTkxOTggMCAzNjMzMzMzCisxODcyMyAwIDM2NjY2NjYKKzE5MDM2IDAgMzcwMDAwMAorMTg3MzUgMCAzNzY2NjY2CisxOTYxMyAwIDM4MDAwMDAKKzE4NTM3IDAgMzgzMzMzMworMjA4NjggMCAzODY2NjY2CisxNjczMSAwIDM5MzMzMzMKKzE5MzgwIDAgMzk2NjY2NgorMTg0MDkgMCA0MDAwMDAwCisxOTU4MCAwIDQwMzMzMzMKKzE4NDY1IDAgNDEwMDAwMAorMjAxMDQgMCA0MTMzMzMzCisxNjc4MyAwIDQxNjY2NjYKKzE5MzQxIDAgNDIwMDAwMAorMTg2NzQgMCA0MjY2NjY2CisxOTk4MyAwIDQzMDAwMDAKKzE5MTU0IDAgNDMzMzMzMworMTk3NTAgMCA0MzY2NjY2CisxOTQ4MyAwIDQ0MzMzMzMKKzIxMjA2IDAgNDQ2NjY2NgorMTc2MDggMCA0NTAwMDAwCisyMDIyMCAwIDQ1MzMzMzMKKzE4OTE4IDAgNDYwMDAwMAorMTk0OTQgMCA0NjMzMzMzCisxOTA3MiAwIDQ2NjY2NjYKKzE5Nzg2IDAgNDcwMDAwMAorMTg1NDAgMCA0NzY2NjY2CisxOTYzOCAwIDQ4MDAwMDAKKzE4NjU2IDAgNDgzMzMzMworMTk0NTMgMCA0ODY2NjY2CisxOTY3MyAwIDQ5MzMzMzMKKzE3NjE2IDAgNDk2NjY2NgorMTgzMTcgMCA1MDAwMDAwCisxODc0OSAwIDUwMzMzMzMKKzE4MTkzIDAgNTEwMDAwMAorMTg3MzIgMCA1MTMzMzMzCisxODE4NiAwIDUxNjY2NjYKKzE4MjcxIDAgNTIwMDAwMAorMTgyNTYgMCA1MjY2NjY2CisxNjgwNiAwIDUzMDAwMDAKKzE3MTE5IDAgNTMzMzMzMworMTY0NjYgMCA1MzY2NjY2CisxNTMxNSAwIDU0MzMzMzMKKzE0ODc3IDAgNTQ2NjY2NgorMTMyMzUgMCA1NTAwMDAwCisxMzAyNSAwIDU1MzMzMzMKKzEwMzA1IDAgNTYwMDAwMAorMTAxMjAgMCA1NjMzMzMzCis3NzA2IDAgNTY2NjY2NgorMTEyNjk4IDMyIDU3MDAwMDAKKzE1NDQgMCA1NzY2NjY2CisxMjg1IDAgNTgwMDAwMAorMTU3NiAwIDU4MzMzMzMKKzE3MTQgMCA1ODY2NjY2CisxMzg0IDAgNTkzMzMzMworMTU1MSAwIDU5NjY2NjYKKzM5MTYgMCA2MDAwMDAwCis4MDE5IDAgNjAzMzMzMworODMwNCAwIDYxMDAwMDAKKzg0MTYgMCA2MTMzMzMzCis4MDg2IDAgNjE2NjY2NgorODQ1MiAwIDYyMDAwMDAKKzkyMDUgMCA2MjY2NjY2CisxMTA5OCAwIDYzMDAwMDAKKzE5ODA1IDAgNjMzMzMzMworMTgyOTIgMCA2MzY2NjY2CisxNDk3NCAwIDY0MzMzMzMKKzEwNDI1IDAgNjQ2NjY2NgorOTk5NyAwIDY1MDAwMDAKKzg4MzIgMCA2NTMzMzMzCis3OTA5IDAgNjYwMDAwMAorNjQwMCAwIDY2MzMzMzMKKzU5MzkgMCA2NjY2NjY2Cis1OTY1IDAgNjcwMDAwMAorNjIyMSAwIDY3NjY2NjYKKzY1MjIgMCA2ODAwMDAwCis3MDYyIDAgNjgzMzMzMworNjg3NyAwIDY4NjY2NjYKKzY4NTkgMCA2OTMzMzMzCis2NTUwIDAgNjk2NjY2NgorNjEyNyAwIDcwMDAwMDAKKzUzODYgMCA3MDMzMzMzCis1MDkyIDAgNzEwMDAwMAorNDM3MCAwIDcxMzMzMzMKKzQwNDggMCA3MTY2NjY2CiszOTIyIDAgNzIwMDAwMAorMTE0NTMgMCA3MjY2NjY2CisxNjA0MSAwIDczMDAwMDAKKzE2NzU2IDAgNzMzMzMzMworODYxNiAwIDczNjY2NjYKKzk4NTYgMCA3NDMzMzMzCisxNDk5NyAwIDc0NjY2NjYKKzE4MzY1IDAgNzUwMDAwMAorMjEyOTUgMCA3NTMzMzMzCisxOTMzNSAwIDc2MDAwMDAKKzEzNjg5IDAgNzYzMzMzMworMTQxNDcgMCA3NjY2NjY2CisxMzE5OCAwIDc3MDAwMDAKKzEwOTk5IDAgNzc2NjY2NgorNzcyNiAwIDc4MDAwMDAKKzg3NDQgMCA3ODMzMzMzCisxMTMyMSAwIDc4NjY2NjYKKzE0ODQwIDAgNzkzMzMzMworMjE3MDIgMCA3OTY2NjY2CisyNzA5MSAwIDgwMDAwMDAKKzI4OTkyIDAgODAzMzMzMworMjYzOTEgMCA4MTAwMDAwCisxMzgwOSAwIDgxMzMzMzMKKzExMTk2IDAgODE2NjY2NgorMTA0OTQgMCA4MjAwMDAwCis5OTIxIDAgODI2NjY2NgorNzYzNyAwIDgzMDAwMDAKKzczMDEgMCA4MzMzMzMzCis2ODkwIDAgODM2NjY2NgorOTA1OSAwIDg0MzMzMzMKKzkzMjQgMCA4NDY2NjY2CisxMDI3NyAwIDg1MDAwMDAKKzEwNDM2IDAgODUzMzMzMworMTA2MzUgMCA4NjAwMDAwCis5NTU0IDAgODYzMzMzMworODI2OCAwIDg2NjY2NjYKKzg0NTAgMCA4NzAwMDAwCis4NDMwIDAgODc2NjY2NgorODI1OCAwIDg4MDAwMDAKKzg4NzkgMCA4ODMzMzMzCis4MDUwIDAgODg2NjY2NgorNzk2MyAwIDg5MzMzMzMKKzg5NzQgMCA4OTY2NjY2CisxMDAzNyAwIDkwMDAwMDAKKzg1NDcgMCA5MDMzMzMzCis2NDI0IDAgOTEwMDAwMAorNTY3MiAwIDkxMzMzMzMKKzYxNTkgMCA5MTY2NjY2Cis2NDk4IDAgOTIwMDAwMAorNzA2NCAwIDkyNjY2NjYKKzY2NzMgMCA5MzAwMDAwCis2OTU5IDAgOTMzMzMzMworNjIyNiAwIDkzNjY2NjYKKzYzMTIgMCA5NDMzMzMzCis4ODkzIDAgOTQ2NjY2NgorODI1MyAwIDk1MDAwMDAKKzU4NzYgMCA5NTMzMzMzCis1ODY3IDAgOTYwMDAwMAorNjIxMiAwIDk2MzMzMzMKKzY5ODQgMCA5NjY2NjY2Cis2MjIwIDAgOTcwMDAwMAorNjk5MyAwIDk3NjY2NjYKKzE1MDE0IDAgOTgwMDAwMAorMjIzOTAgMCA5ODMzMzMzCisyOTU1MiAwIDk4NjY2NjYKKzI0MDI0IDAgOTkzMzMzMworMTU4MjAgMCA5OTY2NjY2CmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2c3MTFhbGF3XzFjaF84a2h6LmluZm8gYi9tZWRpYS9yZXMvYmJiX2c3MTFhbGF3XzFjaF84a2h6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmZmZTM1OAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfZzcxMWFsYXdfMWNoXzhraHouaW5mbwpAQCAtMCwwICsxLDEwIEBACis4MTkyIDMyIDAKKzgxOTIgMzIgMTAyNDAwMAorODE5MiAzMiAyMDQ4MDAwCis4MTkyIDMyIDMwNzIwMDAKKzgxOTIgMzIgNDA5NjAwMAorODE5MiAzMiA1MTIwMDAwCis4MTkyIDMyIDYxNDQwMDAKKzgxOTIgMzIgNzE2ODAwMAorODE5MiAzMiA4MTkyMDAwCis1NDYyIDMyIDkyMTYwMDAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2c3MTFhbGF3XzFjaF84a2h6LnJhdyBiL21lZGlhL3Jlcy9iYmJfZzcxMWFsYXdfMWNoXzhraHoucmF3Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNmYzRhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2c3MTFhbGF3XzFjaF84a2h6LnJhdwpAQCAtMCwwICsxIEBACitrb2dPx8XY1Up2Q3VzWNPVSXZKfn1LdVldwcjE9PT0ythJcnRCUlTz+cfaxtZUxfns7OP/1U9lYn3Z/u3p6+HBW3NnZ0T05eDg4OXGXkxMS39lWlFJ2ffx81B2eG5tcFXk7eT+3GBoFxRmdvno7+bnw3VnbX90ZXdYW99fWNjE1M/P2MFY0NZ5ZX9ncVLb+OX/4fhUR2VzRnxPwvXJ0FnfWXXC5u+V5shKaxARa3f465CX58d3YmltTPnk5uzk2EN6fHlicMPl4+fh6Phbdnh4SkL0//X+9F1xZ2F1X9374OPlwsZWZXxVwVRPcElwYGRx0PTB9+TYTEJGS3JldnR5c2dmfXNP1EJxUtzcRnHczU5OTXF3WsL75+X79NlzaWHY++Po6u39W2ViZtzk6ZeV6O/4WXhkeHxK9+fk6JTq4thzeGdmZnnE/NlQTGRme0/azPbx0UBxYG96QM7l/8vaX31ibEPw5ef53UZmaW1iZFvN5OVWRkhyfHxkdlzYx19F29ZJcGF+0Pb64+fwUnx/YG9w8e2U7fj0RGRua2Td5JeWlevu/dVwcENE2PbxzcnE9vHdW8fDU397UtPczM9U3FNX1FDVzsnI1XZGRVb3+M1dcUtyY2dV5O3nxtRIYGtuY353w/vJU0FDd3hjZmR4fntmZ2d8TGRmfNP1xdX299BNf2dnZ0bn6ZeRkZfhQn1M3O2Xk5yTle3UeHx19OX18fzSxdvA8VN1XHFmZ3tYxEFzS3dbV01eWHN2cmF9Rc3g+PH/U3J9YGVyT+Xp4Of2XHRqEGpk2eHm+sx2Zm9qYEPR8/BTTnN6f3hjZ2B92d/B5+TnyHh6fED85OXi/9hVc39I1uTu6Ori5uH42F5RxPb3wsbx8vPY0MzOz8NEeWdmc0TZ8v7m7ufHX1rfV012fU/TWETcychXeGJrbUzf/uXATmRpFxMVc9bb3U12Tn9kY3p1R1DO/fz58FB2fmVAzOTh5P/7wtXTdVDw98/G9OD/0F15Y2Rwze3t7+HwXGRhRcr65vnQRFpeVMbglOrk9Vp1cmR8V8T64+uX4PzwUHthY0jM8PnES3Nja2kVYnfW0lde1Hxua2oVa2FBzcPfXVNkbG59xff/+spBdX5yclj85/XIw/3n/eTk8ddERcfVz+Ht4MpGQkRJ1tbGwtvd3VNV091cdUpCXF9dVV5AUNj4+szLzER9Z0jl7ZWW6u/k8fr/8eXn5uT+4e7g+9t+axViWsn67O7wZxYdEBdrZ3N5ZG8UERIRb2FxV9TRRnxhFRdpZVLA9//890lkZXBE3cHL13d0SFzGwffn+PDH3dtXdnxmZVXy5fv75+VRSktT9uCVl+/DQHN5ctTllJTs4+Tk4+b3wNXw5OHol5Xv+8L2wNrExVNYcVLD3NxacX17Y2Jsek5Kc3lvFWtgcV9VQXtpaxcUY0hAfWZkX9rIzdRXUXJB19/NyM9efk7G0dr28f3+8/daQ9Hw5uX09fnCTnZc11fF+OHg4uVHZm1iReXrkZCRlfzIxkHT5O3o4uDs91BTU8z3UVDEz9rFwt9naGJlfHZFcXhjbmtvbXxGRndkfHVmaGR6c3BLUEt/R1NBdGFkTcLbxMHIRnx0XPLtleDMWVZT39/Dy83C2Mv4+8DK0n1tYUjZzufs7eDOTXxxckpaxMfL5OHk5eTx0vXj7+iUl+79X0tfz/fY2MLaU9jFUUlFd2VkZHh4fX9hb2NkfnN6e0p9bhMSam14UPb+8txHSklexfHl8NL0zVFaREbW9eXnzdDbSGRsaXteXNv65fNEeXJibn1bVcDe9OPm5/tX18fE7ZSXnZPp+sPI5uXn6eT5/dfBzdTe887cd3pFXkhSTndBfXBBc3h+bGoVanxAd1xPenh6dFxzZmVmfktI9/vDUUFPWNb2+PL1x1tDdmdJ2fb588fQRnXR1kBS3FTXVMf28FB5Z3ZxTfb9/ufg7eHeQHBzTlfL5eT6/cvxwczl/MT++v7KzdZU193z+eb6ytNaeGVwXt9V1ttYS1J2f01XV8nTWEdKQX5gYGJiWPDl+cbTUGVhdnHR/8nCz3FjZmRmZWV/c0rSVXJsamhnTf3hydXXdk13bGZQVcDzxtrA/u/r4/rA2vP64+P5+OH64uzn4OPIzfDRTF3F+OX08cj+89Hfw07Xydj3W2Z5cmB+fGdmS17a0k5KSEBzfHx/amF3cXRIfNrZZExxZnBYX/73U3F5fnp3zfz/7f1QZGhpc1nJ5v3FxcrI/t53d9BUVfD788fRRllKcEPz8/bMRUlc0vPg5eXm4/3Lzlh1xczD//D84+D3X3l5dc/tlJTnRnJ8ZUxRRM/429jef2Zlf0tCd3N8dUJ0Qn1gckl8WVlC9NZ+c2BqZUFU0FpCTUbdVl7NWHVWRndbc3xAT0LWTHLYyfH4zkBbUs7+//rWRNjUxePh75Tg8s5cxufk4/7WQFna/+fs4/Lz1WVgenpF2Pf45PfFzt/GVXVwRtn65PdAfnZwdtfeVvbMUEtlZnBISXJ5dnVMfGFtaxMRFGpgZXh9f2NtbWNkU//n5clIeHl+1/H1zObg+/7z/ebg7erv5/nm4frw/eXj6O+VlO3j4MnSxcXw5eTl+sBCcnZweXh9SVzeyvJTZ2dydFHe3/b499FQd3NfysJDc2Vnenp7cGVlfXtkemV8c2BsY2dsaGF7YWBiahVsYX59Z3PS/uDm9trFx/Pk5f3n6e7g4eHj6Orq6unj7Ojv5vn+5efh4u7j+f/ETX18ZWVycUREfWFhfnx/SUTc9fv6z3xsYXp+d0dXzfTN2ll+c0xHQ0TRUEVGTnZ8f3XezdrYW3Nkb25taRRoYGFiaRUWFhVpYWdkcF/VUERLTdH94uns7eqRlpGQk52dnJyfkpCQlujg5+fg4+H7yXVnZ3BJ387d1tRSRnxjYGR+c3VP1MP29sFQfXNX3tXcUUVU097K30BOc395eWRkZmZhY2Jiel9cREV8Z2ZgZnxgbGJubmkVa25sZ3xzcEJTw9zf3l7Rz/D55PP94ef65OTs7uuWk5CXlO7o6OqUlZaRl5Xk29TaxMP0y/Px//ncdH1wXM3z8fn9zMxUVk1zSV9MdUt8enpkZ21pb2xnZGBsFRERFW5jZmR6ZmxpFRRpfkxTVkVY0d3VWEBHVPLk5ffGxs/EwvL98PLz9cnY0dz3y/b8/Pz/5uHl9s7I9Pzm4+Pj6eqV7/754e3m5eX65eDu7+fz8ufm5Of98/XPwlV9bWgVFWhtb2oVamgVEBYVaW5qahYWFG98THZCU1TXX3N7ZH1Z199SXNFWUFlxcE3c+ef2x/X8+uTh5/j+++zo4/7E3NFT0NTY8eXn/ld0R1rJ5uDt5vj69NNHRtv38+Xh5f/z/Pn08fD77Ozo4v7yy8rAXnR6Z3p5f3BnYXx7cHNkfmdsaRQXEx0QF2ttb2JhbW1ib2Jhd9few0F0RXFa30Re08bl5/3w9PP29/zZUMr+4eL78vLw/ubg5/7k+Pvn8fT88frv7Ozu6JXt80R6XMPw7eTOyNFXx1TR/OTj4uPh9cvFWFhxZHxxcEx1YWoUbmd0cmNgbhcVFxdrbXh5ZWFpbGZjYWZpbX59RkB9fWRkZHt8clbz5ODl21fYzv/k5P7P8PP2/NnF8/rpleP/8fXL9ffK8OHi4+n7z/77+/30y8nxysP3z9r95eXn/fb65O3o4/FfUVVb0VNxcXJ5dHR+fHdGd2FqERcXFmoXEhMRFG9jYWFmZGJjZmJxwcDI2FHR0VDW1ExKUc78+/deTkpwXMXKz8312VZZRtT95uzj/Pnn5+Lm+efm4u3p6ODm5vvxzMfD/Pvm+vfCQlrR9P71/vr55v3WW1La3tFeSWdgYmx4Z2Z5fUd1Z2FjYGFhYGFmZXl+SH5kc0pdXk5wZXZIc3F3cHtne0l3c3dJVNZOf2RJ38Tz99dbUt7/5/709fzywsj3++Lh5uT8/vzk6JeV4ePg5+T68vqVlZeWlOjk5ubn5cn19MLHd2BifH98dGdtFBcUaGFra2NkcWZ4eHVEeWRpbmJkdVjFdXNxYXxlfnZfydreQ35jYE/X9t1Y1HZFdnt8cFBRys1CcX1aXcfNy+X54ebk4Pri4+Pt5+bk5+Lp7ODt5+Dm+Ob9+fr65cBTX/Xj7+zh/lV/eXxfRkFUX0luERIXZ31DQnBweGRhZH56fHBBdGRnZVNEdU98cHl4fEZSTdLB9MdMcXnWyfTMWlt/ZGFlRktaXN3BWnB618rK/cXPVElU0/r58Pn45c/D3v/j4+/n4eHx98nm7ePi4Ozk9Nv07euV4+TyV9ZW39vW01LSWHhtaG1gZWFkdX94ZHZAdnxkcHRkbWlie3V5Z3tjY2Z8RVHD1F9Ycn97XvDl+VFBcGFmf1XT0URA1kpyenTM9fP1ws7Z2sD/5ebj5+Hk5P724ePu7uDh5efk7e7m5vv48cZdQfP5//jZ1kBbW1L3wMTHUHd9ZGthc0zDUHV/e3lz3dVER3NnYGBpZ0F0TXFia2tpbnJDSVh1cnN2eHXO9/L2UEhJQn1IQXNd3tzS1XNldE714+bl8sNQ2vHH9P3x/f/OUPLm4uri+Prm5+Lr4u3s+vHK9sH44f/kyXZ+fnl3yPf0/dNHTHBgYXd23cFAQnZkYn50c9XRWV1ccWR8enZEemRnYWJiZ2N5Q0t0cHtjdFLR91BBdnhnZkJKTEB9f3t6Y3lfwODn/ffx/P3v7u3s+v3MzNTd+eTt4O3r65Xs6+vi7+Pg+/PFUsz2+/7aWnJ9ZXNTVsTRVE1+YWl6TMDz9cZFTX1yQUBNQkhIcXF7fkBT1UNMcHJkbGNgYGBkenNwZGVH0cTRRnJgY2J4SHBzRFhMSnV1w+Tj6eP/w8NV1vD6+fn9wtNCeUDJ9Prs6+3t4eft4efj6O7j4vL0+v782k1hZntkQtNQRNzL2sRIdtvS0tXaQnxKf0FU1NnA901xfmB9c0dU1kJhZG9vYGFlZUZDdX1iZUvVwcLEdE12dFpweGRxSXhlYnt1QtvB/cTA98n7+/jk5efxwFxH39r4+Ofk+uf74+/v4u/r6ebyx8rD8c5fcWxnZ390Xt3a9/331F7T/efk8fndR3h4dEdddVFaeWxuaWNyW0NQdnpkZHt+W3FH0Nd0eWdlQtZLQFpzd3RdS1N1Q9xSdmV9cV7w9cTER0xN3dPl7PrlydRMT1DC4+zk5/VTRsn/++3k7+/ky8Hx/eLp5f1XcmV/SHHNyPXOVktw1d724/v22XxgYEldw/TJzFxyZHVPXsba1U9nY2FxdUHS0VRwYxVqaWVW0F52Zm1gStLAyc3fSmZrZkrR/PPz2X1sb3DG+u/s7PzTQlPSxODr6uDx11rF/OCVlZaW7vzazfXn4OT2W2ViZnZFw/XOxkp+fkzX9ODg81Z9ZGd32ff0TXhib2lve0bw+9t3YGsUbnNa29fRXnhiFWB32/jIXHF8c3zZ/u3i/vTa2EdcxfT7919we2RgTfXz8MnN3tPR2vH74+LwWHZAQF/2/ubl8/z8997J4eDn33J5e39wy+bn8trG3VTcxP79+PNBcnhxS9nwy95KTk11S3fF8cnce2ZtbGJlQ0dCS3R8ZmF7S0xwQH1nY2RLVtjH2lJCQ1zW08XY09xPf2V5S974/MNRWVBdU/fg7OLj5cNGTcfy4ebh5vL19/P44e3g/sjXTHt9cdv9ycPeyPTJ9vjk8MXNxEN6cXRFWWV4e3l/fkNG0cFdQnNlYnp/ct1GcmVnf2RxRNjxRHRBdmdkTVP29NfWQ1/c+eb85/DYWnlnZ3d3V8NBdnxPXNX38u3mw91fQELSzvDl8szW1sTy5Pvk5/DM09JU28/z4eXDQFzA8P764+P82VledUPcy/3AW3hhZHfe8Ofn8UVjaWlicnFBSXtuFGx4QtDT0kR5Z3p0fUxS09JOeGNlWt3x98PLxVt1QULR211RTHBneNfK5u3t4/ze1vXy/uLt7+bPWE7c9OHu4Of+w15CR0bbwsLZQH5mcNH+4eX49VVMTtTUzcnT13NmYGVE2v/zyNZOd3x1RllQdHB6bWlve0fBVUdHQllf28LaxtzbRXl6eVrf/OTk/sPVREZf0cZWR3JgbG961fvm5fPfRXVI0c31z/HAdXt4RtPz5+fn/PHl+eXm4Ob78s/G2sDy5/rHVdVHRdHJ5fr03NF0ZGV/Wczx9/fad3FMc0hBQ31lbBYXam9y1UB3SHJ4cH1dzt5UVlh5ZXdN0PHM0dJ1eF/cwvzk8tFbeH53cNf//s/CyMrl5OTt7OX199dIUlHS/fn19/LA9Pn85eT+zdBFcUBId9z210p0cnRV2/Lh5dxRQHpgZ3PS9sbL9ttd0NFc19R0fWBqamlub3BKfHdJXsb0/Ofn8crOwMbQ1dfC2EFHQnRax8Pe3l9LfmVleHhlTtFWRUZcx9rcy/r4zdVSTXB8cFTw8cr55Prl5+3t5vnw8vn9983C981cTVhX38X19cjcQdfC2VJc0tJQRljH39LB989RTnlkYW1tb2xvenFnenNKVtvc3sFSdUZGSHh/SURfdE9SR1vd2lfSUHNLUFTb2tv3/fbJ/uXm4eHt4uf3xPbRdndIUtldRMTCwf76+vnJ9fTxz97fXU5wc3J3Q0hX2N3O9N1Y3dZYU1DQ31fAxNRd1s7B0kBKcXlkY2R/ZXBMR0N1TNzTQVzT39vDzsLVWElxcHNE19LGxd1U10twQEFIdEhPd0Dfxs3H9P3+5/rw09jAT3ZxXd7e0NXMyvD///r8/fb/5/D18P3EXl9Q1tBFVVfX0kBAdFTE19je2lXYwlfP2NjF3d9NcXh+eGJhZHp7en5ke3JwR0Vd1tzcXcXbXVNPcXh/fnBTW9fSz8pXWkJXzc7I9/P98/bB8OX45+T58cvA1NZU1trbzNXVVV5RXkFb3MLG2tDDylJHTndNSE93cnVARlLE3MzNwf768vbKw9vRUtjw8sDdVUh6YWd6d3V0Qk12d09IS19S0tJX0VNU3s3D1lJZXVp3fX9FQkxHSEBMQkVfUltQR0FcUNLC8/bz8s7C3FPVw/D3w1RUw87EzPz65OH48Pzw/OT69dvdU052cUNTW1nQUF3T0NPeyc7N2ltOU9bQ2FdYV1h3cHlkeHB9fn18eHx8emR6c1pAd0pV3NLKyszZXUJDQUZfUFNFTUxc2dnSwPPw9MrG9/vh4+f6+/7CV1tEX9ffU053QFBV38XJ8fPxzN7Y3dPdx/XJxVZBc3ZJcHRLWkZDUdzYxPT+/Mvd2sv98szbVVN0cXJ9dENaTXZ9f3xzS0dGVdzQUnd2WdbE287w3050TEBNQV9Td3FwfXlkendSVtjNzcr38MzFzMPDxNdU28PbxMTZ11NbxMXQz/z58/j7/vjn4Obm/cZXcXRNR0DR01HRXlhcVtza9vDC39zEy8Fe289bdUNxZ2FjZ2RneHlzdnR1dHVOcHxLd3xC09r18vXUQnVAX19WxsHE0V51c3FCUdrL9fP88f388vrl/PL9zdlVVFVYQU52dF/S2N3f3VJEU93exvH98/LI2FRbWVtQVNLT29BDdXdP183/4ef5/PL2ytzYw8PYU0h/Z2BnZXh8c3BDSnZBSkpDW19X3cnzy95dQHR+fExTU9RfQFlxcnB+e3TRzvfBwcPExM3AyfDy/d1PR0tY3NrJ8PPJwNzXW1xUx8zJ/fz48/H48vTA1lFV2N/Y3VXUUUFAX1DGyfXE0NJXxPXN09vPzF5xf2VgbGBkZXtzd3Jyf3xDRlBV2cvAV9XSV8XSUkdMUdFXWtfeXUV0Rl/S8/7//Mnd9cfRw8jz+P3Nx1FYX0BfUNDdX0NYQ3dEQF3C28bPxl5fUNHI0FTWwcXX3NzW0cfWXtRU2fTx8PDByv7y/fHw8MrEQmRkfHl8TF5dT3N5cH12QUFYXtdVQEx3dFzRUVpOdUdBTEBEWVfTU01CUVJB0tpX0cLx8svC983H2t7T2N/QxsP2wEHXXVHd0sfY2NTA1lPWUcH28vbN1NHEVMPfVMTY3NDVXtnEyfTDzs3P2txR1dxIQndzcntlZX1lfWVjYGB5d0lH19HeydjLw9jx/8zURXVTWltRUF9dXElKcUpd1s7M9vnl//j79PLwwtxWW1BdSFDZ3dVDdHB0UNhV3d1Rx8bS1tTWzM1ZTnd1Ud/S2vbl5cja0F3T2cL28PH+8M3LzdnE0kBOTnZweX53dHR0fX58dEd1fHZMQltGRlPYwffDQXR/fUpNR1fEwdFeQ0JE0NnQ2M3F0tDdycja8Pjz9vTB0FBd2vfJxlJWy8TZ0kVZ1tfb3Nb3/8LH1E1BWVXZ38HwzNzfSHJDdVrYy/j+2d7H2cjL2sbQUlVxZX9nZ31nYWRnf0pzdnxlQ9DcwM325fLL89NHX0tA09HGy1NCTHRAUlTYwMrzxdn3yv3k8cPz8PH0WnZIdVrT0VxYVtVfR1h1QFh3SdjL8vnfU152d0Zc1/Xz9cXawMbKx93F/fr58lZfUFDYyMnSwtFKS0p2dVhMd3lzT0h3fX55fX11Q0FRUFpQVEXR3UBAWcD/9tBBcXl3dV7Hxfb82lDX3ff//vv45+Hlz8TVUtDQwsJQXlZ3cVFXVdZbSUTB8vDExdpUR0BU2NrK/N1U31lW11lN2vT0995VXFpZ0svJ019GeGRzfXRKcnBKfHt/eWV/dnNLTF9d38PT28/1z99dXcDCyffdQENLc0BX2s7L9dvc28PO8PL74+b45fbV01BHW1hfUUZ9c3RDWVtBSU5W29DPy9bH0lJHT17AztPK9Mfb28PJ8+fm8/DOW0BMR1lT1NdNe3JyfndZVlnVxN93cXR6e39yfnxxT0h2QURIQFZWUtLK/fX2ytlVWUROX1DBx1XQ2dVf3vfz++Hn/PTG3sfOy/T0yPXfRkhYQUtXVEFNU9LQ3d3a1V9RUUNNVNxWVcfZ3s3KyfT02NBTdEp1RdTFxMrywFx0SHV2R1dRU19MS3ptYWRlf3d3SnRDX19V38THycPMysTP0F5ZTXZK0d/AzcvBU1bYwNjy5fr8yv/L1NDDwNr2ysnQ0V9PWlzV1MzA1FhGXEt2SVpDQdLB2V1V1lNXxPTOzP3k8vT0219IRVJUxvLL0dVNcnxNRUPVxNF0d09+YWFyfXhIVVlzcnJ2dElPSF3R0dRXV1pMR9VQRNvzyMXBxtvcwc7P9eXh5f/8/snE9vH2+uX2997U1VbQ1VXWwdFEdXl4ZXxaR1/O8vTEV9LH1dPEwcL29vDHQ0x3cEp3TdLa1VJZ1dVYU19MV8fd3F92cmVjZXpxRURHT3FydFpdTkHL98v02FJVQ0FVWlbZ2N/W3MLM9cvYwPHy5Pr0zPXEzcrD8PjwxN/b1FtQWHB0V8TGUEx3eWZ9d3XS9/fB0tHU2cjbV8P65P3w8cZdRNdeRNXfx1VSx8XRUnd9c0VXUFpAdH1lYWNmfHdJcnxDdXZLdnNOzfb12N9ZdHN0SErX9/bR2f/x9MfF0tn3wfbw8/L988jY3/jh+vLw5uX/w1BFQcXS1Vl1dnttYmFlRcP39PTz9cLd1FfD+PPPzvXfXXN9fH5cVURG1crC3lNBcHdaR1pCd0lDeW1uYn9wfU5QV1tYR0NB0vfz/v3M3V13fnJayfTPzvXw9M5QR1be8fXx+/r6/c9XW1rC8fT98OXl/sNRXkXUW1nXXnVzZGNneF3X2fL299nTXVtY2vn09v3y99pfd092R9dS393Mzd5ZSHZwRkhDWXFwc3tnZGR3RndCR0p8f3lxdFrJw/P4xkV2cnt7edH3x/Xx/fHK3lBQVfX2+ODn5+Xx3tZUyvjl4Ob7+fn31VDfysXY0kFxemFgZGRJVlfE28HPyMjHwcn+//bHVN9HcmRgZnBNRNLfy8jG1ElBRlTR0tVCSXtnbWlhdE1GX3VKd0p0dd3K+P3y8c/fUkl+f3xaUNvA0Mjz9FZa1d3K9uTg4eDn9FxNTVXB9vn9/fzK2lTS9/3N2MVETnZlZmR8QlZdUUVd29jS3fT+8MLBzt/Iy1FNdUtBU1XCyvT321J0SV1dV1FRREllbm5tZ3deX1BBdnB9e31fxMHa39nQUUdITk5f19RSV9VSVtBbTEVZUdjw5u3v7+HwwsnO9vvh4OHk/8TVxsba2VFSRHRzeXp9dUpFWUxDX1HY2cL++/DI2dBVWV5XTnV2c0ZEVsTNxMnUSUROcU5KW11JcmVgZ3p5RFRR0ldYUnZ319BV2tBdX0FYW0pbVVnW3tTe0dPP10dRWF7BzfLj7ezj+PDD0M3x8+Xk/vZXUthTUdNcW1BFQEh2Q0ROQUR1dEJUzPX85P/y8cza3VdWVklMSndFX9XG9srE0tVQdnFEUdzWU0pnY2FmYH51dXRITUh3SkFcWVpfQEhGXllUxlNc1VlaWVfW1tNWWUhMVM7l4Ovu4eb7x8nz+OPt7e3n98fcV1hF3d/R31BGR0xwX1JJQ3ZyR13UzMjB29jMxdjN1F5TTnl2cUpVUd/32VtEdnJ3dVfR2FJ/emVjYXJyS0VHXdVQU9ZRU97dVdfd0dfY3NdXUkBfXEVR09dTUEx1RNPF/+Hh4uX5ysXL8ubk4OP69dLTTV9ZREVa3ldVXdbdXFZTRHx5dHRe2szJw8TT3sDO8vHJwVZHTF1UUsXD2ENyfnl/fERS3snCRX93cnl/dEN9cU90dnJ3WkRBWHV9TEh/T9ZWXltQXl/V2sDE31NcSEDWVv3u7uLn5Pjl+vvi7Ozj5vnMwt1SUl5NQ9RVV1RWxM7TU19PdkJIc17fVE9MT0tUxdvT0dlFSHRB1F7A99pcSkp5cHRxXsXAQ3Fwf3hlf3dCWkBFQdLc1sHfxVBFX1pZdU1TV0BwSkBF0N/ExNvRQ0Zd0s/84+Hk5Pz1x/fx/Prk+szOx9rRVNFW38XSX0Dd39XZ3NxRTHN/d0Nb3dve0dHfyfbK8crMVEN2cNzD3MXEy1RDcHBTRFPQ30RyfGV5eWV+dkt2cXB3WkZCQljVU0Zyc1pJcHdOcHp2SllQ3/bE3UdFR9z75Obg7Ozh5uTh4O/t5eX/9dzYxd/SwsjGzMPdwvTBxNXQ0HFlZXF1cnNwcHdNWtfDwPTEWl9CfHNS29dT1lZMSnd1UtbV0UxKdmFlcXRxdkBIdHdHXNPP2Mbf2dNDTU5AR0BQSXZ2dltQxcHSUEBOf3bUwP/55+Pj4+Ht4+Lj5/rA3VhBWXVe0NTW383R3vXz8/XLxdNcTE13dnVzcH9xdljb9Pj/98XZ1U9NWl7VUVNXV1tJQtDSXl5Gd31/c3ZwdXJ5cXR2cUDc0kRQVE1HQU51cXFwfXNzcnND18/N0N9YQEdGV8Dy8v/n4u3t7+7r7+Hj/NjIy9rU091X3c339PX++vv0wNJBXUVzfnN+YWdgZXZL0s33w9/ER09Kd0pOWENS0tDb0VPfxNVBW3N+Sn5zcH9nZHFySF/cz/TL0sTcVsHWVlR1fnh/ZX5JVsbBzNdeTX53RkHSzsz2+Pvl4u/v7O/g5P/Az8DT2NVKStDXVM79+Pjm+fb309TQRUNOZW1nYG9+R8H2///J8t9W0tbf2t11XNdKQFXf0NnZRF5KfnNwc3JlY2Z9YWFNVlTEytXV0VNEXl1OdmRgZ2BgfFlTVsJRWkdIT1PG9uX75eDj4+Pp6uiV6+Dn5P/28vXF31jd3FTF8OTk4+fz9MdRdEhMZWFva2hpY39T0dv329vUW1xc11FSSHF1fHFMU9zT99tARXZzdUt8e35hZWZmcEPU2/P0w/XA0tRQQHFNZWJkZ3xCV1zayVLQVk7QzM71+PDJ5efm4unu6ZXg+uTKxcnEV8XdS0NHTtb/5+bi4f79xVpQR3l/f2xoYGZ6Rl1SxsjAxsTUyfHdxM1SdExDRtLAxcHeT3B2eHhzZWF6Z25sY2F2V1THyMfXVFBFRUtzdnhvbmZmeUxe1sDa1MbZwP/4/fzn+Pjj4uuXlpSV7ufk+//7+/TAz9ZNR1jW/Pr+5fjN2FRFVlNPeWFjaWlubXpzcUJVXkfZ3czzwFNV10J1Q1DFz8LSUXZlfnl5QkB+eHlgYmV+WMfJyM7EW0VQUtjN1XB/eWFhZmV0R17Q2tXdzM795fj19vn8+efi6ZXr5uT+z/Xx8f/w31NXWnFEw/34+Pnyy9tX1sfJ9V19f2ViYmZld19U09jb0Mj///XIxtTZUVvX0NrGR3dycmVkZXh8eGdjYmJuZENe3NVTWUROdUPU2lRJfXpkbmNgZ0tbRVPG2NXO/fz7+Ofh4+Dt65WWlu7t4+f//f729PfNxNrU0ff8+OfyzMDTW0JZ1lRFfGZvaWtqbGZF0EPZwNlXxvTFy9rfUUNPd0zV2NtDSURPfH5yfHJyZWFhen5wUMXP0tLXWF5f2vXOxVl9ZGFtYHtN0NhXV9zaw8Dy+f/n+PXL8fv47eju4+fk8M7Yz8rbzNBF09rI9ubj5+X13VFS1VbY10RyYmNvb2dK2cH131LPw97N/v/MxEd0dHBQ38/HVVh8cGViZHN8YmJpFGJjZEXf09PTc3xNR9j39Vd2eGxvbWFP39Ff3El0yPXx5u3i4frLz/7m6JaUlOvnyvP5yvnh/9FbRkXI/uTu7uLn2HV1REVUzdV/bWoUFWxkUsFTW3BlSsH38v7/zExlZ2V8V8Hw2lRYZmZlfXRHXXlsFRRif9Pz/vj9zHZ+QsX8/PDQdmRvbGNy0drFQXd6Z1rP4eLh4vnFR1zK5uqV6uL6y0xSzvnm/vdQc3xI2P/rlevv5MlMcVXA8PTaTGRibmF7VfD3x0JLdEnZ9+fn9NJ3emRkdN318slBdn9gZHFAXHluFhAUbmFC9//2XHdOfX3d9/HHU31jY2BmSMLa1HFhfExexPjt4uf2x/H65OKWlZXo+fLy8v3g7+XJWnxIzfPy6JTq7czQ28bTzfDTQXJtFWlmZ0PSQ05kYX1DVNLy8dhEZWZ/XkbcwlbQSXplc0BR00R4YWoVbHJG1f3z89x/cVBWxfLx0FBzYWB5RNHKUkJxY2d0VsH45fb21UfU9/rn6e/m5PfBzPb/4+3HWktzSFP/4evr5ufzzszy/P3620J9e2djddXP8UFLdHBwQ8vx5PBQQHZxftfN0cBddHJ/eX1QWlZwbWsWFRVjdEzT1UN1S09e9cLGy9V9bGd4e1Lcx9J3ZWdyTsf0/+H+yVDN/Pnv7ujq6PjK+f/h4uLs+N53SdHF++Lp4uXM2PfJ+uT098V3bGtiYH1EU0N8ZmtsZnPCzPHCQn9ldnHW98TbUUxnYX9xwdxATX5jFGhjf8TAxNvXR0Df0vrmzfbTSWFmcnTNw9XQXXxvZXfd5fzk/MZWUcv35u/s4/rwUFfO9+Lg4eXbRHND0PLs7+P4/vDL+ubv7uH0SHNhYn1H2N9AfGVgbGVI2/H3zFhNSnJYxc/2xnF/f2JnSlnTXklnb2gVbHpxdHd4eH97SNXSyfXDQXdxZHhBUlZXQnlkZnlY2frn5fn++PPl4u/v7uD9+vHA8vjh4+znzsBW0ffk5Obh//vy/eLs7+L7yE5xZWNkcX16emxqaGlnd1re39JeTE5JV8/MV19Ff312cVfHz8VYfGxiYGF0R0t1QHBzU9PL//7331FIS0p8RV9NdH1hbXpyQsny8vT28fX5+ubi5vL2zdfYxdzw+fryyMXQz8L0+fzy/vD3+Obj7ent+vDFWU9xf3R3cnpmYGZ7cUNV3dzZV0dYV9XdwdRXVVtGT0xPWlxJf2Fvbm1iYXx9f3Zyc0JW19bF21FAcXJyfnJ1dnN8f3lzSFPY9vn///Pk5uDt4uzg4OH58/P88/P9z8fPyvTx/fz6+vv5+OXk4+/g5/nLwVxPd3N5ZGdvb29obWNlenh3SUtBUlHd0VNU19TWV15QRXV9dn1le3t7e2V/SEJITkVY1t7b0t/aWVhPdnVIdHx0dntyfXFdVMT18s/B8P/n4ebk5ub++/zx/sva1dVXWdrexvP08frg5Prh5u3s7eHm5sraU0xaQ35+cX5kent9SnRbX1VfSlld19jZw83O0V9cRF5AcmdhZm1gY2F+eXh5dnN4c0JBXEdBVlJMdE90QU99d3J9emdzSV3byfT/+fvn4u/r6O7p4+X58/Dw8NpSV1fe2cDx/Pn9+/Lz/P3n4+zm+eT13VdHSn95Y2xpaGJjZn90QHZ3S0pZRl7R31XZ9N3SUFvc0VJKf39mZmR6fXFHRkF2Q9VT29nNx19bS3FDTV5BSHF8fHhzfVjY2trRVNTB/OTj5uPv4ub4+PXLwNVRU0hLSV3Y9f765uf6+Pv65uHg7eD48PT39/fKWXR9ZGNgZX9yTl5dUF5S2fXxzd/SXEJOdHNydnB/fXN7YWBmYGFgZ2BmYWBkcEx3Xc3YXl9CdXN2c31kenx6fnTYxvb8/fHz/Ofs6O/p6ODh+ubn+vH1wNXWVdLX28728/D0/vj5+uPg5eHn5fnxy81fcXB+YWdnYWZ+dndBQkFGRllFWNDW01JeWkhMT0lKSX5kfHh6c3FwdEt0dXBzd3VHWNXa297F3dpfdHJyfmR5cnd0V97J9c7L8f7k/v/l/v78/MvAwMHU2cze1N7YxdxY2MfO9ffP8f/74+nu4ODk+vz9w1dIdnF9c0teTltV0ERYTUVX3FNT0tbUV1NCd393cXBkZ2ZgZHpkYGZgZnplZH1ycEpSUFFTXUVPTHZwfXx2Tk9Vx8TP//n19ffx+efh4+zs4uLj4fjw9MBUX1NcVNvLz/Xy/PH98Pf++Prn5vjw/fzwydjXTXNycXV3SXB9c3V2c3RNcUzQVlTWUERHdH9kZX9+fnl4c3t6c31zd3FzS09IWtdRWVBFT0RCSkhKSU13S1JTU9TUVcPC3sP39c38+uTm5uTn/vbI9cDS3EZMRkRH1tzH9v32/fn5+/rk5+f+/PP89vbKxcfcUN/M0NHUU0RFSktIdnRaVtzJwN/R13VzfmZsYm1pYGRlZHllf3B/f3dwcHJ5d3BycUVCdndDdEtbXdDZ2VxW0NPFy8/J9fng5uDs7OPh5uT98/fIxtvYx8TdUFTF2vXw8/j75fr99vD29cPIzNjaxNpWUFPVUV50Q152dnRMdEtOS09HU9zF1VdGQ0pwfmRmZmR7fmR6fHJ2Tk1fVF1FUV1PRkZBWUR2dnBydF3DxN/TV1LTVlZXVdnI/v3+/+X+/fDxytrHxNBMWFbWXEROXdzA8uXg5uT65/j09PfD9P/4/PD39/bx88PYXVLU3FBHRtHWW1NfXkdRVldfQXF3dnlkYWBtY2NiY2Vnen59d093cEtJfXtyc3V3cXNxcFhd2d/FzdffxN7Q2Mby++X+5OHm5ebn+Pz3/vnywsHC29VfS0Nb1PXy/vnm5Pvk/M7B39Pf3tDdxc72zMnN3UFPRUxKdHNJRUx2SlxCWVtWWE1MQ098fn9+Z2FhZmZ9c1rVRFDZ2EBDQUpwd3dKd3J1XlDQ3t3RXFbW0FtGXMTTzvXIycj9++fx8vb2zsjPzsTQUlZZdlpEVN3I8vrn5OTk887w/fPy987K9fj65/3y8szExFlMWUFT0NZxTF5GXttVRkJPTUl2Zmd7ZGdnbG9pYmRxdnNDSXd1dmd7enllf2VmeEtG1cXV01DVUMfVUdzJ8f799P75+Ofu4eXn4eTl/8jOy8XW0kF1Qd7K8Pzl5PnO9ffQ0sDM2M30zMryzf3/3NXVXkxNTXV0R0NQWHFKXVhU3VNEQUdzSHZlenN6ZHllZ2R5eUVTXlNGd3Z0cHR3c3BOcXZDQUPX31FUXVte1l1X09/S9PHK/Pj9/OT6+PzK2svP2djdWkxAQ0XUUtz2+fz+/8L19/fx/PX0/fz8+vP2/vn4/f3Dx9jb0NpWQV9bQVfEVNDS3lhadXx6Z2FhYW9vYmdneHtwSktwSnBmZHp6Zntlen58fEZDSEfdVkTQ3NJWVND39fXz5ufg7O7u7+zm4vv2yvbb09zcX11cWcrFwsj0U1LT3Nbc097zxsb189rL8ffPzsTf9NPX1lNAUVlGQlxOU8lU29FBcnVIc3x/ZnhyZH9yfnlJRFLVXXBKQnF3dnJ8cHBzcXV5SF9T1FxERl3R1tLXVs/OwfT98Pbl5ubm//fw9NvTVkVNQVtBXl3czfX28cVZWNPH3MLI8Pz8+eTl8PD4+f35+/v/8vfIxNvAydBQ39jf2NrWUnBnZHhhbGBmZmFnZ395ZH50cHxze3p+ZGdzfH5zcXp/SU9CW15R0VHS39ndzff++Pr/5+3l5eHm5ODh5+f6wMHN0FZRWUJV28LMxVlRUE12T3NwWNfDyszU9ffC39jXzvb9+f/O1PTJzMvEQVTZ397aRUJecXJzZG9gYX5yfXh3S3VGXnF8TktfRHRlcHZJXdRwckBH09RZXcdS1t5Sdlzd2/fx9/L68Pzy9dHM9/f3wlFeRkvX0FxLUNTJ8s7c39VUVV9Mc01czfP/9Pz9/P3z9PD6+Obh5Pzl+vr++/bQ1tzR1ddeW0B0ZWVia2hjZ2Rlenl9f3xzZWZnfmR4eGd6cn90X3VycE91U8bPyMjc2cDd2/X//eHj5uHn8v7l/fDyy9PQVFNU0NDE0lHW29vC98PF00x3TnJ9SEFb3vXDyMHFzvH18vDCzfHx8f/w9/78w8fRU1/f0dZdd3hlY2NkenhwSXZPW0BNWUBJSXBnZX55cUFMQVFaWEZbT1Df2MbHVFzWVdHb9cLz/fLz8vTAy83Y3ddIcX13SFJZWldcWdnN28j3zNDUT3FORkHdw8TL8fP0+eTn4efl5Pv8+OXl+uDh5fv9zMPA19LURnlkYmlpbGNmZGV7ZHh8cXJzcXJ6ZGFgYGZ+d0RMSUlCS1nWwsDLysbR3NnHyPbl5+bk5uT65eXz9MLURUN0cVhX1dzZUlLV09zb29BURXZyfHhyTUdbVlZZXNPO//7+/v/y8fL+/Pzk4ePm5P/398nLwlVMfWdgYGRke3l5f3BycUFZWkNBSXN8e2VleHJ0TEJCTU5cVN3OwMDH3NRX2cHO9v34/vz2y/b1xt9TTnR+e312cUJHRFJUUlbbxcTd3VNFS3dKWFHc3N/Aws7L+eTn5ufn4eX65Obg5uHj7ODn+v/KzdZBcmRibmxiYWZkYGRlent9d3Vwfnl4Z2JnZmdlfn5zdUlQxNrM8PXL9/TBzMj85fv45+Dh5+fn+/HDwFVGdEhOdHd3cXZ1SVnQ08TP0lFaRXV8cExERUReR1pR0PTx8fbx8/Ly+OXn4efl5Ofh4eTk5fPaVU9+emRmZXtlZHp+e3N1SUBAd3J8fn9+e3N0cnB3dUhE1MH19/bw8cvM9fb08fH38/P9+vzI9MzWRHF5e2Vle394Z2R7eHlDV9Hb09TXQEpbR0BV2cTMzcv28/P85eT65ef55ePs7+/h5+bl+Pv58vfKzFZ1fGVkZGZkZGBmZ2d7cXZ3dn96ZWRhZX99dkt3fHR1dVPb2Mvx9PH3yPf/8vLy8/Ll5eTh5vrz8d5YX0VLQ0x3dHZyfHNzdkdfQUl1dndzeH99cnFAQEBZU9LAzc728fT18vj75Obn5OXl4OH65ODk/PXH2FdPdHZ+ZGV/eWVyQkRfWkJJfXp9f359d0BESElfUlFRxvb39Pz+8/7++PrwzPTIzM/08fb0y9NCdXByf3t7fmRnZ2FhZXp/dnN9cn1ycHJ1TEVEQ0VUUFTAyPL8+Pv4/uXn5ubh4+3j5uPg4eDm+vTTXVBAcHJ0d35lZ2dlZHt0d35yd3J6f31zdHFwdHdwTl5S1Pb//P7++OHk+uDg5uTk+vn+5ebg5fH39dBbXU91TEp1S3h5cH55cndzemdmYGZneHd3enl3eWRne3Z1cUdYRFDezMrO9vn+/Pnl5OHh7eP/8/fZ1UVb3N9UU1BYW0tIWlle1VFWR0NQVV1bQENEdUhAW9fL8/zy9vD89/P65uPk5ebl/vvy981VU9dPfXZ3dUhxf356Z2V7en5NWHV+e3t+cnl3RXRxRUF3dkxT19RQ1sTVU8XJ9vT3w8TI9v7n+fz4/M9TTX94dk9ZXXdLWURKSV1SW0VCTkNLQ1bSXFxWSXJyfE3W3sv45Prn5/764O3v7OLg7O7j7eL5/PLD2NReVMHF09RHcH9lZ3p8cnJ0fGR6ZmNlZWV+fntkemR7f3h7f358cEtHVffI98rawcrawcHF28fN3dZaQV5VXl1bXFNR3cbw9M3a31xSXVHV3NjBylVAS0BHU1Taz/L8+OT5+/rm5fr5+uXh5uDm/Mrf13RLQFHT2NPD2tVGTFpxfXxzfXJ/c3RJfUlRTkpyfXdNSEVSWXZLT3xxdEFR2N/fz8ZRxNhFW0dEX0Bzd0x2ckx2enplf0pYRlfHV0JUUEXVUFbHw9zGxVZfV1lV0dTD8Pj74eLh5+Dk5OX9+Ofk/+Tn/fb1xsjPwPH9//Dz88jM21JdTXN3S0p3RFpaWE9wfXpnen9wd0F2c3J4ZX95ZXJySUVTXtZRX0BBSXBLS0FZUV3Q1FJNRHV2REdX29JW01RcRlRHR1Nd08PQVtRSXkXcV9HY3vDn+v/+//D08MzJyvb75/3K9ffNwMraxcTazfHZ1sDAUl5SXlfW08PyzMz29tvZ0dHUUVDfz1NBUlNEUl5CTk5D0NlYSEBIfnllZmBhZn9weHhwc398fnx3TkDS0lhCWURNTXVwcUtMVddWVt/Q3d/WUtfcx/b29PX3z8/MwNrL9PH+/vL8+Prn5vr9/Pfz/fHK9dnZxttQUdzTw8PBxsjDwNzWQl5RX9RTWlbWQl9WWUtbR1/S39vP2UNAQUF+f3l/cXdzd3BkeXB8ZXBzWlFTXNZQRVNZQnNKSk1JWkbWUHRMXEVGUVzR19HQ3lpJTVtHS01ARFDRVczAxPXxxNrByPfw8/L59M7N8fHx/P7x+fvk4eX5//r4//HM2crMzc3b3sPLx9jMxN/1wsDfU1hSWUp0Qnx7fnp8fWVmZGRnZXJkeXF0S3d4e3B0cHZKfkBeXF1ES0VfRkRbRUlUXdzE0lHQXV5dVVFAVFzByszB9MHJy8vRUNbV9M7a28vAys/B0NbSxfLx9/P/9/TOzNrB0tr2w8H09cnx8ff0983z+vD298ba2tZSRVlF0t9bQUR1SEB1d3VwfkpwfnNxf3Z3cUpNS3RZXllYXkBbWkBNSnBxTXd3c318dnZ3fX5zdU9IRkFdWF9TUFhGU9Hexc3L9sv18/zw8Pnl5uPh+v738f/wzvfz8fn/8PD+/OXl8cv398L1zsv0ytjG21ZV3tNW0lxYU0FPV9FYR0xyfH9leX96eXdweX58f3ZJdE1eQkFdQEpEQU5eXkVXXHVCUkdDXl5aUFBR0ldHXVRCdHRxcElKTkRPdEFfRV3U2sbP2sHD29/B9c/JyvbO8P3k4efm4uLh5uXl/vv9/vPIz8rKw8DDy9rB3cDE0sXD2dXX0tdYUl/a2VZXXkBKdHR2cEJOWU99fXJzfHN8fn59e3xkZ3l6fn1yf3h5cnFNTkFEQUZDWkRDQFhd3VlFXFnR397R1FDU3NnQ1t3bx93b3tjA9v76+vrl+/r45OX7++Hh5+T4+f7+8Pr/9Pf98c/bUF5RUkBTQ3ZKUVBWUlpEXkVAVl9CRlNATEt0SFtBTUVMdkJWVtZVVFRVREx2fXp3XFpOdEp3SnJzcH14SkJOcXxwcn15e2V6Z3FGWklHRkdZXNbawcf8+vrw8PP39fHx8fz2+Of+8f38++Tk5eX78/n48Mn28vbK9d/S3tbO8Mv18ffKzcHQUVJd19VbR0FHS3Z9ZGRkenFxfXZ2dn96emR4cVjWUFlfWkZLSEFNWtfE29ZXVF9fT05IdnN3SnB/eXxycH5xdHZLUd3dVdXZwcLa9vbPw/b08fHy5ODm5eLh5P77/Pzz/Pj72l7UT3RH19XYxcfPw1PRxFTUw/b2yfD2/PNRVtvT3srOz8zA3PfFd3N9eXJEXkR3SnNMf2R8cHh9SnN0fXByXHF9d0B1d3Zzc31xc0R5ZXh+ZXFKT3VPRk9cQlxWXU1c3dnQzfD8+vP9+/r9/ufg4eno4uL78vv98eXl5eX6/P3/9srG2NDa2tfRxlRQXnZJWEVY29zdxN5U0F9LSUR1SlVBSHVKcEZCTVfVQFrTUFRTRHVPc312cmR/S31NR0VCWkpwSnBlfXJlf3h+fndycEdxc0NbR9bd01TcVN3O3dDByc3+/P338vX3/ML0++f55+X48PbO8PfewvP58Pj5/PT0w/f2y/Xy//zk+Pvz9d7NwtDU2NFR0UF1c313TnB+eHB8f092cnh4e3x/eXlycnRGTkh0dXdHXExFX3VGQXF9e2RmZWRmZnp7SkRPSnR1dFBQWlDS0/P89/T39ML4/vz/+/zg4ufm5vry5v/98M7b98na11NOddPV1t3a3vHN093EWlHBxcnew8L298LAz1lQydDV10RD1UVxTHdnc3d2W3VIQkZadkVKeU9PQ0h9dUJeVlvUQXZNSUpyZmdkZ2RkeGBgYGd+eXxJQltaX1RKSEDUxt7D9vL/5eHh5ebg7ezg4OHm4ebl/87MxPX08fH3z8PB2N9eU1FUXFBURVhW2sjNwPXxycTD3kZLSXdOdnl8SXJ0XEBOS0t1RUp2fXJkf05xfndwdV1JRdVSdllEdHJ9enJ7Y2xtYmxzSHRxcHh3dHV3RnR3VtPYxtvZ9/f8++Hl5+/o7uD6+OT7+P7l8/rn5Pv1VtXSVN3W1FnU1t7cV0DTw8jy/PHB8/3l/vTe2NVX2t9cWtLSyvbSQlhNXdddSnRHR19fcHtxckDVXHB2QU5Od2VhYm5gZ2VgZmVmZ2Rpa2pqbWZgYH13dXdGT0Be0vbn+PDk4efm7eHm4O7ql5Xqlerp6e/n//H//eXPxMHTTVjcVVbXwcHxxsHGx1XfxVBaU9rI/fT19/Xaz8HTR0VeWVBAXlZZQVbWU1lYRFxTWF1YQU1Md3d0d3RGWVhSRExNS3lnYGFmYWNtYW1ob2NjZHh3WlXW3tnS0NNW18PAzvzg4+iVlerq7uzi5+Tm+/3l/c3I8sr0xdzDyML3887C2MxdW8/f0vjz+u3i5uzt5P7y/Mrwxs/0XnBFSXdLc0lbXUfTVHd7emxuaWlgYWZ4Qk91d0Z1dXB9dnN5ZXJ5ZmBlZH9+ZUh1dkPXUF5VUkNaRFHH2Nr95Pnl4uLg7ODt7ePm4eD7/fH38f71/Pv99/DK10ZAcXl7enF2dUXHz8PP9sPOzMLy/v/x+fn0ycrN8/f0+P/K2szfWkF3ZXpmY2ZmZnp8ZWVxcmV4eX12dn56eXh5c3BycH55c3xle3pnZmZibGBkeH5wQdjawfD9/fLw9PD8/+Tg4+zr6+ro7OPs7efm5/78//XWV0VY0dFFV9Zd3dvTVtLd3sHeV9nH11fe0sPD3MXKysbJ29jT1UdPfX18cHBwTUl0Qlt0dn9/e3N+e3t5fnB3cnB+fmV3eWR9cmV5eGFhYWBgcnp6dEN1Vt5X1VRARsZeWt3e3f7+8eft4O+U7uiU6OHv4fL8+vHz/Mj5+PTOztRX3UV3X1xIU1VFUcDY9/jy/OHl/+b+zfLz2cPAXFnXd3BNfGd6ZGdzfGBnem1hZWNmeWV5S3Z5dU5zWl5+dkR0cHR4ZXxmYHx2f0pJdUpDc3xKcX5IW0De2N3C/ff08ff1+fn3/vv7/fr99/XJ2ff2x8zIz9vKx9bRUU1ZVVFX3t3c/vjw5efy+vrx9vP12vb2yPbL3MvI3M3xw9HfWHB0fGZ+cXFwe2JtZm1vZ2JrbWJjZ2VgYHl/eXF+eE1EUd3a3NbTVFbZUENVwsPD39naxcHL/cjFxsrIztvbxPH28f/39fL4/fD199He1dFTSnl3T3Z2dExwQU5GR0NK1cP28vL//OT4+f/w/OPi4u3u7OLs4efzV1fA19TX2t3VXnR1Sn5/fH9/eHpkenxkfnlhfnl/fnZ2f3lwf3xlYXZNQUHd28X18cPz/f35//3w+/nw8v3M8cr3/PLw9vn2x9jRX1FITltdXFTK9Mz0w97bVNLe0F5f0VRX3lRbXdHQ1t/W3vb3xs7IyPTx/fv7++Xh5Pvk+fPy+vvwzMHFwNBRVEZ2d0RbW0VaRl9bdnN2d0pMTUxCQVHH3NDXUFlTUEF0SENLQERYWkJPRl5YXNXR3drX1FFR1VFUVFTHwM/w9szQ09TRV1pc3NdU0tLJz8jK9vz/5ODm5/n88fTwyMDC2M31z/Py8sjSUVZdUEFbX1PcVNnazdrdxsjbzMPBxFNe1cPG0kJPWl1DTUdHT1pRR0FEQlhUTUtY1dPMx9vb2tXU3tRSV3Fnf3pkZGRlcHJ8SkZ5eXByfH19cUVGSk1URlXB39/P9PH+/cHP9tXSw8zPzvX98vfO/uX18fLw/PL09crMxcPFwf3xy8LB9c7EXEFbdn1Ld0dPS1HXXlLZ9PXF0lLZVF9TQHVFVdjZ31PW2FBZUllKTnRzZ2dhemRjfEd1SUxLXlpFZGR8d050ZXp8fXx7eGVxd0XFwlFUU9VcREFa2c7w+OXl5uf6+PbYwfX19MzYx9vf01VU1FHUxf3+98nAzMfcXERNRNbYXVLX1NjXUk9BQV9dR3dyXdxQcXxwRUFGVs30/P/2yl50dUl1Wtbfw/TN2ddOcHx4ZmRlYGBhZ35lb21nZmdzdEhaT0hAdGdhZ2d4SnBO29vG999Y01VFU8bQwfbK/frxyf31zfvk/uHi5uPi/c7I3tzL2FX28/f98NRdUEx3RHRyW1dU19Z1f35nZXd8S9FRQXRyfntkZH11S1/E9fHN0drRUlDWUUJHXN/11lLUXtdX0FfezMbAwEJ1cWdgY21tZH52UFRLXtVKT0NyfHFyc1BZdlFbdUFDSFzY3svl99vKx9PcXVXK9vPl4Pj54ef65PfP8PDL+OT9+vz3wsdT3s/H1cncQUx1fHJ+ZUp0TF/SX9Td3lZTd3l/Z2R+cH9KT05NWndMU0dF0NLX3FdeRUN8T0l/Q93Y9fz+//P21NVbdUVfUlnQ1tbFUF5XUFbM9/3zzPXCXUdNUlNe0trL9cPKwFTY3FBSUdfF9MPc8fDEy8rZ2tBW9PHIzvrxx/fIwMHY0snx9P/g8Mn0VE10ZXpCRk3Uwlld31h1Q3Nbw9BbUUR/fnNkZ3hkTNLFxPLIWVtAcXN2fELd19LOzdbB9cPx9/X64eXk+/jz8PDF39PSx/b0/+Xl5eX9yd/Z3MbVxfTA9t/Q0lJwQkFIQHR1Rl5IRVFTc0Za18HP9PH8zsHVU0XW0cLN8/jm4OTl8PfB9/XLwMHb3lxPdHJ5eHdL1FPHyvHM39RadmVzdnR2SUfSVNHWXkRHV9DeXdbJ8M/fwMFQV9HY/fbl7+vt4OH59PT19vv55O3s5vj11F3eVFfBUFf198nL33B+cX1BVVzC+8RAS3xibWdjZXN9UvPZ2cTZ38zYVcnIVMLywvT131jf3ML7+v3j5/T+8VVaW3x5f3thSkl0XUJN1FdKWtdRX/Dc0M7TTkp3fV3HwvDk9v3m/c/CVUbe9cXK5fL65fD09Mbd9ffJ8vnK//LBUlFYQ9PC2sfWSEZBd3l9eX1ISXFbVF7ZwNxMRXVzd3Z/c395fXFkZ3BydltUW9vM2cH33F1XSnBOT3ZW0N//4fHM99FGXFZLW1BE1llkZ2RmZHZ0dtzH3/by01NcXEXVVlH39cn99sbM1l1QydlVzczDwldbW0HU1vXb199bX9VXUFxTUUFQUFDV0vXF2sBRRnF8dHB2SnBKf0pNf3B3dEtNQkt2THNLfWFiaWpqa2hieXB+RUlxcHFPQ0ZQ0dLVWsfSxcfHwPP5+Pz///z79cvY29bUW1hRUkJaUVxYdVrU3VXb01ZRVlFX3dbVVlJYXkFMR1FRWnR5fHh7ZXdDRFXEwsfURFPQ0Fbe0NjMyszKysHOw97SxFFVxN9McnhlenplenN5fEpCS3dzf0tOfXl6YWNjY29ubW1me3lzTU/Uz8vb3Mzfz8jJzfbx/Obm+/j7/uHm+vPwzsXYwNbXx9FRQ3V8cHNH19dOT1tER05OfUdBSVnVT1lcV9lSQFtQQ1jQVHdE0ltc19xX0838yMPd1d/EUNXEV9HZwt7aV1bR2URZWXZ0dEp9T3N2RUFzWVJCWt3TQFx3fXZ3ZXJ7YWF4eX9ATUHY9Nv29srN9vX0/fH55vr2+/vx8vr28P719fHI3dFfRFlEdVpVWNXTQUhSQkJW0d3bzc3121ZQ2t/RxMHZwMXRzM7B29RNREZ1S1JeWtFSV8bdTF9fRlpTWcDxxfT//PH48sjwzdbGz9HR0Ux0REpPV9vH8f3Yzs1EcExye3t4fnVKckhNcEjT01f28ffk/vDPyNDEzPP0+OT+5PTx/fbRwfbK28fNxPTI8cnF297OwdDTUVPcx9rS3d7R2tddVFHQ0MD0ytBS19pSWdPc0t7Kz8ja0t3dVt3F09vFxNNQRk5DX13O9/z65+bm5/XE3l9b1tPd0N/f09FQVNbSw/DJ09NdTXN2ZHh+eHVETUtRwMj58vP0+8b0x8nd8cvO9vHw8vjb9MrE3c/F2sHP9f3fVtr6R87w2Pz311pRfHx0Rl5QXtPD0F7W3VdVx8LYxMLP2dDAy9/Tz/Hz8Pzw9cDe0tteTUVeVNVcdVzcXcPw9//n4Of98fTP39n2xE1exdLe3NPfx9vazlNITHZ0UVh1c0xMRdR0f3B1TUVFU1NbXvXy2VPd3cfw8vn9ysjKx19SXF/C8PbO9cPI8sDW0FDWwNZNS31nck53c3d0Q1xdUNJQQFRXXtXY18TKz8v2ytnCwcD12NPFUEhPR3Z2WVpZWUp2SEFC1trTzMZU0N/W1VTRxcrI9vzKwcXT01R1c3J1SHBxdEp3f3F0dV9V2NZXX3N0TnRBdE7RxNrD9dhFXlhb2VJ1fExaQkhJWN7Q1NtGSkZe3VFZdHhxdE11cnN1W1THzsPa2sTMyNFcV9v38fz8//P9/P79ytjD9cHTcHtnfHhnZ2Zmf3J8dnhgZ3x/c2VgY2V6enJ9fHJycF1VWdbB2Pb001TazdnLzcP8+fjl/87Yx9TAwEB1Rlddx/XAz8JT3MFdU1ZLT01+ZGBlZHx0eUFHQFHMV3FwZGFlYhVpam9hcH9wdXJ/TUZI2dvcx/XF3sj3yvzl5u7s4OLp4Ofm+ufl8dLQxtLM99leSX1kc35hZGFvbWJibWFnYHh5eU9PZXx8ZHl0emVkYGFmfH3V3lLe31/XyNfW30VPV9Ne0M7Yyfnl7Ovt7+rs4O/s4frx2dvJyMjyyNvDUVnB00xEfHp4Z2NibBVqY2xgeWdtbGNtZ2RkeGZnfE9R3ffO2/TJwv7y9/Pz9vz8/P/45frj7Ozo7+Ty8cTF9M3eV0tDQFBX0M5QRV9LTnZ/cmFiY2NnYmBlYWd2SFhXRHdDTHJ0cnJ/ZmZhfkhwXNxZ0Nnb8vrh5+fm4+zj4uLt4+yVl+rr4OXn5fj//cva39da1FpcXXBlenxkfnJlYGJiYWFnenFCSdrw8PfE1NPe1VbQxlNT1NX1/fnk+f7++fr++87VRUBQUNFARtbV3PDx/v/Pw8fYVNRdRUxDXt3My/PJ0FJTVtXT0FxHdnZHTXd4f39wQ1Pa3llb0FRc3MfG2Mjy+u3s4uLk/vrl++Tk/fLwzPD4+vz/+v78+Pj/9t3SX0tISUx9enBzW9rM8c3A2M30wcvdWlN2S0FDQ3BbUF/dxPDyxs/H11hGT35kZXpxWtbP29dU18DYwsRG11NT3N/MVd7NxvL+5ODk5f78ysj8yNvAxs/29vLxwFZeWVheWXZwcHJAU9LV19zf9/z+5+Xl/PTBUd9QQF3c2/X55+Hh+v3588PRRXZ3cnt9QV1Y1dJUxvf98/z7/PLeVNVLdkNHWlLV39nO0E5bUlxaRU9zeGVlf2Rkf3hzdV1SX83cVd9NR0xLQFD0y/X//uPi+ufn5P/09tZT1FHJ9/Dzw8vPxt9e2VxyTXFzcXx2ZU/QUcfE9fzCyPb1wMX1Uk5QRVjUUVZMR1bQzN7Pz97Kxk13cX1hYX95dExX2VXczcLFxsrTX9LQ2cLw/c/bx8TLwMXEX0ReRF5eQXx8TEp3dEJDf3ZCXFZBR31leHJ2dk1FSEPX3sr99sjBzvTOxdhRQHJKUN3FxvXPw/Xz8c7dX3J5ckpZT0NGdkbR3sjb28HT2NPV3l9HdHtxQ0BISF5NQVTZwF9OS35+cHd8ZntmYH5yR0B0WktFVVTf09rQXNXTz8rJ8cnB9vvn+/fCU1vW28BU19JF1sbYxdfTUkFER013d3xmZnt5en5NdUlQ3MPAwlVDc3N9ZHh5eHpzUtZRwMfU09PVSUFYTUp3dUl2Q9ZHTFje2cD2yN3TU1BW09hNTk1YUlnc1kFcXV5MQNRBd3F8ZGdnZWVlf3NxT1BMeHl/Z2VzcnJ3W1bb8Ofg5fn6/Mnz/PTw8//K9fbJ8fH1zNzJ8PHGx8xTUtzUSHB2fX9HXVLXWVRQdUfQUlRFT3l5fWdlfUh0d19WVllNdWdgZ2ZmZnl6ZUjW2dr1zFNZWVHSyvD0wMPx9cj1/dpS0NrM8fPz9Pb2w8xVXn1keHp0Q0VZdEh3c0BQwddNS319T1NQV9TFzPzk88rY3NNBUMPEVlHYx/z68/3Mx8DQx/L688LG0NjL9P31xNfQ2/Pl/Pb28MLJwlRcdn55f0lNRUJ2d3FKTEl2ZmJgbWJkZX94e3l03szQXHV1cHFTWt/F3cjz5uT55/z++vjn4e/i5v7/+Pvz9PfJ1N3Gw8jPxFXX2cheSEN2fX5IdHFdXltWXNzc9/LBRXNDQ0zcxdBXUN/Sx8bc19fe2VVc0l1JW1Xay/P/9/39//vn4uD79vXL9vv+y9nYzsn29/Tb0VZTX3R9eGZgbWJnZHZ4eHpnT1bB1EdIcEfVxfPz9vH1/uXm+v3w9/D7/P389fTax8r39sbIxtb18fzwz/TRUN3K8tza2dTMyvj99fLI2svwz19Odn9zQlBcRltZdkHa2VJKW3RwdUxcSE1KcEhQwNjR21TQ9f/9w8vKzsz3/PPw8f/45OPt5vrl/szS0NzH09PSxvXOwNvHxtzZzthVQnJ9cUxDQE13TUVF3NXVVUBQUdHUUNjW2NRfw19EXExFQlbbXNBFQ19ayvVXwcTGz/bn/Ofm//vz5P9Q3sHF3ND+zMD1xPfSx8x3dnFkYG15Z2Jhb2JtZV59ZXB9f39WVnJFX1zVVv/01sbGz8b74P/75f/Lzuf6xVbXxN30+/L+//LKy+f42FtR11Ta8PHK9vXfXvXw2VNOd2RmcXV2cHhkYH5KfmFiZmFnfX1kZmR7en9KR1hPdnx7dVXb2tpQUlfI8/D3zcPD9/Ty5eDm8f39+uTO3ltC1lDS2MHHS09bWlBeWXNgZmFld0pec3hyekpaT3BgfXR4dEFff2VweHdaU1Z5fnV9Q93K3kxQVlH05OT3zv3y+ODu6ebg5/344OD3x8rH28v6+M7YWkhwSlx9Z2wVamphZGJjbmoVbHlhYmFgYWRM0FxEdHN8StnbUFBMcU/V//D19dZaXvH+y/PCUFTF+v7+/fbOyPrk8PbHXVbC8vvl/vFRSFbD2VRffWFlf3F0cHxmbGNnY2ZhaGpoYWV5cHl5Z39CQVlHTndO0sD35ef7z/X+5eXm4eX45OHi4u3i5f7z8fPwz1dZ1NXRyM/B1lteTHd0d3F6ZXt/d3FPS3B2Z2ZnZnlkZXllcXRDR0BBQUhIQnVKcnZ4fUJT0NBYT03R0drL8uH68uXm7OLg4f775eTl+/r+/Pz45Pr/9dFNdnRwf3Jyfn94ZXFKSHZgb21tbm1hZ2ZneH53S3d3enxYTVxeXVRB3fT85fPx3MT88+Tn4OL75ODs7u3j8sHz/f/68P798ufg4ef+wUlKSnZxf3J+ckhHWElQRGZmYWFiaGNhYWR+SHVZRn98cnR0c0N1cUTQ9sjK8Nbdw8X3zvjj5uDi6O/j7fr+//X10s30w/D95Of75cNFTUpLeH9zfnFeXEBNX0B3fGV7YWNmYGd0QEh2WUlySEpEQEZZSURW9Pz34Of0yMPzzPHl+eHtlZfqlerp4ubh//n69PLk7ezn5+Txz9JGcXh5Z2FnfUBLW1VHdHhmbGxhbG1he0h0RlpGQUlCcEhRS0NS3fTB8PHMzN3cSUvc1tzw/ufg7urv7u3m8t/188/z/+Tn7JTs4fv/xEbT0UZaX9RJRthVXFtccWNnZGBsY2dtYX53cXhzfmBld01NW97R0eTv4+bm4fL0++Xn4+jq7pSQkJeUlObx/PX1ys3HVMb4+vHGwVlkZ3xkZHB6ZHxJXkJJR3dkZ3pnZ31wf3t1XnN1TXhkYX5xfkp1cUlQ9cjI99VFdU5WUfT+++HjlJSVlpXu4uTn+eTh8fz65+Dm4fv030FEQUxZcHp/cHV+dndkYG9uaW9hYGF4e314cUJ9ZmZkZHbUUVrc9vz+5+Hl98zFUkXN+f3l7e/s6JSV6eD+wtD2/8jK8/j++uzi/MRWWnBYVEt0cE53fnZKfmVnYxUVYmJvbW1jYWRxZG9paRUXbmdnfktU3Mzl9sXRXkF3XvTI9vvj6emXl+no7+T98f38zsn19/Xy4fDCx1tKc0NeRl5KTUZ3UVp+eGFtbmlmYGFlZ3h6eXtjbWhuaBVge3tyd1bC9fjE0ldzSHZPy87z+Ofp6JGW6pXi5+f+5/r2w9DP38bxwdladUhwSk5ITnxxSn10fmFiFRUUFGJmZH52RkJCSXB5Z2ZjY3tOTHNHx8r19M/cUk9OdUrX1lf3+OTm4+3g5fn2ysfE99Pdw97M8f75wtnZ2tfWxlVfWk5McXZ0ZGdgbhUUbGBhfHlzQnJ9emJtaGppZHZ3QdTJ/OXk5f78ydjfxvLx/OXn4O3t7e3h5/zx8M7Iz8XfV9LD2MFUWUVIXNDWxtrWRkpTSXFwf3JnZnplcHRCW03fU319e3pia29vYX98S3FHVUdfWk1yZn50SdTO8/Lk7+zt6Oro5+fh5eT6/Pfa9PLw+Pn8xN/Kycj9ytRGSk5xfHN6Y2JjYWdM0VlYWVRSQ3dweGdgZmZ4dHRKRNnH19TcS3F8eHJ0UNzdwf3n+vrs5vjk5fjk5/j28P344eHu7uDj4Obg4uP58MhVX15eQWRjYWJgZn1wcHB+eH58Zm9raRVqaWd5ZHxB1cfB2FBKV0Z3QNfAx8P85+fh4+Hl+vrw8Of798Xexsf08/3z/Pj6+uDj5P39/MPYwNjRWU9MSVlUVNjF3VRCXltlZmZjYm9gZ3pIfXpzWNdBfXZNSkhbVlTYx/X9+OHi4uvr7Ozh7eDm4fv65OHi5eTj5Obg7e3m5f/330VFcHh4YGdlZXt5XFBNXnVMT3p/YWltbGJhZXFleHJ2UUN2S3ZOS05dVc3Y1cb0+Pr64ubg7ePs4+Ph//7/5OLn4uH64OXk4uLm9s/dUtJcWUx+d3FKXVbD1kBbdENBcnltbG1uZH5ydX12S0Pb3V9MdnV2Q1PbxdDdXtPl5frl++Tk7uni7uH3z/b65efh5ebi7+7p6OfyzlPc1VFZfH9kYXp8Q3R4f2d6f3l5YmoVF2ppb2xubG1geUpTWUhASFlQ3/TYx9lR3c345vrn4eXm4+Lg+vTazfXw+v/z/fnk+ODg/PfMxtdSydpFTHV3cE3VV15U2NZG3NZwZGBiYm1hYG9vbWFgcEV8ZX5zfGd/d3J2dEpyQ8L3yv/k5+Xh7+Lj7eLk5+Lj4ebk5Pv44eXx88jQXFdXS3ZyeGZiY2NjZH55eXlyZ2BjY2Bib2xpYmZiZ3txdH1wTHV0dEt2dF9LSEdaR0XY/f34//DO2M7NwvD9ydvD9MDK8vP3y/b8/Pn7ztXZxlFWVFFwenBPVdvJ1HJ0d3h+ZHpiamtobWB7d2R6SHVHX9HUT1pT1cz0/sxQxN/M/+bj//T2zvzg7OTI8snExs3I3lfVU1Hcy8dKd3x5dURNcHhkZ39Ezs5WRnFkZUtFcH56YGF6QlxDSX9+fUDfXFxIZHhz3PTdxUV1Qd/78v7kz8DM/+Pn5vzXRlz1yMXx0UBf2P788vVEdHZU2U9ecGZmfdfBzMBLemRJ1kFUV3RmZU9Z0c1feGVK0t/391ZxS9Px+Of80EhV8fTx5fvaxPD+5unv5cLK/vz74efYRNzfw//4xn5hfnB0fnpnYmZlfV/SUnptYWV2TXV6YGZgZFrB9VN5cVvdyvLNW1PZ2/3k5PRTQVjS9Prm8dPUx+Xj4+TyztTXx/TzwNNdXcjy+fzB2FpewfDwV1hRSV7Mw83VdX58TF/TWHV0YWZKWVdYSWRtckFOQHd0f39RyfDF2dhB0f3n4eTk9sf74unu4ufIwPb45Pz+zlDd8Pz2y8BPdFtUxdZYR3Fz3/H03NxxenNBxsL1wFhPQtTIxM9FeHh+SEJOcGd6dlvb1Ntcd1lSwc7FxUFJQFzx8vv63sX1/Obh4uTy9cf28/fCWVtW18nO9ttd0tj38MrZTXNyeH12Xl90dXFH29r0211YcExNV1Jxd3VCVMTBxVfX08P1/Pra09Rd3PX4+vXC2cT28f/12sFfRFbR3F5aTV7ayfbJx8FQU8Pa0E9/fWV/TFLG0tZXRMLx9PTfUnV9dExFQ3ZxcU/S2sTM9cLWyP/9/vfSW0/Q3MH02sdFWcvM9MPEU3ZTRUBWSXZwfk5QXNDQXnZE1FLeyl1zfXNJ0crHzEZHxdvL8fTcSEpKd1hbXU1fxMX29//31sfB8/n0/NVL19T25+fkw9jdyPjI/cNMSnl2T0VQe3B1cddBTkd+cHBBUUxGe2NnYH1EUVRKfXJD9P3/9VBFcUDb2MjXTk1P18bNzN7Z1dvz8PLCX0ZF3sr99N5TQkPG/vjwwV93QlbFx9JPdHdN3cTWXER1d17F3F9wZGdkck9ASXVyf0fC8cLVU0hxdk9Bd3xne3DA//H2wsPb8OHt4fRXTVLNy/fIxMBcVPT6+vfZUUdf0cPOWHB7endNREF2TENZwsHZWnlkYHdEU1Fxcn1/X8HOyNNQdnNwf3J4ZmBsZE1f11PRXElFTVlTd35/d8DLxtjR31PF/uTi5vfDRdFcRFBFWnZM1djGy9vc19DG08TQdX55d0pGXV5YTln3/uX78c1FQ3Z9SnVwfHJLQEXE3tJXXFFITUBMdXBBUtv39czc3vT18//0xVldX1HA9PTTRUdBXcXe10FGRUdWUER9ZXtkfk1c2sXSys//4fnM1l9bcERXXkJwS0bVzMza9NrXT0bdR3B7eXB22vfA9NZeQVv1wFDVRUV1RvRcQkZ3cnlHXXRR0V5NUPnzyMDcV07Y/dXN8s3P/Ozi5eXy2EBP3lBcxddKdMrKVd3G10VezszZ0VZeWvLn9fb59NfX8vfNwdrddVjZ1FRFS2Vtf316f31Nck3D3NZYS3Z9VNJX1tjP0sDh5+Xm5fPc09lUU1hBTHNY3kdBWEd1SVRcWdFQWlvb9d/dx8TYzfb3xcr03dv39Pbw8dJETHZDfXp9fkvWx8bQ30R/dU1RW01SXFDA/OX3/fzFw8Lxx1PZWUhcXNjTxc3VzfTyydTER0jW2vLKzvTczN/0/sr59sTx8fvxzfVSW0RCSH50fGFwQNP3w/fFXltMXUNf1nVZ2srl+Pr8wcfT3NFaXUxLR3dJcXRAdnJycV9aUkd1RUxZxPXz9sn3yfT39c7a9/TK+fv329VVQXZNRV5BdXVyRt7DxtXXUVDZ38HF1MvI/uHg4ub78sLK8sDZQHR0dERNUVh3fm1heXl2cnZ/ZHNxU9zWx9TY8vT++Pj68/nl5Ob49tVW0VPR10RwZnlwd0BMTHNkcEpewdnAVlTczvnk5uTy9vT29/H82NDU1Mrz/Nl3fnlxdmd5cn18YXtF2FN9fHZEVlHEysVQS1rM/v/FV0VJXtfY9dbVXVHL//PeXUhORFXN9MPdV1bB8v798cDQUsTO2sFbd39/QFNV2dFZSEhbU9RRTkNQxPb3zNhXWkZXV9LFwt9e2PHN9cVad35wfn5IcXl7e3ZeUEBbdXNPQVnf3lZf0vHy5efm5PL3//P95ctUWddX1NjSTHx9d3BzdHV6YX5+ck9YX3FxdV7ZzfHLyPHz4Ozs4/jxxt3A2MPTSXV1SFVQQXR6f354ZWR5ZGV9cFLb8cjZ31LByfT79szH2s/2/PPa00ZGUtdRWEJ0dnxwcXd0SHdLRE5cXVPe38Xw+fr2zvf09PbM8/31yUND3NNTWEFZdH18enB1TkB3QFhFT0bU0dzcUF1YUlxYXVBX3l1QTkHU11VaWdVRR190SUp1W0hMWVhXX1HSVMDA3NHS2dvQ19vPwMTewPf5+cna2t/UVdD3/fDz8fT2yMnY1tNSVtdc1lVYQHVOUk1GSn53fH58fHl+Z2FjZ3JOW0FeWkFdx/X28fDx///y+Pz8+/X08fT1xN3cQnZmYGFtZ2FvZnVcWV3G8MPM8Pz7/fj6/OTg4+bh7+D79ffO1UV/Z2NubmsVaGxnZGZ/f392ZUxDcVNZUdNT9Pzz//Hk4Pvj6eznx9hPfH95ZmB4cVnT28nH3MTK8fH2zlN0d0hGR0zW1FjH9Pvn+MpJZHt/cn14c3lzWtD3z9BXTNX09/v+9sxTXUTVxtvcUlfayfv58d13fX59fXt4fH1MRdTK/fj2/eX7/fDwzdVV3VJCVN5RU93x8dpWWXpgZ3pmZ35ycWV/WlTQ1NpQ3vbM9vXFwNDC9cbx8d7a2PTw9ffWS31/QHZ4dH1lZXJGUcz98PXz5fz4+/3w3MTK3vP+9c3TxcDH0ExyfWVjY2JkZGFleHdB3PD3xfX18eTh4uD55+T/+eft4OTn5ufk8ffCW3FnYmtrbm5vYXF1RVJJSklbXljT0kF3fHJPcl/R3fby+PnIyMnVW1pDQkpfXExHUdfa011EdXFaVtPE0t7VWV5Q3cj08+Xt6+Lg4fD+8vH/y8n339v2/Pv+9MtQWdVQ3UV2dXpkdn13TXZOS0zGxF9Nf2RmYWVnZXdOR01D09bF39Pays7z5eXn5fLxyfPn4eT+8ufk+vLaV3BhY2hvYGB6Z2V2dVvdx/TI8vrm7e/s4+T65frk4eT9+uX/8tdfd2FtbhUUFGpubmZlYXt8dF3U0t7U39vFyvT08cfM2t7DzvTx9d1acUxHfHhkeUtY9fbBzNXb2tLk5+Xs4OTk/OT5wsvP2tlY28rf/cFGVEXd2HZIfXtxfUZedEh8ZnB3XMzT09dX3FDQ9MfM9MXHx/fk+vPcTUNyenx7fnd2S0RNXU93dHREWVfAxMrI39rG8vv+5eX8//Hl4fv313RwcHF3SHR2fHB8e3Rwfnhke3xwTVhMdHZzT09ERUJWU1Hdz//6/cTVR0BPRlxEWdRU2fT/4ePg4uPt4uDn9tLQR0pBS3BxZGR7eXx9REdxfXdwcHxkcn55WUXQxM329Pb65eXl5+b7yvX3wN1eXU5ySU1LSEpNR35wdH1ISXNlY2R4e3RN0VdE1M738Pjk5PbK8srHyPX1V1fF18TNzcFPQ1JxfndKZWgVY2ZkenRac3bR3sL3/+X49+Tg5uLh5vzC8crN8Pb310jf0d/dTFpJeXZxenl+ZmJgdEB+fnRZcX1HUU5F3FZMSVLAU17Y21RA0fzM29zRRUJF39zc9/n29vHz8/f588z38vz+ys769s71989SQFRDQFDR1U59dn1neWFgY2VbQHRDdk52TsDx8fH19/785fn09snL+drEw1HTcmRlfHFnb2gVaGJjZmVlcHF2VNnE3cDOzvnm4Ofk+uX8zOHo6uj63lZ3Wk5ydUpGTXRGXkVId11AS8XH3tzRWllMRN/C98XK8s/F3Ex8dXtzfX1FQNfx9snO8vry9vHD0kZAXEtCXkx2f2FnbWNyfXp6aW1ibmF6fklf9f30+Obl5+fol5eQk5Tp4+bn++zo5v/15OHzwdZ6Y2JtbhQWbmhqaWtjZ2VxfWV+en10Rc3A1llT9Pnw+Pzn7Ovu4vvB2VNDTEXey/bCQHR2dEVRV1NRXUt3XlxTV9fZzvL6/P3//PFQW1hG0NZNdXRMV9j38fH33sTPxMrJws3YVdJdTktMdGRmfkhZTn5nbRVsZ3l9cUXW0fL4+uHj6+ns6paX6uns4fj65Pj6y91RSUZXdXJ+YGlraWhoYmZ5eXp+RF9U09jTVd3AxtDT219cRcT2wPT/8PH///f0zvX0y9v3/v7x+f30y/D1xsDF3V9ATU9BW3Vyc3RwdHddxcfKXUxHck5NcnZydVdWwNlc0tNT2dLD9MHNxdfG2Mf19/nOX9XezvPdQHNmYGNiYW1ibWljZXBMQtbQXcP38+Hn4e7i7O/t6O7p7ubm4OT5VHZ+bmkUFxQXF2lqFW5vZnh+c1ld0vf+4efj5vL65OHv4ebg5uzi//jJ0NBGdXZ4dE1Id312T0xZXNHbVnVOcHZxZmBsbmJvZn513NFzc3BCUExW0VrF/eTp7Ono4+Tn4uni4PjJzdZG1kJNSmdhYmF0eG1vaGttYnx+fk1wdNfS++T//PXJ8/Dn4eXu4+Xk5ezn9PXRVMLKxNZwemFvbG5jemFnY2NhYGd+YWVyfEpxRMzc3tBRy/775ubl4uLm+//48NnfSnpydF/QQNBdQsPJ9vHUydVJVNzN8VDawlDYy/rt5OH8xdfSX9x0c0xGU1BU99HQwdvM8/zt5/H729BXd01IenpgbXpnfmdpbhRrY29hY2lhY2B3Q1TWWcb25uqUl5bql5Xu7u3t4vHw5OHj4fn5V1hfXltyfUN8ZWFgentmZmNmYWZ4cUlfRVhCXd7E9srZxsn8//zl+uf+ytzZx/fP3tnc3VVHSXVPSktNW1tST3B+fXFAdUhF18fH311ZU1JHXEZbUlHT2sL98/r6++fl/P/x/P329N5d1UZGcXNxfHt0fX55Y2dgb2dhcFJRzczb9vD/4OiUlemUlJXr4Ozkwv3/w9NPUkt3dnd2eHh4ZGlubGhvY2dkYWdlZmdlTEJxSVtRWUVXWXRUzvT2+u6V7ebh4+3slO/k++bt7ebg5PTYxvTaRUVwZmNtZGRgZXp+cnp+fXTG9dHWXNvdX8TLwPb35fv0/PrJ0FjN/Pfx+fbaT0NcdV7C0nVmcFpwfX1wZGJgeWBvZn97ZH1S0MLy+uDh4+rv6ZSU6uDk5frw8f3Pw97KXE9wc2RrFxRqam9kYWxtZHBIVf/k+/z85Pr64OH65eT4ytHP9cVVRkdVW1NUd311QUZHV8ReQn5yRVjb88VSR3Fxc3xzeGVibHp5Q1BDcXBAXNPa8PL7+f7n+ufg5OTn++T5/uXKwlZLTXdJUkVze2R+fHt0dX1ga29iY3FBREt+Tl9R3N7a21LV2sfK+/r/8Ofs7eDj7e3m+vzK9cjBX3Z8fHphY21saxRqa2xnfnhmZHx1TV7azFRSUc/+4ejj5fj75P/Jy8dQRkpBWkTUQndHRdnHV9rdRXR5cV5Q3VRbUFrQyd/IwdDTR3ZBV/T0xfb09/j45+bl+fj9/fj6ylTURHd3cnpgaWhqFhYXFRQXa2huZHFDdHReVFHT8eDh4Ovp7O/p6+L65/r1wcn68Nn19djBy/PCWkVeTHFP0FVxdkx/fnNEdXJzcX9kZ3ZKdXdGTkTV9vLM28vC38r98/P65vz19Pnw3lNXUkp0VFZId0xOc31GQHR1TldedVBYQk5HUVhYw/fGWU5U3dbGzsfAy/L8/fPz2tRS0NJfVMLa3MZEdHNzd3hnYGB6ZmRNTk9QzMLK+OLs5fvn4efk7O/78frn5/jn+dB2dk9zZXtwemBkfHp6ZXByZmF/e2R4c3N+eXZ3dUBU0VxNWVFAXd7H3Mz65efg7+/h7ent/vb98dnXzszawM/LWn11SHtkfHZ6YHp3S3RN3FHT9+fk8cjMwd7Y9/rl8/v2wMTazsLRVF5AQdPJ89tTSnZwdkl0S39jaGljYXJJRXFkfnZBUNLL1U5KWcL08P/l+fvm7e3s7OHz0d3188rI9NdLd3dDXdNVVEd3SU1fR0bQxd/C/+bh5/XQSEpaWFRcQ0lNR1fH8fDLws3AwPfNwtVCUfX2/fLN3XVwSHRkYWlrEBMWFGJ6c05ORsX1/v7z+vjn7O6UkZSU6eDv6JWV4uH0XVJ8fE11dXxmd3J/c2V8e2N4cEpaTEZHd1lX0cnD9VB9SlBT0NVV1UrXysjw/OHi8Pz75ebz9MhXQFpV0VFEW3BtbGZhYWF5eX1lZXl8d0NSy9zH/fzl5OTl+v/55OT73lfaSH14ck9yfXVbVlPC9N1BXN1bc3RQ0UBd3fb99/rk8c/05PfW2cjfW9/GxtJWxvTw9vT31XBLRFxFQFJQQHd2cHB5ZHtkZmBsZGBjZX5JTHXZ21XVyvDCWEdSSUJaVtld2ubg5+Xi4vbL9sj12PX5/fT4/OTl8OT/1tzVVk9nYGJpbmlsYGd4dn96ZHl2X8b28vrz9fPy/ffx5fDD9vbK8vL29NHXQEp1YXh8bxVrYmRlc0hwc3VY1d/Z9fTLVUfW1dbM9/76//zD08LL9c/AzffAwPf09MTeVFTUR1bcTHxlfXd9T1ZeUF1CVdNW98/eWHFEWnRex/P7/cn1zsPP9M1dTHByTEhS1EpaREvUXNPx91RFemFmbXtzf3FmYXB7eVjR2FhHUtdXxv/+9cD38vv4++Pkws7I+Obh7OL8wtZHTHB0V0N/Z2NhZXJYXNHQXF5R3NvB0kF2cUjc98P0/NHVX1fw9v/m8VZd3ff3yv37w1t0S0pzRkZ9YG5tYWFlfHZ6bGBnc1tQRE9/ZUpa9Ofm7+L4/vv+/+bl/shdTk1W1cH28sZbTF1W38fSVnVTyd/z8PP7U3Tfw/Tm5PfPSVPRWcn8+MNYcnllek5QW0B1d0pB3P/yzlJ5e3pnQklhbWoUbWB9x9hRVkxx1VzC/8zJ1NjH9P3g4+Hn5Pn6+v7k8dVOTUzdzv/h91tbQ1DC8+T8xlZXU1TYzP7LV0l+ZXp+cnh9ZmZlZ3xa3MfXTl1TUvT88vJV08LI+uHu6eb3x15JV9hSRnxgZGRmfllU3ld0THt32N/SWHVbQF31+f33UXdweVn29M7cQ9HDyfng4uHn211DWsvMzcnS0cff3PD+wd1zeHpyUl1FQn5lcHXT++bn/93Vx/Tt4PnyyNRbRU3DylXRcWZkZnxlZ2dtbmtvYH1Dd3FhbHtO18bH88zc1cHI+eLg+8jaXdPJ9/X+8/7/+OTj7OP5yt9SXMzC21x0eGR318HO0VtxYW1lQFJBTElKUNXE2Mz0+/HD2ML9y8TD2FlV39JX2dnYQWdsY3BOTkdAcXxyf3bZxMBec31/Wl93QVFWU9Da0/z5/chAT0bAz8Hy89pfV/T94u7j8VlzfV3V2NhGdE5H38D2+8pdUtVR9fLAyMVwT9nf3PHwyt55Z352RV1aRUhzTVFS3M7RQHF/eHRWWkhMdF/0xNHa3kN5YWNlcEJeTV1Yd0HT3fTm5v3ZWdXH9/zy+v325eH65uD7xFxCTNPQVFpYRE9a0cXJ+vbcTnNmZnNf1lTbUEBAWN7+xFJDcXt5RVxWXl1RzeXv6OvnxkJ3c3bZ2FdDTn5keHJL0VZwe2ZjaWV0TnxxTk1QV8///cRd1cPR9/v+xdJVVNjc+eT2VUdxfHxGxNjC5efk5OTs6OL5ydfVWlrG3kdXUF/axPb533JhaG9jY3NGSUFSRlba/ODlydZJdnBkf3Z7ZXJ5S0pGxUZjb25oY3pY1El1XkbR8eXplfrP29FWV87w8fHh4+bh4O3j9dNUUFRd1FTUWlbF8uXt6+/0dX5nbmptYGBtYXl1QdP38V13QVtLcFTf3FXTyPvn75Xr5Nd0dnN4REBwe2dkc3130txedXtlcH5LX15Y0/Xk5Pjj4PLVSXdwfnZCd3VCdVbL8+/q4fRQSUFLW8HLzPTx+ebn7u7kzVJZTH9lenxwf3dU98nx5PfTXHd/c3dOVN5QWFzHzf/t5MRecHhmY2FnZGFlStPQzuX5U3x5fGVnZHJJf3Tdwvzg65X611h2fn9mfVp1WfHk7ZSRl+Ph4Obx01t2dXN30/Hz5+HkyUd9fWBvbGJ/cmd13N7y5ODk8FTcWE1JRcFCSETI8P7l+MDVTnF9ZWRlcXZJXs/I9OXn/PTVdWVsYWdnfEBD29za9P7y30l+dXBkf09b0N735u7qlJTo4cdUXn92UdDM11tX9+Xt4fT0XnV/Znl0WFfV2M7l5uLg8MdRTGVvaWBtZnpgZVzE9/n85/3fTGBjcWF3UklKwfzw//PzxNVwZGBgYGd5eHJSys3z8/n/+tjQ08Lx3vLw/fvn++fg4eXg9Xdyck9PR0DRxff2wM3229ldentjYmdNX11TzcPX8Pz19lJgY21uY39IWNz1//jg7eLt7fFYR312dHl8SFHQ19PEWUx1ZWtubmRyfH1wWFbbzfP8//LefE1VU9/Z2Mv98Obn+fr69Fp+dVREU0Z1wfn95+Lu4+flzlNESHB8dnBdyd7UwvTR39tVRHdlY2hpbGFzd1jP98b3/PTQS0p0dXN3SHB8fEhTXlTOUXJlZWVMQEVXdFpd1M718+H9wF5OUcTBU8TGwcj54+iV6uD2VU1JR9FIVNFTXVfazvLzwkt8e2ZmbGtiYW16ddnK8P7I9dxRQV9YX19VVlPf9fH099jJ10dxfXZwck51TVBCQVvZ1lRAdnRySkxaRU9T3cXYyeHm+cB0fXtgYHhaV8H2//3m6+/t4/XMwF5aSUp0QV3cwvzv4eXm8lVFd35PTmV5e3FDRsTE3MNVS15bcXV0fHdxRsVW3tNf0E503vReTkl5cUNf3tv1x1XA03RzdHpyQXt/Tdfz/PfP0M/8ysz+9/Dy1UZUyOTn5+3h5/7M2vP0397G0Ex2SEVTXkdWTnNx1VxOdUxe3tjQ2FJGd3FnZmdPQklbXEdVVt/4/OTz/8hUV1BAd1nRVlrayP748FxSfGJjYXJ4eH9hYXl8Rcv49vH23dr18/b45f36/vb47+j6wVB+cVle18DGX0dJWdD95M3FU3t+UNDC9/fF1vTJ2cr+99ZceGtiY21lZGBhc3Z2Qf/819JZX8bP3vz10UBCQEpW9fHUV0dPd3JkfUp0c3VPd0FQx93S28rz5OXj6O3n5Pzw5eHs5M/Fxt/bVd/323VLSnBLQt3ZVHVdVl9aRdvTSnVYRlLexsXXcXdP1/T1/89OcX1heEBR0tNDTFVZx8LzzVzV1URM0txGcGZmdEBT2/L5w11DRk/e9vXBTnBG3sb85Obk+vnz9f3n/v3Oz8HI3vT68vXHzMfT3vj101tNXllE2/v0ydVAd3x8RFpKS3B3d3ZNXV/WVVNKdEBdVlxAfn5ySl/O9c7AWXdKUs/wwtxBQV5d2Pz78/HM3FZX2sbbxtnK8/D8+fjw9s3X0sfIwdLSVlNC3f3n5/nl9E90d0p2fnNkZ3hyTlPcVM7MVFZYXVNb3FFBQVdQV8P08s3USXRE2dNUU0p2Q0Jb3ND1xF5OdElbdnFdRFzcxMLHXMfUS3dxc3x0UtXUUkTcwf398vvI2M/E3lVa1kx/1MLQz9rDytPU31VUXU53T0tA2F1SVdv0z9veV1DM2NLf2NvbV1dZR1FOcXdOcXx8cUpA1MzYxd/ZydddXkVDf39zeXROWF5U1dT1UHR3fHhkZ398SETGyvHw9eHl5ODk+ffEw99dXVXX0FTS/fLdR3lnZm1lc3t/TkpY1VTI8ff3//z79fT0wfT8/efk8/v3xtJaZ2ZjYGRhYX58ckJbxvXFX1hOd3hkfHh5Wkdc39b1w8nY9fz+3XF0fHt9dUlUVczL8sjb0dVVXcfKzM3CUtPW11XSzM3b3NrU29deX1nVysLA2dzWV9LV11xRVNrXW1/Y2dL2+fDZQUNMYWd7cUNRTk9FdUp/cnh8dEpxfXl4e3l0SVjN+P/z8fPe0dDH8OXk8N/N/PL2xMbf00xLU9dGS1RcV8Py+v3QXUdEQXVLQFbUxlVR1V7G9//k+vRddGFheGdgYXp1TVrEx1FRWE9V2fT2W3VAQ1pF08bC2FRWdHNzT3dLX1tAc35P287OwsvB9/PH9fXQxcLO+ebj4fvNUkpMSk5b1cLWRkR1SlDX3cbAXk51fX18fnBOTF9U0cTdVFFfXdnZ019EUlhCVvX0/ffMxltIQ0db1s/z/MjKyMvN2d3XWEtLf2RneHB2dEfB+efg5vLNRHFMW0pF299QXNP3/frh4ubJVF3XW05JQXRxWdNQSXV8en5EUdNZd0x2c3N20/Lw8PzP1dHP8cz54+Lg+/D++v7J3NFQQHB3S3FyfGRhQt7T0lt0c3xyeXF3TFPDz9vM+uX54+/u7uPl9sHDVNTJxc1QQ3F0SXR4ZnlwdlfEVdFTxtvZ8PLzytBBR1xV3/T55+Tl+Pvn4ObTXUN9fmdjYmNnZHJQ9fb+5cjAyfP03MTLwd/Z287x8/3/9vD29NNxcH5nYmxncXN8cnFzeErYx878/fPI1tn0/f7w/vPP9M3GUM78+//5/8zEVVFfQl9LdUB8ZHp+fHZbz8jK+/v6+Mne0t7OzNvZ09vx2F7X2svCz9hbWsTAWklxTllX10JKd3ZxfHh5dFRZd0NHWVf34ePg+/fS2MDb28T38vz78+Xm5Pn3zMLG39JNdklMRlzZy//l/VdV3UZ2cUlxcXJyfn9GXdTPyPfyyNbcyvXaRlLZV9/bXHZORkBSRVzMyMVNcXl/fXRHTkBIcXN7fV3C/Pv74efw+/rl5uX1wt1QWk5MeX1PU1lE1NbRXUJMWN/94ef59tvdVMPz5f/N111ESUB0c3d0Ql9EWNTQdmdhZXl3WlJYVFF8dlzdxsr/99FRR0xS38LE09fX3c/eR1dfWFfWUnZ/dnZ+dFPEy/rn//fPWk9YU83K9dlCdEBJXt7N9crzwsf/+M7dVldaQFxLf3pkbW5sZmRwdHd1c2Vlf0hV3c7fW19d3cnw+Ofl4PvNwVfURX1wcH1wdnx4ZGd6dVrW28NWTEN0QtL95Pj5+fXE2/bl+sfVRklJfnpmYGRkeXZLQVZCTV1awvD9+/DxwEBwdn90Tk1NdV1FdnF0SdVWVtfXwMbfydJRwcT0yMXaXk1GdV/Y0cnDWFlYcXBldcTRx95EcX1wcXZFRV7UVtfVR0RaUdvcxvbI1kR3c3txT3dBRHV+eEBHTEXeWF7e0FBC3fbx4eH65/v98cnFU0VSQHdEVkBKcHJxWcvN0fDO01xyeHhJSHVf0VdVUVfYxvTzzvT68s7dUl9f1NVE2N5GR3d6ZXBf0kdKcGBjbWxne3l7cFdWUcrLwvng6+nplO7h5vbNzsTZxPHCXtXRdk5FR0VHR0Vye39lcE/Vxvb88/Dy8PT//vv+8fbeW0FPTVlZRl5dQEl2fWRkck1NQNFQSkp2eHxzf3ZGSn1wS3Vf8+Tn4e3s4+f+8vbIzMPG2Nnb1lRX18fByfD2UHB3dEDUV9POyfH8/Pz8/fr4+Pz7+sjV19VT31PQ8MxXR3xnZ2R9fXx1SnZzfH1wc3ZKW1hWx8HCxvXk4Obv6O7i/sPdVFxOdHR+dEBMQEBQ9PX1+fz999JWWEDX2PX+/ffKwN/O8v/08v3y8s3f0NBXV1VRX9jSWXBnfnV3Wt9cV150dElycE90fnpycHVNVMnl5u3s7u7h+8ndW1JTX1hbTnd/eHdARltHcUJASktKd0VR2vb+4+7v4ebg4Prk5v73wdfQUkFS0k7WfEtQZnRPTkbd1tHGz9VGd3hlfX13TnZDdkPcxP/i7+/g5OTzzF1ycHx7fHZDR0hF1dHL9cjCXtZWWtZGQdBR1dbX0NrGzNHZ+fL4+//+21xFTNfd0NVGdnxkZX16QNRaX0FaUEx0fGR9cn1O18n3zfb65uzi4uLh/MRdTnFzcXN/fX1ydEJWVt3Z1tHRV093QUZHVsPK9PL/+fXO9c/y+fHwyNhTQ3RyfX13fH9/cXF8StXQ0VFc3VdAc3h7fnlzfX1xdl3Q2cz84O7plOri8tLSxt7c10taQ3Zxd0hRV9fUQd1cTXZ+dUZN3Mz3+v395f3/5/nl9vTy3Ul+ckpKSnV8f3hhZ396fFnQVU1YWHFlYGZ/eXNzfEdDTlbVxvjm4Obk4P/TT3F2R1dRRF5VRFfGxML6+vHDwtpfdnJPRFRV1dPM2t3FwdTH4ezh4ODz2F5S1cH1xtTVUnB5fHJ/T0d3fnB8YGxoahVjZmR4dk5NXtbM/eLp7uzj8MrZ01dV2lxOT11MRkxNS9XOwNrf1ExPeWVKxPT/8vb29ffz8v7j5Pj55cnXWH14f3d/f399f3xzd1jT0FRYR0t4eWRnZmVnZXlyTXB9TkBV8Pjl5+Xzz9nW38jIxs/b0FRd0djQ0UdKSEp0eGRjY2ZkcUHE38PI9vb84e/o7O3n5fnKwNrd3FRfWE9GSX5kZ310cH1+fXFnaGpoY3h5R0ZL1dDH8+bt7eLu6eD8wszSQUdTQEh1QEp8fkpEWV9GQk1GfX5yfXNH08TZ18Le0cPy8/bx9/D88MfQ0tnY9/DPWV1VSHdKQXdwQUZLcnhgaBVrbXp2cH5BUkpa9+bm7O7t4eTk/8zdwvHz9dNd2tBWX15IcU10fWR6ZGBhfkfAzcLIy/j/5eHm5ODi5vr8+vRVRUxKQ0p0eHhnZ3hyfmd2dENJdXB8f3l9TVVQUlfX3ff45f/h7eDj4Ob/9/H99fLyzM7b0djB0kd2Ud1Y1dZNdXNxQlvMwNbY3s/KyfLz8+Tl//r+8PnKw1ZFUXV4eH57cnlkZWV5ZmZkYmhvZmV6ckNCWdTx5+Dv6O7q6u3p7Ofl+vP9wtxUS0ZBdHZyc3dxdXVYVlJFV93GwdLP9vf+5OXl+ufh5OTm4Ob6+/PNyVR1dHpkfn5xfX5xdkhNdn54ZWFiZnpmeX9mfETU19T35//64uLt7O7u4e3g8vPL0szG3FJydH9gZXpleHl6enbQQ3HT1sD/5Ozs6JaVlZaV6e7k/M/IxWVjY25vYGNib21mY3hOdnB2fXJ7fHx6dEhG3fXz/fP65fj6/P/l+vPw8ffSQk90fUpbRVhaWUFGU1BCQU5OQ1rWXlld0d/L9/P5++Tj7umVleru7ebyw19wfXByd39nY2JsaGpsYWNibWNjZGVmek1V2vjt6ZWX6u7p6+7h5+TyyslccHl/eWdgYmxtZ3lyT1VZXtbWU17e19fY9P/+5+f4+uT75eTh4+Pm8V1EcmNiYmBlcHB2TkxIcXBxf3lkZWdjZGRgZnFDWNXXzPjk5uzr6uqV6unt4uXCXVHdWUhlYmJsaGtpYWdneHp5dHd8cELb8ufs7pWQkZaWlJTp7+37yFV5bWsVahVqahZqbmhmcnVCTUBKSERFWFhf2/Tz5+Xy+cvGw/X9++bm//zKXUtzdERZ1t9EXdNUUFBWVN/VWVlMcHxnY2d8d0hHQcDx8uTi6peU6+/s5vPFREtPdX5mbRUXEB0SExEWFxYVbm5oa2Z2xfzk6JeUkZfqlZWV6pTo7OfeSnd6Ym1oF2tqamxsZnBHU93W3s71y8D+5eTj7e/v4eb++efn4ef21lxyYmsUFW9gZ2dyfX92cH1/fXFNRERBSHhgY2Nmfnp+dE5Q1NnM+uPv6ejrlJXp7eHn8MjWQHBlbWhrbmFmZGdlZHtiYH5ewfHh7ZWXl5eVlZSUlevs5PnZdGdibWoVFBcRFhYWFhcVaWJhZUzR3cfO+OXk4Ofk5/v98vX1/OX5w1pOcHpkZ398cnR9d0JEQXRKVvT39PfK8cdSSEpDTdfGxvHy//rg7e/u4+Lt6e7g+M/N00t+Z2xoFRcREBEUaG9sY2BgZ31UwPLl4e/v7uLg4eTj7Ozt4f7wy11LeGdkZmBiYmhpbGJnfUxJ1Mjx5O3t4eDv7Ozi4+Lj5ubm++f/zdlYdntkZmZkcnllc0tyfmFiYGdwSV9YR0p2cn1wSllfVczH3sDK+efg5uLo6+jr6eL929hPf2dhYmtob21jenxyTU9wQdXSyuXg7e6VlJWUlJWV6pXu5v7IX0l8Zm9tbxQVFRYSHRAWFG9hcFHN5eLq6+ro6Oju7+/n//nxxNHXSXZ2dnZ3dE9NW9VQUlHVUNDK9cbw+vr998/WRE91R9PTwcrLwcL45P728Pn+5eHm+8jAUnZ3fmZjbxVraGsUaGxuaW9kck5RzPX0/efm4eDg7Ojo6env7efk89tIfXFlYWJjbWtraWliYGVG2fPg6e7u65Xr7u7qlOjp7O3g+vj3w1hzfHx+f3B9ZmV8e3phYGBgYXt5dHZ2WllETEBHXd/Z38fd283N0dbQVMTw8uTn//X2/MXW2tHR2dddRlnV1lZFTlLXV9/P8vLK+Ofj7O7rlZSRkZbq7+LkzVpLeWFsaBcWEBITEh0TFhRuYXBU2/X85+Dn5+bm5uTl//P3z9vSdHh7eX1+Tkp2dEhTX3R0W9PfwfL55OTh5/LS2sHf3M3z9Mj0/OT6+eHj4OTn4Ob58/7y009LdXZlZWZiaBRqFBYRFG9sbXpOXVHc8eX7+Obt4uuWlO7k5uTBXnB2dmFsbm5vFW5hYWBmd0NS9eTm5efi7+Pg4+/p4uHi7+Lh5/LeUkVdSUpIcX9mZXpkZmNnfmVnenRxeXBBSXVxQN9dWkNMSXRHVllaWlbVQEXWycjb9c/Jw9faxNNVU1l3SVtOfWV4cHB5c3FFSE3R0MHO/uzr6paRlpWVl+vh+vDAU3tmbWkUFBUXEBARF2hoY2V4f1/3/Pz8+uT6+vrn5P7l/dBCcXB0c35/ZWBtZHN+fUhYVVfY8/r+/uX68PX85eH4y8dQdXXUx93Qxc3Axcv++fH29MDWUVhSXXRxfHtjYGRvFRUUFGpoY359eXp/cEzT9uHt4uzs5/vm5vXc09VRR3Z1dnlmYWRnen52R3RLUlNVwf3k+P7+/vn9/+bn++Tm+Pf/8/T2ys3HRXZ1dX1nenh5enpzSXJmY2FibGd6dkJBW0BPTlvdx1fQ0NtQU83K3tVXXkJB0tDBxtvY1VNR28RFd3R3cHTS8P3A2tjd3fb74O7vlZaUlerq4vPLxN1dRV9WSGZpFBVqbG9gYWxvYmFmcEVNS0ddVNPK8vzz9MHWRUZDdXZkZGRnZH5CSX95dkRWwf7j7ub998DByMr/+fL39Pb1zcNXWF/Qxs7y+ufi4fvl8vrj4Ob7/vLC3d3cXXJsFRQQExYXam9ubWNmcUTA/fvj7O7p6+jj89F0c35zQ0BMd3pjbWJkfHR0SE91Rcb75/j75+Ps7ZWUlpXv7Of//f38/dnUREtIT15adH1nZHFJV8X2ysRFd0tOdnFKd3BzdnbU01hAcX9xdkXW2FB1dXFzdFzP/Pfx//Lz/eTk8dFKcHFyf3ZaQ0x0dkxfVcX9+f3/4e3rlJeV7+f6+fn65OX3ztZCd09AQUt4ZmdjbGBmYmxgYXh2W83l5eXk++Xl+fz99tFMS3l7f35le3pnZXZXzfHx8vbD9fL5+fz48vT1wfPn+8j1w9zQ3sH/5v/3z8fE9/765P/M98ja9fHYW0pkYGBgbWBtbmhqamx4S1zd2cH8/Pnj4cjD3lpGSk9W0kJ0S01LSF/Rx9Z1QFVWxM7BVd7Fw/Tz8uDs5/v45Obh5+fk+PX3zMn/8sZEWF5TVtXC+/7KxcddSUJ0ZWBtbmFsbmFlZGFlcUXX0cTy9MPe0lfH8fL298TRw9/byNdHTnZ3dnVDUVJDWlBfWMbz/v/+5eHs65eRlO/g5/ry9/H+99VEWENKQVxZTn17fHl4eGRtaWlvYGR8S11cRFNXUdD08NtTQE9KfXRAcGFjZ3x2S0bSzsXE8vn++ebn/PfFyM3S39xEdnRNU8fO9//+9M3w//vm7O/i7ePv7eDm+8NSWllMcXxkemEUFhVqFWhsbW1nc9/Nzvjn+PH28svc1NbcRnl6fXpkZ2RnZ2d9REBEXllMXtLbyvnn4uPk5ebj4eLs4uf4+ef5wsDD1UhPX1NQX1Lb111ex8za29dYcmdnZWFsbmxqFxVpY3h2QlxaRFDWW1ZWWU1IRtrBUE1ETWVkf3dxd3dDR3FwWl5CW11dWFjc/ubn5OPi5fvm4Obm4eDk8872wtLVU0B1R9TY1kRISGVjYH9xeXBAQXF5fndxdVlWRkJE0NVMdndLf2FkcHx8fHVMdkFX0NzezM1fUtDL9drH3lhLd0BSXMX/5/rk4O/j5Obg5/3+5uPn/fTO1kx0X1hNSXVwZ2BgYGFgY2diaWJlSEdfx8vCzfT/8cvLwF5KTkF3ZGBgbxQUb2dkeXF1dHdL3Mnw5+Dt4Obi4uDm5+fk8fXLw83TV19bVlTazsnK98vP8fjn5/7z8NlHRkVCdXF8YWxram9ubGZ/SkxWycjH3djB0Ffexd3UWU1xfXllfnl+cXZ+fn1wcE5Q38DbwMj08OXi6JWV6Ono7+jr7ODm4efzyNxcT3pnenlwdUt1c3xlfnN1XFRFQ05KQ3V1S0hPdHVKc39yf2FiYWV7e3p5eGR6dl5X38PE21JMVtvJ9vzl/vz2ws3DxcLCzPPk4uDl/vL5+PL65+bm5Pj9/fzy9/b099pSX0dJcX1+emVhY2NtYmRJRFzbw8TAwsXeV19GRU1JcWVgbWtraG9jZ35zdXF2Q9PI/Prk5uzu7O/v7ePm+/n+/Pjn+/H39PH28P3wx9DU2PX2/Pn3zt3W0lJeWkJNdHx8fmV7f3tmZHJCU9DSU053cHZOQFtRUHVwcHN9f3t4ZGFhZnhwcHdOT0XX9PP45uLu6euUl5Xq6+7i5uTl//Lz8MrfVVdXVdXZ8czHy/b5+/HMx83I3FxaQF3RU0R3cUpNQEJJdXdwfXt6fHFyZWZmZ2V/dUBPc35yS3V0W1fW3sTJ9v76/PHJxvX44e3v6e7v4uPi6ZSV6OLm4eDg5fPD2lVATVnR1kdzfXx4ZXhydHR3T1hXx/TC0EVJcnpmZmZkZWRkYGNibG9ub21gZHl2QkVbU1HH9fng6erqlZWV6ujo6O7v7+/j5OTk5Pvzys7C9v/55+fm5fvg4OHl88BSdXR2fHlmbWgXFxcVbmxjZmdgb2NmeX99cnB3dEFCR05/emFhendaUdXBzcL85eDi4+Pk5OPplZSXlOjs4+Dj4+b7/v329/D00FJaTU9LTkFGQnFlZ2Npam5hYGZkZWVleHh+eHp6ZGVlZGR6f3J3Ql5W3N7W2cDOxsj++Pn4//3/+f7/+ufn5uT+8fD/+Pn6+//L2tveU0JwfHBwd3RKcXF+ZGVkeHFKSndzeWV/d3RyfHJ/c31xRkJCW1lZWUdS1VFWVt1R1c/LzdJcWlDTx/H//f/78v/88/7/+Pzz8Pf///fC2V9aU1lbT3JnZ2R7f3ZMQE1KTlpDSV3TxNNZWVlCdEtHQHVHRFpdUlbR0tLbwM709MbMzMLI9/f398bQ1tRFcH14enxyeHx8enx3RF1ZWNDQUtPA2NRf1NBW09LAwdFFRU1IR9bFxs3H9M3J//j5+Pv/9cTCwsDAyMPeXV3ZycZWX1NScn98ZWZtbWJtZ35KRXRydUdISl7Z1lZTVlJPQkl1QEt1dXZDRdfZ3N3I8fHl4eDn4eDj5/rm5+T78vLOwfX3+fHCwNxedktbTnB3cHJkY2NibWhubmhsYGZ7ZGFnZmZkc0hJT0tJc35zSEBbXllbWt3A8fn8/uTg5uHs4uPj4ef4/Pn98PTY1URX2vH6+fD29/b38PPA00VAdHhlYW1pamoUFGpobW9obmxub2Jhe3t6fnd0T1hdVdPby8n25ODp65Xq6O7o6O7s4Ofn5fnl5Pry/f3x9PP6+vj2zthWQURETUhyf3thYWdnZGNhYWxvbWFnYWBhZ2NsY2dkYWJmYWNld1pcRNDa3MX94+3t7+jr7+zp6Ozh4eHn5OTl5P/398DS1dzA2Nvf1dVFX9rQRHVJT09T3NvAUk9GQ3RwTEl9emdleGR4SnJmenVzcNHB9fDCy/f09Pby8/D28f788vj68vT19MLw5fj7+ffI9MDf2ttQWkZbWUBbWk1yfX9/cHRNT0xLfXN8fnFCU1NZ1tnA9v3l//Py/P/85ebn/vbCzddHXlNHdEtXXE1d1tpWW11eXV/N88reVlTVREFdXVh1Q1FCTdXXUElxdnJ/dVJTRExLX1JOW9LHzc/2+Prh7uqV6e/v4uLv7u3n//DxwtLGzsdWV8XTUNbe005/eWdjY2ZnZ2BsYmNvbmNjYGB6dHdJV8fD0VHc0lHfy/f3xtTbx9/GyMjK9uTm5eHj4OHm5OX9/uXm5/r75eT78ffK09RU2dNEUldQW0l1cmdne35lZHp4emFgZmZjY2Z5Z2R9dEl3cXZweHRU9v3w/vv+/eTg4uHi6e7i7JWV7+Pt7+D65Ofh5fn+99rbz8nF0tzRWXVITkx9emVkYm9sY2BsbG1jbGxtYm9ubGBmYXpzcnB0WlZZ1Mn///rj4uTk5uHi4+Di4uHk5+H7/P775+X7+vnx9/PO3dreUUVNTXV1dEpHQ0lPQVFfS0hJdnx8fmNtZmFhZ2dkZ2Rkckl2TVDR2NPXw8vN9P7l9/T88PD9/P74+fzk5+Tn5Ofm5Pj/9sHS1Ul7c3N8fnh6ZWVkZXRJc3B8fn99cnFzf3NGd3JEX1HV2cH19drL/vfMyM7MwcDax99bXdZEUNvT39ncxM3b3czD0VNeX1NYWEJLdXdxdndF0VdU3djYwldFUlhKdUh2Sk90d3Z9c0pxfHTQ3dr38/rk5fnk5OXk5Pr75f33xsHA9cfB8fTZ29rH1F1FSXR7ZGRkY2NibGJvaW1hYWZ7fnN0Skxxc3N0SXx4f2V6d3F3RFLXyP3y5+/s7+/r6+7u7O3g5fv498rw8crE2c/PwNnCxNHeVER9Z2FgY2Jpb25rbm1hZHl6eX12Sl9fQ09EUkZxT3d+ZGZ5fHF0RNHOyvb6+vnn4uPg7e7o7ePi4OH4/fzz/vr5+P/w/P32yMv3VUZBd39nYWNvaWhoaWlsbGxtY2JjY25rbGNuYmFlemR/TlhBQFncyvT94eDn5uLi5+Ts7OHg4+Pl+OX48/Dx8PXN9Mr3wtrXWUdLTUNOQkh2dUpN0NvT3lVaTEZcX1JDdHJ6YG9vbW1tbWBgY2V9cHROQ1xUzfP5+vnk+vn65OHj4eb4+/r45uDm+vj48vXx98zfVF1NTXd9cHZzcXFJSExZS317fnJ6ZGV4ZGVnYmNjY2RzcnZZ0c33//r6//37+vbI9vHPwsDB3NzR2cjM2trXW1xX2t1cTUZBd3ZMVl9dWkNAV9PN/fny8Pbz//L8zVhaV1p0TVtaXF1Mf3VDXMDz8PH8/Pb0+//3zs70wdnc08TE1VlOdU5U11BSREFHWlPWTndyf01Lf3VId3V3TkF0S1tNR09OR0BGR3V8ent2TEZZVt3awvzk4+/u7u3v7+no7+zs4fjy8PL0xt3dVFdU1VNaSkpxe2Rnf2VgZ2Rgb25iYGd4dEZT1FfT2VfX3FFdRVffW0ZRX0FOW1xQ3sXx5eXk5uDt4u7p7O3t6e/g4eDk88/KyM/I9Pz88PT1y8zS3Vp0cXt8fmZkZGNpaWxvYm5jZHtgbmJtbGJ6Z2ZleHFIcXRCUVXC8fH45eDj7+7q6urq6pXu4ubh4OTk+v3bVsbGx8TDxt1XUFBbTk1HSHB9cE5SR0deRk1eUl1RUd1QTHR3dHF4fHlkYGNnfnZ1Xd7F2Pfz//z75frm4uzs4uHh/f3x8ffC9c/38PXI9czb2snJ28HCzczQU1ZeWVtQREFOTFtBcHBHS315e3p4e3NzfHh5f3l/T1tT19r28v32+OT7+uX6/vzl5ubn5OX21kJEX1VdV19PdXt8cnVPdHR1c3dI1cHCx9FSXFHbyMPw8/vl/PLy8PfN3lZdU17U39rc39LaxszI9/bO/fP2//fNx1VFTkdT1FdFTEtDRFxTW0txemVkZ3pySnF5Z2RkckpGWVBKfXl0QFpEX9ReU13VxMvI2d3X19/Ew/X85Pjy/Pnn5uLp7uzt5fz1/fbG3tTc1k1yemVnYGZjY24UFBcRFxVpbGN5fnl5ZXBMWllF1tFU2tnK/PP2ztvb0MDM8vj1wd7CyPTy++fg5+Hh4ejo6ezn/vXJ9vLm5/nw2Fx3d09DdHlnYWkUFRUVFxcVFWpoaWJtaWsUFxdqaWxjZnJ2eX50RFle2vTz/Pjg4+Tk4e3u6JeRlpeVlOrv7e/h/v358/vl/P7PU01AREJEQ3lkY25paGhsYmxqaWxhZWdlZ2dgYmdleUtaVkB2cHZJRcXw88j3//Dl5+Tm5ebn5uXk7e7t4OTk+vH65/rx9/v6/P398MrB11hxZXh9eWZmYGBvb2BibG9iYGBhZntkbWdlZ2F6XNBFTkRRU1H18cRfU1HczfLh4+bn4+Lm5eDt7+X2//LIyMvJ1EFFUt3U3fb00UdAdGdgZHt6Y2F8e3x9cHF6e3ZdW03H9sNRU1TZ08n98/HM/eX48vv69NzQ3sz28OTh5fD19NJYXNrDXEBQXktCRFhLS1ZR3d7C/PPdUkV1emNtY2Jvb2Ntb25sbhVrbGFmZ0/W0dTF9PPz++Dj4+Dt6enu6ent5/7w8fTx+Pv029NecXp7f3pmZXl6ZXN0cH1wdEhNRN71xEdMdGRibmhvbm5jc3F2XlBBQdfB9vHx4enh5Ozp7ezqlZXq65WXlJSX6+H+9c3bVVTR01JAQ3F4ZGd/fGVncFl3S0F0fXxJW3R6fnV9Z2dnbhcTExATEBYVbmR5d0tIR8Tz9PHm7OLg7u7s6eqQkJCQkJKQkJKR6+L69NNJTlpIeX5+e2VmeHFwc3x/eXlwR3Z/ck7SQnB9d3d3cX54YWJibWJhY2FmfVZWWkVRyf385+Dj7OrqlerolZeRkJOQkZGWl+jn8cLUdn55ZXpmZXByeX90QUNXwNlfWMXaTXphZmBibWxvbmtvbW9pYmBgYXp2c3JMxcrNxc3PyfHk5u3p7+vq6+jo7+zrlOvt5OXg5c7URHJ5e3l7f354fn1le3J+c0JQXHV+d09Lcn5kZnpOWVbF3t/axNjMxdbTzPH0zcPx+fj/+/3w8eTj7e7u7e3k5eb89Pvm+f339fDx0UR0fnp7ZGd7cHRxdH57ZWRhe2RmfmZtY2ZpFWxgY352QFDYzPL+/eTk+Pj88/fA9/vn4ebn5uHi4O7r7e7v4PjxysH0wtRcREJFWdRTdHB4Ym9obmNne2V8e2R7fHt7fXJ9eXx0QXBwVtFaVNz0+ODulZXp7+/t5uT9/Pvk4unv4uzv4+Ph5vvx9MjGV1heVlhATXVDQ11QRXR5ZWFpFWpoa25iY2xubWhvYWBuFRVobGRxTVHbz/b45u3v7O3v4+fn5OT65+Hg4+Lv6pXv6JXt58He3dVV19hX39FQVVfXWXZ7Zmdmb21gbW1iZmVmYXh/ZnNBXHNgZ2ZhYXJB2vTx+uTl5P7/+/z8/+Xk5+Li7uno6Onr4umXlOL4/t1adU9Z09vewcLIxF1ERXFkbW5raW5qFWoVFGprFGtheWBoaGlraGxgZGVI3c3z//799s/Kw8TL+Ofm4ezv6Oro7OqRlu/4+vHEWE1OdUhNXNzbxVBQ1112f2VkZGNgZXp6cXZ6ZnNZ0n9sZ29pFG5lf3h0VsD09PX++P/y/v/98Pnk+eTt6Orp7JeXlOPH21pxfnxxSXFwd0FbU1Ba1FRDcHFJdn95Z2JvYGFmaWllZmNqFhYWFhZpZmZ7T1TC//v+8vDy9fTN9v318fvk4e3i7ePs6ezo587BUHR5c3Zzd3FNWE5DWdNSdHl4ZGBjYGV5eHVLfGFmdHR2eWBua2hvYGR/SV5Vz/Pn4ePv7ubz/eTn5uDs4uLi7uztleju4fTI0lhfQkRPcmV5d1pbREVKZWBnZ2Fjb29vaW9vY2FgZ2ZsahQUFBcVa2hrbHpwXNHx///h4+Hk4ePp7+bj7Ozu7uvj7eHg7P/5/PTAVtHWSEpKQVFHS0pFQ3VzcXtgYGd6ZWR4cnZ6eXN/eGdlZGBubWRken5xd3VZ9P3m7uiV6uiV6pWXlpeU6+7p7+/v6eLm+v722cv3zMDUUdNRVlXVUU58Z2ZjYGdgYmgVFRUVaW9uYm9iYm1tbWBmZmFnc3ZF2c/M8ebh4OLs7eqU6uvt4eDv4OHg+/vk4O/u7OPj4f7x8vH28vbIycVSXVlOdnhkZ2RnZX5kZWV+entkZmR5ZWBnYWNkeX1KTNTO+eHplOvp6+uVlJWUlJfp7+3h4eLs4OTl/vPz8uTh+Pb29Pf19v3xwkR1dnt6cnllY21vaWJjZX95ZWZgbG9pb2JrFGljZnNS0sX0/OTi6OqUlpTr6Ojs4uDg5fHy5+T++OTk88jG3M728vvl88n39MzK3lFHf2V5ZHl2T09yemBlfUpDTEpyeHpkY2B6f3BwWsf24OmUl5Xp6eqVlZWV7u3h+8zK//H2zdHdwPTy/PbOwdZX1trb2dFbQ3V8e397Z2JoFBVubGNsbWJtYmBkfnd2eXxycEpE1c/19Mjw5+DolZeXle/j5P7z8/TE3trHzPP45f/+yvf98//88/TYW051TndzfXt9fXh5e39+ZGNqaGxgZGV8fmV7fn9xd05GX970++Hs6Onv4uHj6JSUlerv5fDH38Lb39rQz/L74eHg5PRSSkpZ1NbTX3NnYWJiY29ubWxub2ZjbW9qFxATEWliZnJ0e2FmfHFMR9f38uft6pWVleL9wNDE8/j68vTMxdLby/D85eTn4+Lg5fLBU3xhZH11S11RR3JkZGdmYGBmYmxkeHlkY21oFhEXFWxleXd1dE3d/Obg7O/ql5CSkJfr4fZSRlTQyfHy/vvy/fjm5Pn99MzN//7OUkl7aRcXa29gZ3t5ZW5oaWsVFxcVFRVvYmxuahcTEhZrY2VzX8r89vvj4+Dg4OPm5+H78cZQdXxyXtv45uyUl5To7uH4ytxTX0Fc3Ed3fXpgaW9kckdMSV1Dd3J7ZGNtb2xtZ3dLeGdmbWxtZXTV9PHn7+/p6O7s5vvz8vvk4OH+8cza1FXb9ufj4+zt5OT330Z5YG4Vam5mZ2JjbG8VFG9menpydHJkZ2diaG5vbmB/Q9VbT090dHNC3c/9+uHj4ef4/cnb2NPfxPng4Of4/+fl9v7h7e/s4OX1VEVwZ2xoaWhuZHF9eXt4cH9+SEd1cXV1dHJzdX1lZH9IWc/l4eDk+fv/9/Hl5P7k5+bg5OTk/vjl5ufl7Ojp7Ofk5/zPwPL1yc/XUFt2emIVFxEXFhRvbWBub2JjYGBme2FkeXhwc3Z1dnZ0X9rJ5OPv7+Pm+PXcUFZbQ9DB9v7k4eH65+Pv6emVlZXp7eb9yNlU0FTR397d1tNScXhlYWFiYmd4fXllYW1jZmR5dndOXdbfzcDX0MP2+eDplJTp4uD6//n98Pb39vrk5eDt7OLs7+/p6e7v5PD00Ex2emFiYGNhZXt9dnN5Z2NsbG1vbWJpbGBjYWV/cUxT3/fx/P7+//398vH18f388MPy8Mnz+fjn4ebj4+3v6ens4+Ph5+Tk+vjOxdvVWktBTXd+cUlFX050SnRyfHlyfHN6e2Vlc3F2QlXB8v3h4OHg5+fk+f7wz8zI+frz9Pf98fP64O/v7urp7+7t4uX/9sHE397dWnZ4emdhZ2ZhZmd+d2VnZmZhYGBjYWdkfHFwcnBAUNPAwPTz9/nl8/b1wdNQ1lNc0Mrz/fD2/f7k4+3t7+/v6ezh5Pz1V0dfXkFdUNHfU0dOdnZKfX1OW0REdXNzfHp7cXZzdElE1t/Cyc7L9PH3ycvx/f788/32y9rQ38DNyvP38f7l+Pn8+f3O9PT129TWXXd7Z2Zjb21nZ2R7eWRvaGhsbGJhZmdmZX5lemZhZ2R5TN/H2MH0xVxYR1nU18r2ysn38MjDxcfEx8rl5Pr5+/7AVlxX0VFUxcfUVlVQR3F/f2V6cEJMcHxzfWdgZnh8eXtye2V9cH1lZXJ0dEbL8M3JyPfO0d7MzczNyMPbzsj29vfy/P308v/w9sDH3FBOT09JSnxyfH98fHp6e3thYm9tYW1iYGJvbmxmY2RleXhnZ2d7fnJ1SHdxcURTU9DWUVlHRVfVwPT///D+5+Hh5Ob7ysbW0tTR28fH29jX0cr3z9deXdRSfWVxRk5zZHh0TEhwemdkemZhZHZQRHVJ2vPO2M3P9PDNw97EzcXWQUFWUtnO+eDh+vzk5/j+9t3DwvfH3MLZ0FhBQnVwS0xAX3R/ZWRgYmdnYWdmZGZhZGRnZWdkZ3hFVNdSWlhTWHZ0WFxETlhcUFXWxsb18ff0/+Hi4Obm5+fy8Pn6+uXk+/3y8vz32d/UWENd0t7e0FxGXkhNSnRDSXZwSERbUUdBVFJVwPTz9vbD3MPD0FNd0d3SXVHN9fP7+vj45eTh7eLm5/z28snN3tLAVFBbQUJ2dUl1dXZxS0FZdElNcHJ7ZX9lZ3l/f39yS0t1T01CT1lR08VX2dJZX1NT1lBd3tjBxsnx8fvk5ebk5+Dg4+3u7eDm5Pv7/PDyy97c3dvbwMv1wcL28cvC31NeT3R3QFZaWFxDR1PRx8z39MnJw8DB1FdQWER3cUhaxcn2/PHz8PPy/f3x8vfz+/Hw/vPI0Nfe1V1cXERYVFNc1NNYSEtKdHF1fX97ZmdhYGBjZnp5eH53SlzT0tFcWkNxSU1LS05aXV7Q9/Pl4Ozs75WUl5GWlpaXl5SV6u/t4P/L3ldX38fMz8/29/X2yt7SU1leS3Rzc3F5ZmNiYmxjZmR5enZ1cnNyf3t/c3RH0M/I9/Hz/P775uHn+Pr65uDi7+H6+P7z9vPz/Pj9/P3O2tFfRkp9e2Z4f35/e2ZjbW9paG1gZWdlfnl9d0pzfmV7c0pwS090dVjR1t/L/ubs7uqVlZeQkJGXl5eUlOvp4/nLztvR1NLR2tvcyfXMwcxXWElLcHhlYGJvFRYWFxYWFWtsb21nYWBkZGdkZXFaV8H28fH18fn+8vfz8vP/++X65Ob4//H28v745ebl5fvy88nGxl1Mdnl7emVlZm9rFRUVamhtZHt+fH99fHlzfHl4f395ent+c3x+c09GXcL74Obj7+rr7urp7eLh5P/AxdxZcnF1fHtwQltCQ15QXFhSWU53dHF5ZmBmbhcRFhQXFWN6cHx+eXl9d09BX1JW0sfO9/fM39LYzvTx8/L9ytvf29/Y09fW2PTy9vf5/cBd19raUV5V29VeQnNyc3N7YGBnentnend1WF1cVtDBwtzUXFtZT3dxc398cHB4fXdOR9b2/fH++vrk+v/D29d0f2VkY25sbGBnZH52dElWzvfw/vr58cPWRnNlYWxuaGBnYmJmf3dOREVfUsjl4+3m5Pjx9vbI09HcVF7Tz8bTwNpV3djF9//++vz7//zzzszaxdrE9fXEwcLUU15dXUJBQ3N4fXhyfXdaQV5VwPfO0t7fVFNYWkNxdHZ3ZGd7Znh9SFtHVsL29vP/88rLwcXfUk5Od3x4fH1xdHZxcUPa9/7m5Pn7+//89N5UREdKf3p+f3BIS3V1cU7D8vL/5eDi4OPg5fP1y8Lf297X3NnE2trBzfD/5+3o6urr6Ozh4Of88PHNxd1fUkJJQkFFXkROR1laWEZCdXFNT0BaWFhIdHx9dn1nZ3p5fn94eXJ/cnZ2d17V3/H/+ubl+eX9ysjy9dzWXUl9fHplf3FFxPHw5Ozu6evo7uD6/PTN0FxJf2V7fX1xd0tGTFb18OXm4OLv7+Ps4uPm+v/2zcLE19fS0tXawPX95OTm5uHh4uzj+vDN2dReU0JxfmFmeX95ZGRkYWd7ZmdkZmFmZXt+cXd2Qkp0QklNT09RW9bUW93c2dvQVlTZyfzk+v/+8f388v7z9MLa11NNdnlnZGR7f3ZCRN3A/Of7++Tl5OXl8NNQTXZ/f3NxdkLS2s308Ofj4+6V6u/s7e3s4+fw3lRYREhbXkVfQlPHxsf1/f35//3339NSdXB6YG9rahQXFxVubWNmemdgZnp0QkFXXE9IXFBbUFBVXU9OXlDXwtjaz8Px8vb55fv65efn4+bl5P7y/PDN29BST3d9emd4emBjZX1K1MDO9P/4+ODi7e/h5P3L2FBPQkt3cXB2TkVdVNr0/Ofj7uno6+no7Of8zlJKZWBnYWBtbGxtb29me0BXUN7e0tJcRU54Z2BsbG9sb2JgY2BhYWd4fHF0R1xY0MDc0dHEyM7Lz93XUkTV9fH39M7B2sPAzvzk///9//bBwcL18ffOwtzUUljW0FlCSUlFXFJGW1TWzPfx8/f2+fn9+PfYVVRCd1lQSERVXNPY2djaxd3fwffKyNvS1E92fGFiY29pbm5rFRQXaGNhe0faz/D58fX0wdVQVl9wYWZjZnphZ2dmZHtNUsDB2fb18vvM9PHAx9nGxlBdT05JSEJXUNXdwvbz8PTw8vjg5uTh+fLw9v3xz9rfwcXWXFt0fHtlen97enNN3Pf38Pfn4Pnk4P7K30RIcWVhY29uaG5jZmFkZX5EUU9E0NDAyMTWWXVwcH1kZWRjbWJtZmVleHxyUvf9+fv45eX+8MrfV15SWU5zcmVge3Fzd0FTXFnRwsTexMD08/bKzMfS3M/F3dPQ1Mb/5eHm5uHn4uno6Onj5eXl8d5RRU1JSFhYR9TX1NvfUEVPdHZNR1BdTnZxT9RAcHpnZGZmYWNsaBVqbWNiZnxB2fX/5efh5f/h5vD13FladHx4Z2RkZnlMRVbSx/bl5uPv7u/j4u/j+srRRnBkYWBhY2BncE9EU1Ha8fvk4+/p7OHj4+b69vf98srDysbc39bWyfHw9fH4//zk6JaR6uzu6e37911JREl6bGoUFWhvb2gUamN5cXJzdE1FVll1dHVMSnF9eHxzfXB7ZX9xS3VF1vf/+ufk5+Dg4OPh+PfBwddAdHx8cX1xQVNWX9PO8f/z/eXm4Ob6/cDb1FlYQVhZSVxSU9LN8PP45ODu6+7p6eDk8vXFVVJNc3dMQUZY0sDx/uXh4uLg4uDm5P/3z9FbeGZnYWgVFBYXFxEQF2tpbWFjfk1aVMb2ys3A2txc1UZ1TX5ne3t4f3NMR1vTyvHk5uHs7uzj7uzm+vLxwt9Rc3JxeXtkZ35IQE1Uwf//5e3s7+no7u3g4Ofy9sRSXkNOXkFMRlBeW9DG/f/65OT45+Dg4fvyy95RW0txcnhkYWZkZGR5fUpDQlzRWU5SVFNOc3F6e3lmYmxmZ2FlfHNxcXVOQU5DUtVR0/39xsLMxNPBw1VVUVxAS1rRx8XayPDk+Ofh5OTl5fPJw9rY3VVSWVnV11Tc2NvLzPfk5eXh4eT75OX7+/nwysPcUVhMdXRKT1v08vLy//3w5eDn/v3EX0NLfGZtbhUXFxERFWpqbm9oaWxkc0zD9vb8+Pj+//P1w9BFQnx7Z2FhYGF5cnFKTFLQ2vb1wsnDxtjSyvLOx8bQVEdEX3Rxcn92Xk1H3ML0++Hg6JeU6Ojp4+b6/9NUXUtKRl9PdndMdUfT3sfx8/37+ufh4+Lj5vvI0VZYTHB5YG1sbWV/fnxye3p7fnBzf2Rsb25oaG9tb2JkZ3l3dXZ2dn95cU9JQFTQ3czw8/X++/P2xd/R39FMSnZyc1pX1tnb39nFz9lUX3V2SkZc2cDD9fHz9/L5+fj7/P3//fz45ubm4eHk5OT+9NhCcnxxdndLTk1e0dzT3svA9fDz8cjcVdBaT3VOSntnY2xvb29rFWhobm1gZHFS08PI9fTx+ffF1E1xe2dnY2FgY2d7cURXV1RZUtTd9fD2yPX39/34+Pr69MnLwtlcQkhweWdncVBRwPf1/OXm4eDs4ufl+vvy+Pv998TVUdVUXkNJdXVTwcby5+fh4+Ph7e3j+vTNXHZ5Z2dnZ2BibGxtZ3h8cnNkY2Zkf3hlfnB3SlVeT1NQW1tW1HV6ZHNbxsVfQklTyv7l9dxdUN3WVHV5c0RSUk1/ZXVU1lVTUFzR3tnH1lXawv3n4ezv7Ozt4ODm5Pj1zcv18vv/987N2dRXUtbZ0sDbwsDEzMjNy/TFzPD09vH2zMD0x8DxzcXa2VFFdGVhbWlqFRQWFhQVa2liZ0vDyMj19fT02vX83VJcSFtbdXV1W1xCTF1UU9LeyPPz8/f39s3E9v729/Tc09VAcXJ0S354cnxyQVHY9PX3/Pjm4O3rlOrr6+iUlOnm//XBV9XeUV5V0NnNycveyMrJ9/Ln4+Hk+Pb32kVZUkJPdnNxfmVlYW1ibGhsZX1wQ0dwRlNF0sdXT0lxeH54ZWdmZGdlS9HXV9zEwNvP9M/29/D7+crRV0F2dnFIR9HY19DS2trc1MXPzMjK9v37+vj898rBwfP6/v/z8PPz9MjC1lxc28bA9/3//+Tk5+Hh+v77//fKyffwzdJR1NRFQltEdHllZ3t2fGFib2lub21gZmRkeHRDU97b2d1WUdv1yNtRXURfUElNW1tMdnFydkxc11FTU1LSxdjbw8dU1N/L8ff2xNNcdEhKSE52dELcz/fx9v/65+Dv6ujp7+zi5vzO01FLdnN/cnd2S1pNR11V3sLy5+Hh4eHs7uHk+v7x9MrEUEp5YWBgb25ub2xtbW1iZ2BiY2RxS0N2cHVzcEpOSnR3SkZHXV1ORVFRVtfB28XBwvfN3lFcR0pBQUlyc0dFXFlIdHF3TE9Z3tNSR1TJ/fD8//v7/P/64ePh5P/88cPeV9XXWVtU2cH38PHy9fb12MDEVFZFRFxcQUVBSE9E0MXd3tJRR3RBSkt0fH56ZGBgbWFgYWR7dnVHXlFU2VdU31VXW0t3dn9lZHp9ZGZ4cHVf3NLb0NTNws3w9s3E1N/E2FHXWX1ycndATHRIdkxaVdDW39j08eTm5eXn4Of65OT49MfG1lde1NnU3d/W1ldR0tbc9PP18OTj4+Dm5P7KyszWXUpzemxoFRQWFhcUFRVsYWdyTkNeU8T08fb39fT239BXUNVBS3Z1TU9MWF9WVsfx9MbT01FHdnJxcXZxdUxARkFf09RXV1DYyvTz+fbLx9PBzNvAyPT/+vz8+/rl8PP5ys3A2d/bwcXG39bW0MXEw/by//n6/f7l5fjy+Pzxw1VZWF1GWEpxdnV3dn5gZmdmZGdgZmZjY2NgZ2VkfXFKVs7y8PPxyPfy/fLy/fbx9M3d0t1WRkNSXVHHyfX29/fIy8Da1tJaf3FyfnZzcHZ3dULb8PP28fj65OPt6ZWV6ePl8PDz9dBcUEdGQEhPSFrW19LN9v3l5eXn+vD/+ffw9sj38PfH11JcdXx/eXpgYm1sbWJgZHh8ckhGXt3Yxsj09sfXUFRWUUNwe2FtZmV8SktE1MXFyfT2/f365+bj5vj0wt9fRkFLdXR1S1pX1MD1/P3y8fX19crbVtRXUt3ezPfNxsH3yvX38v71yPf9/fDPw9jX2/TJyMFU3d3axNJXV93R3tLU0VdRUVtxZmJiYmNgZntnZGZ6c3NPfX9CTFzW11JdXF/XzPfY3NDdwM/2zNfBUXVW0FZPdnZ7e3lzd05NTF3cxNDRwc/K8Mz19vXB9PzFVFZ1S13G29LI8fj64+nu4vj/+/z3xdJNfmFubWRnZn5P38/L8f/+5ODj7+zg4OH4xtdbdUl0cHthbRUXFGhpb2dkZ3hydHVJdnlzfU9V3ddfUlZVXNnL3tZcQV5aVVVcWkp0cFvc0trG2MH0yPbyyMTXREJPdHF4YWJhZ2d9dUdd09nTxc7z/+Tj4+Lp6O7s4//B3VFFSFpeRUJcXlHB9vLyysj0zt1TX1l2eHt7e3NDT05Z3cb08/LJxNLdX3V0fGRjYmBva2hrbGlrYmR8SlPcyvfy5Ofk+v3EVFdMfHFPSHRARkJSVNbSxsnOwcD1yt7QRUlcR0NT0lVXx8PBycnf3szfV1nW10ZEUNnYxszK8f7z9v39/fz5+fv4/PXI9/XbV9HXUl/R2Nr3/fn+5+Dh4ODk883fXk59Y2oXERMQFhRrbmFkcl3ezPT98/X08PPKxcXXUVdDQ0VMeXp5cnFIUtbN8/L29PLxyvXB1F1bdXJMQnFwcXVNU8Tz/vnxxc79991Q19HUVd/K9/H/5OHg4Obh5/DA2czHXUhyd0tye35M1VdU3NDb8fD44O/u4OXk+/j//PDG2F9Y1Vl1SnF+f3xwcHh6ZGFkZ2xrFWprbGZ9dVbB9P/74u/v7+3m5f/02tNST3V/ZmBgYWR5S11ZXdfYx/T+/v/99MvDwdFHSXJyfH1+e3dwdtPz+ubi7O/t4u3n+/nz9MDEV9TF2tvYVFPQ28fLwsTEVFTW28/N2tVQUdHMyMrAx8nI9M7YUFdQQkBDdEpze2R4cnJ9fXdKT0Bb197Ozsv33l5PdHB9f3p7eX9JXdPT0cf3+uHi7ef7/drWU0t8Z2BgZ3t/d0lDdEhXxvT08PP28vP+/P/xxMXZ11NfXdXF3t7ayPn9/uT7+f/wzsbA21BBTUpCWFxUVdTfy//5+/ry8/TC21pLfmZjYm1sY2NsaW5jZXJxdFbCwcPz/Pjk5fr+//P1ysLOxdfRX1hdR1lNcHFwfnh/ZWVkfn12Q0Fb1NLbyvz65uDl/MnA2ll0cHJ4ZGR5c3F1RVPVyf7h4+Lv7Obm5PD1w1dbXH9mYGNkfn1wcUHRz/f84ODt4+Hh8vrxyfTc1Ed2fkp0ZWBsYXp7eGRjbW1jYWdkYWZ6cXV9dkpCVvT/8/374eDk8sT18vn1WFhd3VdzcFpddXxydkl3fXZ1QkN0dEpIc3JOWFld3drY08Dx+ufk+PP1zsb3/PTNx9VRXVFYSUJDdUJU28XewszY2dVeUFhOQVlYW11fWUVeU17Tyc7MwMDb01ZRR0p2eWVnYWZnZWVlfnl5dlpd08XaxdzC8PfOwtpWW0F2Skh2fGV8Sl5U3d7ZycvN9Pz98f32zfb3yt1XR3Z3dElIcU9LfHBxdk1MTVpR18f2++T65+T4+f79ycvIzsvT39hSSXB3dXJzSU9OWVjQzfb//fLy9ffKxsHDVnd1dnN5Z2ZhYGZhY2B4fXBAX9De0NHYx8D28vv4/vr89/TLwN1EW0ZNQU1JS0tNdH9+cnx4eHdaVNHU09rC8/n5+vrm5/vl5fzLzMLDwM/b11NYRVpfWFbU1lTTzMbS1dHc3Mn1zcDA39PdV0RPSkhBXtXdzvTPx9vG2sTK9/bKysFRXFtfRU51c3J+f3t+f2VmYGB6fnJ3QNbbwM7y/v///Prk5uT998HfVNXX11FHTUFGQE11d3Nyc3RNXN7e3FZFRltX19VfU9fX09TX3tzZwPf/++Xk5OT4+/j5+/r/9vXOzNnXUERNdHF0cnJ1dnNzdkhe19rLzMv09vXD29FSTE9ZUlNUUkB3fH1wcUp1cnx+fHJ9c3dOTUZUxsz2/PL0wMXBzc3N2tjc39BeV1dTRk5Z19dX111GS05R2MP09/f09PH1wdBXWnd0QkVEXF1aTktAQUfV2dvGz/fx8PL9//Ly+ubh5ub+ztLVXFpZRU10cEtaX1FRUl5EVt/T3dnRWE9BX1xQV1FQWUdOcXlmYGJsbWFnZXxJTUbSy/3k4+Lg5+T6//31xtZfQkxbXV5cT35/c3F2dUxNQUVQVNHf39PS2sTNzMDNxtbX3sbHxcfBz8HGwd/Z31ZdWVtW3cTOytnV0t7awsnD2VdfREBFQUhJRlndyPHz/ffP9fD3zsLMxNHX1FFeRU9yfHh6enp4fnthYGZnenJJWF9cWFffw8nCx9rA9Pby+f/0wPXx9vTOwtFTWEdLdHF4fHB0RllQ1NRVXFfQ19be9Pf19cjH399VUV1cV1fcwMLM0tbEy/H95fr48/T0zMLQR3R9f3xwSUBGTk5EXNRWV9DWV1lYR1heWlbZzczO9crD0lFeQEpzf3tlZGd6fnBMRllX0dvI/Pv78MzD2NLfwcHE3tbUV1FTWkt2cX19cUpGX1/Szc/AzsLG2djG39fR0dVW09/d3MXGxdvb297c39ze0tVUUV9b1NxX1trY2MTHxdZfWFpGVtbSw8fHz/fJwsDXXURAR01aU1lHWF1YW1xfXkZCSnF9e3h7en58cn1xT1tcUt/excnCzs3GzcDBzPf39/H28//+//LJ0l1ZUV1CQ0t1dUpFRkZcW1nU0trAy/XLzcnI0F5HQkZBTUNHRkRER1pZXVBQ0MXO9/Dz9vTJwdjQ1tHX29vQ3NfX2N7d39nR3dbX0NHd09LV1t3VUklxcXx/eGVnZmV+fnhzSHdIX1TX3MPOy/b0ysj09cj19vz9/PLx9vD32dBWQUFHTEl3SEFMdUxARkBMTVpS0NvbxMbDwd7d3dDV1d/c397awcPDzM3CwN7T01RRW0BaRUdESXVEUNba9/L8/vrk+v32xUZyf3pke3h5fnNJRl/W19zDwsHNzNrWXUl2c3N2dU5BUNTd2N7fxs7Pyc7Ext/VVNVW1dHX09lRX0JLTE1HQVxSU9Te2NdRUUxMQVtf0cHI9PT0ysL29vXx/Pj99cbY1tPUW15cW1dW3cbAy/D3wdrcUFhNdXZxdHByd0NBUtVQX0VGX1HW2ML18/T08cnMzMXd0ldZT0hATEpBQk5bV9TT2MzLyvf321NBdn56ZWdne3xzdFLf2MLIxsbKzdrF2NJU1FdWUlTW0sfPzvH//fPz//788vfF1lJAT0BGRFtdUFdZX1JaRV5BWFfXVFfX1UZNX0ZCWFPQzfP6+uXl+PP99szPwdBTTXF/cnd1TERZXFZUVFZdVtdcW1tAdHJ4emV7eXJ2SUFf3tvX1tfU3djDy/D+/fHw8M7d1lZETE1CSEpMT1rX3drCz8jNwM7Aws3E29vT1FRRXkZMRVNdVdje3dNUQEp0c3BydEtF2MXGyMjPwsn09PP+/vn65eTk5f/3wdrdV0RCdXR0cU9DRkd1d3J6ZGRkYWZmZ2V+c3x+cXRD1PT+5efn5fn588DdU0FBW15d0d3HzPTx9vb3w9/X3NBU11RWUFJSR0l1c3Nyf3N3dHZxdHd0S0hCWdXbx8vy8vT09sjaw/fz/OXk5eHj4ebn+/LJ29BWXFlERl5ZXlFfQ3VwdnVxdEl3SklIS093cHJ6fnB1VlVV0FFdUFxFWFHR28bIycL0ytrf2tdWXUFBQFLfxfTy/P31w9dEd3lnYGFhZ31xdnZ1SkpCXNPN8vj4+uX/98/ZVNfdx8LM9c70/f3+/vzLx99RUlBcQU9S0d3F31dbQUFOQlPd2MDK8PbP2150fnp9dkBZR1BRUlheVlHX19bQ1t5VWF1SWF1eQE91d3Z3Ql/Xxc7DxMXf0NBQW0dMSUpNWlxAdn1nZGVlfUpb0cfI8vHNwsj09fX0ycnOwM7x+/r6+//w9ffK9fTLzsPG00ROd3N8cnd2dUZfVNLZ0lZGTElAXFfR2cHF09/R1N/Zw8DPysPM9PL9/uX58dtfT3xnY2B7fXN1Qk9LSUBBQERBQklKSnF9f2dib21menN1WNnO9/L65frk5eX6///2yPH++uHi4eTzz99WWUdGXNDV19FSWk1zc3d3cXJ2QkdAXFVdX1hFVtLG9PH9/fXO9fTKy8LBwd9SUtfZxsLx8vbN011NcH9+cnVPTFpYWl1SUl5HQE9KQ0RHWUF0cXJ5ZHp7eH5zSE9AUdfe9/Py/////vnl5uHh4fr/9NdETXR0TVjX093Y39/Bw9rZ3lNBTU9ER0xPdUxMTkNbWF7dx9jEyPTIw/XC0lVQRUVd0c308fLw8/HJwNlX0cLG2dnd1VFbUVRdQHdyfXl5fXJ8fH9ycXJ8fmVleXlxWFTQ2cD29/TK9Pfw/OTj7eDm5fz33V5DdHd1S0NGQUZFRF/R2sXQV1RdXVxEQEBPSExPTU5OQ1zWxPTy5fr/+Pvz99rR3VbR29jE2NHV1VpBWkRfVtbYxsTPwd3a3lhJcXN9f312dnFISk5MSk5EQkhGU9Tf2sPFxc3G2Nje287y+fn4+vj+/cne1110fHZKdElMQUJMWl5GTkhITFlYW1lERUh0SE5MQ09b18TK/f78+fzy/vfKysnNzdvEwtra29DUX0ZBdXVAWVLe2N/Bw8bVQENKd3F0dnB0SUxNTEFISVpFX9308/Px8/HKy99SV9bS2cPJyMj18fXNwd3WXEReUldTXUFPR1lYQU91Sk1EQE9GQ0h0Tl9eRk9LS0JS0dvAxMTG9fXE3NrNxdPHyPfxyMTF3lRETUNMTljXxc3DzcnA1VNVVNRfR0N3dn18cnNzfHF0d01R39Pa9PXx/ffMwM/18fD8/fL5+//y8vHN2dBU0NDeVltFS3R9eWVnenlwcn1yfXF2dEdR0VRQUNHHzMrPy83P9MHT1tfQ3N7f3sXD9cPHwd/WX0dDT0xAXkVaV9DUQ3VKT0RfQUpCTUtCRUdMd3F3cUtaV9vCwcn95fn3yvDx8P/7+fj//f7998vD2NBR1dza3tVfU9VcTUp2cH1zdHB/cH1ycHVJQ19cXl3bzc/29sr39c3TUl9RXVTVWV/Q3NDQ3tjW1dRRXVdQXl1ZRVbR0kVOQERDQUJKTk90SktNd3l+fHl9T1pV3dLE9fXLxMHw8vD75+fn5+X48vDJ2N/RUlbe3FVSUddWX1xaR1tBTkZeRUVcUFhNQ0BMSEBc1NnFxsr1zcTf1ldU19LT1dfSxsLH397Y0FZcVddTX1hbXVBdXEN2fXhlZWRlcXRKTkxCT3V0dHVbV9bAzMz19cjIwMXIycnIyvH+/P398PH0zMPQVdbWUVZTUNzS1F1FR0B0S0Vf1sbF2N7WUVpBRU9GVt3FxsPDzsPExMb1ys3PzMLGw9hUX1TWVNRSRkNHQUBGXlHW0dVTW0Jwe399cnRNSHJ9fGVkZWdkfExb1MHPy/XIycnw/fLw8fL9/Pzxysr29/X1wt/T2d3R38fE3VBGS3FyfXxLXdba2N3W0VFaQE9NR1fE2NrH2sfY2sPK8fPw9vz5/v7zys739MDdVEx9eXJ+fHNxcXx9f3xzcHNxRdHQ1ldcTUl0c31/eHx1R1bT3MDa1tvC9/D1z8/Dzs7NzPTL9fTAwN9U0tLWxcr0yd9fQXFycUtAU9Pc011SUF9TQXRLW1Tfz/b3zMfF09HYx8HM9fX0/fzxy8rw8vz99d5UVl9ZUdVZT3RxfmV/fX9zd0RfRk91dnJzf3tlZmR+fXRAU1VTUdfW2/f08P78+ufn5/r4/vfMxtZEU11DW1XY0FhfRHZ3dXZD1dLY3dnZ1dHF1l5aQURW0djDwvTN28bF38Xc08P08Pzy8/DNwM/Gxt5WUlNeWNXRVk5xcXxycXZOQFDU0dfRU0BBTEt3cXN7enl5ck9DS09KQ1he0drN8/z55eTk+v309c3ZxdfX0lDX01RWRHdOTHF3WtbaxMTPzsLJ2tLXQUlBRlxX1dzSVNHXVNFUXVTb9fL/+vr//fbIysrDxsXe3tvY1kVOdH1/f3xycndCTEFYQUxNdnNzcXJ4e310SFlV0NrY3Nvf2sDP8fnz//v88vb1y8HZ0dRSUFJGQUpPRklLdnFxd0ZW3dfawsHPyfTKwNFDRl5V38TD3Nbf3NddV1JT2Mvy/OXl8vb19vbxyFRXVFBeRkx2fXx8f3h9dkpCRkVeXFZfQkJNTkhxeH5wdUpLWlPV1VXX3sTD8PPy/vv4/vD09vf1ztJR1tjQWUBYX1pcWk9CSHVDQVNUV9Pe1t719MRUWV9d0NpVX9VTX1NeWVlaXdbXyv/8/fDw8/Hx8vbZ0t/e3llbW09Idn99cX95cnBNQEZeQUxDT3dzfXt4fXBwZXFFQFjVxMHO9/34/OXl+/v98/z5883Mz8La3NZHWFZSVFJaQU92cHd1W11YXVzTzcDd1NbU0dHZ31TR2d/FzdjdxdPX28n1yML09cz29snOzcDbVV5ZdHB3eHl3c3xzc0pJRFdSQF5FSUROdnF9cHN7eHx+ckhG1cHFwMrL8/L+/vPK9PXK8vbO9vf29cPA3lZXVF5V01JfXkVZXtHTXFtTUdbGycbHxs7QU9NUXERbUF5QXV5bXtHbyvbx8fb8//Ly8PH19cXR0lZaSXZ3cXN9c3NzdnZIcX98eHh6eXx+f3JxeX5zc3RPU9zY9/b08Pnl+Pr6/PH38fTKys7BwcPY1FBUW0xFXFNdXEdMRkdCQV9YWdHGzvHw/P3x9cfc19RXVNFU1NVTX1PZ2tvB9c/HyMfGzMbD0tnYVERZXHV0dnZNdUtPTFhBd3dKc39zc3RKdkJ1dHd+eH9xd0RSVMTZz/P9///y8fXBwcTYwszN9vT38cLZ3tNRUlpc11NSUF9ZQkpISUBR0NnK9/X39c7HUVhfUVFSXV1dWV3dwvb3yvH98/3x9vb39ff99sjYV1FaS3NydnN9cEp1cX15e3tlenh7f3l6eXd9eX9yd0xf3dzN9PT/5Ofn+//w9cDJycHJyPfw8vP03tNUWlpcRlfUW1hDdU5KcHRFU9nAyf338fDMwNpUV93R1tlX0dBf0cXM9cPEzsnLyszN9sj08MnA3lJcR3V2dHZxd3F0SE51cnxxcXB2d3B2dHBzfXxyfnl8cUleUFzdyvD+5eXwyMzAwsvw8f34+fn/8vDBXkRTW0VcX1JFQVpCSHV3QVDWwcvO8PPPwsHc09RfW1tRVEdaV9LbwfTNwMf198jw8PDy/fzx8/bP0llFRl9Hd3B9cnByfHt6ZGV+fnllfn96emVwdnx9fXZPV1NSxMz8+uTn+P799crx8vL58vDy9PH10Ft0dnR3d3d0d3V3SkJLW1Xdz/f9++T7+P3098zY3VZRVFtbUFPczcbBxtPd2sfA2trA29Lc3NvfUFJcQF5UX0RGRF9WWFpBSUpKT0t2d3Z+e3h6cnF8e2V/c3B2SVzXxff28fP2w8/1z/X9/Pzz8/3w98PXWUdOSUhOR1pHRkJaXVXe9ff08v758/Dwzd7b0EdPSH1ydnVY0sDPwcvKz/Xy8Pf28fzxy/TC3dvdUFTWV9ZZTUxNQnd/fXJ/c3B/fnpkZWZneHl8dHN5fXN0S0ZUzfzl+/j6/vbw9vfw/f/99vfLwdjTXk1DTHdyc3dLTkl3dUBY1cbJ8PD8+P38+f3wzNnXW3Rxc3BMRdzLzvTOx87LyPXKwc/H3d7S0dZZX1RSVtPUU19FUVRTVkdPR0xLSkhzf3hke35ycXh6Z2BkeX13W9DP9PHy8vPw9PT28P398ffMz/bG19zUV9dYR0xMQUt0TUdb1MXN9/Xz8vT0ys/39VZHTEp0fXJ3TVzWxcD39ffz9v3//f/9zsLF3MXcVtXT3Nrd0dRdWk9JT0h2SEhwc358f2RkZXh5fH96ZGZkZGVwT1zfwPX39vL8/f/5/fj7+fz2/fTAwtxUVNZdQUlCXkxCW0NDWVPT2szIyPTx9vTy9sLFXl9QREZAX1bU18fPzffLyPD39ffB3tFE1dBYXdZd0dhX01ZU01pb09Rc1VlFX3VKcHp/eGR+emdlZGZnZmF6en9Kd1zf3vfx8fvk+uX58fL39ffLzMjAxcPZ39xT0NVf2d7S2tzW3sHAwMbBzsXExNRURU9EQk5EWFlQXlPYw/Tw//n6+/7y9M7H29NSXFZR1dXX09bQV19cWk1MQkpLcXBwfmV6eHp7Z2ZkZ3p7ZXxzcHFxd1hd1PXz8/r65OXy8/H18PbMysvHxt/V0V1XVEdH0dDU2NLGysXPzMz3yPTx9MDa29jeUERWVlZYdVpWUdbay/3yy87E3NRFU9dWRl3b3tJX0NjYw9/cyMbTVNfc1l1BSXB5eGRnZmFjbGFkZmdkZXl7ZXpwSEdUyPzl5OX5/vz09ff38vH18/LKz9vcxsXSVNjG0tPC9vXKytrOwtbVVdZXR1vU115FWkBCTU9LW9jezfnk5fj/9vfI3trGwNjR38fH0FFRVldV0NRXUUZBXFlZREp/eHlnZ2dhY21hZ2R+eXx+fHB0Tlnc2Mzw/f7+//DKz87Mw87L2trF2cdRV9DV01DS39rCzPH9+f7w/Mvewsfe2t7TxM3Q2lVIREBKd0BR08fG9Mr19NjSUlnR2NrHzsL2wFLfVlHV1VfFzt3FxlXFxtBST31keHphYWBjY2FjY2ZmZGFhenZNRdTfz/38//7+zM/39ffO9vTz99/Dxd7J01fdzMXE99rM+//x8fXS1VFeQ0paQFxXUMPVUNZ1SkncW9f33vD78/7OwttWVtbP0MfxzsfR1lpDWEpHVNBW19VQ3tBXV3RPcnJnZ2RvYWZiZmBmZGVkZnRxT9VU2fT+8/D8ycv298PCw8PIxdLURdFeQNTTz8DMwtjK8Pj5+v73/PfM3lBdX9NcV8XfwlVPXlNeW9HS2fb18/HPycDRUlfY2tvL9MXe21dcRVtDXsXRUVLPwFLG31dQWnB5c2ZtYmJgY21tbGJsbGJmeXx0XfXx9fP18fTDzf/+zvf7//H09d1f0NFdxvPLxPX2yMr7/cr6/M7O/lRK1kp9Ul9G0txKV9R/UsFH2v3L/fvK8PDQyPRWx/Hexs7LzVxc0Up10k1N2tRBWsTeX17bXXbQSGd5eG5ofmZpZ2RtZmZtfkp7Wchfy/vdzPPW2vbM8v7Y9/nGzcTW1kFf2FfG5cDd8cnN9uf7z/Dh8djlw3RX03J2xlN3WkV+cV9bxsldyfrTyPtS1vNTVvDb8fvXzfJZU95cX0NV8t9X/l9M8NpEWMHadXdNZGJkbWliYWJuYGcVbXlmckRd1sXwwFTCw0XB98zw+Ofz8eXGVfxRccLNx8vz/dzW+8ta5eTU8ePDW83MdnbcR3TawH1z1ER+1v3WUef4W/PkXEX5z3XO5sHP5cZNw95xSt9OQ8zdXtPaU1vXV3dQzUN2WXJsZX9paXB5FWd1aWhOdWxB9lhb5cxx3/lJdOf+X/vuz87gx0zI9XPV5cPf5P/b+ubF9OPwyefnzfTwR0PG131U9HB+UXVlVtJ2VeTdXv/AdVnKSVn+ydbk4MXN/dZMx9Z32PBdRPbaT9v1TkDNQXbCxWZ3U2NudH5rZHYVFHxtFH1cYHL8003y9nNS5FNN4+ZV5+jWUeHDecn/ddbv9V/j4NTn7tLO7vDV5+RB3vhDc/TYe97+e2TyXWfN5UhX7vR8+fxmTeVEfeD5SOXgdFbgUWTwwXrC/n53/kxh/N9sUfZhcfN6YM1/FEpIF2RdFBZaYhFBUWtJ5n1z4Nxm8OV60e7FWen5e/DjeUvhQnrg+3P561bKlPNS6+Nb4OhEz+5AceRQZvP0bUrwZXzlWHrk5XbO5n12/E1n9PN2yuNXW+D0Sf72e9HmTHHn12Tw92BE83p+8kJh9cVifV1ubUdmF2VmEGB3am/eTGHDymXQ5U915/FG4ONC8+JeRubWZPDzcczmU83p/lfh5lP77NTN7vVE5PR7y/x/SPFxZ8raZ1f5TUbn3n70w2VZ9kxS4P5Z8ubV3uHbTP/9T8HkTUb+X3hQUmd2w0p/y9B5X19iZF9iaHNkFWFzaGl2fmZQ039Y9Fhb9spf+uRTxeTTTPHAfcX/dEbnxkjn4lHK7cDR4/rT5ezAwuHES/PwcET1dH7GUHvR9HVf/ld8wdp/WfNCW+DxWPnnXNrk1F3l8kzO5E9L8l1nTVhhdsF3fc3Rf1rSZHpTZmt8fhVgcBVrfXpjQd56dfJcdP75WvDhV9f/xXTe3nhE/lx3/vlI8eBT2+3/UOfswfXu/lz45UTS51J9w8t8ScZKc8rFed/7cnP+VHrM+nXR5sRC5eVy3+dU1uL2dfzkd1vwdmfcVmdG8HFw/lFgX8ZkZlhkFGRIaxR4Yxd7WGxlyF9lzf9Bz+7CRuT4fNL+fXryw3H05UTQ7P9K8+3aze74X+HvVcbsx0Dl+n9b/HR+99ZgX/t9cPxUc/X3f1v/VEz++kHB41R3881x8uLf3eH/TMX7c3jyUWJb8Wd781htRctlYtFzFnhRFBdNYxBkRG5g9lBnwuR3QO7wdPrgWln6U2Pb+X9K4cZ45ONNx+n2W+3sW/aV9EPi4UD16NZ++PFlWPp3Y8z3YHXk1H/x/3pP4NF7/uF2QOPYZM76f9bsx0nj7UlR4ll6z8Vjc/9xYcrLZ3X8dGxGShVtRm8QZH8Ra0Z6aVzIZHX62nb74UbF78Vy88phdv5cffnnRcDp9dfs7FfK7/bf4+bdyO3z1Of+S1bzdX7YR2ZYz3FC5fV1yP99dfnVcvP7Wtjn2HLHw3ZY/8Re5eVSwvjVc9NCYHfTcnnBX2RVzHx/02VpfHwUFWRqEXp2YnDBS3/OyHTY5sFM/edH1v9JYdfcZ0b5VUjk5tD76Pbf7uHE45XwyePyxuzt1MDn13PaUGJyV31x8vFA9f12dPPQfc38S1Pm9kL29X1F/9RB5OVW9ubWU//cZ0DKc3P1UXtb2XlbznNjdH8UFWEUFmFgaXNRZH3GQ3/a91/F59BC+P99TvRxesnGfdDg29Lj4dv67vf06ebE5ODX0OP9Vf72cETMfWx3cGJJ90FF5v902/5eQfLad8f9WdHk1nfJ9HTW+N1R5f1Dx/tVTfdXZdTBe3ndSmZZ0WV9V3prZGYQFX9vaEpIZkb2Q3X890vZ/kZY+t583cl9SvVUc8T1WfXiwt7t5Mztlfvklf5R+OfHyeHGQf7BekfWZ2JQV3tZ9l9S/cx39ORDd89RfPT1eVr4XmX28nTD5sFX5fF19fpKTPzActfFZn7Kdm1cRG9nS2gWZ2wRYXAUYtB8Z/XOdN7l1XXzzUvBwn1H+99wwfxB1uPxVuDg1/jq+fGV7Mzn4EDf7cdy/PNM0fd3ftFKZVXCdkXk9F764NfF4NV9+P130+dVdefyf9rhQFjtzHjx9nxf80dy99RkXFJhe814b15CaXlKaxV1ZBFgRm9i2VBw8/tZx+dWdfPWf1DQenTxTWfGwE/c51VF5fFf4en9+pbjVuPiXNrm30/6/1jJ+Ut09U1kUNJlUfvUVOf5TtjydEzy0HH29k7d5NZ28/FFwf1YRPPHc9/zTVDIQXffQ2RERWNmQnhofn4UYnNqF31/aXLNQnXzzE735VjS599xyMt13c1KXuXCW/v6Ttznw1bj49nn6cfd4v931/JPWfzZSfTCfV3MRn7S1E398tzz5lNE+8db+eVf2+LLQv78d13+1H3E0ntOVnJ+3VJkRdJ6cN11ZF10YUpEYWJMeG99e2hkRWZn99x/0vN0R/vMTvbwc0LISmVfRH9UykTV8NtA9/zQ8+P28Onh9O/s3MrgzVD7/17a59RC+dp8U810QvbUSd/YdlH5x0bl4dXL4cBS5/VK9PpGTvdfelbdZHbEe2fMU3tH2XZx1XxndnFuYHdjaH56a2dHZWbHQmJR8HRa4fdY5u1H0OFCevTMc8bkRlb82Uf980DN5d7E4ufa/+TezeHNS/HzStX62FPz3Xva+nVO/9B8xclN9OfawO/hwOTkVFT7zXXK8X9yxX9iRXRse0ZmZd9DZt73eEPwQGVTSWJ3RGFhRmVvT1Bnf9hyZ93Yc8ThxNHm+VjHxHpK9XV88fR7UftZQeTAefTi3MPp5fXs5sPm49XT5vVF8/tHXPFJcvVQYV7cZ3zHTXPz5Vn2lfPU4PpL9eLRUfvXfVTYZHPWZm1ESWNN2GVE9kl391FgS1lhZkZhFXBxFGREY2dQemH11HvC48jA6OfW+vBx1uVNTvnWf8zxdlH7W331yXfN4NnD7vPL7OVO9+ZD1uHBcfb1edn7dXPy0WXE8HTW4MPF6u3I5eNT3eDJS/PNenXEZ2PUexR+dmpn1GVkz91zwv9yTvBKZdpYb3JSb2ZXemdWQ2BAw3JG819R4vlD/+V6Rfx9evfUYlP8fFv7UHzJzHH04t3xlOb8lejK5O3C9u3JX/vIZFz9fHz0c23b3mZN+EFF4PDE7ORa/eZBzu1XQubWZ87DYnLWbmzffG7d1mZX8Xtw8XJj2k9pT1kVYkZoa114alLfY1z4dU3i/F/v71zz7E5x+tB+yMF6Uc58SPVxZcZRf87/W/fpzsHs+1Tn/tPg5lf7+nbS5kx359B68vBl2eRF3u/3zuj/Xfv3cMz9SdDzc3vWcW91cmpldmt5zHp6/FF78MV/yvB6X/JkettmbVVxaV3TbF7JY037d1rvylLi2n/9VmzTxGBc/2RC5Hdy/Fp95fRI4uBT4eja+uhXxunXR+zIdPjFZ/f2ZtvxYUT8ZXHgQXDs/Vzu4kH+4XnW4kbS71p9+Xdv2XYVXVhrXshjRP5kcv5+ZvdKadRbFHPUFGPebG3Lf237Um3l92TmlVrkl09W7X155Fp++1xh+d9t9MBv1P9nxOlI0JXGUuvzcO38YOTgcPzsc1fqXE/q9Hzk2nvk5Xnk607/lV/N6HJx4EFw4l9h8VsUW0AWd04RftpueuV5ZORwbeVGaPTea1v1anbzYnLyZHr/fGP8TWD69Xjh4n3x5GFO8GFz5Hpg+khh4N5m+/h79u9D+ZXQ/Zbxx+vLcOPAeOP/ZPz4ZPfnZcfgZHXnemTiUHvp/HHt4HL24GXA73BR7Ut5+XRty0hr2UFqQdhjSsZ7cdFiYVFnZl9+bF5Jb0raenTOcHfxWHHwzlrk597h5HT0/GVQ8XNC9HB09nR393R9y8V2yvxe9eba2frfUvfXWffL0PHK3fn5zv3828n0x8POxNj48sr4/NvN0XVbxXdbxXVEw0B/R3NmdXZ4dnJ8TlN0ddZJdEFydk10d0B1fFhAQdNcQtDQTF7dTlDF1dv88dHJ0X1bQ3NEX3VA3tFX3Vzc9szE9PHDyv339/DAz/HKzcnDz8zd0dLFw8TZwMLaz8/X3sXZwvT1zPD+xNDHxd/NxVPaxlbW10xKR1hAQXR9c3NlYWdne357fHZyc3J7f31/c0VYQl3azdnZ9cz38vb08/7I39vRRUVXQ0xRU1tQX05CW13X3dfS2NjVVlZaUtnO9PL8/P32yv3z+/D1zsnwz/L88PP9+f//8MLOxFldV1pfRUNKWlBNd09wck9NRk10dnF5ZXpnfHd0S0dV1UVPSElJdVnQU15X3tXc1FLezMfTx8/WXkJ0SEZJT0dHRVxR1NPV28H39PHMz/bFUdDUXdbO9Pb55fLy9d7S29vFxdJX2dlQztvb9f398P/By8ZX29j09NbDUdffQ9lXTNRXVlJfQ3h+ZmxraWNhenh4XklzTH15f3NCXtld0sLN8djx//fkzfX008JEWlZaXVZXX0xYWl1FR1/cxlRX20RNWXd9cEpb38v3/v764fXz/vLn8fn29PnG9P7L9/L4//HL3dvRTUFfxlLX03hc0UpyR19OUtdJWkRxeGZnYWJleHxMSVlDSnRHd3VU19ff9MtSwcPU08rE3cDNRkFDcnZyQ0dJW0FAW13TXtDE/fTBzMHfUVlWTkZRXlTI8PT2+PTN9fDw8/zx9Pf12MfT2sHN2PT9x9jHVFza9cXI8Npd2sNSVsXG3cfcXEx1fWZtb29saWBhZGV7e2Fkfnh/WN/Qzvnwz/3/8f34/v748s7bVURDRERCXkdFQUdGdVheXcHTRNdbd3ZAcX53RnXZy8H0//z45uTh6eHj7eHk5/vx98HJ8fXAx9tXUkNaUVhU0FBFWllzdltBSdfa1FjXQnl3c2ZlZWV5cnFIc2d/cmV5dELVwvX38PP888HN9M7DxVRRU1tOdnNydUB8Q0ZZWdHZ0c778dLD1l/RXUVJdlTI1FHGw83BxtXM/v35+Pvm/P/z9NlWw93dxtPU3cXRVs7xx97O2srRQNBR1crd0c7fWUh0eGBgbG5ibWdmYGJiYGhtYGx9X9zz++Tk7eLl5eb4+vLZxsvB2VhwSnR2c3RwZXBJSl9Q08bRVktGQk1IZ2VCTF5R08339sj+5eTn4uHt6OHj7frN8/DQ2lZYX1/UWUZf1lRHWtxHdkVxcFhSVNvMxNvWX1laZWF8ZGR2cmB6fGJjZ2V6fk1T2vLm5P/45PD0+PZHVt1eTUBGfn95e3FzQtFCTtTJxvf79tv1yNFcS3d0cFpCQt7B29/G9/bl5OHh5+Dk5Of78PbOw0dAV1pd01jXwMTU3cTU11RFXF9P0sLByP/C1s10YGFnYmlkZGN4Y2JgaGBpYnJ9V9L44efu7O/g5P/LyPXe391T1ExPSXh9dnpxSkhKV8/b9PDewtBxd318eEpzcdle2fT18PXg5fmU5OqU/pbk5pVFlGfHwWL3Y/VmX0vRR9hDX0Z4wGHGZfNbwPje5NHNRXxKZGV7ZH1kfX19ZXpmYH5kck1Xxcjl/PPizP32dP530M1l+G7BdnrXY8Zn23THUf3M4fL+4dj6ffdgSXFkQWRES0bYWdjO9+Xy4eTm5+zh4OL45crFXkBUdErXc8/SWudy9lFD+m/mctj0VOZb5Nf3fFhjdGh8em1latMWc21pZWhwYHzfc/L88+Ph7ebh//z1yMHbVUVbQE94c3pOeHZZcd5ezvxczeVlydJp/2xg9RbwZn/pau7VzJFDnfDp7uSQ/Ojh7OX61P1IUHd9SGHZfPVKX0taW0xYTNhHydjb3/Hw1tZGTkNgdUAXUH9p9hd/Wxf6F3DJF+tj/+Znk3Tr1cXgevBxxXZS3MRkxmTXT3r/ZOZB4M3l88HnR/t5UkVgx2p9fWzIZUzYd/7D2ezd5u/Wlvb5lMjs517j2X7vb/bLY5FgyvhslWNd5BWXeNjjapVi9MJq7BdGchHxH3F8EPAfzW1nzBT8Yc7EU+fY4//i+OTh0+da9cFOztLSXXNIT2dScHfEcfTXdPVYSPNswF0V4RZeRBHgaFX4b5FA5Zdynt/skXGeTuqXZZ5g4coXlBD8SG3pEeF6fPZq/mbS0V/zS/Hf+Fzy1NbJZs1vSH9uwRRLfmj0F9F1auAU+V9ml2aU29nrfOFwzlRN9kX9RvR0wnNx2WXzcPT0ced95c9742zIcWrhE9Z+FeYQ53VD4nDq0eTl++PC7fjo8O7+9uR05HPG3kLie/jEeOBo8lhs7mrjXWGVa+l0SOFr+mNKe2tyFH9oZmF/YXtNe1ll9klW/VTqweDjUe1Y0eZn+/R+62fL9272YHNXZkvIdnbzf9zSec5OZMx5efVvxlZt7H/F4n2U8MSRQZTuTp7S75VBlkbU+UZTy01E+nrSxW7Xf2/0Yn/mb/33Zpd/0pRo48NglBbQzx3iE37HHuARdMAT7GlZ/W+XfObhfpdp4MdtlhXsx2eWbfjFYfpkcf969Mtm7mTc+mrvb1vzFulpTMMX4hXf2m2UaOL8eJxilO1QnkyU61aVxc/sT+bmeJR7wfgX6Gp49xDraU7gF+hpV+YWl2rz/heWEvVkFvIbyGpnwRbmbsnGeJRl6v/fkmaRWcLubpFm5fZ47hX+d3D2F/pjdfNo7GrC1GvhFedxdORl4mXA1nf0Zv5E/fRM60ri4VSS0ejrWpZU+eRE5tXOU89ed9MV2mdvwhHAfmLtYvT6ZuxeWe9SzuJT0PJtU0UT1W8V2BZyURHcQnvhccftdffkZOfIe+t3X+xj+Ntg53p14HrQ8Hnm9GHtQ3/ibVLnYvv4buJ0augUeOYT5MpolmBck2zo73ef9MOcWf6Wc+rsYJbXZZUUXOQf4XoX6xbF+BCUdGKWa/PnF5N0fpcQ+EMd4R18RxP5alpdZuFk48rJlHaW3EaWbe7JZJBt2+cX72Bs7xHLWGmUa/T2ae9px9Rv52L5X3XubOVxcuMU4EFa6W/s8EnoXeXu1e/n0uPN9Pjf8dPAS1rSbl5iZ0IRx2BwyWnsWXXqSOTnTerL1eBC11F6fWRlaXJnFFBrSkxo5mTN/H2XfdfjZPrQceZZRf/UQ/dCdM1zWfdQVf3+Q/70cfxDZPBYYvZYYPV0ZMp6Zst/evJLQudA9uLf4ez75O3k+e3k9+79derFZfp7YVFobMNvYflmc+149u5g7P1t6lNn42985RF3RBbZa27zFUfIbeJUXZBe+JZy5OVl6VJ973FR+W3SzRbQSGv8Y3TsavHgbu1NfuJq3v5o+UZy42P09GbmZFL7YedT2OB06fzz7FSV3MjuSezTXO162chtw2JtVhFAcmPwYfD00eLU7v7T6U7m333jZk1Ua1VsakUQfn9q9GPU/WTj187gd+fTwfhw5lTPynbgdkb8ZdjXc+XUSuHAWvvUXfR9R9plc9R9QVBkV0tkXXxAcXP5X1jh9/Ti8eTq3+WV1OHpXu3ndfLJfUNWZmdCYmRUYnn7XnHi/3Xn8XL/3mT/0GDCWm5wcxR8fxRFUWPA5k/87lTz4lNU7E9D4k125k52+HN58HRjykNn9Ft7+dty+8d6xMphWPxn3/15z/hmRPlkZed+d+t91pRAzJZF05Zzypdm+O1p/Mpu/3Zu9mFo8G1n/WvC/Gfq8sOXWODte+DdS+dk3NdsWGxjZhVLbnnTY/BOSu9/8v177l5P4nbZ+XDO5UzS4UhX4nHf5n3b+09c4FBl5XFjymd7z3hb237UcmLBYGP4e1zkRvj33ePa5eZd6OXblfX+4VX/3dXJdPRze/BiREJs9WZf5XjmwXLicXT6fFb5SkPIYWfcFWNRaXbbcEX/yULn/Xz6+EzJ8VzX3c1aWfV0XPF3XUfQRGDxT2Hg3nzl0mXc0WRC/09L7cV25slgz8lv2eBl2O5xRpVWfJXSZZfdZerYZO7IYefYYedUZvFaYNBYYNPbcPjOVuTBwsNH/NdH4VxzwnpkfmJnY312YVpUZ9b2fET/UETlwHD4yn7l5Hv96HTb6llT60B67VZm7M9p5NoX9FYXzcNu8vpsw/VtWVFhUM5x3PZO/c5M5l/b7U365lLt8dHuw17j20DlQ3H5cnjGZXrDdHP0RHPIUXPJ0Xbz1dX9fttdbNtkZ9lmQcZkVPl9Ufh/xeV8x/553vhIx/pAxOdX2vpe0v9wXNVy/XBw82Fd0WPSR2fNyUjn/nbkyXr20H7wxHnGwHbJzXDBz3Xy8EH539HmdfzlSuTDRPNWRPZbf8B1dvZ31fN+2PBwU/RZXfjdXv7Vf9dfY3LdZmTJc2HcR2Vc3UpAz9FLw8tXycny9dfl91z5+9nN5VZQ9kh313RjSkZvcVBhQfBEUv7ST9XbS3HL1n3eyl5x3vR9X/5XU/743Pns9cLn/kz34WVF4XR99NBlX9NmSdhmecN/Zs1Ze/XyTNn40l/HXEhNWkR2W89aePTYbs//YET/QHPk8nTy/Uv05XNY50Fx+Md1wMV9dVhweXN2eXl31UVX49BHlfF///hzSfpIe+XeZsrEbV35YVHtc9TryNbtz3b69mP35mDQ7WVO4nlx4WR45n5n5nBj5UZz5kRC4VFx8Ndkx91nxVZt9NRq0dBrUcxjwft//Oh11pVIce5feOL9feDnZf3gbU3kZmH1f2jVTmz0ymP752f85WLU52Za52dS4WZO5GZ99n1a49z1kfrBlMpC7Uxk+Ep65lJn+N5v2sJuWslodfRucuNyZe3LZePnePvKZPjOZv3zYc3/Y13xaU78bkeVcVPpXFj+cUn0ennkT37jVHvj1m3lxG/32GlXx2Hc9XH75Hfm7mbG72ZA7mV24Xdk/UFuUVFqROR7zetC9+pwVux7ZeNEZezQZeNDZufRYuXMYvvcYfrcZufwZ/jmYdPlZkD/e0z2YXL5e2H/eGjIcGbmynHp537t/mT5yGb6+Xzh5Gb25GHf/2ZR9W5H9mlz8Xlw9lh2/Ud6/lll5fZl9Od53PphWPVsRfhw3un1xOr/WuDfZvbYY/b/Y0X0YE73Ylvwbkb4Y33mf3/iW07rQXTpQmfs8GTk82f5+2PI+mp15Gl743B87dB+49Ri+1Rqz/xgVOVhWuNlde5wZO7QYuXCbf35Z/jgZPHsZ0Tocn/tdmXiS2HgdRT00RVQ8mBW4nPE60pC7k1n4Mpm+vxsyv5vw+Bh1u9Id+LYeuXPZufwYPvkb1fgZH3meWTlS2fkX27xxRTR5Wxc7Hzf6XJc7kB44/xn5edj8Odg2OFiT+J6Z+F2b/9RbfzJbPXlb1btYUnuf3LuW0jvXWb7xGnN52DQ7HTX6VBf7F164c9t9/ppd/lsZf9gZOFwYOLBYOf6ZP7mfv3tZNvsYXfsdnPg1HLj22flwGjL8RVF5WxJ52Rw535k41Zt5/Nu9+Rs2eNiU+xhTeh5Ye1dYe3IZu/0bOb7FfTgblbvZlzoZXHpY2LtZWrmRWnmzW7l/2747WL26mRE72R47WVk6EFh7spj4+Rg5+9j/O5vwO5pd+1jZ+B5ZuJNYOLfaOXwFcb7at/maVHiaU6VfXOW2XKVzWHv9G7g/Gr95Wnf5W5K4GBw7GVm7HFo5F5v4MNi4/9h4eZjxOFnT+Fkcuxzeu90beLRY+H9Z+X7bM38FE36a2Tjen7ufHuVXHCX9Hvt+mHy+G3K5mPY7WVelU5K70d4501t90pq2lMXUsBoXeVi3et/ROh2fO9Wce3We+DBY/LwYffjfNbjdHX4f2f4TWPl9WH95GTG5WNF5G16+GZ54Xdg51li581n4Od75vFj5NNp4E9s7XZ37nrT6mHh7mPr8m3uYWfpFdrmEexaYpFgUJQU4/cVlm156xPCwBHrZGSUa+fsbpfQYZRgdettwe1s1fRu3vlhz/pmVf5ncPV/cvxZceT3SPP6cFPmXH713WdZ83dz8VRnRsl+cfvyc13kRWDf/WZi/slsRe/VYeGUQHeU7md17lBq0OtGbf3sfWPl7X144OdhYvr+YWL2wWpt9sBoZufkZXPv4n9+4eFwfODvdGDH50Blzu3TZljlUm1w/MBhfvj6dH725URl3OdQYHn02WZ49v59Z9L+WnrD4vRwR//0fHvf8EV9U/DEdlHl5NFa/OTSf17OUXJ1zslOd9L1VEDF+/DVV8731U9QxEV/cFlfcXfE991e2/fAQ03T2dFd1cdQd0rT3FlJUsRYc0nTxF5Gzf3a0M/xydHXzchWREVWUXV3WlVYd3dGWXRa19FURV9QWHR1WF1QQFHZ0d7C8/7x9v3wx97a0tLW1dzQ3NVV39rHxMHHxVdY1tVedXVCdHN9SltEWFDf09bGwdnf28jIwN7b015d0FRfU9dQWFxXVdVVVF9H19xWUdPa3lFUUVBeXlpAQ0xBXkFZXlfS295VVNRSR09CQVNQXFHU1tLDzM7Nwc3H2NvE3NXS1lJV3dRTVN/Dzsr098/IyMzYVFFCdHR1SU1YWFNSVNDUVFRTWFNUUdReWVNbWFxU09dSUtRV1Nvb0tPdxsfawcDG3sXE1lJX01NAX1xES0pCQnZOX0Z0SUdDdXV1RkFBWFlcV9Hfwcvy//788PfOw8PO3Vzcxd1V3djGzMzLzMLHxNnR1V9MdnF2fHRNWEZJWVVRU1De39/Az8bd3tNWUV3V09bf3dNX1tndU1ldWERQUlTX19DUU1Ld0VZfX11YW1BTU15TUFxER0dJTVlJSkVSWEZEUNHV0Mf1y8v08Mnf2dxSRV/V0NDb2t3FyvDLzPbz88r28czWXVxCdHREREpLQURbU1BaXFJUX11RXkNAQlpdV97b293d3trEVtfd19Df29jDw8TZ0NxQV9VXUl5eUdVaTlpEQHBycXx4fXB2cE5bR01HX0BY3d/D8frl+Pj88/TO3FNfVsfCx8P19vf0z8rKxtrF39Lc1VpJd3NwSUx0dXRPXF1E1M3D2MXEwNPVVVNcV93b29vZ0NXf1FpYUlNeWVzX1VHU1VxTU1NcX1RXUVTXVF1VV9BdQkl3cXFwdkhCTFtaQkZaRFhTxPTM9Pz0x9jH0l5HVNLdzfT28//5+fLz+fD39vH1xNncX3dxSndzfXN3dnZATUZR1dXQV1FfRkZbWVXQ28bZ0NvG1FJU3dnfzcrB38PC3dfQ1FhMWFpCQ15QR09HVkVIRHV8eHt/f3lzQ0NCWlFQW17d2Nr25eX+/fLwzNzY0NfazMjNyvL+9Mry9MXFzMJXW1XXTHVCT0p0TnRwS0F1S1jT2cHJ9/Te1NbR11TTxsDVV9PXXVpYW0VU0tdU1NdQXl1UVEVc1VlPQVTUUlbW39HS3tZeWkRze313cXZGR0t1W1NHRVHX0sf19c3B2tfUVd3O8fD2/fz45OT68Pbz/crNwNrVW1tdWEVfQ3Bzd0x2dnZ1dUhR0VTV1UZFXFXb3tPc0Nbfw8ZaVldd3c/N9cXR2lBYVlLd1VpAdU9OQEdIRl9XXVpSRnVxfH1zSnVCQkFAT1DQ0dPUxPb19PH+8dFS2MDZy//PzvH58PTx//bGzvDB0VdfRHZwTlJfTUBbWXRJW19BRVfU19/J3lfTyMXfzc/aVtDEXk9eVkB0R9fRV1DdVkNCQldXV9zcV1TYT0XTVcRYXc3HVFDWWnd9dUF0cndZRHp2XEFESl3F3crMzFp21lfe/uT28/7l//D74Pzw5eT+9/PbXlRIX1hxT0Nxc310cXNzX0Nye0xVQEpSV3dS9M5Q0/T+zlhVV1NSwcvW8crA5XhK/cNwS/bMwsZweV5GdXBPR9NZddJfcnJZR0t6W9tfW3F2UVff1Udd28LZ3vTK1dHb8PzTwv71yeTl+/zx8MHb9/RdStdU13VJ3V9PXlDRTU9YXFtDXdFWXV5VVkLU2lZexclR11PV1HRG0VFDwlFAW1LbVndcxVRf2PXdWlxUVUhHW1ZR1FZQUURc3Etx11hGTXFMQ3ZyX1l12sXVU1XX1lHC28r++OTk+uHt4Obm5v3w8/PN08bP0EVX00hwTkJ3cU1ZT3VCTlNAdXVydXZzS0zV0tLT29/d11/d1tbZzPHYxMbdxVZRRUBYWNRcW1lRREVMSklyc3V9c09DS3R3dUZGTEV1QEZYVFNTWFPSXVJX39RT2sn0//7/+fvn4+Hk5fj59fTI39/XVtFfVN1TXU5Y0trAVlxe09tcWkBdR2VyT01KTVFcdnVcUElAXd3FwvXK1tTTxNBYXlTQWl5XwNDFwMnDWFVET0lAX0BHQlpJdkp0fX1zSk5xdkxIWlhJdXVGTnJB1t3V9+bn++fs5ubh4+Pj//j39NDV9tHU0tHaSXtZ0V5T3NBaRtddTEx3Q3xnZHFzc0lZQkf0xlldytr1+OPk/vbA9Mzb0MfeT0h/ckHOVVHW0MPYfndRdXN0Vk5yd3tzcEbVTFdEd1dcR1BB1HRQWXx3dHXR+/v54ePl+cb65v/x2/TJ11NfUVZGTMzQQkd2wlFFxc3SxtnaRHdfRE1HXUBCdnJATXx0d159cFlf9/nC/tLN9NxWc9J1dvHQ+9j5xUrwy/3P9MvAWvTaXVhM1091dmV4Q2ZKRnZddlJPfVhxSnhkcnRXw8vy5uf45+b9/vvl/fP3+P39XE1QW9lMd3l/RnZSW0RWRdVBQVhwekJDc1V3RVhATE1WVltZUljB/ufk/OD49PDd0/XS2MnFz8LfUdZUU99Z01FCRnNHQnFIdEx1d050dUtFUltC1kNNV19fXkxITkJdwPb2/vzn5/n+5frk//z2+ufH019W38fS319S1V/T0NnQ29JUWEVYcH5+fnl8SXBzTEpGSEhLdnBE2MfI9PHxx8T1xMDQ0fT0wMXeycjRVMTxUNFXUlRMXkhBcnt5fHl8ZXx0dn11RU10cEZPdHRLcUpD1MbEyv/88+Xn4+Tk4Pv45OTw88HDy8DcxcVcU1RQ1V5K1EBcRl5UXXRJcXBEQUVFXkBSUddZSljT0dLZ9f/wyMjHVN/R1FNd1sXZ1l3U3lFXUVN1TltdT3NPSnF2SnR1S3FzS0tf1F5SWUVaWF9CdHZ2TVDQx/XI/Pj38uTg+uXk5fzx9vHF3dvBzNHW2VFbW19Q1dFT1NjUVlJfSHVJTU5OWkNJRkZIdXFNT0pBVNXc2sbExszB0tLE29LczczBx/T1wMXG01NYR0B1d3R3fXB3cHxkZHx7eXdPdHd2dU5ycHZ2dEhX0sT25eTn4ezp6ezs7OPg4eH/8vf2zsDZ1FdTRU5ISEBBTUdSREdGT3R1TkVaTFtaWUFBWlNFWdDV1FDYwcTfzPTMVdHQRE1e0VJZV9jb09fa3lhJTHV8c3JzcXR2TUlNd3RBR1hdUFJZREZNTnRKdEpCQVjSx8bx+uT75OHn+Pz7+/30/Pz2xPT031bQ2FdaXNdSWlDc0lZX11NcWFNfUk93QUBOS0BFR0JbWVlZUlHW39vMzMTdVVHVUlbT2dLczPXMxdrF109JTHV8e31wfH53dH14cEh3cEtJd3NwcXZ2cHRIQU1c2/T8+eHt7ezu4uHm4OXk5fj4zvPa1t5NWFBIX0txUkRAdVtXQkhHU1dYUldQWkxZX0NCUdVQUlXS2t/Zz8Xbx9jQXEdYR0FHW1bUUtPY39/W1V9ATkNDSnZ2dUlPSVhZWkdOWFhJT0NPcnxwc3xlfXFzdETe8P3l5uHm5+Ph5Prk5Pr65+X/9cn3wdTQ11dfWFDR1llW11BETFlTRUBBTE51dk1GdUlbXlxZUN/Z0NrNwMfR19RcXVbU1tXR3tnU3cPd1lRVUkxJREV1cnJPd3FDXVhLSk5DdH1wcXJ/fnNxc3x8SltY3fL7+/rm4Obm4eDm++Xl5Pj//PTB0tHQ1VBU1F1ZU1NaTU9EQEpDX19DSkVdQU9SU0VBSV1WVtbFxsbZ3cXeUV9YW1taUNHX1tPS3dLT0tVRUVNSXV9fWEJ0dUBbUVfV11tMQEVCdnJzfXh7fnlkZHx1RFHD9vP/++Tn5+Tn5/v55Ofm+v748vX0ycLB2NnY0NZUWVpAdEtDSE1KcXR0TEZNQkVaQEJLQ1dQ08Xaw9vfxN/W1dfQ1NXXxcff2NzQ1ldUXEBeVlJFTU53cn10dU5HX1lETHdKdXFxe3t5en9+f3VNX97az/bw8uXl5uDg4+X/+uDm5fvl/8709MLG2MDF0tdfR0FPTHR1TU9MSkxHWFtSU1hGREFCQkdZ1d/T0dLW1FFQU11cREReUdfewcffUlfTUFhbUN7T1FVWWU5MRF1aRVRcWEZARXV3c395eH96ZGV/d01f1djayff+5eTn5+T45efh4eDm4ebk+P3x8PPx8/HB11BeTHV1S3RyfHNzcXN3dUBId1pZQXVBVtRRVdDQ09HfztjF39HWVNvFxMPCxNZQ0VxFQ0RT1V9DT0hwf313SHB1T0dKd3VCdH18fXN+fXdNT0RR39/cxPfy8/nl5fr4/uTn5+Tn5OX8/f3LyfXw9s/C2tRcWEZKdnZKTUpJQV1aQEdXUk1FU1ddU9feUFBW0FRSXlfUWkVfVVdU3M/Pz8TA01tHRVxSV1TUV15FWUREQktOTUNfXkp1dnZ8eHl9f2V7dE1IT1/RUtHF9vP19/388/365+Hh4eLg4Obk+Pb3/PLLy8bfV0RMSnNwc3ZxcHZLSnZCSUNKTF5cR19fXllcUFTWXF1X3dFU19nd19jMyPXP2d5cRkNSRE1HR0VPQEBNdHRKTU5EUlxLcXZ2cXNxdUl2S15XX1bW3dPQ2Mr0zMvw/PHw+OX7+uTm5vr7+fPJyvfKwcHMxVVaR0dMdE9BQXRJQUVMTlpWXEhE3NxFXlTUWEVfV011T1pYSUdX1tbTxvT1z9jZW0hHUF5AR1PVWlpfUEJ0QFFERl9SS3J2dElyfnF2cXZMU1pFWNPfVlHZytzQzPH29vL65+fm4+3m/vj68vT08PbKz83DVFheWUZCTFpOdnNLQUpKW1NMQtXdWUFF1NRYX1RdQEBS1V9aUNLR1d7z/c3d3lVBT01DS3d0XV9AQ1laTUFd31JCSUJ0c3BIcGRldnVKSUNWVlPTztre2cDOzc/w8vX08OXk5eTh+Pz////x9fDyycbDzd1SWVRdX0VAQEpzdEZDSHVBWVFT1dFWWVfWUkRfUEdYX1xQU1lTV9faz8jA31TUU0Z0T0ZDT1hWW1lZU1ddU93QXUxAQkl0cHx4eXlxd3ZxQF1U1N/HxdPRxMPBxcjMz/X55eX6+vr5//zz9/fx//H0y8ja0FbV09ReR1xEQ0BEQ0h0TUFaREZFWVxZXFJVU0daU1JQXlhaWlbX2NrA2cTF2lRfWURDTkZTVFJTUVXW3NHVXFlGREZPdHNwfXJ9d3ZzdktCXtDDxtnJy87Nyc/H08f19/D45fv7/uX7+f3x9/bOw/fI3FZV1lFHUtFQTFpZW09KQENNT0ZaVFpFWF5bWV1YXFxcUVhBREZfRF3Q3tHd2thURVFURXVGUltHR0XU1FZU0dxcXtdWSnd1S3l6fEp3cENHXF9XxMnF2c33wNzYwdxW0s/x9v365PL8+uT48PP88c7K9/Te1tzQWVHR291RUdLTQ0lAWndyQ9VSQkBRWU5G1dZFTUNDdXB3QURDR9PE397AzlVcVtBSR1bRUUNd0dBdXdXXUlNQ3FlxfHJyemV8dH1/cENBWlzby8Ta9PbI3NDbUljT8PL8+uHj5uTm5vnz9fLzycH3wlNFX1RER1HRXkdYUkZPTURIdUxc1VhHR9VXX1ze3VFeWFhLdU5ZWFlQ2cPM2sHE0VJaVlNYUdRaR1xXU1NYUNFWUVbVRnN5cnx6fEpHT3dDU15R3dvT29/ExtRQWVtbU9j39PLk5ubk5Ofk/cr08fX0zc/bVF1XVFbXwcfVUVFRRURCT3VPWlNaTk1FXFlHW9VST3dJdHJxT0VCXtDGx97Z2NZcXlfV2cXFxNTR0tReR1HT1VNdX09zf3h+e2VwTkxOQlNURFnT0Nbfx97R1dPVVt/By/nl5ePi4Obk5/n08/z3x8HG2FRaXFxZXVPX0F5aUVxAQkFGQUFbWE5IQkBERFvR1lNYWVtPdk9eWVvdwt3V0dxWWERfUdbcxMfZ1tVUXkFCU1ZYQV5FSnZwcHN2dERQU11U0VRDXdPQ11PQ31dd0ddW0ML38/764eHk+/r58fXy/cjCwMfSVd7E2NzSxcXf1FdXW01AW1hCSVhJfXNLT3dOQkdaWlhZQEpxdFpf1NzY2dVR19RSVtnFxcn39sPT0NBTWl/XWUhBQUpzcnN8fHN0QltQVldWXlpaUlBc1N7XXtTa2NnM9//5+ufn5/j88/zw8fb2yNnX09FR1d3R1dfT39ZWVF1GTEZXXUBPQEx3R0VEQEPX3t/d0VBfQ0tCRkZcVFReTEJBTk5FXdHc2cbHxd9WUFNZW1xTQ3R1Qk1OQk9NRFNUUFfc0VZSWVtW11RQWVJHWNbd0t7J8vj7+uX58vb38//+8vfPx8bax8faxMHOw9LY31ZYXFpKdU9bS3NxcXxzcHZKT0RRV9VXR0FMSE5bUNfW0t1XUNLT1t7YzfTPzMvA3lZQUVlbTUp0dnJ2d3d2dE9IR0dHUVJYU1BX1dvZVV1S19bT2Mj39PD45fr/8vbL9c/28/bK9cLF3t/T3tvZxcTa3tvdUUBHR0ZMSE9AdHdATUJZVlNRXlJSXlJJSndKSUNFWERGQUBNQFDU19zN9ffMwNjf1FfVV0ZJTk5CdU5DXltbWl9fXVNSX0dd19BaXVBYTU5HWF3U2szK9//4+PH09fTK9Pf28fb98/H09/b2zs7L98jG0NDVRE1OQnZ8cHR8fnZDR0dBR0JOQE9IcUpCTU1AWFNfX1LU3VTfxsLbwcvx9MbZ2dRGQUBCdXV1cXxwcUpLdEhBWkVbRFNWVtXa01dc1NFaXNrLysj19srw/fz0y/TI2trAz8LHz8PJwcTPz9vezPLwx9zS2ldaR0ZOSE1ETEVd1NDU0VVYTUpxcXN2dXV0cXBPW3V0RdDUV1TCz8HL98nGxcXeXV9cU1lWWF1YTFpSWkxDX1BDTFLRXVpY1VxMS0BIcUZQ393Tx87HyvX29/f28fTDzc/0yM/0/v3x8PLw9ff88MLH3tlfQ09LdHFwcHRLSUFSWVtNR3R8eXNyc3Z1dXBORV1bVMH09cjK8ffOycv0xtnd1l5NTlhcWklAW0J1d3V3dU1GTEZZU1NTVVRZQUFGWkRX38LNzcH08MjP9vL98PHwzdre29bd2cHB28TAzc719ffIwMDC3FZDQkdATURfU1BT0dNUWUV3cXNwcHx9cn54dkp1SF7T2sXNw8zJzcDMys7D2dzXUllVUVBX19dRVl9HTVhYR1pcUlxYXF1HdXZ0dnZ0RF1SUd3FzM3J9/Dy/P77+fXMz8jbxvX0ycv39/X2/fD29PbO21ZHSHV0SnRITU1dUFhPRkFKfX1xc3l5c3Z+fndAQkzXzff19/P/8M/098rG2N/fX0RbXkVMRVVRW1hBdHdNQURIWNXUXFbUUU92TkNHTFnRxN/Ty/DMz/f9/fbw//Hb2treUFbYwsffxM7Jzc/y+Pf28vHFXkFYQnZJXFBX09zbUF1dRHRxcHZ8ZXt4ZWR7fHR3T9fOx9/E8fHYxvHxwsHDz9xT1NDU0d3EwdxVUV1ERU9YW0NZUFhOTkx1fHlzdHB0Q1RUUtDMzsn2//v7/vz588vAy8nCwcrxy8j18/b0/fr+8crO0UV1d0pwcHRaWF9YXERPSkh1cHxydHJ+fnJ5eXJNXlDWyff0y/Tw9/XK9vTN3tDQV1hdVVdUUVFSW0lCdnZxd0hERV1TRkd3dXRLcU1MQV9U3Nzd2/X28v3++f/28fTPwMTBxd7dxcLDxcPI9/Xx8v788c/eV0ZHTkBFXVXU3NFdW0dDTHZxc3N4ZGZhZ2d6cnRJQ17X0NbTxNjCw8739fTN29nGxsTAz8LA3cTfUlxBSHR1S1tfWkt0dHRydkt0dUtBRFpDUtTRxsjw+OX6///98fb198vKys/098j38vL98/P8/fXFUV9FSHd0TE1JS0FDSktMS0p0cXdOcXp6ZXh5fXVHXNbZxcfAzcLAxcfAy8rN2NrR1NvF29vb2FVfWUdCdHFzcHVJWkVCQkFcUkdbVlxEWFBSX1Dd3t7by/P98fXz9s3AwMfY3cXE2sXPz8719/38/f/w9M7c3N9QRF3VU1pFUFFeU19aRkp3cX5mYWFmZGR/Sk1AX1XVVdTT39DbyPT29fTw9MPI9MrKyc3E09Dc1ER0dnByf3J2dnBwd09KdkxYS3F1Q1hBRlXBzfX8+/j//f/y8PDy/PbOy/D09vLw98n08fXH3sXdU0dFW09zcUp1d0paWU5MXVJcWk11cnh6eH1xd0dWVVTZwNvR1NLc2djBwMbAzs7NxdrH39TV0tBUV1ZZSHROSnZxdENGR0FeU1xBR1xHSU1SUllW2sDDwsv09c/Gwcj0w8zOwsHJ9/b29/Py/PLw9/H0yMDa09HRXFhaXFBeXlNZR0FGTktweHtmYWBkeH98cUJHW1pfXVxV2cXA9fH8+/7y8/LwyfXLz8bAzsbdV0F1dnNyf3F2c3JxSnVIdXV2dnd1TUdS1d/O9Pfw8/L09vTw/PLx9/L//P/88/H19MnKycXGw8DdVFRQR0RHREVERUFAR1tAQ0BJcXZxfHx9cXZ1QkZEUFNQU9VV1dPX0N3D9Pb19MnBxsPH2Njd1tPT1VdcRExOTnVJTk5IdUtCQE11T0xKS0xcUVXWwsjMxs70zsHNy/b39fb9/PHy8vH0yvHx9fX39srMydrQ1tJXU1RQU11FT050c3x+fntlZWV7enhydndxTkJaRUFW2dLYzPTOyfLy/PL88PLwyMvz9MPbxdNaRlxYdnZ2Sn18cn14eH54f395c0pzdF/Fx9vI8vf08PL98PL/+/39/vrl+fHw/cjJy8vax8/P3NDQ0ddQXlxVXltGWkh3dEJ3eX5zfWV4fHBzd3d1TEFDXFdfR9TN3tDey8Pay/L0zvfw9cnIzc3H2FBX01VeVFdEQkVNcXJwcX99cnNycnB0SnRMX9HUVNvx9c/08Pb28PLx9vLy+fr+9vn58vby/PTGyMrd1sHH1FdQ1FlYQXR2SXZ8cn9lZHtkZGV8fX9zSnR3TVpdRVDFzMPAwPfz8Mry//Hx8Pz29PTJ3NJRX15cW09CQEJ0dHB+eXZ9eH5yfmV+dnZKWVDV0cbP9vL88P/6+fP9/vHw//r98vn4/fLz9vf0z97Y2dRR1VNYW1xASkpJSUlYQEpxdnJ5eX94fHB9c05BSElFWERW2cTT0trHz/f09fDz8PX8/vTBzMRTVtdQWVpFQE1bQEt0S3FzdnRxcnJ+enl0d3VZ1lJUxMr3yvH9/v3z8/789Mr8/vz/5eXy8P3wz87A3NfWWUdZXk1PRk90T1xCSEBGd3J2cXt7c3N+cE91SE1MSkRV1dDM9MLH9/TO9/3+/fPw8Pb0wNLf015FU1tDTk9KSkxGSUlNd3B1SHB8fn94fXdIR9HZ19v09/Xx//z2/fj//Pnz9/L5/v/6+vL08PTDwcTVU1FeQ01bQndIXkFDUlBERE12fn9/ZWV4e2R8cXFzd3dKQVDT3cHOy/Tz8PH++/z9+fry8PHB1dPZUFDXXUFNQkxLQENwcHRyeXB3e2Flcnhld09OX9Dcx/b09/H8/PL45Pj8+Pv4+uTn5OXl/ff3ydnb11lfXk53QkZLdkJaTExbRUx1dnN9c397fn15eXRBdnFBW0ZQzMrNy/H09fDw8fHz8fbz/fTCxdFZVtZRRV5eQ09FXEdNSHR2dXJ9cXF7enxzfXNORV/U2cfI9/bx//zz8vj68vL48vf85fv++/zKwMzH0N7WXF9fR0BeVERJX1dHTV9ad3B0cH95emdleHt+S0J3SllXXNLPzsLJ9vT19/f28v3z8v72x8HHV1/W3F1b1NVYWlxBTkh2fXNxeXp8c2RneX5lfktGQlfDw8r8+/765Pr75Of4/Pr7/fvn5P/y9sHR0FNGRVlBRVdXW1peQ0tEXEJOR0J2dnRwf3t7e3x2cXZFUkRf2svHxsv2zvX3ycPCxsD28/fL9M/dVddfRllXUl3U1lhNQ093dEh2dnV2fXJxeXtydnBwQ15Q3Mz08f/6+fvk5P77+/HO9/H08P7998vA1lNTREZcVNfSxN9dXlFWWFfXREhDSXN/fmVmZHplfndwcUdUUNXByMfF9PbOz83Z0dvCw/Xy9sj3ytBV29xQ1Njf1NZQT3V2cHN2dHJ8cHJ6en55ZX12c3Rf1dfC8P3+5eTn4OPn5eT49Pf+/PT3/PbC2NZAT0FMTlxVXVDRUEJCX0ZLRF5Od091fXxyfHl8cXBLWVlY18fCwvHz9fXwytzS1l1c1NLfw8jAxsfXW1DWUF7U2dBQUVFaQUZLdUJCdXRId39xSXFySEJJRFXQ0sb09/b65+Xk5f/29Mja2sjLw/T8ztHS0F9aUdfU09nexMPcVdfdUEFFUk1ycnN6ZHh4e3xwcHRER0NR2d/H8fP09fTFVNHZ1VHZzc/K9snYx9pXVcfSXNXYUEBdWXdwSHR8dktyf3Nwf310cX1IWUxO1cfZwvz65ODt5ufg5Pz9/fTJ9PbNxMVVQU1ASUpFXUFA1d/R0tZdVtPVWFzVRnRIT3Z2Tk91SkBGRFJUUtTPysn098Pf29xaRFFZR1Tb0tDE3lZQ19dd1dFWVdzQUlBVWElFU0x1RFpJTkNKdU9PcXZMS3Va1dfb9vn45ebk5eX68c/1y8zMztvQ0VBAQF9FQVjX1NDMzsTEwNvT3dFYQFpGdHd3fHlycn59dEx3SllQ1cTNwc3OzcXH2tBQ1t/T28zNwMfHxt7Y2FRR19FV1VZbREZETHVOSnRKSXVKdXR3d3V0d0hCRlHbyPH+5ebh4ODk5fvz9vT1z8TF1l1HQUl2SnV0QVfX1tHe2NPf39VRUFJYX19ATk5PcXFCR0BGW11U0djFx8bGxMXZ0FNfXF1fVtPd0tBUVNHXUVlTUdXXVdHW1VFW1VBQU1BXUltbRUNOSnFwdnZxdUFFUNjM9/zl5OX6+/7x9/T1y8LG29LWU0VYWkNAUdPcxMHCz8/MxN3R1FNbXF5AdHd3c319cHB2dkpYUlxX3drF2dzd09fU1tTc2MTPz87Cz8PF3tDRV9fdV1HVVl9eRUdDQERCTkZMd3d0cXBwcHN8dVtd18zK9/zk5ubm4eT4/vD08fTG3tzUWEdGSnN3Tk1aU1VW1tLc2djbVlJUXF5XUEFNRUNISUVHQF1WVdLY39DbxdZT1tFHRltbR1zS19bc09TX1lZT1VRW1d/e19na0VfR31Fd1VVQX1pOS3VzfHx8fnZEXFLXxs3I8f7//fz/9vT3ysj1z9rax9JXUFFeQVzX1tzaxsHY2cXa3tRZWlJGSExKcXx9cXBxTkBHXlbT2NzY2tDVVdfQ11BR1VRU3cPIxcTDxN3T0tFXUFNXV1VVXVJeQEFGQUJMQ0h0Skl0cHFwcUla1dvOyvXy+Pn55OT+/PLzyszLwN/Q0FdbW0FJSEpMQVZWU9fS3NfS2NBTXlJQUllbWk9LT01FWVLU39jawsPBxtrc1tRQXlhBTnVPRkVcV1VWU9HQ1VTVV1DV2drZxMPF0dVV19dXVlJZR0hITnRwc3ZLSUdU0tPYwcn09vDx9PX0ysPZ3tjc1NDS09fW111cVtXcxMLGxMnMxdjd1FJTUkZCQnVzcHd0TkdFWlPX1NbY2dVU19VTUFVQWVlBR1DX1NXexd7azMXU3N1fVtnY1tHe0VNSUFhYXENKSEtxc0pLcXZERVrS29LG9/H38/7y8P3y9ffxx9za3lZeVVVFRFxCS1pFTV7d0VHdx9ZX0tNeVtBQWltbTE1RVVPWxcXGyMPewM7bV1FXQUxaQXRJTUh1TUZGXdHQVNTdUV1WU13Sz8PbwsvBxcXfVdDeU0BHRkJMQUBLTl5cXFBV1tjAxNjFws3FwMDYwMbd1NbQ0NLd2NZXVFVRUlTcwM3NyMv1z9/c119ZWUJ3d0tOTUBbWlzVVFTVVdDU1VddX1XRUVFQU1HU1FHV2MPHxcLb3dRdWkdT1dXQ0t7d2MRUWFtFTXR3dndOQkxCXlHU0tnc2c31y83J9PT39cjLyc/Z0NNUV9HTVl5TXEdDSXVDXFxf18XDxsDA2d3f01VWU1tY19nV1MTA2dDc3t7YVV5eWUFPR0VCTkNEQ05DWllR1VBX0NFeWlxcVtnGwc31y8n29cTa2VFDQ1pDQkRbT01YRFpRVl1X2d1R1NrTVdDd0sXD3NDaxN/ayc7T1t1VUlldV9Pb3sTP9M/GztrVV1FYQ0FCTkNfWEBQV0RGXFdX11VcXlZXW1/WU13U0FZd3Nre2MXc197RR0FcWUZR2dnfxcfS3d5UXF5AcXNOTUpIX15bV1Zd18fY08bMxMXKyMbAw8Xbxt/W09rSVt3YV1hbTXF3TklOUdBX3sjOxsr3xt/Z0FJU09RR0trT0cXZUFTc1V1RUUdNRU91QkZ0dEJPS0VWUVTW1lRWVF9c19zW3czOyfXxysP1z9PX0FpIRERISEVbTk9ATUNQV15d1VVcUt7d1NvB39PBw8bNw9jbwMfWV1BbRVJRVN7a29jHz8DAzdrVU1dZRFxbQEdRX01ZUVlbV1dfV9RTWFFTW17UUUZf1FRW3dvd3sXdU1BWWFtRVVfT2dzcxdvR1tNXRkdeRE9NRkFFWEdaX15dVdzc0d3ExcTNzMPAxN7Q39nT0dLX1NLTUF5ZR01CX1lbVNDR0MTMxsXa2NbT2NPX0NTV1tzT1dfdVV5WVl5EWltZX1lbQE1NdUlHQUBbVtXU1dbX1NzS09jZ0t3Gw8PPycPZxNlWUVFHSEJaTEhDREJMWV5aXV9EWdLZ3sDK2FHcxtPW2tnX0t7c38XfUlfZ3NHc3FVX3d/Sxc3cU9PZUVDXUVtFWlpfVFJBUdxVUtTVWFpSVFBV0F9AXFJGW1VSWlbZ09Te2FfSzN9V3dxRXNDfVlXY1FvU011FXkFLTFlBSFhfT1vXVl9V0NbeyPXJ9/bF1MbB1lTXUVtR01VX09VHU9hUWlfQX13f2dXcwtZT2sVXVcXcUtXb31XZxdfSx9RZV9VFW9DXR0VVRXRARkpMREBHVN3VV9vH3dvM31fd01xT3t5Q0szS0c/DUF1cQ0JFWkt1XF1ORFdEQl7VVNDL98DD9cfdwdheWVRQXtTdVVTHwtzYxtnR0dddUd7cV9XSVNXd1l1d1lFe1t1X18bG0dLe11BRVltX2VFGWlNFQl5SQUJRU1tW1lDUwsze3MfeUFBQRlnX1FJUxMfY2tvVWF5ETkJATERcWU1HUVJd0drAyvP2zc71w9vf1VtFX0dBXlBSUdna1NzD3FJQ11BQ0dZT1MTcVNLT1t/c3dDZzsHfxNvX1NbVXF1QU1ZRXUZaX09MRUdERUVDRl1V19HZ2dDc3NZXV1RW1d/f3M/IxtjExNRRXE1ITk1MTUBMTENHXlzSwcPPzcnNwMLH3dfUUlhaRkVW1dXf3tjH3NFUUtTW1NVQ1t3Q0NzQ0d/R3d3V0Nvf1tTR1lddU1JT19ZVVFZXV1xfXVhfUVtaWEVaXNXR1dPZ0VfVV11WVVdR1dzY3sXY2dnd1VlaRUNCRFpAQEVFR1tS1MfOzMDOycPDwdrc0dReQURER1hSUFBV1tRQVlRQ0NnR0dja39nHwNrbxNHV3d/S0t3UV1TUVltW1VFV11ZZX11bWlJTWVhSRENbR0RfUlRX1N3W0cXe0dPc0NTc29jYwNnW0tFYRVhbRkRZRk9AQE9DUldX38Xf08XAxcXMxNPc01BeU1NZX1JdXFZVXFbQ3dfR2d3Q2cXe29rT1tDS1NTf3dbT0VBTUF1bU9HW1dDTU1BUUF1cUF1bUlNEQ0RBQFhTU1BU0dTQxNvT39zX0N3d3dBVUl5TUFleUF1T1VFfW0VbQ1tU1dbc39Dd2MXHx8Xc0NzVW1lfRURbWFlZXVBTU9TW1tzY2drDwMHH2t3T393X3NrT1tPWVlBXVFdX1FBcU15fUlZRXVZRUlxdWUBCTUhCXVFQ0d/excbDwcHE2dnaxNzQ111ZWFNSWl5eRVpeXkVaWERbXFJT1dRWV9TS2cbCwcfb39bUVFNeWlldUVdXVNXW0N3bxd7Y29LQ3Nrf3NnS0NLS0NDWVFdQXF9RVVdSXVFXVdfW1dXR3dbRVV5EQ0xPRl5cUVdWVdzHx8fDxNjY39PUVV1FRlpFWF5fX1xU19VVVFxbUVdSVtPQVNHc0t7Dw9jZ3NFXXV9GRkVbWkVTUVNRVFXW2Njcx8Tf28HG2tvF29/f39PbwdLUVVRcWF5bQENYRVvVVVfQ29xU19BQRkFNdUZTU9TS3t3Eyc7FwsvE2MbZ0NZUXkJARkxPWFtBUlVdWV5eR0VcR0JW11xR0NLewc3Nx8fY3d/cVlHQ1VxcVlRX1NNRXddXXtXSV1TT01XU2NNU38Xd3MHfV1ZUVl1WVV5YV1BcVd3c2cPC297Z11lbWkxJQUVf1dfU3MHA3tvDxNLZ2dbVUUVNTkxJT1/UUlHd1FPU1lJdVFFaXNLVXdPd193Bx8TE29NU1FReXFRfRFxWXllR1VNW39dU39JU0dzX1tvH2NnAwNrBx9DV1lRbWlFdQVlRRERX1VbdwdvfxttRXlFFTVxXU1XZ3NbewMfZwsne3MTRXlJTR0lCQU9AXEVHVlVeXdBRW19RWFpRVF9R3NDSzvTOw83B3NDQUFLQ11heVFlDWlJYXtHcV9TXWkZWVlPV39jd2Mba3sbH19HZ11ZUVFlFU1FEXtHU0MLPx8PH3NVSXFpbVNVcX1ZTUdfY28XPwtPX01hGXVxERVxdWFhaRlpXUVlS0ddfXVdcWFJRU1ffxcD39MbEx9nVU1BQXVFcQUNCTEJEUlHX2MTUWFJcXFbX0d7Hx9nZxMbExsHd1t3Z0VJfWUVbXkVF197T0tva3tzdV1xdUVBSUFhFUNPQ0s31zsLD3FBV1F1fU1JFW1tPdExFQkBcU15WVVlGXVFbXNfWVMf3ycPLyMTF29RSVdNdWlJbTEVWWFjU3VZS11xMWFRZWNPZ0dTd1VfEycXayMPT2NhQW1bVW0XVVF/extHU28Lf3drVWFTRW0RTXUZT0NHez/XS1drdUdHSXVhV1UVAQUp3QVhNRdTVX15cRUZTVVhS3tPRxM/a28vM0tLe1V/VVVpbVVdHWVFfX1VUWlvUUVpcVllZ09JRV9PW18fKz831zt3T0lZTVFRdUNzTUFTUVtfGxdLT3FRaXFBYX9ZRRVDQ0tzEx9HXx9vV0NNWVlddQUZfR0pMXlpe1VBFRF1TX1LWVVfe01TW39rHxdnQ19LRXVJXU1JVUVBWVlBZWFJTUNdQWl1VVFdUVFZV3d/TxMnD2sXZ11XR0VFW0NBV19VeXlXT1NDa3tbQ0VNQ0NBQUdbW0dPc0t3F2tPQ0tdQVVVEQ0VHRkVHTENdWU1GWFpGXlNS19nT19bR1dbDwNzHz9vW3trR0tvWXlfYVFpdW01HU11BWl1EWlBQW1LQVFbdx8XEzs/c2MLE3tnH2sXD3NTS0ldR19RQ1ddcRVlSWF1WX1lX0tVW097S3sXTV9Lb1lfQVFxR1FNZVNReWlhaQERcRUNf11FdV15BW1dWU9De3NPe1lbd2NZW0d3R3NjQVlXWVFFWUF5dVV1bV9VRVdbX0NrF0dfc3VfQ2dbU2MXd0NDUUdTfVVfZ3VbU3dZX0NlUU9Le1t3Z1tfexdJX1tdfUFRZRVhEQ0dYWV9WUEFCRUVEWVhYUFdVU1DWUFpW1tTdxNvc3d7d38PbVdDa39HS3NRdXl9HQVtaQ0dYWVLV1FbX3tncxMXe28bE28TGxd7f39HW0NbV0dPT0tFXX1ZXW0VQVlJTVlVV0tPR3d3T1dTQ1VFXVdRWUVJSV1BfX1FWX11WU1NfWFhZW1pYXllERFpcUlFQUNTW093T28Tb2trFwcfb39LUVFNHRVpbXVLV1tTd2Nnc3dPe29jd3NnY0FFUVFDV1FfV3N7d3NjS1tLS1ldUV9fS1lfX3t7X0Njd1dRVX15XV11TUlpbX0ZPQURFWFfUXVHXXUFEXlpYUlJYUtPUUNfUUlTc3d3aw9rfxsfcxc7F1NfRU1tHTXVIRERf1NDV09xUVN7ExcbMw8TAxtdTVFRdVtbWVdzE39Dc3dHc3FZcVFReW1BQUlfR0NPe3tVQUFxS1N3T1tPQVl9FQUFcUlzV3ddWUFlDQUVaRVpbWllcWEdeUF1SVNVUVdLR19zExcTNw8XGxtJQXFxYWF1dXdbS1dXUU1DR3tvY2MfZ0FRfXFdWU9Tc3NLc29vfxMHc2sTT3NjXXFLX0NbR3t/Ywd1XVFJaWVJXX1lRX05KS3VMWlpZU9VRW0RFQVhSXFNVVFBRV1Jd1NzXV93d19bWVlHX2d7axtvbwdtVX1JbQkFfXFlU11JfV1XU0tje3sbB3NPUV9Tf39Df2t7W1tzS0dnZ0tLd1lRQXUFFVNVW0N7fxcHZ0N3c1VDU1lbV1lNbW1lZXFBdXFbVWUNAQE1BXl5eUlFaR15YWFfW1VXQ3dZWVlBQ19PT2cfBwcHG2NDT0VNZXl9YXV9EWFFTX1fWVNTQV15eXVNU3N/f3sfb0N3ExtrHwMHGzMPd0NFX1Nzc0N/F2dzFxN/T01FfXVNdW0VATUFYW1tZWVpZXkRNRFlaWlPXV1XXVlDU0dHS3tzc2NvRUlxSXFJU1dPe3tdX0dFWVNVTW19cWkZYWV1V0FRR1tPW1NVWUNXS3djDzcfa2t7d2tvR1NLY2dne1F1SU1NX0dDS2dzX0MXG297S0NDQ1ldX11RW1NRQWVxfQUBBR1hSXVlcVFRbW11fWVNWUlXQ3NPR0VBf1dDV1N/e0t3S0dHf3FRX0ddVVFBZWllTXF5SXlhfWUBDXlJR1t/F2sLB3tvF29jb2Nzd38Tb397f3d/d1t3F2t3S393Q2d/X0dzXUlJdXF1V1F1dXEVAQEFJSEVTXdfY01TUV15T09NQUNbR0N7Z0VVXVlBW09RV0VVfXlJQUVZRU1fT1lBXUVxdVtVXXV1ZRUVbWFPc39Pay8vAwMbb2MPa1tPRVV9TVV9ZVdBWVN/S19LS19Xf2dbcx9rZ2tjR0d/Y3dLf1lFQXkxJR0ZDRFdUV9BUXkZGQURSXUZGUlBYXdRVUlZUVdDE29fS2dbX29jVV9LS1t7Y0dfc1F5TUVlOTk9xdkFZXtHH2sXMzd/fwMXX3drRVFVQW1lWV1bd2tPfwsHc3MXZ3d7Z1tHF3dTS0FNS1tFXVNZSREdHT0JSU13Wx9rW3dxQWF9HTEFETUxZWUBY1NVdUNVX1dDTVVTQ0VXT01RU0t3W3Mba0t/cVlZWWk9CRkNAX9fR3s3OwsDF0tPS1VxdVF1GQERCRlNX19/a2NnGwdvYwsDb28bBx8PG29jE39HS3NVRVVNbR0VaQEReXlLW115FR01KdXV2dkpIdU1bWFDT3t/f28Tf39re3cXE3d3Z2d/bx9jZxN9UVdZTW0ZPdHZ1Tk9HVdLdwcLY3dzdVFfVUVxWUVtfVVdX0sXExcfDxMXCwsfBwNnZx8Tf3NvSUdTWU1fS1VBWUV9FWV5FWNXUVdDXXEZDTHdzd3ZwdU9LQ1JSXNXc0FXS3FXU2N/cxMDb2sPD39jDxNPd3FTV0VFaW19DS0ZFQV/c29nExtzQ0FFHWVFZR15SWV3X09HFz8HFzcPFx8rMx8zLwsHIwdPbxVVQ1tDV19zWUFVVWUZYWkZbV1BfU1NBSU93cnZ1cXFPQUNZVFdR0NzW0NjY39jF2dvMysnDw8Xd2cXS1dHWVlFWXkdGQ0tLR15R0t3W1tzf1lFcWEZaXF9S1NbX097Ex8n1wsHPyMnKyMHDzszGxdjS1VdWUNXR0tLW11dRVlNYRFteX11dXFFRXkBPSXR1d3Z1SExEX11cUNVWU1dUVdDd3d/Ew8jOx9rc09PW1tbS09bUVlNQU1lEW1pFVtTV0Nnf0NVVUlleRUBFX1FX0N/c2MDNwcHOzMLOyczO98jHx8XQ0N3RVdfT1tHb3tbR39RfUl1aRkZBQkVfQUlDQXV0T0p2dUlOQ1xcWlDUXlhU0NfQ2NvEyPXMwM/N3NjE3NPc39XV3dRSUFREQllbQlhWUlbf2VdT1V1GRFlFWtXVVtLE2dPaz9rFyvXJ9/HKzvbO3NzY1F9R1VBV3NHX2MXQVNHVWkRYQU5GW0BBX0RITUZLd0NHSkJZWkVSUEZGXlhGU9dRVNjH3sXIz8fBzMTawtrW3dnVV9vG3dPdV0VaWkJaV1BT1t7Q1dVWW1pZQUdSVlxX2dzX09vY3MbBx870y8/IzN7Zxt/X0tNTU9bW0dvG2N/e0V1bRE9LQEZMQkRDSElJdHVAQHVPWkdGXl5HRFlaWlbQ19PGxtnBy87Mzs7CzvXB3dLTVVTd3dHW119HWlpCR1BdW1HWVlJXXUdZUl5bVlRSVN/Q1t3e2tjBzMn19/XPzMzE2tvd1dXVUl9dUVbQ0tfW0FRZW0RBQFpYWkRZWk1MTUNDRFlFRlteX1lZQEZEQ0NFXF1W09jZxcbDzcHGwcHa0tDWVFXR2d/f2d/UUF1QUFHV1dDR1tVVVlJQVl1ZWFxZWlHUVVfQ3N/f3NvHzMHBws7AxMPMxN7S1lNeXV1R1tLQ3N3XUFxGTUdEQ01FRE1MQEBARkBDTU1PSUBEQU9BXkRaUddX1tvZ2cbMwszPzMLMwtrT0NRTVtLe0dHc01BQV9VX1VfV11VSUlVdWVBVXV5WV15cVNdU1NjFxMbNwMj0z8PKzN3fxttV0d7WXVBRXFxUVFRXU1tHXlpDRFJbQFhSRkBZXFtYUV9GQ0JMQUBMTkdZR1pU11fTxcDYwc3DxsTH2dve11XUVlPV29/S2dtVU1TWVVTQ0NHU0NTQ01RQVVZbW1fVXVHS0tfd29jf2djExsfDws7Y3cXB2dLe2tZcVtRUU1FQUVxYR1pEQ0xEW0FaUlFeUFVVX1leREh0dXVKdUhGWVpaUtPW1N7AxdjGwMbFxsHCxNnT0tBU1dzb3tnHxdfV1tdcU9TR1dXU1NPR11TVXlpcVlJdUNbRV9Df3NPex83AwszJwNzSxcDf28bE09VXV1xbWkVBSUpPQ0lOTUdFXlPVVl3X01RfXF9YTU9NQ09MQVlbQV/W09Tc2sHe3djF39/YxcXS0t7cV1fTxNvc2sXR1dVV1FTT2MXb2drA2NbW1lJFXVdWXFHU1VJQVNTU1dTQ2Nnf2MTe0d/D29zfxdrS19HQV1JSUlpMTEZNdU5fVFFU3sXXVdbVWkNGRUJ1dUBCdHVPREFbV9bV0NjF2NDdxsbbxMPMxtvFwNjR38TF09De29RSUNRVUdXH2dDYwN5SU9VVRERTVVxeVtZUUNDExdPSx8LS1sXB3N7Bw9jYwcLa09PS0VNbWURIdEtLd3NLW1tZVdjb3tJVV1FeW1pYTUlDQHV3TVtbWVXW0NPZ3N3f3Nza3tHT2sfT1t7H0tLc3tTR1NzTVlbT293QwvTA2cTBVlhR0FNAWdVRREZf1FNc0cfc1NLH1lpW2tvV2M/G3cXPwd3awcfSUVJTXkxJQk9KSkZcXdTbwNtVU1lfRUJOQUJ3cXV0cnBGWUBG1d7VU9Ha3t3B9cjY387J0NbDyN7R28bW1djF1VLX3dFW0drF3t/XVF9bXl9eWV9eWkFBR1zX3N/bzMDc19/e1tPIy8fb9fXb0cfO39TS31NBR1NAcXdDQnd1WFBbU9zSWkJeUUZCUldHSEhOSHRMW1tbUNTVV1TU193EwsTHwsfd0NvH3trC2VfV2t5XUdLSVlbazcTew87cUNHb1FlQ0FdaWFNHdExTUVhT3d5TX1TT1NbByMLazfTN2dja2sTa3N3f01VQU19GRllcWURc1lZZWFJZQE9ERnV0QnR4f0tOdkpSUEFEVNdSXdjOx9/P8PXHxM/N3d7Mw9PRxNhVVdLQVVXU1tbT0NVUXVxX1NfU11FcXVtHW1JQWV/W0NfTxN/X2MvJw8vw9czK9czb38HFUV/U0VtORF5AS17XX0JeV1lJRlJdWV5SXFlERkZPSkNaREBEX15bXlJdUdHf3NjZ39jF3lRV2trX0drfVVfQ01Bd08bb1tLDxtVV2tvR08ba1FDT01lHXFBSWVtfWkFCRFhFXNLGx8bI9PT09c7CwsLHx8fb09Lc1V1W0dVTVtDXXkVfWEFDWF1AS09Bd3xzSnV0T1tEQVteX15fV9zbxMLJysrKysvMyMvPwMHY3NHQ1V1X1VBS1VVTXllaREVQ19fX1dLRUllRV1BS1dVSX1ZRWFhR1tLDyPXK9fTLyMjLycDY2NzTVlJcQUJEUl5eVNFQX11QXF9QUF9eXVxcR0NDRlpeU1BcW1lHQkNZUlbU0t/c2dzS09LR3NrGxMXE2dFVVVXQ11XU393X0N7SV9HY2tLYw8TWVlZSXl9WUllEWkdMdEpCT0BT3NvGzsvDw8/LysrLzMDH29HX1tVWVNfW09DRV1FdXVLVUkVaXkRIS3V2cHdLTk9EW1pGTE1EWVnQ2MXFzcjAxcz0zsn09/XLzcbS1NZV1FdTXVFcWkVeXl9SV1dV3dzS1dVcXVFUXVNUUFpGWkZBWFdV38HK9PTKxsPOy83IyMHd01FFRF5ETUdbWV9WUF1fVldRVF1fUVReR0BDTkJBQENYVl5aRVpGRV9TXdfd2d3R1NXYxdvbw8LAxsHY0tjY09fQ0dbU1FBX0N/e2drZ2sDD3tbU1FBQUl9fWUFKd3Zxd05DR1Lc28TGwMPMyMjK9Pb1w8XdVFdUUF5dVdfR0dbU1FZTV1FZRFxeQEpJdXZzcHF3dUtOQkBHX1NWVNPa297bxcfAzsrJysr1zsjB29ra09TR0NVQUV1YWF1SV1BU0d/f19Hc3VFV3dNU1NRSQE1GQkBDW1LX0N7HzcfAyMjCzcrJx97fVl1YRU9CW0RaXVRdUtXWUFfU0NfUVVNdXltBQEh1SkJLd09YRE9bXVxaUVVVVtHZxMbax83M28TDw9nYxdjR2MHb0tbRV1VU1VTc2NjawsbS0t3XXVBQX0ZBT0lOSndIQE1GU9PR38L0yMv28fXI9crP2Njd0FBZWVFYRFJXUlhQUV9bUlJZWltGQENCQ0h1d3dxdHRIQ1tbU1RX1tPT0MTGwMP0y8LO9cvDzcLD2d3e2dbR1tRQX19eXF5Q1t7T2MDC38XA2tLX11BYRFlaQU1GRkFGXlHV0dvIysrL9MzF29rS0dVXXFheR0dHWEVeU1ZR1dHf3dHT0NFUV1JTWkdGTXdxdHV0d05CQExFWVtEXNTR0dzAw8bEycvMxs/OwcTMy8Db2cfZ3NHW11VU0dLc3tjGxNnQ39zWXVtATUp1T09LdUNEWkdS0dzZz/Dy8fbx9M3Hw8HcVlTRVlhcUVNZWVdQXlpTV1NaWFNdWkRaRUFJTEt3cXRLTE9MRF5YR19WVl1V2MfawvX1zcL19MzEw83B38XG2dTU39NTX1TXUFLd2tzR28bY0t/F3lZYXllASE1AQ0xBRVtZUtbS2cfI9/TJw8zA3dTT0ldSUVRQXlfR11XU0tBVVNzf0VZV1FJEXlFbTExBT3FxS0txcUlATEpPRkZBWFTQ3NjDycjOzsnPzczLz8/OzsLF2Nva3VTU0tJU1dvG2NPY2tNQVNFRREBaRU51SU91dENYRERR39/ezPHwysr3yMXS29rc0NPf09dU09/WVNXR1FFXV1NfXlJcWEZFRE5ISEl1cXdLSHd0RFlET1tTX15Xxs3Nz/fxzs3IycHbw83Bxdva0NfQ09RdUFdQXVPR39zQ0t7Q11XR01BcXFNYQUJBRUNNR1lTUlTc29vB9cvCxdjY1tHS1tRU11RQUlTd0dbQ3tvR0N3f11ZVV1FfXVNZRUJJT0lKdHR2dUt0dHRIT0hAXtfd28PPysPBw8zLwsPI98vBzMLC2t7Y3NzX1dHQ3d3f0NHSV1JQVVdYWFJXWExDQ0NKdU9CRkRQ0sXGwMrLysvDx9vB293f28fRVNXX1lBR1NDRUVZXVF1aWFlbQUNHRVpPT01DQElOTk9NTk1DRUVGW1PT3d3FyffPwM/Iz9rHwsPY0tjZ2dDR09fRVFJSUdZU1NHc3tXV1NzSVdDf2tBQUFNdQU1GW1hEX1TS3dDbxMTe0dPS3dTV093c1VZdXVdSUdXZ2dfQ2drRUNXUVltFX1xcRFteW0FLSEp1cXF0dU9OSUJAWltS1tnCwcDP9fTK9fT29MPDzcnB2cfG29RV0t3RV9bQ09dRUF1SXFtcUFRQW1pFW05JQ0ZFQVpQ09zdwMv1zcfBw8Lb2MbAwdLT0dRWWVHV1VZW19TVVl1eRVpGQ0BEW0ZGWFxbTUJDQE93SkNaQk9FWVxYUN/GwMDLysrL9ff1yszExdnb3tPQ09/UVdfT3VdTVdzQUNXT0FBT0NDWUVNWUlxaWFhYRUBaXVfW0NLYx8TZ3N7F3NLYxMfT19bXVlhT0dLUVNPe39fV11RdWlhfWVleU19eXV9bQEBNd3Z1TEp0SEZZRERR397W3cL1ysrw8vbKycvCxd7Y297Z3tnZxcXT1VXd31dTUNRQW15RVFlGWF5BS0NZWkNDX1BTUNfc3sTF29rGzcDAwMPMxtre3tJTVtTXUV5TVVRYRV1QXEBDWVlZRVlfWFpaXkVBTE5OSkhMQkFYU15ZVtvA3d/N9MrO9PD3z8HAxtzV1d/T11XT397c0dVV1tRXVtfT11BU0dJUXV1dWk9CWl5aRFLU1V1cVdHWVdbZxcbBwMfExsXf0dPXUl5RVVdQ1dbVXlhT1VdbWVZWUllfUFJeWFtGRk50dHRKdUtNW1pBWlzW39LfxM7Px8z28/TOyvfO2NzF2NPX3NvY39Ld09ZUVNXX0FVSU1fUUFhaXFlKdUdfREBfVFRcUtHe3dDdxMHGxcfCzMbaxdne111eU1dTUlBQV15ARl5eQVhV0FdfUNRVWUdaWkZOSk1GQklDQ0JDQUFEU1RU1tjCwMTDyPfJzM/Lztjf2sPF093Z2N3X0t/d19Hex9rS3d3R1VFSXFxeQ0lCW0ZDWl5XX1tX0tNWUNDa39LGzs/DwcLG2tzVUVTVVlBW1VReRFtfXFldVtZUXFJWVlhAR1tHSXRITU50S0BGQEJBWVFQV9LbxsDNy8r0y8nOycnG2sTNwd3T2djT1NTS2N3R39vb1FdUVVNbWF1SREFFRFpEQVpcU15fUNXRVdTQ2MXZxcLPw9nZ29rQVNfR11JSUVRRW1hZXV1ZUFXR1VNU1FVTX1lFQUlLSE5NTk9ARURPTUVcWF7V2MLCwMn09czNzMPE3NvGxtrY29jY3NDR39jQ1t/FxdPV1NZWWEVYXFpARlldWVhSVFdYW1JQUF5dVdDT0t7Hwdrf2dvb39LT0NdTXFLV1VJdV9RXUlXd3dRW1NVUUl5eRUBIS0xMSUpOQEVaQERbX15bXdDF2tjA9fTPzMjLwtvFwcHa39rE2t7f29nf1lXW093UV1TVV1hHWl5FQkdcV11c19FUX19SU1JYXFXd0tbex8Pa3N7Z2dPU1tDXXV9TVFFfUlfW11fU3NvQV9bQ1FlFWVhBTk1GRUdCQUdAQ0NGRV5bRF7V3NHR3sDPxsfNyM/Ex8PMxtvGzcLExMDG29PR0N3c0dbc3NZdWkRbRUBDW1BTXFDUVFlEWV9ET0dSVFFS1tnY3dLZ2Nje3d3d3NFV1NDT0dfW0tZWVNPSVVNX09VYQVhZWkFHWFlbRkdHRkFBWlleXl5TV9XX1NzEwsPDz/XKwMbCy8za28HG3t7E291VVdbXVVFX0NdRXFxfXl5YXFFX1V1TVNVRXVBWVlhbXVBcW1HT3NBV0d3QV1fR09HV19PS3dbV19TR19fR0NZW1NHWU1pcUlBZXlZXUkRER0FDQ0ZER0ZGRUVbXlzV3NvFx8PDwMXHy/TIws7IyMLbwcPF3NLZ09bVV9ZVUF1cXFxfWF5RVlxZXF9dX1pdV1BZRFldXF5R3Nvc0N7Y0tfU0tjf0dDZ3NBUVtTU1VZXV1JTWV1WUVNYX1NQXFxU1lFFRFleW0daX15FQkVZWVlS1t/F29rBxsTe2cfPzMXFwMbY0tnF29/U0N3WVVfU1VRTUdVUVFbV1tFVUlHUVVNeXVJcQE1GREVGWNXXVFNR0dfV193Hxd3d3t/TVFTR0tPT0dDRVVxdUFNRU1BUVFFQV9RVX0ReXkRPQ0dASXVJQ0RaX1Xc2tnZx8HAxMDOy8vNws3NwN7bwcfZ09/Z0FFS1dVTX1JQXV1bX1JQV11U1VdTXl5aREFCR15TU1PU3dBXV9Lc09PYxMTF3d/f0NVX0dHX1FXVUFlHRV9ZXl1RVNDXVtfQ09VXV1VRRUFGQE1OTkZYRVpR1tbX19/Z29vZx8bHxcXHx8XZ28HGwdvZ2t7QVNXR1FRX19DQV1fT09ZV1NRWXkRHTUNMSUFaW1heU1ZXUVBV0t7f2MPD2t7Z2sTd0Nnf3d3R19RRWVlcXFxYUlZRUVJU1tfQVFZWXEdOT0lJSE9BRVtHXFRV0dTZxcbAxc3PzMHHw8DDwMHE2NvS09PWVVJR1VRWUFZUVFZS1dDR1NfTVV1FWkVGRkBbXFNSUlVU1dXX3N7f0tnE29jQ0dDW19TW09BUUVdWXVlfXFxSU1HU1NbU097Z2dbS1lBZR1pEQUJPQEFBTUdeXlhZVd/e3tzb29vY3cTBxsfHwsbG2d7Z09FV1tbV1ldV3dbQ3NDd2NbX0lZTRkNBTU1ITkJBRkNZU1JQVNDZ2tnawMTa3tnb2N7R3NnT1lTX1ldTXFNSUV1dV1TUVlfWVVVRVVxcXEdETUFDSUZGQ0BHX11SUdPe3NvFxMPHxcfDzczG28Xf2dHQVdVVXlxWU1RSUdfWVdXf093S1tLVVlJcXV5EQ0ZERVhYUFBSVlbU097f0tnZ29LW3tPR1Nbc19VR1dVXVlxUVVVXVN/T39Ld2dPR1NVUUFNYW15aQUxMS0lITkRHRFlfVNDd09/b2NjYwcPBwM3OwMbF39jc3dFW0VXX1dHc0t/Q09/T0FfUVl9bR0RATkhIQklCQVhSUlRX0d7Y29zHxsbH28HH3NDQ3t/Q1NXSUVJdUdVcVlbV0FXW1dZV1VVdUV9fXlhdWF5AR0RBR0ZdV1dWUdbd3dPexsXa39nG2Mfa2sTf3tfR1FBRU9VXV9HX3N/Z0tLZ3tPU19FUVV1SXERBT0ZCQltFUFJWVFTT0NDT0Nzf0tHS3NDRVd3Q1NRX1NFUVFfcUNDE0sFX3t3R2NVXX1BcXFlGWVlEQkhCQk5NR11bX19V1NbQ18bawMXexMDMwMfMwcTY3NnQ11HV0NHc09/c3tzS293UUlxEUVNZW0FASXVISEBGRV1WVtXR3d/f097AxcTF2MXa2dPexdnQVNTVV1ZS19dVVFfW1ldWV9RWXFpFXkdbWlhcW0dNQURcXlnW0NbV1N7c09DZxd7f3dvE2t7Z2NzT11TXVlBQU9bX09bT393e097Z09ZWVldRU1BWXFhHQ0VERFtdVFdUVlfXVVVRVdfV11TR09PT19ze0NTU0NdUVdPY3NLS2MbY09Dc0FZQX1JcXFhbWUBDS0hBT0xBWVBcWVlQ1VdX1NnZ3dnYwMDBwMLNxdje2t7X0tDd2N7f0t/Z3tPW3NZTWUVeWkdERUVATUxGRkZeXVFWUVdX1tDS0d3b39jc28HEx8XAwMTZ1tPVUVdW1tdWUFbVVlJSUVZcXlheUlxZW1hYWkRbXVJQUFbXVFZRV9DW1tLZ293c3Nja39/e2N/Q11XXVldXVNDX1tHQ0tDT0d/Z0NZU0dZWUFDVU11fX1NYWVhbX1pZXl1SXl1eUFFR1NXS3tzc2MHH2N3c3tDW09rE2NvY2dLX0NTT0VRXU1FbREZCQU5MTk1GQ0NAWlhfXF1VUVTV0d/e2djHwcHNwczOwcLHwcHY39zf0tDWVNBVV1dSV1NdWFtbQUZDRVpFW1tdWVpaWl1YXFBX0dHS0tzb3tjexMDFxsXBx9re09JUVlBT1VFSU1BRU1BSVFFSUVlSXVhZRV9fXlhcVl9fXVBXUFRV1NRU0dTR3dHR0NDX1tbW09TX19HS0NLQ3N/d0NfQ09Dd3NjY3t3S01RUUFBRXVJeXlpHQUxAQkxCQlteXl5dVFRUV9fc3d7ZxcDGxsbAwcfGx8bE2tjd2NzQ0NDQVVdfXVJFQUJNTklOdUt1S0hNRURZWVxXV9XX3djZ2trGzMLAwczDwMHax8TE29PT11VWUVVUVlPV1VFTXlJSWEdBWFhbREZFREdGRV9eXFHR0tLc0tra29vZxMfb2dnFxdjc393R1lZQU1JQU1ZUVlZX1VZSU1BWUFNZWFBSWVpeXFhYWllZXVRX1NDW19fT19PX19zQ09bQ0d7V1NDT09fW0N3Q0NDY397awMTEw9jZ39xRXlNdXkREWkZCTE9CTEBHW1JQUVPVVdfU19/T3t7Yw8HHxcXHxtrYxcbb2d/d1tzZw8nFUN1fWVROQE1MQU53TkxbSHVMQUFSX17WUtNU2NxTxsDG2sbf3N3SwtDQ2sLc3NDf39dWVthW0N1T1d5XWVVQW0dDX9RFQF1YQlhAVd5RVsHBxcHazczc3sfazdvBzczZxtvSxdRRxNJRVFhWXlxf39ZSw9RXUVPRWl9eX0pWWnBccVt0RtZQVVxRXtzWVt1b1dhUVFHZV9VRVFVVVdjR1trfV9rFU9jHy9nE9crfxfTeVdXS19VcXUlBQ3REckJbXndBVkNHUtR308BF0cPbwApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfZzcxMW11bGF3XzFjaF84a2h6LmluZm8gYi9tZWRpYS9yZXMvYmJiX2c3MTFtdWxhd18xY2hfOGtoei5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUxNjJhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2c3MTFtdWxhd18xY2hfOGtoei5pbmZvCkBAIC0wLDAgKzEsMTAgQEAKKzgxOTIgMzIgMAorODE5MiAzMiAxMDI0MDAwCis4MTkyIDMyIDIwNDgwMDAKKzgxOTIgMzIgMzA3MjAwMAorODE5MiAzMiA0MDk2MDAwCis4MTkyIDMyIDUxMjAwMDAKKzgxOTIgMzIgNjE0NDAwMAorODE5MiAzMiA3MTY4MDAwCis4MTkyIDMyIDgxOTIwMDAKKzU0NjIgMzIgOTIxNjAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9nNzExbXVsYXdfMWNoXzhraHoucmF3IGIvbWVkaWEvcmVzL2JiYl9nNzExbXVsYXdfMWNoXzhraHoucmF3Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYzOGYxY2EKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2c3MTFtdWxhd18xY2hfOGtoei5yYXcKQEAgLTAsMCArMSBAQAorP0NLXuXm6v1cWGBaVGry/l1YW1BTXFtrb+Pc5dna2tzqXVRaYHB81c/l6OT4e+fPxMTH0f5eTUZT69DFwcDJ42lVS0tm2s3IyMjN5GxeXlxRTWh2XevZ19V0WE9CRVZ9zMXM0O5IQDw9SljPwMPKy+FbS0VRWk1ZaWnsbWrp5fve3unjavX3T01RS1dw6c/N0cnPfWVNVWRSXuDb3fRr7Gtb4MrCvsrcXD85Oj9Zz8C5vMvlWUZBRV/PzMrEzOphTVFPRlbhzcfLycDOaFdOT1tg2tHb0NpvV0tJW2zvzsjHzeDjd01SfeJ8XlZdVkhMV/PZ49jM6l9gY1xUTVhaT1VLSlNVXv1gV3Du7mRX7t9dXV9XWWjgzsvNztrqVUFJ6s7HwL/F02hNRkruzMC8vsDDz2tPTE9SXNnLzMC8v8bqVU5KSkpP5tLqdF9MSk5e59/Y1/diV0hDTWLdzdHc52xTRkRh1s3Lz+9jSkFFRkxo38zNd2NdVFJSTFdt6uRsZun4XVZJUPTYzsfL1nBRUUhDVtbFvcXP2mZMQj9M7sy8u76/wtP+VlVgZunY1t/d5tjX7mnl4XNRTnDy7t7efe5yefx0/t3d3f9YZGd42c/fb1dcVEdLfszEy+T7XUg/QkdQWeHO3XFjYFhPR0lMT1BOSktKUl9MSlLy2+f+2Nn0X1FLS0tky8G8urq8yWBTXu7FvLi1uL7F/E9SW9rM29bS8Ofp4tdyW25XSktOauZiVVxZaXpfbGpVWFRJUmffyM/X0XFTUkhNVF7NwcjL2G1aPzk/TOrJys7fV0pDP0hh99XVcV5VTVFPR0tIU+vt48vMy9xPTVFh0szNxtHqfVRRXfnMwsC+xsrJz+lsdebY2eDj19PV6vTf3t7hZk9LSlVm6tTQysHL5Wxo7XtfWFNe8mpl7t3dek9GP0Vf7dDN4V5MQTw4PlX46e5fWF5RTEdNWmV13tPSz9VzWFBNYt/MyczRzuD+81t11tje5NnI0fNvT0dMVt/FxcPJ1m5MSWfczsrP82VnbH3kyL2+y9toW1RMUnrlzsa/vMfS1XVOSUdd39XP5lxVR0BAPUZZ+PB5bPtSQj8+Pj9JYt/h7W5xTERCU+fZ0c7cY1pQVFRq0svb3eHSy9LMzNf7Zmfl/t7JxcjcZGBmXff44+Do7+5xfvHvbltbYG5tb35sYnTpz87f3N9mU0pdzcW+u77Dy9fO0dfMy8rM0MnCyM7pUEA9RmjdzsTC1ks7Njk8P0tVT0xDPTo2OkNJV3r99mRSST48QU1w4tnR0tldTE1WZu/i3PpZWlxt4+PZy87W5e7peVhSSk191M3OzsvNdVxcctjIvrzD4GJVUFP8zb29xMfMzMfK2eH+1szJwLy+w87g2OLo5udyalZw4e7uaFdTTkdGRE5eW1VPQz5ASFdsfmJOQT88PUddYVNKTG3n3N/9endUY/rs393ebFBe5Pfo2NfT0NXZaGH21crN2tvP4F5Ybvp6587JyMbNZUlFRmbNv7q5ur7S3ONj88zFwMbIxNl0cnPf2HV05d7o5uDtS0BGTFJXZ1dPR0JAQ0VSZGRZTFJbSkBMTlVVXHRcUWVxYlpJTF/g6ebj3GRSWW7Uxb7I32t3ce3s4dzf4Orcz87h3PBTRUhd693LxMXI3l9SVlRcaObl3MzIzM3M1/Dbx8PAvbzC021cbd7Z6eng6HPq5nZdZ1lNTExPT1JRSUNHTFBVTk5bU0I4Nz9FT3TY0NTuZVtdbOfXzdbw2t91aGVj+NrNy9/z6V1MREFObG3pzs3VZk9TRkFSaX3i7NrHycvOevrl5sS9vLa4wc7h3MrNy8HMz9P549/77NXd7llOZmtdcF5ZY1NWY1VPUEM/Pj5SYlluXk5PTlpuVUpNSlBcXdnO4HZjXmr42M/U2+RpYVhLXevYz9Xl9GRb9/licO58+3vl2NZ1T0tXV1/Y09DLyMXJ62JWVV173M3MzdPc1+PfzdLm0M3Q29/4e/rv1c/KztzyaE9NVmztfvfpaVxwV1FfeXrd8WlkW2NQSEhGRmrWzc/k8XRNSVhX9tHd4N5XR0pMSk1NUVRc8X5TRD9AS1/Tyd3/+1dfWURKdH7i1eTo4tDDv8fO4ujVzcfHz8/JzsbEy8jH3d/W9l9v58/N2tbc0NX37eFe+d3p2GlJT1RIUFJLSlxs6PBeXF1hVVJSUD9JWVdaXFLn6kxfV0pVamzQ2HNXT1BNWd/S0cXTdExAQVVr3crS5ufc3dDsWVjzfH7WztXl9mRrXFZh1dXY3mddbvDVyM3NysfT3N1qWuff4dHW0sfI2WxPT1vexb29y2RUUk1fdmbez+nq7FFKTVFcYFlVUltgWmBTSFRdUmtqYNr4UFVIP01jfPRoYF9j7nhs32pbeGRZaFVRYl5g+F9U6t3Xz95iaXDe0NDO+Gbp/OfGycK9yNPdbeTLzMfQ92Jr6NHLxMfU1P9NSE1OZ+nZz8zZ593t5H1bVWTqzczYYlBYVlj67HjX33RcTUpWXV1UT1hbX1FIRT84Oj0/SE1PU1FHRUVHTHHQy83dXU9PUPrX29/KyM7Q1dPKyMW+w8vPysnO1tPNx8DDvr3Fx8jd8Obm1s3Mzc7iYFRYVk9PU11u7NvUcUtLVFp27O3Yz9n2c1lVbdvgYVVNS01OTlZNTVNOS05NUlVIREZLREBJTklIRj4+RElQU0tV8NDIydjo5+XUzM3Ty8HCyMnJx8C+vr/Bx8TAw8rP0M3LycbCx8/R5V9TUk1NVFdlZlJJSVBRUV1m7tvOzd5SRElNUFlke9/a3+drUFVfZWFm9XNmY15YUlFb7N/o6WlVTENCRUE9QEhJRkE+Ozs+QElLTFZt/3NmXF/308bBxMW/uru6uLi2trW1tLe5ubvAx8vLyMfJzt1bS0tWXeze7/j7cGRSR0hMUFVbXvvh2NjjdFNVeuz+7XdnfPLs2+1iXlVRT09MTEpKSUdGRk5tbWZnUktKSEpSSERGQkJBPj9BREtSVVZgcuHu7Oxs997Vz8zV08nLzszMxMK/u7i5vL3CwMC/vb67ury+zOn85+bh2dzV19HP7lpTVm7f1dfP09/ffHhfVV1tX1pcUk5NTEtFQUNES0xIRD46OT5CR0pMTkpEQT49QVBfcndnavfv/mpiZXvUzM3Y5OTe5uDU09bU1dvd6vXu2dzY0tLS0crJzdje3dnSysfHxsG/vsLQz8nFys3Nzc3IwcPL1dPLyszL09Xb3uB9U0VAPj5ARUM/Pj9APjk6PkFCPz47Oz1DUl5XYHJ7+m1VTkxTa/rtcG72eHVrV1Zf7s/L2OTb0s7MycvP0M7EwMfQ5u73c/T76tfNy9B7WmVo3crIxcrPztrzZWTp2dXNyc3R1dLQ2dfWzsTDwMbQ1Nzc4mxaTUtOT1FVS0hSTlZVTFBLREE9PDg2OTw/RUNGSUVFRkNGSVn77OBjWmZXaO1mbPLkzcvT1trV2NnS63Tc0MnGztTU1tDKyMvQzM/Oy9ba0tfOw8TEwsC+xdVmTm7h1sXM3d31euR79tLMx8bHydvc52lqV0xSV1ZfW0k/PUJLWlRHSEI8Pjw8QEVPT01JQURKR0lKQUVQUmRiU1NMTExOUlR41czIzel66t7RzMzQ3tbV2NLr5tXOwb7H0dfb3NvZ3NbJxsfBzt7Qzs7T2tzd19zh2d7n083Ny9PYzszFwMfXbXd+afZyVldUT1paUFFZZFhJPzo8PDs/PDc4Oj1DR0lJSkxGR0pGV+Pi3ep39vd0+PxeXHbe0c7ZbF1bVm7n3N7f2up4a2T808rEx9LPy8vGytDLysbFwcDIysrO19/l4dLOys3Z4GBo9trQ29DOz8rT92hx6Oz1bF1KSEVETkpKT1NlW0tJR0hJSUhJSk1PUFxQTFVbb2xeVkxYXFRXWVVOS05dWVVZXXz3XlFMXezm1dn5aXDs0cvQ2tvS1ODd2c7GycrM0tDSzMC8vsnHyMvMztPOvr68u73AzMrJy83d2trg5VlIRlJRUlpLRTw8PUBJPz9HTFdKT09bZk9MQUJGTFtp5ltVV0lSTVBYbN3o7GFQR0he+djvavxYZlhOUlZ0ddzfYFdTaG7k39zNz8nJzMfNxsfHxcvKzMrGwMTIxcvIys/K08/Ozs3icmzbx8PEydB9UVBSbWRie21dQjo3PEtSYGBWVk5MSUxQTlJWY1pMS01yZVteUVZPT1JjcF/x49rlX1dP+N3a32hpUUxJTWRcZ27v42hWTvrb3NPm3nxdffLOz9bPz83e4evRx8fDy8nJ19ndysXHxsjEzNrp2cXAvsfM1Hr5eO3p+fJw8GpORUBFSE1JTFtRT0xYYldSTFZaTEVBRk5aT0tOR0dKUmd34fttalRRTmzWzc93Y1VJSVF+8fVmYvhbVE5a39vU2+Dd6+ji0c3Kx8vJzMzQ2MnHwsLIyM3LzMXCysrOztbkbmLVz9HP6vhiaWlw2eLl5XVZU0xASVVf4XRaUU5PVe/9ZWRUS0hIQUtjWl9WRkA/QUJUYV1qW1RVWE9b3tnU2HRdXWBTXWJVb+zu8f1VTVle28fKzdThdOjX5drT19PR3XPUysa/xs/OysvGv8bFxM7X29jjz8nRzN1YUFBPWd3Z2tPzZV9WSElZV+/iYWBYTEZQWlX+9WtubldMUk5YZU5MS0lGRkpHT2FcWlZOR1pw9tlzY1hPS0pgW19iU1FOTkdQbeLIytPZ19LSw8LFxM3S3t/978/LxcjFv7++xL+/xsPHyM7U5nHf2M7Q6GhUU01Ucnnm9X1fUElBTV/i1dvjZ19TVGNiX2BdXVdXTlBicv1hX1ZUTERHSEhITE5VVkxNZfXl9WRUSEZGT11WVWZqX1tbW+HMx8HH0eHgffjWzs/P0+DzYE9h3drOxL/FxcnLxcnLx8DCx8bU2s7Q0uhfSUpOTGDydGbt3OfmXFjp8PD+6GBSW1Fjffzr4tlfV1BIU1Rle/lgSUxDQ0hJTU1kYVtSRk1c/uLg5lpfWFpoVk9MV11PTUZOW2Dp49Pl4dndzs7OzM3L1+JuZOzoz8/LzM7KzsbDw8bDv8HK1OXc4NfebVdES0pRWmzv59nT2f1s8tPKzNfP72VPT1plb1t1Z09EQkFHVGlhdFhNTExOUGhWZfT6Wk9LTWD4XGJoVVlZblxxW2DucFdNU1ds1tvm5WVfX+/xzMTOzd37X1504MfEzMvbcWPd0c7FzMPDzNzj19PGwc3Te1RMUV1X393b3nhcVv7s18fO2OtSSEhdb+Ha3d9uVExbXmzj5/9eS0dJV1pj8fZ7Vkc+P0FNePRsV0pFSFzw4t3f7FxKQEpb9tLV1OpSRENW5M3DxMTS8mBx8ObIv7/I1/po59LIvr67u8LS59/by8jM12lNRUpYZ+Ha3uRbUFBf+trIyNV3U0xLWevZ2l9PRkNBQ05k1s7pWUg/PUJVZ+n692xPRj5IWenP3W5WUlVS69DFxtDa5+plbubZztltVk5MSF/a1dbd3+zy9+jXzsfG1mpYYmJs2NDKzdXS0tnr3cnIy+1UT05RVtzKy9Tn5O987ubQ08/UY1RPV1zq1tzsXF5fW1xZ59fd7k5KRURGTWFlYFxZUkpITlxeVWJTS0dLXHnq5ehxYGBu+PPn6fLuXlFNT1zrz9Lgdmt0bnPZyMTGx83hY1/k1MnKycrU29jVz8nFyNDd+V9OU1fp093h7Nza3djPzNbm3+ZhTVZZZ2pNT05QUVBhZPXjb2BVTUZNUVTvZFNNS1FMV2bq12ZaY1hLS19y19r6+WFt7s/K0svW6mhPS0tZWXvhY1hSXm7+2dTFyuDvbWJg8N7WzdTf+Pjl1MzOy8vW3/HwfOje1cnN4WJu4tbQzcfH0utrbFth7tzS4mhPSUxY69bKy9dnR0FBRlRXYl1OQj1ET2D08fFmT0tOWlNfcPLwXk9HTWju19nh3OZpW2Ng9uludl9WS0/628rFxcfR6/jb1NDGxcPK3mpe7drIwsjL0OFsYGVk6eDg62JQSlX30MnNz9t+X138/d/d8flVSkhNZufR1d34XllSW2Rrc1pWTUVBQ05k431lZWBrbeng6OTu6WdPTlBn7NLLzNDh/2ZkbfbkeGVUSERDTf3OyszV7GdbXfXf297X4VtOTmTy1cvLy9LXzc/NysjKztTe5Ojh1MvO5H7+ZWf33c3N2u71WkxNUWvf19nZ6FlXX1VcYmFTTUQ7PD9DVP5iWF1UT1ZTb97rfXlpT01ZX/TX3/fwW09t7uDSy9T2aU9QWVb60dDe4N3czczMxcPN29n5XXF28NPP29nU4drP0s3M0N/0ZldhXVnu2PpcWVRafujUyc3td2JNSEtV8Njk3Njpb/X1bvv8WlNIPz9BQkNWXFJZXWzk2tLLy9fc3uLk9f774OpjZWBaaOXh7OttXFBNTU9PTV73eGdkbuXn7tzOz9/+cF9WUlZ81tfcz8zOzcvFxcrP1tTP09nf4Nnfbl9peu3n29vc7mL74OtxbvDwdGNq5e3w49jedV5PTElFRUNEQ05XS05VXHnp7uzicFtkZF1PUV1mbVpecGVp7uh68HRVXHN86ejp2dPY3dDNysnJxMbL2ebY9lhYXXDrb2bm4OPQzs7P3dvZ197s7W9eVlVUWGFceurv3trvau/4anNz8+x54eb8bvfe4/BiXFdPS0dMUU1VX2VhWl/u8mNt8e3p4d7g/WpdV1ZVZvnw5Ofve/pcVmJiXFpdXlli7eTf5drS0MvN1fHp4l5YV27r7PT+3tvW0NHN0tPY0cvV29bT5Wxtc/jzZ355+fBiYlp75vnq6+h+6eB63urq5u/tX1dPUE9GSUxOTk1QTE5UVmVnb/fu7m7n6W9zXlZPUVBWc2j58N7ceWhget/e3djV09XX4tbNzsvMz9fc4vz5fffo6d/9/n5sdWtiaO3g4+j14NxwZV5ZX1xeWVRbYmNw5u3f3+PQzdTY2+Dp9XDq1tTi7n1dTklLTVlbWmBfV1leXFxtcfHwefZye+vf4Phxa29oWVNQZ2BfZV1hXmBnbXFoc2VjbnTx4NXY1dTe4O1y/uHW2eF8feHe5t/SzcvJz9bS1tLMztvo7nJeWFZhcmlq9HVu8vTz7N3e3+hoXnP48+p6anpqWVZPS09WU1BTUk9SUk1MTVVoYlhcfu7w3Nvf629gYWNkbXNxZ19eburr8eLV1trb5NnOycfLzs7Q4HpoZWz67HFeWWJ0fe3n3dfV19/s6u/x7+Xb3ed5Y1VXXVZaXGdkYHbt6uba0NLc7+fc09Tf6X1yWlZUU1phZ19YU1FSVVxkZH7u9HBZWGr45une1u1eWl9iX2NtcllWVlNPTE5ZcHnq39/c2dbf59/h4eb6e+jg6ebm6/lxaebn9N7Sz9XPztDPy8jKytPjeldaX2Vi9vF19mtqbXfu59jW4O3t5dzjbOjeaVthV0tJR0tMS09PVVhaW1pbXlZSXFlSYPLo29Tb/GBbYW1seePj5vVrW1VXYHfo3NrV0tfT0dTOzdLU09/rfXt+amNeWFpt8Orv7e9wZnLu7OTX09XU3ep7aGtodX3x8ej0YFtZXvrf0cnLz9LU2Nzu6uDh6nFdUUtIS0xPUVVWYFtYY1xcYWlsee/d1dzrbmJaUFJfcnL8bWFrV1RWUE5a997Z4+Lh5ebf4d3W1NPvXmVcau7o3dbV3eLu+2lte+Xf3dPSz9XXztTZ4fl1furt6e9+/HZjYmx05N3b5vXxe+bb3/Lo3t9sV1BNSERITE1OVVlUVFFSYWR1furc4nn+8Hrn8HBlX3b2emj57G9nWWRt8NTQ0dHd7tvl9uHd1c/T3+V3aW1ibHTz7m1haWFZZmJu4Ojk3uNsbXX13fR8+OLn++3u9/Xl+Wv8fOva19bV4tvQ1NLX1tbc5mBMTFJPUl9sb15VT1VTWGJjamz6fmJfWVpu9nZoXlplY19iZmt783NfYHdwY/DoevXg19Tc4Njf5efr8urt8+Ph2OJj+m927vDl6ur74vlz+HXi2NTY3/335Xzh7Xzl6u30/2vq5t3a4d3f3ujudv7uXWBYVVNOTU1TTVNNR0hIT1hdZfn27N3p3OHp19Hf/GdbcmhpdnVsb25dW1dcb/je3tjPzdHPztrT1uDud2lzbl106+/+YVpWWnTqfe7vdeXk8fj7+N/fa15ZWnbt8OjYzc3d6PNv8evg2NbW0NXf3N/r5fFiXl1YVk9QWFpaWlNQUlplWlJYX2BoZGRx6uLY4GNaUVNcX2V55uP1a2BgZvTr9Onf5/Dz793d59bP1Nja4/Vzb+fZ3eRwd9zm6/Bna/n66O732dHg5fxfY2t+6+3i1t/u7F1UYVtn6tzP0Ors5evd3Ojk9XF9V01RS0tTS0lLS1FcVVhRTWH07uLf2M3U3NXyZWxcYvL35NxxYF9aYnB86eLc1efr2dvTzNfg1dbX2mdYXFto8vZuanj/bWVqW2JqWV3q3NTP7HJsWFhjbvrb1dvm6OHk3OXu59POz9R3bXR06tzd8eD3W1xcWFtqXllPVV5dWVNQT1NTW2Fjd3Roc3tn9+9iYWvi0dj1Y1dPWVts5efY0uh0+e/Y0dDOz8vJzd7m/XHz9ODgdGx4WVd2en74aF1m4tTV5efoe2VifOro29Lvfe1refprX+fa2tnsfm5na/Dc3fJsZE9MVVNaXFRWXFJOUU9NUFhVXF9sb+3h8+ne297tb2/h4N3Z72JhXFVieuje3Nvo7ung3tbUzsfKz83Y/fJ1ZWlqbXVkU1VaYGtpYl1eeOn13tz45fBwZV5r4t7y3Nrk6enh3dXLytXW3WliX2Vrcvz6X05UVFBYandr/eXtWVZaTU5RVFBSV15dWGNlXWJ4eHDw29Pb2NvrfmpmXmx04+V99Or+bOzZ1c7JytLa5Ozl3dza2d3b7WRdamJceXxiX3Lw9e7u6P5td3ZhX3vteX7l6+zf3N3a2ur0clpbWmb85+bc1OFuWl1bWGR6dnFtX1xNRUlMTVFZWVxaYW1tfu3m5d3h39zm3vVsa19YXPft4d/c43F36uLq1M3O0tvQ3Pv14eLo2Nzd9fZtXmhu//zf4vxqY25cWF1oYWLw4utvfvlyeuXa3t/TzNTa2ultXWZxe+TU3Pb/X1RSX2dh/ub2WlleUElJVFNOXH5rVVRUWFpdXl1v9/X8e3loX2X+c2Xo1d3n4+To7uPe3tvNyc3R0tDd5djW2M3N2Nns+/548/99+OP2ZltPT01SaGVs3tTa5nnx5P7x5uPg2NfW5GFfWVZbWV/w6P5wav7+anNtXnvl7u5tWFRNR01OV2dmZV5XVFpob15j3Nnc2ulwfmBifmh46+nt+O7g39vc6uHX08zO2t/b5t/b4dbP1ubt6fxodWpWWnrm43ReWU9KU1hb8dnZ4/D1/Ovd6XrhzszT1tfjb2b6bGb+7eV+cOXm9XBZU1VnenVnYlpTTUlHSlJZXVRRYVtYXFhVXd/Y2+rtalpVWl1c+dnY9evR19rl5/Hr2ePY1tXU09Xd6e3Pyc3U1srN0eFzZ2Pn8f1rW1hORUZITWfh2dna1dvg7/x54c/V3t7b7W5VU1JQbn5mZP/b4OxyYlVZaGRoYFldYU9EQkZRVlNedHlpaWVhY/DY1dDT3u9vWVBUaN3a3t3b1drdc2V369fb187NztPeemlo4Nfa09bNzdDgdWtn/Wlr+2xbVUxHS09u+evT2Nnr8m5paujP2tjT1NnobVleWGT7ce3v39/sa11YVmRdYGtWVlVOS0xMWWRZYGVbUlBPV1lo3eDUz+RnWFROTk/32eXb19PX2+x0dH7b187Iy8vN1+v4fNvPzcjKzs/P2f5z7Nvn6fBiV05JSExMXXh65uji3tzd5ePd0NHY5XvtZVNMSEpVX2bw7dzd5PxdY2R89vH+YF1OSkVBSVpfZG1bW1lcWlvv3M/T1Nfe7XBdUFFSZ3Pp4fXd1dp3aP/v3NfMyMnIy9puX19+4tjP09LS3Od88NnT3+nnZV1YTUpMUmB3bnZnb+nq8O/a0Nbg497t3dx2X1tcY3J+4Nva2elwWl1ub3l3dWZdTUJCRUpZbG10Y1hWU05TbeXj6O3r9HVkXV5ebfr8cXv9cXjzaV9na3fq1srEw8PJ1uDd3djOycjJzNHm/eTk5+p2cGVaVU9OU1tbZ2tfYWx16uvg0M7W3Ov1fmtsel5bWFVjZnjl3+Xd/F1lXVdeW2hvXVRNSEtOT2V8dfB5anBYWfv0fuj0b21jaWlcaX5r9+v87Pfz3vlld2ps49/Tx8XEx8/W4fPf1tXNzNDYenDqcXfybWl0Z2FdWGFmXmNlW1pgfd7a0szR1Nff6O96eHhdX1tYZ2z+49fb5vH9dFhXZnXu93NbS0dJSkhQW1taXV9cWFtibWtobWJdZGxre+Rzbv5raGt7+PjxeGtdX3zezci/wsnKzuXd1c/HxcXFy9nl7nlpZ+/s9ux0Y2VfVm1wXWFYVGVv+9/d4+nq3+fp3/1scl5PWFdcfnbt2eppZlhUWVt69upwUU5NR0hUU1xnZW//dHH5dXLr73767/X56u76enFhbW5ndvL7cnRfWmby59HJycbNz9zn3NTKzMjHztvw8l9tamZnZ+x6fW/57m54cmZRT1paa+jf3eHm8+zi3tTX3eJ4ZV5ve3Dm4ephVFBPUVJmcOzd4GdRWVNPUVphU1deWlhUWWhlY2lbU15dUV74eWxpc2tt/efi5u1xblxi+HnTwcLGy8zPzM7OxsTEx8nP3+DvcHBrX2H8fXp9eOXd8nNtXlhgXVVs7XxeX15ce+fo8/XrZl1ZY/xr4tnnbltbT1ZZV2zn4mFWVlFPTVFZYGdiZ2Lw7vjj7ed0Zm1na1tfc3piVlxiZvXt5ebp9mBkbvDe0sfJzMzS2uXZ19LOzM7f3uXo9nz2eezn8G1h7+3/6+7tdV9VUVlgae/p7Pb27N3Y29fc331hWFbu4O3n5tx7YVZWcmZz9OxmVFJNT09MUFhcV1dWWWdkYGBq/3JkVFVnXVVZXlZNWFtrdO3Y5u9lZ2TuzszKyMTEycrMycjDxc3N0Nvu6ufs8ODd497h7+Da4+b/9fNXTU1WWlNVVVZYX2j64eLa5mhtYFJVcen6cvh3X1xZW3D3/fZfXFhJTFdaVldiXVpZZW7y3urk7evyYV9eYmVic11YWFhodefj8HRiXlFY/eHRz8vHx8fJxcfGxsvO4u9pY2tba/P8+O3f9uzb1dXb3Ofybl9fWVhbVVZRV1hq6drP0dnn6v1eX2hr/XZzeXtpXWD08GxsY1lTUVVYVltUT1daWFdi7vBmdH1fZGNeW1dXVlNVVVRVYPre3/PtamJlY3nh1NTRy8bFxcPCv8LJx9Lp3Nzo/fHveu7f2drb0M7O2uHwYm9mVVBVUElLSE1XXPHf2eDs5mVeXFhcXmlgcPD16fZy7eb9Y2hVUFtQVVZRS0xXVF1t7t7Z3PHm7njj+Xh7W1BPUU1QXXjj49/7bF9QWWRj8d3f2M/OzcbDw8TDyMzR4t7h8ur9XFv1+nze08/Pys/Y2fL99WdgXU1FS0dDUGXi2NHR3dTsePD47OjvW275XGJ+7fPq6mZsXFBVVlVUTUdKU0lJX3d75tz+/vZxZmtvXlhMSEtISFJqcnngdmhlXV5z5NjNzs3Ix8fHwb/Avr/Iy8zR2NPa5+1q7+5859bMzMfL1NrldlpdX01JQ0BAQUdRcfbo2enp/Wlubvp3cF1XW1JXXnLu8dnpYmdYVVtcUk5QSUxKSlZh++nV2uHb4vH8dWJXX01GTEtRYHpt6N1w83le9N7e28/V3c3LysbBwcG+yM7M3Ofd5nnn71xgZV730cvKxsnQ0+dodWVQUVFEQEhKTmRvcOTd4uTm/d3W7ubfcFpfYWTw4ufj7F5WWE9PVU1JTktCREdJWHt75N3l+nt0Z2ZcVVhPQ0JKSk9fbPji6Pzk6uHRz9LSy8/Px8a/vLu9vsLLzM7Rzs7a4t73X2Vq+NLO0M3O3+p9ZnhxXk9JR0FAQkVOVVdgfWxl6u/f1eJzfftgW2Fz5t7g8HZYTVBPT2BiUE9PSEZNUGrk3d3e5mlndHDq3/5WUU9JSUpNWmVs8+j+79/e083P29jP0c/LxsG+v8rM0N7b19fR1uxzemdXZuHTz87P1Nzpefjk3dtuU1FNRkZKTVltffLq6fPd0dHb3eT86ndp+/To5GVZU1RNTE1PUk5LR0ZGQkxhbO3+cWtmXlth/ed8XVNNTEJHSEtcaWdx5Or+3tPSzs/LyMfIxcC+u7vCxcfL0dPQ2NrZ3+bo+/fY0s/K1N7i8Wlga/l7ZlFKQ0E/P0RKZ/Rh6+Lre+Ta5tzo7XdhXlhf/urpYV1lXlJQU1JUVE1JSU1QVnTn3vHw+mpsbejb3uZrU0xJRUhOX/Tqenru6ODh1M/Ry8/a3NfOz8XAwsfLzNbd6t7b6d/zZvPo3djKx8vN2+92cf546vlmVEZGQ0NLXOri2uxw3uDs39DR3+ZlWlpWdO3e5H5pUlZMRkxVUUVGQT1GR0xn7fLy8lVSX2Xq2dt6WE9EQ0VJXuz3be5dWt3b18rFxsnO3N7QysC7vL2/y9zVz9zPydH1aWRm3dDMwsLGy+pbWmZmfN/+UUU/PT5ETHDjc2lWTVzj2dTQ0d9fTUtNUnnj1ud8akpKTVNZZW9PRD49RlDy1dDP099YUGDn0tLW9FhMQ0RHVPfn52NZTktn3snGycbP5mVt3Mq/vr/GzdxfcN3PytDZdFVSXerRv76/w8zdX1Z94tba6F9MRUJJTn7W2ORgXFpd69nLy9nwWU5MTFrv29TdYldRSExXYm5PQjs5PUJJYNnR2G5ZXlNS79nX5XNTR0dISl3g5/xXSVJfa+XPxcbL2OXXzszGu72+wM/U1NTTyMPN3WhSXd/V1MC9vsXe8+nk8d/W8mNURD5BSktg8GFeTElTYHzw1NfpZk1KUWtj7eB59F1NTVVidvJmT0k/PkRUZP7T1NXuUVd0eOfU1/V0VUlIT2b13HBgV0ZLWnnjz83Y2P5l/dnNy8HDyszZ49/Y0cfE5WdcVV1x0Mm/v8rL1d7f1NLSzelgU05LR1v/3tdjXFpWVmDc18zWdWJYV1D53/fib1pTUU9TdGh3VkQ/Oz4+R1pf8f5gW1xea9vg5Nz/UkRLT05x7uXwWU1LVF7k2tHJ0N1139LPw8LAv8DP3M/RycbGxM/rWV33587GwcbN3+rZ3c7M2tnnWUQ/RkhTZnFhUko/REpV4N/X4GBRTVhX+Njm6HZfS0lQVuPuYl9QRz1ARlHm4ebo+WVi7fDOyt/Y8l1JSlRa3+H+9W9RQ01Z783SzNLkeHbc2MrDxMfO1nR63dnGyMjN6WZVYfXUxMLHztDW3M7Kw8LJ2l1VSUZTZentYlJNSERNXenW2d9qX1tUaube2ORXUVFGS1tr8mxdS0NAPkROV1pZT09RTl3/8N3b4WJZVkxPY3B3emBPTEpPauvOy83P0M/UzcbDw8LI087W4tTPycfEy97iefbZzMzKydHO1NPGxMPGzt1eV01HTFdTTk1EP0BBS1ho6+3wbF5eXXne3nttZ1FTV1d65d7nalJERkhJWmRcW2FWVXHy3NHQ2O12XVxcUmZsX1lTSUVNU2Dd1NPa2Nfbz83KxcrU2N/56ufu1s/O1N3n9N7g2s/S1NDW2M/Kx8XBxc7V52teV1FaWVNNSkhKTldhfu/u6nllann/7uP8en1pY15fXmhuXVBJQ0JFRklSUlFYVFVgePr45+l1YldTVFBUW1hVUlFPVVxy6tfP0dHVzMrIxcbEyMjIz9XV0tXV097l3tza19LRzc7Oz8/NzMfDyMvP3OJuXllVT0xLQ0NCQEVHTU5PWV1cYnB27/Zxffr8+XprdGdbU1hTTU5OTk5NUV1gXF5mavjr6fHs6GtqXlhaXVpSWldOVFNXb3vl29Te49bRy8nKzMnK0M7R1tDc6P79emvo7OTV2tfOyMzOycrFxMXJysrb6HJeaGBQUFdQTE5OU1taaW1+bVxqb/rq6+Hf3vVsbWZsYVRLSUpFSEdJUE9PT1hUT1VgYm5lY3lwXlpeWmNeU1lTU05LVV1v6d3a0dDOy8bDv8DCwcfNz9TW1tbocHl67Ovi19LP0s7U1dLTy8fEys/M2+96ZFtRT0dEQUBGR0pRWmJYWVxcamRr9+x+69nu8XVp7vVwXFFRSkpMTlJXZGNjWGH+cunr3+VtaVxXYF9rY11XUlJPVVNq6ufo9X3849LMx8rHw8bKz8/b3OH+dnJdXF1u6dvQzcrLzc/OzsrJyMXIz9Xa2NnZ22tZU0tHR01RVF1sb3RscOrb19/t8G5gXlpUVFhWUVNVTklISkhJSEtISklITFZfWG/f6mttYFtVWFVTTE5STVBa6eTY0tPX1dLLxMDDwcDIyc7Ky87X2+L++X7w+une2NXV2dDPz83HyM3Jy83P19zfbVdWUElKS0lKUFhYY2BiZGRrZmr0+PJwbGhdX15dXF1QTFFPTlVXVlpcWlpVVVlbZWr/6Onr5+/obFpUVFBMT1RZWnvs3dvd3NfQzNDRzdDQ0tLc4eLi/evf7Pzr6ufuaunl3tvZ3tfRzsfBwsjIzM3S0+F6XVdWU1Vca15ofvVlaV9neu1xcvD5/HlxYFlRWVZWTEtKSExNS0hKSEpOTUxTVFZbcHV2c29nXl5YVlNSWF5efuXm3tHP29rY19DLycfExMbFx8nP1trifG1ybX3p3N7b09LX09XZ0M/Oy8rO1tPS1t3q+l9VVFdbWV1WU1VbWFRaX1df83d7+HRlZVpRTE1RUFBPT1ROTlVTVVlXVFxeXWj6dmt0Zl5mYFxcW11fWVxxcnH8/H7g4Ozg2drf0s3MysrMy9DY3Nvi8O5kXmRmZffu5djT2NPPz87NzMvL0NLV0tfY3Obl7nXt3vT2+3FmZ1tcXVdaaHnt3eLt9vpbVVBKREZFQUhMTUxPTVBWUVFZVlVUT1lWVFdmYFhZYVpcaW706+tuefPy59ze3dvPyMrIxMTHycnM09XZ3eTo6eXm73V75+jb1tTPzs3O09fW2Nvh3d/p5+XoeXRz/nZsWmFsWFhaX1pcXlxeZHLu5/57ZGBcVlBMSkpMTlBMTlJUWF5fbXxvZ3ZvXmRjY2tmWFhWVFpv4eXs8Xpx83h4en7r3NDT0NHN0NPW19zo5OX1X2p4+G5mXm/u4tPNyMrMzsvO2trZ4drRz9LV2dnY19Xg6m5x/O5zZWT392lzbWxld3h7bGJWWVhPS0lIRUZHRkdNS05QU1leWVZcXVNOVFVbWVdVVlZpb+rt59/77ebs9Onk1M7N0MzJys3Ky8/S2dDP1ODj4Oj+bVxhafvb1NDPyczOzNHe4+3z7Oz17+fd197d3+9jXmZfW1pVXWdfV1xtYGppeGpfX2BeUlBRUEtJSUpKU1Vo/WZ06+phYWNcVllZXFlUW2xz8+zv9W54+fNpZG7m8t3b3d3d087L19TY2N7d3t7m9XB4a1hoZn3v3dTNy8zMy9Xe1tPV1Nne3NvPzsvT1NTf5uZrX2picvX3V19sZGzpfWNgXl9dWElLTkxLSkRDQUZMVlhVYV1ZW1hLTk5PTVFNSk9cY//n/vF0/3Tl/3fu3dfQ09nQz8/LwsnNy8nMzdHd3dzn+PBiW2Ps29bSzczP3dvZ9fDh3urf2t/c1N/T0e79/mxfX19bWmVgc2pXXG9qfe5zZmJlVV1YTU5VTkxPTUtMT1BmcmxyZFhYWlZaWVVVXldYYWNh++11e29pa/hvefHs8NrX29LP09LMzc/R2+fc3uvq72dfYWFn/HHu2M/S0NHg2tnZ19Lb2tPS0s7V2NDPz9PT4eXq6fToeWNtaWN65nv08OxpaFtSTkpJSUlDQ0ZLS09OVVxcVlxWSkxOTkpOTU5QUlFkYV1l7nlm8+7xeXzz2dva1MrLyMTCwsPEysbO2NzY6fHu7mxvbmrc5+Dd2nFw8e737vPs1OTk29Xo3NfZ3t3m7Nry+vhyYnVrZGBuXXLde+n2YlRbXVVSUUpPVExRVFBPXWZx/m9WXGBXWVhUUlZWVVZbT11tcvxtZmNv9/fx+3je3uPa09XXzcrKytHY1trp8XhmX2JpYmtv7t/b2Nfna2rz5e7g3dbS0s/MzdbWzs/T0M7O0dTZ3ebp4t31dOzq7ero+HBWS0xPSURISkpJS0tRT0xQWlZRVE5OUExLVVJQVVdNUV1eYGlsd/V38e3r79/Z0M/N0cvFzczJyszIycvLzuLj3/N5dmtgfung3+drd3RfWF5VVmr74dvf/NvY4O3p+d7Y08/R3v3a3d/c5mN86+3r6GdgbFdUVUxDSElQVFJPWVxbZGxXUl5cbGZaTVZYXW/9VlRiZPL7a27lcPfscFht7+nZ19nUztbS1Nv239nY2OB2bGRc+vRuXHT83dTd7u3+e31tXlVfbd/V0drS09LT1dnWzs/KyczSzc3O0M7Y8/fu9v36a2liWk1NRkBAR0tMTU5PU1FSVU1KS1BMT05LTlRRWW1bVFZeW3Pk3t3d7evi7+na0dLIxsrJy9TQzdPW1Nzy9HxyfPTz5vF29+no4Nnh5/NfWF1UU11jaezb4d3j597X29TW4N/X19fR1tnQ0uDl93Ft7fb3b1lPTUdHTE1PVl1YXmliX2tiXV1WS0xQT1djX2N1aGpkaF5z7erk5H1u+X726dvg1dPU1dTa4dzf6u77XVdTWVxwamd5bmvq3+nd2d70+15XXmRj7+Hm3NfV2s/Ly8nLzczO0s/Nzc3IyczO09/h4vvw+2RQTEZBQURGSkxNTkxPUldUVVdUTUxISEhKUFllX11dYFxr9+Di3Nvk9e7r5N3YzcvKzMrMzs3N1dng/GdhWldqev7u63Bw/vHu6en0fGZYVFFPVF9kaXd5a23x3dHQ0NDR1NfU0NHSzMnHyszR2dnd3OB9X1NLSEhMTE5PT1FWU1dja2dgY11VUk5NTU9UWl9gYF9ebX3u3eLh5O79euvi3tjTz9DR2NzY2+Tscl5aUE5TWFdgZWZwfHB46efm7+5zZ1xYXGp27u7s4uDd3M/My8rLy8nNzczKyMrJx8TIy83R3N/3YlRMRUJERklKS0hMTU5OU1lbVlBPT0tGS0pLTVBQVVtddebo39ba3NnZ49/d0s3Oz8rHycvLy87X4eJ+ZFpdXlpZWVdYW11r9PLm3vB3aGdbUlZeZWZmbGVodfTa19fY19TU1M7Ny8nLzczLycnMzM3U6H5eUE5MSk1OTUtOUE5VW11hYllUUlBRUE5VWVRWWVtdZvzj29nY1dfc39vY2tfX2dXV083S3drf+GZXT05NTU5RT0tMTk9PYHr26PP7+mJcaWRifurm39/c2NXV0szMzc3Lz83HxMPDycvKzc/Oz9TZ3N94W1JNTExKTExISktLTldYWVhRTU1MSU1RU1hcWVJaWlty6erc19rX2N3Z0dTU1NXUzc3MycrO1dfsaW1nXGFfWVpYVFJUVVhkbWJdW1hZVU9RU1RXYmJia3Pw4t/e2Nfa29TPzszKy8zNzcjJzczIzNLb5ep6XlpYUExNUU9NVGBlbWdgXVNOU1FQU1liZl1dbHB2duPY2drS0NXQ0M/O1t/a3N/e2tfY2dzxYFtWVFFOTlBMS0tJSU1OUVhVU1RTVFZUW19nZmFne3V94tzT0s/Oz9DNy8rKycfFx8rHyMnIyc3a8W9zYlZUWVlQTUtLTExOWVlQVFlUTlFTVVlXVllZVl1rcPzY0dLQ0M/Jy87IyMrMzM7P0M3KyM3X2dv0aG5eW19cW1xPT1ZQT1RZVU5LSkhKS09ZWU1PWU9LS05XW1dlamZ07N7c3tjP0NHPzczJycXH0dXY6v1nae7se3F0amlcXWhqbP91d2Vhc31vaGFgZltdYWj63NTS1NjW0tnVzsrHzM3KzdDO09nffnH6XlNYWVpdVlFQTktMTk5QX2paUE5OUFRPWWdZVmdiWVhfcvr7dfjl/3Ln3dja2eHm3djQy8/Sz9Lec19RT1hea29ZXGtmXF1ucWhmYF5hXGB58G1ueF1UVFJf+OzczszOy8vQzsjFw8TGyMTCx8TGz9LU4er9bHzj5/L7ZFZRTUtNUlNTWlFMTkpHTU1MUFBOTE1MTlFPTlFQUlZcZH7Z3dnb6OLb5+Lj5+nl3+/4aGNsfmxvaW5xd+/k1trf6O1ucG91/u7q49t+YlxhZXJ96N7U0s/Mz87Oys3Oz83NycrIytHc7PlaXGF18erx4Of9ZF9nV1NSVVNUUVVaXVNddl5bVFNZX11ncGtYXF5SV1pjd+rt7d7kduXqZmlkZm1iVVlfWFReWE1OTVFcaWR55HlgfXRn/3N55OHt5Od3bHtrfvX74NbPzsnGycvIzMzN08/LzNHMy9PY2+Pd3uHX09HW1dXd3+lwb19VWVxcWWVoaGleVlNOS05RVlljWFVUT01RT01UVF1ncmv3dW1iY11WXFxia3Zu8/twX2ZbWGZkeunwePJ7bWR7ZWRxb/Lh83f8cGxm7nn26uvWy87R0NDW2dXf3dvYzsrT3NvZ3+Lc6Ofm6N/X6vni4XFscWx7+PLh1N/f2Njp6vb2/Hd17d5zYnByZnBrYF1eYfTral1iXVBPTUlISUpRVk9PVlVRUlBSWV5i8PBqYGtmX19bVldcX336eHjs8+/t+XH67uXY19rb2N7e3uLo3NrW0NDU0s/Oy8rN09LZ1dPW3Nvq6+TpdHfu8+Dh4uPd4eLu92Bsd238cmd4+GBseGtcaWRt8O3p3uthYmNiUFFPUVdZVVlWTE9WUk1WVWd2cW74dGdya2BVXFxfXWhk+HVaX25nZHVu9vv39exoXV9pZVxfYWV1933f4ubb1+bo493Z1tTUz9rd39fW19LQ18/OzMnNz9HOz9HX3+rc39/f6Ozh3OXp3+bt2+Di7XFqcGtcWmBSTlBOUVNNSktMS01UTE9XWVxZT05WWlZXXFBibG1vZlxnbWRmaWZdfW/u5vB1825sb353Yn1u49vf49rj3dzc9nT3/9rd6Onc4tze4/X38ObU19nV0dna3t/o4/Ho2OHj2tvd1tfZ2tnf1c7W2Nnk5+j5cGdrZ/HtaWNmW11iW1hbVlBcVlBVV1FYWFdcX1xaamxqamxhaGdiX1tWV19ZWVVTUlhYWVNQVVteXWRjb2ptcnVqY3H17Off3Njc29XS1tXPzcrHyc7Q2dfR1t7Z1dfP0dXW0NLNzdfc2dng297c2tzq5Ol4fuvyePBuanFjXnr2aWVfVFJRTU9RTk9ZVk9QUlFYXVlfa2Bjb2FcZmNebGxme25bYHBlYWtsZ3R0d/F7ZW99YFlaV1ZdXF1mXlpjbWZv/Ojk3ufj4ent49ve3dvY3dXTzMnLysbGycrNzdDO09DV3d7c3OHi4dzn4+7h5vDn4ev9+vD5aXBs6Ot4e2xiXFpaWFZgXmteU1NUVVJVUlBQU05STEtPTlBTVFFPT1RXX11jZmNkYWdmYWJpb+5rZ21r9u3r9/x0++3r8/fv6eTv6ezp4tjQzs7Nzc7Nz8zNzs7JycvMztDQ0NXO0drZ0tfe6HNsdXBicmFYW3Z1eXBoZmxnYXhsYGRyYl5cWlxpY19nX1hgeHj5fX18fWZfWFNOWG5oXlpcWVxUVVZTT1xgXldSVlRST05NTktXZGddZGRla2736OPl0s7O1tbV2dvW19bS18/L0NfS0s7MzM3NztXPz9bd2NTY29vt8Oz43dbc2tfZ3N/j83Zwbvv/aWRiZVxXU0xMTE5XVlNYWFhRTk5MT1dq+HRrbGhkXF1jX2f55uj4eX1tbF5eXFhVWVtWUU9SVFZQV1lYXHfv73396+Lg6NjY3uHY2tfX08zIys3GyczQztLS1dLPzuhs+15aZfv96ufk3uFy9eZ8/OHY2N3W2NLVdXjp8uzc3t7f4e7Z51lVU09UZmxmWVxVX1FLUlZPU1tVWlNWVG5XU1liW1lYVVVTV1VmT01PUE1XXF5bXmRebmBueW9fbu/r9N/W0s7V087N09DLyMnBwMbGztTO09bNzc3NztLT0dfc5Or06Oj69uR7dGxYXWlnaunu7+bre/RtXF1lW1x9Y1xbXFZjYF95/mJo8nV7cmZaXlVTWFRMUFxTX2VnYGhcVlxWTVJUTVFPUFBZVFZlV1VhaWX37/F87nzv3u70493f0NLT2dTb2dLg2s7Lz8vNz9bY3dbZ7ODUz9bPz9LZ2uHZ2Nzb1NHSzM/O1dvr3+D0/Or3dvZjW1VTWV1WUE9WUlFeWFRPT05SUU9PVFRaZF5dWltZZW1eZ21aZGNWU05MSk1MSUpOTlxmXltaW1p1dGh08PHV0tja2drgz9DS0c7SyMbLysrO1MrR09be6dnd6PpzXVvy/vju6OzX3/Pv5md24+fd7ODg2Nng4t5rdd30/fpmYf5nV19ZS1VYWGlbXWBkaFhnW09eXmFdU1tga3dp/GJYX11cVElLTEtMTE9ISEhLUE9SXWBpaGx7W11i/OTs4djU0M3Jyc3JyMTEyMjJysnKzNHe3+bb2dfX2d7h4urtbHJ2fG51e2dqd+jd3+Lb193m4etjXF1ZXlhPUl1UWm1hXlxcW2dcWFNUTFFeV1BZVltvXWf9cFhrZVpUU01TTkdERUVEVF1aV1ZPWVpbWWRaWXjx6uTp69nZ0s7JzcvDwMLIzc/Mzs7QzdXNy8vO23n98Xzv+Ptr+/js7nli8uHc1NLX4tXTzdDa6+n/e+jtbmjx8NzY8GBpX276b1xaZGVtbVZOV1Ri/21WWGJdXllNSUZCSEtNSEpNSktMQT8/P0VKSEhTWVpZZF5ha/HXys/WzMnKysXJysjCv7y+v76+wMHDy9HW0dPN3uXj819q7X55++Pi1+Tj5OV+7ed0aHLo3dPa29nb597j8mVna2t0Ymx4a2J4+XFramZucmlvamNfX1lZWVlaZGtqcGZfX1xPS0hJSklHRUlFQENHR0xPWWh++Ozr8PPxePrh4t7SyMfAvr6/v8LExsvMys7TzdPf3NTc2ufu4d3g2NXe4Orfb2ne7fHP1c7FxsrExczQ1NLb1uTe2mxWZl1ZXFVdaW9l8nxZTk5EQkFBSElKT2BeW1lkW1tWUlhVT01TT0pITUxRUE1dW1hh+3VsfXFhaGZ25eno08zPzcbGyMTHxcXHysnIztLW2dfQ29LO09nV2/lkYldPTk1XWFpn5N7h3tjh3d/g1NDR19DP2d3c39XZ2s/R2+je7WhiWU1NSkdKSkpNUk1NV1NMT09TWFhQTVBPT1VWVFZQUFRSTU5OS0pKRkRITE9QVmPq5+PW0tPU1trW0tHMyMfEwL+/wMTHxMXLysvQ0tHb+Hlnafb2Z3r5b+/p8njw7+zj7Hrr5ft77PHg4e7n3Nvk3enq8/5kXlNTUlVWVl9dWmBpWlhRUU5VUE5OT1BWWVRWUFBNWU9MUlRNT09JSUlISFROTlpgW3jse/57YmTkbGjv6+/Q0NbLxcjDvMLAvcDJw8nU0s3X1dLcz8/Z3t77eu9nWWxuXHJ9Z3bi6tnP09LIzdHK0N/T1evh4m1r+VlWX1FKTkxLVVJIS01FSUxHSk9NT1xXT1teVWhrUFhmWlZaT01SSkhSWFFbXVtcYVVSXFdQXWli7Orv4NPZ2tfZ2s/P2dDOztPO09nb3evZ1+Xf3d7p3OX593Zfa351eezv7dDP1czL1M3N19jV2+jY193Y3O7c3O3f1+D27WlVWlJKUFdXVU5GRUpFQ0tGP0VGR0tNSEhPUU9XUE9fZnbu5+3383x463NhfuDh4e3r5+fj3NPc5uTb3N7p6ebX2NfR2NvUz9PW29n17P72cltPWV5YWFpfVmJeZGVgXP7h2NTU0NLMz8/R1tLHxsbFwsTGxMnL1Hp74vr9+eju/mxaW1xQUVJRUU9OTE5STFBPSVBPUVBXWFFPVlBSTUlYX2Nj7+nn29bh1dLSz9HT1s7P1tTT39fb2dLU1tjP1+Xq9212XV1pb2573Nrf2eHr6Xzw7PRsbfV9eex7aW/29fft9+zY2OTd3Nza19POzs7MyczOzM/V1M3O1t/j5+L1d3xkWFlmaGlnaGNtaVhVV1lbX19eYGN15O7z+3RqcnVjWl1hXGJmamhgXmRsam799+/o+vt2dv51fHx85eLe1tjf9PH993lobu77e/Hx3d7d29jS0czIysvQ0tba1t3i4Onf297V1NPd8HZ3b3RjaW1y7nvq6N/n7+Td6d/h4uZza/7h4/BgXmdvYV9lZV5odmRjZWBqfF9cav/y3uXo6Oj+/Ov7cHtXS1FOTExMTVZUUlxkUE9WVFJTU1dnZFtffGN+4+3t3trX0NLj3tj+8ODf3t7b0tTZ3tDN29fU1tLU2tvb3+fg5+LT19zg49re5m5jaFdTXFllXlx2+mxw69rb5/Fx6nttcmJbZ37q6u1y+Op0a3BrXF5aVUtLSU5MR1JkW11fXGtoZ0xMUVleWkxNUlNRTk9NV1lm5+B3e3P+bmZjaOve1s/NzcrLzc/Y6uPb29rf6uXp7fJ+e/x2/efT0Nnd4t/l7m5mX2X56m5w+vzq+nBeY2Nsb2RZVG/tdFdSVmdjY3jf2tLR2NxsWltdW2j47eDa3+r5XlVST0pMTUhISUtQTUNES0pLVVpdaF5dYlpLSUtLT1tWXejp5NjtavJ+ZnPj9OPY3NPO193T29/OzNDJxsrHxtPe3ezu3Op+2NXZ09X8b3RfWWZaVGl6e/r4W1BQS01ZUVz1dWNaVFBOTExTW1xs5trX3/bo93B0+HVgZG7t2/hx/Wz7e/R67N/j4eJgW1ZLSEdFRUxQV3V9XGz/XF5hVFFXVFV0a1h1aVtjYFxu6evczdno2+Xz7m9+29fVzcjP0MnKzszZ3tbW3M/M083R2eDlcuze5f3d7mNfW1JUUE1cWl9t8Wz77+x3cllPUUtMUFZRXF5dX2dYX3NkZ/Xw+u16bGdhUl5dUWHv6trS0NDV2P3+aVtnbXBq9Pj453NseXN339nT1d/b4G9lX3Bya/Ho3Nvh2+F86u5zcHb65trh7tfW5tzc6ufzedrW3N7O1+XZ3eLj6vDd19rRyNbd2nxfWk1OYGRf/OBrb+1qW2FVaeD0aXVmUVBVTEtPTF7w5+bU3WtoYldVWFJg7/vw3t/34tvg19nbzcnNzM7P1dbW5+3z8eXY2tDNzc3M093t6+3k/ufa4tjt9PBwVmBjXGJZW2NsXGZ1clVjaPrj3tnX0t3j/3Nn9/fg39XPysjMzdbZ49nb3OLj6exuXlpUT09ZXPxy5NvX3+38aFhNVFhaV11l8Hz3+GxmZXv07G/43dbe7eHidXn36tPXzcO/xMjJz9ra29jOz8zFxMrP2/xu63x743N629nd3O1WUFdTY31u4M7lYlxSRkVLR0xVUnDV6uvm6+3f6n7d3Xvg1ODa2+xq7e7gzs3Tx8vZ0Nd9Z2hST1FOSVxdWm9gX/x5W2j6d23W7vTd8l5cWVNv5eDWzNjTytPe4H1k7Nvn3M3Uzs3W2trk79vY3dPQ29HU4nB2amHz4Ojl+F1kY1hPU09TXV1XaXts6+LtX2dbVVhXUVVRT1NXTEtWVFhoe2jp3+vj2e5ve1tVXV5YefPt0cnX39n1Y213XGl0ZvhrTEtMSkxYWljt5OzY1PFxbm5n/3h32dvd09jk3/lvdN3rft/f4OB7aWlj/Pnb6frsaW3/enRtcXdjc3N0//Hb5+jhd2RXUlpWWFtWXFFcX1FWWVpcX2BcWF9VXFJJRkE/Pz9ARk9WUGZdV1ZXXmFkdPbw/Wjl8Obl5eLVz87S0dHSztrc6un3+2lqdnBgaHZtalto++9+6fJ3dnh3e+74/XlwaWxjXmV2dmhaT1JPTk1ZYWZ+5uDl+2Vx9PR36/Tp39vf29vj3uHr8OZ3fuXsXlRPTU5OTU1VT1JcYFxYVVBcXlNPTUlHR0dCQkVFSk5PVV9e/N7c6e7f7N7d3d/Y1tLKys7PztDJys7U1t3n6uL4++X2dWFbUlZVZPv6Xl5pZWVeXVNkY11r/15qbXvrcGJpdGBp9X1ZZvBpbvrtefLf0d3h7v3t5nT95nn26+Ds6Hp49utma2tYWllbU15VWGdjVWtwYGjv8mJuWVNXWU1TTklJT09RYl9i6trp2Njc39ja2tPX0MrN2M7O19TO2NXQ29vX3e/2bGZqZltofmr+82NdcGBgefbv6N/f2+l4dOjs9eXj6uLn9d7d4+j9X2ZkW1xwbGj3cXrj715tbWRocWvh1+fa0dLXz9Td1d/35N729vZfWWZcXnro5dfT6t3fZlZfVE5OT1BbXFRdX1Zc8/N62NfZzNDW3t305t/V2s/M0Mza19PX9ePY2+jl3+ba3dfd5+ns3eLz83dy7uXo8O/r9uj6b3118/Ti2tz0cProcGvx7fDs297c6PDu73fv5/Hp5ubydGReYW1v3tnSzsvKysvb5uttafjy7/Pt7PL1dXz58ODV3fLzbl9VWExOUE9aZl9cduLdz9TV2c7j2uXd79fc3tjX1tTP6drb5u/e5ujj3trT7XjozmXe1urS2ftndVJSWmRsdGzx4fRs9+95fuXg6ubg3uvz4tzt8d7X1dbS1tvh7PHpbF9na3z+bltt7m7h1tnRy8jL09fa3u3r2OZfbObw7O7y7OTp6N5yXV9YWnVqW1VfXmf9WlFWW19nZ3JxaWvb0+py7+/k1tTP09zd2+RtcW5t4NbY3tvh3NPh+PN0+OH3X1xTS1ReWFVZWWFub3TwdGF8emv96vvm3N7c2Nzr4OPi2ury5nRdXmVXWGpna2tbWF1jYPjo8t7je/Xs9/589ufc3dfS3OPn8/N8WlRUW11WV1pcWFFXWltsfur3e21VWl5aY1pe9ubo4dvqZ2xqaetxW1JeZ2BcXWns9fzpZFxkbO52a1pPV1pfW1NVW2l85d7h6Ojl3931bXvp2dfS0tHV09HQ09vq4dri8lZOS1JPS0tJSlFUUlhPSEtRUFVNSEdNTk5UU1JUVFZvfmv44+rX2vF759/q3N/g0s/PzdHe6eX84uFiWmR6b+Xb4d7gcu7jb3F5XF5fUExITUxSWk9iZWJ23ntWVUxJTUY+QT9DSVZRVltUUF9jXevp7uTb5+zd2dzSzcrCxMjGwcjLys7Lzdfw9OTw39nrbF1TTFVQSUxIQ0VGRUVJS0hPT1BeXk1SUkxPWk5NTEhJSlJT/utw7Oxt+937+e1nXnrzbPTe6t3PzcTAxcO/xMjDxMnO1+ro3d3c1Nzp4Xdr4/NfZVJNT0pHRkQ+P0dESE9LRURHRUtMTE9KS1Jede/Z3una3eDQ1NnV1dfS0tLRzszOx8TEwMPM1Nfm59rf7HpcYWJ0evTedGdtXF5XUVRJRkdHS0ZHTUlLV11pemZZYV9UWlRUUUpKSVBdVm3tavTr6dPNycvLysfEx8bGxMfEvby+v8jNy83P0dPc6O36aP1obm9VTU1STFBUTUhGRklJS05WYF3o1dbZ5vzx7P939eRycvz+29PPzM/Q0M/O0M7e/2didXP2YWP5/+7W19DR3uHl6X38b2deYWzv39zV3fRxc3n+8vRtZVhYZV9ZT1FRVmBx6OxraPR7bu7l5Orc1M7FxMbGzNDOzc7My9PU1t7Wz87S0c7Q0c/P0djv8G1cXV1fU05WVWjo39ff4erf2uPc72hyWFxjYWFWaHRt7+bV1OTe5ftqZF5QTE1NV2j43un7e/ni6eDmZPtyc+7t337r3+TU0MzIzM3Q0tzc0t3p4eTe19fT1+J5a2tqa2tXVlZUYnHx/vvu7NnS0MvNzdLa43Xtc2Fu7unbz8vIyc7S0NXh9mZYWFROU2Nvav3wfOTZ09XSztLU6339XFhhZWhw/+3r3vReaHBuaGdeVU9NTVFMTFFPVVpvcG3f7n7tX2VfXGFz2tzb0dDHxs7Ly8zR2tj4cvx23dnV1eDc3uTsbOpuVF9XVVdSWE1e9Hbk5tvS4NzY2+Ln23Fec2dq/HZ4X2V389/s3t7s2+RfWVdTSUlRT1peeut+7t/g5+Tb8m3w8+vg1tPe6eXm3OLm5m1mbGZsbGNSUl9cWVpgYVBYYG13YmVTTU9UWFhfZ1xg+evc09jc497Z3ufqd2JUXHXv5+Tb3uDb1dfe721UT1Rca15hZFdj9uvd6enj8urx/uxtZVpOV2FiXV1sX2N76+JtXlxQUFVZUkpOSkhQVGViWmhcZ3597fLo9G7+8t7c3dfd49jOy87Y4HJp9+niffvwZ/nk6ef68XFiZmVfWFlSSkpOT05QX1tddO3g4uB+YVVVU0xPUE9OVHH4duLk+/Px/11jal9bWVtdWGH4ZF9p7Ori2N3u8nF0d/LqX15faXFq7vljbm9sX2H7YlhXUkxLS01NTVFVV15zX09PUUtNVVRUWWl46dbLyM3PzdLd1NLa1tXR3NvY3dfX29/u3dbW4+XecXDu+11WWFNQZW9w+2t7dFtk9HB7Zl5QT1NLTVNdWlhtd3hrX1tLSEtKSkpPTk1c+evn295ya2t28NzW2uHh19vd29PncPPo3tfV1drY2OHffWxTTE9NWmFna1pdWVRidOP5X1xTU15xdXr85t/SzNXc6u7zYnXh5nh26uXSzdXS3+Xi9eXUztXg5PPq3NrT2+b79enVzdLY2Nbg3eB8blhQT1FdX2dgWFhXXF9dV0pGSEVGTE1RTk5PWuzf825bW1ZXcmjt5u7c1crM0MvS0M7Py8nDxsrQ0c/O1NrZ3f3v5OHd3uV++uvdbF1hWFNQXFpWb2xpeG3t7dnT42dVYWFf7ubzenTt8OXj7fr57Ot9bfBvXWh+6NzU0dnT0tHOy8bIztjb3NjO0Nzr6d3d2Nna6fd5cm1aU09KSEVGSkxYT09NS1554/xkXVZl/efV1dfX29DNys7T1tnWztLT0tra6OTb2Njk3eT429fS1t7a93Tv3NTt6Or939vP09vU3ejc1t5sXVhRVWB1bmRpa1hj6OtwW2laVltfblxfW1ZddeLq9ul79NvR0+Dc3N7e2dLV1tfRz8zHxMrNzdDf8fTu5PLz8OTb3uLp5OTu697qfWBTU1dfYWJfWF9nZ+7+/X5idHb2/HPq+On8bOFtZW1eZ2B46W7zZ2FsaNzaeuPm5N7Yy9LKytDO1MzRdevi5+700N/i2+XY8OXfWVdWTEhFT0tGSUNGRU1sU01WU1BReXdUZ21u/XjR2vjk5N7kzsjRzs3R3N7Lzud4+ebu2s7U0NHU29zLz+ppd/p86NbX29jb7Gvb1utxXllMSldbV1ZPTEhQXFBJRkpJS1NTS0pMTk5RXGVpXlhSTlt+6efodXB63dXW2d/g4Nna1M3IytfT0s7M3utpYPh08Orj5VxeaGd1bGtVSEpJTVlca1RPVE1caF5WSFNaT1pjbFFNVk9ZZ3J4T1BbU2Hv3OtfdHh12szL2d7T1M/IwsHJyMvSz8jH2eXc5enczs/e6mhdVlttU0pEPj4+SUxGR0I/PkNPSUZJSElMX/RuZlpVUlvr6XN0X1de/tHW29v4Z2zX0NzV4HV75s7Q0NPY3tzOzNbY5W534NTOzdDWd1x44et9bFNJTVFXWlZSSkRHS0dKSUA/QElNT1ZPT0tRYGNrZV5ZXfDi2c3Lzt7b0M3NysnNz8zJxcbFxs3Q1NfV1d55avz+993e4/dpbF9ZWlhXTk1OUVhXXlxWWEtKS0pPTE1PTVdaYWViY2JdXWBbW1RYT1NgcvP0al5f9/bn3NTJzdTNysTGyMnQzs3MzM7O0NLRz8zO0dv1X1daVlFUVFBRTk1XXF1YSENFRUJFSUtKS09QWVxYWU5Sal9ubG97Y+7Z0s3V1+3l0tXMy8jGzszIxMLFx9Ti1dPQztbQ09TLyMnL0ONdW1xYV1FTUFRdZGpdc2ZKSUlJRkBHSElMUFxba2RRUlRaWlVhW1dm9djc3Nb37+Hm2d3Px8rIxcDDx8XN0NHb2/Hf2uHW08zLzs3hZ19cXE9RVFBXa25iX21iWVJNTkhGSkhKWmFcWGtdVF1cZWJkal1medrS2cjL2tzh1N/Xzc/Jxb68v76/wcbKydHPztrUzMXEy8vM197wY1dPT0tJS1NhXGl+ZFpOSkRESUNFSU5dWmRnZGNdYFZddlxhcO7a49bX39/u7V1c7fjt1tDKyMK/wsLFytTt29Xe1dHMy8S9xMnO0OZk8/VkZ239XWTpfm5obldHS0xIREdKRUlQWVdOVFBITFhfX2ns9/XMw8fKysnU2c7Ny8fAv8K9uLm8vb3K19Lb29zf5Xvkzs7X5ONrTEtSTExWTkxSXWtgXWVZTEtOS0tTVlFOW2xVW19PTElQV1BbW1dddNvd3Nn/Z1tdeHfa0M7Jx729vru+wsbMy8/MydfSzsvHysnO2u1jZWNfa1ZOUFZbUFhYTEhDQUFDSUhJT05TTldgU0pKTEtY/HZn7tjS0MvJzdnf53Bn38/TzcXDxMC9vsHI0ODz2NHd3NXP0M3ExtLmeWhWan1cWlVdWVBYXFBNS0c+PkZGQ0VFR0lMV0tDQEE+O0JLS1Bce+7fzdfm9mxiWWza3djOx8HBvLzBwMPM0tfT0t3d29ja1MnW4OVpW1VhbGNrW19kWXZnUE9JRUJBSkhJTUtPTk9OR0VAQkA+SE5OVFh44NvP5vB6VV1XXtze1c/LwcC6u7++xsvL0MvO2OH03u3j1uPraFtdVlxeXV5SV1xTWVBJRj4+PT1GSkxQWGRgYF1WUEtKR0dOXl5VZeTc29re7nBeXVtb+vd62M/MysfFyM3P2Nzl5tnx7uDr39fQz+Dr6uj5+eN+bGhdX1dXWkxLSEI+PURISVFPVWBUU01GRUA/QUxYWWP73dLNzM3Q0t3q7ePU1tLNy8fFxcXFycvS19be3d7n7Xnw4OnjfWtmXW70+OTo+GRccl1XVlFUSklOTVZaYGhf7XJTUk5NRj9DQ0lRUlxXZX5lbWhfVEpQWl393tXUzMPExcC/wMvLyc3MztLZ6NrU1s/Q0uXt3N3d09v9ZFxeV1FVTkdGR0lLX/Vramt7cGFZVk9LSElKT1paXGbr5Pr87lxXUk9TWnXu7+LTy87OxMrPzM3OzMvP2NbTzsnJwsLIx8jKyMbHz9bdfmxrbGJMR0lGSEpTVlZWUE9QUkpDQEE+P0FLT0xSY/7l4up0W3tjWGL74uTh0cvLycfJzc3O1tbLztnn6+Pl2tXT1dLPzs7Ix8zS0tLg6uLq9WteX11rfXvq5u57YGxpTUpKR0ZDSEtOXFJOVWr6YlNXX1tdaXh76eXb087Jxsa/v8TEycXIysnOzszJxs3Mx8zKyMXFys3R2e1mZ1ZPT0hLTU1OT251X2xbX15OUUlARURGSE1XTU9UWHVhWFxYXlxeb37f6v3k2s/OzcbKyMXHxMfHydHQ0czGy8bJzsjNzMbGytje73HwbmtfUFlXW2954fliaVpgY1NPRURFQkxQVFtSV1xh6O9tX1hbV2Fx6Of172zxzc3Ozc7MzMLBxsLJ2d7Xzs3LyczKxsPCwcDL1N5y7v53a1JRTElOUmBaT1BLTVFQT0Y/Pjw+QUJEQkRFSE9bcWtdYl1rc+za6uXrdu/fz8rOy8nNysfGyM3a6N/b1s7Q1dPPzM/IyNLY3uP7cd3oZ19bWVVf/nlsfOr3ZO75VkxIRkZFSUhDQ0VJSFZnUk1QVVJLUVlUWFpcVGHg2dzRzMvNycPGx8XGzMvGx8nKzMzOz8nN19Xd9G16e1xYVE9KRkdHR0xQT1BPVEtIR0dIRkNEQUZKRktOV1pTVl9bWlpcWFptXF1lZ2Vm6tLSz9HW3ure3+DW093p4dri29TV2dzY0dLPzt3/6uR3eXt2VU5WXn3p3f1UWllPUExORT4/QEVITllMTl1aZG31+15ocv3f2tDfdObt39HKx9Ha2N7SyMTM3dTd5ePf3ex6/nF27tzlW1hST1tmX1ZPTEtRZt7eeGRXTE1cZ1ZQTUhJTmBuYF1RUFNi7W5uXUxPVe7a7+dmW2PsztTQzN7i3tDHy8rS+WRt293m1/ZiberQ0tTbZlpYfetebFZKSlP649/iXE5MXfdifHtaSk1ea/ffbE9NW/Dt2dl4V1zx187L0vRdfdfa183O6OXW0MrBw83g29DSzsnL6Wbu7eDRz+RQSVBWWlBNS0ZKTVJt8XBORUlNWF9bTUhKSExo4ttxUFdp7tvU32lx6+nTzMzacWNq8drOytfz/OXNx8fM1N38+uTZ1eLxbm/d1M/S4+pobOPW1Xppdl1s3+Df/VpQUl9s82pbWklKW2t6al1MRVNjXmJZWlFQdt3W5+vqY/bTy8nMzNjlzsXBwsbL3OHYz8zS0N5179bS2NziXlpofOf5amVXVe3X2u7tV05VY+Tg2+JqXmD83eXeZ09PUF1gXVZLTVhp6fvobllrcOPd5uZjXWJu1tPOzuzm29LKycbM1Nvl2NXZ4GtpePrd3tjpb/Dq2dXc6l9UVE9TWGxtWltXZenn2uhvalZeX3pwV1lbYH3m4uZ7+vPg29HN6PP8b+7bz87b4Ovm2NfR2ujjbWZ39u1saF9r6N3Y3eXjc3Ph5/NeUVNNUF9w5PH5embg19ra7XBbU1lfZ2BYV1de8Ojl39rg+NzR09DZ8Ghe9O3j2ujlZmvc39rg5nJYcmdieV1YVlBec2709GxYZvxw7NxvVVNVXfbc5d5jZOfo3NfZ7lxbXFlqaW9fbebn2NnR2fnl49XP2tL9XPn82MvLzOHp7t3P3dPgX1xPWF5mdE5VW1f7Y15lUFZVY3deY05HS0hTZnd8W1NTYNrT0dt0Z1di6erc+l5fXvrk39/s6v3o1dbU4G1kZ+zc09rrc2Bh5NDP1uJsWWB35+TwXllZX+/m+W5mW1ls5+5tVkxLTFReYl1bVFFl4Nfg/nJdV1heY1lSS05W4tHX2ODg6NbJxMnaeV9w39zZ3OXhbnzZzs7Z6nZlbffh3mlWTk1ZX2ZjWF9ha+Dj62hPTEhZZnJ2V1RTUW3j3t3yc1hUVlFUT0pIRExfbfpy9m5dZl9rcllQUVni3OTp9uxy59DMxsrZ4Wf2bmZ0Z2hYXv3q49zp7vrz4/Lm9FpQT1lcY29saV5r2dDNztffZmBYU1xbVlJTXGFm5uzweW11XV9iX1pWY3Dp2dvf7eza29XR2udrbm134tra8mZlY2/n7PpjZGZleHVmU01OTFBfbujn8Nze0cnP3/htaVZmemxgVlxk/t7f6Nro+V5j7mVWTk9WWOfZ4dr3bGNp2+J1/mdnW2PabmBkWVRPZG9advZsX3PP1d3h7nle6tP+39Tf3tLExs3N1OpiXutzbuf6XFrc237v5PpnbN7f6vV4bGjUy9rYz9r7+tTZ3+Pn71tq6/18Z1xNRVFTTlFTX1Rf4e74alxYUnvwevjq3vDiycvNys3V7vHrfXJpY19VauxlY2llW118bmv3dGhp6drt7uXm6t/Y2efc2u/p2drY1tfwZl5YYVNOU1Bc+OXk9OxmUVpfdmlfcG104tLN2dPS5+Dg1+Vy62pcbm7q8uff/t/Z1N385mVd+OjU297a7t/t2tDcz9jm19fO19/bcGllYF1QWlJJVWLz2eDZ52toX29gbfhba+fczc/O0uLl8u73aG9fXGVZXVdaYlhUVFdsZ3BkW2dfaubb1djd2d3a2dve6Nna3M/O2ej9fmNYX2dsY1tbVGPs4eT++3V16u3j5/zc3NDIyMXKztTg29Ti62JaWlplX3ZpWVBFSU9PWFRXUExUV3Lu9+X96tTa0M/PztXPzMzKz9j9ePdy9fplVkpPVllhX19VTFZcbOLr4Xd77t7PzMrM1NfZ2NnX0un0/f3b1dLrWVBPV1hLT1RSUklOZupyU1JYZXh15dzndVxo3tDR5ntnXWz76dv5/m923NDV7G9cXmZ939rh73p449TQ09bi9HDm3ejjaVlRUWJyfev2a11daXL9dl1hdObY2d/qemhkeXnw5+Dta+rX39vnZ1lQVlBQXVdPTk5YbHNiaVtVXmNr7Ox4bfDX1M3LyczU2dHV083ce2v5e/zq8F9SU1lWVVpbTklQUFReaW1XV1pr69/X3N3X1MjExMfP1+Tu4urg8V1bW11+dGNaTlFQT01MT0tNUlZx6Nfd6+1w493aztjf5eje2NLU6PNkZHD6dmpgWlhSVVdYWl1ZXGZdbm9y6+3n1c/O2N3Y2trY3tXT291hYe7zcWpja1pTUk1WWl5hWWJqZ15j/Pbu7nNvanFuam5ze+xvdF5j/Pl+aGv/dWRsWl1bWmldXmpqem138Hvi4u738Ovp9Prp3uHm7OLZz8/d6Oft/X702dPW1Nfa193d6fnycHf7bfl+aWJbXnBfZFxQWVJQUlJPUEtJR0tUXmlia2hib+Xb2NfW19HR1M/S0s7b2tfZ2ubv7mBXSkhJRUtJQ0pabmtu5Nbg3tbSztPOztLMyMfKycPIztvZ3f5nUUtHQkI/PkBES0xKUVFRWE1eYVdxanXzctrR1NHXzMjOx8HDy+XqXlJRT0lIT1dr8end5e7l3NbW2N5zWVlcZGRe+Pxq5drOy8/cXUxOUVRTT1VPVWjz2d70e1/92tjO0Njfc29m/uTp7nB66N3Oz9fvWVNQU1NOT1JTXmf929LP19PNztPW1t/+fe9wYHzsdXLu19fneGpOSEtOSktQVFZNUWh78/zoc+zY39jb5uL04Nvk19fs6Ora1dvZ+VxTUWFYT1pTTU1UY3fe09bb1c3Sz87T1u7l3OzV0Nvf8+fh5fNfVFNNR0dGTExJTU9ZY+7W2efb29fLycbIz8vM0c/LxcjMy8rLzNfZ4GlXS0ZAP0JCQ0lXW2dwXVtdaGxq8vBjWVJUXlNs9e/X1M/P3d3d/WhoYWBcbG5eZXb66PFuZVtXZ3nz5vHr/mtsdO/d2tXNxb/GyMnV0NTX0dzd2ezp2NLO0NrcdGv/c+9nWFtNTFhTWV9YXlxf4+ZtX1FMSklNS01ZXmVfYfP35uzz6Nzd1c3Ny83U193Vy8nM0NTLzM7U6HpWSUdAQ0hITktNWFtp7+Xa3NTNysXDxMfLzc3OzMnM087N0dT6bVhJRUI+PT0/QkJJTUlOUVpu/PDs/O3p59va2tfl3+jr4N3a19vuaFdfZVJPTE9catrY49/96ejwzMvNxMjMzNLMz+Dc3ujraejb7NPjY31n7+lYXVNOV1NkbFlcUUpWWW7f8/L7eu5z89rl39rn5OXZzM7V7l9gU01STlBZWFxlX29eWVlaZmp64ebc3e3n5NTO0M3N0tHXzcnO2flZVlZXWV1aWFJWUk5ZVlBPTE5SVl9qX1lYVV5eZWZgd3J1797RztPl/2RhXmRuZmv8e+va0cnHyMbHxcbIy9jx9GVcYlxWV0xMTk9RUmVkV1NZVlZSTFRQT2tn9Obf2NnYzs3NzcvKztzb2eLva25dVF1fXFxcX2VQVlpTXV1VTUdMT05ZX/Z7Zvzd2NbPzMzY29Tb5N3b23t55vvl39/jXmFwV1BZXE1APkZKTE5aaFRY9+zg2dHNz9nMyMrGycrR4Nfc39bY2Ppd7fbt7l9oXU9YVk5PUEpGR1piUFBaaldTZXdeZu54X11x4nFs6uh8YvXS3unt9mdgZ+3u7tnP2NjX1dXZz9Tf2dTR0Nzdztjd29necWJ8YWJz9/1dU1hTS09JSEZNaWFaYFhdWF7h19fX29nQ0s3P2djd3M/o5uB18VRMTVJXS0NAPkBGR0pNTVZXWH3r5e/i3d3PysjLzM3N0t/JwL/Azux4WWhdVFpbZF9aZGxnXFluYlzn5Ozu92drX2Xt4Nnm3NTe5+5fUltOVVNTZ2L619fd3dTN1NjX4fBjYm5cYGxfWFFJS0VHVFNOTUFFRkJJTlBdbdvT2s/KzcvLwLy8ubi9wcfKy87EwMrR2szJ1eL4TkdGRUI8O0JAP0E/R0tNVlNNUE1TWWff4vlqctrP1s/RysTAwcbO4+tyYV9n7NzY4GJaWFpndnpzdW9cWWxtcnr7693UztLT0dHXdWhpZPX5X1paX3vq2dfX2evm3ubc3eDf6n3wb15cXlpMSlBda11QS0U+REtPU1dn+fbTz87Jx7/BxL+7vL7BxMnPzszPztzvdV1keltUUEhBP0FAQEZKT09NUGZtffLp8n3v4uT18elsbmfm2OLa0dXX0dHZ2t7b2tzp2dDQ18/T2tzW2+Ti5u9tYl9eY2lbVFVaVlpZb+fl229fZFReX1RYU1t6d+LqbvHyc+vw4drj3+f55Orl2tnP3W3/7N7V72JUSkhHRklFRkVBR01WX2D59G/h2dTJy8nCxsTDxcDCwcLKysfM0HxYUEJBPTw9PDxBPz5CQ0pPUFVqb/DZ0MnLxsrUzszJw8nKyMrExtHP3fX0ZFtYT1pfXVlTWF5fam316XhbXVZXV0pIREJGQ0pQW+72VVVWYHVfePZo59PMwcTBwMfMy8bBxsjP3d/4ZPhgX1tLSUZJWk9FQ0A/REZSUFBfVlr78c7M0dLb3dTVysjNwsfNzM3Ey9rb93zg2+b5Vk5JQ0RCR05JSkdHSUhLUElMVFJbV2bf7uz0dtzQzsrKzcbGys7Rz9br7VxNVFps82H0b2Dh3djX/N3+XXzu39d06OBz6dzOxczJ0uf68G3uWlVeZHF0fNn18+Lo3tXSxcvXzunzellfXU5OSEVNS1BLQUI9P0dDSUdBSUdIWWF9+Wrk2Mq/vby7v7y+wsLFxMbX1czJx8nQz3ppbWxoVFNgUk1JSE5OSUpHSklKTlddbGdqYG7s5djb6uTd0tDSzc7L0Nzu6+XZ3uvr7u99ZF1bXlxcX2lpcV5WUFNXYltdZ/vl5exvanFwZW5jaXF28ujg09XNzs7LzdHR19LT19rsb/1kZFdVV1JOWlJQT0dLSENLSVZwdt/f6djW0cjAvb7Avb2+v8jEzODT0eHxXnBcWVhZWE9PT0xBQkRAQ0dLTElLTUpLTV9gV11odmtne2tae97a2M7CvsXKycfFxL3DzM7KxcXKyMza6uPa6GdnVUpHRExMSE1OUFROUFNa5Nv2+W7o7mzm3OLY2M3O2tLN3fRq39LZ18/X6F5hblts4PBbSlZoVlNTVkxGSFBIQ0pQTkxTcPXg1M3Iyce/w8G9vb/IzM3O1tfT3uHs3G5eVlVMPzw9Pz9DTElERUxWXH3RzM7S0szNzcjJzczMz9z23tvmfmNkfWlxe1lSW2NkZXrlbGBQU2Zq6dXncGVXV1VSVE5NRkROT2F0YVdWYW7x6NbUzs/Qy83LyMzMy87Mz9DN3OB5XF9ZXXBnVU5MUFJOWltTSD9DRkdXY2VcUF1tdu7r6Olx/+jk287O0dbLxMTIx8XFys7R3Nvc421YUlJNSUdFRD89Pz9ES1BOSkxSW19s6N99cHbe0MnAx83OzszR3dzldGNbY2dm+2BZZWfr5Xrn7mdZT1dsc+99aXRo9N3s3eL08mVYYnra2ufY2tnPz8vKzc/P09POztt9+2ZZWVRNSEFAPzs7PD49PD9AQkxXYFpabHt38dfIyci/wcTDwb/GzsvO2+Ldztbr2tvq49zV4GhnbF9XXvR+V1hfUVBVZVpUVVdRTEtXW1pZZF5m/tjU3unc4O3b09XUzsnS29nP1uxxe3BbWnt3XVleXlVTZGJaW155bFtzamBeZHZqaeHZ5Gtdfe/55N7l4tzU0tPV1ej9cfTwbXzg6O7kZlpVVVlPS0hITUpMX15edN/g3M/FxM3Oy8nLy8TDztfNysvOys/1V1heVU1OVk5HTFJOTk1WVEpJUU5MT1VVUE9YWVtifPZuX2t3YW/s5O7fzs3LyMPDycXBxdDY0tfr+t7f5+Le3GhTW11OTFJYTkhOWVxaX+528tjLzNfd3uPs6tnNzdXO2OHm6N3g9nxsYmPx3dXoclxYVlhdWlxRRkBBR0lUXWZXTFBXY3Px3P9eXGvg2dbQzc/OysXFw8TJ1fbv29Tc3Nr7XFlZYW/xfnxkWV1fbGVk9Oft4NHKycvb9V1caGp9bmFdX2R55dfW3ODf4uLZ3+D+YHXb2NPU3+9bVlxaTElBPzg4Oz1GTVReXmTn29DQ1c7Py8TCvbq9vcHIw8C+vsbJ2W9wUlJfW1tSSlhTUVVNUk5HTlZcaF9kZVlrevbd4dp0U1xzcfX/ff1b+dzd1tHJxtbSzs3K1drdemJoffd2ZWlWRURJSUlJT09TTUxPUllhcNzu5dPSzczMzM3Rz8zMzux66FxST1ReVFJaaXhz4NrvY23vaFVadPZibu7Y09jOzNfe2szZ+evd7Wnt5OTwd+Ta1tjZ2f5WXGVuZ2JxdGJZWFZWUExOTEpIQ0xIR0xQXV9b6+l9/tvW4GplcF1gaHfrbujKyMvNxsbY3Njc2+rbz9Paz9LMzdbM0fnt/3heS0hGQUJBREhLTldRTkxQWG3j2NPO1NvV09PZ183W4NfY29TU2Nn2+2JcW0lOUkM+P0ZMTVVdVlVbaf/t69va3H5l9/7539nQztHS4fHg3Nve4t/Z4uHZ2tnl7Hx8/WV47l9RTVNZUl53bHRvYH7xeNne7GpXZmhabOXVztPd293h3trfbl9WVF9dcP1caGZc/W3y19l8Zk5JSkROVVFWSklWTk9q9upqZHD6euPR0Nvi2dTOz87HzODe3c/KycTG0uD5ZF9WWnthUUtHSU1Uam729W5sdu7p4/BjWFdd7tnh2tL2/m161tjRytd3b+/Z2dzTzuFpWlxcVWNkU0hBRUhJTFJXTkRIS1RpdGVeUE1bZ9rLysPFz9DO0NHKzdDcbl1fef7j2NTjaF9vd+3k8Xlbct3t1dXVznNa7eDayszZ3l1x9mvd0s/haVRPTU1edGliW1hbYu3R1N5xT05OS2BdSUU/PURIU+TqdnlfVv5t4NHe3fvq5drTyMfJy8zPzs7QzNf9Xl9f797RydlpaWB04NXM0uN4enF96t/Q3HpdUE1NUFRPU0pKTUtSaO7l+l5vcXHa0tTUffHg3c7JwsHK2eRsXXnqcGRRSExLSlBrfOx5Wl9OWens8GpbaWJv28/T2HVZVk9q2Nre7WH24N3PyMbIy+lvYGfc39/d8fbl7e7W0OPvVU9NVHBvZ2BQTVZa8s7Ky9Hv/uXaxcjP1N39aWdf4Nx+9VdKTEpSTUtLRUI/Q0hTYVlWSUROXfvk5dXf7f7i3c/FyM7d6G7x3dna0NXQ0c/Mx8THz9ztcG7f4OluWk9MWfri3vdpV0lFTWFwYl9dW3T95urf2c7X4Org0tzl4epqfuzxeevr6mNLREdWXl5lYldSVFFY6ubhbFVTUWhtWWJ2eXL06PHSz9PdYV5j4t7i1NTobXra08bCx9drVVJv/urqZFleZe3h187cb3D9dtvU4tznVl7r7e7W1tvsT0tQWGZuaGZdVV92ce7e9WFWUU9aeWhdXlps2uX16OxhT0lHTVZgbF9vaVli8u/aysrT6mv+5NnS1M7T2M3JzsrIzuZuYF/y9HxoamZeaPfn3c7Y7l5VSkpVbfh86XRiYWns0OVwYVdOT2dueGtvd9/Nw8DAy+RgWVVY6+p7YF5QTE9UXPV5Vk5KR0FNWV5SVl1fc3ne0NPmb/3h99nO0OfwfXzq7c/L2H5kV1JSZObp4M3LzMzMxMDGz937/2hn4+xkenVt6ObYz+1TSUBDR0dVY11icWN56NLIzd33XVhWTFFYTk1UT1xcZOdkR0NCQEdOaftdW2xj9dfNwb7O3un2eHne1tfXycfKycjFx9vye3R9b/t8/Gh459PNxb/D2ltQS0I/RUdIRUlPW2Pz2NZvWWNoXFZ97O598dzOy8O+v8z6WVhVT2ZhVk5LTFVTWfHubFtOTVZQXGxsavLbzMzPx8jU/l1ZVlBYYFlbYFt43NXDv8nadF1iXGnj3N7a18/Ky8LCzN9wa15RTU5SVVFZfNnd18zZ825ZUVRZXn3sdGlu5d/RxczmbFVPSkdJS0xJTVvx9N3Nz3JST1JNS0xTXVBa7+DRyL++zfpqWFBQSlNoW2vXzMW9urvHycjK1/FpWFtVWfHX1cvJzN1lU1JIQ0RGUVRLW+7r08zIzNZ77WlfXWfjYF1m3NXQzc/i/l1XU01MTFdYXWze3drNy9La/VtNRElLS1JhYenu6NrQ1O1dUFtVTFFeaPTs2crCv729wMnlfGxRWHfz3/loetnNxcnZ2mxbUUpPWml5/urdzcrGyNbldl9NQ0BIRUpOSE1u5tjQ0cvT7V5IR1dJWXBdW+PS1tHV1eb/VkxIR0hLT05Ucdzf1dXP0c7q8/Lg1+zU1tPOy87LyMnMyNtZVFReXmVi9efZ1+Lf2Ojqb01OR0VLX2xucd/g+tbS29hxSEdFQkdRXGru29HPyMXGxcXXamVSWFpPUl138/ny5mtfW00/QUJMVFJTVmp46d/V0tHU61JffXLs6+rc09bKy8/NzdpoUFt8ZnFkW+PP08vFwsfLzd5xZV1WUlhWbt3s/ODa9u3pfWZZTUdAQURJVVlq3tjj2dLZ9VxcWltVWV1WUlJdcWt83nZUTU1NX2Jnelpob/3d29XJ0+FsXnbm4nPm5OLcz8fAvr/I2H1fXWT2XXz2c297597U1eBcUk5KSkRARUlFTlvq29bQ3NvtdmNsam1sfnlz7dvX2tnq3fllV1NYVlReW191YGNp6/l9YlhZVFxfaGZecu7n6t3Jys/iWVNOR0hPZ3vj2NHTyr/Dxcfb3+FraF1bWmJu7eDSw8nNytR9Z1lQXl5NT05WYGTm5u7hflxsaVZbWVJZV2Tnd+zybPReWuvabF5dUFdhbevo2+V94vJaVVpOVGNOUV/61dLZ3vTe0tvf0NnW1P9ke93My8vFycvQ3ujV2u3s5PRfV11mc2xld15VV/5uXlpfbOvp9epwZFlXS0lLXmBdaW5kfnntz9LM1dHdfHt0Yllr93ho6N3QztVucFJGR0lTT09RSUlPUmbcz9fW2O/o2tXYz83TztDYz8PAzuN1UFdrbPri5G1lXWvz08zf53JOUHT04NnZ5/ja3evc0Nn4bU9ARkdFTUxISVVYWGPR0vrxa23k3uzS2/VhYGJceNvX/HtlXllUTFNcWVRbXlljc+Xv8Onb1czNx8DFy8zS1s3IxMze5+Tt6X7t2elaXFtVXGDv63xbb3hsaGfp8ltbamRw7OTn+ldZXvrZ29HeXlZTSU9idfHxYV99a+Xg1d9u/v5lX/DuZFZKSlpicujUz+FuYGNe7Njb4l1WZOzk0szKzM3P1dvSy9DS3d7j3evazdTb5d7l8uvP2/FoX2trZujO2d3+YlhSUWZoXFxVWVlYX29s+H1xW1pib3ltYVBQVFxs3tvd4mtZXHDe1uDuY2Nrb+rSztXX3+55eujj6eTr29TV0s/P1tff+/Hl3ePx8HhzYO7Ty8vPzdpeWllbV1BVTEtPVF5y7n3e3nx3am9zae11Y2N6dXrh2tTf/F1aZuvyfXNbWGFgae702uZsXlldaFhXb2Zu7ebg5W7l/FxZV1VSWnD+/XBm7uLT09TO3ere5ut9Z/hfUfzg9d7o4dzz/O1+fG9eWV5cYepvcX3p2t7p7Ht03+nw7ero6Hp6amV2XldYXldSUVZbYvvf6eft6t36b2xnYFFRVU9aXWpsfP7823VZWVFPTEtQUl1l5NzX1tvJzczIzM/Z5eHtb29++vN88NPU72RPS0lFTVVOUV1caf593dfZ2dHSztva2uPa0tPLzNXO2eTwaEtKR0hMSElQUlRgaeTb52xqXllPTFJPUGdlbu342+Hd6tvS0O9XWlJOU1pde37e3NTd6Pb/fm/k3N/f4HDz9/p98d7f6e3o++n7a21r/tvg4uvu93nx//pudXzo+Wls6urx2M/V6mNhX0lLTldhdl1eZ1tcUVRPUlpcV1NQT05PWl1q38/Q1dfV6/b15NbNzNbt39LU2Obk7fJfXHP6ZFx8bnnh1M3T9G5kZWNbXGJ4/OR9d/5s5NnRzM7ab1pJSU9LSElOW19o5uV1dWpefeva2GlbYmBnZ/Lk4Op8eFpVVV5ZXG1pYlVQXund3uDc49nV5dva8+fg3tDKx8nO33BbXlxeaf7g+GRmW1xz+e/k4mxeWlNTUlBWXl9tfPfm7n12bW/r6vJtZnBpYHnb2tPZ3+NpXWFlafne1dLd3N3c3+vv+mpcXFFMSk9WWFpl4tDLyMrU32ZXXmlbZ+ntdG3y2dPOycbK3Xtv+2leXWNaV2vydV1bUk1QZnbya1leWFVVWPHU1tbS3v323tbfz8fGyM7V0M3Q3e72dGJWWVxXVFJMSWDs8fBoWlVRVE9XWV9y4d7o387N0MfDwsLHzdjj4X393ebfdGBXWl1aT0pPVlh65n72cuTp69bU1dz0Y2Vtfezaz8vMzc/Oy8jK8W9hU1BLR0ZGS0xUdNvY0M3d4t3V2u7l3OLt6+ne19XT0dfW19ryV1ZQS0VES1dVUlRXVU9c6uXd0tPV3fnr2tPQ1tDV3trf5HXe0s7R0NDf5n52bWBtXFtiUkxOUFJYad7c287Ozs7d7PHs3t/o6/Ho1+ps+ujc4N7qaWjm4mddVl5revpgXFhYV1JOT1p8a1lhZGp52cnHyM7Z8Ori6Onm2NTRztXNyszP2d/g4+3xX1hdX2Ru69zRzdN7fe9kWFddV1dUU1BRZG/73t3Z1Nz47tzb6GRw63rs6W5YXmRhcGZu393nX1dPUVNaZV5iXFdVTlNv4NLOzsnL1s7OzcrN2+Dvc2heX09TXnJrZfv39m5gX2rt08nKz9jp7nzg1M3R3/lvZl1iWlVZWmBtZWn99VhLSU1PWWhwaXx1Ulhu7+Tc0dn2dmVecO3g5vP6+u/e62V5bWp6+XBYUVhXUFpy5tzOy9HZ3mdeaXPf29vqYFpiXWzr39vc1ODl0c/e7nh5aGJuXFBNTEVCREpMVlpZW1VNTFFdfu/e7Wltb+/d1s/LzcfO3+N6/GdTVlZTVlhST0xLTlto+OngeF9hWmDw08zPz8/a5unYzc3l/WRdXVBOSkhMTE9YXGJ5YF9uZ+DW087V1+FiVlhRWl5fX1tuZ1hXWV3+d3f5+uHk7d3wduLm2t3n6GxfZFtt6vbd4WpraldWTVvm9uXsZVdSVldXZ2ds+3j7/mVlaHfp7eTY3flmWVVOV15ZY2ZbUE9iZF9n7Gpr7PR0YO/X18nJzcvO09fd53JncGJZZnhhW1ZUV2vc3/XW3vNtVE9PXV1bbPV7fXZ56uPa1N7aztPe7nBtbfv9ZersZGVZTk1WbfBlXFZIR0VES05PTlZ5d3fc3ODPyL/Bwb3BycrY397m6ubX4Gv99lheZ2VnZWVnVE5RTVZe/eTY0dXW1Nba0NDO0NfY7GljXl9ra2Nsb2JdWFNMTFRfX2H1dVxcWE9RVVFXZFxSVVxbbdXMy8nFw8fL0NTY3d7h4+rq6Ph7e/rl4t3W2HNWWVpi/Hrz3t3X0tLS0tPOz8/Szs7c/vr+c+1y89bfemVSS0tMU1NSWltYVVJTVlVYXGhqeeXj4OPbzMjKw8DCxtDh73xuXlpZUFpiX2FidNrb28/S09nweGpi++rb0NPZ3OLt3tTR2tTT1NTf7fP0enp+dm3q8WtWS1BbWWjtbnpsWlpdVFZeWlBOVFVbX3zdzcrFw8LCyc7d72lwcWxqaF5ZUU9ZYmRpZFdgYlxcW1lnd+jY0MfCw8nKyMjOzMrQ2eP683BjcPFe+FJcdUpaXl5k7/j35N7+Y1lOTVNTWV5YYVhg7uXRxsPDyMzM1d5vVFZSTlJYYWRdZ//33Nvc4Gz3eGj5ZGPzdv75+/Xo5N7368/Uz87R0OltZ1/67/X/ZFdSTE1TTmL8Z21jaHReWlJMU1RTXfrd2d/YzsrExsbGydLmb15XVVdVUVJTVFlgeHjv6/j29npeWWNkZHnh3NnU0c/a3dve1M/W1t3pcmFaVFNTWVJRUVdWUlv/9Pd1bu95YlVPTlBPVFNTV1hv9Ovf0cjCwb2/xtTw8OTr7vtcaGBYV1hddnr7+2Pvbl9YUFtkX+7f2c7T083T0cvPzdja1O5dUFRcW1tbUlFOSUtRTVJr9H5fampXTUhKUU9VVVJlYV53/+PPysjKzMjR8l5XWGV5d2ZrfmZ54+Xgzs3X4eDobVhUXmZ8fv/z3+jv5+P85cnEycjI1epscf7j2+T9/3BVUFJUUV5lWVBWUkhEQD8+R0pMT1heX2z439PFwcLEx9bc6/J5fedtXl5vX2RfX1z93uLn7fxfXk9NXOba0dTX19vZ1dTQx8zPz83d+mpST1FZUVFRU1FSVVlq8vN8aWVcT09MS0pNS01PVF9WU15ifdbPzcvN1d7q+Ozd3ePe6PV8b/bq8/VlXF1bWk9MR0dJTFdj5u3h3djY0snDwMTFy83P2+Ho7+59bWpeY11QTEtTWlZTUFJXS0A/QEZOT2RkXP715dTKxcXGwsHI0uDe8GNlcmFdW2FbUlBbZmptZGBfZFNQVFJVZPPl6/vg7Pbh1NTY19nW0tbk9fDr6dnW3mtufl1ZXGNZVmNkXFRPSEA+P0VOWFZQYnFcZ9nKysTCxcjMzNHe7uDX1dvxbuj0eW1sXVdfWlNLTkxISVBl4t/g3dzP0czJyszIxsrO0c7afmdfW2FcWk9OS0tOVFBLWFpgXVtWUlFPU19+dXB7+u/Zzs3RycXIx8jK0dnX09rU1N/e6fXq4vBlV3bvav35X1tUV2Bp3uL46uve3N3U1dXMzdHO0NbP3OB4Z3VbT09QTlRPTE1MT0pKTEZAQ0pNTlNhYGv718vIw8DCv7/EwcTLzc7V0+DtfFxjY1pYVFVZV1tbanlwZ3rv5OLw3tjZ0MzNzc7LyczMysjKzc7V3917WlpOTFBQV1NQV1hdX1hQT01JRkpOSVBRSVJl/Pr82cvRzcbGxMTCwsnFyNTV3PDf4+5wVFlRSE1OTU9PTk5Y9WFX8vfi0czExMC7vr67vsHCzNLe3edNR0dCQ0hHRkNFSkdOXVhWWFNUTlJRTlpdZO/a1dPVzczPztLRzc3V1tfZ8GBeWlNcaGZqaGtjY3J0YGNeXmFo+Wxqb/bt3NjVz87Mx8LAvr6/wsXK1OFtVlNWVFlRSkdGREA/RElHRkVHR0xNSk5ffejPxcG+vL7CwcDCycrM1NzdblZPUVBLSEZERUtPVF59a2z3+HNr7Pv76trR0MvLzs7Mzs3MycbHytdvZlRHRkZITVZWWF5fXVdWV1FPTE1LR0xMSEpWYWr++t/PzMrEv76+vr/BxcbN4G9172tdTUZFREBAQElLS09OT1lZUlZg6dTLxMK+ubq7u729wcPFztx+T0U/Pj8+Pz87PkFASlRbYF9iXF1mZ2pqbOna1cvN1M/c5OHb087KytHS225cVVpma/fsZW/yfHR1eX3s/WtqXlZSS0dLUlldZWPi19TMxr+8vb/DxMrV52ZcXltQSkU+PDk2Nzg6Ozw7PkJCQD9KWOfSzMC8vbq8v76+vr+9wMTK61xZTkZFQDw/Pj5EREpWZXHv+Ove29zi0M3Mx8XDw8nK0M/Ly8nL2PhtVEVAPT5DSEtLVFNRWFZTUVNXX2ZmY11PSEdHSlBOUFpedPzq387Hw8HAv729wcXJy9bc+WJWTUVAP0JJSkxLTUxORkhQbOPXycW+vLy8vr69vb6/xMzP61pLRkU/Pj08Ojs7Ozs8PkFGSU1f9u7l3s/NzMjLzMvO09Tb29LNz+FoXlZOTEtQUlRaU1hgZmNaXHja2dnZ29fkcF1cYV/65OTX1NDOx8XDwsfGxcHCyM/e3/FcUEpEQD47Ojk6PUBDREdISEtTe+HUzcnDw8LGyMnLx8TExcnQ1txvXE9LTEpHRkZAQURGS1NfXf3d18zExcnIw8PExsfGx8rKys7L0N/ralhOTEpKTFRPTVVcVFBJRkhLVl1taWVcWFRTVltrbX7e5evi3M/LyMrGwL/Av8DG0+nqXlFLSUY/QENFR05SU19eVmP+8dzNyMXBvr2+vb2+vr++wsnQ3GxdUkpDRUM9Pj07NzY5Oz1DSVZ2383Gvr+/wMDAwsPDy9HP1+X1+V1YWFhYWVleX2n/dXB2/nT03Nvk1s3O0tje+WVeW2Ty8uPc3OPgz8zQ2NbP0M3Jys7d4nBYWVBKR0M+P0A/PUBEQkFDTFRddt/b2tLKysnIyMTAwMDBw8XLzNXpXVNWTUlGR0U/P0FBRkhNZOvVyMHCwr++v8LCv73AwcTFyM7P2eFqVVJRUFFWU0pNUk5NSUhIR0lOT1pYWGhrZV9iZW7s6+3l7+nf3/b383zm1tTMy9Ha2NLn9+j29ur6bmRr/fh4Z15x+nrs3tTT3M/Lx8TCwL69urq7vsPGzN9oXE9JQ0A8Ozk3ODc2ODs9QklWe+jb0cvIy8vKysrMzdHV2d7p8FpPTk9TUF1cV1pdc2xaWmjz7eLUz8zMycvU8Ojj7e7f1drd2dLMzc/Jx8jMy8jKz9XQ1PNeXFtYTU1KRkA9Pz07Oj1CREVOXm517dbNzs/Kxca/u73CzMrM42xWWFhJREJCQz5CSElISllhcNvMys3LxsPHyMfDwcbJxsPGycvU63Bnb11bXFdRSk1OTEpHS1BMS05ZV09WY11aV2Ltb2hhX11ZZXdrZ2d3/2Fm993d6Nve3eH76OXzfnJqWV1pXlNNT1ZVT1VXZl1f9fTj3dDEwL67uru+vrzAyM3W4XFOSUVAPT0+PDk5OjxAQEdNTlFs2dLS0s7Mzc7Oy8zQzdL0YFdWWVVQUU1IRUxVUFJdan576tTO0NDMztbb0s3JztzkdFta/OTu9Off4efc0NDW2Nri93ZqcG9aV1JOR0hMQz4+PT0/QEdQU09OUVZf8djJxcbExMvOysrb7fL/dmRYW1hPSklMS05QWGRaXHByfuPTzM/Q0NDP09HKy87Mys/Z0dTa2Nzf5GdYW1pTS01PT05OVV1USkdJRkRLTlhgY2liXl5o7uV69PTpdHHf3Oz+emxgY/Dz4+Po6f1ydunlZ1haWVZa8NbT4efq7+/XzsjCw767vb6/vsXV3Obvb2dteF1JQT0+P0RDSElEQ0ZJSlZnX1xlb33z29TS1Nrj+WZkYVpYTExMS0xQYF1RT1dmeOPQx8LK0tji493c0c/U2drY29/hempt9ePd1M7LxsnOzdTNx8jKztDT4O/v7m9URD49OTg6PD9DQkVHSlZm4tPOx8TCwcDAx9X2WlVQVGFiX1lNR0VGTFJaWlxeWmfkzsrPzsvHxMW+vLu+w8TL0dPS0tPr/GZcXF5sZ1pTS0xWXXnn2NzmZ1lcXlhXXFlWVVhY/PJqYlZRV1hn9+p0W1tXVVpu3tLZ19HT1dPMzNf1XFZXVFFYaGFfWlhfbX3n09DT0MnFv728vsPLzc/PzszN2d74YFleYmNcT0pLR0RISkZESElPWGnfzc3NzM7Nzc/S09f2X1xPTlFQTE5OS01Yet/X1tTY4dvU0M/Sz9TZ2+PVy87d2+Ht8+zj0crR2d7k5tnQzszR3tnd6NrX6mhcTEhIR0VIRUJAPj9ETlxu7+vj0dLPx8nd4exoZFxed/BgWlxfXFxt9+X5W2J+eeXd4n7s5+Ha1dTIxMvOz8zKycvLy8/b2d/d0dTkZmpscnj94M7Q3Oflb11gWU1IREJIREJJTUtJTVdm+/bl1Nrh7PB65dbU2Nnl9uHt6N37ZV5YWVhbYXdxYWh0bWrk1dDR0M3JxL+8urzDyMvO1NnX0Nj/ZmphXGNta11TTlJPT09LRUBAQ0hMUlxvbWVxenbz2tXpc2FeXFJaYlZJRktSWFxj8N7n5tTP0M/Ky9LY593f8ezuZlhZX3Ll3tnR0Nrf1tHOysPDxsXGw8XIys7hcWhrX1dSTE1JPTs+Pz5AREVFS1Ts397Py8/X2NTc7v347mNPTlNOTEtMS0tLU2ZiZWxrXmzw6dzPy8bHzM3Kx8nGxMbLzs/L0ODi4f1dXm1zdG1w6fpvbOXe6On7aVNLS01JREJEPzw+QUdPWGBuaGV092h4eGtfXWTn4nRfZl9NTFFZV1lZYWVXVmhsYGlub2lq7tDKy8zHxs3OysjKysnIzNXe2ODw/nFhW2X76vhmXV1NR0hRV09VYmJXT1BZV1treWNgZvT9X1hZXFFJTFZSUlJbX1hje/Tu69/fbXD03Nvo5OxqXFlicW7m0MvOzMjDx8zJyMvS0MrHy9Pa3vdfWm1qX11aVktHSEhJSEdKRkFGTVxlbeTc4N/a0dfc3OJsW11jWUxISEM9PUNKTE9XW1pZXO3d1svIxcjKxsbIysvKy9fb3OHf8XpsaXl76N3d3Nnc3tfPy8vQ1dXrZWRnYFtXUUlEPz5DQkNKUVteed3c5e7q4/R77Ofv/GpfV1NPTVBQUFdYUFBTVlVec+3i6eLc2tbNxsC+vsDBwMLAv8TIysnL1Nzubl5OSk5PVltcW1VSTVBUW258Z2BdXGFbW1xdXlpbW1VRVFFJRklNTk5OT09MTlhreu3h5uhxX3jp3djSzdDS2ODf4efg4N/VzMbIzdDU0M/UzcvKysvP09PS1NnY2tnocG1kXVdTUE5NSUdHRUZMXWZu6eHl4uDn7HlsZGZfXVdNSEQ/P0BDR0tQVVtXWGHx3dLOzMnEwsTDw8XHys7P0NLOy87X2drX19bS1uT0/Orb2NLP2d7v9/BwbGdgX1pSUlBNTlFOSkxUYHHz8XFdWVZYXWJpdnNbVlZVU1FOT0xJSUpOVlZZXl5n+9rVz8rGwsG/vby+vr/CxsrMzdDU1dbb7H57eX3/69ff5NzY0M7X3+Tf3O1uaGJv9nFmWVZbX2FgXVtZVlJOTlJXVE1KSkpNUVtiXlRQVFxbWWh69+zm3djQztHX3eTbz8nFw8HCw8bHxsG9vsDGysnIyM3V4Oh9Yl9r9vllVFNST01PU1paWV5qeuTa4PRnXVRNSkpKS01MTEhGRkRDQkNFSExQWGBnaXJ25dvPyMG/v76+vr/AwMDCw8PDx8zMzMzO1dze4NjRz8vLys3OyMjJzdXicFtaWFJPSUVAPDw8PkJER0pLSENHSlBRU1RWWVpjYGRdUU5JSU5ZaHf/49/g0s3IxsfHzMzHwb69vL3AxMfIx8fKztDT19nW2vNwZ19eXF5jZGBXTUtHQT9CSUhKTE1NTU9PUE9OTkxNTUxMTVFUWWBreO3s+Ori3uTd0M/Pz9HT0c/Q0c7Ly8rM0NbW0M7Qzs7R3Ojp63NgVlJWVllaXFdXUExNTE9XW1xZVU9NUVlaVFJTUVVSV2RgYGlra2plcP52d3nvdv7e3N/wbmh18eTX0dPRztTQ0tXQ0M/R1dbZ0dHZ4OttaHJqaV5US0tMTlFYX2JfXF5oYV1v8ubyamtrYFpcZWFbZWZnb3B49fHw6eLe2trj39/g3NnZ2Nnk9fj9ZlZST05SU09SUk5SWWVuamrz83Hy4er9bP31efHw4eP2Z2dfXWX35+Tf5drf3dHP0M/O0dvm4ODi4t3h7G5v6t3jeGxycFRRUU1KRUVGRUtQW2daU1tlXVxs6/d4cXhwXmBdW2JcW1tYYWf66+7u3dfXzcnIy8nIx8vNysvMztTU3ePb2c/X4OHubFhcaF5WWVZUTEdHRkVAQkJAREhKTkxJS0pKTFVcXV5cXVVQVV1haWxraGjv4dfP0dDMyMrJxMbHx8nLz9LP0tba6v5meejXzs/W2NjY2dbU4vNnYlpPTUlFQT8+PT0/QEVDQEJEQkNGSU5OTVBZWl5qb37y6Nzd18zIwb++vsDCwMDCxMjLy8zPzczO1NPS19rVzs3P2N3qeWNmZl9dU1FOSUlKS0xHSUlEQ0RJS0lISUtHREdLTElGSUlHTVlobWb06O7n0sfFxcPAwMPEwcDEycnJy8zMzczR2dnh8P7t4urp7f3+Z23o9GZbXV5ecu7p4nBeZGFaVl9dU05LTU9MT1xUSk5bVFb249vW4NzZ2drY09XW2NbQ0tTPztTZ2trg1s3Pzs/Z3drh7OjpdGhkaWtiaGdfVFJRUVZaX15fXFNVUlBWYHJya/jr4djTzdDV1NLR0s3Ky9DY4N/6ZGxzZVpce25fbvfoeGlva29t39Xc7Hh7/WVjb29qW2B2YF/++XVdVlhTUFpwcWZeXG1wXmnw5d/e2M/OycK+vsHDw8bGw8LFy9HW1+Dw497leHvn8XP57PJeUU9LR0dKS0pIREZHQkJHR0hITVpZXXrl4fV17vF27dzZ2OT96eXt5N3d29jMyszJx8jJyszN0tDNysvOzs3MztfZ3PH9e+rxZnB5dWldW1RLS05QTUxOT05JSEpKR0dKT0tMU1pdWVdYVk9afdjT1tDO0NPMyMbJxsHCxsS+vsPHxcLIzszLyc3P0Nnn6d7d5/Hu9mtbXV5fU05NTEZDREdIRERFR0NERUZDQkRISklOVVRWWmh5avzd0dHOx8bMzMrJxsfIxsbJzMvJztLQzsvNzs7P19nU3u/o7HdmX19aW1lcZWFdXmN1bVxdXVhSUlBHRUpISUtLS0tMTFNdWF919+rx+eHc39rQzdja0tbW09LQz8/RzMvMy8zLyszP0Njj8P5dTlVVUlBPTk1NTE1aXVVWUVBRU1RXVVFVZFlUZm12/uvj2tro3NDZ393e3uPh6OXtaW74ZXPp8+3r7ubf6e7e4PZya21yampgXFtYV1hZZ/Z7e+/q6uB6Z3BqW1pdWFxeWllYU1VbV1Ja9e/n2dXNzM3PzMzNy8zOzs3T2eTj4tvk49ba6+nn5fxvZ11aTktMTEdHRkRGQ0FFSElKTlBVWltfV1VUWl1STlFNTllXWWZw+93T08vDw8PCv7/CwsTFx83Oz9nb1tfc5uve3uHr4Ob2631mU0tJSEdGQUNCP0JFSUxPTU9TWFxtbWBeZnFkV15ZUExKT1FXWWb33tzYzs7Py8bHyMXCwMXHxsfJz9PS1dDOz8/Q1tLT2N3c2X1jY1lRS0lHQ0FAQEFBRERERUdGR0dCP0RHQUZITU1MUV1qY2Jr7tza08nIy8rGxsvMxMTIyMfHzc/Nz9XW19bb39rc2eDo+WtlXF9hXmBdWFtbX/Tp8ex+Z15kbmxwYVpUTkhDQ0VFRUVISEdNU1ZaXmFtfN/Vz83PzM7QzczJx8nKz87Oz8rIys7Pz9Ta19nf7H1uX19ZU1ZXVVZXXV1ea1xTTlBUTUxNTkxNS0ZHR0dMVVRYa/bf2dHOztHTzs7X3NjX3uDi4+7t9erc3+jo+Wlue+jvbl9kY1lYX3hsbmhgYnnz39PP09bY1dHU0t9pZ3poWl9paG5uX1FbYW3i1dXX0tLY2s7R2d7e2uPr7vLl5v5qXltefPt1cGZjZWdy+V1ZU1FfXFFaXFlbWF5jWlxpX2VeXmVhZGRaUk5OWF9ka3nv5+DSzMfDwsLEw8PAwMPExMnP1NbT2uTv7nt5fP5yZ1xbV05MS1FNSEpMSENCRUhLT1pkcvt68ut6+u11b2d67WhkdW1jXmltc+zn183NzMrIxcbCwMTFxMHDyMnIzNTe3N3e3drS0dba29zf8O9nWVdOUlBKTExHQUFEQ0ZCR0xOSEJGRURGTUtKTU5XXVdaYHV+4NfXz83Ix8PCvr+/v76+wsbKycjLzM7T6Hjj4+Xm4OPve3N1aV5fZV1WU1ZecGVlbGRfbHBvdnbvdF5aWVpXT1JPTEhHS1BYW2/s5+rZ1dHRzs3OysbExMbJydPT19fZ4Nve2dbb3drf6Ojd3enj4N/f9HN4bGtpdGZiXV9oY1ZWZVxTT05OT05VVVJPT1FPUV5ocvnn2NTT2M/Mzs7NztDSzcrKy8zN2PdgZm1+b3ttXltOUlNbXlpaW1VZXf3j4OX2cW536dzh1tXOzdLU09bZ3+x3b3Fr/Ozn7u3x5+Pe3dnY3tPV2NHZ3+V9Z15lc/x7Z19cYGVtcmlcV01NTEtOVFtXT0tMTFRcY2t1XFNPWWFoZW38a3Nv/ubc3Orv+/rt5uHb0szP09LPy8rGwMLExc3S29PY5Oz77vdfVE5NS0hKR0dCPT08Ojw+QURHT1BPT01WXmhrZ/f2fOfr29LU2N7p6fPi39TO2uPs4N3a1M7LyMvJycjAwMHEy9Db3djUysvP1uptWVleYVlPS0lBPT4+Pjw8PT4/QEFGRUFAPTw8P0FER0pUWE9QWmVra+ja1dLPyMfMzMnFwsC8uru8vr2+w8XDydDTz9XOzdLQ3nFfYWVgZmFPTEdCQUBAREVEP0FESU1LTEtLSEZLTU9caHdiWFZYXWbm1tXd2dHWzcvMys3Ky8rNzMXBxcjMzM7WzsvO19nOztLS09Xc4/lqV01PU09KSkhHQ0NIRkRDRkhISUlOTEVLTEtJTm3zZ15ldnJ229fmbXF27d/UycfKy8fGyczIxcPN2NHT3dzc3f1jZ3Dv/e/Y2vdkYlpLSExOTUdJUk5SU1ZXTk5Ybmlf5djhd3F96/Ld09TX39PNz9POztru9Ovf2NbMyczW29rxam7o4W5ic2xcYGVqXFx5du7s4NLV73BnW05HRUdGQkNHRUJCREI+QERJSkte+Pb859rV1c7Ix8fIxcHAwsHBxcvQ1tfa18/O2unybFdNTlBNSk1PTU1VWlZTVlpdX2Xs2+ZlX1lMRkJAQ0JCR1RXWGxzY2P64tjX18nAyczEwcXEv76+v8C+vL29vL/J0Nvf6X579/JwYWFXT0xLUVJNS1ZrWVxjWlNSXWlaTlBaU0tLS0I8ODg5ODk7PkJMT1lcXGXm1drXysTGyMLCxMG/ubm5ubm3ubm3usDGztryXV5oXE9QUE5NSk9WVlVSUU9PVmVYUVRd8WBWU1lZWFdQTklGRkVGSUZJSlN5eWhnd93T0svIx8S+v76/wL68urm4uLm6u7zAy9fg/FhQT01NSk1WVE9RWmNhe+HrbWrn519OSUpIRkVEQ0JAQ0VCQUZISElOV1VUXufb3+ff3t3XzMrFwcO/v8DAwMPEv72/xczNyMze/GZUT05PTlFQTlBTTU5TUFVgdW5bUFleXFNQTEpOXWp45+zt6Obp3uf38t/X2t/h18/P0c7T1tbLx8XCwsXFzM3K0drOys/T2drW1vZlWlBOTkxLTlZaV1pQTk1MSU5MSlBKRUdKQT5ER0dQWGFz6t7U0NPMzM/P0tXY4tnOy8nKy8nJxsjCv8XCw8jP1tzj2uD9bmVgZ2v7c1pWT0ZDQEJHS05NUk5MTlJOTlNUU09SWmNWVnn3Z3zt2s/Iwb6+wcLDxcrM09LOzMbBw8bDw8fHycnO19rd43pqbHhpYV9bYGBvdWZaT01JQT4/QD9CRkdEQkVAQ0lIQj4+QERMV1926N7YzsrFw8TFw8fLy8zLzsvJyMfGw7++w8C+xcvi6+7+fvrqe+31dX56+mtYTkpLSUJFSEVFRkpNSklPUUpVY21VSEtKSUlUY+ja1s7LzczQ0c7S0tDNzMvGxsLBwMDAv8bBvL3Gz9DvaFteavLp6+Pg3eZvZmdXTEVCQEFCPz4/Pj0/Pz0/SU9IQEBBP0BESExNXe7f1dHQ09je3OHl3M/LysnEw8C/wMS/urvDz87X5mlfXltcX27u6eZzc/tvWFFNTExHSE1NTldYTkpVavFRREtDQT1CTVFPWnfi2trb0M/R1NDQ09XPzM/MxcC/wcO8vL3H5eloV1BSV11XVVljaXJzaPx8YVZXXVhQT0tGQ0hJSkFBTUpHPzs7Ozs7QUpKTl584NHO0NPW1Nva39jS29fOzMnFxsXHw8HDwMvd43RaUFVYVVlXX2peYGvzcFpQT0xIR0hNT09bXFJJSlpaWE9IQj9AQ0dMUV1sft7Uy8nHw8LK1dPMy8rIxMbGxsLExb7AwsnZ3fBpbWBmXlRNT1lnaGVnW01IS0pJR0NDQ0FDQ0dISEtKRD89PT08PkBAP0ROVm7319HRycfJzMnGwcPKx8TEwsLAx8XJyMPRz9La4Xj1911bXGJ1ZVxcZ2BbVVdOSEhLTU1MTlRXTVBVUE5LTUxIQkVMTE5QV1lba9rTysLAvr/Avr++vLu8vb/CwcPCw8HGys7Q2Ovc2d/h/Hfyd3h9/3VeUktKR0hLSEZAPj4+PkFDQkZDRkZFRURISkpJS1VXZ+ve3tbJycjGxMW/vb/AxMnIw8jJyM7OzMjDwsTHx8nQ19TX2NTY3d3ncG9rXlhOTEtMS01QTE1NUE5OTEpMUE1IS0lHTE9TXF/83s/Jwb2/wL+/vr2+vb28wcPEycnGxMjLzdDU1dTMyc/Y2NrZ29jT1uBmW1hOTlNQTUdFQ0FGR0xRT01KSERDQUNGPz1BR0pVcPDn2tLMxsC/vbu9v8DAxMbIyM3X1MvM0M7MzNXc5O3e2NTOzdXd2dnf3Ot2ZVBNT0xPWF5eVE5ITVNbYV9cVE5NTEdITlFWVmjl2MjBvby+wcG/vr6+vsLFyc7e3NHX19/17+La09LY3eP5efjo6ev2aWFbUk5RTktGQD0+QkRHRERGRUZITFBYWE9SVFZbZf3e29rc1svHwL68vL7Cx8zQ1dXZ5ezo5d7Vz83R0NvZ09XQ0tXa6mldW15ZVVNOU1NPT05RUExHP0BER0xNUVBNTlBRV1leY23s2c7IxMDBw8bJx8C9vb6/w83W5e3g6Ozo9N7UzsnJyMzacFxba/z58mxVS0hGRkdDQkVEQkNKR0VDPzw5ODpBRkpUWk5JSlFXX2X72dTLxb++vr7G0+H05dXPztTa3ufw6dzW0s3My8fGyM3U43JSSUxTW1xvdmVUTExLSkhISUZETE9PTEdFQDs6PD5ETU9ZW1pf79LKyMTDvry4t7m8v8jYcGR79d3X1NDO1NPPyszP0trf39HQ3XBdTkE8PD9DSEtOT01CQEE/Pjw8Pj4+Q0ZEQj88ODc7QEdNVWzc0tjOx8fHyMjHysvJztfkdVtSVGvpz8rEvby9wMLJz9zuc2xjbu5kWVNOSEFDTFRkX11vYVlUTkxHRUNERUtZXE5LSkVERU1a/trXy8PDwcDCxMrO1dTOzMjJ0Nff5/196djLx8fExczM2e1jT0hCPj9CSUtGR0RDPj1DSk1NVFpUTEtLRkBCQ0JIUWH9aV5eWVpUYO/e087Jx8nLztPd6Orz7eXPyMfLztHLzNjQycXDxMjN23xnVktEQEFAQkxXU09OT1ZRUF1lW1dbW1pUVVtTTUxRXWvezcnIy8/O0djXzczQzMvKyMzMzNDPzcrLzcPAwcTLzMvS3uLU293e+3NpV05GPjw6PDs9Q0VIQkNGR0hISk5JTE9PVlVYW1hYWm3o3czHw8PHys/b7nV5aWDz49jQzMnJzcvHwsHBvr6+wcXK093rfPR99+3s7/jxcFdPTUlJRkZKT1NPTUhFR0pMT1hZXW/37N/i+fTh18/Iwb29wcbIzdHP09bY2NjNzM3IxcTGxMPDwcHCw8zW2vNfWE5JRkhHSU1OUlhVT0tHRERFQ0VGQURIR0lNUVdfce3Z19LQ0NHT09TX29fT0tbg1Nbd1c/Oy8nKx8fFw8HBxMfHycvMzM3P3efo/2dcY19ZUFddZ21dWlxaVFJPVFJVTk5MTVVXWGB+49TSycjJyMvLzNDQ1d7e3dDO1NrZ09fVzcjDwsK/wMPCxcbN0dji5e3s72hYT05LSUpKSUpLUFlNSkpKSUhIR0lLTFJXVlRWYnTx4eLa1dnPzdXY2+PydPdzbfPc1dPW2NPQzMfFxcPDw8HEyczS23plbWxjbnT27XJkXlhXW1NTXmhmZltVVFJOTldYVVpdZvft4N3e3NrX2d3c19PQ0tXT2Nzo9ezh39zV2NfQzc7Q0s/T3drZ2+n7+W9ZTktJR0NFS0tMTk9MQ0BARERGSUpLSk1QTU1KSUtMT1/t5erj2uduamVr/Prc2Nvd2dbd4efl5eXczcvOz87Q4nluevZ2fefl/Xh9c2VXUVBNTVZgX1ZSVVNLSEpPUk9OVE5NU1ZSTUxUWVpj3Nbf3dzZ3ffs3t/e393h6d3d2NjZ1NLT2tPR1tji5e51XV5eXVxSVFJRUVFOTk5OSUZDRUlFRkhGQ0JESkdMTU9PS0tLTlBUW11YV1dmcnL0+XZrZWd5/+La0dHW0MvJyczKztzk9/H89enl5enq+/bc2d75a277cFNNV2ReVUxPWV9dVk1LTE1KSUxYdWZbXejV3urf3trW3+Hr5t/n+WNjeHHr3s/Iyc7SzMvO0Nfu4eDZ5e7g6/RpY2BbVlxeYW1aUU1MSEZLSklLSkxKSUxMS01LTEtPZ335cWhpcmpYWmluZl5pbnR++OPk29fZ2dHJxsjKysvL1NbQzs3NzM7T1NTS2evs/Gpgb/Dr7PRuZGxdX1taYV1YVl1laHVlY3xwfuLa1djY4e7h4fRyb/bv8G9139vVzs7Pz83MycXGysrS19Td3+zw4ntzaWJgWFtdW1tXV1xia1pdX1VUTk1RTUtPUVFRVFxcWl5fYF5rdvHneuvxa21yc/d0b+zp4+Td19fOzMzKzMvIyMfFwsTIyszOztHW1Nzs7u/p6OLc2+Pg19fc4O1xbF5ZWWJ4aGpuYWVz9uXf2drd3eHi4vx7dGpmWVddaOfd2NLX1dbU1NPT19TZ1c7X1tDV3fT77P1vbm5maXtxbvzxal1cXFpXW1JRTkpLSUdIR0pOT09QWVtu8vD1bmdhV11fXFxeaG9s9NnVzcjExMO9vby6u7u7vLy9vb/DxcjR3Ox5eu3k397e2Nnb2Nzr8HFra1xaVVVXT0pHRkZER0pMT05XW1RVVFFOUVVaZfTe3dnX1dLQzsrJy8/OzcrIxsPJzs/Q1NjV1dLP09LT3uj2bWRbU05KT1FQUU5KR0VDQUBFSE1LTVBPU1hcVVBNTlVcVlxeWVtp9vft3NDKxMK/vr68ubm6vLy8vb2/wcfP3N7p9vzw9ujo7t3b3+PfempdXFZPTUhGQz47Ozw7Oz4/RENFS0lITEtLTExXZ3vj19fX29fP0NTZ1dTU0c7NzszKz9HX2NTQzs3Kzc3O09Xd4+RuX1hQTk5NTUpDPz4+Pj5ARUxOUFJRU1JPVFJPT1FRT05OUFRSUFVeZG7gzsjJx8O+v8G+wcXGyczR4ubua1RWW1JOVmBoYGFrdW5pcGteWVpXT0pISkI8Ojs9PD5HTVZSUE9PU1leY21wefDk3dnZ3+zw6t7a1tXU09zp7ens6vL5+Ona1NjZz9Phb/ro6HZsfun9a2BVVFVUTkhIS05OS05ZW2lubnn04+Du/W5pal5YV1VRUVZWT1NZXmX32NPX0M7OzM7R4On5WlFNTEdCRERIS0tQWFpdeN7Z1dDN0Nfh92RVTUlEQkBHS0ZFSlFZXmZnbXHdzcfFyszP19jY3fL17ntr8t7k8uHofu7q5tnR0M7SztHS1d7e6Obo5tvb5ePg/HNsbm9gYmFVT1NPVFNZaGNrfeLZ3vDs7X1yamhgV1pYWUxLTkpPU11pZXng2NjU0dXb3OPn7HBeXllST1JTV1pYV1dg6NjQyszPzs7R0trsfGZlW1BOUFFWXVxbW1de4dPU0c3IxsjHyM3V29zg7ejs++7r5ufo49/W0MvFwL+/v8DEycjL0dbX3+fvbXBgXWBjZmtlXWVraGljYFtXX15iaGppXVpSU1hTS0tOT1BRT09UUVRYWFls/+3X0c7Kzc/N09zd1Nvu+G9dU1JNTVFXZ+bX1czEwsG/wMLIztHa3/RuXVFNTlNTVllcZF9429bNysjGw8PHxMbHys7R2N/g5vr68PD/6OHa08zMysrJycbEx87W3+r9a3JgV1BJSk9RUExMTElLTkpLTEpJSk1OUFdZWGBcWmBdX15edWn4/Gnv7evp9Xl8693SzM7R0NfT0tTQ1drg6PpxX1hPS0xMTlBYYGbv4tLLzs7MzczNzdbydV9YUVFUV1hg8Ojf2tbLx8fCvr/DxMXFw8fL1ux9amZcaWxnbWBy5ePl29PT0NDT2ezycFtWTkhCPz49PDw+QkVHSk1LSEpOWWBjem5eXW10aXN0fm9eXmx0+eDq6N7h19TYz83Ozc3Ly8fKzczQ1NLW3+j0cF5ZU01LT01IR01TXPzi3drRz8/IxsXDyczT3Ol0XmBcWVdVWF5nbnvn2dLLx8LBwL/BwMTL0t5wXE1IS0lIRURERUNDSk5henPs7PDxbmdeT0tIRERDRENGSEdISUlLT1FXWmVuavPh7fX35t3d3N7v+3Bl/dvX2dre4+jh4t7SzNHR09HX4uPg29fZ3uDu+3Bq+PRrYF1dZm5wZGh8+N7Z19XZ2M/Q0s/Z6X57YFlrdV1lfW7y6uvq6Ofv7ePZ3N3p8fteV1JJRkdDQUJCPz48PEBHSU5l597Wz9fa2eP/dXhtVUlKR0pNSUtLSktOX3Di4+vY29TO39rX4uTq5OR0b15eXV1geXT97+DY1NXa1tTPyMrMyc/U1tjT197o7OLn+W1pWlJOTU1RTk1VX+7Z2NbZy8fQzMjQ3OxmXVZNSUdDQkBCR0pJTE1QZnZeZvXz4t3m92tbVlZTTE1MR0VGRUpNTU9SVHDZ08/Ozs3N0Nbc7XpscWteVVNNSE5WVVljcm5r9+Dl7Obh2tXY3N7l8O7e5u/x9Pzj0c3JysrJy8bBwMDAx83MzdfrdmdfXV1pamX8+/zp7XNnXlpYX2V0b15XVl79YVZOS0tKSklHREA+P0RHRkpSY+rb0c3Lyc3QycrW2+5qaFpST0tMTEpPX2Z38OXXzcrHw8LDx8bDx87c9mRWTElISUdIS1ZeZXJ26NfOzMfDwcTJx8bKztjZ09Tb4Nvj7uz3+d3X1tvXz9HSy8C7ur7EwsHFzthvXWVdTkQ+PT5AQ0NAPT9HT1dUVVlfZnhqW1pbX1xXUk9SVVNVTk1RV1xbZ/jZ0c7LzMvIyMfHyc/Z4+P5YlpSUldTV2Nyd23y3tbR1dPNysjKztPi6ftraWNqal1ucHLw39bVz8zHwr/CwcHIzNPb531wX1VZX2JkavDi19DNycbGyMbIyszR2N72aU9KS0lAPj07PDw6OTw/QUVJR1BfaHzj19vf4ujubv5kW19QS05OT1FUX2Vp8dvXzMrJxMLDxsLEys3U1+DtdVVTV09OTEtQXWJffOPR0M3FxMPBwMLFyMjL1NjmcGxhXmxjX2R0bGjz5NPRzszMz8vIyMnO1Nzsd2lcV1RPTElKTExMT1NbYWBu9mtecXxzXVVXTU5PSkZESktJTVFVV1dbXWNdYHH9dvPT0+Tg3+bz4+F+fnZuYVxo9+Xn6N3WzM/LyczMzc3U3eHo6u99cGtr/vp97urp3N/ZzM3NycjMzsvNzs7Q1tvg7nZqX1taW15p2tTT1NHS1c3Hy9DT5mxhXFJKREI+PDw6Oj4/P0JDQEFETFVf4NfY0s/P0NHV2+H0Z2BSTktJSUhIT1RXXF9w9OjY2+Dd4OTq8NzU3eTk9XtlZm1ZV1RQV2tfZe7g2s7JyMC8vcDAwcfKzdHxe25cXGRtXlhZX1pl8+zl1tXTzs3LycfGx8rO3fV4al9WT0dFREVNUVBSVE5OTlBWVVFMRENCQEBDRENGS0tPWVtYWFhRT1deXWJ99O/f1tXb0M7U2Oft9+32X1tYVFVne/fr6e3r597re21bWFxkbuvi4dvX1djUz8/OztLT0dPSz8nKysnJzMzL0NrpYFNSVlhZXF5fa/Xu8uzc4dvW1dbd7X70Z15bXlxOS0dEQ0NDPz5AQEJFSExXcPLh3dva18/Z5/xfV05LS0dJSEdKTldmenp8a3H87trV2N3b2dnTz8/Oztrd3ODrbmBdVlBLS1dzdeLZ29LNysnIxMbLzc7O1M/O09jl/nf9fGxhXVtbcePk08vLycfHycXFx87a325YT0tLS0tIRkRERUtOUlRVS0dKTFFPTVBWWVx+bF5xdWlpd/xaTUxVaOTnbWBdctzQzdvub3Tv+HxbT1VmcHBfUU1bfPh9cXVu9ezr5fh+6ODTy8nEw8TExcjIyszP2t/c29PO0dje3+r8enD36/Dh6eDi5d7d39za59/W2tfX19/i2uXi19/m6Ot3Z1pNSUVBPz49Ozs9PkBBRktc4N3d2tva2ufb0u9xbl1paVtbW2huYF9ufHHw693V1NXZ2djf5tjQ2Nna7vL/YVdUWlxQT1RSVGJ16trb2dLPysjFv72/v7/Avb3BytHb43v97HZrfvPq393c693b3dnTy8fJzM/Y2ehna3BgXlhUV1BNTElFRkRARE1TVmFlVmNxZ/DleV5dV09QT01KSkxLTVz1+nnt5eLp3tre2NnWzs/b9ntjV1dXXGX16vv08Ojo7vzm3t/d3NjTzs7P0tjc4+PVztDQ1dbV1drd4Pdtbunj4tnT0dHMzMvIyc7QztHZ3N3Z1t/xd/z7ZmBoZVpPTEtOWFJJRkNBQkNFSEpMTE9aYXHs6evueXXp29zpd29mbHRdX2hpX1dXVFhfbvl3cXNw8Obp6eDlfPzt3NfY2ObzblpdW1xdWFpg7t7Z19jRzcrIw7/AwcPExsrR3vJ2XFhVUVRZWFxnX2Vvfezg1MvJycnJw8LJzM7Q19rc5XVcT0lISENCQkNERUVFRktIRkdMV1xgWFZbVFZbXlxaWVtjZW9uXmd1d3j74+jm4+DY3+x3bmRbY2NdVFVkZ25rXVpWWV9ea+zycWV93dPW0tDOztLRzcnHyczR0tfh63r++mpofOvj2dbX1NvY2+ri5n14Z2ZubmNnY11eZvPn7uzwdmRaYlxcWlJQTkxISEVISElMTlhbZGx2e+t5e+x+emhcWVhRTUxNU0xKT1Zbbe7x6fP93+Df1djf5vzt5up2+mtTVFRZYV9ZXVhfaH70+O3q2tfMys3Ny8jLzszMz9rl4/h6bPzq/O/t+Ph5dfD47trV29bMx8fIyszQ29ve929cVU1EQD49Ozs8PT4+RElLVF5hbHHm2tfY2dva2O31eXT+Y1xYW19eX2pteXnk19nk8/N3ZFhUV1dYV1tfYWRjbfL7eXp06dva1c/Y3OXz49/p4t3a0c7S0s7OzdbVz9zf4urt6eLm5Oz3+fTn5eDY09DPztPQzc3P08/S1+F+a2puZGlcV1hbWVhQSEpLSkxLSEpJR0dHSEtNTFNXXHje1NbV193Z1NPU1NPY19rf7/DveGRgcG915d3b2NnZ3Nzi6PjxZ1FXVFBYVVZYWVtg6dbU2NfPzszHxcG+vsHHzdXW1dv0bXNkZGJdXl1o+Pnx39fSzc3Ny83W0c/Y1tfd2NbZ5flwbltSUU9OSEZFREVGSExPUlRdZGzv6uPd2tjl+nN8eHdgVk5JRUpNUVxcZvzm593a19LTzcvKx8nP2uDsbWRiXFtaWlxoev3i2tHT1Nfb29vb6Xf7enDv7N7Z3+Pi2dza2NTQ293Z09PW3uDp+una3d3jfe/v6Obwenrv9ezw/PZ7dndpV0pGRkZGSEpOS0xKTVVVXlNRYF9u9/pwbm5t+t/Z6u707+He2N/743Zbd/N4XldYTk5PVVheX19v7eb19uPe3Nbe29jb49nS5314W1xu4+nw3dfPzcfBwsbP0c7S2OfwX1BIQkVMS0pQXu3e3NfQ0MzIx8PEyMjIz+P6aVtdWlZOSUU+PD1AQUNLTEtPVFpbXVdPVVJefu77bXB5fm7r3Ov4bmNsaH59bmdcWlZp7vHo4+rj2t3Y1N3m+mVgXlpXT0lGSUtLUltkb/Pr8ufd1dDMx8fGwcDCxMfR4+91Z11obGdgbWt249jU1Nvc2t7vcm1rWE9OTk5VYV5ea+7j2tXU3ebw721bWVJMR0ZIQz9AQERAP0ZMUVxy7dvZ1MzLzM7T5n15X1JXXlxaYmRgcXz48OTd3uLi29zr9GddbmVgcvB9euXh493d7eze7Xpr+PpkZnTr6uTf3NfQ1djS09LR0M/Oz9Lb3dna6Xr2+nBt9+ro2dPQ0MvIycjIzNXf7WteU0c/PDo4OTs9P0JJTFRv7N7a09Xb2tbV3Ofn+3V5YWFnXk9OT1RXXXH439XT19rU19zb4/xvaVtUXmBXVlZbX3Pm1dDP1+fe09nudPv1/H7t3NnX0czJyMjKycvW4erf5W9dVFlcVE5QXv55fO7z6dfWz8jDwcjNzM7P0dLW5Optav9rWlxWUFBSVlVPTkxJTEtEPz4/P0RKUlt349rRzsbDw8PFyc3R2ujzcF5bUUpISElMUFxva2/66uXa0NDR09rc4eP1ZV1UVFJTUE5ZVljy1c3KxsTDxcbFy87P1dri5nv95+jo6nxz9Ojl3ODm5nt7+Oje3+j9dHb2393c4uXd3drd6XR5dGBiYVpbVU5MT1NUU1NZW15iafns3d7c2exsXllWU1FOTk9RXW/x8vXk2M7JxsXLztPo93JcUktISEtOUVldYVpdeuTa2tbV2NTU0NLR1+Xn6/lybW/+5+zr6N3P09DMztDR1t7k4ul0Y19cYGpufH797dzRz87O09Xa4OhoXFBKR0ZFREdHREFBR01UV1p54OPg1dLPzM3O0NHV29zg3ef7921qbmRrX1ZXVlBPUU1NTFBTV2Fjafzx6dvSzsrIzdLd4uhrWlVUT0xMT1VXWmdz/t3QycfGw8TKyszW2uF7aW5RSkhHTFBTVldj9d7Z0sjIxcfJydTN193a7fxlWFBcWk1IRElNTk9MR0VFR0lLTElKTldaU1hcYHja0dXTzsnIzNTl29TP22pqbu96VVVnb1tSVFhdWVNYW2BgWlpcXVVUXmprbu/o6fHh187KzM/U297k2dLa3+X/d251al1gYVtgfOnm7ODf6uv+a3RqXmNraWlvbWtnbHJs8d3e3+Li6fJ4d2VbWFBNS0lKS01NTVBPT1hob/Hn6Ofu4NbZ3uDoeWljWFxdWFJNUlxsfe/r693c39rS0tbT19/Y2dzuemVYWVpdXVdeXFJWV1hfXl9ndvrl2M7MzsvMz8/Q093c3d3c8e3qcF1WWVpTVV1eXmtq89/Y0dLU1NvY2+Tj4XdZW1hUT0tKSUhKSUdIT1NWYm3z6/X16uXh2NTOz9DO0dna3OHvZmlkX2NfXVxcX1pRUFRST09YZ3z2/PLo4NXPz87OysvOzczS3N7g4eLe6PtzamdnbGp4/fh98t7j8P727u3d29/h4u3y73lmXlxdY2v9793a3uXp4+jm3NnY3Nvjdm5pbWZeWlVUUFFOUFFMSkhITlBUWWH36eLe1NDR0dLNzMrM09nj7Xz9+vl2ZV9jZGJfW1lVU1VaX27s7O54Z2Roevn9bXL6+/L8+uvu6+LZ0c7MzMzMz87Pz87O0djb3t/r+nVmX1pXWVRUW1hVVVhcbPno3N/c2tjb4en1cF9ea3Bze3FiWVJTVldbW1RSUFJUU1VYXl9kfOTf2NLU2eHm4t/f3+jq7u31bHl6c2Rea/r6e/puZFxedurg2tnY2tnX2+PzemdZWmBnZm5uZ15cYWNl/+vp5N7Z19bU09HU1M7KycrK0N7w/W5na2dfWlZcZ2x2dnBsZXns8u7q9mpeY2xudHl2dGtkXldPSkdGREVJS01SXV9j8NzTzMfGyMvMztDT2uP4bWBfaG5sbl5QUVVXV1tfX2NndHz27O3z8Ojl397i3+T3+evk5Obl497j5OPs6u15b2tpeO/m3tzr/fHs5+Dd4Op6bWVhZmNdXWRr79zX1dPZ3tvW2d3g3+b2+/t3bGdeVFJPTk5NT1BOSUdKS01UXWptbWl67eDd4OXo4trY1NDR2eHb19ja3eD2c2plXFpXT1FWWmRrc/z7fm169Pn57NrZ29vd5e3tfnZvbXp77uHg3vD45tzW083Nz9Xa2t/g9GVaUlFSVV1hY11eZm78eHr0+HlqamVqa2h469/e3tvc4PB3bGJcVVFOTUxLTVBWX2RqevXo3dLOztbe4erw7OPj5uz3/Xp2cmhcWFZTU1dbZG1t8N/e4t7g5Ovq5Oz79/X+ePPt7+7n5Ofo6enr7e3t7PD+e3dsaP3ueffn6unm5ef4bWpoZHn48ODl5d7Z3eDi+m5mYmVfaHNrZWpvamlubWtkYFtXU05PTk5QUlRTVl5pbnDt7Obd4N7f5N/i4t/Z2dnX2NXR0NHU3fFva3duYGBcW1tcZmRjbmlr/PDo4dzb3N/d3fRrZWBkY19hZWRmZmRoa290dfXn3dnW1dfZ3ePp9fn2+enp9O75+urr7+3r9u/4+/X37vLw/ffv/nBdVldSUU5NS0pNUFBPVV1ZXG19++7g3tzY2tvd2tvd2tjS09LT19jW2evzeWNjZF9dWV1jX1teYWRiX19ocPXp6ebk4OPs7u/0//3t7u3s5+Ph4d/f4OLs8fN8dmliaGZlZl1bZnT459nU0dDNzM7S2OdkVFBNTE5PT1BVXWNt+Pru4eDj397o+G5dWFVVWFteYnT87urs7OTe3t3d5uTt/nz/eP/3+vHrdmxgXF9fZGNtcXL97Or6dnZfX2Npbffj3Nra2tzg2Njb1tLP09vj6fjy+2lsbml5eO7k4tzW2eLn7nRqX1tYVllWVFlhYnH+dGxnZG13+Org29Xa2tfd39/n7/B7a15cYl5cY2BdaXv88+nf3NzZ2elzYlhQTU1LS05SVFpw7erg3ePj3N/o5+nwff15eHB8+PHl3t7X0dPV1dDQ0tTZ5/hxYV5hY2Zob3N5a21xaGdsY2l6+X16+v5kX2xkYGpz9d/Vzs3Nzc/V09jf3uP0cl9WUVNZW15mam55fXx3b3j6bmlpYllUT01NTlBUWF1ibezp+vf5/e/p4dzW0NLX1tbe7/d4ZV9fYFxcXl5o++/n4N7d3+Ld4uDf5ujp8vx9d2xkX2dyb37p6+/ye2JbWlVWVFpcZ+rm5N3c3uDd2trV0NDPzs3MzM3R2ePo73tlYFtaWldeYWRkW1lUTktMTElKSktNUFVSUFdaYfzZ0M3Ly83Pz9Xh73JiY2lrbvfv5d/a19jY2eHt++70fPp8eHNwcWVdW1VVVFFUWVlYV1pZWlxcYGr+6eXc1NTa2tjc5+HZ1NLNzM3Jx8nKy87U3ej0eG1qZWRsa2x2bWFaVlhaV1pdWVxdXVxeWVVTTlBWW3d+fvV1b3RuZ2p39+nj3d3g2tvo7ef6eG9jY2Jw7eba1NLT2+D6ZVlPS0hJSUtTV1hYW1xcYG7x39TPz83N0dje6nv57+Xg39vd2tPT0NDS3OXtdnB0bmNecPXv5+x6aWNjXmBz7+ri29bY3ulsWlBNUlhiamV0dnBqa3h3+vn49PnsfmlvcGpvbGJeW1lYWWBt+ufe4OXn7PT0c2llXl1cX2htYlhTS0xNTVNbaPfl3dTX3+Dd2dvb2t3d3uLe187Ozc7R1tvZ29va3N7h5PJmXllUUlRZV1tkbHzx6/B4ZF9dYm559erj5/Ht9/vt6+Hh3tvh39rU09DN0NfobF5SS0dITlNVW2BeXF1iYmJmYmBdXFxXU1FLRkNFSk5VW2rr3tnUzs3NzM3NzdDR2NzX0M7JxsnM1d7teWtlZG70//v1cGhfVVVZWVdUV2BlYm59bm1qZ3fw49rX09Pb3tva3Nzg4+PtcXD56+Pg19TY3/FvX1ZRUFRbXl5oaWdvcHBrZWJeXGBmZWpiWldUT0xOTk9QVF1eYnf57NnV1NHR0dDPzcrJycnO0dn6Zl9aWl9q+/Lu6u3t4uDo6uxxYl9eZmRfXltfX15haGps7+Xq5d3a3eHb4PF+dGdnb/bf2tfU1dTX3eLrevXg5Ovr7/12aXZ9bmJZVFNPT1NUUlJRVFdUUlBNTU9PV2l98+vi2Nja3NrZ1tLMxsXIys3S2e9sYVpZW1xhZGJkZ2Zt9+jm9Hl8b29uZmJhXlxfXl9eXmFu+Oba1M3O0c/O1Nno9u949enq5ur2/v9oY2hmbXf36uTm3uLv5+xqXVdUU1FTWFhXXFxeX1xeZWBdZHH87ejh5uff4+rq6+je1M/Pz87P0NPd7PlvWlJYXFpdX2NgX2hsZF5dXV9ramhrZmddWl1eX2Beafvl29PQ0s/S09DY29zd39/o5uDo6Oj0+2xjY1tbYWpx7Ont4+Hj/WJgXFlXWlhWWl1fX19jXV1oZm3u2tXV19XX3NztcHr48evg3d3d29fb3+Pv+G5mbHB6cm5jXmVramNeW1tfZmJeZGFcWl5ta2ReXFxgcPbo4ebm5Nvb5u7o3+fy5N3Z19zl5+t8ZV9hX15q+uff4d/d4f9yfn38bWVhWVhTUlRVVVJXWllfduzx6Nrb19PZ3uLe29fW0tPUz87R1NTX3+v1ffTz7HhoZ1xaU09NS01PVlRSVFNXWFpld/d8dHX15d/c3tzf3trj8fn69e7s7ezm4dvg5ePs+GxkYF5fYmtnaHrz/WFbW15lbWNbYF9cYGdlX1lXWVdcaHvp4OPd0s3P2dvW19bRzs/P0dPQ09nc4erzdv/u6Oz+bHH9bl9bWFZTVVpWUVZTVFZbXWBtbWtu6d/e2Nfc2dvf8nBtdm99/2tt9e308+vq+f/8dW96c2xvamZ59vFnXmFmYWJgW15eWlxcX1lQUFJPU15ofe7x5trb3Obj1dTWzsvLy8vNz9TW3ert9nF47O5+cXX7eG1uaGVpY15jbGdnbnRpX2FiX11ibvzr5+Tb2t/m7fh5ffrw8v/58OTg5O3s6vV4bn77cm1qaG90b25hWFNPTU1MTVdaW15fYF5bWlpaaXr34t7f29vd3eLm3d3d3dzX0NLT09bX2t/h9H73+Hd4cXXu8PxuZ2ViWlxnbfjk5+rs+HVoYmdeZHnv5+Th4d3g5uXk2tzf3t/g5OHqfG17+H38cGRhZWNiY2x39/b9cmlgVk5RU1RZX1xUUlJNTE1LTFJfafzj3tzb3d3d1tPU1tfU09LS19vc2Nnb2+Dt8uru9e3l5u5zZFxXVFNRXG/45+rv+Pd2aGJeX2V65ero5efl6ujg3NfV1tjSz9DQ1dve2drh7nxeU09UUFJVV1dSU1FRVVZVV2b29Pd7bl9dWlVTUU9SW2V48u7i6Pno4NnW297e4d7d39/a3Nra4uHtfPDx9+bc2t3tbWJXVFdcYnLy7fJvcXRtcWNaXGl87d7Y2d/l5vL26uXj3tvb2tPR19zb1tTS09vrfXdta3b+a15aV1BNUVNRVVlmbGReW1dUVFFOTUpMUFNaYnN+cnb6+OnZ2dbQ0s7Ly8vOz9DY3uP4ZnJvYWh96fVqbGZYWVtYYP7w6u/r6//15/hsaGNlePbq4eDa3+nj5+zn7vPh2tbR1NXW3+Le5OTrd3Bxa2r99XheVldSVFdYXmJ1+/b693JiYl5cWVdVTk5PT1NeYVxeXGFqbPbn39XRz83MzM7T2tvf6+f7+fB0+vN8d2ZZXl9XWWj45+bl3t7g3ejw+mJdY2Rtev7u8H31+nv2fG976NvU0c7N0dPY3dzc4eTm7Ovp6vdnXVpTUVFSVFRZYF9jaWNfX1hUVVdUT05TWV1rffTo6u7o7ejh3tfP1NHO0tTY29zj6/f9cHVxY2NcXmNdXFhXV1ljee/56ODj3t3a3OH3YWRsfu3l4e337e76b3twcenc1NLNzdTY29jY19x8e310a2NfWFNSUlFPU1hcYGRnbG53bWBgX15dVk9QVltbXGdz/v1+++zm4dbU1NDOz9DW2dfZ2t7xdvnq9Gpham1nbmheYFxaYWJyfXvy7Pnr29rle2tsb/Xofm3+c21ybGpraG/4+tzR0dPW1dXX19TY6/Dt6+xraWleXFhRU1dRT1RWX2Jja2JfYF5ZVVNOT1NWVk1XZ2Jp/ubj3tnTz9LNzc7O0tXSz9Xf397g5+75ZGp5cHxwaGNeWFVZWmlvam9u89/i7/35/Pb36+x89uvt59/p7+by+end293g2tvf19jd3t/i6H1sa1pVWU9PWVRSVVVcXWZ6cGFsZ11lXlhXU1ZVTk9SUFRcZP7j5+Hb3NXT0NDV29rb3NTY3tjZ2Nvh4ux3eXxsfvJwbWxna2z38m1pcXf5493k5ePe83HzfG1maXVsdG5saWz26dzY19fY0tHU1NbX29vn9vF4aF1YWVdUUlVVVVhYXVdQUU9PTk9RUFFUV09QVVVaXnPu6dnY2tXPzc/OztLX2dfa3Nve4+Ph6ft0fGlfZ25yb25lX2RkYGNsamv15N3X1tLT19vl7vn9enz2fP3+c2xx6ufp49ve5d3l5N/j4fDr6n1ma25bWlhYX1pcXl9qY1hYW1VRVVVaXFhgW1pZUE9RV1lmcXzm697V09HR1Nfb4+Ll6uDe39ja2Nfg6+zyd3BobfpzcHNta2BcXF1idvXr3Nnb2dve5XZpbHZ3cG9ubmtu7+DY2dzX09XT19jX2dvZ09fd6np1aFxVVFhVU1ZcWldTT05OTU5PTlFQTU9ZU09RVFlfbe7u39rZ0czLy87R1dvi3d3j3d3Z1tTU2uvxfGhnbmR5/WlqYVteW1ZaZ3Lr4t3T2dfW3uLofHrv9vjre/bzbffm39vh5d7d3Nve39jc2tbd4exwbmVbWFpYV1lWWlxeW1RRV1dWWFlVWFpWVVJSVFBPUlddbHNu7tvW0M3N1t3f4eDc1tbTz8/P0dTV42tmc2lnbW1wZmJoYF1bWWN09+Pc3dbV3uDi7fL8bGlpd3tkaHrx6ePa3+Lk29nc1tbW1NPS19XY3vBrZmRtZVhWU1RWVFJOTkxNUFBQTVBRTU5NVlhSU1NYXnpxcebf0s7My8/Q09rb1tTU0NTW1NnX2/RpWlhaWVlZWllbWVxgXGl+797Y087Mzs/T2tne6e93dXxpaHVz7t/k4+Tx7+fl4ufn4unw7u7p7XNwbWJrfG1mZGZteGloYl1cW15cWFlYUE5PTlRXUk5NUVVVWF1u+efZ2NbV2ODe297b09LS1NXT1tnh+2plXl1dXWVoZWRgZ2997NvZ2tPQz9XW1t/s6fVkXl1SVFhaavDh3uPc297b1NbZ2NfS1tza4O/p73R8+Hr4a19fX2BZUVJUUVVWUVBNTE1KS09PUlpVUFNVWVxjfN/Szc7PztDY1tjZ1tLR09jZ3OPq8WxfYV5ZVFVZXF5dWVtiav7k3dbW0s/T0s/S1t/q+2laV1VWX2fu3N3a3eXd3N3b3OLe5e/s8PX4a218cHnx/XJtZ3Z9cnhlXmVfXFtcVVFPTE5QVFdPTktITFBSWWj03trX1NTV1tra2NbT09fY397Y5Pnu/Xn6aWVfX2NcWl9laPzn39nb1dTa2tze2dt3ZV9cWlNTWV9u+Ofi2dvZ1dfT0dPR097g5+3n7Xj+8+7o7vf9b2heXV5cWF1dVlVQUlFMTE1OT1JRTkxKTExNVl5u7OLb2NjU0tPRz9PPztDS19Pa4uDufH34bmNdYGxfYGlhYWpx8ujf3Nza19ja1Njg52xtdGZjYmx4+/rk3t/Z3N3W2NvZ4uz2Zv31am/4bvbqevF5e/FnaPL8bv9rZ21bXFZOUU9MUE5LTUxJS0pJTU1RW1lt7ezZ1tfOzM3N0NfU2dvZ3N7d4efh6+zucvP/bevs8Ofu+Ovj4eLk493m5uX8fGdeZmBeZmprdWxy6eHa1tHPzs7Q09rd5enycW54dv/++vL59XpsbmhfX2BcXFdWVlBNTU9OTktKTEtOTk1SVVZXVlhqb/vb1dXOzczM1NXX29bX39vc5eTt//VvenxlZfb0++nx49zm3t/f2N3a19ri5+jp7HNmeHd5altod3b46NzT1Nze5e38Z3P5eGRv6ezwe/Xp6uDt7t3k83v67vhvY11WT09MS0pJR0RJTEpLTE1PTk1OVl1le93SzczNz9DS2tvZ2NTX29XU297p7uTn8X3q5PDz4Njb29zo3uD4/334eWRo/PtsZmdiYF9eXGnq7N/PzM3P0djZ3Ozo5OLq9u3k5fR1dnh6fvT8eXZkY25ramVbUU9PS0tLSUdFSUtMUE9SUFJWWl5q7urf1tPQ0NHW3N7d3+De3Ojn5+rldnr1//F08O3o4N7X08/Q1tLc6+Dl6+js8+bf9Od9XWZhW1lidvLl5Nrb29rq8XBr9ern5N7g2OJw7Xh3/f56593v5+R+5uT0cV5TTE9NSUlIR0dJR0dKSkxJSU1YX2f87d7T0dHQ0N7e2dvZ3tja1dnt4efs3fN579/n5tno387R19bb8P93bGBbaGJueXPg/nT4W1td7mj52evVztXQ3uDpeXn53vTl197l9/hoYWpcZXvzePn+c+z1e3paXlRUS0tMQ0lKRkpISkxNTEpaV17+fOva0NXW0t3c2Nnh4ODh3efw/Gb1a2L78d7i3+Dq3NXPz83Q2dLZ3+t1b2zzbXnn7eB9XmxybGn28OvY29XX3t3i93B66ufp3Nnn7Ol7bWdpYWzn9ndw3uJw5O16dWdWT1RKRUZGSEdFRURGRERGSk9SWm7b1trV29ba4d/R0N7ZztHW2trvbfT2buTV3Oba2N3bztLbztLe3tB8W/lbU3BsY/DtW3n7UXHjZefT3NPO3NXW9N3aeOXX6+Te3N9ubvdcW/FfX+j8Y2jm7Gxs6W5Y811LT09CQFBKQUtMRUpKRVBcTmrdbdzO79/V9+jY3tTQ6tnP5N/m9/ljbep65M3i79fd39jLzt7WydfqzeBaevFUWORxWWhmUFdsaeTdb93O893OcPfVcnjW6NfO+t/Ua3Hrbm1hftTtedBtX9boZmrj6FtZX0xGTEVBRklGQkhLPkVPSlRlb/fn1eJ94OFn49je1s/L1dfN5H3Sdlfg3+Xc1dPt+c7cZ8zM/NfH4Wjf31hY7mRa6OJTVf1lUPjT+HbLz2jVzG5mz95b3sri3s3kX+HsV1zsXmHf72zz53Np+3lZdN9gWGpURE1RQUFWTz5LW0FAXlpEYthpaM3fV+3PXVrL0GzOwt7eyOVf3dtV/c3h7czR6c3K5trH1t3Ly9/a1mVh4/pSfNpWUHZbTXnwWH7M72zR4ltr3F1r0N35zMjn39L5X+X4WerWbmbY6F7o215i32NX4OdKWHFHQlpQP0xYPj1SRT1SbkhT0vJf1NdVcMxyX8fKfsvA+HfJ4VDd0Vv4w9ptx8j9y8Lw3sLW/svMY+vPYVTa6k7r0E5M1G9L381ce8LaUs/SSl/NZlPIz13MyFp3yHZM1uNO4NBQWdBfSdLsRHbYSVfVTkjfUT1cXTxMbz07Z0Y6YnY/XcpTVcjtStbNTvbC52vBz07Wx1BcyWBOyM5Uz7953L3VcL/HacjAZt7CYVfLdErV2kVc1k1SzWpOzM1Y3spTWNFfS9rVWNzHe2nI2l3Q2E72yl9Xy/pM1dlIZdVOUNRgSdvnRlNvQkVlSjxNSjlIWT9D7F9J4dtN881eW8vXZMjHYNXGbGPK+EzV1VffynHfwdB6ycpxzsT838LbZszaTtzSUVzXV0vc6Et7z19ky+xQ2uBNa9hfcMjQa9TJ/uvJ6V/R017jzF9k0G1OdHBLWOFbUdz0T2xtRUxtRkBVTD5JVUBBWFBKdPJRatlqadfcbc7McufM8V/X4lPn0Vpjy+Rdy8Z13MTi9sfO8s3E4uDJ5lzV1lZl21pQ5HRO9dlabdB6UuLoUWrVYGjI1mrPy27ozP1vzdRe3sxeXNRvS19qSVjjWVPf9VFo8UxOcko/UVA+SFY+P1NNRmPsTVvUblrQz2jWyXr60Oda6+xPZdBuWdDPXdfIcunF0XPLw+LbwtBuz81l8MtwU+HcUl3kW1Xc5k/szlRV0HxN385b9srmYM3NVO3LfPnG2FvSzFlo1VhL7XhLZNVXVtB2SG3kTEppTD1MXD89T0c8TmlETNxtTd/RY97C4GPMzlLw0FNO0+FX2c1m9MTRW9XF59/Cz23Jw37kxORizc5RadJaUNn4SG3OU1XSe1Xb2VBo0Xxf0M5j48Z8WdXfV9TG7e/J0V/mzlVP1HdGaddLTtVqRWbcTUX1VTtOdz08X0Y5TGZCSNh0S+DMWWLC1lrNyGdrznJH6c9RXMjkT8zHX+XB12jFxGnYvtpgxsli28D4UM/XTWnOWUbf2Uhby/xR19FNXsj1TtDJWGLH6kzezlH3xORdx8VddcZrTt7nRlXRVknc3Eta0lpEY1w+RWRDOUxROj9kTkFu3UxazuhXzslk58PnVNXcSVjQblPPy2bhwdv7xMR63MPY7cfK793F1fzL0Fx41VtQ6mVKat5XYM3bW93RU1rP/1TVzmjqy+lU5eBYadHmbMzNcODP/lXzYEhZ81RP4m1Mft9SUfFNQVJSPD5MPjpOWEZW41xR3t1Z6srjX9PLZPjRXUn77ktkz31dzMr0zsDY7MLJ5se+1t3G1OTExfziy/tV53RGU3tSVtTXYtvTWFrV9VPf0lxyythg2NtTZtH8Y8zNd9jK+XLR7Uth21VV23VOaOtQad5VR1pRPT5JPTtJSEFVdUxT5GFR6Nlt58vzYM/RU13aV03d5FP0yOjwxsnozcLZ2sHK5szI+/TH037Q2FZl31NEWVZGXdljZsrRWunQbGPU6Fnl02v1zPlZ3dpa+M/vds3TYeXOfl/Ze038405Q71xKa/ZNU3tOP0xKOD5QQ0BcXEpj2GFb0dlc6tBkas3sUu7dU1zbfVXl22rbxuDsxczfxb7OzL7Qd8/L5d3J5GPQ401l+EtGdXpOa9htcNPfWdrMYFnedVLZ209nz2tN2NRa4crjes3XW9vOXF/R4VT65kpQ3FhFbmZDS1xAO0tEOkhWPUb0Ukva3lrszP9b1d9c4+BTZc7tVuPSY/jH13jIyPnPvs/WvsTfy8hi7cXlVNLVX/XYWVD1XE1+4FhnzNpszcj55sj+U8/SWfPLflvL1FHnyWFqxd9P19hSbdVlVNn8TG1xSU7fT0NsYEFQXD8+Wkw6SGRDRut1VtXOauXLeFvV+FF09E1a119L5OFe7st+Z83XbMnB0867x3jHxm3oyu1eztFq3c9cWttfS3TwTHfO+3zLz17q1Fpf1PRX2Nhd7sz4WNXXZ+PSambV5VXt1V9z3WNZ7WFMZmZHSmBPQFBQPUZVPzxTUUFU32Ba1N9e2c1q8cvsV93cW+/fW2vN4GjOzl7uy+B3x8fqy8Hl78bQWfvTXmrS613a4FNv32RQ8f1f0tPu1cpxZs7lac/NbenG3GDQ0lhv0PxS5vFOXndUUO9wTGfwTlbvW0xvWklcZklGXk9DU05ATGdKS9juUfDVWmXO317Y1VVg3VtNbWZQe9tl/9bpYtjS89XH2NbByNrDxO7cyN91ztFs6Mv8YM/oUXHfWmDY+13t6Vh2z+Rjzcn+3MnicMvbW9rOZF7YbU1470xY5k5L3nJOZOpYV/5RS1dWQUhZR0BQTj9LZU1K5WBGdtVaaMnZasrFZfTJYE3a31XjzGR40utl09Vi383s5sbL6NHM7N/J31zX1Vv9zupx1e9O6M5bXtH1UufdX9rL5+HDyeHMzH17zt9b3NdRU+dRRmdZRE5kSk3tYUrs2U9h1mJMcl1GWWZJSWNNQ15zS1HqVEvu6lXmyeb2ys9q5eZOW9tbUtfaTnbOa2PL4k/axu7hwc3bxMnhysf/8crbZ9XOZG7XXVTbdUls7ktS5V9V1c1r2L7V/MjOXNvG93bO+1N86kxV90pFZl1HX+pMZdhdWdl3SFxrSUpkST5WVz1MZkdLdE5J2/xO4Mfd4sDL+M7WV/nNX17P+VHf11d2zmlT291Z38jr4MLV3MTNXtnKYfnJ41fY20/qzltV1PZN5tZZ98jg5r/F3c3Hc+/I3VzV305a5ktH/E49UFg/S/tNTN7uVeDRVF7WW03nakNUcENKe01Ld2FIYeFUZNVtdcbPYNHNTmfSU07Z/EZx0lJoznRS3d5X2sbu173K0b7A3MzF4NjF3W3O3Uxu01FS2lRF6exKX89jZ8jW5cPMaNPKY97FeWDK+Eve4UZT90JE7VJC7/hKe9dOVtdUR+deQV5qPkZkQD9vTz9w7Eduz1tfxtJtw8Nu1cReV870UN3jTnfdUV3bV03kd1Hd0WjZwd3jxM57y9DxyMp6zs5Y8MpfWcv0TdTWTevMZuzD2d7A0W7O2Vbf01311VVO+FZDW1Q/TVdAT99OTdJ3TtbnUNvWTm3UTE7oSkV9V0Fv80Rs3Udfzllow9twxuhR03lE8eVIbtFMYMxYVNJoUs3aXcbHc8nA6M7AeuTA+WXE3VnP50vZ2Erp10lm0U1XyGNWw9NtwsZi0MlP+MVk8MNoU89ZQ+tXPm5qP2zdR2XQTFTQUErYXEH8aD1V/D1H60RF3FFFznFFzdlMyr5ozLxeeMVTT8xoUM5uSc/tRdriQ/zQS+bBXPS+5HC/1VbF0kjMyFXSxFV7v25ev9lSzOhOzM1PzL9e0L5s38BUV8hjVsZtSdZoPWliO1leOlDoQk7NUEzMVkXNZEDa7D9p2z9Y1UZU1ExO0VJH0V9IzttOycVT18xJXtZJVcxNSM1cScjrSs7PTtjDYNC+9NO71+TA3FXH4U7H0UzSz0zZy03lyExby05MxnROwdJXxchU2MhN4sNWd8VcT89aRdxdQOtiP2PqR1zjTlf3Rkl2S0ptUERrXUNb501a3lVZ12pX1t5ozMvsycxZ2tJNdNdVYNpWWthZWdlaU9znWNzSa9rK6OvO7XHZ+mvZ3PPX3O/Pz93T0und2uXh3ubqz9Tbz9Lp3/VbaeZZaOdbZuFiUWVVSltXT1hUUV5xWlv4XVpjU1hfWlliW1JpYWPybWD09V9s71505v3p0tf23fZTaWBVZmxbYuz1e+5u7tje5drW4dzT2dnW4t7X29/d4N7f7vXx5+Hl6uLg6N7e+ezn6+Da297W0Ob05eft3+dy6OR3+ftfW2VqYmNaU1RVTUlKS05QTlJYVFVUTlFTUVVmaWBv6N/r69vf2dTY2tXQ3O3p9mZnemFfd3Jpc2xdYGlv+u/78Onq/Xh3aHHr3trU0tLT2NzT1c7W2t7d1t7U0tbV0s/R0Nbg3uZrb3lobWdgXGdzX1leVlReX2RfWlhXT01NS1JZWlxkfv1nXlxdXVtq9HFseuz97fxw69/l8uXe+GtgWV1jXV5kZWdudvvz/unj2drX397X53X1/G/33trYz83U09vs8enp5+fwe+vqdd7p6dvT09XR49zkeunq2tr54Hf67GDreV/9enhxbWFPUEpEQEFHSU1OT2xdVV9TT1FVYGzrbvDg39fp19HZzN/a2fPgZWh5Z254emxfamhvZ2Vt7uN8eellX2tZU1Zbae3c2NDQzcnb1dDTy9bP2NrP5NrQ3NnUz9HX3O7o9V9ibeRw+vJPbvZcVGVtXXD5XWhmV09KS0lGTU9SX11rYFtaZVlbffr67drccePg/fLc5u/h32RjYVRYVGFlXWljYWhu8mz15tPa497j7HdreV1jdWt83dba18/a39vW1tXS19nZ2unk8ujj3+ra0+Xq5X1u6Nvn3dbnb+jhcHfn5O/l7m1fW1NKRUNDREFISUxNTk5JTFBPUGrt9d7P1t7T0dfTztDQz9Te6X5lYWZmYGxlZ2JlY1tqbG7j8WX6aVlYYldQWWRb6tzi2dHSz8nMycHJx8XJzMvO19ni3dfa4uXpenBhaHZqffRzZ2hrVVhpY1375/1q+mBPWVVKTU1NT1RXXVVLUVRNT1lg/eDb2dbV0tXi39rd4eZ8dnJoXVhVVFthUmFka2v16/feztfw4Pht9W9nXVh83Px25OHf4+T+3tDTz8/OytLR1drrd+Hv7+Tz/e7n9Xje1+Xr3ujc9mHzdv7c7/be7GtdWk9ISENCRkVLSkhGRkhARUhEU2zu1c7MzMXGzc3Kzs3U6uTc4+tpVltaWFVZVk1WXVxtdPPk9ndcZGBfXUtNYF9sdvLf2djd0M3My8bJxcDJx8TO39TW9Oh4aW1t/Gtkbfh7ZGjuZVhnV1ZqcH3p3+bp+W1qZ01JUkxMV1RITlJGR0tNTlBfcujUyszRz8zW2s/YZXjubF9hZFBRUE5XVGD1YF783eTZztjp2933bVxZWlZoYGDs4uns5NnYzczJycvIzMzKztbX3uBkYnpob/Jq+eLl/e/m+/l8Z25sXvHg493R4PjfWkhJS0ZBTExHT0dGSEBIQUVUU3rwz8nLwsTDyMzR3N3b7Ozuc/xeXl1PU1hOV1tdXHre6drW7OD1V1lSUk9bVVfra+va29bbyM3Pvcy/vdC7zMq+Z71L5eNF2UfbSmxc9mXqYW1kT+JJ403VaeLP68v232ZRXExNTktTTFNSU01OSkhQTFRfeefczdLVxt/S2FrQWfTfTc9C41hN+kfkS+la5HbT38nU0MnqzlPZSF1XTGNMZlxj6mrq3tnN1MnMysrEycjGz83c52xie1pc+lTe8WfLVNh3YM5DylTq2n3Kacz62VJqR1pAUk5ETT/yO1VEQU1AVkhS7VXU0tXHycXKydDS293j6X5naWJeT1VOXk9Xa1fsbN3Sbt/NTd3wQdBDSNs71kpQwT/C/t+6YbbVwcLMuNLAyMTNzfzTXXRZU11J61LbW2xcaGhfaV/pZd3q6e3X1vj5ZF5hSFthPHRQQdg8UGk8zjxW3Ty/R9HKS7hav/7myE7WV+dYcO7mTORL+V5O0UvJY8jfzdXjy2XOT3FmSOU/U1JE3U1f6VnQ4evE78rD97vXz73cxMtsx+tQw0PY3Ee6R9vPRL5Hb8w9vE/pxz++RtrgP8Q8Y1Q61zRXUjnWNN9FS9490kne5XLL6sfRxs/MyfPLaNvjXt3w8W5VXV5LcFZZ5lfa+VrbalzVROJvPck7bGY6yEB9zkO6Yc28VLPtxLpXs12+vE2zSMnbPL050l1FwTrJTVLXP9BK8PZs1VzX7c9u1P353UrfQ11RQuM9XFBA2jz3Wz/IPc9sSrxJvejrv1HJVt57X9hn02TaWuBVV+tN1VXZ2lfKU83eTsdE3Vc/yTj3UD7KOctbYcZWvvbLzc7H4MXPwNbC0NjMWsxV5Oxgxk7P5k/IQNNpRMI/x29Jvj/BWl3JQM5HW04/VD1QQEpJUUlOX05rTdddd9N8v+LIx3fFavfJS87aUL9L3NlC10hVeUpc3VhY1VDt8U/eXkzfT0/bQuR4RcRR58ZTvdbmumO9wl2z8MK+Y7tj/M9jctxfZs5O8OdC+VFD2kZRykPT2Uq8UfC9QMfhSL078941xThQ5TLIOlrhN8RBatNDvFLKyVC8QcjlRbs+xOVLu0XP50nOTFfRTtrcSsJM7c4/w0Np1DvBQV/gPMY+7OhFvUDG0k+1Rr3Fc7Nfvb93vufexF7Kyk+9TuPPO8A/T9k5v0FeyDzAQXrKO7w+1NA8uzfbTDvTMN0+SuI7ykLd5E+9Tb/R7LdKumvgwkK6Ss3YT8I+0FhW2DzOR1rVQMQ/4P0/yT7LV1rMTcZN4vdY2UrQZtPaX79bxsl7t/fAwGi7fc/MZcr93XLebFnxPuhLQ+A64VBGxUbazkrEbGvDcN7GcvXURXFnOP1DPuo6VHc67mBOyVfkxVvZzEzL3E6/WW3ER8/pSMtNW8hO9NZPytpJxWBRxkVwy0bOz0LGWj/APU/KOMzcQLtIbrhEwMNYtNrhtWvQu1W/xEi7+k2+PW7MNMlNPL875845vVpGuz/Vyzy4WlC8Oc9hNsk2UmU4zz9ob0rITMfc3b1Yu+5ku0XC3Uy4RenLPMNIRMM63GlBvT/a2EHDQeX8Q8tG0G1bwkTNV1THPchiZ8FDxNZdwG7Nwv3Dy/DH39rP7dfy4lxo8UJsRktgOuRIVd1BxGpbv13Myl+/3P/IYPt3TVNMTUFUSz11P1tfQMpM39JTvFP7x0zO9VfKa2fR+2DZYFrfVWvZdH3T0GHQ2lbSYEzWakbYakjaWkvcTkrcUU3UXGDLYdjG7cnEzszFzM/FzNnC01u+503OTkh2QEThQ0nPSlXFT9jCSMTTRL9yS8dDUs06WWY76z9C1D5l3EXGfG+5bM+7VMzMTMFwU8NWds9F8N87810/0kdaxD/XyELEX1DGPuzQQM9kVMdH2tpKykxxzknLcurHWsHS1MR8vu3dwl3E8m3FTuvdReFGRXg6YlRH1knW2vXG/MLQ88FeyuxTxkpfez9+RD9nOVBRP9pG/NNMx/rex1nL8uPPVsp73txYyFhk0k3q+VXN/VzJ4mjO+2/aU2ToTVX7UmN0THpcTG9SYldVz21qydjaxtbMvuzNvv3JwWzFy1vU3VNheEpLYEZMe0ZPzmxXxtFby9dU0exM0fRH4GhCVlU9UlE9Z3ZH4spe0sJ81cZye8ReYcZfWMpeWM9VT9ZaR9thS9ppTs/pVM7kTubcSWrRS+3TT97PSmbPTE3LUFm/U/i9Yt+7Z/G7Vdu8Ss/FQdHcQtFXQthJQNZFS9I/4NJLv9TgvGrIxU7I71zLS+76RGpER0o+XEJP8UfWXlzDUNTTTsJsXsVY689W3s1f8cldesZX7cpT6M5ebchzTc1XR9xLTt5PaOhQ/FNG40hHz05uzGTP2e/H583Kb8DN6b7a0Ml+0e/+3VraVU7WRmZgRNtKbc1PyuNTxldazlJ5z1xh3UlL7j5Hd0FY6FZn0N1gy9NSzc9e3ddu++/faGrbWm7XWW9l9GZI115JyOxSzfBN7fVMYNFeXMXnWMrdSN7dQ+vITenCV2S+eVK+8U28702+6kvC3UnL6knLfErXZ0j1akjy6VbP3XjM4+DgZdL6ZcluVeBOTFBGS0dTWElofEv42FJl0XRmzeJVz9tQzcxO08Ba6b9rc79iTsV4SsTeQczoPNp4PN/hQtPNROHbRWt1SXPeV+7YXdPeXsps6cVfzcpwxdf2wuFsx+lizWFWz1RP5E1O4FlV2mZU3XZV3fdY1f7/01DpbkTpTEvrSmLkTH3QUnXPUefNUuTQT+zPXOXNYubLe+fObPHRVm79VNNWVtVJb/dH8GVL391dy9BYzN1N2PRQ1uZP5OFX3d9W495b1NZj0Oz1ylvRzVzM4GbVeGXYaFHiW1jYWP3VUOrWVnHaa2/O7mvQ/lH7bEdU70pM3VRJ7WVNbu9cYd71XOHcet3d1Nv6zdltz87r3815dNhdWflaR1xkQ1d0SWPWZXHQ8F7/6VxX3PhT7NxrV+zaU23QenPQz+7PxNvgy9Bf2clNZ8laU9r0TW3ySl3qSk/hUUrfa07b1F/rzvFt5G5dX2hlWGjeaE/a6kLe0Uhl0WJVzNRa1NNc2s1UactiV8/lW+LnUltpVlBVWE9PWf9nesf1Zb7XUNHOVV3NXU7N7Erc5kVvz0l1xVX8v9z5xd5XzdhH2cpI9MVNXsZPV8lLT8pQS8pWR81kVcplYMl3V9X7TOXuS+d3Rdr8P/bzP3ffR+POUNLAW/i+XVfCbU7F01PIy03SyEVfzEpJ21FA/l5E2ttHzstL0s1G+8tKaMtLcMlKXsxKU9hTaMft27rN473cYMVfS89bTspwS8/sQ+jgQmjdQFvZQlTHVE3F3E3Hy0/O20zP3UrT1Unf0Udv10Fe0kJlvldywW1p0Fdd2k5PzF5Qx3xOxvhFzOZD2epBe+VI7ttXzsxZysJK5MNKYsJNWMlZTNNjQXd2PmbMTt+/YNm+VnnETk3HZk3E9E3HYUrL9UbN30bO7UnN7UrL1kvPyknxzUpi0U5f2ElTz05J0U5A3FZKyttXwctQxdBMz9xKzs9SycxK2MxJ7dFKd9tCZdhBVddPVtdqWNNlTtBrTc3YTNnLT+7OSWrbRGfPVuzB2+a/0WjI7ErY6UfY0Edn2khd2UZp1kJkz0dTylFRxmhev2JawWBLxNZMzNVLz85H3M4+W8xBTsdVUsX1UMf8Rs59P97SSHvNSWjHTVrCVkzC9EbN4EXTz0rPyEzWxEpmwFRRxVhNxlxJyFs92vc+dNRIeMZV5r9bYMJfS8jcSs7SRNzQQ+HISfnDXVnG6k7N3krL1UjOy0N7x0xTyk9MzVxKzG1B1+c9981DbsRR7cFUbsJhT8bSS8zLR9XLSOrJRl7GTkvJWEPRdkXS3UTbzUN4xUldwVFUwWlcw29KzuZB38tI88Ra+sFzbMRvTsneRNnOQVnPRE3RSEzJVkjG40jLzkzQylDTxUzow0lZxFhVyPxUx+lLzeFA3Nc+Z81EXctMVstQTMd4RcrVQtnMROvHRnLESV/AT0nFb0nF3ErD2kTKzj7ayEJ4w0puwE1XwUdGxU0/ymZByt9CzdFCzsVG2L9MZsNMT8VNTMBjScLbR8fMSMvDR9LCQ+HCQVnFRkvIT0rGX0jF7UDN1j7kzj7tykF2xkFevlNVu+pUvt9Jw9pCyNI/08xB7c1CXMhIVsRNSsNXQMxsQ8fhRsfRSMnKR+bJS17JTFTEVU7DWkXF9kfJ00vNzkTf0j1fzT9Mxk5QwlJOvW5WvNpOxc5J1M5F3MpH6sVNa75eXMNlT8tfRdlcP+hxPHHiQG/NRu+/UWXAWFLDeFfF+E7I40fU1knZx1L5x1pbzlFLz19HzdtJ08xL5M1HZ8xFTc9KT8hZSMtqRsrfS8jLTsrXR8zyQcheRMVYWcJN8b9JyMJHv9RFwklLwT7nyjrEaEa6SHW9PcbZPbtFT7844OE6v0xMvT/KxEK89Em9SFu/ROLFRP3ZQuzPSd7NSn7QS1bbUFTSa1fM2V3VzlZxym1Q2+5LatVZVdd8S2TdUFfO1FVvzGdI7NNKRtDdRGfD/0nJvWJZvcJLW8J1P/S/ZEXTxFNHzcVTTsjLSUbO0ElG2OI/RdjiQErLzE1Vw8ZRUMnJVVLHw1pI5cthTd7F8kppzXFFVtLiSVDPzlpQ2M1mTe7Lc0hP2utKT9jQU0vw0GhO4cbaVmXQ2lFO7dZnU3LW5lh2zcz2aNLM8VFs3nZUW97dXlnw23ti587W/3ne2f1edOZnUVZrbFdZ5djvbOjZ4mBf8uv3b/3kdFlb8u1rXXDmaVVd8uZrY9/T6PTe1933+t/deGZnd3ZbWWh+allZZGtaaPr2fGdtdGpaW2pudGF26/Xs4NXQ19jT1uXs6PDw+f3u9e7+fu3n5ebj5Od7avj+bFtbYFpVU1xpZmp17PL34+Pr7Ojd3eLr6fJsbvN8bXL7dWpuen79fnxtZfvueHfz6Ot3e3d0a2toYmFfY2tia2x78OnsfX38cGVeYGJydW51/Pjx4d/d3+Pf5Orp5u798Phxfu/8c3vt4N7c2tne3d3f6nx1YFpaW11famlycHz0/Xt7cmlyfXf9bGpyaWpufPL6cHD8ffvp6PDz7+Tl6OLi5Ozn5fhwevFyYm1uZlxcYGBYXm1kWl1lYVtbW2RjY2lqbnr17ePc1NHQ0tbZ3uHg3e9t7ubvfu7q5N/f3N7g5ebr9v9tX1hXWFJZX2pjXWt+dnF17O3t4d7k7uvyeHZu/vP47O/yevjr7nJrbmpmc3B8+vn0+3Jw7vV4bW1vaml0cXFrcnRuZWVkXV9rXVxncGpjZnP3/vPl29zc2dbd7erucWZt//T06eju59zW3N/X1dXc2Nff+G5uYFpZZmZbXGNmaXF1aG1wfW1vdWxhYWBob3rs6Onu7+vo5nf77/vz7ejp4eHm6vTudHr9eXBsbHX+aF1nZmFWVFdST1NVWFZeaWVfZW1iae/t4dfOzc/P0tXa3u5ybXjl4OXh29fZ2t7c2+Po5+3w7v5oXVlVVl1fWltaXm5uZvvf4ern5uLy/n5ybnrv6Onp6/T97fxoanBybGpu+v52/f5tcXJzbm18enV8+ntvfnn0b2BdWVdXVlhcYF9pZ2BkaGZqceba3trS2uXq5fBsZHzx79/Z2NXRz8/T1c/W2djX2ubr7mxZV1xZVVNVWVhYYl9kd//+9Hp3bWRkaGp+9Onk6/Tp5PtxfO7r7d/b4+zh4O779PxqXmpoYGBsdGVeZXhnXWZaUU9OUVFPVWFhYGh2dWls7uro2M3N0NPU1d7u6vP66N/d39vT0Nnc1Nrm59/geml9+19bYF5bWV5aVlxjW1xq8erj3dna7Pv49/p88uTi/nry+m5oamhnffD5fPv6dGxve3xnbv9qXmJ8/HB49+328ev3bGhmVU5TWFdXZGVcW2hzZWd2+vHk29vf4+j6/H3u3tfW2NLSz8zMztbY1dPb3+Ln/2hobmpmbWFVVVlfWFhYW1pddvZ9//9kZ25+6ezy7fT57eHkaHh5bu7e39rn9ed1aXhw7v9nYlteXmJlXGRtem9ncGNbV1JTVVxbYGBiYl519PXz/ObY29rX0Nb2ceri69zR3t7Xz9ba19DY497W4vV6bWZXVl1xbV9iaWtaXWltY2d5/frs3et689zn7d/e6Hj15WtebHhiWmX59nt073hhYGB5eXru7Xl76l5m8X7lam/f5Ht1+GhZU1tjWlRZamZOWG1iZVxu5u/b399oV/l67NDM2NXQzdHVzsjS1s3M0NnV6Gx9XWxqV15hV1VTWldVVWxhU05ffWJccHtYcNnedPLZ0N5qfnpzcOPc+dfc4c1PXNLhVlzY3+DjVk9rZFpWXmXyalvwbVRTa2VcTmnpbWhXWHd77f5kb+ng6+za2//26dbS8uDQ293Mzc7S19Xi6dnab1z5fPpbXe9tXmx1919eam5pYW73eG9sfnhg/eh4a+bddflz/vxaZPd2YeB2Ymlw6XhZbud7benb72hufH1dZGl4dvx3dHZmbu5cV/lpY19WXmFYVGxrW+fm/nJ9+vh24Onb0M/MzM7JxcjKycrS1tXV3/Lk3vNme/NdVl5gWVdfal5aYF5zYlpbVFtYVVxe//Dw8ejt7/pt7/j56t/X6ebk7uZ3d2diamr7bmlqd2ZnX1xdVFVaU1VeYVxZWVtjZF9mW2Jkantzcmpy8G9weu39cejd2tHQ0c/Oy8fJzM3Pz9ra3e3t+Xf2bX3ucm9eavDn4Xlua/Ppbmhib2RNVF5fXF93blhbbnRdYW/v5+Db2/j88ub1amx99WhseuHz5+Ld4Wp+ZV5dYm1iZWBoXVhcWlNTVVxdV1heXWdqXVpbY15TYvnv/9nKy87LxMrKycfHx9HP2dr0/tj1+/H36F1Oa/Zrcu7zZ2T6bl9eWWFSS0xWVFVda2Bl2uRrb9vo2s/HzNDY4trf6fTk7F5cUVRj3n51+fXh6lBZdltVWndeVFlOVVZk/155Zll7bmVzY/xadGpSWVpb9s7O0MnHzM/kzsrR1una3fpzbXd4ZF7f9GBlWOB2Z+ff8eTr6GZZbWZfZG9iYFhUYl9SWVlsU1ZrbNnQ4NDw39rueVXwW1fX9c7qz+dc1tzT3trc4mja525qX/teW1hNT2BKW2NYb1hwXlNqV1xOTFRaeuDc1MrLz8rK09DOzdPV2c/T021fdWjrX1lQUWRYcGhleGf9Y2NqVk5gYVV+WWdqYl9fd3dpa3Bq49DLzNLHz9rW7vLb8Ond597g7Xb4fHLtavJ2YGRVZGBWXFpfW1heWltcZ3BoYPhhX3ltbWxfXV1gb+LY2NDSy8vP0M3OzNHS2M7L5fFseOzl8O1scP9t8vTr9enwe2pnaVZQUFBPUl1WVV9bZF1dXFhWZunl3drX1+Xm2+bi8/ba2uLm7N3d9Xzm13T2e3B9XmtdY1ROT1JPUk1SWVhTW2ZfWlZkXlpaXFdcYf3j5tzR0tXNy8fLzMjOz8zM1tTj4Nzi7ufnbnF8dP5sXPthbmRsfW5aXVdWZmJnZ2ticHX7alxp8vbw6tvR1t3c5Xvt9ftzbvjn6/lu/Ox1enZxW11ob15VXltXWFtaW1xXVVxcbf1scGtmaGptYFpYWF909eXb3dLP2dTMyM7NzM3S19jX5+/p49/1+Op2aWhtdP73cfzq/HdxbV1bXV9eXmhhXWRkXVtXX15cY3z+7ufk5uTf4/Dw5unw7t/f4+Xa2uLn5PJyamViW1laWVJWWVZSTEtRTk9ZXllZWFteVFVYV1pcevDm2M3My8nEwcHExMTHyMnJ0dTZ2N7h6/15cWZeXV1iY19lcWZkZF5aW15maF9paGtjY2dyZ2vz//x06uLm7d7a33729GZfbPdwannp6fP75+xqXV9bUlRUVVdaWF9dX1haY2Vqb3VwamZkX15aXFpcYGNq8OXk187MzszJy87Szs7T2dLS2OXa2u139Op5Z237cWd07vF3evtzbWlybXBeWWNiXVxiZmVgaWtra3F2+O3p39/m7312/nB38urw7t7b3+fo5/peXV9bUk5TVlJQWVpTT1VdWVZcXVlVVldYWFZaXWNfbuna0s/JxcXEwsbJysfNzM3Pz97V6PjrX2pzXW1cV3BmYlpoe2BdZHJ7aXF6dWdfa21hYHb/dHB+8Ojt6t7m6eTq825laWVjZGl5+3Dx6uzt+P9tYl5hYFtYWFtdXl1qa2hlXmppXV5hXlRSVlVSTVNXVVpm7NbTzcrJysvHyczNzMzOzsvN0dvd2eP79fl6bWp19vlrefp0Zl9qcmdiY19eWlhfY1tdaWtua3Tt6/Xo3+Hl9fr7bm94/ff99uzr/e/h7/l8fnFeXWZmW1RUXllXYW5qXFxeYVpTVldUUVBUV1VRUVxpau7Uzs7NysjKysnIys7NzczO0dHa4/D29P50fP1va3NzaF9eZWJcYWxtYVtnb2NecXJnY11veHj45uPk6+/n7HZtaWloaHX1+vjy8O/w8vH9dnZxcG5tbWpgWltiaXd6//lpX2JnYFhUVVNPTlBPTExSW2Z14djV0c7My8rMy8vOz8zLys7Qz9Tb2t3g4+nq6vX4e2poYlpcYVxfXFdaWl9kX2BnaGJgXGF6c/Lm5+Hp7Obt+P378/v9+ubl7Onu9fh7e21hbHhwZ19eWVRTWlteZWxqZl9ZW1tXV05OUE5RUFFbX23s6N7Y1tTNzcrIyMfN0c7Iys3OzdDd2trg4+rh5vD6bWViXl9aW19eX1tfZWppcHJqZGZjYGBlav7s8fbw9/x1c3JubmZmbHf57OPl7XB783RqaHTs8/1+d2teX2ZvaGZ7bmpkYmdbWVVRT09RTkxNUFlfbf3q593Z0M3My8vMzs3LycnIysnKzM/T19bV19XX4/l0bF9bW1xaVFJVVVdVWVtiXVlna2NbY3j8dX708/L37d3q5+33+Hzo5ubh4Ob5dfZuZ2Flcv1sYV5dVlFTWF1WW15lW1lbYFpTUlNVUFNZX15mdu3t7ubZ09XPzc3Oz9DMysvMy8zN0tPT3N3b1tje4Oj8bWpkXFdYXF9cXWNuZ2JkenFfZnN5b3L67HNzePR8cWx6+2hnbX16fO7e3t7m4fJpZWducHp9/HpsZ2pmZWBcXV9hbWxcW1dYUk9PU1FNTlpfXV5t93D259jV29nT0tXTzsvJycnGyMjKzM/X2dLT3Nzk7XpmX1tVVlVXVlZYXFxYYF1hXF9sbmRtbWxrbXV9925ve+/3fPrr7/rp393b3uvsbmNhcGZfZWVmXmFiX1pZXF9eZXBuXFdYWFZVVlpdWFxremx5+e/y8+rc2t7c1tLX1s/Nzs7MysrOzs/V3dzZ2+Pj3+d9aGVkXlpeY2NaXWNmX15od25dZe7uZ2x9/WpnbXpfWl5oal1kevj58+Pa297q6mlcZHNsYmVx/mdobXNgWmJ1ZmNtcFxUWFpdU1BXWFdYX3JoZ2ry7Hh269zu9d7X2NjUzsvLysfEytDPzdTa2tbY3N7f4XtqbGpkYF9oXlhVXGNcW2hyXmD+72tjZ/v7aW17bmFicP5taHTw9v7r1dLf7+x+Yl5fYVxYWm9tYmFraF9ibu1wYF1gWVVWXFZMTVhbXF1heHdz897o6+vh3t/e1tTb2tXNzM3Myc/S0dDR19vW1N3j4N/vcGp8b21nYWFbVVpjYVxbY2t2c/32eGt793BmbXNlam1udHFrcnn66N7d4ux9/HJkWl5kYF5qeGlqa3F6b3Hv825fYmBdWVZST09PV1lYV2Jue/3s5efz9ubh4+bd397bz83Nzc7Oz9HS1djZ19HX2tzd6PR4/vP8bGVuZmBhZmFdWl9jZ2ZjZ2tuam5wfnJkaHJwdGxqaGh4+urn4uvm5+d9bWtlYV1kc3twc3d+9+33/m5rY2ZjXllVVlJUU1lYVVhcYGz04eTq3dze393e5PHk29nWz83OztDNzs/S19nY3eHZ3e13ffh2ZXD2dF9oamleXGJhX15kZ3tnZ2praGpvam5ubXZqY2ZkbWVv8+z37+jqe2Z2fGdaZHBpZWVn/Px4e/fubmz6d1tZW1xPTVJcWVZgZW5te+bd5urf2eHu6uPud/De19fTzszU0s3MztbV0tfe29na7Pju9Wt29+nvdnbw82BdYmdZVGH+cGBidmpeY/33Z19hYFtWWWNlYWXz5e3s4d59bnn0cGV39nZhbvXzbm7++XFydO5rVlJUU05NUVpTUFZhY2du6dzl59rY3e716XFq8tbU0s7Jx8rLysrP1dvU1d3j2eBxZ217ZmV392xlanBjXl9lXFpfbv1qZGX/eW1u7O93a2pqXFpda2prc+vh3ujj5vdxaHdxaXX7Z2Rue3FxaXP1eHZ3/mRVT1RSTlJcZV5ZYXJsd+/p8ent5uT8dGppaXLp2drUzMrKy8zLzNPb2tfb2t/e6X1veXx4+uPl/nV2dWZmYF5bXmdzaF5fZ25qZWn+cF5ZXVpUV15mYGzz5OXr6ur4bmx5/evm5+b89vD9bGV28v5yb21eVVFPUE5NVl5fXWBzfGVr8/P47eXr9f7z/nft4tzPzc3HxsjKzMvP2tXS2eXj5Ol7aG5ua29y+vNraHVuYWBiZGNjaWldXWBiZmVp9/dyaWppXlhebGtp7+Dv/vXueGlmbHX47uXl6/j/fWxjYHF4amJsZ1xYVlZVWFpmdHJvffd8YW/x9Ppy8+16b/f7ePTg2NXQzcnJzM7Oz9fb1NPd4OLl8H3s5enu8Ofn7ft5emlfYmlqYF1qXVNVXF5ZXmBlZ2hpa2FbV1pobfzu6er+dvr8cXjr5+fd2djh8vT0cWht+WtdY2NbVVRVUlFVWmBodXh7eGxnaHB1bf3s+Wz75+rq39nQz83Ky8vP0tXS1tfY2Nzq+vH2dv3v9v768ez4eH1vY19ke29hXmJfWGVnZWJg+evt7vV0bWFcYGRkbnx7bF9gY15dZ2/37uvj5efteHRzamhtcWFaW2BfXmBeX2Zze3V67vZ4cGtpePl8c2twZWn47/Ds3dTPzs7Nz9TY2dXR0NPZ3uXk6OXl5+Xj3eHw6u14am5nXFteaVxVV1dRVVZYXF5mdXv+emVjX11daXX69/DvenPx8ffs6t/a3t/c4ex3dXdraF9bWlhUWFlZWFpeXWVlZXVwanF0e/7o631vcPv48end2drWz83O0dTY3Nve2NXX3Nvg5uzt8+zo6+fm5+zo73ZiZWVkX11eYVpZYV9ganlzd2xwcWxwXVxZW11gZmlmZGNiX2J0/Prt39vZ3+Lq7Px5/XpkXV1eYFteYWxpaWhtbW9ycG1lb/r1aG91aV9eZGpu/ejf3NnQz8/X2tva3NrZ2NfY09XX2tnY193e3Njd5PPz/mZfXmBYUlZaUlBXYWVlY2RgXmJeXFdcYF9fYWpybW1w/O997eTg6OPc19rk6+v8ZGNiYFtbW1dSVldbXFldY2hnaWZyeHn+6PJ7bvz3aG7o3Nvd29jb1tLS2tzZ3ejn4t7g5d7h3ePm3t7p7N/T1uTu8Oh5aGVkXl1fZl9mb/vz/PZ9al9cV1dVWFtbWldWXmlbWWf0/Hp74N7j3Nnd4+fn7G5tbnJreWpval9ocGheYW10YV9w9W5oav1uX1xiXFdkdO3v8eXe5dzb2NnZ2NfZ4d/e2tze2tDT19bU1dvZ0tbg5ezqbWFeXFpXVlZaXF1icGtpX2VaUk9VVFRYW1tWXWZvaXzj2tvc29bZ3d3c2uTr7/dsX15pbmddYWlgW1lbWVtfZF9ka3Nxcn19a2NjZGhmeu3g39/j2tbd3tfU09XX1t/o6+j47+rj4unm4d/e29vZ3OLi4O14YWBlYl9mbXJ0cvfyfWtnWVdVVVZSU1RQT1dbW1xr8ejn3+He3d/i39ve4evt+nBrfXZ1evr5dXlsZV9qaWVnbXBuam5vZVtYWlhYWmZvcHfv597f3dnW1NLQzs/a397d6eTa2t3c2dnb2NPV2NnX3ul4ZV1bWlxaXV9fbnRqXmRjW1NTV1VQT1VYUFBZYmBe+d/Y29nV0dbe2tnb4+rs7W1laWxmX2d+dmlpYlpZX2JmXWn9+215/HVeV15hZF9r9+bt8dzW397Z09PY1tDX6Ojn63V46uDl7eXe3d/e1M/Z2NTW52xiamBYXW1ze/Pt6XRub2ZaV1ZXUk1OT01MTlJZWV773uXs5dfW6uTW1+Dj4N7ucvv0/PXv5uPtfnVvZWZeamlha3RqXl5fW1JPVVpWWmF8e3H0393d2NHOztDSz9Xc4dzd4OPc19zd29XY2dPO0Nfb3vZnW1lcVlZaaGltam1mXlxdWlZSVFpUUFBUT1BUX2xz+d3Z2tza1tnb29ja3+z083pqb357fHV3cGldYFhYV1ldZWducWRlWVtaXFdfXmJte+7u7+nb2NTT0NDR2Nfa3uLm4+fs7+fg4efh3dnb19TQ0tfe7HtkZV5iZ25+++32bmllYF9YV1VVT0xKSUtLTlRaXWFs+vX38uXp4ODd2dva3+nr4+Tm4t7g4e7m7HFuY11aW1xobGhcWlpaVFhcWltcY2ZoYXH99eTd1s/NztHR09fX29jc29ze2tnd2dTU09XU0tPa53ZsZ11ZWl9fXVxjYFxcX1xcWldZXldOTU1PT1NbZW746+fl4t/g4ebl4tzc3+ro9f3p5+np6Op+bGtlYFpWVFZbXWhnYGBjbXBlaXduZWpzcW117uzs6dzV09fb1djf4uLl6u7m5ujn3t7e29nS0tPR1tre7u3tdWZv/nJnZ3R2bHFtaGNcWVdQSklJSUtMUVxfYm19/n788e306N3a2Nva1trh3drb3N3f5vL07f1lWlhWVFBUWFhWVlleXFhfalxXW2FpY2R+49/b0s7P0dPR1NbW1NLY3tzW2tjT1tnd2tfb5evn73JlZ2heVFdcW1lbaGteXm9wbmhfW1RPTU9TV1lleH196+Lp9/zw7uvq4uLj4d3d3+fn5e37//Dze3p4a11aXVxYV1phY2VibHNtYmRuZF1fcHBreOji4ODc2tve5OLd2uHf3uDj3dnX2NnV1NLU1tnW2t3i6PL1925qaG51bGxxa2RjZF1cVk9OSklITE9RUldgZWhnbW9uferm4tvW0s7Q1NTU1t3b3N7j4t3k73tjW1hUVFFXWFVUV1xbXVpbWFhZWl9lcP3s3drZ1dXU2tfa1tLU19nU0NLR0tXX29rd293n5OHh73x9c2VmZWZnZmdjYmVpYmFhXVdYV1JSU1dYW2BkZnRydHL/fv/y+vXv4drY2trd4+Th5erq7/jz8f55bWZeXV1bXV5eXVtcYGJfW15eW1xebnV99+Dc3+Te2t7j39zY2dvY09HX09TW2tvX19vb2djb3t3o8/jwe3J7c3FuZ15dWlVSUFBOTU1NTk5PVFhZV15gaGdjeevw6t/a3t3U09LU0tbU1t3c1drg6efxaGNtaVhYWFtTUlRTT09QT1FRT1VcVVpt5uXp3dTY2tbT0tbU0c7T09DOzc/X1tPd3dzc6OXe3u718/f6dGttfmxoZGhdWVpgWU9QVVNNT1JWVVlZW19jYW57bWX83+z07Nzh6NzU2t7Z1trd3d/f5Op0evJ+a3x5ZmBnX1dUVldRU1RVVFRWWlxaX232/Hzp19ve2tbY2NbU1tfU1M/N0NjPz9TY09La5N3c7/fi5fx7df1qamNaWF1YUlRRTExOTExNUlNRVVtZWV9ob2d059/h4eLZ1dbc1NHX19bS2Nra3e7wdm1sbmleYGJgWlpVUE9YU09QVFBNUFhXW2t1/fbk3tjU0tbRzs/V09DX1tDO09TPz9PU1djZ2t7s6uv7df5yaWluYlxbXV1damFbV1dUT09QT1JWU1VeY1xdZmpmeevm8/Ho5d7Z2dvW1dXb0tDa49/mcnf7c2toZ2FfaWJcWlxXVVhaVlRUUE5PWllba/hwe+bb2dzX09DT1dXQ0trb0tDS0c3N1NbT1t7e4u76+Gtla2xfXmReWl5uYF1iZFlUWFdOTlRVUFZeW11fXltmff7039ng5dnZ3tnT0NPV1tbY2uLw7fFrZ3FoYF5eXFteZF1dX1lWW11WUVBRT1NZXWX16/rp2tna19HS2NPP0dLP1dnUz9DRzs3U2tba4ePm/nN2bGBfaWBZXWxjYXF0ZmZfWFBRUU1NT05MUlZXVVhZXGN08+/i3dza1dbX0M7S0s/O1NbW4/7x63V1+29iX2BeXGJhVlZaVE9WWU5JTVROTVleXm3z7uXX2tnX0tLUz8zP0s/Oz87My8zNzdPZ2d3r6fprbGxdWWBkXFhgaF9faWdfW1hVU1VRTlBTT09aYlhXY2lkdN/c39zX2tvW1dfX1NfY1NPa4Ob1a3j3d2drbGFeZ25kX11aWFtUUldXTk5SVVJVXmdt/Ovk3dnY19HR1NTPztTTz9TZ0s3O0M7S2+Hf5fTs+G5tbGVibH1mXW16ZV9saFlWWlZRT05LTU9OUFxgWVxqem7x3t3g3dja29nZ2NTT1NPQ2OTj5Xtt+O5vaPz+aWhuY15dWFJVV1BNUlVMS09QTVBcZGB74eHb0s7QzszNzsvLz9LNztPOy8zR1Njj9fVzZGdrY2d6e2lobGFcZW5gXmVgWFhaVVFOTk5SWFdYZ3Bmbefc5eTc2N3b2N3g4OPi2NXZ3Nre7376bWRreXBv/PdpX2FeWFpdWFhbWFNUV09OVFhWVmBsdO7f2tfQzs/OzMzQzs7X3dnX2tXQ09nc4fdyc2VjbXv58Obtb2t2eGp6+2ZdYV1VUFBNSkxOTVBZVldle3T/493l5trY3t7f6/bp4OHb1Njd2dz0fentdf3q7fv4dF5aWFZVV1pUUlZUTk5QT01SWFVabP754NbT0MzMy8jHy83Mz9nZ0NLa2dLY4On5Yl5iX11tfm9z9XVgYG1kXGZsXlleW1NSVFJPUldWXGpravnl4ODX1dvb1tvu8flvbv3w7eHd4eTl+2l1+XRs/OvzdHV2aGJkXFpgYFtaXFlRVl1XVF1gXWZ99fHj2tnYzsvNzM3R19rd6Ofd3OHa0t728PNtaHb5/PLr7Obh7n7673NjZ3BfVFRVTkxPT05SVlVaZmRhduvs5dfV2tva53z16/5369/e29jd6uToen7l8G3/6nRib2tZVl1aUlhcVFFVVlFTWldTXWteXf7l6+DSzszIxcrKyMzS09PZ3drY3+XmfWJfYl1cZm9jYv/t9/D3b3jx/Wpu/2NaXF5YWF5eW1tiZGZwfHD73tzd2tnh7ejtaGZ2a2V86PDz5ux4dfn7bv71eH3t9XB1fmpdZ3JfW2VoXV5hXFteXldXX1xbaP366djPz83KzM3Nztfe29zf397p9PV0YmJtZ2Np+vz0397m5uLp8u72amJoZFpZWVJPU1RQUlpfWVtrc/7l3+Pf3t/m5ej1dfjs8unf3+Ll5eTs6ep7dvn3fv54aGZjZV9bXVxaXF1bXFtZWVlbWlldYGR26N3X0M3KycjIzM3O1dja297m5/luZWNdWFtbWmJ6+vn17Ory7O3/dnRxamxtYl1eXldXYGViY2lvfPbq5+Xk5Obn6/NybG1vbXjy7/Dze332+ndrcXf++X73+P12eP10dHN0e3BpaWdhXltXVldYV1tjZ3Tp39nSzczNzs7Q1tnZ29zg4+nw93JnaWhgYXbz7ebj4N7e3+Xv9/xyaW5sYVlZWVVTU1ZWWFhcanBuee/n5+vt7/L6+/f87urm3t7e4N7h5+zz93n673p2/nhsa2dkYWJmYF5jX1lZWldWVlZUUltpbvnf3NnSzMrKysnMztDW2dfa5Ovt/GpkZFxVWV5faHN+ePjx7evq6XhwfG1senRjX2ZhXV1mZWJud37w6u306Of3cvn2ZWRpaWVu8Pn47fH7+/l4cv18eP7t7Pnr6PZ69u13b/5+c21nXlxbVVJSUlBYZW5w+uTf3dbQ0NPS0dfa2dzd297n6OXwe3N1bGNu+/jt6OPi6uvn6Oz8a2hwZF1eW1dSU1dVV15iZWx58enu6uj0/X368/p0dv97fe/h3ebm4ebu8/D3enRye3t+fm9wa2FjZGNgX2BcWltdWlZXVVddaP7p3tva1M/Pz8zM0NLU1dze3OLs9fV7aWljXV1cX2N5eHP78O378On0c2twdHBraWheXF5fZmtw/O3q6ODh4uTo7fn9dGxpYl1aXmNnbnl+d3P29P59/3pz/evo6ubh5/X9fvr7e3dwa2VdXF5aVVVYXF1lfPDx6uLd2tfW19rb2tzg6uzp7vv08PP79/pvbnj+7ubg5Obd3+fp7/xwc3BjYGBbVFZZWl5lZ2hy+v346ur9e/r/c3R+dGtrY2V0+vz96+fs6N/n/O7vbXjr6vj37PZzcHRqam5hXF1cV1VbXFdYZWdn8Onw5NnW2dXQ1NbT1NvZ1+Tu6Ox4bH59Z2ZuYFxnZ19s7/V37+X3efDybHf1dGhpaV9fdX5x+ebn5N3h7OLe6Xt3emNfaGNaXV9dW19kZG/39Hz873ZveXJv8N7g6ODc4ufn7H7z7HNiZWRgX2JiXF5rbm10ffjq4eXp5+Df5+Li6eLk7v338/Pw7ur3enx+dXB77uLf393c297t7vpta2pgWVlcXl9haWhu/nx9/371/P57b21+9nV1dXJ1/P12/urh5efg6e/9b2dlcf798/Ds7+rlfWpoZ19aWVhZXmBfYGt2/PDr7evf29zf3dra2dvc3N3e6/Xxe3r28Xhrcm5lYV1bYW1ubfvn4ePi4urv7PF9eXJpafrr/v3m4ur17uzs6X5sbGtjXmVnYF5hZmBeYWdrdv1ze/P1bGhubnfr5OPf29zd2Nvm5+t2YWFoYWBmaV5faWZndXlveuvvdvzn8n3z7/Dn4e706OXt6N3e8/fufnBrb3ny6Ozm3tre5N7o/3l3amFjYF1hbWpidHtmZG56evp9bWx4emlt+HFv/fN5bu7o7Orn7vrs92Vjbmtkd+vr7efk8e/sfW5sYldVXV9cXW1saXp3bvnl6vLk3ubn3N3k4uDm6ePs+fHo8Hfu6nppaV9XWV5dXnf1e+zd3uTc2eTt6/Rwe/H9dvDo8/fn63V87f1vdndlX2deW2BjWVpgXlxneXd8+Ph9eX1tbfnu9+/f3t3a19zh297z+/RoXWZmXVxmaV1eYl9hdHpsb/5+bnHs7/zp4+3x4uHj3+Dp6OLl+Hp0aWdwdXvs6Onq5d7i4t/n/nF5a2ZuaGJldm1fa3ZraXp6bXr8cmp2c2lr/XZjbf19eO7p7+zn73N0eGppdX568evu7ufp9/jze2RkbGZeX2RjZ2plZ21sbn7u7vbv5ufm39/h4ubs8+3r8fbw+f3x8nRsa2RfYG1raXz19vTm3+Tm5+r58urz+vX7//ju8v76731sd3hsZmdoamxqaWJfX1tdZGNiaHf9/P/4+fvu8PHq6/Dv4+Hh3t3h6+breHV3ZV1gaF9dYGZgX2tsaG5tZmvx6+zi3Op17uTx+Ojr+/Ds7e3n7XB66+327e5+e+/t8Off7nLy63dz+XdpZmhobXxwY3XufnD7/WlocHxzfvNtYm5xZGl+cGh46/P87Op78d/sfu/udm7z7Hh+6vxp/fJuZ2xjXF5rYlxpbV5p+XdtffP47N3a3dnX5/3k4/h8+nZpd/N+evL+ZHLqe2h79Gxv7ev97uD3cujne33n7nD/6e1+6+f78OX7a3v9Z2n0+2VnfWZZYmRbXmViZX3v/3vp5O/p3u167/Juc+vsdfDf8Pfe4XVvbmFgZ2hcW25vXmZ6ZmBs/n303Nni4drl7+Pqa2t8c2z873595eDu6uTr9vf7b3bs7nr/8Xz+7/hvb/h3a/jvevrk5PXw6/lzdndpeut3ZGhxZ2BrcGNgdnNpefh1/ODe7O7l63V1dGRr+f1wfebk6ujp/mlrZV5gYl9mbmtfZXdwbvfn4tvV2N/d2+Dp7f1pZ21lYmx0cHXr6Pvu4e1wdPl1dPX5c/zm7Xzw8vns7e/z6t7j7ebp+fv3/W5udXF3d29kaG1eXmZlZWdnYWRvfvv36uv07u75e3l8ef3t7e3e3eTq5ub7dm1fXV1fX19iX19gZWxt8OPh3t/d3+Lg5e/6/HBqZ2Rnd/7+7ezp5e71e3D7+Pv9dfnv8/Tt9Pbt9e/v/vTp7fj79/h6b3Jwc/n4fXx3enpubW5qbXVpZ2lnaG7+9v7z6/Z6/npvd316dv/u6uzn6evr7/9qZ2ZhYGZoYmJnZ2VpcP3l3t/i3t3h4ePo7fb8bGNlZmVqcHN0fvj8dHd8dPXq9/fq6O3r5OHo6eb1/u/s8PDu+3p8/Xhoef12fvt3a21vaWdwcmtpcGZhaGVlbHB7e/zv+Pbm6/fx7vX97ejq6uLr+PD3amZqaWNma2ReYWJeYHB7eu3n7fHn4ufn3uby7vJ0a3Jya21wb254fW549O769uvv9evn7Ono8vj08Pz97e/38vd0c3NvaXL29/7083N0fXNvbnVvaXByZmFmYmFqcnFzffb79Obp8uzu+vXv7+/zfnFsc3NrbHNvcf52bWlnaGFpff757u307+rn5OTn7fPu/mlrbWdmaWpra29zcXL9+Pnu6uvn4eLj5eju8+zv+e7o8fnx93h1enx5efx1bnFsbHB5dm94dnBub2tiYF9dYG52dPbt6+fj4ePj5uvr6OXt9PpvampycGhsbGZoa2xnaGpmaW5xcv/7eHr78Ovk4OPl6e33/XtxbGhrb3d5e3z++PPv6efr6ujw9e3o7e7r8PTw8PP0+Ht5c21tdX55cG92en76+P7+9e/5935rZmFfXmRsbnZ7eX7u5eTk4Obq6e3y+31vZ2RnZ2psbG1tfPn+fXxuaXZ5cHnx9Hv27vDs4eHq6u31em9tY2RnaGhncXdxdnt+9+rq7uTl7enj5Ojp5unt7e3y6ePw+358bWpsaWJhaWdo/n579OjtfPn0dGNiX1tkcnL88Ozu5t3e5uDc5urk6/P5fGxgYmReXmppY3B9b2trbGRmbmVgefpudvXw7OPf3+Xl6e7t7nh19f9ubnh8evzzdm/6emz/8Xt88vJ+/enyfe3n7+7j7Ht3fHhveX5sanlzbX3v7uvh4Ons6vtraGheXWNnbf/5++7i4ezp4Obw6+v3/3ZnX15fXV5t/HB37/1y/Pdwb3t2aG7w/2/z7vrv4+Xm5unzfPx9a259bWZteWxrd/5yeO37fe3we/bu+vnp5enr4eHo4+X1/vl8aWh1bmNqdmZme/557+Pp7ePpdWx1Zl9te3F+6+757OLl6+Dd7O7m9WxwcmRdYGNeYm5mZXd+bG/0dmltdWlndXttdu708N3a3eHf4+709XVw9Ptqa3trYWhwamv17nr9+mdjeXlx/uzq7urk6Ozj5fr26/p5fH1rZnJ2Zmz3/fTg3uTh5e3+cG5oaHz/bmx5c3b66ejm3uDy+vNpZG9uZmdtbmpqaGRoeXdrcPb7bW96bmlwdnJ77efi2drk5uXr/nNzdG91bmJhYF9gZnB3++rl/Wpwbm15+/fr5eXq6ubk5uTj7/nu6/dwbWtmaWxnZ/vs8vDp6Ovu73ptb3d0cHVqZ3Tx9PDf297g4e50fvxvbXFxZ2lpXlpfZ2BibnFseH5rZG91aW35+Hzl2d3h3N3m5+j9cH7xb2hwaF9nd2pp/e95cPttX2l8a2ry6/b77/165t3n6N3h8erqdGl4/Wlm/Xxt7OT2/ejg7O7o/ml89mhmcm9kc/T27N7b8f7o73b28G9qff1mYWNcWWNqX2f8/W1sbmdkcn5pcOzy9ube5+nc3/Dw7P5t/n5naX56ZWt2bW1+e2hp/HVobXhra/Hwd3ny+fnl3N7f2t7v8vB5c3x8bnPu83R8+3j55Obw8+18aG11aW34dWZz8/Ht5uX3+uXp/vPyeHh7bmNkbWRcX2xoa/90Z2Zvcmxw+H167PF8+O3o5ebr9frw9m9wenFxfnd0eHd0a2pwcnP6dGhvfn15fXx3fu/t8+bd4Ojn6/p99fZ2efP1fvn9bGx+8vz06Oz48/ZxdPX0c3X5+Pby7fDv5ujy9PD7dH19ZmFnZWRmZV9hb2tfY2pnY2xycPrr8/r39v344eLu5d7o9+zo9/Dp+Gx66nxob2hfZXNvY2hvZmh0dWlw83x37uXn5d7e7urg5uvq5Ojn4e788fF6dfn8c/75bWdrcGpveG1qe/D/d/Pr8Ozn83vw6fl69Xtudvtza338bGhqaGFmbmdhbfp1bntsY2l7eHL16+7y7Ph47ur4ePbu9e7p83h++Xx2eXRsb35vaXv+d374+fXo5/b67u968+v4/Orn7/T0+3X97X556+94/e/4e/PrfXLw6/jv6/f67Ofwe/j6bXN9a2ZqZWFkamtteXNjYGdnZmpqanN7fnJ0+HRoePj87+bo7u/s7+3g6X316O328O38b2xtZWJpZ2FlaWtw/vt4+ezr7uXn7Ojj5ujl5Ofs7e31+PT4/vXz8fD1em14eWlndXhwcnl+fvDx9u/v8/789f53e377eXVwcHpzbG13eG1ueXNzbWpqa2loamxqZmVobnB1dXT9+PLv8ujm6ejn5+Pl6e3x/H1xZWdnaW9w/fj97+rr7e/x7Onq7u7r6vV2fHt0//t7/e7s7+7q8Pfw8Pl6e3r78Pd5++vs+vXq7/78fW1seXlvcnBoaW1kXmJmZmp6/G91+m9jZWxoanBxaXDy/XX7/HB87u/v5+Ho7OTk7efe5/z59nJpZV9bXWZmbPz1//LufXvs5ebk3+Hm4uT5c3x7bnj3+X7u5e307u737u55bXt8bGh0c3F79fTy7Ov/dXNucPzu8vjz9HltZmNibnBt/u/7d3NrYGJnaGdoaWhqbmpkbHVucHz/fH7w9vvu5ubm3+Hn4+TwdW1taWlvbm/48P3+/HFz9+zp6url6vR7bW16d3L77u3w7ujp7Obj7ujm8e7q+m5w+vP49uzt6uPve3xwaGtxe21qd21eW1xbX2hoa3P+d2hmZ2NqcG5yfn1zdnpwb/zu+nnu7/n593h1+urs6OTo6ePpfW1waWBjbW5qfPpwbXt+/PDq7Ozj4+7y/Hn97O307ejr+fft8fXr6/Dw7/h7dW9jZ3z+ePXs7efj6/Pv7v10/Pd4/vlyaGlram50bm55/mtgYWJfYmxsbHB2aGVsamp69/598+/5eHlzdPny8uvl4uLj5On08vZza2xtam5tZml2cW16+Hv783lrbG9ze+7s7ezl6fPv5uPo5eLj5N/h7/P1efzu7vXt5+vu5+bs8vN2bG9yb2lnYl9jaWloa2toa2xmX2ZrZ2hx+3p9+3d0/fX28Ozu7urp9nBucW5xfP7y6+z6evb1eHv+cmltbmhkaWtvfvV9dvjz9/39eHP+8O/q4N/l6Ofr7+jp9f3w6uvr7P1vcHJye/f08Ovt+/Pn5Ons8PX19Pd6evt9ef38dWtubGNiY2RpcG9qbnx9aWlubWtxeHB98+7x9vd0bf/z//zs7PDv8Pb17e19efX5fnx1amhqcW5scGxqbWtiYGtwd/nt5+jg4+zp5+nq6ert7+3m6e3r7e/t7/fv5+jv8Ozv8+rt+vbu+nBxb21vfftvb25nYmJiXV1ncW/76vJ7+3tscvLydXP59fTs6/V+endzefL8ffZ+bWxxdHZ5dnN68vl1endub3n+eW9va2dnaWpz7u3z6Nzc4eLj6enh6Pjz9X1tc35ta331eHzt8Pnx8Pv+7ev47uXo6+fq9/fs6u/w7Ph2dGxfXWRkYWZ6fHvzfWtkZGNmcG9kZHFzam/7fnB4fH7z5en78ev3+enq/3rw8Pns6fb77vtscnZrXl5eV1hja2z15efn3t/t7eLn+u7n93x+c2lreHt47+jy7eDi7u3n6+/r6/f25u/78PNxcPj1enz5cGZlZF5gcXJv9+Xo9+7udGltZV9jZl9eamtiav3+bnX9ev/18n589Pd98vJ7ffDu9+7k5/Dt7nl4d2heYGRgYm359+vf3uDi5/Dz8P5ubnxuY2FmYGRye/rs5+rq5OPo6eDi6ejj4+Xh4+nq5u338e79dn1zaGRnZ2Jma2xw9/lsZ2VfW1tbWFhbXVtfaWp08uzt7enm7e3n6+/n5e7v6+vt6OXq6+bte375cmlkXlpYW15eZX3w7uPg6e/u73x6/nVueHdobH56evHn5ufk4ebn4ODl4+Lq6+Xl7e3p8Hf893N78P51d3ZsZ2tsZ2r+/H71+m1kYV9YVVlYVlpeXGFwcW3+7vR+8O5+/Ors7eXi6Ojh4e3q4eXy7+58/vZ2Z2ltYVxjZ2Nt7unq5eTu8/V1ZWp2a2RscGtv+fH1597j59/h5+Tc3+Xe3ODj3ePx6Od9dfjz//rt93V+fmtjaWhjaXl0bXNyY11eWFRXW1dXXmNha3x7dvTu9/Tq6uzq5+ro39vd4OHn7+vm8f72+Hh2d2tlZGBcXGVsdvDu9/fu7fd2bWpkaG1scPz4+fPr5uXd2+Dj3t3d293j4d3f5Ofq8P17eHT/9vDx+fp6d3lyaWZobGxvb251d2xiXl1aWllYW11fZm1vbnX/eHJ5fH707+7t5eHd3uXo7vHy+fj38fP5/XhxdHNqZmloZ3j8//Xr7fP+fXBra2diZm12evTt7uri3+Pj3t7g3t3f3dnc5eTm9fTu93378/j26ez49+37bXFuaGRjY2BnbWJdYWNbWl5cWFtdXWFubmh0/GxqffX69Onp5t3b3uHe3+3q5e7y7u3+/e78cXR7ZmBraWBqeXB47et5c/5vZGVrZmj9/njw5erx6N7o59vb3dnX3N3Y3u7u6ftsdv9zfu32+urn9Xz2/mhlamJdY2hiY21lXV9jXFlhZFtga2hncXRkZGxqZHL7dnzq5evn3d7l49/m6ODo+O7r/nvp5O/z73lnaGhgZ3p0c/fr9f3+eGhna2JkcHhteuvu+vLp6u7k4uXd2tze3N/r6+Tt+vHyc3H4+Pfp5Ort6/ZvaWZeXGFjX2BmYV1dXVlaYmJbXmhkZGxsZWZrZ2h39fvy4+Tq49ze393e4N3b4+/x83587+/3+PtsZWhoYGRzb2h2+XhweW9la3BsaXh7cHvt9Pnv6+fq4t/d29na3t7e5ujo7/7//nBtb3Z38/D5+PR7a2lmYmJoamhma2hfX19hYGVrZ2Roa2xqa2FkZmBhZm5uePPq6ufk4d/j5OLi6PDz931+9evs7Ovt/HNvdXN3/v/19vf9fnhwc3hva2pta2h3/H578+7s7O3p5N/j4+De4uXh3+Xs8fdxa29vdvjw9O3v+nNuY19kZmFfZ2ZfX2JhYWRiYV9fXl1iZWJeY2xmaHX7evnp6uvk3uDf3t/g3uDo8fT8cnfw7Pb37fN0dHv+ev97/vl+cHF+bmt0fW5seXpsbn35fPvp5ubj3+Ld2t7h3N/v7ePofffs+G90dm5ufHx8enFpZWtnYWZwaWJqcGRia25paXVtZGBgX2NiXl5la2Roe/p68efi6uPf4OTl5ero7Pp++3hx/unt8OrpfnF8+H579PP3/PX89PJ8dH14aWl6/m538fD77+nq7evq5uPk4eDe6u/n4+rw6+f3bnj8e3J2dXZuamVoZmFfZmljaHB2bHR+fmxrbGZdWltbXFtdZGtoZ3Hy+Pzr4efq4+Lk5+Pj4Obr8vDzff7t6evr5eb7//j6bnL79v/++/zz9vp9/mxobXhwbnT49nv07e3z7OXf4uDf3eLt8efi7enj5vP9enpuaGdnYl1cXmFdXl9lZ2xx/nlv+vF7bW5tal9eX2FeXmNqaWNt+fL97efj7O/q5+zs6ubn8fDs7Xt68ubp7ujm9v/+fv188urn6evo4ur5+flwZ257eW52/P5wdH38+//89Onr7Orm7Pbt4enu7efo8Pr383pwcHBnX19kX1tebX11e+zn+373/mhhZGdgW1tiYFpbXmZjaXv4/vTq5ur07+Tj6OXh3+Tp5+Lq9+3m5/H07On8cHT7fnX95er16uLscHH9fWZmc35ubHn3fXX05efy8OXg8Pjn4+7s4uDq6ePg5/Py8fdyaWtmXVpcXFhVXGhpa33p6ezxfnt3a2loal9dYWJbWV9oaGp9+PPz6+7v7e7t6Oz18ujl8vjs5fHx7ez89vvt83h38unu9ODZ4uvm43hqdvVzYmr9dmZkbfxxbvXk7v3x5PloeOfp/+ne4+/n3uPv6OPl8XVxcWxfXWBeW1xjbm/96eLpfXJrbWZgXWNgWVZbWlRWZGtiZP/r/nL35+zv49vd6uze3fT44Nzs9ujk9/7q5v1w+u73ePbo5+vt+31taWxtbGtsbGhjY2Vu+e7t6d/i7frs6/nx3Nzl6Nva6fbl3uz88OxxY2VyYldZYGBZWmlzaHHu8GhgbHVkYHF6ZV1dXl1aXmlpaXT9/3l7+/nv5uDl5ODl7/Pp5ezo4Op7/ejse3fw8Xh56N/m6+De7nT36fxrdPV6aGpyZFpfc3Vpce/scmx98f344tzg59/a3+vq5+jm5+7v7fJ+dXFtZGRrbWtmbvh4ampwa2JeZmRbWmBaT1FcXVhbcHRjZnv5cG/q3eXs3tba5ebe3+/s3uDz9ebqfX7w9X5+/fj38vT+e29uev35/fp1bm5pZWhwdGpt+PT68uXt++rc3eHc1tvf3Nve6ezj53Vs/PVoXmZsYVxs+WxgbHtrXWRwb2tscG5rZmRkXlthZ2ZiZm1saWxxbnb17e3q6+zp5ut8fufo+vXo7X168/F0b/Lk6ffw4OT/fujo9vPk5/x08vJrZG10cWtpbWhiYGZqZm3x4+Xj3Nra2tve4ODg5eXl6fLw7f1vePb/cnj1+2tnbWpjYGluYlxeYllSVVtbWl5pZmNpbG1sbXru6ebg3dzc3Nzc3t3c3uLj6u729f5vef9zcP5+c2xqaGZnc/r6+v3w9nBqd3p0cP7+cG14dmpqdvfw4d3b29va3N3d3N3h6ent8nhwbWNgZXBsbHv2c21vdG1tdHNta29tbmRhYWNobHF1bmlrZGBga3B4+/Dt7uvt8fHw9+7o5OXn5ev1fn1+9Pl9/O3v+vXr8Hv36ejw6eDm+Hl5cGxteHBrZmdkXlpcYF5ice7p5N7c4OHe3Nzb3N/h5On3+/f+d336+fL193l3b29w/3BmaGxmXVxaWFZZXF5eZWloZF9fZmpr9Onn59/d4uff2t3d2tnb3N/k8Pz5fv16c292bmhmbGttcXt7fu/u8P7+bm92e29xfHRoY2hjY2p5fu3i3Nra3OPh3tzf3d3j7/N1Z2ZrZl9laWtteHVvbXd6dntvbXZ9bGViYV5gY2JhanlraGdoZGdtcW/77+vu9vz+6ubo6OHg4uTj6vDp6fH59Pf4+/tzevTt6+vo6ufh4ez4+/x1c3BtbWtjW1lYVlldYWVw7unm5OLh393d3NrY2+Hm73x5fHVsb3359vf3/Px3cnl2a2Zua2FcXVtYVVZXWVpcXWBiZW1yeHvy6Ojs6efl4t7b3dzb293d4uno6PH89/T+c3ZuampvcXl0e/bt7Pr27u92fu/xfPz8cGJfZGBiYWhw+fTs5d/l4t3d4N/b3eTs7XhvamdeYGlmaG59bnD/+XN5/PT6/X5yb2xoY2JdW1xgXFleamVeaW9taHd9fXn26+Xk6OXf3+nm4eHr6ebq9erj6PH493p9fP597erp5+Dk8PDv+W9zc2xkY15dXlxZXGJfZHLy9+3g2t3c2Nfa3dvb3unq7vVza2t2amVwenFqdXZtaXFwa2hpZGJhYGFdW1lZV1paXWFoaXF7efjx8vTm5OLh2tzg3tvc4N/g4evv7Ov59fj8dG1sbG5sc/ns8uri4Ozn4ufw+ftzamZrZ2NfZGNjZGx2/vXp3dzc3Nrf5+no8Pb+eW5qa2VlZWpnbHJ3dv737e/18fX2fHtwcmhlZF9ZV1pbWVhdYGJfZ2ppZm799/fu4uHj5t3c3+Te3uPm39zh6evl6+72+ft9fPXw7uzq5Obr9O3u+G9oYl9cW15eXFthZWhlcPbt697W1NfY19rf5eDj7nd993hqbXdza2t5c2xocnlyaGpybmhmaGdiXV5cWVdZXF5eX2ZraWVseHdvfurl6ODa29/g29rf5uHf4+3m4+v9/O3xcm18+3Rx7+ju9ujk6vDt5+x5amxqYl1fYmFfY2dpa3H58Ovl3dna3eDf4u/88vB6cXZ9dGx69vl+/PH0fXzu7fZ5fvtxZmx1aV5eY15XV1xcV1ddYl5cXmNjYmp79O7q4d3d3t7d3t/f3N7e3t7g5+rp6O99/PDwff7p5Ory6ujzdHv1dWZiaGdeWl1eW1pgamZmduzt697X1tvc2dzn8eno7vTy7PH7fPHt+Hz+9vx2enlybWxwbmpjZ2ZdXFxdW1dYXF1YWmZrZV5ocmxreuTf397Z197f3d3j6eHf4+fp6PP69PL8b3V7dG9y9e3t9PDs9Pt+9vJ0bW1xamJgYmdhX2VrcnB87enp49vc4Ofp6vn28Pj9e/t8c3B77vf49Ovo9/Pv7fp4fnp3bW9xa2dgXV5dXFpaWFpcWlpaXV5dYmz57+nh3tzh4+Hf3ODg3Nnc49/g4Ojs6u7u+v338+/u7fT38HpwdH57amlxemlfYWFhXFteYGNldPDn4+Lb3Nzc4eXp4+jv7enl9X3/+vd0dvzz9nV4entvaGpqaWNhZWdoXl5fYGJdXl1eX11fYWdnZGlz8u/u5t3Z3uHe3d7n5eDg6vDq6uvz9vP693twcXf4fPv17ez+/vzt8H707ej0dXRxb2NfY2lqZW188e706ebl6/fx8O/8//Pv7v53b295cHf96+r68+vn93X/+3doZ21ubmVpbGljXF1cW1dXWVteXl1gYWhpcPnq4OLi3tva3Nva2Nrg4d/d4+vl5On9fvHv9nn48/P6dnVvcG1pbnR8c2lnZ2heXWBkZmNodfPu7+Hc29/k4uDg6enk4ePw8/X7eGt2/f53d/r9/XhubGdoZGFiZmlkZGptaV9gYWJeWVxgaGBeZ2tuanTt5OLi3Nzc3NvZ29zf5ufq6ezy9PHt+3378e56cn7t9HT/8vR0cvXz+XZzeHFuaGlpaWdiaG95+PXw6uTm6+3r5+7w6ebl8vr4+nlqc/fx/Hzx6+z6//p7b2dqbWprbHFta29taWJiX1lYW15cWl1kamZmdu3s+O7g29vb1dTX3N3c4Ofs6ens6uzr6+fn8v9+7+17c3X9dWlsdX1rZGpsYlxha2dhYWx0c3X67ezl5+no5N/i4uHh3+To7Ozwcnj9+Xdscn58aWdvdG5iYWtra2drbWpoaGtnY19eXlxdX2BianNsa3jp4u/t39rb3trW2d7j4uTt//7t8fl98+zs7ff+fvj7eXf78fp1ffbwfW5ub2deYGhsZ2Zw/P1vbn72+X756+bj4+Ll5eTn7fXz+nBsdn56df73/2xqcf57aWt4eHBrbXVwbGlpZGReWlpaXFtcX2hoY2hu+e3w7ebe3uXf2NXa3tzZ3urt5+ry+u7o6e3w7/P4e3z++/R+cXJ6/HRqaG1qW1tlbWVhbX18bnD27O717+bj5Obl4N/j6Ofr7PpvbHF6c3FzdHlsYmRsbGJqfvV5bHP7fWtlaGhkXVxfY2BdYGFgYWJjZXJ9e/jq4OLm4d3Z3d/e3N7q7ejg5vLv6+rv+fHt7/r27OXo8e/v9f12cG1tbGBdYGlkYWhsem1pefHyd3Tz6O3w5N7e4ePg5Ofu/nd7/XlzeP99bGZpbW5rbnf5fG1weHlpYWVpZV1aXV9eWlxhZGJgY2p2dHvw6eTi39zc2tzd3t3d5Ofm3+Pv8uvp8v378erv9u3o6ft6fH5yaWpvcGZjZmZoZWNobnNsbXP99n788+rn6+fg3uHr6+nn9Xz59ftwcHV8dWlpa29va3V+9v1zfP19cW1rZ2NdXF1eX15eYWZmXl9nbmps/urg4OLd2tvf397g5u7p5OTn6unq6e709+3q9ffs5+fx/v34eWlnam1oYmRrb2tqcHx6amlxdHRsbn708fHr5ePn7evo6e3w8vP6cm1w//5wb3n7enB+7+78eP3+fXFsbGZiXVxfX11cXmFnZ2JlaW1saW/05+jq4dva3t/d3ODo5+Pj6O3o5ujs7enr7fd++fLv+3l8/ntpZGhrZ2Blbnlvbvr3fG1tcXNwaW1+7/H47OXh5+7s6+vx/Pj1+29tcnt3bXB5+Pp5/e7o9Hr49PtrZ2tpY15fZGZkYGNkYmFhY2ZraGZs/+719evi3uPk39ze5eXg3uTp49/g5ubi5Ony9/Tv7vX37u35bmdlaWZiYWh1c250/XtrZmptZl5lcHx3cfnr6u/w6urq6+/v7u71fvz18/b69/D4d3vz8X5xe/P9amNqa2djZWpraWRkZWRjY2hqa2xscnr9+vvu5eDh4N7b3OHk4Nzf5+ni5Ovr5ujvfn74+X53evX6dW1tbWtsaW52ev9vc3v+dm90eXdpaW9zbml18+30fffv9Hp69vP2/vnz8O/4/vr99vn79/X4ePz3+XJnbXB0amx4eXFmZmViYGFjZWRkZGdnaWxu/e7o5uXg4eLn5Nza3eDe3dzg6eLh5+7w6/P3/3r4fXRvbW1ubGpsdndta25tb21nb3p1amZqb25rd+7p7vTs6fD5/PDq7Pb06+70fHj9/f94enpwcmtveHZyam1zc25ufPl3Z2ZrbGhlZ21sZ2BnamtrcPfs5+no4uTm7Ovl3t/n5+Lk6vDr5+jt+/Pv9316/f98c3b9fXx5/vj2fnB2/H1ya29wbWJfZGZnZGr++31zdvb6/vrv5efv7+zs83x79/Dz8/f09X5ub3VydnF1fHt3dHn8fm1mbGxmXmFkYl1bXWFmZ2x97ejq6+Xj4uXi3dzc3+Df3+Ls6eLl6/Lt6/R3cP7/cW1wdG9vaG1xdXpvff55cWxsaGZjYGVrc3Fz/O/0enrw7vHy6ubl5+7t7fT9evf3+fx+/XNrZWdsa2xudXz0+3j68/H+ent+dWdjZGJfXl5kaWZndfn4+frt6+no6+Xj5Ofm5OXm6+nj5OPp6+js9Xz+9vx8evn09Xp78fL5fvv9eWtmZV9gXl1iaGhpbHF4enZ0fvDs7erh4efs6+jm7/Tr7O/v9fv9dWtrbW1uanB5d3dwfPj79Xt4eG5lXl5dXVxeY2dpZW58fvf76+fk4uff3t7j5eHi4OLi5urp8PPx+H5wdv59eHR3fHx4cP709fz68n1vZ2hnY2RiaW5xcHB+fP79+u3s7fDr5unq9Pbz9/n9+PL1fHV6eG9rbW5ucHF2+/v3/PLs6uv38Pd0amRoZmNgXmJiYl9kbGxqa37t6+zu6ejp6u/l4uTl5ODk5Ors6/L2fvn5//h5fe/39O707+r4+/B4cWRgY19fXF5gYmRha3Nwc3v16+fr6OLm6Ozr6Ons9u7r8fd8+vh6cm5xcHZvb3l7/Hl5+H5+dn5tbm5lZl9jYV1kZGBiZW1ucHXz6+7o5+bg5ebl4N/e4+jn7ev29X7+fmxueHJ8cHX7+X797fPv8Pfw/Xhwbm9sZmBkZmdqanN0cXh4+/Ps7PDr6+nw+Ozz9/347vn+d//9eXdtfH5+eXzt8u3w7+rz9fv+fHVyamlsaGNfX1xdXV1mZWZrbH307/Ht6enq6uPg4+Lf3uLj5u3p7u72d/Z++f727vDs9PLt8vV6/XltaWVmYl5dXWBdYGNqcHF8efbs6unt5ePk5enj5O709evt9Pv+8HZwbnX+bnd4/fR9+P74fv5+bnZtbGxqb2psYmVmY2Vkb3p6d3f57u/x7OTn5+zr5Onl5+jm7ez69fxzdXL/eXr2+e7s6/Dx6+zx/Pn2fX1vcG5lYl5kYGBpZ3Vwd3x88vXz8fTu7fD28O709n7v9P38efz3fXx67nPz5vDjeuzv9er+em11bm5rZGtrZmBcYGBdX2VvaW1tfvz49Pnk6OLn7Obi3+Ll3uPm6e7r9Pt1/fT27vLs7uzu8ejv+3BuZnZxa2ljYl1bXV1hY2dveHn/9u/t7PLs4ufm5+rn6Ovy7Obq9Xv8/nl4cPn6fX16+Ph6eHv8d25oZ2tlaWdpbmllX2Nmbmxr9/P5/vzs7fL06+fr7O7p5ujs6+nt8vp8+nl1dHL3+/P48uzv7PPs6/H4eXl6dnN1eG5pZWFmZWZobnx5fXd5+X5+dX36/vt89/Ly8vnt7PT8+/X6fH7y6u3x8Orj6fP17fR5dGxwbm5qaWpiYVxdYl5fYmtzbWtrdf56efzr6+7r6uLh4+Lg3+bq7Ojs+fD07+rs7fDs6+zy+O75cmtma2dlZmdnYV9fZGRka292eHZ6evf08Pbu6ezq7ujj5uXn4uLm6/fx/nZ5ePj7eHR3/3hxcXV5bmxqbHFua2lqamhmaG9wdHR3+3x5dXn0+Pnx6uju7u7q6Ozt7Ort8/p++nl6e3v0+vj29fHz8vbt6/X4e/b3d3Rz/nJvbWxxaWtqaW1oa2tvcGxva3R1d/z98Ozt7urj5eru7ez09/Po5uro6uvw+vX88/d7enN2aWZjYGNeXl5fZGBhYmdqbG5vfnV7/fbt7Ovq5eLj3+Pf3uLg5OPj6u3u7PD0+Xv0fXt6cHpyb2ppaWJkYWdoZ2hpbmtoaGdvam51efb28PDu6evq7Obh5uTn4+Xo7PHwfXdzc/52cXJzdXF1cHt3cXZqcG9qa2dsbWxqbndsbG90e3N7fv38ffb89u/19fT1+ff3+PL8+vv28PPx8+7t7/X78/H17u7q6uzv8PN8fHN0d29wbGxnZWNfYmBfYGBoa2xrb3x7fHr77e/s6ubi5OTk4uPl5OXk5ujq7+ru9PT09X16bW9wZ2NgX15dXltcW1xdX2dma2tuenr++u7q6+jo5N/g4uLf4eLj6OXm5unz8/l+eHZ+fHhz//53cWxwcGplY2pqaGZkZ2VlY2dsbG519/Dw7vDn6Ojp6+Xl6evr5+fp7u3v9vh3dHNwdHJ4e3l5e/13cXF1eHVya2p0cGtobG5pamhra297evzz+fn58vny+/ru9fL49PXs/vv08vP6+PPu9PT06u3s5+Ll5uDq6+ztdmxyb2xmZmhkYF5eYF9hZWlwdXdy/n76+/vt8uzr6uHj5Obm5eTo6efk6evt7/ju6+Hd53TvbGt9XmJfXmJeWV5faFxbX2NjcGxs93Hye+nucuTi5Ojk7O7v8OD09Ojg7u717e36eHjqePTvcf7re2t+dGllYW38Z2FvamBqYn7sd3jj4+fj6N/f7ezl6N/p49/f6+Pp8Ob9dubwd3xqeGtube35cOH9enZz9WhtbG1ceWdWbldoWmP4c35tdmzt93fvaf7qfXx263v/dn19fn7q9/jo7Xno53Hq5dzq5tvc7eba7H7+8Pv/bW9dYmFaZlRgaWxZY3dhZHD9WfPiZvbh6OIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2dzbV8xY2hfOGtoel8xM2ticHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIxNWIyOTYKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2dzbV8xY2hfOGtoel8xM2ticHMuaW5mbwpAQCAtMCwwICsxLDE3IEBACis5NzUgMzIgMAorOTc1IDMyIDYwMDAwMAorOTc1IDMyIDEyMDAwMDAKKzk3NSAzMiAxODAwMDAwCis5NzUgMzIgMjQwMDAwMAorOTc1IDMyIDMwMDAwMDAKKzk3NSAzMiAzNjAwMDAwCis5NzUgMzIgNDIwMDAwMAorOTc1IDMyIDQ4MDAwMDAKKzk3NSAzMiA1NDAwMDAwCis5NzUgMzIgNjAwMDAwMAorOTc1IDMyIDY2MDAwMDAKKzk3NSAzMiA3MjAwMDAwCis5NzUgMzIgNzgwMDAwMAorOTc1IDMyIDg0MDAwMDAKKzk3NSAzMiA5MDAwMDAwCis1MjAgMzIgOTYwMDAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9nc21fMWNoXzhraHpfMTNrYnBzLnJhdyBiL21lZGlhL3Jlcy9iYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5yYXcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGY5MDNhOAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5yYXcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9oMjYzXzM1MngyODhfMzAwa2Jwc18xMmZwcy5oMjYzIGIvbWVkaWEvcmVzL2JiYl9oMjYzXzM1MngyODhfMzAwa2Jwc18xMmZwcy5oMjYzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1MjU4MWYKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmgyNjMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9oMjYzXzM1MngyODhfMzAwa2Jwc18xMmZwcy5pbmZvIGIvbWVkaWEvcmVzL2JiYl9oMjYzXzM1MngyODhfMzAwa2Jwc18xMmZwcy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2ODczZDQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmluZm8KQEAgLTAsMCArMSwxMjIgQEAKKzI2MzYyIDMyIDAKKzEyMDIzIDAgODMzMzMKKzEwNjQ3IDAgMTY2NjY2CisxMDI2OSAwIDI1MDAwMAorMTEwNzYgMCAzMzMzMzMKKzExMTA0IDAgNDE2NjY2Cis1OTA5IDAgNTAwMDAwCis0MjkxIDAgNTgzMzMzCis1MTQ5IDAgNjY2NjY2Cis1MzUzIDAgNzUwMDAwCis1MTg1IDAgODMzMzMzCisyNzM2IDAgOTE2NjY2CisyMTU3NSAzMiAxMDAwMDAwCisyMTk2IDAgMTA4MzMzMworNDM0MCAwIDExNjY2NjYKKzMxMDkgMCAxMjUwMDAwCis0NDEwIDAgMTMzMzMzMworMTczMSAwIDE0MTY2NjYKKzQ1NTcgMCAxNTAwMDAwCiszMzc2IDAgMTU4MzMzMworMTM1MiAwIDE2NjY2NjYKKzI4NDQgMCAxNzUwMDAwCisxNzg3IDAgMTgzMzMzMworMTA4OCAwIDE5MTY2NjYKKzM2ODQzIDMyIDIwMDAwMDAKKzI1MjAgMCAyMDgzMzMzCiszNzQ5IDAgMjE2NjY2NgorMzc4NCAwIDIyNTAwMDAKKzM0MDIgMCAyMzMzMzMzCiszNzk1IDAgMjQxNjY2NgorMjM0NSAwIDI1MDAwMDAKKzMxNDIgMCAyNTgzMzMzCisyOTQ4IDAgMjY2NjY2NgorMjAxOCAwIDI3NTAwMDAKKzUxMzMgMCAyODMzMzMzCisyMjc2IDAgMjkxNjY2NgorMjM0NjggMzIgMzAwMDAwMAorMTUyMiAwIDMwODMzMzMKKzIyOTkgMCAzMTY2NjY2CiszMjczIDAgMzI1MDAwMAorMjYzMCAwIDMzMzMzMzMKKzI5MTUgMCAzNDE2NjY2CiszMDMyIDAgMzUwMDAwMAorMTg5MCAwIDM1ODMzMzMKKzM3MTggMCAzNjY2NjY2CisxOTkwIDAgMzc1MDAwMAorMzEzOSAwIDM4MzMzMzMKKzE4MDYgMCAzOTE2NjY2CisyMzIwOCAzMiA0MDAwMDAwCisxNDE5IDAgNDA4MzMzMworMjI2MyAwIDQxNjY2NjYKKzMxMzEgMCA0MjUwMDAwCisyNjQ1IDAgNDMzMzMzMworMTg4MCAwIDQ0MTY2NjYKKzIyMzkgMCA0NTAwMDAwCiszNjM3IDAgNDU4MzMzMworMTk0MSAwIDQ2NjY2NjYKKzE1NzcgMCA0NzUwMDAwCiszNzc3IDAgNDgzMzMzMworMTgxNiAwIDQ5MTY2NjYKKzE5NjAxIDMyIDUwMDAwMDAKKzExMDQgMCA1MDgzMzMzCisyODA4IDAgNTE2NjY2NgorMjQxMSAwIDUyNTAwMDAKKzIxNTkgMCA1MzMzMzMzCisyNDExIDAgNTQxNjY2NgorMjQwOCAwIDU1MDAwMDAKKzIzODggMCA1NTgzMzMzCisyNDE4IDAgNTY2NjY2NgorMTQ4MSAwIDU3NTAwMDAKKzE5MjYgMCA1ODMzMzMzCis5MDIyIDMyIDU5MTY2NjYKKzI5MiAwIDYwMDAwMDAKKzcwMSAwIDYwODMzMzMKKzc0NyAwIDYxNjY2NjYKKzIwNTkgMCA2MjUwMDAwCisxNjkzIDAgNjMzMzMzMworMjA3OCAwIDY0MTY2NjYKKzI5NzUgMCA2NTAwMDAwCisxMzE3IDAgNjU4MzMzMworMTc0MiAwIDY2NjY2NjYKKzEwMTkgMCA2NzUwMDAwCisxMDUzIDAgNjgzMzMzMworMTQxODMgMzIgNjkxNjY2NgorMTQ2NyAwIDcwMDAwMDAKKzk5NCAwIDcwODMzMzMKKzE3MDkgMCA3MTY2NjY2Cis4MzggMCA3MjUwMDAwCisxMzI4IDAgNzMzMzMzMworMjI5MiAwIDc0MTY2NjYKKzE4MjkgMCA3NTAwMDAwCisxNzI4IDAgNzU4MzMzMworMjQzNiAwIDc2NjY2NjYKKzE4NTIgMCA3NzUwMDAwCisyMTkwIDAgNzgzMzMzMworMTUxNjcgMzIgNzkxNjY2NgorMTE4OCAwIDgwMDAwMDAKKzIwNzAgMCA4MDgzMzMzCiszMzE2IDAgODE2NjY2NgorMjYzNiAwIDgyNTAwMDAKKzk1MCAwIDgzMzMzMzMKKzEyNjAgMCA4NDE2NjY2Cis5MDYgMCA4NTAwMDAwCisxMjk0IDAgODU4MzMzMworMTI5OCAwIDg2NjY2NjYKKzE4OTcgMCA4NzUwMDAwCisxMzQ4IDAgODgzMzMzMworMTMxOTQgMzIgODkxNjY2NgorMTA0MiAwIDkwMDAwMDAKKzEyNTggMCA5MDgzMzMzCisxNDU3IDAgOTE2NjY2NgorOTkwIDAgOTI1MDAwMAorOTAwIDAgOTMzMzMzMworOTYzIDAgOTQxNjY2NgorMzQ0OCAwIDk1MDAwMDAKKzc3NCAwIDk1ODMzMzMKKzEwNzUgMCA5NjY2NjY2Cis3NTAgMCA5NzUwMDAwCisxMDU0IDAgOTgzMzMzMworMTMxMzkgMzIgOTkxNjY2NgorMzEwNCAwIDEwMDAwMDAwCiszMzY2IDAgMTAwODMzMzMKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmhldmMgYi9tZWRpYS9yZXMvYmJiX2hldmNfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5oZXZjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1MWY3Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2hldmNfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5oZXZjCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8gYi9tZWRpYS9yZXMvYmJiX2hldmNfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5ZTU1NTQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2hldmNfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5pbmZvCkBAIC0wLDAgKzEsMzAyIEBACisxMDc1IDEyOCAwCisxMDc1IDEyOCAwCis2ODYxMyAzMiA2NjY4NworMTkwMjUgMCAxOTk2ODcKKzI0MDUgMCAxMzM2ODcKKzc3NyAwIDk5Njg3Cis2ODEgMCAxNjY2ODcKKzIwMjU0IDAgMzMzNjg3CisyOTI3IDAgMjY2Njg3Cis3NjYgMCAyMzM2ODcKKzY1OCAwIDI5OTY4NworMjA3ODYgMCA0NjY2ODcKKzQyMTQgMCAzOTk2ODcKKzYwOSAwIDM2NjY4NworNjYxIDAgNDMzNjg3CisyMDgzOCAwIDU5OTY4NworNDIwOSAwIDUzMzY4NworNTA2IDAgNDk5Njg3Cis1ODYgMCA1NjY2ODcKKzIwNDE1IDAgNzMzNjg3Cis0MjA3IDAgNjY2Njg3Cis0MjcgMCA2MzM2ODcKKzUxNCAwIDY5OTY4NworMjQ0NTcgMCA4OTk2ODcKKzE5MDQgMCA4MzM2ODcKKzkyMSAwIDc2NjY4NworOTkyIDAgNzk5Njg3Cis1NDMgMCA4NjY2ODcKKzI0MzQyIDAgMTA2NjY4NworMTgyMiAwIDk5OTY4NworODQwIDAgOTMzNjg3Cis4OTIgMCA5NjY2ODcKKzcxNSAwIDEwMzM2ODcKKzIyODkzIDAgMTIzMzY4NworMTYxOCAwIDExNjY2ODcKKzg4MSAwIDEwOTk2ODcKKzg5MCAwIDExMzM2ODcKKzc5NCAwIDExOTk2ODcKKzI0MjkyIDAgMTM5OTY4NworMTY3MyAwIDEzMzM2ODcKKzc1NSAwIDEyNjY2ODcKKzgxMCAwIDEyOTk2ODcKKzU4OCAwIDEzNjY2ODcKKzE5ODI4IDAgMTUzMzY4NworMTUzOCAwIDE0NjY2ODcKKzg5NCAwIDE0MzM2ODcKKzkzMyAwIDE0OTk2ODcKKzE5ODUzIDAgMTY2NjY4NworMjAxMSAwIDE1OTk2ODcKKzk4MSAwIDE1NjY2ODcKKzkwMCAwIDE2MzM2ODcKKzIyODY5IDAgMTgzMzY4NworMTU2MiAwIDE3NjY2ODcKKzg0MiAwIDE2OTk2ODcKKzc2NSAwIDE3MzM2ODcKKzY2NSAwIDE3OTk2ODcKKzIyMzQ2IDAgMTk2NjY4NworMjI0NSAwIDE4OTk2ODcKKzUxNiAwIDE4NjY2ODcKKzYwNCAwIDE5MzM2ODcKKzI0MzMzIDAgMjA5OTY4NworMTc2NSAwIDIwMzM2ODcKKzMxOCAwIDE5OTk2ODcKKzMyMCAwIDIwNjY2ODcKKzE4NTc3IDAgMjE5OTY4NworMTEyMyAwIDIxNjY2ODcKKzMzNyAwIDIxMzM2ODcKKzE3NTA5IDAgMjI5OTY4NworODY5IDAgMjI2NjY4NworOTAxIDAgMjIzMzY4NworMjMzNjYgMCAyNDMzNjg3CisxMjE3IDAgMjM2NjY4NworMzgwIDAgMjMzMzY4NworMzQ3IDAgMjM5OTY4NworMTk1NDIgMCAyNTMzNjg3CisxODg3IDAgMjQ5OTY4NworNDY3IDAgMjQ2NjY4NworMTg5MzkgMCAyNjY2Njg3CisyODYzIDAgMjU5OTY4NworMzE3IDAgMjU2NjY4NworMjcyIDAgMjYzMzY4NworMTkzNTMgMCAyNzk5Njg3CisyMDkyIDAgMjczMzY4NworMjAzIDAgMjY5OTY4NworMzEwIDAgMjc2NjY4NworMTg4MDAgMCAyOTMzNjg3CisyMDM4IDAgMjg2NjY4NworMjQyIDAgMjgzMzY4NworMTk5IDAgMjg5OTY4NworMTc0NTIgMCAzMDk5Njg3CisxMDYwIDAgMzAzMzY4NworMzAxIDAgMjk2NjY4NworNDUyIDAgMjk5OTY4NworMjU2IDAgMzA2NjY4NworMjEzNTIgMCAzMTk5Njg3Cis0MDkgMCAzMTY2Njg3CisxNzMgMCAzMTMzNjg3CisxOTE0MiAwIDMyOTk2ODcKKzY0MiAwIDMyNjY2ODcKKzQ2OCAwIDMyMzM2ODcKKzE5MDY2IDAgMzQzMzY4NworNjM1IDAgMzM2NjY4NworMTk3IDAgMzMzMzY4NworMTkwIDAgMzM5OTY4NworMTg4MTMgMCAzNTY2Njg3Cis5NjkgMCAzNDk5Njg3CisxNjUgMCAzNDY2Njg3CisyMDMgMCAzNTMzNjg3CisxNzM2MiAwIDM3MzM2ODcKKzI0NiAwIDM2NjY2ODcKKzIzNiAwIDM1OTk2ODcKKzE3NCAwIDM2MzM2ODcKKzE2NCAwIDM2OTk2ODcKKzE3MDgxIDAgMzg5OTY4NworMzUzIDAgMzgzMzY4NworMjIyIDAgMzc2NjY4NworMTgxIDAgMzc5OTY4NworMTQ4IDAgMzg2NjY4NworMTA4MzUgMCAzOTk5Njg3CisxODUgMCAzOTY2Njg3CisxMzkgMCAzOTMzNjg3Cis3NTEwIDAgNDEzMzY4NworMTQ5IDAgNDA2NjY4NworMTI5IDAgNDAzMzY4NworMTMyIDAgNDA5OTY4NworMTA2MyAwIDQxNjY2ODcKKzgwNSAwIDQyNjY2ODcKKzE1NyAwIDQyMzM2ODcKKzM5NCAwIDQxOTk2ODcKKzkwODQwIDAgNDM5OTY4NworNjE1OSAwIDQzMzM2ODcKKzE3NTIgMCA0Mjk5Njg3Cis5ODUgMCA0MzY2Njg3CiszMTMzOCAwIDQ1MzM2ODcKKzMzOTAgMCA0NDY2Njg3Cis3NzIgMCA0NDMzNjg3Cis3ODEgMCA0NDk5Njg3CiszMTA4NCAwIDQ2NjY2ODcKKzM0OTggMCA0NTk5Njg3Cis4MTggMCA0NTY2Njg3Cis4ODEgMCA0NjMzNjg3CiszMDQxNiAwIDQ3OTk2ODcKKzMyNjUgMCA0NzMzNjg3Cis4MTUgMCA0Njk5Njg3Cis3OTAgMCA0NzY2Njg3CiszMTA1MyAwIDQ5MzM2ODcKKzMxMDYgMCA0ODY2Njg3Cis3MDggMCA0ODMzNjg3Cis3MTMgMCA0ODk5Njg3CiszMDIzMCAwIDUwNjY2ODcKKzMyMTQgMCA0OTk5Njg3Cis2MzkgMCA0OTY2Njg3Cis3NjggMCA1MDMzNjg3CisyOTY1NyAwIDUxOTk2ODcKKzMwMTMgMCA1MTMzNjg3Cis2MjIgMCA1MDk5Njg3Cis3MjAgMCA1MTY2Njg3CisyOTM0NCAwIDUzMzM2ODcKKzMxOTYgMCA1MjY2Njg3Cis3MTMgMCA1MjMzNjg3Cis3NzUgMCA1Mjk5Njg3CiszMDQyMCAwIDU0NjY2ODcKKzMzNzQgMCA1Mzk5Njg3Cis4MDMgMCA1MzY2Njg3Cis3MTcgMCA1NDMzNjg3CisyOTk2MCAwIDU1OTk2ODcKKzMyODMgMCA1NTMzNjg3Cis3OTMgMCA1NDk5Njg3Cis3OTAgMCA1NTY2Njg3CiszMTAxMSAwIDU3MzM2ODcKKzMzOTcgMCA1NjY2Njg3Cis4MDkgMCA1NjMzNjg3Cis4MzEgMCA1Njk5Njg3CiszMTE5NCAwIDU4NjY2ODcKKzM0MDEgMCA1Nzk5Njg3Cis4MDcgMCA1NzY2Njg3Cis4MjcgMCA1ODMzNjg3CiszMDMyNiAwIDU5OTk2ODcKKzMxODYgMCA1OTMzNjg3Cis4MTggMCA1ODk5Njg3Cis4NjMgMCA1OTY2Njg3CiszMTU1OSAwIDYxMzM2ODcKKzMzNjQgMCA2MDY2Njg3Cis4NDAgMCA2MDMzNjg3Cis5MTkgMCA2MDk5Njg3CiszMjAxMyAwIDYyNjY2ODcKKzM0OTUgMCA2MTk5Njg3Cis4NzEgMCA2MTY2Njg3Cis4MDMgMCA2MjMzNjg3CiszMDI5NCAwIDYzOTk2ODcKKzMxNTMgMCA2MzMzNjg3Cis3MTYgMCA2Mjk5Njg3Cis4MTIgMCA2MzY2Njg3CisyOTk1MiAwIDY1MzM2ODcKKzMyOTkgMCA2NDY2Njg3Cis4MDEgMCA2NDMzNjg3Cis3NDkgMCA2NDk5Njg3CiszMDU5OCAwIDY2NjY2ODcKKzM1MzYgMCA2NTk5Njg3Cis4ODcgMCA2NTY2Njg3Cis4NTAgMCA2NjMzNjg3CisxNzI0NiAwIDY2OTk2ODcKKzMxMTEwIDAgNjgzMzY4NworMzE5OCAwIDY3NjY2ODcKKzgwOSAwIDY3MzM2ODcKKzgzNiAwIDY3OTk2ODcKKzI5Nzg0IDAgNjk2NjY4NworMzE1NSAwIDY4OTk2ODcKKzg1OSAwIDY4NjY2ODcKKzk1OCAwIDY5MzM2ODcKKzMwNjY2IDAgNzA5OTY4NworMzM3MSAwIDcwMzM2ODcKKzg4NiAwIDY5OTk2ODcKKzg2MSAwIDcwNjY2ODcKKzMwNDE2IDAgNzIzMzY4NworMzM1MCAwIDcxNjY2ODcKKzkxNyAwIDcxMzM2ODcKKzk4NyAwIDcxOTk2ODcKKzI5NTA5IDAgNzM2NjY4NworMzU3NCAwIDcyOTk2ODcKKzk3MiAwIDcyNjY2ODcKKzg4NSAwIDczMzM2ODcKKzMwODcyIDAgNzQ5OTY4NworMzM5OSAwIDc0MzM2ODcKKzg5OCAwIDczOTk2ODcKKzEwMjcgMCA3NDY2Njg3CiszMTE1NSAwIDc2MzM2ODcKKzM0NTQgMCA3NTY2Njg3Cis5NjUgMCA3NTMzNjg3Cis4NDEgMCA3NTk5Njg3CisyODQ4NyAwIDc3NjY2ODcKKzM2MTYgMCA3Njk5Njg3Cis5MjEgMCA3NjY2Njg3Cis5OTEgMCA3NzMzNjg3CisyMzIwOCAwIDc4OTk2ODcKKzM1NTEgMCA3ODMzNjg3Cis5MTggMCA3Nzk5Njg3Cis4OTQgMCA3ODY2Njg3CisxNjk4MiAwIDgwMzM2ODcKKzM0NTggMCA3OTY2Njg3Cis4NDQgMCA3OTMzNjg3Cis5NDMgMCA3OTk5Njg3CiszMDM5NiAwIDgxOTk2ODcKKzQ5NjMgMCA4MTMzNjg3CisxNDE2IDAgODA2NjY4NworMTYzOSAwIDgwOTk2ODcKKzUyNCAwIDgxNjY2ODcKKzEzNjggMCA4Mjk5Njg3Cis1NjUgMCA4MjY2Njg3CiszOTIgMCA4MjMzNjg3Cis0MTMxNyAzMiA4Mzk5Njg3CisxODUgMCA4MzY2Njg3Cis0NzcgMCA4MzMzNjg3Cis1MzQyIDAgODUzMzY4NworMTI3NSAwIDg0NjY2ODcKKzEyMSAwIDg0MzM2ODcKKzk4MiAwIDg0OTk2ODcKKzY0NjUgMCA4Njk5Njg3CisyNjA2IDAgODYzMzY4NworMTE2MyAwIDg1NjY2ODcKKzk0MyAwIDg1OTk2ODcKKzExODYgMCA4NjY2Njg3CisxMTU5MyAwIDg4MzM2ODcKKzMxMjIgMCA4NzY2Njg3CisxMjc4IDAgODczMzY4NworMTU5MyAwIDg3OTk2ODcKKzkwOTkgMCA4OTk5Njg3Cis5NzggMCA4OTMzNjg3Cis3NDggMCA4ODY2Njg3Cis4MzUgMCA4ODk5Njg3CiszNjQgMCA4OTY2Njg3Cis0Nzk5IDAgOTA5OTY4NworMzY1IDAgOTA2NjY4NworMjE1IDAgOTAzMzY4NworNDM2NyAwIDkxOTk2ODcKKzMwMiAwIDkxNjY2ODcKKzQ4MCAwIDkxMzM2ODcKKzYxODAgMCA5MzMzNjg3Cis3NzEgMCA5MjY2Njg3CisyNDYgMCA5MjMzNjg3CisyODEgMCA5Mjk5Njg3Cis0NjM2IDAgOTM5OTY4NworMjExIDAgOTM2NjY4NworNDAzNyAwIDk0OTk2ODcKKzM4MiAwIDk0NjY2ODcKKzQ4NiAwIDk0MzM2ODcKKzM5NzUgMCA5NTk5Njg3CiszMTIgMCA5NTY2Njg3Cis0NzQgMCA5NTMzNjg3Cis2ODgwIDAgOTczMzY4NworMTExNiAwIDk2NjY2ODcKKzIwNiAwIDk2MzM2ODcKKzY5OCAwIDk2OTk2ODcKKzYyNTQgMCA5ODk5Njg3CisyNTgxIDAgOTgzMzY4NworMTMwMyAwIDk3NjY2ODcKKzk4NSAwIDk3OTk2ODcKKzk2NyAwIDk4NjY2ODcKKzY0ODYgMCAxMDAzMzY4NworMzU1NSAwIDk5NjY2ODcKKzE0MzAgMCA5OTMzNjg3CisxNjA1IDAgOTk5OTY4NwpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9tcDNfc3RlcmVvXzE5MmticHNfNDgwMDBoei5pbmZvIGIvbWVkaWEvcmVzL2JiYl9tcDNfc3RlcmVvXzE5MmticHNfNDgwMDBoei5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYzQ4NjkKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6LmluZm8KQEAgLTAsMCArMSw0MTQgQEAKKzU3NiAzMiAwCis1NzYgMzIgMjQwMDAKKzU3NiAzMiA0ODAwMAorNTc2IDMyIDcyMDAwCis1NzYgMzIgOTYwMDAKKzU3NiAzMiAxMjAwMDAKKzU3NiAzMiAxNDQwMDAKKzU3NiAzMiAxNjgwMDAKKzU3NiAzMiAxOTIwMDAKKzU3NiAzMiAyMTYwMDAKKzU3NiAzMiAyNDAwMDAKKzU3NiAzMiAyNjQwMDAKKzU3NiAzMiAyODgwMDAKKzU3NiAzMiAzMTIwMDAKKzU3NiAzMiAzMzYwMDAKKzU3NiAzMiAzNjAwMDAKKzU3NiAzMiAzODQwMDAKKzU3NiAzMiA0MDgwMDAKKzU3NiAzMiA0MzIwMDAKKzU3NiAzMiA0NTYwMDAKKzU3NiAzMiA0ODAwMDAKKzU3NiAzMiA1MDQwMDAKKzU3NiAzMiA1MjgwMDAKKzU3NiAzMiA1NTIwMDAKKzU3NiAzMiA1NzYwMDAKKzU3NiAzMiA2MDAwMDAKKzU3NiAzMiA2MjQwMDAKKzU3NiAzMiA2NDgwMDAKKzU3NiAzMiA2NzIwMDAKKzU3NiAzMiA2OTYwMDAKKzU3NiAzMiA3MjAwMDAKKzU3NiAzMiA3NDQwMDAKKzU3NiAzMiA3NjgwMDAKKzU3NiAzMiA3OTIwMDAKKzU3NiAzMiA4MTYwMDAKKzU3NiAzMiA4NDAwMDAKKzU3NiAzMiA4NjQwMDAKKzU3NiAzMiA4ODgwMDAKKzU3NiAzMiA5MTIwMDAKKzU3NiAzMiA5MzYwMDAKKzU3NiAzMiA5NjAwMDAKKzU3NiAzMiA5ODQwMDAKKzU3NiAzMiAxMDA4MDAwCis1NzYgMzIgMTAzMjAwMAorNTc2IDMyIDEwNTYwMDAKKzU3NiAzMiAxMDgwMDAwCis1NzYgMzIgMTEwNDAwMAorNTc2IDMyIDExMjgwMDAKKzU3NiAzMiAxMTUyMDAwCis1NzYgMzIgMTE3NjAwMAorNTc2IDMyIDEyMDAwMDAKKzU3NiAzMiAxMjI0MDAwCis1NzYgMzIgMTI0ODAwMAorNTc2IDMyIDEyNzIwMDAKKzU3NiAzMiAxMjk2MDAwCis1NzYgMzIgMTMyMDAwMAorNTc2IDMyIDEzNDQwMDAKKzU3NiAzMiAxMzY4MDAwCis1NzYgMzIgMTM5MjAwMAorNTc2IDMyIDE0MTYwMDAKKzU3NiAzMiAxNDQwMDAwCis1NzYgMzIgMTQ2NDAwMAorNTc2IDMyIDE0ODgwMDAKKzU3NiAzMiAxNTEyMDAwCis1NzYgMzIgMTUzNjAwMAorNTc2IDMyIDE1NjAwMDAKKzU3NiAzMiAxNTg0MDAwCis1NzYgMzIgMTYwODAwMAorNTc2IDMyIDE2MzIwMDAKKzU3NiAzMiAxNjU2MDAwCis1NzYgMzIgMTY4MDAwMAorNTc2IDMyIDE3MDQwMDAKKzU3NiAzMiAxNzI4MDAwCis1NzYgMzIgMTc1MjAwMAorNTc2IDMyIDE3NzYwMDAKKzU3NiAzMiAxODAwMDAwCis1NzYgMzIgMTgyNDAwMAorNTc2IDMyIDE4NDgwMDAKKzU3NiAzMiAxODcyMDAwCis1NzYgMzIgMTg5NjAwMAorNTc2IDMyIDE5MjAwMDAKKzU3NiAzMiAxOTQ0MDAwCis1NzYgMzIgMTk2ODAwMAorNTc2IDMyIDE5OTIwMDAKKzU3NiAzMiAyMDE2MDAwCis1NzYgMzIgMjA0MDAwMAorNTc2IDMyIDIwNjQwMDAKKzU3NiAzMiAyMDg4MDAwCis1NzYgMzIgMjExMjAwMAorNTc2IDMyIDIxMzYwMDAKKzU3NiAzMiAyMTYwMDAwCis1NzYgMzIgMjE4NDAwMAorNTc2IDMyIDIyMDgwMDAKKzU3NiAzMiAyMjMyMDAwCis1NzYgMzIgMjI1NjAwMAorNTc2IDMyIDIyODAwMDAKKzU3NiAzMiAyMzA0MDAwCis1NzYgMzIgMjMyODAwMAorNTc2IDMyIDIzNTIwMDAKKzU3NiAzMiAyMzc2MDAwCis1NzYgMzIgMjQwMDAwMAorNTc2IDMyIDI0MjQwMDAKKzU3NiAzMiAyNDQ4MDAwCis1NzYgMzIgMjQ3MjAwMAorNTc2IDMyIDI0OTYwMDAKKzU3NiAzMiAyNTIwMDAwCis1NzYgMzIgMjU0NDAwMAorNTc2IDMyIDI1NjgwMDAKKzU3NiAzMiAyNTkyMDAwCis1NzYgMzIgMjYxNjAwMAorNTc2IDMyIDI2NDAwMDAKKzU3NiAzMiAyNjY0MDAwCis1NzYgMzIgMjY4ODAwMAorNTc2IDMyIDI3MTIwMDAKKzU3NiAzMiAyNzM2MDAwCis1NzYgMzIgMjc2MDAwMAorNTc2IDMyIDI3ODQwMDAKKzU3NiAzMiAyODA4MDAwCis1NzYgMzIgMjgzMjAwMAorNTc2IDMyIDI4NTYwMDAKKzU3NiAzMiAyODgwMDAwCis1NzYgMzIgMjkwNDAwMAorNTc2IDMyIDI5MjgwMDAKKzU3NiAzMiAyOTUyMDAwCis1NzYgMzIgMjk3NjAwMAorNTc2IDMyIDMwMDAwMDAKKzU3NiAzMiAzMDI0MDAwCis1NzYgMzIgMzA0ODAwMAorNTc2IDMyIDMwNzIwMDAKKzU3NiAzMiAzMDk2MDAwCis1NzYgMzIgMzEyMDAwMAorNTc2IDMyIDMxNDQwMDAKKzU3NiAzMiAzMTY4MDAwCis1NzYgMzIgMzE5MjAwMAorNTc2IDMyIDMyMTYwMDAKKzU3NiAzMiAzMjQwMDAwCis1NzYgMzIgMzI2NDAwMAorNTc2IDMyIDMyODgwMDAKKzU3NiAzMiAzMzEyMDAwCis1NzYgMzIgMzMzNjAwMAorNTc2IDMyIDMzNjAwMDAKKzU3NiAzMiAzMzg0MDAwCis1NzYgMzIgMzQwODAwMAorNTc2IDMyIDM0MzIwMDAKKzU3NiAzMiAzNDU2MDAwCis1NzYgMzIgMzQ4MDAwMAorNTc2IDMyIDM1MDQwMDAKKzU3NiAzMiAzNTI4MDAwCis1NzYgMzIgMzU1MjAwMAorNTc2IDMyIDM1NzYwMDAKKzU3NiAzMiAzNjAwMDAwCis1NzYgMzIgMzYyNDAwMAorNTc2IDMyIDM2NDgwMDAKKzU3NiAzMiAzNjcyMDAwCis1NzYgMzIgMzY5NjAwMAorNTc2IDMyIDM3MjAwMDAKKzU3NiAzMiAzNzQ0MDAwCis1NzYgMzIgMzc2ODAwMAorNTc2IDMyIDM3OTIwMDAKKzU3NiAzMiAzODE2MDAwCis1NzYgMzIgMzg0MDAwMAorNTc2IDMyIDM4NjQwMDAKKzU3NiAzMiAzODg4MDAwCis1NzYgMzIgMzkxMjAwMAorNTc2IDMyIDM5MzYwMDAKKzU3NiAzMiAzOTYwMDAwCis1NzYgMzIgMzk4NDAwMAorNTc2IDMyIDQwMDgwMDAKKzU3NiAzMiA0MDMyMDAwCis1NzYgMzIgNDA1NjAwMAorNTc2IDMyIDQwODAwMDAKKzU3NiAzMiA0MTA0MDAwCis1NzYgMzIgNDEyODAwMAorNTc2IDMyIDQxNTIwMDAKKzU3NiAzMiA0MTc2MDAwCis1NzYgMzIgNDIwMDAwMAorNTc2IDMyIDQyMjQwMDAKKzU3NiAzMiA0MjQ4MDAwCis1NzYgMzIgNDI3MjAwMAorNTc2IDMyIDQyOTYwMDAKKzU3NiAzMiA0MzIwMDAwCis1NzYgMzIgNDM0NDAwMAorNTc2IDMyIDQzNjgwMDAKKzU3NiAzMiA0MzkyMDAwCis1NzYgMzIgNDQxNjAwMAorNTc2IDMyIDQ0NDAwMDAKKzU3NiAzMiA0NDY0MDAwCis1NzYgMzIgNDQ4ODAwMAorNTc2IDMyIDQ1MTIwMDAKKzU3NiAzMiA0NTM2MDAwCis1NzYgMzIgNDU2MDAwMAorNTc2IDMyIDQ1ODQwMDAKKzU3NiAzMiA0NjA4MDAwCis1NzYgMzIgNDYzMjAwMAorNTc2IDMyIDQ2NTYwMDAKKzU3NiAzMiA0NjgwMDAwCis1NzYgMzIgNDcwNDAwMAorNTc2IDMyIDQ3MjgwMDAKKzU3NiAzMiA0NzUyMDAwCis1NzYgMzIgNDc3NjAwMAorNTc2IDMyIDQ4MDAwMDAKKzU3NiAzMiA0ODI0MDAwCis1NzYgMzIgNDg0ODAwMAorNTc2IDMyIDQ4NzIwMDAKKzU3NiAzMiA0ODk2MDAwCis1NzYgMzIgNDkyMDAwMAorNTc2IDMyIDQ5NDQwMDAKKzU3NiAzMiA0OTY4MDAwCis1NzYgMzIgNDk5MjAwMAorNTc2IDMyIDUwMTYwMDAKKzU3NiAzMiA1MDQwMDAwCis1NzYgMzIgNTA2NDAwMAorNTc2IDMyIDUwODgwMDAKKzU3NiAzMiA1MTEyMDAwCis1NzYgMzIgNTEzNjAwMAorNTc2IDMyIDUxNjAwMDAKKzU3NiAzMiA1MTg0MDAwCis1NzYgMzIgNTIwODAwMAorNTc2IDMyIDUyMzIwMDAKKzU3NiAzMiA1MjU2MDAwCis1NzYgMzIgNTI4MDAwMAorNTc2IDMyIDUzMDQwMDAKKzU3NiAzMiA1MzI4MDAwCis1NzYgMzIgNTM1MjAwMAorNTc2IDMyIDUzNzYwMDAKKzU3NiAzMiA1NDAwMDAwCis1NzYgMzIgNTQyNDAwMAorNTc2IDMyIDU0NDgwMDAKKzU3NiAzMiA1NDcyMDAwCis1NzYgMzIgNTQ5NjAwMAorNTc2IDMyIDU1MjAwMDAKKzU3NiAzMiA1NTQ0MDAwCis1NzYgMzIgNTU2ODAwMAorNTc2IDMyIDU1OTIwMDAKKzU3NiAzMiA1NjE2MDAwCis1NzYgMzIgNTY0MDAwMAorNTc2IDMyIDU2NjQwMDAKKzU3NiAzMiA1Njg4MDAwCis1NzYgMzIgNTcxMjAwMAorNTc2IDMyIDU3MzYwMDAKKzU3NiAzMiA1NzYwMDAwCis1NzYgMzIgNTc4NDAwMAorNTc2IDMyIDU4MDgwMDAKKzU3NiAzMiA1ODMyMDAwCis1NzYgMzIgNTg1NjAwMAorNTc2IDMyIDU4ODAwMDAKKzU3NiAzMiA1OTA0MDAwCis1NzYgMzIgNTkyODAwMAorNTc2IDMyIDU5NTIwMDAKKzU3NiAzMiA1OTc2MDAwCis1NzYgMzIgNjAwMDAwMAorNTc2IDMyIDYwMjQwMDAKKzU3NiAzMiA2MDQ4MDAwCis1NzYgMzIgNjA3MjAwMAorNTc2IDMyIDYwOTYwMDAKKzU3NiAzMiA2MTIwMDAwCis1NzYgMzIgNjE0NDAwMAorNTc2IDMyIDYxNjgwMDAKKzU3NiAzMiA2MTkyMDAwCis1NzYgMzIgNjIxNjAwMAorNTc2IDMyIDYyNDAwMDAKKzU3NiAzMiA2MjY0MDAwCis1NzYgMzIgNjI4ODAwMAorNTc2IDMyIDYzMTIwMDAKKzU3NiAzMiA2MzM2MDAwCis1NzYgMzIgNjM2MDAwMAorNTc2IDMyIDYzODQwMDAKKzU3NiAzMiA2NDA4MDAwCis1NzYgMzIgNjQzMjAwMAorNTc2IDMyIDY0NTYwMDAKKzU3NiAzMiA2NDgwMDAwCis1NzYgMzIgNjUwNDAwMAorNTc2IDMyIDY1MjgwMDAKKzU3NiAzMiA2NTUyMDAwCis1NzYgMzIgNjU3NjAwMAorNTc2IDMyIDY2MDAwMDAKKzU3NiAzMiA2NjI0MDAwCis1NzYgMzIgNjY0ODAwMAorNTc2IDMyIDY2NzIwMDAKKzU3NiAzMiA2Njk2MDAwCis1NzYgMzIgNjcyMDAwMAorNTc2IDMyIDY3NDQwMDAKKzU3NiAzMiA2NzY4MDAwCis1NzYgMzIgNjc5MjAwMAorNTc2IDMyIDY4MTYwMDAKKzU3NiAzMiA2ODQwMDAwCis1NzYgMzIgNjg2NDAwMAorNTc2IDMyIDY4ODgwMDAKKzU3NiAzMiA2OTEyMDAwCis1NzYgMzIgNjkzNjAwMAorNTc2IDMyIDY5NjAwMDAKKzU3NiAzMiA2OTg0MDAwCis1NzYgMzIgNzAwODAwMAorNTc2IDMyIDcwMzIwMDAKKzU3NiAzMiA3MDU2MDAwCis1NzYgMzIgNzA4MDAwMAorNTc2IDMyIDcxMDQwMDAKKzU3NiAzMiA3MTI4MDAwCis1NzYgMzIgNzE1MjAwMAorNTc2IDMyIDcxNzYwMDAKKzU3NiAzMiA3MjAwMDAwCis1NzYgMzIgNzIyNDAwMAorNTc2IDMyIDcyNDgwMDAKKzU3NiAzMiA3MjcyMDAwCis1NzYgMzIgNzI5NjAwMAorNTc2IDMyIDczMjAwMDAKKzU3NiAzMiA3MzQ0MDAwCis1NzYgMzIgNzM2ODAwMAorNTc2IDMyIDczOTIwMDAKKzU3NiAzMiA3NDE2MDAwCis1NzYgMzIgNzQ0MDAwMAorNTc2IDMyIDc0NjQwMDAKKzU3NiAzMiA3NDg4MDAwCis1NzYgMzIgNzUxMjAwMAorNTc2IDMyIDc1MzYwMDAKKzU3NiAzMiA3NTYwMDAwCis1NzYgMzIgNzU4NDAwMAorNTc2IDMyIDc2MDgwMDAKKzU3NiAzMiA3NjMyMDAwCis1NzYgMzIgNzY1NjAwMAorNTc2IDMyIDc2ODAwMDAKKzU3NiAzMiA3NzA0MDAwCis1NzYgMzIgNzcyODAwMAorNTc2IDMyIDc3NTIwMDAKKzU3NiAzMiA3Nzc2MDAwCis1NzYgMzIgNzgwMDAwMAorNTc2IDMyIDc4MjQwMDAKKzU3NiAzMiA3ODQ4MDAwCis1NzYgMzIgNzg3MjAwMAorNTc2IDMyIDc4OTYwMDAKKzU3NiAzMiA3OTIwMDAwCis1NzYgMzIgNzk0NDAwMAorNTc2IDMyIDc5NjgwMDAKKzU3NiAzMiA3OTkyMDAwCis1NzYgMzIgODAxNjAwMAorNTc2IDMyIDgwNDAwMDAKKzU3NiAzMiA4MDY0MDAwCis1NzYgMzIgODA4ODAwMAorNTc2IDMyIDgxMTIwMDAKKzU3NiAzMiA4MTM2MDAwCis1NzYgMzIgODE2MDAwMAorNTc2IDMyIDgxODQwMDAKKzU3NiAzMiA4MjA4MDAwCis1NzYgMzIgODIzMjAwMAorNTc2IDMyIDgyNTYwMDAKKzU3NiAzMiA4MjgwMDAwCis1NzYgMzIgODMwNDAwMAorNTc2IDMyIDgzMjgwMDAKKzU3NiAzMiA4MzUyMDAwCis1NzYgMzIgODM3NjAwMAorNTc2IDMyIDg0MDAwMDAKKzU3NiAzMiA4NDI0MDAwCis1NzYgMzIgODQ0ODAwMAorNTc2IDMyIDg0NzIwMDAKKzU3NiAzMiA4NDk2MDAwCis1NzYgMzIgODUyMDAwMAorNTc2IDMyIDg1NDQwMDAKKzU3NiAzMiA4NTY4MDAwCis1NzYgMzIgODU5MjAwMAorNTc2IDMyIDg2MTYwMDAKKzU3NiAzMiA4NjQwMDAwCis1NzYgMzIgODY2NDAwMAorNTc2IDMyIDg2ODgwMDAKKzU3NiAzMiA4NzEyMDAwCis1NzYgMzIgODczNjAwMAorNTc2IDMyIDg3NjAwMDAKKzU3NiAzMiA4Nzg0MDAwCis1NzYgMzIgODgwODAwMAorNTc2IDMyIDg4MzIwMDAKKzU3NiAzMiA4ODU2MDAwCis1NzYgMzIgODg4MDAwMAorNTc2IDMyIDg5MDQwMDAKKzU3NiAzMiA4OTI4MDAwCis1NzYgMzIgODk1MjAwMAorNTc2IDMyIDg5NzYwMDAKKzU3NiAzMiA5MDAwMDAwCis1NzYgMzIgOTAyNDAwMAorNTc2IDMyIDkwNDgwMDAKKzU3NiAzMiA5MDcyMDAwCis1NzYgMzIgOTA5NjAwMAorNTc2IDMyIDkxMjAwMDAKKzU3NiAzMiA5MTQ0MDAwCis1NzYgMzIgOTE2ODAwMAorNTc2IDMyIDkxOTIwMDAKKzU3NiAzMiA5MjE2MDAwCis1NzYgMzIgOTI0MDAwMAorNTc2IDMyIDkyNjQwMDAKKzU3NiAzMiA5Mjg4MDAwCis1NzYgMzIgOTMxMjAwMAorNTc2IDMyIDkzMzYwMDAKKzU3NiAzMiA5MzYwMDAwCis1NzYgMzIgOTM4NDAwMAorNTc2IDMyIDk0MDgwMDAKKzU3NiAzMiA5NDMyMDAwCis1NzYgMzIgOTQ1NjAwMAorNTc2IDMyIDk0ODAwMDAKKzU3NiAzMiA5NTA0MDAwCis1NzYgMzIgOTUyODAwMAorNTc2IDMyIDk1NTIwMDAKKzU3NiAzMiA5NTc2MDAwCis1NzYgMzIgOTYwMDAwMAorNTc2IDMyIDk2MjQwMDAKKzU3NiAzMiA5NjQ4MDAwCis1NzYgMzIgOTY3MjAwMAorNTc2IDMyIDk2OTYwMDAKKzU3NiAzMiA5NzIwMDAwCis1NzYgMzIgOTc0NDAwMAorNTc2IDMyIDk3NjgwMDAKKzU3NiAzMiA5NzkyMDAwCis1NzYgMzIgOTgxNjAwMAorNTc2IDMyIDk4NDAwMDAKKzU3NiAzMiA5ODY0MDAwCis1NzYgMzIgOTg4ODAwMAorNTc2IDMyIDk5MTIwMDAKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfbXAzX3N0ZXJlb18xOTJrYnBzXzQ4MDAwaHoubXAzIGIvbWVkaWEvcmVzL2JiYl9tcDNfc3RlcmVvXzE5MmticHNfNDgwMDBoei5tcDMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgzYTQ0MQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfbXAzX3N0ZXJlb18xOTJrYnBzXzQ4MDAwaHoubXAzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfbXBlZzJfMTc2eDE0NF8xMDVrYnBzXzI1ZnBzLmluZm8gYi9tZWRpYS9yZXMvYmJiX21wZWcyXzE3NngxNDRfMTA1a2Jwc18yNWZwcy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4MTNjZDQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX21wZWcyXzE3NngxNDRfMTA1a2Jwc18yNWZwcy5pbmZvCkBAIC0wLDAgKzEsMjQ5IEBACis2NDU4IDMyIDQwMDAwCis0MDQwIDAgODAwMDAKKzMyNTUgMCAxMjAwMDAKKzMwMjYgMCAxNjAwMDAKKzMyOTMgMCAyMDAwMDAKKzMwODkgMCAyNDAwMDAKKzMzMDUgMCAyODAwMDAKKzE3OTQgMCAzMjAwMDAKKzE4NDggMCAzNjAwMDAKKzEyODggMCA0MDAwMDAKKzE1MTEgMCA0NDAwMDAKKzE1MjcgMCA0ODAwMDAKKzYxNDYgMzIgNTIwMDAwCisxMjQzIDAgNTYwMDAwCisxMDk5IDAgNjAwMDAwCisxMzU0IDAgNjQwMDAwCisxMzY2IDAgNjgwMDAwCisxMDQyIDAgNzIwMDAwCisxNjAwIDAgNzYwMDAwCis4NzUgMCA4MDAwMDAKKzE3MjggMCA4NDAwMDAKKzEyNTQgMCA4ODAwMDAKKzk5NCAwIDkyMDAwMAorMTU5MSAwIDk2MDAwMAorNjI2NSAzMiAxMDAwMDAwCisxMDE4IDAgMTA0MDAwMAorODI1IDAgMTA4MDAwMAorODY5IDAgMTEyMDAwMAorOTIxIDAgMTE2MDAwMAorOTc1IDAgMTIwMDAwMAorOTI0IDAgMTI0MDAwMAorODM0IDAgMTI4MDAwMAorMTA2NiAwIDEzMjAwMDAKKzc5MyAwIDEzNjAwMDAKKzg4OSAwIDE0MDAwMDAKKzIwNTAgMCAxNDQwMDAwCis2Mjc2IDMyIDE0ODAwMDAKKzg4MSAwIDE1MjAwMDAKKzI2MCAwIDE1NjAwMDAKKzczMCAwIDE2MDAwMDAKKzQzMSAwIDE2NDAwMDAKKzM1MSAwIDE2ODAwMDAKKzMyMSAwIDE3MjAwMDAKKzM4MDIgMCAxNzYwMDAwCisxNDYgMCAxODAwMDAwCis2NDYyIDAgMTg0MDAwMAorMzI0NiAwIDE4ODAwMDAKKzUzMyAwIDE5MjAwMDAKKzYyMzEgMzIgMTk2MDAwMAorMTM3OCAwIDIwMDAwMDAKKzcxOSAwIDIwNDAwMDAKKzgxOCAwIDIwODAwMDAKKzg1NiAwIDIxMjAwMDAKKzkzNyAwIDIxNjAwMDAKKzYxMSAwIDIyMDAwMDAKKzMwMzEgMCAyMjQwMDAwCisxMDQxIDAgMjI4MDAwMAorNjA0IDAgMjMyMDAwMAorNzE0IDAgMjM2MDAwMAorMTI4MyAwIDI0MDAwMDAKKzc1NjUgMzIgMjQ0MDAwMAorNjAyIDAgMjQ4MDAwMAorNTMwIDAgMjUyMDAwMAorMjU3OSAwIDI1NjAwMDAKKzExNSAwIDI2MDAwMDAKKzEwNTggMCAyNjQwMDAwCis2ODkgMCAyNjgwMDAwCisxMTE5IDAgMjcyMDAwMAorNjk4IDAgMjc2MDAwMAorMTAwNiAwIDI4MDAwMDAKKzU0NSAwIDI4NDAwMDAKKzE2MTcgMCAyODgwMDAwCis5MTIzIDMyIDI5MjAwMDAKKzUyNyAwIDI5NjAwMDAKKzE1NzYgMCAzMDAwMDAwCis0NjUgMCAzMDQwMDAwCis3NDEgMCAzMDgwMDAwCis1MjEgMCAzMTIwMDAwCisxMzIyIDAgMzE2MDAwMAorNzc1IDAgMzIwMDAwMAorODYzIDAgMzI0MDAwMAorOTEwIDAgMzI4MDAwMAorOTE1IDAgMzMyMDAwMAorOTI2IDAgMzM2MDAwMAorNzU1NiAzMiAzNDAwMDAwCis3NDEgMCAzNDQwMDAwCis1MjcgMCAzNDgwMDAwCisyNTE2IDAgMzUyMDAwMAorNDU5IDAgMzU2MDAwMAorNDA0IDAgMzYwMDAwMAorNTA5IDAgMzY0MDAwMAorMTIyNyAwIDM2ODAwMDAKKzE1NjEgMCAzNzIwMDAwCis0OTAgMCAzNzYwMDAwCis3MTIgMCAzODAwMDAwCis4MDMgMCAzODQwMDAwCis3NTI0IDMyIDM4ODAwMDAKKzczMCAwIDM5MjAwMDAKKzQ2MSAwIDM5NjAwMDAKKzI1MjYgMCA0MDAwMDAwCis0NTMgMCA0MDQwMDAwCis2MzIgMCA0MDgwMDAwCis3ODMgMCA0MTIwMDAwCis4NDMgMCA0MTYwMDAwCis5MTggMCA0MjAwMDAwCis5NjEgMCA0MjQwMDAwCis5NDggMCA0MjgwMDAwCis5NTkgMCA0MzIwMDAwCis3NTk4IDMyIDQzNjAwMDAKKzY3OCAwIDQ0MDAwMDAKKzU2OSAwIDQ0NDAwMDAKKzg5MyAwIDQ0ODAwMDAKKzYyNCAwIDQ1MjAwMDAKKzc1NSAwIDQ1NjAwMDAKKzIyMzQgMCA0NjAwMDAwCis1NTYgMCA0NjQwMDAwCis5NDQgMCA0NjgwMDAwCis3MzkgMCA0NzIwMDAwCis4NjIgMCA0NzYwMDAwCis5MzggMCA0ODAwMDAwCis3NTc0IDMyIDQ4NDAwMDAKKzY5OSAwIDQ4ODAwMDAKKzcwMSAwIDQ5MjAwMDAKKzUzMCAwIDQ5NjAwMDAKKzY4OSAwIDUwMDAwMDAKKzc3OCAwIDUwNDAwMDAKKzg1NiAwIDUwODAwMDAKKzkzMCAwIDUxMjAwMDAKKzk3NSAwIDUxNjAwMDAKKzEwMjEgMCA1MjAwMDAwCisxMDc0IDAgNTI0MDAwMAorOTc4IDAgNTI4MDAwMAorODAyMSAzMiA1MzIwMDAwCis3MDQgMCA1MzYwMDAwCis2MTAgMCA1NDAwMDAwCis2OTcgMCA1NDQwMDAwCis3MTEgMCA1NDgwMDAwCis4MjAgMCA1NTIwMDAwCis4NDMgMCA1NTYwMDAwCisyNTEgMCA1NjAwMDAwCiszMzY3IDAgNTY0MDAwMAorNTA3IDAgNTY4MDAwMAorMzE2OCAzMiA1NzIwMDAwCis3NzkgMCA1NzYwMDAwCiszMTYgMCA1ODAwMDAwCis2MzUgMCA1ODQwMDAwCisyMDQgMCA1ODgwMDAwCis5NzggMCA1OTIwMDAwCisxMjcgMCA1OTYwMDAwCis1ODkgMCA2MDAwMDAwCis2MDQgMCA2MDQwMDAwCis2NjYgMCA2MDgwMDAwCis1ODIgMCA2MTIwMDAwCis3MjkgMCA2MTYwMDAwCis0MTUyIDMyIDYyMDAwMDAKKzg1OCAwIDYyNDAwMDAKKzczOSAwIDYyODAwMDAKKzg4NSAwIDYzMjAwMDAKKzc0OSAwIDYzNjAwMDAKKzk1MCAwIDY0MDAwMDAKKzU5MyAwIDY0NDAwMDAKKzc3MSAwIDY0ODAwMDAKKzY3OCAwIDY1MjAwMDAKKzUyOSAwIDY1NjAwMDAKKzgzNSAwIDY2MDAwMDAKKzM5MSAwIDY2NDAwMDAKKzQ2OTIgMzIgNjY4MDAwMAorNDczIDAgNjcyMDAwMAorNzI0IDAgNjc2MDAwMAorMzgxIDAgNjgwMDAwMAorOTA5IDAgNjg0MDAwMAorMzk0IDAgNjg4MDAwMAorNjU5IDAgNjkyMDAwMAorMzY3IDAgNjk2MDAwMAorNjU4IDAgNzAwMDAwMAorNTIzIDAgNzA0MDAwMAorNTU0IDAgNzA4MDAwMAorNTUzIDAgNzEyMDAwMAorNjA4MCAzMiA3MTYwMDAwCis0OTYgMCA3MjAwMDAwCis3NjMgMCA3MjQwMDAwCis5MzkgMCA3MjgwMDAwCis3MTUgMCA3MzIwMDAwCis2NzIgMCA3MzYwMDAwCis2MTQgMCA3NDAwMDAwCis4MTEgMCA3NDQwMDAwCis5MTYgMCA3NDgwMDAwCisxMTUzIDAgNzUyMDAwMAorOTQwIDAgNzU2MDAwMAorMzIyIDAgNzYwMDAwMAorNjYxMyAzMiA3NjQwMDAwCis4NTEgMCA3NjgwMDAwCisxMDA3IDAgNzcyMDAwMAorNTIwIDAgNzc2MDAwMAorNDU2IDAgNzgwMDAwMAorNjM5IDAgNzg0MDAwMAorNzU4IDAgNzg4MDAwMAorODc5IDAgNzkyMDAwMAorMTE1MiAwIDc5NjAwMDAKKzEwNjEgMCA4MDAwMDAwCis5NDYgMCA4MDQwMDAwCis4NTkgMCA4MDgwMDAwCiszNjEwIDMyIDgxMjAwMDAKKzg3MSAwIDgxNjAwMDAKKzc0NiAwIDgyMDAwMDAKKzM2NyAwIDgyNDAwMDAKKzM5NyAwIDgyODAwMDAKKzkzMCAwIDgzMjAwMDAKKzMzNyAwIDgzNjAwMDAKKzQxOCAwIDg0MDAwMDAKKzc0MCAwIDg0NDAwMDAKKzYzNyAwIDg0ODAwMDAKKzY2NiAwIDg1MjAwMDAKKzYyNyAwIDg1NjAwMDAKKzQzMzggMzIgODYwMDAwMAorNzQ1IDAgODY0MDAwMAorNzgzIDAgODY4MDAwMAorNDY1IDAgODcyMDAwMAorNDYwIDAgODc2MDAwMAorNDU1IDAgODgwMDAwMAorNTA2IDAgODg0MDAwMAorNDkyIDAgODg4MDAwMAorNDg1IDAgODkyMDAwMAorNTE3IDAgODk2MDAwMAorNTM0IDAgOTAwMDAwMAorMzk1IDAgOTA0MDAwMAorNTYyNiAzMiA5MDgwMDAwCisxMTY5IDAgOTEyMDAwMAorNTY0IDAgOTE2MDAwMAorMjYxIDAgOTIwMDAwMAorMzI3IDAgOTI0MDAwMAorMzAzIDAgOTI4MDAwMAorMTE0NSAwIDkzMjAwMDAKKzI1NyAwIDkzNjAwMDAKKzQ5OCAwIDk0MDAwMDAKKzQ2NSAwIDk0NDAwMDAKKzQxNCAwIDk0ODAwMDAKKzU1MyAwIDk1MjAwMDAKKzU2MTcgMzIgOTU2MDAwMAorMTA1MiAwIDk2MDAwMDAKKzU5MiAwIDk2NDAwMDAKKzMyMyAwIDk2ODAwMDAKKzQ5NyAwIDk3MjAwMDAKKzQ2NyAwIDk3NjAwMDAKKzcwNSAwIDk4MDAwMDAKKzEwODYgMCA5ODQwMDAwCisxMjUzIDAgOTg4MDAwMAorMTI1MiAwIDk5MjAwMDAKKzc3NiAwIDk5NjAwMDAKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfbXBlZzJfMTc2eDE0NF8xMDVrYnBzXzI1ZnBzLm0ydiBiL21lZGlhL3Jlcy9iYmJfbXBlZzJfMTc2eDE0NF8xMDVrYnBzXzI1ZnBzLm0ydgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGY5MGMzCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9tcGVnMl8xNzZ4MTQ0XzEwNWticHNfMjVmcHMubTJ2CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMuaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDVhNDRjCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9tcGVnNF8xMjgweDcyMF8xMDAwa2Jwc18yNWZwcy5pbmZvCkBAIC0wLDAgKzEsMjUxIEBACis0OSAxMjggMAorNDkgMTI4IDAKKzU3NTQyIDMyIDAKKzUwOTYxIDAgNDAwMDAKKzI5MTM2IDAgODAwMDAKKzI4MTQ2IDAgMTIwMDAwCisyNTQ3MiAwIDE2MDAwMAorNTc1MiAwIDIwMDAwMAorNDM3MyAwIDI0MDAwMAorNDI2MSAwIDI4MDAwMAorNTA4MyAwIDMyMDAwMAorNjUwNCAwIDM2MDAwMAorNTA4MCAwIDQwMDAwMAorNTY4OCAwIDQ0MDAwMAorNTA4MzQgMzIgNDgwMDAwCis0NTU5IDAgNTIwMDAwCis0MTE4IDAgNTYwMDAwCiszOTM3IDAgNjAwMDAwCis0MjYyIDAgNjQwMDAwCis0NjQ5IDAgNjgwMDAwCiszOTk1IDAgNzIwMDAwCiszODk5IDAgNzYwMDAwCiszODk2IDAgODAwMDAwCiszOTk4IDAgODQwMDAwCis0MTI5IDAgODgwMDAwCis0MDY0IDAgOTIwMDAwCis0Mjg3MiAzMiA5NjAwMDAKKzMyNjUgMCAxMDAwMDAwCisyNTA2IDAgMTA0MDAwMAorMjE3OCAwIDEwODAwMDAKKzI0NDUgMCAxMTIwMDAwCisyNDYxIDAgMTE2MDAwMAorMzI2NyAwIDEyMDAwMDAKKzI3MDAgMCAxMjQwMDAwCisyOTI0IDAgMTI4MDAwMAorMjQwNSAwIDEzMjAwMDAKKzI2NTYgMCAxMzYwMDAwCisyNDk0IDAgMTQwMDAwMAorNDc0NTQgMzIgMTQ0MDAwMAorMjk1NiAwIDE0ODAwMDAKKzE0MzQgMCAxNTIwMDAwCis3MDcgMCAxNTYwMDAwCisxMzEwIDAgMTYwMDAwMAorMTc5MSAwIDE2NDAwMDAKKzIwODggMCAxNjgwMDAwCisxMDc4IDAgMTcyMDAwMAorNzM4IDAgMTc2MDAwMAorNzQ4MzcgMzIgMTgwMDAwMAorMzMwNCAwIDE4NDAwMDAKKzM2NTYgMCAxODgwMDAwCisyODIyIDAgMTkyMDAwMAorMjU2NiAwIDE5NjAwMDAKKzI4MTYgMCAyMDAwMDAwCisyNTkwIDAgMjA0MDAwMAorMjQ3MSAwIDIwODAwMDAKKzI1NTMgMCAyMTIwMDAwCisyNTQ3IDAgMjE2MDAwMAorMjYyOCAwIDIyMDAwMDAKKzI2NjQgMCAyMjQwMDAwCiszODE2MSAzMiAyMjgwMDAwCisyOTk1IDAgMjMyMDAwMAorMjIwNSAwIDIzNjAwMDAKKzIwNTUgMCAyNDAwMDAwCisyMTIyIDAgMjQ0MDAwMAorMjIzNiAwIDI0ODAwMDAKKzI0MDcgMCAyNTIwMDAwCis4OTMgMCAyNTYwMDAwCisyNTExIDAgMjYwMDAwMAorMjcwMyAwIDI2NDAwMDAKKzI1MTEgMCAyNjgwMDAwCisyNTY0IDAgMjcyMDAwMAorMzU5NDQgMzIgMjc2MDAwMAorMzAwMiAwIDI4MDAwMDAKKzIxODggMCAyODQwMDAwCisyMTA5IDAgMjg4MDAwMAorMjA1OCAwIDI5MjAwMDAKKzIyNDIgMCAyOTYwMDAwCisyMjQwIDAgMzAwMDAwMAorMjM0NiAwIDMwNDAwMDAKKzIyMjMgMCAzMDgwMDAwCisyNDMwIDAgMzEyMDAwMAorMjQ4NiAwIDMxNjAwMDAKKzIzNzkgMCAzMjAwMDAwCiszNDAxNCAzMiAzMjQwMDAwCiszMDA5IDAgMzI4MDAwMAorMjA3MyAwIDMzMjAwMDAKKzIwMDUgMCAzMzYwMDAwCisyMDUyIDAgMzQwMDAwMAorMjE2NyAwIDM0NDAwMDAKKzIzMzEgMCAzNDgwMDAwCisyMjAxIDAgMzUyMDAwMAorODk2IDAgMzU2MDAwMAorMjU5NCAwIDM2MDAwMDAKKzI1ODkgMCAzNjQwMDAwCisyNTQyIDAgMzY4MDAwMAorMzM5NzMgMzIgMzcyMDAwMAorMjkxMyAwIDM3NjAwMDAKKzE5NzggMCAzODAwMDAwCisxOTQzIDAgMzg0MDAwMAorMTk4MyAwIDM4ODAwMDAKKzIyMzQgMCAzOTIwMDAwCisyMTQyIDAgMzk2MDAwMAorMjEwNiAwIDQwMDAwMDAKKzIyNTMgMCA0MDQwMDAwCisyMzI3IDAgNDA4MDAwMAorMjE4NiAwIDQxMjAwMDAKKzIzNjYgMCA0MTYwMDAwCiszMjA5NCAzMiA0MjAwMDAwCiszMDUwIDAgNDI0MDAwMAorMTkxMyAwIDQyODAwMDAKKzIwMTYgMCA0MzIwMDAwCisyMDk3IDAgNDM2MDAwMAorMjExMiAwIDQ0MDAwMDAKKzIxNjMgMCA0NDQwMDAwCisyMjU4IDAgNDQ4MDAwMAorMjIzMSAwIDQ1MjAwMDAKKzg4MiAwIDQ1NjAwMDAKKzI1NzUgMCA0NjAwMDAwCisyNzAwIDAgNDY0MDAwMAorMzM3NTQgMzIgNDY4MDAwMAorMzAxMSAwIDQ3MjAwMDAKKzIwMzQgMCA0NzYwMDAwCisxOTg2IDAgNDgwMDAwMAorMTk4MyAwIDQ4NDAwMDAKKzIxODAgMCA0ODgwMDAwCisyMDY3IDAgNDkyMDAwMAorMjI2MiAwIDQ5NjAwMDAKKzIzMjMgMCA1MDAwMDAwCisyMzY3IDAgNTA0MDAwMAorMjI4OSAwIDUwODAwMDAKKzIyNjMgMCA1MTIwMDAwCiszMTgwNiAzMiA1MTYwMDAwCiszMjg1IDAgNTIwMDAwMAorMTk1NyAwIDUyNDAwMDAKKzIwNzMgMCA1MjgwMDAwCisyMDU3IDAgNTMyMDAwMAorMjEzNCAwIDUzNjAwMDAKKzIwODYgMCA1NDAwMDAwCisyMjE3IDAgNTQ0MDAwMAorMjMxNCAwIDU0ODAwMDAKKzIxNzYgMCA1NTIwMDAwCis4NTIgMCA1NTYwMDAwCisyNDIxIDAgNTYwMDAwMAorMzcyMzYgMzIgNTY0MDAwMAorMTYxNDAgMzIgNTY4MDAwMAorMzQ5MSAwIDU3MjAwMDAKKzI4OTEgMCA1NzYwMDAwCisxNDk5IDAgNTgwMDAwMAorNjU5IDAgNTg0MDAwMAorNjUyIDAgNTg4MDAwMAorNjQ4IDAgNTkyMDAwMAorMTg5MiAwIDU5NjAwMDAKKzMwNTAgMCA2MDAwMDAwCisyMjM1IDAgNjA0MDAwMAorMTkyNSAwIDYwODAwMDAKKzE3OTAgMCA2MTIwMDAwCisxNjQ0MSAzMiA2MTYwMDAwCis1MzQxIDAgNjIwMDAwMAorMjQ0NSAwIDYyNDAwMDAKKzI4NzggMCA2MjgwMDAwCisyMzY2IDAgNjMyMDAwMAorMTczMiAwIDYzNjAwMDAKKzE4NTggMCA2NDAwMDAwCisxNjMyIDAgNjQ0MDAwMAorMTUxNCAwIDY0ODAwMDAKKzE4NzQgMCA2NTIwMDAwCisxMDU5IDAgNjU2MDAwMAorMTc5NSAwIDY2MDAwMDAKKzIwMTUzIDMyIDY2NDAwMDAKKzM1ODkgMCA2NjgwMDAwCisyNDE4IDAgNjcyMDAwMAorMTg5NiAwIDY3NjAwMDAKKzE1NzcgMCA2ODAwMDAwCisxNjI5IDAgNjg0MDAwMAorMTcxNyAwIDY4ODAwMDAKKzE3MTcgMCA2OTIwMDAwCisxODE1IDAgNjk2MDAwMAorMTY2MyAwIDcwMDAwMDAKKzE4NTUgMCA3MDQwMDAwCisxNjk5IDAgNzA4MDAwMAorMjExODQgMzIgNzEyMDAwMAorMzM5NSAwIDcxNjAwMDAKKzMyNzYgMCA3MjAwMDAwCiszODI1IDAgNzI0MDAwMAorMjc0NyAwIDcyODAwMDAKKzE2ODQgMCA3MzIwMDAwCisyMTQxIDAgNzM2MDAwMAorMjM3MiAwIDc0MDAwMDAKKzI3NzcgMCA3NDQwMDAwCisyODI4IDAgNzQ4MDAwMAorMjQ0MiAwIDc1MjAwMDAKKzEzMDIgMCA3NTYwMDAwCisyMDcwMiAzMiA3NjAwMDAwCis0MDQzIDAgNzY0MDAwMAorMjg3NSAwIDc2ODAwMDAKKzIwMjYgMCA3NzIwMDAwCisxOTgzIDAgNzc2MDAwMAorMjE3MyAwIDc4MDAwMDAKKzI2NzAgMCA3ODQwMDAwCiszMTQ1IDAgNzg4MDAwMAorNTMxMiAwIDc5MjAwMDAKKzU1NDcgMCA3OTYwMDAwCis0MjYyIDAgODAwMDAwMAorMjYzNyAwIDgwNDAwMDAKKzE1NzYxIDMyIDgwODAwMDAKKzI2OTMgMCA4MTIwMDAwCisxNDMzIDAgODE2MDAwMAorMjEwOCAwIDgyMDAwMDAKKzIyNTMgMCA4MjQwMDAwCisxODQ2IDAgODI4MDAwMAorMTI4MSAwIDgzMjAwMDAKKzIyOTQgMCA4MzYwMDAwCisyMjE3IDAgODQwMDAwMAorMjM3MCAwIDg0NDAwMDAKKzE4MDkgMCA4NDgwMDAwCisxODk5IDAgODUyMDAwMAorMjE2MzAgMzIgODU2MDAwMAorMzE4OSAwIDg2MDAwMDAKKzE2NzkgMCA4NjQwMDAwCisxNzMyIDAgODY4MDAwMAorMTY3MiAwIDg3MjAwMDAKKzE3ODggMCA4NzYwMDAwCisxNjU2IDAgODgwMDAwMAorMTc2NSAwIDg4NDAwMDAKKzE1NzkgMCA4ODgwMDAwCisyMTQyIDAgODkyMDAwMAorMTk1NCAwIDg5NjAwMDAKKzE4NTQgMCA5MDAwMDAwCisyNDk2NiAzMiA5MDQwMDAwCisyMTc2IDAgOTA4MDAwMAorMTIzNiAwIDkxMjAwMDAKKzEyODIgMCA5MTYwMDAwCisxNTI2IDAgOTIwMDAwMAorMTM2OSAwIDkyNDAwMDAKKzEyODMgMCA5MjgwMDAwCisxNDM0IDAgOTMyMDAwMAorMTMzNSAwIDkzNjAwMDAKKzIxNDQgMCA5NDAwMDAwCisxOTE3IDAgOTQ0MDAwMAorMTQwOSAwIDk0ODAwMDAKKzI3NzQ1IDMyIDk1MjAwMDAKKzE5MDUgMCA5NTYwMDAwCisxNDk1IDAgOTYwMDAwMAorMTY4NSAwIDk2NDAwMDAKKzE3NDUgMCA5NjgwMDAwCisxODk0IDAgOTcyMDAwMAorMzY2NyAwIDk3NjAwMDAKKzU1NDYgMCA5ODAwMDAwCis1NzI5IDAgOTg0MDAwMAorNDQ3OSAwIDk4ODAwMDAKKzM4MjkgMCA5OTIwMDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX21wZWc0XzEyODB4NzIwXzEwMDBrYnBzXzI1ZnBzLm00diBiL21lZGlhL3Jlcy9iYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMubTR2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMzJkNWUKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX21wZWc0XzEyODB4NzIwXzEwMDBrYnBzXzI1ZnBzLm00dgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX29wdXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIGIvbWVkaWEvcmVzL2JiYl9vcHVzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MTYwYzVjCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9vcHVzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouaW5mbwpAQCAtMCwwICsxLDUwMCBAQAorMTkgMTI4IDAKKzggMTI4IDAKKzYxNSAzMiAwCis1NTcgMzIgMTM1MDAKKzMxMSAzMiAzMzUwMAorMzI5IDMyIDUzNTAwCiszNDEgMzIgNzM1MDAKKzM3MCAzMiA5MzUwMAorMzU5IDMyIDExMzUwMAorMzQ0IDMyIDEzMzUwMAorMzM1IDMyIDE1MzUwMAorMzM0IDMyIDE3MzUwMAorMzI3IDMyIDE5MzUwMAorMzMwIDMyIDIxMzUwMAorMzI4IDMyIDIzMzUwMAorMzI4IDMyIDI1MzUwMAorMzQzIDMyIDI3MzUwMAorMzU4IDMyIDI5MzUwMAorMzQxIDMyIDMxMzUwMAorMzI2IDMyIDMzMzUwMAorMzMzIDMyIDM1MzUwMAorMzMzIDMyIDM3MzUwMAorNDAyIDMyIDM5MzUwMAorMzM4IDMyIDQxMzUwMAorMzI3IDMyIDQzMzUwMAorMzM0IDMyIDQ1MzUwMAorMzI5IDMyIDQ3MzUwMAorMzE4IDMyIDQ5MzUwMAorMzIyIDMyIDUxMzUwMAorMzIzIDMyIDUzMzUwMAorMzIwIDMyIDU1MzUwMAorMzI1IDMyIDU3MzUwMAorMzI4IDMyIDU5MzUwMAorMzI1IDMyIDYxMzUwMAorMzA0IDMyIDYzMzUwMAorMzA0IDMyIDY1MzUwMAorMzAzIDMyIDY3MzUwMAorMjk5IDMyIDY5MzUwMAorMjk2IDMyIDcxMzUwMAorMzA1IDMyIDczMzUwMAorMzA3IDMyIDc1MzUwMAorMzA4IDMyIDc3MzUwMAorMzEwIDMyIDc5MzUwMAorMzMxIDMyIDgxMzUwMAorMzMyIDMyIDgzMzUwMAorMzIzIDMyIDg1MzUwMAorMzEwIDMyIDg3MzUwMAorMzExIDMyIDg5MzUwMAorMzE2IDMyIDkxMzUwMAorMzA4IDMyIDkzMzUwMAorMzIxIDMyIDk1MzUwMAorMzIwIDMyIDk3MzUwMAorMzEwIDMyIDk5MzUwMAorMzA0IDMyIDEwMTM1MDAKKzMwMyAzMiAxMDMzNTAwCiszMDEgMzIgMTA1MzUwMAorMjk1IDMyIDEwNzM1MDAKKzMwMiAzMiAxMDkzNTAwCiszMTEgMzIgMTExMzUwMAorMzIyIDMyIDExMzM1MDAKKzMxMyAzMiAxMTUzNTAwCiszMTUgMzIgMTE3MzUwMAorMzE1IDMyIDExOTM1MDAKKzMxNSAzMiAxMjEzNTAwCiszMzkgMzIgMTIzMzUwMAorMzM2IDMyIDEyNTM1MDAKKzMxNiAzMiAxMjczNTAwCiszMjEgMzIgMTI5MzUwMAorMjk3IDMyIDEzMTM1MDAKKzI5NSAzMiAxMzMzNTAwCisyOTQgMzIgMTM1MzUwMAorMjk3IDMyIDEzNzM1MDAKKzI5NiAzMiAxMzkzNTAwCisyOTUgMzIgMTQxMzUwMAorMjk1IDMyIDE0MzM1MDAKKzI5NCAzMiAxNDUzNTAwCiszMDYgMzIgMTQ3MzUwMAorMzAzIDMyIDE0OTM1MDAKKzMwOCAzMiAxNTEzNTAwCiszMDIgMzIgMTUzMzUwMAorMzA2IDMyIDE1NTM1MDAKKzMwMiAzMiAxNTczNTAwCisyOTUgMzIgMTU5MzUwMAorMjkzIDMyIDE2MTM1MDAKKzMwNyAzMiAxNjMzNTAwCiszMTMgMzIgMTY1MzUwMAorMzA1IDMyIDE2NzM1MDAKKzMwOCAzMiAxNjkzNTAwCiszMjUgMzIgMTcxMzUwMAorMzEyIDMyIDE3MzM1MDAKKzMwNSAzMiAxNzUzNTAwCiszMDEgMzIgMTc3MzUwMAorMzIyIDMyIDE3OTM1MDAKKzMxOSAzMiAxODEzNTAwCiszMTcgMzIgMTgzMzUwMAorMzE3IDMyIDE4NTM1MDAKKzMyMiAzMiAxODczNTAwCiszMDIgMzIgMTg5MzUwMAorMzA4IDMyIDE5MTM1MDAKKzMwNSAzMiAxOTMzNTAwCiszMDUgMzIgMTk1MzUwMAorMzAwIDMyIDE5NzM1MDAKKzI5MyAzMiAxOTkzNTAwCiszMDAgMzIgMjAxMzUwMAorMzAwIDMyIDIwMzM1MDAKKzI5NCAzMiAyMDUzNTAwCisyOTMgMzIgMjA3MzUwMAorMjk1IDMyIDIwOTM1MDAKKzI5MCAzMiAyMTEzNTAwCiszMDMgMzIgMjEzMzUwMAorMzExIDMyIDIxNTM1MDAKKzQzMSAzMiAyMTczNTAwCisyOTMgMzIgMjE5MzUwMAorMzAyIDMyIDIyMTM1MDAKKzMwNiAzMiAyMjMzNTAwCisyOTcgMzIgMjI1MzUwMAorMjk3IDMyIDIyNzM1MDAKKzMwMSAzMiAyMjkzNTAwCis0MDQgMzIgMjMxMzUwMAorMjk5IDMyIDIzMzM1MDAKKzQ0MyAzMiAyMzUzNTAwCisyOTYgMzIgMjM3MzUwMAorMjk2IDMyIDIzOTM1MDAKKzMwNiAzMiAyNDEzNTAwCiszMTMgMzIgMjQzMzUwMAorMzE0IDMyIDI0NTM1MDAKKzMwMyAzMiAyNDczNTAwCiszMDYgMzIgMjQ5MzUwMAorMzIwIDMyIDI1MTM1MDAKKzMxMSAzMiAyNTMzNTAwCiszMDMgMzIgMjU1MzUwMAorMzE2IDMyIDI1NzM1MDAKKzMxNyAzMiAyNTkzNTAwCiszMDAgMzIgMjYxMzUwMAorMjk3IDMyIDI2MzM1MDAKKzMwNiAzMiAyNjUzNTAwCiszMTIgMzIgMjY3MzUwMAorMzE5IDMyIDI2OTM1MDAKKzMwNyAzMiAyNzEzNTAwCiszMDkgMzIgMjczMzUwMAorMzAyIDMyIDI3NTM1MDAKKzMwNiAzMiAyNzczNTAwCiszMTYgMzIgMjc5MzUwMAorMzAwIDMyIDI4MTM1MDAKKzMyMCAzMiAyODMzNTAwCiszMTIgMzIgMjg1MzUwMAorMzI0IDMyIDI4NzM1MDAKKzMxOSAzMiAyODkzNTAwCiszMTMgMzIgMjkxMzUwMAorMzE0IDMyIDI5MzM1MDAKKzMxNiAzMiAyOTUzNTAwCiszMTAgMzIgMjk3MzUwMAorMzAxIDMyIDI5OTM1MDAKKzMxMyAzMiAzMDEzNTAwCiszMDMgMzIgMzAzMzUwMAorMjk4IDMyIDMwNTM1MDAKKzI5MiAzMiAzMDczNTAwCisyODggMzIgMzA5MzUwMAorMjk0IDMyIDMxMTM1MDAKKzI5NiAzMiAzMTMzNTAwCisyOTYgMzIgMzE1MzUwMAorMjk0IDMyIDMxNzM1MDAKKzI5OSAzMiAzMTkzNTAwCiszMDMgMzIgMzIxMzUwMAorMjk0IDMyIDMyMzM1MDAKKzMwMSAzMiAzMjUzNTAwCiszMjEgMzIgMzI3MzUwMAorMzEwIDMyIDMyOTM1MDAKKzMxNCAzMiAzMzEzNTAwCisyOTggMzIgMzMzMzUwMAorMzAwIDMyIDMzNTM1MDAKKzMwMiAzMiAzMzczNTAwCisyOTcgMzIgMzM5MzUwMAorMjk4IDMyIDM0MTM1MDAKKzI5MyAzMiAzNDMzNTAwCiszMDQgMzIgMzQ1MzUwMAorMzA0IDMyIDM0NzM1MDAKKzMxMSAzMiAzNDkzNTAwCiszMTAgMzIgMzUxMzUwMAorMzIyIDMyIDM1MzM1MDAKKzM0MCAzMiAzNTUzNTAwCiszMzAgMzIgMzU3MzUwMAorMzI5IDMyIDM1OTM1MDAKKzMxOCAzMiAzNjEzNTAwCiszMDkgMzIgMzYzMzUwMAorMzA2IDMyIDM2NTM1MDAKKzMxMyAzMiAzNjczNTAwCiszMTQgMzIgMzY5MzUwMAorMzAzIDMyIDM3MTM1MDAKKzI5NyAzMiAzNzMzNTAwCisyOTYgMzIgMzc1MzUwMAorMjkyIDMyIDM3NzM1MDAKKzI5MSAzMiAzNzkzNTAwCisyOTEgMzIgMzgxMzUwMAorMjkxIDMyIDM4MzM1MDAKKzI5OSAzMiAzODUzNTAwCisyOTUgMzIgMzg3MzUwMAorMzAyIDMyIDM4OTM1MDAKKzMwNSAzMiAzOTEzNTAwCiszMDEgMzIgMzkzMzUwMAorMzExIDMyIDM5NTM1MDAKKzMxNyAzMiAzOTczNTAwCiszMTQgMzIgMzk5MzUwMAorMzEwIDMyIDQwMTM1MDAKKzM3OCAzMiA0MDMzNTAwCiszMTAgMzIgNDA1MzUwMAorMzAxIDMyIDQwNzM1MDAKKzM1MyAzMiA0MDkzNTAwCisyODkgMzIgNDExMzUwMAorMjk0IDMyIDQxMzM1MDAKKzI5NyAzMiA0MTUzNTAwCisyOTQgMzIgNDE3MzUwMAorMjk2IDMyIDQxOTM1MDAKKzMwNSAzMiA0MjEzNTAwCiszMDMgMzIgNDIzMzUwMAorMzE3IDMyIDQyNTM1MDAKKzM1OSAzMiA0MjczNTAwCiszMTQgMzIgNDI5MzUwMAorMzIzIDMyIDQzMTM1MDAKKzMxOSAzMiA0MzMzNTAwCiszMzAgMzIgNDM1MzUwMAorMzI2IDMyIDQzNzM1MDAKKzMwNSAzMiA0MzkzNTAwCiszMDAgMzIgNDQxMzUwMAorMjk4IDMyIDQ0MzM1MDAKKzI5NyAzMiA0NDUzNTAwCisyOTMgMzIgNDQ3MzUwMAorMjk2IDMyIDQ0OTM1MDAKKzMwMyAzMiA0NTEzNTAwCiszMTggMzIgNDUzMzUwMAorMzA2IDMyIDQ1NTM1MDAKKzI5NSAzMiA0NTczNTAwCisyOTQgMzIgNDU5MzUwMAorNDY4IDMyIDQ2MTM1MDAKKzI5MSAzMiA0NjMzNTAwCisyOTUgMzIgNDY1MzUwMAorMjkyIDMyIDQ2NzM1MDAKKzI5NiAzMiA0NjkzNTAwCisyOTEgMzIgNDcxMzUwMAorMjkwIDMyIDQ3MzM1MDAKKzI5OSAzMiA0NzUzNTAwCisyOTEgMzIgNDc3MzUwMAorMjk3IDMyIDQ3OTM1MDAKKzMwNCAzMiA0ODEzNTAwCiszMDYgMzIgNDgzMzUwMAorMjk2IDMyIDQ4NTM1MDAKKzI4NiAzMiA0ODczNTAwCisyOTkgMzIgNDg5MzUwMAorMjk0IDMyIDQ5MTM1MDAKKzMxOCAzMiA0OTMzNTAwCiszMjggMzIgNDk1MzUwMAorMzE4IDMyIDQ5NzM1MDAKKzMxOSAzMiA0OTkzNTAwCiszMTIgMzIgNTAxMzUwMAorMjk4IDMyIDUwMzM1MDAKKzMwMSAzMiA1MDUzNTAwCisyOTYgMzIgNTA3MzUwMAorMjkzIDMyIDUwOTM1MDAKKzI5MyAzMiA1MTEzNTAwCisyOTcgMzIgNTEzMzUwMAorMjk2IDMyIDUxNTM1MDAKKzI5NCAzMiA1MTczNTAwCisyOTQgMzIgNTE5MzUwMAorMjkyIDMyIDUyMTM1MDAKKzI5NiAzMiA1MjMzNTAwCisyOTEgMzIgNTI1MzUwMAorMjk0IDMyIDUyNzM1MDAKKzI5NyAzMiA1MjkzNTAwCiszMDQgMzIgNTMxMzUwMAorMjk1IDMyIDUzMzM1MDAKKzI5MCAzMiA1MzUzNTAwCisyOTQgMzIgNTM3MzUwMAorMjkzIDMyIDUzOTM1MDAKKzI5NCAzMiA1NDEzNTAwCisyOTQgMzIgNTQzMzUwMAorMjkzIDMyIDU0NTM1MDAKKzI4OSAzMiA1NDczNTAwCisyOTMgMzIgNTQ5MzUwMAorMjk1IDMyIDU1MTM1MDAKKzI5NSAzMiA1NTMzNTAwCisyODYgMzIgNTU1MzUwMAorMjkyIDMyIDU1NzM1MDAKKzI4OCAzMiA1NTkzNTAwCisyOTIgMzIgNTYxMzUwMAorMjk2IDMyIDU2MzM1MDAKKzI4OCAzMiA1NjUzNTAwCisyOTQgMzIgNTY3MzUwMAorMjk0IDMyIDU2OTM1MDAKKzI5MyAzMiA1NzEzNTAwCisyOTEgMzIgNTczMzUwMAorMjkzIDMyIDU3NTM1MDAKKzMwMyAzMiA1NzczNTAwCiszMDYgMzIgNTc5MzUwMAorMzA3IDMyIDU4MTM1MDAKKzMwMiAzMiA1ODMzNTAwCisyOTQgMzIgNTg1MzUwMAorMjk3IDMyIDU4NzM1MDAKKzI5NyAzMiA1ODkzNTAwCiszMDIgMzIgNTkxMzUwMAorMjk5IDMyIDU5MzM1MDAKKzMwMiAzMiA1OTUzNTAwCisyOTcgMzIgNTk3MzUwMAorMjk5IDMyIDU5OTM1MDAKKzMwNSAzMiA2MDEzNTAwCiszMDcgMzIgNjAzMzUwMAorMzEwIDMyIDYwNTM1MDAKKzMxMCAzMiA2MDczNTAwCiszMTUgMzIgNjA5MzUwMAorMzA2IDMyIDYxMTM1MDAKKzMwNSAzMiA2MTMzNTAwCiszMDQgMzIgNjE1MzUwMAorMzA3IDMyIDYxNzM1MDAKKzMwNiAzMiA2MTkzNTAwCisyOTcgMzIgNjIxMzUwMAorMjk4IDMyIDYyMzM1MDAKKzI5MyAzMiA2MjUzNTAwCisyOTMgMzIgNjI3MzUwMAorMjk2IDMyIDYyOTM1MDAKKzMwNSAzMiA2MzEzNTAwCisyOTkgMzIgNjMzMzUwMAorMjk4IDMyIDYzNTM1MDAKKzMwNSAzMiA2MzczNTAwCisyOTEgMzIgNjM5MzUwMAorMjk2IDMyIDY0MTM1MDAKKzI5NiAzMiA2NDMzNTAwCiszMDMgMzIgNjQ1MzUwMAorMjk4IDMyIDY0NzM1MDAKKzMyOCAzMiA2NDkzNTAwCiszMjIgMzIgNjUxMzUwMAorMzIzIDMyIDY1MzM1MDAKKzMxOSAzMiA2NTUzNTAwCiszMzEgMzIgNjU3MzUwMAorMzMyIDMyIDY1OTM1MDAKKzMzMyAzMiA2NjEzNTAwCiszMjUgMzIgNjYzMzUwMAorMzM0IDMyIDY2NTM1MDAKKzMzMyAzMiA2NjczNTAwCiszMjkgMzIgNjY5MzUwMAorMzI1IDMyIDY3MTM1MDAKKzMyMSAzMiA2NzMzNTAwCis0NjAgMzIgNjc1MzUwMAorMzIyIDMyIDY3NzM1MDAKKzMxMyAzMiA2NzkzNTAwCiszMDMgMzIgNjgxMzUwMAorMzA3IDMyIDY4MzM1MDAKKzMwMiAzMiA2ODUzNTAwCisyOTggMzIgNjg3MzUwMAorMjk0IDMyIDY4OTM1MDAKKzI5NiAzMiA2OTEzNTAwCisyODggMzIgNjkzMzUwMAorMjg2IDMyIDY5NTM1MDAKKzQwNCAzMiA2OTczNTAwCis0MDggMzIgNjk5MzUwMAorMzE2IDMyIDcwMTM1MDAKKzMzNiAzMiA3MDMzNTAwCiszMjYgMzIgNzA1MzUwMAorMzMzIDMyIDcwNzM1MDAKKzMyNCAzMiA3MDkzNTAwCiszMzAgMzIgNzExMzUwMAorMzE1IDMyIDcxMzM1MDAKKzMxOCAzMiA3MTUzNTAwCiszMjMgMzIgNzE3MzUwMAorMzA0IDMyIDcxOTM1MDAKKzMwMiAzMiA3MjEzNTAwCiszMTAgMzIgNzIzMzUwMAorMzI5IDMyIDcyNTM1MDAKKzMyNCAzMiA3MjczNTAwCiszMzIgMzIgNzI5MzUwMAorNDc0IDMyIDczMTM1MDAKKzM0NyAzMiA3MzMzNTAwCiszNTEgMzIgNzM1MzUwMAorNDEyIDMyIDczNzM1MDAKKzMyNiAzMiA3MzkzNTAwCiszMDAgMzIgNzQxMzUwMAorMzA4IDMyIDc0MzM1MDAKKzMwNyAzMiA3NDUzNTAwCisyOTkgMzIgNzQ3MzUwMAorMzA2IDMyIDc0OTM1MDAKKzQ1MCAzMiA3NTEzNTAwCisyOTQgMzIgNzUzMzUwMAorMzQ4IDMyIDc1NTM1MDAKKzI5NCAzMiA3NTczNTAwCisyODkgMzIgNzU5MzUwMAorMjgxIDMyIDc2MTM1MDAKKzI5MyAzMiA3NjMzNTAwCisyOTEgMzIgNzY1MzUwMAorMzQxIDMyIDc2NzM1MDAKKzI5MSAzMiA3NjkzNTAwCisyOTggMzIgNzcxMzUwMAorMjk1IDMyIDc3MzM1MDAKKzI5OCAzMiA3NzUzNTAwCisyOTkgMzIgNzc3MzUwMAorMzMyIDMyIDc3OTM1MDAKKzI5NyAzMiA3ODEzNTAwCiszMDIgMzIgNzgzMzUwMAorMzAyIDMyIDc4NTM1MDAKKzMxNiAzMiA3ODczNTAwCiszMjIgMzIgNzg5MzUwMAorMzI3IDMyIDc5MTM1MDAKKzMyMSAzMiA3OTMzNTAwCiszMTUgMzIgNzk1MzUwMAorMzA4IDMyIDc5NzM1MDAKKzMyMyAzMiA3OTkzNTAwCiszMDYgMzIgODAxMzUwMAorMzE5IDMyIDgwMzM1MDAKKzMxOCAzMiA4MDUzNTAwCiszMTkgMzIgODA3MzUwMAorMzE5IDMyIDgwOTM1MDAKKzMyMyAzMiA4MTEzNTAwCiszMjAgMzIgODEzMzUwMAorMzExIDMyIDgxNTM1MDAKKzMxMiAzMiA4MTczNTAwCiszMDcgMzIgODE5MzUwMAorMzExIDMyIDgyMTM1MDAKKzMxOCAzMiA4MjMzNTAwCiszNDYgMzIgODI1MzUwMAorMzQ4IDMyIDgyNzM1MDAKKzMzNiAzMiA4MjkzNTAwCiszMzQgMzIgODMxMzUwMAorMzMxIDMyIDgzMzM1MDAKKzM0MCAzMiA4MzUzNTAwCiszMzUgMzIgODM3MzUwMAorMzE5IDMyIDgzOTM1MDAKKzMwNyAzMiA4NDEzNTAwCiszMDQgMzIgODQzMzUwMAorMzAxIDMyIDg0NTM1MDAKKzMxMSAzMiA4NDczNTAwCiszMTcgMzIgODQ5MzUwMAorMzI1IDMyIDg1MTM1MDAKKzMyNyAzMiA4NTMzNTAwCiszMzUgMzIgODU1MzUwMAorMzQwIDMyIDg1NzM1MDAKKzMyMCAzMiA4NTkzNTAwCiszMzMgMzIgODYxMzUwMAorMzI4IDMyIDg2MzM1MDAKKzMxMiAzMiA4NjUzNTAwCiszMDQgMzIgODY3MzUwMAorMzM3IDMyIDg2OTM1MDAKKzMzNCAzMiA4NzEzNTAwCiszMzMgMzIgODczMzUwMAorMzI3IDMyIDg3NTM1MDAKKzMyOCAzMiA4NzczNTAwCiszNDAgMzIgODc5MzUwMAorNDc4IDMyIDg4MTM1MDAKKzMzMSAzMiA4ODMzNTAwCiszMjggMzIgODg1MzUwMAorMzIwIDMyIDg4NzM1MDAKKzMxNSAzMiA4ODkzNTAwCiszMjEgMzIgODkxMzUwMAorMzI0IDMyIDg5MzM1MDAKKzMyNSAzMiA4OTUzNTAwCiszMjMgMzIgODk3MzUwMAorMzI0IDMyIDg5OTM1MDAKKzMzNiAzMiA5MDEzNTAwCiszNDAgMzIgOTAzMzUwMAorMzMzIDMyIDkwNTM1MDAKKzMzOSAzMiA5MDczNTAwCis0OTAgMzIgOTA5MzUwMAorNDgwIDMyIDkxMTM1MDAKKzMyOSAzMiA5MTMzNTAwCiszMjcgMzIgOTE1MzUwMAorMzQxIDMyIDkxNzM1MDAKKzMzOCAzMiA5MTkzNTAwCiszMzcgMzIgOTIxMzUwMAorMzM3IDMyIDkyMzM1MDAKKzMyOCAzMiA5MjUzNTAwCiszMjIgMzIgOTI3MzUwMAorMzI0IDMyIDkyOTM1MDAKKzM0OSAzMiA5MzEzNTAwCiszNTAgMzIgOTMzMzUwMAorMzM3IDMyIDkzNTM1MDAKKzM0MiAzMiA5MzczNTAwCiszMzQgMzIgOTM5MzUwMAorMzI0IDMyIDk0MTM1MDAKKzMyMCAzMiA5NDMzNTAwCiszMjkgMzIgOTQ1MzUwMAorMzMzIDMyIDk0NzM1MDAKKzMyOCAzMiA5NDkzNTAwCiszMzUgMzIgOTUxMzUwMAorMzIyIDMyIDk1MzM1MDAKKzMyMyAzMiA5NTUzNTAwCiszMzAgMzIgOTU3MzUwMAorMzIwIDMyIDk1OTM1MDAKKzMxMyAzMiA5NjEzNTAwCis1MjYgMzIgOTYzMzUwMAorMzA2IDMyIDk2NTM1MDAKKzMwMCAzMiA5NjczNTAwCisyOTkgMzIgOTY5MzUwMAorMzAwIDMyIDk3MTM1MDAKKzI5OSAzMiA5NzMzNTAwCisyOTkgMzIgOTc1MzUwMAorMjk1IDMyIDk3NzM1MDAKKzI5MyAzMiA5NzkzNTAwCisyOTcgMzIgOTgxMzUwMAorMzA2IDMyIDk4MzM1MDAKKzMwMCAzMiA5ODUzNTAwCis0MzggMzIgOTg3MzUwMAorMjkxIDMyIDk4OTM1MDAKKzQ0OCAzMiA5OTEzNTAwCis1MDQgMzIgOTkzMzUwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9vcHVzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoub3B1cyBiL21lZGlhL3Jlcy9iYmJfb3B1c19zdGVyZW9fMTI4a2Jwc180ODAwMGh6Lm9wdXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzkwMDFhYwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfb3B1c19zdGVyZW9fMTI4a2Jwc180ODAwMGh6Lm9wdXMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzE2a2h6X3MxNmxlLnJhdyBiL21lZGlhL3Jlcy9iYmJfcmF3XzFjaF8xNmtoel9zMTZsZS5yYXcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEyZjQxYgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfcmF3XzFjaF8xNmtoel9zMTZsZS5yYXcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczE2bGUucmF3IGIvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczE2bGUucmF3Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxNDllYjIKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMTZsZS5yYXcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczMybGUuaW5mbyBiL21lZGlhL3Jlcy9iYmJfcmF3XzFjaF84a2h6X3MzMmxlLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTMzOTI1YgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfcmF3XzFjaF84a2h6X3MzMmxlLmluZm8KQEAgLTAsMCArMSwxMCBAQAorMTYzODQgMzIgMAorMTYzODQgMzIgMTAyNDAwMAorMTYzODQgMzIgMjA0ODAwMAorMTYzODQgMzIgMzA3MjAwMAorMTYzODQgMzIgNDA5NjAwMAorMTYzODQgMzIgNTEyMDAwMAorMTYzODQgMzIgNjE0NDAwMAorMTYzODQgMzIgNzE2ODAwMAorMTYzODQgMzIgODE5MjAwMAorMTA5MjQgMzIgOTIxNjAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczMybGUucmF3IGIvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczMybGUucmF3Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMxNDllYjIKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMzJsZS5yYXcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9yYXdfMmNoXzQ4a2h6X3MxNmxlLnJhdyBiL21lZGlhL3Jlcy9iYmJfcmF3XzJjaF80OGtoel9zMTZsZS5yYXcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk4YjJlYwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfcmF3XzJjaF80OGtoel9zMTZsZS5yYXcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl92b3JiaXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIGIvbWVkaWEvcmVzL2JiYl92b3JiaXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA3MTY2NDMKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX3ZvcmJpc19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8KQEAgLTAsMCArMSw1MjAgQEAKKzMwIDEyOCAwCis0MTQwIDEyOCAwCiszMyAxMjggMAorNTIgMzIgMAorNTggMzIgMjY2NgorNjEgMzIgNTMzMworNTYgMzIgODAwMAorNTkgMzIgMTA2NjYKKzYzIDMyIDEzMzMzCis2NiAzMiAxNjAwMAorNzEgMzIgMTg2NjYKKzc2IDMyIDIxMzMzCiszNzQgMzIgMjQwMDAKKzM2NiAzMiAzNjAwMAorMzc4IDMyIDU3MzMzCiszOTMgMzIgNzg2NjYKKzM5MyAzMiAxMDAwMDAKKzM4NiAzMiAxMjEzMzMKKzM3NSAzMiAxNDI2NjYKKzM4OCAzMiAxNjQwMDAKKzM3OCAzMiAxODUzMzMKKzM3OSAzMiAyMDY2NjYKKzM3NCAzMiAyMjgwMDAKKzM1NiAzMiAyNDkzMzMKKzM1OCAzMiAyNzA2NjYKKzMzMiAzMiAyOTIwMDAKKzMzNSAzMiAzMTMzMzMKKzM2MyAzMiAzMzQ2NjYKKzM0MSAzMiAzNTYwMDAKKzM2MCAzMiAzNzczMzMKKzM0MSAzMiAzOTg2NjYKKzMzNSAzMiA0MjAwMDAKKzM1NyAzMiA0NDEzMzMKKzM1NSAzMiA0NjI2NjYKKzM2MyAzMiA0ODQwMDAKKzM4MiAzMiA1MDUzMzMKKzM3MSAzMiA1MjY2NjYKKzM1NyAzMiA1NDgwMDAKKzM1MyAzMiA1NjkzMzMKKzM1MCAzMiA1OTA2NjYKKzMyNyAzMiA2MTIwMDAKKzMxNSAzMiA2MzMzMzMKKzMwNyAzMiA2NTQ2NjYKKzMwMyAzMiA2NzYwMDAKKzI5NSAzMiA2OTczMzMKKzMxMiAzMiA3MTg2NjYKKzMxNiAzMiA3NDAwMDAKKzMxNSAzMiA3NjEzMzMKKzMxOCAzMiA3ODI2NjYKKzMzMCAzMiA4MDQwMDAKKzMxOCAzMiA4MjUzMzMKKzMxNSAzMiA4NDY2NjYKKzMyMiAzMiA4NjgwMDAKKzMxNSAzMiA4ODkzMzMKKzMxMCAzMiA5MTA2NjYKKzMxNSAzMiA5MzIwMDAKKzMxNCAzMiA5NTMzMzMKKzMwMiAzMiA5NzQ2NjYKKzMxMyAzMiA5OTYwMDAKKzMyMiAzMiAxMDE3MzMzCiszMjMgMzIgMTAzODY2NgorMzE5IDMyIDEwNjAwMDAKKzMyNSAzMiAxMDgxMzMzCiszMjggMzIgMTEwMjY2NgorMzMwIDMyIDExMjQwMDAKKzMzMyAzMiAxMTQ1MzMzCiszMzAgMzIgMTE2NjY2NgorMzQ0IDMyIDExODgwMDAKKzMzMSAzMiAxMjA5MzMzCiszNDIgMzIgMTIzMDY2NgorMzM5IDMyIDEyNTIwMDAKKzMxNCAzMiAxMjczMzMzCisyODUgMzIgMTI5NDY2NgorMjk1IDMyIDEzMTYwMDAKKzMwMiAzMiAxMzM3MzMzCiszMDUgMzIgMTM1ODY2NgorMzA5IDMyIDEzODAwMDAKKzMyNyAzMiAxNDAxMzMzCiszMDQgMzIgMTQyMjY2NgorMzM2IDMyIDE0NDQwMDAKKzM1MCAzMiAxNDY1MzMzCiszNDYgMzIgMTQ4NjY2NgorMzUyIDMyIDE1MDgwMDAKKzM0MSAzMiAxNTI5MzMzCiszNDMgMzIgMTU1MDY2NgorMzUxIDMyIDE1NzIwMDAKKzMxOSAzMiAxNTkzMzMzCiszMjggMzIgMTYxNDY2NgorMzI4IDMyIDE2MzYwMDAKKzMyNCAzMiAxNjU3MzMzCiszMzggMzIgMTY3ODY2NgorMzE3IDMyIDE3MDAwMDAKKzMyOCAzMiAxNzIxMzMzCiszMzUgMzIgMTc0MjY2NgorMzQxIDMyIDE3NjQwMDAKKzMzNSAzMiAxNzg1MzMzCiszNDggMzIgMTgwNjY2NgorMzYyIDMyIDE4MjgwMDAKKzM2MSAzMiAxODQ5MzMzCiszNDQgMzIgMTg3MDY2NgorMzQwIDMyIDE4OTIwMDAKKzMzMyAzMiAxOTEzMzMzCiszMjkgMzIgMTkzNDY2NgorMzI4IDMyIDE5NTYwMDAKKzMyMyAzMiAxOTc3MzMzCiszMTAgMzIgMTk5ODY2NgorMzE4IDMyIDIwMjAwMDAKKzMxMiAzMiAyMDQxMzMzCisyOTUgMzIgMjA2MjY2NgorMzI5IDMyIDIwODQwMDAKKzMxOCAzMiAyMTA1MzMzCiszMTEgMzIgMjEyNjY2NgorMzE3IDMyIDIxNDgwMDAKKzYyIDMyIDIxNjkzMzMKKzc1IDMyIDIxODEzMzMKKzczIDMyIDIxODQwMDAKKzMzMiAzMiAyMTg2NjY2CiszMjcgMzIgMjE5ODY2NgorMzMyIDMyIDIyMjAwMDAKKzMyNSAzMiAyMjQxMzMzCiszMjkgMzIgMjI2MjY2NgorMzMwIDMyIDIyODQwMDAKKzYxIDMyIDIzMDUzMzMKKzYxIDMyIDIzMTczMzMKKzcwIDMyIDIzMjAwMDAKKzcwIDMyIDIzMjI2NjYKKzMxOSAzMiAyMzI1MzMzCiszMDMgMzIgMjMzNzMzMworMjkyIDMyIDIzNTg2NjYKKzMxMyAzMiAyMzgwMDAwCiszMTggMzIgMjQwMTMzMworMzQ2IDMyIDI0MjI2NjYKKzMyOCAzMiAyNDQ0MDAwCiszMTYgMzIgMjQ2NTMzMworMzQxIDMyIDI0ODY2NjYKKzMyOCAzMiAyNTA4MDAwCiszMzggMzIgMjUyOTMzMworMzQxIDMyIDI1NTA2NjYKKzMzNyAzMiAyNTcyMDAwCiszNDcgMzIgMjU5MzMzMworMzg0IDMyIDI2MTQ2NjYKKzM1OCAzMiAyNjM2MDAwCiszNjMgMzIgMjY1NzMzMworMzYzIDMyIDI2Nzg2NjYKKzM1OCAzMiAyNzAwMDAwCiszMzkgMzIgMjcyMTMzMworMzY5IDMyIDI3NDI2NjYKKzM0MyAzMiAyNzY0MDAwCiszNDggMzIgMjc4NTMzMworMzYzIDMyIDI4MDY2NjYKKzM1MCAzMiAyODI4MDAwCiszNTggMzIgMjg0OTMzMworMzUyIDMyIDI4NzA2NjYKKzMzOCAzMiAyODkyMDAwCiszMzUgMzIgMjkxMzMzMworMzQyIDMyIDI5MzQ2NjYKKzMzOCAzMiAyOTU2MDAwCiszNDAgMzIgMjk3NzMzMworMjkyIDMyIDI5OTg2NjYKKzI3OSAzMiAzMDIwMDAwCisyOTkgMzIgMzA0MTMzMworMzAzIDMyIDMwNjI2NjYKKzI5OCAzMiAzMDg0MDAwCisyOTcgMzIgMzEwNTMzMworMjgwIDMyIDMxMjY2NjYKKzI5NyAzMiAzMTQ4MDAwCisyOTAgMzIgMzE2OTMzMworMzA2IDMyIDMxOTA2NjYKKzMwMSAzMiAzMjEyMDAwCiszMDYgMzIgMzIzMzMzMworMjg5IDMyIDMyNTQ2NjYKKzMxMSAzMiAzMjc2MDAwCiszMTcgMzIgMzI5NzMzMworMzQ0IDMyIDMzMTg2NjYKKzMwOCAzMiAzMzQwMDAwCiszMDQgMzIgMzM2MTMzMworMzA0IDMyIDMzODI2NjYKKzMxMiAzMiAzNDA0MDAwCiszMDUgMzIgMzQyNTMzMworMjk5IDMyIDM0NDY2NjYKKzMwMSAzMiAzNDY4MDAwCiszMTggMzIgMzQ4OTMzMworMzEzIDMyIDM1MTA2NjYKKzMzMCAzMiAzNTMyMDAwCiszMjUgMzIgMzU1MzMzMworMzI1IDMyIDM1NzQ2NjYKKzMyMSAzMiAzNTk2MDAwCiszNDkgMzIgMzYxNzMzMworMjg4IDMyIDM2Mzg2NjYKKzMwMCAzMiAzNjYwMDAwCiszMTIgMzIgMzY4MTMzMworMzAyIDMyIDM3MDI2NjYKKzI3OCAzMiAzNzI0MDAwCisyODQgMzIgMzc0NTMzMworMjg2IDMyIDM3NjY2NjYKKzI3NCAzMiAzNzg4MDAwCisyOTUgMzIgMzgwOTMzMworMjgxIDMyIDM4MzA2NjYKKzI4OCAzMiAzODUyMDAwCisyNzggMzIgMzg3MzMzMworMzA2IDMyIDM4OTQ2NjYKKzYyIDMyIDM5MTYwMDAKKzU5IDMyIDM5MjgwMDAKKzYxIDMyIDM5MzA2NjYKKzU1IDMyIDM5MzMzMzMKKzcwIDMyIDM5MzYwMDAKKzcyIDMyIDM5Mzg2NjYKKzMyNCAzMiAzOTQxMzMzCiszMDkgMzIgMzk1MzMzMworMzAxIDMyIDM5NzQ2NjYKKzMwMSAzMiAzOTk2MDAwCisyOTEgMzIgNDAxNzMzMworMjg5IDMyIDQwMzg2NjYKKzMwNiAzMiA0MDYwMDAwCiszMDUgMzIgNDA4MTMzMworMjg2IDMyIDQxMDI2NjYKKzI5NCAzMiA0MTI0MDAwCisyOTAgMzIgNDE0NTMzMworMjk3IDMyIDQxNjY2NjYKKzMwOCAzMiA0MTg4MDAwCisyOTYgMzIgNDIwOTMzMworMjkyIDMyIDQyMzA2NjYKKzI4NyAzMiA0MjUyMDAwCisyOTEgMzIgNDI3MzMzMworMjk4IDMyIDQyOTQ2NjYKKzI5NSAzMiA0MzE2MDAwCisyOTQgMzIgNDMzNzMzMworMjk1IDMyIDQzNTg2NjYKKzI3NSAzMiA0MzgwMDAwCisyODAgMzIgNDQwMTMzMworMjg4IDMyIDQ0MjI2NjYKKzI4NSAzMiA0NDQ0MDAwCisyNzQgMzIgNDQ2NTMzMworMjk4IDMyIDQ0ODY2NjYKKzMwMSAzMiA0NTA4MDAwCiszMDAgMzIgNDUyOTMzMworMzA1IDMyIDQ1NTA2NjYKKzI5NyAzMiA0NTcyMDAwCis1OSAzMiA0NTkzMzMzCis1NiAzMiA0NjA1MzMzCis1NyAzMiA0NjA4MDAwCis1NSAzMiA0NjEwNjY2Cis1OCAzMiA0NjEzMzMzCis1NyAzMiA0NjE2MDAwCis1OCAzMiA0NjE4NjY2Cis2OCAzMiA0NjIxMzMzCis2NyAzMiA0NjI0MDAwCis3MSAzMiA0NjI2NjY2CisyODkgMzIgNDYyOTMzMworMjgyIDMyIDQ2NDEzMzMKKzI3MyAzMiA0NjYyNjY2CisyNzkgMzIgNDY4NDAwMAorMjg2IDMyIDQ3MDUzMzMKKzI4MiAzMiA0NzI2NjY2CisyODQgMzIgNDc0ODAwMAorMjc4IDMyIDQ3NjkzMzMKKzI4MSAzMiA0NzkwNjY2CisyODAgMzIgNDgxMjAwMAorMjYzIDMyIDQ4MzMzMzMKKzI2MCAzMiA0ODU0NjY2CisyNzEgMzIgNDg3NjAwMAorMjczIDMyIDQ4OTczMzMKKzI4MiAzMiA0OTE4NjY2CisyNzkgMzIgNDk0MDAwMAorMjk3IDMyIDQ5NjEzMzMKKzI5MSAzMiA0OTgyNjY2CiszMDkgMzIgNTAwNDAwMAorMjgzIDMyIDUwMjUzMzMKKzI5MiAzMiA1MDQ2NjY2CiszMDQgMzIgNTA2ODAwMAorMjk2IDMyIDUwODkzMzMKKzI5MyAzMiA1MTEwNjY2CisyODIgMzIgNTEzMjAwMAorMjczIDMyIDUxNTMzMzMKKzI4NCAzMiA1MTc0NjY2CisyODEgMzIgNTE5NjAwMAorMjY1IDMyIDUyMTczMzMKKzI3MiAzMiA1MjM4NjY2CisyNzcgMzIgNTI2MDAwMAorMjgwIDMyIDUyODEzMzMKKzI3NiAzMiA1MzAyNjY2CisyNzMgMzIgNTMyNDAwMAorMjc4IDMyIDUzNDUzMzMKKzI4MCAzMiA1MzY2NjY2CisyODAgMzIgNTM4ODAwMAorMjY4IDMyIDU0MDkzMzMKKzI4MiAzMiA1NDMwNjY2CisyNzcgMzIgNTQ1MjAwMAorMjc0IDMyIDU0NzMzMzMKKzI3NSAzMiA1NDk0NjY2CisyNzAgMzIgNTUxNjAwMAorMjgyIDMyIDU1MzczMzMKKzI3OSAzMiA1NTU4NjY2CisyNjAgMzIgNTU4MDAwMAorMjcyIDMyIDU2MDEzMzMKKzI3NSAzMiA1NjIyNjY2CisyNzMgMzIgNTY0NDAwMAorMjc2IDMyIDU2NjUzMzMKKzI4OCAzMiA1Njg2NjY2CisyOTQgMzIgNTcwODAwMAorMjcxIDMyIDU3MjkzMzMKKzI3NyAzMiA1NzUwNjY2CisyODggMzIgNTc3MjAwMAorMjc2IDMyIDU3OTMzMzMKKzI4MiAzMiA1ODE0NjY2CisyNzYgMzIgNTgzNjAwMAorMjc1IDMyIDU4NTczMzMKKzI2OCAzMiA1ODc4NjY2CisyNzAgMzIgNTkwMDAwMAorMjY2IDMyIDU5MjEzMzMKKzI2OCAzMiA1OTQyNjY2CisyODIgMzIgNTk2NDAwMAorMjc5IDMyIDU5ODUzMzMKKzI3OSAzMiA2MDA2NjY2CisyODcgMzIgNjAyODAwMAorMjg2IDMyIDYwNDkzMzMKKzI4MCAzMiA2MDcwNjY2CisyOTAgMzIgNjA5MjAwMAorMjY2IDMyIDYxMTMzMzMKKzI5MiAzMiA2MTM0NjY2CisyNjQgMzIgNjE1NjAwMAorMjcxIDMyIDYxNzczMzMKKzI3NyAzMiA2MTk4NjY2CisyOTIgMzIgNjIyMDAwMAorMjk4IDMyIDYyNDEzMzMKKzI4NCAzMiA2MjYyNjY2CisyODcgMzIgNjI4NDAwMAorMjc1IDMyIDYzMDUzMzMKKzI5MSAzMiA2MzI2NjY2CisyODcgMzIgNjM0ODAwMAorMjgzIDMyIDYzNjkzMzMKKzI4NCAzMiA2MzkwNjY2CisyNzEgMzIgNjQxMjAwMAorMjgyIDMyIDY0MzMzMzMKKzI3NyAzMiA2NDU0NjY2CisyODIgMzIgNjQ3NjAwMAorMjg1IDMyIDY0OTczMzMKKzI4MCAzMiA2NTE4NjY2CisyNzEgMzIgNjU0MDAwMAorMjg5IDMyIDY1NjEzMzMKKzI4NyAzMiA2NTgyNjY2CisyOTQgMzIgNjYwNDAwMAorMjc3IDMyIDY2MjUzMzMKKzI4MSAzMiA2NjQ2NjY2CisyNzQgMzIgNjY2ODAwMAorMjcxIDMyIDY2ODkzMzMKKzI3OSAzMiA2NzEwNjY2CisyODggMzIgNjczMjAwMAorMjgwIDMyIDY3NTMzMzMKKzI4NCAzMiA2Nzc0NjY2CisyNzggMzIgNjc5NjAwMAorMjc2IDMyIDY4MTczMzMKKzI3NSAzMiA2ODM4NjY2CisyNjMgMzIgNjg2MDAwMAorMjY2IDMyIDY4ODEzMzMKKzI0NyAzMiA2OTAyNjY2CisyNjkgMzIgNjkyNDAwMAorMjYzIDMyIDY5NDUzMzMKKzI4MyAzMiA2OTY2NjY2CisyODAgMzIgNjk4ODAwMAorMjgxIDMyIDcwMDkzMzMKKzI5OSAzMiA3MDMwNjY2CisyODUgMzIgNzA1MjAwMAorMjg4IDMyIDcwNzMzMzMKKzI5OSAzMiA3MDk0NjY2CisyODggMzIgNzExNjAwMAorMjc5IDMyIDcxMzczMzMKKzI3NiAzMiA3MTU4NjY2CisyNzcgMzIgNzE4MDAwMAorMjgyIDMyIDcyMDEzMzMKKzI4NSAzMiA3MjIyNjY2CisyOTUgMzIgNzI0NDAwMAorMjk0IDMyIDcyNjUzMzMKKzMwNCAzMiA3Mjg2NjY2CisyODIgMzIgNzMwODAwMAorMjk5IDMyIDczMjkzMzMKKzI4MyAzMiA3MzUwNjY2CisyODIgMzIgNzM3MjAwMAorMjg3IDMyIDczOTMzMzMKKzMwNiAzMiA3NDE0NjY2CiszMDQgMzIgNzQzNjAwMAorMjg5IDMyIDc0NTczMzMKKzI5OSAzMiA3NDc4NjY2CisyODEgMzIgNzUwMDAwMAorMjgxIDMyIDc1MjEzMzMKKzY2IDMyIDc1NDI2NjYKKzYzIDMyIDc1NTQ2NjYKKzI4OSAzMiA3NTU3MzMzCisyNzAgMzIgNzU2OTMzMworMjU3IDMyIDc1OTA2NjYKKzI0NiAzMiA3NjEyMDAwCisyNjQgMzIgNzYzMzMzMworMjgwIDMyIDc2NTQ2NjYKKzI3MyAzMiA3Njc2MDAwCisyODUgMzIgNzY5NzMzMworMjY3IDMyIDc3MTg2NjYKKzI3NSAzMiA3NzQwMDAwCisyNzggMzIgNzc2MTMzMworMjkzIDMyIDc3ODI2NjYKKzI4MSAzMiA3ODA0MDAwCisyOTcgMzIgNzgyNTMzMworMjk0IDMyIDc4NDY2NjYKKzI4NiAzMiA3ODY4MDAwCisyOTAgMzIgNzg4OTMzMworMjkwIDMyIDc5MTA2NjYKKzI4OSAzMiA3OTMyMDAwCisyODYgMzIgNzk1MzMzMworMjgyIDMyIDc5NzQ2NjYKKzMwNiAzMiA3OTk2MDAwCisyODcgMzIgODAxNzMzMworMzEyIDMyIDgwMzg2NjYKKzMxMiAzMiA4MDYwMDAwCiszMDcgMzIgODA4MTMzMworMjkzIDMyIDgxMDI2NjYKKzI4OSAzMiA4MTI0MDAwCisyODUgMzIgODE0NTMzMworMjkwIDMyIDgxNjY2NjYKKzI4NSAzMiA4MTg4MDAwCiszMTEgMzIgODIwOTMzMworMzA3IDMyIDgyMzA2NjYKKzMxNCAzMiA4MjUyMDAwCiszMTggMzIgODI3MzMzMworMzE5IDMyIDgyOTQ2NjYKKzMxNSAzMiA4MzE2MDAwCiszMDAgMzIgODMzNzMzMworMjk1IDMyIDgzNTg2NjYKKzI5MSAzMiA4MzgwMDAwCisyODIgMzIgODQwMTMzMworMjk1IDMyIDg0MjI2NjYKKzI5NiAzMiA4NDQ0MDAwCisyODggMzIgODQ2NTMzMworMzA0IDMyIDg0ODY2NjYKKzI5OSAzMiA4NTA4MDAwCisyOTggMzIgODUyOTMzMworMzA1IDMyIDg1NTA2NjYKKzI5NSAzMiA4NTcyMDAwCisyOTYgMzIgODU5MzMzMworMjk1IDMyIDg2MTQ2NjYKKzI4NyAzMiA4NjM2MDAwCisyOTIgMzIgODY1NzMzMworMzA4IDMyIDg2Nzg2NjYKKzI4NyAzMiA4NzAwMDAwCiszMDcgMzIgODcyMTMzMworMjk1IDMyIDg3NDI2NjYKKzI5MiAzMiA4NzY0MDAwCisyOTIgMzIgODc4NTMzMworMjc5IDMyIDg4MDY2NjYKKzI4OSAzMiA4ODI4MDAwCiszMDMgMzIgODg0OTMzMworMzA3IDMyIDg4NzA2NjYKKzMxMCAzMiA4ODkyMDAwCiszMDAgMzIgODkxMzMzMworMjk5IDMyIDg5MzQ2NjYKKzI5OSAzMiA4OTU2MDAwCisyODggMzIgODk3NzMzMworMjkwIDMyIDg5OTg2NjYKKzI5MSAzMiA5MDIwMDAwCiszMDQgMzIgOTA0MTMzMworMjk5IDMyIDkwNjI2NjYKKzMwNCAzMiA5MDg0MDAwCisyOTAgMzIgOTEwNTMzMworMzA5IDMyIDkxMjY2NjYKKzMwMSAzMiA5MTQ4MDAwCisyOTYgMzIgOTE2OTMzMworMjg4IDMyIDkxOTA2NjYKKzMwNSAzMiA5MjEyMDAwCiszMTcgMzIgOTIzMzMzMworMjkyIDMyIDkyNTQ2NjYKKzMwMCAzMiA5Mjc2MDAwCiszMDEgMzIgOTI5NzMzMworMjk1IDMyIDkzMTg2NjYKKzI4MiAzMiA5MzQwMDAwCisyOTYgMzIgOTM2MTMzMworMjk1IDMyIDkzODI2NjYKKzI4NyAzMiA5NDA0MDAwCisyOTIgMzIgOTQyNTMzMworMzAxIDMyIDk0NDY2NjYKKzMxMSAzMiA5NDY4MDAwCiszMDEgMzIgOTQ4OTMzMworMzA3IDMyIDk1MTA2NjYKKzMwMCAzMiA5NTMyMDAwCiszMDkgMzIgOTU1MzMzMworMjk4IDMyIDk1NzQ2NjYKKzMwNCAzMiA5NTk2MDAwCis2MCAzMiA5NjE3MzMzCis1OSAzMiA5NjI5MzMzCis2NCAzMiA5NjMyMDAwCis2NCAzMiA5NjM0NjY2Cis3NyAzMiA5NjM3MzMzCis3MiAzMiA5NjQwMDAwCiszMDYgMzIgOTY0MjY2NgorMjk3IDMyIDk2NTQ2NjYKKzI5NCAzMiA5Njc2MDAwCisyOTUgMzIgOTY5NzMzMworMzA4IDMyIDk3MTg2NjYKKzMwMyAzMiA5NzQwMDAwCiszMDggMzIgOTc2MTMzMworMjg5IDMyIDk3ODI2NjYKKzMwMCAzMiA5ODA0MDAwCiszMDQgMzIgOTgyNTMzMworMzA4IDMyIDk4NDY2NjYKKzY0IDMyIDk4NjgwMDAKKzYzIDMyIDk4ODAwMDAKKzY0IDMyIDk4ODI2NjYKKzY0IDMyIDk4ODUzMzMKKzYwIDMyIDk4ODgwMDAKKzc0IDMyIDk4OTA2NjYKKzY5IDMyIDk4OTMzMzMKKzY4IDMyIDk4OTYwMDAKKzYxIDMyIDk4OTg2NjYKKzcxIDMyIDk5MDEzMzMKKzc2IDMyIDk5MDQwMDAKKzczIDMyIDk5MDY2NjYKKzcwIDMyIDk5MDkzMzMKKzcyIDMyIDk5MTIwMDAKKzYwIDMyIDk5MTQ2NjYKKzY5IDMyIDk5MTczMzMKKzgyIDMyIDk5MjAwMDAKKzI3OCAzMiA5OTIyNjY2CiszMCAzMiA5OTM0NjY2CmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3ZvcmJpc19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LnZvcmJpcyBiL21lZGlhL3Jlcy9iYmJfdm9yYmlzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoudm9yYmlzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQwNGM1ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX3ZvcmJpc19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LnZvcmJpcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3ZwOF82NDB4MzYwXzJtYnBzXzMwZnBzLmluZm8gYi9tZWRpYS9yZXMvYmJiX3ZwOF82NDB4MzYwXzJtYnBzXzMwZnBzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTAxZjNiYgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMuaW5mbwpAQCAtMCwwICsxLDMwMCBAQAorODY5ODAgMzIgMAorNjc0MSAwIDMzMDAwCis5NDMzIDAgNjcwMDAKKzkzNjMgMCAxMDAwMDAKKzg2NzEgMCAxMzMwMDAKKzkwMDMgMCAxNjcwMDAKKzc3NTEgMCAyMDAwMDAKKzEzMjA3IDAgMjMzMDAwCis4NTQyIDAgMjY3MDAwCis5MzQ0IDAgMzAwMDAwCis4MDY5IDAgMzMzMDAwCis4NTg4IDAgMzY3MDAwCisxMjA4NyAwIDQwMDAwMAorNzMxNSAwIDQzMzAwMAorOTY1NCAwIDQ2NzAwMAorMTMxMDAgMCA1MDAwMDAKKzc4MzIgMCA1MzMwMDAKKzEwMDYwIDAgNTY3MDAwCis4NTQwIDAgNjAwMDAwCis4NjY3IDAgNjMzMDAwCis4NTMyIDAgNjY3MDAwCis2MDE4IDAgNzAwMDAwCis4NTIwIDAgNzMzMDAwCisxNTM1MCAwIDc2NzAwMAorNjExMCAwIDgwMDAwMAorNzg3NiAwIDgzMzAwMAorNjEzMyAwIDg2NzAwMAorOTQ3NiAwIDkwMDAwMAorMTEwMDIgMCA5MzMwMDAKKzc0ODQgMCA5NjcwMDAKKzg3NjAgMCAxMDAwMDAwCisxNjUxNSAwIDEwMzMwMDAKKzc0ODIgMCAxMDY3MDAwCis2OTgzIDAgMTEwMDAwMAorNzU2MSAwIDExMzMwMDAKKzgyNjMgMCAxMTY3MDAwCisxMDY4MiAwIDEyMDAwMDAKKzgxMDggMCAxMjMzMDAwCis3OTI0IDAgMTI2NzAwMAorODY5MyAwIDEzMDAwMDAKKzE0MTkwIDAgMTMzMzAwMAorNzM5MyAwIDEzNjcwMDAKKzY4NjQgMCAxNDAwMDAwCis5NDMxIDAgMTQzMzAwMAorNzY3NCAwIDE0NjcwMDAKKzg0NTggMCAxNTAwMDAwCis1ODk5IDAgMTUzMzAwMAorODI1OSAwIDE1NjcwMDAKKzc5NjMgMCAxNjAwMDAwCisxNDc3OSAwIDE2MzMwMDAKKzY4NzcgMCAxNjY3MDAwCis3MjY4IDAgMTcwMDAwMAorODUyNiAwIDE3MzMwMDAKKzg0NjcgMCAxNzY3MDAwCisxMTIwMCAwIDE4MDAwMDAKKzcyNjEgMCAxODMzMDAwCis4MjgwIDAgMTg2NzAwMAorNjcxOCAwIDE5MDAwMDAKKzE3NzQyIDAgMTkzMzAwMAorNTIwNiAwIDE5NjcwMDAKKzU3MDAgMCAyMDAwMDAwCis1ODcyIDAgMjAzMzAwMAorNzkxNSAwIDIwNjcwMDAKKzg0OTMgMCAyMTAwMDAwCis2NTQ1IDAgMjEzMzAwMAorOTA3MiAwIDIxNjcwMDAKKzEzMjAwIDAgMjIwMDAwMAorOTYzMiAwIDIyMzMwMDAKKzEwMDE2IDAgMjI2NzAwMAorNzgyNCAwIDIzMDAwMDAKKzEwNjI4IDAgMjMzMzAwMAorMTA0MDEgMCAyMzY3MDAwCisxMDg5MiAwIDI0MDAwMDAKKzkwMjMgMCAyNDMzMDAwCisxMDczNCAwIDI0NjcwMDAKKzE1MDQ1IDAgMjUwMDAwMAorNzk0MCAwIDI1MzMwMDAKKzk2NTcgMCAyNTY3MDAwCis4NzQzIDAgMjYwMDAwMAorODA3NCAwIDI2MzMwMDAKKzk0NDUgMCAyNjY3MDAwCis2NDk0IDAgMjcwMDAwMAorODYwMSAwIDI3MzMwMDAKKzEzNDc4IDAgMjc2NzAwMAorNjk0MiAwIDI4MDAwMDAKKzgwMDIgMCAyODMzMDAwCis3OTQwIDAgMjg2NzAwMAorODMyMCAwIDI5MDAwMDAKKzEyMjE1IDAgMjkzMzAwMAorNjY2OCAwIDI5NjcwMDAKKzExMzg0IDAgMzAwMDAwMAorODM3OCAwIDMwMzMwMDAKKzEyOTA4IDAgMzA2NzAwMAorODQyMCAwIDMxMDAwMDAKKzc1MDIgMCAzMTMzMDAwCis4NDgyIDAgMzE2NzAwMAorMTA5NjggMCAzMjAwMDAwCisxMjMzOCAwIDMyMzMwMDAKKzg2NTcgMCAzMjY3MDAwCisxMDQ2OCAwIDMzMDAwMDAKKzEzODc4IDAgMzMzMzAwMAorOTM3NCAwIDMzNjcwMDAKKzk4NTcgMCAzNDAwMDAwCisxMDM4MSAwIDM0MzMwMDAKKzk5ODQgMCAzNDY3MDAwCis5OTU2IDAgMzUwMDAwMAorODkwNSAwIDM1MzMwMDAKKzg2NzIgMCAzNTY3MDAwCis4MTIyIDAgMzYwMDAwMAorOTY3NyAwIDM2MzMwMDAKKzk4MTIgMCAzNjY3MDAwCis5NjIyIDAgMzcwMDAwMAorOTAyMyAwIDM3MzMwMDAKKzcxNDcgMCAzNzY3MDAwCis5MTQ2IDAgMzgwMDAwMAorNzQ4OCAwIDM4MzMwMDAKKzEwODEyIDAgMzg2NzAwMAorODM0MCAwIDM5MDAwMDAKKzEzMjgwIDAgMzkzMzAwMAorNTE2NyAwIDM5NjcwMDAKKzY5OTEgMCA0MDAwMDAwCis2NTQzIDAgNDAzMzAwMAorNTk1MiAwIDQwNjcwMDAKKzUxNjQgMCA0MTAwMDAwCis0MDExIDAgNDEzMzAwMAorMzc5NCAwIDQxNjcwMDAKKzEyOTU5IDAgNDIwMDAwMAorNzEwMjAgMzIgNDIzMzAwMAorNTM1MSAwIDQyNjcwMDAKKzYyODMgMCA0MzAwMDAwCis1MDgwIDAgNDMzMzAwMAorNjcwNyAwIDQzNjcwMDAKKzU4NTcgMCA0NDAwMDAwCis1MjIxIDAgNDQzMzAwMAorMTA5NzIgMCA0NDY3MDAwCis3MDIzIDAgNDUwMDAwMAorNjkwNyAwIDQ1MzMwMDAKKzc4NTEgMCA0NTY3MDAwCis0ODQzIDAgNDYwMDAwMAorNjA4NSAwIDQ2MzMwMDAKKzQ4NjggMCA0NjY3MDAwCis1MDkzIDAgNDcwMDAwMAorMTI4MDcgMCA0NzMzMDAwCis2MzMwIDAgNDc2NzAwMAorNDIwOSAwIDQ4MDAwMDAKKzQ1OTYgMCA0ODMzMDAwCis2MzE2IDAgNDg2NzAwMAorNDk1NCAwIDQ5MDAwMDAKKzU1MzMgMCA0OTMzMDAwCis3NzQ5IDAgNDk2NzAwMAorMTI0ODYgMCA1MDAwMDAwCis1NDY4IDAgNTAzMzAwMAorNDM1MyAwIDUwNjcwMDAKKzU3ODYgMCA1MTAwMDAwCis1NTUxIDAgNTEzMzAwMAorNjcxMSAwIDUxNjcwMDAKKzU2ODggMCA1MjAwMDAwCis2MjU4IDAgNTIzMzAwMAorMTI5NzUgMCA1MjY3MDAwCis0ODczIDAgNTMwMDAwMAorNDU1MiAwIDUzMzMwMDAKKzQ4NDQgMCA1MzY3MDAwCis0Nzc0IDAgNTQwMDAwMAorNTAyNSAwIDU0MzMwMDAKKzUyMDQgMCA1NDY3MDAwCis0ODE0IDAgNTUwMDAwMAorMTQ4MzUgMCA1NTMzMDAwCis1MzQzIDAgNTU2NzAwMAorNDgwOCAwIDU2MDAwMDAKKzUwNzEgMCA1NjMzMDAwCis2MzI0IDAgNTY2NzAwMAorNTI0MyAwIDU3MDAwMDAKKzQ5OTUgMCA1NzMzMDAwCis1MTM0IDAgNTc2NzAwMAorMTEwNTQgMCA1ODAwMDAwCis0ODA3IDAgNTgzMzAwMAorNTExOCAwIDU4NjcwMDAKKzY0MjQgMCA1OTAwMDAwCis0OTg0IDAgNTkzMzAwMAorNzE4NyAwIDU5NjcwMDAKKzU1MDUgMCA2MDAwMDAwCis2OTQxIDAgNjAzMzAwMAorMTE1MTcgMCA2MDY3MDAwCis1NjQ2IDAgNjEwMDAwMAorNjgzMiAwIDYxMzMwMDAKKzUyOTQgMCA2MTY3MDAwCis2MjAwIDAgNjIwMDAwMAorNjMyOCAwIDYyMzMwMDAKKzQzNDggMCA2MjY3MDAwCis0NjA3IDAgNjMwMDAwMAorMTI5NTggMCA2MzMzMDAwCis0MzA4IDAgNjM2NzAwMAorNjA4NCAwIDY0MDAwMDAKKzQ0OTQgMCA2NDMzMDAwCis1MzM4IDAgNjQ2NzAwMAorNTc0MiAwIDY1MDAwMDAKKzU0NzIgMCA2NTMzMDAwCis4NDU5IDAgNjU2NzAwMAorMTMwNzUgMCA2NjAwMDAwCis4OTg2IDAgNjYzMzAwMAorOTU4MyAwIDY2NjcwMDAKKzg3OTIgMCA2NzAwMDAwCis5MDA0IDAgNjczMzAwMAorOTYzMiAwIDY3NjcwMDAKKzkzOTMgMCA2ODAwMDAwCis5MjU5IDAgNjgzMzAwMAorMTE5MjcgMCA2ODY3MDAwCisxMDMyMyAwIDY5MDAwMDAKKzE1MjQ4IDAgNjkzMzAwMAorMTEyNDQgMCA2OTY3MDAwCisxNTU1OCAwIDcwMDAwMDAKKzYxOTcgMCA3MDMzMDAwCis4MDQ0IDAgNzA2NzAwMAorMTE0MzIgMCA3MTAwMDAwCis4NzM3IDAgNzEzMzAwMAorMTM4ODUgMCA3MTY3MDAwCisxMTE1OCAwIDcyMDAwMDAKKzE1MTUyIDAgNzIzMzAwMAorNzAyNSAwIDcyNjcwMDAKKzgwMjUgMCA3MzAwMDAwCisxMzM2MiAwIDczMzMwMDAKKzgwOTAgMCA3MzY3MDAwCisxMzYzNyAwIDc0MDAwMDAKKzYxNDggMCA3NDMzMDAwCis5MjcwIDAgNzQ2NzAwMAorODYzMyAwIDc1MDAwMDAKKzEwNjczIDAgNzUzMzAwMAorMTQyMDggMCA3NTY3MDAwCis4MDg0IDAgNzYwMDAwMAorMTM3ODMgMCA3NjMzMDAwCisxMDY2MCAwIDc2NjcwMDAKKzc0NjYgMCA3NzAwMDAwCisxNDQzMyAwIDc3MzMwMDAKKzEwOTM0IDAgNzc2NzAwMAorNzIzOSAwIDc4MDAwMDAKKzEyNTQ4IDAgNzgzMzAwMAorNjU2NCAwIDc4NjcwMDAKKzEwNzYxIDAgNzkwMDAwMAorMTA5OTIgMCA3OTMzMDAwCisxMjkyNCAwIDc5NjcwMDAKKzEyMzQ4IDAgODAwMDAwMAorNjc3MCAwIDgwMzMwMDAKKzE0Mjg4IDAgODA2NzAwMAorMjkzNDUgMzIgODEwMDAwMAorMTgyMiAwIDgxMzMwMDAKKzEwODcgMCA4MTY3MDAwCisxMTA5IDAgODIwMDAwMAorMjAwNyAwIDgyMzMwMDAKKzE3OTggMCA4MjY3MDAwCisxNjM1IDAgODMwMDAwMAorMTk2MDcgMCA4MzMzMDAwCis5MTkgMCA4MzY3MDAwCisyMzU3IDAgODQwMDAwMAorMzU3OCAwIDg0MzMwMDAKKzQ0OTcgMCA4NDY3MDAwCis0MzE0IDAgODUwMDAwMAorMzg1MSAwIDg1MzMwMDAKKzM4MjIgMCA4NTY3MDAwCis0MjUyIDAgODYwMDAwMAorNDc3NSAwIDg2MzMwMDAKKzEyMjAzIDAgODY2NzAwMAorNTA3OCAwIDg3MDAwMDAKKzU4NzYgMCA4NzMzMDAwCis2MTI0IDAgODc2NzAwMAorNDQ5MCAwIDg4MDAwMDAKKzM1MzggMCA4ODMzMDAwCiszNDUwIDAgODg2NzAwMAorMzYxMSAwIDg5MDAwMDAKKzI4NDcgMCA4OTMzMDAwCisyNjA1IDAgODk2NzAwMAorMTIyNDMgMCA5MDAwMDAwCisxOTQ2IDAgOTAzMzAwMAorMTg0NyAwIDkwNjcwMDAKKzIwMzUgMCA5MTAwMDAwCisyNTcyIDAgOTEzMzAwMAorMjMyNiAwIDkxNjcwMDAKKzI2NDUgMCA5MjAwMDAwCisyOTM4IDAgOTIzMzAwMAorMjQ5NSAwIDkyNjcwMDAKKzI2MDkgMCA5MzAwMDAwCis5NzQ0IDAgOTMzMzAwMAorMTc5NiAwIDkzNjcwMDAKKzE5ODUgMCA5NDAwMDAwCisxNzU5IDAgOTQzMzAwMAorMjI1OSAwIDk0NjcwMDAKKzIyMzMgMCA5NTAwMDAwCisyMDQ0IDAgOTUzMzAwMAorMjUwMiAwIDk1NjcwMDAKKzIzMDcgMCA5NjAwMDAwCisyNzM5IDAgOTYzMzAwMAorMTE3MDcgMCA5NjY3MDAwCis1MTY4IDAgOTcwMDAwMAorNDQ4MyAwIDk3MzMwMDAKKzMwNDQgMCA5NzY3MDAwCis0MjQxIDAgOTgwMDAwMAorNDM5MiAwIDk4MzMwMDAKKzQ5MzQgMCA5ODY3MDAwCis1OTM0IDAgOTkwMDAwMAorNTY0NyAwIDk5MzMwMDAKKzUzMjYgMCA5OTY3MDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3ZwOF82NDB4MzYwXzJtYnBzXzMwZnBzLnZwOCBiL21lZGlhL3Jlcy9iYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMudnA4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlYzQ2MGMKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX3ZwOF82NDB4MzYwXzJtYnBzXzMwZnBzLnZwOApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8gYi9tZWRpYS9yZXMvYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThiZTU4ZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfdnA5XzY0MHgzNjBfMTYwMGticHNfMzBmcHMuaW5mbwpAQCAtMCwwICsxLDMwMCBAQAorNTQ5MTggMzIgMAorNDYyODAgMCAzMzAwMAorMjAwNiAwIDY3MDAwCisyODQxIDAgMTAwMDAwCiszMDQ0IDAgMTMzMDAwCiszNDI5IDAgMTY3MDAwCiszMTk2IDAgMjAwMDAwCisyOTI2IDAgMjMzMDAwCisyODIxIDAgMjY3MDAwCisxMTUwIDAgMzAwMDAwCiszNiAwIDMzMzAwMAorMzgwODQgMCAzNjcwMDAKKzM2ODkgMCA0MDAwMDAKKzM0NzMgMCA0MzMwMDAKKzMwMTEgMCA0NjcwMDAKKzMwOTAgMCA1MDAwMDAKKzI1MTYgMCA1MzMwMDAKKzI3NzEgMCA1NjcwMDAKKzMyNTAgMCA2MDAwMDAKKzExNTkgMCA2MzMwMDAKKzM0IDAgNjY3MDAwCiszOTY5MCAwIDcwMDAwMAorMzYxNSAwIDczMzAwMAorMjQ5NCAwIDc2NzAwMAorMjg5MyAwIDgwMDAwMAorMzMyOSAwIDgzMzAwMAorMjkzOSAwIDg2NzAwMAorMjM1MiAwIDkwMDAwMAorMjczMiAwIDkzMzAwMAorMTc0NiAwIDk2NzAwMAorMzMgMCAxMDAwMDAwCis0MTUwMSAwIDEwMzMwMDAKKzI5OTcgMCAxMDY3MDAwCisyNjY2IDAgMTEwMDAwMAorMzU4MiAwIDExMzMwMDAKKzI2MTYgMCAxMTY3MDAwCisyOTIzIDAgMTIwMDAwMAorMjY5NiAwIDEyMzMwMDAKKzE2MjggMCAxMjY3MDAwCisxODg3IDAgMTMwMDAwMAorMzMgMCAxMzMzMDAwCis0Mjg3NiAwIDEzNjcwMDAKKzI1ODggMCAxNDAwMDAwCiszMzE2IDAgMTQzMzAwMAorMjI4NyAwIDE0NjcwMDAKKzMzNzUgMCAxNTAwMDAwCisyMTA4IDAgMTUzMzAwMAorMjk2MSAwIDE1NjcwMDAKKzE3MzAgMCAxNjAwMDAwCisxODAwIDAgMTYzMzAwMAorMzQgMCAxNjY3MDAwCis0Mzc5NyAwIDE3MDAwMDAKKzI0ODQgMCAxNzMzMDAwCisyNTU2IDAgMTc2NzAwMAorMjY3MSAwIDE4MDAwMDAKKzIzMzggMCAxODMzMDAwCiszMTMzIDAgMTg2NzAwMAorMjAwMiAwIDE5MDAwMDAKKzE3OTQgMCAxOTMzMDAwCisxMjc5IDAgMTk2NzAwMAorMzIgMCAyMDAwMDAwCis0MjY0MiAwIDIwMzMwMDAKKzI2ODYgMCAyMDY3MDAwCisyMjAyIDAgMjEwMDAwMAorMjE0NSAwIDIxMzMwMDAKKzI1NjYgMCAyMTY3MDAwCisyMTkwIDAgMjIwMDAwMAorMTU4MCAwIDIyMzMwMDAKKzE3MTEgMCAyMjY3MDAwCis2NDggMCAyMzAwMDAwCiszMiAwIDIzMzMwMDAKKzQwNDA5IDAgMjM2NzAwMAorMjYyOCAwIDI0MDAwMDAKKzE5NzMgMCAyNDMzMDAwCisyMzYwIDAgMjQ2NzAwMAorMzA0MyAwIDI1MDAwMDAKKzE3MzAgMCAyNTMzMDAwCisxNDU2IDAgMjU2NzAwMAorMjMxMiAwIDI2MDAwMDAKKzM2OSAwIDI2MzMwMDAKKzMyIDAgMjY2NzAwMAorNDEzOTEgMCAyNzAwMDAwCisyOTY3IDAgMjczMzAwMAorMjQ1NCAwIDI3NjcwMDAKKzE4MjUgMCAyODAwMDAwCisxODUzIDAgMjgzMzAwMAorMTc0NiAwIDI4NjcwMDAKKzIzNDcgMCAyOTAwMDAwCisxMzYyIDAgMjkzMzAwMAorNDQxIDAgMjk2NzAwMAorMzQgMCAzMDAwMDAwCis0MjUwMyAwIDMwMzMwMDAKKzE4NzcgMCAzMDY3MDAwCisxNjkwIDAgMzEwMDAwMAorMTM2NyAwIDMxMzMwMDAKKzE1MjAgMCAzMTY3MDAwCisxMjQwIDAgMzIwMDAwMAorMTA5NCAwIDMyMzMwMDAKKzczOSAwIDMyNjcwMDAKKzM5MiAwIDMzMDAwMDAKKzMzIDAgMzMzMzAwMAorMzUxMDQgMCAzMzY3MDAwCisxNDYzIDAgMzQwMDAwMAorMjAyOSAwIDM0MzMwMDAKKzE2MjYgMCAzNDY3MDAwCisxOTU2IDAgMzUwMDAwMAorNzk5IDAgMzUzMzAwMAorNTU2IDAgMzU2NzAwMAorNTg0IDAgMzYwMDAwMAorMTkxIDAgMzYzMzAwMAorMzYgMCAzNjY3MDAwCiszNzY1MiAwIDM3MDAwMDAKKzg2MiAwIDM3MzMwMDAKKzUyNCAwIDM3NjcwMDAKKzY0MSAwIDM4MDAwMDAKKzU4NCAwIDM4MzMwMDAKKzM2MCAwIDM4NjcwMDAKKzM2NSAwIDM5MDAwMDAKKzM2MSAwIDM5MzMwMDAKKzE1NCAwIDM5NjcwMDAKKzM2IDAgNDAwMDAwMAorMTI1NzQwIDAgNDAzMzAwMAorMzMyIDAgNDA2NzAwMAorMzgxIDAgNDEwMDAwMAorNDIwIDAgNDEzMzAwMAorNDY0IDAgNDE2NzAwMAorMjg4IDAgNDIwMDAwMAorMjY2MCAwIDQyMzMwMDAKKzEyNzU2NCAzMiA0MjY3MDAwCiszMDY5NiAwIDQzMDAwMDAKKzM0MjMgMCA0MzMzMDAwCiszMzEwIDAgNDM2NzAwMAorMzUxMyAwIDQ0MDAwMDAKKzM3MzUgMCA0NDMzMDAwCiszMzU4IDAgNDQ2NzAwMAorMzEwOCAwIDQ1MDAwMDAKKzI4MDAgMCA0NTMzMDAwCisxNzUxIDAgNDU2NzAwMAorNDEgMCA0NjAwMDAwCiszOTg2MiAwIDQ2MzMwMDAKKzM3MzkgMCA0NjY3MDAwCiszNzU1IDAgNDcwMDAwMAorMzQwOCAwIDQ3MzMwMDAKKzM3ODMgMCA0NzY3MDAwCiszNDIzIDAgNDgwMDAwMAorMjgwMSAwIDQ4MzMwMDAKKzI1NDkgMCA0ODY3MDAwCisxNDYxIDAgNDkwMDAwMAorNDAgMCA0OTMzMDAwCis0MTY2NyAwIDQ5NjcwMDAKKzM2MjMgMCA1MDAwMDAwCiszMzU2IDAgNTAzMzAwMAorMzQyNCAwIDUwNjcwMDAKKzM1NDggMCA1MTAwMDAwCiszMTE5IDAgNTEzMzAwMAorMjkwNSAwIDUxNjcwMDAKKzI3NzIgMCA1MjAwMDAwCisxNjIzIDAgNTIzMzAwMAorNDMgMCA1MjY3MDAwCis0Njc4MyAwIDUzMDAwMDAKKzM0NjIgMCA1MzMzMDAwCiszNDcwIDAgNTM2NzAwMAorMzY3NyAwIDU0MDAwMDAKKzM2ODQgMCA1NDMzMDAwCiszMjY2IDAgNTQ2NzAwMAorMzEyNyAwIDU1MDAwMDAKKzI4MDkgMCA1NTMzMDAwCisxNzUwIDAgNTU2NzAwMAorNDAgMCA1NjAwMDAwCis0NjIxNSAwIDU2MzMwMDAKKzM1OTkgMCA1NjY3MDAwCiszNTU4IDAgNTcwMDAwMAorMzU0NCAwIDU3MzMwMDAKKzM2MzIgMCA1NzY3MDAwCiszNTQ4IDAgNTgwMDAwMAorMjk2OCAwIDU4MzMwMDAKKzI3MTUgMCA1ODY3MDAwCisxNzI5IDAgNTkwMDAwMAorNDEgMCA1OTMzMDAwCis0NTk1OCAwIDU5NjcwMDAKKzM3NzYgMCA2MDAwMDAwCiszNTI1IDAgNjAzMzAwMAorMzY0NCAwIDYwNjcwMDAKKzM3ODYgMCA2MTAwMDAwCiszMjIyIDAgNjEzMzAwMAorMjkyMyAwIDYxNjcwMDAKKzI3NTIgMCA2MjAwMDAwCisxNTkyIDAgNjIzMzAwMAorNDEgMCA2MjY3MDAwCis0NjAzMSAwIDYzMDAwMDAKKzM1MjAgMCA2MzMzMDAwCiszMzgwIDAgNjM2NzAwMAorMzM3MSAwIDY0MDAwMDAKKzM0MjcgMCA2NDMzMDAwCiszMTM1IDAgNjQ2NzAwMAorMjk4OCAwIDY1MDAwMDAKKzI3MzAgMCA2NTMzMDAwCisxNjcxIDAgNjU2NzAwMAorNDEgMCA2NjAwMDAwCis0NTg0NiAwIDY2MzMwMDAKKzM1MzUgMCA2NjY3MDAwCiszNTA3IDAgNjcwMDAwMAorMzQyOSAwIDY3MzMwMDAKKzM0OTEgMCA2NzY3MDAwCiszMzI1IDAgNjgwMDAwMAorMjk3OSAwIDY4MzMwMDAKKzI4MDAgMCA2ODY3MDAwCisxNjEwIDAgNjkwMDAwMAorNDAgMCA2OTMzMDAwCis0NTk1OCAwIDY5NjcwMDAKKzM3NjIgMCA3MDAwMDAwCiszMjU0IDAgNzAzMzAwMAorMzQwOCAwIDcwNjcwMDAKKzM4NjAgMCA3MTAwMDAwCiszMTk4IDAgNzEzMzAwMAorMjk2NiAwIDcxNjcwMDAKKzI4ODIgMCA3MjAwMDAwCisxNzYzIDAgNzIzMzAwMAorNDIgMCA3MjY3MDAwCis0NjEzMCAwIDczMDAwMDAKKzM1OTMgMCA3MzMzMDAwCiszNTIzIDAgNzM2NzAwMAorMzkzOSAwIDc0MDAwMDAKKzM5ODAgMCA3NDMzMDAwCiszNDcwIDAgNzQ2NzAwMAorMzE5MSAwIDc1MDAwMDAKKzI5NjkgMCA3NTMzMDAwCisxNzQwIDAgNzU2NzAwMAorNDEgMCA3NjAwMDAwCis0NjMwMCAwIDc2MzMwMDAKKzM3MzkgMCA3NjY3MDAwCiszNzgxIDAgNzcwMDAwMAorMzk2NCAwIDc3MzMwMDAKKzQwMjMgMCA3NzY3MDAwCiszNDgwIDAgNzgwMDAwMAorMzA2NSAwIDc4MzMwMDAKKzI5MzQgMCA3ODY3MDAwCisxODA1IDAgNzkwMDAwMAorNDIgMCA3OTMzMDAwCiszODE2NiAwIDc5NjcwMDAKKzQwNjIgMCA4MDAwMDAwCiszODQ0IDAgODAzMzAwMAorNDU0NyAwIDgwNjcwMDAKKzkzNCAwIDgxMDAwMDAKKzM2NSAwIDgxMzMwMDAKKzE4MSAwIDgxNjcwMDAKKzQ2MyAwIDgyMDAwMDAKKzQxOSAwIDgyMzMwMDAKKzM4IDAgODI2NzAwMAorOTcwMiAwIDgzMDAwMDAKKzM0NCAwIDgzMzMwMDAKKzI3NiAwIDgzNjcwMDAKKzEzNTAgMCA4NDAwMDAwCisxNzAzIDAgODQzMzAwMAorMTg0MyAwIDg0NjcwMDAKKzEyMjggMCA4NTAwMDAwCiszNTU4MCAzMiA4NTMzMDAwCisyNzQ1OCAwIDg1NjcwMDAKKzIxNDQgMCA4NjAwMDAwCisyNDgyIDAgODYzMzAwMAorMjAwNCAwIDg2NjcwMDAKKzI4MjIgMCA4NzAwMDAwCisyNTcwIDAgODczMzAwMAorMTcyNiAwIDg3NjcwMDAKKzEyNDggMCA4ODAwMDAwCis4NDQgMCA4ODMzMDAwCiszNSAwIDg4NjcwMDAKKzE0MjA3IDAgODkwMDAwMAorMTAzNyAwIDg5MzMwMDAKKzc0OSAwIDg5NjcwMDAKKzgyOSAwIDkwMDAwMDAKKzkxNSAwIDkwMzMwMDAKKzY4NSAwIDkwNjcwMDAKKzc2NyAwIDkxMDAwMDAKKzc5OCAwIDkxMzMwMDAKKzM0MiAwIDkxNjcwMDAKKzMxIDAgOTIwMDAwMAorMTI1OTAgMCA5MjMzMDAwCis5MjMgMCA5MjY3MDAwCis4MTkgMCA5MzAwMDAwCis3NzYgMCA5MzMzMDAwCis4NjMgMCA5MzY3MDAwCis3MjkgMCA5NDAwMDAwCis0NzEgMCA5NDMzMDAwCis2MzggMCA5NDY3MDAwCisyNzYgMCA5NTAwMDAwCiszOCAwIDk1MzMwMDAKKzE3MjcyIDAgOTU2NzAwMAorODU2IDAgOTYwMDAwMAorMTE1OCAwIDk2MzMwMDAKKzIxNzIgMCA5NjY3MDAwCisyNzUxIDAgOTcwMDAwMAorMjE0MiAwIDk3MzMwMDAKKzEyNjcgMCA5NzY3MDAwCisxOTY1IDAgOTgwMDAwMAorMTUxMCAwIDk4MzMwMDAKKzM0IDAgOTg2NzAwMAorMjY5MiAwIDk5MDAwMDAKKzI3NzggMCA5OTMzMDAwCisyNTg1IDAgOTk2NzAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl92cDlfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy52cDkgYi9tZWRpYS9yZXMvYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLnZwOQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWUyMDAxCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl92cDlfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy52cDkKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL3NpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouYW1ybmIgYi9tZWRpYS9yZXMvc2luZV9hbXJuYl8xY2hfMTJrYnBzXzgwMDBoei5hbXJuYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGFmMmUwCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL3NpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouYW1ybmIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL3NpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouaW5mbyBiL21lZGlhL3Jlcy9zaW5lX2Ftcm5iXzFjaF8xMmticHNfODAwMGh6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDY0ZTk1ZgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9zaW5lX2Ftcm5iXzFjaF8xMmticHNfODAwMGh6LmluZm8KQEAgLTAsMCArMSw4MzMgQEAKKzMyIDMyIDAKKzMyIDMyIDIwMDAwCiszMiAzMiA0MDAwMAorMzIgMzIgNjAwMDAKKzMyIDMyIDgwMDAwCiszMiAzMiAxMDAwMDAKKzMyIDMyIDEyMDAwMAorMzIgMzIgMTQwMDAwCiszMiAzMiAxNjAwMDAKKzMyIDMyIDE4MDAwMAorMzIgMzIgMjAwMDAwCiszMiAzMiAyMjAwMDAKKzMyIDMyIDI0MDAwMAorMzIgMzIgMjYwMDAwCiszMiAzMiAyODAwMDAKKzMyIDMyIDMwMDAwMAorMzIgMzIgMzIwMDAwCiszMiAzMiAzNDAwMDAKKzMyIDMyIDM2MDAwMAorMzIgMzIgMzgwMDAwCiszMiAzMiA0MDAwMDAKKzMyIDMyIDQyMDAwMAorMzIgMzIgNDQwMDAwCiszMiAzMiA0NjAwMDAKKzMyIDMyIDQ4MDAwMAorMzIgMzIgNTAwMDAwCiszMiAzMiA1MjAwMDAKKzMyIDMyIDU0MDAwMAorMzIgMzIgNTYwMDAwCiszMiAzMiA1ODAwMDAKKzMyIDMyIDYwMDAwMAorMzIgMzIgNjIwMDAwCiszMiAzMiA2NDAwMDAKKzMyIDMyIDY2MDAwMAorMzIgMzIgNjgwMDAwCiszMiAzMiA3MDAwMDAKKzMyIDMyIDcyMDAwMAorMzIgMzIgNzQwMDAwCiszMiAzMiA3NjAwMDAKKzMyIDMyIDc4MDAwMAorMzIgMzIgODAwMDAwCiszMiAzMiA4MjAwMDAKKzMyIDMyIDg0MDAwMAorMzIgMzIgODYwMDAwCiszMiAzMiA4ODAwMDAKKzMyIDMyIDkwMDAwMAorMzIgMzIgOTIwMDAwCiszMiAzMiA5NDAwMDAKKzMyIDMyIDk2MDAwMAorMzIgMzIgOTgwMDAwCiszMiAzMiAxMDAwMDAwCiszMiAzMiAxMDIwMDAwCiszMiAzMiAxMDQwMDAwCiszMiAzMiAxMDYwMDAwCiszMiAzMiAxMDgwMDAwCiszMiAzMiAxMTAwMDAwCiszMiAzMiAxMTIwMDAwCiszMiAzMiAxMTQwMDAwCiszMiAzMiAxMTYwMDAwCiszMiAzMiAxMTgwMDAwCiszMiAzMiAxMjAwMDAwCiszMiAzMiAxMjIwMDAwCiszMiAzMiAxMjQwMDAwCiszMiAzMiAxMjYwMDAwCiszMiAzMiAxMjgwMDAwCiszMiAzMiAxMzAwMDAwCiszMiAzMiAxMzIwMDAwCiszMiAzMiAxMzQwMDAwCiszMiAzMiAxMzYwMDAwCiszMiAzMiAxMzgwMDAwCiszMiAzMiAxNDAwMDAwCiszMiAzMiAxNDIwMDAwCiszMiAzMiAxNDQwMDAwCiszMiAzMiAxNDYwMDAwCiszMiAzMiAxNDgwMDAwCiszMiAzMiAxNTAwMDAwCiszMiAzMiAxNTIwMDAwCiszMiAzMiAxNTQwMDAwCiszMiAzMiAxNTYwMDAwCiszMiAzMiAxNTgwMDAwCiszMiAzMiAxNjAwMDAwCiszMiAzMiAxNjIwMDAwCiszMiAzMiAxNjQwMDAwCiszMiAzMiAxNjYwMDAwCiszMiAzMiAxNjgwMDAwCiszMiAzMiAxNzAwMDAwCiszMiAzMiAxNzIwMDAwCiszMiAzMiAxNzQwMDAwCiszMiAzMiAxNzYwMDAwCiszMiAzMiAxNzgwMDAwCiszMiAzMiAxODAwMDAwCiszMiAzMiAxODIwMDAwCiszMiAzMiAxODQwMDAwCiszMiAzMiAxODYwMDAwCiszMiAzMiAxODgwMDAwCiszMiAzMiAxOTAwMDAwCiszMiAzMiAxOTIwMDAwCiszMiAzMiAxOTQwMDAwCiszMiAzMiAxOTYwMDAwCiszMiAzMiAxOTgwMDAwCiszMiAzMiAyMDAwMDAwCiszMiAzMiAyMDIwMDAwCiszMiAzMiAyMDQwMDAwCiszMiAzMiAyMDYwMDAwCiszMiAzMiAyMDgwMDAwCiszMiAzMiAyMTAwMDAwCiszMiAzMiAyMTIwMDAwCiszMiAzMiAyMTQwMDAwCiszMiAzMiAyMTYwMDAwCiszMiAzMiAyMTgwMDAwCiszMiAzMiAyMjAwMDAwCiszMiAzMiAyMjIwMDAwCiszMiAzMiAyMjQwMDAwCiszMiAzMiAyMjYwMDAwCiszMiAzMiAyMjgwMDAwCiszMiAzMiAyMzAwMDAwCiszMiAzMiAyMzIwMDAwCiszMiAzMiAyMzQwMDAwCiszMiAzMiAyMzYwMDAwCiszMiAzMiAyMzgwMDAwCiszMiAzMiAyNDAwMDAwCiszMiAzMiAyNDIwMDAwCiszMiAzMiAyNDQwMDAwCiszMiAzMiAyNDYwMDAwCiszMiAzMiAyNDgwMDAwCiszMiAzMiAyNTAwMDAwCiszMiAzMiAyNTIwMDAwCiszMiAzMiAyNTQwMDAwCiszMiAzMiAyNTYwMDAwCiszMiAzMiAyNTgwMDAwCiszMiAzMiAyNjAwMDAwCiszMiAzMiAyNjIwMDAwCiszMiAzMiAyNjQwMDAwCiszMiAzMiAyNjYwMDAwCiszMiAzMiAyNjgwMDAwCiszMiAzMiAyNzAwMDAwCiszMiAzMiAyNzIwMDAwCiszMiAzMiAyNzQwMDAwCiszMiAzMiAyNzYwMDAwCiszMiAzMiAyNzgwMDAwCiszMiAzMiAyODAwMDAwCiszMiAzMiAyODIwMDAwCiszMiAzMiAyODQwMDAwCiszMiAzMiAyODYwMDAwCiszMiAzMiAyODgwMDAwCiszMiAzMiAyOTAwMDAwCiszMiAzMiAyOTIwMDAwCiszMiAzMiAyOTQwMDAwCiszMiAzMiAyOTYwMDAwCiszMiAzMiAyOTgwMDAwCiszMiAzMiAzMDAwMDAwCiszMiAzMiAzMDIwMDAwCiszMiAzMiAzMDQwMDAwCiszMiAzMiAzMDYwMDAwCiszMiAzMiAzMDgwMDAwCiszMiAzMiAzMTAwMDAwCiszMiAzMiAzMTIwMDAwCiszMiAzMiAzMTQwMDAwCiszMiAzMiAzMTYwMDAwCiszMiAzMiAzMTgwMDAwCiszMiAzMiAzMjAwMDAwCiszMiAzMiAzMjIwMDAwCiszMiAzMiAzMjQwMDAwCiszMiAzMiAzMjYwMDAwCiszMiAzMiAzMjgwMDAwCiszMiAzMiAzMzAwMDAwCiszMiAzMiAzMzIwMDAwCiszMiAzMiAzMzQwMDAwCiszMiAzMiAzMzYwMDAwCiszMiAzMiAzMzgwMDAwCiszMiAzMiAzNDAwMDAwCiszMiAzMiAzNDIwMDAwCiszMiAzMiAzNDQwMDAwCiszMiAzMiAzNDYwMDAwCiszMiAzMiAzNDgwMDAwCiszMiAzMiAzNTAwMDAwCiszMiAzMiAzNTIwMDAwCiszMiAzMiAzNTQwMDAwCiszMiAzMiAzNTYwMDAwCiszMiAzMiAzNTgwMDAwCiszMiAzMiAzNjAwMDAwCiszMiAzMiAzNjIwMDAwCiszMiAzMiAzNjQwMDAwCiszMiAzMiAzNjYwMDAwCiszMiAzMiAzNjgwMDAwCiszMiAzMiAzNzAwMDAwCiszMiAzMiAzNzIwMDAwCiszMiAzMiAzNzQwMDAwCiszMiAzMiAzNzYwMDAwCiszMiAzMiAzNzgwMDAwCiszMiAzMiAzODAwMDAwCiszMiAzMiAzODIwMDAwCiszMiAzMiAzODQwMDAwCiszMiAzMiAzODYwMDAwCiszMiAzMiAzODgwMDAwCiszMiAzMiAzOTAwMDAwCiszMiAzMiAzOTIwMDAwCiszMiAzMiAzOTQwMDAwCiszMiAzMiAzOTYwMDAwCiszMiAzMiAzOTgwMDAwCiszMiAzMiA0MDAwMDAwCiszMiAzMiA0MDIwMDAwCiszMiAzMiA0MDQwMDAwCiszMiAzMiA0MDYwMDAwCiszMiAzMiA0MDgwMDAwCiszMiAzMiA0MTAwMDAwCiszMiAzMiA0MTIwMDAwCiszMiAzMiA0MTQwMDAwCiszMiAzMiA0MTYwMDAwCiszMiAzMiA0MTgwMDAwCiszMiAzMiA0MjAwMDAwCiszMiAzMiA0MjIwMDAwCiszMiAzMiA0MjQwMDAwCiszMiAzMiA0MjYwMDAwCiszMiAzMiA0MjgwMDAwCiszMiAzMiA0MzAwMDAwCiszMiAzMiA0MzIwMDAwCiszMiAzMiA0MzQwMDAwCiszMiAzMiA0MzYwMDAwCiszMiAzMiA0MzgwMDAwCiszMiAzMiA0NDAwMDAwCiszMiAzMiA0NDIwMDAwCiszMiAzMiA0NDQwMDAwCiszMiAzMiA0NDYwMDAwCiszMiAzMiA0NDgwMDAwCiszMiAzMiA0NTAwMDAwCiszMiAzMiA0NTIwMDAwCiszMiAzMiA0NTQwMDAwCiszMiAzMiA0NTYwMDAwCiszMiAzMiA0NTgwMDAwCiszMiAzMiA0NjAwMDAwCiszMiAzMiA0NjIwMDAwCiszMiAzMiA0NjQwMDAwCiszMiAzMiA0NjYwMDAwCiszMiAzMiA0NjgwMDAwCiszMiAzMiA0NzAwMDAwCiszMiAzMiA0NzIwMDAwCiszMiAzMiA0NzQwMDAwCiszMiAzMiA0NzYwMDAwCiszMiAzMiA0NzgwMDAwCiszMiAzMiA0ODAwMDAwCiszMiAzMiA0ODIwMDAwCiszMiAzMiA0ODQwMDAwCiszMiAzMiA0ODYwMDAwCiszMiAzMiA0ODgwMDAwCiszMiAzMiA0OTAwMDAwCiszMiAzMiA0OTIwMDAwCiszMiAzMiA0OTQwMDAwCiszMiAzMiA0OTYwMDAwCiszMiAzMiA0OTgwMDAwCiszMiAzMiA1MDAwMDAwCiszMiAzMiA1MDIwMDAwCiszMiAzMiA1MDQwMDAwCiszMiAzMiA1MDYwMDAwCiszMiAzMiA1MDgwMDAwCiszMiAzMiA1MTAwMDAwCiszMiAzMiA1MTIwMDAwCiszMiAzMiA1MTQwMDAwCiszMiAzMiA1MTYwMDAwCiszMiAzMiA1MTgwMDAwCiszMiAzMiA1MjAwMDAwCiszMiAzMiA1MjIwMDAwCiszMiAzMiA1MjQwMDAwCiszMiAzMiA1MjYwMDAwCiszMiAzMiA1MjgwMDAwCiszMiAzMiA1MzAwMDAwCiszMiAzMiA1MzIwMDAwCiszMiAzMiA1MzQwMDAwCiszMiAzMiA1MzYwMDAwCiszMiAzMiA1MzgwMDAwCiszMiAzMiA1NDAwMDAwCiszMiAzMiA1NDIwMDAwCiszMiAzMiA1NDQwMDAwCiszMiAzMiA1NDYwMDAwCiszMiAzMiA1NDgwMDAwCiszMiAzMiA1NTAwMDAwCiszMiAzMiA1NTIwMDAwCiszMiAzMiA1NTQwMDAwCiszMiAzMiA1NTYwMDAwCiszMiAzMiA1NTgwMDAwCiszMiAzMiA1NjAwMDAwCiszMiAzMiA1NjIwMDAwCiszMiAzMiA1NjQwMDAwCiszMiAzMiA1NjYwMDAwCiszMiAzMiA1NjgwMDAwCiszMiAzMiA1NzAwMDAwCiszMiAzMiA1NzIwMDAwCiszMiAzMiA1NzQwMDAwCiszMiAzMiA1NzYwMDAwCiszMiAzMiA1NzgwMDAwCiszMiAzMiA1ODAwMDAwCiszMiAzMiA1ODIwMDAwCiszMiAzMiA1ODQwMDAwCiszMiAzMiA1ODYwMDAwCiszMiAzMiA1ODgwMDAwCiszMiAzMiA1OTAwMDAwCiszMiAzMiA1OTIwMDAwCiszMiAzMiA1OTQwMDAwCiszMiAzMiA1OTYwMDAwCiszMiAzMiA1OTgwMDAwCiszMiAzMiA2MDAwMDAwCiszMiAzMiA2MDIwMDAwCiszMiAzMiA2MDQwMDAwCiszMiAzMiA2MDYwMDAwCiszMiAzMiA2MDgwMDAwCiszMiAzMiA2MTAwMDAwCiszMiAzMiA2MTIwMDAwCiszMiAzMiA2MTQwMDAwCiszMiAzMiA2MTYwMDAwCiszMiAzMiA2MTgwMDAwCiszMiAzMiA2MjAwMDAwCiszMiAzMiA2MjIwMDAwCiszMiAzMiA2MjQwMDAwCiszMiAzMiA2MjYwMDAwCiszMiAzMiA2MjgwMDAwCiszMiAzMiA2MzAwMDAwCiszMiAzMiA2MzIwMDAwCiszMiAzMiA2MzQwMDAwCiszMiAzMiA2MzYwMDAwCiszMiAzMiA2MzgwMDAwCiszMiAzMiA2NDAwMDAwCiszMiAzMiA2NDIwMDAwCiszMiAzMiA2NDQwMDAwCiszMiAzMiA2NDYwMDAwCiszMiAzMiA2NDgwMDAwCiszMiAzMiA2NTAwMDAwCiszMiAzMiA2NTIwMDAwCiszMiAzMiA2NTQwMDAwCiszMiAzMiA2NTYwMDAwCiszMiAzMiA2NTgwMDAwCiszMiAzMiA2NjAwMDAwCiszMiAzMiA2NjIwMDAwCiszMiAzMiA2NjQwMDAwCiszMiAzMiA2NjYwMDAwCiszMiAzMiA2NjgwMDAwCiszMiAzMiA2NzAwMDAwCiszMiAzMiA2NzIwMDAwCiszMiAzMiA2NzQwMDAwCiszMiAzMiA2NzYwMDAwCiszMiAzMiA2NzgwMDAwCiszMiAzMiA2ODAwMDAwCiszMiAzMiA2ODIwMDAwCiszMiAzMiA2ODQwMDAwCiszMiAzMiA2ODYwMDAwCiszMiAzMiA2ODgwMDAwCiszMiAzMiA2OTAwMDAwCiszMiAzMiA2OTIwMDAwCiszMiAzMiA2OTQwMDAwCiszMiAzMiA2OTYwMDAwCiszMiAzMiA2OTgwMDAwCiszMiAzMiA3MDAwMDAwCiszMiAzMiA3MDIwMDAwCiszMiAzMiA3MDQwMDAwCiszMiAzMiA3MDYwMDAwCiszMiAzMiA3MDgwMDAwCiszMiAzMiA3MTAwMDAwCiszMiAzMiA3MTIwMDAwCiszMiAzMiA3MTQwMDAwCiszMiAzMiA3MTYwMDAwCiszMiAzMiA3MTgwMDAwCiszMiAzMiA3MjAwMDAwCiszMiAzMiA3MjIwMDAwCiszMiAzMiA3MjQwMDAwCiszMiAzMiA3MjYwMDAwCiszMiAzMiA3MjgwMDAwCiszMiAzMiA3MzAwMDAwCiszMiAzMiA3MzIwMDAwCiszMiAzMiA3MzQwMDAwCiszMiAzMiA3MzYwMDAwCiszMiAzMiA3MzgwMDAwCiszMiAzMiA3NDAwMDAwCiszMiAzMiA3NDIwMDAwCiszMiAzMiA3NDQwMDAwCiszMiAzMiA3NDYwMDAwCiszMiAzMiA3NDgwMDAwCiszMiAzMiA3NTAwMDAwCiszMiAzMiA3NTIwMDAwCiszMiAzMiA3NTQwMDAwCiszMiAzMiA3NTYwMDAwCiszMiAzMiA3NTgwMDAwCiszMiAzMiA3NjAwMDAwCiszMiAzMiA3NjIwMDAwCiszMiAzMiA3NjQwMDAwCiszMiAzMiA3NjYwMDAwCiszMiAzMiA3NjgwMDAwCiszMiAzMiA3NzAwMDAwCiszMiAzMiA3NzIwMDAwCiszMiAzMiA3NzQwMDAwCiszMiAzMiA3NzYwMDAwCiszMiAzMiA3NzgwMDAwCiszMiAzMiA3ODAwMDAwCiszMiAzMiA3ODIwMDAwCiszMiAzMiA3ODQwMDAwCiszMiAzMiA3ODYwMDAwCiszMiAzMiA3ODgwMDAwCiszMiAzMiA3OTAwMDAwCiszMiAzMiA3OTIwMDAwCiszMiAzMiA3OTQwMDAwCiszMiAzMiA3OTYwMDAwCiszMiAzMiA3OTgwMDAwCiszMiAzMiA4MDAwMDAwCiszMiAzMiA4MDIwMDAwCiszMiAzMiA4MDQwMDAwCiszMiAzMiA4MDYwMDAwCiszMiAzMiA4MDgwMDAwCiszMiAzMiA4MTAwMDAwCiszMiAzMiA4MTIwMDAwCiszMiAzMiA4MTQwMDAwCiszMiAzMiA4MTYwMDAwCiszMiAzMiA4MTgwMDAwCiszMiAzMiA4MjAwMDAwCiszMiAzMiA4MjIwMDAwCiszMiAzMiA4MjQwMDAwCiszMiAzMiA4MjYwMDAwCiszMiAzMiA4MjgwMDAwCiszMiAzMiA4MzAwMDAwCiszMiAzMiA4MzIwMDAwCiszMiAzMiA4MzQwMDAwCiszMiAzMiA4MzYwMDAwCiszMiAzMiA4MzgwMDAwCiszMiAzMiA4NDAwMDAwCiszMiAzMiA4NDIwMDAwCiszMiAzMiA4NDQwMDAwCiszMiAzMiA4NDYwMDAwCiszMiAzMiA4NDgwMDAwCiszMiAzMiA4NTAwMDAwCiszMiAzMiA4NTIwMDAwCiszMiAzMiA4NTQwMDAwCiszMiAzMiA4NTYwMDAwCiszMiAzMiA4NTgwMDAwCiszMiAzMiA4NjAwMDAwCiszMiAzMiA4NjIwMDAwCiszMiAzMiA4NjQwMDAwCiszMiAzMiA4NjYwMDAwCiszMiAzMiA4NjgwMDAwCiszMiAzMiA4NzAwMDAwCiszMiAzMiA4NzIwMDAwCiszMiAzMiA4NzQwMDAwCiszMiAzMiA4NzYwMDAwCiszMiAzMiA4NzgwMDAwCiszMiAzMiA4ODAwMDAwCiszMiAzMiA4ODIwMDAwCiszMiAzMiA4ODQwMDAwCiszMiAzMiA4ODYwMDAwCiszMiAzMiA4ODgwMDAwCiszMiAzMiA4OTAwMDAwCiszMiAzMiA4OTIwMDAwCiszMiAzMiA4OTQwMDAwCiszMiAzMiA4OTYwMDAwCiszMiAzMiA4OTgwMDAwCiszMiAzMiA5MDAwMDAwCiszMiAzMiA5MDIwMDAwCiszMiAzMiA5MDQwMDAwCiszMiAzMiA5MDYwMDAwCiszMiAzMiA5MDgwMDAwCiszMiAzMiA5MTAwMDAwCiszMiAzMiA5MTIwMDAwCiszMiAzMiA5MTQwMDAwCiszMiAzMiA5MTYwMDAwCiszMiAzMiA5MTgwMDAwCiszMiAzMiA5MjAwMDAwCiszMiAzMiA5MjIwMDAwCiszMiAzMiA5MjQwMDAwCiszMiAzMiA5MjYwMDAwCiszMiAzMiA5MjgwMDAwCiszMiAzMiA5MzAwMDAwCiszMiAzMiA5MzIwMDAwCiszMiAzMiA5MzQwMDAwCiszMiAzMiA5MzYwMDAwCiszMiAzMiA5MzgwMDAwCiszMiAzMiA5NDAwMDAwCiszMiAzMiA5NDIwMDAwCiszMiAzMiA5NDQwMDAwCiszMiAzMiA5NDYwMDAwCiszMiAzMiA5NDgwMDAwCiszMiAzMiA5NTAwMDAwCiszMiAzMiA5NTIwMDAwCiszMiAzMiA5NTQwMDAwCiszMiAzMiA5NTYwMDAwCiszMiAzMiA5NTgwMDAwCiszMiAzMiA5NjAwMDAwCiszMiAzMiA5NjIwMDAwCiszMiAzMiA5NjQwMDAwCiszMiAzMiA5NjYwMDAwCiszMiAzMiA5NjgwMDAwCiszMiAzMiA5NzAwMDAwCiszMiAzMiA5NzIwMDAwCiszMiAzMiA5NzQwMDAwCiszMiAzMiA5NzYwMDAwCiszMiAzMiA5NzgwMDAwCiszMiAzMiA5ODAwMDAwCiszMiAzMiA5ODIwMDAwCiszMiAzMiA5ODQwMDAwCiszMiAzMiA5ODYwMDAwCiszMiAzMiA5ODgwMDAwCiszMiAzMiA5OTAwMDAwCiszMiAzMiA5OTIwMDAwCiszMiAzMiA5OTQwMDAwCiszMiAzMiA5OTYwMDAwCiszMiAzMiA5OTgwMDAwCiszMiAzMiAxMDAwMDAwMAorMzIgMzIgMTAwMjAwMDAKKzMyIDMyIDEwMDQwMDAwCiszMiAzMiAxMDA2MDAwMAorMzIgMzIgMTAwODAwMDAKKzMyIDMyIDEwMTAwMDAwCiszMiAzMiAxMDEyMDAwMAorMzIgMzIgMTAxNDAwMDAKKzMyIDMyIDEwMTYwMDAwCiszMiAzMiAxMDE4MDAwMAorMzIgMzIgMTAyMDAwMDAKKzMyIDMyIDEwMjIwMDAwCiszMiAzMiAxMDI0MDAwMAorMzIgMzIgMTAyNjAwMDAKKzMyIDMyIDEwMjgwMDAwCiszMiAzMiAxMDMwMDAwMAorMzIgMzIgMTAzMjAwMDAKKzMyIDMyIDEwMzQwMDAwCiszMiAzMiAxMDM2MDAwMAorMzIgMzIgMTAzODAwMDAKKzMyIDMyIDEwNDAwMDAwCiszMiAzMiAxMDQyMDAwMAorMzIgMzIgMTA0NDAwMDAKKzMyIDMyIDEwNDYwMDAwCiszMiAzMiAxMDQ4MDAwMAorMzIgMzIgMTA1MDAwMDAKKzMyIDMyIDEwNTIwMDAwCiszMiAzMiAxMDU0MDAwMAorMzIgMzIgMTA1NjAwMDAKKzMyIDMyIDEwNTgwMDAwCiszMiAzMiAxMDYwMDAwMAorMzIgMzIgMTA2MjAwMDAKKzMyIDMyIDEwNjQwMDAwCiszMiAzMiAxMDY2MDAwMAorMzIgMzIgMTA2ODAwMDAKKzMyIDMyIDEwNzAwMDAwCiszMiAzMiAxMDcyMDAwMAorMzIgMzIgMTA3NDAwMDAKKzMyIDMyIDEwNzYwMDAwCiszMiAzMiAxMDc4MDAwMAorMzIgMzIgMTA4MDAwMDAKKzMyIDMyIDEwODIwMDAwCiszMiAzMiAxMDg0MDAwMAorMzIgMzIgMTA4NjAwMDAKKzMyIDMyIDEwODgwMDAwCiszMiAzMiAxMDkwMDAwMAorMzIgMzIgMTA5MjAwMDAKKzMyIDMyIDEwOTQwMDAwCiszMiAzMiAxMDk2MDAwMAorMzIgMzIgMTA5ODAwMDAKKzMyIDMyIDExMDAwMDAwCiszMiAzMiAxMTAyMDAwMAorMzIgMzIgMTEwNDAwMDAKKzMyIDMyIDExMDYwMDAwCiszMiAzMiAxMTA4MDAwMAorMzIgMzIgMTExMDAwMDAKKzMyIDMyIDExMTIwMDAwCiszMiAzMiAxMTE0MDAwMAorMzIgMzIgMTExNjAwMDAKKzMyIDMyIDExMTgwMDAwCiszMiAzMiAxMTIwMDAwMAorMzIgMzIgMTEyMjAwMDAKKzMyIDMyIDExMjQwMDAwCiszMiAzMiAxMTI2MDAwMAorMzIgMzIgMTEyODAwMDAKKzMyIDMyIDExMzAwMDAwCiszMiAzMiAxMTMyMDAwMAorMzIgMzIgMTEzNDAwMDAKKzMyIDMyIDExMzYwMDAwCiszMiAzMiAxMTM4MDAwMAorMzIgMzIgMTE0MDAwMDAKKzMyIDMyIDExNDIwMDAwCiszMiAzMiAxMTQ0MDAwMAorMzIgMzIgMTE0NjAwMDAKKzMyIDMyIDExNDgwMDAwCiszMiAzMiAxMTUwMDAwMAorMzIgMzIgMTE1MjAwMDAKKzMyIDMyIDExNTQwMDAwCiszMiAzMiAxMTU2MDAwMAorMzIgMzIgMTE1ODAwMDAKKzMyIDMyIDExNjAwMDAwCiszMiAzMiAxMTYyMDAwMAorMzIgMzIgMTE2NDAwMDAKKzMyIDMyIDExNjYwMDAwCiszMiAzMiAxMTY4MDAwMAorMzIgMzIgMTE3MDAwMDAKKzMyIDMyIDExNzIwMDAwCiszMiAzMiAxMTc0MDAwMAorMzIgMzIgMTE3NjAwMDAKKzMyIDMyIDExNzgwMDAwCiszMiAzMiAxMTgwMDAwMAorMzIgMzIgMTE4MjAwMDAKKzMyIDMyIDExODQwMDAwCiszMiAzMiAxMTg2MDAwMAorMzIgMzIgMTE4ODAwMDAKKzMyIDMyIDExOTAwMDAwCiszMiAzMiAxMTkyMDAwMAorMzIgMzIgMTE5NDAwMDAKKzMyIDMyIDExOTYwMDAwCiszMiAzMiAxMTk4MDAwMAorMzIgMzIgMTIwMDAwMDAKKzMyIDMyIDEyMDIwMDAwCiszMiAzMiAxMjA0MDAwMAorMzIgMzIgMTIwNjAwMDAKKzMyIDMyIDEyMDgwMDAwCiszMiAzMiAxMjEwMDAwMAorMzIgMzIgMTIxMjAwMDAKKzMyIDMyIDEyMTQwMDAwCiszMiAzMiAxMjE2MDAwMAorMzIgMzIgMTIxODAwMDAKKzMyIDMyIDEyMjAwMDAwCiszMiAzMiAxMjIyMDAwMAorMzIgMzIgMTIyNDAwMDAKKzMyIDMyIDEyMjYwMDAwCiszMiAzMiAxMjI4MDAwMAorMzIgMzIgMTIzMDAwMDAKKzMyIDMyIDEyMzIwMDAwCiszMiAzMiAxMjM0MDAwMAorMzIgMzIgMTIzNjAwMDAKKzMyIDMyIDEyMzgwMDAwCiszMiAzMiAxMjQwMDAwMAorMzIgMzIgMTI0MjAwMDAKKzMyIDMyIDEyNDQwMDAwCiszMiAzMiAxMjQ2MDAwMAorMzIgMzIgMTI0ODAwMDAKKzMyIDMyIDEyNTAwMDAwCiszMiAzMiAxMjUyMDAwMAorMzIgMzIgMTI1NDAwMDAKKzMyIDMyIDEyNTYwMDAwCiszMiAzMiAxMjU4MDAwMAorMzIgMzIgMTI2MDAwMDAKKzMyIDMyIDEyNjIwMDAwCiszMiAzMiAxMjY0MDAwMAorMzIgMzIgMTI2NjAwMDAKKzMyIDMyIDEyNjgwMDAwCiszMiAzMiAxMjcwMDAwMAorMzIgMzIgMTI3MjAwMDAKKzMyIDMyIDEyNzQwMDAwCiszMiAzMiAxMjc2MDAwMAorMzIgMzIgMTI3ODAwMDAKKzMyIDMyIDEyODAwMDAwCiszMiAzMiAxMjgyMDAwMAorMzIgMzIgMTI4NDAwMDAKKzMyIDMyIDEyODYwMDAwCiszMiAzMiAxMjg4MDAwMAorMzIgMzIgMTI5MDAwMDAKKzMyIDMyIDEyOTIwMDAwCiszMiAzMiAxMjk0MDAwMAorMzIgMzIgMTI5NjAwMDAKKzMyIDMyIDEyOTgwMDAwCiszMiAzMiAxMzAwMDAwMAorMzIgMzIgMTMwMjAwMDAKKzMyIDMyIDEzMDQwMDAwCiszMiAzMiAxMzA2MDAwMAorMzIgMzIgMTMwODAwMDAKKzMyIDMyIDEzMTAwMDAwCiszMiAzMiAxMzEyMDAwMAorMzIgMzIgMTMxNDAwMDAKKzMyIDMyIDEzMTYwMDAwCiszMiAzMiAxMzE4MDAwMAorMzIgMzIgMTMyMDAwMDAKKzMyIDMyIDEzMjIwMDAwCiszMiAzMiAxMzI0MDAwMAorMzIgMzIgMTMyNjAwMDAKKzMyIDMyIDEzMjgwMDAwCiszMiAzMiAxMzMwMDAwMAorMzIgMzIgMTMzMjAwMDAKKzMyIDMyIDEzMzQwMDAwCiszMiAzMiAxMzM2MDAwMAorMzIgMzIgMTMzODAwMDAKKzMyIDMyIDEzNDAwMDAwCiszMiAzMiAxMzQyMDAwMAorMzIgMzIgMTM0NDAwMDAKKzMyIDMyIDEzNDYwMDAwCiszMiAzMiAxMzQ4MDAwMAorMzIgMzIgMTM1MDAwMDAKKzMyIDMyIDEzNTIwMDAwCiszMiAzMiAxMzU0MDAwMAorMzIgMzIgMTM1NjAwMDAKKzMyIDMyIDEzNTgwMDAwCiszMiAzMiAxMzYwMDAwMAorMzIgMzIgMTM2MjAwMDAKKzMyIDMyIDEzNjQwMDAwCiszMiAzMiAxMzY2MDAwMAorMzIgMzIgMTM2ODAwMDAKKzMyIDMyIDEzNzAwMDAwCiszMiAzMiAxMzcyMDAwMAorMzIgMzIgMTM3NDAwMDAKKzMyIDMyIDEzNzYwMDAwCiszMiAzMiAxMzc4MDAwMAorMzIgMzIgMTM4MDAwMDAKKzMyIDMyIDEzODIwMDAwCiszMiAzMiAxMzg0MDAwMAorMzIgMzIgMTM4NjAwMDAKKzMyIDMyIDEzODgwMDAwCiszMiAzMiAxMzkwMDAwMAorMzIgMzIgMTM5MjAwMDAKKzMyIDMyIDEzOTQwMDAwCiszMiAzMiAxMzk2MDAwMAorMzIgMzIgMTM5ODAwMDAKKzMyIDMyIDE0MDAwMDAwCiszMiAzMiAxNDAyMDAwMAorMzIgMzIgMTQwNDAwMDAKKzMyIDMyIDE0MDYwMDAwCiszMiAzMiAxNDA4MDAwMAorMzIgMzIgMTQxMDAwMDAKKzMyIDMyIDE0MTIwMDAwCiszMiAzMiAxNDE0MDAwMAorMzIgMzIgMTQxNjAwMDAKKzMyIDMyIDE0MTgwMDAwCiszMiAzMiAxNDIwMDAwMAorMzIgMzIgMTQyMjAwMDAKKzMyIDMyIDE0MjQwMDAwCiszMiAzMiAxNDI2MDAwMAorMzIgMzIgMTQyODAwMDAKKzMyIDMyIDE0MzAwMDAwCiszMiAzMiAxNDMyMDAwMAorMzIgMzIgMTQzNDAwMDAKKzMyIDMyIDE0MzYwMDAwCiszMiAzMiAxNDM4MDAwMAorMzIgMzIgMTQ0MDAwMDAKKzMyIDMyIDE0NDIwMDAwCiszMiAzMiAxNDQ0MDAwMAorMzIgMzIgMTQ0NjAwMDAKKzMyIDMyIDE0NDgwMDAwCiszMiAzMiAxNDUwMDAwMAorMzIgMzIgMTQ1MjAwMDAKKzMyIDMyIDE0NTQwMDAwCiszMiAzMiAxNDU2MDAwMAorMzIgMzIgMTQ1ODAwMDAKKzMyIDMyIDE0NjAwMDAwCiszMiAzMiAxNDYyMDAwMAorMzIgMzIgMTQ2NDAwMDAKKzMyIDMyIDE0NjYwMDAwCiszMiAzMiAxNDY4MDAwMAorMzIgMzIgMTQ3MDAwMDAKKzMyIDMyIDE0NzIwMDAwCiszMiAzMiAxNDc0MDAwMAorMzIgMzIgMTQ3NjAwMDAKKzMyIDMyIDE0NzgwMDAwCiszMiAzMiAxNDgwMDAwMAorMzIgMzIgMTQ4MjAwMDAKKzMyIDMyIDE0ODQwMDAwCiszMiAzMiAxNDg2MDAwMAorMzIgMzIgMTQ4ODAwMDAKKzMyIDMyIDE0OTAwMDAwCiszMiAzMiAxNDkyMDAwMAorMzIgMzIgMTQ5NDAwMDAKKzMyIDMyIDE0OTYwMDAwCiszMiAzMiAxNDk4MDAwMAorMzIgMzIgMTUwMDAwMDAKKzMyIDMyIDE1MDIwMDAwCiszMiAzMiAxNTA0MDAwMAorMzIgMzIgMTUwNjAwMDAKKzMyIDMyIDE1MDgwMDAwCiszMiAzMiAxNTEwMDAwMAorMzIgMzIgMTUxMjAwMDAKKzMyIDMyIDE1MTQwMDAwCiszMiAzMiAxNTE2MDAwMAorMzIgMzIgMTUxODAwMDAKKzMyIDMyIDE1MjAwMDAwCiszMiAzMiAxNTIyMDAwMAorMzIgMzIgMTUyNDAwMDAKKzMyIDMyIDE1MjYwMDAwCiszMiAzMiAxNTI4MDAwMAorMzIgMzIgMTUzMDAwMDAKKzMyIDMyIDE1MzIwMDAwCiszMiAzMiAxNTM0MDAwMAorMzIgMzIgMTUzNjAwMDAKKzMyIDMyIDE1MzgwMDAwCiszMiAzMiAxNTQwMDAwMAorMzIgMzIgMTU0MjAwMDAKKzMyIDMyIDE1NDQwMDAwCiszMiAzMiAxNTQ2MDAwMAorMzIgMzIgMTU0ODAwMDAKKzMyIDMyIDE1NTAwMDAwCiszMiAzMiAxNTUyMDAwMAorMzIgMzIgMTU1NDAwMDAKKzMyIDMyIDE1NTYwMDAwCiszMiAzMiAxNTU4MDAwMAorMzIgMzIgMTU2MDAwMDAKKzMyIDMyIDE1NjIwMDAwCiszMiAzMiAxNTY0MDAwMAorMzIgMzIgMTU2NjAwMDAKKzMyIDMyIDE1NjgwMDAwCiszMiAzMiAxNTcwMDAwMAorMzIgMzIgMTU3MjAwMDAKKzMyIDMyIDE1NzQwMDAwCiszMiAzMiAxNTc2MDAwMAorMzIgMzIgMTU3ODAwMDAKKzMyIDMyIDE1ODAwMDAwCiszMiAzMiAxNTgyMDAwMAorMzIgMzIgMTU4NDAwMDAKKzMyIDMyIDE1ODYwMDAwCiszMiAzMiAxNTg4MDAwMAorMzIgMzIgMTU5MDAwMDAKKzMyIDMyIDE1OTIwMDAwCiszMiAzMiAxNTk0MDAwMAorMzIgMzIgMTU5NjAwMDAKKzMyIDMyIDE1OTgwMDAwCiszMiAzMiAxNjAwMDAwMAorMzIgMzIgMTYwMjAwMDAKKzMyIDMyIDE2MDQwMDAwCiszMiAzMiAxNjA2MDAwMAorMzIgMzIgMTYwODAwMDAKKzMyIDMyIDE2MTAwMDAwCiszMiAzMiAxNjEyMDAwMAorMzIgMzIgMTYxNDAwMDAKKzMyIDMyIDE2MTYwMDAwCiszMiAzMiAxNjE4MDAwMAorMzIgMzIgMTYyMDAwMDAKKzMyIDMyIDE2MjIwMDAwCiszMiAzMiAxNjI0MDAwMAorMzIgMzIgMTYyNjAwMDAKKzMyIDMyIDE2MjgwMDAwCiszMiAzMiAxNjMwMDAwMAorMzIgMzIgMTYzMjAwMDAKKzMyIDMyIDE2MzQwMDAwCiszMiAzMiAxNjM2MDAwMAorMzIgMzIgMTYzODAwMDAKKzMyIDMyIDE2NDAwMDAwCiszMiAzMiAxNjQyMDAwMAorMzIgMzIgMTY0NDAwMDAKKzMyIDMyIDE2NDYwMDAwCiszMiAzMiAxNjQ4MDAwMAorMzIgMzIgMTY1MDAwMDAKKzMyIDMyIDE2NTIwMDAwCiszMiAzMiAxNjU0MDAwMAorMzIgMzIgMTY1NjAwMDAKKzMyIDMyIDE2NTgwMDAwCiszMiAzMiAxNjYwMDAwMAorMzIgMzIgMTY2MjAwMDAKKzMyIDMyIDE2NjQwMDAwCmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvQW5kcm9pZC5icCBiL21lbXRyYWNrLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNmUxNmQKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDYzIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklNZW10cmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svMS4wL01lbXRyYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svMS4wL0lNZW10cmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svMS4wL0lId01lbXRyYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvQm5Id01lbXRyYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvQnBId01lbXRyYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvQnNNZW10cmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvQW5kcm9pZC5tayBiL21lbXRyYWNrLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ODNiMGEKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDIzMiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFjay1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbXRyYWNrRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja0ZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6dHlwZXMuTWVtdHJhY2tGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNZW10cmFja1JlY29yZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja1JlY29yZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja1JlY29yZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWVtdHJhY2tTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrL1YxXzAvTWVtdHJhY2tTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6dHlwZXMuTWVtdHJhY2tTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbXRyYWNrVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja1R5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6dHlwZXMuTWVtdHJhY2tUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSU1lbXRyYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL0lNZW10cmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSU1lbXRyYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA6OklNZW10cmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSU1lbXRyYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFjay1WMS4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbXRyYWNrRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja0ZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6dHlwZXMuTWVtdHJhY2tGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNZW10cmFja1JlY29yZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja1JlY29yZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja1JlY29yZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWVtdHJhY2tTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrL1YxXzAvTWVtdHJhY2tTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6dHlwZXMuTWVtdHJhY2tTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbXRyYWNrVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja1R5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6dHlwZXMuTWVtdHJhY2tUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSU1lbXRyYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL0lNZW10cmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSU1lbXRyYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA6OklNZW10cmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSU1lbXRyYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvbWVtdHJhY2svMS4wL0lNZW10cmFjay5oYWwgYi9tZW10cmFjay8xLjAvSU1lbXRyYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzI5MDMyCi0tLSAvZGV2L251bGwKKysrIGIvbWVtdHJhY2svMS4wL0lNZW10cmFjay5oYWwKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA7CisKKy8qKgorICogVGhlIE1lbW9yeSBUcmFja2VyIEhBTCBpcyBkZXNpZ25lZCB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQKKyAqIGRldmljZS1zcGVjaWZpYyBtZW1vcnkgdXNhZ2UuCisgKiBUaGUgcHJpbWFyeSBnb2FsIGlzIHRvIGJlIGFibGUgdG8gdHJhY2sgbWVtb3J5IHRoYXQgaXMgbm90CisgKiB0cmFja2FibGUgaW4gYW55IG90aGVyIHdheSwgZm9yIGV4YW1wbGUgdGV4dHVyZSBtZW1vcnkgdGhhdCBpcyBhbGxvY2F0ZWQgYnkKKyAqIGEgcHJvY2VzcywgYnV0IG5vdCBtYXBwZWQgaW4gdG8gdGhhdCBwcm9jZXNzJ3MgYWRkcmVzcyBzcGFjZS4KKyAqIEEgc2Vjb25kYXJ5IGdvYWwgaXMgdG8gYmUgYWJsZSB0byBjYXRlZ29yaXplIG1lbW9yeSB1c2VkIGJ5IGEgcHJvY2VzcyBpbnRvCisgKiBHTCwgZ3JhcGhpY3MsIGV0Yy4gQWxsIG1lbW9yeSBzaXplcyBtdXN0IGJlIGluIHJlYWwgbWVtb3J5IHVzYWdlLAorICogYWNjb3VudGluZyBmb3Igc3RyaWRlLCBiaXQgZGVwdGgsIHJvdW5kaW5nIHVwIHRvIHBhZ2Ugc2l6ZSwgZXRjLgorICoKKyAqIENvbnN0cnVjdG9yIGZvciB0aGUgaW50ZXJmYWNlIHNob3VsZCBiZSB1c2VkIHRvIHBlcmZvcm0gbWVtdHJhY2sgbWFuYWdlbWVudAorICogc2V0dXAgYWN0aW9ucyBhbmQgaXMgY2FsbGVkIG9uY2UgYmVmb3JlIGFueSBjYWxscyB0byBnZXRNZW1vcnkoKS4KKyAqLworaW50ZXJmYWNlIElNZW10cmFjayB7CisgICAgLyoqCisgICAgICogZ2V0TWVtb3J5KCkgcG9wdWxhdGVzIE1lbXRyYWNrUmVjb3JkIHZlY3RvciB3aXRoIHRoZSBzaXplcyBvZiBtZW1vcnkKKyAgICAgKiBwbHVzIGFzc29jaWF0ZWQgZmxhZ3MgZm9yIHRoYXQgbWVtb3J5LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIHRocmVhZC1zYWZlLCBpdCBtYXkgZ2V0IGNhbGxlZCBmcm9tIG11bHRpcGxlCisgICAgICogdGhyZWFkcyBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAqCisgICAgICogQSBwcm9jZXNzIGNvbGxlY3RpbmcgbWVtb3J5IHN0YXRpc3RpY3Mgd2lsbCBjYWxsIGdldE1lbW9yeSBmb3IgZWFjaAorICAgICAqIGNvbWJpbmF0aW9uIG9mIHBpZCBhbmQgbWVtb3J5IHR5cGUuIEZvciBlYWNoIG1lbW9yeSB0eXBlIHRoYXQgaXQKKyAgICAgKiByZWNvZ25pemVzLCB0aGUgSEFMIG11c3QgZmlsbCBvdXQgYW4gYXJyYXkgb2YgbWVtdHJhY2tfcmVjb3JkCisgICAgICogc3RydWN0dXJlcyBicmVha2luZyBkb3duIHRoZSBzdGF0aXN0aWNzIG9mIHRoYXQgbWVtb3J5IHR5cGUgYXMgbXVjaCBhcworICAgICAqIHBvc3NpYmxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBnZXRNZW1vcnkoPHBpZD4sIEdMKSBtaWdodCByZXR1cm46CisgICAgICogeyB7IDQwOTYsICBBQ0NPVU5URUQgfCBQUklWQVRFIHwgU1lTVEVNIH0sCisgICAgICogICB7IDQwOTYwLCBVTkFDQ09VTlRFRCB8IFBSSVZBVEUgfCBTWVNURU0gfSwKKyAgICAgKiAgIHsgODE5MiwgIEFDQ09VTlRFRCB8IFBSSVZBVEUgfCBERURJQ0FURUQgfSwKKyAgICAgKiAgIHsgODE5MiwgIFVOQUNDT1VOVEVEIHwgUFJJVkFURSB8IERFRElDQVRFRCB9IH0KKyAgICAgKiBJZiB0aGUgSEFMIGNhbm5vdCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gU1lTVEVNIGFuZCBERURJQ0FURUQgbWVtb3J5LCBpdAorICAgICAqIGNvdWxkIHJldHVybjoKKyAgICAgKiB7IHsgMTIyODgsICBBQ0NPVU5URUQgfCBQUklWQVRFIH0sCisgICAgICogICB7IDQ5MTUyLCAgVU5BQ0NPVU5URUQgfCBQUklWQVRFIH0gfQorICAgICAqCisgICAgICogTWVtb3J5IG11c3Qgbm90IG92ZXJsYXAgYmV0d2VlbiB0eXBlcy4gRm9yIGV4YW1wbGUsIGEgZ3JhcGhpY3MgYnVmZmVyCisgICAgICogdGhhdCBoYXMgYmVlbiBtYXBwZWQgaW50byB0aGUgR1BVIGFzIGEgc3VyZmFjZSBtdXN0IHNob3cgdXAgd2hlbgorICAgICAqIEdSQVBISUNTIGlzIHJlcXVlc3RlZCBhbmQgbm90IHdoZW4gR0wKKyAgICAgKiBpcyByZXF1ZXN0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGlkIHByb2Nlc3MgZm9yIHdoaWNoIG1lbW9yeSBpbmZvcm1hdGlvbiBpcyByZXF1ZXN0ZWQKKyAgICAgKiBAcGFyYW0gdHlwZSBtZW1vcnkgdHlwZSB0aGF0IGluZm9ybWF0aW9uIGlzIGJlaW5nIHJlcXVlc3RlZCBhYm91dAorICAgICAqIEByZXR1cm4gcmVjb3JkcyB2ZWN0b3Igb2YgTWVtdHJhY2tSZWNvcmQgY29udGFpbmluZyBtZW1vcnkgaW5mb3JtYXRpb24KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBTVUNDRVNTIG9uIHN1Y2Nlc3MsIFRZUEVfTk9UX0ZPVU5EIGlmIHRoZSB0eXBlIGlzIG5vdAorICAgICAqIHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBnZXRNZW1vcnkoaW50MzJfdCBwaWQsIE1lbXRyYWNrVHlwZSB0eXBlKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChNZW10cmFja1N0YXR1cyByZXR2YWwsIHZlYzxNZW10cmFja1JlY29yZD4gcmVjb3Jkcyk7Cit9OwpkaWZmIC0tZ2l0IGEvbWVtdHJhY2svMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZkN2ZjOAotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1MyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIk1lbXRyYWNrLmNwcCJdLAorCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAiLAorICAgIF0sCisKK30KKworY2NfYmluYXJ5IHsKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMC1zZXJ2aWNlIiwKKyAgICBpbml0X3JjOiBbImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wLXNlcnZpY2UucmMiXSwKKyAgICBzcmNzOiBbInNlcnZpY2UuY3BwIl0sCisKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliZGwiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMCIsCisgICAgXSwKKworfQpkaWZmIC0tZ2l0IGEvbWVtdHJhY2svMS4wL2RlZmF1bHQvTWVtdHJhY2suY3BwIGIvbWVtdHJhY2svMS4wL2RlZmF1bHQvTWVtdHJhY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzYTY5MDYKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvZGVmYXVsdC9NZW10cmFjay5jcHAKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wLWltcGwiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL21lbXRyYWNrLmg+CisKKyNpbmNsdWRlICJNZW10cmFjay5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIG1lbXRyYWNrIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK01lbXRyYWNrOjpNZW10cmFjayhjb25zdCBtZW10cmFja19tb2R1bGVfdCAqbW9kdWxlKSA6IG1Nb2R1bGUobW9kdWxlKSB7CisgICAgaWYgKG1Nb2R1bGUpCisgICAgICAgIG1Nb2R1bGUtPmluaXQobU1vZHVsZSk7Cit9CisKK01lbXRyYWNrOjp+TWVtdHJhY2soKSB7CisgICAgZGVsZXRlKG1Nb2R1bGUpOworfQorCitSZXR1cm48dm9pZD4gTWVtdHJhY2s6OmdldE1lbW9yeShpbnQzMl90IHBpZCwgTWVtdHJhY2tUeXBlIHR5cGUsCisgICAgICAgIGdldE1lbW9yeV9jYiBfaGlkbF9jYikgIHsKKyAgICBoaWRsX3ZlYzxNZW10cmFja1JlY29yZD4gcmVjb3JkczsKKyAgICBzaXplX3QgdGVtcCA9IDA7CisgICAgc2l6ZV90ICpzaXplID0gJnRlbXA7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAobU1vZHVsZS0+Z2V0TWVtb3J5ID09IG51bGxwdHIpCisgICAgeworICAgICAgICBfaGlkbF9jYihNZW10cmFja1N0YXR1czo6U1VDQ0VTUywgcmVjb3Jkcyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIHJldCA9IG1Nb2R1bGUtPmdldE1lbW9yeShtTW9kdWxlLCBwaWQsIHN0YXRpY19jYXN0PG1lbXRyYWNrX3R5cGU+KHR5cGUpLAorICAgICAgICAgICAgTlVMTCwgc2l6ZSk7CisgICAgaWYgKHJldCA9PSAwKQorICAgIHsKKyAgICAgICAgbWVtdHJhY2tfcmVjb3JkICpsZWdhY3lfcmVjb3JkcyA9IG5ldyBtZW10cmFja19yZWNvcmRbKnNpemVdOworICAgICAgICByZXQgPSBtTW9kdWxlLT5nZXRNZW1vcnkobU1vZHVsZSwgcGlkLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PG1lbXRyYWNrX3R5cGU+KHR5cGUpLCBsZWdhY3lfcmVjb3Jkcywgc2l6ZSk7CisgICAgICAgIGlmIChyZXQgPT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVjb3Jkcy5yZXNpemUoKnNpemUpOworICAgICAgICAgICAgZm9yKHNpemVfdCBpID0gMDsgaSA8ICpzaXplOyBpKyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmVjb3Jkc1tpXS5zaXplSW5CeXRlcyA9IGxlZ2FjeV9yZWNvcmRzW2ldLnNpemVfaW5fYnl0ZXM7CisgICAgICAgICAgICAgICAgcmVjb3Jkc1tpXS5mbGFncyA9IGxlZ2FjeV9yZWNvcmRzW2ldLmZsYWdzOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRlbGV0ZVtdIGxlZ2FjeV9yZWNvcmRzOworICAgIH0KKyAgICBfaGlkbF9jYihNZW10cmFja1N0YXR1czo6U1VDQ0VTUywgcmVjb3Jkcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCitJTWVtdHJhY2sqIEhJRExfRkVUQ0hfSU1lbXRyYWNrKGNvbnN0IGNoYXIqIC8qIG5hbWUgKi8pIHsKKyAgICBjb25zdCBod19tb2R1bGVfdCogaHdfbW9kdWxlID0gbnVsbHB0cjsKKyAgICBjb25zdCBtZW10cmFja19tb2R1bGVfdCogbWVtdHJhY2tfbW9kdWxlID0gbnVsbHB0cjsKKyAgICBpbnQgZXJyID0gaHdfZ2V0X21vZHVsZShNRU1UUkFDS19IQVJEV0FSRV9NT0RVTEVfSUQsICZod19tb2R1bGUpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAgQUxPR0UgKCJod19nZXRfbW9kdWxlICVzIGZhaWxlZDogJWQiLCBNRU1UUkFDS19IQVJEV0FSRV9NT0RVTEVfSUQsIGVycik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmICghaHdfbW9kdWxlLT5tZXRob2RzIHx8ICFod19tb2R1bGUtPm1ldGhvZHMtPm9wZW4pIHsKKyAgICAgICAgbWVtdHJhY2tfbW9kdWxlID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBtZW10cmFja19tb2R1bGVfdCo+KGh3X21vZHVsZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZXJyID0gaHdfbW9kdWxlLT5tZXRob2RzLT5vcGVuKGh3X21vZHVsZSwgTUVNVFJBQ0tfSEFSRFdBUkVfTU9EVUxFX0lELAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfZGV2aWNlX3QqKj4oY29uc3RfY2FzdDxtZW10cmFja19tb2R1bGVfdCoqPigmbWVtdHJhY2tfbW9kdWxlKSkpOworICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgICBBTE9HRSgiUGFzc3Rocm91Z2ggZmFpbGVkIHRvIGxvYWQgbGVnYWN5IEhBTC4iKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBuZXcgTWVtdHJhY2sobWVtdHJhY2tfbW9kdWxlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgbWVtdHJhY2sKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC9kZWZhdWx0L01lbXRyYWNrLmggYi9tZW10cmFjay8xLjAvZGVmYXVsdC9NZW10cmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhZGJhNzYKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvZGVmYXVsdC9NZW10cmFjay5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfTUVNVFJBQ0tfVjFfMF9NRU1UUkFDS19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfTUVNVFJBQ0tfVjFfMF9NRU1UUkFDS19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC9JTWVtdHJhY2suaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgbWVtdHJhY2sgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6OklNZW10cmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpNZW10cmFja1JlY29yZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpNZW10cmFja1N0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpNZW10cmFja1R5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBNZW10cmFjayA6IHB1YmxpYyBJTWVtdHJhY2sgeworICAgIE1lbXRyYWNrKGNvbnN0IG1lbXRyYWNrX21vZHVsZV90KiBtb2R1bGUpOworICAgIH5NZW10cmFjaygpOworICAgIFJldHVybjx2b2lkPiBnZXRNZW1vcnkoaW50MzJfdCBwaWQsIE1lbXRyYWNrVHlwZSB0eXBlLCBnZXRNZW1vcnlfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIGNvbnN0IG1lbXRyYWNrX21vZHVsZV90KiBtTW9kdWxlOworfTsKKworZXh0ZXJuICJDIiBJTWVtdHJhY2sqIEhJRExfRkVUQ0hfSU1lbXRyYWNrKGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgbWVtdHJhY2sKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX01FTVRSQUNLX1YxXzBfTUVNVFJBQ0tfSApkaWZmIC0tZ2l0IGEvbWVtdHJhY2svMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtc2VydmljZS5yYyBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk3NWExOAotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIG1lbXRyYWNrLWhhbC0xLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwNzk3NDMKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvSU1lbXRyYWNrLmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjptZW10cmFjazo6VjFfMDo6SU1lbXRyYWNrOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJTWVtdHJhY2s+KCk7Cit9CmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvdHlwZXMuaGFsIGIvbWVtdHJhY2svMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODkzMTJhCi0tLSAvZGV2L251bGwKKysrIGIvbWVtdHJhY2svMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDsKKworLyoqCisgKiBTTUFQU19BQ0NPVU5URUQvU01BUFNfVU5BQ0NPVU5URUQKKyAqIEZsYWdzIHRvIGRpZmZlcmVudGlhdGUgbWVtb3J5IHRoYXQgY2FuIGFscmVhZHkgYmUgYWNjb3VudGVkIGZvciBpbgorICogL3Byb2MvPHBpZD4vc21hcHMsCisgKiAoU2hhcmVkX0NsZWFuICsgU2hhcmVkX0RpcnR5ICsgUHJpdmF0ZV9DbGVhbiArIFByaXZhdGVfRGlydHkgPSBTaXplKS4KKyAqIEluIGdlbmVyYWwsIG1lbW9yeSBtYXBwZWQgaW4gdG8gYSB1c2Vyc3BhY2UgcHJvY2VzcyBpcyBhY2NvdW50ZWQgdW5sZXNzCisgKiBpdCB3YXMgbWFwcGVkIHdpdGggcmVtYXBfcGZuX3JhbmdlLgorICogRXhhY3RseSBvbmUgb2YgdGhlc2UgbXVzdCBiZSBzZXQuCisgKgorICogU0hBUkVEL1NIQVJFRF9QU1MvUFJJVkFURQorICogRmxhZ3MgdG8gZGlmZmVyZW50aWF0ZSBtZW1vcnkgc2hhcmVkIGFjcm9zcyBtdWx0aXBsZSBwcm9jZXNzZXMgdnMuIG1lbW9yeQorICogdXNlZCBieSBhIHNpbmdsZSBwcm9jZXNzLgorICogSWYgU0hBUkVEX1BTUyBmbGFncyBpcyB1c2VkLCB0aGUgbWVtb3J5IG11c3QgYmUgZGl2aWRlZCBieSB0aGUgbnVtYmVyIG9mCisgKiBwcm9jZXNzZXMgaG9sZGluZyByZWZlcmVuY2UgdG8gaXQgKHNoYXJlZCAvIG51bV9wcm9jZXNzZXMpLgorICogT25seSB6ZXJvIG9yIG9uZSBvZiB0aGVzZSBtYXkgYmUgc2V0IGluIGEgcmVjb3JkLgorICogSWYgbm9uZSBhcmUgc2V0LCByZWNvcmQgaXMgYXNzdW1lZCB0byBjb3VudCBzaGFyZWQgKyBwcml2YXRlIG1lbW9yeS4KKyAqCisgKiBTWVNURU0vREVESUNBVEVECisgKiBGbGFncyB0byBkaWZmZXJlbnRpYXRlIG1lbW9yeSB0YWtlbiBmcm9tIHRoZSBrZXJuZWwncyBhbGxvY2F0aW9uIHBvb2wgdnMuCisgKiBtZW1vcnkgdGhhdCBpcyBkZWRpY2F0ZWQgdG8gbm9uLWtlcm5lbCBhbGxvY2F0aW9ucywgZm9yIGV4YW1wbGUgYSBjYXJ2ZW91dAorICogb3Igc2VwYXJhdGUgdmlkZW8gbWVtb3J5LiAgT25seSB6ZXJvIG9yIG9uZSBvZiB0aGVzZSBtYXkgYmUgc2V0IGluIGEgcmVjb3JkLgorICogSWYgbm9uZSBhcmUgc2V0LCByZWNvcmQgaXMgYXNzdW1lZCB0byBjb3VudCBzeXN0ZW0gKyBkZWRpY2F0ZWQgbWVtb3J5LgorICoKKyAqIE5PTlNFQ1VSRS9TRUNVUkUKKyAqIEZsYWdzIHRvIGRpZmZlcmVudGlhdGUgbWVtb3J5IGFjY2Vzc2libGUgYnkgdGhlIENQVSBpbiBub24tc2VjdXJlIG1vZGUgdnMuCisgKiBtZW1vcnkgdGhhdCBpcyBwcm90ZWN0ZWQuICBPbmx5IHplcm8gb3Igb25lIG9mIHRoZXNlIG1heSBiZSBzZXQgaW4gYSByZWNvcmQuCisgKiBJZiBub25lIGFyZSBzZXQsIHJlY29yZCBpcyBhc3N1bWVkIHRvIGNvdW50IHNlY3VyZSArIG5vbnNlY3VyZSBtZW1vcnkuCisgKi8KK2VudW0gTWVtdHJhY2tGbGFnIDogdWludDMyX3QgeworICAgIFNNQVBTX0FDQ09VTlRFRCA9IDEgPDwgMSwKKyAgICBTTUFQU19VTkFDQ09VTlRFRCA9IDEgPDwgMiwKKyAgICBTSEFSRUQgPSAxIDw8IDMsCisgICAgU0hBUkVEX1BTUyA9IDEgPDwgNCwKKyAgICBQUklWQVRFID0gMSA8PCA1LAorICAgIFNZU1RFTSA9IDEgPDwgNiwKKyAgICBERURJQ0FURUQgPSAxIDw8IDcsCisgICAgTk9OU0VDVVJFID0gMSA8PCA4LAorICAgIFNFQ1VSRSA9IDEgPDwgOSwKK307CisKKy8qKiBUYWdzIHdoaWNoIGRlZmluZSB0aGUgdXNhZ2Ugb2YgdGhlIG1lbW9yeSBidWZmZXJzLiAqLworZW51bSBNZW10cmFja1R5cGUgOiB1aW50MzJfdCB7CisgICAgT1RIRVIgPSAwLAorICAgIEdMID0gMSwKKyAgICBHUkFQSElDUyA9IDIsCisgICAgTVVMVElNRURJQSA9IDMsCisgICAgQ0FNRVJBID0gNCwKKyAgICBOVU1fVFlQRVMsCit9OworCitlbnVtIE1lbXRyYWNrU3RhdHVzIDogdWludDMyX3QgeworICAgIFNVQ0NFU1MgPSAwLAorICAgIE1FTU9SWV9UUkFDS0lOR19OT1RfU1VQUE9SVEVEID0gMSwKKyAgICBUWVBFX05PVF9TVVBQT1JURUQgPSAyLAorfTsKKworLyogQSB2ZWN0b3Igb2YgTWVtdHJhY2tSZWNvcmQgaXMgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGdldE1lbW9yeSgpLgorICogRWFjaCByZWNvcmQgY29uc2lzdHMgb2YgdGhlIHNpemUgb2YgdGhlIG1lbW9yeSB1c2VkIGJ5IHRoZSBwcm9jZXNzIGFuZAorICogZmxhZ3MgaW5kaWNhdGUgdGhlIGFsbCB0aGUgTWVtdHJhY2tGbGFnIHRoYXQgYXJlIHZhbGlkIGZvciB0aGlzIHJlY29yZC4KKyAqIHNlZSBnZXRNZW1vcnkoKSBjb21tZW50cyBmb3IgZnVydGhlciBkZXRhaWxzLgorICovCitzdHJ1Y3QgTWVtdHJhY2tSZWNvcmQgeworICAgIHVpbnQ2NF90IHNpemVJbkJ5dGVzOworICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGJpdGZpZWxkIGZvciB0aGUgTWVtdHJhY2tGbGFnIGluZGljYXRpbmcgYWxsIHRoZSBmbGFncyB0aGF0CisgICAgICogYXJlIHZhbGlkIGZvciB0aGlzIHJlY29yZC4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBmbGFnczsKK307CmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL21lbXRyYWNrLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxZTYxMTEKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM1IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsTWVtdHJhY2tWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsTWVtdHJhY2tWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsTWVtdHJhY2tWMV8wVGFyZ2V0VGVzdC5jcHAgYi9tZW10cmFjay8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsTWVtdHJhY2tWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZmNTY2ZQotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxNZW10cmFja1YxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibWVtdHJhY2tfaGlkbF9oYWxfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS91bmlxdWVfZmQuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svMS4wL0lNZW10cmFjay5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpJTWVtdHJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZW10cmFjazo6VjFfMDo6TWVtdHJhY2tSZWNvcmQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZW10cmFjazo6VjFfMDo6TWVtdHJhY2tGbGFnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6Ok1lbXRyYWNrVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpNZW10cmFja1N0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIDo6YW5kcm9pZDo6YmFzZTo6dW5pcXVlX2ZkOwordXNpbmcgc3RkOjp2ZWN0b3I7Cit1c2luZyBzdGQ6OmNvdW50X2lmOworCitjbGFzcyBNZW10cmFja0hpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBtZW10cmFjayA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElNZW10cmFjaz4oKTsKKyAgICBBU1NFUlRfTkUobWVtdHJhY2ssIG51bGxwdHIpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBzcDxJTWVtdHJhY2s+IG1lbXRyYWNrOworfTsKKworLyogUmV0dXJucyB0cnVlIGlmIGZsYWdzIGNvbnRhaW5zIGF0IGxlYXN0IG1pbiwgYW5kIG5vIG1vcmUgdGhhbiBtYXgsCisgKiBvZiB0aGUgZmxhZ3MgaW4gZmxhZ1NldC4gUmV0dXJucyBmYWxzZSBvdGhlcndpc2UuCisgKi8KK2Jvb2wgcmlnaHRGbGFnQ291bnQodWludDMyX3QgZmxhZ3MsIHZlY3RvcjxNZW10cmFja0ZsYWc+IGZsYWdTZXQsIHVpbnQzMl90IG1pbiwKKyAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbWF4KSB7CisgIHVpbnQzMl90IGNvdW50ID0KKyAgICAgIGNvdW50X2lmKGZsYWdTZXQuYmVnaW4oKSwgZmxhZ1NldC5lbmQoKSwKKyAgICAgICAgICAgICAgIFsmXShNZW10cmFja0ZsYWcgZikgeyByZXR1cm4gZmxhZ3MgJiAodWludDMyX3QpZjsgfSk7CisgIHJldHVybiAobWluIDw9IGNvdW50ICYmIGNvdW50IDw9IG1heCk7Cit9CisKKy8qIFJldHVybnMgdHJ1ZSB3aGVuIHBhc3NlZCBhIHZhbGlkLCBkZWZpbmVkIHN0YXR1cywgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitib29sIHZhbGlkU3RhdHVzKE1lbXRyYWNrU3RhdHVzIHMpIHsKKyAgdmVjdG9yPE1lbXRyYWNrU3RhdHVzPiBzdGF0dXNWZWMgPSB7CisgICAgICBNZW10cmFja1N0YXR1czo6U1VDQ0VTUywgTWVtdHJhY2tTdGF0dXM6Ok1FTU9SWV9UUkFDS0lOR19OT1RfU1VQUE9SVEVELAorICAgICAgTWVtdHJhY2tTdGF0dXM6OlRZUEVfTk9UX1NVUFBPUlRFRH07CisgIHJldHVybiBzdGQ6OmZpbmQoc3RhdHVzVmVjLmJlZ2luKCksIHN0YXR1c1ZlYy5lbmQoKSwgcykgIT0gc3RhdHVzVmVjLmVuZCgpOworfQorCithdXRvIGdlbmVyYXRlX2NiKE1lbXRyYWNrU3RhdHVzICpzLCBoaWRsX3ZlYzxNZW10cmFja1JlY29yZD4gKnYpIHsKKyAgcmV0dXJuIFs9XShNZW10cmFja1N0YXR1cyBzdGF0dXMsIGhpZGxfdmVjPE1lbXRyYWNrUmVjb3JkPiB2ZWMpIHsKKyAgICAqcyA9IHN0YXR1czsKKyAgICAqdiA9IHZlYzsKKyAgfTsKK30KKworLyogU2FuaXR5IGNoZWNrIHJlc3VsdHMgd2hlbiBnZXRNZW1vcnkoKSBpcyBwYXNzZWQgYSBuZWdhdGl2ZSBQSUQKKyAqLworVEVTVF9GKE1lbXRyYWNrSGlkbFRlc3QsIEJhZFBpZFRlc3QpIHsKKyAgTWVtdHJhY2tTdGF0dXMgczsKKyAgaGlkbF92ZWM8TWVtdHJhY2tSZWNvcmQ+IHY7CisgIGF1dG8gY2IgPSBnZW5lcmF0ZV9jYigmcywgJnYpOworICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lbXRyYWNrVHlwZTo6TlVNX1RZUEVTKTsKKyAgICAgICBpKyspIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgICAgbWVtdHJhY2stPmdldE1lbW9yeSgtMSwgc3RhdGljX2Nhc3Q8TWVtdHJhY2tUeXBlPihpKSwgY2IpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgIEFTU0VSVF9UUlVFKHZhbGlkU3RhdHVzKHMpKTsKKyAgfQorfQorCisvKiBTYW5pdHkgY2hlY2sgcmVzdWx0cyB3aGVuIGdldE1lbW9yeSgpIGlzIHBhc3NlZCBhIGJhZCBtZW1vcnkgdXNhZ2UgdHlwZQorICovCitURVNUX0YoTWVtdHJhY2tIaWRsVGVzdCwgQmFkVHlwZVRlc3QpIHsKKyAgTWVtdHJhY2tTdGF0dXMgczsKKyAgaGlkbF92ZWM8TWVtdHJhY2tSZWNvcmQ+IHY7CisgIGF1dG8gY2IgPSBnZW5lcmF0ZV9jYigmcywgJnYpOworICBSZXR1cm48dm9pZD4gcmV0ID0gbWVtdHJhY2stPmdldE1lbW9yeShnZXRwaWQoKSwgTWVtdHJhY2tUeXBlOjpOVU1fVFlQRVMsIGNiKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9UUlVFKHZhbGlkU3RhdHVzKHMpKTsKK30KKworLyogQ2FsbCBtZW10cmFjayBvbiB0aGlzIHByb2Nlc3MgYW5kIGNoZWNrIHRoYXQgdGhlIHJlc3VsdHMgYXJlIHJlYXNvbmFibGUKKyAqIGZvciBhbGwgbWVtb3J5IHR5cGVzLCBpbmNsdWRpbmcgdmFsaWQgZmxhZyBjb21iaW5hdGlvbnMgZm9yIGV2ZXJ5CisgKiBNZW10cmFja1JlY29yZCByZXR1cm5lZC4KKyAqLworVEVTVF9GKE1lbXRyYWNrSGlkbFRlc3QsIEdldE1lbW9yeVRlc3QpIHsKKyAgLyogT3BlbmluZyB0aGlzIGRldmljZSBjYXVzZXMgdGhlIGtlcm5lbCB0byBwcm92aWRlIG1lbXRyYWNrIHdpdGggbWVtb3J5CisgICAqIGluZm8gZm9yIHRoaXMgcHJvY2Vzcy4KKyAgICovCisgIHVuaXF1ZV9mZCBmZChvcGVuKCIvZGV2L2tnc2wtM2QwIiwgT19SRFdSKSk7CisKKyAgTWVtdHJhY2tTdGF0dXMgczsKKyAgaGlkbF92ZWM8TWVtdHJhY2tSZWNvcmQ+IHY7CisgIGF1dG8gY2IgPSBnZW5lcmF0ZV9jYigmcywgJnYpOworICB1aW50MzJfdCB1bnN1cHBvcnRlZENvdW50ID0gMDsKKyAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PHVpbnQzMl90PihNZW10cmFja1R5cGU6Ok5VTV9UWVBFUyk7CisgICAgICAgaSsrKSB7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9CisgICAgICAgIG1lbXRyYWNrLT5nZXRNZW1vcnkoZ2V0cGlkKCksIHN0YXRpY19jYXN0PE1lbXRyYWNrVHlwZT4oaSksIGNiKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHN3aXRjaCAocykgeworICAgICAgY2FzZSBNZW10cmFja1N0YXR1czo6TUVNT1JZX1RSQUNLSU5HX05PVF9TVVBQT1JURUQ6CisgICAgICAgIHVuc3VwcG9ydGVkQ291bnQrKzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIE1lbXRyYWNrU3RhdHVzOjpUWVBFX05PVF9TVVBQT1JURUQ6CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBNZW10cmFja1N0YXR1czo6U1VDQ0VTUzogeworICAgICAgICBmb3IgKHVpbnQzMl90IGogPSAwOyBqIDwgdi5zaXplKCk7IGorKykgeworICAgICAgICAgIC8vIEVuZm9yY2UgZmxhZyBjb25zdHJhaW50cworICAgICAgICAgIHZlY3RvcjxNZW10cmFja0ZsYWc+IHNtYXBGbGFncyA9IHtNZW10cmFja0ZsYWc6OlNNQVBTX0FDQ09VTlRFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtdHJhY2tGbGFnOjpTTUFQU19VTkFDQ09VTlRFRH07CisgICAgICAgICAgRVhQRUNUX1RSVUUocmlnaHRGbGFnQ291bnQodltqXS5mbGFncywgc21hcEZsYWdzLCAxLCAxKSk7CisgICAgICAgICAgdmVjdG9yPE1lbXRyYWNrRmxhZz4gc2hhcmVGbGFncyA9IHtNZW10cmFja0ZsYWc6OlNIQVJFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbXRyYWNrRmxhZzo6U0hBUkVEX1BTUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbXRyYWNrRmxhZzo6UFJJVkFURX07CisgICAgICAgICAgRVhQRUNUX1RSVUUocmlnaHRGbGFnQ291bnQodltqXS5mbGFncywgc2hhcmVGbGFncywgMCwgMSkpOworICAgICAgICAgIHZlY3RvcjxNZW10cmFja0ZsYWc+IHN5c3RlbUZsYWdzID0ge01lbXRyYWNrRmxhZzo6U1lTVEVNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbXRyYWNrRmxhZzo6REVESUNBVEVEfTsKKyAgICAgICAgICBFWFBFQ1RfVFJVRShyaWdodEZsYWdDb3VudCh2W2pdLmZsYWdzLCBzeXN0ZW1GbGFncywgMCwgMSkpOworICAgICAgICAgIHZlY3RvcjxNZW10cmFja0ZsYWc+IHNlY3VyZUZsYWdzID0ge01lbXRyYWNrRmxhZzo6U0VDVVJFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbXRyYWNrRmxhZzo6Tk9OU0VDVVJFfTsKKyAgICAgICAgICBFWFBFQ1RfVFJVRShyaWdodEZsYWdDb3VudCh2W2pdLmZsYWdzLCBzZWN1cmVGbGFncywgMCwgMSkpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgZGVmYXVsdDoKKyAgICAgICAgRkFJTCgpOworICAgIH0KKyAgfQorICAvLyBJZiB0cmFja2luZyBpcyBub3Qgc3VwcG9ydGVkIHRoaXMgc2hvdWxkIGJlIHJldHVybmVkIGZvciBhbGwgdHlwZXMuCisgIEFTU0VSVF9UUlVFKHVuc3VwcG9ydGVkQ291bnQgPT0gMCB8fAorICAgICAgICAgICAgICB1bnN1cHBvcnRlZENvdW50ID09CisgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVtdHJhY2tUeXBlOjpOVU1fVFlQRVMpKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9tZW10cmFjay9BbmRyb2lkLmJwIGIvbWVtdHJhY2svQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtdHJhY2svQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9BbmRyb2lkLmJwIGIvcG93ZXIvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ5NjdmZAotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjMgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSVBvd2VyLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9wb3dlci8xLjAvUG93ZXJBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9wb3dlci8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9wb3dlci8xLjAvSVBvd2VyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9wb3dlci8xLjAvSUh3UG93ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9Cbkh3UG93ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9CcEh3UG93ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9Cc1Bvd2VyLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9BbmRyb2lkLm1rIGIvcG93ZXIvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE4OWE0NQotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjcwIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmVhdHVyZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9GZWF0dXJlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzLkZlYXR1cmUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvd2VySGludCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9Qb3dlckhpbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuUG93ZXJIaW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL1Bvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuUG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG93ZXJTdGF0ZVZvdGVyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL1Bvd2VyU3RhdGVWb3Rlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcy5Qb3dlclN0YXRlVm90ZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVBvd2VyLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL0lQb3dlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVBvd2VyLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OklQb3dlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVBvd2VyLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5wb3dlci1WMS4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZlYXR1cmUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Bvd2VyL1YxXzAvRmVhdHVyZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcy5GZWF0dXJlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3dlckhpbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Bvd2VyL1YxXzAvUG93ZXJIaW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzLlBvd2VySGludAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9Qb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzLlBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvd2VyU3RhdGVWb3RlcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9Qb3dlclN0YXRlVm90ZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuUG93ZXJTdGF0ZVZvdGVyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Bvd2VyL1YxXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElQb3dlci5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9JUG93ZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lQb3dlci5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjpJUG93ZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lQb3dlci5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9JUG93ZXIuaGFsIGIvcG93ZXIvMS4wL0lQb3dlci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUwZjY0NQotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9JUG93ZXIuaGFsCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDsKKworLyoqCisgKiBDb25zdHJ1Y3RvciBmb3IgdGhlIGludGVyZmFjZSBwZXJmb3JtcyBwb3dlciBtYW5hZ2VtZW50IHNldHVwIGFjdGlvbnMgYXQKKyAqIHJ1bnRpbWUgc3RhcnR1cCwgc3VjaCBhcyB0byBzZXQgZGVmYXVsdCBjcHVmcmVxIHBhcmFtZXRlcnMuCisgKi8KK2ludGVyZmFjZSBJUG93ZXIgeworICAgIC8qKgorICAgICAqIHNldEludGVyYWN0aXZlKCkgcGVyZm9ybXMgcG93ZXIgbWFuYWdlbWVudCBhY3Rpb25zIHVwb24gdGhlCisgICAgICogc3lzdGVtIGVudGVyaW5nIGludGVyYWN0aXZlIHN0YXRlICh0aGF0IGlzLCB0aGUgc3lzdGVtIGlzIGF3YWtlCisgICAgICogYW5kIHJlYWR5IGZvciBpbnRlcmFjdGlvbiwgb2Z0ZW4gd2l0aCBVSSBkZXZpY2VzIHN1Y2ggYXMKKyAgICAgKiBkaXNwbGF5IGFuZCB0b3VjaHNjcmVlbiBlbmFibGVkKSBvciBub24taW50ZXJhY3RpdmUgc3RhdGUgKHRoZQorICAgICAqIHN5c3RlbSBhcHBlYXJzIGFzbGVlcCwgZGlzcGxheSB1c3VhbGx5IHR1cm5lZCBvZmYpLiBUaGUKKyAgICAgKiBub24taW50ZXJhY3RpdmUgc3RhdGUgbWF5IGJlIGVudGVyZWQgYWZ0ZXIgYSBwZXJpb2Qgb2YKKyAgICAgKiBpbmFjdGl2aXR5IGluIG9yZGVyIHRvIGNvbnNlcnZlIGJhdHRlcnkgcG93ZXIgZHVyaW5nCisgICAgICogc3VjaCBpbmFjdGl2ZSBwZXJpb2RzLgorICAgICAqCisgICAgICogVHlwaWNhbCBhY3Rpb25zIGFyZSB0byB0dXJuIG9uIG9yIG9mZiBkZXZpY2VzIGFuZCBhZGp1c3QKKyAgICAgKiBjcHVmcmVxIHBhcmFtZXRlcnMuIFRoaXMgZnVuY3Rpb24gbWF5IGFsc28gY2FsbCB0aGUKKyAgICAgKiBhcHByb3ByaWF0ZSBpbnRlcmZhY2VzIHRvIGFsbG93IHRoZSBrZXJuZWwgdG8gc3VzcGVuZCB0aGUKKyAgICAgKiBzeXN0ZW0gdG8gbG93LXBvd2VyIHNsZWVwIHN0YXRlIHdoZW4gZW50ZXJpbmcgbm9uLWludGVyYWN0aXZlCisgICAgICogc3RhdGUsIGFuZCB0byBkaXNhbGxvdyBsb3ctcG93ZXIgc3VzcGVuZCB3aGVuIHRoZSBzeXN0ZW0gaXMgaW4KKyAgICAgKiBpbnRlcmFjdGl2ZSBzdGF0ZS4gV2hlbiBsb3ctcG93ZXIgc3VzcGVuZCBzdGF0ZSBpcyBhbGxvd2VkLCB0aGUKKyAgICAgKiBrZXJuZWwgbWF5IHN1c3BlbmQgdGhlIHN5c3RlbSB3aGVuZXZlciBubyB3YWtlbG9ja3MgYXJlIGhlbGQuCisgICAgICoKKyAgICAgKiBGb3IgZXhhbXBsZSwKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgdG8gZW50ZXIgbm9uLWludGVyYWN0aXZlIHN0YXRlIGFmdGVyCisgICAgICogdHVybmluZyBvZmYgdGhlIHNjcmVlbiAoaWYgcHJlc2VudCkgYW5kIGNhbGxlZCB0byBlbnRlcgorICAgICAqIGludGVyYWN0aXZlIHN0YXRlIHByaW9yIHRvIHR1cm5pbmcgb24gdGhlIHNjcmVlbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnRlcmFjdGl2ZSBpcyB0cnVlIHdoZW4gdGhlIHN5c3RlbSBpcyB0cmFuc2l0aW9uaW5nIHRvIGFuCisgICAgICogaW50ZXJhY3RpdmUgc3RhdGUgYW5kIGZhbHNlIHdoZW4gdHJhbnNpdGlvbmluZyB0byBhCisgICAgICogbm9uLWludGVyYWN0aXZlIHN0YXRlLgorICAgICAqLworICAgIHNldEludGVyYWN0aXZlKGJvb2wgaW50ZXJhY3RpdmUpOworCisgICAgLyoqCisgICAgICogcG93ZXJIaW50KCkgaXMgY2FsbGVkIHRvIHBhc3MgaGludHMgb24gcG93ZXIgcmVxdWlyZW1lbnRzIHdoaWNoCisgICAgICogbWF5IHJlc3VsdCBpbiBhZGp1c3RtZW50IG9mIHBvd2VyL3BlcmZvcm1hbmNlIHBhcmFtZXRlcnMgb2YgdGhlCisgICAgICogY3B1ZnJlcSBnb3Zlcm5vciBhbmQgb3RoZXIgY29udHJvbHMuCisgICAgICoKKyAgICAgKiBBIHBhcnRpY3VsYXIgcGxhdGZvcm0gbWF5IGNob29zZSB0byBpZ25vcmUgYW55IGhpbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaGludCBQb3dlckhpbnQgd2hpY2ggaXMgcGFzc2VkCisgICAgICogQHBhcmFtIGRhdGEgY29udGFpbnMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaGludAorICAgICAqIGFuZCBpcyBkZXNjcmliZWQgYWxvbmcgd2l0aCB0aGUgY29tbWVudHMgZm9yIGVhY2ggb2YgdGhlIGhpbnRzLgorICAgICAqLworICAgIHBvd2VySGludChQb3dlckhpbnQgaGludCwgaW50MzJfdCBkYXRhKTsKKworICAgIC8qKgorICAgICAqIHNldEZlYXR1cmUoKSBpcyBjYWxsZWQgdG8gdHVybiBvbiBvciBvZmYgYSBwYXJ0aWN1bGFyIGZlYXR1cmUKKyAgICAgKiBkZXBlbmRpbmcgb24gdGhlIHN0YXRlIHBhcmFtZXRlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmZWF0dXJlIEZlYXR1cmUgd2hpY2ggbmVlZHMgdG8gYmUgc2V0CisgICAgICogQHBhcmFtIGFjdGl2YXRlIHRydWUvZmFsc2UgdG8gZW5hYmxlL2Rpc2FibGUgdGhlIGZlYXR1cmUKKyAgICAgKi8KKyAgICBzZXRGZWF0dXJlKEZlYXR1cmUgZmVhdHVyZSwgYm9vbCBhY3RpdmF0ZSk7CisKKyAgICAvKioKKyAgICAgKiBQbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZSBzdGF0czoKKyAgICAgKiBSZXBvcnQgY3VtdWxhdGl2ZSBpbmZvIG9uIHRoZSBzdGF0aXN0aWNzIG9uIHBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlcworICAgICAqIHNpbmNlIGJvb3QuCisgICAgICoKKyAgICAgKiBIaWdoZXIgdGhlIGluZGV4IGluIHRoZSByZXR1cm5lZCA8c3RhdGVzPiB2ZWN0b3IgZGVlcGVyIHRoZSBzdGF0ZSBpcworICAgICAqIGkuZS4gbGVzc2VyIHN0ZWFkeS1zdGF0ZSBwb3dlciBpcyBjb25zdW1lZCBieSB0aGUgcGxhdGZvcm0gdG8gYmUKKyAgICAgKiByZXNpZGVudCBpbiB0aGF0IHN0YXRlLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0ZXMgb2YgcG93ZXIgc3RhdGVzIHRoZSBkZXZpY2Ugc3VwcG9ydHMKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBTVUNDRVNTIG9uIHN1Y2Nlc3Mgb3IgRklMRVNZU1RFTV9FUlJPUiBvbiBmaWxlc3lzdGVtCisgICAgICogbm9kZXMgYWNjZXNzIGVycm9yLgorICAgICAqLworICAgIGdldFBsYXRmb3JtTG93UG93ZXJTdGF0cygpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKHZlYzxQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlPiBzdGF0ZXMsIFN0YXR1cyByZXR2YWwpOworfTsKZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAgYi9wb3dlci8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmNDNiOTUKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wLWltcGwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJQb3dlci5jcHAiXSwKKworICAgIGNmbGFnczogWworICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMCIsCisgICAgXSwKKworfQorCitjY19iaW5hcnkgeworICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wLXNlcnZpY2UiLAorICAgIGluaXRfcmM6IFsiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtc2VydmljZS5yYyJdLAorICAgIHNyY3M6IFsic2VydmljZS5jcHAiXSwKKworICAgIGNmbGFnczogWworICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliZGwiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMCIsCisgICAgXSwKKworfQpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL2RlZmF1bHQvUG93ZXIuY3BwIGIvcG93ZXIvMS4wL2RlZmF1bHQvUG93ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxZjg3ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci8xLjAvZGVmYXVsdC9Qb3dlci5jcHAKQEAgLTAsMCArMSwxNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wLWltcGwiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3Bvd2VyLmg+CisKKyNpbmNsdWRlICJQb3dlci5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHBvd2VyIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK1Bvd2VyOjpQb3dlcihwb3dlcl9tb2R1bGVfdCAqbW9kdWxlKSA6IG1Nb2R1bGUobW9kdWxlKSB7CisgICAgaWYgKG1Nb2R1bGUpCisgICAgICAgIG1Nb2R1bGUtPmluaXQobU1vZHVsZSk7Cit9CisKK1Bvd2VyOjp+UG93ZXIoKSB7CisgICAgZGVsZXRlKG1Nb2R1bGUpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OklQb3dlciBmb2xsb3cuCitSZXR1cm48dm9pZD4gUG93ZXI6OnNldEludGVyYWN0aXZlKGJvb2wgaW50ZXJhY3RpdmUpICB7CisgICAgaWYgKG1Nb2R1bGUtPnNldEludGVyYWN0aXZlKQorICAgICAgICBtTW9kdWxlLT5zZXRJbnRlcmFjdGl2ZShtTW9kdWxlLCBpbnRlcmFjdGl2ZSA/IDEgOiAwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gUG93ZXI6OnBvd2VySGludChQb3dlckhpbnQgaGludCwgaW50MzJfdCBkYXRhKSAgeworICAgIGludDMyX3QgcGFyYW0gPSBkYXRhOworICAgIGlmIChtTW9kdWxlLT5wb3dlckhpbnQpIHsKKyAgICAgICAgaWYgKGRhdGEpCisgICAgICAgICAgICBtTW9kdWxlLT5wb3dlckhpbnQobU1vZHVsZSwgc3RhdGljX2Nhc3Q8cG93ZXJfaGludF90PihoaW50KSwgJnBhcmFtKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbU1vZHVsZS0+cG93ZXJIaW50KG1Nb2R1bGUsIHN0YXRpY19jYXN0PHBvd2VyX2hpbnRfdD4oaGludCksIE5VTEwpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gUG93ZXI6OnNldEZlYXR1cmUoRmVhdHVyZSBmZWF0dXJlLCBib29sIGFjdGl2YXRlKSAgeworICAgIGlmIChtTW9kdWxlLT5zZXRGZWF0dXJlKQorICAgICAgICBtTW9kdWxlLT5zZXRGZWF0dXJlKG1Nb2R1bGUsIHN0YXRpY19jYXN0PGZlYXR1cmVfdD4oZmVhdHVyZSksCisgICAgICAgICAgICAgICAgYWN0aXZhdGUgPyAxIDogMCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFBvd2VyOjpnZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHMoZ2V0UGxhdGZvcm1Mb3dQb3dlclN0YXRzX2NiIF9oaWRsX2NiKSAgeworICAgIGhpZGxfdmVjPFBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGU+IHN0YXRlczsKKyAgICBzc2l6ZV90IG51bWJlcl9wbGF0Zm9ybV9tb2RlczsKKyAgICBzaXplX3QgKnZvdGVycyA9IG51bGxwdHI7CisgICAgcG93ZXJfc3RhdGVfcGxhdGZvcm1fc2xlZXBfc3RhdGVfdCAqbGVnYWN5X3N0YXRlcyA9IG51bGxwdHI7CisgICAgaW50IHJldDsKKworICAgIGlmIChtTW9kdWxlLT5nZXRfbnVtYmVyX29mX3BsYXRmb3JtX21vZGVzID09IG51bGxwdHIgfHwKKyAgICAgICAgICAgIG1Nb2R1bGUtPmdldF92b3Rlcl9saXN0ID09IG51bGxwdHIgfHwKKyAgICAgICAgICAgIG1Nb2R1bGUtPmdldF9wbGF0Zm9ybV9sb3dfcG93ZXJfc3RhdHMgPT0gbnVsbHB0cikKKyAgICB7CisgICAgICAgIF9oaWRsX2NiKHN0YXRlcywgU3RhdHVzOjpTVUNDRVNTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBudW1iZXJfcGxhdGZvcm1fbW9kZXMgPSBtTW9kdWxlLT5nZXRfbnVtYmVyX29mX3BsYXRmb3JtX21vZGVzKG1Nb2R1bGUpOworICAgIGlmIChudW1iZXJfcGxhdGZvcm1fbW9kZXMpCisgICAgeworICAgICAgIGlmICgoc3NpemVfdCkgKFNJWkVfTUFYIC8gc2l6ZW9mKHNpemVfdCkpIDw9IG51bWJlcl9wbGF0Zm9ybV9tb2RlcykgIC8vIG92ZXJmbG93CisgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICB2b3RlcnMgPSBuZXcgKHN0ZDo6bm90aHJvdykgc2l6ZV90IFtudW1iZXJfcGxhdGZvcm1fbW9kZXNdOworICAgICAgIGlmICh2b3RlcnMgPT0gbnVsbHB0cikKKyAgICAgICAgICAgZ290byBkb25lOworCisgICAgICAgcmV0ID0gbU1vZHVsZS0+Z2V0X3ZvdGVyX2xpc3QobU1vZHVsZSwgdm90ZXJzKTsKKyAgICAgICBpZiAocmV0ICE9IDApCisgICAgICAgICAgIGdvdG8gZG9uZTsKKworICAgICAgIGlmICgoc3NpemVfdCkgKFNJWkVfTUFYIC8gc2l6ZW9mKHBvd2VyX3N0YXRlX3BsYXRmb3JtX3NsZWVwX3N0YXRlX3QpKQorICAgICAgICAgICA8PSBudW1iZXJfcGxhdGZvcm1fbW9kZXMpICAvLyBvdmVyZmxvdworICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgbGVnYWN5X3N0YXRlcyA9IG5ldyAoc3RkOjpub3Rocm93KQorICAgICAgICAgICBwb3dlcl9zdGF0ZV9wbGF0Zm9ybV9zbGVlcF9zdGF0ZV90IFtudW1iZXJfcGxhdGZvcm1fbW9kZXNdOworICAgICAgIGlmIChsZWdhY3lfc3RhdGVzID09IG51bGxwdHIpCisgICAgICAgICAgIGdvdG8gZG9uZTsKKworICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtYmVyX3BsYXRmb3JtX21vZGVzOyBpKyspCisgICAgICAgeworICAgICAgICAgIGxlZ2FjeV9zdGF0ZXNbaV0udm90ZXJzID0gbnVsbHB0cjsKKyAgICAgICAgICBsZWdhY3lfc3RhdGVzW2ldLnZvdGVycyA9IG5ldyBwb3dlcl9zdGF0ZV92b3Rlcl90IFt2b3RlcnNbaV1dOworICAgICAgICAgIGlmIChsZWdhY3lfc3RhdGVzW2ldLnZvdGVycyA9PSBudWxscHRyKQorICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgfQorCisgICAgICAgcmV0ID0gbU1vZHVsZS0+Z2V0X3BsYXRmb3JtX2xvd19wb3dlcl9zdGF0cyhtTW9kdWxlLCBsZWdhY3lfc3RhdGVzKTsKKyAgICAgICBpZiAocmV0ICE9IDApCisgICAgICAgICAgIGdvdG8gZG9uZTsKKworICAgICAgIHN0YXRlcy5yZXNpemUobnVtYmVyX3BsYXRmb3JtX21vZGVzKTsKKyAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bWJlcl9wbGF0Zm9ybV9tb2RlczsgaSsrKQorICAgICAgIHsKKyAgICAgICAgICBwb3dlcl9zdGF0ZV9wbGF0Zm9ybV9zbGVlcF9zdGF0ZV90JiBsZWdhY3lfc3RhdGUgPSBsZWdhY3lfc3RhdGVzW2ldOworICAgICAgICAgIFBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUmIHN0YXRlID0gc3RhdGVzW2ldOworICAgICAgICAgIHN0YXRlLm5hbWUgPSBsZWdhY3lfc3RhdGUubmFtZTsKKyAgICAgICAgICBzdGF0ZS5yZXNpZGVuY3lJbk1zZWNTaW5jZUJvb3QgPSBsZWdhY3lfc3RhdGUucmVzaWRlbmN5X2luX21zZWNfc2luY2VfYm9vdDsKKyAgICAgICAgICBzdGF0ZS50b3RhbFRyYW5zaXRpb25zID0gbGVnYWN5X3N0YXRlLnRvdGFsX3RyYW5zaXRpb25zOworICAgICAgICAgIHN0YXRlLnN1cHBvcnRlZE9ubHlJblN1c3BlbmQgPSBsZWdhY3lfc3RhdGUuc3VwcG9ydGVkX29ubHlfaW5fc3VzcGVuZDsKKyAgICAgICAgICBzdGF0ZS52b3RlcnMucmVzaXplKHZvdGVyc1tpXSk7CisgICAgICAgICAgZm9yKHNpemVfdCBqID0gMDsgaiA8IHZvdGVyc1tpXTsgaisrKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgc3RhdGUudm90ZXJzW2pdLm5hbWUgPSBsZWdhY3lfc3RhdGUudm90ZXJzW2pdLm5hbWU7CisgICAgICAgICAgICAgIHN0YXRlLnZvdGVyc1tqXS50b3RhbFRpbWVJbk1zZWNWb3RlZEZvclNpbmNlQm9vdCA9IGxlZ2FjeV9zdGF0ZS52b3RlcnNbal0udG90YWxfdGltZV9pbl9tc2VjX3ZvdGVkX2Zvcl9zaW5jZV9ib290OworICAgICAgICAgICAgICBzdGF0ZS52b3RlcnNbal0udG90YWxOdW1iZXJPZlRpbWVzVm90ZWRTaW5jZUJvb3QgPSBsZWdhY3lfc3RhdGUudm90ZXJzW2pdLnRvdGFsX251bWJlcl9vZl90aW1lc192b3RlZF9zaW5jZV9ib290OworICAgICAgICAgIH0KKyAgICAgICB9CisgICAgfQorZG9uZToKKyAgICBpZiAobGVnYWN5X3N0YXRlcykKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtYmVyX3BsYXRmb3JtX21vZGVzOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKGxlZ2FjeV9zdGF0ZXNbaV0udm90ZXJzKQorICAgICAgICAgICAgICAgIGRlbGV0ZShsZWdhY3lfc3RhdGVzW2ldLnZvdGVycyk7CisgICAgICAgIH0KKyAgICB9CisgICAgZGVsZXRlW10gbGVnYWN5X3N0YXRlczsKKyAgICBkZWxldGVbXSB2b3RlcnM7CisgICAgX2hpZGxfY2Ioc3RhdGVzLCBTdGF0dXM6OlNVQ0NFU1MpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK0lQb3dlciogSElETF9GRVRDSF9JUG93ZXIoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIGNvbnN0IGh3X21vZHVsZV90KiBod19tb2R1bGUgPSBudWxscHRyOworICAgIHBvd2VyX21vZHVsZV90KiBwb3dlcl9tb2R1bGUgPSBudWxscHRyOworICAgIGludCBlcnIgPSBod19nZXRfbW9kdWxlKFBPV0VSX0hBUkRXQVJFX01PRFVMRV9JRCwgJmh3X21vZHVsZSk7CisgICAgaWYgKGVycikgeworICAgICAgICBBTE9HRSgiaHdfZ2V0X21vZHVsZSAlcyBmYWlsZWQ6ICVkIiwgUE9XRVJfSEFSRFdBUkVfTU9EVUxFX0lELCBlcnIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAoIWh3X21vZHVsZS0+bWV0aG9kcyB8fCAhaHdfbW9kdWxlLT5tZXRob2RzLT5vcGVuKSB7CisgICAgICAgIHBvd2VyX21vZHVsZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8cG93ZXJfbW9kdWxlX3QqPigKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8aHdfbW9kdWxlX3QqPihod19tb2R1bGUpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBlcnIgPSBod19tb2R1bGUtPm1ldGhvZHMtPm9wZW4oCisgICAgICAgICAgICBod19tb2R1bGUsIFBPV0VSX0hBUkRXQVJFX01PRFVMRV9JRCwKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfZGV2aWNlX3QqKj4oJnBvd2VyX21vZHVsZSkpOworICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgICBBTE9HRSgiUGFzc3Rocm91Z2ggZmFpbGVkIHRvIGxvYWQgbGVnYWN5IEhBTC4iKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBuZXcgUG93ZXIocG93ZXJfbW9kdWxlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgcG93ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9kZWZhdWx0L1Bvd2VyLmggYi9wb3dlci8xLjAvZGVmYXVsdC9Qb3dlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0M2FlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci8xLjAvZGVmYXVsdC9Qb3dlci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfUE9XRVJfVjFfMF9QT1dFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfUE9XRVJfVjFfMF9QT1dFUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9JUG93ZXIuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgcG93ZXIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OkZlYXR1cmU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6SVBvd2VyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OlBvd2VySGludDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFBvd2VyIDogcHVibGljIElQb3dlciB7CisgICAgUG93ZXIocG93ZXJfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgflBvd2VyKCk7CisgICAgUmV0dXJuPHZvaWQ+IHNldEludGVyYWN0aXZlKGJvb2wgaW50ZXJhY3RpdmUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcG93ZXJIaW50KFBvd2VySGludCBoaW50LCBpbnQzMl90IGRhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0RmVhdHVyZShGZWF0dXJlIGZlYXR1cmUsIGJvb2wgYWN0aXZhdGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGxhdGZvcm1Mb3dQb3dlclN0YXRzKGdldFBsYXRmb3JtTG93UG93ZXJTdGF0c19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgcG93ZXJfbW9kdWxlX3QqIG1Nb2R1bGU7Cit9OworCitleHRlcm4gIkMiIElQb3dlciogSElETF9GRVRDSF9JUG93ZXIoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBwb3dlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfUE9XRVJfVjFfMF9QT1dFUl9ICmRpZmYgLS1naXQgYS9wb3dlci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMC1zZXJ2aWNlLnJjIGIvcG93ZXIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzc3ZTkwCi0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgcG93ZXItaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvcG93ZXIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg2MThiOAotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9JUG93ZXIuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpJUG93ZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElQb3dlcj4oKTsKK30KZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC90eXBlcy5oYWwgYi9wb3dlci8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MzkyODMKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMTYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA7CisKKy8qKiBQb3dlciBoaW50IGlkZW50aWZpZXJzIHBhc3NlZCB0byBwb3dlckhpbnQoKSAqLworZW51bSBQb3dlckhpbnQgOiB1aW50MzJfdCB7CisgICAvKioKKyAgICAqIEZvcmVncm91bmQgYXBwIGhhcyBzdGFydGVkIG9yIHN0b3BwZWQgcmVxdWVzdGluZyBhIFZTWU5DIHB1bHNlCisgICAgKiBmcm9tIFN1cmZhY2VGbGluZ2VyLiBJZiB0aGUgYXBwIGhhcyBzdGFydGVkIHJlcXVlc3RpbmcgVlNZTkMKKyAgICAqIHRoZW4gQ1BVIGFuZCBHUFUgbG9hZCBpcyBleHBlY3RlZCBzb29uLCBhbmQgaXQgbWF5IGJlIGFwcHJvcHJpYXRlCisgICAgKiB0byByYWlzZSBzcGVlZHMgb2YgQ1BVLCBtZW1vcnkgYnVzLCBldGMuIFRoZSBkYXRhIHBhcmFtZXRlciBpcworICAgICogbm9uLXplcm8gdG8gaW5kaWNhdGUgVlNZTkMgcHVsc2UgaXMgbm93IHJlcXVlc3RlZCwgb3IgemVybyBmb3IKKyAgICAqIFZTWU5DIHB1bHNlIG5vIGxvbmdlciByZXF1ZXN0ZWQuCisgICAgKi8KKyAgICBWU1lOQyA9IDB4MDAwMDAwMDEsCisKKworICAgLyoqCisgICAgKiBVc2VyIGlzIGludGVyYWN0aW5nIHdpdGggdGhlIGRldmljZSwgZm9yIGV4YW1wbGUsIHRvdWNoc2NyZWVuCisgICAgKiBldmVudHMgYXJlIGluY29taW5nLiBDUFUgYW5kIEdQVSBsb2FkIG1heSBiZSBleHBlY3RlZCBzb29uLAorICAgICogYW5kIGl0IG1heSBiZSBhcHByb3ByaWF0ZSB0byByYWlzZSBzcGVlZHMgb2YgQ1BVLCBtZW1vcnkgYnVzLAorICAgICogZXRjLiBUaGUgZGF0YSBwYXJhbWV0ZXIgaXMgdGhlIGVzdGltYXRlZCBsZW5ndGggb2YgdGhlIGludGVyYWN0aW9uCisgICAgKiBpbiBtaWxsaXNlY29uZHMsIG9yIDAgaWYgdW5rbm93bi4KKyAgICAqLworICAgIElOVEVSQUNUSU9OID0gMHgwMDAwMDAwMiwKKworCisgICAgLyoqCisgICAgICogRE8gTk9UIFVTRSBWSURFT19FTkNPREUvX0RFQ09ERSEgIFRoZXkgd2lsbCBiZSByZW1vdmVkIGluCisgICAgICogS0xQLgorICAgICAqLworICAgIFZJREVPX0VOQ09ERSA9IDB4MDAwMDAwMDMsCisgICAgVklERU9fREVDT0RFID0gMHgwMDAwMDAwNCwKKworICAgLyoqCisgICAgKiBMb3cgcG93ZXIgbW9kZSBpcyBhY3RpdmF0ZWQgb3IgZGVhY3RpdmF0ZWQuIExvdyBwb3dlciBtb2RlCisgICAgKiBpcyBpbnRlbmRlZCB0byBzYXZlIGJhdHRlcnkgYXQgdGhlIGNvc3Qgb2YgcGVyZm9ybWFuY2UuIFRoZSBkYXRhCisgICAgKiBwYXJhbWV0ZXIgaXMgbm9uLXplcm8gd2hlbiBsb3cgcG93ZXIgbW9kZSBpcyBhY3RpdmF0ZWQsIGFuZCB6ZXJvCisgICAgKiB3aGVuIGRlYWN0aXZhdGVkLgorICAgICovCisgICAgTE9XX1BPV0VSID0gMHgwMDAwMDAwNSwKKworICAgLyoqCisgICAgKiBTdXN0YWluZWQgUGVyZm9ybWFuY2UgbW9kZSBpcyBhY3RpdmVkIG9yIGRlYWN0aXZhdGVkLiBTdXN0YWluZWQKKyAgICAqIHBlcmZvcm1hbmNlIG1vZGUgaXMgaW50ZW5kZWQgdG8gcHJvdmlkZSBhIGNvbnNpc3RlbnQgbGV2ZWwgb2YKKyAgICAqIHBlcmZvcm1hbmNlIGZvciBhIHByb2xvbmdlZCBhbW91bnQgb2YgdGltZS4gVGhlIGRhdGEgcGFyYW1ldGVyIGlzCisgICAgKiBub24temVybyB3aGVuIHN1c3RhaW5lZCBwZXJmb3JtYW5jZSBtb2RlIGlzIGFjdGl2YXRlZCwgYW5kIHplcm8KKyAgICAqIHdoZW4gZGVhY3RpdmF0ZWQuCisgICAgKi8KKyAgICBTVVNUQUlORURfUEVSRk9STUFOQ0UgPSAweDAwMDAwMDA2LAorCisgICAvKioKKyAgICAqIFZSIE1vZGUgaXMgYWN0aXZhdGVkIG9yIGRlYWN0aXZhdGVkLiBWUiBtb2RlIGlzIGludGVuZGVkIHRvCisgICAgKiBwcm92aWRlIG1pbmltdW0gZ3VhcmFudGVlIGZvciBwZXJmb3JtYW5jZSBmb3IgdGhlIGFtb3VudCBvZiB0aW1lIHRoZQorICAgICogZGV2aWNlIGNhbiBzdXN0YWluIGl0LiBUaGUgZGF0YSBwYXJhbWV0ZXIgaXMgbm9uLXplcm8gd2hlbiB0aGUgbW9kZQorICAgICogaXMgYWN0aXZhdGVkIGFuZCB6ZXJvIHdoZW4gZGVhY3RpdmF0ZWQuCisgICAgKi8KKyAgICBWUl9NT0RFID0gMHgwMDAwMDAwNywKKworICAgLyoqCisgICAgKiBUaGlzIGhpbnQgaW5kaWNhdGVzIHRoYXQgYW4gYXBwbGljYXRpb24gaGFzIGJlZW4gbGF1bmNoZWQuIENhbiBiZSB1c2VkCisgICAgKiBmb3IgZGV2aWNlIHNwZWNpZmljIG9wdGltaXphdGlvbnMgZHVyaW5nIGFwcGxpY2F0aW9uIGxhdW5jaC4gVGhlIGRhdGEKKyAgICAqIHBhcmFtZXRlciBpcyBub24temVybyB3aGVuIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdG8gbGF1bmNoIGFuZCB6ZXJvIHdoZW4KKyAgICAqIGl0IGhhcyBiZWVuIGxhdW5jaGVkLgorICAgICovCisgICAgTEFVTkNIID0gMHgwMDAwMDAwOCwKK307CisKK2VudW0gRmVhdHVyZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBFbmFibGluZy9EaXNhYmxpbmcgdGhpcyBmZWF0dXJlIHdpbGwgYWxsb3cvZGlzYWxsb3cgdGhlIHN5c3RlbQorICAgICAqIHRvIHdha2UgdXAgYnkgdGFwcGluZyB0aGUgc2NyZWVuIHR3aWNlLgorICAgICAqLworICAgIFBPV0VSX0ZFQVRVUkVfRE9VQkxFX1RBUF9UT19XQUtFID0gMHgwMDAwMDAwMQorfTsKKworZW51bSBTdGF0dXMgOiB1aW50MzJfdCB7CisgICAgU1VDQ0VTUyA9IDAsCisgICAgRklMRVNZU1RFTV9FUlJPUiA9IDEKK307CisvKioKKyAqIFBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlIHN0YXRzOgorICogUG93ZXJTdGF0ZVZvdGVyIHN0cnVjdCBpcyB1c2VmdWwgZm9yIGRlc2NyaWJpbmcgdGhlIGluZGl2aWR1YWwgdm90ZXJzCisgKiB3aGVuIGEgUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUgaXMgY2hvc2VuIGJ5IGFnZ3JlZ2F0aW9uIG9mIHZvdGVzIGZyb20KKyAqIG11bHRpcGxlIGNsaWVudHMvc3lzdGVtIGNvbmRpdGlvbnMuCisgKgorICogVGhpcyBoZWxwcyBpbiBhdHRpcmJ1dGluZyB3aGF0IGluIHRoZSBkZXZpY2UgaXMgYmxvY2tpbmcgdGhlIGRldmljZSBmcm9tCisgKiBlbnRlcmluZyB0aGUgbG93ZXN0IFBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlLgorICovCitzdHJ1Y3QgUG93ZXJTdGF0ZVZvdGVyIHsKKyAgICAvKioKKyAgICAgKiBOYW1lIG9mIHRoZSB2b3Rlci4KKyAgICAgKi8KKyAgICAgc3RyaW5nIG5hbWU7CisKKyAgICAvKioKKyAgICAgKiBUb3RhbCB0aW1lIGluIG1zZWMgdGhlIHZvdGVyIHZvdGVkIGZvciB0aGUgcGxhdGZvcm0gc2xlZXAgc3RhdGUgc2luY2UKKyAgICAgKiBib290LgorICAgICAqLworICAgICB1aW50NjRfdCB0b3RhbFRpbWVJbk1zZWNWb3RlZEZvclNpbmNlQm9vdDsKKworICAgIC8qKgorICAgICAqIE51bWJlciBvZiB0aW1lcyB0aGUgdm90ZXIgdm90ZWQgZm9yIHRoZSBwbGF0Zm9ybSBzbGVlcCBzdGF0ZSBzaW5jZSBib290LgorICAgICAqLworICAgICB1aW50NjRfdCB0b3RhbE51bWJlck9mVGltZXNWb3RlZFNpbmNlQm9vdDsKK307CisKKy8qKgorICogUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUgc3RhdHM6CisgKiBQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlIHJlcHJlc2VudHMgdGhlIFBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlCisgKiB0aGUgZGV2aWNlIGlzIGNhcGFibGUgb2YgZ2V0dGluZyBpbnRvLgorICoKKyAqIFNvQ3MgdXN1YWxseSBoYXZlIG1vcmUgdGhhbiBvbmUgUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUuCisgKi8KK3N0cnVjdCBQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlIHsKKyAgICAvKioKKyAgICAgKiBQbGF0Zm9ybS1sZXZlbCBTbGVlcCBzdGF0ZSBuYW1lLgorICAgICAqLworICAgIHN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogVGltZSBzcGVudCBpbiBtc2VjIGF0IHRoaXMgcGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUgc2luY2UgYm9vdC4KKyAgICAgKi8KKyAgICB1aW50NjRfdCByZXNpZGVuY3lJbk1zZWNTaW5jZUJvb3Q7CisKKyAgICAvKioKKyAgICAgKiBUb3RhbCBudW1iZXIgb2YgdGltZXMgc3lzdGVtIGVudGVyZWQgdGhpcyBzdGF0ZS4KKyAgICAgKi8KKyAgICB1aW50NjRfdCB0b3RhbFRyYW5zaXRpb25zOworCisgICAgLyoqCisgICAgICogVGhpcyBwbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZSBjYW4gb25seSBiZSByZWFjaGVkIGR1cmluZyBzeXN0ZW0gc3VzcGVuZAorICAgICAqLworICAgIGJvb2wgc3VwcG9ydGVkT25seUluU3VzcGVuZDsKKworICAgIC8qKgorICAgICAqIHZvdGVycyBpcyB1c2VmdWwgaWYgdGhlIFBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlCisgICAgICogaXMgY2hvc2VuIGJ5IGFnZ3JlZ2F0aW9uIHZvdGVzIGZyb20gbXVsdGlwbGUgY2xpZW50cy9zeXN0ZW0gY29uZGl0aW9ucy4KKyAgICAgKiBBbGwgdGhlIHZvdGVycyBoYXZlIHRvIHNheSB5ZXMgb3IgYWxsIHRoZSBzeXN0ZW0gY29uZGl0aW9ucyBuZWVkIHRvIGJlCisgICAgICogbWV0IHRvIGVudGVyIGEgcGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUuCisgICAgICoKKyAgICAgKiBWZWN0b3Igb2Ygc2l6ZSB6ZXJvIGltcGxpZXMgZWl0aGVyIHRoZSBpbmZvIGlzIG5vdCBhdmFpbGFibGUKKyAgICAgKiBvciB0aGUgc3lzdGVtIGRvZXMgbm90IGZvbGxvdyBhIHZvdGluZyBtZWNoYW5pc20gdG8gY2hvb3NlIHRoaXMKKyAgICAgKiBQbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZS4KKyAgICAgKi8KKyAgICB2ZWM8UG93ZXJTdGF0ZVZvdGVyPiB2b3RlcnM7Cit9OwpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rIGIvcG93ZXIvMS4wL3Z0cy9BbmRyb2lkLm1rCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gcmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rCmNvcHkgdG8gcG93ZXIvMS4wL3Z0cy9BbmRyb2lkLm1rCmRpZmYgLS1naXQgYS9wb3dlci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL3Bvd2VyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhYjFlYjQKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM2IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsUG93ZXJWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsUG93ZXJWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CmRpZmYgLS1naXQgYS9wb3dlci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsUG93ZXJWMV8wVGFyZ2V0VGVzdC5jcHAgYi9wb3dlci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsUG93ZXJWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk0ZmE0ZgotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxQb3dlclYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDE4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAicG93ZXJfaGlkbF9oYWxfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8Y3V0aWxzL3Byb3BlcnRpZXMuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS91bmlxdWVfZmQuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9JUG93ZXIuaD4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpJUG93ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6RmVhdHVyZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpQb3dlckhpbnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6UG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6OmJhc2U6OnVuaXF1ZV9mZDsKKwordXNpbmcgc3RkOjp2ZWN0b3I7CisKKyNkZWZpbmUgQ1BVX0dPVkVSTk9SX1BBVEggXAorICAiL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1MC9jcHVmcmVxL3NjYWxpbmdfZ292ZXJub3IiCisjZGVmaW5lIEFWQUlMQUJMRV9HT1ZFUk5PUlNfUEFUSCBcCisgICIvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHUwL2NwdWZyZXEvc2NhbGluZ19hdmFpbGFibGVfZ292ZXJub3JzIgorCitjbGFzcyBQb3dlckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBwb3dlciA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElQb3dlcj4oKTsKKyAgICBBU1NFUlRfTkUocG93ZXIsIG51bGxwdHIpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBzcDxJUG93ZXI+IHBvd2VyOworfTsKKworLy8gU2FuaXR5IGNoZWNrIFBvd2VyOjpzZXRJbnRlcmFjdGl2ZS4KK1RFU1RfRihQb3dlckhpZGxUZXN0LCBTZXRJbnRlcmFjdGl2ZSkgeworICBSZXR1cm48dm9pZD4gcmV0OworCisgIHJldCA9IHBvd2VyLT5zZXRJbnRlcmFjdGl2ZSh0cnVlKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgcmV0ID0gcG93ZXItPnNldEludGVyYWN0aXZlKGZhbHNlKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIFRlc3QgUG93ZXI6OnNldEludGVyYWN0aXZlIGFuZCBQb3dlcjo6cG93ZXJIaW50KExhdW5jaCkKKy8vIHdpdGggZWFjaCBhdmFpbGFibGUgQ1BVIGdvdmVybm9yLCBpZiBhdmFpbGFibGUKK1RFU1RfRihQb3dlckhpZGxUZXN0LCBUcnlEaWZmZXJlbnRHb3Zlcm5vcnMpIHsKKyAgUmV0dXJuPHZvaWQ+IHJldDsKKworICB1bmlxdWVfZmQgZmQxKG9wZW4oQ1BVX0dPVkVSTk9SX1BBVEgsIE9fUkRXUikpOworICB1bmlxdWVfZmQgZmQyKG9wZW4oQVZBSUxBQkxFX0dPVkVSTk9SU19QQVRILCBPX1JET05MWSkpOworICBpZiAoZmQxIDwgMCB8fCBmZDIgPCAwKSB7CisgICAgLy8gRmlsZXMgZG9uJ3QgZXhpc3QsIHNvIHNraXAgdGhlIHJlc3Qgb2YgdGhlIHRlc3QgY2FzZQorICAgIFNVQ0NFRUQoKTsKKyAgfQorCisgIGNoYXIgb2xkX2dvdmVybm9yWzgwXTsKKyAgQVNTRVJUX0xFKDAsIHJlYWQoZmQxLCBvbGRfZ292ZXJub3IsIDgwKSk7CisKKyAgY2hhciBnb3Zlcm5vcnNbMTAyNF07CisgIHVuc2lnbmVkIGxlbiA9IHJlYWQoZmQyLCBnb3Zlcm5vcnMsIDEwMjQpOworICBBU1NFUlRfTEUoMHUsIGxlbik7CisgIGdvdmVybm9yc1tsZW5dID0gJ1wwJzsKKworICBjaGFyICpzYXZlcHRyOworICBjaGFyICpuYW1lID0gc3RydG9rX3IoZ292ZXJub3JzLCAiIFxuIiwgJnNhdmVwdHIpOworICB3aGlsZSAobmFtZSkgeworICAgIEFTU0VSVF9MRSgwLCB3cml0ZShmZDEsIG5hbWUsIHN0cmxlbihuYW1lKSkpOworICAgIHJldCA9IHBvd2VyLT5zZXRJbnRlcmFjdGl2ZSh0cnVlKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHJldCA9IHBvd2VyLT5zZXRJbnRlcmFjdGl2ZShmYWxzZSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICByZXQgPSBwb3dlci0+c2V0SW50ZXJhY3RpdmUoZmFsc2UpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgcG93ZXItPnBvd2VySGludChQb3dlckhpbnQ6OkxBVU5DSCwgMSk7CisgICAgcG93ZXItPnBvd2VySGludChQb3dlckhpbnQ6OkxBVU5DSCwgMCk7CisKKyAgICBuYW1lID0gc3RydG9rX3IoTlVMTCwgIiBcbiIsICZzYXZlcHRyKTsKKyAgfQorCisgIEFTU0VSVF9MRSgwLCB3cml0ZShmZDEsIG9sZF9nb3Zlcm5vciwgc3RybGVuKG9sZF9nb3Zlcm5vcikpKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIFBvd2VyOjpwb3dlckhpbnQgb24gZ29vZCBhbmQgYmFkIGlucHV0cy4KK1RFU1RfRihQb3dlckhpZGxUZXN0LCBQb3dlckhpbnQpIHsKKyAgUG93ZXJIaW50IGJhZEhpbnQgPSBzdGF0aWNfY2FzdDxQb3dlckhpbnQ+KDB4QSk7CisgIGF1dG8gaGludHMgPSB7UG93ZXJIaW50OjpWU1lOQywgICAgICAgICBQb3dlckhpbnQ6OklOVEVSQUNUSU9OLAorICAgICAgICAgICAgICAgIFBvd2VySGludDo6VklERU9fRU5DT0RFLCAgUG93ZXJIaW50OjpWSURFT19ERUNPREUsCisgICAgICAgICAgICAgICAgUG93ZXJIaW50OjpMT1dfUE9XRVIsICAgICBQb3dlckhpbnQ6OlNVU1RBSU5FRF9QRVJGT1JNQU5DRSwKKyAgICAgICAgICAgICAgICBQb3dlckhpbnQ6OlZSX01PREUsICAgICAgIFBvd2VySGludDo6TEFVTkNILAorICAgICAgICAgICAgICAgIGJhZEhpbnR9OworICBSZXR1cm48dm9pZD4gcmV0OworICBmb3IgKGF1dG8gaGludCA6IGhpbnRzKSB7CisgICAgcmV0ID0gcG93ZXItPnBvd2VySGludChoaW50LCAzMDAwMCk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICByZXQgPSBwb3dlci0+cG93ZXJIaW50KGhpbnQsIDApOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICB9CisKKyAgLy8gVHVybmluZyB0aGVzZSBoaW50cyBvbiBpbiBkaWZmZXJlbnQgb3JkZXJzIHRyaWdnZXJzIGRpZmZlcmVudCBjb2RlIHBhdGhzLAorICAvLyBzbyBpdGVyYXRlIG92ZXIgcG9zc2libGUgb3JkZXJpbmdzLgorICBzdGQ6OnZlY3RvcjxQb3dlckhpbnQ+IGhpbnRzMiA9IHtQb3dlckhpbnQ6OkxBVU5DSCwgUG93ZXJIaW50OjpWUl9NT0RFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3dlckhpbnQ6OlNVU1RBSU5FRF9QRVJGT1JNQU5DRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG93ZXJIaW50OjpJTlRFUkFDVElPTn07CisgIGF1dG8gY29tcGFyZUhpbnRzID0gW10oUG93ZXJIaW50IGwsIFBvd2VySGludCByKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90PihsKSA8IHN0YXRpY19jYXN0PHVpbnQzMl90PihyKTsKKyAgfTsKKyAgc3RkOjpzb3J0KGhpbnRzMi5iZWdpbigpLCBoaW50czIuZW5kKCksIGNvbXBhcmVIaW50cyk7CisgIGRvIHsKKyAgICBmb3IgKGF1dG8gaXRlciA9IGhpbnRzMi5iZWdpbigpOyBpdGVyICE9IGhpbnRzMi5lbmQoKTsgaXRlcisrKSB7CisgICAgICByZXQgPSBwb3dlci0+cG93ZXJIaW50KCppdGVyLCAwKTsKKyAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgIH0KKyAgICBmb3IgKGF1dG8gaXRlciA9IGhpbnRzMi5iZWdpbigpOyBpdGVyICE9IGhpbnRzMi5lbmQoKTsgaXRlcisrKSB7CisgICAgICByZXQgPSBwb3dlci0+cG93ZXJIaW50KCppdGVyLCAzMDAwMCk7CisgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICB9CisgIH0gd2hpbGUgKHN0ZDo6bmV4dF9wZXJtdXRhdGlvbihoaW50czIuYmVnaW4oKSwgaGludHMyLmVuZCgpLCBjb21wYXJlSGludHMpKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIFBvd2VyOjpzZXRGZWF0dXJlKCkgb24gZ29vZCBhbmQgYmFkIGlucHV0cy4KK1RFU1RfRihQb3dlckhpZGxUZXN0LCBTZXRGZWF0dXJlKSB7CisgIFJldHVybjx2b2lkPiByZXQ7CisgIHJldCA9IHBvd2VyLT5zZXRGZWF0dXJlKEZlYXR1cmU6OlBPV0VSX0ZFQVRVUkVfRE9VQkxFX1RBUF9UT19XQUtFLCB0cnVlKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIHJldCA9IHBvd2VyLT5zZXRGZWF0dXJlKEZlYXR1cmU6OlBPV0VSX0ZFQVRVUkVfRE9VQkxFX1RBUF9UT19XQUtFLCBmYWxzZSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgIEZlYXR1cmUgYmFkRmVhdHVyZSA9IHN0YXRpY19jYXN0PEZlYXR1cmU+KDB4Mik7CisgIHJldCA9IHBvd2VyLT5zZXRGZWF0dXJlKGJhZEZlYXR1cmUsIHRydWUpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgcmV0ID0gcG93ZXItPnNldEZlYXR1cmUoYmFkRmVhdHVyZSwgZmFsc2UpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIFBvd2VyOjpnZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHMoKS4KK1RFU1RfRihQb3dlckhpZGxUZXN0LCBHZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHMpIHsKKyAgaGlkbF92ZWM8UG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZT4gdmVjOworICBTdGF0dXMgczsKKyAgYXV0byBjYiA9IFsmdmVjLCAmc10oaGlkbF92ZWM8UG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZT4gc3RhdGVzLAorICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXMgc3RhdHVzKSB7CisgICAgdmVjID0gc3RhdGVzOworICAgIHMgPSBzdGF0dXM7CisgIH07CisgIFJldHVybjx2b2lkPiByZXQgPSBwb3dlci0+Z2V0UGxhdGZvcm1Mb3dQb3dlclN0YXRzKGNiKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9UUlVFKHMgPT0gU3RhdHVzOjpTVUNDRVNTIHx8IHMgPT0gU3RhdHVzOjpGSUxFU1lTVEVNX0VSUk9SKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9wb3dlci9BbmRyb2lkLmJwIGIvcG93ZXIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3JhZGlvLzEuMC9JUmFkaW9SZXNwb25zZS5oYWwgYi9yYWRpby8xLjAvSVJhZGlvUmVzcG9uc2UuaGFsCmluZGV4IDIzYzRkNDEuLjRhOWJlNTkgMTAwNjQ0Ci0tLSBhL3JhZGlvLzEuMC9JUmFkaW9SZXNwb25zZS5oYWwKKysrIGIvcmFkaW8vMS4wL0lSYWRpb1Jlc3BvbnNlLmhhbApAQCAtMTAyLDggKzEwMiwxMyBAQAogICAgICAqCiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCi0gICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUgKHJhZGlvIHJlc2V0dGluZykKICAgICAgKiAgIFJhZGlvRXJyb3I6UEFTU1dPUkRfSU5DT1JSRUNUIChjb2RlIGlzIGludmFsaWQpCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX1NJTV9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKICAgICAgKi8KICAgICBvbmV3YXkgc3VwcGx5TmV0d29ya0RlcGVyc29uYWxpemF0aW9uUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgaW50MzJfdCByZW1haW5pbmdSZXRyaWVzKTsKIApAQCAtMzI4LDYgKzMzMywxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9UX1BST1ZJU0lPTkVECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRTaWduYWxTdHJlbmd0aFJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIFNpZ25hbFN0cmVuZ3RoIHNpZ1N0cmVuZ3RoKTsKIApAQCAtMzUxLDYgKzM2MiwxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9UX1BST1ZJU0lPTkVECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXREYXRhUmVnaXN0cmF0aW9uU3RhdGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLAogICAgICAgICAgICAgRGF0YVJlZ1N0YXRlUmVzdWx0IGRhdGFSZWdSZXNwb25zZSk7CkBAIC0zNjQsNiArMzgxLDEwIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRPcGVyYXRvclJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIHN0cmluZyBsb25nTmFtZSwgc3RyaW5nIHNob3J0TmFtZSwKICAgICAgICAgICAgIHN0cmluZyBudW1lcmljKTsKQEAgLTM3NSw2ICszOTYsMTYgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX1NUQVRFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6REVWSUNFX0lOX1VTRQorICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9NT0RFTV9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0UmFkaW9Qb3dlclJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC00NjQsNiArNDk1LDggQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BfTk9UX0FMTE9XRURfQkVGT1JFX1JFR19UT19OVwogICAgICAqICAgUmFkaW9FcnJvcjpPUF9OT1RfQUxMT1dFRF9EVVJJTkdfVk9JQ0VfQ0FMTAogICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNldHVwRGF0YUNhbGxSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBTZXR1cERhdGFDYWxsUmVzdWx0IGRjUmVzcG9uc2UpOwogCkBAIC02OTIsNiArNzI1LDEwIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9DQUxMX0lECisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfU1RBVEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGRlYWN0aXZhdGVEYXRhQ2FsbFJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC03NjUsNiArODAyLDEyIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0TmV0d29ya1NlbGVjdGlvbk1vZGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBib29sIG1hbnVhbCk7CiAKQEAgLTc3Niw2ICs4MTksMTIgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpJTExFR0FMX1NJTV9PUl9NRQogICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKgogICAgICAqIFJldHVybnMgUmFkaW9FcnJvcjpJTExFR0FMX1NJTV9PUl9NRSB3aGVuIHRoZSBmYWlsdXJlIGlzIHBlcm1hbmVudCBhbmQKICAgICAgKiBubyByZXRyaWVzIG5lZWRlZCwgc3VjaCBhcyBpbGxlZ2FsIFNJTSBvciBNRS4KQEAgLTc5MCw2ICs4MzksMTMgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpJTExFR0FMX1NJTV9PUl9NRQogICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqCiAgICAgICogUmV0dXJucyBSYWRpb0Vycm9yOklMTEVHQUxfU0lNX09SX01FIHdoZW4gdGhlIGZhaWx1cmUgaXMgcGVybWFuZW50IGFuZAogICAgICAqIG5vIHJldHJpZXMgbmVlZGVkLCBzdWNoIGFzIGlsbGVnYWwgU0lNIG9yIE1FLgpAQCAtODEwLDYgKzg2Niw4IEBACiAgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgogICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKICAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAorICAgICAqICAgUmFkaW9FcnJvcjpDQU5DRUxMRUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0QXZhaWxhYmxlTmV0d29ya3NSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLAogICAgICAgICAgICAgdmVjPE9wZXJhdG9ySW5mbz4gbmV0d29ya0luZm9zKTsKQEAgLTg1OCw2ICs5MTYsMTIgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOkVNUFRZX1JFQ09SRAorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk5PVF9QUk9WSVNJT05FRAorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0QmFzZWJhbmRWZXJzaW9uUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgc3RyaW5nIHZlcnNpb24pOwogCkBAIC0xMDA2LDYgKzEwNzAsMTIgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBzZXRCYW5kTW9kZVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xMDE3LDYgKzEwODcsMTEgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGdldEF2YWlsYWJsZUJhbmRNb2Rlc1Jlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIHZlYzxSYWRpb0JhbmRNb2RlPiBiYW5kTW9kZXMpOwogCkBAIC0xMDQ5LDkgKzExMjQsMTEgQEAKICAgICAgKgogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQotICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKLSAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECiAgICAgICovCiAgICAgb25ld2F5IGhhbmRsZVN0a0NhbGxTZXR1cFJlcXVlc3RGcm9tU2ltUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTEwODMsNiArMTE2MCwxMiBAQAogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAogICAgICAqICAgUmFkaW9FcnJvcjpNT0RFX05PVF9TVVBQT1JURUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0UHJlZmVycmVkTmV0d29ya1R5cGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTA5Myw2ICsxMTc2LDEyIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0UHJlZmVycmVkTmV0d29ya1R5cGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLAogICAgICAgICAgICAgUHJlZmVycmVkTmV0d29ya1R5cGUgbndUeXBlKTsKQEAgLTExMDUsNiArMTE5NCwxMiBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT19ORVRXT1JLX0ZPVU5ECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXROZWlnaGJvcmluZ0NpZHNSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCB2ZWM8TmVpZ2hib3JpbmdDZWxsPiBjZWxscyk7CiAKQEAgLTExMTQsNiArMTIwOSwxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNldExvY2F0aW9uVXBkYXRlc1Jlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xMTM0LDYgKzEyMzUsMTMgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAorICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0Q2RtYVJvYW1pbmdQcmVmZXJlbmNlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTExNDUsNiArMTI1MywxMSBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0Q2RtYVJvYW1pbmdQcmVmZXJlbmNlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgQ2RtYVJvYW1pbmdUeXBlIHR5cGUpOwogCkBAIC0xNDI0LDYgKzE1MzcsMTMgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOlNVQlNDUklQVElPTl9OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9UX1BST1ZJU0lPTkVECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRDRE1BU3Vic2NyaXB0aW9uUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgc3RyaW5nIG1kbiwgc3RyaW5nIGhTaWQsCiAgICAgICAgICAgICBzdHJpbmcgaE5pZCwgc3RyaW5nIG1pbiwgc3RyaW5nIHBybCk7CkBAIC0xNDgwLDYgKzE2MDAsMTIgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk5PVF9QUk9WSVNJT05FRAogICAgICAqCiAgICAgICogSWYgYSBlbXB0eSBzdHJpbmcgdmFsdWUgaXMgcmV0dXJuZWQgZm9yIGFueSBvZiB0aGUgZGV2aWNlIGlkLCBpdCBtZWFucyB0aGF0IHRoZXJlIHdhcyBlcnJvcgogICAgICAqIGFjY2Vzc2luZyB0aGUgZGV2aWNlLgpAQCAtMTQ5NSw2ICsxNjIxLDEyIEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9fQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBleGl0RW1lcmdlbmN5Q2FsbGJhY2tNb2RlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTE2MjIsNiArMTc1NCwxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTkVUV09SS19GT1VORAorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0Q2VsbEluZm9MaXN0UmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgdmVjPENlbGxJbmZvPiBjZWxsSW5mbyk7CiAKQEAgLTE2MzEsNiArMTc2OSwxMCBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUwogICAgICAqLwogICAgIG9uZXdheSBzZXRDZWxsSW5mb0xpc3RSYXRlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTE2NDEsNiArMTc4MywxMyBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6U1VCU0NSSVBUSU9OX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpOT1RfUFJPVklTSU9ORUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNldEluaXRpYWxBdHRhY2hBcG5SZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTc3MSw2ICsxOTIwLDEyIEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpTVUJTQ1JJUFRJT05fTk9UX1NVUFBPUlRFRAorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBzZXRVaWNjU3Vic2NyaXB0aW9uUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTE3ODAsNiArMTkzNSwxMyBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6REVWSUNFX0lOX1VTRQorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX01PREVNX1NUQVRFCiAgICAgICovCiAgICAgb25ld2F5IHNldERhdGFBbGxvd2VkUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTE4MjAsNiArMTk4MiwxMCBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgcmVxdWVzdFNodXRkb3duUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTE4MzEsNiArMTk5Nyw4IEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0UmFkaW9DYXBhYmlsaXR5UmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgUmFkaW9DYXBhYmlsaXR5IHJjKTsKIApAQCAtMTg0Myw2ICsyMDExLDEzIEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUgbWVhbnMgYSB1bnNvbCByYWRpb0NhcGFiaWxpdHkoKSB3aWxsIGJlIHNlbnQgd2l0aGluIDMwIHNlY29uZHMuCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0UmFkaW9DYXBhYmlsaXR5UmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgUmFkaW9DYXBhYmlsaXR5IHJjKTsKIApAQCAtMTg1NCw2ICsyMDI5LDggQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOkxDRV9OT1RfU1VQUE9SVEVECisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc3RhcnRMY2VTZXJ2aWNlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgTGNlU3RhdHVzSW5mbyBzdGF0dXNJbmZvKTsKIApAQCAtMTg4Niw2ICsyMDYzLDExIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT1RfUFJPVklTSU9ORUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0TW9kZW1BY3Rpdml0eUluZm9SZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBBY3Rpdml0eVN0YXRzSW5mbyBhY3Rpdml0eUluZm8pOwogCkBAIC0xOTI2LDYgKzIxMDgsMTEgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNlbmREZXZpY2VTdGF0ZVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xOTM2LDYgKzIxMjMsMTAgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUwogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0SW5kaWNhdGlvbkZpbHRlclJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfaWNjLmNwcCBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9pY2MuY3BwCmluZGV4IDE1NDdjMzMuLjZhZjVmYmEgMTAwNjQ0Ci0tLSBhL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9pY2MuY3BwCisrKyBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9pY2MuY3BwCkBAIC0zMTYsOCArMzE2LDEzIEBACiAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CiAKICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7Ci0gICAgICBBU1NFUlRfVFJVRShDaGVja0dlbmVyYWxFcnJvcigpIHx8CisgICAgICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FIHx8CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpTWVNURU1fRVJSIHx8CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT19NRU1PUlkgfHwKKyAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok1PREVNX0VSUiB8fAogICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9BUkdVTUVOVFMgfHwKLSAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OlBBU1NXT1JEX0lOQ09SUkVDVCk7CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX1NJTV9TVEFURSB8fAorICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6UEFTU1dPUkRfSU5DT1JSRUNUIHx8CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlRFUk5BTF9FUlIpOwogICB9CiB9CmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfbWlzYy5jcHAgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfbWlzYy5jcHAKaW5kZXggNjg3OWM5MC4uZWFjMzVmNyAxMDA2NDQKLS0tIGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX21pc2MuY3BwCisrKyBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9taXNjLmNwcApAQCAtMTQzLDE1ICsxNDMsMTcgQEAKIAogICByYWRpby0+Z2V0QXZhaWxhYmxlTmV0d29ya3MoKytzZXJpYWwpOwogICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7Ci0gIEVYUEVDVF9FUShSYWRpb1Jlc3BvbnNlVHlwZTo6U09MSUNJVEVELCByYWRpb1JzcC0+cnNwSW5mby50eXBlKTsKICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKKyAgQVNTRVJUX1RSVUUocmFkaW9Sc3AtPnJzcEluZm8udHlwZSA9PSBSYWRpb1Jlc3BvbnNlVHlwZTo6U09MSUNJVEVEIHx8CisgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLnR5cGUgPT0gUmFkaW9SZXNwb25zZVR5cGU6OlNPTElDSVRFRF9BQ0tfRVhQKTsKIAogICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKLSAgICAgIEFTU0VSVF9UUlVFKENoZWNrR2VuZXJhbEVycm9yKCkgfHwKLSAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUgfHwKLSAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OkRFVklDRV9JTl9VU0UgfHwKLSAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OkNBTkNFTExFRCB8fAotICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6T1BFUkFUSU9OX05PVF9BTExPV0VEKTsKKyAgICAgIEFTU0VSVF9UUlVFKAorICAgICAgICAgIENoZWNrR2VuZXJhbEVycm9yKCkgfHwgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSB8fAorICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OkRFVklDRV9JTl9VU0UgfHwKKyAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpDQU5DRUxMRUQgfHwKKyAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpPUEVSQVRJT05fTk9UX0FMTE9XRUQgfHwKKyAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpNT0RFTV9FUlIpOwogICB9CiB9CiAKQEAgLTU1Niw3ICs1NTgsNyBAQAogVEVTVF9GKFJhZGlvSGlkbFRlc3QsIG52UmVzZXRDb25maWcpIHsKICAgaW50IHNlcmlhbCA9IDE7CiAKLSAgcmFkaW8tPm52UmVzZXRDb25maWcoKytzZXJpYWwsIFJlc2V0TnZUeXBlOjpSRUxPQUQpOworICByYWRpby0+bnZSZXNldENvbmZpZygrK3NlcmlhbCwgUmVzZXROdlR5cGU6OkVSQVNFKTsKICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOwogICBFWFBFQ1RfRVEoUmFkaW9SZXNwb25zZVR5cGU6OlNPTElDSVRFRCwgcmFkaW9Sc3AtPnJzcEluZm8udHlwZSk7CiAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CkBAIC03MzMsNiArNzM1LDggQEAKIFRFU1RfRihSYWRpb0hpZGxUZXN0LCBzZXRBbGxvd2VkQ2FycmllcnMpIHsKICAgaW50IHNlcmlhbCA9IDE7CiAgIENhcnJpZXJSZXN0cmljdGlvbnMgY2FycmllcnM7CisKKyAgLyogQ2FycmllciByZXN0cmljdGlvbiB3aXRoIG9uZSBjYXJyaWVyICovCiAgIG1lbXNldCgmY2FycmllcnMsIDAsIHNpemVvZihjYXJyaWVycykpOwogICBjYXJyaWVycy5hbGxvd2VkQ2FycmllcnMucmVzaXplKDEpOwogICBjYXJyaWVycy5leGNsdWRlZENhcnJpZXJzLnJlc2l6ZSgwKTsKQEAgLTc0OSw2ICs3NTMsMjAgQEAKICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7CiAgICAgQVNTRVJUX1RSVUUocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSk7CiAgIH0KKworICAvKiBSZXNldCBiYWNrIHRvIG5vIGNhcnJpZXIgcmVzdHJpY3Rpb24gKi8KKyAgbWVtc2V0KCZjYXJyaWVycywgMCwgc2l6ZW9mKGNhcnJpZXJzKSk7CisgIGNhcnJpZXJzLmFsbG93ZWRDYXJyaWVycy5yZXNpemUoMCk7CisgIGNhcnJpZXJzLmV4Y2x1ZGVkQ2FycmllcnMucmVzaXplKDApOworCisgIHJhZGlvLT5zZXRBbGxvd2VkQ2FycmllcnMoKytzZXJpYWwsIHRydWUsIGNhcnJpZXJzKTsKKyAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOworICBFWFBFQ1RfRVEoUmFkaW9SZXNwb25zZVR5cGU6OlNPTElDSVRFRCwgcmFkaW9Sc3AtPnJzcEluZm8udHlwZSk7CisgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CisKKyAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7CisgICAgICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FKTsKKyAgfQogfQogCiAvKgpAQCAtODEzLDcgKzgzMSw3IEBACiAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CiAKICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7Ci0gICAgICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FIHx8Ci0gICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpSRVFVRVNUX05PVF9TVVBQT1JURUQpOworICAgIEFTU0VSVF9UUlVFKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUKKyAgICAgICAgfHwgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6UkVRVUVTVF9OT1RfU1VQUE9SVEVEKTsKICAgfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KZGlmZiAtLWdpdCBhL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9zdGsuY3BwIGIvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3N0ay5jcHAKaW5kZXggYjAyYTc0MC4uMzg1OGM5MCAxMDA2NDQKLS0tIGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3N0ay5jcHAKKysrIGIvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3N0ay5jcHAKQEAgLTk4LDcgKzk4LDEyIEBACiAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CiAKICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7Ci0gICAgRVhQRUNUX0VRKFJhZGlvRXJyb3I6Ok5PTkUsIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yKTsKKyAgICAgIEFTU0VSVF9UUlVFKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUgfHwKKyAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OlNZU1RFTV9FUlIgfHwKKyAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PX01FTU9SWSB8fAorICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6TU9ERU1fRVJSIHx8CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX0FSR1VNRU5UUyB8fAorICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5URVJOQUxfRVJSKTsKICAgfQogfQogCmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfdXRpbHMuaCBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF91dGlscy5oCmluZGV4IDczNWU1NzUuLjkyM2UxZTMgMTAwNjQ0Ci0tLSBhL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF91dGlscy5oCisrKyBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF91dGlscy5oCkBAIC04MCw3ICs4MCw3IEBACiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwogdXNpbmcgOjphbmRyb2lkOjpzcDsKIAotI2RlZmluZSBUSU1FT1VUX1BFUklPRCA0MAorI2RlZmluZSBUSU1FT1VUX1BFUklPRCA2NQogI2RlZmluZSBSQURJT19TRVJWSUNFX05BTUUgInNsb3QxIgogCiBjbGFzcyBSYWRpb0hpZGxUZXN0OwpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3NhcF9oaWRsX2hhbF9hcGkuY3BwIGIvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3NhcF9oaWRsX2hhbF9hcGkuY3BwCmluZGV4IDY4MjIzMGMuLjNhYzg5MWQgMTAwNjQ0Ci0tLSBhL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9zYXBfaGlkbF9oYWxfYXBpLmNwcAorKysgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvc2FwX2hpZGxfaGFsX2FwaS5jcHAKQEAgLTUxLDcgKzUxLDggQEAKICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOwogICBFWFBFQ1RfRVEoc2FwQ2ItPnNhcFJlc3BvbnNlVG9rZW4sIHRva2VuKTsKIAotICBBU1NFUlRfVFJVRShTYXBSZXN1bHRDb2RlOjpDQVJEX05PVF9BQ0NFU1NTSUJMRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAorICBBU1NFUlRfVFJVRShTYXBSZXN1bHRDb2RlOjpHRU5FUklDX0ZBSUxVUkUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKKyAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6Q0FSRF9OT1RfQUNDRVNTU0lCTEUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKICAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6Q0FSRF9BTFJFQURZX1BPV0VSRURfT0ZGID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CiAgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkNBUkRfUkVNT1ZFRCA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSk7CiB9CkBAIC02Niw3ICs2Nyw4IEBACiAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdCgpKTsKICAgRVhQRUNUX0VRKHNhcENiLT5zYXBSZXNwb25zZVRva2VuLCB0b2tlbik7CiAKLSAgQVNTRVJUX1RSVUUoU2FwUmVzdWx0Q29kZTo6REFUQV9OT1RfQVZBSUxBQkxFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CisgIEFTU0VSVF9UUlVFKFNhcFJlc3VsdENvZGU6OkdFTkVSSUNfRkFJTFVSRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAorICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpEQVRBX05PVF9BVkFJTEFCTEUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKICAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6Q0FSRF9BTFJFQURZX1BPV0VSRURfT0ZGID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CiAgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkNBUkRfUkVNT1ZFRCA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSk7CiB9CkBAIC04Miw3ICs4NCw4IEBACiAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdCgpKTsKICAgRVhQRUNUX0VRKHNhcENiLT5zYXBSZXNwb25zZVRva2VuLCB0b2tlbik7CiAKLSAgQVNTRVJUX1RSVUUoU2FwUmVzdWx0Q29kZTo6Q0FSRF9OT1RfQUNDRVNTU0lCTEUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKKyAgQVNTRVJUX1RSVUUoU2FwUmVzdWx0Q29kZTo6R0VORVJJQ19GQUlMVVJFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CisgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkNBUkRfTk9UX0FDQ0VTU1NJQkxFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CiAgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkNBUkRfQUxSRUFEWV9QT1dFUkVEX09GRiA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAogICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpDQVJEX1JFTU9WRUQgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKICAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6Q0FSRF9BTFJFQURZX1BPV0VSRURfT04gPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUpOwpAQCAtOTgsNyArMTAxLDggQEAKICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOwogICBFWFBFQ1RfRVEoc2FwQ2ItPnNhcFJlc3BvbnNlVG9rZW4sIHRva2VuKTsKIAotICBBU1NFUlRfVFJVRShTYXBSZXN1bHRDb2RlOjpDQVJEX05PVF9BQ0NFU1NTSUJMRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAorICBBU1NFUlRfVFJVRShTYXBSZXN1bHRDb2RlOjpHRU5FUklDX0ZBSUxVUkUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKKyAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6Q0FSRF9OT1RfQUNDRVNTU0lCTEUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKICAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6Q0FSRF9BTFJFQURZX1BPV0VSRURfT0ZGID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CiAgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkNBUkRfUkVNT1ZFRCA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSk7CiB9CkBAIC0xMTMsNyArMTE3LDggQEAKICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOwogICBFWFBFQ1RfRVEoc2FwQ2ItPnNhcFJlc3BvbnNlVG9rZW4sIHRva2VuKTsKIAotICBFWFBFQ1RfRVEoU2FwUmVzdWx0Q29kZTo6REFUQV9OT1RfQVZBSUxBQkxFLCBzYXBDYi0+c2FwUmVzdWx0Q29kZSk7CisgIEFTU0VSVF9UUlVFKFNhcFJlc3VsdENvZGU6OkdFTkVSSUNfRkFJTFVSRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAorICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpEQVRBX05PVF9BVkFJTEFCTEUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvcmVuZGVyc2NyaXB0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNNaXNjZWxsYW5lb3VzVGVzdHMuY3BwIGIvcmVuZGVyc2NyaXB0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNNaXNjZWxsYW5lb3VzVGVzdHMuY3BwCmluZGV4IDIzYjA5YWMuLjI3OGRiZjMgMTAwNjQ0Ci0tLSBhL3JlbmRlcnNjcmlwdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzTWlzY2VsbGFuZW91c1Rlc3RzLmNwcAorKysgYi9yZW5kZXJzY3JpcHQvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c01pc2NlbGxhbmVvdXNUZXN0cy5jcHAKQEAgLTE3NSw2ICsxNzUsOCBAQAogICAgIEFTU0VSVF9ORShOYXRpdmVXaW5kb3coMCksIG5hdGl2ZVdpbmRvdyk7CiAKICAgICAoKEFOYXRpdmVXaW5kb3cgKiluYXRpdmVXaW5kb3cpLT5pbmNTdHJvbmcobnVsbHB0cik7CisgICAgbmF0aXZlX3dpbmRvd19hcGlfY29ubmVjdCgoQU5hdGl2ZVdpbmRvdyopbmF0aXZlV2luZG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkFUSVZFX1dJTkRPV19BUElfQ1BVKTsKIAogICAgIGNvbnRleHQtPmFsbG9jYXRpb25TZXROYXRpdmVXaW5kb3coYWxsb2NhdGlvblNlbmQsIG5hdGl2ZVdpbmRvdyk7CiAgICAgY29udGV4dC0+YWxsb2NhdGlvbjJEV3JpdGUoYWxsb2NhdGlvblNlbmQsIDAsIDAsIDAsIEFsbG9jYXRpb25DdWJlbWFwRmFjZTo6UE9TSVRJVkVfWCwgNTEyLCA1MTIsCkBAIC0yMzksNiArMjQxLDggQEAKICAgICBFWFBFQ1RfRVEobmF0aXZlV2luZG93MiwgbmF0aXZlV2luZG93MSk7CiAKICAgICAoKEFOYXRpdmVXaW5kb3cgKiluYXRpdmVXaW5kb3cxKS0+aW5jU3Ryb25nKG51bGxwdHIpOworICAgIG5hdGl2ZV93aW5kb3dfYXBpX2Nvbm5lY3QoKEFOYXRpdmVXaW5kb3cqKW5hdGl2ZVdpbmRvdzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQVRJVkVfV0lORE9XX0FQSV9DUFUpOwogCiAgICAgY29udGV4dC0+YWxsb2NhdGlvblNldE5hdGl2ZVdpbmRvdyhhbGxvY2F0aW9uU2VuZCwgbmF0aXZlV2luZG93MSk7CiAgICAgY29udGV4dC0+YWxsb2NhdGlvbjJEV3JpdGUoYWxsb2NhdGlvblNlbmQsIDAsIDAsIDAsIEFsbG9jYXRpb25DdWJlbWFwRmFjZTo6UE9TSVRJVkVfWCwgNTEyLCA1MTIsCmRpZmYgLS1naXQgYS9yZW5kZXJzY3JpcHQvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c1NjcmlwdFRlc3RzLmNwcCBiL3JlbmRlcnNjcmlwdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzU2NyaXB0VGVzdHMuY3BwCmluZGV4IGZlZDdjNmUuLjgyNjhkY2MgMTAwNjQ0Ci0tLSBhL3JlbmRlcnNjcmlwdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzU2NyaXB0VGVzdHMuY3BwCisrKyBiL3JlbmRlcnNjcmlwdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzU2NyaXB0VGVzdHMuY3BwCkBAIC0zMjMsMjcgKzMyMywzMCBAQAogCiAvKgogICogVGhpcyB0ZXN0IGdyb3VwcyB0b2dldGhlciB0d28gUmVuZGVyU2NyaXB0IGludHJpbnNpYyBrZXJuZWxzIHRvIHJ1biBvbmUgYWZ0ZXIKLSAqIHRoZSBvdGhlciBhc3luY2hyb25vdXNseSB3aXRoIHJlc3BlY3QgdG8gdGhlIGNsaWVudC4gVGhlIHRlc3QgY29uZmlndXJlcyBZdXZUb1JHQihBKSBhbmQgQmx1ciwKLSAqIGFuZCBsaW5rcyB0aGVtIHRvZ2V0aGVyIHN1Y2ggdGhhdCBCbHVyIHdpbGwgZXhlY3V0ZSBhZnRlciBZdXZUb1JHQihBKSBhbmQgdXNlIGl0cyByZXN1bHQuIFRoZQotICogdGVzdCBjaGVja3MgdGhlIGRhdGEgcmV0dXJuZWQgdG8gbWFrZSBzdXJlIGl0IHdhcyBjaGFuZ2VkIGFmdGVyIHBhc3NpbmcgdGhyb3VnaCB0aGUgZW50aXJlCi0gKiBTY3JpcHRHcm91cC4KKyAqIHRoZSBvdGhlciBhc3luY2hyb25vdXNseSB3aXRoIHJlc3BlY3QgdG8gdGhlIGNsaWVudC4gVGhlIHRlc3QgY29uZmlndXJlcworICogQmxlbmQgYW5kIEJsdXIsIGFuZCBsaW5rcyB0aGVtIHRvZ2V0aGVyIHN1Y2ggdGhhdCBCbHVyIHdpbGwgZXhlY3V0ZSBhZnRlcgorICogQmxlbmQgYW5kIHVzZSBpdHMgcmVzdWx0LiBUaGUgdGVzdCBjaGVja3MgdGhlIGRhdGEgcmV0dXJuZWQgdG8gbWFrZSBzdXJlIGl0CisgKiB3YXMgY2hhbmdlZCBhZnRlciBwYXNzaW5nIHRocm91Z2ggdGhlIGVudGlyZSBTY3JpcHRHcm91cC4KICAqCiAgKiBDYWxsczogZWxlbWVudENyZWF0ZSwgdHlwZUNyZWF0ZSwgYWxsb2NhdGlvbkNyZWF0ZVR5cGVkLCBhbGxvY2F0aW9uMkRXcml0ZSwKICAqIHNjcmlwdEludHJpbnNpY0NyZWF0ZSwgc2NyaXB0S2VybmVsSURDcmVhdGUsIHNjcmlwdEZpZWxkSURDcmVhdGUsCi0gKiBzY3JpcHRHcm91cENyZWF0ZSwgc2NyaXB0U2V0VmFyT2JqLCBzY3JpcHRHcm91cFNldE91dHB1dCwgc2NyaXB0R3JvdXBFeGVjdXRlLAotICogY29udGV4dEZpbmlzaCwgYWxsb2NhdGlvbjJEUmVhZAorICogc2NyaXB0R3JvdXBDcmVhdGUsIHNjcmlwdEdyb3VwU2V0SW5wdXQsIHNjcmlwdEdyb3VwU2V0T3V0cHV0LAorICogc2NyaXB0R3JvdXBFeGVjdXRlLCBjb250ZXh0RmluaXNoLCBhbGxvY2F0aW9uMkRSZWFkCiAgKi8KIFRFU1RfRihSZW5kZXJzY3JpcHRIaWRsVGVzdCwgU2NyaXB0R3JvdXBUZXN0KSB7Ci0gICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gZGF0YUluKDI1NioyNTYqMSwgMTI4KSwgZGF0YU91dCgyNTYqMjU2KjQsIDApLCB6ZXJvcygyNTYqMjU2KjQsIDApOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGRhdGFJbigyNTYgKiAyNTYgKiA0LCAxMjgpLCBkYXRhT3V0KDI1NiAqIDI1NiAqIDQsIDApLAorICAgICAgICB6ZXJvcygyNTYgKiAyNTYgKiA0LCAwKTsKICAgICBoaWRsX3ZlYzx1aW50OF90PiBfZGF0YUluLCBfZGF0YU91dDsKICAgICBfZGF0YUluLnNldFRvRXh0ZXJuYWwoZGF0YUluLmRhdGEoKSwgZGF0YUluLnNpemUoKSk7CiAgICAgX2RhdGFPdXQuc2V0VG9FeHRlcm5hbChkYXRhT3V0LmRhdGEoKSwgZGF0YU91dC5zaXplKCkpOwogCiAgICAgLy8gMjU2IHggMjU2IFlVViBwaXhlbHMKLSAgICBFbGVtZW50IGVsZW1lbnQxID0gY29udGV4dC0+ZWxlbWVudENyZWF0ZShEYXRhVHlwZTo6VU5TSUdORURfOCwgRGF0YUtpbmQ6OlBJWEVMX1lVViwgdHJ1ZSwgMSk7CisgICAgRWxlbWVudCBlbGVtZW50MSA9IGNvbnRleHQtPmVsZW1lbnRDcmVhdGUoRGF0YVR5cGU6OlVOU0lHTkVEXzgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YUtpbmQ6OlBJWEVMX1JHQkEsIHRydWUsIDQpOwogICAgIEFTU0VSVF9ORShFbGVtZW50KDApLCBlbGVtZW50MSk7CiAKLSAgICBUeXBlIHR5cGUxID0gY29udGV4dC0+dHlwZUNyZWF0ZShlbGVtZW50MSwgMjU2LCAyNTYsIDAsIGZhbHNlLCBmYWxzZSwgWXV2Rm9ybWF0OjpZVVZfNDIwXzg4OCk7CisgICAgVHlwZSB0eXBlMSA9IGNvbnRleHQtPnR5cGVDcmVhdGUoZWxlbWVudDEsIDI1NiwgMjU2LCAwLCBmYWxzZSwgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWXV2Rm9ybWF0OjpZVVZfTk9ORSk7CiAgICAgQVNTRVJUX05FKFR5cGUoMCksIHR5cGUxKTsKIAogICAgIEFsbG9jYXRpb24gYWxsb2NhdGlvbjEgPSBjb250ZXh0LT5hbGxvY2F0aW9uQ3JlYXRlVHlwZWQodHlwZTEsIEFsbG9jYXRpb25NaXBtYXBDb250cm9sOjpOT05FLApAQCAtMzcwLDExICszNzMsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGF0YU91dCwgMCk7CiAKICAgICAvLyBjcmVhdGUgc2NyaXB0cwotICAgIFNjcmlwdCB5dXYycmdiID0gY29udGV4dC0+c2NyaXB0SW50cmluc2ljQ3JlYXRlKFNjcmlwdEludHJpbnNpY0lEOjpJRF9ZVVZfVE9fUkdCLCBlbGVtZW50MSk7Ci0gICAgQVNTRVJUX05FKFNjcmlwdCgwKSwgeXV2MnJnYik7CisgICAgU2NyaXB0IGJsZW5kID0KKyAgICAgICAgY29udGV4dC0+c2NyaXB0SW50cmluc2ljQ3JlYXRlKFNjcmlwdEludHJpbnNpY0lEOjpJRF9CTEVORCwgZWxlbWVudDEpOworICAgIEFTU0VSVF9ORShTY3JpcHQoMCksIGJsZW5kKTsKIAotICAgIFNjcmlwdEtlcm5lbElEIHl1djJyZ2JLSUQgPSBjb250ZXh0LT5zY3JpcHRLZXJuZWxJRENyZWF0ZSh5dXYycmdiLCAwLCAyKTsKLSAgICBBU1NFUlRfTkUoU2NyaXB0S2VybmVsSUQoMCksIHl1djJyZ2JLSUQpOworICAgIFNjcmlwdEtlcm5lbElEIGJsZW5kS0lEID0gY29udGV4dC0+c2NyaXB0S2VybmVsSURDcmVhdGUoYmxlbmQsIDEsIDMpOworICAgIEFTU0VSVF9ORShTY3JpcHRLZXJuZWxJRCgwKSwgYmxlbmRLSUQpOwogCiAgICAgU2NyaXB0IGJsdXIgPSBjb250ZXh0LT5zY3JpcHRJbnRyaW5zaWNDcmVhdGUoU2NyaXB0SW50cmluc2ljSUQ6OklEX0JMVVIsIGVsZW1lbnQyKTsKICAgICBBU1NFUlRfTkUoU2NyaXB0KDApLCBibHVyKTsKQEAgLTM4NiwxNSArMzkwLDE1IEBACiAgICAgQVNTRVJUX05FKFNjcmlwdEZpZWxkSUQoMCksIGJsdXJGSUQpOwogCiAgICAgLy8gU2NyaXB0R3JvdXAKLSAgICBoaWRsX3ZlYzxTY3JpcHRLZXJuZWxJRD4ga2VybmVscyA9IHt5dXYycmdiS0lELCBibHVyS0lEfTsKLSAgICBoaWRsX3ZlYzxTY3JpcHRLZXJuZWxJRD4gc3JjSyA9IHt5dXYycmdiS0lEfTsKKyAgICBoaWRsX3ZlYzxTY3JpcHRLZXJuZWxJRD4ga2VybmVscyA9IHtibGVuZEtJRCwgYmx1cktJRH07CisgICAgaGlkbF92ZWM8U2NyaXB0S2VybmVsSUQ+IHNyY0sgPSB7YmxlbmRLSUR9OwogICAgIGhpZGxfdmVjPFNjcmlwdEtlcm5lbElEPiBkc3RLID0ge1NjcmlwdEtlcm5lbElEKDApfTsKICAgICBoaWRsX3ZlYzxTY3JpcHRGaWVsZElEPiBkc3RGID0ge2JsdXJGSUR9OwogICAgIGhpZGxfdmVjPFR5cGU+IHR5cGVzID0ge3R5cGUyfTsKICAgICBTY3JpcHRHcm91cCBzY3JpcHRHcm91cCA9IGNvbnRleHQtPnNjcmlwdEdyb3VwQ3JlYXRlKGtlcm5lbHMsIHNyY0ssIGRzdEssIGRzdEYsIHR5cGVzKTsKICAgICBBU1NFUlRfTkUoU2NyaXB0R3JvdXAoMCksIHNjcmlwdEdyb3VwKTsKIAotICAgIGNvbnRleHQtPnNjcmlwdFNldFZhck9iaih5dXYycmdiLCAwLCAoT2JqZWN0QmFzZSlhbGxvY2F0aW9uMSk7CisgICAgY29udGV4dC0+c2NyaXB0R3JvdXBTZXRJbnB1dChzY3JpcHRHcm91cCwgYmxlbmRLSUQsIGFsbG9jYXRpb24xKTsKICAgICBjb250ZXh0LT5zY3JpcHRHcm91cFNldE91dHB1dChzY3JpcHRHcm91cCwgYmx1cktJRCwgYWxsb2NhdGlvbjIpOwogICAgIGNvbnRleHQtPnNjcmlwdEdyb3VwRXhlY3V0ZShzY3JpcHRHcm91cCk7CiAgICAgY29udGV4dC0+Y29udGV4dEZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvQW5kcm9pZC5icCBiL3NlbnNvcnMvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZjZjRhNwotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklTZW5zb3JzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL1NlbnNvcnNBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvSVNlbnNvcnMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL0lId1NlbnNvcnMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL0JuSHdTZW5zb3JzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC9CcEh3U2Vuc29ycy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvQnNTZW5zb3JzLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvQW5kcm9pZC5tayBiL3NlbnNvcnMvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg1MjhhOQotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSw0MCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy9WMV8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JU2Vuc29ycy5oYWwKKworJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhLWNvbnN0YW50cyBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvSVNlbnNvcnMuaGFsIGIvc2Vuc29ycy8xLjAvSVNlbnNvcnMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNDFkZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9JU2Vuc29ycy5oYWwKQEAgLTAsMCArMSwxOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjA7CisKK2ludGVyZmFjZSBJU2Vuc29ycyB7CisgICAgLyoqCisgICAgICogRW51bWVyYXRlIGFsbCBhdmFpbGFibGUgKHN0YXRpYykgc2Vuc29ycy4KKyAgICAgKi8KKyAgICBnZXRTZW5zb3JzTGlzdCgpIGdlbmVyYXRlcyAodmVjPFNlbnNvckluZm8+IGxpc3QpOworCisgICAgLyoqCisgICAgICogUGxhY2UgdGhlIG1vZHVsZSBpbiBhIHNwZWNpZmljIG1vZGUuIFRoZSBmb2xsb3dpbmcgbW9kZXMgYXJlIGRlZmluZWQKKyAgICAgKgorICAgICAqICBTRU5TT1JfSEFMX05PUk1BTF9NT0RFIC0gTm9ybWFsIG9wZXJhdGlvbi4gRGVmYXVsdCBzdGF0ZSBvZiB0aGUgbW9kdWxlLgorICAgICAqCisgICAgICogIFNFTlNPUl9IQUxfREFUQV9JTkpFQ1RJT05fTU9ERSAtIExvb3BiYWNrIG1vZGUuCisgICAgICogICAgRGF0YSBpcyBpbmplY3RlZCBmb3IgdGhlIHN1cHBvcnRlZCBzZW5zb3JzIGJ5IHRoZSBzZW5zb3Igc2VydmljZSBpbgorICAgICAqICAgIHRoaXMgbW9kZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gT0sgb24gc3VjY2VzcworICAgICAqICAgICAgICAgQkFEX1ZBTFVFIGlmIHJlcXVlc3RlZCBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQKKyAgICAgKiAgICAgICAgIFBFUk1JU1NJT05fREVOSUVEIGlmIG9wZXJhdGlvbiBpcyBub3QgYWxsb3dlZAorICAgICAqLworICAgIHNldE9wZXJhdGlvbk1vZGUoT3BlcmF0aW9uTW9kZSBtb2RlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogQWN0aXZhdGUvZGUtYWN0aXZhdGUgb25lIHNlbnNvci4KKyAgICAgKgorICAgICAqIEFmdGVyIHNlbnNvciBkZS1hY3RpdmF0aW9uLCBleGlzdGluZyBzZW5zb3IgZXZlbnRzIHRoYXQgaGF2ZSBub3QKKyAgICAgKiBiZWVuIHBpY2tlZCB1cCBieSBwb2xsKCkgbXVzdCBiZSBhYmFuZG9uZWQgaW1tZWRpYXRlbHkgc28gdGhhdAorICAgICAqIHN1YnNlcXVlbnQgYWN0aXZhdGlvbiB3aWxsIG5vdCBnZXQgc3RhbGUgc2Vuc29yIGV2ZW50cyAoZXZlbnRzCisgICAgICogdGhhdCBhcmUgZ2VuZXJhdGVkIHByaW9yIHRvIHRoZSBsYXR0ZXIgYWN0aXZhdGlvbikuCisgICAgICoKKyAgICAgKiBAcGFyYW0gIHNlbnNvckhhbmRsZSBpcyB0aGUgaGFuZGxlIG9mIHRoZSBzZW5zb3IgdG8gY2hhbmdlLgorICAgICAqIEBwYXJhbSAgZW5hYmxlZCBzZXQgdG8gdHJ1ZSB0byBlbmFibGUsIG9yIGZhbHNlIHRvIGRpc2FibGUgdGhlIHNlbnNvci4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIG9uIHN1Y2Nlc3MsIEJBRF9WQUxVRSBpZiBzZW5zb3JIYW5kbGUgaXMgaW52YWxpZC4KKyAgICAgKi8KKyAgICBhY3RpdmF0ZShpbnQzMl90IHNlbnNvckhhbmRsZSwgYm9vbCBlbmFibGVkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgYSB2ZWN0b3Igb2Ygc2Vuc29yIGV2ZW50cyBjb250YWluaW5nIGF0IG1vc3QgIm1heENvdW50IgorICAgICAqIGVudHJpZXMuCisgICAgICoKKyAgICAgKiBBZGRpdGlvbmFsbHkgYSB2ZWN0b3Igb2YgU2Vuc29ySW5mb3MgaXMgcmV0dXJuZWQgZm9yIGFueSBkeW5hbWljIHNlbnNvcnMKKyAgICAgKiBjb25uZWN0ZWQgYXMgbm90aWZpZWQgYnkgcmV0dXJuZWQgZXZlbnRzIG9mIHR5cGUgRFlOQU1JQ19TRU5TT1JfTUVUQS4KKyAgICAgKgorICAgICAqIElmIHRoZXJlIGlzIG5vIHNlbnNvciBldmVudCB3aGVuIHRoaXMgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkLCBibG9jaworICAgICAqIHVudGlsIHRoZXJlIGFyZSBzZW5zb3IgZXZlbnRzIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSAgbWF4Q291bnQgbWF4IG51bWJlciBvZiBzYW1wbGVzIGNhbiBiZSByZXR1cm5lZCwgbXVzdCBiZSA+IDAuCisgICAgICogICAgICAgICBBY3R1YWwgbnVtYmVyIG9mIGV2ZW50cyByZXR1cm5lZCBpbiBkYXRhIG11c3QgYmUgPD0gbWF4Q291bnQKKyAgICAgKiAgICAgICAgIGFuZCA+IDAuCisgICAgICogQHJldHVybiByZXN1bHQgT0sgb24gc3VjY2VzcyBvciBCQURfVkFMVUUgaWYgbWF4Q291bnQgPD0gMC4KKyAgICAgKiBAcmV0dXJuIGRhdGEgdmVjdG9yIG9mIEV2ZW50IGNvbnRhaW5zIHNlbnNvciBldmVudHMuCisgICAgICogQHJldHVybiBkeW5hbWljU2Vuc29yc0FkZGVkIHZlY3RvciBvZiBTZW5zb3JJbmZvIGNvbnRhaW5zIGR5bmFtaWMgc2Vuc29yCisgICAgICogICAgICAgICBhZGRlZC4gRWFjaCBlbGVtZW50IGNvcnJlc3BvbmRzIHRvIGEgZHluYW1pYyBzZW5zb3IgbWV0YSBldmVudHMKKyAgICAgKiAgICAgICAgIGluIGRhdGEuCisgICAgICovCisgICAgcG9sbChpbnQzMl90IG1heENvdW50KQorICAgICAgICBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgICAgIFJlc3VsdCByZXN1bHQsCisgICAgICAgICAgICAgICAgdmVjPEV2ZW50PiBkYXRhLAorICAgICAgICAgICAgICAgIHZlYzxTZW5zb3JJbmZvPiBkeW5hbWljU2Vuc29yc0FkZGVkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgYSBzZW5zb3LigJlzIHBhcmFtZXRlcnMsIGluY2x1ZGluZyBzYW1wbGluZyBmcmVxdWVuY3kgYW5kIG1heGltdW0KKyAgICAgKiByZXBvcnQgbGF0ZW5jeS4gVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIHdoaWxlIHRoZSBzZW5zb3IgaXMKKyAgICAgKiBhY3RpdmF0ZWQsIGluIHdoaWNoIGNhc2UgaXQgbXVzdCBub3QgY2F1c2UgYW55IHNlbnNvciBtZWFzdXJlbWVudHMgdG8KKyAgICAgKiBiZSBsb3N0OiB0cmFuc2l0aW9uaW5nIGZyb20gb25lIHNhbXBsaW5nIHJhdGUgdG8gdGhlIG90aGVyIGNhbm5vdCBjYXVzZQorICAgICAqIGxvc3QgZXZlbnRzLCBub3IgY2FuIHRyYW5zaXRpb25pbmcgZnJvbSBhIGhpZ2ggbWF4aW11bSByZXBvcnQgbGF0ZW5jeSB0bworICAgICAqIGEgbG93IG1heGltdW0gcmVwb3J0IGxhdGVuY3kuCisgICAgICogU2VlIHRoZSBCYXRjaGluZyBzZW5zb3IgcmVzdWx0cyBwYWdlIGZvciBkZXRhaWxzOgorICAgICAqIGh0dHA6Ly9zb3VyY2UuYW5kcm9pZC5jb20vZGV2aWNlcy9zZW5zb3JzL2JhdGNoaW5nLmh0bWwKKyAgICAgKgorICAgICAqIEBwYXJhbSAgc2Vuc29ySGFuZGxlIGhhbmRsZSBvZiBzZW5zb3IgdG8gYmUgY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gIHNhbXBsaW5nUGVyaW9kTnMgc3BlY2lmaWVzIHNlbnNvciBzYW1wbGUgcGVyaW9kIGluIG5hbm9zZWNvbmRzLgorICAgICAqIEBwYXJhbSAgbWF4UmVwb3J0TGF0ZW5jeU5zIGFsbG93ZWQgZGVsYXkgdGltZSBiZWZvcmUgYW4gZXZlbnQgaXMgc2FtcGxlZAorICAgICAqICAgICAgICAgdG8gdGltZSBvZiByZXBvcnQuCisgICAgICogQHJldHVybiByZXN1bHQgT0sgb24gc3VjY2VzcywgQkFEX1ZBTFVFIGlmIGFueSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkLgorICAgICAqLworICAgIGJhdGNoKGludDMyX3Qgc2Vuc29ySGFuZGxlLAorICAgICAgICAgIGludDY0X3Qgc2FtcGxpbmdQZXJpb2ROcywKKyAgICAgICAgICBpbnQ2NF90IG1heFJlcG9ydExhdGVuY3lOcykgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFRyaWdnZXIgYSBmbHVzaCBvZiBpbnRlcm5hbCBGSUZPLgorICAgICAqCisgICAgICogRmx1c2ggYWRkcyBhIEZMVVNIX0NPTVBMRVRFIG1ldGFkYXRhIGV2ZW50IHRvIHRoZSBlbmQgb2YgdGhlICJiYXRjaCBtb2RlIgorICAgICAqIEZJRk8gZm9yIHRoZSBzcGVjaWZpZWQgc2Vuc29yIGFuZCBmbHVzaGVzIHRoZSBGSUZPLiAgSWYgdGhlIEZJRk8gaXMgZW1wdHkKKyAgICAgKiBvciBpZiB0aGUgc2Vuc29yIGRvZXNuJ3Qgc3VwcG9ydCBiYXRjaGluZyAoRklGTyBzaXplIHplcm8pLCByZXR1cm4KKyAgICAgKiBTVUNDRVNTIGFuZCBhZGQgYSB0cml2aWFsIEZMVVNIX0NPTVBMRVRFIGV2ZW50IGFkZGVkIHRvIHRoZSBldmVudCBzdHJlYW0uCisgICAgICogVGhpcyBhcHBsaWVzIHRvIGFsbCBzZW5zb3JzIG90aGVyIHRoYW4gb25lLXNob3Qgc2Vuc29ycy4gSWYgdGhlIHNlbnNvcgorICAgICAqIGlzIGEgb25lLXNob3Qgc2Vuc29yLCBmbHVzaCBtdXN0IHJldHVybiBCQURfVkFMVUUgYW5kIG5vdCBnZW5lcmF0ZSBhbnkKKyAgICAgKiBmbHVzaCBjb21wbGV0ZSBtZXRhZGF0YS4gIElmIHRoZSBzZW5zb3IgaXMgbm90IGFjdGl2ZSBhdCB0aGUgdGltZSBmbHVzaCgpCisgICAgICogaXMgY2FsbGVkLCBmbHVzaCgpIHJldHVybiBCQURfVkFMVUUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gICBzZW5zb3JIYW5kbGUgaGFuZGxlIG9mIHNlbnNvciB0byBiZSBmbHVzaGVkLgorICAgICAqIEByZXR1cm4gIHJlc3VsdCBPSyBvbiBzdWNjZXNzIGFuZCBCQURfVkFMVUUgaWYgc2Vuc29ySGFuZGxlIGlzIGludmFsaWQuCisgICAgICovCisgICAgZmx1c2goaW50MzJfdCBzZW5zb3JIYW5kbGUpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBJbmplY3QgYSBzaW5nbGUgc2Vuc29yIGV2ZW50IG9yIHB1c2ggb3BlcmF0aW9uIGVudmlyb25tZW50IHBhcmFtZXRlcnMgdG8KKyAgICAgKiBkZXZpY2UuCisgICAgICoKKyAgICAgKiBXaGVuIGRldmljZSBpcyBpbiBOT1JNQUwgbW9kZSwgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gcHVzaCBvcGVyYXRpb24KKyAgICAgKiBlbnZpcm9ubWVudCBkYXRhIHRvIGRldmljZS4gSW4gdGhpcyBvcGVyYXRpb24sIEV2ZW50IGlzIGFsd2F5cyBvZgorICAgICAqIFNlbnNvclR5cGU6OkFkZGl0aW9uYWxJbmZvIHR5cGUuIFNlZSBvcGVyYXRpb24gZXZpcm9ubWVudCBwYXJhbWV0ZXJzCisgICAgICogc2VjdGlvbiBpbiBBZGRpdGlvbmFsSW5mb1R5cGUuCisgICAgICoKKyAgICAgKiBXaGVuIGRldmljZSBpcyBpbiBEQVRBX0lOSkVDVElPTiBtb2RlLCB0aGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNlZCBmb3IKKyAgICAgKiBpbmplY3Rpbmcgc2Vuc29yIGV2ZW50cy4KKyAgICAgKgorICAgICAqIFJlZ2FyZGxlc3Mgb2YgT3BlcmF0aW9uTW9kZSwgaW5qZWN0ZWQgU2Vuc29yVHlwZTo6QURESVRJT05BTF9JTkZPCisgICAgICogdHlwZSBldmVudHMgc2hvdWxkIG5vdCBiZSByb3V0ZWQgYmFjayB0byBwb2xsKCkgZnVuY3Rpb24uCisgICAgICoKKyAgICAgKiBAc2VlIEFkZGl0aW9uYWxJbmZvVHlwZQorICAgICAqIEBzZWUgT3BlcmF0aW9uTW9kZQorICAgICAqIEBwYXJhbSAgIGV2ZW50IHNlbnNvciBldmVudCB0byBiZSBpbmplY3RlZAorICAgICAqIEByZXR1cm4gIHJlc3VsdCBPSyBvbiBzdWNjZXNzOyBQRVJNSVNTSU9OX0RFTklFRCBpZiBvcGVyYXRpb24gaXMgbm90CisgICAgICogICAgICAgICAgYWxsb3dlZDsgSU5WQUxJRF9PUEVSQVRJT04sIGlmIHRoaXMgZnVuY3Rpb25hbGl0eSBpcworICAgICAqICAgICAgICAgIHVuc3VwcG9ydGVkOyBCQURfVkFMVUUgaWYgc2Vuc29yIGV2ZW50IGNhbm5vdCBiZSBpbmplY3RlZC4KKyAgICAgKi8KKyAgICBpbmplY3RTZW5zb3JEYXRhKEV2ZW50IGV2ZW50KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgZGlyZWN0IHJlcG9ydCBjaGFubmVsLgorICAgICAqCisgICAgICogUmVnaXN0ZXIgYSBkaXJlY3QgY2hhbm5lbCB3aXRoIHN1cHBsaWVkIHNoYXJlZCBtZW1vcnkgaW5mb3JtYXRpb24uIFVwb24KKyAgICAgKiByZXR1cm4sIHRoZSBzZW5zb3IgaGFyZHdhcmUgaXMgcmVzcG9uc2libGUgZm9yIHJlc2V0dGluZyB0aGUgbWVtb3J5CisgICAgICogY29udGVudCB0byBpbml0aWFsIHZhbHVlIChkZXBlbmRpbmcgb24gbWVtb3J5IGZvcm1hdCBzZXR0aW5ncykuCisgICAgICoKKyAgICAgKiBAcGFyYW0gICBtZW0gc2hhcmVkIG1lbW9yeSBpbmZvIGRhdGEgc3RydWN0dXJlLgorICAgICAqIEByZXR1cm4gIHJlc3VsdCBPSyBvbiBzdWNjZXNzOyBCQURfVkFMVUUgaWYgc2hhcmVkIG1lbW9yeSBpbmZvcm1hdGlvbiBpcworICAgICAqICAgICAgICAgIG5vdCBjb25zaXN0ZW50OyBOT19NRU1PUlkgaWYgc2hhcmVkIG1lbW9yeSBjYW5ub3QgYmUgdXNlZCBieQorICAgICAqICAgICAgICAgIHNlbnNvciBzeXN0ZW07IElOVkFMSURfT1BFUkFUSU9OIGlmIGZ1bmN0aW9uYWxpdHkgaXMgbm90CisgICAgICogICAgICAgICAgc3VwcG9ydGVkLgorICAgICAqIEByZXR1cm4gIGNoYW5uZWxIYW5kbGUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHVzZWQgZm9yIHJlZmVyZW5jaW5nIHJlZ2lzdGVyZWQKKyAgICAgKiAgICAgICAgICBkaXJlY3QgY2hhbm5lbCAoPjApIGluIGNvbmZpZ3VyZURpcmVjdFJlcG9ydCBhbmQKKyAgICAgKiAgICAgICAgICB1bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbCBpZiByZXN1bHQgaXMgT0ssIC0xIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICByZWdpc3RlckRpcmVjdENoYW5uZWwoU2hhcmVkTWVtSW5mbyBtZW0pCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQsIGludDMyX3QgY2hhbm5lbEhhbmRsZSk7CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGRpcmVjdCByZXBvcnQgY2hhbm5lbC4KKyAgICAgKgorICAgICAqIFVucmVnaXN0ZXIgYSBkaXJlY3QgY2hhbm5lbCBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgdXNpbmcKKyAgICAgKiByZWdpc3RlckRpcmVjdENoYW5uZWwsIGFuZCByZW1vdmUgYWxsIGFjdGl2ZSBzZW5zb3IgcmVwb3J0IGNvbmZpZ3VyZWQgaW4KKyAgICAgKiBzdGlsbCBhY3RpdmUgc2Vuc29yIHJlcG9ydCBjb25maWd1cmVkIGluIHRoZSBkaXJlY3QgY2hhbm5lbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAgIGNoYW5uZWxIYW5kbGUgaGFuZGxlIG9mIGRpcmVjdCBjaGFubmVsIHRvIGJlIHVucmVnaXN0ZXJlZC4KKyAgICAgKiBAcmV0dXJuICByZXN1bHQgT0sgaWYgZGlyZWN0IHJlcG9ydCBpcyBzdXBwb3J0ZWQ7IElOVkFMSURfT1BFUkFUSU9OCisgICAgICogICAgICAgICAgb3RoZXJ3aXNlLgorICAgICAqLworICAgIHVucmVnaXN0ZXJEaXJlY3RDaGFubmVsKGludDMyX3QgY2hhbm5lbEhhbmRsZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIENvbmZpZ3VyZSBkaXJlY3Qgc2Vuc29yIGV2ZW50IHJlcG9ydCBpbiBkaXJlY3QgY2hhbm5lbC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gc3RhcnQsIG1vZGlmeSByYXRlIG9yIHN0b3AgZGlyZWN0IHJlcG9ydCBvZiBhIHNlbnNvciBpbiBhCisgICAgICogY2VydGFpbiBkaXJlY3QgY2hhbm5lbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAgIHNlbnNvckhhbmRsZSBoYW5kbGUgb2Ygc2Vuc29yIHRvIGJlIGNvbmZpZ3VyZWQuIFdoZW4gY29tYmluZWQKKyAgICAgKiAgICAgICAgICB3aXRoIFNUT1AgcmF0ZSwgc2Vuc29ySGFuZGxlIGNhbiBiZSAtMSB0byBkZW5vdGUgYWxsIGFjdGl2ZQorICAgICAqICAgICAgICAgIHNlbnNvcnMgaW4gdGhlIGRpcmVjdCBjaGFubmVsIHNwZWNpZmllZCBieSBjaGFubmVsIEhhbmRsZS4KKyAgICAgKiBAcGFyYW0gICBjaGFubmVsSGFuZGxlIGhhbmRsZSBvZiBkaXJlY3QgY2hhbm5lbCB0byBiZSBjb25maWd1cmVkLgorICAgICAqIEBwYXJhbSAgIHJhdGUgcmF0ZSBsZXZlbCwgc2VlIFJhdGVMZXZlbCBlbnVtLgorICAgICAqCisgICAgICogQHJldHVybiAgcmVzdWx0IE9LIG9uIHN1Y2Nlc3M7IEJBRF9WQUxVRSBpZiBwYXJhbWV0ZXIgaXMgaW52YWxpZCAoc3VjaCBhcworICAgICAqICAgICAgICAgIHJhdGUgbGV2ZWwgaXMgbm90IHN1cHBvcnRlZCBieSBzZW5zb3IsIGNoYW5uZWxIYW5kbGUgZG9lcyBub3QKKyAgICAgKiAgICAgICAgICBleGlzdCwgZXRjKTsgSU5WQUxJRF9PUEVSQVRJT04gaWYgZnVuY3Rpb25hbGl0eSBpcyBub3QKKyAgICAgKiAgICAgICAgICBzdXBwb3J0ZWQuCisgICAgICogQHJldHVybiAgcmVwb3J0VG9rZW4gcG9zaXRpdmUgaW50ZWdlciB0byBpZGVudGlmeSBtdWx0aXBsZSBzZW5zb3JzIG9mCisgICAgICogICAgICAgICAgdGhlIHNhbWUgdHlwZSBpbiBhIHNpbmdsZSBkaXJlY3QgY2hhbm5lbC4gSWdub3JlZCBpZiByYXRlIGlzCisgICAgICogICAgICAgICAgU1RPUC4gU2VlIFNoYXJlZE1lbUZvcm1hdC4KKyAgICAgKi8KKyAgICBjb25maWdEaXJlY3RSZXBvcnQoCisgICAgICAgICAgICBpbnQzMl90IHNlbnNvckhhbmRsZSwgaW50MzJfdCBjaGFubmVsSGFuZGxlLCBSYXRlTGV2ZWwgcmF0ZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCwgaW50MzJfdCByZXBvcnRUb2tlbik7Cit9OwpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxNDQ1OTAKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0MyBAQAorY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wLWltcGwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJTZW5zb3JzLmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wLWNvbnZlcnQiLAorICAgICAgICAibXVsdGloYWwiLAorICAgIF0sCisgICAgbG9jYWxfaW5jbHVkZV9kaXJzOiBbImluY2x1ZGUvc2Vuc29ycyJdLAorfQorCitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtY29udmVydCIsCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJjb252ZXJ0LmNwcCJdLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnM6IFsiaW5jbHVkZSJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wIiwKKyAgICBdLAorICAgIGxvY2FsX2luY2x1ZGVfZGlyczogWyJpbmNsdWRlL3NlbnNvcnMiXSwKK30KKworCmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDExNDU0MgotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDIzIEBACitMT0NBTF9QQVRIOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgICAgICBzZXJ2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgICAgICBsaWJsb2cgXAorICAgICAgICBsaWJjdXRpbHMgXAorICAgICAgICBsaWJkbCBcCisgICAgICAgIGxpYmJhc2UgXAorICAgICAgICBsaWJ1dGlscyBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgKz0gXAorICAgICAgICBsaWJoaWRsYmFzZSBcCisgICAgICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9kZWZhdWx0L1NlbnNvcnMuY3BwIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9TZW5zb3JzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTAwZGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9TZW5zb3JzLmNwcApAQCAtMCwwICsxLDM2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJTZW5zb3JzLmgiCisjaW5jbHVkZSAiY29udmVydC5oIgorI2luY2x1ZGUgIm11bHRpaGFsLmgiCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBzZW5zb3JzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8qCisgKiBJZiBhIG11bHRpLWhhbCBjb25maWd1cmF0aW9uIGZpbGUgZXhpc3RzIGluIHRoZSBwcm9wZXIgbG9jYXRpb24sCisgKiByZXR1cm4gdHJ1ZSBpbmRpY2F0aW5nIHdlIG5lZWQgdG8gdXNlIG11bHRpLWhhbCBmdW5jdGlvbmFsaXR5LgorICovCitzdGF0aWMgYm9vbCBVc2VNdWx0aUhhbCgpIHsKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSA9IE1VTFRJX0hBTF9DT05GSUdfRklMRV9QQVRIOworICAgIHN0cnVjdCBzdGF0IGJ1ZmZlcjsKKyAgICByZXR1cm4gKHN0YXQgKG5hbWUuY19zdHIoKSwgJmJ1ZmZlcikgPT0gMCk7Cit9CisKK3N0YXRpYyBSZXN1bHQgUmVzdWx0RnJvbVN0YXR1cyhzdGF0dXNfdCBlcnIpIHsKKyAgICBzd2l0Y2ggKGVycikgeworICAgICAgICBjYXNlIE9LOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgICAgIGNhc2UgUEVSTUlTU0lPTl9ERU5JRUQ6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpQRVJNSVNTSU9OX0RFTklFRDsKKyAgICAgICAgY2FzZSBOT19NRU1PUlk6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpOT19NRU1PUlk7CisgICAgICAgIGNhc2UgQkFEX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6QkFEX1ZBTFVFOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorfQorCitTZW5zb3JzOjpTZW5zb3JzKCkKKyAgICA6IG1Jbml0Q2hlY2soTk9fSU5JVCksCisgICAgICBtU2Vuc29yTW9kdWxlKG51bGxwdHIpLAorICAgICAgbVNlbnNvckRldmljZShudWxscHRyKSB7CisgICAgc3RhdHVzX3QgZXJyID0gT0s7CisgICAgaWYgKFVzZU11bHRpSGFsKCkpIHsKKyAgICAgICAgbVNlbnNvck1vZHVsZSA9IDo6Z2V0X211bHRpX2hhbF9tb2R1bGVfaW5mbygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGVyciA9IGh3X2dldF9tb2R1bGUoCisgICAgICAgICAgICBTRU5TT1JTX0hBUkRXQVJFX01PRFVMRV9JRCwKKyAgICAgICAgICAgIChod19tb2R1bGVfdCBjb25zdCAqKikmbVNlbnNvck1vZHVsZSk7CisgICAgfQorICAgIGlmIChtU2Vuc29yTW9kdWxlID09IE5VTEwpIHsKKyAgICAgICAgZXJyID0gVU5LTk9XTl9FUlJPUjsKKyAgICB9CisKKyAgICBpZiAoZXJyICE9IE9LKSB7CisgICAgICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IGxvYWQgIgorICAgICAgICAgICAgICAgICAgIDw8IFNFTlNPUlNfSEFSRFdBUkVfTU9EVUxFX0lECisgICAgICAgICAgICAgICAgICAgPDwgIiBtb2R1bGUgKCIKKyAgICAgICAgICAgICAgICAgICA8PCBzdHJlcnJvcigtZXJyKQorICAgICAgICAgICAgICAgICAgIDw8ICIpIjsKKworICAgICAgICBtSW5pdENoZWNrID0gZXJyOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZXJyID0gc2Vuc29yc19vcGVuXzEoJm1TZW5zb3JNb2R1bGUtPmNvbW1vbiwgJm1TZW5zb3JEZXZpY2UpOworCisgICAgaWYgKGVyciAhPSBPSykgeworICAgICAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGRldmljZSBmb3IgbW9kdWxlICIKKyAgICAgICAgICAgICAgICAgICA8PCBTRU5TT1JTX0hBUkRXQVJFX01PRFVMRV9JRAorICAgICAgICAgICAgICAgICAgIDw8ICIgKCIKKyAgICAgICAgICAgICAgICAgICA8PCBzdHJlcnJvcigtZXJyKQorICAgICAgICAgICAgICAgICAgIDw8ICIpIjsKKworICAgICAgICBtSW5pdENoZWNrID0gZXJyOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gUmVxdWlyZSBhbGwgdGhlIG9sZCBIQUwgQVBJcyB0byBiZSBwcmVzZW50IGV4Y2VwdCBmb3IgaW5qZWN0aW9uLCB3aGljaAorICAgIC8vIGlzIGNvbnNpZGVyZWQgb3B0aW9uYWwuCisgICAgQ0hFQ0tfR0UoZ2V0SGFsRGV2aWNlVmVyc2lvbigpLCBTRU5TT1JTX0RFVklDRV9BUElfVkVSU0lPTl8xXzMpOworCisgICAgaWYgKGdldEhhbERldmljZVZlcnNpb24oKSA9PSBTRU5TT1JTX0RFVklDRV9BUElfVkVSU0lPTl8xXzQpIHsKKyAgICAgICAgaWYgKG1TZW5zb3JEZXZpY2UtPmluamVjdF9zZW5zb3JfZGF0YSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBMT0coRVJST1IpIDw8ICJIQUwgc3BlY2lmaWVzIHZlcnNpb24gMS40LCBidXQgZG9lcyBub3QgaW1wbGVtZW50IGluamVjdF9zZW5zb3JfZGF0YSgpIjsKKyAgICAgICAgfQorICAgICAgICBpZiAobVNlbnNvck1vZHVsZS0+c2V0X29wZXJhdGlvbl9tb2RlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIExPRyhFUlJPUikgPDwgIkhBTCBzcGVjaWZpZXMgdmVyc2lvbiAxLjQsIGJ1dCBkb2VzIG5vdCBpbXBsZW1lbnQgc2V0X29wZXJhdGlvbl9tb2RlKCkiOworICAgICAgICB9CisgICAgfQorCisgICAgbUluaXRDaGVjayA9IE9LOworfQorCitzdGF0dXNfdCBTZW5zb3JzOjppbml0Q2hlY2soKSBjb25zdCB7CisgICAgcmV0dXJuIG1Jbml0Q2hlY2s7Cit9CisKK1JldHVybjx2b2lkPiBTZW5zb3JzOjpnZXRTZW5zb3JzTGlzdChnZXRTZW5zb3JzTGlzdF9jYiBfaGlkbF9jYikgeworICAgIHNlbnNvcl90IGNvbnN0ICpsaXN0OworICAgIHNpemVfdCBjb3VudCA9IG1TZW5zb3JNb2R1bGUtPmdldF9zZW5zb3JzX2xpc3QobVNlbnNvck1vZHVsZSwgJmxpc3QpOworCisgICAgaGlkbF92ZWM8U2Vuc29ySW5mbz4gb3V0OworICAgIG91dC5yZXNpemUoY291bnQpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgIGNvbnN0IHNlbnNvcl90ICpzcmMgPSAmbGlzdFtpXTsKKyAgICAgICAgU2Vuc29ySW5mbyAqZHN0ID0gJm91dFtpXTsKKworICAgICAgICBjb252ZXJ0RnJvbVNlbnNvcigqc3JjLCBkc3QpOworICAgIH0KKworICAgIF9oaWRsX2NiKG91dCk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitpbnQgU2Vuc29yczo6Z2V0SGFsRGV2aWNlVmVyc2lvbigpIGNvbnN0IHsKKyAgICBpZiAoIW1TZW5zb3JEZXZpY2UpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHJldHVybiBtU2Vuc29yRGV2aWNlLT5jb21tb24udmVyc2lvbjsKK30KKworUmV0dXJuPFJlc3VsdD4gU2Vuc29yczo6c2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlIG1vZGUpIHsKKyAgICBpZiAoZ2V0SGFsRGV2aWNlVmVyc2lvbigpIDwgU0VOU09SU19ERVZJQ0VfQVBJX1ZFUlNJT05fMV80CisgICAgICAgICAgICB8fCBtU2Vuc29yTW9kdWxlLT5zZXRfb3BlcmF0aW9uX21vZGUgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgcmV0dXJuIFJlc3VsdEZyb21TdGF0dXMobVNlbnNvck1vZHVsZS0+c2V0X29wZXJhdGlvbl9tb2RlKCh1aW50MzJfdCltb2RlKSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFNlbnNvcnM6OmFjdGl2YXRlKAorICAgICAgICBpbnQzMl90IHNlbnNvcl9oYW5kbGUsIGJvb2wgZW5hYmxlZCkgeworICAgIHJldHVybiBSZXN1bHRGcm9tU3RhdHVzKAorICAgICAgICAgICAgbVNlbnNvckRldmljZS0+YWN0aXZhdGUoCisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxzZW5zb3JzX3BvbGxfZGV2aWNlX3QgKj4obVNlbnNvckRldmljZSksCisgICAgICAgICAgICAgICAgc2Vuc29yX2hhbmRsZSwKKyAgICAgICAgICAgICAgICBlbmFibGVkKSk7Cit9CisKK1JldHVybjx2b2lkPiBTZW5zb3JzOjpwb2xsKGludDMyX3QgbWF4Q291bnQsIHBvbGxfY2IgX2hpZGxfY2IpIHsKKworICAgIGhpZGxfdmVjPEV2ZW50PiBvdXQ7CisgICAgaGlkbF92ZWM8U2Vuc29ySW5mbz4gZHluYW1pY1NlbnNvcnNBZGRlZDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxzZW5zb3JzX2V2ZW50X3RbXT4gZGF0YTsKKyAgICBpbnQgZXJyID0gYW5kcm9pZDo6Tk9fRVJST1I7CisKKyAgICB7IC8vIHNjb3BlIG9mIHJlZW50cnkgbG9jaworCisgICAgICAgIC8vIFRoaXMgZW5mb3JjZXMgYSBzaW5nbGUgY2xpZW50LCBtZWFuaW5nIHRoYXQgYSBtYXhpbXVtIG9mIG9uZSBjbGllbnQgY2FuIGNhbGwgcG9sbCgpLgorICAgICAgICAvLyBJZiB0aGlzIGZ1bmN0aW9uIGlzIHJlLWVudHJlZCwgaXQgbWVhbnMgdGhhdCB3ZSBhcmUgc3R1Y2sgaW4gYSBzdGF0ZSB0aGF0IG1heSBwcmV2ZW50CisgICAgICAgIC8vIHRoZSBzeXN0ZW0gZnJvbSBwcm9jZWVkaW5nIG5vcm1hbGx5LgorICAgICAgICAvLworICAgICAgICAvLyBFeGl0IGFuZCBsZXQgdGhlIHN5c3RlbSByZXN0YXJ0IHRoZSBzZW5zb3ItaGFsLWltcGxlbWVudGF0aW9uIGhpZGwgc2VydmljZS4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBtdXN0IG5vdCBjYWxsIF9oaWRsX2NiKC4uLikgb3IgcmV0dXJuIHVudGlsIHRoZXJlIGlzIG5vIHJpc2sgb2YgYmxvY2tpbmcuCisgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtUG9sbExvY2ssIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgICAgICBpZighbG9jay5vd25zX2xvY2soKSl7CisgICAgICAgICAgICAvLyBjYW5ub3QgZ2V0IHRoZSBsb2NrLCBoaWRsIHNlcnZpY2Ugd2lsbCBnbyBpbnRvIGRlYWRsb2NrIGlmIGl0IGlzIG5vdCByZXN0YXJ0ZWQuCisgICAgICAgICAgICAvLyBUaGlzIGlzIGd1YXJhbnRlZWQgdG8gbm90IHRyaWdnZXIgaW4gcGFzc3Rocm91Z2ggbW9kZS4KKyAgICAgICAgICAgIExPRyhFUlJPUikgPDwKKyAgICAgICAgICAgICAgICAgICAgIklTZW5zb3JzOjpwb2xsKCkgcmUtZW50cnkuIEkgZG8gbm90IGtub3cgd2hhdCB0byBkbyBleGNlcHQga2lsbGluZyBteXNlbGYuIjsKKyAgICAgICAgICAgIDo6ZXhpdCgtMSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobWF4Q291bnQgPD0gMCkgeworICAgICAgICAgICAgZXJyID0gYW5kcm9pZDo6QkFEX1ZBTFVFOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGJ1ZmZlclNpemUgPSBtYXhDb3VudCA8PSBrUG9sbE1heEJ1ZmZlclNpemUgPyBtYXhDb3VudCA6IGtQb2xsTWF4QnVmZmVyU2l6ZTsKKyAgICAgICAgICAgIGRhdGEucmVzZXQobmV3IHNlbnNvcnNfZXZlbnRfdFtidWZmZXJTaXplXSk7CisgICAgICAgICAgICBlcnIgPSBtU2Vuc29yRGV2aWNlLT5wb2xsKAorICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHNlbnNvcnNfcG9sbF9kZXZpY2VfdCAqPihtU2Vuc29yRGV2aWNlKSwKKyAgICAgICAgICAgICAgICAgICAgZGF0YS5nZXQoKSwgYnVmZmVyU2l6ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZXJyIDwgMCkgeworICAgICAgICBfaGlkbF9jYihSZXN1bHRGcm9tU3RhdHVzKGVyciksIG91dCwgZHluYW1pY1NlbnNvcnNBZGRlZCk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgY29uc3Qgc2l6ZV90IGNvdW50ID0gKHNpemVfdCllcnI7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgaWYgKGRhdGFbaV0udHlwZSAhPSBTRU5TT1JfVFlQRV9EWU5BTUlDX1NFTlNPUl9NRVRBKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGR5bmFtaWNfc2Vuc29yX21ldGFfZXZlbnRfdCAqZHluID0gJmRhdGFbaV0uZHluYW1pY19zZW5zb3JfbWV0YTsKKworICAgICAgICBpZiAoIWR5bi0+Y29ubmVjdGVkKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIENIRUNLKGR5bi0+c2Vuc29yICE9IG51bGxwdHIpOworICAgICAgICBDSEVDS19FUShkeW4tPnNlbnNvci0+aGFuZGxlLCBkeW4tPmhhbmRsZSk7CisKKyAgICAgICAgU2Vuc29ySW5mbyBpbmZvOworICAgICAgICBjb252ZXJ0RnJvbVNlbnNvcigqZHluLT5zZW5zb3IsICZpbmZvKTsKKworICAgICAgICBzaXplX3QgbnVtRHluYW1pY1NlbnNvcnMgPSBkeW5hbWljU2Vuc29yc0FkZGVkLnNpemUoKTsKKyAgICAgICAgZHluYW1pY1NlbnNvcnNBZGRlZC5yZXNpemUobnVtRHluYW1pY1NlbnNvcnMgKyAxKTsKKyAgICAgICAgZHluYW1pY1NlbnNvcnNBZGRlZFtudW1EeW5hbWljU2Vuc29yc10gPSBpbmZvOworICAgIH0KKworICAgIG91dC5yZXNpemUoY291bnQpOworICAgIGNvbnZlcnRGcm9tU2Vuc29yRXZlbnRzKGVyciwgZGF0YS5nZXQoKSwgJm91dCk7CisKKyAgICBfaGlkbF9jYihSZXN1bHQ6Ok9LLCBvdXQsIGR5bmFtaWNTZW5zb3JzQWRkZWQpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU2Vuc29yczo6YmF0Y2goCisgICAgICAgIGludDMyX3Qgc2Vuc29yX2hhbmRsZSwKKyAgICAgICAgaW50NjRfdCBzYW1wbGluZ19wZXJpb2RfbnMsCisgICAgICAgIGludDY0X3QgbWF4X3JlcG9ydF9sYXRlbmN5X25zKSB7CisgICAgcmV0dXJuIFJlc3VsdEZyb21TdGF0dXMoCisgICAgICAgICAgICBtU2Vuc29yRGV2aWNlLT5iYXRjaCgKKyAgICAgICAgICAgICAgICBtU2Vuc29yRGV2aWNlLAorICAgICAgICAgICAgICAgIHNlbnNvcl9oYW5kbGUsCisgICAgICAgICAgICAgICAgMCwgLypmbGFncyovCisgICAgICAgICAgICAgICAgc2FtcGxpbmdfcGVyaW9kX25zLAorICAgICAgICAgICAgICAgIG1heF9yZXBvcnRfbGF0ZW5jeV9ucykpOworfQorCitSZXR1cm48UmVzdWx0PiBTZW5zb3JzOjpmbHVzaChpbnQzMl90IHNlbnNvcl9oYW5kbGUpIHsKKyAgICByZXR1cm4gUmVzdWx0RnJvbVN0YXR1cyhtU2Vuc29yRGV2aWNlLT5mbHVzaChtU2Vuc29yRGV2aWNlLCBzZW5zb3JfaGFuZGxlKSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFNlbnNvcnM6OmluamVjdFNlbnNvckRhdGEoY29uc3QgRXZlbnQmIGV2ZW50KSB7CisgICAgaWYgKGdldEhhbERldmljZVZlcnNpb24oKSA8IFNFTlNPUlNfREVWSUNFX0FQSV9WRVJTSU9OXzFfNAorICAgICAgICAgICAgfHwgbVNlbnNvckRldmljZS0+aW5qZWN0X3NlbnNvcl9kYXRhID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorCisgICAgc2Vuc29yc19ldmVudF90IG91dDsKKyAgICBjb252ZXJ0VG9TZW5zb3JFdmVudChldmVudCwgJm91dCk7CisKKyAgICByZXR1cm4gUmVzdWx0RnJvbVN0YXR1cygKKyAgICAgICAgICAgIG1TZW5zb3JEZXZpY2UtPmluamVjdF9zZW5zb3JfZGF0YShtU2Vuc29yRGV2aWNlLCAmb3V0KSk7Cit9CisKK1JldHVybjx2b2lkPiBTZW5zb3JzOjpyZWdpc3RlckRpcmVjdENoYW5uZWwoCisgICAgICAgIGNvbnN0IFNoYXJlZE1lbUluZm8mIG1lbSwgcmVnaXN0ZXJEaXJlY3RDaGFubmVsX2NiIF9oaWRsX2NiKSB7CisgICAgaWYgKG1TZW5zb3JEZXZpY2UtPnJlZ2lzdGVyX2RpcmVjdF9jaGFubmVsID09IG51bGxwdHIKKyAgICAgICAgICAgIHx8IG1TZW5zb3JEZXZpY2UtPmNvbmZpZ19kaXJlY3RfcmVwb3J0ID09IG51bGxwdHIpIHsKKyAgICAgICAgLy8gSEFMIGRvZXMgbm90IHN1cHBvcnQKKyAgICAgICAgX2hpZGxfY2IoUmVzdWx0OjpJTlZBTElEX09QRVJBVElPTiwgLTEpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHNlbnNvcnNfZGlyZWN0X21lbV90IG07CisgICAgaWYgKCFjb252ZXJ0RnJvbVNoYXJlZE1lbUluZm8obWVtLCAmbSkpIHsKKyAgICAgIF9oaWRsX2NiKFJlc3VsdDo6QkFEX1ZBTFVFLCAtMSk7CisgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGludCBlcnIgPSBtU2Vuc29yRGV2aWNlLT5yZWdpc3Rlcl9kaXJlY3RfY2hhbm5lbChtU2Vuc29yRGV2aWNlLCAmbSwgLTEpOworCisgICAgaWYgKGVyciA8IDApIHsKKyAgICAgICAgX2hpZGxfY2IoUmVzdWx0RnJvbVN0YXR1cyhlcnIpLCAtMSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW50MzJfdCBjaGFubmVsSGFuZGxlID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZXJyKTsKKyAgICAgICAgX2hpZGxfY2IoUmVzdWx0OjpPSywgY2hhbm5lbEhhbmRsZSk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFNlbnNvcnM6OnVucmVnaXN0ZXJEaXJlY3RDaGFubmVsKGludDMyX3QgY2hhbm5lbEhhbmRsZSkgeworICAgIGlmIChtU2Vuc29yRGV2aWNlLT5yZWdpc3Rlcl9kaXJlY3RfY2hhbm5lbCA9PSBudWxscHRyCisgICAgICAgICAgICB8fCBtU2Vuc29yRGV2aWNlLT5jb25maWdfZGlyZWN0X3JlcG9ydCA9PSBudWxscHRyKSB7CisgICAgICAgIC8vIEhBTCBkb2VzIG5vdCBzdXBwb3J0CisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKworICAgIG1TZW5zb3JEZXZpY2UtPnJlZ2lzdGVyX2RpcmVjdF9jaGFubmVsKG1TZW5zb3JEZXZpY2UsIG51bGxwdHIsIGNoYW5uZWxIYW5kbGUpOworCisgICAgcmV0dXJuIFJlc3VsdDo6T0s7Cit9CisKK1JldHVybjx2b2lkPiBTZW5zb3JzOjpjb25maWdEaXJlY3RSZXBvcnQoCisgICAgICAgIGludDMyX3Qgc2Vuc29ySGFuZGxlLCBpbnQzMl90IGNoYW5uZWxIYW5kbGUsIFJhdGVMZXZlbCByYXRlLAorICAgICAgICBjb25maWdEaXJlY3RSZXBvcnRfY2IgX2hpZGxfY2IpIHsKKyAgICBpZiAobVNlbnNvckRldmljZS0+cmVnaXN0ZXJfZGlyZWN0X2NoYW5uZWwgPT0gbnVsbHB0cgorICAgICAgICAgICAgfHwgbVNlbnNvckRldmljZS0+Y29uZmlnX2RpcmVjdF9yZXBvcnQgPT0gbnVsbHB0cikgeworICAgICAgICAvLyBIQUwgZG9lcyBub3Qgc3VwcG9ydAorICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfT1BFUkFUSU9OLCAtMSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgc2Vuc29yc19kaXJlY3RfY2ZnX3QgY2ZnID0geworICAgICAgICAucmF0ZV9sZXZlbCA9IGNvbnZlcnRGcm9tUmF0ZUxldmVsKHJhdGUpCisgICAgfTsKKyAgICBpZiAoY2ZnLnJhdGVfbGV2ZWwgPCAwKSB7CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdDo6QkFEX1ZBTFVFLCAtMSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaW50IGVyciA9IG1TZW5zb3JEZXZpY2UtPmNvbmZpZ19kaXJlY3RfcmVwb3J0KG1TZW5zb3JEZXZpY2UsCisgICAgICAgICAgICBzZW5zb3JIYW5kbGUsIGNoYW5uZWxIYW5kbGUsICZjZmcpOworCisgICAgaWYgKHJhdGUgPT0gUmF0ZUxldmVsOjpTVE9QKSB7CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdEZyb21TdGF0dXMoZXJyKSwgLTEpOworICAgIH0gZWxzZSB7CisgICAgICAgIF9oaWRsX2NiKGVyciA+IDAgPyBSZXN1bHQ6Ok9LIDogUmVzdWx0RnJvbVN0YXR1cyhlcnIpLCBlcnIpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCisvLyBzdGF0aWMKK3ZvaWQgU2Vuc29yczo6Y29udmVydEZyb21TZW5zb3JFdmVudHMoCisgICAgICAgIHNpemVfdCBjb3VudCwKKyAgICAgICAgY29uc3Qgc2Vuc29yc19ldmVudF90ICpzcmNBcnJheSwKKyAgICAgICAgaGlkbF92ZWM8RXZlbnQ+ICpkc3RWZWMpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgY29uc3Qgc2Vuc29yc19ldmVudF90ICZzcmMgPSBzcmNBcnJheVtpXTsKKyAgICAgICAgRXZlbnQgKmRzdCA9ICYoKmRzdFZlYylbaV07CisKKyAgICAgICAgY29udmVydEZyb21TZW5zb3JFdmVudChzcmMsIGRzdCk7CisgICAgfQorfQorCitJU2Vuc29ycyAqSElETF9GRVRDSF9JU2Vuc29ycyhjb25zdCBjaGFyICogLyogaGFsICovKSB7CisgICAgU2Vuc29ycyAqc2Vuc29ycyA9IG5ldyBTZW5zb3JzOworICAgIGlmIChzZW5zb3JzLT5pbml0Q2hlY2soKSAhPSBPSykgeworICAgICAgICBkZWxldGUgc2Vuc29yczsKKyAgICAgICAgc2Vuc29ycyA9IG51bGxwdHI7CisKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIHNlbnNvcnM7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBzZW5zb3JzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9kZWZhdWx0L1NlbnNvcnMuaCBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvU2Vuc29ycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMDBhOTYKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L1NlbnNvcnMuaApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBIQVJEV0FSRV9JTlRFUkZBQ0VTX1NFTlNPUlNfVjFfMF9ERUZBVUxUX1NFTlNPUlNfSF8KKworI2RlZmluZSBIQVJEV0FSRV9JTlRFUkZBQ0VTX1NFTlNPUlNfVjFfMF9ERUZBVUxUX1NFTlNPUlNfSF8KKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9tYWNyb3MuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL0lTZW5zb3JzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvc2Vuc29ycy5oPgorI2luY2x1ZGUgPG11dGV4PgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHNlbnNvcnMgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworCitzdHJ1Y3QgU2Vuc29ycyA6IHB1YmxpYyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzZW5zb3JzOjpWMV8wOjpJU2Vuc29ycyB7CisgICAgU2Vuc29ycygpOworCisgICAgc3RhdHVzX3QgaW5pdENoZWNrKCkgY29uc3Q7CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0U2Vuc29yc0xpc3QoZ2V0U2Vuc29yc0xpc3RfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gc2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlIG1vZGUpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gYWN0aXZhdGUoCisgICAgICAgICAgICBpbnQzMl90IHNlbnNvcl9oYW5kbGUsIGJvb2wgZW5hYmxlZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gcG9sbChpbnQzMl90IG1heENvdW50LCBwb2xsX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IGJhdGNoKAorICAgICAgICAgICAgaW50MzJfdCBzZW5zb3JfaGFuZGxlLAorICAgICAgICAgICAgaW50NjRfdCBzYW1wbGluZ19wZXJpb2RfbnMsCisgICAgICAgICAgICBpbnQ2NF90IG1heF9yZXBvcnRfbGF0ZW5jeV9ucykgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBmbHVzaChpbnQzMl90IHNlbnNvcl9oYW5kbGUpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gaW5qZWN0U2Vuc29yRGF0YShjb25zdCBFdmVudCYgZXZlbnQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHJlZ2lzdGVyRGlyZWN0Q2hhbm5lbCgKKyAgICAgICAgICAgIGNvbnN0IFNoYXJlZE1lbUluZm8mIG1lbSwgcmVnaXN0ZXJEaXJlY3RDaGFubmVsX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IHVucmVnaXN0ZXJEaXJlY3RDaGFubmVsKGludDMyX3QgY2hhbm5lbEhhbmRsZSkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gY29uZmlnRGlyZWN0UmVwb3J0KAorICAgICAgICAgICAgaW50MzJfdCBzZW5zb3JIYW5kbGUsIGludDMyX3QgY2hhbm5lbEhhbmRsZSwgUmF0ZUxldmVsIHJhdGUsCisgICAgICAgICAgICBjb25maWdEaXJlY3RSZXBvcnRfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdGV4cHIgaW50MzJfdCBrUG9sbE1heEJ1ZmZlclNpemUgPSAxMjg7CisgICAgc3RhdHVzX3QgbUluaXRDaGVjazsKKyAgICBzZW5zb3JzX21vZHVsZV90ICptU2Vuc29yTW9kdWxlOworICAgIHNlbnNvcnNfcG9sbF9kZXZpY2VfMV90ICptU2Vuc29yRGV2aWNlOworICAgIHN0ZDo6bXV0ZXggbVBvbGxMb2NrOworCisgICAgaW50IGdldEhhbERldmljZVZlcnNpb24oKSBjb25zdDsKKworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRGcm9tU2Vuc29yRXZlbnRzKAorICAgICAgICAgICAgc2l6ZV90IGNvdW50LCBjb25zdCBzZW5zb3JzX2V2ZW50X3QgKnNyYywgaGlkbF92ZWM8RXZlbnQ+ICpkc3QpOworCisgICAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKFNlbnNvcnMpOworfTsKKworZXh0ZXJuICJDIiBJU2Vuc29ycyAqSElETF9GRVRDSF9JU2Vuc29ycyhjb25zdCBjaGFyICpuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHNlbnNvcnMKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBIQVJEV0FSRV9JTlRFUkZBQ0VTX1NFTlNPUlNfVjFfMF9ERUZBVUxUX1NFTlNPUlNfSF8KZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMC1zZXJ2aWNlLnJjIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDU5ZTVkYgotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNSBAQAorc2VydmljZSBzZW5zb3JzLWhhbC0xLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KKyAgICBjYXBhYmlsaXRpZXMgU1lTX05JQ0UKZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL2RlZmF1bHQvY29udmVydC5jcHAgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L2NvbnZlcnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkODU5ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L2NvbnZlcnQuY3BwCkBAIC0wLDAgKzEsNDAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgImNvbnZlcnQuaCIKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2Ugc2Vuc29ycyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit2b2lkIGNvbnZlcnRGcm9tU2Vuc29yKGNvbnN0IHNlbnNvcl90ICZzcmMsIFNlbnNvckluZm8gKmRzdCkgeworICAgIGRzdC0+bmFtZSA9IHNyYy5uYW1lOworICAgIGRzdC0+dmVuZG9yID0gc3JjLnZlbmRvcjsKKyAgICBkc3QtPnZlcnNpb24gPSBzcmMudmVyc2lvbjsKKyAgICBkc3QtPnNlbnNvckhhbmRsZSA9IHNyYy5oYW5kbGU7CisgICAgZHN0LT50eXBlID0gKFNlbnNvclR5cGUpc3JjLnR5cGU7CisgICAgZHN0LT5tYXhSYW5nZSA9IHNyYy5tYXhSYW5nZTsKKyAgICBkc3QtPnJlc29sdXRpb24gPSBzcmMucmVzb2x1dGlvbjsKKyAgICBkc3QtPnBvd2VyID0gc3JjLnBvd2VyOworICAgIGRzdC0+bWluRGVsYXkgPSBzcmMubWluRGVsYXk7CisgICAgZHN0LT5maWZvUmVzZXJ2ZWRFdmVudENvdW50ID0gc3JjLmZpZm9SZXNlcnZlZEV2ZW50Q291bnQ7CisgICAgZHN0LT5maWZvTWF4RXZlbnRDb3VudCA9IHNyYy5maWZvTWF4RXZlbnRDb3VudDsKKyAgICBkc3QtPnR5cGVBc1N0cmluZyA9IHNyYy5zdHJpbmdUeXBlOworICAgIGRzdC0+cmVxdWlyZWRQZXJtaXNzaW9uID0gc3JjLnJlcXVpcmVkUGVybWlzc2lvbjsKKyAgICBkc3QtPm1heERlbGF5ID0gc3JjLm1heERlbGF5OworICAgIGRzdC0+ZmxhZ3MgPSBzcmMuZmxhZ3M7Cit9CisKK3ZvaWQgY29udmVydFRvU2Vuc29yKAorICAgICAgICBjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzZW5zb3JzOjpWMV8wOjpTZW5zb3JJbmZvICZzcmMsCisgICAgICAgIHNlbnNvcl90ICpkc3QpIHsKKyAgICBkc3QtPm5hbWUgPSBzdHJkdXAoc3JjLm5hbWUuY19zdHIoKSk7CisgICAgZHN0LT52ZW5kb3IgPSBzdHJkdXAoc3JjLnZlbmRvci5jX3N0cigpKTsKKyAgICBkc3QtPnZlcnNpb24gPSBzcmMudmVyc2lvbjsKKyAgICBkc3QtPmhhbmRsZSA9IHNyYy5zZW5zb3JIYW5kbGU7CisgICAgZHN0LT50eXBlID0gKGludClzcmMudHlwZTsKKyAgICBkc3QtPm1heFJhbmdlID0gc3JjLm1heFJhbmdlOworICAgIGRzdC0+cmVzb2x1dGlvbiA9IHNyYy5yZXNvbHV0aW9uOworICAgIGRzdC0+cG93ZXIgPSBzcmMucG93ZXI7CisgICAgZHN0LT5taW5EZWxheSA9IHNyYy5taW5EZWxheTsKKyAgICBkc3QtPmZpZm9SZXNlcnZlZEV2ZW50Q291bnQgPSBzcmMuZmlmb1Jlc2VydmVkRXZlbnRDb3VudDsKKyAgICBkc3QtPmZpZm9NYXhFdmVudENvdW50ID0gc3JjLmZpZm9NYXhFdmVudENvdW50OworICAgIGRzdC0+c3RyaW5nVHlwZSA9IHN0cmR1cChzcmMudHlwZUFzU3RyaW5nLmNfc3RyKCkpOworICAgIGRzdC0+cmVxdWlyZWRQZXJtaXNzaW9uID0gc3RyZHVwKHNyYy5yZXF1aXJlZFBlcm1pc3Npb24uY19zdHIoKSk7CisgICAgZHN0LT5tYXhEZWxheSA9IHNyYy5tYXhEZWxheTsKKyAgICBkc3QtPmZsYWdzID0gc3JjLmZsYWdzOworICAgIGRzdC0+cmVzZXJ2ZWRbMF0gPSBkc3QtPnJlc2VydmVkWzFdID0gMDsKK30KKwordm9pZCBjb252ZXJ0RnJvbVNlbnNvckV2ZW50KGNvbnN0IHNlbnNvcnNfZXZlbnRfdCAmc3JjLCBFdmVudCAqZHN0KSB7CisgICAgdHlwZWRlZiA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzZW5zb3JzOjpWMV8wOjpTZW5zb3JUeXBlIFNlbnNvclR5cGU7CisgICAgdHlwZWRlZiA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzZW5zb3JzOjpWMV8wOjpNZXRhRGF0YUV2ZW50VHlwZSBNZXRhRGF0YUV2ZW50VHlwZTsKKworICAgIGRzdC0+c2Vuc29ySGFuZGxlID0gc3JjLnNlbnNvcjsKKyAgICBkc3QtPnNlbnNvclR5cGUgPSAoU2Vuc29yVHlwZSlzcmMudHlwZTsKKyAgICBkc3QtPnRpbWVzdGFtcCA9IHNyYy50aW1lc3RhbXA7CisKKyAgICBzd2l0Y2ggKGRzdC0+c2Vuc29yVHlwZSkgeworICAgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1FVEFfREFUQToKKyAgICAgICAgeworICAgICAgICAgICAgZHN0LT51Lm1ldGEud2hhdCA9IChNZXRhRGF0YUV2ZW50VHlwZSlzcmMubWV0YV9kYXRhLndoYXQ7CisgICAgICAgICAgICAvLyBMZWdhY3kgSEFMcyBjb250YWluIHRoZSBoYW5kbGUgcmVmZXJlbmNlIGluIHRoZSBtZXRhIGRhdGEgZmllbGQuCisgICAgICAgICAgICAvLyBDb3B5IHRoYXQgb3ZlciB0byB0aGUgaGFuZGxlIG9mIHRoZSBldmVudC4gSW4gbGVnYWN5IEhBTHMgdGhpcworICAgICAgICAgICAgLy8gZmllbGQgd2FzIGV4cGVjdGVkIHRvIGJlIDAuCisgICAgICAgICAgICBkc3QtPnNlbnNvckhhbmRsZSA9IHNyYy5tZXRhX2RhdGEuc2Vuc29yOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVI6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQ6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6T1JJRU5UQVRJT046CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R1lST1NDT1BFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkdSQVZJVFk6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TElORUFSX0FDQ0VMRVJBVElPTjoKKyAgICAgICAgeworICAgICAgICAgICAgZHN0LT51LnZlYzMueCA9IHNyYy5hY2NlbGVyYXRpb24ueDsKKyAgICAgICAgICAgIGRzdC0+dS52ZWMzLnkgPSBzcmMuYWNjZWxlcmF0aW9uLnk7CisgICAgICAgICAgICBkc3QtPnUudmVjMy56ID0gc3JjLmFjY2VsZXJhdGlvbi56OworICAgICAgICAgICAgZHN0LT51LnZlYzMuc3RhdHVzID0gKFNlbnNvclN0YXR1cylzcmMuYWNjZWxlcmF0aW9uLnN0YXR1czsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpST1RBVElPTl9WRUNUT1I6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R0FNRV9ST1RBVElPTl9WRUNUT1I6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R0VPTUFHTkVUSUNfUk9UQVRJT05fVkVDVE9SOgorICAgICAgICB7CisgICAgICAgICAgICBkc3QtPnUudmVjNC54ID0gc3JjLmRhdGFbMF07CisgICAgICAgICAgICBkc3QtPnUudmVjNC55ID0gc3JjLmRhdGFbMV07CisgICAgICAgICAgICBkc3QtPnUudmVjNC56ID0gc3JjLmRhdGFbMl07CisgICAgICAgICAgICBkc3QtPnUudmVjNC53ID0gc3JjLmRhdGFbM107CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEX1VOQ0FMSUJSQVRFRDoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R1lST1NDT1BFX1VOQ0FMSUJSQVRFRDoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUl9VTkNBTElCUkFURUQ6CisgICAgICB7CisgICAgICAgICAgZHN0LT51LnVuY2FsLnggPSBzcmMudW5jYWxpYnJhdGVkX2d5cm8ueF91bmNhbGliOworICAgICAgICAgIGRzdC0+dS51bmNhbC55ID0gc3JjLnVuY2FsaWJyYXRlZF9neXJvLnlfdW5jYWxpYjsKKyAgICAgICAgICBkc3QtPnUudW5jYWwueiA9IHNyYy51bmNhbGlicmF0ZWRfZ3lyby56X3VuY2FsaWI7CisgICAgICAgICAgZHN0LT51LnVuY2FsLnhfYmlhcyA9IHNyYy51bmNhbGlicmF0ZWRfZ3lyby54X2JpYXM7CisgICAgICAgICAgZHN0LT51LnVuY2FsLnlfYmlhcyA9IHNyYy51bmNhbGlicmF0ZWRfZ3lyby55X2JpYXM7CisgICAgICAgICAgZHN0LT51LnVuY2FsLnpfYmlhcyA9IHNyYy51bmNhbGlicmF0ZWRfZ3lyby56X2JpYXM7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6REVWSUNFX09SSUVOVEFUSU9OOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpMSUdIVDoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6UFJFU1NVUkU6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OlRFTVBFUkFUVVJFOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpQUk9YSU1JVFk6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OlJFTEFUSVZFX0hVTUlESVRZOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpBTUJJRU5UX1RFTVBFUkFUVVJFOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpTSUdOSUZJQ0FOVF9NT1RJT046CisgICAgICBjYXNlIFNlbnNvclR5cGU6OlNURVBfREVURUNUT1I6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OlRJTFRfREVURUNUT1I6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OldBS0VfR0VTVFVSRToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R0xBTkNFX0dFU1RVUkU6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OlBJQ0tfVVBfR0VTVFVSRToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6V1JJU1RfVElMVF9HRVNUVVJFOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpTVEFUSU9OQVJZX0RFVEVDVDoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TU9USU9OX0RFVEVDVDoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6SEVBUlRfQkVBVDoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TE9XX0xBVEVOQ1lfT0ZGQk9EWV9ERVRFQ1Q6CisgICAgICB7CisgICAgICAgICAgZHN0LT51LnNjYWxhciA9IHNyYy5kYXRhWzBdOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6OlNURVBfQ09VTlRFUjoKKyAgICAgIHsKKyAgICAgICAgICBkc3QtPnUuc3RlcENvdW50ID0gc3JjLnU2NC5zdGVwX2NvdW50ZXI7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6SEVBUlRfUkFURToKKyAgICAgIHsKKyAgICAgICAgICBkc3QtPnUuaGVhcnRSYXRlLmJwbSA9IHNyYy5oZWFydF9yYXRlLmJwbTsKKyAgICAgICAgICBkc3QtPnUuaGVhcnRSYXRlLnN0YXR1cyA9IChTZW5zb3JTdGF0dXMpc3JjLmhlYXJ0X3JhdGUuc3RhdHVzOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6OlBPU0VfNkRPRjogIC8vIDE1IGZsb2F0cworICAgICAgeworICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTU7ICsraSkgeworICAgICAgICAgICAgICBkc3QtPnUucG9zZTZET0ZbaV0gPSBzcmMuZGF0YVtpXTsKKyAgICAgICAgICB9CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6RFlOQU1JQ19TRU5TT1JfTUVUQToKKyAgICAgIHsKKyAgICAgICAgICBkc3QtPnUuZHluYW1pYy5jb25uZWN0ZWQgPSBzcmMuZHluYW1pY19zZW5zb3JfbWV0YS5jb25uZWN0ZWQ7CisgICAgICAgICAgZHN0LT51LmR5bmFtaWMuc2Vuc29ySGFuZGxlID0gc3JjLmR5bmFtaWNfc2Vuc29yX21ldGEuaGFuZGxlOworCisgICAgICAgICAgbWVtY3B5KGRzdC0+dS5keW5hbWljLnV1aWQuZGF0YSgpLAorICAgICAgICAgICAgICAgICBzcmMuZHluYW1pY19zZW5zb3JfbWV0YS51dWlkLAorICAgICAgICAgICAgICAgICAxNik7CisKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpBRERJVElPTkFMX0lORk86CisgICAgICB7CisgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6c2Vuc29yczo6VjFfMDo6QWRkaXRpb25hbEluZm8gKmRzdEluZm8gPQorICAgICAgICAgICAgICAmZHN0LT51LmFkZGl0aW9uYWw7CisKKyAgICAgICAgICBjb25zdCBhZGRpdGlvbmFsX2luZm9fZXZlbnRfdCAmc3JjSW5mbyA9IHNyYy5hZGRpdGlvbmFsX2luZm87CisKKyAgICAgICAgICBkc3RJbmZvLT50eXBlID0KKyAgICAgICAgICAgICAgKDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA6OkFkZGl0aW9uYWxJbmZvVHlwZSkKKyAgICAgICAgICAgICAgICAgIHNyY0luZm8udHlwZTsKKworICAgICAgICAgIGRzdEluZm8tPnNlcmlhbCA9IHNyY0luZm8uc2VyaWFsOworCisgICAgICAgICAgQ0hFQ0tfRVEoc2l6ZW9mKGRzdEluZm8tPnUpLCBzaXplb2Yoc3JjSW5mby5kYXRhX2ludDMyKSk7CisgICAgICAgICAgbWVtY3B5KCZkc3RJbmZvLT51LCBzcmNJbmZvLmRhdGFfaW50MzIsIHNpemVvZihzcmNJbmZvLmRhdGFfaW50MzIpKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgZGVmYXVsdDoKKyAgICAgIHsKKyAgICAgICAgICBDSEVDS19HRSgoaW50MzJfdClkc3QtPnNlbnNvclR5cGUsCisgICAgICAgICAgICAgICAgICAgKGludDMyX3QpU2Vuc29yVHlwZTo6REVWSUNFX1BSSVZBVEVfQkFTRSk7CisKKyAgICAgICAgICBtZW1jcHkoZHN0LT51LmRhdGEuZGF0YSgpLCBzcmMuZGF0YSwgMTYgKiBzaXplb2YoZmxvYXQpKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgfQorfQorCit2b2lkIGNvbnZlcnRUb1NlbnNvckV2ZW50KGNvbnN0IEV2ZW50ICZzcmMsIHNlbnNvcnNfZXZlbnRfdCAqZHN0KSB7CisgIGRzdC0+dmVyc2lvbiA9IHNpemVvZihzZW5zb3JzX2V2ZW50X3QpOworICBkc3QtPnNlbnNvciA9IHNyYy5zZW5zb3JIYW5kbGU7CisgIGRzdC0+dHlwZSA9IChpbnQzMl90KXNyYy5zZW5zb3JUeXBlOworICBkc3QtPnJlc2VydmVkMCA9IDA7CisgIGRzdC0+dGltZXN0YW1wID0gc3JjLnRpbWVzdGFtcDsKKyAgZHN0LT5mbGFncyA9IDA7CisgIGRzdC0+cmVzZXJ2ZWQxWzBdID0gZHN0LT5yZXNlcnZlZDFbMV0gPSBkc3QtPnJlc2VydmVkMVsyXSA9IDA7CisKKyAgc3dpdGNoIChzcmMuc2Vuc29yVHlwZSkgeworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpNRVRBX0RBVEE6CisgICAgICB7CisgICAgICAgICAgLy8gTGVnYWN5IEhBTHMgZXhwZWN0IHRoZSBoYW5kbGUgcmVmZXJlbmNlIGluIHRoZSBtZXRhIGRhdGEgZmllbGQuCisgICAgICAgICAgLy8gQ29weSBpdCBvdmVyIGZyb20gdGhlIGhhbmRsZSBvZiB0aGUgZXZlbnQuCisgICAgICAgICAgZHN0LT5tZXRhX2RhdGEud2hhdCA9IChpbnQzMl90KXNyYy51Lm1ldGEud2hhdDsKKyAgICAgICAgICBkc3QtPm1ldGFfZGF0YS5zZW5zb3IgPSBzcmMuc2Vuc29ySGFuZGxlOworICAgICAgICAgIC8vIFNldCB0aGUgc2Vuc29yIGhhbmRsZSB0byAwIHRvIG1haW50YWluIGNvbXBhdGliaWxpdHkuCisgICAgICAgICAgZHN0LT5zZW5zb3IgPSAwOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVI6CisgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpPUklFTlRBVElPTjoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R1lST1NDT1BFOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHUkFWSVRZOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpMSU5FQVJfQUNDRUxFUkFUSU9OOgorICAgICAgeworICAgICAgICAgIGRzdC0+YWNjZWxlcmF0aW9uLnggPSBzcmMudS52ZWMzLng7CisgICAgICAgICAgZHN0LT5hY2NlbGVyYXRpb24ueSA9IHNyYy51LnZlYzMueTsKKyAgICAgICAgICBkc3QtPmFjY2VsZXJhdGlvbi56ID0gc3JjLnUudmVjMy56OworICAgICAgICAgIGRzdC0+YWNjZWxlcmF0aW9uLnN0YXR1cyA9IChpbnQ4X3Qpc3JjLnUudmVjMy5zdGF0dXM7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6Uk9UQVRJT05fVkVDVE9SOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHQU1FX1JPVEFUSU9OX1ZFQ1RPUjoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R0VPTUFHTkVUSUNfUk9UQVRJT05fVkVDVE9SOgorICAgICAgeworICAgICAgICAgIGRzdC0+ZGF0YVswXSA9IHNyYy51LnZlYzQueDsKKyAgICAgICAgICBkc3QtPmRhdGFbMV0gPSBzcmMudS52ZWM0Lnk7CisgICAgICAgICAgZHN0LT5kYXRhWzJdID0gc3JjLnUudmVjNC56OworICAgICAgICAgIGRzdC0+ZGF0YVszXSA9IHNyYy51LnZlYzQudzsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRF9VTkNBTElCUkFURUQ6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R1lST1NDT1BFX1VOQ0FMSUJSQVRFRDoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSX1VOQ0FMSUJSQVRFRDoKKyAgICAgICAgeworICAgICAgICAgICAgZHN0LT51bmNhbGlicmF0ZWRfZ3lyby54X3VuY2FsaWIgPSBzcmMudS51bmNhbC54OworICAgICAgICAgICAgZHN0LT51bmNhbGlicmF0ZWRfZ3lyby55X3VuY2FsaWIgPSBzcmMudS51bmNhbC55OworICAgICAgICAgICAgZHN0LT51bmNhbGlicmF0ZWRfZ3lyby56X3VuY2FsaWIgPSBzcmMudS51bmNhbC56OworICAgICAgICAgICAgZHN0LT51bmNhbGlicmF0ZWRfZ3lyby54X2JpYXMgPSBzcmMudS51bmNhbC54X2JpYXM7CisgICAgICAgICAgICBkc3QtPnVuY2FsaWJyYXRlZF9neXJvLnlfYmlhcyA9IHNyYy51LnVuY2FsLnlfYmlhczsKKyAgICAgICAgICAgIGRzdC0+dW5jYWxpYnJhdGVkX2d5cm8uel9iaWFzID0gc3JjLnUudW5jYWwuel9iaWFzOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkRFVklDRV9PUklFTlRBVElPTjoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpMSUdIVDoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpQUkVTU1VSRToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpURU1QRVJBVFVSRToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpQUk9YSU1JVFk6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6UkVMQVRJVkVfSFVNSURJVFk6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QU1CSUVOVF9URU1QRVJBVFVSRToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpTSUdOSUZJQ0FOVF9NT1RJT046CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RFUF9ERVRFQ1RPUjoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpUSUxUX0RFVEVDVE9SOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OldBS0VfR0VTVFVSRToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHTEFOQ0VfR0VTVFVSRToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpQSUNLX1VQX0dFU1RVUkU6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6V1JJU1RfVElMVF9HRVNUVVJFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlNUQVRJT05BUllfREVURUNUOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1PVElPTl9ERVRFQ1Q6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6SEVBUlRfQkVBVDoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpMT1dfTEFURU5DWV9PRkZCT0RZX0RFVEVDVDoKKyAgICAgICAgeworICAgICAgICAgICAgZHN0LT5kYXRhWzBdID0gc3JjLnUuc2NhbGFyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlNURVBfQ09VTlRFUjoKKyAgICAgICAgeworICAgICAgICAgICAgZHN0LT51NjQuc3RlcF9jb3VudGVyID0gc3JjLnUuc3RlcENvdW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkhFQVJUX1JBVEU6CisgICAgICAgIHsKKyAgICAgICAgICAgIGRzdC0+aGVhcnRfcmF0ZS5icG0gPSBzcmMudS5oZWFydFJhdGUuYnBtOworICAgICAgICAgICAgZHN0LT5oZWFydF9yYXRlLnN0YXR1cyA9IChpbnQ4X3Qpc3JjLnUuaGVhcnRSYXRlLnN0YXR1czsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpQT1NFXzZET0Y6ICAvLyAxNSBmbG9hdHMKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAxNTsgKytpKSB7CisgICAgICAgICAgICAgICAgZHN0LT5kYXRhW2ldID0gc3JjLnUucG9zZTZET0ZbaV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6RFlOQU1JQ19TRU5TT1JfTUVUQToKKyAgICAgICAgeworICAgICAgICAgICAgZHN0LT5keW5hbWljX3NlbnNvcl9tZXRhLmNvbm5lY3RlZCA9IHNyYy51LmR5bmFtaWMuY29ubmVjdGVkOworICAgICAgICAgICAgZHN0LT5keW5hbWljX3NlbnNvcl9tZXRhLmhhbmRsZSA9IHNyYy51LmR5bmFtaWMuc2Vuc29ySGFuZGxlOworICAgICAgICAgICAgZHN0LT5keW5hbWljX3NlbnNvcl9tZXRhLnNlbnNvciA9IE5VTEw7ICAvLyB0byBiZSBmaWxsZWQgaW4gbGF0ZXIKKworICAgICAgICAgICAgbWVtY3B5KGRzdC0+ZHluYW1pY19zZW5zb3JfbWV0YS51dWlkLAorICAgICAgICAgICAgICAgICAgIHNyYy51LmR5bmFtaWMudXVpZC5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgMTYpOworCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QURESVRJT05BTF9JTkZPOgorICAgICAgICB7CisgICAgICAgICAgICBjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzZW5zb3JzOjpWMV8wOjpBZGRpdGlvbmFsSW5mbyAmc3JjSW5mbyA9CisgICAgICAgICAgICAgICAgc3JjLnUuYWRkaXRpb25hbDsKKworICAgICAgICAgICAgYWRkaXRpb25hbF9pbmZvX2V2ZW50X3QgKmRzdEluZm8gPSAmZHN0LT5hZGRpdGlvbmFsX2luZm87CisgICAgICAgICAgICBkc3RJbmZvLT50eXBlID0gKGludDMyX3Qpc3JjSW5mby50eXBlOworICAgICAgICAgICAgZHN0SW5mby0+c2VyaWFsID0gc3JjSW5mby5zZXJpYWw7CisKKyAgICAgICAgICAgIENIRUNLX0VRKHNpemVvZihzcmNJbmZvLnUpLCBzaXplb2YoZHN0SW5mby0+ZGF0YV9pbnQzMikpOworCisgICAgICAgICAgICBtZW1jcHkoZHN0SW5mby0+ZGF0YV9pbnQzMiwKKyAgICAgICAgICAgICAgICAgICAmc3JjSW5mby51LAorICAgICAgICAgICAgICAgICAgIHNpemVvZihkc3RJbmZvLT5kYXRhX2ludDMyKSk7CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgeworICAgICAgICAgICAgQ0hFQ0tfR0UoKGludDMyX3Qpc3JjLnNlbnNvclR5cGUsCisgICAgICAgICAgICAgICAgICAgICAoaW50MzJfdClTZW5zb3JUeXBlOjpERVZJQ0VfUFJJVkFURV9CQVNFKTsKKworICAgICAgICAgICAgbWVtY3B5KGRzdC0+ZGF0YSwgc3JjLnUuZGF0YS5kYXRhKCksIDE2ICogc2l6ZW9mKGZsb2F0KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworYm9vbCBjb252ZXJ0RnJvbVNoYXJlZE1lbUluZm8oY29uc3QgU2hhcmVkTWVtSW5mbyYgbWVtSW4sIHNlbnNvcnNfZGlyZWN0X21lbV90ICptZW1PdXQpIHsKKyAgICBpZiAobWVtT3V0ID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN3aXRjaChtZW1Jbi50eXBlKSB7CisgICAgICAgIGNhc2UgU2hhcmVkTWVtVHlwZTo6QVNITUVNOgorICAgICAgICAgICAgbWVtT3V0LT50eXBlID0gU0VOU09SX0RJUkVDVF9NRU1fVFlQRV9BU0hNRU07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTaGFyZWRNZW1UeXBlOjpHUkFMTE9DOgorICAgICAgICAgICAgbWVtT3V0LT50eXBlID0gU0VOU09SX0RJUkVDVF9NRU1fVFlQRV9HUkFMTE9DOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3dpdGNoKG1lbUluLmZvcm1hdCkgeworICAgICAgICBjYXNlIFNoYXJlZE1lbUZvcm1hdDo6U0VOU09SU19FVkVOVDoKKyAgICAgICAgICAgIG1lbU91dC0+Zm9ybWF0ID0gU0VOU09SX0RJUkVDVF9GTVRfU0VOU09SU19FVkVOVDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1lbU91dC0+c2l6ZSA9IG1lbUluLnNpemU7CisgICAgbWVtT3V0LT5oYW5kbGUgPSBtZW1Jbi5tZW1vcnlIYW5kbGU7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2ludCBjb252ZXJ0RnJvbVJhdGVMZXZlbChSYXRlTGV2ZWwgcmF0ZSkgeworICAgIHN3aXRjaChyYXRlKSB7CisgICAgICAgIGNhc2UgUmF0ZUxldmVsOjpTVE9QOgorICAgICAgICAgICAgcmV0dXJuIFNFTlNPUl9ESVJFQ1RfUkFURV9TVE9QOworICAgICAgICBjYXNlIFJhdGVMZXZlbDo6Tk9STUFMOgorICAgICAgICAgICAgcmV0dXJuIFNFTlNPUl9ESVJFQ1RfUkFURV9OT1JNQUw7CisgICAgICAgIGNhc2UgUmF0ZUxldmVsOjpGQVNUOgorICAgICAgICAgICAgcmV0dXJuIFNFTlNPUl9ESVJFQ1RfUkFURV9GQVNUOworICAgICAgICBjYXNlIFJhdGVMZXZlbDo6VkVSWV9GQVNUOgorICAgICAgICAgICAgcmV0dXJuIFNFTlNPUl9ESVJFQ1RfUkFURV9WRVJZX0ZBU1Q7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgfQorfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2Ugc2Vuc29ycworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9kZWZhdWx0L2luY2x1ZGUvc2Vuc29ycy9jb252ZXJ0LmggYi9zZW5zb3JzLzEuMC9kZWZhdWx0L2luY2x1ZGUvc2Vuc29ycy9jb252ZXJ0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzNhMDEyNQotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvaW5jbHVkZS9zZW5zb3JzL2NvbnZlcnQuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBIQVJEV0FSRV9JTlRFUkZBQ0VTX1NFTlNPUlNfVjFfMF9ERUZBVUxUX0lOQ0xVREVfQ09OVkVSVF9IXworCisjZGVmaW5lIEhBUkRXQVJFX0lOVEVSRkFDRVNfU0VOU09SU19WMV8wX0RFRkFVTFRfSU5DTFVERV9DT05WRVJUX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL0lTZW5zb3JzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvc2Vuc29ycy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHNlbnNvcnMgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordm9pZCBjb252ZXJ0RnJvbVNlbnNvcihjb25zdCBzZW5zb3JfdCAmc3JjLCBTZW5zb3JJbmZvICpkc3QpOwordm9pZCBjb252ZXJ0VG9TZW5zb3IoY29uc3QgU2Vuc29ySW5mbyAmc3JjLCBzZW5zb3JfdCAqZHN0KTsKKwordm9pZCBjb252ZXJ0RnJvbVNlbnNvckV2ZW50KGNvbnN0IHNlbnNvcnNfZXZlbnRfdCAmc3JjLCBFdmVudCAqZHN0KTsKK3ZvaWQgY29udmVydFRvU2Vuc29yRXZlbnQoY29uc3QgRXZlbnQgJnNyYywgc2Vuc29yc19ldmVudF90ICpkc3QpOworCitib29sIGNvbnZlcnRGcm9tU2hhcmVkTWVtSW5mbyhjb25zdCBTaGFyZWRNZW1JbmZvJiBtZW1Jbiwgc2Vuc29yc19kaXJlY3RfbWVtX3QgKm1lbU91dCk7CitpbnQgY29udmVydEZyb21SYXRlTGV2ZWwoUmF0ZUxldmVsIHJhdGUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2Ugc2Vuc29ycworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEhBUkRXQVJFX0lOVEVSRkFDRVNfU0VOU09SU19WMV8wX0RFRkFVTFRfSU5DTFVERV9DT05WRVJUX0hfCmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWY2ZDgxCi0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL0lTZW5zb3JzLmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpzZW5zb3JzOjpWMV8wOjpJU2Vuc29yczsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIC8qIFNlbnNvcnMgZnJhbWV3b3JrIHNlcnZpY2UgbmVlZHMgYXQgbGVhc3QgdHdvIHRocmVhZHMuCisgICAgICogT25lIHRocmVhZCBibG9ja3Mgb24gYSAicG9sbCIKKyAgICAgKiBUaGUgc2Vjb25kIHRocmVhZCBpcyBuZWVkZWQgZm9yIGFsbCBvdGhlciBIQUwgbWV0aG9kcy4KKyAgICAgKi8KKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElTZW5zb3JzPigyKTsKK30KZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL3R5cGVzLmhhbCBiL3NlbnNvcnMvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTI2ZTJmCi0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMTI5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMDsKKworLyoqCisgKiBQbGVhc2Ugc2VlIHRoZSBTZW5zb3JzIHNlY3Rpb24gb2Ygc291cmNlLmFuZHJvaWQuY29tIGZvciBhbgorICogaW50cm9kdWN0aW9uIHRvIGFuZCBkZXRhaWxlZCBkZXNjcmlwdGlvbnMgb2YgQW5kcm9pZCBzZW5zb3IgdHlwZXM6CisgKiBodHRwOi8vc291cmNlLmFuZHJvaWQuY29tL2RldmljZXMvc2Vuc29ycy9pbmRleC5odG1sCisgKi8KKworLyoqIFR5cGUgZW51bWVyYXRpbmcgdmFyaW91cyByZXN1bHQgY29kZXMgcmV0dXJuZWQgZnJvbSBJU2Vuc29ycyBtZXRob2RzICovCitlbnVtIFJlc3VsdCA6IGludDMyX3QgeworICAgIE9LLAorICAgIFBFUk1JU1NJT05fREVOSUVEICAgICAgICAgICAgICAgICAgID0gLTEsCisgICAgTk9fTUVNT1JZICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAtMTIsCisgICAgQkFEX1ZBTFVFICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAtMjIsCisgICAgSU5WQUxJRF9PUEVSQVRJT04gICAgICAgICAgICAgICAgICAgPSAtMzgsCit9OworCisvKioKKyAqIFNlbnNvciBIQUwgbW9kZXMgdXNlZCBpbiBzZXRPcGVyYXRpb25Nb2RlIG1ldGhvZAorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iU0VOU09SX0hBTF8iLCB2YWx1ZV9zdWZmaXg9Il9NT0RFIikKK2VudW0gT3BlcmF0aW9uTW9kZSA6IGludDMyX3QgeworICAgIE5PUk1BTCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgIERBVEFfSU5KRUNUSU9OICAgICAgICAgICAgICAgICAgPSAxLAorfTsKKworLyoqCisgKiBTZW5zb3IgdHlwZQorICoKKyAqIEVhY2ggc2Vuc29yIGhhcyBhIHR5cGUgd2hpY2ggZGVmaW5lcyB3aGF0IHRoaXMgc2Vuc29yIG1lYXN1cmVzIGFuZCBob3cKKyAqIG1lYXN1cmVzIGFyZSByZXBvcnRlZC4gU2VlIHRoZSBCYXNlIHNlbnNvcnMgYW5kIENvbXBvc2l0ZSBzZW5zb3JzIGxpc3RzCisgKiBmb3IgY29tcGxldGUgZGVzY3JpcHRpb25zOgorICogaHR0cDovL3NvdXJjZS5hbmRyb2lkLmNvbS9kZXZpY2VzL3NlbnNvcnMvYmFzZV90cmlnZ2Vycy5odG1sCisgKiBodHRwOi8vc291cmNlLmFuZHJvaWQuY29tL2RldmljZXMvc2Vuc29ycy9jb21wb3NpdGVfc2Vuc29ycy5odG1sCisgKgorICogRGV2aWNlIG1hbnVmYWN0dXJlcnMgKE9FTXMpIGNhbiBkZWZpbmUgdGhlaXIgb3duIHNlbnNvciB0eXBlcywgZm9yCisgKiB0aGVpciBwcml2YXRlIHVzZSBieSBhcHBsaWNhdGlvbnMgb3Igc2VydmljZXMgcHJvdmlkZWQgYnkgdGhlbS4gU3VjaAorICogc2Vuc29yIHR5cGVzIGFyZSBzcGVjaWZpYyB0byBhbiBPRU0gYW5kIGNhbid0IGJlIGV4cG9zZWQgaW4gdGhlIFNESy4KKyAqIFRoZXNlIHR5cGVzIG11c3Qgc3RhcnQgYXQgU2Vuc29yVHlwZTo6REVWSUNFX1BSSVZBVEVfQkFTRS4KKyAqCisgKiBBbGwgc2Vuc29ycyBkZWZpbmVkIG91dHNpZGUgb2YgdGhlIGRldmljZSBwcml2YXRlIHJhbmdlIG11c3QgY29ycmVzcG9uZCB0bworICogYSB0eXBlIGRlZmluZWQgaW4gdGhpcyBmaWxlLCBhbmQgbXVzdCBzYXRpc2Z5IHRoZSBjaGFyYWN0ZXJpc3RpY3MgbGlzdGVkIGluCisgKiB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIHNlbnNvciB0eXBlLgorICoKKyAqIEVhY2ggc2Vuc29yIGFsc28gaGFzIGEgInR5cGVBc1N0cmluZyIuCisgKiAgLSBzdHJpbmcgdHlwZSBvZiBzZW5zb3JzIGRlZmluZWQgaW4gdGhpcyBmaWxlIGlzIG92ZXJyaWRkZW4gYnkgQW5kcm9pZCB0bworICogICAgdmFsdWVzIGRlZmluZWQgaW4gQW5kcm9pZCBBUEkgd2l0aCAiYW5kcm9pZC5zZW5zb3IuIiBwcmVmaXguCisgKiAgICBFeGFtcGxlOiBmb3IgYW4gYWNjZWxlcm9tZXRlciwKKyAqICAgICAgdHlwZSA9IFNlbnNvclR5cGU6OkFjY2xlcm9tZXRlcgorICogICAgICB0eXBlQXNTdHJpbmcgPSAiIiAod2lsbCBiZSByZXBsYWNlIGJ5ICJhbmRyb2lkLnNlbnNvci5hY2NlbGVyb21ldGVyIiBieQorICogICAgICAgICAgICAgICAgICAgICAgICAgQW5kcm9pZCBmcmFtZW93cmspCisgKiAgLSBzdHJpbmcgdHlwZSBvZiBzZW5zb3JzIGluc2lkZSBvZiB0aGUgZGV2aWNlIHByaXZhdGUgcmFuZ2UgTVVTVCBiZSBwcmVmaXhlZAorICogICAgYnkgdGhlIHNlbnNvciBwcm92aWRlcidzIG9yIE9FTSByZXZlcnNlIGRvbWFpbiBuYW1lLiBJbiBwYXJ0aWN1bGFyLCB0aGV5CisgKiAgICBjYW5ub3QgdXNlIHRoZSAiYW5kcm9pZC5zZW5zb3IuIiBwcmVmaXguCisgKgorICogV2hlbiBhbmRyb2lkIGludHJvZHVjZXMgYSBuZXcgc2Vuc29yIHR5cGUgdGhhdCBjYW4gcmVwbGFjZSBhbiBPRU0tZGVmaW5lZAorICogc2Vuc29yIHR5cGUsIHRoZSBPRU0gbXVzdCB1c2UgdGhlIG9mZmljaWFsIHNlbnNvciB0eXBlIGFuZCBzdHJpbmdUeXBlIG9uCisgKiB2ZXJzaW9ucyBvZiB0aGUgSEFMIHRoYXQgc3VwcG9ydCB0aGlzIG5ldyBvZmZpY2lhbCBzZW5zb3IgdHlwZS4KKyAqCisgKiBFeGFtcGxlIChtYWRlIHVwKTogU3VwcG9zZSBHb29nbGUncyBHbGFzcyB0ZWFtIHdhbnRzIHRvIHN1cmZhY2UgYSBzZW5zb3IKKyAqIGRldGVjdGluZyB0aGF0IEdsYXNzIGlzIG9uIGEgaGVhZC4KKyAqICAtIFN1Y2ggYSBzZW5zb3IgaXMgbm90IG9mZmljaWFsbHkgc3VwcG9ydGVkIGluIGFuZHJvaWQgS2l0S2F0CisgKiAgLSBHbGFzcyBkZXZpY2VzIGxhdW5jaGluZyBvbiBLaXRLYXQgY2FuIGltcGxlbWVudCBhIHNlbnNvciB3aXRoCisgKiAgICAgIHR5cGUgPSAweDEwMDAxCisgKiAgICAgIHR5cGVBc1N0cmluZyA9ICJjb20uZ29vZ2xlLmdsYXNzLm9uaGVhZGRldGVjdG9yIgorICogIC0gSW4gTCBhbmRyb2lkIHJlbGVhc2UsIGlmIGFuZHJvaWQgZGVjaWRlcyB0byBkZWZpbmUKKyAqICAgIFNlbnNvclR5cGU6Ok9OX0hFQURfREVURUNUT1IgYW5kIFNUUklOR19TZW5zb3JUeXBlOjpPTl9IRUFEX0RFVEVDVE9SLAorICogICAgdGhvc2UgdHlwZXMgc2hvdWxkIHJlcGxhY2UgdGhlIEdsYXNzLXRlYW0tc3BlY2lmaWMgdHlwZXMgaW4gYWxsIGZ1dHVyZQorICogICAgbGF1bmNoZXMuCisgKiAgLSBXaGVuIGxhdW5jaGluZyBHbGFzcyBvbiB0aGUgTCByZWxlYXNlLCBHb29nbGUgc2hvdWxkIG5vdyB1c2UgdGhlIG9mZmljaWFsCisgKiAgICB0eXBlIChTZW5zb3JUeXBlOjpPTl9IRUFEX0RFVEVDVE9SKSBhbmQgc3RyaW5nVHlwZS4KKyAqICAtIFRoaXMgd2F5LCBhbGwgYXBwbGljYXRpb25zIGNhbiBub3cgdXNlIHRoaXMgc2Vuc29yLgorICovCisKKy8qKgorICogV2FrZSB1cCBzZW5zb3JzLgorICogRWFjaCBzZW5zb3IgbWF5IGhhdmUgZWl0aGVyIG9yIGJvdGggYSB3YWtlLXVwIGFuZCBhIG5vbi13YWtlIHZhcmlhbnQuCisgKiBXaGVuIHJlZ2lzdGVyZWQgaW4gYmF0Y2ggbW9kZSwgd2FrZS11cCBzZW5zb3JzIHdpbGwgd2FrZSB1cCB0aGUgQVAgd2hlbgorICogdGhlaXIgRklGT3MgYXJlIGZ1bGwgb3Igd2hlbiB0aGUgYmF0Y2ggdGltZW91dCBleHBpcmVzLiBBIHNlcGFyYXRlIEZJRk8gaGFzCisgKiB0byBiZSBtYWludGFpbmVkIGZvciB3YWtlIHVwIHNlbnNvcnMgYW5kIG5vbiB3YWtlIHVwIHNlbnNvcnMuIFRoZSBub24KKyAqIHdha2UtdXAgc2Vuc29ycyBuZWVkIHRvIG92ZXJ3cml0ZSB0aGVpciBGSUZPcyB3aGVuIHRoZXkgYXJlIGZ1bGwgdGlsbCB0aGUgQVAKKyAqIHdha2VzIHVwIGFuZCB0aGUgd2FrZS11cCBzZW5zb3JzIHdpbGwgd2FrZS11cCB0aGUgQVAgd2hlbiB0aGVpciBGSUZPcyBhcmUKKyAqIGZ1bGwgb3Igd2hlbiB0aGUgYmF0Y2ggdGltZW91dCBleHBpcmVzIHdpdGhvdXQgbG9zaW5nIGV2ZW50cy4KKyAqIFdha2UtdXAgYW5kIG5vbiB3YWtlLXVwIHZhcmlhbnRzIG9mIGVhY2ggc2Vuc29yIGNhbiBiZSBhY3RpdmF0ZWQgYXQKKyAqIGRpZmZlcmVudCByYXRlcyBpbmRlcGVuZGVudGx5IG9mIGVhY2ggb3RoZXIuCisgKgorICogTm90ZTogUHJveGltaXR5IHNlbnNvciBhbmQgc2lnbmlmaWNhbnQgbW90aW9uIHNlbnNvciB3aGljaCB3ZXJlIGRlZmluZWQgaW4KKyAqIHByZXZpb3VzIHJlbGVhc2VzIGFyZSBhbHNvIHdha2UtdXAgc2Vuc29ycyBhbmQgbXVzdCBiZSB0cmVhdGVkIGFzIHN1Y2guCisgKiBXYWtlLXVwIG9uZS1zaG90IHNlbnNvcnMgbGlrZSBTSUdOSUZJQ0FOVF9NT1RJT04gY2Fubm90IGJlIGJhdGNoZWQsIGhlbmNlCisgKiB0aGUgdGV4dCBhYm91dCBiYXRjaCBhYm92ZSBkb2Vzbid0IGFwcGx5IHRvIHRoZW0uIFNlZSB0aGUgZGVmaW5pdGlvbnMgb2YKKyAqIFNlbnNvclR5cGU6OlBST1hJTUlUWSBhbmQgU2Vuc29yVHlwZTo6U0lHTklGSUNBTlRfTU9USU9OIGZvciBtb3JlIGluZm8uCisgKgorICogU2V0IFNFTlNPUl9GTEFHX1dBS0VfVVAgZmxhZyBmb3IgYWxsIHdha2UtdXAgc2Vuc29ycy4KKyAqCisgKiBGb3IgZXhhbXBsZSwgQSBkZXZpY2UgY2FuIGhhdmUgdHdvIHNlbnNvcnMgYm90aCBvZiBTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSCisgKiBhbmQgb25lIG9mIHRoZW0gY2FuIGJlIGEgd2FrZV91cCBzZW5zb3IgKHdpdGggU0VOU09SX0ZMQUdfV0FLRV9VUCBmbGFnIHNldCkKKyAqIGFuZCB0aGUgb3RoZXIgY2FuIGJlIGEgcmVndWxhciBub24gd2FrZV91cCBzZW5zb3IuIEJvdGggb2YgdGhlc2Ugc2Vuc29ycworICogbXVzdCBiZSBhY3RpdmF0ZWQvZGVhY3RpdmF0ZWQgaW5kZXBlbmRlbnRseSBvZiB0aGUgb3RoZXIuCisgKi8KKworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IlNFTlNPUl9UWVBFXyIpCitlbnVtIFNlbnNvclR5cGUgOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBNRVRBX0RBVEEgaXMgYSBzcGVjaWFsIGV2ZW50IHR5cGUgdXNlZCB0byBwb3B1bGF0ZSB0aGUgTWV0YURhdGEKKyAgICAgKiBzdHJ1Y3R1cmUuIEl0IGRvZXNuJ3QgY29ycmVzcG9uZCB0byBhIHBoeXNpY2FsIHNlbnNvci4gRXZlbnRzIG9mIHRoaXMKKyAgICAgKiB0eXBlIGV4aXN0IG9ubHkgaW5zaWRlIHRoZSBIQUwsIHRoZWlyIHByaW1hcnkgcHVycG9zZSBpcyB0byBzaWduYWwgdGhlCisgICAgICogY29tcGxldGlvbiBvZiBhIGZsdXNoIHJlcXVlc3QuCisgICAgICovCisgICAgTUVUQV9EQVRBICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisKKyAgICAvKioKKyAgICAgKiBBQ0NFTEVST01FVEVSCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIEFsbCB2YWx1ZXMgYXJlIGluIFNJIHVuaXRzIChtL3NeMikgYW5kIG1lYXN1cmUgdGhlIGFjY2VsZXJhdGlvbiBvZiB0aGUKKyAgICAgKiBkZXZpY2UgbWludXMgdGhlIGFjY2VsZXJhdGlvbiBkdWUgdG8gZ3Jhdml0eS4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBBQ0NFTEVST01FVEVSICAgICAgICAgICAgICAgICAgID0gMSwKKworICAgIC8qKgorICAgICAqIE1BR05FVElDX0ZJRUxECisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIEFsbCB2YWx1ZXMgYXJlIGluIG1pY3JvLVRlc2xhICh1VCkgYW5kIG1lYXN1cmUgdGhlIGdlb21hZ25ldGljCisgICAgICogZmllbGQgaW4gdGhlIFgsIFkgYW5kIFogYXhpcy4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBNQUdORVRJQ19GSUVMRCAgICAgICAgICAgICAgICAgID0gMiwKKworICAgIC8qKgorICAgICAqIE9SSUVOVEFUSU9OCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIEFsbCB2YWx1ZXMgYXJlIGFuZ2xlcyBpbiBkZWdyZWVzLgorICAgICAqCisgICAgICogT3JpZW50YXRpb24gc2Vuc29ycyByZXR1cm4gc2Vuc29yIGV2ZW50cyBmb3IgYWxsIDMgYXhlcyBhdCBhIGNvbnN0YW50CisgICAgICogcmF0ZSBkZWZpbmVkIGJ5IHNldERlbGF5KCkuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgT1JJRU5UQVRJT04gICAgICAgICAgICAgICAgICAgICA9IDMsCisKKyAgICAvKioKKyAgICAgKiBHWVJPU0NPUEUKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQWxsIHZhbHVlcyBhcmUgaW4gcmFkaWFucy9zZWNvbmQgYW5kIG1lYXN1cmUgdGhlIHJhdGUgb2Ygcm90YXRpb24KKyAgICAgKiBhcm91bmQgdGhlIFgsIFkgYW5kIFogYXhpcy4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBHWVJPU0NPUEUgICAgICAgICAgICAgICAgICAgICAgID0gNCwKKworICAgIC8qKgorICAgICAqIExJR0hUCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uLWNoYW5nZQorICAgICAqCisgICAgICogVGhlIGxpZ2h0IHNlbnNvciB2YWx1ZSBpcyByZXR1cm5lZCBpbiBTSSBsdXggdW5pdHMuCisgICAgICoKKyAgICAgKiBCb3RoIHdha2UtdXAgYW5kIG5vbiB3YWtlLXVwIHZlcnNpb25zIGFyZSB1c2VmdWwuCisgICAgICovCisgICAgTElHSFQgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUsCisKKyAgICAvKioKKyAgICAgKiBQUkVTU1VSRQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBUaGUgcHJlc3N1cmUgc2Vuc29yIHJldHVybiB0aGUgYXRobW9zcGhlcmljIHByZXNzdXJlIGluIGhlY3RvcGFzY2FsIChoUGEpCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgUFJFU1NVUkUgICAgICAgICAgICAgICAgICAgICAgICA9IDYsCisKKyAgICAvKiogVEVNUEVSQVRVUkUgaXMgZGVwcmVjYXRlZCBpbiB0aGUgSEFMICovCisgICAgVEVNUEVSQVRVUkUgICAgICAgICAgICAgICAgICAgICA9IDcsCisKKyAgICAvKioKKyAgICAgKiBQUk9YSU1JVFkKKyAgICAgKiByZXBvcnRpbmctbW9kZTogb24tY2hhbmdlCisgICAgICoKKyAgICAgKiBUaGUgcHJveGltaXR5IHNlbnNvciB3aGljaCB0dXJucyB0aGUgc2NyZWVuIG9mZiBhbmQgYmFjayBvbiBkdXJpbmcgY2FsbHMKKyAgICAgKiBpcyB0aGUgd2FrZS11cCBwcm94aW1pdHkgc2Vuc29yLiBJbXBsZW1lbnQgd2FrZS11cCBwcm94aW1pdHkgc2Vuc29yCisgICAgICogYmVmb3JlIGltcGxlbWVudGluZyBhIG5vbiB3YWtlLXVwIHByb3hpbWl0eSBzZW5zb3IuIEZvciB0aGUgd2FrZS11cAorICAgICAqIHByb3hpbWl0eSBzZW5zb3Igc2V0IHRoZSBmbGFnIFNFTlNPUl9GTEFHX1dBS0VfVVAuCisgICAgICogVGhlIHZhbHVlIGNvcnJlc3BvbmRzIHRvIHRoZSBkaXN0YW5jZSB0byB0aGUgbmVhcmVzdCBvYmplY3QgaW4KKyAgICAgKiBjZW50aW1ldGVycy4KKyAgICAgKi8KKyAgICBQUk9YSU1JVFkgICAgICAgICAgICAgICAgICAgICAgID0gOCwKKworICAgIC8qKgorICAgICAqIEdSQVZJVFkKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQSBncmF2aXR5IG91dHB1dCBpbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbiBvZiBhbmQgbWFnbml0dWRlIG9mIGdyYXZpdHkgaW4KKyAgICAgKiB0aGUgZGV2aWNlcydzIGNvb3JkaW5hdGVzLgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIEdSQVZJVFkgICAgICAgICAgICAgICAgICAgICAgICAgPSA5LAorCisgICAgLyoqCisgICAgICogTElORUFSX0FDQ0VMRVJBVElPTgorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBJbmRpY2F0ZXMgdGhlIGxpbmVhciBhY2NlbGVyYXRpb24gb2YgdGhlIGRldmljZSBpbiBkZXZpY2UgY29vcmRpbmF0ZXMsCisgICAgICogbm90IGluY2x1ZGluZyBncmF2aXR5LgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIExJTkVBUl9BQ0NFTEVSQVRJT04gICAgICAgICAgICAgPSAxMCwKKworICAgIC8qKgorICAgICAqIFJPVEFUSU9OX1ZFQ1RPUgorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBUaGUgcm90YXRpb24gdmVjdG9yIHN5bWJvbGl6ZXMgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBkZXZpY2UgcmVsYXRpdmUgdG8KKyAgICAgKiB0aGUgRWFzdC1Ob3J0aC1VcCBjb29yZGluYXRlcyBmcmFtZS4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBST1RBVElPTl9WRUNUT1IgICAgICAgICAgICAgICAgID0gMTEsCisKKyAgICAvKioKKyAgICAgKiBSRUxBVElWRV9IVU1JRElUWQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbi1jaGFuZ2UKKyAgICAgKgorICAgICAqIEEgcmVsYXRpdmUgaHVtaWRpdHkgc2Vuc29yIG1lYXN1cmVzIHJlbGF0aXZlIGFtYmllbnQgYWlyIGh1bWlkaXR5IGFuZAorICAgICAqIHJldHVybnMgYSB2YWx1ZSBpbiBwZXJjZW50LgorICAgICAqCisgICAgICogQm90aCB3YWtlLXVwIGFuZCBub24gd2FrZS11cCB2ZXJzaW9ucyBhcmUgdXNlZnVsLgorICAgICAqLworICAgIFJFTEFUSVZFX0hVTUlESVRZICAgICAgICAgICAgICAgPSAxMiwKKworICAgIC8qKgorICAgICAqIEFNQklFTlRfVEVNUEVSQVRVUkUKKyAgICAgKiByZXBvcnRpbmctbW9kZTogb24tY2hhbmdlCisgICAgICoKKyAgICAgKiBUaGUgYW1iaWVudCAocm9vbSkgdGVtcGVyYXR1cmUgaW4gZGVncmVlIENlbHNpdXMuCisgICAgICoKKyAgICAgKiBCb3RoIHdha2UtdXAgYW5kIG5vbiB3YWtlLXVwIHZlcnNpb25zIGFyZSB1c2VmdWwuCisgICAgICovCisgICAgQU1CSUVOVF9URU1QRVJBVFVSRSAgICAgICAgICAgICA9IDEzLAorCisgICAgLyoqCisgICAgICogTUFHTkVUSUNfRklFTERfVU5DQUxJQlJBVEVECisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIFNpbWlsYXIgdG8gTUFHTkVUSUNfRklFTEQsIGJ1dCB0aGUgaGFyZCBpcm9uIGNhbGlicmF0aW9uIGlzCisgICAgICogcmVwb3J0ZWQgc2VwYXJhdGVseSBpbnN0ZWFkIG9mIGJlaW5nIGluY2x1ZGVkIGluIHRoZSBtZWFzdXJlbWVudC4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBNQUdORVRJQ19GSUVMRF9VTkNBTElCUkFURUQgICAgID0gMTQsCisKKyAgICAvKioKKyAgICAgKiBHQU1FX1JPVEFUSU9OX1ZFQ1RPUgorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBTaW1pbGFyIHRvIFJPVEFUSU9OX1ZFQ1RPUiwgYnV0IG5vdCB1c2luZyB0aGUgZ2VvbWFnbmV0aWMKKyAgICAgKiBmaWVsZC4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBHQU1FX1JPVEFUSU9OX1ZFQ1RPUiAgICAgICAgICAgID0gMTUsCisKKyAgICAvKioKKyAgICAgKiBHWVJPU0NPUEVfVU5DQUxJQlJBVEVECisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIEFsbCB2YWx1ZXMgYXJlIGluIHJhZGlhbnMvc2Vjb25kIGFuZCBtZWFzdXJlIHRoZSByYXRlIG9mIHJvdGF0aW9uCisgICAgICogYXJvdW5kIHRoZSBYLCBZIGFuZCBaIGF4aXMuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgR1lST1NDT1BFX1VOQ0FMSUJSQVRFRCAgICAgICAgICA9IDE2LAorCisgICAgLyoqCisgICAgICogU0lHTklGSUNBTlRfTU9USU9OCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uZS1zaG90CisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgdHJpZ2dlcnMgYW4gZXZlbnQgZWFjaCB0aW1lIHNpZ25pZmljYW50IG1vdGlvbgorICAgICAqIGlzIGRldGVjdGVkIGFuZCBhdXRvbWF0aWNhbGx5IGRpc2FibGVzIGl0c2VsZi4KKyAgICAgKiBGb3IgU2lnbmlmaWNhbnQgTW90aW9uIHNlbnNvciB0byBiZSB1c2VmdWwsIGl0IG11c3QgYmUgZGVmaW5lZCBhcyBhCisgICAgICogd2FrZS11cCBzZW5zb3IuIChzZXQgU0VOU09SX0ZMQUdfV0FLRV9VUCkuIEltcGxlbWVudCB0aGUgd2FrZS11cAorICAgICAqIHNpZ25pZmljYW50IG1vdGlvbiBzZW5zb3IuIEEgbm9uIHdha2UtdXAgdmVyc2lvbiBpcyBub3QgdXNlZnVsLgorICAgICAqIFRoZSBvbmx5IGFsbG93ZWQgdmFsdWUgdG8gcmV0dXJuIGlzIDEuMC4KKyAgICAgKi8KKyAgICBTSUdOSUZJQ0FOVF9NT1RJT04gICAgICAgICAgICAgID0gMTcsCisKKyAgICAvKioKKyAgICAgKiBTVEVQX0RFVEVDVE9SCisgICAgICogcmVwb3J0aW5nLW1vZGU6IHNwZWNpYWwKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSB0cmlnZ2VycyBhbiBldmVudCBlYWNoIHRpbWUgYSBzdGVwIGlzIHRha2VuCisgICAgICogYnkgdGhlIHVzZXIuIFRoZSBvbmx5IGFsbG93ZWQgdmFsdWUgdG8gcmV0dXJuIGlzIDEuMCBhbmQgYW4gZXZlbnQKKyAgICAgKiBpcyBnZW5lcmF0ZWQgZm9yIGVhY2ggc3RlcC4KKyAgICAgKgorICAgICAqIEJvdGggd2FrZS11cCBhbmQgbm9uIHdha2UtdXAgdmVyc2lvbnMgYXJlIHVzZWZ1bC4KKyAgICAgKi8KKyAgICBTVEVQX0RFVEVDVE9SICAgICAgICAgICAgICAgICAgID0gMTgsCisKKyAgICAvKioKKyAgICAgKiBTVEVQX0NPVU5URVIKKyAgICAgKiByZXBvcnRpbmctbW9kZTogb24tY2hhbmdlCisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHN0ZXBzIHRha2VuIGJ5IHRoZSB1c2VyIHNpbmNlCisgICAgICogdGhlIGxhc3QgcmVib290IHdoaWxlIGFjdGl2YXRlZC4gVGhlIHZhbHVlIGlzIHJldHVybmVkIGFzIGEgdWludDY0X3QgYW5kCisgICAgICogaXMgcmVzZXQgdG8gemVybyBvbmx5IG9uIGEgc3lzdGVtIC8gYW5kcm9pZCByZWJvb3QuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgU1RFUF9DT1VOVEVSICAgICAgICAgICAgICAgICAgICA9IDE5LAorCisgICAgLyoqCisgICAgICogR0VPTUFHTkVUSUNfUk9UQVRJT05fVkVDVE9SCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqICBTaW1pbGFyIHRvIFJPVEFUSU9OX1ZFQ1RPUiwgYnV0IHVzaW5nIGEgbWFnbmV0b21ldGVyIGluc3RlYWQKKyAgICAgKiAgb2YgdXNpbmcgYSBneXJvc2NvcGUuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgR0VPTUFHTkVUSUNfUk9UQVRJT05fVkVDVE9SICAgICA9IDIwLAorCisgICAgLyoqCisgICAgICogSEVBUlRfUkFURQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbi1jaGFuZ2UKKyAgICAgKgorICAgICAqICBBIHNlbnNvciBvZiB0aGlzIHR5cGUgcmV0dXJucyB0aGUgY3VycmVudCBoZWFydCByYXRlLgorICAgICAqICBUaGUgZXZlbnRzIGNvbnRhaW4gdGhlIGN1cnJlbnQgaGVhcnQgcmF0ZSBpbiBiZWF0cyBwZXIgbWludXRlIChCUE0pIGFuZAorICAgICAqICB0aGUgc3RhdHVzIG9mIHRoZSBzZW5zb3IgZHVyaW5nIHRoZSBtZWFzdXJlbWVudC4gU2VlICJIZWFydFJhdGUiIGJlbG93CisgICAgICogIGZvciBtb3JlIGRldGFpbHMuCisgICAgICoKKyAgICAgKiAgQmVjYXVzZSB0aGlzIHNlbnNvciBpcyBvbi1jaGFuZ2UsIGV2ZW50cyBtdXN0IGJlIGdlbmVyYXRlZCB3aGVuIGFuZCBvbmx5CisgICAgICogIHdoZW4gaGVhcnRfcmF0ZS5icG0gb3IgaGVhcnRfcmF0ZS5zdGF0dXMgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0CisgICAgICogIGV2ZW50LiBJbiBwYXJ0aWN1bGFyLCB1cG9uIHRoZSBmaXJzdCBhY3RpdmF0aW9uLCB1bmxlc3MgdGhlIGRldmljZSBpcworICAgICAqICBrbm93biB0byBub3QgYmUgb24gdGhlIGJvZHksIHRoZSBzdGF0dXMgZmllbGQgb2YgdGhlIGZpcnN0IGV2ZW50IG11c3QgYmUKKyAgICAgKiAgc2V0IHRvIFNlbnNvclN0YXR1czo6VU5SRUxJQUJMRS4gVGhlIGV2ZW50IHNob3VsZCBiZSBnZW5lcmF0ZWQgbm8gZmFzdGVyCisgICAgICogIHRoYW4gZXZlcnkgcGVyaW9kX25zIHBhc3NlZCB0byBzZXREZWxheSgpIG9yIHRvIGJhdGNoKCkuCisgICAgICogIFNlZSB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgb24tY2hhbmdlIHJlcG9ydGluZyBtb2RlIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogIFNlbnNvckluZm8ucmVxdWlyZWRQZXJtaXNzaW9uIG11c3QgYmUgc2V0IHRvCisgICAgICogIFNFTlNPUl9QRVJNSVNTSU9OX0JPRFlfU0VOU09SUy4KKyAgICAgKgorICAgICAqICBCb3RoIHdha2UtdXAgYW5kIG5vbiB3YWtlLXVwIHZlcnNpb25zIGFyZSB1c2VmdWwuCisgICAgICovCisgICAgSEVBUlRfUkFURSAgICAgICAgICAgICAgICAgICAgICA9IDIxLAorCisgICAgLyoqCisgICAgICogV0FLRV9VUF9USUxUX0RFVEVDVE9SCisgICAgICogcmVwb3J0aW5nLW1vZGU6IHNwZWNpYWwgKHNldERlbGF5IGhhcyBubyBpbXBhY3QpCisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgZ2VuZXJhdGVzIGFuIGV2ZW50IGVhY2ggdGltZSBhIHRpbHQgZXZlbnQgaXMKKyAgICAgKiBkZXRlY3RlZC4gQSB0aWx0IGV2ZW50IG11c3QgYmUgZ2VuZXJhdGVkIGlmIHRoZSBkaXJlY3Rpb24gb2YgdGhlCisgICAgICogMi1zZWNvbmRzIHdpbmRvdyBhdmVyYWdlIGdyYXZpdHkgY2hhbmdlZCBieSBhdCBsZWFzdCAzNSBkZWdyZWVzIHNpbmNlIHRoZQorICAgICAqIGFjdGl2YXRpb24gb3IgdGhlIGxhc3QgdHJpZ2dlciBvZiB0aGUgc2Vuc29yLgorICAgICAqCisgICAgICogIHJlZmVyZW5jZV9lc3RpbWF0ZWRfZ3Jhdml0eSA9IGF2ZXJhZ2Ugb2YgYWNjZWxlcm9tZXRlciBtZWFzdXJlbWVudHMgb3ZlcgorICAgICAqICB0aGUgZmlyc3QgMSBzZWNvbmQgYWZ0ZXIgYWN0aXZhdGlvbiBvciB0aGUgZXN0aW1hdGVkIGdyYXZpdHkgYXQgdGhlIGxhc3QKKyAgICAgKiAgdHJpZ2dlci4KKyAgICAgKgorICAgICAqICBjdXJyZW50X2VzdGltYXRlZF9ncmF2aXR5ID0gYXZlcmFnZSBvZiBhY2NlbGVyb21ldGVyIG1lYXN1cmVtZW50cyBvdmVyCisgICAgICogIHRoZSBsYXN0IDIgc2Vjb25kcy4KKyAgICAgKgorICAgICAqICB0cmlnZ2VyIHdoZW4KKyAgICAgKiAgICAgYW5nbGUocmVmZXJlbmNlX2VzdGltYXRlZF9ncmF2aXR5LCBjdXJyZW50X2VzdGltYXRlZF9ncmF2aXR5KQorICAgICAqICAgICAgID4gMzUgZGVncmVlcworICAgICAqCisgICAgICogTGFyZ2UgYWNjZWxlcmF0aW9ucyB3aXRob3V0IGEgY2hhbmdlIGluIHBob25lIG9yaWVudGF0aW9uIG11c3Qgbm90CisgICAgICogdHJpZ2dlciBhIHRpbHQgZXZlbnQuCisgICAgICogRm9yIGV4YW1wbGUsIGEgc2hhcnAgdHVybiBvciBzdHJvbmcgYWNjZWxlcmF0aW9uIHdoaWxlIGRyaXZpbmcgYSBjYXIKKyAgICAgKiBtdXN0IG5vdCB0cmlnZ2VyIGEgdGlsdCBldmVudCwgZXZlbiB0aG91Z2ggdGhlIGFuZ2xlIG9mIHRoZSBhdmVyYWdlCisgICAgICogYWNjZWxlcmF0aW9uIG1pZ2h0IHZhcnkgYnkgbW9yZSB0aGFuIDM1IGRlZ3JlZXMuCisgICAgICoKKyAgICAgKiBUeXBpY2FsbHksIHRoaXMgc2Vuc29yIGlzIGltcGxlbWVudGVkIHdpdGggdGhlIGhlbHAgb2Ygb25seSBhbgorICAgICAqIGFjY2VsZXJvbWV0ZXIuIE90aGVyIHNlbnNvcnMgY2FuIGJlIHVzZWQgYXMgd2VsbCBpZiB0aGV5IGRvIG5vdCBpbmNyZWFzZQorICAgICAqIHRoZSBwb3dlciBjb25zdW1wdGlvbiBzaWduaWZpY2FudGx5LiBUaGlzIGlzIGEgbG93IHBvd2VyIHNlbnNvciB0aGF0CisgICAgICogbXVzdCBhbGxvdyB0aGUgQVAgdG8gZ28gaW50byBzdXNwZW5kIG1vZGUuIERvIG5vdCBlbXVsYXRlIHRoaXMgc2Vuc29yCisgICAgICogaW4gdGhlIEhBTC4KKyAgICAgKiBMaWtlIG90aGVyIHdha2UgdXAgc2Vuc29ycywgdGhlIGRyaXZlciBpcyBleHBlY3RlZCB0byBhIGhvbGQgYSB3YWtlX2xvY2sKKyAgICAgKiB3aXRoIGEgdGltZW91dCBvZiAyMDAgbXMgd2hpbGUgcmVwb3J0aW5nIHRoaXMgZXZlbnQuIFRoZSBvbmx5IGFsbG93ZWQKKyAgICAgKiByZXR1cm4gdmFsdWUgaXMgMS4wLgorICAgICAqCisgICAgICogSW1wbGVtZW50IG9ubHkgdGhlIHdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvci4KKyAgICAgKi8KKyAgICBUSUxUX0RFVEVDVE9SICAgICAgICAgICAgICAgICAgID0gMjIsCisKKyAgICAvKioKKyAgICAgKiBXQUtFX0dFU1RVUkUKKyAgICAgKiByZXBvcnRpbmctbW9kZTogb25lLXNob3QKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIGVuYWJsaW5nIHdha2luZyB1cCB0aGUgZGV2aWNlIGJhc2VkIG9uIGEgZGV2aWNlIHNwZWNpZmljIG1vdGlvbi4KKyAgICAgKgorICAgICAqIFdoZW4gdGhpcyBzZW5zb3IgdHJpZ2dlcnMsIHRoZSBkZXZpY2UgYmVoYXZlcyBhcyBpZiB0aGUgcG93ZXIgYnV0dG9uIHdhcworICAgICAqIHByZXNzZWQsIHR1cm5pbmcgdGhlIHNjcmVlbiBvbi4gVGhpcyBiZWhhdmlvciAodHVybmluZyBvbiB0aGUgc2NyZWVuIHdoZW4KKyAgICAgKiB0aGlzIHNlbnNvciB0cmlnZ2VycykgbWlnaHQgYmUgZGVhY3RpdmF0ZWQgYnkgdGhlIHVzZXIgaW4gdGhlIGRldmljZQorICAgICAqIHNldHRpbmdzLiBDaGFuZ2VzIGluIHNldHRpbmdzIGRvIG5vdCBpbXBhY3QgdGhlIGJlaGF2aW9yIG9mIHRoZSBzZW5zb3I6CisgICAgICogb25seSB3aGV0aGVyIHRoZSBmcmFtZXdvcmsgdHVybnMgdGhlIHNjcmVlbiBvbiB3aGVuIGl0IHRyaWdnZXJzLgorICAgICAqCisgICAgICogVGhlIGFjdHVhbCBnZXN0dXJlIHRvIGJlIGRldGVjdGVkIGlzIG5vdCBzcGVjaWZpZWQsIGFuZCBjYW4gYmUgY2hvc2VuIGJ5CisgICAgICogdGhlIG1hbnVmYWN0dXJlciBvZiB0aGUgZGV2aWNlLgorICAgICAqIFRoaXMgc2Vuc29yIG11c3QgYmUgbG93IHBvd2VyLCBhcyBpdCBpcyBsaWtlbHkgdG8gYmUgYWN0aXZhdGVkIDI0LzcuCisgICAgICogVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSB0byByZXR1cm4gaXMgMS4wLgorICAgICAqCisgICAgICogSW1wbGVtZW50IG9ubHkgdGhlIHdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvci4KKyAgICAgKi8KKyAgICBXQUtFX0dFU1RVUkUgICAgICAgICAgICAgICAgICAgID0gMjMsCisKKyAgICAvKioKKyAgICAgKiBHTEFOQ0VfR0VTVFVSRQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbmUtc2hvdAorICAgICAqCisgICAgICogQSBzZW5zb3IgZW5hYmxpbmcgYnJpZWZseSB0dXJuaW5nIHRoZSBzY3JlZW4gb24gdG8gZW5hYmxlIHRoZSB1c2VyIHRvCisgICAgICogZ2xhbmNlIGNvbnRlbnQgb24gc2NyZWVuIGJhc2VkIG9uIGEgc3BlY2lmaWMgbW90aW9uLiAgVGhlIGRldmljZSBtdXN0CisgICAgICogdHVybiB0aGUgc2NyZWVuIG9mZiBhZnRlciBhIGZldyBtb21lbnRzLgorICAgICAqCisgICAgICogV2hlbiB0aGlzIHNlbnNvciB0cmlnZ2VycywgdGhlIGRldmljZSB0dXJucyB0aGUgc2NyZWVuIG9uIG1vbWVudGFyaWx5CisgICAgICogdG8gYWxsb3cgdGhlIHVzZXIgdG8gZ2xhbmNlIG5vdGlmaWNhdGlvbnMgb3Igb3RoZXIgY29udGVudCB3aGlsZSB0aGUKKyAgICAgKiBkZXZpY2UgcmVtYWlucyBsb2NrZWQgaW4gYSBub24taW50ZXJhY3RpdmUgc3RhdGUgKGRvemluZykuIFRoaXMgYmVoYXZpb3IKKyAgICAgKiAoYnJpZWZseSB0dXJuaW5nIG9uIHRoZSBzY3JlZW4gd2hlbiB0aGlzIHNlbnNvciB0cmlnZ2VycykgbWlnaHQgYmUKKyAgICAgKiBkZWFjdGl2YXRlZCBieSB0aGUgdXNlciBpbiB0aGUgZGV2aWNlIHNldHRpbmdzLgorICAgICAqIENoYW5nZXMgaW4gc2V0dGluZ3MgZG8gbm90IGltcGFjdCB0aGUgYmVoYXZpb3Igb2YgdGhlIHNlbnNvcjogb25seQorICAgICAqIHdoZXRoZXIgdGhlIGZyYW1ld29yayBicmllZmx5IHR1cm5zIHRoZSBzY3JlZW4gb24gd2hlbiBpdCB0cmlnZ2Vycy4KKyAgICAgKgorICAgICAqIFRoZSBhY3R1YWwgZ2VzdHVyZSB0byBiZSBkZXRlY3RlZCBpcyBub3Qgc3BlY2lmaWVkLCBhbmQgY2FuIGJlIGNob3NlbiBieQorICAgICAqIHRoZSBtYW51ZmFjdHVyZXIgb2YgdGhlIGRldmljZS4KKyAgICAgKiBUaGlzIHNlbnNvciBtdXN0IGJlIGxvdyBwb3dlciwgYXMgaXQgaXMgbGlrZWx5IHRvIGJlIGFjdGl2YXRlZCAyNC83LgorICAgICAqIFRoZSBvbmx5IGFsbG93ZWQgdmFsdWUgdG8gcmV0dXJuIGlzIDEuMC4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCBvbmx5IHRoZSB3YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IuCisgICAgICovCisgICAgR0xBTkNFX0dFU1RVUkUgICAgICAgICAgICAgICAgICA9IDI0LAorCisgICAgLyoqCisgICAgICogUElDS19VUF9HRVNUVVJFCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uZS1zaG90CisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgdHJpZ2dlcnMgd2hlbiB0aGUgZGV2aWNlIGlzIHBpY2tlZCB1cCByZWdhcmRsZXNzIG9mCisgICAgICogd2hlcmV2ZXIgaXMgd2FzIGJlZm9yZSAoZGVzaywgcG9ja2V0LCBiYWcpLiBUaGUgb25seSBhbGxvd2VkIHJldHVybiB2YWx1ZQorICAgICAqIGlzIDEuMC4gVGhpcyBzZW5zb3IgZGUtYWN0aXZhdGVzIGl0c2VsZiBpbW1lZGlhdGVseSBhZnRlciBpdCB0cmlnZ2Vycy4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCBvbmx5IHRoZSB3YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IuCisgICAgICovCisgICAgUElDS19VUF9HRVNUVVJFICAgICAgICAgICAgICAgICA9IDI1LAorCisgICAgLyoqCisgICAgICogV1JJU1RfVElMVF9HRVNUVVJFCisgICAgICogdHJpZ2dlci1tb2RlOiBzcGVjaWFsCisgICAgICogd2FrZS11cCBzZW5zb3I6IHllcworICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHRyaWdnZXJzIGFuIGV2ZW50IGVhY2ggdGltZSBhIHRpbHQgb2YgdGhlCisgICAgICogd3Jpc3Qtd29ybiBkZXZpY2UgaXMgZGV0ZWN0ZWQuCisgICAgICoKKyAgICAgKiBUaGlzIHNlbnNvciBtdXN0IGJlIGxvdyBwb3dlciwgYXMgaXQgaXMgbGlrZWx5IHRvIGJlIGFjdGl2YXRlZCAyNC83LgorICAgICAqIFRoZSBvbmx5IGFsbG93ZWQgdmFsdWUgdG8gcmV0dXJuIGlzIDEuMC4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCBvbmx5IHRoZSB3YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IuCisgICAgICovCisgICAgV1JJU1RfVElMVF9HRVNUVVJFICAgICAgICAgICAgICA9IDI2LAorCisgICAgLyoqCisgICAgICogREVWSUNFX09SSUVOVEFUSU9OCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uLWNoYW5nZQorICAgICAqCisgICAgICogVGhlIGN1cnJlbnQgb3JpZW50YXRpb24gb2YgdGhlIGRldmljZS4gVGhlIHZhbHVlIGlzIHJlcG9ydGVkIGluCisgICAgICogdGhlICJzY2FsYXIiIGVsZW1lbnQgb2YgdGhlIEV2ZW50UGF5bG9hZCBpbiBFdmVudC4gVGhlCisgICAgICogb25seSB2YWx1ZXMgdGhhdCBjYW4gYmUgcmVwb3J0ZWQgYXJlIChwbGVhc2UgcmVmZXIgdG8gQW5kcm9pZCBTZW5zb3IKKyAgICAgKiBDb29yZGluYXRlIFN5c3RlbSB0byB1bmRlcnN0YW5kIHRoZSBYIGFuZCBZIGF4aXMgZGlyZWN0aW9uIHdpdGggcmVzcGVjdAorICAgICAqIHRvIGRlZmF1bHQgb3JpZW50YXRpb24pOgorICAgICAqICAtIDA6IGRldmljZSBpcyBpbiBkZWZhdWx0IG9yaWVudGF0aW9uIChZIGF4aXMgaXMgdmVydGljYWwgYW5kIHBvaW50cyB1cCkKKyAgICAgKiAgLSAxOiBkZXZpY2UgaXMgcm90YXRlZCA5MCBkZWdyZWVzIGNvdW50ZXItY2xvY2t3aXNlIGZyb20gZGVmYXVsdAorICAgICAqICAgICAgIG9yaWVudGF0aW9uIChYIGF4aXMgaXMgdmVydGljYWwgYW5kIHBvaW50cyB1cCkKKyAgICAgKiAgLSAyOiBkZXZpY2UgaXMgcm90YXRlZCAxODAgZGVncmVlcyBmcm9tIGRlZmF1bHQgb3JpZW50YXRpb24gKFkgYXhpcyBpcworICAgICAqICAgICAgIHZlcnRpY2FsIGFuZCBwb2ludHMgZG93bikKKyAgICAgKiAgLSAzOiBkZXZpY2UgaXMgcm90YXRlZCA5MCBkZWdyZWVzIGNsb2Nrd2lzZSBmcm9tIGRlZmF1bHQgb3JpZW50YXRpb24KKyAgICAgKiAgICAgICAoWCBheGlzIGlzIHZlcnRpY2FsIGFuZCBwb2ludHMgZG93bikKKyAgICAgKgorICAgICAqIE1vdmluZyB0aGUgZGV2aWNlIHRvIGFuIG9yaWVudGF0aW9uIHdoZXJlIHRoZSBaIGF4aXMgaXMgdmVydGljYWwgKGVpdGhlcgorICAgICAqIHVwIG9yIGRvd24pIG11c3Qgbm90IGNhdXNlIGEgbmV3IGV2ZW50IHRvIGJlIHJlcG9ydGVkLgorICAgICAqCisgICAgICogVG8gaW1wcm92ZSB0aGUgdXNlciBleHBlcmllbmNlIG9mIHRoaXMgc2Vuc29yLCBpdCBpcyByZWNvbW1lbmRlZCB0bworICAgICAqIGltcGxlbWVudCBzb21lIHBoeXNpY2FsIChpLmUuLCByb3RhdGlvbiBhbmdsZSkgYW5kIHRlbXBvcmFsIChpLmUuLCBkZWxheSkKKyAgICAgKiBoeXN0ZXJlc2lzLiBJbiBvdGhlciB3b3JkcywgbWlub3Igb3IgdHJhbnNpZW50IHJvdGF0aW9ucyBtdXN0IG5vdCBjYXVzZQorICAgICAqIGEgbmV3IGV2ZW50IHRvIGJlIHJlcG9ydGVkLgorICAgICAqCisgICAgICogVGhpcyBpcyBhIGxvdyBwb3dlciBzZW5zb3IgdGhhdCBpbnRlbmRlZCB0byByZWR1Y2UgaW50ZXJydXB0cyBvZgorICAgICAqIGFwcGxpY2F0aW9uIHByb2Nlc3NvciBhbmQgdGh1cyBhbGxvdyBpdCB0byBnbyBzbGVlcC4gVXNlIGhhcmR3YXJlCisgICAgICogaW1wbGVtZW50YXRpb24gYmFzZWQgb24gbG93IHBvd2VyIGNvbnN1bXB0aW9uIHNlbnNvcnMsIHN1Y2ggYXMKKyAgICAgKiBhY2NlbGVyb21ldGVyLiBEZXZpY2UgbXVzdCBub3QgZW11bGF0ZSB0aGlzIHNlbnNvciBpbiB0aGUgSEFMLgorICAgICAqCisgICAgICogQm90aCB3YWtlLXVwIGFuZCBub24gd2FrZS11cCB2ZXJzaW9ucyBhcmUgdXNlZnVsLgorICAgICAqLworICAgIERFVklDRV9PUklFTlRBVElPTiAgICAgICAgICAgICAgPSAyNywKKworICAgIC8qKgorICAgICAqIFBPU0VfNkRPRgorICAgICAqIHRyaWdnZXItbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHJldHVybnMgdGhlIHBvc2Ugb2YgdGhlIGRldmljZS4KKyAgICAgKiBQb3NlIG9mIHRoZSBkZXZpY2UgaXMgZGVmaW5lZCBhcyB0aGUgb3JpZW50YXRpb24gb2YgdGhlIGRldmljZSBmcm9tIGEKKyAgICAgKiBFYXJ0aCBDZW50ZXJlZCBFYXJ0aCBGaXhlZCBmcmFtZSBhbmQgdGhlIHRyYW5zbGF0aW9uIGZyb20gYW4gYXJiaXRyYXJ5CisgICAgICogcG9pbnQgYXQgc3Vic2NyaXB0aW9uLgorICAgICAqCisgICAgICogVGhpcyBzZW5zb3IgY2FuIGJlIGhpZ2ggcG93ZXIuIEl0IGNhbiB1c2UgYW55IGFuZCBhbGwgb2YgdGhlIGZvbGxvd2luZworICAgICAqICAgICAgICAgICAuIEFjY2VsZXJvbWV0ZXIKKyAgICAgKiAgICAgICAgICAgLiBHeXJvc2NvcGUKKyAgICAgKiAgICAgICAgICAgLiBDYW1lcmEKKyAgICAgKiAgICAgICAgICAgLiBEZXB0aCBDYW1lcmEKKyAgICAgKgorICAgICAqLworICAgIFBPU0VfNkRPRiAgICAgICAgICAgICAgICAgICAgICAgPSAyOCwKKworICAgIC8qKgorICAgICAqIFNUQVRJT05BUllfREVURUNUCisgICAgICogdHJpZ2dlciBtb2RlOiBvbmUgc2hvdAorICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHJldHVybnMgYW4gZXZlbnQgaWYgdGhlIGRldmljZSBpcyBzdGlsbC9zdGF0aW9uYXJ5CisgICAgICogZm9yIGEgd2hpbGUuIFRoZSBwZXJpb2Qgb2YgdGltZSB0byBtb25pdG9yIGZvciBzdGF0aW9uYXJpdHkgbXVzdCBiZQorICAgICAqIGdyZWF0ZXIgdGhhbiA1IHNlY29uZHMuIFRoZSBsYXRlbmN5IG11c3QgYmUgbGVzcyB0aGFuIDEwIHNlY29uZHMuCisgICAgICoKKyAgICAgKiBTdGF0aW9uYXJpdHkgaGVyZSByZWZlcnMgdG8gYWJzb2x1dGUgc3RhdGlvbmFyaXR5LiBlZzogZGV2aWNlIG9uIGRlc2suCisgICAgICoKKyAgICAgKiBUaGUgb25seSBhbGxvd2VkIHZhbHVlIHRvIHJldHVybiBpcyAxLjAuCisgICAgICovCisgICAgU1RBVElPTkFSWV9ERVRFQ1QgICAgICAgICAgICAgICA9IDI5LAorCisgICAgLyoqCisgICAgICogTU9USU9OX0RFVEVDVAorICAgICAqIHRyaWdnZXIgbW9kZTogb25lIHNob3QKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSByZXR1cm5zIGFuIGV2ZW50IGlmIHRoZSBkZXZpY2UgaXMgbm90IHN0aWxsIGZvcgorICAgICAqIGZvciBhIHdoaWxlLiBUaGUgcGVyaW9kIG9mIHRpbWUgdG8gbW9uaXRvciBmb3Igc3RhdGlvbmFyaXR5IG11c3QgYmUKKyAgICAgKiBncmVhdGVyIHRoYW4gNSBzZWNvbmRzLiBUaGUgbGF0ZW5jeSBtdXN0IGJlIGxlc3MgdGhhbiAxMCBzZWNvbmRzLgorICAgICAqCisgICAgICogTW90aW9uIGhlcmUgcmVmZXJzIHRvIGFueSBtZWNoYW5pc20gaW4gd2hpY2ggdGhlIGRldmljZSBpcyBjYXVzZXMgdG8gYmUKKyAgICAgKiBtb3ZlZCBpbiBpdHMgaW5lcnRpYWwgZnJhbWUuIGVnOiBQaWNraW4gdXAgdGhlIGRldmljZSBhbmQgd2Fsa2luZyB3aXRoIGl0CisgICAgICogdG8gYSBuZWFyYnkgcm9vbSBtYXkgdHJpZ2dlciBtb3Rpb24gd2hlcmV3YXMga2VlcGluZyB0aGUgZGV2aWNlIG9uIGEKKyAgICAgKiB0YWJsZSBvbiBhIHNtb290aCB0cmFpbiBtb3ZpbmcgYXQgY29uc3RhbnQgdmVsb2NpdHkgbWF5IG5vdCB0cmlnZ2VyCisgICAgICogbW90aW9uLgorICAgICAqCisgICAgICogVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSB0byByZXR1cm4gaXMgMS4wLgorICAgICAqLworICAgIE1PVElPTl9ERVRFQ1QgICAgICAgICAgICAgICAgICAgPSAzMCwKKworICAgIC8qKgorICAgICAqIEhFQVJUX0JFQVQKKyAgICAgKiB0cmlnZ2VyIG1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSByZXR1cm5zIGFuIGV2ZW50IGV2ZXJ5dGltZSBhIGhlYXIgYmVhdCBwZWFrIGlzCisgICAgICogZGV0ZWN0ZWQuCisgICAgICoKKyAgICAgKiBQZWFrIGhlcmUgaWRlYWxseSBjb3JyZXNwb25kcyB0byB0aGUgcG9zaXRpdmUgcGVhayBpbiB0aGUgUVJTIGNvbXBsZXggb2YKKyAgICAgKiBhbmQgRUNHIHNpZ25hbC4KKyAgICAgKgorICAgICAqIFRoZSBzZW5zb3IgaXMgbm90IGV4cGVjdGVkIHRvIGJlIG9wdGltaXplZCBmb3IgbGF0ZW5jeS4gQXMgYSBndWlkZSwgYQorICAgICAqIGxhdGVuY3kgb2YgdXAgdG8gMTAgc2Vjb25kcyBpcyBhY2NlcHRhYmxlLiBIb3dldmVyLCB0aGUgdGltZXN0YW1wIGF0dGFjaGVkCisgICAgICogdG8gdGhlIGV2ZW50IG11c3QgYmUgYWNjdXJhdGx5IGNvcnJlc3BvbmQgdG8gdGhlIHRpbWUgdGhlIHBlYWsgb2NjdXJlZC4KKyAgICAgKgorICAgICAqIFRoZSBzZW5zb3IgZXZlbnQgY29udGFpbnMgYSBwYXJhbWV0ZXIgZm9yIHRoZSBjb25maWRlbmNlIGluIHRoZSBkZXRlY3Rpb24KKyAgICAgKiBvZiB0aGUgcGVhayB3aGVyZSAwLjAgcmVwcmVzZW50IG5vIGluZm9ybWF0aW9uIGF0IGFsbCwgYW5kIDEuMCByZXByZXNlbnRzCisgICAgICogY2VydGFpbnR5LgorICAgICAqLworICAgIEhFQVJUX0JFQVQgICAgICAgICAgICAgICAgICAgICAgPSAzMSwKKworICAgIC8qKgorICAgICAqIERZTkFNSUNfU0VOU09SX01FVEEKKyAgICAgKiB0cmlnZ2VyLW1vZGU6IHNwZWNpYWwKKyAgICAgKiB3YWtlLXVwIHNlbnNvcjogeWVzCisgICAgICoKKyAgICAgKiBBIHNlbnNvciBldmVudCBvZiB0aGlzIHR5cGUgaXMgcmVjZWl2ZWQgd2hlbiBhIGR5bmFtaWMgc2Vuc29yIGlzIGFkZGVkIHRvCisgICAgICogb3IgcmVtb3ZlZCBmcm9tIHRoZSBzeXN0ZW0uIEF0IG1vc3Qgb25lIHNlbnNvciBvZiB0aGlzIHR5cGUgY2FuIGJlCisgICAgICogcHJlc2VudCBpbiBvbmUgc2Vuc29yIEhBTCBpbXBsZW1lbnRhdGlvbiBhbmQgcHJlc2VuY2Ugb2YgYSBzZW5zb3Igb2YgdGhpcworICAgICAqIHR5cGUgaW4gc2Vuc29yIEhBTCBpbXBsZW1lbnRhdGlvbiBpbmRpY2F0ZXMgdGhhdCB0aGlzIHNlbnNvciBIQUwgc3VwcG9ydHMKKyAgICAgKiBkeW5hbWljIHNlbnNvciBmZWF0dXJlLiBPcGVyYXRpb25zLCBzdWNoIGFzIGJhdGNoLCBhY3RpdmF0ZSBhbmQgc2V0RGVsYXksCisgICAgICogdG8gdGhpcyBzcGVjaWFsIHB1cnBvc2Ugc2Vuc29yIG11c3QgYmUgdHJlYXRlZCBhcyBuby1vcCBhbmQgcmV0dXJuCisgICAgICogc3VjY2Vzc2Z1bDsgZmx1c2goKSBhbHNvIGhhcyB0byBnZW5lcmF0ZSBmbHVzaCBjb21wbGV0ZSBldmVudCBhcyBpZiB0aGlzCisgICAgICogaXMgYSBzZW5zb3IgdGhhdCBkb2VzIG5vdCBzdXBwb3J0IGJhdGNoaW5nLgorICAgICAqCisgICAgICogQSBkeW5hbWljIHNlbnNvciBjb25uZWN0aW9uIGluZGljYXRlcyBjb25uZWN0aW9uIG9mIGEgcGh5c2ljYWwgZGV2aWNlIG9yCisgICAgICogaW5zdGFudGlhdGlvbiBvZiBhIHZpcnR1YWwgc2Vuc29yIGJhY2tlZCBieSBhbGdvcml0aG07IGFuZCBhIGR5bmFtaWMKKyAgICAgKiBzZW5zb3IgZGlzY29ubmVjdGlvbiBpbmRpY2F0ZXMgdGhlIHRoZSBvcHBvc2l0ZS4gQSBzZW5zb3IgZXZlbnQgb2YKKyAgICAgKiBEWU5BTUlDX1NFTlNPUl9NRVRBIHR5cGUgc2hvdWxkIGJlIGRlbGl2ZXJlZCByZWdhcmRsZXNzIG9mCisgICAgICogdGhlIGFjdGl2YXRpb24gc3RhdHVzIG9mIHRoZSBzZW5zb3IgaW4gdGhlIGV2ZW50IG9mIGR5bmFtaWMgc2Vuc29yCisgICAgICogY29ubmVjdGlvbiBhbmQgZGlzY29ubmVjdGlvbi4gSW4gdGhlIHNlbnNvciBldmVudCwgYmVzaWRlcyB0aGUgY29tbW9uCisgICAgICogZGF0YSBlbnRyaWVzLCAiZHluYW1pY19zZW5zb3JfbWV0YSIsIHdoaWNoIGluY2x1ZGVzIGZpZWxkcyBmb3IgY29ubmVjdGlvbgorICAgICAqIHN0YXR1cywgaGFuZGxlIG9mIHRoZSBzZW5zb3IgaW52b2x2ZWQsIHBvaW50ZXIgdG8gc2Vuc29yX3Qgc3RydWN0dXJlIGFuZAorICAgICAqIGEgdXVpZCBmaWVsZCwgbXVzdCBiZSBwb3B1bGF0ZWQuCisgICAgICoKKyAgICAgKiBBdCBhIGR5bmFtaWMgc2Vuc29yIGNvbm5lY3Rpb24gZXZlbnQsIGZpZWxkcyBvZiBzZW5zb3JfdCBzdHJ1Y3R1cmUKKyAgICAgKiByZWZlcmVuY2VkIGJ5IGEgcG9pbnRlciBpbiBkeW5hbWljX3NlbnNvcl9tZXRhIG11c3QgYmUgZmlsbGVkIGFzIGlmIGl0CisgICAgICogd2FzIHJlZ3VsYXIgc2Vuc29ycy4gU2Vuc29yIEhBTCBpcyByZXNwb25zaWJsZSBmb3IgcmVjb3Zlcnkgb2YgbWVtb3J5IGlmCisgICAgICogdGhlIGNvcnJlc3BvbmRpbmcgZGF0YSBpcyBkeW5hbWljaWFsbHkgYWxsb2NhdGVkLiBIb3dldmVyLCB0aGUgdGhlCisgICAgICogcG9pbnRlciBtdXN0IGJlIHZhbGlkIHVudGlsIHRoZSBmaXJzdCBhY3RpdmF0ZSBjYWxsIHRvIHRoZSBzZW5zb3IKKyAgICAgKiByZXBvcnRlZCBpbiB0aGlzIGNvbm5lY3Rpb24gZXZlbnQuIEF0IGEgZHluYW1pYyBzZW5zb3IgZGlzY29ubmVjdGlvbiwKKyAgICAgKiB0aGUgc2Vuc29yX3QgcG9pbnRlciBtdXN0IGJlIE5VTEwuCisgICAgICoKKyAgICAgKiBUaGUgc2Vuc29yIGhhbmRsZSBhc3NpZ25lZCB0byBkeW5hbWljIHNlbnNvcnMgbXVzdCBuZXZlciBiZSB0aGUgc2FtZSBhcworICAgICAqIHRoYXQgb2YgYW55IHJlZ3VsYXIgc3RhdGljIHNlbnNvcnMsIGFuZCBtdXN0IGJlIHVuaXF1ZSB1bnRpbCBuZXh0IGJvb3QuCisgICAgICogSW4gYW5vdGhlciB3b3JkLCBpZiBhIGhhbmRsZSBoIGlzIHVzZWQgZm9yIGEgZHluYW1pYyBzZW5zb3IgQSwgdGhhdCBzYW1lCisgICAgICogbnVtYmVyIGNhbm5vdCBiZSB1c2VkIGZvciB0aGUgc2FtZSBkeW5hbWljIHNlbnNvciBBIG9yIGFub3RoZXIgZHluYW1pYworICAgICAqIHNlbnNvciBCIGV2ZW4gYWZ0ZXIgZGlzY29ubmVjdGlvbiBvZiBBIHVudGlsIHJlYm9vdC4KKyAgICAgKgorICAgICAqIFRoZSBVVUlEIGZpZWxkIHdpbGwgYmUgdXNlZCBmb3IgaWRlbnRpZnlpbmcgdGhlIHNlbnNvciBpbiBhZGRpdGlvbiB0bworICAgICAqIG5hbWUsIHZlbmRvciBhbmQgdmVyc2lvbiBhbmQgdHlwZS4gRm9yIHBoeXNpY2FsIHNlbnNvcnMgb2YgdGhlIHNhbWUKKyAgICAgKiBtb2RlbCwgYWxsIHNlbnNvcnMgd2lsbCBoYXZlIHRoZSBzYW1lIHZhbHVlcyBpbiBzZW5zb3JfdCwgYnV0IHRoZSBVVUlECisgICAgICogbXVzdCBiZSB1bmlxdWUgYW5kIHBlcnNpc3RlbnQgZm9yIGVhY2ggaW5kaXZpZHVhbCB1bml0LiBBbiBhbGwgemVybworICAgICAqIFVVSUQgaW5kaWNhdGVzIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBkaWZmZXJlbnRpYXRlIGluZGl2aWR1YWwgc2Vuc29yCisgICAgICogdW5pdC4KKyAgICAgKgorICAgICAqLworICAgIERZTkFNSUNfU0VOU09SX01FVEEgICAgICAgICAgICAgPSAzMiwKKworICAgIC8qKgorICAgICAqIEFERElUSU9OQUxfSU5GTworICAgICAqIHJlcG9ydGluZy1tb2RlOiBOL0EKKyAgICAgKgorICAgICAqIFRoaXMgc2Vuc29yIHR5cGUgaXMgZm9yIGRlbGl2ZXJpbmcgYWRkaXRpb25hbCBzZW5zb3IgaW5mb3JtYXRpb24gYXNpZGUKKyAgICAgKiBmcm9tIHNlbnNvciBldmVudCBkYXRhLgorICAgICAqIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gbWF5IGluY2x1ZGUgc2Vuc29yIGZyb250LWVuZCBncm91cCBkZWxheSwgaW50ZXJuYWwKKyAgICAgKiBjYWxpYnJhdGlvbiBwYXJhbWV0ZXJzLCBub2lzZSBsZXZlbCBtZXRyaWNzLCBkZXZpY2UgaW50ZXJuYWwgdGVtcGVyYXR1cmUsCisgICAgICogZXRjLgorICAgICAqCisgICAgICogVGhpcyB0eXBlIHdpbGwgbmV2ZXIgYmluZCB0byBhIHNlbnNvci4gSW4gb3RoZXIgd29yZHMsIG5vIHNlbnNvciBpbiB0aGUKKyAgICAgKiBzZW5zb3IgbGlzdCBjYW4gaGF2ZSB0aGUgdHlwZSBTRU5TT1JfVFlQRV9BRERJVElPTkFMX0lORk8uIElmIGEKKyAgICAgKiBzZW5zb3IgSEFMIHN1cHBvcnRzIHNlbnNvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZlYXR1cmUsIGl0IHJlcG9ydHMKKyAgICAgKiBzZW5zb3JfZXZlbnRfdCB3aXRoICJzZW5zb3IiIGZpZWxkIHNldCB0byBoYW5kbGUgb2YgdGhlIHJlcG9ydGluZyBzZW5zb3IKKyAgICAgKiBhbmQgInR5cGUiIGZpZWxkIHNldCB0byBBRERJVElPTkFMX0lORk8uIERlbGl2ZXJ5IG9mCisgICAgICogYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBldmVudHMgaXMgdHJpZ2dlcmVkIHVuZGVyIHR3byBjb25kaXRpb25zOiBhbgorICAgICAqIGVuYWJsZSBhY3RpdmF0ZSgpIGNhbGwgb3IgYSBmbHVzaCgpIGNhbGwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgc2Vuc29yLgorICAgICAqIEJlc2lkZXMsIHRpbWUgdmFyeWluZyBwYXJhbWV0ZXJzIGNhbiB1cGRhdGUgaW5mcmVxdWVudGx5IHdpdGhvdXQgYmVpbmcKKyAgICAgKiB0cmlnZ2VyZWQuIERldmljZSBpcyByZXNwb25zaWJsZSB0byBjb250cm9sIHVwZGF0ZSByYXRlLiBUaGUgcmVjb21tZW5kCisgICAgICogdXBkYXRlIHJhdGUgaXMgbGVzcyB0aGFuIDEvMTAwMCBvZiBzZW5zb3IgZXZlbnQgcmF0ZSBvciBsZXNzIHRoYW4gb25jZQorICAgICAqIHBlciBtaW51dGUgaW4gYXZlcmFnZS4KKyAgICAgKgorICAgICAqIEEgc2luZ2xlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gcmVwb3J0IGNvbnNpc3RzIG9mIG11bHRpcGxlIGZyYW1lcy4KKyAgICAgKiBTZXF1ZW5jZXMgb2YgdGhlc2UgZnJhbWVzIGFyZSBvcmRlcmVkIHVzaW5nIHRpbWVzdGFtcHMsIHdoaWNoIG1lYW5zIHRoZQorICAgICAqIHRpbWVzdGFtcHMgb2Ygc2VxdWVudGlhbCBmcmFtZXMgaGF2ZSB0byBiZSBhdCBsZWFzdCAxIG5hbm9zZWNvbmQgYXBhcnQKKyAgICAgKiBmcm9tIGVhY2ggb3RoZXIuIEVhY2ggZnJhbWUgaXMgYSBzZW5zb3JfZXZlbnRfdCBkZWxpdmVyZWQgdGhyb3VnaCB0aGUgSEFMCisgICAgICogaW50ZXJmYWNlLCB3aXRoIHJlbGF0ZWQgZGF0YSBzdG9yZWQgaW4gdGhlICJhZGRpdGlvbmFsX2luZm8iIGZpZWxkLCB3aGljaAorICAgICAqIGlzIG9mIHR5cGUgYWRkaXRpb25hbF9pbmZvX2V2ZW50X3QuCisgICAgICogVGhlICJ0eXBlIiBmaWVsZCBvZiBhZGRpdGlvbmFsX2luZm9fZXZlbnRfdCBkZW5vdGVzIHRoZSBuYXR1cmUgb2YgdGhlCisgICAgICogcGF5bG9hZCBkYXRhIChzZWUgYWRkaXRpb25hbF9pbmZvX3R5cGVfdCkuCisgICAgICogVGhlICJzZXJpYWwiIGZpZWxkIGlzIHVzZWQgdG8ga2VlcCB0aGUgc2VxdWVuY2Ugb2YgcGF5bG9hZCBkYXRhIHRoYXQKKyAgICAgKiBzcGFucyBtdWx0aXBsZSBmcmFtZXMuIFRoZSBmaXJzdCBmcmFtZSBvZiB0aGUgZW50aXJlIHJlcG9ydCBpcyBhbHdheXMgb2YKKyAgICAgKiB0eXBlIEFJTkZPX0JFR0lOLCBhbmQgdGhlIGxhc3QgZnJhbWUgaXMgYWx3YXlzIEFJTkZPX0VORC4KKyAgICAgKgorICAgICAqIElmIGZsdXNoKCkgd2FzIHRyaWdnZXJpbmcgdGhlIHJlcG9ydCwgYWxsIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZnJhbWVzCisgICAgICogbXVzdCBiZSBkZWxpdmVyZWQgYWZ0ZXIgZmx1c2ggY29tcGxldGUgZXZlbnQuCisgICAgICovCisgICAgQURESVRJT05BTF9JTkZPICAgICAgICAgICAgICAgICA9IDMzLAorCisgICAgLyoqCisgICAgICogTE9XX0xBVEVOQ1lfT0ZGQk9EWV9ERVRFQ1QKKyAgICAgKiB0cmlnZ2VyLW1vZGU6IG9uLWNoYW5nZQorICAgICAqIHdha2UtdXAgc2Vuc29yOiB5ZXMKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSBpcyBkZWZpbmVkIGZvciBkZXZpY2VzIHRoYXQgYXJlIHN1cHBvc2VkIHRvIGJlIHdvcm4KKyAgICAgKiBieSB0aGUgdXNlciBpbiB0aGUgbm9ybWFsIHVzZSBjYXNlIChzdWNoIGFzIGEgd2F0Y2gsIHdyaXN0YmFuZCwgZXRjKSBhbmQKKyAgICAgKiBpcyBub3QgeWV0IGRlZmluZWQgZm9yIG90aGVyIGRldmljZS4KKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSB0cmlnZ2VycyBhbiBldmVudCBlYWNoIHRpbWUgdGhlIHdlYXJhYmxlIGRldmljZQorICAgICAqIGlzIHJlbW92ZWQgZnJvbSB0aGUgYm9keSBhbmQgZWFjaCB0aW1lIGl0J3MgcHV0IGJhY2sgb250byB0aGUgYm9keS4KKyAgICAgKiBJdCBtdXN0IGJlIGxvdy1sYXRlbmN5IGFuZCBiZSBhYmxlIHRvIGRldGVjdCB0aGUgb24tYm9keSB0byBvZmYtYm9keQorICAgICAqIHRyYW5zaXRpb24gd2l0aGluIG9uZSBzZWNvbmQgKGV2ZW50IGRlbGl2ZXJ5IHRpbWUgaW5jbHVkZWQpLAorICAgICAqIGFuZCAzLXNlY29uZCBsYXRlbmN5IHRvIGRldGVybWluZSB0aGUgb2ZmLWJvZHkgdG8gb24tYm9keSB0cmFuc2l0aW9uCisgICAgICogKGV2ZW50IGRlbGl2ZXJ5IHRpbWUgaW5jbHVkZWQpLgorICAgICAqCisgICAgICogVGhlcmUgYXJlIG9ubHkgdHdvIHZhbGlkIGV2ZW50IHZhbHVlcyBmb3IgdGhlIHNlbnNvciB0byByZXR1cm4gOgorICAgICAqICAgIDAuMCBmb3Igb2ZmLWJvZHkKKyAgICAgKiAgICAxLjAgZm9yIG9uLWJvZHkKKyAgICAgKgorICAgICAqLworICAgIExPV19MQVRFTkNZX09GRkJPRFlfREVURUNUICAgICAgPSAzNCwKKworICAgIC8qKgorICAgICAqIEFDQ0VMRVJPTUVURVJfVU5DQUxJQlJBVEVECisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIEFsbCB2YWx1ZXMgYXJlIGluIFNJIHVuaXRzIChtL3NeMikgYW5kIG1lYXN1cmUgdGhlIGFjY2VsZXJhdGlvbiBvZiB0aGUKKyAgICAgKiBkZXZpY2UgbWludXMgdGhlIGFjY2VsZXJhdGlvbiBkdWUgdG8gZ3Jhdml0eS4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBBQ0NFTEVST01FVEVSX1VOQ0FMSUJSQVRFRCAgICAgID0gMzUsCisKKyAgICAvKioKKyAgICAgKiBCYXNlIGZvciBkZXZpY2UgbWFudWZhY3R1cmVycyBwcml2YXRlIHNlbnNvciB0eXBlcy4KKyAgICAgKiBUaGVzZSBzZW5zb3IgdHlwZXMgY2FuJ3QgYmUgZXhwb3NlZCBpbiB0aGUgU0RLLgorICAgICAqLworICAgIERFVklDRV9QUklWQVRFX0JBU0UgICAgICAgICAgICAgPSAweDEwMDAwCit9OworCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iU0VOU09SX0ZMQUdfIikKK2VudW0gU2Vuc29yRmxhZ0JpdHMgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogV2hldGhlciB0aGlzIHNlbnNvciB3YWtlcyB1cCB0aGUgQVAgZnJvbSBzdXNwZW5kIG1vZGUgd2hlbiBkYXRhIGlzCisgICAgICogYXZhaWxhYmxlLiAgV2hlbmV2ZXIgc2Vuc29yIGV2ZW50cyBhcmUgZGVsaXZlcmVkIGZyb20gYSB3YWtlX3VwIHNlbnNvciwKKyAgICAgKiB0aGUgZHJpdmVyIG5lZWRzIHRvIGhvbGQgYSB3YWtlX2xvY2sgdGlsbCB0aGUgZXZlbnRzIGFyZSByZWFkIGJ5IHRoZQorICAgICAqIFNlbnNvclNlcnZpY2UgaS5lIHRpbGwgSVNlbnNvcnM6OnBvbGwoKSBpcyBjYWxsZWQgdGhlIG5leHQgdGltZS4KKyAgICAgKiBPbmNlIHBvbGwgaXMgY2FsbGVkIGFnYWluIGl0IG1lYW5zIGV2ZW50cyBoYXZlIGJlZW4gcmVhZCBieSB0aGUKKyAgICAgKiBTZW5zb3JTZXJ2aWNlLCB0aGUgZHJpdmVyIGNhbiBzYWZlbHkgcmVsZWFzZSB0aGUgd2FrZV9sb2NrLiBTZW5zb3JTZXJ2aWNlCisgICAgICogd2lsbCBjb250aW51ZSB0byBob2xkIGEgd2FrZV9sb2NrIHRpbGwgdGhlIGFwcCBhY3R1YWxseSByZWFkcyB0aGUgZXZlbnRzLgorICAgICAqLworICAgIFdBS0VfVVAgICAgICAgICAgICAgICAgICAgICA9IDEsCisKKyAgICAvKioKKyAgICAgKiBSZXBvcnRpbmcgbW9kZXMgZm9yIHZhcmlvdXMgc2Vuc29ycy4gRWFjaCBzZW5zb3Igd2lsbCBoYXZlIGV4YWN0bHkgb25lIG9mCisgICAgICogdGhlc2UgbW9kZXMgc2V0LgorICAgICAqIFRoZSBsZWFzdCBzaWduaWZpY2FudCAybmQsIDNyZCBhbmQgNHRoIGJpdHMgYXJlIHVzZWQgdG8gcmVwcmVzZW50IGZvdXIKKyAgICAgKiBwb3NzaWJsZSByZXBvcnRpbmcgbW9kZXMuCisgICAgICovCisgICAgQ09OVElOVU9VU19NT0RFICAgICAgICAgICAgID0gMCwKKyAgICBPTl9DSEFOR0VfTU9ERSAgICAgICAgICAgICAgPSAyLAorICAgIE9ORV9TSE9UX01PREUgICAgICAgICAgICAgICA9IDQsCisgICAgU1BFQ0lBTF9SRVBPUlRJTkdfTU9ERSAgICAgID0gNiwKKworICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZsYWcgaWYgdGhlIHNlbnNvciBzdXBwb3J0cyBkYXRhX2luamVjdGlvbiBtb2RlIGFuZCBhbGxvd3MgZGF0YQorICAgICAqIHRvIGJlIGluamVjdGVkIGZyb20gdGhlIFNlbnNvclNlcnZpY2UuIFdoZW4gaW4gZGF0YV9pbmplY3Rpb24gT05MWQorICAgICAqIHNlbnNvcnMgd2l0aCB0aGlzIGZsYWcgc2V0IGFyZSBpbmplY3RlZCBzZW5zb3IgZGF0YSBhbmQgb25seSBzZW5zb3JzIHdpdGgKKyAgICAgKiB0aGlzIGZsYWcgc2V0IGFyZSBhY3RpdmF0ZWQuIEVnOiBBY2NlbGVyb21ldGVyIGFuZCBTdGVwIENvdW50ZXIgc2Vuc29ycworICAgICAqIGNhbiBiZSBzZXQgd2l0aCB0aGlzIGZsYWcgYW5kIFNlbnNvclNlcnZpY2Ugd2lsbCBpbmplY3QgYWNjZWxlcm9tZXRlcgorICAgICAqIGRhdGEgYW5kIHJlYWQgdGhlIGNvcnJlc3BvbmRpbmcgc3RlcCBjb3VudHMuCisgICAgICovCisgICAgREFUQV9JTkpFQ1RJT04gICAgICAgICAgICAgID0gMHgxMCwKKworICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZsYWcgaWYgdGhlIHNlbnNvciBpcyBhIGR5bmFtaWNhbGx5IGNvbm5lY3RlZCBzZW5zb3IuIFNlZQorICAgICAqIER5bmFtaWNTZW5zb3JJbmZvIGFuZCBEWU5BTUlDX1NFTlNPUl9NRVRBIGZvciBkZXRhaWxzLgorICAgICAqLworICAgIERZTkFNSUNfU0VOU09SICAgICAgICAgICAgICA9IDB4MjAsCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBmbGFnIGlmIHNlbnNvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGlzIHN1cHBvcnRlZC4KKyAgICAgKiBTZWUgQURESVRJT05BTF9JTkZPIGFuZCBBZGRpdGlvbmFsSW5mbyBmb3IgZGV0YWlscy4KKyAgICAgKi8KKyAgICBBRERJVElPTkFMX0lORk8gICAgICAgICAgICAgPSAweDQwLAorCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZmxhZyBpZiBzZW5zb3Igc3VwcG9yIGRpcmVjdCBjaGFubmVsIGJhY2tlZCBieSBhc2htZW0uCisgICAgICogU2VlIFNoYXJlZE1lbVR5cGUgYW5kIHJlZ2lzdGVyRGlyZWN0Q2hhbm5lbCBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqLworICAgIERJUkVDVF9DSEFOTkVMX0FTSE1FTSAgICAgICA9IDB4NDAwLAorCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZmxhZyBpZiBzZW5zb3Igc3VwcG9yIGRpcmVjdCBjaGFubmVsIGJhY2tlZCBieSBncmFsbG9jIEhBTCBtZW1vcnkuCisgICAgICogU2VlIFNoYXJlZE1lbVR5cGUgYW5kIHJlZ2lzdGVyRGlyZWN0Q2hhbm5lbCBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqLworICAgIERJUkVDVF9DSEFOTkVMX0dSQUxMT0MgICAgICA9IDB4ODAwLAorCisgICAgLyoqCisgICAgICogRmxhZ3MgbWFzayBmb3IgcmVwb3J0aW5nIG1vZGUgb2Ygc2Vuc29yLgorICAgICAqLworICAgIE1BU0tfUkVQT1JUSU5HX01PREUgICAgICAgICA9IDB4RSwKKworICAgIC8qKgorICAgICAqIEZsYWdzIG1hc2sgZm9yIGRpcmVjdCByZXBvcnQgbWF4aW11bSByYXRlIGxldmVsIHN1cHBvcnQuCisgICAgICogU2VlIFJhdGVMZXZlbC4KKyAgICAgKi8KKyAgICBNQVNLX0RJUkVDVF9SRVBPUlQgICAgICAgICAgPSAweDM4MCwKKworICAgIC8qKgorICAgICAqIEZsYWdzIG1hc2sgZm9yIGFsbCBkaXJlY3QgY2hhbm5lbCBzdXBwb3J0IGJpdHMuCisgICAgICogU2VlIFNoYXJlZE1lbVR5cGUuCisgICAgICovCisgICAgTUFTS19ESVJFQ1RfQ0hBTk5FTCAgICAgICAgID0gMHhDMDAsCit9OworCitAZXhwb3J0KG5hbWU9InNlbnNvcl9mbGFnX3NoaWZ0X3QiLCB2YWx1ZV9wcmVmaXg9IlNFTlNPUl9GTEFHX1NISUZUXyIpCitlbnVtIFNlbnNvckZsYWdTaGlmdCA6IHVpbnQ4X3QgeworICAgIFJFUE9SVElOR19NT0RFICAgICAgICAgICAgICA9IDEsCisgICAgREFUQV9JTkpFQ1RJT04gICAgICAgICAgICAgID0gNCwKKyAgICBEWU5BTUlDX1NFTlNPUiAgICAgICAgICAgICAgPSA1LAorICAgIEFERElUSU9OQUxfSU5GTyAgICAgICAgICAgICA9IDYsCisgICAgRElSRUNUX1JFUE9SVCAgICAgICAgICAgICAgID0gNywKKyAgICBESVJFQ1RfQ0hBTk5FTCAgICAgICAgICAgICAgPSAxMCwKK307CisKK3N0cnVjdCBTZW5zb3JJbmZvIHsKKyAgICAvKioKKyAgICAgKiBoYW5kbGUgdGhhdCBpZGVudGlmaWVzIHRoaXMgc2Vuc29ycy4gVGhpcyBoYW5kbGUgaXMgdXNlZCB0byByZWZlcmVuY2UKKyAgICAgKiB0aGlzIHNlbnNvciB0aHJvdWdob3V0IHRoZSBIQUwgQVBJLgorICAgICAqLworICAgIGludDMyX3Qgc2Vuc29ySGFuZGxlOworCisgICAgLyoqCisgICAgICogTmFtZSBvZiB0aGlzIHNlbnNvci4KKyAgICAgKiBBbGwgc2Vuc29ycyBvZiB0aGUgc2FtZSAidHlwZSIgbXVzdCBoYXZlIGEgZGlmZmVyZW50ICJuYW1lIi4KKyAgICAgKi8KKyAgICBzdHJpbmcgbmFtZTsKKworICAgIC8qKiB2ZW5kb3Igb2YgdGhlIGhhcmR3YXJlIHBhcnQgKi8KKyAgICBzdHJpbmcgdmVuZG9yOworCisgICAgLyoqCisgICAgICogdmVyc2lvbiBvZiB0aGUgaGFyZHdhcmUgcGFydCArIGRyaXZlci4gVGhlIHZhbHVlIG9mIHRoaXMgZmllbGQKKyAgICAgKiBtdXN0IGluY3JlYXNlIHdoZW4gdGhlIGRyaXZlciBpcyB1cGRhdGVkIGluIGEgd2F5IHRoYXQgY2hhbmdlcyB0aGUKKyAgICAgKiBvdXRwdXQgb2YgdGhpcyBzZW5zb3IuIFRoaXMgaXMgaW1wb3J0YW50IGZvciBmdXNlZCBzZW5zb3JzIHdoZW4gdGhlCisgICAgICogZnVzaW9uIGFsZ29yaXRobSBpcyB1cGRhdGVkLgorICAgICAqLworICAgIGludDMyX3QgdmVyc2lvbjsKKworICAgIC8qKiB0aGlzIHNlbnNvcidzIHR5cGUuICovCisgICAgU2Vuc29yVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogdHlwZSBvZiB0aGlzIHNlbnNvciBhcyBhIHN0cmluZy4KKyAgICAgKgorICAgICAqIFdoZW4gZGVmaW5pbmcgYW4gT0VNIHNwZWNpZmljIHNlbnNvciBvciBzZW5zb3IgbWFudWZhY3R1cmVyIHNwZWNpZmljCisgICAgICogc2Vuc29yLCB1c2UgeW91ciByZXNlcnZlIGRvbWFpbiBuYW1lIGFzIGEgcHJlZml4LgorICAgICAqIGUuZy4gY29tLmdvb2dsZS5nbGFzcy5vbmhlYWRkZXRlY3RvcgorICAgICAqCisgICAgICogRm9yIHNlbnNvcnMgb2Yga25vd24gdHlwZSBkZWZpbmVkIGluIFNlbnNvclR5cGUgKHZhbHVlIDwKKyAgICAgKiBTZW5zb3JUeXBlOjpERVZJQ0VfUFJJVkFURV9CQVNFKSwgdGhpcyBjYW4gYmUgYW4gZW1wdHkgc3RyaW5nLgorICAgICAqLworICAgIHN0cmluZyB0eXBlQXNTdHJpbmc7CisKKyAgICAvKiogbWF4aW11bSByYW5nZSBvZiB0aGlzIHNlbnNvcidzIHZhbHVlIGluIFNJIHVuaXRzICovCisgICAgZmxvYXQgbWF4UmFuZ2U7CisKKyAgICAvKiogc21hbGxlc3QgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byB2YWx1ZXMgcmVwb3J0ZWQgYnkgdGhpcyBzZW5zb3IgKi8KKyAgICBmbG9hdCByZXNvbHV0aW9uOworCisgICAgLyoqIHJvdWdoIGVzdGltYXRlIG9mIHRoaXMgc2Vuc29yJ3MgcG93ZXIgY29uc3VtcHRpb24gaW4gbUEgKi8KKyAgICBmbG9hdCBwb3dlcjsKKworICAgIC8qKgorICAgICAqIHRoaXMgdmFsdWUgZGVwZW5kcyBvbiB0aGUgcmVwb3J0aW5nIG1vZGU6CisgICAgICoKKyAgICAgKiAgIGNvbnRpbnVvdXM6IG1pbmltdW0gc2FtcGxlIHBlcmlvZCBhbGxvd2VkIGluIG1pY3Jvc2Vjb25kcworICAgICAqICAgb24tY2hhbmdlIDogMAorICAgICAqICAgb25lLXNob3QgIDotMQorICAgICAqICAgc3BlY2lhbCAgIDogMCwgdW5sZXNzIG90aGVyd2lzZSBub3RlZAorICAgICAqLworICAgIGludDMyX3QgbWluRGVsYXk7CisKKyAgICAvKioKKyAgICAgKiBudW1iZXIgb2YgZXZlbnRzIHJlc2VydmVkIGZvciB0aGlzIHNlbnNvciBpbiB0aGUgYmF0Y2ggbW9kZSBGSUZPLgorICAgICAqIElmIHRoZXJlIGlzIGEgZGVkaWNhdGVkIEZJRk8gZm9yIHRoaXMgc2Vuc29yLCB0aGVuIHRoaXMgaXMgdGhlCisgICAgICogc2l6ZSBvZiB0aGlzIEZJRk8uIElmIHRoZSBGSUZPIGlzIHNoYXJlZCB3aXRoIG90aGVyIHNlbnNvcnMsCisgICAgICogdGhpcyBpcyB0aGUgc2l6ZSByZXNlcnZlZCBmb3IgdGhhdCBzZW5zb3IgYW5kIGl0IGNhbiBiZSB6ZXJvLgorICAgICAqLworICAgIHVpbnQzMl90IGZpZm9SZXNlcnZlZEV2ZW50Q291bnQ7CisKKyAgICAvKioKKyAgICAgKiBtYXhpbXVtIG51bWJlciBvZiBldmVudHMgb2YgdGhpcyBzZW5zb3IgdGhhdCBjb3VsZCBiZSBiYXRjaGVkLgorICAgICAqIFRoaXMgaXMgZXNwZWNpYWxseSByZWxldmFudCB3aGVuIHRoZSBGSUZPIGlzIHNoYXJlZCBiZXR3ZWVuCisgICAgICogc2V2ZXJhbCBzZW5zb3JzOyB0aGlzIHZhbHVlIGlzIHRoZW4gc2V0IHRvIHRoZSBzaXplIG9mIHRoYXQgRklGTy4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBmaWZvTWF4RXZlbnRDb3VudDsKKworICAgIC8qKgorICAgICAqIHBlcm1pc3Npb24gcmVxdWlyZWQgdG8gc2VlIHRoaXMgc2Vuc29yLCByZWdpc3RlciB0byBpdCBhbmQgcmVjZWl2ZSBkYXRhLgorICAgICAqIFNldCB0byAiIiBpZiBubyBwZXJtaXNzaW9uIGlzIHJlcXVpcmVkLiBTb21lIHNlbnNvciB0eXBlcyBsaWtlIHRoZQorICAgICAqIGhlYXJ0IHJhdGUgbW9uaXRvciBoYXZlIGEgbWFuZGF0b3J5IHJlcXVpcmVfcGVybWlzc2lvbi4KKyAgICAgKiBGb3Igc2Vuc29ycyB0aGF0IGFsd2F5cyByZXF1aXJlIGEgc3BlY2lmaWMgcGVybWlzc2lvbiwgbGlrZSB0aGUgaGVhcnQKKyAgICAgKiByYXRlIG1vbml0b3IsIHRoZSBhbmRyb2lkIGZyYW1ld29yayBtaWdodCBvdmVyd3JpdGUgdGhpcyBzdHJpbmcKKyAgICAgKiBhdXRvbWF0aWNhbGx5LgorICAgICAqLworICAgIHN0cmluZyByZXF1aXJlZFBlcm1pc3Npb247CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHZhbHVlIGlzIGRlZmluZWQgb25seSBmb3IgY29udGludW91cyBtb2RlIGFuZCBvbi1jaGFuZ2Ugc2Vuc29ycy4KKyAgICAgKiBJdCBpcyB0aGUgZGVsYXkgYmV0d2VlbiB0d28gc2Vuc29yIGV2ZW50cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBsb3dlc3QKKyAgICAgKiBmcmVxdWVuY3kgdGhhdCB0aGlzIHNlbnNvciBzdXBwb3J0cy4gV2hlbiBsb3dlciBmcmVxdWVuY2llcyBhcmUgcmVxdWVzdGVkCisgICAgICogdGhyb3VnaCBiYXRjaCgpL3NldERlbGF5KCkgdGhlIGV2ZW50cyB3aWxsIGJlIGdlbmVyYXRlZCBhdCB0aGlzIGZyZXF1ZW5jeQorICAgICAqIGluc3RlYWQuCisgICAgICogSXQgY2FuIGJlIHVzZWQgYnkgdGhlIGZyYW1ld29yayBvciBhcHBsaWNhdGlvbnMgdG8gZXN0aW1hdGUgd2hlbiB0aGUKKyAgICAgKiBiYXRjaCBGSUZPIG1heSBiZSBmdWxsLgorICAgICAqCisgICAgICogTk9URTogcGVyaW9kTnMgaXMgaW4gbmFub3NlY29uZHMgd2hlcmUgYXMgbWF4RGVsYXkvbWluRGVsYXkgYXJlIGluCisgICAgICogICAgICAgbWljcm9zZWNvbmRzLgorICAgICAqCisgICAgICogICAgICAgY29udGludW91cywgb24tY2hhbmdlOiBtYXhpbXVtIHNhbXBsaW5nIHBlcmlvZCBhbGxvd2VkIGluCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWNyb3NlY29uZHMuCisgICAgICoKKyAgICAgKiAgICAgICAgICBvbmUtc2hvdCwgc3BlY2lhbCA6IDAKKyAgICAgKi8KKyAgICBpbnQzMl90IG1heERlbGF5OworCisgICAgLyoqIEJpdG1hc2sgb2YgU2Vuc29yRmxhZ0JpdHMgKi8KKyAgICBiaXRmaWVsZDxTZW5zb3JGbGFnQml0cz4gZmxhZ3M7Cit9OworCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iU0VOU09SX1NUQVRVU18iKQorZW51bSBTZW5zb3JTdGF0dXMgOiBpbnQ4X3QgeworICAgIE5PX0NPTlRBQ1QgICAgICAgICAgPSAtMSwKKyAgICBVTlJFTElBQkxFICAgICAgICAgID0gMCwKKyAgICBBQ0NVUkFDWV9MT1cgICAgICAgID0gMSwKKyAgICBBQ0NVUkFDWV9NRURJVU0gICAgID0gMiwKKyAgICBBQ0NVUkFDWV9ISUdIICAgICAgID0gMywKK307CisKK3N0cnVjdCBWZWMzIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0IHk7CisgICAgZmxvYXQgejsKKyAgICBTZW5zb3JTdGF0dXMgc3RhdHVzOworfTsKKworc3RydWN0IFZlYzQgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQgeTsKKyAgICBmbG9hdCB6OworICAgIGZsb2F0IHc7Cit9OworCitzdHJ1Y3QgVW5jYWwgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQgeTsKKyAgICBmbG9hdCB6OworICAgIGZsb2F0IHhfYmlhczsKKyAgICBmbG9hdCB5X2JpYXM7CisgICAgZmxvYXQgel9iaWFzOworfTsKKworc3RydWN0IEhlYXJ0UmF0ZSB7CisgICAgLyoqCisgICAgICogSGVhcnQgcmF0ZSBpbiBiZWF0cyBwZXIgbWludXRlLgorICAgICAqIFNldCB0byAwIHdoZW4gc3RhdHVzIGlzIFNlbnNvclN0YXR1czo6VU5SRUxJQUJMRSBvcgorICAgICAqIFNlbnNvclN0YXR1czo6Tk9fQ09OVEFDVAorICAgICAqLworICAgIGZsb2F0IGJwbTsKKworICAgIC8qKiBTdGF0dXMgb2YgdGhlIGhlYXJ0IHJhdGUgc2Vuc29yIGZvciB0aGlzIHJlYWRpbmcuICovCisgICAgU2Vuc29yU3RhdHVzIHN0YXR1czsKK307CisKK0BleHBvcnQobmFtZT0iIikKK2VudW0gTWV0YURhdGFFdmVudFR5cGUgOiB1aW50MzJfdCB7CisgICAgTUVUQV9EQVRBX0ZMVVNIX0NPTVBMRVRFID0gMSwKK307CisKK3N0cnVjdCBNZXRhRGF0YSB7CisgICAgTWV0YURhdGFFdmVudFR5cGUgd2hhdDsKK307CisKK3N0cnVjdCBEeW5hbWljU2Vuc29ySW5mbyB7CisgICAgYm9vbCBjb25uZWN0ZWQ7CisgICAgaW50MzJfdCBzZW5zb3JIYW5kbGU7CisKKyAgICAvKioKKyAgICAgKiBVVUlEIG9mIGEgZHluYW1pYyBzZW5zb3IgKHVzaW5nIFJGQyA0MTIyIGJ5dGUgb3JkZXIpCisgICAgICogRm9yIFVVSUQgMTIzNDU2NzgtOTBBQi1DREVGLTExMjItMzM0NDU1NjY3Nzg4IHRoZSB1dWlkIGZpZWxkIGlzCisgICAgICogaW5pdGlhbGl6ZWQgYXM6CisgICAgICogICB7MHgxMiwgMHgzNCwgMHg1NiwgMHg3OCwgMHg5MCwgMHhBQiwgMHhDRCwgMHhFRiwgMHgxMSwgLi4ufQorICAgICAqLworICAgIHVpbnQ4X3RbMTZdIHV1aWQ7Cit9OworCitAZXhwb3J0KG5hbWU9ImFkZGl0aW9uYWxfaW5mb190eXBlX3QiKQorZW51bSBBZGRpdGlvbmFsSW5mb1R5cGUgOiB1aW50MzJfdCB7CisgICAgLyoqIE1hcmtzIHRoZSBiZWdpbm5pbmcgb2YgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmcmFtZXMgKi8KKyAgICBBSU5GT19CRUdJTiAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgLyoqIE1hcmtzIHRoZSBlbmQgb2YgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmcmFtZXMgKi8KKyAgICBBSU5GT19FTkQgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorCisgICAgLyoqCisgICAgICogRXN0aW1hdGlvbiBvZiB0aGUgZGVsYXkgdGhhdCBpcyBub3QgdHJhY2tlZCBieSBzZW5zb3IgdGltZXN0YW1wcy4gVGhpcworICAgICAqIGluY2x1ZGVzIGRlbGF5IGludHJvZHVjZWQgYnkgc2Vuc29yIGZyb250LWVuZCBmaWx0ZXJpbmcsIGRhdGEgdHJhbnNwb3J0LAorICAgICAqIGV0Yy4KKyAgICAgKiBmbG9hdFsyXTogZGVsYXkgaW4gc2Vjb25kcywgc3RhbmRhcmQgZGV2aWF0aW9uIG9mIGVzdGltYXRlZCB2YWx1ZQorICAgICAqLworICAgIEFJTkZPX1VOVFJBQ0tFRF9ERUxBWSAgICAgICAgICAgICA9IDB4MTAwMDAsCisKKyAgICAvKiogZmxvYXQ6IENlbHNpdXMgdGVtcGVyYXR1cmUgKi8KKyAgICBBSU5GT19JTlRFUk5BTF9URU1QRVJBVFVSRSwKKworICAgIC8qKgorICAgICAqIEZpcnN0IHRocmVlIHJvd3Mgb2YgYSBob21vZ2VuZW91cyBtYXRyaXgsIHdoaWNoIHJlcHJlc2VudHMgY2FsaWJyYXRpb24gdG8KKyAgICAgKiBhIHRocmVlLWVsZW1lbnQgdmVjdG9yIHJhdyBzZW5zb3IgcmVhZGluZy4KKyAgICAgKiBmbG9hdFsxMl06IDN4NCBtYXRyaXggaW4gcm93IG1ham9yIG9yZGVyCisgICAgICovCisgICAgQUlORk9fVkVDM19DQUxJQlJBVElPTiwKKworICAgIC8qKgorICAgICAqIExvY2F0aW9uIGFuZCBvcmllbnRhdGlvbiBvZiBzZW5zb3IgZWxlbWVudCBpbiB0aGUgZGV2aWNlIGZyYW1lOiBvcmlnaW4gaXMKKyAgICAgKiB0aGUgZ2VvbWV0cmljIGNlbnRlciBvZiB0aGUgbW9iaWxlIGRldmljZSBzY3JlZW4gc3VyZmFjZTsgdGhlIGF4aXMKKyAgICAgKiBkZWZpbml0aW9uIGNvcnJlc3BvbmRzIHRvIEFuZHJvaWQgc2Vuc29yIGRlZmluaXRpb25zLgorICAgICAqIGZsb2F0WzEyXTogM3g0IG1hdHJpeCBpbiByb3cgbWFqb3Igb3JkZXIKKyAgICAgKi8KKyAgICBBSU5GT19TRU5TT1JfUExBQ0VNRU5ULAorCisgICAgLyoqCisgICAgICogZmxvYXRbMl06IHJhdyBzYW1wbGUgcGVyaW9kIGluIHNlY29uZHMsCisgICAgICogICAgICAgICAgIHN0YW5kYXJkIGRldmlhdGlvbiBvZiBzYW1wbGluZyBwZXJpb2QKKyAgICAgKi8KKyAgICBBSU5GT19TQU1QTElORywKKworICAgIC8vIFNhbXBsaW5nIGNoYW5uZWwgbW9kZWxpbmcgaW5mb3JtYXRpb24gc2VjdGlvbgorCisgICAgLyoqCisgICAgICogaW50MzJfdDogbm9pc2UgdHlwZQorICAgICAqIGZsb2F0W25dOiBwYXJhbWV0ZXJzCisgICAgICovCisgICAgQUlORk9fQ0hBTk5FTF9OT0lTRSAgICAgICAgICAgICAgID0gMHgyMDAwMCwKKworICAgIC8qKgorICAgICAqIGZsb2F0WzNdOiBzYW1wbGUgcGVyaW9kLCBzdGFuZGFyZCBkZXZpYXRpb24gb2Ygc2FtcGxlIHBlcmlvZCwKKyAgICAgKiBxdWFudGl6YXRpb24gdW5pdAorICAgICAqLworICAgIEFJTkZPX0NIQU5ORUxfU0FNUExFUiwKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgYSBmaWx0ZXI6CisgICAgICogICBcc3VtX2ogYV9qIHlbbi1qXSA9PSBcc3VtX2kgYl9pIHhbbi1pXQorICAgICAqCisgICAgICogaW50MzJfdFszXTogbnVtYmVyIG9mIGZlZWRmb3J3YXJkIGNvZWZmaWVudHMgTSwKKyAgICAgKiAgICAgICAgICAgICBudW1iZXIgb2YgZmVlZGJhY2sgY29lZmZpY2llbnRzIE4gKGZvciBGSVIgZmlsdGVyLCBOID0gMSkuCisgICAgICogICAgICAgICAgICAgYml0IG1hc2sgdGhhdCByZXByZXNlbnRzIHdoaWNoIGVsZW1lbnQgdGhlIGZpbHRlciBpcyBhcHBsaWVkCisgICAgICogICAgICAgICAgICAgdG8uIChiaXQgMD09MSBtZWFucyB0aGlzIGZpbHRlciBhcHBsaWVzIHRvIHZlY3RvciBlbGVtZW50IDApLgorICAgICAqIGZsb2F0W00rTl06IGZpbHRlciBjb2VmZmljaWVudHMgKGIwLCBiMSwgLi4uLCBiX3tNLTF9KSwgdGhlbgorICAgICAqICAgICAgICAgICAgIChhMCwgYTEsIC4uLiwgYV97Ti0xfSksIGEwIGlzIGFsd2F5cyAxLgorICAgICAqCisgICAgICogTXVsdGlwbGUgZnJhbWVzIG1heSBiZSBuZWVkZWQgZm9yIGhpZ2hlciBudW1iZXIgb2YgdGFwcy4KKyAgICAgKi8KKyAgICBBSU5GT19DSEFOTkVMX0ZJTFRFUiwKKworICAgIC8qKgorICAgICAqIGludDMyX3RbMl06IHNpemUgaW4gKHJvdywgY29sdW1uKSAuLi4gMXN0IGZyYW1lCisgICAgICogZmxvYXRbbl06IG1hdHJpeCBlbGVtZW50IHZhbHVlcyBpbiByb3cgbWFqb3Igb3JkZXIuCisgICAgICovCisgICAgQUlORk9fQ0hBTk5FTF9MSU5FQVJfVFJBTlNGT1JNLAorCisgICAgLyoqCisgICAgICogaW50MzJfdFsyXTogZXh0cmFwb2xhdGUgbWV0aG9kLCBpbnRlcnBvbGF0ZSBtZXRob2QKKyAgICAgKiBmbG9hdFtuXTogbWFwcGluZyBrZXkgcG9pbnRzIGluIHBhaXJzLCAoaW4sIG91dCkuLi4KKyAgICAgKiAgICAgICAgICAgKG1heSBiZSB1c2VkIHRvIG1vZGVsIHNhdHVyYXRpb24pLgorICAgICAqLworICAgIEFJTkZPX0NIQU5ORUxfTk9OTElORUFSX01BUCwKKworICAgIC8qKgorICAgICAqIGludDMyX3Q6IHJlc2FtcGxlIG1ldGhvZCAoMC10aCBvcmRlciwgMXN0IG9yZGVyLi4uKQorICAgICAqIGZsb2F0WzFdOiByZXNhbXBsZSByYXRpbyAodXBzYW1wbGluZyBpZiA8IDEuMCwgZG93bnNhbXBsaW5nIGlmID4gMS4wKS4KKyAgICAgKi8KKyAgICBBSU5GT19DSEFOTkVMX1JFU0FNUExFUiwKKworICAgIC8qKgorICAgICAqIE9wZXJhdGlvbiBlbnZpcm9ubWVudCBwYXJhbWV0ZXJzIHNlY3Rpb24KKyAgICAgKiBUeXBlcyBpbiB0aGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgc2VudCBkb3duIChpbnN0ZWFkIG9mIHJlcG9ydGVkIGZyb20pCisgICAgICogZGV2aWNlIGFzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYWlkIHNlbnNvciBvcGVyYXRpb24uIERhdGEgaXMgc2VudAorICAgICAqIHZpYSBpbmplY3RTZW5zb3JEYXRhKCkgZnVuY3Rpb24gdG8gc2Vuc29yIGhhbmRsZSAtMSBkZW5vdGluZyBhbGwgc2Vuc29ycworICAgICAqIGluIGRldmljZS4KKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIExvY2FsIGdlb21hZ25ldGljIGZpZWxkIGluZm9ybWF0aW9uIGJhc2VkIG9uIGRldmljZSBnZW8gbG9jYXRpb24uIFRoaXMKKyAgICAgKiB0eXBlIGlzIHByaW1hcmlseSBmb3IgZm9yIG1hZ25ldGljIGZpZWxkIGNhbGlicmF0aW9uIGFuZCByb3RhdGlvbiB2ZWN0b3IKKyAgICAgKiBzZW5zb3IgZnVzaW9uLgorICAgICAqIGZsb2F0WzNdOiBzdHJlbmd0aCAodVQpLCBkZWNsaW5hdGlvbiBhbmQgaW5jbGluYXRpb24gYW5nbGUgKHJhZCkuCisgICAgICovCisgICAgQUlORk9fTE9DQUxfR0VPTUFHTkVUSUNfRklFTEQgICAgID0gMHgzMDAwMCwKKworICAgIC8qKgorICAgICAqIExvY2FsIGdyYXZpdGF0aW9uYWwgYWNjZWxlcmF0aW9uIHN0cmVuZ3RoIGF0IGRldmljZSBnZW8gbG9jYXRpb24uCisgICAgICogZmxvYXQ6IGdyYXZpdGF0aW9uYWwgYWNjZWxlcmF0aW9uIG5vcm0gaW4gbS9zXjIuCisgICAgICovCisgICAgQUlORk9fTE9DQUxfR1JBVklUWSwKKworICAgIC8qKgorICAgICAqIERldmljZSBkb2NrIHN0YXRlLgorICAgICAqIGludDMyX3Q6IGRvY2sgc3RhdGUgZm9sbG93aW5nIEFuZHJvaWQgQVBJIEludGVudC5FWFRSQV9ET0NLX1NUQVRFCisgICAgICogZGVmaW5pdGlvbiwgdW5kZWZpbmVkIHZhbHVlIGlzIGlnbm9yZWQuCisgICAgICovCisgICAgQUlORk9fRE9DS19TVEFURSwKKworICAgIC8qKgorICAgICAqIEhpZ2ggcGVyZm9ybWFuY2UgbW9kZSBoaW50LiBEZXZpY2UgaXMgYWJsZSB0byB1c2UgdXAgbW9yZSBwb3dlciBhbmQgdGFrZQorICAgICAqIG1vcmUgcmVvdXJjZXMgdG8gaW1wcm92ZSB0aHJvdWdocHV0IGFuZCBsYXRlbmN5IGluIGhpZ2ggcGVyZm9ybWFuY2UgbW9kZS4KKyAgICAgKiBPbmUgcG9zc2libGUgdXNlIGNhc2UgaXMgdmlydHVhbCByZWFsaXR5LCB3aGVuIHNlbnNvciBsYXRlbmN5IG5lZWQgdG8gYmUKKyAgICAgKiBjYXJlZnVsbHkgY29udHJvbGxlZC4KKyAgICAgKiBpbnQzMl90OiAxIG9yIDAsIGRlbm90ZSBpZiBkZXZpY2UgaXMgaW4vb3V0IG9mIGhpZ2ggcGVyZm9ybWFuY2UgbW9kZSwKKyAgICAgKiAgICAgICAgICBvdGhlciB2YWx1ZXMgaXMgaWdub3JlZC4KKyAgICAgKi8KKyAgICBBSU5GT19ISUdIX1BFUkZPUk1BTkNFX01PREUsCisKKyAgICAvKioKKyAgICAgKiBNYWduZXRpYyBmaWVsZCBjYWxpYnJhdGlvbiBoaW50LiBEZXZpY2UgaXMgbm90aWZpZWQgd2hlbiBtYW51YWxseQorICAgICAqIHRyaWdnZXJlZCBtYWduZXRpYyBmaWVsZCBjYWxpYnJhdGlvbiBwcm9jZWR1cmUgaXMgc3RhcnRlZCBvciBzdG9wcGVkLiBUaGUKKyAgICAgKiBjYWxpYnJhdGlvbiBwcm9jZWR1cmUgaXMgYXNzdW1lZCB0aW1lZCBvdXQgYWZ0ZXIgMSBtaW51dGUgZnJvbSBzdGFydCwKKyAgICAgKiBldmVuIGlmIGFuIGV4cGxpY2l0IHN0b3AgaXMgbm90IHJlY2VpdmVkLgorICAgICAqCisgICAgICogaW50MzJfdDogMSBmb3Igc3RhcnQsIDAgZm9yIHN0b3AsIG90aGVyIHZhbHVlIGlzIGlnbm9yZWQuCisgICAgICovCisgICAgQUlORk9fTUFHTkVUSUNfRklFTERfQ0FMSUJSQVRJT04sCisKKyAgICAvKiogQ3VzdG9tIGluZm9ybWF0aW9uICovCisgICAgQUlORk9fQ1VTVE9NX1NUQVJUICAgICAgICAgICAgICAgID0gMHgxMDAwMDAwMCwKKworICAgIC8qKiBEZWJ1Z2dpbmcgKi8KKyAgICBBSU5GT19ERUJVR0dJTkdfU1RBUlQgICAgICAgICAgICAgPSAweDQwMDAwMDAwLAorfTsKKworc3RydWN0IEFkZGl0aW9uYWxJbmZvIHsKKyAgICAvKiogdHlwZSBvZiBwYXlsb2FkIGRhdGEsIHNlZSBBZGRpdGlvbmFsSW5mb1R5cGUgKi8KKyAgICBBZGRpdGlvbmFsSW5mb1R5cGUgdHlwZTsKKworICAgIC8qKiBzZXF1ZW5jZSBudW1iZXIgb2YgdGhpcyBmcmFtZSBmb3IgdGhpcyB0eXBlICovCisgICAgaW50MzJfdCBzZXJpYWw7CisKKyAgICB1bmlvbiBQYXlsb2FkIHsKKyAgICAgICAgaW50MzJfdFsxNF0gZGF0YV9pbnQzMjsKKyAgICAgICAgZmxvYXRbMTRdIGRhdGFfZmxvYXQ7CisgICAgfSB1OworfTsKKworLyogYWNjZWxlcmF0aW9uIHZhbHVlcyBhcmUgaW4gbWV0ZXIgcGVyIHNlY29uZCBwZXIgc2Vjb25kIChtL3NeMikKKyAqIG1hZ25ldGljIHZlY3RvciB2YWx1ZXMgYXJlIGluIG1pY3JvLVRlc2xhICh1VCkKKyAqIG9yaWVudGF0aW9uIHZhbHVlcyBhcmUgaW4gZGVncmVlcworICogZ3lyb3Njb3BlIHZhbHVlcyBhcmUgaW4gcmFkL3MKKyAqIHRlbXBlcmF0dXJlIGlzIGluIGRlZ3JlZXMgY2VudGlncmFkZSAoQ2Vsc2l1cykKKyAqIGRpc3RhbmNlIGluIGNlbnRpbWV0ZXJzCisgKiBsaWdodCBpbiBTSSBsdXggdW5pdHMKKyAqIHByZXNzdXJlIGluIGhlY3RvcGFzY2FsIChoUGEpCisgKiByZWxhdGl2ZSBodW1pZGl0eSBpbiBwZXJjZW50CisgKi8KK3VuaW9uIEV2ZW50UGF5bG9hZCB7CisgICAgLyoqCisgICAgICogU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQsCisgICAgICogU2Vuc29yVHlwZTo6T1JJRU5UQVRJT04sIFNlbnNvclR5cGU6OkdZUk9TQ09QRSwgU2Vuc29yVHlwZTo6R1JBVklUWSwKKyAgICAgKiBTZW5zb3JUeXBlOjpMSU5FQVJfQUNDRUxFUkFUSU9OCisgICAgICovCisgICAgVmVjMyB2ZWMzOworCisgICAgLyoqCisgICAgICogU2Vuc29yVHlwZTo6Uk9UQVRJT05fVkVDVE9SLCBTZW5zb3JUeXBlOjpHQU1FX1JPVEFUSU9OX1ZFQ1RPUiwKKyAgICAgKiBTZW5zb3JUeXBlOjpHRU9NQUdORVRJQ19ST1RBVElPTl9WRUNUT1IKKyAgICAgKi8KKyAgICBWZWM0IHZlYzQ7CisKKyAgICAvKioKKyAgICAgKiBTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRF9VTkNBTElCUkFURUQsCisgICAgICogU2Vuc29yVHlwZTo6R1lST1NDT1BFX1VOQ0FMSUJSQVRFRAorICAgICAqIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVJfVU5DQUxJQlJBVEVECisgICAgICovCisgICAgVW5jYWwgdW5jYWw7CisKKyAgICAvKiogU2Vuc29yVHlwZTo6TUVUQV9EQVRBICovCisgICAgTWV0YURhdGEgbWV0YTsKKworICAgIC8qKgorICAgICAqIFNlbnNvclR5cGU6OkRFVklDRV9PUklFTlRBVElPTiwgU2Vuc29yVHlwZTo6TElHSFQsIFNlbnNvclR5cGU6OlBSRVNTVVJFLAorICAgICAqIFNlbnNvclR5cGU6OlRFTVBFUkFUVVJFLCBTZW5zb3JUeXBlOjpQUk9YSU1JVFksCisgICAgICogU2Vuc29yVHlwZTo6UkVMQVRJVkVfSFVNSURJVFksIFNlbnNvclR5cGU6OkFNQklFTlRfVEVNUEVSQVRVUkUsCisgICAgICogU2Vuc29yVHlwZTo6U0lHTklGSUNBTlRfTU9USU9OLCBTZW5zb3JUeXBlOjpTVEVQX0RFVEVDVE9SLAorICAgICAqIFNlbnNvclR5cGU6OlRJTFRfREVURUNUT1IsIFNlbnNvclR5cGU6OldBS0VfR0VTVFVSRSwKKyAgICAgKiBTZW5zb3JUeXBlOjpHTEFOQ0VfR0VTVFVSRSwgU2Vuc29yVHlwZTo6UElDS19VUF9HRVNUVVJFLAorICAgICAqIFNlbnNvclR5cGU6OldSSVNUX1RJTFRfR0VTVFVSRSwgU2Vuc29yVHlwZTo6U1RBVElPTkFSWV9ERVRFQ1QsCisgICAgICogU2Vuc29yVHlwZTo6TU9USU9OX0RFVEVDVCwgU2Vuc29yVHlwZTo6SEVBUlRfQkVBVCwKKyAgICAgKiBTZW5zb3JUeXBlOjpMT1dfTEFURU5DWV9PRkZCT0RZX0RFVEVDVAorICAgICAqLworICAgIGZsb2F0IHNjYWxhcjsKKworICAgIC8qKiBTZW5zb3JUeXBlOjpTVEVQX0NPVU5URVIgKi8KKyAgICB1aW50NjRfdCBzdGVwQ291bnQ7CisKKyAgICAvKiogU2Vuc29yVHlwZTo6SEVBUlRfUkFURSAqLworICAgIEhlYXJ0UmF0ZSBoZWFydFJhdGU7CisKKyAgICAvKiogU2Vuc29yVHlwZTo6UE9TRV82RE9GICovCisgICAgZmxvYXRbMTVdIHBvc2U2RE9GOworCisgICAgLyoqIFNlbnNvclR5cGU6OkRZTkFNSUNfU0VOU09SX01FVEEgKi8KKyAgICBEeW5hbWljU2Vuc29ySW5mbyBkeW5hbWljOworCisgICAgLyoqIFNlbnNvclR5cGU6OkFERElUSU9OQUxfSU5GTyAqLworICAgIEFkZGl0aW9uYWxJbmZvIGFkZGl0aW9uYWw7CisKKyAgICAvKiogdW5kZWZpbmVkL2N1c3RvbSBzZW5zb3IgdHlwZSA+PSBTZW5zb3JUeXBlOjpERVZJQ0VfUFJJVkFURV9CQVNFICovCisgICAgZmxvYXRbMTZdIGRhdGE7Cit9OworCitzdHJ1Y3QgRXZlbnQgeworICAgIC8qKiBUaW1lIG1lYXN1cmVkIGluIG5hbm9zZWNvbmRzLCBpbiAiZWxhcHNlZFJlYWx0aW1lTmFubygpJ3MiIHRpbWViYXNlLiAqLworICAgIGludDY0X3QgdGltZXN0YW1wOworCisgICAgLyoqIHNlbnNvciBpZGVudGlmaWVyICovCisgICAgaW50MzJfdCBzZW5zb3JIYW5kbGU7CisKKyAgICBTZW5zb3JUeXBlIHNlbnNvclR5cGU7CisKKyAgICAvKiogVW5pb24gZGlzY3JpbWluYXRlZCBvbiBzZW5zb3JUeXBlICovCisgICAgRXZlbnRQYXlsb2FkIHU7Cit9OworCisvKioKKyAqIERpcmVjdCByZXBvcnQgcmF0ZSBsZXZlbCBkZWZpbml0aW9uLiBFeGNlcHQgZm9yIFNFTlNPUl9ESVJFQ1RfUkFURV9TVE9QLCBlYWNoCisgKiByYXRlIGxldmVsIGNvdmVycyB0aGUgcmFuZ2UgKDU1JSwgMjIwJV0gKiBub21pbmFsIHJlcG9ydCByYXRlLiBGb3IgZXhhbXBsZSwKKyAqIGlmIGNvbmZpZyBkaXJlY3QgcmVwb3J0IHNwZWNpZnkgYSByYXRlIGxldmVsIFNFTlNPUl9ESVJFQ1RfUkFURV9GQVNULCBpdCBpcworICogbGVnYWwgZm9yIHNlbnNvciBoYXJkd2FyZSB0byByZXBvcnQgZXZlbnQgYXQgYSByYXRlIGdyZWF0ZXIgdGhhbiAxMTBIeiwgYW5kCisgKiBsZXNzIG9yIGVxdWFsIHRvIDQ0MEh6LiBOb3RlIHRoYXQgcmF0ZSBoYXMgdG8gcmVtYWluIHN0ZWFkeSB3aXRob3V0IHZhcmlhdGlvbgorICogYmVmb3JlIG5ldyByYXRlIGxldmVsIGlzIGNvbmZpZ3VyZWQsIGkuZS4gaWYgYSBzZW5zb3IgaXMgY29uZmlndXJlZCB0bworICogU0VOU09SX0RJUkVDVF9SQVRFX0ZBU1QgYW5kIHN0YXJ0cyB0byByZXBvcnQgZXZlbnQgYXQgMjU2SHosIGl0IGNhbm5vdAorICogY2hhbmdlIHJhdGUgdG8gMTI4SHogYWZ0ZXIgYSBmZXcgc2Vjb25kcyBvZiBydW5uaW5nIGV2ZW4gaWYgMTI4SHogaXMgYWxzbyBpbgorICogdGhlIGxlZ2FsIHJhbmdlIG9mIFNFTlNPUl9ESVJFQ1RfUkFURV9GQVNULiBUaHVzLCBpdCBpcyByZWNvbW1lbmRlZCB0bworICogYXNzb2NpYXRlIHJlcG9ydCByYXRlIHdpdGggUmF0ZUx2ZWwgc3RhdGljYWxseSBmb3Igc2luZ2xlIHNlbnNvci4KKyAqLworQGV4cG9ydChuYW1lPSJkaXJlY3RfcmF0ZV9sZXZlbF90IiwgdmFsdWVfcHJlZml4PSJTRU5TT1JfRElSRUNUX1JBVEVfIikKK2VudW0gUmF0ZUxldmVsIDogaW50MzJfdCB7CisgICAgU1RPUCwgICAgICAgICAgICAvLyBzdG9wCisgICAgTk9STUFMLCAgICAgICAgICAvLyBub21pbmFsIDUwSHoKKyAgICBGQVNULCAgICAgICAgICAgIC8vIG5vbWluYWwgMjAwSHoKKyAgICBWRVJZX0ZBU1QsICAgICAgIC8vIG5vbWluYWwgODAwSHoKK307CisKKy8qKgorICogRGlyZWN0IGNoYW5uZWwgc2hhcmVkIG1lbW9yeSB0eXBlcy4gU2VlIHN0cnVjdCBTaGFyZWRNZW1JbmZvLgorICovCitAZXhwb3J0KG5hbWU9ImRpcmVjdF9tZW1fdHlwZV90IiwgdmFsdWVfcHJlZml4PSJTRU5TT1JfRElSRUNUX01FTV9UWVBFXyIpCitlbnVtIFNoYXJlZE1lbVR5cGUgOiBpbnQzMl90IHsKKyAgICAvLyBoYW5kbGUgY29udGFpbnMgMSBmZCAoYXNobWVtIGhhbmRsZSkgYW5kIDAgaW50LgorICAgIEFTSE1FTSA9IDEsCisgICAgLy8gaGFuZGxlIGRlZmluaXRpb24gbWF0Y2hlcyBncmFsbG9jIEhBTC4KKyAgICBHUkFMTE9DCit9OworCisKKy8qKgorICogRGlyZWN0IGNoYW5uZWwgbG9jay1mcmVlIHF1ZXVlIGZvcm1hdCwgdGhpcyBkZWZpbmVzIGhvdyB0aGUgc2hhcmVkIG1lbW9yeSBpcworICogaW50ZXJwcmV0ZWQgYnkgYm90aCBzZW5zb3IgaGFyZHdhcmUgYW5kIGFwcGxpY2F0aW9uLgorICoKKyAqIEBzZWUgU2hhcmVkTWVtSW5mby4KKyAqLworQGV4cG9ydChuYW1lPSJkaXJlY3RfZm9ybWF0X3QiLCB2YWx1ZV9wcmVmaXg9IlNFTlNPUl9ESVJFQ1RfRk1UXyIpCitlbnVtIFNoYXJlZE1lbUZvcm1hdCA6IGludDMyX3QgeworICAgIFNFTlNPUlNfRVZFTlQgPSAxLCAgLy8gc2hhcmVkIG1lbW9yeSBpcyBmb3JtYXRlZCBhcyBhbiBhcnJheSBvZiBkYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50cy4gU2VlIFNlbnNvcnNFdmVudEZvcm1hdE9mZnNldCBmb3IgZGV0YWlscy4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVwb24gcmV0dXJuIG9mIGNoYW5uZWwgcmVnaXN0cmF0aW9uIGNhbGwsIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hhcmVkIG1lbW9yeSBzcGFjZSBtdXN0IGJlIGZvcm1hdGVkIHRvIGFsbCAwIGJ5IEhBTC4KK307CisKK2VudW0gU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0IDogdWludDE2X3QgeworICAgIC8vIG9mZnNldCAgIHR5cGUgICAgICAgIG5hbWUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gMHgwMDAwICAgaW50MzJfdCAgICAgc2l6ZSAoYWx3YXlzIDEwNCkKKyAgICAvLyAweDAwMDQgICBpbnQzMl90ICAgICBzZW5zb3IgcmVwb3J0IHRva2VuCisgICAgLy8gMHgwMDA4ICAgaW50MzJfdCAgICAgdHlwZSAoc2VlIFNlbnNvclR5cGUpCisgICAgLy8gMHgwMDBDICAgdWludDMyX3QgICAgYXRvbWljIGNvdW50ZXIKKyAgICAvLyAweDAwMTAgICBpbnQ2NF90ICAgICB0aW1lc3RhbXAgKHNlZSBFdmVudCkKKyAgICAvLyAweDAwMTggICBmbG9hdFsxNl0vICBkYXRhCisgICAgLy8gICAgICAgICAgaW50NjRfdFs4XQorICAgIC8vIDB4MDA1OCAgIGludDMyX3RbNF0gIHJlc2VydmVkIChzZXQgdG8gemVybykKKyAgICBTSVpFX0ZJRUxEICAgICAgPSAweDAsCisgICAgUkVQT1JUX1RPS0VOICAgID0gMHg0LAorICAgIFNFTlNPUl9UWVBFICAgICA9IDB4OCwKKyAgICBBVE9NSUNfQ09VTlRFUiAgPSAweEMsCisgICAgVElNRVNUQU1QICAgICAgID0gMHgxMCwKKyAgICBEQVRBICAgICAgICAgICAgPSAweDE4LAorICAgIFJFU0VSVkVEICAgICAgICA9IDB4NTgsCisgICAgVE9UQUxfTEVOR1RIICAgID0gMHg2OAorfTsKKworLyoqCisgKiBTaGFyZWQgbWVtb3J5IGluZm9ybWF0aW9uIGZvciBhIGRpcmVjdCBjaGFubmVsCisgKi8KK3N0cnVjdCBTaGFyZWRNZW1JbmZvIHsKKyAgICBTaGFyZWRNZW1UeXBlIHR5cGU7ICAgICAgICAgLy8gc2hhcmVkIG1lbW9yeSB0eXBlCisgICAgU2hhcmVkTWVtRm9ybWF0IGZvcm1hdDsKKyAgICB1aW50MzJfdCBzaXplOyAgICAgICAgICAgICAgLy8gc2l6ZSBvZiB0aGUgbWVtb3J5IHJlZ2lvbiwgaW4gYnl0ZXMKKyAgICBoYW5kbGUgbWVtb3J5SGFuZGxlOyAgICAgICAgLy8gc2hhcmVkIG1lbW9yeSBoYW5kbGUsIGl0IGlzIGludGVycHJldGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlcGVuZGluZyBvbiB0eXBlIGZpZWxkLCBzZWUgU2hhcmVkTWVtVHlwZS4KK307CmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvc2Vuc29ycy8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjE0OWJhCi0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM0IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsU2Vuc29yc1YxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxTZW5zb3JzVjFfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKK30KKwpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsU2Vuc29yc1YxXzBUYXJnZXRUZXN0LmNwcCBiL3NlbnNvcnMvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFNlbnNvcnNWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDZhOWQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFNlbnNvcnNWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSwxMzg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJzZW5zb3JzX2hpZGxfaGFsX3Rlc3QiCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL0lTZW5zb3JzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGN1dGlscy9hc2htZW0uaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9zZW5zb3JzLmg+ICAvLyBmb3Igc2Vuc29yIHR5cGUgc3RyaW5ncworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9TeXN0ZW1DbG9jay5oPgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGNpbnR0eXBlcz4KKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8dGhyZWFkPgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIG5hbWVzcGFjZSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzZW5zb3JzOjpWMV8wOworCisvLyBUZXN0IGVudmlyb25tZW50IGZvciBzZW5zb3JzCitjbGFzcyBTZW5zb3JzSGlkbFRlc3Q7CitjbGFzcyBTZW5zb3JzSGlkbEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworIHB1YmxpYzoKKyAgLy8gZ2V0IHRoZSB0ZXN0IGVudmlyb25tZW50IHNpbmdsZXRvbgorICBzdGF0aWMgU2Vuc29yc0hpZGxFbnZpcm9ubWVudCogSW5zdGFuY2UoKSB7CisgICAgc3RhdGljIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQqIGluc3RhbmNlID0gbmV3IFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ7CisgICAgcmV0dXJuIGluc3RhbmNlOworICB9CisKKyAgdmlydHVhbCB2b2lkIFNldFVwKCk7CisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpOworCisgIC8vIEdldCBhbmQgY2xlYXIgYWxsIGV2ZW50cyBjb2xsZWN0ZWQgc28gZmFyIChsaWtlICJjYXQiIHNoZWxsIGNvbW1hbmQpLgorICAvLyBJZiBvdXRwdXQgaXMgbnVsbHB0ciwgaXQgY2xlYXJzIGFsbCBjb2xsZWN0ZWQgZXZlbnRzLgorICB2b2lkIGNhdEV2ZW50cyhzdGQ6OnZlY3RvcjxFdmVudD4qIG91dHB1dCk7CisKKyAgLy8gc2V0IHNlbnNvciBldmVudCBjb2xsZWN0aW9uIHN0YXR1cworICB2b2lkIHNldENvbGxlY3Rpb24oYm9vbCBlbmFibGUpOworCisgcHJpdmF0ZToKKyAgZnJpZW5kIFNlbnNvcnNIaWRsVGVzdDsKKyAgLy8gc2Vuc29ycyBoaWRsIHNlcnZpY2UKKyAgc3A8SVNlbnNvcnM+IHNlbnNvcnM7CisKKyAgU2Vuc29yc0hpZGxFbnZpcm9ubWVudCgpIHt9CisKKyAgdm9pZCBhZGRFdmVudChjb25zdCBFdmVudCYgZXYpOworICB2b2lkIHN0YXJ0UG9sbGluZ1RocmVhZCgpOworICB2b2lkIHJlc2V0SGFsKCk7CisgIHN0YXRpYyB2b2lkIHBvbGxpbmdUaHJlYWQoU2Vuc29yc0hpZGxFbnZpcm9ubWVudCogZW52LCBzdGQ6OnNoYXJlZF9wdHI8Ym9vbD4gc3RvcCk7CisKKyAgYm9vbCBjb2xsZWN0aW9uRW5hYmxlZDsKKyAgc3RkOjpzaGFyZWRfcHRyPGJvb2w+IHN0b3BUaHJlYWQ7CisgIHN0ZDo6dGhyZWFkIHBvbGxUaHJlYWQ7CisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBldmVudHM7CisgIHN0ZDo6bXV0ZXggZXZlbnRzX211dGV4OworCisgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oU2Vuc29yc0hpZGxFbnZpcm9ubWVudCk7Cit9OworCit2b2lkIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6OlNldFVwKCkgeworICByZXNldEhhbCgpOworCisgIEFTU0VSVF9ORShzZW5zb3JzLCBudWxscHRyKSA8PCAic2Vuc29ycyBpcyBudWxscHRyLCBjYW5ub3QgZ2V0IGhpZGwgc2VydmljZSI7CisKKyAgY29sbGVjdGlvbkVuYWJsZWQgPSBmYWxzZTsKKyAgc3RhcnRQb2xsaW5nVGhyZWFkKCk7CisKKyAgLy8gSW4gY2FzZSBmcmFtZXdvcmsganVzdCBzdG9wcGVkIGZvciB0ZXN0IGFuZCB0aGVyZSBpcyBzZW5zb3IgZXZlbnRzIGluIHRoZSBwaXBlLAorICAvLyB3YWl0IHNvbWUgdGltZSBmb3IgdGhvc2UgZXZlbnRzIHRvIGJlIGNsZWFyZWQgdG8gYXZvaWQgdGhlbSBtZXNzaW5nIHVwIHRoZSB0ZXN0LgorICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3Ioc3RkOjpjaHJvbm86OnNlY29uZHMoMykpOworfQorCit2b2lkIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6OlRlYXJEb3duKCkgeworICBpZiAoc3RvcFRocmVhZCkgeworICAgICpzdG9wVGhyZWFkID0gdHJ1ZTsKKyAgfQorICBwb2xsVGhyZWFkLmRldGFjaCgpOworfQorCit2b2lkIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6OnJlc2V0SGFsKCkgeworICAvLyB3YWl0IHVwdG8gMTAwbXMgKiAxMCA9IDFzIGZvciBoaWRsIHNlcnZpY2UuCisgIGNvbnN0ZXhwciBhdXRvIFJFVFJZX0RFTEFZID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygxMDApOworCisgIHN0ZDo6c3RyaW5nIHN0ZXA7CisgIGJvb2wgc3VjY2VlZCA9IGZhbHNlOworICBmb3IgKHNpemVfdCByZXRyeSA9IDEwOyByZXRyeSA+IDA7IC0tcmV0cnkpIHsKKyAgICAvLyB0aGlzIGRvIC4uLiB3aGlsZSBpcyBmb3IgZWFzeSBlcnJvciBoYW5kbGluZworICAgIGRvIHsKKyAgICAgIHN0ZXAgPSAiZ2V0U2VydmljZSgpIjsKKyAgICAgIHNlbnNvcnMgPSBJU2Vuc29yczo6Z2V0U2VydmljZSgpOworICAgICAgaWYgKHNlbnNvcnMgPT0gbnVsbHB0cikgeworICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgc3RlcCA9ICJwb2xsKCkgY2hlY2siOworICAgICAgLy8gUG9rZSBJU2Vuc29yIHNlcnZpY2UuIElmIGl0IGhhcyBsaW5nZXJpbmcgY29ubmVjdGlvbiBmcm9tIHByZXZpb3VzIGdlbmVyYXRpb24gb2YKKyAgICAgIC8vIHN5c3RlbSBzZXJ2ZXIsIGl0IHdpbGwga2lsbCBpdHNlbGYuIFRoZXJlIGlzIG5vIGludGVudGlvbiB0byBoYW5kbGUgdGhlIHBvbGwgcmVzdWx0LAorICAgICAgLy8gd2hpY2ggd2lsbCBiZSBkb25lIHNpbmNlIHRoZSBzaXplIGlzIDAuCisgICAgICBpZighc2Vuc29ycy0+cG9sbCgwLCBbXShhdXRvLCBjb25zdCBhdXRvICYsIGNvbnN0IGF1dG8gJikge30pLmlzT2soKSkgeworICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgc3RlcCA9ICJnZXRTZW5zb3JMaXN0IjsKKyAgICAgIHN0ZDo6dmVjdG9yPFNlbnNvckluZm8+IHNlbnNvckxpc3Q7CisgICAgICBpZiAoIXNlbnNvcnMtPmdldFNlbnNvcnNMaXN0KAorICAgICAgICAgIFsmXSAoY29uc3QgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U2Vuc29ySW5mbz4gJmxpc3QpIHsKKyAgICAgICAgICAgIHNlbnNvckxpc3QucmVzZXJ2ZShsaXN0LnNpemUoKSk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgc2Vuc29yTGlzdC5wdXNoX2JhY2sobGlzdFtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfSkuaXNPaygpKSB7CisgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICAvLyBzdG9wIGVhY2ggc2Vuc29yIGluZGl2aWR1YWxseQorICAgICAgc3RlcCA9ICJzdG9wIGVhY2ggc2Vuc29yIjsKKyAgICAgIGJvb2wgb2sgPSB0cnVlOworICAgICAgZm9yIChjb25zdCBhdXRvICZpIDogc2Vuc29yTGlzdCkgeworICAgICAgICBpZiAoIXNlbnNvcnMtPmFjdGl2YXRlKGkuc2Vuc29ySGFuZGxlLCBmYWxzZSkuaXNPaygpKSB7CisgICAgICAgICAgb2sgPSBmYWxzZTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgaWYgKCFvaykgeworICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgLy8gbWFyayBpdCBkb25lCisgICAgICBzdGVwID0gImRvbmUiOworICAgICAgc3VjY2VlZCA9IHRydWU7CisgICAgfSB3aGlsZSgwKTsKKworICAgIGlmIChzdWNjZWVkKSB7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRGVsYXkgMTAwbXMgYmVmb3JlIHJldHJ5LCBoaWRsIHNlcnZpY2UgaXMgZXhwZWN0ZWQgdG8gY29tZSB1cCBpbiBzaG9ydCB0aW1lIGFmdGVyIGNyYXNoLgorICAgIEFMT0dJKCIlcyB1bnN1Y2Nlc3NmdWwsIHRyeSBhZ2FpbiBzb29uIChyZW1haW5pbmcgcmV0cnkgJXp1KS4iLCBzdGVwLmNfc3RyKCksIHJldHJ5IC0gMSk7CisgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKFJFVFJZX0RFTEFZKTsKKyAgfQorCisgIHNlbnNvcnMgPSBudWxscHRyOworfQorCit2b2lkIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6OmNhdEV2ZW50cyhzdGQ6OnZlY3RvcjxFdmVudD4qIG91dHB1dCkgeworICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhldmVudHNfbXV0ZXgpOworICBpZiAob3V0cHV0KSB7CisgICAgb3V0cHV0LT5pbnNlcnQob3V0cHV0LT5lbmQoKSwgZXZlbnRzLmJlZ2luKCksIGV2ZW50cy5lbmQoKSk7CisgIH0KKyAgZXZlbnRzLmNsZWFyKCk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6c2V0Q29sbGVjdGlvbihib29sIGVuYWJsZSkgeworICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhldmVudHNfbXV0ZXgpOworICBjb2xsZWN0aW9uRW5hYmxlZCA9IGVuYWJsZTsKK30KKwordm9pZCBTZW5zb3JzSGlkbEVudmlyb25tZW50OjphZGRFdmVudChjb25zdCBFdmVudCYgZXYpIHsKKyAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2soZXZlbnRzX211dGV4KTsKKyAgaWYgKGNvbGxlY3Rpb25FbmFibGVkKSB7CisgICAgZXZlbnRzLnB1c2hfYmFjayhldik7CisgIH0KK30KKwordm9pZCBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpzdGFydFBvbGxpbmdUaHJlYWQoKSB7CisgIHN0b3BUaHJlYWQgPSBzdGQ6OnNoYXJlZF9wdHI8Ym9vbD4obmV3IGJvb2woZmFsc2UpKTsKKyAgcG9sbFRocmVhZCA9IHN0ZDo6dGhyZWFkKHBvbGxpbmdUaHJlYWQsIHRoaXMsIHN0b3BUaHJlYWQpOworICBldmVudHMucmVzZXJ2ZSgxMjgpOworfQorCit2b2lkIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6OnBvbGxpbmdUaHJlYWQoCisgICAgU2Vuc29yc0hpZGxFbnZpcm9ubWVudCogZW52LCBzdGQ6OnNoYXJlZF9wdHI8Ym9vbD4gc3RvcCkgeworICBBTE9HRCgicG9sbGluZyB0aHJlYWQgc3RhcnQiKTsKKyAgYm9vbCBuZWVkRXhpdCA9ICpzdG9wOworCisgIHdoaWxlKCFuZWVkRXhpdCkgeworICAgICAgZW52LT5zZW5zb3JzLT5wb2xsKDY0LCBbJl0oYXV0byByZXN1bHQsIGNvbnN0IGF1dG8mIGV2ZW50cywgY29uc3QgYXV0byYgZHluYW1pY1NlbnNvcnNBZGRlZCkgeworICAgICAgICAgIGlmIChyZXN1bHQgIT0gUmVzdWx0OjpPSworICAgICAgICAgICAgICB8fCAoZXZlbnRzLnNpemUoKSA9PSAwICYmIGR5bmFtaWNTZW5zb3JzQWRkZWQuc2l6ZSgpID09IDApCisgICAgICAgICAgICAgIHx8ICpzdG9wKSB7CisgICAgICAgICAgICAgIG5lZWRFeGl0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKworICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgZSA6IGV2ZW50cykgeworICAgICAgICAgICAgICBlbnYtPmFkZEV2ZW50KGUpOworICAgICAgICAgIH0KKyAgICAgIH0pOworICB9CisgIEFMT0dEKCJwb2xsaW5nIHRocmVhZCBlbmQiKTsKK30KKworY2xhc3MgU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkgeworIHB1YmxpYzoKKyAgc3RhdGljIFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5KiBjcmVhdGUoU2hhcmVkTWVtVHlwZSB0eXBlLCBzaXplX3Qgc2l6ZSk7CisgIFNoYXJlZE1lbUluZm8gZ2V0U2hhcmVkTWVtSW5mbygpIGNvbnN0OworICBjaGFyICogZ2V0QnVmZmVyKCkgY29uc3Q7CisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBwYXJzZUV2ZW50cyhpbnQ2NF90IGxhc3RDb3VudGVyID0gLTEsIHNpemVfdCBvZmZzZXQgPSAwKSBjb25zdDsKKyAgdmlydHVhbCB+U2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkoKTsKKyBwcml2YXRlOgorICBTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeShTaGFyZWRNZW1UeXBlIHR5cGUsIHNpemVfdCBzaXplKTsKKworICBTaGFyZWRNZW1UeXBlIG1UeXBlOworICBuYXRpdmVfaGFuZGxlX3QqIG1OYXRpdmVIYW5kbGU7CisgIHNpemVfdCBtU2l6ZTsKKyAgY2hhciogbUJ1ZmZlcjsKKworICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkpOworfTsKKworU2hhcmVkTWVtSW5mbyBTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeTo6Z2V0U2hhcmVkTWVtSW5mbygpIGNvbnN0IHsKKyAgU2hhcmVkTWVtSW5mbyBtZW0gPSB7CisgICAgLnR5cGUgPSBtVHlwZSwKKyAgICAuZm9ybWF0ID0gU2hhcmVkTWVtRm9ybWF0OjpTRU5TT1JTX0VWRU5ULAorICAgIC5zaXplID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1TaXplKSwKKyAgICAubWVtb3J5SGFuZGxlID0gbU5hdGl2ZUhhbmRsZQorICB9OworICByZXR1cm4gbWVtOworfQorCitjaGFyICogU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnk6OmdldEJ1ZmZlcigpIGNvbnN0IHsKKyAgcmV0dXJuIG1CdWZmZXI7Cit9CisKK3N0ZDo6dmVjdG9yPEV2ZW50PiBTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeTo6cGFyc2VFdmVudHMoaW50NjRfdCBsYXN0Q291bnRlciwgc2l6ZV90IG9mZnNldCkgY29uc3QgeworCisgIGNvbnN0ZXhwciBzaXplX3Qga0V2ZW50U2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0OjpUT1RBTF9MRU5HVEgpOworICBjb25zdGV4cHIgc2l6ZV90IGtPZmZzZXRTaXplID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQ6OlNJWkVfRklFTEQpOworICBjb25zdGV4cHIgc2l6ZV90IGtPZmZzZXRUb2tlbiA9IHN0YXRpY19jYXN0PHNpemVfdD4oU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0OjpSRVBPUlRfVE9LRU4pOworICBjb25zdGV4cHIgc2l6ZV90IGtPZmZzZXRUeXBlID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQ6OlNFTlNPUl9UWVBFKTsKKyAgY29uc3RleHByIHNpemVfdCBrT2Zmc2V0QXRvbWljQ291bnRlciA9CisgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KFNlbnNvcnNFdmVudEZvcm1hdE9mZnNldDo6QVRPTUlDX0NPVU5URVIpOworICBjb25zdGV4cHIgc2l6ZV90IGtPZmZzZXRUaW1lc3RhbXAgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KFNlbnNvcnNFdmVudEZvcm1hdE9mZnNldDo6VElNRVNUQU1QKTsKKyAgY29uc3RleHByIHNpemVfdCBrT2Zmc2V0RGF0YSA9IHN0YXRpY19jYXN0PHNpemVfdD4oU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0OjpEQVRBKTsKKworICBzdGQ6OnZlY3RvcjxFdmVudD4gZXZlbnRzOworICBzdGQ6OnZlY3RvcjxmbG9hdD4gZGF0YSgxNik7CisKKyAgd2hpbGUgKG9mZnNldCArIGtFdmVudFNpemUgPD0gbVNpemUpIHsKKyAgICBpbnQ2NF90IGF0b21pY0NvdW50ZXIgPSAqcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCAqPihtQnVmZmVyICsgb2Zmc2V0ICsga09mZnNldEF0b21pY0NvdW50ZXIpOworICAgIGlmIChhdG9taWNDb3VudGVyIDw9IGxhc3RDb3VudGVyKSB7CisgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpbnQzMl90IHNpemUgPSAqcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90ICo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0U2l6ZSk7CisgICAgaWYgKHNpemUgIT0ga0V2ZW50U2l6ZSkgeworICAgICAgLy8gdW5rbm93biBlcnJvciwgZXZlbnRzIHBhcnNlZCBtYXkgYmUgd3JvbmcsIHJlbW92ZSBhbGwKKyAgICAgIGV2ZW50cy5jbGVhcigpOworICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaW50MzJfdCB0b2tlbiA9ICpyZWludGVycHJldF9jYXN0PGludDMyX3QgKj4obUJ1ZmZlciArIG9mZnNldCArIGtPZmZzZXRUb2tlbik7CisgICAgaW50MzJfdCB0eXBlID0gKnJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdCAqPihtQnVmZmVyICsgb2Zmc2V0ICsga09mZnNldFR5cGUpOworICAgIGludDY0X3QgdGltZXN0YW1wID0gKnJlaW50ZXJwcmV0X2Nhc3Q8aW50NjRfdCAqPihtQnVmZmVyICsgb2Zmc2V0ICsga09mZnNldFRpbWVzdGFtcCk7CisKKyAgICBBTE9HVigib2Zmc2V0ID0gJXp1LCBjbnQgJSIgUFJJZDY0ICIsIHRva2VuICUiIFBSSWQzMiAiLCB0eXBlICUiIFBSSWQzMiAiLCB0aW1lc3RhbXAgJSIgUFJJZDY0LAorICAgICAgICBvZmZzZXQsIGF0b21pY0NvdW50ZXIsIHRva2VuLCB0eXBlLCB0aW1lc3RhbXApOworCisgICAgRXZlbnQgZXZlbnQgPSB7CisgICAgICAudGltZXN0YW1wID0gdGltZXN0YW1wLAorICAgICAgLnNlbnNvckhhbmRsZSA9IHRva2VuLAorICAgICAgLnNlbnNvclR5cGUgPSBzdGF0aWNfY2FzdDxTZW5zb3JUeXBlPih0eXBlKSwKKyAgICB9OworICAgIGV2ZW50LnUuZGF0YSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5PGZsb2F0LCAxNj4KKyAgICAgICAgKHJlaW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihtQnVmZmVyICsgb2Zmc2V0ICsga09mZnNldERhdGEpKTsKKworICAgIGV2ZW50cy5wdXNoX2JhY2soZXZlbnQpOworCisgICAgbGFzdENvdW50ZXIgPSBhdG9taWNDb3VudGVyOworICAgIG9mZnNldCArPSBrRXZlbnRTaXplOworICB9CisKKyAgcmV0dXJuIGV2ZW50czsKK30KKworU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnk6OlNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5KFNoYXJlZE1lbVR5cGUgdHlwZSwgc2l6ZV90IHNpemUpCisgICAgOiBtVHlwZSh0eXBlKSwgbVNpemUoMCksIG1CdWZmZXIobnVsbHB0cikgeworICBuYXRpdmVfaGFuZGxlX3QgKmhhbmRsZSA9IG51bGxwdHI7CisgIGNoYXIgKmJ1ZmZlciA9IG51bGxwdHI7CisgIHN3aXRjaCh0eXBlKSB7CisgICAgY2FzZSBTaGFyZWRNZW1UeXBlOjpBU0hNRU06IHsKKyAgICAgIGludCBmZDsKKyAgICAgIGhhbmRsZSA9IDo6bmF0aXZlX2hhbmRsZV9jcmVhdGUoMSAvKm5GZHMqLywgMC8qbkludHMqLyk7CisgICAgICBpZiAoaGFuZGxlICE9IG51bGxwdHIpIHsKKyAgICAgICAgaGFuZGxlLT5kYXRhWzBdID0gZmQgPSA6OmFzaG1lbV9jcmVhdGVfcmVnaW9uKCJTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSIsIHNpemUpOworICAgICAgICBpZiAoaGFuZGxlLT5kYXRhWzBdID4gMCkgeworICAgICAgICAgIC8vIG1lbW9yeSBpcyBwaW5uZWQgYnkgZGVmYXVsdAorICAgICAgICAgIGJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIgKj4KKyAgICAgICAgICAgICAgKDo6bW1hcChOVUxMLCBzaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCBmZCwgMCkpOworICAgICAgICAgIGlmIChidWZmZXIgIT0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oTUFQX0ZBSUxFRCkpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIH0KKyAgICAgICAgICA6Om5hdGl2ZV9oYW5kbGVfY2xvc2UoaGFuZGxlKTsKKyAgICAgICAgfQorICAgICAgICA6Om5hdGl2ZV9oYW5kbGVfZGVsZXRlKGhhbmRsZSk7CisgICAgICAgIGhhbmRsZSA9IG51bGxwdHI7CisgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBTaGFyZWRNZW1UeXBlOjpHUkFMTE9DOiB7CisKKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgYnJlYWs7CisgIH0KKworICBpZiAoYnVmZmVyICE9IG51bGxwdHIpIHsKKyAgICBtTmF0aXZlSGFuZGxlID0gaGFuZGxlOworICAgIG1TaXplID0gc2l6ZTsKKyAgICBtQnVmZmVyID0gYnVmZmVyOworICB9Cit9CisKK1NlbnNvcnNUZXN0U2hhcmVkTWVtb3J5Ojp+U2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkoKSB7CisgIHN3aXRjaChtVHlwZSkgeworICAgIGNhc2UgU2hhcmVkTWVtVHlwZTo6QVNITUVNOiB7CisgICAgICBpZiAobVNpemUgIT0gMCkgeworICAgICAgICA6Om11bm1hcChtQnVmZmVyLCBtU2l6ZSk7CisgICAgICAgIG1CdWZmZXIgPSBudWxscHRyOworCisgICAgICAgIDo6bmF0aXZlX2hhbmRsZV9jbG9zZShtTmF0aXZlSGFuZGxlKTsKKyAgICAgICAgOjpuYXRpdmVfaGFuZGxlX2RlbGV0ZShtTmF0aXZlSGFuZGxlKTsKKworICAgICAgICBtTmF0aXZlSGFuZGxlID0gbnVsbHB0cjsKKyAgICAgICAgbVNpemUgPSAwOworICAgICAgfQorICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6IHsKKyAgICAgIGlmIChtTmF0aXZlSGFuZGxlICE9IG51bGxwdHIgfHwgbVNpemUgIT0gMCB8fCBtQnVmZmVyICE9IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIlNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5ICVwIG5vdCBwcm9wZXJseSBkZXN0cnVjdGVkOiAiCisgICAgICAgICAgICAidHlwZSAlZCwgbmF0aXZlIGhhbmRsZSAlcCwgc2l6ZSAlenUsIGJ1ZmZlciAlcCIsCisgICAgICAgICAgICB0aGlzLCBzdGF0aWNfY2FzdDxpbnQ+KG1UeXBlKSwgbU5hdGl2ZUhhbmRsZSwgbVNpemUsIG1CdWZmZXIpOworICAgICAgfQorICAgICAgYnJlYWs7CisgICAgfQorICB9Cit9CisKK1NlbnNvcnNUZXN0U2hhcmVkTWVtb3J5KiBTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeTo6Y3JlYXRlKFNoYXJlZE1lbVR5cGUgdHlwZSwgc2l6ZV90IHNpemUpIHsKKyAgY29uc3RleHByIHNpemVfdCBrTWF4U2l6ZSA9IDEyOCoxMDI0KjEwMjQ7IC8vIHNlbnNvciB0ZXN0IHNob3VsZCBub3QgbmVlZCBtb3JlIHRoYW4gMTI4TQorICBpZiAoc2l6ZSA9PSAwIHx8IHNpemUgPj0ga01heFNpemUpIHsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorCisgIGF1dG8gbSA9IG5ldyBTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSh0eXBlLCBzaXplKTsKKyAgaWYgKG0tPm1TaXplICE9IHNpemUgfHwgbS0+bUJ1ZmZlciA9PSBudWxscHRyKSB7CisgICAgZGVsZXRlIG07CisgICAgbSA9IG51bGxwdHI7CisgIH0KKyAgcmV0dXJuIG07Cit9CisKK2NsYXNzIFNlbnNvckV2ZW50c0NoZWNrZXIgeworIHB1YmxpYzoKKyAgdmlydHVhbCBib29sIGNoZWNrKGNvbnN0IHN0ZDo6dmVjdG9yPEV2ZW50PiAmZXZlbnRzLCBzdGQ6OnN0cmluZyAqb3V0KSBjb25zdCA9IDA7CisgIHZpcnR1YWwgflNlbnNvckV2ZW50c0NoZWNrZXIoKSB7fQorfTsKKworY2xhc3MgTnVsbENoZWNrZXIgOiBwdWJsaWMgU2Vuc29yRXZlbnRzQ2hlY2tlciB7CisgcHVibGljOgorICB2aXJ0dWFsIGJvb2wgY2hlY2soY29uc3Qgc3RkOjp2ZWN0b3I8RXZlbnQ+ICYsIHN0ZDo6c3RyaW5nICopIGNvbnN0IHsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorfTsKKworY2xhc3MgU2Vuc29yRXZlbnRQZXJFdmVudENoZWNrZXIgOiBwdWJsaWMgU2Vuc29yRXZlbnRzQ2hlY2tlciB7CisgcHVibGljOgorICB2aXJ0dWFsIGJvb2wgY2hlY2tFdmVudChjb25zdCBFdmVudCAmZXZlbnQsIHN0ZDo6c3RyaW5nICpvdXQpIGNvbnN0ID0gMDsKKyAgdmlydHVhbCBib29sIGNoZWNrKGNvbnN0IHN0ZDo6dmVjdG9yPEV2ZW50PiAmZXZlbnRzLCBzdGQ6OnN0cmluZyAqb3V0KSBjb25zdCB7CisgICAgZm9yIChjb25zdCBhdXRvICZlIDogZXZlbnRzKSB7CisgICAgICBpZiAoIWNoZWNrRXZlbnQoZSwgb3V0KSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOworICB9Cit9OworCitjbGFzcyBWZWMzTm9ybUNoZWNrZXIgOiBwdWJsaWMgU2Vuc29yRXZlbnRQZXJFdmVudENoZWNrZXIgeworIHB1YmxpYzoKKyAgVmVjM05vcm1DaGVja2VyKGZsb2F0IG1pbiwgZmxvYXQgbWF4KSA6IG1SYW5nZShtaW4sIG1heCkge30KKyAgc3RhdGljIFZlYzNOb3JtQ2hlY2tlciBieU5vbWluYWwoZmxvYXQgbm9taW5hbCwgZmxvYXQgYWxsb3dlZEVycm9yKSB7CisgICAgcmV0dXJuIFZlYzNOb3JtQ2hlY2tlcihub21pbmFsIC0gYWxsb3dlZEVycm9yLCBub21pbmFsICsgYWxsb3dlZEVycm9yKTsKKyAgfQorCisgIHZpcnR1YWwgYm9vbCBjaGVja0V2ZW50KGNvbnN0IEV2ZW50ICZldmVudCwgc3RkOjpzdHJpbmcgKm91dCkgY29uc3QgeworICAgIFZlYzMgdiA9IGV2ZW50LnUudmVjMzsKKyAgICBmbG9hdCBub3JtID0gc3RkOjpzcXJ0KHYueCAqIHYueCArIHYueSAqIHYueSArIHYueiAqIHYueik7CisgICAgaWYgKG5vcm0gPCBtUmFuZ2UuZmlyc3QgfHwgbm9ybSA+IG1SYW5nZS5zZWNvbmQpIHsKKyAgICAgIGlmIChvdXQgIT0gbnVsbHB0cikgeworICAgICAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gc3M7CisgICAgICAgIHNzIDw8ICJFdmVudCBAICIgPDwgZXZlbnQudGltZXN0YW1wIDw8ICIgKCIgPDwgdi54IDw8ICIsICIgPDwgdi55IDw8ICIsICIgPDwgdi56IDw8ICIpIgorICAgICAgICAgICA8PCAiIGhhcyBub3JtICIgPDwgbm9ybSA8PCAiLCB3aGljaCBpcyBiZXlvbmQgcmFuZ2UiCisgICAgICAgICAgIDw8ICIgWyIgPDwgbVJhbmdlLmZpcnN0IDw8ICIsICIgPDwgbVJhbmdlLnNlY29uZCA8PCAiXSI7CisgICAgICAgICpvdXQgPSBzcy5zdHIoKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7CisgIH0KKyBwcm90ZWN0ZWQ6CisgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+IG1SYW5nZTsKK307CisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIFNFTlNPUlMgSElETCBIQUwuCitjbGFzcyBTZW5zb3JzSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgIC8vIHN0b3AgYWxsIHNlbnNvcnMKKyAgICBmb3IgKGF1dG8gcyA6IG1TZW5zb3JIYW5kbGVzKSB7CisgICAgICBTKCktPmFjdGl2YXRlKHMsIGZhbHNlKTsKKyAgICB9CisgICAgbVNlbnNvckhhbmRsZXMuY2xlYXIoKTsKKworICAgIC8vIHN0b3AgYWxsIGRpcmVjdCByZXBvcnQgYW5kIGNoYW5uZWxzCisgICAgZm9yIChhdXRvIGMgOiBtRGlyZWN0Q2hhbm5lbEhhbmRsZXMpIHsKKyAgICAgIC8vIGRpc2FibGUgYWxsIHJlcG9ydHMKKyAgICAgIFMoKS0+Y29uZmlnRGlyZWN0UmVwb3J0KC0xLCBjLCBSYXRlTGV2ZWw6OlNUT1AsIFtdIChhdXRvLCBhdXRvKXt9KTsKKyAgICAgIFMoKS0+dW5yZWdpc3RlckRpcmVjdENoYW5uZWwoYyk7CisgICAgfQorICAgIG1EaXJlY3RDaGFubmVsSGFuZGxlcy5jbGVhcigpOworICB9CisKKyBwcm90ZWN0ZWQ6CisgIFNlbnNvckluZm8gZGVmYXVsdFNlbnNvckJ5VHlwZShTZW5zb3JUeXBlIHR5cGUpOworICBzdGQ6OnZlY3RvcjxTZW5zb3JJbmZvPiBnZXRTZW5zb3JzTGlzdCgpOworICBzdGQ6OnZlY3RvcjxFdmVudD4gY29sbGVjdEV2ZW50cyh1c2Vjb25kc190IHRpbWVMaW1pdFVzLCBzaXplX3QgbkV2ZW50TGltaXQsCisgICAgICAgIGJvb2wgY2xlYXJCZWZvcmVTdGFydCA9IHRydWUsIGJvb2wgY2hhbmdlQ29sbGVjdGlvbiA9IHRydWUpOworCisgIC8vIGltcGxlbWVudGF0aW9uIHdyYXBwZXIKKyAgUmV0dXJuPHZvaWQ+IGdldFNlbnNvcnNMaXN0KElTZW5zb3JzOjpnZXRTZW5zb3JzTGlzdF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBTKCktPmdldFNlbnNvcnNMaXN0KF9oaWRsX2NiKTsKKyAgfQorCisgIFJldHVybjxSZXN1bHQ+IGFjdGl2YXRlKAorICAgICAgICAgIGludDMyX3Qgc2Vuc29ySGFuZGxlLCBib29sIGVuYWJsZWQpOworCisgIFJldHVybjxSZXN1bHQ+IGJhdGNoKAorICAgICAgICAgIGludDMyX3Qgc2Vuc29ySGFuZGxlLAorICAgICAgICAgIGludDY0X3Qgc2FtcGxpbmdQZXJpb2ROcywKKyAgICAgICAgICBpbnQ2NF90IG1heFJlcG9ydExhdGVuY3lOcykgeworICAgIHJldHVybiBTKCktPmJhdGNoKHNlbnNvckhhbmRsZSwgc2FtcGxpbmdQZXJpb2ROcywgbWF4UmVwb3J0TGF0ZW5jeU5zKTsKKyAgfQorCisgIFJldHVybjxSZXN1bHQ+IGZsdXNoKGludDMyX3Qgc2Vuc29ySGFuZGxlKSB7CisgICAgcmV0dXJuIFMoKS0+Zmx1c2goc2Vuc29ySGFuZGxlKTsKKyAgfQorCisgIFJldHVybjxSZXN1bHQ+IGluamVjdFNlbnNvckRhdGEoY29uc3QgRXZlbnQmIGV2ZW50KSB7CisgICAgcmV0dXJuIFMoKS0+aW5qZWN0U2Vuc29yRGF0YShldmVudCk7CisgIH0KKworICBSZXR1cm48dm9pZD4gcmVnaXN0ZXJEaXJlY3RDaGFubmVsKAorICAgICAgICAgIGNvbnN0IFNoYXJlZE1lbUluZm8mIG1lbSwgSVNlbnNvcnM6OnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbF9jYiBfaGlkbF9jYik7CisKKyAgUmV0dXJuPFJlc3VsdD4gdW5yZWdpc3RlckRpcmVjdENoYW5uZWwoaW50MzJfdCBjaGFubmVsSGFuZGxlKSB7CisgICAgcmV0dXJuIFMoKS0+dW5yZWdpc3RlckRpcmVjdENoYW5uZWwoY2hhbm5lbEhhbmRsZSk7CisgIH0KKworICBSZXR1cm48dm9pZD4gY29uZmlnRGlyZWN0UmVwb3J0KAorICAgICAgICAgIGludDMyX3Qgc2Vuc29ySGFuZGxlLCBpbnQzMl90IGNoYW5uZWxIYW5kbGUsIFJhdGVMZXZlbCByYXRlLAorICAgICAgICAgIElTZW5zb3JzOjpjb25maWdEaXJlY3RSZXBvcnRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gUygpLT5jb25maWdEaXJlY3RSZXBvcnQoc2Vuc29ySGFuZGxlLCBjaGFubmVsSGFuZGxlLCByYXRlLCBfaGlkbF9jYik7CisgIH0KKworICBpbmxpbmUgc3A8SVNlbnNvcnM+JiBTKCkgeworICAgIHJldHVybiBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5zZW5zb3JzOworICB9CisKKyAgaW5saW5lIHN0YXRpYyBTZW5zb3JGbGFnQml0cyBleHRyYWN0UmVwb3J0TW9kZSh1aW50NjRfdCBmbGFnKSB7CisgICAgcmV0dXJuIChTZW5zb3JGbGFnQml0cykgKGZsYWcKKyAgICAgICAgJiAoKHVpbnQ2NF90KSBTZW5zb3JGbGFnQml0czo6Q09OVElOVU9VU19NT0RFCisgICAgICAgICAgfCAodWludDY0X3QpIFNlbnNvckZsYWdCaXRzOjpPTl9DSEFOR0VfTU9ERQorICAgICAgICAgIHwgKHVpbnQ2NF90KSBTZW5zb3JGbGFnQml0czo6T05FX1NIT1RfTU9ERQorICAgICAgICAgIHwgKHVpbnQ2NF90KSBTZW5zb3JGbGFnQml0czo6U1BFQ0lBTF9SRVBPUlRJTkdfTU9ERSkpOworICB9CisKKyAgaW5saW5lIHN0YXRpYyBib29sIGlzTWV0YVNlbnNvclR5cGUoU2Vuc29yVHlwZSB0eXBlKSB7CisgICAgcmV0dXJuICh0eXBlID09IFNlbnNvclR5cGU6Ok1FVEFfREFUQQorICAgICAgICAgICAgfHwgdHlwZSA9PSBTZW5zb3JUeXBlOjpEWU5BTUlDX1NFTlNPUl9NRVRBCisgICAgICAgICAgICB8fCB0eXBlID09IFNlbnNvclR5cGU6OkFERElUSU9OQUxfSU5GTyk7CisgIH0KKworICBpbmxpbmUgc3RhdGljIGJvb2wgaXNWYWxpZFR5cGUoU2Vuc29yVHlwZSB0eXBlKSB7CisgICAgcmV0dXJuIChpbnQzMl90KSB0eXBlID4gMDsKKyAgfQorCisgIHZvaWQgdGVzdFN0cmVhbWluZ09wZXJhdGlvbihTZW5zb3JUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMgc2FtcGxpbmdQZXJpb2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyBkdXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNlbnNvckV2ZW50c0NoZWNrZXIgJmNoZWNrZXIpOworICB2b2lkIHRlc3RTYW1wbGluZ1JhdGVIb3RTd2l0Y2hPcGVyYXRpb24oU2Vuc29yVHlwZSB0eXBlKTsKKyAgdm9pZCB0ZXN0QmF0Y2hpbmdPcGVyYXRpb24oU2Vuc29yVHlwZSB0eXBlKTsKKyAgdm9pZCB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKAorICAgICAgU2Vuc29yVHlwZSB0eXBlLCBTaGFyZWRNZW1UeXBlIG1lbVR5cGUsIFJhdGVMZXZlbCByYXRlLCBjb25zdCBTZW5zb3JFdmVudHNDaGVja2VyICZjaGVja2VyKTsKKworICBzdGF0aWMgdm9pZCBhc3NlcnRUeXBlTWF0Y2hTdHJpbmdUeXBlKFNlbnNvclR5cGUgdHlwZSwgY29uc3QgaGlkbF9zdHJpbmcmIHN0cmluZ1R5cGUpOworICBzdGF0aWMgdm9pZCBhc3NlcnRUeXBlTWF0Y2hSZXBvcnRNb2RlKFNlbnNvclR5cGUgdHlwZSwgU2Vuc29yRmxhZ0JpdHMgcmVwb3J0TW9kZSk7CisgIHN0YXRpYyB2b2lkIGFzc2VydERlbGF5TWF0Y2hSZXBvcnRNb2RlKAorICAgICAgICAgIGludDMyX3QgbWluRGVsYXksIGludDMyX3QgbWF4RGVsYXksIFNlbnNvckZsYWdCaXRzIHJlcG9ydE1vZGUpOworICBzdGF0aWMgU2Vuc29yRmxhZ0JpdHMgZXhwZWN0ZWRSZXBvcnRNb2RlRm9yVHlwZShTZW5zb3JUeXBlIHR5cGUpOworICBzdGF0aWMgYm9vbCBpc0RpcmVjdFJlcG9ydFJhdGVTdXBwb3J0ZWQoU2Vuc29ySW5mbyBzZW5zb3IsIFJhdGVMZXZlbCByYXRlKTsKKyAgc3RhdGljIGJvb2wgaXNEaXJlY3RDaGFubmVsVHlwZVN1cHBvcnRlZChTZW5zb3JJbmZvIHNlbnNvciwgU2hhcmVkTWVtVHlwZSB0eXBlKTsKKworICAvLyBjaGVja2VycworICBzdGF0aWMgY29uc3QgVmVjM05vcm1DaGVja2VyIHNBY2NlbE5vcm1DaGVja2VyOworICBzdGF0aWMgY29uc3QgVmVjM05vcm1DaGVja2VyIHNHeXJvTm9ybUNoZWNrZXI7CisKKyAgLy8gYWxsIHNlbnNvcnMgYW5kIGRpcmVjdCBjaGFubm5lbHMgdXNlZAorICBzdGQ6OnVub3JkZXJlZF9zZXQ8aW50MzJfdD4gbVNlbnNvckhhbmRsZXM7CisgIHN0ZDo6dW5vcmRlcmVkX3NldDxpbnQzMl90PiBtRGlyZWN0Q2hhbm5lbEhhbmRsZXM7Cit9OworCitjb25zdCBWZWMzTm9ybUNoZWNrZXIgU2Vuc29yc0hpZGxUZXN0OjpzQWNjZWxOb3JtQ2hlY2tlcigKKyAgICAgICAgVmVjM05vcm1DaGVja2VyOjpieU5vbWluYWwoR1JBVklUWV9FQVJUSCwgMC41Zi8qbS9zXjIqLykpOworY29uc3QgVmVjM05vcm1DaGVja2VyIFNlbnNvcnNIaWRsVGVzdDo6c0d5cm9Ob3JtQ2hlY2tlcigKKyAgICAgICAgVmVjM05vcm1DaGVja2VyOjpieU5vbWluYWwoMC5mLCAwLjFmLypyYWQvcyovKSk7CisKK1JldHVybjxSZXN1bHQ+IFNlbnNvcnNIaWRsVGVzdDo6YWN0aXZhdGUoaW50MzJfdCBzZW5zb3JIYW5kbGUsIGJvb2wgZW5hYmxlZCkgeworICAvLyBJZiBhY3RpdmF0aW5nIGEgc2Vuc29yLCBhZGQgdGhlIGhhbmRsZSBpbiBhIHNldCBzbyB0aGF0IHdoZW4gdGVzdCBmYWlscyBpdCBjYW4gYmUgdHVybmVkIG9mZi4KKyAgLy8gVGhlIGhhbmRsZSBpcyBub3QgcmVtb3ZlZCB3aGVuIGl0IGlzIGRlYWN0aXZhdGluZyBvbiBwdXJwb3NlIHNvIHRoYXQgaXQgaXMgbm90IG5lY2Vzc2FyeSB0bworICAvLyBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIGRlYWN0aXZhdGlvbi4gRGVhY3RpdmF0aW5nIGEgc2Vuc29yIG1vcmUgdGhhbiBvbmNlIGRvZXMgbm90IGhhdmUKKyAgLy8gbmVnYXRpdmUgZWZmZWN0LgorICBpZiAoZW5hYmxlZCkgeworICAgIG1TZW5zb3JIYW5kbGVzLmluc2VydChzZW5zb3JIYW5kbGUpOworICB9CisgIHJldHVybiBTKCktPmFjdGl2YXRlKHNlbnNvckhhbmRsZSwgZW5hYmxlZCk7Cit9CisKK1JldHVybjx2b2lkPiBTZW5zb3JzSGlkbFRlc3Q6OnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbCgKKyAgICBjb25zdCBTaGFyZWRNZW1JbmZvJiBtZW0sIElTZW5zb3JzOjpyZWdpc3RlckRpcmVjdENoYW5uZWxfY2IgY2IpIHsKKyAgLy8gSWYgcmVnaXN0ZXJhdGlvbiBvZiBhIGNoYW5uZWwgc3VjY2VlZHMsIGFkZCB0aGUgaGFuZGxlIG9mIGNoYW5uZWwgdG8gYSBzZXQgc28gdGhhdCBpdCBjYW4gYmUKKyAgLy8gdW5yZWdpc3RlcmVkIHdoZW4gdGVzdCBmYWlscy4gVW5yZWdpc3RlciBhIGNoYW5uZWwgZG9lcyBub3QgcmVtb3ZlIHRoZSBoYW5kbGUgb24gcHVycG9zZS4KKyAgLy8gVW5yZWdpc3RlcmluZyBhIGNoYW5uZWwgbW9yZSB0aGFuIG9uY2Ugc2hvdWxkIG5vdCBoYXZlIG5lZ2F0aXZlIGVmZmVjdC4KKyAgUygpLT5yZWdpc3RlckRpcmVjdENoYW5uZWwobWVtLAorICAgICAgWyZdIChhdXRvIHJlc3VsdCwgYXV0byBjaGFubmVsSGFuZGxlKSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgIG1EaXJlY3RDaGFubmVsSGFuZGxlcy5pbnNlcnQoY2hhbm5lbEhhbmRsZSk7CisgICAgICAgIH0KKyAgICAgICAgY2IocmVzdWx0LCBjaGFubmVsSGFuZGxlKTsKKyAgICAgIH0pOworICByZXR1cm4gVm9pZCgpOworfQorCitzdGQ6OnZlY3RvcjxFdmVudD4gU2Vuc29yc0hpZGxUZXN0Ojpjb2xsZWN0RXZlbnRzKHVzZWNvbmRzX3QgdGltZUxpbWl0VXMsIHNpemVfdCBuRXZlbnRMaW1pdCwKKyAgICAgIGJvb2wgY2xlYXJCZWZvcmVTdGFydCwgYm9vbCBjaGFuZ2VDb2xsZWN0aW9uKSB7CisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBldmVudHM7CisgIGNvbnN0ZXhwciB1c2Vjb25kc190IFNMRUVQX0dSQU5VTEFSSVRZID0gMTAwKjEwMDA7IC8vZ3JhbnVsYXJpdHkgMTAwIG1zCisKKyAgQUxPR0koImNvbGxlY3QgbWF4IG9mICV6dSBldmVudHMgZm9yICVkIHVzLCBjbGVhckJlZm9yZVN0YXJ0ICVkIiwKKyAgICAgICAgbkV2ZW50TGltaXQsIHRpbWVMaW1pdFVzLCBjbGVhckJlZm9yZVN0YXJ0KTsKKworICBpZiAoY2hhbmdlQ29sbGVjdGlvbikgeworICAgIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPnNldENvbGxlY3Rpb24odHJ1ZSk7CisgIH0KKyAgaWYgKGNsZWFyQmVmb3JlU3RhcnQpIHsKKyAgICBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5jYXRFdmVudHMobnVsbHB0cik7CisgIH0KKworICB3aGlsZSAodGltZUxpbWl0VXMgPiAwKSB7CisgICAgdXNlY29uZHNfdCBkdXJhdGlvbiA9IHN0ZDo6bWluKFNMRUVQX0dSQU5VTEFSSVRZLCB0aW1lTGltaXRVcyk7CisgICAgdXNsZWVwKGR1cmF0aW9uKTsKKyAgICB0aW1lTGltaXRVcyAtPSBkdXJhdGlvbjsKKworICAgIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPmNhdEV2ZW50cygmZXZlbnRzKTsKKyAgICBpZiAoZXZlbnRzLnNpemUoKSA+PSBuRXZlbnRMaW1pdCkgeworICAgICAgYnJlYWs7CisgICAgfQorICAgIEFMT0dWKCJ0aW1lIHRvIGdvID0gJWQsIGV2ZW50cyB0byBnbyA9ICVkIiwKKyAgICAgICAgICAoaW50KXRpbWVMaW1pdFVzLCAoaW50KShuRXZlbnRMaW1pdCAtIGV2ZW50cy5zaXplKCkpKTsKKyAgfQorCisgIGlmIChjaGFuZ2VDb2xsZWN0aW9uKSB7CisgICAgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+c2V0Q29sbGVjdGlvbihmYWxzZSk7CisgIH0KKyAgcmV0dXJuIGV2ZW50czsKK30KKwordm9pZCBTZW5zb3JzSGlkbFRlc3Q6OmFzc2VydFR5cGVNYXRjaFN0cmluZ1R5cGUoU2Vuc29yVHlwZSB0eXBlLCBjb25zdCBoaWRsX3N0cmluZyYgc3RyaW5nVHlwZSkgeworCisgIGlmICh0eXBlID49IFNlbnNvclR5cGU6OkRFVklDRV9QUklWQVRFX0JBU0UpIHsKKyAgICByZXR1cm47CisgIH0KKworICBzd2l0Y2ggKHR5cGUpIHsKKyNkZWZpbmUgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKHR5cGUpIFwKKyAgICBjYXNlIFNlbnNvclR5cGU6OnR5cGU6IEFTU0VSVF9TVFJFUShTRU5TT1JfU1RSSU5HX1RZUEVfICMjIHR5cGUsIHN0cmluZ1R5cGUuY19zdHIoKSk7IGJyZWFrOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShBQ0NFTEVST01FVEVSKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoQUNDRUxFUk9NRVRFUl9VTkNBTElCUkFURUQpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShBRERJVElPTkFMX0lORk8pOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShBTUJJRU5UX1RFTVBFUkFUVVJFKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoREVWSUNFX09SSUVOVEFUSU9OKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoRFlOQU1JQ19TRU5TT1JfTUVUQSk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEdBTUVfUk9UQVRJT05fVkVDVE9SKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoR0VPTUFHTkVUSUNfUk9UQVRJT05fVkVDVE9SKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoR0xBTkNFX0dFU1RVUkUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHUkFWSVRZKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoR1lST1NDT1BFKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoR1lST1NDT1BFX1VOQ0FMSUJSQVRFRCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEhFQVJUX0JFQVQpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShIRUFSVF9SQVRFKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoTElHSFQpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShMSU5FQVJfQUNDRUxFUkFUSU9OKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoTE9XX0xBVEVOQ1lfT0ZGQk9EWV9ERVRFQ1QpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShNQUdORVRJQ19GSUVMRCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKE1BR05FVElDX0ZJRUxEX1VOQ0FMSUJSQVRFRCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKE1PVElPTl9ERVRFQ1QpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShPUklFTlRBVElPTik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFBJQ0tfVVBfR0VTVFVSRSk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFBPU0VfNkRPRik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFBSRVNTVVJFKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoUFJPWElNSVRZKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoUkVMQVRJVkVfSFVNSURJVFkpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShST1RBVElPTl9WRUNUT1IpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShTSUdOSUZJQ0FOVF9NT1RJT04pOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShTVEFUSU9OQVJZX0RFVEVDVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFNURVBfQ09VTlRFUik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFNURVBfREVURUNUT1IpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShURU1QRVJBVFVSRSk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFRJTFRfREVURUNUT1IpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShXQUtFX0dFU1RVUkUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShXUklTVF9USUxUX0dFU1RVUkUpOworICAgIGRlZmF1bHQ6CisgICAgICBGQUlMKCkgPDwgIlR5cGUgIiA8PCBzdGF0aWNfY2FzdDxpbnQ+KHR5cGUpIDw8ICIgaW4gYW5kcm9pZCBkZWZpbmVkIHJhbmdlIGlzIG5vdCBjaGVja2VkLCAiCisgICAgICAgICAgICAgPDwgInN0cmluZ1R5cGUgPSAiIDw8IHN0cmluZ1R5cGU7CisjdW5kZWYgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFCisgIH0KK30KKwordm9pZCBTZW5zb3JzSGlkbFRlc3Q6OmFzc2VydFR5cGVNYXRjaFJlcG9ydE1vZGUoU2Vuc29yVHlwZSB0eXBlLCBTZW5zb3JGbGFnQml0cyByZXBvcnRNb2RlKSB7CisgIGlmICh0eXBlID49IFNlbnNvclR5cGU6OkRFVklDRV9QUklWQVRFX0JBU0UpIHsKKyAgICByZXR1cm47CisgIH0KKworICBTZW5zb3JGbGFnQml0cyBleHBlY3RlZCA9IGV4cGVjdGVkUmVwb3J0TW9kZUZvclR5cGUodHlwZSk7CisKKyAgQVNTRVJUX1RSVUUoZXhwZWN0ZWQgPT0gKFNlbnNvckZsYWdCaXRzKSAtMSB8fCBleHBlY3RlZCA9PSByZXBvcnRNb2RlKQorICAgICAgPDwgInJlcG9ydE1vZGU9IiA8PCBzdGF0aWNfY2FzdDxpbnQ+KHJlcG9ydE1vZGUpCisgICAgICA8PCAiZXhwZWN0ZWQ9IiA8PCBzdGF0aWNfY2FzdDxpbnQ+KGV4cGVjdGVkKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbFRlc3Q6OmFzc2VydERlbGF5TWF0Y2hSZXBvcnRNb2RlKAorICAgIGludDMyX3QgbWluRGVsYXksIGludDMyX3QgbWF4RGVsYXksIFNlbnNvckZsYWdCaXRzIHJlcG9ydE1vZGUpIHsKKyAgc3dpdGNoKHJlcG9ydE1vZGUpIHsKKyAgICBjYXNlIFNlbnNvckZsYWdCaXRzOjpDT05USU5VT1VTX01PREU6CisgICAgICBBU1NFUlRfTFQoMCwgbWluRGVsYXkpOworICAgICAgQVNTRVJUX0xFKDAsIG1heERlbGF5KTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgU2Vuc29yRmxhZ0JpdHM6Ok9OX0NIQU5HRV9NT0RFOgorICAgICAgQVNTRVJUX0xFKDAsIG1pbkRlbGF5KTsKKyAgICAgIEFTU0VSVF9MRSgwLCBtYXhEZWxheSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnNvckZsYWdCaXRzOjpPTkVfU0hPVF9NT0RFOgorICAgICAgQVNTRVJUX0VRKC0xLCBtaW5EZWxheSk7CisgICAgICBBU1NFUlRfRVEoMCwgbWF4RGVsYXkpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW5zb3JGbGFnQml0czo6U1BFQ0lBTF9SRVBPUlRJTkdfTU9ERToKKyAgICAgIC8vIGRvIG5vdCBlbmZvcmNlIGFueXRoaW5nIGZvciBzcGVjaWFsIHJlcG9ydGluZyBtb2RlCisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgRkFJTCgpIDw8ICJSZXBvcnQgbW9kZSAiIDw8IHN0YXRpY19jYXN0PGludD4ocmVwb3J0TW9kZSkgPDwgIiBub3QgY2hlY2tlZCI7CisgIH0KK30KKworLy8gcmV0dXJuIC0xIG1lYW5zIG5vIGV4cGVjdGF0aW9uIGZvciB0aGlzIHR5cGUKK1NlbnNvckZsYWdCaXRzIFNlbnNvcnNIaWRsVGVzdDo6ZXhwZWN0ZWRSZXBvcnRNb2RlRm9yVHlwZShTZW5zb3JUeXBlIHR5cGUpIHsKKyAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6R1lST1NDT1BFOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQ6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpPUklFTlRBVElPTjoKKyAgICBjYXNlIFNlbnNvclR5cGU6OlBSRVNTVVJFOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6VEVNUEVSQVRVUkU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpHUkFWSVRZOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6TElORUFSX0FDQ0VMRVJBVElPTjoKKyAgICBjYXNlIFNlbnNvclR5cGU6OlJPVEFUSU9OX1ZFQ1RPUjoKKyAgICBjYXNlIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEX1VOQ0FMSUJSQVRFRDoKKyAgICBjYXNlIFNlbnNvclR5cGU6OkdBTUVfUk9UQVRJT05fVkVDVE9SOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6R1lST1NDT1BFX1VOQ0FMSUJSQVRFRDoKKyAgICBjYXNlIFNlbnNvclR5cGU6OkdFT01BR05FVElDX1JPVEFUSU9OX1ZFQ1RPUjoKKyAgICBjYXNlIFNlbnNvclR5cGU6OlBPU0VfNkRPRjoKKyAgICBjYXNlIFNlbnNvclR5cGU6OkhFQVJUX0JFQVQ6CisgICAgICByZXR1cm4gU2Vuc29yRmxhZ0JpdHM6OkNPTlRJTlVPVVNfTU9ERTsKKworICAgIGNhc2UgU2Vuc29yVHlwZTo6TElHSFQ6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpQUk9YSU1JVFk6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpSRUxBVElWRV9IVU1JRElUWToKKyAgICBjYXNlIFNlbnNvclR5cGU6OkFNQklFTlRfVEVNUEVSQVRVUkU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpIRUFSVF9SQVRFOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6REVWSUNFX09SSUVOVEFUSU9OOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6TU9USU9OX0RFVEVDVDoKKyAgICBjYXNlIFNlbnNvclR5cGU6OlNURVBfQ09VTlRFUjoKKyAgICBjYXNlIFNlbnNvclR5cGU6OkxPV19MQVRFTkNZX09GRkJPRFlfREVURUNUOgorICAgICAgcmV0dXJuIFNlbnNvckZsYWdCaXRzOjpPTl9DSEFOR0VfTU9ERTsKKworICAgIGNhc2UgU2Vuc29yVHlwZTo6U0lHTklGSUNBTlRfTU9USU9OOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6V0FLRV9HRVNUVVJFOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6R0xBTkNFX0dFU1RVUkU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpQSUNLX1VQX0dFU1RVUkU6CisgICAgICByZXR1cm4gU2Vuc29yRmxhZ0JpdHM6Ok9ORV9TSE9UX01PREU7CisKKyAgICBjYXNlIFNlbnNvclR5cGU6OlNURVBfREVURUNUT1I6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpUSUxUX0RFVEVDVE9SOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6V1JJU1RfVElMVF9HRVNUVVJFOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6RFlOQU1JQ19TRU5TT1JfTUVUQToKKyAgICAgIHJldHVybiBTZW5zb3JGbGFnQml0czo6U1BFQ0lBTF9SRVBPUlRJTkdfTU9ERTsKKworICAgIGRlZmF1bHQ6CisgICAgICBBTE9HVygiVHlwZSAlZCBpcyBub3QgaW1wbGVtZW50ZWQgaW4gZXhwZWN0ZWRSZXBvcnRNb2RlRm9yVHlwZSIsIChpbnQpdHlwZSk7CisgICAgICByZXR1cm4gKFNlbnNvckZsYWdCaXRzKS0xOworICB9Cit9CisKK2Jvb2wgU2Vuc29yc0hpZGxUZXN0Ojppc0RpcmVjdFJlcG9ydFJhdGVTdXBwb3J0ZWQoU2Vuc29ySW5mbyBzZW5zb3IsIFJhdGVMZXZlbCByYXRlKSB7CisgIHVuc2lnbmVkIGludCByID0KKyAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oc2Vuc29yLmZsYWdzICYgU2Vuc29yRmxhZ0JpdHM6Ok1BU0tfRElSRUNUX1JFUE9SVCkKKyAgICAgICAgPj4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihTZW5zb3JGbGFnU2hpZnQ6OkRJUkVDVF9SRVBPUlQpOworICByZXR1cm4gciA+PSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHJhdGUpOworfQorCitib29sIFNlbnNvcnNIaWRsVGVzdDo6aXNEaXJlY3RDaGFubmVsVHlwZVN1cHBvcnRlZChTZW5zb3JJbmZvIHNlbnNvciwgU2hhcmVkTWVtVHlwZSB0eXBlKSB7CisgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgU2hhcmVkTWVtVHlwZTo6QVNITUVNOgorICAgICAgcmV0dXJuIChzZW5zb3IuZmxhZ3MgJiBTZW5zb3JGbGFnQml0czo6RElSRUNUX0NIQU5ORUxfQVNITUVNKSAhPSAwOworICAgIGNhc2UgU2hhcmVkTWVtVHlwZTo6R1JBTExPQzoKKyAgICAgIHJldHVybiAoc2Vuc29yLmZsYWdzICYgU2Vuc29yRmxhZ0JpdHM6OkRJUkVDVF9DSEFOTkVMX0dSQUxMT0MpICE9IDA7CisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgfQorfQorCitTZW5zb3JJbmZvIFNlbnNvcnNIaWRsVGVzdDo6ZGVmYXVsdFNlbnNvckJ5VHlwZShTZW5zb3JUeXBlIHR5cGUpIHsKKyAgU2Vuc29ySW5mbyByZXQ7CisKKyAgcmV0LnR5cGUgPSAoU2Vuc29yVHlwZSkgLTE7CisgIFMoKS0+Z2V0U2Vuc29yc0xpc3QoCisgICAgICBbJl0gKGNvbnN0IGF1dG8gJmxpc3QpIHsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGNvdW50ID0gbGlzdC5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgIGlmIChsaXN0W2ldLnR5cGUgPT0gdHlwZSkgeworICAgICAgICAgICAgcmV0ID0gbGlzdFtpXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0pOworCisgIHJldHVybiByZXQ7Cit9CisKK3N0ZDo6dmVjdG9yPFNlbnNvckluZm8+IFNlbnNvcnNIaWRsVGVzdDo6Z2V0U2Vuc29yc0xpc3QoKSB7CisgIHN0ZDo6dmVjdG9yPFNlbnNvckluZm8+IHJldDsKKworICBTKCktPmdldFNlbnNvcnNMaXN0KAorICAgICAgWyZdIChjb25zdCBhdXRvICZsaXN0KSB7CisgICAgICAgIGNvbnN0IHNpemVfdCBjb3VudCA9IGxpc3Quc2l6ZSgpOworICAgICAgICByZXQucmVzZXJ2ZShsaXN0LnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgIHJldC5wdXNoX2JhY2sobGlzdFtpXSk7CisgICAgICAgIH0KKyAgICAgIH0pOworCisgIHJldHVybiByZXQ7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGxpc3QgcmV0dXJuZWQgaXMgdmFsaWQKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIFNlbnNvckxpc3RWYWxpZCkgeworICBTKCktPmdldFNlbnNvcnNMaXN0KAorICAgICAgWyZdIChjb25zdCBhdXRvICZsaXN0KSB7CisgICAgICAgIGNvbnN0IHNpemVfdCBjb3VudCA9IGxpc3Quc2l6ZSgpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICBjb25zdCBhdXRvICZzID0gbGlzdFtpXTsKKyAgICAgICAgICBTQ09QRURfVFJBQ0UoOjp0ZXN0aW5nOjpNZXNzYWdlKCkgPDwgaSA8PCAiLyIgPDwgY291bnQgPDwgIjogIgorICAgICAgICAgICAgICAgICAgICAgICA8PCAiIGhhbmRsZT0weCIgPDwgc3RkOjpoZXggPDwgc3RkOjpzZXR3KDgpIDw8IHN0ZDo6c2V0ZmlsbCgnMCcpCisgICAgICAgICAgICAgICAgICAgICAgIDw8IHMuc2Vuc29ySGFuZGxlIDw8IHN0ZDo6ZGVjCisgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgdHlwZT0iIDw8IHN0YXRpY19jYXN0PGludD4ocy50eXBlKQorICAgICAgICAgICAgICAgICAgICAgICA8PCAiIG5hbWU9IiA8PCBzLm5hbWUpOworCisgICAgICAgICAgLy8gVGVzdCBub24tZW1wdHkgdHlwZSBzdHJpbmcKKyAgICAgICAgICBFWFBFQ1RfRkFMU0Uocy50eXBlQXNTdHJpbmcuZW1wdHkoKSk7CisKKyAgICAgICAgICAvLyBUZXN0IGRlZmluZWQgdHlwZSBtYXRjaGVzIGRlZmluZWQgc3RyaW5nIHR5cGUKKyAgICAgICAgICBFWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRShhc3NlcnRUeXBlTWF0Y2hTdHJpbmdUeXBlKHMudHlwZSwgcy50eXBlQXNTdHJpbmcpKTsKKworICAgICAgICAgIC8vIFRlc3QgaWYgYWxsIHNlbnNvciBoYXMgbmFtZSBhbmQgdmVuZG9yCisgICAgICAgICAgRVhQRUNUX0ZBTFNFKHMubmFtZS5lbXB0eSgpKTsKKyAgICAgICAgICBFWFBFQ1RfRkFMU0Uocy52ZW5kb3IuZW1wdHkoKSk7CisKKyAgICAgICAgICAvLyBUZXN0IHBvd2VyID4gMCwgbWF4UmFuZ2UgPiAwCisgICAgICAgICAgRVhQRUNUX0xFKDAsIHMucG93ZXIpOworICAgICAgICAgIEVYUEVDVF9MVCgwLCBzLm1heFJhbmdlKTsKKworICAgICAgICAgIC8vIEluZm8gdHlwZSwgc2hvdWxkIGhhdmUgbm8gc2Vuc29yCisgICAgICAgICAgRVhQRUNUX0ZBTFNFKAorICAgICAgICAgICAgICBzLnR5cGUgPT0gU2Vuc29yVHlwZTo6QURESVRJT05BTF9JTkZPCisgICAgICAgICAgICAgIHx8IHMudHlwZSA9PSBTZW5zb3JUeXBlOjpNRVRBX0RBVEEpOworCisgICAgICAgICAgLy8gVGVzdCBmaWZvTWF4ID49IGZpZm9SZXNlcnZlZAorICAgICAgICAgIEVYUEVDVF9HRShzLmZpZm9NYXhFdmVudENvdW50LCBzLmZpZm9SZXNlcnZlZEV2ZW50Q291bnQpCisgICAgICAgICAgICAgIDw8ICJtYXg9IiA8PCBzLmZpZm9NYXhFdmVudENvdW50IDw8ICIgcmVzZXJ2ZWQ9IiA8PCBzLmZpZm9SZXNlcnZlZEV2ZW50Q291bnQ7CisKKyAgICAgICAgICAvLyBUZXN0IFJlcG9ydGluZyBtb2RlIHZhbGlkCisgICAgICAgICAgRVhQRUNUX05PX0ZBVEFMX0ZBSUxVUkUoYXNzZXJ0VHlwZU1hdGNoUmVwb3J0TW9kZShzLnR5cGUsIGV4dHJhY3RSZXBvcnRNb2RlKHMuZmxhZ3MpKSk7CisKKyAgICAgICAgICAvLyBUZXN0IG1pbiBtYXggYXJlIGluIHRoZSByaWdodCBvcmRlcgorICAgICAgICAgIEVYUEVDVF9MRShzLm1pbkRlbGF5LCBzLm1heERlbGF5KTsKKyAgICAgICAgICAvLyBUZXN0IG1pbi9tYXggZGVsYXkgbWF0Y2hlcyByZXBvcnRpbmcgbW9kZQorICAgICAgICAgIEVYUEVDVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgICAgICAgICBhc3NlcnREZWxheU1hdGNoUmVwb3J0TW9kZShzLm1pbkRlbGF5LCBzLm1heERlbGF5LCBleHRyYWN0UmVwb3J0TW9kZShzLmZsYWdzKSkpOworICAgICAgICB9CisgICAgICB9KTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgbGlzdCByZXR1cm5lZCBpcyB2YWxpZAorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgU2V0T3BlcmF0aW9uTW9kZSkgeworICAgIHN0ZDo6dmVjdG9yPFNlbnNvckluZm8+IHNlbnNvckxpc3QgPSBnZXRTZW5zb3JzTGlzdCgpOworCisgICAgYm9vbCBuZWVkT3BlcmF0aW9uTW9kZVN1cHBvcnQgPQorICAgICAgICBzdGQ6OmFueV9vZihzZW5zb3JMaXN0LmJlZ2luKCksIHNlbnNvckxpc3QuZW5kKCksCisgICAgICAgICAgICAgICAgICAgIFtdIChjb25zdCBhdXRvJiBzKSB7CisgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChzLmZsYWdzICYgU2Vuc29yRmxhZ0JpdHM6OkRBVEFfSU5KRUNUSU9OKSAhPSAwOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICBpZiAoIW5lZWRPcGVyYXRpb25Nb2RlU3VwcG9ydCkgeworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCBTKCktPnNldE9wZXJhdGlvbk1vZGUoT3BlcmF0aW9uTW9kZTo6Tk9STUFMKSk7CisgICAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIFMoKS0+c2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlOjpEQVRBX0lOSkVDVElPTikpOworICAgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCBTKCktPnNldE9wZXJhdGlvbk1vZGUoT3BlcmF0aW9uTW9kZTo6Tk9STUFMKSk7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGxpc3QgcmV0dXJuZWQgaXMgdmFsaWQKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEluamVjdFNlbnNvckV2ZW50RGF0YSkgeworICAgIHN0ZDo6dmVjdG9yPFNlbnNvckluZm8+IHNlbnNvckxpc3QgPSBnZXRTZW5zb3JzTGlzdCgpOworICAgIHN0ZDo6dmVjdG9yPFNlbnNvckluZm8+IHNlbnNvclN1cHBvcnRJbmplY3Rpb247CisKKyAgICBib29sIG5lZWRPcGVyYXRpb25Nb2RlU3VwcG9ydCA9CisgICAgICAgIHN0ZDo6YW55X29mKHNlbnNvckxpc3QuYmVnaW4oKSwgc2Vuc29yTGlzdC5lbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgWyZzZW5zb3JTdXBwb3J0SW5qZWN0aW9uXSAoY29uc3QgYXV0byYgcykgeworICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcmV0ID0gKHMuZmxhZ3MgJiBTZW5zb3JGbGFnQml0czo6REFUQV9JTkpFQ1RJT04pICE9IDA7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHJldCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2Vuc29yU3VwcG9ydEluamVjdGlvbi5wdXNoX2JhY2socyk7CisgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgIGlmICghbmVlZE9wZXJhdGlvbk1vZGVTdXBwb3J0KSB7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIFMoKS0+c2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlOjpOT1JNQUwpKTsKKyAgICBBU1NFUlRfRVEoUmVzdWx0OjpPSywgUygpLT5zZXRPcGVyYXRpb25Nb2RlKE9wZXJhdGlvbk1vZGU6OkRBVEFfSU5KRUNUSU9OKSk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8gJnMgOiBzZW5zb3JTdXBwb3J0SW5qZWN0aW9uKSB7CisgICAgICBzd2l0Y2ggKHMudHlwZSkgeworICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVI6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R1lST1NDT1BFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEOiB7CisgICAgICAgICAgdXNsZWVwKDEwMDAwMCk7IC8vIHNsZWVwIDEwMG1zCisKKyAgICAgICAgICBFdmVudCBkdW1teTsKKyAgICAgICAgICBkdW1teS50aW1lc3RhbXAgPSBhbmRyb2lkOjplbGFwc2VkUmVhbHRpbWVOYW5vKCk7CisgICAgICAgICAgZHVtbXkuc2Vuc29yVHlwZSA9IHMudHlwZTsKKyAgICAgICAgICBkdW1teS5zZW5zb3JIYW5kbGUgPSBzLnNlbnNvckhhbmRsZTsKKyAgICAgICAgICBWZWMzIHYgPSB7MSwgMiwgMywgU2Vuc29yU3RhdHVzOjpBQ0NVUkFDWV9ISUdIfTsKKyAgICAgICAgICBkdW1teS51LnZlYzMgPSB2OworCisgICAgICAgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIFMoKS0+aW5qZWN0U2Vuc29yRGF0YShkdW1teSkpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorICAgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCBTKCktPnNldE9wZXJhdGlvbk1vZGUoT3BlcmF0aW9uTW9kZTo6Tk9STUFMKSk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxUZXN0Ojp0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyBzYW1wbGluZ1BlcmlvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGR1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU2Vuc29yRXZlbnRzQ2hlY2tlciAmY2hlY2tlcikgeworICBzdGQ6OnZlY3RvcjxFdmVudD4gZXZlbnRzOworCisgIGNvbnN0IGludDY0X3Qgc2FtcGxpbmdQZXJpb2RJbk5zID0gc2FtcGxpbmdQZXJpb2QuY291bnQoKTsKKyAgY29uc3QgaW50NjRfdCBiYXRjaGluZ1BlcmlvZEluTnMgPSAwOyAvLyBubyBiYXRjaGluZworICBjb25zdCB1c2Vjb25kc190IG1pblRpbWVVcyA9IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMoZHVyYXRpb24pLmNvdW50KCk7CisgIGNvbnN0IHNpemVfdCBtaW5ORXZlbnQgPSBkdXJhdGlvbiAvIHNhbXBsaW5nUGVyaW9kOworCisgIFNlbnNvckluZm8gc2Vuc29yID0gZGVmYXVsdFNlbnNvckJ5VHlwZSh0eXBlKTsKKworICBpZiAoIWlzVmFsaWRUeXBlKHNlbnNvci50eXBlKSkgeworICAgIC8vIG5vIGRlZmF1bHQgc2Vuc29yIG9mIHRoaXMgdHlwZQorICAgIHJldHVybjsKKyAgfQorCisgIGlmIChzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzKHNlbnNvci5taW5EZWxheSkgPiBzYW1wbGluZ1BlcmlvZCkgeworICAgIC8vIHJhdGUgbm90IHN1cHBvcnRlZAorICAgIHJldHVybjsKKyAgfQorCisgIGludDMyX3QgaGFuZGxlID0gc2Vuc29yLnNlbnNvckhhbmRsZTsKKworICBBU1NFUlRfRVEoYmF0Y2goaGFuZGxlLCBzYW1wbGluZ1BlcmlvZEluTnMsIGJhdGNoaW5nUGVyaW9kSW5OcyksIFJlc3VsdDo6T0spOworICBBU1NFUlRfRVEoYWN0aXZhdGUoaGFuZGxlLCAxKSwgUmVzdWx0OjpPSyk7CisgIGV2ZW50cyA9IGNvbGxlY3RFdmVudHMobWluVGltZVVzLCBtaW5ORXZlbnQsIHRydWUgLypjbGVhckJlZm9yZVN0YXJ0Ki8pOworICBBU1NFUlRfRVEoYWN0aXZhdGUoaGFuZGxlLCAwKSwgUmVzdWx0OjpPSyk7CisKKyAgQUxPR0koIkNvbGxlY3RlZCAlenUgc2FtcGxlcyIsIGV2ZW50cy5zaXplKCkpOworCisgIEFTU0VSVF9HVChldmVudHMuc2l6ZSgpLCAwdSk7CisKKyAgc2l6ZV90IG5SZWFsRXZlbnQgPSAwOworICBib29sIGhhbmRsZU1pc21hdGNoUmVwb3J0ZWQgPSBmYWxzZTsKKyAgYm9vbCBtZXRhU2Vuc29yVHlwZUVycm9yUmVwb3J0ZWQgPSBmYWxzZTsKKyAgZm9yIChhdXRvICYgZSA6IGV2ZW50cykgeworICAgIGlmIChlLnNlbnNvclR5cGUgPT0gdHlwZSkgeworICAgICAgLy8gYXZvaWQgZ2VuZXJhdGluZyBodW5kcmVkcyBvZiBlcnJvcgorICAgICAgaWYgKCFoYW5kbGVNaXNtYXRjaFJlcG9ydGVkKSB7CisgICAgICAgIEVYUEVDVF9FUShlLnNlbnNvckhhbmRsZSwgaGFuZGxlKQorICAgICAgICAgICAgPDwgKGhhbmRsZU1pc21hdGNoUmVwb3J0ZWQgPSB0cnVlLAorICAgICAgICAgICAgICAgICJFdmVudCBvZiB0aGUgc2FtZSB0eXBlIG11c3QgY29tZSBmcm9tIHRoZSBzZW5zb3IgcmVnaXN0ZXJlZCIpOworICAgICAgfQorICAgICAgKysgblJlYWxFdmVudDsKKyAgICB9IGVsc2UgeworICAgICAgLy8gYXZvaWQgZ2VuZXJhdGluZyBodW5kcmVkcyBvZiBlcnJvcgorICAgICAgaWYgKCFtZXRhU2Vuc29yVHlwZUVycm9yUmVwb3J0ZWQpIHsKKyAgICAgICAgRVhQRUNUX1RSVUUoaXNNZXRhU2Vuc29yVHlwZShlLnNlbnNvclR5cGUpKQorICAgICAgICAgICAgPDwgKG1ldGFTZW5zb3JUeXBlRXJyb3JSZXBvcnRlZCA9IHRydWUsCisgICAgICAgICAgICAgICAgIk9ubHkgbWV0YSB0eXBlcyBhcmUgYWxsb3dlZCBiZXNpZGVzIHRoZSB0eXBlIHJlZ2lzdGVyZWQiKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICBzdGQ6OnN0cmluZyBzOworICBFWFBFQ1RfVFJVRShjaGVja2VyLmNoZWNrKGV2ZW50cywgJnMpKSA8PCBzOworCisgIEVYUEVDVF9HRShuUmVhbEV2ZW50LCBtaW5ORXZlbnQgLyAyKTsgLy8gbWFrZSBzdXJlIHJldHVybmVkIGV2ZW50cyBhcmUgbm90IGFsbCBtZXRhCit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gVUkgc3BlZWQgYWNjZWxlcm9tZXRlciBzdHJlYW1pbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJTdHJlYW1pbmdPcGVyYXRpb25TbG93KSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDIwMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc0FjY2VsTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIG5vcm1hbCBzcGVlZCBhY2NlbGVyb21ldGVyIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgQWNjZWxlcm9tZXRlclN0cmVhbWluZ09wZXJhdGlvbk5vcm1hbCkgeworICB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygyMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc0FjY2VsTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIGdhbWUgc3BlZWQgYWNjZWxlcm9tZXRlciBzdHJlYW1pbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJTdHJlYW1pbmdPcGVyYXRpb25GYXN0KSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNBY2NlbE5vcm1DaGVja2VyKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBVSSBzcGVlZCBneXJvc2NvcGUgc3RyZWFtaW5nIHByb3Blcmx5CitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVTdHJlYW1pbmdPcGVyYXRpb25TbG93KSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6R1lST1NDT1BFLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzR3lyb05vcm1DaGVja2VyKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBub3JtYWwgc3BlZWQgZ3lyb3Njb3BlIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgR3lyb3Njb3BlU3RyZWFtaW5nT3BlcmF0aW9uTm9ybWFsKSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6R1lST1NDT1BFLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjApLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNHeXJvTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIGdhbWUgc3BlZWQgZ3lyb3Njb3BlIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgR3lyb3Njb3BlU3RyZWFtaW5nT3BlcmF0aW9uRmFzdCkgeworICB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGU6OkdZUk9TQ09QRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNHeXJvTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIFVJIHNwZWVkIG1hZ25ldG9tZXRlciBzdHJlYW1pbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIE1hZ25ldG9tZXRlclN0cmVhbWluZ09wZXJhdGlvblNsb3cpIHsKKyAgdGVzdFN0cmVhbWluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDIwMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgTnVsbENoZWNrZXIoKSk7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gbm9ybWFsIHNwZWVkIG1hZ25ldG9tZXRlciBzdHJlYW1pbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIE1hZ25ldG9tZXRlclN0cmVhbWluZ09wZXJhdGlvbk5vcm1hbCkgeworICB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjApLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIE51bGxDaGVja2VyKCkpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIGdhbWUgc3BlZWQgbWFnbmV0b21ldGVyIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyU3RyZWFtaW5nT3BlcmF0aW9uRmFzdCkgeworICB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgTnVsbENoZWNrZXIoKSk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxUZXN0Ojp0ZXN0U2FtcGxpbmdSYXRlSG90U3dpdGNoT3BlcmF0aW9uKFNlbnNvclR5cGUgdHlwZSkgeworICBzdGQ6OnZlY3RvcjxFdmVudD4gZXZlbnRzMSwgZXZlbnRzMjsKKworICBjb25zdGV4cHIgaW50NjRfdCBiYXRjaGluZ1BlcmlvZEluTnMgPSAwOyAvLyBubyBiYXRjaGluZworICBjb25zdGV4cHIgc2l6ZV90IG1pbk5FdmVudCA9IDUwOworCisgIFNlbnNvckluZm8gc2Vuc29yID0gZGVmYXVsdFNlbnNvckJ5VHlwZSh0eXBlKTsKKworICBpZiAoIWlzVmFsaWRUeXBlKHNlbnNvci50eXBlKSkgeworICAgIC8vIG5vIGRlZmF1bHQgc2Vuc29yIG9mIHRoaXMgdHlwZQorICAgIHJldHVybjsKKyAgfQorCisgIGludDMyX3QgaGFuZGxlID0gc2Vuc29yLnNlbnNvckhhbmRsZTsKKyAgaW50NjRfdCBtaW5TYW1wbGluZ1BlcmlvZEluTnMgPSBzZW5zb3IubWluRGVsYXkgKiAxMDAwbGw7CisgIGludDY0X3QgbWF4U2FtcGxpbmdQZXJpb2RJbk5zID0gc2Vuc29yLm1heERlbGF5ICogMTAwMGxsOworCisgIGlmIChtaW5TYW1wbGluZ1BlcmlvZEluTnMgPT0gbWF4U2FtcGxpbmdQZXJpb2RJbk5zKSB7CisgICAgLy8gb25seSBzdXBwb3J0IHNpbmdsZSByYXRlCisgICAgcmV0dXJuOworICB9CisKKyAgQVNTRVJUX0VRKGJhdGNoKGhhbmRsZSwgbWluU2FtcGxpbmdQZXJpb2RJbk5zLCBiYXRjaGluZ1BlcmlvZEluTnMpLCBSZXN1bHQ6Ok9LKTsKKyAgQVNTRVJUX0VRKGFjdGl2YXRlKGhhbmRsZSwgMSksIFJlc3VsdDo6T0spOworCisgIHVzbGVlcCg1MDAwMDApOyAvLyBzbGVlcCAwLjUgc2VjIHRvIHdhaXQgZm9yIGNoYW5nZSByYXRlIHRvIGhhcHBlbgorICBldmVudHMxID0gY29sbGVjdEV2ZW50cyhzZW5zb3IubWluRGVsYXkgKiBtaW5ORXZlbnQsIG1pbk5FdmVudCwgdHJ1ZSAvKmNsZWFyQmVmb3JlU3RhcnQqLyk7CisKKyAgQVNTRVJUX0VRKGJhdGNoKGhhbmRsZSwgbWF4U2FtcGxpbmdQZXJpb2RJbk5zLCBiYXRjaGluZ1BlcmlvZEluTnMpLCBSZXN1bHQ6Ok9LKTsKKworICB1c2xlZXAoNTAwMDAwKTsgLy8gc2xlZXAgMC41IHNlYyB0byB3YWl0IGZvciBjaGFuZ2UgcmF0ZSB0byBoYXBwZW4KKyAgZXZlbnRzMiA9IGNvbGxlY3RFdmVudHMoc2Vuc29yLm1heERlbGF5ICogbWluTkV2ZW50LCBtaW5ORXZlbnQsIHRydWUgLypjbGVhckJlZm9yZVN0YXJ0Ki8pOworCisgIEFTU0VSVF9FUShhY3RpdmF0ZShoYW5kbGUsIDApLCBSZXN1bHQ6Ok9LKTsKKworICBBTE9HSSgiQ29sbGVjdGVkICV6dSBmYXN0IHNhbXBsZXMgYW5kICV6dSBzbG93IHNhbXBsZXMiLCBldmVudHMxLnNpemUoKSwgZXZlbnRzMi5zaXplKCkpOworCisgIEFTU0VSVF9HVChldmVudHMxLnNpemUoKSwgMHUpOworICBBU1NFUlRfR1QoZXZlbnRzMi5zaXplKCksIDB1KTsKKworICBpbnQ2NF90IG1pbkRlbGF5QXZlcmFnZUludGVydmFsLCBtYXhEZWxheUF2ZXJhZ2VJbnRlcnZhbDsKKworICBzaXplX3QgbkV2ZW50ID0gMDsKKyAgaW50NjRfdCBwcmV2VGltZXN0YW1wID0gLTE7CisgIGludDY0X3QgdGltZXN0YW1wSW50ZXJ2YWwgPSAwOworICBmb3IgKGF1dG8gJiBlIDogZXZlbnRzMSkgeworICAgIGlmIChlLnNlbnNvclR5cGUgPT0gdHlwZSkgeworICAgICAgQVNTRVJUX0VRKGUuc2Vuc29ySGFuZGxlLCBoYW5kbGUpOworICAgICAgaWYgKHByZXZUaW1lc3RhbXAgPiAwKSB7CisgICAgICAgIHRpbWVzdGFtcEludGVydmFsICs9IGUudGltZXN0YW1wIC0gcHJldlRpbWVzdGFtcDsKKyAgICAgIH0KKyAgICAgIHByZXZUaW1lc3RhbXAgPSBlLnRpbWVzdGFtcDsKKyAgICAgICsrIG5FdmVudDsKKyAgICB9CisgIH0KKyAgQVNTRVJUX0dUKG5FdmVudCwgMnUpOworICBtaW5EZWxheUF2ZXJhZ2VJbnRlcnZhbCA9IHRpbWVzdGFtcEludGVydmFsIC8gKG5FdmVudCAtIDEpOworCisgIG5FdmVudCA9IDA7CisgIHByZXZUaW1lc3RhbXAgPSAtMTsKKyAgdGltZXN0YW1wSW50ZXJ2YWwgPSAwOworICBmb3IgKGF1dG8gJiBlIDogZXZlbnRzMikgeworICAgIGlmIChlLnNlbnNvclR5cGUgPT0gdHlwZSkgeworICAgICAgQVNTRVJUX0VRKGUuc2Vuc29ySGFuZGxlLCBoYW5kbGUpOworICAgICAgaWYgKHByZXZUaW1lc3RhbXAgPiAwKSB7CisgICAgICAgIHRpbWVzdGFtcEludGVydmFsICs9IGUudGltZXN0YW1wIC0gcHJldlRpbWVzdGFtcDsKKyAgICAgIH0KKyAgICAgIHByZXZUaW1lc3RhbXAgPSBlLnRpbWVzdGFtcDsKKyAgICAgICsrIG5FdmVudDsKKyAgICB9CisgIH0KKyAgQVNTRVJUX0dUKG5FdmVudCwgMnUpOworICBtYXhEZWxheUF2ZXJhZ2VJbnRlcnZhbCA9IHRpbWVzdGFtcEludGVydmFsIC8gKG5FdmVudCAtIDEpOworCisgIC8vIGNoYW5nZSBvZiByYXRlIGlzIHNpZ25pZmljYW50LgorICBFWFBFQ1RfR1QoKG1heERlbGF5QXZlcmFnZUludGVydmFsIC0gbWluRGVsYXlBdmVyYWdlSW50ZXJ2YWwpLCBtaW5EZWxheUF2ZXJhZ2VJbnRlcnZhbCAvIDEwKTsKKworICAvLyBmYXN0ZXN0IHJhdGUgc2FtcGxpbmcgdGltZSBpcyBjbG9zZSB0byBzcGVjCisgIEFMT0dJKCJtaW5EZWxheUF2ZXJhZ2VJbnRlcnZhbCA9ICUiIFBSSWQ2NCwgbWluRGVsYXlBdmVyYWdlSW50ZXJ2YWwpOworICBFWFBFQ1RfTFQoc3RkOjphYnMobWluRGVsYXlBdmVyYWdlSW50ZXJ2YWwgLSBtaW5TYW1wbGluZ1BlcmlvZEluTnMpLAorICAgICAgbWluU2FtcGxpbmdQZXJpb2RJbk5zIC8gMTApOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIGFjY2VsZXJvbWV0ZXIgc2FtcGxpbmcgcmF0ZSBzd2l0Y2ggcHJvcGVybHkgd2hlbiBzZW5zb3IgaXMgYWN0aXZlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBBY2NlbGVyb21ldGVyU2FtcGxpbmdQZXJpb2RIb3RTd2l0Y2hPcGVyYXRpb24pIHsKKyAgdGVzdFNhbXBsaW5nUmF0ZUhvdFN3aXRjaE9wZXJhdGlvbihTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBneXJvc2NvcGUgc2FtcGxpbmcgcmF0ZSBzd2l0Y2ggcHJvcGVybHkgd2hlbiBzZW5zb3IgaXMgYWN0aXZlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVTYW1wbGluZ1BlcmlvZEhvdFN3aXRjaE9wZXJhdGlvbikgeworICB0ZXN0U2FtcGxpbmdSYXRlSG90U3dpdGNoT3BlcmF0aW9uKFNlbnNvclR5cGU6OkdZUk9TQ09QRSk7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gbWFnbmV0b21ldGVyIHNhbXBsaW5nIHJhdGUgc3dpdGNoIHByb3Blcmx5IHdoZW4gc2Vuc29yIGlzIGFjdGl2ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyU2FtcGxpbmdQZXJpb2RIb3RTd2l0Y2hPcGVyYXRpb24pIHsKKyAgdGVzdFNhbXBsaW5nUmF0ZUhvdFN3aXRjaE9wZXJhdGlvbihTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRCk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxUZXN0Ojp0ZXN0QmF0Y2hpbmdPcGVyYXRpb24oU2Vuc29yVHlwZSB0eXBlKSB7CisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBldmVudHM7CisKKyAgY29uc3RleHByIGludDY0X3QgbWF4QmF0Y2hpbmdUZXN0VGltZU5zID0gMzB1bGwgKiAxMDAwICogMTAwMCAqIDEwMDA7CisgIGNvbnN0ZXhwciBpbnQ2NF90IG9uZVNlY29uZEluTnMgPSAxdWxsICogMTAwMCAqIDEwMDAgKiAxMDAwOworCisgIFNlbnNvckluZm8gc2Vuc29yID0gZGVmYXVsdFNlbnNvckJ5VHlwZSh0eXBlKTsKKworICBpZiAoIWlzVmFsaWRUeXBlKHNlbnNvci50eXBlKSkgeworICAgIC8vIG5vIGRlZmF1bHQgc2Vuc29yIG9mIHRoaXMgdHlwZQorICAgIHJldHVybjsKKyAgfQorCisgIGludDMyX3QgaGFuZGxlID0gc2Vuc29yLnNlbnNvckhhbmRsZTsKKyAgaW50NjRfdCBtaW5TYW1wbGluZ1BlcmlvZEluTnMgPSBzZW5zb3IubWluRGVsYXkgKiAxMDAwbGw7CisgIHVpbnQzMl90IG1pbkZpZm9Db3VudCA9IHNlbnNvci5maWZvUmVzZXJ2ZWRFdmVudENvdW50OworICBpbnQ2NF90IGJhdGNoaW5nUGVyaW9kSW5OcyA9IG1pbkZpZm9Db3VudCAqIG1pblNhbXBsaW5nUGVyaW9kSW5OczsKKworICBpZiAoYmF0Y2hpbmdQZXJpb2RJbk5zIDwgb25lU2Vjb25kSW5OcykgeworICAgIC8vIGJhdGNoaW5nIHNpemUgdG9vIHNtYWxsIHRvIHRlc3QgcmVsaWFibHkKKyAgICByZXR1cm47CisgIH0KKworICBiYXRjaGluZ1BlcmlvZEluTnMgPSBzdGQ6Om1pbihiYXRjaGluZ1BlcmlvZEluTnMsIG1heEJhdGNoaW5nVGVzdFRpbWVOcyk7CisKKyAgQUxPR0koIlRlc3QgYmF0Y2hpbmcgZm9yICVkIG1zIiwgKGludCkoYmF0Y2hpbmdQZXJpb2RJbk5zIC8gMTAwMCAvIDEwMDApKTsKKworICBpbnQ2NF90IGFsbG93ZWRCYXRjaERlbGl2ZXJUaW1lTnMgPQorICAgICAgc3RkOjptYXgob25lU2Vjb25kSW5OcywgYmF0Y2hpbmdQZXJpb2RJbk5zIC8gMTApOworCisgIEFTU0VSVF9FUShiYXRjaChoYW5kbGUsIG1pblNhbXBsaW5nUGVyaW9kSW5OcywgSU5UNjRfTUFYKSwgUmVzdWx0OjpPSyk7CisgIEFTU0VSVF9FUShhY3RpdmF0ZShoYW5kbGUsIDEpLCBSZXN1bHQ6Ok9LKTsKKworICB1c2xlZXAoNTAwMDAwKTsgLy8gc2xlZXAgMC41IHNlYyB0byB3YWl0IGZvciBpbml0aWFsaXphdGlvbgorICBBU1NFUlRfRVEoZmx1c2goaGFuZGxlKSwgUmVzdWx0OjpPSyk7CisKKyAgLy8gd2FpdCBmb3IgODAlIG9mIHRoZSByZXNlcnZlZCBiYXRjaGluZyBwZXJpb2QKKyAgLy8gdGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGV2ZW50cworICAvLyBzaW5jZSBjb2xsZWN0aW9uIGlzIG5vdCBlbmFibGVkIGFsbCBldmVudHMgd2lsbCBnbyBkb3duIHRoZSBkcmFpbgorICB1c2xlZXAoYmF0Y2hpbmdQZXJpb2RJbk5zIC8gMTAwMCAqIDggLyAxMCk7CisKKyAgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+c2V0Q29sbGVjdGlvbih0cnVlKTsKKyAgLy8gMC44ICsgMC4zIHRpbWVzIHRoZSBiYXRjaGluZyBwZXJpb2QKKyAgLy8gcGx1cyBzb21lIHRpbWUgZm9yIHRoZSBldmVudCB0byBkZWxpdmVyCisgIGV2ZW50cyA9IGNvbGxlY3RFdmVudHMoCisgICAgICBiYXRjaGluZ1BlcmlvZEluTnMgLyAxMDAwICogMyAvIDEwLAorICAgICAgICBtaW5GaWZvQ291bnQsIHRydWUgLypjbGVhckJlZm9yZVN0YXJ0Ki8sIGZhbHNlIC8qY2hhbmdlIGNvbGxlY3Rpb24qLyk7CisKKyAgQVNTRVJUX0VRKGZsdXNoKGhhbmRsZSksIFJlc3VsdDo6T0spOworCisgIGV2ZW50cyA9IGNvbGxlY3RFdmVudHMoYWxsb3dlZEJhdGNoRGVsaXZlclRpbWVOcyAvIDEwMDAsCisgICAgICAgIG1pbkZpZm9Db3VudCwgdHJ1ZSAvKmNsZWFyQmVmb3JlU3RhcnQqLywgZmFsc2UgLypjaGFuZ2UgY29sbGVjdGlvbiovKTsKKworICBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5zZXRDb2xsZWN0aW9uKGZhbHNlKTsKKyAgQVNTRVJUX0VRKGFjdGl2YXRlKGhhbmRsZSwgMCksIFJlc3VsdDo6T0spOworCisgIHNpemVfdCBuRXZlbnQgPSAwOworICBmb3IgKGF1dG8gJiBlIDogZXZlbnRzKSB7CisgICAgaWYgKGUuc2Vuc29yVHlwZSA9PSB0eXBlICYmIGUuc2Vuc29ySGFuZGxlID09IGhhbmRsZSkgeworICAgICAgKysgbkV2ZW50OworICAgIH0KKyAgfQorCisgIC8vIGF0IGxlYXN0IHJlYWNoIDkwJSBvZiBhZHZlcnRpc2VkIGNhcGFjaXR5CisgIEFTU0VSVF9HVChuRXZlbnQsIChzaXplX3QpKGJhdGNoaW5nUGVyaW9kSW5OcyAvIG1pblNhbXBsaW5nUGVyaW9kSW5OcyAqIDkgLyAxMCkpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIGFjY2VsZXJvbWV0ZXIgYmF0Y2hpbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJCYXRjaGluZ09wZXJhdGlvbikgeworICB0ZXN0QmF0Y2hpbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUik7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gZ3lyb3Njb3BlIGJhdGNoaW5nIHByb3Blcmx5CitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVCYXRjaGluZ09wZXJhdGlvbikgeworICB0ZXN0QmF0Y2hpbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6R1lST1NDT1BFKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBtYWduZXRvbWV0ZXIgYmF0Y2hpbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIE1hZ25ldG9tZXRlckJhdGNoaW5nT3BlcmF0aW9uKSB7CisgIHRlc3RCYXRjaGluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRCk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxUZXN0Ojp0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKAorICAgIFNlbnNvclR5cGUgdHlwZSwgU2hhcmVkTWVtVHlwZSBtZW1UeXBlLCBSYXRlTGV2ZWwgcmF0ZSwgY29uc3QgU2Vuc29yRXZlbnRzQ2hlY2tlciAmY2hlY2tlcikgeworICBjb25zdGV4cHIgc2l6ZV90IGtFdmVudFNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KFNlbnNvcnNFdmVudEZvcm1hdE9mZnNldDo6VE9UQUxfTEVOR1RIKTsKKyAgY29uc3RleHByIHNpemVfdCBrTkV2ZW50ID0gNTAwOworICBjb25zdGV4cHIgc2l6ZV90IGtNZW1TaXplID0ga0V2ZW50U2l6ZSAqIGtORXZlbnQ7CisKKyAgY29uc3RleHByIGZsb2F0IGtOb3JtYWxOb21pbmFsID0gNTA7CisgIGNvbnN0ZXhwciBmbG9hdCBrRmFzdE5vbWluYWwgPSAyMDA7CisgIGNvbnN0ZXhwciBmbG9hdCBrVmVyeUZhc3ROb21pbmFsID0gODAwOworCisgIGNvbnN0ZXhwciBmbG9hdCBrTm9taW5hbFRlc3RUaW1lU2VjID0gMS5mOworICBjb25zdGV4cHIgZmxvYXQga01heFRlc3RUaW1lU2VjID0ga05vbWluYWxUZXN0VGltZVNlYyArIDAuNWY7IC8vIDAuNSBzZWNvbmQgZm9yIGluaXRpYWxpemF0aW9uCisKKyAgU2Vuc29ySW5mbyBzZW5zb3IgPSBkZWZhdWx0U2Vuc29yQnlUeXBlKHR5cGUpOworCisgIGlmICghaXNEaXJlY3RSZXBvcnRSYXRlU3VwcG9ydGVkKHNlbnNvciwgcmF0ZSkpIHsKKyAgICByZXR1cm47CisgIH0KKworICBpZiAoIWlzRGlyZWN0Q2hhbm5lbFR5cGVTdXBwb3J0ZWQoc2Vuc29yLCBtZW1UeXBlKSkgeworICAgIHJldHVybjsKKyAgfQorCisgIHN0ZDo6dW5pcXVlX3B0cjxTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeT4KKyAgICAgIG1lbShTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeTo6Y3JlYXRlKG1lbVR5cGUsIGtNZW1TaXplKSk7CisgIEFTU0VSVF9ORShtZW0sIG51bGxwdHIpOworCisgIGNoYXIqIGJ1ZmZlciA9IG1lbS0+Z2V0QnVmZmVyKCk7CisgIC8vIGZpbGwgbWVtb3J5IHdpdGggZGF0YQorICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtNZW1TaXplOyArK2kpIHsKKyAgICBidWZmZXJbaV0gPSAnXHhjYyc7CisgIH0KKworICBpbnQzMl90IGNoYW5uZWxIYW5kbGU7CisgIHJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChtZW0tPmdldFNoYXJlZE1lbUluZm8oKSwKKyAgICAgIFsmY2hhbm5lbEhhbmRsZV0gKGF1dG8gcmVzdWx0LCBhdXRvIGNoYW5uZWxIYW5kbGVfKSB7CisgICAgICAgICAgQVNTRVJUX0VRKHJlc3VsdCwgUmVzdWx0OjpPSyk7CisgICAgICAgICAgY2hhbm5lbEhhbmRsZSA9IGNoYW5uZWxIYW5kbGVfOworICAgICAgfSk7CisKKyAgLy8gY2hlY2sgbWVtb3J5IGlzIHplcm9lZAorICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtNZW1TaXplOyArK2kpIHsKKyAgICBBU1NFUlRfRVEoYnVmZmVyW2ldLCAnXDAnKTsKKyAgfQorCisgIGludDMyX3QgZXZlbnRUb2tlbjsKKyAgY29uZmlnRGlyZWN0UmVwb3J0KHNlbnNvci5zZW5zb3JIYW5kbGUsIGNoYW5uZWxIYW5kbGUsIHJhdGUsCisgICAgICBbJmV2ZW50VG9rZW5dIChhdXRvIHJlc3VsdCwgYXV0byB0b2tlbikgeworICAgICAgICAgIEFTU0VSVF9FUShyZXN1bHQsIFJlc3VsdDo6T0spOworICAgICAgICAgIGV2ZW50VG9rZW4gPSB0b2tlbjsKKyAgICAgIH0pOworCisgIHVzbGVlcChzdGF0aWNfY2FzdDx1c2Vjb25kc190PihrTWF4VGVzdFRpbWVTZWMgKiAxZTZmKSk7CisgIGF1dG8gZXZlbnRzID0gbWVtLT5wYXJzZUV2ZW50cygpOworCisgIC8vIGZpbmQgbm9ybWluYWwgcmF0ZQorICBmbG9hdCBub21pbmFsRnJlcSA9IDAuZjsKKyAgc3dpdGNoIChyYXRlKSB7CisgICAgICBjYXNlIFJhdGVMZXZlbDo6Tk9STUFMOgorICAgICAgICAgIG5vbWluYWxGcmVxID0ga05vcm1hbE5vbWluYWw7CisgICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFJhdGVMZXZlbDo6RkFTVDoKKyAgICAgICAgICBub21pbmFsRnJlcSA9IGtGYXN0Tm9taW5hbDsKKyAgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgUmF0ZUxldmVsOjpWRVJZX0ZBU1Q6CisgICAgICAgICAgbm9taW5hbEZyZXEgPSBrVmVyeUZhc3ROb21pbmFsOworICAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBSYXRlTGV2ZWw6OlNUT1A6CisgICAgICAgICAgRkFJTCgpOworICB9CisKKyAgLy8gYWxsb3dlZCB0byBiZSBiZXR3ZWVuIDU1JSBhbmQgMjIwJSBvZiBub21pbmFsIGZyZXEKKyAgQVNTRVJUX0dUKGV2ZW50cy5zaXplKCksIHN0YXRpY19jYXN0PHNpemVfdD4obm9taW5hbEZyZXEgKiAwLjU1ZiAqIGtOb21pbmFsVGVzdFRpbWVTZWMpKTsKKyAgQVNTRVJUX0xUKGV2ZW50cy5zaXplKCksIHN0YXRpY19jYXN0PHNpemVfdD4obm9taW5hbEZyZXEgKiAyLjJmICoga01heFRlc3RUaW1lU2VjKSk7CisKKyAgaW50NjRfdCBsYXN0VGltZXN0YW1wID0gMDsKKyAgYm9vbCB0eXBlRXJyb3JSZXBvcnRlZCA9IGZhbHNlOworICBib29sIHRva2VuRXJyb3JSZXBvcnRlZCA9IGZhbHNlOworICBib29sIHRpbWVzdGFtcEVycm9yUmVwb3J0ZWQgPSBmYWxzZTsKKyAgZm9yIChhdXRvICZlIDogZXZlbnRzKSB7CisgICAgaWYgKCF0eXBlRXJyb3JSZXBvcnRlZCkgeworICAgICAgRVhQRUNUX0VRKHR5cGUsIGUuc2Vuc29yVHlwZSkKKyAgICAgICAgICA8PCAodHlwZUVycm9yUmVwb3J0ZWQgPSB0cnVlLCAiVHlwZSBpbiBldmVudCBkb2VzIG5vdCBtYXRjaCB0eXBlIG9mIHNlbnNvciByZWdpc3RlcmVkLiIpOworICAgIH0KKyAgICBpZiAoIXRva2VuRXJyb3JSZXBvcnRlZCkgeworICAgICAgRVhQRUNUX0VRKGV2ZW50VG9rZW4sIGUuc2Vuc29ySGFuZGxlKQorICAgICAgICAgIDw8ICh0b2tlbkVycm9yUmVwb3J0ZWQgPSB0cnVlLAorICAgICAgICAgICAgIkV2ZW50IHRva2VuIGRvZXMgbm90IG1hdGNoIHRoYXQgcmV0dXJlZCBmcm9tIGNvbmZpZ0RpcmVjdFJlcG9ydCIpOworICAgIH0KKyAgICBpZiAoIXRpbWVzdGFtcEVycm9yUmVwb3J0ZWQpIHsKKyAgICAgIEVYUEVDVF9HVChlLnRpbWVzdGFtcCwgbGFzdFRpbWVzdGFtcCkKKyAgICAgICAgICA8PCAodGltZXN0YW1wRXJyb3JSZXBvcnRlZCA9IHRydWUsICJUaW1lc3RhbXAgbm90IG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyIpOworICAgIH0KKyAgICBsYXN0VGltZXN0YW1wID0gZS50aW1lc3RhbXA7CisgIH0KKworICBzdGQ6OnN0cmluZyBzOworICBFWFBFQ1RfVFJVRShjaGVja2VyLmNoZWNrKGV2ZW50cywgJnMpKSA8PCBzOworCisgIC8vIHN0b3Agc2Vuc29yIGFuZCB1bnJlZ2lzdGVyIGNoYW5uZWwKKyAgY29uZmlnRGlyZWN0UmVwb3J0KHNlbnNvci5zZW5zb3JIYW5kbGUsIGNoYW5uZWxIYW5kbGUsIFJhdGVMZXZlbDo6U1RPUCwKKyAgICAgICAgWyZldmVudFRva2VuXSAoYXV0byByZXN1bHQsIGF1dG8pIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShyZXN1bHQsIFJlc3VsdDo6T0spOworICAgICAgICB9KTsKKyAgRVhQRUNUX0VRKHVucmVnaXN0ZXJEaXJlY3RDaGFubmVsKGNoYW5uZWxIYW5kbGUpLCBSZXN1bHQ6Ok9LKTsKK30KKworLy8gVGVzdCBzZW5zb3IgZXZlbnQgZGlyZWN0IHJlcG9ydCB3aXRoIGFzaG1lbSBmb3IgYWNjZWwgc2Vuc29yIGF0IG5vcm1hbCByYXRlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBBY2NlbGVyb21ldGVyQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uTm9ybWFsKSB7CisgIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwgU2hhcmVkTWVtVHlwZTo6QVNITUVNLCBSYXRlTGV2ZWw6Ok5PUk1BTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzQWNjZWxOb3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIGFjY2VsIHNlbnNvciBhdCBmYXN0IHJhdGUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25GYXN0KSB7CisgIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwgU2hhcmVkTWVtVHlwZTo6QVNITUVNLCBSYXRlTGV2ZWw6OkZBU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc0FjY2VsTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBhY2NlbCBzZW5zb3IgYXQgdmVyeSBmYXN0IHJhdGUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25WZXJ5RmFzdCkgeworICB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVIsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpWRVJZX0ZBU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc0FjY2VsTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBneXJvIHNlbnNvciBhdCBub3JtYWwgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgR3lyb3Njb3BlQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uTm9ybWFsKSB7CisgIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oU2Vuc29yVHlwZTo6R1lST1NDT1BFLCBTaGFyZWRNZW1UeXBlOjpBU0hNRU0sIFJhdGVMZXZlbDo6Tk9STUFMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNHeXJvTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBneXJvIHNlbnNvciBhdCBmYXN0IHJhdGUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEd5cm9zY29wZUFzaG1lbURpcmVjdFJlcG9ydE9wZXJhdGlvbkZhc3QpIHsKKyAgdGVzdERpcmVjdFJlcG9ydE9wZXJhdGlvbihTZW5zb3JUeXBlOjpHWVJPU0NPUEUsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpGQVNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNHeXJvTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBneXJvIHNlbnNvciBhdCB2ZXJ5IGZhc3QgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgR3lyb3Njb3BlQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uVmVyeUZhc3QpIHsKKyAgdGVzdERpcmVjdFJlcG9ydE9wZXJhdGlvbihTZW5zb3JUeXBlOjpHWVJPU0NPUEUsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpWRVJZX0ZBU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc0d5cm9Ob3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIG1hZyBzZW5zb3IgYXQgbm9ybWFsIHJhdGUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIE1hZ25ldG9tZXRlckFzaG1lbURpcmVjdFJlcG9ydE9wZXJhdGlvbk5vcm1hbCkgeworICB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELCBTaGFyZWRNZW1UeXBlOjpBU0hNRU0sIFJhdGVMZXZlbDo6Tk9STUFMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bGxDaGVja2VyKCkpOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBtYWcgc2Vuc29yIGF0IGZhc3QgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uRmFzdCkgeworICB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELCBTaGFyZWRNZW1UeXBlOjpBU0hNRU0sIFJhdGVMZXZlbDo6RkFTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsQ2hlY2tlcigpKTsKK30KKworLy8gVGVzdCBzZW5zb3IgZXZlbnQgZGlyZWN0IHJlcG9ydCB3aXRoIGFzaG1lbSBmb3IgbWFnIHNlbnNvciBhdCB2ZXJ5IGZhc3QgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uVmVyeUZhc3QpIHsKKyAgdGVzdERpcmVjdFJlcG9ydE9wZXJhdGlvbigKKyAgICAgIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELCBTaGFyZWRNZW1UeXBlOjpBU0hNRU0sIFJhdGVMZXZlbDo6VkVSWV9GQVNULCBOdWxsQ2hlY2tlcigpKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCkpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQorLy8gdmltOiBzZXQgdHM9MiBzdz0yCmRpZmYgLS1naXQgYS9zZW5zb3JzL0FuZHJvaWQuYnAgYi9zZW5zb3JzL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxOWEzNwotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvQW5kcm9pZC5icCBiL3NvdW5kdHJpZ2dlci8yLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjU5Nzc2Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzIgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklTb3VuZFRyaWdnZXJIdy5oYWwiLAorICAgICAgICAiSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL1NvdW5kVHJpZ2dlckh3QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvU291bmRUcmlnZ2VySHdDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9JU291bmRUcmlnZ2VySHcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSUh3U291bmRUcmlnZ2VySHcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvQm5Id1NvdW5kVHJpZ2dlckh3LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0JwSHdTb3VuZFRyaWdnZXJIdy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9Cc1NvdW5kVHJpZ2dlckh3LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJId0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0lId1NvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvQm5Id1NvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvQnBId1NvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvQnNTb3VuZFRyaWdnZXJId0NhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvQW5kcm9pZC5tayBiL3NvdW5kdHJpZ2dlci8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJIdy5oYWwgYi9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJIdy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMyMzVjOQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3LmhhbApAQCAtMCwwICsxLDI0NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CisKK2ltcG9ydCBJU291bmRUcmlnZ2VySHdDYWxsYmFjazsKKworaW50ZXJmYWNlIElTb3VuZFRyaWdnZXJIdyB7CisKKyAgICAvKioKKyAgICAgKiBTb3VuZCB0cmlnZ2VyIGltcGxlbWVudGF0aW9uIGRlc2NyaXB0b3IgcmVhZCBieSB0aGUgZnJhbWV3b3JrIHZpYQorICAgICAqIGdldFByb3BlcnRpZXMoKS4gVXNlZCBieSBTb3VuZFRyaWdnZXIgc2VydmljZSB0byByZXBvcnQgdG8gYXBwbGljYXRpb25zCisgICAgICogYW5kIG1hbmFnZSBjb25jdXJyZW5jeSBhbmQgcG9saWN5LgorICAgICAqLworICAgIHN0cnVjdCBQcm9wZXJ0aWVzIHsKKyAgICAgICAgLyoqIEltcGxlbWVudG9yIG5hbWUgKi8KKyAgICAgICAgc3RyaW5nICAgaW1wbGVtZW50b3I7CisgICAgICAgIC8qKiBJbXBsZW1lbnRhdGlvbiBkZXNjcmlwdGlvbiAqLworICAgICAgICBzdHJpbmcgICBkZXNjcmlwdGlvbjsKKyAgICAgICAgLyoqIEltcGxlbWVudGF0aW9uIHZlcnNpb24gKi8KKyAgICAgICAgdWludDMyX3QgdmVyc2lvbjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVuaXF1ZSBpbXBsZW1lbnRhdGlvbiBJRC4gVGhlIFVVSUQgbXVzdCBjaGFuZ2Ugd2l0aCBlYWNoIHZlcnNpb24gb2YKKyAgICAgICAgICAgdGhlIGVuZ2luZSBpbXBsZW1lbnRhdGlvbiAqLworICAgICAgICBVdWlkICAgICB1dWlkOworICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBzb3VuZCBtb2RlbHMgbG9hZGVkICovCisgICAgICAgIHVpbnQzMl90IG1heFNvdW5kTW9kZWxzOworICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2Yga2V5IHBocmFzZXMgKi8KKyAgICAgICAgdWludDMyX3QgbWF4S2V5UGhyYXNlczsKKyAgICAgICAgLyoqIE1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgdXNlcnMgZGV0ZWN0ZWQgKi8KKyAgICAgICAgdWludDMyX3QgbWF4VXNlcnM7CisgICAgICAgIC8qKiBBbGwgc3VwcG9ydGVkIG1vZGVzLiBlLmcgUmVjb2duaXRpb25Nb2RlLlZPSUNFX1RSSUdHRVIgKi8KKyAgICAgICAgdWludDMyX3QgcmVjb2duaXRpb25Nb2RlczsKKyAgICAgICAgLyoqIFN1cHBvcnRzIHNlYW1sZXNzIHRyYW5zaXRpb24gZnJvbSBkZXRlY3Rpb24gdG8gY2FwdHVyZSAqLworICAgICAgICBib29sICAgICBjYXB0dXJlVHJhbnNpdGlvbjsKKyAgICAgICAgLyoqIE1heGltdW0gYnVmZmVyaW5nIGNhcGFjaXR5IGluIG1zIGlmIGNhcHR1cmVUcmFuc2l0aW9uIGlzIHRydWUgKi8KKyAgICAgICAgdWludDMyX3QgbWF4QnVmZmVyTXM7CisgICAgICAgIC8qKiBTdXBwb3J0cyBjYXB0dXJlIGJ5IG90aGVyIHVzZSBjYXNlcyB3aGlsZSBkZXRlY3Rpb24gaXMgYWN0aXZlICovCisgICAgICAgIGJvb2wgICAgIGNvbmN1cnJlbnRDYXB0dXJlOworICAgICAgICAvKiogUmV0dXJucyB0aGUgdHJpZ2dlciBjYXB0dXJlIGluIGV2ZW50ICovCisgICAgICAgIGJvb2wgICAgIHRyaWdnZXJJbkV2ZW50OworICAgICAgICAvKioKKyAgICAgICAgICogUmF0ZWQgcG93ZXIgY29uc3VtcHRpb24gd2hlbiBkZXRlY3Rpb24gaXMgYWN0aXZlIHdpdGggVERCCisgICAgICAgICAqIHNpbGVuY2Uvc291bmQvc3BlZWNoIHJhdGlvICovCisgICAgICAgIHVpbnQzMl90IHBvd2VyQ29uc3VtcHRpb25NdzsKKyAgICB9OworCisKKyAgICAvKioKKyAgICAgKiBCYXNlIHNvdW5kIG1vZGVsIGRlc2NyaXB0b3IuIFRoaXMgc3RydWN0IGlzIHRoZSBoZWFkZXIgb2YgYSBsYXJnZXIgYmxvY2sKKyAgICAgKiBwYXNzZWQgdG8gbG9hZFNvdW5kTW9kZWwoKSBhbmQgY29udGFpbnMgdGhlIGJpbmFyeSBkYXRhIG9mIHRoZQorICAgICAqIHNvdW5kIG1vZGVsLgorICAgICAqLworICAgIHN0cnVjdCBTb3VuZE1vZGVsIHsKKyAgICAgICAgLyoqIE1vZGVsIHR5cGUuIGUuZy4gU291bmRNb2RlbFR5cGUuS0VZUEhSQVNFICovCisgICAgICAgIFNvdW5kTW9kZWxUeXBlIHR5cGU7CisgICAgICAgIC8qKiBVbmlxdWUgc291bmQgbW9kZWwgSUQuICovCisgICAgICAgIFV1aWQgICAgICAgICAgIHV1aWQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBVbmlxdWUgdmVuZG9yIElELiBJZGVudGlmaWVzIHRoZSBlbmdpbmUgdGhlIHNvdW5kIG1vZGVsCisgICAgICAgICAqIHdhcyBidWlsZCBmb3IgKi8KKyAgICAgICAgVXVpZCAgICAgICAgICAgdmVuZG9yVXVpZDsKKyAgICAgICAgLyoqIE9wYXF1ZSBkYXRhIHRyYW5zcGFyZW50IHRvIEFuZHJvaWQgZnJhbWV3b3JrICovCisgICAgICAgIHZlYzx1aW50OF90PiAgIGRhdGE7CisgICAgfTsKKworICAgIC8qKiBLZXkgcGhyYXNlIGRlc2NyaXB0b3IgKi8KKyAgICBzdHJ1Y3QgUGhyYXNlIHsKKyAgICAgICAgLyoqIFVuaXF1ZSBrZXlwaHJhc2UgSUQgYXNzaWduZWQgYXQgZW5yb2xsbWVudCB0aW1lICovCisgICAgICAgIHVpbnQzMl90ICAgICAgaWQ7CisgICAgICAgIC8qKiBSZWNvZ25pdGlvbiBtb2RlcyBzdXBwb3J0ZWQgYnkgdGhpcyBrZXkgcGhyYXNlICovCisgICAgICAgIHVpbnQzMl90ICAgICAgcmVjb2duaXRpb25Nb2RlczsKKyAgICAgICAgLyoqIExpc3Qgb2YgdXNlcnMgSURzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGtleSBwaHJhc2UgKi8KKyAgICAgICAgdmVjPHVpbnQzMl90PiB1c2VyczsKKyAgICAgICAgLyoqIExvY2FsZSAtIEphdmEgTG9jYWxlIHN0eWxlIChlLmcuIGVuX1VTKSAqLworICAgICAgICBzdHJpbmcgICAgICAgIGxvY2FsZTsKKyAgICAgICAgLyoqIFBocmFzZSB0ZXh0IGluIFVURi04IGZvcm1hdC4gKi8KKyAgICAgICAgc3RyaW5nICAgICAgICB0ZXh0OworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXplZCBzb3VuZCBtb2RlbCBmb3Iga2V5IHBocmFzZSBkZXRlY3Rpb24uCisgICAgICogUHJvcHJpZXRhcnkgcmVwcmVzZW50YXRpb24gb2Yga2V5IHBocmFzZXMgaW4gYmluYXJ5IGRhdGEgbXVzdCBtYXRjaAorICAgICAqIGluZm9ybWF0aW9uIGluZGljYXRlZCBieSBwaHJhc2VzIGZpZWxkCisgICAgICovCisgICAgc3RydWN0IFBocmFzZVNvdW5kTW9kZWwgeworICAgICAgICAvKiogQ29tbW9uIHBhcnQgb2Ygc291bmQgbW9kZWwgZGVzY3JpcHRvciAqLworICAgICAgICBTb3VuZE1vZGVsICBjb21tb247CisgICAgICAgIC8qKiBMaXN0IG9mIGRlc2NyaXB0b3JzIGZvciBrZXkgcGhyYXNlcyBzdXBwb3J0ZWQgYnkgdGhpcyBzb3VuZCBtb2RlbCAqLworICAgICAgICB2ZWM8UGhyYXNlPiBwaHJhc2VzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDb25maWd1cmF0aW9uIGZvciBzb3VuZCB0cmlnZ2VyIGNhcHR1cmUgc2Vzc2lvbiBwYXNzZWQgdG8KKyAgICAgKiBzdGFydFJlY29nbml0aW9uKCkgbWV0aG9kCisgICAgICovCisgICAgc3RydWN0IFJlY29nbml0aW9uQ29uZmlnIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIElPIGhhbmRsZSB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgY2FwdHVyZS4gTi9BIGlmIGNhcHR1cmVSZXF1ZXN0ZWQKKyAgICAgICAgICogaXMgZmFsc2UgKi8KKyAgICAgICAgQXVkaW9Jb0hhbmRsZSAgIGNhcHR1cmVIYW5kbGU7CisgICAgICAgIC8qKiBJbnB1dCBkZXZpY2UgcmVxdWVzdGVkIGZvciBkZXRlY3Rpb24gY2FwdHVyZSAqLworICAgICAgICBBdWRpb0RldmljZSAgICAgY2FwdHVyZURldmljZTsKKyAgICAgICAgLyoqIENhcHR1cmUgYW5kIGJ1ZmZlciBhdWRpbyBmb3IgdGhpcyByZWNvZ25pdGlvbiBpbnN0YW5jZSAqLworICAgICAgICBib29sICAgICAgICAgICAgY2FwdHVyZVJlcXVlc3RlZDsKKyAgICAgICAgLyoqIENvbmZpZ3VyYXRpb24gZm9yIGVhY2gga2V5IHBocmFzZSAqLworICAgICAgICB2ZWM8UGhyYXNlUmVjb2duaXRpb25FeHRyYT4gcGhyYXNlczsKKyAgICAgICAgLyoqIE9wYXF1ZSBjYXB0dXJlIGNvbmZpZ3VyYXRpb24gZGF0YSB0cmFuc3BhcmVudCB0byB0aGUgZnJhbWV3b3JrICovCisgICAgICAgIHZlYzx1aW50OF90PiAgICBkYXRhOworICAgIH07CisKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGltcGxlbWVudGF0aW9uIHByb3BlcnRpZXMuCisgICAgICogQHJldHVybiByZXR2YWwgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PREVWIGluIGNhc2Ugb2YgaW5pdGlhbGl6YXRpb24gZXJyb3IuCisgICAgICogQHJldHVybiBwcm9wZXJ0aWVzIEEgUHJvcGVydGllcyBzdHJ1Y3R1cmUgY29udGFpbmluZyBpbXBsZW1lbnRhdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiBhbmQgY2FwYWJpbGl0aWVzLgorICAgICAqLworICAgIGdldFByb3BlcnRpZXMoKSBnZW5lcmF0ZXMgKGludDMyX3QgcmV0dmFsLCBQcm9wZXJ0aWVzIHByb3BlcnRpZXMpOworCisgICAgLyoqCisgICAgICogTG9hZCBhIHNvdW5kIG1vZGVsLiBPbmNlIGxvYWRlZCwgcmVjb2duaXRpb24gb2YgdGhpcyBtb2RlbCBjYW4gYmUKKyAgICAgKiBzdGFydGVkIGFuZCBzdG9wcGVkLiBPbmx5IG9uZSBhY3RpdmUgcmVjb2duaXRpb24gcGVyIG1vZGVsIGF0IGEgdGltZS4KKyAgICAgKiBUaGUgU291bmRUcmlnZ2VyIHNlcnZpY2UgbXVzdCBoYW5kbGUgY29uY3VycmVudCByZWNvZ25pdGlvbiByZXF1ZXN0cyBieQorICAgICAqIGRpZmZlcmVudCB1c2Vycy9hcHBsaWNhdGlvbnMgb24gdGhlIHNhbWUgbW9kZWwuCisgICAgICogVGhlIGltcGxlbWVudGF0aW9uIHJldHVybnMgYSB1bmlxdWUgaGFuZGxlIHVzZWQgYnkgb3RoZXIgZnVuY3Rpb25zCisgICAgICogKHVubG9hZFNvdW5kTW9kZWwoKSwgc3RhcnRSZWNvZ25pdGlvbigpLCBldGMuLi4KKyAgICAgKiBAcGFyYW0gc291bmRNb2RlbCBBIFNvdW5kTW9kZWwgc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIHNvdW5kIG1vZGVsIHRvCisgICAgICogICAgICAgICAgICAgICAgICAgbG9hZC4KKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGludGVyZmFjZSBvbiB3aGljaCB0aGUgc291bmRtb2RlbENhbGxiYWNrKCkKKyAgICAgKiAgICAgICAgICAgICAgICAgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIHVwb24gY29tcGxldGlvbi4KKyAgICAgKiBAcGFyYW0gY29va2llIFRoZSB2YWx1ZSBvZiB0aGUgY29va2llIGFyZ3VtZW50IHBhc3NlZCB0byB0aGUgY29tcGxldGlvbgorICAgICAqICAgICAgICAgICAgICAgY2FsbGJhY2suIFRoaXMgdW5pcXVlIGNvbnRleHQgaW5mb3JtYXRpb24gaXMgYXNzaWduZWQgYW5kCisgICAgICogICAgICAgICAgICAgICB1c2VkIG9ubHkgYnkgdGhlIGZyYW1ld29yay4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXM6IDAgaW4gY2FzZSBvZiBzdWNjZXNzLAorICAgICAqICAgICAgICAgICAgICAgIC1FSU5WQUwgaW4gY2FzZSBvZiBpbnZhbGlkIHNvdW5kIG1vZGVsIChlLmcgMCBkYXRhIHNpemUpLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9TWVMgaW4gY2FzZSBvZiBpbnZhbGlkIG9wZXJhdGlvbiAoZS5nIG1heCBudW1iZXIgb2YKKyAgICAgKiAgICAgICAgICAgICAgICBtb2RlbHMgZXhjZWVkZWQpLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9NRU0gaW4gY2FzZSBvZiBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9ERVYgaW4gY2FzZSBvZiBpbml0aWFsaXphdGlvbiBlcnJvci4KKyAgICAgKiBAcmV0dXJuIG1vZGVsSGFuZGxlIEEgdW5pcXVlIGhhbmRsZSBhc3NpZ25lZCBieSB0aGUgSEFMIGZvciB1c2UgYnkgdGhlCisgICAgICogICAgICAgICAgICAgICAgZnJhbWV3b3JrIHdoZW4gY29udHJvbGxpbmcgYWN0aXZpdHkgZm9yIHRoaXMgc291bmQgbW9kZWwuCisgICAgICovCisgICAgbG9hZFNvdW5kTW9kZWwoU291bmRNb2RlbCBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgIENhbGxiYWNrQ29va2llIGNvb2tpZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoaW50MzJfdCByZXR2YWwsIFNvdW5kTW9kZWxIYW5kbGUgbW9kZWxIYW5kbGUpOworCisgICAgLyoqCisgICAgICogTG9hZCBhIGtleSBwaHJhc2Ugc291bmQgbW9kZWwuIE9uY2UgbG9hZGVkLCByZWNvZ25pdGlvbiBvZiB0aGlzIG1vZGVsIGNhbgorICAgICAqIGJlIHN0YXJ0ZWQgYW5kIHN0b3BwZWQuIE9ubHkgb25lIGFjdGl2ZSByZWNvZ25pdGlvbiBwZXIgbW9kZWwgYXQgYSB0aW1lLgorICAgICAqIFRoZSBTb3VuZFRyaWdnZXIgc2VydmljZSBtdXN0IGhhbmRsZSBjb25jdXJyZW50IHJlY29nbml0aW9uIHJlcXVlc3RzIGJ5CisgICAgICogZGlmZmVyZW50IHVzZXJzL2FwcGxpY2F0aW9ucyBvbiB0aGUgc2FtZSBtb2RlbC4KKyAgICAgKiBUaGUgaW1wbGVtZW50YXRpb24gcmV0dXJucyBhIHVuaXF1ZSBoYW5kbGUgdXNlZCBieSBvdGhlciBmdW5jdGlvbnMKKyAgICAgKiAodW5sb2FkU291bmRNb2RlbCgpLCBzdGFydFJlY29nbml0aW9uKCksIGV0Yy4uLgorICAgICAqIEBwYXJhbSBzb3VuZE1vZGVsIEEgUGhyYXNlU291bmRNb2RlbCBzdHJ1Y3R1cmUgZGVzY3JpYmluZyB0aGUgc291bmQgbW9kZWwKKyAgICAgKiAgICAgICAgICAgICAgICAgICB0byBsb2FkLgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgaW50ZXJmYWNlIG9uIHdoaWNoIHRoZSBzb3VuZG1vZGVsQ2FsbGJhY2soKQorICAgICAqICAgICAgICAgICAgICAgICBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgdXBvbiBjb21wbGV0aW9uLgorICAgICAqIEBwYXJhbSBjb29raWUgVGhlIHZhbHVlIG9mIHRoZSBjb29raWUgYXJndW1lbnQgcGFzc2VkIHRvIHRoZSBjb21wbGV0aW9uCisgICAgICogICAgICAgICAgICAgICBjYWxsYmFjay4gVGhpcyB1bmlxdWUgY29udGV4dCBpbmZvcm1hdGlvbiBpcyBhc3NpZ25lZCBhbmQKKyAgICAgKiAgICAgICAgICAgICAgIHVzZWQgb25seSBieSB0aGUgZnJhbWV3b3JrLgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsCisgICAgICogICAgICAgICAgICAgICAgLUVJTlZBTCBpbiBjYXNlIG9mIGludmFsaWQgc291bmQgbW9kZWwgKGUuZyAwIGRhdGEgc2l6ZSksCisgICAgICogICAgICAgICAgICAgICAgLUVOT1NZUyBpbiBjYXNlIG9mIGludmFsaWQgb3BlcmF0aW9uIChlLmcgbWF4IG51bWJlciBvZgorICAgICAqICAgICAgICAgICAgICAgIG1vZGVscyBleGNlZWRlZCksCisgICAgICogICAgICAgICAgICAgICAgLUVOT01FTSBpbiBjYXNlIG9mIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUsCisgICAgICogICAgICAgICAgICAgICAgLUVOT0RFViBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqIEByZXR1cm4gbW9kZWxIYW5kbGUgQSB1bmlxdWUgaGFuZGxlIGFzc2lnbmVkIGJ5IHRoZSBIQUwgZm9yIHVzZSBieSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICBmcmFtZXdvcmsgd2hlbiBjb250cm9sbGluZyBhY3Rpdml0eSBmb3IgdGhpcyBzb3VuZCBtb2RlbC4KKyAgICAgKi8KKyAgICBsb2FkUGhyYXNlU291bmRNb2RlbChQaHJhc2VTb3VuZE1vZGVsIHNvdW5kTW9kZWwsCisgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2tDb29raWUgY29va2llKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHJldHZhbCwgU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSk7CisKKyAgICAvKioKKyAgICAgKiBVbmxvYWQgYSBzb3VuZCBtb2RlbC4gQSBzb3VuZCBtb2RlbCBtYXkgYmUgdW5sb2FkZWQgdG8gbWFrZSByb29tIGZvciBhCisgICAgICogbmV3IG9uZSB0byBvdmVyY29tZSBpbXBsZW1lbnRhdGlvbiBsaW1pdGF0aW9ucy4KKyAgICAgKiBAcGFyYW0gbW9kZWxIYW5kbGUgdGhlIGhhbmRsZSBvZiB0aGUgc291bmQgbW9kZWwgdG8gdW5sb2FkCisgICAgICogQHJldHVybiByZXR2YWwgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PU1lTIGlmIHRoZSBtb2RlbCBpcyBub3QgbG9hZGVkLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9ERVYgaW4gY2FzZSBvZiBpbml0aWFsaXphdGlvbiBlcnJvci4KKyAgICAgKi8KKyAgICB1bmxvYWRTb3VuZE1vZGVsKFNvdW5kTW9kZWxIYW5kbGUgbW9kZWxIYW5kbGUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKGludDMyX3QgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0IHJlY29nbml0aW9uIG9uIGEgZ2l2ZW4gbW9kZWwuIE9ubHkgb25lIHJlY29nbml0aW9uIGFjdGl2ZQorICAgICAqIGF0IGEgdGltZSBwZXIgbW9kZWwuIE9uY2UgcmVjb2duaXRpb24gc3VjY2VlZHMgb2YgZmFpbHMsIHRoZSBjYWxsYmFjaworICAgICAqIGlzIGNhbGxlZC4KKyAgICAgKiBAcGFyYW0gbW9kZWxIYW5kbGUgdGhlIGhhbmRsZSBvZiB0aGUgc291bmQgbW9kZWwgdG8gdXNlIGZvciByZWNvZ25pdGlvbgorICAgICAqIEBwYXJhbSBjb25maWcgQSBSZWNvZ25pdGlvbkNvbmZpZyBzdHJ1Y3R1cmUgY29udGFpbmluZyBhdHRyaWJ1dGVzIG9mIHRoZQorICAgICAqICAgICAgICAgICAgICAgcmVjb2duaXRpb24gdG8gcGVyZm9ybQorICAgICAqIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgaW50ZXJmYWNlIG9uIHdoaWNoIHRoZSByZWNvZ25pdGlvbkNhbGxiYWNrKCkKKyAgICAgKiAgICAgICAgICAgICAgICAgbWV0aG9kIG11c3QgYmUgY2FsbGVkIHVwb24gcmVjb2duaXRpb24uCisgICAgICogQHBhcmFtIGNvb2tpZSBUaGUgdmFsdWUgb2YgdGhlIGNvb2tpZSBhcmd1bWVudCBwYXNzZWQgdG8gdGhlIHJlY29nbml0aW9uCisgICAgICogICAgICAgICAgICAgICBjYWxsYmFjay4gVGhpcyB1bmlxdWUgY29udGV4dCBpbmZvcm1hdGlvbiBpcyBhc3NpZ25lZCBhbmQKKyAgICAgKiAgICAgICAgICAgICAgIHVzZWQgb25seSBieSB0aGUgZnJhbWV3b3JrLgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsCisgICAgICogICAgICAgICAgICAgICAgLUVJTlZBTCBpbiBjYXNlIG9mIGludmFsaWQgcmVjb2duaXRpb24gYXR0cmlidXRlcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PU1lTIGluIGNhc2Ugb2YgaW52YWxpZCBtb2RlbCBoYW5kbGUsCisgICAgICogICAgICAgICAgICAgICAgLUVOT01FTSBpbiBjYXNlIG9mIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUsCisgICAgICogICAgICAgICAgICAgICAgLUVOT0RFViBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqLworICAgIHN0YXJ0UmVjb2duaXRpb24oU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgIFJlY29nbml0aW9uQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2tDb29raWUgY29va2llKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTdG9wIHJlY29nbml0aW9uIG9uIGEgZ2l2ZW4gbW9kZWwuCisgICAgICogVGhlIGltcGxlbWVudGF0aW9uIG11c3Qgbm90IGNhbGwgdGhlIHJlY29nbml0aW9uIGNhbGxiYWNrIHdoZW4gc3RvcHBlZAorICAgICAqIHZpYSB0aGlzIG1ldGhvZC4KKyAgICAgKiBAcGFyYW0gbW9kZWxIYW5kbGUgVGhlIGhhbmRsZSBvZiB0aGUgc291bmQgbW9kZWwgdG8gdXNlIGZvciByZWNvZ25pdGlvbgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsCisgICAgICogICAgICAgICAgICAgICAgLUVOT1NZUyBpbiBjYXNlIG9mIGludmFsaWQgbW9kZWwgaGFuZGxlLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9ERVYgaW4gY2FzZSBvZiBpbml0aWFsaXphdGlvbiBlcnJvci4KKyAgICAgKi8KKyAgICBzdG9wUmVjb2duaXRpb24oU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoaW50MzJfdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU3RvcCByZWNvZ25pdGlvbiBvbiBhbGwgbW9kZWxzLgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsCisgICAgICogICAgICAgICAgICAgICAgLUVOT0RFViBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqLworICAgIHN0b3BBbGxSZWNvZ25pdGlvbnMoKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC9JU291bmRUcmlnZ2VySHdDYWxsYmFjay5oYWwgYi9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJId0NhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDEzMmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC9JU291bmRUcmlnZ2VySHdDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworCitpbnRlcmZhY2UgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sgeworICAgIGVudW0gUmVjb2duaXRpb25TdGF0dXMgOiB1aW50MzJfdCB7CisgICAgICAgIFNVQ0NFU1MgID0gMCwKKyAgICAgICAgQUJPUlQgICAgPSAxLAorICAgICAgICBGQUlMVVJFICA9IDIsCisgICAgfTsKKworICAgIGVudW0gU291bmRNb2RlbFN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICAgICAgVVBEQVRFRCAgPSAwLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmljIHJlY29nbml0aW9uIGV2ZW50IHNlbnQgdmlhIHJlY29nbml0aW9uIGNhbGxiYWNrCisgICAgICovCisgICAgc3RydWN0IFJlY29nbml0aW9uRXZlbnQgeworICAgICAgICAvKiogUmVjb2duaXRpb24gc3RhdHVzIGUuZy4gU1VDQ0VTUyAqLworICAgICAgICBSZWNvZ25pdGlvblN0YXR1cyBzdGF0dXM7CisgICAgICAgIC8qKiBTb3VuZCBtb2RlbCB0eXBlIGZvciB0aGlzIGV2ZW50LiBlLmcgU291bmRNb2RlbFR5cGUuVFlQRV9LRVlQSFJBU0UgKi8KKyAgICAgICAgU291bmRNb2RlbFR5cGUgICAgdHlwZTsKKyAgICAgICAgLyoqIEhhbmRsZSBvZiBsb2FkZWQgc291bmQgbW9kZWwgd2hpY2ggdHJpZ2dlcmVkIHRoZSBldmVudCAqLworICAgICAgICBTb3VuZE1vZGVsSGFuZGxlICBtb2RlbDsKKyAgICAgICAgLyoqIEl0IGlzIHBvc3NpYmxlIHRvIGNhcHR1cmUgYXVkaW8gZnJvbSB0aGlzICovCisgICAgICAgIC8qKiB1dHRlcmFuY2UgYnVmZmVyZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uICovCisgICAgICAgIGJvb2wgICAgICAgICAgICAgIGNhcHR1cmVBdmFpbGFibGU7CisgICAgICAgIC8qKiBBdWRpbyBzZXNzaW9uIElELiBmcmFtZXdvcmsgdXNlICovCisgICAgICAgIGludDMyX3QgICAgICAgICAgIGNhcHR1cmVTZXNzaW9uOworICAgICAgICAvKioKKyAgICAgICAgICogRGVsYXkgaW4gbXMgYmV0d2VlbiBlbmQgb2YgbW9kZWwgZGV0ZWN0aW9uIGFuZCBzdGFydCBvZiBhdWRpbworICAgICAgICAvKioKKyAgICAgICAgICogYXZhaWxhYmxlIGZvciBjYXB0dXJlLiBBIG5lZ2F0aXZlIHZhbHVlIGlzIHBvc3NpYmxlCisgICAgICAgICAqIChlLmcuIGlmIGtleSBwaHJhc2UgaXMgYWxzbyBhdmFpbGFibGUgZm9yIGNhcHR1cmUgKi8KKyAgICAgICAgaW50MzJfdCAgICAgICAgICAgY2FwdHVyZURlbGF5TXM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBEdXJhdGlvbiBpbiBtcyBvZiBhdWRpbyBjYXB0dXJlZCBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSB0cmlnZ2VyLgorICAgICAgICAgKiAwIGlmIG5vbmUuICovCisgICAgICAgIGludDMyX3QgICAgICAgICAgIGNhcHR1cmVQcmVhbWJsZU1zOworICAgICAgICAvKiogVGhlIG9wYXF1ZSBkYXRhIGlzIHRoZSBjYXB0dXJlIG9mIHRoZSB0cmlnZ2VyIHNvdW5kICovCisgICAgICAgIGJvb2wgICAgICAgICAgICAgIHRyaWdnZXJJbkRhdGE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBBdWRpbyBmb3JtYXQgb2YgZWl0aGVyIHRoZSB0cmlnZ2VyIGluIGV2ZW50IGRhdGEgb3IgdG8gdXNlIGZvcgorICAgICAgICAgKiBjYXB0dXJlIG9mIHRoZSByZXN0IG9mIHRoZSB1dHRlcmFuY2UgKi8KKyAgICAgICAgQXVkaW9Db25maWcgICAgICAgYXVkaW9Db25maWc7CisgICAgICAgIC8qKiBPcGFxdWUgZXZlbnQgZGF0YSAqLworICAgICAgICB2ZWM8dWludDhfdD4gICAgICBkYXRhOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXplZCByZWNvZ25pdGlvbiBldmVudCBmb3Iga2V5IHBocmFzZSByZWNvZ25pdGlvbnMKKyAgICAgKi8KKyAgICBzdHJ1Y3QgUGhyYXNlUmVjb2duaXRpb25FdmVudCB7CisgICAgICAgIC8qKiBDb21tb24gcGFydCBvZiB0aGUgcmVjb2duaXRpb24gZXZlbnQgKi8KKyAgICAgICAgUmVjb2duaXRpb25FdmVudCBjb21tb247CisgICAgICAgIC8qKiBMaXN0IG9mIGRlc2NyaXB0b3JzIGZvciBlYWNoIHJlY29nbml6ZWQga2V5IHBocmFzZSAqLworICAgICAgICB2ZWM8UGhyYXNlUmVjb2duaXRpb25FeHRyYT4gcGhyYXNlRXh0cmFzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBFdmVudCBzZW50IHZpYSBsb2FkIHNvdW5kIG1vZGVsIGNhbGxiYWNrCisgICAgICovCisgICAgc3RydWN0IE1vZGVsRXZlbnQgeworICAgICAgICAgLyoqIFNvdW5kIG1vZGVsIHN0YXR1cyBlLmcuIFNvdW5kTW9kZWxTdGF0dXMuVVBEQVRFRCAqLworICAgICAgICBTb3VuZE1vZGVsU3RhdHVzIHN0YXR1czsKKyAgICAgICAgLyoqIExvYWRlZCBzb3VuZCBtb2RlbCB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQgKi8KKyAgICAgICAgU291bmRNb2RlbEhhbmRsZSBtb2RlbDsKKyAgICAgICAgLyoqIE9wYXF1ZSBldmVudCBkYXRhLCBwYXNzZWQgdHJhbnNwYXJlbnRseSBieSB0aGUgZnJhbWV3b3JrICovCisgICAgICAgIHZlYzx1aW50OF90PiAgICAgZGF0YTsKKyAgICB9OworCisgICAgdHlwZWRlZiBpbnQzMl90IENhbGxiYWNrQ29va2llOworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgbWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gdGhlIHNvdW5kIHJlY29nbml0aW9uIHRyaWdnZXJzCisgICAgICogQHBhcmFtIGV2ZW50IEEgUmVjb2duaXRpb25FdmVudCBzdHJ1Y3R1cmUgY29udGFpbmluZyBkZXRhaWxlZCByZXN1bHRzCisgICAgICogICAgICAgICAgICAgIG9mIHRoZSByZWNvZ25pdGlvbiB0cmlnZ2VyZWQKKyAgICAgKiBAcGFyYW0gY29va2llIFRoZSBjb29raWUgcGFzc2VkIGJ5IHRoZSBmcmFtZXdvcmsgd2hlbiByZWNvZ25pdGlvbiB3YXMKKyAgICAgKiAgICAgICAgICAgICAgIHN0YXJ0ZWQgKHNlZSBJU291bmR0cmlnZ2VySHcuc3RhcnRSZWNvZ25pdGlvbigpCisgICAgICovCisgICAgcmVjb2duaXRpb25DYWxsYmFjayhSZWNvZ25pdGlvbkV2ZW50IGV2ZW50LCBDYWxsYmFja0Nvb2tpZSBjb29raWUpOworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgbWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gdGhlIHNvdW5kIHJlY29nbml0aW9uIHRyaWdnZXJzCisgICAgICogZm9yIGEga2V5IHBocmFzZSBzb3VuZCBtb2RlbC4KKyAgICAgKiBAcGFyYW0gZXZlbnQgQSBSZWNvZ25pdGlvbkV2ZW50IHN0cnVjdHVyZSBjb250YWluaW5nIGRldGFpbGVkIHJlc3VsdHMKKyAgICAgKiAgICAgICAgICAgICAgb2YgdGhlIHJlY29nbml0aW9uIHRyaWdnZXJlZAorICAgICAqIEBwYXJhbSBjb29raWUgVGhlIGNvb2tpZSBwYXNzZWQgYnkgdGhlIGZyYW1ld29yayB3aGVuIHJlY29nbml0aW9uIHdhcworICAgICAqICAgICAgICAgICAgICAgc3RhcnRlZCAoc2VlIElTb3VuZHRyaWdnZXJIdy5zdGFydFJlY29nbml0aW9uKCkKKyAgICAgKi8KKyAgICBwaHJhc2VSZWNvZ25pdGlvbkNhbGxiYWNrKFBocmFzZVJlY29nbml0aW9uRXZlbnQgZXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxsYmFja0Nvb2tpZSBjb29raWUpOworICAgIC8qKgorICAgICAqIENhbGxiYWNrIG1ldGhvZCBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuIHRoZSBzb3VuZCBtb2RlbCBsb2FkaW5nIGNvbXBsZXRlcworICAgICAqIEBwYXJhbSBldmVudCBBIE1vZGVsRXZlbnQgc3RydWN0dXJlIGNvbnRhaW5pbmcgZGV0YWlsZWQgcmVzdWx0cyBvZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgbW9kZWwgbG9hZGluZyBvcGVyYXRpb24KKyAgICAgKiBAcGFyYW0gY29va2llIFRoZSBjb29raWUgcGFzc2VkIGJ5IHRoZSBmcmFtZXdvcmsgd2hlbiBsb2FkaW5nIHdhcworICAgICAqICAgICAgICAgICAgICAgaW5pdGlhdGVkIChzZWUgSVNvdW5kdHJpZ2dlckh3LmxvYWRTb3VuZE1vZGVsKCkKKyAgICAgKi8KKyAgICBzb3VuZE1vZGVsQ2FsbGJhY2soTW9kZWxFdmVudCBldmVudCwgQ2FsbGJhY2tDb29raWUgY29va2llKTsKK307CmRpZmYgLS1naXQgYS9zb3VuZHRyaWdnZXIvMi4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2OGM2YjQKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQzIEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBTb3VuZFRyaWdnZXJIYWxJbXBsLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICAgICAgbGliaGlkbGJhc2UgXAorICAgICAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICAgICAgbGlibG9nIFwKKyAgICAgICAgbGlidXRpbHMgXAorICAgICAgICBsaWJoYXJkd2FyZSBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMAorCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gJChMT0NBTF9QQVRIKQorCitpZmVxICgkKHN0cmlwICQoQVVESU9TRVJWRVJfTVVMVElMSUIpKSwpCitMT0NBTF9NVUxUSUxJQiA6PSAzMgorZWxzZQorTE9DQUxfTVVMVElMSUIgOj0gJChBVURJT1NFUlZFUl9NVUxUSUxJQikKK2VuZGlmCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9Tb3VuZFRyaWdnZXJIYWxJbXBsLmNwcCBiL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9Tb3VuZFRyaWdnZXJIYWxJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTY1MTliCi0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC9kZWZhdWx0L1NvdW5kVHJpZ2dlckhhbEltcGwuY3BwCkBAIC0wLDAgKzEsNTgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJTb3VuZFRyaWdnZXJIYWxJbXBsIgorLy8jZGVmaW5lIExPR19OREVCVUcgMAorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlICJTb3VuZFRyaWdnZXJIYWxJbXBsLmgiCisKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBzb3VuZHRyaWdnZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gc3RhdGljCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OnNvdW5kTW9kZWxDYWxsYmFjayhzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9tb2RlbF9ldmVudCAqaGFsRXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmNvb2tpZSkKK3sKKyAgICBpZiAoaGFsRXZlbnQgPT0gTlVMTCkgeworICAgICAgICBBTE9HVygic291bmRNb2RlbENhbGxiYWNrIGNhbGxlZCB3aXRoIE5VTEwgZXZlbnQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzcDxTb3VuZE1vZGVsQ2xpZW50PiBjbGllbnQgPQorICAgICAgICAgICAgd3A8U291bmRNb2RlbENsaWVudD4oc3RhdGljX2Nhc3Q8U291bmRNb2RlbENsaWVudCAqPihjb29raWUpKS5wcm9tb3RlKCk7CisgICAgaWYgKGNsaWVudCA9PSAwKSB7CisgICAgICAgIEFMT0dXKCJzb3VuZE1vZGVsQ2FsbGJhY2sgY2FsbGVkIG9uIHN0YWxlIGNsaWVudCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChoYWxFdmVudC0+bW9kZWwgIT0gY2xpZW50LT5tSGFsSGFuZGxlKSB7CisgICAgICAgIEFMT0dXKCJzb3VuZE1vZGVsQ2FsbGJhY2sgY2FsbCB3aXRoIHdyb25nIGhhbmRsZSAlZCBvbiBjbGllbnQgd2l0aCBoYW5kbGUgJWQiLAorICAgICAgICAgICAgICAoaW50KWhhbEV2ZW50LT5tb2RlbCwgKGludCljbGllbnQtPm1IYWxIYW5kbGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6Ok1vZGVsRXZlbnQgZXZlbnQ7CisgICAgY29udmVydFNvdW5kTW9kZWxFdmVudEZyb21IYWwoJmV2ZW50LCBoYWxFdmVudCk7CisgICAgZXZlbnQubW9kZWwgPSBjbGllbnQtPm1JZDsKKworICAgIGNsaWVudC0+bUNhbGxiYWNrLT5zb3VuZE1vZGVsQ2FsbGJhY2soZXZlbnQsIGNsaWVudC0+bUNvb2tpZSk7Cit9CisKKy8vIHN0YXRpYwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpyZWNvZ25pdGlvbkNhbGxiYWNrKHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2V2ZW50ICpoYWxFdmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKQoreworICAgIGlmIChoYWxFdmVudCA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dXKCJyZWNvZ25pdGlvbkNhbGxiYWNrIGNhbGwgTlVMTCBldmVudCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNwPFNvdW5kTW9kZWxDbGllbnQ+IGNsaWVudCA9CisgICAgICAgICAgICB3cDxTb3VuZE1vZGVsQ2xpZW50PihzdGF0aWNfY2FzdDxTb3VuZE1vZGVsQ2xpZW50ICo+KGNvb2tpZSkpLnByb21vdGUoKTsKKyAgICBpZiAoY2xpZW50ID09IDApIHsKKyAgICAgICAgQUxPR1coInNvdW5kTW9kZWxDYWxsYmFjayBjYWxsZWQgb24gc3RhbGUgY2xpZW50Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6UmVjb2duaXRpb25FdmVudCAqZXZlbnQgPSBjb252ZXJ0UmVjb2duaXRpb25FdmVudEZyb21IYWwoaGFsRXZlbnQpOworICAgIGV2ZW50LT5tb2RlbCA9IGNsaWVudC0+bUlkOworICAgIGlmIChoYWxFdmVudC0+dHlwZSA9PSBTT1VORF9NT0RFTF9UWVBFX0tFWVBIUkFTRSkgeworICAgICAgICBjbGllbnQtPm1DYWxsYmFjay0+cGhyYXNlUmVjb2duaXRpb25DYWxsYmFjaygKKyAgICAgICAgICAgICAgICAqKHJlaW50ZXJwcmV0X2Nhc3Q8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlBocmFzZVJlY29nbml0aW9uRXZlbnQgKj4oZXZlbnQpKSwKKyAgICAgICAgICAgICAgICBjbGllbnQtPm1Db29raWUpOworICAgIH0gZWxzZSB7CisgICAgICAgIGNsaWVudC0+bUNhbGxiYWNrLT5yZWNvZ25pdGlvbkNhbGxiYWNrKCpldmVudCwgY2xpZW50LT5tQ29va2llKTsKKyAgICB9CisgICAgZGVsZXRlIGV2ZW50OworfQorCisKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6SVNvdW5kVHJpZ2dlckh3IGZvbGxvdy4KK1JldHVybjx2b2lkPiBTb3VuZFRyaWdnZXJIYWxJbXBsOjpnZXRQcm9wZXJ0aWVzKGdldFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpCit7CisgICAgQUxPR1YoImdldFByb3BlcnRpZXMoKSBtSHdEZXZpY2UgJXAiLCBtSHdEZXZpY2UpOworICAgIGludCByZXQ7CisgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfcHJvcGVydGllcyBoYWxQcm9wZXJ0aWVzOworICAgIElTb3VuZFRyaWdnZXJIdzo6UHJvcGVydGllcyBwcm9wZXJ0aWVzOworCisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICByZXQgPSBtSHdEZXZpY2UtPmdldF9wcm9wZXJ0aWVzKG1Id0RldmljZSwgJmhhbFByb3BlcnRpZXMpOworCisgICAgY29udmVydFByb3BlcnRpZXNGcm9tSGFsKCZwcm9wZXJ0aWVzLCAmaGFsUHJvcGVydGllcyk7CisKKyAgICBBTE9HVigiZ2V0UHJvcGVydGllcyBpbXBsZW1lbnRvciAlcyByZWNvZ25pdGlvbk1vZGVzICUwOHgiLAorICAgICAgICAgIHByb3BlcnRpZXMuaW1wbGVtZW50b3IuY19zdHIoKSwgcHJvcGVydGllcy5yZWNvZ25pdGlvbk1vZGVzKTsKKworZXhpdDoKKyAgICBfaGlkbF9jYihyZXQsIHByb3BlcnRpZXMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK2ludCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpkb0xvYWRTb3VuZE1vZGVsKGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6U291bmRNb2RlbCYgc291bmRNb2RlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBjb29raWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKm1vZGVsSWQpCit7CisgICAgaW50MzJfdCByZXQgPSAwOworICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsICpoYWxTb3VuZE1vZGVsOworICAgICptb2RlbElkID0gMDsKKyAgICBzcDxTb3VuZE1vZGVsQ2xpZW50PiBjbGllbnQ7CisKKyAgICBBTE9HVigiZG9Mb2FkU291bmRNb2RlbCgpIGRhdGEgc2l6ZSAlenUiLCBzb3VuZE1vZGVsLmRhdGEuc2l6ZSgpKTsKKworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaGFsU291bmRNb2RlbCA9IGNvbnZlcnRTb3VuZE1vZGVsVG9IYWwoJnNvdW5kTW9kZWwpOworICAgIGlmIChoYWxTb3VuZE1vZGVsID09IE5VTEwpIHsKKyAgICAgICAgcmV0ID0gLUVJTlZBTDsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHsKKyAgICAgICAgQXV0b011dGV4IGxvY2sobUxvY2spOworICAgICAgICBkbyB7CisgICAgICAgICAgICAqbW9kZWxJZCA9IG5leHRVbmlxdWVJZCgpOworICAgICAgICB9IHdoaWxlIChtQ2xpZW50cy52YWx1ZUZvcigqbW9kZWxJZCkgIT0gMCAmJiAqbW9kZWxJZCAhPSAwKTsKKyAgICB9CisgICAgTE9HX0FMV0FZU19GQVRBTF9JRigqbW9kZWxJZCA9PSAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIndyYXAgYXJvdW5kIGluIHNvdW5kIG1vZGVsIElEcywgbnVtIGxvYWRlZCBtb2RlbHMgJXp1IiwgbUNsaWVudHMuc2l6ZSgpKTsKKworICAgIGNsaWVudCA9IG5ldyBTb3VuZE1vZGVsQ2xpZW50KCptb2RlbElkLCBjYWxsYmFjaywgY29va2llKTsKKworICAgIHJldCA9IG1Id0RldmljZS0+bG9hZF9zb3VuZF9tb2RlbChtSHdEZXZpY2UsIGhhbFNvdW5kTW9kZWwsIHNvdW5kTW9kZWxDYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC5nZXQoKSwgJmNsaWVudC0+bUhhbEhhbmRsZSk7CisKKyAgICBmcmVlKGhhbFNvdW5kTW9kZWwpOworCisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICB7CisgICAgICAgIEF1dG9NdXRleCBsb2NrKG1Mb2NrKTsKKyAgICAgICAgbUNsaWVudHMuYWRkKCptb2RlbElkLCBjbGllbnQpOworICAgIH0KKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorCitSZXR1cm48dm9pZD4gU291bmRUcmlnZ2VySGFsSW1wbDo6bG9hZFNvdW5kTW9kZWwoY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsJiBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElTb3VuZFRyaWdnZXJId0NhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkU291bmRNb2RlbF9jYiBfaGlkbF9jYikKK3sKKyAgICB1aW50MzJfdCBtb2RlbElkID0gMDsKKyAgICBpbnQzMl90IHJldCA9IGRvTG9hZFNvdW5kTW9kZWwoc291bmRNb2RlbCwgY2FsbGJhY2ssIGNvb2tpZSwgJm1vZGVsSWQpOworCisgICAgX2hpZGxfY2IocmV0LCBtb2RlbElkKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU291bmRUcmlnZ2VySGFsSW1wbDo6bG9hZFBocmFzZVNvdW5kTW9kZWwoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6UGhyYXNlU291bmRNb2RlbCYgc291bmRNb2RlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Ojpsb2FkUGhyYXNlU291bmRNb2RlbF9jYiBfaGlkbF9jYikKK3sKKyAgICB1aW50MzJfdCBtb2RlbElkID0gMDsKKyAgICBpbnQzMl90IHJldCA9IGRvTG9hZFNvdW5kTW9kZWwoKGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6U291bmRNb2RlbCYpc291bmRNb2RlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssIGNvb2tpZSwgJm1vZGVsSWQpOworCisgICAgX2hpZGxfY2IocmV0LCBtb2RlbElkKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48aW50MzJfdD4gU291bmRUcmlnZ2VySGFsSW1wbDo6dW5sb2FkU291bmRNb2RlbChTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlKQoreworICAgIGludDMyX3QgcmV0OworICAgIHNwPFNvdW5kTW9kZWxDbGllbnQ+IGNsaWVudDsKKworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgeworICAgICAgICBBdXRvTXV0ZXggbG9jayhtTG9jayk7CisgICAgICAgIGNsaWVudCA9IG1DbGllbnRzLnZhbHVlRm9yKG1vZGVsSGFuZGxlKTsKKyAgICAgICAgaWYgKGNsaWVudCA9PSAwKSB7CisgICAgICAgICAgICByZXQgPSAtRU5PU1lTOworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0ID0gbUh3RGV2aWNlLT51bmxvYWRfc291bmRfbW9kZWwobUh3RGV2aWNlLCBjbGllbnQtPm1IYWxIYW5kbGUpOworCisgICAgbUNsaWVudHMucmVtb3ZlSXRlbShtb2RlbEhhbmRsZSk7CisKK2V4aXQ6CisgICAgcmV0dXJuIHJldDsKK30KKworUmV0dXJuPGludDMyX3Q+IFNvdW5kVHJpZ2dlckhhbEltcGw6OnN0YXJ0UmVjb2duaXRpb24oU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJU291bmRUcmlnZ2VySHc6OlJlY29nbml0aW9uQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+JiBjYWxsYmFjayBfX3VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6Q2FsbGJhY2tDb29raWUgY29va2llIF9fdW51c2VkKQoreworICAgIGludDMyX3QgcmV0OworICAgIHNwPFNvdW5kTW9kZWxDbGllbnQ+IGNsaWVudDsKKyAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9yZWNvZ25pdGlvbl9jb25maWcgKmhhbENvbmZpZzsKKworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgeworICAgICAgICBBdXRvTXV0ZXggbG9jayhtTG9jayk7CisgICAgICAgIGNsaWVudCA9IG1DbGllbnRzLnZhbHVlRm9yKG1vZGVsSGFuZGxlKTsKKyAgICAgICAgaWYgKGNsaWVudCA9PSAwKSB7CisgICAgICAgICAgICByZXQgPSAtRU5PU1lTOworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisgICAgfQorCisKKyAgICBoYWxDb25maWcgPSBjb252ZXJ0UmVjb2duaXRpb25Db25maWdUb0hhbCgmY29uZmlnKTsKKworICAgIGlmIChoYWxDb25maWcgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRUlOVkFMOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIHJldCA9IG1Id0RldmljZS0+c3RhcnRfcmVjb2duaXRpb24obUh3RGV2aWNlLCBjbGllbnQtPm1IYWxIYW5kbGUsIGhhbENvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29nbml0aW9uQ2FsbGJhY2ssIGNsaWVudC5nZXQoKSk7CisKKyAgICBmcmVlKGhhbENvbmZpZyk7CisKK2V4aXQ6CisgICAgcmV0dXJuIHJldDsKK30KKworUmV0dXJuPGludDMyX3Q+IFNvdW5kVHJpZ2dlckhhbEltcGw6OnN0b3BSZWNvZ25pdGlvbihTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlKQoreworICAgIGludDMyX3QgcmV0OworICAgIHNwPFNvdW5kTW9kZWxDbGllbnQ+IGNsaWVudDsKKyAgICBpZiAobUh3RGV2aWNlID09IE5VTEwpIHsKKyAgICAgICAgcmV0ID0gLUVOT0RFVjsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHsKKyAgICAgICAgQXV0b011dGV4IGxvY2sobUxvY2spOworICAgICAgICBjbGllbnQgPSBtQ2xpZW50cy52YWx1ZUZvcihtb2RlbEhhbmRsZSk7CisgICAgICAgIGlmIChjbGllbnQgPT0gMCkgeworICAgICAgICAgICAgcmV0ID0gLUVOT1NZUzsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldCA9IG1Id0RldmljZS0+c3RvcF9yZWNvZ25pdGlvbihtSHdEZXZpY2UsIGNsaWVudC0+bUhhbEhhbmRsZSk7CisKK2V4aXQ6CisgICAgcmV0dXJuIHJldDsKK30KKworUmV0dXJuPGludDMyX3Q+IFNvdW5kVHJpZ2dlckhhbEltcGw6OnN0b3BBbGxSZWNvZ25pdGlvbnMoKQoreworICAgIGludDMyX3QgcmV0OworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKG1Id0RldmljZS0+Y29tbW9uLnZlcnNpb24gPj0gU09VTkRfVFJJR0dFUl9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8xICYmCisgICAgICAgICAgICBtSHdEZXZpY2UtPnN0b3BfYWxsX3JlY29nbml0aW9ucykgeworICAgICAgICByZXQgPSBtSHdEZXZpY2UtPnN0b3BfYWxsX3JlY29nbml0aW9ucyhtSHdEZXZpY2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldCA9IC1FTk9TWVM7CisgICAgfQorZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorCitTb3VuZFRyaWdnZXJIYWxJbXBsOjpTb3VuZFRyaWdnZXJIYWxJbXBsKCkKKyAgICA6IG1Nb2R1bGVOYW1lKCJwcmltYXJ5IiksIG1Id0RldmljZShOVUxMKSwgbU5leHRNb2RlbElkKDEpCit7Cit9CisKK3ZvaWQgU291bmRUcmlnZ2VySGFsSW1wbDo6b25GaXJzdFJlZigpCit7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKm1vZDsKKyAgICBpbnQgcmM7CisKKyAgICByYyA9IGh3X2dldF9tb2R1bGVfYnlfY2xhc3MoU09VTkRfVFJJR0dFUl9IQVJEV0FSRV9NT0RVTEVfSUQsIG1Nb2R1bGVOYW1lLCAmbW9kKTsKKyAgICBpZiAocmMgIT0gMCkgeworICAgICAgICBBTE9HRSgiY291bGRuJ3QgbG9hZCBzb3VuZCB0cmlnZ2VyIG1vZHVsZSAlcy4lcyAoJXMpIiwKKyAgICAgICAgICAgICAgU09VTkRfVFJJR0dFUl9IQVJEV0FSRV9NT0RVTEVfSUQsIG1Nb2R1bGVOYW1lLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICByYyA9IHNvdW5kX3RyaWdnZXJfaHdfZGV2aWNlX29wZW4obW9kLCAmbUh3RGV2aWNlKTsKKyAgICBpZiAocmMgIT0gMCkgeworICAgICAgICBBTE9HRSgiY291bGRuJ3Qgb3BlbiBzb3VuZCB0cmlnZ2VyIGh3IGRldmljZSBpbiAlcy4lcyAoJXMpIiwKKyAgICAgICAgICAgICAgU09VTkRfVFJJR0dFUl9IQVJEV0FSRV9NT0RVTEVfSUQsIG1Nb2R1bGVOYW1lLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgbUh3RGV2aWNlID0gTlVMTDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobUh3RGV2aWNlLT5jb21tb24udmVyc2lvbiA8IFNPVU5EX1RSSUdHRVJfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCB8fAorICAgICAgICAgICAgbUh3RGV2aWNlLT5jb21tb24udmVyc2lvbiA+IFNPVU5EX1RSSUdHRVJfREVWSUNFX0FQSV9WRVJTSU9OX0NVUlJFTlQpIHsKKyAgICAgICAgQUxPR0UoIndyb25nIHNvdW5kIHRyaWdnZXIgaHcgZGV2aWNlIHZlcnNpb24gJTA0eCIsIG1Id0RldmljZS0+Y29tbW9uLnZlcnNpb24pOworICAgICAgICBzb3VuZF90cmlnZ2VyX2h3X2RldmljZV9jbG9zZShtSHdEZXZpY2UpOworICAgICAgICBtSHdEZXZpY2UgPSBOVUxMOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQUxPR0koIm9uRmlyc3RSZWYoKSBtTW9kdWxlTmFtZSAlcyBtSHdEZXZpY2UgJXAiLCBtTW9kdWxlTmFtZSwgbUh3RGV2aWNlKTsKK30KKworU291bmRUcmlnZ2VySGFsSW1wbDo6flNvdW5kVHJpZ2dlckhhbEltcGwoKQoreworICAgIGlmIChtSHdEZXZpY2UgIT0gTlVMTCkgeworICAgICAgICBzb3VuZF90cmlnZ2VyX2h3X2RldmljZV9jbG9zZShtSHdEZXZpY2UpOworICAgIH0KK30KKwordWludDMyX3QgU291bmRUcmlnZ2VySGFsSW1wbDo6bmV4dFVuaXF1ZUlkKCkKK3sKKyAgICByZXR1cm4gKHVpbnQzMl90KSBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KCZtTmV4dE1vZGVsSWQsCisgICAgICAgICAgICAgICAgKHVpbnRfZmFzdDMyX3QpIDEsIG1lbW9yeV9vcmRlcl9hY3FfcmVsKTsKK30KKwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0VXVpZEZyb21IYWwoVXVpZCAqdXVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdW5kX3RyaWdnZXJfdXVpZF90ICpoYWxVdWlkKQoreworICAgIHV1aWQtPnRpbWVMb3cgPSBoYWxVdWlkLT50aW1lTG93OworICAgIHV1aWQtPnRpbWVNaWQgPSBoYWxVdWlkLT50aW1lTWlkOworICAgIHV1aWQtPnZlcnNpb25BbmRUaW1lSGlnaCA9IGhhbFV1aWQtPnRpbWVIaUFuZFZlcnNpb247CisgICAgdXVpZC0+dmFyaWFudEFuZENsb2NrU2VxSGlnaCA9IGhhbFV1aWQtPmNsb2NrU2VxOworICAgIG1lbWNweSgmdXVpZC0+bm9kZVswXSwgJmhhbFV1aWQtPm5vZGVbMF0sIDYpOworfQorCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRVdWlkVG9IYWwoc291bmRfdHJpZ2dlcl91dWlkX3QgKmhhbFV1aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVXVpZCAqdXVpZCkKK3sKKyAgICBoYWxVdWlkLT50aW1lTG93ID0gdXVpZC0+dGltZUxvdzsKKyAgICBoYWxVdWlkLT50aW1lTWlkID0gdXVpZC0+dGltZU1pZDsKKyAgICBoYWxVdWlkLT50aW1lSGlBbmRWZXJzaW9uID0gdXVpZC0+dmVyc2lvbkFuZFRpbWVIaWdoOworICAgIGhhbFV1aWQtPmNsb2NrU2VxID0gdXVpZC0+dmFyaWFudEFuZENsb2NrU2VxSGlnaDsKKyAgICBtZW1jcHkoJmhhbFV1aWQtPm5vZGVbMF0sICZ1dWlkLT5ub2RlWzBdLCA2KTsKK30KKwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0UHJvcGVydGllc0Zyb21IYWwoCisgICAgICAgIElTb3VuZFRyaWdnZXJIdzo6UHJvcGVydGllcyAqcHJvcGVydGllcywKKyAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfcHJvcGVydGllcyAqaGFsUHJvcGVydGllcykKK3sKKyAgICBwcm9wZXJ0aWVzLT5pbXBsZW1lbnRvciA9IGhhbFByb3BlcnRpZXMtPmltcGxlbWVudG9yOworICAgIHByb3BlcnRpZXMtPmRlc2NyaXB0aW9uID0gaGFsUHJvcGVydGllcy0+ZGVzY3JpcHRpb247CisgICAgcHJvcGVydGllcy0+dmVyc2lvbiA9IGhhbFByb3BlcnRpZXMtPnZlcnNpb247CisgICAgY29udmVydFV1aWRGcm9tSGFsKCZwcm9wZXJ0aWVzLT51dWlkLCAmaGFsUHJvcGVydGllcy0+dXVpZCk7CisgICAgcHJvcGVydGllcy0+bWF4U291bmRNb2RlbHMgPSBoYWxQcm9wZXJ0aWVzLT5tYXhfc291bmRfbW9kZWxzOworICAgIHByb3BlcnRpZXMtPm1heEtleVBocmFzZXMgPSBoYWxQcm9wZXJ0aWVzLT5tYXhfa2V5X3BocmFzZXM7CisgICAgcHJvcGVydGllcy0+bWF4VXNlcnMgPSBoYWxQcm9wZXJ0aWVzLT5tYXhfdXNlcnM7CisgICAgcHJvcGVydGllcy0+cmVjb2duaXRpb25Nb2RlcyA9IGhhbFByb3BlcnRpZXMtPnJlY29nbml0aW9uX21vZGVzOworICAgIHByb3BlcnRpZXMtPmNhcHR1cmVUcmFuc2l0aW9uID0gaGFsUHJvcGVydGllcy0+Y2FwdHVyZV90cmFuc2l0aW9uOworICAgIHByb3BlcnRpZXMtPm1heEJ1ZmZlck1zID0gaGFsUHJvcGVydGllcy0+bWF4X2J1ZmZlcl9tczsKKyAgICBwcm9wZXJ0aWVzLT5jb25jdXJyZW50Q2FwdHVyZSA9IGhhbFByb3BlcnRpZXMtPmNvbmN1cnJlbnRfY2FwdHVyZTsKKyAgICBwcm9wZXJ0aWVzLT50cmlnZ2VySW5FdmVudCA9IGhhbFByb3BlcnRpZXMtPnRyaWdnZXJfaW5fZXZlbnQ7CisgICAgcHJvcGVydGllcy0+cG93ZXJDb25zdW1wdGlvbk13ID0gaGFsUHJvcGVydGllcy0+cG93ZXJfY29uc3VtcHRpb25fbXc7CisKK30KKwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0VHJpZ2dlclBocmFzZVRvSGFsKAorICAgICAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2UgKmhhbFRyaWdnZXJQaHJhc2UsCisgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6UGhyYXNlICp0cmlnZ2VyUGhyYXNlKQoreworICAgIGhhbFRyaWdnZXJQaHJhc2UtPmlkID0gdHJpZ2dlclBocmFzZS0+aWQ7CisgICAgaGFsVHJpZ2dlclBocmFzZS0+cmVjb2duaXRpb25fbW9kZSA9IHRyaWdnZXJQaHJhc2UtPnJlY29nbml0aW9uTW9kZXM7CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IHRyaWdnZXJQaHJhc2UtPnVzZXJzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGhhbFRyaWdnZXJQaHJhc2UtPnVzZXJzW2ldID0gdHJpZ2dlclBocmFzZS0+dXNlcnNbaV07CisgICAgfQorICAgIGhhbFRyaWdnZXJQaHJhc2UtPm51bV91c2VycyA9IGk7CisKKyAgICBzdHJsY3B5KGhhbFRyaWdnZXJQaHJhc2UtPmxvY2FsZSwKKyAgICAgICAgICAgIHRyaWdnZXJQaHJhc2UtPmxvY2FsZS5jX3N0cigpLCBTT1VORF9UUklHR0VSX01BWF9MT0NBTEVfTEVOKTsKKyAgICBzdHJsY3B5KGhhbFRyaWdnZXJQaHJhc2UtPnRleHQsCisgICAgICAgICAgICB0cmlnZ2VyUGhyYXNlLT50ZXh0LmNfc3RyKCksIFNPVU5EX1RSSUdHRVJfTUFYX1NUUklOR19MRU4pOworfQorCitzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9zb3VuZF9tb2RlbCAqU291bmRUcmlnZ2VySGFsSW1wbDo6Y29udmVydFNvdW5kTW9kZWxUb0hhbCgKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsICpzb3VuZE1vZGVsKQoreworICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsICpoYWxNb2RlbCA9IE5VTEw7CisgICAgaWYgKHNvdW5kTW9kZWwtPnR5cGUgPT0gU291bmRNb2RlbFR5cGU6OktFWVBIUkFTRSkgeworICAgICAgICBzaXplX3QgYWxsb2NTaXplID0KKyAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IHNvdW5kX3RyaWdnZXJfcGhyYXNlX3NvdW5kX21vZGVsKSArIHNvdW5kTW9kZWwtPmRhdGEuc2l6ZSgpOworICAgICAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2Vfc291bmRfbW9kZWwgKmhhbEtleVBocmFzZU1vZGVsID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2Vfc291bmRfbW9kZWwgKj4obWFsbG9jKGFsbG9jU2l6ZSkpOworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKGhhbEtleVBocmFzZU1vZGVsID09IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAibWFsbG9jIGZhaWxlZCBmb3Igc2l6ZSAlenUgaW4gY29udmVydFNvdW5kTW9kZWxUb0hhbCBQSFJBU0UiLCBhbGxvY1NpemUpOworCisgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6UGhyYXNlU291bmRNb2RlbCAqa2V5UGhyYXNlTW9kZWwgPQorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2VTb3VuZE1vZGVsICo+KHNvdW5kTW9kZWwpOworCisgICAgICAgIHNpemVfdCBpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwga2V5UGhyYXNlTW9kZWwtPnBocmFzZXMuc2l6ZSgpICYmIGkgPCBTT1VORF9UUklHR0VSX01BWF9QSFJBU0VTOyBpKyspIHsKKyAgICAgICAgICAgIGNvbnZlcnRUcmlnZ2VyUGhyYXNlVG9IYWwoJmhhbEtleVBocmFzZU1vZGVsLT5waHJhc2VzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5UGhyYXNlTW9kZWwtPnBocmFzZXNbaV0pOworICAgICAgICB9CisgICAgICAgIGhhbEtleVBocmFzZU1vZGVsLT5udW1fcGhyYXNlcyA9ICh1bnNpZ25lZCBpbnQpaTsKKyAgICAgICAgaGFsTW9kZWwgPSByZWludGVycHJldF9jYXN0PHN0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsICo+KGhhbEtleVBocmFzZU1vZGVsKTsKKyAgICAgICAgaGFsTW9kZWwtPmRhdGFfb2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9zb3VuZF9tb2RlbCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2l6ZV90IGFsbG9jU2l6ZSA9CisgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsKSArIHNvdW5kTW9kZWwtPmRhdGEuc2l6ZSgpOworICAgICAgICBoYWxNb2RlbCA9IHN0YXRpY19jYXN0PHN0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsICo+KG1hbGxvYyhhbGxvY1NpemUpKTsKKyAgICAgICAgTE9HX0FMV0FZU19GQVRBTF9JRihoYWxNb2RlbCA9PSBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYWxsb2MgZmFpbGVkIGZvciBzaXplICV6dSBpbiBjb252ZXJ0U291bmRNb2RlbFRvSGFsIEdFTkVSSUMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jU2l6ZSk7CisKKyAgICAgICAgaGFsTW9kZWwtPmRhdGFfb2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsKTsKKyAgICB9CisgICAgaGFsTW9kZWwtPnR5cGUgPSAoc291bmRfdHJpZ2dlcl9zb3VuZF9tb2RlbF90eXBlX3Qpc291bmRNb2RlbC0+dHlwZTsKKyAgICBjb252ZXJ0VXVpZFRvSGFsKCZoYWxNb2RlbC0+dXVpZCwgJnNvdW5kTW9kZWwtPnV1aWQpOworICAgIGNvbnZlcnRVdWlkVG9IYWwoJmhhbE1vZGVsLT52ZW5kb3JfdXVpZCwgJnNvdW5kTW9kZWwtPnZlbmRvclV1aWQpOworICAgIGhhbE1vZGVsLT5kYXRhX3NpemUgPSBzb3VuZE1vZGVsLT5kYXRhLnNpemUoKTsKKyAgICB1aW50OF90ICpkc3QgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QgKj4oaGFsTW9kZWwpICsgaGFsTW9kZWwtPmRhdGFfb2Zmc2V0OworICAgIGNvbnN0IHVpbnQ4X3QgKnNyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPigmc291bmRNb2RlbC0+ZGF0YVswXSk7CisgICAgbWVtY3B5KGRzdCwgc3JjLCBzb3VuZE1vZGVsLT5kYXRhLnNpemUoKSk7CisKKyAgICByZXR1cm4gaGFsTW9kZWw7Cit9CisKK3ZvaWQgU291bmRUcmlnZ2VySGFsSW1wbDo6Y29udmVydFBocmFzZVJlY29nbml0aW9uRXh0cmFUb0hhbCgKKyAgICAgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfcGhyYXNlX3JlY29nbml0aW9uX2V4dHJhICpoYWxFeHRyYSwKKyAgICAgICAgY29uc3QgUGhyYXNlUmVjb2duaXRpb25FeHRyYSAqZXh0cmEpCit7CisgICAgaGFsRXh0cmEtPmlkID0gZXh0cmEtPmlkOworICAgIGhhbEV4dHJhLT5yZWNvZ25pdGlvbl9tb2RlcyA9IGV4dHJhLT5yZWNvZ25pdGlvbk1vZGVzOworICAgIGhhbEV4dHJhLT5jb25maWRlbmNlX2xldmVsID0gZXh0cmEtPmNvbmZpZGVuY2VMZXZlbDsKKworICAgIHVuc2lnbmVkIGludCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBleHRyYS0+bGV2ZWxzLnNpemUoKSAmJiBpIDwgU09VTkRfVFJJR0dFUl9NQVhfVVNFUlM7IGkrKykgeworICAgICAgICBoYWxFeHRyYS0+bGV2ZWxzW2ldLnVzZXJfaWQgPSBleHRyYS0+bGV2ZWxzW2ldLnVzZXJJZDsKKyAgICAgICAgaGFsRXh0cmEtPmxldmVsc1tpXS5sZXZlbCA9IGV4dHJhLT5sZXZlbHNbaV0ubGV2ZWxQZXJjZW50OworICAgIH0KKyAgICBoYWxFeHRyYS0+bnVtX2xldmVscyA9IGk7Cit9CisKK3N0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2NvbmZpZyAqU291bmRUcmlnZ2VySGFsSW1wbDo6Y29udmVydFJlY29nbml0aW9uQ29uZmlnVG9IYWwoCisgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6UmVjb2duaXRpb25Db25maWcgKmNvbmZpZykKK3sKKyAgICBzaXplX3QgYWxsb2NTaXplID0gc2l6ZW9mKHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2NvbmZpZykgKyBjb25maWctPmRhdGEuc2l6ZSgpOworICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2NvbmZpZyAqaGFsQ29uZmlnID0KKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2NvbmZpZyAqPihtYWxsb2MoYWxsb2NTaXplKSk7CisKKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKGhhbENvbmZpZyA9PSBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgIm1hbGxvYyBmYWlsZWQgZm9yIHNpemUgJXp1IGluIGNvbnZlcnRSZWNvZ25pdGlvbkNvbmZpZ1RvSGFsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jU2l6ZSk7CisKKyAgICBoYWxDb25maWctPmNhcHR1cmVfaGFuZGxlID0gKGF1ZGlvX2lvX2hhbmRsZV90KWNvbmZpZy0+Y2FwdHVyZUhhbmRsZTsKKyAgICBoYWxDb25maWctPmNhcHR1cmVfZGV2aWNlID0gKGF1ZGlvX2RldmljZXNfdCljb25maWctPmNhcHR1cmVEZXZpY2U7CisgICAgaGFsQ29uZmlnLT5jYXB0dXJlX3JlcXVlc3RlZCA9IGNvbmZpZy0+Y2FwdHVyZVJlcXVlc3RlZDsKKworICAgIHVuc2lnbmVkIGludCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBjb25maWctPnBocmFzZXMuc2l6ZSgpICYmIGkgPCBTT1VORF9UUklHR0VSX01BWF9QSFJBU0VTOyBpKyspIHsKKyAgICAgICAgY29udmVydFBocmFzZVJlY29nbml0aW9uRXh0cmFUb0hhbCgmaGFsQ29uZmlnLT5waHJhc2VzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb25maWctPnBocmFzZXNbaV0pOworICAgIH0KKyAgICBoYWxDb25maWctPm51bV9waHJhc2VzID0gaTsKKworICAgIGhhbENvbmZpZy0+ZGF0YV9vZmZzZXQgPSBzaXplb2Yoc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fY29uZmlnKTsKKyAgICBoYWxDb25maWctPmRhdGFfc2l6ZSA9IGNvbmZpZy0+ZGF0YS5zaXplKCk7CisgICAgdWludDhfdCAqZHN0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90ICo+KGhhbENvbmZpZykgKyBoYWxDb25maWctPmRhdGFfb2Zmc2V0OworICAgIGNvbnN0IHVpbnQ4X3QgKnNyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPigmY29uZmlnLT5kYXRhWzBdKTsKKyAgICBtZW1jcHkoZHN0LCBzcmMsIGNvbmZpZy0+ZGF0YS5zaXplKCkpOworICAgIHJldHVybiBoYWxDb25maWc7Cit9CisKKy8vIHN0YXRpYwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0U291bmRNb2RlbEV2ZW50RnJvbUhhbChJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6TW9kZWxFdmVudCAqZXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9tb2RlbF9ldmVudCAqaGFsRXZlbnQpCit7CisgICAgZXZlbnQtPnN0YXR1cyA9IChJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6U291bmRNb2RlbFN0YXR1cyloYWxFdmVudC0+c3RhdHVzOworICAgIC8vIGV2ZW50LT5tb2RlbCB0byBiZSByZW1hcHBlZCBieSBjYWxsZWQKKyAgICBldmVudC0+ZGF0YS5zZXRUb0V4dGVybmFsKAorICAgICAgICAgICAgY29uc3RfY2FzdDx1aW50OF90ICo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPihoYWxFdmVudCkpICsgaGFsRXZlbnQtPmRhdGFfb2Zmc2V0LAorICAgICAgICAgICAgaGFsRXZlbnQtPmRhdGFfc2l6ZSk7Cit9CisKKy8vIHN0YXRpYworSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uRXZlbnQgKlNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRSZWNvZ25pdGlvbkV2ZW50RnJvbUhhbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fZXZlbnQgKmhhbEV2ZW50KQoreworICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpSZWNvZ25pdGlvbkV2ZW50ICogZXZlbnQ7CisKKyAgICBpZiAoaGFsRXZlbnQtPnR5cGUgPT0gU09VTkRfTU9ERUxfVFlQRV9LRVlQSFJBU0UpIHsKKyAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfcGhyYXNlX3JlY29nbml0aW9uX2V2ZW50ICpoYWxQaHJhc2VFdmVudCA9CisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2VfcmVjb2duaXRpb25fZXZlbnQgKj4oaGFsRXZlbnQpOworICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6UGhyYXNlUmVjb2duaXRpb25FdmVudCAqcGhyYXNlRXZlbnQgPQorICAgICAgICAgICAgICAgIG5ldyBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6UGhyYXNlUmVjb2duaXRpb25FdmVudCgpOworCisgICAgICAgIFBocmFzZVJlY29nbml0aW9uRXh0cmEgKnBocmFzZUV4dHJhcyA9CisgICAgICAgICAgICAgICAgbmV3IFBocmFzZVJlY29nbml0aW9uRXh0cmFbaGFsUGhyYXNlRXZlbnQtPm51bV9waHJhc2VzXTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBoYWxQaHJhc2VFdmVudC0+bnVtX3BocmFzZXM7IGkrKykgeworICAgICAgICAgICAgY29udmVydFBocmFzZVJlY29nbml0aW9uRXh0cmFGcm9tSGFsKCZwaHJhc2VFeHRyYXNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhhbFBocmFzZUV2ZW50LT5waHJhc2VfZXh0cmFzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBwaHJhc2VFdmVudC0+cGhyYXNlRXh0cmFzLnNldFRvRXh0ZXJuYWwocGhyYXNlRXh0cmFzLCBoYWxQaHJhc2VFdmVudC0+bnVtX3BocmFzZXMpOworICAgICAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICAgICAgcGhyYXNlRXZlbnQtPnBocmFzZUV4dHJhcy5yZXNpemUoaGFsUGhyYXNlRXZlbnQtPm51bV9waHJhc2VzKTsKKyAgICAgICAgZGVsZXRlW10gcGhyYXNlRXh0cmFzOworICAgICAgICBldmVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uRXZlbnQgKj4ocGhyYXNlRXZlbnQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGV2ZW50ID0gbmV3IElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpSZWNvZ25pdGlvbkV2ZW50KCk7CisgICAgfQorCisgICAgZXZlbnQtPnN0YXR1cyA9IHN0YXRpY19jYXN0PElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpSZWNvZ25pdGlvblN0YXR1cz4oaGFsRXZlbnQtPnN0YXR1cyk7CisgICAgZXZlbnQtPnR5cGUgPSBzdGF0aWNfY2FzdDxTb3VuZE1vZGVsVHlwZT4oaGFsRXZlbnQtPnR5cGUpOworICAgIC8vIGV2ZW50LT5tb2RlbCB0byBiZSByZW1hcHBlZCBieSBjYWxsZWQKKyAgICBldmVudC0+Y2FwdHVyZUF2YWlsYWJsZSA9IGhhbEV2ZW50LT5jYXB0dXJlX2F2YWlsYWJsZTsKKyAgICBldmVudC0+Y2FwdHVyZVNlc3Npb24gPSBoYWxFdmVudC0+Y2FwdHVyZV9zZXNzaW9uOworICAgIGV2ZW50LT5jYXB0dXJlRGVsYXlNcyA9IGhhbEV2ZW50LT5jYXB0dXJlX2RlbGF5X21zOworICAgIGV2ZW50LT5jYXB0dXJlUHJlYW1ibGVNcyA9IGhhbEV2ZW50LT5jYXB0dXJlX3ByZWFtYmxlX21zOworICAgIGV2ZW50LT50cmlnZ2VySW5EYXRhID0gaGFsRXZlbnQtPnRyaWdnZXJfaW5fZGF0YTsKKyAgICBldmVudC0+YXVkaW9Db25maWcuc2FtcGxlUmF0ZUh6ID0gaGFsRXZlbnQtPmF1ZGlvX2NvbmZpZy5zYW1wbGVfcmF0ZTsKKyAgICBldmVudC0+YXVkaW9Db25maWcuY2hhbm5lbE1hc2sgPQorICAgICAgICAgICAgKGF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ2hhbm5lbE1hc2spaGFsRXZlbnQtPmF1ZGlvX2NvbmZpZy5jaGFubmVsX21hc2s7CisgICAgZXZlbnQtPmF1ZGlvQ29uZmlnLmZvcm1hdCA9IChhdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0Zvcm1hdCloYWxFdmVudC0+YXVkaW9fY29uZmlnLmZvcm1hdDsKKyAgICBldmVudC0+ZGF0YS5zZXRUb0V4dGVybmFsKAorICAgICAgICAgICAgY29uc3RfY2FzdDx1aW50OF90ICo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPihoYWxFdmVudCkpICsgaGFsRXZlbnQtPmRhdGFfb2Zmc2V0LAorICAgICAgICAgICAgaGFsRXZlbnQtPmRhdGFfc2l6ZSk7CisKKyAgICByZXR1cm4gZXZlbnQ7Cit9CisKKy8vIHN0YXRpYwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0UGhyYXNlUmVjb2duaXRpb25FeHRyYUZyb21IYWwoCisgICAgICAgIFBocmFzZVJlY29nbml0aW9uRXh0cmEgKmV4dHJhLAorICAgICAgICBjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2VfcmVjb2duaXRpb25fZXh0cmEgKmhhbEV4dHJhKQoreworICAgIGV4dHJhLT5pZCA9IGhhbEV4dHJhLT5pZDsKKyAgICBleHRyYS0+cmVjb2duaXRpb25Nb2RlcyA9IGhhbEV4dHJhLT5yZWNvZ25pdGlvbl9tb2RlczsKKyAgICBleHRyYS0+Y29uZmlkZW5jZUxldmVsID0gaGFsRXh0cmEtPmNvbmZpZGVuY2VfbGV2ZWw7CisKKyAgICBDb25maWRlbmNlTGV2ZWwgKmxldmVscyA9CisgICAgICAgICAgICBuZXcgQ29uZmlkZW5jZUxldmVsW2hhbEV4dHJhLT5udW1fbGV2ZWxzXTsKKyAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGhhbEV4dHJhLT5udW1fbGV2ZWxzOyBpKyspIHsKKyAgICAgICAgbGV2ZWxzW2ldLnVzZXJJZCA9IGhhbEV4dHJhLT5sZXZlbHNbaV0udXNlcl9pZDsKKyAgICAgICAgbGV2ZWxzW2ldLmxldmVsUGVyY2VudCA9IGhhbEV4dHJhLT5sZXZlbHNbaV0ubGV2ZWw7CisgICAgfQorICAgIGV4dHJhLT5sZXZlbHMuc2V0VG9FeHRlcm5hbChsZXZlbHMsIGhhbEV4dHJhLT5udW1fbGV2ZWxzKTsKKyAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICBleHRyYS0+bGV2ZWxzLnJlc2l6ZShoYWxFeHRyYS0+bnVtX2xldmVscyk7CisgICAgZGVsZXRlW10gbGV2ZWxzOworfQorCitJU291bmRUcmlnZ2VySHcgKkhJRExfRkVUQ0hfSVNvdW5kVHJpZ2dlckh3KGNvbnN0IGNoYXIqIC8qIG5hbWUgKi8pCit7CisgICAgcmV0dXJuIG5ldyBTb3VuZFRyaWdnZXJIYWxJbXBsKCk7Cit9Cit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBzb3VuZHRyaWdnZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9Tb3VuZFRyaWdnZXJIYWxJbXBsLmggYi9zb3VuZHRyaWdnZXIvMi4wL2RlZmF1bHQvU291bmRUcmlnZ2VySGFsSW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3Njk1OTAKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL2RlZmF1bHQvU291bmRUcmlnZ2VySGFsSW1wbC5oCkBAIC0wLDAgKzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX1NPVU5EVFJJR0dFUl9WMl8wX0lNUExFTUVOVEFUSU9OX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9TT1VORFRSSUdHRVJfVjJfMF9JTVBMRU1FTlRBVElPTl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJId0NhbGxiYWNrLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxzdGRhdG9taWMuaD4KKyNpbmNsdWRlIDx1dGlscy90aHJlYWRzLmg+CisjaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vc291bmRfdHJpZ2dlci5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3NvdW5kX3RyaWdnZXIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBzb3VuZHRyaWdnZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VXVpZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s7CisKKworY2xhc3MgU291bmRUcmlnZ2VySGFsSW1wbCA6IHB1YmxpYyBJU291bmRUcmlnZ2VySHcgeworcHVibGljOgorICAgICAgICBTb3VuZFRyaWdnZXJIYWxJbXBsKCk7CisKKyAgICAgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6SVNvdW5kVHJpZ2dlckh3IGZvbGxvdy4KKyAgICAgICAgUmV0dXJuPHZvaWQ+IGdldFByb3BlcnRpZXMoZ2V0UHJvcGVydGllc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgICAgICBSZXR1cm48dm9pZD4gbG9hZFNvdW5kTW9kZWwoY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsJiBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBjb29raWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkU291bmRNb2RlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgICAgICBSZXR1cm48dm9pZD4gbG9hZFBocmFzZVNvdW5kTW9kZWwoY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2VTb3VuZE1vZGVsJiBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBjb29raWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkUGhyYXNlU291bmRNb2RlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgICAgICAgIFJldHVybjxpbnQzMl90PiB1bmxvYWRTb3VuZE1vZGVsKFNvdW5kTW9kZWxIYW5kbGUgbW9kZWxIYW5kbGUpICBvdmVycmlkZTsKKyAgICAgICAgUmV0dXJuPGludDMyX3Q+IHN0YXJ0UmVjb2duaXRpb24oU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpSZWNvZ25pdGlvbkNvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6Q2FsbGJhY2tDb29raWUgY29va2llKSAgb3ZlcnJpZGU7CisgICAgICAgIFJldHVybjxpbnQzMl90PiBzdG9wUmVjb2duaXRpb24oU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSkgIG92ZXJyaWRlOworICAgICAgICBSZXR1cm48aW50MzJfdD4gc3RvcEFsbFJlY29nbml0aW9ucygpICBvdmVycmlkZTsKKworICAgICAgICAvLyBSZWZCYXNlCisgICAgICAgIHZpcnR1YWwgICAgIHZvaWQgICAgICAgIG9uRmlyc3RSZWYoKTsKKworICAgICAgICBzdGF0aWMgdm9pZCBzb3VuZE1vZGVsQ2FsbGJhY2soc3RydWN0IHNvdW5kX3RyaWdnZXJfbW9kZWxfZXZlbnQgKmhhbEV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcmVjb2duaXRpb25DYWxsYmFjayhzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9yZWNvZ25pdGlvbl9ldmVudCAqaGFsRXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKTsKKworcHJpdmF0ZToKKworICAgICAgICBjbGFzcyBTb3VuZE1vZGVsQ2xpZW50IDogcHVibGljIFJlZkJhc2UgeworICAgICAgICBwdWJsaWM6CisgICAgICAgICAgICBTb3VuZE1vZGVsQ2xpZW50KHVpbnQzMl90IGlkLCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4gY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBjb29raWUpCisgICAgICAgICAgICAgICAgOiBtSWQoaWQpLCBtQ2FsbGJhY2soY2FsbGJhY2spLCBtQ29va2llKGNvb2tpZSkge30KKyAgICAgICAgICAgIHZpcnR1YWwgflNvdW5kTW9kZWxDbGllbnQoKSB7fQorCisgICAgICAgICAgICB1aW50MzJfdCBtSWQ7CisgICAgICAgICAgICBzb3VuZF9tb2RlbF9oYW5kbGVfdCBtSGFsSGFuZGxlOworICAgICAgICAgICAgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+IG1DYWxsYmFjazsKKyAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBtQ29va2llOworICAgICAgICB9OworCisgICAgICAgIHVpbnQzMl90IG5leHRVbmlxdWVJZCgpOworICAgICAgICB2b2lkIGNvbnZlcnRVdWlkRnJvbUhhbChVdWlkICp1dWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VuZF90cmlnZ2VyX3V1aWRfdCAqaGFsVXVpZCk7CisgICAgICAgIHZvaWQgY29udmVydFV1aWRUb0hhbChzb3VuZF90cmlnZ2VyX3V1aWRfdCAqaGFsVXVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFV1aWQgKnV1aWQpOworICAgICAgICB2b2lkIGNvbnZlcnRQcm9wZXJ0aWVzRnJvbUhhbChJU291bmRUcmlnZ2VySHc6OlByb3BlcnRpZXMgKnByb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzb3VuZF90cmlnZ2VyX3Byb3BlcnRpZXMgKmhhbFByb3BlcnRpZXMpOworICAgICAgICB2b2lkIGNvbnZlcnRUcmlnZ2VyUGhyYXNlVG9IYWwoc3RydWN0IHNvdW5kX3RyaWdnZXJfcGhyYXNlICpoYWxUcmlnZ2VyUGhyYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2UgKnRyaWdnZXJQaHJhc2UpOworICAgICAgICAvLyByZXR1cm5lZCBIQUwgc291bmQgbW9kZWwgbXVzdCBiZSBmcmVlZCBieSBjYWxsZXIKKyAgICAgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwgKmNvbnZlcnRTb3VuZE1vZGVsVG9IYWwoCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6U291bmRNb2RlbCAqc291bmRNb2RlbCk7CisgICAgICAgIHZvaWQgY29udmVydFBocmFzZVJlY29nbml0aW9uRXh0cmFUb0hhbCgKKyAgICAgICAgICAgICAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2VfcmVjb2duaXRpb25fZXh0cmEgKmhhbEV4dHJhLAorICAgICAgICAgICAgICAgIGNvbnN0IFBocmFzZVJlY29nbml0aW9uRXh0cmEgKmV4dHJhKTsKKyAgICAgICAgLy8gcmV0dXJuZWQgcmVjb2duaXRpb24gY29uZmlnIG11c3QgYmUgZnJlZWQgYnkgY2FsbGVyCisgICAgICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2NvbmZpZyAqY29udmVydFJlY29nbml0aW9uQ29uZmlnVG9IYWwoCisgICAgICAgICAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpSZWNvZ25pdGlvbkNvbmZpZyAqY29uZmlnKTsKKworCisgICAgICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRTb3VuZE1vZGVsRXZlbnRGcm9tSGFsKElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpNb2RlbEV2ZW50ICpldmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfbW9kZWxfZXZlbnQgKmhhbEV2ZW50KTsKKyAgICAgICAgc3RhdGljIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpSZWNvZ25pdGlvbkV2ZW50ICpjb252ZXJ0UmVjb2duaXRpb25FdmVudEZyb21IYWwoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2V2ZW50ICpoYWxFdmVudCk7CisgICAgICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRQaHJhc2VSZWNvZ25pdGlvbkV4dHJhRnJvbUhhbChQaHJhc2VSZWNvZ25pdGlvbkV4dHJhICpleHRyYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9yZWNvZ25pdGlvbl9leHRyYSAqaGFsRXh0cmEpOworCisgICAgICAgIGludCBkb0xvYWRTb3VuZE1vZGVsKGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6U291bmRNb2RlbCYgc291bmRNb2RlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKm1vZGVsSWQpOworCisgICAgICAgIHZpcnR1YWwgICAgICAgICAgICAgflNvdW5kVHJpZ2dlckhhbEltcGwoKTsKKworICAgICAgICBjb25zdCBjaGFyICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbU1vZHVsZU5hbWU7CisgICAgICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX2h3X2RldmljZSogICAgICAgICAgICAgICAgICAgICBtSHdEZXZpY2U7CisgICAgICAgIHZvbGF0aWxlIGF0b21pY191aW50X2Zhc3QzMl90ICAgICAgICAgICAgICAgICAgICAgICBtTmV4dE1vZGVsSWQ7CisgICAgICAgIERlZmF1bHRLZXllZFZlY3RvcjxpbnQzMl90LCBzcDxTb3VuZE1vZGVsQ2xpZW50PiA+ICBtQ2xpZW50czsKKyAgICAgICAgTXV0ZXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1Mb2NrOworfTsKKworZXh0ZXJuICJDIiBJU291bmRUcmlnZ2VySHcgKkhJRExfRkVUQ0hfSVNvdW5kVHJpZ2dlckh3KGNvbnN0IGNoYXIgKm5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2Ugc291bmR0cmlnZ2VyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9TT1VORFRSSUdHRVJfVjJfMF9JTVBMRU1FTlRBVElPTl9ICisKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvdHlwZXMuaGFsIGIvc291bmR0cmlnZ2VyLzIuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTliYmQ1NgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kdHJpZ2dlci8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wOworCisvKioKKyAqIFNvdW5kIG1vZGVsIHR5cGVzIG1vZGVzIHVzZWQgaW4gSVNvdW5kVHJpZ2dlckh3LlNvdW5kTW9kZWwKKyAqLworZW51bSBTb3VuZE1vZGVsVHlwZSA6IGludDMyX3QgeworICAgIC8qKiB1c2UgZm9yIHVuc3BlY2lmaWVkIHNvdW5kIG1vZGVsIHR5cGUgKi8KKyAgICBVTktOT1dOICAgPSAtMSwKKyAgICAvKiogdXNlIGZvciBrZXkgcGhyYXNlIHNvdW5kIG1vZGVscyAqLworICAgIEtFWVBIUkFTRSA9IDAsCisgICAgLyoqIHVzZSBmb3IgYWxsIG1vZGVscyBvdGhlciB0aGFuIGtleXBocmFzZSAqLworICAgIEdFTkVSSUMgICA9IDEsCit9OworCit0eXBlZGVmIGludDMyX3QgU291bmRNb2RlbEhhbmRsZTsKKworCisvKioKKyAqIFJlY29nbml0aW9uIG1vZGVzIHVzZWQgaW4gSVNvdW5kVHJpZ2dlckh3LlJlY29nbml0aW9uQ29uZmlnLAorICogSVNvdW5kVHJpZ2dlckh3LlByb3BlcnRpZXMgb3IgUGhyYXNlUmVjb2duaXRpb25FeHRyYQorICovCitlbnVtIFJlY29nbml0aW9uTW9kZSA6IHVpbnQzMl90IHsKKyAgICAvKiogc2ltcGxlIHZvaWNlIHRyaWdnZXIgKi8KKyAgICBWT0lDRV9UUklHR0VSICAgICAgID0gKDEgPDwgMCksCisgICAgLyoqIHRyaWdnZXIgb25seSBpZiBvbmUgdXNlciBpbiBtb2RlbCBpZGVudGlmaWVkICovCisgICAgVVNFUl9JREVOVElGSUNBVElPTiA9ICgxIDw8IDEpLAorICAgIC8qKiB0cmlnZ2VyIG9ubHkgaWYgb25lIHVzZXIgaW4gbW9kZSBhdXRoZW50aWNhdGVkICovCisgICAgVVNFUl9BVVRIRU5USUNBVElPTiA9ICgxIDw8IDIpLAorICAgIC8qKiBnZW5lcmljIHNvdW5kIHRyaWdnZXIgKi8KKyAgICBHRU5FUklDX1RSSUdHRVIgICAgID0gKDEgPDwgMyksCit9OworCisvKioKKyAqIENvbmZpZGVuY2UgbGV2ZWwgZm9yIGVhY2ggdXNlciBpbiBzdHJ1Y3R1cmUgUGhyYXNlUmVjb2duaXRpb25FeHRyYQorICovCitzdHJ1Y3QgQ29uZmlkZW5jZUxldmVsIHsKKyAgICAvKiogdXNlciBJRCAqLworICAgIHVpbnQzMl90IHVzZXJJZDsKKyAgICAvKiogY29uZmlkZW5jZSBsZXZlbCBpbiBwZXJjZW50ICgwIC0gMTAwKTogKi8KKyAgICAvKiogLSBtaW4gbGV2ZWwgZm9yIHJlY29nbml0aW9uIGNvbmZpZ3VyYXRpb24gKi8KKyAgICAvKiogLSBkZXRlY3RlZCBsZXZlbCBmb3IgcmVjb2duaXRpb24gZXZlbnQgKi8KKyAgICB1aW50MzJfdCBsZXZlbFBlcmNlbnQ7Cit9OworCisvKioKKyAqIFNwZWNpYWxpemVkIHJlY29nbml0aW9uIGV2ZW50IGZvciBrZXkgcGhyYXNlIGRldGVjdGlvbgorICovCitzdHJ1Y3QgUGhyYXNlUmVjb2duaXRpb25FeHRyYSB7CisgICAgLyoqIGtleXBocmFzZSBJRCAqLworICAgIHVpbnQzMl90IGlkOworICAgIC8qKiByZWNvZ25pdGlvbiBtb2RlcyB1c2VkIGZvciB0aGlzIGtleXBocmFzZSAqLworICAgIHVpbnQzMl90IHJlY29nbml0aW9uTW9kZXM7CisgICAgLyoqIGNvbmZpZGVuY2UgbGV2ZWwgZm9yIG1vZGUgUmVjb2duaXRpb25Nb2RlLlZPSUNFX1RSSUdHRVIgKi8KKyAgICB1aW50MzJfdCBjb25maWRlbmNlTGV2ZWw7CisgICAgLyoqCisgICAgICogbGlzdCBvZiBjb25maWRlbmNlIGxldmVscyBwZXIgdXNlciBmb3IKKyAgICAgKiBSZWNvZ25pdGlvbk1vZGUuVVNFUl9JREVOVElGSUNBVElPTiBhbmQKKyAgICAgKiBSZWNvZ25pdGlvbk1vZGUuVVNFUl9BVVRIRU5USUNBVElPTiAqLworICAgIHZlYzxDb25maWRlbmNlTGV2ZWw+IGxldmVsczsKK307CisKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvdnRzL0FuZHJvaWQubWsgYi9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGYwY2M0ZQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kdHJpZ2dlci8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM2IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsU291bmR0cmlnZ2VyVjJfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFNvdW5kdHJpZ2dlclYyXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxTb3VuZHRyaWdnZXJWMl8wVGFyZ2V0VGVzdC5jcHAgYi9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFNvdW5kdHJpZ2dlclYyXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Nzk1NmM1Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxTb3VuZHRyaWdnZXJWMl8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSwzMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlNvdW5kVHJpZ2dlckhpZGxIYWxUZXN0IgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKworI2luY2x1ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KKyNpbmNsdWRlIDxtdXRleD4KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8Y3V0aWxzL25hdGl2ZV9oYW5kbGUuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2NvbW1vbi8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL3R5cGVzLmg+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworI2RlZmluZSBTSE9SVF9USU1FT1VUX1BFUklPRCAoMSkKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OlNvdW5kTW9kZWxIYW5kbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OlNvdW5kTW9kZWxUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6c291bmR0cmlnZ2VyOjpWMl8wOjpSZWNvZ25pdGlvbk1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OlBocmFzZVJlY29nbml0aW9uRXh0cmE7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OklTb3VuZFRyaWdnZXJIdzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLyoqCisgKiBUZXN0IGNvZGUgdXNlcyB0aGlzIGNsYXNzIHRvIHdhaXQgZm9yIG5vdGlmaWNhdGlvbiBmcm9tIGNhbGxiYWNrLgorICovCitjbGFzcyBNb25pdG9yIHsKKyBwdWJsaWM6CisgIE1vbml0b3IoKSA6IG1Db3VudCgwKSB7fQorCisgIC8qKgorICAgKiBBZGRzIDEgdG8gdGhlIGludGVybmFsIGNvdW50ZXIgYW5kIHVuYmxvY2tzIG9uZSBvZiB0aGUgd2FpdGluZyB0aHJlYWRzLgorICAgKi8KKyAgdm9pZCBub3RpZnkoKSB7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1NdHgpOworICAgIG1Db3VudCsrOworICAgIG1Ddi5ub3RpZnlfb25lKCk7CisgIH0KKworICAvKioKKyAgICogQmxvY2tzIHVudGlsIHRoZSBpbnRlcm5hbCBjb3VudGVyIGJlY29tZXMgZ3JlYXRlciB0aGFuIDAuCisgICAqCisgICAqIElmIG5vdGlmaWVkLCB0aGlzIG1ldGhvZCBkZWNyZWFzZXMgdGhlIGNvdW50ZXIgYnkgMSBhbmQgcmV0dXJucyB0cnVlLgorICAgKiBJZiB0aW1lb3V0LCByZXR1cm5zIGZhbHNlLgorICAgKi8KKyAgYm9vbCB3YWl0KGludCB0aW1lb3V0U2Vjb25kcykgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtTXR4KTsKKyAgICBhdXRvIGRlYWRsaW5lID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKworICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyh0aW1lb3V0U2Vjb25kcyk7CisgICAgd2hpbGUgKG1Db3VudCA9PSAwKSB7CisgICAgICBpZiAobUN2LndhaXRfdW50aWwobG9jaywgZGVhZGxpbmUpID09IHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0KSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICB9CisgICAgbUNvdW50LS07CisgICAgcmV0dXJuIHRydWU7CisgIH0KKworIHByaXZhdGU6CisgIHN0ZDo6bXV0ZXggbU10eDsKKyAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgbUN2OworICBpbnQgbUNvdW50OworfTsKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgU291bmQgVHJpZ2dlciBISURMIEhBTC4KK2NsYXNzIFNvdW5kVHJpZ2dlckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgIG1Tb3VuZFRyaWdnZXJIYWwgPQorICAgICAgICAgIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElTb3VuZFRyaWdnZXJIdz4oKTsKKyAgICAgIEFTU0VSVF9ORShudWxscHRyLCBtU291bmRUcmlnZ2VySGFsLmdldCgpKTsKKyAgICAgIG1DYWxsYmFjayA9IG5ldyBTb3VuZFRyaWdnZXJId0NhbGxiYWNrKCp0aGlzKTsKKyAgICAgIEFTU0VSVF9ORShudWxscHRyLCBtQ2FsbGJhY2suZ2V0KCkpOworICB9CisKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgICBzcmFuZCh0aW1lKG51bGxwdHIpKTsKKyAgfQorCisgIGNsYXNzIFNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sgOiBwdWJsaWMgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sgeworICAgcHJpdmF0ZToKKyAgICBTb3VuZFRyaWdnZXJIaWRsVGVzdCYgbVBhcmVudDsKKworICAgcHVibGljOgorICAgIFNvdW5kVHJpZ2dlckh3Q2FsbGJhY2soU291bmRUcmlnZ2VySGlkbFRlc3QmIHBhcmVudCkgOiBtUGFyZW50KHBhcmVudCkge30KKworICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHJlY29nbml0aW9uQ2FsbGJhY2soCisgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpSZWNvZ25pdGlvbkV2ZW50JiBldmVudCBfX3VudXNlZCwKKyAgICAgICAgaW50MzJfdCBjb29raWUgX191bnVzZWQpIHsKKyAgICAgIEFMT0dJKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHBocmFzZVJlY29nbml0aW9uQ2FsbGJhY2soCisgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpQaHJhc2VSZWNvZ25pdGlvbkV2ZW50JiBldmVudCBfX3VudXNlZCwKKyAgICAgICAgaW50MzJfdCBjb29raWUgX191bnVzZWQpIHsKKyAgICAgIEFMT0dJKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHNvdW5kTW9kZWxDYWxsYmFjaygKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6Ok1vZGVsRXZlbnQmIGV2ZW50LAorICAgICAgICBpbnQzMl90IGNvb2tpZSBfX3VudXNlZCkgeworICAgICAgQUxPR0koIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICAgIG1QYXJlbnQubGFzdE1vZGVsRXZlbnQgPSBldmVudDsKKyAgICAgIG1QYXJlbnQubW9uaXRvci5ub3RpZnkoKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICB9OworCisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgTW9uaXRvciBtb25pdG9yOworICAvLyB1cGRhdGVkIGJ5IHNvdW5kTW9kZWxDYWxsYmFjaygpCisgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpNb2RlbEV2ZW50IGxhc3RNb2RlbEV2ZW50OworCisgcHJvdGVjdGVkOgorICBzcDxJU291bmRUcmlnZ2VySHc+IG1Tb3VuZFRyaWdnZXJIYWw7CisgIHNwPFNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+IG1DYWxsYmFjazsKK307CisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAgKGtlcHQgc2luY2UgdGhpcyBmaWxlIGlzIGEgdGVtcGxhdGUpLgorY2xhc3MgU291bmRUcmlnZ2VySGlkbEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworIHByaXZhdGU6Cit9OworCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3OjpnZXRQcm9wZXJ0aWVzKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBtZXRob2QgcmV0dXJucyAwIChubyBlcnJvcikKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBhdCBsZWFzdCBvbmUgc291bmQgbW9kZWwgYW5kIG9uZSBrZXkgcGhyYXNlCisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgYXQgbGVhc3QgVk9JQ0VfVFJJR0dFUiByZWNvZ25pdGlvbiBtb2RlCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgR2V0UHJvcGVydGllcykgeworICBJU291bmRUcmlnZ2VySHc6OlByb3BlcnRpZXMgaGFsUHJvcGVydGllczsKKyAgUmV0dXJuPHZvaWQ+IGhpZGxSZXR1cm47CisgIGludCByZXQgPSAtRU5PREVWOworCisgIGhpZGxSZXR1cm4gPSBtU291bmRUcmlnZ2VySGFsLT5nZXRQcm9wZXJ0aWVzKFsmXShpbnQgcmMsIGF1dG8gcmVzKSB7CisgICAgICByZXQgPSByYzsKKyAgICAgIGhhbFByb3BlcnRpZXMgPSByZXM7CisgIH0pOworCisgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgRVhQRUNUX0VRKDAsIHJldCk7CisgIEVYUEVDVF9HVChoYWxQcm9wZXJ0aWVzLm1heFNvdW5kTW9kZWxzLCAwdSk7CisgIEVYUEVDVF9HVChoYWxQcm9wZXJ0aWVzLm1heEtleVBocmFzZXMsIDB1KTsKKyAgRVhQRUNUX05FKDB1LCAoaGFsUHJvcGVydGllcy5yZWNvZ25pdGlvbk1vZGVzICYgKHVpbnQzMl90KVJlY29nbml0aW9uTW9kZTo6Vk9JQ0VfVFJJR0dFUikpOworfQorCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3Ojpsb2FkUGhyYXNlU291bmRNb2RlbCgpIG1ldGhvZAorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gcmV0dXJucyBhbiBlcnJvciB3aGVuIHBhc3NlZCBhIG1hbGZvcm1lZCBzb3VuZCBtb2RlbAorICoKKyAqIFRoZXJlIGlzIG5vIHdheSB0byB2ZXJpZnkgdGhhdCBpbXBsZW1lbnRhdGlvbiBhY3R1YWxseSBjYW4gbG9hZCBhIHNvdW5kIG1vZGVsIGJlY2F1c2UgZWFjaAorICogc291bmQgbW9kZWwgaXMgdmVuZG9yIHNwZWNpZmljLgorICovCitURVNUX0YoU291bmRUcmlnZ2VySGlkbFRlc3QsIExvYWRJbnZhbGlkTW9kZWxGYWlsKSB7CisgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuOworICBpbnQgcmV0ID0gLUVOT0RFVjsKKyAgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2VTb3VuZE1vZGVsIG1vZGVsOworICBTb3VuZE1vZGVsSGFuZGxlIGhhbmRsZTsKKworICBtb2RlbC5jb21tb24udHlwZSA9IFNvdW5kTW9kZWxUeXBlOjpVTktOT1dOOworCisgIGhpZGxSZXR1cm4gPSBtU291bmRUcmlnZ2VySGFsLT5sb2FkUGhyYXNlU291bmRNb2RlbCgKKyAgICAgICAgICBtb2RlbCwKKyAgICAgICAgICBtQ2FsbGJhY2ssIDAsIFsmXShpbnQzMl90IHJldHZhbCwgYXV0byByZXMpIHsKKyAgICAgIHJldCA9IHJldHZhbDsKKyAgICAgIGhhbmRsZSA9IHJlczsKKyAgfSk7CisKKyAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICBFWFBFQ1RfTkUoMCwgcmV0KTsKKyAgRVhQRUNUX0ZBTFNFKG1vbml0b3Iud2FpdChTSE9SVF9USU1FT1VUX1BFUklPRCkpOworfQorCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3Ojpsb2FkU291bmRNb2RlbCgpIG1ldGhvZAorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gcmV0dXJucyBlcnJvciB3aGVuIHBhc3NlZCBhIHNvdW5kIG1vZGVsIHdpdGggcmFuZG9tIGRhdGEuCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgTG9hZEdlbmVyaWNTb3VuZE1vZGVsRmFpbCkgeworICBpbnQgcmV0ID0gLUVOT0RFVjsKKyAgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsIG1vZGVsOworICBTb3VuZE1vZGVsSGFuZGxlIGhhbmRsZSA9IDA7CisKKyAgbW9kZWwudHlwZSA9IFNvdW5kTW9kZWxUeXBlOjpHRU5FUklDOworICBtb2RlbC5kYXRhLnJlc2l6ZSgxMDApOworICBmb3IgKGF1dG8mIGQgOiBtb2RlbC5kYXRhKSB7CisgICAgZCA9IHJhbmQoKTsKKyAgfQorCisgIFJldHVybjx2b2lkPiBsb2FkUmV0dXJuID0gbVNvdW5kVHJpZ2dlckhhbC0+bG9hZFNvdW5kTW9kZWwoCisgICAgICBtb2RlbCwKKyAgICAgIG1DYWxsYmFjaywgMCwgWyZdKGludDMyX3QgcmV0dmFsLCBhdXRvIHJlcykgeworICAgIHJldCA9IHJldHZhbDsKKyAgICBoYW5kbGUgPSByZXM7CisgIH0pOworCisgIEVYUEVDVF9UUlVFKGxvYWRSZXR1cm4uaXNPaygpKTsKKyAgRVhQRUNUX05FKDAsIHJldCk7CisgIEVYUEVDVF9GQUxTRShtb25pdG9yLndhaXQoU0hPUlRfVElNRU9VVF9QRVJJT0QpKTsKK30KKworLyoqCisgKiBUZXN0IElTb3VuZFRyaWdnZXJIdzo6dW5sb2FkU291bmRNb2RlbCgpIG1ldGhvZAorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gcmV0dXJucyBhbiBlcnJvciB3aGVuIGNhbGxlZCB3aXRob3V0IGEgdmFsaWQgbG9hZGVkIHNvdW5kIG1vZGVsCisgKgorICovCitURVNUX0YoU291bmRUcmlnZ2VySGlkbFRlc3QsIFVubG9hZE1vZGVsTm9Nb2RlbEZhaWwpIHsKKyAgUmV0dXJuPGludDMyX3Q+IGhpZGxSZXR1cm4oMCk7CisgIFNvdW5kTW9kZWxIYW5kbGUgaGFsSGFuZGxlID0gMDsKKworICBoaWRsUmV0dXJuID0gbVNvdW5kVHJpZ2dlckhhbC0+dW5sb2FkU291bmRNb2RlbChoYWxIYW5kbGUpOworCisgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgRVhQRUNUX05FKDAsIGhpZGxSZXR1cm4pOworfQorCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3OjpzdGFydFJlY29nbml0aW9uKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGFuIGVycm9yIHdoZW4gY2FsbGVkIHdpdGhvdXQgYSB2YWxpZCBsb2FkZWQgc291bmQgbW9kZWwKKyAqCisgKiBUaGVyZSBpcyBubyB3YXkgdG8gdmVyaWZ5IHRoYXQgaW1wbGVtZW50YXRpb24gYWN0dWFsbHkgc3RhcnRzIHJlY29nbml0aW9uIGJlY2F1c2Ugbm8gbW9kZWwgY2FuCisgKiBiZSBsb2FkZWQuCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgU3RhcnRSZWNvZ25pdGlvbk5vTW9kZWxGYWlsKSB7CisgICAgUmV0dXJuPGludDMyX3Q+IGhpZGxSZXR1cm4oMCk7CisgICAgU291bmRNb2RlbEhhbmRsZSBoYW5kbGUgPSAwOworICAgIFBocmFzZVJlY29nbml0aW9uRXh0cmEgcGhyYXNlOworICAgIElTb3VuZFRyaWdnZXJIdzo6UmVjb2duaXRpb25Db25maWcgY29uZmlnOworCisgICAgY29uZmlnLmNhcHR1cmVIYW5kbGUgPSAwOworICAgIGNvbmZpZy5jYXB0dXJlRGV2aWNlID0gQXVkaW9EZXZpY2U6OklOX0JVSUxUSU5fTUlDOworICAgIHBocmFzZS5pZCA9IDA7CisgICAgcGhyYXNlLnJlY29nbml0aW9uTW9kZXMgPSAodWludDMyX3QpUmVjb2duaXRpb25Nb2RlOjpWT0lDRV9UUklHR0VSOworICAgIHBocmFzZS5jb25maWRlbmNlTGV2ZWwgPSAwOworCisgICAgY29uZmlnLnBocmFzZXMuc2V0VG9FeHRlcm5hbCgmcGhyYXNlLCAxKTsKKworICAgIGhpZGxSZXR1cm4gPSBtU291bmRUcmlnZ2VySGFsLT5zdGFydFJlY29nbml0aW9uKGhhbmRsZSwgY29uZmlnLCBtQ2FsbGJhY2ssIDApOworCisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgIEVYUEVDVF9ORSgwLCBoaWRsUmV0dXJuKTsKK30KKworLyoqCisgKiBUZXN0IElTb3VuZFRyaWdnZXJIdzo6c3RvcFJlY29nbml0aW9uKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGFuIGVycm9yIHdoZW4gY2FsbGVkIHdpdGhvdXQgYW4gYWN0aXZlIHJlY29nbml0aW9uIHJ1bm5pbmcKKyAqCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgU3RvcFJlY29nbml0aW9uTm9BU3RhcnRGYWlsKSB7CisgICAgUmV0dXJuPGludDMyX3Q+IGhpZGxSZXR1cm4oMCk7CisgICAgU291bmRNb2RlbEhhbmRsZSBoYW5kbGUgPSAwOworCisgICAgaGlkbFJldHVybiA9IG1Tb3VuZFRyaWdnZXJIYWwtPnN0b3BSZWNvZ25pdGlvbihoYW5kbGUpOworCisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgIEVYUEVDVF9ORSgwLCBoaWRsUmV0dXJuKTsKK30KKworLyoqCisgKiBUZXN0IElTb3VuZFRyaWdnZXJIdzo6c3RvcEFsbFJlY29nbml0aW9ucygpIG1ldGhvZAorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gaW1wbGVtZW50cyB0aGlzIG9wdGlvbmFsIG1ldGhvZCBvciBpbmRpY2F0ZXMgaXQgaXMgbm90IHN1cHBvcnQgYnkKKyAqICByZXR1cm5pbmcgLUVOT1NZUworICovCitURVNUX0YoU291bmRUcmlnZ2VySGlkbFRlc3QsIHN0b3BBbGxSZWNvZ25pdGlvbnMpIHsKKyAgICBSZXR1cm48aW50MzJfdD4gaGlkbFJldHVybigwKTsKKworICAgIGhpZGxSZXR1cm4gPSBtU291bmRUcmlnZ2VySGFsLT5zdG9wQWxsUmVjb2duaXRpb25zKCk7CisKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuLmlzT2soKSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybiA9PSAwIHx8IGhpZGxSZXR1cm4gPT0gLUVOT1NZUyk7Cit9CisKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBTb3VuZFRyaWdnZXJIaWRsRW52aXJvbm1lbnQpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyL0FuZHJvaWQuYnAgYi9zb3VuZHRyaWdnZXIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDJjOTg2Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIyLjAiLAorICAgICIyLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvdGVzdHMvQW5kcm9pZC5icCBiL3Rlc3RzL0FuZHJvaWQuYnAKaW5kZXggOGU0ODE1Yy4uOGM5ZTVjOSAxMDA2NDQKLS0tIGEvdGVzdHMvQW5kcm9pZC5icAorKysgYi90ZXN0cy9BbmRyb2lkLmJwCkBAIC01LDYgKzUsNyBAQAogICAgICJiYXovMS4wIiwKICAgICAiYmF6LzEuMC9kZWZhdWx0IiwKICAgICAiZXhwcmVzc2lvbi8xLjAiLAorICAgICJleHRlbnNpb24vbGlnaHQvMi4wIiwKICAgICAiZm9vLzEuMCIsCiAgICAgImZvby8xLjAvZGVmYXVsdCIsCiAgICAgImZvby8xLjAvZGVmYXVsdC9saWIiLApkaWZmIC0tZ2l0IGEvdGVzdHMvYmFyL0FuZHJvaWQubWsgYi90ZXN0cy9iYXIvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvYmFyL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3Rlc3RzL2Jhei9BbmRyb2lkLm1rIGIvdGVzdHMvYmF6L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2Jhei9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90ZXN0cy9leHByZXNzaW9uL0FuZHJvaWQubWsgYi90ZXN0cy9leHByZXNzaW9uL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2V4cHJlc3Npb24vQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9BbmRyb2lkLmJwIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0NjliNDUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2NSBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUV4dExpZ2h0LmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9FeHRMaWdodEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9JRXh0TGlnaHQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvSUh3RXh0TGlnaHQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvQm5Id0V4dExpZ2h0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0JwSHdFeHRMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9Cc0V4dExpZ2h0LmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0FuZHJvaWQubWsgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFlMTBlNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5NiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHQtVjIuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0LVYyLjAtamF2YSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRGVmYXVsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvRGVmYXVsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6dHlwZXMuRGVmYXVsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRXh0QnJpZ2h0bmVzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvRXh0QnJpZ2h0bmVzcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6dHlwZXMuRXh0QnJpZ2h0bmVzcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRXh0TGlnaHRTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvRXh0TGlnaHRTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6dHlwZXMuRXh0TGlnaHRTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElFeHRMaWdodC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvSUV4dExpZ2h0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JRXh0TGlnaHQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjA6OklFeHRMaWdodAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUV4dExpZ2h0LmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHQtVjIuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHQtVjIuMC1qYXZhLXN0YXRpYyBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKERlZmF1bHQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC9WMl8wL0RlZmF1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjA6OnR5cGVzLkRlZmF1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEV4dEJyaWdodG5lc3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC9WMl8wL0V4dEJyaWdodG5lc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjA6OnR5cGVzLkV4dEJyaWdodG5lc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEV4dExpZ2h0U3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC9WMl8wL0V4dExpZ2h0U3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjA6OnR5cGVzLkV4dExpZ2h0U3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJRXh0TGlnaHQuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC9WMl8wL0lFeHRMaWdodC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUV4dExpZ2h0LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wOjpJRXh0TGlnaHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lFeHRMaWdodC5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvSUV4dExpZ2h0LmhhbCBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvSUV4dExpZ2h0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTE1Yjg2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9JRXh0TGlnaHQuaGFsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisvLyBXb3VsZCBub3JtYWxseSBiZSAndmVuZG9yLmV4YW1wbGUuZXh0ZW5zaW9uLmxpZ2h0QDIuMCcgaG93ZXZlciwgdGhpcyBpcworLy8gYSBnb29nbGUgZXh0ZW5zaW9uIGV4YW1wbGUuIEEgdmVuZG9yIGV4dGVuc2lvbiBzaG91bGQgYWxzbyBsaXZlIGluIHRoZQorLy8gdmVuZG9yIHBhcnRpdGlvbi4KK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA7CisKK2ludGVyZmFjZSBJRXh0TGlnaHQgZXh0ZW5kcyBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6SUxpZ2h0IHsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgcHJvdmlkZWQgbGlnaHRzIHRvIHRoZSBwcm92aWRlZCB2YWx1ZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdHlwZSBsb2dpY2FsIGxpZ2h0IHRvIHNldAorICAgICAqIEBwYXJhbSBzdGF0ZSBkZXNjcmliZXMgd2hhdCB0aGUgbGlnaHQgc2hvdWxkIGxvb2sgbGlrZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyByZXN1bHQgb2YgYXBwbHlpbmcgc3RhdGUgdHJhbnNmb3JtYXRpb24uCisgICAgICovCisgICAgc2V0RXh0TGlnaHQoVHlwZSB0eXBlLCBFeHRMaWdodFN0YXRlIHN0YXRlKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCit9OwpkaWZmIC0tZ2l0IGEvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMzBkMTFjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAtc2VydmljZS5yYworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIExpZ2h0LmNwcCBcCisgICAgc2VydmljZS5jcHAKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTQxZTczCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmNwcApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlICJMaWdodC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHRlc3RzIHsKK25hbWVzcGFjZSBleHRlbnNpb24geworbmFtZXNwYWNlIGxpZ2h0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6SUxpZ2h0IGZvbGxvdy4KK1JldHVybjxTdGF0dXM+IExpZ2h0OjpzZXRMaWdodChUeXBlIHR5cGUsIGNvbnN0IExpZ2h0U3RhdGUmIHN0YXRlKSAgeworICAgIC8vIEZvcndhcmQgdHlwZXMgZm9yIG5ldyBtZXRob2RzLgorCisgICAgRXh0TGlnaHRTdGF0ZSBleHRTdGF0ZSB7CisgICAgICAgIC5zdGF0ZSA9IHN0YXRlLAorICAgICAgICAuaW50ZXJwb2xhdGlvbk9tZWdhID0KKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KERlZmF1bHQ6OklOVEVSUE9MQVRJT05fT01FR0EpLAorICAgICAgICAuYnJpZ2h0bmVzcyA9IC8vIEV4dEJyaWdodG5lc3MgaW5oZXJpdHMgZnJvbSBCcmlnaHRuZXNzCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxFeHRCcmlnaHRuZXNzPihzdGF0ZS5icmlnaHRuZXNzTW9kZSkKKyAgICB9OworCisgICAgcmV0dXJuIHNldEV4dExpZ2h0KHR5cGUsIGV4dFN0YXRlKTsKK30KKworUmV0dXJuPHZvaWQ+IExpZ2h0OjpnZXRTdXBwb3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBlc19jYiBfaGlkbF9jYikgIHsKKyAgICAvLyBpbXBsZW1lbnQgdW5jaGFuZ2VkIG1ldGhvZCBhcyB5b3Ugd291bGQgYWx3YXlzCisgICAgaGlkbF92ZWM8VHlwZT4gdmVje307CisKKyAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICAvLyBOb3RlOiBhd2Vzb21lIHByb3ByaWV0YXJ5IGhhcmR3YXJlIGltcGxlbWVudGF0aW9uIGhlcmUKKyAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworICAgIF9oaWRsX2NiKHZlYyk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZXhhbXBsZTo6ZXh0ZW5zaW9uOjpsaWdodDo6VjJfMDo6SUxpZ2h0IGZvbGxvdy4KK1JldHVybjxTdGF0dXM+IExpZ2h0OjpzZXRFeHRMaWdodChUeXBlIC8qIHR5cGUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRXh0TGlnaHRTdGF0ZSYgLyogc3RhdGUgKi8pICB7CisKKyAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICAvLyBOb3RlOiBhd2Vzb21lIHByb3ByaWV0YXJ5IGhhcmR3YXJlIGltcGxlbWVudGF0aW9uIGhlcmUKKyAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworICAgIHJldHVybiBTdGF0dXM6OlNVQ0NFU1M7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGxpZ2h0Cit9ICAvLyBuYW1lc3BhY2UgZXh0ZW5zaW9uCit9ICAvLyBuYW1lc3BhY2UgdGVzdHMKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9MaWdodC5oIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMyYzVkZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9MaWdodC5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX1RFU1RTX0VYVEVOU0lPTl9MSUdIVF9WMl8wX0xJR0hUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9URVNUU19FWFRFTlNJT05fTElHSFRfVjJfMF9MSUdIVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvSUV4dExpZ2h0Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHRlc3RzIHsKK25hbWVzcGFjZSBleHRlbnNpb24geworbmFtZXNwYWNlIGxpZ2h0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRlc3RzOjpleHRlbnNpb246OmxpZ2h0OjpWMl8wOjpFeHRMaWdodFN0YXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGVzdHM6OmV4dGVuc2lvbjo6bGlnaHQ6OlYyXzA6OklFeHRMaWdodDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6TGlnaHRTdGF0ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6VHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IExpZ2h0IDogcHVibGljIElFeHRMaWdodCB7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQgZm9sbG93LgorICAgIFJldHVybjxTdGF0dXM+IHNldExpZ2h0KFR5cGUgdHlwZSwgY29uc3QgTGlnaHRTdGF0ZSYgc3RhdGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkVHlwZXMoZ2V0U3VwcG9ydGVkVHlwZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpleGFtcGxlOjpleHRlbnNpb246OmxpZ2h0OjpWMl8wOjpJTGlnaHQgZm9sbG93LgorICAgIFJldHVybjxTdGF0dXM+IHNldEV4dExpZ2h0KFR5cGUgdHlwZSwgY29uc3QgRXh0TGlnaHRTdGF0ZSYgc3RhdGUpICBvdmVycmlkZTsKKworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGxpZ2h0Cit9ICAvLyBuYW1lc3BhY2UgZXh0ZW5zaW9uCit9ICAvLyBuYW1lc3BhY2UgdGVzdHMKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX1RFU1RTX0VYVEVOU0lPTl9MSUdIVF9WMl8wX0xJR0hUX0gKZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAtc2VydmljZS5yYyBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjM3OWVlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBsaWdodC1leHQtMi0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQ4MzliMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKworI2luY2x1ZGUgIkxpZ2h0LmgiCisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWd1cmVScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmpvaW5ScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6c3A7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6SUxpZ2h0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnRlc3RzOjpleHRlbnNpb246OmxpZ2h0OjpWMl8wOjppbXBsZW1lbnRhdGlvbjo6TGlnaHQ7CisKK2ludCBtYWluKCkgeworICAgIGFuZHJvaWQ6OnNwPElMaWdodD4gc2VydmljZSA9IG5ldyBMaWdodCgpOworICAgIGNvbmZpZ3VyZVJwY1RocmVhZHBvb2woMSwgdHJ1ZSAvKmNhbGxlcldpbGxKb2luKi8pOworICAgIHNlcnZpY2UtPnJlZ2lzdGVyQXNTZXJ2aWNlKCk7CisgICAgam9pblJwY1RocmVhZHBvb2woKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvdHlwZXMuaGFsIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWIwOTQ3OQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOworCitlbnVtIERlZmF1bHQgOiBpbnQzMl90IHsKKyAgICAvLyBmb3IgY2FsbHMgdG8gc2V0TGlnaHQgZnJvbSB0aGUgZnJhbWV3b3JrIHRoYXQgZG9uJ3Qga25vdyBhYm91dCB0aGlzCisgICAgLy8gZXh0ZW5zaW9uIG9yIGl0cyByZXF1aXJlbWVudHMKKyAgICBJTlRFUlBPTEFUSU9OX09NRUdBID0gMgorfTsKKworLyoqCisgKiBPbmUgcG9zc2liaWxpdHkgaXMgcmVuYW1pbmcgYW4gb2xkIHR5cGUuIEFub3RoZXIgcG9zc2liaWxpdHkgaXMgdGFraW5nCisgKiBhZHZhbnRhZ2VzIG9mIHRoZSBkaWZmZXJlbnQgbmFtZXNwYWNlcy4KKyAqLworZW51bSBFeHRCcmlnaHRuZXNzIDogQnJpZ2h0bmVzcyB7CisgICAgLyoqCisgICAgICogU2F5IHdlJ3JlIHJlYWxseSBnb2luZyB0byB1c2UgdGhlIHBob25lIGFzIGEgaGVhdGVyLgorICAgICAqLworICAgIEVYVFJFTUUsCisKKyAgICAvKioKKyAgICAgKiBTb21ldGltZXMgYXQgbmlnaHQsIHdlIG5lZWQgaXQgdG8gYmUgZGF5LgorICAgICAqLworICAgICBUSEVfU1VOLAorfTsKKworLyoqCisgKiBTdHJ1Y3RzIGNhbid0IGluaGVyaXQgZWFjaG90aGVyIGluIGhpZGwuIFVzZSBjb21wb3NpdGlvbiBpbnN0ZWFkLiBJbiB0aGlzCisgKiBjYXNlLCBJIHdvbid0IHVzZSBpbmhlcml0ZW5jZSBiZWNhdXNlIEkgd2FudCB0byByZXBsYWNlIEJyaWdodG5lc3Mgd2l0aAorICogRXh0QnJpZ2h0bmVzcy4KKyAqLworc3RydWN0IEV4dExpZ2h0U3RhdGUgeworICAgIExpZ2h0U3RhdGUgc3RhdGU7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRoZSBzZWNyZXQgc2F1Y2UgdGhhdCB3aWxsIHJlYWxseSBtYWtlIHRoaXMgZXh0ZW5zaW9uIHNoaW5lLgorICAgICAqIE5vIG90aGVyIHBlcnNvbiBoYXMgc3VjaCBhIGNvb2wgZmVhdHVyZSBpbiB0aGVpciBoYWxzLiBEb24ndCBmb3JnZXQKKyAgICAgKiB0byBkZXNjcmliZSBhbGwgZGV0YWlscyBvZiBwYXJhbWV0ZXJzLiBBbiBpbnRlcmZhY2UgaXMgYSBjb250cmFjdCwgYW5kCisgICAgICogc3BlY2lmeWluZyB0aGlzIGNvbnRyYWN0IHRvIHRoZSBsZXR0ZXIgaXMgd2hhdCBhbGxvd3MgdGhhdCBjb250cmFjdGVkCisgICAgICogdG8gYmUgbWFpbnRhaW5lZC4gOikKKyAgICAgKgorICAgICAqIFNvLCB0aGlzIHBhcmFtZXRlciByZXByZXNlbnRzIHRoZSBzcGVlZCBhdCB3aGljaCBicmlnaHRuZXNzIGlzIGNoYW5nZWQKKyAgICAgKiB0byB0aGUgbmV3IHZhbHVlIGluIHRoZSB0aHJlZSBkaW1lbnNpb25hbCBzcGFjZSB3aXRoIGNvb3JkaW5hdGVzIFJHQgorICAgICAqIGZyb20gdGhlIHJlZCwgYmx1ZSwgYW5kIGdyZWVuLgorICAgICAqLworICAgIGludDMyX3QgaW50ZXJwb2xhdGlvbk9tZWdhOworCisgICAgLyoqCisgICAgICogSW5jbHVkZSBuZXcgdmFsdWVzLgorICAgICAqLworICAgIEV4dEJyaWdodG5lc3MgYnJpZ2h0bmVzczsKK307CmRpZmYgLS1naXQgYS90ZXN0cy9mb28vQW5kcm9pZC5tayBiL3Rlc3RzL2Zvby9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9mb28vQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdGVzdHMvaW5oZXJpdGFuY2UvQW5kcm9pZC5tayBiL3Rlc3RzL2luaGVyaXRhbmNlL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2luaGVyaXRhbmNlL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3Rlc3RzL2xpYmh3YmluZGVyLzEuMC9kZWZhdWx0L1NjaGVkdWxlVGVzdC5jcHAgYi90ZXN0cy9saWJod2JpbmRlci8xLjAvZGVmYXVsdC9TY2hlZHVsZVRlc3QuY3BwCmluZGV4IDFjZTUwY2YuLjYzNTY5NTMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2xpYmh3YmluZGVyLzEuMC9kZWZhdWx0L1NjaGVkdWxlVGVzdC5jcHAKKysrIGIvdGVzdHMvbGliaHdiaW5kZXIvMS4wL2RlZmF1bHQvU2NoZWR1bGVUZXN0LmNwcApAQCAtNSwxMiArNSwxNCBAQAogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi0jZGVmaW5lIEFTU0VSVChjb25kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAoIShjb25kKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBjZXJyIDw8IF9fZnVuY19fIDw8ICI6IiA8PCBfX0xJTkVfXyA8PCAiIGNvbmRpdGlvbjoiIDw8ICNjb25kIDw8ICIgZmFpbGVkXG4iIDw8IGVuZGw7IFwKLSAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIEFTU0VSVChjb25kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoIShjb25kKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBjZXJyIDw8IF9fZnVuY19fIDw8ICI6IiA8PCBfX0xJTkVfXyA8PCAiIGNvbmRpdGlvbjoiIDw8ICNjb25kIFwKKyAgICAgICAgICAgICAgICAgPDwgIiBmYWlsZWRcbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICA8PCBlbmRsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0gd2hpbGUgKDApCiAKIHN0YXRpYyBpbnQgdGhyZWFkUHJpKCkgewpAQCAtMjUsMTMgKzI3LDE0IEBACiAgICAgaW50IHBvbGljeTsKICAgICBpZiAoIXZlcmJvc2UpIHJldHVybjsKICAgICBjb3V0IDw8ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgPDwgZW5kbDsKLSAgICBjb3V0IDw8IHNldHcoMTIpIDw8IGxlZnQgPDwgcHJlZml4IDw8ICIgcGlkOiAiIDw8IGdldHBpZCgpIDw8ICIgdGlkOiAiIDw8IGdldHRpZCgpCi0gICAgICAgICA8PCAiIGNwdTogIiA8PCBzY2hlZF9nZXRjcHUoKSA8PCBlbmRsOworICAgIGNvdXQgPDwgc2V0dygxMikgPDwgbGVmdCA8PCBwcmVmaXggPDwgIiBwaWQ6ICIgPDwgZ2V0cGlkKCkKKyAgICAgICAgIDw8ICIgdGlkOiAiIDw8IGdldHRpZCgpIDw8ICIgY3B1OiAiIDw8IHNjaGVkX2dldGNwdSgpIDw8IGVuZGw7CiAgICAgQVNTRVJUKCFwdGhyZWFkX2dldHNjaGVkcGFyYW0ocHRocmVhZF9zZWxmKCksICZwb2xpY3ksICZwYXJhbSkpOwotICAgIHN0cmluZyBzID0KLSAgICAgICAgKHBvbGljeSA9PSBTQ0hFRF9PVEhFUikKLSAgICAgICAgICAgID8gIlNDSEVEX09USEVSIgotICAgICAgICAgICAgOiAocG9saWN5ID09IFNDSEVEX0ZJRk8pID8gIlNDSEVEX0ZJRk8iIDogKHBvbGljeSA9PSBTQ0hFRF9SUikgPyAiU0NIRURfUlIiIDogIj8/PyI7CisgICAgc3RyaW5nIHMgPSAocG9saWN5ID09IFNDSEVEX09USEVSKQorICAgICAgICAgICAgICAgICAgID8gIlNDSEVEX09USEVSIgorICAgICAgICAgICAgICAgICAgIDogKHBvbGljeSA9PSBTQ0hFRF9GSUZPKQorICAgICAgICAgICAgICAgICAgICAgICAgID8gIlNDSEVEX0ZJRk8iCisgICAgICAgICAgICAgICAgICAgICAgICAgOiAocG9saWN5ID09IFNDSEVEX1JSKSA/ICJTQ0hFRF9SUiIgOiAiPz8/IjsKICAgICBjb3V0IDw8IHNldHcoMTIpIDw8IGxlZnQgPDwgcyA8PCBwYXJhbS5zY2hlZF9wcmlvcml0eSA8PCBlbmRsOwogICAgIHJldHVybjsKIH0KQEAgLTU1LDcgKzU4LDggQEAKICAgICBpZiAocHJpb3JpdHlfY2FsbGVyICE9IHByaW9yaXR5KSB7CiAgICAgICAgIGgrKzsKICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIGNvdXQgPDwgImVyciBwcmlvcml0eV9jYWxsZXI6IiA8PCBwcmlvcml0eV9jYWxsZXIgPDwgIiwgcHJpb3JpdHk6IiA8PCBwcmlvcml0eSA8PCBlbmRsOworICAgICAgICAgICAgY291dCA8PCAiZXJyIHByaW9yaXR5X2NhbGxlcjoiIDw8IHByaW9yaXR5X2NhbGxlcgorICAgICAgICAgICAgICAgICA8PCAiLCBwcmlvcml0eToiIDw8IHByaW9yaXR5IDw8IGVuZGw7CiAgICAgICAgIH0KICAgICB9CiAgICAgaW50IGNwdSA9IHNjaGVkX2dldGNwdSgpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvbGliaHdiaW5kZXIvQW5kcm9pZC5tayBiL3Rlc3RzL2xpYmh3YmluZGVyL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2xpYmh3YmluZGVyL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3Rlc3RzL21zZ3EvQW5kcm9pZC5tayBiL3Rlc3RzL21zZ3EvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvbXNncS9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90ZXN0cy9wb2ludGVyL0FuZHJvaWQubWsgYi90ZXN0cy9wb2ludGVyL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3BvaW50ZXIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvQW5kcm9pZC5icCBiL3RoZXJtYWwvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmE5ZjljNwotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklUaGVybWFsLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL1RoZXJtYWxBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvSVRoZXJtYWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL0lId1RoZXJtYWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL0JuSHdUaGVybWFsLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9CcEh3VGhlcm1hbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvQnNUaGVybWFsLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvQW5kcm9pZC5tayBiL3RoZXJtYWwvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWEwYTlhMAotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwzODAgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbC1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvb2xpbmdEZXZpY2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9Db29saW5nRGV2aWNlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuQ29vbGluZ0RldmljZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29vbGluZ1R5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9Db29saW5nVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLkNvb2xpbmdUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDcHVVc2FnZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0NwdVVzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuQ3B1VXNhZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRlbXBlcmF0dXJlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvVGVtcGVyYXR1cmUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5UZW1wZXJhdHVyZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGVtcGVyYXR1cmVUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvVGVtcGVyYXR1cmVUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuVGVtcGVyYXR1cmVUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUaGVybWFsU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvVGhlcm1hbFN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLlRoZXJtYWxTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRoZXJtYWxTdGF0dXNDb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvVGhlcm1hbFN0YXR1c0NvZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5UaGVybWFsU3RhdHVzQ29kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElUaGVybWFsLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvSVRoZXJtYWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lUaGVybWFsLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6SVRoZXJtYWwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lUaGVybWFsLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29vbGluZ0RldmljZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0Nvb2xpbmdEZXZpY2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5Db29saW5nRGV2aWNlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb29saW5nVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0Nvb2xpbmdUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuQ29vbGluZ1R5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENwdVVzYWdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvQ3B1VXNhZ2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5DcHVVc2FnZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGVtcGVyYXR1cmUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UZW1wZXJhdHVyZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLlRlbXBlcmF0dXJlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUZW1wZXJhdHVyZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UZW1wZXJhdHVyZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5UZW1wZXJhdHVyZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRoZXJtYWxTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UaGVybWFsU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuVGhlcm1hbFN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGhlcm1hbFN0YXR1c0NvZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UaGVybWFsU3RhdHVzQ29kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLlRoZXJtYWxTdGF0dXNDb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVRoZXJtYWwuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9JVGhlcm1hbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVRoZXJtYWwuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjpJVGhlcm1hbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVRoZXJtYWwuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVGhlcm1hbC5oYWwKKworJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhLWNvbnN0YW50cyBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvSVRoZXJtYWwuaGFsIGIvdGhlcm1hbC8xLjAvSVRoZXJtYWwuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxYTY1ZDQKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC9JVGhlcm1hbC5oYWwKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDsKKworaW50ZXJmYWNlIElUaGVybWFsIHsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB0ZW1wZXJhdHVyZXMgaW4gQ2Vsc2l1cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgb3BlcmF0aW9uLiBJZiBzdGF0dXMgY29kZSBpcyBGQUlMVVJFLAorICAgICAqICAgICAgICAgdGhlIHN0YXR1cy5kZWJ1Z01lc3NhZ2UgbXVzdCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgaHVtYW4tcmVhZGFibGUKKyAgICAgKiAgICAgICAgIGVycm9yIG1lc3NhZ2UuCisgICAgICogQHJldHVybiB0ZW1wZXJhdHVyZXMgSWYgc3RhdHVzIGNvZGUgaXMgU1VDQ0VTUywgaXQncyBmaWxsZWQgd2l0aCB0aGUKKyAgICAgKiAgICAgICAgIGN1cnJlbnQgdGVtcGVyYXR1cmVzLiBUaGUgb3JkZXIgb2YgdGVtcGVyYXR1cmVzIG9mIGJ1aWx0LWluCisgICAgICogICAgICAgICBkZXZpY2VzIChzdWNoIGFzIENQVXMsIEdQVXMgYW5kIGV0Yy4pIGluIHRoZSBsaXN0IG11c3QgYmUga2VwdAorICAgICAqICAgICAgICAgdGhlIHNhbWUgcmVnYXJkbGVzcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIHRoaXMgbWV0aG9kIGV2ZW4gaWYKKyAgICAgKiAgICAgICAgIHRoZXkgZ28gb2ZmbGluZSwgaWYgdGhlc2UgZGV2aWNlcyBleGlzdCBvbiBib290LiBUaGUgbWV0aG9kCisgICAgICogICAgICAgICBhbHdheXMgcmV0dXJucyBhbmQgbmV2ZXIgcmVtb3ZlcyBzdWNoIHRlbXBlcmF0dXJlcy4KKyAgICAgKgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIEBlbnRyeQorICAgIEBleGl0CisgICAgZ2V0VGVtcGVyYXR1cmVzKCkKKyAgICAgICAgZ2VuZXJhdGVzIChUaGVybWFsU3RhdHVzIHN0YXR1cywgdmVjPFRlbXBlcmF0dXJlPiB0ZW1wZXJhdHVyZXMpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIENQVSB1c2FnZSBpbmZvcm1hdGlvbiBvZiBlYWNoIGNvcmU6IGFjdGl2ZSBhbmQgdG90YWwgdGltZXMKKyAgICAgKiBpbiBtcyBzaW5jZSBmaXJzdCBib290LgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uIElmIHN0YXR1cyBjb2RlIGlzIEZBSUxVUkUsCisgICAgICogICAgICAgICB0aGUgc3RhdHVzLmRlYnVnTWVzc2FnZSBtdXN0IGJlIHBvcHVsYXRlZCB3aXRoIHRoZSBodW1hbi1yZWFkYWJsZQorICAgICAqICAgICAgICAgZXJyb3IgbWVzc2FnZS4KKyAgICAgKiBAcmV0dXJuIGNwdVVzYWdlcyBJZiBzdGF0dXMgY29kZSBpcyBTVUNDRVNTLCBpdCdzIGZpbGxlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICogICAgICAgICBDUFUgdXNhZ2VzLiBUaGUgb3JkZXIgYW5kIG51bWJlciBvZiBDUFVzIGluIHRoZSBsaXN0IG11c3QgYmUga2VwdAorICAgICAqICAgICAgICAgdGhlIHNhbWUgcmVnYXJkbGVzcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBnZXRDcHVVc2FnZXMoKSBnZW5lcmF0ZXMgKFRoZXJtYWxTdGF0dXMgc3RhdHVzLCB2ZWM8Q3B1VXNhZ2U+IGNwdVVzYWdlcyk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIGNvb2xpbmcgZGV2aWNlcyBpbmZvcm1hdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgb3BlcmF0aW9uLiBJZiBzdGF0dXMgY29kZSBpcyBGQUlMVVJFLAorICAgICAqICAgICAgICAgdGhlIHN0YXR1cy5kZWJ1Z01lc3NhZ2UgbXVzdCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgaHVtYW4tcmVhZGFibGUKKyAgICAgKiAgICAgICAgIGVycm9yIG1lc3NhZ2UuCisgICAgICogQHJldHVybiBkZXZpY2VzIElmIHN0YXR1cyBjb2RlIGlzIFNVQ0NFU1MsIGl0J3MgZmlsbGVkIHdpdGggdGhlIGN1cnJlbnQKKyAgICAgKiAgICAgICAgIGNvb2xpbmcgZGV2aWNlIGluZm9ybWF0aW9uLiBUaGUgb3JkZXIgb2YgYnVpbHQtaW4gY29vbGluZworICAgICAqICAgICAgICAgZGV2aWNlcyBpbiB0aGUgbGlzdCBtdXN0IGJlIGtlcHQgdGhlIHNhbWUgcmVnYXJkbGVzcyB0aGUgbnVtYmVyCisgICAgICogICAgICAgICBvZiBjYWxscyB0byB0aGlzIG1ldGhvZCBldmVuIGlmIHRoZXkgZ28gb2ZmbGluZSwgaWYgdGhlc2UgZGV2aWNlcworICAgICAqICAgICAgICAgZXhpc3Qgb24gYm9vdC4gVGhlIG1ldGhvZCBhbHdheXMgcmV0dXJucyBhbmQgbmV2ZXIgcmVtb3ZlcyBmcm9tCisgICAgICogICAgICAgICB0aGUgbGlzdCBzdWNoIGNvb2xpbmcgZGV2aWNlcy4KKyAgICAgKgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIEBlbnRyeQorICAgIEBleGl0CisgICAgZ2V0Q29vbGluZ0RldmljZXMoKQorICAgICAgICBnZW5lcmF0ZXMgKFRoZXJtYWxTdGF0dXMgc3RhdHVzLCB2ZWM8Q29vbGluZ0RldmljZT4gZGV2aWNlcyk7CisKK307CmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAgYi90aGVybWFsLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUxMDUwOQotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDE4IEBACitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIlRoZXJtYWwuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMzAyMGEKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwzOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworTE9DQUxfUEFUSDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICAgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICAgICAgbGlibG9nIFwKKyAgICAgICAgbGliY3V0aWxzIFwKKyAgICAgICAgbGliZGwgXAorICAgICAgICBsaWJiYXNlIFwKKyAgICAgICAgbGlidXRpbHMgXAorICAgICAgICBsaWJoYXJkd2FyZSBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgKz0gXAorICAgICAgICBsaWJoaWRsYmFzZSBcCisgICAgICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9kZWZhdWx0L1RoZXJtYWwuY3BwIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9UaGVybWFsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGQwMDkwCi0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9UaGVybWFsLmNwcApAQCAtMCwwICsxLDIxMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMC1pbXBsIgorCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxtYXRoLmg+CisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3RoZXJtYWwuaD4KKworI2luY2x1ZGUgIlRoZXJtYWwuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB0aGVybWFsIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK25hbWVzcGFjZSB7CisKK2Zsb2F0IGZpbmFsaXplVGVtcGVyYXR1cmUoZmxvYXQgdGVtcGVyYXR1cmUpIHsKKyAgICByZXR1cm4gdGVtcGVyYXR1cmUgPT0gVU5LTk9XTl9URU1QRVJBVFVSRSA/IE5BTiA6IHRlbXBlcmF0dXJlOworfQorCit9CisKK1RoZXJtYWw6OlRoZXJtYWwodGhlcm1hbF9tb2R1bGVfdCogbW9kdWxlKSA6IG1Nb2R1bGUobW9kdWxlKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6SVRoZXJtYWwgZm9sbG93LgorUmV0dXJuPHZvaWQ+IFRoZXJtYWw6OmdldFRlbXBlcmF0dXJlcyhnZXRUZW1wZXJhdHVyZXNfY2IgX2hpZGxfY2IpIHsKKyAgVGhlcm1hbFN0YXR1cyBzdGF0dXM7CisgIHN0YXR1cy5jb2RlID0gVGhlcm1hbFN0YXR1c0NvZGU6OlNVQ0NFU1M7CisgIGhpZGxfdmVjPFRlbXBlcmF0dXJlPiB0ZW1wZXJhdHVyZXM7CisKKyAgaWYgKCFtTW9kdWxlIHx8ICFtTW9kdWxlLT5nZXRUZW1wZXJhdHVyZXMpIHsKKyAgICBBTE9HSSgiZ2V0VGVtcGVyYXR1cmVzIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBUaGVybWFsIEhBTC4iKTsKKyAgICBfaGlkbF9jYihzdGF0dXMsIHRlbXBlcmF0dXJlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHNzaXplX3Qgc2l6ZSA9IG1Nb2R1bGUtPmdldFRlbXBlcmF0dXJlcyhtTW9kdWxlLCBudWxscHRyLCAwKTsKKyAgaWYgKHNpemUgPj0gMCkgeworICAgIHN0ZDo6dmVjdG9yPHRlbXBlcmF0dXJlX3Q+IGxpc3Q7CisgICAgbGlzdC5yZXNpemUoc2l6ZSk7CisgICAgc2l6ZSA9IG1Nb2R1bGUtPmdldFRlbXBlcmF0dXJlcyhtTW9kdWxlLCBsaXN0LmRhdGEoKSwgbGlzdC5zaXplKCkpOworICAgIGlmIChzaXplID49IDApIHsKKyAgICAgIHRlbXBlcmF0dXJlcy5yZXNpemUobGlzdC5zaXplKCkpOworICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgIHN3aXRjaCAobGlzdFtpXS50eXBlKSB7CisgICAgICAgICAgY2FzZSBERVZJQ0VfVEVNUEVSQVRVUkVfVU5LTk9XTjoKKyAgICAgICAgICAgIHRlbXBlcmF0dXJlc1tpXS50eXBlID0gVGVtcGVyYXR1cmVUeXBlOjpVTktOT1dOOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgY2FzZSBERVZJQ0VfVEVNUEVSQVRVUkVfQ1BVOgorICAgICAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnR5cGUgPSBUZW1wZXJhdHVyZVR5cGU6OkNQVTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNhc2UgREVWSUNFX1RFTVBFUkFUVVJFX0dQVToKKyAgICAgICAgICAgIHRlbXBlcmF0dXJlc1tpXS50eXBlID0gVGVtcGVyYXR1cmVUeXBlOjpHUFU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBjYXNlIERFVklDRV9URU1QRVJBVFVSRV9CQVRURVJZOgorICAgICAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnR5cGUgPSBUZW1wZXJhdHVyZVR5cGU6OkJBVFRFUlk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBjYXNlIERFVklDRV9URU1QRVJBVFVSRV9TS0lOOgorICAgICAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnR5cGUgPSBUZW1wZXJhdHVyZVR5cGU6OlNLSU47CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoIlVua25vd24gdGVtcGVyYXR1cmUgJXMgdHlwZSIsIGxpc3RbaV0ubmFtZSk7CisgICAgICAgICAgICA7CisgICAgICAgIH0KKyAgICAgICAgdGVtcGVyYXR1cmVzW2ldLm5hbWUgPSBsaXN0W2ldLm5hbWU7CisgICAgICAgIHRlbXBlcmF0dXJlc1tpXS5jdXJyZW50VmFsdWUgPSBmaW5hbGl6ZVRlbXBlcmF0dXJlKGxpc3RbaV0uY3VycmVudF92YWx1ZSk7CisgICAgICAgIHRlbXBlcmF0dXJlc1tpXS50aHJvdHRsaW5nVGhyZXNob2xkID0gZmluYWxpemVUZW1wZXJhdHVyZShsaXN0W2ldLnRocm90dGxpbmdfdGhyZXNob2xkKTsKKyAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnNodXRkb3duVGhyZXNob2xkID0gZmluYWxpemVUZW1wZXJhdHVyZShsaXN0W2ldLnNodXRkb3duX3RocmVzaG9sZCk7CisgICAgICAgIHRlbXBlcmF0dXJlc1tpXS52clRocm90dGxpbmdUaHJlc2hvbGQgPQorICAgICAgICAgICAgICAgIGZpbmFsaXplVGVtcGVyYXR1cmUobGlzdFtpXS52cl90aHJvdHRsaW5nX3RocmVzaG9sZCk7CisgICAgICB9CisgICAgfQorICB9CisgIGlmIChzaXplIDwgMCkgeworICAgIHN0YXR1cy5jb2RlID0gVGhlcm1hbFN0YXR1c0NvZGU6OkZBSUxVUkU7CisgICAgc3RhdHVzLmRlYnVnTWVzc2FnZSA9IHN0cmVycm9yKC1zaXplKTsKKyAgfQorICBfaGlkbF9jYihzdGF0dXMsIHRlbXBlcmF0dXJlcyk7CisgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBUaGVybWFsOjpnZXRDcHVVc2FnZXMoZ2V0Q3B1VXNhZ2VzX2NiIF9oaWRsX2NiKSB7CisgIFRoZXJtYWxTdGF0dXMgc3RhdHVzOworICBoaWRsX3ZlYzxDcHVVc2FnZT4gY3B1VXNhZ2VzOworICBzdGF0dXMuY29kZSA9IFRoZXJtYWxTdGF0dXNDb2RlOjpTVUNDRVNTOworCisgIGlmICghbU1vZHVsZSB8fCAhbU1vZHVsZS0+Z2V0Q3B1VXNhZ2VzKSB7CisgICAgQUxPR0koImdldENwdVVzYWdlcyBpcyBub3QgaW1wbGVtZW50ZWQgaW4gVGhlcm1hbCBIQUwiKTsKKyAgICBfaGlkbF9jYihzdGF0dXMsIGNwdVVzYWdlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHNzaXplX3Qgc2l6ZSA9IG1Nb2R1bGUtPmdldENwdVVzYWdlcyhtTW9kdWxlLCBudWxscHRyKTsKKyAgaWYgKHNpemUgPj0gMCkgeworICAgIHN0ZDo6dmVjdG9yPGNwdV91c2FnZV90PiBsaXN0OworICAgIGxpc3QucmVzaXplKHNpemUpOworICAgIHNpemUgPSBtTW9kdWxlLT5nZXRDcHVVc2FnZXMobU1vZHVsZSwgbGlzdC5kYXRhKCkpOworICAgIGlmIChzaXplID49IDApIHsKKyAgICAgIGxpc3QucmVzaXplKHNpemUpOworICAgICAgY3B1VXNhZ2VzLnJlc2l6ZShzaXplKTsKKyAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC5zaXplKCk7ICsraSkgeworICAgICAgICBjcHVVc2FnZXNbaV0ubmFtZSA9IGxpc3RbaV0ubmFtZTsKKyAgICAgICAgY3B1VXNhZ2VzW2ldLmFjdGl2ZSA9IGxpc3RbaV0uYWN0aXZlOworICAgICAgICBjcHVVc2FnZXNbaV0udG90YWwgPSBsaXN0W2ldLnRvdGFsOworICAgICAgICBjcHVVc2FnZXNbaV0uaXNPbmxpbmUgPSBsaXN0W2ldLmlzX29ubGluZTsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgc3RhdHVzLmNvZGUgPSBUaGVybWFsU3RhdHVzQ29kZTo6RkFJTFVSRTsKKyAgICAgIHN0YXR1cy5kZWJ1Z01lc3NhZ2UgPSBzdHJlcnJvcigtc2l6ZSk7CisgICAgfQorICB9CisgIGlmIChzaXplIDwgMCkgeworICAgIHN0YXR1cy5jb2RlID0gVGhlcm1hbFN0YXR1c0NvZGU6OkZBSUxVUkU7CisgICAgc3RhdHVzLmRlYnVnTWVzc2FnZSA9IHN0cmVycm9yKC1zaXplKTsKKyAgfQorICBfaGlkbF9jYihzdGF0dXMsIGNwdVVzYWdlcyk7CisgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBUaGVybWFsOjpnZXRDb29saW5nRGV2aWNlcyhnZXRDb29saW5nRGV2aWNlc19jYiBfaGlkbF9jYikgeworICBUaGVybWFsU3RhdHVzIHN0YXR1czsKKyAgc3RhdHVzLmNvZGUgPSBUaGVybWFsU3RhdHVzQ29kZTo6U1VDQ0VTUzsKKyAgaGlkbF92ZWM8Q29vbGluZ0RldmljZT4gY29vbGluZ0RldmljZXM7CisKKyAgaWYgKCFtTW9kdWxlIHx8ICFtTW9kdWxlLT5nZXRDb29saW5nRGV2aWNlcykgeworICAgIEFMT0dJKCJnZXRDb29saW5nRGV2aWNlcyBpcyBub3QgaW1wbGVtZW50ZWQgaW4gVGhlcm1hbCBIQUwuIik7CisgICAgX2hpZGxfY2Ioc3RhdHVzLCBjb29saW5nRGV2aWNlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHNzaXplX3Qgc2l6ZSA9IG1Nb2R1bGUtPmdldENvb2xpbmdEZXZpY2VzKG1Nb2R1bGUsIG51bGxwdHIsIDApOworICBpZiAoc2l6ZSA+PSAwKSB7CisgICAgc3RkOjp2ZWN0b3I8Y29vbGluZ19kZXZpY2VfdD4gbGlzdDsKKyAgICBsaXN0LnJlc2l6ZShzaXplKTsKKyAgICBzaXplID0gbU1vZHVsZS0+Z2V0Q29vbGluZ0RldmljZXMobU1vZHVsZSwgbGlzdC5kYXRhKCksIGxpc3Quc2l6ZSgpKTsKKyAgICBpZiAoc2l6ZSA+PSAwKSB7CisgICAgICBsaXN0LnJlc2l6ZShzaXplKTsKKyAgICAgIGNvb2xpbmdEZXZpY2VzLnJlc2l6ZShsaXN0LnNpemUoKSk7CisgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3dpdGNoIChsaXN0W2ldLnR5cGUpIHsKKyAgICAgICAgICBjYXNlIEZBTl9SUE06CisgICAgICAgICAgICBjb29saW5nRGV2aWNlc1tpXS50eXBlID0gQ29vbGluZ1R5cGU6OkZBTl9SUE07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoIlVua25vd24gY29vbGluZyBkZXZpY2UgJXMgdHlwZSIsIGxpc3RbaV0ubmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgY29vbGluZ0RldmljZXNbaV0ubmFtZSA9IGxpc3RbaV0ubmFtZTsKKyAgICAgICAgY29vbGluZ0RldmljZXNbaV0uY3VycmVudFZhbHVlID0gbGlzdFtpXS5jdXJyZW50X3ZhbHVlOworICAgICAgfQorICAgIH0KKyAgfQorICBpZiAoc2l6ZSA8IDApIHsKKyAgICBzdGF0dXMuY29kZSA9IFRoZXJtYWxTdGF0dXNDb2RlOjpGQUlMVVJFOworICAgIHN0YXR1cy5kZWJ1Z01lc3NhZ2UgPSBzdHJlcnJvcigtc2l6ZSk7CisgIH0KKyAgX2hpZGxfY2Ioc3RhdHVzLCBjb29saW5nRGV2aWNlcyk7CisgIHJldHVybiBWb2lkKCk7Cit9CisKK0lUaGVybWFsKiBISURMX0ZFVENIX0lUaGVybWFsKGNvbnN0IGNoYXIqIC8qIG5hbWUgKi8pIHsKKyAgdGhlcm1hbF9tb2R1bGVfdCogbW9kdWxlOworICBzdGF0dXNfdCBlcnIgPSBod19nZXRfbW9kdWxlKFRIRVJNQUxfSEFSRFdBUkVfTU9EVUxFX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8aHdfbW9kdWxlX3QgY29uc3QqKj4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfbW9kdWxlX3QqKj4oJm1vZHVsZSkpKTsKKyAgaWYgKGVyciB8fCAhbW9kdWxlKSB7CisgICAgQUxPR0UoIkNvdWxkbid0IGxvYWQgJXMgbW9kdWxlICglcykiLCBUSEVSTUFMX0hBUkRXQVJFX01PRFVMRV9JRCwKKyAgICAgICAgICBzdHJlcnJvcigtZXJyKSk7CisgIH0KKworICBpZiAoZXJyID09IDAgJiYgbW9kdWxlLT5jb21tb24ubWV0aG9kcy0+b3BlbikgeworICAgIHN0cnVjdCBod19kZXZpY2VfdCogZGV2aWNlOworICAgIGVyciA9IG1vZHVsZS0+Y29tbW9uLm1ldGhvZHMtPm9wZW4oJm1vZHVsZS0+Y29tbW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEhFUk1BTF9IQVJEV0FSRV9NT0RVTEVfSUQsICZkZXZpY2UpOworICAgIGlmIChlcnIpIHsKKyAgICAgIEFMT0dFKCJDb3VsZG4ndCBvcGVuICVzIG1vZHVsZSAoJXMpIiwgVEhFUk1BTF9IQVJEV0FSRV9NT0RVTEVfSUQsCisgICAgICAgICAgICBzdHJlcnJvcigtZXJyKSk7CisgICAgfSBlbHNlIHsKKyAgICAgIHJldHVybiBuZXcgVGhlcm1hbChyZWludGVycHJldF9jYXN0PHRoZXJtYWxfbW9kdWxlX3QqPihkZXZpY2UpKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIG5ldyBUaGVybWFsKG1vZHVsZSk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB0aGVybWFsCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9kZWZhdWx0L1RoZXJtYWwuaCBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvVGhlcm1hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMDYyODkKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC9kZWZhdWx0L1RoZXJtYWwuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9USEVSTUFMX1YxXzBfVEhFUk1BTF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfVEhFUk1BTF9WMV8wX1RIRVJNQUxfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9JVGhlcm1hbC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvdGhlcm1hbC5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB0aGVybWFsIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OkNvb2xpbmdEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpDcHVVc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OklUaGVybWFsOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6VGVtcGVyYXR1cmU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpUaGVybWFsU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgVGhlcm1hbCA6IHB1YmxpYyBJVGhlcm1hbCB7CisgICAgVGhlcm1hbCh0aGVybWFsX21vZHVsZV90KiBtb2R1bGUpOworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpJVGhlcm1hbCBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldFRlbXBlcmF0dXJlcyhnZXRUZW1wZXJhdHVyZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3B1VXNhZ2VzKGdldENwdVVzYWdlc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb29saW5nRGV2aWNlcyhnZXRDb29saW5nRGV2aWNlc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIHByaXZhdGU6CisgICAgICAgIHRoZXJtYWxfbW9kdWxlX3QqIG1Nb2R1bGU7Cit9OworCitleHRlcm4gIkMiIElUaGVybWFsKiBISURMX0ZFVENIX0lUaGVybWFsKGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgdGhlcm1hbAorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfVEhFUk1BTF9WMV8wX1RIRVJNQUxfSApkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wLXNlcnZpY2UucmMgYi90aGVybWFsLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmMwZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIHRoZXJtYWwtaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgzY2JmOAotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9JVGhlcm1hbC5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6SVRoZXJtYWw7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElUaGVybWFsPigpOworfQpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvdHlwZXMuaGFsIGIvdGhlcm1hbC8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViNWQ3YzcKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA7CisKKy8qKiBEZXZpY2UgdGVtcGVyYXR1cmUgdHlwZXMgKi8KK0BleHBvcnQKK2VudW0gVGVtcGVyYXR1cmVUeXBlIDogaW50MzJfdCB7CisgICAgVU5LTk9XTiA9IC0xLAorICAgIENQVSA9IDAsCisgICAgR1BVID0gMSwKKyAgICBCQVRURVJZID0gMiwKKyAgICBTS0lOID0gMywKK307CisKK2VudW0gQ29vbGluZ1R5cGUgOiB1aW50MzJfdCB7CisgICAgLyoqIEZhbiBjb29saW5nIGRldmljZSBzcGVlZCBpbiBSUE0uICovCisgICAgRkFOX1JQTSA9IDAsCit9OworCitzdHJ1Y3QgVGVtcGVyYXR1cmUgeworICAgIC8qKgorICAgICAqIFRoaXMgdGVtcGVyYXR1cmUncyB0eXBlLgorICAgICAqLworICAgIFRlbXBlcmF0dXJlVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogTmFtZSBvZiB0aGlzIHRlbXBlcmF0dXJlLgorICAgICAqIEFsbCB0ZW1wZXJhdHVyZXMgb2YgdGhlIHNhbWUgInR5cGUiIG11c3QgaGF2ZSBhIGRpZmZlcmVudCAibmFtZSIsCisgICAgICogZS5nLiwgY3B1MCwgYmF0dGVyeS4KKyAgICAgKi8KKyAgICBzdHJpbmcgbmFtZTsKKworICAgIC8qKgorICAgICAqIEN1cnJlbnQgdGVtcGVyYXR1cmUgaW4gQ2Vsc2l1cy4gSWYgbm90IGF2YWlsYWJsZSBzZXQgYnkgSEFMIHRvIE5BTi4KKyAgICAgKiBDdXJyZW50IHRlbXBlcmF0dXJlIGNhbiBiZSBpbiBhbnkgdW5pdHMgaWYgdHlwZT1VTktOT1dOLgorICAgICAqLworICAgIGZsb2F0IGN1cnJlbnRWYWx1ZTsKKworICAgIC8qKgorICAgICAqIFRocm90dGxpbmcgdGVtcGVyYXR1cmUgY29uc3RhbnQgZm9yIHRoaXMgdGVtcGVyYXR1cmUuCisgICAgICogSWYgbm90IGF2YWlsYWJsZSwgc2V0IGJ5IEhBTCB0byBOQU4uCisgICAgICovCisgICAgZmxvYXQgdGhyb3R0bGluZ1RocmVzaG9sZDsKKworICAgIC8qKgorICAgICAqIFNodXRkb3duIHRlbXBlcmF0dXJlIGNvbnN0YW50IGZvciB0aGlzIHRlbXBlcmF0dXJlLgorICAgICAqIElmIG5vdCBhdmFpbGFibGUsIHNldCBieSBIQUwgdG8gTkFOLgorICAgICAqLworICAgIGZsb2F0IHNodXRkb3duVGhyZXNob2xkOworCisgICAgLyoqCisgICAgICogVGhyZXNob2xkIHRlbXBlcmF0dXJlIGFib3ZlIHdoaWNoIHRoZSBWUiBtb2RlIGNsb2NrcmF0ZSBtaW5pbXVtcyBjYW5ub3QKKyAgICAgKiBiZSBtYWludGFpbmVkIGZvciB0aGlzIGRldmljZS4KKyAgICAgKiBJZiBub3QgYXZhaWxhYmxlLCBzZXQgYnkgSEFMIHRvIE5BTi4KKyAgICAgKi8KKyAgICBmbG9hdCB2clRocm90dGxpbmdUaHJlc2hvbGQ7CisKK307CisKK3N0cnVjdCBDb29saW5nRGV2aWNlIHsKKyAgICAvKioKKyAgICAgKiBUaGlzIGNvb2xpbmcgZGV2aWNlIHR5cGUuCisgICAgICovCisgICAgQ29vbGluZ1R5cGUgdHlwZTsKKworICAgIC8qKgorICAgICAqIE5hbWUgb2YgdGhpcyBjb29saW5nIGRldmljZS4KKyAgICAgKiBBbGwgY29vbGluZyBkZXZpY2VzIG9mIHRoZSBzYW1lICJ0eXBlIiBtdXN0IGhhdmUgYSBkaWZmZXJlbnQgIm5hbWUiLgorICAgICAqLworICAgIHN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogQ3VycmVudCBjb29saW5nIGRldmljZSB2YWx1ZS4gVW5pdHMgZGVwZW5kIG9uIGNvb2xpbmcgZGV2aWNlICJ0eXBlIi4KKyAgICAgKi8KKyAgICBmbG9hdCBjdXJyZW50VmFsdWU7CisKK307CisKK3N0cnVjdCBDcHVVc2FnZSB7CisgICAgLyoqCisgICAgICogTmFtZSBvZiB0aGlzIENQVS4KKyAgICAgKiBBbGwgQ1BVcyBtdXN0IGhhdmUgYSBkaWZmZXJlbnQgIm5hbWUiLgorICAgICAqLworICAgIHN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogQWN0aXZlIHRpbWUgc2luY2UgdGhlIGxhc3QgYm9vdCBpbiBtcy4KKyAgICAgKi8KKyAgICB1aW50NjRfdCBhY3RpdmU7CisKKyAgICAvKioKKyAgICAgKiBUb3RhbCB0aW1lIHNpbmNlIHRoZSBsYXN0IGJvb3QgaW4gbXMuCisgICAgICovCisgICAgdWludDY0X3QgdG90YWw7CisKKyAgICAvKioKKyAgICAgKiBJcyBzZXQgdG8gdHJ1ZSB3aGVuIGEgY29yZSBpcyBvbmxpbmUuCisgICAgICogSWYgdGhlIGNvcmUgaXMgb2ZmbGluZSwgYWxsIG90aGVyIG1lbWJlcnMgZXhjZXB0IHxuYW1lfCBzaG91bGQgYmUgaWdub3JlZC4KKyAgICAgKi8KKyAgICBib29sIGlzT25saW5lOworCit9OworCitlbnVtIFRoZXJtYWxTdGF0dXNDb2RlIDogdWludDMyX3QgeworICAgIC8qKiBObyBlcnJvcnMuICovCisgICAgU1VDQ0VTUyA9IDAsCisgICAgLyoqIFVua25vd24gZmFpbHVyZSBvY2N1cmVkLiAqLworICAgIEZBSUxVUkUgPSAxCit9OworCisvKioKKyAqIEdlbmVyaWMgc3RydWN0dXJlIHRvIHJldHVybiB0aGUgc3RhdHVzIG9mIGFueSB0aGVybWFsIG9wZXJhdGlvbi4KKyAqLworc3RydWN0IFRoZXJtYWxTdGF0dXMgeworICAgIFRoZXJtYWxTdGF0dXNDb2RlIGNvZGU7CisKKyAgICAvKioKKyAgICAgKiBBIHNwZWNpZmljIGVycm9yIG1lc3NhZ2UgdG8gcHJvdmlkZSBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyBvbmx5LgorICAgICAqLworICAgIHN0cmluZyBkZWJ1Z01lc3NhZ2U7Cit9OwpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvdnRzL0FuZHJvaWQubWsgYi90aGVybWFsLzEuMC92dHMvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGNjNzIzCi0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvdnRzL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvdGhlcm1hbC8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDQ2ODgyCi0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM3IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsVGhlcm1hbFYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxUaGVybWFsVjFfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQorCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxUaGVybWFsVjFfMFRhcmdldFRlc3QuY3BwIGIvdGhlcm1hbC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVGhlcm1hbFYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTg5Yzk0Ci0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVGhlcm1hbFYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDIxMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8Y21hdGg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2RlZmluZSBMT0dfVEFHICJ0aGVybWFsX2hpZGxfaGFsX3Rlc3QiCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvSVRoZXJtYWwuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpDb29saW5nRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6Q3B1VXNhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpJVGhlcm1hbDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OlRlbXBlcmF0dXJlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6VGVtcGVyYXR1cmVUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6VGhlcm1hbFN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OlRoZXJtYWxTdGF0dXNDb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNkZWZpbmUgTU9OSVRPUklOR19PUEVSQVRJT05fTlVNQkVSIDEwCisKKyNkZWZpbmUgTUFYX0RFVklDRV9URU1QRVJBVFVSRSAyMDAKKyNkZWZpbmUgTUFYX0ZBTl9TUEVFRCAyMDAwMAorCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBUSEVSTUFMIEhJREwgSEFMLgorY2xhc3MgVGhlcm1hbEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICB0aGVybWFsXyA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElUaGVybWFsPigpOworICAgIEFTU0VSVF9ORSh0aGVybWFsXywgbnVsbHB0cik7CisgICAgYmFzZVNpemVfID0gMDsKKyAgICBuYW1lc18uY2xlYXIoKTsKKyAgfQorCisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyBwcm90ZWN0ZWQ6CisgIC8vIENoZWNrIHZhbGlkaXR5IG9mIHRlbXBlcmF0dXJlcyByZXR1cm5lZCBieSBUaHJlbWFsIEhBTC4KKyAgdm9pZCBjaGVja1RlbXBlcmF0dXJlcyhjb25zdCBoaWRsX3ZlYzxUZW1wZXJhdHVyZT4gdGVtcGVyYXR1cmVzKSB7CisgICAgc2l6ZV90IHNpemUgPSB0ZW1wZXJhdHVyZXMuc2l6ZSgpOworICAgIEVYUEVDVF9MRShiYXNlU2l6ZV8sIHNpemUpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgIGNoZWNrRGV2aWNlVGVtcGVyYXR1cmUodGVtcGVyYXR1cmVzW2ldKTsKKyAgICAgIGlmIChpIDwgYmFzZVNpemVfKSB7CisgICAgICAgIEVYUEVDVF9FUShuYW1lc19baV0sIHRlbXBlcmF0dXJlc1tpXS5uYW1lLmNfc3RyKCkpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gTmFtZXMgbXVzdCBiZSB1bmlxdWUuCisgICAgICAgIEVYUEVDVF9FUShuYW1lc18uZW5kKCksIHN0ZDo6ZmluZChuYW1lc18uYmVnaW4oKSwgbmFtZXNfLmVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGVyYXR1cmVzW2ldLm5hbWUuY19zdHIoKSkpOworICAgICAgICBuYW1lc18ucHVzaF9iYWNrKHRlbXBlcmF0dXJlc1tpXS5uYW1lKTsKKyAgICAgIH0KKyAgICB9CisgICAgYmFzZVNpemVfID0gc2l6ZTsKKyAgfQorCisgIC8vIENoZWNrIHZhbGlkaXR5IG9mIENQVSB1c2FnZXMgcmV0dXJuZWQgYnkgVGhlcm1hbCBIQUwuCisgIHZvaWQgY2hlY2tDcHVVc2FnZXMoY29uc3QgaGlkbF92ZWM8Q3B1VXNhZ2U+JiBjcHVVc2FnZXMpIHsKKyAgICBzaXplX3Qgc2l6ZSA9IGNwdVVzYWdlcy5zaXplKCk7CisgICAgLy8gQSBudW1iZXIgb2YgQ1BVJ3MgZG9lcyBub3QgY2hhbmdlLgorICAgIGlmIChiYXNlU2l6ZV8gIT0gMCkgRVhQRUNUX0VRKGJhc2VTaXplXywgc2l6ZSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgY2hlY2tDcHVVc2FnZShjcHVVc2FnZXNbaV0pOworICAgICAgaWYgKGkgPCBiYXNlU2l6ZV8pIHsKKyAgICAgICAgRVhQRUNUX0VRKG5hbWVzX1tpXSwgY3B1VXNhZ2VzW2ldLm5hbWUuY19zdHIoKSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAvLyBOYW1lcyBtdXN0IGJlIHVuaXF1ZS4KKyAgICAgICAgRVhQRUNUX0VRKG5hbWVzXy5lbmQoKSwgc3RkOjpmaW5kKG5hbWVzXy5iZWdpbigpLCBuYW1lc18uZW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVVc2FnZXNbaV0ubmFtZS5jX3N0cigpKSk7CisgICAgICAgIG5hbWVzXy5wdXNoX2JhY2soY3B1VXNhZ2VzW2ldLm5hbWUpOworICAgICAgfQorICAgIH0KKyAgICBiYXNlU2l6ZV8gPSBzaXplOworICB9CisKKyAgLy8gQ2hlY2sgdmFsaWRpdHkgb2YgY29vbGluZyBkZXZpY2VzIGluZm9ybWF0aW9uIHJldHVybmVkIGJ5IFRoZXJtYWwgSEFMLgorICB2b2lkIGNoZWNrQ29vbGluZ0RldmljZXMoY29uc3QgaGlkbF92ZWM8Q29vbGluZ0RldmljZT4gY29vbGluZ0RldmljZXMpIHsKKyAgICBzaXplX3Qgc2l6ZSA9IGNvb2xpbmdEZXZpY2VzLnNpemUoKTsKKyAgICBFWFBFQ1RfTEUoYmFzZVNpemVfLCBzaXplKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICBjaGVja0Nvb2xpbmdEZXZpY2UoY29vbGluZ0RldmljZXNbaV0pOworICAgICAgaWYgKGkgPCBiYXNlU2l6ZV8pIHsKKyAgICAgICAgRVhQRUNUX0VRKG5hbWVzX1tpXSwgY29vbGluZ0RldmljZXNbaV0ubmFtZS5jX3N0cigpKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIC8vIE5hbWVzIG11c3QgYmUgdW5pcXVlLgorICAgICAgICBFWFBFQ1RfRVEobmFtZXNfLmVuZCgpLCBzdGQ6OmZpbmQobmFtZXNfLmJlZ2luKCksIG5hbWVzXy5lbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb2xpbmdEZXZpY2VzW2ldLm5hbWUuY19zdHIoKSkpOworICAgICAgICBuYW1lc18ucHVzaF9iYWNrKGNvb2xpbmdEZXZpY2VzW2ldLm5hbWUpOworICAgICAgfQorICAgIH0KKyAgICBiYXNlU2l6ZV8gPSBzaXplOworICB9CisKKyAgc3A8SVRoZXJtYWw+IHRoZXJtYWxfOworCisgcHJpdmF0ZToKKyAgLy8gQ2hlY2sgdmFsaWRpdHkgb2YgdGVtcGVyYXR1cmUgcmV0dXJuZWQgYnkgVGhlcm1hbCBIQUwuCisgIHZvaWQgY2hlY2tEZXZpY2VUZW1wZXJhdHVyZShjb25zdCBUZW1wZXJhdHVyZSYgdGVtcGVyYXR1cmUpIHsKKyAgICAvLyAuY3VycmVudFZhbHVlIG9mIGtub3duIHR5cGUgaXMgaW4gQ2Vsc2l1cyBhbmQgbXVzdCBiZSByZWFzb25hYmxlLgorICAgIEVYUEVDVF9UUlVFKHRlbXBlcmF0dXJlLnR5cGUgPT0gVGVtcGVyYXR1cmVUeXBlOjpVTktOT1dOIHx8CisgICAgICAgICAgICAgICAgc3RkOjphYnModGVtcGVyYXR1cmUuY3VycmVudFZhbHVlKSA8IE1BWF9ERVZJQ0VfVEVNUEVSQVRVUkUgfHwKKyAgICAgICAgICAgICAgICBpc25hbih0ZW1wZXJhdHVyZS5jdXJyZW50VmFsdWUpKTsKKworICAgIC8vIC5uYW1lIG11c3Qgbm90IGJlIGVtcHR5LgorICAgIEVYUEVDVF9MVCgwdSwgdGVtcGVyYXR1cmUubmFtZS5zaXplKCkpOworCisgICAgLy8gLmN1cnJlbnRWYWx1ZSBtdXN0IG5vdCBleGNlZWQgLnNodXRkd29uVGhyZXNob2xkIGlmIGRlZmluZWQuCisgICAgRVhQRUNUX1RSVUUodGVtcGVyYXR1cmUuY3VycmVudFZhbHVlIDwgdGVtcGVyYXR1cmUuc2h1dGRvd25UaHJlc2hvbGQgfHwKKyAgICAgICAgICAgICAgICBpc25hbih0ZW1wZXJhdHVyZS5jdXJyZW50VmFsdWUpIHx8IGlzbmFuKHRlbXBlcmF0dXJlLnNodXRkb3duVGhyZXNob2xkKSk7CisKKyAgICAvLyAudGhyb3R0bGluZ1RocmVzaG9sZCBtdXN0IG5vdCBleGNlZWQgLnNodXRkb3duVGhyZXNob2xkIGlmIGRlZmluZWQuCisgICAgRVhQRUNUX1RSVUUodGVtcGVyYXR1cmUudGhyb3R0bGluZ1RocmVzaG9sZCA8IHRlbXBlcmF0dXJlLnNodXRkb3duVGhyZXNob2xkIHx8CisgICAgICAgICAgICAgICAgaXNuYW4odGVtcGVyYXR1cmUudGhyb3R0bGluZ1RocmVzaG9sZCkgfHwgaXNuYW4odGVtcGVyYXR1cmUuc2h1dGRvd25UaHJlc2hvbGQpKTsKKyAgfQorCisgIC8vIENoZWNrIHZhbGlkaXR5IG9mIENQVSB1c2FnZSByZXR1cm5lZCBieSBUaGVybWFsIEhBTC4KKyAgdm9pZCBjaGVja0NwdVVzYWdlKGNvbnN0IENwdVVzYWdlJiBjcHVVc2FnZSkgeworICAgIC8vIC5hY3RpdmUgbXVzdCBiZSBsZXNzIHRoYW4gLnRvdGFsIGlmIENQVSBpcyBvbmxpbmUuCisgICAgRVhQRUNUX1RSVUUoIWNwdVVzYWdlLmlzT25saW5lIHx8CisgICAgICAgICAgICAgICAgKGNwdVVzYWdlLmFjdGl2ZSA+PSAwICYmIGNwdVVzYWdlLnRvdGFsID49IDAgJiYKKyAgICAgICAgICAgICAgICAgY3B1VXNhZ2UudG90YWwgPj0gY3B1VXNhZ2UuYWN0aXZlKSk7CisKKyAgICAvLyAubmFtZSBtdXN0IGJlIG5vdCBlbXB0eS4KKyAgICBFWFBFQ1RfTFQoMHUsIGNwdVVzYWdlLm5hbWUuc2l6ZSgpKTsKKyAgfQorCisgIC8vIENoZWNrIHZhbGlkaXR5IG9mIGEgY29vbGluZyBkZXZpY2UgaW5mb3JtYXRpb24gcmV0dXJuZWQgYnkgVGhlcm1hbCBIQUwuCisgIHZvaWQgY2hlY2tDb29saW5nRGV2aWNlKGNvbnN0IENvb2xpbmdEZXZpY2UmIGNvb2xpbmdEZXZpY2UpIHsKKyAgICBFWFBFQ1RfTEUoMCwgY29vbGluZ0RldmljZS5jdXJyZW50VmFsdWUpOworICAgIEVYUEVDVF9HVChNQVhfRkFOX1NQRUVELCBjb29saW5nRGV2aWNlLmN1cnJlbnRWYWx1ZSk7CisgICAgRVhQRUNUX0xUKDB1LCBjb29saW5nRGV2aWNlLm5hbWUuc2l6ZSgpKTsKKyAgfQorCisgIHNpemVfdCBiYXNlU2l6ZV87CisgIHN0ZDo6dmVjdG9yPGhpZGxfc3RyaW5nPiBuYW1lc187Cit9OworCisvLyBTYW5pdHkgdGVzdCBmb3IgVGhlcm1hbDo6Z2V0VGVtcGVyYXR1cmVzKCkuCitURVNUX0YoVGhlcm1hbEhpZGxUZXN0LCBUZW1wZXJhdHVyZVRlc3QpIHsKKyAgaGlkbF92ZWM8VGVtcGVyYXR1cmU+IHBhc3NlZDsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBNT05JVE9SSU5HX09QRVJBVElPTl9OVU1CRVI7ICsraSkgeworICAgIHRoZXJtYWxfLT5nZXRUZW1wZXJhdHVyZXMoCisgICAgICAgIFsmcGFzc2VkXShUaGVybWFsU3RhdHVzIHN0YXR1cywgaGlkbF92ZWM8VGVtcGVyYXR1cmU+IHRlbXBlcmF0dXJlcykgeworICAgICAgICAgIEVYUEVDVF9FUShUaGVybWFsU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOworICAgICAgICAgIHBhc3NlZCA9IHRlbXBlcmF0dXJlczsKKyAgICAgICAgfSk7CisKKyAgICBjaGVja1RlbXBlcmF0dXJlcyhwYXNzZWQpOworICAgIHNsZWVwKDEpOworICB9Cit9CisKKy8vIFNhbml0eSB0ZXN0IGZvciBUaGVybWFsOjpnZXRDcHVVc2FnZXMoKS4KK1RFU1RfRihUaGVybWFsSGlkbFRlc3QsIENwdVVzYWdlVGVzdCkgeworICBoaWRsX3ZlYzxDcHVVc2FnZT4gcGFzc2VkOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE1PTklUT1JJTkdfT1BFUkFUSU9OX05VTUJFUjsgKytpKSB7CisgICAgdGhlcm1hbF8tPmdldENwdVVzYWdlcygKKyAgICAgICAgWyZwYXNzZWRdKFRoZXJtYWxTdGF0dXMgc3RhdHVzLCBoaWRsX3ZlYzxDcHVVc2FnZT4gY3B1VXNhZ2VzKSB7CisgICAgICAgICAgRVhQRUNUX0VRKFRoZXJtYWxTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CisgICAgICAgICAgcGFzc2VkID0gY3B1VXNhZ2VzOworICAgICAgICB9KTsKKworICAgIGNoZWNrQ3B1VXNhZ2VzKHBhc3NlZCk7CisgICAgc2xlZXAoMSk7CisgIH0KK30KKworLy8gU2FuaXR5IHRlc3QgZm9yIFRoZXJtYWw6OmdldENvb2xpbmdEZXZpY2VzKCkuCitURVNUX0YoVGhlcm1hbEhpZGxUZXN0LCBDb29saW5nRGV2aWNlVGVzdCkgeworICBoaWRsX3ZlYzxDb29saW5nRGV2aWNlPiBwYXNzZWQ7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTU9OSVRPUklOR19PUEVSQVRJT05fTlVNQkVSOyArK2kpIHsKKyAgICB0aGVybWFsXy0+Z2V0Q29vbGluZ0RldmljZXMoWyZwYXNzZWRdKAorICAgICAgICBUaGVybWFsU3RhdHVzIHN0YXR1cywgaGlkbF92ZWM8Q29vbGluZ0RldmljZT4gY29vbGluZ0RldmljZXMpIHsKKyAgICAgIEVYUEVDVF9FUShUaGVybWFsU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOworICAgICAgcGFzc2VkID0gY29vbGluZ0RldmljZXM7CisgICAgfSk7CisKKyAgICBjaGVja0Nvb2xpbmdEZXZpY2VzKHBhc3NlZCk7CisgICAgc2xlZXAoMSk7CisgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS90aGVybWFsL0FuZHJvaWQuYnAgYi90aGVybWFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxOWEzNwotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3R2L0FuZHJvaWQuYnAgYi90di9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjNTQ5MTAKLS0tIC9kZXYvbnVsbAorKysgYi90di9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNiBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiY2VjLzEuMCIsCisgICAgImlucHV0LzEuMCIsCisgICAgImlucHV0LzEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS90di9jZWMvMS4wL0FuZHJvaWQuYnAgYi90di9jZWMvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYzZmZlMgotLS0gL2Rldi9udWxsCisrKyBiL3R2L2NlYy8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDcwIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJSGRtaUNlYy5oYWwiLAorICAgICAgICAiSUhkbWlDZWNDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvSGRtaUNlY0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0hkbWlDZWNDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9JSGRtaUNlYy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9JSHdIZG1pQ2VjLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0JuSHdIZG1pQ2VjLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0JwSHdIZG1pQ2VjLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0JzSGRtaUNlYy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9JSGRtaUNlY0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0lId0hkbWlDZWNDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9Cbkh3SGRtaUNlY0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0JwSHdIZG1pQ2VjQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvQnNIZG1pQ2VjQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvQW5kcm9pZC5tayBiL3R2L2NlYy8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTM4NTNkCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNTgyIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlYy1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEFib3J0UmVhc29uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9BYm9ydFJlYXNvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQWJvcnRSZWFzb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENlY0RldmljZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0NlY0RldmljZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkNlY0RldmljZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENlY0xvZ2ljYWxBZGRyZXNzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9DZWNMb2dpY2FsQWRkcmVzcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQ2VjTG9naWNhbEFkZHJlc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENlY01lc3NhZ2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0NlY01lc3NhZ2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkNlY01lc3NhZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENlY01lc3NhZ2VUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9DZWNNZXNzYWdlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQ2VjTWVzc2FnZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhkbWlQb3J0SW5mbykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvSGRtaVBvcnRJbmZvLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5IZG1pUG9ydEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhkbWlQb3J0VHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvSGRtaVBvcnRUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5IZG1pUG9ydFR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhvdHBsdWdFdmVudCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvSG90cGx1Z0V2ZW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5Ib3RwbHVnRXZlbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1heExlbmd0aCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvTWF4TGVuZ3RoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5NYXhMZW5ndGgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE9wdGlvbktleSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvT3B0aW9uS2V5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5PcHRpb25LZXkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5SZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFNlbmRNZXNzYWdlUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9TZW5kTWVzc2FnZVJlc3VsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuU2VuZE1lc3NhZ2VSZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJSGRtaUNlYy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvSUhkbWlDZWMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JSGRtaUNlY0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OklIZG1pQ2VjCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGRtaUNlYy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUhkbWlDZWNDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvSUhkbWlDZWNDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWNDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6SUhkbWlDZWNDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWNDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQWJvcnRSZWFzb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0Fib3J0UmVhc29uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5BYm9ydFJlYXNvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjRGV2aWNlVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQ2VjRGV2aWNlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQ2VjRGV2aWNlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjTG9naWNhbEFkZHJlc3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0NlY0xvZ2ljYWxBZGRyZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5DZWNMb2dpY2FsQWRkcmVzcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjTWVzc2FnZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQ2VjTWVzc2FnZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQ2VjTWVzc2FnZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjTWVzc2FnZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0NlY01lc3NhZ2VUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5DZWNNZXNzYWdlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGRtaVBvcnRJbmZvKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9IZG1pUG9ydEluZm8uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkhkbWlQb3J0SW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGRtaVBvcnRUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9IZG1pUG9ydFR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkhkbWlQb3J0VHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSG90cGx1Z0V2ZW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9Ib3RwbHVnRXZlbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkhvdHBsdWdFdmVudAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWF4TGVuZ3RoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9NYXhMZW5ndGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLk1heExlbmd0aAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoT3B0aW9uS2V5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9PcHRpb25LZXkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLk9wdGlvbktleQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9SZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLlJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU2VuZE1lc3NhZ2VSZXN1bHQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL1NlbmRNZXNzYWdlUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5TZW5kTWVzc2FnZVJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElIZG1pQ2VjLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9JSGRtaUNlYy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWMuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWNDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6SUhkbWlDZWMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJSGRtaUNlY0NhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9JSGRtaUNlY0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JSGRtaUNlY0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjpJSGRtaUNlY0NhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGRtaUNlY0NhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdHYvY2VjLzEuMC9JSGRtaUNlYy5oYWwgYi90di9jZWMvMS4wL0lIZG1pQ2VjLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODQwNDE3Ci0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9JSGRtaUNlYy5oYWwKQEAgLTAsMCArMSwxNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDsKKworaW1wb3J0IElIZG1pQ2VjQ2FsbGJhY2s7CisKKy8qKgorICogSERNSS1DRUMgSEFMIGludGVyZmFjZSBkZWZpbml0aW9uLgorICovCitpbnRlcmZhY2UgSUhkbWlDZWMgeworICAgIC8qKgorICAgICAqIFBhc3NlcyB0aGUgbG9naWNhbCBhZGRyZXNzIHRoYXQgbXVzdCBiZSB1c2VkIGluIHRoaXMgc3lzdGVtLgorICAgICAqCisgICAgICogSEFMIG11c3QgdXNlIGl0IHRvIGNvbmZpZ3VyZSB0aGUgaGFyZHdhcmUgc28gdGhhdCB0aGUgQ0VDIGNvbW1hbmRzCisgICAgICogYWRkcmVzc2VkIHRoZSBnaXZlbiBsb2dpY2FsIGFkZHJlc3MgY2FuIGJlIGZpbHRlcmVkIGluLiBUaGlzIG1ldGhvZCBtdXN0CisgICAgICogYmUgYWJsZSB0byBiZSBjYWxsZWQgYXMgbWFueSB0aW1lcyBhcyBuZWNlc3NhcnkgaW4gb3JkZXIgdG8gc3VwcG9ydAorICAgICAqIG11bHRpcGxlIGxvZ2ljYWwgZGV2aWNlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhZGRyIExvZ2ljYWwgYWRkcmVzcyB0aGF0IG11c3QgYmUgdXNlZCBpbiB0aGlzIHN5c3RlbS4gSXQgbXVzdCBiZQorICAgICAqICAgICAgICBpbiB0aGUgcmFuZ2Ugb2YgdmFsaWQgbG9naWNhbCBhZGRyZXNzZXMgZm9yIHRoZSBjYWxsIHRvIHN1Y2NlZWQuCisgICAgICogQHJldHVybiByZXN1bHQgUmVzdWx0IHN0YXR1cyBvZiB0aGUgb3BlcmF0aW9uLiBTVUNDRVNTIGlmIHN1Y2Nlc3NmdWwsCisgICAgICogICAgICAgICBGQUlMVVJFX0lOVkFMSURfQVJHUyBpZiB0aGUgZ2l2ZW4gbG9naWNhbCBhZGRyZXNzIGlzIGludmFsaWQsCisgICAgICogICAgICAgICBGQUlMVVJFX0JVU1kgaWYgZGV2aWNlIG9yIHJlc291cmNlIGlzIGJ1c3kKKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBhZGRMb2dpY2FsQWRkcmVzcyhDZWNMb2dpY2FsQWRkcmVzcyBhZGRyKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogQ2xlYXJzIGFsbCB0aGUgbG9naWNhbCBhZGRyZXNzZXMuCisgICAgICoKKyAgICAgKiBJdCBpcyB1c2VkIHdoZW4gdGhlIHN5c3RlbSBkb2Vzbid0IG5lZWQgdG8gcHJvY2VzcyBDRUMgY29tbWFuZCBhbnkgbW9yZSwKKyAgICAgKiBoZW5jZSB0byB0ZWxsIEhBTCB0byBzdG9wIHJlY2VpdmluZyBjb21tYW5kcyBmcm9tIHRoZSBDRUMgYnVzLCBhbmQgY2hhbmdlCisgICAgICogdGhlIHN0YXRlIGJhY2sgdG8gdGhlIGJlZ2lubmluZy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iYWRkTG9naWNhbEFkZHJlc3MiKQorICAgIEBleGl0CisgICAgY2xlYXJMb2dpY2FsQWRkcmVzcygpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgQ0VDIHBoeXNpY2FsIGFkZHJlc3MuCisgICAgICoKKyAgICAgKiBUaGUgcGh5c2ljYWwgYWRkcmVzcyBkZXBlbmRzIG9uIHRoZSB0b3BvbG9neSBvZiB0aGUgbmV0d29yayBmb3JtZWQgYnkKKyAgICAgKiBjb25uZWN0ZWQgSERNSSBkZXZpY2VzLiBJdCBpcyB0aGVyZWZvcmUgbGlrZWx5IHRvIGNoYW5nZSBpZiB0aGUgY2FibGUgaXMKKyAgICAgKiBwbHVnZ2VkIG9mZiBhbmQgb24gYWdhaW4uIEl0IGlzIGFkdmlzZWQgdG8gY2FsbCBnZXRQaHlzaWNhbEFkZHJlc3MgdG8gZ2V0CisgICAgICogdGhlIHVwZGF0ZWQgYWRkcmVzcyB3aGVuIGhvdCBwbHVnIGV2ZW50IHRha2VzIHBsYWNlLgorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgUmVzdWx0IHN0YXR1cyBvZiB0aGUgb3BlcmF0aW9uLiBTVUNDRVNTIGlmIHN1Y2Nlc3NmdWwsCisgICAgICogICAgICAgICBGQUlMVVJFX0lOVkFMSURfU1RBVEUgaWYgSEFMIGNhbm5vdCByZXRyaWV2ZSB0aGUgcGh5c2ljYWwKKyAgICAgKiAgICAgICAgIGFkZHJlc3MuCisgICAgICogQHJldHVybiBhZGRyIFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhpcyBkZXZpY2UuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldFBoeXNpY2FsQWRkcmVzcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCwgdWludDE2X3QgYWRkcik7CisKKyAgICAvKioKKyAgICAgKiBUcmFuc21pdHMgSERNSS1DRUMgbWVzc2FnZSB0byBvdGhlciBIRE1JIGRldmljZS4KKyAgICAgKgorICAgICAqIFRoZSBtZXRob2QgbXVzdCBiZSBkZXNpZ25lZCB0byByZXR1cm4gaW4gYSBjZXJ0YWluIGFtb3VudCBvZiB0aW1lIGFuZCBub3QKKyAgICAgKiBoYW5naW5nIGZvcmV2ZXIgd2hpY2ggbWF5IGhhcHBlbiBpZiBDRUMgc2lnbmFsIGxpbmUgaXMgcHVsbGVkIGxvdyBmb3IKKyAgICAgKiBzb21lIHJlYXNvbi4KKyAgICAgKgorICAgICAqIEl0IG11c3QgdHJ5IHJldHJhbnNtaXNzaW9uIGF0IGxlYXN0IG9uY2UgYXMgc3BlY2lmaWVkIGluIHRoZSBzZWN0aW9uICc3LjEKKyAgICAgKiBGcmFtZSBSZS10cmFuc21pc3Npb25zJyBvZiB0aGUgQ0VDIFNwZWMgMS40Yi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtZXNzYWdlIENFQyBtZXNzYWdlIHRvIGJlIHNlbnQgdG8gb3RoZXIgSERNSSBkZXZpY2UuCisgICAgICogQHJldHVybiByZXN1bHQgUmVzdWx0IHN0YXR1cyBvZiB0aGUgb3BlcmF0aW9uLiBTVUNDRVNTIGlmIHN1Y2Nlc3NmdWwsCisgICAgICogICAgICAgICBOQUNLIGlmIHRoZSBzZW50IG1lc3NhZ2UgaXMgbm90IGFja25vd2xlZGdlZCwKKyAgICAgKiAgICAgICAgIEJVU1kgaWYgdGhlIENFQyBidXMgaXMgYnVzeS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2VuZE1lc3NhZ2UoQ2VjTWVzc2FnZSBtZXNzYWdlKSBnZW5lcmF0ZXMgKFNlbmRNZXNzYWdlUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGEgY2FsbGJhY2sgdGhhdCBIRE1JLUNFQyBIQUwgbXVzdCBsYXRlciB1c2UgZm9yIGluY29taW5nIENFQworICAgICAqIG1lc3NhZ2VzIG9yIGludGVybmFsIEhETUkgZXZlbnRzLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIENhbGxiYWNrIG9iamVjdCB0byBwYXNzIGhkbWkgZXZlbnRzIHRvIHRoZSBzeXN0ZW0uIFRoZQorICAgICAqICAgICAgICBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgY2FsbGJhY2sgbXVzdCBiZSByZXBsYWNlZCB3aXRoIHRoaXMgb25lLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiYWRkTG9naWNhbEFkZHJlc3MifSkKKyAgICBAZW50cnkKKyAgICBzZXRDYWxsYmFjayhJSGRtaUNlY0NhbGxiYWNrIGNhbGxiYWNrKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIENFQyB2ZXJzaW9uIHN1cHBvcnRlZCBieSB1bmRlcmx5aW5nIGhhcmR3YXJlLgorICAgICAqCisgICAgICogQHJldHVybiB2ZXJzaW9uIHRoZSBDRUMgdmVyc2lvbiBzdXBwb3J0ZWQgYnkgdW5kZXJseWluZyBoYXJkd2FyZS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBnZXRDZWNWZXJzaW9uKCkgZ2VuZXJhdGVzIChpbnQzMl90IHZlcnNpb24pOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgaWRlbnRpZmllciBvZiB0aGUgdmVuZG9yLgorICAgICAqCisgICAgICogQHJldHVybiB2ZW5kb3JJZCBJZGVudGlmaWVyIG9mIHRoZSB2ZW5kb3IgdGhhdCBpcyB0aGUgMjQtYml0IHVuaXF1ZQorICAgICAqICAgICAgICAgY29tcGFueSBJRCBvYnRhaW5lZCBmcm9tIHRoZSBJRUVFIFJlZ2lzdHJhdGlvbiBBdXRob3JpdHkKKyAgICAgKiAgICAgICAgIENvbW1pdHRlZSAoUkFDKS4gVGhlIHVwcGVyIDggYml0cyBtdXN0IGJlIDAuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgZ2V0VmVuZG9ySWQoKSBnZW5lcmF0ZXMgKHVpbnQzMl90IHZlbmRvcklkKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGhkbWkgcG9ydCBpbmZvcm1hdGlvbiBvZiB1bmRlcmx5aW5nIGhhcmR3YXJlLgorICAgICAqCisgICAgICogQHJldHVybiBpbmZvcyBUaGUgbGlzdCBvZiBIRE1JIHBvcnQgaW5mb3JtYXRpb24KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBnZXRQb3J0SW5mbygpIGdlbmVyYXRlcyAodmVjPEhkbWlQb3J0SW5mbz4gaW5mb3MpOworCisgICAgLyoqCisgICAgICogU2V0cyBmbGFncyBjb250cm9sbGluZyB0aGUgd2F5IEhETUktQ0VDIHNlcnZpY2Ugd29ya3MgZG93biB0byBIQUwKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi4gVGhvc2UgZmxhZ3MgbXVzdCBiZSB1c2VkIGluIGNhc2UgdGhlIGZlYXR1cmUgbmVlZHMgdXBkYXRlCisgICAgICogaW4gSEFMIGl0c2VsZiwgZmlybXdhcmUgb3IgbWljcm9jb250cm9sbGVyLgorICAgICAqCisgICAgICogQHBhcmFtIGtleSBUaGUga2V5IG9mIHRoZSBvcHRpb24gdG8gYmUgdXBkYXRlZCB3aXRoIGEgbmV3IHZhbHVlLgorICAgICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBiZSBzZXQuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIHNldE9wdGlvbihPcHRpb25LZXkga2V5LCBib29sIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFBhc3NlcyB0aGUgdXBkYXRlZCBsYW5ndWFnZSBpbmZvcm1hdGlvbiBvZiBBbmRyb2lkIHN5c3RlbS4gQ29udGFpbnMKKyAgICAgKiB0aHJlZS1sZXR0ZXIgY29kZSBhcyBkZWZpbmVkIGluIElTTy9GRElTIDYzOS0yLiBNdXN0IGJlIHVzZWQgZm9yIEhBTCB0bworICAgICAqIHJlc3BvbmQgdG8gPEdldCBNZW51IExhbmd1YWdlPiB3aGlsZSBpbiBzdGFuZGJ5IG1vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGFuZ3VhZ2UgVGhyZWUtbGV0dGVyIGNvZGUgZGVmaW5lZCBpbiBJU08vRkRJUyA2MzktMi4gTXVzdCBiZQorICAgICAqICAgICAgICBsb3dlcmNhc2UgbGV0dGVycy4gKGUuZy4sIGVuZyBmb3IgRW5nbGlzaCkKKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0TGFuZ3VhZ2Uoc3RyaW5nIGxhbmd1YWdlKTsKKworICAgIC8qKgorICAgICAqIENvbmZpZ3VyZXMgQVJDIGNpcmN1aXQgaW4gdGhlIGhhcmR3YXJlIGxvZ2ljIHRvIHN0YXJ0IG9yIHN0b3AgdGhlCisgICAgICogZmVhdHVyZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwb3J0SWQgUG9ydCBpZCB0byBiZSBjb25maWd1cmVkLgorICAgICAqIEBwYXJhbSBlbmFibGUgRmxhZyBtdXN0IGJlIGVpdGhlciB0cnVlIHRvIHN0YXJ0IHRoZSBmZWF0dXJlIG9yIGZhbHNlIHRvCisgICAgICogICAgICAgIHN0b3AgaXQuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGVuYWJsZUF1ZGlvUmV0dXJuQ2hhbm5lbChpbnQzMl90IHBvcnRJZCwgYm9vbCBlbmFibGUpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY29ubmVjdGlvbiBzdGF0dXMgb2YgdGhlIHNwZWNpZmllZCBwb3J0LgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJZCBQb3J0IGlkIHRvIGJlIGluc3BlY3RlZCBmb3IgdGhlIGNvbm5lY3Rpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRydWUgaWYgYSBkZXZpY2UgaXMgY29ubmVjdGVkLCBvdGhlcndpc2UgZmFsc2UuIFRoZSBIQUwKKyAgICAgKiAgICAgICAgIG11c3Qgd2F0Y2ggZm9yICs1ViBwb3dlciBzaWduYWwgdG8gZGV0ZXJtaW5lIHRoZSBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGlzQ29ubmVjdGVkKGludDMyX3QgcG9ydElkKSBnZW5lcmF0ZXMgKGJvb2wgc3RhdHVzKTsKK307CmRpZmYgLS1naXQgYS90di9jZWMvMS4wL0lIZG1pQ2VjQ2FsbGJhY2suaGFsIGIvdHYvY2VjLzEuMC9JSGRtaUNlY0NhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTRkMTlmCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9JSGRtaUNlY0NhbGxiYWNrLmhhbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA7CisKK2ludGVyZmFjZSBJSGRtaUNlY0NhbGxiYWNrIHsKKyAgICAvKioKKyAgICAgKiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBtdXN0IGJlIGNhbGxlZCBieSBIQUwgaW1wbGVtZW50YXRpb24gdG8gbm90aWZ5CisgICAgICogdGhlIHN5c3RlbSBvZiBuZXcgQ0VDIG1lc3NhZ2UgYXJyaXZhbC4KKyAgICAgKi8KKyAgICBvbmV3YXkgb25DZWNNZXNzYWdlKENlY01lc3NhZ2UgbWVzc2FnZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBtdXN0IGJlIGNhbGxlZCBieSBIQUwgaW1wbGVtZW50YXRpb24gdG8gbm90aWZ5CisgICAgICogdGhlIHN5c3RlbSBvZiBuZXcgaG90cGx1ZyBldmVudC4KKyAgICAgKi8KKyAgICBvbmV3YXkgb25Ib3RwbHVnRXZlbnQoSG90cGx1Z0V2ZW50IGV2ZW50KTsKK307CmRpZmYgLS1naXQgYS90di9jZWMvMS4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL3R2L2NlYy8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkMzczNDQKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQ0IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgSGRtaUNlYy5jcHAKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGliYmFzZSBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAgXAorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCisKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBzZXJ2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmxvZyBcCisgICAgbGliY3V0aWxzIFwKKyAgICBsaWJkbCBcCisgICAgbGliYmFzZSBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlX2xlZ2FjeSBcCisgICAgbGliaGFyZHdhcmUgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTICs9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS90di9jZWMvMS4wL2RlZmF1bHQvSGRtaUNlYy5jcHAgYi90di9jZWMvMS4wL2RlZmF1bHQvSGRtaUNlYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJlMjY4MQotLS0gL2Rldi9udWxsCisrKyBiL3R2L2NlYy8xLjAvZGVmYXVsdC9IZG1pQ2VjLmNwcApAQCAtMCwwICsxLDQxNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wLWltcGwiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvaGRtaV9jZWMuaD4KKyNpbmNsdWRlICJIZG1pQ2VjLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdHYgeworbmFtZXNwYWNlIGNlYyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGF0aWNfYXNzZXJ0KENFQ19ERVZJQ0VfSU5BQ1RJVkUgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNEZXZpY2VUeXBlOjpJTkFDVElWRSksCisgICAgICAgICJDZWNEZXZpY2VUeXBlOjpJTkFDVElWRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0RFVklDRV9UViA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0RldmljZVR5cGU6OlRWKSwKKyAgICAgICAgIkNlY0RldmljZVR5cGU6OlRWIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfREVWSUNFX1JFQ09SREVSID09IHN0YXRpY19jYXN0PGludD4oQ2VjRGV2aWNlVHlwZTo6UkVDT1JERVIpLAorICAgICAgICAiQ2VjRGV2aWNlVHlwZTo6UkVDT1JERVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19ERVZJQ0VfVFVORVIgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNEZXZpY2VUeXBlOjpUVU5FUiksCisgICAgICAgICJDZWNEZXZpY2VUeXBlOjpUVU5FUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0RFVklDRV9QTEFZQkFDSyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0RldmljZVR5cGU6OlBMQVlCQUNLKSwKKyAgICAgICAgIkNlY0RldmljZVR5cGU6OlBMQVlCQUNLIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfREVWSUNFX0FVRElPX1NZU1RFTSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0RldmljZVR5cGU6OkFVRElPX1NZU1RFTSksCisgICAgICAgICJDZWNEZXZpY2VUeXBlOjpBVURJT19TWVNURU0gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19ERVZJQ0VfTUFYID09IHN0YXRpY19jYXN0PGludD4oQ2VjRGV2aWNlVHlwZTo6TUFYKSwKKyAgICAgICAgIkNlY0RldmljZVR5cGU6Ok1BWCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3RhdGljX2Fzc2VydChDRUNfQUREUl9UViA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpUViksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6VFYgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1JFQ09SREVSXzEgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6UkVDT1JERVJfMSksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6UkVDT1JERVJfMSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfUkVDT1JERVJfMiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpSRUNPUkRFUl8yKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpSRUNPUkRFUl8yIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9UVU5FUl8xID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlRVTkVSXzEpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlRVTkVSXzEgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1BMQVlCQUNLXzEgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6UExBWUJBQ0tfMSksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6UExBWUJBQ0tfMSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfQVVESU9fU1lTVEVNID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OkFVRElPX1NZU1RFTSksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6QVVESU9fU1lTVEVNIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9UVU5FUl8yID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlRVTkVSXzIpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlRVTkVSXzIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1RVTkVSXzMgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfMyksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfMyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfUExBWUJBQ0tfMiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpQTEFZQkFDS18yKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpQTEFZQkFDS18yIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9SRUNPUkRFUl8zID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlJFQ09SREVSXzMpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlJFQ09SREVSXzMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1RVTkVSXzQgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfNCksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfNCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfUExBWUJBQ0tfMyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpQTEFZQkFDS18zKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpQTEFZQkFDS18zIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9GUkVFX1VTRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpGUkVFX1VTRSksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6RlJFRV9VU0UgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1VOUkVHSVNURVJFRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpVTlJFR0lTVEVSRUQpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlVOUkVHSVNURVJFRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfQlJPQURDQVNUID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OkJST0FEQ0FTVCksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6QlJPQURDQVNUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0ZFQVRVUkVfQUJPUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6RkVBVFVSRV9BQk9SVCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6RkVBVFVSRV9BQk9SVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfSU1BR0VfVklFV19PTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpJTUFHRV9WSUVXX09OKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpJTUFHRV9WSUVXX09OIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9UVU5FUl9TVEVQX0lOQ1JFTUVOVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VFVORVJfU1RFUF9JTkNSRU1FTlQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlRVTkVSX1NURVBfSU5DUkVNRU5UIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9UVU5FUl9TVEVQX0RFQ1JFTUVOVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VFVORVJfU1RFUF9ERUNSRU1FTlQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlRVTkVSX1NURVBfREVDUkVNRU5UIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9UVU5FUl9ERVZJQ0VfU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpUVU5FUl9ERVZJQ0VfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpUVU5FUl9ERVZJQ0VfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX1RVTkVSX0RFVklDRV9TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OkdJVkVfVFVORVJfREVWSUNFX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6R0lWRV9UVU5FUl9ERVZJQ0VfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRUNPUkRfT04gPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6UkVDT1JEX09OKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRUNPUkRfT04gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JFQ09SRF9TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6UkVDT1JEX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UkVDT1JEX1NUQVRVUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVDT1JEX09GRiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpSRUNPUkRfT0ZGKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRUNPUkRfT0ZGIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9URVhUX1ZJRVdfT04gPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6VEVYVF9WSUVXX09OKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpURVhUX1ZJRVdfT04gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JFQ09SRF9UVl9TQ1JFRU4gPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6UkVDT1JEX1RWX1NDUkVFTiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UkVDT1JEX1RWX1NDUkVFTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfR0lWRV9ERUNLX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpHSVZFX0RFQ0tfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpHSVZFX0RFQ0tfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TVEFOREJZID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlNUQU5EQlkpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlNUQU5EQlkgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1BMQVkgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6UExBWSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UExBWSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfREVDS19DT05UUk9MID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OkRFQ0tfQ09OVFJPTCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6REVDS19DT05UUk9MIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9USU1FUl9DTEVBUkVEX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VElNRVJfQ0xFQVJFRF9TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlRJTUVSX0NMRUFSRURfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9VU0VSX0NPTlRST0xfUFJFU1NFRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VVNFUl9DT05UUk9MX1BSRVNTRUQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlVTRVJfQ09OVFJPTF9QUkVTU0VEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9VU0VSX0NPTlRST0xfUkVMRUFTRUQgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlVTRVJfQ09OVFJPTF9SRUxFQVNFRCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VVNFUl9DT05UUk9MX1JFTEVBU0VEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX09TRF9OQU1FID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OkdJVkVfT1NEX05BTUUpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfT1NEX05BTUUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1NFVF9PU0RfTkFNRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpTRVRfT1NEX05BTUUpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlNFVF9PU0RfTkFNRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU1lTVEVNX0FVRElPX01PREVfUkVRVUVTVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6U1lTVEVNX0FVRElPX01PREVfUkVRVUVTVCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U1lTVEVNX0FVRElPX01PREVfUkVRVUVTVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfR0lWRV9BVURJT19TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6R0lWRV9BVURJT19TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfQVVESU9fU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TRVRfU1lTVEVNX0FVRElPX01PREUgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlNFVF9TWVNURU1fQVVESU9fTU9ERSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VUX1NZU1RFTV9BVURJT19NT0RFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVBPUlRfQVVESU9fU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpSRVBPUlRfQVVESU9fU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRVBPUlRfQVVESU9fU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX1NZU1RFTV9BVURJT19NT0RFX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6R0lWRV9TWVNURU1fQVVESU9fTU9ERV9TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfU1lTVEVNX0FVRElPX01PREVfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TWVNURU1fQVVESU9fTU9ERV9TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlNZU1RFTV9BVURJT19NT0RFX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U1lTVEVNX0FVRElPX01PREVfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9ST1VUSU5HX0NIQU5HRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpST1VUSU5HX0NIQU5HRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6Uk9VVElOR19DSEFOR0UgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JPVVRJTkdfSU5GT1JNQVRJT04gPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJPVVRJTkdfSU5GT1JNQVRJT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJPVVRJTkdfSU5GT1JNQVRJT04gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0FDVElWRV9TT1VSQ0UgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6QUNUSVZFX1NPVVJDRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6QUNUSVZFX1NPVVJDRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfR0lWRV9QSFlTSUNBTF9BRERSRVNTID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpHSVZFX1BIWVNJQ0FMX0FERFJFU1MpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfUEhZU0lDQUxfQUREUkVTUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVQT1JUX1BIWVNJQ0FMX0FERFJFU1MgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9QSFlTSUNBTF9BRERSRVNTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRVBPUlRfUEhZU0lDQUxfQUREUkVTUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVRVUVTVF9BQ1RJVkVfU09VUkNFID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpSRVFVRVNUX0FDVElWRV9TT1VSQ0UpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUVVFU1RfQUNUSVZFX1NPVVJDRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU0VUX1NUUkVBTV9QQVRIID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlNFVF9TVFJFQU1fUEFUSCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VUX1NUUkVBTV9QQVRIIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9ERVZJQ0VfVkVORE9SX0lEID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OkRFVklDRV9WRU5ET1JfSUQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkRFVklDRV9WRU5ET1JfSUQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1ZFTkRPUl9DT01NQU5EID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlZFTkRPUl9DT01NQU5EKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpWRU5ET1JfQ09NTUFORCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfVkVORE9SX1JFTU9URV9CVVRUT05fRE9XTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VkVORE9SX1JFTU9URV9CVVRUT05fRE9XTiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VkVORE9SX1JFTU9URV9CVVRUT05fRE9XTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfVkVORE9SX1JFTU9URV9CVVRUT05fVVAgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlZFTkRPUl9SRU1PVEVfQlVUVE9OX1VQKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpWRU5ET1JfUkVNT1RFX0JVVFRPTl9VUCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfR0lWRV9ERVZJQ0VfVkVORE9SX0lEID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpHSVZFX0RFVklDRV9WRU5ET1JfSUQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfREVWSUNFX1ZFTkRPUl9JRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfTUVOVV9SRVFVRVNUID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6Ok1FTlVfUkVRVUVTVCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6TUVOVV9SRVFVRVNUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9NRU5VX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpNRU5VX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6TUVOVV9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0dJVkVfREVWSUNFX1BPV0VSX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6R0lWRV9ERVZJQ0VfUE9XRVJfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpHSVZFX0RFVklDRV9QT1dFUl9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JFUE9SVF9QT1dFUl9TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9QT1dFUl9TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9QT1dFUl9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0dFVF9NRU5VX0xBTkdVQUdFID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OkdFVF9NRU5VX0xBTkdVQUdFKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpHRVRfTUVOVV9MQU5HVUFHRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU0VMRUNUX0FOQUxPR19TRVJWSUNFID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpTRUxFQ1RfQU5BTE9HX1NFUlZJQ0UpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlNFTEVDVF9BTkFMT0dfU0VSVklDRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU0VMRUNUX0RJR0lUQUxfU0VSVklDRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6U0VMRUNUX0RJR0lUQUxfU0VSVklDRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VMRUNUX0RJR0lUQUxfU0VSVklDRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU0VUX0RJR0lUQUxfVElNRVIgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6U0VUX0RJR0lUQUxfVElNRVIpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlNFVF9ESUdJVEFMX1RJTUVSIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9DTEVBUl9ESUdJVEFMX1RJTUVSID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpDTEVBUl9ESUdJVEFMX1RJTUVSKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpDTEVBUl9ESUdJVEFMX1RJTUVSIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TRVRfQVVESU9fUkFURSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpTRVRfQVVESU9fUkFURSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VUX0FVRElPX1JBVEUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0lOQUNUSVZFX1NPVVJDRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpJTkFDVElWRV9TT1VSQ0UpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OklOQUNUSVZFX1NPVVJDRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfQ0VDX1ZFUlNJT04gPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6Q0VDX1ZFUlNJT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkNFQ19WRVJTSU9OIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HRVRfQ0VDX1ZFUlNJT04gPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6R0VUX0NFQ19WRVJTSU9OKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpHRVRfQ0VDX1ZFUlNJT04gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1ZFTkRPUl9DT01NQU5EX1dJVEhfSUQgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlZFTkRPUl9DT01NQU5EX1dJVEhfSUQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlZFTkRPUl9DT01NQU5EX1dJVEhfSUQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0NMRUFSX0VYVEVSTkFMX1RJTUVSID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpDTEVBUl9FWFRFUk5BTF9USU1FUiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6Q0xFQVJfRVhURVJOQUxfVElNRVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1NFVF9FWFRFUk5BTF9USU1FUiA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6U0VUX0VYVEVSTkFMX1RJTUVSKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTRVRfRVhURVJOQUxfVElNRVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0lOSVRJQVRFX0FSQyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpJTklUSUFURV9BUkMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OklOSVRJQVRFX0FSQyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVQT1JUX0FSQ19JTklUSUFURUQgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9BUkNfSU5JVElBVEVEKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRVBPUlRfQVJDX0lOSVRJQVRFRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVQT1JUX0FSQ19URVJNSU5BVEVEID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpSRVBPUlRfQVJDX1RFUk1JTkFURUQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9BUkNfVEVSTUlOQVRFRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVRVUVTVF9BUkNfSU5JVElBVElPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6UkVRVUVTVF9BUkNfSU5JVElBVElPTiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UkVRVUVTVF9BUkNfSU5JVElBVElPTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVRVUVTVF9BUkNfVEVSTUlOQVRJT04gPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUVVFU1RfQVJDX1RFUk1JTkFUSU9OKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRVFVRVNUX0FSQ19URVJNSU5BVElPTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfVEVSTUlOQVRFX0FSQyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpURVJNSU5BVEVfQVJDKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpURVJNSU5BVEVfQVJDIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9BQk9SVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpBQk9SVCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6QUJPUlQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3N0YXRpY19hc3NlcnQoQUJPUlRfVU5SRUNPR05JWkVEX01PREUgPT0gc3RhdGljX2Nhc3Q8aW50PihBYm9ydFJlYXNvbjo6VU5SRUNPR05JWkVEX01PREUpLAorICAgICAgICAiQWJvcnRSZWFzb246OlVOUkVDT0dOSVpFRF9NT0RFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChBQk9SVF9OT1RfSU5fQ09SUkVDVF9NT0RFID09IHN0YXRpY19jYXN0PGludD4oQWJvcnRSZWFzb246Ok5PVF9JTl9DT1JSRUNUX01PREUpLAorICAgICAgICAiQWJvcnRSZWFzb246Ok5PVF9JTl9DT1JSRUNUX01PREUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEFCT1JUX0NBTk5PVF9QUk9WSURFX1NPVVJDRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KEFib3J0UmVhc29uOjpDQU5OT1RfUFJPVklERV9TT1VSQ0UpLAorICAgICAgICAiQWJvcnRSZWFzb246OkNBTk5PVF9QUk9WSURFX1NPVVJDRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQUJPUlRfSU5WQUxJRF9PUEVSQU5EID09IHN0YXRpY19jYXN0PGludD4oQWJvcnRSZWFzb246OklOVkFMSURfT1BFUkFORCksCisgICAgICAgICJBYm9ydFJlYXNvbjo6SU5WQUxJRF9PUEVSQU5EIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChBQk9SVF9SRUZVU0VEID09IHN0YXRpY19jYXN0PGludD4oQWJvcnRSZWFzb246OlJFRlVTRUQpLAorICAgICAgICAiQWJvcnRSZWFzb246OlJFRlVTRUQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEFCT1JUX1VOQUJMRV9UT19ERVRFUk1JTkUgPT0gc3RhdGljX2Nhc3Q8aW50PihBYm9ydFJlYXNvbjo6VU5BQkxFX1RPX0RFVEVSTUlORSksCisgICAgICAgICJBYm9ydFJlYXNvbjo6VU5BQkxFX1RPX0RFVEVSTUlORSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3RhdGljX2Fzc2VydChIRE1JX1JFU1VMVF9TVUNDRVNTID09IHN0YXRpY19jYXN0PGludD4oU2VuZE1lc3NhZ2VSZXN1bHQ6OlNVQ0NFU1MpLAorICAgICAgICAiU2VuZE1lc3NhZ2VSZXN1bHQ6OlNVQ0NFU1MgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEhETUlfUkVTVUxUX05BQ0sgPT0gc3RhdGljX2Nhc3Q8aW50PihTZW5kTWVzc2FnZVJlc3VsdDo6TkFDSyksCisgICAgICAgICJTZW5kTWVzc2FnZVJlc3VsdDo6TkFDSyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoSERNSV9SRVNVTFRfQlVTWSA9PSBzdGF0aWNfY2FzdDxpbnQ+KFNlbmRNZXNzYWdlUmVzdWx0OjpCVVNZKSwKKyAgICAgICAgIlNlbmRNZXNzYWdlUmVzdWx0OjpCVVNZIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChIRE1JX1JFU1VMVF9GQUlMID09IHN0YXRpY19jYXN0PGludD4oU2VuZE1lc3NhZ2VSZXN1bHQ6OkZBSUwpLAorICAgICAgICAiU2VuZE1lc3NhZ2VSZXN1bHQ6OkZBSUwgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3N0YXRpY19hc3NlcnQoSERNSV9JTlBVVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KEhkbWlQb3J0VHlwZTo6SU5QVVQpLAorICAgICAgICAiSGRtaVBvcnRUeXBlOjpJTlBVVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoSERNSV9PVVRQVVQgPT0gc3RhdGljX2Nhc3Q8aW50PihIZG1pUG9ydFR5cGU6Ok9VVFBVVCksCisgICAgICAgICJIZG1pUG9ydFR5cGU6Ok9VVFBVVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3RhdGljX2Fzc2VydChIRE1JX09QVElPTl9XQUtFVVAgPT0gc3RhdGljX2Nhc3Q8aW50PihPcHRpb25LZXk6OldBS0VVUCksCisgICAgICAgICJPcHRpb25LZXk6OldBS0VVUCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoSERNSV9PUFRJT05fRU5BQkxFX0NFQyA9PSBzdGF0aWNfY2FzdDxpbnQ+KE9wdGlvbktleTo6RU5BQkxFX0NFQyksCisgICAgICAgICJPcHRpb25LZXk6OkVOQUJMRV9DRUMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEhETUlfT1BUSU9OX1NZU1RFTV9DRUNfQ09OVFJPTCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE9wdGlvbktleTo6U1lTVEVNX0NFQ19DT05UUk9MKSwKKyAgICAgICAgIk9wdGlvbktleTo6U1lTVEVNX0NFQ19DT05UUk9MIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzcDxJSGRtaUNlY0NhbGxiYWNrPiBIZG1pQ2VjOjptQ2FsbGJhY2sgPSBudWxscHRyOworCitIZG1pQ2VjOjpIZG1pQ2VjKGhkbWlfY2VjX2RldmljZV90KiBkZXZpY2UpIDogbURldmljZShkZXZpY2UpIHsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OklIZG1pQ2VjIGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IEhkbWlDZWM6OmFkZExvZ2ljYWxBZGRyZXNzKENlY0xvZ2ljYWxBZGRyZXNzIGFkZHIpIHsKKyAgICBpbnQgcmV0ID0gbURldmljZS0+YWRkX2xvZ2ljYWxfYWRkcmVzcyhtRGV2aWNlLCBzdGF0aWNfY2FzdDxjZWNfbG9naWNhbF9hZGRyZXNzX3Q+KGFkZHIpKTsKKyAgICBzd2l0Y2ggKHJldCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpTVUNDRVNTOworICAgICAgICBjYXNlIC1FSU5WQUw6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpGQUlMVVJFX0lOVkFMSURfQVJHUzsKKyAgICAgICAgY2FzZSAtRU5PVFNVUDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OkZBSUxVUkVfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgY2FzZSAtRUJVU1k6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpGQUlMVVJFX0JVU1k7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpGQUlMVVJFX1VOS05PV047CisgICAgfQorfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6Y2xlYXJMb2dpY2FsQWRkcmVzcygpIHsKKyAgICBtRGV2aWNlLT5jbGVhcl9sb2dpY2FsX2FkZHJlc3MobURldmljZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEhkbWlDZWM6OmdldFBoeXNpY2FsQWRkcmVzcyhnZXRQaHlzaWNhbEFkZHJlc3NfY2IgX2hpZGxfY2IpIHsKKyAgICB1aW50MTZfdCBhZGRyOworICAgIGludCByZXQgPSBtRGV2aWNlLT5nZXRfcGh5c2ljYWxfYWRkcmVzcyhtRGV2aWNlLCAmYWRkcik7CisgICAgc3dpdGNoIChyZXQpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgX2hpZGxfY2IoUmVzdWx0OjpTVUNDRVNTLCBhZGRyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIC1FQkFERjoKKyAgICAgICAgICAgIF9oaWRsX2NiKFJlc3VsdDo6RkFJTFVSRV9JTlZBTElEX1NUQVRFLCBhZGRyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgX2hpZGxfY2IoUmVzdWx0OjpGQUlMVVJFX1VOS05PV04sIGFkZHIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxTZW5kTWVzc2FnZVJlc3VsdD4gSGRtaUNlYzo6c2VuZE1lc3NhZ2UoY29uc3QgQ2VjTWVzc2FnZSYgbWVzc2FnZSkgeworICAgIGNlY19tZXNzYWdlX3QgbGVnYWN5TWVzc2FnZSB7CisgICAgICAgIC5pbml0aWF0b3IgPSBzdGF0aWNfY2FzdDxjZWNfbG9naWNhbF9hZGRyZXNzX3Q+KG1lc3NhZ2UuaW5pdGlhdG9yKSwKKyAgICAgICAgLmRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8Y2VjX2xvZ2ljYWxfYWRkcmVzc190PihtZXNzYWdlLmRlc3RpbmF0aW9uKSwKKyAgICAgICAgLmxlbmd0aCA9IG1lc3NhZ2UuYm9keS5zaXplKCksCisgICAgfTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lc3NhZ2UuYm9keS5zaXplKCk7ICsraSkgeworICAgICAgICBsZWdhY3lNZXNzYWdlLmJvZHlbaV0gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihtZXNzYWdlLmJvZHlbaV0pOworICAgIH0KKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2VuZE1lc3NhZ2VSZXN1bHQ+KG1EZXZpY2UtPnNlbmRfbWVzc2FnZShtRGV2aWNlLCAmbGVnYWN5TWVzc2FnZSkpOworfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SUhkbWlDZWNDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisgICAgbUNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgbURldmljZS0+cmVnaXN0ZXJfZXZlbnRfY2FsbGJhY2sobURldmljZSwgZXZlbnRDYWxsYmFjaywgbnVsbHB0cik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGludDMyX3Q+IEhkbWlDZWM6OmdldENlY1ZlcnNpb24oKSB7CisgICAgaW50IHZlcnNpb247CisgICAgbURldmljZS0+Z2V0X3ZlcnNpb24obURldmljZSwgJnZlcnNpb24pOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90Pih2ZXJzaW9uKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBIZG1pQ2VjOjpnZXRWZW5kb3JJZCgpIHsKKyAgICB1aW50MzJfdCB2ZW5kb3JfaWQ7CisgICAgbURldmljZS0+Z2V0X3ZlbmRvcl9pZChtRGV2aWNlLCAmdmVuZG9yX2lkKTsKKyAgICByZXR1cm4gdmVuZG9yX2lkOworfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6Z2V0UG9ydEluZm8oZ2V0UG9ydEluZm9fY2IgX2hpZGxfY2IpIHsKKyAgICBzdHJ1Y3QgaGRtaV9wb3J0X2luZm8qIGxlZ2FjeVBvcnRzOworICAgIGludCBudW1Qb3J0czsKKyAgICBoaWRsX3ZlYzxIZG1pUG9ydEluZm8+IHBvcnRJbmZvczsKKyAgICBtRGV2aWNlLT5nZXRfcG9ydF9pbmZvKG1EZXZpY2UsICZsZWdhY3lQb3J0cywgJm51bVBvcnRzKTsKKyAgICBwb3J0SW5mb3MucmVzaXplKG51bVBvcnRzKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBvcnRzOyArK2kpIHsKKyAgICAgICAgcG9ydEluZm9zW2ldID0geworICAgICAgICAgICAgLnR5cGUgPSBzdGF0aWNfY2FzdDxIZG1pUG9ydFR5cGU+KGxlZ2FjeVBvcnRzW2ldLnR5cGUpLAorICAgICAgICAgICAgLnBvcnRJZCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihsZWdhY3lQb3J0c1tpXS5wb3J0X2lkKSwKKyAgICAgICAgICAgIC5jZWNTdXBwb3J0ZWQgPSBsZWdhY3lQb3J0c1tpXS5jZWNfc3VwcG9ydGVkICE9IDAsCisgICAgICAgICAgICAuYXJjU3VwcG9ydGVkID0gbGVnYWN5UG9ydHNbaV0uYXJjX3N1cHBvcnRlZCAhPSAwLAorICAgICAgICAgICAgLnBoeXNpY2FsQWRkcmVzcyA9IGxlZ2FjeVBvcnRzW2ldLnBoeXNpY2FsX2FkZHJlc3MKKyAgICAgICAgfTsKKyAgICB9CisgICAgX2hpZGxfY2IocG9ydEluZm9zKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6c2V0T3B0aW9uKE9wdGlvbktleSBrZXksIGJvb2wgdmFsdWUpIHsKKyAgICBtRGV2aWNlLT5zZXRfb3B0aW9uKG1EZXZpY2UsIHN0YXRpY19jYXN0PGludD4oa2V5KSwgdmFsdWUgPyAxIDogMCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEhkbWlDZWM6OnNldExhbmd1YWdlKGNvbnN0IGhpZGxfc3RyaW5nJiBsYW5ndWFnZSkgeworICAgIGlmIChsYW5ndWFnZS5zaXplKCkgIT0gMykgeworICAgICAgICBMT0coRVJST1IpIDw8ICJXcm9uZyBsYW5ndWFnZSBjb2RlOiBleHBlY3RlZCAzIGxldHRlcnMsIGJ1dCBpdCB3YXMgIiA8PCBsYW5ndWFnZS5zaXplKCkKKyAgICAgICAgICAgICAgICA8PCAiLiI7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIGNvbnN0IGNoYXIgKmxhbmd1YWdlU3RyID0gbGFuZ3VhZ2UuY19zdHIoKTsKKyAgICBpbnQgY29udmVydGVkTGFuZ3VhZ2UgPSAoKGxhbmd1YWdlU3RyWzBdICYgMHhGRikgPDwgMTYpCisgICAgICAgICAgICB8ICgobGFuZ3VhZ2VTdHJbMV0gJiAweEZGKSA8PCA4KQorICAgICAgICAgICAgfCAobGFuZ3VhZ2VTdHJbMl0gJiAweEZGKTsKKyAgICBtRGV2aWNlLT5zZXRfb3B0aW9uKG1EZXZpY2UsIEhETUlfT1BUSU9OX1NFVF9MQU5HLCBjb252ZXJ0ZWRMYW5ndWFnZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEhkbWlDZWM6OmVuYWJsZUF1ZGlvUmV0dXJuQ2hhbm5lbChpbnQzMl90IHBvcnRJZCwgYm9vbCBlbmFibGUpIHsKKyAgICBtRGV2aWNlLT5zZXRfYXVkaW9fcmV0dXJuX2NoYW5uZWwobURldmljZSwgcG9ydElkLCBlbmFibGUgPyAxIDogMCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IEhkbWlDZWM6OmlzQ29ubmVjdGVkKGludDMyX3QgcG9ydElkKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmlzX2Nvbm5lY3RlZChtRGV2aWNlLCBwb3J0SWQpID4gMDsKK30KKworCitJSGRtaUNlYyogSElETF9GRVRDSF9JSGRtaUNlYyhjb25zdCBjaGFyKiBoYWwpIHsKKyAgICBoZG1pX2NlY19kZXZpY2VfdCogaGRtaV9jZWNfZGV2aWNlOworICAgIGludCByZXQgPSAwOworICAgIGNvbnN0IGh3X21vZHVsZV90KiBod19tb2R1bGUgPSBudWxscHRyOworCisgICAgcmV0ID0gaHdfZ2V0X21vZHVsZSAoSERNSV9DRUNfSEFSRFdBUkVfTU9EVUxFX0lELCAmaHdfbW9kdWxlKTsKKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgcmV0ID0gaGRtaV9jZWNfb3BlbiAoaHdfbW9kdWxlLCAmaGRtaV9jZWNfZGV2aWNlKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBMT0coRVJST1IpIDw8ICJoZG1pX2NlY19vcGVuICIgPDwgaGFsIDw8ICIgZmFpbGVkOiAiIDw8IHJldDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIExPRyhFUlJPUikgPDwgImh3X2dldF9tb2R1bGUgIiA8PCBoYWwgPDwgIiBmYWlsZWQ6ICIgPDwgcmV0OworICAgIH0KKworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IEhkbWlDZWMoaGRtaV9jZWNfZGV2aWNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBMT0coRVJST1IpIDw8ICJQYXNzdGhyb3VnaCBmYWlsZWQgdG8gbG9hZCBsZWdhY3kgSEFMLiI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGNlYworfSAgLy8gbmFtZXNwYWNlIHR2Cit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS90di9jZWMvMS4wL2RlZmF1bHQvSGRtaUNlYy5oIGIvdHYvY2VjLzEuMC9kZWZhdWx0L0hkbWlDZWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGEzYmIwCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9kZWZhdWx0L0hkbWlDZWMuaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9UVl9DRUNfVjFfMF9IRE1JQ0VDX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9UVl9DRUNfVjFfMF9IRE1JQ0VDX0gKKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9JSGRtaUNlYy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9oZG1pX2NlYy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdHYgeworbmFtZXNwYWNlIGNlYyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpDZWNMb2dpY2FsQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OkNlY01lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpNYXhMZW5ndGg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpIZG1pUG9ydEluZm87Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpJSGRtaUNlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OklIZG1pQ2VjQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpPcHRpb25LZXk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpTZW5kTWVzc2FnZVJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEhkbWlDZWMgOiBwdWJsaWMgSUhkbWlDZWMgeworICAgIEhkbWlDZWMoaGRtaV9jZWNfZGV2aWNlX3QqIGRldmljZSk7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OklIZG1pQ2VjIGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBhZGRMb2dpY2FsQWRkcmVzcyhDZWNMb2dpY2FsQWRkcmVzcyBhZGRyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsZWFyTG9naWNhbEFkZHJlc3MoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBoeXNpY2FsQWRkcmVzcyhnZXRQaHlzaWNhbEFkZHJlc3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48U2VuZE1lc3NhZ2VSZXN1bHQ+IHNlbmRNZXNzYWdlKGNvbnN0IENlY01lc3NhZ2UmIG1lc3NhZ2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0Q2FsbGJhY2soY29uc3Qgc3A8SUhkbWlDZWNDYWxsYmFjaz4mIGNhbGxiYWNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGludDMyX3Q+IGdldENlY1ZlcnNpb24oKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQzMl90PiBnZXRWZW5kb3JJZCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UG9ydEluZm8oZ2V0UG9ydEluZm9fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0T3B0aW9uKE9wdGlvbktleSBrZXksIGJvb2wgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0TGFuZ3VhZ2UoY29uc3QgaGlkbF9zdHJpbmcmIGxhbmd1YWdlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGVuYWJsZUF1ZGlvUmV0dXJuQ2hhbm5lbChpbnQzMl90IHBvcnRJZCwgYm9vbCBlbmFibGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gaXNDb25uZWN0ZWQoaW50MzJfdCBwb3J0SWQpICBvdmVycmlkZTsKKworICAgIHN0YXRpYyB2b2lkIGV2ZW50Q2FsbGJhY2soY29uc3QgaGRtaV9ldmVudF90KiBldmVudCwgdm9pZCogLyogYXJnICovKSB7CisgICAgICAgIGlmIChtQ2FsbGJhY2sgIT0gbnVsbHB0ciAmJiBldmVudCAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBpZiAoZXZlbnQtPnR5cGUgPT0gSERNSV9FVkVOVF9DRUNfTUVTU0FHRSkgeworICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGggPSBzdGQ6Om1pbihldmVudC0+Y2VjLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oTWF4TGVuZ3RoOjpNRVNTQUdFX0JPRFkpKTsKKyAgICAgICAgICAgICAgICBDZWNNZXNzYWdlIGNlY01lc3NhZ2UgeworICAgICAgICAgICAgICAgICAgICAuaW5pdGlhdG9yID0gc3RhdGljX2Nhc3Q8Q2VjTG9naWNhbEFkZHJlc3M+KGV2ZW50LT5jZWMuaW5pdGlhdG9yKSwKKyAgICAgICAgICAgICAgICAgICAgLmRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8Q2VjTG9naWNhbEFkZHJlc3M+KGV2ZW50LT5jZWMuZGVzdGluYXRpb24pLAorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgY2VjTWVzc2FnZS5ib2R5LnJlc2l6ZShsZW5ndGgpOworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgY2VjTWVzc2FnZS5ib2R5W2ldID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oZXZlbnQtPmNlYy5ib2R5W2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbUNhbGxiYWNrLT5vbkNlY01lc3NhZ2UoY2VjTWVzc2FnZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlID09IEhETUlfRVZFTlRfSE9UX1BMVUcpIHsKKyAgICAgICAgICAgICAgICBIb3RwbHVnRXZlbnQgaG90cGx1Z0V2ZW50IHsKKyAgICAgICAgICAgICAgICAgICAgLmNvbm5lY3RlZCA9IGV2ZW50LT5ob3RwbHVnLmNvbm5lY3RlZCA+IDAsCisgICAgICAgICAgICAgICAgICAgIC5wb3J0SWQgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZXZlbnQtPmhvdHBsdWcucG9ydF9pZCkKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIG1DYWxsYmFjay0+b25Ib3RwbHVnRXZlbnQoaG90cGx1Z0V2ZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgc3A8SUhkbWlDZWNDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgIGNvbnN0IGhkbWlfY2VjX2RldmljZV90KiBtRGV2aWNlOworfTsKKworZXh0ZXJuICJDIiBJSGRtaUNlYyogSElETF9GRVRDSF9JSGRtaUNlYyhjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGNlYworfSAgLy8gbmFtZXNwYWNlIHR2Cit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9UVl9DRUNfVjFfMF9IRE1JQ0VDX0gKZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtc2VydmljZS5yYyBiL3R2L2NlYy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzgwMDk0Ci0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBjZWMtaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS90di9jZWMvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi90di9jZWMvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRiMWY2MgotLS0gL2Rldi9udWxsCisrKyBiL3R2L2NlYy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9JSGRtaUNlYy5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmNlYzo6VjFfMDo6SUhkbWlDZWM7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElIZG1pQ2VjPigpOworfQpkaWZmIC0tZ2l0IGEvdHYvY2VjLzEuMC90eXBlcy5oYWwgYi90di9jZWMvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTg1M2EzCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDsKKworZW51bSBNYXhMZW5ndGggOiBpbnQzMl90IHsKKyAgICBNRVNTQUdFX0JPRFkgPSAxNSwKK307CisKK2VudW0gQ2VjRGV2aWNlVHlwZSA6IGludDMyX3QgeworICAgIElOQUNUSVZFID0gLTEsCisgICAgVFYgPSAwLAorICAgIFJFQ09SREVSID0gMSwKKyAgICBUVU5FUiA9IDMsCisgICAgUExBWUJBQ0sgPSA0LAorICAgIEFVRElPX1NZU1RFTSA9IDUsCisgICAgTUFYID0gQVVESU9fU1lTVEVNLAorfTsKKworZW51bSBDZWNMb2dpY2FsQWRkcmVzcyA6IGludDMyX3QgeworICAgIFRWID0gMCwKKyAgICBSRUNPUkRFUl8xID0gMSwKKyAgICBSRUNPUkRFUl8yID0gMiwKKyAgICBUVU5FUl8xID0gMywKKyAgICBQTEFZQkFDS18xID0gNCwKKyAgICBBVURJT19TWVNURU0gPSA1LAorICAgIFRVTkVSXzIgPSA2LAorICAgIFRVTkVSXzMgPSA3LAorICAgIFBMQVlCQUNLXzIgPSA4LAorICAgIFJFQ09SREVSXzMgPSA5LAorICAgIFRVTkVSXzQgPSAxMCwKKyAgICBQTEFZQkFDS18zID0gMTEsCisgICAgRlJFRV9VU0UgPSAxNCwKKyAgICBVTlJFR0lTVEVSRUQgPSAxNSwgLy8gYXMgSW5pdGlhdG9yIGFkZHJlc3MKKyAgICBCUk9BRENBU1QgPSAxNSwgLy8gYXMgRGVzdGluYXRpb24gYWRkcmVzcworfTsKKworLyoqCisgKiBIRE1JIENFQyBtZXNzYWdlIHR5cGVzLiBUaGUgYXNzaWduZWQgdmFsdWVzIHJlcHJlc2VudCBvcGNvZGUgdXNlZCBpbiBDRUMKKyAqIGZyYW1lIGFzIHNwZWNpZmllZCBpbiBDRUMgVGFibGUgOC0yNiBvZiB0aGUgQ0VDIFNwZWMgMS40Yi4KKyAqLworZW51bSBDZWNNZXNzYWdlVHlwZSA6IGludDMyX3QgeworICAgIEZFQVRVUkVfQUJPUlQgPSAweDAwLAorICAgIElNQUdFX1ZJRVdfT04gPSAweDA0LAorICAgIFRVTkVSX1NURVBfSU5DUkVNRU5UID0gMHgwNSwKKyAgICBUVU5FUl9TVEVQX0RFQ1JFTUVOVCA9IDB4MDYsCisgICAgVFVORVJfREVWSUNFX1NUQVRVUyA9IDB4MDcsCisgICAgR0lWRV9UVU5FUl9ERVZJQ0VfU1RBVFVTID0gMHgwOCwKKyAgICBSRUNPUkRfT04gPSAweDA5LAorICAgIFJFQ09SRF9TVEFUVVMgPSAweDBBLAorICAgIFJFQ09SRF9PRkYgPSAweDBCLAorICAgIFRFWFRfVklFV19PTiA9IDB4MEQsCisgICAgUkVDT1JEX1RWX1NDUkVFTiA9IDB4MEYsCisgICAgR0lWRV9ERUNLX1NUQVRVUyA9IDB4MUEsCisgICAgREVDS19TVEFUVVMgPSAweDFCLAorICAgIFNFVF9NRU5VX0xBTkdVQUdFID0gMHgzMiwKKyAgICBDTEVBUl9BTkFMT0dfVElNRVIgPSAweDMzLAorICAgIFNFVF9BTkFMT0dfVElNRVIgPSAweDM0LAorICAgIFRJTUVSX1NUQVRVUyA9IDB4MzUsCisgICAgU1RBTkRCWSA9IDB4MzYsCisgICAgUExBWSA9IDB4NDEsCisgICAgREVDS19DT05UUk9MID0gMHg0MiwKKyAgICBUSU1FUl9DTEVBUkVEX1NUQVRVUyA9IDB4NDMsCisgICAgVVNFUl9DT05UUk9MX1BSRVNTRUQgPSAweDQ0LAorICAgIFVTRVJfQ09OVFJPTF9SRUxFQVNFRCA9IDB4NDUsCisgICAgR0lWRV9PU0RfTkFNRSA9IDB4NDYsCisgICAgU0VUX09TRF9OQU1FID0gMHg0NywKKyAgICBTRVRfT1NEX1NUUklORyA9IDB4NjQsCisgICAgU0VUX1RJTUVSX1BST0dSQU1fVElUTEUgPSAweDY3LAorICAgIFNZU1RFTV9BVURJT19NT0RFX1JFUVVFU1QgPSAweDcwLAorICAgIEdJVkVfQVVESU9fU1RBVFVTID0gMHg3MSwKKyAgICBTRVRfU1lTVEVNX0FVRElPX01PREUgPSAweDcyLAorICAgIFJFUE9SVF9BVURJT19TVEFUVVMgPSAweDdBLAorICAgIEdJVkVfU1lTVEVNX0FVRElPX01PREVfU1RBVFVTID0gMHg3RCwKKyAgICBTWVNURU1fQVVESU9fTU9ERV9TVEFUVVMgPSAweDdFLAorICAgIFJPVVRJTkdfQ0hBTkdFID0gMHg4MCwKKyAgICBST1VUSU5HX0lORk9STUFUSU9OID0gMHg4MSwKKyAgICBBQ1RJVkVfU09VUkNFID0gMHg4MiwKKyAgICBHSVZFX1BIWVNJQ0FMX0FERFJFU1MgPSAweDgzLAorICAgIFJFUE9SVF9QSFlTSUNBTF9BRERSRVNTID0gMHg4NCwKKyAgICBSRVFVRVNUX0FDVElWRV9TT1VSQ0UgPSAweDg1LAorICAgIFNFVF9TVFJFQU1fUEFUSCA9IDB4ODYsCisgICAgREVWSUNFX1ZFTkRPUl9JRCA9IDB4ODcsCisgICAgVkVORE9SX0NPTU1BTkQgPSAweDg5LAorICAgIFZFTkRPUl9SRU1PVEVfQlVUVE9OX0RPV04gPSAweDhBLAorICAgIFZFTkRPUl9SRU1PVEVfQlVUVE9OX1VQID0gMHg4QiwKKyAgICBHSVZFX0RFVklDRV9WRU5ET1JfSUQgPSAweDhDLAorICAgIE1FTlVfUkVRVUVTVCA9IDB4OEQsCisgICAgTUVOVV9TVEFUVVMgPSAweDhFLAorICAgIEdJVkVfREVWSUNFX1BPV0VSX1NUQVRVUyA9IDB4OEYsCisgICAgUkVQT1JUX1BPV0VSX1NUQVRVUyA9IDB4OTAsCisgICAgR0VUX01FTlVfTEFOR1VBR0UgPSAweDkxLAorICAgIFNFTEVDVF9BTkFMT0dfU0VSVklDRSA9IDB4OTIsCisgICAgU0VMRUNUX0RJR0lUQUxfU0VSVklDRSA9IDB4OTMsCisgICAgU0VUX0RJR0lUQUxfVElNRVIgPSAweDk3LAorICAgIENMRUFSX0RJR0lUQUxfVElNRVIgPSAweDk5LAorICAgIFNFVF9BVURJT19SQVRFID0gMHg5QSwKKyAgICBJTkFDVElWRV9TT1VSQ0UgPSAweDlELAorICAgIENFQ19WRVJTSU9OID0gMHg5RSwKKyAgICBHRVRfQ0VDX1ZFUlNJT04gPSAweDlGLAorICAgIFZFTkRPUl9DT01NQU5EX1dJVEhfSUQgPSAweEEwLAorICAgIENMRUFSX0VYVEVSTkFMX1RJTUVSID0gMHhBMSwKKyAgICBTRVRfRVhURVJOQUxfVElNRVIgPSAweEEyLAorICAgIElOSVRJQVRFX0FSQyA9IDB4QzAsCisgICAgUkVQT1JUX0FSQ19JTklUSUFURUQgPSAweEMxLAorICAgIFJFUE9SVF9BUkNfVEVSTUlOQVRFRCA9IDB4QzIsCisgICAgUkVRVUVTVF9BUkNfSU5JVElBVElPTiA9IDB4QzMsCisgICAgUkVRVUVTVF9BUkNfVEVSTUlOQVRJT04gPSAweEM0LAorICAgIFRFUk1JTkFURV9BUkMgPSAweEM1LAorICAgIEFCT1JUID0gMHhGRiwKK307CisKKy8qKgorICogT3BlcmFuZCBkZXNjcmlwdGlvbiBbQWJvcnQgUmVhc29uXQorICovCitlbnVtIEFib3J0UmVhc29uIDogaW50MzJfdCB7CisgICAgVU5SRUNPR05JWkVEX01PREUgPSAwLAorICAgIE5PVF9JTl9DT1JSRUNUX01PREUgPSAxLAorICAgIENBTk5PVF9QUk9WSURFX1NPVVJDRSA9IDIsCisgICAgSU5WQUxJRF9PUEVSQU5EID0gMywKKyAgICBSRUZVU0VEID0gNCwKKyAgICBVTkFCTEVfVE9fREVURVJNSU5FID0gNSwKK307CisKK2VudW0gUmVzdWx0IDogaW50MzJfdCB7CisgICAgU1VDQ0VTUyA9IDAsCisgICAgRkFJTFVSRV9VTktOT1dOID0gMSwKKyAgICBGQUlMVVJFX0lOVkFMSURfQVJHUyA9IDIsCisgICAgRkFJTFVSRV9JTlZBTElEX1NUQVRFID0gMywKKyAgICBGQUlMVVJFX05PVF9TVVBQT1JURUQgPSA0LAorICAgIEZBSUxVUkVfQlVTWSA9IDUsCit9OworCisvKioKKyAqIGVycm9yIGNvZGUgdXNlZCBmb3Igc2VuZF9tZXNzYWdlLgorICovCitlbnVtIFNlbmRNZXNzYWdlUmVzdWx0IDogaW50MzJfdCB7CisgICAgU1VDQ0VTUyA9IDAsCisgICAgTkFDSyA9IDEsIC8vIG5vdCBhY2tub3dsZWRnZWQKKyAgICBCVVNZID0gMiwgLy8gYnVzIGlzIGJ1c3kKKyAgICBGQUlMID0gMywKK307CisKKy8qKgorICogSERNSSBwb3J0IHR5cGUuCisgKi8KK2VudW0gSGRtaVBvcnRUeXBlIDogaW50MzJfdCB7CisgICAgSU5QVVQgPSAwLAorICAgIE9VVFBVVCA9IDEsCit9OworCisvKioKKyAqIE9wdGlvbnMgdXNlZCBmb3IgSUhkbWlDZWMuc2V0T3B0aW9uKCkKKyAqLworZW51bSBPcHRpb25LZXkgOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBXaGVuIHNldCB0byBmYWxzZSwgSEFMIGRvZXMgbm90IHdha2UgdXAgdGhlIHN5c3RlbSB1cG9uIHJlY2VpdmluZyA8SW1hZ2UKKyAgICAgKiBWaWV3IE9uPiBvciA8VGV4dCBWaWV3IE9uPi4gVXNlZCB3aGVuIHVzZXIgY2hhbmdlcyB0aGUgVFYgc2V0dGluZ3MgdG8KKyAgICAgKiBkaXNhYmxlIHRoZSBhdXRvIFRWIG9uIGZ1bmN0aW9uYWxpdHkuCisgICAgICogVHJ1ZSBieSBkZWZhdWx0LgorICAgICAqLworICAgIFdBS0VVUCA9IDEsCisKKyAgICAvKioKKyAgICAgKiBXaGVuIHNldCB0byBmYWxzZSwgYWxsIHRoZSBDRUMgY29tbWFuZHMgYXJlIGRpc2NhcmRlZC4gVXNlZCB3aGVuIHVzZXIKKyAgICAgKiBjaGFuZ2VzIHRoZSBUViBzZXR0aW5ncyB0byBkaXNhYmxlIENFQyBmdW5jdGlvbmFsaXR5LgorICAgICAqIFRydWUgYnkgZGVmYXVsdC4KKyAgICAgKi8KKyAgICBFTkFCTEVfQ0VDID0gMiwKKworICAgIC8qKgorICAgICAqIFNldHRpbmcgdGhpcyBmbGFnIHRvIGZhbHNlIG1lYW5zIEFuZHJvaWQgc3lzdGVtIG11c3Qgc3RvcCBoYW5kbGluZyBDRUMKKyAgICAgKiBzZXJ2aWNlIGFuZCB5aWVsZCB0aGUgY29udHJvbCBvdmVyIHRvIHRoZSBtaWNyb3Byb2Nlc3NvciB0aGF0IGlzIHBvd2VyZWQKKyAgICAgKiBvbiB0aHJvdWdoIHRoZSBzdGFuZGJ5IG1vZGUuIFdoZW4gc2V0IHRvIHRydWUsIHRoZSBzeXN0ZW0gbXVzdCBnYWluIHRoZQorICAgICAqIGNvbnRyb2wgb3ZlciwgaGVuY2UgdGVsbGluZyB0aGUgbWljcm9wcm9jZXNzb3IgdG8gc3RvcCBoYW5kbGluZyB0aGUgQ0VDCisgICAgICogY29tbWFuZHMuIEZvciBleGFtcGxlLCB0aGlzIG1heSBiZSBjYWxsZWQgd2hlbiBzeXN0ZW0gZ29lcyBpbiBhbmQgb3V0IG9mCisgICAgICogc3RhbmRieSBtb2RlIHRvIG5vdGlmeSB0aGUgbWljcm9wcm9jZXNzb3IgdGhhdCBpdCBzaG91bGQgc3RhcnQvc3RvcAorICAgICAqIGhhbmRsaW5nIENFQyBjb21tYW5kcyBvbiBiZWhhbGYgb2YgdGhlIHN5c3RlbS4KKyAgICAgKiBGYWxzZSBieSBkZWZhdWx0LgorICAgICAqLworICAgIFNZU1RFTV9DRUNfQ09OVFJPTCA9IDMsCisKKyAgICAvKiogT3B0aW9uIDQgbm90IHVzZWQgKi8KK307CisKK3N0cnVjdCBDZWNNZXNzYWdlIHsKKyAgICAvKiogbG9naWNhbCBhZGRyZXNzIG9mIHNlbmRlciAqLworICAgIENlY0xvZ2ljYWxBZGRyZXNzIGluaXRpYXRvcjsKKworICAgIC8qKiBsb2dpY2FsIGFkZHJlc3Mgb2YgcmVjZWl2ZXIgKi8KKyAgICBDZWNMb2dpY2FsQWRkcmVzcyBkZXN0aW5hdGlvbjsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIHNpemUgb2YgYm9keSBpcyAxNSAoTWF4TGVuZ3RoOjpNRVNTQUdFX0JPRFkpIGFzIHNwZWNpZmllZCBpbgorICAgICAqIHRoZSBzZWN0aW9uIDYgb2YgdGhlIENFQyBTcGVjIDEuNGIuIE92ZXJmbG93ZWQgZGF0YSBtdXN0IGJlIGlnbm9yZWQuICovCisgICAgdmVjPHVpbnQ4X3Q+IGJvZHk7Cit9OworCitzdHJ1Y3QgSG90cGx1Z0V2ZW50IHsKKyAgICBib29sIGNvbm5lY3RlZDsKKyAgICB1aW50MzJfdCBwb3J0SWQ7Cit9OworCisvKioKKyAqIEhETUkgcG9ydCBkZXNjcmlwdG9yCisgKi8KK3N0cnVjdCBIZG1pUG9ydEluZm8geworICAgIEhkbWlQb3J0VHlwZSB0eXBlOworICAgIHVpbnQzMl90IHBvcnRJZDsgLy8gU2hvdWxkIHN0YXJ0IGZyb20gMSB3aGljaCBjb3JyZXNwb25kcyB0byBIRE1JICJwb3J0IDEiLgorICAgIGJvb2wgY2VjU3VwcG9ydGVkOworICAgIGJvb2wgYXJjU3VwcG9ydGVkOworICAgIHVpbnQxNl90IHBoeXNpY2FsQWRkcmVzczsKK307CmRpZmYgLS1naXQgYS90di9jZWMvQW5kcm9pZC5tayBiL3R2L2NlYy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL0FuZHJvaWQuYnAgYi90di9pbnB1dC8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hM2Y4Yzk0Ci0tLSAvZGV2L251bGwKKysrIGIvdHYvaW5wdXQvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3MiBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJVHZJbnB1dC5oYWwiLAorICAgICAgICAiSVR2SW5wdXRDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL1R2SW5wdXRBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL1R2SW5wdXRDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0lId1R2SW5wdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9Cbkh3VHZJbnB1dC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0JwSHdUdklucHV0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvQnNUdklucHV0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvSVR2SW5wdXRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0lId1R2SW5wdXRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0JuSHdUdklucHV0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9CcEh3VHZJbnB1dENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvQnNUdklucHV0Q2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvQW5kcm9pZC5tayBiL3R2L2lucHV0LzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMWNmNzAKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQxIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0LVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvVjFfMC9Db25zdGFudHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVR2SW5wdXQuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVR2SW5wdXRDYWxsYmFjay5oYWwKKworJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhLWNvbnN0YW50cyBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+IHRoaXMtbGlicmFyeSAtPiBmcmFtZXdvcmsuamFyCitMT0NBTF9OT19TVEFOREFSRF9MSUJSQVJJRVMgOj0gdHJ1ZQorTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gY29yZS1vagorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oYWwgYi90di9pbnB1dC8xLjAvSVR2SW5wdXQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YWZmMjEKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvSVR2SW5wdXQuaGFsCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOworCitpbXBvcnQgSVR2SW5wdXRDYWxsYmFjazsKKworaW50ZXJmYWNlIElUdklucHV0IHsKKyAgICAvKioKKyAgICAgKiBTZXRzIGEgY2FsbGJhY2sgZm9yIGV2ZW50cy4KKyAgICAgKgorICAgICAqIE5vdGUgdGhhdCBpbml0aWFsbHkgbm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBpbiB0aGUgY2xpZW50IHNpZGUsIHNvIHRoZQorICAgICAqIGltcGxlbWVudGF0aW9uIG11c3Qgbm90aWZ5IGFsbCB0aGUgY3VycmVudGx5IGF2YWlsYWJsZSBkZXZpY2VzIGluY2x1ZGluZworICAgICAqIHN0YXRpYyBkZXZpY2VzIHZpYSBjYWxsYmFjayBvbmNlIGNhbGxiYWNrIGlzIHNldC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayBvYmplY3QgdG8gcGFzcyBldmVudHMuCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBAY2FsbGZsb3cobmV4dD17ImdldFN0cmVhbUNvbmZpZ3VyYXRpb25zIn0pCisgICAgc2V0Q2FsbGJhY2soSVR2SW5wdXRDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHN0cmVhbSBjb25maWd1cmF0aW9ucyBmb3IgYSBzcGVjaWZpYyBkZXZpY2UuCisgICAgICoKKyAgICAgKiBUaGUgY29uZmlncyBvYmplY3QgaXMgdmFsaWQgb25seSB1bnRpbCB0aGUgbmV4dAorICAgICAqIFNUUkVBTV9DT05GSUdVUkFUSU9OU19DSEFOR0VEIGV2ZW50LgorICAgICAqCisgICAgICogQHBhcmFtIGRldmljZUlkIERldmljZSBJRCBmb3IgdGhlIGNvbmZpZ3VyYXRpb25zLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgSU5WQUxJRF9BUkdVTUVOVFMgaWYgdGhlIGdpdmVuIGRldmljZSBJRCBpcyBub3QgdmFsaWQuCisgICAgICogQHJldHVybiBjb25maWd1cmF0aW9ucyBBbiBhcnJheSBvZiBhdmFpbGFibGUgY29uZmlndXJhdGlvbnMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJvcGVuU3RyZWFtIiwgImdldFN0cmVhbUNvbmZpZ3VyYXRpb25zIiwgImNsb3NlU3RyZWFtIn0pCisgICAgZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMoaW50MzJfdCBkZXZpY2VJZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCwgdmVjPFR2U3RyZWFtQ29uZmlnPiBjb25maWd1cmF0aW9ucyk7CisKKyAgICAvKioKKyAgICAgKiBPcGVucyBhIHNwZWNpZmljIHN0cmVhbSBpbiBhIGRldmljZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZXZpY2VJZCBEZXZpY2UgSUQgZm9yIHRoZSBzdGVhbSB0byBvcGVuLgorICAgICAqIEBwYXJhbSBzdHJlYW1JZCBTdGVhbSBJRCBmb3IgdGhlIHN0ZWFtIHRvIG9wZW4uIE11c3QgYmUgb25lIG9mIHRoZQorICAgICAqICAgICAgICAgc3RyZWFtIElEcyByZXR1cm5lZCBmcm9tIGdldFN0cmVhbUNvbmZpZ3VyYXRpb25zKCkuCisgICAgICogQHJldHVybiByZXN1bHQgT0sgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiBhbnkgb2YgZ2l2ZW4gSURzIGFyZSBub3QgdmFsaWQ7CisgICAgICogICAgICAgICBJTlZBTElEX1NUQVRFIGlmIHRoZSBzdHJlYW0gd2l0aCB0aGUgZ2l2ZW4gSUQgaXMgYWxyZWFkeSBvcGVuOworICAgICAqICAgICAgICAgTk9fUkVTT1VSQ0UgaWYgdGhlIGNsaWVudCBtdXN0IGNsb3NlIG90aGVyIHN0cmVhbXMgdG8gb3BlbiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgc3RyZWFtLgorICAgICAqIEByZXR1cm4gc2lkZWJhbmRTdHJlYW0gaGFuZGxlIGZvciBzaWRlYmFuZCBzdHJlYW0uCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJjbG9zZVN0cmVhbSIsICJnZXRTdHJlYW1Db25maWd1cmF0aW9ucyIsICJvcGVuU3RyZWFtIn0pCisgICAgb3BlblN0cmVhbShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IHN0cmVhbUlkKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0LCBoYW5kbGUgc2lkZWJhbmRTdHJlYW0pOworCisgICAgLyoqCisgICAgICogQ2xvc2VzIGEgc3BlY2lmaWMgc3RyZWFtIGluIGEgZGV2aWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGRldmljZUlkIERldmljZSBJRCBmb3IgdGhlIHN0ZWFtIHRvIG9wZW4uCisgICAgICogQHBhcmFtIHN0cmVhbUlkIFN0ZWFtIElEIGZvciB0aGUgc3RlYW0gdG8gb3Blbi4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIGFueSBvZiBnaXZlbiBJRHMgYXJlIG5vdCB2YWxpZDsKKyAgICAgKiAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgdGhlIHN0cmVhbSB3aXRoIHRoZSBnaXZlbiBJRCBpcyBub3Qgb3Blbi4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17ImdldFN0cmVhbUNvbmZpZ3VyYXRpb25zIiwgIm9wZW5TdHJlYW0iLCAiY2xvc2VTdHJlYW0ifSkKKyAgICBjbG9zZVN0cmVhbShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IHN0cmVhbUlkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworfTsKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9JVHZJbnB1dENhbGxiYWNrLmhhbCBiL3R2L2lucHV0LzEuMC9JVHZJbnB1dENhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDg4YzViCi0tLSAvZGV2L251bGwKKysrIGIvdHYvaW5wdXQvMS4wL0lUdklucHV0Q2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOworCitpbnRlcmZhY2UgSVR2SW5wdXRDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogTm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IGFuIGV2ZW50IGhhcyBvY2N1cmVkLiBGb3IgcG9zc2libGUgZXZlbnQgdHlwZXMsCisgICAgICogY2hlY2sgVHZJbnB1dEV2ZW50VHlwZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBldmVudCBFdmVudCBwYXNzZWQgdG8gdGhlIGNsaWVudC4KKyDCoMKgwqDCoCovCisgICAgbm90aWZ5KFR2SW5wdXRFdmVudCBldmVudCk7Cit9OwpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjEwZGE4NgotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSw0NiBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgVHZJbnB1dC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIHNlcnZpY2UuY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGlibG9nIFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmRsIFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGliaGFyZHdhcmVfbGVnYWN5IFwKKyAgICBsaWJoYXJkd2FyZSBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgKz0gXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCisKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9kZWZhdWx0L1R2SW5wdXQuY3BwIGIvdHYvaW5wdXQvMS4wL2RlZmF1bHQvVHZJbnB1dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVhMWRlYwotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L1R2SW5wdXQuY3BwCkBAIC0wLDAgKzEsMjI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1zZXJ2aWNlIgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlICJUdklucHV0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdHYgeworbmFtZXNwYWNlIGlucHV0IHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9PVEhFUl9IQVJEV0FSRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpPVEhFUiksCisgICAgICAgICJUdklucHV0VHlwZTo6T1RIRVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX1RZUEVfVFVORVIgPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6VFVORVIpLAorICAgICAgICAiVHZJbnB1dFR5cGU6OlRVTkVSIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX0NPTVBPU0lURSA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpDT01QT1NJVEUpLAorICAgICAgICAiVHZJbnB1dFR5cGU6OkNPTVBPU0lURSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9TVklERU8gPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6U1ZJREVPKSwKKyAgICAgICAgIlR2SW5wdXRUeXBlOjpTVklERU8gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX1RZUEVfU0NBUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6U0NBUlQpLAorICAgICAgICAiVHZJbnB1dFR5cGU6OlNDQVJUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX0NPTVBPTkVOVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpDT01QT05FTlQpLAorICAgICAgICAiVHZJbnB1dFR5cGU6OkNPTVBPTkVOVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9WR0EgPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6VkdBKSwKKyAgICAgICAgIlR2SW5wdXRUeXBlOjpWR0EgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX1RZUEVfRFZJID09IHN0YXRpY19jYXN0PGludD4oVHZJbnB1dFR5cGU6OkRWSSksCisgICAgICAgICJUdklucHV0VHlwZTo6RFZJIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX0hETUkgPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6SERNSSksCisgICAgICAgICJUdklucHV0VHlwZTo6SERNSSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9ESVNQTEFZX1BPUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6RElTUExBWV9QT1JUKSwKKyAgICAgICAgIlR2SW5wdXRUeXBlOjpESVNQTEFZX1BPUlQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfRVZFTlRfREVWSUNFX0FWQUlMQUJMRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBUdklucHV0RXZlbnRUeXBlOjpERVZJQ0VfQVZBSUxBQkxFKSwKKyAgICAgICAgIlR2SW5wdXRFdmVudFR5cGU6OkRFVklDRV9BVkFJTEFCTEUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX0VWRU5UX0RFVklDRV9VTkFWQUlMQUJMRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBUdklucHV0RXZlbnRUeXBlOjpERVZJQ0VfVU5BVkFJTEFCTEUpLAorICAgICAgICAiVHZJbnB1dEV2ZW50VHlwZTo6REVWSUNFX1VOQVZBSUxBQkxFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9FVkVOVF9TVFJFQU1fQ09ORklHVVJBVElPTlNfQ0hBTkdFRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBUdklucHV0RXZlbnRUeXBlOjpTVFJFQU1fQ09ORklHVVJBVElPTlNfQ0hBTkdFRCksCisgICAgICAgICJUdklucHV0RXZlbnRUeXBlOjpTVFJFQU1fQ09ORklHVVJBVElPTlNfQ0hBTkdFRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3A8SVR2SW5wdXRDYWxsYmFjaz4gVHZJbnB1dDo6bUNhbGxiYWNrID0gbnVsbHB0cjsKKworVHZJbnB1dDo6VHZJbnB1dCh0dl9pbnB1dF9kZXZpY2VfdCogZGV2aWNlKSA6IG1EZXZpY2UoZGV2aWNlKSB7CisgICAgbUNhbGxiYWNrT3BzLm5vdGlmeSA9ICZUdklucHV0Ojpub3RpZnk7Cit9CisKK1R2SW5wdXQ6On5UdklucHV0KCkgeworICAgIGlmIChtRGV2aWNlICE9IG51bGxwdHIpIHsKKyAgICAgICAgZnJlZShtRGV2aWNlKTsKKyAgICB9Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0dl9pbnB1dDo6VjFfMDo6SVR2SW5wdXQgZm9sbG93LgorUmV0dXJuPHZvaWQ+IFR2SW5wdXQ6OnNldENhbGxiYWNrKGNvbnN0IHNwPElUdklucHV0Q2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBtQ2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICBpZiAobUNhbGxiYWNrICE9IG51bGxwdHIpIHsKKyAgICAgICAgbURldmljZS0+aW5pdGlhbGl6ZShtRGV2aWNlLCAmbUNhbGxiYWNrT3BzLCBudWxscHRyKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFR2SW5wdXQ6OmdldFN0cmVhbUNvbmZpZ3VyYXRpb25zKGludDMyX3QgZGV2aWNlSWQsIGdldFN0cmVhbUNvbmZpZ3VyYXRpb25zX2NiIGNiKSAgeworICAgIGludDMyX3QgY29uZmlnQ291bnQgPSAwOworICAgIGNvbnN0IHR2X3N0cmVhbV9jb25maWdfdCogY29uZmlncyA9IG51bGxwdHI7CisgICAgaW50IHJldCA9IG1EZXZpY2UtPmdldF9zdHJlYW1fY29uZmlndXJhdGlvbnMobURldmljZSwgZGV2aWNlSWQsICZjb25maWdDb3VudCwgJmNvbmZpZ3MpOworICAgIFJlc3VsdCByZXMgPSBSZXN1bHQ6OlVOS05PV047CisgICAgaGlkbF92ZWM8VHZTdHJlYW1Db25maWc+IHR2U3RyZWFtQ29uZmlnczsKKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgcmVzID0gUmVzdWx0OjpPSzsKKyAgICAgICAgdHZTdHJlYW1Db25maWdzLnJlc2l6ZShnZXRTdXBwb3J0ZWRDb25maWdDb3VudChjb25maWdDb3VudCwgY29uZmlncykpOworICAgICAgICBpbnQzMl90IHBvcyA9IDA7CisgICAgICAgIGZvciAoaW50MzJfdCBpID0gMDsgaSA8IGNvbmZpZ0NvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpc1N1cHBvcnRlZFN0cmVhbVR5cGUoY29uZmlnc1tpXS50eXBlKSkgeworICAgICAgICAgICAgICAgIHR2U3RyZWFtQ29uZmlnc1twb3NdLnN0cmVhbUlkID0gY29uZmlnc1tpXS5zdHJlYW1faWQ7CisgICAgICAgICAgICAgICAgdHZTdHJlYW1Db25maWdzW3Bvc10ubWF4VmlkZW9XaWR0aCA9IGNvbmZpZ3NbaV0ubWF4X3ZpZGVvX3dpZHRoOworICAgICAgICAgICAgICAgIHR2U3RyZWFtQ29uZmlnc1twb3NdLm1heFZpZGVvSGVpZ2h0ID0gY29uZmlnc1tpXS5tYXhfdmlkZW9faGVpZ2h0OworICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIGlmIChyZXQgPT0gLUVJTlZBTCkgeworICAgICAgICByZXMgPSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgIH0KKyAgICBjYihyZXMsIHR2U3RyZWFtQ29uZmlncyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFR2SW5wdXQ6Om9wZW5TdHJlYW0oaW50MzJfdCBkZXZpY2VJZCwgaW50MzJfdCBzdHJlYW1JZCwgb3BlblN0cmVhbV9jYiBjYikgIHsKKyAgICB0dl9zdHJlYW1fdCBzdHJlYW07CisgICAgc3RyZWFtLnN0cmVhbV9pZCA9IHN0cmVhbUlkOworICAgIGludCByZXQgPSBtRGV2aWNlLT5vcGVuX3N0cmVhbShtRGV2aWNlLCBkZXZpY2VJZCwgJnN0cmVhbSk7CisgICAgUmVzdWx0IHJlcyA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIHNpZGViYW5kU3RyZWFtID0gbnVsbHB0cjsKKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgaWYgKGlzU3VwcG9ydGVkU3RyZWFtVHlwZShzdHJlYW0udHlwZSkpIHsKKyAgICAgICAgICAgIHJlcyA9IFJlc3VsdDo6T0s7CisgICAgICAgICAgICBzaWRlYmFuZFN0cmVhbSA9IHN0cmVhbS5zaWRlYmFuZF9zdHJlYW1fc291cmNlX2hhbmRsZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChyZXQgPT0gLUVCVVNZKSB7CisgICAgICAgICAgICByZXMgPSBSZXN1bHQ6Ok5PX1JFU09VUkNFOworICAgICAgICB9IGVsc2UgaWYgKHJldCA9PSAtRUVYSVNUKSB7CisgICAgICAgICAgICByZXMgPSBSZXN1bHQ6OklOVkFMSURfU1RBVEU7CisgICAgICAgIH0gZWxzZSBpZiAocmV0ID09IC1FSU5WQUwpIHsKKyAgICAgICAgICAgIHJlcyA9IFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgICAgIH0KKyAgICB9CisgICAgY2IocmVzLCBzaWRlYmFuZFN0cmVhbSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVHZJbnB1dDo6Y2xvc2VTdHJlYW0oaW50MzJfdCBkZXZpY2VJZCwgaW50MzJfdCBzdHJlYW1JZCkgIHsKKyAgICBpbnQgcmV0ID0gbURldmljZS0+Y2xvc2Vfc3RyZWFtKG1EZXZpY2UsIGRldmljZUlkLCBzdHJlYW1JZCk7CisgICAgUmVzdWx0IHJlcyA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgcmVzID0gUmVzdWx0OjpPSzsKKyAgICB9IGVsc2UgaWYgKHJldCA9PSAtRU5PRU5UKSB7CisgICAgICAgIHJlcyA9IFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICB9IGVsc2UgaWYgKHJldCA9PSAtRUlOVkFMKSB7CisgICAgICAgIHJlcyA9IFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgfQorICAgIHJldHVybiByZXM7Cit9CisKKy8vIHN0YXRpYwordm9pZCBUdklucHV0Ojpub3RpZnkoc3RydWN0IHR2X2lucHV0X2RldmljZSogX191bnVzZWQsIHR2X2lucHV0X2V2ZW50X3QqIGV2ZW50LAorICAgICAgICB2b2lkKiBfX3VudXNlZCkgeworICAgIGlmIChtQ2FsbGJhY2sgIT0gbnVsbHB0ciAmJiBldmVudCAhPSBudWxscHRyKSB7CisgICAgICAgIC8vIENhcHR1cmluZyBpcyBubyBsb25nZXIgc3VwcG9ydGVkLgorICAgICAgICBpZiAoZXZlbnQtPnR5cGUgPj0gVFZfSU5QVVRfRVZFTlRfQ0FQVFVSRV9TVUNDRUVERUQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBUdklucHV0RXZlbnQgdHZJbnB1dEV2ZW50OworICAgICAgICB0dklucHV0RXZlbnQudHlwZSA9IHN0YXRpY19jYXN0PFR2SW5wdXRFdmVudFR5cGU+KGV2ZW50LT50eXBlKTsKKyAgICAgICAgdHZJbnB1dEV2ZW50LmRldmljZUluZm8uZGV2aWNlSWQgPSBldmVudC0+ZGV2aWNlX2luZm8uZGV2aWNlX2lkOworICAgICAgICB0dklucHV0RXZlbnQuZGV2aWNlSW5mby50eXBlID0gc3RhdGljX2Nhc3Q8VHZJbnB1dFR5cGU+KAorICAgICAgICAgICAgICAgIGV2ZW50LT5kZXZpY2VfaW5mby50eXBlKTsKKyAgICAgICAgdHZJbnB1dEV2ZW50LmRldmljZUluZm8ucG9ydElkID0gZXZlbnQtPmRldmljZV9pbmZvLmhkbWkucG9ydF9pZDsKKyAgICAgICAgdHZJbnB1dEV2ZW50LmRldmljZUluZm8uY2FibGVDb25uZWN0aW9uU3RhdHVzID0gQ2FibGVDb25uZWN0aW9uU3RhdHVzOjpVTktOT1dOOworICAgICAgICAvLyBUT0RPOiBFbnN1cmUgdGhlIGxlZ2FjeSBhdWRpbyB0eXBlIGNvZGUgaXMgdGhlIHNhbWUgb25jZSBhdWRpbyBIQUwgZGVmYXVsdAorICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiBpcyByZWFkeS4KKyAgICAgICAgdHZJbnB1dEV2ZW50LmRldmljZUluZm8uYXVkaW9UeXBlID0gc3RhdGljX2Nhc3Q8QXVkaW9EZXZpY2U+KAorICAgICAgICAgICAgICAgIGV2ZW50LT5kZXZpY2VfaW5mby5hdWRpb190eXBlKTsKKyAgICAgICAgbWVtc2V0KHR2SW5wdXRFdmVudC5kZXZpY2VJbmZvLmF1ZGlvQWRkcmVzcy5kYXRhKCksIDAsCisgICAgICAgICAgICAgICAgdHZJbnB1dEV2ZW50LmRldmljZUluZm8uYXVkaW9BZGRyZXNzLnNpemUoKSk7CisgICAgICAgIGNvbnN0IGNoYXIqIGFkZHJlc3MgPSBldmVudC0+ZGV2aWNlX2luZm8uYXVkaW9fYWRkcmVzczsKKyAgICAgICAgaWYgKGFkZHJlc3MgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgc2l6ZV90IHNpemUgPSBzdHJsZW4oYWRkcmVzcyk7CisgICAgICAgICAgICBpZiAoc2l6ZSA+IHR2SW5wdXRFdmVudC5kZXZpY2VJbmZvLmF1ZGlvQWRkcmVzcy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICBMT0coRVJST1IpIDw8ICJBdWRpbyBhZGRyZXNzIGlzIHRvbyBsb25nLiBBZGRyZXNzOiIgPDwgYWRkcmVzcyA8PCAiIjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAgICAgIHR2SW5wdXRFdmVudC5kZXZpY2VJbmZvLmF1ZGlvQWRkcmVzc1tpXSA9CisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGV2ZW50LT5kZXZpY2VfaW5mby5hdWRpb19hZGRyZXNzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtQ2FsbGJhY2stPm5vdGlmeSh0dklucHV0RXZlbnQpOworICAgIH0KK30KKworLy8gc3RhdGljCit1aW50MzJfdCBUdklucHV0OjpnZXRTdXBwb3J0ZWRDb25maWdDb3VudCh1aW50MzJfdCBjb25maWdDb3VudCwKKyAgICAgICAgY29uc3QgdHZfc3RyZWFtX2NvbmZpZ190KiBjb25maWdzKSB7CisgICAgdWludDMyX3Qgc3VwcG9ydGVkQ29uZmlnQ291bnQgPSAwOworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb25maWdDb3VudDsgKytpKSB7CisgICAgICAgIGlmIChpc1N1cHBvcnRlZFN0cmVhbVR5cGUoY29uZmlnc1tpXS50eXBlKSkgeworICAgICAgICAgICAgc3VwcG9ydGVkQ29uZmlnQ291bnQrKzsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc3VwcG9ydGVkQ29uZmlnQ291bnQ7Cit9CisKKy8vIHN0YXRpYworYm9vbCBUdklucHV0Ojppc1N1cHBvcnRlZFN0cmVhbVR5cGUoaW50IHR5cGUpIHsKKyAgICAvLyBCdWZmZXIgcHJvZHVjZXIgdHlwZSBpcyBubyBsb25nZXIgc3VwcG9ydGVkLgorICAgIHJldHVybiB0eXBlICE9IFRWX1NUUkVBTV9UWVBFX0JVRkZFUl9QUk9EVUNFUjsKK30KKworSVR2SW5wdXQqIEhJRExfRkVUQ0hfSVR2SW5wdXQoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIGludCByZXQgPSAwOworICAgIGNvbnN0IGh3X21vZHVsZV90KiBod19tb2R1bGUgPSBudWxscHRyOworICAgIHR2X2lucHV0X2RldmljZV90KiBpbnB1dF9kZXZpY2U7CisgICAgcmV0ID0gaHdfZ2V0X21vZHVsZShUVl9JTlBVVF9IQVJEV0FSRV9NT0RVTEVfSUQsICZod19tb2R1bGUpOworICAgIGlmIChyZXQgPT0gMCAmJiBod19tb2R1bGUtPm1ldGhvZHMtPm9wZW4gIT0gbnVsbHB0cikgeworICAgICAgICByZXQgPSBod19tb2R1bGUtPm1ldGhvZHMtPm9wZW4oaHdfbW9kdWxlLCBUVl9JTlBVVF9ERUZBVUxUX0RFVklDRSwKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGh3X2RldmljZV90Kio+KCZpbnB1dF9kZXZpY2UpKTsKKyAgICAgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFR2SW5wdXQoaW5wdXRfZGV2aWNlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIExPRyhFUlJPUikgPDwgIlBhc3N0aHJvdWdoIGZhaWxlZCB0byBsb2FkIGxlZ2FjeSBIQUwuIjsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBMT0coRVJST1IpIDw8ICJod19nZXRfbW9kdWxlICIgPDwgVFZfSU5QVVRfSEFSRFdBUkVfTU9EVUxFX0lECisgICAgICAgICAgICAgICAgICAgPDwgIiBmYWlsZWQ6ICIgPDwgcmV0OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBpbnB1dAorfSAgLy8gbmFtZXNwYWNlIHR2Cit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvZGVmYXVsdC9UdklucHV0LmggYi90di9pbnB1dC8xLjAvZGVmYXVsdC9UdklucHV0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmViNjlmNQotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L1R2SW5wdXQuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9UVl9JTlBVVF9WMV8wX1RWSU5QVVRfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX1RWX0lOUFVUX1YxXzBfVFZJTlBVVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvdHZfaW5wdXQuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdHYgeworbmFtZXNwYWNlIGlucHV0IHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpJVHZJbnB1dDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6SVR2SW5wdXRDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpUdklucHV0RXZlbnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OlR2U3RyZWFtQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgVHZJbnB1dCA6IHB1YmxpYyBJVHZJbnB1dCB7CisgICAgVHZJbnB1dCh0dl9pbnB1dF9kZXZpY2VfdCogZGV2aWNlKTsKKyAgICB+VHZJbnB1dCgpOworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJVHZJbnB1dENhbGxiYWNrPiYgY2FsbGJhY2spICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMoaW50MzJfdCBkZXZpY2VJZCwKKyAgICAgICAgICAgIGdldFN0cmVhbUNvbmZpZ3VyYXRpb25zX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IG9wZW5TdHJlYW0oaW50MzJfdCBkZXZpY2VJZCwgaW50MzJfdCBzdHJlYW1JZCwKKyAgICAgICAgICAgIG9wZW5TdHJlYW1fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZVN0cmVhbShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IHN0cmVhbUlkKSAgb3ZlcnJpZGU7CisKKyAgICBzdGF0aWMgdm9pZCBub3RpZnkoc3RydWN0IHR2X2lucHV0X2RldmljZSogX191bnVzZWQsIHR2X2lucHV0X2V2ZW50X3QqIGV2ZW50LAorICAgICAgICAgICAgdm9pZCogX191bnVzZWQpOworICAgIHN0YXRpYyB1aW50MzJfdCBnZXRTdXBwb3J0ZWRDb25maWdDb3VudCh1aW50MzJfdCBjb25maWdDb3VudCwKKyAgICAgICAgICAgIGNvbnN0IHR2X3N0cmVhbV9jb25maWdfdCogY29uZmlncyk7CisgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRTdHJlYW1UeXBlKGludCB0eXBlKTsKKworICAgIHByaXZhdGU6CisgICAgc3RhdGljIHNwPElUdklucHV0Q2FsbGJhY2s+IG1DYWxsYmFjazsKKyAgICB0dl9pbnB1dF9jYWxsYmFja19vcHNfdCBtQ2FsbGJhY2tPcHM7CisgICAgdHZfaW5wdXRfZGV2aWNlX3QqIG1EZXZpY2U7Cit9OworCitleHRlcm4gIkMiIElUdklucHV0KiBISURMX0ZFVENIX0lUdklucHV0KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgaW5wdXQKK30gIC8vIG5hbWVzcGFjZSB0dgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfVFZfSU5QVVRfVjFfMF9UVklOUFVUX0gKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wLXNlcnZpY2UucmMgYi90di9pbnB1dC8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNjkwN2MKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSB0di1pbnB1dC0xLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5MDRkMGIKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnR2X2lucHV0QDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvSVR2SW5wdXQuaD4KKworI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpzcDsKKworLy8gR2VuZXJhdGVkIEhJREwgZmlsZXMKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OklUdklucHV0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJVHZJbnB1dD4oKTsKK30KZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC90eXBlcy5oYWwgYi90di9pbnB1dC8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1ZGQ2YzAKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKKworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBPSywKKyAgICBVTktOT1dOLAorICAgIE5PX1JFU09VUkNFLAorICAgIElOVkFMSURfQVJHVU1FTlRTLAorICAgIElOVkFMSURfU1RBVEUsCit9OworCisvKiogVHlwZSBvZiBwaHlzaWNhbCBUViBpbnB1dC4gKi8KK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJUVl9JTlBVVF9UWVBFXyIpCitlbnVtIFR2SW5wdXRUeXBlIDogaW50MzJfdCB7CisgICAgT1RIRVIgPSAxLCAgICAgICAgIC8vIEdlbmVyaWMgaGFyZHdhcmUuCisgICAgVFVORVIgPSAyLCAgICAgICAgIC8vIFR1bmVyLiBlLmcuIGJ1aWx0LWluIHRlcnJlc3RyaWFsIHR1bmVyCisgICAgQ09NUE9TSVRFID0gMywKKyAgICBTVklERU8gPSA0LAorICAgIFNDQVJUID0gNSwKKyAgICBDT01QT05FTlQgPSA2LAorICAgIFZHQSA9IDcsCisgICAgRFZJID0gOCwKKyAgICBIRE1JID0gOSwgICAgICAgICAgLy8gUGh5c2ljYWwgSERNSSBwb3J0LiBlLmcuIEhETUkgMQorICAgIERJU1BMQVlfUE9SVCA9IDEwLAorfTsKKworLyoqCisgKiBTdGF0dXMgb2YgY2FibGUgY29ubmVjdGlvbi4KKyAqIFRoaXMgc3RhdHVzIGlzIGZvciBkZXZpY2VzIGhhdmluZyBhdmFpbGFiaWxpdHkgdG8gZGV0ZWN0IHRoZSBjYWJsZSBpbiBhIG1lY2hhbmljYWwgd2F5LAorICogcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBjb25uZWN0ZWQgZXh0ZXJuYWwgZGV2aWNlIGlzIGVsZWN0cmljYWxseSBvbiBvciBub3QuCisgKiBJZiB0aGUgZGV2aWNlIGRvZXMgbm90IGhhdmUgc3VjaCBjYXBhYmlsaXR5LCB5b3UgbXVzdCB1c2UgVU5LTk9XTi4KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkNBQkxFX0NPTk5FQ1RJT05fU1RBVFVTXyIpCitlbnVtIENhYmxlQ29ubmVjdGlvblN0YXR1cyA6IGludDMyX3QgeworICAgIFVOS05PV04gPSAwLAorICAgIENPTk5FQ1RFRCA9IDEsCisgICAgRElTQ09OTkVDVEVEID0gMiwKK307CisKK3N0cnVjdCBUdklucHV0RGV2aWNlSW5mbyB7CisgICAgaW50MzJfdCBkZXZpY2VJZDsKKyAgICBUdklucHV0VHlwZSB0eXBlOworICAgIHVpbnQzMl90IHBvcnRJZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhETUkgcG9ydCBJRCBudW1iZXIuIGUuZy4gMiBmb3IgSERNSSAyCisgICAgQ2FibGVDb25uZWN0aW9uU3RhdHVzIGNhYmxlQ29ubmVjdGlvblN0YXR1czsgLy8gQ2FibGUgY29ubmVjdGlvbiBzdGF0dXMuCisgICAgQXVkaW9EZXZpY2UgYXVkaW9UeXBlOyAgICAgICAgICAgICAgICAgICAgICAgLy8gQXVkaW8gZGV2aWNlIHR5cGUuIGUuZyBBdWRpb0RldmljZTo6SU5fSERNSQorICAgIHVpbnQ4X3RbMzJdIGF1ZGlvQWRkcmVzczsgICAgICAgICAgICAgICAgICAgIC8vIEF1ZGlvIGRldmljZSBhZGRyZXNzLiAiIiBpZiBOL0EuIElmIHRoZSB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVuZ3RoIGlzIGxlc3MgdGhhbiAzMiwgdGhlIHJlbWFpbmluZyBwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbXVzdCBiZSBmaWxsZWQgd2l0aCAwcy4KK307CisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJFVkVOVF8iKQorZW51bSBUdklucHV0RXZlbnRUeXBlIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogSGFyZHdhcmUgbm90aWZpZXMgdGhlIGZyYW1ld29yayB0aGF0IGEgZGV2aWNlIGlzIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIE5vdGUgdGhhdCBERVZJQ0VfQVZBSUxBQkxFIGFuZCBERVZJQ0VfVU5BVkFJTEFCTEUgZXZlbnRzIGRvIG5vdCByZXByZXNlbnQKKyAgICAgKiBob3RwbHVnIGV2ZW50cyAoaS5lLiBwbHVnZ2luZyBjYWJsZSBpbnRvIG9yIG91dCBvZiB0aGUgcGh5c2ljYWwgcG9ydCkuCisgICAgICogVGhlc2UgZXZlbnRzIG5vdGlmeSB0aGUgZnJhbWV3b3JrIHdoZXRoZXIgdGhlIHBvcnQgaXMgYXZhaWxhYmxlIG9yIG5vdC4KKyAgICAgKiBGb3IgYSBjb25jcmV0ZSBleGFtcGxlLCB3aGVuIGEgdXNlciBwbHVncyBpbiBvciBwdWxscyBvdXQgdGhlIEhETUkgY2FibGUKKyAgICAgKiBmcm9tIGEgSERNSSBwb3J0LCBpdCBkb2VzIG5vdCBnZW5lcmF0ZSBERVZJQ0VfQVZBSUxBQkxFIGFuZC9vcgorICAgICAqIERFVklDRV9VTkFWQUlMQUJMRSBldmVudHMuIEhvd2V2ZXIsIGlmIGEgdXNlciBpbnNlcnRzIGEgcGx1Z2dhYmxlIFVTQgorICAgICAqIHR1bmVyIGludG8gdGhlIEFuZHJvaWQgZGV2aWNlLCBpdCBtdXN0IGdlbmVyYXRlIGEgREVWSUNFX0FWQUlMQUJMRSBldmVudAorICAgICAqIGFuZCB3aGVuIHRoZSBwb3J0IGlzIHJlbW92ZWQsIGl0IG11c3QgZ2VuZXJhdGUgYSBERVZJQ0VfVU5BVkFJTEFCTEUKKyAgICAgKiBldmVudC4KKyAgICAgKgorICAgICAqIEZvciBob3RwbHVnIGV2ZW50cywgcGxlYXNlIHNlZSBTVFJFQU1fQ09ORklHVVJBVElPTl9DSEFOR0VEIGZvciBtb3JlCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEhBTCBpbXBsZW1lbnRhdGlvbiBtdXN0IHJlZ2lzdGVyIGRldmljZXMgYnkgdXNpbmcgdGhpcyBldmVudCB3aGVuIHRoZQorICAgICAqIGRldmljZSBib290cyB1cC4gVGhlIGZyYW1ld29yayBtdXN0IHJlY29nbml6ZSBkZXZpY2UgcmVwb3J0ZWQgdmlhIHRoaXMKKyAgICAgKiBldmVudCBvbmx5LgorICAgICAqLworICAgIERFVklDRV9BVkFJTEFCTEUgPSAxLAorCisgICAgLyoqCisgICAgICogSGFyZHdhcmUgbm90aWZpZXMgdGhlIGZyYW1ld29yayB0aGF0IGEgZGV2aWNlIGlzIHVuYXZhaWxhYmxlLgorICAgICAqCisgICAgICogSEFMIGltcGxlbWVudGF0aW9uIG11c3QgZ2VuZXJhdGUgdGhpcyBldmVudCB3aGVuIGEgZGV2aWNlIHJlZ2lzdGVyZWQKKyAgICAgKiBieSBERVZJQ0VfQVZBSUxBQkxFIGlzIG5vIGxvbmdlciBhdmFpbGFibGUuIEZvciBleGFtcGxlLAorICAgICAqIHRoZSBldmVudCBjYW4gaW5kaWNhdGUgdGhhdCBhIFVTQiB0dW5lciBpcyBwbHVnZ2VkIG91dCBmcm9tIHRoZSBBbmRyb2lkCisgICAgICogZGV2aWNlLgorICAgICAqCisgICAgICogTm90ZSB0aGF0IHRoaXMgZXZlbnQgaXMgbm90IGZvciBpbmRpY2F0aW5nIGNhYmxlIHBsdWdnZWQgb3V0IG9mIHRoZSBwb3J0OworICAgICAqIGZvciB0aGF0IHB1cnBvc2UsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHVzZQorICAgICAqIFNUUkVBTV9DT05GSUdVUkFUSU9OX0NIQU5HRUQgZXZlbnQuIFRoaXMgZXZlbnQgcmVwcmVzZW50cyB0aGUgcG9ydCBpdHNlbGYKKyAgICAgKiBiZWluZyBubyBsb25nZXIgYXZhaWxhYmxlLgorICAgICAqLworICAgIERFVklDRV9VTkFWQUlMQUJMRSA9IDIsCisKKyAgICAvKioKKyAgICAgKiBTdHJlYW0gY29uZmlndXJhdGlvbnMgYXJlIGNoYW5nZWQuIENsaWVudCBtdXN0IHJlZ2FyZCBhbGwgb3BlbiBzdHJlYW1zCisgICAgICogYXQgdGhlIHNwZWNpZmljIGRldmljZSBhcmUgY2xvc2VkLCBhbmQgbXVzdCBjYWxsCisgICAgICogZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMoKSBhZ2Fpbiwgb3BlbmluZyBzb21lIG9mIHRoZW0gaWYgbmVjZXNzYXJ5LgorICAgICAqCisgICAgICogSEFMIGltcGxlbWVudGF0aW9uIG11c3QgZ2VuZXJhdGUgdGhpcyBldmVudCB3aGVuIHRoZSBhdmFpbGFibGUgc3RyZWFtCisgICAgICogY29uZmlndXJhdGlvbnMgY2hhbmdlIGZvciBhbnkgcmVhc29uLiBBIHR5cGljYWwgdXNlIGNhc2Ugb2YgdGhpcyBldmVudAorICAgICAqIGlzIHRvIG5vdGlmeSB0aGUgZnJhbWV3b3JrIHRoYXQgdGhlIGlucHV0IHNpZ25hbCBoYXMgY2hhbmdlZCByZXNvbHV0aW9uLAorICAgICAqIG9yIHRoYXQgdGhlIGNhYmxlIGlzIHBsdWdnZWQgb3V0IHNvIHRoYXQgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgc3RyZWFtcworICAgICAqIGlzIDAuCisgICAgICoKKyAgICAgKiBUaGUgaW1wbGVtZW50YXRpb24gbXVzdCB1c2UgdGhpcyBldmVudCB0byBpbmRpY2F0ZSBob3RwbHVnIHN0YXR1cyBvZiB0aGUKKyAgICAgKiBwb3J0LiB0aGUgZnJhbWV3b3JrIHJlZ2FyZHMgaW5wdXQgZGV2aWNlcyB3aXRoIG5vIGF2YWlsYWJsZSBzdHJlYW1zIGFzCisgICAgICogZGlzY29ubmVjdGVkLCBzbyB0aGUgaW1wbGVtZW50YXRpb24gY2FuIGdlbmVyYXRlIHRoaXMgZXZlbnQgd2l0aCBubworICAgICAqIGF2YWlsYWJsZSBzdHJlYW1zIHRvIGluZGljYXRlIHRoYXQgdGhpcyBkZXZpY2UgaXMgZGlzY29ubmVjdGVkLCBhbmQgdmljZQorICAgICAqIHZlcnNhLgorICAgICAqLworICAgIFNUUkVBTV9DT05GSUdVUkFUSU9OU19DSEFOR0VEID0gMywKK307CisKK3N0cnVjdCBUdklucHV0RXZlbnQgeworICAgIFR2SW5wdXRFdmVudFR5cGUgdHlwZTsKKyAgICAvKioKKyAgICAgKiBERVZJQ0VfQVZBSUxBQkxFOiBhbGwgZmllbGRzIGFyZSByZWxldmFudC4KKyAgICAgKiBERVZJQ0VfVU5BVkFJTEFCTEU6IG9ubHkgZGV2aWNlSWQgaXMgcmVsZXZhbnQuCisgICAgICogU1RSRUFNX0NPTkZJR1VSQVRJT05TX0NIQU5HRUQ6IG9ubHkgZGV2aWNlSWQgaXMgcmVsZXZhbnQuCisgICAgICovCisgICAgVHZJbnB1dERldmljZUluZm8gZGV2aWNlSW5mbzsKK307CisKK3N0cnVjdCBUdlN0cmVhbUNvbmZpZyB7CisgICAgaW50MzJfdCBzdHJlYW1JZDsKKyAgICB1aW50MzJfdCBtYXhWaWRlb1dpZHRoOyAgLy8gTWF4IHdpZHRoIG9mIHRoZSBzdHJlYW0uCisgICAgdWludDMyX3QgbWF4VmlkZW9IZWlnaHQ7IC8vIE1heCBoZWlnaHQgb2YgdGhlIHN0cmVhbS4KK307CmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL3R2L2lucHV0LzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4NjI0MjkKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM3IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsVHZJbnB1dFYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxUdklucHV0VjFfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQorCmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVHZJbnB1dFYxXzBUYXJnZXRUZXN0LmNwcCBiL3R2L2lucHV0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxUdklucHV0VjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkNTExMGUKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVHZJbnB1dFYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDM2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAidHZfaW5wdXRfaGlkbF9oYWxfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0lUdklucHV0Q2FsbGJhY2suaD4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPHV0aWxzL0tleWVkVmVjdG9yLmg+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8dmVjdG9yPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OklUdklucHV0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpJVHZJbnB1dENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OlR2SW5wdXRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpUdklucHV0RGV2aWNlSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6VHZJbnB1dEV2ZW50VHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6VHZJbnB1dEV2ZW50OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpUdlN0cmVhbUNvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNkZWZpbmUgV0FJVF9GT1JfRVZFTlRfVElNRU9VVCA1CisjZGVmaW5lIERFRkFVTFRfSUQgSU5UMzJfTUlOCisKKy8qIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIFRWIElucHV0IEhJREwgSEFMLiAqLworY2xhc3MgVHZJbnB1dEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICB0dl9pbnB1dF8gPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJVHZJbnB1dD4oKTsKKyAgICBBU1NFUlRfTkUodHZfaW5wdXRfLCBudWxscHRyKTsKKyAgICB0dl9pbnB1dF9jYWxsYmFja18gPSBuZXcgVHZJbnB1dENhbGxiYWNrKCp0aGlzKTsKKyAgICBBU1NFUlRfTkUodHZfaW5wdXRfY2FsbGJhY2tfLCBudWxscHRyKTsKKyAgICB0dl9pbnB1dF8tPnNldENhbGxiYWNrKHR2X2lucHV0X2NhbGxiYWNrXyk7CisgICAgLy8gQWxsIGV2ZW50cyByZWNlaXZlZCB3aXRoaW4gdGhlIHRpbWVvdXQgc2hvdWxkIGJlIGhhbmRsZWQuCisgICAgc2xlZXAoV0FJVF9GT1JfRVZFTlRfVElNRU9VVCk7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIC8qIENhbGxlZCB3aGVuIGEgREVWSUNFX0FWQUlMQUJMRSBldmVudCBpcyByZWNlaXZlZC4gKi8KKyAgdm9pZCBvbkRldmljZUF2YWlsYWJsZShjb25zdCBUdklucHV0RGV2aWNlSW5mbyYgZGV2aWNlSW5mbykgeworICAgIGRldmljZV9pbmZvXy5hZGQoZGV2aWNlSW5mby5kZXZpY2VJZCwgZGV2aWNlSW5mbyk7CisgIH0KKworICAvKiBDYWxsZWQgd2hlbiBhIERFVklDRV9VTkFWQUlMQUJMRSBldmVudCBpcyByZWNlaXZlZC4gKi8KKyAgdm9pZCBvbkRldmljZVVuYXZhaWxhYmxlKGludDMyX3QgZGV2aWNlSWQpIHsKKyAgICBkZXZpY2VfaW5mb18ucmVtb3ZlSXRlbShkZXZpY2VJZCk7CisgIH0KKworICAvKiBDYWxsZWQgd2hlbiBhIERFVklDRV9DT05GSUdVUkFUSU9OU19DSEFOR0VEIGV2ZW50IGlzIHJlY2VpdmVkLiAqLworICBSZXN1bHQgb25TdHJlYW1Db25maWd1cmF0aW9uc0NoYW5nZWQoaW50MzJfdCBkZXZpY2VJZCkgeworICAgIHJldHVybiB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucyhkZXZpY2VJZCk7CisgIH0KKworICAvKiBHZXRzIGFuZCB1cGRhdGVzIHRoZSBzdHJlYW0gY29uZmlndXJhdGlvbnMgZm9yIGEgZGV2aWNlLiAqLworICBSZXN1bHQgdXBkYXRlU3RyZWFtQ29uZmlndXJhdGlvbnMoaW50MzJfdCBkZXZpY2VJZCkgeworICAgIHN0cmVhbV9jb25maWdfLnJlbW92ZUl0ZW0oZGV2aWNlSWQpOworICAgIFJlc3VsdCByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgICAgaGlkbF92ZWM8VHZTdHJlYW1Db25maWc+IGxpc3Q7CisgICAgdHZfaW5wdXRfLT5nZXRTdHJlYW1Db25maWd1cmF0aW9ucyhkZXZpY2VJZCwKKyAgICAgICAgWyZyZXN1bHQsICZsaXN0XShSZXN1bHQgcmVzLCBoaWRsX3ZlYzxUdlN0cmVhbUNvbmZpZz4gY29uZmlncykgeworICAgICAgICAgIHJlc3VsdCA9IHJlczsKKyAgICAgICAgICBpZiAocmVzID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgIGxpc3QgPSBjb25maWdzOworICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICBzdHJlYW1fY29uZmlnXy5hZGQoZGV2aWNlSWQsIGxpc3QpOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworICB9CisKKyAgLyogR2V0cyBhbmQgdXBkYXRlcyB0aGUgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGZvciBhbGwgZXhpc3RpbmcgZGV2aWNlcy4gKi8KKyAgdm9pZCB1cGRhdGVBbGxTdHJlYW1Db25maWd1cmF0aW9ucygpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRldmljZV9pbmZvXy5zaXplKCk7IGkrKykgeworICAgICAgaW50MzJfdCBkZXZpY2VfaWQgPSBkZXZpY2VfaW5mb18ua2V5QXQoaSk7CisgICAgICB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucyhkZXZpY2VfaWQpOworICAgIH0KKyAgfQorCisgIC8qIFJldHVybnMgYSBsaXN0IG9mIGluZGljZXMgb2Ygc3RyZWFtX2NvbmZpZ18gd2hvc2UgY29ycmVzcG9uZGluZyB2YWx1ZXMgYXJlIG5vdCBlbXB0eS4gKi8KKyAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBnZXRDb25maWdJbmRpY2VzKCkgeworICAgIHN0ZDo6dmVjdG9yPHNpemVfdD4gaW5kaWNlczsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0cmVhbV9jb25maWdfLnNpemUoKTsgaSsrKSB7CisgICAgICBpZiAoc3RyZWFtX2NvbmZpZ18udmFsdWVBdChpKS5zaXplKCkgIT0gMCkgeworICAgICAgICBpbmRpY2VzLnB1c2hfYmFjayhpKTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGluZGljZXM7CisgIH0KKworICAvKgorICAgKiBSZXR1cm5zIERFRkFVTFRfSUQgaWYgdGhlcmUgaXMgbm8gbWlzc2luZyBpbnRlZ2VyIGluIHRoZSByYW5nZSBbMCwgdGhlIHNpemUgb2YgbnVtcykuCisgICAqIE90aGVyd2lzZSwgcmV0dXJucyB0aGUgc21hbGxlc3QgbWlzc2luZyBub24tbmVnYXRpdmUgaW50ZWdlci4KKyAgICovCisgIGludDMyX3QgZ2V0TnVtTm90SW4oc3RkOjp2ZWN0b3I8aW50MzJfdD4mIG51bXMpIHsKKyAgICBpbnQzMl90IHJlc3VsdCA9IERFRkFVTFRfSUQ7CisgICAgaW50MzJfdCBzaXplID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4obnVtcy5zaXplKCkpOworICAgIGZvciAoaW50MzJfdCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgLy8gUHV0IGV2ZXJ5IGVsZW1lbnQgdG8gaXRzIHRhcmdldCBwb3NpdGlvbiwgaWYgcG9zc2libGUuCisgICAgICBpbnQzMl90IHRhcmdldF9wb3MgPSBudW1zW2ldOworICAgICAgd2hpbGUgKHRhcmdldF9wb3MgPj0gMCAmJiB0YXJnZXRfcG9zIDwgc2l6ZSAmJiBpICE9IHRhcmdldF9wb3MgJiYgbnVtc1tpXSAhPSBudW1zW3RhcmdldF9wb3NdKSB7CisgICAgICAgIHN0ZDo6c3dhcChudW1zW2ldLCBudW1zW3RhcmdldF9wb3NdKTsKKyAgICAgICAgdGFyZ2V0X3BvcyA9IG51bXNbaV07CisgICAgICB9CisgICAgfQorCisgICAgZm9yIChpbnQzMl90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICBpZiAobnVtc1tpXSAhPSBpKSB7CisgICAgICAgIHJldHVybiBpOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworICB9CisKKyAgLyogQSBzaW1wbGUgdGVzdCBpbXBsZW1lbnRhdGlvbiBvZiBUdklucHV0Q2FsbGJhY2sgZm9yIFRWIElucHV0IEV2ZW50cy4gKi8KKyAgY2xhc3MgVHZJbnB1dENhbGxiYWNrIDogcHVibGljIElUdklucHV0Q2FsbGJhY2sgeworICAgIHB1YmxpYzoKKyAgICAgVHZJbnB1dENhbGxiYWNrKFR2SW5wdXRIaWRsVGVzdCYgcGFyZW50KSA6IHBhcmVudF8ocGFyZW50KXt9OworCisgICAgIHZpcnR1YWwgflR2SW5wdXRDYWxsYmFjaygpID0gZGVmYXVsdDsKKworICAgICAvKgorICAgICAgKiBOb3RpZmllcyB0aGUgY2xpZW50IHRoYXQgYW4gZXZlbnQgaGFzIG9jY3VyZWQuIEZvciBwb3NzaWJsZSBldmVudCB0eXBlcywKKyAgICAgICogY2hlY2sgVHZJbnB1dEV2ZW50VHlwZS4KKyDCoMKgwqDCoCAqLworICAgICBSZXR1cm48dm9pZD4gbm90aWZ5KGNvbnN0IFR2SW5wdXRFdmVudCYgZXZlbnQpIG92ZXJyaWRlIHsKKyAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2socGFyZW50Xy5tdXRleF8pOworICAgICAgIHN3aXRjaChldmVudC50eXBlKSB7CisgICAgICAgICBjYXNlIFR2SW5wdXRFdmVudFR5cGU6OkRFVklDRV9BVkFJTEFCTEU6CisgICAgICAgICAgIHBhcmVudF8ub25EZXZpY2VBdmFpbGFibGUoZXZlbnQuZGV2aWNlSW5mbyk7CisgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBUdklucHV0RXZlbnRUeXBlOjpERVZJQ0VfVU5BVkFJTEFCTEU6CisgICAgICAgICAgIHBhcmVudF8ub25EZXZpY2VVbmF2YWlsYWJsZShldmVudC5kZXZpY2VJbmZvLmRldmljZUlkKTsKKyAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFR2SW5wdXRFdmVudFR5cGU6OlNUUkVBTV9DT05GSUdVUkFUSU9OU19DSEFOR0VEOgorICAgICAgICAgICBwYXJlbnRfLm9uU3RyZWFtQ29uZmlndXJhdGlvbnNDaGFuZ2VkKGV2ZW50LmRldmljZUluZm8uZGV2aWNlSWQpOworICAgICAgICAgICBicmVhazsKKyAgICAgICB9CisgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgfTsKKyAgICBwcml2YXRlOgorICAgICAvKiBUaGUgdGVzdCBjb250YWlucyB0aGlzIGNhbGxiYWNrIGluc3RhbmNlLiAqLworICAgICBUdklucHV0SGlkbFRlc3QmIHBhcmVudF87CisgIH07CisKKyAgLyogVGhlIFR2SW5wdXQgdXNlZCBmb3IgdGhlIHRlc3QuICovCisgIHNwPElUdklucHV0PiB0dl9pbnB1dF87CisKKyAgLyogVGhlIFR2SW5wdXRDYWxsYmFjayB1c2VkIGZvciB0aGUgdGVzdC4gKi8KKyAgc3A8SVR2SW5wdXRDYWxsYmFjaz4gdHZfaW5wdXRfY2FsbGJhY2tfOworCisgIC8qCisgICAqIEEgS2V5ZWRWZWN0b3Igc3RvcmVzIGRldmljZSBpbmZvcm1hdGlvbiBvZiBldmVyeSBhdmFpbGFibGUgZGV2aWNlLgorICAgKiBBIGtleSBpcyBhIGRldmljZSBJRCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMgdGhlIFR2SW5wdXREZXZpY2VJbmZvLgorICAgKi8KKyAgYW5kcm9pZDo6S2V5ZWRWZWN0b3I8aW50MzJfdCwgVHZJbnB1dERldmljZUluZm8+IGRldmljZV9pbmZvXzsKKworICAvKgorICAgKiBBIEtleWVkVmVjdG9yIHN0b3JlcyBhIGxpc3Qgb2Ygc3RyZWFtIGNvbmZpZ3VyYXRpb25zIG9mIGV2ZXJ5IGF2YWlsYWJsZSBkZXZpY2UuCisgICAqIEEga2V5IGlzIGEgZGV2aWNlIElEIGFuZCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcyB0aGUgc3RyZWFtIGNvbmZpZ3VyYXRpb24gbGlzdC4KKyAgICovCisgIGFuZHJvaWQ6OktleWVkVmVjdG9yPGludDMyX3QsIGhpZGxfdmVjPFR2U3RyZWFtQ29uZmlnPj4gc3RyZWFtX2NvbmZpZ187CisKKyAgLyogVGhlIG11dGV4IGNvbnRyb2xzIHRoZSBhY2Nlc3Mgb2Ygc2hhcmVkIGRhdGEuICovCisgIHN0ZDo6bXV0ZXggbXV0ZXhfOworfTsKKworCisvKiBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwLiAqLworY2xhc3MgVHZJbnB1dEhpZGxFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9CisKKyBwcml2YXRlOgorfTsKKworLyoKKyAqIEdldFN0cmVhbUNvbmZpZ1Rlc3Q6CisgKiBDYWxscyB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucygpIGZvciBlYWNoIGV4aXN0aW5nIGRldmljZQorICogQ2hlY2tzIHJldHVybmVkIHJlc3VsdHMKKyAqLworVEVTVF9GKFR2SW5wdXRIaWRsVGVzdCwgR2V0U3RyZWFtQ29uZmlnVGVzdCkgeworICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXV0ZXhfKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkZXZpY2VfaW5mb18uc2l6ZSgpOyBpKyspIHsKKyAgICBpbnQzMl90IGRldmljZV9pZCA9IGRldmljZV9pbmZvXy5rZXlBdChpKTsKKyAgICBSZXN1bHQgcmVzdWx0ID0gdXBkYXRlU3RyZWFtQ29uZmlndXJhdGlvbnMoZGV2aWNlX2lkKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmVzdWx0KTsKKyAgfQorfQorCisvKgorICogT3BlbkFuZENsb3NlU3RyZWFtVGVzdDoKKyAqIENhbGxzIG9wZW5TdHJlYW0oKSBhbmQgdGhlbiBjbG9zZVN0cmVhbSgpIGZvciBlYWNoIGV4aXN0aW5nIHN0cmVhbQorICogQ2hlY2tzIHJldHVybmVkIHJlc3VsdHMKKyAqLworVEVTVF9GKFR2SW5wdXRIaWRsVGVzdCwgT3BlbkFuZENsb3NlU3RyZWFtVGVzdCkgeworICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXV0ZXhfKTsKKyAgdXBkYXRlQWxsU3RyZWFtQ29uZmlndXJhdGlvbnMoKTsKKyAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBzdHJlYW1fY29uZmlnXy5zaXplKCk7IGorKykgeworICAgIGludDMyX3QgZGV2aWNlX2lkID0gc3RyZWFtX2NvbmZpZ18ua2V5QXQoaik7CisgICAgaGlkbF92ZWM8VHZTdHJlYW1Db25maWc+IGNvbmZpZyA9IHN0cmVhbV9jb25maWdfLnZhbHVlQXQoaik7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb25maWcuc2l6ZSgpOyBpKyspIHsKKyAgICAgIFJlc3VsdCByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgICAgICBpbnQzMl90IHN0cmVhbV9pZCA9IGNvbmZpZ1tpXS5zdHJlYW1JZDsKKyAgICAgIHR2X2lucHV0Xy0+b3BlblN0cmVhbShkZXZpY2VfaWQsIHN0cmVhbV9pZCwKKyAgICAgICAgICBbJnJlc3VsdF0oUmVzdWx0IHJlcywgY29uc3QgbmF0aXZlX2hhbmRsZV90KikgeworICAgICAgICAgICAgICByZXN1bHQgPSByZXM7CisgICAgICAgICAgfSk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmVzdWx0KTsKKworICAgICAgcmVzdWx0ID0gUmVzdWx0OjpVTktOT1dOOworICAgICAgcmVzdWx0ID0gdHZfaW5wdXRfLT5jbG9zZVN0cmVhbShkZXZpY2VfaWQsIHN0cmVhbV9pZCk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmVzdWx0KTsKKyAgICB9CisgIH0KK30KKworLyoKKyAqIEludmFsaWREZXZpY2VJZFRlc3Q6CisgKiBDYWxscyB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucygpLCBvcGVuU3RyZWFtKCksIGFuZCBjbG9zZVN0cmVhbSgpCisgKiBmb3IgYSBub24tZXhpc3RpbmcgZGV2aWNlCisgKiBDaGVja3MgcmV0dXJuZWQgcmVzdWx0cworICogVGhlIHJlc3VsdHMgc2hvdWxkIGJlIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMKKyAqLworVEVTVF9GKFR2SW5wdXRIaWRsVGVzdCwgSW52YWxpZERldmljZUlkVGVzdCkgeworICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXV0ZXhfKTsKKworICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBkZXZpY2VfaWRzOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRldmljZV9pbmZvXy5zaXplKCk7IGkrKykgeworICAgIGRldmljZV9pZHMucHVzaF9iYWNrKGRldmljZV9pbmZvXy5rZXlBdChpKSk7CisgIH0KKyAgLy8gR2V0IGEgbm9uLWV4aXN0aW5nIGRldmljZSBJRC4KKyAgaW50MzJfdCBpZCA9IGdldE51bU5vdEluKGRldmljZV9pZHMpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgdXBkYXRlU3RyZWFtQ29uZmlndXJhdGlvbnMoaWQpKTsKKworICBSZXN1bHQgcmVzdWx0ID0gUmVzdWx0OjpVTktOT1dOOworICBpbnQzMl90IHN0cmVhbV9pZCA9IDA7CisgIHR2X2lucHV0Xy0+b3BlblN0cmVhbShpZCwgc3RyZWFtX2lkLAorICAgICAgWyZyZXN1bHRdKFJlc3VsdCByZXMsIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCopIHsKKyAgICAgICAgICByZXN1bHQgPSByZXM7CisgICAgICB9KTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHJlc3VsdCk7CisKKyAgcmVzdWx0ID0gUmVzdWx0OjpVTktOT1dOOworICByZXN1bHQgPSB0dl9pbnB1dF8tPmNsb3NlU3RyZWFtKGlkLCBzdHJlYW1faWQpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgcmVzdWx0KTsKK30KKworLyoKKyAqIEludmFsaWRTdHJlYW1JZFRlc3Q6CisgKiBDYWxscyBvcGVuU3RyZWFtKCksIGFuZCBjbG9zZVN0cmVhbSgpIGZvciBhIG5vbi1leGlzdGluZyBzdHJlYW0KKyAqIENoZWNrcyByZXR1cm5lZCByZXN1bHRzCisgKiBUaGUgcmVzdWx0cyBzaG91bGQgYmUgUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUworICovCitURVNUX0YoVHZJbnB1dEhpZGxUZXN0LCBJbnZhbGlkU3RyZWFtSWRUZXN0KSB7CisgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtdXRleF8pOworICBpZiAoZGV2aWNlX2luZm9fLmlzRW1wdHkoKSkgeworICAgIHJldHVybjsKKyAgfQorICB1cGRhdGVBbGxTdHJlYW1Db25maWd1cmF0aW9ucygpOworCisgIGludDMyX3QgZGV2aWNlX2lkID0gZGV2aWNlX2luZm9fLmtleUF0KDApOworICAvLyBHZXQgYSBub24tZXhpc3Rpbmcgc3RyZWFtIElELgorICBpbnQzMl90IGlkID0gREVGQVVMVF9JRDsKKyAgaWYgKHN0cmVhbV9jb25maWdfLmluZGV4T2ZLZXkoZGV2aWNlX2lkKSA+PSAwKSB7CisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gc3RyZWFtX2lkczsKKyAgICBoaWRsX3ZlYzxUdlN0cmVhbUNvbmZpZz4gY29uZmlnID0gc3RyZWFtX2NvbmZpZ18udmFsdWVGb3IoZGV2aWNlX2lkKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbmZpZy5zaXplKCk7IGkrKykgeworICAgICAgc3RyZWFtX2lkcy5wdXNoX2JhY2soY29uZmlnW2ldLnN0cmVhbUlkKTsKKyAgICB9CisgICAgaWQgPSBnZXROdW1Ob3RJbihzdHJlYW1faWRzKTsKKyAgfQorCisgIFJlc3VsdCByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgIHR2X2lucHV0Xy0+b3BlblN0cmVhbShkZXZpY2VfaWQsIGlkLAorICAgICAgWyZyZXN1bHRdKFJlc3VsdCByZXMsIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCopIHsKKyAgICAgICAgICByZXN1bHQgPSByZXM7CisgICAgICB9KTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHJlc3VsdCk7CisKKyAgcmVzdWx0ID0gUmVzdWx0OjpVTktOT1dOOworICByZXN1bHQgPSB0dl9pbnB1dF8tPmNsb3NlU3RyZWFtKGRldmljZV9pZCwgaWQpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgcmVzdWx0KTsKK30KKworLyoKKyAqIE9wZW5Bbk9wZW5lZFN0cmVhbXNUZXN0OgorICogQ2FsbHMgb3BlblN0cmVhbSgpIHR3aWNlIGZvciBhIHN0cmVhbSAoaWYgYW55KQorICogQ2hlY2tzIHJldHVybmVkIHJlc3VsdHMKKyAqIFRoZSByZXN1bHQgb2YgdGhlIHNlY29uZCBjYWxsIHNob3VsZCBiZSBSZXN1bHQ6OklOVkFMSURfU1RBVEUKKyAqLworVEVTVF9GKFR2SW5wdXRIaWRsVGVzdCwgT3BlbkFuT3BlbmVkU3RyZWFtc1Rlc3QpIHsKKyAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG11dGV4Xyk7CisgIHVwZGF0ZUFsbFN0cmVhbUNvbmZpZ3VyYXRpb25zKCk7CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4gaW5kaWNlcyA9IGdldENvbmZpZ0luZGljZXMoKTsKKyAgaWYgKGluZGljZXMuZW1wdHkoKSkgeworICAgIHJldHVybjsKKyAgfQorICBpbnQzMl90IGRldmljZV9pZCA9IHN0cmVhbV9jb25maWdfLmtleUF0KGluZGljZXNbMF0pOworICBpbnQzMl90IHN0cmVhbV9pZCA9IHN0cmVhbV9jb25maWdfLnZhbHVlQXQoaW5kaWNlc1swXSlbMF0uc3RyZWFtSWQ7CisKKyAgUmVzdWx0IHJlc3VsdCA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgdHZfaW5wdXRfLT5vcGVuU3RyZWFtKGRldmljZV9pZCwgc3RyZWFtX2lkLAorICAgICAgWyZyZXN1bHRdKFJlc3VsdCByZXMsIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCopIHsKKyAgICAgICAgICByZXN1bHQgPSByZXM7CisgICAgICB9KTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJlc3VsdCk7CisKKyAgdHZfaW5wdXRfLT5vcGVuU3RyZWFtKGRldmljZV9pZCwgc3RyZWFtX2lkLAorICAgICAgWyZyZXN1bHRdKFJlc3VsdCByZXMsIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCopIHsKKyAgICAgICAgICByZXN1bHQgPSByZXM7CisgICAgICB9KTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6SU5WQUxJRF9TVEFURSwgcmVzdWx0KTsKK30KKworLyoKKyAqIENsb3NlU3RyZWFtQmVmb3JlT3BlblRlc3Q6CisgKiBDYWxscyBjbG9zZVN0cmVhbSgpIHdpdGhvdXQgY2FsbGluZyBvcGVuU3RyZWFtKCkgZm9yIGEgc3RyZWFtIChpZiBhbnkpCisgKiBDaGVja3MgdGhlIHJldHVybmVkIHJlc3VsdAorICogVGhlIHJlc3VsdCBzaG91bGQgYmUgUmVzdWx0OjpJTlZBTElEX1NUQVRFCisgKi8KK1RFU1RfRihUdklucHV0SGlkbFRlc3QsIENsb3NlU3RyZWFtQmVmb3JlT3BlblRlc3QpIHsKKyAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG11dGV4Xyk7CisgIHVwZGF0ZUFsbFN0cmVhbUNvbmZpZ3VyYXRpb25zKCk7CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4gaW5kaWNlcyA9IGdldENvbmZpZ0luZGljZXMoKTsKKyAgaWYgKGluZGljZXMuZW1wdHkoKSkgeworICAgIHJldHVybjsKKyAgfQorICBpbnQzMl90IGRldmljZV9pZCA9IHN0cmVhbV9jb25maWdfLmtleUF0KGluZGljZXNbMF0pOworICBpbnQzMl90IHN0cmVhbV9pZCA9IHN0cmVhbV9jb25maWdfLnZhbHVlQXQoaW5kaWNlc1swXSlbMF0uc3RyZWFtSWQ7CisgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfU1RBVEUsIHR2X2lucHV0Xy0+Y2xvc2VTdHJlYW0oZGV2aWNlX2lkLCBzdHJlYW1faWQpKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBUdklucHV0SGlkbEVudmlyb25tZW50KTsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KKwpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvQW5kcm9pZC5tayBiL3R2L2lucHV0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3VwZGF0ZS1iYXNlLWZpbGVzLnNoIGIvdXBkYXRlLWJhc2UtZmlsZXMuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWViNmI1MQotLS0gL2Rldi9udWxsCisrKyBiL3VwZGF0ZS1iYXNlLWZpbGVzLnNoCkBAIC0wLDAgKzEsNDMgQEAKKyMhL2Jpbi9iYXNoCisKK2lmIFsgISAtZCBoYXJkd2FyZS9pbnRlcmZhY2VzIF0gOyB0aGVuCisgIGVjaG8gIldoZXJlIGlzIGhhcmR3YXJlL2ludGVyZmFjZXM/IjsKKyAgZXhpdCAxOworZmkKKworaWYgWyAhIC1kIHN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBdIDsgdGhlbgorICBlY2hvICJXaGVyZSBpcyBzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQ/IjsKKyAgZXhpdCAxOworZmkKKworZWNobyAiV0FSTklORzogVGhpcyBzY3JpcHQgY2hhbmdlcyBmaWxlcyBpbiBtYW55IHBsYWNlcy4iCisKKyMgVGhlc2UgZmlsZXMgb25seSBleGlzdCB0byBmYWNpbGl0YXRlIHRoZSBlYXN5IHRyYW5zaXRpb24gdG8gaGlkbC4KKworb3B0aW9ucz0iLUxleHBvcnQtaGVhZGVyIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQiCisKKyMgaGFyZHdhcmUvbGliaGFyZHdhcmUKK2hpZGwtZ2VuICRvcHRpb25zIFwKKyAgICAgICAgIC1vIGhhcmR3YXJlL2xpYmhhcmR3YXJlL2luY2x1ZGUvaGFyZHdhcmUvc2Vuc29ycy1iYXNlLmggXAorICAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMAoraGlkbC1nZW4gJG9wdGlvbnMgXAorICAgICAgICAgLW8gaGFyZHdhcmUvbGliaGFyZHdhcmUvaW5jbHVkZS9oYXJkd2FyZS9uZmMtYmFzZS5oIFwKKyAgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubmZjQDEuMAoraGlkbC1nZW4gJG9wdGlvbnMgXAorICAgICAgICAgLW8gaGFyZHdhcmUvbGliaGFyZHdhcmUvaW5jbHVkZS9oYXJkd2FyZS9nbnNzLWJhc2UuaCBcCisgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wCisKKyMgc3lzdGVtL2NvcmUKK2hpZGwtZ2VuICRvcHRpb25zIFwKKyAgICAgICAgIC1vIHN5c3RlbS9jb3JlL2luY2x1ZGUvc3lzdGVtL2dyYXBoaWNzLWJhc2UuaCBcCisgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAKKworIyBzeXN0ZW0vbWVkaWEKK2hpZGwtZ2VuICRvcHRpb25zIFwKKyAgICAgICAgIC1vIHN5c3RlbS9tZWRpYS9hdWRpby9pbmNsdWRlL3N5c3RlbS9hdWRpby1iYXNlLmggXAorICAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wCitoaWRsLWdlbiAkb3B0aW9ucyBcCisgICAgICAgICAtbyBzeXN0ZW0vbWVkaWEvYXVkaW8vaW5jbHVkZS9zeXN0ZW0vYXVkaW9fZWZmZWN0LWJhc2UuaCBcCisgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjAKZGlmZiAtLWdpdCBhL3VzYi8xLjAvQW5kcm9pZC5icCBiL3VzYi8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDNmNzViCi0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzAgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklVc2IuaGFsIiwKKyAgICAgICAgIklVc2JDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvVXNiQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvVXNiQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvSVVzYi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9JSHdVc2IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvQm5Id1VzYi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9CcEh3VXNiLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0JzVXNiLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0lVc2JDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9JSHdVc2JDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9Cbkh3VXNiQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvQnBId1VzYkNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0JzVXNiQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3VzYi8xLjAvQW5kcm9pZC5tayBiL3VzYi8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmY2OTM1Ci0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNDI3IEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnVzYi1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvcnREYXRhUm9sZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydERhdGFSb2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0RGF0YVJvbGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvcnRNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0TW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvcnRQb3dlclJvbGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRQb3dlclJvbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnRQb3dlclJvbGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvcnRSb2xlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0Um9sZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydFJvbGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvcnRSb2xlVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydFJvbGVUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0Um9sZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvcnRTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnRTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVXNiLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9JVXNiLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVXNiLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVVzYkNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjpJVXNiCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVXNiLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVXNiQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL0lVc2JDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVVzYkNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjpJVXNiQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lVc2JDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudXNiLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydERhdGFSb2xlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0RGF0YVJvbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnREYXRhUm9sZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0TW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFBvd2VyUm9sZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydFBvd2VyUm9sZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydFBvd2VyUm9sZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFJvbGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRSb2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0Um9sZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFJvbGVUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0Um9sZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnRSb2xlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydFN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydFN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElVc2IuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL0lVc2IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lVc2IuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lVc2JDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OklVc2IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lVc2IuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElVc2JDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvSVVzYkNhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OklVc2JDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVVzYkNhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudXNiLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lVc2IuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVVzYkNhbGxiYWNrLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+IHRoaXMtbGlicmFyeSAtPiBmcmFtZXdvcmsuamFyCitMT0NBTF9OT19TVEFOREFSRF9MSUJSQVJJRVMgOj0gdHJ1ZQorTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gY29yZS1vagorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL3VzYi8xLjAvSVVzYi5oYWwgYi91c2IvMS4wL0lVc2IuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0NjQzNzkKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL0lVc2IuaGFsCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDsKKworaW1wb3J0IElVc2JDYWxsYmFjazsKKworaW50ZXJmYWNlIElVc2IgeworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjaGFuZ2UgdGhlIHBvcnQgcm9sZSBvZiBhIHNwZWNpZmljIHBvcnQuCisgICAgICogRm9yIGV4YW1wbGUsIHdoZW4gUERfU1dBUCBvciBQUl9TV0FQIGlzIHN1cHBvcnRlZC4KKyAgICAgKiBUaGlzIGlzIGZ1bmN0aW9uIGlzIGFzeW5jaHJvbm91cy4gVGhlIHN0YXR1cyBvZiB0aGUgcm9sZSBzd2l0Y2gKKyAgICAgKiB3aWxsIGJlIGluZm9ybWVkIHRocm91Z2ggSVVzYkNhbGxiYWNrIG9iamVjdCdzIG5vdGlmeVBvcnRTdGF0dXNDaGFuZ2UKKyAgICAgKiBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydE5hbWUgbmFtZSBvZiB0aGUgcG9ydCBmb3Igd2hpY2ggdGhlIHJvbGUgaGFzIHRvIGJlIGNoYW5nZWQKKyAgICAgKiBAcGFyYW0gcm9sZSB0aGUgbmV3IHBvcnQgcm9sZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgc3dpdGNoUm9sZShzdHJpbmcgcG9ydE5hbWUsIFBvcnRSb2xlIHJvbGUpOworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHJlZ2lzdGVyIGEgY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggaXMKKyAgICAgKiBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuZXZlciB0aGVyZSBpcyBhIGNoYW5nZSBpbiB0aGUgcG9ydCBzdGF0ZS4KKyAgICAgKiBpLmUuIERBVEFfUk9MRSwgUE9XRVJfUk9MRSBvciBNT0RFLgorICAgICAqCisgICAgICogQWxzbyB0aGUgc2FtZSBjYWxsYmFjayBvYmplY3Qgd291bGQgYmUgY2FsbGVkIHRvIGluZm9ybSB0aGUgY2FsbGVyCisgICAgICogb2YgdGhlIHJvbGVTd2l0Y2ggc3RhdHVzLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIElVc2JDYWxsYmFjayBvYmplY3QgdXNlZCB0byBjb252ZXkgc3RhdHVzIHRvIHRoZQorICAgICAqIHVzZXJzcGFjZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgc2V0Q2FsbGJhY2soSVVzYkNhbGxiYWNrIGNhbGxiYWNrKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb25zIGlzIHVzZWQgdG8gcmVxdWVzdCB0aGUgaGFsIGZvciB0aGUgY3VycmVudCBzdGF0dXMKKyAgICAgKiBzdGF0dXMgb2YgdGhlIFR5cGUtQyBwb3J0cy4gVGhpcyBtZXRob2QgaXMgYXN5bmMvb25ld2F5LiBUaGUgcmVzdWx0IG9mIHRoZQorICAgICAqIHF1ZXJ5IHdvdWxkIGJlIHNlbnQgdGhyb3VnaCB0aGUgSVVzYkNhbGxiYWNrIG9iamVjdCdzIG5vdGlmeVJvbGVTd2l0Y2hTdGF0dXMKKyAgICAgKiB0byB0aGUgY2FsbGVyLiBUaGlzIGFwaSB3b3VsZCB3b3VsZCBsZXQgdGhlIGNhbGxlciBrbm93IG9mIHRoZSBudW1iZXIKKyAgICAgKiBvZiB0eXBlLWMgcG9ydHMgdGhhdCBhcmUgcHJlc2VudCBhbmQgdGhlaXIgY29ubmVjdGlvbiBzdGF0dXMgdGhyb3VnaCB0aGUKKyAgICAgKiBQb3J0U3RhdHVzIHR5cGUuCisgICAgICovCisgICAgb25ld2F5IHF1ZXJ5UG9ydFN0YXR1cygpOworfTsKKwpkaWZmIC0tZ2l0IGEvdXNiLzEuMC9JVXNiQ2FsbGJhY2suaGFsIGIvdXNiLzEuMC9JVXNiQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkOTFjYmYKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL0lVc2JDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOworCisvKioKKyAqIENhbGxiYWNrIG9iamVjdCB1c2VkIGZvciBhbGwgdGhlIElVc2IgYXN5bmMgbWV0aG9kcyB3aGljaCBleHBlY3RzIGEgcmVzdWx0LgorICogQ2FsbGVyIGlzIGV4cGVjdGVkIHRvIHJlZ2lzdGVyIHRoZSBjYWxsYmFjayBvYmplY3QgdXNpbmcgc2V0Q2FsbGJhY2sgbWV0aG9kCisgKiB0byByZWNlaXZlIHVwZGF0ZXMgb24gdGhlIFBvcnRTdGF0dXMuCisgKi8KK2ludGVyZmFjZSBJVXNiQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIFVzZWQgdG8gY29udmV5IHRoZSBjdXJyZW50IHBvcnQgc3RhdHVzIHRvIHRoZSBjYWxsZXIuCisgICAgICogQ2FsbGVkIGVpdGhlciB3aGVuIFBvcnRTdGF0ZSBjaGFuZ2VzIGR1ZSB0byB0aGUgcG9ydCBwYXJ0bmVyIChvcikKKyAgICAgKiB3aGVuIGNhbGxlciByZXF1ZXN0ZWQgZm9yIHRoZSBQb3J0U3RhdHVzIHVwZGF0ZSB0aHJvdWdoIHF1ZXJ5UG9ydFN0YXR1cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjdXJyZW50UG9ydFN0YXR1cyB2ZWN0b3Igb2JqZWN0IG9mIGN1cnJlbnQgc3RhdHVzIG9mIGFsbCB0aGUKKyAgICAgKiB0eXBlQyBwb3J0cyBpbiB0aGUgZGV2aWNlLgorICAgICAqIEBwYXJhbSByZXR2YWwgU1VDQ0VTUyB3aGVuIHF1ZXJ5IHdhcyBkb25lIHN1Y2Nlc3NmdWxseS4KKyAgICAgKiBFUlJPUiBvdGhlcndpc2UuCisgICAgICovCisgICAgb25ld2F5IG5vdGlmeVBvcnRTdGF0dXNDaGFuZ2UodmVjPFBvcnRTdGF0dXM+IGN1cnJlbnRQb3J0U3RhdHVzLCBTdGF0dXMgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFVzZWQgdG8gbm90aWZ5IHRoZSByZXN1bHQgb2YgdGhlIHN3aXRjaFJvbGUgY2FsbCB0byB0aGUgY2FsbGVyLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnROYW1lIG5hbWUgb2YgdGhlIHBvcnQgZm9yIHdoaWNoIHRoZSByb2xlc3dhcCBpcyByZXF1ZXN0ZWQuCisgICAgICogQHBhcmFtIG5ld1JvbGUgdGhlIG5ldyByb2xlIHJlcXVlc3RlZCBieSB0aGUgY2FsbGVyLgorICAgICAqIEBwYXJhbSByZXR2YWwgU1VDQ0VTUyBpZiB0aGUgcm9sZSBzd2l0Y2ggc3VjY2VlZGVkLiBGQUlMVVJFIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgbm90aWZ5Um9sZVN3aXRjaFN0YXR1cyhzdHJpbmcgcG9ydE5hbWUsIFBvcnRSb2xlIG5ld1JvbGUsIFN0YXR1cyByZXR2YWwpOworfTsKZGlmZiAtLWdpdCBhL3VzYi8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvdXNiLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZkNTNjZgotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjEgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBzZXJ2aWNlLmNwcCBcCisgICAgVXNiLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS91c2IvMS4wL2RlZmF1bHQvVXNiLmNwcCBiL3VzYi8xLjAvZGVmYXVsdC9Vc2IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlYjg4NDIKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL2RlZmF1bHQvVXNiLmNwcApAQCAtMCwwICsxLDQ3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8ZGlyZW50Lmg+CisjaW5jbHVkZSA8aW9zdHJlYW0+CisjaW5jbHVkZSA8ZnN0cmVhbT4KKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgPGN1dGlscy91ZXZlbnQuaD4KKyNpbmNsdWRlIDxzeXMvZXBvbGwuaD4KKyNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KKyNpbmNsdWRlIDx1dGlscy9TdHJvbmdQb2ludGVyLmg+CisKKyNpbmNsdWRlICJVc2IuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB1c2IgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gU2V0IGJ5IHRoZSBzaWduYWwgaGFuZGxlciB0byBkZXN0cm95IHRoZSB0aHJlYWQKK3ZvbGF0aWxlIGJvb2wgZGVzdHJveVRocmVhZDsKKworaW50MzJfdCByZWFkRmlsZShzdGQ6OnN0cmluZyBmaWxlbmFtZSwgc3RkOjpzdHJpbmcmIGNvbnRlbnRzKSB7CisgICAgc3RkOjppZnN0cmVhbSBmaWxlKGZpbGVuYW1lKTsKKworICAgIGlmIChmaWxlLmlzX29wZW4oKSkgeworICAgICAgICBnZXRsaW5lKGZpbGUsIGNvbnRlbnRzKTsKKyAgICAgICAgZmlsZS5jbG9zZSgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIC0xOworfQorCitzdGQ6OnN0cmluZyBhcHBlbmRSb2xlTm9kZUhlbHBlcihjb25zdCBzdGQ6OnN0cmluZyBwb3J0TmFtZSwgUG9ydFJvbGVUeXBlIHR5cGUpIHsKKyAgICBzdGQ6OnN0cmluZyBub2RlKCIvc3lzL2NsYXNzL2R1YWxfcm9sZV91c2IvIiArIHBvcnROYW1lKTsKKworICAgIHN3aXRjaCh0eXBlKSB7CisgICAgICAgIGNhc2UgUG9ydFJvbGVUeXBlOjpEQVRBX1JPTEU6CisgICAgICAgICAgICByZXR1cm4gbm9kZSArICIvZGF0YV9yb2xlIjsKKyAgICAgICAgY2FzZSBQb3J0Um9sZVR5cGU6OlBPV0VSX1JPTEU6CisgICAgICAgICAgICByZXR1cm4gbm9kZSArICIvcG93ZXJfcm9sZSI7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gbm9kZSArICIvbW9kZSI7CisgICAgfQorfQorCitzdGQ6OnN0cmluZyBjb252ZXJ0Um9sZXRvU3RyaW5nKFBvcnRSb2xlIHJvbGUpIHsKKyAgICBpZiAocm9sZS50eXBlID09IFBvcnRSb2xlVHlwZTo6UE9XRVJfUk9MRSkgeworICAgICAgICBpZiAocm9sZS5yb2xlID09IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydFBvd2VyUm9sZTo6U09VUkNFKSkKKyAgICAgICAgICAgIHJldHVybiAic291cmNlIjsKKyAgICAgICAgZWxzZSBpZiAocm9sZS5yb2xlID09ICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRQb3dlclJvbGU6OlNJTkspKQorICAgICAgICAgICAgcmV0dXJuICJzaW5rIjsKKyAgICB9IGVsc2UgaWYgKHJvbGUudHlwZSA9PSBQb3J0Um9sZVR5cGU6OkRBVEFfUk9MRSkgeworICAgICAgICBpZiAocm9sZS5yb2xlID09IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydERhdGFSb2xlOjpIT1NUKSkKKyAgICAgICAgICAgIHJldHVybiAiaG9zdCI7CisgICAgICAgIGlmIChyb2xlLnJvbGUgPT0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0RGF0YVJvbGU6OkRFVklDRSkpCisgICAgICAgICAgICByZXR1cm4gImRldmljZSI7CisgICAgfSBlbHNlIGlmIChyb2xlLnR5cGUgPT0gUG9ydFJvbGVUeXBlOjpNT0RFKSB7CisgICAgICAgIGlmIChyb2xlLnJvbGUgPT0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0TW9kZTo6VUZQKSkKKyAgICAgICAgICAgIHJldHVybiAidWZwIjsKKyAgICAgICAgaWYgKHJvbGUucm9sZSA9PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRNb2RlOjpERlApKQorICAgICAgICAgICAgcmV0dXJuICJkZnAiOworICAgIH0KKyAgICByZXR1cm4gIm5vbmUiOworfQorCitSZXR1cm48dm9pZD4gVXNiOjpzd2l0Y2hSb2xlKGNvbnN0IGhpZGxfc3RyaW5nJiBwb3J0TmFtZSwKKyAgICAgICAgY29uc3QgUG9ydFJvbGUmIG5ld1JvbGUpIHsKKyAgICBzdGQ6OnN0cmluZyBmaWxlbmFtZSA9IGFwcGVuZFJvbGVOb2RlSGVscGVyKHN0ZDo6c3RyaW5nKHBvcnROYW1lLmNfc3RyKCkpLAorICAgICAgICBuZXdSb2xlLnR5cGUpOworICAgIHN0ZDo6b2ZzdHJlYW0gZmlsZShmaWxlbmFtZSk7CisgICAgc3RkOjpzdHJpbmcgd3JpdHRlbjsKKworICAgIEFMT0dJKCJmaWxlbmFtZSB3cml0ZTogJXMgcm9sZTolZCIsIGZpbGVuYW1lLmNfc3RyKCksIG5ld1JvbGUucm9sZSk7CisKKyAgICBpZiAoZmlsZS5pc19vcGVuKCkpIHsKKyAgICAgICAgZmlsZSA8PCBjb252ZXJ0Um9sZXRvU3RyaW5nKG5ld1JvbGUpLmNfc3RyKCk7CisgICAgICAgIGZpbGUuY2xvc2UoKTsKKyAgICAgICAgaWYgKCFyZWFkRmlsZShmaWxlbmFtZSwgd3JpdHRlbikpIHsKKyAgICAgICAgICAgIEFMT0dJKCJ3cml0dGVuOiAlcyIsIHdyaXR0ZW4uY19zdHIoKSk7CisgICAgICAgICAgICBpZiAod3JpdHRlbiA9PSBjb252ZXJ0Um9sZXRvU3RyaW5nKG5ld1JvbGUpKSB7CisgICAgICAgICAgICAgICAgQUxPR0koIlJvbGUgc3dpdGNoIHN1Y2Nlc3NmdWxsIik7CisgICAgICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9CisgICAgICAgICAgICAgICAgICAgIG1DYWxsYmFjay0+bm90aWZ5Um9sZVN3aXRjaFN0YXR1cyhwb3J0TmFtZSwgbmV3Um9sZSwKKyAgICAgICAgICAgICAgICAgICAgU3RhdHVzOjpTVUNDRVNTKTsKKyAgICAgICAgICAgICAgICBpZiAoIXJldC5pc09rKCkpCisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJSb2xlU3dpdGNoU3RhdHVzIGVycm9yICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldC5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IG1DYWxsYmFjay0+bm90aWZ5Um9sZVN3aXRjaFN0YXR1cyhwb3J0TmFtZSwgbmV3Um9sZSwgU3RhdHVzOjpFUlJPUik7CisgICAgaWYgKCFyZXQuaXNPaygpKQorICAgICAgICBBTE9HRSgiUm9sZVN3aXRjaFN0YXR1cyBlcnJvciAlcyIsIHJldC5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworU3RhdHVzIGdldEN1cnJlbnRSb2xlSGVscGVyKHN0ZDo6c3RyaW5nIHBvcnROYW1lLAorICAgICAgICBQb3J0Um9sZVR5cGUgdHlwZSwgdWludDMyX3QgJmN1cnJlbnRSb2xlKSAgeworICAgIHN0ZDo6c3RyaW5nIGZpbGVuYW1lOworICAgIHN0ZDo6c3RyaW5nIHJvbGVOYW1lOworCisgICAgaWYgKHR5cGUgPT0gUG9ydFJvbGVUeXBlOjpQT1dFUl9ST0xFKSB7CisgICAgICAgIGZpbGVuYW1lID0gIi9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYi8iICsKKyAgICAgICAgICAgIHBvcnROYW1lICsgIi9wb3dlcl9yb2xlIjsKKyAgICAgICAgY3VycmVudFJvbGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydFBvd2VyUm9sZTo6Tk9ORSk7CisgICAgfSBlbHNlIGlmICh0eXBlID09IFBvcnRSb2xlVHlwZTo6REFUQV9ST0xFKSB7CisgICAgICAgIGZpbGVuYW1lID0gIi9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYi8iICsKKyAgICAgICAgICAgIHBvcnROYW1lICsgIi9kYXRhX3JvbGUiOworICAgICAgICBjdXJyZW50Um9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydERhdGFSb2xlOjpOT05FKTsKKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gUG9ydFJvbGVUeXBlOjpNT0RFKSB7CisgICAgICAgIGZpbGVuYW1lID0gIi9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYi8iICsKKyAgICAgICAgICAgIHBvcnROYW1lICsgIi9tb2RlIjsKKyAgICAgICAgY3VycmVudFJvbGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRNb2RlOjpOT05FKTsKKyAgICB9CisKKyAgICBpZiAocmVhZEZpbGUoZmlsZW5hbWUsIHJvbGVOYW1lKSkgeworICAgICAgICBBTE9HRSgiZ2V0Q3VycmVudFJvbGU6IEZhaWxlZCB0byBvcGVuIGZpbGVzeXN0ZW0gbm9kZSIpOworICAgICAgICByZXR1cm4gU3RhdHVzOjpFUlJPUjsKKyAgICB9CisKKyAgICBpZiAocm9sZU5hbWUgPT0gImRmcCIpCisgICAgICAgIGN1cnJlbnRSb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0TW9kZTo6REZQKTsKKyAgICBlbHNlIGlmIChyb2xlTmFtZSA9PSAidWZwIikKKyAgICAgICAgY3VycmVudFJvbGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRNb2RlOjpVRlApOworICAgIGVsc2UgaWYgKHJvbGVOYW1lID09ICJzb3VyY2UiKQorICAgICAgICBjdXJyZW50Um9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydFBvd2VyUm9sZTo6U09VUkNFKTsKKyAgICBlbHNlIGlmIChyb2xlTmFtZSA9PSAic2luayIpCisgICAgICAgIGN1cnJlbnRSb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0UG93ZXJSb2xlOjpTSU5LKTsKKyAgICBlbHNlIGlmIChyb2xlTmFtZSA9PSAiaG9zdCIpCisgICAgICAgIGN1cnJlbnRSb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0RGF0YVJvbGU6OkhPU1QpOworICAgIGVsc2UgaWYgKHJvbGVOYW1lID09ICJkZXZpY2UiKQorICAgICAgICBjdXJyZW50Um9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydERhdGFSb2xlOjpERVZJQ0UpOworICAgIGVsc2UgaWYgKHJvbGVOYW1lICE9ICJub25lIikgeworICAgICAgICAgLyogY2FzZSBmb3Igbm9uZSBoYXMgYWxyZWFkeSBiZWVuIGFkZHJlc3NlZC4KKyAgICAgICAgICAqIHNvIHdlIGNoZWNrIGlmIHRoZSByb2xlIGlzbnQgbm9uZS4KKyAgICAgICAgICAqLworICAgICAgICByZXR1cm4gU3RhdHVzOjpVTlJFQ09HTklaRURfUk9MRTsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6U1VDQ0VTUzsKK30KKworU3RhdHVzIGdldFR5cGVDUG9ydE5hbWVzSGVscGVyKHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiYgbmFtZXMpIHsKKyAgICBESVIgKmRwOworCisgICAgZHAgPSBvcGVuZGlyKCIvc3lzL2NsYXNzL2R1YWxfcm9sZV91c2IiKTsKKyAgICBpZiAoZHAgIT0gTlVMTCkKKyAgICB7CityZXNjYW46CisgICAgICAgIGludDMyX3QgcG9ydHMgPSAwOworICAgICAgICBpbnQzMl90IGN1cnJlbnQgPSAwOworICAgICAgICBzdHJ1Y3QgZGlyZW50ICplcDsKKworICAgICAgICB3aGlsZSAoKGVwID0gcmVhZGRpciAoZHApKSkgeworICAgICAgICAgICAgaWYgKGVwLT5kX3R5cGUgPT0gRFRfTE5LKSB7CisgICAgICAgICAgICAgICAgcG9ydHMrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChwb3J0cyA9PSAwKSB7CisgICAgICAgICAgICBjbG9zZWRpcihkcCk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpTVUNDRVNTOworICAgICAgICB9CisKKyAgICAgICAgbmFtZXMucmVzaXplKHBvcnRzKTsKKyAgICAgICAgcmV3aW5kZGlyKGRwKTsKKworICAgICAgICB3aGlsZSAoKGVwID0gcmVhZGRpciAoZHApKSkgeworICAgICAgICAgICAgaWYgKGVwLT5kX3R5cGUgPT0gRFRfTE5LKSB7CisgICAgICAgICAgICAgICAgLyogQ2hlY2sgdG8gc2VlIGlmIG5ldyBwb3J0cyB3ZXJlIGFkZGVkIHNpbmNlIHRoZSBmaXJzdCBwYXNzLiAqLworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ID49IHBvcnRzKSB7CisgICAgICAgICAgICAgICAgICAgIHJld2luZGRpcihkcCk7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcmVzY2FuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuYW1lc1tjdXJyZW50KytdID0gZXAtPmRfbmFtZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGNsb3NlZGlyIChkcCk7CisgICAgICAgIHJldHVybiBTdGF0dXM6OlNVQ0NFU1M7CisgICAgfQorCisgICAgQUxPR0UoIkZhaWxlZCB0byBvcGVuIC9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYiIpOworICAgIHJldHVybiBTdGF0dXM6OkVSUk9SOworfQorCitib29sIGNhblN3aXRjaFJvbGVIZWxwZXIoY29uc3Qgc3RkOjpzdHJpbmcgcG9ydE5hbWUsIFBvcnRSb2xlVHlwZSB0eXBlKSAgeworICAgIHN0ZDo6c3RyaW5nIGZpbGVuYW1lID0gYXBwZW5kUm9sZU5vZGVIZWxwZXIocG9ydE5hbWUsIHR5cGUpOworICAgIHN0ZDo6b2ZzdHJlYW0gZmlsZShmaWxlbmFtZSk7CisKKyAgICBpZiAoZmlsZS5pc19vcGVuKCkpIHsKKyAgICAgICAgZmlsZS5jbG9zZSgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdGF0dXMgZ2V0UG9ydE1vZGVIZWxwZXIoY29uc3Qgc3RkOjpzdHJpbmcgcG9ydE5hbWUsIFBvcnRNb2RlJiBwb3J0TW9kZSkgIHsKKyAgICBzdGQ6OnN0cmluZyBmaWxlbmFtZSA9ICIvc3lzL2NsYXNzL2R1YWxfcm9sZV91c2IvIiArCisgICAgc3RkOjpzdHJpbmcocG9ydE5hbWUuY19zdHIoKSkgKyAiL3N1cHBvcnRlZF9tb2RlcyI7CisgICAgc3RkOjpzdHJpbmcgbW9kZXM7CisKKyAgICBpZiAocmVhZEZpbGUoZmlsZW5hbWUsIG1vZGVzKSkgeworICAgICAgICBBTE9HRSgiZ2V0U3VwcG9ydGVkUm9sZXM6IEZhaWxlZCB0byBvcGVuIGZpbGVzeXN0ZW0gbm9kZSIpOworICAgICAgICByZXR1cm4gU3RhdHVzOjpFUlJPUjsKKyAgICB9CisKKyAgICBpZiAobW9kZXMgPT0gInVmcCBkZnAiKQorICAgICAgICBwb3J0TW9kZSA9IFBvcnRNb2RlOjpEUlA7CisgICAgZWxzZSAgaWYgKG1vZGVzID09ICJ1ZnAiKQorICAgICAgICBwb3J0TW9kZSA9IFBvcnRNb2RlOjpVRlA7CisgICAgZWxzZSBpZiAgKG1vZGVzID09ICJkZnAiKQorICAgICAgICBwb3J0TW9kZSA9IFBvcnRNb2RlOjpERlA7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gU3RhdHVzOjpVTlJFQ09HTklaRURfUk9MRTsKKworICAgICAgICByZXR1cm4gU3RhdHVzOjpTVUNDRVNTOworfQorCitTdGF0dXMgZ2V0UG9ydFN0YXR1c0hlbHBlciAoaGlkbF92ZWM8UG9ydFN0YXR1cz4mIGN1cnJlbnRQb3J0U3RhdHVzKSB7CisgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG5hbWVzOworICAgIFN0YXR1cyByZXN1bHQgPSBnZXRUeXBlQ1BvcnROYW1lc0hlbHBlcihuYW1lcyk7CisKKyAgICBpZiAocmVzdWx0ID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgICBjdXJyZW50UG9ydFN0YXR1cy5yZXNpemUobmFtZXMuc2l6ZSgpKTsKKyAgICAgICAgZm9yKHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPjo6c2l6ZV90eXBlIGkgPSAwOyBpIDwgbmFtZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyIsIG5hbWVzW2ldLmNfc3RyKCkpOworICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0ucG9ydE5hbWUgPSBuYW1lc1tpXTsKKworICAgICAgICAgICAgdWludDMyX3QgY3VycmVudFJvbGU7CisgICAgICAgICAgICBpZiAoZ2V0Q3VycmVudFJvbGVIZWxwZXIobmFtZXNbaV0sIFBvcnRSb2xlVHlwZTo6UE9XRVJfUk9MRSwKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFJvbGUpID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzW2ldLmN1cnJlbnRQb3dlclJvbGUgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBvcnRQb3dlclJvbGU+IChjdXJyZW50Um9sZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dFKCJFcnJvciB3aGlsZSByZXRyZWl2aW5nIHBvcnROYW1lcyIpOworICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGdldEN1cnJlbnRSb2xlSGVscGVyKG5hbWVzW2ldLAorICAgICAgICAgICAgICAgICAgICBQb3J0Um9sZVR5cGU6OkRBVEFfUk9MRSwgY3VycmVudFJvbGUpID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzW2ldLmN1cnJlbnREYXRhUm9sZSA9CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQb3J0RGF0YVJvbGU+IChjdXJyZW50Um9sZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dFKCJFcnJvciB3aGlsZSByZXRyZWl2aW5nIGN1cnJlbnQgcG9ydCByb2xlIik7CisgICAgICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZ2V0Q3VycmVudFJvbGVIZWxwZXIobmFtZXNbaV0sIFBvcnRSb2xlVHlwZTo6TU9ERSwKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFJvbGUpID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzW2ldLmN1cnJlbnRNb2RlID0KKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UG9ydE1vZGU+IChjdXJyZW50Um9sZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dFKCJFcnJvciB3aGlsZSByZXRyZWl2aW5nIGN1cnJlbnQgZGF0YSByb2xlIik7CisgICAgICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1tpXS5jYW5DaGFuZ2VNb2RlID0KKyAgICAgICAgICAgICAgICBjYW5Td2l0Y2hSb2xlSGVscGVyKG5hbWVzW2ldLCBQb3J0Um9sZVR5cGU6Ok1PREUpOworICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY2FuQ2hhbmdlRGF0YVJvbGUgPQorICAgICAgICAgICAgICAgIGNhblN3aXRjaFJvbGVIZWxwZXIobmFtZXNbaV0sIFBvcnRSb2xlVHlwZTo6REFUQV9ST0xFKTsKKyAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzW2ldLmNhbkNoYW5nZVBvd2VyUm9sZSA9CisgICAgICAgICAgICAgICAgY2FuU3dpdGNoUm9sZUhlbHBlcihuYW1lc1tpXSwgUG9ydFJvbGVUeXBlOjpQT1dFUl9ST0xFKTsKKworICAgICAgICAgICAgQUxPR0koImNhbkNoYW5nZU1vZGU6ICVkIGNhbkNoYWdlZGF0YTogJWQgY2FuQ2hhbmdlUG93ZXI6JWQiLAorICAgICAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzW2ldLmNhbkNoYW5nZU1vZGUsCisgICAgICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY2FuQ2hhbmdlRGF0YVJvbGUsCisgICAgICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY2FuQ2hhbmdlUG93ZXJSb2xlKTsKKworICAgICAgICAgICAgaWYgKGdldFBvcnRNb2RlSGVscGVyKG5hbWVzW2ldLCBjdXJyZW50UG9ydFN0YXR1c1tpXS5zdXBwb3J0ZWRNb2RlcykKKyAgICAgICAgICAgICAgICAgICE9IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgICAgICAgICAgIEFMT0dFKCJFcnJvciB3aGlsZSByZXRyaWV2aW5nIHBvcnQgbW9kZXMiKTsKKyAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFN0YXR1czo6U1VDQ0VTUzsKKyAgICB9Citkb25lOgorICAgIHJldHVybiBTdGF0dXM6OkVSUk9SOworfQorCitSZXR1cm48dm9pZD4gVXNiOjpxdWVyeVBvcnRTdGF0dXMoKSB7CisgICAgaGlkbF92ZWM8UG9ydFN0YXR1cz4gY3VycmVudFBvcnRTdGF0dXM7CisgICAgU3RhdHVzIHN0YXR1czsKKworICAgIHN0YXR1cyA9IGdldFBvcnRTdGF0dXNIZWxwZXIoY3VycmVudFBvcnRTdGF0dXMpOworICAgIFJldHVybjx2b2lkPiByZXQgPSBtQ2FsbGJhY2stPm5vdGlmeVBvcnRTdGF0dXNDaGFuZ2UoY3VycmVudFBvcnRTdGF0dXMsCisgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIXJldC5pc09rKCkpCisgICAgICAgIEFMT0dFKCJxdWVyeVBvcnRTdGF0dXMgZXJyb3IgJXMiLCByZXQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CitzdHJ1Y3QgZGF0YSB7CisgICAgaW50IHVldmVudF9mZDsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjppbXBsZW1lbnRhdGlvbjo6VXNiICp1c2I7Cit9OworCitzdGF0aWMgdm9pZCB1ZXZlbnRfZXZlbnQodWludDMyX3QgLyplcGV2ZW50cyovLCBzdHJ1Y3QgZGF0YSAqcGF5bG9hZCkgeworICAgIGNoYXIgbXNnW1VFVkVOVF9NU0dfTEVOICsgMl07CisgICAgY2hhciAqY3A7CisgICAgaW50IG47CisKKyAgICBuID0gdWV2ZW50X2tlcm5lbF9tdWx0aWNhc3RfcmVjdihwYXlsb2FkLT51ZXZlbnRfZmQsIG1zZywgVUVWRU5UX01TR19MRU4pOworICAgIGlmIChuIDw9IDApCisgICAgICAgIHJldHVybjsKKyAgICBpZiAobiA+PSBVRVZFTlRfTVNHX0xFTikgICAvKiBvdmVyZmxvdyAtLSBkaXNjYXJkICovCisgICAgICAgIHJldHVybjsKKworICAgIG1zZ1tuXSA9ICdcMCc7CisgICAgbXNnW24gKyAxXSA9ICdcMCc7CisgICAgY3AgPSBtc2c7CisKKyAgICB3aGlsZSAoKmNwKSB7CisgICAgICAgIGlmICghc3RyY21wKGNwLCAiU1VCU1lTVEVNPWR1YWxfcm9sZV91c2IiKSkgeworICAgICAgICAgICAgQUxPR0UoInVldmVudCByZWNlaXZlZCAlcyIsIGNwKTsKKyAgICAgICAgICAgIGlmIChwYXlsb2FkLT51c2ItPm1DYWxsYmFjayAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgaGlkbF92ZWM8UG9ydFN0YXR1cz4gY3VycmVudFBvcnRTdGF0dXM7CisgICAgICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IGdldFBvcnRTdGF0dXNIZWxwZXIoY3VycmVudFBvcnRTdGF0dXMpOworICAgICAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgICAgICAgICAgICAgICBwYXlsb2FkLT51c2ItPm1DYWxsYmFjay0+bm90aWZ5UG9ydFN0YXR1c0NoYW5nZShjdXJyZW50UG9ydFN0YXR1cywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBpZiAoIXJldC5pc09rKCkpCisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJlcnJvciAlcyIsIHJldC5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgLyogYWR2YW5jZSB0byBhZnRlciB0aGUgbmV4dCBcMCAqLworICAgICAgICB3aGlsZSAoKmNwKyspOworICAgIH0KK30KKwordm9pZCogd29yayh2b2lkKiBwYXJhbSkgeworICAgIGludCBlcG9sbF9mZCwgdWV2ZW50X2ZkOworICAgIHN0cnVjdCBlcG9sbF9ldmVudCBldjsKKyAgICBpbnQgbmV2ZW50cyA9IDA7CisgICAgc3RydWN0IGRhdGEgcGF5bG9hZDsKKworICAgIEFMT0dFKCJjcmVhdGluZyB0aHJlYWQiKTsKKworICAgIHVldmVudF9mZCA9IHVldmVudF9vcGVuX3NvY2tldCg2NCoxMDI0LCB0cnVlKTsKKworICAgIGlmICh1ZXZlbnRfZmQgPCAwKSB7CisgICAgICAgIEFMT0dFKCJ1ZXZlbnRfaW5pdDogdWV2ZW50X29wZW5fc29ja2V0IGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHBheWxvYWQudWV2ZW50X2ZkID0gdWV2ZW50X2ZkOworICAgIHBheWxvYWQudXNiID0gKGFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OmltcGxlbWVudGF0aW9uOjpVc2IgKilwYXJhbTsKKworICAgIGZjbnRsKHVldmVudF9mZCwgRl9TRVRGTCwgT19OT05CTE9DSyk7CisKKyAgICBldi5ldmVudHMgPSBFUE9MTElOOworICAgIGV2LmRhdGEucHRyID0gKHZvaWQgKil1ZXZlbnRfZXZlbnQ7CisKKyAgICBlcG9sbF9mZCA9IGVwb2xsX2NyZWF0ZSg2NCk7CisgICAgaWYgKGVwb2xsX2ZkID09IC0xKSB7CisgICAgICAgIEFMT0dFKCJlcG9sbF9jcmVhdGUgZmFpbGVkOyBlcnJubz0lZCIsIGVycm5vKTsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisKKyAgICBpZiAoZXBvbGxfY3RsKGVwb2xsX2ZkLCBFUE9MTF9DVExfQURELCB1ZXZlbnRfZmQsICZldikgPT0gLTEpIHsKKyAgICAgICAgQUxPR0UoImVwb2xsX2N0bCBmYWlsZWQ7IGVycm5vPSVkIiwgZXJybm8pOworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKworICAgIHdoaWxlICghZGVzdHJveVRocmVhZCkgeworICAgICAgICBzdHJ1Y3QgZXBvbGxfZXZlbnQgZXZlbnRzWzY0XTsKKworICAgICAgICBuZXZlbnRzID0gZXBvbGxfd2FpdChlcG9sbF9mZCwgZXZlbnRzLCA2NCwgLTEpOworICAgICAgICBpZiAobmV2ZW50cyA9PSAtMSkgeworICAgICAgICAgICAgaWYgKGVycm5vID09IEVJTlRSKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgQUxPR0UoInVzYiBlcG9sbF93YWl0IGZhaWxlZDsgZXJybm89JWQiLCBlcnJubyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IG4gPSAwOyBuIDwgbmV2ZW50czsgKytuKSB7CisgICAgICAgICAgICBpZiAoZXZlbnRzW25dLmRhdGEucHRyKQorICAgICAgICAgICAgICAgICgqKHZvaWQgKCopKGludCwgc3RydWN0IGRhdGEgKnBheWxvYWQpKWV2ZW50c1tuXS5kYXRhLnB0cikKKyAgICAgICAgICAgICAgICAgICAgKGV2ZW50c1tuXS5ldmVudHMsICZwYXlsb2FkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEFMT0dJKCJleGl0aW5nIHdvcmtlciB0aHJlYWQiKTsKK2Vycm9yOgorICAgIGNsb3NlKHVldmVudF9mZCk7CisKKyAgICBpZiAoZXBvbGxfZmQgPj0gMCkKKyAgICAgICAgY2xvc2UoZXBvbGxfZmQpOworCisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3ZvaWQgc2lnaGFuZGxlcihpbnQgc2lnKQoreworICAgIGlmIChzaWcgPT0gU0lHVVNSMSkgeworICAgICAgICBkZXN0cm95VGhyZWFkID0gdHJ1ZTsKKyAgICAgICAgQUxPR0koImRlc3Ryb3kgc2V0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc2lnbmFsKFNJR1VTUjEsIHNpZ2hhbmRsZXIpOworfQorCitSZXR1cm48dm9pZD4gVXNiOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJVXNiQ2FsbGJhY2s+JiBjYWxsYmFjaykgeworCisgICAgcHRocmVhZF9tdXRleF9sb2NrKCZtTG9jayk7CisgICAgaWYgKChtQ2FsbGJhY2sgPT0gTlVMTCAmJiBjYWxsYmFjayA9PSBOVUxMKSB8fAorICAgICAgICAgICAgKG1DYWxsYmFjayAhPSBOVUxMICYmIGNhbGxiYWNrICE9IE5VTEwpKSB7CisgICAgICAgIG1DYWxsYmFjayA9IGNhbGxiYWNrOworICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbUxvY2spOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIG1DYWxsYmFjayA9IGNhbGxiYWNrOworICAgIEFMT0dJKCJyZWdpc3RlcmluZyBjYWxsYmFjayIpOworCisgICAgaWYgKG1DYWxsYmFjayA9PSBOVUxMKSB7CisgICAgICAgIGlmICAoIXB0aHJlYWRfa2lsbChtUG9sbCwgU0lHVVNSMSkpIHsKKyAgICAgICAgICAgIHB0aHJlYWRfam9pbihtUG9sbCwgTlVMTCk7CisgICAgICAgICAgICBBTE9HSSgicHRocmVhZCBkZXN0cm95ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbUxvY2spOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGRlc3Ryb3lUaHJlYWQgPSBmYWxzZTsKKyAgICBzaWduYWwoU0lHVVNSMSwgc2lnaGFuZGxlcik7CisKKyAgICBpZiAocHRocmVhZF9jcmVhdGUoJm1Qb2xsLCBOVUxMLCB3b3JrLCB0aGlzKSkgeworICAgICAgICBBTE9HRSgicHRocmVhZCBjcmVhdGlvbiBmYWlsZWQgJWQiLCBlcnJubyk7CisgICAgICAgIG1DYWxsYmFjayA9IE5VTEw7CisgICAgfQorICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtTG9jayk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworLy8gUHJvdGVjdHMgKnVzYiBhc3NpZ25tZW50CitwdGhyZWFkX211dGV4X3QgbG9jayA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CitVc2IgKnVzYjsKKworVXNiOjpVc2IoKSB7CisgICAgcHRocmVhZF9tdXRleF9sb2NrKCZsb2NrKTsKKyAgICAvLyBNYWtlIHRoaXMgYSBzaW5nbGV0b24gY2xhc3MKKyAgICBhc3NlcnQodXNiID09IE5VTEwpOworICAgIHVzYiA9IHRoaXM7CisgICAgcHRocmVhZF9tdXRleF91bmxvY2soJmxvY2spOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgdXNiCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS91c2IvMS4wL2RlZmF1bHQvVXNiLmggYi91c2IvMS4wL2RlZmF1bHQvVXNiLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRmY2FjNgotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvZGVmYXVsdC9Vc2IuaApAQCAtMCwwICsxLDUyIEBACisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfVVNCX1YxXzBfVVNCX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9VU0JfVjFfMF9VU0JfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0lVc2IuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaWZkZWYgTE9HX1RBRworI3VuZGVmIExPR19UQUcKKyNlbmRpZgorCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMC1zZXJ2aWNlIgorI2RlZmluZSBVRVZFTlRfTVNHX0xFTiAyMDQ4CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdXNiIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6SVVzYjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6SVVzYkNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpQb3J0Um9sZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YmFzZTo6VjFfMDo6SUJhc2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBVc2IgOiBwdWJsaWMgSVVzYiB7CisgICAgVXNiKCk7CisgICAgUmV0dXJuPHZvaWQ+IHN3aXRjaFJvbGUoY29uc3QgaGlkbF9zdHJpbmcmIHBvcnROYW1lLCBjb25zdCBQb3J0Um9sZSYgcm9sZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldENhbGxiYWNrKGNvbnN0IHNwPElVc2JDYWxsYmFjaz4mIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcXVlcnlQb3J0U3RhdHVzKCkgb3ZlcnJpZGU7CisKKyAgICBzcDxJVXNiQ2FsbGJhY2s+IG1DYWxsYmFjazsKKyAgICBwcml2YXRlOgorICAgICAgICBwdGhyZWFkX3QgbVBvbGw7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCBtTG9jayA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgdXNiCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9VU0JfVjFfMF9VU0JfSApkaWZmIC0tZ2l0IGEvdXNiLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudXNiQDEuMC1zZXJ2aWNlLnJjIGIvdXNiLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudXNiQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlYTA3MjAKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIHVzYi1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUudXNiQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL3VzYi8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3VzYi8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2FiNmYwCi0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgIlVzYi5oIgorCit1c2luZyBhbmRyb2lkOjpzcDsKKworLy8gbGliaHdiaW5kZXI6Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKKworLy8gR2VuZXJhdGVkIEhJREwgZmlsZXMKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OklVc2I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjppbXBsZW1lbnRhdGlvbjo6VXNiOworCit1c2luZyBhbmRyb2lkOjpzdGF0dXNfdDsKK3VzaW5nIGFuZHJvaWQ6Ok9LOworCitpbnQgbWFpbigpIHsKKworICAgIGFuZHJvaWQ6OnNwPElVc2I+IHNlcnZpY2UgPSBuZXcgVXNiKCk7CisKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDEsIHRydWUgLypjYWxsZXJXaWxsSm9pbiovKTsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSBzZXJ2aWNlLT5yZWdpc3RlckFzU2VydmljZSgpOworCisgICAgaWYgKHN0YXR1cyA9PSBPSykgeworICAgICAgICBBTE9HSSgiVVNCIEhBTCBSZWFkeS4iKTsKKyAgICAgICAgam9pblJwY1RocmVhZHBvb2woKTsKKyAgICB9CisKKyAgICBBTE9HRSgiQ2Fubm90IHJlZ2lzdGVyIFVTQiBIQUwgc2VydmljZSIpOworICAgIHJldHVybiAxOworfQpkaWZmIC0tZ2l0IGEvdXNiLzEuMC90eXBlcy5oYWwgYi91c2IvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDI2MTZlCi0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA7CisKKworZW51bSBTdGF0dXMgOiB1aW50MzJfdCB7CisgICAgU1VDQ0VTUyA9IDAsCisKKyAgICAvKioKKyAgICAgKiBlcnJvciB2YWx1ZSB3aGVuIHRoZSBIQUwgb3BlcmF0aW9uIGZhaWxzIGZvciByZWFzb25zIG5vdCBsaXN0ZWQgaGVyZS4KKyAgICAgKi8KKyAgICBFUlJPUiA9IDEsCisKKyAgICAvKioKKyAgICAgKiBlcnJvciB2YWx1ZSByZXR1cm5lZCB3aGVuIGlucHV0IGFyZ3VtZW50IGlzIGludmFsaWQuCisgICAgICovCisgICAgSU5WQUxJRF9BUkdVTUVOVCA9IDIsCisKKyAgICAvKioKKyAgICAgKiBlcnJvciB2YWx1ZSByZXR1cm5lZCB3aGVuIHJvbGUgc3RyaW5nIGlzIHVucmVjb2duaXplZC4KKyAgICAgKi8KKyAgICBVTlJFQ09HTklaRURfUk9MRSA9IDMsCit9OworCisvKioKKyAqIERlbm90ZXMgdGhlIFBvcnQgcm9sZSB0eXBlLgorICogUGFzc2VkIGFzIGFuIGFyZ3VtZW50IGZvciBmdW5jdGlvbnMgdXNlZCB0byBxdWVyeSBvciBjaGFuZ2UgcG9ydCByb2xlcy4KKyAqLworZW51bSBQb3J0Um9sZVR5cGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogRGVub3RlcyB0aGUgZGF0YSByb2xlIG9mIHRoZSBwb3J0LgorICAgICAqIFRoZSBwb3J0IGNhbiBlaXRoZXIgYmUgYSAiaG9zdCIgb3IgYSAiZGV2aWNlIiBmb3IgZGF0YS4KKyAgICAgKiBUaGlzIG1hcHMgdG8gdGhlIFBvcnREYXRhUm9sZSBlbnVtLgorICAgICAqLworICAgIERBVEFfUk9MRSA9IDAsCisKKyAgICAvKioKKyAgICAgKiBEZW5vdGVzIHRoZSBwb3dlciByb2xlIG9mIHRoZSBwb3J0LgorICAgICAqIFRoZSBwb3J0IGNhbiBlaXRoZXIgYmUgYSAic291cmNlIiBvciAic2luayIgZm9yIHBvd2VyLgorICAgICAqIFRoaXMgbWFwcyB0byBQb3J0UG93ZXJSb2xlIGVudW0uCisgICAgICovCisgICAgUE9XRVJfUk9MRSA9IDEsCisKKyAgICAvKioKKyAgICAgKiBVU0IgcG9ydHMgY2FuIGJlIGEgcHVyZSBERlAgcG9ydCB3aGljaCBjYW4gb25seSBhY3QKKyAgICAgKiBhcyBhIGhvc3QuIEEgVUZQIHBvcnQgd2hpY2ggY2FuIG9ubHkgYWN0IGFzIGEgZGV2aWNlLgorICAgICAqIE9yIGEgZHVhbCByb2xlIHBvcnRzIHdoaWNoIGNhbiBlaXRoZXIgY2FuIGFzIGEgaG9zdCBvcgorICAgICAqIGEgZGV2aWNlLiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgdG8gbWVudGlvbiB0aGVtLgorICAgICAqLworICAgIE1PREUgPSAyLAorfTsKKworQGV4cG9ydAorZW51bSBQb3J0RGF0YVJvbGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHBvcnQgZG9lcyBub3QgaGF2ZSBhIGRhdGEgcm9sZS4KKyAgICAgKiBJbiBjYXNlIG9mIERSUCwgdGhlIGN1cnJlbnQgZGF0YSByb2xlIG9mIHRoZSBwb3J0IGlzIG9ubHkgcmVzb2x2ZWQKKyAgICAgKiB3aGVuIHRoZSB0eXBlLWMgaGFuZHNoYWtlIGhhcHBlbnMuCisgICAgICovCisgICAgTk9ORSA9IDAsCisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCBpcyBhY3RpbmcgYXMgYSBob3N0IGZvciBkYXRhLgorICAgICAqLworICAgIEhPU1QgPSAxLAorCisgICAgLyoqCisgICAgICogSW5kaWNhdGVkIHRoYXQgdGhlIHBvcnQgaXMgYWN0aW5nIGFzIGEgZGV2aWNlIGZvciBkYXRhLgorICAgICAqLworICAgIERFVklDRSA9IDIsCisKKyAgICBOVU1fREFUQV9ST0xFUyA9IDMsCit9OworCitAZXhwb3J0CitlbnVtIFBvcnRQb3dlclJvbGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHBvcnQgZG9lcyBub3QgaGF2ZSBhIHBvd2VyIHJvbGUuCisgICAgICogSW4gY2FzZSBvZiBEUlAsIHRoZSBjdXJyZW50IHBvd2VyIHJvbGUgb2YgdGhlIHBvcnQgaXMgb25seSByZXNvbHZlZAorICAgICAqIHdoZW4gdGhlIHR5cGUtYyBoYW5kc2hha2UgaGFwcGVucy4KKyAgICAgKi8KKyAgICBOT05FID0gMCwKKworICAgIC8qKgorICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBwb3J0IGlzIHN1cHBseWluZyBwb3dlciB0byB0aGUgb3RoZXIgcG9ydC4KKyAgICAgKi8KKyAgICBTT1VSQ0UgPSAxLAorCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHBvcnQgaXMgc2lua2luZyBwb3dlciBmcm9tIHRoZSBvdGhlciBwb3J0LgorICAgICAqLworICAgIFNJTksgPSAyLAorCisgICAgTlVNX1BPV0VSX1JPTEVTID0gMywKK307CisKK0BleHBvcnQKK2VudW0gUG9ydE1vZGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHBvcnQgZG9lcyBub3QgaGF2ZSBhIG1vZGUuCisgICAgICogSW4gY2FzZSBvZiBEUlAsIHRoZSBjdXJyZW50IG1vZGUgb2YgdGhlIHBvcnQgaXMgb25seSByZXNvbHZlZAorICAgICAqIHdoZW4gdGhlIHR5cGUtYyBoYW5kc2hha2UgaGFwcGVucy4KKyAgICAgKi8KKyAgICBOT05FID0gMCwKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCBwb3J0IGNhbiBvbmx5IGFjdCBhcyBkZXZpY2UgZm9yIGRhdGEgYW5kIHNpbmsgZm9yIHBvd2VyLgorICAgICAqLworICAgIFVGUCA9IDEsCisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhlIHBvcnQgY2FuIG9ubHkgYWN0IGFzIGhvc3QgZm9yIGRhdGEgYW5kIHNvdXJjZSBmb3IgcG93ZXIuCisgICAgICovCisgICAgREZQID0gMiwKKworICAgIC8qKgorICAgICAqIEluZGljYXRlcyBjYW4gZWl0aGVyIGFjdCBhcyBVRlAgb3IgREZQIGF0IGEgZ2l2ZW4gcG9pbnQgb2YgdGltZS4KKyAgICAgKi8KKyAgICBEUlAgPSAzLAorCisgICAgTlVNX01PREVTID0gNCwKK307CisKKy8qKgorICogVXNlZCBhcyBhIGNvbnRhaW5lciB0byBzZW5kIHBvcnQgcm9sZSBpbmZvcm1hdGlvbi4KKyAqLworc3RydWN0IFBvcnRSb2xlIHsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhlIHR5cGUgb2YgUG9ydCBSb2xlLgorICAgICAqIE1hcHMgdG8gdGhlIFBvcnRSb2xlVHlwZSBlbnVtLgorICAgICAqLworICAgIFBvcnRSb2xlVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogd2hlbiB0eXBlIGlzIEhBTF9VU0JfREFUQV9ST0xFIHBhc3MgdmFsdWVzIGZyb20gZW51bSBQb3J0RGF0YVJvbGUuCisgICAgICogd2hlbiB0eXBlIGlzIEhBTF9VU0JfUE9XRVJfUk9MRSBwYXNzIHZhbHVlcyBmcm9tIGVudW0gUG9ydFBvd2VyUm9sZS4KKyAgICAgKiB3aGVuIHR5cGUgaXMgSEFMX1VTQl9NT0RFIHBhc3MgdmFsdWVzIGZyb20gZW51bSBQb3J0TW9kZS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCByb2xlOworfTsKKworLyoqCisgKiBVc2VkIGFzIHRoZSBjb250YWluZXIgdG8gcmVwb3J0IGRhdGEgYmFjayB0byB0aGUgY2FsbGVyLgorICogUmVwcmVzZW50cyB0aGUgY3VycmVudCBjb25uZWN0aW9uIHN0YXR1cyBvZiBhIHNpbmdsZSBVU0IgcG9ydC4KKyAqLworc3RydWN0IFBvcnRTdGF0dXMgeworICAgICAvKioKKyAgICAgICogTmFtZSBvZiB0aGUgcG9ydC4KKyAgICAgICogVXNlZCBhcyB0aGUgcG9ydCdzIGlkIGJ5IHRoZSBjYWxsZXIuCisgICAgICAqLworICAgICBzdHJpbmcgcG9ydE5hbWU7CisKKyAgICAgLyoqCisgICAgICAqIERhdGEgcm9sZSBvZiB0aGUgcG9ydC4KKyAgICAgICovCisgICAgIFBvcnREYXRhUm9sZSBjdXJyZW50RGF0YVJvbGU7CisKKyAgICAgLyoqCisgICAgICAqIFBvd2VyIFJvbGUgb2YgdGh0ZSBwb3J0LgorICAgICAgKi8KKyAgICAgUG9ydFBvd2VyUm9sZSBjdXJyZW50UG93ZXJSb2xlOworCisgICAgIC8qKgorICAgICAgKiBNb2RlIGluIHdoaWNoIHRoZSBwb3J0IGlzIGNvbm5lY3RlZC4KKyAgICAgICogQ2FuIGJlIFVGUCBvciBERlAuCisgICAgICAqLworICAgICBQb3J0TW9kZSBjdXJyZW50TW9kZTsKKworICAgICAvKioKKyAgICAgICogVHJ1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCdzIG1vZGUgY2FuCisgICAgICAqIGJlIGNoYW5nZWQuIEZhbHNlIG90aGVyd2lzZS4KKyAgICAgICovCisgICAgIGJvb2wgY2FuQ2hhbmdlTW9kZTsKKworICAgICAvKioKKyAgICAgICogVHJ1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCdzIGRhdGEgcm9sZQorICAgICAgKiBjYW4gYmUgY2hhbmdlZC4gRmFsc2Ugb3RoZXJ3aXNlLgorICAgICAgKiBGb3IgZXhhbXBsZSwgdHJ1ZSBpZiBUeXBlLUMgUEQgUERfU1dBUAorICAgICAgKiBpcyBzdXBwb3J0ZWQuCisgICAgICAqLworICAgICBib29sIGNhbkNoYW5nZURhdGFSb2xlOworCisgICAgIC8qKgorICAgICAgKiBUcnVlIGluZGljYXRlcyB0aGF0IHRoZSBwb3J0J3MgcG93ZXIgcm9sZQorICAgICAgKiBjYW4gYmUgY2hhbmdlZC4gRmFsc2Ugb3RoZXJ3aXNlLgorICAgICAgKiBGb3IgZXhhbXBsZSwgdHJ1ZSBpZiBUeXBlLUMgUEQgUFJfU1dBUAorICAgICAgKiBpcyBzdXBwb3J0ZWQuCisgICAgICAqLworICAgICBib29sIGNhbkNoYW5nZVBvd2VyUm9sZTsKKworICAgICAvKioKKyAgICAgICogSWRlbnRpZmllcyB0aGUgdHlwZSBvZiB0aGUgbG9jYWwgcG9ydC4KKyAgICAgICoKKyAgICAgICogVUZQIC0gSW5kaWNhdGVzIHRoYXQgcG9ydCBjYW4gb25seSBhY3QgYXMgZGV2aWNlIGZvcgorICAgICAgKiAgICAgICBkYXRhIGFuZCBzaW5rIGZvciBwb3dlci4KKyAgICAgICogREZQIC0gSW5kaWNhdGVzIHRoZSBwb3J0IGNhbiBvbmx5IGFjdCBhcyBob3N0IGZvciBkYXRhCisgICAgICAqICAgICAgIGFuZCBzb3VyY2UgZm9yIHBvd2VyLgorICAgICAgKiBEUlAgLSBJbmRpY2F0ZXMgY2FuIGVpdGhlciBhY3QgYXMgVUZQIG9yIERGUCBhdCBhCisgICAgICAqICAgICAgIGdpdmVuIHBvaW50IG9mIHRpbWUuCisgICAgICAqLworICAgICAgUG9ydE1vZGUgc3VwcG9ydGVkTW9kZXM7Cit9OwpkaWZmIC0tZ2l0IGEvdXNiLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvdXNiLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MzhiYzcKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbFVzYlYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxVc2JWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3VzYi8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVXNiVjFfMFRhcmdldFRlc3QuY3BwIGIvdXNiLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxVc2JWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc3Mzk4ZgotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVXNiVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMzUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWdHNIYWxVc2JWMV8wVGFyZ2V0VGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0lVc2IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvSVVzYkNhbGxiYWNrLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL3R5cGVzLmg+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8Y2hyb25vPgorI2luY2x1ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KKyNpbmNsdWRlIDxtdXRleD4KKworI2RlZmluZSBUSU1FT1VUX1BFUklPRCAxMAorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OklVc2JDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6SVVzYjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6UG9ydERhdGFSb2xlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpQb3J0TW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6UG9ydFBvd2VyUm9sZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6UG9ydFJvbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OlBvcnRSb2xlVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6UG9ydFN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgdGhlIFVTQiBoaWRsIEhBTAorY2xhc3MgVXNiSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgLy8gQ2FsbGJhY2sgY2xhc3MgZm9yIHRoZSBVU0IgSElETCBoYWwuCisgIC8vIFVzYiBIYWwgd2lsbCBjYWxsIHRoaXMgb2JqZWN0IHVwb24gcm9sZSBzd2l0Y2ggb3IgcG9ydCBxdWVyeS4KKyAgY2xhc3MgVXNiQ2FsbGJhY2sgOiBwdWJsaWMgSVVzYkNhbGxiYWNrIHsKKyAgICBVc2JIaWRsVGVzdCYgcGFyZW50XzsKKyAgICBpbnQgY29va2llOworCisgICBwdWJsaWM6CisgICAgVXNiQ2FsbGJhY2soVXNiSGlkbFRlc3QmIHBhcmVudCwgaW50IGNvb2tpZSkKKyAgICAgICAgOiBwYXJlbnRfKHBhcmVudCksIGNvb2tpZShjb29raWUpe307CisKKyAgICB2aXJ0dWFsIH5Vc2JDYWxsYmFjaygpID0gZGVmYXVsdDsKKworICAgIC8vIENhbGxiYWNrIG1ldGhvZCBmb3IgdGhlIHBvcnQgc3RhdHVzLgorICAgIFJldHVybjx2b2lkPiBub3RpZnlQb3J0U3RhdHVzQ2hhbmdlKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxQb3J0U3RhdHVzPiYgY3VycmVudFBvcnRTdGF0dXMsIFN0YXR1cyByZXR2YWwpIG92ZXJyaWRlIHsKKyAgICAgIGlmIChyZXR2YWwgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICAgIHBhcmVudF8udXNiX2xhc3RfcG9ydF9zdGF0dXMucG9ydE5hbWUgPQorICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbMF0ucG9ydE5hbWUuY19zdHIoKTsKKyAgICAgICAgcGFyZW50Xy51c2JfbGFzdF9wb3J0X3N0YXR1cy5jdXJyZW50RGF0YVJvbGUgPQorICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbMF0uY3VycmVudERhdGFSb2xlOworICAgICAgICBwYXJlbnRfLnVzYl9sYXN0X3BvcnRfc3RhdHVzLmN1cnJlbnRQb3dlclJvbGUgPQorICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbMF0uY3VycmVudFBvd2VyUm9sZTsKKyAgICAgICAgcGFyZW50Xy51c2JfbGFzdF9wb3J0X3N0YXR1cy5jdXJyZW50TW9kZSA9CisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1swXS5jdXJyZW50TW9kZTsKKyAgICAgIH0KKyAgICAgIHBhcmVudF8udXNiX2xhc3RfY29va2llID0gY29va2llOworICAgICAgcGFyZW50Xy5ub3RpZnkoKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfTsKKworICAgIC8vIENhbGxiYWNrIG1ldGhvZCBmb3IgdGhlIHN0YXR1cyBvZiByb2xlIHN3aXRjaCBvcGVyYXRpb24uCisgICAgUmV0dXJuPHZvaWQ+IG5vdGlmeVJvbGVTd2l0Y2hTdGF0dXMoY29uc3QgaGlkbF9zdHJpbmcmIC8qcG9ydE5hbWUqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQb3J0Um9sZSYgbmV3Um9sZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXMgcmV0dmFsKSBvdmVycmlkZSB7CisgICAgICBwYXJlbnRfLnVzYl9sYXN0X3N0YXR1cyA9IHJldHZhbDsKKyAgICAgIHBhcmVudF8udXNiX2xhc3RfY29va2llID0gY29va2llOworICAgICAgcGFyZW50Xy51c2JfbGFzdF9wb3J0X3JvbGUgPSBuZXdSb2xlOworICAgICAgcGFyZW50Xy51c2Jfcm9sZV9zd2l0Y2hfZG9uZSA9IHRydWU7CisgICAgICBwYXJlbnRfLm5vdGlmeSgpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9OworICB9OworCisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBBTE9HSSgiU2V0dXAiKTsKKyAgICB1c2IgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJVXNiPigpOworICAgIEFTU0VSVF9ORSh1c2IsIG51bGxwdHIpOworCisgICAgdXNiX2NiXzIgPSBuZXcgVXNiQ2FsbGJhY2soKnRoaXMsIDIpOworICAgIEFTU0VSVF9ORSh1c2JfY2JfMiwgbnVsbHB0cik7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+c2V0Q2FsbGJhY2sodXNiX2NiXzIpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeyBBTE9HSSgiVGVhcmRvd24iKTsgfQorCisgIC8vIFVzZWQgYXMgYSBtZWNoYW5pc20gdG8gaW5mb3JtIHRoZSB0ZXN0IGFib3V0IGRhdGEvZXZlbnQgY2FsbGJhY2suCisgIGlubGluZSB2b2lkIG5vdGlmeSgpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sodXNiX210eCk7CisgICAgdXNiX2NvdW50Kys7CisgICAgdXNiX2N2Lm5vdGlmeV9vbmUoKTsKKyAgfQorCisgIC8vIFRlc3QgY29kZSBjYWxscyB0aGlzIGZ1bmN0aW9uIHRvIHdhaXQgZm9yIGRhdGEvZXZlbnQgY2FsbGJhY2suCisgIGlubGluZSBzdGQ6OmN2X3N0YXR1cyB3YWl0KCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayh1c2JfbXR4KTsKKworICAgIHN0ZDo6Y3Zfc3RhdHVzIHN0YXR1cyA9IHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0OworICAgIGF1dG8gbm93ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCk7CisgICAgd2hpbGUgKHVzYl9jb3VudCA9PSAwKSB7CisgICAgICBzdGF0dXMgPQorICAgICAgICAgIHVzYl9jdi53YWl0X3VudGlsKGxvY2ssIG5vdyArIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKFRJTUVPVVRfUEVSSU9EKSk7CisgICAgICBpZiAoc3RhdHVzID09IHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0KSB7CisgICAgICAgIEFMT0dJKCJ0aW1lb3V0Iik7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICB9CisgICAgfQorICAgIHVzYl9jb3VudC0tOworICAgIHJldHVybiBzdGF0dXM7CisgIH0KKworICAvLyBVU0IgaGlkbCBoYWwgUHJveHkKKyAgc3A8SVVzYj4gdXNiOworCisgIC8vIENhbGxiYWNrIG9iamVjdHMgZm9yIHVzYiBoaWRsCisgIC8vIE1ldGhvZHMgb2YgdGhlc2Ugb2JqZWN0cyBhcmUgY2FsbGVkIHRvIG5vdGlmeSBwb3J0IHN0YXR1cyB1cGRhdGVzLgorICBzcDxJVXNiQ2FsbGJhY2s+IHVzYl9jYl8xLCB1c2JfY2JfMjsKKworICAvLyBUaGUgbGFzdCBjb252ZXllZCBzdGF0dXMgb2YgdGhlIFVTQiBwb3J0cy4KKyAgLy8gU3RvcmVzIGluZm9ybWF0aW9uIG9mIGN1cnJlbnR0X2RhdGFfcm9sZSwgcG93ZXJfcm9sZSBmb3IgYWxsIHRoZSBVU0IgcG9ydHMKKyAgUG9ydFN0YXR1cyB1c2JfbGFzdF9wb3J0X3N0YXR1czsKKworICAvLyBTdGF0dXMgb2YgdGhlIGxhc3Qgcm9sZSBzd2l0Y2ggb3BlcmF0aW9uLgorICBTdGF0dXMgdXNiX2xhc3Rfc3RhdHVzOworCisgIC8vIFBvcnQgcm9sZSBpbmZvcm1hdGlvbiBvZiB0aGUgbGFzdCByb2xlIHN3aXRjaCBvcGVyYXRpb24uCisgIFBvcnRSb2xlIHVzYl9sYXN0X3BvcnRfcm9sZTsKKworICAvLyBGbGFnIHRvIGluZGljYXRlIHRoZSBpbnZvY2F0aW9uIG9mIHJvbGUgc3dpdGNoIGNhbGxiYWNrLgorICBib29sIHVzYl9yb2xlX3N3aXRjaF9kb25lOworCisgIC8vIElkZW50aWZpZXIgZm9yIHRoZSB1c2IgY2FsbGJhY2sgb2JqZWN0LgorICAvLyBTdG9yZXMgdGhlIGNvb2tpZSBvZiB0aGUgbGFzdCBpbnZva2VkIHVzYiBjYWxsYmFjayBvYmplY3QuCisgIGludCB1c2JfbGFzdF9jb29raWU7CisKKyAgLy8gc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXMgdG8gY29vcmRpbmF0ZSBiZXR3ZWVuIG1haW4gdGVzdCB0aHJlYWQKKyAgLy8gYW5kIHRoZSBjYWxsYmFjayB0aHJlYWQuCisgIHN0ZDo6bXV0ZXggdXNiX210eDsKKyAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgdXNiX2N2OworICBpbnQgdXNiX2NvdW50OworfTsKKworLyoKKyAqIFRlc3QgdG8gc2VlIGlmIHNldENhbGxiYWNrIHN1Y2NlZWRzLgorICogQ2FsbGJhY2sgb2plY3QgaXMgY3JlYXRlZCBhbmQgcmVnaXN0ZXJlZC4KKyAqIENoZWNrIHRvIHNlZSBpZiB0aGUgaGlkbCB0cmFuc2FjdGlvbiBzdWNjZWVkZWQuCisgKi8KK1RFU1RfRihVc2JIaWRsVGVzdCwgc2V0Q2FsbGJhY2spIHsKKyAgdXNiX2NiXzEgPSBuZXcgVXNiQ2FsbGJhY2soKnRoaXMsIDEpOworICBBU1NFUlRfTkUodXNiX2NiXzEsIG51bGxwdHIpOworICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5zZXRDYWxsYmFjayh1c2JfY2JfMSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCisvKgorICogQ2hlY2sgdG8gc2VlIGlmIHF1ZXJ5aW5nIHR5cGUtYworICogcG9ydCBzdGF0dXMgc3VjY2VlZHMuCisgKi8KK1RFU1RfRihVc2JIaWRsVGVzdCwgcXVlcnlQb3J0U3RhdHVzKSB7CisgIFJldHVybjx2b2lkPiByZXQgPSB1c2ItPnF1ZXJ5UG9ydFN0YXR1cygpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOworICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKKyAgQUxPR0koInJpZ2h0YWZ0ZXI6ICVzIiwgdXNiX2xhc3RfcG9ydF9zdGF0dXMucG9ydE5hbWUuY19zdHIoKSk7Cit9CisKKy8qCisgKiBUcnlpbmcgdG8gc3dpdGNoIGEgbm9uLWV4aXN0ZW50IHBvcnQgc2hvdWxkIGZhaWwuCisgKiBUaGlzIHRlc3QgY2FzZSB0cmllZCB0byBzd2l0Y2ggdGhlIHBvcnQgd2l0aCBlbXB0eQorICogbmFtZSB3aGljaCBpcyBleHBlY3RlZCB0byBmYWlsLgorICovCitURVNUX0YoVXNiSGlkbFRlc3QsIHN3aXRjaEVtcHR5UG9ydCkgeworICBzdHJ1Y3QgUG9ydFJvbGUgcm9sZTsKKyAgcm9sZS50eXBlID0gUG9ydFJvbGVUeXBlOjpEQVRBX1JPTEU7CisKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+c3dpdGNoUm9sZSgiIiwgcm9sZSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CisgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SLCB1c2JfbGFzdF9zdGF0dXMpOworICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKK30KKworLyoKKyAqIFRlc3Qgc3dpdGNoaW5nIHRoZSBtb2RlIG9mIHVzYiBwb3J0LgorICogVGVzdCBjYXNlIHF1ZXJpZXMgdGhlIHVzYiBwb3J0cyBwcmVzZW50IGluIGRldmljZS4KKyAqIElmIHRoZXJlIGlzIGF0bGVhc3Qgb25lIHVzYiBwb3J0LCBhIG1vZGUgc3dpdGNoCisgKiB0byBERlAgaXMgYXR0ZW1wdGVkIGZvciB0aGUgcG9ydC4KKyAqIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXMgYXJlIGNoZWNrZWQgdG8gc2VlIGlmIHRoZSBtb2RlCisgKiBzd2l0Y2ggd2FzIHN1Y2Nlc3NmdWxsLiBVcG9uIHN1Y2Nlc3MsIFN0YXR1czo6U1VDQ0VTUworICogaXMgZXhwZWN0ZWQgdG8gYmUgcmV0dXJuZWQuCisgKi8KK1RFU1RfRihVc2JIaWRsVGVzdCwgc3dpdGNoTW9kZXRvREZQKSB7CisgIHN0cnVjdCBQb3J0Um9sZSByb2xlOworICByb2xlLnR5cGUgPSBQb3J0Um9sZVR5cGU6Ok1PREU7CisgIHJvbGUucm9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0TW9kZTo6REZQKTsKKworICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5xdWVyeVBvcnRTdGF0dXMoKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdCgpKTsKKyAgRVhQRUNUX0VRKDIsIHVzYl9sYXN0X2Nvb2tpZSk7CisKKyAgaWYgKCF1c2JfbGFzdF9wb3J0X3N0YXR1cy5wb3J0TmFtZS5lbXB0eSgpKSB7CisgICAgaGlkbF9zdHJpbmcgcG9ydEJlaW5nU3dpdGNoZWQgPSB1c2JfbGFzdF9wb3J0X3N0YXR1cy5wb3J0TmFtZTsKKyAgICBBTE9HSSgibW9kZSBwb3J0bmFtZTolcyIsIHBvcnRCZWluZ1N3aXRjaGVkLmNfc3RyKCkpOworICAgIHVzYl9yb2xlX3N3aXRjaF9kb25lID0gZmFsc2U7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+c3dpdGNoUm9sZShwb3J0QmVpbmdTd2l0Y2hlZC5jX3N0cigpLCByb2xlKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHN0ZDo6Y3Zfc3RhdHVzIHdhaXRTdGF0dXMgPSB3YWl0KCk7CisgICAgd2hpbGUgKHdhaXRTdGF0dXMgPT0gc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQgJiYKKyAgICAgICAgICAgdXNiX3JvbGVfc3dpdGNoX2RvbmUgPT0gZmFsc2UpCisgICAgICB3YWl0U3RhdHVzID0gd2FpdCgpOworCisgICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0U3RhdHVzKTsKKyAgICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKKworICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydFJvbGVUeXBlOjpNT0RFKSwKKyAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHVzYl9sYXN0X3BvcnRfcm9sZS50eXBlKSk7CisgICAgaWYgKHVzYl9sYXN0X3N0YXR1cyA9PSBTdGF0dXM6OlNVQ0NFU1MpIHsKKyAgICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydE1vZGU6OkRGUCksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHVzYl9sYXN0X3BvcnRfcm9sZS5yb2xlKSk7CisgICAgfSBlbHNlIHsKKyAgICAgIEVYUEVDVF9ORShzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydE1vZGU6OlVGUCksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHVzYl9sYXN0X3BvcnRfcm9sZS5yb2xlKSk7CisgICAgfQorICB9Cit9CisKKy8qCisgKiBUZXN0IHN3aXRjaGluZyB0aGUgcG93ZXIgcm9sZSBvZiB1c2IgcG9ydC4KKyAqIFRlc3QgY2FzZSBxdWVyaWVzIHRoZSB1c2IgcG9ydHMgcHJlc2VudCBpbiBkZXZpY2UuCisgKiBJZiB0aGVyZSBpcyBhdGxlYXN0IG9uZSB1c2IgcG9ydCwgYSBwb3dlciByb2xlIHN3aXRjaAorICogdG8gU09VUkNFIGlzIGF0dGVtcHRlZCBmb3IgdGhlIHBvcnQuCisgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVzIGFyZSBjaGVja2VkIHRvIHNlZSBpZiB0aGUgcG93ZXIgcm9sZQorICogc3dpdGNoIHdhcyBzdWNjZXNzZnVsbC4gVXBvbiBzdWNjZXNzLCBTdGF0dXM6OlNVQ0NFU1MKKyAqIGlzIGV4cGVjdGVkIHRvIGJlIHJldHVybmVkLgorICovCisKK1RFU1RfRihVc2JIaWRsVGVzdCwgc3dpdGNoUG93ZXJSb2xlKSB7CisgIHN0cnVjdCBQb3J0Um9sZSByb2xlOworICByb2xlLnR5cGUgPSBQb3J0Um9sZVR5cGU6OlBPV0VSX1JPTEU7CisgIHJvbGUucm9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0UG93ZXJSb2xlOjpTT1VSQ0UpOworCisgIFJldHVybjx2b2lkPiByZXQgPSB1c2ItPnF1ZXJ5UG9ydFN0YXR1cygpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOworICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKKworICBpZiAoIXVzYl9sYXN0X3BvcnRfc3RhdHVzLnBvcnROYW1lLmVtcHR5KCkpIHsKKyAgICBoaWRsX3N0cmluZyBwb3J0QmVpbmdTd2l0Y2hlZCA9IHVzYl9sYXN0X3BvcnRfc3RhdHVzLnBvcnROYW1lOworICAgIEFMT0dJKCJzd2l0Y2hQb3dlciByb2xlIHBvcnRuYW1lOiVzIiwgcG9ydEJlaW5nU3dpdGNoZWQuY19zdHIoKSk7CisgICAgdXNiX3JvbGVfc3dpdGNoX2RvbmUgPSBmYWxzZTsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5zd2l0Y2hSb2xlKHBvcnRCZWluZ1N3aXRjaGVkLmNfc3RyKCksIHJvbGUpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgc3RkOjpjdl9zdGF0dXMgd2FpdFN0YXR1cyA9IHdhaXQoKTsKKyAgICB3aGlsZSAod2FpdFN0YXR1cyA9PSBzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCAmJgorICAgICAgICAgICB1c2Jfcm9sZV9zd2l0Y2hfZG9uZSA9PSBmYWxzZSkKKyAgICAgIHdhaXRTdGF0dXMgPSB3YWl0KCk7CisKKyAgICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXRTdGF0dXMpOworICAgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworCisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0Um9sZVR5cGU6OlBPV0VSX1JPTEUpLAorICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNiX2xhc3RfcG9ydF9yb2xlLnR5cGUpKTsKKyAgICBpZiAodXNiX2xhc3Rfc3RhdHVzID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0UG93ZXJSb2xlOjpTT1VSQ0UpLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2JfbGFzdF9wb3J0X3JvbGUucm9sZSkpOworICAgIH0gZWxzZSB7CisgICAgICBFWFBFQ1RfTkUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnRQb3dlclJvbGU6OlNJTkspLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2JfbGFzdF9wb3J0X3JvbGUucm9sZSkpOworICAgIH0KKyAgfQorfQorCisvKgorICogVGVzdCBzd2l0Y2hpbmcgdGhlIGRhdGEgcm9sZSBvZiB1c2IgcG9ydC4KKyAqIFRlc3QgY2FzZSBxdWVyaWVzIHRoZSB1c2IgcG9ydHMgcHJlc2VudCBpbiBkZXZpY2UuCisgKiBJZiB0aGVyZSBpcyBhdGxlYXN0IG9uZSB1c2IgcG9ydCwgYSBwb3dlciByb2xlIHN3aXRjaAorICogdG8gSE9TVCBpcyBhdHRlbXB0ZWQgZm9yIHRoZSBwb3J0LgorICogVGhlIGNhbGxiYWNrIHBhcmFtZXRlcyBhcmUgY2hlY2tlZCB0byBzZWUgaWYgdGhlIHBvd2VyIHJvbGUKKyAqIHN3aXRjaCB3YXMgc3VjY2Vzc2Z1bGwuIFVwb24gc3VjY2VzcywgU3RhdHVzOjpTVUNDRVNTCisgKiBpcyBleHBlY3RlZCB0byBiZSByZXR1cm5lZC4KKyAqLworVEVTVF9GKFVzYkhpZGxUZXN0LCBzd2l0Y2hEYXRhUm9sZSkgeworICBzdHJ1Y3QgUG9ydFJvbGUgcm9sZTsKKyAgcm9sZS50eXBlID0gUG9ydFJvbGVUeXBlOjpEQVRBX1JPTEU7CisgIHJvbGUucm9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0RGF0YVJvbGU6OkhPU1QpOworCisgIFJldHVybjx2b2lkPiByZXQgPSB1c2ItPnF1ZXJ5UG9ydFN0YXR1cygpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOworICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKKworICBpZiAoIXVzYl9sYXN0X3BvcnRfc3RhdHVzLnBvcnROYW1lLmVtcHR5KCkpIHsKKyAgICBoaWRsX3N0cmluZyBwb3J0QmVpbmdTd2l0Y2hlZCA9IHVzYl9sYXN0X3BvcnRfc3RhdHVzLnBvcnROYW1lOworICAgIEFMT0dJKCJwb3J0bmFtZTolcyIsIHBvcnRCZWluZ1N3aXRjaGVkLmNfc3RyKCkpOworICAgIHVzYl9yb2xlX3N3aXRjaF9kb25lID0gZmFsc2U7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+c3dpdGNoUm9sZShwb3J0QmVpbmdTd2l0Y2hlZC5jX3N0cigpLCByb2xlKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHN0ZDo6Y3Zfc3RhdHVzIHdhaXRTdGF0dXMgPSB3YWl0KCk7CisgICAgd2hpbGUgKHdhaXRTdGF0dXMgPT0gc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQgJiYKKyAgICAgICAgICAgdXNiX3JvbGVfc3dpdGNoX2RvbmUgPT0gZmFsc2UpCisgICAgICB3YWl0U3RhdHVzID0gd2FpdCgpOworCisgICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0U3RhdHVzKTsKKyAgICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKKworICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydFJvbGVUeXBlOjpEQVRBX1JPTEUpLAorICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNiX2xhc3RfcG9ydF9yb2xlLnR5cGUpKTsKKyAgICBpZiAodXNiX2xhc3Rfc3RhdHVzID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0RGF0YVJvbGU6OkhPU1QpLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2JfbGFzdF9wb3J0X3JvbGUucm9sZSkpOworICAgIH0gZWxzZSB7CisgICAgICBFWFBFQ1RfTkUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnREYXRhUm9sZTo6REVWSUNFKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNiX2xhc3RfcG9ydF9yb2xlLnJvbGUpKTsKKyAgICB9CisgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS91c2IvQW5kcm9pZC5icCBiL3VzYi9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZjcwZWIKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvQW5kcm9pZC5icCBiL3ZpYnJhdG9yLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiZWZmNjgKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDYzIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklWaWJyYXRvci5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvMS4wL1ZpYnJhdG9yQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvMS4wL0lWaWJyYXRvci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvMS4wL0lId1ZpYnJhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvQm5Id1ZpYnJhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvQnBId1ZpYnJhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvQnNWaWJyYXRvci5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvQW5kcm9pZC5tayBiL3ZpYnJhdG9yLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1NGI2NTUKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDIyOCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvci1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEVmZmVjdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvVjFfMC9FZmZlY3QuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDo6dHlwZXMuRWZmZWN0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChFZmZlY3RTdHJlbmd0aCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvVjFfMC9FZmZlY3RTdHJlbmd0aC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjp0eXBlcy5FZmZlY3RTdHJlbmd0aAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjp0eXBlcy5TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVmlicmF0b3IuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yL1YxXzAvSVZpYnJhdG9yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVmlicmF0b3IuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDo6SVZpYnJhdG9yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmlicmF0b3IuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRWZmZWN0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL0VmZmVjdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjp0eXBlcy5FZmZlY3QKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEVmZmVjdFN0cmVuZ3RoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL0VmZmVjdFN0cmVuZ3RoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OnR5cGVzLkVmZmVjdFN0cmVuZ3RoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yL1YxXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElWaWJyYXRvci5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvVjFfMC9JVmlicmF0b3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWaWJyYXRvci5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjpJVmlicmF0b3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWaWJyYXRvci5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvVjFfMC9Db25zdGFudHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZpYnJhdG9yLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL0lWaWJyYXRvci5oYWwgYi92aWJyYXRvci8xLjAvSVZpYnJhdG9yLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTdhZDBkCi0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL0lWaWJyYXRvci5oYWwKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA7CisKK2ludGVyZmFjZSBJVmlicmF0b3IgeworICAvKioKKyAgICogVHVybiBvbiB2aWJyYXRvcgorICAgKgorICAgKiBUaGlzIGZ1bmN0aW9uIG11c3Qgb25seSBiZSBjYWxsZWQgYWZ0ZXIgdGhlIHByZXZpb3VzIHRpbWVvdXQgaGFzIGV4cGlyZWQgb3IKKyAgICogd2FzIGNhbmNlbGVkICh0aHJvdWdoIG9mZigpKS4KKyAgICogQHBhcmFtIHRpbWVvdXRfbXMgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB2aWJyYXRlLgorICAgKiBAcmV0dXJuIHZpYnJhdG9yT25SZXQgd2hldGhlciB2aWJyYXRvciBjb21tYW5kIHdhcyBzdWNjZXNzZnVsIG9yIG5vdC4KKyAgICovCisgIG9uKHVpbnQzMl90IHRpbWVvdXRNcykgZ2VuZXJhdGVzIChTdGF0dXMgdmlicmF0b3JPblJldCk7CisKKyAgLyoqCisgICAqIFR1cm4gb2ZmIHZpYnJhdG9yCisgICAqCisgICAqIENhbmNlbCBhIHByZXZpb3VzbHktc3RhcnRlZCB2aWJyYXRpb24sIGlmIGFueS4KKyAgICogQHJldHVybiB2aWJyYXRvck9mZlJldCB3aGV0aGVyIHZpYnJhdG9yIGNvbW1hbmQgd2FzIHN1Y2Nlc3NmdWwgb3Igbm90LgorICAgKi8KKyAgb2ZmKCkgZ2VuZXJhdGVzIChTdGF0dXMgdmlicmF0b3JPZmZSZXQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHZpYnJhdG9yIHN1cHBvcnRzIGNoYW5nZXMgdG8gaXRzIHZpYnJhdGlvbmFsIGFtcGxpdHVkZS4KKyAgICovCisgIHN1cHBvcnRzQW1wbGl0dWRlQ29udHJvbCgpIGdlbmVyYXRlcyAoYm9vbCBzdXBwb3J0cyk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIG1vdG9yJ3MgdmlicmF0aW9uYWwgYW1wbGl0dWRlLgorICAgKgorICAgKiBDaGFuZ2VzIHRoZSBmb3JjZSBiZWluZyBwcm9kdWNlZCBieSB0aGUgdW5kZXJseWluZyBtb3Rvci4KKyAgICoKKyAgICogQHBhcmFtIGFtcGxpdHVkZSBUaGUgdW5pdGxlc3MgZm9yY2Ugc2V0dGluZy4gTm90ZSB0aGF0IHRoaXMgbnVtYmVyIG11c3QKKyAgICogICAgICAgICAgICAgICAgICBiZSBiZXR3ZWVuIDEgYW5kIDI1NSwgaW5jbHVzaXZlLiBJZiB0aGUgbW90b3IgZG9lcyBub3QKKyAgICogICAgICAgICAgICAgICAgICBoYXZlIGV4YWN0bHkgMjU1IHN0ZXBzLCBpdCBtdXN0IGRvIGl0J3MgYmVzdCB0byBtYXAgaXQKKyAgICogICAgICAgICAgICAgICAgICBvbnRvIHRoZSBudW1iZXIgb2Ygc3RlcHMgaXQgZG9lcyBoYXZlLgorICAgKiBAcmV0dXJuIHN0YXR1cyBXaGV0aGVyIHRoZSBjb21tYW5kIHdhcyBzdWNjZXNzZnVsIG9yIG5vdC4gTXVzdCByZXR1cm4KKyAgICogICAgICAgICAgICAgICAgU3RhdHVzOjpVTlNVUFBPUlRFRF9PUEVSQVRJT04gaWYgc2V0dGluZyB0aGUgYW1wbGl0dWRlIGlzCisgICAqICAgICAgICAgICAgICAgIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZS4KKyAgICovCisgIHNldEFtcGxpdHVkZSh1aW50OF90IGFtcGxpdHVkZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAvKioKKyAgICogRmlyZSBvZmYgYSBwcmVkZWZpbmVkIGhhcHRpYyBldmVudC4KKyAgICoKKyAgICogQHBhcmFtIGV2ZW50IFRoZSB0eXBlIG9mIGhhcHRpYyBldmVudCB0byB0cmlnZ2VyLgorICAgKiBAcmV0dXJuIHN0YXR1cyBXaGV0aGVyIHRoZSBlZmZlY3Qgd2FzIHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb3Igbm90LiBNdXN0CisgICAqICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OlVOU1VQUE9SVEVEX09QRVJBVElPTiBpcyB0aGUgZWZmZWN0IGlzIG5vdAorICAgKiAgICAgICAgICAgICAgICBzdXBwb3J0ZWQuCisgICAqIEByZXR1cm4gbGVuZ3RoTXMgVGhlIGxlbmd0aCBvZiB0aW1lIHRoZSBldmVudCBpcyBleHBlY3RlZCB0byB0YWtlIGluCisgICAqICAgICAgICAgICAgICAgICAgbWlsbGlzZWNvbmRzLiBUaGlzIGRvZXNuJ3QgbmVlZCB0byBiZSBwZXJmZWN0bHkgYWNjdXJhdGUsCisgICAqICAgICAgICAgICAgICAgICAgYnV0IHNob3VsZCBiZSBhIHJlYXNvbmFibGUgYXBwcm94aW1hdGlvbi4gU2hvdWxkIGJlIGEKKyAgICogICAgICAgICAgICAgICAgICBwb3NpdGl2ZSwgbm9uLXplcm8gdmFsdWUgaWYgdGhlIHJldHVybmVkIHN0YXR1cyBpcworICAgKiAgICAgICAgICAgICAgICAgIFN0YXR1czo6T0ssIGFuZCBzZXQgdG8gMCBvdGhlcndpc2UuCisgICAqLworICBwZXJmb3JtKEVmZmVjdCBlZmZlY3QsIEVmZmVjdFN0cmVuZ3RoIHN0cmVuZ3RoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHVpbnQzMl90IGxlbmd0aE1zKTsKK307CmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDIwMGRhCi0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDMwIEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIlZpYnJhdG9yLmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNGE5NTUKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzUgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgbGliaGlkbGJhc2UgXAorICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgbGlibG9nIFwKKyAgbGlidXRpbHMgXAorICBsaWJoYXJkd2FyZSBcCisgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL2RlZmF1bHQvVmlicmF0b3IuY3BwIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvVmlicmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5Y2YzZGMKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9WaWJyYXRvci5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiVmlicmF0b3JTZXJ2aWNlIgorCisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvdmlicmF0b3IuaD4KKworI2luY2x1ZGUgIlZpYnJhdG9yLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdmlicmF0b3IgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworVmlicmF0b3I6OlZpYnJhdG9yKHZpYnJhdG9yX2RldmljZV90ICpkZXZpY2UpIDogbURldmljZShkZXZpY2UpIHt9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp2aWJyYXRvcjo6VjFfMDo6SVZpYnJhdG9yIGZvbGxvdy4KK1JldHVybjxTdGF0dXM+IFZpYnJhdG9yOjpvbih1aW50MzJfdCB0aW1lb3V0X21zKSB7CisgICAgaW50MzJfdCByZXQgPSBtRGV2aWNlLT52aWJyYXRvcl9vbihtRGV2aWNlLCB0aW1lb3V0X21zKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgQUxPR0UoIm9uIGNvbW1hbmQgZmFpbGVkIDogJXMiLCBzdHJlcnJvcigtcmV0KSk7CisgICAgICAgIHJldHVybiBTdGF0dXM6OlVOS05PV05fRVJST1I7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCitSZXR1cm48U3RhdHVzPiBWaWJyYXRvcjo6b2ZmKCkgIHsKKyAgICBpbnQzMl90IHJldCA9IG1EZXZpY2UtPnZpYnJhdG9yX29mZihtRGV2aWNlKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgQUxPR0UoIm9mZiBjb21tYW5kIGZhaWxlZCA6ICVzIiwgc3RyZXJyb3IoLXJldCkpOworICAgICAgICByZXR1cm4gU3RhdHVzOjpVTktOT1dOX0VSUk9SOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpPSzsKK30KKworUmV0dXJuPGJvb2w+IFZpYnJhdG9yOjpzdXBwb3J0c0FtcGxpdHVkZUNvbnRyb2woKSAgeworICAgIHJldHVybiBmYWxzZTsKK30KKworUmV0dXJuPFN0YXR1cz4gVmlicmF0b3I6OnNldEFtcGxpdHVkZSh1aW50OF90KSB7CisgICAgcmV0dXJuIFN0YXR1czo6VU5TVVBQT1JURURfT1BFUkFUSU9OOworfQorCitSZXR1cm48dm9pZD4gVmlicmF0b3I6OnBlcmZvcm0oRWZmZWN0LCBFZmZlY3RTdHJlbmd0aCwgcGVyZm9ybV9jYiBfaGlkbF9jYikgeworICAgIF9oaWRsX2NiKFN0YXR1czo6VU5TVVBQT1JURURfT1BFUkFUSU9OLCAwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitJVmlicmF0b3IqIEhJRExfRkVUQ0hfSVZpYnJhdG9yKGNvbnN0IGNoYXIgKiAvKmhhbCovKSB7CisgICAgdmlicmF0b3JfZGV2aWNlX3QgKnZpYl9kZXZpY2U7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKmh3X21vZHVsZSA9IG51bGxwdHI7CisKKyAgICBpbnQgcmV0ID0gaHdfZ2V0X21vZHVsZShWSUJSQVRPUl9IQVJEV0FSRV9NT0RVTEVfSUQsICZod19tb2R1bGUpOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXQgPSB2aWJyYXRvcl9vcGVuKGh3X21vZHVsZSwgJnZpYl9kZXZpY2UpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIEFMT0dFKCJ2aWJyYXRvcl9vcGVuIGZhaWxlZDogJWQiLCByZXQpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoImh3X2dldF9tb2R1bGUgJXMgZmFpbGVkOiAlZCIsIFZJQlJBVE9SX0hBUkRXQVJFX01PRFVMRV9JRCwgcmV0KTsKKyAgICB9CisKKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBWaWJyYXRvcih2aWJfZGV2aWNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBBTE9HRSgiUGFzc3Rocm91Z2ggZmFpbGVkIHRvIG9wZW4gbGVnYWN5IEhBTC4iKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB2aWJyYXRvcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL2RlZmF1bHQvVmlicmF0b3IuaCBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L1ZpYnJhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVhNmVhOAotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L1ZpYnJhdG9yLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfVklCUkFUT1JfVjFfMF9WSUJSQVRPUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfVklCUkFUT1JfVjFfMF9WSUJSQVRPUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9JVmlicmF0b3IuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdmlicmF0b3IgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RydWN0IFZpYnJhdG9yIDogcHVibGljIElWaWJyYXRvciB7CisgIFZpYnJhdG9yKHZpYnJhdG9yX2RldmljZV90ICpkZXZpY2UpOworCisgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp2aWJyYXRvcjo6VjFfMDo6SVZpYnJhdG9yIGZvbGxvdy4KKyAgUmV0dXJuPFN0YXR1cz4gb24odWludDMyX3QgdGltZW91dE1zKSAgb3ZlcnJpZGU7CisgIFJldHVybjxTdGF0dXM+IG9mZigpICBvdmVycmlkZTsKKyAgUmV0dXJuPGJvb2w+IHN1cHBvcnRzQW1wbGl0dWRlQ29udHJvbCgpIG92ZXJyaWRlOworICBSZXR1cm48U3RhdHVzPiBzZXRBbXBsaXR1ZGUodWludDhfdCBhbXBsaXR1ZGUpIG92ZXJyaWRlOworICBSZXR1cm48dm9pZD4gcGVyZm9ybShFZmZlY3QgZWZmZWN0LCBFZmZlY3RTdHJlbmd0aCBzdHJlbmd0aCwgcGVyZm9ybV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgIHZpYnJhdG9yX2RldmljZV90ICAgICptRGV2aWNlOworfTsKKworZXh0ZXJuICJDIiBJVmlicmF0b3IqIEhJRExfRkVUQ0hfSVZpYnJhdG9yKGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgdmlicmF0b3IKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX1ZJQlJBVE9SX1YxXzBfVklCUkFUT1JfSApkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAtc2VydmljZS5yYyBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjAyNzA2NQotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIHZpYnJhdG9yLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NjMDc0NAotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvSVZpYnJhdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjp2aWJyYXRvcjo6VjFfMDo6SVZpYnJhdG9yOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJVmlicmF0b3I+KCk7Cit9CmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvdHlwZXMuaGFsIGIvdmlicmF0b3IvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDgwYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDsKKworZW51bSBTdGF0dXMgOiB1aW50MzJfdCB7CisgICAgT0ssCisgICAgVU5LTk9XTl9FUlJPUiwKKyAgICBCQURfVkFMVUUsCisgICAgVU5TVVBQT1JURURfT1BFUkFUSU9OCit9OworCitAZXhwb3J0CitlbnVtIEVmZmVjdCA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBBIHNpbmdsZSBjbGljayBlZmZlY3QuCisgICAgICoKKyAgICAgKiBUaGlzIGVmZmVjdCBzaG91bGQgcHJvZHVjZSBhIHNoYXJwLCBjcmlzcCBjbGljayBzZW5zYXRpb24uCisgICAgICovCisgICAgQ0xJQ0ssCisgICAgLyoqCisgICAgICogQSBkb3VibGUgY2xpY2sgZWZmZWN0LgorICAgICAqCisgICAgICogVGhpcyBlZmZlY3Qgc2hvdWxkIHByb2R1Y2UgdHdvIHNlcXVlbnRpYWwgc2hhcnAsIGNyaXNwIGNsaWNrIHNlbnNhdGlvbnMgd2l0aCBhIG1pbmltYWwKKyAgICAgKiBhbW91bnQgb2YgdGltZSBiZXR3ZWVuIHRoZW0uCisgICAgICovCisgICAgRE9VQkxFX0NMSUNLCit9OworCitAZXhwb3J0CitlbnVtIEVmZmVjdFN0cmVuZ3RoIDogdWludDhfdCB7CisgICAgTElHSFQsCisgICAgTUVESVVNLAorICAgIFNUUk9ORworfTsKZGlmZiAtLWdpdCBhL3JhZGlvLzEuMC92dHMvQW5kcm9pZC5tayBiL3ZpYnJhdG9yLzEuMC92dHMvQW5kcm9pZC5tawpzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIHJhZGlvLzEuMC92dHMvQW5kcm9pZC5tawpjb3B5IHRvIHZpYnJhdG9yLzEuMC92dHMvQW5kcm9pZC5tawpkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi92aWJyYXRvci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTI1ZGVmCi0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNCBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbFZpYnJhdG9yVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFZpYnJhdG9yVjFfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQorCmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVmlicmF0b3JWMV8wVGFyZ2V0VGVzdC5jcHAgYi92aWJyYXRvci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVmlicmF0b3JWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQxNWFkNQotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxWaWJyYXRvclYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAidmlicmF0b3JfaGlkbF9oYWxfdGVzdCIKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvSVZpYnJhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dmlicmF0b3I6OlYxXzA6OkVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZpYnJhdG9yOjpWMV8wOjpFZmZlY3RTdHJlbmd0aDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZpYnJhdG9yOjpWMV8wOjpJVmlicmF0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp2aWJyYXRvcjo6VjFfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIFZJQlJBVE9SIEhJREwgSEFMLgorY2xhc3MgVmlicmF0b3JIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgdmlicmF0b3IgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJVmlicmF0b3I+KCk7CisgICAgQVNTRVJUX05FKHZpYnJhdG9yLCBudWxscHRyKTsKKyAgfQorCisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgc3A8SVZpYnJhdG9yPiB2aWJyYXRvcjsKK307CisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAgKGtlcHQgc2luY2UgdGhpcyBmaWxlIGlzIGEgdGVtcGxhdGUpLgorY2xhc3MgVmlicmF0b3JIaWRsRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQorICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorCisgcHJpdmF0ZToKK307CisKK3N0YXRpYyB2b2lkIHZhbGlkYXRlUGVyZm9ybUVmZmVjdChTdGF0dXMgc3RhdHVzLCB1aW50MzJfdCBsZW5ndGhNcykgeworICBBU1NFUlRfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpPSyB8fCBzdGF0dXMgPT0gU3RhdHVzOjpVTlNVUFBPUlRFRF9PUEVSQVRJT04pOworICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgIEFTU0VSVF9HVChsZW5ndGhNcywgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KDApKTsKKyAgfSBlbHNlIHsKKyAgICAgIEFTU0VSVF9FUShsZW5ndGhNcywgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KDApKTsKKyAgfQorfQorCitURVNUX0YoVmlicmF0b3JIaWRsVGVzdCwgT25UaGVuT2ZmQmVmb3JlVGltZW91dCkgeworICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgdmlicmF0b3ItPm9uKDIwMDApKTsKKyAgc2xlZXAoMSk7CisgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCB2aWJyYXRvci0+b2ZmKCkpOworfQorCitURVNUX0YoVmlicmF0b3JIaWRsVGVzdCwgUGVyZm9ybUVmZmVjdCkgeworICB2aWJyYXRvci0+cGVyZm9ybShFZmZlY3Q6OkNMSUNLLCBFZmZlY3RTdHJlbmd0aDo6TUVESVVNLCB2YWxpZGF0ZVBlcmZvcm1FZmZlY3QpOworICB2aWJyYXRvci0+cGVyZm9ybShFZmZlY3Q6OkRPVUJMRV9DTElDSywgRWZmZWN0U3RyZW5ndGg6OkxJR0hULCB2YWxpZGF0ZVBlcmZvcm1FZmZlY3QpOworfQorCitURVNUX0YoVmlicmF0b3JIaWRsVGVzdCwgQ2hhbmdlVmlicmF0aW9uYWxBbXBsaXR1ZGUpIHsKKyAgaWYgKHZpYnJhdG9yLT5zdXBwb3J0c0FtcGxpdHVkZUNvbnRyb2woKSkgeworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCB2aWJyYXRvci0+c2V0QW1wbGl0dWRlKDEpKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgdmlicmF0b3ItPm9uKDIwMDApKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgdmlicmF0b3ItPnNldEFtcGxpdHVkZSgxMjgpKTsKKyAgICBzbGVlcCgxKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgdmlicmF0b3ItPnNldEFtcGxpdHVkZSgyNTUpKTsKKyAgICBzbGVlcCgxKTsKKyAgfQorfQorCitURVNUX0YoVmlicmF0b3JIaWRsVGVzdCwgQW1wbGl0dWRlT3V0c2lkZVJhbmdlRmFpbHMpIHsKKyAgaWYgKHZpYnJhdG9yLT5zdXBwb3J0c0FtcGxpdHVkZUNvbnRyb2woKSkgeworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgdmlicmF0b3ItPnNldEFtcGxpdHVkZSgwKSk7CisgIH0KK30KKworVEVTVF9GKFZpYnJhdG9ySGlkbFRlc3QsIFNldEFtcGxpdHVkZVJldHVyblVuc3VwcG9ydGVkT3BlcmF0aW9uSWZOb3RTdXBwb3J0ZWQpIHsKKyAgaWYgKCF2aWJyYXRvci0+c3VwcG9ydHNBbXBsaXR1ZGVDb250cm9sKCkpIHsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpVTlNVUFBPUlRFRF9PUEVSQVRJT04sIHZpYnJhdG9yLT5zZXRBbXBsaXR1ZGUoMSkpOworICB9Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChuZXcgVmlicmF0b3JIaWRsRW52aXJvbm1lbnQpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgTE9HKElORk8pIDw8ICJUZXN0IHJlc3VsdCA9ICIgPDwgc3RhdHVzOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvdmlicmF0b3IvQW5kcm9pZC5icCBiL3ZpYnJhdG9yL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxOWEzNwotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorICAgICIxLjAvZGVmYXVsdCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS92ci8xLjAvQW5kcm9pZC5icCBiL3ZyLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2OTQ5YzUKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDU5IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAiSVZyLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnZyQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZyLzEuMC9WckFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnZyQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZyLzEuMC9JVnIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZyLzEuMC9JSHdWci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0JuSHdWci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0JwSHdWci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0JzVnIuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdnIvMS4wL0FuZHJvaWQubWsgYi92ci8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzVjNjc1ZAotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNzYgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudnItVjEuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgSVZyLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92ci9WMV8wL0lWci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZyLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMDo6SVZyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVnIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnZyLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIElWci5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdnIvVjFfMC9JVnIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWci5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52ckAxLjA6OklWcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZyLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdnIvMS4wL0lWci5oYWwgYi92ci8xLjAvSVZyLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjk5NmU5Ci0tLSAvZGV2L251bGwKKysrIGIvdnIvMS4wL0lWci5oYWwKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS52ckAxLjA7CisKK2ludGVyZmFjZSBJVnIgeworICAvKioKKyAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIHNldCB1cCBhbnkgc3RhdGUgbmVlZGVkIGF0IHJ1bnRpbWUgc3RhcnR1cC4gIFRoaXMgaXMKKyAgICogY2FsbGVkIG9uY2UgZnJvbSB0aGUgVnJNYW5hZ2VyU2VydmljZSBkdXJpbmcgaXRzIGJvb3QgcGhhc2UuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgQGVudHJ5CisgIEBleGl0CisgIGluaXQoKTsKKworICAvKioKKyAgICogU2V0IHRoZSBWUiBtb2RlIHN0YXRlLiAgUG9zc2libGUgc3RhdGVzIG9mIHRoZSBlbmFibGVkIHBhcmFtZXRlciBhcmU6CisgICAqIGZhbHNlIC0gVlIgbW9kZSBpcyBkaXNhYmxlZCwgdHVybiBvZmYgYWxsIFZSLXNwZWNpZmljIHNldHRpbmdzLgorICAgKiB0cnVlIC0gVlIgbW9kZSBpcyBlbmFibGVkLCB0dXJuIG9uIGFsbCBWUi1zcGVjaWZpYyBzZXR0aW5ncy4KKyAgICoKKyAgICogVGhpcyBtdXN0IGJlIGNhbGxlZCB3aGVuZXZlciB0aGUgdGhlIEFuZHJvaWQgc3lzdGVtIGVudGVycyBvciBsZWF2ZXMgVlIKKyAgICogbW9kZS4gVGhpcyB3aWxsIHR5cGljYWxseSBvY2N1ciB3aGVuIHRoZSB1c2VyIHN3aXRjaGVzIHRvIG9yIGZyb20gYSBWUgorICAgKiBhcHBsaWNhdGlvbiB0aGF0IGlzIGRvaW5nIHN0ZXJlb3Njb3BpYyByZW5kZXJpbmcuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgQGV4aXQKKyAgc2V0VnJNb2RlKGJvb2wgZW5hYmxlZCk7Cit9OwpkaWZmIC0tZ2l0IGEvdnIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL3ZyLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRjMWJmYgotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNiBAQAorY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMC1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsiVnIuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMCIsCisgICAgXSwKK30KKworY2NfYmluYXJ5IHsKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMC1zZXJ2aWNlIiwKKyAgICBpbml0X3JjOiBbImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wLXNlcnZpY2UucmMiXSwKKyAgICBzcmNzOiBbInNlcnZpY2UuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJkbCIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdnIvMS4wL2RlZmF1bHQvVnIuY3BwIGIvdnIvMS4wL2RlZmF1bHQvVnIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiYmE5ZWIKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvZGVmYXVsdC9Wci5jcHAKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiVnJTZXJ2aWNlIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS92ci5oPgorCisjaW5jbHVkZSAiVnIuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB2ciB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitWcjo6VnIodnJfbW9kdWxlX3QgKmRldmljZSkgOiBtRGV2aWNlKGRldmljZSkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZyOjpWMV8wOjpJVnIgZm9sbG93LgorUmV0dXJuPHZvaWQ+IFZyOjppbml0KCkgeworICAgIG1EZXZpY2UtPmluaXQobURldmljZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFZyOjpzZXRWck1vZGUoYm9vbCBlbmFibGVkKSAgeworICAgIG1EZXZpY2UtPnNldF92cl9tb2RlKG1EZXZpY2UsIGVuYWJsZWQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK0lWciogSElETF9GRVRDSF9JVnIoY29uc3QgY2hhciAqIC8qbmFtZSovKSB7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKmh3X21vZHVsZSA9IE5VTEw7CisKKyAgICBpbnQgcmV0ID0gaHdfZ2V0X21vZHVsZShWUl9IQVJEV0FSRV9NT0RVTEVfSUQsICZod19tb2R1bGUpOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IFZyKHJlaW50ZXJwcmV0X2Nhc3Q8dnJfbW9kdWxlX3QqPigKKyAgICAgICAgICAgICAgICBjb25zdF9jYXN0PGh3X21vZHVsZV90Kj4oaHdfbW9kdWxlKSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJod19nZXRfbW9kdWxlICVzIGZhaWxlZDogJWQiLCBWUl9IQVJEV0FSRV9NT0RVTEVfSUQsIHJldCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgdnIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3ZyLzEuMC9kZWZhdWx0L1ZyLmggYi92ci8xLjAvZGVmYXVsdC9Wci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkNWU3NjQKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvZGVmYXVsdC9Wci5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX1ZSX1YxXzBfVlJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX1ZSX1YxXzBfVlJfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS92ci8xLjAvSVZyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvdnIuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHZyIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZyOjpWMV8wOjpJVnI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47CisKK3N0cnVjdCBWciA6IHB1YmxpYyBJVnIgeworICAgIFZyKHZyX21vZHVsZV90ICpkZXZpY2UpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZyOjpWMV8wOjpJVnIgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBpbml0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRWck1vZGUoYm9vbCBlbmFibGVkKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICB2cl9tb2R1bGVfdCAgICAqbURldmljZTsKK307CisKK2V4dGVybiAiQyIgSVZyKiBISURMX0ZFVENIX0lWcihjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHZyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9WUl9WMV8wX1ZSX0gKZGlmZiAtLWdpdCBhL3ZyLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudnJAMS4wLXNlcnZpY2UucmMgYi92ci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnZyQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjYzY0MTYKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnZyQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSB2ci0xLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS92ci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3ZyLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyZmI3ZDEKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0lWci5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisvLyBHZW5lcmF0ZWQgSElETCBmaWxlcwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnZyOjpWMV8wOjpJVnI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElWcj4oKTsKK30KZGlmZiAtLWdpdCBhL3ZyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvdnIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ1YTk5YQotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzIgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxWclYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxWclYxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQpkaWZmIC0tZ2l0IGEvdnIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFZyVjFfMFRhcmdldFRlc3QuY3BwIGIvdnIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFZyVjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzZjRjNzEKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVnJWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAidnJfaGlkbF9oYWxfdGVzdCIKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0lWci5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3ZyLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp2cjo6VjFfMDo6SVZyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIFZSIEhJREwgSEFMLgorY2xhc3MgVnJIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIHZyID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SVZyPigpOworICAgIEFTU0VSVF9ORSh2ciwgbnVsbHB0cik7CisgIH0KKworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBzcDxJVnI+IHZyOworfTsKKworCisvLyBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwIChrZXB0IHNpbmNlIHRoaXMgZmlsZSBpcyBhIHRlbXBsYXRlKS4KK2NsYXNzIFZySGlkbEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworIHB1YmxpYzoKKyAgdm9pZCBTZXRVcCgpIHt9CisgIHZvaWQgVGVhckRvd24oKSB7fQorCisgcHJpdmF0ZToKK307CisKKy8vIFNhbml0eSBjaGVjayB0aGF0IFZyOjppbml0IGRvZXMgbm90IGNyYXNoLgorVEVTVF9GKFZySGlkbFRlc3QsIEluaXQpIHsKKyAgRVhQRUNUX1RSVUUodnItPmluaXQoKS5pc09rKCkpOworfQorCisvLyBTYW5pdHkgY2hlY2sgVnI6OnNldFZyTW9kZSBpcyBhYmxlIHRvIGVuYWJsZSBhbmQgZGlzYWJsZSBWUiBtb2RlLgorVEVTVF9GKFZySGlkbFRlc3QsIFNldFZyTW9kZSkgeworICBFWFBFQ1RfVFJVRSh2ci0+aW5pdCgpLmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHZyLT5zZXRWck1vZGUodHJ1ZSkuaXNPaygpKTsKKyAgRVhQRUNUX1RSVUUodnItPnNldFZyTW9kZShmYWxzZSkuaXNPaygpKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIHRoYXQgVnI6OmluaXQgYW5kIFZyOjpzZXRWck1vZGUgY2FuIGJlIHVzZWQgaW4gYW55IG9yZGVyLgorVEVTVF9GKFZySGlkbFRlc3QsIFJlSW5pdCkgeworICBFWFBFQ1RfVFJVRSh2ci0+aW5pdCgpLmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHZyLT5zZXRWck1vZGUodHJ1ZSkuaXNPaygpKTsKKyAgRVhQRUNUX1RSVUUodnItPmluaXQoKS5pc09rKCkpOworICBFWFBFQ1RfVFJVRSh2ci0+c2V0VnJNb2RlKGZhbHNlKS5pc09rKCkpOworICBFWFBFQ1RfVFJVRSh2ci0+aW5pdCgpLmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHZyLT5zZXRWck1vZGUoZmFsc2UpLmlzT2soKSk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChuZXcgVnJIaWRsRW52aXJvbm1lbnQpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvdnIvQW5kcm9pZC5icCBiL3ZyL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxOWEzNwotLS0gL2Rldi9udWxsCisrKyBiL3ZyL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorICAgICIxLjAvZGVmYXVsdCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS93aWZpLzEuMC9JV2lmaUNoaXAuaGFsIGIvd2lmaS8xLjAvSVdpZmlDaGlwLmhhbAppbmRleCA2MTFjNDQ5Li5iOTczMjdjIDEwMDY0NAotLS0gYS93aWZpLzEuMC9JV2lmaUNoaXAuaGFsCisrKyBiL3dpZmkvMS4wL0lXaWZpQ2hpcC5oYWwKQEAgLTIyMCw3ICsyMjAsMTIgQEAKICAgZ2V0QXZhaWxhYmxlTW9kZXMoKSBnZW5lcmF0ZXMgKFdpZmlTdGF0dXMgc3RhdHVzLCB2ZWM8Q2hpcE1vZGU+IG1vZGVzKTsKIAogICAvKioKLSAgICogUmVjb25maWd1cmUgdGhlIENoaXAuCisgICAqIENvbmZpZ3VyZSB0aGUgQ2hpcC4KKyAgICogVGhpcyBtYXkgTk9UIGJlIGNhbGxlZCB0byByZWNvbmZpZ3VyZSBhIGNoaXAgZHVlIHRvIGFuIGludGVybmFsCisgICAqIGxpbWl0YXRpb24uIENhbGxpbmcgdGhpcyB3aGVuIGNoaXAgaXMgYWxyZWFkeSBjb25maWd1cmVkIGluIGEgZGlmZmVyZW50CisgICAqIG1vZGUgbXVzdCB0cmlnZ2VyIGFuIEVSUk9SX05PVF9TVVBQT1JURUQgZmFpbHVyZS4KKyAgICogSWYgeW91IHdhbnQgdG8gZG8gcmVjb25maWd1cmF0aW9uLCBwbGVhc2UgY2FsbCBJV2lmaS5zdG9wKCkgYW5kIElXaWZpLnN0YXJ0KCkKKyAgICogdG8gcmVzdGFydCBXaWZpIEhBTCBiZWZvcmUgY2FsbGluZyB0aGlzLgogICAgKiBBbnkgZXhpc3RpbmcgfElXaWZpSWZhY2V8IG9iamVjdHMgbXVzdCBiZSBtYXJrZWQgaW52YWxpZCBhZnRlciB0aGlzIGNhbGwuCiAgICAqIElmIHRoaXMgZmFpbHMgdGhlbiB0aGUgY2hpcHMgaXMgbm93IGluIGFuIHVuZGVmaW5lZCBzdGF0ZSBhbmQKICAgICogY29uZmlndXJlQ2hpcCBtdXN0IGJlIGNhbGxlZCBhZ2Fpbi4KQEAgLTIzNCw2ICsyMzksNyBAQAogICAgKiAgICAgICAgIHxXaWZpU3RhdHVzQ29kZS5TVUNDRVNTfCwKICAgICogICAgICAgICB8V2lmaVN0YXR1c0NvZGUuRVJST1JfV0lGSV9DSElQX0lOVkFMSUR8LAogICAgKiAgICAgICAgIHxXaWZpU3RhdHVzQ29kZS5FUlJPUl9OT1RfQVZBSUxBQkxFfCwKKyAgICogICAgICAgICB8V2lmaVN0YXR1c0NvZGUuRVJST1JfTk9UX1NVUFBPUlRFRHwsCiAgICAqICAgICAgICAgfFdpZmlTdGF0dXNDb2RlLkVSUk9SX1VOS05PV058CiAgICAqLwogICBjb25maWd1cmVDaGlwKENoaXBNb2RlSWQgbW9kZUlkKSBnZW5lcmF0ZXMgKFdpZmlTdGF0dXMgc3RhdHVzKTsKZGlmZiAtLWdpdCBhL3dpZmkvMS4wL2RlZmF1bHQvaGlkbF9jYWxsYmFja191dGlsLmggYi93aWZpLzEuMC9kZWZhdWx0L2hpZGxfY2FsbGJhY2tfdXRpbC5oCmluZGV4IDcxMzYyNzkuLmI3MTAwYzggMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL2RlZmF1bHQvaGlkbF9jYWxsYmFja191dGlsLmgKKysrIGIvd2lmaS8xLjAvZGVmYXVsdC9oaWRsX2NhbGxiYWNrX3V0aWwuaApAQCAtODIsNyArODIsNyBAQAogICAgIHJldHVybiB0cnVlOwogICB9CiAKLSAgY29uc3Qgc3RkOjpzZXQ8YW5kcm9pZDo6c3A8Q2FsbGJhY2tUeXBlPj4gZ2V0Q2FsbGJhY2tzKCkgeyByZXR1cm4gY2Jfc2V0XzsgfQorICBjb25zdCBzdGQ6OnNldDxhbmRyb2lkOjpzcDxDYWxsYmFja1R5cGU+PiYgZ2V0Q2FsbGJhY2tzKCkgeyByZXR1cm4gY2Jfc2V0XzsgfQogCiAgIC8vIERlYXRoIG5vdGlmaWNhdGlvbiBmb3IgY2FsbGJhY2tzLgogICB2b2lkIG9uT2JqZWN0RGVhdGgodWludDY0X3QgY29va2llKSB7CmRpZmYgLS1naXQgYS93aWZpLzEuMC9kZWZhdWx0L2hpZGxfc3RydWN0X3V0aWwuY3BwIGIvd2lmaS8xLjAvZGVmYXVsdC9oaWRsX3N0cnVjdF91dGlsLmNwcAppbmRleCBhZTRmOTVkLi4wNzdkYmI4IDEwMDY0NAotLS0gYS93aWZpLzEuMC9kZWZhdWx0L2hpZGxfc3RydWN0X3V0aWwuY3BwCisrKyBiL3dpZmkvMS4wL2RlZmF1bHQvaGlkbF9zdHJ1Y3RfdXRpbC5jcHAKQEAgLTQxNywxNyArNDE3LDI1IEBACiAgICAgY29uc3Qgd2lmaV9pZSYgbGVnYWN5X2llID0gKCpyZWludGVycHJldF9jYXN0PGNvbnN0IHdpZmlfaWUqPihuZXh0X2llKSk7CiAgICAgdWludDMyX3QgY3Vycl9pZV9sZW4gPSBrSWVIZWFkZXJMZW4gKyBsZWdhY3lfaWUubGVuOwogICAgIGlmIChuZXh0X2llICsgY3Vycl9pZV9sZW4gPiBpZXNfZW5kKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7CisgICAgICBMT0coRVJST1IpIDw8ICJFcnJvciBwYXJzaW5nIElFIGJsb2IuIE5leHQgSUU6ICIgPDwgKHZvaWQgKiluZXh0X2llCisgICAgICAgICAgICAgICAgIDw8ICIsIEN1cnIgSUUgbGVuOiAiIDw8IGN1cnJfaWVfbGVuIDw8ICIsIElFcyBFbmQ6ICIgPDwgKHZvaWQgKilpZXNfZW5kOworICAgICAgYnJlYWs7CiAgICAgfQogICAgIFdpZmlJbmZvcm1hdGlvbkVsZW1lbnQgaGlkbF9pZTsKICAgICBpZiAoIWNvbnZlcnRMZWdhY3lJZVRvSGlkbChsZWdhY3lfaWUsICZoaWRsX2llKSkgewotICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgTE9HKEVSUk9SKSA8PCAiRXJyb3IgY29udmVydGluZyBJRS4gSWQ6ICIgPDwgbGVnYWN5X2llLmlkCisgICAgICAgICAgICAgICAgIDw8ICIsIGxlbjogIiA8PCBsZWdhY3lfaWUubGVuOworICAgICAgYnJlYWs7CiAgICAgfQogICAgIGhpZGxfaWVzLT5wdXNoX2JhY2soc3RkOjptb3ZlKGhpZGxfaWUpKTsKICAgICBuZXh0X2llICs9IGN1cnJfaWVfbGVuOwogICB9Ci0gIC8vIEVuc3VyZSB0aGF0IHRoZSBibG9iIGhhcyBiZWVuIGZ1bGx5IGNvbnN1bWVkLgotICByZXR1cm4gKG5leHRfaWUgPT0gaWVzX2VuZCk7CisgIC8vIENoZWNrIGlmIHRoZSBibG9iIGhhcyBiZWVuIGZ1bGx5IGNvbnN1bWVkLgorICBpZiAobmV4dF9pZSAhPSBpZXNfZW5kKSB7CisgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGZ1bGx5IHBhcnNlIElFIGJsb2IuIE5leHQgSUU6ICIgPDwgKHZvaWQgKiluZXh0X2llCisgICAgICAgICAgICAgICA8PCAiLCBJRXMgRW5kOiAiIDw8ICh2b2lkICopaWVzX2VuZDsKKyAgfQorICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBjb252ZXJ0TGVnYWN5R3NjYW5SZXN1bHRUb0hpZGwoCmRpZmYgLS1naXQgYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfY2hpcC5jcHAgYi93aWZpLzEuMC9kZWZhdWx0L3dpZmlfY2hpcC5jcHAKaW5kZXggOWM0MWE0MC4uNzcwYzgzZiAxMDA2NDQKLS0tIGEvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2NoaXAuY3BwCisrKyBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9jaGlwLmNwcApAQCAtODA0LDE0ICs4MDQsMTIgQEAKIFdpZmlTdGF0dXMgV2lmaUNoaXA6OmhhbmRsZUNoaXBDb25maWd1cmF0aW9uKENoaXBNb2RlSWQgbW9kZV9pZCkgewogICAvLyBJZiB0aGUgY2hpcCBpcyBhbHJlYWR5IGNvbmZpZ3VyZWQgaW4gYSBkaWZmZXJlbnQgbW9kZSwgc3RvcAogICAvLyB0aGUgbGVnYWN5IEhBTCBhbmQgdGhlbiBzdGFydCBpdCBhZnRlciBmaXJtd2FyZSBtb2RlIGNoYW5nZS4KKyAgLy8gQ3VycmVudGx5IHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGhhcyBhIGRlYWRsb2NrIGlzc3VlLgorICAvLyBXZSBzaG91bGQgcmV0dXJuIEVSUk9SX05PVF9TVVBQT1JURUQgaWYgY2hpcCBpcyBhbHJlYWR5IGNvbmZpZ3VyZWQgaW4KKyAgLy8gYSBkaWZmZXJlbnQgbW9kZS4KICAgaWYgKGN1cnJlbnRfbW9kZV9pZF8gIT0ga0ludmFsaWRNb2RlSWQpIHsKLSAgICBpbnZhbGlkYXRlQW5kUmVtb3ZlQWxsSWZhY2VzKCk7Ci0gICAgbGVnYWN5X2hhbDo6d2lmaV9lcnJvciBsZWdhY3lfc3RhdHVzID0gbGVnYWN5X2hhbF8ubG9jaygpLT5zdG9wKFtdKCkge30pOwotICAgIGlmIChsZWdhY3lfc3RhdHVzICE9IGxlZ2FjeV9oYWw6OldJRklfU1VDQ0VTUykgewotICAgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIHN0b3AgbGVnYWN5IEhBTDogIgotICAgICAgICAgICAgICAgICA8PCBsZWdhY3lFcnJvclRvU3RyaW5nKGxlZ2FjeV9zdGF0dXMpOwotICAgICAgcmV0dXJuIGNyZWF0ZVdpZmlTdGF0dXNGcm9tTGVnYWN5RXJyb3IobGVnYWN5X3N0YXR1cyk7Ci0gICAgfQorICAgIC8vIFRPRE8oYi8zNzQ0NjA1MCk6IEZpeCB0aGUgZGVhZGxvY2suCisgICAgcmV0dXJuIGNyZWF0ZVdpZmlTdGF0dXMoV2lmaVN0YXR1c0NvZGU6OkVSUk9SX05PVF9TVVBQT1JURUQpOwogICB9CiAgIGJvb2wgc3VjY2VzczsKICAgaWYgKG1vZGVfaWQgPT0ga1N0YUNoaXBNb2RlSWQpIHsKQEAgLTg1NSw3ICs4NTMsOCBAQAogICAgIGZvciAoY29uc3QgYXV0byYgY2FsbGJhY2sgOiBzaGFyZWRfcHRyX3RoaXMtPmdldEV2ZW50Q2FsbGJhY2tzKCkpIHsKICAgICAgIGlmICghY2FsbGJhY2stPm9uRGVidWdSaW5nQnVmZmVyRGF0YUF2YWlsYWJsZShoaWRsX3N0YXR1cywgZGF0YSkuaXNPaygpKSB7CiAgICAgICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0byBpbnZva2Ugb25EZWJ1Z1JpbmdCdWZmZXJEYXRhQXZhaWxhYmxlIgotICAgICAgICAgICAgICAgICAgIDw8ICIgY2FsbGJhY2siOworICAgICAgICAgICAgICAgICAgIDw8ICIgY2FsbGJhY2sgb246ICIgPDwgdG9TdHJpbmcoY2FsbGJhY2spOworCiAgICAgICB9CiAgICAgfQogICB9OwpkaWZmIC0tZ2l0IGEvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2xlZ2FjeV9oYWwuY3BwIGIvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2xlZ2FjeV9oYWwuY3BwCmluZGV4IDQ0YWNjMDQuLmI2YTc1NTAgMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9sZWdhY3lfaGFsLmNwcAorKysgYi93aWZpLzEuMC9kZWZhdWx0L3dpZmlfbGVnYWN5X2hhbC5jcHAKQEAgLTE2NCw2ICsxNjQsNyBAQAogICBjb25zdCBhdXRvIGxvY2sgPSBoaWRsX3N5bmNfdXRpbDo6YWNxdWlyZUdsb2JhbExvY2soKTsKICAgaWYgKG9uX3J0dF9yZXN1bHRzX2ludGVybmFsX2NhbGxiYWNrKSB7CiAgICAgb25fcnR0X3Jlc3VsdHNfaW50ZXJuYWxfY2FsbGJhY2soaWQsIG51bV9yZXN1bHRzLCBydHRfcmVzdWx0cyk7CisgICAgb25fcnR0X3Jlc3VsdHNfaW50ZXJuYWxfY2FsbGJhY2sgPSBudWxscHRyOwogICB9CiB9CiAKQEAgLTU4Nyw2ICs1ODgsMTEgQEAKICAgcmV0dXJuIHtzdGF0dXMsIHN0ZDo6bW92ZShmcmVxcyl9OwogfQogCit3aWZpX2Vycm9yIFdpZmlMZWdhY3lIYWw6OnNldERmc0ZsYWcoYm9vbCBkZnNfb24pIHsKKyAgcmV0dXJuIGdsb2JhbF9mdW5jX3RhYmxlXy53aWZpX3NldF9ub2Rmc19mbGFnKAorICAgICAgd2xhbl9pbnRlcmZhY2VfaGFuZGxlXywgZGZzX29uID8gMCA6IDEpOworfQorCiB3aWZpX2Vycm9yIFdpZmlMZWdhY3lIYWw6OmVuYWJsZUxpbmtMYXllclN0YXRzKGJvb2wgZGVidWcpIHsKICAgd2lmaV9saW5rX2xheWVyX3BhcmFtcyBwYXJhbXM7CiAgIHBhcmFtcy5tcGR1X3NpemVfdGhyZXNob2xkID0ga0xpbmtMYXllclN0YXRzRGF0YU1wZHVTaXplVGhyZXNob2xkOwpkaWZmIC0tZ2l0IGEvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2xlZ2FjeV9oYWwuaCBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9sZWdhY3lfaGFsLmgKaW5kZXggNTc2ZGZlNi4uMTY1NmY2OCAxMDA2NDQKLS0tIGEvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2xlZ2FjeV9oYWwuaAorKysgYi93aWZpLzEuMC9kZWZhdWx0L3dpZmlfbGVnYWN5X2hhbC5oCkBAIC0xODEsNiArMTgxLDcgQEAKICAgd2lmaV9lcnJvciBzdG9wR3NjYW4od2lmaV9yZXF1ZXN0X2lkIGlkKTsKICAgc3RkOjpwYWlyPHdpZmlfZXJyb3IsIHN0ZDo6dmVjdG9yPHVpbnQzMl90Pj4gZ2V0VmFsaWRGcmVxdWVuY2llc0ZvckJhbmQoCiAgICAgICB3aWZpX2JhbmQgYmFuZCk7CisgIHdpZmlfZXJyb3Igc2V0RGZzRmxhZyhib29sIGRmc19vbik7CiAgIC8vIExpbmsgbGF5ZXIgc3RhdHMgZnVuY3Rpb25zLgogICB3aWZpX2Vycm9yIGVuYWJsZUxpbmtMYXllclN0YXRzKGJvb2wgZGVidWcpOwogICB3aWZpX2Vycm9yIGRpc2FibGVMaW5rTGF5ZXJTdGF0cygpOwpkaWZmIC0tZ2l0IGEvd2lmaS8xLjAvZGVmYXVsdC93aWZpX3N0YV9pZmFjZS5jcHAgYi93aWZpLzEuMC9kZWZhdWx0L3dpZmlfc3RhX2lmYWNlLmNwcAppbmRleCA2MjZiMTk1Li4zYzUyMDQ4IDEwMDY0NAotLS0gYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfc3RhX2lmYWNlLmNwcAorKysgYi93aWZpLzEuMC9kZWZhdWx0L3dpZmlfc3RhX2lmYWNlLmNwcApAQCAtMzEsNyArMzEsMTQgQEAKIFdpZmlTdGFJZmFjZTo6V2lmaVN0YUlmYWNlKAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBpZm5hbWUsCiAgICAgY29uc3Qgc3RkOjp3ZWFrX3B0cjxsZWdhY3lfaGFsOjpXaWZpTGVnYWN5SGFsPiBsZWdhY3lfaGFsKQotICAgIDogaWZuYW1lXyhpZm5hbWUpLCBsZWdhY3lfaGFsXyhsZWdhY3lfaGFsKSwgaXNfdmFsaWRfKHRydWUpIHt9CisgICAgOiBpZm5hbWVfKGlmbmFtZSksIGxlZ2FjeV9oYWxfKGxlZ2FjeV9oYWwpLCBpc192YWxpZF8odHJ1ZSkgeworICAvLyBUdXJuIG9uIERGUyBjaGFubmVsIHVzYWdlIGZvciBTVEEgaWZhY2UuCisgIGxlZ2FjeV9oYWw6OndpZmlfZXJyb3IgbGVnYWN5X3N0YXR1cyA9CisgICAgICBsZWdhY3lfaGFsXy5sb2NrKCktPnNldERmc0ZsYWcodHJ1ZSk7CisgIGlmIChsZWdhY3lfc3RhdHVzICE9IGxlZ2FjeV9oYWw6OldJRklfU1VDQ0VTUykgeworICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0byBzZXQgREZTIGZsYWc7IERGUyBjaGFubmVscyBtYXkgYmUgdW5hdmFpbGFibGUuIjsKKyAgfQorfQogCiB2b2lkIFdpZmlTdGFJZmFjZTo6aW52YWxpZGF0ZSgpIHsKICAgbGVnYWN5X2hhbF8ucmVzZXQoKTsKQEAgLTMwOSw3ICszMTYsOCBAQAogICBzdGQ6OnRpZShsZWdhY3lfc3RhdHVzLCBsZWdhY3lfbG9nZ2VyX2ZlYXR1cmVfc2V0KSA9CiAgICAgICBsZWdhY3lfaGFsXy5sb2NrKCktPmdldExvZ2dlclN1cHBvcnRlZEZlYXR1cmVTZXQoKTsKICAgaWYgKGxlZ2FjeV9zdGF0dXMgIT0gbGVnYWN5X2hhbDo6V0lGSV9TVUNDRVNTKSB7Ci0gICAgcmV0dXJuIHtjcmVhdGVXaWZpU3RhdHVzRnJvbUxlZ2FjeUVycm9yKGxlZ2FjeV9zdGF0dXMpLCAwfTsKKyAgICAvLyBzb21lIGRldmljZXMgZG9uJ3Qgc3VwcG9ydCBxdWVyeWluZyBsb2dnZXIgZmVhdHVyZSBzZXQKKyAgICBsZWdhY3lfbG9nZ2VyX2ZlYXR1cmVfc2V0ID0gMDsKICAgfQogICB1aW50MzJfdCBoaWRsX2NhcHM7CiAgIGlmICghaGlkbF9zdHJ1Y3RfdXRpbDo6Y29udmVydExlZ2FjeUZlYXR1cmVzVG9IaWRsU3RhQ2FwYWJpbGl0aWVzKApkaWZmIC0tZ2l0IGEvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9hcF9pZmFjZV9oaWRsX3Rlc3QuY3BwIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9hcF9pZmFjZV9oaWRsX3Rlc3QuY3BwCmluZGV4IDQyZDlhOTYuLmMwYWYzMGIgMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfYXBfaWZhY2VfaGlkbF90ZXN0LmNwcAorKysgYi93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX2FwX2lmYWNlX2hpZGxfdGVzdC5jcHAKQEAgLTIwLDkgKzIwLDEzIEBACiAKICNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KIAorI2luY2x1ZGUgIndpZmlfaGlkbF9jYWxsX3V0aWwuaCIKICNpbmNsdWRlICJ3aWZpX2hpZGxfdGVzdF91dGlscy5oIgogCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpJZmFjZVR5cGU7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpJV2lmaUFwSWZhY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpXaWZpQmFuZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OldpZmlTdGF0dXNDb2RlOwogdXNpbmcgOjphbmRyb2lkOjpzcDsKIAogLyoqCkBAIC0zMCwxMSArMzQsMTUgQEAKICAqLwogY2xhc3MgV2lmaUFwSWZhY2VIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CiAgICBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUge30KKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIHdpZmlfYXBfaWZhY2VfID0gZ2V0V2lmaUFwSWZhY2UoKTsKKyAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIHdpZmlfYXBfaWZhY2VfLmdldCgpKTsKKyAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IHN0b3BXaWZpKCk7IH0KIAogICAgcHJvdGVjdGVkOgorICAgIHNwPElXaWZpQXBJZmFjZT4gd2lmaV9hcF9pZmFjZV87CiB9OwogCiAvKgpAQCAtNDYsMyArNTQsMzYgQEAKICAgICBFWFBFQ1RfTkUobnVsbHB0ciwgZ2V0V2lmaUFwSWZhY2UoKS5nZXQoKSk7CiAgICAgc3RvcFdpZmkoKTsKIH0KKworLyoKKyAqIEdldFR5cGU6CisgKiBFbnN1cmVzIHRoYXQgdGhlIGNvcnJlY3QgaW50ZXJmYWNlIHR5cGUgaXMgcmV0dXJuZWQgZm9yIEFQIGludGVyZmFjZS4KKyAqLworVEVTVF9GKFdpZmlBcElmYWNlSGlkbFRlc3QsIEdldFR5cGUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX3R5cGUgPSBISURMX0lOVk9LRSh3aWZpX2FwX2lmYWNlXywgZ2V0VHlwZSk7CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX3R5cGUuZmlyc3QuY29kZSk7CisgICAgRVhQRUNUX0VRKElmYWNlVHlwZTo6QVAsIHN0YXR1c19hbmRfdHlwZS5zZWNvbmQpOworfQorCisvKgorICogU2V0Q291bnRyeUNvZGU6CisgKiBFbnN1cmVzIHRoYXQgYSBjYWxsIHRvIHNldCB0aGUgY291bnRyeSBjb2RlIHdpbGwgcmV0dXJuIHdpdGggYSBzdWNjZXNzCisgKiBzdGF0dXMgY29kZS4KKyAqLworVEVTVF9GKFdpZmlBcElmYWNlSGlkbFRlc3QsIFNldENvdW50cnlDb2RlKSB7CisgICAgY29uc3QgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk8aW50OF90LCAyPiBrQ291bnRyeUNvZGV7CisgICAgICAgIHN0ZDo6YXJyYXk8aW50OF90LCAyPnt7MHg1NSwgMHg1M319fTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfYXBfaWZhY2VfLCBzZXRDb3VudHJ5Q29kZSwga0NvdW50cnlDb2RlKS5jb2RlKTsKK30KKworLyoKKyAqIEdldFZhbGlkRnJlcXVlbmNpZXNGb3JCYW5kOgorICogRW5zdXJlcyB0aGF0IHdlIGNhbiByZXRyaWV2ZSB2YWxpZCBmcmVxdWVuY2llcyBmb3IgMi40IEdIeiBiYW5kLgorICovCitURVNUX0YoV2lmaUFwSWZhY2VIaWRsVGVzdCwgR2V0VmFsaWRGcmVxdWVuY2llc0ZvckJhbmQpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ZyZXFzID0gSElETF9JTlZPS0UoCisgICAgICAgIHdpZmlfYXBfaWZhY2VfLCBnZXRWYWxpZEZyZXF1ZW5jaWVzRm9yQmFuZCwgV2lmaUJhbmQ6OkJBTkRfMjRHSFopOworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9mcmVxcy5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfR1Qoc3RhdHVzX2FuZF9mcmVxcy5zZWNvbmQuc2l6ZSgpLCAwdSk7Cit9CmRpZmYgLS1naXQgYS93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX2NoaXBfaGlkbF90ZXN0LmNwcCBiL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfY2hpcF9oaWRsX3Rlc3QuY3BwCmluZGV4IDA4NDA2N2MuLjZjMjM3MmYgMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfY2hpcF9oaWRsX3Rlc3QuY3BwCisrKyBiL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfY2hpcF9oaWRsX3Rlc3QuY3BwCkBAIC03NiwxNSArNzYsMTQgQEAKICAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gY29uZmlndXJlIHRoZSBDaGlwIGluIG9uZSBvZiB0aGUgc3VwcG9ydGVkIG1vZGVzLgogICAgIC8vIE1vc3Qgb2YgdGhlIG5vbi1tb2RlLWNvbmZpZ3VyYXRpb24tcmVsYXRlZCBtZXRob2RzIHJlcXVpcmUgY2hpcAogICAgIC8vIHRvIGJlIGZpcnN0IGNvbmZpZ3VyZWQuCi0gICAgQ2hpcE1vZGVJZCBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZSB0eXBlKSB7CisgICAgQ2hpcE1vZGVJZCBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZSB0eXBlLCBib29sIGV4cGVjdFN1Y2Nlc3MpIHsKICAgICAgICAgQ2hpcE1vZGVJZCBtb2RlX2lkOwotICAgICAgICBFWFBFQ1RfVFJVRSgKLSAgICAgICAgICAgIGNvbmZpZ3VyZUNoaXBUb1N1cHBvcnRJZmFjZVR5cGUod2lmaV9jaGlwXywgdHlwZSwgJm1vZGVfaWQpKTsKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdFN1Y2Nlc3MsIGNvbmZpZ3VyZUNoaXBUb1N1cHBvcnRJZmFjZVR5cGUod2lmaV9jaGlwXywgdHlwZSwgJm1vZGVfaWQpKTsKICAgICAgICAgcmV0dXJuIG1vZGVfaWQ7CiAgICAgfQogCiAgICAgdWludDMyX3QgY29uZmlndXJlQ2hpcEZvclN0YUlmYWNlQW5kR2V0Q2FwYWJpbGl0aWVzKCkgewotICAgICAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICAgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAgICAgICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2FwcyA9IEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldENhcGFiaWxpdGllcyk7CiAgICAgICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9jYXBzLmZpcnN0LmNvZGUpOwogICAgICAgICByZXR1cm4gc3RhdHVzX2FuZF9jYXBzLnNlY29uZDsKQEAgLTE3NCw4ICsxNzMsMTIgQEAKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfbW9kZXMuZmlyc3QuY29kZSk7CiAgICAgRVhQRUNUX0xUKDB1LCBzdGF0dXNfYW5kX21vZGVzLnNlY29uZC5zaXplKCkpOwogICAgIGZvciAoY29uc3QgYXV0byYgbW9kZSA6IHN0YXR1c19hbmRfbW9kZXMuc2Vjb25kKSB7CisgICAgICAgIC8vIGNvbmZpZ3VyZUNoaXAoKSByZXF1aXJlcyB0byBiZSBjYWxsZWQgd2l0aCBhIGZyZXNoIElXaWZpQ2hpcCBvYmplY3QuCisgICAgICAgIHdpZmlfY2hpcF8gPSBnZXRXaWZpQ2hpcCgpOworICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgd2lmaV9jaGlwXy5nZXQoKSk7CiAgICAgICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKICAgICAgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGNvbmZpZ3VyZUNoaXAsIG1vZGUuaWQpLmNvZGUpOworICAgICAgICBzdG9wV2lmaSgpOwogICAgIH0KIH0KIApAQCAtMTgzLDcgKzE4Niw3IEBACiAgKiBHZXRDYXBhYmlsaXRpZXM6CiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRDYXBhYmlsaXRpZXMpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBLCB0cnVlKTsKICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2NhcHMgPSBISURMX0lOVk9LRSh3aWZpX2NoaXBfLCBnZXRDYXBhYmlsaXRpZXMpOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9jYXBzLmZpcnN0LmNvZGUpOwogICAgIEVYUEVDVF9ORSgwdSwgc3RhdHVzX2FuZF9jYXBzLnNlY29uZCk7CkBAIC0xOTMsNyArMTk2LDcgQEAKICAqIEdldE1vZGU6CiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRNb2RlKSB7Ci0gICAgQ2hpcE1vZGVJZCBjaGlwX21vZGVfaWQgPSBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICBDaGlwTW9kZUlkIGNoaXBfbW9kZV9pZCA9IGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEsIHRydWUpOwogICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfbW9kZSA9IEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldE1vZGUpOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9tb2RlLmZpcnN0LmNvZGUpOwogICAgIEVYUEVDVF9FUShjaGlwX21vZGVfaWQsIHN0YXR1c19hbmRfbW9kZS5zZWNvbmQpOwpAQCAtMjAzLDcgKzIwNiw3IEBACiAgKiBSZXF1ZXN0Q2hpcERlYnVnSW5mbzoKICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIFJlcXVlc3RDaGlwRGVidWdJbmZvKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9jaGlwX2luZm8gPQogICAgICAgICBISURMX0lOVk9LRSh3aWZpX2NoaXBfLCByZXF1ZXN0Q2hpcERlYnVnSW5mbyk7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2NoaXBfaW5mby5maXJzdC5jb2RlKTsKQEAgLTIzNiw4ICsyMzksMTAgQEAKICAgICBpZiAoY2FwcyAmIElXaWZpQ2hpcDo6Q2hpcENhcGFiaWxpdHlNYXNrOjpERUJVR19NRU1PUllfRFJJVkVSX0RVTVApIHsKICAgICAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2RyaXZlcl9kdW1wLmZpcnN0LmNvZGUpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX1NVUFBPUlRFRCwKLSAgICAgICAgICAgICAgICAgIHN0YXR1c19hbmRfZHJpdmVyX2R1bXAuZmlyc3QuY29kZSk7CisgICAgICAvLyBBUEkgc2VtYW50aWNzICh0b2RheSkgYXJlIHN1Y2ggdGhhdCBmdW5jdGlvbiBjYW5ub3QgYmUgY2FsbGVkIGlmIG5vdCBjYXBhYmxlIQorICAgICAgLy8KKyAgICAgIC8vICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OkVSUk9SX05PVF9TVVBQT1JURUQsCisgICAgICAvLyAgICAgICAgICAgIHN0YXR1c19hbmRfZHJpdmVyX2R1bXAuZmlyc3QuY29kZSk7CiAgICAgfQogfQogCkBAIC0zMzYsNyArMzQxLDcgQEAKICAqIHN1Y2NlZWRzLiBUaGUgMm5kIGlmYWNlIGNyZWF0aW9uIHNob3VsZCBiZSByZWplY3RlZC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIENyZWF0ZUFwSWZhY2UpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6QVApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaUFwSWZhY2U+IGlmYWNlOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlQXBJZmFjZSgmaWZhY2UpKTsKQEAgLTM1Miw3ICszNTcsNyBAQAogICogaWZhY2UgbmFtZSBpcyByZXR1cm5lZCB2aWEgdGhlIGxpc3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRBcElmYWNlTmFtZXMpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6QVApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCwgdHJ1ZSk7CiAKICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMSA9CiAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldEFwSWZhY2VOYW1lcyk7CkBAIC0zODQsNyArMzg5LDcgQEAKICAqIGRvZXNuJ3QgcmV0cmlldmUgYW4gaWZhY2Ugb2JqZWN0LgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgR2V0QXBJZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OkFQLCB0cnVlKTsKIAogICAgIHNwPElXaWZpQXBJZmFjZT4gYXBfaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVBcElmYWNlKCZhcF9pZmFjZSkpOwpAQCAtNDEwLDcgKzQxNSw3IEBACiAgKiBkb2Vzbid0IHJlbW92ZSB0aGUgaWZhY2UuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBSZW1vdmVBcElmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OkFQKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6QVAsIHRydWUpOwogCiAgICAgc3A8SVdpZmlBcElmYWNlPiBhcF9pZmFjZTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZUFwSWZhY2UoJmFwX2lmYWNlKSk7CkBAIC00MzEsMTMgKzQzNiwxMCBAQAogICogc3VjY2VlZHMuIFRoZSAybmQgaWZhY2UgY3JlYXRpb24gc2hvdWxkIGJlIHJlamVjdGVkLgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgQ3JlYXRlTmFuSWZhY2UpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6TkFOKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6TkFOLCBmYWxzZSk7CiAKICAgICBzcDxJV2lmaU5hbklmYWNlPiBpZmFjZTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZU5hbklmYWNlKCZpZmFjZSkpOwotICAgIEVYUEVDVF9ORShudWxscHRyLCBpZmFjZS5nZXQoKSk7Ci0KLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OkVSUk9SX05PVF9BVkFJTEFCTEUsIGNyZWF0ZU5hbklmYWNlKCZpZmFjZSkpOworICAgIEFTU0VSVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX0FWQUlMQUJMRSwgY3JlYXRlTmFuSWZhY2UoJmlmYWNlKSk7CiB9CiAKIC8qCkBAIC00NDcsMjkgKzQ0OSwxMiBAQAogICogaWZhY2UgbmFtZSBpcyByZXR1cm5lZCB2aWEgdGhlIGxpc3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXROYW5JZmFjZU5hbWVzKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6Ok5BTik7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6Ok5BTiwgZmFsc2UpOwogCiAgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczEgPQogICAgICAgICBISURMX0lOVk9LRSh3aWZpX2NoaXBfLCBnZXROYW5JZmFjZU5hbWVzKTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMxLmZpcnN0LmNvZGUpOworICAgIEFTU0VSVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczEuZmlyc3QuY29kZSk7CiAgICAgRVhQRUNUX0VRKDB1LCBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMS5zZWNvbmQuc2l6ZSgpKTsKLQotICAgIHNwPElXaWZpTmFuSWZhY2U+IGlmYWNlOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlTmFuSWZhY2UoJmlmYWNlKSk7Ci0gICAgRVhQRUNUX05FKG51bGxwdHIsIGlmYWNlLmdldCgpKTsKLQotICAgIHN0ZDo6c3RyaW5nIGlmYWNlX25hbWUgPSBnZXRJZmFjZU5hbWUoaWZhY2UpOwotICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMyID0KLSAgICAgICAgSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0TmFuSWZhY2VOYW1lcyk7Ci0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMi5maXJzdC5jb2RlKTsKLSAgICBFWFBFQ1RfRVEoMXUsIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMyLnNlY29uZC5zaXplKCkpOwotICAgIEVYUEVDVF9FUShpZmFjZV9uYW1lLCBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMi5zZWNvbmRbMF0pOwotCi0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCByZW1vdmVOYW5JZmFjZShpZmFjZV9uYW1lKSk7Ci0gICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczMgPQotICAgICAgICBISURMX0lOVk9LRSh3aWZpX2NoaXBfLCBnZXROYW5JZmFjZU5hbWVzKTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMzLmZpcnN0LmNvZGUpOwotICAgIEVYUEVDVF9FUSgwdSwgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczMuc2Vjb25kLnNpemUoKSk7CiB9CiAKIC8qCkBAIC00NzksMjMgKzQ2NCwxMCBAQAogICogZG9lc24ndCByZXRyaWV2ZSBhbiBpZmFjZSBvYmplY3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXROYW5JZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpOQU4pOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpOQU4sIGZhbHNlKTsKIAogICAgIHNwPElXaWZpTmFuSWZhY2U+IG5hbl9pZmFjZTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZU5hbklmYWNlKCZuYW5faWZhY2UpKTsKLSAgICBFWFBFQ1RfTkUobnVsbHB0ciwgbmFuX2lmYWNlLmdldCgpKTsKLQotICAgIHN0ZDo6c3RyaW5nIGlmYWNlX25hbWUgPSBnZXRJZmFjZU5hbWUobmFuX2lmYWNlKTsKLSAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlMSA9Ci0gICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldE5hbklmYWNlLCBpZmFjZV9uYW1lKTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfaWZhY2UxLmZpcnN0LmNvZGUpOwotICAgIEVYUEVDVF9ORShudWxscHRyLCBzdGF0dXNfYW5kX2lmYWNlMS5zZWNvbmQuZ2V0KCkpOwotCi0gICAgc3RkOjpzdHJpbmcgaW52YWxpZF9uYW1lID0gaWZhY2VfbmFtZSArICIwIjsKLSAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlMiA9Ci0gICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldE5hbklmYWNlLCBpbnZhbGlkX25hbWUpOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfSU5WQUxJRF9BUkdTLCBzdGF0dXNfYW5kX2lmYWNlMi5maXJzdC5jb2RlKTsKLSAgICBFWFBFQ1RfRVEobnVsbHB0ciwgc3RhdHVzX2FuZF9pZmFjZTIuc2Vjb25kLmdldCgpKTsKKyAgICBBU1NFUlRfRVEoV2lmaVN0YXR1c0NvZGU6OkVSUk9SX05PVF9BVkFJTEFCTEUsIGNyZWF0ZU5hbklmYWNlKCZuYW5faWZhY2UpKTsKIH0KIAogLyoKQEAgLTUwNSwyMCArNDc3LDEwIEBACiAgKiBkb2Vzbid0IHJlbW92ZSB0aGUgaWZhY2UuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBSZW1vdmVOYW5JZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpOQU4pOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpOQU4sIGZhbHNlKTsKIAogICAgIHNwPElXaWZpTmFuSWZhY2U+IG5hbl9pZmFjZTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZU5hbklmYWNlKCZuYW5faWZhY2UpKTsKLSAgICBFWFBFQ1RfTkUobnVsbHB0ciwgbmFuX2lmYWNlLmdldCgpKTsKLQotICAgIHN0ZDo6c3RyaW5nIGlmYWNlX25hbWUgPSBnZXRJZmFjZU5hbWUobmFuX2lmYWNlKTsKLSAgICBzdGQ6OnN0cmluZyBpbnZhbGlkX25hbWUgPSBpZmFjZV9uYW1lICsgIjAiOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfSU5WQUxJRF9BUkdTLCByZW1vdmVOYW5JZmFjZShpbnZhbGlkX25hbWUpKTsKLQotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgcmVtb3ZlTmFuSWZhY2UoaWZhY2VfbmFtZSkpOwotCi0gICAgLy8gTm8gc3VjaCBpZmFjZSBleGlzdHMgbm93LiBTbywgdGhpcyBzaG91bGQgcmV0dXJuIGZhaWx1cmUuCi0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpFUlJPUl9JTlZBTElEX0FSR1MsIHJlbW92ZU5hbklmYWNlKGlmYWNlX25hbWUpKTsKKyAgICBBU1NFUlRfRVEoV2lmaVN0YXR1c0NvZGU6OkVSUk9SX05PVF9BVkFJTEFCTEUsIGNyZWF0ZU5hbklmYWNlKCZuYW5faWZhY2UpKTsKIH0KIAogLyoKQEAgLTUyNyw3ICs0ODksNyBAQAogICogc3VjY2VlZHMuIFRoZSAybmQgaWZhY2UgY3JlYXRpb24gc2hvdWxkIGJlIHJlamVjdGVkLgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgQ3JlYXRlUDJwSWZhY2UpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6UDJQKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6UDJQLCB0cnVlKTsKIAogICAgIHNwPElXaWZpUDJwSWZhY2U+IGlmYWNlOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlUDJwSWZhY2UoJmlmYWNlKSk7CkBAIC01NDMsNyArNTA1LDcgQEAKICAqIGlmYWNlIG5hbWUgaXMgcmV0dXJuZWQgdmlhIHRoZSBsaXN0LgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgR2V0UDJwSWZhY2VOYW1lcykgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlAsIHRydWUpOwogCiAgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczEgPQogICAgICAgICBISURMX0lOVk9LRSh3aWZpX2NoaXBfLCBnZXRQMnBJZmFjZU5hbWVzKTsKQEAgLTU3NSw3ICs1MzcsNyBAQAogICogZG9lc24ndCByZXRyaWV2ZSBhbiBpZmFjZSBvYmplY3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRQMnBJZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlAsIHRydWUpOwogCiAgICAgc3A8SVdpZmlQMnBJZmFjZT4gcDJwX2lmYWNlOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlUDJwSWZhY2UoJnAycF9pZmFjZSkpOwpAQCAtNjAxLDcgKzU2Myw3IEBACiAgKiBkb2Vzbid0IHJlbW92ZSB0aGUgaWZhY2UuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBSZW1vdmVQMnBJZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlAsIHRydWUpOwogCiAgICAgc3A8SVdpZmlQMnBJZmFjZT4gcDJwX2lmYWNlOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlUDJwSWZhY2UoJnAycF9pZmFjZSkpOwpAQCAtNjIyLDcgKzU4NCw3IEBACiAgKiBzdWNjZWVkcy4gVGhlIDJuZCBpZmFjZSBjcmVhdGlvbiBzaG91bGQgYmUgcmVqZWN0ZWQuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBDcmVhdGVTdGFJZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEpOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEsIHRydWUpOwogCiAgICAgc3A8SVdpZmlTdGFJZmFjZT4gaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVTdGFJZmFjZSgmaWZhY2UpKTsKQEAgLTYzOCw3ICs2MDAsNyBAQAogICogaWZhY2UgbmFtZSBpcyByZXR1cm5lZCB2aWEgdGhlIGxpc3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRTdGFJZmFjZU5hbWVzKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAKICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMSA9CiAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldFN0YUlmYWNlTmFtZXMpOwpAQCAtNjcwLDcgKzYzMiw3IEBACiAgKiBkb2Vzbid0IHJldHJpZXZlIGFuIGlmYWNlIG9iamVjdC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldFN0YUlmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaVN0YUlmYWNlPiBzdGFfaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVTdGFJZmFjZSgmc3RhX2lmYWNlKSk7CkBAIC02OTYsNyArNjU4LDcgQEAKICAqIGRvZXNuJ3QgcmVtb3ZlIHRoZSBpZmFjZS4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIFJlbW92ZVN0YUlmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaVN0YUlmYWNlPiBzdGFfaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVTdGFJZmFjZSgmc3RhX2lmYWNlKSk7CkBAIC03MTUsNyArNjc3LDcgQEAKICAqIENyZWF0ZVJ0dENvbnRyb2xsZXIKICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIENyZWF0ZVJ0dENvbnRyb2xsZXIpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6QVApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaUFwSWZhY2U+IGlmYWNlOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlQXBJZmFjZSgmaWZhY2UpKTsKZGlmZiAtLWdpdCBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfaGlkbF90ZXN0X3V0aWxzLmNwcCBiL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfaGlkbF90ZXN0X3V0aWxzLmNwcAppbmRleCBmZWZiZDc5Li5lNDM4MmJjIDEwMDY0NAotLS0gYS93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX2hpZGxfdGVzdF91dGlscy5jcHAKKysrIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9oaWRsX3Rlc3RfdXRpbHMuY3BwCkBAIC0zNiw2ICszNiw5IEBACiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKIAogbmFtZXNwYWNlIHsKK2NvbnN0ZXhwciB1aW50MzJfdCBrSGFsU3RhcnRSZXRyeU1heENvdW50ID0gNTsKK2NvbnN0ZXhwciB1aW50MzJfdCBrSGFsU3RhcnRSZXRyeUludGVydmFsSW5NcyA9IDI7CisKIGJvb2wgZmluZEFueU1vZGVTdXBwb3J0aW5nSWZhY2VUeXBlKAogICAgIElmYWNlVHlwZSBkZXNpcmVkX3R5cGUsIGNvbnN0IHN0ZDo6dmVjdG9yPElXaWZpQ2hpcDo6Q2hpcE1vZGU+JiBtb2RlcywKICAgICBDaGlwTW9kZUlkKiBtb2RlX2lkKSB7CkBAIC05Miw3ICs5NSwxNSBAQAogICAgIGlmICghd2lmaS5nZXQoKSkgewogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgaWYgKEhJRExfSU5WT0tFKHdpZmksIHN0YXJ0KS5jb2RlICE9IFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTKSB7CisgICAgdWludDMyX3QgcmV0cnlfY291bnQgPSAwOworICAgIGF1dG8gc3RhdHVzID0gSElETF9JTlZPS0Uod2lmaSwgc3RhcnQpOworICAgIHdoaWxlIChyZXRyeV9jb3VudCA8IGtIYWxTdGFydFJldHJ5TWF4Q291bnQgJiYKKyAgICAgICAgICAgc3RhdHVzLmNvZGUgPT0gV2lmaVN0YXR1c0NvZGU6OkVSUk9SX05PVF9BVkFJTEFCTEUpIHsKKyAgICAgICAgcmV0cnlfY291bnQrKzsKKyAgICAgICAgdXNsZWVwKGtIYWxTdGFydFJldHJ5SW50ZXJ2YWxJbk1zICogMTAwMCk7CisgICAgICAgIHN0YXR1cyA9IEhJRExfSU5WT0tFKHdpZmksIHN0YXJ0KTsKKyAgICB9CisgICAgaWYgKHN0YXR1cy5jb2RlICE9IFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTKSB7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2NoaXBfaWRzID0gSElETF9JTlZPS0Uod2lmaSwgZ2V0Q2hpcElkcyk7CmRpZmYgLS1naXQgYS93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX3N0YV9pZmFjZV9oaWRsX3Rlc3QuY3BwIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9zdGFfaWZhY2VfaGlkbF90ZXN0LmNwcAppbmRleCA5NWFkZDYxLi4zMDIzNWNmIDEwMDY0NAotLS0gYS93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX3N0YV9pZmFjZV9oaWRsX3Rlc3QuY3BwCisrKyBiL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfc3RhX2lmYWNlX2hpZGxfdGVzdC5jcHAKQEAgLTI0LDcgKzI0LDE2IEBACiAjaW5jbHVkZSAid2lmaV9oaWRsX3Rlc3RfdXRpbHMuaCIKIAogdXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OkJzc2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6Q29tbWFuZElkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6SWZhY2VUeXBlOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6SVdpZmlTdGFJZmFjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OlJzc2k7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpTc2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6U3RhQXBmUGFja2V0RmlsdGVyQ2FwYWJpbGl0aWVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6U3RhUm9hbWluZ0NvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OlN0YVJvYW1pbmdTdGF0ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OldpZmlCYW5kOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6V2lmaVN0YXR1czsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OldpZmlTdGF0dXNDb2RlOwogCkBAIC00MSw2ICs1MCwxMyBAQAogICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsgc3RvcFdpZmkoKTsgfQogCiAgICBwcm90ZWN0ZWQ6CisgICAgYm9vbCBpc0NhcGFiaWxpdHlTdXBwb3J0ZWQoSVdpZmlTdGFJZmFjZTo6U3RhSWZhY2VDYXBhYmlsaXR5TWFzayBjYXBfbWFzaykgeworICAgICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2NhcHMgPQorICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXRDYXBhYmlsaXRpZXMpOworICAgICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfY2Fwcy5maXJzdC5jb2RlKTsKKyAgICAgICAgcmV0dXJuIChzdGF0dXNfYW5kX2NhcHMuc2Vjb25kICYgY2FwX21hc2spICE9IDA7CisgICAgfQorCiAgICAgc3A8SVdpZmlTdGFJZmFjZT4gd2lmaV9zdGFfaWZhY2VfOwogfTsKIApAQCAtNjAsNSArNzYsMTk0IEBACiBURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIEdldENhcGFiaWxpdGllcykgewogICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2FwcyA9IEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZ2V0Q2FwYWJpbGl0aWVzKTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfY2Fwcy5maXJzdC5jb2RlKTsKLSAgICBFWFBFQ1RfTkUoMHUsIHN0YXR1c19hbmRfY2Fwcy5zZWNvbmQpOworICAgIEVYUEVDVF9HVChzdGF0dXNfYW5kX2NhcHMuc2Vjb25kLCAwdSk7Cit9CisKKy8qCisgKiBHZXRUeXBlOgorICogRW5zdXJlcyB0aGF0IHRoZSBjb3JyZWN0IGludGVyZmFjZSB0eXBlIGlzIHJldHVybmVkIGZvciBzdGF0aW9uIGludGVyZmFjZS4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBHZXRUeXBlKSB7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF90eXBlID0gSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXRUeXBlKTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfdHlwZS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoSWZhY2VUeXBlOjpTVEEsIHN0YXR1c19hbmRfdHlwZS5zZWNvbmQpOworfQorCisvKgorICogR2V0QXBmUGFja2V0RmlsdGVyQ2FwYWJpbGl0aWVzOgorICogRW5zdXJlcyB0aGF0IHdlIGNhbiByZXRyaWV2ZSBBUEYgcGFja2V0IGZpbHRlciBjYXBhYmlsaXRlcy4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBHZXRBcGZQYWNrZXRGaWx0ZXJDYXBhYmlsaXRpZXMpIHsKKyAgICBpZiAoIWlzQ2FwYWJpbGl0eVN1cHBvcnRlZChJV2lmaVN0YUlmYWNlOjpTdGFJZmFjZUNhcGFiaWxpdHlNYXNrOjpBUEYpKSB7CisgICAgICAgIC8vIE5vLW9wIGlmIEFQRiBwYWNrZXQgZmlsZXIgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2FwcyA9CisgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZ2V0QXBmUGFja2V0RmlsdGVyQ2FwYWJpbGl0aWVzKTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfY2Fwcy5maXJzdC5jb2RlKTsKK30KKworLyoKKyAqIEdldEJhY2tncm91bmRTY2FuQ2FwYWJpbGl0aWVzOgorICogRW5zdXJlcyB0aGF0IHdlIGNhbiByZXRyaWV2ZSBiYWNrZ3JvdW5kIHNjYW4gY2FwYWJpbGl0aWVzLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIEdldEJhY2tncm91bmRTY2FuQ2FwYWJpbGl0aWVzKSB7CisgICAgaWYgKCFpc0NhcGFiaWxpdHlTdXBwb3J0ZWQoCisgICAgICAgICAgICBJV2lmaVN0YUlmYWNlOjpTdGFJZmFjZUNhcGFiaWxpdHlNYXNrOjpCQUNLR1JPVU5EX1NDQU4pKSB7CisgICAgICAgIC8vIE5vLW9wIGlmIGJhY2tncm91bmQgc2NhbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9jYXBzID0KKyAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXRCYWNrZ3JvdW5kU2NhbkNhcGFiaWxpdGllcyk7CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2NhcHMuZmlyc3QuY29kZSk7Cit9CisKKy8qCisgKiBHZXRWYWxpZEZyZXF1ZW5jaWVzRm9yQmFuZDoKKyAqIEVuc3VyZXMgdGhhdCB3ZSBjYW4gcmV0cmlldmUgdmFsaWQgZnJlcXVlbmNpZXMgZm9yIDIuNCBHSHogYmFuZC4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBHZXRWYWxpZEZyZXF1ZW5jaWVzRm9yQmFuZCkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfZnJlcXMgPSBISURMX0lOVk9LRSgKKyAgICAgICAgd2lmaV9zdGFfaWZhY2VfLCBnZXRWYWxpZEZyZXF1ZW5jaWVzRm9yQmFuZCwgV2lmaUJhbmQ6OkJBTkRfMjRHSFopOworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9mcmVxcy5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfR1Qoc3RhdHVzX2FuZF9mcmVxcy5zZWNvbmQuc2l6ZSgpLCAwdSk7Cit9CisKKy8qCisgKiBMaW5rTGF5ZXJTdGF0c0NvbGxlY3Rpb246CisgKiBFbnN1cmVzIHRoYXQgY2FsbHMgdG8gZW5hYmxlLCBkaXNhYmxlLCBhbmQgcmV0cmlldmUgbGluayBsYXllciBzdGF0cworICogd2lsbCByZXR1cm4gYSBzdWNjZXNzIHN0YXR1cyBjb2RlLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIExpbmtMYXllclN0YXRzQ29sbGVjdGlvbikgeworICAgIGlmICghaXNDYXBhYmlsaXR5U3VwcG9ydGVkKAorICAgICAgICAgICAgSVdpZmlTdGFJZmFjZTo6U3RhSWZhY2VDYXBhYmlsaXR5TWFzazo6TElOS19MQVlFUl9TVEFUUykpIHsKKyAgICAgICAgLy8gTm8tb3AgaWYgbGluayBsYXllciBzdGF0cyBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRW5hYmxlIGxpbmsgbGF5ZXIgc3RhdHMgY29sbGVjdGlvbi4KKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZW5hYmxlTGlua0xheWVyU3RhdHNDb2xsZWN0aW9uLCB0cnVlKQorICAgICAgICAgICAgICAgICAgLmNvZGUpOworICAgIC8vIFJldHJpZXZlIGxpbmsgbGF5ZXIgc3RhdHMuCisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGdldExpbmtMYXllclN0YXRzKS5maXJzdC5jb2RlKTsKKyAgICAvLyBEaXNhYmxlIGxpbmsgbGF5ZXIgc3RhdHMgY29sbGVjdGlvbi4KKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGRpc2FibGVMaW5rTGF5ZXJTdGF0c0NvbGxlY3Rpb24pLmNvZGUpOworfQorCisvKgorICogUlNTSU1vbml0b3Jpbmc6CisgKiBFbnN1cmVzIHRoYXQgY2FsbHMgdG8gZW5hYmxlIFJTU0kgbW9uaXRvcmluZyB3aWxsIHJldHVybiBhbiBlcnJvciBzdGF0dXMKKyAqIGNvZGUgaWYgZGV2aWNlIGlzIG5vdCBjb25uZWN0ZWQgdG8gYW4gQVAuCisgKiBFbnN1cmVzIHRoYXQgY2FsbHMgdG8gZGlzYWJsZSBSU1NJIG1vbml0b3Jpbmcgd2lsbCByZXR1cm4gYW4gZXJyb3Igc3RhdHVzCisgKiBjb2RlIGlmIFJTU0kgbW9uaXRvcmluZyBpcyBub3QgZW5hYmxlZC4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBSU1NJTW9uaXRvcmluZykgeworICAgIGlmICghaXNDYXBhYmlsaXR5U3VwcG9ydGVkKAorICAgICAgICAgICAgSVdpZmlTdGFJZmFjZTo6U3RhSWZhY2VDYXBhYmlsaXR5TWFzazo6UlNTSV9NT05JVE9SKSkgeworICAgICAgICAvLyBOby1vcCBpZiBSU1NJIG1vbml0b3IgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IENvbW1hbmRJZCBrQ21kID0gMTsKKyAgICBjb25zdCBSc3NpIGtNYXhSc3NpID0gLTUwOworICAgIGNvbnN0IFJzc2kga01pblJzc2kgPSAtOTA7CisgICAgLy8gVGhpcyBpcyBnb2luZyB0byBmYWlsIGJlY2F1c2UgZGV2aWNlIGlzIG5vdCBjb25uZWN0ZWQgdG8gYW4gQVAuCisgICAgRVhQRUNUX05FKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIHN0YXJ0UnNzaU1vbml0b3JpbmcsIGtDbWQsIGtNYXhSc3NpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrTWluUnNzaSkKKyAgICAgICAgICAgICAgICAgIC5jb2RlKTsKKyAgICAvLyBUaGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVzZSBSU1NJIG1vbml0b3JpbmcgaXMgbm90IGVuYWJsZWQuCisgICAgRVhQRUNUX05FKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIHN0b3BSc3NpTW9uaXRvcmluZywga0NtZCkuY29kZSk7Cit9CisKKy8qCisgKiBSb2FtaW5nQ29udHJvbDoKKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBjb25maWd1cmUgYW5kIGVuYWJsZSByb2FtaW5nIHdpbGwgcmV0dXJuIGEgc3VjY2VzcworICogc3RhdHVzIGNvZGUuCisgKi8KK1RFU1RfRihXaWZpU3RhSWZhY2VIaWRsVGVzdCwgUm9hbWluZ0NvbnRyb2wpIHsKKyAgICBpZiAoIWlzQ2FwYWJpbGl0eVN1cHBvcnRlZCgKKyAgICAgICAgICAgIElXaWZpU3RhSWZhY2U6OlN0YUlmYWNlQ2FwYWJpbGl0eU1hc2s6OkNPTlRST0xfUk9BTUlORykpIHsKKyAgICAgICAgLy8gTm8tb3AgaWYgcm9hbWluZyBjb250cm9sIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBSZXRyaWV2ZSByb2FtaW5nIGNhcGFiaWxpdGllcy4KKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2NhcCA9CisgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZ2V0Um9hbWluZ0NhcGFiaWxpdGllcyk7CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2NhcC5maXJzdC5jb2RlKTsKKworICAgIC8vIFNldHVwIHJvYW1pbmcgY29uZmlndXJhdGlvbiBiYXNlZCBvbiByb2FtaW5nIGNhcGFiaWxpdGllcy4KKyAgICBjb25zdCBhdXRvJiBjYXAgPSBzdGF0dXNfYW5kX2NhcC5zZWNvbmQ7CisgICAgU3RhUm9hbWluZ0NvbmZpZyByb2FtaW5nX2NvbmZpZzsKKyAgICBpZiAoY2FwLm1heEJsYWNrbGlzdFNpemUgPiAwKSB7CisgICAgICAgIEJzc2lkIGJsYWNrX2xpc3RfYnNzaWR7CisgICAgICAgICAgICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDY+e3sweDExLCAweDIyLCAweDMzLCAweDQ0LCAweDU1LCAweDY2fX19OworICAgICAgICByb2FtaW5nX2NvbmZpZy5ic3NpZEJsYWNrbGlzdCA9CisgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8QnNzaWQ+e2JsYWNrX2xpc3RfYnNzaWR9OworICAgIH0KKyAgICBpZiAoY2FwLm1heFdoaXRlbGlzdFNpemUgPiAwKSB7CisgICAgICAgIFNzaWQgd2hpdGVfbGlzdF9zc2lkeworICAgICAgICAgICAgc3RkOjphcnJheTx1aW50OF90LCAzMj57ezB4NzcsIDB4ODgsIDB4OTksIDB4QUEsIDB4QkIsIDB4Q0N9fX07CisgICAgICAgIHJvYW1pbmdfY29uZmlnLnNzaWRXaGl0ZWxpc3QgPQorICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFNzaWQ+e3doaXRlX2xpc3Rfc3NpZH07CisgICAgfQorCisgICAgLy8gQ29uZmlndXJlIHJvYW1pbmcuCisgICAgRVhQRUNUX0VRKAorICAgICAgICBXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBjb25maWd1cmVSb2FtaW5nLCByb2FtaW5nX2NvbmZpZykuY29kZSk7CisKKyAgICAvLyBFbmFibGUgcm9hbWluZy4KKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIHNldFJvYW1pbmdTdGF0ZSwgU3RhUm9hbWluZ1N0YXRlOjpFTkFCTEVEKQorICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgorICogRW5hYmxlTkRPZmZsb2FkOgorICogRW5zdXJlcyB0aGF0IGNhbGxzIHRvIGVuYWJsZSBuZWlnaGJvciBkaXNjb3Zlcnkgb2ZmbG9hZCB3aWxsIHJldHVybiBhIHN1Y2Nlc3MKKyAqIHN0YXR1cyBjb2RlLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIEVuYWJsZU5ET2ZmbG9hZCkgeworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBlbmFibGVOZE9mZmxvYWQsIHRydWUpLmNvZGUpOworfQorCisvKgorICogU2V0U2Nhbm5pbmdNYWNPdWk6CisgKiBFbnN1cmVzIHRoYXQgY2FsbHMgdG8gc2V0IHNjYW5uaW5nIE1BQyBPVUkgd2lsbCByZXR1cm4gYSBzdWNjZXNzIHN0YXR1cworICogY29kZS4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBTZXRTY2FubmluZ01hY091aSkgeworICAgIGNvbnN0IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5PHVpbnQ4X3QsIDM+IGtPdWl7CisgICAgICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgMz57ezB4MTAsIDB4MjIsIDB4MzN9fX07CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIHNldFNjYW5uaW5nTWFjT3VpLCBrT3VpKS5jb2RlKTsKK30KKworLyoKKyAqIFBhY2tldEZhdGVNb25pdG9yaW5nOgorICogRW5zdXJlcyB0aGF0IGNhbGxzIHRvIHN0YXJ0IHBhY2tldCBmYXRlIG1vbml0b3JpbmcgYW5kIHJldHJpZXZlIFRYL1JYCisgKiBwYWNrZXRzIHdpbGwgcmV0dXJuIGEgc3VjY2VzcyBzdGF0dXMgY29kZS4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBQYWNrZXRGYXRlTW9uaXRvcmluZykgeworICAgIC8vIFN0YXJ0IHBhY2tldCBmYXRlIG1vbml0b3JpbmcuCisgICAgRVhQRUNUX0VRKAorICAgICAgICBXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBzdGFydERlYnVnUGFja2V0RmF0ZU1vbml0b3JpbmcpLmNvZGUpOworCisgICAgLy8gUmV0cmlldmUgcGFja2V0cy4KKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZ2V0RGVidWdUeFBhY2tldEZhdGVzKS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZ2V0RGVidWdSeFBhY2tldEZhdGVzKS5maXJzdC5jb2RlKTsKIH0KZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRQMnBJZmFjZS5oYWwgYi93aWZpL3N1cHBsaWNhbnQvMS4wL0lTdXBwbGljYW50UDJwSWZhY2UuaGFsCmluZGV4IGZiNDMyM2MuLjliNmVjNWIgMTAwNjQ0Ci0tLSBhL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRQMnBJZmFjZS5oYWwKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFAycElmYWNlLmhhbApAQCAtMTU0LDYgKzE1NCw3IEBACiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLlNVQ0NFU1N8LAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX1VOS05PV058LAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX0lGQUNFX0lOVkFMSUR8CisgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfSUZBQ0VfRElTQUJMRUR8CiAgICAqLwogICBmaW5kKHVpbnQzMl90IHRpbWVvdXRJblNlYykgZ2VuZXJhdGVzIChTdXBwbGljYW50U3RhdHVzIHN0YXR1cyk7CiAKQEAgLTE2NSw2ICsxNjYsNyBAQAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5TVUNDRVNTfCwKICAgICogICAgICAgICB8U3VwcGxpY2FudFN0YXR1c0NvZGUuRkFJTFVSRV9VTktOT1dOfCwKICAgICogICAgICAgICB8U3VwcGxpY2FudFN0YXR1c0NvZGUuRkFJTFVSRV9JRkFDRV9JTlZBTElEfAorICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX0lGQUNFX0RJU0FCTEVEfAogICAgKi8KICAgc3RvcEZpbmQoKSBnZW5lcmF0ZXMgKFN1cHBsaWNhbnRTdGF0dXMgc3RhdHVzKTsKIApAQCAtMjkyLDYgKzI5NCw3IEBACiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLlNVQ0NFU1N8LAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX1VOS05PV058LAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX0lGQUNFX0lOVkFMSUR8CisgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfSUZBQ0VfRElTQUJMRUR8CiAgICAqLwogICByZWplY3QoTWFjQWRkcmVzcyBwZWVyQWRkcmVzcykgZ2VuZXJhdGVzIChTdXBwbGljYW50U3RhdHVzIHN0YXR1cyk7CiAKZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRTdGFOZXR3b3JrLmhhbCBiL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRTdGFOZXR3b3JrLmhhbAppbmRleCA3ZDUxNTlhLi4yNjlkN2VmIDEwMDY0NAotLS0gYS93aWZpL3N1cHBsaWNhbnQvMS4wL0lTdXBwbGljYW50U3RhTmV0d29yay5oYWwKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFN0YU5ldHdvcmsuaGFsCkBAIC0zNTQsNiArMzU0LDggQEAKICAgLyoqCiAgICAqIFNldCBFQVAgUGhhc2UyIE1ldGhvZCBmb3IgdGhpcyBuZXR3b3JrLgogICAgKgorICAgKiBFQVAgbWV0aG9kIG5lZWRzIHRvIGJlIHNldCBmb3IgdGhpcyB0byB3b3JrLgorICAgKgogICAgKiBAcGFyYW0gbWV0aG9kIHZhbHVlIHRvIHNldC4KICAgICogICAgICAgIE11c3QgYmUgb25lIG9mIHxFYXBQaGFzZTJNZXRob2R8IHZhbHVlcy4KICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uCmRpZmYgLS1naXQgYS93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9BbmRyb2lkLm1rIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzYxZjliCi0tLSAvZGV2L251bGwKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvQW5kcm9pZC5tawpAQCAtMCwwICsxLDIgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9oaWRsX2NhbGxfdXRpbC5oIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfY2FsbF91dGlsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWMwZmNlYwotLS0gL2Rldi9udWxsCisrKyBiL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9oaWRsX2NhbGxfdXRpbC5oCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworLy8gVGhpcyBmaWxlIGlzIGNvcGllZCBmcm9tCisvLyBoYXJkd2FyZS9pbnRlcmZhY2VzL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfaGlkbF9jYWxsX3V0aWwuaAorLy8gUGxlYXNlIG1ha2Ugc3VyZSB0aGVzZSB0d28gZmlsZSBhcmUgY29uc2lzdGVudC4KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPHR1cGxlPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorI2luY2x1ZGUgPHV0aWxpdHk+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworbmFtZXNwYWNlIHsKK25hbWVzcGFjZSBkZXRhaWwgewordGVtcGxhdGUgPHR5cGVuYW1lPgorc3RydWN0IGZ1bmN0aW9uQXJnU2F2ZXI7CisKKy8vIFByb3ZpZGVzIGEgc3RkOjpmdW5jdGlvbiB0aGF0IHRha2VzIG9uZSBhcmd1bWVudCwgYW5kIGEgYnVmZmVyCisvLyB3aGVyZWluIHRoZSBmdW5jdGlvbiB3aWxsIHN0b3JlIGl0cyBhcmd1bWVudC4gVGhlIGJ1ZmZlciBoYXMKKy8vIHRoZSBzYW1lIHR5cGUgYXMgdGhlIGFyZ3VtZW50LCBidXQgd2l0aCBjb25zdCBhbmQgcmVmZXJlbmNlCisvLyBtb2RpZmllcnMgcmVtb3ZlZC4KK3RlbXBsYXRlIDx0eXBlbmFtZSBBcmdUPgorc3RydWN0IGZ1bmN0aW9uQXJnU2F2ZXI8c3RkOjpmdW5jdGlvbjx2b2lkKEFyZ1QpPj4gZmluYWwgeworICAgIHVzaW5nIFN0b3JhZ2VUID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8CisgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxBcmdUPjo6dHlwZT46OnR5cGU7CisKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoQXJnVCk+IHNhdmVBcmdzID0gW3RoaXNdKEFyZ1QgYXJnKSB7CisgICAgICAgIHRoaXMtPnNhdmVkX3ZhbHVlcyA9IGFyZzsKKyAgICB9OworCisgICAgU3RvcmFnZVQgc2F2ZWRfdmFsdWVzOworfTsKKworLy8gUHJvdmlkZXMgYSBzdGQ6OmZ1bmN0aW9uIHRoYXQgdGFrZXMgdHdvIGFyZ3VtZW50cywgYW5kIGEgYnVmZmVyCisvLyB3aGVyZWluIHRoZSBmdW5jdGlvbiB3aWxsIHN0b3JlIGl0cyBhcmd1bWVudHMuIFRoZSBidWZmZXIgaXMgYQorLy8gc3RkOjpwYWlyLCB3aG9zZSBlbGVtZW50cyBoYXZlIHRoZSBzYW1lIHR5cGVzIGFzIHRoZSBhcmd1bWVudHMKKy8vIChidXQgd2l0aCBjb25zdCBhbmQgcmVmZXJlbmNlIG1vZGlmaWVycyByZW1vdmVkKS4KK3RlbXBsYXRlIDx0eXBlbmFtZSBBcmcxVCwgdHlwZW5hbWUgQXJnMlQ+CitzdHJ1Y3QgZnVuY3Rpb25BcmdTYXZlcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoQXJnMVQsIEFyZzJUKT4+IGZpbmFsIHsKKyAgICB1c2luZyBTdG9yYWdlVCA9CisgICAgICAgIHN0ZDo6cGFpcjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDwKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8QXJnMVQ+Ojp0eXBlPjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PAorICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxBcmcyVD46OnR5cGU+Ojp0eXBlPjsKKworICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChBcmcxVCwgQXJnMlQpPiBzYXZlQXJncyA9IFt0aGlzXShBcmcxVCBhcmcxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcyVCBhcmcyKSB7CisgICAgICAgIHRoaXMtPnNhdmVkX3ZhbHVlcyA9IHthcmcxLCBhcmcyfTsKKyAgICB9OworCisgICAgU3RvcmFnZVQgc2F2ZWRfdmFsdWVzOworfTsKKworLy8gUHJvdmlkZXMgYSBzdGQ6OmZ1bmN0aW9uIHRoYXQgdGFrZXMgdGhyZWUgb3IgbW9yZSBhcmd1bWVudHMsIGFuZCBhCisvLyBidWZmZXIgd2hlcmVpbiB0aGUgZnVuY3Rpb24gd2lsbCBzdG9yZSBpdHMgYXJndW1lbnRzLiBUaGUgYnVmZmVyIGlzIGEKKy8vIHN0ZDo6dHVwbGUgd2hvc2UgZWxlbWVudHMgaGF2ZSB0aGUgc2FtZSB0eXBlcyBhcyB0aGUgYXJndW1lbnRzIChidXQKKy8vIHdpdGggY29uc3QgYW5kIHJlZmVyZW5jZSBtb2RpZmllcnMgcmVtb3ZlZCkuCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJnVD4KK3N0cnVjdCBmdW5jdGlvbkFyZ1NhdmVyPHN0ZDo6ZnVuY3Rpb248dm9pZChBcmdULi4uKT4+IGZpbmFsIHsKKyAgICB1c2luZyBTdG9yYWdlVCA9IHN0ZDo6dHVwbGU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8CisgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxBcmdUPjo6dHlwZT46OnR5cGUuLi4+OworCisgICAgc3RkOjpmdW5jdGlvbjx2b2lkKEFyZ1QuLi4pPiBzYXZlQXJncyA9IFt0aGlzXShBcmdULi4uIGFyZykgeworICAgICAgICB0aGlzLT5zYXZlZF92YWx1ZXMgPSB7YXJnLi4ufTsKKyAgICB9OworCisgICAgU3RvcmFnZVQgc2F2ZWRfdmFsdWVzOworfTsKKworLy8gSW52b2tlcyB8bWV0aG9kfCBvbiB8b2JqZWN0fCwgcHJvdmlkaW5nIHxtZXRob2R8IGEgQ2FsbGJhY2tUIGFzIHRoZQorLy8gZmluYWwgYXJndW1lbnQuIFJldHVybnMgYSBjb3B5IG9mIHRoZSBwYXJhbWV0ZXJzIHRoYXQgfG1ldGhvZHwgcHJvdmlkZWQKKy8vIHRvIENhbGxiYWNrVC4gKFRoZSBwYXJhbWV0ZXJzIGFyZSByZXR1cm5lZCBieSB2YWx1ZS4pCit0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2FsbGJhY2tULCB0eXBlbmFtZSBNZXRob2RULCB0eXBlbmFtZSBPYmplY3RULAorICAgICAgICAgIHR5cGVuYW1lLi4uIEFyZ1Q+Cit0eXBlbmFtZSBmdW5jdGlvbkFyZ1NhdmVyPENhbGxiYWNrVD46OlN0b3JhZ2VUIGludm9rZU1ldGhvZCgKKyAgICBNZXRob2RUIG1ldGhvZCwgT2JqZWN0VCBvYmplY3QsIEFyZ1QmJi4uLiBtZXRob2RBcmcpIHsKKyAgICBmdW5jdGlvbkFyZ1NhdmVyPENhbGxiYWNrVD4gcmVzdWx0X2J1ZmZlcjsKKyAgICBjb25zdCBhdXRvJiByZXMgPSAoKCpvYmplY3QpLiptZXRob2QpKHN0ZDo6Zm9yd2FyZDxBcmdUPihtZXRob2RBcmcpLi4uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X2J1ZmZlci5zYXZlQXJncyk7CisgICAgRVhQRUNUX1RSVUUocmVzLmlzT2soKSk7CisgICAgcmV0dXJuIHJlc3VsdF9idWZmZXIuc2F2ZWRfdmFsdWVzOworfQorfSAgLy8gbmFtZXNwYWNlIGRldGFpbAorfSAgLy8gbmFtZXNwYWNlCisKKy8vIEludm9rZXMgfG1ldGhvZHwgb24gfHN0cm9uZ19wb2ludGVyfCwgcGFzc2luZyBwcm92aWRlZCBhcmd1bWVudHMgdGhyb3VnaCB0bworLy8gfG1ldGhvZHwuCisvLworLy8gUmV0dXJucyBlaXRoZXI6CisvLyAtIEEgY29weSBvZiB0aGUgcmVzdWx0IGNhbGxiYWNrIHBhcmFtZXRlciAoZm9yIGNhbGxiYWNrcyB3aXRoIGEgc2luZ2xlCisvLyAgIHBhcmFtZXRlciksIE9SCisvLyAtIEEgcGFpciBjb250YWluaW5nIGEgY29weSBvZiB0aGUgcmVzdWx0IGNhbGxiYWNrIHBhcmFtZXRlcnMgKGZvciBjYWxsYmFja3MKKy8vICAgd2l0aCB0d28gcGFyYW1ldGVycyksIE9SCisvLyAtIEEgdHVwbGUgY29udGFpbmluZyBhIGNvcHkgb2YgdGhlIHJlc3VsdCBjYWxsYmFjayBwYXJhbXRlcnMgKGZvciBjYWxsYmFja3MKKy8vICAgd2l0aCB0aHJlZSBvciBtb3JlIHBhcmFtZXRlcnMpLgorLy8KKy8vIEV4YW1wbGUgdXNhZ2U6CisvLyAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKy8vICAgICAgIEhJRExfSU5WT0tFKHN0cm9uZ19wb2ludGVyLCBtZXRob2RSZXR1cm5pbmdXaWZpU3RhdHVzKS5jb2RlKTsKKy8vICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorLy8gICAgICAgSElETF9JTlZPS0Uoc3Ryb25nX3BvaW50ZXIsIG1ldGhvZFJldHVybmluZ1dpZmlTdGF0dXNBbmRPbmVNb3JlKQorLy8gICAgICAgICAuZmlyc3QuY29kZSk7CisvLyAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RkOjpnZXQ8MD4oCisvLyAgICAgICBISURMX0lOVk9LRShzdHJvbmdfcG9pbnRlciwgbWV0aG9kUmV0dXJuaW5nV2lmaVN0YXR1c0FuZFR3b01vcmUpKQorLy8gICAgICAgICAuY29kZSk7CisjZGVmaW5lIEhJRExfSU5WT0tFKHN0cm9uZ19wb2ludGVyLCBtZXRob2QsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKGRldGFpbDo6aW52b2tlTWV0aG9kPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZSgqc3Ryb25nX3BvaW50ZXIpPjo6dHlwZTo6bWV0aG9kIyNfY2I+KCBcCisgICAgICAgICZzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoKnN0cm9uZ19wb2ludGVyKT46OnR5cGU6Om1ldGhvZCwgICAgICBcCisgICAgICAgIHN0cm9uZ19wb2ludGVyLCAjI19fVkFfQVJHU19fKSkKZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9oaWRsX3Rlc3RfdXRpbHMuY3BwIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5jcHAKaW5kZXggMWZjZmM4Yy4uZGY0YmZhOSAxMDA2NDQKLS0tIGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5jcHAKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5jcHAKQEAgLTEzNiwxNCArMTM2LDE0IEBACiB9OwogCiB2b2lkIHN0b3BXaWZpRnJhbWV3b3JrKCkgewotICAgIEFTU0VSVF9FUShzdGQ6OnN5c3RlbSgic3ZjIHdpZmkgZGlzYWJsZSIpLCAwKTsKKyAgICBBU1NFUlRfRVEoc3RkOjpzeXN0ZW0oInN0b3AiKSwgMCk7CiAgICAgLy8gVE9ETzogVXNlIHNvbWUgb3RoZXIgbWVjaGFuaXNtIHRvIHdhaXQgZm9yIHRoZSBmcmFtZXdvcmsgdG8KICAgICAvLyBmaW5pc2ggZGlzYWJsaW5nLgogICAgIHNsZWVwKDUpOwogfQogCiB2b2lkIHN0YXJ0V2lmaUZyYW1ld29yaygpIHsKLSAgICBBU1NFUlRfRVEoc3RkOjpzeXN0ZW0oInN2YyB3aWZpIGVuYWJsZSIpLCAwKTsKKyAgICBBU1NFUlRfRVEoc3RkOjpzeXN0ZW0oInN0YXJ0IiksIDApOwogICAgIC8vIFRoZXNlIHRlc3RzIGRvbid0IGNhcmUgd2hldGhlciB0aGUgZnJhbWV3b3JrCiAgICAgLy8gZmluaXNoZWQgZW5hYmxpbmcgb3Igbm90LgogfQpkaWZmIC0tZ2l0IGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3AycF9pZmFjZV9oaWRsX3Rlc3QuY3BwIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3AycF9pZmFjZV9oaWRsX3Rlc3QuY3BwCmluZGV4IDcyYTNjNDIuLjAxODFmN2IgMTAwNjQ0Ci0tLSBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9wMnBfaWZhY2VfaGlkbF90ZXN0LmNwcAorKysgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfcDJwX2lmYWNlX2hpZGxfdGVzdC5jcHAKQEAgLTIwLDYgKzIwLDcgQEAKIAogI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFAycElmYWNlLmg+CiAKKyNpbmNsdWRlICJzdXBwbGljYW50X2hpZGxfY2FsbF91dGlsLmgiCiAjaW5jbHVkZSAic3VwcGxpY2FudF9oaWRsX3Rlc3RfdXRpbHMuaCIKIAogdXNpbmcgOjphbmRyb2lkOjpzcDsKQEAgLTI4LDYgKzI5LDcgQEAKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklmYWNlVHlwZTsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklTdXBwbGljYW50UDJwSWZhY2U7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpzdXBwbGljYW50OjpWMV8wOjpJU3VwcGxpY2FudFAycElmYWNlQ2FsbGJhY2s7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpzdXBwbGljYW50OjpWMV8wOjpTdXBwbGljYW50TmV0d29ya0lkOwpAQCAtMzgsMTYgKzQwLDMwIEBACiBjb25zdGV4cHIgdWludDhfdCBrVGVzdFNzaWRQb3N0Zml4W10gPSB7J3QnLCAnZScsICdzJywgJ3QnfTsKIGNvbnN0ZXhwciB1aW50OF90IGtUZXN0TWFjQWRkcltdID0gezB4NTYsIDB4NjcsIDB4NjcsIDB4ZjQsIDB4NTYsIDB4OTJ9OwogY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RQZWVyTWFjQWRkcltdID0gezB4NTYsIDB4NjcsIDB4NTUsIDB4ZjQsIDB4NTYsIDB4OTJ9OworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5W10gPSB7J3QnLCAnZScsICdzJywgJ3QnLCAncScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndScsICdlJywgJ3InLCAneSd9OworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RCb25qb3VyU2VydmljZVJlc3BvbnNlW10gPSB7CisgICAgJ3QnLCAnZScsICdzJywgJ3QnLCAncicsICdlJywgJ3MnLCAncCcsICdvJywgJ24nLCAncycsICdlJ307Citjb25zdGV4cHIgdWludDhfdCBrVGVzdFdmZERldmljZUluZm9bXSA9IHtbMCAuLi4gNV0gPSAweDAxfTsKIGNvbnN0ZXhwciBjaGFyIGtUZXN0Q29ubmVjdFBpbltdID0gIjM0NTU2NjY1IjsKIGNvbnN0ZXhwciBjaGFyIGtUZXN0R3JvdXBJZk5hbWVbXSA9ICJUZXN0R3JvdXAiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNEZXZpY2VOYW1lW10gPSAiVGVzdFdwc0RldmljZU5hbWUiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNNYW51ZmFjdHVyZXJbXSA9ICJUZXN0TWFudWZhY3R1cmVyIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzTW9kZWxOYW1lW10gPSAiVGVzdE1vZGVsTmFtZSI7Citjb25zdGV4cHIgY2hhciBrVGVzdFdwc01vZGVsTnVtYmVyW10gPSAiVGVzdE1vZGVsTnVtYmVyIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzU2VyaWFsTnVtYmVyW10gPSAiVGVzdFNlcmlhbE51bWJlciI7Citjb25zdGV4cHIgY2hhciBrVGVzdFVwbnBTZXJ2aWNlTmFtZVtdID0gIlRlc3RTZXJ2aWNlTmFtZSI7Citjb25zdGV4cHIgdWludDhfdCBrVGVzdFdwc0RldmljZVR5cGVbXSA9IHtbMCAuLi4gN10gPSAweDAxfTsKK2NvbnN0ZXhwciB1aW50MTZfdCBrVGVzdFdwc0NvbmZpZ01ldGhvZHMgPSAweGZmZmY7CiBjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RDb25uZWN0R29JbnRlbnQgPSA2OwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0RmluZFRpbWVvdXQgPSA1OwotY29uc3RleHByIFN1cHBsaWNhbnROZXR3b3JrSWQga1Rlc3ROZXR3b3JrSWQgPSA1OworY29uc3RleHByIHVpbnQzMl90IGtUZXN0U2V0R3JvdXBJZGxlVGltZW91dCA9IDY7CiBjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RDaGFubmVsID0gMTsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdE9wZXJhdGluZ0NsYXNzID0gODE7CiBjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RGcmVxUmFuZ2VbXSA9IHsyNDEyLCAyNDMyfTsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdEV4dExpc3RlblBlcmlvZCA9IDQwMDsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdEV4dExpc3RlbkludGVydmFsID0gNDAwOworY29uc3RleHByIFN1cHBsaWNhbnROZXR3b3JrSWQga1Rlc3ROZXR3b3JrSWQgPSA1OwogfSAgLy8gbmFtZXNwYWNlCiAKIGNsYXNzIFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKQEAgLTE3OCw2ICsxOTQsMjYgQEAKIH0KIAogLyoKKyAqIEdldE5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBHZXROYW1lKSB7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZSA9IEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIGdldE5hbWUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc3RkOjpzdHJpbmcoc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZS5zZWNvbmQpLmVtcHR5KCkpOworfQorCisvKgorICogR2V0VHlwZQorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIEdldFR5cGUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlID0gSElETF9JTlZPS0UocDJwX2lmYWNlXywgZ2V0VHlwZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9FUShzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlLnNlY29uZCwgSWZhY2VUeXBlOjpQMlApOworfQorCisvKgogICogR2V0RGV2aWNlQWRkcmVzcwogICovCiBURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIEdldERldmljZUFkZHJlc3MpIHsKQEAgLTIxOSwxMCArMjU1LDYgQEAKICAgICBwMnBfaWZhY2VfLT5zdG9wRmluZChbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CiAgICAgfSk7Ci0KLSAgICBwMnBfaWZhY2VfLT5zdG9wRmluZChbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKLSAgICAgICAgRVhQRUNUX05FKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7Ci0gICAgfSk7CiB9CiAKIC8qCkBAIC0yOTAsNiArMzIyLDE1IEBACiB9CiAKIC8qCisgKiBSZW1vdmVHcm91cAorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFJlbW92ZUdyb3VwKSB7CisgICAgLy8gVGhpcyBpcyBub3QgZ29pbmcgdG8gd29yayB3aXRoIGZha2UgdmFsdWVzLgorICAgIEVYUEVDVF9ORShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgcmVtb3ZlR3JvdXAsIGtUZXN0R3JvdXBJZk5hbWUpLmNvZGUpOworfQorCisvKgogICogUmVqZWN0CiAgKi8KIFRFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgUmVqZWN0KSB7CkBAIC00MTEsMyArNDUyLDE3MCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy5jb2RlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiB9CisKKy8qCisgKiBTZXRHcm91cElkbGUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRHcm91cElkbGUpIHsKKyAgICAvLyBUaGlzIGlzIG5vdCBnb2luZyB0byB3b3JrIHdpdGggZmFrZSB2YWx1ZXMuCisgICAgRVhQRUNUX05FKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRHcm91cElkbGUsIGtUZXN0R3JvdXBJZk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtUZXN0U2V0R3JvdXBJZGxlVGltZW91dCkKKyAgICAgICAgICAgICAgICAgIC5jb2RlKTsKK30KKworLyoKKyAqIFNldFBvd2VyU2F2ZQorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldFBvd2VyU2F2ZSkgeworICAgIC8vIFRoaXMgaXMgbm90IGdvaW5nIHRvIHdvcmsgd2l0aCBmYWtlIHZhbHVlcy4KKyAgICBFWFBFQ1RfTkUoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRQb3dlclNhdmUsIGtUZXN0R3JvdXBJZk5hbWUsIHRydWUpLmNvZGUpOworICAgIC8vIFRoaXMgaXMgbm90IGdvaW5nIHRvIHdvcmsgd2l0aCBmYWtlIHZhbHVlcy4KKyAgICBFWFBFQ1RfTkUoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRQb3dlclNhdmUsIGtUZXN0R3JvdXBJZk5hbWUsIGZhbHNlKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc0RldmljZU5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXcHNEZXZpY2VOYW1lKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgc2V0V3BzRGV2aWNlTmFtZSwga1Rlc3RXcHNEZXZpY2VOYW1lKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc0RldmljZVR5cGUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXcHNEZXZpY2VUeXBlKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgc2V0V3BzRGV2aWNlVHlwZSwga1Rlc3RXcHNEZXZpY2VUeXBlKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc01hbnVmYWN0dXJlcgorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldFdwc01hbnVmYWN0dXJlcikgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFdwc01hbnVmYWN0dXJlciwga1Rlc3RXcHNNYW51ZmFjdHVyZXIpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzTW9kZWxOYW1lCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgU2V0V3BzTW9kZWxOYW1lKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRXcHNNb2RlbE5hbWUsIGtUZXN0V3BzTW9kZWxOYW1lKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc01vZGVsTnVtYmVyCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgU2V0V3BzTW9kZWxOdW1iZXIpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRXcHNNb2RlbE51bWJlciwga1Rlc3RXcHNNb2RlbE51bWJlcikuY29kZSk7Cit9CisKKy8qCisgKiBTZXRXcHNTZXJpYWxOdW1iZXIKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXcHNTZXJpYWxOdW1iZXIpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRXcHNTZXJpYWxOdW1iZXIsIGtUZXN0V3BzU2VyaWFsTnVtYmVyKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc0NvbmZpZ01ldGhvZHMKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXcHNDb25maWdNZXRob2RzKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgc2V0V3BzQ29uZmlnTWV0aG9kcywga1Rlc3RXcHNDb25maWdNZXRob2RzKQorICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgorICogQWRkQW5kUmVtb3ZlQm9uam91clNlcnZpY2UKKyAqIFRoaXMgdGVzdHMgdGhhdCB3ZSBhcmUgYWJsZSB0byBhZGQgYSBib25qb3VyIHNlcnZpY2UsIGFuZCB3ZSBjYW4gcmVtb3ZlIGl0CisgKiBieSB1c2luZyB0aGUgc2FtZSBxdWVyeSBkYXRhLgorICogVGhpcyBhbHNvIHRlc3RzIHRoYXQgcmVtb3ZlQm9uam91clNlcml2ZSgpIHJldHVybnMgZXJyb3Igd2hlbiB0aGVyZSBpcyBubworICogZXhpc3RpbmcgYm9uam91ciBzZXJ2aWNlIHdpdGggdGhlIHNhbWUgcXVlcnkgZGF0YS4KKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBBZGRBbmRSZW1vdmVCb25qb3VyU2VydmljZSkgeworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0UoCisgICAgICAgICAgICAgICAgICBwMnBfaWZhY2VfLCBhZGRCb25qb3VyU2VydmljZSwKKyAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSkpLAorICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4oa1Rlc3RCb25qb3VyU2VydmljZVJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RCb25qb3VyU2VydmljZVJlc3BvbnNlICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoa1Rlc3RCb25qb3VyU2VydmljZVJlc3BvbnNlKSkpCisgICAgICAgICAgICAgICAgICAuY29kZSk7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgcmVtb3ZlQm9uam91clNlcnZpY2UsCisgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihrVGVzdEJvbmpvdXJTZXJ2aWNlUXVlcnkpKSkKKyAgICAgICAgICAgIC5jb2RlKTsKKyAgICAvLyBUaGlzIHdpbGwgZmFpbCBiZWNhdXNlIGJvdWpvdXIgc2VydmljZSB3aXRoIGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSB3YXMKKyAgICAvLyBhbHJlYWR5IHJlbW92ZWQuCisgICAgRVhQRUNUX05FKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgcmVtb3ZlQm9uam91clNlcnZpY2UsCisgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihrVGVzdEJvbmpvdXJTZXJ2aWNlUXVlcnkpKSkKKyAgICAgICAgICAgIC5jb2RlKTsKK30KKworLyoKKyAqIEFkZEFuZFJlbW92ZVVwbnBTZXJ2aWNlCisgKiBUaGlzIHRlc3RzIHRoYXQgd2UgYXJlIGFibGUgdG8gYWRkIGEgdXBucCBzZXJ2aWNlLCBhbmQgd2UgY2FuIHJlbW92ZSBpdAorICogYnkgdXNpbmcgdGhlIHNhbWUgc2VydmljZSBuYW1lLgorICogVGhpcyBhbHNvIHRlc3RzIHRoYXQgcmVtb3ZlVXBucFNlcnZpY2UoKSByZXR1cm5zIGVycm9yIHdoZW4gdGhlcmUgaXMgbm8KKyAqIGV4c2l0aW5nIHVwbnAgc2VydmljZSB3aXRoIHRoZSBzYW1lIHNlcnZpY2UgbmFtZS4KKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBBZGRBbmRSZW1vdmVVcG5wU2VydmljZSkgeworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgYWRkVXBucFNlcnZpY2UsIDAgLyogdmVyc2lvbiAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RVcG5wU2VydmljZU5hbWUpCisgICAgICAgICAgICAgICAgICAuY29kZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCByZW1vdmVVcG5wU2VydmljZSwgMCAvKiB2ZXJzaW9uICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrVGVzdFVwbnBTZXJ2aWNlTmFtZSkKKyAgICAgICAgICAgICAgICAgIC5jb2RlKTsKKyAgICAvLyBUaGlzIHdpbGwgZmFpbCBiZWNhdXNlIFVwbnAgc2VydmljZSB3aXRoIGtUZXN0VXBucFNlcnZpY2VOYW1lIHdhcworICAgIC8vIGFscmVhZHkgcmVtb3ZlZC4KKyAgICBFWFBFQ1RfTkUoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHJlbW92ZVVwbnBTZXJ2aWNlLCAwIC8qIHZlcnNpb24gKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtUZXN0VXBucFNlcnZpY2VOYW1lKQorICAgICAgICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgorICogRW5hYmxlV2ZkCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgRW5hYmxlV2ZkKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBlbmFibGVXZmQsIHRydWUpLmNvZGUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgZW5hYmxlV2ZkLCBmYWxzZSkuY29kZSk7Cit9CisKKy8qCisgKiBTZXRXZmREZXZpY2VJbmZvCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgU2V0V2ZkRGV2aWNlSW5mbykgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFdmZERldmljZUluZm8sIGtUZXN0V2ZkRGV2aWNlSW5mbykuY29kZSk7Cit9CmRpZmYgLS1naXQgYS93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfc3RhX2lmYWNlX2hpZGxfdGVzdC5jcHAgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfc3RhX2lmYWNlX2hpZGxfdGVzdC5jcHAKaW5kZXggYzJhNThiNi4uZWMxMDJkNSAxMDA2NDQKLS0tIGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3N0YV9pZmFjZV9oaWRsX3Rlc3QuY3BwCisrKyBiL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfaWZhY2VfaGlkbF90ZXN0LmNwcApAQCAtMjAsNiArMjAsNyBAQAogCiAjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS93aWZpL3N1cHBsaWNhbnQvMS4wL0lTdXBwbGljYW50U3RhSWZhY2UuaD4KIAorI2luY2x1ZGUgInN1cHBsaWNhbnRfaGlkbF9jYWxsX3V0aWwuaCIKICNpbmNsdWRlICJzdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5oIgogCiB1c2luZyA6OmFuZHJvaWQ6OnNwOwpAQCAtMjgsNiArMjksNyBAQAogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SWZhY2VUeXBlOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SVN1cHBsaWNhbnRTdGFJZmFjZTsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklTdXBwbGljYW50U3RhSWZhY2VDYWxsYmFjazsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklTdXBwbGljYW50U3RhTmV0d29yazsKQEAgLTQ1LDcgKzQ3LDE4IEBACiAgICAgSVN1cHBsaWNhbnRTdGFJZmFjZTo6SHMyMEFucXBTdWJ0eXBlczo6V0FOX01FVFJJQ1MsCiAgICAgSVN1cHBsaWNhbnRTdGFJZmFjZTo6SHMyMEFucXBTdWJ0eXBlczo6T1BFUkFUT1JfRlJJRU5ETFlfTkFNRX07CiBjb25zdGV4cHIgY2hhciBrVGVzdEhzMjBJY29uRmlsZVtdID0gIlRlc3RGaWxlIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzRGV2aWNlTmFtZVtdID0gIlRlc3RXcHNEZXZpY2VOYW1lIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzTWFudWZhY3R1cmVyW10gPSAiVGVzdE1hbnVmYWN0dXJlciI7Citjb25zdGV4cHIgY2hhciBrVGVzdFdwc01vZGVsTmFtZVtdID0gIlRlc3RNb2RlbE5hbWUiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNNb2RlbE51bWJlcltdID0gIlRlc3RNb2RlbE51bWJlciI7Citjb25zdGV4cHIgY2hhciBrVGVzdFdwc1NlcmlhbE51bWJlcltdID0gIlRlc3RTZXJpYWxOdW1iZXIiOworY29uc3RleHByIGNoYXIga1Rlc3RSYWRpb1dvcmtOYW1lW10gPSAiVGVzdFJhZGlvV29yayI7Citjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RSYWRpb1dvcmtGcmVxdWVuY3kgPSAyNDEyOworY29uc3RleHByIHVpbnQzMl90IGtUZXN0UmFkaW9Xb3JrVGltZW91dCA9IDg7Citjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RSYWRpb1dvcmtJZCA9IDE2OwogY29uc3RleHByIGludDhfdCBrVGVzdENvdW50cnlDb2RlW10gPSB7J1UnLCAnUyd9OworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RXcHNEZXZpY2VUeXBlW10gPSB7WzAgLi4uIDddID0gMHgwMX07Citjb25zdGV4cHIgdWludDE2X3Qga1Rlc3RXcHNDb25maWdNZXRob2RzID0gMHhmZmZmOwogfSAgLy8gbmFtZXNwYWNlCiAKIGNsYXNzIFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKQEAgLTEwNCwxMSArMTE3LDEzIEBACiAgICAgfQogICAgIFJldHVybjx2b2lkPiBvbkRpc2Nvbm5lY3RlZChjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDY+JiAvKiBic3NpZCAqLywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAvKiBsb2NhbGx5R2VuZXJhdGVkICovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAvKiByZWFzb25Db2RlICovKSBvdmVycmlkZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTdXBwbGljYW50U3RhSWZhY2VDYWxsYmFjazo6UmVhc29uQ29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiByZWFzb25Db2RlICovKSBvdmVycmlkZSB7CiAgICAgICAgIHJldHVybiBWb2lkKCk7CiAgICAgfQogICAgIFJldHVybjx2b2lkPiBvbkFzc29jaWF0aW9uUmVqZWN0ZWQoCi0gICAgICAgIGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgNj4mIC8qIGJzc2lkICovLCB1aW50MzJfdCAvKiBzdGF0dXNDb2RlICovLAorICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDY+JiAvKiBic3NpZCAqLywKKyAgICAgICAgSVN1cHBsaWNhbnRTdGFJZmFjZUNhbGxiYWNrOjpTdGF0dXNDb2RlIC8qIHN0YXR1c0NvZGUgKi8sCiAgICAgICAgIGJvb2wgLyp0aW1lZE91dCAqLykgb3ZlcnJpZGUgewogICAgICAgICByZXR1cm4gVm9pZCgpOwogICAgIH0KQEAgLTExNiw2ICsxMzEsMTEgQEAKICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCA2PiYgLyogYnNzaWQgKi8pIG92ZXJyaWRlIHsKICAgICAgICAgcmV0dXJuIFZvaWQoKTsKICAgICB9CisgICAgUmV0dXJuPHZvaWQ+IG9uQnNzaWRDaGFuZ2VkKAorICAgICAgICBJU3VwcGxpY2FudFN0YUlmYWNlQ2FsbGJhY2s6OkJzc2lkQ2hhbmdlUmVhc29uIC8qIHJlYXNvbiAqLywKKyAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCA2PiYgLyogYnNzaWQgKi8pIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CiAgICAgUmV0dXJuPHZvaWQ+IG9uRWFwRmFpbHVyZSgpIG92ZXJyaWRlIHsgcmV0dXJuIFZvaWQoKTsgfQogICAgIFJldHVybjx2b2lkPiBvbldwc0V2ZW50U3VjY2VzcygpIG92ZXJyaWRlIHsgcmV0dXJuIFZvaWQoKTsgfQogICAgIFJldHVybjx2b2lkPiBvbldwc0V2ZW50RmFpbCgKQEAgLTE1Niw2ICsxNzYsMjYgQEAKIH0KIAogLyoKKyAqIEdldE5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBHZXROYW1lKSB7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZSA9IEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIGdldE5hbWUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc3RkOjpzdHJpbmcoc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZS5zZWNvbmQpLmVtcHR5KCkpOworfQorCisvKgorICogR2V0VHlwZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIEdldFR5cGUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlID0gSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgZ2V0VHlwZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9FUShzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlLnNlY29uZCwgSWZhY2VUeXBlOjpTVEEpOworfQorCisvKgogICogbGlzdE5ldHdvcmtzLgogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIGxpc3ROZXR3b3JrcykgewpAQCAtMjIxLDkgKzI2MSw3IEBACiBURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIEluaXRpYXRlVGRsc0Rpc2NvdmVyKSB7CiAgICAgc3RhX2lmYWNlXy0+aW5pdGlhdGVUZGxzRGlzY292ZXIoCiAgICAgICAgIG1hY19hZGRyXywgW10oY29uc3QgU3VwcGxpY2FudFN0YXR1cyYgc3RhdHVzKSB7Ci0gICAgICAgICAgICAvLyBUaGVzZSByZXF1ZXN0cyB3aWxsIGZhaWwgdW5sZXNzIHRoZSBNQUMgYWRkcmVzcyBtZW50aW9uZWQgaXMKLSAgICAgICAgICAgIC8vIGFjdHVhbGx5IGFyb3VuZC4KLSAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6RkFJTFVSRV9VTktOT1dOLCBzdGF0dXMuY29kZSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1cy5jb2RlKTsKICAgICAgICAgfSk7CiB9CiAKQEAgLTIzMyw5ICsyNzEsNyBAQAogVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBJbml0aWF0ZVRkbHNTZXR1cCkgewogICAgIHN0YV9pZmFjZV8tPmluaXRpYXRlVGRsc1NldHVwKAogICAgICAgICBtYWNfYWRkcl8sIFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgewotICAgICAgICAgICAgLy8gVGhlc2UgcmVxdWVzdHMgd2lsbCBmYWlsIHVubGVzcyB0aGUgTUFDIGFkZHJlc3MgbWVudGlvbmVkIGlzCi0gICAgICAgICAgICAvLyBhY3R1YWxseSBhcm91bmQuCi0gICAgICAgICAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OkZBSUxVUkVfVU5LTk9XTiwgc3RhdHVzLmNvZGUpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CiAgICAgICAgIH0pOwogfQogCkBAIC0yNDUsOSArMjgxLDcgQEAKIFRFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgSW5pdGlhdGVUZGxzVGVhcmRvd24pIHsKICAgICBzdGFfaWZhY2VfLT5pbml0aWF0ZVRkbHNUZWFyZG93bigKICAgICAgICAgbWFjX2FkZHJfLCBbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKLSAgICAgICAgICAgIC8vIFRoZXNlIHJlcXVlc3RzIHdpbGwgZmFpbCB1bmxlc3MgdGhlIE1BQyBhZGRyZXNzIG1lbnRpb25lZCBpcwotICAgICAgICAgICAgLy8gYWN0dWFsbHkgYXJvdW5kLgotICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpGQUlMVVJFX1VOS05PV04sIHN0YXR1cy5jb2RlKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOwogICAgICAgICB9KTsKIH0KIApAQCAtMzk4LDMgKzQzMiwxMDEgQEAKICAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOwogICAgICAgICB9KTsKIH0KKworLyoKKyAqIFNldFdwc0RldmljZU5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRXcHNEZXZpY2VOYW1lKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgc2V0V3BzRGV2aWNlTmFtZSwga1Rlc3RXcHNEZXZpY2VOYW1lKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc0RldmljZVR5cGUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRXcHNEZXZpY2VUeXBlKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgc2V0V3BzRGV2aWNlVHlwZSwga1Rlc3RXcHNEZXZpY2VUeXBlKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc01hbnVmYWN0dXJlcgorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIFNldFdwc01hbnVmYWN0dXJlcikgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIHNldFdwc01hbnVmYWN0dXJlciwga1Rlc3RXcHNNYW51ZmFjdHVyZXIpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzTW9kZWxOYW1lCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgU2V0V3BzTW9kZWxOYW1lKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRXcHNNb2RlbE5hbWUsIGtUZXN0V3BzTW9kZWxOYW1lKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc01vZGVsTnVtYmVyCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgU2V0V3BzTW9kZWxOdW1iZXIpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRXcHNNb2RlbE51bWJlciwga1Rlc3RXcHNNb2RlbE51bWJlcikuY29kZSk7Cit9CisKKy8qCisgKiBTZXRXcHNTZXJpYWxOdW1iZXIKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRXcHNTZXJpYWxOdW1iZXIpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRXcHNTZXJpYWxOdW1iZXIsIGtUZXN0V3BzU2VyaWFsTnVtYmVyKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc0NvbmZpZ01ldGhvZHMKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRXcHNDb25maWdNZXRob2RzKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgc2V0V3BzQ29uZmlnTWV0aG9kcywga1Rlc3RXcHNDb25maWdNZXRob2RzKQorICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgorICogU2V0RXh0ZXJuYWxTaW0KKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRFeHRlcm5hbFNpbSkgeworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgc2V0RXh0ZXJuYWxTaW0sIHRydWUpLmNvZGUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgc2V0RXh0ZXJuYWxTaW0sIGZhbHNlKS5jb2RlKTsKK30KKworLyoKKyAqIEFkZEV4dFJhZGlvV29yaworICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIEFkZEV4dFJhZGlvV29yaykgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfcmFkaW9fd29ya19pZCA9CisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIGFkZEV4dFJhZGlvV29yaywga1Rlc3RSYWRpb1dvcmtOYW1lLAorICAgICAgICAgICAgICAgICAgICBrVGVzdFJhZGlvV29ya0ZyZXF1ZW5jeSwga1Rlc3RSYWRpb1dvcmtUaW1lb3V0KTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIHN0YXR1c19hbmRfcmFkaW9fd29ya19pZC5maXJzdC5jb2RlKTsKKyAgICAvLyByZW1vdmVFeHRSYWRpbyBvbmx5IHN1Y2NlZWRzIGlmIHRoZSBhZGRlZCByYWRpbyB3b3JrIGhhc24ndCBzdGFydGVkIHlldC4KKyAgICAvLyBTbyB0aGVyZSB0aGlzIG5vIGd1YXJhbnRlZWQgcmVzdWx0IGZyb20gY2FsbGluZyByZW1vdmVFeHRSYWRpb1dvcmsgaGVyZS4KKyAgICAvLyBUaGF0IGJlaW5nIHNhaWQsIGN1cnJlbnRseSB3ZSBhcmUgbm90IGFibGUgdG8gdGVzdCBhZGRFeHRSYWRpb1dvcmsgYW5kCisgICAgLy8gcmVtb3ZlRXh0UmFkaW9Xb3JrIGluIGEgcm93LgorfQorCisvKgorICogUmVtb3ZlRXh0UmFkaW9Xb3JrCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgUmVtb3ZlRXh0UmFkaW9Xb3JrKSB7CisgICAgLy8gVGhpcyBmYWlscyBiZWNhdXNlIHRoZXJlIGlzIG5vIG9uIGdvaW5nIHJhZGlvIHdvcmsgd2l0aCBrVGVzdFJhZGlvV29ya0lkLgorICAgIEVYUEVDVF9ORSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIHJlbW92ZUV4dFJhZGlvV29yaywga1Rlc3RSYWRpb1dvcmtJZCkuY29kZSk7Cit9CmRpZmYgLS1naXQgYS93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfc3RhX25ldHdvcmtfaGlkbF90ZXN0LmNwcCBiL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfbmV0d29ya19oaWRsX3Rlc3QuY3BwCmluZGV4IGFhODRlOWEuLjgzMmRkNDEgMTAwNjQ0Ci0tLSBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfbmV0d29ya19oaWRsX3Rlc3QuY3BwCisrKyBiL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfbmV0d29ya19oaWRsX3Rlc3QuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRTdGFOZXR3b3JrLmg+CiAKKyNpbmNsdWRlICJzdXBwbGljYW50X2hpZGxfY2FsbF91dGlsLmgiCiAjaW5jbHVkZSAic3VwcGxpY2FudF9oaWRsX3Rlc3RfdXRpbHMuaCIKIAogdXNpbmcgOjphbmRyb2lkOjpzcDsKQEAgLTMwLDYgKzMxLDcgQEAKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklmYWNlVHlwZTsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklTdXBwbGljYW50U3RhSWZhY2U7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpzdXBwbGljYW50OjpWMV8wOjpJU3VwcGxpY2FudFN0YU5ldHdvcms7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpzdXBwbGljYW50OjpWMV8wOjoKQEAgLTM5LDcgKzQxLDcgQEAKIAogbmFtZXNwYWNlIHsKIGNvbnN0ZXhwciBjaGFyIGtUZXN0U3NpZFN0cltdID0gIlRlc3RTc2lkMTIzNCI7Ci1jb25zdGV4cHIgY2hhciBrVGVzdFBza1tdID0gIlRlc3RQc2sxMjMiOworY29uc3RleHByIGNoYXIga1Rlc3RQc2tQYXNzcGhyYXNlW10gPSAiVGVzdFBzazEyMyI7CiBjb25zdGV4cHIgY2hhciBrVGVzdElkU3RyW10gPSAiVGVzdElkc3RyIjsKIGNvbnN0ZXhwciBjaGFyIGtUZXN0RWFwUGFzc3dkU3RyW10gPSAiVGVzdEVhcFBhc3N3ZDEyMzQiOwogY29uc3RleHByIGNoYXIga1Rlc3RFYXBDZXJ0W10gPSAia2V5c3RvcmU6Ly9DRVJUIjsKQEAgLTU0LDcgKzU2LDEwIEBACiBjb25zdGV4cHIgdWludDhfdCBrVGVzdElrW10gPSB7WzAgLi4uIDE1XSA9IDB4NjV9OwogY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RDa1tdID0ge1swIC4uLiAxNV0gPSAweDQ1fTsKIGNvbnN0ZXhwciB1aW50OF90IGtUZXN0SWRlbnRpdHlbXSA9IHsweDQ1LCAweDY3LCAweDk4LCAweDY3LCAweDU2fTsKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0UHNrW10gPSB7WzAgLi4uIDMxXSA9IDB4MTJ9OworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RBdXRQYXJhbVtdID0ge1swIC4uLiAxM10gPSAweGUxfTsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdFdlcFR4S2V5SWR4ID0gMjsKK2NvbnN0ZXhwciB1aW50MzJfdCBrVGVzdFVwZGF0ZUlkZW50aWZpZXIgPSAyMTsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdEtleU1nbXQgPSAoSVN1cHBsaWNhbnRTdGFOZXR3b3JrOjpLZXlNZ210TWFzazo6V1BBX1BTSyB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTdXBwbGljYW50U3RhTmV0d29yazo6S2V5TWdtdE1hc2s6OldQQV9FQVApOwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0UHJvdG8gPSAoSVN1cHBsaWNhbnRTdGFOZXR3b3JrOjpQcm90b01hc2s6Ok9TRU4gfApAQCAtMTM3LDYgKzE0MiwyNyBAQAogICAgICAgICB9KTsKIH0KIAorLyoKKyAqIEdldEludGVyZmFjZU5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIEdldEludGVyZmFjZU5hbWUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lID0KKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBnZXRJbnRlcmZhY2VOYW1lKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIHN0YXR1c19hbmRfaW50ZXJmYWNlX25hbWUuZmlyc3QuY29kZSk7CisgICAgRVhQRUNUX0ZBTFNFKHN0ZDo6c3RyaW5nKHN0YXR1c19hbmRfaW50ZXJmYWNlX25hbWUuc2Vjb25kKS5lbXB0eSgpKTsKK30KKworLyoKKyAqIEdldFR5cGUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIEdldFR5cGUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlID0gSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBnZXRUeXBlKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUuZmlyc3QuY29kZSk7CisgICAgRVhQRUNUX0VRKHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUuc2Vjb25kLCBJZmFjZVR5cGU6OlNUQSk7Cit9CisKIC8qIFRlc3RzIG91dCB0aGUgdmFyaW91cyBzZXR0ZXIvZ2V0dGVyIG1ldGhvZHMuICovCiAvKgogICogU2V0R2V0U3NpZApAQCAtMjQ2LDE3ICsyNzIsMjkgQEAKICAqLwogVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNldEdldFBza1Bhc3NwaHJhc2UpIHsKICAgICBzdGFfbmV0d29ya18tPnNldFBza1Bhc3NwaHJhc2UoCi0gICAgICAgIGtUZXN0UHNrLCBbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKKyAgICAgICAga1Rlc3RQc2tQYXNzcGhyYXNlLCBbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKICAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOwogICAgICAgICB9KTsKICAgICBzdGFfbmV0d29ya18tPmdldFBza1Bhc3NwaHJhc2UoCiAgICAgICAgIFsmXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiBwc2spIHsKICAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOwotICAgICAgICAgICAgRVhQRUNUX0VRKGtUZXN0UHNrLCBzdGQ6OnN0cmluZyhwc2suY19zdHIoKSkpOworICAgICAgICAgICAgRVhQRUNUX0VRKGtUZXN0UHNrUGFzc3BocmFzZSwgc3RkOjpzdHJpbmcocHNrLmNfc3RyKCkpKTsKICAgICAgICAgfSk7CiB9CiAKIC8qCisgKiBTZXRHZXRQc2sKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNldEdldFBzaykgeworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZXRQc2ssIGtUZXN0UHNrKS5jb2RlKTsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX3BzayA9IEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgZ2V0UHNrKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfcHNrLmZpcnN0LmNvZGUpOworICAgIGhpZGxfYXJyYXk8dWludDhfdCwgMzI+IGV4cGVjdGVkX3BzayhrVGVzdFBzayk7CisgICAgRVhQRUNUX0VRKGV4cGVjdGVkX3Bzaywgc3RhdHVzX2FuZF9wc2suc2Vjb25kKTsKK30KKworLyoKICAqIFNldEdldFdlcEtleXMKICAqLwogVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNldEdldFdlcFR4S2V5SWR4KSB7CkBAIC0zNjEsNiArMzk5LDEyIEBACiAgKiBTZXRHZXRFYXBQaGFzZTJNZXRob2QKICAqLwogVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNldEdldEVhcFBoYXNlMk1ldGhvZCkgeworICAgIElTdXBwbGljYW50U3RhTmV0d29yazo6RWFwTWV0aG9kIHNldF9lYXBfbWV0aG9kID0KKyAgICAgICAgSVN1cHBsaWNhbnRTdGFOZXR3b3JrOjpFYXBNZXRob2Q6OlBFQVA7CisgICAgc3RhX25ldHdvcmtfLT5zZXRFYXBNZXRob2QoCisgICAgICAgIHNldF9lYXBfbWV0aG9kLCBbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOworICAgICAgICB9KTsKICAgICBJU3VwcGxpY2FudFN0YU5ldHdvcms6OkVhcFBoYXNlMk1ldGhvZCBzZXRfZWFwX3BoYXNlMl9tZXRob2QgPQogICAgICAgICBJU3VwcGxpY2FudFN0YU5ldHdvcms6OkVhcFBoYXNlMk1ldGhvZDo6Tk9ORTsKICAgICBzdGFfbmV0d29ya18tPnNldEVhcFBoYXNlMk1ldGhvZCgKQEAgLTUwMCw2ICs1NDQsMjEgQEAKIH0KIAogLyoKKyAqIFNldEdldEVhcFN1YmplY3RNYXRjaAorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2V0R2V0RWFwU3ViamVjdE1hdGNoKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZXRFYXBTdWJqZWN0TWF0Y2gsIGtUZXN0RWFwTWF0Y2gpLmNvZGUpOworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfc3ViamVjdF9tYXRjaCA9CisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgZ2V0RWFwU3ViamVjdE1hdGNoKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIHN0YXR1c19hbmRfc3ViamVjdF9tYXRjaC5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoa1Rlc3RFYXBNYXRjaCwKKyAgICAgICAgICAgICAgc3RkOjpzdHJpbmcoc3RhdHVzX2FuZF9zdWJqZWN0X21hdGNoLnNlY29uZC5jX3N0cigpKSk7Cit9CisKKy8qCiAgKiBTZXRHZXRFYXBEb21haW5TdWZmaXhNYXRjaAogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2V0R2V0RWFwRG9tYWluU3VmZml4TWF0Y2gpIHsKQEAgLTYzNCw2ICs2OTMsMTQgQEAKIH0KIAogLyoKKyAqIFNlbmROZXR3b3JrRWFwU2ltR3NtQXV0aEZhaWx1cmUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNlbmROZXR3b3JrRWFwU2ltR3NtQXV0aEZhaWx1cmUpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgc2VuZE5ldHdvcmtFYXBTaW1Hc21BdXRoRmFpbHVyZSkuY29kZSk7Cit9CisKKy8qCiAgKiBTZW5kTmV0d29ya0VhcFNpbVVtdHNBdXRoUmVzcG9uc2UKICAqLwogVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNlbmROZXR3b3JrRWFwU2ltVW10c0F1dGhSZXNwb25zZSkgewpAQCAtNjQ4LDYgKzcxNSwyNCBAQAogfQogCiAvKgorICogU2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0aEZhaWx1cmUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNlbmROZXR3b3JrRWFwU2ltVW10c0F1dGhGYWlsdXJlKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNlbmROZXR3b3JrRWFwU2ltVW10c0F1dGhGYWlsdXJlKS5jb2RlKTsKK30KKworLyoKKyAqIFNlbmROZXR3b3JrRWFwU2ltVW10c0F1dHNSZXNwb25zZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0c1Jlc3BvbnNlKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNlbmROZXR3b3JrRWFwU2ltVW10c0F1dHNSZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RBdXRQYXJhbSkKKyAgICAgICAgICAgICAgICAgIC5jb2RlKTsKK30KKworLyoKICAqIFNlbmROZXR3b3JrRWFwSWRlbnRpdHlSZXNwb25zZQogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2VuZE5ldHdvcmtFYXBJZGVudGl0eVJlc3BvbnNlKSB7CkBAIC02NTgsMyArNzQzLDQwIEBACiAgICAgICAgICAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1cy5jb2RlKTsKICAgICAgICAgfSk7CiB9CisKKy8qCisgKiBTZXRVcGRhdGVJZGVudGlmaWVyCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhTmV0d29ya0hpZGxUZXN0LCBTZXRVcGRhdGVJZGVudGlmaWVyKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZXRVcGRhdGVJZGVudGlmaWVyLCBrVGVzdFVwZGF0ZUlkZW50aWZpZXIpCisgICAgICAgICAgICAuY29kZSk7Cit9CisKKy8qCisgKiBTZXRQcm9hY3RpdmVLZXlDYWNoaW5nCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhTmV0d29ya0hpZGxUZXN0LCBTZXRQcm9hY3RpdmVLZXlDYWNoaW5nKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldFByb2FjdGl2ZUtleUNhY2hpbmcsIHRydWUpLmNvZGUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZXRQcm9hY3RpdmVLZXlDYWNoaW5nLCBmYWxzZSkuY29kZSk7Cit9CisKKy8qCisgKiBHZXRXcHNOZmNDb25maWd1cmF0aW9uVG9rZW4KKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIEdldFdwc05mY0NvbmZpZ3VyYXRpb25Ub2tlbikgeworICAgIEFTU0VSVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZXRTc2lkLCBzc2lkXykuY29kZSk7CisgICAgQVNTRVJUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldEtleU1nbXQsIGtUZXN0S2V5TWdtdCkuY29kZSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZXRQc2tQYXNzcGhyYXNlLCBrVGVzdFBza1Bhc3NwaHJhc2UpLmNvZGUpOworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfdG9rZW4gPQorICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIGdldFdwc05mY0NvbmZpZ3VyYXRpb25Ub2tlbik7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX3Rva2VuLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9GQUxTRSgwID09IHN0YXR1c19hbmRfdG9rZW4uc2Vjb25kLnNpemUoKSk7Cit9Cg==